diff --git a/debian/changelog b/debian/changelog index 17b23de7..650ca1e7 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,3 +1,9 @@ +llvm-toolchain-18 (1:18.1.8-3) UNRELEASED; urgency=medium + + * Construct the --package-metadata option just from ELF_PACKAGE_METADATA. + + -- Matthias Klose Thu, 11 Jul 2024 09:26:34 +0200 + llvm-toolchain-18 (1:18.1.8-2) unstable; urgency=medium [ Matthias Klose ] diff --git a/debian/patches/link-with-package-metadata.diff b/debian/patches/link-with-package-metadata.diff index a9a8fc01..b82b5ff4 100644 --- a/debian/patches/link-with-package-metadata.diff +++ b/debian/patches/link-with-package-metadata.diff @@ -1,33 +1,21 @@ --- 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 +@@ -283,6 +283,21 @@ 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 pkg_metadata = getenv ("ELF_PACKAGE_METADATA"); + 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) { ++ } else if (!pkg_metadata) { + // 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 + "\"" -+ + "}"); ++ ExtraOpts.push_back(std::string("--package-metadata=") + pkg_metadata); + } + } +