Merge updates from master

This commit is contained in:
Repository mirror & CI
2026-01-04 16:45:53 +00:00
4 changed files with 3 additions and 94 deletions

View File

@@ -1,83 +0,0 @@
https://bugs.gentoo.org/965424
From 1a5417f39a0ccefcdd5440f2a67f84d2d2e26960 Mon Sep 17 00:00:00 2001
From: Nicholas Vinson <nvinson234@gmail.com>
Date: Tue, 18 Nov 2025 19:38:07 -0500
Subject: [PATCH] configure: Check linker for --image-base support
In several scenarios, configure tests assume it's safe to use
"-Wl,-Ttext,<address>", but starting with ld.lld-21, blindly using that
flag may result in configure-test failures due to ld.lld failing to
link. The failure is because ld.lld-21 no longer allows the specified
address is less than the base address.
However, ld.lld-21+ and ld.bfd-2.44+ both provide support for the
--image-base flag making it preferable over the older -Ttext flag.
Fixes: https://savannah.gnu.org/bugs/?67662
Signed-off-by: Nicholas Vinson <nvinson234@gmail.com>
Reviewed-by: Daniel Kiper <daniel.kiper@oracle.com>
---
acinclude.m4 | 5 +++++
configure.ac | 14 ++++++++++++--
2 files changed, 17 insertions(+), 2 deletions(-)
diff --git a/acinclude.m4 b/acinclude.m4
index fa7840f09..70c1912f8 100644
--- a/acinclude.m4
+++ b/acinclude.m4
@@ -79,6 +79,11 @@ AC_DEFUN([grub_PROG_OBJCOPY_ABSOLUTE],
[AC_MSG_CHECKING([whether ${TARGET_OBJCOPY} works for absolute addresses])
AC_CACHE_VAL(grub_cv_prog_objcopy_absolute,
[cat > conftest.c <<\EOF
+asm (
+ ".globl start, _start, __start\n"
+ ".ifdef cmain; .set start = _start = __start = cmain\n.endif\n"
+ ".ifdef _cmain; .set start = _start = __start = _cmain\n.endif\n"
+);
void cmain (void);
void
cmain (void)
diff --git a/configure.ac b/configure.ac
index 17937baf4..a282bf7bf 100644
--- a/configure.ac
+++ b/configure.ac
@@ -1461,7 +1461,6 @@ elif test x$grub_cv_target_cc_link_format = x-mi386pe || test x$grub_cv_target_c
TARGET_IMG_LDSCRIPT='$(top_srcdir)'"/conf/i386-cygwin-img-ld.sc"
TARGET_IMG_LDFLAGS="-Wl,-T${TARGET_IMG_LDSCRIPT}"
TARGET_IMG_LDFLAGS_AC="-Wl,-T${srcdir}/conf/i386-cygwin-img-ld.sc"
- TARGET_IMG_BASE_LDOPT="-Wl,-Ttext"
TARGET_IMG_CFLAGS=
else
TARGET_APPLE_LINKER=0
@@ -1469,7 +1468,6 @@ else
TARGET_IMG_LDSCRIPT=
TARGET_IMG_LDFLAGS='-Wl,-N'
TARGET_IMG_LDFLAGS_AC='-Wl,-N'
- TARGET_IMG_BASE_LDOPT="-Wl,-Ttext"
TARGET_IMG_CFLAGS=
fi
@@ -1795,6 +1793,18 @@ LIBS=""
grub_ASM_USCORE
grub_PROG_TARGET_CC
if test "x$TARGET_APPLE_LINKER" != x1 ; then
+AX_CHECK_LINK_FLAG([-Wl,--image-base,0x400000],
+ [TARGET_IMG_BASE_LDOPT="-Wl,--image-base"],
+ [TARGET_IMG_BASE_LDOPT="-Wl,-Ttext"],
+ [],
+ [AC_LANG_SOURCE([
+asm (".globl start; start:");
+asm (".globl _start; _start:");
+asm (".globl __start; __start:");
+void __main (void);
+void __main (void) {}
+int main (void);
+ ])])
grub_PROG_OBJCOPY_ABSOLUTE
fi
grub_PROG_LD_BUILD_ID_NONE
--
2.52.0

View File

@@ -24,7 +24,6 @@ VERIFY_SIG_OPENPGP_KEY_PATH=/usr/share/openpgp-keys/grub.asc
if [[ -n ${GRUB_AUTORECONF} ]]; then
inherit autotools
BDEPEND+=" dev-build/autoconf-archive"
fi
inherit bash-completion-r1 eapi9-ver flag-o-matic multibuild optfeature
@@ -34,7 +33,6 @@ DESCRIPTION="GNU GRUB boot loader"
HOMEPAGE="https://www.gnu.org/software/grub/"
MY_P=${P}
if [[ ${PV} != 9999 ]]; then
inherit verify-sig
@@ -54,7 +52,7 @@ if [[ ${PV} != 9999 ]]; then
"
S=${WORKDIR}/${P%_*}
fi
BDEPEND+=" verify-sig? ( sec-keys/openpgp-keys-grub )"
BDEPEND="verify-sig? ( sec-keys/openpgp-keys-grub )"
KEYWORDS="amd64 arm arm64 ~loong ppc ppc64 ~riscv ~sparc x86"
else
inherit git-r3
@@ -69,7 +67,6 @@ PATCHES=(
"${WORKDIR}"/grub-2.12-bash-completion.patch
"${FILESDIR}"/grub-2.12-zfs-zstd-compression-support.patch
"${FILESDIR}"/grub-2.12-fix-for-bash-completion-_split_longopt.patch
"${FILESDIR}"/grub-2.12-image-base.patch
)
DEJAVU=dejavu-sans-ttf-2.37

View File

@@ -26,7 +26,6 @@ WANT_LIBTOOL=none
if [[ -n ${GRUB_AUTORECONF} ]]; then
inherit autotools
BDEPEND+=" dev-build/autoconf-archive"
fi
inherit bash-completion-r1 eapi9-ver flag-o-matic multibuild optfeature
@@ -36,7 +35,6 @@ DESCRIPTION="GNU GRUB boot loader"
HOMEPAGE="https://www.gnu.org/software/grub/"
MY_P=${P}
if [[ ${PV} != 9999 ]]; then
if [[ ${PV} == *_alpha* || ${PV} == *_beta* || ${PV} == *_rc* ]]; then
# The quote style is to work with <=bash-4.2 and >=bash-4.3 #503860
@@ -53,7 +51,7 @@ if [[ ${PV} != 9999 ]]; then
"
S=${WORKDIR}/${P%_*}
fi
BDEPEND+="
BDEPEND="
verify-sig? (
sec-keys/openpgp-keys-grub
sec-keys/openpgp-keys-unifont
@@ -70,7 +68,6 @@ PATCHES=(
"${FILESDIR}"/grub-2.02_beta2-KERNEL_GLOBS.patch
"${FILESDIR}"/grub-2.06-test-words.patch
"${FILESDIR}"/grub-2.14_rc1-configure.ac-avoid-bashisms.patch
"${FILESDIR}"/grub-2.12-image-base.patch
)
DEJAVU_VER=2.37

View File

@@ -26,7 +26,6 @@ WANT_LIBTOOL=none
if [[ -n ${GRUB_AUTORECONF} ]]; then
inherit autotools
BDEPEND+=" dev-build/autoconf-archive"
fi
inherit bash-completion-r1 eapi9-ver flag-o-matic multibuild optfeature
@@ -36,7 +35,6 @@ DESCRIPTION="GNU GRUB boot loader"
HOMEPAGE="https://www.gnu.org/software/grub/"
MY_P=${P}
if [[ ${PV} != 9999 ]]; then
if [[ ${PV} == *_alpha* || ${PV} == *_beta* || ${PV} == *_rc* ]]; then
# The quote style is to work with <=bash-4.2 and >=bash-4.3 #503860
@@ -53,7 +51,7 @@ if [[ ${PV} != 9999 ]]; then
"
S=${WORKDIR}/${P%_*}
fi
BDEPEND+="
BDEPEND="
verify-sig? (
sec-keys/openpgp-keys-grub
sec-keys/openpgp-keys-unifont