From 3bf1cc09eb57b67a91286d6f2e5213841513fe28 Mon Sep 17 00:00:00 2001 From: Emery Hemingway Date: Mon, 28 Oct 2019 10:01:10 +0100 Subject: [PATCH] Move startup library to a Tup group --- repos/base-linux/src/core/Tupfile | 5 +++-- repos/base-nova/src/core/Tupfile | 5 +++-- repos/base-nova/src/lib/base-common/Tupfile | 5 ++--- repos/base-nova/src/lib/ld/Tupfile | 22 ++++++++++----------- repos/base/src/lib/startup/Tupfile | 12 ++++------- 5 files changed, 23 insertions(+), 26 deletions(-) diff --git a/repos/base-linux/src/core/Tupfile b/repos/base-linux/src/core/Tupfile index 8d7a1959a..07c27d7ed 100644 --- a/repos/base-linux/src/core/Tupfile +++ b/repos/base-linux/src/core/Tupfile @@ -42,14 +42,15 @@ LDFLAGS += \ -T$(BASE_DIR)/src/ld/genode.ld \ -T$(REP_DIR)/src/ld/stack_area.ld \ -LDFLAGS += -L$(LIB_DIR) `$(PKG_CONFIG) --libs cxx-baremetal startup` +LDFLAGS += -L$(LIB_DIR) `$(PKG_CONFIG) --libs cxx-baremetal` : {obj} | \ $(DEV_DIR)/ \ $(GENODE_DIR)/ \ + $(BASE_DIR)/ \ $(REP_DIR)/ \ $(REP_DIR)/ \ -|> !ld % % \ +|> !ld % % % \ |> core-linux $(REP_DIR)/ {bin} : {bin} |> !collect_bin |> diff --git a/repos/base-nova/src/core/Tupfile b/repos/base-nova/src/core/Tupfile index 14b56e1f8..d8e245e84 100644 --- a/repos/base-nova/src/core/Tupfile +++ b/repos/base-nova/src/core/Tupfile @@ -45,14 +45,15 @@ CXXFLAGS_$(GEN_CORE_DIR)/version.cc += -DGENODE_VERSION=\"`git describe`\" : foreach $(SRC_CC) |> !cxx |> {obj} -LDFLAGS += -L$(LIB_DIR) `$(PKG_CONFIG) --libs cxx-baremetal startup` +LDFLAGS += -L$(LIB_DIR) `$(PKG_CONFIG) --libs cxx-baremetal` : {obj} | \ $(DEV_DIR)/ \ $(GENODE_DIR)/ \ $(BASE_DIR)/ \ + $(BASE_DIR)/ \ $(REP_DIR)/ \ |> $(LD) $(LDFLAGS) -u _start -r \ - % % %f -o %o \ + % % % %f -o %o \ |> core.o $(REP_DIR)/ {core} : {core} |> cp %f %o |> $(DEV_DIR)/lib/core-nova.o diff --git a/repos/base-nova/src/lib/base-common/Tupfile b/repos/base-nova/src/lib/base-common/Tupfile index cbd07dcbc..fc2c004e5 100644 --- a/repos/base-nova/src/lib/base-common/Tupfile +++ b/repos/base-nova/src/lib/base-common/Tupfile @@ -33,6 +33,5 @@ GENERIC_SRC_CC += \ $(GENERIC_DIR)/trace.cc \ $(GENERIC_DIR)/vm_session.cc \ -: foreach $(GENERIC_SRC_CC) |> !cxx |> %B.base.o {obj} -: foreach *.cc |> !cxx |> %B.nova.o {obj} -: {obj} |> !ar |> | $(REP_DIR)/ +: foreach $(GENERIC_SRC_CC) |> !cxx |> %B.base.o $(REP_DIR)/ {obj} +: foreach *.cc |> !cxx |> %B.nova.o $(REP_DIR)/ {obj} diff --git a/repos/base-nova/src/lib/ld/Tupfile b/repos/base-nova/src/lib/ld/Tupfile index ec7eb7826..aaf4eb4ad 100644 --- a/repos/base-nova/src/lib/ld/Tupfile +++ b/repos/base-nova/src/lib/ld/Tupfile @@ -1,5 +1,4 @@ include_rules -CPPFLAGS += -I$(BASE_DIR)/src/include LDSO_DIR = $(BASE_DIR)/src/lib/ldso @@ -27,28 +26,29 @@ LDFLAGS += -Bsymbolic-functions --version-script=symbol.map ifeq (@(TUP_ARCH),x86_32) LDFLAGS += -T$(LDSO_DIR)/linux-32.ld else -LDFLAGS += --entry=_start LDFLAGS += -T$(LDSO_DIR)/linker.ld +LDFLAGS += --entry=_start endif -LDFLAGS += -gc-sections -z max-page-size=0x1000 -LDFLAGS += -T$(BASE_DIR)/src/ld/genode_rel.ld \ +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 \ +BASE_LIBS += $(REP_DIR)/src/lib/base/base-nova.lib.a -BASE_PKGS += alarm cxx ldso-startup startup timeout +BASE_PKGS += alarm cxx-baremetal ldso-startup timeout -LDFLAGS += `pkg-config --static --libs $(BASE_PKGS)` +LDFLAGS += `$(PKG_CONFIG) --static --libs $(BASE_PKGS)` -L $(LIB_DIR) -: $(BASE_LIBS) {obj} | symbol.map $(REP_DIR)/ \ +: $(BASE_LIBS) {obj} | symbol.map $(BASE_DIR)/ $(REP_DIR)/ $(GENODE_DIR)/ $(DEV_DIR)/ \ |> \ $(LD) -o %o \ $(LD_MARCH) $(LDFLAGS) \ --whole-archive --start-group \ - % %f \ + % \ + % \ + %f \ --end-group --no-whole-archive \ $(LIBGCC) \ -|> ld.lib.so $(REP_DIR)/ {bin} +|> ld-nova.lib.so $(REP_DIR)/ {bin} : {bin} |> !collect_bin |> diff --git a/repos/base/src/lib/startup/Tupfile b/repos/base/src/lib/startup/Tupfile index ab736c6b5..986bf18fa 100644 --- a/repos/base/src/lib/startup/Tupfile +++ b/repos/base/src/lib/startup/Tupfile @@ -1,17 +1,13 @@ include_rules -: foreach *.cc |> !cxx |> {obj} +: foreach *.cc |> !cxx |> | $(BASE_DIR)/ {obj} ifeq (@(TUP_ARCH),i386) - : foreach spec/x86_32/*.s |> !asm |> {obj} + : foreach spec/x86_32/*.s |> !asm |> | $(BASE_DIR)/ {obj} endif ifeq (@(TUP_ARCH),x86_64) - : foreach spec/x86_64/*.s |> !asm |> {obj} + : foreach spec/x86_64/*.s |> !asm |> | $(BASE_DIR)/ {obj} endif ifeq (@(TUP_ARCH),arm64) - : foreach spec/arm_64/*.s |> !asm |> {obj} + : foreach spec/arm_64/*.s |> !asm |> | $(BASE_DIR)/ {obj} endif - -: {obj} |> !ar |> {bin} -: foreach {bin} |> !collect_static |> -: |> !emit_lib_pkg_config |>