Hi Tom,

On Sun, 9 Feb 2025 at 11:14, Tom Rini <tr...@konsulko.com> wrote:
>
> On Sat, Feb 08, 2025 at 10:11:45AM -0700, Simon Glass wrote:
>
> > The app should be built as a shared library, with position-independent
> > code and the -shared flags. Update the Makefile to handle this.
> >
> > Signed-off-by: Simon Glass <s...@chromium.org>
> > ---
> >
> > (no changes since v1)
> >
> >  Makefile | 4 ++++
> >  1 file changed, 4 insertions(+)
> >
> > diff --git a/Makefile b/Makefile
> > index f989c31073f..b3b13e29c26 100644
> > --- a/Makefile
> > +++ b/Makefile
> > @@ -452,9 +452,13 @@ KBUILD_CFLAGS += $(call cc-option, -no-integrated-as)
> >  KBUILD_AFLAGS += $(call cc-option, -no-integrated-as)
> >  endif
> >
> > +ifdef CONFIG_EFI_APP
> > +KBUILD_CFLAGS += -shared
> > +else
> >  # Don't generate position independent code
> >  KBUILD_CFLAGS        += $(call cc-option,-fno-PIE)
> >  KBUILD_AFLAGS        += $(call cc-option,-fno-PIE)
> > +endif
> >
> >  # Read UBOOTRELEASE from include/config/uboot.release (if it exists)
> >  UBOOTRELEASE = $(shell cat include/config/uboot.release 2> /dev/null)
>
> This should be tidied up with x86 being updated as well. In fact the
> comment there isn't entirely useful as we still pass that with
> CONFIG_POSITION_INDEPENDENT=y.

They are slightly different things.

POSITION_INDEPENDENT - controls how TEXT_BASE is figured out before relocaiton
position-independent code - tells the compiler what to do. and we want
this so we can relocate at the end of board_init_f()

I can enable POSITION_INDEPENDENT in the ARM EFI app (like it is in
x86, probably erroneously). Yes it gets rid of TEXT_BASE, but more as
a side effect.

Perhaps POSITION_INDEPENDENT should be called POSITION_INDEPENDENT_F ?

Or perhaps it can have a dual meaning?

>
> Setting flags should also likely be handled in board/efi/config.mk.

Oh yes, good idea.

Regards,
Simon

Reply via email to