lang/smlnj 110.62 fails to build on Leopard
Reported by: |
esd@… |
Owned by: |
bfulgham@… |
Priority:
|
Normal
|
Milestone:
|
|
Component:
|
ports
|
Version:
|
1.5.0
|
Keywords:
|
|
Cc:
|
esd@…, bfulgham@…
|
Port:
|
|
|
|
On OS X Leopard 9A581 (10.5.0), the lang/smlnj
110.62 port fails to build, with the following error:
ESD:~ esd$ sudo port install smlnj
---> Building smlnj
Error: Target org.macports.build returned: shell command " cd "/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_release_ports_lang_smlnj/work/smlnj-110.62" && /opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_release_ports_lang_smlnj/work/smlnj-110.62/config/install.sh " returned error 1
Command output: /opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_release_ports_lang_smlnj/work/smlnj-110.62/config/install.sh: Using shell /bin/sh.
/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_release_ports_lang_smlnj/work/smlnj-110.62/config/install.sh: SML root is /opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_release_ports_lang_smlnj/work/smlnj-110.62.
/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_release_ports_lang_smlnj/work/smlnj-110.62/config/install.sh: Installation directory is /opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_release_ports_lang_smlnj/work/smlnj-110.62.
/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_release_ports_lang_smlnj/work/smlnj-110.62/config/install.sh: Installing version 110.62.
/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_release_ports_lang_smlnj/work/smlnj-110.62/config/install.sh: URL of source archive is file:///opt/local/var/macports/distfiles/smlnj/110.62.
/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_release_ports_lang_smlnj/work/smlnj-110.62/config/install.sh: Script /opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_release_ports_lang_smlnj/work/smlnj-110.62/bin/.arch-n-opsys reports ARCH=x86; OPSYS=darwin; HEAP_SUFFIX=x86-darwin.
/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_release_ports_lang_smlnj/work/smlnj-110.62/config/unpack: The run-time tree already exists.
/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_release_ports_lang_smlnj/work/smlnj-110.62/config/install.sh: Compiling the run-time system.
(make RUNTIME="run.x86-darwin" VERSION="v-x86-darwin" CC="cc -ansi" CFLAGS="-g -O2" CPP="cc -x assembler-with-cpp -E -P -ansi" AS="/usr/bin/as" TARGET=X86 DEFS=" -DHOST_X86 -DTARGET_X86 -DOPSYS_UNIX -DOPSYS_DARWIN -DOPSYS_MACOS_10_2 -DGNU_ASSEMBLER -DDLOPEN -DINDIRECT_CFUNC" XOBJS="" XLIBS="../c-libs/dl/libunix-dynload.a" LD_LIBS="-ldl" run.x86-darwin)
cc -ansi -c -g -O2 -DHOST_X86 -DTARGET_X86 -DOPSYS_UNIX -DOPSYS_DARWIN -DOPSYS_MACOS_10_2 -DGNU_ASSEMBLER -DDLOPEN -DINDIRECT_CFUNC -I../objs -I../include ../mach-dep/unix-fault.c
../mach-dep/unix-fault.c: In function 'FaultHandler':
../mach-dep/unix-fault.c:68: error: 'struct __darwin_mcontext32' has no member named 'ss'
../mach-dep/unix-fault.c:76: error: 'struct __darwin_mcontext32' has no member named 'ss'
../mach-dep/unix-fault.c:84: error: 'struct __darwin_mcontext32' has no member named 'ss'
../mach-dep/unix-fault.c:88: error: 'struct __darwin_mcontext32' has no member named 'ss'
../mach-dep/unix-fault.c:93: error: 'struct __darwin_mcontext32' has no member named 'ss'
make[1]: *** [unix-fault.o] Error 1
make: *** [all] Error 2
/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_release_ports_lang_smlnj/work/smlnj-110.62/config/install.sh: !!! Run-time system build failed for some reason.
Error: Status 1 encountered during processing.
This bug is caused by a change in the way signals were represented in Leopard (compared to prior releases). It appears that this is fixed in the SVN sources for SML/NJ, but they have not blessed an updated build with this fix.
I attempted to manually patch 110.65 to deal with the problem, but ran into other errors (e.g., 110.65 does not have a corresponding tarball for lexgen.tgz, etc.).
So, I'm creating an "smlnj-dev" Portfile, which will generate a build from the SVN sources, similar to that of ghc/ghc-devel.
Once they release a new version (perhaps 110.66) we can update the 'stable' version.