Update.
authorUlrich Drepper <drepper@redhat.com>
Thu, 11 Jul 2002 16:34:20 +0000 (16:34 +0000)
committerUlrich Drepper <drepper@redhat.com>
Thu, 11 Jul 2002 16:34:20 +0000 (16:34 +0000)
2002-07-11  Ulrich Drepper  <drepper@redhat.com>

* Versions.def (libc): Add GLIBC_2.3.
* stdlib/Versions [libc] (GLIBC_2.3): Add realpath.
* stdlib/canonicalize.c: Add compatibility version for realpath
and make new code available in GLIBC_2.3.

ChangeLog
Versions.def
stdlib/Versions
stdlib/canonicalize.c

index 6a402b1..c399d99 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,10 @@
+2002-07-11  Ulrich Drepper  <drepper@redhat.com>
+
+       * Versions.def (libc): Add GLIBC_2.3.
+       * stdlib/Versions [libc] (GLIBC_2.3): Add realpath.
+       * stdlib/canonicalize.c: Add compatibility version for realpath
+       and make new code available in GLIBC_2.3.
+
 2002-07-06  Bruno Haible  <bruno@clisp.org>
 
        * malloc/hooks.c (public_gET_STATe): Access max_total_mem in mp_.
index 6537c37..e90eeeb 100644 (file)
@@ -15,6 +15,7 @@ libc {
   GLIBC_2.2.4
   GLIBC_2.2.5
   GLIBC_2.2.6
+  GLIBC_2.3
 %ifdef USE_IN_LIBIO
   HURD_CTHREADS_0.3
 %endif
index c2e17e0..fc1e5a1 100644 (file)
@@ -90,6 +90,10 @@ libc {
     # used by new G++ ABI
     __cxa_atexit; __cxa_finalize;
   }
+  GLIBC_2.3 {
+    # Silent change in SUS.
+    realpath;
+  }
   GLIBC_PRIVATE {
     # functions which have an additional interface since they are
     # are cancelable.
index c859288..3394048 100644 (file)
@@ -26,6 +26,8 @@
 #include <errno.h>
 #include <stddef.h>
 
+#include <shlib-compat.h>
+
 /* Return the canonical absolute name of file NAME.  A canonical name
    does not contain any `.', `..' components nor any repeated path
    separators ('/') or symlinks.  All path components must exist.  If
@@ -204,7 +206,23 @@ error:
     free (rpath);
   return NULL;
 }
-weak_alias (__realpath, realpath)
+versioned_symbol (libc, __realpath, realpath, GLIBC_2_3);
+
+
+#if SHLIB_COMPAT(libc, GLIBC_2_0, GLIBC_2_3)
+char *
+__old_realpath (const char *name, char *resolved)
+{
+  if (resolved == NULL)
+    {
+      __set_errno (EINVAL);
+      return NULL;
+    }
+
+  return __realpath (name, resolved);
+}
+compat_symbol (libc, __old_realpath, realpath, GLIBC_2_0);
+#endif
 
 
 char *