Thanks.

The xcode-select command always exists.
What works is to run the command with stderr redirected to /dev/null and 
then check $?.
I will open a PR.

- Marc
On Thursday, April 25, 2024 at 4:05:34 PM UTC-5 John H Palmieri wrote:

> I also don't know when the linker was fixed and whether we need to support 
> systems on which it is still broken. Anyway, if you want to open up a PR to 
> avoid the call to xcode-select, I'd be happy to take a look. We could also 
> revive some version of the branch at #36337 to filter out the warnings when 
> doctesting.
>
> -- 
> John
>
> On Thursday, April 25, 2024 at 1:19:50 PM UTC-7 John H Palmieri wrote:
>
>> Take a look at the discussion at 
>> https://github.com/sagemath/sage/pull/36337, in particular 
>> https://github.com/sagemath/sage/pull/36337#issuecomment-1741293729. I 
>> saw both "duplicate rpath" warnings and "duplicate library" warnings. Some 
>> (maybe all, at least at that point) of the duplicate rpaths were removed by 
>> https://github.com/sagemath/sage/pull/36364, but I don't know how to 
>> prevent the duplicate libary warnings.
>>
>> -- 
>> John
>>
>>
>> On Thursday, April 25, 2024 at 1:07:17 PM UTC-7 marc....@gmail.com wrote:
>>
>>> Hi John,
>>>
>>> I have noticed that .dylib files generated by Sage often have as many as 
>>> 3 identical rpaths.  (When building the macOS app I remove all rpaths and 
>>> replace them with a single rpath which is relative, meaning it starts with 
>>> @loader_path.  Apple will not notarize app bundles with absolute rpaths.)
>>>
>>> I wonder if the "duplicate libraries" warnings are caused by duplicate 
>>> rpath entries in the mach files.  I will try to test that hypothesis.
>>>
>>> Do you have any idea what could cause those duplicate rpaths?  Are there 
>>> multiple -rpath options being passed to the compiler?
>>>
>>> - Marc
>>>
>>> On Thu, Apr 25, 2024 at 2:50 PM John H Palmieri <jhpalm...@gmail.com> 
>>> wrote:
>>>
>>>> Hi Marc,
>>>>
>>>> I just tried building Sage without `-ld-classic`. It builds, but I get 
>>>> warnings about "ignoring duplicate libraries", and those cause doctest 
>>>> failures. The lines could be modified to test whether xcode-select is 
>>>> present and executable first, or since Sage now does indeed build without 
>>>> `-ld-classic`, we could filter out the warnings when doctesting.
>>>>
>>>> -- 
>>>> John
>>>>
>>>>
>>>> On Wednesday, April 24, 2024 at 3:20:54 PM UTC-7 marc....@gmail.com 
>>>> wrote:
>>>>
>>>>> 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 a topic in the 
>>>> Google Groups "sage-devel" group.
>>>> To unsubscribe from this topic, visit 
>>>> https://groups.google.com/d/topic/sage-devel/4s_5HmznHZM/unsubscribe.
>>>> To unsubscribe from this group and all its topics, send an email to 
>>>> sage-devel+...@googlegroups.com.
>>>> To view this discussion on the web visit 
>>>> https://groups.google.com/d/msgid/sage-devel/c81c9434-3b0c-4730-b3e8-6e36802f5224n%40googlegroups.com
>>>>  
>>>> <https://groups.google.com/d/msgid/sage-devel/c81c9434-3b0c-4730-b3e8-6e36802f5224n%40googlegroups.com?utm_medium=email&utm_source=footer>
>>>> .
>>>>
>>>

-- 
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/bbcc2f1e-22aa-4e7e-a5c8-560766fa9d64n%40googlegroups.com.

Reply via email to