[vlc-devel] [PATCH 02/15] nacl: Add new system type

Julian Scheel julian at jusst.de
Wed Mar 8 15:55:19 CET 2017


Add system type for Google (Portable) Native Client. As Portable Native
Clients do not allow dynamic library loading the plugin loader is
worthless and thus replaced by a dummy stub.
As newlib does not provide strerror_l the existing replacement from
android platform is used.

Signed-off-by: Julian Scheel <julian at jusst.de>
---
 configure.ac      |  2 ++
 src/Makefile.am   | 12 ++++++++++++
 src/nacl/plugin.c | 46 ++++++++++++++++++++++++++++++++++++++++++++++
 3 files changed, 60 insertions(+)
 create mode 100644 src/nacl/plugin.c

diff --git a/configure.ac b/configure.ac
index ad4586afcb..1e85fcdbf8 100644
--- a/configure.ac
+++ b/configure.ac
@@ -330,6 +330,8 @@ AM_CONDITIONAL(HAVE_IOS,     test "${HAVE_IOS}" = "1")
 AM_CONDITIONAL(HAVE_OSX,     test "${HAVE_OSX}" = "1")
 AM_CONDITIONAL(HAVE_TVOS,    test "${HAVE_TVOS}" = "1")
 
+AM_CONDITIONAL(HAVE_NACL,    test "${SYS}" = "nacl")
+
 AM_CONDITIONAL(HAVE_WIN32,   test "${SYS}" = "mingw32")
 AM_CONDITIONAL(HAVE_WIN64,   test "${HAVE_WIN64}" = "1") dnl Only used for the packaging
 AM_CONDITIONAL([HAVE_WINSTORE], [test "$vlc_winstore_app" = "1"])
diff --git a/src/Makefile.am b/src/Makefile.am
index fc63678cfa..43e0eac863 100644
--- a/src/Makefile.am
+++ b/src/Makefile.am
@@ -382,6 +382,17 @@ libvlccore_la_SOURCES += \
 	os2/rand.c \
 	os2/thread.c
 else
+if HAVE_NACL
+libvlccore_la_SOURCES += \
+	android/error.c \
+	nacl/plugin.c \
+	posix/dirs.c \
+	posix/filesystem.c \
+	posix/netconf.c \
+	posix/rand.c \
+	posix/specific.c \
+	posix/timer.c
+else
 libvlccore_la_SOURCES += \
 	posix/filesystem.c \
 	posix/plugin.c \
@@ -425,6 +436,7 @@ endif
 endif
 endif
 endif
+endif
 
 if BUILD_HTTPD
 libvlccore_la_SOURCES += network/httpd.c
diff --git a/src/nacl/plugin.c b/src/nacl/plugin.c
new file mode 100644
index 0000000000..c4cb50f76d
--- /dev/null
+++ b/src/nacl/plugin.c
@@ -0,0 +1,46 @@
+/*****************************************************************************
+ * plugin.c : Empty stubs for NaCl, which does not allow dynamic loading
+ *****************************************************************************
+ * Copyright (C) 2017 VLC authors and VideoLAN
+ *
+ * Authors: Julian Scheel <julian at jusst.de>
+ *
+ * This program is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as published by
+ * the Free Software Foundation; either version 2.1 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301, USA.
+ *****************************************************************************/
+
+#include <vlc_common.h>
+#include "modules/modules.h"
+
+int module_Load (vlc_object_t *p_this, const char *path,
+                 module_handle_t *p_handle, bool lazy)
+{
+    VLC_UNUSED(p_this);
+    VLC_UNUSED(path);
+    VLC_UNUSED(p_handle);
+    VLC_UNUSED(lazy);
+    return -1;
+}
+
+void module_Unload(module_handle_t handle)
+{
+    VLC_UNUSED(handle);
+}
+
+void *module_Lookup(module_handle_t handle, const char *psz_function)
+{
+    VLC_UNUSED(handle);
+    VLC_UNUSED(psz_function);
+    return NULL;
+}
-- 
2.12.0



More information about the vlc-devel mailing list