From: Simon Atanasyan Date: Fri, 6 Apr 2012 20:14:27 +0000 (+0000) Subject: MIPS: Provide a correct path to the dynamic linker when build for MIPS 64-bit targets. X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=8491cb245f7fccfb049f860444467130f68189d3;p=clang MIPS: Provide a correct path to the dynamic linker when build for MIPS 64-bit targets. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@154200 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/lib/Driver/Tools.cpp b/lib/Driver/Tools.cpp index 8c4378c666..ae9c1a54f1 100644 --- a/lib/Driver/Tools.cpp +++ b/lib/Driver/Tools.cpp @@ -5164,6 +5164,9 @@ void linuxtools::Link::ConstructJob(Compilation &C, const JobAction &JA, else if (ToolChain.getArch() == llvm::Triple::mips || ToolChain.getArch() == llvm::Triple::mipsel) CmdArgs.push_back("/lib/ld.so.1"); + else if (ToolChain.getArch() == llvm::Triple::mips64 || + ToolChain.getArch() == llvm::Triple::mips64el) + CmdArgs.push_back("/lib64/ld.so.1"); else if (ToolChain.getArch() == llvm::Triple::ppc) CmdArgs.push_back("/lib/ld.so.1"); else if (ToolChain.getArch() == llvm::Triple::ppc64) diff --git a/test/Driver/linux-ld.c b/test/Driver/linux-ld.c index 1ade7f1d05..9a35d5d386 100644 --- a/test/Driver/linux-ld.c +++ b/test/Driver/linux-ld.c @@ -187,26 +187,35 @@ // CHECK-SUSE-10-3-PPC64: "-L[[SYSROOT]]/usr/lib/../lib64" // // Check that we do not pass --hash-style=gnu and --hash-style=both to linker -// when build for MIPS platforms. +// and provide correct path to the dynamic linker and emulation mode when build +// for MIPS platforms. // RUN: %clang %s -### -o %t.o 2>&1 \ // RUN: -target mips-linux-gnu -ccc-clang-archs mips \ // RUN: | FileCheck --check-prefix=CHECK-MIPS %s // CHECK-MIPS: "{{.*}}ld{{(.exe)?}}" +// CHECK-MIPS: "-m" "elf32btsmip" +// CHECK-MIPS: "-dynamic-linker" "{{.*}}/lib/ld.so.1" // CHECK-MIPS-NOT: "--hash-style={{gnu|both}}" // RUN: %clang %s -### -o %t.o 2>&1 \ // RUN: -target mipsel-linux-gnu -ccc-clang-archs mipsel \ // RUN: | FileCheck --check-prefix=CHECK-MIPSEL %s // CHECK-MIPSEL: "{{.*}}ld{{(.exe)?}}" +// CHECK-MIPSEL: "-m" "elf32ltsmip" +// CHECK-MIPSEL: "-dynamic-linker" "{{.*}}/lib/ld.so.1" // CHECK-MIPSEL-NOT: "--hash-style={{gnu|both}}" // RUN: %clang %s -### -o %t.o 2>&1 \ // RUN: -target mips64-linux-gnu -ccc-clang-archs mips64 \ // RUN: | FileCheck --check-prefix=CHECK-MIPS64 %s // CHECK-MIPS64: "{{.*}}ld{{(.exe)?}}" +// CHECK-MIPS64: "-m" "elf64btsmip" +// CHECK-MIPS64: "-dynamic-linker" "{{.*}}/lib64/ld.so.1" // CHECK-MIPS64-NOT: "--hash-style={{gnu|both}}" // RUN: %clang %s -### -o %t.o 2>&1 \ // RUN: -target mips64el-linux-gnu -ccc-clang-archs mips64el \ // RUN: | FileCheck --check-prefix=CHECK-MIPS64EL %s // CHECK-MIPS64EL: "{{.*}}ld{{(.exe)?}}" +// CHECK-MIPS64EL: "-m" "elf64ltsmip" +// CHECK-MIPS64EL: "-dynamic-linker" "{{.*}}/lib64/ld.so.1" // CHECK-MIPS64EL-NOT: "--hash-style={{gnu|both}}" // // Thoroughly exercise the Debian multiarch environment.