> On 17 Nov 2025, at 12:32 AM, Nicholas Vinson <[email protected]> wrote: > > 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: 67662 > Signed-off-by: Nicholas Vinson <[email protected]>
Reviewed-by: Sudhakar Kuppusamy <[email protected]> Thanks, Sudhakar > --- > 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..c9e2c5b8c 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"], > + [], > + [[ > +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.51.2 > > > _______________________________________________ > Grub-devel mailing list > [email protected] > https://lists.gnu.org/mailman/listinfo/grub-devel _______________________________________________ Grub-devel mailing list [email protected] https://lists.gnu.org/mailman/listinfo/grub-devel
