started with shm coprocesses
authorWerner Koch <wk@gnupg.org>
Thu, 30 Jul 1998 17:36:59 +0000 (17:36 +0000)
committerWerner Koch <wk@gnupg.org>
Thu, 30 Jul 1998 17:36:59 +0000 (17:36 +0000)
ChangeLog
acconfig.h
acinclude.m4
configure.in

index d4b01c7..e8d61c5 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+Thu Jul 30 19:17:07 1998  Werner Koch  (wk@(none))
+
+       * acinclude.h (WK_CHECK_IPC): New
+       * configure.in : Add checks for SysV IPC
+
 Thu Jun 25 11:18:49 1998  Werner Koch  (wk@isil.d.shuttle.de)
 
        * configure.in (--disable-dynload): New.
index 50014cf..89e367b 100644 (file)
 #undef HAVE_DL_DLOPEN
 #undef HAVE_DLD_DLD_LINK
 
+#undef USE_SHM_COPROCESSING
+
+#undef IPC_RMID_DEFERRED_RELEASE
+
 @BOTTOM@
 
 #endif /*G10_CONFIG_H*/
index bbb409b..5f7c562 100644 (file)
@@ -22,7 +22,7 @@ AC_DEFUN(WK_CHECK_TYPEDEF,
     ], wk_cv_typedef_$1=yes, wk_cv_typedef_$1=no )])
     AC_MSG_RESULT($wk_cv_typedef_$1)
     if test "$wk_cv_typedef_$1" = yes; then
-        AC_DEFINE($2)
+       AC_DEFINE($2)
     fi
   ])
 
@@ -37,11 +37,11 @@ dnl correct when using a caching scheme
 dnl
 define(WK_LINK_FILES,
   [ if test "x$wk_link_files_src" = "x"; then
-        wk_link_files_src="$1"
-        wk_link_files_dst="$2"
+       wk_link_files_src="$1"
+       wk_link_files_dst="$2"
     else
-        wk_link_files_src="$wk_link_files_src $1"
-        wk_link_files_dst="$wk_link_files_dst $2"
+       wk_link_files_src="$wk_link_files_src $1"
+       wk_link_files_dst="$wk_link_files_dst $2"
     fi
   ])
 define(WK_DO_LINK_FILES,
@@ -54,38 +54,38 @@ dnl define either LITTLE_ENDIAN_HOST or BIG_ENDIAN_HOST
 dnl
 define(WK_CHECK_ENDIAN,
   [ if test "$cross_compiling" = yes; then
-        AC_MSG_WARN(cross compiling; assuming little endianess)
+       AC_MSG_WARN(cross compiling; assuming little endianess)
     fi
     AC_MSG_CHECKING(endianess)
     AC_CACHE_VAL(wk_cv_c_endian,
       [ wk_cv_c_endian=unknown
-        # See if sys/param.h defines the BYTE_ORDER macro.
-        AC_TRY_COMPILE([#include <sys/types.h>
-        #include <sys/param.h>], [
-        #if !BYTE_ORDER || !BIG_ENDIAN || !LITTLE_ENDIAN
-         bogus endian macros
-        #endif], [# It does; now see whether it defined to BIG_ENDIAN or not.
-        AC_TRY_COMPILE([#include <sys/types.h>
-        #include <sys/param.h>], [
-        #if BYTE_ORDER != BIG_ENDIAN
-         not big endian
-        #endif], wk_cv_c_endian=big, wk_cv_c_endian=little)])
-        if test "$wk_cv_c_endian" = unknown; then
-            AC_TRY_RUN([main () {
-              /* Are we little or big endian?  From Harbison&Steele.  */
-              union
-              {
-                long l;
-                char c[sizeof (long)];
-              } u;
-              u.l = 1;
-              exit (u.c[sizeof (long) - 1] == 1);
-              }],
-              wk_cv_c_endian=little,
-              wk_cv_c_endian=big,
-              wk_cv_c_endian=little
-            )
-        fi
+       # See if sys/param.h defines the BYTE_ORDER macro.
+       AC_TRY_COMPILE([#include <sys/types.h>
+       #include <sys/param.h>], [
+       #if !BYTE_ORDER || !BIG_ENDIAN || !LITTLE_ENDIAN
+        bogus endian macros
+       #endif], [# It does; now see whether it defined to BIG_ENDIAN or not.
+       AC_TRY_COMPILE([#include <sys/types.h>
+       #include <sys/param.h>], [
+       #if BYTE_ORDER != BIG_ENDIAN
+        not big endian
+       #endif], wk_cv_c_endian=big, wk_cv_c_endian=little)])
+       if test "$wk_cv_c_endian" = unknown; then
+           AC_TRY_RUN([main () {
+             /* Are we little or big endian?  From Harbison&Steele.  */
+             union
+             {
+               long l;
+               char c[sizeof (long)];
+             } u;
+             u.l = 1;
+             exit (u.c[sizeof (long) - 1] == 1);
+             }],
+             wk_cv_c_endian=little,
+             wk_cv_c_endian=big,
+             wk_cv_c_endian=little
+           )
+       fi
       ])
     AC_MSG_RESULT([$wk_cv_c_endian])
     if test "$wk_cv_c_endian" = little; then
@@ -102,12 +102,54 @@ define(WK_CHECK_CACHE,
     wk_hostcheck="$target"
     AC_CACHE_VAL(wk_cv_hostcheck, [ wk_cv_hostcheck="$wk_hostcheck" ])
     if test "$wk_cv_hostcheck" != "$wk_hostcheck"; then
-        AC_MSG_RESULT(changed)
-        AC_MSG_WARN(config.cache exists!)
-        AC_MSG_ERROR(you must do 'make distclean' first to compile for
-                 different target or different parameters.)
+       AC_MSG_RESULT(changed)
+       AC_MSG_WARN(config.cache exists!)
+       AC_MSG_ERROR(you must do 'make distclean' first to compile for
+                different target or different parameters.)
     else
-        AC_MSG_RESULT(ok)
+       AC_MSG_RESULT(ok)
+    fi
+  ])
+
+
+
+
+######################################################################
+# Check for SysV IPC  (from GIMP)
+######################################################################
+dnl WK_CHECK_IPC
+dnl
+define(WK_CHECK_IPC,
+  [ AC_CHECK_HEADERS(sys/ipc.h sys/shm.h)
+    if test "$ac_cv_header_sys_shm_h" = "yes"; then
+      AC_MSG_CHECKING(whether shmctl IPC_RMID allowes subsequent attaches)
+      AC_TRY_RUN([
+           #include <sys/types.h>
+           #include <sys/ipc.h>
+           #include <sys/shm.h>
+           int main()
+           {
+             int id;
+             char *shmaddr;
+           id = shmget (IPC_PRIVATE, 4, IPC_CREAT | 0777);
+           if (id == -1)
+             exit (2);
+             shmaddr = shmat (id, 0, 0);
+             shmctl (id, IPC_RMID, 0);
+             if ((char*) shmat (id, 0, 0) == (char*) -1)
+             {
+               shmdt (shmaddr);
+               exit (1);
+             }
+             shmdt (shmaddr);
+             shmdt (shmaddr);
+             exit (0);
+           }
+       ],
+       AC_DEFINE(IPC_RMID_DEFERRED_RELEASE)
+       AC_MSG_RESULT(yes),
+       AC_MSG_RESULT(no),
+       AC_MSG_RESULT(assuming no))
     fi
   ])
 
@@ -142,8 +184,8 @@ AC_CACHE_VAL(ac_cv_path_$1,
     test -z "$ac_dir" && ac_dir=.
     if test -f $ac_dir/$ac_word; then
       if [$3]; then
-        ac_cv_path_$1="$ac_dir/$ac_word"
-        break
+       ac_cv_path_$1="$ac_dir/$ac_word"
+       break
       fi
     fi
   done
@@ -206,7 +248,7 @@ AC_DEFUN(AM_WITH_NLS,
   [AC_MSG_CHECKING([whether NLS is requested])
     dnl Default is enabled NLS
     AC_ARG_ENABLE(nls,
-      [  --disable-nls           do not use Native Language Support],
+      [  --disable-nls          do not use Native Language Support],
       USE_NLS=$enableval, USE_NLS=yes)
     AC_MSG_RESULT($USE_NLS)
     AC_SUBST(USE_NLS)
@@ -218,129 +260,129 @@ AC_DEFUN(AM_WITH_NLS,
       AC_DEFINE(ENABLE_NLS)
       AC_MSG_CHECKING([whether included gettext is requested])
       AC_ARG_WITH(included-gettext,
-        [  --with-included-gettext use the GNU gettext library included here],
-        nls_cv_force_use_gnu_gettext=$withval,
-        nls_cv_force_use_gnu_gettext=no)
+       [  --with-included-gettext use the GNU gettext library included here],
+       nls_cv_force_use_gnu_gettext=$withval,
+       nls_cv_force_use_gnu_gettext=no)
       AC_MSG_RESULT($nls_cv_force_use_gnu_gettext)
 
       nls_cv_use_gnu_gettext="$nls_cv_force_use_gnu_gettext"
       if test "$nls_cv_force_use_gnu_gettext" != "yes"; then
-        dnl User does not insist on using GNU NLS library.  Figure out what
-        dnl to use.  If gettext or catgets are available (in this order) we
-        dnl use this.  Else we have to fall back to GNU NLS library.
-        dnl catgets is only used if permitted by option --with-catgets.
-        nls_cv_header_intl=
-        nls_cv_header_libgt=
-        CATOBJEXT=NONE
-
-        AC_CHECK_HEADER(libintl.h,
-          [AC_CACHE_CHECK([for gettext in libc], gt_cv_func_gettext_libc,
-            [AC_TRY_LINK([#include <libintl.h>], [return (int) gettext ("")],
-               gt_cv_func_gettext_libc=yes, gt_cv_func_gettext_libc=no)])
-
-           if test "$gt_cv_func_gettext_libc" != "yes"; then
-             AC_CHECK_LIB(intl, bindtextdomain,
-               [AC_CACHE_CHECK([for gettext in libintl],
-                 gt_cv_func_gettext_libintl,
-                 [AC_TRY_LINK([], [return (int) gettext ("")],
-                 gt_cv_func_gettext_libintl=yes,
-                 gt_cv_func_gettext_libintl=no)])])
-           fi
-
-           if test "$gt_cv_func_gettext_libc" = "yes" \
-              || test "$gt_cv_func_gettext_libintl" = "yes"; then
-              AC_DEFINE(HAVE_GETTEXT)
-              AM_PATH_PROG_WITH_TEST(MSGFMT, msgfmt,
-                [test -z "`$ac_dir/$ac_word -h 2>&1 | grep 'dv '`"], no)dnl
-              if test "$MSGFMT" != "no"; then
-                AC_CHECK_FUNCS(dcgettext)
-                AC_PATH_PROG(GMSGFMT, gmsgfmt, $MSGFMT)
-                AM_PATH_PROG_WITH_TEST(XGETTEXT, xgettext,
-                  [test -z "`$ac_dir/$ac_word -h 2>&1 | grep '(HELP)'`"], :)
-                AC_TRY_LINK(, [extern int _nl_msg_cat_cntr;
-                               return _nl_msg_cat_cntr],
-                  [CATOBJEXT=.gmo
-                   DATADIRNAME=share],
-                  [CATOBJEXT=.mo
-                   DATADIRNAME=lib])
-                INSTOBJEXT=.mo
-              fi
-            fi
-        ])
-
-        if test "$CATOBJEXT" = "NONE"; then
-          AC_MSG_CHECKING([whether catgets can be used])
-          AC_ARG_WITH(catgets,
-            [  --with-catgets          use catgets functions if available],
-            nls_cv_use_catgets=$withval, nls_cv_use_catgets=no)
-          AC_MSG_RESULT($nls_cv_use_catgets)
-
-          if test "$nls_cv_use_catgets" = "yes"; then
-            dnl No gettext in C library.  Try catgets next.
-            AC_CHECK_LIB(i, main)
-            AC_CHECK_FUNC(catgets,
-              [AC_DEFINE(HAVE_CATGETS)
-               INTLOBJS="\$(CATOBJS)"
-               AC_PATH_PROG(GENCAT, gencat, no)dnl
-               if test "$GENCAT" != "no"; then
-                 AC_PATH_PROG(GMSGFMT, gmsgfmt, no)
-                 if test "$GMSGFMT" = "no"; then
-                   AM_PATH_PROG_WITH_TEST(GMSGFMT, msgfmt,
-                    [test -z "`$ac_dir/$ac_word -h 2>&1 | grep 'dv '`"], no)
-                 fi
-                 AM_PATH_PROG_WITH_TEST(XGETTEXT, xgettext,
-                   [test -z "`$ac_dir/$ac_word -h 2>&1 | grep '(HELP)'`"], :)
-                 USE_INCLUDED_LIBINTL=yes
-                 CATOBJEXT=.cat
-                 INSTOBJEXT=.cat
-                 DATADIRNAME=lib
-                 INTLDEPS='$(top_builddir)/intl/libintl.a'
-                 INTLLIBS=$INTLDEPS
-                 LIBS=`echo $LIBS | sed -e 's/-lintl//'`
-                 nls_cv_header_intl=intl/libintl.h
-                 nls_cv_header_libgt=intl/libgettext.h
-               fi])
-          fi
-        fi
-
-        if test "$CATOBJEXT" = "NONE"; then
-          dnl Neither gettext nor catgets in included in the C library.
-          dnl Fall back on GNU gettext library.
-          nls_cv_use_gnu_gettext=yes
-        fi
+       dnl User does not insist on using GNU NLS library.  Figure out what
+       dnl to use.  If gettext or catgets are available (in this order) we
+       dnl use this.  Else we have to fall back to GNU NLS library.
+       dnl catgets is only used if permitted by option --with-catgets.
+       nls_cv_header_intl=
+       nls_cv_header_libgt=
+       CATOBJEXT=NONE
+
+       AC_CHECK_HEADER(libintl.h,
+         [AC_CACHE_CHECK([for gettext in libc], gt_cv_func_gettext_libc,
+           [AC_TRY_LINK([#include <libintl.h>], [return (int) gettext ("")],
+              gt_cv_func_gettext_libc=yes, gt_cv_func_gettext_libc=no)])
+
+          if test "$gt_cv_func_gettext_libc" != "yes"; then
+            AC_CHECK_LIB(intl, bindtextdomain,
+              [AC_CACHE_CHECK([for gettext in libintl],
+                gt_cv_func_gettext_libintl,
+                [AC_TRY_LINK([], [return (int) gettext ("")],
+                gt_cv_func_gettext_libintl=yes,
+                gt_cv_func_gettext_libintl=no)])])
+          fi
+
+          if test "$gt_cv_func_gettext_libc" = "yes" \
+             || test "$gt_cv_func_gettext_libintl" = "yes"; then
+             AC_DEFINE(HAVE_GETTEXT)
+             AM_PATH_PROG_WITH_TEST(MSGFMT, msgfmt,
+               [test -z "`$ac_dir/$ac_word -h 2>&1 | grep 'dv '`"], no)dnl
+             if test "$MSGFMT" != "no"; then
+               AC_CHECK_FUNCS(dcgettext)
+               AC_PATH_PROG(GMSGFMT, gmsgfmt, $MSGFMT)
+               AM_PATH_PROG_WITH_TEST(XGETTEXT, xgettext,
+                 [test -z "`$ac_dir/$ac_word -h 2>&1 | grep '(HELP)'`"], :)
+               AC_TRY_LINK(, [extern int _nl_msg_cat_cntr;
+                              return _nl_msg_cat_cntr],
+                 [CATOBJEXT=.gmo
+                  DATADIRNAME=share],
+                 [CATOBJEXT=.mo
+                  DATADIRNAME=lib])
+               INSTOBJEXT=.mo
+             fi
+           fi
+       ])
+
+       if test "$CATOBJEXT" = "NONE"; then
+         AC_MSG_CHECKING([whether catgets can be used])
+         AC_ARG_WITH(catgets,
+           [  --with-catgets          use catgets functions if available],
+           nls_cv_use_catgets=$withval, nls_cv_use_catgets=no)
+         AC_MSG_RESULT($nls_cv_use_catgets)
+
+         if test "$nls_cv_use_catgets" = "yes"; then
+           dnl No gettext in C library.  Try catgets next.
+           AC_CHECK_LIB(i, main)
+           AC_CHECK_FUNC(catgets,
+             [AC_DEFINE(HAVE_CATGETS)
+              INTLOBJS="\$(CATOBJS)"
+              AC_PATH_PROG(GENCAT, gencat, no)dnl
+              if test "$GENCAT" != "no"; then
+                AC_PATH_PROG(GMSGFMT, gmsgfmt, no)
+                if test "$GMSGFMT" = "no"; then
+                  AM_PATH_PROG_WITH_TEST(GMSGFMT, msgfmt,
+                   [test -z "`$ac_dir/$ac_word -h 2>&1 | grep 'dv '`"], no)
+                fi
+                AM_PATH_PROG_WITH_TEST(XGETTEXT, xgettext,
+                  [test -z "`$ac_dir/$ac_word -h 2>&1 | grep '(HELP)'`"], :)
+                USE_INCLUDED_LIBINTL=yes
+                CATOBJEXT=.cat
+                INSTOBJEXT=.cat
+                DATADIRNAME=lib
+                INTLDEPS='$(top_builddir)/intl/libintl.a'
+                INTLLIBS=$INTLDEPS
+                LIBS=`echo $LIBS | sed -e 's/-lintl//'`
+                nls_cv_header_intl=intl/libintl.h
+                nls_cv_header_libgt=intl/libgettext.h
+              fi])
+         fi
+       fi
+
+       if test "$CATOBJEXT" = "NONE"; then
+         dnl Neither gettext nor catgets in included in the C library.
+         dnl Fall back on GNU gettext library.
+         nls_cv_use_gnu_gettext=yes
+       fi
       fi
 
       if test "$nls_cv_use_gnu_gettext" = "yes"; then
-        dnl Mark actions used to generate GNU NLS library.
-        INTLOBJS="\$(GETTOBJS)"
-        AM_PATH_PROG_WITH_TEST(MSGFMT, msgfmt,
-          [test -z "`$ac_dir/$ac_word -h 2>&1 | grep 'dv '`"], msgfmt)
-        AC_PATH_PROG(GMSGFMT, gmsgfmt, $MSGFMT)
-        AM_PATH_PROG_WITH_TEST(XGETTEXT, xgettext,
-          [test -z "`$ac_dir/$ac_word -h 2>&1 | grep '(HELP)'`"], :)
-        AC_SUBST(MSGFMT)
-        USE_INCLUDED_LIBINTL=yes
-        CATOBJEXT=.gmo
-        INSTOBJEXT=.mo
-        DATADIRNAME=share
-        INTLDEPS='$(top_builddir)/intl/libintl.a'
-        INTLLIBS=$INTLDEPS
-        LIBS=`echo $LIBS | sed -e 's/-lintl//'`
-        nls_cv_header_intl=intl/libintl.h
-        nls_cv_header_libgt=intl/libgettext.h
+       dnl Mark actions used to generate GNU NLS library.
+       INTLOBJS="\$(GETTOBJS)"
+       AM_PATH_PROG_WITH_TEST(MSGFMT, msgfmt,
+         [test -z "`$ac_dir/$ac_word -h 2>&1 | grep 'dv '`"], msgfmt)
+       AC_PATH_PROG(GMSGFMT, gmsgfmt, $MSGFMT)
+       AM_PATH_PROG_WITH_TEST(XGETTEXT, xgettext,
+         [test -z "`$ac_dir/$ac_word -h 2>&1 | grep '(HELP)'`"], :)
+       AC_SUBST(MSGFMT)
+       USE_INCLUDED_LIBINTL=yes
+       CATOBJEXT=.gmo
+       INSTOBJEXT=.mo
+       DATADIRNAME=share
+       INTLDEPS='$(top_builddir)/intl/libintl.a'
+       INTLLIBS=$INTLDEPS
+       LIBS=`echo $LIBS | sed -e 's/-lintl//'`
+       nls_cv_header_intl=intl/libintl.h
+       nls_cv_header_libgt=intl/libgettext.h
       fi
 
       dnl Test whether we really found GNU xgettext.
       if test "$XGETTEXT" != ":"; then
-        dnl If it is no GNU xgettext we define it as : so that the
-        dnl Makefiles still can work.
-        if $XGETTEXT --omit-header /dev/null 2> /dev/null; then
-          : ;
-        else
-          AC_MSG_RESULT(
-            [found xgettext programs is not GNU xgettext; ignore it])
-          XGETTEXT=":"
-        fi
+       dnl If it is no GNU xgettext we define it as : so that the
+       dnl Makefiles still can work.
+       if $XGETTEXT --omit-header /dev/null 2> /dev/null; then
+         : ;
+       else
+         AC_MSG_RESULT(
+           [found xgettext programs is not GNU xgettext; ignore it])
+         XGETTEXT=":"
+       fi
       fi
 
       # We need to process the po/ directory.
@@ -415,9 +457,9 @@ __argz_count __argz_stringify __argz_next])
        AC_MSG_CHECKING(for catalogs to be installed)
        NEW_LINGUAS=
        for lang in ${LINGUAS=$ALL_LINGUAS}; do
-         case "$ALL_LINGUAS" in
-          *$lang*) NEW_LINGUAS="$NEW_LINGUAS $lang" ;;
-         esac
+        case "$ALL_LINGUAS" in
+         *$lang*) NEW_LINGUAS="$NEW_LINGUAS $lang" ;;
+        esac
        done
        LINGUAS=$NEW_LINGUAS
        AC_MSG_RESULT($LINGUAS)
@@ -442,7 +484,7 @@ __argz_count __argz_stringify __argz_next])
 
    dnl Determine which catalog format we have (if any is needed)
    dnl For now we know about two different formats:
-   dnl   Linux libc-5 and the normal X/Open format
+   dnl  Linux libc-5 and the normal X/Open format
    test -d intl || mkdir intl
    if test "$CATOBJEXT" = ".cat"; then
      AC_CHECK_HEADER(linux/version.h, msgformat=linux, msgformat=xopen)
@@ -456,7 +498,7 @@ __argz_count __argz_stringify __argz_next])
      $srcdir/intl/po2tbl.sed.in > intl/po2tbl.sed
 
    dnl In the intl/Makefile.in we have a special dependency which makes
-   dnl only sense for gettext.  We comment this out for non-gettext
+   dnl only sense for gettext. We comment this out for non-gettext
    dnl packages.
    if test "$PACKAGE" = "gettext"; then
      GT_NO="#NO#"
@@ -498,7 +540,7 @@ __argz_count __argz_stringify __argz_next])
    fi
    rm -f po/POTFILES
    sed -e "/^#/d" -e "/^\$/d" -e "s,.*, $posrcprefix& \\\\," -e "\$s/\(.*\) \\\\/\1/" \
-        < $srcdir/po/POTFILES.in > po/POTFILES
+       < $srcdir/po/POTFILES.in > po/POTFILES
   ])
 
 
index 80a5c07..5962ddc 100644 (file)
@@ -150,7 +150,6 @@ AC_HEADER_STDC
 AC_CHECK_HEADERS(unistd.h)
 
 
-
 dnl Checks for typedefs, structures, and compiler characteristics.
 AC_C_CONST
 AC_C_INLINE
@@ -184,6 +183,10 @@ AC_FUNC_VPRINTF
 AC_CHECK_FUNCS(strerror stpcpy strlwr tcgetattr rand strtoul mlock mmap)
 AC_CHECK_FUNCS(memmove gettimeofday getrusage gethrtime setrlimit)
 
+WK_CHECK_IPC
+if test "$ac_cv_header_sys_shm_h" = "yes"; then
+  AC_DEFINE(USE_SHM_COPROCESSING)
+fi
 
 dnl check whether we have a random device
 if test "$try_dev_random" = yes ; then