Bug#848368: llvm-toolchain-3.9: Please add ELF symbols versions to the libraries
Rebecca N. Palmer
rebecca_palmer at zoho.com
Sat Mar 18 22:40:22 UTC 2017
Can this be fixed in time for Ubuntu 17.04? Their mesa is built against
LLVM 4.0, so if this bug isn't fixed, I (as beignet maintainer) have to
choose between "apply a very new 4.0-support patch that might or might
not work" and "leave beignet on 3.9, making OpenCL+OpenGL applications
(e.g. blender) subject to this bug".
> I've been told that there is a command line to add a version to all symbols
> without a script, that should be enough at least for Debian packaging.
-Wl,--default-symver : rarely used (only 5 packages), and forces the
symbol version to be the soname (i.e. libLLVM-3.9.so.1) rather than the
conventional LLVM_3.9 form (i.e. potential binary incompatibility if
upstream later decide to do it the conventional way), but should at
least fix this crash.
The attached debdiff is for this option, and also fixes #857623 and
#857683. Warning: has NOT been tested yet.
I intend to try extending the earlier "version script" patch to also
cover libclang and liblldb tomorrow.
-------------- next part --------------
diff -Nru llvm-toolchain-3.9-3.9.1/debian/changelog llvm-toolchain-3.9-3.9.1/debian/changelog
--- llvm-toolchain-3.9-3.9.1/debian/changelog 2017-03-12 09:01:10.000000000 +0000
+++ llvm-toolchain-3.9-3.9.1/debian/changelog 2017-03-18 21:33:53.000000000 +0000
@@ -1,3 +1,11 @@
+llvm-toolchain-3.9 (1:3.9.1-5local1) UNRELEASED; urgency=medium
+
+ * Allow '!pointer' in OpenCL (Closes: #857623)
+ * Add missing liblldb symlink (Closes: #857683)
+ * Use versioned symbols (Closes: #848368)
+
+ -- Rebecca N. Palmer <rebecca_palmer at zoho.com> Sat, 18 Mar 2017 21:29:25 +0000
+
llvm-toolchain-3.9 (1:3.9.1-5) unstable; urgency=medium
* Fix the incorrect symlink to scan-build-py (Closes: #856869)
diff -Nru llvm-toolchain-3.9-3.9.1/debian/liblldb-X.Y.links.in llvm-toolchain-3.9-3.9.1/debian/liblldb-X.Y.links.in
--- llvm-toolchain-3.9-3.9.1/debian/liblldb-X.Y.links.in 2016-08-08 16:02:20.000000000 +0100
+++ llvm-toolchain-3.9-3.9.1/debian/liblldb-X.Y.links.in 2017-03-18 17:33:17.000000000 +0000
@@ -1,3 +1,4 @@
usr/lib/@DEB_HOST_MULTIARCH@/liblldb- at LLVM_VERSION@.so.1 usr/lib/@DEB_HOST_MULTIARCH@/liblldb- at LLVM_VERSION@.so
usr/lib/@DEB_HOST_MULTIARCH@/liblldb- at LLVM_VERSION@.so.1 usr/lib/llvm- at LLVM_VERSION@/lib/liblldb.so.1
+usr/lib/@DEB_HOST_MULTIARCH@/liblldb- at LLVM_VERSION@.so.1 usr/lib/llvm- at LLVM_VERSION@/lib/liblldb- at LLVM_VERSION@.so.1
diff -Nru llvm-toolchain-3.9-3.9.1/debian/patches/857623-allow-opencl-pointer-to-bool.diff llvm-toolchain-3.9-3.9.1/debian/patches/857623-allow-opencl-pointer-to-bool.diff
--- llvm-toolchain-3.9-3.9.1/debian/patches/857623-allow-opencl-pointer-to-bool.diff 1970-01-01 01:00:00.000000000 +0100
+++ llvm-toolchain-3.9-3.9.1/debian/patches/857623-allow-opencl-pointer-to-bool.diff 2017-03-18 21:25:52.000000000 +0000
@@ -0,0 +1,20 @@
+Description: Allow "if (!pointer)" in OpenCL 1.1
+
+Used by e.g. Blender on mesa-opencl-icd
+
+Author: Anastasia Stulova
+Origin: upstream https://reviews.llvm.org/rL294313
+Bug: https://bugs.llvm.org/show_bug.cgi?id=30217
+Bug-Debian: https://bugs.debian.org/857623
+
+--- llvm-toolchain-3.9-3.9.1.orig/clang/lib/Sema/SemaExpr.cpp
++++ llvm-toolchain-3.9-3.9.1/clang/lib/Sema/SemaExpr.cpp
+@@ -11424,7 +11424,7 @@ ExprResult Sema::CreateBuiltinUnaryOp(So
+ Context.getLangOpts().OpenCLVersion < 120) {
+ // OpenCL v1.1 6.3.h: The logical operator not (!) does not
+ // operate on scalar float types.
+- if (!resultType->isIntegerType())
++ if (!resultType->isIntegerType() && !resultType->isPointerType())
+ return ExprError(Diag(OpLoc, diag::err_typecheck_unary_expr)
+ << resultType << Input.get()->getSourceRange());
+ }
diff -Nru llvm-toolchain-3.9-3.9.1/debian/patches/series llvm-toolchain-3.9-3.9.1/debian/patches/series
--- llvm-toolchain-3.9-3.9.1/debian/patches/series 2017-01-27 09:03:47.000000000 +0000
+++ llvm-toolchain-3.9-3.9.1/debian/patches/series 2017-03-18 21:20:57.000000000 +0000
@@ -47,3 +47,4 @@
amdgpu-regression.diff
esan-Fix-ESan-test-failure-on-Debian-Sid-bot.diff
esan-Fix-ESan-test-failure-on-Debian-Sid-bot2.diff
+857623-allow-opencl-pointer-to-bool.diff
diff -Nru llvm-toolchain-3.9-3.9.1/debian/rules llvm-toolchain-3.9-3.9.1/debian/rules
--- llvm-toolchain-3.9-3.9.1/debian/rules 2017-01-26 08:35:04.000000000 +0000
+++ llvm-toolchain-3.9-3.9.1/debian/rules 2017-03-18 17:25:11.000000000 +0000
@@ -24,7 +24,7 @@
OCAML_STDLIB_DIR ?= $(shell ocamlc -where)
-LDFLAGS_EXTRA =
+LDFLAGS_EXTRA = -Wl,--default-symver
CXXFLAGS_EXTRA = -std=c++0x
CONFIGURE_EXTRA =
CMAKE_EXTRA =
More information about the Pkg-llvm-team
mailing list