Here's some log of a GCC testsuite run; this is from trunk sources, about 2008-10-19.
make -k check
make[1]: Entering directory `/media/data/home/tschwinge/tmp/gcc/trunk.work.build'
make[2]: Entering directory `/media/data/home/tschwinge/tmp/gcc/trunk.work.build/fixincludes'
autogen -T ../../trunk.work/fixincludes/check.tpl ../../trunk.work/fixincludes/inclhack.def
/bin/sh ./check.sh ../../trunk.work/fixincludes/tests/base
Fixed: testing.h
Fixed: testing.h
Fixed: AvailabilityMacros.h
Fixed: X11/ShellP.h
Fixed: X11/Xmu.h
Fixed: Xm/BaseClassI.h
Fixed: Xm/Traversal.h
Fixed: ansi/math.h
Fixed: ansi/stdlib.h
Fixed: arch/i960/archI960.h
Fixed: architecture/ppc/math.h
Fixed: assert.h
Fixed: bits/huge_val.h
Fixed: bits/string2.h
Fixed: bsd/libc.h
Fixed: c_asm.h
Fixed: com_err.h
Fixed: ctrl-quotes-def-1.h
Fixed: ctype.h
Fixed: curses.h
Fixed: errno.h
Fixed: features.h
Fixed: fixinc-test-limits.h
Fixed: hsfs/hsfs_spec.h
Fixed: ia64/sys/getppdp.h
Fixed: internal/math_core.h
Fixed: internal/sgimacros.h
Fixed: internal/wchar_core.h
Fixed: inttypes.h
Fixed: io-quotes-def-1.h
Fixed: iso/math_c99.h
Fixed: mach-o/dyld.h
Fixed: mach-o/swap.h
Fixed: malloc.h
Fixed: math.h
Fixed: netdnet/dnetdb.h
Fixed: netinet/in.h
Fixed: netinet/ip.h
Fixed: obstack.h
Fixed: pixrect/memvar.h
Fixed: pthread.h
Fixed: reg_types.h
Fixed: regex.h
Fixed: regexp.h
Fixed: rpc/auth.h
Fixed: rpc/rpc.h
Fixed: rpc/xdr.h
Fixed: rpcsvc/rstat.h
Fixed: rpcsvc/rusers.h
Fixed: signal.h
Fixed: sparc/asm_linkage.h
Fixed: standards.h
Fixed: stdint.h
Fixed: stdio.h
Fixed: stdio_tag.h
Fixed: stdlib.h
Fixed: string.h
Fixed: strings.h
Fixed: sundev/vuid_event.h
Fixed: sunwindow/win_lock.h
Fixed: sym.h
Fixed: sys/asm.h
Fixed: sys/cdefs.h
Fixed: sys/file.h
Fixed: sys/limits.h
Fixed: sys/machine.h
Fixed: sys/mman.h
Fixed: sys/pthread.h
Fixed: sys/signal.h
Fixed: sys/socket.h
Fixed: sys/spinlock.h
Fixed: sys/stat.h
Fixed: sys/sysmacros.h
Fixed: sys/time.h
Fixed: sys/types.h
Fixed: sys/ucontext.h
Fixed: sys/wait.h
Fixed: testing.h
Fixed: time.h
Fixed: tinfo.h
Fixed: types/vxTypesBase.h
Fixed: unistd.h
Fixed: wchar.h
All fixinclude tests pass
make[2]: Leaving directory `/media/data/home/tschwinge/tmp/gcc/trunk.work.build/fixincludes'
make[2]: Entering directory `/media/data/home/tschwinge/tmp/gcc/trunk.work.build/gcc'
test -d testsuite || mkdir testsuite
test -d testsuite/gcc || mkdir testsuite/gcc
(rootme=`${PWDCMD-pwd}`; export rootme; \
srcdir=`cd ../../trunk.work/gcc; ${PWDCMD-pwd}` ; export srcdir ; \
cd testsuite/gcc; \
rm -f tmp-site.exp; \
sed '/set tmpdir/ s|testsuite|testsuite/gcc|' \
< ../../site.exp > tmp-site.exp; \
/bin/sh ${srcdir}/../move-if-change tmp-site.exp site.exp; \
EXPECT=expect ; export EXPECT ; \
if [ -f ${rootme}/../expect/expect ] ; then \
TCL_LIBRARY=`cd .. ; cd ${srcdir}/../tcl/library ; ${PWDCMD-pwd}` ; \
export TCL_LIBRARY ; fi ; \
GCC_EXEC_PREFIX="/home/tschwinge/tmp/gcc/trunk.work.build.install/lib/gcc/" ; export GCC_EXEC_PREFIX ; \
runtest --tool gcc )
Test Run By tschwinge on Thu Oct 23 08:42:42 2008
Native configuration is i386-unknown-gnu0.3
=== gcc tests ===
Schedule of variations:
unix
Running target unix
Using /usr/share/dejagnu/baseboards/unix.exp as board description file for target.
Using /usr/share/dejagnu/config/unix.exp as generic interface file for target.
Using /home/tschwinge/tmp/gcc/trunk.work/gcc/testsuite/config/default.exp as tool-and-target-specific interface file.
Running /home/tschwinge/tmp/gcc/trunk.work/gcc/testsuite/gcc.c-torture/compile/compile.exp ...
Running /home/tschwinge/tmp/gcc/trunk.work/gcc/testsuite/gcc.c-torture/execute/builtins/builtins.exp ...
Running /home/tschwinge/tmp/gcc/trunk.work/gcc/testsuite/gcc.c-torture/execute/execute.exp ...
Running /home/tschwinge/tmp/gcc/trunk.work/gcc/testsuite/gcc.c-torture/execute/ieee/ieee.exp ...
Running /home/tschwinge/tmp/gcc/trunk.work/gcc/testsuite/gcc.c-torture/unsorted/unsorted.exp ...
Running /home/tschwinge/tmp/gcc/trunk.work/gcc/testsuite/gcc.dg/autopar/autopar.exp ...
Running /home/tschwinge/tmp/gcc/trunk.work/gcc/testsuite/gcc.dg/charset/charset.exp ...
Running /home/tschwinge/tmp/gcc/trunk.work/gcc/testsuite/gcc.dg/compat/compat.exp ...
Running /home/tschwinge/tmp/gcc/trunk.work/gcc/testsuite/gcc.dg/compat/struct-layout-1.exp ...
Running /home/tschwinge/tmp/gcc/trunk.work/gcc/testsuite/gcc.dg/cpp/cpp.exp ...
FAIL: gcc.dg/cpp/_Pragma3.c -fno-show-column (test for excess errors)
Running /home/tschwinge/tmp/gcc/trunk.work/gcc/testsuite/gcc.dg/cpp/trad/trad.exp ...
Running /home/tschwinge/tmp/gcc/trunk.work/gcc/testsuite/gcc.dg/debug/debug.exp ...
Running /home/tschwinge/tmp/gcc/trunk.work/gcc/testsuite/gcc.dg/debug/dwarf2/dwarf2.exp ...
FAIL: gcc.dg/debug/dwarf2/dwarf-die3.c scan-assembler-not DW_AT_inline
Running /home/tschwinge/tmp/gcc/trunk.work/gcc/testsuite/gcc.dg/dfp/dfp.exp ...
Running /home/tschwinge/tmp/gcc/trunk.work/gcc/testsuite/gcc.dg/dg.exp ...
FAIL: gcc.dg/20021014-1.c (test for excess errors)
FAIL: gcc.dg/cleanup-12.c (test for excess errors)
FAIL: gcc.dg/cleanup-5.c (test for excess errors)
FAIL: gcc.dg/nest.c (test for excess errors)
FAIL: gcc.dg/nested-func-4.c (test for excess errors)
FAIL: gcc.dg/pr32450.c (test for excess errors)
FAIL: gcc.dg/pr33645-3.c scan-assembler-not var1_t
Running /home/tschwinge/tmp/gcc/trunk.work/gcc/testsuite/gcc.dg/fixed-point/fixed-point.exp ...
Running /home/tschwinge/tmp/gcc/trunk.work/gcc/testsuite/gcc.dg/format/format.exp ...
Running /home/tschwinge/tmp/gcc/trunk.work/gcc/testsuite/gcc.dg/gomp/gomp.exp ...
Running /home/tschwinge/tmp/gcc/trunk.work/gcc/testsuite/gcc.dg/graphite/graphite.exp ...
Running /home/tschwinge/tmp/gcc/trunk.work/gcc/testsuite/gcc.dg/ipa/ipa.exp ...
Running /home/tschwinge/tmp/gcc/trunk.work/gcc/testsuite/gcc.dg/matrix/matrix.exp ...
Running /home/tschwinge/tmp/gcc/trunk.work/gcc/testsuite/gcc.dg/noncompile/noncompile.exp ...
Running /home/tschwinge/tmp/gcc/trunk.work/gcc/testsuite/gcc.dg/pch/pch.exp ...
FAIL: gcc.dg/pch/valid-1b.c -O0 -g -I. (test for excess errors)
FAIL: gcc.dg/pch/valid-1b.c -O0 -g assembly comparison
FAIL: gcc.dg/pch/valid-1b.c -O0 -I. (test for excess errors)
FAIL: gcc.dg/pch/valid-1b.c -O0 assembly comparison
FAIL: gcc.dg/pch/valid-1b.c -O1 -I. (test for excess errors)
FAIL: gcc.dg/pch/valid-1b.c -O1 assembly comparison
FAIL: gcc.dg/pch/valid-1b.c -O2 -I. (test for excess errors)
FAIL: gcc.dg/pch/valid-1b.c -O2 assembly comparison
FAIL: gcc.dg/pch/valid-1b.c -O3 -fomit-frame-pointer -I. (test for excess errors)
FAIL: gcc.dg/pch/valid-1b.c -O3 -fomit-frame-pointer assembly comparison
FAIL: gcc.dg/pch/valid-1b.c -O3 -g -I. (test for excess errors)
FAIL: gcc.dg/pch/valid-1b.c -O3 -g assembly comparison
FAIL: gcc.dg/pch/valid-1b.c -Os -I. (test for excess errors)
FAIL: gcc.dg/pch/valid-1b.c -Os assembly comparison
FAIL: largefile.c -O0 -g -I. (test for excess errors)
FAIL: gcc.dg/pch/largefile.c -O0 -g assembly comparison
FAIL: largefile.c -O0 -I. (test for excess errors)
FAIL: gcc.dg/pch/largefile.c -O0 assembly comparison
FAIL: largefile.c -O1 -I. (test for excess errors)
FAIL: gcc.dg/pch/largefile.c -O1 assembly comparison
FAIL: largefile.c -O2 -I. (test for excess errors)
FAIL: gcc.dg/pch/largefile.c -O2 assembly comparison
FAIL: largefile.c -O3 -fomit-frame-pointer -I. (test for excess errors)
FAIL: gcc.dg/pch/largefile.c -O3 -fomit-frame-pointer assembly comparison
FAIL: largefile.c -O3 -g -I. (test for excess errors)
FAIL: gcc.dg/pch/largefile.c -O3 -g assembly comparison
FAIL: largefile.c -Os -I. (test for excess errors)
FAIL: gcc.dg/pch/largefile.c -Os assembly comparison
Running /home/tschwinge/tmp/gcc/trunk.work/gcc/testsuite/gcc.dg/special/mips-abi.exp ...
Running /home/tschwinge/tmp/gcc/trunk.work/gcc/testsuite/gcc.dg/special/special.exp ...
Running /home/tschwinge/tmp/gcc/trunk.work/gcc/testsuite/gcc.dg/struct/struct-reorg.exp ...
Running /home/tschwinge/tmp/gcc/trunk.work/gcc/testsuite/gcc.dg/tls/tls.exp ...
Running /home/tschwinge/tmp/gcc/trunk.work/gcc/testsuite/gcc.dg/torture/dg-torture.exp ...
FAIL: gcc.dg/torture/fp-int-convert-float128.c -O0 (test for excess errors)
FAIL: gcc.dg/torture/fp-int-convert-float128.c -O1 (test for excess errors)
FAIL: gcc.dg/torture/fp-int-convert-float128.c -O2 (test for excess errors)
FAIL: gcc.dg/torture/fp-int-convert-float128.c -O3 -fomit-frame-pointer (test for excess errors)
FAIL: gcc.dg/torture/fp-int-convert-float128.c -O3 -g (test for excess errors)
FAIL: gcc.dg/torture/fp-int-convert-float128.c -Os (test for excess errors)
Running /home/tschwinge/tmp/gcc/trunk.work/gcc/testsuite/gcc.dg/torture/stackalign/stackalign.exp ...
Running /home/tschwinge/tmp/gcc/trunk.work/gcc/testsuite/gcc.dg/tree-prof/tree-prof.exp ...
Running /home/tschwinge/tmp/gcc/trunk.work/gcc/testsuite/gcc.dg/tree-ssa/tree-ssa.exp ...
XPASS: gcc.dg/tree-ssa/20040204-1.c scan-tree-dump-times optimized "link_error" 0
Modify the cross-compiling shell script to configure GCC for building GCC with C++ support when building its second (i.e., final) version.
Compiling a most-trivial C++ program used to work with GCC 4.2 and 4.3 (and the resulting binaries would also work), but linking fails with GCC SVN trunk:
$ $TARGET-g++ -Wall a.cc -lpthread
/home/thomas/tmp/gnu-0/lib/gcc/i586-pc-gnu/4.4.0/../../../../i586-pc-gnu/lib/libgcc_s.so: undefined reference to `__multf3'
/home/thomas/tmp/gnu-0/lib/gcc/i586-pc-gnu/4.4.0/../../../../i586-pc-gnu/lib/libgcc_s.so: undefined reference to `__fixunstfsi'
/home/thomas/tmp/gnu-0/lib/gcc/i586-pc-gnu/4.4.0/../../../../i586-pc-gnu/lib/libgcc_s.so: undefined reference to `__subtf3'
/home/thomas/tmp/gnu-0/lib/gcc/i586-pc-gnu/4.4.0/../../../../i586-pc-gnu/lib/libgcc_s.so: undefined reference to `__divtf3'
/home/thomas/tmp/gnu-0/lib/gcc/i586-pc-gnu/4.4.0/../../../../i586-pc-gnu/lib/libgcc_s.so: undefined reference to `__copysigntf3'
/home/thomas/tmp/gnu-0/lib/gcc/i586-pc-gnu/4.4.0/../../../../i586-pc-gnu/lib/libgcc_s.so: undefined reference to `__addtf3'
/home/thomas/tmp/gnu-0/lib/gcc/i586-pc-gnu/4.4.0/../../../../i586-pc-gnu/lib/libgcc_s.so: undefined reference to `__lttf2'
/home/thomas/tmp/gnu-0/lib/gcc/i586-pc-gnu/4.4.0/../../../../i586-pc-gnu/lib/libgcc_s.so: undefined reference to `__floatsitf'
/home/thomas/tmp/gnu-0/lib/gcc/i586-pc-gnu/4.4.0/../../../../i586-pc-gnu/lib/libgcc_s.so: undefined reference to `__netf2'
/home/thomas/tmp/gnu-0/lib/gcc/i586-pc-gnu/4.4.0/../../../../i586-pc-gnu/lib/libgcc_s.so: undefined reference to `__floatunsitf'
/home/thomas/tmp/gnu-0/lib/gcc/i586-pc-gnu/4.4.0/../../../../i586-pc-gnu/lib/libgcc_s.so: undefined reference to `__eqtf2'
/home/thomas/tmp/gnu-0/lib/gcc/i586-pc-gnu/4.4.0/../../../../i586-pc-gnu/lib/libgcc_s.so: undefined reference to `__fabstf2'
collect2: ld returned 1 exit status
Whether this defect report also applies to a natively-build GCC from SVN trunk has not yet been checked.
Thomas Schwinge suspects the problem to be a configuration issue of a GCC helper library, whose configuration setup has changed after GCC 4.3.
The need for -lpthread is another story. See the Debian glibc patches
repository for details.
Single-threaded use appears to work:
$ echo 'int main(void) { int *a; a[10]=0; return a[5]; }' | ↩
gcc -o a -fmudflap -x c - -lmudflap
$ ./a
*******
mudflap violation 1 (check/write): time=1227208721.922064 ptr=0x1023de0 size=4
pc=0x1037a33 location=`<stdin>:1:26 (main)'
/usr/lib/libmudflap.so.0(__mf_check+0x33) [0x1037a33]
./a(main+0x7c) [0x80486c4]
/usr/lib/libmudflap.so.0(__wrap_main+0x49) [0x1037239]
Nearby object 1: checked region begins 68B before and ends 65B before
mudflap object 0x80ca268: name=`argv[]'
bounds=[0x1023e24,0x1023e2b] size=8 area=static check=0r/0w liveness=0
alloc time=1227208721.922064 pc=0x10371d3
Nearby object 2: checked region begins 76B before and ends 73B before
mudflap object 0x80cb448: name=`environ[]'
bounds=[0x1023e2c,0x1023ed7] size=172 area=static check=0r/0w liveness=0
alloc time=1227208721.922064 pc=0x10371d3
number of nearby objects: 2
*******
mudflap violation 2 (check/read): time=1227208721.942109 ptr=0x1023dcc size=4
pc=0x1037a33 location=`<stdin>:1:35 (main)'
/usr/lib/libmudflap.so.0(__mf_check+0x33) [0x1037a33]
./a(main+0xf3) [0x804873b]
/usr/lib/libmudflap.so.0(__wrap_main+0x49) [0x1037239]
Nearby object 1: checked region begins 88B before and ends 85B before
mudflap object 0x80ca268: name=`argv[]'
Nearby object 2: checked region begins 96B before and ends 93B before
mudflap object 0x80cb448: name=`environ[]'
number of nearby objects: 2
Multi-threaded use doesn't:
$ echo 'int main(void) { int *a; a[10]=0; return a[5]; }' | ↩
gcc -include pthread.h -o a -fmudflapth -x c - -lmudflapth -lpthread
$ ./a
Killed
$ gdb a
[...]
Starting program: /media/data/home/tschwinge/a
Program received signal EXC_BAD_ACCESS, Could not access memory.
0x01180653 in getenv () from /lib/libc.so.0.3
(gdb) bt
#0 0x01180653 in getenv () from /lib/libc.so.0.3
#1 0x01177a02 in __dcigettext () from /lib/libc.so.0.3
#2 0x01176a57 in dcgettext () from /lib/libc.so.0.3
#3 0x011c03b5 in strerror_r () from /lib/libc.so.0.3
#4 0x01175b57 in __assert_perror_fail () from /lib/libc.so.0.3
#5 0x0111f1ad in cthread_fork (func=0x114f630 <_hurd_msgport_receive>, arg=0x0)
at /build/buildd/hurd-20080607/build-tree/hurd/libpthread/pthread/cthreads-compat.c:41
#6 0x0115713e in _hurdsig_init () from /lib/libc.so.0.3
#7 0x01140852 in _hurd_proc_init@@GLIBC_2.2.6 () from /lib/libc.so.0.3
#8 0x01140e86 in _hurd_init () from /lib/libc.so.0.3
#9 0x011690ce in init1 () from /lib/libc.so.0.3
#10 0x00001e96 in _dl_start_user () from /lib/ld.so
#11 0x00000001 in ?? ()
#12 0x01024000 in ?? ()
#13 0x00000000 in ?? ()
Also libmudflap is pthread-only.
For GCC trunk:
Debian package has patches (for 4.3). Some have been forwarded upstream. (And have been ignored.) Thomas Schwinge is working on getting them integrated.
build system: gcc_cv_libc_provides_ssp and NATIVE_SYSTEM_HEADER_DIR
Tool chain configuration: GNU/* sharing stuff with GNU/Linux
Additionally:
Configure fragments that have
*linux*cases might/should often contain those for us (and GNU/k*BSD) as well.libgcc/configure.acmight need to be aligned for us to the*linux*cases. As well as at the end oflibgcc/config.host. Check.checking whether decimal floating point is supported... no checking whether fixed-point is supported... nolibgomp/configure.tgt
C++.
- Open Issues
