Mark Millard
2016-Aug-21 21:23 UTC
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 (0x20100000) > 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 (0x20300000) > # ./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 (0x20100000) > 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 (0x20300000) > # ./a.out > std::numeric_limits<intmax_t>::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 at FreeBSDx64:/usr/obj/clang/arm.armv6/usr/src/sys/RPI2-N > ODBG arm armv6 1100500 1100500==Mark Millard markmi at dsl-only.net
David Chisnall
2016-Aug-22 08:21 UTC
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 Millard <markmi at dsl-only.net> wrote:> > 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 (0x20100000) >> 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 (0x20300000) >> # ./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&view=markup David -------------- next part -------------- A non-text attachment was scrubbed... Name: smime.p7s Type: application/pkcs7-signature Size: 3698 bytes Desc: not available URL: <http://lists.freebsd.org/pipermail/freebsd-stable/attachments/20160822/72b1c18b/attachment.bin>