> On 22 Nov 2023, at 14:48, Iain Sandoe <i...@sandoe.co.uk> wrote:
>
>
>
>> 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
I think this fixes https://gcc.gnu.org/bugzilla/show_bug.cgi?id=111909 ?
if you agree then please add that to the commit.
Iain
> 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>