We want to compile a defined linux x86 32Bit toolchain using crosstool-NG ct-ng:
glibc 2.9
gcc 4.8.4
I am using an ubuntu 14.04 32Bit:
Linux ubuntu 3.16.0-30-generic #40~14.04.1-Ubuntu SMP Thu Jan 15 17:45:15 UTC 2015 i686 i686 i686 GNU/Linux.
crosstool-NG fails with:
Build failed in step 'Installing C library headers & start files'
while compiling
/home/user/crosstool-x86-linux-32/.build/i386-unknown-linux-gnu/build/build-libc-startfiles/csu/crtn.o
It fails with a couple of Assembler messanges:
[ALL ] /tmp/ccCj5ny0.s: Assembler messages:
[ALL ] /tmp/ccCj5ny0.s:92: Error: can't resolve
(and error similar to that...).LFE8' {*UND* section} -
.LFB8' {UND section}
Before that particular problem we were bumping into a similar problem
../sysdeps/generic/initfini.c: Assembler messages:
../sysdeps/generic/initfini.c:123: Error: open CFI at the end of file; missing .cfi_endproc directive
../sysdeps/generic/initfini.c:123: Error: open CFI at the end of file; missing .cfi_endproc directive
we temporarily "fixed" the error using "-fno-dwarf2-cfi-asm" in the target/host/build cflags found in this post http://www.openwall.com/lists/owl-dev/2011/10/18/4 .
which lead us here...
I'd love to know what the source of this error is except for the glibc being to old (which it probably is...).
See attachments for .config and build.log of ct-ng. http://s000.tinyupload.com/download.php?file_id=60582934753963239188&t=6058293475396323918817262
I've been going at it for quite a while and I solved this particular problem by patching ./.build/src/glibc-2.9/sysdeps/i386/Makefile:
After that was fixed I had a problem with
which according to this post: https://sourceware.org/ml/crossgcc/2012-06/msg00023.html was solved by setting CT_ARCH_CPU and CT_ARCH_TUNE to i686.
My crosstool-NG version (crosstool-ng-1.21.0-41-gc45cfb5) shows
only when
is empty. I assumed Emit assembly for CPU using mcpu might give me the same results.
To avoid this problem set (as the link above indicates)
to i686.