[bug-notifications] [gcc4core 0001405]: 64-bit libraries paths are not correct

Mantis Bug Tracker noreply at opencsw.org
Sun May 17 17:57:31 CEST 2009


The following issue has been RESOLVED. 
====================================================================== 
http://www.opencsw.org/bugtrack/view.php?id=1405 
====================================================================== 
Reported By:                tmalik
Assigned To:                pfelecan
====================================================================== 
Project:                    gcc4core
Issue ID:                   1405
Category:                   regular use
Reproducibility:            always
Severity:                   feature
Priority:                   normal
Status:                     resolved
Resolution:                 fixed
Fixed in Version:           
====================================================================== 
Date Submitted:             2006-01-19 08:46 CET
Last Modified:              2009-05-17 17:57 CEST
====================================================================== 
Summary:                    64-bit libraries paths are not correct
Description: 
When i compile with -m64 option i get following error on Solaris 2.10
whereas without -m64 option it compile works great.
ld: fatal: file
/opt/csw/gcc4/lib/gcc/sparc-sun-solaris2.8/4.0.2/../../../libgcc_s.so:
wrong ELF class: ELFCLASS32

Also when i run configure with GCC4 it can\'t detect Libinconv but if I
run configure with GCC3 it does detect libinconv correctly.
====================================================================== 

---------------------------------------------------------------------- 
 (0002987) pfelecan (reporter) - 2006-01-19 14:22
 http://www.opencsw.org/bugtrack/view.php?id=1405#c2987 
---------------------------------------------------------------------- 
Indeed,
/opt/csw/gcc4/lib/gcc/sparc-sun-solaris2.8/4.0.2/../../../libgcc_s.so is a
32 bit library. I wonder how it get linked in a 64 bit generation;
normally, the /opt/csw/gcc4/lib/spqrcv9/libgcc_s.so is used in this case
and it is a 64 bit library.

Can you give me a minimal C program which manifest this behaviour?

Please re-execute your example using the -v switch and attach the output
thus obtained.

Also, I gather from your example that it is extracted from a libtool based
link phase. Am I correct? 

---------------------------------------------------------------------- 
 (0002989) tmalik (reporter) - 2006-01-19 21:21
 http://www.opencsw.org/bugtrack/view.php?id=1405#c2989 
---------------------------------------------------------------------- 
Hi,
1. I am new to unix world now.... last i did was 20 years ago....so am
quite rusty.... I am trying to build a package (an IBM mainframe
emulator)..... here is the link for entire source as ditsributed by the
developers: http://www.hercules-390.org/hercules-3.03.1.tar.gz.
this will allow you to run configure and make yourself.

2. Attached is the log from Configure and make.... that i ran.
http://solutionint.com/configure-and-make.log.....
pls also notice that it did not detect libiconv whereas gcc3 sucessfuly
detects that.


Thanks for your help. 

---------------------------------------------------------------------- 
 (0002990) tmalik (reporter) - 2006-01-19 21:27
 http://www.opencsw.org/bugtrack/view.php?id=1405#c2990 
---------------------------------------------------------------------- 
Sorry, i forgot to attach the output with -v option, here it is:

/opt/csw/gcc4/bin/gcc  -Wall -v -m64 -save-temps  -shared -Wl,-h
-Wl,libhercs.so -o .libs/libhercs.so  .libs/hsys.o  -lz -lresolv -lnsl
-lsocket -lm -ldl -lbz2 -lc  -m64
Reading specs from /opt/csw/gcc4/lib/gcc/sparc-sun-solaris2.8/4.0.2/specs
Target: sparc-sun-solaris2.8
Configured with: ../sources/gcc-4.0.2/configure --prefix=/opt/csw/gcc4
--with-local-prefix=/opt/csw --without-gnu-as --with-as=/usr/ccs/bin/as
--without-gnu-ld --with-ld=/usr/ccs/bin/ld --enable-threads=posix
--enable-shared --enable-multilib --enable-nls --with-included-gettext
--with-libiconv-prefix=/opt/csw --with-x --enable-java-awt=xlib
--with-system-zlib --enable-languages=c,c++,f95,java,objc,ada
Thread model: posix
gcc version 4.0.2
 /opt/csw/gcc4/libexec/gcc/sparc-sun-solaris2.8/4.0.2/collect2 -V -G -dy
-z text -R /opt/csw/gcc4/lib/sparcv9 -Y
P,/opt/csw/gcc4/lib/sparcv9:/usr/lib/sparcv9 -Qy -o .libs/libhercs.so
/opt/csw/gcc4/lib/gcc/sparc-sun-solaris2.8/4.0.2/sparcv9/crti.o
/usr/ccs/lib/sparcv9/values-Xa.o
/opt/csw/gcc4/lib/gcc/sparc-sun-solaris2.8/4.0.2/sparcv9/crtbegin.o
-L/opt/csw/gcc4/lib/gcc/sparc-sun-solaris2.8/4.0.2/sparcv9
-L/opt/csw/gcc4/lib/gcc/sparc-sun-solaris2.8/4.0.2 -L/usr/ccs/bin/sparcv9
-L/usr/ccs/bin -L/usr/ccs/lib/sparcv9 -L/usr/ccs/lib
-L/opt/csw/gcc4/lib/gcc/sparc-sun-solaris2.8/4.0.2/../../../sparcv9
-L/opt/csw/gcc4/lib/gcc/sparc-sun-solaris2.8/4.0.2/../../.. -L/lib/sparcv9
-L/usr/lib/sparcv9 -h libhercs.so .libs/hsys.o -lz -lresolv -lnsl -lsocket
-lm -ldl -lbz2 -lc -lgcc_s -lgcc_s
/opt/csw/gcc4/lib/gcc/sparc-sun-solaris2.8/4.0.2/sparcv9/crtend.o
/opt/csw/gcc4/lib/gcc/sparc-sun-solaris2.8/4.0.2/sparcv9/crtn.o
ld: Software Generation Utilities - Solaris Link Editors: 5.10-1.482
ld: fatal: file
/opt/csw/gcc4/lib/gcc/sparc-sun-solaris2.8/4.0.2/../../../libgcc_s.so:
wrong ELF class: ELFCLASS32
ld: fatal: file
/opt/csw/gcc4/lib/gcc/sparc-sun-solaris2.8/4.0.2/../../../libgcc_s.so:
wrong ELF class: ELFCLASS32
ld: fatal: File processing errors. No output written to .libs/libhercs.so
collect2: ld returned 1 exit status 

---------------------------------------------------------------------- 
 (0002992) james (reporter) - 2006-01-20 07:54
 http://www.opencsw.org/bugtrack/view.php?id=1405#c2992 
---------------------------------------------------------------------- 
See also:
http://www.blastwave.org/mantis/view_bug_page.php?f_id=0001118 

---------------------------------------------------------------------- 
 (0002993) pfelecan (reporter) - 2006-01-20 10:52
 http://www.opencsw.org/bugtrack/view.php?id=1405#c2993 
---------------------------------------------------------------------- 
1118 is not the same case: here we have C, there we have C++. The same
example as in 1118 works when on a C program. I\'m continuing the
investigations. 

---------------------------------------------------------------------- 
 (0002994) tmalik (reporter) - 2006-01-20 11:16
 http://www.opencsw.org/bugtrack/view.php?id=1405#c2994 
---------------------------------------------------------------------- 
Thanks pfelecan for your update. I really apprecaite your efforts. 

---------------------------------------------------------------------- 
 (0002995) james (reporter) - 2006-01-21 05:56
 http://www.opencsw.org/bugtrack/view.php?id=1405#c2995 
---------------------------------------------------------------------- 
1118 is similar, it\'s just that C++ causes inclusion of -lgcc_s for a
trivial program.  Try:

$ echo \"main(){}\" > source.c
$ /opt/csw/gcc4/bin/gcc -m64 source.c -lgcc_s
ld: fatal: file
/opt/csw/gcc4/lib/gcc/sparc-sun-solaris2.8/4.0.2/../../../libgcc_s.so:
wrong ELF class: ELFCLASS32
ld: fatal: File processing errors. No output written to a.out
collect2: ld returned 1 exit status

and note the example above uses lgcc_s

ld is finding /opt/csw/gcc4/lib/libgcc_s.so.1 before
/opt/csw/gcc4/lib/sparcv9/libgcc_s.so.1 

---------------------------------------------------------------------- 
 (0002996) pfelecan (reporter) - 2006-01-21 16:02
 http://www.opencsw.org/bugtrack/view.php?id=1405#c2996 
---------------------------------------------------------------------- 
Using:

LD_OPTIONS=\'-Dfiles,libs,detail\' gcc -v -m64 t.c -lgcc_s -o t

and

LD_OPTIONS=\'-Dfiles,libs,detail\' g++ -v -m64 txx.cc -o txx

I found the culprit: a missing symbolic link. To link 64 bit objects you
must do, as root, the following:

cd /opt/csw/gcc4/lib/sparcv9
ln -s libgcc_s.so.1 libgcc_s.so
installf CSWgcc4core /opt/csw/gcc4/lib/sparcv9/libgcc_s.so
installf -f CSWgcc4core

I\'ll put this on the package\'s main page and will correct in the package
for the next release, probably 4.0.3

Note that the deep reason of this is an incorrect specification file ---
/opt/csw/lib/gcc/sparc-sun-solaris2.8/4.0.2/specs --- and the correction
that I\'ll made available in the future packages will use this.

edited on: 01-21 16:02 

---------------------------------------------------------------------- 
 (0006126) mwatters (manager) - 2009-05-17 17:57
 http://www.opencsw.org/bugtrack/view.php?id=1405#c6126 
---------------------------------------------------------------------- 
fixed in the 4.3.3 release 

Issue History 
Date Modified    Username       Field                    Change               
====================================================================== 
2009-05-17 17:57 mwatters       Note Added: 0006126                          
2009-05-17 17:57 mwatters       Status                   assigned => resolved
2009-05-17 17:57 mwatters       Resolution               open => fixed       
======================================================================




More information about the bug-notifications mailing list