From c41a18cf61790fc898dcda1055c3efbf442c14c0 Mon Sep 17 00:00:00 2001 From: Fangrui Song Date: Sun, 2 Aug 2020 23:05:50 -0700 Subject: [PATCH] [CMake] Default ENABLE_X86_RELAX_RELOCATIONS to ON This makes clang default to -Wa,-mrelax-relocations=yes, which enables R_386_GOT32X (GNU as enables it regardless of -mrelax-relocations=) and R_X86_64_[REX_]GOTPCRELX in MC. The produced object files require GNU ld>=2.26 to link. binutils 2.26 is considered a very old release today. --- clang/CMakeLists.txt | 2 +- llvm/utils/gn/secondary/clang/include/clang/Config/BUILD.gn | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/clang/CMakeLists.txt b/clang/CMakeLists.txt index c487e50..7baf93c 100644 --- a/clang/CMakeLists.txt +++ b/clang/CMakeLists.txt @@ -259,7 +259,7 @@ set(DEFAULT_SYSROOT "" CACHE STRING set(ENABLE_LINKER_BUILD_ID OFF CACHE BOOL "pass --build-id to ld") -set(ENABLE_X86_RELAX_RELOCATIONS OFF CACHE BOOL +set(ENABLE_X86_RELAX_RELOCATIONS ON CACHE BOOL "enable x86 relax relocations by default") set(ENABLE_EXPERIMENTAL_NEW_PASS_MANAGER FALSE CACHE BOOL 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 7fbfb46..49fc477 100644 --- a/llvm/utils/gn/secondary/clang/include/clang/Config/BUILD.gn +++ b/llvm/utils/gn/secondary/clang/include/clang/Config/BUILD.gn @@ -33,7 +33,7 @@ write_cmake_config("Config") { "GCC_INSTALL_PREFIX=", "BACKEND_PACKAGE_STRING=LLVM ${llvm_version}git", "ENABLE_LINKER_BUILD_ID=", - "ENABLE_X86_RELAX_RELOCATIONS=", + "ENABLE_X86_RELAX_RELOCATIONS=1", "ENABLE_EXPERIMENTAL_NEW_PASS_MANAGER=", "CLANG_ENABLE_OBJC_REWRITER=1", # FIXME: flag? "CLANG_SYSTEMZ_DEFAULT_ARCH=z10", -- 2.7.4