--- 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);