summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMike Gilbert <floppym@gentoo.org>2021-09-23 14:47:53 -0400
committerMike Gilbert <floppym@gentoo.org>2021-09-23 14:47:53 -0400
commitabe655fe66964de0a45e8d0c158bdf3958cdfd1c (patch)
tree7dad6a52cf1f9621ea1d4659dc770e9f7f7585d6 /sys-boot
parentx11-wm/spectrwm: drop unused inherits (diff)
downloadgentoo-abe655fe66964de0a45e8d0c158bdf3958cdfd1c.tar.gz
gentoo-abe655fe66964de0a45e8d0c158bdf3958cdfd1c.tar.bz2
gentoo-abe655fe66964de0a45e8d0c158bdf3958cdfd1c.zip
sys-boot/grub: fix xen build with binutils-2.36
Closes: https://bugs.gentoo.org/787221 Signed-off-by: Mike Gilbert <floppym@gentoo.org>
Diffstat (limited to 'sys-boot')
-rw-r--r--sys-boot/grub/files/grub-2.06-binutils-2.36.patch44
-rw-r--r--sys-boot/grub/grub-2.06-r1.ebuild3
2 files changed, 46 insertions, 1 deletions
diff --git a/sys-boot/grub/files/grub-2.06-binutils-2.36.patch b/sys-boot/grub/files/grub-2.06-binutils-2.36.patch
new file mode 100644
index 000000000000..5cb327003adb
--- /dev/null
+++ b/sys-boot/grub/files/grub-2.06-binutils-2.36.patch
@@ -0,0 +1,44 @@
+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)
diff --git a/sys-boot/grub/grub-2.06-r1.ebuild b/sys-boot/grub/grub-2.06-r1.ebuild
index d80b215cc471..4224c4f643f1 100644
--- a/sys-boot/grub/grub-2.06-r1.ebuild
+++ b/sys-boot/grub/grub-2.06-r1.ebuild
@@ -17,10 +17,10 @@ EAPI=7
# corresponding variable in make.conf or the environment.
if [[ ${PV} == 9999 ]]; then
- GRUB_AUTORECONF=1
GRUB_BOOTSTRAP=1
fi
+GRUB_AUTORECONF=1
PYTHON_COMPAT=( python{2_7,3_{6,7,8,9}} )
WANT_LIBTOOL=none
@@ -55,6 +55,7 @@ PATCHES=(
"${FILESDIR}"/gfxpayload.patch
"${FILESDIR}"/grub-2.02_beta2-KERNEL_GLOBS.patch
"${FILESDIR}"/grub-2.06-test-words.patch
+ "${FILESDIR}"/grub-2.06-binutils-2.36.patch
)
DEJAVU=dejavu-sans-ttf-2.37