|
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
|