<div dir="ltr">Hi Andrew<div><br></div><div>I add you to a discussion about a mxit change in libpurple which is causing some trouble to compile the source under MinGW's latest version of gcc.<br><br><div class="gmail_quote">El mié., 25 de marzo de 2015 a las 1:25, Jorge Villaseñor (<<a href="mailto:salinasv@gmail.com">salinasv@gmail.com</a>>) escribió:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><div class="gmail_extra"><div class="gmail_quote">On Mon, Mar 2, 2015 at 2:57 PM, Diego Nieto Cid <span dir="ltr"><<a href="mailto:dnietoc@gmail.com" target="_blank">dnietoc@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><span style="font-size:13.1999998092651px;line-height:19.7999992370605px">Hi</span><div style="font-size:13.1999998092651px;line-height:19.7999992370605px"><br></div><div style="font-size:13.1999998092651px;line-height:19.7999992370605px">I'm working on a plugin (pidgin-gntp) for windows and I followed the instructions listed in the BuildingWinPidgin wiki page.</div><div style="font-size:13.1999998092651px;line-height:19.7999992370605px"><br></div><div style="font-size:13.1999998092651px;line-height:19.7999992370605px">However, when installing MinGW I used their setup tool which downloaded the latest GCC package, version 4.8.1.</div></div></blockquote></div></div></div></blockquote><div><br></div><div>I finally used the recommended version (4.7.2) because the plugin was crashing pidgin on exit.</div><div><br></div><div>Apparently, it was a problem in the stack smashing protection library (libssp) used by GCC which was incompatible with the one pidgin linked to.</div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><div class="gmail_extra"><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><div style="font-size:13.1999998092651px;line-height:19.7999992370605px"><br></div><div style="font-size:13.1999998092651px;line-height:19.7999992370605px">During the compilation of libpurple/protocols/mxit/profile.c, I am getting an error related to the preprocessor macro _XOPEN_SOURCE.</div><div style="font-size:13.1999998092651px;line-height:19.7999992370605px"><br></div><div style="font-size:13.1999998092651px;line-height:19.7999992370605px">Apparently, MinGW header files expect it, if defined, to be a number and the macro is used in comparisons, as it is showed in the build log below.</div><div style="font-size:13.1999998092651px;line-height:19.7999992370605px"><br></div><div style="font-size:13.1999998092651px;line-height:19.7999992370605px">Revision <span style="font-size:13.1999998092651px">21baa608701d [1] introduced the definition of _XOPEN_SOURCE in the profile.c compilation unit. However, it is defined as an empty value leading to errors in system headers.</span></div><div style="font-size:13.1999998092651px;line-height:19.7999992370605px"><br></div><div style="font-size:13.1999998092651px;line-height:19.7999992370605px">There are several conformance levels that can be requested by defining _XOPEN_SOURCE, as described in the relevant man page [2].</div><div style="font-size:13.1999998092651px;line-height:19.7999992370605px"><br></div><div style="font-size:13.1999998092651px;line-height:19.7999992370605px">As a quick fix, I'm going to define it to the lowest level. But I wanted to check with you what was intended by defining that macro.</div></div></blockquote></div></div></div></blockquote><div><br></div><div>Using the lowest level worked just fine. So, with the definition</div><div><br></div><div>    #define _XOPEN_SOURCE 1</div><div><br></div><div>pidgin compiled correctly.</div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><div class="gmail_extra"><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><div style="font-size:13.1999998092651px;line-height:19.7999992370605px"><br></div><div style="font-size:13.1999998092651px;line-height:19.7999992370605px">If it is not clear what was intended, anybody knows what MinGW assumed in prior versions?</div></div></blockquote></div></div></div></blockquote><div><br></div><div>After installing version 4.7.2, I can confirm that MinGW did not check the value of that macro. It only tested whether it was defined or not.</div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><div class="gmail_extra"><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><div style="font-size:13.1999998092651px;line-height:19.7999992370605px"><br></div><div style="font-size:13.1999998092651px;line-height:19.7999992370605px">Thanks!</div><div style="font-size:13.1999998092651px;line-height:19.7999992370605px"><br></div><div style="font-size:13.1999998092651px;line-height:19.7999992370605px">--</div><div style="font-size:13.1999998092651px;line-height:19.7999992370605px">[1] <span style="font-size:13.1999998092651px"><a href="https://hg.pidgin.im/pidgin/main/rev/21baa608701d" target="_blank">https://hg.pidgin.im/pidgin/main/rev/21baa608701d</a></span></div><div style="font-size:13.1999998092651px;line-height:19.7999992370605px"><span style="font-size:13.1999998092651px">[2] </span><a href="http://man.he.net/man7/feature_test_macros" target="_blank">http://man.he.net/man7/feature_test_macros</a><span style="line-height:20px;font-size:small"> </span></div></div></blockquote></div></div></div></blockquote><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><div class="gmail_extra"><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><div style="font-size:13.1999998092651px;line-height:19.7999992370605px"><div style="font-size:13.1999998092651px;line-height:19.7999992370605px">Extract of the build log:</div><div style="font-size:13.1999998092651px;line-height:19.7999992370605px"><br></div><div style="font-size:13.1999998092651px;line-height:19.7999992370605px"><div>make[3]: Entering directory `/src/pidgin/src-2.10.11/<u></u>libpurple/protocols/mxit'</div><div>gcc.exe -O2 -Wall -Waggregate-return -Wcast-align -Wdeclaration-after-statement -Werror-implicit-function-<u></u>declaration -Wextra -Wno-sign-compare -Wno-unused-parameter -Winit-self -Wmissing-declarations -Wmissing-prototypes -Wnested-externs -Wpointer-arith -Wundef -Wstack-protector -fwrapv -fno-strict-overflow -Wno-missing-field-<u></u>initializers -Wformat-security -fstack-protector-all --param ssp-buffer-size=1 -pipe -mms-bitfields -g -DHAVE_CYRUS_SASL -DHAVE_CONFIG_H -DWIN32_LEAN_AND_MEAN -I. -I../../../../win32-dev/gtk_2_<u></u>0-2.14/include -I../../../../win32-dev/gtk_2_<u></u>0-2.14/include/glib-2.0 -I../../../../win32-dev/gtk_2_<u></u>0-2.14/lib/glib-2.0/include -I../../../libpurple -I../../../libpurple/win32 -I../../.. -o profile.o -c profile.c</div><div>In file included from d:\diego\programacion\mingw-0.<u></u>6.2\include\time.h:15:0,</div><div>                 from profile.c:27:</div><div>d:\diego\programacion\mingw-0.<u></u>6.2\include\_mingw.h:396:21: error: operator '<' has no left operand</div><div> #  if _XOPEN_SOURCE < 500</div><div>                     ^</div><div>d:\diego\programacion\mingw-0.<u></u>6.2\include\_mingw.h:399:23: error: operator '<' has no left operand</div><div> #  elif _XOPEN_SOURCE < 600</div><div>                       ^</div><div>d:\diego\programacion\mingw-0.<u></u>6.2\include\_mingw.h:402:23: error: operator '<' has no left operand</div><div> #  elif _XOPEN_SOURCE < 700</div><div>                       ^</div><div>make[3]: *** [profile.o] Error 1</div></div></div></div></blockquote></div><br></div></div><div dir="ltr"><div class="gmail_extra">This looks like a mxit change. I am not sure they Andrew monitors this mailing list. I think you may have better luck if you address the mxit development forums or him directly.<br></div></div></blockquote><div><br></div><div>Thanks Jorge, I added Andrew to the discussion.</div></div></div></div>