bug-gnulib
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: libgnu: rpl_getcwd broken on OpenBSD 4.6


From: Mats Erik Andersson
Subject: Re: libgnu: rpl_getcwd broken on OpenBSD 4.6
Date: Fri, 18 Nov 2011 21:07:38 +0100
User-agent: Mutt/1.5.18 (2008-05-17)

Dear Paul,

fredag den 18 november 2011 klockan 10:23 skrev Paul Eggert detta:
> On 11/18/11 02:25, Mats Erik Andersson wrote:
> > I will back track the failure more
> 
> Thanks.  
> 
> A similar problem was recently reported for octave on mingw; see
> <http://lists.gnu.org/archive/html/bug-gnulib/2011-11/msg00237.html>.
> That bug report had a bit more information, enough so that
> I committed a partial fix for it; see
> <http://lists.gnu.org/archive/html/bug-gnulib/2011-11/msg00245.html>.
> We're awaiting more information there.  Quite possibly my
> commit will affect OpenBSD too, so you probably want to try the
> updated gnulib when you investigate the failure.

My original errors were verbatim to "msg00237.html", modulo elementary
notions. After your pushed commit the issue with fdopendir() is resolved,
but the fstatat() error remains. The following is my manual traceback.

Regards,
  Mats E A


/* Build steps in "lib/", i.e., GNU lib */

  CC     fdopendir.o
  CC     forkpty.o
  CC     fstatat.o
  CC     getcwd.o
  CC     getcwd-lgpl.o

/* Build step for GNU Inetutils */

  CCLD   ftp
cmds.o(.text+0x194): In function `another':
/tmp/inetutils/ftp/cmds.c:171: warning: strcpy() is almost always misused, 
please use strlcpy()
cmds.o(.text+0x1578): In function `remglob':
/tmp/inetutils/ftp/cmds.c:967: warning: strcat() is almost always misused, 
please use strlcat()
cmds.o(.text+0x123): In function `another':
/tmp/inetutils/ftp/cmds.c:145: warning: sprintf() is often misused, please use 
snprintf()
../lib/libgnu.a(getcwd.o)(.text+0x283): In function `rpl_getcwd':
/tmp/inetutils/lib/getcwd.c:300: undefined reference to `fstatat'
collect2: ld returned 1 exit status
*** Error code 1


/*
 * Code analysis of GNU lib for OpenBSD 4.6.
 */

/*
 * config.h
 */
#define GNULIB_OPENAT 1
#define GNULIB_TEST_OPENAT 1
/* #undef HAVE_OPENAT */
/* #undef HAVE_RAW_DECL_OPENAT */

#define GNULIB_FSTATAT 1
#define GNULIB_TEST_FSTATAT 1
/* #undef HAVE_FSTATAT */
/* #undef HAVE_RAW_DECL_FSTATAT */
/* #undef HAVE_WORKING_FSTATAT_ZERO_FLAG */

/*
 * lib/getcwd.c
 */
#if defined HAVE_OPENAT || defined GNULIB_OPENAT
# define HAVE_OPENAT_SUPPORT 1
#else
# define HAVE_OPENAT_SUPPORT 0
#endif

#if HAVE_OPENAT_SUPPORT
            entry_status = fstatat (fd, d->d_name, &st, AT_SYMLINK_NOFOLLOW);
#else


Conclusion: The conditional "defined HAVE_OPENAT || defined GNULIB_OPENAT"
sets "HAVE_OPENAT_SUPPORT = 1", thus invoking a call to fstatat(), but is
not accompanied by the relevant module inclusion of "fstatat". The module
is built, but not automatically included in "libgnu.a".



reply via email to

[Prev in Thread] Current Thread [Next in Thread]