diff options
author | Björn Gustavsson <[email protected]> | 2011-10-25 10:11:24 +0200 |
---|---|---|
committer | Björn Gustavsson <[email protected]> | 2011-11-25 10:59:38 +0100 |
commit | 6e7de55f346e632b3f29835f7678a7ecfb464d99 (patch) | |
tree | cfac2279475fe6417ee7f9788bc6a49fdc67f8a3 /erts/emulator/beam/erl_nif.c | |
parent | 743eae551552a51703fc5d44a0ce5f634f33740d (diff) | |
download | otp-6e7de55f346e632b3f29835f7678a7ecfb464d99.tar.gz otp-6e7de55f346e632b3f29835f7678a7ecfb464d99.tar.bz2 otp-6e7de55f346e632b3f29835f7678a7ecfb464d99.zip |
configure: Define NO_JUMP_TABLE if all we have is llvm-gcc
Commit dd24ca1cb76d attempts to fix the problem that LLVM-based
compilers (such as llvm-gcc-4.2 and clang) miscompiles beam_emu.c.
The idea was to force the use of gcc-4.2 if the default compiler
was LLVM-based.
Since that fix, Apple released Xcode 4.2 that does not include
any version of gcc, only llvm-gcc-4.2 and clang.
We could require gcc in order to be the system, but it would be
nice if Erlang/OTP could be built out-of-box on MacOS X, albeit
with reduced performance.
Therefore, make sure that we set NO_JUMP_TABLE (use a switch
statement instead of computed gotos in beam_emu.c) if no compiler
that correctly handles computed gotos can be found.
We know that clang based on the upcoming LLVM 3.0 will work, but older
LLVM-based compilers will not, so we can test the version of clang.
llvm-gcc has been discontinued in LLVM 3.0, so if the compiler is
LLVM-based but not clang, we can assume that it does not handles
computed gotos correctly.
Diffstat (limited to 'erts/emulator/beam/erl_nif.c')
0 files changed, 0 insertions, 0 deletions