Bug 2336046

Summary: astromenace fails to build with GCC 15 ("error: 'uint32_t' has not been declared")
Product: [Fedora] Fedora Reporter: Dave Malcolm <dmalcolm>
Component: astromenaceAssignee: Gwyn Ciesla <gwync>
Status: CLOSED RAWHIDE QA Contact: Fedora Extras Quality Assurance <extras-qa>
Severity: medium Docs Contact:
Priority: unspecified    
Version: rawhideCC: gwync, jwakely
Target Milestone: ---   
Target Release: ---   
Hardware: Unspecified   
OS: Linux   
Whiteboard:
Fixed In Version: Doc Type: If docs needed, set a value
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2025-01-08 21:56:23 UTC Type: ---
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:
Bug Depends On:    
Bug Blocks: 2333037    

Description Dave Malcolm 2025-01-06 23:02:50 UTC
I'm experimentally rebuilding rawhide with the not-yet-released GCC 15 to see if anything breaks, and to help write the porting guide.  See https://fedoraproject.org/wiki/User:Dmalcolm/gcc-15

My test build with GCC 15 failed:
https://copr.fedorainfracloud.org/coprs/dmalcolm/gcc-15-smoketest-3.failed/build/8476099/

whereas my test build with GCC 14 succeeded:
https://copr.fedorainfracloud.org/coprs/dmalcolm/gcc-15-smoketest-3.failed.checker/build/8477677/

Looking at the failure logs e.g.
https://download.copr.fedorainfracloud.org/results/dmalcolm/gcc-15-smoketest-3.failed/fedora-rawhide-x86_64/08476099-astromenace/builder-live.log.gz
I see:

In file included from /builddir/build/BUILD/astromenace-1.4.2-build/astromenace-1.4.2-1781/src/assets/../core/core.h:31,
                 from /builddir/build/BUILD/astromenace-1.4.2-build/astromenace-1.4.2-1781/src/assets/shader.cpp:28:
/builddir/build/BUILD/astromenace-1.4.2-build/astromenace-1.4.2-1781/src/assets/../core/audio/audio.h:62:36: error: ‘uint32_t’ has not been declared
   62 | void vw_StopSound(unsigned int ID, uint32_t StopDelayTicks);
      |                                    ^~~~~~~~
/builddir/build/BUILD/astromenace-1.4.2-build/astromenace-1.4.2-1781/src/assets/../core/audio/audio.h:64:6: error: variable or field ‘vw_UpdateSound’ declared void
   64 | void vw_UpdateSound(uint32_t CurrentTick);
      |      ^~~~~~~~~~~~~~
/builddir/build/BUILD/astromenace-1.4.2-build/astromenace-1.4.2-1781/src/assets/../core/audio/audio.h:64:21: error: ‘uint32_t’ was not declared in this scope
   64 | void vw_UpdateSound(uint32_t CurrentTick);
      |                     ^~~~~~~~
/builddir/build/BUILD/astromenace-1.4.2-build/astromenace-1.4.2-1781/src/assets/../core/audio/audio.h:32:1: note: ‘uint32_t’ is defined in header ‘<cstdint>’; this is probably fixable by adding ‘#include <cstdint>’
   31 | #include "../base.h"
  +++ |+#include <cstdint>
   32 | 


Looks like this header should have been included, but older versions of the C++ stdlib happened to do it for you, so hopefully the fix is to simply add that #include.


Reproducible: Always

Comment 1 Jonathan Wakely 2025-01-08 12:18:50 UTC
https://github.com/viewizard/astromenace/pull/39 submitted upstream

Comment 2 Gwyn Ciesla 2025-01-08 21:56:23 UTC
Thank you, I applied the PR patch.