[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:37:34 UTC 2011


On Tue, Dec 20, 2011 at 10:07:56AM +0100, Martin Jansa wrote:
> 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....

and different one for armv5te too:
| 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/cgraphbuild.c -o cgraphbuild.o
| /OE/shr-core/tmp-eglibc/work-shared/gcc-4.6.2+svnr181430-r23/gcc-4_6-branch/gcc/config/arm/arm.c: In function 'bounds_check':
| /OE/shr-core/tmp-eglibc/work-shared/gcc-4.6.2+svnr181430-r23/gcc-4_6-branch/gcc/config/arm/arm.c:9204:5: warning: format not a string literal and no format arguments [-Wformat-security]
| /OE/shr-core/tmp-eglibc/work-shared/gcc-4.6.2+svnr181430-r23/gcc-4_6-branch/gcc/config/arm/arm.c: In function 'arm_print_operand':
| /OE/shr-core/tmp-eglibc/work-shared/gcc-4.6.2+svnr181430-r23/gcc-4_6-branch/gcc/config/arm/arm.c:16786:4: warning: format not a string literal and no format arguments [-Wformat-security]
| /OE/shr-core/tmp-eglibc/work-shared/gcc-4.6.2+svnr181430-r23/gcc-4_6-branch/gcc/config/arm/arm.c: In function 'arm_init_neon_builtins':
| /OE/shr-core/tmp-eglibc/work-shared/gcc-4.6.2+svnr181430-r23/gcc-4_6-branch/gcc/config/arm/arm.c:19270:4: error: 'neon_struct_operand' undeclared (first use in this function)
| /OE/shr-core/tmp-eglibc/work-shared/gcc-4.6.2+svnr181430-r23/gcc-4_6-branch/gcc/config/arm/arm.c:19270:4: note: each undeclared identifier is reported only once for each function it appears in
| /OE/shr-core/tmp-eglibc/work-shared/gcc-4.6.2+svnr181430-r23/gcc-4_6-branch/gcc/config/arm/arm.c: At top level:
| /OE/shr-core/tmp-eglibc/work-shared/gcc-4.6.2+svnr181430-r23/gcc-4_6-branch/gcc/config/arm/arm.c:6753:1: warning: 'arm_legitimate_constant_p' defined but not used [-Wunused-function]
| /OE/shr-core/tmp-eglibc/work-shared/gcc-4.6.2+svnr181430-r23/gcc-4_6-branch/gcc/config/arm/arm.c:22697:1: warning: 'arm_array_mode_supported_p' defined but not used [-Wunused-function]
| make[2]: *** [arm.o] Error 1
| make[2]: *** Waiting for unfinished jobs....
| rm gcov.pod cpp.pod gfdl.pod gcc.pod fsf-funding.pod
| make[2]: Leaving directory `/OE/shr-core/tmp-eglibc/work/armv5te-oe-linux-gnueabi/gcc-cross-initial/4.6.2+svnr181430-r23/gcc-4_6-branch/build.x86_64-linux.arm-oe-linux-gnueabi/gcc'
| make[1]: *** [all-gcc] Error 2
| make[1]: Leaving directory `/OE/shr-core/tmp-eglibc/work/armv5te-oe-linux-gnueabi/gcc-cross-initial/4.6.2+svnr181430-r23/gcc-4_6-branch/build.x86_64-linux.arm-oe-linux-gnueabi'
| make: *** [all] Error 2

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/c92bab05/attachment-0002.sig>


More information about the Openembedded-core mailing list