All of lore.kernel.org
 help / color / mirror / Atom feed
* [Buildroot] [PATCH v2] package/uclibc: fix missing m_tim issue
@ 2024-08-05  6:20 Waldemar Brodkorb
  2024-08-05  7:15 ` Thomas Petazzoni via buildroot
                   ` (2 more replies)
  0 siblings, 3 replies; 6+ messages in thread
From: Waldemar Brodkorb @ 2024-08-05  6:20 UTC (permalink / raw)
  To: buildroot

Patch from upstream to fix missing m_tim issue.

Fixes:
 - http://autobuild.buildroot.org/results/f07d6d6ae2331f9972974093c0503b9d3c6b914a/

Signed-off-by: Waldemar Brodkorb <wbx@openadk.org>
---
v1->v2:
  - add missing autobuild url (requested by Thomas P.)
---
 ...are-st_mtim-if-defined-__USE_XOPEN2K.patch | 205 ++++++++++++++++++
 1 file changed, 205 insertions(+)
 create mode 100644 package/uclibc/0003-bits-stat.h-Declare-st_mtim-if-defined-__USE_XOPEN2K.patch

diff --git a/package/uclibc/0003-bits-stat.h-Declare-st_mtim-if-defined-__USE_XOPEN2K.patch b/package/uclibc/0003-bits-stat.h-Declare-st_mtim-if-defined-__USE_XOPEN2K.patch
new file mode 100644
index 0000000000..9b1003a036
--- /dev/null
+++ b/package/uclibc/0003-bits-stat.h-Declare-st_mtim-if-defined-__USE_XOPEN2K.patch
@@ -0,0 +1,205 @@
+From d0c8c185b439187b12644457bb2aa0326f25aaf7 Mon Sep 17 00:00:00 2001
+From: J.Neuschäfer?= <j.neuschaefer@gmx.net>
+Date: Sat, 27 Jul 2024 18:47:09 +0200
+Subject: [PATCH] bits/stat.h: Declare st_mtim if defined(__USE_XOPEN2K8),
+ everywhere
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+While building software that sets _POSIX_C_SOURCE=200809L and uses
+stat.st_mtim for ARM, it was noticed that st_mtim was not defined.
+
+This seems to be because common/bits/stat.h was picked up, which does
+not take __USE_XOPEN2K8 as a reason to enable st_mtim and related
+fields. This appears to be an oversight, and porting the check from
+common-generic/bits/stat.h to other architectures does indeed fix the
+build issue.
+
+This patch is based on commit 50bd6d06e ("Fix memory corruption due to
+struct stat field").
+
+Signed-off-by: J. Neuschäfer <j.neuschaefer@gmx.net>
+Signed-off-by: Waldemar Brodkorb <wbx@openadk.org>
+Upstream: https://cgit.uclibc-ng.org/cgi/cgit/uclibc-ng.git/commit/?id=d0c8c185b439187b12644457bb2aa0326f25aaf7
+---
+ libc/sysdeps/linux/alpha/bits/stat.h   | 2 +-
+ libc/sysdeps/linux/common/bits/stat.h  | 4 ++--
+ libc/sysdeps/linux/frv/bits/stat.h     | 4 ++--
+ libc/sysdeps/linux/ia64/bits/stat.h    | 4 ++--
+ libc/sysdeps/linux/m68k/bits/stat.h    | 4 ++--
+ libc/sysdeps/linux/mips/bits/stat.h    | 4 ++--
+ libc/sysdeps/linux/nds32/bits/stat.h   | 4 ++--
+ libc/sysdeps/linux/powerpc/bits/stat.h | 4 ++--
+ 8 files changed, 15 insertions(+), 15 deletions(-)
+
+diff --git a/libc/sysdeps/linux/alpha/bits/stat.h b/libc/sysdeps/linux/alpha/bits/stat.h
+index 88bc6617d..f2dca250d 100644
+--- a/libc/sysdeps/linux/alpha/bits/stat.h
++++ b/libc/sysdeps/linux/alpha/bits/stat.h
+@@ -40,7 +40,7 @@
+ 
+    Use neat tidy anonymous unions and structures when possible.  */
+ 
+-#ifdef __USE_MISC
++#if defined(__USE_MISC) || defined(__USE_XOPEN2K8)
+ # if __GNUC_PREREQ(3,3)
+ #  define __ST_TIME(X)				\
+ 	__extension__ union {			\
+diff --git a/libc/sysdeps/linux/common/bits/stat.h b/libc/sysdeps/linux/common/bits/stat.h
+index 07c09f50a..fc76cc3e7 100644
+--- a/libc/sysdeps/linux/common/bits/stat.h
++++ b/libc/sysdeps/linux/common/bits/stat.h
+@@ -61,7 +61,7 @@ struct stat
+ #else
+     __blkcnt64_t st_blocks;		/* Number 512-byte blocks allocated. */
+ #endif
+-#ifdef __USE_MISC
++#if defined(__USE_MISC) || defined(__USE_XOPEN2K8)
+     /* Nanosecond resolution timestamps are stored in a format
+        equivalent to 'struct timespec'.  This is the type used
+        whenever possible but the Unix namespace rules do not allow the
+@@ -107,7 +107,7 @@ struct stat64
+     __blksize_t st_blksize;		/* Optimal block size for I/O.  */
+ 
+     __blkcnt64_t st_blocks;		/* Number 512-byte blocks allocated. */
+-#ifdef __USE_MISC
++#if defined(__USE_MISC) || defined(__USE_XOPEN2K8)
+     /* Nanosecond resolution timestamps are stored in a format
+        equivalent to 'struct timespec'.  This is the type used
+        whenever possible but the Unix namespace rules do not allow the
+diff --git a/libc/sysdeps/linux/frv/bits/stat.h b/libc/sysdeps/linux/frv/bits/stat.h
+index 381d207f2..18321c080 100644
+--- a/libc/sysdeps/linux/frv/bits/stat.h
++++ b/libc/sysdeps/linux/frv/bits/stat.h
+@@ -70,7 +70,7 @@ struct stat
+     __blkcnt64_t st_blocks;		/* Number 512-byte blocks allocated. */
+ #endif
+ 
+-#ifdef __USE_MISC
++#if defined(__USE_MISC) || defined(__USE_XOPEN2K8)
+     /* Nanosecond resolution timestamps are stored in a format
+        equivalent to 'struct timespec'.  This is the type used
+        whenever possible but the Unix namespace rules do not allow the
+@@ -117,7 +117,7 @@ struct stat64
+     __blksize_t st_blksize;		/* Optimal block size for I/O.  */
+ 
+     __blkcnt64_t st_blocks;		/* Number 512-byte blocks allocated. */
+-#ifdef __USE_MISC
++#if defined(__USE_MISC) || defined(__USE_XOPEN2K8)
+     /* Nanosecond resolution timestamps are stored in a format
+        equivalent to 'struct timespec'.  This is the type used
+        whenever possible but the Unix namespace rules do not allow the
+diff --git a/libc/sysdeps/linux/ia64/bits/stat.h b/libc/sysdeps/linux/ia64/bits/stat.h
+index 6723166e7..2b70b8cf8 100644
+--- a/libc/sysdeps/linux/ia64/bits/stat.h
++++ b/libc/sysdeps/linux/ia64/bits/stat.h
+@@ -38,7 +38,7 @@ struct stat
+     int pad0;
+     __dev_t st_rdev;		/* Device number, if device.  */
+     __off_t st_size;		/* Size of file, in bytes.  */
+-#ifdef __USE_MISC
++#if defined(__USE_MISC) || defined(__USE_XOPEN2K8)
+     /* Nanosecond resolution timestamps are stored in a format
+        equivalent to 'struct timespec'.  This is the type used
+        whenever possible but the Unix namespace rules do not allow the
+@@ -77,7 +77,7 @@ struct stat64
+     int pad0;
+     __dev_t st_rdev;		/* Device number, if device.  */
+     __off_t st_size;		/* Size of file, in bytes.  */
+-#ifdef __USE_MISC
++#if defined(__USE_MISC) || defined(__USE_XOPEN2K8)
+     /* Nanosecond resolution timestamps are stored in a format
+        equivalent to 'struct timespec'.  This is the type used
+        whenever possible but the Unix namespace rules do not allow the
+diff --git a/libc/sysdeps/linux/m68k/bits/stat.h b/libc/sysdeps/linux/m68k/bits/stat.h
+index 7b9c3d144..70da1b384 100644
+--- a/libc/sysdeps/linux/m68k/bits/stat.h
++++ b/libc/sysdeps/linux/m68k/bits/stat.h
+@@ -60,7 +60,7 @@ struct stat
+ #else
+     __blkcnt64_t st_blocks;		/* Number 512-byte blocks allocated. */
+ #endif
+-#ifdef __USE_MISC
++#if defined(__USE_MISC) || defined(__USE_XOPEN2K8)
+     /* Nanosecond resolution timestamps are stored in a format
+        equivalent to 'struct timespec'.  This is the type used
+        whenever possible but the Unix namespace rules do not allow the
+@@ -106,7 +106,7 @@ struct stat64
+     __blksize_t st_blksize;		/* Optimal block size for I/O.  */
+ 
+     __blkcnt64_t st_blocks;		/* Number 512-byte blocks allocated. */
+-#ifdef __USE_MISC
++#if defined(__USE_MISC) || defined(__USE_XOPEN2K8)
+     /* Nanosecond resolution timestamps are stored in a format
+        equivalent to 'struct timespec'.  This is the type used
+        whenever possible but the Unix namespace rules do not allow the
+diff --git a/libc/sysdeps/linux/mips/bits/stat.h b/libc/sysdeps/linux/mips/bits/stat.h
+index 539fa33d2..bad2a0244 100644
+--- a/libc/sysdeps/linux/mips/bits/stat.h
++++ b/libc/sysdeps/linux/mips/bits/stat.h
+@@ -60,7 +60,7 @@ struct stat
+     long int st_pad2[2];
+     __off64_t st_size;		/* Size of file, in bytes.  */
+ #endif
+-#ifdef __USE_MISC
++#if defined(__USE_MISC) || defined(__USE_XOPEN2K8)
+     /* Nanosecond resolution timestamps are stored in a format
+        equivalent to 'struct timespec'.  This is the type used
+        whenever possible but the Unix namespace rules do not allow the
+@@ -103,7 +103,7 @@ struct stat {
+     unsigned int st_rdev;	/* Device number, if device.  */
+     int st_pad2[3];
+     __off_t st_size;		/* Size of file, in bytes.  */
+-#ifdef __USE_MISC
++#if defined(__USE_MISC) || defined(__USE_XOPEN2K8)
+     /* Nanosecond resolution timestamps are stored in a format
+        equivalent to 'struct timespec'.  This is the type used
+        whenever possible but the Unix namespace rules do not allow the
+diff --git a/libc/sysdeps/linux/nds32/bits/stat.h b/libc/sysdeps/linux/nds32/bits/stat.h
+index c4e09e0f2..5272751f4 100644
+--- a/libc/sysdeps/linux/nds32/bits/stat.h
++++ b/libc/sysdeps/linux/nds32/bits/stat.h
+@@ -64,7 +64,7 @@ struct stat
+ #else
+     __blkcnt64_t st_blocks;		/* Number 512-byte blocks allocated. */
+ #endif
+-#ifdef __USE_MISC
++#if defined(__USE_MISC) || defined(__USE_XOPEN2K8)
+     /* Nanosecond resolution timestamps are stored in a format
+        equivalent to 'struct timespec'.  This is the type used
+        whenever possible but the Unix namespace rules do not allow the
+@@ -110,7 +110,7 @@ struct stat64
+     __blksize_t st_blksize;		/* Optimal block size for I/O.  */
+ 
+     __blkcnt64_t st_blocks;		/* Number 512-byte blocks allocated. */
+-#ifdef __USE_MISC
++#if defined(__USE_MISC) || defined(__USE_XOPEN2K8)
+     /* Nanosecond resolution timestamps are stored in a format
+        equivalent to 'struct timespec'.  This is the type used
+        whenever possible but the Unix namespace rules do not allow the
+diff --git a/libc/sysdeps/linux/powerpc/bits/stat.h b/libc/sysdeps/linux/powerpc/bits/stat.h
+index 7494586b5..ce2ebf896 100644
+--- a/libc/sysdeps/linux/powerpc/bits/stat.h
++++ b/libc/sysdeps/linux/powerpc/bits/stat.h
+@@ -59,7 +59,7 @@ struct stat
+ # else
+     __blkcnt64_t st_blocks;		/* Number 512-byte blocks allocated. */
+ # endif
+-#ifdef __USE_MISC
++#if defined(__USE_MISC) || defined(__USE_XOPEN2K8)
+     /* Nanosecond resolution timestamps are stored in a format
+        equivalent to 'struct timespec'.  This is the type used
+        whenever possible but the Unix namespace rules do not allow the
+@@ -99,7 +99,7 @@ struct stat64
+     __off64_t st_size;			/* Size of file, in bytes.  */
+     __blksize_t st_blksize;		/* Optimal block size for I/O.  */
+     __blkcnt64_t st_blocks;		/* Number 512-byte blocks allocated. */
+-#ifdef __USE_MISC
++#if defined(__USE_MISC) || defined(__USE_XOPEN2K8)
+     /* Nanosecond resolution timestamps are stored in a format
+        equivalent to 'struct timespec'.  This is the type used
+        whenever possible but the Unix namespace rules do not allow the
+-- 
+2.30.2
+
-- 
2.30.2

_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot

^ permalink raw reply related	[flat|nested] 6+ messages in thread

end of thread, other threads:[~2024-08-12 19:28 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2024-08-05  6:20 [Buildroot] [PATCH v2] package/uclibc: fix missing m_tim issue Waldemar Brodkorb
2024-08-05  7:15 ` Thomas Petazzoni via buildroot
2024-08-06  5:43 ` Baruch Siach via buildroot
2024-08-06 10:45   ` Waldemar Brodkorb
2024-08-06 22:57     ` J. Neuschäfer via buildroot
2024-08-12 19:27 ` Thomas Petazzoni via buildroot

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.