This is the mail archive of the
binutils@sourceware.org
mailing list for the binutils project.
Re: [patch] binutils: fix out of tree building with syslex regens
- From: Raymes Khoury <raymes at chromium dot org>
- To: binutils at sourceware dot org
- Cc: nickc at redhat dot com, Mike Frysinger <vapier at gentoo dot org>
- Date: Sun, 23 Oct 2011 21:27:36 -0700
- Subject: Re: [patch] binutils: fix out of tree building with syslex regens
- References: <201110132237.54420.vapier@gentoo.org>
ping
On Thu, Oct 13, 2011 at 7:37 PM, Mike Frysinger <vapier@gentoo.org> wrote:
> 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
>