All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH v3 0/5] external-arm-toolchain: Add support for SDK generation
@ 2020-06-12 10:32 Sumit Garg
  2020-06-12 10:32 ` [PATCH v3 1/5] external-arm-toolchain: Remove glibc locale dependency Sumit Garg
                   ` (4 more replies)
  0 siblings, 5 replies; 17+ messages in thread
From: Sumit Garg @ 2020-06-12 10:32 UTC (permalink / raw)
  To: meta-arm
  Cc: pbarker, denis, wmills, richard.purdie, daniel.thompson, Sumit Garg

Patch #1 #2 and #3 adds impprovements in external-arm-toolchain recipe in order
to support SDK generation. SDK generation has been tested using:

$ bitbake core-image-base -c populate_sdk

Currently generated SDK only uses glibc provided by pre-built toolchain. The
cross compiler, binutils, gdb/gdbserver etc. are built from source. This is
something we would like to improve in future to package most of the components
from pre-built toolchain instead.

Generated SDK has been tested using testsdk as follows:

$ bitbake core-image-base -c testsdk

Results:

SDK testing environment: aarch64-poky-linux
GalculatorTest class: SDK doesn't contain gettext
No python package in the SDK
RESULTS:
RESULTS - assimp.BuildAssimp.test_assimp: PASSED (97.93s)
RESULTS - buildcpio.BuildCpioTest.test_cpio: PASSED (22.51s)
RESULTS - buildepoxy.EpoxyTest.test_epoxy: PASSED (17.40s)
RESULTS - buildlzip.BuildLzipTest.test_lzip: PASSED (2.52s)
RESULTS - gcc.GccCompileTest.test_gcc_compile: PASSED (0.06s)
RESULTS - gcc.GccCompileTest.test_gpp2_compile: PASSED (0.08s)
RESULTS - gcc.GccCompileTest.test_gpp_compile: PASSED (0.10s)
RESULTS - gcc.GccCompileTest.test_make: PASSED (0.06s)
RESULTS - perl.PerlTest.test_perl: PASSED (0.23s)
RESULTS - python.Python3Test.test_python3: PASSED (0.03s)
RESULTS - buildgalculator.GalculatorTest.test_galculator: SKIPPED (0.00s)
RESULTS - python.Python2Test.test_python2: SKIPPED (0.00s)
SUMMARY:
core-image-base sdk (poky-glibc-x86_64-core-image-base-aarch64-qemuarm64-toolchain-3.1+snapshot.sh:environment-setup-aarch64-poky-linux) - Ran 12 tests in 140.936s
core-image-base sdk - OK - All required tests passed (successes=10, skipped=2, failures=0, errors=0)

Patch #4 adds a README for meta-arm-toolchain layer.

Patch #5 adds package specific licences for external-arm-toolchain recipe.

Changes in v3:
- Patch #2: re-order PACKAGES list rather than defining FILES_${PN}-dev
  from scratch as it allows us to achieve the intended objective and is
  much portable and cleaner approach.
- Add review tags for patch #1 and #5.

Changes in v2:
- Adds a new patch #3 which fixes issues reported by testsdk.
- Define FILES_${PN}-dev from scratch which additionally refines packaging
  for dev headers as well.
- Make README common for whole meta-arm-toolchain layer rather than specific
  to pre-built toolchain. Add myself as layer maintainer although I would
  be happy to add another co-maintainer if someone is willing to volunteer.
- Update README with testing info for external-arm-toolchain.
- Misc. fixups.

Sumit Garg (5):
  external-arm-toolchain: Remove glibc locale dependency
  external-arm-toolchain: Refine dev libraries/headers packaging
  external-arm-toolchain: Align glibc packaging to OE TARGET_SYS
  meta-arm-toolchain: Add README
  external-arm-toolchain: Add package specific licenses

 meta-arm-toolchain/README.md                       | 113 +++++++++++++++++++++
 .../conf/distro/include/tcmode-external-arm.inc    |   1 +
 .../external-arm-toolchain.bb                      |  35 +++++--
 .../external-arm-toolchain/license.inc             |  76 ++++++++++++++
 .../recipes-devtools/gcc/gcc-arm-common.inc        |   2 +-
 5 files changed, 216 insertions(+), 11 deletions(-)
 create mode 100644 meta-arm-toolchain/README.md
 create mode 100644 meta-arm-toolchain/recipes-devtools/external-arm-toolchain/license.inc

-- 
2.7.4


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

* [PATCH v3 1/5] external-arm-toolchain: Remove glibc locale dependency
  2020-06-12 10:32 [PATCH v3 0/5] external-arm-toolchain: Add support for SDK generation Sumit Garg
@ 2020-06-12 10:32 ` Sumit Garg
  2020-06-12 10:32 ` [PATCH v3 2/5] external-arm-toolchain: Refine dev libraries/headers packaging Sumit Garg
                   ` (3 subsequent siblings)
  4 siblings, 0 replies; 17+ messages in thread
From: Sumit Garg @ 2020-06-12 10:32 UTC (permalink / raw)
  To: meta-arm
  Cc: pbarker, denis, wmills, richard.purdie, daniel.thompson, Sumit Garg

Currently external Arm toolchain recipe doesn't provide packages
corresponding to OE glibc locale recipe. So explicitly remove corresponding
libc dependencies until we sort out glibc locale packaging rather than
blocking OE SDK generation which is still useful without glibc locale
packaging.

Signed-off-by: Sumit Garg <sumit.garg@linaro.org>
Reviewed-by: Denys Dmytriyenko <denys@ti.com>
---
 meta-arm-toolchain/conf/distro/include/tcmode-external-arm.inc | 1 +
 1 file changed, 1 insertion(+)

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..eee1a51 100644
--- a/meta-arm-toolchain/conf/distro/include/tcmode-external-arm.inc
+++ b/meta-arm-toolchain/conf/distro/include/tcmode-external-arm.inc
@@ -58,6 +58,7 @@ DISTRO_FEATURES_LIBC = "ipv4 ipv6 libc-backtrace libc-big-macros libc-bsd libc-c
 ENABLE_BINARY_LOCALE_GENERATION = "0"
 GLIBC_INTERNAL_USE_BINARY_LOCALE = "precompiled"
 LIBCOVERRIDE = ":libc-glibc"
+LIBC_DEPENDENCIES_remove = "glibc-gconv-cp1252 glibc-gconv-ibm850 glibc-gconv-iso8859-1 glibc-gconv-iso8859-15 glibc-localedata-i18n"
 
 ERROR_QA[type] ?= "list"
 python toolchain_metadata_setup () {
-- 
2.7.4


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

* [PATCH v3 2/5] external-arm-toolchain: Refine dev libraries/headers packaging
  2020-06-12 10:32 [PATCH v3 0/5] external-arm-toolchain: Add support for SDK generation Sumit Garg
  2020-06-12 10:32 ` [PATCH v3 1/5] external-arm-toolchain: Remove glibc locale dependency Sumit Garg
@ 2020-06-12 10:32 ` Sumit Garg
  2020-06-12 10:32 ` [PATCH v3 3/5] external-arm-toolchain: Align glibc packaging to OE TARGET_SYS Sumit Garg
                   ` (2 subsequent siblings)
  4 siblings, 0 replies; 17+ messages in thread
From: Sumit Garg @ 2020-06-12 10:32 UTC (permalink / raw)
  To: meta-arm
  Cc: pbarker, denis, wmills, richard.purdie, daniel.thompson, Sumit Garg

OE core by default package all libraies/headers installed as
"${libdir}/lib*.so", "${libdir}/*.la" and {includedir} as part of
FILES_${PN}-dev" but in case of external Arm toolchain recipe, multiple
packages are provided which needs to include specific libraries and
headers. And "${PN}-dev" is only meant to pick up remaining dev libraries
and headers that aren't picked up by other packages.

So in order to achieve above objective, re-order PACKAGES list to shift
${PN}-dev towards the end. And since some static libraries needs to be
packaged in ${PN}-dev, so we need to keep ${PN}-staticdev later in order.

Signed-off-by: Sumit Garg <sumit.garg@linaro.org>
---
 .../external-arm-toolchain/external-arm-toolchain.bb        | 13 +++++++++++++
 1 file changed, 13 insertions(+)

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..73a2cf6 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
@@ -305,6 +305,19 @@ PACKAGES =+ "\
 	linux-libc-headers-dev \
 "
 
+# Re-order PACKAGES list in order to shift ${PN}-dev towards the end as
+# it is meant to pick up remaining dev libraries and headers that aren't
+# picked up by other packages. And since some static libraries needs to
+# be packaged in ${PN}-dev, so we need to keep ${PN}-staticdev later in
+# order.
+
+PACKAGES := "${@oe.utils.str_filter_out('${PN}-dev', '${PACKAGES}', d)}"
+PACKAGES := "${@oe.utils.str_filter_out('${PN}-staticdev', '${PACKAGES}', d)}"
+PACKAGES += "\
+	${PN}-dev \
+	${PN}-staticdev \
+"
+
 INSANE_SKIP_${PN}-dbg = "staticdev"
 INSANE_SKIP_${PN}-utils += "ldflags"
 INSANE_SKIP_libstdc++ += "ldflags"
-- 
2.7.4


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

* [PATCH v3 3/5] external-arm-toolchain: Align glibc packaging to OE TARGET_SYS
  2020-06-12 10:32 [PATCH v3 0/5] external-arm-toolchain: Add support for SDK generation Sumit Garg
  2020-06-12 10:32 ` [PATCH v3 1/5] external-arm-toolchain: Remove glibc locale dependency Sumit Garg
  2020-06-12 10:32 ` [PATCH v3 2/5] external-arm-toolchain: Refine dev libraries/headers packaging Sumit Garg
@ 2020-06-12 10:32 ` Sumit Garg
  2020-06-17 19:17   ` Denys Dmytriyenko
  2020-06-12 10:32 ` [PATCH v3 4/5] meta-arm-toolchain: Add README Sumit Garg
  2020-06-12 10:32 ` [PATCH v3 5/5] external-arm-toolchain: Add package specific licenses Sumit Garg
  4 siblings, 1 reply; 17+ messages in thread
From: Sumit Garg @ 2020-06-12 10:32 UTC (permalink / raw)
  To: meta-arm
  Cc: pbarker, denis, wmills, richard.purdie, daniel.thompson, Sumit Garg

OE native and cross compilers (in case of SDK) uses OE TARGET_SYS to
create standard paths to search for libraries and headers during
compilation.

Currently external-arm-toolchain recipe temporarily override TARGET_SYS
with EAT_TARGET_SYS and packages libraries and headers corresponding to
EAT_TARGET_SYS which leads to failures during native and cross compilation
(in case of SDK) such as:

$ $CXX -o hello++ hello.cpp
In file included from hello.cpp:1:
/tmp/armsdk/sysroots/armv7at2hf-neon-oe-linux-gnueabi/usr/include/c++/9.2.1/iostream:38:10: fatal error: bits/c++config.h: No such file or directory
   38 | #include <bits/c++config.h>
      |          ^~~~~~~~~~~~~~~~~~
compilation terminated.

$ $CC hello.c
real-ld: cannot find crtbeginS.o: No such file or directory

So remove temp override of TARGET_SYS and rather package libraries and
headers corresponding to OE TARGET_SYS.

This fixes changes added in commit:
https://git.linaro.org/openembedded/meta-linaro.git/commit/?id=91ea4d017bf0598e49944e76c889e66d58c066ce

Also, update location for unwind.h gcc-arm-common.inc accordingly.

Signed-off-by: Sumit Garg <sumit.garg@linaro.org>
---
 .../external-arm-toolchain/external-arm-toolchain.bb   | 18 ++++++++++--------
 .../recipes-devtools/gcc/gcc-arm-common.inc            |  2 +-
 2 files changed, 11 insertions(+), 9 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 73a2cf6..4face74 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
@@ -54,7 +54,6 @@ PROVIDES += "\
 PV = "${EAT_VER_MAIN}"
 
 BINV = "${EAT_VER_GCC}"
-TARGET_SYS = "${EAT_TARGET_SYS}"
 
 SRC_URI = "file://SUPPORTED"
 
@@ -75,8 +74,8 @@ do_install() {
 	install -d ${D}${datadir}
 	install -d ${D}${includedir}
 	install -d ${D}/include
-	install -d ${D}${libdir}/${EAT_TARGET_SYS}/${EAT_VER_GCC}
-	install -d ${D}${libdir}/gcc/${EAT_TARGET_SYS}/${EAT_VER_GCC}
+	install -d ${D}${libdir}/${TARGET_SYS}/${EAT_VER_GCC}
+	install -d ${D}${libdir}/gcc/${TARGET_SYS}/${EAT_VER_GCC}
 
 	CP_ARGS="-Prf --preserve=mode,timestamps --no-preserve=ownership"
 	cp ${CP_ARGS} ${EXTERNAL_TOOLCHAIN}/${EAT_TARGET_SYS}/${EAT_LIBDIR}/*  ${D}${base_libdir}
@@ -105,6 +104,9 @@ do_install() {
 	fi
 
 	cp ${CP_ARGS} ${EXTERNAL_TOOLCHAIN}/${EAT_TARGET_SYS}/include/* ${D}${includedir}
+	if [ -d ${D}${includedir}/c++/${EAT_VER_GCC}/${EAT_TARGET_SYS} ]; then
+		mv ${D}${includedir}/c++/${EAT_VER_GCC}/${EAT_TARGET_SYS} ${D}${includedir}/c++/${EAT_VER_GCC}/${TARGET_SYS}
+	fi
 	ln -sf ../usr/include/c++ ${D}/include/c++
 
 	cp ${CP_ARGS} ${EXTERNAL_TOOLCHAIN}/${EAT_TARGET_SYS}/libc/usr/bin/* ${D}${bindir}
@@ -116,11 +118,11 @@ do_install() {
 	sed -i -e 's#/bin/bash#/bin/sh#' ${D}${bindir}/tzselect
 	sed -i -e 's#/bin/bash#/bin/sh#' ${D}${bindir}/ldd
 
-	cp ${CP_ARGS} ${EXTERNAL_TOOLCHAIN}/lib/gcc/${EAT_TARGET_SYS}/${EAT_VER_GCC}/crt*.o ${D}${libdir}/${EAT_TARGET_SYS}/${EAT_VER_GCC}/
-	cp ${CP_ARGS} ${EXTERNAL_TOOLCHAIN}/lib/gcc/${EAT_TARGET_SYS}/${EAT_VER_GCC}/libgcc* ${D}${libdir}/${EAT_TARGET_SYS}/${EAT_VER_GCC}/
-	cp ${CP_ARGS} ${EXTERNAL_TOOLCHAIN}/lib/gcc/${EAT_TARGET_SYS}/${EAT_VER_GCC}/libgcov* ${D}${libdir}/gcc/${EAT_TARGET_SYS}/${EAT_VER_GCC}/
-	cp ${CP_ARGS} ${EXTERNAL_TOOLCHAIN}/lib/gcc/${EAT_TARGET_SYS}/${EAT_VER_GCC}/include ${D}${libdir}/gcc/${EAT_TARGET_SYS}/${EAT_VER_GCC}/
-	cp ${CP_ARGS} ${EXTERNAL_TOOLCHAIN}/lib/gcc/${EAT_TARGET_SYS}/${EAT_VER_GCC}/finclude ${D}${libdir}/gcc/${EAT_TARGET_SYS}/${EAT_VER_GCC}/
+	cp ${CP_ARGS} ${EXTERNAL_TOOLCHAIN}/lib/gcc/${EAT_TARGET_SYS}/${EAT_VER_GCC}/crt*.o ${D}${libdir}/${TARGET_SYS}/${EAT_VER_GCC}/
+	cp ${CP_ARGS} ${EXTERNAL_TOOLCHAIN}/lib/gcc/${EAT_TARGET_SYS}/${EAT_VER_GCC}/libgcc* ${D}${libdir}/${TARGET_SYS}/${EAT_VER_GCC}/
+	cp ${CP_ARGS} ${EXTERNAL_TOOLCHAIN}/lib/gcc/${EAT_TARGET_SYS}/${EAT_VER_GCC}/libgcov* ${D}${libdir}/gcc/${TARGET_SYS}/${EAT_VER_GCC}/
+	cp ${CP_ARGS} ${EXTERNAL_TOOLCHAIN}/lib/gcc/${EAT_TARGET_SYS}/${EAT_VER_GCC}/include ${D}${libdir}/gcc/${TARGET_SYS}/${EAT_VER_GCC}/
+	cp ${CP_ARGS} ${EXTERNAL_TOOLCHAIN}/lib/gcc/${EAT_TARGET_SYS}/${EAT_VER_GCC}/finclude ${D}${libdir}/gcc/${TARGET_SYS}/${EAT_VER_GCC}/
 
 	# fix up the copied symlinks (they are still pointing to the multiarch directory)
 	linker_name="${@bb.utils.contains("TUNE_FEATURES", "aarch64", "ld-linux-aarch64.so.1", bb.utils.contains("TUNE_FEATURES", "callconvention-hard", "ld-linux-armhf.so.3", "ld-linux.so.3",d), d)}"
diff --git a/meta-arm-toolchain/recipes-devtools/gcc/gcc-arm-common.inc b/meta-arm-toolchain/recipes-devtools/gcc/gcc-arm-common.inc
index 5599743..392c57f 100644
--- a/meta-arm-toolchain/recipes-devtools/gcc/gcc-arm-common.inc
+++ b/meta-arm-toolchain/recipes-devtools/gcc/gcc-arm-common.inc
@@ -12,7 +12,7 @@
 do_install_prepend_class-target () {
 	if [ "${TCMODE}" = "external-arm" -a ! -f ${STAGING_LIBDIR_NATIVE}/${TARGET_SYS}/gcc/${TARGET_SYS}/${BINV}/include/unwind.h ]; then
 		install -d ${STAGING_LIBDIR_NATIVE}/${TARGET_SYS}/gcc/${TARGET_SYS}/${BINV}/include/
-		install ${STAGING_LIBDIR}/gcc/${EAT_TARGET_SYS}/${EAT_VER_GCC}/include/unwind.h ${STAGING_LIBDIR_NATIVE}/${TARGET_SYS}/gcc/${TARGET_SYS}/${BINV}/include/
+		install ${STAGING_LIBDIR}/gcc/${TARGET_SYS}/${EAT_VER_GCC}/include/unwind.h ${STAGING_LIBDIR_NATIVE}/${TARGET_SYS}/gcc/${TARGET_SYS}/${BINV}/include/
 	fi
 }
 
-- 
2.7.4


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

* [PATCH v3 4/5] meta-arm-toolchain: Add README
  2020-06-12 10:32 [PATCH v3 0/5] external-arm-toolchain: Add support for SDK generation Sumit Garg
                   ` (2 preceding siblings ...)
  2020-06-12 10:32 ` [PATCH v3 3/5] external-arm-toolchain: Align glibc packaging to OE TARGET_SYS Sumit Garg
@ 2020-06-12 10:32 ` Sumit Garg
  2020-06-15 18:16   ` [meta-arm] " Jon Mason
  2020-06-12 10:32 ` [PATCH v3 5/5] external-arm-toolchain: Add package specific licenses Sumit Garg
  4 siblings, 1 reply; 17+ messages in thread
From: Sumit Garg @ 2020-06-12 10:32 UTC (permalink / raw)
  To: meta-arm
  Cc: pbarker, denis, wmills, richard.purdie, daniel.thompson, Sumit Garg

Document usage details for GNU Arm toolchains which could either be built
from source or pre-built.

Signed-off-by: Sumit Garg <sumit.garg@linaro.org>
---
 meta-arm-toolchain/README.md | 113 +++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 113 insertions(+)
 create mode 100644 meta-arm-toolchain/README.md

diff --git a/meta-arm-toolchain/README.md b/meta-arm-toolchain/README.md
new file mode 100644
index 0000000..e415136
--- /dev/null
+++ b/meta-arm-toolchain/README.md
@@ -0,0 +1,113 @@
+meta-arm-toolchain Yocto Layer
+==============================
+
+This layer contains recipes for GNU Arm toolchains which could either be built
+from source or pre-built toolchain binaries.
+
+Information regarding contributing, reporting bugs, etc can be found in the
+top-level meta-arm readme file.
+
+Source Arm toolchain for Linux development
+------------------------------------------
+
+Recipes for GNU Arm toolchain built from source are provided under
+``recipes-devtools/gcc/``. In order to use Arm toolchain instead of OE core
+toolchain, one just needs to override ``GCCVERSION`` in corresponding distro
+conf file.
+
+-  Eg. to use GNU Arm toolchain version ``9.2``
+   GCCVERSION = "arm-9.2"
+
+Pre-built Arm toolchain for Linux development
+---------------------------------------------
+
+Recipes for pre-built GNU Arm toolchain for Linux development are provided under
+``recipes-devtools/external-arm-toolchain/``.
+
+external-arm-toolchain.bb
+~~~~~~~~~~~~~~~~~~~~~~~~~
+
+This recipe provides support for pre-built GNU toolchains targeting processors
+from the Arm Cortex-A family and implementing the Arm A-profile architecture.
+
+Usage
+^^^^^
+
+In order to use any of pre-built Arm toolchain versions (8.2, 8.3, 9.2 and so
+on), a user needs to download and untar tool-set on host machine at a particular
+installation path eg: ``/opt/toolchain/``. Then user needs to specify following
+in ``conf/local.conf`` in order to replace OE toolchain with pre-built GNU-A
+toolchain:
+
+TCMODE = "external-arm"
+EXTERNAL_TOOLCHAIN = "<path-to-the-toolchain>"
+
+-  Eg. for AArch64 (eg. qemuarm64 machine in poky distro)
+   EXTERNAL_TOOLCHAIN = "\
+     <installation-path>/gcc-arm-9.2-2019.12-x86_64-aarch64-none-linux-gnu \
+   "
+
+-  Eg. for AArch32 (eg. qemuarm machine in poky distro)
+   EXTERNAL_TOOLCHAIN = "\
+     <installation-path>/gcc-arm-9.2-2019.12-x86_64-arm-none-linux-gnueabihf \
+   "
+
+Supported distros and machines
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+Since this pre-built GNU-A tool-set simply replaces OE toolchain, so it is
+meant to be distro and machine agnostic as long as one is cross-compiling for
+Arm A-profile architecture.
+
+Tested distro and machines (for zeus stable release):
+1.  Distro: poky; machines: qemuarm and qemuarm64 (build and boot tested)
+2.  Distro: RPB; machines: dragonboard-410c (build and boot tested)
+3.  Distro: world; machines: qemuarm and qemuarm64. Build tested for following
+    layers:
+    - poky/meta
+    - poky/meta-poky
+    - poky/meta-yocto-bsp
+    - meta-openembedded/meta-oe
+    - meta-openembedded/meta-python
+    - meta-openembedded/meta-networking
+
+SDK support
+^^^^^^^^^^^
+
+Pre-built toochain provides support to build OE SDK which has been tested using
+following commands:
+
+$ bitbake core-image-base -c populate_sdk
+$ bitbake core-image-base -c testsdk
+
+Note: Currently generated SDK only uses glibc provided by pre-built toolchain.
+      The cross compiler, binutils, gdb/gdbserver etc. are built from source.
+      This is something we would like to improve in future in order to package
+      most of the components from pre-built toolchain instead.
+
+Pre-built Arm toolchain for bare-metal development
+--------------------------------------------------
+
+Recipes for pre-built GNU Arm toolchain for bare-metal development are provided
+under ``recipes-devtools/external-arm-toolchain/``.
+
+gcc-arm-none-eabi_<version>.bb
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+This recipe provides support for pre-built GNU Arm Embedded toolchain for
+bare-metal software development on devices based on 32-bit Arm Cortex-A,
+Cortex-R and Cortex-M processors.
+
+Supported version: 9-2019-q4-major
+
+gcc-aarch64-none-elf_<version>.bb
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+This recipe provides support for pre-built GNU Arm toolchain for bare-metal
+software development on devices based on 64-bit Arm Cortex-A processors.
+
+Supported version: 9.2-2019.12
+
+Layer maintainer(s)
+-------------------
+* Sumit Garg <sumit.garg@linaro.org>
-- 
2.7.4


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

* [PATCH v3 5/5] external-arm-toolchain: Add package specific licenses
  2020-06-12 10:32 [PATCH v3 0/5] external-arm-toolchain: Add support for SDK generation Sumit Garg
                   ` (3 preceding siblings ...)
  2020-06-12 10:32 ` [PATCH v3 4/5] meta-arm-toolchain: Add README Sumit Garg
@ 2020-06-12 10:32 ` Sumit Garg
  4 siblings, 0 replies; 17+ messages in thread
From: Sumit Garg @ 2020-06-12 10:32 UTC (permalink / raw)
  To: meta-arm
  Cc: pbarker, denis, wmills, richard.purdie, daniel.thompson, Sumit Garg

Add license.inc file to state license of various packages provided by
pre-built Arm tool-set.

Signed-off-by: Sumit Garg <sumit.garg@linaro.org>
Reviewed-by: Denys Dmytriyenko <denys@ti.com>
---
 .../external-arm-toolchain.bb                      |  4 +-
 .../external-arm-toolchain/license.inc             | 76 ++++++++++++++++++++++
 2 files changed, 78 insertions(+), 2 deletions(-)
 create mode 100644 meta-arm-toolchain/recipes-devtools/external-arm-toolchain/license.inc

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 4face74..9f2b2f6 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
@@ -1,9 +1,9 @@
 require recipes-core/glibc/glibc-package.inc
 
+require license.inc
+
 INHIBIT_DEFAULT_DEPS = "1"
 
-# License applies to this recipe code, not the toolchain itself
-LICENSE = "MIT"
 LIC_FILES_CHKSUM = "\
 	file://${COMMON_LICENSE_DIR}/MIT;md5=0835ade698e0bcf8506ecda2f7b4f302 \
 	file://${COREBASE}/meta/COPYING.MIT;md5=3da9cfbcb788c80a0384361b4de20420 \
diff --git a/meta-arm-toolchain/recipes-devtools/external-arm-toolchain/license.inc b/meta-arm-toolchain/recipes-devtools/external-arm-toolchain/license.inc
new file mode 100644
index 0000000..b6ee42c
--- /dev/null
+++ b/meta-arm-toolchain/recipes-devtools/external-arm-toolchain/license.inc
@@ -0,0 +1,76 @@
+LICENSE = "GPL-3.0-with-GCC-exception & GPLv3 & GPLv2 & LGPLv3 & LGPLv2.1 & LGPLv2"
+
+EAT_GCC_LICENSE = "GPL-3.0-with-GCC-exception & GPLv3"
+EAT_LIBC_LICENSE = "GPLv2 & LGPLv2.1"
+
+LICENSE_${PN} = "${EAT_LIBC_LICENSE}"
+LICENSE_${PN}-dev = "${EAT_LIBC_LICENSE}"
+LICENSE_${PN}-doc = "${EAT_LIBC_LICENSE}"
+LICENSE_${PN}-dbg = "${EAT_LIBC_LICENSE}"
+LICENSE_${PN}-pic = "${EAT_LIBC_LICENSE}"
+LICENSE_${PN}-utils = "${EAT_LIBC_LICENSE}"
+LICENSE_${PN}-mtrace = "${EAT_LIBC_LICENSE}"
+LICENSE_${PN}-gconv = "${EAT_LIBC_LICENSE}"
+LICENSE_${PN}-extra-nss = "${EAT_LIBC_LICENSE}"
+LICENSE_${PN}-thread-db = "${EAT_LIBC_LICENSE}"
+LICENSE_${PN}-pcprofile = "${EAT_LIBC_LICENSE}"
+LICENSE_${PN}-staticdev = "${EAT_LIBC_LICENSE}"
+LICENSE_catchsegv = "${EAT_LIBC_LICENSE}"
+LICENSE_glibc-extra-nss = "${EAT_LIBC_LICENSE}"
+LICENSE_glibc-thread-db = "${EAT_LIBC_LICENSE}"
+
+LICENSE_libmemusage = "${EAT_LIBC_LICENSE}"
+LICENSE_libsegfault = "${EAT_LIBC_LICENSE}"
+LICENSE_libsotruss = "${EAT_LIBC_LICENSE}"
+LICENSE_sln = "${EAT_LIBC_LICENSE}"
+LICENSE_nscd = "${EAT_LIBC_LICENSE}"
+LICENSE_ldd = "${EAT_LIBC_LICENSE}"
+
+LICENSE_libasan-dev = "${EAT_GCC_LICENSE}"
+LICENSE_libasan = "${EAT_GCC_LICENSE}"
+LICENSE_libasan-staticdev = "${EAT_GCC_LICENSE}"
+LICENSE_libatomic-dev = "${EAT_GCC_LICENSE}"
+LICENSE_libatomic = "${EAT_GCC_LICENSE}"
+LICENSE_libatomic-staticdev = "${EAT_GCC_LICENSE}"
+LICENSE_libg2c-dev = "${EAT_GCC_LICENSE}"
+LICENSE_libg2c = "${EAT_GCC_LICENSE}"
+LICENSE_libgcc-dev = "${EAT_GCC_LICENSE}"
+LICENSE_libgcc = "${EAT_GCC_LICENSE}"
+LICENSE_libgfortran-dbg = "${EAT_GCC_LICENSE}"
+LICENSE_libgfortran-dev = "${EAT_GCC_LICENSE}"
+LICENSE_libgfortran = "${EAT_GCC_LICENSE}"
+LICENSE_libgfortran-staticdev = "${EAT_GCC_LICENSE}"
+LICENSE_libgomp-dev = "${EAT_GCC_LICENSE}"
+LICENSE_libgomp = "${EAT_GCC_LICENSE}"
+LICENSE_libgomp-staticdev = "${EAT_GCC_LICENSE}"
+LICENSE_libitm-dev = "${EAT_GCC_LICENSE}"
+LICENSE_libitm = "${EAT_GCC_LICENSE}"
+LICENSE_libitm-staticdev = "${EAT_GCC_LICENSE}"
+LICENSE_liblsan-dev = "${EAT_GCC_LICENSE}"
+LICENSE_liblsan = "${EAT_GCC_LICENSE}"
+LICENSE_liblsan-staticdev = "${EAT_GCC_LICENSE}"
+LICENSE_libmudflap-dev = "${EAT_GCC_LICENSE}"
+LICENSE_libmudflap = "${EAT_GCC_LICENSE}"
+LICENSE_libmudflap-staticdev = "${EAT_GCC_LICENSE}"
+LICENSE_libquadmath-dev = "${EAT_GCC_LICENSE}"
+LICENSE_libquadmath = "${EAT_GCC_LICENSE}"
+LICENSE_libquadmath-staticdev = "${EAT_GCC_LICENSE}"
+LICENSE_libssp-dev = "${EAT_GCC_LICENSE}"
+LICENSE_libssp = "${EAT_GCC_LICENSE}"
+LICENSE_libssp-staticdev = "${EAT_GCC_LICENSE}"
+LICENSE_libstdc++-dbg = "${EAT_GCC_LICENSE}"
+LICENSE_libstdc++-dev = "${EAT_GCC_LICENSE}"
+LICENSE_libstdc++ = "${EAT_GCC_LICENSE}"
+LICENSE_libstdc++-precompile-dev = "${EAT_GCC_LICENSE}"
+LICENSE_libstdc++-staticdev = "${EAT_GCC_LICENSE}"
+LICENSE_libtsan-dev = "${EAT_GCC_LICENSE}"
+LICENSE_libtsan = "${EAT_GCC_LICENSE}"
+LICENSE_libtsan-staticdev = "${EAT_GCC_LICENSE}"
+LICENSE_libubsan-dev = "${EAT_GCC_LICENSE}"
+LICENSE_libubsan = "${EAT_GCC_LICENSE}"
+LICENSE_libubsan-staticdev = "${EAT_GCC_LICENSE}"
+
+LICENSE_linux-libc-headers-dev = "GPLv2"
+LICENSE_linux-libc-headers = "GPLv2"
+
+LICENSE_gdbserver = "GPLv2 & GPLv3 & LGPLv2 & LGPLv3"
-- 
2.7.4


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

* Re: [meta-arm] [PATCH v3 4/5] meta-arm-toolchain: Add README
  2020-06-12 10:32 ` [PATCH v3 4/5] meta-arm-toolchain: Add README Sumit Garg
@ 2020-06-15 18:16   ` Jon Mason
  2020-06-16  5:28     ` Sumit Garg
       [not found]     ` <20200616100639.7gx6fzyz2m7czcs4@holly.lan>
  0 siblings, 2 replies; 17+ messages in thread
From: Jon Mason @ 2020-06-15 18:16 UTC (permalink / raw)
  To: Sumit Garg
  Cc: meta-arm, pbarker, denis, wmills, richard.purdie, daniel.thompson

On Fri, Jun 12, 2020 at 04:02:07PM +0530, Sumit Garg wrote:
> Document usage details for GNU Arm toolchains which could either be built
> from source or pre-built.
> 
> Signed-off-by: Sumit Garg <sumit.garg@linaro.org>
> ---
>  meta-arm-toolchain/README.md | 113 +++++++++++++++++++++++++++++++++++++++++++
>  1 file changed, 113 insertions(+)
>  create mode 100644 meta-arm-toolchain/README.md
> 
> diff --git a/meta-arm-toolchain/README.md b/meta-arm-toolchain/README.md
> new file mode 100644
> index 0000000..e415136
> --- /dev/null
> +++ b/meta-arm-toolchain/README.md
> @@ -0,0 +1,113 @@
> +meta-arm-toolchain Yocto Layer
> +==============================
> +
> +This layer contains recipes for GNU Arm toolchains which could either be built
> +from source or pre-built toolchain binaries.
> +
> +Information regarding contributing, reporting bugs, etc can be found in the
> +top-level meta-arm readme file.
> +
> +Source Arm toolchain for Linux development
> +------------------------------------------
> +
> +Recipes for GNU Arm toolchain built from source are provided under
> +``recipes-devtools/gcc/``. In order to use Arm toolchain instead of OE core
> +toolchain, one just needs to override ``GCCVERSION`` in corresponding distro
> +conf file.
> +
> +-  Eg. to use GNU Arm toolchain version ``9.2``
> +   GCCVERSION = "arm-9.2"
> +
> +Pre-built Arm toolchain for Linux development
> +---------------------------------------------
> +
> +Recipes for pre-built GNU Arm toolchain for Linux development are provided under
> +``recipes-devtools/external-arm-toolchain/``.
> +
> +external-arm-toolchain.bb
> +~~~~~~~~~~~~~~~~~~~~~~~~~
> +
> +This recipe provides support for pre-built GNU toolchains targeting processors
> +from the Arm Cortex-A family and implementing the Arm A-profile architecture.
> +
> +Usage
> +^^^^^
> +
> +In order to use any of pre-built Arm toolchain versions (8.2, 8.3, 9.2 and so
> +on), a user needs to download and untar tool-set on host machine at a particular
> +installation path eg: ``/opt/toolchain/``. Then user needs to specify following
> +in ``conf/local.conf`` in order to replace OE toolchain with pre-built GNU-A
> +toolchain:
> +
> +TCMODE = "external-arm"
> +EXTERNAL_TOOLCHAIN = "<path-to-the-toolchain>"
> +
> +-  Eg. for AArch64 (eg. qemuarm64 machine in poky distro)
> +   EXTERNAL_TOOLCHAIN = "\
> +     <installation-path>/gcc-arm-9.2-2019.12-x86_64-aarch64-none-linux-gnu \
> +   "
> +
> +-  Eg. for AArch32 (eg. qemuarm machine in poky distro)
> +   EXTERNAL_TOOLCHAIN = "\
> +     <installation-path>/gcc-arm-9.2-2019.12-x86_64-arm-none-linux-gnueabihf \
> +   "
> +
> +Supported distros and machines
> +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> +
> +Since this pre-built GNU-A tool-set simply replaces OE toolchain, so it is
> +meant to be distro and machine agnostic as long as one is cross-compiling for
> +Arm A-profile architecture.
> +
> +Tested distro and machines (for zeus stable release):
> +1.  Distro: poky; machines: qemuarm and qemuarm64 (build and boot tested)
> +2.  Distro: RPB; machines: dragonboard-410c (build and boot tested)
> +3.  Distro: world; machines: qemuarm and qemuarm64. Build tested for following
> +    layers:
> +    - poky/meta
> +    - poky/meta-poky
> +    - poky/meta-yocto-bsp
> +    - meta-openembedded/meta-oe
> +    - meta-openembedded/meta-python
> +    - meta-openembedded/meta-networking
> +
> +SDK support
> +^^^^^^^^^^^
> +
> +Pre-built toochain provides support to build OE SDK which has been tested using
> +following commands:
> +
> +$ bitbake core-image-base -c populate_sdk
> +$ bitbake core-image-base -c testsdk
> +
> +Note: Currently generated SDK only uses glibc provided by pre-built toolchain.
> +      The cross compiler, binutils, gdb/gdbserver etc. are built from source.
> +      This is something we would like to improve in future in order to package
> +      most of the components from pre-built toolchain instead.
> +
> +Pre-built Arm toolchain for bare-metal development
> +--------------------------------------------------
> +
> +Recipes for pre-built GNU Arm toolchain for bare-metal development are provided
> +under ``recipes-devtools/external-arm-toolchain/``.
> +
> +gcc-arm-none-eabi_<version>.bb
> +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> +
> +This recipe provides support for pre-built GNU Arm Embedded toolchain for
> +bare-metal software development on devices based on 32-bit Arm Cortex-A,
> +Cortex-R and Cortex-M processors.
> +
> +Supported version: 9-2019-q4-major
> +
> +gcc-aarch64-none-elf_<version>.bb
> +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> +
> +This recipe provides support for pre-built GNU Arm toolchain for bare-metal
> +software development on devices based on 64-bit Arm Cortex-A processors.
> +
> +Supported version: 9.2-2019.12
> +
> +Layer maintainer(s)
> +-------------------
> +* Sumit Garg <sumit.garg@linaro.org>

Linaro is the origin of this code, and I think it is important to
recognize this.  However, I would like some clarification as to what
this role is recognized to be and how interactions with the community
will occur.

Specifically, I want all patches on the list and no pull requests.
This is an active community, and I want to guarantee that all voices
are heard, and comments addressed.  I'm fairly sure you are in
agreement with this, as this is what you've been doing already.  But
since we are formalizing this with the above entry, I want it to be
written somewhere  :)

Thanks,
Jon



> -- 
> 2.7.4
> 

> 


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

* Re: [meta-arm] [PATCH v3 4/5] meta-arm-toolchain: Add README
  2020-06-15 18:16   ` [meta-arm] " Jon Mason
@ 2020-06-16  5:28     ` Sumit Garg
  2020-06-17 18:58       ` Jon Mason
       [not found]     ` <20200616100639.7gx6fzyz2m7czcs4@holly.lan>
  1 sibling, 1 reply; 17+ messages in thread
From: Sumit Garg @ 2020-06-16  5:28 UTC (permalink / raw)
  To: Jon Mason
  Cc: meta-arm, Paul Barker, Denys Dmytriyenko, wmills, Richard Purdie,
	Daniel Thompson

On Mon, 15 Jun 2020 at 23:46, Jon Mason <jdmason@kudzu.us> wrote:
>
> On Fri, Jun 12, 2020 at 04:02:07PM +0530, Sumit Garg wrote:
> > Document usage details for GNU Arm toolchains which could either be built
> > from source or pre-built.
> >
> > Signed-off-by: Sumit Garg <sumit.garg@linaro.org>
> > ---
> >  meta-arm-toolchain/README.md | 113 +++++++++++++++++++++++++++++++++++++++++++
> >  1 file changed, 113 insertions(+)
> >  create mode 100644 meta-arm-toolchain/README.md
> >
> > diff --git a/meta-arm-toolchain/README.md b/meta-arm-toolchain/README.md
> > new file mode 100644
> > index 0000000..e415136
> > --- /dev/null
> > +++ b/meta-arm-toolchain/README.md
> > @@ -0,0 +1,113 @@
> > +meta-arm-toolchain Yocto Layer
> > +==============================
> > +
> > +This layer contains recipes for GNU Arm toolchains which could either be built
> > +from source or pre-built toolchain binaries.
> > +
> > +Information regarding contributing, reporting bugs, etc can be found in the
> > +top-level meta-arm readme file.

This comment.

> > +
> > +Source Arm toolchain for Linux development
> > +------------------------------------------
> > +
> > +Recipes for GNU Arm toolchain built from source are provided under
> > +``recipes-devtools/gcc/``. In order to use Arm toolchain instead of OE core
> > +toolchain, one just needs to override ``GCCVERSION`` in corresponding distro
> > +conf file.
> > +
> > +-  Eg. to use GNU Arm toolchain version ``9.2``
> > +   GCCVERSION = "arm-9.2"
> > +
> > +Pre-built Arm toolchain for Linux development
> > +---------------------------------------------
> > +
> > +Recipes for pre-built GNU Arm toolchain for Linux development are provided under
> > +``recipes-devtools/external-arm-toolchain/``.
> > +
> > +external-arm-toolchain.bb
> > +~~~~~~~~~~~~~~~~~~~~~~~~~
> > +
> > +This recipe provides support for pre-built GNU toolchains targeting processors
> > +from the Arm Cortex-A family and implementing the Arm A-profile architecture.
> > +
> > +Usage
> > +^^^^^
> > +
> > +In order to use any of pre-built Arm toolchain versions (8.2, 8.3, 9.2 and so
> > +on), a user needs to download and untar tool-set on host machine at a particular
> > +installation path eg: ``/opt/toolchain/``. Then user needs to specify following
> > +in ``conf/local.conf`` in order to replace OE toolchain with pre-built GNU-A
> > +toolchain:
> > +
> > +TCMODE = "external-arm"
> > +EXTERNAL_TOOLCHAIN = "<path-to-the-toolchain>"
> > +
> > +-  Eg. for AArch64 (eg. qemuarm64 machine in poky distro)
> > +   EXTERNAL_TOOLCHAIN = "\
> > +     <installation-path>/gcc-arm-9.2-2019.12-x86_64-aarch64-none-linux-gnu \
> > +   "
> > +
> > +-  Eg. for AArch32 (eg. qemuarm machine in poky distro)
> > +   EXTERNAL_TOOLCHAIN = "\
> > +     <installation-path>/gcc-arm-9.2-2019.12-x86_64-arm-none-linux-gnueabihf \
> > +   "
> > +
> > +Supported distros and machines
> > +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> > +
> > +Since this pre-built GNU-A tool-set simply replaces OE toolchain, so it is
> > +meant to be distro and machine agnostic as long as one is cross-compiling for
> > +Arm A-profile architecture.
> > +
> > +Tested distro and machines (for zeus stable release):
> > +1.  Distro: poky; machines: qemuarm and qemuarm64 (build and boot tested)
> > +2.  Distro: RPB; machines: dragonboard-410c (build and boot tested)
> > +3.  Distro: world; machines: qemuarm and qemuarm64. Build tested for following
> > +    layers:
> > +    - poky/meta
> > +    - poky/meta-poky
> > +    - poky/meta-yocto-bsp
> > +    - meta-openembedded/meta-oe
> > +    - meta-openembedded/meta-python
> > +    - meta-openembedded/meta-networking
> > +
> > +SDK support
> > +^^^^^^^^^^^
> > +
> > +Pre-built toochain provides support to build OE SDK which has been tested using
> > +following commands:
> > +
> > +$ bitbake core-image-base -c populate_sdk
> > +$ bitbake core-image-base -c testsdk
> > +
> > +Note: Currently generated SDK only uses glibc provided by pre-built toolchain.
> > +      The cross compiler, binutils, gdb/gdbserver etc. are built from source.
> > +      This is something we would like to improve in future in order to package
> > +      most of the components from pre-built toolchain instead.
> > +
> > +Pre-built Arm toolchain for bare-metal development
> > +--------------------------------------------------
> > +
> > +Recipes for pre-built GNU Arm toolchain for bare-metal development are provided
> > +under ``recipes-devtools/external-arm-toolchain/``.
> > +
> > +gcc-arm-none-eabi_<version>.bb
> > +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> > +
> > +This recipe provides support for pre-built GNU Arm Embedded toolchain for
> > +bare-metal software development on devices based on 32-bit Arm Cortex-A,
> > +Cortex-R and Cortex-M processors.
> > +
> > +Supported version: 9-2019-q4-major
> > +
> > +gcc-aarch64-none-elf_<version>.bb
> > +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> > +
> > +This recipe provides support for pre-built GNU Arm toolchain for bare-metal
> > +software development on devices based on 64-bit Arm Cortex-A processors.
> > +
> > +Supported version: 9.2-2019.12
> > +
> > +Layer maintainer(s)
> > +-------------------
> > +* Sumit Garg <sumit.garg@linaro.org>
>
> Linaro is the origin of this code, and I think it is important to
> recognize this.

Thanks.

>  However, I would like some clarification as to what
> this role is recognized to be and how interactions with the community
> will occur.
>
> Specifically, I want all patches on the list and no pull requests.
> This is an active community, and I want to guarantee that all voices
> are heard, and comments addressed.  I'm fairly sure you are in
> agreement with this, as this is what you've been doing already.

Yes I am in agreement with this.

> But
> since we are formalizing this with the above entry, I want it to be
> written somewhere  :)

Isn't the comment on top of this README above sufficient to formalize this?

-Sumit

>
> Thanks,
> Jon
>
>
>
> > --
> > 2.7.4
> >
>
> > 
>

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

* Re: [meta-arm] [PATCH v3 4/5] meta-arm-toolchain: Add README
       [not found]     ` <20200616100639.7gx6fzyz2m7czcs4@holly.lan>
@ 2020-06-17 18:52       ` Jon Mason
  0 siblings, 0 replies; 17+ messages in thread
From: Jon Mason @ 2020-06-17 18:52 UTC (permalink / raw)
  To: Daniel Thompson
  Cc: Sumit Garg, meta-arm, pbarker, denis, wmills, richard.purdie

On Tue, Jun 16, 2020 at 11:06:39AM +0100, Daniel Thompson wrote:
> On Mon, Jun 15, 2020 at 02:16:32PM -0400, Jon Mason wrote:
> > On Fri, Jun 12, 2020 at 04:02:07PM +0530, Sumit Garg wrote:
> > > +gcc-aarch64-none-elf_<version>.bb
> > > +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> > > +
> > > +This recipe provides support for pre-built GNU Arm toolchain for bare-metal
> > > +software development on devices based on 64-bit Arm Cortex-A processors.
> > > +
> > > +Supported version: 9.2-2019.12
> > > +
> > > +Layer maintainer(s)
> > > +-------------------
> > > +* Sumit Garg <sumit.garg@linaro.org>
> > 
> > Linaro is the origin of this code, and I think it is important to
> > recognize this.  However, I would like some clarification as to what
> > this role is recognized to be and how interactions with the community
> > will occur.
> > 
> > Specifically, I want all patches on the list and no pull requests.
> > This is an active community, and I want to guarantee that all voices
> > are heard, and comments addressed.
> 
> Agree entirely that is the right way to organise contributions.
> 
> I also couldn't help noticing that this policy is not currently enacted
> in the Contributing section for meta-arm-autonomy ;-) .

Noted and working on resolving that.  :)

Thanks,
Jon

> 
> 
> Daniel.

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

* Re: [meta-arm] [PATCH v3 4/5] meta-arm-toolchain: Add README
  2020-06-16  5:28     ` Sumit Garg
@ 2020-06-17 18:58       ` Jon Mason
  2020-06-17 19:21         ` Denys Dmytriyenko
  2020-06-18  5:47         ` Sumit Garg
  0 siblings, 2 replies; 17+ messages in thread
From: Jon Mason @ 2020-06-17 18:58 UTC (permalink / raw)
  To: Sumit Garg
  Cc: meta-arm, Paul Barker, Denys Dmytriyenko, wmills, Richard Purdie,
	Daniel Thompson

On Tue, Jun 16, 2020 at 10:58:20AM +0530, Sumit Garg wrote:
> On Mon, 15 Jun 2020 at 23:46, Jon Mason <jdmason@kudzu.us> wrote:
> >
> > On Fri, Jun 12, 2020 at 04:02:07PM +0530, Sumit Garg wrote:
> > > Document usage details for GNU Arm toolchains which could either be built
> > > from source or pre-built.
> > >
> > > Signed-off-by: Sumit Garg <sumit.garg@linaro.org>
> > > ---
> > >  meta-arm-toolchain/README.md | 113 +++++++++++++++++++++++++++++++++++++++++++
> > >  1 file changed, 113 insertions(+)
> > >  create mode 100644 meta-arm-toolchain/README.md
> > >
> > > diff --git a/meta-arm-toolchain/README.md b/meta-arm-toolchain/README.md
> > > new file mode 100644
> > > index 0000000..e415136
> > > --- /dev/null
> > > +++ b/meta-arm-toolchain/README.md
> > > @@ -0,0 +1,113 @@
> > > +meta-arm-toolchain Yocto Layer
> > > +==============================
> > > +
> > > +This layer contains recipes for GNU Arm toolchains which could either be built
> > > +from source or pre-built toolchain binaries.
> > > +
> > > +Information regarding contributing, reporting bugs, etc can be found in the
> > > +top-level meta-arm readme file.
> 
> This comment.
> 
> > > +
> > > +Source Arm toolchain for Linux development
> > > +------------------------------------------
> > > +
> > > +Recipes for GNU Arm toolchain built from source are provided under
> > > +``recipes-devtools/gcc/``. In order to use Arm toolchain instead of OE core
> > > +toolchain, one just needs to override ``GCCVERSION`` in corresponding distro
> > > +conf file.
> > > +
> > > +-  Eg. to use GNU Arm toolchain version ``9.2``
> > > +   GCCVERSION = "arm-9.2"
> > > +
> > > +Pre-built Arm toolchain for Linux development
> > > +---------------------------------------------
> > > +
> > > +Recipes for pre-built GNU Arm toolchain for Linux development are provided under
> > > +``recipes-devtools/external-arm-toolchain/``.
> > > +
> > > +external-arm-toolchain.bb
> > > +~~~~~~~~~~~~~~~~~~~~~~~~~
> > > +
> > > +This recipe provides support for pre-built GNU toolchains targeting processors
> > > +from the Arm Cortex-A family and implementing the Arm A-profile architecture.
> > > +
> > > +Usage
> > > +^^^^^
> > > +
> > > +In order to use any of pre-built Arm toolchain versions (8.2, 8.3, 9.2 and so
> > > +on), a user needs to download and untar tool-set on host machine at a particular
> > > +installation path eg: ``/opt/toolchain/``. Then user needs to specify following
> > > +in ``conf/local.conf`` in order to replace OE toolchain with pre-built GNU-A
> > > +toolchain:
> > > +
> > > +TCMODE = "external-arm"
> > > +EXTERNAL_TOOLCHAIN = "<path-to-the-toolchain>"
> > > +
> > > +-  Eg. for AArch64 (eg. qemuarm64 machine in poky distro)
> > > +   EXTERNAL_TOOLCHAIN = "\
> > > +     <installation-path>/gcc-arm-9.2-2019.12-x86_64-aarch64-none-linux-gnu \
> > > +   "
> > > +
> > > +-  Eg. for AArch32 (eg. qemuarm machine in poky distro)
> > > +   EXTERNAL_TOOLCHAIN = "\
> > > +     <installation-path>/gcc-arm-9.2-2019.12-x86_64-arm-none-linux-gnueabihf \
> > > +   "
> > > +
> > > +Supported distros and machines
> > > +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> > > +
> > > +Since this pre-built GNU-A tool-set simply replaces OE toolchain, so it is
> > > +meant to be distro and machine agnostic as long as one is cross-compiling for
> > > +Arm A-profile architecture.
> > > +
> > > +Tested distro and machines (for zeus stable release):
> > > +1.  Distro: poky; machines: qemuarm and qemuarm64 (build and boot tested)
> > > +2.  Distro: RPB; machines: dragonboard-410c (build and boot tested)
> > > +3.  Distro: world; machines: qemuarm and qemuarm64. Build tested for following
> > > +    layers:
> > > +    - poky/meta
> > > +    - poky/meta-poky
> > > +    - poky/meta-yocto-bsp
> > > +    - meta-openembedded/meta-oe
> > > +    - meta-openembedded/meta-python
> > > +    - meta-openembedded/meta-networking
> > > +
> > > +SDK support
> > > +^^^^^^^^^^^
> > > +
> > > +Pre-built toochain provides support to build OE SDK which has been tested using
> > > +following commands:
> > > +
> > > +$ bitbake core-image-base -c populate_sdk
> > > +$ bitbake core-image-base -c testsdk
> > > +
> > > +Note: Currently generated SDK only uses glibc provided by pre-built toolchain.
> > > +      The cross compiler, binutils, gdb/gdbserver etc. are built from source.
> > > +      This is something we would like to improve in future in order to package
> > > +      most of the components from pre-built toolchain instead.
> > > +
> > > +Pre-built Arm toolchain for bare-metal development
> > > +--------------------------------------------------
> > > +
> > > +Recipes for pre-built GNU Arm toolchain for bare-metal development are provided
> > > +under ``recipes-devtools/external-arm-toolchain/``.
> > > +
> > > +gcc-arm-none-eabi_<version>.bb
> > > +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> > > +
> > > +This recipe provides support for pre-built GNU Arm Embedded toolchain for
> > > +bare-metal software development on devices based on 32-bit Arm Cortex-A,
> > > +Cortex-R and Cortex-M processors.
> > > +
> > > +Supported version: 9-2019-q4-major
> > > +
> > > +gcc-aarch64-none-elf_<version>.bb
> > > +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> > > +
> > > +This recipe provides support for pre-built GNU Arm toolchain for bare-metal
> > > +software development on devices based on 64-bit Arm Cortex-A processors.
> > > +
> > > +Supported version: 9.2-2019.12
> > > +
> > > +Layer maintainer(s)
> > > +-------------------
> > > +* Sumit Garg <sumit.garg@linaro.org>
> >
> > Linaro is the origin of this code, and I think it is important to
> > recognize this.
> 
> Thanks.
> 
> >  However, I would like some clarification as to what
> > this role is recognized to be and how interactions with the community
> > will occur.
> >
> > Specifically, I want all patches on the list and no pull requests.
> > This is an active community, and I want to guarantee that all voices
> > are heard, and comments addressed.  I'm fairly sure you are in
> > agreement with this, as this is what you've been doing already.
> 
> Yes I am in agreement with this.
> 
> > But
> > since we are formalizing this with the above entry, I want it to be
> > written somewhere  :)
> 
> Isn't the comment on top of this README above sufficient to formalize this?

It is sufficient for me.

For giggles, I did a quick look at the contributors since it was
added.

$ git log meta-arm-toolchain/ | grep Author | sort | uniq -c
     14 Author: Denys Dmytriyenko <denys@ti.com>
      2 Author: Jon Mason <jdmason@kudzu.us>
      1 Author: Ralph Siemsen <ralph.siemsen@linaro.org>
      2 Author: Sumit Garg <sumit.garg@linaro.org>

It looks like Denys should probably be a maintainer too.  Given that
he has a unique use case and is testing this throughly (as he's found
my patches to be very lacking).  I don't know if he is interested in
the extra burden of this, but I think you two would make a good pair
and help give some validity to this being a group project.

Anyway, I'll pull this series in now.

Thanks,
Jon

> 
> -Sumit
> 
> >
> > Thanks,
> > Jon
> >
> >
> >
> > > --
> > > 2.7.4
> > >
> >
> > > 
> >

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

* Re: [PATCH v3 3/5] external-arm-toolchain: Align glibc packaging to OE TARGET_SYS
  2020-06-12 10:32 ` [PATCH v3 3/5] external-arm-toolchain: Align glibc packaging to OE TARGET_SYS Sumit Garg
@ 2020-06-17 19:17   ` Denys Dmytriyenko
  2020-06-18  5:34     ` Sumit Garg
  0 siblings, 1 reply; 17+ messages in thread
From: Denys Dmytriyenko @ 2020-06-17 19:17 UTC (permalink / raw)
  To: Sumit Garg; +Cc: meta-arm, pbarker, wmills, richard.purdie, daniel.thompson

Sorry, did we agree to drop this one for now?

On Fri, Jun 12, 2020 at 04:02:06PM +0530, Sumit Garg wrote:
> OE native and cross compilers (in case of SDK) uses OE TARGET_SYS to
> create standard paths to search for libraries and headers during
> compilation.
> 
> Currently external-arm-toolchain recipe temporarily override TARGET_SYS
> with EAT_TARGET_SYS and packages libraries and headers corresponding to
> EAT_TARGET_SYS which leads to failures during native and cross compilation
> (in case of SDK) such as:
> 
> $ $CXX -o hello++ hello.cpp
> In file included from hello.cpp:1:
> /tmp/armsdk/sysroots/armv7at2hf-neon-oe-linux-gnueabi/usr/include/c++/9.2.1/iostream:38:10: fatal error: bits/c++config.h: No such file or directory
>    38 | #include <bits/c++config.h>
>       |          ^~~~~~~~~~~~~~~~~~
> compilation terminated.
> 
> $ $CC hello.c
> real-ld: cannot find crtbeginS.o: No such file or directory
> 
> So remove temp override of TARGET_SYS and rather package libraries and
> headers corresponding to OE TARGET_SYS.
> 
> This fixes changes added in commit:
> https://git.linaro.org/openembedded/meta-linaro.git/commit/?id=91ea4d017bf0598e49944e76c889e66d58c066ce
> 
> Also, update location for unwind.h gcc-arm-common.inc accordingly.
> 
> Signed-off-by: Sumit Garg <sumit.garg@linaro.org>
> ---
>  .../external-arm-toolchain/external-arm-toolchain.bb   | 18 ++++++++++--------
>  .../recipes-devtools/gcc/gcc-arm-common.inc            |  2 +-
>  2 files changed, 11 insertions(+), 9 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 73a2cf6..4face74 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
> @@ -54,7 +54,6 @@ PROVIDES += "\
>  PV = "${EAT_VER_MAIN}"
>  
>  BINV = "${EAT_VER_GCC}"
> -TARGET_SYS = "${EAT_TARGET_SYS}"
>  
>  SRC_URI = "file://SUPPORTED"
>  
> @@ -75,8 +74,8 @@ do_install() {
>  	install -d ${D}${datadir}
>  	install -d ${D}${includedir}
>  	install -d ${D}/include
> -	install -d ${D}${libdir}/${EAT_TARGET_SYS}/${EAT_VER_GCC}
> -	install -d ${D}${libdir}/gcc/${EAT_TARGET_SYS}/${EAT_VER_GCC}
> +	install -d ${D}${libdir}/${TARGET_SYS}/${EAT_VER_GCC}
> +	install -d ${D}${libdir}/gcc/${TARGET_SYS}/${EAT_VER_GCC}
>  
>  	CP_ARGS="-Prf --preserve=mode,timestamps --no-preserve=ownership"
>  	cp ${CP_ARGS} ${EXTERNAL_TOOLCHAIN}/${EAT_TARGET_SYS}/${EAT_LIBDIR}/*  ${D}${base_libdir}
> @@ -105,6 +104,9 @@ do_install() {
>  	fi
>  
>  	cp ${CP_ARGS} ${EXTERNAL_TOOLCHAIN}/${EAT_TARGET_SYS}/include/* ${D}${includedir}
> +	if [ -d ${D}${includedir}/c++/${EAT_VER_GCC}/${EAT_TARGET_SYS} ]; then
> +		mv ${D}${includedir}/c++/${EAT_VER_GCC}/${EAT_TARGET_SYS} ${D}${includedir}/c++/${EAT_VER_GCC}/${TARGET_SYS}
> +	fi
>  	ln -sf ../usr/include/c++ ${D}/include/c++
>  
>  	cp ${CP_ARGS} ${EXTERNAL_TOOLCHAIN}/${EAT_TARGET_SYS}/libc/usr/bin/* ${D}${bindir}
> @@ -116,11 +118,11 @@ do_install() {
>  	sed -i -e 's#/bin/bash#/bin/sh#' ${D}${bindir}/tzselect
>  	sed -i -e 's#/bin/bash#/bin/sh#' ${D}${bindir}/ldd
>  
> -	cp ${CP_ARGS} ${EXTERNAL_TOOLCHAIN}/lib/gcc/${EAT_TARGET_SYS}/${EAT_VER_GCC}/crt*.o ${D}${libdir}/${EAT_TARGET_SYS}/${EAT_VER_GCC}/
> -	cp ${CP_ARGS} ${EXTERNAL_TOOLCHAIN}/lib/gcc/${EAT_TARGET_SYS}/${EAT_VER_GCC}/libgcc* ${D}${libdir}/${EAT_TARGET_SYS}/${EAT_VER_GCC}/
> -	cp ${CP_ARGS} ${EXTERNAL_TOOLCHAIN}/lib/gcc/${EAT_TARGET_SYS}/${EAT_VER_GCC}/libgcov* ${D}${libdir}/gcc/${EAT_TARGET_SYS}/${EAT_VER_GCC}/
> -	cp ${CP_ARGS} ${EXTERNAL_TOOLCHAIN}/lib/gcc/${EAT_TARGET_SYS}/${EAT_VER_GCC}/include ${D}${libdir}/gcc/${EAT_TARGET_SYS}/${EAT_VER_GCC}/
> -	cp ${CP_ARGS} ${EXTERNAL_TOOLCHAIN}/lib/gcc/${EAT_TARGET_SYS}/${EAT_VER_GCC}/finclude ${D}${libdir}/gcc/${EAT_TARGET_SYS}/${EAT_VER_GCC}/
> +	cp ${CP_ARGS} ${EXTERNAL_TOOLCHAIN}/lib/gcc/${EAT_TARGET_SYS}/${EAT_VER_GCC}/crt*.o ${D}${libdir}/${TARGET_SYS}/${EAT_VER_GCC}/
> +	cp ${CP_ARGS} ${EXTERNAL_TOOLCHAIN}/lib/gcc/${EAT_TARGET_SYS}/${EAT_VER_GCC}/libgcc* ${D}${libdir}/${TARGET_SYS}/${EAT_VER_GCC}/
> +	cp ${CP_ARGS} ${EXTERNAL_TOOLCHAIN}/lib/gcc/${EAT_TARGET_SYS}/${EAT_VER_GCC}/libgcov* ${D}${libdir}/gcc/${TARGET_SYS}/${EAT_VER_GCC}/
> +	cp ${CP_ARGS} ${EXTERNAL_TOOLCHAIN}/lib/gcc/${EAT_TARGET_SYS}/${EAT_VER_GCC}/include ${D}${libdir}/gcc/${TARGET_SYS}/${EAT_VER_GCC}/
> +	cp ${CP_ARGS} ${EXTERNAL_TOOLCHAIN}/lib/gcc/${EAT_TARGET_SYS}/${EAT_VER_GCC}/finclude ${D}${libdir}/gcc/${TARGET_SYS}/${EAT_VER_GCC}/
>  
>  	# fix up the copied symlinks (they are still pointing to the multiarch directory)
>  	linker_name="${@bb.utils.contains("TUNE_FEATURES", "aarch64", "ld-linux-aarch64.so.1", bb.utils.contains("TUNE_FEATURES", "callconvention-hard", "ld-linux-armhf.so.3", "ld-linux.so.3",d), d)}"
> diff --git a/meta-arm-toolchain/recipes-devtools/gcc/gcc-arm-common.inc b/meta-arm-toolchain/recipes-devtools/gcc/gcc-arm-common.inc
> index 5599743..392c57f 100644
> --- a/meta-arm-toolchain/recipes-devtools/gcc/gcc-arm-common.inc
> +++ b/meta-arm-toolchain/recipes-devtools/gcc/gcc-arm-common.inc
> @@ -12,7 +12,7 @@
>  do_install_prepend_class-target () {
>  	if [ "${TCMODE}" = "external-arm" -a ! -f ${STAGING_LIBDIR_NATIVE}/${TARGET_SYS}/gcc/${TARGET_SYS}/${BINV}/include/unwind.h ]; then
>  		install -d ${STAGING_LIBDIR_NATIVE}/${TARGET_SYS}/gcc/${TARGET_SYS}/${BINV}/include/
> -		install ${STAGING_LIBDIR}/gcc/${EAT_TARGET_SYS}/${EAT_VER_GCC}/include/unwind.h ${STAGING_LIBDIR_NATIVE}/${TARGET_SYS}/gcc/${TARGET_SYS}/${BINV}/include/
> +		install ${STAGING_LIBDIR}/gcc/${TARGET_SYS}/${EAT_VER_GCC}/include/unwind.h ${STAGING_LIBDIR_NATIVE}/${TARGET_SYS}/gcc/${TARGET_SYS}/${BINV}/include/
>  	fi
>  }
>  
> -- 
> 2.7.4
> 

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

* Re: [meta-arm] [PATCH v3 4/5] meta-arm-toolchain: Add README
  2020-06-17 18:58       ` Jon Mason
@ 2020-06-17 19:21         ` Denys Dmytriyenko
  2020-06-18  5:47         ` Sumit Garg
  1 sibling, 0 replies; 17+ messages in thread
From: Denys Dmytriyenko @ 2020-06-17 19:21 UTC (permalink / raw)
  To: Jon Mason
  Cc: Sumit Garg, meta-arm, Paul Barker, wmills, Richard Purdie,
	Daniel Thompson

On Wed, Jun 17, 2020 at 02:58:08PM -0400, Jon Mason wrote:
> On Tue, Jun 16, 2020 at 10:58:20AM +0530, Sumit Garg wrote:
> > On Mon, 15 Jun 2020 at 23:46, Jon Mason <jdmason@kudzu.us> wrote:
> > >
> > > On Fri, Jun 12, 2020 at 04:02:07PM +0530, Sumit Garg wrote:
> > > > Document usage details for GNU Arm toolchains which could either be built
> > > > from source or pre-built.
> > > >
> > > > Signed-off-by: Sumit Garg <sumit.garg@linaro.org>
> > > > ---
> > > >  meta-arm-toolchain/README.md | 113 +++++++++++++++++++++++++++++++++++++++++++
> > > >  1 file changed, 113 insertions(+)
> > > >  create mode 100644 meta-arm-toolchain/README.md
> > > >
> > > > diff --git a/meta-arm-toolchain/README.md b/meta-arm-toolchain/README.md
> > > > new file mode 100644
> > > > index 0000000..e415136
> > > > --- /dev/null
> > > > +++ b/meta-arm-toolchain/README.md
> > > > @@ -0,0 +1,113 @@
> > > > +meta-arm-toolchain Yocto Layer
> > > > +==============================
> > > > +
> > > > +This layer contains recipes for GNU Arm toolchains which could either be built
> > > > +from source or pre-built toolchain binaries.
> > > > +
> > > > +Information regarding contributing, reporting bugs, etc can be found in the
> > > > +top-level meta-arm readme file.
> > 
> > This comment.
> > 
> > > > +
> > > > +Source Arm toolchain for Linux development
> > > > +------------------------------------------
> > > > +
> > > > +Recipes for GNU Arm toolchain built from source are provided under
> > > > +``recipes-devtools/gcc/``. In order to use Arm toolchain instead of OE core
> > > > +toolchain, one just needs to override ``GCCVERSION`` in corresponding distro
> > > > +conf file.
> > > > +
> > > > +-  Eg. to use GNU Arm toolchain version ``9.2``
> > > > +   GCCVERSION = "arm-9.2"
> > > > +
> > > > +Pre-built Arm toolchain for Linux development
> > > > +---------------------------------------------
> > > > +
> > > > +Recipes for pre-built GNU Arm toolchain for Linux development are provided under
> > > > +``recipes-devtools/external-arm-toolchain/``.
> > > > +
> > > > +external-arm-toolchain.bb
> > > > +~~~~~~~~~~~~~~~~~~~~~~~~~
> > > > +
> > > > +This recipe provides support for pre-built GNU toolchains targeting processors
> > > > +from the Arm Cortex-A family and implementing the Arm A-profile architecture.
> > > > +
> > > > +Usage
> > > > +^^^^^
> > > > +
> > > > +In order to use any of pre-built Arm toolchain versions (8.2, 8.3, 9.2 and so
> > > > +on), a user needs to download and untar tool-set on host machine at a particular
> > > > +installation path eg: ``/opt/toolchain/``. Then user needs to specify following
> > > > +in ``conf/local.conf`` in order to replace OE toolchain with pre-built GNU-A
> > > > +toolchain:
> > > > +
> > > > +TCMODE = "external-arm"
> > > > +EXTERNAL_TOOLCHAIN = "<path-to-the-toolchain>"
> > > > +
> > > > +-  Eg. for AArch64 (eg. qemuarm64 machine in poky distro)
> > > > +   EXTERNAL_TOOLCHAIN = "\
> > > > +     <installation-path>/gcc-arm-9.2-2019.12-x86_64-aarch64-none-linux-gnu \
> > > > +   "
> > > > +
> > > > +-  Eg. for AArch32 (eg. qemuarm machine in poky distro)
> > > > +   EXTERNAL_TOOLCHAIN = "\
> > > > +     <installation-path>/gcc-arm-9.2-2019.12-x86_64-arm-none-linux-gnueabihf \
> > > > +   "
> > > > +
> > > > +Supported distros and machines
> > > > +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> > > > +
> > > > +Since this pre-built GNU-A tool-set simply replaces OE toolchain, so it is
> > > > +meant to be distro and machine agnostic as long as one is cross-compiling for
> > > > +Arm A-profile architecture.
> > > > +
> > > > +Tested distro and machines (for zeus stable release):
> > > > +1.  Distro: poky; machines: qemuarm and qemuarm64 (build and boot tested)
> > > > +2.  Distro: RPB; machines: dragonboard-410c (build and boot tested)
> > > > +3.  Distro: world; machines: qemuarm and qemuarm64. Build tested for following
> > > > +    layers:
> > > > +    - poky/meta
> > > > +    - poky/meta-poky
> > > > +    - poky/meta-yocto-bsp
> > > > +    - meta-openembedded/meta-oe
> > > > +    - meta-openembedded/meta-python
> > > > +    - meta-openembedded/meta-networking
> > > > +
> > > > +SDK support
> > > > +^^^^^^^^^^^
> > > > +
> > > > +Pre-built toochain provides support to build OE SDK which has been tested using
> > > > +following commands:
> > > > +
> > > > +$ bitbake core-image-base -c populate_sdk
> > > > +$ bitbake core-image-base -c testsdk
> > > > +
> > > > +Note: Currently generated SDK only uses glibc provided by pre-built toolchain.
> > > > +      The cross compiler, binutils, gdb/gdbserver etc. are built from source.
> > > > +      This is something we would like to improve in future in order to package
> > > > +      most of the components from pre-built toolchain instead.
> > > > +
> > > > +Pre-built Arm toolchain for bare-metal development
> > > > +--------------------------------------------------
> > > > +
> > > > +Recipes for pre-built GNU Arm toolchain for bare-metal development are provided
> > > > +under ``recipes-devtools/external-arm-toolchain/``.
> > > > +
> > > > +gcc-arm-none-eabi_<version>.bb
> > > > +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> > > > +
> > > > +This recipe provides support for pre-built GNU Arm Embedded toolchain for
> > > > +bare-metal software development on devices based on 32-bit Arm Cortex-A,
> > > > +Cortex-R and Cortex-M processors.
> > > > +
> > > > +Supported version: 9-2019-q4-major
> > > > +
> > > > +gcc-aarch64-none-elf_<version>.bb
> > > > +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> > > > +
> > > > +This recipe provides support for pre-built GNU Arm toolchain for bare-metal
> > > > +software development on devices based on 64-bit Arm Cortex-A processors.
> > > > +
> > > > +Supported version: 9.2-2019.12
> > > > +
> > > > +Layer maintainer(s)
> > > > +-------------------
> > > > +* Sumit Garg <sumit.garg@linaro.org>
> > >
> > > Linaro is the origin of this code, and I think it is important to
> > > recognize this.
> > 
> > Thanks.
> > 
> > >  However, I would like some clarification as to what
> > > this role is recognized to be and how interactions with the community
> > > will occur.
> > >
> > > Specifically, I want all patches on the list and no pull requests.
> > > This is an active community, and I want to guarantee that all voices
> > > are heard, and comments addressed.  I'm fairly sure you are in
> > > agreement with this, as this is what you've been doing already.
> > 
> > Yes I am in agreement with this.
> > 
> > > But
> > > since we are formalizing this with the above entry, I want it to be
> > > written somewhere  :)
> > 
> > Isn't the comment on top of this README above sufficient to formalize this?
> 
> It is sufficient for me.
> 
> For giggles, I did a quick look at the contributors since it was
> added.
> 
> $ git log meta-arm-toolchain/ | grep Author | sort | uniq -c
>      14 Author: Denys Dmytriyenko <denys@ti.com>
>       2 Author: Jon Mason <jdmason@kudzu.us>
>       1 Author: Ralph Siemsen <ralph.siemsen@linaro.org>
>       2 Author: Sumit Garg <sumit.garg@linaro.org>
> 
> It looks like Denys should probably be a maintainer too.  Given that
> he has a unique use case and is testing this throughly (as he's found
> my patches to be very lacking).  I don't know if he is interested in
> the extra burden of this, but I think you two would make a good pair
> and help give some validity to this being a group project.

Fine with me. I have to review and test patches for this layer anyway, 
as they have potential breaking things for me, 


> Anyway, I'll pull this series in now.

As previously discussed, #3 is problematic.


> Thanks,
> Jon
> 
> > 
> > -Sumit
> > 
> > >
> > > Thanks,
> > > Jon
> > >
> > >
> > >
> > > > --
> > > > 2.7.4
> > > >
> > >
> > > > 
> > >
> 

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

* Re: [PATCH v3 3/5] external-arm-toolchain: Align glibc packaging to OE TARGET_SYS
  2020-06-17 19:17   ` Denys Dmytriyenko
@ 2020-06-18  5:34     ` Sumit Garg
  2020-06-18  7:03       ` [meta-arm] " Denys Dmytriyenko
  0 siblings, 1 reply; 17+ messages in thread
From: Sumit Garg @ 2020-06-18  5:34 UTC (permalink / raw)
  To: Denys Dmytriyenko
  Cc: meta-arm, Paul Barker, wmills, Richard Purdie, Daniel Thompson

On Thu, 18 Jun 2020 at 00:47, Denys Dmytriyenko <denis@denix.org> wrote:
>
> Sorry, did we agree to drop this one for now?

No, I don't think so. See our last conversation on v2 [1].

I think you have already addressed alignment to EAT_TARGET_SYS for
pre-built toolchain components packaging in SDK as part of your
recipe: external-arm-sdk-toolchain.bb.

But we still need this fix for native compilation to work using native
OE compiler built from source.

[1] https://lists.yoctoproject.org/g/meta-arm/message/637

-Sumit

>
> On Fri, Jun 12, 2020 at 04:02:06PM +0530, Sumit Garg wrote:
> > OE native and cross compilers (in case of SDK) uses OE TARGET_SYS to
> > create standard paths to search for libraries and headers during
> > compilation.
> >
> > Currently external-arm-toolchain recipe temporarily override TARGET_SYS
> > with EAT_TARGET_SYS and packages libraries and headers corresponding to
> > EAT_TARGET_SYS which leads to failures during native and cross compilation
> > (in case of SDK) such as:
> >
> > $ $CXX -o hello++ hello.cpp
> > In file included from hello.cpp:1:
> > /tmp/armsdk/sysroots/armv7at2hf-neon-oe-linux-gnueabi/usr/include/c++/9.2.1/iostream:38:10: fatal error: bits/c++config.h: No such file or directory
> >    38 | #include <bits/c++config.h>
> >       |          ^~~~~~~~~~~~~~~~~~
> > compilation terminated.
> >
> > $ $CC hello.c
> > real-ld: cannot find crtbeginS.o: No such file or directory
> >
> > So remove temp override of TARGET_SYS and rather package libraries and
> > headers corresponding to OE TARGET_SYS.
> >
> > This fixes changes added in commit:
> > https://git.linaro.org/openembedded/meta-linaro.git/commit/?id=91ea4d017bf0598e49944e76c889e66d58c066ce
> >
> > Also, update location for unwind.h gcc-arm-common.inc accordingly.
> >
> > Signed-off-by: Sumit Garg <sumit.garg@linaro.org>
> > ---
> >  .../external-arm-toolchain/external-arm-toolchain.bb   | 18 ++++++++++--------
> >  .../recipes-devtools/gcc/gcc-arm-common.inc            |  2 +-
> >  2 files changed, 11 insertions(+), 9 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 73a2cf6..4face74 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
> > @@ -54,7 +54,6 @@ PROVIDES += "\
> >  PV = "${EAT_VER_MAIN}"
> >
> >  BINV = "${EAT_VER_GCC}"
> > -TARGET_SYS = "${EAT_TARGET_SYS}"
> >
> >  SRC_URI = "file://SUPPORTED"
> >
> > @@ -75,8 +74,8 @@ do_install() {
> >       install -d ${D}${datadir}
> >       install -d ${D}${includedir}
> >       install -d ${D}/include
> > -     install -d ${D}${libdir}/${EAT_TARGET_SYS}/${EAT_VER_GCC}
> > -     install -d ${D}${libdir}/gcc/${EAT_TARGET_SYS}/${EAT_VER_GCC}
> > +     install -d ${D}${libdir}/${TARGET_SYS}/${EAT_VER_GCC}
> > +     install -d ${D}${libdir}/gcc/${TARGET_SYS}/${EAT_VER_GCC}
> >
> >       CP_ARGS="-Prf --preserve=mode,timestamps --no-preserve=ownership"
> >       cp ${CP_ARGS} ${EXTERNAL_TOOLCHAIN}/${EAT_TARGET_SYS}/${EAT_LIBDIR}/*  ${D}${base_libdir}
> > @@ -105,6 +104,9 @@ do_install() {
> >       fi
> >
> >       cp ${CP_ARGS} ${EXTERNAL_TOOLCHAIN}/${EAT_TARGET_SYS}/include/* ${D}${includedir}
> > +     if [ -d ${D}${includedir}/c++/${EAT_VER_GCC}/${EAT_TARGET_SYS} ]; then
> > +             mv ${D}${includedir}/c++/${EAT_VER_GCC}/${EAT_TARGET_SYS} ${D}${includedir}/c++/${EAT_VER_GCC}/${TARGET_SYS}
> > +     fi
> >       ln -sf ../usr/include/c++ ${D}/include/c++
> >
> >       cp ${CP_ARGS} ${EXTERNAL_TOOLCHAIN}/${EAT_TARGET_SYS}/libc/usr/bin/* ${D}${bindir}
> > @@ -116,11 +118,11 @@ do_install() {
> >       sed -i -e 's#/bin/bash#/bin/sh#' ${D}${bindir}/tzselect
> >       sed -i -e 's#/bin/bash#/bin/sh#' ${D}${bindir}/ldd
> >
> > -     cp ${CP_ARGS} ${EXTERNAL_TOOLCHAIN}/lib/gcc/${EAT_TARGET_SYS}/${EAT_VER_GCC}/crt*.o ${D}${libdir}/${EAT_TARGET_SYS}/${EAT_VER_GCC}/
> > -     cp ${CP_ARGS} ${EXTERNAL_TOOLCHAIN}/lib/gcc/${EAT_TARGET_SYS}/${EAT_VER_GCC}/libgcc* ${D}${libdir}/${EAT_TARGET_SYS}/${EAT_VER_GCC}/
> > -     cp ${CP_ARGS} ${EXTERNAL_TOOLCHAIN}/lib/gcc/${EAT_TARGET_SYS}/${EAT_VER_GCC}/libgcov* ${D}${libdir}/gcc/${EAT_TARGET_SYS}/${EAT_VER_GCC}/
> > -     cp ${CP_ARGS} ${EXTERNAL_TOOLCHAIN}/lib/gcc/${EAT_TARGET_SYS}/${EAT_VER_GCC}/include ${D}${libdir}/gcc/${EAT_TARGET_SYS}/${EAT_VER_GCC}/
> > -     cp ${CP_ARGS} ${EXTERNAL_TOOLCHAIN}/lib/gcc/${EAT_TARGET_SYS}/${EAT_VER_GCC}/finclude ${D}${libdir}/gcc/${EAT_TARGET_SYS}/${EAT_VER_GCC}/
> > +     cp ${CP_ARGS} ${EXTERNAL_TOOLCHAIN}/lib/gcc/${EAT_TARGET_SYS}/${EAT_VER_GCC}/crt*.o ${D}${libdir}/${TARGET_SYS}/${EAT_VER_GCC}/
> > +     cp ${CP_ARGS} ${EXTERNAL_TOOLCHAIN}/lib/gcc/${EAT_TARGET_SYS}/${EAT_VER_GCC}/libgcc* ${D}${libdir}/${TARGET_SYS}/${EAT_VER_GCC}/
> > +     cp ${CP_ARGS} ${EXTERNAL_TOOLCHAIN}/lib/gcc/${EAT_TARGET_SYS}/${EAT_VER_GCC}/libgcov* ${D}${libdir}/gcc/${TARGET_SYS}/${EAT_VER_GCC}/
> > +     cp ${CP_ARGS} ${EXTERNAL_TOOLCHAIN}/lib/gcc/${EAT_TARGET_SYS}/${EAT_VER_GCC}/include ${D}${libdir}/gcc/${TARGET_SYS}/${EAT_VER_GCC}/
> > +     cp ${CP_ARGS} ${EXTERNAL_TOOLCHAIN}/lib/gcc/${EAT_TARGET_SYS}/${EAT_VER_GCC}/finclude ${D}${libdir}/gcc/${TARGET_SYS}/${EAT_VER_GCC}/
> >
> >       # fix up the copied symlinks (they are still pointing to the multiarch directory)
> >       linker_name="${@bb.utils.contains("TUNE_FEATURES", "aarch64", "ld-linux-aarch64.so.1", bb.utils.contains("TUNE_FEATURES", "callconvention-hard", "ld-linux-armhf.so.3", "ld-linux.so.3",d), d)}"
> > diff --git a/meta-arm-toolchain/recipes-devtools/gcc/gcc-arm-common.inc b/meta-arm-toolchain/recipes-devtools/gcc/gcc-arm-common.inc
> > index 5599743..392c57f 100644
> > --- a/meta-arm-toolchain/recipes-devtools/gcc/gcc-arm-common.inc
> > +++ b/meta-arm-toolchain/recipes-devtools/gcc/gcc-arm-common.inc
> > @@ -12,7 +12,7 @@
> >  do_install_prepend_class-target () {
> >       if [ "${TCMODE}" = "external-arm" -a ! -f ${STAGING_LIBDIR_NATIVE}/${TARGET_SYS}/gcc/${TARGET_SYS}/${BINV}/include/unwind.h ]; then
> >               install -d ${STAGING_LIBDIR_NATIVE}/${TARGET_SYS}/gcc/${TARGET_SYS}/${BINV}/include/
> > -             install ${STAGING_LIBDIR}/gcc/${EAT_TARGET_SYS}/${EAT_VER_GCC}/include/unwind.h ${STAGING_LIBDIR_NATIVE}/${TARGET_SYS}/gcc/${TARGET_SYS}/${BINV}/include/
> > +             install ${STAGING_LIBDIR}/gcc/${TARGET_SYS}/${EAT_VER_GCC}/include/unwind.h ${STAGING_LIBDIR_NATIVE}/${TARGET_SYS}/gcc/${TARGET_SYS}/${BINV}/include/
> >       fi
> >  }
> >
> > --
> > 2.7.4
> >

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

* Re: [meta-arm] [PATCH v3 4/5] meta-arm-toolchain: Add README
  2020-06-17 18:58       ` Jon Mason
  2020-06-17 19:21         ` Denys Dmytriyenko
@ 2020-06-18  5:47         ` Sumit Garg
  2020-06-18 22:53           ` Jon Mason
  1 sibling, 1 reply; 17+ messages in thread
From: Sumit Garg @ 2020-06-18  5:47 UTC (permalink / raw)
  To: Jon Mason
  Cc: meta-arm, Paul Barker, Denys Dmytriyenko, wmills, Richard Purdie,
	Daniel Thompson

On Thu, 18 Jun 2020 at 00:28, Jon Mason <jdmason@kudzu.us> wrote:
>
> On Tue, Jun 16, 2020 at 10:58:20AM +0530, Sumit Garg wrote:
> > On Mon, 15 Jun 2020 at 23:46, Jon Mason <jdmason@kudzu.us> wrote:
> > >
> > > On Fri, Jun 12, 2020 at 04:02:07PM +0530, Sumit Garg wrote:
> > > > Document usage details for GNU Arm toolchains which could either be built
> > > > from source or pre-built.
> > > >
> > > > Signed-off-by: Sumit Garg <sumit.garg@linaro.org>
> > > > ---
> > > >  meta-arm-toolchain/README.md | 113 +++++++++++++++++++++++++++++++++++++++++++
> > > >  1 file changed, 113 insertions(+)
> > > >  create mode 100644 meta-arm-toolchain/README.md
> > > >
> > > > diff --git a/meta-arm-toolchain/README.md b/meta-arm-toolchain/README.md
> > > > new file mode 100644
> > > > index 0000000..e415136
> > > > --- /dev/null
> > > > +++ b/meta-arm-toolchain/README.md
> > > > @@ -0,0 +1,113 @@
> > > > +meta-arm-toolchain Yocto Layer
> > > > +==============================
> > > > +
> > > > +This layer contains recipes for GNU Arm toolchains which could either be built
> > > > +from source or pre-built toolchain binaries.
> > > > +
> > > > +Information regarding contributing, reporting bugs, etc can be found in the
> > > > +top-level meta-arm readme file.
> >
> > This comment.
> >
> > > > +
> > > > +Source Arm toolchain for Linux development
> > > > +------------------------------------------
> > > > +
> > > > +Recipes for GNU Arm toolchain built from source are provided under
> > > > +``recipes-devtools/gcc/``. In order to use Arm toolchain instead of OE core
> > > > +toolchain, one just needs to override ``GCCVERSION`` in corresponding distro
> > > > +conf file.
> > > > +
> > > > +-  Eg. to use GNU Arm toolchain version ``9.2``
> > > > +   GCCVERSION = "arm-9.2"
> > > > +
> > > > +Pre-built Arm toolchain for Linux development
> > > > +---------------------------------------------
> > > > +
> > > > +Recipes for pre-built GNU Arm toolchain for Linux development are provided under
> > > > +``recipes-devtools/external-arm-toolchain/``.
> > > > +
> > > > +external-arm-toolchain.bb
> > > > +~~~~~~~~~~~~~~~~~~~~~~~~~
> > > > +
> > > > +This recipe provides support for pre-built GNU toolchains targeting processors
> > > > +from the Arm Cortex-A family and implementing the Arm A-profile architecture.
> > > > +
> > > > +Usage
> > > > +^^^^^
> > > > +
> > > > +In order to use any of pre-built Arm toolchain versions (8.2, 8.3, 9.2 and so
> > > > +on), a user needs to download and untar tool-set on host machine at a particular
> > > > +installation path eg: ``/opt/toolchain/``. Then user needs to specify following
> > > > +in ``conf/local.conf`` in order to replace OE toolchain with pre-built GNU-A
> > > > +toolchain:
> > > > +
> > > > +TCMODE = "external-arm"
> > > > +EXTERNAL_TOOLCHAIN = "<path-to-the-toolchain>"
> > > > +
> > > > +-  Eg. for AArch64 (eg. qemuarm64 machine in poky distro)
> > > > +   EXTERNAL_TOOLCHAIN = "\
> > > > +     <installation-path>/gcc-arm-9.2-2019.12-x86_64-aarch64-none-linux-gnu \
> > > > +   "
> > > > +
> > > > +-  Eg. for AArch32 (eg. qemuarm machine in poky distro)
> > > > +   EXTERNAL_TOOLCHAIN = "\
> > > > +     <installation-path>/gcc-arm-9.2-2019.12-x86_64-arm-none-linux-gnueabihf \
> > > > +   "
> > > > +
> > > > +Supported distros and machines
> > > > +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> > > > +
> > > > +Since this pre-built GNU-A tool-set simply replaces OE toolchain, so it is
> > > > +meant to be distro and machine agnostic as long as one is cross-compiling for
> > > > +Arm A-profile architecture.
> > > > +
> > > > +Tested distro and machines (for zeus stable release):
> > > > +1.  Distro: poky; machines: qemuarm and qemuarm64 (build and boot tested)
> > > > +2.  Distro: RPB; machines: dragonboard-410c (build and boot tested)
> > > > +3.  Distro: world; machines: qemuarm and qemuarm64. Build tested for following
> > > > +    layers:
> > > > +    - poky/meta
> > > > +    - poky/meta-poky
> > > > +    - poky/meta-yocto-bsp
> > > > +    - meta-openembedded/meta-oe
> > > > +    - meta-openembedded/meta-python
> > > > +    - meta-openembedded/meta-networking
> > > > +
> > > > +SDK support
> > > > +^^^^^^^^^^^
> > > > +
> > > > +Pre-built toochain provides support to build OE SDK which has been tested using
> > > > +following commands:
> > > > +
> > > > +$ bitbake core-image-base -c populate_sdk
> > > > +$ bitbake core-image-base -c testsdk
> > > > +
> > > > +Note: Currently generated SDK only uses glibc provided by pre-built toolchain.
> > > > +      The cross compiler, binutils, gdb/gdbserver etc. are built from source.
> > > > +      This is something we would like to improve in future in order to package
> > > > +      most of the components from pre-built toolchain instead.
> > > > +
> > > > +Pre-built Arm toolchain for bare-metal development
> > > > +--------------------------------------------------
> > > > +
> > > > +Recipes for pre-built GNU Arm toolchain for bare-metal development are provided
> > > > +under ``recipes-devtools/external-arm-toolchain/``.
> > > > +
> > > > +gcc-arm-none-eabi_<version>.bb
> > > > +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> > > > +
> > > > +This recipe provides support for pre-built GNU Arm Embedded toolchain for
> > > > +bare-metal software development on devices based on 32-bit Arm Cortex-A,
> > > > +Cortex-R and Cortex-M processors.
> > > > +
> > > > +Supported version: 9-2019-q4-major
> > > > +
> > > > +gcc-aarch64-none-elf_<version>.bb
> > > > +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> > > > +
> > > > +This recipe provides support for pre-built GNU Arm toolchain for bare-metal
> > > > +software development on devices based on 64-bit Arm Cortex-A processors.
> > > > +
> > > > +Supported version: 9.2-2019.12
> > > > +
> > > > +Layer maintainer(s)
> > > > +-------------------
> > > > +* Sumit Garg <sumit.garg@linaro.org>
> > >
> > > Linaro is the origin of this code, and I think it is important to
> > > recognize this.
> >
> > Thanks.
> >
> > >  However, I would like some clarification as to what
> > > this role is recognized to be and how interactions with the community
> > > will occur.
> > >
> > > Specifically, I want all patches on the list and no pull requests.
> > > This is an active community, and I want to guarantee that all voices
> > > are heard, and comments addressed.  I'm fairly sure you are in
> > > agreement with this, as this is what you've been doing already.
> >
> > Yes I am in agreement with this.
> >
> > > But
> > > since we are formalizing this with the above entry, I want it to be
> > > written somewhere  :)
> >
> > Isn't the comment on top of this README above sufficient to formalize this?
>
> It is sufficient for me.
>
> For giggles, I did a quick look at the contributors since it was
> added.
>
> $ git log meta-arm-toolchain/ | grep Author | sort | uniq -c
>      14 Author: Denys Dmytriyenko <denys@ti.com>
>       2 Author: Jon Mason <jdmason@kudzu.us>
>       1 Author: Ralph Siemsen <ralph.siemsen@linaro.org>
>       2 Author: Sumit Garg <sumit.garg@linaro.org>
>
> It looks like Denys should probably be a maintainer too.  Given that
> he has a unique use case and is testing this throughly (as he's found
> my patches to be very lacking).  I don't know if he is interested in
> the extra burden of this, but I think you two would make a good pair
> and help give some validity to this being a group project.
>

It's fine with me. Could you make the corresponding change while
applying or would you like me to spin up the next version?

-Sumit

> Anyway, I'll pull this series in now.
>
> Thanks,
> Jon
>
> >
> > -Sumit
> >
> > >
> > > Thanks,
> > > Jon
> > >
> > >
> > >
> > > > --
> > > > 2.7.4
> > > >
> > >
> > > > 
> > >

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

* Re: [meta-arm] [PATCH v3 3/5] external-arm-toolchain: Align glibc packaging to OE TARGET_SYS
  2020-06-18  5:34     ` Sumit Garg
@ 2020-06-18  7:03       ` Denys Dmytriyenko
  2020-06-18  8:12         ` Sumit Garg
  0 siblings, 1 reply; 17+ messages in thread
From: Denys Dmytriyenko @ 2020-06-18  7:03 UTC (permalink / raw)
  To: Sumit Garg; +Cc: meta-arm, Paul Barker, wmills, Richard Purdie, Daniel Thompson

On Thu, Jun 18, 2020 at 11:04:16AM +0530, Sumit Garg wrote:
> On Thu, 18 Jun 2020 at 00:47, Denys Dmytriyenko <denis@denix.org> wrote:
> >
> > Sorry, did we agree to drop this one for now?
> 
> No, I don't think so. See our last conversation on v2 [1].
> 
> I think you have already addressed alignment to EAT_TARGET_SYS for
> pre-built toolchain components packaging in SDK as part of your
> recipe: external-arm-sdk-toolchain.bb.
> 
> But we still need this fix for native compilation to work using native
> OE compiler built from source.
> 
> [1] https://lists.yoctoproject.org/g/meta-arm/message/637

In there we talked about symlinks between OE TARGET_SYS and EAT_TARGET_SYS. 
Those symlinks will allow using OE-built compilers and prebuilt binaries 
interchangeably. But we don't yet have them in place - that's still on my 
todo list.

I have the code in meta-arago and it works for prebuilt cross compiler in SDK 
as well as OE-built native compiler on the target - I just need to get that 
upstreamed. The 4 patches I submitted only set the stage by packaging up the 
prebuilts...

And the change in this patch alone only makes OE-built compiler work while 
breaking prebuilt usage.

-- 
Denys


> -Sumit
> 
> >
> > On Fri, Jun 12, 2020 at 04:02:06PM +0530, Sumit Garg wrote:
> > > OE native and cross compilers (in case of SDK) uses OE TARGET_SYS to
> > > create standard paths to search for libraries and headers during
> > > compilation.
> > >
> > > Currently external-arm-toolchain recipe temporarily override TARGET_SYS
> > > with EAT_TARGET_SYS and packages libraries and headers corresponding to
> > > EAT_TARGET_SYS which leads to failures during native and cross compilation
> > > (in case of SDK) such as:
> > >
> > > $ $CXX -o hello++ hello.cpp
> > > In file included from hello.cpp:1:
> > > /tmp/armsdk/sysroots/armv7at2hf-neon-oe-linux-gnueabi/usr/include/c++/9.2.1/iostream:38:10: fatal error: bits/c++config.h: No such file or directory
> > >    38 | #include <bits/c++config.h>
> > >       |          ^~~~~~~~~~~~~~~~~~
> > > compilation terminated.
> > >
> > > $ $CC hello.c
> > > real-ld: cannot find crtbeginS.o: No such file or directory
> > >
> > > So remove temp override of TARGET_SYS and rather package libraries and
> > > headers corresponding to OE TARGET_SYS.
> > >
> > > This fixes changes added in commit:
> > > https://git.linaro.org/openembedded/meta-linaro.git/commit/?id=91ea4d017bf0598e49944e76c889e66d58c066ce
> > >
> > > Also, update location for unwind.h gcc-arm-common.inc accordingly.
> > >
> > > Signed-off-by: Sumit Garg <sumit.garg@linaro.org>
> > > ---
> > >  .../external-arm-toolchain/external-arm-toolchain.bb   | 18 ++++++++++--------
> > >  .../recipes-devtools/gcc/gcc-arm-common.inc            |  2 +-
> > >  2 files changed, 11 insertions(+), 9 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 73a2cf6..4face74 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
> > > @@ -54,7 +54,6 @@ PROVIDES += "\
> > >  PV = "${EAT_VER_MAIN}"
> > >
> > >  BINV = "${EAT_VER_GCC}"
> > > -TARGET_SYS = "${EAT_TARGET_SYS}"
> > >
> > >  SRC_URI = "file://SUPPORTED"
> > >
> > > @@ -75,8 +74,8 @@ do_install() {
> > >       install -d ${D}${datadir}
> > >       install -d ${D}${includedir}
> > >       install -d ${D}/include
> > > -     install -d ${D}${libdir}/${EAT_TARGET_SYS}/${EAT_VER_GCC}
> > > -     install -d ${D}${libdir}/gcc/${EAT_TARGET_SYS}/${EAT_VER_GCC}
> > > +     install -d ${D}${libdir}/${TARGET_SYS}/${EAT_VER_GCC}
> > > +     install -d ${D}${libdir}/gcc/${TARGET_SYS}/${EAT_VER_GCC}
> > >
> > >       CP_ARGS="-Prf --preserve=mode,timestamps --no-preserve=ownership"
> > >       cp ${CP_ARGS} ${EXTERNAL_TOOLCHAIN}/${EAT_TARGET_SYS}/${EAT_LIBDIR}/*  ${D}${base_libdir}
> > > @@ -105,6 +104,9 @@ do_install() {
> > >       fi
> > >
> > >       cp ${CP_ARGS} ${EXTERNAL_TOOLCHAIN}/${EAT_TARGET_SYS}/include/* ${D}${includedir}
> > > +     if [ -d ${D}${includedir}/c++/${EAT_VER_GCC}/${EAT_TARGET_SYS} ]; then
> > > +             mv ${D}${includedir}/c++/${EAT_VER_GCC}/${EAT_TARGET_SYS} ${D}${includedir}/c++/${EAT_VER_GCC}/${TARGET_SYS}
> > > +     fi
> > >       ln -sf ../usr/include/c++ ${D}/include/c++
> > >
> > >       cp ${CP_ARGS} ${EXTERNAL_TOOLCHAIN}/${EAT_TARGET_SYS}/libc/usr/bin/* ${D}${bindir}
> > > @@ -116,11 +118,11 @@ do_install() {
> > >       sed -i -e 's#/bin/bash#/bin/sh#' ${D}${bindir}/tzselect
> > >       sed -i -e 's#/bin/bash#/bin/sh#' ${D}${bindir}/ldd
> > >
> > > -     cp ${CP_ARGS} ${EXTERNAL_TOOLCHAIN}/lib/gcc/${EAT_TARGET_SYS}/${EAT_VER_GCC}/crt*.o ${D}${libdir}/${EAT_TARGET_SYS}/${EAT_VER_GCC}/
> > > -     cp ${CP_ARGS} ${EXTERNAL_TOOLCHAIN}/lib/gcc/${EAT_TARGET_SYS}/${EAT_VER_GCC}/libgcc* ${D}${libdir}/${EAT_TARGET_SYS}/${EAT_VER_GCC}/
> > > -     cp ${CP_ARGS} ${EXTERNAL_TOOLCHAIN}/lib/gcc/${EAT_TARGET_SYS}/${EAT_VER_GCC}/libgcov* ${D}${libdir}/gcc/${EAT_TARGET_SYS}/${EAT_VER_GCC}/
> > > -     cp ${CP_ARGS} ${EXTERNAL_TOOLCHAIN}/lib/gcc/${EAT_TARGET_SYS}/${EAT_VER_GCC}/include ${D}${libdir}/gcc/${EAT_TARGET_SYS}/${EAT_VER_GCC}/
> > > -     cp ${CP_ARGS} ${EXTERNAL_TOOLCHAIN}/lib/gcc/${EAT_TARGET_SYS}/${EAT_VER_GCC}/finclude ${D}${libdir}/gcc/${EAT_TARGET_SYS}/${EAT_VER_GCC}/
> > > +     cp ${CP_ARGS} ${EXTERNAL_TOOLCHAIN}/lib/gcc/${EAT_TARGET_SYS}/${EAT_VER_GCC}/crt*.o ${D}${libdir}/${TARGET_SYS}/${EAT_VER_GCC}/
> > > +     cp ${CP_ARGS} ${EXTERNAL_TOOLCHAIN}/lib/gcc/${EAT_TARGET_SYS}/${EAT_VER_GCC}/libgcc* ${D}${libdir}/${TARGET_SYS}/${EAT_VER_GCC}/
> > > +     cp ${CP_ARGS} ${EXTERNAL_TOOLCHAIN}/lib/gcc/${EAT_TARGET_SYS}/${EAT_VER_GCC}/libgcov* ${D}${libdir}/gcc/${TARGET_SYS}/${EAT_VER_GCC}/
> > > +     cp ${CP_ARGS} ${EXTERNAL_TOOLCHAIN}/lib/gcc/${EAT_TARGET_SYS}/${EAT_VER_GCC}/include ${D}${libdir}/gcc/${TARGET_SYS}/${EAT_VER_GCC}/
> > > +     cp ${CP_ARGS} ${EXTERNAL_TOOLCHAIN}/lib/gcc/${EAT_TARGET_SYS}/${EAT_VER_GCC}/finclude ${D}${libdir}/gcc/${TARGET_SYS}/${EAT_VER_GCC}/
> > >
> > >       # fix up the copied symlinks (they are still pointing to the multiarch directory)
> > >       linker_name="${@bb.utils.contains("TUNE_FEATURES", "aarch64", "ld-linux-aarch64.so.1", bb.utils.contains("TUNE_FEATURES", "callconvention-hard", "ld-linux-armhf.so.3", "ld-linux.so.3",d), d)}"
> > > diff --git a/meta-arm-toolchain/recipes-devtools/gcc/gcc-arm-common.inc b/meta-arm-toolchain/recipes-devtools/gcc/gcc-arm-common.inc
> > > index 5599743..392c57f 100644
> > > --- a/meta-arm-toolchain/recipes-devtools/gcc/gcc-arm-common.inc
> > > +++ b/meta-arm-toolchain/recipes-devtools/gcc/gcc-arm-common.inc
> > > @@ -12,7 +12,7 @@
> > >  do_install_prepend_class-target () {
> > >       if [ "${TCMODE}" = "external-arm" -a ! -f ${STAGING_LIBDIR_NATIVE}/${TARGET_SYS}/gcc/${TARGET_SYS}/${BINV}/include/unwind.h ]; then
> > >               install -d ${STAGING_LIBDIR_NATIVE}/${TARGET_SYS}/gcc/${TARGET_SYS}/${BINV}/include/
> > > -             install ${STAGING_LIBDIR}/gcc/${EAT_TARGET_SYS}/${EAT_VER_GCC}/include/unwind.h ${STAGING_LIBDIR_NATIVE}/${TARGET_SYS}/gcc/${TARGET_SYS}/${BINV}/include/
> > > +             install ${STAGING_LIBDIR}/gcc/${TARGET_SYS}/${EAT_VER_GCC}/include/unwind.h ${STAGING_LIBDIR_NATIVE}/${TARGET_SYS}/gcc/${TARGET_SYS}/${BINV}/include/
> > >       fi
> > >  }
> > >
> > > --
> > > 2.7.4
> > >

> 


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

* Re: [meta-arm] [PATCH v3 3/5] external-arm-toolchain: Align glibc packaging to OE TARGET_SYS
  2020-06-18  7:03       ` [meta-arm] " Denys Dmytriyenko
@ 2020-06-18  8:12         ` Sumit Garg
  0 siblings, 0 replies; 17+ messages in thread
From: Sumit Garg @ 2020-06-18  8:12 UTC (permalink / raw)
  To: Denys Dmytriyenko
  Cc: meta-arm, Paul Barker, wmills, Richard Purdie, Daniel Thompson

On Thu, 18 Jun 2020 at 12:33, Denys Dmytriyenko <denis@denix.org> wrote:
>
> On Thu, Jun 18, 2020 at 11:04:16AM +0530, Sumit Garg wrote:
> > On Thu, 18 Jun 2020 at 00:47, Denys Dmytriyenko <denis@denix.org> wrote:
> > >
> > > Sorry, did we agree to drop this one for now?
> >
> > No, I don't think so. See our last conversation on v2 [1].
> >
> > I think you have already addressed alignment to EAT_TARGET_SYS for
> > pre-built toolchain components packaging in SDK as part of your
> > recipe: external-arm-sdk-toolchain.bb.
> >
> > But we still need this fix for native compilation to work using native
> > OE compiler built from source.
> >
> > [1] https://lists.yoctoproject.org/g/meta-arm/message/637
>
> In there we talked about symlinks between OE TARGET_SYS and EAT_TARGET_SYS.
> Those symlinks will allow using OE-built compilers and prebuilt binaries
> interchangeably. But we don't yet have them in place - that's still on my
> todo list.

Didn't I offer to add that feature in this patch itself to support
your downstream use-cases? But you were reluctant to add those by
yourself.

>
> I have the code in meta-arago and it works for prebuilt cross compiler in SDK
> as well as OE-built native compiler on the target - I just need to get that
> upstreamed. The 4 patches I submitted only set the stage by packaging up the
> prebuilts...
>
> And the change in this patch alone only makes OE-built compiler work while
> breaking prebuilt usage.

The change in this patch is fixing the current broken OE native
compilation and SDK generation (using OE built compiler) upstream.

And it's just a simple change to add symlinks to support
EAT_TARGET_SYS which can be an add-on patch which *you* contribute.

-Sumit

>
> --
> Denys
>
>
> > -Sumit
> >
> > >
> > > On Fri, Jun 12, 2020 at 04:02:06PM +0530, Sumit Garg wrote:
> > > > OE native and cross compilers (in case of SDK) uses OE TARGET_SYS to
> > > > create standard paths to search for libraries and headers during
> > > > compilation.
> > > >
> > > > Currently external-arm-toolchain recipe temporarily override TARGET_SYS
> > > > with EAT_TARGET_SYS and packages libraries and headers corresponding to
> > > > EAT_TARGET_SYS which leads to failures during native and cross compilation
> > > > (in case of SDK) such as:
> > > >
> > > > $ $CXX -o hello++ hello.cpp
> > > > In file included from hello.cpp:1:
> > > > /tmp/armsdk/sysroots/armv7at2hf-neon-oe-linux-gnueabi/usr/include/c++/9.2.1/iostream:38:10: fatal error: bits/c++config.h: No such file or directory
> > > >    38 | #include <bits/c++config.h>
> > > >       |          ^~~~~~~~~~~~~~~~~~
> > > > compilation terminated.
> > > >
> > > > $ $CC hello.c
> > > > real-ld: cannot find crtbeginS.o: No such file or directory
> > > >
> > > > So remove temp override of TARGET_SYS and rather package libraries and
> > > > headers corresponding to OE TARGET_SYS.
> > > >
> > > > This fixes changes added in commit:
> > > > https://git.linaro.org/openembedded/meta-linaro.git/commit/?id=91ea4d017bf0598e49944e76c889e66d58c066ce
> > > >
> > > > Also, update location for unwind.h gcc-arm-common.inc accordingly.
> > > >
> > > > Signed-off-by: Sumit Garg <sumit.garg@linaro.org>
> > > > ---
> > > >  .../external-arm-toolchain/external-arm-toolchain.bb   | 18 ++++++++++--------
> > > >  .../recipes-devtools/gcc/gcc-arm-common.inc            |  2 +-
> > > >  2 files changed, 11 insertions(+), 9 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 73a2cf6..4face74 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
> > > > @@ -54,7 +54,6 @@ PROVIDES += "\
> > > >  PV = "${EAT_VER_MAIN}"
> > > >
> > > >  BINV = "${EAT_VER_GCC}"
> > > > -TARGET_SYS = "${EAT_TARGET_SYS}"
> > > >
> > > >  SRC_URI = "file://SUPPORTED"
> > > >
> > > > @@ -75,8 +74,8 @@ do_install() {
> > > >       install -d ${D}${datadir}
> > > >       install -d ${D}${includedir}
> > > >       install -d ${D}/include
> > > > -     install -d ${D}${libdir}/${EAT_TARGET_SYS}/${EAT_VER_GCC}
> > > > -     install -d ${D}${libdir}/gcc/${EAT_TARGET_SYS}/${EAT_VER_GCC}
> > > > +     install -d ${D}${libdir}/${TARGET_SYS}/${EAT_VER_GCC}
> > > > +     install -d ${D}${libdir}/gcc/${TARGET_SYS}/${EAT_VER_GCC}
> > > >
> > > >       CP_ARGS="-Prf --preserve=mode,timestamps --no-preserve=ownership"
> > > >       cp ${CP_ARGS} ${EXTERNAL_TOOLCHAIN}/${EAT_TARGET_SYS}/${EAT_LIBDIR}/*  ${D}${base_libdir}
> > > > @@ -105,6 +104,9 @@ do_install() {
> > > >       fi
> > > >
> > > >       cp ${CP_ARGS} ${EXTERNAL_TOOLCHAIN}/${EAT_TARGET_SYS}/include/* ${D}${includedir}
> > > > +     if [ -d ${D}${includedir}/c++/${EAT_VER_GCC}/${EAT_TARGET_SYS} ]; then
> > > > +             mv ${D}${includedir}/c++/${EAT_VER_GCC}/${EAT_TARGET_SYS} ${D}${includedir}/c++/${EAT_VER_GCC}/${TARGET_SYS}
> > > > +     fi
> > > >       ln -sf ../usr/include/c++ ${D}/include/c++
> > > >
> > > >       cp ${CP_ARGS} ${EXTERNAL_TOOLCHAIN}/${EAT_TARGET_SYS}/libc/usr/bin/* ${D}${bindir}
> > > > @@ -116,11 +118,11 @@ do_install() {
> > > >       sed -i -e 's#/bin/bash#/bin/sh#' ${D}${bindir}/tzselect
> > > >       sed -i -e 's#/bin/bash#/bin/sh#' ${D}${bindir}/ldd
> > > >
> > > > -     cp ${CP_ARGS} ${EXTERNAL_TOOLCHAIN}/lib/gcc/${EAT_TARGET_SYS}/${EAT_VER_GCC}/crt*.o ${D}${libdir}/${EAT_TARGET_SYS}/${EAT_VER_GCC}/
> > > > -     cp ${CP_ARGS} ${EXTERNAL_TOOLCHAIN}/lib/gcc/${EAT_TARGET_SYS}/${EAT_VER_GCC}/libgcc* ${D}${libdir}/${EAT_TARGET_SYS}/${EAT_VER_GCC}/
> > > > -     cp ${CP_ARGS} ${EXTERNAL_TOOLCHAIN}/lib/gcc/${EAT_TARGET_SYS}/${EAT_VER_GCC}/libgcov* ${D}${libdir}/gcc/${EAT_TARGET_SYS}/${EAT_VER_GCC}/
> > > > -     cp ${CP_ARGS} ${EXTERNAL_TOOLCHAIN}/lib/gcc/${EAT_TARGET_SYS}/${EAT_VER_GCC}/include ${D}${libdir}/gcc/${EAT_TARGET_SYS}/${EAT_VER_GCC}/
> > > > -     cp ${CP_ARGS} ${EXTERNAL_TOOLCHAIN}/lib/gcc/${EAT_TARGET_SYS}/${EAT_VER_GCC}/finclude ${D}${libdir}/gcc/${EAT_TARGET_SYS}/${EAT_VER_GCC}/
> > > > +     cp ${CP_ARGS} ${EXTERNAL_TOOLCHAIN}/lib/gcc/${EAT_TARGET_SYS}/${EAT_VER_GCC}/crt*.o ${D}${libdir}/${TARGET_SYS}/${EAT_VER_GCC}/
> > > > +     cp ${CP_ARGS} ${EXTERNAL_TOOLCHAIN}/lib/gcc/${EAT_TARGET_SYS}/${EAT_VER_GCC}/libgcc* ${D}${libdir}/${TARGET_SYS}/${EAT_VER_GCC}/
> > > > +     cp ${CP_ARGS} ${EXTERNAL_TOOLCHAIN}/lib/gcc/${EAT_TARGET_SYS}/${EAT_VER_GCC}/libgcov* ${D}${libdir}/gcc/${TARGET_SYS}/${EAT_VER_GCC}/
> > > > +     cp ${CP_ARGS} ${EXTERNAL_TOOLCHAIN}/lib/gcc/${EAT_TARGET_SYS}/${EAT_VER_GCC}/include ${D}${libdir}/gcc/${TARGET_SYS}/${EAT_VER_GCC}/
> > > > +     cp ${CP_ARGS} ${EXTERNAL_TOOLCHAIN}/lib/gcc/${EAT_TARGET_SYS}/${EAT_VER_GCC}/finclude ${D}${libdir}/gcc/${TARGET_SYS}/${EAT_VER_GCC}/
> > > >
> > > >       # fix up the copied symlinks (they are still pointing to the multiarch directory)
> > > >       linker_name="${@bb.utils.contains("TUNE_FEATURES", "aarch64", "ld-linux-aarch64.so.1", bb.utils.contains("TUNE_FEATURES", "callconvention-hard", "ld-linux-armhf.so.3", "ld-linux.so.3",d), d)}"
> > > > diff --git a/meta-arm-toolchain/recipes-devtools/gcc/gcc-arm-common.inc b/meta-arm-toolchain/recipes-devtools/gcc/gcc-arm-common.inc
> > > > index 5599743..392c57f 100644
> > > > --- a/meta-arm-toolchain/recipes-devtools/gcc/gcc-arm-common.inc
> > > > +++ b/meta-arm-toolchain/recipes-devtools/gcc/gcc-arm-common.inc
> > > > @@ -12,7 +12,7 @@
> > > >  do_install_prepend_class-target () {
> > > >       if [ "${TCMODE}" = "external-arm" -a ! -f ${STAGING_LIBDIR_NATIVE}/${TARGET_SYS}/gcc/${TARGET_SYS}/${BINV}/include/unwind.h ]; then
> > > >               install -d ${STAGING_LIBDIR_NATIVE}/${TARGET_SYS}/gcc/${TARGET_SYS}/${BINV}/include/
> > > > -             install ${STAGING_LIBDIR}/gcc/${EAT_TARGET_SYS}/${EAT_VER_GCC}/include/unwind.h ${STAGING_LIBDIR_NATIVE}/${TARGET_SYS}/gcc/${TARGET_SYS}/${BINV}/include/
> > > > +             install ${STAGING_LIBDIR}/gcc/${TARGET_SYS}/${EAT_VER_GCC}/include/unwind.h ${STAGING_LIBDIR_NATIVE}/${TARGET_SYS}/gcc/${TARGET_SYS}/${BINV}/include/
> > > >       fi
> > > >  }
> > > >
> > > > --
> > > > 2.7.4
> > > >
>
> > 
>

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

* Re: [meta-arm] [PATCH v3 4/5] meta-arm-toolchain: Add README
  2020-06-18  5:47         ` Sumit Garg
@ 2020-06-18 22:53           ` Jon Mason
  0 siblings, 0 replies; 17+ messages in thread
From: Jon Mason @ 2020-06-18 22:53 UTC (permalink / raw)
  To: Sumit Garg
  Cc: meta-arm, Paul Barker, Denys Dmytriyenko, wmills, Richard Purdie,
	Daniel Thompson

On Thu, Jun 18, 2020 at 11:17:21AM +0530, Sumit Garg wrote:
> On Thu, 18 Jun 2020 at 00:28, Jon Mason <jdmason@kudzu.us> wrote:
> >
> > On Tue, Jun 16, 2020 at 10:58:20AM +0530, Sumit Garg wrote:
> > > On Mon, 15 Jun 2020 at 23:46, Jon Mason <jdmason@kudzu.us> wrote:
> > > >
> > > > On Fri, Jun 12, 2020 at 04:02:07PM +0530, Sumit Garg wrote:
> > > > > Document usage details for GNU Arm toolchains which could either be built
> > > > > from source or pre-built.
> > > > >
> > > > > Signed-off-by: Sumit Garg <sumit.garg@linaro.org>
> > > > > ---
> > > > >  meta-arm-toolchain/README.md | 113 +++++++++++++++++++++++++++++++++++++++++++
> > > > >  1 file changed, 113 insertions(+)
> > > > >  create mode 100644 meta-arm-toolchain/README.md
> > > > >
> > > > > diff --git a/meta-arm-toolchain/README.md b/meta-arm-toolchain/README.md
> > > > > new file mode 100644
> > > > > index 0000000..e415136
> > > > > --- /dev/null
> > > > > +++ b/meta-arm-toolchain/README.md
> > > > > @@ -0,0 +1,113 @@
> > > > > +meta-arm-toolchain Yocto Layer
> > > > > +==============================
> > > > > +
> > > > > +This layer contains recipes for GNU Arm toolchains which could either be built
> > > > > +from source or pre-built toolchain binaries.
> > > > > +
> > > > > +Information regarding contributing, reporting bugs, etc can be found in the
> > > > > +top-level meta-arm readme file.
> > >
> > > This comment.
> > >
> > > > > +
> > > > > +Source Arm toolchain for Linux development
> > > > > +------------------------------------------
> > > > > +
> > > > > +Recipes for GNU Arm toolchain built from source are provided under
> > > > > +``recipes-devtools/gcc/``. In order to use Arm toolchain instead of OE core
> > > > > +toolchain, one just needs to override ``GCCVERSION`` in corresponding distro
> > > > > +conf file.
> > > > > +
> > > > > +-  Eg. to use GNU Arm toolchain version ``9.2``
> > > > > +   GCCVERSION = "arm-9.2"
> > > > > +
> > > > > +Pre-built Arm toolchain for Linux development
> > > > > +---------------------------------------------
> > > > > +
> > > > > +Recipes for pre-built GNU Arm toolchain for Linux development are provided under
> > > > > +``recipes-devtools/external-arm-toolchain/``.
> > > > > +
> > > > > +external-arm-toolchain.bb
> > > > > +~~~~~~~~~~~~~~~~~~~~~~~~~
> > > > > +
> > > > > +This recipe provides support for pre-built GNU toolchains targeting processors
> > > > > +from the Arm Cortex-A family and implementing the Arm A-profile architecture.
> > > > > +
> > > > > +Usage
> > > > > +^^^^^
> > > > > +
> > > > > +In order to use any of pre-built Arm toolchain versions (8.2, 8.3, 9.2 and so
> > > > > +on), a user needs to download and untar tool-set on host machine at a particular
> > > > > +installation path eg: ``/opt/toolchain/``. Then user needs to specify following
> > > > > +in ``conf/local.conf`` in order to replace OE toolchain with pre-built GNU-A
> > > > > +toolchain:
> > > > > +
> > > > > +TCMODE = "external-arm"
> > > > > +EXTERNAL_TOOLCHAIN = "<path-to-the-toolchain>"
> > > > > +
> > > > > +-  Eg. for AArch64 (eg. qemuarm64 machine in poky distro)
> > > > > +   EXTERNAL_TOOLCHAIN = "\
> > > > > +     <installation-path>/gcc-arm-9.2-2019.12-x86_64-aarch64-none-linux-gnu \
> > > > > +   "
> > > > > +
> > > > > +-  Eg. for AArch32 (eg. qemuarm machine in poky distro)
> > > > > +   EXTERNAL_TOOLCHAIN = "\
> > > > > +     <installation-path>/gcc-arm-9.2-2019.12-x86_64-arm-none-linux-gnueabihf \
> > > > > +   "
> > > > > +
> > > > > +Supported distros and machines
> > > > > +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> > > > > +
> > > > > +Since this pre-built GNU-A tool-set simply replaces OE toolchain, so it is
> > > > > +meant to be distro and machine agnostic as long as one is cross-compiling for
> > > > > +Arm A-profile architecture.
> > > > > +
> > > > > +Tested distro and machines (for zeus stable release):
> > > > > +1.  Distro: poky; machines: qemuarm and qemuarm64 (build and boot tested)
> > > > > +2.  Distro: RPB; machines: dragonboard-410c (build and boot tested)
> > > > > +3.  Distro: world; machines: qemuarm and qemuarm64. Build tested for following
> > > > > +    layers:
> > > > > +    - poky/meta
> > > > > +    - poky/meta-poky
> > > > > +    - poky/meta-yocto-bsp
> > > > > +    - meta-openembedded/meta-oe
> > > > > +    - meta-openembedded/meta-python
> > > > > +    - meta-openembedded/meta-networking
> > > > > +
> > > > > +SDK support
> > > > > +^^^^^^^^^^^
> > > > > +
> > > > > +Pre-built toochain provides support to build OE SDK which has been tested using
> > > > > +following commands:
> > > > > +
> > > > > +$ bitbake core-image-base -c populate_sdk
> > > > > +$ bitbake core-image-base -c testsdk
> > > > > +
> > > > > +Note: Currently generated SDK only uses glibc provided by pre-built toolchain.
> > > > > +      The cross compiler, binutils, gdb/gdbserver etc. are built from source.
> > > > > +      This is something we would like to improve in future in order to package
> > > > > +      most of the components from pre-built toolchain instead.
> > > > > +
> > > > > +Pre-built Arm toolchain for bare-metal development
> > > > > +--------------------------------------------------
> > > > > +
> > > > > +Recipes for pre-built GNU Arm toolchain for bare-metal development are provided
> > > > > +under ``recipes-devtools/external-arm-toolchain/``.
> > > > > +
> > > > > +gcc-arm-none-eabi_<version>.bb
> > > > > +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> > > > > +
> > > > > +This recipe provides support for pre-built GNU Arm Embedded toolchain for
> > > > > +bare-metal software development on devices based on 32-bit Arm Cortex-A,
> > > > > +Cortex-R and Cortex-M processors.
> > > > > +
> > > > > +Supported version: 9-2019-q4-major
> > > > > +
> > > > > +gcc-aarch64-none-elf_<version>.bb
> > > > > +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> > > > > +
> > > > > +This recipe provides support for pre-built GNU Arm toolchain for bare-metal
> > > > > +software development on devices based on 64-bit Arm Cortex-A processors.
> > > > > +
> > > > > +Supported version: 9.2-2019.12
> > > > > +
> > > > > +Layer maintainer(s)
> > > > > +-------------------
> > > > > +* Sumit Garg <sumit.garg@linaro.org>
> > > >
> > > > Linaro is the origin of this code, and I think it is important to
> > > > recognize this.
> > >
> > > Thanks.
> > >
> > > >  However, I would like some clarification as to what
> > > > this role is recognized to be and how interactions with the community
> > > > will occur.
> > > >
> > > > Specifically, I want all patches on the list and no pull requests.
> > > > This is an active community, and I want to guarantee that all voices
> > > > are heard, and comments addressed.  I'm fairly sure you are in
> > > > agreement with this, as this is what you've been doing already.
> > >
> > > Yes I am in agreement with this.
> > >
> > > > But
> > > > since we are formalizing this with the above entry, I want it to be
> > > > written somewhere  :)
> > >
> > > Isn't the comment on top of this README above sufficient to formalize this?
> >
> > It is sufficient for me.
> >
> > For giggles, I did a quick look at the contributors since it was
> > added.
> >
> > $ git log meta-arm-toolchain/ | grep Author | sort | uniq -c
> >      14 Author: Denys Dmytriyenko <denys@ti.com>
> >       2 Author: Jon Mason <jdmason@kudzu.us>
> >       1 Author: Ralph Siemsen <ralph.siemsen@linaro.org>
> >       2 Author: Sumit Garg <sumit.garg@linaro.org>
> >
> > It looks like Denys should probably be a maintainer too.  Given that
> > he has a unique use case and is testing this throughly (as he's found
> > my patches to be very lacking).  I don't know if he is interested in
> > the extra burden of this, but I think you two would make a good pair
> > and help give some validity to this being a group project.
> >
> 
> It's fine with me. Could you make the corresponding change while
> applying or would you like me to spin up the next version?

I took the silence on this series as an implicit ack and pushed it
this morning before seeing the new comments.  Sorry about that.

Given the above, I committed a single line patch to add Denys as a
co-maintainer and pushed it to master.

So, hopefully no one is pissed off too much with both of the above.
If so, please respond to patches with
"Hold off.  I want to review this before committing".  Otherwise, I'll
take silence as an ack.

Thanks,
Jon


> 
> -Sumit
> 
> > Anyway, I'll pull this series in now.
> >
> > Thanks,
> > Jon
> >
> > >
> > > -Sumit
> > >
> > > >
> > > > Thanks,
> > > > Jon
> > > >
> > > >
> > > >
> > > > > --
> > > > > 2.7.4
> > > > >
> > > >
> > > > > 
> > > >

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

end of thread, other threads:[~2020-06-18 22:53 UTC | newest]

Thread overview: 17+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-06-12 10:32 [PATCH v3 0/5] external-arm-toolchain: Add support for SDK generation Sumit Garg
2020-06-12 10:32 ` [PATCH v3 1/5] external-arm-toolchain: Remove glibc locale dependency Sumit Garg
2020-06-12 10:32 ` [PATCH v3 2/5] external-arm-toolchain: Refine dev libraries/headers packaging Sumit Garg
2020-06-12 10:32 ` [PATCH v3 3/5] external-arm-toolchain: Align glibc packaging to OE TARGET_SYS Sumit Garg
2020-06-17 19:17   ` Denys Dmytriyenko
2020-06-18  5:34     ` Sumit Garg
2020-06-18  7:03       ` [meta-arm] " Denys Dmytriyenko
2020-06-18  8:12         ` Sumit Garg
2020-06-12 10:32 ` [PATCH v3 4/5] meta-arm-toolchain: Add README Sumit Garg
2020-06-15 18:16   ` [meta-arm] " Jon Mason
2020-06-16  5:28     ` Sumit Garg
2020-06-17 18:58       ` Jon Mason
2020-06-17 19:21         ` Denys Dmytriyenko
2020-06-18  5:47         ` Sumit Garg
2020-06-18 22:53           ` Jon Mason
     [not found]     ` <20200616100639.7gx6fzyz2m7czcs4@holly.lan>
2020-06-17 18:52       ` Jon Mason
2020-06-12 10:32 ` [PATCH v3 5/5] external-arm-toolchain: Add package specific licenses 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.