Revert " * Construct the --package-metadata option just from ELF_PACKAGE_METADATA."

This reverts commit 7a3ca233a9.
This commit is contained in:
Sylvestre Ledru 2024-07-14 17:40:17 +02:00
parent 459e8ebab8
commit 3f5db5d6aa
2 changed files with 16 additions and 8 deletions

4
debian/changelog vendored
View File

@ -1,9 +1,5 @@
llvm-toolchain-18 (1:18.1.8-3) UNRELEASED; urgency=medium 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 * Revert LLVM_ENABLE_PER_TARGET_RUNTIME_DIR=ON
9ca35f30383d89e4fdd45d15e0eb82c832df4b8c 9ca35f30383d89e4fdd45d15e0eb82c832df4b8c
For causing https://github.com/llvm/llvm-project/issues/96210 For causing https://github.com/llvm/llvm-project/issues/96210

View File

@ -1,21 +1,33 @@
--- a/clang/lib/Driver/ToolChains/Linux.cpp --- a/clang/lib/Driver/ToolChains/Linux.cpp
+++ b/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"); ExtraOpts.push_back("--build-id");
#endif #endif
+ if (Distro.IsDebian() && Distro >= Distro::DebianTrixie + if (Distro.IsDebian() && Distro >= Distro::DebianTrixie
+ || Distro.IsUbuntu() && Distro >= Distro::UbuntuNoble) + || 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"); + const char *no_pkg_metadata = getenv ("NO_PKG_METADATA");
+ +
+ if (no_pkg_metadata) { + if (no_pkg_metadata) {
+ // don't issue --package-metadata option + // 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 + // 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 { + } 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 + "\""
+ + "}");
+ } + }
+ } + }
+ +