diff mbox series

package/swupdate: do not store local build details in swupdate config file

Message ID 20200306103839.1880550-1-thomas.petazzoni@bootlin.com
State Accepted
Headers show
Series package/swupdate: do not store local build details in swupdate config file | expand

Commit Message

Thomas Petazzoni March 6, 2020, 10:38 a.m. UTC
The SWUPDATE_SET_BUILD_OPTIONS macro sets a number of swupdate
configuration options with local build details, especially the
cross-compiler path and sysroot path.

This means that if one stores an swupdate defconfig file as part of
Buildroot, generated with "make swupdate-update-defconfig", it will
contain things like:

CONFIG_CROSS_COMPILE="/home/thomas/projets/buildroot/output/host/bin/arm-linux-"
CONFIG_SYSROOT="/home/thomas/projets/buildroot/output/host/arm-buildroot-linux-uclibcgnueabi/sysroot"

which obviously are not good, as they are specific to where the build
was done.

So instead this commit:

 - Uses the CROSS_COMPILE environment variable to pass the
   cross-compiler path.

 - Drops entirely the use of CONFIG_SYSROOT, since all it does is pass
   a --sysroot option to the compiler, which is not needed in the
   context of Buildroot.

 - Pass EXTRA_CFLAGS/EXTRA_LDFLAGS also through the environment.

Thanks to that the swupdate defconfig file no longer contains any
local build details, and can be re-used by different users of a given
Buildroot configuration.

Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
---
 package/swupdate/swupdate.mk | 17 +++++------------
 1 file changed, 5 insertions(+), 12 deletions(-)

Comments

Peter Korsgaard March 8, 2020, 8:30 a.m. UTC | #1
>>>>> "Thomas" == Thomas Petazzoni <thomas.petazzoni@bootlin.com> writes:

 > The SWUPDATE_SET_BUILD_OPTIONS macro sets a number of swupdate
 > configuration options with local build details, especially the
 > cross-compiler path and sysroot path.

 > This means that if one stores an swupdate defconfig file as part of
 > Buildroot, generated with "make swupdate-update-defconfig", it will
 > contain things like:

 > CONFIG_CROSS_COMPILE="/home/thomas/projets/buildroot/output/host/bin/arm-linux-"
 > CONFIG_SYSROOT="/home/thomas/projets/buildroot/output/host/arm-buildroot-linux-uclibcgnueabi/sysroot"

 > which obviously are not good, as they are specific to where the build
 > was done.

 > So instead this commit:

 >  - Uses the CROSS_COMPILE environment variable to pass the
 >    cross-compiler path.

 >  - Drops entirely the use of CONFIG_SYSROOT, since all it does is pass
 >    a --sysroot option to the compiler, which is not needed in the
 >    context of Buildroot.

 >  - Pass EXTRA_CFLAGS/EXTRA_LDFLAGS also through the environment.

 > Thanks to that the swupdate defconfig file no longer contains any
 > local build details, and can be re-used by different users of a given
 > Buildroot configuration.

 > Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>

Committed, thanks.
Peter Korsgaard March 15, 2020, 10:36 a.m. UTC | #2
>>>>> "Thomas" == Thomas Petazzoni <thomas.petazzoni@bootlin.com> writes:

 > The SWUPDATE_SET_BUILD_OPTIONS macro sets a number of swupdate
 > configuration options with local build details, especially the
 > cross-compiler path and sysroot path.

 > This means that if one stores an swupdate defconfig file as part of
 > Buildroot, generated with "make swupdate-update-defconfig", it will
 > contain things like:

 > CONFIG_CROSS_COMPILE="/home/thomas/projets/buildroot/output/host/bin/arm-linux-"
 > CONFIG_SYSROOT="/home/thomas/projets/buildroot/output/host/arm-buildroot-linux-uclibcgnueabi/sysroot"

 > which obviously are not good, as they are specific to where the build
 > was done.

 > So instead this commit:

 >  - Uses the CROSS_COMPILE environment variable to pass the
 >    cross-compiler path.

 >  - Drops entirely the use of CONFIG_SYSROOT, since all it does is pass
 >    a --sysroot option to the compiler, which is not needed in the
 >    context of Buildroot.

 >  - Pass EXTRA_CFLAGS/EXTRA_LDFLAGS also through the environment.

 > Thanks to that the swupdate defconfig file no longer contains any
 > local build details, and can be re-used by different users of a given
 > Buildroot configuration.

 > Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>

Committed to 2019.02.x and 2019.11.x, thanks.
diff mbox series

Patch

diff --git a/package/swupdate/swupdate.mk b/package/swupdate/swupdate.mk
index 60dc0e968a..237a44e233 100644
--- a/package/swupdate/swupdate.mk
+++ b/package/swupdate/swupdate.mk
@@ -156,25 +156,18 @@  define SWUPDATE_PREFER_STATIC
 endef
 endif
 
-define SWUPDATE_SET_BUILD_OPTIONS
-	$(call KCONFIG_SET_OPT,CONFIG_CROSS_COMPILE,"$(TARGET_CROSS)", \
-		$(SWUPDATE_BUILD_CONFIG))
-	$(call KCONFIG_SET_OPT,CONFIG_SYSROOT,"$(STAGING_DIR)", \
-		$(SWUPDATE_BUILD_CONFIG))
-	$(call KCONFIG_SET_OPT,CONFIG_EXTRA_CFLAGS,"$(TARGET_CFLAGS)", \
-		$(SWUPDATE_BUILD_CONFIG))
-	$(call KCONFIG_SET_OPT,CONFIG_EXTRA_LDFLAGS,"$(TARGET_LDFLAGS)", \
-		$(SWUPDATE_BUILD_CONFIG))
-endef
+SWUPDATE_MAKE_OPTS = \
+	CROSS_COMPILE="$(TARGET_CROSS)" \
+	CONFIG_EXTRA_CFLAGS="$(TARGET_CFLAGS)" \
+	CONFIG_EXTRA_LDFLAGS="$(TARGET_LDFLAGS)"
 
 define SWUPDATE_KCONFIG_FIXUP_CMDS
 	$(SWUPDATE_PREFER_STATIC)
-	$(SWUPDATE_SET_BUILD_OPTIONS)
 	$(SWUPDATE_SET_LUA_VERSION)
 endef
 
 define SWUPDATE_BUILD_CMDS
-	$(TARGET_MAKE_ENV) $(SWUPDATE_MAKE_ENV) $(MAKE) -C $(@D)
+	$(TARGET_MAKE_ENV) $(SWUPDATE_MAKE_ENV) $(MAKE) $(SWUPDATE_MAKE_OPTS) -C $(@D)
 endef
 
 define SWUPDATE_INSTALL_TARGET_CMDS