package/glibc: fix struct stat for microblaze with largefile

On microblaze, there is a separate version of struct stat for largefile
and for non-largefile. When the struct was updated to include the
st_mtim, st_atim and st_ctim members for POSIX, the largefile version
was forgotten. Since we only use largefile in Buildroot, that means that
microblaze didn't have these members in struct stat. This breaks the
build of some packages.

Change the define around st_mtim etc. to __USE_XOPEN2K8 to enable it in
posix context (i.e. by default).

Fixes:
 - http://autobuild.buildroot.org/results/dd944a3bd4ac0c94b2bec8ac209100daaf43903d (zstd)
 - http://autobuild.buildroot.org/results/4609c8e2af24d9536eb33397a4659ad740aca742 (dieharder)

Signed-off-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be>
Cc: Fabrice Fontaine <fontaine.fabrice@gmail.com>
Cc: Romain Naour <romain.naour@gmail.com>
Reviewed-by: Romain Naour <romain.naour@smile.fr>
This commit is contained in:
Arnout Vandecappelle (Essensium/Mind) 2022-07-25 12:02:16 +02:00
parent 68bca98ee8
commit 5399a7a55b

View File

@ -0,0 +1,37 @@
From 87d415cc133ff493ccd02464c061cb171d11ef2f Mon Sep 17 00:00:00 2001
From: "Arnout Vandecappelle (Essensium/Mind)" <arnout@mind.be>
Date: Mon, 25 Jul 2022 11:25:15 +0200
Subject: [PATCH] struct stat is not posix conformant on microblaze with
__USE_FILE_OFFSET64
Commit a06b40cdf5ba0d2ab4f9b4c77d21e45ff284fac7 updated stat.h to use
__USE_XOPEN2K8 instead of __USE_MISC to add the st_atim, st_mtim and
st_ctim members to struct stat. However, for microblaze, there are two
definitions of struct stat, depending on the __USE_FILE_OFFSET64 macro.
The second one was not updated.
Change __USE_MISC to __USE_XOPEN2K8 in the __USE_FILE_OFFSET64 version
of struct stat for microblaze.
Upstream: https://sourceware.org/bugzilla/show_bug.cgi?id=29403
Signed-off-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be>
---
sysdeps/unix/sysv/linux/microblaze/bits/struct_stat.h | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/sysdeps/unix/sysv/linux/microblaze/bits/struct_stat.h b/sysdeps/unix/sysv/linux/microblaze/bits/struct_stat.h
index a2787e88343..850697f4fa6 100644
--- a/sysdeps/unix/sysv/linux/microblaze/bits/struct_stat.h
+++ b/sysdeps/unix/sysv/linux/microblaze/bits/struct_stat.h
@@ -89,7 +89,7 @@ struct stat
__blksize_t st_blksize; /* Optimal block size for I/O. */
int __pad3;
__blkcnt64_t st_blocks; /* Number 512-byte blocks allocated. */
-# ifdef __USE_MISC
+# ifdef __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.35.3