From 4d617c3f2ad9a6a4f8718cd216421eeb65ede262 Mon Sep 17 00:00:00 2001 From: Olivier Hainque Date: Fri, 9 Oct 2020 12:33:24 +0000 Subject: [PATCH] [Ada] Reinstate utime based code for vx6 in __gnat_copy_attribs gcc/ada/ * adaint.c (__gnat_copy_attribs): Reinstate code based on utime for timestamp processing on VxWorks 6. --- gcc/ada/adaint.c | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) diff --git a/gcc/ada/adaint.c b/gcc/ada/adaint.c index 554123c905b..41453d1cc6a 100644 --- a/gcc/ada/adaint.c +++ b/gcc/ada/adaint.c @@ -3267,7 +3267,22 @@ __gnat_copy_attribs (char *from ATTRIBUTE_UNUSED, char *to ATTRIBUTE_UNUSED, return -1; } -#if _POSIX_C_SOURCE >= 200809L +#if (defined (__vxworks) && _WRS_VXWORKS_MAJOR < 7) + + /* VxWorks prior to 7 only has utime. */ + + /* Do we need to copy the timestamp ? */ + if (mode != 2) { + struct utimbuf tbuf; + + tbuf.actime = fbuf.st_atime; + tbuf.modtime = fbuf.st_mtime; + + if (utime (to, &tbuf) == -1) + return -1; + } + +#elif _POSIX_C_SOURCE >= 200809L struct timespec tbuf[2]; if (mode != 2) { -- 2.30.2