forked from OSchip/llvm-project
[Driver] Default CLANG_DEFAULT_PIE_ON_LINUX to ON
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 will be removed in the future. Reviewed By: thesamesam Differential Revision: https://reviews.llvm.org/D120305
This commit is contained in:
parent
611122892e
commit
3c4ed02698
|
@ -245,7 +245,7 @@ set(PPC_LINUX_DEFAULT_IEEELONGDOUBLE OFF CACHE BOOL
|
||||||
set(CLANG_SPAWN_CC1 OFF CACHE BOOL
|
set(CLANG_SPAWN_CC1 OFF CACHE BOOL
|
||||||
"Whether clang should use a new process for the CC1 invocation")
|
"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?
|
# TODO: verify the values against LangStandards.def?
|
||||||
set(CLANG_DEFAULT_STD_C "" CACHE STRING
|
set(CLANG_DEFAULT_STD_C "" CACHE STRING
|
||||||
|
|
|
@ -183,6 +183,12 @@ Internal API Changes
|
||||||
Build System 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`` will be removed in the future.
|
||||||
|
|
||||||
AST Matchers
|
AST Matchers
|
||||||
------------
|
------------
|
||||||
|
|
||||||
|
|
|
@ -1,15 +1,15 @@
|
||||||
// REQUIRES: clang-driver, amdgpu-registered-target
|
// REQUIRES: clang-driver, amdgpu-registered-target, default-pie-on-linux
|
||||||
|
|
||||||
// -fPIC and -fPIE only affects host relocation model.
|
// -fPIC and -fPIE only affects host relocation model.
|
||||||
// device compilation always uses PIC.
|
// device compilation always uses PIC.
|
||||||
|
|
||||||
// RUN: %clang -### -target x86_64-unknown-linux-gnu \
|
// RUN: %clang -### -target x86_64-unknown-linux-gnu \
|
||||||
// RUN: --offload-arch=gfx906 %s -nogpulib -nogpuinc \
|
// 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: %clang -### -target x86_64-unknown-linux-gnu \
|
||||||
// RUN: -fgpu-rdc --offload-arch=gfx906 %s -nogpulib -nogpuinc \
|
// 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: %clang -### -target x86_64-unknown-linux-gnu \
|
||||||
// RUN: --offload-arch=gfx906 %s -nogpulib -nogpuinc \
|
// RUN: --offload-arch=gfx906 %s -nogpulib -nogpuinc \
|
||||||
|
@ -32,7 +32,6 @@
|
||||||
// RUN: 2>&1 | FileCheck -check-prefixes=DEV,HOST-PIE %s
|
// 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"}}
|
// 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-DAG: {{".*clang.*".* "-triple" "x86_64-unknown-linux-gnu".* "-mrelocation-model" "pic" "-pic-level" "2"}}
|
||||||
// HOST-PIC-NOT: "-pic-is-pie"
|
// 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"}}
|
// HOST-PIE-DAG: {{".*clang.*".* "-triple" "x86_64-unknown-linux-gnu".* "-mrelocation-model" "pic" "-pic-level" "2" "-pic-is-pie"}}
|
||||||
|
|
|
@ -9,7 +9,7 @@ write_cmake_config("Config") {
|
||||||
output = "$target_gen_dir/config.h"
|
output = "$target_gen_dir/config.h"
|
||||||
values = [
|
values = [
|
||||||
"BUG_REPORT_URL=https://github.com/llvm/llvm-project/issues/",
|
"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_LINKER=",
|
||||||
"CLANG_DEFAULT_STD_C=",
|
"CLANG_DEFAULT_STD_C=",
|
||||||
"CLANG_DEFAULT_STD_CXX=",
|
"CLANG_DEFAULT_STD_CXX=",
|
||||||
|
|
|
@ -23,7 +23,7 @@
|
||||||
#define BUG_REPORT_URL "https://github.com/llvm/llvm-project/issues/"
|
#define BUG_REPORT_URL "https://github.com/llvm/llvm-project/issues/"
|
||||||
|
|
||||||
/* Default to -fPIE and -pie on Linux. */
|
/* 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. */
|
/* Default linker to use. */
|
||||||
#define CLANG_DEFAULT_LINKER ""
|
#define CLANG_DEFAULT_LINKER ""
|
||||||
|
|
Loading…
Reference in New Issue