OpenWrt Forum Archive

Topic: RaspberryPi build: various (toolchain) errors

The content of this topic has been archived on 7 Apr 2018. There are no obvious gaps in this topic, but there may still be some posts missing at the end.

1. When I use my own toolchain, which I know is functional as I compile other rpi-related stuff, during build of libubox I get the following error:

make[3]: Entering directory `/builddir/openwrt/package/libs/libubox'
mkdir -p /builddir/openwrt/bin/brcm2708/packages /builddir/openwrt/build_dir/target-arm-rpi-linux-gnueabi/libubox-2013-07-29/ipkg-brcm2708/libubox/CONTROL /builddir/openwrt/staging_dir/target-arm-rpi-linux-gnueabi/pkginfo
install -d -m0755 /builddir/openwrt/build_dir/target-arm-rpi-linux-gnueabi/libubox-2013-07-29/ipkg-brcm2708/libubox/lib/
install -m0644 /builddir/openwrt/build_dir/target-arm-rpi-linux-gnueabi/libubox-2013-07-29/ipkg-install/usr/lib/libubox.so /builddir/openwrt/build_dir/target-arm-rpi-linux-gnueabi/libubox-2013-07-29/ipkg-brcm2708/libubox/lib/
find /builddir/openwrt/build_dir/target-arm-rpi-linux-gnueabi/libubox-2013-07-29/ipkg-brcm2708/libubox -name 'CVS' -o -name '.svn' -o -name '.#*' -o -name '*~'| xargs -r rm -rf
Package libubox is missing dependencies for the following libraries:
librt.so.1
make[3]: *** [/builddir/openwrt/bin/brcm2708/packages/libubox_2013-07-29-ef9b6b92df223e783a365f34998bc0f299b977f2_brcm2708.ipk] Error 1
make[3]: Leaving directory `/builddir/openwrt/package/libs/libubox'
make[2]: *** [package/libs/libubox/compile] Error 2
make[2]: Leaving directory `/builddir/openwrt'
make[1]: *** [/builddir/openwrt/staging_dir/target-arm-rpi-linux-gnueabi/stamp/.package_compile] Error 2
make[1]: Leaving directory `/builddir/openwrt'
make: *** [world] Error 2

Now, I do have that file, as find shows:

[mockbuild@ad openwrt]$ find staging_dir/ | grep librt.so.1
staging_dir/target-arm-rpi-linux-gnueabi/root-brcm2708/lib/librt.so.1
[mockbuild@ad openwrt]$ 

[mockbuild@ad openwrt]$ find build_dir/ | grep librt.so.1
build_dir/target-arm-rpi-linux-gnueabioolchain/ipkg-brcm2708/librt/lib/librt.so.1
[mockbuild@ad openwrt]$ 

That file seems to be listed in "libubox.missing" for some reason.

2. Next, I tried to compile a new toolchain from scratch, but hit a snag there as well - that happens during the ppl build (using 4.8-Linaro):

make[7]: Entering directory `/builddir/openwrt/build_dir/host/ppl-0.10.2/src'
/bin/bash ../libtool --tag=CXX   --mode=compile x86_64-redhat-linux-g++ -DHAVE_CONFIG_H -I. -I..  -I.. -I../src  -I/builddir/openwrt/staging_dir/host/include  -g -O2 -frounding-math  -W -Wall -MT Box.lo -MD -MP -MF .deps/Box.Tpo -c -o Box.lo Box.cc
OpenWrt-libtool: compile:  x86_64-redhat-linux-g++ -DHAVE_CONFIG_H -I. -I.. -I.. -I../src -I/builddir/openwrt/staging_dir/host/include -g -O2 -frounding-math -W -Wall -MT Box.lo -MD -MP -MF .deps/Box.Tpo -c Box.cc -o Box.o
In file included from checked.defs.hh:29,
                 from Checked_Number.defs.hh:28,
                 from Coefficient.types.hh:16,
                 from Coefficient.defs.hh:27,
                 from Box.defs.hh:29,
                 from Box.cc:25:
mp_std_bits.defs.hh:47: error: redefinition of 'class std::numeric_limits<__gmp_expr<__mpz_struct [1], __mpz_struct [1]> >'
/builddir/openwrt/staging_dir/host/include/gmpxx.h:3271: error: previous definition of 'class std::numeric_limits<__gmp_expr<__mpz_struct [1], __mpz_struct [1]> >'
mp_std_bits.defs.hh:108: error: redefinition of 'class std::numeric_limits<__gmp_expr<__mpq_struct [1], __mpq_struct [1]> >'
/builddir/openwrt/staging_dir/host/include/gmpxx.h:3308: error: previous definition of 'class std::numeric_limits<__gmp_expr<__mpq_struct [1], __mpq_struct [1]> >'
make[7]: *** [Box.lo] Error 1
make[7]: Leaving directory `/builddir/openwrt/build_dir/host/ppl-0.10.2/src'

3. What I did try next was to use my system-installed ppl/cloog stuff (which is of the same version as the one being compiled), but got this:

gawk -f ../scripts/gen-as-const.awk ../ports/sysdeps/arm/nptlcb-offsets.sym \
    | arm-openwrt-linux-gnueabi-gcc -S -o /builddir/openwrt/build_diroolchain-arm_v6zk_gcc-4.8-linaro_eglibc-2.17_eabi/eglibc-2.17-r22243-finalcb-offsets.hT3 -std=gnu99 -fgnu89-inline  -Wall -Winline -Wno-error=unused-but-set-variable -Wwrite-strings -fhonour-copts -fmerge-all-constants -fno-caller-saves -frounding-math -march=armv6zk -mcpu=arm1176jzf-s -mfloat-abi=hard -mfpu=vfp -mhard-float -mlittle-endian -mtune=arm1176jzf-s -pipe -Wstrict-prototypes         -I../include -I/builddir/openwrt/build_diroolchain-arm_v6zk_gcc-4.8-linaro_eglibc-2.17_eabi/eglibc-2.17-r22243-final/csu -I/builddir/openwrt/build_diroolchain-arm_v6zk_gcc-4.8-linaro_eglibc-2.17_eabi/eglibc-2.17-r22243-final -I../ports/sysdeps/unix/sysv/linux/arm/nptl -I../ports/sysdeps/unix/sysv/linux/arm -I../nptl/sysdeps/unix/sysv/linux -I../nptl/sysdeps/pthread -I../sysdeps/pthread -I../ports/sysdeps/unix/sysv/linux -I../sysdeps/unix/sysv/linux -I../sysdeps/gnu -I../sysdeps/unix/inet -I../nptl/sysdeps/unix/sysv -I../ports/sysdeps/unix/sysv -I../sysdeps/unix/sysv -I../ports/sysdeps/unix/arm -I../nptl/sysdeps/unix -I../ports/sysdeps/unix -I../sysdeps/unix -I../sysdeps/posix -I../ports/sysdeps/arm/nptl -I../ports/sysdeps/arm -I../sysdeps/wordsize-32 -I../sysdeps/ieee754/flt-32 -I../sysdeps/ieee754/dbl-64 -I../sysdeps/ieee754 -I../sysdeps/generic -I../nptl -I../ports  -I.. -I../libio -I. -nostdinc -isystem /builddir/openwrt/staging_diroolchain-arm_v6zk_gcc-4.8-linaro_eglibc-2.17_eabi/lib/gcc/arm-openwrt-linux-gnueabi/4.8.1/include -isystem /builddir/openwrt/staging_diroolchain-arm_v6zk_gcc-4.8-linaro_eglibc-2.17_eabi/lib/gcc/arm-openwrt-linux-gnueabi/4.8.1/include-fixed -isystem /builddir/openwrt/staging_diroolchain-arm_v6zk_gcc-4.8-linaro_eglibc-2.17_eabi/include  -D_LIBC_REENTRANT -include ../include/libc-symbols.h       -x c - \
        -MD -MP -MF /builddir/openwrt/build_diroolchain-arm_v6zk_gcc-4.8-linaro_eglibc-2.17_eabi/eglibc-2.17-r22243-finalcb-offsets.h.dT -MT '/builddir/openwrt/build_diroolchain-arm_v6zk_gcc-4.8-linaro_eglibc-2.17_eabi/eglibc-2.17-r22243-finalcb-offsets.h.d /builddir/openwrt/build_diroolchain-arm_v6zk_gcc-4.8-linaro_eglibc-2.17_eabi/eglibc-2.17-r22243-finalcb-offsets.h'
In file included from ./../include/libc-symbols.h:49:0,
                 from <command-line>:0:
/builddir/openwrt/build_diroolchain-arm_v6zk_gcc-4.8-linaro_eglibc-2.17_eabi/eglibc-2.17-r22243-final/config.h:4:3: error: #error "glibc cannot be compiled without optimization"
 # error "glibc cannot be compiled without optimization"
   ^
make[6]: *** [/builddir/openwrt/build_diroolchain-arm_v6zk_gcc-4.8-linaro_eglibc-2.17_eabi/eglibc-2.17-r22243-finalcb-offsets.h] Error 1

That seems to have been caused by the following macro in config.h:

/* config.h.  Generated from config.h.in by configure.  */
#if !defined IS_IN_build && !defined __ASSEMBLER__ && !defined _ISOMAC \
    && !defined __OPTIMIZE__
# error "glibc cannot be compiled without optimization"
#endif

4. I have no idea why this is happening, but removing this allows compilation to proceed, until I get the next error during the  final gcc installation:

arm-openwrt-linux-gnueabi-gcc   -nostdlib -nostartfiles -r -o /builddir/openwrt/build_diroolchain-arm_v6zk_gcc-4.8-linaro_eglibc-2.17_eabi/eglibc-2.17-r22243-final/elf/librtld.map.o '-Wl,-(' /builddir/openwrt/build_diroolchain-arm_v6zk_gcc-4.8-linaro_eglibc-2.17_eabi/eglibc-2.17-r22243-final/elf/dl-allobjs.os /builddir/openwrt/build_diroolchain-arm_v6zk_gcc-4.8-linaro_eglibc-2.17_eabi/eglibc-2.17-r22243-final/libc_pic.a -lgcc '-Wl,-)' -Wl,-Map,/builddir/openwrt/build_diroolchain-arm_v6zk_gcc-4.8-linaro_eglibc-2.17_eabi/eglibc-2.17-r22243-final/elf/librtld.mapT
/builddir/openwrt/build_diroolchain-arm_v6zk_gcc-4.8-linaro_eglibc-2.17_eabi/eglibc-2.17-r22243-final/libc_pic.a(dl-addr.os): In function `_dl_addr_inside_object':
dl-addr.c:(.text+0x6a0): multiple definition of `_dl_addr_inside_object'
/builddir/openwrt/build_diroolchain-arm_v6zk_gcc-4.8-linaro_eglibc-2.17_eabi/eglibc-2.17-r22243-final/elf/dl-allobjs.os::(.text+0x22b38): first defined here
/builddir/openwrt/build_diroolchain-arm_v6zk_gcc-4.8-linaro_eglibc-2.17_eabi/eglibc-2.17-r22243-final/libc_pic.a(init-first.os):(.data+0x0): multiple definition of `__libc_multiple_libcs'
/builddir/openwrt/build_diroolchain-arm_v6zk_gcc-4.8-linaro_eglibc-2.17_eabi/eglibc-2.17-r22243-final/elf/dl-allobjs.os:(.bss+0x90): first defined here
/builddir/openwrt/build_diroolchain-arm_v6zk_gcc-4.8-linaro_eglibc-2.17_eabi/eglibc-2.17-r22243-final/libc_pic.a(_itoa.os): In function `_itoa':
_itoa.c:(.text+0x1c0): multiple definition of `_itoa'
/builddir/openwrt/build_diroolchain-arm_v6zk_gcc-4.8-linaro_eglibc-2.17_eabi/eglibc-2.17-r22243-final/elf/dl-allobjs.os::(.text+0x270f0): first defined here
collect2: error: ld returned 1 exit status
make[6]: *** [/builddir/openwrt/build_diroolchain-arm_v6zk_gcc-4.8-linaro_eglibc-2.17_eabi/eglibc-2.17-r22243-final/elf/librtld.map] Error 1

at which point I gave up! Any ideas?

(Last edited by alain13 on 4 Aug 2013, 01:56)

Any takers?

The discussion might have continued from here.