]> git.ipfire.org Git - thirdparty/gcc.git/commit
Fix PR ada/111909 On Darwin, determine filesystem case sensitivity at runtime
authorSimon Wright <simon@pushface.org>
Tue, 28 Nov 2023 13:56:36 +0000 (14:56 +0100)
committerMarc Poulhiès <poulhies@adacore.com>
Tue, 28 Nov 2023 16:47:10 +0000 (17:47 +0100)
commit396db92d3aa7412dd7133563fecbc6237fa81c02
tree22d905566e028621d15516b4290b4f5e72169b16
parentf45d5e30bd98ea1d8dc29841a06b2cfa5662deb5
Fix PR ada/111909 On Darwin, determine filesystem case sensitivity at runtime

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.

2023-11-22  Simon Wright  <simon@pushface.org>

gcc/ada/

PR ada/111909
* 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 <simon@pushface.org>
gcc/ada/adaint.c