Opened 16 years ago

Closed 13 years ago

#12979 closed defect (fixed)

w3m build hangs in mktable

Reported by: com-macosforge@… Owned by: macports-tickets@…
Priority: Normal Milestone:
Component: ports Version: 1.5.2
Keywords: Cc: jmroot (Joshua Root)
Port: w3m

Description

I can't get the w3m build to complete on 10.4.10 Intel; mktable just spins forever using 100% CPU.

(gdb) thread apply all bt

Thread 2 (process 19199 thread 0xf03):
#0  0x90009cd7 in mach_msg_trap ()
#1  0x90009c38 in mach_msg ()
#2  0x90024816 in semaphore_create ()
#3  0x90024744 in new_sem_from_pool ()
#4  0x90001534 in pthread_mutex_lock ()
#5  0x0003e7a5 in GC_generic_lock ()
#6  0x0003e7c5 in GC_acquire_mark_lock ()
#7  0x00038c99 in GC_help_marker ()
#8  0x0003d955 in GC_mark_thread ()
#9  0x90024227 in _pthread_body ()

Thread 1 (process 19199 thread 0xd03):
#0  0xffff0292 in ___spin_lock () at /System/Library/Frameworks/System.framework/PrivateHeaders/i386/cpu_capabilities.h:216

Here's a build log (after I killed mktable):

--->  Fetching w3m
--->  Attempting to fetch w3m-0.5.2.tar.gz from http://downloads.sourceforge.net/w3m
--->  Verifying checksum(s) for w3m
--->  Extracting w3m
--->  Applying patches to w3m
--->  Configuring w3m
--->  Building w3m with target all
    
Error: Target org.macports.build returned: shell command " cd "/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_release_ports_www_w3m/work/w3m-0.5.2" && make all " returned error 2
Command output: ftp.c: In function 'ftp_login':
ftp.c:133: warning: pointer targets in passing argument 3 of 'getsockname' differ in signedness
ftp.c: In function 'ftp_pasv':
ftp.c:203: warning: pointer targets in passing argument 3 of 'getpeername' differ in signedness
gcc  -I. -I. -O2 -I/opt/local/include/ -I./libwc  -I/opt/local/include/openssl -I/opt/local/include -I/opt/local/include/gc -I/opt/local/include -I/opt/local/include/gc -DHAVE_CONFIG_H -DAUXBIN_DIR=\"/opt/local/libexec/w3m\" -DCGIBIN_DIR=\"/opt/local/libexec/w3m/cgi-bin\" -DHELP_DIR=\"/opt/local/share/w3m\" -DETC_DIR=\"/opt/local/etc\" -DCONF_DIR=\"/opt/local/etc/w3m\" -DRC_DIR=\"~/.w3m\" -DLOCALEDIR=\"/opt/local/share/locale\" -I/opt/local/include -I/opt/local/include/gc  -c -o mimehead.o mimehead.c
gcc  -I. -I. -O2 -I/opt/local/include/ -I./libwc  -I/opt/local/include/openssl -I/opt/local/include -I/opt/local/include/gc -I/opt/local/include -I/opt/local/include/gc -DHAVE_CONFIG_H -DAUXBIN_DIR=\"/opt/local/libexec/w3m\" -DCGIBIN_DIR=\"/opt/local/libexec/w3m/cgi-bin\" -DHELP_DIR=\"/opt/local/share/w3m\" -DETC_DIR=\"/opt/local/etc\" -DCONF_DIR=\"/opt/local/etc/w3m\" -DRC_DIR=\"~/.w3m\" -DLOCALEDIR=\"/opt/local/share/locale\" -I/opt/local/include -I/opt/local/include/gc  -c -o regex.o regex.c
gcc  -I. -I. -O2 -I/opt/local/include/ -I./libwc  -I/opt/local/include/openssl -I/opt/local/include -I/opt/local/include/gc -I/opt/local/include -I/opt/local/include/gc -DHAVE_CONFIG_H -DAUXBIN_DIR=\"/opt/local/libexec/w3m\" -DCGIBIN_DIR=\"/opt/local/libexec/w3m/cgi-bin\" -DHELP_DIR=\"/opt/local/share/w3m\" -DETC_DIR=\"/opt/local/etc\" -DCONF_DIR=\"/opt/local/etc/w3m\" -DRC_DIR=\"~/.w3m\" -DLOCALEDIR=\"/opt/local/share/locale\" -I/opt/local/include -I/opt/local/include/gc  -c -o news.o news.c
sort funcname.tab | awk -f ./funcname0.awk > funcname.c
gcc  -I. -I. -O2 -I/opt/local/include/ -I./libwc  -I/opt/local/include/openssl -I/opt/local/include -I/opt/local/include/gc -I/opt/local/include -I/opt/local/include/gc -DHAVE_CONFIG_H -DAUXBIN_DIR=\"/opt/local/libexec/w3m\" -DCGIBIN_DIR=\"/opt/local/libexec/w3m/cgi-bin\" -DHELP_DIR=\"/opt/local/share/w3m\" -DETC_DIR=\"/opt/local/etc\" -DCONF_DIR=\"/opt/local/etc/w3m\" -DRC_DIR=\"~/.w3m\" -DLOCALEDIR=\"/opt/local/share/locale\" -I/opt/local/include -I/opt/local/include/gc  -c -o mktable.o mktable.c
gcc  -I. -I. -O2 -I/opt/local/include/ -I./libwc  -I/opt/local/include/openssl -I/opt/local/include -I/opt/local/include/gc -I/opt/local/include -I/opt/local/include/gc -DHAVE_CONFIG_H -DAUXBIN_DIR=\"/opt/local/libexec/w3m\" -DCGIBIN_DIR=\"/opt/local/libexec/w3m/cgi-bin\" -DHELP_DIR=\"/opt/local/share/w3m\" -DETC_DIR=\"/opt/local/etc\" -DCONF_DIR=\"/opt/local/etc/w3m\" -DRC_DIR=\"~/.w3m\" -DLOCALEDIR=\"/opt/local/share/locale\" -DDUMMY -c -o dummy.o entity.c
gcc  -I. -I. -O2 -I/opt/local/include/ -I./libwc  -I/opt/local/include/openssl -I/opt/local/include -I/opt/local/include/gc -I/opt/local/include -I/opt/local/include/gc -DHAVE_CONFIG_H -DAUXBIN_DIR=\"/opt/local/libexec/w3m\" -DCGIBIN_DIR=\"/opt/local/libexec/w3m/cgi-bin\" -DHELP_DIR=\"/opt/local/share/w3m\" -DETC_DIR=\"/opt/local/etc\" -DCONF_DIR=\"/opt/local/etc/w3m\" -DRC_DIR=\"~/.w3m\" -DLOCALEDIR=\"/opt/local/share/locale\" -I/opt/local/include -I/opt/local/include/gc  -c -o Str.o Str.c
gcc  -I. -I. -O2 -I/opt/local/include/ -I./libwc  -I/opt/local/include/openssl -I/opt/local/include -I/opt/local/include/gc -I/opt/local/include -I/opt/local/include/gc -DHAVE_CONFIG_H -DAUXBIN_DIR=\"/opt/local/libexec/w3m\" -DCGIBIN_DIR=\"/opt/local/libexec/w3m/cgi-bin\" -DHELP_DIR=\"/opt/local/share/w3m\" -DETC_DIR=\"/opt/local/etc\" -DCONF_DIR=\"/opt/local/etc/w3m\" -DRC_DIR=\"~/.w3m\" -DLOCALEDIR=\"/opt/local/share/locale\" -I/opt/local/include -I/opt/local/include/gc  -c -o indep.o indep.c
gcc  -I. -I. -O2 -I/opt/local/include/ -I./libwc  -I/opt/local/include/openssl -I/opt/local/include -I/opt/local/include/gc -I/opt/local/include -I/opt/local/include/gc -DHAVE_CONFIG_H -DAUXBIN_DIR=\"/opt/local/libexec/w3m\" -DCGIBIN_DIR=\"/opt/local/libexec/w3m/cgi-bin\" -DHELP_DIR=\"/opt/local/share/w3m\" -DETC_DIR=\"/opt/local/etc\" -DCONF_DIR=\"/opt/local/etc/w3m\" -DRC_DIR=\"~/.w3m\" -DLOCALEDIR=\"/opt/local/share/locale\" -I/opt/local/include -I/opt/local/include/gc  -c -o textlist.o textlist.c
gcc  -I. -I. -O2 -I/opt/local/include/ -I./libwc  -I/opt/local/include/openssl -I/opt/local/include -I/opt/local/include/gc -I/opt/local/include -I/opt/local/include/gc -DHAVE_CONFIG_H -DAUXBIN_DIR=\"/opt/local/libexec/w3m\" -DCGIBIN_DIR=\"/opt/local/libexec/w3m/cgi-bin\" -DHELP_DIR=\"/opt/local/share/w3m\" -DETC_DIR=\"/opt/local/etc\" -DCONF_DIR=\"/opt/local/etc/w3m\" -DRC_DIR=\"~/.w3m\" -DLOCALEDIR=\"/opt/local/share/locale\" -I/opt/local/include -I/opt/local/include/gc  -c -o parsetag.o parsetag.c
gcc  -I. -I. -O2 -I/opt/local/include/ -I./libwc  -I/opt/local/include/openssl -I/opt/local/include -I/opt/local/include/gc -I/opt/local/include -I/opt/local/include/gc -DHAVE_CONFIG_H -DAUXBIN_DIR=\"/opt/local/libexec/w3m\" -DCGIBIN_DIR=\"/opt/local/libexec/w3m/cgi-bin\" -DHELP_DIR=\"/opt/local/share/w3m\" -DETC_DIR=\"/opt/local/etc\" -DCONF_DIR=\"/opt/local/etc/w3m\" -DRC_DIR=\"~/.w3m\" -DLOCALEDIR=\"/opt/local/share/locale\" -I/opt/local/include -I/opt/local/include/gc  -c -o myctype.o myctype.c
gcc  -I. -I. -O2 -I/opt/local/include/ -I./libwc  -I/opt/local/include/openssl -I/opt/local/include -I/opt/local/include/gc -I/opt/local/include -I/opt/local/include/gc -DHAVE_CONFIG_H -DAUXBIN_DIR=\"/opt/local/libexec/w3m\" -DCGIBIN_DIR=\"/opt/local/libexec/w3m/cgi-bin\" -DHELP_DIR=\"/opt/local/share/w3m\" -DETC_DIR=\"/opt/local/etc\" -DCONF_DIR=\"/opt/local/etc/w3m\" -DRC_DIR=\"~/.w3m\" -DLOCALEDIR=\"/opt/local/share/locale\" -I/opt/local/include -I/opt/local/include/gc  -c -o hash.o hash.c
ar rv libindep.a Str.o indep.o regex.o textlist.o parsetag.o myctype.o hash.o
ar: creating archive libindep.a
a - Str.o
a - indep.o
a - regex.o
a - textlist.o
a - parsetag.o
a - myctype.o
a - hash.o
ranlib libindep.a
gcc  -I. -I. -O2 -I/opt/local/include/ -I./libwc  -I/opt/local/include/openssl -I/opt/local/include -I/opt/local/include/gc -I/opt/local/include -I/opt/local/include/gc -DHAVE_CONFIG_H -DAUXBIN_DIR=\"/opt/local/libexec/w3m\" -DCGIBIN_DIR=\"/opt/local/libexec/w3m/cgi-bin\" -DHELP_DIR=\"/opt/local/share/w3m\" -DETC_DIR=\"/opt/local/etc\" -DCONF_DIR=\"/opt/local/etc/w3m\" -DRC_DIR=\"~/.w3m\" -DLOCALEDIR=\"/opt/local/share/locale\" -o mktable mktable.o dummy.o -L/opt/local/lib  -L. -lindep -lintl -liconv -lc  -lgc
sort funcname.tab | awk -f ./functable.awk > functable.tab
./mktable 100 functable.tab > functable.c
make: *** [functable.c] Error 143

Change History (15)

comment:1 Changed 16 years ago by afb@…

For me: sometimes it builds, sometimes it doesn't. Tried patching out "envp", but that wasn't it.

comment:2 Changed 16 years ago by ryandesign (Ryan Carsten Schmidt)

Cc: com-macosforge@… added

comment:3 Changed 16 years ago by hippoman@…

I have the same problem in 10.5 on my MacBook Pro. It seems to be related to boehmgc, because upon debugging, I see that the mktable program is going into what seems to be an infinite loop on the GC_INIT() line in the code fragment below (from mktable.c):

...
int
main(int argc, char *argv[], char **envp)
{
    FILE *f;
    Hash_ss *hash;
    HashItem_ss **hashitems, *hi;
    int size, n, i, j;
    Str s, name, fbase;
    char *p;
    Hash_hss_i *rhash;

    GC_INIT();
    if (argc != 3) {
        fprintf(stderr, "usage: %s hashsize file.tab > file.c\n", argv[0]);
        exit(1);
    }
    ...

comment:4 Changed 16 years ago by com-macosforge@…

Found a solution here. I modified the Portfile for boehmgc so it built version 6.8 instead of 7.0; w3m then built without a problem.

comment:5 Changed 16 years ago by an00na@…

I also met this problem in 10.5 on my iMac, and hope this bug could be fixed soon.

comment:6 Changed 16 years ago by matthieu.kaczmarek@…

I had the same problem. I used the following local Portfiles the first one is for boehmgc 6.7 and the second one simply adds a variant 'leopard' for w3m

# $Id $

PortSystem 1.0
name		boehmgc67
version		6.7
categories	devel
maintainers	waqar@macports.org
description	Boehm-Demers-Weiser conservative garbage collector
long_description   The Boehm-Demers-Weiser conservative garbage collector \
	           can be used as a garbage collecting replacement for C \
		   malloc or C++ new. It is also used by a number of \
		   programming language implementations that use C as \
		   intermediate code.
set d_name      gc
homepage        http://www.hpl.hp.com/personal/Hans_Boehm/${d_name}/
platforms	darwin
master_sites	${homepage}gc_source/
distname	${d_name}${version}
checksums	sha1 22d7f81bf141bd1df8fe7a692e80b03754717498
configure.args  --with-threads=posix \
		--enable-parallel-mark \
		--enable-cplusplus

variant redirect {
	configure.args-append  --enable-redirect-malloc
}

platform darwin 8 {
	configure.compiler	gcc-4.0
}

platform darwin 9 {
	configure.cflags-append -D_NONSTD_SOURCE
}

test.run	yes
test.target	check

livecheck.check regex
livecheck.url   ${master_sites}?C=M&O=D
livecheck.regex ${d_name}-(\\d+(?:\\.\\d+)*)
# $Id $

PortSystem          1.0
name                w3m
version             0.5.2
categories          www
maintainers         nomaintainer
description         pager/text based browser
long_description    w3m is a pager/text-based WWW browser. \
                        It is a similar application to Lynx, but it has \
                        several features Lynx doesn't have, like tables, frames\
                        and inline image rendering. Its 8-bit support is second\
                        to none.

platforms           darwin
master_sites        sourceforge
checksums           md5 ba06992d3207666ed1bf2dcf7c72bf58
depends_lib         lib:libgccpp.1:boehmgc
patchfiles          gc_init.patch
configure.args      --with-gc=${prefix} --with-ssl=${prefix} \
                        --enable-keymap=w3m --enable-image=x11 \
                        --with-termlib=curses --mandir=${prefix}/share/man
# libwc will not find gc unless ..
configure.cflags-append "-I${prefix}/include/"

variant leopard {
	depends_lib         lib:libgccpp.1:boehmgc67
}

comment:7 Changed 16 years ago by sbplrports@…

getting the same hang in mktable in MP 1.6, using beohmgc 7.0, w3m 0.5.2. modified boehmgc portfile to build 6.7. and added leopard variant to w3m. getting this error now:

sudo port install w3m
--->  Fetching w3m
--->  Attempting to fetch w3m-0.5.2.tar.gz from http://downloads.sourceforge.net/w3m
--->  Verifying checksum(s) for w3m
--->  Extracting w3m
--->  Applying patches to w3m
--->  Configuring w3m
--->  Building w3m with target all
Error: Target org.macports.build returned: shell command " cd "/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_release_ports_www_w3m/work/w3m-0.5.2" && make all " returned error 2
Command output: x11_w3mimg.c:651: error: 'animation' undeclared (first use in this function)
x11_w3mimg.c: In function 'w3mimg_x11open':
x11_w3mimg.c:750: error: 'XWindowAttributes' undeclared (first use in this function)
x11_w3mimg.c:750: error: syntax error before 'attr'
x11_w3mimg.c:751: error: 'Window' undeclared (first use in this function)
x11_w3mimg.c:758: error: invalid application of 'sizeof' to incomplete type 'struct x11_info' 
x11_w3mimg.c:761: error: invalid application of 'sizeof' to incomplete type 'struct x11_info' 
x11_w3mimg.c:763: error: dereferencing pointer to incomplete type
x11_w3mimg.c:764: error: dereferencing pointer to incomplete type
x11_w3mimg.c:768: error: dereferencing pointer to incomplete type
x11_w3mimg.c:768: error: syntax error before 'atoi'
x11_w3mimg.c:771: error: dereferencing pointer to incomplete type
x11_w3mimg.c:774: error: dereferencing pointer to incomplete type
x11_w3mimg.c:774: error: dereferencing pointer to incomplete type
x11_w3mimg.c:774: error: 'attr' undeclared (first use in this function)
x11_w3mimg.c:779: error: syntax error before 'p_window'
x11_w3mimg.c:781: error: dereferencing pointer to incomplete type
x11_w3mimg.c:781: error: dereferencing pointer to incomplete type
x11_w3mimg.c:781: error: 'root' undeclared (first use in this function)
x11_w3mimg.c:781: error: dereferencing pointer to incomplete type
x11_w3mimg.c:782: error: 'children' undeclared (first use in this function)
x11_w3mimg.c:783: error: 'p_window' undeclared (first use in this function)
x11_w3mimg.c:783: error: dereferencing pointer to incomplete type
x11_w3mimg.c:785: error: dereferencing pointer to incomplete type
x11_w3mimg.c:791: error: dereferencing pointer to incomplete type
x11_w3mimg.c:794: error: dereferencing pointer to incomplete type
x11_w3mimg.c:799: error: dereferencing pointer to incomplete type
make[2]: *** [x11_w3mimg.o] Error 1
make[1]: *** [x11] Error 2
make: *** [w3mimg] Error 2

Error: Status 1 encountered during processing.

MBP Leopard 10.5.2 MP 1.6 XCode 3.0

comment:8 in reply to:  7 Changed 16 years ago by sbplrports@…

there is no mktable hang on my G5 Quad, but it results in the same error as above with either 6.7 or 7.0 boehmgc installed.

Leopard 10.5.2 MP 1.6 Xcode 3.0

comment:9 Changed 16 years ago by gwright@…

It builds OK for me with Boehm gc 7.0 if the --enable-parallel-mark option is removed (in the boehmgc port).

In fact, the boehmgc port hangs during it own tests if --enable-parallel-mark is set. I have removed this option and checked in a new revision of the boehmgc port as r35638.

Try uninstalling and reinstalling boehmgc, then clean and rebuild w3m.

comment:10 Changed 16 years ago by com-macosforge@…

w3m now builds and runs fine on 10.5.2 and 10.4.11 Intel, but I still got the mktable hang on 10.4.11 PPC:

[p8:1007] ~%sudo port uninstall boehmgc                                  8:56AM
--->  Deactivating boehmgc 7.0_0+darwin_8
--->  Uninstalling boehmgc 7.0_0+darwin_8
[p8:1008] ~%sudo port install boehmgc                                    8:56AM
--->  Fetching boehmgc
--->  Verifying checksum(s) for boehmgc
--->  Extracting boehmgc
--->  Configuring boehmgc
--->  Building boehmgc with target all
--->  Staging boehmgc into destroot
--->  Packaging tgz archive for boehmgc 7.0_0
--->  Installing boehmgc 7.0_0
--->  Activating boehmgc 7.0_0
--->  Cleaning boehmgc
[p8:1009] ~%sudo port install w3m                                        9:01AM
Password:
--->  Fetching w3m
--->  Verifying checksum(s) for w3m
--->  Extracting w3m
--->  Applying patches to w3m
--->  Configuring w3m
--->  Building w3m with target all
[hang]

comment:11 Changed 16 years ago by com-macosforge@…

So much for that; the next time I tried to run w3m on a 10.5.2 Intel machine it hung.

(gdb) thread apply all bt

Thread 2 (process 61492 thread 0xd07):
#0  0x918659e6 in mach_msg_trap ()
#1  0x9186d1dc in mach_msg ()
#2  0x91898113 in semaphore_create ()
#3  0x9189804f in new_sem_from_pool ()
#4  0x9186d4af in pthread_mutex_lock ()
#5  0x0026144b in GC_acquire_mark_lock ()
#6  0x0025abe1 in GC_help_marker ()
#7  0x002603d6 in GC_mark_thread ()
#8  0x91896c55 in _pthread_start ()
#9  0x91896b12 in thread_start ()

Thread 1 (process 61492 thread 0x10b):
#0  0xffff0292 in __spin_lock ()
#1  0x00000000 in ?? ()

comment:12 Changed 15 years ago by (none)

Milestone: Port Bugs

Milestone Port Bugs deleted

comment:13 Changed 14 years ago by jmroot (Joshua Root)

Cc: com-macosforge@… removed
Port: w3m added

comment:14 Changed 14 years ago by jmroot (Joshua Root)

Cc: jmr@… added

Is anyone still seeing this? I can't reproduce on 10.6/x86_64, 10.5/ppc or 10.4/ppc.

comment:15 Changed 13 years ago by jmroot (Joshua Root)

Resolution: fixed
Status: newclosed
Note: See TracTickets for help on using tickets.