Align utimensat() and utimes() with POSIX

Message ID 20210125121000.72815-1-sebastian.huber@embedded-brains.de
State New
Headers show
Series
  • Align utimensat() and utimes() with POSIX
Related show

Commit Message

Sebastian Huber Jan. 25, 2021, 12:10 p.m.
Change the prototypes to be in line with POSIX.  This may fix issues
with new warnings produced by GCC 11.

Signed-off-by: Sebastian Huber <sebastian.huber@embedded-brains.de>

---
 newlib/libc/include/sys/stat.h | 2 +-
 newlib/libc/include/sys/time.h | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

-- 
2.26.2

Comments

Corinna Vinschen via Newlib Jan. 26, 2021, 12:35 p.m. | #1
On Jan 25 13:10, Sebastian Huber wrote:
> Change the prototypes to be in line with POSIX.  This may fix issues

> with new warnings produced by GCC 11.

> 

> Signed-off-by: Sebastian Huber <sebastian.huber@embedded-brains.de>

> ---

>  newlib/libc/include/sys/stat.h | 2 +-

>  newlib/libc/include/sys/time.h | 2 +-

>  2 files changed, 2 insertions(+), 2 deletions(-)

> 

> diff --git a/newlib/libc/include/sys/stat.h b/newlib/libc/include/sys/stat.h

> index 8769112b0..9eea7fc6e 100644

> --- a/newlib/libc/include/sys/stat.h

> +++ b/newlib/libc/include/sys/stat.h

> @@ -153,7 +153,7 @@ int	fstatat (int, const char *__restrict , struct stat *__restrict, int);

>  int	mkdirat (int, const char *, mode_t);

>  int	mkfifoat (int, const char *, mode_t);

>  int	mknodat (int, const char *, mode_t, dev_t);

> -int	utimensat (int, const char *, const struct timespec *, int);

> +int	utimensat (int, const char *, const struct timespec [2], int);

>  #endif

>  #if __POSIX_VISIBLE >= 200809 && !defined(__INSIDE_CYGWIN__)

>  int	futimens (int, const struct timespec *);

> diff --git a/newlib/libc/include/sys/time.h b/newlib/libc/include/sys/time.h

> index 84a429bf2..fb46771d7 100644

> --- a/newlib/libc/include/sys/time.h

> +++ b/newlib/libc/include/sys/time.h

> @@ -414,7 +414,7 @@ struct itimerval {

>  #include <time.h>

>  

>  __BEGIN_DECLS

> -int utimes (const char *__path, const struct timeval *__tvp);

> +int utimes (const char *, const struct timeval [2]);

>  

>  #if __BSD_VISIBLE

>  int adjtime (const struct timeval *, struct timeval *);

> -- 

> 2.26.2


LGTM, but shouldn't futimens get changed as well?

And what about the BSD variants futimes and lutimes?


Thanks,
Corinna
Sebastian Huber Jan. 26, 2021, 2:09 p.m. | #2
On 26/01/2021 13:35, Corinna Vinschen via Newlib wrote:

> LGTM, but shouldn't futimens get changed as well?

>

> And what about the BSD variants futimes and lutimes?

According to the Linux man pages they all use the [2] array size. I will 
send a v2 which includes these functions as well.

-- 
embedded brains GmbH
Herr Sebastian HUBER
Dornierstr. 4
82178 Puchheim
Germany
email: sebastian.huber@embedded-brains.de
phone: +49-89-18 94 741 - 16
fax:   +49-89-18 94 741 - 08

Registergericht: Amtsgericht München
Registernummer: HRB 157899
Vertretungsberechtigte Geschäftsführer: Peter Rasmussen, Thomas Dörfler
Unsere Datenschutzerklärung finden Sie hier:
https://embedded-brains.de/datenschutzerklaerung/

Patch

diff --git a/newlib/libc/include/sys/stat.h b/newlib/libc/include/sys/stat.h
index 8769112b0..9eea7fc6e 100644
--- a/newlib/libc/include/sys/stat.h
+++ b/newlib/libc/include/sys/stat.h
@@ -153,7 +153,7 @@  int	fstatat (int, const char *__restrict , struct stat *__restrict, int);
 int	mkdirat (int, const char *, mode_t);
 int	mkfifoat (int, const char *, mode_t);
 int	mknodat (int, const char *, mode_t, dev_t);
-int	utimensat (int, const char *, const struct timespec *, int);
+int	utimensat (int, const char *, const struct timespec [2], int);
 #endif
 #if __POSIX_VISIBLE >= 200809 && !defined(__INSIDE_CYGWIN__)
 int	futimens (int, const struct timespec *);
diff --git a/newlib/libc/include/sys/time.h b/newlib/libc/include/sys/time.h
index 84a429bf2..fb46771d7 100644
--- a/newlib/libc/include/sys/time.h
+++ b/newlib/libc/include/sys/time.h
@@ -414,7 +414,7 @@  struct itimerval {
 #include <time.h>
 
 __BEGIN_DECLS
-int utimes (const char *__path, const struct timeval *__tvp);
+int utimes (const char *, const struct timeval [2]);
 
 #if __BSD_VISIBLE
 int adjtime (const struct timeval *, struct timeval *);