EPICS Controls Argonne National Laboratory

Experimental Physics and
Industrial Control System

1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  2007  2008  2009  2010  2011  2012  2013  2014  2015  2016  2017  2018  2019  2020  2021  2022  2023  2024  2025  <2026>  Index 1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  2007  2008  2009  2010  2011  2012  2013  2014  2015  2016  2017  2018  2019  2020  2021  2022  2023  2024  2025  <2026> 
<== Date ==> <== Thread ==>

Subject: Re: EPICS base-3.15.9 fails to build with GCC-15
From: Joel Sherrill via Tech-talk <tech-talk at aps.anl.gov>
To: Michael Davidsaver <mdavidsaver at gmail.com>
Cc: tech-talk at aps.anl.gov
Date: Tue, 29 Sep 2026 16:55:28 -0500


On Tue, Sep 29, 2026 at 4:38 PM Michael Davidsaver via Tech-talk <tech-talk at aps.anl.gov> wrote:
On 9/22/26 1:38 AM, Dmitry Yu. Bolkhovityanov via Tech-talk wrote:
Hi!

GCC-14 becomes mainstream (e.g. Debian-13), and familiar base-3.15.6 fails to build with it.  Fotrunately, 3.15.9 was built successfully, but I wanted to check it for "future-proofness" and tried building with GCC-15 and GCC-16.  It had failed with both.
...

GCC 14+ have been aggressive in trying to discourage use of error-prone language constructs, and the older standards which permitted them.  Some of the compile errors you mention should be avoidable by building with "make CMD_CFLAGS=-std=c89" (or C11 as Remi mentions).  I think not a long term solution, but with this older code maybe long enough?


It is too late to back fill this in properly but I think every project should pick a version of the language it is using and specify that in the build system. Not explicitly doing this leaves the language version to the whims of whatever gcc/llvm is installed. C11 wasn't a huge break with C99 and C17 is just a bug fix for C11. So there wasn't a huge breakage for years of C and compiler evolution. We were all just lucky. C23 has new features and keywords. GCC 15 defaults to C23. 

We were seeing this problem with RTEMS 5 on some packages. The newer distributions had newer compilers which defaulted to newer language versions. Chris Johns added support to the RTEMS Source Builder for us to add a standard way to specify the expected language version. This addressed the problem packages for RTEMS. 

I also am a lead on an avionics software standard that specifies specific language versions and off-limits features. It is not uncommon for people to not specify any -std or specify a version not allowed in the standard and then wonder why they don't pass conformance testing. It isn't a bad reflection on EPICS -std isn't specified. It unfortunately is not something that people seem to realize is important to define as a project requirement. "EPICS shall be written in Cnn or C++nn." 

I would also add that I pushed RTEMS to be warning free for "-Wall". Once warning free with that, we went to "-Wall -Werror" and then "-Wall -Wextra". Before all the -Wextra were fixed, I added -Wno-XXX to disable specific warnings. It is thankless work but is a worthy goal.

--joel
RTEMS

Replies:
Re: EPICS base-3.15.9 fails to build with GCC-15 Michael Davidsaver via Tech-talk
References:
EPICS base-3.15.9 fails to build with GCC-15 Dmitry Yu. Bolkhovityanov via Tech-talk
Re: EPICS base-3.15.9 fails to build with GCC-15 Michael Davidsaver via Tech-talk

Navigate by Date:
Prev: Re: IOC assert by thread CAS-client Michael Davidsaver via Tech-talk
Next: Re: IOC assert by thread CAS-client LiangChih Chiang via Tech-talk
Index: 1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  2007  2008  2009  2010  2011  2012  2013  2014  2015  2016  2017  2018  2019  2020  2021  2022  2023  2024  2025  <2026> 
Navigate by Thread:
Prev: Re: EPICS base-3.15.9 fails to build with GCC-15 Michael Davidsaver via Tech-talk
Next: Re: EPICS base-3.15.9 fails to build with GCC-15 Michael Davidsaver via Tech-talk
Index: 1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  2007  2008  2009  2010  2011  2012  2013  2014  2015  2016  2017  2018  2019  2020  2021  2022  2023  2024  2025  <2026> 
ANJ, 29 Sep 2026 · Home · News · About · Talk · Base · Modules · Extensions ·
· Distributions · Download · Documents · Links · Licensing ·