Wording on x86_64 Glibc headers page

Jim Gifford lfs at jg555.com
Mon Jan 23 07:36:05 PST 2006

Alexander E. Patrakov wrote:
> Jim Gifford wrote:
>> Alex,
>>    This is something if they ever fix GCC can be remove and if you 
>> notice on all the other architectures other than x86, x86_64, and 
>> alpha it is removed. This is related to a GCC bug, that is looming in 
>> la-la land.
> Why bug? Suppose that the host is a plain x86 and the target is 
> x86_64. Glibc attempts to do, e.g., this (found in config.log):
It has to do with GCC and not GLIBC. If you look at the other 
architectures we do not create the headers. We use this little trick so 
we get the headers we need to build gcc.
> What happens is that the assembler for x86 (generated by host x86 gcc) 
> is fed into x86_64 binutils. Thus, push/pop errors. They are just 
> expected for this combination.
If you look at the build order, we install gcc right after this, then 
redo glibc again, which gives it the correct headers. I think you seeing 
more into this than whats actually there.
> The commands below will populate the config.cache file with the fake 
> results of some tests. The goal is to make the configure script return 
> with the exit status 0 and create Makefiles just good enough to 
> install the headers. The need to fake test results in order for this 
> to happen is not a cross-compilation issue, but a result of using at 
> this step an insane combination of host GCC and target Binutils that 
> is not supposed to work at all.
> echo "libc_cv_forced_unwind=yes" > config.cache
> echo "libc_cv_c_cleanup=yes" >> config.cache
> echo "libc_cv_initfini_array=yes" >> config.cache
Why do we need the last one, what is it for?

jim at linuxfromscratch.org
lfs at jg555.com

LFS User # 2577
Registered Linux User # 299986

More information about the cross-lfs mailing list