I installed Ubuntu 14.10 (not Kubuntu) with gnome and the test program now has different results with valgrind. I'll put them here in hope it will help you in some way. I don't know what to do and I'll leave it at that for now.
Detailed log goes attached.
jaime@jaime-U36SG:~/tese/mathGL2$ sudo valgrind --leak-check=full --undef-value-errors=no ./mathGL2
==11114== Memcheck, a memory error detector
==11114== Copyright (C) 2002-2013, and GNU GPL'd, by Julian Seward et al.
==11114== Using Valgrind-3.10.0 and LibVEX; rerun with -h for copyright info
==11114== Command: ./mathGL2
==11114==
==11114==
==11114== HEAP SUMMARY:
==11114== in use at exit: 44,035,997 bytes in 1,186 blocks
==11114== total heap usage: 14,018 allocs, 12,832 frees, 188,879,206 bytes allocated
==11114==
==11114== 30 bytes in 1 blocks are possibly lost in loss record 93 of 320
==11114== at 0x4C2B100: operator new(unsigned long) (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
==11114== by 0x5615668: std::string::_Rep::_S_create(unsigned long, unsigned long, std::allocator<char> const&) (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.20)
==11114== by 0x56156F3: std::string::_M_mutate(unsigned long, unsigned long, unsigned long) (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.20)
==11114== by 0x5615D2D: std::string::_M_replace_safe(unsigned long, unsigned long, char const*, unsigned long) (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.20)
==11114== by 0x4EA5BA3: mglCanvas::mglCanvas(int, int) (in /usr/local/lib/libmgl.so.7.4.0)
==11114== by 0x5003CD2: mglCanvasWnd::mglCanvasWnd() (in /usr/local/lib/libmgl.so.7.4.0)
==11114== by 0x534A09C: mgl_create_graph_fltk (in /usr/local/lib/libmgl-fltk.so.7.4.0)
==11114== by 0x400F1D: mglFLTK::mglFLTK(char const*) (fltk.h:49)
==11114== by 0x400C97: main (main.cpp:31)
==11114==
==11114== 344 bytes in 5 blocks are possibly lost in loss record 257 of 320
==11114== at 0x4C2B100: operator new(unsigned long) (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
==11114== by 0x56184FE: std::basic_string<wchar_t, std::char_traits<wchar_t>, std::allocator<wchar_t> >::_Rep::_S_create(unsigned long, unsigned long, std::allocator<wchar_t> const&) (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.20)
==11114== by 0x56191F8: std::basic_string<wchar_t, std::char_traits<wchar_t>, std::allocator<wchar_t> >::_Rep::_M_clone(std::allocator<wchar_t> const&, unsigned long) (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.20)
==11114== by 0x56192AF: std::basic_string<wchar_t, std::char_traits<wchar_t>, std::allocator<wchar_t> >::reserve(unsigned long) (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.20)
==11114== by 0x4EA3B31: mgl_ftoa(double, char const*) (in /usr/local/lib/libmgl.so.7.4.0)
==11114== by 0x4E79FCA: mgl_tick_text(double, double, double, double, int, std::basic_string<wchar_t, std::char_traits<wchar_t>, std::allocator<wchar_t> > const&, double, char const*) (in /usr/local/lib/libmgl.so.7.4.0)
==11114== by 0x4E7F8E8: mglCanvas::LabelTicks(mglAxis&) (in /usr/local/lib/libmgl.so.7.4.0)
==11114== by 0x4E81C34: mglCanvas::AdjustTicks(char const*, bool, std::string) (in /usr/local/lib/libmgl.so.7.4.0)
==11114== by 0x4EA1F3F: mglCanvas::DefaultPlotParam() (in /usr/local/lib/libmgl.so.7.4.0)
==11114== by 0x50050EF: mglCanvasWnd::SetDrawFunc(int (*)(mglBase*, void*), void*, void (*)(void*)) (in /usr/local/lib/libmgl.so.7.4.0)
==11114== by 0x534A0C7: mgl_create_graph_fltk (in /usr/local/lib/libmgl-fltk.so.7.4.0)
==11114== by 0x400F1D: mglFLTK::mglFLTK(char const*) (fltk.h:49)
==11114==
==11114== 344 bytes in 5 blocks are possibly lost in loss record 258 of 320
==11114== at 0x4C2B100: operator new(unsigned long) (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
==11114== by 0x56184FE: std::basic_string<wchar_t, std::char_traits<wchar_t>, std::allocator<wchar_t> >::_Rep::_S_create(unsigned long, unsigned long, std::allocator<wchar_t> const&) (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.20)
==11114== by 0x56191F8: std::basic_string<wchar_t, std::char_traits<wchar_t>, std::allocator<wchar_t> >::_Rep::_M_clone(std::allocator<wchar_t> const&, unsigned long) (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.20)
==11114== by 0x56192AF: std::basic_string<wchar_t, std::char_traits<wchar_t>, std::allocator<wchar_t> >::reserve(unsigned long) (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.20)
==11114== by 0x4EA3B31: mgl_ftoa(double, char const*) (in /usr/local/lib/libmgl.so.7.4.0)
==11114== by 0x4E79FCA: mgl_tick_text(double, double, double, double, int, std::basic_string<wchar_t, std::char_traits<wchar_t>, std::allocator<wchar_t> > const&, double, char const*) (in /usr/local/lib/libmgl.so.7.4.0)
==11114== by 0x4E7F8E8: mglCanvas::LabelTicks(mglAxis&) (in /usr/local/lib/libmgl.so.7.4.0)
==11114== by 0x4E81C7E: mglCanvas::AdjustTicks(char const*, bool, std::string) (in /usr/local/lib/libmgl.so.7.4.0)
==11114== by 0x4EA1F3F: mglCanvas::DefaultPlotParam() (in /usr/local/lib/libmgl.so.7.4.0)
==11114== by 0x50050EF: mglCanvasWnd::SetDrawFunc(int (*)(mglBase*, void*), void*, void (*)(void*)) (in /usr/local/lib/libmgl.so.7.4.0)
==11114== by 0x534A0C7: mgl_create_graph_fltk (in /usr/local/lib/libmgl-fltk.so.7.4.0)
==11114== by 0x400F1D: mglFLTK::mglFLTK(char const*) (fltk.h:49)
==11114==
==11114== 344 bytes in 5 blocks are possibly lost in loss record 259 of 320
==11114== at 0x4C2B100: operator new(unsigned long) (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
==11114== by 0x56184FE: std::basic_string<wchar_t, std::char_traits<wchar_t>, std::allocator<wchar_t> >::_Rep::_S_create(unsigned long, unsigned long, std::allocator<wchar_t> const&) (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.20)
==11114== by 0x56191F8: std::basic_string<wchar_t, std::char_traits<wchar_t>, std::allocator<wchar_t> >::_Rep::_M_clone(std::allocator<wchar_t> const&, unsigned long) (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.20)
==11114== by 0x56192AF: std::basic_string<wchar_t, std::char_traits<wchar_t>, std::allocator<wchar_t> >::reserve(unsigned long) (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.20)
==11114== by 0x4EA3B31: mgl_ftoa(double, char const*) (in /usr/local/lib/libmgl.so.7.4.0)
==11114== by 0x4E79FCA: mgl_tick_text(double, double, double, double, int, std::basic_string<wchar_t, std::char_traits<wchar_t>, std::allocator<wchar_t> > const&, double, char const*) (in /usr/local/lib/libmgl.so.7.4.0)
==11114== by 0x4E7F8E8: mglCanvas::LabelTicks(mglAxis&) (in /usr/local/lib/libmgl.so.7.4.0)
==11114== by 0x4E81CC8: mglCanvas::AdjustTicks(char const*, bool, std::string) (in /usr/local/lib/libmgl.so.7.4.0)
==11114== by 0x4EA1F3F: mglCanvas::DefaultPlotParam() (in /usr/local/lib/libmgl.so.7.4.0)
==11114== by 0x50050EF: mglCanvasWnd::SetDrawFunc(int (*)(mglBase*, void*), void*, void (*)(void*)) (in /usr/local/lib/libmgl.so.7.4.0)
==11114== by 0x534A0C7: mgl_create_graph_fltk (in /usr/local/lib/libmgl-fltk.so.7.4.0)
==11114== by 0x400F1D: mglFLTK::mglFLTK(char const*) (fltk.h:49)
==11114==
==11114== 344 bytes in 5 blocks are possibly lost in loss record 260 of 320
==11114== at 0x4C2B100: operator new(unsigned long) (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
==11114== by 0x56184FE: std::basic_string<wchar_t, std::char_traits<wchar_t>, std::allocator<wchar_t> >::_Rep::_S_create(unsigned long, unsigned long, std::allocator<wchar_t> const&) (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.20)
==11114== by 0x56191F8: std::basic_string<wchar_t, std::char_traits<wchar_t>, std::allocator<wchar_t> >::_Rep::_M_clone(std::allocator<wchar_t> const&, unsigned long) (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.20)
==11114== by 0x56192AF: std::basic_string<wchar_t, std::char_traits<wchar_t>, std::allocator<wchar_t> >::reserve(unsigned long) (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.20)
==11114== by 0x4EA3B31: mgl_ftoa(double, char const*) (in /usr/local/lib/libmgl.so.7.4.0)
==11114== by 0x4E79FCA: mgl_tick_text(double, double, double, double, int, std::basic_string<wchar_t, std::char_traits<wchar_t>, std::allocator<wchar_t> > const&, double, char const*) (in /usr/local/lib/libmgl.so.7.4.0)
==11114== by 0x4E7F8E8: mglCanvas::LabelTicks(mglAxis&) (in /usr/local/lib/libmgl.so.7.4.0)
==11114== by 0x4EA1F3F: mglCanvas::DefaultPlotParam() (in /usr/local/lib/libmgl.so.7.4.0)
==11114== by 0x50050EF: mglCanvasWnd::SetDrawFunc(int (*)(mglBase*, void*), void*, void (*)(void*)) (in /usr/local/lib/libmgl.so.7.4.0)
==11114== by 0x534A0C7: mgl_create_graph_fltk (in /usr/local/lib/libmgl-fltk.so.7.4.0)
==11114== by 0x400F1D: mglFLTK::mglFLTK(char const*) (fltk.h:49)
==11114== by 0x400C97: main (main.cpp:31)
==11114==
==11114== 40,968 bytes in 1 blocks are possibly lost in loss record 304 of 320
==11114== at 0x4C2B820: operator new[](unsigned long) (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
==11114== by 0x4EAD161: mglStack<mglGroup>::clear() (in /usr/local/lib/libmgl.so.7.4.0)
==11114== by 0x4EA6020: mglCanvas::ClearFrame() (in /usr/local/lib/libmgl.so.7.4.0)
==11114== by 0x4F924AD: mglCanvas::Clf(mglColor) (in /usr/local/lib/libmgl.so.7.4.0)
==11114== by 0x4F52B41: mglCanvas::NewFrame() (in /usr/local/lib/libmgl.so.7.4.0)
==11114== by 0x50050DB: mglCanvasWnd::SetDrawFunc(int (*)(mglBase*, void*), void*, void (*)(void*)) (in /usr/local/lib/libmgl.so.7.4.0)
==11114== by 0x534A0C7: mgl_create_graph_fltk (in /usr/local/lib/libmgl-fltk.so.7.4.0)
==11114== by 0x400F1D: mglFLTK::mglFLTK(char const*) (fltk.h:49)
==11114== by 0x400C97: main (main.cpp:31)
==11114==
==11114== LEAK SUMMARY:
==11114== definitely lost: 0 bytes in 0 blocks
==11114== indirectly lost: 0 bytes in 0 blocks
==11114== possibly lost: 42,374 bytes in 22 blocks
==11114== still reachable: 43,993,623 bytes in 1,164 blocks
==11114== suppressed: 0 bytes in 0 blocks
==11114== Reachable blocks (those to which a pointer was found) are not shown.
==11114== To see them, rerun with: --leak-check=full --show-leak-kinds=all
==11114==
==11114== For counts of detected and suppressed errors, rerun with: -v
==11114== ERROR SUMMARY: 6 errors from 6 contexts (suppressed: 0 from 0)
Jaime