[oe] [meta-initramfs][PATCH] klibc: klcc: consider --sysroot option and override gcc-cross encoded sysroot
Khem Raj
raj.khem at gmail.com
Thu Sep 4 19:57:42 UTC 2014
On Monday, September 1, 2014, Andrea Adami <andrea.adami at gmail.com> wrote:
> For the recipes built with klcc-cross it is necessary to
> pass --sysroot otherwise we default to the one encoded in gcc-cross which
> actually is the 'first one' built.
> The issue was revealed when building for armv4 after having built for
> armv5te:
> the produced binaries did contain Illegal Instruction (bx lr).
>
> Signed-off-by: Andrea Adami <andrea.adami at gmail.com <javascript:;>>
> ---
> meta-initramfs/classes/klibc.bbclass | 4 ++--
> .../klibc/klibc-2.0.4/klcc-consider-sysroot.patch | 14
> ++++++++++++++
> meta-initramfs/recipes-devtools/klibc/klibc.inc | 1 +
> 3 files changed, 17 insertions(+), 2 deletions(-)
> create mode 100644
> meta-initramfs/recipes-devtools/klibc/klibc-2.0.4/klcc-consider-sysroot.patch
>
> diff --git a/meta-initramfs/classes/klibc.bbclass
> b/meta-initramfs/classes/klibc.bbclass
> index ca741cd..8690472 100644
> --- a/meta-initramfs/classes/klibc.bbclass
> +++ b/meta-initramfs/classes/klibc.bbclass
> @@ -4,8 +4,8 @@ DEPENDS =+ "klcc-cross"
> # Default for klcc is to build static binaries.
> # Set CC = "${TARGET_PREFIX}klcc -shared" to build the dynamic version.
>
> -export CC = "${TARGET_PREFIX}klcc"
> -export CC_armv4_linux-gnueabi = "${TARGET_PREFIX}klcc -march=armv4
> -mthumb-interwork"
> +export CC = "${TARGET_PREFIX}klcc --sysroot=${STAGING_DIR_TARGET}"
> +export CC_armv4_linux-gnueabi = "${TARGET_PREFIX}klcc
> --sysroot=${STAGING_DIR_TARGET} -march=armv4 -mthumb-interwork"
>
> May be you can use TOOLCHAIN_OPTIONS
here
export CPP = "${CC} -E"
>
> diff --git
> a/meta-initramfs/recipes-devtools/klibc/klibc-2.0.4/klcc-consider-sysroot.patch
> b/meta-initramfs/recipes-devtools/klibc/klibc-2.0.4/klcc-consider-sysroot.patch
> new file mode 100644
> index 0000000..9bc4835
> --- /dev/null
> +++
> b/meta-initramfs/recipes-devtools/klibc/klibc-2.0.4/klcc-consider-sysroot.patch
> @@ -0,0 +1,14 @@
> +diff --git a/klcc/klcc.in b/klcc/klcc.in
> +index 43d0984..61e9385 100644
> +--- a/klcc/klcc.in
> ++++ b/klcc/klcc.in
> +@@ -204,6 +204,9 @@ while ( defined($a = shift(@ARGV)) ) {
> + # Libraries
> + push(@libs, $a);
> + push(@libs, shift(@ARGV)) if ( $2 eq '' );
> ++ } elsif ( $a =~ /^--([sysroot=])(.*)$/ ) {
> ++ # Override gcc encoded sysroot
> ++ push(@ccopt, $a);
> + } else {
> + die "$0: unknown option: $a\n";
> + }
> diff --git a/meta-initramfs/recipes-devtools/klibc/klibc.inc
> b/meta-initramfs/recipes-devtools/klibc/klibc.inc
> index 0209b20..f3e9972 100644
> --- a/meta-initramfs/recipes-devtools/klibc/klibc.inc
> +++ b/meta-initramfs/recipes-devtools/klibc/klibc.inc
> @@ -16,6 +16,7 @@ SRC_URI_append_linux-uclibceabi = "
> file://klibc-config-eabi.patch \
> "
> SRC_URI += "file://klibc-linux-libc-dev.patch \
> file://staging.patch \
> + file://klcc-consider-sysroot.patch \
> "
>
> S = "${WORKDIR}/git"
> --
> 1.9.1
>
> --
> _______________________________________________
> Openembedded-devel mailing list
> Openembedded-devel at lists.openembedded.org <javascript:;>
> http://lists.openembedded.org/mailman/listinfo/openembedded-devel
>
More information about the Openembedded-devel
mailing list