Hash :
4e793c35
Author :
Date :
2009-09-11T13:57:55
canonicalize-lgpl: fix glibc bug with trailing slash Consolidate the m4 macros into a single file, since both modules now have to worry about replacing canonicalize_file_name on buggy glibc. * m4/canonicalize-lgpl.m4: Move contents... * m4/canonicalize.m4: ...here. (gl_CANONICALIZE_LGPL): Factor realpath check... (gl_FUNC_REALPATH_WORKS): ...into new macro. Enhance to catch glibc 2.3.5 bug, fixed 2005-04-27. (gl_FUNC_CANONICALIZE_FILENAME_MODE): Use it. (gl_PREREQ_CANONICALIZE_LGPL): Inline... (gl_CANONICALIZE_LGPL_SEPARATE): ...into this macro. * modules/canonicalize-lgpl (Files): Manage file rename. * m4/stdlib_h.m4 (gl_STDLIB_H_DEFAULTS): Provide default. * modules/stdlib (Makefile.am): Substitute witness. * lib/stdlib.in.h (canonicalize_file_name): Declare if replacement is needed. * lib/canonicalize-lgpl.c: Also compile if canonicalize_file_name replacement is required. * lib/canonicalize.c (canonicalize_file_name): Likewise. * doc/glibc-functions/canonicalize_file_name.texi (canonicalize_file_name): Document this. * doc/posix-functions/realpath.texi (realpath): Likewise. Signed-off-by: Eric Blake <ebb9@byu.net>
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38
@node realpath
@section @code{realpath}
@findex realpath
POSIX specification: @url{http://www.opengroup.org/onlinepubs/9699919799/functions/realpath.html}
Gnulib module: canonicalize-lgpl
Portability problems fixed by Gnulib:
@itemize
@item
This function is missing on some platforms:
mingw, BeOS.
@item
This function does not allow for a NULL @samp{resolved} parameter on
some platforms:
Solaris.
@item
This function does not always return an absolute path on some
platforms:
Solaris.
@item
This function fails to detect trailing slashes on non-directories on
some platforms:
glibc 2.3.5.
@item
This function fails to recognize non-directories followed @samp{..} on
some platforms:
cygwin.
@end itemize
Portability problems not fixed by Gnulib:
@itemize
@item
This function does not allow to determine the required size of output buffer;
the use of a non-NULL @samp{resolved} buffer is non-portable, since
PATH_MAX --- if it is defined --- is nothing more than a guess.
@end itemize