Bug 45233 - ocaml port hangs in configure stage (tst program runs forever)
Summary: ocaml port hangs in configure stage (tst program runs forever)
Status: Closed FIXED
Alias: None
Product: Ports & Packages
Classification: Unclassified
Component: Individual Port(s) (show other bugs)
Version: Latest
Hardware: Any Any
: Normal Affects Only Me
Assignee: freebsd-ports-bugs (Nobody)
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2002-11-12 08:30 UTC by Andreas Klemm
Modified: 2003-03-29 13:08 UTC (History)
0 users

See Also:


Attachments
file.diff (564 bytes, patch)
2002-11-12 08:30 UTC, Andreas Klemm
no flags Details | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description Andreas Klemm 2002-11-12 08:30:00 UTC
===>   ocaml-3.06 depends on file: /usr/local/include/tcl8.3 - found
===>   ocaml-3.06 depends on file: /usr/local/include/tk8.3 - found
===>   ocaml-3.06 depends on shared library: tk83.1 - found
===>   ocaml-3.06 depends on shared library: X11.6 - found
===>  Patching for ocaml-3.06
===>  Applying FreeBSD patches for ocaml-3.06
===>  Configuring for ocaml-3.06
Configuring for a i386-unknown-freebsd4.7 ...
gcc found
The C compiler is ANSI-compliant.
Checking the sizes of integers and pointers...
OK, this is a regular 32 bit architecture.
64-bit "long long" integer type found (printf with "%ll").
This is a little-endian architecture.
Doubles can be word-aligned.
64-bit integers can be word-aligned.
Native division and modulus have round-towards-zero semantics, will use them.
Dynamic loading of shared libraries is supported.
objcopy and nm found in /usr/bin
ranlib found
#! appears to work in shell scripts
POSIX signal handling found.
strerror() found.
times() found.
termcap functions found (with libraries '-lcurses')
You have BSD sockets.
inet_aton() found.
unistd.h found.
off_t is defined in <sys/types.h>
dirent.h found.
rewinddir() found.
lockf() found.
mkfifo() found.
getcwd() found.
getwd() found.
getpriority() found.
utime() found.
utimes() found.
dup2() found.
fchmod() found.
truncate() found.
sys/select.h found.
select() found.
symlink() found.
waitpid() found.
wait4() found.
getgroups() found.
POSIX termios found.
Asynchronous I/O are supported.
setitimer() found.
gethostname() found.
uname() found.
gettimeofday() found.
mktime() found.
setsid() found.
putenv() found.
setlocale() and <locale.h> found.
mmap() found.
Replay debugger supported.

After that ocaml port building hangs
Notice the tst process that runs forever.
This breaks portupgrade mechanism

last pid: 63320;  load averages:  2.19,  2.19,  2.33    up 1+00:15:11  09:10:56
122 processes: 2 running, 69 sleeping, 51 zombie
CPU states: 22.3% user,  1.5% nice, 75.4% system,  0.8% interrupt,  0.0% idle
Mem: 173M Active, 189M Inact, 110M Wired, 18M Cache, 61M Buf, 11M Free
Swap: 2048M Total, 32K Used, 2048M Free

  PID USERNAME PRI NICE  SIZE    RES STATE    TIME   WCPU    CPU COMMAND
61442 root      60   0 12448K 12056K RUN    128:46 44.43% 44.43% ruby16
98329 root      59   0  1144K   620K RUN    333:21 43.95% 43.95% tst
 9697 andreas    2   0  9920K  4792K poll     0:43  1.12%  1.12% sawfish
 9673 andreas    2  12 82780K 79032K select  58:36  1.03%  1.03% XFree86
 9705 andreas    2   4 14540K  9104K poll    11:53  0.20%  0.20% gnome-terminal
 9715 andreas    2   5  2924K  1848K poll     0:18  0.15%  0.15% xbuffy

Fix: 

manually kill the tst process, then the port continues to build
flawlessly.
How-To-Repeat: 
Simply try to build ocaml port
Comment 1 Mark Cammidge 2003-02-13 13:23:01 UTC
The code in question (stackov.c) checks FreeBSD's stack overflow 
handling.  If compiled without -pthread, it works fine.  If compiled 
with -pthread, the signal handler never seems to get called.

Whether this behaviour is a result of poorly written test code, or some 
fault of FreeBSD, I don't know.
Comment 2 Jens Schweikhardt freebsd_committer freebsd_triage 2003-03-29 13:07:34 UTC
State Changed
From-To: open->closed

New patch file committed.