A new newlib version has been realized yesterday: newlib-4.3.0 (yearly snapshot)
https://sourceware.org/pipermail/newlib/2023/020141.html
https://sourceware.org/ftp/newlib/index.html → 2023-01-20:
newlib-4.3.0.20230120.tar.gz (8.8 MB)
For both nvptx and GCN, the new version is recommended - mostly because of
upcoming changes
and not because GCC mainline already needs them currently. But soon it will,
hence:
The attached patch bumps the minimal version instead of keeping the old version
and only
recommending the newer one.
Comments? Suggestions? – If there are none, I intent to commit the patch as
obvious.
Tobias
PS: For AMDGCN, the newlib uses (if available) some new builtins: one provided
by GCC 13
but having the currently same value as the hard coded registers that get used
if the builtin
s not available - to permit a change to non-private stack variables (required
for reverse offload;
will require recompilation of newlib).
And to support vectorized math functions. (The gcn builtins still have to be
added to GCC 13;
if the builtins aren't available, newlib won't use them - hence, also will
later require a
rebuild with the newer newlib).
For nvptx, newlib added some features to permit building a non-minimal version
of libgfortran,
which also permits I/O. The libgfortran changes have been approved but the GCC
nvptx patches
still have to be reviewed (and would also require a pending nvptx-tools pull
request).
BTW: The gcn vect math and the nvptx changes went into newlib in the last few
days. Thus, if
you have use the 'git' version it won't have the changes, unless you updated at
least yesterday.
-----------------
Siemens Electronic Design Automation GmbH; Anschrift: Arnulfstraße 201, 80634
München; Gesellschaft mit beschränkter Haftung; Geschäftsführer: Thomas
Heurung, Frank Thürauf; Sitz der Gesellschaft: München; Registergericht
München, HRB 106955
install.texi: Bump newlib version for nvptx + gcn
Before, newlib 3.2 was required for amdgcn and 3.1 for nvptx.
Now recommended is 4.3.0 which was just released on 2023-01-20.
While currently the old versions would work fine, upcoming GCC
changes depend on a newer newlib. Thus, the minimal version is
bumped instead of just recommending the new version.
For GCN, the bump is in preparation for permitting non-threadlocal
stack variables and vectorized math functions - both scheduled for
GCC 13 and added to newlib in 4.3.0.
For nvptx, this includes an emulated clock (commit 6bb96d13a),
a calloc fix (5fca4e0f1) and changes to permit libgfortran to be
compiled with I/O support instead of only in minimal mode.
(Patch approved for GCC 13 but pending on a nvtpx patch.)
gcc/ChangeLog:
* doc/install.texi (amdgcn, nvptx): Require newlib 4.3.0.
diff --git a/gcc/doc/install.texi b/gcc/doc/install.texi
index ccc8d15fd08..b1861a6a437 100644
--- a/gcc/doc/install.texi
+++ b/gcc/doc/install.texi
@@ -3855,7 +3855,7 @@ Instead of GNU Binutils, you will need to install LLVM 13.0.1, or later, and cop
@file{bin/llvm-ar} to both @file{bin/amdgcn-amdhsa-ar} and
@file{bin/amdgcn-amdhsa-ranlib}.
-Use Newlib (3.2.0, or newer).
+Use Newlib (4.3.0 or newer).
To run the binaries, install the HSA Runtime from the
@uref{https://rocm.github.io,,ROCm Platform}, and use
@@ -4672,7 +4672,7 @@ Instead of GNU binutils, you will need to install
Tell GCC where to find it:
@option{--with-build-time-tools=[install-nvptx-tools]/nvptx-none/bin}.
-You will need newlib 3.1.0 or later. It can be
+You will need newlib 4.3.0 or later. It can be
automatically built together with GCC@. For this, add a symbolic link
to nvptx-newlib's @file{newlib} directory to the directory containing
the GCC sources.