logo       

RE: current build blocks indefinitely: msg#00056

lang.haskell.glasgow.bugs

Subject: RE: current build blocks indefinitely

The genprimopcode program that hangs is built by your installed version
of GHC, so there appears to be a problem with that.

Did you use any unusual options, or do you have a non-empty build.mk?
It looks from the log like you might be using -threaded. If you are,
try turning it off.

Cheers,
Simon

On 18 February 2005 21:19, Matthias Neubauer wrote:

> I just grabbed the current cvs version of GHC and tried to build
> it. Strangely enough, as soon as the first compiled haskell program
> gets executed it seems to block indefinitely. Here is a log of the
> last part of my build process until it blocks:
>
> [...]
> make[3]: Nothing to be done for `boot'.
>
------------------------------------------------------------------------
> ===fptools== Finished making `boot' in users_guide ext-core
> storage-mgt ...
> PWD = /scratch/mn/ghc-6.4-for-ghc-package-i386-debian/ghc/docs
>
------------------------------------------------------------------------
>
------------------------------------------------------------------------
> ==fptools== make boot -wr;
> in /scratch/mn/ghc-6.4-for-ghc-package-i386-debian/ghc/compiler
>
------------------------------------------------------------------------
> ../../glafp-utils/mkdirhier/mkdirhier stage1
> for i in utils basicTypes types hsSyn prelude rename typecheck
> deSugar coreSyn specialise simplCore stranal stgSyn simplStg
> codeGen main profiling parser cprAnalysis compMan ndpFlatten iface
> cmm nativeGen; do \ ../../glafp-utils/mkdirhier/mkdirhier stage1/$i;
> \
> done
> for i in */*hi-boot*; do \
> ln -s -f ../../$i stage1/$i || true ; \
> done
> ../utils/genprimopcode/genprimopcode --primop-tag <
> prelude/primops.txt > primop-tag.hs-incl
>
>
> Calling the last command manually via strace leads to the following
> output ...
>
>
> paaulau:/<3>ghc/compiler> strace -f
> ../utils/genprimopcode/genprimopcode --primop-tag <
> prelude/primops.txt > primop-tag.hs-incl
>
> [...]
> write(1, "PrimOp ReadByteArrayOp_Addr = _I"..., 8192) = 8192
> mmap2(NULL, 8388608, PROT_READ|PROT_WRITE|PROT_EXEC,
> MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x40400000
> mprotect(0x40400000, 4096, PROT_NONE) = 0
> clone(Process 15997 attached
> child_stack=0x40bffb48,
>
flags=CLONE_VM|CLONE_FS|CLONE_FILES|CLONE_SIGHAND|CLONE_THREAD|CLONE_SYS
VSEM|CLONE_SETTLS|CLONE_PARENT_SETTID|CLONE_CHILD_\
> CLEARTID|CLONE_DETACHED, parent_tidptr=0x40bffbf8, {entry_number:6,
> base_addr:0x40bffbb0, limit:1048575, seg_32bit:1, contents:0,
> read_exec_only:0\ , limit_in_pages:1, seg_not_present:0, useable:1},
> child_tidptr=0x40bffbf8) = 15997 [pid 15996] times({tms_utime=7,
> tms_stime=0, tms_cutime=0, tms_cstime=0}) = 821448934 [pid 15996]
> mmap2(NULL, 8388608, PROT_READ|PROT_WRITE|PROT_EXEC,
> MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x40c00000 [pid 15996]
> mprotect(0x40c00000, 4096, PROT_NONE) = 0 [pid 15996] clone(Process
> 15998 attached
> child_stack=0x413ffb48,
>
flags=CLONE_VM|CLONE_FS|CLONE_FILES|CLONE_SIGHAND|CLONE_THREAD|CLONE_SYS
VSEM|CLONE_SETTLS|CLONE_PARENT_SETTID|CLONE_CHILD_\
> CLEARTID|CLONE_DETACHED, parent_tidptr=0x413ffbf8, {entry_number:6,
> base_addr:0x413ffbb0, limit:1048575, seg_32bit:1, contents:0,
> read_exec_only:0\ , limit_in_pages:1, seg_not_present:0, useable:1},
> child_tidptr=0x413ffbf8) = 15998 [pid 15996] futex(0x80b0274,
> FUTEX_WAIT, 0, NULL <unfinished ...> [pid 15997] write(1, ") ::
> FastInt\ntagOf_PrimOp DeRefS"..., 919 <unfinished ...> [pid 15998]
> futex(0x80a43e4, FUTEX_WAIT, 0, NULL <unfinished ...> [pid 15997]
> <... write resumed> ) = 919 [pid 15997] futex(0x80b0274,
> FUTEX_REQUEUE, 1, 2147483647, 0x80a3998 <unfinished ...> [pid 15996]
> <... futex resumed> ) = 0 [pid 15997] <... futex resumed> )
> = 1 [pid 15996] futex(0x80a3998, FUTEX_WAIT, 2, NULL <unfinished ...>
> [pid 15997] gettimeofday({1108760364, 365240}, NULL) = 0 [pid 15997]
> pipe([3, 4]) = 0 [pid 15997] futex(0x80a3998,
> FUTEX_WAKE, 1 <unfinished ...> [pid 15996] <... futex resumed> )
> = 0 [pid 15997] <... futex resumed> ) = 1
> [pid 15996] futex(0x80a3998, FUTEX_WAKE, 1 <unfinished ...>
> [pid 15997] select(4, [3], [], NULL, {134, 217727} <unfinished ...>
> [pid 15996] <... futex resumed> ) = 0
> [pid 15996] write(4, "*", 1 <unfinished ...>
> [pid 15997] <... select resumed> ) = 1 (in [3], left {134,
> 218000}) [pid 15996] <... write resumed> ) = 1
> [pid 15997] futex(0x80a3998, FUTEX_WAIT, 2, NULL <unfinished ...>
> [pid 15996] futex(0x80a3998, FUTEX_WAKE, 1 <unfinished ...>
> [pid 15997] <... futex resumed> ) = -1 EAGAIN (Resource
> temporarily unavailable) [pid 15996] <... futex resumed> ) = 0
> [pid 15997] read(3, <unfinished ...>
> [pid 15996] futex(0x80a43d4, FUTEX_WAIT, 0, NULL <unfinished ...>
> [pid 15997] <... read resumed> "*", 1) = 1
> [pid 15997] futex(0x80a43d4, FUTEX_WAKE, 1 <unfinished ...>
> [pid 15996] <... futex resumed> ) = 0
> [pid 15997] <... futex resumed> ) = 1
> [pid 15996] futex(0x80a43c4, FUTEX_WAIT, 2, NULL <unfinished ...>
> [pid 15997] futex(0x80a43c4, FUTEX_WAKE, 1 <unfinished ...>
> [pid 15996] <... futex resumed> ) = -1 EAGAIN (Resource
> temporarily unavailable) [pid 15997] <... futex resumed> ) = 0
> [pid 15996] futex(0x80a43c4, FUTEX_WAKE, 1 <unfinished ...>
> [pid 15997] futex(0x80a43d4, FUTEX_WAIT, 2, NULL <unfinished ...>
> [pid 15996] <... futex resumed> ) = 0
> [pid 15996] futex(0x80a43d4, FUTEX_WAIT, 1, NULL) = -1 EAGAIN
> (Resource temporarily unavailable) [pid 15996] futex(0x80a43d4,
> FUTEX_WAIT, 2, NULL
>
>
> This all happens on one of our Linux boxes running under Debian btw
> ...
>
> paaulau:/<3>ghc/compiler> uname -a
> Linux paaulau 2.6.8-1-386 #1 Thu Nov 11 12:18:43 EST 2004 i686
> GNU/Linux
>
> ... where apparently the tls versions of shared libraries are loaded
> first ...
>
> paaulau:/<3>ghc/compiler> ldd ../utils/genprimopcode/genprimopcode
> libm.so.6 => /lib/tls/libm.so.6 (0x40019000)
> libgmp.so.3 => /usr/lib/libgmp.so.3 (0x4003c000)
> libdl.so.2 => /lib/tls/libdl.so.2 (0x40069000)
> libpthread.so.0 => /lib/tls/libpthread.so.0 (0x4006c000)
> libc.so.6 => /lib/tls/libc.so.6 (0x4007b000)
> /lib/ld-linux.so.2 => /lib/ld-linux.so.2 (0x40000000)
>
> Anybody seen this before?
>
> -Matthias


<Prev in Thread] Current Thread [Next in Thread>
Google Custom Search

News | FAQ | advertise