When I tried to compile OpenWRT for my Seagate DockStar using GCC-4.4.5, GCC-4.5.2, and/or GCC-4.5.2 Linaro Enhancement, the uClibc-0.9.32_git breaks during preparation as shown below:

make[2]: Entering directory `/opt/tmp/openwrt-svn-trunk/toolchain/uClibc'
/opt/tmp/openwrt-svn-trunk/staging_dir/host/bin/sed -i -e 's,^\(LIBC_TYPE\)=.*,\1=uClibc,' /opt/tmp/openwrt-svn-trunk/staging_dir/toolchain-arm_v5te_gcc-4.4.5_uClibc-0.9.32_eabi/info.mk
/opt/tmp/openwrt-svn-trunk/staging_dir/host/bin/sed -i -e 's,^\(LIBC_URL\)=.*,\1=http://www.uclibc.org/,' /opt/tmp/openwrt-svn-trunk/staging_dir/toolchain-arm_v5te_gcc-4.4.5_uClibc-0.9.32_eabi/info.mk
/opt/tmp/openwrt-svn-trunk/staging_dir/host/bin/sed -i -e 's,^\(LIBC_VERSION\)=.*,\1=0.9.32,' /opt/tmp/openwrt-svn-trunk/staging_dir/toolchain-arm_v5te_gcc-4.4.5_uClibc-0.9.32_eabi/info.mk
/opt/tmp/openwrt-svn-trunk/staging_dir/host/bin/sed -i -e 's,^\(LIBC_SO_VERSION\)=.*,\1=0.9.32-rc2-git,' /opt/tmp/openwrt-svn-trunk/staging_dir/toolchain-arm_v5te_gcc-4.4.5_uClibc-0.9.32_eabi/info.mk
. /opt/tmp/openwrt-svn-trunk/include/shell.sh; gzip -dc /opt/tmp/openwrt-svn-trunk/dl/uClibc-0.9.32-bb8551685e2efc42c65a01479b9f9bb8b860da01.tar.gz | /bin/tar -C /opt/tmp/openwrt-svn-trunk/build_dir/toolchain-arm_v5te_gcc-4.4.5_uClibc-0.9.32_eabi/uClibc-0.9.32/.. -xf - 

Applying ./patches-0.9.32/100-do_not_select_extra-warnings.patch using plaintext: 
patching file extra/Configs/Config.in

Applying ./patches-0.9.32/110-compat_macros.patch using plaintext: 
patching file include/string.h

Applying ./patches-0.9.32/120-adjtimex.patch using plaintext: 
patching file include/sys/timex.h

Applying ./patches-0.9.32/130-ldso-fix-__dl_parse_dynamic_info-segfault.patch using plaintext: 
patching file ldso/ldso/ldso.c
Hunk #1 succeeded at 918 (offset -2 lines).

Applying ./patches-0.9.32/140-avr32_atomic_fix.patch using plaintext: 
patching file libc/sysdeps/linux/avr32/bits/atomic.h

Applying ./patches-0.9.32/170-math_finite.patch using plaintext: 
patching file include/math.h

Applying ./patches-0.9.32/180-pthread_cleanup_fix.patch using plaintext: 
patching file libpthread/nptl/cleanup_defer_compat.c
patching file libpthread/nptl/init.c

Applying ./patches-0.9.32/190-nptl_use_arch_default_stack_limit.patch using plaintext: 
patching file libpthread/nptl/init.c

Applying ./patches-0.9.32/410-llvm_workaround.patch using plaintext: 
patching file libc/stdio/_stdio.c

Applying ./patches-0.9.32/450-powerpc_copysignl.patch using plaintext: 
patching file libc/sysdeps/linux/powerpc/Makefile.arch
patching file libc/sysdeps/linux/powerpc/copysignl.c

Applying ./patches-0.9.32/460-powerpc_libm_fixes.patch using plaintext: 
patching file libm/powerpc/e500/Makefile.arch
patching file libm/powerpc/e500/fpu/fe_nomask.c
patching file libm/powerpc/e500/fpu/feholdexcpt.c
patching file libm/powerpc/e500/fpu/fesetround.c
patching file libm/powerpc/e500/fpu/fraiseexcpt.c

Applying ./patches-0.9.32/600-ubicom32-uClibc.patch using plaintext: 
patching file Rules.mak
patching file extra/Configs/Config.in
patching file extra/Configs/Config.in.arch
patching file extra/Configs/Config.ubicom32
patching file include/elf.h
patching file include/features.h
patching file ldso/ldso/dl-startup.c
patching file ldso/ldso/ldso.c
patching file ldso/ldso/ubicom32/dl-debug.h
patching file ldso/ldso/ubicom32/dl-inlines.h
patching file ldso/ldso/ubicom32/dl-startup.h
patching file ldso/ldso/ubicom32/dl-syscalls.h
patching file ldso/ldso/ubicom32/dl-sysdep.h
patching file ldso/ldso/ubicom32/elfinterp.c
patching file ldso/ldso/ubicom32/resolve.S
patching file libc/misc/Makefile.in
patching file libc/misc/elf/dl-iterate-phdr.c
patching file libc/stdlib/malloc/malloc.c
patching file libc/string/ubicom32/Makefile
patching file libc/string/ubicom32/memcpy.c
patching file libc/string/ubicom32/memset.c
patching file libc/sysdeps/linux/ubicom32/Makefile
patching file libc/sysdeps/linux/ubicom32/Makefile.arch
patching file libc/sysdeps/linux/ubicom32/__syscall_error.c
patching file libc/sysdeps/linux/ubicom32/bits/elf-fdpic.h
patching file libc/sysdeps/linux/ubicom32/bits/endian.h
patching file libc/sysdeps/linux/ubicom32/bits/fcntl.h
patching file libc/sysdeps/linux/ubicom32/bits/kernel_stat.h
patching file libc/sysdeps/linux/ubicom32/bits/kernel_types.h
patching file libc/sysdeps/linux/ubicom32/bits/mman.h
patching file libc/sysdeps/linux/ubicom32/bits/setjmp.h
patching file libc/sysdeps/linux/ubicom32/bits/stackinfo.h
patching file libc/sysdeps/linux/ubicom32/bits/syscalls.h
patching file libc/sysdeps/linux/ubicom32/bits/uClibc_arch_features.h
patching file libc/sysdeps/linux/ubicom32/bits/wordsize.h
patching file libc/sysdeps/linux/ubicom32/clone.S
patching file libc/sysdeps/linux/ubicom32/crt1.S
patching file libc/sysdeps/linux/ubicom32/crti.S
patching file libc/sysdeps/linux/ubicom32/crtn.S
patching file libc/sysdeps/linux/ubicom32/crtreloc.c
patching file libc/sysdeps/linux/ubicom32/setjmp.S
patching file libc/sysdeps/linux/ubicom32/sys/procfs.h
patching file libc/sysdeps/linux/ubicom32/sys/ucontext.h
patching file libc/sysdeps/linux/ubicom32/syscall.c
patching file libc/sysdeps/linux/ubicom32/vfork.S
patching file libpthread/linuxthreads.old/pthread.c
patching file libpthread/linuxthreads.old/sysdeps/ubicom32/pt-machine.h
patching file libpthread/linuxthreads.old/sysdeps/ubicom32/tls.h
patching file libc/sysdeps/linux/ubicom32/sys/user.h

Applying ./patches-0.9.32/601-ubicom32_uClibc_fixes.patch using plaintext: 
patching file ldso/include/dl-elf.h
patching file ldso/ldso/ubicom32/dl-sysdep.h

Applying ./patches-0.9.32/900-reorder_use_bx.patch using plaintext: 
patching file extra/Configs/Config.arm

Applying ./patches-0.9.32/910-thumb_blind_options.patch using plaintext: 
patching file Rules.mak
patching file extra/Configs/Config.arm

Applying ./patches-0.9.32/920-remove_sub-arch_variants.patch using plaintext: 
patching file Rules.mak
patching file extra/Configs/Config.arm

Applying ./patches-0.9.32/930-transform_eabi_oabi_choice.patch using plaintext: 
patching file extra/Configs/Config.arm

Applying ./patches-0.9.32/940-include_arm-asm.h.patch using plaintext: 
patching file ldso/ldso/arm/dl-startup.h
patching file libc/sysdeps/linux/arm/sysdep.h

Applying ./patches-0.9.32/950-detect_bx_availibility.patch using plaintext: 
patching file extra/Configs/Config.arm
patching file libc/sysdeps/linux/arm/bits/arm_asm.h

Applying ./patches-0.9.32/960-remove_eabi_oabi_selection.patch using plaintext: 
patching file extra/Configs/Config.arm
patching file libc/sysdeps/linux/arm/Makefile.arch
patching file libc/sysdeps/linux/arm/bits/huge_val.h
ln -snf uClibc-0.9.32 /opt/tmp/openwrt-svn-trunk/build_dir/toolchain-arm_v5te_gcc-4.4.5_uClibc-0.9.32_eabi/uClibc
/opt/tmp/openwrt-svn-trunk/scripts/kconfig.pl -n '+' ./config-0.9.32/common  ./config-0.9.32/arm > /opt/tmp/openwrt-svn-trunk/build_dir/toolchain-arm_v5te_gcc-4.4.5_uClibc-0.9.32_eabi/uClibc-0.9.32/.config
/opt/tmp/openwrt-svn-trunk/staging_dir/host/bin/sed -i -e 's,^KERNEL_HEADERS=.*,KERNEL_HEADERS=\"/opt/tmp/openwrt-svn-trunk/build_dir/toolchain-arm_v5te_gcc-4.4.5_uClibc-0.9.32_eabi/linux-dev/include\",g' -e 's,^.*UCLIBC_HAS_FPU.*,UCLIBC_HAS_FPU=n,g' -e 's,^.*UCLIBC_HAS_SOFT_FLOAT.*,UCLIBC_HAS_SOFT_FLOAT=y,g' -e 's,^.*CONFIG_ARM_EABI.*,CONFIG_ARM_EABI=y,g' -e 's,^.*CONFIG_ARM_OABI.*,CONFIG_ARM_OABI=n,g' -e 's,^.*UCLIBC_HAS_SHADOW.*,UCLIBC_HAS_SHADOW=y,g' /opt/tmp/openwrt-svn-trunk/build_dir/toolchain-arm_v5te_gcc-4.4.5_uClibc-0.9.32_eabi/uClibc-0.9.32/.config
make -C /opt/tmp/openwrt-svn-trunk/build_dir/toolchain-arm_v5te_gcc-4.4.5_uClibc-0.9.32_eabi/uClibc-0.9.32 oldconfig KBUILD_HAVE_NLS= HOSTCFLAGS="-DKBUILD_NO_NLS"
make[3]: Entering directory `/opt/tmp/openwrt-svn-trunk/build_dir/toolchain-arm_v5te_gcc-4.4.5_uClibc-0.9.32_eabi/uClibc-0.9.32'
install -d include/config
make -C extra/config conf
gcc /opt/tmp/openwrt-svn-trunk/build_dir/toolchain-arm_v5te_gcc-4.4.5_uClibc-0.9.32_eabi/uClibc-0.9.32/extra/config/conf.c  -c -o ../../extra/config/conf.o -I/usr/include/ncursesw -DCURSES_LOC="<ncurses.h>" -DLOCALE  -DKBUILD_NO_NLS   
cat /opt/tmp/openwrt-svn-trunk/build_dir/toolchain-arm_v5te_gcc-4.4.5_uClibc-0.9.32_eabi/uClibc-0.9.32/extra/config/zconf.tab.c_shipped > ../../extra/config/zconf.tab.c
cat /opt/tmp/openwrt-svn-trunk/build_dir/toolchain-arm_v5te_gcc-4.4.5_uClibc-0.9.32_eabi/uClibc-0.9.32/extra/config/lex.zconf.c_shipped > ../../extra/config/lex.zconf.c
cat /opt/tmp/openwrt-svn-trunk/build_dir/toolchain-arm_v5te_gcc-4.4.5_uClibc-0.9.32_eabi/uClibc-0.9.32/extra/config/zconf.hash.c_shipped > ../../extra/config/zconf.hash.c
gcc ../../extra/config/zconf.tab.c  -c -o ../../extra/config/zconf.tab.o -I/usr/include/ncursesw -DCURSES_LOC="<ncurses.h>" -DLOCALE  -DKBUILD_NO_NLS -I/opt/tmp/openwrt-svn-trunk/build_dir/toolchain-arm_v5te_gcc-4.4.5_uClibc-0.9.32_eabi/uClibc-0.9.32/extra/config  
gcc ../../extra/config/conf.o ../../extra/config/zconf.tab.o  -o ../../extra/config/conf -lncursesw   -I/usr/include/ncursesw -DCURSES_LOC="<ncurses.h>" -DLOCALE  -DKBUILD_NO_NLS   
./extra/config/conf -o extra/Configs/Config.in
#
# configuration written to ./.config
#
make[3]: Leaving directory `/opt/tmp/openwrt-svn-trunk/build_dir/toolchain-arm_v5te_gcc-4.4.5_uClibc-0.9.32_eabi/uClibc-0.9.32'
make -C /opt/tmp/openwrt-svn-trunk/build_dir/toolchain-arm_v5te_gcc-4.4.5_uClibc-0.9.32_eabi/uClibc-0.9.32/extra/config conf KBUILD_HAVE_NLS= HOSTCFLAGS="-DKBUILD_NO_NLS"
make[3]: Entering directory `/opt/tmp/openwrt-svn-trunk/build_dir/toolchain-arm_v5te_gcc-4.4.5_uClibc-0.9.32_eabi/uClibc-0.9.32/extra/config'
make[3]: `conf' is up to date.
make[3]: Leaving directory `/opt/tmp/openwrt-svn-trunk/build_dir/toolchain-arm_v5te_gcc-4.4.5_uClibc-0.9.32_eabi/uClibc-0.9.32/extra/config'
PATH='/opt/tmp/openwrt-svn-trunk/staging_dir/toolchain-arm_v5te_gcc-4.4.5_uClibc-0.9.32_eabi/bin:/opt/tmp/openwrt-svn-trunk/staging_dir/host/bin:/opt/tmp/openwrt-svn-trunk/staging_dir/toolchain-arm_v5te_gcc-4.4.5_uClibc-0.9.32_eabi/bin:/opt/tmp/openwrt-svn-trunk/staging_dir/host/bin:/home/local/PEOPLE/admin/mazilo/google-earth:/home/local/PEOPLE/admin/mazilo/google-earth:/usr/lib/erlang/bin:/home/local/sbin:/home/local/bin:/usr/local/X11R6/bin:/usr/sbin:/opt/tools:/opt/gnome/sbin:/usr/local/bin:/usr/bin:/bin:/usr/games:/usr/X11R6/bin:/usr/bin/X11:/opt/kde3/bin:/opt/cross/bin:/usr/lib/mit/bin:/usr/lib/mit/sbin:/usr/lib/qt3/bin' make -C /opt/tmp/openwrt-svn-trunk/build_dir/toolchain-arm_v5te_gcc-4.4.5_uClibc-0.9.32_eabi/uClibc-0.9.32 PREFIX="/opt/tmp/openwrt-svn-trunk/build_dir/toolchain-arm_v5te_gcc-4.4.5_uClibc-0.9.32_eabi/uClibc-dev/" DEVEL_PREFIX=/ RUNTIME_PREFIX="/opt/tmp/openwrt-svn-trunk/build_dir/toolchain-arm_v5te_gcc-4.4.5_uClibc-0.9.32_eabi/uClibc-dev/" HOSTCC="gcc" CC="arm-openwrt-linux-uclibcgnueabi-gcc" CPU_CFLAGS="-Os -pipe -march=armv5te -mtune=marvell-f -funit-at-a-time -fhonour-copts -msoft-float" ARCH=""arm"" pregen install_headers
make[3]: Entering directory `/opt/tmp/openwrt-svn-trunk/build_dir/toolchain-arm_v5te_gcc-4.4.5_uClibc-0.9.32_eabi/uClibc-0.9.32'
install -d include/bits
set -e; \
    tmp=`mktemp ./include/bits/sysnum.h.XXXXXX 2>/dev/null || true`; \
    [ -z "$tmp" ] && tmp='./include/bits/sysnum.h.new'; \
    KERNEL_HEADERS="/opt/tmp/openwrt-svn-trunk/build_dir/toolchain-arm_v5te_gcc-4.4.5_uClibc-0.9.32_eabi/linux-dev/include/" top_builddir="./" CC="arm-openwrt-linux-uclibcgnueabi-gcc -Os -pipe -march=armv5te -mtune=marvell-f -funit-at-a-time -fhonour-copts -msoft-float" /bin/sh extra/scripts/gen_bits_syscall_h.sh > $tmp; \
    if cmp ./include/bits/sysnum.h $tmp >/dev/null 2>&1; then \
        rm -f $tmp; \
    else \
        mv -f $tmp ./include/bits/sysnum.h; \
    fi
cc1: error: bad value (marvell-f) for -mtune= switch
cc1: error: bad value (marvell-f) for -mtune= switch
if grep -q __NR_ include/bits/sysnum.h; then true; else \
        rm -f include/bits/sysnum.h; \
        echo "ERROR: Could not generate syscalls."; \
        echo "Make sure that you have proper kernel headers."; \
        echo "Your .config in KERNEL_HEADERS=\"\" was set to:"; \
        echo "/opt/tmp/openwrt-svn-trunk/build_dir/toolchain-arm_v5te_gcc-4.4.5_uClibc-0.9.32_eabi/linux-dev/include/"; \
        exit 1; \
    fi
ERROR: Could not generate syscalls.
Make sure that you have proper kernel headers.
Your .config in KERNEL_HEADERS="" was set to:
/opt/tmp/openwrt-svn-trunk/build_dir/toolchain-arm_v5te_gcc-4.4.5_uClibc-0.9.32_eabi/linux-dev/include/
make[3]: *** [include/bits/sysnum.h] Error 1
make[3]: Leaving directory `/opt/tmp/openwrt-svn-trunk/build_dir/toolchain-arm_v5te_gcc-4.4.5_uClibc-0.9.32_eabi/uClibc-0.9.32'
make[2]: *** [/opt/tmp/openwrt-svn-trunk/build_dir/toolchain-arm_v5te_gcc-4.4.5_uClibc-0.9.32_eabi/uClibc-0.9.32/.prepared] Error 2
make[2]: Leaving directory `/opt/tmp/openwrt-svn-trunk/toolchain/uClibc'
make[1]: *** [toolchain/uClibc/prepare] Error 2
make[1]: Leaving directory `/opt/tmp/openwrt-svn-trunk'
make: *** [toolchain/uClibc/prepare] Error 2

BTW, no problem using GCC-4.4.1 with CodeSourcery enhancements to compile. BTW, my OpenWRT is on r25565.

(Last edited by mazilo on 18 Feb 2011, 03:14)