[oi-dev] how to determine link directory order for clang

Carsten Grzemba grzemba at contac-dt.de
Wed Jul 25 09:01:39 UTC 2018


I try to build a package with clang toolchain, but there I have some link troubles:

cmake constructs a link.txt:

/usr/bin/clang++ -m64 -O3 -std=c++11 -O3 -DNDEBUG -stdlib=libc++ -m64 CMakeFiles/iqstat.dir/src/iqstat.cpp.o -o iqstat -L/usr/gcc/6/lib/amd64 -lc++abi -lirods_client -lirods_plugin_dependencies -lirods_common /usr/lib/amd64/libavrocpp.so /usr/lib/amd64/libboost_filesystem.so /usr/lib/amd64/libboost_program_options.so /usr/lib/amd64/libboost_system.so /usr/lib/amd64/libjansson.so /usr/zeromq-4.2/lib/amd64/libzmq.so

which in turn raises:

/usr/bin/clang++ -v -m64 -O3 -std=c++11 -O3 -DNDEBUG -stdlib=libc++ -m64 -stdlib=libc++ CMakeFiles/iqstat.dir/src/iqstat.cpp.o -o iqstat -L/usr/gcc/6/lib/amd64 -lc++abi -lirods_client -lirods_plugin_dependencies -lirods_common /usr/lib/amd64/libavrocpp.so /usr/lib/amd64/libboost_filesystem.so /usr/lib/amd64/libboost_program_options.so /usr/lib/amd64/libboost_system.so /usr/lib/amd64/libjansson.so /usr/zeromq-4.2/lib/amd64/libzmq.so
clang version 4.0.1 (tags/RELEASE_401/final)
Target: x86_64-pc-solaris2.11
Thread model: posix
InstalledDir: /usr/bin
 "/usr/bin/ld" -C -e _start -Bdynamic --dynamic-linker /usr/lib/amd64/ld.so.1 -o iqstat /usr/lib/amd64/crt1.o /usr/lib/amd64/crti.o /usr/lib/amd64/values-Xa.o /usr/gcc/6/lib/gcc/i386-pc-solaris2.11/6.4.0/amd64/crtbegin.o -L/usr/bin -L/usr/clang/4.0/bin -L/usr/clang/4.0/bin/../lib -L/usr/gcc/6/lib/gcc/i386-pc-solaris2.11/6.4.0/amd64 -L/usr/lib/amd64/ -L/usr/gcc/6/lib/amd64 CMakeFiles/iqstat.dir/src/iqstat.cpp.o -lc++abi -lirods_client -lirods_plugin_dependencies -lirods_common /usr/lib/amd64/libavrocpp.so /usr/lib/amd64/libboost_filesystem.so /usr/lib/amd64/libboost_program_options.so /usr/lib/amd64/libboost_system.so /usr/lib/amd64/libjansson.so /usr/zeromq-4.2/lib/amd64/libzmq.so -lc++ -lgcc_s -lc -lgcc -lm /usr/gcc/6/lib/gcc/i386-pc-solaris2.11/6.4.0/amd64/crtend.o /usr/lib/amd64/crtn.o
ld: fatal: file /usr/lib/amd64//libstdc++.so.6: version 'GLIBCXX_3.4.21' does not exist:
 required by file /usr/lib/amd64//libirods_client.so
ld: fatal: file /usr/lib/amd64//libstdc++.so.6: version 'GLIBCXX_3.4.21' does not exist:
 required by file /usr/lib/amd64/libavrocpp.so
ld: fatal: file /usr/lib/amd64//libstdc++.so.6: version 'CXXABI_1.3.9' does not exist:
 required by file /usr/lib/amd64/libavrocpp.so
ld: fatal: file /usr/lib/amd64//libstdc++.so.6: version 'GLIBCXX_3.4.21' does not exist:
 required by file /usr/zeromq-4.2/lib/amd64/libzmq.so
ld: fatal: file /usr/lib/amd64//libstdc++.so.6: version 'GLIBCXX_3.4.21' does not exist:
 required by file /usr/lib/amd64//libboost_iostreams.so.1.64.0
ld: fatal: file processing errors. No output written to iqstat

The fix is simple: in the argument list have to removed -L/usr/lib/amd64 or it has to put on the end of the -L's list.
But how can I tell it this clang++/cmake
<signaturebeforequotedtext></signaturebeforequotedtext><signatureafterquotedtext>-- 
Carsten
</signatureafterquotedtext>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://openindiana.org/pipermail/oi-dev/attachments/20180725/9b72b4ee/attachment-0004.html>


More information about the oi-dev mailing list