Status and future of the LLVM backend

Joachim Breitner mail at joachim-breitner.de
Sun Nov 30 21:54:56 UTC 2014


Hi,


Am Sonntag, den 30.11.2014, 16:48 -0500 schrieb Ben Gamari:
> >> > I then followed your advice from somewhere else and passed
> >> > "--with-ld=ld.gold" to ./configure, but with the same effect:
> >> 
> >> Unfortunately I don't think this will be sufficient. I believe this
> >> will only set the `LD` variable in the build system, which as far qas I
> >> know is never used. We always call gcc to do our linking for us;
> >> gcc will in turn just use whatever `ld` it finds in `PATH`. For this
> >> reason I have resorted to simply adding a directory containing a symlink
> >> to `ld.gold` to `PATH`. This is what this script[1] does.
> >
> > hmm, I’ll need to port that somehow to how the Debian package is built.
> > But it seems to be cleaner to use the -B flag to gcc, available at least
> > on Debian, according to
> > https://gcc.gnu.org/ml/gcc/2010-10/msg00147.html.
> >
> > What would be a reliable way to make the build system pass
> > -B/usr/bin/ld.gold to gcc? Is
> > SRC_HC_OPTS     += -optc-B/usr/bin/ld.gold
> > in mk/build.mk a good idea?
> >
> Indeed this is much cleaner. I just wanted a way to accomplish this
> without editing build.mk.

Cleaner maybe, but it was not picked up either. Or maybe we are looking
at a different issue, not solved by using ld.gold?

        "inplace/bin/ghc-stage1" -o
        utils/dll-split/dist-install/build/tmp/dll-split -hisuf dyn_hi
        -osuf  dyn_o -hcsuf dyn_hc -fPIC -dynamic  -H32m -O -lffi
        -optl-pthread -optc-mlong-calls -optc-B/usr/bin/ld.gold
        -hide-all-packages -i -iutils/dll-split/.
        -iutils/dll-split/dist-install/build
        -iutils/dll-split/dist-install/build/autogen
        -Iutils/dll-split/dist-install/build
        -Iutils/dll-split/dist-install/build/autogen     -optP-include
        -optPutils/dll-split/dist-install/build/autogen/cabal_macros.h
        -package base-4.7.0.2 -package containers-0.5.5.1 -package
        filepath-1.3.0.2 -XHaskell98  -no-user-package-db -rtsopts
        -odir utils/dll-split/dist-install/build -hidir
        utils/dll-split/dist-install/build -stubdir
        utils/dll-split/dist-install/build
        -optl-L'/«PKGBUILDDIR»/libraries/filepath/dist-install/build'
        -optl-L'/«PKGBUILDDIR»/libraries/containers/dist-install/build'
        -optl-L'/«PKGBUILDDIR»/libraries/deepseq/dist-install/build'
        -optl-L'/«PKGBUILDDIR»/libraries/array/dist-install/build'
        -optl-L'/«PKGBUILDDIR»/libraries/base/dist-install/build'
        -optl-L'/«PKGBUILDDIR»/libraries/integer-gmp/dist-install/build'
        -optl-L'/«PKGBUILDDIR»/libraries/ghc-prim/dist-install/build'
        -optl-L'/«PKGBUILDDIR»/rts/dist/build' -optl-lgmp -optl-lm
        -optl-lrt -optl-ldl -optl-lffi -fPIC -dynamic  -H32m -O -lffi
        -optl-pthread -optc-mlong-calls -optc-B/usr/bin/ld.gold
        -hide-all-packages -i -iutils/dll-split/.
        -iutils/dll-split/dist-install/build
        -iutils/dll-split/dist-install/build/autogen
        -Iutils/dll-split/dist-install/build
        -Iutils/dll-split/dist-install/build/autogen     -optP-include
        -optPutils/dll-split/dist-install/build/autogen/cabal_macros.h
        -package base-4.7.0.2 -package containers-0.5.5.1 -package
        filepath-1.3.0.2 -XHaskell98  -no-user-package-db -rtsopts
        -fno-use-rpaths -optl-Wl,-rpath
        -optl-Wl,'$ORIGIN/../filepath-1.3.0.2' -optl-Wl,-rpath
        -optl-Wl,'$ORIGIN/../containers-0.5.5.1' -optl-Wl,-rpath
        -optl-Wl,'$ORIGIN/../deepseq-1.3.0.2' -optl-Wl,-rpath
        -optl-Wl,'$ORIGIN/../array-0.5.0.0' -optl-Wl,-rpath
        -optl-Wl,'$ORIGIN/../base-4.7.0.2' -optl-Wl,-rpath
        -optl-Wl,'$ORIGIN/../integer-gmp-0.5.1.0' -optl-Wl,-rpath
        -optl-Wl,'$ORIGIN/../ghc-prim-0.3.1.0' -optl-Wl,-rpath
        -optl-Wl,'$ORIGIN/../rts-1.0' -optl-Wl,-zorigin
        utils/dll-split/dist-install/build/Main.dyn_o    
        [..]
        "cp" -p utils/dll-split/dist-install/build/tmp/dll-split
        inplace/lib/bin/dll-split
        dll-split: internal error: evacuate(static): strange closure
        type 0
            (GHC version 7.8.3.20141119 for arm_unknown_linux)
        
https://buildd.debian.org/status/fetch.php?pkg=ghc&arch=armel&ver=7.8.20141119-5&stamp=1417383951


Greetings,
Joachim


-- 
Joachim “nomeata” Breitner
  mail at joachim-breitner.dehttp://www.joachim-breitner.de/
  Jabber: nomeata at joachim-breitner.de  • GPG-Key: 0xF0FBF51F
  Debian Developer: nomeata at debian.org

-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 819 bytes
Desc: This is a digitally signed message part
URL: <http://www.haskell.org/pipermail/ghc-devs/attachments/20141130/b3dad151/attachment.sig>


More information about the ghc-devs mailing list