[odb-users] odb-2.2.1 should install the odb.so plugin into $(gcc -print-file-name=plugin)

Boris Kolpackov boris at codesynthesis.com
Mon Mar 11 08:06:44 EDT 2013


Hi Hugo,

Hugo.Mildenberger at web.de <Hugo.Mildenberger at web.de> writes:

> And I was trying to say that one has to defer this test until ODB runs 
> on the designated target machine ("run-time test").

But we need the plugin include directory during build time.

Anyway, here is the plan that I think will address all the issues:

1. Add --{with,without}-gcc-plugin-dir option to ODB configure. This
   option can be used as follows:

   a) --with-gcc-plugin-dir: force installing into GCC's plugin dir
      with is obtainer by running $CXX -print-file-name=plugin

   b) --without-gcc-plugin-dir: force installing into $libexecdir/odb/
      even if test #2.b below succeeds.

   c) --with-gcc-plugin-dir=/path/to/gcc/plugin/dir: install plugin
      into the specified directory. This method will have to be used
      for cross-compilation.

2. If we are not cross-compiling, then:

   b) If $libexecdir is a prefix of `$CXX -print-file-name=plugin`,
      then install into the gcc plugin dir. One can use 
      --without-gcc-plugin-dir to override this.

   c) Use `$CXX -print-file-name=plugin`/include as the plugin include
      directory.

3. If we are cross-compiling then the user will have to specify the
   plugin include directory via the CPPFLAGS configure variable.

4. If the plugin is installed into the GCC plugin dir, then the ODB
   compiler driver will obtain the GCC's plugin dir at runtime,   
   append the plugin name (odb.so) and pass this absolute path to
   -fplugin. This way things will work consistently with GCC 4.5
   (which doesn't support short plugin name) and later.

Do you see any problems with this plan?

Boris



More information about the odb-users mailing list