This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "gcc-wwwdocs".
The branch, master has been updated
via bff6f194662bcd8abc45c38fab28c62f1c2af24f (commit)
from df35c7463d8efa04d493fb0c95dbcf4a52da9cfd (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.
- Log -----------------------------------------------------------------
commit bff6f194662bcd8abc45c38fab28c62f1c2af24f
Author: Rainer Orth <[email protected]>
Date: Tue Mar 31 09:48:50 2026 +0200
wwwdocs: Mention GCC 16 Solaris changes and caveats
This patch documents Solaris-specific changes in GCC 16 and resulting
caveats.
diff --git a/htdocs/gcc-16/changes.html b/htdocs/gcc-16/changes.html
index 9343224c..c311fa2c 100644
--- a/htdocs/gcc-16/changes.html
+++ b/htdocs/gcc-16/changes.html
@@ -30,7 +30,14 @@ a work-in-progress.</p>
<!-- .................................................................. -->
<h2>Caveats</h2>
<ul>
- <li>...</li>
+ <li><code>int8_t</code> etc. are now <code>signed char</code> on Solaris
+ for conformance with the C99 standard. However, this is an
+ incompatible change. See <a href="porting_to.html#solaris">the
+ porting notes</a> for more information.</li>
+ <li>The <code>-pthread</code> option no longer
+ predefines <code>_REENTRANT</code> on Solaris.
+ See <a href="porting_to.html#solaris">the porting notes</a> for more
+ information.</li></li>
</ul>
@@ -531,7 +538,12 @@ struct Affected : E
<!-- <h3 id="rtems">RTEMS</h3> -->
-<!-- <h3 id="solaris">Solaris</h3> -->
+<h3 id="solaris">Solaris</h3>
+<ul>
+ <li>GCC now supports the easy generation of Solaris CTF (Compact C Type
+ Format) with the <code>-gsctf</code> option. More information can be
+ found in the <code>ctf(5)</code> manual page.</li>
+</ul>
<!-- <h3 id="vxmils">VxWorks MILS</h3> -->
diff --git a/htdocs/gcc-16/porting_to.html b/htdocs/gcc-16/porting_to.html
index 326dd13d..a2ad4ad8 100644
--- a/htdocs/gcc-16/porting_to.html
+++ b/htdocs/gcc-16/porting_to.html
@@ -80,5 +80,44 @@ casting to <code>(void)</code>, or lowering the level of the
warning. See
<code>-Wunused-but-set-*</code></a> documentation for more details.
</p>
+<h2 id="os">Operating Systems</h2>
+
+<h3 id="solaris">Solaris</h3>
+<ul>
+ <li>The <code>int8_t</code>, <code>int_fast8_t</code>,
+ and <code>int_least8_t</code> types are defined as <code>char</code>
+ on Solaris. While this sort of works because <code>char</code> is
+ signed, it violates C99, 7.18.1.1, Exact-width integer types. This
+ requires <code>int8_t</code> etc. to be signed integer types,
+ which <code>char</code> is not. This standards violation repeatedly
+ caused compile or run-time failures with C++ code, so GCC 16
+ changes these types in a private copy of
+ the <code><sys/int_types.h></code> header. Unfortunately, this
+ is an incompatible, ABI-breaking change, but considered rare enough
+ for the benefit to outweigh the cost. This changes the mangling of
+ C++ functions taking <code>int8_t</code> arguments, resulting in link
+ failures. To avoid this, it's best to recompile affected code bases
+ with GCC 16. If this is not possible, the traditional types can
+ be restored by predefining <code>_LEGACY_INT8_T</code>. This is also
+ necessary when linking with code created by either the
+ Studio <code>CC</code> compiler with the
+ non-default <code>-std=c++03</code>, <code>c++11</code>,
+ or <code>c++14</code> options or <code>clang++</code>, which still
+ use the definitions from the unpatched Solaris headers.</li>
+ <li>The <code>-pthread</code> and <code>-pthreads</code> options used to
+ link with <code>libpthread</code> and define the preprocessor
+ symbols <code>_REENTRANT</code> and
+ <code>_PTHREADS</code>. However, in
+ Solaris 10 <code>libpthread</code> has been folded into the
+ Solaris C library. In Solaris 11.4 <code>_REENTRANT</code> is
+ no longer used in system headers while <code>_PTHREADS</code> has
+ long been unused, so both options are now silently ignored. In the
+ rare cases that user code references them for its own purposes, it
+ has to define those symbols themselves. Background information can
+ be found
+ on <a
href="https://www.linker-aliens.org/blogs/ali/entry/mtreentrant/">Goodbye
+ (And Good Riddance) to -mt -and -D_REENTRANT</a>.</li>
+</ul>
+
</body>
</html>
-----------------------------------------------------------------------
Summary of changes:
htdocs/gcc-16/changes.html | 16 ++++++++++++++--
htdocs/gcc-16/porting_to.html | 39 +++++++++++++++++++++++++++++++++++++++
2 files changed, 53 insertions(+), 2 deletions(-)
hooks/post-receive
--
gcc-wwwdocs