Link to crtend.S when PIE in the FreeBSD driver. Patch by Brooks Davis!
llvm-svn: 163388
This commit is contained in:
parent
cc0637c2b6
commit
a3c5024277
|
@ -5353,10 +5353,10 @@ void freebsd::Link::ConstructJob(Compilation &C, const JobAction &JA,
|
|||
|
||||
if (!Args.hasArg(options::OPT_nostdlib) &&
|
||||
!Args.hasArg(options::OPT_nostartfiles)) {
|
||||
if (!Args.hasArg(options::OPT_shared))
|
||||
CmdArgs.push_back(Args.MakeArgString(ToolChain.GetFilePath("crtend.o")));
|
||||
else
|
||||
if (Args.hasArg(options::OPT_shared) || Args.hasArg(options::OPT_pie))
|
||||
CmdArgs.push_back(Args.MakeArgString(ToolChain.GetFilePath("crtendS.o")));
|
||||
else
|
||||
CmdArgs.push_back(Args.MakeArgString(ToolChain.GetFilePath("crtend.o")));
|
||||
CmdArgs.push_back(Args.MakeArgString(ToolChain.GetFilePath("crtn.o")));
|
||||
}
|
||||
|
||||
|
|
|
@ -23,6 +23,11 @@
|
|||
// CHECK-PIE2-NOT: "-mrelocation-model"
|
||||
// CHECK-PIE2: "-pie-level" "2"
|
||||
//
|
||||
// CHECK-PIE3: "{{.*}}ld"
|
||||
// CHECK-PIE3: "-pie"
|
||||
// CHECK-PIE3: "Scrt1.o" "crti.o" "crtbeginS.o"
|
||||
// CHECK-PIE3: "crtendS.o" "crtn.o"
|
||||
//
|
||||
// RUN: %clang -c %s -target i386-unknown-unknown -### 2>&1 \
|
||||
// RUN: | FileCheck %s --check-prefix=CHECK-NO-PIC
|
||||
// RUN: %clang -c %s -target i386-unknown-unknown -fpic -### 2>&1 \
|
||||
|
@ -70,6 +75,15 @@
|
|||
// RUN: %clang -c %s -target i386-apple-darwin -fno-PIC -### 2>&1 \
|
||||
// RUN: | FileCheck %s --check-prefix=CHECK-NO-PIC
|
||||
//
|
||||
// Make sure -pie is passed to along to ld and that the right *crt* files
|
||||
// are linked in.
|
||||
// RUN: %clang %s -target i386-unknown-freebsd -fPIE -pie -### \
|
||||
// RUN: --sysroot=%S/Inputs/basic_freebsd_tree 2>&1 \
|
||||
// RUN: | FileCheck %s --check-prefix=CHECK-PIE3
|
||||
// RUN: %clang %s -target i386-linux-gnu -fPIE -pie -### \
|
||||
// RUN: --sysroot=%S/Inputs/basic_linux_tree 2>&1 \
|
||||
// RUN: | FileCheck %s --check-prefix=CHECK-PIE3
|
||||
//
|
||||
// Disregard any of the PIC-specific flags if we have a trump-card flag.
|
||||
// RUN: %clang -c %s -target i386-unknown-unknown -mkernel -fPIC -### 2>&1 \
|
||||
// RUN: | FileCheck %s --check-prefix=CHECK-NO-PIC
|
||||
|
|
Loading…
Reference in New Issue