From: simonmar Date: Mon, 26 Mar 2001 16:58:09 +0000 (+0000) Subject: [project @ 2001-03-26 16:58:09 by simonmar] X-Git-Tag: Approximately_9120_patches~2303 X-Git-Url: http://git.megacz.com/?p=ghc-hetmet.git;a=commitdiff_plain;h=9fe6ae1652da5284cea4884b4d06a5c7c0107aaf [project @ 2001-03-26 16:58:09 by simonmar] nearly there: linking works now --- diff --git a/mk/bootstrap.mk b/mk/bootstrap.mk index 7e7e44e..4ba9c45 100644 --- a/mk/bootstrap.mk +++ b/mk/bootstrap.mk @@ -1,5 +1,5 @@ # ----------------------------------------------------------------------------- -# $Id: bootstrap.mk,v 1.1 2001/03/23 16:36:23 simonmar Exp $ +# $Id: bootstrap.mk,v 1.2 2001/03/26 16:58:09 simonmar Exp $ # # Makefile rules for booting from .hc files without a driver. # @@ -24,8 +24,6 @@ PLATFORM_HC_BOOT_CC_OPTS = ifeq "$(i386_TARGET_ARCH)" "1" PLATFORM_CC_OPTS += -DDONT_WANT_WIN32_DLL_SUPPORT PLATFORM_HC_BOOT_CC_OPTS += -fno-defer-pop -fomit-frame-pointer -# ToDo: -STOLEN_X86_REGS = 4 endif ifeq "$(hppa_TARGET_ARCH)" "1" @@ -48,17 +46,63 @@ endif PLATFORM_CC_OPTS += -D__GLASGOW_HASKELL__=$(ProjectVersionInt) -HC_BOOT_CC_OPTS = $(PLATFORM_HC_BOOT_CC_OPTS) +HC_BOOT_CC_OPTS = $(PLATFORM_HC_BOOT_CC_OPTS) $(CC_OPTS) + +SRC_CC_OPTS += -I$(FPTOOLS_TOP_ABS)/ghc/includes -I$(FPTOOLS_TOP_ABS)/ghc/lib/std/cbits -I$(FPTOOLS_TOP_ABS)/hslibs/lang/cbits -I$(FPTOOLS_TOP_ABS)/hslibs/posix/cbits -I$(FPTOOLS_TOP_ABS)/hslibs/util/cbits -I$(FPTOOLS_TOP_ABS)/hslibs/text/cbits -I$(FPTOOLS_TOP_ABS)/hslibs/hssource/cbits + +# ----------------------------------------------------------------------------- +# Linking: we have to give all the libraries explicitly. + +HC_BOOT_LD_OPTS = \ + -L$(FPTOOLS_TOP_ABS)/ghc/rts \ + -L$(FPTOOLS_TOP_ABS)/ghc/lib/std \ + -L$(FPTOOLS_TOP_ABS)/ghc/lib/std/cbits \ + -L$(FPTOOLS_TOP_ABS)/hslibs/lang \ + -L$(FPTOOLS_TOP_ABS)/hslibs/lang/cbits \ + -L$(FPTOOLS_TOP_ABS)/hslibs/text \ + -u "PrelBase_Izh_static_info" \ + -u "PrelBase_Czh_static_info" \ + -u "PrelFloat_Fzh_static_info" \ + -u "PrelFloat_Dzh_static_info" \ + -u "PrelPtr_Ptr_static_info" \ + -u "PrelWord_Wzh_static_info" \ + -u "PrelInt_I8zh_static_info" \ + -u "PrelInt_I16zh_static_info" \ + -u "PrelInt_I32zh_static_info" \ + -u "PrelInt_I64zh_static_info" \ + -u "PrelWord_W8zh_static_info" \ + -u "PrelWord_W16zh_static_info" \ + -u "PrelWord_W32zh_static_info" \ + -u "PrelWord_W64zh_static_info" \ + -u "PrelStable_StablePtr_static_info" \ + -u "PrelBase_Izh_con_info" \ + -u "PrelBase_Czh_con_info" \ + -u "PrelFloat_Fzh_con_info" \ + -u "PrelFloat_Dzh_con_info" \ + -u "PrelPtr_Ptr_con_info" \ + -u "PrelStable_StablePtr_con_info" \ + -u "PrelBase_False_closure" \ + -u "PrelBase_True_closure" \ + -u "PrelPack_unpackCString_closure" \ + -u "PrelIOBase_stackOverflow_closure" \ + -u "PrelIOBase_heapOverflow_closure" \ + -u "PrelIOBase_NonTermination_closure" \ + -u "PrelIOBase_BlockedOnDeadMVar_closure" \ + -u "PrelWeak_runFinalizzerBatch_closure" \ + -u "__init_Prelude" \ + -u "PrelMain_mainIO_closure" \ + -u "__init_PrelMain" + +HC_BOOT_LIBS = -lHStext -lHSlang -lHSstd -lHSstd_cbits -lHSrts -lgmp $(EXTRA_HC_BOOT_LIBS) # ----------------------------------------------------------------------------- -# suffix rules for building a .o from a .hc file. The normal build system -# should be able to take care of the rest. +# suffix rules for building a .o from a .hc file. %.raw_s : %.hc - $(CC) -x c $< -o $@ -S -O $(HC_BOOT_CC_OPTS) -I. -I$(FPTOOLS_TOP_ABS)/ghc/includes -I$(FPTOOLS_TOP_ABS)/ghc/lib/std/cbits + $(CC) -x c $< -o $@ -S -O $(HC_BOOT_CC_OPTS) -I. `echo $(patsubst -monly-%-regs, -DSTOLEN_X86_REGS=%, $(filter -monly-%-regs, $($*_HC_OPTS))) | sed 's/^$$/-DSTOLEN_X86_REGS=4/'` %.s : %.raw_s - $(GHC_MANGLER) $< $@ $(STOLEN_X86_REGS) + $(GHC_MANGLER) $< $@ $(patsubst -monly-%-regs, %, $(filter -monly-%-regs, $($*_HC_OPTS))) %.o : %.s $(CC) -c -o $@ $<