initial buildroot for linux 5.15

This commit is contained in:
Huan.Feng
2021-12-06 14:12:13 +08:00
parent d7767d594e
commit 7b6fc358fa
12736 changed files with 508822 additions and 0 deletions
@@ -0,0 +1,42 @@
From 54d8fe7ae40902d6d38e670f4024092f53c14e1f Mon Sep 17 00:00:00 2001
From: Samuel Martin <s.martin49@gmail.com>
Date: Sat, 8 Mar 2014 13:19:14 +0100
Subject: [PATCH] Only blacklist ARM gcc 4.8.0 and 4.8.1
Since many ARM toolchain providers include the bug fix for PR58854 in
their latest releases based on gcc-4.8.2, then only blacklist gcc 4.8.0
and 4.8.1.
Signed-off-by: Samuel Martin <s.martin49@gmail.com>
[Fabrice: update for 0.13.0]
Signed-off-by: Fabrice Fontaine <fontaine.fabrice@gmail.com>
---
urcu/compiler.h | 9 ++++++++-
1 file changed, 8 insertions(+), 1 deletion(-)
diff --git a/include/urcu/arch/arm.h b/include/urcu/arch/arm.h
index 1e30903..56115f1 100644
--- a/include/urcu/arch/arm.h
+++ b/include/urcu/arch/arm.h
@@ -118,10 +118,17 @@
*/
/*
+ * Official gcc releases from 4.8.0 to 4.8.2 have the following bug,
+ * however, many arm toolchain providers have the included the fix for
+ * their latest 4.8.2 releases.
+ * So, we only blacklist gcc 4.8.0 and 4.8.1.
+ * Unfortunately, this bug is not easy to test, so we rely on the
+ * knowledge of the user on its compiler.
+ *
* http://gcc.gnu.org/bugzilla/show_bug.cgi?id=58854
*/
#ifdef URCU_GCC_VERSION
-# if URCU_GCC_VERSION >= 40800 && URCU_GCC_VERSION <= 40802
+# if URCU_GCC_VERSION >= 40800 && URCU_GCC_VERSION <= 40801
# error Your gcc version produces clobbered frame accesses
# endif
#endif
--
1.9.0
@@ -0,0 +1,41 @@
From e915ab84fd0c02d37504f3eb1e1f3be93ea6dc37 Mon Sep 17 00:00:00 2001
From: Michael Jeanson <mjeanson@efficios.com>
Date: Thu, 9 Sep 2021 12:11:16 -0400
Subject: [PATCH] fix: don't use C++ thread_local on MacOs
Recent versions of Apple's clang++ do support 'thread_local' but the
implementation generates additional helper symbols. This is a problem
when accessing an extern TLS variable in a C++ compile unit that is
provided by a C library that doesn't have those extra symbols.
Fallback to using '__thread' on MacOs.
Change-Id: I87cb5b3c9293f7bf66f7115f453b546dd793a449
Signed-off-by: Michael Jeanson <mjeanson@efficios.com>
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
[Retrieved from:
https://github.com/urcu/userspace-rcu/commit/e915ab84fd0c02d37504f3eb1e1f3be93ea6dc37]
Signed-off-by: Fabrice Fontaine <fontaine.fabrice@gmail.com>
---
include/urcu/tls-compat.h | 7 ++++++-
1 file changed, 6 insertions(+), 1 deletion(-)
diff --git a/include/urcu/tls-compat.h b/include/urcu/tls-compat.h
index 24ef1b9a..25cf375a 100644
--- a/include/urcu/tls-compat.h
+++ b/include/urcu/tls-compat.h
@@ -34,7 +34,12 @@ extern "C" {
#ifdef CONFIG_RCU_TLS
-#if defined (__cplusplus) && (__cplusplus >= 201103L)
+/*
+ * Don't use C++ 'thread_local' on MacOs, the implementation is incompatible
+ * with C and will result in a link error when accessing an extern variable
+ * provided by the C library from C++ code.
+ */
+#if defined (__cplusplus) && (__cplusplus >= 201103L) && !defined(__APPLE__)
# define URCU_TLS_STORAGE_CLASS thread_local
#elif defined (__STDC_VERSION__) && (__STDC_VERSION__ >= 201112L)
# define URCU_TLS_STORAGE_CLASS _Thread_local
@@ -0,0 +1,53 @@
From 2e359284497c361e3208501fc70d49b2c54dc4ef Mon Sep 17 00:00:00 2001
From: Michael Jeanson <mjeanson@efficios.com>
Date: Tue, 14 Sep 2021 10:41:08 -0400
Subject: [PATCH] Always use '__thread' for Thread local storage except on MSVC
Use the GCC extension '__thread' [1] for Thread local storage on all C
and C++ compilers except MSVC.
While C11 and C++11 respectively offer '_Thread_local' and
'thread_local' as potentialy faster implementations, they offer no
guarantees of compatibility when used in a library interface which might
be used by both C and C++ client code.
[1] https://gcc.gnu.org/onlinedocs/gcc/Thread-Local.html
Change-Id: If4fe8bcdbda24b21dedf382112bd5c5f836c00c8
Signed-off-by: Michael Jeanson <mjeanson@efficios.com>
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
[Retrieved from:
https://github.com/urcu/userspace-rcu/commit/2e359284497c361e3208501fc70d49b2c54dc4ef]
Signed-off-by: Fabrice Fontaine <fontaine.fabrice@gmail.com>
---
include/urcu/tls-compat.h | 15 +++++++--------
1 file changed, 7 insertions(+), 8 deletions(-)
diff --git a/include/urcu/tls-compat.h b/include/urcu/tls-compat.h
index 25cf375a..a2c94ded 100644
--- a/include/urcu/tls-compat.h
+++ b/include/urcu/tls-compat.h
@@ -35,15 +35,14 @@ extern "C" {
#ifdef CONFIG_RCU_TLS
/*
- * Don't use C++ 'thread_local' on MacOs, the implementation is incompatible
- * with C and will result in a link error when accessing an extern variable
- * provided by the C library from C++ code.
+ * Default to '__thread' on all C and C++ compilers except MSVC. While C11 has
+ * '_Thread_local' and C++11 has 'thread_local', only '__thread' seems to have
+ * a compatible implementation when linking public extern symbols across
+ * language boundaries.
+ *
+ * For more details, see 'https://gcc.gnu.org/onlinedocs/gcc/Thread-Local.html'.
*/
-#if defined (__cplusplus) && (__cplusplus >= 201103L) && !defined(__APPLE__)
-# define URCU_TLS_STORAGE_CLASS thread_local
-#elif defined (__STDC_VERSION__) && (__STDC_VERSION__ >= 201112L)
-# define URCU_TLS_STORAGE_CLASS _Thread_local
-#elif defined (_MSC_VER)
+#if defined(_MSC_VER)
# define URCU_TLS_STORAGE_CLASS __declspec(thread)
#else
# define URCU_TLS_STORAGE_CLASS __thread
+30
View File
@@ -0,0 +1,30 @@
config BR2_PACKAGE_LIBURCU_ARCH_SUPPORTS
bool
default y
depends on BR2_arm || BR2_armeb || BR2_aarch64 || BR2_aarch64_be || \
BR2_i386 || BR2_mips || BR2_mips64 || BR2_mipsel || \
BR2_mips64el || BR2_nios2 || BR2_powerpc || BR2_powerpc64 || \
BR2_powerpc64le || BR2_riscv || BR2_sparc64 || BR2_s390x || BR2_x86_64
depends on BR2_USE_MMU # fork() in test
config BR2_PACKAGE_LIBURCU
bool "liburcu"
depends on BR2_PACKAGE_LIBURCU_ARCH_SUPPORTS
depends on BR2_TOOLCHAIN_HAS_THREADS
help
Userspace implementation of the Read-Copy-Update (RCU)
synchronization mechanism. This library is mainly used by
the LTTng tracing infrastructure, but can be used for other
purposes as well.
On ARM, because of bug:
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=58854
liburcu cannot be built using gcc 4.8.0, 4.8.1 or 4.8.2
without the following bug fix:
http://gcc.gnu.org/viewcvs/gcc?view=revision&revision=204665
http://lttng.org/urcu
comment "liburcu needs a toolchain w/ threads"
depends on BR2_PACKAGE_LIBURCU_ARCH_SUPPORTS
depends on !BR2_TOOLCHAIN_HAS_THREADS
+8
View File
@@ -0,0 +1,8 @@
# http://www.lttng.org/files/urcu/userspace-rcu-0.13.0.tar.bz2.sha256
sha256 cbb20dbe1a892c2a4d8898bac4316176e585392693d498766ccbbc68cf20ba20 userspace-rcu-0.13.0.tar.bz2
# Hash for license files
sha256 36b6d3fa47916943fd5fec313c584784946047ec1337a78b440e5992cb595f89 lgpl-2.1.txt
sha256 8ef8121eddd2fc0779d94331a1d0f1ead9c796343d845e564cd8c8c4ae3d6f6e lgpl-relicensing.txt
sha256 ab15fd526bd8dd18a9e77ebc139656bf4d33e97fc7238cd11bf60e2b9b8666c6 gpl-2.0.txt
sha256 e8c070cb093be4b2eaf938a5f1c11621163b2d9cfa2790460cf925d81e442fa7 LICENSE
+19
View File
@@ -0,0 +1,19 @@
################################################################################
#
# liburcu
#
################################################################################
LIBURCU_VERSION = 0.13.0
LIBURCU_SITE = http://lttng.org/files/urcu
LIBURCU_SOURCE = userspace-rcu-$(LIBURCU_VERSION).tar.bz2
LIBURCU_LICENSE = LGPL-2.1+ (library), MIT-like (few source files listed in LICENSE), GPL-2.0+ (test), GPL-3.0 (few *.m4 files)
LIBURCU_LICENSE_FILES = lgpl-2.1.txt lgpl-relicensing.txt gpl-2.0.txt LICENSE
LIBURCU_INSTALL_STAGING = YES
# ac_cv_prog_cc_c99 is required for BR2_USE_WCHAR=n because the C99 test
# provided by autoconf relies on wchar_t.
LIBURCU_CONF_ENV = ac_cv_prog_cc_c99=-std=gnu99
$(eval $(autotools-package))