[Clfs-support] Problem compiling gcc 4.3.3 cross.
Joe Ciccone
jciccone at gmail.com
Tue Sep 29 05:05:44 PDT 2009
Stef Bon wrote:
> Well, on the Internet I've found out that gccversion 4.3 has
> reorganised the way to look for limits.h:
>
> http://markmail.org/message/fa7zhlqdhi3vs73p
>
> So there is written that the glibc needs to be patched... this should
> also count for uclibc.
> Is there a patch?
>
> Stef
>
>
> Stef Bon wrote:
>> Hello,
>>
>> I'm trying to build a clfs embedded system, using the svn version
>> guide svn 0.0.1 20090726-x86.
>>
>> Now I'm at the building of 6.11 gcc-4.3.3 cross compiler final.
>>
>> The make commands ends in an error, something with syslimits.h:
>>
>>
>> if [ -d ../prev-gcc ]; then \
>> cd ../prev-gcc && \
>> make real-install-headers-tar DESTDIR=`pwd`/../gcc/ \
>> libsubdir=. ; \
>> else \
>> set -e; for ml in `cat fixinc_list`; do \
>> sysroot_headers_suffix=`echo ${ml} | sed -e 's/;.*$//'`; \
>> multi_dir=`echo ${ml} | sed -e 's/^[^;]*;//'`; \
>> fix_dir=include-fixed${multi_dir}; \
>> if ! false && test ! -d `echo /tools/include | sed -e :a
>> -e 's,[^/]*/\.\.\/,,' -e ta`; then \
>> echo The directory that should contain system headers
>> does not exist: >&2 ; \
>> echo " `echo /tools/include | sed -e :a -e
>> 's,[^/]*/\.\.\/,,' -e ta`" >&2 ; \
>> tooldir_sysinc=`echo
>> "/mnt/sd/sda/6/cross-tools//lib/gcc/i686-pc-linux-uclibc/4.3.3/../../../../i686-pc-linux-uclibc/sys-include"
>> | sed -e :a -e "s,[^/]*/\.\.\/,," -e ta`; \
>> if test "x`echo /tools/include | sed -e :a -e
>> 's,[^/]*/\.\.\/,,' -e ta`" = "x${tooldir_sysinc}"; \
>> then sleep 1; else exit 1; fi; \
>> fi; \
>> /bin/sh ../../gcc-4.3.3/gcc/../mkinstalldirs ${fix_dir}; \
>> chmod a+rx ${fix_dir} || true; \
>> (TARGET_MACHINE='i686-pc-linux-uclibc'; srcdir=`cd
>> ../../gcc-4.3.3/gcc; ${PWDCMD-pwd}`; \
>> SHELL='/bin/sh'; MACRO_LIST=`${PWDCMD-pwd}`/macro_list ; \
>> export TARGET_MACHINE srcdir SHELL MACRO_LIST && \
>> cd ../build-i686-pc-linux-gnu/fixincludes && \
>> /bin/sh ./fixinc.sh ../../gcc/${fix_dir} \
>> `echo /tools/include | sed -e :a -e 's,[^/]*/\.\.\/,,'
>> -e ta` ); \
>> rm -f ${fix_dir}/syslimits.h; \
>> if [ -f ${fix_dir}/limits.h ]; then \
>> mv ${fix_dir}/limits.h ${fix_dir}/syslimits.h; \
>> else \
>> cp ../../gcc-4.3.3/gcc/gsyslimits.h
>> ${fix_dir}/syslimits.h; \
>> fi; \
>> chmod a+r ${fix_dir}/syslimits.h; \
>> done; \
>> fi
>> The directory that should contain system headers does not exist:
>> /tools/include
>> make[2]: *** [stmp-fixinc] Error 1
>>
>>
>> my configure looks like:
>>
>> ../gcc-4.3.3/configure --prefix=/mnt/sd/sda/6/cross-tools/ \
>> --build=i686-pc-linux-gnu \
>> --target=i686-pc-linux-uclibc \
>> --host=i686-pc-linux-gnu \
>> --with-sysroot=/mnt/sd/sda/6 \
>> --disable-nls \
>> --enable-shared \
>> --with-mpfr=/cross-tools \
>> --with-gmp=/cross-tools \
>> --enable-languages=c \
>> --enable-c99 \
>> --enable-long-long
>>
>>
>> Any idea?
Based on the version it looks like you're building the sysroot book.
When building the sysroot book, NOTHING should even mention /tools. Did
you apply the specs patch to any of the gcc builds?
More information about the Clfs-support
mailing list