include_rules LDSO_DIR = $(BASE_DIR)/src/lib/ldso ifeq (@(TUP_ARCH),x86_64) LDSO_SPEC_DIR = $(LDSO_DIR)/spec/x86_64 endif CPPFLAGS += -I$(LDSO_SPEC_DIR) CPPFLAGS += -I$(LDSO_DIR)/include : 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 ifeq (@(TUP_ARCH),x86_32) LDFLAGS += -T$(LDSO_DIR)/linux-32.ld else LDFLAGS += -T$(LDSO_DIR)/linker.ld LDFLAGS += --entry=_start endif LDFLAGS += -z max-page-size=0x1000 LDFLAGS += -T$(BASE_DIR)/src/ld/genode_rel.ld BASE_LIBS += $(REP_DIR)/src/lib/base/base-nova.lib.a LDFLAGS += -L$(DEV_LIB_DIR) `$(PKG_CONFIG) --static --libs $(BASE_PKGS)` : {obj} | \ $(DEV_DIR)/ \ $(DEV_DIR)/ \ $(REP_DIR)/ \ $(REP_DIR)/ \ symbol.map \ |> \ $(LD) -o %o \ $(LD_MARCH) $(LDFLAGS) \ --whole-archive --start-group \ % \ % \ %f \ --end-group --no-whole-archive \ $(LIBGCC) \ |> ld-nova.lib.so $(REP_DIR)/ {bin} : {bin} |> !collect_bin |>