Build failure in gnulib-tests

Jim Meyering jim at meyering.net
Tue May 3 16:18:58 UTC 2011


Mark McLoughlin wrote:
> On Tue, 2011-05-03 at 11:14 +0200, Jim Meyering wrote:
>> Mark McLoughlin wrote:
>> > Just saw this when building latest git on F14:
>> >
>> >   make[5]: Entering directory
>> >   `/home/markmc/projects/aeolus/iwhd/gnulib-tests'
>> >     CC     imaxtostr.o
>> >   In file included from anytostr.c:29:0,
>> >                    from imaxtostr.c:5:
>> >   inttostr.h:25:22: fatal error: intprops.h: No such file or directory
>> >
>> > Haven't investigated further
>>
>> Hi Mark,
>>
>> Thanks for the report.  I've seen that from some autobuilders, too,
>> (I think it was for grep) but so far have been unable to reproduce/diagnose it.
>>
>> Would you please rerun make with V=1, something like
>>
>>    make check V=1
>>
>> and send the output?
>>
>> When I do that, I definitely see an -I../lib option,
>> which is sufficient to get the inttostr.h file in
>> the bootstrap-populated lib/ directory.
>
> Here's what I see:
>
>   make[5]: Entering directory `/home/markmc/projects/aeolus/iwhd/gnulib-tests'
>   depbase=`echo imaxtostr.o | sed 's|[^/]*$|.deps/&|;s|\.o$||'`;\
>   gcc -std=gnu99 -DHAVE_CONFIG_H -I. -I..  -DIN_IWHD_GNULIB_TESTS=1 -I. -I. -I../.. -I./../.. -I../../lib -I./../../lib    -g -O2 -MT imaxtostr.o -MD -MP -MF $depbase.Tpo -c -o imaxtostr.o imaxtostr.c &&\
>   mv -f $depbase.Tpo $depbase.Po
>   In file included from anytostr.c:29:0,
>                    from imaxtostr.c:5:
>   inttostr.h:25:22: fatal error: intprops.h: No such file or directory
>
> Interesting to note gnulib.mk:
>
>   AM_CPPFLAGS = \
>     -D at gltests_WITNESS@=1 \
>     -I. -I$(srcdir) \
>     -I.. -I$(srcdir)/.. \
>     -I../lib -I$(srcdir)/../lib
>
> versus Makefile.in:
>
>   AM_CPPFLAGS = \
>     -D at gltests_WITNESS@=1 \
>     -I. -I$(srcdir) \
>     -I../.. -I$(srcdir)/../.. \
>     -I../../lib -I$(srcdir)/../../lib
>
> automake, in its wisdom, is changing the paths?
>
>  $> rpm -qf /usr/bin/automake
>  automake-1.11.1-5.fc14.noarch
>
>> A fresh clone, configure, build and test passes for me.
>> For the record, I've just run this on Fedora 15:
>>
>>     git clone git://git.fedorahosted.org/iwhd.git && cd iwhd
>>     ./bootstrap --gnulib-srcdir=/gnulib \
>>       && ./configure --enable-gcc-warnings && make && make check
>
> I'm not using --gnulib-srcdir ... could that be the difference? Hmm,
> no ... it's just used as an alternate object store for git ...
>
> I've tried a fresh clone and it does indeed work. Why then does this not
> work?
>
>   $> git clean -f -x -d && \
>        ./bootstrap && \
>        ./configure --prefix=/usr --localstatedir=/var --sysconfdir=/etc && \
>        make clean check V=1
>
> I see gnulib-tests is in .gitignore but gnulib-tests/Makefile.am is
> in .gitignore. So, in the broken clone, I tried deleting it and then
> doing a git reset --hard and now the problem is gone away. Bizarre

Thanks for the investigation, Mark.
FYI, at the end of the bootstrap script, it runs
the bootstrap_epilogue function (defined in bootstrap.conf),
which does this:

bootstrap_epilogue()
{
  # Change paths in gnulib-tests/gnulib.mk from "../.." to "..".
  m=gnulib-tests/gnulib.mk
  sed 's,\.\./\.\.,..,g' $m > $m-t
  mv -f $m-t $m
}

If there's something wrong with dependencies that keeps automake
from being rerun, that would explain the problem.

I'll try to reproduce using the stock automake
rather than my private built-from-latest-on-master version.


More information about the iwhd-devel mailing list