2016-01-07 08:51:53 +00:00
|
|
|
#!/bin/sh
|
1996-01-18 10:00:52 +00:00
|
|
|
|
1997-02-13 05:10:35 +00:00
|
|
|
# Usage: make-syscalls.sh ../sysdeps/unix/common
|
1996-01-18 10:00:52 +00:00
|
|
|
# Expects $sysdirs in environment.
|
|
|
|
|
* sysdeps/generic/bp-checks.h: New file.
* sysdeps/generic/bp-thunks.h: Replace generic thunk definitions
with list of #include files.
* sysdeps/unix/make-syscalls.sh: Handle new arg signature
keyletters a, b, B, f, n, N, P, v, V. Fixup some indentation.
Don't generate BP thunk if `V' appears in signature.
Generate thunks with complete bounds checks.
* sysdeps/unix/syscalls.list: Refine signatures using new keyletters.
* sysdeps/unix/inet/syscalls.list: Likewise.
* sysdeps/unix/mman/syscalls.list: Likewise.
* sysdeps/unix/sysv/linux/syscalls.list: Likewise.
* sysdeps/unix/sysv/linux/ia64/syscalls.list: Likewise.
* sysdeps/unix/sysv/linux/mips/syscalls.list: Likewise.
* sysdeps/unix/sysv/linux/powerpc/syscalls.list: Likewise.
2000-07-05 Greg McGary <greg@mcgary.org>
* sysdeps/generic/bp-checks.h: New file.
* sysdeps/generic/bp-thunks.h: Replace generic thunk definitions
with list of #include files.
* sysdeps/unix/make-syscalls.sh: Handle new arg signature
keyletters a, b, B, f, n, N, P, v, V. Fixup some indentation.
Don't generate BP thunk if `V' appears in signature.
Generate thunks with complete bounds checks.
* sysdeps/unix/syscalls.list: Refine signatures using new keyletters.
* sysdeps/unix/inet/syscalls.list: Likewise.
* sysdeps/unix/mman/syscalls.list: Likewise.
* sysdeps/unix/sysv/linux/syscalls.list: Likewise.
* sysdeps/unix/sysv/linux/ia64/syscalls.list: Likewise.
* sysdeps/unix/sysv/linux/mips/syscalls.list: Likewise.
* sysdeps/unix/sysv/linux/powerpc/syscalls.list: Likewise.
2000-07-06 00:48:39 +00:00
|
|
|
##############################################################################
|
2012-11-20 18:54:47 +00:00
|
|
|
#
|
|
|
|
# This script is used to process the syscall data encoded in the various
|
|
|
|
# syscalls.list files to produce thin assembly syscall wrappers around the
|
2019-02-01 03:45:10 +00:00
|
|
|
# appropriate OS syscall. See syscall-template.S for more details on the
|
2012-11-20 18:54:47 +00:00
|
|
|
# actual wrapper.
|
|
|
|
#
|
|
|
|
# Syscall Signature Prefixes:
|
|
|
|
#
|
|
|
|
# E: errno and return value are not set by the call
|
|
|
|
# V: errno is not set, but errno or zero (success) is returned from the call
|
|
|
|
#
|
|
|
|
# Syscall Signature Key Letters:
|
* sysdeps/generic/bp-checks.h: New file.
* sysdeps/generic/bp-thunks.h: Replace generic thunk definitions
with list of #include files.
* sysdeps/unix/make-syscalls.sh: Handle new arg signature
keyletters a, b, B, f, n, N, P, v, V. Fixup some indentation.
Don't generate BP thunk if `V' appears in signature.
Generate thunks with complete bounds checks.
* sysdeps/unix/syscalls.list: Refine signatures using new keyletters.
* sysdeps/unix/inet/syscalls.list: Likewise.
* sysdeps/unix/mman/syscalls.list: Likewise.
* sysdeps/unix/sysv/linux/syscalls.list: Likewise.
* sysdeps/unix/sysv/linux/ia64/syscalls.list: Likewise.
* sysdeps/unix/sysv/linux/mips/syscalls.list: Likewise.
* sysdeps/unix/sysv/linux/powerpc/syscalls.list: Likewise.
2000-07-05 Greg McGary <greg@mcgary.org>
* sysdeps/generic/bp-checks.h: New file.
* sysdeps/generic/bp-thunks.h: Replace generic thunk definitions
with list of #include files.
* sysdeps/unix/make-syscalls.sh: Handle new arg signature
keyletters a, b, B, f, n, N, P, v, V. Fixup some indentation.
Don't generate BP thunk if `V' appears in signature.
Generate thunks with complete bounds checks.
* sysdeps/unix/syscalls.list: Refine signatures using new keyletters.
* sysdeps/unix/inet/syscalls.list: Likewise.
* sysdeps/unix/mman/syscalls.list: Likewise.
* sysdeps/unix/sysv/linux/syscalls.list: Likewise.
* sysdeps/unix/sysv/linux/ia64/syscalls.list: Likewise.
* sysdeps/unix/sysv/linux/mips/syscalls.list: Likewise.
* sysdeps/unix/sysv/linux/powerpc/syscalls.list: Likewise.
2000-07-06 00:48:39 +00:00
|
|
|
#
|
|
|
|
# a: unchecked address (e.g., 1st arg to mmap)
|
2000-07-17 22:28:59 +00:00
|
|
|
# b: non-NULL buffer (e.g., 2nd arg to read; return value from mmap)
|
* sysdeps/generic/bp-checks.h: New file.
* sysdeps/generic/bp-thunks.h: Replace generic thunk definitions
with list of #include files.
* sysdeps/unix/make-syscalls.sh: Handle new arg signature
keyletters a, b, B, f, n, N, P, v, V. Fixup some indentation.
Don't generate BP thunk if `V' appears in signature.
Generate thunks with complete bounds checks.
* sysdeps/unix/syscalls.list: Refine signatures using new keyletters.
* sysdeps/unix/inet/syscalls.list: Likewise.
* sysdeps/unix/mman/syscalls.list: Likewise.
* sysdeps/unix/sysv/linux/syscalls.list: Likewise.
* sysdeps/unix/sysv/linux/ia64/syscalls.list: Likewise.
* sysdeps/unix/sysv/linux/mips/syscalls.list: Likewise.
* sysdeps/unix/sysv/linux/powerpc/syscalls.list: Likewise.
2000-07-05 Greg McGary <greg@mcgary.org>
* sysdeps/generic/bp-checks.h: New file.
* sysdeps/generic/bp-thunks.h: Replace generic thunk definitions
with list of #include files.
* sysdeps/unix/make-syscalls.sh: Handle new arg signature
keyletters a, b, B, f, n, N, P, v, V. Fixup some indentation.
Don't generate BP thunk if `V' appears in signature.
Generate thunks with complete bounds checks.
* sysdeps/unix/syscalls.list: Refine signatures using new keyletters.
* sysdeps/unix/inet/syscalls.list: Likewise.
* sysdeps/unix/mman/syscalls.list: Likewise.
* sysdeps/unix/sysv/linux/syscalls.list: Likewise.
* sysdeps/unix/sysv/linux/ia64/syscalls.list: Likewise.
* sysdeps/unix/sysv/linux/mips/syscalls.list: Likewise.
* sysdeps/unix/sysv/linux/powerpc/syscalls.list: Likewise.
2000-07-06 00:48:39 +00:00
|
|
|
# B: optionally-NULL buffer (e.g., 4th arg to getsockopt)
|
|
|
|
# f: buffer of 2 ints (e.g., 4th arg to socketpair)
|
2000-07-17 22:28:59 +00:00
|
|
|
# F: 3rd arg to fcntl
|
* sysdeps/generic/bp-checks.h: New file.
* sysdeps/generic/bp-thunks.h: Replace generic thunk definitions
with list of #include files.
* sysdeps/unix/make-syscalls.sh: Handle new arg signature
keyletters a, b, B, f, n, N, P, v, V. Fixup some indentation.
Don't generate BP thunk if `V' appears in signature.
Generate thunks with complete bounds checks.
* sysdeps/unix/syscalls.list: Refine signatures using new keyletters.
* sysdeps/unix/inet/syscalls.list: Likewise.
* sysdeps/unix/mman/syscalls.list: Likewise.
* sysdeps/unix/sysv/linux/syscalls.list: Likewise.
* sysdeps/unix/sysv/linux/ia64/syscalls.list: Likewise.
* sysdeps/unix/sysv/linux/mips/syscalls.list: Likewise.
* sysdeps/unix/sysv/linux/powerpc/syscalls.list: Likewise.
2000-07-05 Greg McGary <greg@mcgary.org>
* sysdeps/generic/bp-checks.h: New file.
* sysdeps/generic/bp-thunks.h: Replace generic thunk definitions
with list of #include files.
* sysdeps/unix/make-syscalls.sh: Handle new arg signature
keyletters a, b, B, f, n, N, P, v, V. Fixup some indentation.
Don't generate BP thunk if `V' appears in signature.
Generate thunks with complete bounds checks.
* sysdeps/unix/syscalls.list: Refine signatures using new keyletters.
* sysdeps/unix/inet/syscalls.list: Likewise.
* sysdeps/unix/mman/syscalls.list: Likewise.
* sysdeps/unix/sysv/linux/syscalls.list: Likewise.
* sysdeps/unix/sysv/linux/ia64/syscalls.list: Likewise.
* sysdeps/unix/sysv/linux/mips/syscalls.list: Likewise.
* sysdeps/unix/sysv/linux/powerpc/syscalls.list: Likewise.
2000-07-06 00:48:39 +00:00
|
|
|
# i: scalar (any signedness & size: int, long, long long, enum, whatever)
|
2000-07-17 22:28:59 +00:00
|
|
|
# I: 3rd arg to ioctl
|
* sysdeps/generic/bp-checks.h: New file.
* sysdeps/generic/bp-thunks.h: Replace generic thunk definitions
with list of #include files.
* sysdeps/unix/make-syscalls.sh: Handle new arg signature
keyletters a, b, B, f, n, N, P, v, V. Fixup some indentation.
Don't generate BP thunk if `V' appears in signature.
Generate thunks with complete bounds checks.
* sysdeps/unix/syscalls.list: Refine signatures using new keyletters.
* sysdeps/unix/inet/syscalls.list: Likewise.
* sysdeps/unix/mman/syscalls.list: Likewise.
* sysdeps/unix/sysv/linux/syscalls.list: Likewise.
* sysdeps/unix/sysv/linux/ia64/syscalls.list: Likewise.
* sysdeps/unix/sysv/linux/mips/syscalls.list: Likewise.
* sysdeps/unix/sysv/linux/powerpc/syscalls.list: Likewise.
2000-07-05 Greg McGary <greg@mcgary.org>
* sysdeps/generic/bp-checks.h: New file.
* sysdeps/generic/bp-thunks.h: Replace generic thunk definitions
with list of #include files.
* sysdeps/unix/make-syscalls.sh: Handle new arg signature
keyletters a, b, B, f, n, N, P, v, V. Fixup some indentation.
Don't generate BP thunk if `V' appears in signature.
Generate thunks with complete bounds checks.
* sysdeps/unix/syscalls.list: Refine signatures using new keyletters.
* sysdeps/unix/inet/syscalls.list: Likewise.
* sysdeps/unix/mman/syscalls.list: Likewise.
* sysdeps/unix/sysv/linux/syscalls.list: Likewise.
* sysdeps/unix/sysv/linux/ia64/syscalls.list: Likewise.
* sysdeps/unix/sysv/linux/mips/syscalls.list: Likewise.
* sysdeps/unix/sysv/linux/powerpc/syscalls.list: Likewise.
2000-07-06 00:48:39 +00:00
|
|
|
# n: scalar buffer length (e.g., 3rd arg to read)
|
|
|
|
# N: pointer to value/return scalar buffer length (e.g., 6th arg to recvfrom)
|
2000-07-17 22:28:59 +00:00
|
|
|
# p: non-NULL pointer to typed object (e.g., any non-void* arg)
|
|
|
|
# P: optionally-NULL pointer to typed object (e.g., 2nd argument to gettimeofday)
|
|
|
|
# s: non-NULL string (e.g., 1st arg to open)
|
|
|
|
# S: optionally-NULL string (e.g., 1st arg to acct)
|
* sysdeps/generic/bp-checks.h: New file.
* sysdeps/generic/bp-thunks.h: Replace generic thunk definitions
with list of #include files.
* sysdeps/unix/make-syscalls.sh: Handle new arg signature
keyletters a, b, B, f, n, N, P, v, V. Fixup some indentation.
Don't generate BP thunk if `V' appears in signature.
Generate thunks with complete bounds checks.
* sysdeps/unix/syscalls.list: Refine signatures using new keyletters.
* sysdeps/unix/inet/syscalls.list: Likewise.
* sysdeps/unix/mman/syscalls.list: Likewise.
* sysdeps/unix/sysv/linux/syscalls.list: Likewise.
* sysdeps/unix/sysv/linux/ia64/syscalls.list: Likewise.
* sysdeps/unix/sysv/linux/mips/syscalls.list: Likewise.
* sysdeps/unix/sysv/linux/powerpc/syscalls.list: Likewise.
2000-07-05 Greg McGary <greg@mcgary.org>
* sysdeps/generic/bp-checks.h: New file.
* sysdeps/generic/bp-thunks.h: Replace generic thunk definitions
with list of #include files.
* sysdeps/unix/make-syscalls.sh: Handle new arg signature
keyletters a, b, B, f, n, N, P, v, V. Fixup some indentation.
Don't generate BP thunk if `V' appears in signature.
Generate thunks with complete bounds checks.
* sysdeps/unix/syscalls.list: Refine signatures using new keyletters.
* sysdeps/unix/inet/syscalls.list: Likewise.
* sysdeps/unix/mman/syscalls.list: Likewise.
* sysdeps/unix/sysv/linux/syscalls.list: Likewise.
* sysdeps/unix/sysv/linux/ia64/syscalls.list: Likewise.
* sysdeps/unix/sysv/linux/mips/syscalls.list: Likewise.
* sysdeps/unix/sysv/linux/powerpc/syscalls.list: Likewise.
2000-07-06 00:48:39 +00:00
|
|
|
# v: vararg scalar (e.g., optional 3rd arg to open)
|
2000-09-08 08:41:45 +00:00
|
|
|
# V: byte-per-page vector (3rd arg to mincore)
|
2000-07-17 22:28:59 +00:00
|
|
|
# W: wait status, optionally-NULL pointer to int (e.g., 2nd arg of wait4)
|
2012-11-20 18:54:47 +00:00
|
|
|
#
|
* sysdeps/generic/bp-checks.h: New file.
* sysdeps/generic/bp-thunks.h: Replace generic thunk definitions
with list of #include files.
* sysdeps/unix/make-syscalls.sh: Handle new arg signature
keyletters a, b, B, f, n, N, P, v, V. Fixup some indentation.
Don't generate BP thunk if `V' appears in signature.
Generate thunks with complete bounds checks.
* sysdeps/unix/syscalls.list: Refine signatures using new keyletters.
* sysdeps/unix/inet/syscalls.list: Likewise.
* sysdeps/unix/mman/syscalls.list: Likewise.
* sysdeps/unix/sysv/linux/syscalls.list: Likewise.
* sysdeps/unix/sysv/linux/ia64/syscalls.list: Likewise.
* sysdeps/unix/sysv/linux/mips/syscalls.list: Likewise.
* sysdeps/unix/sysv/linux/powerpc/syscalls.list: Likewise.
2000-07-05 Greg McGary <greg@mcgary.org>
* sysdeps/generic/bp-checks.h: New file.
* sysdeps/generic/bp-thunks.h: Replace generic thunk definitions
with list of #include files.
* sysdeps/unix/make-syscalls.sh: Handle new arg signature
keyletters a, b, B, f, n, N, P, v, V. Fixup some indentation.
Don't generate BP thunk if `V' appears in signature.
Generate thunks with complete bounds checks.
* sysdeps/unix/syscalls.list: Refine signatures using new keyletters.
* sysdeps/unix/inet/syscalls.list: Likewise.
* sysdeps/unix/mman/syscalls.list: Likewise.
* sysdeps/unix/sysv/linux/syscalls.list: Likewise.
* sysdeps/unix/sysv/linux/ia64/syscalls.list: Likewise.
* sysdeps/unix/sysv/linux/mips/syscalls.list: Likewise.
* sysdeps/unix/sysv/linux/powerpc/syscalls.list: Likewise.
2000-07-06 00:48:39 +00:00
|
|
|
|
|
|
|
##############################################################################
|
|
|
|
|
1996-01-18 10:00:52 +00:00
|
|
|
thisdir=$1; shift
|
|
|
|
|
2000-06-13 07:33:12 +00:00
|
|
|
echo ''
|
|
|
|
echo \#### DIRECTORY = $thisdir
|
1996-01-18 10:00:52 +00:00
|
|
|
# Check each sysdep dir with higher priority than this one,
|
|
|
|
# and remove from $calls all the functions found in other dirs.
|
2000-06-13 07:33:12 +00:00
|
|
|
# Punt when we reach the directory defining these syscalls.
|
|
|
|
sysdirs=`for dir in $sysdirs; do
|
|
|
|
test $dir = $thisdir && break; echo $dir; done`
|
|
|
|
echo \#### SYSDIRS = $sysdirs
|
1996-01-18 10:00:52 +00:00
|
|
|
|
2000-06-13 07:33:12 +00:00
|
|
|
# Get the list of system calls for this directory.
|
|
|
|
calls=`sed 's/#.*$//
|
|
|
|
/^[ ]*$/d' $thisdir/syscalls.list`
|
1996-01-18 10:00:52 +00:00
|
|
|
|
2000-06-13 07:33:12 +00:00
|
|
|
calls=`echo "$calls" |
|
|
|
|
while read file caller rest; do
|
1996-01-18 10:00:52 +00:00
|
|
|
# Remove each syscall that is implemented by a file in $dir.
|
|
|
|
# If a syscall specified a "caller", then only compile that syscall
|
|
|
|
# if the caller function is also implemented in this directory.
|
2000-06-13 07:33:12 +00:00
|
|
|
srcfile=-;
|
|
|
|
for dir in $sysdirs; do
|
|
|
|
{ test -f $dir/$file.c && srcfile=$dir/$file.c; } ||
|
|
|
|
{ test -f $dir/$file.S && srcfile=$dir/$file.S; } ||
|
|
|
|
{ test x$caller != x- &&
|
|
|
|
{ { test -f $dir/$caller.c && srcfile=$dir/$caller.c; } ||
|
2012-05-22 04:59:29 +00:00
|
|
|
{ test -f $dir/$caller.S && srcfile=$dir/$caller.S; }; }; } && break;
|
2000-06-13 07:33:12 +00:00
|
|
|
done;
|
|
|
|
echo $file $srcfile $caller $rest;
|
|
|
|
done`
|
1996-01-18 10:00:52 +00:00
|
|
|
|
|
|
|
# Any calls left?
|
|
|
|
test -n "$calls" || exit 0
|
|
|
|
|
2012-08-01 17:25:11 +00:00
|
|
|
# This uses variables $weak, $strong, and $any_versioned.
|
2012-05-22 23:00:50 +00:00
|
|
|
emit_weak_aliases()
|
|
|
|
{
|
|
|
|
# A shortcoming in the current gas is that it will only allow one
|
|
|
|
# version-alias per symbol. So we create new strong aliases as needed.
|
|
|
|
vcount=""
|
|
|
|
|
2012-08-01 17:25:11 +00:00
|
|
|
# We use the <shlib-compat.h> macros to generate the versioned aliases
|
|
|
|
# so that the version sets can be mapped to the configuration's
|
Make obsolete syscall wrappers into compat symbols (bug 18472).
Various Linux kernel syscalls have become obsolete over time.
Specifically, the following are obsolete in all kernel versions
supported by glibc, are not present for architectures more recently
added to the kernel, and as such, the wrapper functions for them
should be compat symbols, not in static libc and not available for new
links with shared libc.
* bdflush: in Linux 2.6, does nothing if present.
* create_module get_kernel_syms query_module: Linux 2.4 module
interface, syscalls not present in Linux 2.6.
* uselib: part of the mechanism for loading a.out shared libraries,
irrelevant with ELF.
This patch adds support for syscalls.list to list syscall aliases of
the form NAME@VERSION:OBSOLETED, with SHLIB_COMPAT conditionals being
generated for such aliases. Those five syscalls are then made into
compat symbols (obsoleted in glibc 2.23, so future ports won't have
these symbols at all), with the header <sys/kdaemon.h> declaring
bdflush being removed. When we move to 3.2 as minimum kernel version,
the same can be done for nfsservctl (removed in Linux 3.1) as well.
Tested for x86_64 and x86 (testsuite, as well as checking that the
symbols in question indeed become compat symbols, that they are indeed
omitted from static libc, and that the generated SHLIB_COMPAT
conditionals look right).
[BZ #18472]
* sysdeps/unix/Makefile ($(objpfx)stub-syscalls.c): Handle entries
for the form NAME@VERSION:OBSOLETED and generate SHLIB_COMPAT
conditionals for them.
* sysdeps/unix/make-syscalls.sh (emit_weak_aliases): Likewise.
* sysdeps/unix/sysv/linux/sys/kdaemon.h: Remove file.
* sysdeps/unix/sysv/linux/Makefile (sysdep_headers): Remove
sys/kdaemon.h.
* sysdeps/unix/sysv/linux/syscalls.list (bdflush): Make into
compat-only syscall, obsoleted in glibc 2.23.
(create_module): Likewise.
(get_kernel_syms): Likewise.
(query_module): Likewise.
(uselib): Likewise.
* manual/sysinfo.texi (System Parameters): Do not mention bdflush.
2015-12-14 22:52:15 +00:00
|
|
|
# minimum version set as per shlib-versions DEFAULT lines. If an
|
|
|
|
# entry point is specified in the form NAME@VERSION:OBSOLETED, a
|
|
|
|
# SHLIB_COMPAT conditional is generated.
|
2012-08-01 17:25:11 +00:00
|
|
|
if [ $any_versioned = t ]; then
|
|
|
|
echo " echo '#include <shlib-compat.h>'; \\"
|
|
|
|
fi
|
|
|
|
|
2012-05-22 23:00:50 +00:00
|
|
|
for name in $weak; do
|
|
|
|
case $name in
|
|
|
|
*@@*)
|
|
|
|
base=`echo $name | sed 's/@@.*//'`
|
2012-08-01 17:25:11 +00:00
|
|
|
ver=`echo $name | sed 's/.*@@//;s/\./_/g'`
|
2014-11-24 09:33:45 +00:00
|
|
|
echo " echo '#if IS_IN (libc)'; \\"
|
2012-05-22 23:00:50 +00:00
|
|
|
if test -z "$vcount" ; then
|
|
|
|
source=$strong
|
|
|
|
vcount=1
|
|
|
|
else
|
|
|
|
source="${strong}_${vcount}"
|
|
|
|
vcount=`expr $vcount + 1`
|
|
|
|
echo " echo 'strong_alias ($strong, $source)'; \\"
|
|
|
|
fi
|
2012-08-01 17:25:11 +00:00
|
|
|
echo " echo 'versioned_symbol (libc, $source, $base, $ver)'; \\"
|
2012-05-30 18:05:13 +00:00
|
|
|
echo " echo '#else'; \\"
|
Make llseek a compat symbol (bug 18471).
The llseek function name is an obsolete, Linux-specific, unprototyped
name for lseek64 with a link-time warning. This patch completes the
obsoletion of this function name by making it into a compat symbol,
not available for newly linked programs and not included in the ABI
for new ports.
When a compat symbol is defined in syscalls.list, the code for that
function is not built at all for static linking unless some non-compat
symbol for that function is also defined with an explicit symbol
version, so an explicit symbol version for lseek64 is added to the
MIPS n32 syscalls.list. The case in make-syscalls.sh that handles
such explicit non-compat symbol versions then needs to be changed to
use weak_alias instead of strong_alias when the syscall is built
outside of libc, to avoid linknamespace failures from a strong lseek64
symbol in static libpthread.
The x32 llseek.S was as far as I could tell already unused (nothing
builds an llseek.* source file, at least since the lseek / lseek64 /
llseek consolidation), so is removed in this patch as well.
Tested for x86_64 and x86, and with build-many-glibcs.py.
[BZ #18471]
* sysdeps/unix/make-syscalls.sh (emit_weak_aliases): Use weak
aliases for non-libc case of versioned symbols.
* sysdeps/unix/sysv/linux/lseek64.c: Include <shlib-compat.h>.
(llseek): Define as compat symbol if
[SHLIB_COMPAT (libc, GLIBC_2_0, GLIBC_2_28)], not as weak alias
with link warning.
* sysdeps/unix/sysv/linux/mips/mips64/n32/syscalls.list (llseek):
Make into a compat symbol, disabled for minimum symbol version
GLIBC_2.28 and later.
* sysdeps/unix/sysv/linux/x86_64/x32/llseek.S: Remove file.
2018-05-22 15:44:01 +00:00
|
|
|
echo " echo 'weak_alias ($strong, $base)'; \\"
|
2012-05-30 18:05:13 +00:00
|
|
|
echo " echo '#endif'; \\"
|
2012-05-22 23:00:50 +00:00
|
|
|
;;
|
|
|
|
*@*)
|
|
|
|
base=`echo $name | sed 's/@.*//'`
|
2012-08-01 17:25:11 +00:00
|
|
|
ver=`echo $name | sed 's/.*@//;s/\./_/g'`
|
Make obsolete syscall wrappers into compat symbols (bug 18472).
Various Linux kernel syscalls have become obsolete over time.
Specifically, the following are obsolete in all kernel versions
supported by glibc, are not present for architectures more recently
added to the kernel, and as such, the wrapper functions for them
should be compat symbols, not in static libc and not available for new
links with shared libc.
* bdflush: in Linux 2.6, does nothing if present.
* create_module get_kernel_syms query_module: Linux 2.4 module
interface, syscalls not present in Linux 2.6.
* uselib: part of the mechanism for loading a.out shared libraries,
irrelevant with ELF.
This patch adds support for syscalls.list to list syscall aliases of
the form NAME@VERSION:OBSOLETED, with SHLIB_COMPAT conditionals being
generated for such aliases. Those five syscalls are then made into
compat symbols (obsoleted in glibc 2.23, so future ports won't have
these symbols at all), with the header <sys/kdaemon.h> declaring
bdflush being removed. When we move to 3.2 as minimum kernel version,
the same can be done for nfsservctl (removed in Linux 3.1) as well.
Tested for x86_64 and x86 (testsuite, as well as checking that the
symbols in question indeed become compat symbols, that they are indeed
omitted from static libc, and that the generated SHLIB_COMPAT
conditionals look right).
[BZ #18472]
* sysdeps/unix/Makefile ($(objpfx)stub-syscalls.c): Handle entries
for the form NAME@VERSION:OBSOLETED and generate SHLIB_COMPAT
conditionals for them.
* sysdeps/unix/make-syscalls.sh (emit_weak_aliases): Likewise.
* sysdeps/unix/sysv/linux/sys/kdaemon.h: Remove file.
* sysdeps/unix/sysv/linux/Makefile (sysdep_headers): Remove
sys/kdaemon.h.
* sysdeps/unix/sysv/linux/syscalls.list (bdflush): Make into
compat-only syscall, obsoleted in glibc 2.23.
(create_module): Likewise.
(get_kernel_syms): Likewise.
(query_module): Likewise.
(uselib): Likewise.
* manual/sysinfo.texi (System Parameters): Do not mention bdflush.
2015-12-14 22:52:15 +00:00
|
|
|
case $ver in
|
|
|
|
*:*)
|
|
|
|
compat_ver=${ver#*:}
|
|
|
|
ver=${ver%%:*}
|
|
|
|
compat_cond=" && SHLIB_COMPAT (libc, $ver, $compat_ver)"
|
|
|
|
;;
|
|
|
|
*)
|
|
|
|
compat_cond=
|
|
|
|
;;
|
|
|
|
esac
|
|
|
|
echo " echo '#if defined SHARED && IS_IN (libc)$compat_cond'; \\"
|
2012-05-22 23:00:50 +00:00
|
|
|
if test -z "$vcount" ; then
|
|
|
|
source=$strong
|
|
|
|
vcount=1
|
|
|
|
else
|
|
|
|
source="${strong}_${vcount}"
|
|
|
|
vcount=`expr $vcount + 1`
|
|
|
|
echo " echo 'strong_alias ($strong, $source)'; \\"
|
|
|
|
fi
|
2012-08-01 17:25:11 +00:00
|
|
|
echo " echo 'compat_symbol (libc, $source, $base, $ver)'; \\"
|
2012-05-30 18:05:13 +00:00
|
|
|
echo " echo '#endif'; \\"
|
2012-05-22 23:00:50 +00:00
|
|
|
;;
|
|
|
|
!*)
|
|
|
|
name=`echo $name | sed 's/.//'`
|
|
|
|
echo " echo 'strong_alias ($strong, $name)'; \\"
|
2015-06-17 20:17:49 +00:00
|
|
|
echo " echo 'hidden_def ($name)'; \\"
|
2012-05-22 23:00:50 +00:00
|
|
|
;;
|
|
|
|
*)
|
|
|
|
echo " echo 'weak_alias ($strong, $name)'; \\"
|
2015-06-17 20:17:49 +00:00
|
|
|
echo " echo 'hidden_weak ($name)'; \\"
|
2012-05-22 23:00:50 +00:00
|
|
|
;;
|
|
|
|
esac
|
|
|
|
done
|
|
|
|
}
|
|
|
|
|
|
|
|
|
1996-01-18 10:00:52 +00:00
|
|
|
# Emit rules to compile the syscalls remaining in $calls.
|
* sysdeps/generic/bp-checks.h: New file.
* sysdeps/generic/bp-thunks.h: Replace generic thunk definitions
with list of #include files.
* sysdeps/unix/make-syscalls.sh: Handle new arg signature
keyletters a, b, B, f, n, N, P, v, V. Fixup some indentation.
Don't generate BP thunk if `V' appears in signature.
Generate thunks with complete bounds checks.
* sysdeps/unix/syscalls.list: Refine signatures using new keyletters.
* sysdeps/unix/inet/syscalls.list: Likewise.
* sysdeps/unix/mman/syscalls.list: Likewise.
* sysdeps/unix/sysv/linux/syscalls.list: Likewise.
* sysdeps/unix/sysv/linux/ia64/syscalls.list: Likewise.
* sysdeps/unix/sysv/linux/mips/syscalls.list: Likewise.
* sysdeps/unix/sysv/linux/powerpc/syscalls.list: Likewise.
2000-07-05 Greg McGary <greg@mcgary.org>
* sysdeps/generic/bp-checks.h: New file.
* sysdeps/generic/bp-thunks.h: Replace generic thunk definitions
with list of #include files.
* sysdeps/unix/make-syscalls.sh: Handle new arg signature
keyletters a, b, B, f, n, N, P, v, V. Fixup some indentation.
Don't generate BP thunk if `V' appears in signature.
Generate thunks with complete bounds checks.
* sysdeps/unix/syscalls.list: Refine signatures using new keyletters.
* sysdeps/unix/inet/syscalls.list: Likewise.
* sysdeps/unix/mman/syscalls.list: Likewise.
* sysdeps/unix/sysv/linux/syscalls.list: Likewise.
* sysdeps/unix/sysv/linux/ia64/syscalls.list: Likewise.
* sysdeps/unix/sysv/linux/mips/syscalls.list: Likewise.
* sysdeps/unix/sysv/linux/powerpc/syscalls.list: Likewise.
2000-07-06 00:48:39 +00:00
|
|
|
echo "$calls" |
|
|
|
|
while read file srcfile caller syscall args strong weak; do
|
2000-06-13 07:33:12 +00:00
|
|
|
|
2012-05-22 23:00:50 +00:00
|
|
|
vdso_syscall=
|
|
|
|
case x"$syscall" in
|
|
|
|
*:*@*)
|
|
|
|
vdso_syscall="${syscall#*:}"
|
|
|
|
syscall="${syscall%:*}"
|
|
|
|
;;
|
|
|
|
esac
|
|
|
|
|
2002-08-05 06:58:03 +00:00
|
|
|
case x"$syscall" in
|
|
|
|
x-) callnum=_ ;;
|
|
|
|
*)
|
* sysdeps/generic/bp-checks.h: New file.
* sysdeps/generic/bp-thunks.h: Replace generic thunk definitions
with list of #include files.
* sysdeps/unix/make-syscalls.sh: Handle new arg signature
keyletters a, b, B, f, n, N, P, v, V. Fixup some indentation.
Don't generate BP thunk if `V' appears in signature.
Generate thunks with complete bounds checks.
* sysdeps/unix/syscalls.list: Refine signatures using new keyletters.
* sysdeps/unix/inet/syscalls.list: Likewise.
* sysdeps/unix/mman/syscalls.list: Likewise.
* sysdeps/unix/sysv/linux/syscalls.list: Likewise.
* sysdeps/unix/sysv/linux/ia64/syscalls.list: Likewise.
* sysdeps/unix/sysv/linux/mips/syscalls.list: Likewise.
* sysdeps/unix/sysv/linux/powerpc/syscalls.list: Likewise.
2000-07-05 Greg McGary <greg@mcgary.org>
* sysdeps/generic/bp-checks.h: New file.
* sysdeps/generic/bp-thunks.h: Replace generic thunk definitions
with list of #include files.
* sysdeps/unix/make-syscalls.sh: Handle new arg signature
keyletters a, b, B, f, n, N, P, v, V. Fixup some indentation.
Don't generate BP thunk if `V' appears in signature.
Generate thunks with complete bounds checks.
* sysdeps/unix/syscalls.list: Refine signatures using new keyletters.
* sysdeps/unix/inet/syscalls.list: Likewise.
* sysdeps/unix/mman/syscalls.list: Likewise.
* sysdeps/unix/sysv/linux/syscalls.list: Likewise.
* sysdeps/unix/sysv/linux/ia64/syscalls.list: Likewise.
* sysdeps/unix/sysv/linux/mips/syscalls.list: Likewise.
* sysdeps/unix/sysv/linux/powerpc/syscalls.list: Likewise.
2000-07-06 00:48:39 +00:00
|
|
|
# Figure out if $syscall is defined with a number in syscall.h.
|
|
|
|
callnum=-
|
|
|
|
eval `{ echo "#include <sysdep.h>";
|
2000-06-13 07:33:12 +00:00
|
|
|
echo "callnum=SYS_ify ($syscall)"; } |
|
2001-09-12 22:20:11 +00:00
|
|
|
$asm_CPP -D__OPTIMIZE__ - |
|
|
|
|
sed -n -e "/^callnum=.*$syscall/d" \
|
|
|
|
-e "/^\(callnum=\)[ ]*\(.*\)/s//\1'\2'/p"`
|
2002-08-05 06:58:03 +00:00
|
|
|
;;
|
|
|
|
esac
|
2000-06-13 07:33:12 +00:00
|
|
|
|
2009-08-24 00:43:21 +00:00
|
|
|
noerrno=0
|
|
|
|
errval=0
|
Update.
* sysdeps/generic/sysdep-cancel.h: New file.
* sysdeps/unix/make-syscalls.sh: Handle C at start of args as
cancelable syscall.
* sysdeps/unix/inet/syscalls.list (accept, connect, recv, recvfrom,
recvmsg, send, sendmsg, sendto): Make cancelable.
* sysdeps/unix/mman/syscalls.list (msync): Likewise.
* sysdeps/unix/sysv/linux/alpha/syscalls.list (llseek, pread,
pwrite, accept, connect, recv, recvfrom, recvmsg, send, sendmsg,
sendto, osf_select): Likewise.
* sysdeps/unix/sysv/linux/hppa/syscalls.list (accept, connect, recv,
recvfrom, recvmsg, send, sendmsg, sendto): Likewise.
* sysdeps/unix/sysv/linux/ia64/syscalls.list (llseek, pread,
pwrite, accept, connect, recv, recvfrom, recvmsg, send, sendmsg,
sendto): Likewise.
* sysdeps/unix/sysv/linux/mips/syscalls.list (accept, connect, recv,
recvfrom, recvmsg, send, sendmsg, sendto): Likewise.
* sysdeps/unix/sysv/linux/s390/s390-64/syscalls.list (llseek, pread,
pwrite, accept, connect, recv, recvfrom, recvmsg, send, sendmsg,
sendto): Likewise.
* sysdeps/unix/sysv/linux/sparc/sparc64/syscalls.list (llseek, pread,
pwrite, accept, connect, recv, recvfrom, recvmsg, send, sendmsg,
sendto, select): Likewise.
* sysdeps/unix/sysv/linux/x86_64/syscalls.list (llseek, pread,
pwrite, accept, connect, recvfrom, recvmsg, sendmsg, sendto):
Likewise.
* sysdeps/unix/sysv/linux/syscalls.list (creat, nanosleep, pause,
select, fcntl): Likewise.
* sysdeps/unix/sysv/syscalls.list (pause, poll): Likewise.
* sysdeps/unix/syscalls.list (close, fcntl, fsync, lseek, open,
read, readv, select, sigsuspend, write, writev): Likewise.
2002-12-14 Jakub Jelinek <jakub@redhat.com>
2002-12-15 01:00:22 +00:00
|
|
|
case $args in
|
2009-08-24 00:43:21 +00:00
|
|
|
E*) noerrno=1; args=`echo $args | sed 's/E:\?//'`;;
|
|
|
|
V*) errval=1; args=`echo $args | sed 's/V:\?//'`;;
|
Update.
* sysdeps/generic/sysdep-cancel.h: New file.
* sysdeps/unix/make-syscalls.sh: Handle C at start of args as
cancelable syscall.
* sysdeps/unix/inet/syscalls.list (accept, connect, recv, recvfrom,
recvmsg, send, sendmsg, sendto): Make cancelable.
* sysdeps/unix/mman/syscalls.list (msync): Likewise.
* sysdeps/unix/sysv/linux/alpha/syscalls.list (llseek, pread,
pwrite, accept, connect, recv, recvfrom, recvmsg, send, sendmsg,
sendto, osf_select): Likewise.
* sysdeps/unix/sysv/linux/hppa/syscalls.list (accept, connect, recv,
recvfrom, recvmsg, send, sendmsg, sendto): Likewise.
* sysdeps/unix/sysv/linux/ia64/syscalls.list (llseek, pread,
pwrite, accept, connect, recv, recvfrom, recvmsg, send, sendmsg,
sendto): Likewise.
* sysdeps/unix/sysv/linux/mips/syscalls.list (accept, connect, recv,
recvfrom, recvmsg, send, sendmsg, sendto): Likewise.
* sysdeps/unix/sysv/linux/s390/s390-64/syscalls.list (llseek, pread,
pwrite, accept, connect, recv, recvfrom, recvmsg, send, sendmsg,
sendto): Likewise.
* sysdeps/unix/sysv/linux/sparc/sparc64/syscalls.list (llseek, pread,
pwrite, accept, connect, recv, recvfrom, recvmsg, send, sendmsg,
sendto, select): Likewise.
* sysdeps/unix/sysv/linux/x86_64/syscalls.list (llseek, pread,
pwrite, accept, connect, recvfrom, recvmsg, sendmsg, sendto):
Likewise.
* sysdeps/unix/sysv/linux/syscalls.list (creat, nanosleep, pause,
select, fcntl): Likewise.
* sysdeps/unix/sysv/syscalls.list (pause, poll): Likewise.
* sysdeps/unix/syscalls.list (close, fcntl, fsync, lseek, open,
read, readv, select, sigsuspend, write, writev): Likewise.
2002-12-14 Jakub Jelinek <jakub@redhat.com>
2002-12-15 01:00:22 +00:00
|
|
|
esac
|
|
|
|
|
2000-06-13 07:33:12 +00:00
|
|
|
# Derive the number of arguments from the argument signature
|
|
|
|
case $args in
|
|
|
|
[0-9]) nargs=$args;;
|
|
|
|
?:) nargs=0;;
|
|
|
|
?:?) nargs=1;;
|
|
|
|
?:??) nargs=2;;
|
|
|
|
?:???) nargs=3;;
|
|
|
|
?:????) nargs=4;;
|
|
|
|
?:?????) nargs=5;;
|
|
|
|
?:??????) nargs=6;;
|
2000-06-30 01:11:14 +00:00
|
|
|
?:???????) nargs=7;;
|
|
|
|
?:????????) nargs=8;;
|
|
|
|
?:?????????) nargs=9;;
|
2000-06-13 07:33:12 +00:00
|
|
|
esac
|
1996-01-18 10:00:52 +00:00
|
|
|
|
2000-06-13 07:33:12 +00:00
|
|
|
# Make sure only the first syscall rule is used, if multiple dirs
|
|
|
|
# define the same syscall.
|
* sysdeps/generic/bp-checks.h: New file.
* sysdeps/generic/bp-thunks.h: Replace generic thunk definitions
with list of #include files.
* sysdeps/unix/make-syscalls.sh: Handle new arg signature
keyletters a, b, B, f, n, N, P, v, V. Fixup some indentation.
Don't generate BP thunk if `V' appears in signature.
Generate thunks with complete bounds checks.
* sysdeps/unix/syscalls.list: Refine signatures using new keyletters.
* sysdeps/unix/inet/syscalls.list: Likewise.
* sysdeps/unix/mman/syscalls.list: Likewise.
* sysdeps/unix/sysv/linux/syscalls.list: Likewise.
* sysdeps/unix/sysv/linux/ia64/syscalls.list: Likewise.
* sysdeps/unix/sysv/linux/mips/syscalls.list: Likewise.
* sysdeps/unix/sysv/linux/powerpc/syscalls.list: Likewise.
2000-07-05 Greg McGary <greg@mcgary.org>
* sysdeps/generic/bp-checks.h: New file.
* sysdeps/generic/bp-thunks.h: Replace generic thunk definitions
with list of #include files.
* sysdeps/unix/make-syscalls.sh: Handle new arg signature
keyletters a, b, B, f, n, N, P, v, V. Fixup some indentation.
Don't generate BP thunk if `V' appears in signature.
Generate thunks with complete bounds checks.
* sysdeps/unix/syscalls.list: Refine signatures using new keyletters.
* sysdeps/unix/inet/syscalls.list: Likewise.
* sysdeps/unix/mman/syscalls.list: Likewise.
* sysdeps/unix/sysv/linux/syscalls.list: Likewise.
* sysdeps/unix/sysv/linux/ia64/syscalls.list: Likewise.
* sysdeps/unix/sysv/linux/mips/syscalls.list: Likewise.
* sysdeps/unix/sysv/linux/powerpc/syscalls.list: Likewise.
2000-07-06 00:48:39 +00:00
|
|
|
echo ''
|
|
|
|
echo "#### CALL=$file NUMBER=$callnum ARGS=$args SOURCE=$srcfile"
|
|
|
|
|
2012-04-29 13:17:36 +00:00
|
|
|
# If there are versioned aliases the entry is only generated for the
|
|
|
|
# shared library, unless it is a default version.
|
2012-08-01 17:25:11 +00:00
|
|
|
any_versioned=f
|
2012-04-29 13:17:36 +00:00
|
|
|
shared_only=f
|
|
|
|
case $weak in
|
2012-08-01 17:25:11 +00:00
|
|
|
*@@*) any_versioned=t ;;
|
|
|
|
*@*) any_versioned=t shared_only=t ;;
|
2012-04-29 13:17:36 +00:00
|
|
|
esac
|
|
|
|
|
2000-06-15 19:06:12 +00:00
|
|
|
case x$srcfile"$callnum" in
|
2003-03-26 22:49:15 +00:00
|
|
|
x--)
|
|
|
|
# Undefined callnum for an extra syscall.
|
|
|
|
if [ x$caller != x- ]; then
|
2009-08-24 00:43:21 +00:00
|
|
|
if [ $noerrno != 0 ]; then
|
2003-03-26 22:49:15 +00:00
|
|
|
echo >&2 "$0: no number for $fileno, no-error syscall ($strong $weak)"
|
|
|
|
exit 2
|
|
|
|
fi
|
|
|
|
echo "unix-stub-syscalls += $strong $weak"
|
|
|
|
fi
|
|
|
|
;;
|
2000-06-13 07:33:12 +00:00
|
|
|
x*-) ;; ### Do nothing for undefined callnum
|
|
|
|
x-*)
|
|
|
|
echo "ifeq (,\$(filter $file,\$(unix-syscalls)))"
|
1996-01-18 10:00:52 +00:00
|
|
|
|
2012-04-29 13:17:36 +00:00
|
|
|
if test $shared_only = t; then
|
Update.
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-26 17:17:05 +00:00
|
|
|
# The versioned symbols are only in the shared library.
|
|
|
|
echo "ifneq (,\$(filter .os,\$(object-suffixes)))"
|
2012-04-29 13:17:36 +00:00
|
|
|
fi
|
1996-01-18 10:00:52 +00:00
|
|
|
# Accumulate the list of syscall files for this directory.
|
|
|
|
echo "unix-syscalls += $file"
|
|
|
|
test x$caller = x- || echo "unix-extra-syscalls += $file"
|
|
|
|
|
|
|
|
# Emit a compilation rule for this syscall.
|
2012-04-29 13:17:36 +00:00
|
|
|
if test $shared_only = t; then
|
Update.
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-26 17:17:05 +00:00
|
|
|
# The versioned symbols are only in the shared library.
|
2012-05-22 23:00:50 +00:00
|
|
|
echo "shared-only-routines += $file"
|
|
|
|
test -n "$vdso_syscall" || echo "\$(objpfx)${file}.os: \\"
|
2012-04-29 13:17:36 +00:00
|
|
|
else
|
2012-05-22 23:00:50 +00:00
|
|
|
object_suffixes='$(object-suffixes)'
|
|
|
|
test -z "$vdso_syscall" || object_suffixes='$(object-suffixes-noshared)'
|
Update.
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-26 17:17:05 +00:00
|
|
|
echo "\
|
2008-02-01 00:01:25 +00:00
|
|
|
\$(foreach p,\$(sysd-rules-targets),\
|
2012-05-22 23:00:50 +00:00
|
|
|
\$(foreach o,${object_suffixes},\$(objpfx)\$(patsubst %,\$p,$file)\$o)): \\"
|
2012-04-29 13:17:36 +00:00
|
|
|
fi
|
2002-08-05 06:58:03 +00:00
|
|
|
|
2009-08-24 00:43:21 +00:00
|
|
|
echo " \$(..)sysdeps/unix/make-syscalls.sh"
|
2002-08-05 06:58:03 +00:00
|
|
|
case x"$callnum" in
|
|
|
|
x_)
|
|
|
|
echo "\
|
2009-04-24 03:33:03 +00:00
|
|
|
\$(make-target-directory)
|
2002-08-05 06:58:03 +00:00
|
|
|
(echo '/* Dummy module requested by syscalls.list */'; \\"
|
|
|
|
;;
|
|
|
|
x*)
|
|
|
|
echo "\
|
2002-11-11 02:34:36 +00:00
|
|
|
\$(make-target-directory)
|
2009-08-24 00:43:21 +00:00
|
|
|
(echo '#define SYSCALL_NAME $syscall'; \\
|
|
|
|
echo '#define SYSCALL_NARGS $nargs'; \\
|
2015-02-12 21:57:32 +00:00
|
|
|
echo '#define SYSCALL_SYMBOL $strong'; \\
|
|
|
|
echo '#define SYSCALL_NOERRNO $noerrno'; \\
|
|
|
|
echo '#define SYSCALL_ERRVAL $errval'; \\
|
2009-08-24 00:43:21 +00:00
|
|
|
echo '#include <syscall-template.S>'; \\"
|
2002-08-05 06:58:03 +00:00
|
|
|
;;
|
|
|
|
esac
|
1996-01-18 10:00:52 +00:00
|
|
|
|
Update.
1998-02-10 23:57 Ulrich Drepper <drepper@happy.cygnus.com>
* misc/tst-efgcvt.c: Add more tests.
* misc/efgcvt_r.c: Correct result for above new tests.
1998-02-06 17:22 H.J. Lu <hjl@gnu.org>
* misc/efgcvt_r.c (fcvt_r, ecvt_r): Correctly handle
NDIGIT <= 0.
1998-02-10 16:48 Philip Blundell <pb@nexus.co.uk>
* Makerules (install-no-libc.a-nosubdir): Don't install-bin (etc)
if the programs weren't built.
1998-02-09 10:12 Philip Blundell <pb@nexus.co.uk>
* sysdeps/libm-ieee754/s_exp2.c (__ieee754_exp2): If we don't have
FE_TONEAREST, soldier on regardless and do the best we can.
* sysdeps/libm-ieee754/s_exp2f.c (__ieee754_exp2f): likewise.
1998-02-5 17:20 Philip Blundell <pb@nexus.co.uk>
* sysdeps/standalone/filedesc.h: Define __need_FOPEN_MAX, not
_STDIO_H, before including <bits/stdio_lim.h>.
* sysdeps/standalone/arm/bits/errno.h (EOVERFLOW): Added.
* io/fts.c (fts_build): Don't try to use d_type if it doesn't
exist.
* sysdeps/arm/sys/ucontext.h: New file.
1998-02-04 10:11 Philip Blundell <pb@nexus.co.uk>
* manual/stdio.texi (Formatted Output Functions): Explicitly say
that the return value from snprintf() does not count the
terminating NUL as a character.
1998-02-10 16:57 Ulrich Drepper <drepper@happy.cygnus.com>
* manual/users.texi: Rewrite to describe correct POSIX behaviour,
add description for sete[ug]id and general cleanup.
Patch by Zack Weinberg <zack@rabi.phys.columbia.edu>.
1998-01-04 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
* Makefile (parent-clean): Don't remove makefile fragments here.
(postclean): New variable.
(clean): Remove makefile fragments here.
(realclean distclean): Likewise. Pass sysdep-subdirs to sub-make.
(generated): Add isomac and isomanc.out.
* Makeconfig ($(common-objpfx)soversions.mk): Don't generate if
avoid-generated is set.
(postclean-generated): Add soversion.mk.
($(common-objpfx)version.mk): Don't include if avoid-generated is
set.
* Makerules: Still need to include $(+sysdir_pfx)sysd-Makefile if
avoid-generated is set.
(common-generated): Add libc.so and libc.so$(libc.so-version).
(generated): Add versioned libraries.
(common-mostlyclean): Also remove %.so and %_pic.a.
* csu/Makefile (generated): Add abi-tag.h.
* db2/Makefile (extra-objs): Add getlong.o.
* elf/Makefile (generated): Add ld.so, ldd and
$(rtld-installed-name).
(others): Add ldconfig here instead of ldconfig.o to extra-objs.
* malloc/Makefile (generated): Add mtrace.
* po/Makefile: Don't include version.mk, not needed any more.
* sunrpc/Makefile (generated): Add rpc-proto.d and rpcgen.
* sysdeps/unix/Makefile: Fix local_lim.h -> bits/local_lim.h,
syscall.h -> sys/syscall.h.
(common-generated): Add s-proto.d.
(postclean-generated): Add sysd-syscalls.
* localedata/Makefile (test-output): Add all output files.
(generated): Add test-input and test-output.
(generated-dirs): Add all the dirs.
1998-01-04 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
* Makefile (test-output, generated, generated-dirs): New
variables.
1998-02-10 16:57 Ulrich Drepper <drepper@happy.cygnus.com>
* resolv/nss_dns/dns-host.c: Various code cleanups.
1998-02-09 08:10 H.J. Lu <hjl@gnu.org>
* resolv/gethnamaddr.c (getanswer): Fix the PTR/CNAME bug.
From Philip Blundell <pb@nexus.co.uk>.
* resolv/nss_dns/dns-host.c (getanswer_r): Ditto.
1998-02-08 Andreas Jaeger <aj@arthur.rhein-neckar.de>
* libc.map: Add .rem, .div, .mul, .udiv, .umul, .urem for Sparc.
Suggested by debian/sparc porters.
1998-02-07 Andreas Jaeger <aj@arthur.rhein-neckar.de>
* misc/tst-efgcvt.c: Totally rewritten, added a lot of new tests
for ecvt and fcvt.
1998-02-10 16:32 Ulrich Drepper <drepper@happy.cygnus.com>
* sysdeps/unix/sysv/linux/ptsname.c (__ptsname_r): Use __xstat and
__fxstat instead of stat and fstat. Use namespace clean __stpcpy.
* signal/signal.h: Always define sigset_t if __need_sigset_t is
defined even if __USE_POSIX is not defined.
1998-02-02 20:51 Zack Weinberg <zack@rabi.phys.columbia.edu>
* sysdeps/unix/sysv/linux/ptsname.c (__ptsname_r): Correct last patch
to support obsolete tty major numbers correctly.
1998-02-02 08:47 H.J. Lu <hjl@gnu.org>
* login/Makefile ($(inst_libexecdir)/pt_chown): Make the target
directory first and ignore install error.
* sysdeps/unix/sysv/linux/ptsname.c (__ptsname_r): Substract
128 from ptyno and fix a typo for the BSD style pty.
1998-02-01 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
* sysdeps/unix/Makefile ($(common-objpfx)s-proto.d): Depend on all
syscalls.list's.
1998-02-01 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
* sysdeps/unix/sysv/linux/Makefile (sysdep_routines): Add
getresuid and getresgid.
* sysdeps/unix/sysv/linux/getresuid.c: New file.
* sysdeps/unix/sysv/linux/getresgid.c: New file.
* sysdeps/unix/sysv/linux/syscalls.list: Remove getres[ug]id, add
s_getres[ug]id.
* sysdeps/unix/sysv/linux/alpha/syscalls.list: Add getres[ug]id.
* sysdeps/unix/sysv/linux/sparc/sparc64/syscalls.list: Likewise.
* sysdeps/unix/sysv/linux/mips/syscalls.list: Likewise.
* sysdeps/unix/sysv/linux/powerpc/syscalls.list: Likewise.
1998-02-02 08:11 H.J. Lu <hjl@gnu.org>
* nscd/grpcache.c: Include <stdlib.h>.
1998-02-01 16:01 H.J. Lu <hjl@gnu.org>
* stdlib/atoll.c: Fix comments.
* sysdeps/posix/ttyname.c: Ignore stdin/stdout/stderr.
* sysdeps/posix/ttyname_r.c: Ditto.
1998-02-03 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
* io/sys/stat.h: Define S_IFLNK and S_IFSOCK if __USE_BSD or
__USE_MISC, independent of __USE_UNIX98.
1998-02-10 19:18 Ulrich Drepper <drepper@happy.cygnus.com>
* sysdeps/unix/sysv/linux/i386/sigaction.c (__libc_missing_rt_sigs):
Rename from __libc_have_rt_sigs and leave as COMMON data.
1998-02-04 11:58 Richard Henderson <rth@twiddle.rth.home>
* Makeconfig (CFLAGS-.os): Kill -fno-common.
* Makerules (libc.so): Prelink libc_pic.a, allocating commons.
* libc.map (GLIBC_2.1): Add Linux/Alpha tv64 symbols.
* elf/rtld.map: New file. Needed to define the GLIBC_2.*
version symbols.
* include/libc-symbols.h (symbol_version, default_symbol_version):
Provide asm versions and correct !DO_VERSIONING versions.
* sysdeps/unix/make-syscalls.sh: Recognize version symbols in
the weak symbol list.
* sysdeps/unix/sysv/linux/sigaction.c (__libc_missing_rt_sigs):
Rename from __libc_have_rt_sigs and leave as COMMON data.
* sysdeps/unix/sysv/linux/sigpending.c: Likewise.
* sysdeps/unix/sysv/linux/sigprocmask.c: Likewise.
* sysdeps/unix/sysv/linux/sigsuspend.c: Likewise.
1998-02-04 16:41 Zack Weinberg <zack@rabi.phys.columbia.edu>
* sunrpc/Makefile: Correct dependencies of rpcgen.
1998-02-10 03:00 Ulrich Drepper <drepper@happy.cygnus.com>
* nscd/Makefile: Fix test for available linuxthreads add-on.
Patch by Zack Weinberg <zack@rabi.phys.columbia.edu>.
1998-02-05 Andreas Jaeger <aj@arthur.rhein-neckar.de>
* sysdeps/unix/sysv/linux/syscalls.list: Fix typo in lchown.
1998-02-03 Andreas Jaeger <aj@arthur.rhein-neckar.de>
* sysdeps/gnu/Makefile: Respect with-cvs variable.
* manual/errno.texi (Error Messages): Correct description of
strerror_r. Pointed out by jonas@bagge.se.
1998-01-29 Andreas Jaeger <aj@arthur.rhein-neckar.de>
* manual/socket.texi (Host Address Functions): Clarify description
of inet_network.
1998-02-07 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
* sysdeps/unix/grantpt.c (argv): Move const to toplevel.
(grantpt): Delete superfluous cast.
1998-02-06 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
* Makefile ($(inst_slibdir)/libc-$(version).so): Depend on
elf/ldso_install instead of elf/subdir_install.
(elf/ldso_install): New target.
* elf/Makefile (ldso_install): New target.
1998-02-07 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
* sysdeps/unix/sysv/linux/powerpc/socket.S: Really do the change
of 1998-01-06.
1998-02-07 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
* string/bits/string2.h (strcmp): Use __string2_1bptr_p only for
constant expressions.
1998-02-07 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
* nss/test-netdb.c: Include <unistd.h> for gethostname and "nss.h"
for __nss_configure_lookup.
(output_hostent): Remove unused variable.
1998-02-07 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
* string/tst-inlcall.c: Fix format string.
1998-02-09 Andreas Jaeger <aj@arthur.rhein-neckar.de>
* inet/netinet/in.h: Rename second parameter of bindresvport to
avoid buggy gcc warning. [PR libc/412]
1998-02-10 20:06:30 +00:00
|
|
|
# Append any weak aliases or versions defined for this syscall function.
|
2012-05-22 23:00:50 +00:00
|
|
|
emit_weak_aliases
|
1996-01-18 10:00:52 +00:00
|
|
|
|
|
|
|
# And finally, pipe this all into the compiler.
|
2008-02-01 00:01:25 +00:00
|
|
|
echo ' ) | $(compile-syscall) '"\
|
|
|
|
\$(foreach p,\$(patsubst %$file,%,\$(basename \$(@F))),\$(\$(p)CPPFLAGS))"
|
1996-01-18 10:00:52 +00:00
|
|
|
|
2012-05-22 23:00:50 +00:00
|
|
|
if test -n "$vdso_syscall"; then
|
|
|
|
# In the shared library, we're going to emit an IFUNC using a vDSO function.
|
|
|
|
# $vdso_syscall looks like "name@KERNEL_X.Y" where "name" is the symbol
|
|
|
|
# name in the vDSO and KERNEL_X.Y is its symbol version.
|
|
|
|
vdso_symbol="${vdso_syscall%@*}"
|
|
|
|
vdso_symver="${vdso_syscall#*@}"
|
2013-09-11 21:53:08 +00:00
|
|
|
vdso_symver=`echo "$vdso_symver" | sed 's/\./_/g'`
|
2015-05-14 17:59:23 +00:00
|
|
|
cat <<EOF
|
|
|
|
|
2012-05-22 23:00:50 +00:00
|
|
|
\$(foreach p,\$(sysd-rules-targets),\$(objpfx)\$(patsubst %,\$p,$file).os): \\
|
2015-05-13 16:11:12 +00:00
|
|
|
\$(..)sysdeps/unix/make-syscalls.sh
|
2012-05-22 23:00:50 +00:00
|
|
|
\$(make-target-directory)
|
2017-09-26 21:21:01 +00:00
|
|
|
(echo '#define ${strong} __redirect_${strong}'; \\
|
|
|
|
echo '#include <dl-vdso.h>'; \\
|
|
|
|
echo '#undef ${strong}'; \\
|
|
|
|
echo '#define vdso_ifunc_init() \\'; \\
|
|
|
|
echo ' PREPARE_VERSION_KNOWN (symver, ${vdso_symver})'; \\
|
|
|
|
echo '__ifunc (__redirect_${strong}, ${strong},'; \\
|
|
|
|
echo ' _dl_vdso_vsym ("${vdso_symbol}", &symver), void,'; \\
|
|
|
|
echo ' vdso_ifunc_init)'; \\
|
2015-05-14 17:59:23 +00:00
|
|
|
EOF
|
2015-06-17 20:17:49 +00:00
|
|
|
# This is doing "hidden_def (${strong})", but the compiler
|
2012-05-22 23:00:50 +00:00
|
|
|
# doesn't know that we've defined ${strong} in the same file, so
|
|
|
|
# we can't do it the normal way.
|
2015-05-14 17:59:23 +00:00
|
|
|
cat <<EOF
|
|
|
|
echo 'asm (".globl __GI_${strong}");'; \\
|
|
|
|
echo 'asm ("__GI_${strong} = ${strong}");'; \\
|
|
|
|
EOF
|
2012-05-22 23:00:50 +00:00
|
|
|
emit_weak_aliases
|
2015-05-14 17:59:23 +00:00
|
|
|
cat <<EOF
|
|
|
|
) | \$(compile-stdin.c) \
|
|
|
|
\$(foreach p,\$(patsubst %$file,%,\$(basename \$(@F))),\$(\$(p)CPPFLAGS))
|
|
|
|
EOF
|
2012-05-22 23:00:50 +00:00
|
|
|
fi
|
|
|
|
|
2012-04-29 13:17:36 +00:00
|
|
|
if test $shared_only = t; then
|
Update.
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-26 17:17:05 +00:00
|
|
|
# The versioned symbols are only in the shared library.
|
|
|
|
echo endif
|
2012-04-29 13:17:36 +00:00
|
|
|
fi
|
Update.
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-26 17:17:05 +00:00
|
|
|
|
2000-06-13 07:33:12 +00:00
|
|
|
echo endif
|
|
|
|
;;
|
|
|
|
esac
|
|
|
|
|
1996-01-18 10:00:52 +00:00
|
|
|
done
|