+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
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. */
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
-/* 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.
#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};