PATCH: misc little BP fixes
Greg McGary
greg@mcgary.org
Wed Jul 26 01:27:00 GMT 2000
i686: no build time or runtime regressions.
OK?
2000-07-26 Greg McGary <greg@mcgary.org>
* sysdeps/i386/bits/string.h [!__BOUNDED_POINTERS__]: Disable inlines.
* sysdeps/i386/i486/bits/string.h [!__BOUNDED_POINTERS__]: Likewise.
* sysdeps/unix/sysv/linux/getsysstats.c (get_proc_path): Copy
bounds of copy_result to mount_proc.
Index: sysdeps/i386/bits/string.h
===================================================================
RCS file: /cvs/glibc/libc/sysdeps/i386/bits/string.h,v
retrieving revision 1.18
diff -u -p -r1.18 string.h
--- string.h 2000/06/30 08:51:50 1.18
+++ string.h 2000/07/26 08:16:37
@@ -28,7 +28,7 @@
/* We only provide optimizations if the user selects them and if
GNU CC is used. */
#if !defined __NO_STRING_INLINES && defined __USE_STRING_INLINES \
- && defined __GNUC__ && __GNUC__ >= 2
+ && defined __GNUC__ && __GNUC__ >= 2 && !__BOUNDED_POINTERS__
#ifndef __STRING_INLINE
# ifdef __cplusplus
Index: sysdeps/i386/i486/bits/string.h
===================================================================
RCS file: /cvs/glibc/libc/sysdeps/i386/i486/bits/string.h,v
retrieving revision 1.35
diff -u -p -r1.35 string.h
--- string.h 1999/10/04 07:26:58 1.35
+++ string.h 2000/07/26 08:16:38
@@ -1,5 +1,5 @@
/* Optimized, inlined string functions. i486 version.
- Copyright (C) 1997, 1998, 1999 Free Software Foundation, Inc.
+ Copyright (C) 1997, 1998, 1999, 2000 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -28,7 +28,7 @@
/* We only provide optimizations if the user selects them and if
GNU CC is used. */
#if !defined __NO_STRING_INLINES && defined __USE_STRING_INLINES \
- && defined __GNUC__ && __GNUC__ >= 2
+ && defined __GNUC__ && __GNUC__ >= 2 && !__BOUNDED_POINTERS__
#ifndef __STRING_INLINE
# ifdef __cplusplus
Index: sysdeps/unix/sysv/linux/getsysstats.c
===================================================================
RCS file: /cvs/glibc/libc/sysdeps/unix/sysv/linux/getsysstats.c,v
retrieving revision 1.15
diff -u -p -r1.15 getsysstats.c
--- getsysstats.c 2000/07/17 22:30:16 1.15
+++ getsysstats.c 2000/07/26 08:16:38
@@ -85,6 +85,15 @@ get_proc_path (char *buffer, size_t bufs
/* Replacing the value failed. This means another thread was
faster and we don't need the copy anymore. */
free (copy_result);
+#if __BOUNDED_POINTERS__
+ else
+ {
+ /* compare_and_swap only copied the pointer value, so we must
+ now copy the bounds as well. */
+ __ptrlow (mount_proc) = __ptrlow (copy_result);
+ __ptrhigh (mount_proc) = __ptrhigh (copy_result);
+ }
+#endif
return mount_proc;
}
More information about the Libc-hacker
mailing list