diff --git a/debian/changelog b/debian/changelog index 845515cf..c8de7f9c 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,5 +1,8 @@ llvm-toolchain-snapshot (1:3.9~svn260851-2) UNRELEASED; urgency=medium + [ Ed Schouten ] + * Add the support of lld (Closes: #TODO) + * Remove the autoconf section * Bring back the removal of the build dir * Fix the coverage builds (didn't allow several cflags) diff --git a/debian/control b/debian/control index 3800b6b9..a01481a3 100644 --- a/debian/control +++ b/debian/control @@ -349,6 +349,60 @@ Description: Modular compiler and toolchain technologies, examples extensions to LLVM and in using it to compile code. +# ------------- lld ------------- + +Package: lld-3.9 +Architecture: amd64 armel armhf i386 kfreebsd-amd64 kfreebsd-i386 s390 sparc alpha hppa m68k powerpcspe ppc64 sh4 sparc64 x32 mips mipsel +# ia64 mips mipsel hurd powerpc ppc64el have been removed +Depends: ${shlibs:Depends}, ${misc:Depends}, libllvm3.9 (= ${binary:Version}), llvm-3.9-dev +Pre-Depends: ${misc:Pre-Depends} +Description: LLVM-based linker + LLD is a new, high-performance linker. It is built as a set of reusable + components which highly leverage existing libraries in the larger LLVM + Project. + +Package: liblld-3.9 +Architecture: amd64 armel armhf i386 kfreebsd-amd64 kfreebsd-i386 s390 sparc alpha hppa m68k powerpcspe ppc64 sh4 sparc64 x32 mips mipsel +# ia64 mips mipsel hurd powerpc ppc64el have been removed +Depends: ${shlibs:Depends}, ${misc:Depends}, libllvm3.9 (= ${binary:Version}) +Pre-Depends: ${misc:Pre-Depends} +Section: libs +Description: LLVM-based linker, library + LLD is a new, high-performance linker. It is built as a set of reusable + components which highly leverage existing libraries in the larger LLVM + Project. + . + This package contains the LLD runtime library. + +Package: liblld-3.9-dbg +Architecture: amd64 armel armhf i386 kfreebsd-amd64 kfreebsd-i386 s390 sparc hppa m68k powerpcspe ppc64 sh4 sparc64 x32 mips mipsel +# ia64 mips mipsel hurd ppc64el alpha s390x powerpc have been removed +Depends: ${shlibs:Depends}, ${misc:Depends}, liblld-3.9 (= ${binary:Version}) +Pre-Depends: ${misc:Pre-Depends} +Section: debug +Priority: extra +Description: LLVM-based linker, debugging libraries + LLD is a new, high-performance linker. It is built as a set of reusable + components which highly leverage existing libraries in the larger LLVM + Project. + . + This package contains the LLD runtime library debug symbols. + + +Package: liblld-3.9-dev +Section: libdevel +Architecture: amd64 armel armhf i386 kfreebsd-amd64 kfreebsd-i386 s390 sparc alpha hppa m68k powerpcspe ppc64 sh4 sparc64 x32 mips mipsel +# ia64 mips mipsel hurd powerpc ppc64el have been removed +Depends: ${shlibs:Depends}, ${misc:Depends}, lld-3.9 (= ${binary:Version}) +Pre-Depends: ${misc:Pre-Depends} +Description: LLVM-based linker, header files + LLD is a new, high-performance linker. It is built as a set of reusable + components which highly leverage existing libraries in the larger LLVM + Project. + . + This package provides the header files to build extension over lld. + + # ------------- lldb ------------- Package: lldb-3.9 @@ -414,7 +468,7 @@ Depends: ${shlibs:Depends}, ${misc:Depends}, lldb-3.9 (= ${binary:Version}) Replaces: lldb-3.9-dev (<= 1:3.9~svn215195-2) Breaks: lldb-3.9-dev (<< 1:3.9~svn215195-2) Pre-Depends: ${misc:Pre-Depends} -Description: Next generation, high-performance debugger - Header files +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. diff --git a/debian/liblld-X.Y-dev.install.in b/debian/liblld-X.Y-dev.install.in new file mode 100644 index 00000000..bc72984b --- /dev/null +++ b/debian/liblld-X.Y-dev.install.in @@ -0,0 +1,3 @@ +/usr/lib/llvm-@LLVM_VERSION@/include/lld +/usr/lib/llvm-@LLVM_VERSION@/lib/liblld*a +/usr/lib/llvm-@LLVM_VERSION@/lib/liblld*so diff --git a/debian/liblld-X.Y.install.in b/debian/liblld-X.Y.install.in new file mode 100644 index 00000000..cce94ba0 --- /dev/null +++ b/debian/liblld-X.Y.install.in @@ -0,0 +1 @@ + #usr/lib/llvm-@LLVM_VERSION@/lib/liblld-@LLVM_VERSION@.so.1 /usr/lib/@DEB_HOST_MULTIARCH@/ diff --git a/debian/liblld-X.Y.links.in b/debian/liblld-X.Y.links.in new file mode 100644 index 00000000..b9b629f8 --- /dev/null +++ b/debian/liblld-X.Y.links.in @@ -0,0 +1,3 @@ +usr/lib/@DEB_HOST_MULTIARCH@/liblld-@LLVM_VERSION@.so.1 usr/lib/@DEB_HOST_MULTIARCH@/liblld-@LLVM_VERSION@.so +usr/lib/@DEB_HOST_MULTIARCH@/liblld-@LLVM_VERSION@.so usr/lib/python2.7/dist-packages/lld-@LLVM_VERSION@/_lld.so +usr/lib/@DEB_HOST_MULTIARCH@/liblld-@LLVM_VERSION@.so.1 usr/lib/llvm-@LLVM_VERSION@/lib/liblld.so.1 diff --git a/debian/lld-X.Y.install.in b/debian/lld-X.Y.install.in new file mode 100644 index 00000000..cb3adaf2 --- /dev/null +++ b/debian/lld-X.Y.install.in @@ -0,0 +1,6 @@ +usr/lib/llvm-@LLVM_VERSION@/bin/ld.lld* +usr/lib/llvm-@LLVM_VERSION@/bin/lld* + +usr/bin/lld-link-@LLVM_VERSION@ +usr/bin/ld.lld-@LLVM_VERSION@ +usr/bin/lld-@LLVM_VERSION@* diff --git a/debian/orig-tar.sh b/debian/orig-tar.sh index 6d174acd..2e04c0eb 100755 --- a/debian/orig-tar.sh +++ b/debian/orig-tar.sh @@ -3,6 +3,7 @@ # llvm-toolchain-snapshot-3.2_3.2repack.orig-clang.tar.bz2 # llvm-toolchain-snapshot-3.2_3.2repack.orig-clang-extra.tar.bz2 # llvm-toolchain-snapshot-3.2_3.2repack.orig-compiler-rt.tar.bz2 +# llvm-toolchain-snapshot-3.2_3.2repack.orig-lld.tar.bz2 # llvm-toolchain-snapshot-3.2_3.2repack.orig-lldb.tar.bz2 # llvm-toolchain-snapshot-3.2_3.2repack.orig-polly.tar.bz2 # llvm-toolchain-snapshot-3.2_3.2repack.orig.tar.bz2 @@ -48,7 +49,7 @@ get_svn_url() { } get_higher_revision() { - PROJECTS="llvm cfe compiler-rt polly lldb clang-tools-extra" + PROJECTS="llvm cfe compiler-rt polly lld lldb clang-tools-extra" REVISION_MAX=0 for f in $PROJECTS; do REVISION=$(LANG=C svn info $(get_svn_url $f $BRANCH $TAG)|grep "^Last Changed Rev:"|awk '{print $4}') @@ -117,6 +118,13 @@ rm -rf $POLLY_TARGET/www $POLLY_TARGET/autoconf/config.sub $POLLY_TARGET/autocon tar jcvf $FULL_VERSION.orig-polly.tar.bz2 $POLLY_TARGET rm -rf $POLLY_TARGET +# LLD +LLD_TARGET=lld_$VERSION +$SVN_CMD $(get_svn_url lld $BRANCH $TAG) $LLD_TARGET +rm -rf $LLD_TARGET/www/ +tar jcvf $FULL_VERSION.orig-lld.tar.bz2 $LLD_TARGET +rm -rf $LLD_TARGET + # LLDB LLDB_TARGET=lldb_$VERSION $SVN_CMD $(get_svn_url lldb $BRANCH $TAG) $LLDB_TARGET diff --git a/debian/rules b/debian/rules index 46acd224..0e313f32 100755 --- a/debian/rules +++ b/debian/rules @@ -168,6 +168,13 @@ override_dh_auto_configure: preconfigure ln -s ../polly .; \ fi + cd tools/ && \ + if test -h lld; then \ + rm lld; \ + fi; \ + ln -s ../lld .; \ + readlink lld + if test "$(LLDB_ENABLE)" = yes; then \ cd tools/ && \ if test -h lldb; then \ @@ -387,6 +394,7 @@ override_dh_installman: override_dh_strip: dh_strip -p libclang$(SONAME_EXT)-$(LLVM_VERSION) --dbg-package=libclang$(SONAME_EXT)-$(LLVM_VERSION)-dbg dh_strip -p libllvm$(LLVM_VERSION) --dbg-package=libllvm$(LLVM_VERSION)-dbg + dh_strip -p liblld-$(LLVM_VERSION) --dbg-package=liblld-$(LLVM_VERSION)-dbg dh_strip -p liblldb-$(LLVM_VERSION) --dbg-package=liblldb-$(LLVM_VERSION)-dbg dh_strip -a @@ -422,6 +430,9 @@ endif # Clang tests (CMake) $(MAKE) $(NJOBS) -C $(TARGET_BUILD) check-clang || true +# LLD tests (CMake) + $(MAKE) $(NJOBS) -C $(TARGET_BUILD) check-lld || true + # LLDB tests (CMake) ifeq (,$(filter $(DEB_HOST_ARCH), $(LLDB_DISABLE_ARCHS) armhf armel)) $(MAKE) $(NJOBS) -C $(TARGET_BUILD) check-lldb || true @@ -467,7 +478,7 @@ override_dh_auto_clean: find lldb/test -iname '*.pyc' | xargs -I{} -r rm -f {} find test -name '*.pyc' -o -name '*.cm[ix]' | xargs -r rm -f find test/Bindings -name '*.o' | xargs -r rm -f - rm -f tools/clang tools/polly tools/lldb projects/compiler-rt + rm -f tools/clang tools/polly tools/lld tools/lldb projects/compiler-rt rm -rf tools/clang/tools/extra clang/tools/extra/ rm -f $(CURDIR)/utils/vim/llvm-$(LLVM_VERSION).vim $(CURDIR)/utils/vim/tablegen-$(LLVM_VERSION).vim rm -f $(CURDIR)/clang/tools/clang-format/clang-format-diff-$(LLVM_VERSION)