Signed-off-by: Denys Dmytriyenko <[email protected]>
---
 meta-arago-distro/conf/distro/arago.conf           |   2 +-
 .../conf/distro/include/toolchain-arm.inc          | 116 +++++++++++++++++++
 .../meta/external-arm-toolchain.bbappend           |  47 ++++++++
 .../recipes-devtools/gcc/gcc_%.bbappend            |   1 +
 .../include/tclibc-external-arm-toolchain.inc      |  38 ++++++
 .../recipes-core/meta/external-arm-bfd-version.inc |   8 ++
 .../meta/external-arm-sdk-toolchain.bb             | 128 +++++++++++++++++++++
 .../meta/external-arm-toolchain-cross.bb           |  19 +++
 8 files changed, 358 insertions(+), 1 deletion(-)
 create mode 100644 meta-arago-distro/conf/distro/include/toolchain-arm.inc
 create mode 100644 
meta-arago-distro/recipes-core/meta/external-arm-toolchain.bbappend
 create mode 100644 
meta-arago-extras/conf/distro/include/tclibc-external-arm-toolchain.inc
 create mode 100644 
meta-arago-extras/recipes-core/meta/external-arm-bfd-version.inc
 create mode 100644 
meta-arago-extras/recipes-core/meta/external-arm-sdk-toolchain.bb
 create mode 100644 
meta-arago-extras/recipes-core/meta/external-arm-toolchain-cross.bb

diff --git a/meta-arago-distro/conf/distro/arago.conf 
b/meta-arago-distro/conf/distro/arago.conf
index b1bb645..cd56b47 100644
--- a/meta-arago-distro/conf/distro/arago.conf
+++ b/meta-arago-distro/conf/distro/arago.conf
@@ -144,7 +144,7 @@ IMAGE_FSTYPES_remove = "${@['','ubi 
ubifs'][d.getVar('ARAGO_SYSTEST_ENABLE') ==
 
 # Toolchain should be selected by setting TOOLCHAIN_BRAND in local.conf
 # Set some sane defaults, in case someone forgets to set them in local.conf
-TC_SANE_DEFAULT ?= "linaro"
+TC_SANE_DEFAULT ?= "arm"
 TOOLCHAIN_TYPE ?= "external"
 TOOLCHAIN_BRAND ?= 
"${@[d.getVar('TC_SANE_DEFAULT'),'gcc'][d.getVar('TOOLCHAIN_TYPE') == 
'internal']}"
 
diff --git a/meta-arago-distro/conf/distro/include/toolchain-arm.inc 
b/meta-arago-distro/conf/distro/include/toolchain-arm.inc
new file mode 100644
index 0000000..15e9af2
--- /dev/null
+++ b/meta-arago-distro/conf/distro/include/toolchain-arm.inc
@@ -0,0 +1,116 @@
+# Select external binary prebuilt Arm toolchain
+TCMODE = "external-arm"
+TCLIBC = "external-arm-toolchain"
+
+EAT_TARGET_SYS_ARMV5 ?= "arm-linux-gnueabi"
+EAT_TARGET_SYS_ARMV7 ?= "arm-linux-gnueabihf"
+EAT_TARGET_SYS_ARMV8 ?= "aarch64-linux-gnu"
+
+EAT_TARGET_SYS_arm = "${EAT_TARGET_SYS_ARMV5}"
+EAT_TARGET_SYS_armv7a = "${EAT_TARGET_SYS_ARMV7}"
+EAT_TARGET_SYS_aarch64 = "${EAT_TARGET_SYS_ARMV8}"
+
+SECONDARY_TARGET_ARCH = ""
+SECONDARY_TARGET_ARCH_k3 = "armv7a"
+
+TARGET_VENDOR = ""
+
+TOOLCHAIN_BASE ?= "/opt"
+TOOLCHAIN_PATH_ARMV5 ?= 
"${TOOLCHAIN_BASE}/gcc-arm-8.2-ti2019.00-armv5-x86_64-${EAT_TARGET_SYS_ARMV5}"
+TOOLCHAIN_PATH_ARMV7 ?= 
"${TOOLCHAIN_BASE}/gcc-arm-8.2-2019.01-x86_64-${EAT_TARGET_SYS_ARMV7}"
+TOOLCHAIN_PATH_ARMV8 ?= 
"${TOOLCHAIN_BASE}/gcc-arm-8.2-2019.01-x86_64-${EAT_TARGET_SYS_ARMV8}"
+
+DEF_TOOLCHAIN_PATH_arm = "${TOOLCHAIN_PATH_ARMV5}"
+DEF_TOOLCHAIN_PATH_armv7a = "${TOOLCHAIN_PATH_ARMV7}"
+DEF_TOOLCHAIN_PATH_aarch64 = "${TOOLCHAIN_PATH_ARMV8}"
+
+TOOLCHAIN_PATH ?= "${DEF_TOOLCHAIN_PATH}"
+
+TOOLCHAIN_SYS := "${EAT_TARGET_SYS}"
+TOOLCHAIN_PREFIX := "${TOOLCHAIN_SYS}-"
+
+PREFERRED_PROVIDER_virtual/${TARGET_PREFIX}gcc-intermediate = 
"external-arm-toolchain"
+
+PREFERRED_PROVIDER_gcc-cross-canadian-${TRANSLATED_TARGET_ARCH} ?= 
"external-arm-sdk-toolchain"
+PREFERRED_PROVIDER_binutils-cross-canadian-${TRANSLATED_TARGET_ARCH} ?= 
"external-arm-sdk-toolchain"
+#PREFERRED_PROVIDER_gdb-cross-canadian-${TRANSLATED_TARGET_ARCH} = 
"external-arm-sdk-toolchain"
+
+# Special case for gdb to be built as part of canadian-cross-sdk, instead of 
packaged from external toolchain
+bindir_pn-gdb-cross-canadian-${TRANSLATED_TARGET_ARCH} = "${exec_prefix}/bin"
+PREFERRED_PROVIDER_gdb-cross-canadian-${TRANSLATED_TARGET_ARCH} = 
"gdb-cross-canadian-${TRANSLATED_TARGET_ARCH}"
+
+# Set up runtime preferences
+PREFERRED_PROVIDER_libgcc = "external-arm-toolchain"
+PREFERRED_PROVIDER_gcc-runtime = "external-arm-toolchain"
+
+# Set Cross and SDK toolchain preferences
+SDKGCCVERSION ?= "arm-8.2%"
+SDKGDBVERSION ?= "8.2"
+SDKBINUVERSION ?= "arm-2.30%"
+SDKGLIBCVERSION ?= "2.28%"
+SDKLINUXLIBCVERSION ?= "4.14%"
+
+PREFERRED_VERSION_gcc-crosssdk-${SDK_SYS} ?= "${SDKGCCVERSION}"
+PREFERRED_VERSION_gcc-crosssdk-initial-${SDK_SYS} ?= "${SDKGCCVERSION}"
+PREFERRED_VERSION_gdb-crosssdk-${SDK_SYS} ?= "${SDKGDBVERSION}"
+PREFERRED_VERSION_gdb-cross-canadian-${TRANSLATED_TARGET_ARCH} ?= 
"${SDKGDBVERSION}"
+PREFERRED_VERSION_binutils-crosssdk-${SDK_SYS} ?= "${SDKBINUVERSION}"
+
+PREFERRED_VERSION_nativesdk-gcc-runtime ?= "${SDKGCCVERSION}"
+PREFERRED_VERSION_nativesdk-libgcc ?= "${SDKGCCVERSION}"
+PREFERRED_VERSION_nativesdk-libgcc-initial ?= "${SDKGCCVERSION}"
+PREFERRED_VERSION_nativesdk-linux-libc-headers ?= "${SDKLINUXLIBCVERSION}"
+PREFERRED_VERSION_nativesdk-glibc ?= "${SDKGLIBCVERSION}"
+PREFERRED_VERSION_nativesdk-glibc-locale ?= "${SDKGLIBCVERSION}"
+PREFERRED_VERSION_nativesdk-glibc-initial ?= "${SDKGLIBCVERSION}"
+
+# Set target toolchain preferences to match Cross/SDK by default
+# Can be overwritten globally, if needed
+GCCVERSION ?= "arm-8.2%"
+GDBVERSION ?= "8.2"
+BINUVERSION ?= "arm-2.30%"
+GLIBCVERSION ?= "2.28%"
+
+PREFERRED_VERSION_gcc ?= "${GCCVERSION}"
+PREFERRED_VERSION_gdb ?= "${GDBVERSION}"
+PREFERRED_VERSION_binutils ?= "${BINUVERSION}"
+PREFERRED_VERSION_glibc ?= "${GLIBCVERSION}"
+PREFERRED_VERSION_glibc-locale ?= "${GLIBCVERSION}"
+PREFERRED_VERSION_glibc-initial ?= "${GLIBCVERSION}"
+
+# Licenses set for main components of the toolchain:
+# (g)libc is always LGPL version 2 (or later)
+# gcc has switched from GPL version 2 (or later) to version 3 (or later) after 
4.2.1,
+#    see this announcement - 
http://gcc.gnu.org/ml/gcc-announce/2007/msg00003.html
+# libgcc and libstdc++ always had exceptions to GPL called Runtime Library 
Exception, but
+#    it was based on GPL version 2 (or later), until new GPL version 3 (or 
later) exception
+#    was introduced on 27 Jan 2009 - 
http://gcc.gnu.org/ml/gcc-announce/2009/msg00000.html
+#    and http://www.gnu.org/licenses/gcc-exception.html, which was several 
days after
+#    gcc 4.3.3 was released - http://gcc.gnu.org/releases.html
+# gdb/gdbserver version 6.6 was the last one under GPL version 2 (or later), 
according
+#    to the release schedule - http://www.gnu.org/software/gdb/schedule/
+# binutils version 2.17 was the last one under GPL version 2 (or later), 
according
+#    to the published releases - http://ftp.gnu.org/gnu/binutils/
+
+python external_arm_toolchain_license_handler () {
+       if not isinstance(e, bb.event.ConfigParsed):
+               return
+       d = e.data
+       ld = d.createCopy()
+       ld.finalize()
+
+       lc_libc = "LGPL-2.1"
+       lc_gcc = ["GPL-3.0", "GPL-2.0"][eat_get_gcc_version(ld) <= "4.2.1"]
+       lc_rle = ["GPL-3.0-with-GCC-exception", 
"GPL-2.0-with-GCC-exception"][eat_get_gcc_version(ld) <= "4.3.3"]
+       lc_gdb = ["GPL-3.0", "GPL-2.0"][eat_get_gdb_version(ld) <= "6.6"]
+#      lc_bfd = ["GPL-3.0", "GPL-2.0"][eat_get_bfd_version(ld) <= "2.17"]
+
+       d.setVar('EAT_LIC_LIBC', lc_libc)
+       d.setVar('EAT_LIC_GCC', lc_gcc)
+       d.setVar('EAT_LIC_RLE', lc_rle)
+       d.setVar('EAT_LIC_GDB', lc_gdb)
+#      d.setVar('EAT_LIC_BFD', lc_bfd)
+
+       d.setVar('EAT_LICENSE', "%s&%s&%s&%s" % (lc_libc, lc_gcc, lc_rle, 
lc_gdb))
+}
+addhandler external_arm_toolchain_license_handler
diff --git 
a/meta-arago-distro/recipes-core/meta/external-arm-toolchain.bbappend 
b/meta-arago-distro/recipes-core/meta/external-arm-toolchain.bbappend
new file mode 100644
index 0000000..8b947d1
--- /dev/null
+++ b/meta-arago-distro/recipes-core/meta/external-arm-toolchain.bbappend
@@ -0,0 +1,47 @@
+# This is a rather hacky way to install custom linux-libc-headers
+# on top of the external-arm-toolchain, since simply depending
+# on linux-libc-headers creates circular dependencies now. Mostly
+# duplication of code from corresponding recipe.
+
+BRANCH = "ti-lsk-linux-4.14.y"
+SRCREV = "3e50654361c34b75784ab7c8c9aa8e96b3a37fc1"
+
+KERNEL_GIT_URI = "git://git.ti.com/ti-linux-kernel/ti-linux-kernel.git"
+KERNEL_GIT_PROTOCOL = "git"
+SRC_URI += "${KERNEL_GIT_URI};protocol=${KERNEL_GIT_PROTOCOL};branch=${BRANCH}"
+
+PKGV_linux-libc-headers-dev = "4.14"
+PKGV_linux-libc-headers = "4.14"
+
+inherit kernel-arch pkgconfig multilib_header
+
+EXTRA_OEMAKE = " HOSTCC="${BUILD_CC}" HOSTCPP="${BUILD_CPP}""
+
+do_configure_append() {
+       cd ${WORKDIR}/git
+       oe_runmake allnoconfig
+}
+
+do_install_append() {
+       cd ${WORKDIR}/git
+       oe_runmake headers_install INSTALL_HDR_PATH=${B}${exec_prefix}
+
+       CP_ARGS="-Prf --preserve=mode,timestamps --no-preserve=ownership"
+       cp ${CP_ARGS} ${B}${includedir} ${D}${exec_prefix}
+
+       # The ..install.cmd conflicts between various configure runs
+       find ${D}${exec_prefix} -name ..install.cmd | xargs rm -f
+}
+
+do_install_append_aarch64 () {
+        do_install_asm_armmultilib
+}
+
+do_install_append_arm () {
+       do_install_asm_armmultilib
+}
+
+do_install_asm_armmultilib () {
+       oe_multilib_header asm/auxvec.h asm/bitsperlong.h asm/byteorder.h 
asm/fcntl.h asm/hwcap.h asm/ioctls.h asm/kvm.h asm/mman.h asm/param.h 
asm/perf_regs.h
+       oe_multilib_header asm/posix_types.h asm/ptrace.h  asm/setup.h  
asm/sigcontext.h asm/siginfo.h asm/signal.h asm/stat.h  asm/statfs.h asm/swab.h 
 asm/types.h asm/unistd.h
+}
diff --git a/meta-arago-distro/recipes-devtools/gcc/gcc_%.bbappend 
b/meta-arago-distro/recipes-devtools/gcc/gcc_%.bbappend
index 4769d63..22a739e 100644
--- a/meta-arago-distro/recipes-devtools/gcc/gcc_%.bbappend
+++ b/meta-arago-distro/recipes-devtools/gcc/gcc_%.bbappend
@@ -1,4 +1,5 @@
 DEPENDS =+ "flex-native"
 
 EXTRA_DEPS = 
"${@['','external-linaro-toolchain-cross-${TARGET_ARCH}'][d.getVar('TOOLCHAIN_TYPE')
 == 'external' and d.getVar('TOOLCHAIN_BRAND') == 'linaro']}"
+EXTRA_DEPS = 
"${@['','external-arm-toolchain-cross-${TARGET_ARCH}'][d.getVar('TOOLCHAIN_TYPE')
 == 'external' and d.getVar('TOOLCHAIN_BRAND') == 'arm']}"
 DEPENDS += "${EXTRA_DEPS}"
diff --git 
a/meta-arago-extras/conf/distro/include/tclibc-external-arm-toolchain.inc 
b/meta-arago-extras/conf/distro/include/tclibc-external-arm-toolchain.inc
new file mode 100644
index 0000000..934b71b
--- /dev/null
+++ b/meta-arago-extras/conf/distro/include/tclibc-external-arm-toolchain.inc
@@ -0,0 +1,38 @@
+#
+# external Arm glibc specific configuration
+#
+
+LIBCEXTENSION = "${@['', '-gnu'][(d.getVar('ABIEXTENSION') or '') != '']}"
+
+# Add glibc overrides to the overrides for glibc.
+LIBCOVERRIDE = ":libc-glibc"
+OVERRIDES .= "${LIBCOVERRIDE}"
+
+PREFERRED_PROVIDER_virtual/libc-locale ?= "external-arm-toolchain"
+
+PREFERRED_PROVIDER_virtual/nativesdk-libiconv ?= "nativesdk-glibc"
+PREFERRED_PROVIDER_virtual/nativesdk-libintl ?= "nativesdk-glibc"
+PREFERRED_PROVIDER_virtual/nativesdk-libc ?= "nativesdk-glibc"
+
+LIBC_DEPENDENCIES = "libsegfault \
+                    glibc \
+                    glibc-dbg \
+                    glibc-dev \
+                    glibc-utils \
+                    glibc-thread-db \
+                    ${@get_libc_locales_dependencies(d)}"
+
+LIBC_LOCALE_DEPENDENCIES = "\
+       glibc-localedata-i18n \
+       glibc-gconv-ibm850 \
+       glibc-gconv-cp1252 \
+       glibc-gconv-iso8859-1 \
+       glibc-gconv-iso8859-15 \
+       locale-base-en-us \
+       locale-base-en-gb"
+
+def get_libc_locales_dependencies(d):
+    if 'libc-locales' in (d.getVar('DISTRO_FEATURES') or '').split() :
+        return d.getVar('LIBC_LOCALE_DEPENDENCIES') or ''
+    else:
+        return ''
diff --git a/meta-arago-extras/recipes-core/meta/external-arm-bfd-version.inc 
b/meta-arago-extras/recipes-core/meta/external-arm-bfd-version.inc
new file mode 100644
index 0000000..22f1033
--- /dev/null
+++ b/meta-arago-extras/recipes-core/meta/external-arm-bfd-version.inc
@@ -0,0 +1,8 @@
+TOOLCHAIN_PATH ??= "${STAGING_BINDIR_TOOLCHAIN}"
+
+def eat_get_bfd_version(d):
+       import subprocess,os,bb
+       if 
os.path.exists(d.getVar('TOOLCHAIN_PATH')+'/bin/'+d.getVar('TARGET_PREFIX')+'as'):
+               return 
subprocess.Popen([d.getVar('TOOLCHAIN_PATH')+'/bin/'+d.getVar('TARGET_PREFIX')+'as',
 '-v', '--version'], 
stderr=subprocess.STDOUT,stdout=subprocess.PIPE).communicate()[0].splitlines()[0].split()[3]
+
+EAT_VER_BFD := "${@eat_get_bfd_version(d)}"
diff --git a/meta-arago-extras/recipes-core/meta/external-arm-sdk-toolchain.bb 
b/meta-arago-extras/recipes-core/meta/external-arm-sdk-toolchain.bb
new file mode 100644
index 0000000..45ae218
--- /dev/null
+++ b/meta-arago-extras/recipes-core/meta/external-arm-sdk-toolchain.bb
@@ -0,0 +1,128 @@
+inherit cross-canadian
+
+require external-arm-bfd-version.inc
+
+PR = "r8"
+
+INHIBIT_PACKAGE_DEBUG_SPLIT = "1"
+INHIBIT_PACKAGE_STRIP = "1"
+INHIBIT_SYSROOT_STRIP = "1"
+INHIBIT_DEFAULT_DEPS = "1"
+EXCLUDE_FROM_SHLIBS = "1"
+
+# License applies to this recipe code, not the toolchain itself
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = 
"file://${COMMON_LICENSE_DIR}/MIT;md5=0835ade698e0bcf8506ecda2f7b4f302"
+
+INSANE_SKIP_gcc-cross-canadian-${TRANSLATED_TARGET_ARCH} = "dev-so staticdev 
file-rdeps"
+INSANE_SKIP_gdb-cross-canadian-${TRANSLATED_TARGET_ARCH} = "dev-so file-rdeps"
+INSANE_SKIP_binutils-cross-canadian-${TRANSLATED_TARGET_ARCH} = "dev-so 
file-rdeps"
+
+PROVIDES = "\
+       gcc-cross-canadian-${TRANSLATED_TARGET_ARCH} \
+       
${@oe.utils.conditional('PREFERRED_PROVIDER_gdb-cross-canadian-${TRANSLATED_TARGET_ARCH}',
 'external-arm-sdk-toolchain', 'gdb-cross-canadian-${TRANSLATED_TARGET_ARCH}', 
'', d)} \
+       binutils-cross-canadian-${TRANSLATED_TARGET_ARCH} \
+"
+
+PACKAGES = "\
+       gcc-cross-canadian-${TRANSLATED_TARGET_ARCH} \
+       
${@oe.utils.conditional('PREFERRED_PROVIDER_gdb-cross-canadian-${TRANSLATED_TARGET_ARCH}',
 'external-arm-sdk-toolchain', 'gdb-cross-canadian-${TRANSLATED_TARGET_ARCH}', 
'', d)} \
+       binutils-cross-canadian-${TRANSLATED_TARGET_ARCH} \
+"
+
+# Don't need the extra target triplet in the new SDK dir structure
+bindir = "${exec_prefix}/bin"
+libdir = "${exec_prefix}/lib"
+libexecdir = "${exec_prefix}/libexec"
+datadir = "${exec_prefix}/share"
+gcclibdir = "${libdir}/gcc"
+
+FILES_gcc-cross-canadian-${TRANSLATED_TARGET_ARCH} = "\
+       ${prefix}/${EAT_TARGET_SYS}/lib/libstdc++.* \
+       ${prefix}/${EAT_TARGET_SYS}/lib/libgcc_s.* \
+       ${prefix}/${EAT_TARGET_SYS}/lib/libsupc++.* \
+       ${gcclibdir}/${EAT_TARGET_SYS}/${EAT_VER_GCC}/* \
+       ${bindir}/${TARGET_PREFIX}gcov \
+       ${bindir}/${TARGET_PREFIX}gcc* \
+       ${bindir}/${TARGET_PREFIX}g++ \
+       ${bindir}/${TARGET_PREFIX}cpp \
+       ${libexecdir}/* \
+"
+
+FILES_gdb-cross-canadian-${TRANSLATED_TARGET_ARCH} = "\
+       ${bindir}/${TARGET_PREFIX}gdb \
+       ${bindir}/${TARGET_PREFIX}gdbtui \
+       ${datadir}/gdb/* \
+       ${datadir}/info/* \
+       ${datadir}/man/man1/${TARGET_PREFIX}* \
+"
+
+FILES_binutils-cross-canadian-${TRANSLATED_TARGET_ARCH} = "\
+       ${prefix}/${EAT_TARGET_SYS}/bin/ld* \
+       ${prefix}/${EAT_TARGET_SYS}/bin/objcopy \
+       ${prefix}/${EAT_TARGET_SYS}/bin/strip \
+       ${prefix}/${EAT_TARGET_SYS}/bin/nm \
+       ${prefix}/${EAT_TARGET_SYS}/bin/ranlib \
+       ${prefix}/${EAT_TARGET_SYS}/bin/as \
+       ${prefix}/${EAT_TARGET_SYS}/bin/ar \
+       ${prefix}/${EAT_TARGET_SYS}/bin/objdump \
+       ${prefix}/${EAT_TARGET_SYS}/lib/ldscripts/* \
+       ${bindir}/${TARGET_PREFIX}ld* \
+       ${bindir}/${TARGET_PREFIX}addr2line \
+       ${bindir}/${TARGET_PREFIX}objcopy \
+       ${bindir}/${TARGET_PREFIX}readelf \
+       ${bindir}/${TARGET_PREFIX}strip \
+       ${bindir}/${TARGET_PREFIX}nm \
+       ${bindir}/${TARGET_PREFIX}ranlib \
+       ${bindir}/${TARGET_PREFIX}gprof \
+       ${bindir}/${TARGET_PREFIX}as \
+       ${bindir}/${TARGET_PREFIX}c++filt \
+       ${bindir}/${TARGET_PREFIX}ar \
+       ${bindir}/${TARGET_PREFIX}strings \
+       ${bindir}/${TARGET_PREFIX}objdump \
+       ${bindir}/${TARGET_PREFIX}size \
+"
+
+DESCRIPTION_gcc-cross-canadian-${TRANSLATED_TARGET_ARCH} = "The GNU cc and gcc 
C compilers"
+DESCRIPTION_gdb-cross-canadian-${TRANSLATED_TARGET_ARCH} = "gdb - GNU debugger"
+DESCRIPTION_binutils-cross-canadian-${TRANSLATED_TARGET_ARCH} = "A GNU 
collection of binary utilities"
+
+#LICENSE = "${ARG_LIC_LIBC}"
+#LICENSE_gcc-cross-canadian-${TRANSLATED_TARGET_ARCH} = "${ARG_LIC_GCC}"
+#LICENSE_gdb-cross-canadian-${TRANSLATED_TARGET_ARCH} = "${ARG_LIC_GDB}"
+#LICENSE_binutils-cross-canadian-${TRANSLATED_TARGET_ARCH} = "${ARG_LIC_BFD}"
+
+PKGV = "${EAT_VER_MAIN}"
+PKGV_gcc-cross-canadian-${TRANSLATED_TARGET_ARCH} = "${EAT_VER_GCC}"
+PKGV_gdb-cross-canadian-${TRANSLATED_TARGET_ARCH} = "${EAT_VER_GDB}"
+PKGV_binutils-cross-canadian-${TRANSLATED_TARGET_ARCH} = "${EAT_VER_BFD}"
+
+LIBDIR = "lib"
+LIBDIR_aarch64 = "lib64"
+
+do_install() {
+       install -d ${D}${prefix}/${EAT_TARGET_SYS}/bin
+       install -d ${D}${prefix}/${EAT_TARGET_SYS}/lib
+       install -d ${D}${bindir}
+       install -d ${D}${libdir}
+       install -d ${D}${prefix}/${EAT_TARGET_SYS}/lib/ldscripts
+       install -d ${D}${libexecdir}
+       
${@oe.utils.conditional('PREFERRED_PROVIDER_gdb-cross-canadian-${TRANSLATED_TARGET_ARCH}',
 'external-arm-sdk-toolchain', 'install -d ${D}${datadir}/gdb', '', d)}
+       
${@oe.utils.conditional('PREFERRED_PROVIDER_gdb-cross-canadian-${TRANSLATED_TARGET_ARCH}',
 'external-arm-sdk-toolchain', 'install -d ${D}${datadir}/info', '', d)}
+       
${@oe.utils.conditional('PREFERRED_PROVIDER_gdb-cross-canadian-${TRANSLATED_TARGET_ARCH}',
 'external-arm-sdk-toolchain', 'install -d ${D}${datadir}/man/man1', '', d)}
+       install -d ${D}${gcclibdir}/${EAT_TARGET_SYS}/${EAT_VER_GCC}/include
+
+       cp -a 
${TOOLCHAIN_PATH}/${EAT_TARGET_SYS}/${LIBDIR}/{libstdc++.*,libgcc_s.*,libsupc++.*}
 ${D}${prefix}/${EAT_TARGET_SYS}/lib
+       cp -a ${TOOLCHAIN_PATH}/lib/gcc/${EAT_TARGET_SYS}/${EAT_VER_GCC}/* 
${D}${gcclibdir}/${EAT_TARGET_SYS}/${EAT_VER_GCC}
+       cp -a ${TOOLCHAIN_PATH}/bin/${TARGET_PREFIX}{gcov,gcc*,g++,cpp} 
${D}${bindir}
+       cp -a ${TOOLCHAIN_PATH}/libexec/* ${D}${libexecdir}
+
+       
${@oe.utils.conditional('PREFERRED_PROVIDER_gdb-cross-canadian-${TRANSLATED_TARGET_ARCH}',
 'external-arm-sdk-toolchain', 'cp -a 
${TOOLCHAIN_PATH}/bin/${TARGET_PREFIX}gdb* ${D}${bindir}', '', d)}
+       
${@oe.utils.conditional('PREFERRED_PROVIDER_gdb-cross-canadian-${TRANSLATED_TARGET_ARCH}',
 'external-arm-sdk-toolchain', 'cp -a ${TOOLCHAIN_PATH}/share/gdb/* 
${D}${datadir}/gdb/', '', d)}
+       
${@oe.utils.conditional('PREFERRED_PROVIDER_gdb-cross-canadian-${TRANSLATED_TARGET_ARCH}',
 'external-arm-sdk-toolchain', 'cp -a ${TOOLCHAIN_PATH}/share/info/* 
${D}${datadir}/info/', '', d)}
+       
${@oe.utils.conditional('PREFERRED_PROVIDER_gdb-cross-canadian-${TRANSLATED_TARGET_ARCH}',
 'external-arm-sdk-toolchain', 'cp -a 
${TOOLCHAIN_PATH}/share/man/man1/${TARGET_PREFIX}* ${D}${datadir}/man/man1/', 
'', d)}
+
+       cp -a 
${TOOLCHAIN_PATH}/${EAT_TARGET_SYS}/bin/{ld*,objcopy,strip,nm,ranlib,as,ar,objdump}
 ${D}${prefix}/${EAT_TARGET_SYS}/bin
+       cp -a ${TOOLCHAIN_PATH}/${EAT_TARGET_SYS}/lib/ldscripts/* 
${D}${prefix}/${EAT_TARGET_SYS}/lib/ldscripts
+       cp -a 
${TOOLCHAIN_PATH}/bin/${TARGET_PREFIX}{ld*,addr2line,objcopy,readelf,strip,nm,ranlib,gprof,as,c++filt,ar,strings,objdump,size}
 ${D}${bindir}
+}
diff --git 
a/meta-arago-extras/recipes-core/meta/external-arm-toolchain-cross.bb 
b/meta-arago-extras/recipes-core/meta/external-arm-toolchain-cross.bb
new file mode 100644
index 0000000..1ce9e06
--- /dev/null
+++ b/meta-arago-extras/recipes-core/meta/external-arm-toolchain-cross.bb
@@ -0,0 +1,19 @@
+SUMMARY = "Stage provided unwind.h header being used by target gcc 
installation"
+
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = 
"file://${COMMON_LICENSE_DIR}/MIT;md5=0835ade698e0bcf8506ecda2f7b4f302"
+
+PR = "r1"
+
+inherit cross
+
+PN = "external-arm-toolchain-cross-${TARGET_ARCH}"
+BPN = "external-arm-toolchain"
+
+INHIBIT_DEFAULT_DEPS = "1"
+INHIBIT_AUTOTOOLS_DEPS = "1"
+
+do_install() {
+       install -d ${D}${libdir}/gcc/${TARGET_SYS}/${EAT_VER_GCC}/include/
+       cp -a 
${TOOLCHAIN_PATH}/lib/gcc/${EAT_TARGET_SYS}/${EAT_VER_GCC}/include/unwind.h 
${D}/${libdir}/gcc/${TARGET_SYS}/${EAT_VER_GCC}/include/
+}
-- 
2.7.4

_______________________________________________
meta-arago mailing list
[email protected]
http://arago-project.org/cgi-bin/mailman/listinfo/meta-arago

Reply via email to