Commit Graph

92 Commits

Author SHA1 Message Date
Mike Frysinger 72b6105518 newlib: docs: add "Function " to every function node
When creating a split manual with one-node-per-page, the main index.html
ends up getting clobbered by the page for the index() function because
it uses "@node index" which, for html, also creates an index.html page.
To remedy this, add "Function " to every function node so now we output
"Function-index.html" and avoid clobbering.  It also namespaces every
other function and helps make sure we don't clobber anything else.

Otherwise, there isn't really much rendering difference as @node text
is mostly internal.  Node title text comes from @section instead.
2024-01-22 21:58:58 -05:00
Jon Turney c03f0c3062
makedocbook: Fix false report of unhandled texinfo command
During 'make man', makedocbook falsely reports "texinfo command
'@modifier' remains in output" while processing the setlocal(3) manpage,
which contains that literal string.

Move the check for unrecognized texinfo commands to before processing
'@@' (an escaped '@') in the texinfo source, and teach it to ignore
them.

Improve that check slightly, so it catches non-alphabetic texinfo
commands, of which there are few.

Now we don't have false positives, we can make unrecognized texinfo
commands fatal to manpage generation, rather than leaving them verbatim
in the generated manpage.
2022-11-12 14:09:11 +00:00
Jon Turney 999925b253
makedocbook: Adjust inline whitespace to fix flake8 warnings 2022-11-12 14:09:10 +00:00
Jon Turney 2521dd48d8
makedocbook: Drop stray semicolons
This isn't written in C :)
2022-11-12 14:09:08 +00:00
Jon Turney 8b6c4249e2
makedocbook: Use sys.exit()
Use sys.exit() to write a message to stderr and terminate with a
non-zero exit code.
2022-11-12 14:09:07 +00:00
Jon Turney 2432d77099
makedocbook: Use raw strings for regexes
Use raw strings for regexes. This is best practice, and fixes a number
of "W605 invalid escape sequence" flakes.
2022-11-12 14:09:05 +00:00
Jon Turney d3d63cecbb
makedocbook: Add explicit locking for PLY parser table generation
Drop 'makedocbook --cache' (any dependency on the man-cache rule which
invokes that was dropped by the non-recursive make changes)

Instead, add some explicit locking which prevents processes colliding
over the file containing generated python code for the parser table.
2022-10-29 18:34:05 +01:00
Jon Turney 85148c43c4
Fix warning during manpage generaton
> ERROR: xref linking to Stubs has no generated link text.
> Error: no ID for constraint linkend: Stubs.

(Despite saying "ERROR", this is actually a warning, and manpages are
still generated)

Improve chapter-texi2docbook so it generates elements for texinfo
sections as well, so that a cross-reference to the "Stubs" section
contains a valid element ID.
2022-10-28 11:33:43 +01:00
Jon Turney a9d2d7baae Fix warning about duplicate id in docbook XML
../newlib/libc/libc.xml:22242: element refentry: validity error : ID iconv already defined
    <refentry id="iconv">

Use a separate namespace for chaper ids, to avoid collision between the
ids for the chapter and function 'iconv', now that iconv documentation
is generated unconditionally.
2022-05-04 17:06:07 -04:00
Mike Frysinger 96bc16f6b2 newlib: libc: merge build up a directory
Convert all the libc/ subdir makes into the top-level Makefile.  This
allows us to build all of libc from the top Makefile without using any
recursive make calls.  This is faster and avoids the funky lib.a logic
where we unpack subdir archives to repack into a single libc.a.  The
machine override logic is maintained though by way of Makefile include
ordering, and source file accumulation in libc_a_SOURCES.

There's a few dummy.c files that are no longer necessary since we aren't
doing the lib.a accumulating, so punt them.

The winsup code has been pulling the internal newlib ssp library out,
but that doesn't exist anymore, so change that to pull the objects.
2022-03-16 21:18:25 -04:00
Mike Frysinger b7f2965dc3 newlib: rename doc/local.mk to Makefile.inc
For consistency across the whole tree.
2022-02-15 19:59:53 -05:00
Mike Frysinger 5c21b37214 newlib: fix mkdoc dependencies
Make sure we depend on the right name of mkdoc all the time, and that
the rules that need it (e.g. .def files) depend on it.

Reported-by: Jon Turney <jon.turney@dronecode.org.uk>
2022-02-09 23:26:19 -05:00
Mike Frysinger 6026ef29d8 newlib: move man page generation into top-level build
This allows building the libc & libm pages in parallel, and drops
the duplication in the subdirs with the chew/chapter settings.

The unused rules in Makefile.shared are left in place to minimize
noise in the change.
2022-02-05 00:17:54 -05:00
Mike Frysinger 3365bd2f7a newlib: libm: move manual into top-level build
This doesn't migrate all the docs, just the libm's manual (pdf/info).
This is to show the basic form of migrating the chew files.
2022-02-04 19:39:05 -05:00
Mike Frysinger 67208d9ef8 newlib: merge doc into top-level Makefile
Avoid a recursive make with this tiny subdir to speed things up a bit.
2021-11-15 19:35:04 -05:00
Mike Frysinger 59e83de0b1 libgloss/newlib: update configure.ac in Makefile.in files
The maintainer rules refer to configure.in directly, so update that
after renaming all the configure.ac files.
2021-11-06 14:14:49 -04:00
Mike Frysinger 920617998e libgloss/newlib: rename configure.in to configure.ac
The .in name has been deprecated for a long time in favor of .ac.
2021-09-13 10:14:37 -04:00
Joel Sherrill 90a72f27d5 newlib/doc/makedoc.c: if realloc() fails, exit with an error message. 2021-06-17 16:48:47 -05:00
Joel Sherrill 609f5a51c6 newlib/doc/makedoc.c: Fix memory leak identified by Coverity. 2021-06-17 16:27:49 -05:00
Jeff Johnston 415fdd4279 Bump up newlib version to 4.1.0 2020-12-18 18:50:49 -05:00
Jeff Johnston 14123c991b Bump newlib release to 4.0.0 2020-12-11 14:37:12 -05:00
Jon Turney ed1573fc17
doc: Also update shebang for chapter-texi2docbook.py 2020-08-26 16:12:52 +01:00
Jon Turney c2d6e6f7f6
doc: Various fixes to makedocbook for python3.8
Also update shebang to explicitly use python3, since python2 is EOL and
(per PEP 0394) 'python' may not exist at all.
2020-08-24 17:36:10 +01:00
Jeff Johnston 4e78f8ea16 Bump up newlib release to 3.3.0 2020-01-21 15:17:43 -05:00
Jeff Johnston 1afb22a120 Bump up release to 3.2.0 for yearly snapshot 2020-01-02 14:56:24 -05:00
Jon Turney 91f1eab9a9
doc: Untabify python scripts used for making man pages
These scripts fail with a TabError exception if 'python' is python3, as
mixing tabs and spaces in indentation is forbidden in python3.
2019-12-18 13:35:35 +00:00
Jon Turney 8922b85d6b
fenv: Update makedocbook for eae68bfc
Teach makedocbook how to handle some new things seen in the makedoc markup
since eae68bfc:
- 'link with' lines appearing in SYNOPSIS sections

Also, don't raise a NoneType exception when there's something we don't
know how to handle in a SYNOPSIS section, just exit.
2019-08-13 12:29:31 +01:00
Jeff Johnston 5726873100 Bump release to 3.1.0 for yearly snapshot 2018-12-31 23:40:11 -05:00
Jeff Johnston cd31fbb2ae Add nvptx port.
- From: Cesar Philippidis <cesar@codesourcery.com>
  Date: Tue, 10 Apr 2018 14:43:42 -0700
  Subject: [PATCH] nvptx port

  This port adds support for Nvidia GPU's, which are primarily used as
  offload accelerators in OpenACC and OpenMP.
2018-04-13 15:42:37 -04:00
Jeff Johnston fffd2770db Bump release to 3.0.0 for yearly snapshot
- major release required due to removal of K&R support
2018-01-18 13:07:45 -05:00
Yaakov Selkowitz 4cd1905add ansification: remove ansidecl.h from makedoc
Signed-off-by: Yaakov Selkowitz <yselkowi@redhat.com>
2018-01-17 11:47:33 -06:00
Yaakov Selkowitz 7bfa24c495 ansification: fix makedoc for ANSI C
Signed-off-by: Yaakov Selkowitz <yselkowi@redhat.com>
2018-01-17 11:47:32 -06:00
Yaakov Selkowitz 7192f84096 ansification: remove _HAVE_STDC
Signed-off-by: Yaakov Selkowitz <yselkowi@redhat.com>
2018-01-17 11:47:30 -06:00
Jon Turney 2ce4e1e5ad makedoc: warn about some obsolete and deprecated commands
To follow up the thread starting at [1], since all uses of TRAD_SYNOPSIS
have been removed, and all uses of ANSI_SYNOPSIS have been renamed to
SYNOPSIS, we can now warn about the use of these.

[1] https://sourceware.org/ml/newlib/2017/msg01182.html

Signed-off-by: Jon Turney <jon.turney@dronecode.org.uk>
2017-12-08 12:09:03 +00:00
Jon Turney 06bd0ecc8d makedoc: exit with non-zero status on error
Signed-off-by: Jon Turney <jon.turney@dronecode.org.uk>
2017-12-07 11:54:57 +00:00
Jon Turney c006fd459f makedoc: make errors visible
Discard QUICKREF sections, rather than writing them to stderr
Discard MATHREF sections, rather than discarding as an error
Pass NOTES sections through to texinfo, rather than discarding as an error
Don't redirect makedoc stderr to .ref file
Remove makedoc output on error
Remove .ref files from CLEANFILES
Regenerate Makefile.ins

Signed-off-by: Jon Turney <jon.turney@dronecode.org.uk>
2017-12-07 11:54:11 +00:00
Jon Turney e046e4de14 Update makedocbook for bd547490
Teach makedocbook how to handle some new things seen in the makedoc markup
since bd547490:

- struct lines appearing in the synopsis
- use of @strong{} texinfo markup
2017-02-15 16:32:36 +01:00
Jeff Johnston 61f181d6b8 Bump release to 2.5.0 for yearly snapshot. 2016-12-22 21:33:54 -05:00
Jon Turney 4007871174 Fix 'make man' for parallel make
Ensure the Python Lex/Yacc (PLY) cache used by makedocbook is initialized
before it is used by parallelizable rules to make the DocBook XML, as it
appears that these can collide in cache generation, leading to errors.

Signed-off-by: Jon Turney <jon.turney@dronecode.org.uk>
2016-12-06 17:34:47 +00:00
Jon Turney d7e47a557e Regenerate newlib Makefiles 2016-07-04 17:13:55 +01:00
Jon Turney 0b4cbd2fb8 Make newlib manpages (v3)
Add makedocbook, a tool to process makedoc markup and output DocBook XML
refentries.

Process all the source files which are processed with makedoc with
makedocbook as well

Add chapter-texi2docbook, a tool to automatically generate DocBook XML
chapter files from the chapter .texi files.  For generating man pages all we
care about is the content of the refentries, so all this needs to do is
convert the @include of the makedoc generated .def files to xi:include of
the makedocbook generated .xml files.

Add skeleton Docbook XML book files, lib[cm].in.xml which include these
generated chapters, which in turn include the generated files containing
refentries, which is processed with xsltproc to generate the lib[cm].xml

Add new make targets to generate and install man pages from lib[cm].xml
2016-07-04 14:17:10 +01:00
Jon Turney f145c2e261 Revert "Make newlib manpages via DocBook XML (v3)"
This reverts commit 041ea41068.
2016-06-25 17:07:43 +01:00
Jon Turney 041ea41068 Make newlib manpages via DocBook XML (v3)
Add makedocbook, a tool to process makedoc markup and output DocBook XML
refentries.

Process all the source files which are processed with makedoc with
makedocbook as well

Add chapter-texi2docbook, a tool to automatically generate DocBook XML
chapter files from the chapter .texi files.  For generating man pages all we
care about is the content of the refentries, so all this needs to do is
convert the @include of the makedoc generated .def files to xi:include of
the makedocbook generated .xml files.

Add skeleton Docbook XML book files, lib[cm].in.xml which include these
generated chapters, which in turn include the generated files containing
refentries, which is processed with xsltproc to generate the lib[cm].xml

Add new make targets to generate and install man pages from lib[cm].xml
2016-06-25 17:04:15 +01:00
Jeff Johnston fbc4a0827b Bump up newlib version to 2.4.0 due to feature test refactoring 2016-03-29 17:33:42 -04:00
Jeff Johnston ad7b3cde9c Regenerate files for newlib 2.3.0. 2015-12-21 21:32:11 -05:00
Jon Turney 1129ef019f makedoc: Don't interpret license text as a command
Align makedoc's iscommand() with it's documentation, and don't allow commands to
contain a space.  A command is a line containing only a sequence of capital
letters or '_', followed by optional spaces.

This prevents "IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
PARTICULAR PURPOSE" (the only line in the license text which consists of only
capitals and spaces, without any punctuation) from being interepreted as a
makedoc command, leading to:

"Can't find IMPLIED"
"warning, IMPLIED is not recognised"

being emitted by makedoc, (which is normally un-noticed because makedoc's stderr
is redirected to a .ref file)

2015-11-06  Jon Turney  <jon.turney@dronecode.org.uk>

	* doc/makedoc.c (iscommand): Only allow commands to have trailing
	spaces, not space separated words.

Signed-off-by: Jon Turney <jon.turney@dronecode.org.uk>
2015-11-12 12:42:19 +00:00
Jon Turney 0c02db4d28 makedoc: Fix INTERNAL(|DEFINITION|FUNCTION) command definitions
The unused INTERNAL_DEFINITION, INTERNAL_FUNCTION and INTERNAL commands are
defined in terms of the non-existent built-in 'func'

This causes every single invocation of makedoc to output "Can't find func" three
times, as it parses doc.str.

This is normally un-noticed because makedoc's stderr is redirected to a .ref
file.

Fix these unused command definitions to something with equivalent lack of
effect, but without generating an error.

2015-11-06  Jon Turney  <jon.turney@dronecode.org.uk>

	* doc/doc.str: Fix INTERNAL_DEFINITION, INTERNAL_FUNCTION and
	INTERNAL.

Signed-off-by: Jon Turney <jon.turney@dronecode.org.uk>
2015-11-12 12:42:15 +00:00
Jon TURNEY a669484b81 Manuals failing to build on Ubuntu LTS 14.04
On 11/08/2015 11:08, Andre Vieira wrote:
> On 10/08/15 14:38, Jon TURNEY wrote:
>> On 07/08/2015 11:13, Andre Vieira wrote:
>>> Building the manuals on Ubuntu LTS 14.04 (64-bit) using pdfTeX
>>> 3.1415926-2.5-1.40.14 (TeX Live 2013/Debian) is failing with the
>>> following error:
>>> "Transcript written on libc.log.
>>> /usr/bin/texi2dvi: pdfetex exited with bad status, quitting."
>>>
>>> libc.log complaints about the following:
>>>
>>> You can't use `@unskip' in vertical mode.
>>>
[...]
>>>
>>> This code has been around for a while, so it might have to do with a
>>> change in pdfTex?

So it seems this problem has been around for a while, and looks like it
is due to a change in texi2dvi in texinfo 5.0 or late 4.x, see [1].

I guess it's not very noticeable since it only occurs when doing 'make
dvi', which doesn't happen by default.

Attached is a different and perhaps cleaner workaround to the one in
that thread.

[1] https://sourceware.org/ml/newlib/2013/msg00057.html

From 4d386b5900b6c68e022004b447faa696be5ff8c7 Mon Sep 17 00:00:00 2001
From: Jon TURNEY <jon.turney@dronecode.org.uk>
Date: Tue, 11 Aug 2015 14:46:39 +0100
Subject: [PATCH] Use '@sp 1' rather than '@*' to workaround a change in
 texi2dvi.

Since about TexInfo 5.0, using '@*' immediately after a table causes a 'You
can't use `@unskip' in vertical mode' error.

See https://sourceware.org/ml/newlib/2013/msg00057.html

Signed-off-by: Jon TURNEY <jon.turney@dronecode.org.uk>
2015-08-20 10:53:55 +02:00
Jeff Johnston 4fab65dc6b 2015-01-14 Joel Sherrill <joel.sherrill@oarcorp.com>
* doc/makedoc.c: Use uintptr_t to avoid int/pointer size warnings
2015-01-14 21:15:36 +00:00
Jeff Johnston 0615b4bb5f 2014-12-18 Jeff Johnston <jjohnstn@redhat.com>
* NEWS: Update with 2.2.0 info.
        * README: Ditto.
        * acinclude.m4: Change version number to 2.2.0.
        * libc/libc.texinfo: Ditto.
        * libm/libm.texinfo: Ditto.
        * configure: Regenerated.
        * Makefile.in: Regenerated.
        * doc/configure: Ditto.
        * libc/*/configure: Ditto.
        * libm/*/configure: Ditto.
        * libc/sys/linux/shared.ld: Add VERS_2.2
2014-12-18 20:30:11 +00:00