* [PATCH 1/4] external-arm-toolchain-versions: also collect binutils/bfd version
@ 2020-06-15 8:07 Denys Dmytriyenko
2020-06-15 8:07 ` [PATCH 2/4] external-arm-toolchain-versions: set per-components license based on version Denys Dmytriyenko
` (2 more replies)
0 siblings, 3 replies; 12+ messages in thread
From: Denys Dmytriyenko @ 2020-06-15 8:07 UTC (permalink / raw)
To: meta-arm; +Cc: Denys Dmytriyenko
From: Denys Dmytriyenko <denys@ti.com>
To be used by SDK packaging for binutils cross.
This code is upstreamed from meta-arago layer.
Signed-off-by: Denys Dmytriyenko <denys@ti.com>
---
.../conf/distro/include/external-arm-toolchain-versions.inc | 10 ++++++++++
1 file changed, 10 insertions(+)
diff --git a/meta-arm-toolchain/conf/distro/include/external-arm-toolchain-versions.inc b/meta-arm-toolchain/conf/distro/include/external-arm-toolchain-versions.inc
index 5c40af2..a89f2f0 100644
--- a/meta-arm-toolchain/conf/distro/include/external-arm-toolchain-versions.inc
+++ b/meta-arm-toolchain/conf/distro/include/external-arm-toolchain-versions.inc
@@ -117,6 +117,15 @@ def eat_get_gdb_version(d):
first_line = stdout.splitlines()[0]
return first_line.split()[-1]
+def eat_get_bfd_version(d):
+ try:
+ stdout, stderr = eat_run(d, 'as', '--version')
+ except bb.process.CmdError:
+ return 'UNKNOWN'
+ else:
+ first_line = stdout.splitlines()[0]
+ return first_line.split()[-1]
+
python external_arm_toolchain_version_handler () {
if not isinstance(e, bb.event.ConfigParsed):
return
@@ -129,5 +138,6 @@ python external_arm_toolchain_version_handler () {
d.setVar('EAT_VER_LIBC', eat_get_libc_version(ld))
d.setVar('EAT_VER_KERNEL', eat_get_kernel_version(ld))
d.setVar('EAT_VER_GDB', eat_get_gdb_version(ld))
+ d.setVar('EAT_VER_BFD', eat_get_bfd_version(ld))
}
addhandler external_arm_toolchain_version_handler
--
2.7.4
^ permalink raw reply related [flat|nested] 12+ messages in thread* [PATCH 2/4] external-arm-toolchain-versions: set per-components license based on version 2020-06-15 8:07 [PATCH 1/4] external-arm-toolchain-versions: also collect binutils/bfd version Denys Dmytriyenko @ 2020-06-15 8:07 ` Denys Dmytriyenko 2020-06-15 10:55 ` [meta-arm] " Sumit Garg 2020-06-15 8:07 ` [PATCH 3/4] external-arm-toolchain: check for TCLIBC being glibc Denys Dmytriyenko 2020-06-15 8:07 ` [PATCH 4/4] external-arm-sdk-toolchain: add recipe to package gcc/gdb/binutils cross binaries Denys Dmytriyenko 2 siblings, 1 reply; 12+ messages in thread From: Denys Dmytriyenko @ 2020-06-15 8:07 UTC (permalink / raw) To: meta-arm; +Cc: Denys Dmytriyenko From: Denys Dmytriyenko <denys@ti.com> This code is upstreamed from meta-arago layer. Signed-off-by: Denys Dmytriyenko <denys@ti.com> --- .../include/external-arm-toolchain-versions.inc | 28 ++++++++++++++++++++++ 1 file changed, 28 insertions(+) diff --git a/meta-arm-toolchain/conf/distro/include/external-arm-toolchain-versions.inc b/meta-arm-toolchain/conf/distro/include/external-arm-toolchain-versions.inc index a89f2f0..6121adf 100644 --- a/meta-arm-toolchain/conf/distro/include/external-arm-toolchain-versions.inc +++ b/meta-arm-toolchain/conf/distro/include/external-arm-toolchain-versions.inc @@ -126,6 +126,20 @@ def eat_get_bfd_version(d): first_line = stdout.splitlines()[0] return first_line.split()[-1] +# Licenses set for main components of the toolchain: +# (g)libc is always LGPL version 2 (or later) +# gcc has switched from GPL version 2 (or later) to version 3 (or later) after 4.2.1, +# see this announcement - http://gcc.gnu.org/ml/gcc-announce/2007/msg00003.html +# libgcc and libstdc++ always had exceptions to GPL called Runtime Library Exception, but +# it was based on GPL version 2 (or later), until new GPL version 3 (or later) exception +# was introduced on 27 Jan 2009 - http://gcc.gnu.org/ml/gcc-announce/2009/msg00000.html +# and http://www.gnu.org/licenses/gcc-exception.html, which was several days after +# gcc 4.3.3 was released - http://gcc.gnu.org/releases.html +# gdb/gdbserver version 6.6 was the last one under GPL version 2 (or later), according +# to the release schedule - http://www.gnu.org/software/gdb/schedule/ +# binutils version 2.17 was the last one under GPL version 2 (or later), according +# to the published releases - http://ftp.gnu.org/gnu/binutils/ + python external_arm_toolchain_version_handler () { if not isinstance(e, bb.event.ConfigParsed): return @@ -139,5 +153,19 @@ python external_arm_toolchain_version_handler () { d.setVar('EAT_VER_KERNEL', eat_get_kernel_version(ld)) d.setVar('EAT_VER_GDB', eat_get_gdb_version(ld)) d.setVar('EAT_VER_BFD', eat_get_bfd_version(ld)) + + lc_libc = "LGPL-2.1" + lc_gcc = ["GPL-3.0", "GPL-2.0"][eat_get_gcc_version(ld) <= "4.2.1"] + lc_rle = ["GPL-3.0-with-GCC-exception", "GPL-2.0-with-GCC-exception"][eat_get_gcc_version(ld) <= "4.3.3"] + lc_gdb = ["GPL-3.0", "GPL-2.0"][eat_get_gdb_version(ld) <= "6.6"] + lc_bfd = ["GPL-3.0", "GPL-2.0"][eat_get_bfd_version(ld) <= "2.17"] + + d.setVar('EAT_LIBC_LICENSE', lc_libc) + d.setVar('EAT_GCC_LICENSE', lc_gcc) + d.setVar('EAT_RLE_LICENSE', lc_rle) + d.setVar('EAT_GDB_LICENSE', lc_gdb) + d.setVar('EAT_BFD_LICENSE', lc_bfd) + + d.setVar('EAT_LICENSE', "%s & %s & %s & %s & %s" % (lc_libc, lc_gcc, lc_rle, lc_gdb, lc_bfd)) } addhandler external_arm_toolchain_version_handler -- 2.7.4 ^ permalink raw reply related [flat|nested] 12+ messages in thread
* Re: [meta-arm] [PATCH 2/4] external-arm-toolchain-versions: set per-components license based on version 2020-06-15 8:07 ` [PATCH 2/4] external-arm-toolchain-versions: set per-components license based on version Denys Dmytriyenko @ 2020-06-15 10:55 ` Sumit Garg 2020-06-15 18:14 ` Denys Dmytriyenko 0 siblings, 1 reply; 12+ messages in thread From: Sumit Garg @ 2020-06-15 10:55 UTC (permalink / raw) To: Denys Dmytriyenko; +Cc: meta-arm, Denys Dmytriyenko On Mon, 15 Jun 2020 at 13:37, Denys Dmytriyenko <denis@denix.org> wrote: > > From: Denys Dmytriyenko <denys@ti.com> > > This code is upstreamed from meta-arago layer. > > Signed-off-by: Denys Dmytriyenko <denys@ti.com> > --- > .../include/external-arm-toolchain-versions.inc | 28 ++++++++++++++++++++++ > 1 file changed, 28 insertions(+) > > diff --git a/meta-arm-toolchain/conf/distro/include/external-arm-toolchain-versions.inc b/meta-arm-toolchain/conf/distro/include/external-arm-toolchain-versions.inc > index a89f2f0..6121adf 100644 > --- a/meta-arm-toolchain/conf/distro/include/external-arm-toolchain-versions.inc > +++ b/meta-arm-toolchain/conf/distro/include/external-arm-toolchain-versions.inc > @@ -126,6 +126,20 @@ def eat_get_bfd_version(d): > first_line = stdout.splitlines()[0] > return first_line.split()[-1] > > +# Licenses set for main components of the toolchain: > +# (g)libc is always LGPL version 2 (or later) > +# gcc has switched from GPL version 2 (or later) to version 3 (or later) after 4.2.1, > +# see this announcement - http://gcc.gnu.org/ml/gcc-announce/2007/msg00003.html > +# libgcc and libstdc++ always had exceptions to GPL called Runtime Library Exception, but > +# it was based on GPL version 2 (or later), until new GPL version 3 (or later) exception > +# was introduced on 27 Jan 2009 - http://gcc.gnu.org/ml/gcc-announce/2009/msg00000.html > +# and http://www.gnu.org/licenses/gcc-exception.html, which was several days after > +# gcc 4.3.3 was released - http://gcc.gnu.org/releases.html > +# gdb/gdbserver version 6.6 was the last one under GPL version 2 (or later), according > +# to the release schedule - http://www.gnu.org/software/gdb/schedule/ > +# binutils version 2.17 was the last one under GPL version 2 (or later), according > +# to the published releases - http://ftp.gnu.org/gnu/binutils/ > + > python external_arm_toolchain_version_handler () { > if not isinstance(e, bb.event.ConfigParsed): > return > @@ -139,5 +153,19 @@ python external_arm_toolchain_version_handler () { > d.setVar('EAT_VER_KERNEL', eat_get_kernel_version(ld)) > d.setVar('EAT_VER_GDB', eat_get_gdb_version(ld)) > d.setVar('EAT_VER_BFD', eat_get_bfd_version(ld)) > + > + lc_libc = "LGPL-2.1" > + lc_gcc = ["GPL-3.0", "GPL-2.0"][eat_get_gcc_version(ld) <= "4.2.1"] > + lc_rle = ["GPL-3.0-with-GCC-exception", "GPL-2.0-with-GCC-exception"][eat_get_gcc_version(ld) <= "4.3.3"] > + lc_gdb = ["GPL-3.0", "GPL-2.0"][eat_get_gdb_version(ld) <= "6.6"] > + lc_bfd = ["GPL-3.0", "GPL-2.0"][eat_get_bfd_version(ld) <= "2.17"] > + > + d.setVar('EAT_LIBC_LICENSE', lc_libc) > + d.setVar('EAT_GCC_LICENSE', lc_gcc) > + d.setVar('EAT_RLE_LICENSE', lc_rle) > + d.setVar('EAT_GDB_LICENSE', lc_gdb) > + d.setVar('EAT_BFD_LICENSE', lc_bfd) > + > + d.setVar('EAT_LICENSE', "%s & %s & %s & %s & %s" % (lc_libc, lc_gcc, lc_rle, lc_gdb, lc_bfd)) Do we really need this dynamic computation of license based on toolchain versions? As pre-built GNU Arm toolchains [1] only support versions > 8. [1] https://developer.arm.com/tools-and-software/open-source-software/developer-tools/gnu-toolchain/gnu-a/downloads -Sumit > } > addhandler external_arm_toolchain_version_handler > -- > 2.7.4 > > ^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: [meta-arm] [PATCH 2/4] external-arm-toolchain-versions: set per-components license based on version 2020-06-15 10:55 ` [meta-arm] " Sumit Garg @ 2020-06-15 18:14 ` Denys Dmytriyenko 2020-06-16 5:51 ` Sumit Garg 0 siblings, 1 reply; 12+ messages in thread From: Denys Dmytriyenko @ 2020-06-15 18:14 UTC (permalink / raw) To: Sumit Garg; +Cc: meta-arm, Denys Dmytriyenko On Mon, Jun 15, 2020 at 04:25:13PM +0530, Sumit Garg wrote: > On Mon, 15 Jun 2020 at 13:37, Denys Dmytriyenko <denis@denix.org> wrote: > > > > From: Denys Dmytriyenko <denys@ti.com> > > > > This code is upstreamed from meta-arago layer. > > > > Signed-off-by: Denys Dmytriyenko <denys@ti.com> > > --- > > .../include/external-arm-toolchain-versions.inc | 28 ++++++++++++++++++++++ > > 1 file changed, 28 insertions(+) > > > > diff --git a/meta-arm-toolchain/conf/distro/include/external-arm-toolchain-versions.inc b/meta-arm-toolchain/conf/distro/include/external-arm-toolchain-versions.inc > > index a89f2f0..6121adf 100644 > > --- a/meta-arm-toolchain/conf/distro/include/external-arm-toolchain-versions.inc > > +++ b/meta-arm-toolchain/conf/distro/include/external-arm-toolchain-versions.inc > > @@ -126,6 +126,20 @@ def eat_get_bfd_version(d): > > first_line = stdout.splitlines()[0] > > return first_line.split()[-1] > > > > +# Licenses set for main components of the toolchain: > > +# (g)libc is always LGPL version 2 (or later) > > +# gcc has switched from GPL version 2 (or later) to version 3 (or later) after 4.2.1, > > +# see this announcement - http://gcc.gnu.org/ml/gcc-announce/2007/msg00003.html > > +# libgcc and libstdc++ always had exceptions to GPL called Runtime Library Exception, but > > +# it was based on GPL version 2 (or later), until new GPL version 3 (or later) exception > > +# was introduced on 27 Jan 2009 - http://gcc.gnu.org/ml/gcc-announce/2009/msg00000.html > > +# and http://www.gnu.org/licenses/gcc-exception.html, which was several days after > > +# gcc 4.3.3 was released - http://gcc.gnu.org/releases.html > > +# gdb/gdbserver version 6.6 was the last one under GPL version 2 (or later), according > > +# to the release schedule - http://www.gnu.org/software/gdb/schedule/ > > +# binutils version 2.17 was the last one under GPL version 2 (or later), according > > +# to the published releases - http://ftp.gnu.org/gnu/binutils/ > > + > > python external_arm_toolchain_version_handler () { > > if not isinstance(e, bb.event.ConfigParsed): > > return > > @@ -139,5 +153,19 @@ python external_arm_toolchain_version_handler () { > > d.setVar('EAT_VER_KERNEL', eat_get_kernel_version(ld)) > > d.setVar('EAT_VER_GDB', eat_get_gdb_version(ld)) > > d.setVar('EAT_VER_BFD', eat_get_bfd_version(ld)) > > + > > + lc_libc = "LGPL-2.1" > > + lc_gcc = ["GPL-3.0", "GPL-2.0"][eat_get_gcc_version(ld) <= "4.2.1"] > > + lc_rle = ["GPL-3.0-with-GCC-exception", "GPL-2.0-with-GCC-exception"][eat_get_gcc_version(ld) <= "4.3.3"] > > + lc_gdb = ["GPL-3.0", "GPL-2.0"][eat_get_gdb_version(ld) <= "6.6"] > > + lc_bfd = ["GPL-3.0", "GPL-2.0"][eat_get_bfd_version(ld) <= "2.17"] > > + > > + d.setVar('EAT_LIBC_LICENSE', lc_libc) > > + d.setVar('EAT_GCC_LICENSE', lc_gcc) > > + d.setVar('EAT_RLE_LICENSE', lc_rle) > > + d.setVar('EAT_GDB_LICENSE', lc_gdb) > > + d.setVar('EAT_BFD_LICENSE', lc_bfd) > > + > > + d.setVar('EAT_LICENSE', "%s & %s & %s & %s & %s" % (lc_libc, lc_gcc, lc_rle, lc_gdb, lc_bfd)) > > Do we really need this dynamic computation of license based on > toolchain versions? As pre-built GNU Arm toolchains [1] only support > versions > 8. I needed gcc, gdb and binutils licenses set in central location for the new recipe and I already had this code handy, so I just copied it over. I guess we can drop the conditional part of it and set the vars statically. But setting them here is better than in the recipe, as they can be re-used in multiple recipes. -- Denys > [1] https://developer.arm.com/tools-and-software/open-source-software/developer-tools/gnu-toolchain/gnu-a/downloads > > -Sumit > > > } > > addhandler external_arm_toolchain_version_handler > > -- > > 2.7.4 > > > > > ^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: [meta-arm] [PATCH 2/4] external-arm-toolchain-versions: set per-components license based on version 2020-06-15 18:14 ` Denys Dmytriyenko @ 2020-06-16 5:51 ` Sumit Garg 2020-06-17 19:23 ` Denys Dmytriyenko 0 siblings, 1 reply; 12+ messages in thread From: Sumit Garg @ 2020-06-16 5:51 UTC (permalink / raw) To: Denys Dmytriyenko; +Cc: meta-arm, Denys Dmytriyenko On Mon, 15 Jun 2020 at 23:44, Denys Dmytriyenko <denis@denix.org> wrote: > > On Mon, Jun 15, 2020 at 04:25:13PM +0530, Sumit Garg wrote: > > On Mon, 15 Jun 2020 at 13:37, Denys Dmytriyenko <denis@denix.org> wrote: > > > > > > From: Denys Dmytriyenko <denys@ti.com> > > > > > > This code is upstreamed from meta-arago layer. > > > > > > Signed-off-by: Denys Dmytriyenko <denys@ti.com> > > > --- > > > .../include/external-arm-toolchain-versions.inc | 28 ++++++++++++++++++++++ > > > 1 file changed, 28 insertions(+) > > > > > > diff --git a/meta-arm-toolchain/conf/distro/include/external-arm-toolchain-versions.inc b/meta-arm-toolchain/conf/distro/include/external-arm-toolchain-versions.inc > > > index a89f2f0..6121adf 100644 > > > --- a/meta-arm-toolchain/conf/distro/include/external-arm-toolchain-versions.inc > > > +++ b/meta-arm-toolchain/conf/distro/include/external-arm-toolchain-versions.inc > > > @@ -126,6 +126,20 @@ def eat_get_bfd_version(d): > > > first_line = stdout.splitlines()[0] > > > return first_line.split()[-1] > > > > > > +# Licenses set for main components of the toolchain: > > > +# (g)libc is always LGPL version 2 (or later) > > > +# gcc has switched from GPL version 2 (or later) to version 3 (or later) after 4.2.1, > > > +# see this announcement - http://gcc.gnu.org/ml/gcc-announce/2007/msg00003.html > > > +# libgcc and libstdc++ always had exceptions to GPL called Runtime Library Exception, but > > > +# it was based on GPL version 2 (or later), until new GPL version 3 (or later) exception > > > +# was introduced on 27 Jan 2009 - http://gcc.gnu.org/ml/gcc-announce/2009/msg00000.html > > > +# and http://www.gnu.org/licenses/gcc-exception.html, which was several days after > > > +# gcc 4.3.3 was released - http://gcc.gnu.org/releases.html > > > +# gdb/gdbserver version 6.6 was the last one under GPL version 2 (or later), according > > > +# to the release schedule - http://www.gnu.org/software/gdb/schedule/ > > > +# binutils version 2.17 was the last one under GPL version 2 (or later), according > > > +# to the published releases - http://ftp.gnu.org/gnu/binutils/ > > > + > > > python external_arm_toolchain_version_handler () { > > > if not isinstance(e, bb.event.ConfigParsed): > > > return > > > @@ -139,5 +153,19 @@ python external_arm_toolchain_version_handler () { > > > d.setVar('EAT_VER_KERNEL', eat_get_kernel_version(ld)) > > > d.setVar('EAT_VER_GDB', eat_get_gdb_version(ld)) > > > d.setVar('EAT_VER_BFD', eat_get_bfd_version(ld)) > > > + > > > + lc_libc = "LGPL-2.1" > > > + lc_gcc = ["GPL-3.0", "GPL-2.0"][eat_get_gcc_version(ld) <= "4.2.1"] > > > + lc_rle = ["GPL-3.0-with-GCC-exception", "GPL-2.0-with-GCC-exception"][eat_get_gcc_version(ld) <= "4.3.3"] > > > + lc_gdb = ["GPL-3.0", "GPL-2.0"][eat_get_gdb_version(ld) <= "6.6"] > > > + lc_bfd = ["GPL-3.0", "GPL-2.0"][eat_get_bfd_version(ld) <= "2.17"] > > > + > > > + d.setVar('EAT_LIBC_LICENSE', lc_libc) > > > + d.setVar('EAT_GCC_LICENSE', lc_gcc) > > > + d.setVar('EAT_RLE_LICENSE', lc_rle) > > > + d.setVar('EAT_GDB_LICENSE', lc_gdb) > > > + d.setVar('EAT_BFD_LICENSE', lc_bfd) > > > + > > > + d.setVar('EAT_LICENSE', "%s & %s & %s & %s & %s" % (lc_libc, lc_gcc, lc_rle, lc_gdb, lc_bfd)) > > > > Do we really need this dynamic computation of license based on > > toolchain versions? As pre-built GNU Arm toolchains [1] only support > > versions > 8. > > I needed gcc, gdb and binutils licenses set in central location for the new > recipe and I already had this code handy, so I just copied it over. > > I guess we can drop the conditional part of it and set the vars statically. > But setting them here is better than in the recipe, as they can be re-used > in multiple recipes. > Sounds reasonable. Could you rebase it on top of mine patch-set and let license.inc [1] reuse these static defines? [1] https://lists.yoctoproject.org/g/meta-arm/message/647 -Sumit > -- > Denys > > > > [1] https://developer.arm.com/tools-and-software/open-source-software/developer-tools/gnu-toolchain/gnu-a/downloads > > > > -Sumit > > > > > } > > > addhandler external_arm_toolchain_version_handler > > > -- > > > 2.7.4 > > > > > > > > ^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: [meta-arm] [PATCH 2/4] external-arm-toolchain-versions: set per-components license based on version 2020-06-16 5:51 ` Sumit Garg @ 2020-06-17 19:23 ` Denys Dmytriyenko 0 siblings, 0 replies; 12+ messages in thread From: Denys Dmytriyenko @ 2020-06-17 19:23 UTC (permalink / raw) To: Sumit Garg; +Cc: meta-arm, Denys Dmytriyenko On Tue, Jun 16, 2020 at 11:21:08AM +0530, Sumit Garg wrote: > On Mon, 15 Jun 2020 at 23:44, Denys Dmytriyenko <denis@denix.org> wrote: > > > > On Mon, Jun 15, 2020 at 04:25:13PM +0530, Sumit Garg wrote: > > > On Mon, 15 Jun 2020 at 13:37, Denys Dmytriyenko <denis@denix.org> wrote: > > > > > > > > From: Denys Dmytriyenko <denys@ti.com> > > > > > > > > This code is upstreamed from meta-arago layer. > > > > > > > > Signed-off-by: Denys Dmytriyenko <denys@ti.com> > > > > --- > > > > .../include/external-arm-toolchain-versions.inc | 28 ++++++++++++++++++++++ > > > > 1 file changed, 28 insertions(+) > > > > > > > > diff --git a/meta-arm-toolchain/conf/distro/include/external-arm-toolchain-versions.inc b/meta-arm-toolchain/conf/distro/include/external-arm-toolchain-versions.inc > > > > index a89f2f0..6121adf 100644 > > > > --- a/meta-arm-toolchain/conf/distro/include/external-arm-toolchain-versions.inc > > > > +++ b/meta-arm-toolchain/conf/distro/include/external-arm-toolchain-versions.inc > > > > @@ -126,6 +126,20 @@ def eat_get_bfd_version(d): > > > > first_line = stdout.splitlines()[0] > > > > return first_line.split()[-1] > > > > > > > > +# Licenses set for main components of the toolchain: > > > > +# (g)libc is always LGPL version 2 (or later) > > > > +# gcc has switched from GPL version 2 (or later) to version 3 (or later) after 4.2.1, > > > > +# see this announcement - http://gcc.gnu.org/ml/gcc-announce/2007/msg00003.html > > > > +# libgcc and libstdc++ always had exceptions to GPL called Runtime Library Exception, but > > > > +# it was based on GPL version 2 (or later), until new GPL version 3 (or later) exception > > > > +# was introduced on 27 Jan 2009 - http://gcc.gnu.org/ml/gcc-announce/2009/msg00000.html > > > > +# and http://www.gnu.org/licenses/gcc-exception.html, which was several days after > > > > +# gcc 4.3.3 was released - http://gcc.gnu.org/releases.html > > > > +# gdb/gdbserver version 6.6 was the last one under GPL version 2 (or later), according > > > > +# to the release schedule - http://www.gnu.org/software/gdb/schedule/ > > > > +# binutils version 2.17 was the last one under GPL version 2 (or later), according > > > > +# to the published releases - http://ftp.gnu.org/gnu/binutils/ > > > > + > > > > python external_arm_toolchain_version_handler () { > > > > if not isinstance(e, bb.event.ConfigParsed): > > > > return > > > > @@ -139,5 +153,19 @@ python external_arm_toolchain_version_handler () { > > > > d.setVar('EAT_VER_KERNEL', eat_get_kernel_version(ld)) > > > > d.setVar('EAT_VER_GDB', eat_get_gdb_version(ld)) > > > > d.setVar('EAT_VER_BFD', eat_get_bfd_version(ld)) > > > > + > > > > + lc_libc = "LGPL-2.1" > > > > + lc_gcc = ["GPL-3.0", "GPL-2.0"][eat_get_gcc_version(ld) <= "4.2.1"] > > > > + lc_rle = ["GPL-3.0-with-GCC-exception", "GPL-2.0-with-GCC-exception"][eat_get_gcc_version(ld) <= "4.3.3"] > > > > + lc_gdb = ["GPL-3.0", "GPL-2.0"][eat_get_gdb_version(ld) <= "6.6"] > > > > + lc_bfd = ["GPL-3.0", "GPL-2.0"][eat_get_bfd_version(ld) <= "2.17"] > > > > + > > > > + d.setVar('EAT_LIBC_LICENSE', lc_libc) > > > > + d.setVar('EAT_GCC_LICENSE', lc_gcc) > > > > + d.setVar('EAT_RLE_LICENSE', lc_rle) > > > > + d.setVar('EAT_GDB_LICENSE', lc_gdb) > > > > + d.setVar('EAT_BFD_LICENSE', lc_bfd) > > > > + > > > > + d.setVar('EAT_LICENSE', "%s & %s & %s & %s & %s" % (lc_libc, lc_gcc, lc_rle, lc_gdb, lc_bfd)) > > > > > > Do we really need this dynamic computation of license based on > > > toolchain versions? As pre-built GNU Arm toolchains [1] only support > > > versions > 8. > > > > I needed gcc, gdb and binutils licenses set in central location for the new > > recipe and I already had this code handy, so I just copied it over. > > > > I guess we can drop the conditional part of it and set the vars statically. > > But setting them here is better than in the recipe, as they can be re-used > > in multiple recipes. > > > > Sounds reasonable. Could you rebase it on top of mine patch-set and > let license.inc [1] reuse these static defines? Sure, will do. > [1] https://lists.yoctoproject.org/g/meta-arm/message/647 > > -Sumit > > > -- > > Denys > > > > > > > [1] https://developer.arm.com/tools-and-software/open-source-software/developer-tools/gnu-toolchain/gnu-a/downloads > > > > > > -Sumit > > > > > > > } > > > > addhandler external_arm_toolchain_version_handler > > > > -- > > > > 2.7.4 > > > > > > > > > > > > ^ permalink raw reply [flat|nested] 12+ messages in thread
* [PATCH 3/4] external-arm-toolchain: check for TCLIBC being glibc 2020-06-15 8:07 [PATCH 1/4] external-arm-toolchain-versions: also collect binutils/bfd version Denys Dmytriyenko 2020-06-15 8:07 ` [PATCH 2/4] external-arm-toolchain-versions: set per-components license based on version Denys Dmytriyenko @ 2020-06-15 8:07 ` Denys Dmytriyenko 2020-06-15 8:07 ` [PATCH 4/4] external-arm-sdk-toolchain: add recipe to package gcc/gdb/binutils cross binaries Denys Dmytriyenko 2 siblings, 0 replies; 12+ messages in thread From: Denys Dmytriyenko @ 2020-06-15 8:07 UTC (permalink / raw) To: meta-arm; +Cc: Denys Dmytriyenko From: Denys Dmytriyenko <denys@ti.com> The old TARGET_OS check doesn't work, as it only checks for uclibc and musl at the end, while TARGET_OS is usually "linux-musleabi", uclibc has been deprecated and new options like "newlib" and "baremetal" were added. Plus it only works for the target, but not SDK. Switch to simply checking for TCLIBC = glibc. Signed-off-by: Denys Dmytriyenko <denys@ti.com> --- .../external-arm-toolchain/external-arm-toolchain.bb | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) diff --git a/meta-arm-toolchain/recipes-devtools/external-arm-toolchain/external-arm-toolchain.bb b/meta-arm-toolchain/recipes-devtools/external-arm-toolchain/external-arm-toolchain.bb index 8cfc208..cfceb56 100644 --- a/meta-arm-toolchain/recipes-devtools/external-arm-toolchain/external-arm-toolchain.bb +++ b/meta-arm-toolchain/recipes-devtools/external-arm-toolchain/external-arm-toolchain.bb @@ -655,13 +655,9 @@ SUMMARY_libitm-staticdev = "GNU transactional memory support library - static de EAT_VER_MAIN ??= "" - python () { if not d.getVar("EAT_VER_MAIN", False): raise bb.parse.SkipPackage("External ARM toolchain not configured (EAT_VER_MAIN not set).") - import re - notglibc = (re.match('.*uclibc$', d.getVar('TARGET_OS', True)) != None) or (re.match('.*musl$', d.getVar('TARGET_OS', True)) != None) - if notglibc: - raise bb.parse.SkipPackage("incompatible with target %s" % - d.getVar('TARGET_OS', True)) + if d.getVar('TCLIBC', True) != "glibc": + raise bb.parse.SkipPackage("incompatible with %s" % d.getVar('TCLIBC', True)) } -- 2.7.4 ^ permalink raw reply related [flat|nested] 12+ messages in thread
* [PATCH 4/4] external-arm-sdk-toolchain: add recipe to package gcc/gdb/binutils cross binaries 2020-06-15 8:07 [PATCH 1/4] external-arm-toolchain-versions: also collect binutils/bfd version Denys Dmytriyenko 2020-06-15 8:07 ` [PATCH 2/4] external-arm-toolchain-versions: set per-components license based on version Denys Dmytriyenko 2020-06-15 8:07 ` [PATCH 3/4] external-arm-toolchain: check for TCLIBC being glibc Denys Dmytriyenko @ 2020-06-15 8:07 ` Denys Dmytriyenko 2020-06-15 12:45 ` [meta-arm] " Sumit Garg 2 siblings, 1 reply; 12+ messages in thread From: Denys Dmytriyenko @ 2020-06-15 8:07 UTC (permalink / raw) To: meta-arm; +Cc: Denys Dmytriyenko From: Denys Dmytriyenko <denys@ti.com> Allows re-use of prebuilt ARM toolchain binaries for SDK generation. This code is upstreamed from meta-arago layer. Signed-off-by: Denys Dmytriyenko <denys@ti.com> --- .../conf/distro/include/tcmode-external-arm.inc | 4 + .../external-arm-sdk-toolchain.bb | 136 +++++++++++++++++++++ 2 files changed, 140 insertions(+) create mode 100644 meta-arm-toolchain/recipes-devtools/external-arm-toolchain/external-arm-sdk-toolchain.bb diff --git a/meta-arm-toolchain/conf/distro/include/tcmode-external-arm.inc b/meta-arm-toolchain/conf/distro/include/tcmode-external-arm.inc index 9171380..08b87ef 100644 --- a/meta-arm-toolchain/conf/distro/include/tcmode-external-arm.inc +++ b/meta-arm-toolchain/conf/distro/include/tcmode-external-arm.inc @@ -45,6 +45,10 @@ PREFERRED_PROVIDER_glibc-mtrace = "external-arm-toolchain" PREFERRED_PROVIDER_libc-mtrace = "external-arm-toolchain" PREFERRED_PROVIDER_virtual/linux-libc-headers = "external-arm-toolchain" +PREFERRED_PROVIDER_gcc-cross-canadian-${TRANSLATED_TARGET_ARCH} ?= "external-arm-sdk-toolchain-${TRANSLATED_TARGET_ARCH}" +PREFERRED_PROVIDER_binutils-cross-canadian-${TRANSLATED_TARGET_ARCH} ?= "external-arm-sdk-toolchain-${TRANSLATED_TARGET_ARCH}" +PREFERRED_PROVIDER_gdb-cross-canadian-${TRANSLATED_TARGET_ARCH} ?= "external-arm-sdk-toolchain-${TRANSLATED_TARGET_ARCH}" + TOOLCHAIN_OPTIONS = " --sysroot=${STAGING_DIR_HOST}" DISTRO_FEATURES_LIBC = "ipv4 ipv6 libc-backtrace libc-big-macros libc-bsd libc-cxx-tests libc-catgets libc-crypt \ diff --git a/meta-arm-toolchain/recipes-devtools/external-arm-toolchain/external-arm-sdk-toolchain.bb b/meta-arm-toolchain/recipes-devtools/external-arm-toolchain/external-arm-sdk-toolchain.bb new file mode 100644 index 0000000..88fd20e --- /dev/null +++ b/meta-arm-toolchain/recipes-devtools/external-arm-toolchain/external-arm-sdk-toolchain.bb @@ -0,0 +1,136 @@ +inherit cross-canadian + +PN = "external-arm-sdk-toolchain-${TARGET_ARCH}" +BPN = "external-arm-sdk-toolchain" + +INHIBIT_PACKAGE_DEBUG_SPLIT = "1" +INHIBIT_PACKAGE_STRIP = "1" +INHIBIT_SYSROOT_STRIP = "1" +INHIBIT_DEFAULT_DEPS = "1" +EXCLUDE_FROM_SHLIBS = "1" + +EAT_LICENSE ??= "" + +LICENSE = "${EAT_LICENSE}" +LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/MIT;md5=0835ade698e0bcf8506ecda2f7b4f302" + +INSANE_SKIP_gcc-cross-canadian-${TRANSLATED_TARGET_ARCH} = "dev-so staticdev file-rdeps libdir" +INSANE_SKIP_gdb-cross-canadian-${TRANSLATED_TARGET_ARCH} = "dev-so file-rdeps" +INSANE_SKIP_binutils-cross-canadian-${TRANSLATED_TARGET_ARCH} = "dev-so file-rdeps" + +PROVIDES = "\ + gcc-cross-canadian-${TRANSLATED_TARGET_ARCH} \ + gdb-cross-canadian-${TRANSLATED_TARGET_ARCH} \ + binutils-cross-canadian-${TRANSLATED_TARGET_ARCH} \ +" + +PACKAGES = "\ + gcc-cross-canadian-${TRANSLATED_TARGET_ARCH} \ + gdb-cross-canadian-${TRANSLATED_TARGET_ARCH} \ + binutils-cross-canadian-${TRANSLATED_TARGET_ARCH} \ +" + +# Adjust defaults in line with external toolchain +bindir = "${exec_prefix}/bin" +libdir = "${exec_prefix}/lib" +libexecdir = "${exec_prefix}/libexec" +datadir = "${exec_prefix}/share" +gcclibdir = "${libdir}/gcc" + +FILES_gcc-cross-canadian-${TRANSLATED_TARGET_ARCH} = "\ + ${prefix}/${EAT_TARGET_SYS}/lib/libstdc++.* \ + ${prefix}/${EAT_TARGET_SYS}/lib/libgcc_s.* \ + ${prefix}/${EAT_TARGET_SYS}/lib/libsupc++.* \ + ${gcclibdir}/${EAT_TARGET_SYS}/${EAT_VER_GCC}/* \ + ${bindir}/${TARGET_PREFIX}gcov \ + ${bindir}/${TARGET_PREFIX}gcc* \ + ${bindir}/${TARGET_PREFIX}g++ \ + ${bindir}/${TARGET_PREFIX}cpp \ + ${libexecdir}/* \ +" + +FILES_gdb-cross-canadian-${TRANSLATED_TARGET_ARCH} = "\ + ${bindir}/${TARGET_PREFIX}gdb* \ + ${datadir}/gdb/* \ +" + +FILES_binutils-cross-canadian-${TRANSLATED_TARGET_ARCH} = "\ + ${prefix}/${EAT_TARGET_SYS}/bin/ld* \ + ${prefix}/${EAT_TARGET_SYS}/bin/objcopy \ + ${prefix}/${EAT_TARGET_SYS}/bin/strip \ + ${prefix}/${EAT_TARGET_SYS}/bin/nm \ + ${prefix}/${EAT_TARGET_SYS}/bin/ranlib \ + ${prefix}/${EAT_TARGET_SYS}/bin/as \ + ${prefix}/${EAT_TARGET_SYS}/bin/ar \ + ${prefix}/${EAT_TARGET_SYS}/bin/objdump \ + ${prefix}/${EAT_TARGET_SYS}/lib/ldscripts/* \ + ${bindir}/${TARGET_PREFIX}ld* \ + ${bindir}/${TARGET_PREFIX}addr2line \ + ${bindir}/${TARGET_PREFIX}objcopy \ + ${bindir}/${TARGET_PREFIX}readelf \ + ${bindir}/${TARGET_PREFIX}strip \ + ${bindir}/${TARGET_PREFIX}nm \ + ${bindir}/${TARGET_PREFIX}ranlib \ + ${bindir}/${TARGET_PREFIX}gprof \ + ${bindir}/${TARGET_PREFIX}as \ + ${bindir}/${TARGET_PREFIX}c++filt \ + ${bindir}/${TARGET_PREFIX}ar \ + ${bindir}/${TARGET_PREFIX}strings \ + ${bindir}/${TARGET_PREFIX}objdump \ + ${bindir}/${TARGET_PREFIX}size \ +" + +DESCRIPTION_gcc-cross-canadian-${TRANSLATED_TARGET_ARCH} = "The GNU cc and gcc C compilers" +DESCRIPTION_gdb-cross-canadian-${TRANSLATED_TARGET_ARCH} = "gdb - GNU debugger" +DESCRIPTION_binutils-cross-canadian-${TRANSLATED_TARGET_ARCH} = "A GNU collection of binary utilities" + +LICENSE_gcc-cross-canadian-${TRANSLATED_TARGET_ARCH} = "${EAT_GCC_LICENSE}" +LICENSE_gdb-cross-canadian-${TRANSLATED_TARGET_ARCH} = "${EAT_GDB_LICENSE}" +LICENSE_binutils-cross-canadian-${TRANSLATED_TARGET_ARCH} = "${EAT_BFD_LICENSE}" + +PKGV_gcc-cross-canadian-${TRANSLATED_TARGET_ARCH} = "${EAT_VER_GCC}" +PKGV_gdb-cross-canadian-${TRANSLATED_TARGET_ARCH} = "${EAT_VER_GDB}" +PKGV_binutils-cross-canadian-${TRANSLATED_TARGET_ARCH} = "${EAT_VER_BFD}" + +do_install() { + install -d ${D}${prefix}/${EAT_TARGET_SYS}/bin + install -d ${D}${prefix}/${EAT_TARGET_SYS}/lib + install -d ${D}${bindir} + install -d ${D}${libdir} + install -d ${D}${prefix}/${EAT_TARGET_SYS}/lib/ldscripts + install -d ${D}${libexecdir} + install -d ${D}${datadir}/gdb + install -d ${D}${gcclibdir}/${EAT_TARGET_SYS}/${EAT_VER_GCC}/include + + CP_ARGS="-Prf --preserve=mode,timestamps --no-preserve=ownership" + + # gcc + for i in libstdc++.* libgcc_s.* libsupc++.*; do + cp ${CP_ARGS} ${EXTERNAL_TOOLCHAIN}/${EAT_TARGET_SYS}/${EAT_LIBDIR}/$i ${D}${prefix}/${EAT_TARGET_SYS}/lib + done + cp ${CP_ARGS} ${EXTERNAL_TOOLCHAIN}/lib/gcc/${EAT_TARGET_SYS}/${EAT_VER_GCC}/* ${D}${gcclibdir}/${EAT_TARGET_SYS}/${EAT_VER_GCC} + for i in gcov gcc* g++ cpp; do + cp ${CP_ARGS} ${EXTERNAL_TOOLCHAIN}/bin/${TARGET_PREFIX}$i ${D}${bindir} + done + cp ${CP_ARGS} ${EXTERNAL_TOOLCHAIN}/libexec/* ${D}${libexecdir} + + # gdb + cp ${CP_ARGS} ${EXTERNAL_TOOLCHAIN}/bin/${TARGET_PREFIX}gdb* ${D}${bindir} + cp ${CP_ARGS} ${EXTERNAL_TOOLCHAIN}/share/gdb/* ${D}${datadir}/gdb/ + + # binutils + for i in ld* objcopy strip nm ranlib as ar objdump; do + cp ${CP_ARGS} ${EXTERNAL_TOOLCHAIN}/${EAT_TARGET_SYS}/bin/$i ${D}${prefix}/${EAT_TARGET_SYS}/bin + done + cp ${CP_ARGS} ${EXTERNAL_TOOLCHAIN}/${EAT_TARGET_SYS}/lib/ldscripts/* ${D}${prefix}/${EAT_TARGET_SYS}/lib/ldscripts + for i in ld* addr2line objcopy readelf strip nm ranlib gprof as c++filt ar strings objdump size; do + cp ${CP_ARGS} ${EXTERNAL_TOOLCHAIN}/bin/${TARGET_PREFIX}$i ${D}${bindir} + done +} + +python () { + if not d.getVar("EAT_VER_MAIN", False): + raise bb.parse.SkipPackage("External ARM toolchain not configured (EAT_VER_MAIN not set).") + if d.getVar('TCLIBC', True) != "glibc": + raise bb.parse.SkipPackage("incompatible with %s" % d.getVar('TCLIBC', True)) +} -- 2.7.4 ^ permalink raw reply related [flat|nested] 12+ messages in thread
* Re: [meta-arm] [PATCH 4/4] external-arm-sdk-toolchain: add recipe to package gcc/gdb/binutils cross binaries 2020-06-15 8:07 ` [PATCH 4/4] external-arm-sdk-toolchain: add recipe to package gcc/gdb/binutils cross binaries Denys Dmytriyenko @ 2020-06-15 12:45 ` Sumit Garg 2020-06-15 18:20 ` Denys Dmytriyenko 0 siblings, 1 reply; 12+ messages in thread From: Sumit Garg @ 2020-06-15 12:45 UTC (permalink / raw) To: Denys Dmytriyenko; +Cc: meta-arm, Denys Dmytriyenko On Mon, 15 Jun 2020 at 13:37, Denys Dmytriyenko <denis@denix.org> wrote: > > From: Denys Dmytriyenko <denys@ti.com> > > Allows re-use of prebuilt ARM toolchain binaries for SDK generation. > > This code is upstreamed from meta-arago layer. > > Signed-off-by: Denys Dmytriyenko <denys@ti.com> > --- > .../conf/distro/include/tcmode-external-arm.inc | 4 + > .../external-arm-sdk-toolchain.bb | 136 +++++++++++++++++++++ > 2 files changed, 140 insertions(+) > create mode 100644 meta-arm-toolchain/recipes-devtools/external-arm-toolchain/external-arm-sdk-toolchain.bb > Thanks for pushing this recipe upstream. It's good to have the tools binaries packaged in SDK from pre-built toolchain rather than building from source. So I just gave it a try using poky distro which fails with following error: $ bitbake -c populate_sdk core-image-base <snip> Error: Problem: package packagegroup-cross-canadian-qemuarm64-1.0-r0.x86_64_nativesdk requires gdb-cross-canadian-aarch64, but none of the providers can be installed - conflicting requests - nothing provides libpython2.7.so.1.0()(64bit) needed by gdb-cross-canadian-aarch64-8.3.0.20190709+git-r0.x86_64_nativesdk (try to add '--skip-broken' to skip uninstallable packages) <snip> Is there something that I missed while testing? -Sumit > diff --git a/meta-arm-toolchain/conf/distro/include/tcmode-external-arm.inc b/meta-arm-toolchain/conf/distro/include/tcmode-external-arm.inc > index 9171380..08b87ef 100644 > --- a/meta-arm-toolchain/conf/distro/include/tcmode-external-arm.inc > +++ b/meta-arm-toolchain/conf/distro/include/tcmode-external-arm.inc > @@ -45,6 +45,10 @@ PREFERRED_PROVIDER_glibc-mtrace = "external-arm-toolchain" > PREFERRED_PROVIDER_libc-mtrace = "external-arm-toolchain" > PREFERRED_PROVIDER_virtual/linux-libc-headers = "external-arm-toolchain" > > +PREFERRED_PROVIDER_gcc-cross-canadian-${TRANSLATED_TARGET_ARCH} ?= "external-arm-sdk-toolchain-${TRANSLATED_TARGET_ARCH}" > +PREFERRED_PROVIDER_binutils-cross-canadian-${TRANSLATED_TARGET_ARCH} ?= "external-arm-sdk-toolchain-${TRANSLATED_TARGET_ARCH}" > +PREFERRED_PROVIDER_gdb-cross-canadian-${TRANSLATED_TARGET_ARCH} ?= "external-arm-sdk-toolchain-${TRANSLATED_TARGET_ARCH}" > + > TOOLCHAIN_OPTIONS = " --sysroot=${STAGING_DIR_HOST}" > > DISTRO_FEATURES_LIBC = "ipv4 ipv6 libc-backtrace libc-big-macros libc-bsd libc-cxx-tests libc-catgets libc-crypt \ > diff --git a/meta-arm-toolchain/recipes-devtools/external-arm-toolchain/external-arm-sdk-toolchain.bb b/meta-arm-toolchain/recipes-devtools/external-arm-toolchain/external-arm-sdk-toolchain.bb > new file mode 100644 > index 0000000..88fd20e > --- /dev/null > +++ b/meta-arm-toolchain/recipes-devtools/external-arm-toolchain/external-arm-sdk-toolchain.bb > @@ -0,0 +1,136 @@ > +inherit cross-canadian > + > +PN = "external-arm-sdk-toolchain-${TARGET_ARCH}" > +BPN = "external-arm-sdk-toolchain" > + > +INHIBIT_PACKAGE_DEBUG_SPLIT = "1" > +INHIBIT_PACKAGE_STRIP = "1" > +INHIBIT_SYSROOT_STRIP = "1" > +INHIBIT_DEFAULT_DEPS = "1" > +EXCLUDE_FROM_SHLIBS = "1" > + > +EAT_LICENSE ??= "" > + > +LICENSE = "${EAT_LICENSE}" > +LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/MIT;md5=0835ade698e0bcf8506ecda2f7b4f302" > + > +INSANE_SKIP_gcc-cross-canadian-${TRANSLATED_TARGET_ARCH} = "dev-so staticdev file-rdeps libdir" > +INSANE_SKIP_gdb-cross-canadian-${TRANSLATED_TARGET_ARCH} = "dev-so file-rdeps" > +INSANE_SKIP_binutils-cross-canadian-${TRANSLATED_TARGET_ARCH} = "dev-so file-rdeps" > + > +PROVIDES = "\ > + gcc-cross-canadian-${TRANSLATED_TARGET_ARCH} \ > + gdb-cross-canadian-${TRANSLATED_TARGET_ARCH} \ > + binutils-cross-canadian-${TRANSLATED_TARGET_ARCH} \ > +" > + > +PACKAGES = "\ > + gcc-cross-canadian-${TRANSLATED_TARGET_ARCH} \ > + gdb-cross-canadian-${TRANSLATED_TARGET_ARCH} \ > + binutils-cross-canadian-${TRANSLATED_TARGET_ARCH} \ > +" > + > +# Adjust defaults in line with external toolchain > +bindir = "${exec_prefix}/bin" > +libdir = "${exec_prefix}/lib" > +libexecdir = "${exec_prefix}/libexec" > +datadir = "${exec_prefix}/share" > +gcclibdir = "${libdir}/gcc" > + > +FILES_gcc-cross-canadian-${TRANSLATED_TARGET_ARCH} = "\ > + ${prefix}/${EAT_TARGET_SYS}/lib/libstdc++.* \ > + ${prefix}/${EAT_TARGET_SYS}/lib/libgcc_s.* \ > + ${prefix}/${EAT_TARGET_SYS}/lib/libsupc++.* \ > + ${gcclibdir}/${EAT_TARGET_SYS}/${EAT_VER_GCC}/* \ > + ${bindir}/${TARGET_PREFIX}gcov \ > + ${bindir}/${TARGET_PREFIX}gcc* \ > + ${bindir}/${TARGET_PREFIX}g++ \ > + ${bindir}/${TARGET_PREFIX}cpp \ > + ${libexecdir}/* \ > +" > + > +FILES_gdb-cross-canadian-${TRANSLATED_TARGET_ARCH} = "\ > + ${bindir}/${TARGET_PREFIX}gdb* \ > + ${datadir}/gdb/* \ > +" > + > +FILES_binutils-cross-canadian-${TRANSLATED_TARGET_ARCH} = "\ > + ${prefix}/${EAT_TARGET_SYS}/bin/ld* \ > + ${prefix}/${EAT_TARGET_SYS}/bin/objcopy \ > + ${prefix}/${EAT_TARGET_SYS}/bin/strip \ > + ${prefix}/${EAT_TARGET_SYS}/bin/nm \ > + ${prefix}/${EAT_TARGET_SYS}/bin/ranlib \ > + ${prefix}/${EAT_TARGET_SYS}/bin/as \ > + ${prefix}/${EAT_TARGET_SYS}/bin/ar \ > + ${prefix}/${EAT_TARGET_SYS}/bin/objdump \ > + ${prefix}/${EAT_TARGET_SYS}/lib/ldscripts/* \ > + ${bindir}/${TARGET_PREFIX}ld* \ > + ${bindir}/${TARGET_PREFIX}addr2line \ > + ${bindir}/${TARGET_PREFIX}objcopy \ > + ${bindir}/${TARGET_PREFIX}readelf \ > + ${bindir}/${TARGET_PREFIX}strip \ > + ${bindir}/${TARGET_PREFIX}nm \ > + ${bindir}/${TARGET_PREFIX}ranlib \ > + ${bindir}/${TARGET_PREFIX}gprof \ > + ${bindir}/${TARGET_PREFIX}as \ > + ${bindir}/${TARGET_PREFIX}c++filt \ > + ${bindir}/${TARGET_PREFIX}ar \ > + ${bindir}/${TARGET_PREFIX}strings \ > + ${bindir}/${TARGET_PREFIX}objdump \ > + ${bindir}/${TARGET_PREFIX}size \ > +" > + > +DESCRIPTION_gcc-cross-canadian-${TRANSLATED_TARGET_ARCH} = "The GNU cc and gcc C compilers" > +DESCRIPTION_gdb-cross-canadian-${TRANSLATED_TARGET_ARCH} = "gdb - GNU debugger" > +DESCRIPTION_binutils-cross-canadian-${TRANSLATED_TARGET_ARCH} = "A GNU collection of binary utilities" > + > +LICENSE_gcc-cross-canadian-${TRANSLATED_TARGET_ARCH} = "${EAT_GCC_LICENSE}" > +LICENSE_gdb-cross-canadian-${TRANSLATED_TARGET_ARCH} = "${EAT_GDB_LICENSE}" > +LICENSE_binutils-cross-canadian-${TRANSLATED_TARGET_ARCH} = "${EAT_BFD_LICENSE}" > + > +PKGV_gcc-cross-canadian-${TRANSLATED_TARGET_ARCH} = "${EAT_VER_GCC}" > +PKGV_gdb-cross-canadian-${TRANSLATED_TARGET_ARCH} = "${EAT_VER_GDB}" > +PKGV_binutils-cross-canadian-${TRANSLATED_TARGET_ARCH} = "${EAT_VER_BFD}" > + > +do_install() { > + install -d ${D}${prefix}/${EAT_TARGET_SYS}/bin > + install -d ${D}${prefix}/${EAT_TARGET_SYS}/lib > + install -d ${D}${bindir} > + install -d ${D}${libdir} > + install -d ${D}${prefix}/${EAT_TARGET_SYS}/lib/ldscripts > + install -d ${D}${libexecdir} > + install -d ${D}${datadir}/gdb > + install -d ${D}${gcclibdir}/${EAT_TARGET_SYS}/${EAT_VER_GCC}/include > + > + CP_ARGS="-Prf --preserve=mode,timestamps --no-preserve=ownership" > + > + # gcc > + for i in libstdc++.* libgcc_s.* libsupc++.*; do > + cp ${CP_ARGS} ${EXTERNAL_TOOLCHAIN}/${EAT_TARGET_SYS}/${EAT_LIBDIR}/$i ${D}${prefix}/${EAT_TARGET_SYS}/lib > + done > + cp ${CP_ARGS} ${EXTERNAL_TOOLCHAIN}/lib/gcc/${EAT_TARGET_SYS}/${EAT_VER_GCC}/* ${D}${gcclibdir}/${EAT_TARGET_SYS}/${EAT_VER_GCC} > + for i in gcov gcc* g++ cpp; do > + cp ${CP_ARGS} ${EXTERNAL_TOOLCHAIN}/bin/${TARGET_PREFIX}$i ${D}${bindir} > + done > + cp ${CP_ARGS} ${EXTERNAL_TOOLCHAIN}/libexec/* ${D}${libexecdir} > + > + # gdb > + cp ${CP_ARGS} ${EXTERNAL_TOOLCHAIN}/bin/${TARGET_PREFIX}gdb* ${D}${bindir} > + cp ${CP_ARGS} ${EXTERNAL_TOOLCHAIN}/share/gdb/* ${D}${datadir}/gdb/ > + > + # binutils > + for i in ld* objcopy strip nm ranlib as ar objdump; do > + cp ${CP_ARGS} ${EXTERNAL_TOOLCHAIN}/${EAT_TARGET_SYS}/bin/$i ${D}${prefix}/${EAT_TARGET_SYS}/bin > + done > + cp ${CP_ARGS} ${EXTERNAL_TOOLCHAIN}/${EAT_TARGET_SYS}/lib/ldscripts/* ${D}${prefix}/${EAT_TARGET_SYS}/lib/ldscripts > + for i in ld* addr2line objcopy readelf strip nm ranlib gprof as c++filt ar strings objdump size; do > + cp ${CP_ARGS} ${EXTERNAL_TOOLCHAIN}/bin/${TARGET_PREFIX}$i ${D}${bindir} > + done > +} > + > +python () { > + if not d.getVar("EAT_VER_MAIN", False): > + raise bb.parse.SkipPackage("External ARM toolchain not configured (EAT_VER_MAIN not set).") > + if d.getVar('TCLIBC', True) != "glibc": > + raise bb.parse.SkipPackage("incompatible with %s" % d.getVar('TCLIBC', True)) > +} > -- > 2.7.4 > > ^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: [meta-arm] [PATCH 4/4] external-arm-sdk-toolchain: add recipe to package gcc/gdb/binutils cross binaries 2020-06-15 12:45 ` [meta-arm] " Sumit Garg @ 2020-06-15 18:20 ` Denys Dmytriyenko 2020-06-16 5:56 ` Sumit Garg 0 siblings, 1 reply; 12+ messages in thread From: Denys Dmytriyenko @ 2020-06-15 18:20 UTC (permalink / raw) To: Sumit Garg; +Cc: meta-arm, Denys Dmytriyenko On Mon, Jun 15, 2020 at 06:15:17PM +0530, Sumit Garg wrote: > On Mon, 15 Jun 2020 at 13:37, Denys Dmytriyenko <denis@denix.org> wrote: > > > > From: Denys Dmytriyenko <denys@ti.com> > > > > Allows re-use of prebuilt ARM toolchain binaries for SDK generation. > > > > This code is upstreamed from meta-arago layer. > > > > Signed-off-by: Denys Dmytriyenko <denys@ti.com> > > --- > > .../conf/distro/include/tcmode-external-arm.inc | 4 + > > .../external-arm-sdk-toolchain.bb | 136 +++++++++++++++++++++ > > 2 files changed, 140 insertions(+) > > create mode 100644 meta-arm-toolchain/recipes-devtools/external-arm-toolchain/external-arm-sdk-toolchain.bb > > > > Thanks for pushing this recipe upstream. It's good to have the tools > binaries packaged in SDK from pre-built toolchain rather than building > from source. > > So I just gave it a try using poky distro which fails with following error: > > $ bitbake -c populate_sdk core-image-base > <snip> > Error: > Problem: package > packagegroup-cross-canadian-qemuarm64-1.0-r0.x86_64_nativesdk requires > gdb-cross-canadian-aarch64, but none of the providers can be installed > - conflicting requests > - nothing provides libpython2.7.so.1.0()(64bit) needed by > gdb-cross-canadian-aarch64-8.3.0.20190709+git-r0.x86_64_nativesdk ^^^ looks like 8.3 toolchain has some python2-linked binaries, which would require dependency on meta-python2. Let me check which binary is that, maybe we can just drop it. Or we can just skip this check with INSANE_SKIP... BTW, I don't see this issue with 9.2 toolchain. -- Denys > (try to add '--skip-broken' to skip uninstallable packages) > <snip> > > Is there something that I missed while testing? > > -Sumit > > > diff --git a/meta-arm-toolchain/conf/distro/include/tcmode-external-arm.inc b/meta-arm-toolchain/conf/distro/include/tcmode-external-arm.inc > > index 9171380..08b87ef 100644 > > --- a/meta-arm-toolchain/conf/distro/include/tcmode-external-arm.inc > > +++ b/meta-arm-toolchain/conf/distro/include/tcmode-external-arm.inc > > @@ -45,6 +45,10 @@ PREFERRED_PROVIDER_glibc-mtrace = "external-arm-toolchain" > > PREFERRED_PROVIDER_libc-mtrace = "external-arm-toolchain" > > PREFERRED_PROVIDER_virtual/linux-libc-headers = "external-arm-toolchain" > > > > +PREFERRED_PROVIDER_gcc-cross-canadian-${TRANSLATED_TARGET_ARCH} ?= "external-arm-sdk-toolchain-${TRANSLATED_TARGET_ARCH}" > > +PREFERRED_PROVIDER_binutils-cross-canadian-${TRANSLATED_TARGET_ARCH} ?= "external-arm-sdk-toolchain-${TRANSLATED_TARGET_ARCH}" > > +PREFERRED_PROVIDER_gdb-cross-canadian-${TRANSLATED_TARGET_ARCH} ?= "external-arm-sdk-toolchain-${TRANSLATED_TARGET_ARCH}" > > + > > TOOLCHAIN_OPTIONS = " --sysroot=${STAGING_DIR_HOST}" > > > > DISTRO_FEATURES_LIBC = "ipv4 ipv6 libc-backtrace libc-big-macros libc-bsd libc-cxx-tests libc-catgets libc-crypt \ > > diff --git a/meta-arm-toolchain/recipes-devtools/external-arm-toolchain/external-arm-sdk-toolchain.bb b/meta-arm-toolchain/recipes-devtools/external-arm-toolchain/external-arm-sdk-toolchain.bb > > new file mode 100644 > > index 0000000..88fd20e > > --- /dev/null > > +++ b/meta-arm-toolchain/recipes-devtools/external-arm-toolchain/external-arm-sdk-toolchain.bb > > @@ -0,0 +1,136 @@ > > +inherit cross-canadian > > + > > +PN = "external-arm-sdk-toolchain-${TARGET_ARCH}" > > +BPN = "external-arm-sdk-toolchain" > > + > > +INHIBIT_PACKAGE_DEBUG_SPLIT = "1" > > +INHIBIT_PACKAGE_STRIP = "1" > > +INHIBIT_SYSROOT_STRIP = "1" > > +INHIBIT_DEFAULT_DEPS = "1" > > +EXCLUDE_FROM_SHLIBS = "1" > > + > > +EAT_LICENSE ??= "" > > + > > +LICENSE = "${EAT_LICENSE}" > > +LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/MIT;md5=0835ade698e0bcf8506ecda2f7b4f302" > > + > > +INSANE_SKIP_gcc-cross-canadian-${TRANSLATED_TARGET_ARCH} = "dev-so staticdev file-rdeps libdir" > > +INSANE_SKIP_gdb-cross-canadian-${TRANSLATED_TARGET_ARCH} = "dev-so file-rdeps" > > +INSANE_SKIP_binutils-cross-canadian-${TRANSLATED_TARGET_ARCH} = "dev-so file-rdeps" > > + > > +PROVIDES = "\ > > + gcc-cross-canadian-${TRANSLATED_TARGET_ARCH} \ > > + gdb-cross-canadian-${TRANSLATED_TARGET_ARCH} \ > > + binutils-cross-canadian-${TRANSLATED_TARGET_ARCH} \ > > +" > > + > > +PACKAGES = "\ > > + gcc-cross-canadian-${TRANSLATED_TARGET_ARCH} \ > > + gdb-cross-canadian-${TRANSLATED_TARGET_ARCH} \ > > + binutils-cross-canadian-${TRANSLATED_TARGET_ARCH} \ > > +" > > + > > +# Adjust defaults in line with external toolchain > > +bindir = "${exec_prefix}/bin" > > +libdir = "${exec_prefix}/lib" > > +libexecdir = "${exec_prefix}/libexec" > > +datadir = "${exec_prefix}/share" > > +gcclibdir = "${libdir}/gcc" > > + > > +FILES_gcc-cross-canadian-${TRANSLATED_TARGET_ARCH} = "\ > > + ${prefix}/${EAT_TARGET_SYS}/lib/libstdc++.* \ > > + ${prefix}/${EAT_TARGET_SYS}/lib/libgcc_s.* \ > > + ${prefix}/${EAT_TARGET_SYS}/lib/libsupc++.* \ > > + ${gcclibdir}/${EAT_TARGET_SYS}/${EAT_VER_GCC}/* \ > > + ${bindir}/${TARGET_PREFIX}gcov \ > > + ${bindir}/${TARGET_PREFIX}gcc* \ > > + ${bindir}/${TARGET_PREFIX}g++ \ > > + ${bindir}/${TARGET_PREFIX}cpp \ > > + ${libexecdir}/* \ > > +" > > + > > +FILES_gdb-cross-canadian-${TRANSLATED_TARGET_ARCH} = "\ > > + ${bindir}/${TARGET_PREFIX}gdb* \ > > + ${datadir}/gdb/* \ > > +" > > + > > +FILES_binutils-cross-canadian-${TRANSLATED_TARGET_ARCH} = "\ > > + ${prefix}/${EAT_TARGET_SYS}/bin/ld* \ > > + ${prefix}/${EAT_TARGET_SYS}/bin/objcopy \ > > + ${prefix}/${EAT_TARGET_SYS}/bin/strip \ > > + ${prefix}/${EAT_TARGET_SYS}/bin/nm \ > > + ${prefix}/${EAT_TARGET_SYS}/bin/ranlib \ > > + ${prefix}/${EAT_TARGET_SYS}/bin/as \ > > + ${prefix}/${EAT_TARGET_SYS}/bin/ar \ > > + ${prefix}/${EAT_TARGET_SYS}/bin/objdump \ > > + ${prefix}/${EAT_TARGET_SYS}/lib/ldscripts/* \ > > + ${bindir}/${TARGET_PREFIX}ld* \ > > + ${bindir}/${TARGET_PREFIX}addr2line \ > > + ${bindir}/${TARGET_PREFIX}objcopy \ > > + ${bindir}/${TARGET_PREFIX}readelf \ > > + ${bindir}/${TARGET_PREFIX}strip \ > > + ${bindir}/${TARGET_PREFIX}nm \ > > + ${bindir}/${TARGET_PREFIX}ranlib \ > > + ${bindir}/${TARGET_PREFIX}gprof \ > > + ${bindir}/${TARGET_PREFIX}as \ > > + ${bindir}/${TARGET_PREFIX}c++filt \ > > + ${bindir}/${TARGET_PREFIX}ar \ > > + ${bindir}/${TARGET_PREFIX}strings \ > > + ${bindir}/${TARGET_PREFIX}objdump \ > > + ${bindir}/${TARGET_PREFIX}size \ > > +" > > + > > +DESCRIPTION_gcc-cross-canadian-${TRANSLATED_TARGET_ARCH} = "The GNU cc and gcc C compilers" > > +DESCRIPTION_gdb-cross-canadian-${TRANSLATED_TARGET_ARCH} = "gdb - GNU debugger" > > +DESCRIPTION_binutils-cross-canadian-${TRANSLATED_TARGET_ARCH} = "A GNU collection of binary utilities" > > + > > +LICENSE_gcc-cross-canadian-${TRANSLATED_TARGET_ARCH} = "${EAT_GCC_LICENSE}" > > +LICENSE_gdb-cross-canadian-${TRANSLATED_TARGET_ARCH} = "${EAT_GDB_LICENSE}" > > +LICENSE_binutils-cross-canadian-${TRANSLATED_TARGET_ARCH} = "${EAT_BFD_LICENSE}" > > + > > +PKGV_gcc-cross-canadian-${TRANSLATED_TARGET_ARCH} = "${EAT_VER_GCC}" > > +PKGV_gdb-cross-canadian-${TRANSLATED_TARGET_ARCH} = "${EAT_VER_GDB}" > > +PKGV_binutils-cross-canadian-${TRANSLATED_TARGET_ARCH} = "${EAT_VER_BFD}" > > + > > +do_install() { > > + install -d ${D}${prefix}/${EAT_TARGET_SYS}/bin > > + install -d ${D}${prefix}/${EAT_TARGET_SYS}/lib > > + install -d ${D}${bindir} > > + install -d ${D}${libdir} > > + install -d ${D}${prefix}/${EAT_TARGET_SYS}/lib/ldscripts > > + install -d ${D}${libexecdir} > > + install -d ${D}${datadir}/gdb > > + install -d ${D}${gcclibdir}/${EAT_TARGET_SYS}/${EAT_VER_GCC}/include > > + > > + CP_ARGS="-Prf --preserve=mode,timestamps --no-preserve=ownership" > > + > > + # gcc > > + for i in libstdc++.* libgcc_s.* libsupc++.*; do > > + cp ${CP_ARGS} ${EXTERNAL_TOOLCHAIN}/${EAT_TARGET_SYS}/${EAT_LIBDIR}/$i ${D}${prefix}/${EAT_TARGET_SYS}/lib > > + done > > + cp ${CP_ARGS} ${EXTERNAL_TOOLCHAIN}/lib/gcc/${EAT_TARGET_SYS}/${EAT_VER_GCC}/* ${D}${gcclibdir}/${EAT_TARGET_SYS}/${EAT_VER_GCC} > > + for i in gcov gcc* g++ cpp; do > > + cp ${CP_ARGS} ${EXTERNAL_TOOLCHAIN}/bin/${TARGET_PREFIX}$i ${D}${bindir} > > + done > > + cp ${CP_ARGS} ${EXTERNAL_TOOLCHAIN}/libexec/* ${D}${libexecdir} > > + > > + # gdb > > + cp ${CP_ARGS} ${EXTERNAL_TOOLCHAIN}/bin/${TARGET_PREFIX}gdb* ${D}${bindir} > > + cp ${CP_ARGS} ${EXTERNAL_TOOLCHAIN}/share/gdb/* ${D}${datadir}/gdb/ > > + > > + # binutils > > + for i in ld* objcopy strip nm ranlib as ar objdump; do > > + cp ${CP_ARGS} ${EXTERNAL_TOOLCHAIN}/${EAT_TARGET_SYS}/bin/$i ${D}${prefix}/${EAT_TARGET_SYS}/bin > > + done > > + cp ${CP_ARGS} ${EXTERNAL_TOOLCHAIN}/${EAT_TARGET_SYS}/lib/ldscripts/* ${D}${prefix}/${EAT_TARGET_SYS}/lib/ldscripts > > + for i in ld* addr2line objcopy readelf strip nm ranlib gprof as c++filt ar strings objdump size; do > > + cp ${CP_ARGS} ${EXTERNAL_TOOLCHAIN}/bin/${TARGET_PREFIX}$i ${D}${bindir} > > + done > > +} > > + > > +python () { > > + if not d.getVar("EAT_VER_MAIN", False): > > + raise bb.parse.SkipPackage("External ARM toolchain not configured (EAT_VER_MAIN not set).") > > + if d.getVar('TCLIBC', True) != "glibc": > > + raise bb.parse.SkipPackage("incompatible with %s" % d.getVar('TCLIBC', True)) > > +} > > -- > > 2.7.4 > > > > > ^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: [meta-arm] [PATCH 4/4] external-arm-sdk-toolchain: add recipe to package gcc/gdb/binutils cross binaries 2020-06-15 18:20 ` Denys Dmytriyenko @ 2020-06-16 5:56 ` Sumit Garg 2020-06-18 3:29 ` Denys Dmytriyenko 0 siblings, 1 reply; 12+ messages in thread From: Sumit Garg @ 2020-06-16 5:56 UTC (permalink / raw) To: Denys Dmytriyenko; +Cc: meta-arm, Denys Dmytriyenko On Mon, 15 Jun 2020 at 23:50, Denys Dmytriyenko <denis@denix.org> wrote: > > On Mon, Jun 15, 2020 at 06:15:17PM +0530, Sumit Garg wrote: > > On Mon, 15 Jun 2020 at 13:37, Denys Dmytriyenko <denis@denix.org> wrote: > > > > > > From: Denys Dmytriyenko <denys@ti.com> > > > > > > Allows re-use of prebuilt ARM toolchain binaries for SDK generation. > > > > > > This code is upstreamed from meta-arago layer. > > > > > > Signed-off-by: Denys Dmytriyenko <denys@ti.com> > > > --- > > > .../conf/distro/include/tcmode-external-arm.inc | 4 + > > > .../external-arm-sdk-toolchain.bb | 136 +++++++++++++++++++++ > > > 2 files changed, 140 insertions(+) > > > create mode 100644 meta-arm-toolchain/recipes-devtools/external-arm-toolchain/external-arm-sdk-toolchain.bb > > > > > > > Thanks for pushing this recipe upstream. It's good to have the tools > > binaries packaged in SDK from pre-built toolchain rather than building > > from source. > > > > So I just gave it a try using poky distro which fails with following error: > > > > $ bitbake -c populate_sdk core-image-base > > <snip> > > Error: > > Problem: package > > packagegroup-cross-canadian-qemuarm64-1.0-r0.x86_64_nativesdk requires > > gdb-cross-canadian-aarch64, but none of the providers can be installed > > - conflicting requests > > - nothing provides libpython2.7.so.1.0()(64bit) needed by > > gdb-cross-canadian-aarch64-8.3.0.20190709+git-r0.x86_64_nativesdk > > ^^^ looks like 8.3 toolchain has some python2-linked binaries, which would > require dependency on meta-python2. Here 8.3.0 is gdb version rather than toolchain version. See below: $ ~/tc_install/gcc-arm-9.2-2019.12-x86_64-aarch64-none-linux-gnu/bin/aarch64-none-linux-gnu-gdb --version GNU gdb (GNU Toolchain for the A-profile Architecture 9.2-2019.12 (arm-9.10)) 8.3.0.20190709-git Copyright (C) 2019 Free Software Foundation, Inc. License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html> This is free software: you are free to change and redistribute it. There is NO WARRANTY, to the extent permitted by law. > Let me check which binary is that, maybe > we can just drop it. Or we can just skip this check with INSANE_SKIP... > > BTW, I don't see this issue with 9.2 toolchain. > Strangely, I see this issue with 9.2 toolchain for aarch64. -Sumit > -- > Denys > > > > (try to add '--skip-broken' to skip uninstallable packages) > > <snip> > > > > Is there something that I missed while testing? > > > > -Sumit > > > > > diff --git a/meta-arm-toolchain/conf/distro/include/tcmode-external-arm.inc b/meta-arm-toolchain/conf/distro/include/tcmode-external-arm.inc > > > index 9171380..08b87ef 100644 > > > --- a/meta-arm-toolchain/conf/distro/include/tcmode-external-arm.inc > > > +++ b/meta-arm-toolchain/conf/distro/include/tcmode-external-arm.inc > > > @@ -45,6 +45,10 @@ PREFERRED_PROVIDER_glibc-mtrace = "external-arm-toolchain" > > > PREFERRED_PROVIDER_libc-mtrace = "external-arm-toolchain" > > > PREFERRED_PROVIDER_virtual/linux-libc-headers = "external-arm-toolchain" > > > > > > +PREFERRED_PROVIDER_gcc-cross-canadian-${TRANSLATED_TARGET_ARCH} ?= "external-arm-sdk-toolchain-${TRANSLATED_TARGET_ARCH}" > > > +PREFERRED_PROVIDER_binutils-cross-canadian-${TRANSLATED_TARGET_ARCH} ?= "external-arm-sdk-toolchain-${TRANSLATED_TARGET_ARCH}" > > > +PREFERRED_PROVIDER_gdb-cross-canadian-${TRANSLATED_TARGET_ARCH} ?= "external-arm-sdk-toolchain-${TRANSLATED_TARGET_ARCH}" > > > + > > > TOOLCHAIN_OPTIONS = " --sysroot=${STAGING_DIR_HOST}" > > > > > > DISTRO_FEATURES_LIBC = "ipv4 ipv6 libc-backtrace libc-big-macros libc-bsd libc-cxx-tests libc-catgets libc-crypt \ > > > diff --git a/meta-arm-toolchain/recipes-devtools/external-arm-toolchain/external-arm-sdk-toolchain.bb b/meta-arm-toolchain/recipes-devtools/external-arm-toolchain/external-arm-sdk-toolchain.bb > > > new file mode 100644 > > > index 0000000..88fd20e > > > --- /dev/null > > > +++ b/meta-arm-toolchain/recipes-devtools/external-arm-toolchain/external-arm-sdk-toolchain.bb > > > @@ -0,0 +1,136 @@ > > > +inherit cross-canadian > > > + > > > +PN = "external-arm-sdk-toolchain-${TARGET_ARCH}" > > > +BPN = "external-arm-sdk-toolchain" > > > + > > > +INHIBIT_PACKAGE_DEBUG_SPLIT = "1" > > > +INHIBIT_PACKAGE_STRIP = "1" > > > +INHIBIT_SYSROOT_STRIP = "1" > > > +INHIBIT_DEFAULT_DEPS = "1" > > > +EXCLUDE_FROM_SHLIBS = "1" > > > + > > > +EAT_LICENSE ??= "" > > > + > > > +LICENSE = "${EAT_LICENSE}" > > > +LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/MIT;md5=0835ade698e0bcf8506ecda2f7b4f302" > > > + > > > +INSANE_SKIP_gcc-cross-canadian-${TRANSLATED_TARGET_ARCH} = "dev-so staticdev file-rdeps libdir" > > > +INSANE_SKIP_gdb-cross-canadian-${TRANSLATED_TARGET_ARCH} = "dev-so file-rdeps" > > > +INSANE_SKIP_binutils-cross-canadian-${TRANSLATED_TARGET_ARCH} = "dev-so file-rdeps" > > > + > > > +PROVIDES = "\ > > > + gcc-cross-canadian-${TRANSLATED_TARGET_ARCH} \ > > > + gdb-cross-canadian-${TRANSLATED_TARGET_ARCH} \ > > > + binutils-cross-canadian-${TRANSLATED_TARGET_ARCH} \ > > > +" > > > + > > > +PACKAGES = "\ > > > + gcc-cross-canadian-${TRANSLATED_TARGET_ARCH} \ > > > + gdb-cross-canadian-${TRANSLATED_TARGET_ARCH} \ > > > + binutils-cross-canadian-${TRANSLATED_TARGET_ARCH} \ > > > +" > > > + > > > +# Adjust defaults in line with external toolchain > > > +bindir = "${exec_prefix}/bin" > > > +libdir = "${exec_prefix}/lib" > > > +libexecdir = "${exec_prefix}/libexec" > > > +datadir = "${exec_prefix}/share" > > > +gcclibdir = "${libdir}/gcc" > > > + > > > +FILES_gcc-cross-canadian-${TRANSLATED_TARGET_ARCH} = "\ > > > + ${prefix}/${EAT_TARGET_SYS}/lib/libstdc++.* \ > > > + ${prefix}/${EAT_TARGET_SYS}/lib/libgcc_s.* \ > > > + ${prefix}/${EAT_TARGET_SYS}/lib/libsupc++.* \ > > > + ${gcclibdir}/${EAT_TARGET_SYS}/${EAT_VER_GCC}/* \ > > > + ${bindir}/${TARGET_PREFIX}gcov \ > > > + ${bindir}/${TARGET_PREFIX}gcc* \ > > > + ${bindir}/${TARGET_PREFIX}g++ \ > > > + ${bindir}/${TARGET_PREFIX}cpp \ > > > + ${libexecdir}/* \ > > > +" > > > + > > > +FILES_gdb-cross-canadian-${TRANSLATED_TARGET_ARCH} = "\ > > > + ${bindir}/${TARGET_PREFIX}gdb* \ > > > + ${datadir}/gdb/* \ > > > +" > > > + > > > +FILES_binutils-cross-canadian-${TRANSLATED_TARGET_ARCH} = "\ > > > + ${prefix}/${EAT_TARGET_SYS}/bin/ld* \ > > > + ${prefix}/${EAT_TARGET_SYS}/bin/objcopy \ > > > + ${prefix}/${EAT_TARGET_SYS}/bin/strip \ > > > + ${prefix}/${EAT_TARGET_SYS}/bin/nm \ > > > + ${prefix}/${EAT_TARGET_SYS}/bin/ranlib \ > > > + ${prefix}/${EAT_TARGET_SYS}/bin/as \ > > > + ${prefix}/${EAT_TARGET_SYS}/bin/ar \ > > > + ${prefix}/${EAT_TARGET_SYS}/bin/objdump \ > > > + ${prefix}/${EAT_TARGET_SYS}/lib/ldscripts/* \ > > > + ${bindir}/${TARGET_PREFIX}ld* \ > > > + ${bindir}/${TARGET_PREFIX}addr2line \ > > > + ${bindir}/${TARGET_PREFIX}objcopy \ > > > + ${bindir}/${TARGET_PREFIX}readelf \ > > > + ${bindir}/${TARGET_PREFIX}strip \ > > > + ${bindir}/${TARGET_PREFIX}nm \ > > > + ${bindir}/${TARGET_PREFIX}ranlib \ > > > + ${bindir}/${TARGET_PREFIX}gprof \ > > > + ${bindir}/${TARGET_PREFIX}as \ > > > + ${bindir}/${TARGET_PREFIX}c++filt \ > > > + ${bindir}/${TARGET_PREFIX}ar \ > > > + ${bindir}/${TARGET_PREFIX}strings \ > > > + ${bindir}/${TARGET_PREFIX}objdump \ > > > + ${bindir}/${TARGET_PREFIX}size \ > > > +" > > > + > > > +DESCRIPTION_gcc-cross-canadian-${TRANSLATED_TARGET_ARCH} = "The GNU cc and gcc C compilers" > > > +DESCRIPTION_gdb-cross-canadian-${TRANSLATED_TARGET_ARCH} = "gdb - GNU debugger" > > > +DESCRIPTION_binutils-cross-canadian-${TRANSLATED_TARGET_ARCH} = "A GNU collection of binary utilities" > > > + > > > +LICENSE_gcc-cross-canadian-${TRANSLATED_TARGET_ARCH} = "${EAT_GCC_LICENSE}" > > > +LICENSE_gdb-cross-canadian-${TRANSLATED_TARGET_ARCH} = "${EAT_GDB_LICENSE}" > > > +LICENSE_binutils-cross-canadian-${TRANSLATED_TARGET_ARCH} = "${EAT_BFD_LICENSE}" > > > + > > > +PKGV_gcc-cross-canadian-${TRANSLATED_TARGET_ARCH} = "${EAT_VER_GCC}" > > > +PKGV_gdb-cross-canadian-${TRANSLATED_TARGET_ARCH} = "${EAT_VER_GDB}" > > > +PKGV_binutils-cross-canadian-${TRANSLATED_TARGET_ARCH} = "${EAT_VER_BFD}" > > > + > > > +do_install() { > > > + install -d ${D}${prefix}/${EAT_TARGET_SYS}/bin > > > + install -d ${D}${prefix}/${EAT_TARGET_SYS}/lib > > > + install -d ${D}${bindir} > > > + install -d ${D}${libdir} > > > + install -d ${D}${prefix}/${EAT_TARGET_SYS}/lib/ldscripts > > > + install -d ${D}${libexecdir} > > > + install -d ${D}${datadir}/gdb > > > + install -d ${D}${gcclibdir}/${EAT_TARGET_SYS}/${EAT_VER_GCC}/include > > > + > > > + CP_ARGS="-Prf --preserve=mode,timestamps --no-preserve=ownership" > > > + > > > + # gcc > > > + for i in libstdc++.* libgcc_s.* libsupc++.*; do > > > + cp ${CP_ARGS} ${EXTERNAL_TOOLCHAIN}/${EAT_TARGET_SYS}/${EAT_LIBDIR}/$i ${D}${prefix}/${EAT_TARGET_SYS}/lib > > > + done > > > + cp ${CP_ARGS} ${EXTERNAL_TOOLCHAIN}/lib/gcc/${EAT_TARGET_SYS}/${EAT_VER_GCC}/* ${D}${gcclibdir}/${EAT_TARGET_SYS}/${EAT_VER_GCC} > > > + for i in gcov gcc* g++ cpp; do > > > + cp ${CP_ARGS} ${EXTERNAL_TOOLCHAIN}/bin/${TARGET_PREFIX}$i ${D}${bindir} > > > + done > > > + cp ${CP_ARGS} ${EXTERNAL_TOOLCHAIN}/libexec/* ${D}${libexecdir} > > > + > > > + # gdb > > > + cp ${CP_ARGS} ${EXTERNAL_TOOLCHAIN}/bin/${TARGET_PREFIX}gdb* ${D}${bindir} > > > + cp ${CP_ARGS} ${EXTERNAL_TOOLCHAIN}/share/gdb/* ${D}${datadir}/gdb/ > > > + > > > + # binutils > > > + for i in ld* objcopy strip nm ranlib as ar objdump; do > > > + cp ${CP_ARGS} ${EXTERNAL_TOOLCHAIN}/${EAT_TARGET_SYS}/bin/$i ${D}${prefix}/${EAT_TARGET_SYS}/bin > > > + done > > > + cp ${CP_ARGS} ${EXTERNAL_TOOLCHAIN}/${EAT_TARGET_SYS}/lib/ldscripts/* ${D}${prefix}/${EAT_TARGET_SYS}/lib/ldscripts > > > + for i in ld* addr2line objcopy readelf strip nm ranlib gprof as c++filt ar strings objdump size; do > > > + cp ${CP_ARGS} ${EXTERNAL_TOOLCHAIN}/bin/${TARGET_PREFIX}$i ${D}${bindir} > > > + done > > > +} > > > + > > > +python () { > > > + if not d.getVar("EAT_VER_MAIN", False): > > > + raise bb.parse.SkipPackage("External ARM toolchain not configured (EAT_VER_MAIN not set).") > > > + if d.getVar('TCLIBC', True) != "glibc": > > > + raise bb.parse.SkipPackage("incompatible with %s" % d.getVar('TCLIBC', True)) > > > +} > > > -- > > > 2.7.4 > > > > > > > > ^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: [meta-arm] [PATCH 4/4] external-arm-sdk-toolchain: add recipe to package gcc/gdb/binutils cross binaries 2020-06-16 5:56 ` Sumit Garg @ 2020-06-18 3:29 ` Denys Dmytriyenko 0 siblings, 0 replies; 12+ messages in thread From: Denys Dmytriyenko @ 2020-06-18 3:29 UTC (permalink / raw) To: Sumit Garg; +Cc: meta-arm, Denys Dmytriyenko On Tue, Jun 16, 2020 at 11:26:17AM +0530, Sumit Garg wrote: > On Mon, 15 Jun 2020 at 23:50, Denys Dmytriyenko <denis@denix.org> wrote: > > > > On Mon, Jun 15, 2020 at 06:15:17PM +0530, Sumit Garg wrote: > > > On Mon, 15 Jun 2020 at 13:37, Denys Dmytriyenko <denis@denix.org> wrote: > > > > > > > > From: Denys Dmytriyenko <denys@ti.com> > > > > > > > > Allows re-use of prebuilt ARM toolchain binaries for SDK generation. > > > > > > > > This code is upstreamed from meta-arago layer. > > > > > > > > Signed-off-by: Denys Dmytriyenko <denys@ti.com> > > > > --- > > > > .../conf/distro/include/tcmode-external-arm.inc | 4 + > > > > .../external-arm-sdk-toolchain.bb | 136 +++++++++++++++++++++ > > > > 2 files changed, 140 insertions(+) > > > > create mode 100644 meta-arm-toolchain/recipes-devtools/external-arm-toolchain/external-arm-sdk-toolchain.bb > > > > > > > > > > Thanks for pushing this recipe upstream. It's good to have the tools > > > binaries packaged in SDK from pre-built toolchain rather than building > > > from source. > > > > > > So I just gave it a try using poky distro which fails with following error: > > > > > > $ bitbake -c populate_sdk core-image-base > > > <snip> > > > Error: > > > Problem: package > > > packagegroup-cross-canadian-qemuarm64-1.0-r0.x86_64_nativesdk requires > > > gdb-cross-canadian-aarch64, but none of the providers can be installed > > > - conflicting requests > > > - nothing provides libpython2.7.so.1.0()(64bit) needed by > > > gdb-cross-canadian-aarch64-8.3.0.20190709+git-r0.x86_64_nativesdk > > > > ^^^ looks like 8.3 toolchain has some python2-linked binaries, which would > > require dependency on meta-python2. > > Here 8.3.0 is gdb version rather than toolchain version. See below: Ah, yes, I see - it's gdb binary itself is linked against libpython2.7.so.1.0 The thing is that the recipe already sets "file-rdeps" INSAKE_SKIP flag for gdb-cross-canadian. In order to reproduce this I had to switch from nodistro/ipk to poky/rpm. The original error was cut a bit short, so I wasn't sure where it was coming from. Now I see that it is coming from DNF when SDK is being assembled from rpms. Looks like DNF has its own check and doesn't honor INSANE_SKIP, obviously. And opkg is more forgiving in this regard. BTW, switching nodistro from ipk to rpm also results in this error. I wonder if there's a way to tell DNF to skip this check... -- Denys > $ ~/tc_install/gcc-arm-9.2-2019.12-x86_64-aarch64-none-linux-gnu/bin/aarch64-none-linux-gnu-gdb > --version > GNU gdb (GNU Toolchain for the A-profile Architecture 9.2-2019.12 > (arm-9.10)) 8.3.0.20190709-git > Copyright (C) 2019 Free Software Foundation, Inc. > License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html> > This is free software: you are free to change and redistribute it. > There is NO WARRANTY, to the extent permitted by law. > > > Let me check which binary is that, maybe > > we can just drop it. Or we can just skip this check with INSANE_SKIP... > > > > BTW, I don't see this issue with 9.2 toolchain. > > > > Strangely, I see this issue with 9.2 toolchain for aarch64. > > -Sumit > > > -- > > Denys > > > > > > > (try to add '--skip-broken' to skip uninstallable packages) > > > <snip> > > > > > > Is there something that I missed while testing? > > > > > > -Sumit > > > > > > > diff --git a/meta-arm-toolchain/conf/distro/include/tcmode-external-arm.inc b/meta-arm-toolchain/conf/distro/include/tcmode-external-arm.inc > > > > index 9171380..08b87ef 100644 > > > > --- a/meta-arm-toolchain/conf/distro/include/tcmode-external-arm.inc > > > > +++ b/meta-arm-toolchain/conf/distro/include/tcmode-external-arm.inc > > > > @@ -45,6 +45,10 @@ PREFERRED_PROVIDER_glibc-mtrace = "external-arm-toolchain" > > > > PREFERRED_PROVIDER_libc-mtrace = "external-arm-toolchain" > > > > PREFERRED_PROVIDER_virtual/linux-libc-headers = "external-arm-toolchain" > > > > > > > > +PREFERRED_PROVIDER_gcc-cross-canadian-${TRANSLATED_TARGET_ARCH} ?= "external-arm-sdk-toolchain-${TRANSLATED_TARGET_ARCH}" > > > > +PREFERRED_PROVIDER_binutils-cross-canadian-${TRANSLATED_TARGET_ARCH} ?= "external-arm-sdk-toolchain-${TRANSLATED_TARGET_ARCH}" > > > > +PREFERRED_PROVIDER_gdb-cross-canadian-${TRANSLATED_TARGET_ARCH} ?= "external-arm-sdk-toolchain-${TRANSLATED_TARGET_ARCH}" > > > > + > > > > TOOLCHAIN_OPTIONS = " --sysroot=${STAGING_DIR_HOST}" > > > > > > > > DISTRO_FEATURES_LIBC = "ipv4 ipv6 libc-backtrace libc-big-macros libc-bsd libc-cxx-tests libc-catgets libc-crypt \ > > > > diff --git a/meta-arm-toolchain/recipes-devtools/external-arm-toolchain/external-arm-sdk-toolchain.bb b/meta-arm-toolchain/recipes-devtools/external-arm-toolchain/external-arm-sdk-toolchain.bb > > > > new file mode 100644 > > > > index 0000000..88fd20e > > > > --- /dev/null > > > > +++ b/meta-arm-toolchain/recipes-devtools/external-arm-toolchain/external-arm-sdk-toolchain.bb > > > > @@ -0,0 +1,136 @@ > > > > +inherit cross-canadian > > > > + > > > > +PN = "external-arm-sdk-toolchain-${TARGET_ARCH}" > > > > +BPN = "external-arm-sdk-toolchain" > > > > + > > > > +INHIBIT_PACKAGE_DEBUG_SPLIT = "1" > > > > +INHIBIT_PACKAGE_STRIP = "1" > > > > +INHIBIT_SYSROOT_STRIP = "1" > > > > +INHIBIT_DEFAULT_DEPS = "1" > > > > +EXCLUDE_FROM_SHLIBS = "1" > > > > + > > > > +EAT_LICENSE ??= "" > > > > + > > > > +LICENSE = "${EAT_LICENSE}" > > > > +LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/MIT;md5=0835ade698e0bcf8506ecda2f7b4f302" > > > > + > > > > +INSANE_SKIP_gcc-cross-canadian-${TRANSLATED_TARGET_ARCH} = "dev-so staticdev file-rdeps libdir" > > > > +INSANE_SKIP_gdb-cross-canadian-${TRANSLATED_TARGET_ARCH} = "dev-so file-rdeps" > > > > +INSANE_SKIP_binutils-cross-canadian-${TRANSLATED_TARGET_ARCH} = "dev-so file-rdeps" > > > > + > > > > +PROVIDES = "\ > > > > + gcc-cross-canadian-${TRANSLATED_TARGET_ARCH} \ > > > > + gdb-cross-canadian-${TRANSLATED_TARGET_ARCH} \ > > > > + binutils-cross-canadian-${TRANSLATED_TARGET_ARCH} \ > > > > +" > > > > + > > > > +PACKAGES = "\ > > > > + gcc-cross-canadian-${TRANSLATED_TARGET_ARCH} \ > > > > + gdb-cross-canadian-${TRANSLATED_TARGET_ARCH} \ > > > > + binutils-cross-canadian-${TRANSLATED_TARGET_ARCH} \ > > > > +" > > > > + > > > > +# Adjust defaults in line with external toolchain > > > > +bindir = "${exec_prefix}/bin" > > > > +libdir = "${exec_prefix}/lib" > > > > +libexecdir = "${exec_prefix}/libexec" > > > > +datadir = "${exec_prefix}/share" > > > > +gcclibdir = "${libdir}/gcc" > > > > + > > > > +FILES_gcc-cross-canadian-${TRANSLATED_TARGET_ARCH} = "\ > > > > + ${prefix}/${EAT_TARGET_SYS}/lib/libstdc++.* \ > > > > + ${prefix}/${EAT_TARGET_SYS}/lib/libgcc_s.* \ > > > > + ${prefix}/${EAT_TARGET_SYS}/lib/libsupc++.* \ > > > > + ${gcclibdir}/${EAT_TARGET_SYS}/${EAT_VER_GCC}/* \ > > > > + ${bindir}/${TARGET_PREFIX}gcov \ > > > > + ${bindir}/${TARGET_PREFIX}gcc* \ > > > > + ${bindir}/${TARGET_PREFIX}g++ \ > > > > + ${bindir}/${TARGET_PREFIX}cpp \ > > > > + ${libexecdir}/* \ > > > > +" > > > > + > > > > +FILES_gdb-cross-canadian-${TRANSLATED_TARGET_ARCH} = "\ > > > > + ${bindir}/${TARGET_PREFIX}gdb* \ > > > > + ${datadir}/gdb/* \ > > > > +" > > > > + > > > > +FILES_binutils-cross-canadian-${TRANSLATED_TARGET_ARCH} = "\ > > > > + ${prefix}/${EAT_TARGET_SYS}/bin/ld* \ > > > > + ${prefix}/${EAT_TARGET_SYS}/bin/objcopy \ > > > > + ${prefix}/${EAT_TARGET_SYS}/bin/strip \ > > > > + ${prefix}/${EAT_TARGET_SYS}/bin/nm \ > > > > + ${prefix}/${EAT_TARGET_SYS}/bin/ranlib \ > > > > + ${prefix}/${EAT_TARGET_SYS}/bin/as \ > > > > + ${prefix}/${EAT_TARGET_SYS}/bin/ar \ > > > > + ${prefix}/${EAT_TARGET_SYS}/bin/objdump \ > > > > + ${prefix}/${EAT_TARGET_SYS}/lib/ldscripts/* \ > > > > + ${bindir}/${TARGET_PREFIX}ld* \ > > > > + ${bindir}/${TARGET_PREFIX}addr2line \ > > > > + ${bindir}/${TARGET_PREFIX}objcopy \ > > > > + ${bindir}/${TARGET_PREFIX}readelf \ > > > > + ${bindir}/${TARGET_PREFIX}strip \ > > > > + ${bindir}/${TARGET_PREFIX}nm \ > > > > + ${bindir}/${TARGET_PREFIX}ranlib \ > > > > + ${bindir}/${TARGET_PREFIX}gprof \ > > > > + ${bindir}/${TARGET_PREFIX}as \ > > > > + ${bindir}/${TARGET_PREFIX}c++filt \ > > > > + ${bindir}/${TARGET_PREFIX}ar \ > > > > + ${bindir}/${TARGET_PREFIX}strings \ > > > > + ${bindir}/${TARGET_PREFIX}objdump \ > > > > + ${bindir}/${TARGET_PREFIX}size \ > > > > +" > > > > + > > > > +DESCRIPTION_gcc-cross-canadian-${TRANSLATED_TARGET_ARCH} = "The GNU cc and gcc C compilers" > > > > +DESCRIPTION_gdb-cross-canadian-${TRANSLATED_TARGET_ARCH} = "gdb - GNU debugger" > > > > +DESCRIPTION_binutils-cross-canadian-${TRANSLATED_TARGET_ARCH} = "A GNU collection of binary utilities" > > > > + > > > > +LICENSE_gcc-cross-canadian-${TRANSLATED_TARGET_ARCH} = "${EAT_GCC_LICENSE}" > > > > +LICENSE_gdb-cross-canadian-${TRANSLATED_TARGET_ARCH} = "${EAT_GDB_LICENSE}" > > > > +LICENSE_binutils-cross-canadian-${TRANSLATED_TARGET_ARCH} = "${EAT_BFD_LICENSE}" > > > > + > > > > +PKGV_gcc-cross-canadian-${TRANSLATED_TARGET_ARCH} = "${EAT_VER_GCC}" > > > > +PKGV_gdb-cross-canadian-${TRANSLATED_TARGET_ARCH} = "${EAT_VER_GDB}" > > > > +PKGV_binutils-cross-canadian-${TRANSLATED_TARGET_ARCH} = "${EAT_VER_BFD}" > > > > + > > > > +do_install() { > > > > + install -d ${D}${prefix}/${EAT_TARGET_SYS}/bin > > > > + install -d ${D}${prefix}/${EAT_TARGET_SYS}/lib > > > > + install -d ${D}${bindir} > > > > + install -d ${D}${libdir} > > > > + install -d ${D}${prefix}/${EAT_TARGET_SYS}/lib/ldscripts > > > > + install -d ${D}${libexecdir} > > > > + install -d ${D}${datadir}/gdb > > > > + install -d ${D}${gcclibdir}/${EAT_TARGET_SYS}/${EAT_VER_GCC}/include > > > > + > > > > + CP_ARGS="-Prf --preserve=mode,timestamps --no-preserve=ownership" > > > > + > > > > + # gcc > > > > + for i in libstdc++.* libgcc_s.* libsupc++.*; do > > > > + cp ${CP_ARGS} ${EXTERNAL_TOOLCHAIN}/${EAT_TARGET_SYS}/${EAT_LIBDIR}/$i ${D}${prefix}/${EAT_TARGET_SYS}/lib > > > > + done > > > > + cp ${CP_ARGS} ${EXTERNAL_TOOLCHAIN}/lib/gcc/${EAT_TARGET_SYS}/${EAT_VER_GCC}/* ${D}${gcclibdir}/${EAT_TARGET_SYS}/${EAT_VER_GCC} > > > > + for i in gcov gcc* g++ cpp; do > > > > + cp ${CP_ARGS} ${EXTERNAL_TOOLCHAIN}/bin/${TARGET_PREFIX}$i ${D}${bindir} > > > > + done > > > > + cp ${CP_ARGS} ${EXTERNAL_TOOLCHAIN}/libexec/* ${D}${libexecdir} > > > > + > > > > + # gdb > > > > + cp ${CP_ARGS} ${EXTERNAL_TOOLCHAIN}/bin/${TARGET_PREFIX}gdb* ${D}${bindir} > > > > + cp ${CP_ARGS} ${EXTERNAL_TOOLCHAIN}/share/gdb/* ${D}${datadir}/gdb/ > > > > + > > > > + # binutils > > > > + for i in ld* objcopy strip nm ranlib as ar objdump; do > > > > + cp ${CP_ARGS} ${EXTERNAL_TOOLCHAIN}/${EAT_TARGET_SYS}/bin/$i ${D}${prefix}/${EAT_TARGET_SYS}/bin > > > > + done > > > > + cp ${CP_ARGS} ${EXTERNAL_TOOLCHAIN}/${EAT_TARGET_SYS}/lib/ldscripts/* ${D}${prefix}/${EAT_TARGET_SYS}/lib/ldscripts > > > > + for i in ld* addr2line objcopy readelf strip nm ranlib gprof as c++filt ar strings objdump size; do > > > > + cp ${CP_ARGS} ${EXTERNAL_TOOLCHAIN}/bin/${TARGET_PREFIX}$i ${D}${bindir} > > > > + done > > > > +} > > > > + > > > > +python () { > > > > + if not d.getVar("EAT_VER_MAIN", False): > > > > + raise bb.parse.SkipPackage("External ARM toolchain not configured (EAT_VER_MAIN not set).") > > > > + if d.getVar('TCLIBC', True) != "glibc": > > > > + raise bb.parse.SkipPackage("incompatible with %s" % d.getVar('TCLIBC', True)) > > > > +} > > > > -- > > > > 2.7.4 > > > > > > > > > > > > ^ permalink raw reply [flat|nested] 12+ messages in thread
end of thread, other threads:[~2020-06-18 3:29 UTC | newest] Thread overview: 12+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2020-06-15 8:07 [PATCH 1/4] external-arm-toolchain-versions: also collect binutils/bfd version Denys Dmytriyenko 2020-06-15 8:07 ` [PATCH 2/4] external-arm-toolchain-versions: set per-components license based on version Denys Dmytriyenko 2020-06-15 10:55 ` [meta-arm] " Sumit Garg 2020-06-15 18:14 ` Denys Dmytriyenko 2020-06-16 5:51 ` Sumit Garg 2020-06-17 19:23 ` Denys Dmytriyenko 2020-06-15 8:07 ` [PATCH 3/4] external-arm-toolchain: check for TCLIBC being glibc Denys Dmytriyenko 2020-06-15 8:07 ` [PATCH 4/4] external-arm-sdk-toolchain: add recipe to package gcc/gdb/binutils cross binaries Denys Dmytriyenko 2020-06-15 12:45 ` [meta-arm] " Sumit Garg 2020-06-15 18:20 ` Denys Dmytriyenko 2020-06-16 5:56 ` Sumit Garg 2020-06-18 3:29 ` Denys Dmytriyenko
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.