From bb853f065417b385595adefc545595ce3e2d20b7 Mon Sep 17 00:00:00 2001 From: Steve Lhomme <robux4@ycbcr.xyz> Date: Mon, 28 Oct 2024 13:22:41 +0100 Subject: [PATCH 01/17] buildsystem: remove usage of custom TARBALLS folder It's not supported by the contribs. --- buildsystem/build-libvlc.sh | 17 +++++------------ 1 file changed, 5 insertions(+), 12 deletions(-) diff --git a/buildsystem/build-libvlc.sh b/buildsystem/build-libvlc.sh index 236210b..e4f6aaa 100755 --- a/buildsystem/build-libvlc.sh +++ b/buildsystem/build-libvlc.sh @@ -119,13 +119,6 @@ fi VLC_BUILD_DIR="$(cd $VLC_SRC_DIR/; pwd)/build-android-${TARGET_TUPLE}" -if [ -z $VLC_TARBALLS ]; then - VLC_TARBALLS="$(cd $VLC_SRC_DIR/;pwd)/contrib/tarballs" -fi -if [ ! -d $VLC_TARBALLS ]; then - mkdir -p $VLC_TARBALLS -fi - VLC_OUT_PATH="$VLC_BUILD_DIR/ndk" mkdir -p $VLC_OUT_PATH @@ -491,9 +484,9 @@ if [ "$AVLC_USE_PREBUILT_CONTRIBS" -gt "0" ]; then avlc_checkfail "Fetching prebuilt contribs from ${VLC_PREBUILT_CONTRIBS_URL} failed" fi # list packages to be built - make -C $VLC_CONTRIB_DIR TARBALLS="$VLC_TARBALLS" list + make -C $VLC_CONTRIB_DIR list # build native tools - make -C $VLC_CONTRIB_DIR TARBALLS="$VLC_TARBALLS" tools + make -C $VLC_CONTRIB_DIR tools else # Some libraries have arm assembly which won't build in thumb mode # We append -marm to the CFLAGS of these libs to disable thumb mode @@ -511,14 +504,14 @@ else echo "STRIP=${CROSS_TOOLS}strip" >> $VLC_CONTRIB_DIR/config.mak # list packages to be built - make -C $VLC_CONTRIB_DIR TARBALLS="$VLC_TARBALLS" list + make -C $VLC_CONTRIB_DIR list - make -C $VLC_CONTRIB_DIR TARBALLS="$VLC_TARBALLS" $MAKEFLAGS fetch + make -C $VLC_CONTRIB_DIR $MAKEFLAGS fetch avlc_checkfail "contribs: make fetch failed" #export the PATH # Make - make -C $VLC_CONTRIB_DIR TARBALLS="$VLC_TARBALLS" $MAKEFLAGS -k || make -C $VLC_CONTRIB_DIR TARBALLS="$VLC_TARBALLS" $MAKEFLAGS -j1 + make -C $VLC_CONTRIB_DIR $MAKEFLAGS -k || make -C $VLC_CONTRIB_DIR $MAKEFLAGS -j1 avlc_checkfail "contribs: make failed" # Make prebuilt contribs package -- GitLab From 287ac571fd819a4d1a61b6536fad31610858f578 Mon Sep 17 00:00:00 2001 From: Steve Lhomme <robux4@ycbcr.xyz> Date: Tue, 29 Oct 2024 09:50:40 +0100 Subject: [PATCH 02/17] buildsystem: rename libvlcjni- generated files to libvlc- There is no JNI in there. --- buildsystem/build-libvlc.sh | 4 ++-- libvlc/jni/libvlc.mk | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/buildsystem/build-libvlc.sh b/buildsystem/build-libvlc.sh index e4f6aaa..bd93edc 100755 --- a/buildsystem/build-libvlc.sh +++ b/buildsystem/build-libvlc.sh @@ -657,7 +657,7 @@ EOF BUILTINS="$BUILTINS vlc_entry__$name,\n"; done; BUILTINS="$BUILTINS NULL\n};\n"; \ -printf "/* Autogenerated from the list of modules */\n#include <unistd.h>\n$DEFINITION\n$BUILTINS\n" > $VLC_OUT_PATH/libvlcjni-modules.c +printf "/* Autogenerated from the list of modules */\n#include <unistd.h>\n$DEFINITION\n$BUILTINS\n" > $VLC_OUT_PATH/libvlc-modules.c DEFINITION="" BUILTINS="const void *libvlc_functions[] = {\n"; @@ -667,7 +667,7 @@ do BUILTINS="$BUILTINS $func,\n"; done BUILTINS="$BUILTINS NULL\n};\n"; \ -printf "/* Autogenerated from the list of modules */\n#include <unistd.h>\n$DEFINITION\n$BUILTINS\n" > $VLC_OUT_PATH/libvlcjni-symbols.c +printf "/* Autogenerated from the list of modules */\n#include <unistd.h>\n$DEFINITION\n$BUILTINS\n" > $VLC_OUT_PATH/libvlc-symbols.c rm ${REDEFINED_VLC_MODULES_DIR}/syms diff --git a/libvlc/jni/libvlc.mk b/libvlc/jni/libvlc.mk index cc1279c..05cd81c 100644 --- a/libvlc/jni/libvlc.mk +++ b/libvlc/jni/libvlc.mk @@ -21,8 +21,8 @@ include $(PREBUILT_STATIC_LIBRARY) # libvlc build with all its modules include $(CLEAR_VARS) LOCAL_MODULE := libvlc -LOCAL_SRC_FILES := $(VLC_BUILD_DIR)/ndk/libvlcjni-modules.c \ - $(VLC_BUILD_DIR)/ndk/libvlcjni-symbols.c +LOCAL_SRC_FILES := $(VLC_BUILD_DIR)/ndk/libvlc-modules.c \ + $(VLC_BUILD_DIR)/ndk/libvlc-symbols.c LOCAL_LDFLAGS := -L$(VLC_CONTRIB)/lib LOCAL_LDLIBS := \ $(VLC_MODULES) \ -- GitLab From bc5134a3c39f2034324ce8b3c2288a830668f384 Mon Sep 17 00:00:00 2001 From: Steve Lhomme <robux4@ycbcr.xyz> Date: Tue, 29 Oct 2024 08:03:41 +0100 Subject: [PATCH 03/17] buildsystem: don't force -ljpeg or -lz They are found in the .pc files. As found in https://code.videolan.org/videolan/libvlcjni/-/merge_requests/107 --- libvlc/jni/libvlc.mk | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/libvlc/jni/libvlc.mk b/libvlc/jni/libvlc.mk index 05cd81c..48579a7 100644 --- a/libvlc/jni/libvlc.mk +++ b/libvlc/jni/libvlc.mk @@ -30,8 +30,7 @@ LOCAL_LDLIBS := \ $(VLC_BUILD_DIR)/src/.libs/libvlccore.a \ $(VLC_BUILD_DIR)/compat/.libs/libcompat.a \ $(VLC_CONTRIB_LDFLAGS) \ - -ldl -lz -lm -llog \ - -ljpeg \ + -ldl -lm -llog \ -Wl,-Bsymbolic LOCAL_CXXFLAGS := -std=c++17 # This duplicates the libvlc* link flags, but it propagates the dependency -- GitLab From 741101d90a490cce20108bf9a1823ef280d8784a Mon Sep 17 00:00:00 2001 From: Steve Lhomme <robux4@ycbcr.xyz> Date: Tue, 29 Oct 2024 08:04:28 +0100 Subject: [PATCH 04/17] buildsystem: use the lua from pkg-config In VLC 4 contribs, the .pc file is there. As found in https://code.videolan.org/videolan/libvlcjni/-/merge_requests/107 --- buildsystem/build-libvlc.sh | 7 ------- 1 file changed, 7 deletions(-) diff --git a/buildsystem/build-libvlc.sh b/buildsystem/build-libvlc.sh index bd93edc..9b07b7f 100755 --- a/buildsystem/build-libvlc.sh +++ b/buildsystem/build-libvlc.sh @@ -678,13 +678,6 @@ rm ${REDEFINED_VLC_MODULES_DIR}/syms VLC_MODULES=$(avlc_find_modules ${REDEFINED_VLC_MODULES_DIR}) VLC_CONTRIB_LDFLAGS=$(for i in $(/bin/ls $VLC_CONTRIB/lib/pkgconfig/*.pc); do avlc_pkgconfig --libs $i; done |xargs) -# Lua contrib doesn't expose a pkg-config file with libvlc 3.x and is -# not probed by the previous command in VLC_CONTRIB_LDFLAGS, so probe -# whether it was detected or add it manually to the LDFLAGS. -if ! avlc_pkgconfig --exists lua; then - VLC_CONTRIB_LDFLAGS="$VLC_CONTRIB_LDFLAGS '$VLC_CONTRIB/lib/liblua.a'" -fi - echo -e "ndk-build vlc" $NDK_BUILD -C $LIBVLCJNI_ROOT/libvlc \ -- GitLab From e72a934f794eb3e9dee6403e8c77cf8467d5e55a Mon Sep 17 00:00:00 2001 From: Steve Lhomme <robux4@ycbcr.xyz> Date: Tue, 29 Oct 2024 08:05:05 +0100 Subject: [PATCH 05/17] buildsystem: let pkg-config order and remove duplicate dependencies As found in https://code.videolan.org/videolan/libvlcjni/-/merge_requests/107 --- buildsystem/build-libvlc.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/buildsystem/build-libvlc.sh b/buildsystem/build-libvlc.sh index 9b07b7f..bb14a4f 100755 --- a/buildsystem/build-libvlc.sh +++ b/buildsystem/build-libvlc.sh @@ -676,7 +676,7 @@ rm ${REDEFINED_VLC_MODULES_DIR}/syms ########################### VLC_MODULES=$(avlc_find_modules ${REDEFINED_VLC_MODULES_DIR}) -VLC_CONTRIB_LDFLAGS=$(for i in $(/bin/ls $VLC_CONTRIB/lib/pkgconfig/*.pc); do avlc_pkgconfig --libs $i; done |xargs) +VLC_CONTRIB_LDFLAGS=$(cd $VLC_CONTRIB/lib/pkgconfig; avlc_pkgconfig --libs $(ls *.pc | sed -e 's/\.pc$//' | xargs)) echo -e "ndk-build vlc" -- GitLab From c93061d42d72da247a6b25e76d658edecce0381a Mon Sep 17 00:00:00 2001 From: Steve Lhomme <robux4@ycbcr.xyz> Date: Tue, 29 Oct 2024 08:50:20 +0100 Subject: [PATCH 06/17] buildsystem: remove extra android from the contrib build dir It's already part of the TARGET_TUPLE --- buildsystem/build-libvlc.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/buildsystem/build-libvlc.sh b/buildsystem/build-libvlc.sh index bb14a4f..f1e6e3c 100755 --- a/buildsystem/build-libvlc.sh +++ b/buildsystem/build-libvlc.sh @@ -449,7 +449,7 @@ fi echo "Building the contribs" -VLC_CONTRIB_DIR=$VLC_SRC_DIR/contrib/contrib-android-${TARGET_TUPLE} +VLC_CONTRIB_DIR=$VLC_SRC_DIR/contrib/contrib-${TARGET_TUPLE} VLC_CONTRIB_OUT_DIR=$VLC_SRC_DIR/contrib/${TARGET_TUPLE} mkdir -p $VLC_CONTRIB_OUT_DIR/lib/pkgconfig -- GitLab From 50827bf75fd3b25782342787cf4b4622a78d3f40 Mon Sep 17 00:00:00 2001 From: Steve Lhomme <robux4@ycbcr.xyz> Date: Tue, 29 Oct 2024 11:03:19 +0100 Subject: [PATCH 07/17] buildsystem: link directly with EGL/GLESv2 Rather than relying on a dummy .pc file. --- libvlc/jni/libvlc.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/libvlc/jni/libvlc.mk b/libvlc/jni/libvlc.mk index 48579a7..dba4295 100644 --- a/libvlc/jni/libvlc.mk +++ b/libvlc/jni/libvlc.mk @@ -30,7 +30,7 @@ LOCAL_LDLIBS := \ $(VLC_BUILD_DIR)/src/.libs/libvlccore.a \ $(VLC_BUILD_DIR)/compat/.libs/libcompat.a \ $(VLC_CONTRIB_LDFLAGS) \ - -ldl -lm -llog \ + -ldl -lm -llog -lEGL -lGLESv2 \ -Wl,-Bsymbolic LOCAL_CXXFLAGS := -std=c++17 # This duplicates the libvlc* link flags, but it propagates the dependency -- GitLab From ae4667c30ddbed9feaa6232524552b7498192819 Mon Sep 17 00:00:00 2001 From: Steve Lhomme <robux4@ycbcr.xyz> Date: Tue, 29 Oct 2024 08:54:52 +0100 Subject: [PATCH 08/17] buildsystem: remove fake EGL/GLESv2 pkg-config file They are not referenced by other pkg-config files and if detection fails in some contrib, it needs to be fixed for any NDK. VLC doesn't expect them, see 06f92cd58ef523229a2467bac53b99fef9d49655 and 371372cfeb6e983fe27b86e9be711f95bd3e2785. --- buildsystem/build-libvlc.sh | 2 -- 1 file changed, 2 deletions(-) diff --git a/buildsystem/build-libvlc.sh b/buildsystem/build-libvlc.sh index f1e6e3c..b327939 100755 --- a/buildsystem/build-libvlc.sh +++ b/buildsystem/build-libvlc.sh @@ -453,8 +453,6 @@ VLC_CONTRIB_DIR=$VLC_SRC_DIR/contrib/contrib-${TARGET_TUPLE} VLC_CONTRIB_OUT_DIR=$VLC_SRC_DIR/contrib/${TARGET_TUPLE} mkdir -p $VLC_CONTRIB_OUT_DIR/lib/pkgconfig -avlc_gen_pc_file $VLC_CONTRIB_OUT_DIR/lib/pkgconfig EGL 1.1 -avlc_gen_pc_file $VLC_CONTRIB_OUT_DIR/lib/pkgconfig GLESv2 2 mkdir -p $VLC_CONTRIB_DIR/lib/pkgconfig -- GitLab From a67b1a15ca729515cf913707d25dec71472a2e81 Mon Sep 17 00:00:00 2001 From: Steve Lhomme <robux4@ycbcr.xyz> Date: Tue, 29 Oct 2024 10:54:32 +0100 Subject: [PATCH 09/17] buildsystem: don't use the system PKG_CONFIG_LIBDIR We are always cross-compiling for Android. --- buildsystem/build-libvlc.sh | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/buildsystem/build-libvlc.sh b/buildsystem/build-libvlc.sh index b327939..8943eb7 100755 --- a/buildsystem/build-libvlc.sh +++ b/buildsystem/build-libvlc.sh @@ -240,12 +240,16 @@ avlc_pkgconfig() { # Enforce pkg-config files coming from VLC contribs PKG_CONFIG_PATH="$VLC_CONTRIB/lib/pkgconfig/" \ - PKG_CONFIG_LIBDIR="$VLC_CONTRIB/lib/pkgconfig/" \ pkg-config "$@" } avlc_build() { +# Set PKG_CONFIG_LIBDIR to an empty string to prevent +# pkg-config from finding dependencies on the build +# machine, so that it only finds deps in contribs +export PKG_CONFIG_LIBDIR="" + ########################### # VLC BOOTSTRAP ARGUMENTS # ########################### -- GitLab From 400a5c78588e7b286c1cb7fd6e7032058e863887 Mon Sep 17 00:00:00 2001 From: Steve Lhomme <robux4@ycbcr.xyz> Date: Tue, 29 Oct 2024 09:06:47 +0100 Subject: [PATCH 10/17] buildsystem: don't force a PKG_CONFIG_LIBDIR when configuring VLC The configure script finds the contribs using --with-contrib --- buildsystem/build-libvlc.sh | 1 - 1 file changed, 1 deletion(-) diff --git a/buildsystem/build-libvlc.sh b/buildsystem/build-libvlc.sh index 8943eb7..cd1f142 100755 --- a/buildsystem/build-libvlc.sh +++ b/buildsystem/build-libvlc.sh @@ -557,7 +557,6 @@ if [ ! -e $VLC_BUILD_DIR/config.h -o "$AVLC_RELEASE" = 1 ]; then RANLIB="${CROSS_TOOLS}ranlib" \ AR="${CROSS_TOOLS}ar" \ AS="${CROSS_TOOLS}as" \ - PKG_CONFIG_LIBDIR=$VLC_SRC_DIR/contrib/$TARGET_TUPLE/lib/pkgconfig \ ../configure --host=$TARGET_TUPLE \ --with-contrib=${VLC_SRC_DIR}/contrib/${TARGET_TUPLE} \ --prefix=${VLC_BUILD_DIR}/install/ \ -- GitLab From 6366288d39f5d71c6cb4ebc2c5f9ab81ca6cd761 Mon Sep 17 00:00:00 2001 From: Steve Lhomme <robux4@ycbcr.xyz> Date: Tue, 29 Oct 2024 09:13:05 +0100 Subject: [PATCH 11/17] buildsystem: rename VLC_CONTRIB_LDFLAGS to VLC_CONTRIB_LDLIBS It's not used to pass link flags but libraries to link with. And it's used to fill LOCAL_LDLIBS. --- buildsystem/build-libvlc.sh | 4 ++-- libvlc/jni/libvlc.mk | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/buildsystem/build-libvlc.sh b/buildsystem/build-libvlc.sh index cd1f142..5511016 100755 --- a/buildsystem/build-libvlc.sh +++ b/buildsystem/build-libvlc.sh @@ -677,7 +677,7 @@ rm ${REDEFINED_VLC_MODULES_DIR}/syms ########################### VLC_MODULES=$(avlc_find_modules ${REDEFINED_VLC_MODULES_DIR}) -VLC_CONTRIB_LDFLAGS=$(cd $VLC_CONTRIB/lib/pkgconfig; avlc_pkgconfig --libs $(ls *.pc | sed -e 's/\.pc$//' | xargs)) +VLC_CONTRIB_LDLIBS=$(cd $VLC_CONTRIB/lib/pkgconfig; avlc_pkgconfig --libs $(ls *.pc | sed -e 's/\.pc$//' | xargs)) echo -e "ndk-build vlc" @@ -687,7 +687,7 @@ $NDK_BUILD -C $LIBVLCJNI_ROOT/libvlc \ VLC_SRC_DIR="$VLC_SRC_DIR" \ VLC_BUILD_DIR="$VLC_BUILD_DIR" \ VLC_CONTRIB="$VLC_CONTRIB" \ - VLC_CONTRIB_LDFLAGS="$VLC_CONTRIB_LDFLAGS" \ + VLC_CONTRIB_LDLIBS="$VLC_CONTRIB_LDLIBS" \ VLC_MODULES="$VLC_MODULES" \ APP_BUILD_SCRIPT=jni/libvlc.mk \ APP_PLATFORM=android-${ANDROID_API} \ diff --git a/libvlc/jni/libvlc.mk b/libvlc/jni/libvlc.mk index dba4295..0cc01f4 100644 --- a/libvlc/jni/libvlc.mk +++ b/libvlc/jni/libvlc.mk @@ -29,7 +29,7 @@ LOCAL_LDLIBS := \ $(VLC_BUILD_DIR)/lib/.libs/libvlc.a \ $(VLC_BUILD_DIR)/src/.libs/libvlccore.a \ $(VLC_BUILD_DIR)/compat/.libs/libcompat.a \ - $(VLC_CONTRIB_LDFLAGS) \ + $(VLC_CONTRIB_LDLIBS) \ -ldl -lm -llog -lEGL -lGLESv2 \ -Wl,-Bsymbolic LOCAL_CXXFLAGS := -std=c++17 -- GitLab From 2a8ecc9f451bf13a7782872ff3d2422fc945f6e8 Mon Sep 17 00:00:00 2001 From: Steve Lhomme <robux4@ycbcr.xyz> Date: Tue, 29 Oct 2024 10:33:56 +0100 Subject: [PATCH 12/17] buildsystem: use the NDK CFLAGS in CXXFLAGS As done in ${ANDROID_NDK}/build/core/default-build-commands.mk --- buildsystem/build-libvlc.sh | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/buildsystem/build-libvlc.sh b/buildsystem/build-libvlc.sh index 5511016..7fd269b 100755 --- a/buildsystem/build-libvlc.sh +++ b/buildsystem/build-libvlc.sh @@ -158,11 +158,6 @@ else VLC_CFLAGS="-g -O2" fi -# cf. GLOBAL_CFLAGS from ${ANDROID_NDK}/build/core/default-build-commands.mk -VLC_CFLAGS="${VLC_CFLAGS} -fPIC -fdata-sections -ffunction-sections -funwind-tables \ - -fstack-protector-strong -no-canonical-prefixes" -VLC_CXXFLAGS="-fexceptions -frtti" - # Release or not? if [ "$AVLC_RELEASE" = 1 ]; then VLC_CFLAGS="${VLC_CFLAGS} -DNDEBUG " @@ -171,6 +166,11 @@ else NDK_DEBUG=1 fi +# cf. GLOBAL_CFLAGS from ${ANDROID_NDK}/build/core/default-build-commands.mk +VLC_CFLAGS="${VLC_CFLAGS} -fPIC -fdata-sections -ffunction-sections -funwind-tables \ + -fstack-protector-strong -no-canonical-prefixes" +VLC_CXXFLAGS="${VLC_CFLAGS} -fexceptions -frtti" + ############### # DISPLAY ABI # ############### @@ -549,7 +549,7 @@ if [ ! -e $VLC_BUILD_DIR/config.h -o "$AVLC_RELEASE" = 1 ]; then BEFORE_VLC_BUILD_DIR=$(pwd -P) cd $VLC_BUILD_DIR CFLAGS="${VLC_CFLAGS}" \ - CXXFLAGS="${VLC_CFLAGS} ${VLC_CXXFLAGS}" \ + CXXFLAGS="${VLC_CXXFLAGS}" \ CC="${CROSS_CLANG}" \ CXX="${CROSS_CLANG}++" \ NM="${CROSS_TOOLS}nm" \ -- GitLab From a092e46dc9bc036386688f52df0e7e79fa5388c4 Mon Sep 17 00:00:00 2001 From: Steve Lhomme <robux4@ycbcr.xyz> Date: Tue, 29 Oct 2024 11:05:42 +0100 Subject: [PATCH 13/17] buildsystem: remove unused LOCAL_CXXFLAGS We don't compile any C++ file. --- libvlc/jni/libvlc.mk | 1 - 1 file changed, 1 deletion(-) diff --git a/libvlc/jni/libvlc.mk b/libvlc/jni/libvlc.mk index 0cc01f4..8d15467 100644 --- a/libvlc/jni/libvlc.mk +++ b/libvlc/jni/libvlc.mk @@ -32,7 +32,6 @@ LOCAL_LDLIBS := \ $(VLC_CONTRIB_LDLIBS) \ -ldl -lm -llog -lEGL -lGLESv2 \ -Wl,-Bsymbolic -LOCAL_CXXFLAGS := -std=c++17 # This duplicates the libvlc* link flags, but it propagates the dependency # on the native build which is what we want overall LOCAL_STATIC_LIBRARIES := libvlccore libvlccompat libvlc-native -- GitLab From 948d49249bd968ae3c893f1b61bb59538c729cc2 Mon Sep 17 00:00:00 2001 From: Steve Lhomme <robux4@ycbcr.xyz> Date: Wed, 30 Oct 2024 09:10:09 +0100 Subject: [PATCH 14/17] buildsystem: don't build sqlite It's only used by the medialibrary which is disabled. vlc-android uses it's own version of the medialibrary/sqlite. --- buildsystem/build-libvlc.sh | 1 + 1 file changed, 1 insertion(+) diff --git a/buildsystem/build-libvlc.sh b/buildsystem/build-libvlc.sh index 7fd269b..02e4ca6 100755 --- a/buildsystem/build-libvlc.sh +++ b/buildsystem/build-libvlc.sh @@ -273,6 +273,7 @@ VLC_CONTRIB_ARGS="\ --disable-samplerate \ --disable-schroedinger \ --disable-sidplay2 \ + --disable-sqlite \ --disable-srt \ --disable-vnc \ --disable-vncclient \ -- GitLab From b570bbed65ac84d25551d0cebf58408c8a205500 Mon Sep 17 00:00:00 2001 From: Steve Lhomme <robux4@ycbcr.xyz> Date: Tue, 29 Oct 2024 12:11:08 +0100 Subject: [PATCH 15/17] buildsystem: remove symbol redifinition of static functions They don't cause duplicate symbols. --- buildsystem/build-libvlc.sh | 14 -------------- 1 file changed, 14 deletions(-) diff --git a/buildsystem/build-libvlc.sh b/buildsystem/build-libvlc.sh index 02e4ca6..97cba4f 100755 --- a/buildsystem/build-libvlc.sh +++ b/buildsystem/build-libvlc.sh @@ -615,20 +615,6 @@ avlc_add_lib_to_redefine() { avlc_add_symbol_to_redefine "$("${CROSS_TOOLS}nm" -g $(avlc_find_lib ${VLC_BUILD_DIR} $1) | grep ' T ' | cut -f3 -d ' ')" } -# Generic symbols -avlc_add_symbol_to_redefine AccessOpen -avlc_add_symbol_to_redefine AccessClose -avlc_add_symbol_to_redefine StreamOpen -avlc_add_symbol_to_redefine StreamClose -avlc_add_symbol_to_redefine OpenDemux -avlc_add_symbol_to_redefine CloseDemux -avlc_add_symbol_to_redefine DemuxOpen -avlc_add_symbol_to_redefine DemuxClose -avlc_add_symbol_to_redefine OpenFilter -avlc_add_symbol_to_redefine CloseFilter -avlc_add_symbol_to_redefine Open -avlc_add_symbol_to_redefine Close - #libvlc_json avlc_add_symbol_to_redefine json_read avlc_add_symbol_to_redefine json_parse_error -- GitLab From 8612699ea313582f0ab4d67c3d7d54f5acf0629d Mon Sep 17 00:00:00 2001 From: Steve Lhomme <robux4@ycbcr.xyz> Date: Tue, 29 Oct 2024 12:54:13 +0100 Subject: [PATCH 16/17] buildsystem: use the system tfind/tdestroy They are available. in NDK 25 they are not even hidden before Android 21. --- buildsystem/build-libvlc.sh | 5 ----- 1 file changed, 5 deletions(-) diff --git a/buildsystem/build-libvlc.sh b/buildsystem/build-libvlc.sh index 97cba4f..cb6bb89 100755 --- a/buildsystem/build-libvlc.sh +++ b/buildsystem/build-libvlc.sh @@ -536,11 +536,6 @@ if [ ${ANDROID_API} -lt "26" ]; then export ac_cv_header_sys_shm_h=no fi -# always use fixups for search.h and tdestroy -export ac_cv_header_search_h=no -export ac_cv_func_tdestroy=no -export ac_cv_func_tfind=no - if [ ! -e $VLC_BUILD_DIR/config.h -o "$AVLC_RELEASE" = 1 ]; then VLC_CONFIGURE_DEBUG="" if [ ! "$AVLC_RELEASE" = 1 ]; then -- GitLab From 506eb880d0dc42ba632e60f38585e312e5792017 Mon Sep 17 00:00:00 2001 From: Steve Lhomme <robux4@ycbcr.xyz> Date: Tue, 29 Oct 2024 09:55:29 +0100 Subject: [PATCH 17/17] buildsystem: don't build local interim static libraries We already link with libvlc.a, libvlccore.a and libcompat.a. --- libvlc/jni/libvlc.mk | 20 -------------------- 1 file changed, 20 deletions(-) diff --git a/libvlc/jni/libvlc.mk b/libvlc/jni/libvlc.mk index 8d15467..87b04b6 100644 --- a/libvlc/jni/libvlc.mk +++ b/libvlc/jni/libvlc.mk @@ -1,23 +1,6 @@ LOCAL_PATH := $(call my-dir) # VLC's buildsystem resulting binaries -include $(CLEAN_VARS) -LOCAL_MODULE := libvlccompat -LOCAL_SRC_FILES := $(VLC_BUILD_DIR)/compat/.libs/libcompat.a -include $(PREBUILT_STATIC_LIBRARY) - -include $(CLEAN_VARS) -LOCAL_MODULE := libvlccore -LOCAL_SRC_FILES := $(VLC_BUILD_DIR)/src/.libs/libvlccore.a -include $(PREBUILT_STATIC_LIBRARY) - -include $(CLEAN_VARS) -LOCAL_MODULE := libvlc-native -LOCAL_MODULE_FILENAME := libvlc -LOCAL_SRC_FILES := $(VLC_BUILD_DIR)/lib/.libs/libvlc.a -LOCAL_STATIC_LIBRARIES := libvlccore -include $(PREBUILT_STATIC_LIBRARY) - # libvlc build with all its modules include $(CLEAR_VARS) LOCAL_MODULE := libvlc @@ -32,7 +15,4 @@ LOCAL_LDLIBS := \ $(VLC_CONTRIB_LDLIBS) \ -ldl -lm -llog -lEGL -lGLESv2 \ -Wl,-Bsymbolic -# This duplicates the libvlc* link flags, but it propagates the dependency -# on the native build which is what we want overall -LOCAL_STATIC_LIBRARIES := libvlccore libvlccompat libvlc-native include $(BUILD_SHARED_LIBRARY) -- GitLab