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 >
