Jeremy Huntwork wrote:

> Jeremy Huntwork wrote:
>> As an aside, the effects of their not having a /lib64 dir or symlink 
>> seems to be that if I want to use a CLFS system as a host, I *must* use 
>> their pure64 patch. I tried a build last night without using that patch 
>> and just using --disable-multilib and appropriate symlinks and gcc pass1 
>> failed when it got to stage1 of the bootstrap. I didn't get the 
>> opportunity to add a /lib64 symlink and test it further...

Hmm, that's interesting. I didn't expect that.

>> I suppose that if the above is correct this also means that your native 
>> build expects a /lib64 dir or symlink on the host?
> 
> This is confirmed. Adding /lib64 and /usr/lib64 symlinks to a CLFS host 
> enables gcc to bootstrap in pass1 without using the pure64 patch.

Initially I thought this part of the pure 64 patch:

--- gcc-4.2.0.orig/gcc/config/i386/t-linux64    2007-05-16 19:21:19.000000000 
-0400
+++ gcc-4.2.0/gcc/config/i386/t-linux64 2007-05-18 17:04:36.000000000 -0400
@@ -6,7 +6,7 @@
 
 MULTILIB_OPTIONS = m64/m32
 MULTILIB_DIRNAMES = 64 32 
-MULTILIB_OSDIRNAMES = ../lib64 ../lib
+MULTILIB_OSDIRNAMES = ../lib ../lib32

was why you weren't seeing the -L/lib/../lib64 stuff in your -v output. I
tried my build with just that part changed but I still ended up with
-L/lib/../lib appearing (which wasn't in your log). Therefore I don't
really know what is going on :-(  Tho' it does appear from what you say
that the host's /lib* layout does indeed play a role.

Ideally, the build method should work no matter what the /lib* layout on
the host is. But I must say, it does appear that any 64-bit host that is
missing /lib64 and /usr/lib64 is not kosher. After all, the facts are that
a) the lib64 stuff is the default config throughout the entire upstream
toolchain sources, b) the big distros all appear to use lib64 and c) lib64
is apparently mandated by the LSB (tho' it's a bit vague there judging
from my casual glance). But on the flipside, all of the above possibly
assumes a multilib setup? Dunno. It would be very interesting if all the
64-bit distros could be surveyed (ie: ls -ld /l*) to find out their /lib*
layout arrangements and whether they are multilib or pure 64.

Anyhow, I still suspect there is a buglet involving MULTILIB_OSDIRNAMES
somewhere in the GCC driver that needs to be accounted for in this
`--disable-multilib' build method, but my brain hurts when trying to
figure out all the twisty parts of gcc.c.

Regards
Greg
-- 
http://www.diy-linux.org/

-- 
http://linuxfromscratch.org/mailman/listinfo/lfs-dev
FAQ: http://www.linuxfromscratch.org/faq/
Unsubscribe: See the above information page

Reply via email to