aboutsummaryrefslogtreecommitdiffstats
path: root/erts/emulator/beam/utils.c
diff options
context:
space:
mode:
authorBjörn Gustavsson <[email protected]>2011-10-25 10:11:24 +0200
committerBjörn Gustavsson <[email protected]>2011-11-25 10:59:38 +0100
commit6e7de55f346e632b3f29835f7678a7ecfb464d99 (patch)
treecfac2279475fe6417ee7f9788bc6a49fdc67f8a3 /erts/emulator/beam/utils.c
parent743eae551552a51703fc5d44a0ce5f634f33740d (diff)
downloadotp-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/utils.c')
0 files changed, 0 insertions, 0 deletions