[erlang-questions] Trouble compiling erlang on OS X intel

David King <>
Sun Jul 15 07:15:58 CEST 2007


> Darwin Ports has changed it's name to Mac Ports (http:// 
> www.macports.org/). I installed R11B-4 with
> Mac Ports without any problem. I'm just not up to date... R11B-5 is  
> available.
> Also, there is an smp variant available for the Mac Ports erlang  
> package... I think you would do:
> port install erlang +smp
> Or something like that.

Ah, I wasn't aware of the variant-system in Macports, that saved me  
quite some time, thank you. FreeBSD's ports (on with Mac Ports is  
based) uses environment variables for that.

Is there a way to convince Erlang that "-smp enable" should be the  
default once SMP support is included?



> Mikael Pettersson wrote:
>> 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
>> _______________________________________________
>> erlang-questions mailing list
>> 
>> http://www.erlang.org/mailman/listinfo/erlang-questions
> _______________________________________________
> erlang-questions mailing list
> 
> http://www.erlang.org/mailman/listinfo/erlang-questions




More information about the erlang-questions mailing list