Re: [PATCH 05/11] Add -fno-rtti when building plugins.
Thanks; I've committed it to trunk as r201552. On Tue, 2013-08-06 at 14:53 -0700, Mike Stump wrote: > Ok. > > On Aug 6, 2013, at 3:43 AM, Dominique Dhumieres wrote: > >> Hence plugins that create passes will need to be built with RTTI > >> disabled in order to link against gcc, or they will fail to load, with > >> an error like: ... > > > > The same holds for darwin, hence the following patch is needed: > > > > --- ../_clean/gcc/testsuite/lib/plugin-support.exp 2013-08-05 > > 22:51:42.0 +0200 > > +++ gcc/testsuite/lib/plugin-support.exp2013-08-06 12:36:43.0 > > +0200 > > @@ -101,7 +101,7 @@ proc plugin-test-execute { plugin_src pl > > set optstr [concat $optstr " $op"] > > } > > } > > - set optstr [concat $optstr "-DIN_GCC -fPIC -shared -undefined > > dynamic_lookup"] > > + set optstr [concat $optstr "-DIN_GCC -fPIC -shared -fno-rtti -undefined > > dynamic_lookup"] > > } else { > > set plug_cflags $PLUGINCFLAGS > > set optstr "$includes $extra_flags -DIN_GCC -fPIC -shared -fno-rtti" > > > >
Re: [PATCH 05/11] Add -fno-rtti when building plugins.
Ok. On Aug 6, 2013, at 3:43 AM, Dominique Dhumieres wrote: >> Hence plugins that create passes will need to be built with RTTI >> disabled in order to link against gcc, or they will fail to load, with >> an error like: ... > > The same holds for darwin, hence the following patch is needed: > > --- ../_clean/gcc/testsuite/lib/plugin-support.exp2013-08-05 > 22:51:42.0 +0200 > +++ gcc/testsuite/lib/plugin-support.exp 2013-08-06 12:36:43.0 > +0200 > @@ -101,7 +101,7 @@ proc plugin-test-execute { plugin_src pl > set optstr [concat $optstr " $op"] > } > } > - set optstr [concat $optstr "-DIN_GCC -fPIC -shared -undefined > dynamic_lookup"] > + set optstr [concat $optstr "-DIN_GCC -fPIC -shared -fno-rtti -undefined > dynamic_lookup"] > } else { > set plug_cflags $PLUGINCFLAGS > set optstr "$includes $extra_flags -DIN_GCC -fPIC -shared -fno-rtti" > >
Re: [PATCH 05/11] Add -fno-rtti when building plugins.
On Tue, 2013-08-06 at 12:43 +0200, Dominique Dhumieres wrote: > > Hence plugins that create passes will need to be built with RTTI > > disabled in order to link against gcc, or they will fail to load, with > > an error like: ... > > The same holds for darwin, hence the following patch is needed: > > --- ../_clean/gcc/testsuite/lib/plugin-support.exp2013-08-05 > 22:51:42.0 +0200 > +++ gcc/testsuite/lib/plugin-support.exp 2013-08-06 12:36:43.0 > +0200 > @@ -101,7 +101,7 @@ proc plugin-test-execute { plugin_src pl > set optstr [concat $optstr " $op"] > } > } > - set optstr [concat $optstr "-DIN_GCC -fPIC -shared -undefined > dynamic_lookup"] > + set optstr [concat $optstr "-DIN_GCC -fPIC -shared -fno-rtti -undefined > dynamic_lookup"] > } else { > set plug_cflags $PLUGINCFLAGS > set optstr "$includes $extra_flags -DIN_GCC -fPIC -shared -fno-rtti" Sorry about that, and thanks for posting the patch. The patch looks correct to me, but I'm not a reviewer.
Re: [PATCH 05/11] Add -fno-rtti when building plugins.
> Hence plugins that create passes will need to be built with RTTI > disabled in order to link against gcc, or they will fail to load, with > an error like: ... The same holds for darwin, hence the following patch is needed: --- ../_clean/gcc/testsuite/lib/plugin-support.exp 2013-08-05 22:51:42.0 +0200 +++ gcc/testsuite/lib/plugin-support.exp2013-08-06 12:36:43.0 +0200 @@ -101,7 +101,7 @@ proc plugin-test-execute { plugin_src pl set optstr [concat $optstr " $op"] } } - set optstr [concat $optstr "-DIN_GCC -fPIC -shared -undefined dynamic_lookup"] + set optstr [concat $optstr "-DIN_GCC -fPIC -shared -fno-rtti -undefined dynamic_lookup"] } else { set plug_cflags $PLUGINCFLAGS set optstr "$includes $extra_flags -DIN_GCC -fPIC -shared -fno-rtti" TIA Dominique
Re: [PATCH 05/11] Add -fno-rtti when building plugins.
On 07/26/2013 09:04 AM, David Malcolm wrote: With the conversion of passes to C++ classes, plugins that add custom passes must create them by creating their own derived classes of the relevant subclass of opt_pass. gcc itself is built with -fno-rtti, hence there is no RTTI available for the opt_pass class hierarchy. Hence plugins that create passes will need to be built with RTTI disabled in order to link against gcc, or they will fail to load, with an error like: cc1: error: cannot load plugin ./selfassign.so ./selfassign.so: undefined symbol: _ZTI8opt_pass (aka "typeinfo for opt_pass"). gcc/testsuite * lib/plugin-support.exp (plugin-test-execute): Add -fno-rtti to optstr when building plugins. Approved for the trunk. jeff