From: Tatsuro M. <tma...@ya...> - 2015-03-03 07:16:12
|
Hello I have tried to update gcc for windows build of gnuplot from ver. 4.9.0 to 4.9.2. Some observations happened for both 64 bit and 32 bit build. Complier gcc-4.9.2-2 from MinGW-64 project 64 bit : exception:seh, thread:win32 32 bit : exception:dwarf2, thread:win32 Good point I can built gd-2.1.1 flawlessly for both 64 bit and 32 bit platform. Troubles ? ********** 64 bit ********** 1. I have met an error in compiling qt_conversion.cpp. ../../src/qtterminal/qt_conversion.cpp:129:21: error: 'isnan' was not declared in this scope The error above can be avoided using the following patch: --- src/qtterminal/qt_conversion.orig.cpp2014-04-21 03:46:32.000000000 +0900 +++ src/qtterminal/qt_conversion.cpp2015-02-25 08:40:45.485861900 +0900 @@ -126,7 +126,7 @@ QRgb* line = (QRgb*)(qimage.scanLine(n)); for (int m = 0; m < M; m++) { -if (isnan(*image)) +if (std::isnan(*image)) { image++; *line++ = 0x00000000; 2. For first plotting in wxt terminal, I see a waring message like an attached file. Here I write the text: You probably called setlocale() directly instead of using wxLocale and now there is a mismatch between C/C++ and Windows locale. Things are going to break, please only change locale by creating wxLocale objects to avoid this! The above message is written in wxWidgets-3.0.2/src/common/intl.cpp wxString wxLocale::GetInfo(wxLocaleInfo index, wxLocaleCategory cat) { const wxLanguageInfo * const info = wxGetLocale() ? GetLanguageInfo(wxGetLocale()->GetLanguage()) : NULL; if ( !info ) { // wxSetLocale() hadn't been called yet of failed, hence CRT must be // using "C" locale -- but check it to detect bugs that would happen if // this were not the case. wxASSERT_MSG( strcmp(setlocale(LC_ALL, NULL), "C") == 0, wxS("You probably called setlocale() directly instead ") wxS("of using wxLocale and now there is a ") wxS("mismatch between C/C++ and Windows locale.\n") wxS("Things are going to break, please only change ") wxS("locale by creating wxLocale objects to avoid this!") ); // Return the hard coded values for C locale. This is really the right // thing to do as there is no LCID we can use in the code below in this // case, even LOCALE_INVARIANT is not quite the same as C locale (the // only difference is that it uses %Y instead of %y in the date format // but this difference is significant enough). The message appears for both wxWidgets-3.0.2 and wxWidgets-3.0.1. However, I do not see the message building wxWidgets-3 by gcc-4.9.0. Any ideas to avoid the message? Otherwise, is the above problem of complier? ****** 32 bit ****** gnuplot crashes by segmentation fault when one use cairo based terminals. Segmentation fault : g_utf8_validate gutf8.c:1634 on MinGW-64 32 bit gcc-4.9.2 I have met a Segmentation fault at using gnuplot-5.1 built by myself on windows. The Segmentation fault seems to be related with the cairo based terminals. (The cairo based terminals use libglib.) Compiler gcc-4.9.2 (MinGW-w64 32bit. dwarf, win32 thread). Glib version : 2.42.1. Build from source. gdb message: Program received signal SIGSEGV, Segmentation fault. 0x6862318f in g_utf8_validate (str=0x2888a68 "-1", max_len=-1, end=0xffffffff) at ../../glib-2.42.1/glib/gutf8.c:1634 1634 *end = p; Program received signal SIGSEGV, Segmentation fault. 0x6862318f in g_utf8_validate (str=0xb28a68 "-1", max_len=-1, end=0xffffffff) at ../../glib-2.42.1/glib/gutf8.c:1634 1634 *end = p; Perhaps this is a bug of glib (2.42.1 and 2.33.14). I have filed the issue to the bug tracker of Gnome. https://bugzilla.gnome.org/show_bug.cgi?id=745485 At this moment, I abandon the complier update. However, is the trouble 2 for 64 bit case not a issue of gnuplot code? Regards Tatsuro |