summaryrefslogtreecommitdiff
path: root/doc
diff options
context:
space:
mode:
authorPaul Eggert <eggert@cs.ucla.edu>2023-04-29 11:44:13 -0700
committerPaul Eggert <eggert@cs.ucla.edu>2023-04-29 11:46:25 -0700
commitc2a5953f179814dd0f4b7e627aae9a009181ed6a (patch)
tree38b71aed28c1c6215f4381085d9b85767198d7a6 /doc
parent44480828308ad08a1b37e2d96a72ababee5f7174 (diff)
downloadgnulib-c2a5953f179814dd0f4b7e627aae9a009181ed6a.tar.gz
year2038-recommended: new module
Remove year2038-required and largefile-required, replacing the former with year2038-recommended and simply removing the latter. This syncs with Autoconf master. * MODULES.html.sh, NEWS, doc/largefile.texi: * all-modules (exclude): Exclude year2038-recommended, not -required. * doc/posix-headers/sys_types.texi, doc/posix-headers/time.texi: * doc/year2038.texi: Mention this. * m4/largefile.m4: Sync from Autoconf. Override existing macros if AC_SYS_YEAR2038_RECOMMENDED is not defined, rather than if AC_SYS_LARGEFILE_REQUIRED is not defined. * modules/largefile-required, modules/year2038-required: Removed. * modules/year2038: Do not depend on largefile; simply use m4/largefile.m4, since we shouldn’t need the extra goodies largefile supplies. * modules/year2038-recommended: New module.
Diffstat (limited to 'doc')
-rw-r--r--doc/largefile.texi13
-rw-r--r--doc/posix-headers/sys_types.texi3
-rw-r--r--doc/posix-headers/time.texi3
-rw-r--r--doc/year2038.texi38
4 files changed, 29 insertions, 28 deletions
diff --git a/doc/largefile.texi b/doc/largefile.texi
index b5bfa5116a..574753f10a 100644
--- a/doc/largefile.texi
+++ b/doc/largefile.texi
@@ -1,22 +1,25 @@
@node Large File Support
@section Large File Support
-The Gnulib @samp{largefile-required} module provides support for files
-2 GiB and larger, or with device or inode numbers exceeding 32 bits.
-To this effect, it ensures that types like @code{off_t} and
+This module provides support for files 2 GiB and larger, or with
+device or inode numbers exceeding 32 bits.
+To this effect, it attempts to ensure that types like @code{off_t} and
@code{ino_t} are 64-bit,
at least on the following platforms:
glibc, Mac OS X, FreeBSD, NetBSD, OpenBSD, AIX, HP-UX, IRIX, Solaris,
Cygwin, mingw, MSVC.
-The Gnulib @samp{largefile} module is similar, except that it gives
+If the types cannot be made 64-bit, @command{configure} issues a
+warning and proceeds.
+
+This module gives
@command{configure} an option @samp{--disable-largefile} that
suppresses support for large files. This may be useful if the package
links to other libraries whose user-facing ABIs still require
@code{off_t} or most other file-related types to be 32-bit on your
platform.
-Both modules also add to @command{configure} an option
+This module also adds to @command{configure} an option
@code{--enable-year2038}, needed on some platforms to access files
with timestamps past the year 2038. @xref{Avoiding the year 2038
problem}.
diff --git a/doc/posix-headers/sys_types.texi b/doc/posix-headers/sys_types.texi
index 7590e78695..8739cc2625 100644
--- a/doc/posix-headers/sys_types.texi
+++ b/doc/posix-headers/sys_types.texi
@@ -38,7 +38,6 @@ are signed integer types that are wider than @code{long}:
glibc x32
@end itemize
-This module, together with the modules @code{largefile-required}
-or @code{largefile}, also defines the type
+This module, together with the module @code{largefile}, also defines the type
@code{off_t} to a 64-bit integer type on some platforms:
mingw, MSVC 14.
diff --git a/doc/posix-headers/time.texi b/doc/posix-headers/time.texi
index 70814d6cda..c1e22b9369 100644
--- a/doc/posix-headers/time.texi
+++ b/doc/posix-headers/time.texi
@@ -18,8 +18,7 @@ expressions:
NetBSD 5.0.
@end itemize
-Portability problems fixed by the Gnulib module
-@code{year2038} or @code{year2038-required}:
+Portability problems fixed by the Gnulib module @code{year2038}:
@itemize
@item
On some platforms where @code{time_t} defaults to 32-bit but can be
diff --git a/doc/year2038.texi b/doc/year2038.texi
index f0f6d51516..5964601831 100644
--- a/doc/year2038.texi
+++ b/doc/year2038.texi
@@ -1,7 +1,7 @@
@node Avoiding the year 2038 problem
@section Avoiding the year 2038 problem
-The ``year 2038 problem'' denotes unpredictable behaviour that will
+The @dfn{year 2038 problem} denotes unpredictable behaviour that will
likely occur in the year 2038, for programs that use a 32-bit signed
integer @samp{time_t} type that cannot represent timestamps on or
after 2038-01-19 03:14:08 UTC@. See
@@ -26,32 +26,32 @@ suppresses support for post-2038 timestamps. This may be useful if
the package links to other libraries whose user-facing ABIs still
require @code{time_t} to be 32-bit on your platform.
-The Gnulib module @samp{year2038-required} is like @samp{year2038},
-except it rejects platforms where @code{time_t} cannot represent
-timestamps after 2038, and it lacks a @option{--disable-year2038}
-option. If this module is used and a 32-platform cannot support
+The Gnulib module @samp{year2038-recommended} is like @samp{year2038},
+except it by default rejects platforms where @code{time_t} cannot represent
+timestamps after 2038. If this module is used and a 32-platform cannot support
64-bit @code{time_t}, one can still fix the year-2038 problem by using
a 64-bit instead of a 32-bit build, as noted in the architecture list
below. If all else fails one can configure with
-@samp{ac_year2038_required=no}; however, the resulting programs will
+@option{--disable-year2038}; however, the resulting programs will
mishandle timestamps after 2038.
-The Gnulib module @samp{year2038-required} is
-recommended for packages intended for use on 32-bit platforms
-after the year 2038. However, if your package needs to support
+The Gnulib module @samp{year2038-recommended} is designed
+for packages intended for use on 32-bit platforms
+after the year 2038. If your package is commonly built on
32-bit platforms that will not be used after the year 2038,
-you can use the @samp{year2038} module instead.
+you can use the @samp{year2038} module instead, to save builders
+the trouble of configuring with @option{--disable-year2038}.
If the Gnulib module @samp{largefile} is used but neither
-@samp{year2038} nor @samp{year2038-required} is used,
+@samp{year2038} nor @samp{year2038-recommended} is used,
@command{configure} will have an option @option{--enable-year2038}
that causes @code{configure} to behave as if @samp{year2038} was used.
This is for packages that have long used @samp{largefile} but have not
gotten around to upgrading their Gnulib module list to include
-@samp{year2038} or @samp{year2038-required}.
+@samp{year2038} or @samp{year2038-recommended}.
@xref{Large File Support}.
-With the @samp{year2038-required} module, @command{configure} by
+With the @samp{year2038-recommended} module, @command{configure} by
default should work on the following 32-bit platforms (or 32-bit ABIs
in bi-arch systems):
@@ -70,18 +70,18 @@ OpenBSD 5.5 (2014) and later on x86,
@item
FreeBSD/arm,
@item
-Minix 3.3.
+Minix 3.3 (2014).
@end itemize
@noindent
-Whereas @command{configure} with @samp{year2038-required} will fail on
-earlier versions of the abovementioned platforms if a version is listed,
-and it will also fail on all versions of the following older 32-bit
-platforms or ABIs:
+Whereas with @samp{year2038-recommended}, @command{configure} should
+by default fail on earlier versions of the abovementioned platforms if
+a version is listed, and it should also by default fail on all
+versions of the following older 32-bit platforms or ABIs:
@itemize
@item
-Android,
+Android on ARMv7 or x86,
@item
Mac OS X 10.6 (2009) and earlier on x86 and powerpc,
@item