pkgsrc-Bugs archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Re: pkg/45256: lang/gcc46 not working properly on Solaris



The following reply was made to PR pkg/45256; it has been noted by GNATS.

From: =?ISO-8859-1?Q?J=F6rn_Clausen?= <joern.clausen%uni-bielefeld.de@localhost>
To: gnats-bugs%NetBSD.org@localhost
Cc: 
Subject: Re: pkg/45256: lang/gcc46 not working properly on Solaris
Date: Tue, 23 Aug 2011 13:11:56 +0200

 When setting LD_RUN_PATH to $pkgsrcdir/gcc46/lib while building 
 lang/gcc46, GCC's own libraries are built with correct rpaths, so they 
 find their own libgcc_s:
 
 $ ldd /pkgsrc/gcc46-ld/gcc46/lib/libstdc++.so.6.0.16
          libm.so.2 =>     /lib/libm.so.2
          libc.so.1 =>     /lib/libc.so.1
          libgcc_s.so.1 =>         /pkgsrc/gcc46-ld/gcc46/lib/libgcc_s.so.1
 
 At least the 32 bit versions do, the 64 bit versions are broken by 
 definition:
 
 $ ldd /pkgsrc/gcc46-ld/gcc46/lib/amd64/libstdc++.so.6.0.16
          libm.so.2 =>     /lib/64/libm.so.2
          libc.so.1 =>     /lib/64/libc.so.1
          libgcc_s.so.1 => 
 /pkgsrc/gcc46-ld/gcc46/lib/libgcc_s.so.1  - wrong ELF class: ELFCLASS32
 
 But this is not worse than the situation before. For me personally, this 
 is close enough to a working GCC as I can get. As pkgsrc does not 
 support mixed ABIs anyway, it might be sufficient to chose either 
 runpath during the build.
 
 To make this better reproducible, I added
 
 LDFLAGS+=               -R${GCC_PREFIX}/lib
 
 to the Makefile, and did not set LD_RUN_PATH, but the resulting 
 libraries where broken again. In the light of the discussion about 
 clearing the environment in pkgsrc, a different solution than setting 
 LD_RUN_PATH is probably needed. Maybe somebody has the 
 knowledge/time/stamina to dive into the makefiles and fix this at the 
 right places.
 
 All in all, gcc46 on Solaris is severely broken, and I don't expect a 
 true fix anytime soon. I talked to the maintainer of the Solaris 2 port 
 (who also takes care of the IRIX and Tru64 ports), and the differences 
 between all the supported platforms, plus the ignorance of some GCC 
 developers to real world problems (i.e. "it works on my computer") makes 
 it very hard to come up with a real solution.
 
 -- 
   Jörn Clausen                             
joern.clausen%uni-bielefeld.de@localhost
   Hochschulrechenzentrum                 http://www.uni-bielefeld.de/hrz/
   Universität Bielefeld
 


Home | Main Index | Thread Index | Old Index