Page 1 of 1

Solaris Build Failure wxWidgets 3.1.1

Posted: Fri Aug 03, 2018 12:58 pm
by nkulowiec
I am trying to build wxWidgets 3.1.1 on Solaris 11.3 SRU34 with gcc 5.4.0 and GNU make 3.82 and receive a ton of errors after about 5 minutes of building.

Code: Select all

./include/wx/wxcrtbase.h:667:68: error: ‘wcsdup’ was not declared in this scope
./include/wx/wxcrtbase.h:667:68: error: ‘wcsdup’ was not declared in this scope
./include/wx/wxcrtbase.h:667:68: error: ‘wcsdup’ was not declared in this scope
./include/wx/wxcrt.h:187:95: error: ‘wcsnlen’ was not declared in this scope
./include/wx/wxcrt.h:324:47: error: ‘wcscasecmp’ was not declared in this scope
./include/wx/wxcrt.h:324:47: error: ‘wcscasecmp’ was not declared in this scope
./include/wx/wxcrt.h:324:47: error: ‘wcscasecmp’ was not declared in this scope
./include/wx/wxcrt.h:324:47: error: ‘wcscasecmp’ was not declared in this scope
./include/wx/wxcrt.h:519:50: error: ‘wcsncasecmp’ was not declared in this scope
./include/wx/wxcrt.h:519:50: error: ‘wcsncasecmp’ was not declared in this scope
./include/wx/wxcrt.h:519:50: error: ‘wcsncasecmp’ was not declared in this scope
./include/wx/wxcrt.h:519:50: error: ‘wcsncasecmp’ was not declared in this scope
./include/wx/wxcrtbase.h:667:68: error: ‘wcsdup’ was not declared in this scope
./include/wx/wxcrt.h:187:95: error: ‘wcsnlen’ was not declared in this scope
./include/wx/wxcrt.h:324:47: error: ‘wcscasecmp’ was not declared in this scope
./include/wx/wxcrt.h:324:47: error: ‘wcscasecmp’ was not declared in this scope
./include/wx/wxcrt.h:324:47: error: ‘wcscasecmp’ was not declared in this scope
./include/wx/wxcrt.h:324:47: error: ‘wcscasecmp’ was not declared in this scope
./include/wx/wxcrt.h:519:50: error: ‘wcsncasecmp’ was not declared in this scope
./include/wx/wxcrt.h:519:50: error: ‘wcsncasecmp’ was not declared in this scope
./include/wx/wxcrt.h:519:50: error: ‘wcsncasecmp’ was not declared in this scope
./include/wx/wxcrt.h:519:50: error: ‘wcsncasecmp’ was not declared in this scope
./include/wx/wxcrt.h:187:95: error: ‘wcsnlen’ was not declared in this scope
./include/wx/wxcrt.h:324:47: error: ‘wcscasecmp’ was not declared in this scope
./include/wx/wxcrt.h:324:47: error: ‘wcscasecmp’ was not declared in this scope
./include/wx/wxcrt.h:324:47: error: ‘wcscasecmp’ was not declared in this scope
./include/wx/wxcrt.h:324:47: error: ‘wcscasecmp’ was not declared in this scope
./include/wx/wxcrt.h:519:50: error: ‘wcsncasecmp’ was not declared in this scope
./include/wx/wxcrt.h:519:50: error: ‘wcsncasecmp’ was not declared in this scope
./include/wx/wxcrt.h:519:50: error: ‘wcsncasecmp’ was not declared in this scope
./include/wx/wxcrt.h:519:50: error: ‘wcsncasecmp’ was not declared in this scope
./include/wx/wxcrt.h:187:95: error: ‘wcsnlen’ was not declared in this scope
./include/wx/wxcrt.h:324:47: error: ‘wcscasecmp’ was not declared in this scope
./include/wx/wxcrt.h:324:47: error: ‘wcscasecmp’ was not declared in this scope
./include/wx/wxcrt.h:324:47: error: ‘wcscasecmp’ was not declared in this scope
./include/wx/wxcrt.h:324:47: error: ‘wcscasecmp’ was not declared in this scope
./include/wx/wxcrt.h:519:50: error: ‘wcsncasecmp’ was not declared in this scope
./include/wx/wxcrt.h:519:50: error: ‘wcsncasecmp’ was not declared in this scope
./include/wx/wxcrt.h:519:50: error: ‘wcsncasecmp’ was not declared in this scope
./include/wx/wxcrt.h:519:50: error: ‘wcsncasecmp’ was not declared in this scope
I have tested with gcc/g++, cc/g++, cc/CC. All fail. Oddly enough, when I switched to Solaris Studio 12.4 cc/CC(the C/C++ compiler for Studio) throws the following error during configure:

Code: Select all

configure: error: Can't use --enable-std_string without std::wstring or std::basic_string<wchar_t>
I've attached the 3 different ways I've tried building this. Any ideas?

Re: Solaris Build Failure wxWidgets 3.1.1

Posted: Fri Aug 03, 2018 1:30 pm
by DavidHart
Hi,

I've no knowledge or experience of solaris, but googling the first type of error produced this result. Most of that will be irrelevant, but worth a look.
configure: error: Can't use --enable-std_string without std::wstring or std::basic_string<wchar_t>
found configure.in. Have a look around line 1900.

If neither of those help and nobody else has any better ideas, I suggest you post to the wx-dev mailing list, or even direct to wx trac.

Regards,

David

Re: Solaris Build Failure wxWidgets 3.1.1

Posted: Fri Aug 03, 2018 2:42 pm
by nkulowiec
Thanks for the info Dave!

I was more concerned with the multitude of "was not declared in this scope" errors when we know that they're defined. The gcc/g++ method shows the "./include/wx/wxcrt.h:519:50: error: ‘wcsncasecmp’ was not declared in this scope" errors whereas the cc/g++ method gives "error: ‘int vwprintf(const wchar_t*, va_list)’ conflicts with a previous declaration" and " error: ‘int vwprintf(const wchar_t*, va_list)’ conflicts with a previous declaration". Neither of which make sense at the moment.

If I can't figure out the main issue, I'll definitely consider changing gears for the --enable-std_string secondary issue (using CC), as you suggested.

I have tried changing the "using" lines and their order in the wchar.h file and I even did a few test edits of wxcrt.cpp to no avail.

Re: Solaris Build Failure wxWidgets 3.1.1

Posted: Fri Aug 03, 2018 4:42 pm
by ONEEYEMAN
Hi,
If it matters I successfully built wxWidgets 2.8 on latest Sun Solaris with the Solaris studio.

You can try upgrading the OS (which I know will be painful, it's not Solaris anymore) or try to play with the configure option.
Or even better check the config.log file and see why the type/functions was not recognized.

If you can check the reason and submit you findings to the wx-dev ML it would be great.

Thank you.

Re: Solaris Build Failure wxWidgets 3.1.1

Posted: Tue Aug 07, 2018 2:03 pm
by nkulowiec
ONEEYEMAN,

I have no idea what you mean by trying to upgrade the OS as I am already on the latest SRU for the OS.

What were your configure options for the 2.8 version?

Re: Solaris Build Failure wxWidgets 3.1.1

Posted: Tue Aug 07, 2018 3:13 pm
by ONEEYEMAN
Hi,
As I said - it was a long time ago. But I think I just did - "../configure --enable-debug --enable-debug_gdb" and then "make"

Thank you.