mirror of
https://github.com/MiyooCFW/buildroot.git
synced 2025-09-27 22:24:19 +03:00
Merge from bittboy/buildroot@db180c0
This commit is contained in:
@@ -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,46 @@
|
||||
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>
|
||||
[Bernd: rebased for erlang-21.0]
|
||||
Signed-off-by: Bernd Kuhls <bernd.kuhls@t-online.de>
|
||||
---
|
||||
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
|
||||
@@ -712,7 +712,7 @@
|
||||
# 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 $@
|
||||
|
||||
$(OBJDIR)/beam_emu.S: beam/beam_emu.c
|
||||
$(V_EMU_CC) -S -fverbose-asm $(subst -O2, $(GEN_OPT_FLGS), $(CFLAGS)) $(INCLUDES) -c $< -o $@
|
||||
@@ -765,7 +765,7 @@
|
||||
# General targets
|
||||
#
|
||||
$(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 $@
|
||||
@@ -0,0 +1,42 @@
|
||||
From 011752ec7b31e3dde376270fc65c7ee70644f6e7 Mon Sep 17 00:00:00 2001
|
||||
From: Johan Oudinet <johan.oudinet@gmail.com>
|
||||
Date: Wed, 6 Dec 2017 15:01:17 +0100
|
||||
Subject: [PATCH] Link with LDLIBS instead of LIBS for DED
|
||||
|
||||
Fix ERL-529 by avoiding to link with libz for no reason.
|
||||
|
||||
Signed-off-by: Johan Oudinet <johan.oudinet@gmail.com>
|
||||
---
|
||||
lib/asn1/c_src/Makefile | 2 +-
|
||||
lib/runtime_tools/c_src/Makefile.in | 2 +-
|
||||
2 files changed, 2 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/lib/asn1/c_src/Makefile b/lib/asn1/c_src/Makefile
|
||||
index 1f714df357..f7c6b8b9bc 100644
|
||||
--- a/lib/asn1/c_src/Makefile
|
||||
+++ b/lib/asn1/c_src/Makefile
|
||||
@@ -126,7 +126,7 @@ $(NIF_LIB_FILE): $(NIF_STATIC_OBJ_FILES)
|
||||
$(V_RANLIB) $@
|
||||
|
||||
$(NIF_SHARED_OBJ_FILE): $(NIF_OBJ_FILES)
|
||||
- $(V_LD) $(LDFLAGS) -o $(NIF_SHARED_OBJ_FILE) $(NIF_OBJ_FILES) $(CLIB_FLAGS) $(LIBS)
|
||||
+ $(V_LD) $(LDFLAGS) -o $(NIF_SHARED_OBJ_FILE) $(NIF_OBJ_FILES) $(CLIB_FLAGS) $(LDLIBS)
|
||||
|
||||
# ----------------------------------------------------
|
||||
# Release Target
|
||||
diff --git a/lib/runtime_tools/c_src/Makefile.in b/lib/runtime_tools/c_src/Makefile.in
|
||||
index 4530a83aee..4e13e0d789 100644
|
||||
--- a/lib/runtime_tools/c_src/Makefile.in
|
||||
+++ b/lib/runtime_tools/c_src/Makefile.in
|
||||
@@ -95,7 +95,7 @@ $(OBJDIR)/%$(TYPEMARKER).o: %.c dyntrace_lttng.h
|
||||
$(V_CC) -c -o $@ $(ALL_CFLAGS) $<
|
||||
|
||||
$(LIBDIR)/%$(TYPEMARKER).@DED_EXT@: $(OBJDIR)/%$(TYPEMARKER).o
|
||||
- $(V_LD) $(LDFLAGS) -o $@ $^ $(LIBS)
|
||||
+ $(V_LD) $(LDFLAGS) -o $@ $^ $(LDLIBS)
|
||||
|
||||
clean:
|
||||
rm -f $(TRACE_LIBS)
|
||||
--
|
||||
2.14.1
|
||||
|
||||
47
package/erlang/Config.in
Normal file
47
package/erlang/Config.in
Normal file
@@ -0,0 +1,47 @@
|
||||
config BR2_PACKAGE_HOST_ERLANG_ARCH_SUPPORTS
|
||||
bool
|
||||
default y if BR2_HOSTARCH = "x86_64"
|
||||
default y if BR2_HOSTARCH = "x86"
|
||||
|
||||
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
|
||||
# erlang needs host-erlang
|
||||
depends on BR2_PACKAGE_HOST_ERLANG_ARCH_SUPPORTS
|
||||
|
||||
comment "erlang needs a toolchain w/ dynamic library, threads"
|
||||
depends on BR2_USE_MMU # fork()
|
||||
depends on BR2_PACKAGE_ERLANG_ARCH_SUPPORTS
|
||||
depends on BR2_STATIC_LIBS || !BR2_TOOLCHAIN_HAS_THREADS
|
||||
|
||||
config BR2_PACKAGE_ERLANG
|
||||
bool "erlang"
|
||||
depends on BR2_USE_MMU # fork()
|
||||
depends on !BR2_STATIC_LIBS
|
||||
depends on BR2_TOOLCHAIN_HAS_THREADS
|
||||
depends on BR2_PACKAGE_ERLANG_ARCH_SUPPORTS
|
||||
select BR2_PACKAGE_ZLIB
|
||||
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_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
|
||||
4
package/erlang/erlang.hash
Normal file
4
package/erlang/erlang.hash
Normal file
@@ -0,0 +1,4 @@
|
||||
# md5 from http://www.erlang.org/download/MD5, sha256 locally computed
|
||||
md5 350988f024f88e9839c3715b35e7e27a otp_src_21.0.tar.gz
|
||||
sha256 c7d247c0cad2d2e718eaca2e2dff051136a1347a92097abf19ebf65ea2870131 otp_src_21.0.tar.gz
|
||||
sha256 809fa1ed21450f59827d1e9aec720bbc4b687434fa22283c6cb5dd82a47ab9c0 LICENSE.txt
|
||||
96
package/erlang/erlang.mk
vendored
Normal file
96
package/erlang/erlang.mk
vendored
Normal file
@@ -0,0 +1,96 @@
|
||||
################################################################################
|
||||
#
|
||||
# erlang
|
||||
#
|
||||
################################################################################
|
||||
|
||||
# See note below when updating Erlang
|
||||
ERLANG_VERSION = 21.0
|
||||
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.10.3
|
||||
|
||||
# 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)
|
||||
|
||||
HOST_ERLANG_CONF_OPTS += --without-termcap
|
||||
|
||||
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
|
||||
|
||||
ifeq ($(BR2_PACKAGE_UNIXODBC),y)
|
||||
ERLANG_DEPENDENCIES += unixodbc
|
||||
ERLANG_CONF_OPTS += --with-odbc
|
||||
else
|
||||
ERLANG_CONF_OPTS += --without-odbc
|
||||
endif
|
||||
|
||||
# Always use Buildroot's zlib
|
||||
ERLANG_CONF_OPTS += --enable-shared-zlib
|
||||
ERLANG_DEPENDENCIES += zlib
|
||||
|
||||
# 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