Re: Problems with our libgcc_s.so in base [FYI: armv6 C++/g++6 example under stable/11 -r304029]
On 21 Aug 2016, at 22:23, Mark Millardwrote: > > On armv6 (an rpi2) C++ by itself can have /lib/libgcc_s.so.1 not being > sufficient, for example with g++6 being used: > >> # g++6 -std=c++14 -O2 cpp_clocks_investigation.cpp >> # ldd a.out >> a.out: >>libstdc++.so.6 => /usr/local/lib/gcc6/libstdc++.so.6 (0x2010) >>libm.so.5 => /lib/libm.so.5 (0x20053000) >>libgcc_s.so.1 => /lib/libgcc_s.so.1 (0x20076000) >>libc.so.7 => /lib/libc.so.7 (0x2030) >> # ./a.out >> /usr/local/lib/gcc6/libstdc++.so.6: Undefined symbol "__aeabi_uldivmod" > The problem appears to be that we’ve not imported (all of?) the ARM-specific bits of compiler-rt. For example, this function is provided upstream: http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/lib/builtins/arm/aeabi_uldivmod.S?revision=273500=markup David smime.p7s Description: S/MIME cryptographic signature
Re: Problems with our libgcc_s.so in base [FYI: armv6 C++/g++6 example under stable/11 -r304029]
"problems come when we try to us archtiectures not fully supported by out libgcc_s.so" ( from https://people.freebsd.org/~db/libgcc.txt ). . . On armv6 (an rpi2) C++ by itself can have /lib/libgcc_s.so.1 not being sufficient, for example with g++6 being used: > # g++6 -std=c++14 -O2 cpp_clocks_investigation.cpp > # ldd a.out > a.out: > libstdc++.so.6 => /usr/local/lib/gcc6/libstdc++.so.6 (0x2010) > libm.so.5 => /lib/libm.so.5 (0x20053000) > libgcc_s.so.1 => /lib/libgcc_s.so.1 (0x20076000) > libc.so.7 => /lib/libc.so.7 (0x2030) > # ./a.out > /usr/local/lib/gcc6/libstdc++.so.6: Undefined symbol "__aeabi_uldivmod" By contrast: > # g++6 -Wl,-rpath=/usr/local/lib/gcc6 -std=c++14 -O2 > cpp_clocks_investigation.cpp > # ldd a.out > a.out: > libstdc++.so.6 => /usr/local/lib/gcc6/libstdc++.so.6 (0x2010) > libm.so.5 => /lib/libm.so.5 (0x20053000) > libgcc_s.so.1 => /usr/local/lib/gcc6/libgcc_s.so.1 (0x20076000) > libc.so.7 => /lib/libc.so.7 (0x2030) > # ./a.out > std::numeric_limits::max(): 9'223'372'036'854'775'807 . . . (works fine) . . . Context details: > # svnlite info /usr/src/ | grep "Re[vl][ia:]" > Relative URL: ^/stable/11 > Revision: 304029 > Last Changed Rev: 304029 > # uname -apKU > FreeBSD rpi2 11.0-PRERELEASE FreeBSD 11.0-PRERELEASE #4 r304029M: Sat Aug 13 > 01:10:34 PDT 2016 > markmi@FreeBSDx64:/usr/obj/clang/arm.armv6/usr/src/sys/RPI2-N > ODBG arm armv6 1100500 1100500 === Mark Millard markmi at dsl-only.net ___ freebsd-stable@freebsd.org mailing list https://lists.freebsd.org/mailman/listinfo/freebsd-stable To unsubscribe, send any mail to "freebsd-stable-unsubscr...@freebsd.org"