OK, setting SplitObjs = NO got it past that compilation error, so it
must be the splitter script as you suggest. Unfortunately, there was
a subsequent error: the stage1 compiler crashed building stage 2:
../compiler/stage1/ghc-inplace -H16m -O -istage2/utils -istage2/
basicTypes -istage2/types -istage2/hsSyn -istage2/prelude -
istage2/rename -istage2/typecheck -istage2/deSugar -istage2/
coreSyn -istage2/specialise -istage2/simplCore -istage2/stranal -
istage2/stgSyn -istage2/simplStg -istage2/codeGen -istage2/main -
istage2/profiling -istage2/parser -istage2/cprAnalysis -istage2/
ndpFlatten -istage2/iface -istage2/cmm -istage2/nativeGen -
istage2/ghci -Istage2 -DGHCI -DBREAKPOINT -package template-haskell -
threaded -cpp -fglasgow-exts -fno-generics -Rghc-timing -I. -Iparser -
package unix -package Cabal -package regex-compat -ignore-package
lang -recomp -Rghc-timing -H16M '-#include "cutils.h"' -package-
name ghc-6.6.1 -fgenerics -c ghci/ByteCodeGen.lhs -o stage2/
ghci/ByteCodeGen.o -ohi stage2/ghci/ByteCodeGen.hi
make[2]: *** [stage2/ghci/ByteCodeGen.o] Segmentation fault
make[1]: *** [stage2] Error 2
make: *** [bootstrap2] Error 2
I'll be happy to do any other investigation anyone suggests.
Thanks,
Deborah
On May 8, 2007, at 2:29 AM, Simon Marlow wrote:
Deborah Goldsmith wrote:
> Actually, I'm not sure that's what's going on. The unresolved symbol
> error is:
>
>> ../../compiler/ghc-inplace -H16m -O -fglasgow-exts -cpp -Iinclude
>> -"#include" HsBase.h -funbox-strict-fields -package-name
base-2.1.1
>> -O -Rghc-timing -fgenerics -fgenerics -split-objs -c
>> Foreign/C/Error.hs -o Foreign/C/Error.o -ohi Foreign/C/Error.hi
>> /tmp/ghc78351_0/ghc78351_0.split__108.s:unknown:Undefined local
symbol
>> L_strerror$UNIX2003$stub
>
> So the reference actually is to the version *with* $UNIX2003
appended.
> Also, both strerror and strerror$UNIX2003 are present in the library
> being linked against, so if the FFI were going straight to
strerror (old
> version), it would find it, because it's still there for
compatibility.
>
> The only way that a symbol like L_strerror$UNIX2003$stub would be
> generated would be if someone *were* including unistd.h. There's
no way
> the $UNIX2003 would creep in otherwise. Also, it says it's a "local
> symbol." Also note the leading L; I would expect the symbol to be
> _strerror$UNIX2003$stub. The actual symbols exported by
> /usr/lib/libSystem.dylib in 10.5 are:
>
> 0000c59c T _strerror
> 000b7fb4 T _strerror$UNIX2003
Ok, then we'll have to dig further. Suggestions:
- turn off splitting: add SplitObjs=NO to mk/build/mk. If this
makes
the error go away, then the problem is likely in the split script
(driver/split/ghc-split.lprl).
- If the error is still there without splitting, then compile the
module with -keep-tmp-files, and take a look at the .s and .raw_s
files to see where the local symbol is coming from.
Cheers,
Simon
_______________________________________________
Glasgow-haskell-bugs mailing list
Glasgow-haskell-bugs@haskell.org
http://www.haskell.org/mailman/listinfo/glasgow-haskell-bugs