Skip to content

metaeuk: fix missing <cstdint> under GCC 14 - #6270

Open
gonzabotmdp wants to merge 1 commit into
spack:developfrom
gonzabotmdp:fix/metaeuk-gcc14-missing-cstdint
Open

metaeuk: fix missing <cstdint> under GCC 14#6270
gonzabotmdp wants to merge 1 commit into
spack:developfrom
gonzabotmdp:fix/metaeuk-gcc14-missing-cstdint

Conversation

@gonzabotmdp

Copy link
Copy Markdown
Contributor

Summary

Same class of bug as in spades (same root cause, unrelated codebase -- both packages independently hit this): metaeuk vendors mmseqs2 under lib/mmseqs, and its C++ sources use fixed-width int types (uint32_t/uint64_t/...) throughout while relying on getting <cstdint> transitively from whatever standard header happened to pull it in on older GCC. GCC 14's libstdc++ doesn't, so the build fails, e.g.:

lib/mmseqs/src/commons/Util.h:87:12: error: 'uint64_t' does not name a type
lib/mmseqs/src/prefiltering/Indexer.h:125:9: error: 'uint64_t' was not declared in this scope

A static scan found 47 affected files. Rather than patch each one (and risk missing a 48th), force the header into every translation unit at the compiler level: -include cstdint for C++ sources, -include stdint.h for C sources (the plain C compiler doesn't see the C++ wrapper header).

Testing

Installed metaeuk@6-a5d39d9 with %gcc@14.2.0 as a dependency of busco@6.1.0, confirmed it builds clean and busco runs a real gene-prediction pipeline end to end using it.

@spackbot-triage spackbot-triage Bot added the update-package Modifications to packages in the repository label Aug 28, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

update-package Modifications to packages in the repository

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant