Update.
authorUlrich Drepper <drepper@redhat.com>
Sun, 8 Mar 1998 18:18:43 +0000 (18:18 +0000)
committerUlrich Drepper <drepper@redhat.com>
Sun, 8 Mar 1998 18:18:43 +0000 (18:18 +0000)
1998-03-08  Ulrich Drepper  <drepper@cygnus.com>

* sysdeps/unix/sysv/linux/chown.c: Add versioning stuff.

ChangeLog
sysdeps/unix/sysv/linux/chown.c

index 1d4d674..93337e1 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,7 @@
+1998-03-08  Ulrich Drepper  <drepper@cygnus.com>
+
+       * sysdeps/unix/sysv/linux/chown.c: Add versioning stuff.
+
 1998-03-07  Andreas Jaeger  <aj@arthur.rhein-neckar.de>
 
        * sysdeps/unix/sysv/linux/chown.c: New file for compatibility of
index f380d93..578dfc7 100644 (file)
@@ -38,7 +38,7 @@ static int __libc_old_chown;
 
 
 int
-__chown (const char *file, uid_t owner, gid_t group)
+__real_chown (const char *file, uid_t owner, gid_t group)
 {
   int result;
 
@@ -56,13 +56,36 @@ __chown (const char *file, uid_t owner, gid_t group)
 
   return __lchown (file, owner, group);
 }
-#else
-/* compiling under older kernels */
+#endif
+
+
+#if !defined __NR_lchown || \
+    (defined HAVE_ELF && defined PIC && defined DO_VERSIONING)
+/* compiling under older kernels or for compatibiity */
 int
-__chown (const char *file, uid_t owner, gid_t group)
+__chown_is_lchown (const char *file, uid_t owner, gid_t group)
 {
-  return __syscall_chown (file, owner, group);
+  return __lchown (file, owner, group);
 }
 #endif
 
-weak_alias (__chown, chown)
+#if defined HAVE_ELF && defined PIC && defined DO_VERSIONING
+symbol_version (__chown_is_lchown, __chown, GLIBC_2.0)
+symbol_version (__chown_is_lchown, chown, GLIBC_2.0)
+
+# ifdef __NR_lchown
+default_symbol_version (__real_chown, __chown, GLIBC_2.1)
+default_symbol_version (__real_chown, chown, GLIBC_2.1)
+# else
+default_symbol_version (__chown_is_lchown, __chown, GLIBC_2.1)
+default_symbol_version (__chown_is_lchown, chown, GLIBC_2.1)
+# endif
+#else
+# ifdef __NR_lchown
+strong_alias (__real_chown, __chown)
+weak_alias (__real_chown, chown)
+# else
+strong_alias (__chown_is_lchown, __chown)
+weak_alias (__chown_is_lchown, chown)
+# endif
+#endif