<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>