mcgrawia opened a new issue, #499:
URL: https://github.com/apache/datasketches-cpp/issues/499

   **Description:**
   
   datasketches-cpp 5.1.0 fails to compile under GCC 15 due to a [documented 
libstdc++ 
change](https://gcc.gnu.org/gcc-15/porting_to.html#header-dep-changes) 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](https://github.com/nodejs/node/pull/56740), 
[Godot](https://github.com/godotengine/godot/pull/102022), 
[PowerDNS](https://github.com/PowerDNS/pdns/pull/15520), and [many other 
projects](https://gcc.gnu.org/gcc-15/changes.html) 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:
   
   ```dockerfile
   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


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to