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.

Reply via email to