summaryrefslogtreecommitdiff
path: root/sysdeps
diff options
context:
space:
mode:
authorUlrich Drepper <drepper@redhat.com>1998-01-21 17:04:36 +0000
committerUlrich Drepper <drepper@redhat.com>1998-01-21 17:04:36 +0000
commit740152054ecbda66dae0e0f66193d8e244cc2376 (patch)
treeaa093561b97c930db58cecd18ac45401476d3a26 /sysdeps
parentb9b49b44fdc1c74ad85076bca9ff7ea0200e2214 (diff)
downloadglibc-740152054ecbda66dae0e0f66193d8e244cc2376.tar.gz
1998-01-22 00:55 Ulrich Drepper <drepper@happy.cygnus.com> * libc.map: Add __libc_uid, __libc_pid, __syscall_rt_sigqueueinfo, __pread64, __pwrite64, and __getpid. * libc/rt/aio_misc.c: Use pread and pwrite instead of __ protected versions. 1998-01-06 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de> * sysdeps/unix/sysv/linux/alpha/syscalls.list: Define the cancelable socket functions as __libc_xxx with __xxx as weak alias. * sysdeps/unix/sysv/linux/mips/syscalls.list: Likewise. * sysdeps/unix/sysv/linux/sparc/sparc64/syscalls.list: Likewise. * sysdeps/unix/sysv/linux/m68k/socket.S: Allow __socket to be redefined. * sysdeps/unix/sysv/linux/i386/socket.S: Likewise. * sysdeps/unix/sysv/linux/arm/socket.S: Likewise. * sysdeps/unix/sysv/linux/powerpc/socket.S: Likewise. * sysdeps/unix/sysv/linux/sparc/sparc32/socket.S: Likewise. * sysdeps/unix/sysv/linux/accept.S: Make __libc_xxx the main name and __xxx a weak alias. * sysdeps/unix/sysv/linux/connect.S: Likewise. * sysdeps/unix/sysv/linux/recv.S: Likewise. * sysdeps/unix/sysv/linux/recvfrom.S: Likewise. * sysdeps/unix/sysv/linux/recvmsg.S: Likewise. * sysdeps/unix/sysv/linux/send.S: Likewise. * sysdeps/unix/sysv/linux/sendmsg.S: Likewise. * sysdeps/unix/sysv/linux/sendto.S: Likewise. 1998-01-21 Andreas Jaeger <aj@arthur.rhein-neckar.de> * locale/langinfo.h: Add defines. * dirent/dirent.h: Add defines for DT_*, check also for _DIRENT_HAVE_D_TYPE. Suggested by Roland McGrath. 1998-01-16 Andreas Jaeger <aj@arthur.rhein-neckar.de> * sysdeps/unix/sysv/linux/netinet/ip_fw.h: Update from Linux 2.1.73+79. * README.template: Update information about possible configurations. * manual/mbyte.texi (Wide String Conversion): Fix declaration of wcstombs. Pointed out by Jochen Voss <voss@mathematik.uni-kl.de>. [PR libc/417]. * manual/time.texi (Priority): Correct description of PRIO_MAX. Pointed out by Jochen Voss <voss@mathematik.uni-kl.de>. [PR libc/416]. 11998-01-21 21:34 Ulrich Drepper <drepper@cygnus.com> * sysdeps/alpha/fpu/bits/mathdef.h: Add definition of FP_ILOGB0 and FP_ILOGNAN. Patch by a sun <asun@zoology.washington.edu>. 1998-01-21 17:53 Ulrich Drepper <drepper@cygnus.com> * sysdeps/generic/_strerror.c: Handle BUFLEN == 0. Reported by Andreas Jaeger. 1998-01-20 18:13 Ulrich Drepper <drepper@cygnus.com> * locale/programs/ld-collate.c: Little optimizations. * stdio-common/xbug.c: Unset LD_LIBRRARY_PATH variable. * string/Makefile (tests): Add tst-inlcall. * string/tst-inlcall.c: New file. * string/strsignal.c: Add support for real-time signals. * sysdeps/generic/_strerror.c: Fix Handling of unknown error in presense of small buffer. * sysdeps/i386/bits/string.h: Define _HAVE_STRING_ARCH_* macros. * sysdeps/i386/i486/bits/string.h: Correct strrchr implementation for i686. * sysdeps/unix/sysv/linux/siglist.c: Change length of arrays to _NSIG + 1. 1998-01-02 15:10 Matthias Urlichs <urlichs@noris.de> * Rules: Add explicit rule for dummy.o; at least one library needs it and it isn't autogenerated by the default rules. 1997-12-31 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de> * math/libm-test.c: Tweak epsilons. 1997-12-31 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de> * math/test-fenv.c (feenv_nomask_test): Avoid dumping core in the child. (feenv_mask_test): Likewise. 1998-01-01 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de> * Makeconfig: Don't export CPPFLAGS. 1998-01-01 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de> * sunrpc/rpc_main.c (parseargs): Use perror to print error message. 1998-01-15 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de> * nss/nss_db/db-alias.c (_nss_db_getaliasent_r): Don't include terminating null in key size. 1998-01-13 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de> * nss/nss_files/files-service.c: Fix allocation size to include length of PROTO. * nss/nss_db/db-XXX.c (lookup): Always set errno and h_errno if applicable. Fix return value and error checking. (CONCAT(_nss_db_get,ENTNAME_r)): Loop around to skip over unparsable lines. (DB_LOOKUP): Allocate space for terminating null byte. * nss/db-Makefile ($(VAR_DB)/passwd.db): Don't handle duplicate uids specially. * db2/makedb.c (process_input): Continue processing if a duplicate key is encountered. 1998-01-19 15:20 Ulrich Drepper <drepper@cygnus.com> * time/tzfile.h: Updated from tzcode1998b. * time/zdump.c: Likewise. * time/zic.c: Likewise. * time/africa: Update from tzdata1998b. * time/antarctica: Likewise. * time/asia: Likewise. * time/australasia: Likewise. * time/etcetera: Likewise. * time/europe: Likewise. * time/leapseconds: Likewise. * time/northamerica: Likewise. * time/southamerica: Likewise. 1998-01-12 Andreas Jaeger <aj@arthur.rhein-neckar.de> * nss/nss_files/files-alias.c (get_next_alias): Do mail alias lookups ignoring case. * nss/nss_files/files-network.c: Do network lookups ignoring case. * nss/nss_files/files-hosts.c: Do hostname lookups ignoring case. * nss/nss_files/files-parse.c (LOOKUP_NAME_CASE): New macro for case insensitive comparing. Patches by Cristian Gafton <gafton@redhat.com>. 1998-01-09 Andreas Jaeger <aj@arthur.rhein-neckar.de> * sysdeps/unix/sysv/linux/net/if.h: Add IFF_*defines. Suggested by Roland McGrath. [PR libc/395] 1998-01-08 Andreas Jaeger <aj@arthur.rhein-neckar.de> * manual/arith.texi (Parsing of Integers): Correct description of strtoul. Pointed out by Scott Snyder <snyder@fnald0.fnal.gov>. [PR libc/396] 1997-12-30 14:14 Matthias Urlichs <urlichs@noris.de> * misc/lsearch.c (lsearch): Return a pointer to the new element if one was "allocated". 1997-12-26 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de> * string/strsignal.c: NSIG is not a valid index into _sys_siglist. Don't zap the last character of the "Unknown signal" message. 1998-01-19 15:08 Ulrich Drepper <drepper@cygnus.com> * locale/programs/charmap.c (parse_charmap): Correct parsing of ellipsis expressions. * locale/programs/charset.c (insert_char): Correctly insert value of eliipsis expression.
Diffstat (limited to 'sysdeps')
-rw-r--r--sysdeps/alpha/fpu/bits/mathdef.h4
-rw-r--r--sysdeps/generic/_strerror.c28
-rw-r--r--sysdeps/i386/bits/string.h39
-rw-r--r--sysdeps/i386/i486/bits/string.h12
-rw-r--r--sysdeps/unix/sysv/linux/accept.S3
-rw-r--r--sysdeps/unix/sysv/linux/alpha/syscalls.list16
-rw-r--r--sysdeps/unix/sysv/linux/arm/socket.S12
-rw-r--r--sysdeps/unix/sysv/linux/connect.S3
-rw-r--r--sysdeps/unix/sysv/linux/i386/socket.S12
-rw-r--r--sysdeps/unix/sysv/linux/m68k/socket.S12
-rw-r--r--sysdeps/unix/sysv/linux/mips/syscalls.list16
-rw-r--r--sysdeps/unix/sysv/linux/net/if.h18
-rw-r--r--sysdeps/unix/sysv/linux/netinet/ip_fw.h23
-rw-r--r--sysdeps/unix/sysv/linux/recv.S3
-rw-r--r--sysdeps/unix/sysv/linux/recvfrom.S3
-rw-r--r--sysdeps/unix/sysv/linux/recvmsg.S3
-rw-r--r--sysdeps/unix/sysv/linux/send.S3
-rw-r--r--sysdeps/unix/sysv/linux/sendmsg.S3
-rw-r--r--sysdeps/unix/sysv/linux/sendto.S3
-rw-r--r--sysdeps/unix/sysv/linux/siglist.c4
-rw-r--r--sysdeps/unix/sysv/linux/sparc/sparc32/socket.S12
-rw-r--r--sysdeps/unix/sysv/linux/sparc/sparc64/syscalls.list16
22 files changed, 162 insertions, 86 deletions
diff --git a/sysdeps/alpha/fpu/bits/mathdef.h b/sysdeps/alpha/fpu/bits/mathdef.h
index 1c259403f5..2ff626d089 100644
--- a/sysdeps/alpha/fpu/bits/mathdef.h
+++ b/sysdeps/alpha/fpu/bits/mathdef.h
@@ -63,5 +63,9 @@ typedef double double_t;
#endif
+/* The values returned by `ilogb' for 0 and NaN respectively. */
+#define FP_ILOGB0 0x80000001
+#define FP_ILOGBNAN 0x7fffffff
+
/* Number of decimal digits for the `double' type. */
#define DECIMAL_DIG 15
diff --git a/sysdeps/generic/_strerror.c b/sysdeps/generic/_strerror.c
index bcba45d519..e6f56556aa 100644
--- a/sysdeps/generic/_strerror.c
+++ b/sysdeps/generic/_strerror.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991, 1993, 1995, 1996, 1997 Free Software Foundation, Inc.
+/* Copyright (C) 1991, 93, 95, 96, 97, 98 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
@@ -19,7 +19,8 @@
#include <libintl.h>
#include <stdio.h>
#include <string.h>
-#include "../stdio-common/_itoa.h"
+#include <sys/param.h>
+#include <stdio-common/_itoa.h>
#ifndef HAVE_GNU_LD
#define _sys_errlist sys_errlist
@@ -41,12 +42,27 @@ _strerror_internal (int errnum, char *buf, size_t buflen)
{
if (errnum < 0 || errnum >= _sys_nerr)
{
+ /* Buffer we use to print the number in. For a maximum size for
+ `int' of 8 bytes we never need more than 20 digits. */
+ char numbuf[21];
const char *unk = _("Unknown error ");
const size_t unklen = strlen (unk);
- char *p = buf + buflen;
- *--p = '\0';
- p = _itoa_word (errnum, p, 10, 0);
- return memcpy (p - unklen, unk, unklen);
+ char *p, *q;
+
+ numbuf[20] = '\0';
+ p = _itoa_word (errnum, &numbuf[20], 10, 0);
+
+ /* Now construct the result while taking care for the destination
+ buffer size. */
+ q = __mempcpy (buf, unk, MIN (unklen, buflen));
+ if (unklen < buflen)
+ __stpncpy (q, p, buflen - unklen);
+
+ /* Terminate the string in any case. */
+ if (buflen > 0)
+ buf[buflen - 1] = '\0';
+
+ return buf;
}
return (char *) _(_sys_errlist[errnum]);
diff --git a/sysdeps/i386/bits/string.h b/sysdeps/i386/bits/string.h
index c6deb2b6a4..c424306bcd 100644
--- a/sysdeps/i386/bits/string.h
+++ b/sysdeps/i386/bits/string.h
@@ -1,5 +1,5 @@
/* Optimized, inlined string functions. i386 version.
- Copyright (C) 1997 Free Software Foundation, Inc.
+ Copyright (C) 1997, 1998 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -38,6 +38,7 @@
/* Copy N bytes of SRC to DEST. */
+#define _HAVE_STRING_ARCH_memcpy 1
#define memcpy(dest, src, n) \
(__extension__ (__builtin_constant_p (n) \
? __memcpy_c (dest, src, n) \
@@ -132,6 +133,7 @@ __memcpy_c (void *__dest, __const void *__src, size_t __n)
/* Copy N bytes of SRC to DEST, guaranteeing
correct behavior for overlapping strings. */
+#define _HAVE_STRING_ARCH_memmove 1
__STRING_INLINE void *
memmove (void *__dest, __const void *__src, size_t __n)
{
@@ -158,6 +160,7 @@ memmove (void *__dest, __const void *__src, size_t __n)
/* Set N bytes of S to C. */
+#define _HAVE_STRING_ARCH_memset 1
#define memset(s, c, n) \
(__extension__ (__builtin_constant_p (c) \
? (__builtin_constant_p (n) \
@@ -249,27 +252,7 @@ __memset_gg (void *__s, char __c, size_t __n)
/* Search N bytes of S for C. */
-__STRING_INLINE void *
-memchr (__const void *__s, int __c, size_t __n)
-{
- register void *__res;
- if (count == 0)
- return NULL;
- __asm__ __volatile__
- ("cld\n\t"
- "repne; scasb\n\t"
- "je 1f\n\t"
- "movl $1,%0\n"
- "1:\n\t"
- "decl %0"
- : "=D" (__res)
- : "a" (__c), "D" (__s), "c" (__n)
- : "cx", "cc");
- return __res;
-}
-
-
-/* Search N bytes of S for C. */
+#define _HAVE_STRING_ARCH_memchr 1
__STRING_INLINE void *
memchr (__const void *__s, int __c, size_t __n)
{
@@ -291,6 +274,7 @@ memchr (__const void *__s, int __c, size_t __n)
/* Return the length of S. */
+#define _HAVE_STRING_ARCH_strlen 1
__STRING_INLINE size_t
strlen (__const char *__str)
{
@@ -307,6 +291,7 @@ strlen (__const char *__str)
/* Copy SRC to DEST. */
+#define _HAVE_STRING_ARCH_strcpy 1
__STRING_INLINE char *
strcpy (char *__dest, __const char *__src)
{
@@ -325,6 +310,7 @@ strcpy (char *__dest, __const char *__src)
/* Copy no more than N characters of SRC to DEST. */
+#define _HAVE_STRING_ARCH_strncpy 1
__STRING_INLINE char *
strncpy (char *__dest, __const char *__src, size_t __n)
{
@@ -347,6 +333,7 @@ strncpy (char *__dest, __const char *__src, size_t __n)
/* Append SRC onto DEST. */
+#define _HAVE_STRING_ARCH_strcat 1
__STRING_INLINE char *
strcat (char *__dest, __const char *__src)
{
@@ -367,6 +354,7 @@ strcat (char *__dest, __const char *__src)
/* Append no more than N characters from SRC onto DEST. */
+#define _HAVE_STRING_ARCH_strncat 1
__STRING_INLINE char *
strncat (char *__dest, __const char *__src, size_t __n)
{
@@ -393,6 +381,7 @@ strncat (char *__dest, __const char *__src, size_t __n)
/* Compare S1 and S2. */
+#define _HAVE_STRING_ARCH_strcmp 1
__STRING_INLINE int
strcmp (__const char *__s1, __const char *__s2)
{
@@ -419,6 +408,7 @@ strcmp (__const char *__s1, __const char *__s2)
/* Compare N characters of S1 and S2. */
+#define _HAVE_STRING_ARCH_strncmp 1
__STRING_INLINE int
strncmp (__const char *__s1, __const char *__s2, size_t __n)
{
@@ -448,6 +438,7 @@ strncmp (__const char *__s1, __const char *__s2, size_t __n)
/* Find the first occurrence of C in S. */
+#define _HAVE_STRING_ARCH_strchr 1
#define strchr(s, c) \
(__extension__ (__builtin_constant_p (c) \
? __strchr_c (s, ((c) & 0xff) << 8) \
@@ -499,6 +490,7 @@ __strchr_c (__const char *__s, int __c)
/* Return the length of the initial segment of S which
consists entirely of characters not in REJECT. */
+#define _HAVE_STRING_ARCH_strcspn 1
#ifdef __PIC__
__STRING_INLINE size_t
strcspn (__const char *__s, __const char *__reject)
@@ -558,6 +550,7 @@ strcspn (__const char *__s, __const char *__reject)
/* Return the length of the initial segment of S which
consists entirely of characters in ACCEPT. */
+#define _HAVE_STRING_ARCH_strspn 1
#ifdef __PIC__
__STRING_INLINE size_t
strspn (__const char *__s, __const char *__accept)
@@ -616,6 +609,7 @@ strspn (__const char *__s, __const char *__accept)
/* Find the first occurrence in S of any character in ACCEPT. */
+#define _HAVE_STRING_ARCH_strpbrk 1
#ifdef __PIC__
__STRING_INLINE char *
strpbrk (__const char *__s, __const char *__accept)
@@ -682,6 +676,7 @@ strpbrk (__const char *__s, __const char *__accept)
/* Find the first occurrence of NEEDLE in HAYSTACK. */
+#define _HAVE_STRING_ARCH_strstr 1
#ifdef __PIC__
__STRING_INLINE char *
strstr (__const char *__haystack, __const char *__needle)
diff --git a/sysdeps/i386/i486/bits/string.h b/sysdeps/i386/i486/bits/string.h
index 210bf7f745..aaa636a56d 100644
--- a/sysdeps/i386/i486/bits/string.h
+++ b/sysdeps/i386/i486/bits/string.h
@@ -1,5 +1,5 @@
/* Optimized, inlined string functions. i486 version.
- Copyright (C) 1997 Free Software Foundation, Inc.
+ Copyright (C) 1997, 1998 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -373,7 +373,7 @@ __strlen_g (__const char *__str)
: (char *) memcpy (dest, src, strlen (src) + 1)) \
: __strcpy_g (dest, src)))
-# define __strcpy_small(dest, src, srclen) \
+#define __strcpy_small(dest, src, srclen) \
(__extension__ ({ unsigned char *__dest = (unsigned char *) (dest); \
switch (srclen) \
{ \
@@ -1006,11 +1006,11 @@ __strrchr_c (__const char *__s, int __c)
"1:\n\t"
"lodsb\n\t"
"cmpb %%ah,%%al\n\t"
- "cmovne %%esi,%0\n\t"
+ "cmove %%esi,%0\n\t"
"testb %%al,%%al\n\t"
"jne 1b"
: "=d" (__res)
- : "0" (1), "S" (__s),"a" (__c)
+ : "0" (1), "S" (__s), "a" (__c)
: "ax", "si", "cc");
return __res - 1;
}
@@ -1025,11 +1025,11 @@ __strrchr_g (__const char *__s, int __c)
"1:\n\t"
"lodsb\n\t"
"cmpb %%ah,%%al\n\t"
- "cmovne %%esi,%0\n\t"
+ "cmove %%esi,%0\n\t"
"testb %%al,%%al\n\t"
"jne 1b"
: "=r" (__res)
- : "0" (1), "S" (__s),"a" (__c)
+ : "0" (1), "S" (__s), "a" (__c)
: "ax", "si", "cc");
return __res - 1;
}
diff --git a/sysdeps/unix/sysv/linux/accept.S b/sysdeps/unix/sysv/linux/accept.S
index b713a6e267..196634d46a 100644
--- a/sysdeps/unix/sysv/linux/accept.S
+++ b/sysdeps/unix/sysv/linux/accept.S
@@ -1,4 +1,5 @@
#define socket accept
+#define __socket __libc_accept
#define NARGS 3
#include <socket.S>
-strong_alias (__accept, __libc_accept)
+weak_alias (__libc_accept, __accept)
diff --git a/sysdeps/unix/sysv/linux/alpha/syscalls.list b/sysdeps/unix/sysv/linux/alpha/syscalls.list
index 9406892124..17c55f0991 100644
--- a/sysdeps/unix/sysv/linux/alpha/syscalls.list
+++ b/sysdeps/unix/sysv/linux/alpha/syscalls.list
@@ -36,20 +36,20 @@ sys_mknod xmknod mknod 3 __syscall_mknod
# override select.S in parent directory:
select - select 5 __select select
-accept - accept 3 __accept accept
+accept - accept 3 __libc_accept __accept accept
bind - bind 3 __bind bind
-connect - connect 3 __connect connect
+connect - connect 3 __libc_connect __connect connect
getpeername - getpeername 3 __getpeername getpeername
getsockname - getsockname 3 __getsockname getsockname
getsockopt - getsockopt 5 __getsockopt getsockopt
listen - listen 2 __listen listen
-recv - recv 4 __recv recv
-recvfrom - recvfrom 6 __recvfrom recvfrom
-recvmsg - recvmsg 3 __recvmsg recvmsg
+recv - recv 4 __libc_recv __recv recv
+recvfrom - recvfrom 6 __libc_recvfrom __recvfrom recvfrom
+recvmsg - recvmsg 3 __libc_recvmsg __recvmsg recvmsg
ptrace - ptrace 4 __ptrace ptrace
-send - send 4 __send send
-sendmsg - sendmsg 3 __sendmsg sendmsg
-sendto - sendto 6 __sendto sendto
+send - send 4 __libc_send __send send
+sendmsg - sendmsg 3 __libc_sendmsg __sendmsg sendmsg
+sendto - sendto 6 __libc_sendto __sendto sendto
setsockopt - setsockopt 5 __setsockopt setsockopt
shutdown - shutdown 2 __shutdown shutdown
socketpair - socketpair 4 __socketpair socketpair
diff --git a/sysdeps/unix/sysv/linux/arm/socket.S b/sysdeps/unix/sysv/linux/arm/socket.S
index 4d877e51d5..1940061dda 100644
--- a/sysdeps/unix/sysv/linux/arm/socket.S
+++ b/sysdeps/unix/sysv/linux/arm/socket.S
@@ -31,8 +31,12 @@
The .S files for the other calls just #define socket and #include this. */
-.globl P(__,socket)
-ENTRY (P(__,socket))
+#ifndef __socket
+#define __socket P(__,socket)
+#endif
+
+.globl __socket
+ENTRY (__socket)
/* Do the system call trap. */
swi SYS_ify(socketcall)
@@ -44,6 +48,6 @@ ENTRY (P(__,socket))
/* Successful; return the syscall's value. */
RETINSTR(mov,pc,r14)
-PSEUDO_END (P(__,socket))
+PSEUDO_END (__socket)
-weak_alias (P(__,socket), socket)
+weak_alias (__socket, socket)
diff --git a/sysdeps/unix/sysv/linux/connect.S b/sysdeps/unix/sysv/linux/connect.S
index 2840c58174..d1dd69a217 100644
--- a/sysdeps/unix/sysv/linux/connect.S
+++ b/sysdeps/unix/sysv/linux/connect.S
@@ -1,4 +1,5 @@
#define socket connect
+#define __socket __libc_connect
#define NARGS 3
#include <socket.S>
-strong_alias (__connect, __libc_connect)
+weak_alias (__libc_connect, __connect)
diff --git a/sysdeps/unix/sysv/linux/i386/socket.S b/sysdeps/unix/sysv/linux/i386/socket.S
index 7c539e17d2..f649470122 100644
--- a/sysdeps/unix/sysv/linux/i386/socket.S
+++ b/sysdeps/unix/sysv/linux/i386/socket.S
@@ -31,8 +31,12 @@
The .S files for the other calls just #define socket and #include this. */
-.globl P(__,socket)
-ENTRY (P(__,socket))
+#ifndef __socket
+#define __socket P(__,socket)
+#endif
+
+.globl __socket
+ENTRY (__socket)
/* Save registers. */
movl %ebx, %edx
@@ -56,6 +60,6 @@ ENTRY (P(__,socket))
/* Successful; return the syscall's value. */
ret
-PSEUDO_END (P(__,socket))
+PSEUDO_END (__socket)
-weak_alias (P(__,socket), socket)
+weak_alias (__socket, socket)
diff --git a/sysdeps/unix/sysv/linux/m68k/socket.S b/sysdeps/unix/sysv/linux/m68k/socket.S
index 51aaa4b6f9..81e5a213dd 100644
--- a/sysdeps/unix/sysv/linux/m68k/socket.S
+++ b/sysdeps/unix/sysv/linux/m68k/socket.S
@@ -31,8 +31,12 @@
The .S files for the other calls just #define socket and #include this. */
-.globl P(__,socket)
-ENTRY (P(__,socket))
+#ifndef __socket
+#define __socket P(__,socket)
+#endif
+
+.globl __socket
+ENTRY (__socket)
/* Save registers. */
move.l %d2, %a0
@@ -56,6 +60,6 @@ ENTRY (P(__,socket))
/* Successful; return the syscall's value. */
rts
-PSEUDO_END (P(__,socket))
+PSEUDO_END (__socket)
-weak_alias (P(__,socket), socket)
+weak_alias (__socket, socket)
diff --git a/sysdeps/unix/sysv/linux/mips/syscalls.list b/sysdeps/unix/sysv/linux/mips/syscalls.list
index 6dd9cd81c5..1c9c095ed3 100644
--- a/sysdeps/unix/sysv/linux/mips/syscalls.list
+++ b/sysdeps/unix/sysv/linux/mips/syscalls.list
@@ -16,19 +16,19 @@ sigsuspend - sigsuspend 1 __sigsuspend sigsuspend
# Socket functions; Linux/MIPS doesn't use the socketcall(2) wrapper;
# it's provided for compatibility, though.
#
-accept - accept 3 __accept accept
+ccept - accept 3 __libc_accept __accept accept
bind - bind 3 __bind bind
-connect - connect 3 __connect connect
+connect - connect 3 __libc_connect __connect connect
getpeername - getpeername 3 __getpeername getpeername
getsockname - getsockname 3 __getsockname getsockname
getsockopt - getsockopt 5 __getsockopt getsockopt
listen - listen 2 __listen listen
-recv - recv 4 __recv recv
-recvfrom - recvfrom 6 __recvfrom recvfrom
-recvmsg - recvmsg 3 __recvmsg recvmsg
-send - send 4 __send send
-sendmsg - sendmsg 3 __sendmsg sendmsg
-sendto - sendto 6 __sendto sendto
+recv - recv 4 __libc_recv __recv recv
+recvfrom - recvfrom 6 __libc_recvfrom __recvfrom recvfrom
+recvmsg - recvmsg 3 __libc_recvmsg __recvmsg recvmsg
+send - send 4 __libc_send __send send
+sendmsg - sendmsg 3 __libc_sendmsg __sendmsg sendmsg
+sendto - sendto 6 __libc_sendto __sendto sendto
setsockopt - setsockopt 5 __setsockopt setsockopt
shutdown - shutdown 2 __shutdown shutdown
socket - socket 3 __socket socket
diff --git a/sysdeps/unix/sysv/linux/net/if.h b/sysdeps/unix/sysv/linux/net/if.h
index 468fed23e6..dd33af0337 100644
--- a/sysdeps/unix/sysv/linux/net/if.h
+++ b/sysdeps/unix/sysv/linux/net/if.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1997 Free Software Foundation, Inc.
+/* Copyright (C) 1997, 1998 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -28,24 +28,40 @@
enum
{
IFF_UP = 0x1, /* Interface is up. */
+#define IFF_UP IFF_UP
IFF_BROADCAST = 0x2, /* Broadcast address valid. */
+#define IFF_BROADCAST IFF_BROADCAST
IFF_DEBUG = 0x4, /* Turn on debugging. */
+#define IFF_DEBUG IFF_DEBUG
IFF_LOOPBACK = 0x8, /* Is a loopback net. */
+#define IFF_LOOPBACK IFF_LOOPBACK
IFF_POINTOPOINT = 0x10, /* Interface is point-to-point link. */
+#define IFF_POINTOPOINT IFF_POINTOPOINT
IFF_NOTRAILERS = 0x20, /* Avoid use of trailers. */
+#define IFF_NOTRAILERS IFF_NOTRAILERS
IFF_RUNNING = 0x40, /* Resources allocated. */
+#define IFF_RUNNING IFF_RUNNING
IFF_NOARP = 0x80, /* No address resolution protocol. */
+#define IFF_NOARP IFF_NOARP
IFF_PROMISC = 0x100, /* Receive all packets. */
+#define IFF_PROMISC IFF_PROMISC
+
/* Not supported */
IFF_ALLMULTI = 0x200, /* Receive all multicast packets. */
+#define IFF_ALLMULTI IFF_ALLMULTI
IFF_MASTER = 0x400, /* Master of a load balancer. */
+#define IFF_MASTER IFF_MASTER
IFF_SLAVE = 0x800, /* Slave of a load balancer. */
+#define IFF_SLAVE IFF_SLAVE
IFF_MULTICAST = 0x1000, /* Supports multicast. */
+#define IFF_MULTICAST IFF_MULTICAST
IFF_PORTSEL = 0x2000, /* Can set media type. */
+#define IFF_PORTSEL IFF_PORTSEL
IFF_AUTOMEDIA = 0x4000 /* Auto media select active. */
+#define IFF_AUTOMEDIA IFF_AUTOMEDIA
};
/* The ifaddr structure contains information about one address of an
diff --git a/sysdeps/unix/sysv/linux/netinet/ip_fw.h b/sysdeps/unix/sysv/linux/netinet/ip_fw.h
index 322467b5ff..2139c37ba7 100644
--- a/sysdeps/unix/sysv/linux/netinet/ip_fw.h
+++ b/sysdeps/unix/sysv/linux/netinet/ip_fw.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991, 92, 93, 95, 96, 97 Free Software Foundation, Inc.
+/* Copyright (C) 1991, 92, 93, 95, 96, 97, 98 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
@@ -125,6 +125,7 @@ struct ip_fw {
#define IP_FW_OUT 2
#define IP_FW_ACCT 3
#define IP_FW_CHAINS 4 /* total number of ip_fw chains */
+#define IP_FW_MASQ 5
#define IP_FW_INSERT (IP_FW_BASE_CTL)
#define IP_FW_APPEND (IP_FW_BASE_CTL+1)
@@ -165,6 +166,11 @@ struct ip_fw {
#define IP_ACCT_FLUSH (IP_FW_FLUSH | (IP_FW_ACCT << IP_FW_SHIFT))
#define IP_ACCT_ZERO (IP_FW_ZERO | (IP_FW_ACCT << IP_FW_SHIFT))
+#define IP_FW_MASQ_INSERT (IP_FW_INSERT | (IP_FW_MASQ << IP_FW_SHIFT))
+#define IP_FW_MASQ_ADD (IP_FW_APPEND | (IP_FW_MASQ << IP_FW_SHIFT))
+#define IP_FW_MASQ_DEL (IP_FW_DELETE | (IP_FW_MASQ << IP_FW_SHIFT))
+#define IP_FW_MASQ_FLUSH (IP_FW_FLUSH | (IP_FW_MASQ << IP_FW_SHIFT))
+
struct ip_fwpkt
{
struct iphdr fwp_iph; /* IP header */
@@ -177,6 +183,21 @@ struct ip_fwpkt
char fwp_vianame[IFNAMSIZ]; /* interface name */
};
+#define IP_FW_MASQCTL_MAX 256
+#define IP_MASQ_MOD_NMAX 32
+
+struct ip_fw_masqctl
+{
+ int mctl_action;
+ union {
+ struct {
+ char name[IP_MASQ_MOD_NMAX];
+ char data[1];
+ } mod;
+ } u;
+};
+
+
/*
* timeouts for ip masquerading
*/
diff --git a/sysdeps/unix/sysv/linux/recv.S b/sysdeps/unix/sysv/linux/recv.S
index d895080f9a..cb9eb91b8c 100644
--- a/sysdeps/unix/sysv/linux/recv.S
+++ b/sysdeps/unix/sysv/linux/recv.S
@@ -1,4 +1,5 @@
#define socket recv
+#define __socket __libc_recv
#define NARGS 4
#include <socket.S>
-strong_alias (__recv, __libc_recv)
+weak_alias (__libc_recv, __recv)
diff --git a/sysdeps/unix/sysv/linux/recvfrom.S b/sysdeps/unix/sysv/linux/recvfrom.S
index a2c94a71bc..93a3110d0a 100644
--- a/sysdeps/unix/sysv/linux/recvfrom.S
+++ b/sysdeps/unix/sysv/linux/recvfrom.S
@@ -1,4 +1,5 @@
#define socket recvfrom
+#define __socket __libc_recvfrom
#define NARGS 6
#include <socket.S>
-strong_alias (__recvfrom, __libc_recvfrom)
+weak_alias (__libc_recvfrom, __recvfrom)
diff --git a/sysdeps/unix/sysv/linux/recvmsg.S b/sysdeps/unix/sysv/linux/recvmsg.S
index e5d8cdd16a..98be36be5b 100644
--- a/sysdeps/unix/sysv/linux/recvmsg.S
+++ b/sysdeps/unix/sysv/linux/recvmsg.S
@@ -1,4 +1,5 @@
#define socket recvmsg
+#define __socket __libc_recvmsg
#define NARGS 3
#include <socket.S>
-strong_alias (__recvmsg, __libc_recvmsg)
+weak_alias (__libc_recvmsg, __recvmsg)
diff --git a/sysdeps/unix/sysv/linux/send.S b/sysdeps/unix/sysv/linux/send.S
index 5191265f62..3f5e00ce9e 100644
--- a/sysdeps/unix/sysv/linux/send.S
+++ b/sysdeps/unix/sysv/linux/send.S
@@ -1,4 +1,5 @@
#define socket send
+#define __socket __libc_send
#define NARGS 4
#include <socket.S>
-strong_alias (__send, __libc_send)
+weak_alias (__libc_send, __send)
diff --git a/sysdeps/unix/sysv/linux/sendmsg.S b/sysdeps/unix/sysv/linux/sendmsg.S
index 6f511af1c7..c01d9b68e7 100644
--- a/sysdeps/unix/sysv/linux/sendmsg.S
+++ b/sysdeps/unix/sysv/linux/sendmsg.S
@@ -1,4 +1,5 @@
#define socket sendmsg
+#define __socket __libc_sendmsg
#define NARGS 3
#include <socket.S>
-strong_alias (__sendmsg, __libc_sendmsg)
+weak_alias (__libc_sendmsg, __sendmsg)
diff --git a/sysdeps/unix/sysv/linux/sendto.S b/sysdeps/unix/sysv/linux/sendto.S
index b34a609a93..8717b2bac1 100644
--- a/sysdeps/unix/sysv/linux/sendto.S
+++ b/sysdeps/unix/sysv/linux/sendto.S
@@ -1,4 +1,5 @@
#define socket sendto
+#define __socket __libc_sendto
#define NARGS 6
#include <socket.S>
-strong_alias (__sendto, __libc_sendto)
+weak_alias (__libc_sendto, __sendto)
diff --git a/sysdeps/unix/sysv/linux/siglist.c b/sysdeps/unix/sysv/linux/siglist.c
index 6bb8562899..43b229fc95 100644
--- a/sysdeps/unix/sysv/linux/siglist.c
+++ b/sysdeps/unix/sysv/linux/siglist.c
@@ -1,14 +1,14 @@
#include <stddef.h>
#include <signal.h>
-const char * const __new_sys_siglist[NSIG] =
+const char * const __new_sys_siglist[NSIG + 1] =
{
#define init_sig(sig, abbrev, desc) [sig] desc,
#include "siglist.h"
#undef init_sig
};
-const char * const __new_sys_sigabbrev[NSIG] =
+const char * const __new_sys_sigabbrev[NSIG + 1] =
{
#define init_sig(sig, abbrev, desc) [sig] abbrev,
#include "siglist.h"
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc32/socket.S b/sysdeps/unix/sysv/linux/sparc/sparc32/socket.S
index 4c65ac7f3c..8d6fd77c10 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc32/socket.S
+++ b/sysdeps/unix/sysv/linux/sparc/sparc32/socket.S
@@ -39,8 +39,12 @@
The .S files for the other calls just #define socket and #include this. */
-.globl P(__,socket)
-ENTRY (P(__,socket))
+#ifndef __socket
+#define __socket P(__,socket)
+#endif
+
+.globl __socket
+ENTRY (__socket)
/* Drop up to 6 arguments (recvfrom) into the memory allocated by
the caller for varargs, since that's really what we have. */
@@ -71,6 +75,6 @@ ENTRY (P(__,socket))
1: SYSCALL_ERROR_HANDLER
-END (P(__,socket))
+END (__socket)
-weak_alias (P(__,socket), socket)
+weak_alias (__socket, socket)
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/syscalls.list b/sysdeps/unix/sysv/linux/sparc/sparc64/syscalls.list
index ca142da29c..3f62a7cd53 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc64/syscalls.list
+++ b/sysdeps/unix/sysv/linux/sparc/sparc64/syscalls.list
@@ -14,19 +14,19 @@ mmap - mmap 6 __mmap mmap __mmap64 mmap64
# Override select.S in parent directory:
select - select 5 __select select
-accept - accept 3 __accept accept
+accept - accept 3 __libc_accept __accept accept
bind - bind 3 __bind bind
-connect - connect 3 __connect connect
+connect - connect 3 __libc_connect __connect connect
getpeername - getpeername 3 __getpeername getpeername
getsockname - getsockname 3 __getsockname getsockname
getsockopt - getsockopt 5 __getsockopt getsockopt
listen - listen 2 __listen listen
-recv - recv 4 __recv recv
-recvfrom - recvfrom 6 __recvfrom recvfrom
-recvmsg - recvmsg 3 __recvmsg recvmsg
-send - send 4 __send send
-sendmsg - sendmsg 3 __sendmsg sendmsg
-sendto - sendto 6 __sendto sendto
+recv - recv 4 __libc_recv __recv recv
+recvfrom - recvfrom 6 __libc_recvfrom __recvfrom recvfrom
+recvmsg - recvmsg 3 __libc_recvmsg __recvmsg recvmsg
+send - send 4 __libc_send __send send
+sendmsg - sendmsg 3 __libc_sendmsg __sendmsg sendmsg
+sendto - sendto 6 __libc_sendto __sendto sendto
setsockopt - setsockopt 5 __setsockopt setsockopt
shutdown - shutdown 2 __shutdown shutdown
socketpair - socketpair 4 __socketpair socketpair