Add -nostdlib.

llvm-svn: 280528
diff --git a/lld/ELF/Config.h b/lld/ELF/Config.h
index 7bf650c3..f06cfbd 100644
--- a/lld/ELF/Config.h
+++ b/lld/ELF/Config.h
@@ -98,6 +98,7 @@
   bool Mips64EL = false;
   bool NoGnuUnique;
   bool NoUndefinedVersion;
+  bool Nostdlib;
   bool OFormatBinary;
   bool Pic;
   bool Pie;
diff --git a/lld/ELF/Driver.cpp b/lld/ELF/Driver.cpp
index 9b44b1b..7f10823 100644
--- a/lld/ELF/Driver.cpp
+++ b/lld/ELF/Driver.cpp
@@ -410,6 +410,7 @@
   Config->ICF = Args.hasArg(OPT_icf);
   Config->NoGnuUnique = Args.hasArg(OPT_no_gnu_unique);
   Config->NoUndefinedVersion = Args.hasArg(OPT_no_undefined_version);
+  Config->Nostdlib = Args.hasArg(OPT_nostdlib);
   Config->Pie = Args.hasArg(OPT_pie);
   Config->PrintGcSections = Args.hasArg(OPT_print_gc_sections);
   Config->Relocatable = Args.hasArg(OPT_relocatable);
diff --git a/lld/ELF/LinkerScript.cpp b/lld/ELF/LinkerScript.cpp
index c1ce76c..3872d30 100644
--- a/lld/ELF/LinkerScript.cpp
+++ b/lld/ELF/LinkerScript.cpp
@@ -870,7 +870,8 @@
 
 void ScriptParser::readSearchDir() {
   expect("(");
-  Config->SearchPaths.push_back(next());
+  if (!Config->Nostdlib)
+    Config->SearchPaths.push_back(next());
   expect(")");
 }
 
diff --git a/lld/ELF/Options.td b/lld/ELF/Options.td
index acfba9e..d37a41a 100644
--- a/lld/ELF/Options.td
+++ b/lld/ELF/Options.td
@@ -97,6 +97,9 @@
 
 def m: JoinedOrSeparate<["-"], "m">, HelpText<"Set target emulation">;
 
+def nostdlib: F<"nostdlib">,
+  HelpText<"Only search directories specified on the command line">;
+
 def no_as_needed: F<"no-as-needed">,
   HelpText<"Always DT_NEEDED for shared libraries">;
 
diff --git a/lld/test/ELF/libsearch.s b/lld/test/ELF/libsearch.s
index 782d755..98512cd 100644
--- a/lld/test/ELF/libsearch.s
+++ b/lld/test/ELF/libsearch.s
@@ -85,5 +85,10 @@
 // RUN: ld.lld -o %t3 %t.o -L%t.dir -Bstatic -call_shared -lls
 // RUN: llvm-readobj --symbols %t3 | FileCheck --check-prefix=DYNAMIC %s
 
+// -nostdlib
+// RUN: echo 'SEARCH_DIR(' %t.dir ')' > %t.script
+// RUN: ld.lld -o %t3 %t.o -script %t.script -lls
+// RUN: not ld.lld -o %t3 %t.o -script %t.script -lls -nostdlib
+
 .globl _start,_bar
 _start: