Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

new release #68

Open
Neustradamus opened this issue Aug 1, 2023 · 18 comments
Open

new release #68

Neustradamus opened this issue Aug 1, 2023 · 18 comments

Comments

@Neustradamus
Copy link

@jmeubank: It is possible to create a new release?

Already two years without:

Thanks in advance.

@FabianLoRs
Copy link

We need an update.

@GermanAizek
Copy link

agree

@LY-Xiang
Copy link

we need a newer compiler!

@franko
Copy link

franko commented Jan 1, 2024

I support also the request!

Actually I would be fine to stay with the same version of GCC and have just an upgrade on the mingw-w64 environment.

I have a project that use some modern features like directmanipulation.h and TDM GCC is no longer able to compile because the header is missing from the mingw shipped with TDM GCC. I tried to copy the missing file from MSYS2 but another header was outdated so I gave up!

@636C6F776E
Copy link

I too support this request!

Personally I consider to be of high value the "final" versions of GCC such as 9.5.0 and 10.5.0 which will remain stable forever.
And please consider supporting Windows 7 one last time, at least in case TDM-GCC 9.5.0 is released, thank you.

@hwh-DLFan
Copy link

@jmeubank

I am using TDM-GCC 10.3.0-2——but it is an early version. When I checked the ftp website of gcc, I surprisly found that GCC have the 13.2.0 version——it means C++ 23 is supported. But what I am using still only support (not completed) C++ 20. I hope it can update quickly.

……It seems it had been stopped updating, right?

@harshn05
Copy link

Please update, sir.

gucio321 added a commit to gucio321/giu that referenced this issue Nov 13, 2024
TDM-GCC is https://github.com/jmeubank/tdm-gcc.
The current version of gcc provided by the project is 10.3.0.
According to jmeubank/tdm-gcc#68
I think the project was discontinued.

According to AllenDang#911
we are forced to stop recommending tdm-gcc for giu.
@revelator
Copy link

been trying to port it to gcc-14.2.0 but there are a few snags.
some of the code for dwarf was changed drastically, fde_split is no more so i have no idea where to interface the TDM code for that function or if it is even needed anymore.
libsubc++ has had some changes to the cxa functions in eh_global.cc so same problem.

my current patch only adds the TDM interface to functions that are still existing so some exceptions just might not work but it does build.

@revelator
Copy link

well after some diggin i found out that fde_split was deprecated in a move towards a more modern way of doing things in dwarf.
so besides that one i now have the same interfaces into the TDM code as usuall so all in sjlj 99% in dwarf minus the fde_split code, all in libsupc++ though it did take some code mangling to get it building because they started using anonymous namespaces for the code needed for TDM to interface with.

im bootstrapping gcc-14.2.0 now and will release a test build sometime soon. link will be posted here.

this build only uses the shared pointers if linking to the static runtimes so to test it you will have to use -static-libgcc if building C code and -static-libgcc -static-libstdc++ if building C++. you could also use some scripts i wrote to ease this which copies libgcc_eh.a to libgcc_s.a and libstdc++.a to libstdc++.dll.a just be sure to run it again with no argument after building otherwise it will continue to use the static runtimes. syntax is runtime-config -static for using the TDM enhanced static runtimes and runtime-config with no argument for setting it back to normal.

@revelator
Copy link

well build succeded im now running some tests to see if the missing TDM pointer in the dwarf exception code broke anything.
if it seems to work ill release it plus the patch for anyone interrested to toy with.

@revelator
Copy link

so far 7zip and 4th seems to work when built by it 86box crashes but that may be due to abi changes in the dependencies, theres a lot that needs to be rebuilt using the new compiler. the old one i used was based on gcc-11.4.0 which still used the old dwarf and cxa abi's.

@revelator
Copy link

ok so far it seems to work no worse than the last release, just keep in mind this package was built for msys2 users so it defaults to linking to the shared runtimes if not told otherwise.

ill upload it tomorrow.

@revelator
Copy link

@revelator
Copy link

for use in msys2 you can replace the current version of they're compiler with the one posted above.
to build using static runtimes (avoid libgcc_*.dll and libstdc++ dll) use LDFLAGS=" -static-libgcc" for C code and LDFLAGS=" -static-libgcc -static-libstdc++" for C++ and C code that interfaces with C++.

code compiled with this should still be able to throw exceptions across dll boundaries.

some code does not like being linked with the static runtimes no matter what you do (ogre3d for one) in that case just build as you normally would but the compiled source will depend on the gcc runtime dll's.

my version has the added benefit of having all the tools avaliable where the msys2 version disabled all but the C and C++ compiler for 32 bit.

@GermanAizek
Copy link

Development progress this compiler is interesting.

@revelator
Copy link

Yep :).

minor whoopsie but this breaks C++ exceptions... i forgot the gcc devs changed the __unexpected_handler to take std::terminate and not std::unexpected anymore so i shortcircuited the exception mechanism argh :S. this started turning up as soon as i built one of the msys2 C++ packages which just crashed instantly when executed.

ill do a new build with the correction in place, sorry about the bad news but better a working compiler than none.

ill upload it when the new build is done.

@revelator
Copy link

the broken i686 compilers have been replaced on sourceforge, if you download again from the same link above you should get the corrected versions now.

tested the same C++ package from msys2 and it works now.

i also did some more work on the patch securing the shared pointer macros and i removed the TLS exception interface as it is unnessesary because it is allready part of the exception code. the TLS interface was actually broken in versions below gcc-12.2.0 so newer worked correctly in gcc-11 and older.

@revelator
Copy link

btw the reason im not posting a new build of the x86_64 compilers is that the TDM code is disabled for SEH so it does not apply.
also SEH has no need for all the hokery pokery we do with dwarf and sjlj as it is natively supported on windows.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

10 participants