This is the mail archive of the gcc@gcc.gnu.org mailing list for the GCC project.
Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
---|---|---|
Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |
Other format: | [Raw text] |
It's possible for the plugin to implement every possible dlsym entry point
and then farm the calls out to each individual script pass internally, but
since GCC is already going to have to maintain a list of callbacks, it seems
better to piggyback on the list GCC already maintains.
I agree that the current callback proposal seems overly generic. Perhaps
registering specific hooks into the pass manager and other plugin targets
makes more sense?
typedef (void pluginpasshook)(tree t, void *data);
/* implemented in the pass manager */
register_plugin_event_after_pass(enum tree_pass, pluginpasshook fn, void* data)
Then, plugins would implement only a single entry point. GCC would inform
the plugin of the arguments passed to it, and the plugin would register
callbacks to perform its actual work.
/* implemented in the plugin */ void gcc_plugin(const char *arguments);
What kind of verisioning? I don't think that having a single compiled plugin
work with multiple versions of GCC should be a goal.
I'm a little worried about the colon separator. Windows file paths may
legally have colons. Is there some separator character (semicolon?) which is
not part of a path on any platform? Perhaps we shouldn't worry about it
since -rdynamic doesn't work on Windows anyway.
Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
---|---|---|
Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |