Add the support of lld (Closes: #TODO)

This commit is contained in:
Sylvestre Ledru 2016-05-09 14:17:24 +00:00
parent 11116870dc
commit 7c7373be08
8 changed files with 92 additions and 3 deletions

3
debian/changelog vendored
View File

@ -1,5 +1,8 @@
llvm-toolchain-snapshot (1:3.9~svn260851-2) UNRELEASED; urgency=medium llvm-toolchain-snapshot (1:3.9~svn260851-2) UNRELEASED; urgency=medium
[ Ed Schouten ]
* Add the support of lld (Closes: #TODO)
* Remove the autoconf section * Remove the autoconf section
* Bring back the removal of the build dir * Bring back the removal of the build dir
* Fix the coverage builds (didn't allow several cflags) * Fix the coverage builds (didn't allow several cflags)

56
debian/control vendored
View File

@ -349,6 +349,60 @@ Description: Modular compiler and toolchain technologies, examples
extensions to LLVM and in using it to compile code. 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 ------------- # ------------- lldb -------------
Package: lldb-3.9 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) Replaces: lldb-3.9-dev (<= 1:3.9~svn215195-2)
Breaks: lldb-3.9-dev (<< 1:3.9~svn215195-2) Breaks: lldb-3.9-dev (<< 1:3.9~svn215195-2)
Pre-Depends: ${misc:Pre-Depends} 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 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 reusable components which highly leverage existing libraries in the larger LLVM
Project, such as the Clang expression parser and LLVM disassembler. Project, such as the Clang expression parser and LLVM disassembler.

3
debian/liblld-X.Y-dev.install.in vendored Normal file
View File

@ -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

1
debian/liblld-X.Y.install.in vendored Normal file
View File

@ -0,0 +1 @@
#usr/lib/llvm-@LLVM_VERSION@/lib/liblld-@LLVM_VERSION@.so.1 /usr/lib/@DEB_HOST_MULTIARCH@/

3
debian/liblld-X.Y.links.in vendored Normal file
View File

@ -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

6
debian/lld-X.Y.install.in vendored Normal file
View File

@ -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@*

10
debian/orig-tar.sh vendored
View File

@ -3,6 +3,7 @@
# llvm-toolchain-snapshot-3.2_3.2repack.orig-clang.tar.bz2 # 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-clang-extra.tar.bz2
# llvm-toolchain-snapshot-3.2_3.2repack.orig-compiler-rt.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-lldb.tar.bz2
# llvm-toolchain-snapshot-3.2_3.2repack.orig-polly.tar.bz2 # llvm-toolchain-snapshot-3.2_3.2repack.orig-polly.tar.bz2
# llvm-toolchain-snapshot-3.2_3.2repack.orig.tar.bz2 # llvm-toolchain-snapshot-3.2_3.2repack.orig.tar.bz2
@ -48,7 +49,7 @@ get_svn_url() {
} }
get_higher_revision() { 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 REVISION_MAX=0
for f in $PROJECTS; do for f in $PROJECTS; do
REVISION=$(LANG=C svn info $(get_svn_url $f $BRANCH $TAG)|grep "^Last Changed Rev:"|awk '{print $4}') 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 tar jcvf $FULL_VERSION.orig-polly.tar.bz2 $POLLY_TARGET
rm -rf $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
LLDB_TARGET=lldb_$VERSION LLDB_TARGET=lldb_$VERSION
$SVN_CMD $(get_svn_url lldb $BRANCH $TAG) $LLDB_TARGET $SVN_CMD $(get_svn_url lldb $BRANCH $TAG) $LLDB_TARGET

13
debian/rules vendored
View File

@ -168,6 +168,13 @@ override_dh_auto_configure: preconfigure
ln -s ../polly .; \ ln -s ../polly .; \
fi fi
cd tools/ && \
if test -h lld; then \
rm lld; \
fi; \
ln -s ../lld .; \
readlink lld
if test "$(LLDB_ENABLE)" = yes; then \ if test "$(LLDB_ENABLE)" = yes; then \
cd tools/ && \ cd tools/ && \
if test -h lldb; then \ if test -h lldb; then \
@ -387,6 +394,7 @@ override_dh_installman:
override_dh_strip: override_dh_strip:
dh_strip -p libclang$(SONAME_EXT)-$(LLVM_VERSION) --dbg-package=libclang$(SONAME_EXT)-$(LLVM_VERSION)-dbg 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 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 -p liblldb-$(LLVM_VERSION) --dbg-package=liblldb-$(LLVM_VERSION)-dbg
dh_strip -a dh_strip -a
@ -422,6 +430,9 @@ endif
# Clang tests (CMake) # Clang tests (CMake)
$(MAKE) $(NJOBS) -C $(TARGET_BUILD) check-clang || true $(MAKE) $(NJOBS) -C $(TARGET_BUILD) check-clang || true
# LLD tests (CMake)
$(MAKE) $(NJOBS) -C $(TARGET_BUILD) check-lld || true
# LLDB tests (CMake) # LLDB tests (CMake)
ifeq (,$(filter $(DEB_HOST_ARCH), $(LLDB_DISABLE_ARCHS) armhf armel)) ifeq (,$(filter $(DEB_HOST_ARCH), $(LLDB_DISABLE_ARCHS) armhf armel))
$(MAKE) $(NJOBS) -C $(TARGET_BUILD) check-lldb || true $(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 lldb/test -iname '*.pyc' | xargs -I{} -r rm -f {}
find test -name '*.pyc' -o -name '*.cm[ix]' | xargs -r rm -f find test -name '*.pyc' -o -name '*.cm[ix]' | xargs -r rm -f
find test/Bindings -name '*.o' | 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 -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)/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) rm -f $(CURDIR)/clang/tools/clang-format/clang-format-diff-$(LLVM_VERSION)