-
-
Notifications
You must be signed in to change notification settings - Fork 12.2k
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@13: add Modula 2 support #176192
base: master
Are you sure you want to change the base?
gcc@13: add Modula 2 support #176192
Conversation
Thanks for contributing to Homebrew! 🎉 It looks like you're having trouble with a CI failure. See our contribution guide for help. You may be most interested in the section on dealing with CI failures. You can find the CI logs in the Checks tab of your pull request. |
Hi, I don't think we want to add features to versioned (legacy) formulas. How about adding it to the main GCC formula? |
Modula 2 came in with gcc 13. I wanted to enable it in both, gcc 13 and 14. I happened to raise a PR for gcc 13 first. I'm going to raise a PR for gcc 14 soon. |
@@ -120,7 +122,8 @@ def install | |||
# To make sure GCC does not record cellar paths, we configure it with | |||
# opt_prefix as the prefix. Then we use DESTDIR to install into a | |||
# temporary location, then move into the cellar path. | |||
system "make", install_target, "DESTDIR=#{Pathname.pwd}/../instdir" | |||
# Deparallelize for modula 2 as make install will block indefinitely. | |||
ENV.deparallelize { system "make", install_target, "DESTDIR=#{Pathname.pwd}/../instdir" } |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Has this been reported upstream?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Here is pstree when make install
is parallelized
| | \-+= 84054 schaecsn -bash
| | \-+= 17854 schaecsn /opt/homebrew/Library/Homebrew/vendor/portable-ruby/current/bin/ruby -W1 --disable=gems,rubyopt /opt/homebrew/Library/Homebrew/brew.rb install --build-from-source gcc
| | \-+- 18140 schaecsn /opt/homebrew/Library/Homebrew/vendor/portable-ruby/current/bin/ruby -W1 --disable=gems,rubyopt /opt/homebrew/Library/Homebrew/brew.rb install --build-from-source gcc
| | \-+= 18141 schaecsn /opt/homebrew/Library/Homebrew/vendor/portable-ruby/3.3.3/bin/ruby -W1 --disable=gems,rubyopt -- /opt/homebrew/Library/Homebrew/build.rb /opt/homebrew/Library/Taps/homebrew/homebrew-core/Formula/g/gcc.rb
| | \-+- 05633 schaecsn /Library/Developer/CommandLineTools/usr/bin/make install DESTDIR=/private/tmp/gcc-20240703-18141-wmii4g/gcc-14.1.0/build/../instdir
| | \-+- 05655 schaecsn /bin/sh -c r=`${PWDCMD-pwd}`; export r; s=`cd ..; ${PWDCMD-pwd}`; export s; /Library/Developer/CommandLineTools/usr/bin/make "DESTDIR=/private/tmp/gcc-20240703-18141-wmii4g/gcc-14.1.0/build/../instdir" "RPAT
| | \-+- 05667 schaecsn /Library/Developer/CommandLineTools/usr/bin/make DESTDIR=/private/tmp/gcc-20240703-18141-wmii4g/gcc-14.1.0/build/../instdir RPATH_ENVVAR=DYLD_LIBRARY_PATH TARGET_SUBDIR=aarch64-apple-darwin23 bindir=/opt/h
| | \-+- 06235 schaecsn /bin/sh -c r=`${PWDCMD-pwd}`; export r; s=`cd ..; ${PWDCMD-pwd}`; export s; FLEX="flex"; export FLEX; LEX="flex"; export LEX; BISON="bison"; export BISON; YACC="bison -y"; export YACC; M4="gm4"; export M
| | \-+- 06296 schaecsn /bin/sh -c r=`${PWDCMD-pwd}`; export r; s=`cd ..; ${PWDCMD-pwd}`; export s; FLEX="flex"; export FLEX; LEX="flex"; export LEX; BISON="bison"; export BISON; YACC="bison -y"; export YACC; M4="gm4"; export
| | \--- 06362 schaecsn /Library/Developer/CommandLineTools/usr/bin/make DESTDIR=/private/tmp/gcc-20240703-18141-wmii4g/gcc-14.1.0/build/../instdir RPATH_ENVVAR=DYLD_LIBRARY_PATH TARGET_SUBDIR=aarch64-apple-darwin23 bindir=
The call to make
is stuck (the pid 06362 does not change over hours) and there is no progress reported in ~/Library/Logs/Homebrew/gcc/03.make
. The probem is the ancient make 3.81
in /Library/Developer/CommandLineTools/usr/bin/make
. Replacing it with the modern make
from Homebrew makes make install
run to completion.
It's difficult to know which upstream to blame: gcc lists make 3.80
as a minimal dependency. Are they to blame? There are lots of custom Makefile changes in the applied patch https://raw.githubusercontent.com/Homebrew/formula-patches/bda0faddfbfb392e7b9c9101056b2c5ab2500508/gcc/gcc-13.3.0.diff
- is it to blame for requiring a more recent make
? My guess is Homebrew setting quite a few enviroment variables. Are they to blame for requiring a more recent make
?
e9eed7b
to
4be0753
Compare
The docker instructions on https://github.com/Homebrew/homebrew-core/blob/HEAD/CONTRIBUTING.md#homebrew-docker-container created a docker image with only 4 GB of memory where my brew of gcc@13 runs out of memory. I don't know why the CI docker image on github does not run out of memory. What made linux CI pass was
makes the build fail in configure with
Why do I need all in a sudden |
6928ee8
to
121d31a
Compare
Enable support for Modula 2 and add a test case. Signed-off-by: Stefan Schaeckeler <[email protected]>
Without an explicit dependency on
but not really installed, at least the
When adding
|
Enable support for Modula 2 and add a test case.
Deparallelization of 'make install' is necessary, at least under macOS, otherwise the make command is stuck for reasons unknown.
HOMEBREW_NO_INSTALL_FROM_API=1 brew install --build-from-source <formula>
, where<formula>
is the name of the formula you're submitting?brew test <formula>
, where<formula>
is the name of the formula you're submitting?brew audit --strict <formula>
(after doingHOMEBREW_NO_INSTALL_FROM_API=1 brew install --build-from-source <formula>
)? If this is a new formula, does it passbrew audit --new <formula>
?