From 6b87a5642cfdd502b0586cbd09bcd91f9021e114 Mon Sep 17 00:00:00 2001 From: Ulrich Drepper Date: Tue, 9 Apr 2002 20:36:24 +0000 Subject: Update. * sysdeps/mach/hurd/chown.c: Use INTDEF for __chown. * sysdeps/unix/sysv/aix/chown.c: Likewise. * sysdeps/unix/grantpt.c: Use INTUSE for __chown calls. * sysdeps/unix/sysv/linux/m68k/chown.c: Likewise. * sysdeps/unix/sysv/linux/powerpc/chown.c: Likewise. * sysdeps/unix/sysv/linux/i386/chown.c: Use INTDEF2 to define __chown_internal. * sysdeps/unix/sysv/linux/s390/s390-32//chown.c: Likewise. * intl/dcngettext.c [_LIBC]: Use INTUSE for __dcngettext. * intl/dngettext.c [_LIBC] (DCNGETTEXT): Use INTUSE. * intl/ngettext.c: Likewise. * include/sys/socket.h: Declare __connect_internal and define __connect macro if not NOT_IN_libc. * sysdeps/mach/hurd/connect.c: Use INTDEF for __connect. * sysdeps/unix/sysv/aix/connect.c: Likewise. * sysdeps/unix/sysv/linux/connect.S: Add __connect_internal alias. * include/unistd.h: Declare __close_internal and define __close macro if not NOT_IN_libc. * libio/libioP.h (JUMO0, JUMP1, JUMP2, JUMP3, WJUMP0, WJUMP1, WJUMP2, WJUMP3): Add extra parenthesis to avoid expanding element names with macors like __close. * sysdeps/unix/syscalls.list: Add __close_internal alias. * include/unistd.h: Declare __dup2_internal and define __dup2 macro if not NOT_IN_libc. * sysdeps/mach/hurd/dup2.c: Use INTDEF for __dup2. * sysdeps/posix/dup2.c: Use INTDEF for __dup2. * sysdeps/unix/syscalls.list: Add __dup2_internal alias. * include/unistd.h: Declare __fork_internal and define __fork macro if not NOT_IN_libc. * sysdeps/mach/hurd/fork.c: Use INTDEF for __fork. * sysdeps/unix/sysv/aix/fork.c: Likewise. * sysdeps/unix/sysv/linux/syscalls.list: Add __fork_internal alias. * include/stdio_ext.h: Declare __fsetlocking_internal and define __fsetlocking macro to use it if not NOT_IN_libc. * libio/__fsetlocking.c: Use INTDEF for __fsetlocking. * libio/__fbufsize.c: Correct copyright. * libio/__flbf.c: Likewise. * libio/__fpending.c: Likewise. * libio/__fpurge.c: Likewise. * libio/__freadable.c: Likewise. * libio/__freading.c: Likewise. * libio/__fsetlocking.c: Likewise. * libio/__fwritable.c: Likewise. * libio/__fwriting.c: Likewise. * include/stdio.h: Declare __asprintf_internal and define __asprintf macro to use it if not NOT_IN_libc. * stdio-common/asprintf.c: Use INTDEF for __asprintf. * include/mntent.h: Declare __setmntent_internal, __getmntent_r_internal, __endmntent_internal. Define __setmntent, __getmntent_r, and __endmntent macros to use these functions if not NOT_IN_libc. * misc/mntent_r.c: Use INTDEF for __setmntent, __getmntent_r, and __endmntent. * include/math.h: Declare __finite_internal, __finitef_internal, and __finitel_internal. Redefine isfinite macro if in libc or libm using these functions. * sysdeps/generic/s_ldexp.c: Use INTUSE for __finite calls. * sysdeps/generic/s_ldexpf.c: Use INTUSE for __finitef calls. * sysdeps/generic/s_ldexpl.c: Use INTUSE for __finitel calls. * sysdeps/i386/fpu/s_finite.S: Define _internal alias. * sysdeps/i386/fpu/s_finitef.S: Likewise. * sysdeps/i386/fpu/s_finitel.S: Likewise. * sysdeps/ieee754/dbl-64/s_finite.c: Likewise. * sysdeps/ieee754/flt-32/s_finitef.c: Likewise. * sysdeps/ieee754/ldbl-128/s_finitel.c: Likewise. * sysdeps/ieee754/ldbl-96/s_finitel.c: Likewise. * include/fcntl.h: Declare __fcntl_internal. Define __fcntl macro to use this function if not NOT_IN_libc. * libio/iofdopen.c (_IO_fcntl): Use INTUSE. * sysdeps/generic/fcntl.c: Use INTDEF for __fcntl. * sysdeps/mach/hurd/fcntl.c: Likewise. * sysdeps/unix/sysv/aix/fcntl.c: Likewise. * sysdeps/unix/sysv/linux/i386/fcntl.c: Likewise. * include/argz.h: Declare __argz_count_internal and __argz_stringify_internal. * intl/l10nflist.c [_LIBC]: Use INTUSE for __argz_count and __argz_stringify. * string/argz-count.c: Use INTDEF for __argz_count. * string/argz-stringify.c: Use INTDEF for __argz_stringify. * include/stdlib.h: Declare __cxa_atexit_internal and define __cxa_atexit macro if not NOT_IN_libc. * stdlib/cxa_atexit.c: Use INTDEF for __cxa_atexit. * dlfcn/Makefile: Define NOT_IN_libc when compiling modcxaatexit.c. * assert/assert.c: Use INTDEF for __assert_fail. * assert/__assert.c: Use INTUSE for call to __assert_fail. * include/assert.h: Declare __assert_fail_internal. --- sysdeps/unix/sysv/linux/connect.S | 1 + sysdeps/unix/sysv/linux/i386/chown.c | 4 +++- sysdeps/unix/sysv/linux/i386/fcntl.c | 5 ++++- sysdeps/unix/sysv/linux/m68k/chown.c | 3 ++- sysdeps/unix/sysv/linux/powerpc/chown.c | 17 +++++++++-------- sysdeps/unix/sysv/linux/s390/s390-32/chown.c | 4 +++- sysdeps/unix/sysv/linux/syscalls.list | 2 +- 7 files changed, 23 insertions(+), 13 deletions(-) (limited to 'sysdeps/unix/sysv/linux') diff --git a/sysdeps/unix/sysv/linux/connect.S b/sysdeps/unix/sysv/linux/connect.S index d1dd69a217..2de35180fc 100644 --- a/sysdeps/unix/sysv/linux/connect.S +++ b/sysdeps/unix/sysv/linux/connect.S @@ -2,4 +2,5 @@ #define __socket __libc_connect #define NARGS 3 #include +strong_alias (__libc_connect, __connect_internal) weak_alias (__libc_connect, __connect) diff --git a/sysdeps/unix/sysv/linux/i386/chown.c b/sysdeps/unix/sysv/linux/i386/chown.c index 025e58df08..a54f2b5dd3 100644 --- a/sysdeps/unix/sysv/linux/i386/chown.c +++ b/sysdeps/unix/sysv/linux/i386/chown.c @@ -1,4 +1,4 @@ -/* Copyright (C) 1998, 1999, 2000 Free Software Foundation, Inc. +/* Copyright (C) 1998, 1999, 2000, 2002 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 @@ -154,10 +154,12 @@ compat_symbol (libc, _chown_is_lchown, chown, GLIBC_2_0); #endif #ifdef __NR_lchown +INTDEF2(__real_chown, __chown) strong_alias (__real_chown, _real_chown) versioned_symbol (libc, __real_chown, __chown, GLIBC_2_1); versioned_symbol (libc, _real_chown, chown, GLIBC_2_1); #else +INTDEF2(__chown_is_lchown, __chown) strong_alias (__chown_is_lchown, __chown_is_lchown21) strong_alias (__chown_is_lchown, _chown_is_lchown21) versioned_symbol (libc, __chown_is_lchown21, __chown, GLIBC_2_1); diff --git a/sysdeps/unix/sysv/linux/i386/fcntl.c b/sysdeps/unix/sysv/linux/i386/fcntl.c index 6e4d591c58..3c013cc962 100644 --- a/sysdeps/unix/sysv/linux/i386/fcntl.c +++ b/sysdeps/unix/sysv/linux/i386/fcntl.c @@ -1,4 +1,4 @@ -/* Copyright (C) 2000 Free Software Foundation, Inc. +/* Copyright (C) 2000, 2002 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 @@ -25,6 +25,8 @@ #include #include "../kernel-features.h" +#undef __fcntl + extern int __syscall_fcntl (int __fd, int __cmd, ...); #ifdef __NR_fcntl64 extern int __syscall_fcntl64 (int __fd, int __cmd, ...); @@ -130,6 +132,7 @@ __libc_fcntl (int fd, int cmd, ...) return -1; #endif /* __ASSUME_FCNTL64 */ } +INTDEF2(__libc_fcntl, __fcntl); weak_alias (__libc_fcntl, __fcntl) weak_alias (__libc_fcntl, fcntl) diff --git a/sysdeps/unix/sysv/linux/m68k/chown.c b/sysdeps/unix/sysv/linux/m68k/chown.c index 50e11c1aa9..f8f4b5c0af 100644 --- a/sysdeps/unix/sysv/linux/m68k/chown.c +++ b/sysdeps/unix/sysv/linux/m68k/chown.c @@ -1,4 +1,4 @@ -/* Copyright (C) 1998, 2000 Free Software Foundation, Inc. +/* Copyright (C) 1998, 2000, 2002 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 @@ -71,4 +71,5 @@ __chown (const char *file, uid_t owner, gid_t group) return INLINE_SYSCALL (chown, 3, CHECK_STRING (file), owner, group); #endif } +INTDEF(__chown) weak_alias (__chown, chown) diff --git a/sysdeps/unix/sysv/linux/powerpc/chown.c b/sysdeps/unix/sysv/linux/powerpc/chown.c index a446277c96..23eaefa5e6 100644 --- a/sysdeps/unix/sysv/linux/powerpc/chown.c +++ b/sysdeps/unix/sysv/linux/powerpc/chown.c @@ -1,5 +1,5 @@ /* chown() compatibility. - Copyright (C) 1998, 2000 Free Software Foundation, Inc. + Copyright (C) 1998, 2000, 2002 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 @@ -44,7 +44,7 @@ __chown (const char *file, uid_t owner, gid_t group) int loopct; int filelen; static int libc_old_chown = 0 /* -1=old linux, 1=new linux, 0=unknown */; - + if (libc_old_chown == 1) return __syscall_chown (file, owner, group); @@ -62,7 +62,7 @@ __chown (const char *file, uid_t owner, gid_t group) libc_old_chown = -1; } #endif - + err = __readlink (file, link, PATH_MAX+1); if (err == -1) { @@ -83,7 +83,7 @@ __chown (const char *file, uid_t owner, gid_t group) for (loopct = 0; loopct < 128; loopct++) { int linklen; - + if (err >= PATH_MAX+1) { errno = ENAMETOOLONG; @@ -93,13 +93,13 @@ __chown (const char *file, uid_t owner, gid_t group) link[err] = 0; /* Null-terminate string, just-in-case. */ linklen = strlen (link) + 1; - + if (link[0] == '/') memcpy (path, link, linklen); else { filelen = strlen (path); - + while (filelen > 1 && path[filelen-1] == '/') filelen--; while (filelen > 0 && path[filelen-1] != '/') @@ -113,9 +113,9 @@ __chown (const char *file, uid_t owner, gid_t group) } err = __readlink(path, link, PATH_MAX+1); - + if (err == -1) - { + { errno = old_errno; return __lchown(path, owner, group); } @@ -123,6 +123,7 @@ __chown (const char *file, uid_t owner, gid_t group) errno = ELOOP; return -1; } +INTDEF(__chown) #include versioned_symbol (libc, __chown, chown, GLIBC_2_1); diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/chown.c b/sysdeps/unix/sysv/linux/s390/s390-32/chown.c index 1ccf578766..64d7285f13 100644 --- a/sysdeps/unix/sysv/linux/s390/s390-32/chown.c +++ b/sysdeps/unix/sysv/linux/s390/s390-32/chown.c @@ -1,4 +1,4 @@ -/* Copyright (C) 2000, 2001 Free Software Foundation, Inc. +/* Copyright (C) 2000, 2001, 2002 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 @@ -109,10 +109,12 @@ strong_alias (__chown_is_lchown, _chown_is_lchown) compat_symbol (libc, __chown_is_lchown, __chown, GLIBC_2_0); compat_symbol (libc, _chown_is_lchown, chown, GLIBC_2_0); +INTDEF2(__real_chown, __chown) strong_alias (__real_chown, _real_chown) versioned_symbol (libc, __real_chown, __chown, GLIBC_2_1); versioned_symbol (libc, _real_chown, chown, GLIBC_2_1); #else +INTDEF2(__real_chown, __chown) strong_alias (__real_chown, __chown) weak_alias (__real_chown, chown) #endif diff --git a/sysdeps/unix/sysv/linux/syscalls.list b/sysdeps/unix/sysv/linux/syscalls.list index 7ca6e48c8c..e443ca60c1 100644 --- a/sysdeps/unix/sysv/linux/syscalls.list +++ b/sysdeps/unix/sysv/linux/syscalls.list @@ -8,7 +8,7 @@ create_module EXTRA create_module 3 create_module delete_module EXTRA delete_module 3 delete_module fdatasync - fdatasync i:i fdatasync flock - flock i:ii __flock flock -fork - fork i: __libc_fork __fork fork +fork - fork i: __libc_fork __fork fork __fork_internal get_kernel_syms EXTRA get_kernel_syms i:p get_kernel_syms getegid - getegid i: __getegid getegid geteuid - geteuid i: __geteuid geteuid -- cgit 1.4.1