> On 22 Nov 2023, at 13:55, Arnaud Charlet <char...@adacore.com> wrote:
>
>>>> #if defined (__APPLE__)
>>>> -#include <unistd.h>
>>>
>>> If removing unistd.h is intentional (i.e. you determined that it’s no longer
>>> needed for Darwin), then we should make that a separate patch.
>>
>> I thought that I’d had to include unistd.h for the first patch in this
>> thread; clearly not!
>>
>> What I hope will be the final version:
>
> OK here.
also OK here, thanks
Iain
>
>> ——— 8< .———
>>
>> In gcc/ada/adaint.c(__gnat_get_file_names_case_sensitive), the current
>> assumption for __APPLE__ is that file names are case-insensitive
>> unless __arm__ or __arm64__ are defined, in which case file names are
>> declared case-sensitive.
>>
>> The associated comment is
>> "By default, we suppose filesystems aren't case sensitive on
>> Windows and Darwin (but they are on arm-darwin)."
>>
>> This means that on aarch64-apple-darwin, file names are treated as
>> case-sensitive, which is not the default case.
>>
>> The true default position is that macOS file systems are
>> case-insensitive, iOS file systems are case-sensitive.
>>
>> Apple provide a header file <TargetConditionals.h> which permits a
>> compile-time check for the compiler target (e.g. OSX vs IOS); if
>> TARGET_OS_IOS is defined as 1, this is a build for iOS.
>>
>> * gcc/ada/adaint.c
>> (__gnat_get_file_names_case_sensitive): Split out the __APPLE__
>> check and remove the checks for __arm__, __arm64__.
>> For Apple, file names are by default case-insensitive unless
>> TARGET_OS_IOS is set.
>>
>> Signed-off-by: Simon Wright <si...@pushface.org>