Re: [PATCH 05/11] Add -fno-rtti when building plugins.

2013-08-06 Thread Dominique Dhumieres
 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.

2013-08-06 Thread David Malcolm
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.

2013-08-06 Thread Mike Stump
Ok.

On Aug 6, 2013, at 3:43 AM, Dominique Dhumieres domi...@lps.ens.fr 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.

2013-08-06 Thread David Malcolm
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 domi...@lps.ens.fr 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.

2013-07-29 Thread Jeff Law

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