[Android] [PATCH 8/8] contrib: Prevent __gxx_personality_v0 errors in certain C++ libs

Rafaël Carré funman at videolan.org
Wed Jul 25 09:48:51 CEST 2012


Can we make -frtti -fno-exceptions global ?

Then we can enable exceptions e.g. for live555 only

Le 2012-07-25 04:51, Edward Wang a écrit :
> Modplug and taglib refuse to compile without explicitly disabling exceptions:
> 
> CMakeFiles/cmTryCompileExec.dir/testCXXCompiler.cxx.o:(.data.DW.ref.__gxx_personality_v0[DW.ref.__gxx_personality_v0]+0x0):
>   undefined reference to `__gxx_personality_v0'
> ---
>  contrib/src/modplug/rules.mak |   10 +++++++++-
>  contrib/src/taglib/rules.mak  |   10 +++++++++-
>  2 files changed, 18 insertions(+), 2 deletions(-)
> 
> diff --git a/contrib/src/modplug/rules.mak b/contrib/src/modplug/rules.mak
> index 674ae7f..33a444c 100644
> --- a/contrib/src/modplug/rules.mak
> +++ b/contrib/src/modplug/rules.mak
> @@ -19,7 +19,15 @@ libmodplug: libmodplug-$(MODPLUG_VERSION).tar.gz .sum-modplug
>  	$(call pkg_static,"libmodplug.pc.in")
>  	$(MOVE)
>  
> +MODPLUG_EXTRA_CXXFLAGS = ""
> +ifdef HAVE_ANDROID
> +ifeq ($(ANDROID_ABI), x86)
> +# Prevent undefined reference to `__gxx_personality_v0'
> +MODPLUG_EXTRA_CXXFLAGS = CXXFLAGS="${CXXFLAGS} -frtti -fno-exceptions"
> +endif
> +endif
> +
>  .modplug: libmodplug
> -	cd $< && $(HOSTVARS) ./configure $(HOSTCONF)
> +	cd $< && $(HOSTVARS) $(MODPLUG_EXTRA_CXXFLAGS) ./configure $(HOSTCONF)
>  	cd $< && $(MAKE) install
>  	touch $@
> diff --git a/contrib/src/taglib/rules.mak b/contrib/src/taglib/rules.mak
> index c3ccfb8..ead0c73 100644
> --- a/contrib/src/taglib/rules.mak
> +++ b/contrib/src/taglib/rules.mak
> @@ -20,8 +20,16 @@ ifdef HAVE_WIN32
>  endif
>  	$(MOVE)
>  
> +TAGLIB_EXTRA_CXXFLAGS = ""
> +ifdef HAVE_ANDROID
> +ifeq ($(ANDROID_ABI), x86)
> +# Prevent undefined reference to `__gxx_personality_v0'
> +TAGLIB_EXTRA_CXXFLAGS = CXXFLAGS="${CXXFLAGS} -fno-exceptions"
> +endif
> +endif
> +
>  .taglib: taglib toolchain.cmake
> -	cd $< && $(HOSTVARS_PIC) $(CMAKE) \
> +	cd $< && $(HOSTVARS_PIC) $(TAGLIB_EXTRA_CXXFLAGS) $(CMAKE) \
>  		-DENABLE_STATIC:BOOL=ON \
>  		-DWITH_ASF:BOOL=ON \
>  		-DWITH_MP4:BOOL=ON .
> 



More information about the Android mailing list