(Start adding build errors) |
(→Current status: Add link to tracker bug) |
||
(5 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 | 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 === | === Current status === | ||
* 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]. | ||
* Disabling annobin in redhat-rpm-config in the copr for now due to https://sourceware.org/bugzilla/show_bug.cgi?id=32429 | * Disabling annobin in redhat-rpm-config in the copr for now due to https://sourceware.org/bugzilla/show_bug.cgi?id=32429 | ||
* Tracker bug for failures [https://bugzilla.redhat.com/buglist.cgi?bug_id=2333037&bug_id_type=anddependson&format=tvp&list_id=13537350 here] | |||
==== libtool can't be installed ==== | ==== libtool can't be installed ==== | ||
Line 19: | Line 19: | ||
Copr build error: Build failed | Copr build error: Build failed | ||
</pre> | </pre> | ||
=== 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. | |||
=== Function prototypes with empty params change from implicit "int" to "void" === | === Function prototypes with empty params change from implicit "int" to "void" === | ||
GCC 15 defaults to C23, in which | 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 | |||
<pre> | <pre> | ||
extern int foo(); | extern int foo(); | ||
</pre> | </pre> | ||
now means: | |||
<pre> | <pre> | ||
extern int foo(void); | extern int foo(void); | ||
Line 34: | Line 39: | ||
</pre> | </pre> | ||
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: | |||
* [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) |
Latest revision as of 17:21, 18 December 2024
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
Current status
- 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
- Tracker bug for failures here
libtool can't be installed
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
Older status
- Was having quota issues uploading the repos, so was only testing aarch64 at first. This is now fixed.
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)