2012/3/12 Ludovic Courtès <ludovic.cour...@inria.fr>:
> Hi,
>
> Ian Lance Taylor <i...@google.com> skribis:
>
>> ludovic.cour...@inria.fr (Ludovic Courtès) writes:
>>
>>> Ian Lance Taylor <i...@google.com> skribis:
>>>
>>>> ludovic.cour...@inria.fr (Ludovic Courtès) writes:
>>>>
>>>>> Ian Lance Taylor <i...@google.com> skribis:
>>>>>
>>>>>> ludovic.cour...@inria.fr (Ludovic Courtès) writes:
>>>>>>
>>>>>>> However, this means that plug-ins must now be built with g++, except
>>>>>>> when GCC was configured with --disable-build-poststage1-with-cxx.  This
>>>>>>> seems difficult to deal with, for plug-in writers.
>>>>>>
>>>>>> This is an unfortunate truth during our transition to building gcc with
>>>>>> C++.  There is going to be a period of time when the compiler may be
>>>>>> built as either C or C++.  The end goal is for the compiler to always be
>>>>>> built with C++, but until we reach that state I think plugin writers
>>>>>> will have to test.
>>>>>
>>>>> What about wrapping the C API in extern "C"?
>>>>
>>>> We eventually will want the internal APIs to be C++, so this transition
>>>> will inevitably happen at some point.
>>>
>>> I understand the goal.  However, should a C++ API be added, the C-only
>>> part could still be kept extern "C".
>>
>> We are talking here about internal GCC functions.  We are not talking
>> about an actual defined API.  The defined API is in plugin-api.h, and
>> that remains extern "C".  There is no "C-only part" of the internal API.
>
> Hmm <plugin-api.h> is for linker plug-ins; <gcc-plugin.h> provides
> nothing more than the event mechanism.
>
> Symbols declared in <tree.h> are mangled, for instance.  I’m not sure
> whether <tree.h> is considered internal or not, but I can hardly see
> what kind of plug-in could be written without using it.
>
>>> For 4.7.0, as Duncan Sands writes, it would be a very helpful for the
>>> ABI to be independent of configuration options–i.e., either mangled or
>>> unmangled symbols.
>>
>> That just postpones the pain to gcc 4.8.0.
>
> In 4.8 things will be easier: plug-ins will have to be compiled with g++.
>
> In 4.7, finding out whether gcc or g++ should be used is left as an
> exercise to the plug-in writer, which is inconvenient at best.

Well, that is what you get for having plugins without a proper plugin API ;)
It's not going to change for 4.7.  Anybody who is willing to attack the
fundamental plugin issue is advised to develop a separate, stable
(and thus forward-looking) C plugin interface (and make all other
symbols hidden again).

Richard.

> Thanks,
> Ludo’.

Reply via email to