<br /><br /><span>On 25.07.18 11:01, <b class="name">"Carsten Grzemba" </b> <grzemba@contac-dt.de> wrote:</span><blockquote cite="mid:bd2dcc1038d7.5b585893@contac-dt.de" class="iwcQuote" style="border-left: 1px solid #00F; padding-left: 13px; margin-left: 0;" type="cite"><div class="mimetype-multipart-alternative">I try to build a package with clang toolchain, but there I have some link troubles:<br /><br />cmake constructs a link.txt:<br /><br />/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<br /><br />which in turn raises:<br /><br />/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<br />clang version 4.0.1 (tags/RELEASE_401/final)<br />Target: x86_64-pc-solaris2.11<br />Thread model: posix<br />InstalledDir: /usr/bin<br /> "/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<br />ld: fatal: file /usr/lib/amd64//libstdc++.so.6: version 'GLIBCXX_3.4.21' does not exist:<br />    required by file /usr/lib/amd64//libirods_client.so<br />ld: fatal: file /usr/lib/amd64//libstdc++.so.6: version 'GLIBCXX_3.4.21' does not exist:<br />    required by file /usr/lib/amd64/libavrocpp.so<br />ld: fatal: file /usr/lib/amd64//libstdc++.so.6: version 'CXXABI_1.3.9' does not exist:<br />    required by file /usr/lib/amd64/libavrocpp.so<br />ld: fatal: file /usr/lib/amd64//libstdc++.so.6: version 'GLIBCXX_3.4.21' does not exist:<br />    required by file /usr/zeromq-4.2/lib/amd64/libzmq.so<br />ld: fatal: file /usr/lib/amd64//libstdc++.so.6: version 'GLIBCXX_3.4.21' does not exist:<br />    required by file /usr/lib/amd64//libboost_iostreams.so.1.64.0<br />ld: fatal: file processing errors. No output written to iqstat<br /><br />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.<br />But how can I tell it this clang++/cmake<br />-- <br signature="separator" />Carsten</div></blockquote><span>the reason was missing -shared option, which results in:</span><br /><span> -Bdynamic --dynamic-linker<br />intead of <br />-Bdynamic -shared <br />which makes the linking trouble<br />see also: clang-40/llvm-4.0.1.src/tools/clang/lib/Driver/tools.cpp:  solaris::Linker::ConstructJob<br /></span>-- <br signature="separator" />Carsten<br /><br />