genode/repos/base-nova/src/lib/ld/Tupfile

42 lines
1.1 KiB
Plaintext
Raw Normal View History

include_rules
2020-01-11 15:13:40 +01:00
include $(BASE_DIR)/src/lib/ldso/Tuprules.tup
: foreach $(LDSO_DIR)/*.cc |> !cxx |> {obj}
: foreach $(LDSO_SPEC_DIR)/*.s |> !asm |> {obj}
LDFLAGS += -shared --eh-frame-hdr
: $(BASE_DIR)/lib/symbols/ld \
|> \
echo -e '{\n\tglobal:' >> %o; \
sed -n "s/^\(\w\+\) .*/\t\t\1;/p" %f >> %o; \
echo -e "\tlocal: *;\n};" >> %o; \
|> symbol.map
LDFLAGS += -Bsymbolic-functions --version-script=symbol.map
2020-01-11 15:13:40 +01:00
ifeq (@(TUP_ARCH),i386)
LDFLAGS += -T$(LDSO_DIR)/linux-32.ld
else
LDFLAGS += -T$(LDSO_DIR)/linker.ld
2019-10-28 10:01:10 +01:00
LDFLAGS += --entry=_start
endif
2019-10-28 10:01:10 +01:00
LDFLAGS += -z max-page-size=0x1000
LDFLAGS += -T$(BASE_DIR)/src/ld/genode_rel.ld
2020-01-13 11:12:36 +01:00
PKG_LIBS = -L$(DEV_DIR)/lib `$(PKG_CONFIG) --libs alarm cxx ldso-startup timeout`
: {obj} | \
$(DEV_DIR)/<lib> \
$(DEV_DIR)/<pkg-config> \
$(REP_DIR)/<base-common> \
2020-01-11 15:13:40 +01:00
$(REP_DIR)/<base-nova> \
$(REP_DIR)/<startup> \
symbol.map \
2020-01-13 11:12:36 +01:00
|> $(LD) -o %o $(LD_MARCH) $(LDFLAGS) --whole-archive --start-group $(PKG_LIBS) %<base-common> %<base-nova> %<startup> %f --end-group --no-whole-archive $(LIBGCC) \
2019-10-28 10:01:10 +01:00
|> ld-nova.lib.so $(REP_DIR)/<ld> {bin}
: {bin} |> !collect_bin |>