[OE-core] [RFC] Fix libgcc nativesdk to install libgcc.a in good location for tools

Richard Purdie richard.purdie at linuxfoundation.org
Fri Oct 28 09:03:41 UTC 2011


On Wed, 2011-10-26 at 22:07 -0500, Matthew McClintock wrote:
> This fixes an issue where we cannot find -lgcc when linking. We
> update the path to libgcc.a so the library can be installed
> correctly
> 
> Signed-off-by: Matthew McClintock <msm at freescale.com>
> ---
> I really doubt this is the correct fix and I'm no expert but it's
> here for comments. This fixes a real u-boot cross compile build
> issue

This patch looks very very confused to me. Firstly your subject summary
talks about libgcc-nativesdk. This is the compiler used to generate
binaries for SDKMACHINE so I seriously doubt you're using nativesdk to
build uboot.

> The previous mv command was failing as the files did not exist
> and I also rejiggered the packages since I was not sure if
> gdb-cross-canadian-powerpc-dev was included in my tarball of
> the toolchain
> 
>  meta/recipes-devtools/gcc/libgcc_4.6.bb |    6 +++---
>  1 files changed, 3 insertions(+), 3 deletions(-)
> 
> diff --git a/meta/recipes-devtools/gcc/libgcc_4.6.bb b/meta/recipes-devtools/gcc/libgcc_4.6.bb
> index 63a46ec..7f3ac55 100644
> --- a/meta/recipes-devtools/gcc/libgcc_4.6.bb
> +++ b/meta/recipes-devtools/gcc/libgcc_4.6.bb
> @@ -8,9 +8,8 @@ PACKAGES = "\
>    ${PN}-dev \
>    "
>  
> -FILES_${PN} = "${base_libdir}/libgcc*.so.*"
> +FILES_${PN} = "${base_libdir}/libgcc*"

This is changing the packging of libgcc too, not just libgcc-nativesdk.
It is not correct to be putting the dynamic linking symlinks in anything
but the -dev package so the above and the line below are therefore wrong
too.

>  FILES_${PN}-dev = " \
> -  ${base_libdir}/libgcc*.so \
>    ${libdir}/${TARGET_SYS}/${BINV}/crt* \
>    ${libdir}/${TARGET_SYS}/${BINV}/libgcc*"
>  
> @@ -29,9 +28,10 @@ do_install () {
>  	if [ -f ${D}${libdir}/nof/libgcc_s.so ]; then
>  		mv ${D}${libdir}/nof/libgcc* ${D}${base_libdir}
>  	else
> -		mv ${D}${libdir}/libgcc* ${D}${base_libdir} || true
> +		cp ${D}${libdir}/${TARGET_SYS}/${BINV}/libgcc* ${D}${base_libdir}
>  	fi

Equally, you're moving a static library from the -dev package into the
main package which is wrong, you only need that if you're doing
development.

Are you sure your problem is not that you didn't have the libgcc-dev
package installed?

Cheers,

Richard





More information about the Openembedded-core mailing list