This is the mail archive of the
binutils@sourceware.org
mailing list for the binutils project.
[patch] binutils: fix out of tree building with syslex regens
- From: Mike Frysinger <vapier at gentoo dot org>
- To: binutils at sourceware dot org
- Cc: raymes at chromium dot org
- Date: Thu, 13 Oct 2011 22:37:53 -0400
- Subject: [patch] binutils: fix out of tree building with syslex regens
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