ghc uses cc for generating object files from assembler files and
passes the CONF_CC_OPTS_STAGE? flags to it, which clang doesn't
like, so add -Wno-unused-command-line-argument to the flags passed
to cc if it's clang.
To let this work for the bootstrap compiler, properly CONFIGURE_ENV
when installing the bootstrap (in post-patch:). This also makes the
hack patching the bootstrap/bin/ghc script in post-patch: obsolete.
prodded by (and with some hints from) espie@
~here are still a lot of warnings, most about macros #defined in
storage/ClosureMacros.h. Those should be fixed in a separate step,
probably after an update to ghc-8.
as the patch shows).
you'll need to wait for a bootstrap/rebootrap yourself so this is actually
effective.
(should cut down *a lot* on the insane number of warnings produced due to
unknown compile options on a clang system)
okay kili@
the linker again. Otherwise, the ld wrapper script installed when
USE_WXNEEDED=Yes will be used by the installed ghc package.
Problem noticed by Karel Gardas.
A real fix would be to remove PROT_EXEC from mmapForLinker() in
rts/Linker.c and to flip PROT_WRITE / PROT_EXEC in loadObj_()
when it's done, but this requires a little bit more time for
testing (turnaround times for building and testing ghc aren't
that funny).
following the recent change to pledge(2) (passing NULL doesn't change
the value).
- Use maybeWith instead of pattern matching to distinguish between
Nothing and Just x.
- Add some minimal documentation.
only one function giving access to the pledge(2) system call:
pledge :: String -> Maybe [FilePath] -> IO ()
Help and testing by semarie@ and abieber@. Thanks!
No bump yet, because there'll be some more churn (so please wait a
little bit for other haskell commits before starting to build it).
It appears that strip --strip-unneeded sometimes strips too much.
For example, if you take libHStf-random-0.5-926BwEbiHzi7pBkp4dTxOe.a
from the hs-tf-random package on i386 and run strip --strip-unneeded
on it, the T Threefish_256_Process_Block symbol (from threefish_block.o)
is stripped, which shouldn't happen. Note: this specific case applies
to i386, not to amd64. But...
doug@ reported a similar problem for the haskell library texmath,
which we don't yet have in the ports tree, and he made some even
more weird observation: texmath contains the two C source files
cbits/{key,val}ToASCII.c, defining the symbols keylookup (in
keyToAscii.c) and toASCIILut (in valToASCII.c), where both are just
some lookup tables. With strip --strip-unneeded enabled, the resulting
libHStexmath-*.a archive is missing keylookup. doug@ then concatenated
both .c files to a new one and changed the .cabal file of texmath
to use that single one instead, and suddenly the symbol keylookup
no longer was removed.
I'll try to make a port for texmath (which would be required anyway
for porting pandoc) so people who want help to debug this don't
have to build all the haskell goo themselves.
In theory, those should never fail, but espie@ frequently noticed failure
of register.sh (with a broken / incomplete ghc package db resulting in
hs libraries like Prelude or Distribution/Simple not found).
No bump yet, because it only adds spam during pkg_add.
Also, use a new(er) bootstrapper; note that we have to use 7.8.3
for this, because if the built ghc and the bootstrapper have identical
versions, things will fail badly. May be it's not the ghc but the
cabal version which is problematic, but at the moment, I really
don'y call about *this* problem.
Still marked as broken. I hope to send promised diffs and new ports
for discussion tomorrow and then enable ghc and haskell-platform
on monday.