It is endemic in C++ code for STL headers to be forgotten but everything worked 
because some other header included the one needed.  As described in the link 
you provided, GCC has simply removed some of those situations, now they fail 
without explicit inclusion.  IIRC there is an alpha standard tool based on the 
internals of clang and LLVM to analyse and find what headers are needed to 
cover all the STL calls made by any file, but well, its alpha and several 
projects (eg chromium) have abandoned it for now.

So the header rearrangement will result in missing declarations, so stuff will 
fail to compile, not excess declarations that are not in the system library 
(except when the C library is used instead of the C++ one, the main problem 
here ;-).   And so even if msys2 upgraded its gcc it still doesn't explain why 
in the past it linked ok, how did it previously define those C++ library 
internal symbols if it linked against the C library?  And why does it work on 
Linux.

Anyway its an intellectual exercise since @techee has removed the foreign 
parasitic not part of Geany tool build from the Windows build.  And now we 
know, so when it fails on Linux we can jump in and point fingers immediately ;-)

-- 
Reply to this email directly or view it on GitHub:
https://github.com/geany/geany-plugins/issues/1255#issuecomment-1617525886
You are receiving this because you are subscribed to this thread.

Message ID: <geany/geany-plugins/issues/1255/[email protected]>

Reply via email to