https://gcc.gnu.org/bugzilla/show_bug.cgi?id=80759
--- Comment #13 from ro at CeBiTec dot Uni-Bielefeld.DE <ro at CeBiTec dot Uni-Bielefeld.DE> --- > --- Comment #10 from Daniel Santos <daniel.santos at pobox dot com> --- [...] > Anyway, if you can test it again for me and let me know what you think I would > appreciate it. I've got some other code formatting changes I want to send > with > it, but I separated it out from this patch to simplify reading. I'll post the > second patch anyway though. Just a quick note with first test results, more later: * With the patch, a sequential test works on i686-pc-linux-gnu (both multilibs). * On i386-pc-solaris2.12 with /bin/as, do-test.S fails to assemble: spawn /var/gcc/regression/trunk/12-gcc/build/gcc/xgcc -B/var/gcc/regression/trunk/12-gcc/build/gcc/ -I/var/gcc/regression/trunk/12-gcc/build/gcc/testsuite/gcc/ms-sysv -I/vol/gcc/src/hg/trunk/local/gcc/testsuite/gcc.target/x86_64/abi/ms-sysv -m64 -fno-diagnostics-show-caret -fdiagnostics-color=never -O2 -Wall -c -o /var/gcc/regression/trunk/12-gcc/build/gcc/testsuite/gcc/ms-sysv/do-test.o /vol/gcc/src/hg/trunk/local/gcc/testsuite/gcc.target/x86_64/abi/ms-sysv/do-test.S Assembler: "/var/tmp//ccTucmac.s", line 3 : Multiply defined label: "regs_to_mem" .global regs_to_mem; .type regs_to_mem,@function; regs_to_mem: regs_to_mem: "/var/tmp//ccTucmac.s", line 25 : Multiply defined label: "mem_to_regs" .global mem_to_regs; .type mem_to_regs,@function; mem_to_regs: mem_to_regs: "/var/tmp//ccTucmac.s", line 45 : Symbol "regs_to_mem" already has a size .size regs_to_mem,.-regs_to_mem WARNING: Could not assemble /vol/gcc/src/hg/trunk/local/gcc/testsuite/gcc.target/x86_64/abi/ms-sysv/do-test.S The first two can be avoided by removing the explicit function labels which are already covered by ELFFN_BEGIN. The last error is due to a wrong call to FUNC_END: the second call should be for mem_to_regs, not regs_to_mem. * On i386-pc-solaris2.12 with gas 2.28, this error doesn't happen, but I get WARNING: Could not build /vol/gcc/src/hg/trunk/local/gcc/testsuite/gcc.target/x8 6_64/abi/ms-sysv/ms-sysv.c. FAIL: gcc.target/x86_64/abi/ms-sysv CFLAGS+="-O2" generator_args="-p0-5" PASS: gcc.target/x86_64/abi/ms-sysv CFLAGS+="-O0 -g3" generator_args="-p0-5 --om it-rbp-clobbers" WARNING: Could not build /vol/gcc/src/hg/trunk/local/gcc/testsuite/gcc.target/x8 6_64/abi/ms-sysv/ms-sysv.c. FAIL: gcc.target/x86_64/abi/ms-sysv CFLAGS+="-mcall-ms2sysv-xlogues -O2" generat or_args="-p0-5" WARNING: Link failed. FAIL: gcc.target/x86_64/abi/ms-sysv CFLAGS+="-mcall-ms2sys The first two instances of ms-sysv.c fail to compile: In file included from /vol/gcc/src/hg/trunk/local/gcc/testsuite/gcc.target/x86_64/abi/ms-sysv/ms-sysv.c:149:0: /var/gcc/regression/trunk/12-gcc-gas/build/gcc/testsuite/gcc/ms-sysv/ms-sysv-generated.h: In function 'msabi_02_0': /var/gcc/regression/trunk/12-gcc-gas/build/gcc/testsuite/gcc/ms-sysv/ms-sysv-generated.h:205:1: error: bp cannot be used in asm here __attribute__ ((noinline, ms_abi)) long msabi_02_0 () { __asm__ __volatile__ ("" :::"rbp"); return sysv_0_noinfo (); } WARNING: Could not build /vol/gcc/src/hg/trunk/local/gcc/testsuite/gcc.target/x86_64/abi/ms-sysv/ms-sysv.c. The last instance of ms-sysv.exe doesn't link: Undefined first referenced symbol in file __resms64f_12 /var/gcc/regression/trunk/12-gcc/build/gcc/testsuite/gcc/ms-sysv/ms-sysv.o __resms64f_13 /var/gcc/regression/trunk/12-gcc/build/gcc/testsuite/gcc/ms-sysv/ms-sysv.o __resms64f_14 /var/gcc/regression/trunk/12-gcc/build/gcc/testsuite/gcc/ms-sysv/ms-sysv.o __resms64f_15 /var/gcc/regression/trunk/12-gcc/build/gcc/testsuite/gcc/ms-sysv/ms-sysv.o __resms64f_16 /var/gcc/regression/trunk/12-gcc/build/gcc/testsuite/gcc/ms-sysv/ms-sysv.o __resms64f_17 /var/gcc/regression/trunk/12-gcc/build/gcc/testsuite/gcc/ms-sysv/ms-sysv.o __savms64f_12 /var/gcc/regression/trunk/12-gcc/build/gcc/testsuite/gcc/ms-sysv/ms-sysv.o __savms64f_13 /var/gcc/regression/trunk/12-gcc/build/gcc/testsuite/gcc/ms-sysv/ms-sysv.o __savms64f_14 /var/gcc/regression/trunk/12-gcc/build/gcc/testsuite/gcc/ms-sysv/ms-sysv.o __savms64f_15 /var/gcc/regression/trunk/12-gcc/build/gcc/testsuite/gcc/ms-sysv/ms-sysv.o __savms64f_16 /var/gcc/regression/trunk/12-gcc/build/gcc/testsuite/gcc/ms-sysv/ms-sysv.o __savms64f_17 /var/gcc/regression/trunk/12-gcc/build/gcc/testsuite/gcc/ms-sysv/ms-sysv.o __resms64fx_12 /var/gcc/regression/trunk/12-gcc/build/gcc/testsuite/gcc/ms-sysv/ms-sysv.o __resms64fx_13 /var/gcc/regression/trunk/12-gcc/build/gcc/testsuite/gcc/ms-sysv/ms-sysv.o __resms64fx_14 /var/gcc/regression/trunk/12-gcc/build/gcc/testsuite/gcc/ms-sysv/ms-sysv.o __resms64fx_15 /var/gcc/regression/trunk/12-gcc/build/gcc/testsuite/gcc/ms-sysv/ms-sysv.o __resms64fx_16 /var/gcc/regression/trunk/12-gcc/build/gcc/testsuite/gcc/ms-sysv/ms-sysv.o __resms64fx_17 /var/gcc/regression/trunk/12-gcc/build/gcc/testsuite/gcc/ms-sysv/ms-sysv.o ld: fatal: symbol referencing errors collect2: error: ld returned 1 exit status No idea what's going on here. Rainer