Update.
authorUlrich Drepper <drepper@redhat.com>
Thu, 26 Feb 1998 17:17:05 +0000 (17:17 +0000)
committerUlrich Drepper <drepper@redhat.com>
Thu, 26 Feb 1998 17:17:05 +0000 (17:17 +0000)
1998-02-24 08:10  H.J. Lu  <hjl@gnu.org>

* sysdeps/unix/sysv/linux/alpha/bits/signum.h (_NSIG): Changed
to 64.

* sysdeps/unix/alpha/sysdep.S (_errno): Add in addition to __errno.

* sysdeps/alpha/s_fabs.S: Added ".set noat"/".set at".
* sysdeps/unix/sysv/linux/alpha/wait4.S: Ditto.

* sysdeps/unix/make-syscalls.sh: Make versioned symbols only
for shared library.

* libc.map (adjtime, __adjtimex, adjtimex): Added for GLIBC_2.1.

* sysdeps/unix/sysv/linux/alpha/Makefile (sysdep_routines):
Added adjtimex and old_adjtimex.

* sysdeps/unix/sysv/linux/alpha/syscalls.list (old_adjtimex):
New.
(osf_settimeofday, osf_getitimer, osf_setitimer, osf_utimes,
osf_getrusage, osf_wait4): Added __xxxx symbol for GLIBC_2.0.

* sysdeps/unix/sysv/linux/alpha/getitimer.S: Make versioned
symbols only for shared library.
* sysdeps/unix/sysv/linux/alpha/getrusage.S: Likewise.
* sysdeps/unix/sysv/linux/alpha/gettimeofday.S: Likewise.
* sysdeps/unix/sysv/linux/alpha/select.S: Likewise.
* sysdeps/unix/sysv/linux/alpha/setitimer.S: Likewise.
* sysdeps/unix/sysv/linux/alpha/settimeofday.S: Likewise.
* sysdeps/unix/sysv/linux/alpha/utimes.S: Likewise.
* sysdeps/unix/sysv/linux/alpha/wait4.S: Likewise.

* sysdeps/unix/sysv/linux/alpha/getitimer.S: Fix ENOSYS branch.
* sysdeps/unix/sysv/linux/alpha/getrusage.S: Likewise.
* sysdeps/unix/sysv/linux/alpha/gettimeofday.S: Likewise.
* sysdeps/unix/sysv/linux/alpha/select.S: Likewise.
* sysdeps/unix/sysv/linux/alpha/setitimer.S: Likewise.
* sysdeps/unix/sysv/linux/alpha/settimeofday.S: Likewise.
* sysdeps/unix/sysv/linux/alpha/utimes.S: Likewise.
* sysdeps/unix/sysv/linux/alpha/wait4.S: Likewise.

* sysdeps/unix/sysv/linux/alpha/wait4.S: Check the correct
rusage pointer.

* sysdeps/unix/sysv/linux/adjtime.c (TIMEVAL, TIMEX, ADJTIMEX):
New macros.
(__adjtime): Use TIMEVAL, TIMEX and ADJTIMEX instead of timeval,
timex and __adjtimex, respectively.

* sysdeps/unix/sysv/linux/alpha/adjtime.c: New.

* sysdeps/unix/sysv/linux/alpha/adjtimex.S: New.

20 files changed:
ChangeLog
libc.map
misc/fstab.h
sysdeps/alpha/s_fabs.S
sysdeps/unix/alpha/sysdep.S
sysdeps/unix/make-syscalls.sh
sysdeps/unix/sysv/linux/adjtime.c
sysdeps/unix/sysv/linux/alpha/Makefile
sysdeps/unix/sysv/linux/alpha/adjtime.c [new file with mode: 0644]
sysdeps/unix/sysv/linux/alpha/adjtimex.S [new file with mode: 0644]
sysdeps/unix/sysv/linux/alpha/bits/signum.h
sysdeps/unix/sysv/linux/alpha/getitimer.S
sysdeps/unix/sysv/linux/alpha/getrusage.S
sysdeps/unix/sysv/linux/alpha/gettimeofday.S
sysdeps/unix/sysv/linux/alpha/select.S
sysdeps/unix/sysv/linux/alpha/setitimer.S
sysdeps/unix/sysv/linux/alpha/settimeofday.S
sysdeps/unix/sysv/linux/alpha/syscalls.list
sysdeps/unix/sysv/linux/alpha/utimes.S
sysdeps/unix/sysv/linux/alpha/wait4.S

index b327254..b362358 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,57 @@
+1998-02-24 08:10  H.J. Lu  <hjl@gnu.org>
+
+       * sysdeps/unix/sysv/linux/alpha/bits/signum.h (_NSIG): Changed
+       to 64.
+
+       * sysdeps/unix/alpha/sysdep.S (_errno): Add in addition to __errno.
+
+       * sysdeps/alpha/s_fabs.S: Added ".set noat"/".set at".
+       * sysdeps/unix/sysv/linux/alpha/wait4.S: Ditto.
+
+       * sysdeps/unix/make-syscalls.sh: Make versioned symbols only
+       for shared library.
+
+       * libc.map (adjtime, __adjtimex, adjtimex): Added for GLIBC_2.1.
+
+       * sysdeps/unix/sysv/linux/alpha/Makefile (sysdep_routines):
+       Added adjtimex and old_adjtimex.
+
+       * sysdeps/unix/sysv/linux/alpha/syscalls.list (old_adjtimex):
+       New.
+       (osf_settimeofday, osf_getitimer, osf_setitimer, osf_utimes,
+       osf_getrusage, osf_wait4): Added __xxxx symbol for GLIBC_2.0.
+
+       * sysdeps/unix/sysv/linux/alpha/getitimer.S: Make versioned
+       symbols only for shared library.
+       * sysdeps/unix/sysv/linux/alpha/getrusage.S: Likewise.
+       * sysdeps/unix/sysv/linux/alpha/gettimeofday.S: Likewise.
+       * sysdeps/unix/sysv/linux/alpha/select.S: Likewise.
+       * sysdeps/unix/sysv/linux/alpha/setitimer.S: Likewise.
+       * sysdeps/unix/sysv/linux/alpha/settimeofday.S: Likewise.
+       * sysdeps/unix/sysv/linux/alpha/utimes.S: Likewise.
+       * sysdeps/unix/sysv/linux/alpha/wait4.S: Likewise.
+
+       * sysdeps/unix/sysv/linux/alpha/getitimer.S: Fix ENOSYS branch.
+       * sysdeps/unix/sysv/linux/alpha/getrusage.S: Likewise.
+       * sysdeps/unix/sysv/linux/alpha/gettimeofday.S: Likewise.
+       * sysdeps/unix/sysv/linux/alpha/select.S: Likewise.
+       * sysdeps/unix/sysv/linux/alpha/setitimer.S: Likewise.
+       * sysdeps/unix/sysv/linux/alpha/settimeofday.S: Likewise.
+       * sysdeps/unix/sysv/linux/alpha/utimes.S: Likewise.
+       * sysdeps/unix/sysv/linux/alpha/wait4.S: Likewise.
+
+       * sysdeps/unix/sysv/linux/alpha/wait4.S: Check the correct
+       rusage pointer.
+
+       * sysdeps/unix/sysv/linux/adjtime.c (TIMEVAL, TIMEX, ADJTIMEX):
+       New macros.
+       (__adjtime): Use TIMEVAL, TIMEX and ADJTIMEX instead of timeval,
+       timex and __adjtimex, respectively.
+
+       * sysdeps/unix/sysv/linux/alpha/adjtime.c: New.
+
+       * sysdeps/unix/sysv/linux/alpha/adjtimex.S: New.
+
 1998-02-25 08:28  H.J. Lu  <hjl@gnu.org>
 
        * math/test-fenv.c (print_rounding): Fix a typo in
index d2e63ec..ce367ac 100644 (file)
--- a/libc.map
+++ b/libc.map
@@ -445,6 +445,7 @@ GLIBC_2.1 {
 
     # Linux/Alpha 64-bit timeval functions.
     __select; select;
+    adjtime; adjtimex;
     __gettimeofday;
 
     # New errlist.
index d2e27d9..274f23a 100644 (file)
 #define        FSTAB_SW        "sw"            /* swap device */
 #define        FSTAB_XX        "xx"            /* ignore totally */
 
-struct fstab {
-       char    *fs_spec;               /* block special device name */
-       char    *fs_file;               /* file system path prefix */
-       char    *fs_vfstype;            /* File system type, ufs, nfs */
-       char    *fs_mntops;             /* Mount options ala -o */
-       char    *fs_type;               /* FSTAB_* from fs_mntops */
-       int     fs_freq;                /* dump frequency, in days */
-       int     fs_passno;              /* pass number on parallel dump */
-};
+struct fstab
+  {
+    char *fs_spec;                     /* block special device name */
+    char *fs_file;                     /* file system path prefix */
+    char *fs_vfstype;                  /* File system type, ufs, nfs */
+    char *fs_mntops;                   /* Mount options ala -o */
+    const char *fs_type;               /* FSTAB_* from fs_mntops */
+    int        fs_freq;                        /* dump frequency, in days */
+    int        fs_passno;                      /* pass number on parallel dump */
+  };
 
 
 __BEGIN_DECLS
index e5992ad..00698d6 100644 (file)
@@ -1,4 +1,4 @@
-/* Copyright (C) 1996, 1997 Free Software Foundation, Inc.
+/* Copyright (C) 1996, 1997, 1998 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by David Mosberger <davidm@azstarnet.com>
 
 
 ENTRY(__fabs)
 #ifdef PROF
+       .set noat
        ldgp    gp, 0(pv)
        lda     AT, _mcount
        jsr     AT, (AT), _mcount
+       .set at
        .prologue 1
 #else
        .prologue 0
index fc5cc04..d79c48a 100644 (file)
@@ -1,4 +1,4 @@
-/* Copyright (C) 1993, 1996 Free Software Foundation, Inc.
+/* Copyright (C) 1993, 1996, 1998 Free Software Foundation, Inc.
    Contributed by Brendan Kehoe (brendan@zen.org).
 
    The GNU C Library is free software; you can redistribute it and/or
@@ -29,6 +29,8 @@ errno:        .space 4
 #endif
        .globl __errno
 __errno = errno
+       .globl _errno
+_errno = errno
 
        .text
        .align 2
index e9d0f50..c7ddb88 100644 (file)
@@ -47,6 +47,13 @@ echo "$calls" | while read file caller syscall nargs strong weak; do
 @@@ SYS_ify ($syscall)
 EOF
 
+  case $weak in
+  *@*)
+    # The versioned symbols are only in the shared library.
+    echo "ifneq (,\$(filter .os,\$(object-suffixes)))"
+    ;;
+  esac
+
   # Make sure only the first syscall rule is used, if multiple dirs
   # define the same syscall.
   echo "ifeq (,\$(filter $file,\$(unix-syscalls)))"
@@ -56,9 +63,24 @@ EOF
   test x$caller = x- || echo "unix-extra-syscalls += $file"
 
   # Emit a compilation rule for this syscall.
-  echo "\
-\$(foreach o,\$(object-suffixes),\$(objpfx)$file\$o): \\
-\$(common-objpfx)s-proto.d
+  case $weak in
+  *@*)
+    # The versioned symbols are only in the shared library.
+    echo "\
+\$(objpfx)${file}.o: \$(common-objpfx)empty.o
+       rm -f \$@
+       ln \$< \$@
+\$(objpfx)${file}.op: \$(common-objpfx)empty.op
+       rm -f \$@
+       ln \$< \$@
+\$(objpfx)${file}.os: \\"
+    ;;
+  *)
+    echo "\
+\$(foreach o,\$(object-suffixes),\$(objpfx)$file\$o): \\"
+    ;;
+  esac
+  echo "\$(common-objpfx)s-proto.d
        (echo '#include <sysdep.h>'; \\
         echo 'PSEUDO ($strong, $syscall, $nargs)'; \\
         echo ' ret'; \\
@@ -109,4 +131,11 @@ EOF
 
   echo endif
 
+  case $weak in
+  *@*)
+    # The versioned symbols are only in the shared library.
+    echo endif
+    ;;
+  esac
+
 done
index 748788c..7e8d90b 100644 (file)
@@ -1,4 +1,4 @@
-/* Copyright (C) 1995, 1996, 1997 Free Software Foundation, Inc.
+/* Copyright (C) 1995, 1996, 1997, 1998 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
 #define modes mode
 #endif
 
-int
-__adjtime (itv, otv)
-     const struct timeval *itv;
-     struct timeval *otv;
+#ifndef TIMEVAL
+#define TIMEVAL timeval
+#endif
+
+#ifndef TIMEX
+#define TIMEX timex
+#endif
+
+#ifndef ADJTIME
+#define ADJTIME __adjtime
+#endif
+
+#ifndef ADJTIMEX
+#define ADJTIMEX(x) __adjtimex (x)
+#endif
+
+#ifndef LINKAGE
+#define LINKAGE
+#endif
+
+LINKAGE int
+ADJTIME (itv, otv)
+     const struct TIMEVAL *itv;
+     struct TIMEVAL *otv;
 {
-  struct timex tntx;
+  struct TIMEX tntx;
 
   if (itv)
     {
-      struct timeval tmp;
+      struct TIMEVAL tmp;
 
       /* We will do some check here. */
       tmp.tv_sec = itv->tv_sec + itv->tv_usec / 1000000L;
@@ -53,7 +73,7 @@ __adjtime (itv, otv)
   else
     tntx.modes = 0;
 
-  if (__adjtimex (&tntx) < 0) return -1;
+  if (ADJTIMEX (&tntx) < 0) return -1;
 
   if (otv)
     {
@@ -71,4 +91,6 @@ __adjtime (itv, otv)
   return 0;
 }
 
+#ifndef ADJTIME
 weak_alias (__adjtime, adjtime)
+#endif
index 48f5562..7821e46 100644 (file)
@@ -7,6 +7,5 @@ sysdep_routines += ieee_get_fp_control ieee_set_fp_control \
 # Support old timeval32 entry points
 sysdep_routines += osf_select osf_gettimeofday osf_settimeofday \
                   osf_getitimer osf_setitimer osf_utimes \
-                  osf_getrusage osf_wait4
-
+                  osf_getrusage osf_wait4 old_adjtimex
 endif
diff --git a/sysdeps/unix/sysv/linux/alpha/adjtime.c b/sysdeps/unix/sysv/linux/alpha/adjtime.c
new file mode 100644 (file)
index 0000000..f7df5fc
--- /dev/null
@@ -0,0 +1,202 @@
+/* Copyright (C) 1998 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
+   modify it under the terms of the GNU Library General Public License as
+   published by the Free Software Foundation; either version 2 of the
+   License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Library General Public License for more details.
+
+   You should have received a copy of the GNU Library General Public
+   License along with the GNU C Library; see the file COPYING.LIB.  If not,
+   write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+   Boston, MA 02111-1307, USA.  */
+
+struct timeval32
+{
+    int tv_sec, tv_usec;
+};
+
+struct timex32 {
+       unsigned int modes;     /* mode selector */
+       long offset;            /* time offset (usec) */
+       long freq;              /* frequency offset (scaled ppm) */
+       long maxerror;          /* maximum error (usec) */
+       long esterror;          /* estimated error (usec) */
+       int status;             /* clock command/status */
+       long constant;          /* pll time constant */
+       long precision;         /* clock precision (usec) (read only) */
+       long tolerance;         /* clock frequency tolerance (ppm)
+                                * (read only)
+                                */
+       struct timeval32 time;  /* (read only) */
+       long tick;              /* (modified) usecs between clock ticks */
+
+       long ppsfreq;           /* pps frequency (scaled ppm) (ro) */
+       long jitter;            /* pps jitter (us) (ro) */
+       int shift;              /* interval duration (s) (shift) (ro) */
+       long stabil;            /* pps stability (scaled ppm) (ro) */
+       long jitcnt;            /* jitter limit exceeded (ro) */
+       long calcnt;            /* calibration intervals (ro) */
+       long errcnt;            /* calibration errors (ro) */
+       long stbcnt;            /* stability limit exceeded (ro) */
+
+       int  :32; int  :32; int  :32; int  :32;
+       int  :32; int  :32; int  :32; int  :32;
+       int  :32; int  :32; int  :32; int  :32;
+};
+
+#define TIMEVAL                timeval32
+#define TIMEX          timex32
+#define ADJTIME                __adjtime_tv32
+#define ADJTIMEX(x)    __adjtimex_tv32 (x)
+#if defined HAVE_ELF && defined PIC && defined DO_VERSIONING
+#define LINKAGE
+#else
+#define LINKAGE                static
+#endif
+
+LINKAGE int ADJTIME (const struct TIMEVAL *itv, struct TIMEVAL *otv);
+extern int ADJTIMEX (struct TIMEX *);
+
+#include <sysdeps/unix/sysv/linux/adjtime.c>
+
+#if defined HAVE_ELF && defined PIC && defined DO_VERSIONING
+symbol_version (__adjtime_tv32, adjtime, GLIBC_2.0);
+#endif
+
+#undef TIMEVAL
+#define TIMEVAL                timeval
+#undef TIMEX
+#define TIMEX          timex
+#undef ADJTIME
+#define ADJTIME                __adjtime_tv64
+#undef ADJTIMEX
+#define ADJTIMEX(x)    __syscall_adjtimex_tv64 (x)
+#undef LINKAGE
+#define LINKAGE                static
+
+LINKAGE int ADJTIME (const struct TIMEVAL *itv, struct TIMEVAL *otv);
+extern int ADJTIMEX (struct TIMEX *);
+
+#include <sysdeps/unix/sysv/linux/adjtime.c>
+static int missing_adjtimex = 0;
+
+int
+__adjtime (itv, otv)
+     const struct timeval *itv;
+     struct timeval *otv;
+{
+  int ret;
+
+  if (!missing_adjtimex)
+    {
+      ret = __adjtime_tv64 (itv, otv);
+      if (ret && errno == ENOSYS)
+       missing_adjtimex = 1;
+    }
+
+  if (missing_adjtimex)
+    {
+      struct timeval32 itv32, otv32;
+
+      itv32.tv_sec = itv->tv_sec;
+      itv32.tv_usec = itv->tv_usec;
+      ret = __adjtime_tv32 (&itv32, &otv32);
+      if (ret == 0)
+       {
+         otv->tv_sec = otv32.tv_sec;
+         otv->tv_usec = otv32.tv_usec;
+       }
+    }
+
+  return ret;
+}
+
+#if defined HAVE_ELF && defined PIC && defined DO_VERSIONING
+default_symbol_version (__adjtime, adjtime, GLIBC_2.1);
+#else
+weak_alias (__adjtime, adjtime);
+#endif
+
+extern int __syscall_adjtimex_tv64 (struct timex *tx);
+
+int
+__adjtimex_tv64 (tx)
+     struct timex *tx;
+{
+  int ret;
+
+  if (!missing_adjtimex)
+   {
+     ret = __syscall_adjtimex_tv64 (tx);
+     if (ret && errno == ENOSYS)
+       missing_adjtimex = 1;
+   }
+
+  if (missing_adjtimex)
+    {
+      struct timex32 tx32;
+
+      tx32.modes = tx->modes;
+      tx32.offset = tx->offset;
+      tx32.freq = tx->freq;
+      tx32.maxerror = tx->maxerror;
+      tx32.esterror = tx->esterror;
+      tx32.status = tx->status;
+      tx32.constant = tx->constant;
+      tx32.precision = tx->precision;
+      tx32.tolerance = tx->tolerance;
+      tx32.time.tv_sec = tx->time.tv_sec;
+      tx32.time.tv_sec = tx->time.tv_usec;
+      tx32.tick = tx->tick;
+      tx32.ppsfreq = tx->ppsfreq;
+      tx32.jitter = tx->jitter;
+      tx32.shift = tx->shift;
+      tx32.stabil = tx->stabil;
+      tx32.jitcnt = tx->jitcnt;
+      tx32.calcnt = tx->calcnt;
+      tx32.errcnt = tx->errcnt;
+      tx32.stbcnt = tx->stbcnt;
+
+      ret = __adjtimex_tv32 (&tx32);
+      if (ret == 0)
+       {
+         tx->modes = tx32.modes;
+         tx->offset = tx32.offset;
+         tx->freq = tx32.freq;
+         tx->maxerror = tx32.maxerror;
+         tx->esterror = tx32.esterror;
+         tx->status = tx32.status;
+         tx->constant = tx32.constant;
+         tx->precision = tx32.precision;
+         tx->tolerance = tx32.tolerance;
+         tx->time.tv_sec = tx32.time.tv_sec;
+         tx->time.tv_usec = tx32.time.tv_sec;
+         tx->tick = tx32.tick;
+         tx->ppsfreq = tx32.ppsfreq;
+         tx->jitter = tx32.jitter;
+         tx->shift = tx32.shift;
+         tx->stabil = tx32.stabil;
+         tx->jitcnt = tx32.jitcnt;
+         tx->calcnt = tx32.calcnt;
+         tx->errcnt = tx32.errcnt;
+         tx->stbcnt = tx32.stbcnt;
+       }
+    }
+
+  return ret;
+}
+
+#if defined HAVE_ELF && defined PIC && defined DO_VERSIONING
+strong_alias (__adjtimex_tv64, __adjtimex_tv64p);
+default_symbol_version (__adjtimex_tv64, __adjtimex, GLIBC_2.1);
+default_symbol_version (__adjtimex_tv64p, adjtimex, GLIBC_2.1);
+#else
+weak_alias (__adjtimex_tv64, __adjtimex);
+weak_alias (__adjtimex_tv64, adjtimex);
+#endif
diff --git a/sysdeps/unix/sysv/linux/alpha/adjtimex.S b/sysdeps/unix/sysv/linux/alpha/adjtimex.S
new file mode 100644 (file)
index 0000000..367b735
--- /dev/null
@@ -0,0 +1,59 @@
+/* Copyright (C) 1998 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
+   modify it under the terms of the GNU Library General Public License as
+   published by the Free Software Foundation; either version 2 of the
+   License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Library General Public License for more details.
+
+   You should have received a copy of the GNU Library General Public
+   License along with the GNU C Library; see the file COPYING.LIB.  If not,
+   write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+   Boston, MA 02111-1307, USA.  */
+
+#include <sysdep.h>
+#define _ERRNO_H        1
+#include <bits/errno.h>
+
+/* The problem here is that initially we made struct timeval compatible with
+   OSF/1, using int32.  But we defined time_t with uint64, and later found
+   that POSIX requires tv_sec to be time_t.
+
+   So now we have to do compatibility stuff.  */
+
+.text
+
+LEAF(__syscall_adjtimex_tv64, 0)
+       ldgp    gp, 0(pv)
+#ifdef PROF
+       .set noat
+       lda     AT, _mcount
+       jsr     AT, (AT), _mcount
+       .set at
+#endif
+       .prologue 1
+
+#ifdef __NR_adjtimex
+       ldi     v0, SYS_ify(adjtimex)
+       callsys
+       bne     a3, $err64
+
+       /* Everything ok.  */
+       ret
+
+       /* If we didn't get ENOSYS, it is a real error.  */
+       .align 3
+$err64:
+#else
+       /* ENOSYS. */
+       ldi     v0, ENOSYS
+#endif
+       lda     pv, __syscall_error
+       jmp     zero, (pv), __syscall_error
+
+END(__syscall_adjtimex_tv64)
index 6b1399e..05ffbae 100644 (file)
@@ -68,6 +68,6 @@
 #define SIGPWR SIGINFO
 #define SIGIOT SIGABRT
 
-#define        _NSIG           32      /* Biggest signal number + 1.  */
+#define        _NSIG           64      /* Biggest signal number + 1.  */
 
 #endif /* <signal.h> included.  */
index 03ae6ea..9ba849f 100644 (file)
 
 .text
 
-LEAF(__getitimer_tv64, 16)
+#if defined HAVE_ELF && defined PIC && defined DO_VERSIONING
+#define GETITIMER      __getitimer_tv64
+#else
+#define GETITIMER      getitimer
+#endif
+
+LEAF(GETITIMER, 16)
        ldgp    gp, 0(pv)
        subq    sp, 16, sp
 #ifdef PROF
@@ -62,7 +68,7 @@ LEAF(__getitimer_tv64, 16)
        /* If we didn't get ENOSYS, it is a real error.  */
        .align 3
 $err64:        cmpeq   v0, ENOSYS, t0
-       bne     t0, $error
+       beq     t0, $error
        stl     t0, __libc_missing_axp_tv64
 
        /* Recover the saved arguments.  */
@@ -94,6 +100,8 @@ $error:
        addq    sp, 16, sp
        jmp     zero, (pv), __syscall_error
 
-END(__getitimer_tv64)
+END(GETITIMER)
 
+#if defined HAVE_ELF && defined PIC && defined DO_VERSIONING
 default_symbol_version (__getitimer_tv64, getitimer, GLIBC_2.1)
+#endif
index d875c83..fbbe6f7 100644 (file)
 
 .text
 
-LEAF(__getrusage_tv64, 16)
+#if defined HAVE_ELF && defined PIC && defined DO_VERSIONING
+#define GETRUSAGE      __getrusage_tv64
+#else
+#define GETRUSAGE      getrusage
+#endif
+
+LEAF(GETRUSAGE, 16)
        ldgp    gp, 0(pv)
        subq    sp, 16, sp
 #ifdef PROF
@@ -62,7 +68,7 @@ LEAF(__getrusage_tv64, 16)
        /* If we didn't get ENOSYS, it is a real error.  */
        .align 3
 $err64:        cmpeq   v0, ENOSYS, t0
-       bne     t0, $error
+       beq     t0, $error
        stl     t0, __libc_missing_axp_tv64
 
        /* Recover the saved arguments.  */
@@ -122,6 +128,8 @@ $error:
        addq    sp, 16, sp
        jmp     zero, (pv), __syscall_error
 
-END(__getrusage_tv64)
+END(GETRUSAGE)
 
+#if defined HAVE_ELF && defined PIC && defined DO_VERSIONING
 default_symbol_version (__getrusage_tv64, getrusage, GLIBC_2.1)
+#endif
index bceeefc..6f7082f 100644 (file)
 
 .text
 
-LEAF(__gettimeofday_tv64, 16)
+#if defined HAVE_ELF && defined PIC && defined DO_VERSIONING
+#define GETTIMEOFDAY   __gettimeofday_tv64
+#else
+#define GETTIMEOFDAY   __gettimeofday
+#endif
+
+LEAF(GETTIMEOFDAY, 16)
        ldgp    gp, 0(pv)
        subq    sp, 16, sp
 #ifdef PROF
@@ -62,7 +68,7 @@ LEAF(__gettimeofday_tv64, 16)
        /* If we didn't get ENOSYS, it is a real error.  */
        .align 3
 $err64:        cmpeq   v0, ENOSYS, t0
-       bne     t0, $error
+       beq     t0, $error
        stl     t0, __libc_missing_axp_tv64
 
        /* Recover the saved arguments.  */
@@ -91,8 +97,9 @@ $error:
        addq    sp, 16, sp
        jmp     zero, (pv), __syscall_error
 
-END(__gettimeofday_tv64)
+END(GETTIMEOFDAY)
 
+#if defined HAVE_ELF && defined PIC && defined DO_VERSIONING
 default_symbol_version (__gettimeofday_tv64, __gettimeofday, GLIBC_2.1)
 
 /* It seems to me to be a misfeature of the assembler that we can only
@@ -100,3 +107,6 @@ default_symbol_version (__gettimeofday_tv64, __gettimeofday, GLIBC_2.1)
    The 'p' is for 'public'.  *Shrug*  */
 strong_alias (__gettimeofday_tv64, __gettimeofday_tv64p)
 default_symbol_version (__gettimeofday_tv64p, gettimeofday, GLIBC_2.1)
+#else
+weak_alias (__gettimeofday, gettimeofday)
+#endif
index 73076b9..c854f7f 100644 (file)
 
 .text
 
-LEAF(__select_tv64, 64)
+#if defined HAVE_ELF && defined PIC && defined DO_VERSIONING
+#define SELECT __select_tv64
+#else
+#define SELECT __select
+#endif
+
+LEAF(SELECT, 64)
        ldgp    gp, 0(pv)
        subq    sp, 64, sp
 #ifdef PROF
@@ -64,7 +70,7 @@ LEAF(__select_tv64, 64)
        /* If we didn't get ENOSYS, it is a real error.  */
        .align 3
 $err64:        cmpeq   v0, ENOSYS, t0
-       bne     t0, $error
+       beq     t0, $error
        stl     t0, __libc_missing_axp_tv64
 
        /* Recover the saved arguments.  */
@@ -105,8 +111,9 @@ $error:
        addq    sp, 64, sp
        jmp     zero, (pv), __syscall_error
 
-END(__select_tv64)
+END(SELECT)
 
+#if defined HAVE_ELF && defined PIC && defined DO_VERSIONING
 default_symbol_version (__select_tv64, __select, GLIBC_2.1)
 
 /* It seems to me to be a misfeature of the assembler that we can only
@@ -114,3 +121,6 @@ default_symbol_version (__select_tv64, __select, GLIBC_2.1)
    The 'p' is for 'public'.  *Shrug*  */
 strong_alias (__select_tv64, __select_tv64p)
 default_symbol_version (__select_tv64p, select, GLIBC_2.1)
+#else
+weak_alias (__select, select)
+#endif
index a2085cc..e57acc2 100644 (file)
 
 .text
 
-LEAF(__setitimer_tv64, 48)
+#if defined HAVE_ELF && defined PIC && defined DO_VERSIONING
+#define SETITIMER      __setitimer_tv64
+#else
+#define SETITIMER      __setitimer
+#endif
+
+LEAF(SETITIMER, 48)
        ldgp    gp, 0(pv)
        subq    sp, 48, sp
 #ifdef PROF
@@ -63,7 +69,7 @@ LEAF(__setitimer_tv64, 48)
        /* If we didn't get ENOSYS, it is a real error.  */
        .align 3
 $err64:        cmpeq   v0, ENOSYS, t0
-       bne     t0, $error
+       beq     t0, $error
        stl     t0, __libc_missing_axp_tv64
 
        /* Recover the saved arguments.  */
@@ -110,8 +116,9 @@ $error:
        addq    sp, 48, sp
        jmp     zero, (pv), __syscall_error
 
-END(__setitimer_tv64)
+END(SETITIMER)
 
+#if defined HAVE_ELF && defined PIC && defined DO_VERSIONING
 default_symbol_version (__setitimer_tv64, __setitimer, GLIBC_2.1)
 
 /* It seems to me to be a misfeature of the assembler that we can only
@@ -119,3 +126,6 @@ default_symbol_version (__setitimer_tv64, __setitimer, GLIBC_2.1)
    The 'p' is for 'public'.  *Shrug*  */
 strong_alias (__setitimer_tv64, __setitimer_tv64p)
 default_symbol_version (__setitimer_tv64p, setitimer, GLIBC_2.1)
+#else
+weak_alias (__setitimer, setitimer)
+#endif
index b730df7..ae129ec 100644 (file)
 
 .text
 
-LEAF(__settimeofday_tv64, 16)
+#if defined HAVE_ELF && defined PIC && defined DO_VERSIONING
+#define SETTIMEOFDAY   __settimeofday_tv64
+#else
+#define SETTIMEOFDAY   __settimeofday
+#endif
+
+LEAF(SETTIMEOFDAY, 16)
        ldgp    gp, 0(pv)
        subq    sp, 16, sp
 #ifdef PROF
@@ -61,7 +67,7 @@ LEAF(__settimeofday_tv64, 16)
        /* If we didn't get ENOSYS, it is a real error.  */
        .align 3
 $err64:        cmpeq   v0, ENOSYS, t0
-       bne     t0, $error
+       beq     t0, $error
        stl     t0, __libc_missing_axp_tv64
 
        /* Recover the saved arguments.  */
@@ -91,8 +97,9 @@ $error:
        addq    sp, 16, sp
        jmp     zero, (pv), __syscall_error
 
-END(__settimeofday_tv64)
+END(SETTIMEOFDAY)
 
+#if defined HAVE_ELF && defined PIC && defined DO_VERSIONING
 default_symbol_version (__settimeofday_tv64, __settimeofday, GLIBC_2.1)
 
 /* It seems to me to be a misfeature of the assembler that we can only
@@ -100,3 +107,6 @@ default_symbol_version (__settimeofday_tv64, __settimeofday, GLIBC_2.1)
    The 'p' is for 'public'.  *Shrug*  */
 strong_alias (__settimeofday_tv64, __settimeofday_tv64p)
 default_symbol_version (__settimeofday_tv64p, settimeofday, GLIBC_2.1)
+#else
+weak_alias (__settimeofday, settimeofday)
+#endif
index 59c0cb8..26d4f15 100644 (file)
@@ -64,9 +64,10 @@ pciconfig_write      EXTRA   pciconfig_write 5       pciconfig_write
 # support old timeval32 entry points
 osf_select     -       osf_select      5       __select_tv32  __select@GLIBC_2.0 select@GLIBC_2.0
 osf_gettimeofday -     osf_gettimeofday 2      __gettimeofday_tv32  __gettimeofday@GLIBC_2.0 gettimeofday@GLIBC_2.0
-osf_settimeofday -     osf_settimeofday 2      __settimeofday_tv32  settimeofday@GLIBC_2.0
-osf_getitimer  -       osf_getitimer   2       __getitimer_tv32  getitimer@GLIBC_2.0
-osf_setitimer  -       osf_setitimer   3       __setitimer_tv32  setitimer@GLIBC_2.0
-osf_utimes     -       osf_utimes      2       __utimes_tv32  utimes@GLIBC_2.0
-osf_getrusage  -       osf_getrusage   2       __getrusage_tv32  getrusage@GLIBC_2.0
-osf_wait4      -       osf_wait4       2       __wait4_tv32  wait4@GLIBC_2.0
+osf_settimeofday -     osf_settimeofday 2      __settimeofday_tv32  __settimeofday@GLIBC_2.0 settimeofday@GLIBC_2.0
+osf_getitimer  -       osf_getitimer   2       __getitimer_tv32  __getitimer@GLIBC_2.0 getitimer@GLIBC_2.0
+osf_setitimer  -       osf_setitimer   3       __setitimer_tv32  __setitimer@GLIBC_2.0 setitimer@GLIBC_2.0
+osf_utimes     -       osf_utimes      2       __utimes_tv32  __utimes@GLIBC_2.0 utimes@GLIBC_2.0
+osf_getrusage  -       osf_getrusage   2       __getrusage_tv32  __getrusage@GLIBC_2.0 getrusage@GLIBC_2.0
+osf_wait4      -       osf_wait4       2       __wait4_tv32  __wait4@GLIBC_2.0 wait4@GLIBC_2.0
+old_adjtimex   -       old_adjtimex    1       __adjtimex_tv32  __adjtimex@GLIBC_2.0 adjtimex@GLIBC_2.0
index 2b4c71e..a1d2b15 100644 (file)
 
 .text
 
-LEAF(__utimes_tv64, 16)
+#if defined HAVE_ELF && defined PIC && defined DO_VERSIONING
+#define UTIMES __utimes_tv64
+#else
+#define UTIMES __utimes
+#endif
+
+LEAF(UTIMES, 16)
        ldgp    gp, 0(pv)
        subq    sp, 16, sp
 #ifdef PROF
@@ -62,7 +68,7 @@ LEAF(__utimes_tv64, 16)
        /* If we didn't get ENOSYS, it is a real error.  */
        .align 3
 $err64:        cmpeq   v0, ENOSYS, t0
-       bne     t0, $error
+       beq     t0, $error
        stl     t0, __libc_missing_axp_tv64
 
        /* Recover the saved arguments.  */
@@ -96,8 +102,9 @@ $error:
        addq    sp, 16, sp
        jmp     zero, (pv), __syscall_error
 
-END(__utimes_tv64)
+END(UTIMES)
 
+#if defined HAVE_ELF && defined PIC && defined DO_VERSIONING
 default_symbol_version (__utimes_tv64, __utimes, GLIBC_2.1)
 
 /* It seems to me to be a misfeature of the assembler that we can only
@@ -105,3 +112,6 @@ default_symbol_version (__utimes_tv64, __utimes, GLIBC_2.1)
    The 'p' is for 'public'.  *Shrug*  */
 strong_alias (__utimes_tv64, __utimes_tv64p)
 default_symbol_version (__utimes_tv64p, utimes, GLIBC_2.1)
+#else
+weak_alias (__utimes, utimes)
+#endif
index 5ab8607..334836f 100644 (file)
 
 .text
 
-LEAF(__wait4_tv64, 32)
+#if defined HAVE_ELF && defined PIC && defined DO_VERSIONING
+#define WAIT4  __wait4_tv64
+#else
+#define WAIT4  __wait4
+#endif
+
+LEAF(WAIT4, 32)
        ldgp    gp, 0(pv)
        subq    sp, 32, sp
 #ifdef PROF
@@ -64,7 +70,7 @@ LEAF(__wait4_tv64, 32)
        /* If we didn't get ENOSYS, it is a real error.  */
        .align 3
 $err64:        cmpeq   v0, ENOSYS, t0
-       bne     t0, $error
+       beq     t0, $error
        stl     t0, __libc_missing_axp_tv64
 
        /* Recover the saved arguments.  */
@@ -79,7 +85,7 @@ $do32:        ldi     v0, SYS_ify(osf_wait4)
        bne     a3, $error
 
        /* Copy back to proper format.  */
-       ldq     a3, 8(sp)
+       ldq     a3, 24(sp)
        beq     a3, 2f
        ldl     t0, 0(a3)               # ru_utime.tv_sec
        ldl     t1, 4(a3)               # ru_utime.tv_usec
@@ -98,6 +104,7 @@ $do32:       ldi     v0, SYS_ify(osf_wait4)
        ldt     $f25, 96(a3)            # ru_msgrcv
        ldt     $f26, 104(a3)           # ru_nsignals
        ldt     $f27, 112(a3)           # ru_nvcsw
+       .set noat
        ldt     $f28, 120(a3)           # ru_nivcsw
        stq     t0, 0(a3)
        stq     t1, 8(a3)
@@ -117,6 +124,7 @@ $do32:      ldi     v0, SYS_ify(osf_wait4)
        stt     $f26, 120(a3)
        stt     $f27, 128(a3)
        stt     $f28, 136(a3)
+       .set at
 
 2:     addq    sp, 32, sp
        ret
@@ -127,8 +135,9 @@ $error:
        addq    sp, 32, sp
        jmp     zero, (pv), __syscall_error
 
-END(__wait4_tv64)
+END(WAIT4)
 
+#if defined HAVE_ELF && defined PIC && defined DO_VERSIONING
 default_symbol_version (__wait4_tv64, __wait4, GLIBC_2.1)
 
 /* It seems to me to be a misfeature of the assembler that we can only
@@ -136,3 +145,6 @@ default_symbol_version (__wait4_tv64, __wait4, GLIBC_2.1)
    The 'p' is for 'public'.  *Shrug*  */
 strong_alias (__wait4_tv64, __wait4_tv64p)
 default_symbol_version (__wait4_tv64p, wait4, GLIBC_2.1)
+#else
+weak_alias (__wait4, wait4)
+#endif