[Geany-Devel] Plugins Quality Check

Matthew Brush mbrush at xxxxx
Sat Feb 22 00:48:36 UTC 2014


On 14-02-21 11:54 AM, Lex Trotman wrote:
> On 22 February 2014 04:50, Dimitar Zhekov <dimitar.zhekov at gmail.com> wrote:
>> On Fri, 21 Feb 2014 16:52:51 +0100
>> Colomban Wendling <lists.ban at herbesfolles.org> wrote:
>>
>>>>>> [...]
>>>>
>>>> OK, I didn't think it was OK to assume GCC was the compiler,
>>>
>>> It isn't, indeed.  Although well, to be fair we probably have no idea
>>> what happens if it's not GCC-like.  Or maybe I even remember there was
>>> problems with MSVC?
>>

I guess it would be the same result as passing something like 
`-Wl,--export-dynamic` on platforms that don't support it (ie. 
compilation/linking failure). Even a GCC-clone like Clang has some 
different options, for example to limit errors is `-fmax-errors=N` on 
GCC and `-ferror-limit=N` on Clang (at least last time I tried). So I 
guess even if a compiler is GCC-like, passing an invalid `-Wfoo` might 
be bad, if not fatal.

MSVC is a totally different story WRT to flags of course :)

>> We disabled MSVC some time ago (see "geany-plugins fail to build with
>> msvc"). In short, cl recognices "template" as C keyword :)
>
> I thought Matthew fixed that so we could use C++ plugins.
>

Only in the headers, if 'template' is still used in source files it 
would choke a compiler that thought it was a C keyword.

>
> and the
>> CFLAGS / LDFLAGS obtained from pkg-config under win~1 are suitable
>> for gcc, not MSVC.
>

pkg-config on Windows supports an option called `--msvc-syntax` which 
presumably outputs CL-compatible flags.

> But that is indeed a problem, presumably because things like gtk
> binaries have been cross compiled for win, not with msvc.  Also is it

It shouldn't matter, C has a defined ABI AFAIK.

> still true that g++ and msvc++ binaries can't be linked?
>

I think just because of C++ not having a defined ABI and compilers 
choosing to implement name-mangling and such differently. I don't think 
it matters for Geany though since nothing external would be linked with 
C++ symbols, even Scintilla's exposed stuff is plain/extern C AFAIK.

Cheers,
Matthew Brush



More information about the Devel mailing list