GCC Bugzilla – Bug 12730
[3.4 Regression] manual page install broken with old Pod::man
Last modified: 2006-02-20 14:47:55 UTC
(this was a native build on mips64-linux-gnu. Only configure arg was --prefix=/my/test/dir) my test system here has an old version of Pod::man. Configuring a combined source tree (gcc + binutils + gdb + expect) checked out w/ date spec -D "2003-10-22 00:00 UTC", a log of the configure/build output indicates: configure: warning: *** Makeinfo is missing or too old. *** Info documentation will not be built. checking for recent Pod::Man... no Lack of a recent Pod::Man causes GENERATED_MANPAGES in gcc/Makefile to be set to <nothing>. When installing manual pages, install-man tries to install (for instance): $(docobjdir)/gcc.1 However, that file doesn't exist. Normally it would be generated by generated-manpages (i.e., GENERATED_MANPAGES would be set to that, and that would cause the generated man pages to be generated via dependencies). I'm not sure what The Right Thing here is. If i had to guess, i'd say it would be get rid of GENERATED_MANPAGES entirely, and change the rules which generate the manual pages, e.g.: $(docobjdir)/%.1: $(docdir)/%.texi stmp-docobjdir $(STAMP) $@ -$(TEXI2POD) $< > $(basename $(notdir $@)).pod -($(POD2MAN) --section=1 \ $(basename $(notdir $@)).pod > $(@).T$$$$ && \ mv -f $(@).T$$$$ $@) || \ (rm -f $(@).T$$$$ && exit 1) -rm -f $(basename $(notdir $@)).pod to do **somethine** useful if POD2MAN is unusable. From my POV, the best behaviour would be to copy a preformatted version from the source tree. Another alternative would be to rearrange the manual page installation targets to not try to install manual pages that couldn't be built.
investigating this, it looks like this is fallout from: 2003-10-20 Kelley Cook <kcook@gcc.gnu.org> * Makefile.in: Get parsedir and docobjdir from configure. * configure.in: Recogonize --enable-generated-files-in-srcdir. Pass along parsedir and docobjdir. * configure: Regenerate. * doc/install.texi: Document --enable-generated-files-in-srcdir. that patch ultimately causes docobjdir to be set to a dir in the obj tree if --enable-generated-files-in-srcdir isn't set. But it doesn't do anything to create the manual pages there if the manual-page-generation tools aren't up to date. (BTW, I think it's **great** that the files won't be generated in the source directory any more, but IMO it should still be possible to build/install GCC without being able to regen all generated files.)
oh, also, forgot to mention, on the same system a build/install last worked w/ sources as of 2003-10-19 00:00 UTC.
I'm pretty sure fixing this correctly will depend on 12744. Which at this point will be resolved by copying the bison source files and any generated info files, if they exist into the build tree.
Patches are forthcoming.
Subject: Bug 12730 CVSROOT: /cvs/gcc Module name: gcc Changes by: kcook@gcc.gnu.org 2004-01-21 02:01:55 Modified files: gcc : ChangeLog Makefile.in configure configure.ac gcc/f : ChangeLog Make-lang.in gcc/ada : ChangeLog Make-lang.in gcc/cp : ChangeLog Make-lang.in gcc/java : ChangeLog Make-lang.in gcc/treelang : ChangeLog Make-lang.in maintainer-scripts: ChangeLog gcc/objc : Make-lang.in Log message: gcc/ 2004-01-20 Kelley Cook <kcook@gcc.gnu.org> PR bootstrap/12730 * configure.ac: Delete definition and subsitution of docdir. Add info, man, srcman and srcinfo to target hooks. Create doc/ directory. * configure: Regenerate. * Makefile.in: Don't substitute docdir and delete all references throughout. (MAKEINFOFLAGS): Define. (stmp-docobjdir): Delete. (INFOFILES, MANFILES): Define. (info): Call lang.info, srcinfo and lang.srcinfo. (generated-manpages): Call lang.man, srcman and lang.srcman. (srcinfo, srcman): New rules to copy back files to source directory. (doc/%.info, doc/%.dvi, doc/%.1, doc/%.7): New implict rule. (install-man): Revamp rule. (clean): Update dvi directory. (distclean): Delete TAGS from front end directorys. (maintainer-clean): Delete all document files in source directory. objc/Make-lang.in (objc.man, objc.info): Dummy entries. (objc.srcman, objc.srcinfo): Likewise. gcc/ada/ 2004-01-20 Kelley Cook <kcook@gcc.gnu.org> * Make-lang.in: Replace $(docdir) with doc. (doc/gnat_ug_unx.info, doc/gnat_ug_vwx.info, doc/gnat_ug_vms.info doc/gnat_ug_wnt.info, doc/gnat_rm.info, doc/gnat-style.info): Update to use consistent MAKEINFO rule. (ada.man, ada.srcman): Dummy entry. (ADA_INFOFILES): Define. (ada.info, ada.srcinfo): New rules. gcc/cp/ 2004-01-20 Kelley Cook <kcook@gcc.gnu.org> * Make-lang.in: Replace $(docdir) with doc. (c++.info, c++.srcinfo): Dummy entry. (c++.man, c++.srcman): New rules. (c++.install-man): Revamp rule. gcc/f/ 2004-01-20 Kelley Cook <kcook@gcc.gnu.org> * Make-lang.in: Replace $(docdir) with doc. (TEXI_G77_FILES): Define. (f77.rebuilt): Delete. (f77.srcextra): Add dependencies on f/BUGS and f/NEWS. (f77.srcman, f77.srcinfo, f77.man, f77.info): New rules. (doc/g77.info, doc/g77.dvi): Depend on TEXI_G77_FILES. Always build in doc directory. Use $(MAKEINFOFLAGS). (info, dvi, generated_manpages): Update to look in doc directory. (f/BUGS, f/NEWS): Generate in build directory. (f77.mostlyclean): Delete BUGS and NEWS from build directory. (f77.maintainer-clean): Adjust to delete from source directory. (f77.install-man): Revamp rule. gcc/java/ 2004-01-20 Kelley Cook <kcook@gcc.gnu.org> * Make-lang.in: Replace $(docdir) with doc. (java.info, java.srcinfo, java.man, java.srcman): New rules. (java.install-man): Revamp rule. gcc/treelang/ 2004-01-20 Kelley Cook <kcook@gcc.gnu.org> * Make-lang.in: Replace $(docdir) with doc. (treelang.info, treelang.srcinfo): New rules. (treelang.man, treelang.man): Dummy entries. maintainer-scripts/ 2004-01-20 Kelley Cook <kcook@gcc.gnu.org> * gcc_release (build_sources): Delete call to make f77.rebuilt. Patches: http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/ChangeLog.diff?cvsroot=gcc&r1=2.2390&r2=2.2391 http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/Makefile.in.diff?cvsroot=gcc&r1=1.1230&r2=1.1231 http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/configure.diff?cvsroot=gcc&r1=1.796&r2=1.797 http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/configure.ac.diff?cvsroot=gcc&r1=2.8&r2=2.9 http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/f/ChangeLog.diff?cvsroot=gcc&r1=1.623&r2=1.624 http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/f/Make-lang.in.diff?cvsroot=gcc&r1=1.139&r2=1.140 http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/ada/ChangeLog.diff?cvsroot=gcc&r1=1.430&r2=1.431 http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/ada/Make-lang.in.diff?cvsroot=gcc&r1=1.71&r2=1.72 http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/cp/ChangeLog.diff?cvsroot=gcc&r1=1.3900&r2=1.3901 http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/cp/Make-lang.in.diff?cvsroot=gcc&r1=1.175&r2=1.176 http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/java/ChangeLog.diff?cvsroot=gcc&r1=1.1317&r2=1.1318 http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/java/Make-lang.in.diff?cvsroot=gcc&r1=1.129&r2=1.130 http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/treelang/ChangeLog.diff?cvsroot=gcc&r1=1.79&r2=1.80 http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/treelang/Make-lang.in.diff?cvsroot=gcc&r1=1.43&r2=1.44 http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/maintainer-scripts/ChangeLog.diff?cvsroot=gcc&r1=1.89&r2=1.90 http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/objc/Make-lang.in.diff?cvsroot=gcc&r1=1.68&r2=1.69
Fixed for 3.5 so no longer a 3.5 regression.
Subject: Bug 12730 CVSROOT: /cvs/gcc Module name: gcc Branch: gcc-3_4-branch Changes by: kcook@gcc.gnu.org 2004-01-21 04:01:26 Modified files: gcc : ChangeLog Makefile.in configure configure.ac gcc/ada : ChangeLog Make-lang.in gcc/cp : ChangeLog Make-lang.in gcc/f : ChangeLog Make-lang.in gcc/java : ChangeLog Make-lang.in gcc/treelang : ChangeLog Make-lang.in maintainer-scripts: ChangeLog gcc/objc : Make-lang.in Log message: gcc/ 2004-01-20 Kelley Cook <kcook@gcc.gnu.org> PR bootstrap/12730 * configure.ac: Delete definition and subsitution of docdir. Add info, man, srcman and srcinfo to target hooks. Create doc/ directory. * configure: Regenerate. * Makefile.in: Don't substitute docdir and delete all references throughout. (MAKEINFOFLAGS): Define. (stmp-docobjdir): Delete. (INFOFILES, MANFILES): Define. (info): Call lang.info, srcinfo and lang.srcinfo. (generated-manpages): Call lang.man, srcman and lang.srcman. (srcinfo, srcman): New rules to copy back files to source directory. (doc/%.info, doc/%.dvi, doc/%.1, doc/%.7): New implict rule. (install-man): Revamp rule. (clean): Update dvi directory. (distclean): Delete TAGS from front end directorys. (maintainer-clean): Delete all document files in source directory. objc/Make-lang.in (objc.man, objc.info): Dummy entries. (objc.srcman, objc.srcinfo): Likewise. gcc/ada/ 2004-01-20 Kelley Cook <kcook@gcc.gnu.org> * Make-lang.in: Replace $(docdir) with doc. (doc/gnat_ug_unx.info, doc/gnat_ug_vwx.info, doc/gnat_ug_vms.info doc/gnat_ug_wnt.info, doc/gnat_rm.info, doc/gnat-style.info): Update to use consistent MAKEINFO rule. (ada.man, ada.srcman): Dummy entry. (ADA_INFOFILES): Define. (ada.info, ada.srcinfo): New rules. gcc/cp/ 2004-01-20 Kelley Cook <kcook@gcc.gnu.org> * Make-lang.in: Replace $(docdir) with doc. (c++.info, c++.srcinfo): Dummy entry. (c++.man, c++.srcman): New rules. (c++.install-man): Revamp rule. gcc/f/ 2004-01-20 Kelley Cook <kcook@gcc.gnu.org> * Make-lang.in: Replace $(docdir) with doc. (TEXI_G77_FILES): Define. (f77.rebuilt): Delete. (f77.srcextra): Add dependencies on f/BUGS and f/NEWS. (f77.srcman, f77.srcinfo, f77.man, f77.info): New rules. (doc/g77.info, doc/g77.dvi): Depend on TEXI_G77_FILES. Always build in doc directory. Use $(MAKEINFOFLAGS). (info, dvi, generated_manpages): Update to look in doc directory. (f/BUGS, f/NEWS): Generate in build directory. (f77.mostlyclean): Delete BUGS and NEWS from build directory. (f77.maintainer-clean): Adjust to delete from source directory. (f77.install-man): Revamp rule. gcc/java/ 2004-01-20 Kelley Cook <kcook@gcc.gnu.org> * Make-lang.in: Replace $(docdir) with doc. (java.info, java.srcinfo, java.man, java.srcman): New rules. (java.install-man): Revamp rule. gcc/treelang/ 2004-01-20 Kelley Cook <kcook@gcc.gnu.org> * Make-lang.in: Replace $(docdir) with doc. (treelang.info, treelang.srcinfo): New rules. (treelang.man, treelang.man): Dummy entries. maintainer-scripts/ 2004-01-20 Kelley Cook <kcook@gcc.gnu.org> * gcc_release (build_sources): Delete call to make f77.rebuilt. Patches: http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/ChangeLog.diff?cvsroot=gcc&only_with_tag=gcc-3_4-branch&r1=2.2326.2.38&r2=2.2326.2.39 http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/Makefile.in.diff?cvsroot=gcc&only_with_tag=gcc-3_4-branch&r1=1.1223.2.2&r2=1.1223.2.3 http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/configure.diff?cvsroot=gcc&only_with_tag=gcc-3_4-branch&r1=1.794.2.2&r2=1.794.2.3 http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/configure.ac.diff?cvsroot=gcc&only_with_tag=gcc-3_4-branch&r1=2.6.2.2&r2=2.6.2.3 http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/ada/ChangeLog.diff?cvsroot=gcc&only_with_tag=gcc-3_4-branch&r1=1.428&r2=1.428.2.1 http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/ada/Make-lang.in.diff?cvsroot=gcc&only_with_tag=gcc-3_4-branch&r1=1.70&r2=1.70.2.1 http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/cp/ChangeLog.diff?cvsroot=gcc&only_with_tag=gcc-3_4-branch&r1=1.3892.2.7&r2=1.3892.2.8 http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/cp/Make-lang.in.diff?cvsroot=gcc&only_with_tag=gcc-3_4-branch&r1=1.174.2.1&r2=1.174.2.2 http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/f/ChangeLog.diff?cvsroot=gcc&only_with_tag=gcc-3_4-branch&r1=1.622.2.1&r2=1.622.2.2 http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/f/Make-lang.in.diff?cvsroot=gcc&only_with_tag=gcc-3_4-branch&r1=1.138.2.1&r2=1.138.2.2 http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/java/ChangeLog.diff?cvsroot=gcc&only_with_tag=gcc-3_4-branch&r1=1.1315.2.2&r2=1.1315.2.3 http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/java/Make-lang.in.diff?cvsroot=gcc&only_with_tag=gcc-3_4-branch&r1=1.128.2.1&r2=1.128.2.2 http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/treelang/ChangeLog.diff?cvsroot=gcc&only_with_tag=gcc-3_4-branch&r1=1.79&r2=1.79.2.1 http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/treelang/Make-lang.in.diff?cvsroot=gcc&only_with_tag=gcc-3_4-branch&r1=1.43&r2=1.43.2.1 http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/maintainer-scripts/ChangeLog.diff?cvsroot=gcc&only_with_tag=gcc-3_4-branch&r1=1.88&r2=1.88.4.1 http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/objc/Make-lang.in.diff?cvsroot=gcc&only_with_tag=gcc-3_4-branch&r1=1.68&r2=1.68.2.1
Fixed applied for 3.4 also.
Just for the record, this patch also fixed PR12512 in a better way.