[yocto] [meta-linaro][PATCH] external-linaro-toolchain: Fix for 32bit armhf build
Khem Raj
raj.khem at gmail.com
Thu Apr 10 11:36:06 PDT 2014
On Thu, Apr 10, 2014 at 12:49 AM, Kazuya Nishimura
<kazuya.nisimura at gmail.com> wrote:
> From: Kazuya Nishimura <kazuya.nisimura at gmail.com>
>
> Use ld-linux-armhf.so.3 if call convention hard.
> Fix QA issue errors by packaging approprieately.
> Add eglibc-locale_2.19.bbappend to fix QA issue error.
> An empty directory is created while do_install.
>
> Signed-off-by: Kazuya Nishimura <kazuya.nisimura at gmail.com>
> ---
> .../conf/distro/include/tcmode-external-linaro.inc | 1 +
> .../eglibc/eglibc-locale_2.19.bbappend | 23 ++++++++++++
> .../external-linaro-toolchain.bb | 38
> ++++++++++++++++----
> 3 files changed, 56 insertions(+), 6 deletions(-)
> create mode 100755
> meta-linaro-toolchain/recipes-core/eglibc/eglibc-locale_2.19.bbappend
>
> diff --git
> a/meta-linaro-toolchain/conf/distro/include/tcmode-external-linaro.inc
> b/meta-linaro-toolchain/conf/distro/include/tcmode-external-linaro.inc
> index 1d9fd59..26d464c 100644
> --- a/meta-linaro-toolchain/conf/distro/include/tcmode-external-linaro.inc
> +++ b/meta-linaro-toolchain/conf/distro/include/tcmode-external-linaro.inc
> @@ -41,6 +41,7 @@ DISTRO_FEATURES_LIBC = "ipv4 ipv6 libc-backtrace
> libc-big-macros libc-bsd libc-c
> libc-getlogin libc-idn libc-inet-anl libc-libm libc-libm-big \
> libc-memusage libc-nis libc-nsswitch libc-rcmd libc-rtld-debug libc-spawn
> libc-streams libc-sunrpc \
> libc-utmp libc-utmpx libc-wordexp libc-posix-clang-wchar libc-posix-regexp
> libc-posix-regexp-glibc \
> + libc-charsets libc-locales libc-locale-code \
> libc-posix-wchar-io"
>
> ENABLE_BINARY_LOCALE_GENERATION = "0"
> diff --git
> a/meta-linaro-toolchain/recipes-core/eglibc/eglibc-locale_2.19.bbappend
> b/meta-linaro-toolchain/recipes-core/eglibc/eglibc-locale_2.19.bbappend
> new file mode 100755
> index 0000000..3e91e74
> --- /dev/null
> +++ b/meta-linaro-toolchain/recipes-core/eglibc/eglibc-locale_2.19.bbappend
> @@ -0,0 +1,23 @@
> +do_install () {
> + mkdir -p ${D}${datadir}
> + if [ -n "$(ls ${LOCALETREESRC}/${bindir})" ]; then
> + mkdir -p ${D}${bindir}
> + cp -fpPR ${LOCALETREESRC}/${bindir}/* ${D}${bindir}
> + fi
> + if [ -n "$(ls ${LOCALETREESRC}/${localedir})" ]; then
> + mkdir -p ${D}${localedir}
> + cp -fpPR ${LOCALETREESRC}/${localedir}/* ${D}${localedir}
> + fi
> + if [ -e ${LOCALETREESRC}/${libdir}/gconv ]; then
> + mkdir -p ${D}${libdir}
> + cp -fpPR ${LOCALETREESRC}/${libdir}/gconv ${D}${libdir}
> + fi
> + if [ -e ${LOCALETREESRC}/${datadir}/i18n ]; then
> + cp -fpPR ${LOCALETREESRC}/${datadir}/i18n ${D}${datadir}
> + fi
> + if [ -e ${LOCALETREESRC}/${datadir}/locale ]; then
> + cp -fpPR ${LOCALETREESRC}/${datadir}/locale ${D}${datadir}
> + fi
> + chown root.root -R ${D}
> + cp -fpPR ${LOCALETREESRC}/SUPPORTED ${WORKDIR}
> +}
why is chown needed here ?
secondly, this piece should go into OE-Core
> diff --git
> a/meta-linaro-toolchain/recipes-devtools/external-linaro-toolchain/external-linaro-toolchain.bb
> b/meta-linaro-toolchain/recipes-devtools/external-linaro-toolchain/external-linaro-toolchain.bb
> index 240d550..47fd4ca 100644
> ---
> a/meta-linaro-toolchain/recipes-devtools/external-linaro-toolchain/external-linaro-toolchain.bb
> +++
> b/meta-linaro-toolchain/recipes-devtools/external-linaro-toolchain/external-linaro-toolchain.bb
> @@ -41,6 +41,12 @@ PROVIDES += "\
> libitm \
> libitm-dev \
> libitm-staticdev \
> + libasan \
> + libasan-dev \
> + libasan-staticdev \
> + libatomic \
> + libatomic-dev \
> + libatomic-staticdev \
> virtual/linux-libc-headers \
> "
>
> @@ -50,12 +56,11 @@ PR = "r2"
> # https://launchpad.net/linaro-toolchain-binaries
> SRC_URI = "file://SUPPORTED"
>
> +LDLINUX32 = "${@base_contains("TUNE_FEATURES", "callconvention-hard",
> "ld-linux-armhf.so.3", "ld-linux.so.3",d)}"
> +
> do_install() {
> install -d ${D}${base_libdir}
> - install -d ${D}${bindir}
> - install -d ${D}${sbindir}
> install -d ${D}${libdir}
> - install -d ${D}${libexecdir}
> install -d ${D}${datadir}
> install -d ${D}${includedir}
>
> @@ -79,7 +84,7 @@ do_install() {
> fi
>
> # fix up the copied symlinks (they are still pointing to the multiarch
> directory)
> - linker_name="${@base_contains("TUNE_FEATURES", "aarch64",
> "ld-linux-aarch64.so.1", "ld-linux.so.3",d)}"
> + linker_name="${@base_contains("TUNE_FEATURES", "aarch64",
> "ld-linux-aarch64.so.1", "${LDLINUX32}",d)}"
> ln -sf ld-${ELT_VER_LIBC}.so ${D}${base_libdir}/${linker_name}
> ln -sf ../../lib/libnsl.so.1 ${D}${libdir}/libnsl.so
> ln -sf ../../lib/librt.so.1 ${D}${libdir}/librt.so
> @@ -144,6 +149,12 @@ PACKAGES =+ "\
> libitm \
> libitm-dev \
> libitm-staticdev \
> + libasan \
> + libasan-dev \
> + libasan-staticdev \
> + libatomic \
> + libatomic-dev \
> + libatomic-staticdev \
> "
>
> INSANE_SKIP_${PN}-dbg = "staticdev"
> @@ -282,14 +293,16 @@ FILES_libssp-staticdev = " \
>
> FILES_libgfortran = "${base_libdir}/libgfortran.so.*"
> FILES_libgfortran-dev = " \
> - ${base_libdir}/libgfortran.so"
> + ${base_libdir}/libgfortran.so \
> + ${base_libdir}/libgfortran.spec"
> FILES_libgfortran-staticdev = " \
> ${base_libdir}/libgfortran.a \
> ${base_libdir}/libgfortranbegin.a"
>
> FILES_libmudflap = "${base_libdir}/libmudflap*.so.*"
> FILES_libmudflap-dev = "\
> - ${base_libdir}/libmudflap*.so \
> + ${base_libdir}/libmudflap*.so"
> +FILES_libmudflap-staticdev = "\
> ${base_libdir}/libmudflap*.a \
> ${base_libdir}/libmudflap*.la"
>
> @@ -313,6 +326,19 @@ FILES_libgomp-dev = "\
> FILES_libgomp-staticdev = "\
> ${base_libdir}/libgomp*.a \
> "
> +
> +FILES_libasan = "\
> + ${base_libdir}/libasan.so.* \
> + "
> +FILES_libasan-dev = "\
> + ${base_libdir}/libasan.so \
> + "
> +FILES_libatomic ="\
> + ${base_libdir}/libatomic.so.* \
> + "
> +FILES_libatomic-dev = "\
> + ${base_libdir}/libatomic.so \
> + "
> ELT_VER_MAIN ??= ""
>
> python () {
> --
> 1.7.9.5
>
>
> --
> _______________________________________________
> yocto mailing list
> yocto at yoctoproject.org
> https://lists.yoctoproject.org/listinfo/yocto
>
More information about the yocto
mailing list