When using the musl C library, semigroups fails to build with the error,
src/to_gap.hpp: In member function 'OpaqueBag* gapbind14::to_gap<libsemigroups::PBR>::operator()(libsemigroups::PBR) const':
src/to_gap.hpp:469:12: error: 'u_int32_t' was not declared in this scope; did you mean 'uint32_t'?
469 | for (u_int32_t i = 0; i < 2 * x.degree(); i++) {
| ^~~~~~~~~
| uint32_t
From what I gather, the u_int32_t alias is a GNUism, defined in sys/types.h shipped by glibc, but not guaranteed to exist anywhere else. The musl libc, for example, does not typedef it unless #if defined(_GNU_SOURCE) || defined(_BSD_SOURCE).
Hopefully this is as simple as deleting the first underscore to obtain the ISO type uint32_t.
Thanks @orlitzky, I think this is is just a typo really, and can safely be replaced with uint32_t. We are testing libsemigroups with musl, but not Semigroups.
Original report: https://bugs.gentoo.org/924165
When using the musl C library, semigroups fails to build with the error,
From what I gather, the
u_int32_t
alias is a GNUism, defined insys/types.h
shipped by glibc, but not guaranteed to exist anywhere else. The musl libc, for example, does not typedef it unless#if defined(_GNU_SOURCE) || defined(_BSD_SOURCE)
.Hopefully this is as simple as deleting the first underscore to obtain the ISO type
uint32_t
.