Message ID | 20221110164924.529386-2-heiko@sntech.de (mailing list archive) |
---|---|
State | Superseded |
Headers | show |
Series | Zbb string optimizations and call support in alternatives | expand |
Context | Check | Description |
---|---|---|
conchuod/tree_selection | fail | Guessing tree name failed |
On Thu, Nov 10, 2022 at 05:49:18PM +0100, Heiko Stuebner wrote: > From: Heiko Stuebner <heiko.stuebner@vrull.eu> > > We want to runtime-optimize some core functions (str*, mem*) > but not have this leak into libstub. Instead libstub > for the short while it's running should just use the generic Totally pedantic reword, mostly b/c I am an eejit and confused myself the first time reading this: "Instead, libstub, for the short while it's running, should just use the generic implementation." > implementation. > > To be able to determine whether functions are getting compiled > as part of libstub or not, add a compile-flag we can check > via #ifdef. Exempting the stub makes sense to me given when it runs. What's the actual downside of not exempting it though? > Signed-off-by: Heiko Stuebner <heiko.stuebner@vrull.eu> > --- > drivers/firmware/efi/libstub/Makefile | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/drivers/firmware/efi/libstub/Makefile b/drivers/firmware/efi/libstub/Makefile > index b1601aad7e1a..39c8e3da1937 100644 > --- a/drivers/firmware/efi/libstub/Makefile > +++ b/drivers/firmware/efi/libstub/Makefile > @@ -25,7 +25,7 @@ cflags-$(CONFIG_ARM) := $(subst $(CC_FLAGS_FTRACE),,$(KBUILD_CFLAGS)) \ > -fno-builtin -fpic \ > $(call cc-option,-mno-single-pic-base) > cflags-$(CONFIG_RISCV) := $(subst $(CC_FLAGS_FTRACE),,$(KBUILD_CFLAGS)) \ > - -fpic > + -fpic -DRISCV_EFISTUB > cflags-$(CONFIG_LOONGARCH) := $(subst $(CC_FLAGS_FTRACE),,$(KBUILD_CFLAGS)) \ > -fpie > > -- > 2.35.1 > > > _______________________________________________ > linux-riscv mailing list > linux-riscv@lists.infradead.org > http://lists.infradead.org/mailman/listinfo/linux-riscv
Am Sonntag, 13. November 2022, 18:16:10 CET schrieb Conor Dooley: > On Thu, Nov 10, 2022 at 05:49:18PM +0100, Heiko Stuebner wrote: > > From: Heiko Stuebner <heiko.stuebner@vrull.eu> > > > > We want to runtime-optimize some core functions (str*, mem*) > > but not have this leak into libstub. Instead libstub > > for the short while it's running should just use the generic > > Totally pedantic reword, mostly b/c I am an eejit and confused myself > the first time reading this: > > "Instead, libstub, for the short while it's running, should just use > the generic implementation." > > > implementation. > > > > To be able to determine whether functions are getting compiled > > as part of libstub or not, add a compile-flag we can check > > via #ifdef. > > Exempting the stub makes sense to me given when it runs. What's the > actual downside of not exempting it though? You run into build-errors. I.e. the alternatives (zbb-variants in this case) get compiled so there is the reference to the _strlen_zbb function in the efi-stub, which of course is not fullfillable, hence the "magic" in patch6 :-) . Heiko > > Signed-off-by: Heiko Stuebner <heiko.stuebner@vrull.eu> > > --- > > drivers/firmware/efi/libstub/Makefile | 2 +- > > 1 file changed, 1 insertion(+), 1 deletion(-) > > > > diff --git a/drivers/firmware/efi/libstub/Makefile b/drivers/firmware/efi/libstub/Makefile > > index b1601aad7e1a..39c8e3da1937 100644 > > --- a/drivers/firmware/efi/libstub/Makefile > > +++ b/drivers/firmware/efi/libstub/Makefile > > @@ -25,7 +25,7 @@ cflags-$(CONFIG_ARM) := $(subst $(CC_FLAGS_FTRACE),,$(KBUILD_CFLAGS)) \ > > -fno-builtin -fpic \ > > $(call cc-option,-mno-single-pic-base) > > cflags-$(CONFIG_RISCV) := $(subst $(CC_FLAGS_FTRACE),,$(KBUILD_CFLAGS)) \ > > - -fpic > > + -fpic -DRISCV_EFISTUB > > cflags-$(CONFIG_LOONGARCH) := $(subst $(CC_FLAGS_FTRACE),,$(KBUILD_CFLAGS)) \ > > -fpie > > >
On Sun, Nov 13, 2022 at 06:20:29PM +0100, Heiko Stübner wrote: > Am Sonntag, 13. November 2022, 18:16:10 CET schrieb Conor Dooley: > > On Thu, Nov 10, 2022 at 05:49:18PM +0100, Heiko Stuebner wrote: > > > From: Heiko Stuebner <heiko.stuebner@vrull.eu> > > > > > > We want to runtime-optimize some core functions (str*, mem*) > > > but not have this leak into libstub. Instead libstub > > > for the short while it's running should just use the generic > > > > Totally pedantic reword, mostly b/c I am an eejit and confused myself > > the first time reading this: > > > > "Instead, libstub, for the short while it's running, should just use > > the generic implementation." > > > > > implementation. > > > > > > To be able to determine whether functions are getting compiled > > > as part of libstub or not, add a compile-flag we can check > > > via #ifdef. > > > > Exempting the stub makes sense to me given when it runs. What's the > > actual downside of not exempting it though? > > You run into build-errors. Ah right, I figured it had to be something more than avoiding some overhead. Might be worth noting that the purpose is to avoid build errors. Reviewed-by: Conor Dooley <conor.dooley@microchip.com> > > I.e. the alternatives (zbb-variants in this case) get compiled > so there is the reference to the _strlen_zbb function in the efi-stub, > which of course is not fullfillable, hence the "magic" in patch6 :-) . > > > Heiko > > > > > Signed-off-by: Heiko Stuebner <heiko.stuebner@vrull.eu> > > > --- > > > drivers/firmware/efi/libstub/Makefile | 2 +- > > > 1 file changed, 1 insertion(+), 1 deletion(-) > > > > > > diff --git a/drivers/firmware/efi/libstub/Makefile b/drivers/firmware/efi/libstub/Makefile > > > index b1601aad7e1a..39c8e3da1937 100644 > > > --- a/drivers/firmware/efi/libstub/Makefile > > > +++ b/drivers/firmware/efi/libstub/Makefile > > > @@ -25,7 +25,7 @@ cflags-$(CONFIG_ARM) := $(subst $(CC_FLAGS_FTRACE),,$(KBUILD_CFLAGS)) \ > > > -fno-builtin -fpic \ > > > $(call cc-option,-mno-single-pic-base) > > > cflags-$(CONFIG_RISCV) := $(subst $(CC_FLAGS_FTRACE),,$(KBUILD_CFLAGS)) \ > > > - -fpic > > > + -fpic -DRISCV_EFISTUB > > > cflags-$(CONFIG_LOONGARCH) := $(subst $(CC_FLAGS_FTRACE),,$(KBUILD_CFLAGS)) \ > > > -fpie > > > > > > > > > > > _______________________________________________ > linux-riscv mailing list > linux-riscv@lists.infradead.org > http://lists.infradead.org/mailman/listinfo/linux-riscv
diff --git a/drivers/firmware/efi/libstub/Makefile b/drivers/firmware/efi/libstub/Makefile index b1601aad7e1a..39c8e3da1937 100644 --- a/drivers/firmware/efi/libstub/Makefile +++ b/drivers/firmware/efi/libstub/Makefile @@ -25,7 +25,7 @@ cflags-$(CONFIG_ARM) := $(subst $(CC_FLAGS_FTRACE),,$(KBUILD_CFLAGS)) \ -fno-builtin -fpic \ $(call cc-option,-mno-single-pic-base) cflags-$(CONFIG_RISCV) := $(subst $(CC_FLAGS_FTRACE),,$(KBUILD_CFLAGS)) \ - -fpic + -fpic -DRISCV_EFISTUB cflags-$(CONFIG_LOONGARCH) := $(subst $(CC_FLAGS_FTRACE),,$(KBUILD_CFLAGS)) \ -fpie