43 lines
1.2 KiB
Plaintext
43 lines
1.2 KiB
Plaintext
include_rules
|
|
|
|
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
|
|
|
|
LDFLAGS += -gc-sections -z max-page-size=0x1000
|
|
LDFLAGS += -T$(REP_DIR)/src/ld/stack_area.ld
|
|
LDFLAGS += -T$(BASE_DIR)/src/ld/genode_rel.ld
|
|
LDFLAGS += --entry=_start_initial_stack
|
|
|
|
BASE_LIBS += $(REP_DIR)/src/lib/base/base-linux.lib.a
|
|
|
|
PKG_LIBS = -L$(DEV_DIR)/lib `$(PKG_CONFIG) --libs alarm cxx ldso-startup timeout`
|
|
|
|
OUTPUT = ld-linux.lib.so
|
|
ifdef NIX_OUTPUTS_DEV
|
|
OUTPUT = ld.lib.so
|
|
endif
|
|
|
|
: $(BASE_LIBS) {obj} | \
|
|
symbol.map \
|
|
$(DEV_DIR)/<lib> \
|
|
$(DEV_DIR)/<pkg-config> \
|
|
$(REP_DIR)/<base-common> \
|
|
$(REP_DIR)/<startup> \
|
|
$(REP_DIR)/<syscall> \
|
|
|> $(LD) -o %o $(LD_MARCH) $(LDFLAGS) --whole-archive --start-group %<base-common> %<startup> %<syscall> %f $(PKG_LIBS) --end-group --no-whole-archive $(LIBGCC); printf "\x02" | dd of=%o bs=1 seek=16 count=1 conv=notrunc; |> $(OUTPUT) $(REP_DIR)/<ld> {bin}
|
|
|
|
: {bin} |> !collect_bin |>
|