[OE-core] [PATCH] gcc-4.6: Let G++ relocate gxx-include-dir when using --sysroot option

Martin Jansa martin.jansa at gmail.com
Tue Dec 20 09:07:56 UTC 2011


On Fri, Dec 16, 2011 at 01:24:24PM -0800, Khem Raj wrote:
> On (15/12/11 12:16), Richard Purdie wrote:
> > On Wed, 2011-12-14 at 07:49 -0800, Khem Raj wrote:
> > > On Wed, Dec 14, 2011 at 2:02 AM, Richard Purdie
> > > <richard.purdie at linuxfoundation.org> wrote:
> > > > Hi Khem,
> > > >
> > > > What's puzzling me is that reading through this patch, we already do
> > > > what this patch is doing?
> > > >
> > > > Where is the difference which this patch is fixing?
> > > >
> > > 
> > > this does essentially what we were doing earlier but this one is going
> > > to go upstream
> > 
> > Yes, that is good and I'm fine with the patch for that reason.
> 
> there is additional detail that this patch does which is that in order
> to make gxx-includes to be sysroot relative --with-cxx-include option to
> be also specified relative to initials sysroot during configure time
> 
> e.g. --with-sysroot=SYSROOT --with-gxx-include-dir=SYSROOT/usr/include/c++
> 
> since the original behavior of --with-gxx-include-dir is to specify an
> absolute path that is preserved whereas the patch we have in OE relocates
> gxx-include-dir regardless.Therefore in order to adopt this patch we have
> to use the above syntax which was original syntax before the above patch
> and would make up forward compatible provided this patch makes into gcc
> upstream.
> 
> > 
> > > 
> > > > I appreciate that patch adds in the prefix to the --with-gxx-include-dir
> > > > option but it then removes it again during configure so this should be a
> > > > null op. Both versions of the patch set the "1" bit in gcc/cppdefault.c.
> > > >
> > > > So where is the change this patch makes which fixes things?
> > > 
> > > changing --with-gxx-include-dir to be within sysroot triggers the
> > > relocation code.
> > 
> > But we were already triggering the relocation code?
> > 
> > I can't see *any* functionality difference between these, they should
> > both just give the same result as far as I can tell...
> > 
> same functionality but with a different usage see above
> 
> > Claiming it fixes things is therefore concerning me.
> 
> correct it does not fix anything actually that I know was broken before
> Thinking out loud given that with-gxx-include-dir is absolute in nature it could be
> the original patch we have, does not work in some weird case since the
> absolute path we use is still /usr/include/c++ during configure time.
> although I would expect that the include poisoning warning will report it if that
> happened
> 
> -Khem

Is there some pending patch for meta-oe/gcc?

I have some issues while rebuilding toolchain from scratch after this
patchset:

armv7a:
| /OE/shr-core/tmp-eglibc/work-shared/gcc-4.6.2+svnr181430-r23/gcc-4_6-branch/gcc/rtl.h:2163:12: note: expected 'enum machine_mode' but argument is of type 'int'
| gcc -c   -isystem/OE/shr-core/tmp-eglibc/sysroots/x86_64-linux/usr/include -O2 -pipe -DIN_GCC -DCROSS_DIRECTORY_STRUCTURE  -W -Wall -Wwrite-strings -Wcast-qual -Wstrict-prototypes -Wmissing-prototypes -Wmissing-format-attribute -pedantic -Wno-long-long -Wno-variadic-macros -Wno-overlength-strings -Wold-style-definition -Wc++-compat   -DHAVE_CONFIG_H -I. -I. -I/OE/shr-core/tmp-eglibc/work-shared/gcc-4.6.2+svnr181430-r23/gcc-4_6-branch/gcc -I/OE/shr-core/tmp-eglibc/work-shared/gcc-4.6.2+svnr181430-r23/gcc-4_6-branch/gcc/. -I/OE/shr-core/tmp-eglibc/work-shared/gcc-4.6.2+svnr181430-r23/gcc-4_6-branch/gcc/../include -I/OE/shr-core/tmp-eglibc/work-shared/gcc-4.6.2+svnr181430-r23/gcc-4_6-branch/gcc/../libcpp/include  -I/OE/shr-core/tmp-eglibc/work-shared/gcc-4.6.2+svnr181430-r23/gcc-4_6-branch/gcc/../libdecnumber -I/OE/shr-core/tmp-eglibc/work-shared/gcc-4.6.2+svnr181430-r23/gcc-4_6-branch/gcc/../libdecnumber/dpd -I../libdecnumber    /OE/shr-core/tmp-eglibc/work-shared/gcc-4.6.2+svnr181430-r23/gcc-4_6-branch/gcc/calls.c -o calls.o
| /OE/shr-core/tmp-eglibc/work-shared/gcc-4.6.2+svnr181430-r23/gcc-4_6-branch/gcc/calls.c: In function 'initialize_argument_information':
| /OE/shr-core/tmp-eglibc/work-shared/gcc-4.6.2+svnr181430-r23/gcc-4_6-branch/gcc/calls.c:1089:9: error: 'STACK_CHECK_MAX_VAR_SIZE' undeclared (first use in this function)
| /OE/shr-core/tmp-eglibc/work-shared/gcc-4.6.2+svnr181430-r23/gcc-4_6-branch/gcc/calls.c:1089:9: note: each undeclared identifier is reported only once for each function it appears in
| make[2]: *** [calls.o] Error 1

armv4t:
| gcc -c   -isystem/OE/shr-core/tmp-eglibc/sysroots/x86_64-linux/usr/include -O2 -pipe -DIN_GCC -DCROSS_DIRECTORY_STRUCTURE  -W -Wall -Wwrite-strings -Wcast-qual -Wstrict-prototypes -Wmissing-prototypes -Wmissing-format-attribute -pedantic -Wno-long-long -Wno-variadic-macros -Wno-overlength-strings -Wold-style-definition -Wc++-compat   -DHAVE_CONFIG_H -I. -I. -I/OE/shr-core/tmp-eglibc/work-shared/gcc-4.6.2+svnr181430-r23/gcc-4_6-branch/gcc -I/OE/shr-core/tmp-eglibc/work-shared/gcc-4.6.2+svnr181430-r23/gcc-4_6-branch/gcc/. -I/OE/shr-core/tmp-eglibc/work-shared/gcc-4.6.2+svnr181430-r23/gcc-4_6-branch/gcc/../include -I/OE/shr-core/tmp-eglibc/work-shared/gcc-4.6.2+svnr181430-r23/gcc-4_6-branch/gcc/../libcpp/include  -I/OE/shr-core/tmp-eglibc/work-shared/gcc-4.6.2+svnr181430-r23/gcc-4_6-branch/gcc/../libdecnumber -I/OE/shr-core/tmp-eglibc/work-shared/gcc-4.6.2+svnr181430-r23/gcc-4_6-branch/gcc/../libdecnumber/dpd -I../libdecnumber    insn-output.c -o insn-output.o
| In file included from insn-emit.c:23:0:
| /OE/shr-core/tmp-eglibc/work-shared/gcc-4.6.2+svnr181430-r23/gcc-4_6-branch/gcc/config/arm/constraints.md: In function 'satisfies_constraint_Uu':
| /OE/shr-core/tmp-eglibc/work-shared/gcc-4.6.2+svnr181430-r23/gcc-4_6-branch/gcc/config/arm/constraints.md:353:6: warning: implicit declaration of function 'thumb1_legitimate_address_p' [-Wimplicit-function-declaration]
| insn-opinit.c: In function 'init_all_optabs':
| insn-opinit.c:25:5: warning: implicit declaration of function 'set_widening_optab_handler' [-Wimplicit-function-declaration]
| insn-opinit.c:30:7: error: 'TARGET_IDIV' undeclared (first use in this function)
| insn-opinit.c:30:7: note: each undeclared identifier is reported only once for each function it appears in
| insn-opinit.c:813:32: error: 'vec_load_lanes_optab' undeclared (first use in this function)
| insn-opinit.c:833:32: error: 'vec_store_lanes_optab' undeclared (first use in this function)
| insn-opinit.c:1009:24: error: 'vec_widen_sshiftl_lo_optab' undeclared (first use in this function)
| insn-opinit.c:1011:24: error: 'vec_widen_ushiftl_lo_optab' undeclared (first use in this function)
| insn-opinit.c:1021:24: error: 'vec_widen_sshiftl_hi_optab' undeclared (first use in this function)
| insn-opinit.c:1023:24: error: 'vec_widen_ushiftl_hi_optab' undeclared (first use in this function)
| make[2]: *** [insn-opinit.o] Error 1
| make[2]: *** Waiting for unfinished jobs....

Cheers,
-- 
Martin 'JaMa' Jansa     jabber: Martin.Jansa at gmail.com
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 198 bytes
Desc: Digital signature
URL: <http://lists.openembedded.org/pipermail/openembedded-core/attachments/20111220/b868b081/attachment-0002.sig>


More information about the Openembedded-core mailing list