Ok, it is also a practical method. 

-----Original Message-----
From: Zhigang Gong [mailto:[email protected]] 
Sent: Wednesday, January 07, 2015 12:56 PM
To: Guo, Yejun
Cc: [email protected]
Subject: Re: [Beignet] [PATCH 3/3] add CMAKE option ENABLE_RTTI for some stl 
version


Right, I also found this error. The root cause is that we mixed rtti(beignet 
backend) and no-rtti(llvm) library.

Considering this issue only exists with old system such as
CentOS6.5 and we will never try to link LLVM on that system.

We can just simply remove no-rtti if USE_STANDALONE_GBE_COMPILER set, otherwise 
we always have no-rtti.

Then the user always don't need to be away of it.

On Wed, Jan 07, 2015 at 05:27:13AM +0000, Guo, Yejun wrote:
> Sure, I tried to remove -fno-rtti and it failed to build libgbe.so.
> 
> Just did it again to get the detail log, see below.
> Linking CXX shared library libgbe.so
> CMakeFiles/gbe.dir/llvm/llvm_sampler_fix.cpp.o:(.data.rel.ro._ZTIN3gbe10SamplerFixE[_ZTIN3gbe10SamplerFixE]+0x10):
>  undefined reference to `typeinfo for llvm::FunctionPass'
> CMakeFiles/gbe.dir/llvm/llvm_gen_backend.cpp.o:(.data.rel.ro._ZTIN3gbe9GenWriterE[_ZTIN3gbe9GenWriterE]+0x18):
>  undefined reference to `typeinfo for llvm::FunctionPass'
> CMakeFiles/gbe.dir/llvm/llvm_passes.cpp.o:(.data.rel.ro._ZTIN3gbe17GenRemoveGEPPasssE[_ZTIN3gbe17GenRemoveGEPPasssE]+0x10):
>  undefined reference to `typeinfo for llvm::BasicBlockPass'
> CMakeFiles/gbe.dir/llvm/llvm_scalarize.cpp.o:(.data.rel.ro._ZTIN3gbe9ScalarizeE[_ZTIN3gbe9ScalarizeE]+0x10):
>  undefined reference to `typeinfo for llvm::FunctionPass'
> CMakeFiles/gbe.dir/llvm/llvm_legalize.cpp.o:(.data.rel.ro._ZTIN3gbe8LegalizeE[_ZTIN3gbe8LegalizeE]+0x10):
>  undefined reference to `typeinfo for llvm::FunctionPass'
> CMakeFiles/gbe.dir/llvm/llvm_intrinsic_lowering.cpp.o:(.data.rel.ro._ZTIN3gbe18InstrinsicLoweringE[_ZTIN3gbe18InstrinsicLoweringE]+0x10):
>  undefined reference to `typeinfo for llvm::BasicBlockPass'
> CMakeFiles/gbe.dir/llvm/llvm_printf_parser.cpp.o:(.data.rel.ro._ZTIN3gbe12PrintfParserE[_ZTIN3gbe12PrintfParserE]+0x10):
>  undefined reference to `typeinfo for llvm::FunctionPass'
> CMakeFiles/gbe.dir/llvm/llvm_loadstore_optimization.cpp.o:(.data.rel.ro._ZTIN3gbe24GenLoadStoreOptimizationE[_ZTIN3gbe24GenLoadStoreOptimizationE]+0x10):
>  undefined reference to `typeinfo for llvm::BasicBlockPass'
> CMakeFiles/gbe.dir/llvm/llvm_unroll.cpp.o:(.data.rel.ro._ZTIN3gbe16CustomLoopUnrollE[_ZTIN3gbe16CustomLoopUnrollE]+0x10):
>  undefined reference to `typeinfo for llvm::LoopPass'
> CMakeFiles/gbe.dir/llvm/llvm_barrier_nodup.cpp.o:(.data.rel.ro._ZTIN3gbe12BarrierNodupE[_ZTIN3gbe12BarrierNodupE]+0x10):
>  undefined reference to `typeinfo for llvm::ModulePass'
> collect2: error: ld returned 1 exit status
> make[2]: *** [backend/src/libgbe.so] Error 1
> 
> -----Original Message-----
> From: Zhigang Gong [mailto:[email protected]]
> Sent: Wednesday, January 07, 2015 12:13 PM
> To: Guo, Yejun
> Cc: [email protected]
> Subject: Re: [Beignet] [PATCH 3/3] add CMAKE option ENABLE_RTTI for 
> some stl version
> 
> Can we just remove -fno-rtti? Did you try it?
> 
> On Wed, Jan 07, 2015 at 04:33:16AM +0000, Guo, Yejun wrote:
> > I did not find a good way to get the STL version, except checking the file 
> > name of libstdc++.so.version. From another perspective, what we know is 
> > that the default STL version inside CentOS6.5 requires RTTI, we do not know 
> > if any other version requires RTTI, imho, it is better to export this 
> > option instead of checking a specific version number in cmake. Otherwise, 
> > users need to modify CMakeLists to add another version number when he meets 
> > the case.
> > 
> > -----Original Message-----
> > From: Beignet [mailto:[email protected]] On 
> > Behalf Of Zhigang Gong
> > Sent: Wednesday, January 07, 2015 10:26 AM
> > To: Guo, Yejun
> > Cc: [email protected]
> > Subject: Re: [Beignet] [PATCH 3/3] add CMAKE option ENABLE_RTTI for 
> > some stl version
> > 
> > Could you find out the specified STL version? And do some checking at 
> > configuration time and remove or add fno-rtti according to the checking 
> > resul?
> > 
> > Thanks.
> > 
> > On Wed, Dec 31, 2014 at 03:36:24PM +0800, Guo Yejun wrote:
> > > for some STL version, unable to build with -fno-rtti, have to enable it.
> > > 
> > > Signed-off-by: Guo Yejun <[email protected]>
> > > ---
> > >  CMakeLists.txt | 8 +++++++-
> > >  1 file changed, 7 insertions(+), 1 deletion(-)
> > > 
> > > diff --git a/CMakeLists.txt b/CMakeLists.txt index 
> > > 5cb31c2..9b9c9ea
> > > 100644
> > > --- a/CMakeLists.txt
> > > +++ b/CMakeLists.txt
> > > @@ -65,7 +65,13 @@ elseif (COMPILER STREQUAL "CLANG")  elseif 
> > > (COMPILER STREQUAL "ICC")
> > >    set (CMAKE_C_CXX_FLAGS "${CMAKE_C_CXX_FLAGS}  -wd2928 -Wall 
> > > -fPIC -fstrict-aliasing -fp-model fast -msse4.1 -Wl,-E")  endif () 
> > > -set (CMAKE_CXX_FLAGS "${CMAKE_C_CXX_FLAGS} -std=c++0x 
> > > -Wno-invalid-offsetof -fno-rtti")
> > > +
> > > +set (CMAKE_CXX_FLAGS "${CMAKE_C_CXX_FLAGS} -std=c++0x
> > > +-Wno-invalid-offsetof")
> > > +
> > > +if (NOT ENABLE_RTTI)
> > > +set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fno-rtti") endif ()
> > > +
> > >  set (CMAKE_C_FLAGS "${CMAKE_C_CXX_FLAGS}")
> > >  set (CMAKE_CXX_FLAGS_DEBUG          "-O0 -g -DGBE_DEBUG=1")
> > >  set (CMAKE_CXX_FLAGS_RELWITHDEBINFO "-O2 -g -DGBE_DEBUG=1")
> > > --
> > > 1.9.1
> > > 
> > > _______________________________________________
> > > Beignet mailing list
> > > [email protected]
> > > http://lists.freedesktop.org/mailman/listinfo/beignet
> > _______________________________________________
> > Beignet mailing list
> > [email protected]
> > http://lists.freedesktop.org/mailman/listinfo/beignet
> > _______________________________________________
> > Beignet mailing list
> > [email protected]
> > http://lists.freedesktop.org/mailman/listinfo/beignet
> _______________________________________________
> Beignet mailing list
> [email protected]
> http://lists.freedesktop.org/mailman/listinfo/beignet
_______________________________________________
Beignet mailing list
[email protected]
http://lists.freedesktop.org/mailman/listinfo/beignet

Reply via email to