[OE-core] [PATCH 2/4] gcc-package-target.inc: add the symbol link /lib/cpp

Richard Purdie richard.purdie at linuxfoundation.org
Thu Nov 24 16:23:15 UTC 2011


On Thu, 2011-11-24 at 23:37 +0800, Cui, Dexuan wrote:
> 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.

Ok, this sounds great. Put this in the commit message though please!

Cheers,

Richard





More information about the Openembedded-core mailing list