link-with-package-metadata
authorLLVM Packaging Team <pkg-llvm-team@lists.alioth.debian.org>
Fri, 7 Feb 2025 09:17:16 +0000 (10:17 +0100)
committerMatthias Klose <doko@debian.org>
Fri, 7 Feb 2025 09:17:16 +0000 (10:17 +0100)
Gbp-Pq: Name link-with-package-metadata.diff

clang/lib/Driver/ToolChains/Linux.cpp

index 1522a63686f22a8f2c32f070132eb0bbabe73047..1944e73ae21bc8e083622dde688e9a08f9aa0644 100644 (file)
@@ -283,6 +283,21 @@ Linux::Linux(const Driver &D, const llvm::Triple &Triple, const ArgList &Args)
   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 *no_pkg_metadata = getenv ("NO_PKG_METADATA");
+
+    if (no_pkg_metadata) {
+      // don't issue --package-metadata option
+    } else if (!pkg_metadata) {
+      // no environment set for package metadata
+    } else {
+      ExtraOpts.push_back(std::string("--package-metadata=") + pkg_metadata);
+    }
+  }
+
   // 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