Building current mainline on Solaris 11/SPARC with GNU ld 2.19 and Sun as fails when building libgomp:
libtool: compile: /vol/gccsrc/obj/gcc-4.4.0-20081110/11-gcc-gld/./gcc/xgcc -B/vol/gccsrc/obj/gcc-4.4.0-20081110/11-gcc-gld/./gcc/ -B/vol/gcc/sparc-sun-solaris2.11/bin/ -B/vol/gcc/sparc-sun-solaris2.11/lib/ -isystem /vol/gcc/sparc-sun-solaris2.11/include -isystem /vol/gcc/sparc-sun-solaris2.11/sys-include -DHAVE_CONFIG_H -I. -I/vol/gcc/src/gcc-dist/libgomp -I. -I/vol/gcc/src/gcc-dist/libgomp/config/posix -I/vol/gcc/src/gcc-dist/libgomp -Wall -pthread -Werror -g -O2 -MT lock.lo -MD -MP -MF .deps/lock.Tpo -c /vol/gcc/src/gcc-dist/libgomp/config/posix/lock.c -fPIC -DPIC -o .libs/lock.o /usr/bin/as: "/var/tmp//ccPRa4Qu.s", line 10: error: unknown opcode ".symver" /usr/bin/as: "/var/tmp//ccPRa4Qu.s", line 10: error: invalid character (0x40) /usr/bin/as: "/var/tmp//ccPRa4Qu.s", line 10: error: invalid character (0x40) /usr/bin/as: "/var/tmp//ccPRa4Qu.s", line 10: error: statement syntax /usr/bin/as: "/var/tmp//ccPRa4Qu.s", line 11: error: unknown opcode ".symver" /usr/bin/as: "/var/tmp//ccPRa4Qu.s", line 11: error: invalid character (0x40) /usr/bin/as: "/var/tmp//ccPRa4Qu.s", line 11: error: statement syntax /usr/bin/as: "/var/tmp//ccPRa4Qu.s", line 12: error: unknown opcode ".symver" /usr/bin/as: "/var/tmp//ccPRa4Qu.s", line 12: error: invalid character (0x40) /usr/bin/as: "/var/tmp//ccPRa4Qu.s", line 12: error: invalid character (0x40) /usr/bin/as: "/var/tmp//ccPRa4Qu.s", line 12: error: statement syntax /usr/bin/as: "/var/tmp//ccPRa4Qu.s", line 13: error: unknown opcode ".symver" /usr/bin/as: "/var/tmp//ccPRa4Qu.s", line 13: error: invalid character (0x40) /usr/bin/as: "/var/tmp//ccPRa4Qu.s", line 13: error: statement syntax /usr/bin/as: "/var/tmp//ccPRa4Qu.s", line 14: error: unknown opcode ".symver" /usr/bin/as: "/var/tmp//ccPRa4Qu.s", line 14: error: invalid character (0x40) /usr/bin/as: "/var/tmp//ccPRa4Qu.s", line 14: error: invalid character (0x40) /usr/bin/as: "/var/tmp//ccPRa4Qu.s", line 14: error: statement syntax /usr/bin/as: "/var/tmp//ccPRa4Qu.s", line 15: error: unknown opcode ".symver" /usr/bin/as: "/var/tmp//ccPRa4Qu.s", line 15: error: invalid character (0x40) /usr/bin/as: "/var/tmp//ccPRa4Qu.s", line 15: error: statement syntax /usr/bin/as: "/var/tmp//ccPRa4Qu.s", line 16: error: unknown opcode ".symver" /usr/bin/as: "/var/tmp//ccPRa4Qu.s", line 16: error: invalid character (0x40) /usr/bin/as: "/var/tmp//ccPRa4Qu.s", line 16: error: invalid character (0x40) /usr/bin/as: "/var/tmp//ccPRa4Qu.s", line 16: error: statement syntax /usr/bin/as: "/var/tmp//ccPRa4Qu.s", line 17: error: unknown opcode ".symver" /usr/bin/as: "/var/tmp//ccPRa4Qu.s", line 17: error: invalid character (0x40) /usr/bin/as: "/var/tmp//ccPRa4Qu.s", line 17: error: statement syntax /usr/bin/as: "/var/tmp//ccPRa4Qu.s", line 18: error: unknown opcode ".symver" /usr/bin/as: "/var/tmp//ccPRa4Qu.s", line 18: error: invalid character (0x40) /usr/bin/as: "/var/tmp//ccPRa4Qu.s", line 18: error: invalid character (0x40) /usr/bin/as: "/var/tmp//ccPRa4Qu.s", line 18: error: statement syntax /usr/bin/as: "/var/tmp//ccPRa4Qu.s", line 19: error: unknown opcode ".symver" /usr/bin/as: "/var/tmp//ccPRa4Qu.s", line 19: error: invalid character (0x40) /usr/bin/as: "/var/tmp//ccPRa4Qu.s", line 19: error: statement syntax /usr/bin/as: "/var/tmp//ccPRa4Qu.s", line 20: error: unknown opcode ".symver" /usr/bin/as: "/var/tmp//ccPRa4Qu.s", line 20: error: invalid character (0x40) /usr/bin/as: "/var/tmp//ccPRa4Qu.s", line 20: error: invalid character (0x40) /usr/bin/as: "/var/tmp//ccPRa4Qu.s", line 20: error: statement syntax /usr/bin/as: "/var/tmp//ccPRa4Qu.s", line 21: error: unknown opcode ".symver" /usr/bin/as: "/var/tmp//ccPRa4Qu.s", line 21: error: invalid character (0x40) /usr/bin/as: "/var/tmp//ccPRa4Qu.s", line 21: error: statement syntax /usr/bin/as: "/var/tmp//ccPRa4Qu.s", line 22: error: unknown opcode ".symver" /usr/bin/as: "/var/tmp//ccPRa4Qu.s", line 22: error: invalid character (0x40) /usr/bin/as: "/var/tmp//ccPRa4Qu.s", line 22: error: invalid character (0x40) /usr/bin/as: "/var/tmp//ccPRa4Qu.s", line 22: error: statement syntax /usr/bin/as: "/var/tmp//ccPRa4Qu.s", line 23: error: unknown opcode ".symver" /usr/bin/as: "/var/tmp//ccPRa4Qu.s", line 23: error: invalid character (0x40) /usr/bin/as: "/var/tmp//ccPRa4Qu.s", line 23: error: statement syntax /usr/bin/as: "/var/tmp//ccPRa4Qu.s", line 24: error: unknown opcode ".symver" /usr/bin/as: "/var/tmp//ccPRa4Qu.s", line 24: error: invalid character (0x40) /usr/bin/as: "/var/tmp//ccPRa4Qu.s", line 24: error: invalid character (0x40) /usr/bin/as: "/var/tmp//ccPRa4Qu.s", line 24: error: statement syntax /usr/bin/as: "/var/tmp//ccPRa4Qu.s", line 25: error: unknown opcode ".symver" /usr/bin/as: "/var/tmp//ccPRa4Qu.s", line 25: error: invalid character (0x40) /usr/bin/as: "/var/tmp//ccPRa4Qu.s", line 25: error: statement syntax /usr/bin/as: "/var/tmp//ccPRa4Qu.s", line 26: error: unknown opcode ".symver" /usr/bin/as: "/var/tmp//ccPRa4Qu.s", line 26: error: invalid character (0x40) /usr/bin/as: "/var/tmp//ccPRa4Qu.s", line 26: error: invalid character (0x40) /usr/bin/as: "/var/tmp//ccPRa4Qu.s", line 26: error: statement syntax /usr/bin/as: "/var/tmp//ccPRa4Qu.s", line 27: error: unknown opcode ".symver" /usr/bin/as: "/var/tmp//ccPRa4Qu.s", line 27: error: invalid character (0x40) /usr/bin/as: "/var/tmp//ccPRa4Qu.s", line 27: error: statement syntax /usr/bin/as: "/var/tmp//ccPRa4Qu.s", line 28: error: unknown opcode ".symver" /usr/bin/as: "/var/tmp//ccPRa4Qu.s", line 28: error: invalid character (0x40) /usr/bin/as: "/var/tmp//ccPRa4Qu.s", line 28: error: invalid character (0x40) /usr/bin/as: "/var/tmp//ccPRa4Qu.s", line 28: error: statement syntax /usr/bin/as: "/var/tmp//ccPRa4Qu.s", line 29: error: unknown opcode ".symver" /usr/bin/as: "/var/tmp//ccPRa4Qu.s", line 29: error: invalid character (0x40) /usr/bin/as: "/var/tmp//ccPRa4Qu.s", line 29: error: statement syntax make[4]: *** [lock.lo] Error 1 Obviously, the system assembler doesn't support .symver, thus config/posix/lock.c (at least) must not use omp_lock_symver. I'm unsure how best to fix this: one could either augment LIBGOMP_ENABLE_SYMVERS to check for assembler support (which may be too much) or introduce an additional conditional for the use of .symver. -- Summary: libgomp fails to build if assembler doesn't support .symver Product: gcc Version: 4.4.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: libgomp AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: ro at gcc dot gnu dot org GCC build triplet: sparc-sun-solaris2.11 GCC host triplet: sparc-sun-solaris2.11 GCC target triplet: sparc-sun-solaris2.11 http://gcc.gnu.org/bugzilla/show_bug.cgi?id=38086