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]

Re: [PATCH] Docs: Prevent build failures when "makeinfo" is missing


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


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