[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