+2012-05-30 Richard Henderson <rth@twiddle.net>
+
+ * sysdeps/unix/sysv/linux/alpha/adjtime.c: Remove __ASSUME_TIMEVAL64.
+ * sysdeps/unix/sysv/linux/alpha/getitimer.S: Remove file.
+ * sysdeps/unix/sysv/linux/alpha/getrusage.S: Remove file.
+ * sysdeps/unix/sysv/linux/alpha/gettimeofday.S: Remove file.
+ * sysdeps/unix/sysv/linux/alpha/select.S: Remove file.
+ * sysdeps/unix/sysv/linux/alpha/setitimer.S: Remove file.
+ * sysdeps/unix/sysv/linux/alpha/settimeofday.S: Remove file.
+ * sysdeps/unix/sysv/linux/alpha/utimes.S: Remove file.
+ * sysdeps/unix/sysv/linux/alpha/wait4.S: Remove file.
+ * sysdeps/unix/sysv/linux/alpha/syscalls.list (getitimer): New.
+ (getrusage, gettimeofday, select, setitimer): New.
+ (settimeofday, utimes, wait4): New.
+ * sysdeps/unix/sysv/linux/alpha/kernel-features.h: Remove
+ __ASSUME_TIMEVAL64.
+ * sysdeps/unix/sysv/linux/alpha/nptl/ld.abilist: Update.
+ * sysdeps/unix/sysv/linux/alpha/nptl/libc.abilist: Update.
+
2012-05-24 Richard Henderson <rth@twiddle.net>
* sysdeps/unix/sysv/linux/alpha/nptl/ld.abilist: New file.
-/* Copyright (C) 1998,2000,2002,2003,2004,2006 Free Software Foundation, Inc.
+/* Copyright (C) 1998-2012 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
#include <shlib-compat.h>
#include <sysdep.h>
#include <sys/time.h>
-#include <kernel-features.h>
-#if !defined __ASSUME_TIMEVAL64 || SHLIB_COMPAT (libc, GLIBC_2_0, GLIBC_2_1)
+
+#if SHLIB_COMPAT (libc, GLIBC_2_0, GLIBC_2_1)
struct timeval32
{
int tv_sec, tv_usec;
#define ADJTIME attribute_compat_text_section __adjtime_tv32
#define ADJTIMEX(x) INLINE_SYSCALL (old_adjtimex, 1, x)
#define ADJTIMEX32(x) INLINE_SYSCALL (old_adjtimex, 1, x)
-#if SHLIB_COMPAT (libc, GLIBC_2_0, GLIBC_2_1)
-#define LINKAGE
-#else
-#define LINKAGE static
-#endif
-
-LINKAGE int ADJTIME (const struct TIMEVAL *itv, struct TIMEVAL *otv);
#include <sysdeps/unix/sysv/linux/adjtime.c>
-#if SHLIB_COMPAT (libc, GLIBC_2_0, GLIBC_2_1)
-int
-attribute_compat_text_section
+int attribute_compat_text_section
__adjtimex_tv32 (struct timex32 *tx) { return ADJTIMEX (tx); }
+
strong_alias (__adjtimex_tv32, __adjtimex_tv32_1);
strong_alias (__adjtimex_tv32, __adjtimex_tv32_2);
compat_symbol (libc, __adjtimex_tv32_1, __adjtimex, GLIBC_2_0);
compat_symbol (libc, __adjtimex_tv32_2, adjtimex, GLIBC_2_0);
compat_symbol (libc, __adjtime_tv32, adjtime, GLIBC_2_0);
-#endif
-#endif /* !__ASSUME_TIMEVAL64 || SHLIB_COMPAT */
+#endif /* SHLIB_COMPAT */
#undef TIMEVAL
-#define TIMEVAL timeval
#undef TIMEX
-#define TIMEX timex
+#undef ADJTIME
#undef ADJTIMEX
+#define TIMEVAL timeval
+#define TIMEX timex
#define ADJTIMEX(x) INLINE_SYSCALL (adjtimex, 1, x)
-#undef LINKAGE
-#undef ADJTIME
-#if !defined __ASSUME_TIMEVAL64
-#define LINKAGE static
-#define ADJTIME __adjtime_tv64
-#endif
-
#include <sysdeps/unix/sysv/linux/adjtime.c>
-#include <stdbool.h>
-
-#if !defined __ASSUME_TIMEVAL64
-static bool missing_adjtimex;
int
-__adjtime (itv, otv)
- const struct timeval *itv;
- struct timeval *otv;
-{
- struct timeval32 itv32, otv32;
- int ret;
-
- switch (missing_adjtimex)
- {
- case false:
- ret = __adjtime_tv64 (itv, otv);
- if (ret && errno == ENOSYS)
- missing_adjtimex = 1;
- else
- break;
-
- /* FALLTHRU */
-
- default:
- 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;
- }
- break;
- }
-
- return ret;
-}
-#endif
-
-versioned_symbol (libc, __adjtime, adjtime, GLIBC_2_1);
-
-int
-__adjtimex_tv64 (struct timex *tx)
-{
-#if defined __ASSUME_TIMEVAL64
- return ADJTIMEX (tx);
-#else
- struct timex32 tx32;
- int ret;
-
- switch (missing_adjtimex)
- {
- case false:
- ret = ADJTIMEX (tx);
- if (ret && errno == ENOSYS)
- missing_adjtimex = 1;
- else
- break;
-
- /* FALLTHRU */
-
- default:
- 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 = ADJTIMEX32 (&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;
- }
- break;
- }
-
- return ret;
-#endif
-}
+__adjtimex_tv64 (struct timex *tx) { return ADJTIMEX (tx); }
strong_alias (__adjtimex_tv64, __adjtimex_internal);
strong_alias (__adjtimex_tv64, __adjtimex_tv64p);
weak_alias (__adjtimex_tv64, ntp_adjtime);
versioned_symbol (libc, __adjtimex_tv64, __adjtimex, GLIBC_2_1);
versioned_symbol (libc, __adjtimex_tv64p, adjtimex, GLIBC_2_1);
+versioned_symbol (libc, __adjtime, adjtime, GLIBC_2_1);
+++ /dev/null
-/* Copyright (C) 1998, 2003, 2006, 2012 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 Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 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
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library. If not, see
- <http://www.gnu.org/licenses/>. */
-
-#include <sysdep.h>
-#define _ERRNO_H 1
-#include <bits/errno.h>
-#include <kernel-features.h>
-
-.text
-
-#if defined PIC && defined DO_VERSIONING
-#define GETITIMER __getitimer_tv64
-#else
-#define GETITIMER getitimer
-#endif
-
-#if defined __ASSUME_TIMEVAL64
-PSEUDO(GETITIMER, getitimer, 2)
- ret
-PSEUDO_END(GETITIMER)
-#else
-/* 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. */
-
-/* The variable is shared between all wrappers around signal handling
- functions which have RT equivalents. */
-.comm __libc_missing_axp_tv64, 4
-
-LEAF(GETITIMER, 16)
- ldgp gp, 0(pv)
- subq sp, 16, sp
-#ifdef PROF
- .set noat
- lda AT, _mcount
- jsr AT, (AT), _mcount
- .set at
-#endif
- .prologue 1
-
- ldl t0, __libc_missing_axp_tv64
-
- /* Save arguments in case we do need to fall back. */
- stq a0, 0(sp)
- stq a1, 8(sp)
-
- bne t0, $do32
-
- ldi v0, SYS_ify(getitimer)
- callsys
- bne a3, $err64
-
- /* Everything ok. */
- addq sp, 16, sp
- ret
-
- /* If we didn't get ENOSYS, it is a real error. */
- .align 3
-$err64: cmpeq v0, ENOSYS, t0
- beq t0, $error
- stl t0, __libc_missing_axp_tv64
-
- /* Recover the saved arguments. */
- ldq a1, 8(sp)
- ldq a0, 0(sp)
-
- .align 3
-$do32: ldi v0, SYS_ify(osf_getitimer)
- callsys
- bne a3, $error
-
- /* Copy back to proper format. */
- ldq a1, 8(sp)
- ldl t0, 0(a1)
- ldl t1, 4(a1)
- ldl t2, 8(a1)
- ldl t3, 12(a1)
- stq t0, 0(a1)
- stq t1, 8(a1)
- stq t2, 16(a1)
- stq t3, 24(a1)
-
- addq sp, 16, sp
- ret
-
- .align 3
-$error:
- addq sp, 16, sp
- SYSCALL_ERROR_HANDLER
-
-END(GETITIMER)
-#endif /* __ASSUME_TIMEVAL64 */
-
-#if defined PIC && defined DO_VERSIONING
-default_symbol_version (__getitimer_tv64, getitimer, GLIBC_2.1)
-#endif
+++ /dev/null
-/* Copyright (C) 1998, 2003, 2006, 2012 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 Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 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
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library. If not, see
- <http://www.gnu.org/licenses/>. */
-
-#include <sysdep.h>
-#define _ERRNO_H 1
-#include <bits/errno.h>
-#include <kernel-features.h>
-
-.text
-
-#if defined PIC && defined DO_VERSIONING
-#define GETRUSAGE __getrusage_tv64
-#else
-#define GETRUSAGE __getrusage
-#endif
-
-#if defined __ASSUME_TIMEVAL64
-PSEUDO(GETRUSAGE, getrusage, 2)
- ret
-PSEUDO_END(GETRUSAGE)
-#else
-/* 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. */
-
-/* The variable is shared between all wrappers around signal handling
- functions which have RT equivalents. */
-.comm __libc_missing_axp_tv64, 4
-
-LEAF(GETRUSAGE, 16)
- ldgp gp, 0(pv)
- subq sp, 16, sp
-#ifdef PROF
- .set noat
- lda AT, _mcount
- jsr AT, (AT), _mcount
- .set at
-#endif
- .prologue 1
-
- ldl t0, __libc_missing_axp_tv64
-
- /* Save arguments in case we do need to fall back. */
- stq a0, 0(sp)
- stq a1, 8(sp)
-
- bne t0, $do32
-
- ldi v0, SYS_ify(getrusage)
- callsys
- bne a3, $err64
-
- /* Everything ok. */
- addq sp, 16, sp
- ret
-
- /* If we didn't get ENOSYS, it is a real error. */
- .align 3
-$err64: cmpeq v0, ENOSYS, t0
- beq t0, $error
- stl t0, __libc_missing_axp_tv64
-
- /* Recover the saved arguments. */
- ldq a1, 8(sp)
- ldq a0, 0(sp)
-
- .align 3
-$do32: ldi v0, SYS_ify(osf_getrusage)
- callsys
- bne a3, $error
-
- /* Copy back to proper format. */
- ldq a1, 8(sp)
- ldl t0, 0(a1) # ru_utime.tv_sec
- ldl t1, 4(a1) # ru_utime.tv_usec
- ldl t2, 8(a1) # ru_stime.tv_sec
- ldl t3, 12(a1) # ru_stime.tv_usec
- ldt $f15, 16(a1) # ru_maxrss
- ldt $f16, 24(a1) # ru_ixrss
- ldt $f17, 32(a1) # ru_idrss
- ldt $f18, 40(a1) # ru_isrss
- ldt $f19, 48(a1) # ru_minflt
- ldt $f20, 56(a1) # ru_majflt
- ldt $f21, 64(a1) # ru_nswap
- ldt $f22, 72(a1) # ru_inblock
- ldt $f23, 80(a1) # ru_oublock
- ldt $f24, 88(a1) # ru_msgsend
- ldt $f25, 96(a1) # ru_msgrcv
- ldt $f26, 104(a1) # ru_nsignals
- ldt $f27, 112(a1) # ru_nvcsw
- .set noat
- ldt $f28, 120(a1) # ru_nivcsw
- .set at
- stq t0, 0(a1)
- stq t1, 8(a1)
- stq t2, 16(a1)
- stq t3, 24(a1)
- stt $f15, 32(a1)
- stt $f16, 40(a1)
- stt $f17, 48(a1)
- stt $f18, 56(a1)
- stt $f19, 64(a1)
- stt $f20, 72(a1)
- stt $f21, 80(a1)
- stt $f22, 88(a1)
- stt $f23, 96(a1)
- stt $f24, 104(a1)
- stt $f25, 112(a1)
- stt $f26, 120(a1)
- stt $f27, 128(a1)
- .set noat
- stt $f28, 136(a1)
- .set at
-
- addq sp, 16, sp
- ret
-
- .align 3
-$error:
- addq sp, 16, sp
- SYSCALL_ERROR_HANDLER
-
-END(GETRUSAGE)
-#endif /* __ASSUME_TIMEVAL64 */
-
-#if defined PIC && defined DO_VERSIONING
-strong_alias(__getrusage_tv64, ____getrusage_tv64)
-default_symbol_version (____getrusage_tv64, __getrusage, GLIBC_2.1)
-default_symbol_version (__getrusage_tv64, getrusage, GLIBC_2.1)
-#else
-weak_alias (__getrusage, getrusage)
-#endif
+++ /dev/null
-/* Copyright (C) 1998, 2002, 2003, 2006, 2012 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 Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 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
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library. If not, see
- <http://www.gnu.org/licenses/>. */
-
-#include <sysdep.h>
-#define _ERRNO_H 1
-#include <bits/errno.h>
-#include <kernel-features.h>
-
-.text
-
-#if defined PIC && defined DO_VERSIONING
-#define GETTIMEOFDAY __gettimeofday_tv64
-#else
-#define GETTIMEOFDAY __gettimeofday
-#endif
-
-#if defined __ASSUME_TIMEVAL64
-PSEUDO(GETTIMEOFDAY, gettimeofday, 2)
- ret
-PSEUDO_END(GETTIMEOFDAY)
-#else
-
-/* 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. */
-
-/* The variable is shared between all wrappers around signal handling
- functions which have RT equivalents. */
-.comm __libc_missing_axp_tv64, 4
-
-LEAF(GETTIMEOFDAY, 16)
- ldgp gp, 0(pv)
- subq sp, 16, sp
-#ifdef PROF
- .set noat
- lda AT, _mcount
- jsr AT, (AT), _mcount
- .set at
-#endif
- .prologue 1
-
- ldl t0, __libc_missing_axp_tv64
-
- /* Save arguments in case we do need to fall back. */
- stq a0, 0(sp)
- stq a1, 8(sp)
-
- bne t0, $do32
-
- ldi v0, SYS_ify(gettimeofday)
- callsys
- bne a3, $err64
-
- /* Everything ok. */
- addq sp, 16, sp
- ret
-
- /* If we didn't get ENOSYS, it is a real error. */
- .align 3
-$err64: cmpeq v0, ENOSYS, t0
- beq t0, $error
- stl t0, __libc_missing_axp_tv64
-
- /* Recover the saved arguments. */
- ldq a1, 8(sp)
- ldq a0, 0(sp)
-
- .align 3
-$do32: ldi v0, SYS_ify(osf_gettimeofday)
- callsys
- bne a3, $error
-
- /* Copy back to proper format. */
- ldq a0, 0(sp)
- beq a0, 2f
- ldl t0, 0(a0)
- ldl t1, 4(a0)
- stq t0, 0(a0)
- stq t1, 8(a0)
-
-2: addq sp, 16, sp
- ret
-
- .align 3
-$error:
- addq sp, 16, sp
- SYSCALL_ERROR_HANDLER
-
-END(GETTIMEOFDAY)
-#endif /* __ASSUME_TIMEVAL64 */
-
-#if 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
- have one version-alias per symbol. So create an alias ourselves.
- 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
-strong_alias(GETTIMEOFDAY, __gettimeofday_internal)
/* Set flags signalling availability of kernel features based on given
kernel version number.
- Copyright (C) 2010 Free Software Foundation, Inc.
+ Copyright (C) 2010-2012 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
#ifndef _KERNEL_FEATURES_H
#define _KERNEL_FEATURES_H 1
-/* alpha switched to a 64-bit timeval sometime before 2.2.0. */
-#if __LINUX_KERNEL_VERSION >= 131584
-# define __ASSUME_TIMEVAL64 1
-#endif
-
/* The tgkill syscall was introduced for alpha 2.6.0-test1 which unfortunately
cannot be distinguished from 2.6.0. */
#if __LINUX_KERNEL_VERSION >= 132609
GLIBC_2.1
GLIBC_2.1 A
__libc_stack_end D 0x8
- __setitimer F
_dl_mcount F
- setitimer F
GLIBC_2.3
GLIBC_2.3 A
__tls_get_addr F
__deregister_frame F
__deregister_frame_info F
__dgettext F
+ __divl F
+ __divlu F
+ __divq F
+ __divqu F
__dup2 F
__environ D 0x8
__errno_location F
__register_frame_info F
__register_frame_info_table F
__register_frame_table F
+ __reml F
+ __remlu F
+ __remq F
+ __remqu F
__res_randomid F
__sbrk F
__sched_get_priority_max F
xencrypt F
xprt_register F
xprt_unregister F
-__divl GLIBC_2.0 g ? D .text 0000000000000060
-__divlu GLIBC_2.0 g ? D .text 0000000000000060
-__divq GLIBC_2.0 g ? D .text 00000000000001c4
-__divqu GLIBC_2.0 g ? D .text 000000000000018c
-__reml GLIBC_2.0 g ? D .text 0000000000000064
-__remlu GLIBC_2.0 g ? D .text 0000000000000064
-__remq GLIBC_2.0 g ? D .text 00000000000001c0
-__remqu GLIBC_2.0 g ? D .text 00000000000001b4
GLIBC_2.1
GLIBC_2.1 A
_IO_2_1_stderr_ D 0xe0
__towctrans_l F
__towlower_l F
__towupper_l F
- __utimes F
- __wait4 F
__wcscasecmp_l F
__wcscoll_l F
__wcsncasecmp_l F
+++ /dev/null
-/* Copyright (C) 1998,2002,2003,2006,2012 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 Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 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
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library. If not, see
- <http://www.gnu.org/licenses/>. */
-
-#include <sysdep-cancel.h>
-#define _ERRNO_H 1
-#include <bits/errno.h>
-#include <kernel-features.h>
-
-.text
-
-#if defined PIC && defined DO_VERSIONING
-#define SELECT __select_tv64
-#else
-#define SELECT __select
-#endif
-
-#if defined __ASSUME_TIMEVAL64
-PSEUDO(SELECT, select, 5)
- ret
-PSEUDO_END(SELECT)
-#else
-/* 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. */
-
-/* The variable is shared between all wrappers around signal handling
- functions which have RT equivalents. */
-.comm __libc_missing_axp_tv64, 4
-
-LEAF(SELECT, 64)
- ldgp gp, 0(pv)
- subq sp, 64, sp
-#ifdef PROF
- .set noat
- lda AT, _mcount
- jsr AT, (AT), _mcount
- .set at
-#endif
- stq ra, 40(sp)
- .mask 0x4000000, 40-64
- .prologue 1
-
-#ifdef CENABLE
- SINGLE_THREAD_P (t1)
-#else
- ldl t0, __libc_missing_axp_tv64
-#endif
-
- /* Save timeout early, since we'll need to recover this after
- the system call. */
- stq a4, 48(sp)
-
-#ifdef CENABLE
- bne t1, $do_cancel
-#endif
-
- bne t0, $do32
-
- /* Save arguments in case we do need to fall back. */
- stq a0, 8(sp)
- stq a1, 16(sp)
- stq a2, 24(sp)
- stq a3, 32(sp)
-
- ldi v0, SYS_ify(select)
- callsys
- bne a3, $err64
-
- /* Everything ok. */
- addq sp, 64, sp
- ret
-
- /* If we didn't get ENOSYS, it is a real error. */
- .align 3
-$err64: cmpeq v0, ENOSYS, t0
- beq t0, $error
- stl t0, __libc_missing_axp_tv64
-
- /* Recover the saved arguments. */
- ldq a4, 48(sp)
- ldq a3, 32(sp)
- ldq a2, 24(sp)
- ldq a1, 16(sp)
- ldq a0, 8(sp)
-
- .align 3
-$do32:
- /* If the timeout argument is present bounce to the smaller fmt. */
- beq a4, 1f
- ldq t0, 0(a4)
- ldq t1, 8(a4)
- stl t0, 0(sp)
- stl t1, 4(sp)
- mov sp, a4
-
-1: ldi v0, SYS_ify(osf_select)
- callsys
- bne a3, $error
-
- /* ... and bounce the remaining timeout back. */
- ldq a4, 48(sp)
- beq a4, 2f
- ldl t0, 0(sp)
- ldl t1, 4(sp)
- stq t0, 0(a4)
- stq t1, 8(a4)
-
-2: addq sp, 64, sp
- ret
-
-#ifdef CENABLE
- .align 3
-$do_cancel:
- /* Save arguments. */
- stq a0, 8(sp)
- stq a1, 16(sp)
- stq a2, 24(sp)
- stq a3, 32(sp)
-
- CENABLE
- mov v0, ra
-
- ldl t0, __libc_missing_axp_tv64
- bne t0, $do_cancel32
-
- /* Recover the saved arguments. */
- ldq a4, 48(sp)
- ldq a3, 32(sp)
- ldq a2, 24(sp)
- ldq a1, 16(sp)
- ldq a0, 8(sp)
-
- ldi v0, SYS_ify(select)
- callsys
-
- mov ra, a0
- bne a3, $cancel_err64
-
- stq v0, 8(sp)
- CDISABLE
- ldq v0, 8(sp)
- ldq ra, 40(sp)
-
- /* Everything ok. */
- addq sp, 64, sp
- ret
-
- /* If we didn't get ENOSYS, it is a real error. */
- .align 3
-$cancel_err64:
- cmpeq v0, ENOSYS, t0
- beq t0, $cancel_error
- stl t0, __libc_missing_axp_tv64
-
- /* Recover the saved arguments. */
- .align 3
-$do_cancel32:
- ldq a4, 48(sp)
- ldq a3, 32(sp)
- ldq a2, 24(sp)
- ldq a1, 16(sp)
- ldq a0, 8(sp)
-
- /* If the timeout argument is present bounce to the smaller fmt. */
- beq a4, 1f
- ldq t0, 0(a4)
- ldq t1, 8(a4)
- stl t0, 0(sp)
- stl t1, 4(sp)
- mov sp, a4
-
-1: ldi v0, SYS_ify(osf_select)
- callsys
-
- mov ra, a0
- bne a3, $cancel_error
-
- /* ... and bounce the remaining timeout back. */
- ldq a4, 48(sp)
- beq a4, 2f
- ldl t0, 0(sp)
- ldl t1, 4(sp)
- stq t0, 0(a4)
- stq t1, 8(a4)
-
-2: stq v0, 8(sp)
- CDISABLE
- ldq v0, 8(sp)
- ldq ra, 40(sp)
-
- addq sp, 64, sp
- ret
-
- .align 3
-$cancel_error:
- stq v0, 8(sp)
- CDISABLE
- ldq v0, 8(sp)
- ldq ra, 40(sp)
-#endif
-
- .align 3
-$error:
- addq sp, 64, sp
- SYSCALL_ERROR_HANDLER
-
-END(SELECT)
-#endif /* __ASSUME_TIMEVAL64 */
-
-#if 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
- have one version-alias per symbol. So create an alias ourselves.
- The 'p' is for 'public'. *Shrug* */
-strong_alias (__select_tv64, __select_tv64p)
-default_symbol_version (__select_tv64p, select, GLIBC_2.1)
-libc_hidden_ver (__select_tv64, __select)
-strong_alias (__select_tv64, __libc_select)
-#else
-strong_alias (__select, __libc_select)
-weak_alias (__select, select)
-libc_hidden_def (__select)
-#endif
+++ /dev/null
-/* Copyright (C) 1998, 2003, 2006, 2012 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 Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 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
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library. If not, see
- <http://www.gnu.org/licenses/>. */
-
-#include <sysdep.h>
-#define _ERRNO_H 1
-#include <bits/errno.h>
-#include <kernel-features.h>
-
-.text
-
-#if defined PIC && defined DO_VERSIONING
-#define SETITIMER __setitimer_tv64
-#else
-#define SETITIMER __setitimer
-#endif
-
-#if defined __ASSUME_TIMEVAL64
-PSEUDO(SETITIMER, setitimer, 3)
- ret
-PSEUDO_END(SETITIMER)
-#else
-/* 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. */
-
-/* The variable is shared between all wrappers around signal handling
- functions which have RT equivalents. */
-.comm __libc_missing_axp_tv64, 4
-
-LEAF(SETITIMER, 48)
- ldgp gp, 0(pv)
- subq sp, 48, sp
-#ifdef PROF
- .set noat
- lda AT, _mcount
- jsr AT, (AT), _mcount
- .set at
-#endif
- .prologue 1
-
- ldl t0, __libc_missing_axp_tv64
-
- /* Save arguments in case we do need to fall back. */
- stq a0, 0(sp)
- stq a1, 8(sp)
- stq a2, 16(sp)
-
- bne t0, $do32
-
- ldi v0, SYS_ify(setitimer)
- callsys
- bne a3, $err64
-
- /* Everything ok. */
- addq sp, 48, sp
- ret
-
- /* If we didn't get ENOSYS, it is a real error. */
- .align 3
-$err64: cmpeq v0, ENOSYS, t0
- beq t0, $error
- stl t0, __libc_missing_axp_tv64
-
- /* Recover the saved arguments. */
- ldq a2, 16(sp)
- ldq a1, 8(sp)
- ldq a0, 0(sp)
-
- .align 3
-$do32:
- /* Conditionally bounce new value down. */
- beq a1, 1f
- ldq t0, 0(a1)
- ldq t1, 8(a1)
- ldq t2, 16(a1)
- ldq t3, 24(a1)
- stl t0, 32(sp)
- stl t1, 36(sp)
- stl t2, 40(sp)
- stl t3, 44(sp)
- addq sp, 32, a1
-
-1: ldi v0, SYS_ify(osf_setitimer)
- callsys
- bne a3, $error
-
- /* Conditionaly bounce old value up. */
- ldq a2, 16(sp)
- bne a2, 2f
- ldl t0, 0(a2)
- ldl t1, 4(a2)
- ldl t2, 8(a2)
- ldl t3, 12(a2)
- stq t0, 0(a2)
- stq t1, 8(a2)
- stq t2, 48(a2)
- stq t3, 24(a2)
-
-2: addq sp, 48, sp
- ret
-
- .align 3
-$error:
- addq sp, 48, sp
- SYSCALL_ERROR_HANDLER
-
-END(SETITIMER)
-#endif /* __ASSUME_TIMEVAL64 */
-
-#if 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
- have one version-alias per symbol. So create an alias ourselves.
- 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
+++ /dev/null
-/* Copyright (C) 1998, 2003, 2006, 2012 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 Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 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
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library. If not, see
- <http://www.gnu.org/licenses/>. */
-
-#include <sysdep.h>
-#define _ERRNO_H 1
-#include <bits/errno.h>
-#include <kernel-features.h>
-
-.text
-
-#if defined PIC && defined DO_VERSIONING
-#define SETTIMEOFDAY __settimeofday_tv64
-#else
-#define SETTIMEOFDAY __settimeofday
-#endif
-
-#if defined __ASSUME_TIMEVAL64
-PSEUDO(SETTIMEOFDAY, settimeofday, 2)
- ret
-PSEUDO_END(SETTIMEOFDAY)
-#else
-/* 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. */
-
-/* The variable is shared between all wrappers around signal handling
- functions which have RT equivalents. */
-.comm __libc_missing_axp_tv64, 4
-
-LEAF(SETTIMEOFDAY, 16)
- ldgp gp, 0(pv)
- subq sp, 16, sp
-#ifdef PROF
- .set noat
- lda AT, _mcount
- jsr AT, (AT), _mcount
- .set at
-#endif
- .prologue 1
-
- ldl t0, __libc_missing_axp_tv64
- bne t0, $do32
-
- /* Save arguments in case we do need to fall back. */
- stq a0, 0(sp)
- stq a1, 8(sp)
-
- ldi v0, SYS_ify(settimeofday)
- callsys
- bne a3, $err64
-
- /* Everything ok. */
- addq sp, 16, sp
- ret
-
- /* If we didn't get ENOSYS, it is a real error. */
- .align 3
-$err64: cmpeq v0, ENOSYS, t0
- beq t0, $error
- stl t0, __libc_missing_axp_tv64
-
- /* Recover the saved arguments. */
- ldq a1, 8(sp)
- ldq a0, 0(sp)
-
- .align 3
-$do32:
- /* Conditionally bounce the timeval down. */
- beq a0, 1f
- ldq t0, 0(a0)
- ldq t1, 8(a0)
- stl t0, 0(sp)
- stl t1, 4(sp)
- mov sp, a0
-
-1: ldi v0, SYS_ify(osf_settimeofday)
- callsys
- bne a3, $error
-
- addq sp, 16, sp
- ret
-
- .align 3
-$error:
- addq sp, 16, sp
- SYSCALL_ERROR_HANDLER
-
-END(SETTIMEOFDAY)
-#endif /* __ASSUME_TIMEVAL64 */
-
-#if 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
- have one version-alias per symbol. So create an alias ourselves.
- 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
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_wait4 - osf_wait4 4 __wait4_tv32 wait4@GLIBC_2.0
+
+# support new timeval64 entry points
+select - select C:5 __GI___select select@@GLIBC_2.1 __select@@GLIBC_2.1
+gettimeofday - gettimeofday 2 __GI___gettimeofday gettimeofday@@GLIBC_2.1 __gettimeofday@@GLIBC_2.1
+settimeofday - settimeofday 2 __settimeofday settimeofday@@GLIBC_2.1
+getitimer - getitimer 2 __getitimer getitimer@@GLIBC_2.1
+setitimer - setitimer 3 __setitimer setitimer@@GLIBC_2.1
+utimes - utimes 2 __utimes utimes@@GLIBC_2.1
+getrusage - getrusage 2 __getrusage getrusage@@GLIBC_2.1
+wait4 - wait4 4 __wait4 wait4@@GLIBC_2.1
# avoid 64-bit aliases on 32-bit statfs syscalls
fstatfs - fstatfs i:ip __fstatfs fstatfs
+++ /dev/null
-/* Copyright (C) 1998, 2003, 2006, 2012 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 Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 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
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library. If not, see
- <http://www.gnu.org/licenses/>. */
-
-#include <sysdep.h>
-#define _ERRNO_H 1
-#include <bits/errno.h>
-#include <kernel-features.h>
-
-.text
-
-#if defined PIC && defined DO_VERSIONING
-#define UTIMES __utimes_tv64
-#else
-#define UTIMES __utimes
-#endif
-
-#if defined __ASSUME_TIMEVAL64
-PSEUDO(UTIMES, utimes, 2)
- ret
-PSEUDO_END(UTIMES)
-#else
-/* 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. */
-
-/* The variable is shared between all wrappers around signal handling
- functions which have RT equivalents. */
-.comm __libc_missing_axp_tv64, 4
-
-LEAF(UTIMES, 16)
- ldgp gp, 0(pv)
- subq sp, 16, sp
-#ifdef PROF
- .set noat
- lda AT, _mcount
- jsr AT, (AT), _mcount
- .set at
-#endif
- .prologue 1
-
- ldl t0, __libc_missing_axp_tv64
-
- /* Save arguments in case we do need to fall back. */
- stq a0, 0(sp)
- stq a1, 8(sp)
-
- bne t0, $do32
-
- ldi v0, SYS_ify(utimes)
- callsys
- bne a3, $err64
-
- /* Everything ok. */
- addq sp, 16, sp
- ret
-
- /* If we didn't get ENOSYS, it is a real error. */
- .align 3
-$err64: cmpeq v0, ENOSYS, t0
- beq t0, $error
- stl t0, __libc_missing_axp_tv64
-
- /* Recover the saved arguments. */
- ldq a1, 8(sp)
- ldq a0, 0(sp)
-
- .align 3
-$do32:
- /* Conditionally bounce values down. */
- beq a1, 1f
- ldq t0, 0(a1)
- ldq t1, 8(a1)
- ldq t2, 16(a1)
- ldq t3, 24(a1)
- stl t0, 0(sp)
- stl t1, 4(sp)
- stl t2, 8(sp)
- stl t3, 12(sp)
- mov sp, a1
-
-1: ldi v0, SYS_ify(osf_utimes)
- callsys
- bne a3, $error
-
- addq sp, 16, sp
- ret
-
- .align 3
-$error:
- addq sp, 16, sp
- SYSCALL_ERROR_HANDLER
-
-END(UTIMES)
-#endif /* __ASSUME_TIMEVAL64 */
-
-#if 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
- have one version-alias per symbol. So create an alias ourselves.
- 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
+++ /dev/null
-/* Copyright (C) 1998, 2003, 2006, 2012 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 Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 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
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library. If not, see
- <http://www.gnu.org/licenses/>. */
-
-#include <sysdep.h>
-#define _ERRNO_H 1
-#include <bits/errno.h>
-#include <kernel-features.h>
-
-.text
-
-#if defined PIC && defined DO_VERSIONING
-#define WAIT4 __wait4_tv64
-#else
-#define WAIT4 __wait4
-#endif
-
-#if defined __ASSUME_TIMEVAL64
-PSEUDO(WAIT4, wait4, 4)
- ret
-PSEUDO_END(WAIT4)
-#else
-/* 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. */
-
-/* The variable is shared between all wrappers around signal handling
- functions which have RT equivalents. */
-.comm __libc_missing_axp_tv64, 4
-
-LEAF(WAIT4, 32)
- ldgp gp, 0(pv)
- subq sp, 32, sp
-#ifdef PROF
- .set noat
- lda AT, _mcount
- jsr AT, (AT), _mcount
- .set at
-#endif
- .prologue 1
-
- ldl t0, __libc_missing_axp_tv64
-
- /* Save arguments in case we do need to fall back. */
- stq a0, 0(sp)
- stq a1, 8(sp)
- stq a2, 16(sp)
- stq a3, 24(sp)
-
- bne t0, $do32
-
- ldi v0, SYS_ify(wait4)
- callsys
- bne a3, $err64
-
- /* Everything ok. */
- addq sp, 32, sp
- ret
-
- /* If we didn't get ENOSYS, it is a real error. */
- .align 3
-$err64: cmpeq v0, ENOSYS, t0
- beq t0, $error
- stl t0, __libc_missing_axp_tv64
-
- /* Recover the saved arguments. */
- ldq a3, 24(sp)
- ldq a2, 16(sp)
- ldq a1, 8(sp)
- ldq a0, 0(sp)
-
- .align 3
-$do32: ldi v0, SYS_ify(osf_wait4)
- callsys
- bne a3, $error
-
- /* Copy back to proper format. */
- ldq a3, 24(sp)
- beq a3, 2f
- ldl t0, 0(a3) # ru_utime.tv_sec
- ldl t1, 4(a3) # ru_utime.tv_usec
- ldl t2, 8(a3) # ru_stime.tv_sec
- ldl t3, 12(a3) # ru_stime.tv_usec
- ldt $f15, 16(a3) # ru_maxrss
- ldt $f16, 24(a3) # ru_ixrss
- ldt $f17, 32(a3) # ru_idrss
- ldt $f18, 40(a3) # ru_isrss
- ldt $f19, 48(a3) # ru_minflt
- ldt $f20, 56(a3) # ru_majflt
- ldt $f21, 64(a3) # ru_nswap
- ldt $f22, 72(a3) # ru_inblock
- ldt $f23, 80(a3) # ru_oublock
- ldt $f24, 88(a3) # ru_msgsend
- 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)
- stq t2, 16(a3)
- stq t3, 24(a3)
- stt $f15, 32(a3)
- stt $f16, 40(a3)
- stt $f17, 48(a3)
- stt $f18, 56(a3)
- stt $f19, 64(a3)
- stt $f20, 72(a3)
- stt $f21, 80(a3)
- stt $f22, 88(a3)
- stt $f23, 96(a3)
- stt $f24, 104(a3)
- stt $f25, 112(a3)
- stt $f26, 120(a3)
- stt $f27, 128(a3)
- stt $f28, 136(a3)
- .set at
-
-2: addq sp, 32, sp
- ret
-
- .align 3
-$error:
- addq sp, 32, sp
- SYSCALL_ERROR_HANDLER
-
-END(WAIT4)
-#endif /* __ASSUME_TIMEVAL64 */
-
-#if 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
- have one version-alias per symbol. So create an alias ourselves.
- 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