This is the mail archive of the binutils@sourceware.org mailing list for the binutils project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[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


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]