summaryrefslogtreecommitdiff
path: root/sysdeps
diff options
context:
space:
mode:
Diffstat (limited to 'sysdeps')
-rw-r--r--sysdeps/generic/fcntl.c4
-rw-r--r--sysdeps/generic/s_ldexp.c4
-rw-r--r--sysdeps/generic/s_ldexpf.c5
-rw-r--r--sysdeps/generic/s_ldexpl.c4
-rw-r--r--sysdeps/i386/fpu/s_finite.S1
-rw-r--r--sysdeps/i386/fpu/s_finitef.S1
-rw-r--r--sysdeps/i386/fpu/s_finitel.S1
-rw-r--r--sysdeps/ieee754/dbl-64/s_finite.c3
-rw-r--r--sysdeps/ieee754/flt-32/s_finitef.c5
-rw-r--r--sysdeps/ieee754/ldbl-128/s_finitel.c3
-rw-r--r--sysdeps/ieee754/ldbl-96/s_finitel.c3
-rw-r--r--sysdeps/mach/hurd/chown.c3
-rw-r--r--sysdeps/mach/hurd/connect.c3
-rw-r--r--sysdeps/mach/hurd/dup2.c5
-rw-r--r--sysdeps/mach/hurd/fcntl.c4
-rw-r--r--sysdeps/mach/hurd/fork.c3
-rw-r--r--sysdeps/posix/dup2.c5
-rw-r--r--sysdeps/unix/grantpt.c6
-rw-r--r--sysdeps/unix/syscalls.list4
-rw-r--r--sysdeps/unix/sysv/aix/chown.c5
-rw-r--r--sysdeps/unix/sysv/aix/connect.c3
-rw-r--r--sysdeps/unix/sysv/aix/fcntl.c4
-rw-r--r--sysdeps/unix/sysv/aix/fork.c4
-rw-r--r--sysdeps/unix/sysv/linux/connect.S1
-rw-r--r--sysdeps/unix/sysv/linux/i386/chown.c4
-rw-r--r--sysdeps/unix/sysv/linux/i386/fcntl.c5
-rw-r--r--sysdeps/unix/sysv/linux/m68k/chown.c3
-rw-r--r--sysdeps/unix/sysv/linux/powerpc/chown.c17
-rw-r--r--sysdeps/unix/sysv/linux/s390/s390-32/chown.c4
-rw-r--r--sysdeps/unix/sysv/linux/syscalls.list2
30 files changed, 86 insertions, 33 deletions
diff --git a/sysdeps/generic/fcntl.c b/sysdeps/generic/fcntl.c
index 6bc216cca6..aff3e84503 100644
--- a/sysdeps/generic/fcntl.c
+++ b/sysdeps/generic/fcntl.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991, 1995, 1996, 1997 Free Software Foundation, Inc.
+/* Copyright (C) 1991, 1995, 1996, 1997, 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
@@ -19,6 +19,8 @@
#include <errno.h>
#include <fcntl.h>
+#undef __fcntl
+
/* Perform file control operations on FD. */
int
__fcntl (fd, cmd)
diff --git a/sysdeps/generic/s_ldexp.c b/sysdeps/generic/s_ldexp.c
index 12c336fad4..20c444f7db 100644
--- a/sysdeps/generic/s_ldexp.c
+++ b/sysdeps/generic/s_ldexp.c
@@ -25,9 +25,9 @@ static char rcsid[] = "$NetBSD: s_ldexp.c,v 1.6 1995/05/10 20:47:40 jtc Exp $";
double value; int exp;
#endif
{
- if(!__finite(value)||value==0.0) return value;
+ if(!INTUSE(__finite)(value)||value==0.0) return value;
value = __scalbn(value,exp);
- if(!__finite(value)||value==0.0) __set_errno (ERANGE);
+ if(!INTUSE(__finite)(value)||value==0.0) __set_errno (ERANGE);
return value;
}
weak_alias (__ldexp, ldexp)
diff --git a/sysdeps/generic/s_ldexpf.c b/sysdeps/generic/s_ldexpf.c
index 1ecbe8346b..07f0c9ecff 100644
--- a/sysdeps/generic/s_ldexpf.c
+++ b/sysdeps/generic/s_ldexpf.c
@@ -28,9 +28,10 @@ static char rcsid[] = "$NetBSD: s_ldexpf.c,v 1.3 1995/05/10 20:47:42 jtc Exp $";
float value; int exp;
#endif
{
- if(!__finitef(value)||value==(float)0.0) return value;
+ if(!INTUSE(__finitef)(value)||value==(float)0.0) return value;
value = __scalbnf(value,exp);
- if(!__finitef(value)||value==(float)0.0) __set_errno (ERANGE);
+ if(!INTUSE(__finitef)(value)||value==(float)0.0) __set_errno (ERANGE);
return value;
}
+INTDEF(__ldexpf)
weak_alias (__ldexpf, ldexpf)
diff --git a/sysdeps/generic/s_ldexpl.c b/sysdeps/generic/s_ldexpl.c
index 123a6b3b58..a5603988f4 100644
--- a/sysdeps/generic/s_ldexpl.c
+++ b/sysdeps/generic/s_ldexpl.c
@@ -29,9 +29,9 @@ static char rcsid[] = "$NetBSD: $";
long double value; int exp;
#endif
{
- if(!__finitel(value)||value==0.0) return value;
+ if(!INTUSE(__finitel)(value)||value==0.0) return value;
value = __scalbnl(value,exp);
- if(!__finitel(value)||value==0.0) __set_errno (ERANGE);
+ if(!INTUSE(__finitel)(value)||value==0.0) __set_errno (ERANGE);
return value;
}
weak_alias (__ldexpl, ldexpl)
diff --git a/sysdeps/i386/fpu/s_finite.S b/sysdeps/i386/fpu/s_finite.S
index 63c766a950..52359acdc2 100644
--- a/sysdeps/i386/fpu/s_finite.S
+++ b/sysdeps/i386/fpu/s_finite.S
@@ -12,4 +12,5 @@ ENTRY(__finite)
shrl $31, %eax
ret
END (__finite)
+strong_alias(__finite, __finite_internal)
weak_alias (__finite, finite)
diff --git a/sysdeps/i386/fpu/s_finitef.S b/sysdeps/i386/fpu/s_finitef.S
index dabb71a115..98c6c59c00 100644
--- a/sysdeps/i386/fpu/s_finitef.S
+++ b/sysdeps/i386/fpu/s_finitef.S
@@ -12,4 +12,5 @@ ENTRY(__finitef)
shrl $31,%eax
ret
END (__finitef)
+strong_alias(__finitef, __finitef_internal)
weak_alias (__finitef, finitef)
diff --git a/sysdeps/i386/fpu/s_finitel.S b/sysdeps/i386/fpu/s_finitel.S
index acc5ad4cd0..b473443a04 100644
--- a/sysdeps/i386/fpu/s_finitel.S
+++ b/sysdeps/i386/fpu/s_finitel.S
@@ -11,4 +11,5 @@ ENTRY(__finitel)
shrl $31, %eax
ret
END (__finitel)
+strong_alias(__finitel, __finitel_internal)
weak_alias (__finitel, finitel)
diff --git a/sysdeps/ieee754/dbl-64/s_finite.c b/sysdeps/ieee754/dbl-64/s_finite.c
index b12ff42360..2317f4a105 100644
--- a/sysdeps/ieee754/dbl-64/s_finite.c
+++ b/sysdeps/ieee754/dbl-64/s_finite.c
@@ -22,6 +22,8 @@ static char rcsid[] = "$NetBSD: s_finite.c,v 1.8 1995/05/10 20:47:17 jtc Exp $";
#include "math.h"
#include "math_private.h"
+#undef __finite
+
#ifdef __STDC__
int __finite(double x)
#else
@@ -33,6 +35,7 @@ static char rcsid[] = "$NetBSD: s_finite.c,v 1.8 1995/05/10 20:47:17 jtc Exp $";
GET_HIGH_WORD(hx,x);
return (int)((u_int32_t)((hx&0x7fffffff)-0x7ff00000)>>31);
}
+INTDEF(__finite)
weak_alias (__finite, finite)
#ifdef NO_LONG_DOUBLE
strong_alias (__finite, __finitel)
diff --git a/sysdeps/ieee754/flt-32/s_finitef.c b/sysdeps/ieee754/flt-32/s_finitef.c
index baafc31aec..74019c763e 100644
--- a/sysdeps/ieee754/flt-32/s_finitef.c
+++ b/sysdeps/ieee754/flt-32/s_finitef.c
@@ -8,7 +8,7 @@
*
* Developed at SunPro, a Sun Microsystems, Inc. business.
* Permission to use, copy, modify, and distribute this
- * software is freely granted, provided that this notice
+ * software is freely granted, provided that this notice
* is preserved.
* ====================================================
*/
@@ -25,6 +25,8 @@ static char rcsid[] = "$NetBSD: s_finitef.c,v 1.4 1995/05/10 20:47:18 jtc Exp $"
#include "math.h"
#include "math_private.h"
+#undef __finitef
+
#ifdef __STDC__
int __finitef(float x)
#else
@@ -36,4 +38,5 @@ static char rcsid[] = "$NetBSD: s_finitef.c,v 1.4 1995/05/10 20:47:18 jtc Exp $"
GET_FLOAT_WORD(ix,x);
return (int)((u_int32_t)((ix&0x7fffffff)-0x7f800000)>>31);
}
+INTDEF(__finitef)
weak_alias (__finitef, finitef)
diff --git a/sysdeps/ieee754/ldbl-128/s_finitel.c b/sysdeps/ieee754/ldbl-128/s_finitel.c
index dd176c1e7a..a2372dc8d9 100644
--- a/sysdeps/ieee754/ldbl-128/s_finitel.c
+++ b/sysdeps/ieee754/ldbl-128/s_finitel.c
@@ -25,6 +25,8 @@ static char rcsid[] = "$NetBSD: $";
#include "math.h"
#include "math_private.h"
+#undef __finitel
+
#ifdef __STDC__
int __finitel(long double x)
#else
@@ -37,4 +39,5 @@ static char rcsid[] = "$NetBSD: $";
return (int)((u_int64_t)((hx&0x7fffffffffffffffLL)
-0x7fff000000000000LL)>>63);
}
+INTDEF(__finitel)
weak_alias (__finitel, finitel)
diff --git a/sysdeps/ieee754/ldbl-96/s_finitel.c b/sysdeps/ieee754/ldbl-96/s_finitel.c
index 6e444e90d0..3bbb21a2bb 100644
--- a/sysdeps/ieee754/ldbl-96/s_finitel.c
+++ b/sysdeps/ieee754/ldbl-96/s_finitel.c
@@ -26,6 +26,8 @@ static char rcsid[] = "$NetBSD: $";
#include "math.h"
#include "math_private.h"
+#undef __finitel
+
#ifdef __STDC__
int __finitel(long double x)
#else
@@ -37,4 +39,5 @@ static char rcsid[] = "$NetBSD: $";
GET_LDOUBLE_EXP(exp,x);
return (int)((u_int32_t)((exp&0x7fff)-0x7fff)>>31);
}
+INTDEF(__finitel)
weak_alias (__finitel, finitel)
diff --git a/sysdeps/mach/hurd/chown.c b/sysdeps/mach/hurd/chown.c
index 5c0d8a05ec..cab26fc419 100644
--- a/sysdeps/mach/hurd/chown.c
+++ b/sysdeps/mach/hurd/chown.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991, 1992, 1994, 1995, 1997 Free Software Foundation, Inc.
+/* Copyright (C) 1991,1992,1994,1995,1997,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
@@ -39,4 +39,5 @@ __chown (file, owner, group)
return 0;
}
+INTDEF(__chown)
weak_alias (__chown, chown)
diff --git a/sysdeps/mach/hurd/connect.c b/sysdeps/mach/hurd/connect.c
index 178e335eca..30883f65ae 100644
--- a/sysdeps/mach/hurd/connect.c
+++ b/sysdeps/mach/hurd/connect.c
@@ -24,6 +24,8 @@
#include <sys/un.h>
#include <hurd/ifsock.h>
+#undef __connect
+
/* Open a connection on socket FD to peer at ADDR (which LEN bytes long).
For connectionless socket types, just set the default address to send to
and the only address from which to accept transmissions.
@@ -72,4 +74,5 @@ __connect (int fd, __CONST_SOCKADDR_ARG addrarg, socklen_t len)
return err ? __hurd_dfail (fd, err) : 0;
}
+INTDEF(__connect)
weak_alias (__connect, connect)
diff --git a/sysdeps/mach/hurd/dup2.c b/sysdeps/mach/hurd/dup2.c
index 6038e87fd9..64d69d9af1 100644
--- a/sysdeps/mach/hurd/dup2.c
+++ b/sysdeps/mach/hurd/dup2.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991, 92, 93, 94, 95, 97 Free Software Foundation, Inc.
+/* Copyright (C) 1991, 92, 93, 94, 95, 97, 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
@@ -22,6 +22,8 @@
#include <hurd.h>
#include <hurd/fd.h>
+#undef __dup2
+
/* Duplicate FD to FD2, closing the old FD2 and making FD2 be
open on the same file as FD is. Return FD2 or -1. */
@@ -132,4 +134,5 @@ __dup2 (fd, fd2)
return fd2;
}
+INTDEF(__dup2)
weak_alias (__dup2, dup2)
diff --git a/sysdeps/mach/hurd/fcntl.c b/sysdeps/mach/hurd/fcntl.c
index 3b4a0375cd..9c03b3cbc2 100644
--- a/sysdeps/mach/hurd/fcntl.c
+++ b/sysdeps/mach/hurd/fcntl.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1992,93,94,95,96,97,99,2000 Free Software Foundation, Inc.
+/* Copyright (C) 1992-1997,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
@@ -23,6 +23,8 @@
#include <stdarg.h>
#include <sys/file.h> /* XXX for LOCK_* */
+#undef __fcntl
+
/* Perform file control operations on FD. */
int
diff --git a/sysdeps/mach/hurd/fork.c b/sysdeps/mach/hurd/fork.c
index 635110a9cb..b730b344f3 100644
--- a/sysdeps/mach/hurd/fork.c
+++ b/sysdeps/mach/hurd/fork.c
@@ -27,6 +27,8 @@
#include <assert.h>
#include "hurdmalloc.h" /* XXX */
+#undef __fork
+
/* Things that want to be locked while forking. */
symbol_set_declare (_hurd_fork_locks)
@@ -675,4 +677,5 @@ __fork (void)
return err ? __hurd_fail (err) : pid;
}
+INTDEF(__fork)
weak_alias (__fork, fork)
diff --git a/sysdeps/posix/dup2.c b/sysdeps/posix/dup2.c
index 49a8e57ea1..bc8d422831 100644
--- a/sysdeps/posix/dup2.c
+++ b/sysdeps/posix/dup2.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991, 92, 93, 95, 96, 97 Free Software Foundation, Inc.
+/* Copyright (C) 1991, 92, 93, 95, 96, 97, 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
@@ -21,6 +21,8 @@
#include <limits.h>
#include <unistd.h>
+#undef __dup2
+
/* Duplicate FD to FD2, closing the old FD2 and making FD2 be
open the same file as FD is. Return FD2 or -1. */
@@ -57,4 +59,5 @@ __dup2 (fd, fd2)
return fcntl (fd, F_DUPFD, fd2);
}
+INTDEF(__dup2)
weak_alias (__dup2, dup2)
diff --git a/sysdeps/unix/grantpt.c b/sysdeps/unix/grantpt.c
index dad7d16b43..f24932b64b 100644
--- a/sysdeps/unix/grantpt.c
+++ b/sysdeps/unix/grantpt.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1998, 2000, 2001 Free Software Foundation, Inc.
+/* Copyright (C) 1998, 2000, 2001, 2002 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Zack Weinberg <zack@rabi.phys.columbia.edu>, 1998.
@@ -116,7 +116,7 @@ grantpt (int fd)
uid = __getuid ();
if (st.st_uid != uid)
{
- if (__chown (buf, uid, st.st_gid) < 0)
+ if (INTUSE(__chown) (buf, uid, st.st_gid) < 0)
goto helper;
}
@@ -132,7 +132,7 @@ grantpt (int fd)
/* Make sure the group of the device is that special group. */
if (st.st_gid != gid)
{
- if (__chown (buf, uid, gid) < 0)
+ if (INTUSE(__chown) (buf, uid, gid) < 0)
goto helper;
}
diff --git a/sysdeps/unix/syscalls.list b/sysdeps/unix/syscalls.list
index 3c60597329..f13cfd42f0 100644
--- a/sysdeps/unix/syscalls.list
+++ b/sysdeps/unix/syscalls.list
@@ -6,9 +6,9 @@ chdir - chdir i:s __chdir chdir
chmod - chmod i:si __chmod chmod
chown - chown i:sii __chown chown
chroot - chroot i:s chroot
-close - close i:i __libc_close __close close
+close - close i:i __libc_close __close close __close_internal
dup - dup i:i __dup dup
-dup2 - dup2 i:ii __dup2 dup2
+dup2 - dup2 i:ii __dup2 dup2 __dup2_internal
fchdir - fchdir i:i __fchdir fchdir
fcntl - fcntl i:iiF __libc_fcntl __fcntl fcntl
fstatfs - fstatfs i:ip __fstatfs fstatfs
diff --git a/sysdeps/unix/sysv/aix/chown.c b/sysdeps/unix/sysv/aix/chown.c
index 568c26ac77..037b14b276 100644
--- a/sysdeps/unix/sysv/aix/chown.c
+++ b/sysdeps/unix/sysv/aix/chown.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1999, 2000 Free Software Foundation, Inc.
+/* Copyright (C) 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
@@ -18,8 +18,11 @@
#include <unistd.h>
+#undef __chown
+
int
__chown (const char *file, uid_t owner, gid_t group)
{
return chown (file, owner, group);
}
+INTDEF(__chown)
diff --git a/sysdeps/unix/sysv/aix/connect.c b/sysdeps/unix/sysv/aix/connect.c
index 7fb636dea9..2f58be1ede 100644
--- a/sysdeps/unix/sysv/aix/connect.c
+++ b/sysdeps/unix/sysv/aix/connect.c
@@ -1,8 +1,11 @@
/* This is a system call. We only have to provide the wrapper. */
#include <sys/socket.h>
+#undef __connect
+
int
__connect (int fd, __CONST_SOCKADDR_ARG addr, socklen_t len)
{
return connect (fd, addr, len);
}
+INTDEF(__connect)
diff --git a/sysdeps/unix/sysv/aix/fcntl.c b/sysdeps/unix/sysv/aix/fcntl.c
index 8c5ba154c2..43f21b6e58 100644
--- a/sysdeps/unix/sysv/aix/fcntl.c
+++ b/sysdeps/unix/sysv/aix/fcntl.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1999, 2000, 2001 Free Software Foundation, Inc.
+/* Copyright (C) 1999, 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
@@ -19,6 +19,8 @@
#include <fcntl.h>
#include <stdarg.h>
+#undef __fcntl
+
extern int kfcntl (int fdes, int cmd, unsigned long int arg);
int
diff --git a/sysdeps/unix/sysv/aix/fork.c b/sysdeps/unix/sysv/aix/fork.c
index f31f3428a9..085342b716 100644
--- a/sysdeps/unix/sysv/aix/fork.c
+++ b/sysdeps/unix/sysv/aix/fork.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1999, 2000 Free Software Foundation, Inc.
+/* Copyright (C) 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
@@ -18,10 +18,12 @@
#include <unistd.h>
+#undef __fork
pid_t
__fork (void)
{
return kfork ();
}
+INTDEF(__fork)
strong_alias (__fork, fork)
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 <socket.S>
+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 <sys/syscall.h>
#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 <shlib-compat.h>
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