2.8.3 not compiling on IRIX... strtoull issue?

defreitas at gmail.com defreitas at gmail.com
Thu May 3 06:39:53 PDT 2007


Hi,

I'm a newbie to wxWidgets and I'm trying to compile wxWidgets (gtk)
2.8.3 on Irix 6.5 with the mips 7.4.4 compiler.

My configure options are:

configure --with-gtk --disable-shared CC=cc CFLAGS=-n32 CXX=CC
CXXFLAGS=-n32 MAKE=gmake

Configure seems to run through ok, but I get a problem compiling src/
common/string.cpp. I get the following error from the compiler:


/wx/wxGTK/wxGTK-2.8.3/IRIX/bk-deps CC -c -o baselib_string.o -
D__WXGTK__ -I../src/tiff -I../src/expat/lib -DwxUSE_GUI=0 -
DwxUSE_BASE=1 -D_FILE_OFFSET_BITS=64 -D_LARGE_FILES -I/people/
mdefreitas/wx/wxGTK/wxGTK-2.8.3/IRIX/lib/wx/include/gtk2-ansi-release-
static-2.8 -I../include -D_REENTRANT -I/usr/freeware/include/glib-2.0 -
I/usr/freeware/lib32/glib-2.0/include -I/usr/freeware/include/
pango-1.0 -I/usr/freeware/include/gtk-2.0 -I/usr/freeware/include/
atk-1.0 -I/usr/freeware/lib32/gtk-2.0/include -O -woff 3970 -n32 ../
src/common/string.cpp
cc-1685 : WARNING
Invalid error number: 3970.


cc-1020 CC: ERROR File = ../src/common/string.cpp, Line = 1728
The identifier "strtoll" is undefined.

return wxStringToIntType(c_str(), val, base, wxStrtoll);
^

cc-1020 CC: ERROR File = ../src/common/string.cpp, Line = 1740
The identifier "strtoull" is undefined.

return wxStringToIntType(c_str(), val, base, wxStrtoull);
^

2 errors detected in the compilation of "../src/common/string.cpp".



A few months ago I had the same problem when trying to build wxWidgets
2.8.0, but I saw a post on the comp.soft-sys.wxwindows newgroup that
made me think this problem would be fixed in the next release:

http://groups.google.com/group/comp.soft-sys.wxwindows/browse_thread/thread/89badb4c952bd545/2ba9925265116838?lnk=st&q=wxwidgets+strtoull&rnum=1&hl=en#2ba9925265116838

I'm not that familiar with the configure system, but apparently the
problem was that the configure script should be compiling the test for
strtoull using the C++ compiler, not the C compiler. I checked my
config.log and it contains the following:


configure:24965: checking for strtoull
configure:24997: cc -o conftest -woff 3970 -n32 conftest.c -lm >&5
cc-1685 : WARNING
Invalid error number: 3970.


cc-1171 cc: WARNING File = conftest.c, Line = 101
The indicated expression has no effect.

&strtoull;
^

ld32: WARNING 84 : /usr/lib32/mips4/libm.so is not used for resolving
any symbol.
configure:25003: $? = 0
configure:25006: test -z || test ! -s conftest.err
configure:25009: $? = 0
configure:25012: test -s conftest
configure:25015: $? = 0
configure:25028: result: yes



It appears the test is still being done with the C compiler?

I checked the configure.in file and it contains the following:


dnl check for C99 string to long long conversion functions, assume
that if we
dnl have the unsigned variants, then we have the signed ones as well
dnl
dnl at least under SGI these functions are only available in C99 code
and not
dnl in C++ so do these tests using C++ compiler
AC_LANG_PUSH(C++)
if test "wxUSE_UNICODE" = "yes"; then
WX_CHECK_FUNCS(wcstoull)
else
WX_CHECK_FUNCS(strtoull)
fi
AC_LANG_POP()



Again, I'm not familiar with the configure system, but it appears to
"try" to use the C++ compiler (with AC_LANG_PUSH, whatever that is).

Any ideas what might be wrong?

Thanks,
Marco







More information about the wx-users mailing list