From cd91c6d065bf4b0688a588cb7ed19ad90aa53b94 Mon Sep 17 00:00:00 2001 From: Brian Anderson Date: Mon, 28 Nov 2011 17:23:13 -0800 Subject: [PATCH] rt: Build __morestack as a static library and copy it to the right places --- Makefile.in | 3 ++- mk/install.mk | 1 + mk/rt.mk | 4 ++++ mk/target.mk | 4 ++++ 4 files changed, 11 insertions(+), 1 deletion(-) diff --git a/Makefile.in b/Makefile.in index 7b45d760e69..4a2e40b06aa 100644 --- a/Makefile.in +++ b/Makefile.in @@ -281,7 +281,8 @@ HOST_SREQ$(1) = \ TARGET_SREQ$(1)$(2) = \ $$(HOST_SREQ$(1)) \ $$(TARGET_LIB$(1)$(2))/$$(CFG_RUNTIME) \ - $$(TARGET_LIB$(1)$(2))/intrinsics.bc + $$(TARGET_LIB$(1)$(2))/intrinsics.bc \ + $$(TARGET_LIB$(1)$(2))/libmorestack.a # Prerequisites for complete stageN targets SREQ$(1)$(2) = \ diff --git a/mk/install.mk b/mk/install.mk index e767c795f84..13730dc3563 100644 --- a/mk/install.mk +++ b/mk/install.mk @@ -43,6 +43,7 @@ install-target$(1): $$(SREQ$$(ISTAGE)$(1)) $(Q)$(call INSTALL,$$(TL$(1)),$$(PTL$(1)),$$(CFG_RUNTIME)) $(Q)$(call INSTALL,$$(TL$(1)),$$(PTL$(1)),$$(CFG_STDLIB)) $(Q)$(call INSTALL,$$(TL$(1)),$$(PTL$(1)),intrinsics.bc) + $(Q)$(call INSTALL,$$(TL$(1)),$$(PTL$(1)),libmorestack.a) endef $(foreach target,$(CFG_TARGET_TRIPLES), \ diff --git a/mk/rt.mk b/mk/rt.mk index ac4ebb842cb..4f49e5e4c09 100644 --- a/mk/rt.mk +++ b/mk/rt.mk @@ -139,6 +139,10 @@ rt/$(1)/%.o: rt/%.S $$(MKFILES) @$$(call E, compile: $$@) $$(Q)$$(call CFG_COMPILE_C_$(1), $$@, $$(RUNTIME_INCS_$(1))) $$< +rt/$(1)/arch/$$(HOST_$(1))/libmorestack.a: rt/$(1)/arch/$$(HOST_$(1))/morestack.o + @$$(call E, link: $$@) + $$(Q)ar rcs $$@ $$< + rt/$(1)/$(CFG_RUNTIME): $$(RUNTIME_OBJS_$(1)) $$(MKFILES) \ $$(RUNTIME_HDR_$(1)) \ $$(RUNTIME_DEF_$(1)) \ diff --git a/mk/target.mk b/mk/target.mk index b2c87d9b7e8..e659b796369 100644 --- a/mk/target.mk +++ b/mk/target.mk @@ -17,6 +17,10 @@ $$(TARGET_LIB$(1)$(2))/intrinsics.bc: $$(TARGET_LIB$(1)$(2))/intrinsics.ll \ @$$(call E, llvms-as: $$@) $$(Q)$$(LLVM_AS_$(2)) -o $$@ $$< +$$(TARGET_LIB$(1)$(2))/libmorestack.a: rt/$(2)/arch/$$(HOST_$(2))/libmorestack.a + @$$(call E, cp: $$@) + $$(Q)cp $$< $$@ + $$(TARGET_LIB$(1)$(2))/$$(CFG_STDLIB): \ $$(STDLIB_CRATE) $$(STDLIB_INPUTS) \ $$(TARGET_SREQ$(1)$(2))