Re: [cfe-users] Problems with linking to libLLVMSupport.a: undefined reference to symbol

2016-06-09 Thread Schlottke-Lakemper, Michael via cfe-users
Hi Don,

Indeed, mpi_cxx is linked against libstdc++, but that has not been a problem 
been so far (i.e., with previous versions of clang).

Anyhow, the problem resolved itself after I installed yet another trunk version 
(r272243). Apparently it was something related to the version of llvm/clang 
that I used before (r271230), but now the problem has disappeared.

Thanks for your input!

Michael

On 06 Jun 2016, at 21:48 , don hinton 
mailto:hinto...@gmail.com>> wrote:

Btw, did you build all you dependencies yourself, including libmpi_cxx, and 
link them to libc++?  Otherwise, I'd bet one of them links to libstdc++.

On Monday, June 6, 2016, don hinton 
mailto:hinto...@gmail.com>> wrote:
The only thing odd that I noticed is that although you specifically requested 
libc++, the linker tried to link libstdc++ and complained about a symbol it 
couldn't find.

The symbol looks like std::string::_Rep::destroy which would be found in the 
standard library, so I'd guess some sort of mis-compile.  Wish I could be of 
more help.

hth...
Don

On Sunday, June 5, 2016, Schlottke-Lakemper, Michael via cfe-users 
>
 wrote:
*bump*

Is there really nobody here who has a possible answer? If not, do you have any 
suggestions where else I could turn to for help? While I’m not an expert on 
LLVM/Clang, I’ve done my share of compiling & linking other tools and programs, 
so I think that I’ve exhausted all “obvious” explanations (without success).

Yours

Michael

On 31 May 2016, at 15:14 , Michael Schlottke-Lakemper 
 wrote:

Hi folks,

When trying to link to libLLVMSuport.a in our CFD application, we get the 
following error at link time:

/usr/lib64/gcc/x86_64-suse-linux/4.9/../../../../x86_64-suse-linux/bin/ld: 
/pds/opt/llvm-20160530-r271230/lib/libLLVMSupport.a(Path.cpp.o): undefined 
reference to symbol '_ZNSs4_Rep10_M_destroyERKSaIcE@@GLIBCXX_3.4'
/usr/lib64/libstdc++.so.6: error adding symbols: DSO missing from command line

For the full command & output of ‘—verbose’ see at the end of the mail. This is 
not really understandable for me, since the only thing I changed was to switch 
to a newer version of clang (before we used r253770, now it is r271230).

Any idea what I’m doing wrong or what I could try to fix this?

P.S.: This is the command we used to compile clang (if it matters):
cmake ../llvm-20160530-r271230-src/ 
-DCMAKE_INSTALL_PREFIX=/pds/opt/llvm-20160530-r271230 
-DCMAKE_BUILD_TYPE=Release -DLLVM_ENABLE_ASSERTIONS=On -DCMAKE_C_COMPILER=clang 
-DCMAKE_CXX_COMPILER=clang++ -DCLANG_DEFAULT_CXX_STDLIB=libc++

P.P.S.: Here is the full command + error output:

/pds/opt/llvm-20160530-r271230/bin/clang++   -O0 -g3 -fno-inline 
-DCOMPILER_ATTRIBUTES -std=c++14 -stdlib=libc++ -Wall -Wextra -pedantic 
-Wshadow -Wfloat-equal -Wcast-align -Wfloat-equal -Wdisabled-optimization 
-Wformat=2 -Winvalid-pch -Winit-self -Wmissing-include-dirs -Wredundant-decls 
-Wpacked -Wpointer-arith -Wstack-protector -Wswitch-default -Wwrite-strings 
-Wno-type-safety -Werror -Wunused -Wno-infinite-recursion 
-Wno-undefined-var-template  -L/pds/opt/llvm-20160530-r271230/lib   
-Wl,-rpath,/pds/opt/openmpi/lib64:/pds/opt/PointwiseV17.0R2/linux_x86_64/plugins:/pds/opt/intel-16.0.3/lib/intel64/:/pds/opt/llvm-20160530-r271230/lib:/pds/opt/StarCD/lib:/pds/opt/torque/lib
 src/CMakeFiles/zfs.dir/zfscartesiangrid_inst_fv.cpp.o 
src/CMakeFiles/zfs.dir/zfscartesiangrid_inst_lb.cpp.o 
src/CMakeFiles/zfs.dir/zfscartesiangrid_inst_avg.cpp.o 
src/CMakeFiles/zfs.dir/zfscartesiangrid_inst_dg.cpp.o 
src/CMakeFiles/zfs.dir/zfscartesiangrid_hilbert.cpp.o 
src/CMakeFiles/zfs.dir/zfsgridgenpar.cpp.o 
src/CMakeFiles/zfs.dir/zfsgridgencell.cpp.o 
src/CMakeFiles/zfs.dir/zfsfvbndrycnd3d.cpp.o 
src/CMakeFiles/zfs.dir/zfsfvblock2d.cpp.o 
src/CMakeFiles/zfs.dir/zfsfvblock.cpp.o 
src/CMakeFiles/zfs.dir/zfsfvblock3d.cpp.o 
src/CMakeFiles/zfs.dir/zfsstrctrdbndrycnd3d.cpp.o 
src/CMakeFiles/zfs.dir/zfslbmblockdxqy.cpp.o 
src/CMakeFiles/zfs.dir/zfsfvparticle.cpp.o 
src/CMakeFiles/zfs.dir/zfslbmbndcnddxqy.cpp.o 
src/CMakeFiles/zfs.dir/zfsfvbndrycnd.cpp.o 
src/CMakeFiles/zfs.dir/zfsfvbndrycnd2d.cpp.o 
src/CMakeFiles/zfs.dir/zfslbmblock.cpp.o 
src/CMakeFiles/zfs.dir/zfsfvmbblock3d.cpp.o 
src/CMakeFiles/zfs.dir/zfsstrctrdblck3d.cpp.o 
src/CMakeFiles/zfs.dir/zfsfvmbbndrycnd3d.cpp.o 
src/CMakeFiles/zfs.dir/zfspostprocessingblock.cpp.o 
src/CMakeFiles/zfs.dir/zfsavgblock.cpp.o 
src/CMakeFiles/zfs.dir/zfslbmbndcndd2q9.cpp.o 
src/CMakeFiles/zfs.dir/zfsfvmbblock2d.cpp.o 
src/CMakeFiles/zfs.dir/zfsfvmbbndrycnd2d.cpp.o 
src/CMakeFiles/zfs.dir/zfsgeometry3d.cpp.o 
src/CMakeFiles/zfs.dir/zfsmethods.cpp.o 
src/CMakeFiles/zfs.dir/zfsstrctrdblck.cpp.o 
src/CMakeFiles/zfs.dir/zfsstrctrdblckwindowinfo.cpp.o 
src/CMakeFiles/zfs.dir/zfslbmblockd2q9.cpp.o 
src/CMakeFiles/zfs.dir/zfsfileprocessingenv.cpp.o 
src/CMakeFiles/zfs.dir/zfslbminterfacedxqy.cpp.o 
src/CMakeFiles/zfs.dir/zfsfvparticleellipsoid.cpp.o 
src/CMakeFiles/zfs.dir/zfsapplication.cpp.o 
src/CMakeFiles/zfs.dir/zfslbmbndcnd.cpp.o 
sr

[cfe-users] clang++ not able to link libraries crtbegin.o

2016-06-09 Thread Srinivasa Rao Ragolu via cfe-users
Hi All,

I am new to clang. I have taken meta-clang and ported to my yocto project
for aarch64 with below commands. And building nodejs-.4.4.4 using clang++


TOOLCHAIN_pn-nodejs = "clang"
DEPENDS_append_pn-nodejs = " clang-cross-aarch64 "

added below line to nodejs recipe

TOOLCHAIN = "clang"

Compilation is going fine but could see below linking error


* aarch64-montavista-linux-gnu-clang++   -mlittle-endian
-D__extern_always_inline=inline -no-integrated-as
-Wno-error=unused-command-line-argument
--sysroot=/home/srinivas/clang-project/emgw-project/broadcom-ns2-emgw-3.10-1.4-project/tmp/sysroots/broadcom-ns2-emgw
 -I=/usr/include/c++/aarch64-montavista-linux/ -I=/usr/include/c++ -pthread
-rdynamic -Wl,-O1 -o
/home/srinivas/clang-project/emgw-project/broadcom-ns2-emgw-3.10-1.4-project/tmp/work/aarch64-montavista-linux/nodejs/4.4.3-r0/node-v4.4.3/out/Release/cctest
-Wl,--start-group
/home/srinivas/clang-project/emgw-project/broadcom-ns2-emgw-3.10-1.4-project/tmp/work/aarch64-montavista-linux/nodejs/4.4.3-r0/node-v4.4.3/out/Release/obj.target/cctest/test/cctest/util.o
/home/srinivas/clang-project/emgw-project/broadcom-ns2-emgw-3.10-1.4-project/tmp/work/aarch64-montavista-linux/nodejs/4.4.3-r0/node-v4.4.3/out/Release/obj.target/deps/gtest/libgtest.a
/home/srinivas/clang-project/emgw-project/broadcom-ns2-emgw-3.10-1.4-project/tmp/work/aarch64-montavista-linux/nodejs/4.4.3-r0/node-v4.4.3/out/Release/obj.target/deps/v8/tools/gyp/libv8_libplatform.a
/home/srinivas/clang-project/emgw-project/broadcom-ns2-emgw-3.10-1.4-project/tmp/work/aarch64-montavista-linux/nodejs/4.4.3-r0/node-v4.4.3/out/Release/obj.target/deps/v8/tools/gyp/libv8_base.a
/home/srinivas/clang-project/emgw-project/broadcom-ns2-emgw-3.10-1.4-project/tmp/work/aarch64-montavista-linux/nodejs/4.4.3-r0/node-v4.4.3/out/Release/obj.target/deps/v8/tools/gyp/libv8_libbase.a
/home/srinivas/clang-project/emgw-project/broadcom-ns2-emgw-3.10-1.4-project/tmp/work/aarch64-montavista-linux/nodejs/4.4.3-r0/node-v4.4.3/out/Release/obj.target/deps/v8/tools/gyp/libv8_nosnapshot.a
-Wl,--end-group
-L/home/srinivas/clang-project/emgw-project/broadcom-ns2-emgw-3.10-1.4-project/tmp/sysroots/broadcom-ns2-emgw/usr/lib64
-lssl -lcrypto -ldl -lrt*
*|
/home/srinivas/clang-project/emgw-project/montavista/bin/../tools/armv8-gnu//bin/aarch64-montavista-linux-gnu-ld:
cannot find crtbegin.o: No such file or directory*


But my project staging directory contains crtbegin.o

srinivas@srinivas:~/clang-project/emgw-project/broadcom-ns2-emgw-3.10-1.4-project$
find tmp/sysroots/ | grep crtbegin.o
tmp/sysroots/broadcom-ns2-emgw/usr/lib64/gcc/aarch64-montavista-linux/4.7.0/crtbegin.o
tmp/sysroots/broadcom-ns2-emgw/usr/lib64/gcc/aarch64-montavista-linux/4.7.0/ilp32/crtbegin.o


Please help to resolving this issue

Thanks,
Srinivas.
___
cfe-users mailing list
cfe-users@lists.llvm.org
http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-users