On Mon, 14 Jan 2013, Thijs Alkemade wrote:
Op 14 jan. 2013, om 17:30 heeft rocon...@theorem.ca het volgende geschreven:
On Thu, 10 Jan 2013, Karel Gardas wrote:
Hmm, are you using Raspbian? I.e. hard-float abi caught my eye in case of
ARMv6/ARM11 chip here...
I'm afraid LLVM is not well guided in your case so could you be so kind and
test if adding -optlc=-mattr=+vfp2 helps? You need to add it to your build.mk
probably and you will need to rebuild everything again...
No change with
SRC_HC_OPTS = -H64m -Rghc-timing -optc-mfloat-abi=hard -optc-march=armv6
-optc-mfpu=vfp -optlc=-mattr=+vfp2
GhcStage1HcOpts = -O -fllvm
GhcStage2HcOpts = -O0 -fllvm
GhcLibHcOpts = -O -fllvm
I still get the error:
===--- building final phase
make -r --no-print-directory -f ghc.mk phase=final all
LD libraries/ghc-prim/dist-install/build/HSghc-prim-0.3.0.0.o
/usr/bin/ld: error: libraries/ghc-prim/dist-install/build/cbits/debug.o uses
VFP register arguments,
libraries/ghc-prim/dist-install/build/HSghc-prim-0.3.0.0.o does not
/usr/bin/ld: failed to merge target specific data of file
libraries/ghc-prim/dist-install/build/cbits/debug.o
I don't really understand what is going on here. The file
libraries/ghc-prim/dist-install/build/HSghc-prim-0.3.0.0.o doesn't even exist,
so when I manually run /usr/bin/ld I get:
$ /usr/bin/ld libraries/ghc-prim/dist-install/build/HSghc-prim-0.3.0.0.o
/usr/bin/ld: cannot find
libraries/ghc-prim/dist-install/build/HSghc-prim-0.3.0.0.o: No such file or
directory
What is make really doing here?
My research suggests that this error is a symptom of trying to link something
without the hard-float ABI together with something with a soft-float ABI. But
I don't know where libraries/ghc-prim/dist-install/build/HSghc-prim-0.3.0.0.o
is coming from.
libraries/ghc-prim/dist-install/build/HSghc-prim-0.3.0.0.o is the output ld was
asked to generate. Apparently, some of the input .o files didn't use VFP
register arguments, so ld concluded that the output should also not use VFP
register arguments. But then ld encountered a .o file that did use VFP register
arguments, and threw an error (something in cbits, so probably built with
different CFLAGS).
From your flags I'd say you miss -optlc-float-abi=hard. I had it in
GhcLibHcOpts, but I'm not sure that is the correct way to ensure it is passed
to everything exactly once.
Okay, I tried:
SRC_HC_OPTS = -H64m -Rghc-timing -optc-mfloat-abi=hard -optc-march=armv6
-optc-mfpu=vfp -optlc=-mattr=+vfp2
GhcStage1HcOpts = -O -fllvm
GhcStage2HcOpts = -O0 -fllvm
GhcLibHcOpts = -O -fllvm -optlc-float-abi=hard
and I got the same error at a different build step. I'm not sure if it is
earlier or later.
It seems still not everything is using the hard-float ABI.
===--- building final phase
make -r --no-print-directory -f ghc.mk phase=final all
HC [stage 1] utils/hsc2hs/dist-install/build/tmp/hsc2hs
/usr/bin/ld: error: utils/hsc2hs/dist-install/build/tmp/hsc2hs uses VFP
register arguments, utils/hsc2hs/dist-install/build/Main.o does not
/usr/bin/ld: failed to merge target specific data of file
utils/hsc2hs/dist-install/build/Main.o
/usr/bin/ld: error: utils/hsc2hs/dist-install/build/tmp/hsc2hs uses VFP
register arguments, utils/hsc2hs/dist-install/build/HSCParser.o does not
/usr/bin/ld: failed to merge target specific data of file
utils/hsc2hs/dist-install/build/HSCParser.o
/usr/bin/ld: error: utils/hsc2hs/dist-install/build/tmp/hsc2hs uses VFP
register arguments, utils/hsc2hs/dist-install/build/DirectCodegen.o does not
/usr/bin/ld: failed to merge target specific data of file
utils/hsc2hs/dist-install/build/DirectCodegen.o
/usr/bin/ld: error: utils/hsc2hs/dist-install/build/tmp/hsc2hs uses VFP
register arguments, utils/hsc2hs/dist-install/build/CrossCodegen.o does not
/usr/bin/ld: failed to merge target specific data of file
utils/hsc2hs/dist-install/build/CrossCodegen.o
/usr/bin/ld: error: utils/hsc2hs/dist-install/build/tmp/hsc2hs uses VFP
register arguments, utils/hsc2hs/dist-install/build/UtilsCodegen.o does not
/usr/bin/ld: failed to merge target specific data of file
utils/hsc2hs/dist-install/build/UtilsCodegen.o
/usr/bin/ld: error: utils/hsc2hs/dist-install/build/tmp/hsc2hs uses VFP
register arguments, utils/hsc2hs/dist-install/build/Common.o does not
/usr/bin/ld: failed to merge target specific data of file
utils/hsc2hs/dist-install/build/Common.o
/usr/bin/ld: error: utils/hsc2hs/dist-install/build/tmp/hsc2hs uses VFP
register arguments, utils/hsc2hs/dist-install/build/C.o does not
/usr/bin/ld: failed to merge target specific data of file
utils/hsc2hs/dist-install/build/C.o
/usr/bin/ld: error: utils/hsc2hs/dist-install/build/tmp/hsc2hs uses VFP
register arguments, utils/hsc2hs/dist-install/build/Flags.o does not
/usr/bin/ld: failed to merge target specific data of file
utils/hsc2hs/dist-install/build/Flags.o
/usr/bin/ld: error: utils/hsc2hs/dist-install/build/tmp/hsc2hs uses VFP
register arguments, utils/hsc2hs/dist-install/build/Paths_hsc2hs.o does not
/usr/bin/ld: failed to merge target specific data of file
utils/hsc2hs/dist-install/build/Paths_hsc2hs.o
/usr/bin/ld: error: utils/hsc2hs/dist-install/build/tmp/hsc2hs uses VFP
register arguments, /tmp/ghc-7.6.1b/rts/dist/build/libHSrts.a(Apply.o) does not
/usr/bin/ld: failed to merge target specific data of file
/tmp/ghc-7.6.1b/rts/dist/build/libHSrts.a(Apply.o)
/usr/bin/ld: error: utils/hsc2hs/dist-install/build/tmp/hsc2hs uses VFP
register arguments, /tmp/ghc-7.6.1b/rts/dist/build/libHSrts.a(Exception.o) does
not
/usr/bin/ld: failed to merge target specific data of file
/tmp/ghc-7.6.1b/rts/dist/build/libHSrts.a(Exception.o)
/usr/bin/ld: error: utils/hsc2hs/dist-install/build/tmp/hsc2hs uses VFP
register arguments, /tmp/ghc-7.6.1b/rts/dist/build/libHSrts.a(HeapStackCheck.o)
does not
/usr/bin/ld: failed to merge target specific data of file
/tmp/ghc-7.6.1b/rts/dist/build/libHSrts.a(HeapStackCheck.o)
/usr/bin/ld: error: utils/hsc2hs/dist-install/build/tmp/hsc2hs uses VFP
register arguments, /tmp/ghc-7.6.1b/rts/dist/build/libHSrts.a(PrimOps.o) does
not
/usr/bin/ld: failed to merge target specific data of file
/tmp/ghc-7.6.1b/rts/dist/build/libHSrts.a(PrimOps.o)
/usr/bin/ld: error: utils/hsc2hs/dist-install/build/tmp/hsc2hs uses VFP
register arguments,
/tmp/ghc-7.6.1b/rts/dist/build/libHSrts.a(StgMiscClosures.o) does not
/usr/bin/ld: failed to merge target specific data of file
/tmp/ghc-7.6.1b/rts/dist/build/libHSrts.a(StgMiscClosures.o)
/usr/bin/ld: error: utils/hsc2hs/dist-install/build/tmp/hsc2hs uses VFP
register arguments, /tmp/ghc-7.6.1b/rts/dist/build/libHSrts.a(StgStartup.o)
does not
/usr/bin/ld: failed to merge target specific data of file
/tmp/ghc-7.6.1b/rts/dist/build/libHSrts.a(StgStartup.o)
/usr/bin/ld: error: utils/hsc2hs/dist-install/build/tmp/hsc2hs uses VFP
register arguments, /tmp/ghc-7.6.1b/rts/dist/build/libHSrts.a(StgStdThunks.o)
does not
/usr/bin/ld: failed to merge target specific data of file
/tmp/ghc-7.6.1b/rts/dist/build/libHSrts.a(StgStdThunks.o)
/usr/bin/ld: error: utils/hsc2hs/dist-install/build/tmp/hsc2hs uses VFP
register arguments, /tmp/ghc-7.6.1b/rts/dist/build/libHSrts.a(Updates.o) does
not
/usr/bin/ld: failed to merge target specific data of file
/tmp/ghc-7.6.1b/rts/dist/build/libHSrts.a(Updates.o)
/usr/bin/ld: error: utils/hsc2hs/dist-install/build/tmp/hsc2hs uses VFP
register arguments, /tmp/ghc-7.6.1b/rts/dist/build/libHSrts.a(AutoApply.o) does
not
/usr/bin/ld: failed to merge target specific data of file
/tmp/ghc-7.6.1b/rts/dist/build/libHSrts.a(AutoApply.o)
collect2: ld returned 1 exit status
<<ghc: 10689448 bytes, 2 GCs, 95944/95944 avg/max bytes residency (1 samples), 62M in
use, 0.00 INIT (0.00 elapsed), 0.81 MUT (9.41 elapsed), 0.13 GC (0.13 elapsed) :ghc>>
make[1]: *** [utils/hsc2hs/dist-install/build/tmp/hsc2hs] Error 1
make: *** [all] Error 2
--
Russell O'Connor <http://r6.ca/>
``All talk about `theft,''' the general counsel of the American Graphophone
Company wrote, ``is the merest claptrap, for there exists no property in
ideas musical, literary or artistic, except as defined by statute.''
_______________________________________________
Glasgow-haskell-users mailing list
Glasgow-haskell-users@haskell.org
http://www.haskell.org/mailman/listinfo/glasgow-haskell-users