[compiler-rt] [builtins] Disable COMPILER_RT_CRT_USE_EH_FRAME_REGISTRY by default (PR #83201)
Fangrui Song via llvm-commits
llvm-commits at lists.llvm.org
Tue Feb 27 14:43:34 PST 2024
https://github.com/MaskRay created https://github.com/llvm/llvm-project/pull/83201
Most of GCC's Linux targets have a link spec
`%{!static|static-pie:--eh-frame-hdr}` that doesn't pass --eh-frame-hdr
for `-static` links. `-static` links are supposed to utilize
`__register_frame_info` (called by `crtbeginT.o`, not by crtbegin.o or
crtbeginS.o) as a replacement.
The ehframe code in compiler-rt crtbegin isn't useful because:
* compiler-rt crtbegin.c isn't supposed to be used with GCC.
* Clang driver unconditionally passes --eh-frame-hdr for Linux targets
* LLVM libunwind implements `__register_frame_info` as an empty stub.
For now, just disable the config by default.
>From 1151a09cae7e4aa0de219572b16fed5ea188ef10 Mon Sep 17 00:00:00 2001
From: Fangrui Song <i at maskray.me>
Date: Tue, 27 Feb 2024 14:43:24 -0800
Subject: [PATCH] =?UTF-8?q?[=F0=9D=98=80=F0=9D=97=BD=F0=9D=97=BF]=20initia?=
=?UTF-8?q?l=20version?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Created using spr 1.3.4
---
compiler-rt/lib/builtins/CMakeLists.txt | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/compiler-rt/lib/builtins/CMakeLists.txt b/compiler-rt/lib/builtins/CMakeLists.txt
index 28ded8766f2533..83f7697a4a2b42 100644
--- a/compiler-rt/lib/builtins/CMakeLists.txt
+++ b/compiler-rt/lib/builtins/CMakeLists.txt
@@ -916,7 +916,7 @@ cmake_dependent_option(COMPILER_RT_BUILD_CRT "Build crtbegin.o/crtend.o" ON "COM
if (COMPILER_RT_BUILD_CRT)
add_compiler_rt_component(crt)
- option(COMPILER_RT_CRT_USE_EH_FRAME_REGISTRY "Use eh_frame in crtbegin.o/crtend.o" ON)
+ option(COMPILER_RT_CRT_USE_EH_FRAME_REGISTRY "Use eh_frame in crtbegin.o/crtend.o" OFF)
include(CheckSectionExists)
check_section_exists(".init_array" COMPILER_RT_HAS_INITFINI_ARRAY
More information about the llvm-commits
mailing list