Hello,
I try to use the plugin pragma-plugin.c which is given in the testsuite
(gcc/testsuite/g++.dg/plugin/pragma_plugin.c), I have compiled it as a
shared library.
If I try it on a simple c file it works, however, if I use -flto it
causes an error:
gcc -fplugin=./pragma_plugin.so -flto test.c
lto1: error: cannot load plugin ../pragma_plugin.so
../pragma_plugin.so: undefined symbol: c_register_pragma
lto-wrapper: /usr/bin/gcc returned 1 exit status
/usr/lib/gcc/i486-slackware-linux/4.7.0/../../../../i486-slackware-linux/bin/ld:
lto-wrapper failed
collect2: error: ld returned 1 exit status
I don't know much about LTO but I guess it is important to be able to
use langage specific function (such as c_register_pragma) in plugin even
when using lto. I have this need in others plugins (I would like to have
pragma support in MELT). Maybe a solution could be to define
c_register_pragma and others related functions as weak references
(however it mights not works for all plateform).
What would be the better way to patch this?
Pierre Vittet