sys-boot/grub: remove unused patches
Signed-off-by: Michael Mair-Keimberger <mmk@levelnine.at> Closes: https://github.com/gentoo/gentoo/pull/27516 Signed-off-by: Mike Gilbert <floppym@gentoo.org>
This commit is contained in:
parent
5fabc1f772
commit
7719b94e9a
|
@ -1,44 +0,0 @@
|
|||
From 5cea201f288246488e2189c49d969d00ebec2898 Mon Sep 17 00:00:00 2001
|
||||
From: Michael Chang <mchang@suse.com>
|
||||
Date: Fri, 19 Feb 2021 17:40:43 +0800
|
||||
Subject: [PATCH] Fix build error in binutils 2.36
|
||||
|
||||
The build fails in binutils 2.36
|
||||
|
||||
[ 520s] cat kernel_syms.lst > syminfo.lst.new
|
||||
[ 520s] /usr/lib64/gcc/x86_64-suse-linux/10/../../../../x86_64-suse-linux/bin/ld: section .note.gnu.property VMA [0000000000400158,0000000000400187] overlaps section .bss VMA [000000000000f000,000000000041e1af]
|
||||
|
||||
It is caused by assembler now generates the GNU property notes section
|
||||
by default. Use the assmbler option -mx86-used-note=no to disable the
|
||||
section from being generated to workaround the ensuing linker issue.
|
||||
|
||||
Signed-off-by: Michael Chang <mchang@suse.com>
|
||||
---
|
||||
configure.ac | 14 ++++++++++++++
|
||||
1 file changed, 14 insertions(+)
|
||||
|
||||
diff --git a/configure.ac b/configure.ac
|
||||
index fa8f74bb9..38ee5f579 100644
|
||||
--- a/configure.ac
|
||||
+++ b/configure.ac
|
||||
@@ -836,6 +836,20 @@ if ( test "x$target_cpu" = xi386 || test "x$target_cpu" = xx86_64 ) && test "x$p
|
||||
TARGET_CFLAGS="$TARGET_CFLAGS -mno-mmx -mno-sse -mno-sse2 -mno-sse3 -mno-3dnow"
|
||||
fi
|
||||
|
||||
+if ( test "x$target_cpu" = xi386 || test "x$target_cpu" = xx86_64 ); then
|
||||
+ AC_CACHE_CHECK([whether -Wa,-mx86-used-note works], [grub_cv_cc_mx86_used_note], [
|
||||
+ CFLAGS="$TARGET_CFLAGS -Wa,-mx86-used-note=no -Werror"
|
||||
+ AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[]], [[]])],
|
||||
+ [grub_cv_cc_mx86_used_note=yes],
|
||||
+ [grub_cv_cc_mx86_used_note=no])
|
||||
+ ])
|
||||
+
|
||||
+ if test "x$grub_cv_cc_mx86_used_note" = xyes; then
|
||||
+ TARGET_CFLAGS="$TARGET_CFLAGS -Wa,-mx86-used-note=no"
|
||||
+ TARGET_CCASFLAGS="$TARGET_CCASFLAGS -Wa,-mx86-used-note=no"
|
||||
+ fi
|
||||
+fi
|
||||
+
|
||||
# GRUB doesn't use float or doubles at all. Yet some toolchains may decide
|
||||
# that floats are a good fit to run instead of what's written in the code.
|
||||
# Given that floating point unit is disabled (if present to begin with)
|
|
@ -1,120 +0,0 @@
|
|||
From a4b495520e4dc41a896a8b916a64eda9970c50ea Mon Sep 17 00:00:00 2001
|
||||
From: Erwan Velu <erwanaliasr1@gmail.com>
|
||||
Date: Wed, 25 Aug 2021 15:31:52 +0200
|
||||
Subject: fs/xfs: Fix unreadable filesystem with v4 superblock
|
||||
|
||||
The commit 8b1e5d193 (fs/xfs: Add bigtime incompat feature support)
|
||||
introduced the bigtime support by adding some features in v3 inodes.
|
||||
This change extended grub_xfs_inode struct by 76 bytes but also changed
|
||||
the computation of XFS_V2_INODE_SIZE and XFS_V3_INODE_SIZE. Prior this
|
||||
commit, XFS_V2_INODE_SIZE was 100 bytes. After the commit it's 84 bytes
|
||||
XFS_V2_INODE_SIZE becomes 16 bytes too small.
|
||||
|
||||
As a result, the data structures aren't properly aligned and the GRUB
|
||||
generates "attempt to read or write outside of partition" errors when
|
||||
trying to read the XFS filesystem:
|
||||
|
||||
GNU GRUB version 2.11
|
||||
....
|
||||
grub> set debug=efi,gpt,xfs
|
||||
grub> insmod part_gpt
|
||||
grub> ls (hd0,gpt1)/
|
||||
partmap/gpt.c:93: Read a valid GPT header
|
||||
partmap/gpt.c:115: GPT entry 0: start=4096, length=1953125
|
||||
fs/xfs.c:931: Reading sb
|
||||
fs/xfs.c:270: Validating superblock
|
||||
fs/xfs.c:295: XFS v4 superblock detected
|
||||
fs/xfs.c:962: Reading root ino 128
|
||||
fs/xfs.c:515: Reading inode (128) - 64, 0
|
||||
fs/xfs.c:515: Reading inode (739521961424144223) - 344365866970255880, 3840
|
||||
error: attempt to read or write outside of partition.
|
||||
|
||||
This commit change the XFS_V2_INODE_SIZE computation by subtracting 76
|
||||
bytes instead of 92 bytes from the actual size of grub_xfs_inode struct.
|
||||
This 76 bytes value comes from added members:
|
||||
20 grub_uint8_t unused5
|
||||
1 grub_uint64_t flags2
|
||||
48 grub_uint8_t unused6
|
||||
|
||||
This patch explicitly splits the v2 and v3 parts of the structure.
|
||||
The unused4 is still ending of the v2 structures and the v3 starts
|
||||
at unused5. Thanks to this we will avoid future corruptions of v2
|
||||
or v3 inodes.
|
||||
|
||||
The XFS_V2_INODE_SIZE is returning to its expected size and the
|
||||
filesystem is back to a readable state:
|
||||
|
||||
GNU GRUB version 2.11
|
||||
....
|
||||
grub> set debug=efi,gpt,xfs
|
||||
grub> insmod part_gpt
|
||||
grub> ls (hd0,gpt1)/
|
||||
partmap/gpt.c:93: Read a valid GPT header
|
||||
partmap/gpt.c:115: GPT entry 0: start=4096, length=1953125
|
||||
fs/xfs.c:931: Reading sb
|
||||
fs/xfs.c:270: Validating superblock
|
||||
fs/xfs.c:295: XFS v4 superblock detected
|
||||
fs/xfs.c:962: Reading root ino 128
|
||||
fs/xfs.c:515: Reading inode (128) - 64, 0
|
||||
fs/xfs.c:515: Reading inode (128) - 64, 0
|
||||
fs/xfs.c:931: Reading sb
|
||||
fs/xfs.c:270: Validating superblock
|
||||
fs/xfs.c:295: XFS v4 superblock detected
|
||||
fs/xfs.c:962: Reading root ino 128
|
||||
fs/xfs.c:515: Reading inode (128) - 64, 0
|
||||
fs/xfs.c:515: Reading inode (128) - 64, 0
|
||||
fs/xfs.c:515: Reading inode (128) - 64, 0
|
||||
fs/xfs.c:515: Reading inode (131) - 64, 768
|
||||
efi/ fs/xfs.c:515: Reading inode (3145856) - 1464904, 0
|
||||
grub2/ fs/xfs.c:515: Reading inode (132) - 64, 1024
|
||||
grub/ fs/xfs.c:515: Reading inode (139) - 64, 2816
|
||||
grub>
|
||||
|
||||
Fixes: 8b1e5d193 (fs/xfs: Add bigtime incompat feature support)
|
||||
|
||||
Signed-off-by: Erwan Velu <e.velu@criteo.com>
|
||||
Tested-by: Carlos Maiolino <cmaiolino@redhat.com>
|
||||
Reviewed-by: Daniel Kiper <daniel.kiper@oracle.com>
|
||||
---
|
||||
grub-core/fs/xfs.c | 14 ++++++++++----
|
||||
1 file changed, 10 insertions(+), 4 deletions(-)
|
||||
|
||||
diff --git a/grub-core/fs/xfs.c b/grub-core/fs/xfs.c
|
||||
index 0f524c3a8..e3816d1ec 100644
|
||||
--- a/grub-core/fs/xfs.c
|
||||
+++ b/grub-core/fs/xfs.c
|
||||
@@ -192,6 +192,11 @@ struct grub_xfs_time_legacy
|
||||
grub_uint32_t nanosec;
|
||||
} GRUB_PACKED;
|
||||
|
||||
+/*
|
||||
+ * The struct grub_xfs_inode layout was taken from the
|
||||
+ * struct xfs_dinode_core which is described here:
|
||||
+ * https://mirrors.edge.kernel.org/pub/linux/utils/fs/xfs/docs/xfs_filesystem_structure.pdf
|
||||
+ */
|
||||
struct grub_xfs_inode
|
||||
{
|
||||
grub_uint8_t magic[2];
|
||||
@@ -208,14 +213,15 @@ struct grub_xfs_inode
|
||||
grub_uint32_t nextents;
|
||||
grub_uint16_t unused3;
|
||||
grub_uint8_t fork_offset;
|
||||
- grub_uint8_t unused4[37];
|
||||
+ grub_uint8_t unused4[17]; /* Last member of inode v2. */
|
||||
+ grub_uint8_t unused5[20]; /* First member of inode v3. */
|
||||
grub_uint64_t flags2;
|
||||
- grub_uint8_t unused5[48];
|
||||
+ grub_uint8_t unused6[48]; /* Last member of inode v3. */
|
||||
} GRUB_PACKED;
|
||||
|
||||
#define XFS_V3_INODE_SIZE sizeof(struct grub_xfs_inode)
|
||||
-/* Size of struct grub_xfs_inode until fork_offset (included). */
|
||||
-#define XFS_V2_INODE_SIZE (XFS_V3_INODE_SIZE - 92)
|
||||
+/* Size of struct grub_xfs_inode v2, up to unused4 member included. */
|
||||
+#define XFS_V2_INODE_SIZE (XFS_V3_INODE_SIZE - 76)
|
||||
|
||||
struct grub_xfs_dirblock_tail
|
||||
{
|
||||
--
|
||||
cgit v1.2.1
|
||||
|
Loading…
Reference in New Issue