[patch] binutils: fix out of tree building with syslex regens

Raymes Khoury raymes@chromium.org
Mon Oct 24 04:27:00 GMT 2011


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
>



More information about the Binutils mailing list