Opened 12 months ago

Closed 12 months ago

Last modified 12 months ago

#1600 closed defect (fixed)

GCC 13.1 requires '#include <cstdint>' in several headers

Reported by: ligh_de Owned by:
Priority: blocker Milestone:
Component: VTM Version: VTM-20.0
Keywords: compiling gcc Cc: ksuehring, XiangLi, fbossen, jvet@…


Trying to compile VVC in MSYS2/MinGW64 using GCC 13.1 fails, the same error as in many other projects since GCC got updated from v12 to v13:

In file included from G:/MABS/build/vvc-git/source/Lib/CommonLib/CommonDef.h:65,
                 from G:/MABS/build/vvc-git/source/Lib/CommonLib/AdaptiveLoopFilter.h:41,
                 from G:/MABS/build/vvc-git/source/Lib/CommonLib/AdaptiveLoopFilter.cpp:38:
G:/MABS/build/vvc-git/source/Lib/CommonLib/TypeDef.h:253:15: error: 'int16_t' does not name a type
  253 | typedef       int16_t           Pel;               ///< pixel type
      |               ^~~~~~~
G:/MABS/build/vvc-git/source/Lib/CommonLib/TypeDef.h:54:1: note: 'int16_t' is defined in header '<cstdint>'; did you forget to '#include <cstdint>'?
   53 | #include "CommonDef.h"
  +++ |+#include <cstdint>
   54 | 
G:/MABS/build/vvc-git/source/Lib/CommonLib/TypeDef.h:255:15: error: 'int16_t' does not name a type
  255 | typedef       int16_t           TMatrixCoeff;      ///< transform matrix coefficient
      |               ^~~~~~~
G:/MABS/build/vvc-git/source/Lib/CommonLib/TypeDef.h:255:15: note: 'int16_t' is defined in header '<cstdint>'; did you forget to '#include <cstdint>'?
G:/MABS/build/vvc-git/source/Lib/CommonLib/TypeDef.h:256:15: error: 'int16_t' does not name a type
  256 | typedef       int16_t           TFilterCoeff;      ///< filter coefficient
      |               ^~~~~~~
G:/MABS/build/vvc-git/source/Lib/CommonLib/TypeDef.h:256:15: note: 'int16_t' is defined in header '<cstdint>'; did you forget to '#include <cstdint>'?

Probably at least the following files need an additional #include <cstdint>:

  • source/Lib/CommonLib/CommonDef.h
  • source/Lib/CommonLib/TypeDef.h
  • source/Lib/CommonLib/dtrace.h
  • source/Lib/CommonLib/Hash.h
  • source/Lib/Utilities/program_options_lite.h

Change history (6)

comment:1 Changed 12 months ago by ligh_de

1 week without any reaction. Is this project abandoned?

comment:2 Changed 12 months ago by XiangLi

Thanks for the report. So far, I have not been able to install gcc-13.0 in our working environment . If your fix works, maybe you could submit an MR to fix the issue. You may check the workflow here On the other hand, maybe you could also try other gcc versions, such as gcc-12.2. For other compilers, I just tried clang 14 and it also worked.

comment:3 Changed 12 months ago by ligh_de

I am not really a developer, just a half-wit. I usually run the media-autobuild suite which keeps itself up to date to the recent state of the MSYS2 project. If MSYS2 updates GCC to version 13, I can't just downgrade it: dozens of other modules, most of them linked into ffmpeg, rely on its consistency.

I am not very used to working with git. I learned to create Merge Requests by editing files in the web view of repositories hosted on github, but I have no experience on gitlab. Also I don't know your project well so I can't be sure that my solution is sufficient. For m-ab-s I created a patching script using sed:

_pre_ninja() {
    sed -i 's!#include <cstdlib>!#include <cstdlib>\n#include <cstdint>!' ${REPO_DIR}/source/Lib/CommonLib/CommonDef.h
    sed -i 's!#include <cstddef>!#include <cstddef>\n#include <cstdint>!' ${REPO_DIR}/source/Lib/CommonLib/TypeDef.h
    sed -i 's!#include <cstdarg>!#include <cstdarg>\n#include <cstdint>!' ${REPO_DIR}/source/Lib/CommonLib/dtrace.h
    sed -i 's!#include <vector>!#include <cstdint>\n#include <vector>!' ${REPO_DIR}/source/Lib/CommonLib/Hash.h
    sed -i 's!#include <vector>!#include <cstdint>\n#include <vector>!' ${REPO_DIR}/source/Lib/Utilities/program_options_lite.h

comment:4 Changed 12 months ago by ksuehring

comment:5 Changed 12 months ago by ksuehring

  • Resolution set to fixed
  • Status changed from new to closed

The MR was merged.

comment:6 Changed 12 months ago by ligh_de

Yes, compiles in m-ab-s as well; thank you.

Note: See TracTickets for help on using tickets.