[erlang-questions] Elbrus 2K support

Max Lapshin max.lapshin@REDACTED
Thu Nov 3 13:47:40 CET 2016


We have successfully compiled erlang 19.0 under Elbrus 2K.  It is russian
computer with VLIW architecture and transparent support for amd64
instructions execution.

$ uname -a

Linux EL2S4-53-31 3.14.46-elbrus.314.1.14 #1 SMP Mon Sep 21 22:13:08 GMT
2015 e2k E2S EL2S4 GNU/Linux

Right now we have tested how it works in amd64 emulation and had to make
some trivial hacks for it to compile (patch in the end of email), because
compiler is lcc:

$ lcc -v


Thread model: posix

gcc version 4.4.0 compatible.

Stackoverflow couldn't help us with compiling under elbrus, so I decided to
make two dirty patches =)

Erlang and thus our Flussonic can run on this architecture. Thank you for
portable code!

diff --git a/erts/emulator/beam/erl_bif_re.c
index ff7746c..e83c762 100644
--- a/erts/emulator/beam/erl_bif_re.c
+++ b/erts/emulator/beam/erl_bif_re.c
@@ -31,7 +31,7 @@
 #include "big.h"
 #define PCRE_STATIC
-#include "pcre.h"
+#include "../pcre/pcre.h"

diff --git a/erts/emulator/beam/sys.h b/erts/emulator/beam/sys.h
index dfe82ca..872a7df 100644
--- a/erts/emulator/beam/sys.h
+++ b/erts/emulator/beam/sys.h
@@ -235,7 +235,7 @@ __decl_noreturn void __noreturn erl_assert_error(const
char* expr, const char *f
  * Compile time assert
  * (the actual compiler error msg can be a bit confusing)
-#if ERTS_AT_LEAST_GCC_VSN__(3,1,1)
+#if false && ERTS_AT_LEAST_GCC_VSN__(3,1,1)
 # define ERTS_CT_ASSERT(e) \
     do { \
  enum { compile_time_assert__ = __builtin_choose_expr((e),0,(void)0) }; \
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://erlang.org/pipermail/erlang-questions/attachments/20161103/37bc425c/attachment.htm>

More information about the erlang-questions mailing list