All of lore.kernel.org
 help / color / mirror / Atom feed
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

  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 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.