diff options
author | Thomas Schwinge <thomas@schwinge.name> | 2010-11-17 21:50:36 +0100 |
---|---|---|
committer | Thomas Schwinge <thomas@schwinge.name> | 2010-11-17 21:51:57 +0100 |
commit | d843d207052599f6f8aa5c92abab3ac7ea39dbfc (patch) | |
tree | 6142f1604e717153705ac821b3e8efe8ed682be6 /open_issues | |
parent | 7200c2244ca5510ddc8321306a6ba9a8f0c22eb6 (diff) |
gcc.
Diffstat (limited to 'open_issues')
-rw-r--r-- | open_issues/gcc.mdwn | 88 | ||||
-rw-r--r-- | open_issues/gcc/boehm_gc.mdwn | 29 | ||||
-rw-r--r-- | open_issues/gcc/testsuite.mdwn | 34 | ||||
-rw-r--r-- | open_issues/gcc_testsuite.mdwn | 211 | ||||
-rw-r--r-- | open_issues/unit_testing.mdwn | 2 |
5 files changed, 83 insertions, 281 deletions
diff --git a/open_issues/gcc.mdwn b/open_issues/gcc.mdwn index 8d2fb1cf..961b3ae6 100644 --- a/open_issues/gcc.mdwn +++ b/open_issues/gcc.mdwn @@ -1,4 +1,4 @@ -[[!meta copyright="Copyright © 2008, 2009, 2010 Free Software Foundation, +[[!meta copyright="Copyright © 2007, 2008, 2009, 2010 Free Software Foundation, Inc."]] [[!meta license="""[[!toggle id="license" text="GFDL 1.2+"]][[!toggleable @@ -11,29 +11,46 @@ is included in the section entitled [[!tag open_issue_gcc]] -Includes an older variant of [[/Boehm_GC]] with own patches, etc. +Here's what's to be done for maintaining GCC. -For GCC trunk: +Apart from the target-specific configuration machinery, there shouldn't be any +major differences within GCC between the GNU/Hurd and GNU/Linux ports, for +example. Especially all the compiler magic is all the same. -Debian package has patches (for 4.3). Some have been forwarded upstream. (And -have been ignored.) [[Thomas_Schwinge|tschwinge]] is working on getting them -integrated. - * [\[meta-bug\] bootstrap bugs for - \*-gnu\*](http://gcc.gnu.org/bugzilla/show_bug.cgi?id=21824) +# [[General information|/gcc]] - * [build system: gcc\_cv\_libc\_provides\_ssp and - NATIVE\_SYSTEM\_HEADER\_DIR](http://gcc.gnu.org/ml/gcc/2008-10/msg00130.html) - * [-fstack-protector shouldn't use TLS in freestanding - mode](http://gcc.gnu.org/bugzilla/show_bug.cgi?id=29838) +# [[Sources|source_repositories/gcc]] + + +## Boehm GC + +GCC includes an own variant of [[/Boehm_GC]] that is based on an upstream +version, but with own patches, etc. This is used for Java. (There are patches +(apparently not committed) that GCC itself can use it, too: +<http://gcc.gnu.org/wiki/Garbage_collection_tuning>.) + +Patches to GCC's fork should be contributed back to upstream [[/Boehm_GC]]. + +[[tschwinge]] reviewed (but only briefly for large parts) the differences on +2010-11-17, based on 5be7963446247204245c954641290f0e5ce238c6 (2010-10-28) of +[[source_repositories/GCC]] and for [[source_repositories/Boehm_GC]] CVS HEAD +sources from 2010-11-16, converted to Git: +9abb37b2e581b415bb1f482085891a289c2c0be1. + +[[tschwinge]] reviewed the Debian GCC Boehm GC changes, compared them to the +upstream code, and put it into the local *hurd/boehm-gc/config_backport* +branch, planning to submit it to gcc-patches after testing with the GCC +[[testsuite]]. - * [Tool chain configuration: GNU/\* sharing stuff with - GNU/Linux](http://gcc.gnu.org/ml/gcc/2007-11/msg00289.html) +# Configuration +Last checked against b8ba44e77a9fdde48ce0b7c6792736996704501e (2010-11-17). -Additionally: +<http://gcc.gnu.org/install/configure.html> has documentation for the +`configure` switches. * Configure fragments that have `*linux*` cases might/should often contain those for us (and GNU/k*BSD) as well. @@ -50,16 +67,9 @@ Additionally: * [[`libmudflap`|libmudflap]]. - * [[Boehm_GC]]. - * Might [`-fsplit-stack`](http://nickclifton.livejournal.com/6889.html) be worthwhile w.r.t. our multithreaded libraries? - ---- - -<http://gcc.gnu.org/install/configure.html> - * `--enable-languages=[...]` GNAT is not yet ported / bootstrapped? @@ -78,7 +88,8 @@ Additionally: * `--enable-decimal-float`, `--enable-fixed-point`, `--with-long-double-128` - `configure: WARNING: decimal float is not supported for this target, ignored` + `configure: WARNING: decimal float is not supported for this target, + ignored` * `--enable-linker-build-id` @@ -92,27 +103,24 @@ Additionally: [[IFUNC]] ---- -Here's a log of a GCC build run; this is from -f07666e1203a50ae445025050b7e12311db6bbd0 (2010-11-04) -[[sources|source_repositories/gcc]], run on kepler.SCHWINGE and grubber. +# [[Testsuite]] - $ export LC_ALL=C - $ ../hurd/configure --prefix="$PWD".install 2>&1 | tee log_build - [...] - $ make SHELL=/bin/bash 2>&1 | tee log_build_ - [...] -(kepler.SCHWINGE defaults to using /bin/sh, grubber to /bin/bash; thus -harmonized.) +# TODO -On grubber, this takes roughly TODO minutes. +Debian's GCC package has Hurd-specific patches. Some have been forwarded +upstream (and have been ignored). [[Thomas_Schwinge|tschwinge]] is working on +getting them integrated. - $ diff -wu <(ssh kepler.SCHWINGE 'cd tmp/source/gcc/hurd.build/ && cat log_build* | sed -e "s%${PWD}%[...]%g"') <(ssh grubber 'cd tmp/gcc/hurd.build/ && cat log_build* | sed "s%${PWD}%[...]%g"') > open_issues/gcc/log_build-diff + * [\[meta-bug\] bootstrap bugs for + \*-gnu\*](http://gcc.gnu.org/bugzilla/show_bug.cgi?id=21824) -[[log_build-diff]]. + * [build system: gcc\_cv\_libc\_provides\_ssp and + NATIVE\_SYSTEM\_HEADER\_DIR](http://gcc.gnu.org/ml/gcc/2008-10/msg00130.html) + + * [-fstack-protector shouldn't use TLS in freestanding + mode](http://gcc.gnu.org/bugzilla/show_bug.cgi?id=29838) -Build failure in Boehm GC. Working on this; will need to backport -upstream patches / also have a look at Debian patches, and [[boehm_gc]]. Then -resume here. + * [Tool chain configuration: GNU/\* sharing stuff with + GNU/Linux](http://gcc.gnu.org/ml/gcc/2007-11/msg00289.html) diff --git a/open_issues/gcc/boehm_gc.mdwn b/open_issues/gcc/boehm_gc.mdwn deleted file mode 100644 index 2ee88a2b..00000000 --- a/open_issues/gcc/boehm_gc.mdwn +++ /dev/null @@ -1,29 +0,0 @@ -[[!meta copyright="Copyright © 2010 Free Software Foundation, Inc."]] - -[[!meta license="""[[!toggle id="license" text="GFDL 1.2+"]][[!toggleable -id="license" text="Permission is granted to copy, distribute and/or modify this -document under the terms of the GNU Free Documentation License, Version 1.2 or -any later version published by the Free Software Foundation; with no Invariant -Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license -is included in the section entitled [[GNU Free Documentation -License|/fdl]]."]]"""]] - -[[!tag open_issue_gcc]] - -IRC, unknown channel, unknown date. - - <tschwinge> youpi: The Debian GCC 4.3 package also has this change: - <tschwinge> --- boehm-gc/dyn_load.c.orig 2007-08-13 09:10:48.215678000 +0200 - <tschwinge> +++ boehm-gc/dyn_load.c 2007-08-13 09:11:09.743969000 +0200 - <tschwinge> @@ -26,7 +26,7 @@ - <tschwinge> * None of this is safe with dlclose and incremental collection. - <tschwinge> * But then not much of anything is safe in the presence of dlclose. - <tschwinge> */ - <tschwinge> -#if (defined(__linux__) || defined(__GLIBC__)) && !defined(_GNU_SOURCE) - <tschwinge> +#if (defined(__linux__) || defined(__GLIBC__) || defined(__GNU__)) && !defined(_GNU_SOURCE) - <youpi> yes, these are needed - <youpi> and that's the kind of fix needed for java - ---- - -<http://lists.debian.org/debian-hurd/2000/03/msg00305.html> diff --git a/open_issues/gcc/testsuite.mdwn b/open_issues/gcc/testsuite.mdwn new file mode 100644 index 00000000..a88b7d61 --- /dev/null +++ b/open_issues/gcc/testsuite.mdwn @@ -0,0 +1,34 @@ +[[!meta copyright="Copyright © 2010 Free Software Foundation, Inc."]] + +[[!meta license="""[[!toggle id="license" text="GFDL 1.2+"]][[!toggleable +id="license" text="Permission is granted to copy, distribute and/or modify this +document under the terms of the GNU Free Documentation License, Version 1.2 or +any later version published by the Free Software Foundation; with no Invariant +Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license +is included in the section entitled [[GNU Free Documentation +License|/fdl]]."]]"""]] + +[[!tag open_issue_gcc]] + +Here's a log of a GCC build run; this is from +fe3e43c5e4ac1225921be12c32dbb48151af1f66 (2010-11-17) +[[sources|source_repositories/gcc]], run on kepler.SCHWINGE and grubber. + + $ export LC_ALL=C + $ ../hurd/configure --prefix="$PWD".install 2>&1 | tee log_build + [...] + $ make SHELL=/bin/bash 2>&1 | tee log_build_ + [...] + +(kepler.SCHWINGE defaults to using /bin/sh, grubber to /bin/bash; thus +harmonized.) + +On grubber, this takes roughly TODO minutes, and takes up 2.5 GiB. + + $ diff -wu <(ssh kepler.SCHWINGE 'cd tmp/source/gcc/hurd.build/ && cat log_build* | sed -e "s%${PWD}%[...]%g"') <(ssh grubber 'cd tmp/gcc/hurd.build/ && cat log_build* | sed "s%${PWD}%[...]%g"') > open_issues/gcc/log_build-diff + +[[log_build-diff]]. + +TODO. + +<http://gcc.gnu.org/install/test.html> diff --git a/open_issues/gcc_testsuite.mdwn b/open_issues/gcc_testsuite.mdwn deleted file mode 100644 index b4bbc7c8..00000000 --- a/open_issues/gcc_testsuite.mdwn +++ /dev/null @@ -1,211 +0,0 @@ -[[!meta copyright="Copyright © 2009 Free Software Foundation, Inc."]] - -[[!meta license="""[[!toggle id="license" text="GFDL 1.2+"]][[!toggleable -id="license" text="Permission is granted to copy, distribute and/or modify this -document under the terms of the GNU Free Documentation License, Version 1.2 or -any later version published by the Free Software Foundation; with no Invariant -Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license -is included in the section entitled [[GNU Free Documentation -License|/fdl]]."]]"""]] - -[[!meta title="GCC testsuite"]] - -[[!tag open_issue_gcc]] - -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 diff --git a/open_issues/unit_testing.mdwn b/open_issues/unit_testing.mdwn index 15c87abd..b9fb3700 100644 --- a/open_issues/unit_testing.mdwn +++ b/open_issues/unit_testing.mdwn @@ -18,7 +18,7 @@ abandoned). * [DejaGnu](http://www.gnu.org/software/dejagnu/) / [Expect](http://expect.nist.gov/) - * used by the [[GCC_testsuite]], [[GDB_testsuite]], + * used by the [[GCC testsuite|gcc/testsuite]], [[GDB_testsuite]], [[binutils testsuite|binutils/testsuite]], etc. * The [[glibc_testsuite]] has a home-grown system (Makefile-based), likewise |