#5357: ghc-7.2.1-rc1 broke unregisterised build
----------------------------------+-----------------------------------------
Reporter: slyfox | Owner:
Type: bug | Status: new
Priority: highest | Milestone: 7.2.1
Component: Compiler | Version:
Resolution: | Keywords:
Testcase: | Blockedby:
Difficulty: | Os: Linux
Blocking: | Architecture: alpha
Failure: Building GHC failed |
----------------------------------+-----------------------------------------
Changes (by dterei):
* status: closed => new
* resolution: fixed =>
Comment:
Reopening as the unregisterised build is pretty broken in HEAD.
First error I get is:
{{{
/tmp/ghc30253_0/ghc30253_0.hc:1004:2:
error: ‘free’ redeclared as different kind of symbol
/tmp/ghc30253_0/ghc30253_0.hc:473:1:
note: previous declaration of ‘free’ was here
}}}
C code in question is:
{{{
EI_(free);
StgWord base_ForeignziMarshalziAlloc_finalizzerFree_closure[] = {
(W_)&base_GHCziPtr_FunPtr_static_info,
(W_)&free
};
// [ ... snip ...]
FN_(base_ForeignziMarshalziAlloc_zdwccall_entry) {
W_ _c1O6;
FB_
_c1O6 = *Sp;
Sp=Sp+1;
;EF_(free);
{void (*ghcFunPtr)(void *);
ghcFunPtr = ((void (*)(void *))(W_)&free);
ghcFunPtr((void *)_c1O6);;}
JMP_(*((P_)(*Sp)));
FE_
}
}}}
This error seems to be caused by the fact that free is imported twice in
Foreign/Marshall/Alloc
{{{
foreign import ccall unsafe "stdlib.h free" _free :: Ptr a -> IO ()
-- | A pointer to a foreign function equivalent to 'free', which may be
-- used as a finalizer (cf 'Foreign.ForeignPtr.ForeignPtr') for storage
-- allocated with 'malloc', 'mallocBytes', 'realloc' or 'reallocBytes'.
foreign import ccall unsafe "stdlib.h &free" finalizerFree :: FinalizerPtr
a
}}}
After coming up with a hacky way to fix that error I get this second
error:
{{{
/tmp/ghc9007_0/ghc9007_0.hc:16360:1:
error: static declaration of
‘bytestringzm0zi9zi2zi0_DataziByteStringziChar8_zdwlines_entry’ follows
non-static declaration
/tmp/ghc9007_0/ghc9007_0.hc:16314:1:
note: previous declaration of
‘bytestringzm0zi9zi2zi0_DataziByteStringziChar8_zdwlines_entry’ was here
}}}
C code in question for that error is:
{{{
IF_(bytestringzm0zi9zi2zi0_DataziByteStringziChar8_zdwlines_entry);
FN_(bytestringzm0zi9zi2zi0_DataziByteStringziChar8_zdwlines_slow) {
FB_Sp=Sp+0;
JMP_((W_)&bytestringzm0zi9zi2zi0_DataziByteStringziChar8_zdwlines_entry);
FE_
}
// [... snip ...]
FN_(bytestringzm0zi9zi2zi0_DataziByteStringziChar8_zdwlines_entry) {W_
_c6uU;W_ _c6uV;
W_ _s4XO;
}}}
As well as getting this bug fixed is it possible Ian to get an
unregisterized build bot running? Every time I try using the
unregisterized build it seems to have bitrotted since no one really
monitors it.
--
Ticket URL: <http://hackage.haskell.org/trac/ghc/ticket/5357#comment:6>
GHC <http://www.haskell.org/ghc/>
The Glasgow Haskell Compiler
_______________________________________________
Glasgow-haskell-bugs mailing list
[email protected]
http://www.haskell.org/mailman/listinfo/glasgow-haskell-bugs