[erlang-questions] Trouble compiling erlang on OS X intel
Mikael Pettersson
mikpe@REDACTED
Sat Jul 14 23:54:36 CEST 2007
On Sat, 14 Jul 2007 13:12:29 -0700, David King wrote:
> I'm having trouble compiling Erlang R11B-5 on OS X.4 on an Intel
> MacBook Pro. It fails saying that it can't find "mach_override.h",
> which doesn't appear anywhere on my machine.
>
> ~/Desktop/otp_src_R11B-5% ./configure --enable-smp-support --enable-
> threads --enable-kernel-poll --enable-hipe --prefix=/usr/local --with-
> ssl && make
> [...]
> gcc -mdynamic-no-pic -g -O2 -I/Users/dking/Desktop/otp_src_R11B-5/
> erts/i386-apple-darwin8.10.1 -no-cpp-precomp -DUSE_THREADS -
> D_THREAD_SAFE -D_REENTRANT -DHYBRID -DHAVE_CONFIG_H -Wall -Wstrict-
> prototypes -Wmissing-prototypes -DUSE_THREADS -D_THREAD_SAFE -
> D_REENTRANT -Ibeam -Isys/unix -Isys/common -Ii386-apple-darwin8.10.1/
> opt/hybrid -Ii386-apple-darwin8.10.1 -Izlib -Ihipe -I../include/
> internal -I../include/internal/i386-apple-darwin8.10.1 -c i386-apple-
> darwin8.10.1/opt/hybrid/hipe_x86_bifs.S -o obj/i386-apple-
> darwin8.10.1/opt/hybrid/hipe_x86_bifs.o
> make[3]: *** No rule to make target `mach_override.h', needed by `obj/
> i386-apple-darwin8.10.1/opt/hybrid/hipe_x86_signal.o'. Stop.
> make[2]: *** [opt] Error 2
> make[1]: *** [hybrid] Error 2
> make: *** [emulator] Error 2
>
> If I do the same without --enable-hipe it works, but the Erlang from
> Darwinports has hipe and it works just fine (although it doesn't have
> SMP support, which is important to me), so I know hipe works with OS X.
>
> I see that Darwinports actually ships with mach_override.h:
>
> % find /opt -name mach_override.h
> /opt/local/var/db/dports/sources/
> rsync.rsync.darwinports.org_dpupdate_dports/lang/erlang/files/
> mach_override.h
>
> I also see that Darwinports has some other files necessary for Erlang:
>
> % ls /opt/local/var/db/dports/sources/
> rsync.rsync.darwinports.org_dpupdate_dports/lang/erlang/files
> mach_override.c mach_override.h patch-toolbar.erl
>
> So is there a generalised OS X patchset that I'm missing?
You just answered your own question. Use Darwinports (whatever that is).
Support for HiPE on OSX/x86 in the vanilla OTP tarballs is only partial.
It requires the mach_override stuff, and is totally unsupported since
(1) it does weird things (mach_override), and (2) we (the HiPE group)
don't have OSX/x86 machines.
Just ask whoever's in charge of Erlang in Darwinports to enable SMP,
or get the source code for their patched Erlang package and enable
SMP yourself. It probably just needs ./configure --enable-smp-support.
/Mikael
More information about the erlang-questions
mailing list