--- a/lld/ELF/Driver.cpp
+++ b/lld/ELF/Driver.cpp
@@ -1335,6 +1335,13 @@ static void readConfigs(opt::InputArgLis
   config->orphanHandling = getOrphanHandling(args);
   config->outputFile = args.getLastArgValue(OPT_o);
   config->packageMetadata = args.getLastArgValue(OPT_package_metadata);
+  // No package-metadata option, fall-back to env ELF_PACKAGE_METADATA
+  if (config->packageMetadata.empty()) {
+    const char *env_package_metadata = getenv("ELF_PACKAGE_METADATA");
+    if (env_package_metadata && strcmp(env_package_metadata, "") != 0) {
+      config->packageMetadata = StringRef(env_package_metadata);
+    }
+  }
   config->pie = args.hasFlag(OPT_pie, OPT_no_pie, false);
   config->printIcfSections =
       args.hasFlag(OPT_print_icf_sections, OPT_no_print_icf_sections, false);
