This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "uClibc-ng - small C library for embedded systems".
The branch, master has been updated
via edda0488a6879c1598bee908418cba14d66f9712 (commit)
from 59fe21c468d852a08847a8bcb62dea56408b510e (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.
- Log -----------------------------------------------------------------
commit edda0488a6879c1598bee908418cba14d66f9712
Author: Waldemar Brodkorb <wbx(a)openadk.org>
Date: Fri Oct 3 06:27:04 2014 +0200
m68k: fix linuxthreads compile for coldfire
The tas instruction is not available for most coldfire CPU's.
Use bset instead in this case as already used in linuxthreads.old.
-----------------------------------------------------------------------
Summary of changes:
libpthread/linuxthreads/sysdeps/m68k/pspinlock.c | 20 +++++++++++++++-----
libpthread/linuxthreads/sysdeps/m68k/pt-machine.h | 11 +++++++++--
.../linuxthreads/sysdeps/pthread/herrno-loc.c | 2 ++
3 files changed, 26 insertions(+), 7 deletions(-)
diff --git a/libpthread/linuxthreads/sysdeps/m68k/pspinlock.c
b/libpthread/linuxthreads/sysdeps/m68k/pspinlock.c
index c26a278..af77c2a 100644
--- a/libpthread/linuxthreads/sysdeps/m68k/pspinlock.c
+++ b/libpthread/linuxthreads/sysdeps/m68k/pspinlock.c
@@ -27,10 +27,15 @@ __pthread_spin_lock (pthread_spinlock_t *lock)
unsigned int val;
do
- __asm__ __volatile__ ("tas %1; sne %0"
- : "=dm" (val), "=m" (*lock)
- : "m" (*lock)
- : "cc");
+ __asm__ __volatile__ (
+#if !defined(__mcoldfire__) && !defined(__mcf5200__) &&
!defined(__m68000)
+ "tas %1; sne %0"
+#else
+ "bset #7,%1; sne %0"
+#endif
+ : "=dm" (val), "=m" (*lock)
+ : "m" (*lock)
+ : "cc");
while (val);
return 0;
@@ -43,7 +48,12 @@ __pthread_spin_trylock (pthread_spinlock_t *lock)
{
unsigned int val;
- __asm__ __volatile__ ("tas %1; sne %0"
+ __asm__ __volatile__ (
+#if !defined(__mcoldfire__) && !defined(__mcf5200__) &&
!defined(__m68000)
+ "tas %1; sne %0"
+#else
+ "bset #7,%1; sne %0"
+#endif
: "=dm" (val), "=m" (*lock)
: "m" (*lock)
: "cc");
diff --git a/libpthread/linuxthreads/sysdeps/m68k/pt-machine.h
b/libpthread/linuxthreads/sysdeps/m68k/pt-machine.h
index e2d7bdc..1eb9fd5 100644
--- a/libpthread/linuxthreads/sysdeps/m68k/pt-machine.h
+++ b/libpthread/linuxthreads/sysdeps/m68k/pt-machine.h
@@ -28,12 +28,18 @@
#endif
/* Spinlock implementation; required. */
+PT_EI long int testandset (int *spinlock);
PT_EI long int
testandset (int *spinlock)
{
char ret;
- __asm__ __volatile__("tas %1; sne %0"
+ __asm__ __volatile__(
+#if !defined(__mcoldfire__) && !defined(__mcf5200__) &&
!defined(__m68000)
+ "tas %1; sne %0"
+#else
+ "bset #7,%1; sne %0"
+#endif
: "=dm"(ret), "=m"(*spinlock)
: "m"(*spinlock)
: "cc");
@@ -50,6 +56,7 @@ register char * stack_pointer __asm__ ("%sp");
/* Compare-and-swap for semaphores. */
+#if !defined(__mcoldfire__) && !defined(__mcf5200__) &&
!defined(__mc68000)
#define HAS_COMPARE_AND_SWAP
PT_EI int
__compare_and_swap (long int *p, long int oldval, long int newval)
@@ -63,5 +70,5 @@ __compare_and_swap (long int *p, long int oldval, long int newval)
return ret;
}
-
+#endif
#endif /* pt-machine.h */
diff --git a/libpthread/linuxthreads/sysdeps/pthread/herrno-loc.c
b/libpthread/linuxthreads/sysdeps/pthread/herrno-loc.c
index 706faef..634c752 100644
--- a/libpthread/linuxthreads/sysdeps/pthread/herrno-loc.c
+++ b/libpthread/linuxthreads/sysdeps/pthread/herrno-loc.c
@@ -16,7 +16,9 @@
<http://www.gnu.org/licenses/>. */
#include <netdb.h>
+#ifdef __UCLIBC_HAS_TLS__
#include <tls.h>
+#endif
#include <linuxthreads/internals.h>
#include <sysdep-cancel.h>
hooks/post-receive
--
uClibc-ng - small C library for embedded systems
Show replies by date