atanasyan created this revision.

This patch builds and passes `-L` arguments to the linker in case of NetBSD 
target. That makes possible to use LLD linker which does not have any built-in 
per-OS paths configuration.

To do so the patch a) constructs paths to the library directories explicitly 
without using `=` placeholder. That allows to get correct paths whether 
`--sysroot` argument passed to the driver or not; b) calls 
`ToolChain::AddFilePathLibArgs` method to build a list of `-L` options from the 
paths list.

I hope this changes fix the following bug:
https://bugs.llvm.org/show_bug.cgi?id=33155


Repository:
  rL LLVM

https://reviews.llvm.org/D33726

Files:
  lib/Driver/ToolChains/NetBSD.cpp
  test/Driver/netbsd.c

Index: test/Driver/netbsd.c
===================================================================
--- test/Driver/netbsd.c
+++ test/Driver/netbsd.c
@@ -129,91 +129,96 @@
 // RUN: %clang -target x86_64--netbsd -pthread -dM -E %s \
 // RUN: | FileCheck -check-prefix=PTHREAD %s
 
-// STATIC: ld{{.*}}" "--eh-frame-hdr"
+// STATIC: ld{{.*}}" "--sysroot=[[SYSROOT:[^"]+]]" "--eh-frame-hdr"
 // STATIC-NOT: "-pie"
 // STATIC-NOT: "-Bshareable"
 // STATIC: "-dynamic-linker" "/libexec/ld.elf_so"
 // STATIC-NOT: "-pie"
 // STATIC-NOT: "-Bshareable"
 // STATIC: "{{.*}}/usr/lib{{/|\\\\}}crt0.o"
 // STATIC: "{{.*}}/usr/lib{{/|\\\\}}crti.o" "{{.*}}/usr/lib{{/|\\\\}}crtbegin.o"
+// STATIC: "-L[[SYSROOT]]/usr/lib"
 // STATIC: "{{.*}}/usr/lib{{/|\\\\}}crtend.o" "{{.*}}/usr/lib{{/|\\\\}}crtn.o"
 
-// SHARED: ld{{.*}}" "--eh-frame-hdr"
+// SHARED: ld{{.*}}" "--sysroot=[[SYSROOT:[^"]+]]" "--eh-frame-hdr"
 // SHARED-NOT: "-pie"
 // SHARED-NOT: "-dynamic-linker"
 // SHARED-NOT: "{{.*}}/usr/lib{{/|\\\\}}crt0.o"
 // SHARED: "{{.*}}/usr/lib{{/|\\\\}}crti.o" "{{.*}}/usr/lib{{/|\\\\}}crtbeginS.o"
+// SHARED: "-L[[SYSROOT]]/usr/lib"
 // SHARED: "{{.*}}/usr/lib{{/|\\\\}}crtendS.o" "{{.*}}/usr/lib{{/|\\\\}}crtn.o"
 
-// PIE: ld{{.*}}" "--eh-frame-hdr"
+// PIE: ld{{.*}}" "--sysroot=[[SYSROOT:[^"]+]]" "--eh-frame-hdr"
 // PIE-NOT: "-Bshareable"
 // PIE "-pie" "-dynamic-linker" "/libexec/ld.elf_so"
 // PIE-NOT: "-Bshareable"
 // PIE: "{{.*}}/usr/lib{{/|\\\\}}crt0.o" "{{.*}}/usr/lib{{/|\\\\}}crti.o"
 // PIE: "{{.*}}/usr/lib{{/|\\\\}}crtbeginS.o"
+// PIE: "-L[[SYSROOT]]/usr/lib"
 // PIE: "{{.*}}/usr/lib{{/|\\\\}}crtendS.o"
 // PIE: "{{.*}}/usr/lib{{/|\\\\}}crtn.o"
 
 // X86_64: clang{{.*}}" "-cc1" "-triple" "x86_64--netbsd"
-// X86_64: ld{{.*}}" "--eh-frame-hdr" "-dynamic-linker" "/libexec/ld.elf_so"
+// X86_64: ld{{.*}}" "--sysroot=[[SYSROOT:[^"]+]]" "--eh-frame-hdr" "-dynamic-linker" "/libexec/ld.elf_so"
 // X86_64: "-o" "a.out" "{{.*}}/usr/lib{{/|\\\\}}crt0.o" "{{.*}}/usr/lib{{/|\\\\}}crti.o"
-// X86_64: "{{.*}}/usr/lib{{/|\\\\}}crtbegin.o" "{{.*}}.o" "-lc"
+// X86_64: "{{.*}}/usr/lib{{/|\\\\}}crtbegin.o" "-L[[SYSROOT]]/usr/lib" "{{.*}}.o" "-lc"
 // X86_64: "{{.*}}/usr/lib{{/|\\\\}}crtend.o" "{{.*}}/usr/lib{{/|\\\\}}crtn.o"
 
 // X86_64-7: clang{{.*}}" "-cc1" "-triple" "x86_64--netbsd7.0.0"
-// X86_64-7: ld{{.*}}" "--eh-frame-hdr" "-dynamic-linker" "/libexec/ld.elf_so"
+// X86_64-7: ld{{.*}}" "--sysroot=[[SYSROOT:[^"]+]]" "--eh-frame-hdr" "-dynamic-linker" "/libexec/ld.elf_so"
 // X86_64-7: "-o" "a.out" "{{.*}}/usr/lib{{/|\\\\}}crt0.o" "{{.*}}/usr/lib{{/|\\\\}}crti.o"
-// X86_64-7:  "{{.*}}/usr/lib{{/|\\\\}}crtbegin.o" "{{.*}}.o" "-lc"
+// X86_64-7:  "{{.*}}/usr/lib{{/|\\\\}}crtbegin.o" "-L[[SYSROOT]]/usr/lib" "{{.*}}.o" "-lc"
 // X86_64-7: "{{.*}}/usr/lib{{/|\\\\}}crtend.o" "{{.*}}/usr/lib{{/|\\\\}}crtn.o"
 
 // X86_64-6: clang{{.*}}" "-cc1" "-triple" "x86_64--netbsd6.0.0"
-// X86_64-6: ld{{.*}}" "--eh-frame-hdr" "-dynamic-linker" "/libexec/ld.elf_so"
+// X86_64-6: ld{{.*}}" "--sysroot=[[SYSROOT:[^"]+]]" "--eh-frame-hdr" "-dynamic-linker" "/libexec/ld.elf_so"
 // X86_64-6: "-o" "a.out" "{{.*}}/usr/lib{{/|\\\\}}crt0.o" "{{.*}}/usr/lib{{/|\\\\}}crti.o"
-// X86_64-6: "{{.*}}/usr/lib{{/|\\\\}}crtbegin.o" "{{.*}}.o" "-lc"
+// X86_64-6: "{{.*}}/usr/lib{{/|\\\\}}crtbegin.o" "-L[[SYSROOT]]/usr/lib" "{{.*}}.o" "-lc"
 // X86_64-6: "{{.*}}/usr/lib{{/|\\\\}}crtend.o" "{{.*}}/usr/lib{{/|\\\\}}crtn.o"
 
 // AARCH64: clang{{.*}}" "-cc1" "-triple" "aarch64--netbsd"
-// AARCH64: ld{{.*}}" "--eh-frame-hdr" "-dynamic-linker" "/libexec/ld.elf_so"
+// AARCH64: ld{{.*}}" "--sysroot=[[SYSROOT:[^"]+]]" "--eh-frame-hdr" "-dynamic-linker" "/libexec/ld.elf_so"
 // AARCH64: "-o" "a.out" "{{.*}}/usr/lib{{/|\\\\}}crt0.o" "{{.*}}/usr/lib{{/|\\\\}}crti.o"
-// AARCH64: "{{.*}}/usr/lib{{/|\\\\}}crtbegin.o" "{{.*}}.o" "-lc"
+// AARCH64: "{{.*}}/usr/lib{{/|\\\\}}crtbegin.o" "-L[[SYSROOT]]/usr/lib" "{{.*}}.o" "-lc"
 // AARCH64: "{{.*}}/usr/lib{{/|\\\\}}crtend.o" "{{.*}}/usr/lib{{/|\\\\}}crtn.o"
 
 // AARCH64-7: clang{{.*}}" "-cc1" "-triple" "aarch64--netbsd7.0.0"
-// AARCH64-7: ld{{.*}}" "--eh-frame-hdr" "-dynamic-linker" "/libexec/ld.elf_so"
+// AARCH64-7: ld{{.*}}" "--sysroot=[[SYSROOT:[^"]+]]" "--eh-frame-hdr" "-dynamic-linker" "/libexec/ld.elf_so"
 // AARCH64-7: "-o" "a.out" "{{.*}}/usr/lib{{/|\\\\}}crt0.o" "{{.*}}/usr/lib{{/|\\\\}}crti.o"
-// AARCH64-7:  "{{.*}}/usr/lib{{/|\\\\}}crtbegin.o" "{{.*}}.o" "-lc"
+// AARCH64-7:  "{{.*}}/usr/lib{{/|\\\\}}crtbegin.o" "-L[[SYSROOT]]/usr/lib" "{{.*}}.o" "-lc"
 // AARCH64-7: "{{.*}}/usr/lib{{/|\\\\}}crtend.o" "{{.*}}/usr/lib{{/|\\\\}}crtn.o"
 
 // AARCH64_BE: clang{{.*}}" "-cc1" "-triple" "aarch64_be--netbsd"
-// AARCH64_BE: ld{{.*}}" "--eh-frame-hdr" "-dynamic-linker" "/libexec/ld.elf_so"
+// AARCH64_BE: ld{{.*}}" "--sysroot=[[SYSROOT:[^"]+]]" "--eh-frame-hdr" "-dynamic-linker" "/libexec/ld.elf_so"
 // AARCH64_BE: "-o" "a.out" "{{.*}}/usr/lib{{/|\\\\}}crt0.o" "{{.*}}/usr/lib{{/|\\\\}}crti.o"
-// AARCH64_BE: "{{.*}}/usr/lib{{/|\\\\}}crtbegin.o" "{{.*}}.o" "-lc"
+// AARCH64_BE: "{{.*}}/usr/lib{{/|\\\\}}crtbegin.o" "-L[[SYSROOT]]/usr/lib" "{{.*}}.o" "-lc"
 // AARCH64_BE: "{{.*}}/usr/lib{{/|\\\\}}crtend.o" "{{.*}}/usr/lib{{/|\\\\}}crtn.o"
 
 // AARCH64_BE-7: clang{{.*}}" "-cc1" "-triple" "aarch64_be--netbsd7.0.0"
-// AARCH64_BE-7: ld{{.*}}" "--eh-frame-hdr" "-dynamic-linker" "/libexec/ld.elf_so"
+// AARCH64_BE-7: ld{{.*}}" "--sysroot=[[SYSROOT:[^"]+]]" "--eh-frame-hdr" "-dynamic-linker" "/libexec/ld.elf_so"
 // AARCH64_BE-7: "-o" "a.out" "{{.*}}/usr/lib{{/|\\\\}}crt0.o" "{{.*}}/usr/lib{{/|\\\\}}crti.o"
-// AARCH64_BE-7:  "{{.*}}/usr/lib{{/|\\\\}}crtbegin.o" "{{.*}}.o" "-lc"
+// AARCH64_BE-7:  "{{.*}}/usr/lib{{/|\\\\}}crtbegin.o" "-L[[SYSROOT]]/usr/lib" "{{.*}}.o" "-lc"
 // AARCH64_BE-7: "{{.*}}/usr/lib{{/|\\\\}}crtend.o" "{{.*}}/usr/lib{{/|\\\\}}crtn.o"
 
 // ARM: clang{{.*}}" "-cc1" "-triple" "armv5e--netbsd-eabi"
 // ARM: as{{.*}}" "-mcpu=arm926ej-s" "-o"
-// ARM: ld{{.*}}" "--eh-frame-hdr" "-dynamic-linker" "/libexec/ld.elf_so"
+// ARM: ld{{.*}}" "--sysroot=[[SYSROOT:[^"]+]]" "--eh-frame-hdr" "-dynamic-linker" "/libexec/ld.elf_so"
 // ARM: "-m" "armelf_nbsd_eabi"
 // ARM: "-o" "a.out" "{{.*}}/usr/lib{{/|\\\\}}crt0.o"
 // ARM: "{{.*}}/usr/lib{{/|\\\\}}eabi{{/|\\\\}}crti.o"
-// ARM: "{{.*}}/usr/lib{{/|\\\\}}crtbegin.o" "{{.*}}.o" "-lc"
+// ARM: "{{.*}}/usr/lib{{/|\\\\}}crtbegin.o"
+// ARM: "-L[[SYSROOT]]/usr/lib/eabi" "-L[[SYSROOT]]/usr/lib" "{{.*}}.o" "-lc"
 // ARM: "{{.*}}/usr/lib{{/|\\\\}}crtend.o" "{{.*}}/usr/lib{{/|\\\\}}crtn.o"
 
 // ARMEB: clang{{.*}}" "-cc1" "-triple" "armebv5e--netbsd-eabi"
 // ARMEB: as{{.*}}" "-mcpu=arm926ej-s" "-o"
-// ARMEB: ld{{.*}}" "--eh-frame-hdr" "-dynamic-linker" "/libexec/ld.elf_so"
+// ARMEB: ld{{.*}}" "--sysroot=[[SYSROOT:[^"]+]]" "--eh-frame-hdr" "-dynamic-linker" "/libexec/ld.elf_so"
 // ARMEB-NOT: "--be8"
 // ARMEB: "-m" "armelfb_nbsd_eabi"
 // ARMEB: "-o" "a.out" "{{.*}}/usr/lib{{/|\\\\}}crt0.o"
 // ARMEB: "{{.*}}/usr/lib{{/|\\\\}}eabi{{/|\\\\}}crti.o"
-// ARMEB: "{{.*}}/usr/lib{{/|\\\\}}crtbegin.o" "{{.*}}.o" "-lc"
+// ARMEB: "{{.*}}/usr/lib{{/|\\\\}}crtbegin.o"
+// ARMEB: "-L[[SYSROOT]]/usr/lib/eabi" "-L[[SYSROOT]]/usr/lib" "{{.*}}.o" "-lc"
 // ARMEB: "{{.*}}/usr/lib{{/|\\\\}}crtend.o" "{{.*}}/usr/lib{{/|\\\\}}crtn.o"
 // ARMV7EB: ld{{.*}}" "--eh-frame-hdr" "-dynamic-linker" "/libexec/ld.elf_so"
 // ARMV7EB: "--be8" "-m" "armelfb_nbsd_eabi"
@@ -223,211 +228,238 @@
 
 // ARM-APCS: clang{{.*}}" "-cc1" "-triple" "armv4--netbsd"
 // ARM-APCS: as{{.*}}" "-mcpu=strongarm" "-o"
-// ARM-APCS: ld{{.*}}" "--eh-frame-hdr" "-dynamic-linker" "/libexec/ld.elf_so"
+// ARM-APCS: ld{{.*}}" "--sysroot=[[SYSROOT:[^"]+]]" "--eh-frame-hdr" "-dynamic-linker" "/libexec/ld.elf_so"
 // ARM-APCS: "-m" "armelf_nbsd"
 // ARM-APCS: "-o" "a.out" "{{.*}}/usr/lib{{/|\\\\}}crt0.o"
 // ARM-APCS: "{{.*}}/usr/lib{{/|\\\\}}oabi{{/|\\\\}}crti.o"
-// ARM-APCS: "{{.*}}/usr/lib{{/|\\\\}}crtbegin.o" "{{.*}}.o" "-lc"
+// ARM-APCS: "{{.*}}/usr/lib{{/|\\\\}}crtbegin.o"
+// ARM-APCS: "-L[[SYSROOT]]/usr/lib/oabi" "-L[[SYSROOT]]/usr/lib" "{{.*}}.o" "-lc"
 // ARM-APCS: "{{.*}}/usr/lib{{/|\\\\}}crtend.o" "{{.*}}/usr/lib{{/|\\\\}}crtn.o"
 
 // ARM-HF: clang{{.*}}" "-cc1" "-triple" "armv5e--netbsd-eabihf"
 // ARM-HF: as{{.*}}" "-mcpu=arm926ej-s" "-o"
-// ARM-HF: ld{{.*}}" "--eh-frame-hdr" "-dynamic-linker" "/libexec/ld.elf_so"
+// ARM-HF: ld{{.*}}" "--sysroot=[[SYSROOT:[^"]+]]" "--eh-frame-hdr" "-dynamic-linker" "/libexec/ld.elf_so"
 // ARM-HF: "-m" "armelf_nbsd_eabihf"
 // ARM-HF: "-o" "a.out" "{{.*}}/usr/lib{{/|\\\\}}crt0.o"
 // ARM-HF: "{{.*}}/usr/lib{{/|\\\\}}eabihf{{/|\\\\}}crti.o"
-// ARM-HF: "{{.*}}/usr/lib{{/|\\\\}}crtbegin.o" "{{.*}}.o" "-lc"
+// ARM-HF: "{{.*}}/usr/lib{{/|\\\\}}crtbegin.o"
+// ARM-HF: "-L[[SYSROOT]]/usr/lib/eabihf" "-L[[SYSROOT]]/usr/lib" "{{.*}}.o" "-lc"
 // ARM-HF: "{{.*}}/usr/lib{{/|\\\\}}crtend.o" "{{.*}}/usr/lib{{/|\\\\}}crtn.o"
 
 // THUMB: clang{{.*}}" "-cc1" "-triple" "armv5e--netbsd-eabi"
 // THUMB: as{{.*}}" "-mcpu=arm926ej-s" "-o"
-// THUMB: ld{{.*}}" "--eh-frame-hdr" "-dynamic-linker" "/libexec/ld.elf_so"
+// THUMB: ld{{.*}}" "--sysroot=[[SYSROOT:[^"]+]]" "--eh-frame-hdr" "-dynamic-linker" "/libexec/ld.elf_so"
 // THUMB: "-m" "armelf_nbsd_eabi"
 // THUMB: "-o" "a.out" "{{.*}}/usr/lib{{/|\\\\}}crt0.o"
 // THUMB: "{{.*}}/usr/lib{{/|\\\\}}eabi{{/|\\\\}}crti.o"
-// THUMB: "{{.*}}/usr/lib{{/|\\\\}}crtbegin.o" "{{.*}}.o" "-lc"
+// THUMB: "{{.*}}/usr/lib{{/|\\\\}}crtbegin.o"
+// THUMB: "-L[[SYSROOT]]/usr/lib/eabi" "-L[[SYSROOT]]/usr/lib" "{{.*}}.o" "-lc"
 // THUMB: "{{.*}}/usr/lib{{/|\\\\}}crtend.o" "{{.*}}/usr/lib{{/|\\\\}}crtn.o"
 
 // THUMBEB: clang{{.*}}" "-cc1" "-triple" "armebv5e--netbsd-eabi"
 // THUMBEB: as{{.*}}" "-mcpu=arm926ej-s" "-o"
-// THUMBEB: ld{{.*}}" "--eh-frame-hdr" "-dynamic-linker" "/libexec/ld.elf_so"
+// THUMBEB: ld{{.*}}" "--sysroot=[[SYSROOT:[^"]+]]" "--eh-frame-hdr" "-dynamic-linker" "/libexec/ld.elf_so"
 // THUMBEB: "-m" "armelfb_nbsd_eabi"
 // THUMBEB: "-o" "a.out" "{{.*}}/usr/lib{{/|\\\\}}crt0.o"
 // THUMBEB: "{{.*}}/usr/lib{{/|\\\\}}eabi{{/|\\\\}}crti.o"
-// THUMBEB: "{{.*}}/usr/lib{{/|\\\\}}crtbegin.o" "{{.*}}.o" "-lc"
+// THUMBEB: "{{.*}}/usr/lib{{/|\\\\}}crtbegin.o"
+// THUMBEB: "-L[[SYSROOT]]/usr/lib/eabi" "-L[[SYSROOT]]/usr/lib" "{{.*}}.o" "-lc"
 // THUMBEB: "{{.*}}/usr/lib{{/|\\\\}}crtend.o" "{{.*}}/usr/lib{{/|\\\\}}crtn.o"
 
 // ARM-7: clang{{.*}}" "-cc1" "-triple" "armv5e--netbsd7.0.0-eabi"
-// ARM-7: ld{{.*}}" "--eh-frame-hdr" "-dynamic-linker" "/libexec/ld.elf_so"
+// ARM-7: ld{{.*}}" "--sysroot=[[SYSROOT:[^"]+]]" "--eh-frame-hdr" "-dynamic-linker" "/libexec/ld.elf_so"
 // ARM-7: "-m" "armelf_nbsd_eabi"
 // ARM-7: "-o" "a.out" "{{.*}}/usr/lib{{/|\\\\}}crt0.o"
 // ARM-7: "{{.*}}/usr/lib{{/|\\\\}}eabi{{/|\\\\}}crti.o"
-// ARM-7:  "{{.*}}/usr/lib{{/|\\\\}}crtbegin.o" "{{.*}}.o" "-lc"
+// ARM-7:  "{{.*}}/usr/lib{{/|\\\\}}crtbegin.o"
+// ARM-7: "-L[[SYSROOT]]/usr/lib/eabi" "-L[[SYSROOT]]/usr/lib" "{{.*}}.o" "-lc"
 // ARM-7: "{{.*}}/usr/lib{{/|\\\\}}crtend.o" "{{.*}}/usr/lib{{/|\\\\}}crtn.o"
 
 // ARM-6: clang{{.*}}" "-cc1" "-triple" "armv5e--netbsd6.0.0-eabi"
-// ARM-6: ld{{.*}}" "--eh-frame-hdr" "-dynamic-linker" "/libexec/ld.elf_so"
+// ARM-6: ld{{.*}}" "--sysroot=[[SYSROOT:[^"]+]]" "--eh-frame-hdr" "-dynamic-linker" "/libexec/ld.elf_so"
 // ARM-6: "-m" "armelf_nbsd_eabi"
 // ARM-6: "-o" "a.out" "{{.*}}/usr/lib{{/|\\\\}}crt0.o"
 // ARM-6: "{{.*}}/usr/lib{{/|\\\\}}eabi{{/|\\\\}}crti.o"
-// ARM-6: "{{.*}}/usr/lib{{/|\\\\}}crtbegin.o" "{{.*}}.o" "-lc"
+// ARM-6: "{{.*}}/usr/lib{{/|\\\\}}crtbegin.o"
+// ARM-6: "-L[[SYSROOT]]/usr/lib/eabi" "-L[[SYSROOT]]/usr/lib" "{{.*}}.o" "-lc"
 // ARM-6: "{{.*}}/usr/lib{{/|\\\\}}crtend.o" "{{.*}}/usr/lib{{/|\\\\}}crtn.o"
 
 // SPARC: clang{{.*}}" "-cc1" "-triple" "sparc--netbsd"
 // SPARC: as{{.*}}" "-32" "-Av8" "-o"
-// SPARC: ld{{.*}}" "--eh-frame-hdr" "-dynamic-linker" "/libexec/ld.elf_so"
+// SPARC: ld{{.*}}" "--sysroot=[[SYSROOT:[^"]+]]" "--eh-frame-hdr" "-dynamic-linker" "/libexec/ld.elf_so"
 // SPARC: "-m" "elf32_sparc"
 // SPARC: "-o" "a.out" "{{.*}}/usr/lib{{/|\\\\}}crt0.o"
 // SPARC: "{{.*}}/usr/lib{{/|\\\\}}sparc{{/|\\\\}}crti.o"
-// SPARC: "{{.*}}/usr/lib{{/|\\\\}}crtbegin.o" "{{.*}}.o" "-lc"
+// SPARC: "{{.*}}/usr/lib{{/|\\\\}}crtbegin.o"
+// SPARC: "-L[[SYSROOT]]/usr/lib/sparc" "-L[[SYSROOT]]/usr/lib" "{{.*}}.o" "-lc"
 // SPARC: "{{.*}}/usr/lib{{/|\\\\}}crtend.o" "{{.*}}/usr/lib{{/|\\\\}}crtn.o"
 
 // SPARC64: clang{{.*}}" "-cc1" "-triple" "sparc64--netbsd"
 // SPARC64: as{{.*}}" "-64" "-Av9" "-o"
-// SPARC64: ld{{.*}}" "--eh-frame-hdr" "-dynamic-linker" "/libexec/ld.elf_so"
+// SPARC64: ld{{.*}}" "--sysroot=[[SYSROOT:[^"]+]]" "--eh-frame-hdr" "-dynamic-linker" "/libexec/ld.elf_so"
 // SPARC64: "-m" "elf64_sparc"
 // SPARC64: "-o" "a.out" "{{.*}}/usr/lib{{/|\\\\}}crt0.o" "{{.*}}/usr/lib{{/|\\\\}}crti.o"
-// SPARC64: "{{.*}}/usr/lib{{/|\\\\}}crtbegin.o" "{{.*}}.o" "-lc"
+// SPARC64: "{{.*}}/usr/lib{{/|\\\\}}crtbegin.o"
+// SPARC64: "-L[[SYSROOT]]/usr/lib" "{{.*}}.o" "-lc"
 // SPARC64: "{{.*}}/usr/lib{{/|\\\\}}crtend.o" "{{.*}}/usr/lib{{/|\\\\}}crtn.o"
 
 // POWERPC: clang{{.*}}" "-cc1" "-triple" "powerpc--netbsd"
-// POWERPC: ld{{.*}}" "--eh-frame-hdr" "-dynamic-linker" "/libexec/ld.elf_so"
+// POWERPC: ld{{.*}}" "--sysroot=[[SYSROOT:[^"]+]]" "--eh-frame-hdr" "-dynamic-linker" "/libexec/ld.elf_so"
 // POWERPC: "-m" "elf32ppc_nbsd"
 // POWERPC: "-o" "a.out" "{{.*}}/usr/lib{{/|\\\\}}crt0.o"
 // POWERPC: "{{.*}}/usr/lib{{/|\\\\}}powerpc{{/|\\\\}}crti.o"
-// POWERPC: "{{.*}}/usr/lib{{/|\\\\}}crtbegin.o" "{{.*}}.o" "-lc"
+// POWERPC: "{{.*}}/usr/lib{{/|\\\\}}crtbegin.o"
+// POWERPC: "-L[[SYSROOT]]/usr/lib/powerpc" "-L[[SYSROOT]]/usr/lib" "{{.*}}.o" "-lc"
 // POWERPC: "{{.*}}/usr/lib{{/|\\\\}}crtend.o" "{{.*}}/usr/lib{{/|\\\\}}crtn.o"
 
 // POWERPC64: clang{{.*}}" "-cc1" "-triple" "powerpc64--netbsd"
-// POWERPC64: ld{{.*}}" "--eh-frame-hdr" "-dynamic-linker" "/libexec/ld.elf_so"
+// POWERPC64: ld{{.*}}" "--sysroot=[[SYSROOT:[^"]+]]" "--eh-frame-hdr" "-dynamic-linker" "/libexec/ld.elf_so"
 // POWERPC64: "-m" "elf64ppc"
 // POWERPC64: "-o" "a.out" "{{.*}}/usr/lib{{/|\\\\}}crt0.o"
 // POWERPC64: "{{.*}}/usr/lib{{/|\\\\}}crti.o"
-// POWERPC64: "{{.*}}/usr/lib{{/|\\\\}}crtbegin.o" "{{.*}}.o" "-lc"
+// POWERPC64: "{{.*}}/usr/lib{{/|\\\\}}crtbegin.o"
+// POWERPC64: "-L[[SYSROOT]]/usr/lib" "{{.*}}.o" "-lc"
 // POWERPC64: "{{.*}}/usr/lib{{/|\\\\}}crtend.o" "{{.*}}/usr/lib{{/|\\\\}}crtn.o"
 
 // S-X86_64: clang{{.*}}" "-cc1" "-triple" "x86_64--netbsd"
-// S-X86_64: ld{{.*}}" "--eh-frame-hdr" "-Bstatic"
+// S-X86_64: ld{{.*}}" "--sysroot=[[SYSROOT:[^"]+]]" "--eh-frame-hdr" "-Bstatic"
 // S-X86_64: "-o" "a.out" "{{.*}}/usr/lib{{/|\\\\}}crt0.o" "{{.*}}/usr/lib{{/|\\\\}}crti.o"
-// S-X86_64: "{{.*}}/usr/lib{{/|\\\\}}crtbegin.o" "{{.*}}.o" "-lc"
+// S-X86_64: "{{.*}}/usr/lib{{/|\\\\}}crtbegin.o"
+// S-X86_64: "-L[[SYSROOT]]/usr/lib" "{{.*}}.o" "-lc"
 // S-X86_64: "{{.*}}/usr/lib{{/|\\\\}}crtend.o" "{{.*}}/usr/lib{{/|\\\\}}crtn.o"
 
 // S-X86_64-7: clang{{.*}}" "-cc1" "-triple" "x86_64--netbsd7.0.0"
-// S-X86_64-7: ld{{.*}}" "--eh-frame-hdr" "-Bstatic"
+// S-X86_64-7: ld{{.*}}" "--sysroot=[[SYSROOT:[^"]+]]" "--eh-frame-hdr" "-Bstatic"
 // S-X86_64-7: "-o" "a.out" "{{.*}}/usr/lib{{/|\\\\}}crt0.o" "{{.*}}/usr/lib{{/|\\\\}}crti.o"
-// S-X86_64-7: "{{.*}}/usr/lib{{/|\\\\}}crtbegin.o" "{{.*}}.o" "-lc"
+// S-X86_64-7: "{{.*}}/usr/lib{{/|\\\\}}crtbegin.o"
+// S-X86_64-7: "-L[[SYSROOT]]/usr/lib" "{{.*}}.o" "-lc"
 // S-X86_64-7: "{{.*}}/usr/lib{{/|\\\\}}crtend.o" "{{.*}}/usr/lib{{/|\\\\}}crtn.o"
 
 // S-X86_64-6: clang{{.*}}" "-cc1" "-triple" "x86_64--netbsd6.0.0"
-// S-X86_64-6: ld{{.*}}" "--eh-frame-hdr" "-Bstatic"
+// S-X86_64-6: ld{{.*}}" "--sysroot=[[SYSROOT:[^"]+]]" "--eh-frame-hdr" "-Bstatic"
 // S-X86_64-6: "-o" "a.out" "{{.*}}/usr/lib{{/|\\\\}}crt0.o" "{{.*}}/usr/lib{{/|\\\\}}crti.o"
-// S-X86_64-6: "{{.*}}/usr/lib{{/|\\\\}}crtbegin.o" "{{.*}}.o" "-lc"
+// S-X86_64-6: "{{.*}}/usr/lib{{/|\\\\}}crtbegin.o"
+// S-X86_64-6: "-L[[SYSROOT]]/usr/lib" "{{.*}}.o" "-lc"
 // S-X86_64-6: "-lgcc_eh" "-lc" "-lgcc"
 // S-X86_64-6: "{{.*}}/usr/lib{{/|\\\\}}crtend.o" "{{.*}}/usr/lib{{/|\\\\}}crtn.o"
 
 // S-AARCH64: clang{{.*}}" "-cc1" "-triple" "aarch64--netbsd"
-// S-AARCH64: ld{{.*}}" "--eh-frame-hdr" "-Bstatic"
+// S-AARCH64: ld{{.*}}" "--sysroot=[[SYSROOT:[^"]+]]" "--eh-frame-hdr" "-Bstatic"
 // S-AARCH64: "-o" "a.out" "{{.*}}/usr/lib{{/|\\\\}}crt0.o" "{{.*}}/usr/lib{{/|\\\\}}crti.o"
-// S-AARCH64: "{{.*}}/usr/lib{{/|\\\\}}crtbegin.o" "{{.*}}.o" "-lc"
+// S-AARCH64: "{{.*}}/usr/lib{{/|\\\\}}crtbegin.o"
+// S-AARCH64: "-L[[SYSROOT]]/usr/lib" "{{.*}}.o" "-lc"
 // S-AARCH64: "{{.*}}/usr/lib{{/|\\\\}}crtend.o" "{{.*}}/usr/lib{{/|\\\\}}crtn.o"
 
 // S-AARCH64-7: clang{{.*}}" "-cc1" "-triple" "aarch64--netbsd7.0.0"
-// S-AARCH64-7: ld{{.*}}" "--eh-frame-hdr" "-Bstatic"
+// S-AARCH64-7: ld{{.*}}" "--sysroot=[[SYSROOT:[^"]+]]" "--eh-frame-hdr" "-Bstatic"
 // S-AARCH64-7: "-o" "a.out" "{{.*}}/usr/lib{{/|\\\\}}crt0.o" "{{.*}}/usr/lib{{/|\\\\}}crti.o"
-// S-AARCH64-7: "{{.*}}/usr/lib{{/|\\\\}}crtbegin.o" "{{.*}}.o" "-lc"
+// S-AARCH64-7: "{{.*}}/usr/lib{{/|\\\\}}crtbegin.o"
+// S-AARCH64-7: "-L[[SYSROOT]]/usr/lib" "{{.*}}.o" "-lc"
 // S-AARCH64-7: "{{.*}}/usr/lib{{/|\\\\}}crtend.o" "{{.*}}/usr/lib{{/|\\\\}}crtn.o"
 
 // S-AARCH64_BE: clang{{.*}}" "-cc1" "-triple" "aarch64_be--netbsd"
-// S-AARCH64_BE: ld{{.*}}" "--eh-frame-hdr" "-Bstatic"
+// S-AARCH64_BE: ld{{.*}}" "--sysroot=[[SYSROOT:[^"]+]]" "--eh-frame-hdr" "-Bstatic"
 // S-AARCH64_BE: "-o" "a.out" "{{.*}}/usr/lib{{/|\\\\}}crt0.o" "{{.*}}/usr/lib{{/|\\\\}}crti.o"
-// S-AARCH64_BE: "{{.*}}/usr/lib{{/|\\\\}}crtbegin.o" "{{.*}}.o" "-lc"
+// S-AARCH64_BE: "{{.*}}/usr/lib{{/|\\\\}}crtbegin.o"
+// S-AARCH64_BE: "-L[[SYSROOT]]/usr/lib" "{{.*}}.o" "-lc"
 // S-AARCH64_BE: "{{.*}}/usr/lib{{/|\\\\}}crtend.o" "{{.*}}/usr/lib{{/|\\\\}}crtn.o"
 
 // S-AARCH64_BE-7: clang{{.*}}" "-cc1" "-triple" "aarch64_be--netbsd7.0.0"
-// S-AARCH64_BE-7: ld{{.*}}" "--eh-frame-hdr" "-Bstatic"
+// S-AARCH64_BE-7: ld{{.*}}" "--sysroot=[[SYSROOT:[^"]+]]" "--eh-frame-hdr" "-Bstatic"
 // S-AARCH64_BE-7: "-o" "a.out" "{{.*}}/usr/lib{{/|\\\\}}crt0.o" "{{.*}}/usr/lib{{/|\\\\}}crti.o"
-// S-AARCH64_BE-7: "{{.*}}/usr/lib{{/|\\\\}}crtbegin.o" "{{.*}}.o" "-lc"
+// S-AARCH64_BE-7: "{{.*}}/usr/lib{{/|\\\\}}crtbegin.o"
+// S-AARCH64_BE-7: "-L[[SYSROOT]]/usr/lib" "{{.*}}.o" "-lc"
 // S-AARCH64_BE-7: "{{.*}}/usr/lib{{/|\\\\}}crtend.o" "{{.*}}/usr/lib{{/|\\\\}}crtn.o"
 
 // S-ARM: clang{{.*}}" "-cc1" "-triple" "armv5e--netbsd-eabi"
-// S-ARM: ld{{.*}}" "--eh-frame-hdr" "-Bstatic"
+// S-ARM: ld{{.*}}" "--sysroot=[[SYSROOT:[^"]+]]" "--eh-frame-hdr" "-Bstatic"
 // S-ARM: "-m" "armelf_nbsd_eabi"
 // S-ARM: "-o" "a.out" "{{.*}}/usr/lib{{/|\\\\}}crt0.o"
 // S-ARM: "{{.*}}/usr/lib{{/|\\\\}}eabi{{/|\\\\}}crti.o"
-// S-ARM: "{{.*}}/usr/lib{{/|\\\\}}crtbegin.o" "{{.*}}.o" "-lc"
+// S-ARM: "{{.*}}/usr/lib{{/|\\\\}}crtbegin.o"
+// S-ARM: "-L[[SYSROOT]]/usr/lib/eabi" "-L[[SYSROOT]]/usr/lib" "{{.*}}.o" "-lc"
 // S-ARM: "{{.*}}/usr/lib{{/|\\\\}}crtend.o" "{{.*}}/usr/lib{{/|\\\\}}crtn.o"
 
 // S-ARMEB: clang{{.*}}" "-cc1" "-triple" "armebv5e--netbsd-eabi"
-// S-ARMEB: ld{{.*}}" "--eh-frame-hdr" "-Bstatic"
+// S-ARMEB: ld{{.*}}" "--sysroot=[[SYSROOT:[^"]+]]" "--eh-frame-hdr" "-Bstatic"
 // S-ARMEB: "-m" "armelfb_nbsd_eabi"
 // S-ARMEB: "-o" "a.out" "{{.*}}/usr/lib{{/|\\\\}}crt0.o"
 // S-ARMEB: "{{.*}}/usr/lib{{/|\\\\}}eabi{{/|\\\\}}crti.o"
-// S-ARMEB: "{{.*}}/usr/lib{{/|\\\\}}crtbegin.o" "{{.*}}.o" "-lc"
+// S-ARMEB: "{{.*}}/usr/lib{{/|\\\\}}crtbegin.o"
+// S-ARMEB: "-L[[SYSROOT]]/usr/lib/eabi" "-L[[SYSROOT]]/usr/lib" "{{.*}}.o" "-lc"
 // S-ARMEB: "{{.*}}/usr/lib{{/|\\\\}}crtend.o" "{{.*}}/usr/lib{{/|\\\\}}crtn.o"
 
 // S-ARM-7: clang{{.*}}" "-cc1" "-triple" "armv5e--netbsd7.0.0-eabi"
-// S-ARM-7: ld{{.*}}" "--eh-frame-hdr" "-Bstatic"
+// S-ARM-7: ld{{.*}}" "--sysroot=[[SYSROOT:[^"]+]]" "--eh-frame-hdr" "-Bstatic"
 // S-ARM-7: "-m" "armelf_nbsd_eabi"
 // S-ARM-7: "-o" "a.out" "{{.*}}/usr/lib{{/|\\\\}}crt0.o"
 // S-ARM-7: "{{.*}}/usr/lib{{/|\\\\}}eabi{{/|\\\\}}crti.o"
-// S-ARM-7: "{{.*}}/usr/lib{{/|\\\\}}crtbegin.o" "{{.*}}.o" "-lc"
+// S-ARM-7: "{{.*}}/usr/lib{{/|\\\\}}crtbegin.o"
+// S-ARM-7: "-L[[SYSROOT]]/usr/lib/eabi" "-L[[SYSROOT]]/usr/lib" "{{.*}}.o" "-lc"
 // S-ARM-7: "{{.*}}/usr/lib{{/|\\\\}}crtend.o" "{{.*}}/usr/lib{{/|\\\\}}crtn.o"
 
 // S-ARM-6: clang{{.*}}" "-cc1" "-triple" "armv5e--netbsd6.0.0-eabi"
-// S-ARM-6: ld{{.*}}" "--eh-frame-hdr" "-Bstatic"
+// S-ARM-6: ld{{.*}}" "--sysroot=[[SYSROOT:[^"]+]]" "--eh-frame-hdr" "-Bstatic"
 // S-ARM-6: "-m" "armelf_nbsd_eabi"
 // S-ARM-6: "-o" "a.out" "{{.*}}/usr/lib{{/|\\\\}}crt0.o"
 // S-ARM-6: "{{.*}}/usr/lib{{/|\\\\}}eabi{{/|\\\\}}crti.o"
-// S-ARM-6: "{{.*}}/usr/lib{{/|\\\\}}crtbegin.o" "{{.*}}.o" "-lc"
+// S-ARM-6: "{{.*}}/usr/lib{{/|\\\\}}crtbegin.o"
+// S-ARM-6: "-L[[SYSROOT]]/usr/lib/eabi" "-L[[SYSROOT]]/usr/lib" "{{.*}}.o" "-lc"
 // S-ARM-6: "-lgcc_eh" "-lc" "-lgcc"
 // S-ARM-6: "{{.*}}/usr/lib{{/|\\\\}}crtend.o" "{{.*}}/usr/lib{{/|\\\\}}crtn.o"
 
 // S-SPARC-6: clang{{.*}}" "-cc1" "-triple" "sparc--netbsd6.0.0"
-// S-SPARC-6: ld{{.*}}" "--eh-frame-hdr" "-Bstatic"
+// S-SPARC-6: ld{{.*}}" "--sysroot=[[SYSROOT:[^"]+]]" "--eh-frame-hdr" "-Bstatic"
 // S-SPARC-6: "-m" "elf32_sparc"
 // S-SPARC-6: "-o" "a.out" "{{.*}}/usr/lib{{/|\\\\}}crt0.o"
 // S-SPARC-6: "{{.*}}/usr/lib{{/|\\\\}}sparc{{/|\\\\}}crti.o"
-// S-SPARC-6: "{{.*}}/usr/lib{{/|\\\\}}crtbegin.o" "{{.*}}.o" "-lc"
+// S-SPARC-6: "{{.*}}/usr/lib{{/|\\\\}}crtbegin.o"
+// S-SPARC-6: "-L[[SYSROOT]]/usr/lib/sparc" "-L[[SYSROOT]]/usr/lib" "{{.*}}.o" "-lc"
 // S-SPARC-6: "-lgcc_eh" "-lc" "-lgcc"
 // S-SPARC-6: "{{.*}}/usr/lib{{/|\\\\}}crtend.o" "{{.*}}/usr/lib{{/|\\\\}}crtn.o"
 
 // S-SPARC-7: clang{{.*}}" "-cc1" "-triple" "sparc--netbsd7.0.0"
-// S-SPARC-7: ld{{.*}}" "--eh-frame-hdr" "-Bstatic"
+// S-SPARC-7: ld{{.*}}" "--sysroot=[[SYSROOT:[^"]+]]" "--eh-frame-hdr" "-Bstatic"
 // S-SPARC-7: "-m" "elf32_sparc"
 // S-SPARC-7: "-o" "a.out" "{{.*}}/usr/lib{{/|\\\\}}crt0.o"
 // S-SPARC-7: "{{.*}}/usr/lib{{/|\\\\}}sparc{{/|\\\\}}crti.o"
-// S-SPARC-7: "{{.*}}/usr/lib{{/|\\\\}}crtbegin.o" "{{.*}}.o" "-lc"
+// S-SPARC-7: "{{.*}}/usr/lib{{/|\\\\}}crtbegin.o"
+// S-SPARC-7: "-L[[SYSROOT]]/usr/lib/sparc" "-L[[SYSROOT]]/usr/lib" "{{.*}}.o" "-lc"
 // S-SPARC-7: "{{.*}}/usr/lib{{/|\\\\}}crtend.o" "{{.*}}/usr/lib{{/|\\\\}}crtn.o"
 
 // S-SPARC64-6: clang{{.*}}" "-cc1" "-triple" "sparc64--netbsd6.0.0"
-// S-SPARC64-6: ld{{.*}}" "--eh-frame-hdr" "-Bstatic"
+// S-SPARC64-6: ld{{.*}}" "--sysroot=[[SYSROOT:[^"]+]]" "--eh-frame-hdr" "-Bstatic"
 // S-SPARC64-6: "-m" "elf64_sparc"
 // S-SPARC64-6: "-o" "a.out" "{{.*}}/usr/lib{{/|\\\\}}crt0.o" "{{.*}}/usr/lib{{/|\\\\}}crti.o"
-// S-SPARC64-6: "{{.*}}/usr/lib{{/|\\\\}}crtbegin.o" "{{.*}}.o" "-lc"
+// S-SPARC64-6: "{{.*}}/usr/lib{{/|\\\\}}crtbegin.o"
+// S-SPARC64-6: "-L[[SYSROOT]]/usr/lib" "{{.*}}.o" "-lc"
 // S-SPARC64-6: "-lgcc_eh" "-lc" "-lgcc"
 // S-SPARC64-6: "{{.*}}/usr/lib{{/|\\\\}}crtend.o" "{{.*}}/usr/lib{{/|\\\\}}crtn.o"
 
 // S-SPARC64-7: clang{{.*}}" "-cc1" "-triple" "sparc64--netbsd7.0.0"
-// S-SPARC64-7: ld{{.*}}" "--eh-frame-hdr" "-Bstatic"
+// S-SPARC64-7: ld{{.*}}" "--sysroot=[[SYSROOT:[^"]+]]" "--eh-frame-hdr" "-Bstatic"
 // S-SPARC64-7: "-m" "elf64_sparc"
 // S-SPARC64-7: "-o" "a.out" "{{.*}}/usr/lib{{/|\\\\}}crt0.o" "{{.*}}/usr/lib{{/|\\\\}}crti.o"
-// S-SPARC64-7: "{{.*}}/usr/lib{{/|\\\\}}crtbegin.o" "{{.*}}.o" "-lc"
+// S-SPARC64-7: "{{.*}}/usr/lib{{/|\\\\}}crtbegin.o"
+// S-SPARC64-7: "-L[[SYSROOT]]/usr/lib" "{{.*}}.o" "-lc"
 // S-SPARC64-7: "{{.*}}/usr/lib{{/|\\\\}}crtend.o" "{{.*}}/usr/lib{{/|\\\\}}crtn.o"
 
 // S-POWERPC: clang{{.*}}" "-cc1" "-triple" "powerpc--netbsd"
-// S-POWERPC: ld{{.*}}" "--eh-frame-hdr" "-Bstatic"
+// S-POWERPC: ld{{.*}}" "--sysroot=[[SYSROOT:[^"]+]]" "--eh-frame-hdr" "-Bstatic"
 // S-POWERPC: "-m" "elf32ppc_nbsd"
 // S-POWERPC: "-o" "a.out" "{{.*}}/usr/lib{{/|\\\\}}crt0.o"
 // S-POWERPC: "{{.*}}/usr/lib{{/|\\\\}}powerpc{{/|\\\\}}crti.o"
-// S-POWERPC: "{{.*}}/usr/lib{{/|\\\\}}crtbegin.o" "{{.*}}.o" "-lc"
+// S-POWERPC: "{{.*}}/usr/lib{{/|\\\\}}crtbegin.o"
+// S-POWERPC: "-L[[SYSROOT]]/usr/lib/powerpc" "-L[[SYSROOT]]/usr/lib" "{{.*}}.o" "-lc"
 // S-POWERPC: "{{.*}}/usr/lib{{/|\\\\}}crtend.o" "{{.*}}/usr/lib{{/|\\\\}}crtn.o"
 
 // S-POWERPC64: clang{{.*}}" "-cc1" "-triple" "powerpc64--netbsd"
-// S-POWERPC64: ld{{.*}}" "--eh-frame-hdr" "-Bstatic"
+// S-POWERPC64: ld{{.*}}" "--sysroot=[[SYSROOT:[^"]+]]" "--eh-frame-hdr" "-Bstatic"
 // S-POWERPC64: "-m" "elf64ppc"
 // S-POWERPC64: "-o" "a.out" "{{.*}}/usr/lib{{/|\\\\}}crt0.o"
 // S-POWERPC64: "{{.*}}/usr/lib{{/|\\\\}}crti.o"
-// S-POWERPC64: "{{.*}}/usr/lib{{/|\\\\}}crtbegin.o" "{{.*}}.o" "-lc"
+// S-POWERPC64: "{{.*}}/usr/lib{{/|\\\\}}crtbegin.o"
+// S-POWERPC64: "-L[[SYSROOT]]/usr/lib" "{{.*}}.o" "-lc"
 // S-POWERPC64: "{{.*}}/usr/lib{{/|\\\\}}crtend.o" "{{.*}}/usr/lib{{/|\\\\}}crtn.o"
 
 // PTHREAD-NOT: _POSIX_THREADS
Index: lib/Driver/ToolChains/NetBSD.cpp
===================================================================
--- lib/Driver/ToolChains/NetBSD.cpp
+++ lib/Driver/ToolChains/NetBSD.cpp
@@ -239,6 +239,7 @@
   }
 
   Args.AddAllArgs(CmdArgs, options::OPT_L);
+  getToolChain().AddFilePathLibArgs(Args, CmdArgs);
   Args.AddAllArgs(CmdArgs, options::OPT_T_Group);
   Args.AddAllArgs(CmdArgs, options::OPT_e);
   Args.AddAllArgs(CmdArgs, options::OPT_s);
@@ -326,46 +327,48 @@
     // doesn't work.
     // FIXME: It'd be nicer to test if this directory exists, but I'm not sure
     // what all logic is needed to emulate the '=' prefix here.
+    auto AddPath = [&](StringRef Path) {
+      getFilePaths().push_back(getDriver().SysRoot + Path.str());
+    };
     switch (Triple.getArch()) {
     case llvm::Triple::x86:
-      getFilePaths().push_back("=/usr/lib/i386");
+      AddPath("/usr/lib/i386");
       break;
     case llvm::Triple::arm:
     case llvm::Triple::armeb:
     case llvm::Triple::thumb:
     case llvm::Triple::thumbeb:
       switch (Triple.getEnvironment()) {
       case llvm::Triple::EABI:
       case llvm::Triple::GNUEABI:
-        getFilePaths().push_back("=/usr/lib/eabi");
+        AddPath("/usr/lib/eabi");
         break;
       case llvm::Triple::EABIHF:
       case llvm::Triple::GNUEABIHF:
-        getFilePaths().push_back("=/usr/lib/eabihf");
+        AddPath("/usr/lib/eabihf");
         break;
       default:
-        getFilePaths().push_back("=/usr/lib/oabi");
+        AddPath("/usr/lib/oabi");
         break;
       }
       break;
     case llvm::Triple::mips64:
     case llvm::Triple::mips64el:
       if (tools::mips::hasMipsAbiArg(Args, "o32"))
-        getFilePaths().push_back("=/usr/lib/o32");
+        AddPath("/usr/lib/o32");
       else if (tools::mips::hasMipsAbiArg(Args, "64"))
-        getFilePaths().push_back("=/usr/lib/64");
+        AddPath("/usr/lib/64");
       break;
     case llvm::Triple::ppc:
-      getFilePaths().push_back("=/usr/lib/powerpc");
+      AddPath("/usr/lib/powerpc");
       break;
     case llvm::Triple::sparc:
-      getFilePaths().push_back("=/usr/lib/sparc");
+      AddPath("/usr/lib/sparc");
       break;
     default:
       break;
     }
-
-    getFilePaths().push_back("=/usr/lib");
+    AddPath("/usr/lib");
   }
 }
 
_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to