diff mbox series

[v1] boot/barebox: fix target bareboxenv command compile

Message ID 20200107195026.25413-1-ps.report@gmx.net
State Changes Requested
Headers show
Series [v1] boot/barebox: fix target bareboxenv command compile | expand

Commit Message

Peter Seiderer Jan. 7, 2020, 7:50 p.m. UTC
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(-)

Comments

Yann E. MORIN Oct. 1, 2020, 8:03 p.m. UTC | #1
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
Peter Seiderer Oct. 1, 2020, 9:02 p.m. UTC | #2
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
>
Yann E. MORIN Oct. 1, 2020, 9:08 p.m. UTC | #3
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
> >
>
Peter Seiderer Oct. 1, 2020, 9:42 p.m. UTC | #4
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 mbox series

Patch

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