From af9b91e94c8e6f5c41a84566543f9e2b0ea0493e Mon Sep 17 00:00:00 2001 From: Emery Hemingway Date: Wed, 20 Nov 2019 12:03:13 +0100 Subject: [PATCH] Make out and dev output paths more explicit --- Tuprules.tup | 29 ++++++++++++++--------------- repos/Tuprules.tup | 2 +- repos/base-linux/src/core/Tupfile | 19 +++++++++---------- repos/base-linux/src/lib/ld/Tupfile | 4 ++-- repos/base-nova/src/core/Tupfile | 4 ++-- repos/base-nova/src/lib/ld/Tupfile | 11 +++++++---- repos/base/Tupfile | 2 -- repos/base/src/lib/ld/ld.pc.in | 2 +- repos/base/src/test/Tuprules.tup | 2 +- 9 files changed, 37 insertions(+), 38 deletions(-) diff --git a/Tuprules.tup b/Tuprules.tup index a5340a338..88a6441e0 100644 --- a/Tuprules.tup +++ b/Tuprules.tup @@ -2,6 +2,8 @@ OUT_DIR=$(TUP_CWD)/out DEV_DIR = $(TUP_CWD)/dev +DEV_LIB_DIR = $(DEV_DIR)/lib + ifeq (@(TUP_ARCH),i386) X86 = y @@ -23,29 +25,29 @@ endif GENODE_DIR = $(TUP_CWD) -!prg = | $(GENODE_DIR)/ $(DEV_DIR)/ $(GENODE_DIR)/ \ +!prg = | $(DEV_DIR)/ $(DEV_DIR)/ \ |> ^o LD %o^ \ $(LD) $(LD_MARCH) $(LDFLAGS) \ - -L$(LIB_DIR) \ + -L$(DEV_LIB_DIR) \ `$(PKG_CONFIG) --libs $(LIBS) genode-prg` \ %f \ $(LIBGCC) \ -o %o \ |> %d -!lib = | $(GENODE_DIR)/ $(DEV_DIR)/ $(GENODE_DIR)/ |> ^o LD %o^ $(LD) $(LD_MARCH) %f $(LDFLAGS) `$(PKG_CONFIG) --libs genode-lib $(LIBS)` -L$(LIB_DIR) -o %o |> %d.lib.so +!lib = | $(DEV_DIR)/ $(DEV_DIR)/ |> ^o LD %o^ $(LD) $(LD_MARCH) %f $(LDFLAGS) `$(PKG_CONFIG) --libs genode-lib $(LIBS)` -L$(DEV_LIB_DIR) -o %o |> %d.lib.so !collect_bin = |> ^ COLLECT %b^ \ $STRIP -o %o %f \ |> $(OUT_DIR)/bin/%b $(OUT_DIR)/ !collect_shared = |> ^ COLLECT %b^ \ - $STRIP -o %o %f \ + cp %f %o \ |> $(OUT_DIR)/lib/%b $(OUT_DIR)/ !collect_static = |> ^ COLLECT %b^ \ cp %f %o \ -|> $(DEV_DIR)/lib/%b \ +|> $(DEV_LIB_DIR)/%b \ $(DEV_DIR)/ \ export CC @@ -65,8 +67,6 @@ CXXFLAGS += -Wno-undefined-bool-conversion -Wno-unknown-attributes -Wsystem-head LIBGCC = `$(CC) $(CC_MARCH) -print-libgcc-file-name` -LIB_DIR = $(DEV_DIR)/lib - export PKG_CONFIG_PATH PKG_CONFIG_DIR = $(DEV_DIR)/lib/pkgconfig PKG_CONFIG = PKG_CONFIG_PATH=$(PKG_CONFIG_DIR):$PKG_CONFIG_PATH pkg-config @@ -80,15 +80,15 @@ else OLEVEL = -O2 endif -!ir = | $(GENODE_DIR)/ |> clang $(OLEVEL) $(CXXFLAGS) $(CXXFLAGS_%e) $(CXXFLAGS_%f) `$(PKG_CONFIG) --cflags $(LIBS)` $(CPPFLAGS) -S -emit-llvm %f |> %B.ll +!ir = | $(DEV_DIR)/ |> clang $(OLEVEL) $(CXXFLAGS) $(CXXFLAGS_%e) $(CXXFLAGS_%f) `$(PKG_CONFIG) --cflags $(LIBS)` $(CPPFLAGS) -S -emit-llvm %f |> %B.ll !asm = |> ^ CC %b^ @(CC_WRAPPER) $(CC) $(OLEVEL) $(CFLAGS) $(CFLAGS_%e) $(CFLAGS_%f) -D__ASSEMBLY__ $(CPPFLAGS) -c %f -o %o |> %B.o -!cc = | $(GENODE_DIR)/ |> ^o CC %f^ @(CC_WRAPPER) $(CC) $(OLEVEL) $(CFLAGS) $(CFLAGS_%e) $(CFLAGS_%f) $(CPPFLAGS) `$(PKG_CONFIG) --cflags $(LIBS) $(LIBS_CFLAGS)` -c -fPIC %f -o %o |> %B.o +!cc = | $(DEV_DIR)/ |> ^o CC %f^ @(CC_WRAPPER) $(CC) $(OLEVEL) $(CFLAGS) $(CFLAGS_%e) $(CFLAGS_%f) $(CPPFLAGS) `$(PKG_CONFIG) --cflags $(LIBS) $(LIBS_CFLAGS)` -c -fPIC %f -o %o |> %B.o -!cxx = | $(GENODE_DIR)/ |> ^o CXX %b^ @(CC_WRAPPER) $(CXX) $(OLEVEL) $(CXXFLAGS) $(CXXFLAGS_%e) $(CXXFLAGS_%f) $(CPPFLAGS) `$(PKG_CONFIG) --cflags $(LIBS)` -c -fPIC %f -o %o |> %B.o +!cxx = | $(DEV_DIR)/ |> ^o CXX %b^ @(CC_WRAPPER) $(CXX) $(OLEVEL) $(CXXFLAGS) $(CXXFLAGS_%e) $(CXXFLAGS_%f) $(CPPFLAGS) `$(PKG_CONFIG) --cflags $(LIBS)` -c -fPIC %f -o %o |> %B.o -!ld = | $(GENODE_DIR)/ $(GENODE_DIR)/ |> ^o LD %o^ $(LD) $(LDFLAGS) `$(PKG_CONFIG) --libs $(LIBS)` --whole-archive --start-group %f --no-whole-archive --end-group -o %o |> +!ld = | $(DEV_DIR)/ $(DEV_DIR)/ |> ^o LD %o^ $(LD) $(LDFLAGS) `$(PKG_CONFIG) --libs $(LIBS)` --whole-archive --start-group %f --no-whole-archive --end-group -o %o |> export STRIP !strip = |> $STRIP -o %o %f |> @@ -106,18 +106,17 @@ export AR GIT_VERSION = `git describe || echo @(VERSION)` -SED_PKGCONFIG_FLAGS += -e "s|@DEPOT_VERSION@|$(GIT_VERSION)|" SED_PKGCONFIG_FLAGS += -e "s|@VERSION@|$(GIT_VERSION)|" !sed_pkgconfig_file = |> ^o SED %B^ \ sed $(SED_PKGCONFIG_FLAGS) $(SED_FLAGS) < %f > %o; \ pkg-config --validate %o; \ -|> $(PKG_CONFIG_DIR)/%B $(GENODE_DIR)/ +|> $(PKG_CONFIG_DIR)/%B $(DEV_DIR)/ !sed_pkgconfig_flags = |> ^o SED %d.pc^ \ sed $(SED_PKGCONFIG_FLAGS) $(SED_FLAGS) > %o; \ pkg-config --validate %o; \ -|> $(PKG_CONFIG_DIR)/%d.pc $(GENODE_DIR)/ +|> $(PKG_CONFIG_DIR)/%d.pc $(DEV_DIR)/ !emit_lib_pkg_config = |> ^ emit %d.a pkg-config^ \ echo Name: %d >> %o; \ @@ -125,4 +124,4 @@ SED_PKGCONFIG_FLAGS += -e "s|@VERSION@|$(GIT_VERSION)|" echo Version: $(GIT_VERSION) >> %o; \ echo Libs: -l:%d.a >> %o; \ pkg-config --validate %o; \ -|> $(PKG_CONFIG_DIR)/%d.pc $(GENODE_DIR)/ +|> $(PKG_CONFIG_DIR)/%d.pc $(DEV_DIR)/ diff --git a/repos/Tuprules.tup b/repos/Tuprules.tup index 82aa458b2..7f5fdd1d7 100644 --- a/repos/Tuprules.tup +++ b/repos/Tuprules.tup @@ -25,7 +25,7 @@ endif -T &(LD_SCRIPT_SO) \ tmp.o; \ rm tmp.o; \ -|> $(DEV_DIR)/lib/%B.lib.so $(GENODE_DIR)/ +|> $(DEV_LIB_DIR)/%B.lib.so $(DEV_DIR)/ BASE_DIR = $(GENODE_DIR)/repos/base &BASE_DIR = base diff --git a/repos/base-linux/src/core/Tupfile b/repos/base-linux/src/core/Tupfile index 4ab7159e8..3c8fd1ad2 100644 --- a/repos/base-linux/src/core/Tupfile +++ b/repos/base-linux/src/core/Tupfile @@ -34,21 +34,20 @@ CXXFLAGS_$(GEN_CORE_DIR)/version.cc += -DGENODE_VERSION=\"`git describe`\" : foreach $(SRC_CC) |> !cxx |> {obj} -LDFLAGS += \ - -gc-sections \ - -z max-page-size=0x1000 \ - -nostdlib \ - -Ttext=0x01000000 \ - -T$(BASE_DIR)/src/ld/genode.ld \ - -T$(REP_DIR)/src/ld/stack_area.ld \ +LDFLAGS += -gc-sections +LDFLAGS += -z max-page-size=0x1000 +LDFLAGS += -nostdlib +LDFLAGS += -Ttext=0x01000000 +LDFLAGS += -T$(BASE_DIR)/src/ld/genode.ld +LDFLAGS += -T$(REP_DIR)/src/ld/stack_area.ld -LDFLAGS += -L$(LIB_DIR) `$(PKG_CONFIG) --libs cxx-baremetal` +LDFLAGS += -L$(DEV_LIB_DIR) `$(PKG_CONFIG) --libs cxx-baremetal` : {obj} | \ $(DEV_DIR)/ \ - $(GENODE_DIR)/ \ - $(REP_DIR)/ \ + $(DEV_DIR)/ \ $(REP_DIR)/ \ + $(REP_DIR)/ \ $(REP_DIR)/ \ |> !ld % % % \ |> core-linux $(REP_DIR)/ {bin} diff --git a/repos/base-linux/src/lib/ld/Tupfile b/repos/base-linux/src/lib/ld/Tupfile index 340f77a81..22216577d 100644 --- a/repos/base-linux/src/lib/ld/Tupfile +++ b/repos/base-linux/src/lib/ld/Tupfile @@ -37,12 +37,12 @@ BASE_LIBS += \ BASE_PKGS += alarm cxx ldso-startup startup timeout -LDFLAGS += -L$(LIB_DIR) `$(PKG_CONFIG) --static --libs $(BASE_PKGS)` +LDFLAGS += -L$(DEV_LIB_DIR) `$(PKG_CONFIG) --static --libs $(BASE_PKGS)` : $(BASE_LIBS) {obj} | \ symbol.map \ $(DEV_DIR)/ \ - $(GENODE_DIR)/ \ + $(DEV_DIR)/ \ $(REP_DIR)/ \ $(REP_DIR)/ \ |> \ diff --git a/repos/base-nova/src/core/Tupfile b/repos/base-nova/src/core/Tupfile index c7e3444cd..f8755c149 100644 --- a/repos/base-nova/src/core/Tupfile +++ b/repos/base-nova/src/core/Tupfile @@ -45,11 +45,11 @@ CXXFLAGS_$(GEN_CORE_DIR)/version.cc += -DGENODE_VERSION=\"`git describe`\" : foreach $(SRC_CC) |> !cxx |> {obj} -LDFLAGS += -L$(LIB_DIR) `$(PKG_CONFIG) --libs cxx-baremetal` +LDFLAGS += -L$(DEV_LIB_DIR) `$(PKG_CONFIG) --libs cxx-baremetal` : {obj} | \ $(DEV_DIR)/ \ - $(GENODE_DIR)/ \ + $(DEV_DIR)/ \ $(BASE_DIR)/ \ $(REP_DIR)/ \ $(REP_DIR)/ \ diff --git a/repos/base-nova/src/lib/ld/Tupfile b/repos/base-nova/src/lib/ld/Tupfile index b48bf1375..616337cfb 100644 --- a/repos/base-nova/src/lib/ld/Tupfile +++ b/repos/base-nova/src/lib/ld/Tupfile @@ -35,11 +35,14 @@ LDFLAGS += -T$(BASE_DIR)/src/ld/genode_rel.ld BASE_LIBS += $(REP_DIR)/src/lib/base/base-nova.lib.a -BASE_PKGS += alarm cxx-baremetal ldso-startup timeout +LDFLAGS += -L$(DEV_LIB_DIR) `$(PKG_CONFIG) --static --libs $(BASE_PKGS)` -LDFLAGS += `$(PKG_CONFIG) --static --libs $(BASE_PKGS)` -L $(LIB_DIR) - -: $(BASE_LIBS) {obj} | symbol.map $(REP_DIR)/ $(REP_DIR)/ $(GENODE_DIR)/ $(DEV_DIR)/ \ +: {obj} | \ + $(DEV_DIR)/ \ + $(DEV_DIR)/ \ + $(REP_DIR)/ \ + $(REP_DIR)/ \ + symbol.map \ |> \ $(LD) -o %o \ $(LD_MARCH) $(LDFLAGS) \ diff --git a/repos/base/Tupfile b/repos/base/Tupfile index bd4b2916b..6ab1e3f20 100644 --- a/repos/base/Tupfile +++ b/repos/base/Tupfile @@ -8,7 +8,6 @@ SED_FLAGS += -e "s|@includedir@|`nix-store --add $(REP_DIR)/include`|" SED_FLAGS += -e "s|@lddir@|`nix-store --add $(REP_DIR)/src/ld`|" endif - SED_FLAGS += -e "s|@toolchainincludedir@|`$(CC) $(CC_MARCH) -print-file-name=include`|" SED_FLAGS += -e "s|@libgcc@||" @@ -19,4 +18,3 @@ SED_FLAGS += -e "s|@ar@|$(AR)|" SED_FLAGS += -e "s|@ranlib@|$(RANLIB)|" : foreach *.pc.in |> !sed_pkgconfig_file |> -: |> ln -s genode-base.pc %o |> $(PKG_CONFIG_DIR)/base.pc $(GENODE_DIR)/ diff --git a/repos/base/src/lib/ld/ld.pc.in b/repos/base/src/lib/ld/ld.pc.in index 95c1abb34..66ae0d05e 100644 --- a/repos/base/src/lib/ld/ld.pc.in +++ b/repos/base/src/lib/ld/ld.pc.in @@ -2,4 +2,4 @@ Name: ld Description: Genode dynamic loader URL: https://genode.org/ Version: @VERSION@ -Libs: -l:ld.lib.so -l:ldso-startup.a +Libs: -l:ld.lib.so diff --git a/repos/base/src/test/Tuprules.tup b/repos/base/src/test/Tuprules.tup index 3b376cc68..bf6f4d166 100644 --- a/repos/base/src/test/Tuprules.tup +++ b/repos/base/src/test/Tuprules.tup @@ -1 +1 @@ -LIBS += base +LIBS += genode-base