Commit 22294cda authored by Ian Lynagh's avatar Ian Lynagh

Remove some duplication of C flags

We now use the CONF_CC_OPTS_STAGEn C flags in machdepCCOpts, rather than
repeating them there.
parent 2b1d153a
......@@ -70,6 +70,10 @@ compiler/stage%/build/Config.hs : mk/config.mk mk/project.mk | $$(dir $$@)/.
@echo 'cBooterVersion = "$(GhcVersion)"' >> $@
@echo 'cStage :: String' >> $@
@echo 'cStage = show (STAGE :: Int)' >> $@
@echo 'cCcOpts :: [String]' >> $@
@echo 'cCcOpts = words "$(CONF_CC_OPTS_STAGE$*)"' >> $@
@echo 'cLdOpts :: [String]' >> $@
@echo 'cLdOpts = words "$(CONF_LD_OPTS_STAGE$*)"' >> $@
@echo 'cIntegerLibrary :: String' >> $@
@echo 'cIntegerLibrary = "$(INTEGER_LIBRARY)"' >> $@
@echo 'cSplitObjs :: String' >> $@
......
......@@ -2138,7 +2138,12 @@ setOptHpcDir arg = upd $ \ d -> d{hpcDir = arg}
machdepCCOpts :: DynFlags -> ([String], -- flags for all C compilations
[String]) -- for registerised HC compilations
machdepCCOpts _dflags
machdepCCOpts dflags = let (flagsAll, flagsRegHc) = machdepCCOpts' dflags
in (cCcOpts ++ flagsAll, flagsRegHc)
machdepCCOpts' :: DynFlags -> ([String], -- flags for all C compilations
[String]) -- for registerised HC compilations
machdepCCOpts' _dflags
#if alpha_TARGET_ARCH
= ( ["-w", "-mieee"
#ifdef HAVE_THREADED_RTS_SUPPORT
......@@ -2173,19 +2178,9 @@ machdepCCOpts _dflags
-- the fp (%ebp) for our register maps.
= let n_regs = stolen_x86_regs _dflags
in
(
#if darwin_TARGET_OS
-- By default, gcc on OS X will generate SSE
-- instructions, which need things 16-byte aligned,
-- but we don't 16-byte align things. Thus drop
-- back to generic i686 compatibility. Trac #2983.
--
-- Since Snow Leopard (10.6), gcc defaults to x86_64.
["-march=i686", "-m32"],
#else
(
[ if opt_Static then "-DDONT_WANT_WIN32_DLL_SUPPORT" else ""
],
#endif
[ "-fno-defer-pop",
"-fomit-frame-pointer",
-- we want -fno-builtin, because when gcc inlines
......@@ -2200,11 +2195,7 @@ machdepCCOpts _dflags
#elif x86_64_TARGET_ARCH
= (
#if darwin_TARGET_OS
["-m64"],
#else
[],
#endif
[],
["-fomit-frame-pointer",
"-fno-asynchronous-unwind-tables",
-- the unwind tables are unnecessary for HC code,
......
......@@ -536,7 +536,8 @@ endif
endif
# C compiler and linker flags from configure (e.g. -m<blah> to select
# correct C compiler backend).
# correct C compiler backend). The stage number is the stage of GHC
# that is being used to compile with.
CONF_CC_OPTS_STAGE0 = @CONF_CC_OPTS_STAGE0@
CONF_CC_OPTS_STAGE1 = @CONF_CC_OPTS_STAGE1@
CONF_CC_OPTS_STAGE2 = @CONF_CC_OPTS_STAGE2@
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment