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. llvm-svn: 243262
This commit is contained in:
		
							parent
							
								
									015ce0f68f
								
							
						
					
					
						commit
						24ba3e9852
					
				| 
						 | 
				
			
			@ -7887,13 +7887,15 @@ static std::string getLinuxDynamicLinker(const ArgList &Args,
 | 
			
		|||
  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";
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -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)?}}"
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in New Issue