gcc 16#375
Conversation
|
Improved support for C++20, including: Hmm. I feel, could be related to _WIN32_WINNT. (note that these minimums are frequently wrong) |
Turns out llama.mak's clean rule is a little buggy, this was caused by |
|
Looks like @CyanoHao already made a patch for the tzdb issue. I will import that one. |
|
@Peter0x44 oops I made a mistake. The function pointer should be static.
Update: |
6d31c4b to
6928ac0
Compare
|
I checked out std::breakpoint, and probably it's just doing I haven't looked close, from what I can see, that problem likely still applies. So we might need to patch it to work around that long-standing GDB bug. Looking at preprocessed source for: #include <debugging>
int main(void)
{
std::breakpoint();
}I notice that mingw-w64's __debugbreak doesn't do this either. So it may be something we want to patch, too. __fastfail is also not something I have seen before. None of this is major enough to hold up the switch though, IMO. It can be fixed later. And of course, this feature is experimental. Just pointing it as something to review. |
|
The x86 build still fails, I struggled to see this one on a skim (it's almost 1000 lines from the end of the log). Now it's a failure with libgfortran. Will investigate further. |
|
The responsible commit is gnutools/gcc@efb497c23a6f |
|
it's passing
|
|
Thanks for doing all this, @Peter0x44. Everything works fine for me so far. Is there anything remaining? (I'd like to squash all this before merging.) |
|
No, nothing left to do. |
|
I just looked more into Two junk stack frames: lots of friction and GDB std::breakpoint();
asm("nop");So that the stack frame instruction pointer lands on the
Ultimately none of this could ever work as well as the new classic macro: #define breakpoint() asm("int3;nop")Because only a macro has the semantics necessary for perfection. But, yes, that's not something to address right now.
I'm a little surprised! If you ever see "The system detected an overrun of a stack-based buffer in this application. This overrun could potentially allow a malicious user to gain control of this application." the message is 99.9% bogus and it's just a |
|
That's sad. It's a shame std::breakpoint is currently unfit for purpose. |
|
Would you like to squash these, with a nice commit explaining the changes? Then go ahead and merge. If not, I can do it, but I'll leave you as commit author (and I didn't want to put words in your mouth). |
|
I don't care. Just do it. |
Bumps GCC from 15.2.0 and adjusts the build for the new release: - Drop the obsolete stdcall-align patch, no longer needed. - Configure with --enable-tls so libstdc++ uses native Windows TLS rather than emutls. This is an ABI break: object files built with earlier w64devkit releases cannot be linked against new builds. - Import gcc-dynamic-load-tzdb.patch (originally from redpanda-cpp/mingw-lite, by CyanoHao) so that libstdc++'s C++20 std::chrono::current_zone() Windows backend resolves GetDynamicTimeZoneInformation at runtime via LoadLibrary/ GetProcAddress. Without this, _WIN32_WINNT < 0x0600 builds fail to compile tzdb.cc. - Add gcc-libgfortran-mapview.patch to replace the new MapViewOfFileExNuma call in libgfortran's caf_shmem with MapViewOfFileEx, which mingw-w64 declares for older Windows targets. NUMA_NO_PREFERRED_NODE makes the two calls equivalent, so no functional change.
No description provided.