I’m a developer of a web application framework and have ported several libraries to Haiku for fun (didn’t release them, they are full of hacks). I want to port the next iteration of the framework to Haiku as an exercise and pet project. To see how much it can work on non-standard environments. But that version requires C++20 (coroutine and concepts) support. Implemented by GCC >= 10. And Haiku supplies 8.3.
Is there a way to manually build newer GCC on Haiku?
Adjust the recie and apply-extend the patchset and build it with HaikuPorter.
Sadly the patchset wont apply cleanly and even if you apply it manually the patches needs to be extended for 10.x, it means you will have to have some knowledge about GCC internals.
One the side from haikuports you can count on some help here, though the basic recipe atm should cover most things, hardest part is on the code/patching side I guess
Welcome to the fight! Awhile ago I asked the same question on the forum C++20 Support. @extrowerk posted some information there that may help as well.
About the “poisoned variable” mentioned in that thread, from what I was able to figure out, the variable in question has been deprecated and it should be safe to remove it completely.
Using the GCC 8 patch as a base-line, most of the changes were adding conditions for Haiku in the various configure and other build scripts. However, the patch did modify some line numbers in generated code, it looked harmless but probably should be corrected. Also some C++ files are added by the patch.
My first attempt failed because my drive/partition was only 2G. Dedicating a 4G drive to Haiku for porting GCC does not leave much free space available. I would recommend 8G or more when porting GCC. My second attempt failed due to header file issues: not existing or not finding or using the wrong one. Don’t remember exactly. Then I ran out of free time.
I wish you the best in porting GCC, I too would like to port some C++20 code to Haiku.
Sadly you decided to not publish the adjusted GCC10 recipe, and what you published earlier not builds on nightly, it doesn’t packages because the sonames doesn’t match, and the patchset is a mess.
You are free to make hype, but do not forget to deliver.
Maybe we could work together if the task turns out too hard/large? I’m waiting for @extrowerk’s patches to be uploaded. It would be a better starting point than the current GCC 8.3 patches.