This is the mail archive of the
binutils@sourceware.org
mailing list for the binutils project.
Re: [PATCH] Docs: Prevent build failures when "makeinfo" is missing
- From: Cupertino Miranda <Cupertino dot Miranda at synopsys dot com>
- To: Vlad Zakharov <Vladislav dot Zakharov at synopsys dot com>, "binutils at sourceware dot org" <binutils at sourceware dot org>
- Cc: Alexey Brodkin <Alexey dot Brodkin at synopsys dot com>, Anton Kolesov <Anton dot Kolesov at synopsys dot com>, Claudiu Zissulescu <Claudiu dot Zissulescu at synopsys dot com>
- Date: Tue, 7 Jun 2016 10:33:10 +0000
- Subject: Re: [PATCH] Docs: Prevent build failures when "makeinfo" is missing
- Authentication-results: sourceware.org; auth=none
- References: <1465213378-24891-1-git-send-email-vzakhar at synopsys dot com>
Hi all,
The patch is not OK considering that it is changing generated files.
Nevertheless, it appears that binutils has a hard requirement on makeinfo.
When used without makeinfo, it prints this message:
WARNING: 'makeinfo' is missing on your system.
You should only need it if you modified a '.texi' file, or
any other file indirectly affecting the aspect of the manual.
You might want to install the Texinfo package:
<http://www.gnu.org/software/texinfo/>
The spurious makeinfo call might also be the consequence of
using a buggy 'make' (AIX, DU, IRIX), in which case you might
want to install GNU make:
<http://www.gnu.org/software/make/>
make[3]: *** [bfd.info] Error 127
Although, even if you have makeinfo installed nothing is generated on
the source tree such that it would remove this dependency and clear that
message.
Is makeinfo considered a real build requirement ?
Best regards,
Cupertino
On 06/06/2016 01:43 PM, Zakharov Vlad wrote:
> Build failed when "makeinfo" was missing on the build host.
> This was happenning because "makeinfo" is required to build .info targets
> and make exited with error. But missing "makeinfo" only stops us from
> building docs ("missing" script already throws a warning on that regard).
> Let's continue to build other targets.
>
> Now exit code of the script called "missing" is checked.
> The value 127 means that "makeinfo" is not available on the build host.
>
> So when such value occurs 0 is returned to the top level makefile.
> Documentation is not being built but further build of binutils continues.
>
> Signed-off-by: Zakharov Vlad <vzakhar@synopsys.com>
> ---
> bfd/doc/Makefile.in | 8 +++++++-
> binutils/doc/Makefile.in | 8 +++++++-
> gas/doc/Makefile.in | 8 +++++++-
> gprof/Makefile.in | 8 +++++++-
> ld/Makefile.in | 8 +++++++-
> 5 files changed, 35 insertions(+), 5 deletions(-)
>
> diff --git a/bfd/doc/Makefile.in b/bfd/doc/Makefile.in
> index be737f6..6c1eaf7 100644
> --- a/bfd/doc/Makefile.in
> +++ b/bfd/doc/Makefile.in
> @@ -468,6 +468,8 @@ mostlyclean-libtool:
> clean-libtool:
> -rm -rf .libs _libs
>
> +# Exit code 127 means that "makeinfo" is missing. So let's skip .info target
> +# but return 0 to top level Makefile to build all other targets.
> bfd.info: bfd.texinfo $(bfd_TEXINFOS)
> restore=: && backupdir="$(am__leading_dot)am$$$$" && \
> rm -rf $$backupdir && mkdir $$backupdir && \
> @@ -481,7 +483,11 @@ bfd.info: bfd.texinfo $(bfd_TEXINFOS)
> then \
> rc=0; \
> else \
> - rc=$$?; \
> + if test $$? -eq 127; then \
> + rc=0; \
> + else \
> + rc=$$?; \
> + fi; \
> $$restore $$backupdir/* `echo "./$@" | sed 's|[^/]*$$||'`; \
> fi; \
> rm -rf $$backupdir; exit $$rc
> diff --git a/binutils/doc/Makefile.in b/binutils/doc/Makefile.in
> index ea3f938..8ed7884 100644
> --- a/binutils/doc/Makefile.in
> +++ b/binutils/doc/Makefile.in
> @@ -397,6 +397,8 @@ mostlyclean-libtool:
> clean-libtool:
> -rm -rf .libs _libs
>
> +# Exit code 127 means that "makeinfo" is missing. So let's skip .info target
> +# but return 0 to top level Makefile to build all other targets.
> binutils.info: binutils.texi
> restore=: && backupdir="$(am__leading_dot)am$$$$" && \
> rm -rf $$backupdir && mkdir $$backupdir && \
> @@ -410,7 +412,11 @@ binutils.info: binutils.texi
> then \
> rc=0; \
> else \
> - rc=$$?; \
> + if test $$? -eq 127; then \
> + rc=0; \
> + else \
> + rc=$$?; \
> + fi; \
> $$restore $$backupdir/* `echo "./$@" | sed 's|[^/]*$$||'`; \
> fi; \
> rm -rf $$backupdir; exit $$rc
> diff --git a/gas/doc/Makefile.in b/gas/doc/Makefile.in
> index 9ca5e8e..3159bc3 100644
> --- a/gas/doc/Makefile.in
> +++ b/gas/doc/Makefile.in
> @@ -425,6 +425,8 @@ mostlyclean-libtool:
> clean-libtool:
> -rm -rf .libs _libs
>
> +# Exit code 127 means that "makeinfo" is missing. So let's skip .info target
> +# but return 0 to top level Makefile to build all other targets.
> as.info: as.texinfo $(as_TEXINFOS)
> restore=: && backupdir="$(am__leading_dot)am$$$$" && \
> rm -rf $$backupdir && mkdir $$backupdir && \
> @@ -438,7 +440,11 @@ as.info: as.texinfo $(as_TEXINFOS)
> then \
> rc=0; \
> else \
> - rc=$$?; \
> + if test $$? -eq 127; then \
> + rc=0; \
> + else \
> + rc=$$?; \
> + fi; \
> $$restore $$backupdir/* `echo "./$@" | sed 's|[^/]*$$||'`; \
> fi; \
> rm -rf $$backupdir; exit $$rc
> diff --git a/gprof/Makefile.in b/gprof/Makefile.in
> index 67e85cd..c4040eb 100644
> --- a/gprof/Makefile.in
> +++ b/gprof/Makefile.in
> @@ -538,6 +538,8 @@ clean-libtool:
> distclean-libtool:
> -rm -f libtool config.lt
>
> +# Exit code 127 means that "makeinfo" is missing. So let's skip .info target
> +# but return 0 to top level Makefile to build all other targets.
> gprof.info: gprof.texi $(gprof_TEXINFOS)
> restore=: && backupdir="$(am__leading_dot)am$$$$" && \
> rm -rf $$backupdir && mkdir $$backupdir && \
> @@ -551,7 +553,11 @@ gprof.info: gprof.texi $(gprof_TEXINFOS)
> then \
> rc=0; \
> else \
> - rc=$$?; \
> + if test $$? -eq 127; then \
> + rc=0; \
> + else \
> + rc=$$?; \
> + fi; \
> $$restore $$backupdir/* `echo "./$@" | sed 's|[^/]*$$||'`; \
> fi; \
> rm -rf $$backupdir; exit $$rc
> diff --git a/ld/Makefile.in b/ld/Makefile.in
> index 7c78198..08950a8 100644
> --- a/ld/Makefile.in
> +++ b/ld/Makefile.in
> @@ -1591,6 +1591,8 @@ clean-libtool:
> distclean-libtool:
> -rm -f libtool config.lt
>
> +# Exit code 127 means that "makeinfo" is missing. So let's skip .info target
> +# but return 0 to top level Makefile to build all other targets.
> ld.info: ld.texinfo $(ld_TEXINFOS)
> restore=: && backupdir="$(am__leading_dot)am$$$$" && \
> rm -rf $$backupdir && mkdir $$backupdir && \
> @@ -1604,7 +1606,11 @@ ld.info: ld.texinfo $(ld_TEXINFOS)
> then \
> rc=0; \
> else \
> - rc=$$?; \
> + if test $$? -eq 127; then \
> + rc=0; \
> + else \
> + rc=$$?; \
> + fi; \
> $$restore $$backupdir/* `echo "./$@" | sed 's|[^/]*$$||'`; \
> fi; \
> rm -rf $$backupdir; exit $$rc