Go to file
Andrew Burgess 40acbd3452 gdb/doc: don't have .pod targets separate to man page targets
While preparing the new release it was discovered that commit:

  commit 824083f34c
  Date:   Fri Apr 12 17:47:20 2024 +0100

      gdb/doc: use silent-rules.mk in the Makefile

was causing problems.  Given a release tar file, an attempt to build
and install GDB would give an error like this:

  [...]
    TEXI2POD gdb.pod
  cannot find GDBvn.texi at ../../../gdb-15.0.50.20240508/gdb/doc/../../etc/texi2pod.pl line 251, <GEN0> line 16.
  make[5]: *** [Makefile:663: gdb.pod] Error 2

The problem here is how the man pages are built, and how they are
distributed within a release.

Within the development (git) tree, the man page files are not part of
the source tree, these files are built as needed.  Within a release
tar file though, the man pages are included.  The idea being that a
user can build and install GDB, including getting the man pages,
without having to install the tools needed to generate the man pages.

The man pages are generated in a two step process.  First the .texi
file is processed with texi2pod to create a .pod file, then this .pod
file is processed to create the .1 or .5 man file.

Prior to the above commit these two steps were combined into a single
recipe, this meant that when a user performed a build/install from a
release tree all of the dependencies, as well as the final result,
were all present in the source tree, and so nothing needed to be
rebuilt.

However, the above commit split the two steps apart.  Now we had a
separate rule for building the .pod files, and the .1/.5 man page
files depended on the relevant .pod file.

As the .pod files are not shipped in a GDB release, this meant that
one of the dependencies of the man page files was now missing.  As a
result if a user tried to install from a release tree a rebuild of the
.pod files would be attempted, and if that succeeded then building the
man pages would follow that.

Unfortunately, building the .pod files would fail as the GDBvn.texi
file, though present in the source tree, was not present in the build
tree, which is where it is needed for the .pod file generation to
work.

To fix this, I propose merging the .pod creation and the .1/.5 man
page creation back into a single recipe.  Having these two steps split
is probably the "cleaner" solution, but makes it harder for us to
achieve our goal of shipping the prebuilt man page files.  I've added
a comment explaining what's going on (such a comment would have
prevented this mistake having been made in the first place).

One possibly weird thing here is that I have left both an
ECHO_TEXI2POD and a ECHO_TEXI2MAN in the rule $(MAN1S) and $(MAN5S)
recipes.  This is 100% not going to break anything, these just print
two different progress messages while executing the recipes, but I'm
not sure if this is considered poor style or not.  Maybe we're only
supposed to have a single ECHO_* per recipe?

Anyway, even if this is poor style, I figure it really is just a style
thing.  We can tweak this later as needed.  Otherwise, this commit
should fix the current issue blocking the next GDB release.

Approved-By: Tom Tromey <tom@tromey.com>
2024-05-29 22:27:31 +01:00
bfd Automatic date update in version.in 2024-05-29 00:00:15 +00:00
binutils readelf: Use section names for displaying RELR relocs 2024-05-29 16:08:04 +01:00
config mmap: Avoid the sanitizer configure check failure 2024-04-10 03:57:02 -07:00
contrib contrib: sync dg-extract-results.sh with GCC 2024-03-12 15:49:25 +00:00
cpu PR21739, Inconsistent diagnostics 2024-02-29 21:07:04 +10:30
elfcpp x86-64: Add R_X86_64_CODE_6_GOTTPOFF 2024-02-08 03:45:43 -08:00
etc Update year range in copyright notice of binutils files 2024-01-04 22:58:12 +10:30
gas x86/Intel: warn about undue mnemonic suffixes 2024-05-29 10:03:00 +02:00
gdb gdb/doc: don't have .pod targets separate to man page targets 2024-05-29 22:27:31 +01:00
gdbserver Stop 'configure --enable-threading' if std::thread doesn't work 2024-05-16 13:03:58 +01:00
gdbsupport Stop 'configure --enable-threading' if std::thread doesn't work 2024-05-16 13:03:58 +01:00
gnulib gnulib: re-generate build files 2024-03-11 22:42:56 -04:00
gold Add missing install-dvi and install-ps Makefie targets. 2024-04-05 07:02:56 +00:00
gprof Add missing install-dvi and install-ps Makefie targets. 2024-04-05 07:02:56 +00:00
gprofng gprofng: use StringBuilder to create long messages 2024-05-21 19:54:59 -07:00
include gas, aarch64: Add SVE2 lut extension 2024-05-28 17:28:29 +01:00
ld ld: pru: Increase the default memory region sizes 2024-05-28 21:05:54 +03:00
libbacktrace Sync libbacktrace from gcc [PR31327] 2024-03-11 23:10:33 +00:00
libctf libctf testsuite compilation failure 2024-05-23 08:11:12 +09:30
libdecnumber
libiberty mmap: Avoid the sanitizer configure check failure 2024-04-10 03:57:02 -07:00
libsframe mmap: Avoid the sanitizer configure check failure 2024-04-10 03:57:46 -07:00
opcodes x86/Intel: warn about undue mnemonic suffixes 2024-05-29 10:03:00 +02:00
readline
sim sim: riscv: Fix build issue due to recent binutils commit 2024-05-09 17:04:14 +02:00
texinfo
zlib mmap: Avoid the sanitizer configure check failure 2024-04-10 03:57:02 -07:00
.cvsignore
.editorconfig
.gitattributes
.gitignore
.pre-commit-config.yaml gdb: bump black version to 24.4.2 2024-05-16 11:34:40 -04:00
ar-lib
ChangeLog .pre-commit-config.yaml: bump black hook to 24.3.0 2024-03-20 14:44:16 -04:00
compile
config-ml.in
config.guess
config.rpath
config.sub
configure Fix disabling of year 2038 support on 32-bit hosts by default 2024-02-05 15:28:05 -03:00
configure.ac Fix disabling of year 2038 support on 32-bit hosts by default 2024-02-05 15:28:05 -03:00
COPYING
COPYING3
COPYING3.LIB
COPYING.LIB
COPYING.LIBGLOSS
COPYING.NEWLIB
depcomp
djunpack.bat
install-sh
libtool.m4
lt~obsolete.m4
ltgcc.m4
ltmain.sh
ltoptions.m4
ltsugar.m4
ltversion.m4
MAINTAINERS Fix compiling bfd/vms-lib.c for a 32-bit host. 2024-03-18 10:26:16 +00:00
Makefile.def Revert "Pass GUILE down to subdirectories" 2024-03-22 11:07:28 -06:00
Makefile.in Revert "Pass GUILE down to subdirectories" 2024-03-22 11:07:28 -06:00
Makefile.tpl Revert "Pass GUILE down to subdirectories" 2024-03-22 11:07:28 -06:00
makefile.vms
missing
mkdep
mkinstalldirs
move-if-change
multilib.am
README
README-maintainer-mode
SECURITY.txt
setup.com
src-release.sh Add extra files found in etc/ sub-directory to ETC_SUPPORT in src-release.sh 2024-05-20 16:12:53 +01:00
symlink-tree
test-driver
ylwrap

		   README for GNU development tools

This directory contains various GNU compilers, assemblers, linkers, 
debuggers, etc., plus their support routines, definitions, and documentation.

If you are receiving this as part of a GDB release, see the file gdb/README.
If with a binutils release, see binutils/README;  if with a libg++ release,
see libg++/README, etc.  That'll give you info about this
package -- supported targets, how to use it, how to report bugs, etc.

It is now possible to automatically configure and build a variety of
tools with one command.  To build all of the tools contained herein,
run the ``configure'' script here, e.g.:

	./configure 
	make

To install them (by default in /usr/local/bin, /usr/local/lib, etc),
then do:
	make install

(If the configure script can't determine your type of computer, give it
the name as an argument, for instance ``./configure sun4''.  You can
use the script ``config.sub'' to test whether a name is recognized; if
it is, config.sub translates it to a triplet specifying CPU, vendor,
and OS.)

If you have more than one compiler on your system, it is often best to
explicitly set CC in the environment before running configure, and to
also set CC when running make.  For example (assuming sh/bash/ksh):

	CC=gcc ./configure
	make

A similar example using csh:

	setenv CC gcc
	./configure
	make

Much of the code and documentation enclosed is copyright by
the Free Software Foundation, Inc.  See the file COPYING or
COPYING.LIB in the various directories, for a description of the
GNU General Public License terms under which you can copy the files.

REPORTING BUGS: Again, see gdb/README, binutils/README, etc., for info
on where and how to report problems.