As installed by crossdev, libstdc++.so.6 is in /usr/lib/gcc/armv7a-softfloat-linux-gnueabi/4.8.3/, but the cross ld prefixes the sysroot and looks for it in /usr/armv7a-softfloat-linux-gnueabi/usr/lib/gcc/armv7a-softfloat-linux-gnueabi/4.8.3/ (where it fails to find it of course). This only occurs when ld is looking for dependencies of a shared objects, such as a library using C++ being used in a C application. For example, libzmq provides C interfaces while using C++ internally. This results in a warning and then many unresolved symbols: /usr/libexec/gcc/armv7a-linux-gnueabi/ld: warning: libstdc++.so.6, needed by /usr/armv7a-linux-gnueabi/usr/lib/libzmq.so, not found (try using -rpath or -rpath-link)
Workaround: ln -s /usr/lib/gcc/armv7a-softfloat-linux-gnueabi/4.8.3/libstdc++.so.6 /usr/armv7a-softfloat-linux-gnueabi/lib/
please post concrete examples we can easily reproduce with. vague descriptions don't really cut it.
1. armv7a-softfloat-linux-gnueabi-emerge dev-libs/DirectFB dev-libs/jansson dev-libs/protobuf-c net-libs/zeromq (NOTE: will need fix from bug #432106 and bug #518440 for protobuf-c) 2. git clone https://github.com/luke-jr/freeabode.git 3. cd freeabode 4. autoreconf -if 5. ./configure --host=armv7a-softfloat-linux-gnueabi 6. make Above will fail because it fails to find libc. Further analysis (attaching a debugger to ld) reveals this is because the search is prepending /usr/armv7a-softfloat-linux-gnueabi to the path of /usr/lib/gcc/armv7a-softfloat-linux-gnueabi/4.8.3/ where it actually exists.
(In reply to Luke-Jr from comment #3) > 1. armv7a-softfloat-linux-gnueabi-emerge dev-libs/DirectFB dev-libs/jansson > dev-libs/protobuf-c net-libs/zeromq (NOTE: will need fix from bug #432106 > and bug #518440 for protobuf-c) > 2. git clone https://github.com/luke-jr/freeabode.git > 3. cd freeabode > 4. autoreconf -if > 5. ./configure --host=armv7a-softfloat-linux-gnueabi > 6. make > > Above will fail because it fails to find libc. > Further analysis (attaching a debugger to ld) reveals this is because the > search is prepending /usr/armv7a-softfloat-linux-gnueabi to the path of > /usr/lib/gcc/armv7a-softfloat-linux-gnueabi/4.8.3/ where it actually exists. Please attach actual command that fails and it's output if it's still an issue.
You're replying to the actual command that failed... Whether it's still an issue or not, I don't know, because I found a workaround and moved on.
Created attachment 526816 [details] build log
(In reply to Luke-Jr from comment #5) > You're replying to the actual command that failed... Whether it's still an > issue or not, I don't know, because I found a workaround and moved on. By "actual command" I meant what gcc executes and what it gets back. Thanks for the build log! The relevant failure here is: /usr/libexec/gcc/armv7a-softfloat-linux-gnueabi/ld: warning: libstdc++.so.6, needed by /usr/armv7a-softfloat-linux-gnueabi/usr/lib/libzmq.so, not found (try using -rpath or -rpath-link) /usr/armv7a-softfloat-linux-gnueabi/usr/lib/libzmq.so: undefined reference to `__gxx_personality_v0@CXXABI_1.3' /usr/armv7a-softfloat-linux-gnueabi/usr/lib/libzmq.so: undefined reference to `std::__throw_logic_error(char const*)@GLIBCXX_3.4' ... Which is bug #291383 (no libstdc++ installed in $SYSROOT). *** This bug has been marked as a duplicate of bug 291383 ***