Download raw body.
libvpx target detection and optimizations
Hi
The following diff fixes target os detection in libvpx by actually
trying to use ${CC} instead of hardcoding gcc.
This patch also fixes *chromium, iridium video and screen sharing
because some code is only enabled on the non-generic target platform.
I've also fixed up tests which now can be exeuted in the port.
ok?
Index: Makefile
===================================================================
RCS file: /cvs/ports/multimedia/libvpx/Makefile,v
diff -u -p -u -r1.52 Makefile
--- Makefile 2 Oct 2023 18:11:05 -0000 1.52
+++ Makefile 8 Feb 2024 09:04:55 -0000
@@ -6,6 +6,8 @@ GH_TAGNAME= v1.13.1
EPOCH= 0
CATEGORIES= multimedia
+REVISION= 0
+
SHARED_LIBS= vpx 16.0
HOMEPAGE= https://www.webmproject.org/
@@ -34,14 +36,14 @@ CONFIGURE_ARGS+=--enable-shared \
--enable-runtime-cpu-detect \
--enable-vp9-highbitdepth \
--prefix=${PREFIX} \
- --disable-optimizations \
- --disable-unit-tests
+ --enable-optimizations \
+ --enable-unit-tests \
+ --enable-decode-perf-tests \
+ --enable-encode-perf-tests
.if ${MACHINE_ARCH} == "arm"
CONFIGURE_ARGS+=--disable-neon
.endif
-
-NO_TEST= Yes
ALL_TARGET=
Index: patches/patch-build_make_configure_sh
===================================================================
RCS file: patches/patch-build_make_configure_sh
diff -N patches/patch-build_make_configure_sh
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ patches/patch-build_make_configure_sh 8 Feb 2024 09:04:55 -0000
@@ -0,0 +1,77 @@
+Index: build/make/configure.sh
+--- build/make/configure.sh.orig
++++ build/make/configure.sh
+@@ -700,8 +700,8 @@ post_process_cmdline() {
+ }
+
+ setup_gnu_toolchain() {
+- CC=${CC:-${CROSS}gcc}
+- CXX=${CXX:-${CROSS}g++}
++ CC=${CC:-${CROSS}cc}
++ CXX=${CXX:-${CROSS}c++}
+ AR=${AR:-${CROSS}ar}
+ LD=${LD:-${CROSS}${link_with_cc:-ld}}
+ AS=${AS:-${CROSS}as}
+@@ -745,7 +745,7 @@ check_xcode_minimum_version() {
+
+ process_common_toolchain() {
+ if [ -z "$toolchain" ]; then
+- gcctarget="${CHOST:-$(gcc -dumpmachine 2> /dev/null)}"
++ gcctarget="${CHOST:-$(${CC} -dumpmachine 2> /dev/null)}"
+ # detect tgt_isa
+ case "$gcctarget" in
+ aarch64*)
+@@ -988,7 +988,7 @@ process_common_toolchain() {
+
+ case ${tgt_cc} in
+ gcc)
+- link_with_cc=gcc
++ link_with_cc=${CC}
+ setup_gnu_toolchain
+ arch_int=${tgt_isa##armv}
+ arch_int=${arch_int%%te}
+@@ -1203,7 +1203,7 @@ EOF
+ esac
+ ;;
+ mips*)
+- link_with_cc=gcc
++ link_with_cc=${CC}
+ setup_gnu_toolchain
+ tune_cflags="-mtune="
+ if enabled dspr2; then
+@@ -1254,7 +1254,7 @@ EOF
+ check_add_asflags -KPIC
+ ;;
+ ppc64le*)
+- link_with_cc=gcc
++ link_with_cc=${CC}
+ setup_gnu_toolchain
+ # Do not enable vsx by default.
+ # https://bugs.chromium.org/p/webm/issues/detail?id=1522
+@@ -1311,7 +1311,7 @@ EOF
+ esac
+ ;;
+ gcc*)
+- link_with_cc=gcc
++ link_with_cc=${CC}
+ tune_cflags="-march="
+ setup_gnu_toolchain
+ #for 32 bit x86 builds, -O3 did not turn on this flag
+@@ -1442,7 +1442,7 @@ EOF
+ esac
+ ;;
+ loongarch*)
+- link_with_cc=gcc
++ link_with_cc=${CC}
+ setup_gnu_toolchain
+
+ enabled lsx && check_inline_asm lsx '"vadd.b $vr0, $vr1, $vr1"'
+@@ -1451,7 +1451,7 @@ EOF
+ enabled lasx && soft_enable runtime_cpu_detect
+ ;;
+ *-gcc|generic-gnu)
+- link_with_cc=gcc
++ link_with_cc=${CC}
+ enable_feature gcc
+ setup_gnu_toolchain
+ ;;
Index: patches/patch-libs_mk
===================================================================
RCS file: /cvs/ports/multimedia/libvpx/patches/patch-libs_mk,v
diff -u -p -u -r1.22 patch-libs_mk
--- patches/patch-libs_mk 4 Oct 2022 11:30:19 -0000 1.22
+++ patches/patch-libs_mk 8 Feb 2024 09:04:55 -0000
@@ -41,3 +41,29 @@ Index: libs.mk
INSTALL-LIBS-$(CONFIG_SHARED) += $(LIBSUBDIR)/$(LIBVPX_SO)
INSTALL-LIBS-$(CONFIG_SHARED) += $(if $(LIBVPX_SO_IMPLIB),$(LIBSUBDIR)/$(LIBVPX_SO_IMPLIB))
+@@ -544,7 +531,7 @@ testdata: $(LIBVPX_TEST_DATA)
+ set -e;\
+ echo "Checking test data:";\
+ for f in $(call enabled,LIBVPX_TEST_DATA); do\
+- grep $$f $(SRC_PATH_BARE)/test/test-data.sha1 |\
++ grep $$f $(SRC_PATH_BARE)/test/test-data.sha1 | tr -d '*' |\
+ (cd $(LIBVPX_TEST_DATA_PATH); $${sha1sum} -c);\
+ done; \
+ else\
+@@ -656,7 +643,7 @@ BINS-yes += $(LIBVPX_TEST_BIN)
+
+ CODEC_LIB=$(if $(CONFIG_DEBUG_LIBS),vpx_g,vpx)
+ CODEC_LIB_SUF=$(if $(CONFIG_SHARED),$(SHARED_LIB_SUF),.a)
+-TEST_LIBS := lib$(CODEC_LIB)$(CODEC_LIB_SUF) libgtest.a
++TEST_LIBS := lib$(CODEC_LIB)$(CODEC_LIB_SUF).$(LIBVPX_VERSION) libgtest.a
+ $(LIBVPX_TEST_BIN): $(TEST_LIBS)
+ $(eval $(call linkerxx_template,$(LIBVPX_TEST_BIN), \
+ $(LIBVPX_TEST_OBJS) \
+@@ -715,6 +702,7 @@ test_shard.$(1) test_shard_ndc.$(1): $(LIBVPX_TEST_BIN
+ @set -e; \
+ export GTEST_SHARD_INDEX=$(1); \
+ export GTEST_TOTAL_SHARDS=$(2); \
++ export LD_LIBRARY_PATH=$(CURDIR); \
+ $(LIBVPX_TEST_BIN)
+ test_shard.$(1): testdata
+ .PHONY: test_shard.$(1) test_shard_ndc.$(1)
libvpx target detection and optimizations