Well, it almost solved the problem. It turns out that calling /usr/bin/gcc was not the only issue in sage-env. That script also calls xcode-select. On a system with no XCode app and no command line tools, calling gcc causes an error message to be printed to stderr and a dialog to open asking whether to install the command line tools. Calling xcode-select on such a system prints the same error message but does not open the dialog. The error message appears in the terminal when running sage in a command line, which is annoying and/or alarming to someone with no plans to do anything involving compilation of C code.
The calls to xcode-select were added in PR#36599 <https://github.com/sagemath/sage/pull/36599> in order to force XCode to use Apple's ld-classic linker instead of ld when their new version of ld was totally broken. This is done by adding -ld_classic to LDFLAGS. *Note to people who worked on PR #36599* (@jhpalmieri and @mkoeppe): I think Apple's new linker is working now, so it is probably no longer necessary and not a good idea to force use of ld_classic. - Marc On Tuesday, April 23, 2024 at 10:45:54 PM UTC-5 Marc Culler wrote: That was it! Thank you Gonzalo; indeed, it helps a lot. And your workaround is fine, since we don't support the -i option, Even if we did, the default names for as, ld and ar are correct whenever the command line tools are installed. So that block of code is completely irrelevant for the macOS platform. This solves the problem. - Marc On Tuesday, April 23, 2024 at 8:59:12 PM UTC-5 Gonzalo Tornaría wrote: https://github.com/sagemath/sage/blob/develop/src/bin/sage-env#L482 and L494 See: https://github.com/sagemath/sage/issues/14296 and https://github.com/sagemath/sage/commit/69213d74ead4e93687cf61f214b0d96dd3f9885a Maybe you can workaround this by setting AS=as and LD=ld in sage-env-config. HTH, Gonzalo On Tuesday, April 23, 2024 at 3:48:18 PM UTC-3 Marc Culler wrote: I discovered, by installing the Sage_macOS app on a pristine macOS system, that somehow, somewhere, in Sage's startup sequence there is a call to gcc. This is true whether Sage is being started from a command line or a notebook. On such a macOS system /usr/bin/gcc exists, but calling it causes a dialog to be posted which asks whether to download and install the Xcode "command line tools". There is no need for a user to install, or be prompted to install, a C compiler in order to run Sage. If we want to verify whether a C compiler is installed on the host system then we should check the return value of xcode-select -p rather than calling /usr/bin/gcc. I am unable to find where this call occurs. Do any of the Sage developers know which component of Sage could be calling /usr/bin/gcc on start up? - Marc -- You received this message because you are subscribed to the Google Groups "sage-devel" group. To unsubscribe from this group and stop receiving emails from it, send an email to sage-devel+unsubscr...@googlegroups.com. To view this discussion on the web visit https://groups.google.com/d/msgid/sage-devel/e76f6487-ddd9-46a6-a08e-0218e2b45850n%40googlegroups.com.