diff options
author | Lukas Larsson <[email protected]> | 2013-08-08 10:25:46 +0200 |
---|---|---|
committer | Lukas Larsson <[email protected]> | 2013-08-08 10:25:46 +0200 |
commit | 3fbbe6760a0476fccc2375dc8ca5791546dbc876 (patch) | |
tree | 5e7b93a5ac7b77232177fcfa75001cead382afb6 | |
parent | 4ba61d6fd151172768c62f254ca46371014f2061 (diff) | |
parent | 0642847e85a0517c4063e23f21dcd18052e8d94c (diff) | |
download | otp-3fbbe6760a0476fccc2375dc8ca5791546dbc876.tar.gz otp-3fbbe6760a0476fccc2375dc8ca5791546dbc876.tar.bz2 otp-3fbbe6760a0476fccc2375dc8ca5791546dbc876.zip |
Merge branch 'lukas/erts/ethr_smp_req_native_compiletime/OTP-11196' into maint
* lukas/erts/ethr_smp_req_native_compiletime/OTP-11196:
Bailout if no native implementations are found
-rw-r--r-- | erts/configure.in | 5 | ||||
-rw-r--r-- | erts/include/internal/ethread.h | 4 |
2 files changed, 8 insertions, 1 deletions
diff --git a/erts/configure.in b/erts/configure.in index 2f624e5853..64436e933c 100644 --- a/erts/configure.in +++ b/erts/configure.in @@ -1051,12 +1051,15 @@ if test $ERTS_BUILD_SMP_EMU = yes; then AC_DEFINE(ERTS_HAVE_SMP_EMU, 1, [Define if the smp emulator is built]) + test "X$smp_require_native_atomics" = "Xyes" && + AC_DEFINE(ETHR_SMP_REQUIRE_NATIVE_IMPLS, 1, [Define if you want to enable check for native ethread implementations]) + case "$ethr_have_native_atomics-$smp_require_native_atomics-$ethr_have_native_spinlock" in yes-*) ;; no-yes-*) - AC_MSG_ERROR([No native atomic implementation found. See INSTALL.md for more information.]) + AC_MSG_ERROR([No native atomic implementation found. See Configuring section in INSTALL.md for more information.]) ;; no-no-yes) diff --git a/erts/include/internal/ethread.h b/erts/include/internal/ethread.h index 407097d4b1..38b8e9e9b6 100644 --- a/erts/include/internal/ethread.h +++ b/erts/include/internal/ethread.h @@ -361,6 +361,10 @@ extern ethr_runtime_t ethr_runtime__; # endif #endif /* !ETHR_DISABLE_NATIVE_IMPLS */ +#if !defined(ETHR_HAVE_NATIVE_ATOMIC32) && !defined(ETHR_HAVE_NATIVE_ATOMIC64) && !defined(ETHR_DISABLE_NATIVE_IMPLS) && defined(ETHR_SMP_REQUIRE_NATIVE_IMPLS) +#error "No native ethread implementation found. If you want to use fallbacks you have to disable native ethread support with configure." +#endif + #include "ethr_atomics.h" /* The atomics API */ #if defined(__GNUC__) |