On Tue, 24 Jan 2023 at 07:29, Jeff Law <jeffreyalaw(a)gmail.com> wrote:
On 1/24/23 00:16, Jakub Jelinek wrote:
> On Tue, Jan 24, 2023 at 10:00:47AM +0300, Vascom wrote:
>> I have some packages failed.
>> One of them libtins. Problem is that:
>>
>> error: 'uint32_t' is not a member of 'std';
>>
>> Is it normal? Is it GCC 13 change?
>
> See
>
https://gcc.gnu.org/gcc-13/porting_to.html#header-dep-changes
> Some libstdc++ headers included <cstdint> in older versions
> as an implementation detail but no longer do.
>
> Including stdint.h will introduce ::uint32_t type among others,
> but not std::uint32_t, if you use the latter, you need to
> include <cstdint>.
I've got a partial list of packages affected by the ongoing header
cleanups in libstdc++:
intel-igc
j4-dmenu-desktop
julia
jd
jigdo
mtxclient
openclonk
texlive-base
tcpflow
synergy
R-svglite
rstudio
rssguard
rpi-imager
rocm-opencl
rocksdb
qucs
parzip
root
openmsx
openlierox
openexr
openexr2
openms
mongo-cxx-driver
kakoune
I'm sure there's more, I've probably looked at about 20% of the packaged
I'd flagged as needing further analysis. But that might help folks
chase these things down.
The header cleanups will continue until morale improves!
The point of these changes is to speed up compilation. Removing
unnecessary headers means the compiler has less work to do, so koji
builds use less time and less power. The fixed package also becomes
more portable and more standard conforming. The <cstdint> header isn't
expensive to compile, but what changed is actually that <stdexcept>
and <string> are no longer included in so many places, and those were
transitively including <cstdint>. Not including <string> where it
isn't needed removes thousands of lines of code. Most code seems to
remember to include <string> to use std::string, but everybody forgets
to include <cstdint> for std::int32_t etc.
Looks like these have that issue and need to include <cstdint>:
widelands
warzone2100
uhd
usd
tcpflow
synergy
snapper
safeint
rstudio
rocksdb
rocm-opencl
prusa-slicer
plug
pingus
paraview
openms
openmsx
I didn't look at any packages starting with the letters A-N so there
are probably more.
Similarly, supertuxkart is missing <stdio.h> or <cstdio>.
pdns is missing <stdexcept>
openvdb failed but should work OK now as there's been an updated tbb.