Update the release notes athttps://gcc.gnu.org/gcc-17/changes.html for the new
GOMP_RUNTIME_USM environment variable.

(There are more changes in the pipeline and a few smaller one, possibly not
worthwhile to mention.)

Likewise an update for the installation status 
athttps://gcc.gnu.org/projects/gomp/
Besides a few GCC 17 items, it was missed during GCC 15 to set one item to 
'partial'.

Committed as  a8d9776d2  OpenMP: Update gcc-17/changes.html + projects/gomp/

Tobias
Title: GCC 17 Release Series — Changes, New Features, and Fixes

GCC 17 Release Series
Changes, New Features, and Fixes

This page is a "brief" summary of some of the huge number of improvements in GCC 17. You may also want to check out our Porting to GCC 17 page and the full GCC documentation.

Note: GCC 17 has not been released yet, so this document is a work-in-progress.

Caveats

  • ...

General Improvements

New Languages and Language specific improvements

OpenACC

See the GCC OpenACC wiki page for general information.

  • OpenACC 2.5: Add Fortran support for the init, set, and shutdown directives.

OpenMP

See the GNU Offloading and Multi-Processing Project (GOMP) page for general information.

  • OpenMP 5.0: Multiple clauses mapping the same variable is now supported. Handling used-defined map operation (declare mapper) in C and C++ has been improved. The uses_allocators clause now accepts traits (also with the OpenMP 5.1 syntax).
  • OpenMP 5.1: The iterator modifier to the map, to, and from clauses has been improved for C and C++ and initial support for Fortran added.
  • OpenMP 6.0: The device_type clause is now supported on the target construct.
  • TR15: The omp_get_device_distances API routine has been added that can be used to find the offload devices that are closest, in terms of NUMA node, to the thread that called the routine. The multidimensional-information API routines have been added, albeit GCC currently only supports one spatial dimension; already useful are the new omp_get_supported_teams_dim and omp_get_supported_threads_dim routines that return, respectively, the maximal number of teams and threads that GCC supports on a given device.
  • The new GOMP_RUNTIME_USM environment variable can be used to enable self mapping at runtime for devices that support accessing host memory (unified-shared memory).

C

  • Improvements to GNU extensions including:

C++

Runtime Library (libstdc++)

  • Improved experimental C++26 support including:
    • std::format in constexpr functions.
  • std::filesystem support for Windows symlinks, thanks to Adam Wood.

Fortran

  • The Fortran 2023 c_f_strpointer intrinsic is now supported. Additionally, the f_c_string intrinsic has been reimplemented to be more efficient.
  • The -Wunused-but-set-variables option is now also effective for Fortran.
  • The new option -Wundefined-vars, enabled by -Wall, warns about variables that are used that have not been defined (i.e. have no value assigned to them).
  • The new options -Wunused-read and -Wunused-intent-out, both enabled by -Wextra, warn about variables in READ statements and variables passed to INTENT(OUT) variables, respectively, whose values are never used.

New Targets and Target Specific Improvements

AMD GPU (GCN)

  • For offloading to AMD GPUs: The launch overhead of OpenMP target regions and OpenACC compute regions has been further reduced compared with GCC 16.

AVR

  • Support has been added for the following fixed-point arithmetic routines:
    • Saturated division for the 16-bit types.
    • Saturated division for the signed and unsigned _Accum types.
    • Saturated shift left for all the supported types.
    • Saturated and unsaturated 64-bit multiplications and divisions.
    • Saturated and unsaturated long _Fract and unsigned long _Fract multiplications and divisions.
  • The code size of an inline asm construct — or parts of it — can be specified with [[len=spec]] annotations. The code size is specified in units of 16-bit words and is set to the sum over all such notes. The notes can be deactivated with the new command-line option -mno-asm-len-notes so that the default length applies. The diagnostic behavior can be adjusted with -Wasm-len-notes.

IA-32/x86-64

  • The AVX10.2 scalar saturating conversion intrinsics have been renamed from the _ep[i|u]{32,64} suffix, which denotes packed elements, to _[i|u]{32,64}, with _si{32,64} aliases for the signed variants. The old names were never accepted by other x86 compilers. See the porting guide for the list of affected intrinsics.

S/390, System z, IBM z Systems

  • Support for -m31 was removed and as a consequence -mesa support.

SH

  • The SH backend has been switched permantenly to LRA. The option -mlra is now ineffective but kept around for backwards compatibility

Operating Systems

Other significant improvements

commit a8d9776d2d8c1cd5dd7c41445b76ce6e7abe2785
Author: Tobias Burnus <[email protected]>
Date:   Mon Sep 21 13:10:16 2026 +0200

    OpenMP: Update gcc-17/changes.html + projects/gomp/

diff --git a/htdocs/gcc-17/changes.html b/htdocs/gcc-17/changes.html
index 7bb6538fc..39345a0c3 100644
--- a/htdocs/gcc-17/changes.html
+++ b/htdocs/gcc-17/changes.html
@@ -81,6 +81,10 @@ for general information.</p>
     <code>omp_get_supported_threads_dim</code></a> routines that return,
     respectively, the maximal number of teams and threads that GCC supports
     on a given device.</li>
+  <li>The new <a href="https://gcc.gnu.org/onlinedocs/libgomp/GOMP_005fRUNTIME_005fUSM.html";>
+    <code>GOMP_RUNTIME_USM</code></a> environment variable can be used to enable
+    self mapping at runtime for devices that support accessing host memory
+    (unified-shared memory).</li>
 </ul>
 
 <!-- <h3 id="ada">Ada</h3> -->
diff --git a/htdocs/projects/gomp/index.html b/htdocs/projects/gomp/index.html
index 6d8010ae1..24a6e7acb 100644
--- a/htdocs/projects/gomp/index.html
+++ b/htdocs/projects/gomp/index.html
@@ -927,7 +927,7 @@ than listed, depending on resolved corner cases and optimizations.</p>
     <td>New <code>memspace</code> and <code>traits</code> modifiers for <code>uses_allocators</code></td>
     <td class="supported"><a href="../../gcc-16/changes.html#openmp">GCC&nbsp;16</a><br>
     <a href="../../gcc-17/changes.html#openmp">GCC&nbsp;17</a></td>
-    <td>Only predefined allocators<br></td>
+    <td>Only predefined allocators<br>&nbsp;</td>
   </tr>
   <tr>
     <td>Deprecation of traits array following the allocator_handle expression in <code>uses_allocators</code></td>
@@ -986,7 +986,7 @@ than listed, depending on resolved corner cases and optimizations.</p>
   </tr>
   <tr>
     <td>For Fortran, optional comma between directive and clause</td>
-    <td class="unsupported">No</td>
+    <td class="supported"><a href="../../gcc-17/changes.html#openmp">GCC&nbsp;17</a></td>
     <td></td>
   </tr>
   <tr>
@@ -1319,8 +1319,8 @@ error.</p>
   </tr>
   <tr>
     <td>New <code>need_device_addr</code> modifier to <code>adjust_args</code> clause</td>
-    <td class="unsupported">No</td>
-    <td></td>
+    <td class="partial"><a href="../../gcc-15/changes.html#openmp">GCC&nbsp;15</a></td>
+    <td>Not supported in C++</td>
   </tr>
   <tr>
     <td><code>interop</code> clause to <code>dispatch</code></td>
@@ -1651,8 +1651,8 @@ error.</p>
 <tbody>
   <tr>
     <td>Multi-word directives now use underscore by default</td>
-    <td class="unsupported">No</td>
-    <td></td>
+    <td class="partial"><a href="../../gcc-17/changes.html#openmp">GCC&nbsp;17</a></td>
+    <td>Only in Fortran</td>
   </tr>
   <tr>
     <td>Relaxed Fortran restrictions to the <code>aligned</code> clause</td>

Reply via email to