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

GCC 4.9.4 #1300

Open
wants to merge 6 commits into
base: master
Choose a base branch
from
Open

GCC 4.9.4 #1300

wants to merge 6 commits into from

Conversation

sevan
Copy link
Collaborator

@sevan sevan commented Feb 27, 2025

Add a formula for isl 0.12.2
Unlike GCC 4.8 which requires isl 0.11.1 as a minimum, GCC 4.9 states that isl 0.12.2 is required in its install documentation.

GCC 4.9.4
Drop patches, they were specifically for 4.9.3. 4.9.4 was listed as
unaffected.
Need isl 0.12.2 to build GCC 4.9.4
Turn off optimisation to avoid compilation issues during a lengthy build.
--enable-libstdcxx-time alters the C++11 ABI and shouldn't be used. https://gcc.gnu.org/bugzilla/show_bug.cgi?id=61758#c6
Allow the build itself to set the type of checking.
Use the default build config & address any fallouts, rather than use a debug bootstrap.
We're not building head so no need to specify disable werror.
Update URLs

Tested on Tiger (G4) with GCC 4.0.1
Built on a 1.33Ghz PowerBook G4 running Tiger in 481 minutes using GCC 4.0.1
Built on a 1.8Ghz iMac G5 running Tiger in 438 minutes using GCC 4.0.1
Built on a 2Ghz c2d mac mini running Tiger in 84 minutes using GCC 4.0.1
Built on a 1.33Ghz iBook G4 running Leopard in 327 minutes using GCC 4.2
Built on a 1.8Ghz iMac G5 running Leopard in 247 minutes using GCC 4.2
Built on a mid-2009 Air running Leopard using GCC 4.2 in 89 minutes.
Built on a mid-2009 Air running Snow Leopard using GCC 4.2 in 113 minutes.
Built on late 2009 white MacBook running Lion using clang in 60something minutes.
Built on late 2009 white MacBook running Mountain Lion using clang in 67 minutes.
Built on late 2009 white MacBook running Mavericks using clang in 73 minutes.
Built on late 2009 white MacBook running Yosemite using clang in 104 minutes --with-build-config=bootstrap-debug (only way to get it to build)
Built on a mid-2009 Air running El Capitan using clang in 112 minutes.
Marking as draft until I've done more testing beyond just Tiger

Unlike GCC 4.8 which requires isl 0.11.1 as a minimum, GCC 4.9 states
that isl 0.12.2 is required in its install documentation.
Drop patches, they were specifically for 4.9.3. 4.9.4 was listed as
unaffected.
Need isl 0.12.2 to build GCC 4.9.4
Turn off optimisation to avoid compilation issues during a lengthy build.
--enable-libstdcxx-time alters the C++11 ABI and shouldn't be used. https://gcc.gnu.org/bugzilla/show_bug.cgi?id=61758#c6
Allow the build itself to set the type of checking.
Use the default build config & address any fallouts, rather than use a debug bootstrap.
We're not building head so no need to specify disable werror.
Update URLs
@@ -80,6 +61,7 @@ def pour_bottle?
cxxstdlib_check :skip

def install
ENV.no_optimization
Copy link
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Did this break in all circumstances, or did it depend on what the bootstrapping compiler was?

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is the first time I've gone back to trying to compiler compilers on Tigerbrew with GCC 4.0.1 on Tiger.
Previous attempts have always started with 4.2.
I was able to build 4.4 & 4.5 on Leopard/PowerPC without issue using GCC 4.2 however the issue you ran into with the stage comparison is masked by using --with-build-config=bootstrap-debug where as it is related to optimisation.
Homebrew/legacy-homebrew#38596
I'll be able to give a proper explanation and fix once I've done more testing.
I switched it off as 4.8 & 4.9 builds blow up late in the process and waste a very large chunk of time + I wanted to spare my PowerBook. :)

Copy link
Collaborator Author

@sevan sevan Mar 10, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I don't have a fix since I can't really ruby and what I tried didn't work, but it turns out that we always build with -Os via the superenv & the cc ENV wrappers. All setting no_optimization really does is ensures that -march is not applied. (check the log file end with .cc for a package to see superenv performing the substitution.

sevan added 3 commits March 10, 2025 21:24
Build with Apple's version of clang always results in failure at the
end of 3rd stage comparison. It is not needed when building GCC with
GCC. Tested by using GCC 4.7 to build.
Rather than patching it to make up for the lack of _SC_NPROCESSORS_ONLN
It's an extension to C/C++ library for parallelism & vector processing,
doesn't affect normal language support in GCC.
https://cilkplus.github.io
@sevan sevan marked this pull request as ready for review March 11, 2025 14:22
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

Successfully merging this pull request may close these issues.

2 participants