OSDN Git Service

*: remove vestiges of gcc's "bounded pointers" feature,
authorDenis Vlasenko <vda.linux@googlemail.com>
Fri, 12 Dec 2008 14:48:10 +0000 (14:48 -0000)
committerDenis Vlasenko <vda.linux@googlemail.com>
Fri, 12 Dec 2008 14:48:10 +0000 (14:48 -0000)
 it is dead (not supported by gcc) for years.
 (more of it remains in multiple copies of sigaction.c)

libc/misc/regex/regex_old.c
libc/string/generic/strcpy.c
libc/sysdeps/linux/common/sigqueue.c
libc/sysdeps/linux/x86_64/brk.c
libpthread/linuxthreads/sysdeps/unix/sysv/linux/execve.c
libpthread/linuxthreads/sysdeps/unix/sysv/linux/sigwait.c

index 76350fc..c7f187d 100644 (file)
@@ -2091,33 +2091,12 @@ static reg_errcode_t byte_compile_range (unsigned int range_start,
 #   define MAX_BUF_SIZE (1L << 16)
 #   define REALLOC(p,s) realloc ((p), (s))
 #  endif
+# endif /* not DEFINED_ONCE */
 
 /* Extend the buffer by twice its current size via realloc and
    reset the pointers that pointed into the old block to point to the
    correct places in the new one.  If extending the buffer results in it
    being larger than MAX_BUF_SIZE, then flag memory exhausted.  */
-#  if __BOUNDED_POINTERS__
-#   define SET_HIGH_BOUND(P) (__ptrhigh (P) = __ptrlow (P) + bufp->allocated)
-#   define MOVE_BUFFER_POINTER(P) \
-  (__ptrlow (P) += incr, SET_HIGH_BOUND (P), __ptrvalue (P) += incr)
-#   define ELSE_EXTEND_BUFFER_HIGH_BOUND       \
-  else                                         \
-    {                                          \
-      SET_HIGH_BOUND (b);                      \
-      SET_HIGH_BOUND (begalt);                 \
-      if (fixup_alt_jump)                      \
-       SET_HIGH_BOUND (fixup_alt_jump);        \
-      if (laststart)                           \
-       SET_HIGH_BOUND (laststart);             \
-      if (pending_exact)                       \
-       SET_HIGH_BOUND (pending_exact);         \
-    }
-#  else
-#   define MOVE_BUFFER_POINTER(P) (P) += incr
-#   define ELSE_EXTEND_BUFFER_HIGH_BOUND
-#  endif
-# endif /* not DEFINED_ONCE */
-
 # ifdef WCHAR
 #  define EXTEND_BUFFER()                                              \
   do {                                                                 \
@@ -2141,16 +2120,15 @@ static reg_errcode_t byte_compile_range (unsigned int range_start,
     if (old_buffer != COMPILED_BUFFER_VAR)                             \
       {                                                                        \
        int incr = COMPILED_BUFFER_VAR - old_buffer;                    \
-       MOVE_BUFFER_POINTER (b);                                        \
-       MOVE_BUFFER_POINTER (begalt);                                   \
+       b += incr;                                                      \
+       begalt += incr;                                                 \
        if (fixup_alt_jump)                                             \
-         MOVE_BUFFER_POINTER (fixup_alt_jump);                         \
+         fixup_alt_jump += incr;                                       \
        if (laststart)                                                  \
-         MOVE_BUFFER_POINTER (laststart);                              \
+         laststart += incr;                                            \
        if (pending_exact)                                              \
-         MOVE_BUFFER_POINTER (pending_exact);                          \
+         pending_exact += incr;                                        \
       }                                                                        \
-    ELSE_EXTEND_BUFFER_HIGH_BOUND                                      \
   } while (0)
 # else /* BYTE */
 #  define EXTEND_BUFFER()                                              \
@@ -2169,16 +2147,15 @@ static reg_errcode_t byte_compile_range (unsigned int range_start,
     if (old_buffer != COMPILED_BUFFER_VAR)                             \
       {                                                                        \
        int incr = COMPILED_BUFFER_VAR - old_buffer;                    \
-       MOVE_BUFFER_POINTER (b);                                        \
-       MOVE_BUFFER_POINTER (begalt);                                   \
+       b += incr;                                                      \
+       begalt += incr;                                                 \
        if (fixup_alt_jump)                                             \
-         MOVE_BUFFER_POINTER (fixup_alt_jump);                         \
+         fixup_alt_jump += incr;                                       \
        if (laststart)                                                  \
-         MOVE_BUFFER_POINTER (laststart);                              \
+         laststart += incr;                                            \
        if (pending_exact)                                              \
-         MOVE_BUFFER_POINTER (pending_exact);                          \
+         pending_exact += incr;                                        \
       }                                                                        \
-    ELSE_EXTEND_BUFFER_HIGH_BOUND                                      \
   } while (0)
 # endif /* WCHAR */
 
index 99e0771..5f27581 100644 (file)
 
 /* Experimentally off - libc_hidden_proto(strcpy) */
 /* Copy SRC to DEST.  */
-char *strcpy (char *dest, const char *src)
+char *strcpy(char *dest, const char *src)
 {
-  reg_char c;
-  char *__unbounded s = (char *__unbounded) CHECK_BOUNDS_LOW (src);
-  const ptrdiff_t off = CHECK_BOUNDS_LOW (dest) - s - 1;
-  size_t n;
-
-  do
-    {
-      c = *s++;
-      s[off] = c;
-    }
-  while (c != '\0');
-
-  n = s - src;
-  (void) CHECK_BOUNDS_HIGH (src + n);
-  (void) CHECK_BOUNDS_HIGH (dest + n);
-
-  return dest;
+       char *dst = dest;
+
+       while ((*dst = *src) != '\0') {
+               src++;
+               dst++;
+       }
+
+       return dest;
 }
 libc_hidden_def(strcpy)
index d610e8f..1b997dc 100644 (file)
@@ -48,7 +48,7 @@ int sigqueue (pid_t pid, int sig, const union sigval val)
   info.si_uid = getuid ();
   info.si_value = val;
 
-  return __libc_rt_sigqueueinfo(pid, sig, __ptrvalue (&info));
+  return __libc_rt_sigqueueinfo(pid, sig, &info);
 }
 
 #endif
index fc906ab..b1ee640 100644 (file)
 void *__curbrk attribute_hidden = 0;
 
 /* libc_hidden_proto(brk) */
-int brk (void *addr)
+int brk(void *addr)
 {
-       void *__unbounded newbrk;
+       void *newbrk;
 
        __asm__ ("syscall\n"
-            : "=a" (newbrk)
-            : "0" (__NR_brk), "D" (__ptrvalue (addr))
-            : "r11","rcx","memory");
+               : "=a" (newbrk)
+               : "0" (__NR_brk), "D" (addr)
+               : "r11", "rcx"
+       );
 
        __curbrk = newbrk;
 
        if (newbrk < addr) {
-               __set_errno (ENOMEM);
+               __set_errno(ENOMEM);
                return -1;
        }
 
index 9fa912b..fb56076 100644 (file)
 #include <sys/syscall.h>
 #include <bp-checks.h>
 
-extern int __syscall_execve (const char *__unbounded file,
-                            char *__unbounded const *__unbounded argv,
-                            char *__unbounded const *__unbounded envp);
-extern void __pthread_kill_other_threads_np (void);
-weak_extern (__pthread_kill_other_threads_np)
-
+extern int __syscall_execve(const char *file,
+                       char *const *argv,
+                       char *const *envp);
+extern void __pthread_kill_other_threads_np(void);
+weak_extern(__pthread_kill_other_threads_np)
 
 int
-__execve (file, argv, envp)
-     const char *file;
-     char *const argv[];
-     char *const envp[];
+__execve(const char *file, char *const argv[], char *const envp[])
 {
-  /* If this is a threaded application kill all other threads.  */
-  if (__pthread_kill_other_threads_np)
-    __pthread_kill_other_threads_np ();
-#if __BOUNDED_POINTERS__
-  {
-    char *const *v;
-    int i;
-    char *__unbounded *__unbounded ubp_argv;
-    char *__unbounded *__unbounded ubp_envp;
-    char *__unbounded *__unbounded ubp_v;
-
-    for (v = argv; *v; v++)
-      ;
-    i = v - argv + 1;
-    ubp_argv = (char *__unbounded *__unbounded) alloca (sizeof (*ubp_argv) * i);
-    for (v = argv, ubp_v = ubp_argv; --i; v++, ubp_v++)
-      *ubp_v = CHECK_STRING (*v);
-    *ubp_v = 0;
-
-    for (v = envp; *v; v++)
-      ;
-    i = v - envp + 1;
-    ubp_envp = (char *__unbounded *__unbounded) alloca (sizeof (*ubp_envp) * i);
-    for (v = envp, ubp_v = ubp_envp; --i; v++, ubp_v++)
-      *ubp_v = CHECK_STRING (*v);
-    *ubp_v = 0;
-
-    return INLINE_SYSCALL (execve, 3, CHECK_STRING (file), ubp_argv, ubp_envp);
-  }
-#else
-  return INLINE_SYSCALL (execve, 3, file, argv, envp);
-#endif
+       /* If this is a threaded application kill all other threads.  */
+       if (__pthread_kill_other_threads_np)
+               __pthread_kill_other_threads_np();
+       return INLINE_SYSCALL(execve, 3, file, argv, envp);
 }
-weak_alias (__execve, execve)
+weak_alias(__execve, execve)
index 3432125..71396f0 100644 (file)
@@ -26,8 +26,8 @@
 #include <bp-checks.h>
 #include <bits/libc-lock.h>
 
-extern int __syscall_rt_sigtimedwait (const sigset_t *__unbounded, siginfo_t *__unbounded,
-                                     const struct timespec *__unbounded, size_t);
+extern int __syscall_rt_sigtimedwait (const sigset_t *, siginfo_t *,
+                                     const struct timespec *, size_t);
 
 
 /* Return any pending signal or wait for one for the given time.  */