From Fedora Project Wiki
 
(39 intermediate revisions by the same user not shown)
Line 1: Line 1:
== GCC 15 mass prebuild ==
= GCC 15 mass prebuild =


These are notes to myself on my attempts to use mass-prebuilder to test [https://gcc.gnu.org/gcc-15/changes.html GCC 15] in Fedora in December 2024 in preparation for [[Changes/GNUToolchainF42]]
These are notes to myself on my attempts to use mass-prebuilder to test [https://gcc.gnu.org/gcc-15/changes.html GCC 15] in Fedora in December 2024 in preparation for [[Changes/GNUToolchainF42]]


=== Current status ===
== Trying it yourself ==
* Mass prebuild of rawhide with GCC 15 on aarch64, ppc64le, s390x, and x86_64 has run here: https://copr.fedorainfracloud.org/coprs/dmalcolm/gcc-15-smoketest-3/builds/
 
** All of the builds with gcc 15 are done, about 25% failed.  I'm running into uncaught exceptions being thrown by mpb, both when trying to analyze the failures by building against a baseline gcc 14 and when trying to get more accurate stats.
GCC 15 is not yet in rawhide, but you can use the scratch build via:
 
$ copr mock-config dmalcolm/gcc-15-smoketest-3 fedora-rawhide-x86_64 > ~/.config/mock/fedora-rawhide-gcc15-x86_64.cfg
$ fedpkg mockbuild --root fedora-rawhide-gcc15-x86_64
 
== Current status ==
* Mass prebuild of rawhide with GCC 15 on aarch64, ppc64le, s390x, and x86_64 ran here: https://copr.fedorainfracloud.org/coprs/dmalcolm/gcc-15-smoketest-3/builds/
** 7273 successful builds with gcc 15
** 1438 builds that failed for some reason with gcc 15
* Rerunning the 1438 failed builds:
** with gcc 15 (experiment): https://copr.fedorainfracloud.org/coprs/dmalcolm/gcc-15-smoketest-3.failed/builds/
** with gcc 14 (control):    https://copr.fedorainfracloud.org/coprs/dmalcolm/gcc-15-smoketest-3.failed.checker/builds/ 
** Status at 2025-01-07 15:39:16+00:00 
    440 out of 1438 builds are done.
    Pending: 515     
    Running: 13       
    Success: 29       
    Under check: 470     
    Manual confirmation needed: 147     
    Failed: 264     
 
* This is a failure rate of about 60%, suggesting about 862 will fail
** 6 ICEs seen so far; filed in Fedora BZ (or dups of these); see the list below
* Tracker bug for failures [https://bugzilla.redhat.com/buglist.cgi?bug_id=2333037&bug_id_type=anddependson&format=tvp&list_id=13537350 here]
* Tracker bug for failures [https://bugzilla.redhat.com/buglist.cgi?bug_id=2333037&bug_id_type=anddependson&format=tvp&list_id=13537350 here]


=== Older status ===
== Older status ==
* Was having [https://pagure.io/fedora-infrastructure/issue/12325 quota issues] uploading the repos, so was only testing aarch64 at first.  This is now fixed.
* Was having [https://pagure.io/fedora-infrastructure/issue/12325 quota issues] uploading the repos, so was only testing aarch64 at first.  This is now fixed.
* Timeout building GCC in copr, so using one of Jakub's scratch builds, turned into repos [https://dmalcolm.fedorapeople.org/gcc/gcc-15-mass-prebuild/ here].
* Timeout building GCC in copr, so using one of Jakub's scratch builds, turned into repos [https://dmalcolm.fedorapeople.org/gcc/gcc-15-mass-prebuild/ here].
Line 23: Line 45:
Copr build error: Build failed
Copr build error: Build failed
</pre>
</pre>
* I was running into exceptions being thrown by mpb, both when trying to analyze the failures by building against a baseline gcc 14 and when trying to get more accurate stats.  These are fixed now (issues were 404 when trying to download log files due to results being cleaned up, and the .checker copr project only containing one arch, not all 4).


== Kinds of failures seen ==
=== Automated classification ===
Fri Jan 10 01:26:32 AM UTC 2025


=== Function prototypes with empty params change from implicit "int" to "void" ===
914 failures analyzed
 
Ordered by count:
  c23/fndecls                                              :  499
  c23/new-keywords/bool                                    :  102
  c++/cstdint                                              :  98
  c++/-Wtemplate-body                                      :  57
  c23/new-keywords/false                                  :  21
  c23/new-keywords/true                                    :  15
  c23/noreturn                                            :  12
  ice/pr118337                                            :  11
  -Werror/unterminated-string-initialization              :    8
  ice/unknown                                              :    8
  c23/noreturn/R-rhbz#2336256                              :    4
  unclassified/Singular-rhbz#2336263                      :    4
  c23/new-keywords/bool/sendmail-milter-devel-rhbz#2336394 :    4
  rhbz#2336440: Could not find working version of PSBLAS  :    4
  improper-testing/missing-libgnat-for-builddep            :    4
  unclassified/bigloo-rhbz#2336442                        :    4
  unclassified/bison-rhbz#2336443                          :    4
  c23/new-keywords/nullptr                                :    4
  c23/new-keywords/thread_local                            :    4
  unclassified/colobot-TODO                                :    4
  fortran/mod-version                                      :    4
  -Werror/cpp                                              :    4
  unclassified/could not determine id3lib version          :    4
  unclassified/cryptlib-rhbz#2336479                      :    3
  c++/dyninst-rhbz#2336618                                :    3
  unclassified/frr-TODO                                    :    3
  ice/jit/unhandled-tree_type_to_jit_type-rhbz#2336714    :    3
  missing-builtin/__builtin_vsx_xvcvdpsp                  :    3
  -Werror/deprecated-declarations                          :    2
  c++/different-exception-specifier-rhbz#2336713          :    2
  removed-command-line-option/xeon-phi/-mavx512pf          :    1
  unclassified/cbmc-rhbz#2336449                          :    1
  unclassified/dqlite-rhbz#2336574                        :    1
  -Werror/unused-result                                    :    1
  -Werror/header-guard                                    :    1
  wrong-code/crc/flac-rhbz#2336715                        :    1
  unclassified/libcamera-TODO                              :    1
  unclassified/NLopt-rhbz#2336253                          :    1
  unclassified/PyMCA-rhbz#2336255                          :    1
  aunit/aunit-TODO                                        :    1
  unclassified/bolt-TODO                                  :    1
  bad-srpm/%changelog not in descending chronological order:    1
 
Alphabetical:
  -Werror/cpp                                              :    4
  -Werror/deprecated-declarations                          :    2
  -Werror/header-guard                                    :    1
  -Werror/unterminated-string-initialization              :    8
  -Werror/unused-result                                    :    1
  aunit/aunit-TODO                                        :    1
  bad-srpm/%changelog not in descending chronological order:    1
  c++/-Wtemplate-body                                      :  57
  c++/cstdint                                              :  98
  c++/different-exception-specifier-rhbz#2336713          :    2
  c++/dyninst-rhbz#2336618                                :    3
  c23/fndecls                                              :  499
  c23/new-keywords/bool                                    :  102
  c23/new-keywords/bool/sendmail-milter-devel-rhbz#2336394 :    4
  c23/new-keywords/false                                  :  21
  c23/new-keywords/nullptr                                :    4
  c23/new-keywords/thread_local                            :    4
  c23/new-keywords/true                                    :  15
  c23/noreturn                                            :  12
  c23/noreturn/R-rhbz#2336256                              :    4
  fortran/mod-version                                      :    4
  ice/jit/unhandled-tree_type_to_jit_type-rhbz#2336714    :    3
  ice/pr118337                                            :  11
  ice/unknown                                              :    8
  improper-testing/missing-libgnat-for-builddep            :    4
  missing-builtin/__builtin_vsx_xvcvdpsp                  :    3
  removed-command-line-option/xeon-phi/-mavx512pf          :    1
  rhbz#2336440: Could not find working version of PSBLAS  :    4
  unclassified/NLopt-rhbz#2336253                          :    1
  unclassified/PyMCA-rhbz#2336255                          :    1
  unclassified/Singular-rhbz#2336263                      :    4
  unclassified/bigloo-rhbz#2336442                        :    4
  unclassified/bison-rhbz#2336443                          :    4
  unclassified/bolt-TODO                                  :    1
  unclassified/cbmc-rhbz#2336449                          :    1
  unclassified/colobot-TODO                                :    4
  unclassified/could not determine id3lib version          :    4
  unclassified/cryptlib-rhbz#2336479                      :    3
  unclassified/dqlite-rhbz#2336574                        :    1
  unclassified/frr-TODO                                    :    3
  unclassified/libcamera-TODO                              :    1
  wrong-code/crc/flac-rhbz#2336715                        :    1
 
 
Unknown unclassified results: 0
(but ran out of disk space for logs)
 
=== "internal compiler error" ===
These always indicate a GCC bug.
 
Examples:
* {{bz|2336130}}: OpenMolcas: "internal compiler error: in gfc_trans_structure_assign, at fortran/trans-expr.cc:9885": [https://gcc.gnu.org/bugzilla/show_bug.cgi?id=118337 upstream GCC bug 118337]
* {{bz|2336136}}
* {{bz|2336140}}
* {{bz|2336214}}
* {{bz|2336215}}
 
=== Wrong code ===
Bugs where I suspect GCC is generating incorrect code:
 
* {{bz|2336255}}:  PyMCA fails to build with GCC 15 on ppc64le ("Illegal instruction (core dumped) ")
* {{bz|2336715}}:  flac failed to build with GCC 15 on aarch64 (CRC wrong code issue?)
 
=== C23: New keywords ===
GCC 15 defaults to C23, which adds various new keywords, including "true", "false" and "bool".  Examples:
* {{bz|2336032}}: aime fails to build with GCC 15/C23 ("int true;")
* {{bz|2336026}}: abcm2ps fails to build with GCC 15/C23 ("int bool;")
* {{bz|2336394}}: "sendmail-milter-devel's /usr/include/libmilter/mfapi.h isn't compatible with C23 ("typedef int bool;")"
** leading to configure failures building e.g. amavisd-milter: "checking for libmilter/mfapi.h... configure: WARNING: libmilter/mfapi.h: present but cannot be compiled"
 
=== C23: Function prototypes with empty params change from implicit "int" to "void" ===
GCC 15 defaults to C23, in which `()` now means the same as `(void)` in both function declarations and definitions, where previously that change had been made for definitions only.
GCC 15 defaults to C23, in which `()` now means the same as `(void)` in both function declarations and definitions, where previously that change had been made for definitions only.


Line 46: Line 189:


Examples:
Examples:
* [https://bugzilla.redhat.com/show_bug.cgi?id=2331208 rhbz#2331208] epson-inkjet-printer-escpr fails to build with GCC 15 (implicit int param in function prototype)
* {{bz|2331208}} epson-inkjet-printer-escpr fails to build with GCC 15 (implicit int param in function prototype)
 
=== C23: noreturn ===
e.g.:
  In file included from /builddir/build/BUILD/ccluster-1.1.7-build/Ccluster-1.1.7/src/base/base.h:36,
                  from src/base/inline.c:14:
  /usr/include/flint/flint.h:241:16: error: expected ‘;’ before ‘void’
    241 | FLINT_NORETURN void flint_abort(void);
        |                ^[[User:Dmalcolm|Dmalcolm]] ([[User talk:Dmalcolm|talk]])
  /usr/include/flint/flint.h:484:16: error: expected ‘;’ before ‘void’
    484 | FLINT_NORETURN void flint_throw(flint_err_t exc, const char * msg, ...);
        |                ^[[User:Dmalcolm|Dmalcolm]] ([[User talk:Dmalcolm|talk]])
 
https://github.com/flintlib/flint/commit/ee516836e58327310ca58f10f71ae8873b0320e0
 
https://bugzilla.redhat.com/show_bug.cgi?id=2336256
 
=== C++: "'TYPE_t' has not been declared" ===
See e.g.:
* {{bz|2336046}} - astromenace fails to build with GCC 15 ("error: 'uint32_t' has not been declared")
* {{bz|2336010}} - amdsmi fails to build with GCC 15 ("error: 'uintptr_t' does not name a type")
 
Presumably due to changes in C++ stdlib headers; adding "#include <stdint.h>" explicitly may fix it.
 
=== C++: error with -Wtemplate-body ===
 
I'm seeing various C++ build failures with member lookup, where it emits -Wtemplate-body.
 
Examples:
* {{bz|2336002}} - ClanLib1 failed to build with GCC 15 ("error: 'class CL_Signal_v3<PARAM1, PARAM2, PARAM3>' has no member named 'owner' [-Wtemplate-body]")
* {{bz|2336030}} - actor-framework fails to build with GCC 15 ("error: 'value' is not a member of 'caf::detail::tl_is_distinct<List>' [-Wtemplate-body]")
 
This seems to be because g++ 15 became more aggressive about name lookup checking (as of [https://gcc.gnu.org/r15-2117 upstream GCC commit r15-2117-g313afcfdabeab3]); it *might* be due to pre-existing code containing templates are never actually instantiated, which would be why older GCC compiled the code without failing.
 
The easiest fix on the package side would be to use -fpermissive or more narrowly -Wno-error=template-body.  (-Wtemplate-body was added in ([https://gcc.gnu.org/r15-2774 upstream GCC commit r15-2774-g596d1ed9d40b10]) https://gcc.gnu.org/PR116064).
 
See also https://trofi.github.io/posts/322-gcc-15-template-checking-improvements.html
 
=== C++: error: declaration of 'void* operator new(size_t) throw (std::bad_alloc)' has a different exception specifier ===
 
See https://bugzilla.redhat.com/show_bug.cgi?id=2336713
 
=== Failures that don't match any of the above ===
* {{bz|2336253}} - NLopt failed to build with gcc 15 on ppc64le ("Could NOT find NumPy (missing: NUMPY_INCLUDE_DIRS)")
* {{bz|2336255}} - PyMCA fails to build with GCC 15 on ppc64le ("Illegal instruction (core dumped) ")
* {{bz|2336256}} - R fails to build with GCC 15
* {{bz|2336263}} - Singular fails to build with GCC 15 ("extra.cc:3850:11: error: 'convSingPFlintP' was not declared in this scope")
 
== Notes for porting ==
 
(staging area for material that should be cleaned up and moved to https://gcc.gnu.org/gcc-15/porting_to.html )
 
* https://gcc.gnu.org/gcc-15/porting_to.html#header-dep-changes mentions "<cstdint> (for std::int8_t, std::int32_t etc.) ", but in the failures I'm seeing it's typically without the "std::" and thus <stdint.h> is probably what's wanted.
** See e.g. https://github.com/viewizard/astromenace/pull/39
** See also https://gcc.gnu.org/bugzilla/show_bug.cgi?id=110930 where the fix-it hint could be improved

Latest revision as of 01:27, 10 January 2025

GCC 15 mass prebuild

These are notes to myself on my attempts to use mass-prebuilder to test GCC 15 in Fedora in December 2024 in preparation for Changes/GNUToolchainF42

Trying it yourself

GCC 15 is not yet in rawhide, but you can use the scratch build via:

$ copr mock-config dmalcolm/gcc-15-smoketest-3 fedora-rawhide-x86_64 > ~/.config/mock/fedora-rawhide-gcc15-x86_64.cfg
$ fedpkg mockbuild --root fedora-rawhide-gcc15-x86_64

Current status

   440 out of 1438 builds are done.
   Pending: 515       
   Running: 13        
   Success: 29        
   Under check: 470       
   Manual confirmation needed: 147       
   Failed: 264       
  • This is a failure rate of about 60%, suggesting about 862 will fail
    • 6 ICEs seen so far; filed in Fedora BZ (or dups of these); see the list below
  • Tracker bug for failures here

Older status

  • Was having quota issues uploading the repos, so was only testing aarch64 at first. This is now fixed.
  • Timeout building GCC in copr, so using one of Jakub's scratch builds, turned into repos here.
  • Disabling annobin in redhat-rpm-config in the copr for now due to https://sourceware.org/bugzilla/show_bug.cgi?id=32429
  • Had to rebuild libtool against the new gcc due to:
Problem: cannot install both gcc-15.0.0-0.2.fc42.aarch64 from https_dmalcolm_fedorapeople_org_gcc_gcc_15_mass_prebuild_arch and gcc-14.2.1-6.fc42.aarch64 from fedora
  - package libtool-2.5.4-1.fc42.aarch64 from fedora requires gcc(major) = 14, but none of the providers can be installed
  - cannot install the best candidate for the job
  - conflicting requests
You can try to add to command line:
  --no-best to not limit the transaction to the best candidates

Copr build error: Build failed
  • I was running into exceptions being thrown by mpb, both when trying to analyze the failures by building against a baseline gcc 14 and when trying to get more accurate stats. These are fixed now (issues were 404 when trying to download log files due to results being cleaned up, and the .checker copr project only containing one arch, not all 4).

Kinds of failures seen

Automated classification

Fri Jan 10 01:26:32 AM UTC 2025

914 failures analyzed

Ordered by count:

 c23/fndecls                                              :  499
 c23/new-keywords/bool                                    :  102
 c++/cstdint                                              :   98
 c++/-Wtemplate-body                                      :   57
 c23/new-keywords/false                                   :   21
 c23/new-keywords/true                                    :   15
 c23/noreturn                                             :   12
 ice/pr118337                                             :   11
 -Werror/unterminated-string-initialization               :    8
 ice/unknown                                              :    8
 c23/noreturn/R-rhbz#2336256                              :    4
 unclassified/Singular-rhbz#2336263                       :    4
 c23/new-keywords/bool/sendmail-milter-devel-rhbz#2336394 :    4
 rhbz#2336440: Could not find working version of PSBLAS   :    4
 improper-testing/missing-libgnat-for-builddep            :    4
 unclassified/bigloo-rhbz#2336442                         :    4
 unclassified/bison-rhbz#2336443                          :    4
 c23/new-keywords/nullptr                                 :    4
 c23/new-keywords/thread_local                            :    4
 unclassified/colobot-TODO                                :    4
 fortran/mod-version                                      :    4
 -Werror/cpp                                              :    4
 unclassified/could not determine id3lib version          :    4
 unclassified/cryptlib-rhbz#2336479                       :    3
 c++/dyninst-rhbz#2336618                                 :    3
 unclassified/frr-TODO                                    :    3
 ice/jit/unhandled-tree_type_to_jit_type-rhbz#2336714     :    3
 missing-builtin/__builtin_vsx_xvcvdpsp                   :    3
 -Werror/deprecated-declarations                          :    2
 c++/different-exception-specifier-rhbz#2336713           :    2
 removed-command-line-option/xeon-phi/-mavx512pf          :    1
 unclassified/cbmc-rhbz#2336449                           :    1
 unclassified/dqlite-rhbz#2336574                         :    1
 -Werror/unused-result                                    :    1
 -Werror/header-guard                                     :    1
 wrong-code/crc/flac-rhbz#2336715                         :    1
 unclassified/libcamera-TODO                              :    1
 unclassified/NLopt-rhbz#2336253                          :    1
 unclassified/PyMCA-rhbz#2336255                          :    1
 aunit/aunit-TODO                                         :    1
 unclassified/bolt-TODO                                   :    1
 bad-srpm/%changelog not in descending chronological order:    1

Alphabetical:

 -Werror/cpp                                              :    4
 -Werror/deprecated-declarations                          :    2
 -Werror/header-guard                                     :    1
 -Werror/unterminated-string-initialization               :    8
 -Werror/unused-result                                    :    1
 aunit/aunit-TODO                                         :    1
 bad-srpm/%changelog not in descending chronological order:    1
 c++/-Wtemplate-body                                      :   57
 c++/cstdint                                              :   98
 c++/different-exception-specifier-rhbz#2336713           :    2
 c++/dyninst-rhbz#2336618                                 :    3
 c23/fndecls                                              :  499
 c23/new-keywords/bool                                    :  102
 c23/new-keywords/bool/sendmail-milter-devel-rhbz#2336394 :    4
 c23/new-keywords/false                                   :   21
 c23/new-keywords/nullptr                                 :    4
 c23/new-keywords/thread_local                            :    4
 c23/new-keywords/true                                    :   15
 c23/noreturn                                             :   12
 c23/noreturn/R-rhbz#2336256                              :    4
 fortran/mod-version                                      :    4
 ice/jit/unhandled-tree_type_to_jit_type-rhbz#2336714     :    3
 ice/pr118337                                             :   11
 ice/unknown                                              :    8
 improper-testing/missing-libgnat-for-builddep            :    4
 missing-builtin/__builtin_vsx_xvcvdpsp                   :    3
 removed-command-line-option/xeon-phi/-mavx512pf          :    1
 rhbz#2336440: Could not find working version of PSBLAS   :    4
 unclassified/NLopt-rhbz#2336253                          :    1
 unclassified/PyMCA-rhbz#2336255                          :    1
 unclassified/Singular-rhbz#2336263                       :    4
 unclassified/bigloo-rhbz#2336442                         :    4
 unclassified/bison-rhbz#2336443                          :    4
 unclassified/bolt-TODO                                   :    1
 unclassified/cbmc-rhbz#2336449                           :    1
 unclassified/colobot-TODO                                :    4
 unclassified/could not determine id3lib version          :    4
 unclassified/cryptlib-rhbz#2336479                       :    3
 unclassified/dqlite-rhbz#2336574                         :    1
 unclassified/frr-TODO                                    :    3
 unclassified/libcamera-TODO                              :    1
 wrong-code/crc/flac-rhbz#2336715                         :    1


Unknown unclassified results: 0 (but ran out of disk space for logs)

"internal compiler error"

These always indicate a GCC bug.

Examples:

Wrong code

Bugs where I suspect GCC is generating incorrect code:

  • RHBZ #2336255: PyMCA fails to build with GCC 15 on ppc64le ("Illegal instruction (core dumped) ")
  • RHBZ #2336715: flac failed to build with GCC 15 on aarch64 (CRC wrong code issue?)

C23: New keywords

GCC 15 defaults to C23, which adds various new keywords, including "true", "false" and "bool". Examples:

  • RHBZ #2336032: aime fails to build with GCC 15/C23 ("int true;")
  • RHBZ #2336026: abcm2ps fails to build with GCC 15/C23 ("int bool;")
  • RHBZ #2336394: "sendmail-milter-devel's /usr/include/libmilter/mfapi.h isn't compatible with C23 ("typedef int bool;")"
    • leading to configure failures building e.g. amavisd-milter: "checking for libmilter/mfapi.h... configure: WARNING: libmilter/mfapi.h: present but cannot be compiled"

C23: Function prototypes with empty params change from implicit "int" to "void"

GCC 15 defaults to C23, in which () now means the same as (void) in both function declarations and definitions, where previously that change had been made for definitions only.

Hence

extern int foo();

now means:

extern int foo(void);

rather than:

extern int foo(int)

which may require changes to prototypes and header files (or the use of -std=c17 or similar).

Note: the commit in question was https://gcc.gnu.org/git/?p=gcc.git;a=commitdiff;h=0a4b219d39c74aec7ebf87ac3be38d8f93efd634

Examples:

  • RHBZ #2331208 epson-inkjet-printer-escpr fails to build with GCC 15 (implicit int param in function prototype)

C23: noreturn

e.g.:

 In file included from /builddir/build/BUILD/ccluster-1.1.7-build/Ccluster-1.1.7/src/base/base.h:36,
                  from src/base/inline.c:14:
 /usr/include/flint/flint.h:241:16: error: expected ‘;’ before ‘void’
   241 | FLINT_NORETURN void flint_abort(void);
       |                ^Dmalcolm (talk)
 /usr/include/flint/flint.h:484:16: error: expected ‘;’ before ‘void’
   484 | FLINT_NORETURN void flint_throw(flint_err_t exc, const char * msg, ...);
       |                ^Dmalcolm (talk)

https://github.com/flintlib/flint/commit/ee516836e58327310ca58f10f71ae8873b0320e0

https://bugzilla.redhat.com/show_bug.cgi?id=2336256

C++: "'TYPE_t' has not been declared"

See e.g.:

  • RHBZ #2336046 - astromenace fails to build with GCC 15 ("error: 'uint32_t' has not been declared")
  • RHBZ #2336010 - amdsmi fails to build with GCC 15 ("error: 'uintptr_t' does not name a type")

Presumably due to changes in C++ stdlib headers; adding "#include <stdint.h>" explicitly may fix it.

C++: error with -Wtemplate-body

I'm seeing various C++ build failures with member lookup, where it emits -Wtemplate-body.

Examples:

  • RHBZ #2336002 - ClanLib1 failed to build with GCC 15 ("error: 'class CL_Signal_v3<PARAM1, PARAM2, PARAM3>' has no member named 'owner' [-Wtemplate-body]")
  • RHBZ #2336030 - actor-framework fails to build with GCC 15 ("error: 'value' is not a member of 'caf::detail::tl_is_distinct<List>' [-Wtemplate-body]")

This seems to be because g++ 15 became more aggressive about name lookup checking (as of upstream GCC commit r15-2117-g313afcfdabeab3); it *might* be due to pre-existing code containing templates are never actually instantiated, which would be why older GCC compiled the code without failing.

The easiest fix on the package side would be to use -fpermissive or more narrowly -Wno-error=template-body. (-Wtemplate-body was added in (upstream GCC commit r15-2774-g596d1ed9d40b10) https://gcc.gnu.org/PR116064).

See also https://trofi.github.io/posts/322-gcc-15-template-checking-improvements.html

C++: error: declaration of 'void* operator new(size_t) throw (std::bad_alloc)' has a different exception specifier

See https://bugzilla.redhat.com/show_bug.cgi?id=2336713

Failures that don't match any of the above

  • RHBZ #2336253 - NLopt failed to build with gcc 15 on ppc64le ("Could NOT find NumPy (missing: NUMPY_INCLUDE_DIRS)")
  • RHBZ #2336255 - PyMCA fails to build with GCC 15 on ppc64le ("Illegal instruction (core dumped) ")
  • RHBZ #2336256 - R fails to build with GCC 15
  • RHBZ #2336263 - Singular fails to build with GCC 15 ("extra.cc:3850:11: error: 'convSingPFlintP' was not declared in this scope")

Notes for porting

(staging area for material that should be cleaned up and moved to https://gcc.gnu.org/gcc-15/porting_to.html )