diff --git a/clang/CMakeLists.txt b/clang/CMakeLists.txt index 78f584f18bacd969a6c278a309e40e8cdd3745ce..931eecd9c968171a2adbd9a02ea97ebaff929563 100644 --- a/clang/CMakeLists.txt +++ b/clang/CMakeLists.txt @@ -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 diff --git a/clang/docs/ReleaseNotes.rst b/clang/docs/ReleaseNotes.rst index df6a7d7539ee6a1730fa639d31919077d107e116..a64d9d383d957cd9ed97056b63b5bccb50a667d3 100644 --- a/clang/docs/ReleaseNotes.rst +++ b/clang/docs/ReleaseNotes.rst @@ -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 ------------ diff --git a/clang/test/Driver/hip-fpie-option.hip b/clang/test/Driver/hip-fpie-option.hip index 2e296a099dea57b250e21455c543037b37c65cf5..ffd639dd5a6ded78c4b15c161461936784d9d86a 100644 --- a/clang/test/Driver/hip-fpie-option.hip +++ b/clang/test/Driver/hip-fpie-option.hip @@ -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. // 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"}} diff --git a/lldb/test/API/functionalities/tail_call_frames/unambiguous_sequence/TestUnambiguousTailCalls.py b/lldb/test/API/functionalities/tail_call_frames/unambiguous_sequence/TestUnambiguousTailCalls.py index 19aad2ab1ec32cda5961ec6a90f11b80a4397555..cef500f0e7754d4a8c4501cc670d79c496c3ad59 100644 --- a/lldb/test/API/functionalities/tail_call_frames/unambiguous_sequence/TestUnambiguousTailCalls.py +++ b/lldb/test/API/functionalities/tail_call_frames/unambiguous_sequence/TestUnambiguousTailCalls.py @@ -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", diff --git a/lldb/test/Shell/ObjectFile/ELF/minidebuginfo-set-and-hit-breakpoint.test b/lldb/test/Shell/ObjectFile/ELF/minidebuginfo-set-and-hit-breakpoint.test index f361ccb585783090aae1d1e7319cf2813ed3c9c5..a9650614674eafc6d484f05d7eb0f4b9e01c54b1 100644 --- a/lldb/test/Shell/ObjectFile/ELF/minidebuginfo-set-and-hit-breakpoint.test +++ b/lldb/test/Shell/ObjectFile/ELF/minidebuginfo-set-and-hit-breakpoint.test @@ -1,4 +1,3 @@ -# XFAIL: target-arm && linux-gnu # REQUIRES: system-linux, lzma, xz # We want to keep the symbol "multiplyByThree" in the .dynamic section and not diff --git a/llvm/utils/gn/secondary/clang/include/clang/Config/BUILD.gn b/llvm/utils/gn/secondary/clang/include/clang/Config/BUILD.gn index a10e45cecac115c939a0e4029aa873279557f0c9..c1e5775db8dc5dfa025da44f029602f244c1e942 100644 --- a/llvm/utils/gn/secondary/clang/include/clang/Config/BUILD.gn +++ b/llvm/utils/gn/secondary/clang/include/clang/Config/BUILD.gn @@ -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=", diff --git a/utils/bazel/llvm-project-overlay/clang/include/clang/Config/config.h b/utils/bazel/llvm-project-overlay/clang/include/clang/Config/config.h index ccf47729f3adb849afe63158782af69893e6b60f..5bcded19c8c3e3645567a4a809292adf32a8ea69 100644 --- a/utils/bazel/llvm-project-overlay/clang/include/clang/Config/config.h +++ b/utils/bazel/llvm-project-overlay/clang/include/clang/Config/config.h @@ -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 ""