From d73eaaa14c707769347ba3505ceb61a244d04f8d Mon Sep 17 00:00:00 2001 From: Norman Feske Date: Mon, 19 Apr 2021 14:48:39 +0200 Subject: [PATCH] libc: exclude arm_initfini.c This compilation unit contains a global constructor, which violates our assumption that the libc is free of global constructors on ARMv7. Specifically, the graphical terminal fails with the following message: [init -> terminal] Error: Component::construct() returned without executing pending static constructors (fix by calling Genode::Env::exec_static_constructors()) [init -> terminal] Error: Uncaught exception of type 'Linker::Fatal' In this case, the libc-less terminal uses the VFS. The VFS mounts the ttf VFS plugin. The ttf VFS plugin depends on the libc. The compilation unit 'arm_initfini.c' can safely be excluded because it merely initializes the global '_libc_arm_fpu_present' variable, which is not used by the current version of our libc/libm. Fixes #4080 --- repos/libports/lib/mk/spec/arm/libc-gen.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/repos/libports/lib/mk/spec/arm/libc-gen.mk b/repos/libports/lib/mk/spec/arm/libc-gen.mk index f65dda44ee..5890d9804e 100644 --- a/repos/libports/lib/mk/spec/arm/libc-gen.mk +++ b/repos/libports/lib/mk/spec/arm/libc-gen.mk @@ -4,7 +4,7 @@ LIBC_GEN_ARM_DIR = $(LIBC_DIR)/lib/libc/arm/gen #FILTER_OUT_S += rfork_thread.S sigsetjmp.S setjmp.S _setjmp.S divsi3.S FILTER_OUT_S += rfork_thread.S divsi3.S setjmp.S _setjmp.S -FILTER_OUT_C += _set_tp.c fabs.c frexp.c modf.c +FILTER_OUT_C += _set_tp.c fabs.c frexp.c modf.c arm_initfini.c INC_DIR += $(LIBC_DIR)/lib/libc/arm/softfloat INC_DIR += $(LIBC_DIR)/lib/libc/softfloat