Christian Helmuth 42fddf8390 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
2020-05-18 10:16:13 +02:00

32 lines
730 B
Makefile

content: include mk/spec lib LICENSE
# architectures, for which a 'trace/timestamp.h' header is available
ARCHS := riscv arm_v6 arm_v7 arm_64 x86_32 x86_64
include:
mkdir -p include
cp -r $(REP_DIR)/include/* $@/
LIB_MK_FILES := base.mk ld.mk ldso_so_support.mk
lib:
mkdir -p lib/mk lib/symbols
cp $(addprefix $(REP_DIR)/lib/mk/,$(LIB_MK_FILES)) lib/mk/
cp $(REP_DIR)/lib/symbols/ld lib/symbols/
touch lib/mk/config.mk
SPECS := x86_32 x86_64 32bit 64bit
mk/spec:
mkdir -p $@
cp $(foreach spec,$(SPECS),$(REP_DIR)/mk/spec/$(spec).mk) $@
content: lib/mk/ldso_so_support.mk src/lib/ldso/so_support.c
lib/mk/ldso_so_support.mk src/lib/ldso/so_support.c:
$(mirror_from_rep_dir)
LICENSE:
cp $(GENODE_DIR)/LICENSE $@