Failure building HEAD in libraries/base/Data/ByteString.hs

Simon Marlow simonmarhaskell at gmail.com
Fri May 12 05:20:43 EDT 2006


I'm pretty sure this is to do with calls to strlen() from Data.ByteString.

Can you check for sure that gcc is being passed -fno-builtin?  (use ghc -v).

Failing that, we might have to use a private version of strlen() that 
gcc doesn't try to inline.

Cheers,
	Simon

Reilly Hayes wrote:
> 
> As of 6.5.20050610 this still occurs on both the intel mac and intel  
> linux (Gcc 4.0.1 & gcc 4.0.2 respectively).  Setting -fno-inline for  
> gcc has no effect.
> 
> -reilly hayes
> 
> On May 9, 2006, at 1:20 AM, Simon Marlow wrote:
> 
>> Often I find these are the result of gcc inlining something, or  using 
>> its built-in primitives.  We already pass -fno-builtin to gcc  on x86. 
>> Don - are there any C functions being inlined in  ByteString?  If so, 
>> it might be a good idea to turn off the inlining.
>>
>> Cheers,
>>     Simon
>>
>> Donald Bruce Stewart wrote:
>>
>>> There's been a few changes since then, perhaps try again with last
>>> night's snapshot?
>>> dons:
>>>
>>>> Hmm! Very interesting. Register spill classes, eh? SimonM?
>>>>
>>>> -- Don
>>>>
>>>> rfh:
>>>>
>>>>>   I get the following error when trying to bootstrap the
>>>>>   6.5.20060506 snapshot from hc files (registerised):
>>>>>
>>>>>   gcc -x c Data/ByteString.hc -o Data/ByteString.raw_s -S -O
>>>>>   -fno-defer-pop -fomi
>>>>>
>>>>>   t-frame-pointer  -mdynamic-no-pic
>>>>>   -DDONT_WANT_WIN32_DLL_SUPPORT -mdynamic-no-pi
>>>>>
>>>>>   c -D__GLASGOW_HASKELL__=605  -O -mdynamic-no-pic
>>>>>   -I/Users/rfh/haskell/mac/ghc-6.
>>>>>
>>>>>   5.20060506/includes
>>>>>   -I/Users/rfh/haskell/mac/ghc-6.5.20060506/libraries/base/inc
>>>>>
>>>>>   lude
>>>>>   -I/Users/rfh/haskell/mac/ghc-6.5.20060506/libraries/unix/inc
>>>>>   lude -I/Users/r
>>>>>
>>>>>   fh/haskell/mac/ghc-6.5.20060506/libraries/parsec/include
>>>>>   -I.  `echo  | sed '
>>>>>
>>>>>   s/^$/-DSTOLEN_X86_REGS=4/'`
>>>>>
>>>>>   Data/ByteString.hc: In function
>>>>>   'DataziByteString_zdwccall_entry':
>>>>>
>>>>>   Data/ByteString.hc:8631: error: unable to find a register to
>>>>>   spill in class 'DIR
>>>>>
>>>>>   EG'
>>>>>
>>>>>   Data/ByteString.hc:8631: error: this is the insn:
>>>>>
>>>>>   (insn 22 45 23 0 (parallel [
>>>>>
>>>>>               (set (reg:SI 2 cx [64])
>>>>>
>>>>>                   (unspec:SI [
>>>>>
>>>>>                           (mem:BLK (reg:SI 1 dx [orig:66 _cdHE
>>>>>   ] [66]) [0 A8])
>>>>>
>>>>>                           (reg:QI 0 ax [68])
>>>>>
>>>>>                           (const_int 1 [0x1])
>>>>>
>>>>>                           (reg:SI 2 cx [67])
>>>>>
>>>>>                       ] 20))
>>>>>
>>>>>               (use (reg:SI 19 dirflag))
>>>>>
>>>>>               (clobber (reg:SI 1 dx [orig:66 _cdHE ] [66]))
>>>>>
>>>>>               (clobber (reg:CC 17 flags))
>>>>>
>>>>>           ]) 479 {*strlenqi_1} (insn_list:REG_DEP_TRUE 18
>>>>>   (insn_list:REG_DEP_TRUE
>>>>>
>>>>>   19 (insn_list:REG_DEP_TRUE 20 (insn_list:REG_DEP_TRUE 21
>>>>>   (nil)))))
>>>>>
>>>>>       (expr_list:REG_UNUSED (reg:CC 17 flags)
>>>>>
>>>>>           (expr_list:REG_UNUSED (reg:SI 1 dx [orig:66 _cdHE ]
>>>>>   [66])
>>>>>
>>>>>               (expr_list:REG_DEAD (reg:SI 19 dirflag)
>>>>>
>>>>>                   (expr_list:REG_DEAD (reg:SI 2 cx [67])
>>>>>
>>>>>                       (expr_list:REG_DEAD (reg:QI 0 ax [68])
>>>>>
>>>>>                           (expr_list:REG_DEAD (reg:SI 1 dx
>>>>>   [orig:66 _cdHE ] [66])
>>>>>
>>>>>                               (expr_list:REG_UNUSED (reg:CC 17
>>>>>   flags)
>>>>>
>>>>>                                   (expr_list:REG_UNUSED
>>>>>   (reg:SI 1 dx [orig:66 _cdH
>>>>>
>>>>>   E ] [66])
>>>>>
>>>>>                                       (nil))))))))))
>>>>>
>>>>>   Data/ByteString.hc:8631: confused by earlier errors, bailing
>>>>>   out
>>>>>
>>>>>   make[1]: *** [Data/ByteString.raw_s] Error 1
>>>>>
>>>>>   make: *** [all] Error 1
>>>>>
>>>>>   I am insufficiently experienced with the build process to
>>>>>   know if this was from an error in creating the .hc file or a
>>>>>   problem with the source.  I have noticed that the file
>>>>>   ByteString.hs seems to be new.
>>>>>
>>>>>   I am building the .hc files on 386 linux (Ubuntu breezy
>>>>>   badger):
>>>>>
>>>>>   linux kernel  2.6.12
>>>>>
>>>>>   ghc-6.5.20060502 is installed
>>>>>
>>>>>   gcc is 4.0.2
>>>>>
>>>>>   I am using the registerised .hc files to bootstrap to Max OS
>>>>>   X x86
>>>>>
>>>>>   Mac OS X 10.4.6
>>>>>
>>>>>   no ghc installed
>>>>>
>>>>>   gcc is 4.0.1 (as included in Xcode)
>>>>>
>>>>>   Reilly Hayes
>>>>
>>>>
>>>>> _______________________________________________
>>>>> Glasgow-haskell-users mailing list
>>>>> Glasgow-haskell-users at haskell.org
>>>>> http://www.haskell.org/mailman/listinfo/glasgow-haskell-users
>>>>
>>>>
>>>> _______________________________________________
>>>> Glasgow-haskell-users mailing list
>>>> Glasgow-haskell-users at haskell.org
>>>> http://www.haskell.org/mailman/listinfo/glasgow-haskell-users
>>
>>
>> _______________________________________________
>> Glasgow-haskell-users mailing list
>> Glasgow-haskell-users at haskell.org
>> http://www.haskell.org/mailman/listinfo/glasgow-haskell-users
> 
> 
> Reilly Hayes
> rfh at reillyhayes.com



More information about the Glasgow-haskell-users mailing list