Fix a bunch of compiler warnings and a few bugs
authorDavid Bartley <dtbartle@maltodextrin.csclub.uwaterloo.ca>
Tue, 13 Jan 2009 06:20:27 +0000 (06:20 +0000)
committerDavid Bartley <dtbartle@maltodextrin.csclub.uwaterloo.ca>
Tue, 13 Jan 2009 06:20:27 +0000 (06:20 +0000)
47 files changed:
elf/dl-rtld_db.h
nptl/sysdeps/unix/sysv/solaris2/kopensolaris-gnu/i386/tls.h
nptl/sysdeps/unix/sysv/solaris2/kopensolaris-gnu/mutex_reltimedlock.c
nptl/sysdeps/unix/sysv/solaris2/kopensolaris-gnu/pthreadP.h
nptl/sysdeps/unix/sysv/solaris2/kopensolaris-gnu/pthread_cond_reltimedwait_np.c
nptl/sysdeps/unix/sysv/solaris2/kopensolaris-gnu/pthread_mutex_getprioceiling.c
nptl/sysdeps/unix/sysv/solaris2/kopensolaris-gnu/pthread_rwlock_timedrdlock.c
nptl/sysdeps/unix/sysv/solaris2/kopensolaris-gnu/pthread_rwlock_timedwrlock.c
nptl/sysdeps/unix/sysv/solaris2/kopensolaris-gnu/sem_timedwait.c
nptl/sysdeps/unix/sysv/solaris2/kopensolaris-gnu/thr_getspecific.c
nptl/sysdeps/unix/sysv/solaris2/kopensolaris-gnu/thr_setspecific.c
rtld_db/rd_event_getmsg.c
rtld_db/rd_get_dyns.c
sysdeps/unix/sysv/linux/ttyname.c
sysdeps/unix/sysv/solaris2/kopensolaris-gnu/Versions
sysdeps/unix/sysv/solaris2/kopensolaris-gnu/bits/fcntl.h
sysdeps/unix/sysv/solaris2/kopensolaris-gnu/bits/utmpx.h
sysdeps/unix/sysv/solaris2/kopensolaris-gnu/closefrom.c
sysdeps/unix/sysv/solaris2/kopensolaris-gnu/door.c
sysdeps/unix/sysv/solaris2/kopensolaris-gnu/euidaccess.c
sysdeps/unix/sysv/solaris2/kopensolaris-gnu/fdetach.c
sysdeps/unix/sysv/solaris2/kopensolaris-gnu/files-project.c
sysdeps/unix/sysv/solaris2/kopensolaris-gnu/get_child_max.c
sysdeps/unix/sysv/solaris2/kopensolaris-gnu/getclktck.c
sysdeps/unix/sysv/solaris2/kopensolaris-gnu/getdtsz.c
sysdeps/unix/sysv/solaris2/kopensolaris-gnu/getpagesize.c
sysdeps/unix/sysv/solaris2/kopensolaris-gnu/getsysstats.c
sysdeps/unix/sysv/solaris2/kopensolaris-gnu/inline-syscall.h
sysdeps/unix/sysv/solaris2/kopensolaris-gnu/mountP.h
sysdeps/unix/sysv/solaris2/kopensolaris-gnu/not-cancel.h
sysdeps/unix/sysv/solaris2/kopensolaris-gnu/paths.h
sysdeps/unix/sysv/solaris2/kopensolaris-gnu/port.c
sysdeps/unix/sysv/solaris2/kopensolaris-gnu/privP.h
sysdeps/unix/sysv/solaris2/kopensolaris-gnu/priv_str.c
sysdeps/unix/sysv/solaris2/kopensolaris-gnu/rtld_db.h
sysdeps/unix/sysv/solaris2/kopensolaris-gnu/sendfile64.c
sysdeps/unix/sysv/solaris2/kopensolaris-gnu/setsockopt.c
sysdeps/unix/sysv/solaris2/kopensolaris-gnu/sigaction.c
sysdeps/unix/sysv/solaris2/kopensolaris-gnu/sigsend.c
sysdeps/unix/sysv/solaris2/kopensolaris-gnu/sys/elf.h
sysdeps/unix/sysv/solaris2/kopensolaris-gnu/syscalls.list
sysdeps/unix/sysv/solaris2/kopensolaris-gnu/sysconf.c
sysdeps/unix/sysv/solaris2/kopensolaris-gnu/ttyname.c
sysdeps/unix/sysv/solaris2/kopensolaris-gnu/uadminP.h
sysdeps/unix/sysv/solaris2/kopensolaris-gnu/ustatP.h
sysdeps/unix/sysv/solaris2/kopensolaris-gnu/vfsent.c
sysdeps/unix/sysv/solaris2/kopensolaris-gnu/xmknod.c

index 42a19c0..a46a2a1 100644 (file)
@@ -22,7 +22,7 @@
 
 extern void rtld_db_preinit (void *arg);
 extern void rtld_db_postinit (void *arg);
-extern void rtld_db_ldactivity (void *arg);
+extern void rtld_db_dlactivity (void *arg);
 
 extern rd_event_msg_t rtld_db_event_msg;
 
@@ -41,5 +41,8 @@ static inline void rtld_db_event (rd_event_e event, r_state_e state)
       break;
     case RD_DLACTIVITY:
       rtld_db_dlactivity (NULL);
+      break;
+    case RD_NONE:
+      break;
     }
 }
index d668034..6bacdd8 100644 (file)
@@ -40,7 +40,6 @@
 # define TLS_INIT_TP(thrdescr, secondcall) \
   ({ void *_thrdescr = (thrdescr);                                           \
      tcbhead_t *_head = _thrdescr;                                           \
-     int _result;                                                            \
      sysret_t ret;                                          \
                                                                              \
      _head->tcb = _thrdescr;                                                 \
index 870b0ac..fa13d50 100644 (file)
@@ -67,8 +67,9 @@ int __mutex_reltimedlock (mutex, reltime)
     return EINVAL;
 
   int errval;
+  COPY_TIMESPEC (reltime)
   do
-    errval = INLINE_SYSCALL (lwp_mutex_timedlock, 2, mutex, reltime);
+    errval = INLINE_SYSCALL (lwp_mutex_timedlock, 2, mutex, __reltime);
   while (errval == EINTR);
 
   /* The kernel sets EDEADLK for priority inherit mutexes.  */
@@ -79,7 +80,7 @@ int __mutex_reltimedlock (mutex, reltime)
       INTERNAL_SYSCALL_DECL (err);
       if (reltime)
         {
-          int res = INTERNAL_SYSCALL (nanosleep, err, 2, reltime, reltime);
+          int res = INTERNAL_SYSCALL (nanosleep, err, 2, __reltime, __reltime);
           do
             errval = INTERNAL_SYSCALL_ERRNO (res, err) ? EINTR : ETIMEDOUT;
           while (errval == EINTR);
index 2ed4340..dacfff9 100644 (file)
 
 #define MUTEX_NOT_OWNER(mutex)  (! MUTEX_IS_OWNER (mutex))
 
+#include <time.h>
+
 #define PAST_TIMESPEC(tv)      ((tv) && (tv)->tv_sec < 0)
 #define INVALID_TIMESPEC(tv)    ((tv) && ((tv)->tv_nsec < 0 || \
        (tv)->tv_nsec >= 1000000000))
+#define COPY_TIMESPEC(tv)                       \
+       struct timespec *__##tv = NULL, _##tv;    \
+    if (tv)                                     \
+      {                                         \
+        _##tv = *tv;                            \
+        __##tv = &_##tv;                        \
+      }
 
 #include <sys/types.h>
 #include <sys/syscall.h>
index b3be9f4..0cdb392 100644 (file)
@@ -28,7 +28,8 @@ pthread_cond_reltimedwait_np (cond, mutex, reltime)
      pthread_mutex_t *mutex;
      const struct timespec *reltime;
 {
-  int errval = cond_reltimedwait ((cond_t *)cond, (mutex_t *)mutex, reltime);
+  COPY_TIMESPEC (reltime)
+  int errval = cond_reltimedwait ((cond_t *)cond, (mutex_t *)mutex, __reltime);
   if (errval == ETIME)
     return ETIMEDOUT;
   else if (errval == EINTR)
index e44b4a0..072d1ee 100644 (file)
@@ -29,7 +29,7 @@ pthread_mutex_getprioceiling (mutex, prioceiling)
      const pthread_mutex_t *mutex;
      int *prioceiling;
 {
-  if (mutex->mutex_type & LOCK_PRIO_PROTECT == 0)
+  if ((mutex->mutex_type & LOCK_PRIO_PROTECT) == 0)
     return EINVAL;
 
   *prioceiling = mutex->mutex_ceiling;
index cf20f57..8aad3e4 100644 (file)
@@ -30,7 +30,8 @@ pthread_rwlock_timedrdlock (rwlock, abstime)
      pthread_rwlock_t *rwlock;
      const struct timespec *abstime;
 {
-  int errval = __rw_timedrdlock ((rwlock_t *)rwlock, abstime);
+  COPY_TIMESPEC (abstime)
+  int errval = __rw_timedrdlock ((rwlock_t *)rwlock, __abstime);
   if (errval == ETIME)
     return ETIMEDOUT;
   return errval;
index e86b98d..7963236 100644 (file)
@@ -30,7 +30,8 @@ pthread_rwlock_timedwrlock (rwlock, abstime)
      pthread_rwlock_t *rwlock;
      const struct timespec *abstime;
 {
-  int errval = __rw_timedwrlock ((rwlock_t *)rwlock, abstime);
+  COPY_TIMESPEC (abstime)
+  int errval = __rw_timedwrlock ((rwlock_t *)rwlock, __abstime);
   if (errval == ETIME)
     return ETIMEDOUT;
   return errval;
index b2f41fb..9a18a00 100644 (file)
@@ -32,7 +32,8 @@
 int
 sem_timedwait (sem_t *sem, const struct timespec *abstime)
 {
-  int errval = __sema_timedwait ((sema_t *)sem, abstime);
+  COPY_TIMESPEC (abstime)
+  int errval = __sema_timedwait ((sema_t *)sem, __abstime);
   if (errval == ETIME)
     errval = ETIMEDOUT;
   if (errval != 0)
index 7229c4a..f341fe7 100644 (file)
@@ -26,7 +26,7 @@ int thr_getspecific (key, valuep)
       void **valuep;
 {
   /* We need to check that key is valid.  */
-  if (key < PTHREAD_KEYS_MAX)
+  if (key >= PTHREAD_KEYS_MAX)
     return EINVAL;
   uintptr_t seq = __pthread_keys[key].seq;
   if (KEY_UNUSED (seq) || KEY_USABLE (seq))
index 910f787..9c99a7b 100644 (file)
@@ -26,7 +26,7 @@ int thr_setspecific (key, value)
       void *value;
 {
   /* We need to check that key is valid.  */
-  if (key < PTHREAD_KEYS_MAX)
+  if (key >= PTHREAD_KEYS_MAX)
     return EINVAL;
   uintptr_t seq = __pthread_keys[key].seq;
   if (KEY_UNUSED (seq) || KEY_USABLE (seq))
index e7d792b..0d57e21 100644 (file)
@@ -25,7 +25,7 @@ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
 rd_err_e rd_event_getmsg (rd_agent_t *rdap, rd_event_msg_t *emsg)
 {
   /* Read rd_event_msg.  */
-  ps_err_e res = ps_pread (rdap->rd_php, rdap->rd_event_msg, emsg,
+  ps_err_e res = ps_pread (rdap->rd_php, (psaddr_t)rdap->rd_event_msg, emsg,
       sizeof (*emsg));
   if (res != PS_OK)
     return RD_DBERR;
index c5c9aa2..430ead7 100644 (file)
@@ -67,8 +67,9 @@ rd_err_e rd_get_dyns (rd_agent_t *rdap, psaddr_t addr, void **dynpp,
   /* Scan all the Phdr's looking for DT_DYNAMIC.  */
   for (int i = 0; i < nphdr; i++)
     {
-      Elf32_Phdr phdr, *phdr_ptr = addr + ehdr.e_phoff + (ehdr.e_phentsize * i);
-      res = ps_pread (rdap->rd_php, phdr_ptr, &phdr, sizeof (phdr));
+      Elf32_Phdr phdr;
+      psaddr_t phdr_ptr = addr + ehdr.e_phoff + (ehdr.e_phentsize * i);
+      res = ps_pread (rdap->rd_php, (psaddr_t)phdr_ptr, &phdr, sizeof (phdr));
       if (res != PS_OK)
         return RD_ERR;
 
index 0f5942f..f13740e 100644 (file)
@@ -104,8 +104,10 @@ getttyname (const char *dev, dev_t mydev, ino64_t myino, int save, int *dostat)
 }
 
 
+#ifndef __ASSUME_PROC_SELF_FD_NOT_SYMLINK
 /* Static buffer in `ttyname'.  */
 libc_freeres_ptr (static char *ttyname_buf);
+#endif
 
 
 /* Return the pathname of the terminal FD is open on, or NULL on errors.
@@ -121,9 +123,9 @@ ttyname (int fd)
   int dostat = 0;
   char *name;
   int save = errno;
+#ifndef __TTYNAME_NO_CHECKS
   struct termios term;
 
-#ifndef __TTYNAME_NO_CHECKS
   /* isatty check, tcgetattr is used because it sets the correct
      errno (EBADF resp. ENOTTY) on error.  */
   if (__builtin_expect (__tcgetattr (fd, &term) < 0, 0))
index 949fc52..a9e91ca 100644 (file)
@@ -127,7 +127,6 @@ libc {
 
 libnsl {
   GLIBC_2.7 {
-    _escape; _strdup_null; _strtok_escape; _strpbrk_escape; _unescape;
     setnetconfig; endnetconfig; getnetconfig; getnetconfigent;
     freenetconfigent; setnetpath; endnetpath; getnetpath; nc_perror;
     nc_sperror;
index b4ca3ac..187f5b5 100644 (file)
@@ -28,6 +28,8 @@
 # include <bits/uio.h>
 #endif
 
+#define E_OK   010
+
 
 /* open/fcntl */
 #define        O_RDONLY        0
index b33cd9f..8ddd429 100644 (file)
@@ -26,8 +26,8 @@
 #include <bits/wordsize.h>
 
 
-#define _UTMPX_FILE    "/var/adm/utmpx"
-#define _WTMPX_FILE    "/var/adm/wtmpx"
+#define _UTMPX_FILE    "/var/run/utmp"
+#define _WTMPX_FILE    "/var/log/wtmp"
 #ifdef __USE_MISC
 # include <paths.h>
 # define _PATH_UTMPX   _PATH_UTMP
index 7f764e5..9b1c7e4 100644 (file)
@@ -18,6 +18,7 @@
    02111-1307 USA.  */
 
 #include <stdlib.h>
+#include <unistd.h>
 
 /* TODO: This should go away once we put fdwalk in stdlib.h.  */
 extern int fdwalk(int (*)(void *, int), void *);
index f43e191..93d19f8 100644 (file)
@@ -29,8 +29,8 @@
 #include <signal.h>
 
 static pid_t __door_private_pid, __door_unref_pid;
-static void door_server_create_default (door_info_t *);
-door_server_func_t *door_server_create_proc = &door_server_create_default;
+static void door_server_create_default (door_info_t *);
+door_server_func_t *door_server_create_proc = door_server_create_default;
 static int (*thr_create_ptr) (void *, size_t, void * (*)(void *), void *,
     long, thread_t *);
 
@@ -144,31 +144,30 @@ static void * door_create_default_proc (void *arg)
 }
 
 
-static void door_load_libpthread (void)
+static int door_load_libpthread (void)
 {
   if (!thr_create_ptr)
     {
       void *libpthread = __libc_dlopen ("libpthread.so.0");
       if (!libpthread)
-        return;
+        return -1;
       thr_create_ptr = __libc_dlsym (libpthread, "thr_create");
       if (!thr_create_ptr)
-        return;
+        return -1;
     }
+
+  return 0;
 }
 
 
-static void door_server_create_default (door_info_t *info)
+static void door_server_create_default (door_info_t *info)
 {
-  door_load_libpthread ();
-  if (!thr_create_ptr)
-    return NULL;
+  if (door_load_libpthread () != 0)
+    return;
 
   /* The default server create action is to create a server thread. We use
      thr_create since we want to create this as a daemon thread.  */
   thr_create_ptr (NULL, 0, door_create_default_proc, NULL, THR_DETACHED, NULL);
-
-  return NULL;
 }
 
 
@@ -207,8 +206,7 @@ int door_create (void (*server_procedure)(void *cookie, char *argp,
     }
   if (__door_unref_pid != pid && (attributes & (DOOR_UNREF | DOOR_UNREF_MULTI)))
     {
-      door_load_libpthread ();
-      if (!thr_create_ptr)
+      if (door_load_libpthread () != 0)
         return -1;
 
       /* We haven't created the unreferenced thread.  */
index 586e9b6..904e000 100644 (file)
@@ -24,8 +24,6 @@
 #include <unistd.h>
 #include <fcntl.h>
 
-#define E_OK   010
-
 int
 __euidaccess (file, type)
      const char *file;
index b159b01..7d9e248 100644 (file)
@@ -18,6 +18,7 @@
    02111-1307 USA.  */
 
 #include <streams/stropts.h>
+#include <mountP.h>
 
 int
 fdetach (path)
index e8411e0..1fed2dc 100644 (file)
@@ -31,7 +31,7 @@ struct projent_data {};
 LINE_PARSER
 (,
  STRING_FIELD (result->pj_name, ISCOLON, 0);
- INT_FIELD (result->pj_projid, ISCOLON, 0, 10, (projid_t))
+ INT_FIELD (result->pj_projid, ISCOLON, 0, 10, (projid_t));
  STRING_FIELD (result->pj_comment, ISCOLON, 0);
  STRING_FIELD (result->pj_users, ISCOLON, 0);
  STRING_FIELD (result->pj_groups, ISCOLON, 0);
index 9116a3d..f7f437e 100644 (file)
@@ -17,7 +17,6 @@
    Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
    02111-1307 USA.  */
 
-#include <inline-syscall.h>
 #include <sys/sysconfig.h>
 
 extern long _sysconfig (int which);
index 2a86a8d..5721593 100644 (file)
    02111-1307 USA.  */
 
 #include <time.h>
-
 #include <ldsodefs.h>
-
-#include <inline-syscall.h>
 #include <sys/sysconfig.h>
 
-extern long sysconfig (int which);
+extern long _sysconfig (int which);
 
 /* Return frequency of times().  */
 int
index de954e8..c50d101 100644 (file)
    Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
    02111-1307 USA.  */
 
-#include <inline-syscall.h>
 #include <sys/sysconfig.h>
 
-extern long sysconfig (int which);
+extern long _sysconfig (int which);
 
 int
 __getdtablesize (void)
index 58e7183..59cbebd 100644 (file)
    Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
    02111-1307 USA.  */
 
-#include <inline-syscall.h>
 #include <unistd.h>
 #include <sys/param.h>
 #include <sys/sysconfig.h>
 #include <ldsodefs.h>
 
-extern _sysconfig (int which);
+extern long _sysconfig (int which);
 
 int
 __getpagesize ()
index 21417ac..968d9ce 100644 (file)
@@ -17,7 +17,6 @@
    Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
    02111-1307 USA.  */
 
-#include <inline-syscall.h>
 #include <sys/sysinfo.h>
 #include <sys/sysconfig.h>
 
index 0c5e024..63faea7 100644 (file)
 
 typedef union rval
 {
-    struct
-    {
-        int32_t __rval1;
-        int32_t __rval2;
-    } rvals;
+    sysret_t rvals;
     int64_t rval64;
 } rval_t;
-#define rval1  rvals.__rval1
-#define rval2  rvals.__rval2
+#define rval1  rvals.sys_rval1
+#define rval2  rvals.sys_rval2
 
 #endif /* _INLINE_SYSCALL_H */
index d8f2f13..9004662 100644 (file)
@@ -23,4 +23,7 @@
 #define MS_DATA                0x04
 #define MS_NOMNTTAB    0x80
 
+extern int mount (const char *, const char *, int, ...);
+extern int umount2 (const char *, int);
+
 #endif /* _MOUNTP_H */
index 366b69a..6335a3e 100644 (file)
@@ -55,7 +55,7 @@ extern int openat64_not_cancel(int dirfd, const char *name,
       __ret;})
 #define write_not_cancel(fd, buf, n)                                    \
     ({int __fd = (fd);                                                  \
-      void *__buf = (buf);                                              \
+      const void *__buf = (buf);                                        \
       size_t __n = (n);                                                 \
       int __ret;                                                        \
       while ((__ret = syscall (SYS_write, __fd, __buf, __n)) == -1 &&   \
index e06f99d..d872938 100644 (file)
@@ -59,8 +59,8 @@
 #define        _PATH_SHELLS    "/etc/shells"
 #define        _PATH_TTY       "/dev/tty"
 #define        _PATH_UNIX      "/vmunix"
-#define        _PATH_UTMP      "/var/adm/utmp"
-#define        _PATH_UTMP_DB   "/var/adm/utmp.db"
+#define        _PATH_UTMP      "/var/run/utmp"
+#define        _PATH_UTMP_DB   "/var/run/utmp.db"
 #define        _PATH_VI        "/usr/bin/vi"
 #define        _PATH_WTMP      "/var/log/wtmp"
 
index 19c5bb4..9a4f3e0 100644 (file)
@@ -78,7 +78,7 @@ int port_sendn (int ports[], int errors[], unsigned int nent,
   int nevents = 0;
   for (unsigned int i = 0; i < nent; i += PORT_MAX_LIST)
     {
-      int errval = __systemcall (&ret, SYS_port, SYS_SUB_port_sendn |
+      int errval = __systemcall (&ret.rvals, SYS_port, SYS_SUB_port_sendn |
         PORT_SYS_NOPORT, &ports[i], &errors[i], MIN (nent - i, PORT_MAX_LIST),
         events, user);
       if (errval == 0 || errval == ETIME)
@@ -106,7 +106,7 @@ int port_getn (int port, port_event_t list[], unsigned int max,
       unsigned int *nget, struct timespec *timeout)
 {
   rval_t ret;
-  int errval = __systemcall (&ret, SYS_port, SYS_SUB_port_getn, port, list,
+  int errval = __systemcall (&ret.rvals, SYS_port, SYS_SUB_port_getn, port, list,
     max, *nget, timeout);
   if (errval == 0 || errval == ETIME)
     *nget = ret.rval1;
index 58fc48a..1b178ba 100644 (file)
@@ -122,6 +122,7 @@ extern void priv_freeset (priv_set_t *sp);
 extern void priv_union (const priv_set_t *src, priv_set_t *dst);
 extern void priv_intersect (const priv_set_t *src, priv_set_t *dst);
 extern void priv_emptyset (priv_set_t *sp);
+extern void priv_fillset (priv_set_t *sp);
 extern int priv_addset (priv_set_t *sp, const char *priv);
 extern int priv_delset (priv_set_t *sp, const char *priv);
 extern void priv_copyset (const priv_set_t *src, priv_set_t *dst);
index 6359155..cc58b71 100644 (file)
@@ -72,14 +72,14 @@ priv_set_t *priv_str_to_set (const char *buf, const char *sep,
           int negate = *str == '-' || *str == '!';
           if (negate)
             str++;
-          int privnum = priv_getbyname (str);
-          if (privnum == -1)
-            goto inval;
 
+          int res;
           if (negate)
-            priv_delset (set, privnum);
+            res = priv_delset (set, str);
           else
-            priv_addset (set, privnum);
+            res = priv_addset (set, str);
+          if (res == -1)
+            goto inval;
         }
     }
   while ((priv = strtok_r (NULL, sep, &saveptr))) ;
index 49e4156..9385642 100644 (file)
@@ -101,4 +101,47 @@ typedef struct rd_event_msg
          } u;
   } rd_event_msg_t;
 
+typedef enum
+  {
+       RD_RESOLVE_NONE,
+       RD_RESOLVE_STEP,
+       RD_RESOLVE_TARGET,
+       RD_RESOLVE_TARGET_STEP
+  } rd_skip_e;
+
+typedef struct rd_plt_info
+  {
+       rd_skip_e pi_skip_method;
+       long pi_nstep;
+       psaddr_t pi_target;
+       psaddr_t pi_baddr;
+       unsigned int pi_flags;
+  } rd_plt_info_t;
+
+/* pi_flags values.  */
+#define RD_FLG_PI_PLTBOUND     0x01
+
+/* rd_ctl commands.  */
+#define RD_CTL_SET_HELPPATH    0x01
+
+__BEGIN_DECLS
+
+extern void rd_delete (rd_agent_t *);
+extern char * rd_errstr (rd_err_e);
+extern rd_err_e rd_event_addr (rd_agent_t *, rd_event_e, rd_notify_t *);
+extern rd_err_e rd_event_enable (rd_agent_t *, int);
+extern rd_err_e rd_event_getmsg (rd_agent_t *, rd_event_msg_t *);
+extern rd_err_e rd_init (int);
+extern rd_err_e rd_ctl (int, void *);
+extern rd_err_e rd_loadobj_iter (rd_agent_t *, rl_iter_f *, void *);
+extern void rd_log (const int);
+extern rd_agent_t * rd_new (struct ps_prochandle *);
+extern rd_err_e rd_objpad_enable(struct rd_agent *, size_t);
+extern rd_err_e rd_plt_resolution (rd_agent_t *, psaddr_t, lwpid_t, psaddr_t,
+    rd_plt_info_t *);
+extern rd_err_e rd_get_dyns (rd_agent_t *, psaddr_t, void **, size_t *);
+extern rd_err_e rd_reset (struct rd_agent *);
+
+__END_DECLS
+
 #endif /* _RTLD_DB_H */
index 9c3d6f4..277fc3b 100644 (file)
@@ -31,7 +31,7 @@ sendfile64 (int out_fd, int in_fd, off64_t *offset, size_t count)
   sfv.sfv_len = count;
   size_t xferred = 0;
 
-  ssize_t res = sendfilev (out_fd, &sfv, 1, &xferred);
+  ssize_t res = sendfilev64 (out_fd, &sfv, 1, &xferred);
   *offset += xferred;
   return res;
 }
index 259ccbe..1fb5040 100644 (file)
@@ -21,7 +21,7 @@
 #include <sys/socket.h>
 
 extern int _so_setsockopt (int sock, int level, int option_name,
-    void *option_value, socklen_t option_len, int version);
+    const void *option_value, socklen_t option_len, int version);
 
 int
 __setsockopt (fd, level, optname, optval, optlen)
index 4ca84e7..06fbeb9 100644 (file)
@@ -53,7 +53,7 @@ __libc_sigaction (sig, act, oact)
      const struct sigaction *act;
      struct sigaction *oact;
 {
-  int result;
+  int result = -1;
 
   if (sig < 0 || sig >= NSIG)
     {
index fbd692c..98a9712 100644 (file)
@@ -20,6 +20,8 @@
 #include <signal.h>
 #include <sys/procset.h>
 
+extern int sigsendset (procset_t *, int sig);
+
 int sigsend (idtype_t idtype, id_t id, int sig)
 {
   procset_t set;
index 8b7d49d..d6b6fc9 100644 (file)
@@ -64,8 +64,7 @@ typedef struct
          } c_un;
   } Elf64_Cap;
 
-#define EM_AMD64       62
-#define EM_X86_64      EM_AMD64
+#define EM_AMD64       EM_X86_64
 
 #define STV_EXPORTED   4
 #define STV_SINGLETON  5
index eb283a8..bef91b1 100644 (file)
@@ -180,6 +180,7 @@ is_system_labeled   - labelsys:syslabeling  i:          is_system_labeled
 # implement these in helper files
 #
 
+sys_access          - access                i:si        __syscall_access
 sys_allocids        - sidsys:allocids       i:iii       __syscall_allocids
 sys_brk             - brk                   i:p         __syscall_brk
 sys_fcntl           - fcntl                 Ri:iiF      __syscall_fcntl
index 50ee92a..d13d7a6 100644 (file)
@@ -17,7 +17,6 @@
    Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
    02111-1307 USA.  */
 
-#include <inline-syscall.h>
 #include <unistd.h>
 #include <sys/sysconfig.h>
 
index 2b7f4b1..9e7fe9a 100644 (file)
@@ -27,7 +27,6 @@ _ttyname_dev (dev_t rdev, char *buffer, size_t buflen)
   int dostat = 0;
   char *name;
   int save = errno;
-  struct termios term;
 
   if (__xstat64 (_STAT_VER, "/dev/pts", &st) == 0 && S_ISDIR (st.st_mode))
     {
index 39629fe..7f56872 100644 (file)
@@ -20,6 +20,8 @@
 #ifndef _UADMINP_H
 #define _UADMINP_H
 
+#include <sys/types.h>
+
 /* uadmin cmd's.  */
 #define        A_REBOOT        1
 #define        A_SHUTDOWN      2
@@ -38,4 +40,6 @@
 #define        AD_POWEROFF     6
 #define        AD_NOSYNC       7
 
+extern int uadmin (int, int, uintptr_t);
+
 #endif /* _UADMINP_H */
index ac0a744..699c3cc 100644 (file)
@@ -30,4 +30,6 @@ struct ustat
        char f_fpack[6];
   };
 
+extern int ustat (dev_t, struct ustat *);
+
 #endif /* _USTATP_H */
index 078aa80..ff636ea 100644 (file)
@@ -27,7 +27,7 @@
 static __thread char vfs_buf[VFS_LINE_MAX + 2];
 
 
-static inline int vfs_strtok_r (char *str, const char *delim,
+static int vfs_strtok_r (char *str, const char *delim,
       char **saveptr, char **strt)
 {
   int ret = (*strt = strtok_r (str, delim, saveptr)) ? 1 : 0;
@@ -66,7 +66,7 @@ int getvfsent (FILE *fp, struct vfstab *vp)
           !vfs_strtok_r (NULL, _VFS_DELIM, &tokp, &vp->vfs_fstype) ||
           !vfs_strtok_r (NULL, _VFS_DELIM, &tokp, &vp->vfs_fsckpass) ||
           !vfs_strtok_r (NULL, _VFS_DELIM, &tokp, &vp->vfs_automnt) ||
-          !vfs_strtok_r (NULL, _VFS_DELIM, &tokp, vp->vfs_mntopts))
+          !vfs_strtok_r (NULL, _VFS_DELIM, &tokp, &vp->vfs_mntopts))
         return VFS_TOOFEW;
 
       /* If we can still tokenize the line is too long.  */
index 59de472..8fc5725 100644 (file)
 #include <sys/types.h>
 #include <sys/stat.h>
 #include <sys/sysmacros.h>
+#include <inline-syscall.h>
 
 #include <sysdep.h>
-#include <sys/syscall.h>
+#include <syscallP.h>
 #include <bp-checks.h>
 
+DECLARE_INLINE_SYSCALL (int, mknod, const char *, mode_t, dev_t);
+
 /* Create a device file named PATH, with permission and special bits MODE
    and device number DEV (which can be constructed from major and minor
    device numbers with the `makedev' macro above).  */