"Robert R. Russell" <[EMAIL PROTECTED]> wrote in news:d0lq7l$ht0$1
@belgarath.linuxfromscratch.org:

> 
> Why is stripping the host binaries the issue?
> My Febuary 22, 2005 rebuild of Gentoo 2004.3-unstable had absolutely no 
> issues with any of the LFS-BOOK-SVN-20050228-HTML chapter 5 packages 
> except flex, it would not compile so I am using flex-2.5.4a.
> 
> the host toolchain is
> GNU C Library stable release version 2.3.4
> GNU CC version 3.4.3-20050110 (Gentoo Linux 3.4.3.20050110, 
> ssp-3.4.3.20050110-0, pie-8.7.7)
> binutils GNU ld version 2.15.92.0.2 20040927
> 

There are 2 issues (note: I don't fully comprehend the issues, just re-
gurgitating and summarising various posts from mailing lists):

1. There was a bug in binutils 2.15.92.0.1 and earler that caused the strip 
command to drop TLS symbols from static libraries. This was fixed in 
2.15.92.0.2

2. There was *also* a bug in binutils 2.15.02.0.1 and earlier that caused 
the ld command to *incorrectly* resolve symbols if, when the two libraries 
being compared, only one had TLS symbols - ld would assume the missing 
information was not relevant, and use the TLS symbols in the library that 
had them. This was considered *bad* and ld was altereed to refuse to link 
in such circumstances. This change was also made in 2.15.92.0.2

So, if you used a buggy strip, but *also* used a buggy ld - things would 
work fine. When LFS-SVN upgraded to 2.15.92.0.2, it was discovered that 
they had been using a buggy strip for some time, and now ld was refusing to 
link the broken libs.

There is no way to recover the broken symbols - the workarounds mentioned 
either don't use static libs, use the older, broken ld (which by chance 
produces the correct linking result in our case), or re-installing the 
broken library with the symbols intact.

LFS 6.0 suffers from this issue, as it uses the broken strip (but not the 
broken ld). When using LFS6.0 as a host to build LFS-SVN, which has a fixed 
ld, it rightly complains and refuses to link.

Based on the details you have given above, your host is compiled with a 
fixed version of the strip command (and ld command as well), and so should 
not see this issue.

(BIG NOTE: I'm lazy and busy at the moment, so I'm using the ugly binutils 
version numbers from memory, and might be out a decimal or three).

Hope that helps

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

Reply via email to