Hi, the CVS version from 20020401 (actually, the version that Debian packages currently), has the following change to gdb_realpath:
2002-03-14 Richard Henderson <[EMAIL PROTECTED]> * configure.in: Detect declaration for canonicalize_file_name. * utils.c (canonicalize_file_name): Declare, if needed. (gdb_realpath): Prefer realpath if available and usable. * config.in, configure: Rebuild. However, the code doesn't check correctly if realpath is usable. On the GNU/Hurd, realpath exists but it is _not_ usable, because there is no limit to filenames, and neither PATH_MAX nor MAXHOSTNAMELEN is defined, and pathconf on _PC_PATH_MAX returns -1. # elif defined (HAVE_UNISTD_H) && defined(HAVE_ALLOCA) char *buf = alloca ((size_t)pathconf ("/", _PC_PATH_MAX)); # define USE_REALPATH alloca(-1) fails of course, and this leads to 0 being returned. I see no reason to prefer realpath over canonicalize_path_name, its interface is horrible broken (and not fixable, there is always the possibility of a buffer overflow when using realpath on the Hurd) I see no reason to prefer realpath over canonicalize_path_name, its interface is horrible broken (and not fixable, eg there is no way to use it "properly" on the Hurd, as its behaviour is not well defined if PATH_MAX is not available.) There is no rationale in the ChangeLog, my suggestion is to revert the change and prefer canonicalize_file_name if it is available, unless there is a reason not to do so I don't know about. But in any case, on the *-*-gnu* platform, canonicalize_file_name must be used. (That is the platform I care about, but the current code is obviously broken on all systems where _PC_PATH_MAX on / returns -1. As I said, there is no real portable fix for a system that does this and doesn't have canonicalize_file_name, because realpath is quite broken). Thanks, Marcus _______________________________________________ Bug-gdb mailing list [EMAIL PROTECTED] http://mail.gnu.org/mailman/listinfo/bug-gdb