Bug 12730 - [3.4 Regression] manual page install broken with old Pod::man
: [3.4 Regression] manual page install broken with old Pod::man
Status: RESOLVED FIXED
Product: gcc
Classification: Unclassified
Component: other
: 3.4.0
: P2 critical
: 3.4.0
Assigned To: Kelley Cook
:
:
: 12744
:
  Show dependency treegraph
 
Reported: 2003-10-22 18:22 UTC by Chris Demetriou
Modified: 2006-02-20 14:47 UTC (History)
2 users (show)

See Also:
Host: mips64-unknown-linux-gnu
Target: mips64-unknown-linux-gnu
Build: mips64-unknown-linux-gnu
Known to work:
Known to fail:
Last reconfirmed:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Chris Demetriou 2003-10-22 18:22:19 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.
Comment 1 Chris Demetriou 2003-10-22 18:29:03 UTC
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.)
Comment 2 Chris Demetriou 2003-10-22 18:31:03 UTC
oh, also, forgot to mention, on the same system a build/install last
worked w/ sources as of 2003-10-19 00:00 UTC.
Comment 3 Kelley Cook 2003-10-23 19:30:32 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.

Comment 4 Kelley Cook 2004-01-15 14:40:39 UTC
Patches are forthcoming.
Comment 5 CVS Commits 2004-01-21 02:02:00 UTC
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

Comment 6 Andrew Pinski 2004-01-21 02:14:52 UTC
Fixed for 3.5 so no longer a 3.5 regression.
Comment 7 CVS Commits 2004-01-21 04:01:36 UTC
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

Comment 8 Andrew Pinski 2004-01-21 04:16:14 UTC
Fixed applied for 3.4 also.
Comment 9 Paolo Bonzini 2006-02-20 14:47:55 UTC
Just for the record, this patch also fixed PR12512 in a better way.