[patch] binutils: fix out of tree building with syslex regens
Mike Frysinger
vapier@gentoo.org
Fri Oct 14 02:38:00 GMT 2011
If you take a release tarball (which has pregenerated syslex and sysinfo files
in it), apply some patches which touch syslex.l, and then build the result out
of tree, it will fail. This is because syslex.l uses sysinfo.h, but the
sysinfo.y file wasn't updated and so it wasn't regenerated (the files are found
in the $srcdir), and the build rule for syslex.c does not use -I$(srcdir) when
it finds a local file. Simple fix below.
OK to commit ?
Signed-off-by: Mike Frysinger <vapier@gentoo.org>
---
to reproduce:
tar xf binutils-2.21.tar.bz2
cd binutils-2.21
mkdir build
cd build
../configure -q
# build everything needed for binutils ahead of time
make all-bfd all-opcodes configure-binutils -s -j4
cd binutils
touch ../../binutils/syslex.l
make
then you'll eventually see the error:
syslex.l:31:21: error: sysinfo.h: No such file or directory
--- a/binutils/Makefile.am
+++ b/binutils/Makefile.am
@@ -272,7 +272,7 @@
syslex.@OBJEXT@: syslex.c sysinfo.h config.h
if [ -r syslex.c ]; then \
- $(CC_FOR_BUILD) -c -I. $(AM_CFLAGS) $(CFLAGS_FOR_BUILD) $(NO_WERROR) syslex.c ; \
+ $(CC_FOR_BUILD) -c -I. -I$(srcdir) $(AM_CFLAGS) $(CFLAGS_FOR_BUILD) $(NO_WERROR) syslex.c ; \
else \
$(CC_FOR_BUILD) -c -I. -I$(srcdir) $(AM_CFLAGS) $(CFLAGS_FOR_BUILD) $(NO_WERROR) $(srcdir)/syslex.c ;\
fi
More information about the Binutils
mailing list