Cleanup shared-object support mechanics

The former ldso-startup static library (now called ldso_so_support) is
used to spice each shared object/library with local support code for the
dynamic linker (execution of static constructors and ARM-EABI).
Therefore, the library must be statically linked to each dynamic
library.

As a result recipes for dynamic libraries must always depend on the "so"
API, which makes ldso_so_support.mk and so_support.c available
independent of "base". Additionally, ldso_so_support is also provided in
the libc API to cut the dependency early for libc/posix libraries.

Issue #3720
This commit is contained in:
Christian Helmuth
2020-04-02 08:19:34 +02:00
committed by Norman Feske
parent 589b416ca8
commit 42fddf8390
14 changed files with 95 additions and 109 deletions

View File

@@ -1,3 +0,0 @@
SRC_CC += startup.cc
vpath startup.cc $(BASE_DIR)/src/lib/ldso/startup

View File

@@ -0,0 +1,3 @@
SRC_C = so_support.c
vpath so_support.c $(call select_from_repositories,src/lib/ldso)

View File

@@ -1,5 +0,0 @@
SRC_CC += unwind_exidx.cc
vpath unwind_exidx.cc $(REP_DIR)/src/lib/ldso/startup
include $(call select_from_repositories,lib/mk/ldso-startup.mk)