Arnaud Charlet <char...@adacore.com> wrote:

This patch breaks bootstrap on Darwin platforms.

Pierre-Marie de Rodat <dero...@adacore.com> wrote:

The modification file time precision now defined by OS.

Tested on x86_64-pc-linux-gnu, committed on trunk

gcc/ada/

        * adaint.c (__gnat_file_time): New routine.
        (__gnat_copy_attribs): Copy timestamps in nanoseconds.
        * libgnat/a-direct.adb (C_Modification_Time): Bind to
        __gnat_file_time.
        (Modification_Time): Call to C_Modification_Time.<patch.diff>

#if defined(st_mtime)

is a necessary test - but the fields in the stat structure on Darwin platforms are
named st_{a,c,m}timespec rather than the Linux st_{a,c,m}tim.

What about instead putting above extern long long __gnat_file_time the
following:

#if __APPLE__
#define st_mtim st_mtimespec
#define st_atim st_atimespec
#endif

To avoid having the two (nested) #if __APPLE__ and keep the code easier
to follow?

works for me (the test patch was drafted quickly to allow bootstrap to continue)
- I can amend the patch and (re-)test more widely.

Iain

Reply via email to