Author: rengolin Date: Mon Jul 27 04:56:37 2015 New Revision: 243262 URL: http://llvm.org/viewvc/llvm-project?rev=243262&view=rev Log: Setting ARM dynamic linker name from commandline
Currently trigger to select hard-float linker is only based of -gnueabihf appearing in target triplet, but we should also select it when hardfloat is requested via cmdline. Patch by Khem Raj. Modified: cfe/trunk/lib/Driver/Tools.cpp cfe/trunk/test/Driver/linux-ld.c Modified: cfe/trunk/lib/Driver/Tools.cpp URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Driver/Tools.cpp?rev=243262&r1=243261&r2=243262&view=diff ============================================================================== --- cfe/trunk/lib/Driver/Tools.cpp (original) +++ cfe/trunk/lib/Driver/Tools.cpp Mon Jul 27 04:56:37 2015 @@ -7887,13 +7887,15 @@ static std::string getLinuxDynamicLinker else if (Arch == llvm::Triple::aarch64_be) return "/lib/ld-linux-aarch64_be.so.1"; else if (Arch == llvm::Triple::arm || Arch == llvm::Triple::thumb) { - if (ToolChain.getTriple().getEnvironment() == llvm::Triple::GNUEABIHF) + if (ToolChain.getTriple().getEnvironment() == llvm::Triple::GNUEABIHF || + tools::arm::getARMFloatABI(ToolChain.getDriver(), Args, ToolChain.getTriple()) == "hard") return "/lib/ld-linux-armhf.so.3"; else return "/lib/ld-linux.so.3"; } else if (Arch == llvm::Triple::armeb || Arch == llvm::Triple::thumbeb) { // TODO: check which dynamic linker name. - if (ToolChain.getTriple().getEnvironment() == llvm::Triple::GNUEABIHF) + if (ToolChain.getTriple().getEnvironment() == llvm::Triple::GNUEABIHF || + tools::arm::getARMFloatABI(ToolChain.getDriver(), Args, ToolChain.getTriple()) == "hard") return "/lib/ld-linux-armhf.so.3"; else return "/lib/ld-linux.so.3"; Modified: cfe/trunk/test/Driver/linux-ld.c URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/Driver/linux-ld.c?rev=243262&r1=243261&r2=243262&view=diff ============================================================================== --- cfe/trunk/test/Driver/linux-ld.c (original) +++ cfe/trunk/test/Driver/linux-ld.c Mon Jul 27 04:56:37 2015 @@ -618,6 +618,13 @@ // CHECK-ARM: "-dynamic-linker" "{{.*}}/lib/ld-linux.so.3" // // RUN: %clang %s -### -o %t.o 2>&1 \ +// RUN: --target=arm-linux-gnueabi -mfloat-abi=hard \ +// RUN: | FileCheck --check-prefix=CHECK-ARM-ABIHF %s +// CHECK-ARM-ABIHF: "{{.*}}ld{{(.exe)?}}" +// CHECK-ARM-ABIHF: "-m" "armelf_linux_eabi" +// CHECK-ARM-ABIHF: "-dynamic-linker" "{{.*}}/lib/ld-linux-armhf.so.3" +// +// RUN: %clang %s -### -o %t.o 2>&1 \ // RUN: --target=arm-linux-gnueabihf \ // RUN: | FileCheck --check-prefix=CHECK-ARM-HF %s // CHECK-ARM-HF: "{{.*}}ld{{(.exe)?}}" _______________________________________________ cfe-commits mailing list cfe-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits