summary refs log tree commit diff
diff options
context:
space:
mode:
authorUlrich Drepper <drepper@redhat.com>2000-01-10 01:43:43 +0000
committerUlrich Drepper <drepper@redhat.com>2000-01-10 01:43:43 +0000
commit7feefb694436e1091ef8ee3d0eb02c7b03b64f14 (patch)
tree5b865cc959f7e63da2cd41c339dc7ee7ff408e3f
parentcedc8559c3a3e276277ee9fae9e6329c412a7522 (diff)
downloadglibc-7feefb694436e1091ef8ee3d0eb02c7b03b64f14.tar.gz
glibc-7feefb694436e1091ef8ee3d0eb02c7b03b64f14.tar.xz
glibc-7feefb694436e1091ef8ee3d0eb02c7b03b64f14.zip
Update.
2000-01-09  Philip Blundell  <philb@gnu.org>

	* sysdeps/arm/dl-machine.h (CLEAR_CACHE): System calls clobber R0.
	(dl_platform_init): Allow _dl_platform to be NULL.

	* sysdeps/unix/sysv/linux/arm/sysdep.h (UNDOARGS_5): Fix error in
	last change.
-rw-r--r--ChangeLog8
-rw-r--r--sysdeps/arm/dl-machine.h12
-rw-r--r--sysdeps/unix/sysv/linux/arm/sysdep.h4
3 files changed, 17 insertions, 7 deletions
diff --git a/ChangeLog b/ChangeLog
index e5552901f9..b24dafad30 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,11 @@
+2000-01-09  Philip Blundell  <philb@gnu.org>
+
+	* sysdeps/arm/dl-machine.h (CLEAR_CACHE): System calls clobber R0.
+	(dl_platform_init): Allow _dl_platform to be NULL.
+
+	* sysdeps/unix/sysv/linux/arm/sysdep.h (UNDOARGS_5): Fix error in
+	last change.
+
 2000-01-08  Ulrich Drepper  <drepper@cygnus.com>
 
 	* nscd/connections.c (handle_request): Handle systems without
diff --git a/sysdeps/arm/dl-machine.h b/sysdeps/arm/dl-machine.h
index ef5584f19f..78341fc49a 100644
--- a/sysdeps/arm/dl-machine.h
+++ b/sysdeps/arm/dl-machine.h
@@ -37,7 +37,10 @@
   register unsigned long _beg __asm ("a1") = (unsigned long)(BEG);	\
   register unsigned long _end __asm ("a2") = (unsigned long)(END);	\
   register unsigned long _flg __asm ("a3") = 0;				\
-  __asm __volatile ("swi 0x9f0002");					\
+  __asm __volatile ("swi 0x9f0002		@ sys_cacheflush"	\
+		    : /* no outputs */					\
+		    : /* no inputs */					\
+		    : "a1");						\
 }
 
 /* Return nonzero iff E_MACHINE is compatible with the running host.  */
@@ -350,10 +353,9 @@ extern const char *_dl_platform;
 static inline void __attribute__ ((unused))
 dl_platform_init (void)
 {
-  if (_dl_platform == NULL)
-    /* We default to ARM
-    This is where processors could be distinguished arm2, arm6, sa110, etc */
-    _dl_platform = "ARM";
+  if (_dl_platform != NULL && *_dl_platform == '\0')
+    /* Avoid an empty string which would disturb us.  */
+    _dl_platform = NULL;
 }
 
 static inline void
diff --git a/sysdeps/unix/sysv/linux/arm/sysdep.h b/sysdeps/unix/sysv/linux/arm/sysdep.h
index cd83389f37..c337af2b14 100644
--- a/sysdeps/unix/sysv/linux/arm/sysdep.h
+++ b/sysdeps/unix/sysv/linux/arm/sysdep.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1992, 93, 95, 96, 97, 98, 99 Free Software Foundation, Inc.
+/* Copyright (C) 1992, 93, 95-99, 2000 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Ulrich Drepper, <drepper@gnu.ai.mit.edu>, August 1995.
    ARM changes by Philip Blundell, <pjb27@cam.ac.uk>, May 1997.
@@ -109,7 +109,7 @@
 #define UNDOARGS_2 /* nothing */
 #define UNDOARGS_3 /* nothing */
 #define UNDOARGS_4 /* nothing */
-#define UNDOARGS_5 ldr r4, [sp, $4]!;
+#define UNDOARGS_5 ldr r4, [sp], $4;
 #define UNDOARGS_6 ldmfd sp!, {r4, r5};
 #define UNDOARGS_7 ldmfd sp!, {r4, r5, r6};