[PATCH] Fix -unawareness of large-addresses on mingw (#8520)

--- compiler/main/SysTools.lhs | 1 + 1 file changed, 1 insertion(+) diff --git a/compiler/main/SysTools.lhs b/compiler/main/SysTools.lhs index dc9642d..1cf1155 100644 --- a/compiler/main/SysTools.lhs +++ b/compiler/main/SysTools.lhs @@ -740,6 +740,7 @@ getLinkerInfo' dflags = do [ -- Reduce ld memory usage "-Wl,--hash-size=31" , "-Wl,--reduce-memory-overheads" + , "-Wl,--large-address-aware" --Trac #8520 -- Increase default stack, see -- Note [Windows stack usage] , "-Xlinker", "--stack=0x800000,0x800000" ] -- 1.8.4.msysgit.0

I don't know what this does, and there doesn't seem to be any info in #8520 either. Could you add the patch to the ticket, and help us out by saying why this fixes the problem (and if possible, explain why it won't break anything else)? On 03/06/2014 07:06, transfuturist wrote:
--- compiler/main/SysTools.lhs | 1 + 1 file changed, 1 insertion(+)
diff --git a/compiler/main/SysTools.lhs b/compiler/main/SysTools.lhs index dc9642d..1cf1155 100644 --- a/compiler/main/SysTools.lhs +++ b/compiler/main/SysTools.lhs @@ -740,6 +740,7 @@ getLinkerInfo' dflags = do [ -- Reduce ld memory usage "-Wl,--hash-size=31" , "-Wl,--reduce-memory-overheads" + , "-Wl,--large-address-aware" --Trac #8520 -- Increase default stack, see -- Note [Windows stack usage] , "-Xlinker", "--stack=0x800000,0x800000" ]

LARGEADDRESSAWARE flag if set in executable's header tells the OS that the application can handle addresses larger than 2GB. For 32-bit executables it is disabled usually. To enable it we must tell linker to enable it or manually edit an executable - for example, peflags of editbin (from Microsoft) utilities could be used. Cheers, Kyra On 6/4/2014 11:23, Simon Marlow wrote:
I don't know what this does, and there doesn't seem to be any info in #8520 either.
Could you add the patch to the ticket, and help us out by saying why this fixes the problem (and if possible, explain why it won't break anything else)?
On 03/06/2014 07:06, transfuturist wrote:
--- compiler/main/SysTools.lhs | 1 + 1 file changed, 1 insertion(+)
diff --git a/compiler/main/SysTools.lhs b/compiler/main/SysTools.lhs index dc9642d..1cf1155 100644 --- a/compiler/main/SysTools.lhs +++ b/compiler/main/SysTools.lhs @@ -740,6 +740,7 @@ getLinkerInfo' dflags = do [ -- Reduce ld memory usage "-Wl,--hash-size=31" , "-Wl,--reduce-memory-overheads" + , "-Wl,--large-address-aware" --Trac #8520 -- Increase default stack, see -- Note [Windows stack usage] , "-Xlinker", "--stack=0x800000,0x800000" ]
_______________________________________________ ghc-devs mailing list ghc-devs@haskell.org http://www.haskell.org/mailman/listinfo/ghc-devs

If someone validates this on Windows it could go in. Add it to #8520 and put the ticket in the patch state? On 04/06/2014 10:15, kyra wrote:
LARGEADDRESSAWARE flag if set in executable's header tells the OS that the application can handle addresses larger than 2GB.
For 32-bit executables it is disabled usually. To enable it we must tell linker to enable it or manually edit an executable - for example, peflags of editbin (from Microsoft) utilities could be used.
Cheers, Kyra
On 6/4/2014 11:23, Simon Marlow wrote:
I don't know what this does, and there doesn't seem to be any info in #8520 either.
Could you add the patch to the ticket, and help us out by saying why this fixes the problem (and if possible, explain why it won't break anything else)?
On 03/06/2014 07:06, transfuturist wrote:
--- compiler/main/SysTools.lhs | 1 + 1 file changed, 1 insertion(+)
diff --git a/compiler/main/SysTools.lhs b/compiler/main/SysTools.lhs index dc9642d..1cf1155 100644 --- a/compiler/main/SysTools.lhs +++ b/compiler/main/SysTools.lhs @@ -740,6 +740,7 @@ getLinkerInfo' dflags = do [ -- Reduce ld memory usage "-Wl,--hash-size=31" , "-Wl,--reduce-memory-overheads" + , "-Wl,--large-address-aware" --Trac #8520 -- Increase default stack, see -- Note [Windows stack usage] , "-Xlinker", "--stack=0x800000,0x800000" ]
_______________________________________________ ghc-devs mailing list ghc-devs@haskell.org http://www.haskell.org/mailman/listinfo/ghc-devs
_______________________________________________ ghc-devs mailing list ghc-devs@haskell.org http://www.haskell.org/mailman/listinfo/ghc-devs

There is a problem here. While setting LARGEADDRESSAWARE apparently works for GHC *itself*, we can't be sure it works for any GHC-generated executable because it can potentially be linked with some *foreign* code which is not LARGEADDRESSAWARE compatible (see https://ghc.haskell.org/trac/ghc/ticket/8520#comment:6). So, perhaps, we should not apply this patch, but only set this flag for GHC *itself*. After all it's possible to feed GHC with something like '-optl-Xlinker -optl--large-address-aware' to set this flag on the particular executable if necessary. Cheers, Kyra On 6/8/2014 12:30, Simon Marlow wrote:
If someone validates this on Windows it could go in. Add it to #8520 and put the ticket in the patch state?
On 04/06/2014 10:15, kyra wrote:
LARGEADDRESSAWARE flag if set in executable's header tells the OS that the application can handle addresses larger than 2GB.
For 32-bit executables it is disabled usually. To enable it we must tell linker to enable it or manually edit an executable - for example, peflags of editbin (from Microsoft) utilities could be used.
Cheers, Kyra
On 6/4/2014 11:23, Simon Marlow wrote:
I don't know what this does, and there doesn't seem to be any info in #8520 either.
Could you add the patch to the ticket, and help us out by saying why this fixes the problem (and if possible, explain why it won't break anything else)?
On 03/06/2014 07:06, transfuturist wrote:
--- compiler/main/SysTools.lhs | 1 + 1 file changed, 1 insertion(+)
diff --git a/compiler/main/SysTools.lhs b/compiler/main/SysTools.lhs index dc9642d..1cf1155 100644 --- a/compiler/main/SysTools.lhs +++ b/compiler/main/SysTools.lhs @@ -740,6 +740,7 @@ getLinkerInfo' dflags = do [ -- Reduce ld memory usage "-Wl,--hash-size=31" , "-Wl,--reduce-memory-overheads" + , "-Wl,--large-address-aware" --Trac #8520 -- Increase default stack, see -- Note [Windows stack usage] , "-Xlinker", "--stack=0x800000,0x800000" ]
_______________________________________________ ghc-devs mailing list ghc-devs@haskell.org http://www.haskell.org/mailman/listinfo/ghc-devs
_______________________________________________ ghc-devs mailing list ghc-devs@haskell.org http://www.haskell.org/mailman/listinfo/ghc-devs
ghc-devs mailing list ghc-devs@haskell.org http://www.haskell.org/mailman/listinfo/ghc-devs
participants (3)
-
kyra
-
Simon Marlow
-
transfuturist