vlc: Upgrade to 3.0.18

Drop 64-bit time_t patch, its already fixed in 3.0.18
Add patches to fix buld with clang16 and musl

Signed-off-by: Khem Raj <raj.khem@gmail.com>
This commit is contained in:
Khem Raj 2023-03-05 14:31:13 -08:00
parent d61066d08d
commit 9a6d101195
8 changed files with 88 additions and 107 deletions

View File

@ -1,43 +0,0 @@
From 1068c7451855c3f9acde9af265b5a790073b1641 Mon Sep 17 00:00:00 2001
From: Khem Raj <raj.khem@gmail.com>
Date: Tue, 2 Mar 2021 14:28:27 -0800
Subject: [PATCH] include <limits> header
Fixes
SegmentInformation.cpp:397:49: error: '::max' has not been declared; d
id you mean 'std::max'?
Upstream-Status: Pending
Signed-off-by: Khem Raj <raj.khem@gmail.com>
---
modules/demux/adaptive/playlist/SegmentInformation.cpp | 1 +
modules/demux/hls/playlist/Parser.cpp | 1 +
2 files changed, 2 insertions(+)
diff --git a/modules/demux/adaptive/playlist/SegmentInformation.cpp b/modules/demux/adaptive/playlist/SegmentInformation.cpp
index 344e155..8eeb054 100644
--- a/modules/demux/adaptive/playlist/SegmentInformation.cpp
+++ b/modules/demux/adaptive/playlist/SegmentInformation.cpp
@@ -34,6 +34,7 @@
#include <algorithm>
#include <cassert>
+#include <limits>
using namespace adaptive::playlist;
diff --git a/modules/demux/hls/playlist/Parser.cpp b/modules/demux/hls/playlist/Parser.cpp
index 67110e4..7439699 100644
--- a/modules/demux/hls/playlist/Parser.cpp
+++ b/modules/demux/hls/playlist/Parser.cpp
@@ -42,6 +42,7 @@
#include <map>
#include <cctype>
#include <algorithm>
+#include <limits>
using namespace adaptive;
using namespace adaptive::playlist;
--
2.30.1

View File

@ -5,11 +5,9 @@ Upstream-Status: Inappropriate [configuration]
Signed-off-by: Tim Orling <TicoTimo@gmail.com>
Index: vlc-2.1.4/configure.ac
===================================================================
--- vlc-2.1.4.orig/configure.ac
+++ vlc-2.1.4/configure.ac
@@ -1693,7 +1693,16 @@ PKG_ENABLE_MODULES_VLC([BLURAY], [libblu
--- a/configure.ac
+++ b/configure.ac
@@ -1892,7 +1892,16 @@ PKG_ENABLE_MODULES_VLC([BLURAY], [libblu
dnl
dnl OpenCV wrapper and example filters
dnl

View File

@ -4,11 +4,9 @@ Upstream-Status: Pending
Signed-off-by: Tim Orling <TicoTimo@gmail.com>
Index: vlc-2.2.1/modules/codec/Makefile.am
===================================================================
--- vlc-2.2.1.orig/modules/codec/Makefile.am
+++ vlc-2.2.1/modules/codec/Makefile.am
@@ -234,7 +234,7 @@ codec_LTLIBRARIES += $(LTLIBtheora)
--- a/modules/codec/Makefile.am
+++ b/modules/codec/Makefile.am
@@ -321,7 +321,7 @@ codec_LTLIBRARIES += $(LTLIBdaala)
libtremor_plugin_la_SOURCES = codec/vorbis.c
libtremor_plugin_la_CPPFLAGS = $(AM_CPPFLAGS) -DMODULE_NAME_IS_tremor
libtremor_plugin_la_LDFLAGS = $(AM_LDFLAGS) -rpath '$(codecdir)'

View File

@ -13,11 +13,9 @@ Signed-off-by: Khem Raj <raj.khem@gmail.com>
configure.ac | 31 +++++++++++--------------------
1 file changed, 11 insertions(+), 20 deletions(-)
diff --git a/configure.ac b/configure.ac
index d7cf692..f81b99d 100644
--- a/configure.ac
+++ b/configure.ac
@@ -3427,27 +3427,18 @@ AC_ARG_ENABLE(mmal,
@@ -3461,27 +3461,18 @@ AC_ARG_ENABLE(mmal,
AS_HELP_STRING([--enable-mmal],
[Multi-Media Abstraction Layer (MMAL) hardware plugin (default enable)]))
if test "${enable_mmal}" != "no"; then
@ -56,6 +54,3 @@ index d7cf692..f81b99d 100644
dnl
dnl evas plugin
--
2.26.1

View File

@ -0,0 +1,47 @@
From a46cee56d05884b8020ace6f67ef8389ac1845da Mon Sep 17 00:00:00 2001
From: Khem Raj <raj.khem@gmail.com>
Date: Sun, 5 Mar 2023 13:50:40 -0800
Subject: [PATCH 1/3] ioctl does not have same signature between glibc and musl
Upstream-Status: Pending
Signed-off-by: Khem Raj <raj.khem@gmail.com>
---
modules/access/v4l2/lib.c | 4 ++++
modules/access/v4l2/v4l2.h | 4 ++++
2 files changed, 8 insertions(+)
diff --git a/modules/access/v4l2/lib.c b/modules/access/v4l2/lib.c
index b212e1bc5f..ff7c66bf35 100644
--- a/modules/access/v4l2/lib.c
+++ b/modules/access/v4l2/lib.c
@@ -43,7 +43,11 @@ int (*v4l2_fd_open) (int, int) = fd_open;
//int (*v4l2_open) (const char *, int, ...) = open;
//int (*v4l2_dup) (const char *, int, ...) = dup;
int (*v4l2_close) (int) = close;
+#ifdef __GLIBC__
int (*v4l2_ioctl) (int, unsigned long int, ...) = ioctl;
+#else
+int (*v4l2_ioctl) (int, int, ...) = ioctl;
+#endif
ssize_t (*v4l2_read) (int, void *, size_t) = read;
//ssize_t (*v4l2_write) (int, const void *, size_t) = write;
void * (*v4l2_mmap) (void *, size_t, int, int, int, int64_t) = mmap;
diff --git a/modules/access/v4l2/v4l2.h b/modules/access/v4l2/v4l2.h
index ac4562e269..727e83e9b1 100644
--- a/modules/access/v4l2/v4l2.h
+++ b/modules/access/v4l2/v4l2.h
@@ -23,7 +23,11 @@
/* libv4l2 functions */
extern int (*v4l2_fd_open) (int, int);
extern int (*v4l2_close) (int);
+#ifdef __GLIBC__
extern int (*v4l2_ioctl) (int, unsigned long int, ...);
+#else
+extern int (*v4l2_ioctl) (int, int, ...);
+#endif
extern ssize_t (*v4l2_read) (int, void *, size_t);
extern void * (*v4l2_mmap) (void *, size_t, int, int, int, int64_t);
extern int (*v4l2_munmap) (void *, size_t);
--
2.39.2

View File

@ -1,46 +0,0 @@
From f7957c35654222e5bd1038341612bbb40a88e98b Mon Sep 17 00:00:00 2001
From: Khem Raj <raj.khem@gmail.com>
Date: Mon, 16 Nov 2020 12:08:43 -0800
Subject: [PATCH] linux/thread: Use SYS_futex instead of __NR_futex
SYS_futex it expected from system C library.
in glibc (/usr/include/bits/syscall.h defines it in terms of of NR_futex)
some newer 32bit architectures e.g. riscv32 are using 64bit time_t from
get go unlike other 32bit architectures in glibc, therefore it wont have
NR_futex defined but just NR_futex_time64 this aliases it to NR_futex so
that SYS_futex is then defined for rv32
Upstream-Status: Submitted [https://github.com/videolan/vlc/pull/117]
Signed-off-by: Khem Raj <raj.khem@gmail.com>
---
src/linux/thread.c | 7 ++++++-
1 file changed, 6 insertions(+), 1 deletion(-)
diff --git a/src/linux/thread.c b/src/linux/thread.c
index 20da296..30639a3 100644
--- a/src/linux/thread.c
+++ b/src/linux/thread.c
@@ -30,6 +30,11 @@
#include <sys/syscall.h>
#include <linux/futex.h>
+/* 32bit architectures with 64bit time_t do not define __NR_futex syscall */
+#if !defined(SYS_futex) && defined(SYS_futex_time64)
+#define SYS_futex SYS_futex_time64
+#endif
+
#ifndef FUTEX_PRIVATE_FLAG
#define FUTEX_WAKE_PRIVATE FUTEX_WAKE
#define FUTEX_WAIT_PRIVATE FUTEX_WAIT
@@ -50,7 +55,7 @@ unsigned long vlc_thread_id(void)
static int sys_futex(void *addr, int op, unsigned val,
const struct timespec *to, void *addr2, int val3)
{
- return syscall(__NR_futex, addr, op, val, to, addr2, val3);
+ return syscall(SYS_futex, addr, op, val, to, addr2, val3);
}
static int vlc_futex_wake(void *addr, int nr)
--
2.29.2

View File

@ -0,0 +1,31 @@
From 048e4fdd08ac588feb27b03e3ec1824e24f77d62 Mon Sep 17 00:00:00 2001
From: Khem Raj <raj.khem@gmail.com>
Date: Sun, 5 Mar 2023 14:13:25 -0800
Subject: [PATCH 3/3] configure: Disable incompatible-function-pointer-types
warning
Upstream-Status: Pending
Signed-off-by: Khem Raj <raj.khem@gmail.com>
---
configure.ac | 5 +++++
1 file changed, 5 insertions(+)
diff --git a/configure.ac b/configure.ac
index 9f1c099e13..8e45a05808 100644
--- a/configure.ac
+++ b/configure.ac
@@ -98,6 +98,11 @@ AS_IF([test -n "${with_binary_version}"],[
dnl Prevent clang from accepting unknown flags with a mere warning
AX_APPEND_COMPILE_FLAGS([-Werror=unknown-warning-option -Werror=invalid-command-line-argument], [CFLAGS])
AX_APPEND_COMPILE_FLAGS([-Werror=unknown-warning-option -Werror=invalid-command-line-argument], [CXXFLAGS])
+dnl disable clang from erroring on function pointer protype mismatch, vlc seems to rely on that
+dnl especially in modules/video_filter/deinterlace/algo_yadif.c how it interpolates 'filter` variable
+dnl between different functions yadif_filter_line_c_16bit() and yadif_filter_line_c()
+AX_APPEND_COMPILE_FLAGS([-Wno-error=incompatible-function-pointer-types -Wno-error=incompatible-function-pointer-types], [CFLAGS])
+AX_APPEND_COMPILE_FLAGS([-Wno-error=incompatible-function-pointer-types -Wno-error=incompatible-function-pointer-types], [CXXFLAGS])
dnl
dnl Check the operating system
--
2.39.2

View File

@ -21,9 +21,10 @@ SRC_URI = "git://github.com/videolan/vlc.git;protocol=https;branch=3.0.x \
file://0002-use-vorbisidec.patch \
file://0003-fix-luaL-checkint.patch \
file://0004-Use-packageconfig-to-detect-mmal-support.patch \
file://0005-linux-thread-Use-SYS_futex-instead-of-__NR_futex.patch \
file://0005-ioctl-does-not-have-same-signature-between-glibc-and.patch \
file://0006-configure-Disable-incompatible-function-pointer-type.patch \
"
SRCREV = "aa76328c572d93f1d99c867a94ecad1dc3259733"
SRCREV = "e9eceaed4d838dbd84638bfb2e4bdd08294163b1"
S = "${WORKDIR}/git"
inherit autotools-brokensep features_check gettext pkgconfig mime-xdg