From: Baruch Siach via buildroot <buildroot@buildroot.org>
To: Waldemar Brodkorb <wbx@openadk.org>
Cc: "J. Neuschäfer" <j.neuschaefer@gmx.net>, buildroot@buildroot.org
Subject: Re: [Buildroot] [PATCH v2] package/uclibc: fix missing m_tim issue
Date: Tue, 06 Aug 2024 08:43:42 +0300 [thread overview]
Message-ID: <87cymm2okx.fsf@tarshish> (raw)
In-Reply-To: <ZrBvFLSlPYjjwCKj@waldemar-brodkorb.de> (Waldemar Brodkorb's message of "Mon, 5 Aug 2024 08:20:04 +0200")
Hi Waldemar,
On Mon, Aug 05 2024, Waldemar Brodkorb wrote:
> Patch from upstream to fix missing m_tim issue.
>
> Fixes:
> - http://autobuild.buildroot.org/results/f07d6d6ae2331f9972974093c0503b9d3c6b914a/
The autobuilder started showing failures like:
In file included from /home/autobuild/autobuild/instance-12/output-1/host/mips64el-buildroot-linux-uclibc/sysroot/usr/include/sys/stat.h:106,
from /home/autobuild/autobuild/instance-12/output-1/host/mips64el-buildroot-linux-uclibc/sysroot/usr/include/fcntl.h:37,
from libslack/fio.c:72:
/home/autobuild/autobuild/instance-12/output-1/host/mips64el-buildroot-linux-uclibc/sysroot/usr/include/bits/stat.h:201:9: error: expected ':', ',', ';', '}' or '__attribute__' before '.' token
201 | int st_atime;
| ^~~~~~~~
This is from
http://autobuild.buildroot.net/results/f3b3942b6b645d9523ab08d179a3f8aca7d6641c/
Is this patch related to that issue?
Thanks,
baruch
>
> 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
> +
--
~. .~ Tk Open Systems
=}------------------------------------------------ooO--U--Ooo------------{=
- baruch@tkos.co.il - tel: +972.52.368.4656, http://www.tkos.co.il -
_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot
next prev parent reply other threads:[~2024-08-06 5:43 UTC|newest]
Thread overview: 6+ messages / expand[flat|nested] mbox.gz Atom feed top
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 [this message]
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
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=87cymm2okx.fsf@tarshish \
--to=buildroot@buildroot.org \
--cc=baruch@tkos.co.il \
--cc=j.neuschaefer@gmx.net \
--cc=wbx@openadk.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox