Commit 4b2699ee authored by Felix Paul Kühne's avatar Felix Paul Kühne

Fix compilation for x86_64 along with the current iOS deployment target

parent fb089364
From c7a11d516076db01f0b39cee8cbd66389c0a3492 Mon Sep 17 00:00:00 2001
From a2747128e9e682640bfe3bfb313dc935cf1a0264 Mon Sep 17 00:00:00 2001
From: David Geldreich <david.geldreich@free.fr>
Date: Fri, 20 Apr 2012 16:41:19 +0200
Subject: [PATCH 01/16] arm_neon: added function macro to handle the underscore
Subject: [PATCH 01/14] arm_neon: added function macro to handle the underscore
prefix for the iOS ARM ABI
---
......@@ -65,5 +65,5 @@ index 0000000000..d853255fec
+.endm
+
--
2.11.0
2.14.1
From ed6d6b2ed5f1fc2fb81677912fe07d1647028c9c Mon Sep 17 00:00:00 2001
From e48dc19bfa4fdf61a27981603e2355dc1549dfbd Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Felix=20Paul=20K=C3=BChne?= <fkuehne@videolan.org>
Date: Fri, 10 Aug 2012 16:02:07 +0200
Subject: [PATCH 02/16] deinterlace/merge: use a macro to fix compilation for
Subject: [PATCH 02/14] deinterlace/merge: use a macro to fix compilation for
iOS
---
......@@ -82,5 +82,5 @@ index dd779029ae..03e5042b28 100644
b 1b
+endfunc
--
2.11.0
2.14.1
From ea3b6600a131253d221864f0fef815afccc8fdb2 Mon Sep 17 00:00:00 2001
From c3b57ed59a7bf53782990dafecf69b043b170893 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Felix=20Paul=20K=C3=BChne?= <fkuehne@videolan.org>
Date: Thu, 18 Dec 2014 22:14:55 +0100
Subject: [PATCH 03/16] arm_neon: work-around libtool issue
Subject: [PATCH 03/14] arm_neon: work-around libtool issue
---
modules/arm_neon/Makefile.am | 2 ++
......@@ -18,5 +18,5 @@ index db81ec0b84..e67e07e61c 100644
libchroma_yuv_neon_plugin_la_SOURCES = \
--
2.11.0
2.14.1
From 60f4b7c0623df8e01f24aa81ace7597fc5ea0b89 Mon Sep 17 00:00:00 2001
From f7f6a5875d8c7907fb7af5fc69259d370588abbb Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Felix=20Paul=20K=C3=BChne?= <fkuehne@videolan.org>
Date: Wed, 10 Dec 2014 22:14:55 +0100
Subject: [PATCH 04/16] arm_neon: fix iOS linking
Subject: [PATCH 04/14] arm_neon: fix iOS linking
---
modules/arm_neon/amplify.S | 7 ++---
......@@ -194,5 +194,5 @@ index a94ae8539f..54b43a79e3 100644
pop {r4,pc}
+endfunc
--
2.11.0
2.14.1
From 2f9f0c57fb5ee1183d6b7b4bbe8f4bcfe972ba78 Mon Sep 17 00:00:00 2001
From c70dccebb53fa81ea95402ede8aabf058e0f1b75 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Felix=20Paul=20K=C3=BChne?= <fkuehne@videolan.org>
Date: Wed, 10 Dec 2014 22:14:55 +0100
Subject: [PATCH 05/16] disable neon volume plugin
Subject: [PATCH 05/14] disable neon volume plugin
---
modules/arm_neon/Makefile.am | 1 -
......@@ -19,5 +19,5 @@ index e67e07e61c..690975235f 100644
libyuv_rgb_neon_plugin.la
endif
--
2.11.0
2.14.1
From 79be1791f01937c28daec085abe28920df964692 Mon Sep 17 00:00:00 2001
From 277e071c76896ef63e202c50fce511aa17bff871 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Felix=20Paul=20K=C3=BChne?= <fkuehne@videolan.org>
Date: Fri, 22 Jul 2016 11:11:44 +0200
Subject: [PATCH 07/16] Enable System DL
Subject: [PATCH 06/14] Enable System DL
---
contrib/src/ffmpeg/patch-as-patch-can.patch | 20 ++++++++++++++++++++
......@@ -58,5 +58,5 @@ index 41d16a4fb2..3e5f910e99 100644
.ffmpeg: ffmpeg
--
2.11.0
2.14.1
From a3a9ef0bc07d174480bf76df79c86cb68f7d7291 Mon Sep 17 00:00:00 2001
From 5cb4cb24f59df343e5a7db2334b4eccc75c3b815 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Felix=20Paul=20K=C3=BChne?= <fkuehne@videolan.org>
Date: Mon, 12 Sep 2016 17:04:05 +0200
Subject: [PATCH 08/16] deinterlace-merge-arm64: fix linking on appleOS
Subject: [PATCH 07/14] deinterlace-merge-arm64: fix linking on appleOS
---
modules/arm_neon/asm64.S | 46 ++++++++++++++++++++++++++
......@@ -107,5 +107,5 @@ index db19e54caf..63c04d3fdd 100644
ret
+endfunc
--
2.11.0
2.14.1
From 9b30a88e8d4632a55ab20e3c02425dc3ce2504e4 Mon Sep 17 00:00:00 2001
From ab7f0035a4eb7f74c6af0a81d752df201a498d57 Mon Sep 17 00:00:00 2001
From: Thomas Guillem <thomas@gllm.fr>
Date: Fri, 16 Sep 2016 15:51:10 +0200
Subject: [PATCH 09/16] http: add vlc_http_cookies_clear
Subject: [PATCH 08/14] http: add vlc_http_cookies_clear
Clear all cookies without deleting the jar.
---
......@@ -61,5 +61,5 @@ index 2e4d3a8663..0929758f62 100644
}
--
2.11.0
2.14.1
From d26b80e6ed88694c7d72af4013b283f050d97e53 Mon Sep 17 00:00:00 2001
From b64b07ccaac8c66f1358b1b711fb33cf94725627 Mon Sep 17 00:00:00 2001
From: Thomas Guillem <thomas@gllm.fr>
Date: Fri, 16 Sep 2016 15:51:11 +0200
Subject: [PATCH 10/16] libvlc_media: add cookie_jar API
Subject: [PATCH 09/14] libvlc_media: add cookie_jar API
---
include/vlc/libvlc_media.h | 35 +++++++++++++++++++++++++++++++++++
......@@ -138,7 +138,7 @@ index 5a67e9ff60..0f0341e260 100644
/* Media Descriptor */
diff --git a/lib/media_player.c b/lib/media_player.c
index ebe711e310..34b539f370 100644
index b5677ae7ec..14d1c6a1a4 100644
--- a/lib/media_player.c
+++ b/lib/media_player.c
@@ -620,6 +620,7 @@ libvlc_media_player_new( libvlc_instance_t *instance )
......@@ -149,7 +149,7 @@ index ebe711e310..34b539f370 100644
/* Video */
var_Create (mp, "vout", VLC_VAR_STRING|VLC_VAR_DOINHERIT);
@@ -965,6 +966,12 @@ int libvlc_media_player_play( libvlc_media_player_t *p_mi )
@@ -964,6 +965,12 @@ int libvlc_media_player_play( libvlc_media_player_t *p_mi )
for( size_t i = 0; i < ARRAY_SIZE( p_mi->selected_es ); ++i )
p_mi->selected_es[i] = ES_INIT;
......@@ -163,5 +163,5 @@ index ebe711e310..34b539f370 100644
p_input_thread = input_Create( p_mi, p_mi->p_md->p_input_item, NULL,
--
2.11.0
2.14.1
From d2863a49af7f361c4c6bb68a394cbe5350d9e52b Mon Sep 17 00:00:00 2001
From ad09210ef4be3f2d241e90e9ca2147615c1f5cba Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Felix=20Paul=20K=C3=BChne?= <fkuehne@videolan.org>
Date: Sun, 7 Dec 2014 20:02:18 +0100
Subject: [PATCH 11/16] contrib/gcrypt: work-around a libtool limitation
Subject: [PATCH 10/14] contrib/gcrypt: work-around a libtool limitation
---
contrib/src/gcrypt/rules.mak | 1 +
......@@ -53,5 +53,5 @@ index 0000000000..df97ffb488
+ AM_CFLAGS = $(GPG_ERROR_CFLAGS)
+
--
2.11.0
2.14.1
From 70f18c642cba18e08f57202fc59d0d9fcd99a69a Mon Sep 17 00:00:00 2001
From e44f2cf66ec764a5360eedd3ac9fea558f29dd6d Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Felix=20Paul=20K=C3=BChne?= <fkuehne@videolan.org>
Date: Sat, 3 Oct 2015 22:45:14 +0200
Subject: [PATCH 12/16] contrib/gcrypt: fix tvOS compilation
Subject: [PATCH 11/14] contrib/gcrypt: fix tvOS compilation
---
contrib/src/gcrypt/fix-sha1-ssse3-for-clang.patch | 16 ++++++++++++++++
......@@ -56,5 +56,5 @@ index c2d4b934f4..dbd556be61 100644
GCRYPT_CONF += --disable-aesni-support
else
--
2.11.0
2.14.1
From 3e96635d5e52db07500a373b35f32c21a7bee88e Mon Sep 17 00:00:00 2001
From 02ba5f23ab54ff0a842f1276286381209429eb75 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Felix=20Paul=20K=C3=BChne?= <fkuehne@videolan.org>
Date: Mon, 12 Sep 2016 17:03:37 +0200
Subject: [PATCH 13/16] contrib/gcrypt: update patches
Subject: [PATCH 12/14] contrib/gcrypt: update patches
---
contrib/src/gcrypt/fix-sha1-ssse3-for-clang.patch | 308 ++++++++++++++++++++-
......@@ -363,5 +363,5 @@ index df97ffb488..957f268ad2 100644
# Need to include ../src in addition to top_srcdir because gcrypt.h is
--
2.11.0
2.14.1
From 8ad8964668fbee7fa99fd74facb24f70b33b5af6 Mon Sep 17 00:00:00 2001
From 498e6e260d05ddee45e934b91b7e5b26aa503fd9 Mon Sep 17 00:00:00 2001
From: Thomas Guillem <thomas@gllm.fr>
Date: Tue, 11 Apr 2017 15:15:26 +0200
Subject: [PATCH 15/16] build: rename exported symbols by module
Subject: [PATCH 13/14] build: rename exported symbols by module
This is quite ugly and temporary. Ideally we should rename symbols in binaries like the Android script do.
---
......@@ -319,5 +319,5 @@ index ecc26e0d60..0c71cda6d2 100644
* frames, each algorithm is responsible for setting the offset correctly.
* (The default is 0, so if that is correct, there's no need to do anything.)
--
2.11.0
2.14.1
From 41518beee68b6fe0b5070edd99dd559d49f0fc9b Mon Sep 17 00:00:00 2001
From 9f5842c37d2f63025a8c44ff82bdbab562d923ac Mon Sep 17 00:00:00 2001
From: Thomas Guillem <thomas@gllm.fr>
Date: Mon, 17 Jul 2017 17:03:24 +0200
Subject: [PATCH 16/16] Replace thread local with pthread TSD
Subject: [PATCH 14/14] Replace thread local with pthread TSD
---
src/misc/interrupt.c | 63 ++++++++++++++++++++++++++++++++++++++++++++++++++++
src/misc/variables.c | 23 +++++++++++++++++++
2 files changed, 86 insertions(+)
src/misc/interrupt.c | 59 ++++++++++++++++++++++++++++++++++++++++++++++++++++
src/misc/variables.c | 19 +++++++++++++++++
2 files changed, 78 insertions(+)
diff --git a/src/misc/interrupt.c b/src/misc/interrupt.c
index 3fafaa4183..fc7b84fd64 100644
index 3fafaa4183..476d9cfba5 100644
--- a/src/misc/interrupt.c
+++ b/src/misc/interrupt.c
@@ -43,13 +43,30 @@
@@ -43,13 +43,26 @@
#include "interrupt.h"
#include "libvlc.h"
+#ifdef __x86_64__
+#define I_CAN_HAZ_TSD
+#endif
+
+#ifdef I_CAN_HAZ_TSD
static thread_local vlc_interrupt_t *vlc_interrupt_var;
+#else
......@@ -43,7 +39,7 @@ index 3fafaa4183..fc7b84fd64 100644
vlc_mutex_init(&ctx->lock);
ctx->interrupted = false;
atomic_init(&ctx->killed, false);
@@ -98,9 +115,15 @@ void vlc_interrupt_raise(vlc_interrupt_t *ctx)
@@ -98,9 +111,15 @@ void vlc_interrupt_raise(vlc_interrupt_t *ctx)
vlc_interrupt_t *vlc_interrupt_set(vlc_interrupt_t *newctx)
{
......@@ -59,7 +55,7 @@ index 3fafaa4183..fc7b84fd64 100644
return oldctx;
}
@@ -115,7 +138,11 @@ static void vlc_interrupt_prepare(vlc_interrupt_t *ctx,
@@ -115,7 +134,11 @@ static void vlc_interrupt_prepare(vlc_interrupt_t *ctx,
void (*cb)(void *), void *data)
{
assert(ctx != NULL);
......@@ -71,7 +67,7 @@ index 3fafaa4183..fc7b84fd64 100644
vlc_mutex_lock(&ctx->lock);
assert(ctx->callback == NULL);
@@ -143,7 +170,11 @@ static int vlc_interrupt_finish(vlc_interrupt_t *ctx)
@@ -143,7 +166,11 @@ static int vlc_interrupt_finish(vlc_interrupt_t *ctx)
int ret = 0;
assert(ctx != NULL);
......@@ -83,7 +79,7 @@ index 3fafaa4183..fc7b84fd64 100644
/* Wait for pending callbacks to prevent access by other threads. */
vlc_mutex_lock(&ctx->lock);
@@ -159,14 +190,22 @@ static int vlc_interrupt_finish(vlc_interrupt_t *ctx)
@@ -159,14 +186,22 @@ static int vlc_interrupt_finish(vlc_interrupt_t *ctx)
void vlc_interrupt_register(void (*cb)(void *), void *opaque)
{
......@@ -106,7 +102,7 @@ index 3fafaa4183..fc7b84fd64 100644
return (ctx != NULL) ? vlc_interrupt_finish(ctx) : 0;
}
@@ -185,7 +224,11 @@ void vlc_interrupt_kill(vlc_interrupt_t *ctx)
@@ -185,7 +220,11 @@ void vlc_interrupt_kill(vlc_interrupt_t *ctx)
bool vlc_killed(void)
{
......@@ -118,7 +114,7 @@ index 3fafaa4183..fc7b84fd64 100644
return (ctx != NULL) && atomic_load(&ctx->killed);
}
@@ -197,7 +240,11 @@ static void vlc_interrupt_sem(void *opaque)
@@ -197,7 +236,11 @@ static void vlc_interrupt_sem(void *opaque)
int vlc_sem_wait_i11e(vlc_sem_t *sem)
{
......@@ -130,7 +126,7 @@ index 3fafaa4183..fc7b84fd64 100644
if (ctx == NULL)
return vlc_sem_wait(sem), 0;
@@ -227,7 +274,11 @@ static void vlc_mwait_i11e_cleanup(void *opaque)
@@ -227,7 +270,11 @@ static void vlc_mwait_i11e_cleanup(void *opaque)
int vlc_mwait_i11e(mtime_t deadline)
{
......@@ -142,7 +138,7 @@ index 3fafaa4183..fc7b84fd64 100644
if (ctx == NULL)
return mwait(deadline), 0;
@@ -262,7 +313,11 @@ void vlc_interrupt_forward_start(vlc_interrupt_t *to, void *data[2])
@@ -262,7 +309,11 @@ void vlc_interrupt_forward_start(vlc_interrupt_t *to, void *data[2])
{
data[0] = data[1] = NULL;
......@@ -154,7 +150,7 @@ index 3fafaa4183..fc7b84fd64 100644
if (from == NULL)
return;
@@ -371,7 +426,11 @@ static int vlc_poll_i11e_inner(struct pollfd *restrict fds, unsigned nfds,
@@ -371,7 +422,11 @@ static int vlc_poll_i11e_inner(struct pollfd *restrict fds, unsigned nfds,
int vlc_poll_i11e(struct pollfd *fds, unsigned nfds, int timeout)
{
......@@ -166,7 +162,7 @@ index 3fafaa4183..fc7b84fd64 100644
if (ctx == NULL)
return poll(fds, nfds, timeout);
@@ -568,7 +627,11 @@ static void vlc_poll_i11e_cleanup(void *opaque)
@@ -568,7 +623,11 @@ static void vlc_poll_i11e_cleanup(void *opaque)
int vlc_poll_i11e(struct pollfd *fds, unsigned nfds, int timeout)
{
......@@ -179,17 +175,13 @@ index 3fafaa4183..fc7b84fd64 100644
return vlc_poll(fds, nfds, timeout);
diff --git a/src/misc/variables.c b/src/misc/variables.c
index 87a9c27478..10f142bbed 100644
index 87a9c27478..5d3b8ebc1f 100644
--- a/src/misc/variables.c
+++ b/src/misc/variables.c
@@ -1378,7 +1378,21 @@ void DumpVariables(vlc_object_t *obj)
@@ -1378,7 +1378,17 @@ void DumpVariables(vlc_object_t *obj)
vlc_mutex_unlock(&vlc_internals(obj)->var_lock);
}
+#ifdef __x86_64__
+#define I_CAN_HAZ_TSD
+#endif
+
+#ifdef I_CAN_HAZ_TSD
static thread_local void *twalk_ctx;
+#else
......@@ -204,7 +196,7 @@ index 87a9c27478..10f142bbed 100644
static void TwalkGetNames(const void *data, const VISIT which, const int depth)
{
@@ -1387,7 +1401,11 @@ static void TwalkGetNames(const void *data, const VISIT which, const int depth)
@@ -1387,7 +1397,11 @@ static void TwalkGetNames(const void *data, const VISIT which, const int depth)
(void) depth;
const variable_t *var = *(const variable_t **)data;
......@@ -216,7 +208,7 @@ index 87a9c27478..10f142bbed 100644
char *dup = strdup(var->psz_name);
if (dup != NULL)
ARRAY_APPEND(*names, dup);
@@ -1400,7 +1418,12 @@ char **var_GetAllNames(vlc_object_t *obj)
@@ -1400,7 +1414,12 @@ char **var_GetAllNames(vlc_object_t *obj)
DECL_ARRAY(char *) names;
ARRAY_INIT(names);
......@@ -230,5 +222,5 @@ index 87a9c27478..10f142bbed 100644
twalk(priv->var_root, TwalkGetNames);
vlc_mutex_unlock(&priv->var_lock);
--
2.11.0
2.14.1
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment