[OE-core] [PATCH] gcc: use ${base_lib} to match gcc default configuration

Yu Ke ke.yu at intel.com
Thu Aug 11 06:36:51 UTC 2011


Hi Kumar,

I just found this patch breaks the qemux86-64 lib64 multilib build.

the error log is as below:

| mv: cannot stat 
`/home/kyu3/sdb/multilib2/tmp/work/x86_64-pokymllib64-linux/lib64-gcc-cross-intermediate-4.6.1+svnr175454-r4/image/home/kyu3/sdb/multilib2/tmp/sysroots/x86_64-linux/usr/x86_64-pokymllib64-linux/lib64/*': 
No such file or directory
NOTE: package lib64-gcc-cross-intermediate-4.6.1+svnr175454-r4: task 
do_install: Failed
ERROR: Task 1557 
(virtual:multilib:lib64:/home/kyu3/src/poky/meta/recipes-devtools/gcc/gcc-cross-intermediate_4.6.bb, 
do_install) failed with exit code

the error is caused by command in gcc-cross-intermediate.inc: 
do_install(): "mv ${D}${exec_prefix}/${TARGET_SYS}/${baselib}/* 
${D}${target_base_libdir}/"

and the reason is that: ${baselib} is lib64 in multilib case, while the 
files to be moved is still in ${D}${exec_prefix}/${TARGET_SYS}/lib/*, 
so mv will fail.

The fix may be either reverting this commit, or putting the file to 
${baselib} instead of lib. I'd like to get your input before going further.

Regards
Ke

on 2011-8-5 2:54, Kumar Gala wrote:
> Rather than tweaking MULTILIB_DIRNAMES&  MULTILIB_OSDIRNAMES like is
> done for x86-64 via 64bithack.patch.  We can just go with gcc defaults
> and utilize ${base_lib} for where to find gcc libs.
>
> Signed-off-by: Kumar Gala<galak at kernel.crashing.org>
> ---
>   .../gcc/gcc-cross-intermediate.inc                 |    2 +-
>   1 files changed, 1 insertions(+), 1 deletions(-)
>
> diff --git a/meta/recipes-devtools/gcc/gcc-cross-intermediate.inc b/meta/recipes-devtools/gcc/gcc-cross-intermediate.inc
> index df5958a..7b1bb38 100644
> --- a/meta/recipes-devtools/gcc/gcc-cross-intermediate.inc
> +++ b/meta/recipes-devtools/gcc/gcc-cross-intermediate.inc
> @@ -34,7 +34,7 @@ do_compile () {
>   do_install () {
>   	oe_runmake 'DESTDIR=${D}' install
>   	install -d ${D}${target_base_libdir}/
> -	mv ${D}${exec_prefix}/${TARGET_SYS}/lib/* ${D}${target_base_libdir}/
> +	mv ${D}${exec_prefix}/${TARGET_SYS}/${baselib}/* ${D}${target_base_libdir}/
>
>   	# We don't really need this (here shares/ contains man/, info/, locale/).
>   	rm -rf ${D}${datadir}/





More information about the Openembedded-core mailing list