bug-binutils
[Top][All Lists]
Advanced

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

binutils-2.19 -- source tarball may be incomplete or inconsistent


From: Keith Marshall
Subject: binutils-2.19 -- source tarball may be incomplete or inconsistent
Date: Thu, 4 Dec 2008 16:02:17 +0000
User-agent: KMail/1.9.10

I've been experiencing some problems, while upgrading my GNU/Linux 
hosted mingw32 cross tools to use binutils-2.19.  Host platform is 
Ubuntu-8.04; neither makeinfo nor bison installed.  Source is stock 
binutils-2.19.tar.gz from http://ftp.gnu.org/gnu/binutils, building 
in separate build directory, and configured with:

  $ ../binutils-2.19/configure --prefix=$HOME/mingw32 \
      --target=mingw32 --with-sysroot=$HOME/mingw32 \
      --with-gcc --with-gnu-as --with-gnu-ld \
      --disable-nls --disable-debug

On following that with a simple `make', the build dies in `bfd', for 
no immediately apparent reason, (`make' didn't stop immediately, when 
it should have, and the pertinent diagnostic message scrolled off the 
screen, unnoticed):

  config.status: creating po/Makefile.in
  config.status: executing depfiles commands
  config.status: executing libtool commands
  config.status: executing default-1 commands
  config.status: executing bfd_stdint.h commands
  config.status: executing default commands
  make[3]: Leaving directory `/home/keith/tmp/mingw-3.4.5/bfd/po'
  make[3]: Entering directory `/home/keith/tmp/mingw-3.4.5/bfd/po'
  make[3]: Nothing to be done for `info'.
  make[3]: Leaving directory `/home/keith/tmp/mingw-3.4.5/bfd/po'
  make[3]: Entering directory `/home/keith/tmp/mingw-3.4.5/bfd'
  make[3]: Nothing to be done for `info-am'.
  make[3]: Leaving directory `/home/keith/tmp/mingw-3.4.5/bfd'
  make[2]: *** [info-recursive] Error 1
  make[2]: Leaving directory `/home/keith/tmp/mingw-3.4.5/bfd'
  make[1]: *** [all-bfd] Error 2
  make[1]: Leaving directory `/home/keith/tmp/mingw-3.4.5'
  make: *** [all] Error 2

Immediately invoking `make' again, the cause of the above is revealed:

  WARNING: `makeinfo' is missing on your system.  You should only need
           it if you modified a `.texi' or `.texinfo' file, or any
           other file indirectly affecting the aspect of the manual. 
           The spurious call might also be the consequence of using a
           buggy `make' (AIX, DU, IRIX).  You might want to install
           the `Texinfo' package or the `GNU make' package.  Grab
           either from any GNU archive site.
  make[3]: *** [bfd.info] Error 1
  make[3]: Leaving directory `/home/keith/tmp/mingw-3.4.5/bfd/doc'

(Again, `make' didn't stop here; it continued with:

  Making info in po
  make[3]: Entering directory `/home/keith/tmp/mingw-3.4.5/bfd/po'
  make[3]: Nothing to be done for `info'.

and the cause of failure only remained visible, because there was 
nothing to be done for that `info' goal).

Now, I *know* `makeinfo' isn't installed, and I don't *want* to 
install it!  However, I didn't modify *any* file, `.texi', `.texinfo' 
or otherwise, and my `make' is:

  $ make --version
  GNU Make 3.81
  Copyright (C) 2006  Free Software Foundation, Inc.

so I *really* shouldn't need `makeinfo'.

Follow up investigation reveals that a regenerated `bfd/doc/elf.texi' 
has appeared in my build directory, and in the source tree I see:

  $ ls -gotr binutils-2.19/bfd/{elf.c,doc/{elf.texi,bfd.info}}
  -rw-r--r-- 1    809 2008-09-10 08:50 binutils-2.19/bfd/doc/elf.texi
  -rw-r--r-- 1 253469 2008-10-09 13:18 binutils-2.19/bfd/elf.c
  -rw-r--r-- 1 459543 2008-10-16 14:45 binutils-2.19/bfd/doc/bfd.info

Observe that `bfd/doc/elf.texi' is out of date wrt `bfd/elf.c', (from 
which I note it is generated); hence the regeneration in the build 
tree, and the requirement for `makeinfo'.  I further note that:

  $ diff bfd/doc/elf.texi ../binutils-2.19/bfd/doc/elf.texi

produces no output, indicating that the regenerated file is identical 
to the distributed one, so simply touching `bfd/doc/elf.texi' and 
then `bfd/doc/bfd.info', (in this order), in the source tree suffices 
to remove the unwanted, and unnecessary, `makeinfo' dependency.

Having made these adjustments, I can now progress to the second 
problem: the source file `ld/deffilep.c' is missing from the source 
distribution, and because I don't have `bison' installed, it cannot 
be generated.  Ok, nothing for it; I have to install `bison', even 
though I *really* don't want to, and I *definitely* shouldn't need 
to, when building from a released source tarball.

After installing `bison', I notice that *both* `deffilep.c' *and* 
`deffilep.h' are generated in my build tree.  Is there any reason why 
neither of these files appears to be included in the source tarball, 
or is this simply oversight?  (I notice that both *are* enumerated in 
the `DIST_COMMON' macro in ld/Makefile).

On copying the generated `deffilep.c' into the source tree, purging 
the build tree, uninstalling `bison', and starting over, I observe 
that everything now builds successfully.  Strangely, although I 
didn't preserve the generated `deffilep.h', and it now appears 
nowhere in either the source or the build tree, its absence doesn't 
seem to affect the success of the build; is it a quirk of building 
for the `mingw32' target, that it isn't required, or is it just 
superfluous?

I plan to repackage binutils-2.19, for redistribution from the MinGW 
site on SourceForge, and I would like to save other users from the 
problems I have experienced.  Presumably:

  * rescheduling the timestamps for bfd/doc/{elf.texi,bfd.info}
  * adding ld/deffilep.c

are appropriate.  Should I also add ld/deffilep.h?

Regards,
Keith.




reply via email to

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