On Sun, May 24, 2026 at 4:43 AM Paulo Duarte <[email protected]> wrote:
>
> The aarch64 port builds gnumach as a static-PIE so the bootloader
> can place it at any 2 MiB-aligned address in RAM (per the Linux
> arm64 boot protocol).  That introduces a handful of additional
> linker-provided symbols (__rela_start, __rela_end, __bss_start,
> __bss_end, _image_end, __text_start) plus a GOT reference
> (_GLOBAL_OFFSET_TABLE_) which appear as undefined in gnumach.o
> before the final link.
>
> Add these to the undef-check filter so the aarch64 build no longer
> fails the gnumach-undef-bad sanity check.  On i386/x86_64 the
> kernel doesn't reference any of these symbols, so the additional
> filter entries are a no-op there.

This too is my code that you're submitting, right? If so, it should
say that somewhere in the mail header (From: or something) or at least
be mentioned in the commit message.

> ---
>  Makefile.am | 5 +++--
>  1 file changed, 3 insertions(+), 2 deletions(-)
>
> diff --git a/Makefile.am b/Makefile.am
> index 6f21e55e..57e80ef4 100644
> --- a/Makefile.am
> +++ b/Makefile.am
> @@ -175,12 +175,13 @@ noinst_PROGRAMS += \
>  # This is the list of routines we use from libgcc.
>  libgcc_routines := udivdi3 __udivdi3 __udivmoddi4 __umoddi3 __divdi3 
> __divmoddi4 __moddi3 __ffsdi2
>  # References generated by ld.
> -ld_magic_routines := __rel_iplt_start __rel_iplt_end __rela_iplt_start 
> __rela_iplt_end _START etext _edata _end
> +ld_magic_routines := __rel_iplt_start __rel_iplt_end __rela_iplt_start 
> __rela_iplt_end __rela_start __rela_end \
> +       _START etext _edata _end __bss_start __bss_end _image_end __text_start
>  gnumach-undef: gnumach.$(OBJEXT)
>         $(NM_V) $(NM) -u $< | sed 's/  *U  *//' | sort -u > $@
>  MOSTLYCLEANFILES += gnumach-undef
>  gnumach-undef-bad: gnumach-undef Makefile
> -       $(AM_V_GEN) sed '$(foreach r,$(libgcc_routines) 
> $(ld_magic_routines),/^$r$$/d;)' $< > $@
> +       $(AM_V_GEN) sed '$(foreach r,$(libgcc_routines) $(ld_magic_routines) 
> _GLOBAL_OFFSET_TABLE_,/^$r$$/d;)' $< > $@
>  MOSTLYCLEANFILES += gnumach-undef-bad
>  libgcc-routines.o: gnumach-undef gnumach-undef-bad
>         $(AM_V_at) if test -s gnumach-undef-bad; \
> --
> 2.54.0
>

Reply via email to