blob: c6b5363d7be19b80f42877c67ffc055010f6d225 [file] [log] [blame]
From 6397a628955c28c2c65f3120b942eca4d64ce38e Mon Sep 17 00:00:00 2001
From: Petri Gynther <pgynther@google.com>
Date: Fri, 12 Aug 2016 21:12:59 -0700
Subject: [PATCH 2/2] uclibc: remove atomic stuff
---
package/uclibc/0001-uClibc-no-atomic.patch | 78 ++++++++++++++++++++++++++++++
1 file changed, 78 insertions(+)
create mode 100644 package/uclibc/0001-uClibc-no-atomic.patch
diff --git a/package/uclibc/0001-uClibc-no-atomic.patch b/package/uclibc/0001-uClibc-no-atomic.patch
new file mode 100644
index 0000000..41305ed
--- /dev/null
+++ b/package/uclibc/0001-uClibc-no-atomic.patch
@@ -0,0 +1,78 @@
+diff --git a/Rules.mak b/Rules.mak
+index 405fe39..f78f5f9 100644
+--- a/Rules.mak
++++ b/Rules.mak
+@@ -496,7 +496,6 @@ ifeq ($(TARGET_ARCH),c6x)
+ endif
+
+ ifeq ($(TARGET_ARCH),arc)
+- CPU_CFLAGS-y += -mlock -mswape
+ CPU_CFLAGS-$(CONFIG_ARC_CPU_700) += -mA7
+ CPU_CFLAGS-$(CONFIG_ARC_CPU_HS) += -mcpu=archs
+ CPU_LDFLAGS-y += $(CPU_CFLAGS) -marclinux
+diff --git a/libc/sysdeps/linux/arc/bits/atomic.h b/libc/sysdeps/linux/arc/bits/atomic.h
+deleted file mode 100644
+index 1fdc83f..0000000
+--- a/libc/sysdeps/linux/arc/bits/atomic.h
++++ /dev/null
+@@ -1,60 +0,0 @@
+-/*
+- * Copyright (C) 2013 Synopsys, Inc. (www.synopsys.com)
+- *
+- * Licensed under LGPL v2.1 or later, see the file COPYING.LIB in this tarball.
+- */
+-
+-#include <stdint.h>
+-#include <sysdep.h>
+-
+-typedef int8_t atomic8_t;
+-typedef uint8_t uatomic8_t;
+-typedef int_fast8_t atomic_fast8_t;
+-typedef uint_fast8_t uatomic_fast8_t;
+-
+-typedef int32_t atomic32_t;
+-typedef uint32_t uatomic32_t;
+-typedef int_fast32_t atomic_fast32_t;
+-typedef uint_fast32_t uatomic_fast32_t;
+-
+-typedef intptr_t atomicptr_t;
+-typedef uintptr_t uatomicptr_t;
+-typedef intmax_t atomic_max_t;
+-typedef uintmax_t uatomic_max_t;
+-
+-void __arc_link_error (void);
+-
+-#ifdef __A7__
+-#define atomic_full_barrier() __asm__ __volatile__("": : :"memory")
+-#else
+-#define atomic_full_barrier() __asm__ __volatile__("dmb 3": : :"memory")
+-#endif
+-
+-/* Atomic compare and exchange. */
+-
+-#define __arch_compare_and_exchange_val_8_acq(mem, newval, oldval) \
+- ({ __arc_link_error (); oldval; })
+-
+-#define __arch_compare_and_exchange_val_16_acq(mem, newval, oldval) \
+- ({ __arc_link_error (); oldval; })
+-
+-#define __arch_compare_and_exchange_val_32_acq(mem, newval, oldval) \
+- ({ \
+- __typeof(oldval) prev; \
+- \
+- __asm__ __volatile__( \
+- "1: llock %0, [%1] \n" \
+- " brne %0, %2, 2f \n" \
+- " scond %3, [%1] \n" \
+- " bnz 1b \n" \
+- "2: \n" \
+- : "=&r"(prev) \
+- : "r"(mem), "ir"(oldval), \
+- "r"(newval) /* can't be "ir". scond can't take limm for "b" */\
+- : "cc", "memory"); \
+- \
+- prev; \
+- })
+-
+-#define __arch_compare_and_exchange_val_64_acq(mem, newval, oldval) \
+- ({ __arc_link_error (); oldval; })
--
2.8.0.rc3.226.g39d4020