vlc | branch: master | Diego Elio Pettenò <[email protected]> | Sun Dec 6 11:04:07 2015 +0000| [f177cb43f35b5545f463303efe15af8522da6eed] | committer: Jean-Baptiste Kempf
build: disable non-PIC assembly when building for Android/x86 This disables MMX/MMXEXT code for ffmpeg/postproc, and all assembly for mpg123 and libass, if building for Android on x86 (32-bit). It has performance implications but it avoids all TEXTRELs in the output, which makes it possible to use W^X hardening techniques. The code can probably be ported to be PIC-compatible in the future so that these can be re-enabled, but even Gentoo Linux has no better solutions for this at the moment. Signed-off-by: Diego Elio Pettenò <[email protected]> Signed-off-by: Jean-Baptiste Kempf <[email protected]> > http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=f177cb43f35b5545f463303efe15af8522da6eed --- contrib/src/ass/rules.mak | 7 +++++++ contrib/src/ffmpeg/rules.mak | 6 ++++++ contrib/src/mpg123/rules.mak | 10 +++++++++- contrib/src/postproc/rules.mak | 6 ++++++ 4 files changed, 28 insertions(+), 1 deletion(-) diff --git a/contrib/src/ass/rules.mak b/contrib/src/ass/rules.mak index a9c2603..8793e42 100644 --- a/contrib/src/ass/rules.mak +++ b/contrib/src/ass/rules.mak @@ -10,6 +10,9 @@ endif ifdef HAVE_ANDROID WITH_FONTCONFIG = 0 WITH_HARFBUZZ = 0 +ifeq ($(ANDROID_ABI), x86) +WITH_ASS_ASM = 0 +endif else ifdef HAVE_TIZEN WITH_FONTCONFIG = 0 @@ -59,6 +62,10 @@ else ASS_CONF += --disable-harfbuzz endif +ifeq ($(WITH_ASS_ASM), 0) +ASS_CONF += --disable-asm +endif + ifdef WITH_OPTIMIZATION ASS_CFLAGS += -O3 else diff --git a/contrib/src/ffmpeg/rules.mak b/contrib/src/ffmpeg/rules.mak index 032d66a..0a7ca77 100644 --- a/contrib/src/ffmpeg/rules.mak +++ b/contrib/src/ffmpeg/rules.mak @@ -138,6 +138,12 @@ FFMPEGCONF += --target-os=linux --enable-pic endif +ifdef HAVE_ANDROID +ifeq ($(ANDROID_ABI), x86) +FFMPEGCONF += --disable-mmx --disable-mmxext +endif +endif + # Windows ifdef HAVE_WIN32 ifndef HAVE_MINGW_W64 diff --git a/contrib/src/mpg123/rules.mak b/contrib/src/mpg123/rules.mak index 1f90f79..4ff3322 100644 --- a/contrib/src/mpg123/rules.mak +++ b/contrib/src/mpg123/rules.mak @@ -7,6 +7,14 @@ ifeq ($(call need_pkg,"mpg123"),) PKGS_FOUND += mpg123 endif +MPG123CONF = $(HOSTCONF) + +ifdef HAVE_ANDROID +ifeq ($(ANDROID_ABI), x86) +MPG123CONF += --with-cpu=generic_fpu +endif +endif + $(TARBALLS)/mpg123-$(MPG123_VERSION).tar.bz2: $(call download,$(MPG123_URL)) @@ -22,6 +30,6 @@ endif .mpg123: mpg123 $(RECONF) - cd $< && $(HOSTVARS) ./configure $(HOSTCONF) + cd $< && $(HOSTVARS) ./configure $(MPG123CONF) cd $< && $(MAKE) install touch $@ diff --git a/contrib/src/postproc/rules.mak b/contrib/src/postproc/rules.mak index a132e57..125af48 100644 --- a/contrib/src/postproc/rules.mak +++ b/contrib/src/postproc/rules.mak @@ -73,6 +73,12 @@ ifdef HAVE_LINUX POSTPROCCONF += --target-os=linux --enable-pic endif +ifdef HAVE_ANDROID +ifeq ($(ANDROID_ABI), x86) +POSTPROCCONF += --disable-mmx --disable-mmxext +endif +endif + # Windows ifdef HAVE_WIN32 POSTPROCCONF += --target-os=mingw32 _______________________________________________ vlc-commits mailing list [email protected] https://mailman.videolan.org/listinfo/vlc-commits
