From e6364e0c223a970a7dfe9647ce75ecf538b68ea8 Mon Sep 17 00:00:00 2001 From: Sylvestre Ledru Date: Sun, 8 Sep 2013 11:39:14 +0000 Subject: [PATCH 01/17] Update of the description of LLVM packages --- debian/changelog | 6 +++ debian/control | 103 +++++++++++++++++++++-------------------------- 2 files changed, 51 insertions(+), 58 deletions(-) diff --git a/debian/changelog b/debian/changelog index e5120bfe..029af5df 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,3 +1,9 @@ +llvm-toolchain-3.3 (1:3.3-10) unstable; urgency=low + + * Update of the description of LLVM packages + + -- + llvm-toolchain-3.3 (1:3.3-9) unstable; urgency=low [ Luca Falavigna ] diff --git a/debian/control b/debian/control index 4e9a4f4e..e066a292 100644 --- a/debian/control +++ b/debian/control @@ -246,10 +246,10 @@ Section: libs Depends: ${shlibs:Depends}, ${misc:Depends} Pre-Depends: ${misc:Pre-Depends} Multi-Arch: same -Description: Low-Level Virtual Machine (LLVM), runtime library - The Low-Level Virtual Machine (LLVM) is a collection of libraries and - tools that make it easy to build compilers, optimizers, Just-In-Time - code generators, and many other compiler-related programs. +Description: Modular and reusable compiler and toolchain technologies, runtime library + LLVM is a collection of libraries and tools that make it easy to build + compilers, optimizers, Just-In-Time code generators, and many other + compiler-related programs. . This package contains the LLVM runtime library. @@ -260,10 +260,10 @@ Priority: extra Depends: ${shlibs:Depends}, ${misc:Depends}, libllvm3.3 Pre-Depends: ${misc:Pre-Depends} Multi-Arch: same -Description: Low-Level Virtual Machine (LLVM), debugging symbols library - The Low-Level Virtual Machine (LLVM) is a collection of libraries and - tools that make it easy to build compilers, optimizers, Just-In-Time - code generators, and many other compiler-related programs. +Description: Modular and reusable compiler and toolchain technologies, debugging symbols library + LLVM is a collection of libraries and tools that make it easy to build + compilers, optimizers, Just-In-Time code generators, and many other + compiler-related programs. . This package contains the LLVM runtime library debug symbols. @@ -274,11 +274,12 @@ Depends: llvm-3.3-runtime (= ${binary:Version}), ${shlibs:Depends}, ${misc:Depen Recommends: llvm-3.3-dev Conflicts: llvm (<< 2.7-1) Replaces: llvm (<< 2.7-1) -Description: Low-Level Virtual Machine (LLVM) - The Low-Level Virtual Machine (LLVM) is a collection of libraries and - tools that make it easy to build compilers, optimizers, Just-In-Time - code generators, and many other compiler-related programs. LLVM - uses a single, language-independent virtual instruction set both +Description: Modular and reusable compiler and toolchain technologies + LLVM is a collection of libraries and tools that make it easy to build + compilers, optimizers, Just-In-Time code generators, and many other + compiler-related programs. + . + LLVM uses a single, language-independent virtual instruction set both as an offline code representation (to communicate code between compiler phases and to run-time systems) and as the compiler internal representation (to analyze and transform programs). This persistent @@ -292,7 +293,7 @@ Description: Low-Level Virtual Machine (LLVM) compiler debugging support, extensibility, and its stability and reliability. LLVM is currently being used to host a wide variety of academic research projects and commercial projects. LLVM includes C - and C++ front-ends, a front-end for a Forth-like language (Stacker), + and C++ front-ends, a front-end for a Forth-like language (Stacker), a young scheme front-end, and Java support is in development. LLVM can generate code for X86, SparcV9, PowerPC, or it can emit C code. . @@ -304,11 +305,12 @@ Architecture: any Depends: binfmt-support, ${shlibs:Depends}, ${misc:Depends} Conflicts: llvm (<< 2.7-1) Replaces: llvm (<< 2.7-1) -Description: Low-Level Virtual Machine (LLVM), bytecode interpreter - The Low-Level Virtual Machine (LLVM) is a collection of libraries and - tools that make it easy to build compilers, optimizers, Just-In-Time - code generators, and many other compiler-related programs. LLVM - uses a single, language-independent virtual instruction set both +Description: Modular and reusable compiler and toolchain technologies, IR interpreter + LLVM is a collection of libraries and tools that make it easy to build + compilers, optimizers, Just-In-Time code generators, and many other + compiler-related programs. + . + LLVM uses a single, language-independent virtual instruction set both as an offline code representation (to communicate code between compiler phases and to run-time systems) and as the compiler internal representation (to analyze and transform programs). This persistent @@ -323,11 +325,12 @@ Package: llvm-3.3-dev Architecture: any Depends: ${shlibs:Depends}, libffi-dev (>= 3.0.9), ${misc:Depends}, llvm-3.3 (= ${binary:Version}) Replaces: llvm (<< 2.2-3) -Description: Low-Level Virtual Machine (LLVM), libraries and headers - The Low-Level Virtual Machine (LLVM) is a collection of libraries and - tools that make it easy to build compilers, optimizers, Just-In-Time - code generators, and many other compiler-related programs. LLVM - uses a single, language-independent virtual instruction set both +Description: Modular and reusable compiler and toolchain technologies, libraries and headers + LLVM is a collection of libraries and tools that make it easy to build + compilers, optimizers, Just-In-Time code generators, and many other + compiler-related programs. + . + LLVM uses a single, language-independent virtual instruction set both as an offline code representation (to communicate code between compiler phases and to run-time systems) and as the compiler internal representation (to analyze and transform programs). This persistent @@ -346,11 +349,12 @@ Depends: ${shlibs:Depends}, ${misc:Depends}, ${ocaml:Depends}, llvm-3.3-dev (= $ Replaces: libllvm-ocaml-3.3-dev Conflicts: libllvm-ocaml-3.3-dev Provides: ${ocaml:Provides} -Description: Low-Level Virtual Machine (LLVM), bindings for OCaml - The Low-Level Virtual Machine (LLVM) is a collection of libraries and - tools that make it easy to build compilers, optimizers, Just-In-Time - code generators, and many other compiler-related programs. LLVM - uses a single, language-independent virtual instruction set both +Description: Modular and reusable compiler and toolchain technologies, OCaml bindings + LLVM is a collection of libraries and tools that make it easy to build + compilers, optimizers, Just-In-Time code generators, and many other + compiler-related programs. + . + LLVM uses a single, language-independent virtual instruction set both as an offline code representation (to communicate code between compiler phases and to run-time systems) and as the compiler internal representation (to analyze and transform programs). This persistent @@ -364,11 +368,12 @@ Package: llvm-3.3-doc Section: doc Architecture: all Depends: ${misc:Depends}, libjs-jquery, libjs-underscore -Description: Low-Level Virtual Machine (LLVM), documentation - The Low-Level Virtual Machine (LLVM) is a collection of libraries and - tools that make it easy to build compilers, optimizers, Just-In-Time - code generators, and many other compiler-related programs. LLVM - uses a single, language-independent virtual instruction set both +Description: Modular and reusable compiler and toolchain technologies, documentation + LLVM is a collection of libraries and tools that make it easy to build + compilers, optimizers, Just-In-Time code generators, and many other + compiler-related programs. + . + LLVM uses a single, language-independent virtual instruction set both as an offline code representation (to communicate code between compiler phases and to run-time systems) and as the compiler internal representation (to analyze and transform programs). This persistent @@ -382,11 +387,12 @@ Package: llvm-3.3-examples Section: doc Architecture: all Depends: ${misc:Depends}, llvm-3.3-dev (>= ${source:Version}), llvm-3.3-dev (<< ${source:Version}+c~) -Description: Low-Level Virtual Machine (LLVM), examples - The Low-Level Virtual Machine (LLVM) is a collection of libraries and - tools that make it easy to build compilers, optimizers, Just-In-Time - code generators, and many other compiler-related programs. LLVM - uses a single, language-independent virtual instruction set both +Description: Modular and reusable compiler and toolchain technologies, examples + LLVM is a collection of libraries and tools that make it easy to build + compilers, optimizers, Just-In-Time code generators, and many other + compiler-related programs. + . + LLVM uses a single, language-independent virtual instruction set both as an offline code representation (to communicate code between compiler phases and to run-time systems) and as the compiler internal representation (to analyze and transform programs). This persistent @@ -397,25 +403,6 @@ Description: Low-Level Virtual Machine (LLVM), examples This package contains examples for using LLVM, both in developing extensions to LLVM and in using it to compile code. -# Package: llvm-3.3-source -# Architecture: all -# Depends: ${shlibs:Depends}, ${misc:Depends} -# Description: Low-Level Virtual Machine (LLVM), source code -# The Low-Level Virtual Machine (LLVM) is a collection of libraries and -# tools that make it easy to build compilers, optimizers, Just-In-Time -# code generators, and many other compiler-related programs. LLVM -# uses a single, language-independent virtual instruction set both -# as an offline code representation (to communicate code between -# compiler phases and to run-time systems) and as the compiler internal -# representation (to analyze and transform programs). This persistent -# code representation allows a common set of sophisticated compiler -# techniques to be applied at compile-time, link-time, install-time, -# run-time, or "idle-time" (between program runs). -# . -# This package contains the llvm source code. - - - Package: lldb-3.3 Architecture: any Depends: ${shlibs:Depends}, ${misc:Depends}, libllvm3.3 (= ${binary:Version}), python, llvm-3.3-dev From 2970d039d4a43c693728a836f95bd85ed074fc1f Mon Sep 17 00:00:00 2001 From: Sylvestre Ledru Date: Sun, 8 Sep 2013 11:43:00 +0000 Subject: [PATCH 02/17] update to fit 80 --- debian/control | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/debian/control b/debian/control index e066a292..3fad9c0d 100644 --- a/debian/control +++ b/debian/control @@ -246,7 +246,7 @@ Section: libs Depends: ${shlibs:Depends}, ${misc:Depends} Pre-Depends: ${misc:Pre-Depends} Multi-Arch: same -Description: Modular and reusable compiler and toolchain technologies, runtime library +Description: Modular compiler and toolchain technologies, runtime library LLVM is a collection of libraries and tools that make it easy to build compilers, optimizers, Just-In-Time code generators, and many other compiler-related programs. @@ -260,7 +260,7 @@ Priority: extra Depends: ${shlibs:Depends}, ${misc:Depends}, libllvm3.3 Pre-Depends: ${misc:Pre-Depends} Multi-Arch: same -Description: Modular and reusable compiler and toolchain technologies, debugging symbols library +Description: Modular compiler and toolchain technologies, debugging libraries LLVM is a collection of libraries and tools that make it easy to build compilers, optimizers, Just-In-Time code generators, and many other compiler-related programs. @@ -274,7 +274,7 @@ Depends: llvm-3.3-runtime (= ${binary:Version}), ${shlibs:Depends}, ${misc:Depen Recommends: llvm-3.3-dev Conflicts: llvm (<< 2.7-1) Replaces: llvm (<< 2.7-1) -Description: Modular and reusable compiler and toolchain technologies +Description: Modular compiler and toolchain technologies LLVM is a collection of libraries and tools that make it easy to build compilers, optimizers, Just-In-Time code generators, and many other compiler-related programs. @@ -305,7 +305,7 @@ Architecture: any Depends: binfmt-support, ${shlibs:Depends}, ${misc:Depends} Conflicts: llvm (<< 2.7-1) Replaces: llvm (<< 2.7-1) -Description: Modular and reusable compiler and toolchain technologies, IR interpreter +Description: Modular compiler and toolchain technologies, IR interpreter LLVM is a collection of libraries and tools that make it easy to build compilers, optimizers, Just-In-Time code generators, and many other compiler-related programs. @@ -325,7 +325,7 @@ Package: llvm-3.3-dev Architecture: any Depends: ${shlibs:Depends}, libffi-dev (>= 3.0.9), ${misc:Depends}, llvm-3.3 (= ${binary:Version}) Replaces: llvm (<< 2.2-3) -Description: Modular and reusable compiler and toolchain technologies, libraries and headers +Description: Modular compiler and toolchain technologies, libraries and headers LLVM is a collection of libraries and tools that make it easy to build compilers, optimizers, Just-In-Time code generators, and many other compiler-related programs. @@ -349,7 +349,7 @@ Depends: ${shlibs:Depends}, ${misc:Depends}, ${ocaml:Depends}, llvm-3.3-dev (= $ Replaces: libllvm-ocaml-3.3-dev Conflicts: libllvm-ocaml-3.3-dev Provides: ${ocaml:Provides} -Description: Modular and reusable compiler and toolchain technologies, OCaml bindings +Description: Modular compiler and toolchain technologies, OCaml bindings LLVM is a collection of libraries and tools that make it easy to build compilers, optimizers, Just-In-Time code generators, and many other compiler-related programs. @@ -368,7 +368,7 @@ Package: llvm-3.3-doc Section: doc Architecture: all Depends: ${misc:Depends}, libjs-jquery, libjs-underscore -Description: Modular and reusable compiler and toolchain technologies, documentation +Description: Modular compiler and toolchain technologies, documentation LLVM is a collection of libraries and tools that make it easy to build compilers, optimizers, Just-In-Time code generators, and many other compiler-related programs. @@ -387,7 +387,7 @@ Package: llvm-3.3-examples Section: doc Architecture: all Depends: ${misc:Depends}, llvm-3.3-dev (>= ${source:Version}), llvm-3.3-dev (<< ${source:Version}+c~) -Description: Modular and reusable compiler and toolchain technologies, examples +Description: Modular compiler and toolchain technologies, examples LLVM is a collection of libraries and tools that make it easy to build compilers, optimizers, Just-In-Time code generators, and many other compiler-related programs. From d326443d2fcea07bbb340b4f4d0623fe44707ead Mon Sep 17 00:00:00 2001 From: Sylvestre Ledru Date: Mon, 9 Sep 2013 07:28:35 +0000 Subject: [PATCH 03/17] llvm no longer emit c code --- debian/control | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/debian/control b/debian/control index 3fad9c0d..f67575af 100644 --- a/debian/control +++ b/debian/control @@ -295,7 +295,7 @@ Description: Modular compiler and toolchain technologies academic research projects and commercial projects. LLVM includes C and C++ front-ends, a front-end for a Forth-like language (Stacker), a young scheme front-end, and Java support is in development. LLVM can - generate code for X86, SparcV9, PowerPC, or it can emit C code. + generate code for X86, SparcV9, PowerPC or many other architectures. . LLVM is the key component of the clang compiler and the gcc plugin called dragonegg. From 4ca5a80db4790604c00374b71552f39240da1f38 Mon Sep 17 00:00:00 2001 From: Sylvestre Ledru Date: Mon, 9 Sep 2013 07:36:59 +0000 Subject: [PATCH 04/17] does not have to be uppercase --- debian/control | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/debian/control b/debian/control index f67575af..3b2dd878 100644 --- a/debian/control +++ b/debian/control @@ -248,7 +248,7 @@ Pre-Depends: ${misc:Pre-Depends} Multi-Arch: same Description: Modular compiler and toolchain technologies, runtime library LLVM is a collection of libraries and tools that make it easy to build - compilers, optimizers, Just-In-Time code generators, and many other + compilers, optimizers, just-in-time code generators, and many other compiler-related programs. . This package contains the LLVM runtime library. @@ -262,7 +262,7 @@ Pre-Depends: ${misc:Pre-Depends} Multi-Arch: same Description: Modular compiler and toolchain technologies, debugging libraries LLVM is a collection of libraries and tools that make it easy to build - compilers, optimizers, Just-In-Time code generators, and many other + compilers, optimizers, just-in-time code generators, and many other compiler-related programs. . This package contains the LLVM runtime library debug symbols. @@ -276,7 +276,7 @@ Conflicts: llvm (<< 2.7-1) Replaces: llvm (<< 2.7-1) Description: Modular compiler and toolchain technologies LLVM is a collection of libraries and tools that make it easy to build - compilers, optimizers, Just-In-Time code generators, and many other + compilers, optimizers, just-in-time code generators, and many other compiler-related programs. . LLVM uses a single, language-independent virtual instruction set both @@ -307,7 +307,7 @@ Conflicts: llvm (<< 2.7-1) Replaces: llvm (<< 2.7-1) Description: Modular compiler and toolchain technologies, IR interpreter LLVM is a collection of libraries and tools that make it easy to build - compilers, optimizers, Just-In-Time code generators, and many other + compilers, optimizers, just-in-time code generators, and many other compiler-related programs. . LLVM uses a single, language-independent virtual instruction set both @@ -327,7 +327,7 @@ Depends: ${shlibs:Depends}, libffi-dev (>= 3.0.9), ${misc:Depends}, llvm-3.3 (= Replaces: llvm (<< 2.2-3) Description: Modular compiler and toolchain technologies, libraries and headers LLVM is a collection of libraries and tools that make it easy to build - compilers, optimizers, Just-In-Time code generators, and many other + compilers, optimizers, just-in-time code generators, and many other compiler-related programs. . LLVM uses a single, language-independent virtual instruction set both @@ -351,7 +351,7 @@ Conflicts: libllvm-ocaml-3.3-dev Provides: ${ocaml:Provides} Description: Modular compiler and toolchain technologies, OCaml bindings LLVM is a collection of libraries and tools that make it easy to build - compilers, optimizers, Just-In-Time code generators, and many other + compilers, optimizers, just-in-time code generators, and many other compiler-related programs. . LLVM uses a single, language-independent virtual instruction set both @@ -370,7 +370,7 @@ Architecture: all Depends: ${misc:Depends}, libjs-jquery, libjs-underscore Description: Modular compiler and toolchain technologies, documentation LLVM is a collection of libraries and tools that make it easy to build - compilers, optimizers, Just-In-Time code generators, and many other + compilers, optimizers, just-in-time code generators, and many other compiler-related programs. . LLVM uses a single, language-independent virtual instruction set both @@ -389,7 +389,7 @@ Architecture: all Depends: ${misc:Depends}, llvm-3.3-dev (>= ${source:Version}), llvm-3.3-dev (<< ${source:Version}+c~) Description: Modular compiler and toolchain technologies, examples LLVM is a collection of libraries and tools that make it easy to build - compilers, optimizers, Just-In-Time code generators, and many other + compilers, optimizers, just-in-time code generators, and many other compiler-related programs. . LLVM uses a single, language-independent virtual instruction set both From e4e11479e742e1e322074dca2efb9c0876c61a1f Mon Sep 17 00:00:00 2001 From: Sylvestre Ledru Date: Mon, 9 Sep 2013 12:33:41 +0000 Subject: [PATCH 05/17] (LLVM no longer mean Low Level Virtual Machine) * Disable the build of lldb under HURD --- debian/changelog | 2 ++ debian/control | 2 +- debian/rules | 30 ++++++++++++++++++++++-------- 3 files changed, 25 insertions(+), 9 deletions(-) diff --git a/debian/changelog b/debian/changelog index 029af5df..259f20c0 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,6 +1,8 @@ llvm-toolchain-3.3 (1:3.3-10) unstable; urgency=low * Update of the description of LLVM packages + (LLVM no longer mean Low Level Virtual Machine) + * Disable the build of lldb under HURD -- diff --git a/debian/control b/debian/control index 3b2dd878..9bc8d5f0 100644 --- a/debian/control +++ b/debian/control @@ -404,7 +404,7 @@ Description: Modular compiler and toolchain technologies, examples extensions to LLVM and in using it to compile code. Package: lldb-3.3 -Architecture: any +Architecture: any [! hurd-any] Depends: ${shlibs:Depends}, ${misc:Depends}, libllvm3.3 (= ${binary:Version}), python, llvm-3.3-dev Pre-Depends: ${misc:Pre-Depends} Replaces: lldb-3.2 diff --git a/debian/rules b/debian/rules index 705752fe..e6a86f18 100755 --- a/debian/rules +++ b/debian/rules @@ -70,6 +70,12 @@ ifneq (,$(filter scan-build,$(DEB_BUILD_OPTIONS))) PRE_CONFIGURE=scan-build endif +LLDB_ARCHS := hurd-i386 +LLDB_ENABLE=yes +ifneq (,$(findstring $(DEB_HOST_ARCH),$(LLDB_ARCHS))) + LLDB_ENABLE=no +endif + %: dh $@ # --buildsystem=cmake --builddirectory=$(TARGET_BUILD) @@ -94,15 +100,18 @@ override_dh_auto_configure: debian/lldb-$(LLVM_VERSION).install debian/lldb-$(LL fi; \ ln -s ../clang .; \ readlink clang; \ - if test -h lldb; then \ - rm lldb; \ - fi; \ - ln -s ../lldb .; \ if test -h polly; then \ rm polly; \ fi; \ - ln -s ../polly .; \ + ln -s ../polly . + if test $(LLDB_ENABLE) = yes; then \ + cd tools/ && \ + if test -h lldb; then \ + rm lldb; \ + fi; \ + ln -s ../lldb .; \ + fi cd projects/ && \ if test -h compiler-rt; then \ @@ -175,7 +184,9 @@ override_dh_auto_install: chrpath -d `find $(CURDIR)/debian/tmp/usr/lib/llvm-$(LLVM_VERSION)/bin/ -type f -executable` mv $(CURDIR)/debian/tmp/usr/lib/llvm-$(LLVM_VERSION)/lib/libLLVM-$(LLVM_VERSION)*.so $(CURDIR)/debian/tmp/usr/lib/llvm-$(LLVM_VERSION)/lib/libLLVM-$(LLVM_VERSION).so.$(SONAME_EXT) - mv $(CURDIR)/debian/tmp/usr/lib/llvm-$(LLVM_VERSION)/lib/liblldb.so $(CURDIR)/debian/tmp/usr/lib/llvm-$(LLVM_VERSION)/lib/liblldb.so.$(SONAME_EXT) + if test $(LLDB_ENABLE) = yes; then \ + mv $(CURDIR)/debian/tmp/usr/lib/llvm-$(LLVM_VERSION)/lib/liblldb.so $(CURDIR)/debian/tmp/usr/lib/llvm-$(LLVM_VERSION)/lib/liblldb.so.$(SONAME_EXT); \ + fi cd debian/tmp/usr/lib/llvm-$(LLVM_VERSION)/lib/ && mv libclang.so libclang.so.$(SONAME_EXT) && ln -s libclang.so.$(SONAME_EXT) libclang.so # cd $(TARGET_BUILD)/tools/clang/runtime/compiler-rt/ && rm -rf $$(find . -iname "SubDir.lib*" -o -iname .dir) && rm -rf $$(find -empty) @@ -250,9 +261,12 @@ override_dh_auto_test: $(MAKE) -C $(TARGET_BUILD) check || true # clang tests cd $(TARGET_BUILD)/ && $(MAKE) -C tools/clang/ test || true + + if test $(LLDB_ENABLE) = yes; then \ # lldb tests - cd $(TARGET_BUILD)/Release/lib/python2.7/site-packages/lldb && if test ! -h _lldb.so -o ! -f _lldb.so; then ln -s ../../../liblldb.so _lldb.so; fi - cd $(TARGET_BUILD)/Release/lib/python2.7/site-packages/lldb && if test ! -h libLLVM-$(LLVM_VERSION).so.$(SONAME_EXT) -o ! -f _lldb.so; then ln -s ../../../libLLVM-$(LLVM_VERSION).so libLLVM-$(LLVM_VERSION).so.$(SONAME_EXT); fi + cd $(TARGET_BUILD)/Release/lib/python2.7/site-packages/lldb && if test ! -h _lldb.so -o ! -f _lldb.so; then ln -s ../../../liblldb.so _lldb.so; fi; \ + cd $(TARGET_BUILD)/Release/lib/python2.7/site-packages/lldb && if test ! -h libLLVM-$(LLVM_VERSION).so.$(SONAME_EXT) -o ! -f _lldb.so; then ln -s ../../../libLLVM-$(LLVM_VERSION).so libLLVM-$(LLVM_VERSION).so.$(SONAME_EXT); fi; \ + fi # cd $(TARGET_BUILD)/ && $(MAKE) -C tools/lldb/test || true # if test -d $(TARGET_BUILD)/tools/lldb/test/lldb-test-traces/; then \ # cat $(TARGET_BUILD)/tools/lldb/test/lldb-test-traces/*; \ From f502cb81d3a1f8944dd40b5c29b054af6e6b869a Mon Sep 17 00:00:00 2001 From: Sylvestre Ledru Date: Mon, 9 Sep 2013 12:37:10 +0000 Subject: [PATCH 06/17] Only hurd has been removed from lldb archs --- debian/control | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/debian/control b/debian/control index 9bc8d5f0..83ff4044 100644 --- a/debian/control +++ b/debian/control @@ -404,7 +404,8 @@ Description: Modular compiler and toolchain technologies, examples extensions to LLVM and in using it to compile code. Package: lldb-3.3 -Architecture: any [! hurd-any] +Architecture: amd64, armel, armhf, i386, ia64, kfreebsd-amd64, kfreebsd-i386, mips, mipsel, powerpc, s390, s390x, sparc, alpha, arm64, hppa, m68k, powerpcspe, ppc64, sh4, sparc64, x32 +# Only hurd has been removed Depends: ${shlibs:Depends}, ${misc:Depends}, libllvm3.3 (= ${binary:Version}), python, llvm-3.3-dev Pre-Depends: ${misc:Pre-Depends} Replaces: lldb-3.2 From 33fcd6b1b496d4994a1e7b19a97b809bcbd6d236 Mon Sep 17 00:00:00 2001 From: Sylvestre Ledru Date: Mon, 9 Sep 2013 12:38:10 +0000 Subject: [PATCH 07/17] fix the syntax .... --- debian/control | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/debian/control b/debian/control index 83ff4044..d31f7444 100644 --- a/debian/control +++ b/debian/control @@ -404,7 +404,7 @@ Description: Modular compiler and toolchain technologies, examples extensions to LLVM and in using it to compile code. Package: lldb-3.3 -Architecture: amd64, armel, armhf, i386, ia64, kfreebsd-amd64, kfreebsd-i386, mips, mipsel, powerpc, s390, s390x, sparc, alpha, arm64, hppa, m68k, powerpcspe, ppc64, sh4, sparc64, x32 +Architecture: amd64 armel armhf i386 ia64 kfreebsd-amd64 kfreebsd-i386 mips mipsel powerpc s390 s390x sparc alpha arm64 hppa m68k powerpcspe ppc64 sh4 sparc64 x32 # Only hurd has been removed Depends: ${shlibs:Depends}, ${misc:Depends}, libllvm3.3 (= ${binary:Version}), python, llvm-3.3-dev Pre-Depends: ${misc:Pre-Depends} From 58e5da232081484694e4e1ddad60987e37cc47ef Mon Sep 17 00:00:00 2001 From: Sylvestre Ledru Date: Mon, 9 Sep 2013 14:20:52 +0000 Subject: [PATCH 08/17] fix the syntax --- debian/rules | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/debian/rules b/debian/rules index e6a86f18..df48a259 100755 --- a/debian/rules +++ b/debian/rules @@ -262,8 +262,8 @@ override_dh_auto_test: # clang tests cd $(TARGET_BUILD)/ && $(MAKE) -C tools/clang/ test || true - if test $(LLDB_ENABLE) = yes; then \ # lldb tests + if test $(LLDB_ENABLE) = yes; then \ cd $(TARGET_BUILD)/Release/lib/python2.7/site-packages/lldb && if test ! -h _lldb.so -o ! -f _lldb.so; then ln -s ../../../liblldb.so _lldb.so; fi; \ cd $(TARGET_BUILD)/Release/lib/python2.7/site-packages/lldb && if test ! -h libLLVM-$(LLVM_VERSION).so.$(SONAME_EXT) -o ! -f _lldb.so; then ln -s ../../../libLLVM-$(LLVM_VERSION).so libLLVM-$(LLVM_VERSION).so.$(SONAME_EXT); fi; \ fi From 2f8839dd19677ada5a9ac936a12da69214ab0b33 Mon Sep 17 00:00:00 2001 From: Sylvestre Ledru Date: Mon, 9 Sep 2013 15:28:05 +0000 Subject: [PATCH 09/17] we are already in the correct path --- debian/rules | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/debian/rules b/debian/rules index df48a259..c227fa38 100755 --- a/debian/rules +++ b/debian/rules @@ -265,7 +265,7 @@ override_dh_auto_test: # lldb tests if test $(LLDB_ENABLE) = yes; then \ cd $(TARGET_BUILD)/Release/lib/python2.7/site-packages/lldb && if test ! -h _lldb.so -o ! -f _lldb.so; then ln -s ../../../liblldb.so _lldb.so; fi; \ - cd $(TARGET_BUILD)/Release/lib/python2.7/site-packages/lldb && if test ! -h libLLVM-$(LLVM_VERSION).so.$(SONAME_EXT) -o ! -f _lldb.so; then ln -s ../../../libLLVM-$(LLVM_VERSION).so libLLVM-$(LLVM_VERSION).so.$(SONAME_EXT); fi; \ + if test ! -h libLLVM-$(LLVM_VERSION).so.$(SONAME_EXT) -o ! -f _lldb.so; then ln -s ../../../libLLVM-$(LLVM_VERSION).so libLLVM-$(LLVM_VERSION).so.$(SONAME_EXT); fi; \ fi # cd $(TARGET_BUILD)/ && $(MAKE) -C tools/lldb/test || true # if test -d $(TARGET_BUILD)/tools/lldb/test/lldb-test-traces/; then \ From 6d6fb79caf608adda95b52d73b328d103d49f4ca Mon Sep 17 00:00:00 2001 From: Sylvestre Ledru Date: Fri, 20 Sep 2013 16:26:55 +0000 Subject: [PATCH 10/17] Ship the lldb headers into lldb-X.Y-dev (Closes: #723743) I might create a liblldb-X.Y library at some point but I think it is too early. --- debian/changelog | 5 +++- debian/control | 11 ++++++++ debian/lldb-3.3-dev.install | 1 + debian/patches/lldb-install-headers.diff | 33 ++++++++++++++++++++++++ debian/patches/series | 1 + debian/rules | 6 ++--- 6 files changed, 53 insertions(+), 4 deletions(-) create mode 100644 debian/lldb-3.3-dev.install create mode 100644 debian/patches/lldb-install-headers.diff diff --git a/debian/changelog b/debian/changelog index 259f20c0..785bc962 100644 --- a/debian/changelog +++ b/debian/changelog @@ -3,8 +3,11 @@ llvm-toolchain-3.3 (1:3.3-10) unstable; urgency=low * Update of the description of LLVM packages (LLVM no longer mean Low Level Virtual Machine) * Disable the build of lldb under HURD + * Ship the lldb headers into lldb-X.Y-dev (Closes: #723743) + I might create a liblldb-X.Y library at some point but I think it is too + early. - -- + -- Sylvestre Ledru Mon, 09 Sep 2013 14:35:08 +0200 llvm-toolchain-3.3 (1:3.3-9) unstable; urgency=low diff --git a/debian/control b/debian/control index d31f7444..66cddd7d 100644 --- a/debian/control +++ b/debian/control @@ -414,3 +414,14 @@ Description: Next generation, high-performance debugger LLDB is a next generation, high-performance debugger. It is built as a set of reusable components which highly leverage existing libraries in the larger LLVM Project, such as the Clang expression parser and LLVM disassembler. + +Package: lldb-3.3-dev +Architecture: any +Depends: ${shlibs:Depends}, ${misc:Depends}, lldb-3.3 (= ${binary:Version}) +Pre-Depends: ${misc:Pre-Depends} +Description: Next generation, high-performance debugger - Header files + LLDB is a next generation, high-performance debugger. It is built as a set of + reusable components which highly leverage existing libraries in the larger LLVM + Project, such as the Clang expression parser and LLVM disassembler. + . + This package provides the header files to build extension over lldb. diff --git a/debian/lldb-3.3-dev.install b/debian/lldb-3.3-dev.install new file mode 100644 index 00000000..39eaa797 --- /dev/null +++ b/debian/lldb-3.3-dev.install @@ -0,0 +1 @@ +/usr/lib/llvm-3.3/include/lldb diff --git a/debian/patches/lldb-install-headers.diff b/debian/patches/lldb-install-headers.diff new file mode 100644 index 00000000..df332558 --- /dev/null +++ b/debian/patches/lldb-install-headers.diff @@ -0,0 +1,33 @@ +Index: llvm-toolchain-3.3-3.3/lldb/include/lldb/Makefile +=================================================================== +--- llvm-toolchain-3.3-3.3.orig/lldb/include/lldb/Makefile (révision 191067) ++++ llvm-toolchain-3.3-3.3/lldb/include/lldb/Makefile (copie de travail) +@@ -4,11 +4,11 @@ + include $(LEVEL)/Makefile.common + + install-local:: +- $(Echo) Installing Clang include files ++ $(Echo) Installing LLDB include files + $(Verb) $(MKDIR) $(DESTDIR)$(PROJ_includedir) +- $(Verb) if test -d "$(PROJ_SRC_ROOT)/tools/clang/include/clang" ; then \ +- cd $(PROJ_SRC_ROOT)/tools/clang/include && \ +- for hdr in `find clang -type f '!' '(' -name '*~' \ ++ $(Verb) if test -d "$(PROJ_SRC_ROOT)/tools/lldb/include/lldb" ; then \ ++ cd $(PROJ_SRC_ROOT)/tools/lldb/include && \ ++ for hdr in `find lldb -type f '!' '(' -name '*~' \ + -o -name '.#*' -o -name '*.in' -o -name '*.txt' \ + -o -name 'Makefile' -o -name '*.td' -o -name '*.orig' ')' -print \ + | grep -v CVS | grep -v .svn | grep -v .dir` ; do \ +@@ -21,9 +21,9 @@ + done ; \ + fi + ifneq ($(PROJ_SRC_ROOT),$(PROJ_OBJ_ROOT)) +- $(Verb) if test -d "$(PROJ_OBJ_ROOT)/tools/clang/include/clang" ; then \ +- cd $(PROJ_OBJ_ROOT)/tools/clang/include && \ +- for hdr in `find clang -type f '!' '(' -name 'Makefile' ')' -print \ ++ $(Verb) if test -d "$(PROJ_OBJ_ROOT)/tools/lldb/include/lldb" ; then \ ++ cd $(PROJ_OBJ_ROOT)/tools/lldb/include && \ ++ for hdr in `find lldb -type f '!' '(' -name 'Makefile' ')' -print \ + | grep -v CVS | grep -v .tmp | grep -v .dir` ; do \ + $(DataInstall) $$hdr $(DESTDIR)$(PROJ_includedir)/$$hdr ; \ + done ; \ diff --git a/debian/patches/series b/debian/patches/series index 1d2eb3d5..e784c0de 100644 --- a/debian/patches/series +++ b/debian/patches/series @@ -35,3 +35,4 @@ libprofile_rt_sparc.patch lldb-hurd.diff libstdc++-header-i386.diff kfreebsd_target_info_clang33.diff +lldb-install-headers.diff diff --git a/debian/rules b/debian/rules index c227fa38..28f59a41 100755 --- a/debian/rules +++ b/debian/rules @@ -105,12 +105,12 @@ override_dh_auto_configure: debian/lldb-$(LLVM_VERSION).install debian/lldb-$(LL fi; \ ln -s ../polly . - if test $(LLDB_ENABLE) = yes; then \ + if test $(LLDB_ENABLE) = yes; then \ cd tools/ && \ if test -h lldb; then \ rm lldb; \ fi; \ - ln -s ../lldb .; \ + ln -s ../lldb .; \ fi cd projects/ && \ @@ -176,7 +176,7 @@ build_doc: for f in llvm-dwarfdump llvm-mc llvm-mcmarkup llvm-objdump llvm-rtdyld llvm-size llvm-tblgen macho-dump lldb clang-format cpp11-migrate; do \ help2man --version-string=$(LLVM_VERSION) $(TARGET_BUILD)/Release/bin/$$f > debian/man/$$f-$(LLVM_VERSION).1; \ - done + done override_dh_auto_install: $(MAKE) -C $(TARGET_BUILD) VERBOSE=1 install DESTDIR=$(CURDIR)/debian/tmp/ From 88b38540d6b6f40b293eb1368292069bf8117bfc Mon Sep 17 00:00:00 2001 From: Sylvestre Ledru Date: Wed, 25 Sep 2013 16:24:06 +0000 Subject: [PATCH 11/17] Fix "cannot compile this atomic library call" Thanks to Francisco Facioni for the refresh (Closes: #705115) --- debian/changelog | 2 ++ debian/patches/atomic_library_1.diff | 45 ++++++++++++++++++++++++++++ debian/patches/atomic_library_2.diff | 42 ++++++++++++++++++++++++++ debian/patches/series | 2 ++ 4 files changed, 91 insertions(+) create mode 100644 debian/patches/atomic_library_1.diff create mode 100644 debian/patches/atomic_library_2.diff diff --git a/debian/changelog b/debian/changelog index 785bc962..5fa20a13 100644 --- a/debian/changelog +++ b/debian/changelog @@ -6,6 +6,8 @@ llvm-toolchain-3.3 (1:3.3-10) unstable; urgency=low * Ship the lldb headers into lldb-X.Y-dev (Closes: #723743) I might create a liblldb-X.Y library at some point but I think it is too early. + * Fix "cannot compile this atomic library call" + Thanks to Francisco Facioni for the refresh (Closes: #705115) -- Sylvestre Ledru Mon, 09 Sep 2013 14:35:08 +0200 diff --git a/debian/patches/atomic_library_1.diff b/debian/patches/atomic_library_1.diff new file mode 100644 index 00000000..9c3b85d6 --- /dev/null +++ b/debian/patches/atomic_library_1.diff @@ -0,0 +1,45 @@ +Index: llvm-toolchain-3.3-3.3/clang/lib/Basic/Targets.cpp +=================================================================== +--- llvm-toolchain-3.3-3.3.orig/clang/lib/Basic/Targets.cpp 2013-09-25 18:22:44.000000000 +0200 ++++ llvm-toolchain-3.3-3.3/clang/lib/Basic/Targets.cpp 2013-09-25 18:22:44.000000000 +0200 +@@ -3579,6 +3579,20 @@ + return Version >= 7; + } + ++ static bool shouldUseInlineAtomic(const llvm::Triple &T) { ++ // On linux, binaries targeting old cpus call functions in libgcc to ++ // perform atomic operations. The implementation in libgcc then calls into ++ // the kernel which on armv6 and newer uses ldrex and strex. The net result ++ // is that if we assume the kernel is at least as recent as the hardware, ++ // it is safe to use atomic instructions on armv6 and newer. ++ if (T.getOS() != llvm::Triple::Linux) ++ return false; ++ StringRef ArchName = T.getArchName(); ++ if (ArchName.startswith("armv6") || ArchName.startswith("armv7")) ++ return true; ++ return false; ++ } ++ + public: + ARMTargetInfo(const std::string &TripleStr) + : TargetInfo(TripleStr), ABI("aapcs-linux"), CPU("arm1136j-s"), IsAAPCS(true) +Index: llvm-toolchain-3.3-3.3/clang/test/CodeGen/linux-arm-atomic.c +=================================================================== +--- llvm-toolchain-3.3-3.3.orig/clang/test/CodeGen/linux-arm-atomic.c 2013-09-25 18:22:44.000000000 +0200 ++++ llvm-toolchain-3.3-3.3/clang/test/CodeGen/linux-arm-atomic.c 2013-09-25 18:22:44.000000000 +0200 +@@ -1,5 +1,15 @@ + // RUN: %clang_cc1 %s -emit-llvm -o - -triple=armv7-unknown-linux | FileCheck %s + // RUN: %clang_cc1 %s -emit-llvm -o - -triple=armv6-unknown-linux | FileCheck %s ++ ++typedef int _Atomic_word; ++_Atomic_word exchange_and_add(volatile _Atomic_word *__mem, int __val) { ++ return __atomic_fetch_add(__mem, __val, __ATOMIC_ACQ_REL); ++} ++ ++// CHECK: define {{.*}} @exchange_and_add ++// CHECK: atomicrmw {{.*}} add ++// RUN: %clang_cc1 %s -emit-llvm -o - -triple=armv7-unknown-linux | FileCheck %s ++// RUN: %clang_cc1 %s -emit-llvm -o - -triple=armv6-unknown-linux | FileCheck %s + // RUN: %clang_cc1 %s -emit-llvm -o - -triple=thumbv7-unknown-linux | FileCheck %s + + typedef int _Atomic_word; diff --git a/debian/patches/atomic_library_2.diff b/debian/patches/atomic_library_2.diff new file mode 100644 index 00000000..35efe244 --- /dev/null +++ b/debian/patches/atomic_library_2.diff @@ -0,0 +1,42 @@ +Index: llvm-toolchain-3.3-3.3/clang/test/CodeGen/linux-arm-atomic.c +=================================================================== +--- llvm-toolchain-3.3-3.3.orig/clang/test/CodeGen/linux-arm-atomic.c 2013-09-25 18:23:43.000000000 +0200 ++++ llvm-toolchain-3.3-3.3/clang/test/CodeGen/linux-arm-atomic.c 2013-09-25 18:23:42.000000000 +0200 +@@ -1,5 +1,6 @@ + // RUN: %clang_cc1 %s -emit-llvm -o - -triple=armv7-unknown-linux | FileCheck %s + // RUN: %clang_cc1 %s -emit-llvm -o - -triple=armv6-unknown-linux | FileCheck %s ++// RUN: %clang_cc1 %s -emit-llvm -o - -triple=thumbv7-unknown-linux | FileCheck %s + + typedef int _Atomic_word; + _Atomic_word exchange_and_add(volatile _Atomic_word *__mem, int __val) { +Index: llvm-toolchain-3.3-3.3/clang/lib/Basic/Targets.cpp +=================================================================== +--- llvm-toolchain-3.3-3.3.orig/clang/lib/Basic/Targets.cpp 2013-09-25 18:23:43.000000000 +0200 ++++ llvm-toolchain-3.3-3.3/clang/lib/Basic/Targets.cpp 2013-09-25 18:23:42.000000000 +0200 +@@ -3588,9 +3588,23 @@ + if (T.getOS() != llvm::Triple::Linux) + return false; + StringRef ArchName = T.getArchName(); +- if (ArchName.startswith("armv6") || ArchName.startswith("armv7")) +- return true; +- return false; ++ if (T.getArch() == llvm::Triple::arm) { ++ if (!ArchName.startswith("armv")) ++ return false; ++ StringRef VersionStr = ArchName.substr(4); ++ unsigned Version; ++ if (VersionStr.getAsInteger(10, Version)) ++ return false; ++ return Version >= 6; ++ } ++ assert(T.getArch() == llvm::Triple::thumb); ++ if (!ArchName.startswith("thumbv")) ++ return false; ++ StringRef VersionStr = ArchName.substr(6); ++ unsigned Version; ++ if (VersionStr.getAsInteger(10, Version)) ++ return false; ++ return Version >= 7; + } + + public: diff --git a/debian/patches/series b/debian/patches/series index e784c0de..7e54c41e 100644 --- a/debian/patches/series +++ b/debian/patches/series @@ -36,3 +36,5 @@ lldb-hurd.diff libstdc++-header-i386.diff kfreebsd_target_info_clang33.diff lldb-install-headers.diff +atomic_library_1.diff +atomic_library_2.diff From 1464e547e8b265992635a13fd5c8ffc335f2da90 Mon Sep 17 00:00:00 2001 From: Sylvestre Ledru Date: Wed, 9 Oct 2013 16:51:57 +0000 Subject: [PATCH 12/17] * Install libclang.so in /usr/lib/*/libclang-3.3.so * Install libclang.so.1 in /usr/lib/*/libclang-3.3.so.1 --- debian/changelog | 2 ++ debian/libclang-3.3-dev.links.in | 2 ++ debian/libclang1-3.3.links.in | 1 + debian/rules | 3 ++- 4 files changed, 7 insertions(+), 1 deletion(-) create mode 100644 debian/libclang-3.3-dev.links.in create mode 100644 debian/libclang1-3.3.links.in diff --git a/debian/changelog b/debian/changelog index 5fa20a13..74bf4ffa 100644 --- a/debian/changelog +++ b/debian/changelog @@ -8,6 +8,8 @@ llvm-toolchain-3.3 (1:3.3-10) unstable; urgency=low early. * Fix "cannot compile this atomic library call" Thanks to Francisco Facioni for the refresh (Closes: #705115) + * Install libclang.so in /usr/lib/*/libclang-3.3.so + * Install libclang.so.1 in /usr/lib/*/libclang-3.3.so.1 -- Sylvestre Ledru Mon, 09 Sep 2013 14:35:08 +0200 diff --git a/debian/libclang-3.3-dev.links.in b/debian/libclang-3.3-dev.links.in new file mode 100644 index 00000000..61b62dab --- /dev/null +++ b/debian/libclang-3.3-dev.links.in @@ -0,0 +1,2 @@ +usr/lib/llvm-3.3/lib/libclang.so /usr/lib/@DEB_HOST_MULTIARCH@/libclang-3.3.so + diff --git a/debian/libclang1-3.3.links.in b/debian/libclang1-3.3.links.in new file mode 100644 index 00000000..38f6f61a --- /dev/null +++ b/debian/libclang1-3.3.links.in @@ -0,0 +1 @@ +usr/lib/llvm-3.3/lib/libclang.so.1 /usr/lib/@DEB_HOST_MULTIARCH@/libclang-3.3.so.1 diff --git a/debian/rules b/debian/rules index 28f59a41..01fca85d 100755 --- a/debian/rules +++ b/debian/rules @@ -83,7 +83,8 @@ endif debian/%: debian/%.in sed -e 's|@DEB_HOST_MULTIARCH@|$(DEB_HOST_MULTIARCH)|g' -e "s|@OCAML_STDLIB_DIR@|$(OCAML_STDLIB_DIR)|g" -e "s|@LLVM_VERSION@|$(LLVM_VERSION)|g" $< > $@ -override_dh_auto_configure: debian/lldb-$(LLVM_VERSION).install debian/lldb-$(LLVM_VERSION).links debian/libllvm$(LLVM_VERSION).install debian/llvm-$(LLVM_VERSION)-dev.links debian/libllvm-$(LLVM_VERSION)-ocaml-dev.install debian/libllvm-$(LLVM_VERSION)-ocaml-dev.dirs debian/llvm-$(LLVM_VERSION)-runtime.binfmt debian/llvm-$(LLVM_VERSION)-runtime.prerm debian/pollycc +override_dh_auto_configure: debian/lldb-$(LLVM_VERSION).install debian/lldb-$(LLVM_VERSION).links debian/libllvm$(LLVM_VERSION).install debian/llvm-$(LLVM_VERSION)-dev.links debian/libllvm-$(LLVM_VERSION)-ocaml-dev.install debian/libllvm-$(LLVM_VERSION)-ocaml-dev.dirs debian/llvm-$(LLVM_VERSION)-runtime.binfmt debian/llvm-$(LLVM_VERSION)-runtime.prerm debian/libclang-$(LLVM_VERSION)-dev.links debian/libclang1-$(LLVM_VERSION).links debian/pollycc + exit echo "Using gcc: " $(CC) -v mkdir -p $(TARGET_BUILD) From 4d92b90575ebc9d80df107ea9f51b6f239c3aa8a Mon Sep 17 00:00:00 2001 From: Sylvestre Ledru Date: Wed, 9 Oct 2013 17:26:27 +0000 Subject: [PATCH 13/17] * Also ship the python clang binding (python-clang-3.3) --- debian/control | 12 ++++++++++++ debian/patches/python-clangpath.diff | 13 +++++++++++++ debian/python-clang-3.3.install | 1 + 3 files changed, 26 insertions(+) create mode 100644 debian/patches/python-clangpath.diff create mode 100644 debian/python-clang-3.3.install diff --git a/debian/control b/debian/control index 66cddd7d..e8e3f9fe 100644 --- a/debian/control +++ b/debian/control @@ -240,6 +240,17 @@ Description: clang library - Common development package This package contains the clang generic headers and some libraries (profiling, etc). + + +Package: python-clang-3.3 +Architecture: any +Depends: ${shlibs:Depends}, ${misc:Depends}, python +Replaces: python-clang-3.4 +Breaks: python-clang-3.4 +Description: Clang Python Bindings + This binding package provides access to the Clang compiler and libraries. + + Package: libllvm3.3 Architecture: any Section: libs @@ -253,6 +264,7 @@ Description: Modular compiler and toolchain technologies, runtime library . This package contains the LLVM runtime library. + Package: libllvm3.3-dbg Architecture: any Section: debug diff --git a/debian/patches/python-clangpath.diff b/debian/patches/python-clangpath.diff new file mode 100644 index 00000000..2125a552 --- /dev/null +++ b/debian/patches/python-clangpath.diff @@ -0,0 +1,13 @@ +Index: llvm-toolchain-3.3-3.3/clang/bindings/python/clang/cindex.py +=================================================================== +--- llvm-toolchain-3.3-3.3.orig/clang/bindings/python/clang/cindex.py 2013-04-21 20:35:51.000000000 +0200 ++++ llvm-toolchain-3.3-3.3/clang/bindings/python/clang/cindex.py 2013-10-09 19:18:15.000000000 +0200 +@@ -3197,7 +3197,7 @@ + elif name == 'Windows': + file = 'libclang.dll' + else: +- file = 'libclang.so' ++ file = 'libclang-3.3.so' + + if Config.library_path: + file = Config.library_path + '/' + file diff --git a/debian/python-clang-3.3.install b/debian/python-clang-3.3.install new file mode 100644 index 00000000..b5494214 --- /dev/null +++ b/debian/python-clang-3.3.install @@ -0,0 +1 @@ +tools/clang/bindings/python/clang/ /usr/lib/python2.7/dist-packages/ From 44f860ad0f0dcf450904b5eb64b0ee30770caa0c Mon Sep 17 00:00:00 2001 From: Sylvestre Ledru Date: Wed, 9 Oct 2013 17:26:34 +0000 Subject: [PATCH 14/17] remove old artefact --- debian/rules | 1 - 1 file changed, 1 deletion(-) diff --git a/debian/rules b/debian/rules index 01fca85d..8ca6a48f 100755 --- a/debian/rules +++ b/debian/rules @@ -84,7 +84,6 @@ debian/%: debian/%.in sed -e 's|@DEB_HOST_MULTIARCH@|$(DEB_HOST_MULTIARCH)|g' -e "s|@OCAML_STDLIB_DIR@|$(OCAML_STDLIB_DIR)|g" -e "s|@LLVM_VERSION@|$(LLVM_VERSION)|g" $< > $@ override_dh_auto_configure: debian/lldb-$(LLVM_VERSION).install debian/lldb-$(LLVM_VERSION).links debian/libllvm$(LLVM_VERSION).install debian/llvm-$(LLVM_VERSION)-dev.links debian/libllvm-$(LLVM_VERSION)-ocaml-dev.install debian/libllvm-$(LLVM_VERSION)-ocaml-dev.dirs debian/llvm-$(LLVM_VERSION)-runtime.binfmt debian/llvm-$(LLVM_VERSION)-runtime.prerm debian/libclang-$(LLVM_VERSION)-dev.links debian/libclang1-$(LLVM_VERSION).links debian/pollycc - exit echo "Using gcc: " $(CC) -v mkdir -p $(TARGET_BUILD) From 597b73316a7a8c47ffd6d34615860f574ea83bfb Mon Sep 17 00:00:00 2001 From: Sylvestre Ledru Date: Wed, 9 Oct 2013 17:27:03 +0000 Subject: [PATCH 15/17] Fix a FTBFS with a duplicate declaration of shouldUseInlineAtomic --- .../patches/removeduplicatedeclaration.diff | 38 +++++++++++++++++++ debian/patches/series | 2 + 2 files changed, 40 insertions(+) create mode 100644 debian/patches/removeduplicatedeclaration.diff diff --git a/debian/patches/removeduplicatedeclaration.diff b/debian/patches/removeduplicatedeclaration.diff new file mode 100644 index 00000000..c9039383 --- /dev/null +++ b/debian/patches/removeduplicatedeclaration.diff @@ -0,0 +1,38 @@ +Index: llvm-toolchain-3.3-3.3/clang/lib/Basic/Targets.cpp +=================================================================== +--- llvm-toolchain-3.3-3.3.orig/clang/lib/Basic/Targets.cpp 2013-10-09 15:36:51.000000000 +0200 ++++ llvm-toolchain-3.3-3.3/clang/lib/Basic/Targets.cpp 2013-10-09 17:04:58.000000000 +0200 +@@ -3579,33 +3579,6 @@ + return Version >= 7; + } + +- static bool shouldUseInlineAtomic(const llvm::Triple &T) { +- // On linux, binaries targeting old cpus call functions in libgcc to +- // perform atomic operations. The implementation in libgcc then calls into +- // the kernel which on armv6 and newer uses ldrex and strex. The net result +- // is that if we assume the kernel is at least as recent as the hardware, +- // it is safe to use atomic instructions on armv6 and newer. +- if (T.getOS() != llvm::Triple::Linux) +- return false; +- StringRef ArchName = T.getArchName(); +- if (T.getArch() == llvm::Triple::arm) { +- if (!ArchName.startswith("armv")) +- return false; +- StringRef VersionStr = ArchName.substr(4); +- unsigned Version; +- if (VersionStr.getAsInteger(10, Version)) +- return false; +- return Version >= 6; +- } +- assert(T.getArch() == llvm::Triple::thumb); +- if (!ArchName.startswith("thumbv")) +- return false; +- StringRef VersionStr = ArchName.substr(6); +- unsigned Version; +- if (VersionStr.getAsInteger(10, Version)) +- return false; +- return Version >= 7; +- } + + public: + ARMTargetInfo(const std::string &TripleStr) diff --git a/debian/patches/series b/debian/patches/series index 7e54c41e..7b5381db 100644 --- a/debian/patches/series +++ b/debian/patches/series @@ -38,3 +38,5 @@ kfreebsd_target_info_clang33.diff lldb-install-headers.diff atomic_library_1.diff atomic_library_2.diff +removeduplicatedeclaration.diff +python-clangpath.diff From 2639149703f6ef055fa5c5212dc84d20634e4153 Mon Sep 17 00:00:00 2001 From: Sylvestre Ledru Date: Wed, 9 Oct 2013 17:27:12 +0000 Subject: [PATCH 16/17] update of the changelog --- debian/changelog | 2 ++ 1 file changed, 2 insertions(+) diff --git a/debian/changelog b/debian/changelog index 74bf4ffa..a059250d 100644 --- a/debian/changelog +++ b/debian/changelog @@ -10,6 +10,8 @@ llvm-toolchain-3.3 (1:3.3-10) unstable; urgency=low Thanks to Francisco Facioni for the refresh (Closes: #705115) * Install libclang.so in /usr/lib/*/libclang-3.3.so * Install libclang.so.1 in /usr/lib/*/libclang-3.3.so.1 + * Also ship the python clang binding (python-clang-3.3) + * Fix a FTBFS with a duplicate declaration of shouldUseInlineAtomic -- Sylvestre Ledru Mon, 09 Sep 2013 14:35:08 +0200 From 4108b6cc992275ed4460d3af128339c10e879dac Mon Sep 17 00:00:00 2001 From: Sylvestre Ledru Date: Thu, 10 Oct 2013 10:38:18 +0000 Subject: [PATCH 17/17] Update the build dependency from tcl8.5 to tcl (Closes: #725953) --- debian/changelog | 1 + debian/control | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/debian/changelog b/debian/changelog index a059250d..9f90fcb5 100644 --- a/debian/changelog +++ b/debian/changelog @@ -12,6 +12,7 @@ llvm-toolchain-3.3 (1:3.3-10) unstable; urgency=low * Install libclang.so.1 in /usr/lib/*/libclang-3.3.so.1 * Also ship the python clang binding (python-clang-3.3) * Fix a FTBFS with a duplicate declaration of shouldUseInlineAtomic + * Update the build dependency from tcl8.5 to tcl (Closes: #725953) -- Sylvestre Ledru Mon, 09 Sep 2013 14:35:08 +0200 diff --git a/debian/control b/debian/control index e8e3f9fe..47dedff4 100644 --- a/debian/control +++ b/debian/control @@ -3,7 +3,7 @@ Section: devel Priority: optional Maintainer: LLVM Packaging Team Uploaders: Sylvestre Ledru -Build-Depends: debhelper (>= 9.0), flex, bison, dejagnu, tcl8.5, expect, +Build-Depends: debhelper (>= 9.0), flex, bison, dejagnu, tcl, expect, autoconf, automake1.9, perl, libtool, doxygen, chrpath, texinfo, sharutils, autotools-dev (>= 20060702.1), libffi-dev (>= 3.0.9), lsb-release, patchutils, diffstat, xz-utils, chrpath, python-dev,