mirror of
https://git.proxmox.com/git/llvm-toolchain
synced 2025-08-05 09:58:06 +00:00
* Pass --package-metadata on distros with supporting linkers (starting
with Debian trixie and Ubuntu noble). The package metadata is constructed from the environment variables DEB_BUILD_OS_RELEASE_ID, DEB_SOURCE, DEB_VERSION and DEB_HOST_ARCH. Setting NO_PKG_METADATA=1 disables the generation of the package metadata.
This commit is contained in:
parent
033208480e
commit
831c781696
11
debian/changelog
vendored
11
debian/changelog
vendored
@ -1,3 +1,14 @@
|
|||||||
|
llvm-toolchain-18 (1:18.1.8-2~exp3) UNRELEASED; urgency=medium
|
||||||
|
|
||||||
|
[ Matthias Klose ]
|
||||||
|
* Pass --package-metadata on distros with supporting linkers (starting
|
||||||
|
with Debian trixie and Ubuntu noble).
|
||||||
|
The package metadata is constructed from the environment variables
|
||||||
|
DEB_BUILD_OS_RELEASE_ID, DEB_SOURCE, DEB_VERSION and DEB_HOST_ARCH.
|
||||||
|
Setting NO_PKG_METADATA=1 disables the generation of the package metadata.
|
||||||
|
|
||||||
|
-- Matthias Klose <doko@debian.org> Sun, 07 Jul 2024 16:40:35 +0200
|
||||||
|
|
||||||
llvm-toolchain-18 (1:18.1.8-2~exp2) experimental; urgency=medium
|
llvm-toolchain-18 (1:18.1.8-2~exp2) experimental; urgency=medium
|
||||||
|
|
||||||
* Change the LLVM_HOST_TRIPLE option from i386-linux-gnu to
|
* Change the LLVM_HOST_TRIPLE option from i386-linux-gnu to
|
||||||
|
36
debian/patches/link-with-package-metadata.diff
vendored
Normal file
36
debian/patches/link-with-package-metadata.diff
vendored
Normal file
@ -0,0 +1,36 @@
|
|||||||
|
--- a/clang/lib/Driver/ToolChains/Linux.cpp
|
||||||
|
+++ b/clang/lib/Driver/ToolChains/Linux.cpp
|
||||||
|
@@ -287,6 +287,33 @@ Linux::Linux(const Driver &D, const llvm
|
||||||
|
ExtraOpts.push_back("--build-id");
|
||||||
|
#endif
|
||||||
|
|
||||||
|
+ if (Distro.IsDebian() && Distro >= Distro::DebianTrixie
|
||||||
|
+ || Distro.IsUbuntu() && Distro >= Distro::UbuntuNoble)
|
||||||
|
+ {
|
||||||
|
+ const char *deb_build_os_release_id = getenv ("DEB_BUILD_OS_RELEASE_ID");
|
||||||
|
+ const char *deb_source = getenv ("DEB_SOURCE");
|
||||||
|
+ const char *deb_version = getenv ("DEB_VERSION");
|
||||||
|
+ const char *deb_host_arch = getenv ("DEB_HOST_ARCH");
|
||||||
|
+ const char *no_pkg_metadata = getenv ("NO_PKG_METADATA");
|
||||||
|
+
|
||||||
|
+ if (no_pkg_metadata) {
|
||||||
|
+ // don't issue --package-metadata option
|
||||||
|
+ } else if (!deb_build_os_release_id && !deb_source && !deb_version && !deb_host_arch) {
|
||||||
|
+ // no environment set for package metadata
|
||||||
|
+ } else if (!(deb_build_os_release_id && deb_source && deb_version && deb_host_arch)) {
|
||||||
|
+ // incomple environment
|
||||||
|
+ // FIXME: emit error
|
||||||
|
+ } else {
|
||||||
|
+ ExtraOpts.push_back(std::string("--package-metadata={")
|
||||||
|
+ + "\"type\":\"deb\","
|
||||||
|
+ + "\"os\":\"" + deb_build_os_release_id + "\","
|
||||||
|
+ + "\"name\":\"" + deb_source + "\","
|
||||||
|
+ + "\"version\":\"" + deb_version + "\","
|
||||||
|
+ + "\"architecture\":\"" + deb_host_arch + "\""
|
||||||
|
+ + "}");
|
||||||
|
+ }
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
// The selection of paths to try here is designed to match the patterns which
|
||||||
|
// the GCC driver itself uses, as this is part of the GCC-compatible driver.
|
||||||
|
// This was determined by running GCC in a fake filesystem, creating all
|
1
debian/patches/series
vendored
1
debian/patches/series
vendored
@ -153,3 +153,4 @@ libsanitizer-timebits.diff
|
|||||||
ubuntu-releases.patch
|
ubuntu-releases.patch
|
||||||
clang-record-gcc-switches-by-default.patch
|
clang-record-gcc-switches-by-default.patch
|
||||||
rename-libllvm.diff
|
rename-libllvm.diff
|
||||||
|
link-with-package-metadata.diff
|
||||||
|
Loading…
Reference in New Issue
Block a user