mozilla-sensorweb / sensorweb-firmware

Contains all code that runs on the SensorWeb device
Mozilla Public License 2.0
4 stars 3 forks source link

Error: undefined symbols __exidx_start and __exidx_end #33

Closed tdz closed 7 years ago

tdz commented 7 years ago

I un-commented the print macros to get the firmware to build (issue #32). The linker fails with the following error:

error: linking with arm-none-eabi-gcc failed: exit code: 1 | = note: "arm-none-eabi-gcc" "-L" "/home/mozilla/.xargo/lib/rustlib/thumbv7em-none-eabi/lib" "/home/mozilla/Projects/mozilla/src/sensorweb/sensorweb-firmware/target/thumbv7em-none-eabi/debug/deps/sensorweb_firmware-53109325ec47cbb2.0.o" "-o" "/home/mozilla/Projects/mozilla/src/sensorweb/sensorweb-firmware/target/thumbv7em-none-eabi/debug/deps/sensorweb_firmware-53109325ec47cbb2" "-Wl,--gc-sections" "-nodefaultlibs" "-L" "/home/mozilla/Projects/mozilla/src/sensorweb/sensorweb-firmware/target/thumbv7em-none-eabi/debug/deps" "-L" "/home/mozilla/Projects/mozilla/src/sensorweb/sensorweb-firmware/target/thumbv7em-none-eabi/debug/build/sensorweb-sys-44bf968803a0cff5/out" "-L" "/home/mozilla/Projects/mozilla/src/sensorweb/sensorweb-firmware/target/thumbv7em-none-eabi/debug/build/freertos_alloc-7c43e7bce82a38b5/out" "-L" "/usr/lib/gcc/arm-none-eabi/5.2.0/../../../../arm-none-eabi/lib/armv7e-m" "-L" "/usr/lib/gcc/arm-none-eabi/5.2.0/armv7e-m" "-L" "/home/mozilla/Projects/mozilla/src/sensorweb/sensorweb-firmware/target/thumbv7em-none-eabi/debug/build/cc3200-sys-60022d3b4ada1ff5/out" "-L" "/home/mozilla/.xargo/lib/rustlib/thumbv7em-none-eabi/lib" "-Wl,-Bstatic" "-Wl,-Bdynamic" "/home/mozilla/Projects/mozilla/src/sensorweb/sensorweb-firmware/target/thumbv7em-none-eabi/debug/deps/libsensorweb_sys-6ac3dbe2f33149e3.rlib" "/home/mozilla/Projects/mozilla/src/sensorweb/sensorweb-firmware/target/thumbv7em-none-eabi/debug/deps/libcc3200-eca4f5ced93a1632.rlib" "/home/mozilla/Projects/mozilla/src/sensorweb/sensorweb-firmware/target/thumbv7em-none-eabi/debug/deps/libcc3200_sys-26903adc81aa7ec3.rlib" "/home/mozilla/Projects/mozilla/src/sensorweb/sensorweb-firmware/target/thumbv7em-none-eabi/debug/deps/liblog-33c54ffe775563fd.rlib" "/home/mozilla/Projects/mozilla/src/sensorweb/sensorweb-firmware/target/thumbv7em-none-eabi/debug/deps/libfreertos_rs-9355b9a390b957e8.rlib" "/home/mozilla/.xargo/lib/rustlib/thumbv7em-none-eabi/lib/libcollections-1718004b6a7c1793.rlib" "/home/mozilla/.xargo/lib/rustlib/thumbv7em-none-eabi/lib/librustc_unicode-ff8038ab305aade5.rlib" "/home/mozilla/.xargo/lib/rustlib/thumbv7em-none-eabi/lib/liballoc-50e62a59fac490b7.rlib" "/home/mozilla/Projects/mozilla/src/sensorweb/sensorweb-firmware/target/thumbv7em-none-eabi/debug/deps/libfreertos_alloc-3c2f95d37e0c1ef2.rlib" "/home/mozilla/.xargo/lib/rustlib/thumbv7em-none-eabi/lib/libcore-eea6cb1944b243cd.rlib" "-l" "sensorweb" "-l" "m" "-l" "c" "-l" "gcc" "-l" "board" "-l" "freertos_alloc" "-Tlayout.ld" "-nostartfiles" "-Wl,-Map=firmware.map" = note: /home/mozilla/.xargo/lib/rustlib/thumbv7em-none-eabi/lib/libcore-eea6cb1944b243cd.rlib(core-eea6cb1944b243cd.0.o): In function core::fmt::num::GenericRadix::fmt_int<core::fmt::num::UpperHex,u32>': /home/mozilla/.multirust/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/src/libcore/fmt/num.rs:61: undefined reference toaeabi_memclr4' /usr/lib/gcc/arm-none-eabi/5.2.0/armv7e-m/libgcc.a(unwind-arm.o): In function get_eit_entry': /builddir/build/BUILD/arm-none-eabi-gcc-cs-5.2.0/gcc-arm-none-eabi/arm-none-eabi/armv7e-m/libgcc/../../../../gcc-5.2.0/libgcc/unwind-arm-common.inc:266: undefined reference to__exidx_end' /builddir/build/BUILD/arm-none-eabi-gcc-cs-5.2.0/gcc-arm-none-eabi/arm-none-eabi/armv7e-m/libgcc/../../../../gcc-5.2.0/libgcc/unwind-arm-common.inc:266: undefined reference to `exidx_start' collect2: error: ld returned 1 exit status

error: aborting due to previous error

error: Could not compile sensorweb-firmware.

Caused by: process didn't exit successfully: rustc src/main.rs --crate-name sensorweb_firmware --crate-type bin -C panic=abort -g -C metadata=53109325ec47cbb2 -C extra-filename=-53109325ec47cbb2 --out-dir /home/mozilla/Projects/mozilla/src/sensorweb/sensorweb-firmware/target/thumbv7em-none-eabi/debug/deps --emit=dep-info,link --target thumbv7em-none-eabi -L dependency=/home/mozilla/Projects/mozilla/src/sensorweb/sensorweb-firmware/target/thumbv7em-none-eabi/debug/deps --extern sensorweb_sys=/home/mozilla/Projects/mozilla/src/sensorweb/sensorweb-firmware/target/thumbv7em-none-eabi/debug/deps/libsensorweb_sys-6ac3dbe2f33149e3.rlib --extern freertos_alloc=/home/mozilla/Projects/mozilla/src/sensorweb/sensorweb-firmware/target/thumbv7em-none-eabi/debug/deps/libfreertos_alloc-3c2f95d37e0c1ef2.rlib --extern cc3200=/home/mozilla/Projects/mozilla/src/sensorweb/sensorweb-firmware/target/thumbv7em-none-eabi/debug/deps/libcc3200-eca4f5ced93a1632.rlib --extern freertos_rs=/home/mozilla/Projects/mozilla/src/sensorweb/sensorweb-firmware/target/thumbv7em-none-eabi/debug/deps/libfreertos_rs-9355b9a390b957e8.rlib -C link-arg=-Tlayout.ld -C link-arg=-nostartfiles -C link-arg=-Wl,-Map=firmware.map --sysroot /home/mozilla/.xargo -L native=/home/mozilla/Projects/mozilla/src/sensorweb/sensorweb-firmware/target/thumbv7em-none-eabi/debug/build/sensorweb-sys-44bf968803a0cff5/out -L native=/home/mozilla/Projects/mozilla/src/sensorweb/sensorweb-firmware/target/thumbv7em-none-eabi/debug/build/freertos_alloc-7c43e7bce82a38b5/out -L native=/usr/lib/gcc/arm-none-eabi/5.2.0/../../../../arm-none-eabi/lib/armv7e-m -L native=/usr/lib/gcc/arm-none-eabi/5.2.0/armv7e-m -L native=/home/mozilla/Projects/mozilla/src/sensorweb/sensorweb-firmware/target/thumbv7em-none-eabi/debug/build/cc3200-sys-60022d3b4ada1ff5/out (exit code: 101)

tdz commented 7 years ago

rustc --version rustc 1.15.0-nightly (ba872f270 2016-11-17)

fabricedesre commented 7 years ago

Your layout.ld file needs to be updated, and we had to pin rustc to nightly-2016-11-06 because of some xargo build issues. See scripts/travis.sh in the cc3200-rs repo.

tdz commented 7 years ago

Fixed by pull request #38, ref ec2880a.