Richard Purdie wrote on 2011-11-24:
> On Thu, 2011-11-24 at 18:08 +0800, Dexuan Cui wrote:
>> --- a/meta/recipes-devtools/gcc/gcc-package-target.inc
>> +++ b/meta/recipes-devtools/gcc/gcc-package-target.inc
>> @@ -122,6 +122,8 @@ do_install () {
>>      ln -sf ${TARGET_PREFIX}g++ g++
>>      ln -sf ${TARGET_PREFIX}gcc gcc
>>      ln -sf ${TARGET_PREFIX}cpp cpp
>> +    install -d ${D}${base_libdir}
>> +    ln -sf ${bindir}/${TARGET_PREFIX}cpp ${D}${base_libdir}/cpp
>>      ln -sf g++ c++
>>      ln -sf gcc cc
> 
> Why do we need this change?
When I was trying self-hosted-image, eglibc's do_install failed in the target:
ERROR: cannot stat bootparam_prot.h: the cause is: rpcgen doesn't work 
properly: rpcgen can't exec /lib/cpp since it doesn't exist.

According to http://tldp.org/LDP/Linux-Filesystem-Hierarchy/html/lib.html,  "if 
a C preprocessor is installed, /lib/cpp must be a reference to it, for 
historical reasons. The usual placement of this binary is /usr/bin/cpp".

Typical distros, like Ubuntu, openSuSE, Fedora, RHEL, all comply with the rule.

Actually in meta/recipes-devtools/gcc/gcc-package-target.inc, we do try to 
package ${base_libdir}/cpp:
 FILES_cpp = "\
  ${bindir}/${TARGET_PREFIX}cpp \
  ${base_libdir}/cpp \
  ${libexecdir}/gcc/${TARGET_SYS}/${BINV}/cc1"
But unluckily we didn't to create a symbol link in do_install. This patch adds 
the symbol link.

Thanks,
-- Dexuan



_______________________________________________
Openembedded-core mailing list
[email protected]
http://lists.linuxtogo.org/cgi-bin/mailman/listinfo/openembedded-core

Reply via email to