===> 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
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.
State Changed From-To: open->closed New patch file committed.