[Freeciv-Dev] (PR#2873) 1.14.0 Xaw client crash
[Top] [All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index] [Thread Index]
[stepan@xxxxxxxx - Wed Jan 22 00:42:23 2003]:
> OK, I found the problem:
>
> HAVE_LIBXAW3D is not defined which causes client/gui-xaw/pixcommp.h to
> not
> include Xaw3D class parts which confuses Xaw3D at runtime and crashes
> client. The reason why it was not included lies somewhere around
> acconfig.h/old and autogen.sh. acconfig.h mentions HAVE_LIBXAW3D while
> config.h does not. But using autoconf suite newer than 2.13 acconfig.h
> is
> renamed to acconfig.old by autogen.sh and config.h.in generated by
> autoheader does not have HAVE_LIBXAW3D in (because FC_CHECK_X_LIB is
> not
> recognized by autoheader - which is by the way mentioned in
> acconfig.h)
> and that's probably the reason why it is not set (it must be mentioned
> in
> config.h else it will be silently discarded). The reason why it worked
> in
> 1.13.0 is that configure files were generated with autoconf 2.13, but
> in
> 1.14.0 they are generated by autoconf 2.57.
>
> I have no fix for it, because I'm not an auto* guru, but someone
> should
> fix it as soon as possible.
>
> I hope it is understandable (I'm very tired).
I understand why it doesn't work: as you say, HAVE_LIBXAW3D is never
defined. Fixing this is easy enough: we just have to define it (see
attached patch).
I don't understand why it ever worked before, though. acconfig.h has
'#undef HAVE_LIBXAW3D' but nowhere else in our autoconf code is this
touched.
jason
Index: configure.ac
===================================================================
RCS file: /home/freeciv/CVS/freeciv/configure.ac,v
retrieving revision 1.35
diff -u -r1.35 configure.ac
--- configure.ac 2003/01/16 22:14:13 1.35
+++ configure.ac 2003/01/23 03:37:16
@@ -387,6 +387,7 @@
dnl Xaw or Xaw3d:
if test -n "$WITH_XAW3D"; then
FC_CHECK_X_LIB(Xaw3d, main, , AC_MSG_ERROR(did not find Xaw3d
library))
+ AC_DEFINE(HAVE_LIBXAW3D, 1, [Define if the Xaw client uses Xaw3d])
elif test "$client" = "xaw"; then
FC_CHECK_X_LIB(Xaw, main, , AC_MSG_ERROR(did not find Xaw library))
else
|
|