Download raw body.
llvm/sparc64: match BFD -N alignment
On Tue, 18 Aug 2026 19:56:28 +0200,
Mark Kettenis <mark.kettenis@xs4all.nl> wrote:
>
> > From: "Theo de Raadt" <deraadt@openbsd.org>
> > Date: Tue, 18 Aug 2026 10:33:35 -0600
> >
> > Mark Kettenis <mark.kettenis@xs4all.nl> wrote:
> >
> > > > OK deraadt, but now that it's serious kettenis may have other nits.
> > > > The conditions look correct to me and I don't think anything outside
> > > > sys/arch/sparc64/stand uses the ld options which use this so the effects
> > > > are tightly constrained.
> > >
> > > I have a feeling that this is trying to work around an issue that can
> > > be fixed by passing the right command line arguments and/or a fairly
> > > simple linker script. Please let me see if I can figure that out
> > > before committing this.
> >
> > In the old days, did nmagic binaries really do 1MB padding?
> > I doubt it. So it seems like an oversight.
>
> The padding seems to be a consequence of mixing -N with -Ttext.
>
> Kirill, can you try replacing
>
> "-Ttext ${RELOC}"
>
> with
>
> "--image-base=0x${RELOC}"
>
> ?
>
> And maybe you can put your current ofwboot binary (the one produces by
> your midified version of ld.lld) somewhere such that I can take a look
> at it?
>
Yes, replacing -Ttext ${RELOC} by --image-base=0x${RELOC} as:
RCS file: /cvs/src/sys/arch/sparc64/stand/ofwboot/Makefile,v
diff -u -p -r1.29 Makefile
--- ofwboot/Makefile 30 Jan 2025 21:46:25 -0000 1.29
+++ ofwboot/Makefile 18 Aug 2026 19:02:45 -0000
@@ -73,7 +73,7 @@ CPPFLAGS+= -DSOFTRAID
.endif
${PROG}: ${OBJS} ${LIBSA} ${LIBZ}
- ${LD} -N -Ttext ${RELOC} -e ${ENTRY} -o ${PROG} -nopie -znorelro \
+ ${LD} -N --image-base=0x${RELOC} -e ${ENTRY} -o ${PROG} -nopie -znorelro \
${OBJS} -L${LIBSADIR} ${LIBSA} \
-L${LIBZDIR} ${LIBZ}
leads to ofwboot without padding. Binaries are here:
https://kirill.korins.ky/pub/sparc64-ofwboot/
--
wbr, Kirill
llvm/sparc64: match BFD -N alignment