Compilation failure with GCC 15
Nobody has claimed this yet.
Assessment
- Difficulty
- 2/5
- Estimated time
- 1-3 hours
- Newbie friendliness
- 82/100
Research direction
Start with fi/include/reverse_purge_hash_map.hpp and its includes, then reproduce the failure using the GCC 15 datasketches-postgresql build described in the issue. Check whether other project headers rely on transitive availability. Done means the relevant headers compile successfully under GCC 15 without the reported fixed-width integer errors.
Written by the indexing model from the issue text.
Description
Description:
datasketches-cpp 5.1.0 fails to compile under GCC 15 due to a documented libstdc++ change that removed transitive includes of <cstdint>. Several internal libstdc++ headers (bits/align.h, bits/atomic_base.h, bits/atomic_wait.h) no longer include <stdint.h>, so fixed-width integer types like uint8_t, uint16_t, uint32_t, and uint64_t are no longer available unless explicitly included.
fi/include/reverse_purge_hash_map.hpp uses these types throughout (template defaults, member variables, function parameters, constants) but never directly includes <cstdint>. Under GCC 14 and earlier these types were available transitively; under GCC 15 they are not, causing a cascade of compilation errors.
This is the same class of breakage that affected Node.js, Godot, PowerDNS, and many other projects after GCC 15 shipped.
First error:
reverse_purge_hash_map.hpp:38:16: error: 'uint64_t' does not name a type
38 | typename V = uint64_t,
| ^~~~~~~~
reverse_purge_hash_map.hpp:25:1: note: 'uint64_t' is defined in header '<cstdint>';
this is probably fixable by adding '#include <cstdint>'
Reproducer:
Build datasketches-postgresql 1.7.0 (which uses datasketches-cpp 5.1.0) on any platform with GCC 15:
FROM timescale/timescaledb:2.26.1-pg16 # Alpine 3.23, GCC 15.2.0
# standard datasketches-postgresql build steps...
# Fails at: make
Suggested fix:
Add #include <cstdint> to fi/include/reverse_purge_hash_map.hpp (after the existing #include <iterator> on line 24). There may be other headers in the project with the same issue.
Environment:
- GCC 15.2.0 / libstdc++ (Alpine 3.23)
- datasketches-cpp 5.1.0
- datasketches-postgresql 1.7.0
- PostgreSQL 16
- Dominant language
- C++
- Stars
- 273
- Forks
- 88
- Avg merge
- 1d 19h
- Merged PRs (30d)
- 9
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
More from apache/datasketches-cpp
-
Difficulty 5/5 Over a week Newbie friendliness 35/100
apache/datasketches-cpp#502 · 11 comments · 1 reaction ·
-
Difficulty 3/5 1-2 days Newbie friendliness 45/100
apache/datasketches-cpp#460 · 6 comments ·
-
Difficulty 5/5 Over a week Newbie friendliness 45/100
apache/datasketches-cpp#457 · 8 comments ·
-
Difficulty 5/5 Over a week Newbie friendliness 20/100
apache/datasketches-cpp#419 · 6 comments ·
-
Difficulty 5/5 Over a week Newbie friendliness 25/100
apache/datasketches-cpp#416 · 13 comments ·
All issues in apache/datasketches-cpp
Similar issues
-
Difficulty 1/5 Under an hour Newbie friendliness 90/100
AXERA-TECH/ax-llm#77 ·
-
Difficulty 2/5 1-3 hours Newbie friendliness 74/100
-
bug-unconfirmed
Difficulty 2/5 1-3 hours Newbie friendliness 76/100
-
Difficulty 2/5 1-3 hours Newbie friendliness 74/100
NVIDIA/cuda-samples#453 ·
-
Difficulty 2/5 1-3 hours Newbie friendliness 78/100
infiniflow/infinity#3502 ·