Port better to AIX.
authorPaul Eggert <eggert@cs.ucla.edu>
Sat, 7 Jun 2014 06:10:39 +0000 (23:10 -0700)
committerPaul Eggert <eggert@cs.ucla.edu>
Sat, 7 Jun 2014 06:10:39 +0000 (23:10 -0700)
* configure.ac (with_xpm_set): New shell var.
(_THREAD_SAFE): Define on AIX if HAVE_PTHREAD.
(with_xpm): Default to 'no' on AIX.
(LIBXPM): Append -lXpm if -lXaw is also used, as the latter
requires the former on AIX.

Fixes: debbugs:17598

ChangeLog
configure.ac

index 30561d6..77e5409 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,12 @@
+2014-06-07  Paul Eggert  <eggert@cs.ucla.edu>
+
+       Port better to AIX (Bug#17598).
+       * configure.ac (with_xpm_set): New shell var.
+       (_THREAD_SAFE): Define on AIX if HAVE_PTHREAD.
+       (with_xpm): Default to 'no' on AIX.
+       (LIBXPM): Append -lXpm if -lXaw is also used, as the latter
+       requires the former on AIX.
+
 2014-05-30  Paul Eggert  <eggert@cs.ucla.edu>
 
        Fix port to 32-bit AIX with xlc (Bug#17598).
index 3de3cb9..600271d 100644 (file)
@@ -242,6 +242,7 @@ fi
 
 dnl _ON results in a '--without' option in the --help output, so
 dnl the help text should refer to "don't compile", etc.
+with_xpm_set=${with_xpm+set}
 OPTION_DEFAULT_ON([xpm],[don't compile with XPM image support])
 OPTION_DEFAULT_ON([jpeg],[don't compile with JPEG image support])
 OPTION_DEFAULT_ON([tiff],[don't compile with TIFF image support])
@@ -2074,6 +2075,14 @@ if test "$HAVE_PTHREAD" = yes; then
        LIBS="$LIB_PTHREAD $LIBS" ;;
   esac
   AC_DEFINE(HAVE_PTHREAD, 1, [Define to 1 if you have pthread (-lpthread).])
+
+  # Some systems optimize for single-threaded programs by default, and
+  # need special flags to disable these optimizations. For example, the
+  # definition of 'errno' in <errno.h>.
+  if test "$opsys" = aix4-2; then
+    AC_DEFINE([_THREAD_SAFE], [1],
+      [Define to 1 if your system requires this in multithreaded code.])
+  fi
 fi
 AC_SUBST([LIB_PTHREAD])
 
@@ -2984,6 +2993,9 @@ no_return_alloc_pixels
 fi
 
 if test "${HAVE_X11}" = "yes"; then
+  dnl Avoid Xpm on AIX unless requested, as it crashes; see Bug#17598.
+  test "$opsys$with_xpm_set" = aix4-2 && with_xpm=no
+
   if test "${with_xpm}" != "no"; then
     AC_CHECK_HEADER(X11/xpm.h,
       [AC_CHECK_LIB(Xpm, XpmReadFileToPixmap, HAVE_XPM=yes, , -lX11)])
@@ -3007,6 +3019,9 @@ no_return_alloc_pixels
   if test "${HAVE_XPM}" = "yes"; then
     AC_DEFINE(HAVE_XPM, 1, [Define to 1 if you have the Xpm library (-lXpm).])
     LIBXPM=-lXpm
+  elif test "$opsys,$LUCID_LIBW" = aix4-2,-lXaw; then
+    dnl AIX -lXaw needs -lXpm linked too; see Bug#17598 Message#152.
+    LIBXPM=-lXpm
   fi
 fi