[U-Boot] [RFC PATCH] tools: add a generic config for native tools building

The motivation for this is to allow distributions to distribute all possible tools in a generic way, avoiding the need of specific tools building for each machine.
Especially on OpenEmbedded / Yocto Project ecosystem, it is very common each BSP to end providing their specific tools when they need to generate images for some SoC (e.g MX23 / MX28 in meta-freescale case).
Using this, we can package the tools doing:
$: make tools-only_defconfig $: make tools-only
Signed-off-by: Otavio Salvador otavio@ossystems.com.br ---
configs/tools-only_defconfig | 3 +++ tools/Makefile | 2 +- 2 files changed, 4 insertions(+), 1 deletion(-) create mode 100644 configs/tools-only_defconfig
diff --git a/configs/tools-only_defconfig b/configs/tools-only_defconfig new file mode 100644 index 0000000000..be69bdf43a --- /dev/null +++ b/configs/tools-only_defconfig @@ -0,0 +1,3 @@ +CONFIG_SYS_TEXT_BASE=0 +CONFIG_FIT=y +CONFIG_FIT_SIGNATURE=y diff --git a/tools/Makefile b/tools/Makefile index 3c0521f655..e916d0cebb 100644 --- a/tools/Makefile +++ b/tools/Makefile @@ -124,7 +124,7 @@ fit_info-objs := $(dumpimage-mkimage-objs) fit_info.o fit_check_sign-objs := $(dumpimage-mkimage-objs) fit_check_sign.o file2include-objs := file2include.o
-ifneq ($(CONFIG_MX23)$(CONFIG_MX28),) +ifneq ($(CONFIG_MX23)$(CONFIG_MX28)$(CONFIG_FIT_SIGNATURE),) # Add CONFIG_MXS into host CFLAGS, so we can check whether or not register # the mxsimage support within tools/mxsimage.c . HOSTCFLAGS_mxsimage.o += -DCONFIG_MXS

On Tue, Nov 27, 2018 at 06:20:08PM -0200, Otavio Salvador wrote:
The motivation for this is to allow distributions to distribute all possible tools in a generic way, avoiding the need of specific tools building for each machine.
Especially on OpenEmbedded / Yocto Project ecosystem, it is very common each BSP to end providing their specific tools when they need to generate images for some SoC (e.g MX23 / MX28 in meta-freescale case).
Using this, we can package the tools doing:
$: make tools-only_defconfig $: make tools-only
Signed-off-by: Otavio Salvador otavio@ossystems.com.br
configs/tools-only_defconfig | 3 +++ tools/Makefile | 2 +- 2 files changed, 4 insertions(+), 1 deletion(-) create mode 100644 configs/tools-only_defconfig
diff --git a/configs/tools-only_defconfig b/configs/tools-only_defconfig new file mode 100644 index 0000000000..be69bdf43a --- /dev/null +++ b/configs/tools-only_defconfig @@ -0,0 +1,3 @@ +CONFIG_SYS_TEXT_BASE=0 +CONFIG_FIT=y +CONFIG_FIT_SIGNATURE=y diff --git a/tools/Makefile b/tools/Makefile index 3c0521f655..e916d0cebb 100644 --- a/tools/Makefile +++ b/tools/Makefile @@ -124,7 +124,7 @@ fit_info-objs := $(dumpimage-mkimage-objs) fit_info.o fit_check_sign-objs := $(dumpimage-mkimage-objs) fit_check_sign.o file2include-objs := file2include.o
-ifneq ($(CONFIG_MX23)$(CONFIG_MX28),) +ifneq ($(CONFIG_MX23)$(CONFIG_MX28)$(CONFIG_FIT_SIGNATURE),) # Add CONFIG_MXS into host CFLAGS, so we can check whether or not register # the mxsimage support within tools/mxsimage.c . HOSTCFLAGS_mxsimage.o += -DCONFIG_MXS
Adding in Peter since Fedora had this same problem crop up. Does something like this work for you guys? Also adding in Vagrant Cascadian since Debian might want to switch to this too. Thoughts? Thanks!

On 2018-11-29, Tom Rini wrote:
On Tue, Nov 27, 2018 at 06:20:08PM -0200, Otavio Salvador wrote:
The motivation for this is to allow distributions to distribute all possible tools in a generic way, avoiding the need of specific tools building for each machine.
Especially on OpenEmbedded / Yocto Project ecosystem, it is very common each BSP to end providing their specific tools when they need to generate images for some SoC (e.g MX23 / MX28 in meta-freescale case).
Using this, we can package the tools doing:
$: make tools-only_defconfig $: make tools-only
Signed-off-by: Otavio Salvador otavio@ossystems.com.br
configs/tools-only_defconfig | 3 +++ tools/Makefile | 2 +- 2 files changed, 4 insertions(+), 1 deletion(-) create mode 100644 configs/tools-only_defconfig
diff --git a/configs/tools-only_defconfig b/configs/tools-only_defconfig new file mode 100644 index 0000000000..be69bdf43a --- /dev/null +++ b/configs/tools-only_defconfig @@ -0,0 +1,3 @@ +CONFIG_SYS_TEXT_BASE=0 +CONFIG_FIT=y +CONFIG_FIT_SIGNATURE=y diff --git a/tools/Makefile b/tools/Makefile index 3c0521f655..e916d0cebb 100644 --- a/tools/Makefile +++ b/tools/Makefile @@ -124,7 +124,7 @@ fit_info-objs := $(dumpimage-mkimage-objs) fit_info.o fit_check_sign-objs := $(dumpimage-mkimage-objs) fit_check_sign.o file2include-objs := file2include.o
-ifneq ($(CONFIG_MX23)$(CONFIG_MX28),) +ifneq ($(CONFIG_MX23)$(CONFIG_MX28)$(CONFIG_FIT_SIGNATURE),) # Add CONFIG_MXS into host CFLAGS, so we can check whether or not register # the mxsimage support within tools/mxsimage.c . HOSTCFLAGS_mxsimage.o += -DCONFIG_MXS
Adding in Peter since Fedora had this same problem crop up. Does something like this work for you guys? Also adding in Vagrant Cascadian since Debian might want to switch to this too. Thoughts? Thanks!
Thanks.
The u-boot packages in Debian include similar patches and workarounds that I've been meaning to submit upstream for quite some time now... so glad to see someone else started the process!
I'll try to follow-up and check if these patches work for Debian.
live well, vagrant

On Thu, Nov 29, 2018 at 6:40 PM Tom Rini trini@konsulko.com wrote:
On Tue, Nov 27, 2018 at 06:20:08PM -0200, Otavio Salvador wrote:
The motivation for this is to allow distributions to distribute all possible tools in a generic way, avoiding the need of specific tools building for each machine.
Especially on OpenEmbedded / Yocto Project ecosystem, it is very common each BSP to end providing their specific tools when they need to generate images for some SoC (e.g MX23 / MX28 in meta-freescale case).
Using this, we can package the tools doing:
$: make tools-only_defconfig $: make tools-only
Signed-off-by: Otavio Salvador otavio@ossystems.com.br
configs/tools-only_defconfig | 3 +++ tools/Makefile | 2 +- 2 files changed, 4 insertions(+), 1 deletion(-) create mode 100644 configs/tools-only_defconfig
diff --git a/configs/tools-only_defconfig b/configs/tools-only_defconfig new file mode 100644 index 0000000000..be69bdf43a --- /dev/null +++ b/configs/tools-only_defconfig @@ -0,0 +1,3 @@ +CONFIG_SYS_TEXT_BASE=0 +CONFIG_FIT=y +CONFIG_FIT_SIGNATURE=y diff --git a/tools/Makefile b/tools/Makefile index 3c0521f655..e916d0cebb 100644 --- a/tools/Makefile +++ b/tools/Makefile @@ -124,7 +124,7 @@ fit_info-objs := $(dumpimage-mkimage-objs) fit_info.o fit_check_sign-objs := $(dumpimage-mkimage-objs) fit_check_sign.o file2include-objs := file2include.o
-ifneq ($(CONFIG_MX23)$(CONFIG_MX28),) +ifneq ($(CONFIG_MX23)$(CONFIG_MX28)$(CONFIG_FIT_SIGNATURE),) # Add CONFIG_MXS into host CFLAGS, so we can check whether or not register # the mxsimage support within tools/mxsimage.c . HOSTCFLAGS_mxsimage.o += -DCONFIG_MXS
Adding in Peter since Fedora had this same problem crop up. Does something like this work for you guys? Also adding in Vagrant Cascadian since Debian might want to switch to this too. Thoughts? Thanks!
We currently use the tools-all option, details below, to build the tools, which broken in 2018.11 on non arm/x86 platforms due to the sandbox dep being added in there. I'm happy to adjust as necessary to fix that but I'm not sure the difference between tools-all vs the above.
make CROSS_COMPILE="" defconfig V=1 O=builds/ make CROSS_COMPILE="" tools-all V=1 O=builds/

On Sat, Dec 01, 2018 at 10:27:49AM +0000, Peter Robinson wrote:
On Thu, Nov 29, 2018 at 6:40 PM Tom Rini trini@konsulko.com wrote:
On Tue, Nov 27, 2018 at 06:20:08PM -0200, Otavio Salvador wrote:
The motivation for this is to allow distributions to distribute all possible tools in a generic way, avoiding the need of specific tools building for each machine.
Especially on OpenEmbedded / Yocto Project ecosystem, it is very common each BSP to end providing their specific tools when they need to generate images for some SoC (e.g MX23 / MX28 in meta-freescale case).
Using this, we can package the tools doing:
$: make tools-only_defconfig $: make tools-only
Signed-off-by: Otavio Salvador otavio@ossystems.com.br
configs/tools-only_defconfig | 3 +++ tools/Makefile | 2 +- 2 files changed, 4 insertions(+), 1 deletion(-) create mode 100644 configs/tools-only_defconfig
diff --git a/configs/tools-only_defconfig b/configs/tools-only_defconfig new file mode 100644 index 0000000000..be69bdf43a --- /dev/null +++ b/configs/tools-only_defconfig @@ -0,0 +1,3 @@ +CONFIG_SYS_TEXT_BASE=0 +CONFIG_FIT=y +CONFIG_FIT_SIGNATURE=y diff --git a/tools/Makefile b/tools/Makefile index 3c0521f655..e916d0cebb 100644 --- a/tools/Makefile +++ b/tools/Makefile @@ -124,7 +124,7 @@ fit_info-objs := $(dumpimage-mkimage-objs) fit_info.o fit_check_sign-objs := $(dumpimage-mkimage-objs) fit_check_sign.o file2include-objs := file2include.o
-ifneq ($(CONFIG_MX23)$(CONFIG_MX28),) +ifneq ($(CONFIG_MX23)$(CONFIG_MX28)$(CONFIG_FIT_SIGNATURE),) # Add CONFIG_MXS into host CFLAGS, so we can check whether or not register # the mxsimage support within tools/mxsimage.c . HOSTCFLAGS_mxsimage.o += -DCONFIG_MXS
Adding in Peter since Fedora had this same problem crop up. Does something like this work for you guys? Also adding in Vagrant Cascadian since Debian might want to switch to this too. Thoughts? Thanks!
We currently use the tools-all option, details below, to build the tools, which broken in 2018.11 on non arm/x86 platforms due to the sandbox dep being added in there. I'm happy to adjust as necessary to fix that but I'm not sure the difference between tools-all vs the above.
make CROSS_COMPILE="" defconfig V=1 O=builds/ make CROSS_COMPILE="" tools-all V=1 O=builds/
Well, with the above you would do tools-only_defconfig then tools-all, and we would make sure to _not_ enable options in tools-only_defconfig that may not build on some host platforms as it's intended only for building tools rather than the myriad of things sandbox is used for.

On Sat, 1 Dec 2018, 13:54 Tom Rini <trini@konsulko.com wrote:
On Sat, Dec 01, 2018 at 10:27:49AM +0000, Peter Robinson wrote:
On Thu, Nov 29, 2018 at 6:40 PM Tom Rini trini@konsulko.com wrote:
On Tue, Nov 27, 2018 at 06:20:08PM -0200, Otavio Salvador wrote:
The motivation for this is to allow distributions to distribute all possible tools in a generic way, avoiding the need of specific tools building for each machine.
Especially on OpenEmbedded / Yocto Project ecosystem, it is very common each BSP to end providing their specific tools when they need to generate images for some SoC (e.g MX23 / MX28 in meta-freescale case).
Using this, we can package the tools doing:
$: make tools-only_defconfig $: make tools-only
Signed-off-by: Otavio Salvador otavio@ossystems.com.br
configs/tools-only_defconfig | 3 +++ tools/Makefile | 2 +- 2 files changed, 4 insertions(+), 1 deletion(-) create mode 100644 configs/tools-only_defconfig
diff --git a/configs/tools-only_defconfig
b/configs/tools-only_defconfig
new file mode 100644 index 0000000000..be69bdf43a --- /dev/null +++ b/configs/tools-only_defconfig @@ -0,0 +1,3 @@ +CONFIG_SYS_TEXT_BASE=0 +CONFIG_FIT=y +CONFIG_FIT_SIGNATURE=y diff --git a/tools/Makefile b/tools/Makefile index 3c0521f655..e916d0cebb 100644 --- a/tools/Makefile +++ b/tools/Makefile @@ -124,7 +124,7 @@ fit_info-objs := $(dumpimage-mkimage-objs)
fit_info.o
fit_check_sign-objs := $(dumpimage-mkimage-objs) fit_check_sign.o file2include-objs := file2include.o
-ifneq ($(CONFIG_MX23)$(CONFIG_MX28),) +ifneq ($(CONFIG_MX23)$(CONFIG_MX28)$(CONFIG_FIT_SIGNATURE),) # Add CONFIG_MXS into host CFLAGS, so we can check whether or not
register
# the mxsimage support within tools/mxsimage.c . HOSTCFLAGS_mxsimage.o += -DCONFIG_MXS
Adding in Peter since Fedora had this same problem crop up. Does something like this work for you guys? Also adding in Vagrant
Cascadian
since Debian might want to switch to this too. Thoughts? Thanks!
We currently use the tools-all option, details below, to build the tools, which broken in 2018.11 on non arm/x86 platforms due to the sandbox dep being added in there. I'm happy to adjust as necessary to fix that but I'm not sure the difference between tools-all vs the above.
make CROSS_COMPILE="" defconfig V=1 O=builds/ make CROSS_COMPILE="" tools-all V=1 O=builds/
Well, with the above you would do tools-only_defconfig then tools-all, and we would make sure to _not_ enable options in tools-only_defconfig that may not build on some host platforms as it's intended only for building tools rather than the myriad of things sandbox is used for.
That would be fine as far as I'm concerned.
Thanks Peter

On Sat, Dec 1, 2018 at 12:18 PM Peter Robinson pbrobinson@gmail.com wrote:
On Sat, 1 Dec 2018, 13:54 Tom Rini <trini@konsulko.com wrote:
On Sat, Dec 01, 2018 at 10:27:49AM +0000, Peter Robinson wrote:
On Thu, Nov 29, 2018 at 6:40 PM Tom Rini trini@konsulko.com wrote:
On Tue, Nov 27, 2018 at 06:20:08PM -0200, Otavio Salvador wrote:
The motivation for this is to allow distributions to distribute all possible tools in a generic way, avoiding the need of specific tools building for each machine.
Especially on OpenEmbedded / Yocto Project ecosystem, it is very common each BSP to end providing their specific tools when they need to generate images for some SoC (e.g MX23 / MX28 in meta-freescale case).
Using this, we can package the tools doing:
$: make tools-only_defconfig $: make tools-only
Signed-off-by: Otavio Salvador otavio@ossystems.com.br
configs/tools-only_defconfig | 3 +++ tools/Makefile | 2 +- 2 files changed, 4 insertions(+), 1 deletion(-) create mode 100644 configs/tools-only_defconfig
diff --git a/configs/tools-only_defconfig
b/configs/tools-only_defconfig
new file mode 100644 index 0000000000..be69bdf43a --- /dev/null +++ b/configs/tools-only_defconfig @@ -0,0 +1,3 @@ +CONFIG_SYS_TEXT_BASE=0 +CONFIG_FIT=y +CONFIG_FIT_SIGNATURE=y diff --git a/tools/Makefile b/tools/Makefile index 3c0521f655..e916d0cebb 100644 --- a/tools/Makefile +++ b/tools/Makefile @@ -124,7 +124,7 @@ fit_info-objs := $(dumpimage-mkimage-objs)
fit_info.o
fit_check_sign-objs := $(dumpimage-mkimage-objs) fit_check_sign.o file2include-objs := file2include.o
-ifneq ($(CONFIG_MX23)$(CONFIG_MX28),) +ifneq ($(CONFIG_MX23)$(CONFIG_MX28)$(CONFIG_FIT_SIGNATURE),) # Add CONFIG_MXS into host CFLAGS, so we can check whether or not
register
# the mxsimage support within tools/mxsimage.c . HOSTCFLAGS_mxsimage.o += -DCONFIG_MXS
Adding in Peter since Fedora had this same problem crop up. Does something like this work for you guys? Also adding in Vagrant
Cascadian
since Debian might want to switch to this too. Thoughts? Thanks!
We currently use the tools-all option, details below, to build the tools, which broken in 2018.11 on non arm/x86 platforms due to the sandbox dep being added in there. I'm happy to adjust as necessary to fix that but I'm not sure the difference between tools-all vs the above.
make CROSS_COMPILE="" defconfig V=1 O=builds/ make CROSS_COMPILE="" tools-all V=1 O=builds/
Well, with the above you would do tools-only_defconfig then tools-all, and we would make sure to _not_ enable options in tools-only_defconfig that may not build on some host platforms as it's intended only for building tools rather than the myriad of things sandbox is used for.
That would be fine as far as I'm concerned.
If people are likely to use tools-all, we may use tools-all_defconfig so we connect both. What do you think guys?

On Sat, Dec 1, 2018 at 2:34 PM Otavio Salvador otavio.salvador@ossystems.com.br wrote:
On Sat, Dec 1, 2018 at 12:18 PM Peter Robinson pbrobinson@gmail.com wrote:
On Sat, 1 Dec 2018, 13:54 Tom Rini <trini@konsulko.com wrote:
On Sat, Dec 01, 2018 at 10:27:49AM +0000, Peter Robinson wrote:
On Thu, Nov 29, 2018 at 6:40 PM Tom Rini trini@konsulko.com wrote:
On Tue, Nov 27, 2018 at 06:20:08PM -0200, Otavio Salvador wrote:
The motivation for this is to allow distributions to distribute all possible tools in a generic way, avoiding the need of specific tools building for each machine.
Especially on OpenEmbedded / Yocto Project ecosystem, it is very common each BSP to end providing their specific tools when they need to generate images for some SoC (e.g MX23 / MX28 in meta-freescale case).
Using this, we can package the tools doing:
$: make tools-only_defconfig $: make tools-only
Signed-off-by: Otavio Salvador otavio@ossystems.com.br
configs/tools-only_defconfig | 3 +++ tools/Makefile | 2 +- 2 files changed, 4 insertions(+), 1 deletion(-) create mode 100644 configs/tools-only_defconfig
diff --git a/configs/tools-only_defconfig
b/configs/tools-only_defconfig
new file mode 100644 index 0000000000..be69bdf43a --- /dev/null +++ b/configs/tools-only_defconfig @@ -0,0 +1,3 @@ +CONFIG_SYS_TEXT_BASE=0 +CONFIG_FIT=y +CONFIG_FIT_SIGNATURE=y diff --git a/tools/Makefile b/tools/Makefile index 3c0521f655..e916d0cebb 100644 --- a/tools/Makefile +++ b/tools/Makefile @@ -124,7 +124,7 @@ fit_info-objs := $(dumpimage-mkimage-objs)
fit_info.o
fit_check_sign-objs := $(dumpimage-mkimage-objs) fit_check_sign.o file2include-objs := file2include.o
-ifneq ($(CONFIG_MX23)$(CONFIG_MX28),) +ifneq ($(CONFIG_MX23)$(CONFIG_MX28)$(CONFIG_FIT_SIGNATURE),) # Add CONFIG_MXS into host CFLAGS, so we can check whether or not
register
# the mxsimage support within tools/mxsimage.c . HOSTCFLAGS_mxsimage.o += -DCONFIG_MXS
Adding in Peter since Fedora had this same problem crop up. Does something like this work for you guys? Also adding in Vagrant
Cascadian
since Debian might want to switch to this too. Thoughts? Thanks!
We currently use the tools-all option, details below, to build the tools, which broken in 2018.11 on non arm/x86 platforms due to the sandbox dep being added in there. I'm happy to adjust as necessary to fix that but I'm not sure the difference between tools-all vs the above.
make CROSS_COMPILE="" defconfig V=1 O=builds/ make CROSS_COMPILE="" tools-all V=1 O=builds/
Well, with the above you would do tools-only_defconfig then tools-all, and we would make sure to _not_ enable options in tools-only_defconfig that may not build on some host platforms as it's intended only for building tools rather than the myriad of things sandbox is used for.
That would be fine as far as I'm concerned.
If people are likely to use tools-all, we may use tools-all_defconfig so we connect both. What do you think guys?
That seems fine to me, let me know when there's something you'd like me to test.
Peter
participants (5)
-
Otavio Salvador
-
Otavio Salvador
-
Peter Robinson
-
Tom Rini
-
Vagrant Cascadian