[Buildroot] [PATCH v2.1 1/6] package/go: Build host tools with host CC

Thomas Petazzoni thomas.petazzoni at free-electrons.com
Wed May 25 20:59:47 UTC 2016


Hello,

On Wed, 25 May 2016 09:41:54 -0700, Geoff Levand wrote:

> > Just to make sure I understand correctly: you build everything with
> > HOST_GO_HOST_CC first, and put the files generated in pkg/tool and bin/
> > on the side in HOST_GO_TMP, and then rebuild everything again with
> > HOST_GO_TARGET_CC. Then later on, the installation step will pick up
> > bin/ and pkg/tool from HOST_GO_TMP, and the rest from $(@D) directly ?  
> 
> Yes, that is correct.

OK, thanks for confirming!

> bin and tool with HOST_GO_HOST_CC, because those are host binaries.
> The rest with HOST_GO_TARGET_CC because those are target binaries.
> 
> If you can think of a better way to do this two step build I can try it.

I was thinking of having the host parts build by host-go and the
target parts by the "go" package, but I'm not sure it's easy to achieve
nor that it will make the stuff clearer.

Now that I think of it, why do we have to have those two cases:

+ifneq ($(ARCH),$(HOSTARCH))
 define HOST_GO_BUILD_CMDS
-	cd $(@D)/src && $(HOST_GO_MAKE_ENV) ./make.bash
+	cd $(@D)/src && $(HOST_GO_MAKE_ENV) $(HOST_GO_TARGET_CC) ./make.bash
+	mkdir -p $(HOST_GO_TMP)
+	mv $(@D)/pkg/tool $(HOST_GO_TMP)/
+	mv $(@D)/bin/ $(HOST_GO_TMP)/
 endef
+else
+define HOST_GO_BUILD_CMDS
+	cd $(@D)/src && $(HOST_GO_MAKE_ENV) $(HOST_GO_HOST_CC) ./make.bash
+	mkdir -p $(HOST_GO_TMP)
+	mv $(@D)/pkg/tool $(HOST_GO_TMP)/
+	mv $(@D)/bin/ $(HOST_GO_TMP)/
+	cd $(@D)/src && $(HOST_GO_MAKE_ENV) $(HOST_GO_TARGET_CC) ./make.bash
+endef
+endif

Aren't the host binaries always built for the host, and the target
binaries always built for the target? So can't we replace this by just:

+define HOST_GO_BUILD_CMDS
+	cd $(@D)/src && $(HOST_GO_MAKE_ENV) $(HOST_GO_HOST_CC) ./make.bash
+	mkdir -p $(HOST_GO_TMP)
+	mv $(@D)/pkg/tool $(HOST_GO_TMP)/
+	mv $(@D)/bin/ $(HOST_GO_TMP)/
+	cd $(@D)/src && $(HOST_GO_MAKE_ENV) $(HOST_GO_TARGET_CC) ./make.bash
+endef

and get in fact the exact same behavior?

Best regards,

Thomas
-- 
Thomas Petazzoni, CTO, Free Electrons
Embedded Linux, Kernel and Android engineering
http://free-electrons.com



More information about the buildroot mailing list