From: Andrei Tatar Date: Wed, 24 May 2023 13:45:44 +0000 (+0300) Subject: Split off functionality that depends on libunwind X-Git-Tag: RELEASE-0.14.0~2 X-Git-Url: http://xenbits.xensource.com/gitweb?a=commitdiff_plain;h=70bac651c90bf0582a2939fae502feb94032312f;p=unikraft%2Flibs%2Fcompiler-rt.git Split off functionality that depends on libunwind Previously lib-compiler-rt depended on libunwind as it pulled in ; this dependency however is isolated in gcc_personality_v0.c. This change makes gcc personality an optional part of lib-compiler-rt, allowing it to be built without an entire supporting C++ runtime. Signed-off-by: Andrei Tatar Reviewed-by: Stefan Jumarea Reviewed-by: Eduard Vintilă Approved-by: Razvan Deaconescu Tested-by: Unikraft CI GitHub-Closes: #14 --- diff --git a/Config.uk b/Config.uk index 2970f8b..6d67e80 100644 --- a/Config.uk +++ b/Config.uk @@ -2,7 +2,6 @@ menuconfig LIBCOMPILER_RT bool "compiler-rt - runtime support" select LIBPOSIX_SYSINFO imply LIBUKMMAP - select LIBUNWIND default n if LIBCOMPILER_RT @@ -10,4 +9,10 @@ if LIBCOMPILER_RT bool "Implementation of an atomics library" select CXX_THREADS default N + + config LIBCOMPILER_RT_GCCPERSONALITY + bool "Implementation of GCC personality" + depends on LIBUNWIND + default N + endif diff --git a/Makefile.uk b/Makefile.uk index 8be4857..f8e4016 100644 --- a/Makefile.uk +++ b/Makefile.uk @@ -38,7 +38,7 @@ ################################################################################ $(eval $(call addlib_s,libcompiler_rt,$(CONFIG_LIBCOMPILER_RT))) -ifeq ($(CONFIG_LIBCOMPILER_RT),y) +ifeq ($(CONFIG_LIBCOMPILER_RT_GCCPERSONALITY),y) ifneq ($(CONFIG_LIBUNWIND),y) $(error Require libunwind) endif @@ -177,7 +177,6 @@ LIBCOMPILER_RT_SRCS-y += $(LIBCOMPILER_RT_SRC)/lib/builtins/floatuntisf.c LIBCOMPILER_RT_SRCS-y += $(LIBCOMPILER_RT_SRC)/lib/builtins/floatuntitf.c LIBCOMPILER_RT_SRCS-y += $(LIBCOMPILER_RT_SRC)/lib/builtins/floatuntixf.c LIBCOMPILER_RT_SRCS-y += $(LIBCOMPILER_RT_SRC)/lib/builtins/fp_mode.c -LIBCOMPILER_RT_SRCS-y += $(LIBCOMPILER_RT_SRC)/lib/builtins/gcc_personality_v0.c LIBCOMPILER_RT_SRCS-y += $(LIBCOMPILER_RT_SRC)/lib/builtins/int_util.c LIBCOMPILER_RT_SRCS-y += $(LIBCOMPILER_RT_SRC)/lib/builtins/lshrdi3.c LIBCOMPILER_RT_SRCS-y += $(LIBCOMPILER_RT_SRC)/lib/builtins/lshrti3.c @@ -246,6 +245,8 @@ LIBCOMPILER_RT_SRCS-$(CONFIG_ARCH_X86_64) += $(LIBCOMPILER_RT_SRC)/lib/builtins/ LIBCOMPILER_RT_SRCS-$(CONFIG_ARCH_X86_64) += $(LIBCOMPILER_RT_SRC)/lib/builtins/x86_64/chkstk2.S LIBCOMPILER_RT_SRCS-$(CONFIG_ARCH_X86_64) += $(LIBCOMPILER_RT_SRC)/lib/builtins/x86_64/chkstk.S +LIBCOMPILER_RT_SRCS-$(CONFIG_LIBCOMPILER_RT_GCCPERSONALITY) += $(LIBCOMPILER_RT_SRC)/lib/builtins/gcc_personality_v0.c + LIBCOMPILER_RT_SRCS-$(CONFIG_LIBCOMPILER_RT_ATOMIC) += $(LIBCOMPILER_RT_SRC)/lib/builtins/atomic.c LIBCOMPILER_RT_SRCS-$(CONFIG_LIBCOMPILER_RT_ATOMIC) += $(LIBCOMPILER_RT_SRC)/lib/builtins/atomic_flag_clear.c LIBCOMPILER_RT_SRCS-$(CONFIG_LIBCOMPILER_RT_ATOMIC) += $(LIBCOMPILER_RT_SRC)/lib/builtins/atomic_flag_clear_explicit.c