[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