Marc Poulhiès <poulh...@adacore.com> writes: > Hello Nicolas, > >>> At first view, it seems possible and desirable to merge _posix and >>> _rtems, but working on this right now would be counter-productive. >>> >>> I suggest to apply patches 1-2 and fix PR114065 first. >>> >>> Then the cosmetic changes in patches 3-6 (and possibly a trivial >>> backport of 8). >>> >>> After that, we will have all the time in the long winter afternoons to >>> discuss file names in patch 7. >> >> Hello Nicolas, >> >> I wanted to test your latest version of the patch, but it does not apply >> cleanly. Any chance you could send an updated version? I've tried to >> apply over some recent revisions and also over some revisions around the >> time you sent your mail, but none worked. > > I've discussed with Doug (author of the conflicting change). > > Overall, your change is OK, with the following exception: we can't > change the Calendar API, so the revert is not OK. User code using the > new "*_64" function will break. A possible solution would be to > implement the API using your change. > > While looking at the changes again, I have one more comment, see below. > >> diff --git a/gcc/ada/s-oscons-tmplt.c b/gcc/ada/s-oscons-tmplt.c >> index e5dad44..a64e578 100644 >> --- a/gcc/ada/s-oscons-tmplt.c >> +++ b/gcc/ada/s-oscons-tmplt.c >> @@ -1775,6 +1775,22 @@ CNS(MAX_tv_sec, "") >> CND(SIZEOF_tv_nsec, "tv_nsec"); >> } >> >> +/* >> + >> + -- Functions with time_t suseconds_t timeval timespec parameters like >> + -- clock_get{res,time} gettimeofday nanosleep >> + -- pthread_cond_{,timed}wait select >> + -- must be imported from the GNU C library with >> + -- External_Name => (if Glibc_Use_Time_Bits64 then "__foo64" else >> "foo") >> + -- The test is safe in files that do not require GNU specifically. >> + >> +*/ >> +#if defined(__USE_TIME64_REDIRECTS) || (__TIMESIZE == 32 && >> __USE_TIME_BITS64) >> + C("Glibc_Use_Time_Bits64", Boolean, "True", "Y2038 Glibc transition") > > Would it make sense to drop the "Glibc" here? Having "Glibc" means that > we end up with glibc specifics in files that are not glibc specific (e.g. > a-exetim__posix.adb or s-osinte__linux.ads). Are these particular macros > glibc specific? We need these to build with other libc (e.g. musl).
As an aside: I won't promise to work on this just yet, but there's some fixes needed to get GNAT building on musl. If these are welcomed, I'll move it a bit higher up on my list. > >> +#else >> + C("Glibc_Use_Time_Bits64", Boolean, "False", "Y2038 Glibc transition") >> +#endif >> + >> /* >> >> -- Sizes of various data types > > Thanks, > Marc