Problems with our libgcc_s.so in base [FYI: armv6 C++/g++6 example under stable/11 -r304029]

Mark Millard markmi at dsl-only.net
Mon Aug 22 06:23:59 UTC 2016


"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



More information about the freebsd-arm mailing list