vlc | branch: master | Thomas Guillem <[email protected]> | Thu Nov 8 11:44:22 2018 +0100| [1797b2a4f4e23724af44d5905824d9e2722e48ec] | committer: Thomas Guillem
contrib: libplacebo: fix pthread link > http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=1797b2a4f4e23724af44d5905824d9e2722e48ec --- ...uild-fix-lpthread-dependency-with-glslang.patch | 48 ++++++++++++++++++++++ ...ch => 0002-meson-fix-glslang-search-path.patch} | 18 ++++---- contrib/src/libplacebo/rules.mak | 3 +- 3 files changed, 59 insertions(+), 10 deletions(-) diff --git a/contrib/src/libplacebo/0001-build-fix-lpthread-dependency-with-glslang.patch b/contrib/src/libplacebo/0001-build-fix-lpthread-dependency-with-glslang.patch new file mode 100644 index 0000000000..3753fdb61b --- /dev/null +++ b/contrib/src/libplacebo/0001-build-fix-lpthread-dependency-with-glslang.patch @@ -0,0 +1,48 @@ +From e4626984de40115af22041087936c3ad68401f75 Mon Sep 17 00:00:00 2001 +From: Thomas Guillem <[email protected]> +Date: Thu, 8 Nov 2018 10:09:19 +0100 +Subject: [PATCH 1/2] build: fix lpthread dependency with glslang + +"-pthread" is enough for a dynamic build. Indeed, the pthread API is used +within libplacebo, so the compiler know that it shoud link with pthread in that +case. + +However, this may fail with static builds. If the code using libplacebo.a and +all glslang .a doesn't use the pthread API, the compiler won't link with +pthread. To work-around this issue, make libplacebo depends on -lpthread, if +present. +--- + src/meson.build | 5 ++++- + 1 file changed, 4 insertions(+), 1 deletion(-) + +diff --git a/src/meson.build b/src/meson.build +index 4d791c30d9..25b898b7a4 100644 +--- a/src/meson.build ++++ b/src/meson.build +@@ -90,6 +90,7 @@ tests = [ + glslang_combined = disabler() + glslang_min_ver = 2763 + glslang_req = get_option('glslang') ++glslang_pthread_deps = [] + glslang_deps = [ + cxx.find_library('glslang', required: glslang_req), + cxx.find_library('HLSL', required: glslang_req), +@@ -105,12 +106,14 @@ foreach d : glslang_deps + endforeach + + if glslang_found ++ glslang_pthread_deps += cxx.find_library('pthread', required: false) ++ + glslang_ver = cxx.get_define('GLSLANG_PATCH_LEVEL', + prefix: '#include <glslang/Include/revision.h>' + ).to_int() + + if glslang_ver >= glslang_min_ver +- glslang_combined = declare_dependency(dependencies: glslang_deps) ++ glslang_combined = declare_dependency(dependencies: glslang_deps + glslang_pthread_deps) + else + error('glslang revision @0@ too old! Must be at least @1@' + .format(glslang_ver, glslang_min_ver)) +-- +2.19.1 + diff --git a/contrib/src/libplacebo/0001-meson-fix-glslang-search-path.patch b/contrib/src/libplacebo/0002-meson-fix-glslang-search-path.patch similarity index 84% rename from contrib/src/libplacebo/0001-meson-fix-glslang-search-path.patch rename to contrib/src/libplacebo/0002-meson-fix-glslang-search-path.patch index 920402b690..86f7033a3e 100644 --- a/contrib/src/libplacebo/0001-meson-fix-glslang-search-path.patch +++ b/contrib/src/libplacebo/0002-meson-fix-glslang-search-path.patch @@ -1,14 +1,14 @@ -From 9b3c97d83d92b2f56120c08cd796e81410da45f2 Mon Sep 17 00:00:00 2001 +From fd85596f1d684be20d383b7d6b01d19a6a576fdc Mon Sep 17 00:00:00 2001 From: Thomas Guillem <[email protected]> Date: Wed, 24 Oct 2018 10:28:55 +0200 -Subject: [PATCH] meson: fix glslang search path +Subject: [PATCH 2/2] meson: fix glslang search path --- src/meson.build | 24 ++++++++++++++++-------- 1 file changed, 16 insertions(+), 8 deletions(-) diff --git a/src/meson.build b/src/meson.build -index 6b2b07d56b..ff58b60f5f 100644 +index 25b898b7a4..c63996f53f 100644 --- a/src/meson.build +++ b/src/meson.build @@ -25,6 +25,12 @@ build_opts = [ @@ -24,9 +24,9 @@ index 6b2b07d56b..ff58b60f5f 100644 cc = meson.get_compiler('c') cxx = meson.get_compiler('cpp') -@@ -91,12 +97,12 @@ glslang_combined = disabler() - glslang_min_ver = 2763 +@@ -92,12 +98,12 @@ glslang_min_ver = 2763 glslang_req = get_option('glslang') + glslang_pthread_deps = [] glslang_deps = [ - cxx.find_library('glslang', required: glslang_req), - cxx.find_library('HLSL', required: glslang_req), @@ -43,9 +43,9 @@ index 6b2b07d56b..ff58b60f5f 100644 ] glslang_found = true -@@ -106,11 +112,13 @@ endforeach +@@ -109,11 +115,13 @@ if glslang_found + glslang_pthread_deps += cxx.find_library('pthread', required: false) - if glslang_found glslang_ver = cxx.get_define('GLSLANG_PATCH_LEVEL', - prefix: '#include <glslang/Include/revision.h>' + prefix: '#include <glslang/Include/revision.h>', @@ -53,8 +53,8 @@ index 6b2b07d56b..ff58b60f5f 100644 ).to_int() if glslang_ver >= glslang_min_ver -- glslang_combined = declare_dependency(dependencies: glslang_deps) -+ glslang_combined = declare_dependency(dependencies: glslang_deps, +- glslang_combined = declare_dependency(dependencies: glslang_deps + glslang_pthread_deps) ++ glslang_combined = declare_dependency(dependencies: glslang_deps + glslang_pthread_deps, + include_directories : prefix_include) else error('glslang revision @0@ too old! Must be at least @1@' diff --git a/contrib/src/libplacebo/rules.mak b/contrib/src/libplacebo/rules.mak index f0c83f696c..ed47c0090d 100644 --- a/contrib/src/libplacebo/rules.mak +++ b/contrib/src/libplacebo/rules.mak @@ -26,7 +26,8 @@ $(TARBALLS)/$(PLACEBO_ARCHIVE): libplacebo: $(PLACEBO_ARCHIVE) .sum-libplacebo $(UNPACK) - $(APPLY) $(SRC)/libplacebo/0001-meson-fix-glslang-search-path.patch + $(APPLY) $(SRC)/libplacebo/0001-build-fix-lpthread-dependency-with-glslang.patch + $(APPLY) $(SRC)/libplacebo/0002-meson-fix-glslang-search-path.patch $(MOVE) .libplacebo: libplacebo crossfile.meson _______________________________________________ vlc-commits mailing list [email protected] https://mailman.videolan.org/listinfo/vlc-commits
