All of lore.kernel.org
 help / color / mirror / Atom feed
* External toolchain support
@ 2020-05-19 20:03 Paul Barker
  2020-05-20  5:18 ` [meta-arm] " Denys Dmytriyenko
                   ` (2 more replies)
  0 siblings, 3 replies; 14+ messages in thread
From: Paul Barker @ 2020-05-19 20:03 UTC (permalink / raw)
  To: meta-arm

Hi all,

As discussed on the Yocto Project call today it's great to see the ARM
toolchain recipes moving forward under the new meta-arm layers. I've
had some issues in the past with the external pre-built toolchain
which really need fixing to properly integrate this toolchain into
projects. I'm raising them here in the hopes that these can now be
fixed.

1) Maintaining GPL compliance while using an external toolchain

The Yocto Project has an archiver class which can be used to collect
the source code of all packages built by bitbake which is a
requirement for meeting the terms of the GPL. However for the external
toolchain recipes the "source" is the pre-built toolchain archive
downloaded from the ARM website. As the pre-built toolchain includes
glibc (which is then distributed as part of the images we build) what
we need is the actual source code used to build the various toolchain
components.

The toolchain recipe needs to include some link to the actual upstream
sources and the archiver class in oe-core probably needs extending to
support this.

2) Building an SDK/ESDK

If an SDK is generated for an image built with the pre-built toolchain
then there can be some confusion about what exactly should provide the
gcc binary and various headers. In the past I've had to hack
components out of the SDK after it is built and then tell customers to
install the pre-built toolchain alongside the SDK in order to get a
working cross-compiler. Ideally everything should actually get
packaged into the SDK so that only one download is needed and no
hard-coded paths are used.

Additionally, running the populate_sdk task often fails due to missing
packages (libatomic-dev right now) and it looks like the recipe
bitrots fairly quickly after each fix. SDK generation needs to be
regularly tested and it needs to be confirmed that these SDKs can
actually cross-compile working binaries.

3) Toolchain recipe is effectively split between meta-arm & meta-arago layers

The bbappends carried in meta-arago fix items which are missing from
the external-arm-toolcahin recipe in meta-arg (e.g. the installation
of the ldconfig binary). That effectively splits the recipe over
multiple layers as these things are pretty fundamental parts of the
external-arm-toolchain recipe. An effort needs to be made to merge all
this together and have the base recipe well tested.

4) No example configurations or visible test matrix

The meta-arm-toolchain layer lacks a README or other file providing
some examples of working build configurations which use the pre-built
toolchain. It's unclear which MACHINEs and DISTROs are regularly
tested and are well supported. The best way to solve this would be to
actually store the test scripts and configurations in this layer and
use a publicly visible CI system like Travis, GitLab CI, etc to run
the tests. That would increase confidence in the pre-built toolchain
and make it clear what is supported and how frequently it's tested.

5) LICENSE is incorrectly stated in the external-arm-toolchain recipe

The full license of the toolchain package needs to be specified. Right
now all packages are marked as having the MIT license which is
obviously not correct for most of them.

Apologies for the long rant but I hope this is useful to highlight
some of the issues seen when trying to practically use the pre-built
ARM toolchain.

Thanks,

-- 
Paul Barker
Konsulko Group

^ permalink raw reply	[flat|nested] 14+ messages in thread

end of thread, other threads:[~2020-06-12 10:01 UTC | newest]

Thread overview: 14+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2020-05-19 20:03 External toolchain support Paul Barker
2020-05-20  5:18 ` [meta-arm] " Denys Dmytriyenko
2020-05-20 10:13   ` William Mills
2020-05-20 15:33 ` Sumit Garg
2020-05-20 16:02   ` Paul Barker
2020-05-22 12:59     ` Sumit Garg
2020-06-11  2:01 ` Denys Dmytriyenko
2020-06-11  9:27   ` Paul Barker
2020-06-12  4:30     ` Denys Dmytriyenko
2020-06-11 14:14   ` Sumit Garg
2020-06-12  5:34     ` Denys Dmytriyenko
2020-06-12  9:55       ` Sumit Garg
     [not found]     ` <1617B50A09B8150A.14082@lists.yoctoproject.org>
2020-06-12  7:06       ` Denys Dmytriyenko
2020-06-12 10:01         ` Sumit Garg

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.