Message ID | 20200107195026.25413-1-ps.report@gmx.net |
---|---|
State | Changes Requested |
Headers | show |
Series | [v1] boot/barebox: fix target bareboxenv command compile | expand |
Peter, All, Sorry to come back so late on that patch. On 2020-01-07 20:50 +0100, Peter Seiderer spake thusly: > The buildroot custom bareboxenv compile command > needs the additional include path 'scripts/include' > to gain access to the local copy of the kernel header > files. > > Fixes (with BR2_TARGET_BAREBOX_BAREBOXENV enabled): > > build/barebox-2019.12.0/scripts/bareboxenv.c:100:10: fatal error: linux/list.h: No such file or directory > > Reported-by: Frederick Gotham <cauldwell.thomas@gmail.com> > Signed-off-by: Peter Seiderer <ps.report@gmx.net> > --- > boot/barebox/barebox.mk | 3 ++- > 1 file changed, 2 insertions(+), 1 deletion(-) > > diff --git a/boot/barebox/barebox.mk b/boot/barebox/barebox.mk > index 52178d89c8..67fd125578 100644 > --- a/boot/barebox/barebox.mk > +++ b/boot/barebox/barebox.mk > @@ -82,7 +82,8 @@ $(1)_KCONFIG_DEPENDENCIES = \ > > ifeq ($$(BR2_TARGET_$(1)_BAREBOXENV),y) > define $(1)_BUILD_BAREBOXENV_CMDS > - $$(TARGET_CC) $$(TARGET_CFLAGS) $$(TARGET_LDFLAGS) -o $$(@D)/bareboxenv \ > + $$(TARGET_CC) $$(TARGET_CFLAGS) -I$$(@D)/scripts/include \ > + $$(TARGET_LDFLAGS) -o $$(@D)/bareboxenv \ Although this is techniocally, correct, I wonder why we do not use BAREBOX_KONFIG_FIXUP_CMDS to enabler CONFIG_BAREBOXENV_TARGET in the barebox configuration, for example: diff --git a/boot/barebox/barebox.mk b/boot/barebox/barebox.mk index 422f27312d..5eaeb7db4c 100644 --- a/boot/barebox/barebox.mk +++ b/boot/barebox/barebox.mk @@ -112,6 +112,9 @@ ifneq ($$($(1)_CUSTOM_EMBEDDED_ENV_PATH),) define $(1)_KCONFIG_FIXUP_CMDS $$(call KCONFIG_ENABLE_OPT,CONFIG_DEFAULT_ENVIRONMENT) $$(call KCONFIG_SET_OPT,CONFIG_DEFAULT_ENVIRONMENT_PATH,"$$($(1)_CUSTOM_EMBEDDED_ENV_PATH)") + $$(if $$(BAREBOX_KONFIG_FIXUP_CMDS),\ + $$(call KCONFIG_ENABLE_OPT,CONFIG_BAREBOXENV_TARGET),\ + $$(call KCONFIG_DISABLE_OPT,CONFIG_BAREBOXENV_TARGET)) endef endif And then we candrop our custom build command for it... CONFIG_BAREBOXENV_TARGET has existed since commit afb03d7a55, in April 2012, so virtually all barebox versions that are recent have it. Regards, Yann E. MORIN. > $$(@D)/scripts/bareboxenv.c > endef > endif > -- > 2.24.1 > > _______________________________________________ > buildroot mailing list > buildroot@busybox.net > http://lists.busybox.net/mailman/listinfo/buildroot
Hello Yann, On Thu, 1 Oct 2020 22:03:40 +0200, "Yann E. MORIN" <yann.morin.1998@free.fr> wrote: > Peter, All, > > Sorry to come back so late on that patch. Better late than never ;-), nevertheless thanks for review... > > On 2020-01-07 20:50 +0100, Peter Seiderer spake thusly: > > The buildroot custom bareboxenv compile command > > needs the additional include path 'scripts/include' > > to gain access to the local copy of the kernel header > > files. > > > > Fixes (with BR2_TARGET_BAREBOX_BAREBOXENV enabled): > > > > build/barebox-2019.12.0/scripts/bareboxenv.c:100:10: fatal error: linux/list.h: No such file or directory > > > > Reported-by: Frederick Gotham <cauldwell.thomas@gmail.com> > > Signed-off-by: Peter Seiderer <ps.report@gmx.net> > > --- > > boot/barebox/barebox.mk | 3 ++- > > 1 file changed, 2 insertions(+), 1 deletion(-) > > > > diff --git a/boot/barebox/barebox.mk b/boot/barebox/barebox.mk > > index 52178d89c8..67fd125578 100644 > > --- a/boot/barebox/barebox.mk > > +++ b/boot/barebox/barebox.mk > > @@ -82,7 +82,8 @@ $(1)_KCONFIG_DEPENDENCIES = \ > > > > ifeq ($$(BR2_TARGET_$(1)_BAREBOXENV),y) > > define $(1)_BUILD_BAREBOXENV_CMDS > > - $$(TARGET_CC) $$(TARGET_CFLAGS) $$(TARGET_LDFLAGS) -o $$(@D)/bareboxenv \ > > + $$(TARGET_CC) $$(TARGET_CFLAGS) -I$$(@D)/scripts/include \ > > + $$(TARGET_LDFLAGS) -o $$(@D)/bareboxenv \ > > Although this is techniocally, correct, I wonder why we do not use > BAREBOX_KONFIG_FIXUP_CMDS to enabler CONFIG_BAREBOXENV_TARGET in the > barebox configuration, for example: > > diff --git a/boot/barebox/barebox.mk b/boot/barebox/barebox.mk > index 422f27312d..5eaeb7db4c 100644 > --- a/boot/barebox/barebox.mk > +++ b/boot/barebox/barebox.mk > @@ -112,6 +112,9 @@ ifneq ($$($(1)_CUSTOM_EMBEDDED_ENV_PATH),) Seems the wrong place as BR2_TARGET_BAREBOX_BAREBOXENV is/should be independent of BR2_TARGET_BAREBOX_CUSTOM_EMBEDDED_ENV_PATH > define $(1)_KCONFIG_FIXUP_CMDS > $$(call KCONFIG_ENABLE_OPT,CONFIG_DEFAULT_ENVIRONMENT) > $$(call KCONFIG_SET_OPT,CONFIG_DEFAULT_ENVIRONMENT_PATH,"$$($(1)_CUSTOM_EMBEDDED_ENV_PATH)") > + $$(if $$(BAREBOX_KONFIG_FIXUP_CMDS),\ Did you mean '$$(if $$(BR2_TARGET_BAREBOX_BAREBOXENV),' ??? Regards, Peter > + $$(call KCONFIG_ENABLE_OPT,CONFIG_BAREBOXENV_TARGET),\ > + $$(call KCONFIG_DISABLE_OPT,CONFIG_BAREBOXENV_TARGET)) > endef > endif > > > And then we candrop our custom build command for it... > > CONFIG_BAREBOXENV_TARGET has existed since commit afb03d7a55, in April > 2012, so virtually all barebox versions that are recent have it. > > Regards, > Yann E. MORIN. > > > $$(@D)/scripts/bareboxenv.c > > endef > > endif > > -- > > 2.24.1 > > > > _______________________________________________ > > buildroot mailing list > > buildroot@busybox.net > > http://lists.busybox.net/mailman/listinfo/buildroot >
Peter, All, On 2020-10-01 23:02 +0200, Peter Seiderer spake thusly: > On Thu, 1 Oct 2020 22:03:40 +0200, "Yann E. MORIN" <yann.morin.1998@free.fr> wrote: > > On 2020-01-07 20:50 +0100, Peter Seiderer spake thusly: > > > The buildroot custom bareboxenv compile command > > > needs the additional include path 'scripts/include' > > > to gain access to the local copy of the kernel header > > > files. > > > > > > Fixes (with BR2_TARGET_BAREBOX_BAREBOXENV enabled): > > > > > > build/barebox-2019.12.0/scripts/bareboxenv.c:100:10: fatal error: linux/list.h: No such file or directory [--SNIP--] > > Although this is techniocally, correct, I wonder why we do not use > > BAREBOX_KONFIG_FIXUP_CMDS to enabler CONFIG_BAREBOXENV_TARGET in the > > barebox configuration, for example: > > > > diff --git a/boot/barebox/barebox.mk b/boot/barebox/barebox.mk > > index 422f27312d..5eaeb7db4c 100644 > > --- a/boot/barebox/barebox.mk > > +++ b/boot/barebox/barebox.mk > > @@ -112,6 +112,9 @@ ifneq ($$($(1)_CUSTOM_EMBEDDED_ENV_PATH),) > Seems the wrong place as BR2_TARGET_BAREBOX_BAREBOXENV is/should be independent > of BR2_TARGET_BAREBOX_CUSTOM_EMBEDDED_ENV_PATH Yes, but it was just to give the overall idea. Of course, that part will have to be refactored. > > define $(1)_KCONFIG_FIXUP_CMDS > > $$(call KCONFIG_ENABLE_OPT,CONFIG_DEFAULT_ENVIRONMENT) > > $$(call KCONFIG_SET_OPT,CONFIG_DEFAULT_ENVIRONMENT_PATH,"$$($(1)_CUSTOM_EMBEDDED_ENV_PATH)") > > + $$(if $$(BAREBOX_KONFIG_FIXUP_CMDS),\ > Did you mean '$$(if $$(BR2_TARGET_BAREBOX_BAREBOXENV),' ??? Arg, almost, yes. I really meant $$(BR2_TARGET_$(1)_BAREBOXENV) ;-) Regards, Yann E. MORIN. > Regards, > Peter > > > + $$(call KCONFIG_ENABLE_OPT,CONFIG_BAREBOXENV_TARGET),\ > > + $$(call KCONFIG_DISABLE_OPT,CONFIG_BAREBOXENV_TARGET)) > > endef > > endif > > > > > > And then we candrop our custom build command for it... > > > > CONFIG_BAREBOXENV_TARGET has existed since commit afb03d7a55, in April > > 2012, so virtually all barebox versions that are recent have it. > > > > Regards, > > Yann E. MORIN. > > > > > $$(@D)/scripts/bareboxenv.c > > > endef > > > endif > > > -- > > > 2.24.1 > > > > > > _______________________________________________ > > > buildroot mailing list > > > buildroot@busybox.net > > > http://lists.busybox.net/mailman/listinfo/buildroot > > >
Hello Yann, On Thu, 1 Oct 2020 23:08:38 +0200, "Yann E. MORIN" <yann.morin.1998@free.fr> wrote: > Peter, All, > > On 2020-10-01 23:02 +0200, Peter Seiderer spake thusly: > > On Thu, 1 Oct 2020 22:03:40 +0200, "Yann E. MORIN" <yann.morin.1998@free.fr> wrote: > > > On 2020-01-07 20:50 +0100, Peter Seiderer spake thusly: > > > > The buildroot custom bareboxenv compile command > > > > needs the additional include path 'scripts/include' > > > > to gain access to the local copy of the kernel header > > > > files. > > > > > > > > Fixes (with BR2_TARGET_BAREBOX_BAREBOXENV enabled): > > > > > > > > build/barebox-2019.12.0/scripts/bareboxenv.c:100:10: fatal error: linux/list.h: No such file or directory > [--SNIP--] > > > Although this is techniocally, correct, I wonder why we do not use > > > BAREBOX_KONFIG_FIXUP_CMDS to enabler CONFIG_BAREBOXENV_TARGET in the > > > barebox configuration, for example: > > > > > > diff --git a/boot/barebox/barebox.mk b/boot/barebox/barebox.mk > > > index 422f27312d..5eaeb7db4c 100644 > > > --- a/boot/barebox/barebox.mk > > > +++ b/boot/barebox/barebox.mk > > > @@ -112,6 +112,9 @@ ifneq ($$($(1)_CUSTOM_EMBEDDED_ENV_PATH),) > > Seems the wrong place as BR2_TARGET_BAREBOX_BAREBOXENV is/should be independent > > of BR2_TARGET_BAREBOX_CUSTOM_EMBEDDED_ENV_PATH > > Yes, but it was just to give the overall idea. Of course, that part will > have to be refactored. > > > > define $(1)_KCONFIG_FIXUP_CMDS > > > $$(call KCONFIG_ENABLE_OPT,CONFIG_DEFAULT_ENVIRONMENT) > > > $$(call KCONFIG_SET_OPT,CONFIG_DEFAULT_ENVIRONMENT_PATH,"$$($(1)_CUSTOM_EMBEDDED_ENV_PATH)") > > > + $$(if $$(BAREBOX_KONFIG_FIXUP_CMDS),\ > > Did you mean '$$(if $$(BR2_TARGET_BAREBOX_BAREBOXENV),' ??? > > Arg, almost, yes. I really meant $$(BR2_TARGET_$(1)_BAREBOXENV) ;-) > The following patch seems to work: diff --git a/boot/barebox/barebox.mk b/boot/barebox/barebox.mk index 422f27312d..d47a47966c 100644 --- a/boot/barebox/barebox.mk +++ b/boot/barebox/barebox.mk @@ -88,13 +88,6 @@ $(1)_KCONFIG_DEPENDENCIES = \ $(BR2_BISON_HOST_DEPENDENCY) \ $(BR2_FLEX_HOST_DEPENDENCY) -ifeq ($$(BR2_TARGET_$(1)_BAREBOXENV),y) -define $(1)_BUILD_BAREBOXENV_CMDS - $$(TARGET_CC) $$(TARGET_CFLAGS) $$(TARGET_LDFLAGS) -o $$(@D)/bareboxenv \ - $$(@D)/scripts/bareboxenv.c -endef -endif - ifeq ($$(BR2_TARGET_$(1)_CUSTOM_ENV),y) $(1)_ENV_NAME = $$(notdir $$(call qstrip,\ $$(BR2_TARGET_$(1)_CUSTOM_ENV_PATH))) @@ -109,12 +102,23 @@ endef endif ifneq ($$($(1)_CUSTOM_EMBEDDED_ENV_PATH),) -define $(1)_KCONFIG_FIXUP_CMDS +define $(1)_KCONFIG_FIXUP_CUSTOM_EMBEDDED_ENV_PATH $$(call KCONFIG_ENABLE_OPT,CONFIG_DEFAULT_ENVIRONMENT) $$(call KCONFIG_SET_OPT,CONFIG_DEFAULT_ENVIRONMENT_PATH,"$$($(1)_CUSTOM_EMBEDDED_ENV_PATH)") endef endif +ifeq ($$(BR2_TARGET_$(1)_BAREBOXENV),y) +define $(1)_KCONFIG_FIXUP_BAREBOXENV + $$(call KCONFIG_ENABLE_OPT,CONFIG_BAREBOXENV_TARGET) +endef +endif + +define $(1)_KCONFIG_FIXUP_CMDS + $$($(1)_KCONFIG_FIXUP_CUSTOM_EMBEDDED_ENV_PATH) + $$($(1)_KCONFIG_FIXUP_BAREBOXENV) +endef + define $(1)_BUILD_CMDS $$($(1)_BUILD_BAREBOXENV_CMDS) $$(TARGET_MAKE_ENV) $$(MAKE) $$($(1)_MAKE_FLAGS) -C $$(@D) @@ -136,7 +140,7 @@ endef ifeq ($$(BR2_TARGET_$(1)_BAREBOXENV),y) define $(1)_INSTALL_TARGET_CMDS - cp $$(@D)/bareboxenv $$(TARGET_DIR)/usr/bin + cp $$(@D)/scripts/bareboxenv-target $$(TARGET_DIR)/usr/bin/bareboxenv endef endif $ file target/usr/bin/bareboxenv target/usr/bin/bareboxenv: ELF 32-bit LSB executable, ARM, EABI5 version 1 (SYSV), dynamically linked, interpreter /lib/ld-linux-armhf.so.3, for GNU/Linux 5.4.0, not stripped Regards, Peter > Regards, > Yann E. MORIN. > > > Regards, > > Peter > > > > > + $$(call KCONFIG_ENABLE_OPT,CONFIG_BAREBOXENV_TARGET),\ > > > + $$(call KCONFIG_DISABLE_OPT,CONFIG_BAREBOXENV_TARGET)) > > > endef > > > endif > > > > > > > > > And then we candrop our custom build command for it... > > > > > > CONFIG_BAREBOXENV_TARGET has existed since commit afb03d7a55, in April > > > 2012, so virtually all barebox versions that are recent have it. > > > > > > Regards, > > > Yann E. MORIN. > > > > > > > $$(@D)/scripts/bareboxenv.c > > > > endef > > > > endif > > > > -- > > > > 2.24.1 > > > > > > > > _______________________________________________ > > > > buildroot mailing list > > > > buildroot@busybox.net > > > > http://lists.busybox.net/mailman/listinfo/buildroot > > > > > >
diff --git a/boot/barebox/barebox.mk b/boot/barebox/barebox.mk index 52178d89c8..67fd125578 100644 --- a/boot/barebox/barebox.mk +++ b/boot/barebox/barebox.mk @@ -82,7 +82,8 @@ $(1)_KCONFIG_DEPENDENCIES = \ ifeq ($$(BR2_TARGET_$(1)_BAREBOXENV),y) define $(1)_BUILD_BAREBOXENV_CMDS - $$(TARGET_CC) $$(TARGET_CFLAGS) $$(TARGET_LDFLAGS) -o $$(@D)/bareboxenv \ + $$(TARGET_CC) $$(TARGET_CFLAGS) -I$$(@D)/scripts/include \ + $$(TARGET_LDFLAGS) -o $$(@D)/bareboxenv \ $$(@D)/scripts/bareboxenv.c endef endif
The buildroot custom bareboxenv compile command needs the additional include path 'scripts/include' to gain access to the local copy of the kernel header files. Fixes (with BR2_TARGET_BAREBOX_BAREBOXENV enabled): build/barebox-2019.12.0/scripts/bareboxenv.c:100:10: fatal error: linux/list.h: No such file or directory Reported-by: Frederick Gotham <cauldwell.thomas@gmail.com> Signed-off-by: Peter Seiderer <ps.report@gmx.net> --- boot/barebox/barebox.mk | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-)