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

Reilly Hayes rfh at reillyhayes.com
Fri May 12 19:44:47 EDT 2006


Gentlemen,

ghc -v was not required, as I am building this using .hc files from  
another host.  Adding "-fno-builtin" to the CC opts did resolve the  
problem.  Furthermore, I believe I have confirmed that strlen is the  
problem by succesfully compiling the library using "-fno-builtin- 
strlen" instead of "-fno-builtin".

Thank you,

reilly hayes


On May 12, 2006, at 2:20 AM, Simon Marlow wrote:

> 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
>

Reilly Hayes







More information about the Glasgow-haskell-users mailing list