> Also, should the test code below (between %%%) be included in the > testsuite?
It would be good but tests shouldn't output anything, they should be self testing, and you will need to deal with making the test portable to all targets. Given that the compiler itself uses this feature, I don't think this is worth the trouble. > @@ -613,12 +613,25 @@ __gnat_get_file_names_case_sensitive (void) > else > { > /* By default, we suppose filesystems aren't case sensitive on > - Windows and Darwin (but they are on arm-darwin). */ > -#if defined (WINNT) || defined (__DJGPP__) \ > - || (defined (__APPLE__) && !(defined (__arm__) || defined (__arm64__))) > + Windows or DOS. */ > +#if defined (WINNT) || defined (__DJGPP__) > + file_names_case_sensitive_cache = 0; > +#elif defined (__APPLE__) > + /* By default, macOS volumes are case-insensitive, iOS > + volumes are case-sensitive. */ > +#if defined (TARGET_OS_OSX) /* In recent SDK. */ > +#if TARGET_OS_OSX /* macOS. */ > file_names_case_sensitive_cache = 0; > #else > file_names_case_sensitive_cache = 1; > +#endif > +#elif TARGET_OS_MAC /* macOS, in older SDK. */ > + file_names_case_sensitive_cache = 0; > +#else > + file_names_case_sensitive_cache = 1; > +#endif > +#else /* Neither Windows nor Apple. */ > + file_names_case_sensitive_cache = 1; > #endif Please simplify the above to (untested): #elif defined (__APPLE__) /* By default, macOS volumes are case-insensitive, iOS volumes are case-sensitive. */ #if TARGET_OS_MAC /* macOS, in older SDK. */ file_names_case_sensitive_cache = 0; #elif TARGET_OS_OSX /* macOS, in recent SDK. */ file_names_case_sensitive_cache = 0; #else /* assume iOS. */ file_names_case_sensitive_cache = 1; #endif #else /* Neither Windows nor Apple. */ file_names_case_sensitive_cache = 1; #endif which is simpler and more readable and should be equivalent AFAICT. OK with the above change. Arno