[Top][All Lists]
[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.
- binutils-2.19 -- source tarball may be incomplete or inconsistent,
Keith Marshall <=