# Valgrind suppressions for the libakgl memory-check run. # # Used by `cmake --build build --target memcheck` and by any hand-run # `ctest -T memcheck`; see AGENTS.md -> "Memory checking". # # Every entry here is a deliberate decision that a finding belongs to somebody # else's code and cannot be fixed from this repository. Nothing that libakgl # allocates is suppressed, and nothing is suppressed merely because it is noisy. # If a suppression starts hiding a real finding, delete it -- a false negative in # a leak check is worth more than a quiet log. # # The memcheck target runs the suite headless (SDL_VIDEO_DRIVER=dummy, # SDL_RENDER_DRIVER=software, SDL_AUDIO_DRIVER=dummy) precisely so that the GPU # stack is never loaded. That removes thousands of unfixable findings inside # amdgpu_dri.so / Mesa / libGLX without suppressing anything, which is why there # are no driver entries below. Run the suite against a real driver and you will # need them; do not add them here on that account. # SDL allocates its global state -- the hint table, the property registry, the # log category array, the clipboard -- on first use and reclaims it in SDL_Quit. # A test that fails before SDL_Quit, and every test that deliberately leaves SDL # up so a later assertion can look at it, leaves those blocks behind. They are # one-per-process, not per-call, so they cannot accumulate into a leak. { sdl3-global-state-still-reachable Memcheck:Leak match-leak-kinds: reachable ... fun:SDL_InitSubSystem_REAL } # dlopen keeps the link map and the loaded objects' TLS blocks for the process # lifetime; a dlclose does not return them. SDL loads its video, audio, and # render backends this way, and SDL_image and SDL_mixer load their codecs the # same way. { dl-open-keeps-its-link-map Memcheck:Leak match-leak-kinds: reachable,possible ... fun:_dl_open } # FreeType, reached through SDL_ttf, caches per-face and per-size structures # inside the library instance and frees them in FT_Done_FreeType, which SDL_ttf # calls from TTF_Quit. A suite that opens a font and exits without TTF_Quit # reports them; a font libakgl itself failed to close is a different finding and # is NOT covered here -- it appears under akgl_text_loadfont, not under # FT_Init_FreeType. { freetype-library-instance Memcheck:Leak match-leak-kinds: reachable ... fun:FT_Init_FreeType }