From 3f5db5d6aa2f626c97a4e42487bee41eb37ad606 Mon Sep 17 00:00:00 2001 From: Sylvestre Ledru Date: Sun, 14 Jul 2024 17:40:17 +0200 Subject: [PATCH] Revert " * Construct the --package-metadata option just from ELF_PACKAGE_METADATA." This reverts commit 7a3ca233a9859d5396795a29a07d1c9fd3636f5f. --- debian/changelog | 4 ---- .../patches/link-with-package-metadata.diff | 20 +++++++++++++++---- 2 files changed, 16 insertions(+), 8 deletions(-) diff --git a/debian/changelog b/debian/changelog index 6bf83984..e9ed82c8 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,9 +1,5 @@ llvm-toolchain-18 (1:18.1.8-3) UNRELEASED; urgency=medium - [ Matthias Klose ] - * Construct the --package-metadata option just from ELF_PACKAGE_METADATA. - - [ Sylvestre Ledru ] * Revert LLVM_ENABLE_PER_TARGET_RUNTIME_DIR=ON 9ca35f30383d89e4fdd45d15e0eb82c832df4b8c For causing https://github.com/llvm/llvm-project/issues/96210 diff --git a/debian/patches/link-with-package-metadata.diff b/debian/patches/link-with-package-metadata.diff index b82b5ff4..a9a8fc01 100644 --- a/debian/patches/link-with-package-metadata.diff +++ b/debian/patches/link-with-package-metadata.diff @@ -1,21 +1,33 @@ --- a/clang/lib/Driver/ToolChains/Linux.cpp +++ b/clang/lib/Driver/ToolChains/Linux.cpp -@@ -283,6 +283,21 @@ Linux::Linux(const Driver &D, const llvm +@@ -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 pkg_metadata = getenv ("ELF_PACKAGE_METADATA"); ++ 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 (!pkg_metadata) { ++ } 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=") + pkg_metadata); ++ 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 + "\"" ++ + "}"); + } + } +