Bug 199880

Summary: gcc-3.4.6-3 fails to build on sparc64
Product: Red Hat Enterprise Linux 4 Reporter: Johnny Hughes <johnny>
Component: gccAssignee: Jakub Jelinek <jakub>
Status: CLOSED WONTFIX QA Contact:
Severity: medium Docs Contact:
Priority: medium    
Version: 4.0   
Target Milestone: ---   
Target Release: ---   
Hardware: sparc64   
OS: Linux   
Whiteboard:
Fixed In Version: Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2006-08-03 16:45:16 UTC Type: ---
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:

Description Johnny Hughes 2006-07-23 21:46:25 UTC
Description of problem:
gcc-3.4.6-3.src.rpm fails to build on sparc64

Version-Release number of selected component (if applicable):
gcc-3.4.6-3.src.rpm

How reproducible:
Always

Steps to Reproduce:
The patch gcc34-pr23591.patch causes sparc64 to fail with the following error:

/home/buildcentos/rpmbuild/BUILD/gcc-3.4.6-20060404/obj-sparc64-redhat-linux/gcc/xgcc
-shared-libgcc
-B/home/buildcentos/rpmbuild/BUILD/gcc-3.4.6-20060404/obj-sparc64-redhat-linux/gcc/
-nostdinc++
-L/home/buildcentos/rpmbuild/BUILD/gcc-3.4.6-20060404/obj-sparc64-redhat-linux/sparc64-redhat-linux/libstdc++-v3/src
-L/home/buildcentos/rpmbuild/BUILD/gcc-3.4.6-20060404/obj-sparc64-redhat-linux/sparc64-redhat-linux/libstdc++-v3/src/.libs
-B/usr/sparc64-redhat-linux/bin/ -B/usr/sparc64-redhat-linux/lib/ -isystem
/usr/sparc64-redhat-linux/include -isystem /usr/sparc64-redhat-linux/sys-include
-shared -nostdlib /usr/lib/gcc/sparc64-redhat-linux/../../../lib64/crti.o
/home/buildcentos/rpmbuild/BUILD/gcc-3.4.6-20060404/obj-sparc64-redhat-linux/gcc/crtbeginS.o
 .libs/allocator.o .libs/codecvt.o .libs/complex_io.o .libs/ctype.o
.libs/debug.o .libs/debug_list.o .libs/functexcept.o .libs/globals_locale.o
.libs/globals_io.o .libs/ios.o .libs/ios_failure.o .libs/ios_init.o
.libs/ios_locale.o .libs/limits.o .libs/list.o .libs/locale.o
.libs/locale_init.o .libs/locale_facets.o .libs/localename.o .libs/stdexcept.o
.libs/strstream.o .libs/tree.o .libs/allocator-inst.o .libs/concept-inst.o
.libs/fstream-inst.o .libs/ext-inst.o .libs/io-inst.o .libs/istream-inst.o
.libs/locale-inst.o .libs/locale-misc-inst.o .libs/misc-inst.o
.libs/ostream-inst.o .libs/sstream-inst.o .libs/streambuf-inst.o
.libs/string-inst.o .libs/valarray-inst.o .libs/wlocale-inst.o
.libs/wstring-inst.o .libs/atomicity.o .libs/codecvt_members.o
.libs/collate_members.o .libs/ctype_members.o .libs/messages_members.o
.libs/monetary_members.o .libs/numeric_members.o .libs/time_members.o
.libs/basic_file.o .libs/c++locale.o -Wl,--whole-archive
../libmath/.libs/libmath.a ../libsupc++/.libs/libsupc++convenience.a
-Wl,--no-whole-archive 
-L/home/buildcentos/rpmbuild/BUILD/gcc-3.4.6-20060404/obj-sparc64-redhat-linux/sparc64-redhat-linux/libstdc++-v3/src
-L/home/buildcentos/rpmbuild/BUILD/gcc-3.4.6-20060404/obj-sparc64-redhat-linux/sparc64-redhat-linux/libstdc++-v3/src/.libs
-lm ../libmath/.libs/libmath.a -lm ../libsupc++/.libs/libsupc++convenience.a -lm
-L/home/buildcentos/rpmbuild/BUILD/gcc-3.4.6-20060404/obj-sparc64-redhat-linux/gcc
-L/usr/lib/gcc/sparc64-redhat-linux/../../../lib64
-L/usr/lib/gcc/sparc64-redhat-linux/../.. -L/lib/../lib64 -L/usr/lib/../lib64
-lgcc_s -lc -lgcc_s -lm -lgcc_s -lc -lgcc_s  
/home/buildcentos/rpmbuild/BUILD/gcc-3.4.6-20060404/obj-sparc64-redhat-linux/gcc/crtendS.o
/usr/lib/gcc/sparc64-redhat-linux/../../../lib64/crtn.o  -Wl,-O1
-Wl,--version-script=libstdc++-symbol.ver -Wl,-soname -Wl,libstdc++.so.6 -o
.libs/libstdc++.so.6.0.3
/usr/bin/ld: ../libsupc++/.libs/libsupc++convenience.a(eh_globals.o):
check_relocs: unhandled reloc type 67
../libsupc++/.libs/libsupc++convenience.a(eh_globals.o): could not read symbols:
No more archived files
collect2: ld returned 1 exit status

---------------
Wrapping gcc34-pr23591.patch with a %ifnarch sparc64 allows gcc-3.4.6-3.src.rpm
to compile, obviously without that patch installed.

Comment 1 Jakub Jelinek 2006-08-03 16:45:16 UTC
Well, it would be better to just patch binutils so that it supports TLS on
sparc64 (e.g. FC5ish, maybe even FC4ish binutils support that already) and
glibc to support NPTL on sparc64 as well.
In any case, the changes are too large to be added to RHEL4 updates, so you
should keep them as CentOS specific changes.  RHEL5 based stuff should work.