egcs-1.1.2 build/test results for i586-linux-gnu
Manfred Hollstein
manfred@s-direktnet.de
Sat Mar 20 10:16:00 GMT 1999
On Thu, 18 March 1999, 02:10:15, jparmele@wildbear.com wrote:
>
> Environ: Intel pentium 133
> glibc-2.0.7pre6
> binutils-2.9.1.0.15
> Linux kernel 2.0.30
> dejagnu-971222
> libg++-2.8.1.3
>
> This machine has gcc-2.7.2.2/libc-5.4.46/binutils-2.8.1.0.1 as the default
> installation. Egcs-1.1.2/glibc-2.0.7pre6/binutils-2.9.1.0.15 was installed
> under --prefix=/usr/i586-linuxglibc2 as an alternate system in preparation
> for updating to a dual-development system running on Linux 2.2.
>
> Necessary environment overrides to accomplish this non-standard build were
> passed in on the make command line in shell scripts.
>
> Configure/make problems discovered and overcome:
>
> "make install" installs libg2c.a and symbolic links libg++.so and libg++.a
> in /usr/i586-linuxglibc2/lib/gcc-lib/i586-linuxglibc2 instead of in
> /usr/i586-linuxglibc2/lib/gcc-lib/i586-linuxglibc2/egcs-2.91.66. Our
> install shell script moves them after installation.
How did you actually call 1. configure and 2. make?
>
> libg++ configure sets a symbolic link from src/rx.h to /usr/include/rx.h,
> which is a libc5 header in our configuration.
This is indicating you're using a wrong CC/CXX when calling configure.
> This had to be overridden in
> a script file to point the link at /usr/i586-linuxglibc2/include/regex.h to
> get libg++ to pick up the new headers. Otherwise, as expected, libg++
> builds but crashes totally on execute tests. Our configure script first
> runs configure, then makes the configure-target-libg++ target, then corrects
> the errant link which that configure produces.
>
> It really would be much more convenient to do all the configures at the
> outset so that problems with the Makefiles can be seen and corrected before
> a lot of compile time is burned. This one change would have saved me
> personally at least a week in this whole process. This "make it all at
> once" thing tries to be too smart for its own good. It ends up being a real
> nuisance when something doesn't work as expected.
I wouldn't say, the scripts are fool-proof, but most of the time
such errors occur in "home-brew" mixed Linux/GNU systems with more than
one libc but not the proper cross compilers.
>
> Template instantiation did not fully occur because of interface and/or
> implement #pragma directive problems in the libstdc++ code. Enabling the
> -fexternal-template option gives a printout of the problems. A quick fix to
> get all templates (with some multiple instantiation) is to override the
> -fno-implicit-templates option by specifying LIBCXXFLAGS on the make command
> line. Otherwise, libstdc++ is missing two template variables, and one
> template function:
>
> __default_alloc_template<true,0>::__node_allocator_lock
> __default_alloc_template<true,0>::free_list
> __default_alloc_template<true,0>::refill(unsigned int)
>
>
> check-gcc: We observed the usual errors:
>
> gcc.c-torture/execute/980526-1.c execution, -O2 -fomit-frame-pointer
> -finline-functions
> gcc.c-torture/execute/ieee/980619-1.c execution, -O1
> gcc.c-torture/execute/ieee/980619-1.c execution, -O2
> gcc.c-torture/execute/ieee/980619-1.c execution, -O2 -fomit-frame-pointer
> -finline-functions
> gcc.c-torture/execute/ieee/980619-1.c execution, -O2 -fomit-frame-pointer
> -finline-functions -funroll-loops
> gcc.c-torture/execute/ieee/980619-1.c execution, -O2 -fomit-frame-pointer
> -finline-functions -funroll-all-loops
> gcc.c-torture/execute/ieee/980619-1.c execution, -O2 -g
> gcc.c-torture/execute/ieee/980619-1.c execution, -Os
> gcc.dg/980626-1.c (test for excess errors)
>
> These are caused either by improper optimizations run canonically by the
> c-torture series or by problems with the test harness (980626-1). They
> don't appear to actually indicate a failure in gcc.
>
>
> gcc.dg/clobbers.c execution test
>
> There seems to be some confusion as to just what the asm clobbers feature is
> supposed to do. I would prefer that asm clobbers informed the compiler that
> the asm block modifies registers (or memory) other than those appearing
> explicitly as output arguments (which should always be assumed clobbered).
> Whoever wrote the clobbers test obviously had the same notion. The test
> confirms that asm clobbers, under that definition, remain broken.
>
>
> check-g++: 1 unexpected failure:
>
> g++.mike/p6610a.C Execution test
>
> This appears to be a real bug. The executable should return 0 status; it
> returns 1, indicating the struct B constructor either didn't run at all,
> picked up the wrong version of the f member function, or the wrong this
> pointer.
>
>
> check-g77: All tests passed.
>
>
> check-target-libstdc++: All tests passed.
>
>
> check-target-libio: 1 unexpected failure:
>
> tfformat.c Execution test
> Fails 1955 of 3989 tests
>
> This test sprintf's floating arguments with lots of digits, sscanf's them
> back, and compares with the original binary argument. These failures are
> the result of discrepancies in the least significant bit.
>
> This appears to be a real bug. When the tfformat.c program is linked
> directly against the libio in glibc, it passes. Even more interesting is
> linking it against the newly-built libstdc++ (without libio.a); libstdc++
> only supplies the data element _IO_stderr_; the code elements _IO_fprintf,
> _IO_sprintf, and _IO_sscanf are still being supplied by glibc.
> Nevertheless, the test fails here also. To make matters even wierder, only
> 201 of these failures remain after that same libstdc++ is installed and the
> test run again. All of the 201 remaining errors involve improper rounding
> of small numbers to zero.
>
> When this set of tests is performed on the old libc5 system, they all pass.
>
> We also saw this problem with egcs-1.1.1.
>
> Is this behavior indicative of an uninitialized floating point control word?
> Are others seeing this problem? Any idea what this is about?
>
> Please CC me directly as I am not subscribed to the list.
>
>
> Regards,
>
> Joe Parmelee
> Wild Bear Systems
> jparmele@wildbear.com
>
>
>
More information about the Gcc
mailing list