summaryrefslogtreecommitdiffstats
path: root/yocto-poky/meta/recipes-support/liburcu/liburcu
diff options
context:
space:
mode:
Diffstat (limited to 'yocto-poky/meta/recipes-support/liburcu/liburcu')
-rw-r--r--yocto-poky/meta/recipes-support/liburcu/liburcu/0001-Support-for-NIOS2-architecture.patch144
-rw-r--r--yocto-poky/meta/recipes-support/liburcu/liburcu/0001-uatomic-Specify-complete-types-for-atomic-function-c.patch158
-rw-r--r--yocto-poky/meta/recipes-support/liburcu/liburcu/0002-Support-for-aarch64_be.patch19
-rw-r--r--yocto-poky/meta/recipes-support/liburcu/liburcu/Revert-Blacklist-ARM-gcc-4.8.0-4.8.1-4.8.2.patch47
-rw-r--r--yocto-poky/meta/recipes-support/liburcu/liburcu/aarch64.patch19
5 files changed, 163 insertions, 224 deletions
diff --git a/yocto-poky/meta/recipes-support/liburcu/liburcu/0001-Support-for-NIOS2-architecture.patch b/yocto-poky/meta/recipes-support/liburcu/liburcu/0001-Support-for-NIOS2-architecture.patch
new file mode 100644
index 000000000..690872b4a
--- /dev/null
+++ b/yocto-poky/meta/recipes-support/liburcu/liburcu/0001-Support-for-NIOS2-architecture.patch
@@ -0,0 +1,144 @@
+From add566b913e1b5cd4974a2167157dc08d8245ab0 Mon Sep 17 00:00:00 2001
+From: Marek Vasut <marex@denx.de>
+Date: Tue, 9 Feb 2016 01:52:26 +0100
+Subject: [PATCH] Support for NIOS2 architecture
+
+Add support for the Altera NIOS2 CPU archirecture. The atomic operations
+are handled by the GCC. The memory barriers on this systems are entirely
+trivial too, since the CPU does not support SMP at all.
+
+Signed-off-by: Marek Vasut <marex@denx.de>
+Upstream-Status: Backport [ http://git.lttng.org/?p=userspace-rcu.git;a=commit;h=859050b3088aa3f0cb59d7f51ce24b9a0f18faa5 ]
+---
+ LICENSE | 1 +
+ README.md | 1 +
+ configure.ac | 1 +
+ urcu/arch/nios2.h | 40 ++++++++++++++++++++++++++++++++++++++++
+ urcu/uatomic/nios2.h | 32 ++++++++++++++++++++++++++++++++
+ 5 files changed, 75 insertions(+)
+ create mode 100644 urcu/arch/nios2.h
+ create mode 100644 urcu/uatomic/nios2.h
+
+diff --git a/LICENSE b/LICENSE
+index 3147094..a06fdcc 100644
+--- a/LICENSE
++++ b/LICENSE
+@@ -45,6 +45,7 @@ compiler.h
+ arch/s390.h
+ uatomic/alpha.h
+ uatomic/mips.h
++uatomic/nios2.h
+ uatomic/s390.h
+ system.h
+
+diff --git a/README.md b/README.md
+index f6b290f..6fe9c1e 100644
+--- a/README.md
++++ b/README.md
+@@ -43,6 +43,7 @@ Currently, the following architectures are supported:
+ - S390, S390x
+ - ARM 32/64
+ - MIPS
++ - NIOS2
+ - Alpha
+ - ia64
+ - Sparcv9 32/64
+diff --git a/configure.ac b/configure.ac
+index 39a7777..71a7d71 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -124,6 +124,7 @@ AS_CASE([$host_cpu],
+ [arm*], [ARCHTYPE="arm"],
+ [aarch64], [ARCHTYPE="aarch64"],
+ [mips*], [ARCHTYPE="mips"],
++ [nios2*], [ARCHTYPE="nios2"],
+ [tile*], [ARCHTYPE="tile"],
+ [hppa*], [ARCHTYPE="hppa"],
+ [ARCHTYPE="unknown"]
+diff --git a/urcu/arch/nios2.h b/urcu/arch/nios2.h
+new file mode 100644
+index 0000000..030d1bc
+--- /dev/null
++++ b/urcu/arch/nios2.h
+@@ -0,0 +1,40 @@
++#ifndef _URCU_ARCH_NIOS2_H
++#define _URCU_ARCH_NIOS2_H
++
++/*
++ * arch_nios2.h: trivial definitions for the NIOS2 architecture.
++ *
++ * Copyright (c) 2016 Marek Vasut <marex@denx.de>
++ *
++ * This library is free software; you can redistribute it and/or
++ * modify it under the terms of the GNU Lesser General Public
++ * License as published by the Free Software Foundation; either
++ * version 2.1 of the License, or (at your option) any later version.
++ *
++ * This library is distributed in the hope that it will be useful,
++ * but WITHOUT ANY WARRANTY; without even the implied warranty of
++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
++ * Lesser General Public License for more details.
++ *
++ * You should have received a copy of the GNU Lesser General Public
++ * License along with this library; if not, write to the Free Software
++ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
++ */
++
++#include <urcu/compiler.h>
++#include <urcu/config.h>
++#include <urcu/syscall-compat.h>
++
++#ifdef __cplusplus
++extern "C" {
++#endif
++
++#define cmm_mb() cmm_barrier()
++
++#ifdef __cplusplus
++}
++#endif
++
++#include <urcu/arch/generic.h>
++
++#endif /* _URCU_ARCH_NIOS2_H */
+diff --git a/urcu/uatomic/nios2.h b/urcu/uatomic/nios2.h
+new file mode 100644
+index 0000000..5b3c303
+--- /dev/null
++++ b/urcu/uatomic/nios2.h
+@@ -0,0 +1,32 @@
++#ifndef _URCU_UATOMIC_ARCH_NIOS2_H
++#define _URCU_UATOMIC_ARCH_NIOS2_H
++
++/*
++ * Atomic exchange operations for the NIOS2 architecture. Let GCC do it.
++ *
++ * Copyright (c) 2016 Marek Vasut <marex@denx.de>
++ *
++ * Permission is hereby granted, free of charge, to any person obtaining a copy
++ * of this software and associated documentation files (the "Software"), to
++ * deal in the Software without restriction, including without limitation the
++ * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
++ * sell copies of the Software, and to permit persons to whom the Software is
++ * furnished to do so, subject to the following conditions:
++ *
++ * The above copyright notice and this permission notice shall be included in
++ * all copies or substantial portions of the Software.
++ *
++ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
++ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
++ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
++ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
++ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
++ * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
++ * IN THE SOFTWARE.
++ */
++
++#include <urcu/compiler.h>
++#include <urcu/system.h>
++#include <urcu/uatomic/generic.h>
++
++#endif /* _URCU_UATOMIC_ARCH_NIOS2_H */
+--
+2.7.0
+
diff --git a/yocto-poky/meta/recipes-support/liburcu/liburcu/0001-uatomic-Specify-complete-types-for-atomic-function-c.patch b/yocto-poky/meta/recipes-support/liburcu/liburcu/0001-uatomic-Specify-complete-types-for-atomic-function-c.patch
deleted file mode 100644
index 5ad0bbd15..000000000
--- a/yocto-poky/meta/recipes-support/liburcu/liburcu/0001-uatomic-Specify-complete-types-for-atomic-function-c.patch
+++ /dev/null
@@ -1,158 +0,0 @@
-From 6af790818d074c103c4797f1ce764896f183e028 Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Sat, 22 Aug 2015 21:35:03 -0700
-Subject: [PATCH] uatomic: Specify complete types for atomic function calls
-
-This was unearthed by clang compiler where it complained about parameter
-mismatch, gcc doesnt notice this
-
-urcu/uatomic/generic.h:190:10: error: address argument to atomic builtin
-must be a pointer to integer or pointer ('void *' invalid)
- return __sync_add_and_fetch_4(addr, val);
-
-Fixed all instances thusly
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
-Upstream-Status: Submitted
-
- urcu/uatomic/generic.h | 40 ++++++++++++++++++++--------------------
- 1 file changed, 20 insertions(+), 20 deletions(-)
-
-diff --git a/urcu/uatomic/generic.h b/urcu/uatomic/generic.h
-index 37f59cc..0046ffd 100644
---- a/urcu/uatomic/generic.h
-+++ b/urcu/uatomic/generic.h
-@@ -65,17 +65,17 @@ unsigned long _uatomic_cmpxchg(void *addr, unsigned long old,
- switch (len) {
- #ifdef UATOMIC_HAS_ATOMIC_BYTE
- case 1:
-- return __sync_val_compare_and_swap_1(addr, old, _new);
-+ return __sync_val_compare_and_swap_1((unsigned char *)addr, old, _new);
- #endif
- #ifdef UATOMIC_HAS_ATOMIC_SHORT
- case 2:
-- return __sync_val_compare_and_swap_2(addr, old, _new);
-+ return __sync_val_compare_and_swap_2((unsigned short int *)addr, old, _new);
- #endif
- case 4:
-- return __sync_val_compare_and_swap_4(addr, old, _new);
-+ return __sync_val_compare_and_swap_4((unsigned int *)addr, old, _new);
- #if (CAA_BITS_PER_LONG == 64)
- case 8:
-- return __sync_val_compare_and_swap_8(addr, old, _new);
-+ return __sync_val_compare_and_swap_8((unsigned long *)addr, old, _new);
- #endif
- }
- _uatomic_link_error();
-@@ -100,20 +100,20 @@ void _uatomic_and(void *addr, unsigned long val,
- switch (len) {
- #ifdef UATOMIC_HAS_ATOMIC_BYTE
- case 1:
-- __sync_and_and_fetch_1(addr, val);
-+ __sync_and_and_fetch_1((unsigned char *)addr, val);
- return;
- #endif
- #ifdef UATOMIC_HAS_ATOMIC_SHORT
- case 2:
-- __sync_and_and_fetch_2(addr, val);
-+ __sync_and_and_fetch_2((unsigned short int *)addr, val);
- return;
- #endif
- case 4:
-- __sync_and_and_fetch_4(addr, val);
-+ __sync_and_and_fetch_4((unsigned int *)addr, val);
- return;
- #if (CAA_BITS_PER_LONG == 64)
- case 8:
-- __sync_and_and_fetch_8(addr, val);
-+ __sync_and_and_fetch_8((unsigned long *)addr, val);
- return;
- #endif
- }
-@@ -139,20 +139,20 @@ void _uatomic_or(void *addr, unsigned long val,
- switch (len) {
- #ifdef UATOMIC_HAS_ATOMIC_BYTE
- case 1:
-- __sync_or_and_fetch_1(addr, val);
-+ __sync_or_and_fetch_1((unsigned char *)addr, val);
- return;
- #endif
- #ifdef UATOMIC_HAS_ATOMIC_SHORT
- case 2:
-- __sync_or_and_fetch_2(addr, val);
-+ __sync_or_and_fetch_2((unsigned short int *)addr, val);
- return;
- #endif
- case 4:
-- __sync_or_and_fetch_4(addr, val);
-+ __sync_or_and_fetch_4((unsigned int *)addr, val);
- return;
- #if (CAA_BITS_PER_LONG == 64)
- case 8:
-- __sync_or_and_fetch_8(addr, val);
-+ __sync_or_and_fetch_8((unsigned long *)addr, val);
- return;
- #endif
- }
-@@ -180,17 +180,17 @@ unsigned long _uatomic_add_return(void *addr, unsigned long val,
- switch (len) {
- #ifdef UATOMIC_HAS_ATOMIC_BYTE
- case 1:
-- return __sync_add_and_fetch_1(addr, val);
-+ return __sync_add_and_fetch_1((unsigned char *)addr, val);
- #endif
- #ifdef UATOMIC_HAS_ATOMIC_SHORT
- case 2:
-- return __sync_add_and_fetch_2(addr, val);
-+ return __sync_add_and_fetch_2((unsigned short int *)addr, val);
- #endif
- case 4:
-- return __sync_add_and_fetch_4(addr, val);
-+ return __sync_add_and_fetch_4((unsigned int *)addr, val);
- #if (CAA_BITS_PER_LONG == 64)
- case 8:
-- return __sync_add_and_fetch_8(addr, val);
-+ return __sync_add_and_fetch_8((unsigned long *)addr, val);
- #endif
- }
- _uatomic_link_error();
-@@ -218,7 +218,7 @@ unsigned long _uatomic_exchange(void *addr, unsigned long val, int len)
-
- do {
- old = uatomic_read((unsigned char *)addr);
-- } while (!__sync_bool_compare_and_swap_1(addr, old, val));
-+ } while (!__sync_bool_compare_and_swap_1((unsigned char *)addr, old, val));
-
- return old;
- }
-@@ -230,7 +230,7 @@ unsigned long _uatomic_exchange(void *addr, unsigned long val, int len)
-
- do {
- old = uatomic_read((unsigned short *)addr);
-- } while (!__sync_bool_compare_and_swap_2(addr, old, val));
-+ } while (!__sync_bool_compare_and_swap_2((unsigned short int *)addr, old, val));
-
- return old;
- }
-@@ -241,7 +241,7 @@ unsigned long _uatomic_exchange(void *addr, unsigned long val, int len)
-
- do {
- old = uatomic_read((unsigned int *)addr);
-- } while (!__sync_bool_compare_and_swap_4(addr, old, val));
-+ } while (!__sync_bool_compare_and_swap_4((unsigned int *)addr, old, val));
-
- return old;
- }
-@@ -252,7 +252,7 @@ unsigned long _uatomic_exchange(void *addr, unsigned long val, int len)
-
- do {
- old = uatomic_read((unsigned long *)addr);
-- } while (!__sync_bool_compare_and_swap_8(addr, old, val));
-+ } while (!__sync_bool_compare_and_swap_8((unsigned long *)addr, old, val));
-
- return old;
- }
---
-2.1.4
-
diff --git a/yocto-poky/meta/recipes-support/liburcu/liburcu/0002-Support-for-aarch64_be.patch b/yocto-poky/meta/recipes-support/liburcu/liburcu/0002-Support-for-aarch64_be.patch
new file mode 100644
index 000000000..a10ccd7d8
--- /dev/null
+++ b/yocto-poky/meta/recipes-support/liburcu/liburcu/0002-Support-for-aarch64_be.patch
@@ -0,0 +1,19 @@
+liburcu: add support for aarch64_be
+
+Upstream-Status: Pending
+
+Signed-off-by: Tudor Florea <tudor.florea@enea.com>
+
+diff --git a/configure.ac b/configure.ac
+index 8ebfa8b..fe1c55d 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -121,7 +121,7 @@ AS_CASE([$host_cpu],
+ [alpha*], [ARCHTYPE="alpha"],
+ [ia64], [ARCHTYPE="ia64"],
+ [arm*], [ARCHTYPE="arm"],
+- [aarch64], [ARCHTYPE="aarch64"],
++ [aarch64*], [ARCHTYPE="aarch64"],
+ [mips*], [ARCHTYPE="mips"],
+ [nios2*], [ARCHTYPE="nios2"],
+ [tile*], [ARCHTYPE="tile"],
diff --git a/yocto-poky/meta/recipes-support/liburcu/liburcu/Revert-Blacklist-ARM-gcc-4.8.0-4.8.1-4.8.2.patch b/yocto-poky/meta/recipes-support/liburcu/liburcu/Revert-Blacklist-ARM-gcc-4.8.0-4.8.1-4.8.2.patch
deleted file mode 100644
index 535a7384c..000000000
--- a/yocto-poky/meta/recipes-support/liburcu/liburcu/Revert-Blacklist-ARM-gcc-4.8.0-4.8.1-4.8.2.patch
+++ /dev/null
@@ -1,47 +0,0 @@
-From 7b3df100346128d780f218b881d563d1fd12e310 Mon Sep 17 00:00:00 2001
-From: Jonathan Liu <net147@gmail.com>
-Date: Mon, 20 Oct 2014 13:46:10 +1100
-Subject: [PATCH] Revert "Blacklist ARM gcc 4.8.0, 4.8.1, 4.8.2"
-
-This reverts commit 4b79310aa3d408ba30fee02cc497a68072d38a99.
-OE-Core is using a patched GCC 4.8.2 which is able to compile liburcu
-properly.
-
-Upstream-Status: Inappropriate [OE specific]
-
-Signed-off-by: Jonathan Liu <net147@gmail.com>
----
- urcu/compiler.h | 19 -------------------
- 1 file changed, 19 deletions(-)
-
-diff --git a/urcu/compiler.h b/urcu/compiler.h
-index 1e30903..19534f0 100644
---- a/urcu/compiler.h
-+++ b/urcu/compiler.h
-@@ -108,23 +108,4 @@
-
- #define CAA_ARRAY_SIZE(x) (sizeof(x) / sizeof((x)[0]))
-
--/*
-- * Don't allow compiling with buggy compiler.
-- */
--
--#ifdef __GNUC__
--# define URCU_GCC_VERSION (__GNUC__ * 10000 \
-- + __GNUC_MINOR__ * 100 \
-- + __GNUC_PATCHLEVEL__)
--
--/*
-- * http://gcc.gnu.org/bugzilla/show_bug.cgi?id=58854
-- */
--# ifdef __ARMEL__
--# if URCU_GCC_VERSION >= 40800 && URCU_GCC_VERSION <= 40802
--# error Your gcc version produces clobbered frame accesses
--# endif
--# endif
--#endif
--
- #endif /* _URCU_COMPILER_H */
---
-2.1.2
-
diff --git a/yocto-poky/meta/recipes-support/liburcu/liburcu/aarch64.patch b/yocto-poky/meta/recipes-support/liburcu/liburcu/aarch64.patch
deleted file mode 100644
index c6cc8c2fd..000000000
--- a/yocto-poky/meta/recipes-support/liburcu/liburcu/aarch64.patch
+++ /dev/null
@@ -1,19 +0,0 @@
-libucru: recognize aarch64
-
-Make the same as "arm" internally.
-
-Upstream-Status: Pending
-
-Signed-off-by: joe.slater@windriver.com
-
-
---- a/configure.ac
-+++ b/configure.ac
-@@ -77,6 +77,7 @@ AS_CASE([$host_cpu],
- [alpha*], [ARCHTYPE="alpha"],
- [ia64], [ARCHTYPE="gcc"],
- [arm*], [ARCHTYPE="arm"],
-+ [aarch64], [ARCHTYPE="arm"],
- [mips*], [ARCHTYPE="mips"],
- [tile*], [ARCHTYPE="gcc"],
- [ARCHTYPE="unknown"]
OpenPOWER on IntegriCloud