Index: ELF/Config.h =================================================================== --- ELF/Config.h +++ ELF/Config.h @@ -94,7 +94,6 @@ llvm::StringRef ThinLTOCacheDir; std::string Rpath; std::vector VersionDefinitions; - std::vector Argv; std::vector AuxiliaryList; std::vector FilterList; std::vector SearchPaths; Index: ELF/Driver.h =================================================================== --- ELF/Driver.h +++ ELF/Driver.h @@ -31,7 +31,7 @@ void addLibrary(StringRef Name); private: - void readConfigs(llvm::opt::InputArgList &Args); + void readConfigs(const char *Argv0, llvm::opt::InputArgList &Args); void createFiles(llvm::opt::InputArgList &Args); void inferMachineType(); template void link(llvm::opt::InputArgList &Args); Index: ELF/Driver.cpp =================================================================== --- ELF/Driver.cpp +++ ELF/Driver.cpp @@ -89,7 +89,6 @@ Driver = make(); Script = make(); Symtab = make(); - Config->Argv = {Args.begin(), Args.end()}; Driver->main(Args, CanExitEarly); @@ -365,7 +364,7 @@ } } - readConfigs(Args); + readConfigs(ArgsArr[0], Args); initLLVM(); createFiles(Args); inferMachineType(); @@ -588,7 +587,7 @@ } // Initializes Config members by the command line options. -void LinkerDriver::readConfigs(opt::InputArgList &Args) { +void LinkerDriver::readConfigs(const char *Argv0, opt::InputArgList &Args) { Config->AllowMultipleDefinition = Args.hasFlag(OPT_allow_multiple_definition, OPT_no_allow_multiple_definition, false) || @@ -690,7 +689,7 @@ Config->ZWxneeded = hasZOption(Args, "wxneeded"); // Parse LTO plugin-related options for compatibility with gold. - std::vector LTOOptions({Config->Argv[0].data()}); + std::vector LTOOptions({Argv0}); for (auto *Arg : Args.filtered(OPT_plugin_opt)) { StringRef S = Arg->getValue(); if (S == "disable-verify")