Page 1 of 2

Solaris(sparc)11.3 Build Failure wxWidgets 3.1.3

Posted: Fri Dec 13, 2019 7:28 am
by rareman
-INFO
OS: Solaris 11.3 SRU36
wxWidgets: 3.1.3 (Source)
GCC version: 4.8.2, 5.4.0 and Sun Studio 12.6
wx-config version: 2.8.12
./configure (simple) and or --with-gtk or --with-x11
Status: failed
-

I am trying to build wxWidgets 3.1.3 on Solaris 11.3 SRU36.10 with both gcc 4.8.2 and sun studio 12.6 and GNU make 3.82 and receive errors after of building here below

Code: Select all

In file included from ./include/wx/chartype.h:69:0,
                 from ./include/wx/debug.h:17,
                 from ./include/wx/defs.h:851,
                 from ./include/wx/wxprec.h:12,
                 from ./src/common/any.cpp:12:
/usr/include/wchar.h:141:12: note:   ‘std::wcsncasecmp’
 extern int wcsncasecmp(const wchar_t *, const wchar_t *, size_t);
            ^
In file included from ./include/wx/crt.h:19:0,
                 from ./src/common/any.cpp:24:
./include/wx/wxcrt.h: In function ‘int wxStrnicmp(const wxScopedWCharBuffer&, const wchar_t*, std::size_t)’:
./include/wx/wxcrt.h:519:50: error: ‘wcsncasecmp’ was not declared in this scope
 #define WX_STR_CALL(func, a1, a2)  func(a1, a2, n)
                                                  ^
./include/wx/wxcrt.h:365:18: note: in expansion of macro ‘WX_STR_CALL’
         { return WX_STR_CALL(crtW, s1.data(), s2); }                          \
                  ^
./include/wx/wxcrt.h:402:5: note: in expansion of macro ‘WX_STR_FUNC_NO_INVERT’
     WX_STR_FUNC_NO_INVERT(int, name, crtA, crtW, forString)                   \
     ^
./include/wx/wxcrt.h:529:1: note: in expansion of macro ‘WX_STRCMP_FUNC’
 WX_STRCMP_FUNC(wxStrnicmp, wxCRT_StrnicmpA, wxCRT_StrnicmpW, wxStrnicmp_String)
 ^
./include/wx/wxcrt.h:519:50: note: suggested alternative:
 #define WX_STR_CALL(func, a1, a2)  func(a1, a2, n)
                                                  ^
./include/wx/wxcrt.h:365:18: note: in expansion of macro ‘WX_STR_CALL’
         { return WX_STR_CALL(crtW, s1.data(), s2); }                          \
                  ^
./include/wx/wxcrt.h:402:5: note: in expansion of macro ‘WX_STR_FUNC_NO_INVERT’
     WX_STR_FUNC_NO_INVERT(int, name, crtA, crtW, forString)                   \
     ^
./include/wx/wxcrt.h:529:1: note: in expansion of macro ‘WX_STRCMP_FUNC’
 WX_STRCMP_FUNC(wxStrnicmp, wxCRT_StrnicmpA, wxCRT_StrnicmpW, wxStrnicmp_String)
 ^
In file included from ./include/wx/chartype.h:69:0,
                 from ./include/wx/debug.h:17,
                 from ./include/wx/defs.h:851,
                 from ./include/wx/wxprec.h:12,
                 from ./src/common/any.cpp:12:
/usr/include/wchar.h:141:12: note:   ‘std::wcsncasecmp’
 extern int wcsncasecmp(const wchar_t *, const wchar_t *, size_t);
            ^
In file included from ./include/wx/crt.h:19:0,
                 from ./src/common/any.cpp:24:
./include/wx/wxcrt.h: In function ‘int wxStrnicmp(const wxScopedWCharBuffer&, const wxScopedWCharBuffer&, std::size_t)’:
./include/wx/wxcrt.h:519:50: error: ‘wcsncasecmp’ was not declared in this scope
 #define WX_STR_CALL(func, a1, a2)  func(a1, a2, n)
                                                  ^
./include/wx/wxcrt.h:369:18: note: in expansion of macro ‘WX_STR_CALL’
         { return WX_STR_CALL(crtW, s1.data(), s2.data()); }                   \
                  ^
./include/wx/wxcrt.h:402:5: note: in expansion of macro ‘WX_STR_FUNC_NO_INVERT’
     WX_STR_FUNC_NO_INVERT(int, name, crtA, crtW, forString)                   \
     ^
./include/wx/wxcrt.h:529:1: note: in expansion of macro ‘WX_STRCMP_FUNC’
 WX_STRCMP_FUNC(wxStrnicmp, wxCRT_StrnicmpA, wxCRT_StrnicmpW, wxStrnicmp_String)
 ^
./include/wx/wxcrt.h:519:50: note: suggested alternative:
 #define WX_STR_CALL(func, a1, a2)  func(a1, a2, n)
                                                  ^
./include/wx/wxcrt.h:369:18: note: in expansion of macro ‘WX_STR_CALL’
         { return WX_STR_CALL(crtW, s1.data(), s2.data()); }                   \
                  ^
./include/wx/wxcrt.h:402:5: note: in expansion of macro ‘WX_STR_FUNC_NO_INVERT’
     WX_STR_FUNC_NO_INVERT(int, name, crtA, crtW, forString)                   \
     ^
./include/wx/wxcrt.h:529:1: note: in expansion of macro ‘WX_STRCMP_FUNC’
 WX_STRCMP_FUNC(wxStrnicmp, wxCRT_StrnicmpA, wxCRT_StrnicmpW, wxStrnicmp_String)
 ^
In file included from ./include/wx/chartype.h:69:0,
                 from ./include/wx/debug.h:17,
                 from ./include/wx/defs.h:851,
                 from ./include/wx/wxprec.h:12,
                 from ./src/common/any.cpp:12:
/usr/include/wchar.h:141:12: note:   ‘std::wcsncasecmp’
 extern int wcsncasecmp(const wchar_t *, const wchar_t *, size_t);
            ^
gmake: *** [basedll_any.o] Error 1

BUILD FAILED (exit value 2, total time: 3m 7s)
I have tested to many of source with 3.1.3 , 3.1.2 , 3.00 and etc... I see configure work fine but after make(gmake/dmake) can't build success I need wx for observer in erlang (OTP22). Any ideas?

Code: Select all

REF
pre-build
Configured wxWidgets 3.1.3 for `sparc-sun-solaris2.11'

  Which GUI toolkit should wxWidgets use?                 GTK+ 2 with support for GTK+ printing
  Should wxWidgets be compiled into single library?       no
  Should wxWidgets be linked as a shared library?         yes
  Should wxWidgets support Unicode?                       yes (using wchar_t)
  What level of wxWidgets compatibility should be enabled?
                                       wxWidgets 2.8      no
                                       wxWidgets 3.0      yes
  Which libraries should wxWidgets use?
                                       STL                no
                                       jpeg               sys
                                       png                sys
                                       regex              builtin
                                       tiff               sys
                                       lzma               yes
                                       zlib               sys
                                       expat              sys
                                       libmspack          no
                                       sdl                no


PRE-BUILD SUCCESSFUL (total time: 15s)

BUILD
./include/wx/wxcrt.h:519:50: error: ‘wcsncasecmp’ was not declared in this scope
 #define WX_STR_CALL(func, a1, a2)  func(a1, a2, n)
                                                  ^
./include/wx/wxcrt.h:365:18: note: in expansion of macro ‘WX_STR_CALL’
         { return WX_STR_CALL(crtW, s1.data(), s2); }                          \
                  ^
./include/wx/wxcrt.h:402:5: note: in expansion of macro ‘WX_STR_FUNC_NO_INVERT’
     WX_STR_FUNC_NO_INVERT(int, name, crtA, crtW, forString)                   \
     ^
./include/wx/wxcrt.h:529:1: note: in expansion of macro ‘WX_STRCMP_FUNC’
 WX_STRCMP_FUNC(wxStrnicmp, wxCRT_StrnicmpA, wxCRT_StrnicmpW, wxStrnicmp_String)
 ^
./include/wx/wxcrt.h:519:50: note: suggested alternative:
 #define WX_STR_CALL(func, a1, a2)  func(a1, a2, n)
                                                  ^
./include/wx/wxcrt.h:365:18: note: in expansion of macro ‘WX_STR_CALL’
         { return WX_STR_CALL(crtW, s1.data(), s2); }                          \
                  ^
./include/wx/wxcrt.h:402:5: note: in expansion of macro ‘WX_STR_FUNC_NO_INVERT’
     WX_STR_FUNC_NO_INVERT(int, name, crtA, crtW, forString)                   \
     ^
./include/wx/wxcrt.h:529:1: note: in expansion of macro ‘WX_STRCMP_FUNC’
 WX_STRCMP_FUNC(wxStrnicmp, wxCRT_StrnicmpA, wxCRT_StrnicmpW, wxStrnicmp_String)
 ^
In file included from ./include/wx/chartype.h:69:0,
                 from ./include/wx/debug.h:17,
                 from ./include/wx/defs.h:851,
                 from ./include/wx/wxprec.h:12,
                 from ./src/common/any.cpp:12:
/usr/include/wchar.h:141:12: note:   ‘std::wcsncasecmp’
 extern int wcsncasecmp(const wchar_t *, const wchar_t *, size_t);
            ^
In file included from ./include/wx/crt.h:19:0,
                 from ./src/common/any.cpp:24:
./include/wx/wxcrt.h: In function ‘int wxStrnicmp(const wxScopedWCharBuffer&, const wxScopedWCharBuffer&, std::size_t)’:
./include/wx/wxcrt.h:519:50: error: ‘wcsncasecmp’ was not declared in this scope
 #define WX_STR_CALL(func, a1, a2)  func(a1, a2, n)
                                                  ^
./include/wx/wxcrt.h:369:18: note: in expansion of macro ‘WX_STR_CALL’
         { return WX_STR_CALL(crtW, s1.data(), s2.data()); }                   \
                  ^
./include/wx/wxcrt.h:402:5: note: in expansion of macro ‘WX_STR_FUNC_NO_INVERT’
     WX_STR_FUNC_NO_INVERT(int, name, crtA, crtW, forString)                   \
     ^
./include/wx/wxcrt.h:529:1: note: in expansion of macro ‘WX_STRCMP_FUNC’
 WX_STRCMP_FUNC(wxStrnicmp, wxCRT_StrnicmpA, wxCRT_StrnicmpW, wxStrnicmp_String)
 ^
./include/wx/wxcrt.h:519:50: note: suggested alternative:
 #define WX_STR_CALL(func, a1, a2)  func(a1, a2, n)
                                                  ^
./include/wx/wxcrt.h:369:18: note: in expansion of macro ‘WX_STR_CALL’
         { return WX_STR_CALL(crtW, s1.data(), s2.data()); }                   \
                  ^
./include/wx/wxcrt.h:402:5: note: in expansion of macro ‘WX_STR_FUNC_NO_INVERT’
     WX_STR_FUNC_NO_INVERT(int, name, crtA, crtW, forString)                   \
     ^
./include/wx/wxcrt.h:529:1: note: in expansion of macro ‘WX_STRCMP_FUNC’
 WX_STRCMP_FUNC(wxStrnicmp, wxCRT_StrnicmpA, wxCRT_StrnicmpW, wxStrnicmp_String)
 ^
In file included from ./include/wx/chartype.h:69:0,
                 from ./include/wx/debug.h:17,
                 from ./include/wx/defs.h:851,
                 from ./include/wx/wxprec.h:12,
                 from ./src/common/any.cpp:12:
/usr/include/wchar.h:141:12: note:   ‘std::wcsncasecmp’
 extern int wcsncasecmp(const wchar_t *, const wchar_t *, size_t);
            ^
gmake: *** [basedll_any.o] Error 1

BUILD FAILED (exit value 2, total time: 3m 6s)

*
here some configure build success from erlang otp 22.0 but can't used wx.
1.buid normal
./configure CC=${IDE_CC} CXX=${IDE_CXX} CFLAGS="-O" CXXFLAGS=-g
result=OK

2.buid HIPE
./configure CC=${IDE_CC} CXX=${IDE_CXX} CFLAGS="-O" CXXFLAGS=-g --enable-hipe
result=OK

3.buid HIPE and 64bit
./configure CC=${IDE_CC} CXX=${IDE_CXX} CFLAGS="-O" CXXFLAGS=-g --enable-hipe --enable-m64-build
result=failed

4.buid HIPE and 64bit and wx
./configure CC=${IDE_CC} CXX=${IDE_CXX} CFLAGS="-O" CXXFLAGS=-g --enable-hipe --enable-m64-build
result=failed

Re: Solaris(sparc)11.3 Build Failure wxWidgets 3.1.3

Posted: Fri Dec 13, 2019 2:20 pm
by DavidHart
Hi,

I don't use Solaris, but (as I expect Google has already told you) similar issues have been reported in the past, both with and without wxWidgets. For example, see this thread; its last comment might also give you a hint about a solution.

IIUC you have a Solaris wx2.8.12 already installed. If you have access to its source package, perhaps you could see how it fixes the problem.

Regards,

David

Re: Solaris(sparc)11.3 Build Failure wxWidgets 3.1.3

Posted: Fri Dec 13, 2019 3:39 pm
by ONEEYEMAN
Hi,
I successfully built wxWidgets-3.1.1 with Solaris Studio 12.6 on the latest Oracle Solaris 11.4.
I didn't try to install gcc as I wanted the build to be "native"

All I did was:

../configure --enable-debug --with-gtk
make

and then I was able to successfully build minimal sample.

Also, looking at the error you received I believe they will be solved by upgrading to 11.4 as I did experience the same problem there.

Try to back-up you current install, install/upgrade to 11.4 and try the build again.

If it fails again - I will try to upgrade my wx over the weekend and rebuild.

Thank you.

Re: Solaris(sparc)11.3 Build Failure wxWidgets 3.1.3

Posted: Mon Dec 16, 2019 7:56 am
by rareman
Hi
Here build with wxWidgets-3.1.1 with ./configure --enable-debug --with-gtk still failed here below(see wxWidgets-3.1.1). Another i didn't get "Ok. The Solaris problem really was that wcsdup and few others are not declared in default C++ name space. So std::wcsdup will solve the issue for now." from mention 'The Solaris problem really was that wcsdup' that need option from configure?

:~/WX/wxWidgets-3.1.3$ ./configure -h | grep std
--enable-std_containers use standard C++ container classes
--enable-std_containers_compat use standard C++ container classes when it can be done compatible
--enable-std_iostreams use standard C++ stream classes
--enable-std_string use standard C++ string classes
--enable-std_string_conv_in_wxstring provide implicit conversion to std::string in wxString
--enable-stdpaths use wxStandardPaths class
--enable-artstd use standard XPM icons in wxArtProvider

Re: Solaris(sparc)11.3 Build Failure wxWidgets 3.1.3

Posted: Mon Dec 16, 2019 3:12 pm
by ONEEYEMAN
Hi,
As I said - all this is fixed inside the latest 11.4 Oracle Solaris.

Thank you.

Re: Solaris(sparc)11.3 Build Failure wxWidgets 3.1.3

Posted: Tue Dec 17, 2019 3:05 am
by rareman
Hi,

Oh Thanks but can't upgrade OS that way painful for application migration/upgrade :)

Re: Solaris(sparc)11.3 Build Failure wxWidgets 3.1.3

Posted: Thu Dec 19, 2019 2:52 am
by rareman
Hi

As you said build wxWidgets 3.xx on Solaris 11.4 successful I guess cause of solaris 11.4 have package wxwidgets 3.0xx Or could you help run command check package wx with #pkg list -af | grep -i wxwidgets

Thanks

Re: Solaris(sparc)11.3 Build Failure wxWidgets 3.1.3

Posted: Thu Dec 19, 2019 3:57 pm
by ONEEYEMAN
Hi,
Solaris 11.4 got rid of all old C++98 defines or something like that.

Just compare the header files in 11.3 and 11.4.

Unfortunately I can't find my old thread about compiling wx on 11.3....
But the binaries should be compatible.

Thank you.

Re: Solaris(sparc)11.3 Build Failure wxWidgets 3.1.3

Posted: Fri Dec 20, 2019 3:31 am
by rareman
Hi,

My attached config.log if maybe getting idea from config.log


Thanks

Re: Solaris(sparc)11.3 Build Failure wxWidgets 3.1.3

Posted: Sun Dec 22, 2019 2:00 am
by stahta01
The last posted file [WX3.1.3config.txt] implied issues with xlocale

Code: Select all

--disable-xlocale
I would try configure with it disables and see if the build goes farther.

Tim S.

Re: Solaris(sparc)11.3 Build Failure wxWidgets 3.1.3

Posted: Mon Dec 23, 2019 3:11 am
by rareman
Hi,

Here last build
pre-build
:~/WX/wxWidgets-3.1.3$ ./configure --with-gtk --enable-compat28 --disable-xlocale
config.log
:~/WX/wxWidgets-3.1.3$ grep xlocal config.log
$ ./configure --with-gtk --enable-compat28 --disable-xlocale
wx_cv_use_xlocale=wxUSE_XLOCALE=no

build output in file attached. my guess(not sure) cause wchar but i tried to fix not work if look into output cxx build fine but after that is not.

Thanks

Re: Solaris(sparc)11.3 Build Failure wxWidgets 3.1.3

Posted: Mon Dec 23, 2019 7:02 am
by stahta01
https://trac.wxwidgets.org/ticket/18368

Might want to try downgrading GCC if that can be done.

Tim S.

Re: Solaris(sparc)11.3 Build Failure wxWidgets 3.1.3

Posted: Mon Dec 23, 2019 7:17 am
by stahta01
You might try compiling with all the variations of Unicode options.

Code: Select all

--disable-unicode
--enable-utf8
--enable-utf8only
Only one of the above 3 options at a time in configure.

Tim S.

Re: Solaris(sparc)11.3 Build Failure wxWidgets 3.1.3

Posted: Mon Dec 23, 2019 8:08 am
by rareman
stahta01 wrote:
Mon Dec 23, 2019 7:02 am
https://trac.wxwidgets.org/ticket/18368

Might want to try downgrading GCC if that can be done.

Tim S.
This is good one and result is successes just downgrade gcc from 4.8.2 to 4.5.2.

Output:
BUILD SUCCESSFUL (total time: 28m 3s)

Many Thanks :)

Re: Solaris(sparc)11.3 Build Failure wxWidgets 3.1.3

Posted: Mon Dec 23, 2019 8:17 am
by rareman
Hi,

thank you all for your support.