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

login
register
mail settings
Submitter Dexuan Cui
Date Nov. 24, 2011, 10:08 a.m.
Message ID <d4724b4050931ff51499a8808287f04b0091e93e.1322128489.git.dexuan.cui@intel.com>
Download mbox | patch
Permalink /patch/15383/
State Accepted
Commit 58fb9fbce2af05a469691390e75aebb2de16ca96
Headers show

Comments

Dexuan Cui - Nov. 24, 2011, 10:08 a.m.
Signed-off-by: Dexuan Cui <dexuan.cui@intel.com>
---
 meta/recipes-devtools/gcc/gcc-4.6.inc            |    2 +-
 meta/recipes-devtools/gcc/gcc-package-target.inc |    2 ++
 2 files changed, 3 insertions(+), 1 deletions(-)
Richard Purdie - Nov. 24, 2011, 11:21 a.m.
On Thu, 2011-11-24 at 18:08 +0800, Dexuan Cui wrote:
> Signed-off-by: Dexuan Cui <dexuan.cui@intel.com>
> ---
>  meta/recipes-devtools/gcc/gcc-4.6.inc            |    2 +-
>  meta/recipes-devtools/gcc/gcc-package-target.inc |    2 ++
>  2 files changed, 3 insertions(+), 1 deletions(-)
> 
> diff --git a/meta/recipes-devtools/gcc/gcc-4.6.inc b/meta/recipes-devtools/gcc/gcc-4.6.inc
> index 7bf14e3..7cd0850 100644
> --- a/meta/recipes-devtools/gcc/gcc-4.6.inc
> +++ b/meta/recipes-devtools/gcc/gcc-4.6.inc
> @@ -1,6 +1,6 @@
>  require gcc-common.inc
>  
> -PR = "r17"
> +PR = "r18"
>  
>  # Third digit in PV should be incremented after a minor release
>  # happens from this branch on gcc e.g. currently its 4.6.0
> diff --git a/meta/recipes-devtools/gcc/gcc-package-target.inc b/meta/recipes-devtools/gcc/gcc-package-target.inc
> index f0f1a04..3076670 100644
> --- 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?

Cheers,

Richard
Dexuan Cui - Nov. 24, 2011, 3:37 p.m.
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
Richard Purdie - Nov. 24, 2011, 4:23 p.m.
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
Dexuan Cui - Nov. 24, 2011, 11:09 p.m.
Richard Purdie wrote on 2011-11-25:
> 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!
Hi RP,
Please use the new commit(the only change is the updated commit message):
http://git.yoctoproject.org/cgit/cgit.cgi/poky-contrib/commit/?h=dcui/self-hosted-v2&id=f6001f0b12cb561f5e08d3a5b0d61ab5fa924f40

Thanks,
-- Dexuan
Richard Purdie - Nov. 24, 2011, 11:34 p.m.
On Fri, 2011-11-25 at 07:09 +0800, Cui, Dexuan wrote:
> Richard Purdie wrote on 2011-11-25:
> > 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!
> Hi RP,
> Please use the new commit(the only change is the updated commit message):
> http://git.yoctoproject.org/cgit/cgit.cgi/poky-contrib/commit/?h=dcui/self-hosted-v2&id=f6001f0b12cb561f5e08d3a5b0d61ab5fa924f40

Thanks, I've merged this patch to master.

Cheers,

Richard

Patch

diff --git a/meta/recipes-devtools/gcc/gcc-4.6.inc b/meta/recipes-devtools/gcc/gcc-4.6.inc
index 7bf14e3..7cd0850 100644
--- a/meta/recipes-devtools/gcc/gcc-4.6.inc
+++ b/meta/recipes-devtools/gcc/gcc-4.6.inc
@@ -1,6 +1,6 @@ 
 require gcc-common.inc
 
-PR = "r17"
+PR = "r18"
 
 # Third digit in PV should be incremented after a minor release
 # happens from this branch on gcc e.g. currently its 4.6.0
diff --git a/meta/recipes-devtools/gcc/gcc-package-target.inc b/meta/recipes-devtools/gcc/gcc-package-target.inc
index f0f1a04..3076670 100644
--- 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