Description
The PowerVR Graphics SDK 5.15 fails to compile with newer GCC versions due to missing #include <cstdint> headers in several core framework files. The code uses uint32_t and uint64_t types without explicitly including the required header, which causes compilation failures with newer GCC versions that enforce stricter header inclusion rules and no longer implicitly provide standard integer types through transitive includes. The code relies on implicit inclusion of <cstdint>, which worked with older compilers but fails with latest toolchains.
For example,
framework/PVRCore/strings/StringFunctions.h - Uses uint32_t without including <cstdint>
framework/PVRCore/stream/Stream.h - Uses uint64_t without including <cstdint>
framework/PVRCore/stream/FileStream.h - Uses uint64_t without including <cstdint>
Newer GCC versions enforce stricter header inclusion rules and no longer implicitly provide standard integer types through transitive includes. The code relies on implicit inclusion of <cstdint>, which worked with older compilers but fails with modern toolchains.
Repro steps
-
Setup Yocto build environment with a recent release whinlatter
-
Configure for aarch64 target with modern GCC (version 15.2)
Set MACHINE as any aarch64 machine
-
Add PowerVR Graphics SDK 5.15 recipe to your layer
-
Attempt to build
bitbake powervr-graphics
-
Observe compilation failure in do_compile task with missing uint32_t/uint64_t errors
Environment
- SDK version: R25.2-v5.15
- Operating System/Device: Linux
- Build System: Yocto/OpenEmbedded
*Target Architecture: aarch64 (ARM 64-bit)
*Compiler: GCC (aarch64-oe-linux-g++)
*Build Configuration: Release mode with -std=gnu++14
Description
The PowerVR Graphics SDK 5.15 fails to compile with newer GCC versions due to missing
#include <cstdint>headers in several core framework files. The code usesuint32_tanduint64_ttypes without explicitly including the required header, which causes compilation failures with newer GCC versions that enforce stricter header inclusion rules and no longer implicitly provide standard integer types through transitive includes. The code relies on implicit inclusion of<cstdint>, which worked with older compilers but fails with latest toolchains.For example,
framework/PVRCore/strings/StringFunctions.h- Usesuint32_twithout including<cstdint>framework/PVRCore/stream/Stream.h- Usesuint64_twithout including<cstdint>framework/PVRCore/stream/FileStream.h- Usesuint64_twithout including<cstdint>Newer GCC versions enforce stricter header inclusion rules and no longer implicitly provide standard integer types through transitive includes. The code relies on implicit inclusion of
<cstdint>, which worked with older compilers but fails with modern toolchains.Repro steps
Setup Yocto build environment with a recent release whinlatter
Configure for aarch64 target with modern GCC (version 15.2)
Set MACHINE as any aarch64 machine
Add PowerVR Graphics SDK 5.15 recipe to your layer
Attempt to build
bitbake powervr-graphics
Observe compilation failure in do_compile task with missing uint32_t/uint64_t errors
Environment
*Target Architecture: aarch64 (ARM 64-bit)
*Compiler: GCC (aarch64-oe-linux-g++)
*Build Configuration: Release mode with
-std=gnu++14