[Bug inline-asm/32787] New: Sun Studio 12 Undefined symbol addl
Compiling gcc-4.2.1-RC-20070712 with Sun Studio 12 on Solaris Express Community Edition b66: goanna% CC -V CC: Sun C++ 5.9 SunOS_i386 2007/05/03 goanna% With the environment variables: CXXCPP=CC -E -Xs CPP=cc -E -Xs LD=/opt/jdsbld/bin/ld-wrapper CXX64=/opt/SunStudio12/SUNWspro/bin/CC CXX32=/opt/SunStudio12/SUNWspro/bin/CC CXX=/opt/SunStudio12/SUNWspro/bin/CC CC64=/opt/SunStudio12/SUNWspro/bin/cc CC32=/opt/SunStudio12/SUNWspro/bin/cc CC=/opt/SunStudio12/SUNWspro/bin/cc CCDIR=/opt/SunStudio12/SUNWspro/bin Configured like: goanna% pwd /h/goanna/2/ts/gcc/gcc-4.2.1-RC-20070712 goanna% mkdir objdir goanna% cd objdir goanna% ../configure --prefix=/h/goanna/1/s_5.11/gcc --with-as=/usr/ccs/bin/as --with-ld=/usr/ccs/bin/ld --enable-shared ... The make fails with: /opt/SunStudio12/SUNWspro/bin/cc -c -g -DIN_GCC -DHAVE_CONFIG_H -I. -I. -I../../gcc -I../../gcc/. -I../../gcc/../include -I./../intl -I../../gcc/../libcpp/include -I../../gcc/../libdecnumber -I../libdecnumber -I. -I. -I../../gcc -I../../gcc/. -I../../gcc/../include -I./../intl -I../../gcc/../libcpp/include -I../../gcc/../libdecnumber -I../libdecnumber ../../gcc/config/i386/driver-i386.c "../../gcc/config/i386/driver-i386.c", line 96: warning: parameter in inline asm statement unused: %0 "../../gcc/config/i386/driver-i386.c", line 96: warning: parameter in inline asm statement unused: %2 "../../gcc/config/i386/driver-i386.c", line 96: warning: parameter in inline asm statement unused: %3 "../../gcc/config/i386/driver-i386.c", line 96: warning: parameter in inline asm statement unused: %4 "../../gcc/config/i386/driver-i386.c", line 103: warning: parameter in inline asm statement unused: %0 "../../gcc/config/i386/driver-i386.c", line 103: warning: parameter in inline asm statement unused: %2 "../../gcc/config/i386/driver-i386.c", line 103: warning: parameter in inline asm statement unused: %3 "../../gcc/config/i386/driver-i386.c", line 103: warning: parameter in inline asm statement unused: %4 "../../gcc/config/i386/driver-i386.c", line 113: warning: parameter in inline asm statement unused: %0 "../../gcc/config/i386/driver-i386.c", line 113: warning: parameter in inline asm statement unused: %2 "../../gcc/config/i386/driver-i386.c", line 113: warning: parameter in inline asm statement unused: %3 "../../gcc/config/i386/driver-i386.c", line 113: warning: parameter in inline asm statement unused: %4 "../../gcc/config/i386/driver-i386.c", line 117: warning: parameter in inline asm statement unused: %0 "../../gcc/config/i386/driver-i386.c", line 117: warning: parameter in inline asm statement unused: %2 "../../gcc/config/i386/driver-i386.c", line 117: warning: parameter in inline asm statement unused: %3 "../../gcc/config/i386/driver-i386.c", line 117: warning: parameter in inline asm statement unused: %4 "../../gcc/config/i386/driver-i386.c", line 118: warning: integer overflow detected: op "<<" /opt/SunStudio12/SUNWspro/bin/cc -g -DIN_GCC -DHAVE_CONFIG_H -o xgcc gcc.o opts-common.o gcc-options.o gccspec.o \ intl.o prefix.o version.o driver-i386.o ../libcpp/libcpp.a ./../intl/libintl.a ../libiberty/libiberty.a ../libdecnumber/libdecnumber.a Undefined first referenced symbol in file addldriver-i386.o ld: fatal: Symbol referencing errors. No output written to xgcc make[3]: *** [xgcc] Error 1 make[3]: Leaving directory `/h/goanna/2/ts/gcc/gcc-4.2.1-RC-20070712/objdir/gcc' make[2]: *** [all-stage1-gcc] Error 2 make[2]: Leaving directory `/h/goanna/2/ts/gcc/gcc-4.2.1-RC-20070712/objdir' make[1]: *** [stage1-bubble] Error 2 make[1]: Leaving directory `/h/goanna/2/ts/gcc/gcc-4.2.1-RC-20070712/objdir' make: *** [all] Error 2 Compilation exited abnormally with code 2 at Mon Jul 16 23:17:21 -- Summary: Sun Studio 12 Undefined symbol addl Product: gcc Version: 4.2.1 Status: UNCONFIRMED Severity: normal Priority: P3 Component: inline-asm AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: markwright at internode dot on dot net GCC build triplet: i386-pc-solaris2.11 GCC host triplet: i386-pc-solaris2.11 GCC target triplet: i386-pc-solaris2.11 http://gcc.gnu.org/bugzilla/show_bug.cgi?id=32787
[Bug target/32787] Sun Studio 12 Undefined symbol addl
--- Comment #2 from markwright at internode dot on dot net 2007-07-17 04:39 --- Subject: Re: Sun Studio 12 Undefined symbol addl > --- Comment #1 from pinskia at gcc dot gnu dot org 2007-07-17 > 04:26 --- Try this patch: ... Thanks for the suggestion. I have a patch which appears to work in a simple test with Sun Studio 12. I will submit the svn diff gcc for the patch soon. -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=32787
[Bug target/32787] Sun Studio 12 Undefined symbol addl
--- Comment #3 from markwright at internode dot on dot net 2007-07-17 07:14 --- Created an attachment (id=13929) --> (http://gcc.gnu.org/bugzilla/attachment.cgi?id=13929&action=view) Proposed patch for bug 32787 The proposed patch compiles with Sun Studio 12. I wrote the following little test program: goanna% cat ../../gcc/config/i386/test_host_detect_local_cpu.c #include #include #include #include #include "config.h" #include "system.h" #include "coretypes.h" #include "tm.h" const char *host_detect_local_cpu (int argc, const char **argv); int main(int argc, char **argv) { const char *bargv[1] = { "arch" }; const char *local_cpu = host_detect_local_cpu (1, bargv); printf("%s\n", local_cpu); return 0; } void fancy_abort(const char *a, int b, const char *c) { abort(); } goanna% Compiling it with Sun Studio 12 give the following result: goanna% /opt/SunStudio12/SUNWspro/bin/cc -c -errtags=yes +w -g -DIN_GCC -DHAVE_CONFIG_H -I. -I. -I../../gcc -I../../gcc/. -I../../gcc/../include -I./../intl -I../../gcc/../libcpp/include -I../../gcc/../libdecnumber -I../libdecnumber-I. -I. -I../../gcc -I../../gcc/. -I../../gcc/../include -I./../intl -I../../gcc/../libcpp/include -I../../gcc/../libdecnumber -I../libdecnumber ../../gcc/config/i386/test_host_detect_local_cpu.c goanna% /opt/SunStudio12/SUNWspro/bin/cc -c -errtags=yes +w -g -DIN_GCC -DHAVE_CONFIG_H -I. -I. -I../../gcc -I../../gcc/. -I../../gcc/../include -I./../intl -I../../gcc/../libcpp/include -I../../gcc/../libdecnumber -I../libdecnumber-I. -I. -I../../gcc -I../../gcc/. -I../../gcc/../include -I./../intl -I../../gcc/../libcpp/include -I../../gcc/../libdecnumber -I../libdecnumber ../../gcc/config/i386/driver-i386.c "../../gcc/config/i386/driver-i386.c", line 126: warning: integer overflow detected: op "<<" (E_INTEGER_OVERFLOW_DETECTED) goanna% cc -o t driver-i386.o test_host_detect_local_cpu.o ../libcpp/libcpp.a ./../intl/libintl.a ../libiberty/libiberty.a ../libdecnumber/libdecnumber.a goanna% ./t -march=k8 goanna% After applying the patch, the gcc build with Sun Studio 12 then fails due to following Sun Studio 12 bug (Sun intend to patch this soon, and this Sun Studio 12 bug 6470247 has nothing to do with this gcc patch): http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=6470247 -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=32787
[Bug inline-asm/32788] New: Sun Studio 12 Undefined symbol addl
Compiling gcc-4.2.1-RC-20070712 with Sun Studio 12 on Solaris Express Community Edition b66: goanna% CC -V CC: Sun C++ 5.9 SunOS_i386 2007/05/03 goanna% With the environment variables: CXXCPP=CC -E -Xs CPP=cc -E -Xs LD=/opt/jdsbld/bin/ld-wrapper CXX64=/opt/SunStudio12/SUNWspro/bin/CC CXX32=/opt/SunStudio12/SUNWspro/bin/CC CXX=/opt/SunStudio12/SUNWspro/bin/CC CC64=/opt/SunStudio12/SUNWspro/bin/cc CC32=/opt/SunStudio12/SUNWspro/bin/cc CC=/opt/SunStudio12/SUNWspro/bin/cc CCDIR=/opt/SunStudio12/SUNWspro/bin Configured like: goanna% pwd /h/goanna/2/ts/gcc/gcc-4.2.1-RC-20070712 goanna% mkdir objdir goanna% cd objdir goanna% ../configure --prefix=/h/goanna/1/s_5.11/gcc --with-as=/usr/ccs/bin/as --with-ld=/usr/ccs/bin/ld --enable-shared ... The make fails with: /opt/SunStudio12/SUNWspro/bin/cc -c -g -DIN_GCC -DHAVE_CONFIG_H -I. -I. -I../../gcc -I../../gcc/. -I../../gcc/../include -I./../intl -I../../gcc/../libcpp/include -I../../gcc/../libdecnumber -I../libdecnumber -I. -I. -I../../gcc -I../../gcc/. -I../../gcc/../include -I./../intl -I../../gcc/../libcpp/include -I../../gcc/../libdecnumber -I../libdecnumber ../../gcc/config/i386/driver-i386.c "../../gcc/config/i386/driver-i386.c", line 96: warning: parameter in inline asm statement unused: %0 "../../gcc/config/i386/driver-i386.c", line 96: warning: parameter in inline asm statement unused: %2 "../../gcc/config/i386/driver-i386.c", line 96: warning: parameter in inline asm statement unused: %3 "../../gcc/config/i386/driver-i386.c", line 96: warning: parameter in inline asm statement unused: %4 "../../gcc/config/i386/driver-i386.c", line 103: warning: parameter in inline asm statement unused: %0 "../../gcc/config/i386/driver-i386.c", line 103: warning: parameter in inline asm statement unused: %2 "../../gcc/config/i386/driver-i386.c", line 103: warning: parameter in inline asm statement unused: %3 "../../gcc/config/i386/driver-i386.c", line 103: warning: parameter in inline asm statement unused: %4 "../../gcc/config/i386/driver-i386.c", line 113: warning: parameter in inline asm statement unused: %0 "../../gcc/config/i386/driver-i386.c", line 113: warning: parameter in inline asm statement unused: %2 "../../gcc/config/i386/driver-i386.c", line 113: warning: parameter in inline asm statement unused: %3 "../../gcc/config/i386/driver-i386.c", line 113: warning: parameter in inline asm statement unused: %4 "../../gcc/config/i386/driver-i386.c", line 117: warning: parameter in inline asm statement unused: %0 "../../gcc/config/i386/driver-i386.c", line 117: warning: parameter in inline asm statement unused: %2 "../../gcc/config/i386/driver-i386.c", line 117: warning: parameter in inline asm statement unused: %3 "../../gcc/config/i386/driver-i386.c", line 117: warning: parameter in inline asm statement unused: %4 "../../gcc/config/i386/driver-i386.c", line 118: warning: integer overflow detected: op "<<" /opt/SunStudio12/SUNWspro/bin/cc -g -DIN_GCC -DHAVE_CONFIG_H -o xgcc gcc.o opts-common.o gcc-options.o gccspec.o \ intl.o prefix.o version.o driver-i386.o ../libcpp/libcpp.a ./../intl/libintl.a ../libiberty/libiberty.a ../libdecnumber/libdecnumber.a Undefined first referenced symbol in file addldriver-i386.o ld: fatal: Symbol referencing errors. No output written to xgcc make[3]: *** [xgcc] Error 1 make[3]: Leaving directory `/h/goanna/2/ts/gcc/gcc-4.2.1-RC-20070712/objdir/gcc' make[2]: *** [all-stage1-gcc] Error 2 make[2]: Leaving directory `/h/goanna/2/ts/gcc/gcc-4.2.1-RC-20070712/objdir' make[1]: *** [stage1-bubble] Error 2 make[1]: Leaving directory `/h/goanna/2/ts/gcc/gcc-4.2.1-RC-20070712/objdir' make: *** [all] Error 2 Compilation exited abnormally with code 2 at Mon Jul 16 23:17:21 -- Summary: Sun Studio 12 Undefined symbol addl Product: gcc Version: 4.2.1 Status: UNCONFIRMED Severity: normal Priority: P3 Component: inline-asm AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: markwright at internode dot on dot net GCC build triplet: i386-pc-solaris2.11 GCC host triplet: i386-pc-solaris2.11 GCC target triplet: i386-pc-solaris2.11 http://gcc.gnu.org/bugzilla/show_bug.cgi?id=32788
[Bug inline-asm/32788] Sun Studio 12 Undefined symbol addl
--- Comment #1 from markwright at internode dot on dot net 2007-07-17 07:53 --- Sorry, accidently created a duplicate of 32787, closing 32788. *** This bug has been marked as a duplicate of 32787 *** -- markwright at internode dot on dot net changed: What|Removed |Added Status|UNCONFIRMED |RESOLVED Resolution||DUPLICATE http://gcc.gnu.org/bugzilla/show_bug.cgi?id=32788
[Bug target/32787] Sun Studio 12 Undefined symbol addl
--- Comment #6 from markwright at internode dot on dot net 2007-07-17 07:57 --- Created an attachment (id=13930) --> (http://gcc.gnu.org/bugzilla/attachment.cgi?id=13930&action=view) Patch to address comment #4. Simplified as pinskia noted: "GCC_VERSION will always be defined even if you are not compiling with GCC". -- markwright at internode dot on dot net changed: What|Removed |Added Attachment #13929|0 |1 is obsolete|| http://gcc.gnu.org/bugzilla/show_bug.cgi?id=32787
[Bug target/32787] Sun Studio 12 Undefined symbol addl
--- Comment #5 from markwright at internode dot on dot net 2007-07-17 07:53 --- *** Bug 32788 has been marked as a duplicate of this bug. *** -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=32787
[Bug target/32787] [4.2/4.3 Regression] Sun Studio 12 Undefined symbol addl
--- Comment #8 from markwright at internode dot on dot net 2007-08-14 02:54 --- Created an attachment (id=14056) --> (http://gcc.gnu.org/bugzilla/attachment.cgi?id=14056&action=view) Patch to address comment #7. Thanks for the suggestion. I think it should use the assembler when compiling with Sun Studio 12. I have updated the patch so it will compile with both Sun Studio 11 and Sun Studio 12. This patch is used to build gcc 4.2.1 on Solaris in the Open Solaris spec-files-extra project: http://pkgbuild.svn.sourceforge.net/viewvc/pkgbuild/spec-files-extra/trunk/SFEgcc.spec?view=log http://pkgbuild.svn.sourceforge.net/viewvc/pkgbuild/spec-files-extra/trunk/patches/gcc-01-bug-32787.diff?view=log Thanks, Mark -- markwright at internode dot on dot net changed: What|Removed |Added Attachment #13930|0 |1 is obsolete|| http://gcc.gnu.org/bugzilla/show_bug.cgi?id=32787