Package: libclang-common-3.8-dev
Version: 1:3.8.1-2
Hello,
this is a continuation of Bug Report 771380 (since I dont think it
will be fixed back there).
https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=771380
The issue is that you can only install 1 architecture version of the
libraries, producing an i386 executable with sanitizer or rt library
would need the i386 version installed - this is not possible, atleast
nor as long the amd64 version is installed.
The solution is to split up the architecture-dependend files into a
own package and set the multiarch flags correctly.
I did a patch to demonstrate this, I am sure you might find better names.
Thus, installing clang with the i386 libraries could be done simpy by:
apt-get install clang-3.8 libclang-common-3.8-dev:i386
Kind Regards,
Norbert
diff -burN oldfiles/control newfiles/control
--- oldfiles/control 2016-06-30 14:52:42.000000000 +0200
+++ newfiles/control 2016-07-02 23:47:15.050271000 +0200
@@ -141,9 +141,10 @@
Package: libclang-common-3.8-dev
Architecture: any
+Multi-Arch: same
Section: libdevel
-Depends: ${shlibs:Depends}, ${misc:Depends}, libllvm3.8 (= ${binary:Version})
-Description: clang library - Common development package
+Depends: ${shlibs:Depends}, ${misc:Depends}, libllvm3.8 (= ${binary:Version}), libclang-headers-3.8-dev (= ${binary:Version})
+Description: clang library - Common development libraries
Clang project is a C, C++, Objective C and Objective C++ front-end
for the LLVM compiler. Its goal is to offer a replacement to the GNU Compiler
Collection (GCC).
@@ -152,9 +153,24 @@
well as the upcoming C++14 standard, and some parts of the fledgling C++1z
standard, and is considered a production-quality C++ compiler.
.
- This package contains the clang generic headers and some libraries
+ This package contains the static clang target libraries
(profiling, etc).
+Package: libclang-headers-3.8-dev
+Architecture: all
+Multi-Arch: foreign
+Section: libdevel
+Depends: ${shlibs:Depends}, ${misc:Depends}, libllvm3.8 (= ${binary:Version})
+Description: clang library - Common development headers
+ Clang project is a C, C++, Objective C and Objective C++ front-end
+ for the LLVM compiler. Its goal is to offer a replacement to the GNU Compiler
+ Collection (GCC).
+ .
+ Clang fully implements all published ISO C++ standards including C++11, as
+ well as the upcoming C++14 standard, and some parts of the fledgling C++1z
+ standard, and is considered a production-quality C++ compiler.
+ .
+ This package contains the clang generic headers
Package: python-clang-3.8
Section: python
diff -burN oldfiles/libclang-common-X.Y-dev.install.in newfiles/libclang-common-X.Y-dev.install.in
--- oldfiles/libclang-common-X.Y-dev.install.in 2016-03-04 17:55:18.000000000 +0100
+++ newfiles/libclang-common-X.Y-dev.install.in 2016-07-02 23:23:33.000000000 +0200
@@ -1,7 +1,7 @@
-usr/lib/llvm-@LLVM_VERSION@/lib/clang/@LLVM_VERSION_FULL@/include
+#usr/lib/llvm-@LLVM_VERSION@/lib/clang/@LLVM_VERSION_FULL@/include
usr/lib/llvm-@LLVM_VERSION@/lib/clang/@LLVM_VERSION_FULL@/lib
-usr/lib/llvm-@LLVM_VERSION@/lib/clang/@LLVM_VERSION_FULL@/*.txt
+#usr/lib/llvm-@LLVM_VERSION@/lib/clang/@LLVM_VERSION_FULL@/*.txt
#usr/lib/clang/@LLVM_VERSION_FULL@/lib /usr/lib/clang/@LLVM_VERSION@/
#usr/lib/clang/@LLVM_VERSION_FULL@/include/ /usr/include/clang/@LLVM_VERSION@/
diff -burN oldfiles/libclang-common-X.Y-dev.links.in newfiles/libclang-common-X.Y-dev.links.in
--- oldfiles/libclang-common-X.Y-dev.links.in 2016-03-04 17:55:18.000000000 +0100
+++ newfiles/libclang-common-X.Y-dev.links.in 1970-01-01 01:00:00.000000000 +0100
@@ -1,7 +0,0 @@
-usr/lib/llvm-@LLVM_VERSION@/lib/clang/@LLVM_VERSION_FULL@/include usr/include/clang/@LLVM_VERSION@/include
-usr/lib/llvm-@LLVM_VERSION@/lib/clang/@LLVM_VERSION_FULL@/include usr/lib/clang/@LLVM_VERSION@/include
-usr/lib/llvm-@LLVM_VERSION@/lib/clang/@LLVM_VERSION_FULL@/lib usr/lib/clang/@LLVM_VERSION@/lib
-usr/lib/llvm-@LLVM_VERSION@/lib/clang/@LLVM_VERSION_FULL@/include usr/include/clang/@LLVM_VERSION_FULL@/include
-usr/lib/llvm-@LLVM_VERSION@/lib/clang/@LLVM_VERSION_FULL@/include usr/lib/clang/@LLVM_VERSION_FULL@/include
-usr/lib/llvm-@LLVM_VERSION@/lib/clang/@LLVM_VERSION_FULL@/lib usr/lib/clang/@LLVM_VERSION_FULL@/lib
-
diff -burN oldfiles/libclang-headers-X.Y-dev.install.in newfiles/libclang-headers-X.Y-dev.install.in
--- oldfiles/libclang-headers-X.Y-dev.install.in 1970-01-01 01:00:00.000000000 +0100
+++ newfiles/libclang-headers-X.Y-dev.install.in 2016-07-03 01:26:04.901696000 +0200
@@ -0,0 +1,7 @@
+usr/lib/llvm-@LLVM_VERSION@/lib/clang/@LLVM_VERSION_FULL@/include
+
+#usr/lib/llvm-@LLVM_VERSION@/lib/clang/@LLVM_VERSION_FULL@/lib
+usr/lib/llvm-@LLVM_VERSION@/lib/clang/@LLVM_VERSION_FULL@/*.txt
+
+#usr/lib/clang/@LLVM_VERSION_FULL@/lib /usr/lib/clang/@LLVM_VERSION@/
+#usr/lib/clang/@LLVM_VERSION_FULL@/include/ /usr/include/clang/@LLVM_VERSION@/
diff -burN oldfiles/libclang-headers-X.Y-dev.links.in newfiles/libclang-headers-X.Y-dev.links.in
--- oldfiles/libclang-headers-X.Y-dev.links.in 1970-01-01 01:00:00.000000000 +0100
+++ newfiles/libclang-headers-X.Y-dev.links.in 2016-03-04 17:55:18.000000000 +0100
@@ -0,0 +1,7 @@
+usr/lib/llvm-@LLVM_VERSION@/lib/clang/@LLVM_VERSION_FULL@/include usr/include/clang/@LLVM_VERSION@/include
+usr/lib/llvm-@LLVM_VERSION@/lib/clang/@LLVM_VERSION_FULL@/include usr/lib/clang/@LLVM_VERSION@/include
+usr/lib/llvm-@LLVM_VERSION@/lib/clang/@LLVM_VERSION_FULL@/lib usr/lib/clang/@LLVM_VERSION@/lib
+usr/lib/llvm-@LLVM_VERSION@/lib/clang/@LLVM_VERSION_FULL@/include usr/include/clang/@LLVM_VERSION_FULL@/include
+usr/lib/llvm-@LLVM_VERSION@/lib/clang/@LLVM_VERSION_FULL@/include usr/lib/clang/@LLVM_VERSION_FULL@/include
+usr/lib/llvm-@LLVM_VERSION@/lib/clang/@LLVM_VERSION_FULL@/lib usr/lib/clang/@LLVM_VERSION_FULL@/lib
+
diff -burN oldfiles/rules newfiles/rules
--- oldfiles/rules 2016-06-26 08:33:04.000000000 +0200
+++ newfiles/rules 2016-07-03 10:36:33.325230000 +0200
@@ -420,12 +420,12 @@
# Manage the polly files. Sometimes, we build them. Sometimes not.
if test "$(POLLY_ENABLE)" = yes; then \
- mkdir -p $(CURDIR)/debian/libclang-$(LLVM_VERSION)-dev/usr/lib/llvm-$(LLVM_VERSION)/lib/ $(CURDIR)/debian/libclang-common-$(LLVM_VERSION)-dev/usr/lib/llvm-$(LLVM_VERSION)/include/polly/; \
+ mkdir -p $(CURDIR)/debian/libclang-$(LLVM_VERSION)-dev/usr/lib/llvm-$(LLVM_VERSION)/lib/ $(CURDIR)/debian/libclang-headers-$(LLVM_VERSION)-dev/usr/lib/llvm-$(LLVM_VERSION)/include/polly/; \
mv -f $(DEB_INST)/usr/lib/llvm-$(LLVM_VERSION)/lib/libpolly* \
$(CURDIR)/debian/libclang-$(LLVM_VERSION)-dev/usr/lib/llvm-$(LLVM_VERSION)/lib/; \
- rm -rf $(CURDIR)/debian/libclang-common-$(LLVM_VERSION)-dev/usr/lib/llvm-$(LLVM_VERSION)/include/polly; \
+ rm -rf $(CURDIR)/debian/libclang-headers-$(LLVM_VERSION)-dev/usr/lib/llvm-$(LLVM_VERSION)/include/polly; \
mv -f $(DEB_INST)/usr/lib/llvm-$(LLVM_VERSION)/include/polly/ \
- $(CURDIR)/debian/libclang-common-$(LLVM_VERSION)-dev/usr/lib/llvm-$(LLVM_VERSION)/include/; \
+ $(CURDIR)/debian/libclang-headers-$(LLVM_VERSION)-dev/usr/lib/llvm-$(LLVM_VERSION)/include/; \
fi
# Delete the target build directory to save some space on the build systems