* Build clangd with GRPC support

Thanks to Sam McCall for the patch
* Unbreak llvm-toolchain-12 on buster.
  -fuse-ld=gold wasn't passed to compiler-rt. it was using bfd.
  And binutils shipping in buster has a bug preventing this to work:
  https://github.com/llvm/llvm-project/issues/42339
* Rename ocaml-nox => ocaml-base (Closes: #1002608)
* Remove Build-Conflicts: ocaml
* Rebuild to workaround the coinstallability issue (Closes: #996858)
This commit is contained in:
Sylvestre Ledru 2022-02-05 11:11:11 +01:00
commit 18e75ffc90
3 changed files with 44 additions and 2 deletions

24
debian/changelog vendored
View File

@ -331,6 +331,30 @@ llvm-toolchain-snapshot (1:13~++20210129063721+010b176cdefb-1~exp1) experimental
-- Sylvestre Ledru <sylvestre@debian.org> Sat, 30 Jan 2021 17:31:15 +0100
llvm-toolchain-12 (1:12.0.1-19) UNRELEASED; urgency=medium
* Build clangd with GRPC support
Thanks to Sam McCall for the patch
-- Sylvestre Ledru <sylvestre@debian.org> Sat, 29 Jan 2022 10:17:38 +0100
llvm-toolchain-12 (1:12.0.1-18) unstable; urgency=medium
* Unbreak llvm-toolchain-12 on buster.
-fuse-ld=gold wasn't passed to compiler-rt. it was using bfd.
And binutils shipping in buster has a bug preventing this to work:
https://github.com/llvm/llvm-project/issues/42339
* Rename ocaml-nox => ocaml-base (Closes: #1002608)
* Remove Build-Conflicts: ocaml
-- Sylvestre Ledru <sylvestre@debian.org> Thu, 16 Dec 2021 17:49:22 +0100
llvm-toolchain-12 (1:12.0.1-17) unstable; urgency=medium
* Rebuild to workaround the coinstallability issue (Closes: #996858)
-- Sylvestre Ledru <sylvestre@debian.org> Tue, 30 Nov 2021 19:32:51 +0100
llvm-toolchain-12 (1:12.0.1-16) unstable; urgency=medium
[ Erik Maciejewski ]

3
debian/control vendored
View File

@ -23,7 +23,8 @@ Build-Depends: debhelper (>= 10.0), cmake, ninja-build,
dh-exec, dh-ocaml [amd64 arm64 armhf ppc64el riscv64 s390x],
libpfm4-dev [linux-any], python3-setuptools, libz3-dev,
llvm-spirv [ amd64 arm64 armel armhf mips64el mipsel ppc64el s390x ] <!stage1> | hello [!i386],
spirv-tools [ linux-any ] | hello [ !i386]
spirv-tools [ linux-any ] | hello [ !i386],
libgrpc++-dev, libprotobuf-dev, protobuf-compiler, protobuf-compiler-grpc
# "| hello" is for older buster/bionic distros without spirv support
Build-Conflicts: oprofile
Standards-Version: 4.2.1

19
debian/rules vendored
View File

@ -124,6 +124,18 @@ ZARCH=z13
endif
STAGE_2_CMAKE_EXTRA += -DCLANG_SYSTEMZ_DEFAULT_ARCH=$(ZARCH)
# clangd remote index support requires GRPC & protobuf.
# Enable if minimum tested versions are available.
ifeq ($(shell dpkg --compare-versions $(shell dpkg-query -W -f '$${Version}' libgrpc++-dev) gt 1.30.0; echo $$?),0)
ifeq ($(shell dpkg --compare-versions $(shell dpkg-query -W -f '$${Version}' protobuf-compiler-grpc) gt 1.30.0; echo $$?),0)
ifeq ($(shell dpkg --compare-versions $(shell dpkg-query -W -f '$${Version}' libprotobuf-dev) gt 3.12.0; echo $$?),0)
ifeq ($(shell dpkg --compare-versions $(shell dpkg-query -W -f '$${Version}' protobuf-compiler) gt 3.12.0; echo $$?),0)
STAGE_2_CMAKE_EXTRA += -DCLANGD_ENABLE_REMOTE=ON
endif
endif
endif
endif
export CC=gcc-$(GCC_VERSION)
export CXX=g++-$(GCC_VERSION)
@ -406,6 +418,8 @@ preconfigure:
@echo "LLVM_VERSION=$(LLVM_VERSION)"
@echo "LLVM_VERSION_FULL=$(LLVM_VERSION_FULL)"
@echo "LLVM_VERSION_SNAPSHOT=$(LLVM_VERSION_SNAPSHOT)"
@echo "PATH=$(PATH)"
@echo "LD_LIBRARY_PATH=$(LD_LIBRARY_PATH)"
for f in debian/*.in; do \
f2=$$(echo $$f | sed 's/\.in$$//;s/X\.Y/$(LLVM_VERSION)/'); \
@ -679,7 +693,7 @@ override_dh_auto_install:
# Clean up temporary files to make sure the install works
rm -rf $(find $(TARGET_BUILD) -wholename '*CMakeFiles*' -not -name CMakeLists.txt -a -name "*.dir" -type d)
# install/fast enables a make install without recompiling temporary files
DESTDIR=$(DEB_INST)/ ninja -C $(TARGET_BUILD) $(VERBOSE) stage2-install
LD_LIBRARY_PATH=$(STAGE_2_LIB_DIR) DESTDIR=$(DEB_INST)/ ninja -C $(TARGET_BUILD) $(VERBOSE) stage2-install
# Not used on Linux.
rm -f $(DEB_INST)/usr/lib/llvm-$(LLVM_VERSION)/bin/argdumper
@ -691,6 +705,9 @@ override_dh_auto_install:
# Remove an example - introduced in https://reviews.llvm.org/D61446
rm -f $(DEB_INST)/usr/lib/llvm-$(LLVM_VERSION)/lib/libBye.a
# Remove unused clangd lib
rm -f $(DEB_INST)/usr/lib/llvm-$(LLVM_VERSION)/lib/libRemoteIndexProto.a $(DEB_INST)/usr/lib/llvm-$(LLVM_VERSION)/lib/libRemoteIndexServiceProto.a
cp $(TARGET_BUILD_STAGE2)/bin/clang-query $(DEB_INST)/usr/lib/llvm-$(LLVM_VERSION)/bin
# Only run on executable, not script