diff options
Diffstat (limited to 'compiler')
-rw-r--r-- | compiler/ghc.mk | 2 | ||||
-rw-r--r-- | compiler/main/SysTools.lhs | 2 | ||||
-rw-r--r-- | compiler/nativeGen/AsmCodeGen.lhs | 11 | ||||
-rw-r--r-- | compiler/utils/Platform.hs | 1 |
4 files changed, 11 insertions, 5 deletions
diff --git a/compiler/ghc.mk b/compiler/ghc.mk index 95cd45bd4e..a78255fecb 100644 --- a/compiler/ghc.mk +++ b/compiler/ghc.mk @@ -497,7 +497,7 @@ compiler/hsSyn/HsLit_HC_OPTS += -fomit-interface-pragmas endif # LibFFI.hs #includes ffi.h -compiler/stage2/build/LibFFI.hs : $(ffi_HEADER) +compiler/stage2/build/LibFFI.hs : $(libffi_HEADERS) # On Windows it seems we also need to link directly to libffi ifeq "$(HOSTPLATFORM)" "i386-unknown-mingw32" define windowsDynLinkToFfi diff --git a/compiler/main/SysTools.lhs b/compiler/main/SysTools.lhs index 4a51b313e2..23906c69bc 100644 --- a/compiler/main/SysTools.lhs +++ b/compiler/main/SysTools.lhs @@ -193,6 +193,7 @@ initSysTools mbMinusB ; targetArch <- readSetting "target arch" ; targetOS <- readSetting "target os" ; targetHasGnuNonexecStack <- readSetting "target has GNU nonexec stack" + ; targetHasIdentDirective <- readSetting "target has .ident directive" ; targetHasSubsectionsViaSymbols <- readSetting "target has subsections via symbols" ; myExtraGccViaCFlags <- getSetting "GCC extra via C opts" -- On Windows, mingw is distributed with GHC, @@ -257,6 +258,7 @@ initSysTools mbMinusB platformArch = targetArch, platformOS = targetOS, platformHasGnuNonexecStack = targetHasGnuNonexecStack, + platformHasIdentDirective = targetHasIdentDirective, platformHasSubsectionsViaSymbols = targetHasSubsectionsViaSymbols }, sTmpDir = normalise tmpdir, diff --git a/compiler/nativeGen/AsmCodeGen.lhs b/compiler/nativeGen/AsmCodeGen.lhs index 0d8aab146b..f9167f26a0 100644 --- a/compiler/nativeGen/AsmCodeGen.lhs +++ b/compiler/nativeGen/AsmCodeGen.lhs @@ -525,12 +525,15 @@ makeImportsDoc dflags imports (if platformHasGnuNonexecStack (targetPlatform dflags) then Pretty.text ".section .note.GNU-stack,\"\",@progbits" else Pretty.empty) + Pretty.$$ -- And just because every other compiler does, lets stick in -- an identifier directive: .ident "GHC x.y.z" - Pretty.$$ let compilerIdent = Pretty.text "GHC" Pretty.<+> - Pretty.text cProjectVersion - in Pretty.text ".ident" Pretty.<+> - Pretty.doubleQuotes compilerIdent + (if platformHasIdentDirective (targetPlatform dflags) + then let compilerIdent = Pretty.text "GHC" Pretty.<+> + Pretty.text cProjectVersion + in Pretty.text ".ident" Pretty.<+> + Pretty.doubleQuotes compilerIdent + else Pretty.empty) where -- Generate "symbol stubs" for all external symbols that might diff --git a/compiler/utils/Platform.hs b/compiler/utils/Platform.hs index 027c510546..7253af1274 100644 --- a/compiler/utils/Platform.hs +++ b/compiler/utils/Platform.hs @@ -23,6 +23,7 @@ data Platform platformArch :: Arch, platformOS :: OS, platformHasGnuNonexecStack :: Bool, + platformHasIdentDirective :: Bool, platformHasSubsectionsViaSymbols :: Bool } deriving (Read, Show, Eq) |