Prior to gcc-13 various C++ headers in gcc included <cstdint> even though it was not strictly necessary; this results in the compiler having to parse unnecessary code and thus slows down compilation for everyone. Those unnecessary #includes of <cstdint> have been removed and applications which need the <cstdint> header file need to explicitly include it.
Without the patch, when compiling with gcc-13 you will get this error:
/builddir/build/BUILD/MediaSDK-intel-mediasdk-22.6.4/api/mfx_dispatch/linux/mfxparser.cpp: In function 'std::string MFX::printCodecId(mfxU32)': /builddir/build/BUILD/MediaSDK-intel-mediasdk-22.6.4/api/mfx_dispatch/linux/mfxparser.cpp:60:3: error: 'uint8_t' was not declared in this scope
60 | uint8_t* data = reinterpret_cast<uint8_t*>(&id);
| ^~~~~~~
/builddir/build/BUILD/MediaSDK-intel-mediasdk-22.6.4/api/mfx_dispatch/linux/mfxparser.cpp:29:1: note: 'uint8_t' is defined in header '<cstdint>'; did you forget to '#include <cstdint>'?
28 | #include "mfxloader.h"
+++ |+#include <cstdint>
29 |
/builddir/build/BUILD/MediaSDK-intel-mediasdk-22.6.4/api/mfx_dispatch/linux/mfxparser.cpp:60:12: error: 'data' was not declared in this scope
60 | uint8_t* data = reinterpret_cast<uint8_t*>(&id);
| ^~~~
/builddir/build/BUILD/MediaSDK-intel-mediasdk-22.6.4/api/mfx_dispatch/linux/mfxparser.cpp:60:36: error: 'uint8_t' does not name a type
60 | uint8_t* data = reinterpret_cast<uint8_t*>(&id);
| ^~~~~~~
/builddir/build/BUILD/MediaSDK-intel-mediasdk-22.6.4/api/mfx_dispatch/linux/mfxparser.cpp:60:36: note: 'uint8_t' is defined in header '<cstdint>'; did you forget to '#include <cstdint>'?
/builddir/build/BUILD/MediaSDK-intel-mediasdk-22.6.4/api/mfx_dispatch/linux/mfxparser.cpp:60:43: error: expected '>' before '*' token
60 | uint8_t* data = reinterpret_cast<uint8_t*>(&id);
| ^
/builddir/build/BUILD/MediaSDK-intel-mediasdk-22.6.4/api/mfx_dispatch/linux/mfxparser.cpp:60:43: error: expected '(' before '*' token
60 | uint8_t* data = reinterpret_cast<uint8_t*>(&id);
| ^
| (
/builddir/build/BUILD/MediaSDK-intel-mediasdk-22.6.4/api/mfx_dispatch/linux/mfxparser.cpp:60:44: error: expected primary-expression before '>' token
60 | uint8_t* data = reinterpret_cast<uint8_t*>(&id);
| ^
/builddir/build/BUILD/MediaSDK-intel-mediasdk-22.6.4/api/mfx_dispatch/linux/mfxparser.cpp:60:50: error: expected ')' before ';' token
60 | uint8_t* data = reinterpret_cast<uint8_t*>(&id);
| ^
| )
Prior to gcc-13 various C++ headers in gcc included
<cstdint>
even though it was not strictly necessary; this results in the compiler having to parse unnecessary code and thus slows down compilation for everyone. Those unnecessary #includes of<cstdint>
have been removed and applications which need the<cstdint>
header file need to explicitly include it.Without the patch, when compiling with gcc-13 you will get this error:
Fixes issue #2954 .