<div class="gmail_quote"><div>I got your point. Thank you, and I'd like to provide the relative message now. But firstly, what do you mean by the "relevant command generated by your makefile"? What I can tell you now is:<br>
<br>
The Error Message:<br><div>
<div>make[3]: Entering directory `/home/tang.kk/ppcg/ppcg/isl/interface'</div><div> CXXLD extract_interface</div><div>extract_interface.o:(.data.rel.ro._ZTI13MyASTConsumer[typeinfo for MyASTConsumer]+0x10): undefined reference to `typeinfo for clang::ASTConsumer'</div>
<div>collect2: ld returned 1 exit status</div><div>make[3]: *** [extract_interface] Error 1</div><div>make[3]: Leaving directory `/home/tang.kk/ppcg/ppcg/isl/interface'</div><div>make[2]: *** [all-recursive] Error 1</div>
<div>make[2]: Leaving directory `/home/tang.kk/ppcg/ppcg/isl'</div><div>make[1]: *** [all] Error 2</div><div>make[1]: Leaving directory `/home/tang.kk/ppcg/ppcg/isl'</div><div>make: *** [all-recursive] Error 1<br>
<br>The "make V=1" is:<br><div>tang.kk@linux-eda-0:~/ppcg/ppcg> make V=1</div><div>Making all in isl</div>
<div>make[1]: Entering directory `/home/tang.kk/ppcg/ppcg/isl'</div><div>make all-recursive</div><div>make[2]: Entering directory `/home/tang.kk/ppcg/ppcg/isl'</div><div>Making all in .</div><div>make[3]: Entering directory `/home/tang.kk/ppcg/ppcg/isl'</div>
<div>make[3]: Leaving directory `/home/tang.kk/ppcg/ppcg/isl'</div><div>Making all in interface</div><div><div>make[3]: Entering directory `/home/tang.kk/ppcg/ppcg/isl/interface'</div></div><div>/bin/sh ../libtool --tag=CXX --mode=link g++ -I/home/tang.kk/work/llvm-install/include
-fPIC -fvisibility-inlines-hidden -D_GNU_SOURCE -Wall -W
-Wno-unused-parameter -Wwrite-strings -pedantic -Wno-long-long
-D__STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS -D__STDC_LIMIT_MACROS -g
-O2 -save-temps -L/home/tang.kk/work/llvm-install/lib -ldl
-lpthread -o extract_interface python.o extract_interface.o
-lclangFrontend -lclangSerialization -lclangParse -lclangSema
-lclangAnalysis -lclangAST -lclangLex -lclangBasic -lclangDriver
-lLLVMAnalysis -lLLVMTarget -lLLVMMC -lLLVMObject -lLLVMCore
-lLLVMSupport -L/home/tang.kk/work/llvm-install/lib -ldl -lpthread</div>
<div>libtool: link: g++ -I/home/tang.kk/work/llvm-install/include
-fPIC -fvisibility-inlines-hidden -D_GNU_SOURCE -Wall -W
-Wno-unused-parameter -Wwrite-strings -pedantic -Wno-long-long
-D__STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS -D__STDC_LIMIT_MACROS -g
-O2 -save-temps -o extract_interface python.o extract_interface.o
-L/home/tang.kk/work/llvm-install/lib -lclangFrontend
-lclangSerialization -lclangParse -lclangSema -lclangAnalysis -lclangAST
-lclangLex -lclangBasic -lclangDriver -lLLVMAnalysis -lLLVMTarget
-lLLVMMC -lLLVMObject -lLLVMCore -lLLVMSupport -ldl -lpthread</div>
<div>extract_interface.o:(.data.rel.ro._ZTI13MyASTConsumer[typeinfo for MyASTConsumer]+0x10): undefined reference to `typeinfo for clang::ASTConsumer'</div><div><div>collect2: ld returned 1 exit status</div>
</div><div>make[3]: *** [extract_interface] Error 1</div>
<div>make[3]: Leaving directory `/home/tang.kk/ppcg/ppcg/isl/interface'</div><div><div>make[2]: *** [all-recursive] Error 1</div></div><div>make[2]: Leaving directory `/home/tang.kk/ppcg/ppcg/isl'</div>
<div><div>make[1]: *** [all] Error 2</div>
</div><div>make[1]: Leaving directory `/home/tang.kk/ppcg/ppcg/isl'</div><div>make: *** [all-recursive] Error 1<br><br>And my llvm-config --cxxflags is:<br>-fPIC -fvisibility-inlines-hidden -D_GNU_SOURCE -Wall -W
-Wno-unused-parameter -Wwrite-strings -pedantic -Wno-long-long
-D__STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS -D__STDC_LIMIT_MACROS<br></div><br>Best Regards,<br>TangKK<br></div>
</div><br> <br></div><blockquote class="gmail_quote" style="margin:0pt 0pt 0pt 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div>
>> Is it? In my experience, it isn't. Please show the relevant command<br>
>> generated by your makefile and the associated error message(s).<br>
>> <br></div></blockquote><blockquote class="gmail_quote" style="margin:0pt 0pt 0pt 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div>
><br>
>> RTTI is an on/off option that changes per LLVM library, so setting<br>
>> -fno-rtti for using LLVM makes no sense. VMCore and Support have -frtti<br>
>> while most of the rest have -fno-rtti. The switch is decided on<br>
>> cmake/modules/LLVMProcessSources.cmake depending on the value of<br>
>> LLVM_REQUIRES_RTTI.<br>
>><br>
>><br>
>> Hello! I'm sorry, because I've already solved the build problem with the<br>
> mentioned app manually, now it's not very convenient for me to reproduce<br>
> the error for the moment. I agree that "RTTI is an on/off option". But I<br>
> think the point of the problem I mentioned here is: some applications that<br>
> depend on llvm and clang use llvm-config to configure their Makefile, while<br>
> the llvm-config cannot provide the correct information they need. And this<br>
> is what actually happened under my platform.<br>
<br>
</div>If you read again my post, you'll see that I doubt that the absence of<br>
-fno-rtti on the output of llvm-config is the problem. Using -fno-rtti<br>
is an internal decision taken while building LLVM and it makes no sense<br>
to impose it on third party code. In short: LLVM does not require<br>
-fno-rtti from the projects that link to it.<br>
<br>
Most likely, you were experiencing link problems on *your* code that<br>
were resolved by using -fno-rtti. But as you are not interested on<br>
investigating the issue, we'll never know for sure.<br>
</blockquote><br></div><br>