[LEDE-DEV] Issues building libunwind for x86_32

Yousong Zhou yszhou4tech at gmail.com
Sun Nov 5 18:55:33 PST 2017


On 6 November 2017 at 06:28, Philip Prindeville
<philipp_subx at redfish-solutions.com> wrote:
> I’m seeing the following when trying to build a Geode image:
>
>
> make[6]: Entering directory '/home/philipp/bertram/lede3/build_dir/target-i386_pentium_musl/libunwind-1.2.1/src'
> /bin/bash ../libtool  --tag=CC   --mode=link i486-openwrt-linux-musl-gcc  -Os -pipe -march=pentium-mmx -fno-caller-saves -fno-plt -fhonour-copts -Wno-error=unused-but-set-variable -Wno-error=unused-result -iremap/home/philipp/bertram/lede3/build_dir/target-i386_pentium_musl/libunwind-1.2.1:libunwind-1.2.1 -fstack-protector -D_FORTIFY_SOURCE=1 -Wl,-z,now -Wl,-z,relro  -fexceptions -Wall -Wsign-compare -XCClinker -nostartfiles -XCClinker -nostdlib  -version-info 8:1:0           -L/home/philipp/bertram/lede3/staging_dir/target-i386_pentium_musl/usr/lib -L/home/philipp/bertram/lede3/staging_dir/target-i386_pentium_musl/lib -L/home/philipp/bertram/lede3/staging_dir/toolchain-i386_pentium_gcc-5.5.0_musl/usr/lib -L/home/philipp/bertram/lede3/staging_dir/toolchain-i386_pentium_gcc-5.5.0_musl/lib -znow -zrelro  -o libunwind.la -rpath /usr/lib os-linux.lo mi/init.lo mi/flush_cache.lo mi/mempool.lo mi/strerror.lo x86/is_fpreg.lo x86/regname.lo x86/Los-linux.lo  mi/backtrace.lo mi/dyn-cancel.lo mi/dyn-info-list.lo mi/dyn-register.lo mi/Ldyn-extract.lo mi/Lfind_dynamic_proc_info.lo mi/Lget_accessors.lo mi/Lget_proc_info_by_ip.lo mi/Lget_proc_name.lo mi/Lput_dynamic_unwind_info.lo mi/Ldestroy_addr_space.lo mi/Lget_reg.lo mi/Lset_reg.lo mi/Lget_fpreg.lo mi/Lset_fpreg.lo mi/Lset_caching_policy.lo  x86/Lcreate_addr_space.lo x86/Lget_save_loc.lo x86/Lglobal.lo x86/Linit.lo x86/Linit_local.lo x86/Linit_remote.lo x86/Lget_proc_info.lo x86/Lregs.lo x86/Lresume.lo x86/Lstep.lo x86/getcontext-linux.lo libunwind-dwarf-local.la libunwind-elf32.la -lc -lgcc_s
> OpenWrt-libtool: link: i486-openwrt-linux-musl-gcc -shared  -fPIC -DPIC  .libs/os-linux.o mi/.libs/init.o mi/.libs/flush_cache.o mi/.libs/mempool.o mi/.libs/strerror.o x86/.libs/is_fpreg.o x86/.libs/regname.o x86/.libs/Los-linux.o mi/.libs/backtrace.o mi/.libs/dyn-cancel.o mi/.libs/dyn-info-list.o mi/.libs/dyn-register.o mi/.libs/Ldyn-extract.o mi/.libs/Lfind_dynamic_proc_info.o mi/.libs/Lget_accessors.o mi/.libs/Lget_proc_info_by_ip.o mi/.libs/Lget_proc_name.o mi/.libs/Lput_dynamic_unwind_info.o mi/.libs/Ldestroy_addr_space.o mi/.libs/Lget_reg.o mi/.libs/Lset_reg.o mi/.libs/Lget_fpreg.o mi/.libs/Lset_fpreg.o mi/.libs/Lset_caching_policy.o x86/.libs/Lcreate_addr_space.o x86/.libs/Lget_save_loc.o x86/.libs/Lglobal.o x86/.libs/Linit.o x86/.libs/Linit_local.o x86/.libs/Linit_remote.o x86/.libs/Lget_proc_info.o x86/.libs/Lregs.o x86/.libs/Lresume.o x86/.libs/Lstep.o x86/.libs/getcontext-linux.o  -Wl,--whole-archive ./.libs/libunwind-dwarf-local.a ./.libs/libunwind-elf32.a -Wl,--no-whole-archive  -L/home/philipp/bertram/lede3/staging_dir/target-i386_pentium_musl/usr/lib -L/home/philipp/bertram/lede3/staging_dir/target-i386_pentium_musl/lib -L/home/philipp/bertram/lede3/staging_dir/toolchain-i386_pentium_gcc-5.5.0_musl/usr/lib -L/home/philipp/bertram/lede3/staging_dir/toolchain-i386_pentium_gcc-5.5.0_musl/lib -lc -lgcc_s  -Os -march=pentium-mmx -fstack-protector -Wl,-z -Wl,now -Wl,-z -Wl,relro -nostartfiles -nostdlib   -Wl,-soname -Wl,libunwind.so.8 -o .libs/libunwind.so.8.0.1
> .libs/os-linux.o: In function `_Ux86_get_elf_image':
> os-linux.c:(.text+0x58a): undefined reference to `__stack_chk_fail_local'
> x86/.libs/Lregs.o: In function `_ULx86_access_fpreg':
> Lregs.c:(.text+0x25b): undefined reference to `__stack_chk_fail_local'
> x86/.libs/Lresume.o: In function `_ULx86_resume':
> Lresume.c:(.text+0xdc): undefined reference to `__stack_chk_fail_local'
> collect2: error: ld returned 1 exit status
> Makefile:2582: recipe for target 'libunwind.la' failed
> make[6]: *** [libunwind.la] Error 1
> make[6]: Leaving directory '/home/philipp/bertram/lede3/build_dir/target-i386_pentium_musl/libunwind-1.2.1/src'
> Makefile:1646: recipe for target 'all' failed
> make[5]: *** [all] Error 2
> make[5]: Leaving directory '/home/philipp/bertram/lede3/build_dir/target-i386_pentium_musl/libunwind-1.2.1/src'
> Makefile:594: recipe for target 'all-recursive' failed
> make[4]: *** [all-recursive] Error 1
> make[4]: Leaving directory '/home/philipp/bertram/lede3/build_dir/target-i386_pentium_musl/libunwind-1.2.1'
> Makefile:57: recipe for target '/home/philipp/bertram/lede3/build_dir/target-i386_pentium_musl/libunwind-1.2.1/.built' failed
> make[3]: *** [/home/philipp/bertram/lede3/build_dir/target-i386_pentium_musl/libunwind-1.2.1/.built] Error 2
> make[3]: Leaving directory '/home/philipp/bertram/lede3/package/libs/libunwind'
> package/Makefile:109: recipe for target 'package/libs/libunwind/compile' failed
> make[2]: *** [package/libs/libunwind/compile] Error 2
> make[2]: Leaving directory '/home/philipp/bertram/lede3'
> package/Makefile:105: recipe for target '/home/philipp/bertram/lede3/staging_dir/target-i386_pentium_musl/stamp/.package_compile' failed
> make[1]: *** [/home/philipp/bertram/lede3/staging_dir/target-i386_pentium_musl/stamp/.package_compile] Error 2
> make[1]: Leaving directory '/home/philipp/bertram/lede3'
> /home/philipp/bertram/lede3/include/toplevel.mk:207: recipe for target 'world' failed
> make: *** [world] Error 2
>
>
> I have to admit I’ve not built an x86_32 in years, which is probably why I’ve not seen this sooner.
>
> Anyone know what’s going on?
>
> Thanks,
>
> -Philip

Hi, I have just pushed a change to disable ssp with libunwind [1].
That should fix the issue.

 [1] https://git.lede-project.org/f0c37f6ceb10a1db0193d4270c6807c0b2f7a3a0

Regards,
                yousong



More information about the Lede-dev mailing list