vlc/vlc-3.0 | branch: master | Steve Lhomme <[email protected]> | Tue Jun 16 
15:13:52 2020 +0200| [df81e4f412b87f3705d32e01755852f1d98fbce4] | committer: 
Steve Lhomme

contrib: pthreads: fix OpenProcess called in mingw-w64 but missing when linking

We should not be calling this code but zvbi fails with this error:

 lld-link: error: undefined symbol: _OpenProcess
>>> referenced by libpthreadGC2.a(pthread.o):(_sched_setscheduler)
>>> referenced by libpthreadGC2.a(pthread.o):(_sched_getscheduler)
1 warning generated.
clang-8: error: linker command failed with exit code 1 (use -v to see 
invocation)
make[4]: *** [Makefile:18055: libzvbi_plugin.la] Error 1

This is on registry.videolan.org/vlc-debian-llvm-mingw:20181128171234 it 
doesn't happen
anymore on newer images.

> http://git.videolan.org/gitweb.cgi/vlc/vlc-3.0.git/?a=commit;h=df81e4f412b87f3705d32e01755852f1d98fbce4
---

 contrib/src/pthreads/pthreads-fix-old-mingw.patch | 42 +++++++++++++++++++++++
 contrib/src/pthreads/rules.mak                    |  1 +
 2 files changed, 43 insertions(+)

diff --git a/contrib/src/pthreads/pthreads-fix-old-mingw.patch 
b/contrib/src/pthreads/pthreads-fix-old-mingw.patch
new file mode 100644
index 0000000000..cf67354a10
--- /dev/null
+++ b/contrib/src/pthreads/pthreads-fix-old-mingw.patch
@@ -0,0 +1,42 @@
+--- pthreads/sched_getscheduler.c.uwpmingw7    2020-06-16 15:09:45.975803600 
+0200
++++ pthreads/sched_getscheduler.c      2020-06-16 15:09:54.479850300 +0200
+@@ -52,6 +52,7 @@ sched_getscheduler (pid_t pid)
+
+       if (pid != selfPid)
+       {
++#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) || 
!defined(__MINGW64_VERSION_MAJOR) || __MINGW64_VERSION_MAJOR > 7
+         HANDLE h =
+           OpenProcess (PROCESS_QUERY_INFORMATION, PTW32_FALSE, (DWORD) pid);
+
+@@ -64,6 +65,10 @@ sched_getscheduler (pid_t pid)
+           }
+         else
+           CloseHandle(h);
++#else
++        errno = EPERM;
++        return -1;
++#endif
+       }
+     }
+
+--- pthreads/sched_setscheduler.c.uwpmingw7    2020-06-16 15:09:43.567989900 
+0200
++++ pthreads/sched_setscheduler.c      2020-06-16 15:09:59.727891200 +0200
+@@ -54,6 +54,7 @@ sched_setscheduler (pid_t pid, int polic
+
+       if (pid != selfPid)
+       {
++#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) || 
!defined(__MINGW64_VERSION_MAJOR) || __MINGW64_VERSION_MAJOR > 7
+         HANDLE h =
+           OpenProcess (PROCESS_SET_INFORMATION, PTW32_FALSE, (DWORD) pid);
+
+@@ -66,6 +67,10 @@ sched_setscheduler (pid_t pid, int polic
+           }
+         else
+           CloseHandle(h);
++#else
++        errno = EPERM;
++        return -1;
++#endif
+       }
+     }
+
diff --git a/contrib/src/pthreads/rules.mak b/contrib/src/pthreads/rules.mak
index a87a924049..723c874fed 100644
--- a/contrib/src/pthreads/rules.mak
+++ b/contrib/src/pthreads/rules.mak
@@ -25,6 +25,7 @@ endif
        $(APPLY) $(SRC)/pthreads/arm64.patch
        $(APPLY) $(SRC)/pthreads/pthreads-fix-mode_t.patch
        $(APPLY) $(SRC)/pthreads/pthread-fix-inline.patch
+       $(APPLY) $(SRC)/pthreads/pthreads-fix-old-mingw.patch
        $(MOVE)
 
 PTHREADS_W32_CONF := LFLAGS="$(LDFLAGS)" PTW32_FLAGS="$(CFLAGS)"

_______________________________________________
vlc-commits mailing list
[email protected]
https://mailman.videolan.org/listinfo/vlc-commits

Reply via email to