diff --git a/deps/liberl/Makefile.am b/deps/liberl/Makefile.am
index f45237d5487f56ad45deb9ca3af6e0b2e3c9aa2c..93f2eee4072776a8c93694a885766eeb9aa7fcb4 100644
--- a/deps/liberl/Makefile.am
+++ b/deps/liberl/Makefile.am
@@ -31,10 +31,17 @@
 #
 
 ACLOCAL_AMFLAGS=-I m4
+noinst_LTLIBRARIES =
+lib_LTLIBRARIES =
+
+if EMBEDDED
+noinst_LTLIBRARIES += liberl.la
+else
+lib_LTLIBRARIES += liberl.la
+endif
 
 # ERL library
 SUBDIRS = erl . tests
-lib_LTLIBRARIES = liberl.la
 liberl_la_SOURCES = include/erl_status.h \
 		    include/erl_logging.h \
 		    include/erl_threadpool.h \
diff --git a/deps/liberl/configure.ac b/deps/liberl/configure.ac
index b779567c21c649dea9993ac8d04d2eef03417bf6..dec850a51aef5e2e9ad3372ed9efcb122b209a93 100644
--- a/deps/liberl/configure.ac
+++ b/deps/liberl/configure.ac
@@ -37,6 +37,16 @@ AC_PROG_CC
 AM_PROG_AR
 AM_INIT_AUTOMAKE([-Wall -Werror foreign subdir-objects tar-ustar])
 
+AC_ARG_ENABLE([embedded],
+              [AS_HELP_STRING([--enable-embedded],
+                              [Enable embedded support (build convenience library, no symbol versioning) @<:@default=no@:>@])
+              ],
+              [ac_asm_symver_support=0
+               icc_symver_hack=1],
+              [enable_embedded=no])
+AM_CONDITIONAL([EMBEDDED], [test x"$enable_embedded" = x"yes"])
+
+
 AC_ARG_ENABLE([numa],
               [AS_HELP_STRING([--enable-numa],[Disable libnuma usage (default: use if detected)])],
 	      [enable_numa=$enableval],[enable_numa=yes])
diff --git a/deps/liberl/include/erl_threadpool.h b/deps/liberl/include/erl_threadpool.h
index f283f3253da324fad9d08b769e0f2f9ba8c926da..d5bd312c2f345644ce85e23953e615ce8c625dc6 100644
--- a/deps/liberl/include/erl_threadpool.h
+++ b/deps/liberl/include/erl_threadpool.h
@@ -84,7 +84,7 @@ erl__get_binding_index_rr1(const struct erl_threadpool_attr *attr, int nnodes, i
 int
 erl__get_binding_index_rrall(const struct erl_threadpool_attr *attr, int nnodes, int ncpus, int tid);
 
-int (*erl__get_binding_index[ERL_tp_cpubind__max]) 
+static int (*const erl__get_binding_index[ERL_tp_cpubind__max]) 
     (const struct erl_threadpool_attr *attr, int nnodes, int ncpus, int tid) = {
   erl__get_binding_error,
   erl__get_binding_index_fixed,