Again, this is from running the binutils 2.14.90 20040210 testsuite on cygwin, the cdtest seems flaky.... Running /usr/local/src/trunk/src/ld/testsuite/ld-cdtest/cdtest.exp ... c++ -L/usr/local/src/objdir-binutils/ld -g -O2 -fgnu-linker -fno-exceptions -B/usr/local/src/objdir-binutils/ld/tmpdir/gas/ -I/usr/local/src/trunk/src/ld/testsuite/ld-cdtest -g -O2 -c /usr/local/src/trunk/src/ld/testsuite/ld-cdtest/cdtest-foo.cc -o tmpdir/cdtest-foo.o c++ -L/usr/local/src/objdir-binutils/ld -g -O2 -fgnu-linker -fno-exceptions -B/usr/local/src/objdir-binutils/ld/tmpdir/gas/ -I/usr/local/src/trunk/src/ld/testsuite/ld-cdtest -g -O2 -c /usr/local/src/trunk/src/ld/testsuite/ld-cdtest/cdtest-bar.cc -o tmpdir/cdtest-bar.o c++ -L/usr/local/src/objdir-binutils/ld -g -O2 -fgnu-linker -fno-exceptions -B/usr/local/src/objdir-binutils/ld/tmpdir/gas/ -I/usr/local/src/trunk/src/ld/testsuite/ld-cdtest -g -O2 -c /usr/local/src/trunk/src/ld/testsuite/ld-cdtest/cdtest-main.cc -o tmpdir/cdtest-main.o /usr/local/src/objdir-binutils/ld/ld-new -m i386pe -o tmpdir/cdtest /lib/crt0.o tmpdir/cdtest-foo.o tmpdir/cdtest-bar.o tmpdir/cdtest-main.o --start-group /usr/lib/gcc-lib/i686-pc-cygwin/3.3.1/libgcc.a -lc --end-group -lcygwin -L/usr/lib/w32api -luser32 -lkernel32 -ladvapi32 -lshell32 /usr/lib/gcc-lib/i686-pc-cygwin/3.3.1/libgcc.a tmpdir/cdtest >tmpdir/cdtest.out diff tmpdir/cdtest.out /usr/local/src/trunk/src/ld/testsuite/ld-cdtest/cdtest.dat 4a5,6 > Initializing Foo(5) "default-foo" with Foo(4) > Destructing Foo(4) "default-foo" (remaining foos: 4) 10c12 < Destructing Foo(4) "default-foo" (remaining foos: 3) --- > Destructing Foo(5) "default-foo" (remaining foos: 3) child process exited abnormally Checking against Named Return Value optimization diff tmpdir/cdtest.out /usr/local/src/trunk/src/ld/testsuite/ld-cdtest/cdtest-nrv.dat PASS: cdtest /usr/local/src/objdir-binutils/ld/ld-new -m i386pe -o tmpdir/cdtest.o -r -Ur tmpdir/cdtest-foo.o tmpdir/cdtest-bar.o tmpdir/cdtest-main.o /usr/local/src/objdir-binutils/ld/ld-new -m i386pe -o tmpdir/cdtest /lib/crt0.o tmpdir/cdtest.o --start-group /usr/lib/gcc-lib/i686-pc-cygwin/3.3.1/libgcc.a -lc --end-group -lcygwin -L/usr/lib/w32api -luser32 -lkernel32 -ladvapi32 -lshell32 /usr/lib/gcc-lib/i686-pc-cygwin/3.3.1/libgcc.a tmpdir/cdtest >tmpdir/cdtest.out assertion "Foo::nb_foos() == 2" failed: file "/usr/local/src/trunk/src/ld/testsuite/ld-cdtest/cdtest-main.cc", line 32 FAIL: cdtest with -Ur testcase /usr/local/src/trunk/src/ld/testsuite/ld-cdtest/cdtest.exp completed in 7 seconds
I can report that this still fails... Windows XP/Pro SP1 cygwin P4 system with these packages: binutils 20030901-1 2.14.90 20030901 bison 20030307-1 1.875b cygwin 1.5.7-1 dejagnu 20021217-2 1.4.2.x gawk 3.1.3-4 gcc 3.3.1-3 w32api 2.5-1 LAST_UPDATED: Tue Mar 9 08:20:37 UTC 2004 Native configuration is i786-pc-cygwin Running /usr/local/src/trunk/src/ld/testsuite/ld-cdtest/cdtest.exp ... c++ -L/usr/local/src/trunk/objdir-binutils/ld -g -O2 -fgnu-linker -fno- exceptions -B/usr/local/src/trunk/objdir-binutils/ld/tmpdir/gas/ - I/usr/local/src/trunk/src/ld/testsuite/ld-cdtest -g -O2 - c /usr/local/src/trunk/src/ld/testsuite/ld-cdtest/cdtest-foo.cc -o tmpdir/cdtest-foo.o c++ -L/usr/local/src/trunk/objdir-binutils/ld -g -O2 -fgnu-linker -fno- exceptions -B/usr/local/src/trunk/objdir-binutils/ld/tmpdir/gas/ - I/usr/local/src/trunk/src/ld/testsuite/ld-cdtest -g -O2 - c /usr/local/src/trunk/src/ld/testsuite/ld-cdtest/cdtest-bar.cc -o tmpdir/cdtest-bar.o c++ -L/usr/local/src/trunk/objdir-binutils/ld -g -O2 -fgnu-linker -fno- exceptions -B/usr/local/src/trunk/objdir-binutils/ld/tmpdir/gas/ - I/usr/local/src/trunk/src/ld/testsuite/ld-cdtest -g -O2 - c /usr/local/src/trunk/src/ld/testsuite/ld-cdtest/cdtest-main.cc -o tmpdir/cdtest-main.o /usr/local/src/trunk/objdir-binutils/ld/ld-new -m i386pe -o tmpdir/cdtest /lib/crt0.o tmpdir/cdtest-foo.o tmpdir/cdtest-bar.o tmpdir/cdtest-main.o --start-group /usr/lib/gcc-lib/i686-pc- cygwin/3.3.1/libgcc.a -lc --end-group -lcygwin -L/usr/lib/w32api -luser32 - lkernel32 -ladvapi32 -lshell32 /usr/lib/gcc-lib/i686-pc-cygwin/3.3.1/libgcc.a tmpdir/cdtest >tmpdir/cdtest.out diff tmpdir/cdtest.out /usr/local/src/trunk/src/ld/testsuite/ld- cdtest/cdtest.dat 4a5,6 > Initializing Foo(5) "default-foo" with Foo(4) > Destructing Foo(4) "default-foo" (remaining foos: 4) 10c12 < Destructing Foo(4) "default-foo" (remaining foos: 3) --- > Destructing Foo(5) "default-foo" (remaining foos: 3) child process exited abnormally Checking against Named Return Value optimization diff tmpdir/cdtest.out /usr/local/src/trunk/src/ld/testsuite/ld-cdtest/cdtest- nrv.dat PASS: cdtest /usr/local/src/trunk/objdir-binutils/ld/ld-new -m i386pe -o tmpdir/cdtest.o - r -Ur tmpdir/cdtest-foo.o tmpdir/cdtest-bar.o tmpdir/cdtest-main.o /usr/local/src/trunk/objdir-binutils/ld/ld-new -m i386pe -o tmpdir/cdtest /lib/crt0.o tmpdir/cdtest.o --start-group /usr/lib/gcc-lib/i686- pc-cygwin/3.3.1/libgcc.a -lc --end-group -lcygwin -L/usr/lib/w32api -luser32 - lkernel32 -ladvapi32 -lshell32 /usr/lib/gcc-lib/i686-pc-cygwin/3.3.1/libgcc.a tmpdir/cdtest >tmpdir/cdtest.out assertion "Foo::nb_foos() == 2" failed: file "/usr/local/src/trunk/src/ld/testsuite/ld-cdtest/cdtest-main.cc", line 32 FAIL: cdtest with -Ur testcase /usr/local/src/trunk/src/ld/testsuite/ld-cdtest/cdtest.exp completed in 4 seconds
Still fails... /usr/local/src/trunk/objdir-binutils/ld/ld-new -m i386pe -o tmpdir/cdtest.o -r -Ur tmpdir/cdtest-foo.o tmpdir/cdtest-bar.o tmpdir/cdtest-main.o /usr/local/src/trunk/objdir-binutils/ld/ld-new -m i386pe -o tmpdir/cdtest /lib/crt0.o tmpdir/cdtest.o --start-group /usr/lib/gcc-lib/i686-pc-cygwin/3.3.1/libgcc.a -lc --end-group -lcygwin -L/usr/lib/w32api -luser32 -lkernel32 -ladvapi32 -lshell32 /usr/lib/gcc-lib/i686-pc-cygwin/3.3.1/libgcc.a tmpdir/cdtest >tmpdir/cdtest.out assertion "Foo::nb_foos() == 2" failed: file "/usr/local/src/trunk/src/ld/testsuite/ld-cdtest/cdtest-main.cc", line 32 FAIL: cdtest with -Ur
Still fails... see http://sources.redhat.com/ml/binutils/2004-07/msg00171.html /usr/local/src/trunk/objdir-binutils/ld/ld-new -m i386pe -o tmpdir/cdtest.o - r -Ur tmpdir/cdtest-foo.o tmpdir/cdtest-bar.o tmpdir/cdtest-main.o /usr/local/src/trunk/objdir-binutils/ld/ld-new -m i386pe -o tmpdir/cdtest /lib/crt0.o tmpdir/cdtest.o --start-group /usr/lib/gcc-lib/i686- pc-cygwin/3.3.1/libgcc.a -lc --end-group -lcygwin -L/usr/lib/w32api -luser32 - lkernel32 -ladvapi32 -lshell32 /usr/lib/gcc-lib/i686-pc-cygwin/3.3.1/libgcc.a tmpdir/cdtest >tmpdir/cdtest.out assertion "Foo::nb_foos() == 2" failed: file "/usr/local/src/trunk/src/ld/testsuite/ld-cdtest/cdtest-main.cc", line 32 FAIL: cdtest with -Ur testcase /usr/local/src/trunk/src/ld/testsuite/ld-cdtest/cdtest.exp completed in 4 seconds
Still fails for 2.15.91 20040818... /usr/local/src/trunk/objdir-binutils/ld/ld-new -m i386pe -o tmpdir/cdtest.o - r -Ur tmpdir/cdtest-foo.o tmpdir/cdtest-bar.o tmpdir/cdtest-main.o /usr/local/src/trunk/objdir-binutils/ld/ld-new -m i386pe -o tmpdir/cdtest /lib/crt0.o tmpdir/cdtest.o --start-group /usr/lib/gcc-lib/i686- pc-cygwin/3.3.3/libgcc.a -lc --end-group -lcygwin -L/usr/lib/w32api -luser32 - lkernel32 -ladvapi32 -lshell32 /usr/lib/gcc-lib/i686-pc-cygwin/3.3.3/libgcc.a tmpdir/cdtest >tmpdir/cdtest.out assertion "Foo::nb_foos() == 2" failed: file "/usr/local/src/trunk/src/ld/testsuite/ld-cdtest/cdtest-main.cc", line 32 FAIL: cdtest with -Ur testcase /usr/local/src/trunk/src/ld/testsuite/ld-cdtest/cdtest.exp completed in 4 seconds
Still happens... 2.15.91 20040830 /usr/local/src/trunk/objdir-binutils/ld/ld-new -m i386pe -o tmpdir/cdtest.o - r -Ur tmpdir/cdtest-foo.o tmpdir/cdtest-bar.o tmpdir/cdtest-main.o /usr/local/src/trunk/objdir-binutils/ld/ld-new -m i386pe -o tmpdir/cdtest /lib/crt0.o tmpdir/cdtest.o --start-group /usr/lib/gcc/i686-pc- cygwin/3.4.1/libgcc.a -lc --end-group -lcygwin -L/usr/lib/w32api -luser32 - lkernel32 -ladvapi32 -lshell32 /usr/lib/gcc/i686-pc-cygwin/3.4.1/libgcc.a tmpdir/cdtest >tmpdir/cdtest.out assertion "Foo::nb_foos() == 2" failed: file "/usr/local/src/trunk/src/ld/testsuite/ld-cdtest/cdtest-main.cc", line 32 FAIL: cdtest with -Ur testcase /usr/local/src/trunk/src/ld/testsuite/ld-cdtest/cdtest.exp completed in 7 seconds
Still happens... see http://sourceware.org/ml/binutils/2005-02/msg00336.html Windows XP/SP2 cygwin ia32 pentium III dual i686: binutils 20041229-1 2.15.94 20041229 bison 20030307-1 1.875b cygwin 1.5.12-1 dejagnu 20021217-2 1.4.2.x expect 20030128-1 5.26 gcc 3.3.3-3 make 3.80-1 LAST_UPDATED: Tue Feb 15 17:59:15 UTC 2005 Native configuration is i686-pc-cygwin /usr/local/src/trunk/objdir-binutils32/ld/ld-new -m i386pe -o tmpdir/cdtest.o - r -Ur tmpdir/cdtest-foo.o tmpdir/cdtest-bar.o tmpdir/cdtest-main.o /usr/local/src/trunk/objdir-binutils32/ld/ld-new -m i386pe -o tmpdir/cdtest /lib/crt0.o tmpdir/cdtest.o --start-group /usr/lib/gcc-lib/i686- pc-cygwin/3.3.3/libgcc.a -lc --end-group -lcygwin -L/usr/lib/w32api -luser32 - lkernel32 -ladvapi32 -lshell32 /usr/lib/gcc-lib/i686-pc-cygwin/3.3.3/libgcc.a tmpdir/cdtest >tmpdir/cdtest.out assertion "Foo::nb_foos() == 2" failed: file "/usr/local/src/trunk/src/ld/testsuite/ld-cdtest/cdtest-main.cc", line 32 FAIL: cdtest with -Ur testcase /usr/local/src/trunk/src/ld/testsuite/ld-cdtest/cdtest.exp completed in 4 seconds
Still fails on cvs trunk 20050405... Windows XP Pro/SP2 cygwin P4 mobile system with these packages: binutils 20041229-1 2.15.94 20041229 bison 20030307-1 1.875b cygwin 1.5.14-1 dejagnu 20021217-2 1.4.2.x expect 20030128-1 5.26 gcc 3.3.3-3 tcltk 20030901-1 8.4 LAST_UPDATED: Tue Apr 5 10:59:31 UTC 2005 Native configuration is i686-pc-cygwin /usr/local/src/trunk/objdir-binutils/ld/ld-new -m i386pe -o tmpdir/cdtest.o - r -Ur tmpdir/cdtest-foo.o tmpdir/cdtest-bar.o tmpdir/cdtest-main.o /usr/local/src/trunk/objdir-binutils/ld/ld-new -m i386pe -o tmpdir/cdtest /lib/crt0.o tmpdir/cdtest.o --start-group /usr/lib/gcc-lib/i686- pc-cygwin/3.3.3/libgcc.a -lc --end-group -lcygwin -L/usr/lib/w32api -luser32 - lkernel32 -ladvapi32 -lshell32 /usr/lib/gcc-lib/i686-pc-cygwin/3.3.3/libgcc.a tmpdir/cdtest >tmpdir/cdtest.out assertion "Foo::nb_foos() == 2" failed: file "/usr/local/src/trunk/src/ld/testsuite/ld-cdtest/cdtest-main.cc", line 32 FAIL: cdtest with -Ur
This still happens on cvs trunk 20050529... Windows XP/SP2 cygwin on pentium4 single i686: binutils 20050520-1 OK bison 20030307-1 OK cygwin 1.5.17-1 OK dejagnu 20021217-2 OK expect 20030128-1 OK gcc 3.3.3-3 OK make 3.80-1 OK tcltk 20030901-1 OK LAST_UPDATED: Sun May 29 10:40:29 UTC 2005 Native configuration is i686-pc-cygwin /usr/local/src/trunk/objdir-binutils32/ld/ld-new -m i386pe -o tmpdir/cdtest.o - r -Ur tmpdir/cdtest-foo.o tmpdir/cdtest-bar.o tmpdir/cdtest-main.o /usr/local/src/trunk/objdir-binutils32/ld/ld-new -m i386pe -o tmpdir/cdtest /lib/crt0.o tmpdir/cdtest.o --start-group /usr/lib/gcc-lib/i686- pc-cygwin/3.3.3/libgcc.a -lc --end-group -lcygwin -L/usr/lib/w32api -luser32 - lkernel32 -ladvapi32 -lshell32 /usr/lib/gcc-lib/i686-pc-cygwin/3.3.3/libgcc.a tmpdir/cdtest >tmpdir/cdtest.out assertion "Foo::nb_foos() == 2" failed: file "/usr/local/src/trunk/src/ld/testsuite/ld-cdtest/cdtest-main.cc", line 32 FAIL: cdtest with -Ur testcase /usr/local/src/trunk/src/ld/testsuite/ld-cdtest/cdtest.exp completed in 4 seconds
ping... still there: /usr/local/src/trunk/objdir-binutils/ld/ld-new -m i386pe -o tmpdir/cdtest.o -r -Ur tmpdir/cdtest-foo.o tmpdir/cdtest-bar.o tmpdir/cdtest-main.o /usr/local/src/trunk/objdir-binutils/ld/ld-new -m i386pe -o tmpdir/cdtest /lib/crt0.o tmpdir/cdtest.o --start-group /usr/lib/gcc/i686-pc-cygwin/3.4.4/libgcc.a -lc --end-group -lcygwin -L/usr/lib/w32api -luser32 -lkernel32 -ladvapi32 -lshell32 /usr/lib/gcc/i686-pc-cygwin/3.4.4/libgcc.a tmpdir/cdtest >tmpdir/cdtest.out assertion "Foo::nb_foos() == 2" failed: file "/usr/local/src/trunk/src/ld/testsuite/ld-cdtest/cdtest-main.cc", line 32 FAIL: cdtest with -Ur testcase /usr/local/src/trunk/src/ld/testsuite/ld-cdtest/cdtest.exp completed in 10 seconds This is on Windows XP Pro/SP2 cygwin Pentium M processor 2.13GHz system with packages: binutils 20050610-1 2.16.91 20050610 bison 2.1-1 2.1 cygwin 1.5.19-4 dejagnu 20021217-2 1.4.2.x expect 20030128-1 5.26 gcc 3.4.4-1 gmp 4.1.4-2 make 3.80-1 OK tcltk 20030901-1 8.4 LAST_UPDATED: Wed May 3 16:45:38 UTC 2006 Native configuration is i686-pc-cygwin
still there... as of 2006-06-24
Stille there, I guess: /usr/local/src/trunk/objdir-binutils/ld/ld-new -m i386pe -o tmpdir/cdtest.o - r -Ur tmpdir/cdtest-foo.o tmpdir/cdtest-bar.o tmpdir/cdtest-main.o Executing on host: sh -c {/usr/local/src/trunk/objdir-binutils/ld/ld-new -m i386pe -o tmpdir/cdtest.o -r -Ur tmpdir/cdtest-foo.o tmpdir/cdtest-bar.o tmpdir/cdtest-main.o 2>&1} /dev/null ld.tmp (timeout = 300) spawn [open ...] /usr/local/src/trunk/objdir-binutils/ld/ld-new -m i386pe -o tmpdir/cdtest /lib/crt0.o tmpdir/cdtest.o -lz --start-group /usr/lib/gcc/i686- pc-cygwin/3.4.4/libgcc.a -lc --end-group -lcygwin -L/usr/lib/w32api -luser32 - lkernel32 -ladvapi32 -lshell32 /usr/lib/gcc/i686-pc-cygwin/3.4.4/libgcc.a Executing on host: sh -c {/usr/local/src/trunk/objdir-binutils/ld/ld-new -m i386pe -o tmpdir/cdtest /lib/crt0.o tmpdir/cdtest.o -lz --start- group /usr/lib/gcc/i686-pc-cygwin/3.4.4/libgcc.a -lc --end-group -lcygwin - L/usr/lib/w32api -luser32 -lkernel32 -ladvapi32 -lshell32 /usr/lib/gcc/i686-pc- cygwin/3.4.4/libgcc.a 2>&1} /dev/null ld.tmp (timeout = 300) spawn [open ...] tmpdir/cdtest >tmpdir/cdtest.out assertion "Foo::nb_foos() == 2" failed: file "/usr/local/src/trunk/src/ld/testsuite/ld-cdtest/cdtest-main.cc", line 32 FAIL: cdtest with -Ur testcase /usr/local/src/trunk/src/ld/testsuite/ld-cdtest/cdtest.exp completed in 23 seconds This is on Windows XP Pro/SP3 cygwin Pentium M processor 2.13GHz system with packages: binutils 20080624-2 2.18.50.20080625 bison 2.3-1 2.3 cygwin 1.5.25-15 dejagnu 20021217-2 1.4.2.x expect 20030128-1 5.26 gcc-ada 3.4.4-999 gcc-core 3.4.4-999 gcc-g++ 3.4.4-999 gmp 4.2.4-1 libgmp-devel 4.2.4-1 libmpfr-devel 2.4.1-1 make 3.81-2 mpfr 2.4.1-1 tcltk 20080420-1 8.4 w32api 3.13-1 LAST_UPDATED: daily snapshot 2009-03-23: 2.19.51.20090323
This test should probably be XFAILed or skipped on Cygwin. IIUC, -Ur probably isn't supposed to work on Cygwin at all. We don't do any code generation in collect2, so there's no work for it to do. We could "fix" it by making the -Ur link script keep the .ctors and .dtors in their own sections, which would eliminate the one remaining thing it currently does and make it a no-op.
The master branch has been updated by Alan Modra <amodra@sourceware.org>: https://sourceware.org/git/gitweb.cgi?p=binutils-gdb.git;h=5b537ffc55757b05ca2d7dbd1bbe2d59d88c24a4 commit 5b537ffc55757b05ca2d7dbd1bbe2d59d88c24a4 Author: Alan Modra <amodra@gmail.com> Date: Thu Nov 21 17:22:41 2019 +1030 PR46, cygwin: FAIL: cdtest with -Ur See the comment in pe.sc to understand why ld -Ur won't work. PR 46 binutils/ * testsuite/lib/binutils-common.exp (is_pecoff_format): Rewrite with positive logic and add more target triples. ld/ * scripttempl/pe.sc: Comment on ld -Ur fail. Wrap .gcc_exc comment. * scripttempl/pep.sc: Likewise. * testsuite/ld-cdtest/cdtest.exp (test2): xfail for pe.
Fixed by xfailing the test.