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

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

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@haskell.org http://www.haskell.org/mailman/listinfo/glasgow-haskell-users

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@haskell.org http://www.haskell.org/mailman/listinfo/glasgow-haskell-users
_______________________________________________ Glasgow-haskell-users mailing list Glasgow-haskell-users@haskell.org http://www.haskell.org/mailman/listinfo/glasgow-haskell-users

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@haskell.org http://www.haskell.org/mailman/listinfo/glasgow-haskell-users
_______________________________________________ Glasgow-haskell-users mailing list Glasgow-haskell-users@haskell.org http://www.haskell.org/mailman/listinfo/glasgow-haskell-users

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@haskell.org http://www.haskell.org/mailman/listinfo/glasgow-haskell-users
_______________________________________________ Glasgow-haskell-users mailing list Glasgow-haskell-users@haskell.org http://www.haskell.org/mailman/listinfo/glasgow-haskell-users
_______________________________________________ Glasgow-haskell-users mailing list Glasgow-haskell-users@haskell.org http://www.haskell.org/mailman/listinfo/glasgow-haskell-users
Reilly Hayes rfh@reillyhayes.com

Thanks, I'm looking into it. -- Don rfh:
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@haskell.org http://www.haskell.org/mailman/listinfo/glasgow-haskell-users
_______________________________________________ Glasgow-haskell-users mailing list Glasgow-haskell-users@haskell.org http://www.haskell.org/mailman/listinfo/glasgow-haskell-users
_______________________________________________ Glasgow-haskell-users mailing list Glasgow-haskell-users@haskell.org http://www.haskell.org/mailman/listinfo/glasgow-haskell-users
Reilly Hayes rfh@reillyhayes.com
_______________________________________________ Glasgow-haskell-users mailing list Glasgow-haskell-users@haskell.org http://www.haskell.org/mailman/listinfo/glasgow-haskell-users

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@haskell.org http://www.haskell.org/mailman/listinfo/glasgow-haskell-users
_______________________________________________ Glasgow-haskell-users mailing list Glasgow-haskell-users@haskell.org http://www.haskell.org/mailman/listinfo/glasgow-haskell-users
_______________________________________________ Glasgow-haskell-users mailing list Glasgow-haskell-users@haskell.org http://www.haskell.org/mailman/listinfo/glasgow-haskell-users
Reilly Hayes rfh@reillyhayes.com

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@haskell.org http://www.haskell.org/mailman/listinfo/glasgow-haskell-users
_______________________________________________ Glasgow-haskell-users mailing list Glasgow-haskell-users@haskell.org http://www.haskell.org/mailman/listinfo/glasgow-haskell-users
_______________________________________________ Glasgow-haskell-users mailing list Glasgow-haskell-users@haskell.org http://www.haskell.org/mailman/listinfo/glasgow-haskell-users Reilly Hayes rfh@reillyhayes.com
Reilly Hayes

Simon, how do you want to proceed with this? Just add -fno-builtin-strlen to the .hc bootstrappping CC flags? -- Don rfh:
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@haskell.org >http://www.haskell.org/mailman/listinfo/glasgow-haskell-users
_______________________________________________ Glasgow-haskell-users mailing list Glasgow-haskell-users@haskell.org http://www.haskell.org/mailman/listinfo/glasgow-haskell-users
_______________________________________________ Glasgow-haskell-users mailing list Glasgow-haskell-users@haskell.org http://www.haskell.org/mailman/listinfo/glasgow-haskell-users Reilly Hayes rfh@reillyhayes.com
Reilly Hayes
_______________________________________________ Glasgow-haskell-users mailing list Glasgow-haskell-users@haskell.org http://www.haskell.org/mailman/listinfo/glasgow-haskell-users
participants (3)
-
dons@cse.unsw.edu.au
-
Reilly Hayes
-
Simon Marlow