daml/bazel_tools/haskell-pgmc.patch
Moritz Kiefer a47c734401
Fix MacOS version linking issues (#5868)
This should fix the following issue that we see constantly on CI:

```
ld: warning: object file _ was built for newer OSX version (10.15) than being linked (10.14)
```

The issue was that the CC toolchain was not fully used in
haskell_cabal_package. --with-gcc (which is really --with-cc) only
applies when Cabal is calling the C compiler. However, in most cases
it is actually GHC itself which calls the C compiler. To make sure
that the right compiler is used in those cases, we have to pass
`-pgmc` and friends to GHC. This matches what rules_haskell does for
non cabal targets.

changelog_begin
changelog_end
2020-05-07 09:36:45 +02:00

24 lines
983 B
Diff

diff --git a/haskell/private/cabal_wrapper.py.tpl b/haskell/private/cabal_wrapper.py.tpl
index 81269cc7..35c24cf4 100755
--- a/haskell/private/cabal_wrapper.py.tpl
+++ b/haskell/private/cabal_wrapper.py.tpl
@@ -143,6 +143,18 @@ with tmpdir() as distdir:
"--with-hc-pkg=" + ghc_pkg,
"--with-ar=" + ar,
"--with-gcc=" + cc,
+ "--ghc-option=-pgmc=" + cc,
+ "--ghc-option=-pgma=" + cc,
+ "--ghc-option=-pgmP=" + cc,
+ "--ghc-option=-pgml=" + cc,
+ # Setting -pgm* flags explicitly has the unfortunate side effect
+ # of resetting any program flags in the GHC settings file. So we
+ # restore them here. See
+ # https://ghc.haskell.org/trac/ghc/ticket/7929.
+ "--ghc-option=-optc-fno-stack-protector",
+ "--ghc-option=-optP-E",
+ "--ghc-option=-optP-undef",
+ "--ghc-option=-optP-traditional",
"--with-strip=" + strip,
"--enable-deterministic", \
] +