[erlang-questions] What erlc flags are needed to compile native (HiPE) to run on smp-disabled runtime?

Edwin Fine <>
Sun Oct 12 22:24:52 CEST 2008


Thanks, Mikael.

On Sun, Oct 12, 2008 at 2:44 PM, Mikael Pettersson <> wrote:

> Edwin Fine writes:
>  > To generate native code for smp-enabled runtime using erlc is easy. I
> can't
>  > seem to make it happen for smp disabled runtime.
>  >
>  > If I start up Erlang with -smp disable and compile from within Erlang,
> then
>  > it does what I want (creates a natively-compiled beam for non-smp use).
>  >
>  > $ erl -smp disable
>  > 1> c(mymodule, [native, {hipe, o3}])
>  > {ok,mymodule}
>  > 8>
>  >
>  > But this is very inconvenient if a build system is created that relies
> on
>  > erlc. Is there a better way?
>
> For various reasons the HiPE compiler can only generate code
> for the runtime system it's running on, so to generate non-SMP
> code you must run the compiler from within a non-SMP system.
>
> Unfortunately there doesn't seem to be any flag to erlc to make
> it choose a non-default runtime system, or a way to pass on raw
> options to erl instead of the compiler. erl (erlexec.c), however,
> can take command-line options from the environment, and the
> following seems to work:
>
>        ERL_AFLAGS='-smp disable' erlc +native Module.erl
>
> But extending erts/etc/common/erlc.c to accept
>
>        erlc -smp disable MoreOptions
>
> with the same meaning as for erl, or to accept
>
>        erlc -erl ErlOption ...
>
> and pass ErlOption verbatim to erl would be a nicer solution.
>
> /Mikael
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://erlang.org/pipermail/erlang-questions/attachments/20081012/efdf3c5a/attachment.html>


More information about the erlang-questions mailing list