Cross-compiling Pidgin 2.10.7: multiple definition of `___stack_chk_fail'

Konrad Gräfe kglists at teamblind.de
Sun Feb 9 19:49:38 EST 2014


Am 07.02.2014 16:47, schrieb Daniel Atallah:
> On Fri, Feb 7, 2014 at 9:02 AM, Konrad Gräfe <kglists at teamblind.de> wrote:
>
>> Hello there,
>> Additionally I had to modify libpurple/protocols/mxit/markup.c as it
>> uses uint8_t without including stdint.h (though I don't understand why
>> others aren't affected). See the attached fix_mxit_missing_header.patch.
> I think the right fix is to use the glib data types, which will be exposed
> at that time.
> I'm not sure why this isn' t a problem building with the native compiler.
You're right. I attached another patch although I think that you
wouldn't need it. ;)

> Furthermore I adopted some patches to fix some recurring warnings in
>> Pidgin 2.10.9 (fix_errno_warning_mingw.patch) and win32/gtk_2_0-2.14
>> (fix_gtk_apple_cc_warning.patch). I hope I labeled the sources
>> sufficiently as I did not made the Patches by myself.
>>
> Hmm... those errno constants ideally would not be defined - they're not
> part of the normal windows headers.
> Where are they being defined?
Please see the attached make.log. libpurple/internal.h includes errno.h
in line 86.

> The latter isn't something that we maintain, so I don't think we should be
> patching it.
I know. It has been fixed in the current version of GTK+ anyway. I just
attached it in case someone else is stumbling over this thread.

> Unfortunately I still have a problem: the officially distributed Pidgin
>> is not able to load plugins I built against "my" Pidgin. It says it
>> could not found some symbols but it didn't say which one and I had no
>> time to investigate it any further. "My" Pidgin is running well on
>> Windows and loads my plugin just fine. Does anyone have any thoughts on
>> that?
>>
> It's hard to say without more details.
> The Dependency Walker "depends" utility and/or cygwin's "ldd" command may
> shed some light.
>
My plugin wants a function named "InterlockedCompareExchange at 12" from
libpurple.dll which my libpurple.dll does offer and the official one
does not. From what Google says that was a bug in mingw that has been
resolved though I cannot find a change log that says when the fix was
introduced exactly. Additionally [1] says that there are binary
incompatibilities between libraries compiled with mingw32-gcc before and
after version 4.7.0 so I guess version 4.7.0 or later is required and I
have to install a more recent mingw32-gcc manually instead of using any
Ubuntu package, hm.

>
>> Besides I would like to know what versions of the compiler and the
>> w32api were used to build the official Pidgin as this is somewhat
>> unclear in the wiki [1].
>>
> As per the mingw site linked to from the BuildingWinPidgin wiki page:
>  * gcc 4.7.2
>  * win32api 3.17.2
Thank you.

Regards,
Konrad Gräfe

[1]
http://sourceforge.net/projects/mingw/files/MinGW/Base/gcc/Version4/gcc-4.7.2-1/
-------------- next part --------------
A non-text attachment was scrubbed...
Name: make.log
Type: text/x-log
Size: 7255 bytes
Desc: not available
URL: <https://pidgin.im/pipermail/devel/attachments/20140210/c97035d7/attachment.bin>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: fix_mxit_use_glib_data_type_guint8.patch
Type: text/x-patch
Size: 532 bytes
Desc: not available
URL: <https://pidgin.im/pipermail/devel/attachments/20140210/c97035d7/attachment-0001.bin>


More information about the Devel mailing list