update buildroot to 2017.02.11
This commit is contained in:
13
bsp/buildroot-2017.02.11/package/erlang/0001-build-fix.patch
Normal file
13
bsp/buildroot-2017.02.11/package/erlang/0001-build-fix.patch
Normal file
@@ -0,0 +1,13 @@
|
||||
apply-patches.sh deletes this file from the source directory.
|
||||
|
||||
--- erlang-R15B01.old/lib/tools/emacs/Makefile 2012-04-04
|
||||
+++ erlang-R15B01/lib/tools/emacs/Makefile 2012-04-04 15:55:16.978957307 +0100
|
||||
@@ -51,7 +51,7 @@
|
||||
|
||||
ELC_FILES = $(EMACS_FILES:%=%.elc)
|
||||
|
||||
-TEST_FILES = test.erl.indented test.erl.orig
|
||||
+TEST_FILES = test.erl.indented
|
||||
|
||||
# ----------------------------------------------------
|
||||
# Targets
|
||||
@@ -0,0 +1,70 @@
|
||||
From 439fa2eae78a8900bda120072335be19d626498c Mon Sep 17 00:00:00 2001
|
||||
From: "Yann E. MORIN" <yann.morin.1998@free.fr>
|
||||
Date: Sun, 28 Dec 2014 23:39:40 +0100
|
||||
Subject: [PATCH] erts/ethread: instruct libatomic_ops we do require CAS
|
||||
|
||||
We do require compare-and-swap (CAS), so we must instruct libatomic_ops
|
||||
to provide it, even if the architecture does not have instructions for
|
||||
it.
|
||||
|
||||
For example, on ARM, LDREX is required for fast CAS. But LDREX is only
|
||||
available on ARMv6, so by default libatomic_ops will not have CAS for
|
||||
anything below, like ARMv5. But ARMv5 is always UP, so using an
|
||||
emulated CAS (that is signal-asyn-safe) is still possible (albeit much
|
||||
slower).
|
||||
|
||||
Tell libatomic_ops to provide CAS, even if the hardware is not capable
|
||||
of it, by using emulated CAS, as per libatomic_ops dosc:
|
||||
https://github.com/ivmai/libatomic_ops/blob/master/doc/README.txt#L28
|
||||
|
||||
If this is included after defining AO_REQUIRE_CAS, then the package
|
||||
will make an attempt to emulate compare-and-swap in a way that (at
|
||||
least on Linux) should still be async-signal-safe.
|
||||
|
||||
Thanks go to Thomas for all this insight! :-)
|
||||
Thanks go to Frank for reporting the issue! :-)
|
||||
|
||||
Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
|
||||
Cc: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
|
||||
Cc: Frank Hunleth <fhunleth@troodon-software.com>
|
||||
---
|
||||
erts/include/internal/libatomic_ops/ethread.h | 1 +
|
||||
1 file changed, 1 insertion(+)
|
||||
|
||||
diff --git a/erts/include/internal/libatomic_ops/ethread.h b/erts/include/internal/libatomic_ops/ethread.h
|
||||
index d65ee19..71d3598 100644
|
||||
--- a/erts/include/internal/libatomic_ops/ethread.h
|
||||
+++ b/erts/include/internal/libatomic_ops/ethread.h
|
||||
@@ -35,6 +35,7 @@
|
||||
|
||||
#define ETHR_NATIVE_IMPL__ "libatomic_ops"
|
||||
|
||||
+#define AO_REQUIRE_CAS
|
||||
#include "atomic_ops.h"
|
||||
#include "ethr_membar.h"
|
||||
#include "ethr_atomic.h"
|
||||
diff --git a/erts/aclocal.m4 b/erts/aclocal.m4
|
||||
index d65ee19..71d3598 100644
|
||||
--- a/erts/aclocal.m4
|
||||
+++ b/erts/aclocal.m4
|
||||
@@ -1414,7 +1414,8 @@
|
||||
fi;;
|
||||
esac
|
||||
ethr_have_libatomic_ops=no
|
||||
- AC_TRY_LINK([#include "atomic_ops.h"],
|
||||
+ AC_TRY_LINK([#define AO_REQUIRE_CAS
|
||||
+ #include "atomic_ops.h"],
|
||||
[
|
||||
volatile AO_t x;
|
||||
AO_t y;
|
||||
@@ -1455,6 +1455,7 @@
|
||||
AC_CHECK_SIZEOF(AO_t, ,
|
||||
[
|
||||
#include <stdio.h>
|
||||
+ #define AO_REQUIRE_CAS
|
||||
#include "atomic_ops.h"
|
||||
])
|
||||
AC_DEFINE_UNQUOTED(ETHR_SIZEOF_AO_T, $ac_cv_sizeof_AO_t, [Define to the size of AO_t if libatomic_ops is used])
|
||||
--
|
||||
1.9.1
|
||||
|
||||
@@ -0,0 +1,43 @@
|
||||
From 85a3e5b4f65e5284e59dcdd90e92ea7d50ef6907 Mon Sep 17 00:00:00 2001
|
||||
From: Romain Naour <romain.naour@openwide.fr>
|
||||
Date: Sun, 8 Feb 2015 17:23:13 +0100
|
||||
Subject: [PATCH] erts/emulator: reorder inclued headers paths
|
||||
|
||||
If the Perl Compatible Regular Expressions is installed on the
|
||||
host and the path to the headers is added to the CFLAGS, the
|
||||
pcre.h from the host is used instead of the one provided by
|
||||
erlang.
|
||||
|
||||
Erlang use an old version of this file which is incompatible
|
||||
with the upstream one.
|
||||
|
||||
Move INCLUDES before CFLAGS to use pcre.h from erlang.
|
||||
|
||||
http://autobuild.buildroot.net/results/cbd/cbd8b54eef535f19d7d400fd269af1b3571d6143/build-end.log
|
||||
|
||||
Signed-off-by: Romain Naour <romain.naour@openwide.fr>
|
||||
---
|
||||
erts/emulator/Makefile.in | 4 ++--
|
||||
1 file changed, 2 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/erts/emulator/Makefile.in b/erts/emulator/Makefile.in
|
||||
index 7145824..d079487 100644
|
||||
--- a/erts/emulator/Makefile.in
|
||||
+++ b/erts/emulator/Makefile.in
|
||||
@@ -678,11 +678,11 @@ else
|
||||
# Usually the same as the default rule, but certain platforms (e.g. win32) mix
|
||||
# different compilers
|
||||
$(OBJDIR)/beam_emu.o: beam/beam_emu.c
|
||||
- $(V_EMU_CC) $(subst -O2, $(GEN_OPT_FLGS), $(CFLAGS)) $(INCLUDES) -c $< -o $@
|
||||
+ $(V_EMU_CC) $(INCLUDES) $(subst -O2, $(GEN_OPT_FLGS), $(CFLAGS)) -c $< -o $@
|
||||
endif
|
||||
|
||||
$(OBJDIR)/%.o: beam/%.c
|
||||
- $(V_CC) $(subst -O2, $(GEN_OPT_FLGS), $(CFLAGS)) $(INCLUDES) -c $< -o $@
|
||||
+ $(V_CC) $(INCLUDES) $(subst -O2, $(GEN_OPT_FLGS), $(CFLAGS)) -c $< -o $@
|
||||
|
||||
$(OBJDIR)/%.o: $(TARGET)/%.c
|
||||
$(V_CC) $(CFLAGS) $(INCLUDES) -Idrivers/common -c $< -o $@
|
||||
--
|
||||
1.9.3
|
||||
|
||||
46
bsp/buildroot-2017.02.11/package/erlang/Config.in
Normal file
46
bsp/buildroot-2017.02.11/package/erlang/Config.in
Normal file
@@ -0,0 +1,46 @@
|
||||
config BR2_PACKAGE_ERLANG_ARCH_SUPPORTS
|
||||
bool
|
||||
# see HOWTO/INSTALL.md for Erlang's supported platforms
|
||||
# when using its native atomic ops implementation
|
||||
default y if BR2_i386 || BR2_x86_64 || BR2_powerpc || \
|
||||
BR2_sparc_v9 || BR2_arm || BR2_aarch64 || BR2_mipsel
|
||||
|
||||
comment "erlang needs a toolchain w/ dynamic library"
|
||||
depends on BR2_USE_MMU # fork()
|
||||
depends on BR2_PACKAGE_ERLANG_ARCH_SUPPORTS
|
||||
depends on BR2_STATIC_LIBS
|
||||
|
||||
config BR2_PACKAGE_ERLANG
|
||||
bool "erlang"
|
||||
depends on BR2_USE_MMU # fork()
|
||||
depends on !BR2_STATIC_LIBS
|
||||
depends on BR2_PACKAGE_ERLANG_ARCH_SUPPORTS
|
||||
help
|
||||
Erlang is a programming language used to build massively scalable
|
||||
soft real-time systems with requirements on high availability.
|
||||
Some of its uses are in telecoms, banking, e-commerce, computer
|
||||
telephony and instant messaging. Erlang's runtime system has
|
||||
built-in support for concurrency, distribution and fault tolerance.
|
||||
|
||||
http://www.erlang.org
|
||||
|
||||
if BR2_PACKAGE_ERLANG
|
||||
|
||||
config BR2_PACKAGE_ERLANG_SMP
|
||||
bool "enable SMP support"
|
||||
help
|
||||
Erlang provides both a UP and an SMP emulator. The UP emulator
|
||||
is always built, and this option enables compilation of the SMP
|
||||
emulator. The choice of which emulator to use is made at runtime.
|
||||
If you do not need SMP support, turning this option off reduces
|
||||
compile time and the size of the Erlang installation.
|
||||
|
||||
config BR2_PACKAGE_ERLANG_MEGACO
|
||||
bool "install megaco application"
|
||||
help
|
||||
The Megaco application is a framework for building applications
|
||||
on top of the Megaco/H.248 protocol. It is approximately 14MB in
|
||||
size so if you do not need it then it is recommended not to
|
||||
enable it.
|
||||
|
||||
endif # BR2_PACKAGE_ERLANG
|
||||
3
bsp/buildroot-2017.02.11/package/erlang/erlang.hash
Normal file
3
bsp/buildroot-2017.02.11/package/erlang/erlang.hash
Normal file
@@ -0,0 +1,3 @@
|
||||
# md5 from http://www.erlang.org/download/MD5, sha256 locally computed
|
||||
md5 7e4ff32f97c36fb3dab736f8d481830b otp_src_18.3.tar.gz
|
||||
sha256 fdab8129a1cb935db09f1832e3a7d511a4aeb2b9bb3602ca6a7ccb9730d5c9c3 otp_src_18.3.tar.gz
|
||||
106
bsp/buildroot-2017.02.11/package/erlang/erlang.mk
vendored
Normal file
106
bsp/buildroot-2017.02.11/package/erlang/erlang.mk
vendored
Normal file
@@ -0,0 +1,106 @@
|
||||
################################################################################
|
||||
#
|
||||
# erlang
|
||||
#
|
||||
################################################################################
|
||||
|
||||
# See note below when updating Erlang
|
||||
ERLANG_VERSION = 18.3
|
||||
ERLANG_SITE = http://www.erlang.org/download
|
||||
ERLANG_SOURCE = otp_src_$(ERLANG_VERSION).tar.gz
|
||||
ERLANG_DEPENDENCIES = host-erlang
|
||||
|
||||
ERLANG_LICENSE = Apache-2.0
|
||||
ERLANG_LICENSE_FILES = LICENSE.txt
|
||||
ERLANG_INSTALL_STAGING = YES
|
||||
|
||||
# Patched erts/aclocal.m4
|
||||
ERLANG_AUTORECONF = YES
|
||||
|
||||
# Whenever updating Erlang, this value should be updated as well, to the
|
||||
# value of EI_VSN in the file lib/erl_interface/vsn.mk
|
||||
ERLANG_EI_VSN = 3.8.2
|
||||
|
||||
# The configure checks for these functions fail incorrectly
|
||||
ERLANG_CONF_ENV = ac_cv_func_isnan=yes ac_cv_func_isinf=yes
|
||||
|
||||
# Set erl_xcomp variables. See xcomp/erl-xcomp.conf.template
|
||||
# for documentation.
|
||||
ERLANG_CONF_ENV += erl_xcomp_sysroot=$(STAGING_DIR)
|
||||
|
||||
ERLANG_CONF_OPTS = --without-javac
|
||||
|
||||
# Force ERL_TOP to the downloaded source directory. This prevents
|
||||
# Erlang's configure script from inadvertantly using files from
|
||||
# a version of Erlang installed on the host.
|
||||
ERLANG_CONF_ENV += ERL_TOP=$(@D)
|
||||
HOST_ERLANG_CONF_ENV += ERL_TOP=$(@D)
|
||||
|
||||
# erlang uses openssl for all things crypto. Since the host tools (such as
|
||||
# rebar) uses crypto, we need to build host-erlang with support for openssl.
|
||||
HOST_ERLANG_DEPENDENCIES = host-openssl
|
||||
HOST_ERLANG_CONF_OPTS = --without-javac --with-ssl=$(HOST_DIR)/usr
|
||||
|
||||
HOST_ERLANG_CONF_OPTS += --without-termcap
|
||||
|
||||
ifeq ($(BR2_TOOLCHAIN_HAS_THREADS),)
|
||||
ERLANG_CONF_OPTS += --disable-threads
|
||||
endif
|
||||
|
||||
ifeq ($(BR2_PACKAGE_NCURSES),y)
|
||||
ERLANG_CONF_OPTS += --with-termcap
|
||||
ERLANG_DEPENDENCIES += ncurses
|
||||
else
|
||||
ERLANG_CONF_OPTS += --without-termcap
|
||||
endif
|
||||
|
||||
ifeq ($(BR2_PACKAGE_OPENSSL),y)
|
||||
ERLANG_CONF_OPTS += --with-ssl
|
||||
ERLANG_DEPENDENCIES += openssl
|
||||
else
|
||||
ERLANG_CONF_OPTS += --without-ssl
|
||||
endif
|
||||
|
||||
# ODBC support in erlang requires threads
|
||||
ifeq ($(BR2_PACKAGE_UNIXODBC)$(BR2_TOOLCHAIN_HAS_THREADS),yy)
|
||||
ERLANG_DEPENDENCIES += unixodbc
|
||||
ERLANG_CONF_OPTS += --with-odbc
|
||||
else
|
||||
ERLANG_CONF_OPTS += --without-odbc
|
||||
endif
|
||||
|
||||
ifeq ($(BR2_PACKAGE_ZLIB),y)
|
||||
ERLANG_CONF_OPTS += --enable-shared-zlib
|
||||
ERLANG_DEPENDENCIES += zlib
|
||||
endif
|
||||
|
||||
ifeq ($(BR2_PACKAGE_ERLANG_SMP),)
|
||||
ERLANG_CONF_OPTS += --disable-smp-support
|
||||
endif
|
||||
|
||||
# Remove source, example, gs and wx files from staging and target.
|
||||
ERLANG_REMOVE_PACKAGES = gs wx
|
||||
|
||||
ifneq ($(BR2_PACKAGE_ERLANG_MEGACO),y)
|
||||
ERLANG_REMOVE_PACKAGES += megaco
|
||||
endif
|
||||
|
||||
define ERLANG_REMOVE_STAGING_UNUSED
|
||||
for package in $(ERLANG_REMOVE_PACKAGES); do \
|
||||
rm -rf $(STAGING_DIR)/usr/lib/erlang/lib/$${package}-*; \
|
||||
done
|
||||
endef
|
||||
|
||||
define ERLANG_REMOVE_TARGET_UNUSED
|
||||
find $(TARGET_DIR)/usr/lib/erlang -type d -name src -prune -exec rm -rf {} \;
|
||||
find $(TARGET_DIR)/usr/lib/erlang -type d -name examples -prune -exec rm -rf {} \;
|
||||
for package in $(ERLANG_REMOVE_PACKAGES); do \
|
||||
rm -rf $(TARGET_DIR)/usr/lib/erlang/lib/$${package}-*; \
|
||||
done
|
||||
endef
|
||||
|
||||
ERLANG_POST_INSTALL_STAGING_HOOKS += ERLANG_REMOVE_STAGING_UNUSED
|
||||
ERLANG_POST_INSTALL_TARGET_HOOKS += ERLANG_REMOVE_TARGET_UNUSED
|
||||
|
||||
$(eval $(autotools-package))
|
||||
$(eval $(host-autotools-package))
|
||||
Reference in New Issue
Block a user