[PATCH] D12208: [Sparc] Support user-specified stack object overalignment.
James Y Knight via llvm-commits
llvm-commits at lists.llvm.org
Thu Aug 20 21:15:56 PDT 2015
This revision was automatically updated to reflect the committed changes.
Closed by commit rL245667: Stop treating -static as overriding -fPIC: they are distinct. (authored by jyknight).
Changed prior to commit:
http://reviews.llvm.org/D12208?vs=32725&id=32791#toc
Repository:
rL LLVM
http://reviews.llvm.org/D12208
Files:
cfe/trunk/lib/Driver/Tools.cpp
cfe/trunk/test/Driver/pic.c
Index: cfe/trunk/test/Driver/pic.c
===================================================================
--- cfe/trunk/test/Driver/pic.c
+++ cfe/trunk/test/Driver/pic.c
@@ -11,6 +11,7 @@
// CHECK-PIC2: "-mrelocation-model" "pic"
// CHECK-PIC2: "-pic-level" "2"
//
+// CHECK-STATIC: "-static"
// CHECK-NO-STATIC-NOT: "-static"
//
// CHECK-PIE1: "-mrelocation-model" "pic"
@@ -135,8 +136,15 @@
// 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
+
+// The -static argument *doesn't* override PIC: -static only affects
+// linking, and -fPIC only affects code generation.
// RUN: %clang -c %s -target i386-unknown-unknown -static -fPIC -### 2>&1 \
-// RUN: | FileCheck %s --check-prefix=CHECK-NO-PIC
+// RUN: | FileCheck %s --check-prefix=CHECK-PIC2
+// RUN: %clang %s -target i386-linux-gnu -static -fPIC -### \
+// RUN: --gcc-toolchain="" \
+// RUN: --sysroot=%S/Inputs/basic_linux_tree 2>&1 \
+// RUN: | FileCheck %s --check-prefix=CHECK-STATIC
//
// On Linux, disregard -pie if we have -shared.
// RUN: %clang %s -target i386-unknown-linux -shared -pie -### 2>&1 \
@@ -207,7 +215,7 @@
// RUN: %clang -c %s -target armv7-apple-ios -fapple-kext -miphoneos-version-min=5.0.0 -### 2>&1 \
// RUN: | FileCheck %s --check-prefix=CHECK-NO-PIC
// RUN: %clang -c %s -target armv7-apple-ios -fapple-kext -miphoneos-version-min=6.0.0 -static -### 2>&1 \
-// RUN: | FileCheck %s --check-prefix=CHECK-NO-PIC
+// RUN: | FileCheck %s --check-prefix=CHECK-PIC2
//
// On OpenBSD, PIE is enabled by default, but can be disabled.
// RUN: %clang -c %s -target amd64-pc-openbsd -### 2>&1 \
Index: cfe/trunk/lib/Driver/Tools.cpp
===================================================================
--- cfe/trunk/lib/Driver/Tools.cpp
+++ cfe/trunk/lib/Driver/Tools.cpp
@@ -3021,12 +3021,10 @@
if (PIC && ToolChain.getTriple().isOSDarwin())
IsPICLevelTwo |= ToolChain.isPICDefault();
- // Note that these flags are trump-cards. Regardless of the order w.r.t. the
- // PIC or PIE options above, if these show up, PIC is disabled.
+ // This kernel flags are a trump-card: they will disable PIC/PIE
+ // generation, independent of the argument order.
if (KernelOrKext && (!Triple.isiOS() || Triple.isOSVersionLT(6)))
PIC = PIE = false;
- if (Args.hasArg(options::OPT_static))
- PIC = PIE = false;
if (Arg *A = Args.getLastArg(options::OPT_mdynamic_no_pic)) {
// This is a very special mode. It trumps the other modes, almost no one
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D12208.32791.patch
Type: text/x-patch
Size: 2620 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20150821/e6b63ac0/attachment.bin>
More information about the llvm-commits
mailing list