From a226c5475525a04aa3f4ab35b72a7a4688520479 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Adrien=20B=C3=A9raud?= <adrien.beraud@savoirfairelinux.com> Date: Wed, 23 Sep 2020 12:16:18 -0400 Subject: [PATCH] contrib: fix Android build without standalone toolchain Change-Id: Ic4eeecb3d982e1b2409cf5a5a364ed6b32395655 --- contrib/src/ffmpeg/rules.mak | 13 +++++++-- contrib/src/libarchive/rules.mak | 2 ++ contrib/src/main.mak | 5 ---- .../src/x264/0001-use-internal-log2f.patch | 29 ------------------- contrib/src/x264/rules.mak | 16 +++++----- 5 files changed, 19 insertions(+), 46 deletions(-) delete mode 100644 contrib/src/x264/0001-use-internal-log2f.patch diff --git a/contrib/src/ffmpeg/rules.mak b/contrib/src/ffmpeg/rules.mak index 701b32212e..086d5eb392 100644 --- a/contrib/src/ffmpeg/rules.mak +++ b/contrib/src/ffmpeg/rules.mak @@ -194,7 +194,6 @@ endif ifdef HAVE_LINUX FFMPEGCONF += --enable-pic -FFMPEGCONF += --extra-cxxflags=-fPIC --extra-cflags=-fPIC ifdef HAVE_ANDROID # Android Linux FFMPEGCONF += \ @@ -204,7 +203,14 @@ FFMPEGCONF += \ --enable-decoder=vp8_mediacodec \ --enable-decoder=h264_mediacodec \ --enable-decoder=mpeg4_mediacodec \ - --enable-decoder=hevc_mediacodec + --enable-decoder=hevc_mediacodec \ + --enable-cross-compile \ + --ranlib=$(RANLIB) \ + --strip=$(STRIP) \ + --cc=$(CC) \ + --cxx=$(CXX) \ + --ld=$(CC) \ + --ar=$(AR) # ASM not working on Android x86 https://trac.ffmpeg.org/ticket/4928 ifeq ($(ARCH),i386) FFMPEGCONF += --disable-asm @@ -276,15 +282,16 @@ FFMPEGCONF += \ --enable-encoder=hevc_videotoolbox \ --target-os=darwin \ --enable-cross-compile \ - --arch=$(ARCH) \ --enable-pic endif ifndef HAVE_IOS +ifndef HAVE_ANDROID ifdef HAVE_CROSS_COMPILE FFMPEGCONF += --cross-prefix=$(HOST)- endif endif +endif # x86 stuff ifeq ($(ARCH),i386) diff --git a/contrib/src/libarchive/rules.mak b/contrib/src/libarchive/rules.mak index ee3409adab..15dd853c14 100644 --- a/contrib/src/libarchive/rules.mak +++ b/contrib/src/libarchive/rules.mak @@ -5,6 +5,8 @@ LIBARCHIVE_URL := https://github.com/libarchive/libarchive/releases/download/v$( PKGS += libarchive ifeq ($(call need_pkg,"libarchive >= 3.4.0"),) PKGS_FOUND += libarchive +else +DEPS_libarchive += nettle endif LIBARCHIVE_CMAKECONF := \ diff --git a/contrib/src/main.mak b/contrib/src/main.mak index 28cce1f393..203334ad6c 100644 --- a/contrib/src/main.mak +++ b/contrib/src/main.mak @@ -121,11 +121,6 @@ STRIP := $(CROSS_COMPILE)strip endif endif -ifdef HAVE_ANDROID -CC := $(CROSS_COMPILE)clang -CXX := $(CROSS_COMPILE)clang++ -endif - ifdef HAVE_MACOSX MIN_OSX_VERSION=10.11 CC=xcrun cc diff --git a/contrib/src/x264/0001-use-internal-log2f.patch b/contrib/src/x264/0001-use-internal-log2f.patch deleted file mode 100644 index 7c79bbe6c3..0000000000 --- a/contrib/src/x264/0001-use-internal-log2f.patch +++ /dev/null @@ -1,29 +0,0 @@ -From 649b319cfa3fc9bb4b9a93264cff70c187336093 Mon Sep 17 00:00:00 2001 -From: philippegorley <gorley.philippe@gmail.com> -Date: Fri, 28 Jul 2017 09:45:23 -0400 -Subject: [PATCH] use internal log2f - ---- - configure | 6 +++--- - 1 file changed, 3 insertions(+), 3 deletions(-) - -diff --git a/configure b/configure -index ec9389d..02b05c7 100755 ---- a/configure -+++ b/configure -@@ -1033,9 +1033,9 @@ if [ "$thread" = "posix" ]; then - fi - [ "$thread" != "no" ] && define HAVE_THREAD - --if cc_check "math.h" "-Werror" "return log2f(2);" ; then -- define HAVE_LOG2F --fi -+#if cc_check "math.h" "-Werror" "return log2f(2);" ; then -+ define HAVE_LOG2F 0 -+#fi - - if [ "$SYS" != "WINDOWS" ] && cpp_check "sys/mman.h unistd.h" "" "defined(MAP_PRIVATE)"; then - define HAVE_MMAP --- -2.7.4 - diff --git a/contrib/src/x264/rules.mak b/contrib/src/x264/rules.mak index 51e9057558..a83e8e8c13 100644 --- a/contrib/src/x264/rules.mak +++ b/contrib/src/x264/rules.mak @@ -1,6 +1,6 @@ # x264 ifndef HAVE_IOS -X264_HASH := 8c2974255b01728d4eda2434cc1997c4a3ca5eff +X264_HASH := db0d417728460c647ed4a847222a535b00d3dbcb else X264_HASH := fa3cac516cb71b8ece09cedbfd0ce631ca8a2a4c endif @@ -26,10 +26,12 @@ else X264CONF += --enable-win32thread endif ifndef HAVE_IOS +ifndef HAVE_ANDROID ifdef HAVE_CROSS_COMPILE X264CONF += --cross-prefix="$(CROSS_COMPILE)" endif endif +endif # android x86_64 has reloc errors related to assembly optimizations ifdef HAVE_ANDROID @@ -51,19 +53,15 @@ x264: x264-$(X264_HASH).tar.xz .sum-x264 (cd $@-$(X264_HASH) && tar x $(if ${BATCH_MODE},,-v) --strip-components=1 -f ../$<) ifdef HAVE_IOS $(APPLY) $(SRC)/x264/remove-align.patch -endif -ifdef HAVE_ANDROID -ifeq ($(ARCH),arm) - $(APPLY) $(SRC)/x264/0001-use-internal-log2f.patch -endif -ifeq ($(ARCH),i386) - $(APPLY) $(SRC)/x264/0001-use-internal-log2f.patch -endif endif $(UPDATE_AUTOCONFIG) $(MOVE) .x264: x264 +ifdef HAVE_ANDROID + cd $< && $(HOSTVARS) AS="$(CC)" ./configure $(X264CONF) +else cd $< && $(HOSTVARS) ./configure $(X264CONF) +endif cd $< && $(MAKE) install touch $@ -- GitLab