Hi Folks

> On 4 Nov 2023, at 17:02, Simon Wright <si...@pushface.org> wrote:
> 
> On 3 Nov 2023, at 08:39, Arnaud Charlet <char...@adacore.com> wrote:

>> So without changing fundamentally the model, you can't decide dynamically 
>> for the whole
>> system. Making the choice based on the current directory is pretty random, 
>> since the current
>> directory isn't well defined at program's start up and could be pretty much 
>> any filesystem.
> 
> I’d imagine that projects spread over more than one 
> differently-case-sensitive filesystem would
> be rare. As to the current directory at compiler startup, with GPRbuild it’s 
> the object directory, so
> likely to be somewhere near the project’s source tree.

It’s likely much less rare to find a CS external disk or an NFS mount, or 
secondary FS with a non-CS system partition,
(since the default for the system install is that way).

I am suspicious of second-guessing any of this; my opinion is that if we have 
an automated
recognition of CS, then it needs to work in the general circumstance (that 
would certainly be in the
spirit of macOS “it just works”).

If we cannot achieve that, the advantage of the current scenario 
(GNAT_FILE_NAME_CASE_SENSITIVE=..)
is that it is explicit on the part of the user, and therefore puts the onus on 
the user to get it right.

>> Note that the current setting on arm is actually for iOS, which we did 
>> support at AdaCore
>> at some point (and could revive in the future, who knows).
> 
> Wouldn’t it be more natural to go via LLVM? I understand from Iain that iOS 
> isn’t currently
> supported by GCC.

Historically, we had no support for Arm or AArch64, so the missing support of 
iOS as a concept was
not important - now we have an AArch64 port, it is feasible and potentially 
relevant to update this.

Having said that, I’m not sure how a a GCC-developed iOS app would be 
distributed - but of course
libraries are a different story.
> 
>> So it would be fine to refine the test to differentiate between macOS and 
>> embedded iOS and co,
>> that would be a better change here.
> 
> There didn’t seem to be a way to do that.

We should be able to do that at runtime (sysctl calls for example)

> So, Iain, do we want to pursue this?


Right now, I have no spare resources to tackle this, (I suspect that the issues 
I see on earlier systems
are due to the syscall not finding the right root FS from paths like /foo/bar 
so it remains to be see how
to deal with it).  I have no objection from a Darwin perspective to folks 
finding a mutually agreeable 
solution that works without the user specifying the env. var - but I’m not 
going to be able to contribute
much to the work in the near future.

thanks
Iain

Reply via email to