X-Git-Url: http://git.megacz.com/?a=blobdiff_plain;f=rts%2Fghc.mk;h=dd9851a3f0f6b836f4af63293c183dbd2df30a0b;hb=169f5972d5398e75c4cf7f831b6ce703288ec73c;hp=397ab8d187362d89d10214b1a2de78e0d79c5f84;hpb=5f9b7e5f25c6b40dfe03fc968e474ac83e6273be;p=ghc-hetmet.git diff --git a/rts/ghc.mk b/rts/ghc.mk index 397ab8d..dd9851a 100644 --- a/rts/ghc.mk +++ b/rts/ghc.mk @@ -37,14 +37,13 @@ endif EXCLUDED_SRCS += rts/Main.c EXCLUDED_SRCS += rts/parallel/SysMan.c -EXCLUDED_SRCS += rts/dyn-wrapper.c EXCLUDED_SRCS += $(wildcard rts/Vis*.c) rts_C_SRCS = $(filter-out $(EXCLUDED_SRCS),$(wildcard rts/*.c $(foreach dir,$(ALL_DIRS),rts/$(dir)/*.c))) rts_CMM_SRCS = $(wildcard rts/*.cmm) # Don't compile .S files when bootstrapping a new arch -ifeq "$(TARGETPLATFORM)" "$(HOSTPLATFORM)" +ifneq "$(PORTING_HOST)" "YES" ifneq "$(findstring $(TargetArch_CPP), powerpc powerpc64)" "" rts_S_SRCS += rts/AdjustorAsm.S else @@ -172,7 +171,7 @@ $$(rts_$1_LIB) : $$(rts_$1_OBJS) rts/libs.depend "$$(RM)" $$(RM_OPTS) $$@ "$$(rts_dist_HC)" -package-name rts -shared -dynamic -dynload deploy \ -no-auto-link-packages `cat rts/libs.depend` $$(rts_$1_OBJS) -o $$@ -ifeq "$$(darwin_TARGET_OS)" "1" +ifeq "$$(darwin_HOST_OS)" "1" # Ensure library's install name is correct before anyone links with it. install_name_tool -id $(ghclibdir)/$$(rts_$1_LIB_NAME) $$@ endif @@ -252,11 +251,6 @@ rts_CC_OPTS += $(MACOSX_DEPLOYMENT_CC_OPTS) rts_HC_OPTS += $(addprefix -optc, $(MACOSX_DEPLOYMENT_CC_OPTS)) rts_LD_OPTS += $(addprefix -optl, $(MACOSX_DEPLOYMENT_LD_OPTS)) -# Otherwise the stack-smash handler gets triggered. -ifneq "$(findstring $(TargetOS_CPP), darwin openbsd)" "" -rts_HC_OPTS += -optc-fno-stack-protector -endif - # We *want* type-checking of hand-written cmm. rts_HC_OPTS += -dcmm-lint @@ -317,8 +311,18 @@ rts/RtsUtils_CC_OPTS += -DGhcEnableTablesNextToCode=$(DQ)$(GhcEnableTablesNextTo # must be compiled with -fPIC (since the 32-bit relocations generated # by the default small memory can't be resolved at runtime). So we # only do this on i386. - +# +# This apparently doesn't work on OS X (Darwin) where we get errors of +# the form +# +# ld: absolute addressing (perhaps -mdynamic-no-pic) used in _stg_ap_0_fast from rts/dist/build/Apply.dyn_o not allowed in slidable image +# +# and lots of these warnings: +# +# ld: warning codegen in _stg_ap_pppv_fast (offset 0x0000005E) prevents image from loading in dyld shared cache +# ifeq "$(TargetArch_CPP)" "i386" +ifneq "$(TargetOS_CPP)" "darwin" rts/sm/Evac_HC_OPTS += -fno-PIC rts/sm/Evac_thr_HC_OPTS += -fno-PIC rts/sm/Scav_HC_OPTS += -fno-PIC @@ -334,6 +338,7 @@ rts/PrimOps_HC_OPTS += -fno-PIC -static rts/Apply_HC_OPTS += -fno-PIC -static rts/dist/build/AutoApply_HC_OPTS += -fno-PIC -static endif +endif # ffi.h triggers prototype warnings, so disable them here: rts/Interpreter_CC_OPTS += -Wno-strict-prototypes @@ -432,14 +437,6 @@ rts_HSC2HS_OPTS += -Ilibffi/build/include rts_LD_OPTS += -Llibffi/build/include # ----------------------------------------------------------------------------- -# compile generic patchable dyn-wrapper - -DYNWRAPPER_SRC = rts/dyn-wrapper.c -DYNWRAPPER_PROG = rts/dyn-wrapper$(exeext) -$(DYNWRAPPER_PROG): $(DYNWRAPPER_SRC) - "$(HC)" -cpp -optc-include -optcdyn-wrapper-patchable-behaviour.h $(INPLACE_EXTRA_FLAGS) $< -o $@ - -# ----------------------------------------------------------------------------- # compile dtrace probes if dtrace is supported ifeq "$(HaveDtrace)" "YES" @@ -458,6 +455,7 @@ endif ifneq "$(BINDIST)" "YES" rts/dist/build/libHSrtsmain.a : rts/dist/build/Main.o + "$(RM)" $(RM_OPTS) $@ "$(AR)" $(AR_OPTS) $(EXTRA_AR_ARGS) $@ $< endif