Skip to content
Snippets Groups Projects
Commit 2aca33ba authored by Fangrui Song's avatar Fangrui Song
Browse files

Reland "[Driver] Default CLANG_DEFAULT_PIE_ON_LINUX to ON""

(The upgrade of the ppc64le bot and D121257 have fixed compiler-rt failures. Tested by nemanjai.)

Default the option introduced in D113372 to ON to match all(?) major Linux
distros. This matches GCC and improves consistency with Android and linux-musl
which always default to PIE.
Note: CLANG_DEFAULT_PIE_ON_LINUX may be removed in the future.

Differential Revision: https://reviews.llvm.org/D120305
parent ef437a7d
No related branches found
No related tags found
No related merge requests found
......@@ -245,7 +245,7 @@ set(PPC_LINUX_DEFAULT_IEEELONGDOUBLE OFF CACHE BOOL
set(CLANG_SPAWN_CC1 OFF CACHE BOOL
"Whether clang should use a new process for the CC1 invocation")
option(CLANG_DEFAULT_PIE_ON_LINUX "Default to -fPIE and -pie on Linux" OFF)
option(CLANG_DEFAULT_PIE_ON_LINUX "Default to -fPIE and -pie on linux-gnu" ON)
# TODO: verify the values against LangStandards.def?
set(CLANG_DEFAULT_STD_C "" CACHE STRING
......
......@@ -279,6 +279,12 @@ Internal API Changes
Build System Changes
--------------------
* CMake ``-DCLANG_DEFAULT_PIE_ON_LINUX=ON`` is now the default. This is used by
linux-gnu systems to decide whether ``-fPIE -pie`` is the default (instead of
``-fno-pic -no-pie``). This matches GCC installations on many Linux distros.
Note: linux-android and linux-musl always default to ``-fPIE -pie``, ignoring
this variable. ``-DCLANG_DEFAULT_PIE_ON_LINUX`` may be removed in the future.
AST Matchers
------------
......
// REQUIRES: clang-driver, amdgpu-registered-target
// REQUIRES: clang-driver, amdgpu-registered-target, default-pie-on-linux
// -fPIC and -fPIE only affects host relocation model.
// device compilation always uses PIC.
// RUN: %clang -### -target x86_64-unknown-linux-gnu \
// RUN: --offload-arch=gfx906 %s -nogpulib -nogpuinc \
// RUN: 2>&1 | FileCheck -check-prefixes=DEV,HOST-STATIC %s
// RUN: 2>&1 | FileCheck -check-prefixes=DEV,HOST-PIE %s
// RUN: %clang -### -target x86_64-unknown-linux-gnu \
// RUN: -fgpu-rdc --offload-arch=gfx906 %s -nogpulib -nogpuinc \
// RUN: 2>&1 | FileCheck -check-prefixes=DEV,HOST-STATIC %s
// RUN: 2>&1 | FileCheck -check-prefixes=DEV,HOST-PIE %s
// RUN: %clang -### -target x86_64-unknown-linux-gnu \
// RUN: --offload-arch=gfx906 %s -nogpulib -nogpuinc \
......@@ -32,7 +32,6 @@
// RUN: 2>&1 | FileCheck -check-prefixes=DEV,HOST-PIE %s
// DEV-DAG: {{".*clang.*".* "-triple" "amdgcn-amd-amdhsa".* "-mrelocation-model" "pic" "-pic-level" "[1|2]".* "-mframe-pointer=all"}}
// HOST-STATIC-DAG: {{".*clang.*".* "-triple" "x86_64-unknown-linux-gnu".* "-mrelocation-model" "static"}}
// HOST-PIC-DAG: {{".*clang.*".* "-triple" "x86_64-unknown-linux-gnu".* "-mrelocation-model" "pic" "-pic-level" "2"}}
// HOST-PIC-NOT: "-pic-is-pie"
// HOST-PIE-DAG: {{".*clang.*".* "-triple" "x86_64-unknown-linux-gnu".* "-mrelocation-model" "pic" "-pic-level" "2" "-pic-is-pie"}}
......
......@@ -2,6 +2,7 @@ from lldbsuite.test import lldbinline
from lldbsuite.test import decorators
decor = [decorators.skipUnlessHasCallSiteInfo,
decorators.skipIf(archs=['arm'],oslist=["linux"]),
decorators.skipIf(dwarf_version=['<', '4']),
decorators.skipIf(compiler="clang", compiler_version=['<', '11.0'])]
lldbinline.MakeInlineTest(__file__, globals(), name="UnambiguousTailCalls_V5",
......
# XFAIL: target-arm && linux-gnu
# REQUIRES: system-linux, lzma, xz
# We want to keep the symbol "multiplyByThree" in the .dynamic section and not
......
......@@ -9,7 +9,7 @@ write_cmake_config("Config") {
output = "$target_gen_dir/config.h"
values = [
"BUG_REPORT_URL=https://github.com/llvm/llvm-project/issues/",
"CLANG_DEFAULT_PIE_ON_LINUX=",
"CLANG_DEFAULT_PIE_ON_LINUX=1",
"CLANG_DEFAULT_LINKER=",
"CLANG_DEFAULT_STD_C=",
"CLANG_DEFAULT_STD_CXX=",
......
......@@ -23,7 +23,7 @@
#define BUG_REPORT_URL "https://github.com/llvm/llvm-project/issues/"
/* Default to -fPIE and -pie on Linux. */
#define CLANG_DEFAULT_PIE_ON_LINUX 0
#define CLANG_DEFAULT_PIE_ON_LINUX 1
/* Default linker to use. */
#define CLANG_DEFAULT_LINKER ""
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment