[project @ 2001-01-17 12:06:02 by simonmar]
authorsimonmar <unknown>
Wed, 17 Jan 2001 12:06:21 +0000 (12:06 +0000)
committersimonmar <unknown>
Wed, 17 Jan 2001 12:06:21 +0000 (12:06 +0000)
Import stripped down gmp-3.1.1

14 files changed:
ghc/rts/gmp/Makefile.am
ghc/rts/gmp/NEWS
ghc/rts/gmp/aclocal.m4
ghc/rts/gmp/mp.h
ghc/rts/gmp/mpn/alpha/ev6/addmul_1.asm
ghc/rts/gmp/mpn/generic/bz_divrem_n.c
ghc/rts/gmp/mpn/x86/k6/mmx/popham.asm
ghc/rts/gmp/mpn/x86/k7/mmx/popham.asm
ghc/rts/gmp/mpz/fdiv_r_2exp.c
ghc/rts/gmp/mpz/lcm.c
ghc/rts/gmp/mpz/pprime_p.c
ghc/rts/gmp/mpz/urandomm.c
ghc/rts/gmp/stamp-vti
ghc/rts/gmp/version.texi

index 79bf65b..b73b805 100644 (file)
@@ -61,6 +61,7 @@
 #       3.0      3:0:0   3:0:0
 #        3.0.1    3:1:0   3:0:0
 #        3.1      4:0:1   4:0:1
+#        3.1.1    4:1:1   4:1:1
 #
 #
 # Starting at 3:0:0 is a slight abuse of the versioning system, but it
 # interface changes for gmp 3 mean 3:0:0 is right.
 
 LIBGMP_LT_CURRENT =  4
-LIBGMP_LT_REVISION = 0
+LIBGMP_LT_REVISION = 1
 LIBGMP_LT_AGE =      1
 
 LIBMP_LT_CURRENT =  4
-LIBMP_LT_REVISION = 0
+LIBMP_LT_REVISION = 1
 LIBMP_LT_AGE =      1
 
 
index f41af93..3b549d5 100644 (file)
@@ -1,3 +1,8 @@
+Changes between MP version 3.1 and 3.1.1
+
+* Bug fixes for division (rare), mpf_get_str, FFT, and miscellaneous minor
+  things.
+
 Changes between MP version 3.0 and 3.1
 
 * Bug fixes.
index cd2aa5d..086c779 100644 (file)
@@ -1,4 +1,4 @@
-dnl aclocal.m4 generated automatically by aclocal 1.4
+dnl aclocal.m4 generated automatically by aclocal 1.4a
 
 dnl Copyright (C) 1994, 1995-8, 1999 Free Software Foundation, Inc.
 dnl This file is free software; the Free Software Foundation
@@ -904,9 +904,10 @@ ac_save_CC="$CC"
 # breaks some systems' header files.
 # AIX                  -qlanglvl=ansi
 # Ultrix and OSF/1     -std1
-# HP-UX                        -Aa -D_HPUX_SOURCE
+# HP-UX 10.20 and later        -Ae
+# HP-UX older versions -Aa -D_HPUX_SOURCE
 # SVR4                 -Xc -D__EXTENSIONS__
-for ac_arg in "" -qlanglvl=ansi -std1 "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIONS__"
+for ac_arg in "" -qlanglvl=ansi -std1 -Ae "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIONS__"
 do
   CC="$ac_save_CC $ac_arg"
   AC_TRY_COMPILE(
@@ -967,12 +968,15 @@ dnl AM_INIT_AUTOMAKE(package,version, [no-define])
 
 AC_DEFUN(AM_INIT_AUTOMAKE,
 [AC_REQUIRE([AC_PROG_INSTALL])
+dnl We require 2.13 because we rely on SHELL being computed by configure.
+AC_PREREQ([2.13])
 PACKAGE=[$1]
 AC_SUBST(PACKAGE)
 VERSION=[$2]
 AC_SUBST(VERSION)
 dnl test to see if srcdir already configured
-if test "`cd $srcdir && pwd`" != "`pwd`" && test -f $srcdir/config.status; then
+if test "`CDPATH=: && cd $srcdir && pwd`" != "`pwd`" &&
+   test -f $srcdir/config.status; then
   AC_MSG_ERROR([source directory already configured; run "make distclean" there first])
 fi
 ifelse([$3],,
@@ -980,14 +984,24 @@ AC_DEFINE_UNQUOTED(PACKAGE, "$PACKAGE", [Name of package])
 AC_DEFINE_UNQUOTED(VERSION, "$VERSION", [Version number of package]))
 AC_REQUIRE([AM_SANITY_CHECK])
 AC_REQUIRE([AC_ARG_PROGRAM])
-dnl FIXME This is truly gross.
-missing_dir=`cd $ac_aux_dir && pwd`
-AM_MISSING_PROG(ACLOCAL, aclocal, $missing_dir)
-AM_MISSING_PROG(AUTOCONF, autoconf, $missing_dir)
-AM_MISSING_PROG(AUTOMAKE, automake, $missing_dir)
-AM_MISSING_PROG(AUTOHEADER, autoheader, $missing_dir)
-AM_MISSING_PROG(MAKEINFO, makeinfo, $missing_dir)
-AC_REQUIRE([AC_PROG_MAKE_SET])])
+AM_MISSING_PROG(ACLOCAL, aclocal)
+AM_MISSING_PROG(AUTOCONF, autoconf)
+AM_MISSING_PROG(AUTOMAKE, automake)
+AM_MISSING_PROG(AUTOHEADER, autoheader)
+AM_MISSING_PROG(MAKEINFO, makeinfo)
+AM_MISSING_PROG(AMTAR, tar)
+AM_MISSING_INSTALL_SH
+dnl We need awk for the "check" target.  The system "awk" is bad on
+dnl some platforms.
+AC_REQUIRE([AC_PROG_AWK])
+AC_REQUIRE([AC_PROG_MAKE_SET])
+AC_REQUIRE([AM_DEP_TRACK])
+AC_REQUIRE([AM_SET_DEPDIR])
+ifdef([AC_PROVIDE_AC_PROG_CC], [AM_DEPENDENCIES(CC)], [
+   define([AC_PROG_CC], defn([AC_PROG_CC])[AM_DEPENDENCIES(CC)])])
+ifdef([AC_PROVIDE_AC_PROG_CXX], [AM_DEPENDENCIES(CXX)], [
+   define([AC_PROG_CXX], defn([AC_PROG_CXX])[AM_DEPENDENCIES(CXX)])])
+])
 
 #
 # Check to make sure that the build environment is sane.
 rm -f conftest*
 AC_MSG_RESULT(yes)])
 
-dnl AM_MISSING_PROG(NAME, PROGRAM, DIRECTORY)
-dnl The program must properly implement --version.
-AC_DEFUN(AM_MISSING_PROG,
-[AC_MSG_CHECKING(for working $2)
-# Run test in a subshell; some versions of sh will print an error if
-# an executable is not found, even if stderr is redirected.
-# Redirect stdin to placate older versions of autoconf.  Sigh.
-if ($2 --version) < /dev/null > /dev/null 2>&1; then
-   $1=$2
-   AC_MSG_RESULT(found)
+dnl AM_MISSING_PROG(NAME, PROGRAM)
+AC_DEFUN(AM_MISSING_PROG, [
+AC_REQUIRE([AM_MISSING_HAS_RUN])
+$1=${$1-"${am_missing_run}$2"}
+AC_SUBST($1)])
+
+dnl Like AM_MISSING_PROG, but only looks for install-sh.
+dnl AM_MISSING_INSTALL_SH()
+AC_DEFUN(AM_MISSING_INSTALL_SH, [
+AC_REQUIRE([AM_MISSING_HAS_RUN])
+if test -z "$install_sh"; then
+   install_sh="$ac_aux_dir/install-sh"
+   test -f "$install_sh" || install_sh="$ac_aux_dir/install.sh"
+   test -f "$install_sh" || install_sh="${am_missing_run}${ac_auxdir}/install-sh"
+   dnl FIXME: an evil hack: we remove the SHELL invocation from
+   dnl install_sh because automake adds it back in.  Sigh.
+   install_sh="`echo $install_sh | sed -e 's/\${SHELL}//'`"
+fi
+AC_SUBST(install_sh)])
+
+dnl AM_MISSING_HAS_RUN.
+dnl Define MISSING if not defined so far and test if it supports --run.
+dnl If it does, set am_missing_run to use it, otherwise, to nothing.
+AC_DEFUN([AM_MISSING_HAS_RUN], [
+test x"${MISSING+set}" = xset || \
+  MISSING="\${SHELL} `CDPATH=: && cd $ac_aux_dir && pwd`/missing"
+dnl Use eval to expand $SHELL
+if eval "$MISSING --run :"; then
+  am_missing_run="$MISSING --run "
 else
-   $1="$3/missing $2"
-   AC_MSG_RESULT(missing)
+  am_missing_run=
+  am_backtick='`'
+  AC_MSG_WARN([${am_backtick}missing' script is too old or missing])
 fi
-AC_SUBST($1)])
+])
+
+dnl See how the compiler implements dependency checking.
+dnl Usage:
+dnl AM_DEPENDENCIES(NAME)
+dnl NAME is "CC", "CXX" or "OBJC".
+
+dnl We try a few techniques and use that to set a single cache variable.
+
+AC_DEFUN(AM_DEPENDENCIES,[
+AC_REQUIRE([AM_SET_DEPDIR])
+AC_REQUIRE([AM_OUTPUT_DEPENDENCY_COMMANDS])
+ifelse([$1],CC,[
+AC_REQUIRE([AC_PROG_CC])
+AC_REQUIRE([AC_PROG_CPP])
+depcc="$CC"
+depcpp="$CPP"],[$1],CXX,[
+AC_REQUIRE([AC_PROG_CXX])
+AC_REQUIRE([AC_PROG_CXXCPP])
+depcc="$CXX"
+depcpp="$CXXCPP"],[$1],OBJC,[
+am_cv_OBJC_dependencies_compiler_type=gcc],[
+AC_REQUIRE([AC_PROG_][$1])
+depcc="$[$1]"
+depcpp=""])
+AC_MSG_CHECKING([dependency style of $depcc])
+AC_CACHE_VAL(am_cv_[$1]_dependencies_compiler_type,[
+if test -z "$AMDEP"; then
+  echo '#include "conftest.h"' > conftest.c
+  echo 'int i;' > conftest.h
+
+  am_cv_[$1]_dependencies_compiler_type=none
+  for depmode in `sed -n 's/^#*\([a-zA-Z0-9]*\))$/\1/p' < "$am_depcomp"`; do
+    case "$depmode" in
+    nosideeffect)
+      # after this tag, mechanisms are not by side-effect, so they'll
+      # only be used when explicitly requested
+      if test "x$enable_dependency_tracking" = xyes; then
+       continue
+      else
+       break
+      fi
+      ;;
+    none) break ;;
+    esac
+    if depmode="$depmode" \
+       source=conftest.c object=conftest.o \
+       depfile=conftest.Po tmpdepfile=conftest.TPo \
+       $SHELL $am_depcomp $depcc -c conftest.c 2>/dev/null &&
+       grep conftest.h conftest.Po > /dev/null 2>&1; then
+      am_cv_[$1]_dependencies_compiler_type="$depmode"
+      break
+    fi
+  done
+
+  rm -f conftest.*
+else
+  am_cv_[$1]_dependencies_compiler_type=none
+fi
+])
+AC_MSG_RESULT($am_cv_[$1]_dependencies_compiler_type)
+[$1]DEPMODE="depmode=$am_cv_[$1]_dependencies_compiler_type"
+AC_SUBST([$1]DEPMODE)
+])
+
+dnl Choose a directory name for dependency files.
+dnl This macro is AC_REQUIREd in AM_DEPENDENCIES
+
+AC_DEFUN(AM_SET_DEPDIR,[
+if test -d .deps || mkdir .deps 2> /dev/null || test -d .deps; then
+  DEPDIR=.deps
+else
+  DEPDIR=_deps
+fi
+AC_SUBST(DEPDIR)
+])
+
+AC_DEFUN(AM_DEP_TRACK,[
+AC_ARG_ENABLE(dependency-tracking,
+[  --disable-dependency-tracking Speeds up one-time builds
+  --enable-dependency-tracking  Do not reject slow dependency extractors])
+if test "x$enable_dependency_tracking" = xno; then
+  AMDEP="#"
+else
+  am_depcomp="$ac_aux_dir/depcomp"
+  if test ! -f "$am_depcomp"; then
+    AMDEP="#"
+  else
+    AMDEP=
+  fi
+fi
+AC_SUBST(AMDEP)
+if test -z "$AMDEP"; then
+  AMDEPBACKSLASH='\'
+else
+  AMDEPBACKSLASH=
+fi
+pushdef([subst], defn([AC_SUBST]))
+subst(AMDEPBACKSLASH)
+popdef([subst])
+])
+
+dnl Generate code to set up dependency tracking.
+dnl This macro should only be invoked once -- use via AC_REQUIRE.
+dnl Usage:
+dnl AM_OUTPUT_DEPENDENCY_COMMANDS
+
+dnl
+dnl This code is only required when automatic dependency tracking
+dnl is enabled.  FIXME.  This creates each `.P' file that we will
+dnl need in order to bootstrap the dependency handling code.
+AC_DEFUN(AM_OUTPUT_DEPENDENCY_COMMANDS,[
+AC_OUTPUT_COMMANDS([
+test x"$AMDEP" != x"" ||
+for mf in $CONFIG_FILES; do
+  case "$mf" in
+  Makefile) dirpart=.;;
+  */Makefile) dirpart=`echo "$mf" | sed -e 's|/[^/]*$||'`;;
+  *) continue;;
+  esac
+  grep '^DEP_FILES *= *[^ #]' < "$mf" > /dev/null || continue
+  # Extract the definition of DEP_FILES from the Makefile without
+  # running `make'.
+  DEPDIR=`sed -n -e '/^DEPDIR = / s///p' < "$mf"`
+  test -z "$DEPDIR" && continue
+  # When using ansi2knr, U may be empty or an underscore; expand it
+  U=`sed -n -e '/^U = / s///p' < "$mf"`
+  test -d "$dirpart/$DEPDIR" || mkdir "$dirpart/$DEPDIR"
+  # We invoke sed twice because it is the simplest approach to
+  # changing $(DEPDIR) to its actual value in the expansion.
+  for file in `sed -n -e '
+    /^DEP_FILES = .*\\\\$/ {
+      s/^DEP_FILES = //
+      :loop
+       s/\\\\$//
+       p
+       n
+       /\\\\$/ b loop
+      p
+    }
+    /^DEP_FILES = / s/^DEP_FILES = //p' < "$mf" | \
+       sed -e 's/\$(DEPDIR)/'"$DEPDIR"'/g' -e 's/\$U/'"$U"'/g'`; do
+    # Make sure the directory exists.
+    test -f "$dirpart/$file" && continue
+    fdir=`echo "$file" | sed -e 's|/[^/]*$||'`
+    $ac_aux_dir/mkinstalldirs "$dirpart/$fdir" > /dev/null 2>&1
+    # echo "creating $dirpart/$file"
+    echo '# dummy' > "$dirpart/$file"
+  done
+done
+], [AMDEP="$AMDEP"
+ac_aux_dir="$ac_aux_dir"])])
 
 # Like AC_CONFIG_HEADER, but automatically create stamp file.
 
@@ -1105,7 +1290,7 @@ else
 fi])
 
 
-# serial 40 AC_PROG_LIBTOOL
+# serial 42 AC_PROG_LIBTOOL
 AC_DEFUN(AC_PROG_LIBTOOL,
 [AC_REQUIRE([AC_LIBTOOL_SETUP])dnl
 
@@ -1113,12 +1298,14 @@ AC_DEFUN(AC_PROG_LIBTOOL,
 AC_CACHE_SAVE
 
 # Actually configure libtool.  ac_aux_dir is where install-sh is found.
-CC="$CC" CFLAGS="$CFLAGS" CPPFLAGS="$CPPFLAGS" \
-LD="$LD" LDFLAGS="$LDFLAGS" LIBS="$LIBS" \
-LN_S="$LN_S" NM="$NM" RANLIB="$RANLIB" \
-DLLTOOL="$DLLTOOL" AS="$AS" OBJDUMP="$OBJDUMP" \
+AR="$AR" CC="$CC" CFLAGS="$CFLAGS" CPPFLAGS="$CPPFLAGS" \
+MAGIC="$MAGIC" LD="$LD" LDFLAGS="$LDFLAGS" LIBS="$LIBS" \
+LN_S="$LN_S" NM="$NM" RANLIB="$RANLIB" STRIP="$STRIP" \
+AS="$AS" DLLTOOL="$DLLTOOL" OBJDUMP="$OBJDUMP" \
+objext="$OBJEXT" exeext="$EXEEXT" reload_flag="$reload_flag" \
+deplibs_check_method="$deplibs_check_method" file_magic_cmd="$file_magic_cmd" \
 ${CONFIG_SHELL-/bin/sh} $ac_aux_dir/ltconfig --no-reexec \
-$libtool_flags --no-verify $ac_aux_dir/ltmain.sh $lt_target \
+$libtool_flags --no-verify --build="$build" $ac_aux_dir/ltmain.sh $lt_target \
 || AC_MSG_ERROR([libtool configure failed])
 
 # Reload cache, that may have been modified by ltconfig
@@ -1143,18 +1330,33 @@ AC_REQUIRE([AC_ENABLE_STATIC])dnl
 AC_REQUIRE([AC_ENABLE_FAST_INSTALL])dnl
 AC_REQUIRE([AC_CANONICAL_HOST])dnl
 AC_REQUIRE([AC_CANONICAL_BUILD])dnl
-AC_REQUIRE([AC_PROG_RANLIB])dnl
 AC_REQUIRE([AC_PROG_CC])dnl
 AC_REQUIRE([AC_PROG_LD])dnl
+AC_REQUIRE([AC_PROG_LD_RELOAD_FLAG])dnl
 AC_REQUIRE([AC_PROG_NM])dnl
 AC_REQUIRE([AC_PROG_LN_S])dnl
+AC_REQUIRE([AC_DEPLIBS_CHECK_METHOD])dnl
+AC_REQUIRE([AC_OBJEXT])dnl
+AC_REQUIRE([AC_EXEEXT])dnl
 dnl
 
+# Only perform the check for file, if the check method requires it
+case "$deplibs_check_method" in
+file_magic*)
+  if test "$file_magic_cmd" = '${MAGIC}'; then
+    AC_PATH_MAGIC
+  fi
+  ;;
+esac
+
 case "$target" in
 NONE) lt_target="$host" ;;
 *) lt_target="$target" ;;
 esac
 
+AC_CHECK_TOOL(RANLIB, ranlib, :)
+AC_CHECK_TOOL(STRIP, strip, :)
+
 # Check for any special flags to pass to ltconfig.
 libtool_flags="--cache-file=$cache_file"
 test "$enable_shared" = no && libtool_flags="$libtool_flags --disable-shared"
@@ -1171,6 +1373,12 @@ AC_ARG_ENABLE(libtool-lock,
 test "x$enable_libtool_lock" = xno && libtool_flags="$libtool_flags --disable-lock"
 test x"$silent" = xyes && libtool_flags="$libtool_flags --silent"
 
+AC_ARG_WITH(pic,
+  [  --with-pic              try to use only PIC/non-PIC objects [default=use both]],
+     pic_mode="$withval", pic_mode=default)
+test x"$pic_mode" = xyes && libtool_flags="$libtool_flags --prefer-pic"
+test x"$pic_mode" = xno && libtool_flags="$libtool_flags --prefer-non-pic"
+
 # Some flags need to be propagated to the compiler or linker for good
 # libtool support.
 case "$lt_target" in
@@ -1198,7 +1406,10 @@ case "$lt_target" in
   SAVE_CFLAGS="$CFLAGS"
   CFLAGS="$CFLAGS -belf"
   AC_CACHE_CHECK([whether the C compiler needs -belf], lt_cv_cc_needs_belf,
-    [AC_TRY_LINK([],[],[lt_cv_cc_needs_belf=yes],[lt_cv_cc_needs_belf=no])])
+    [AC_LANG_SAVE
+     AC_LANG_C
+     AC_TRY_LINK([],[],[lt_cv_cc_needs_belf=yes],[lt_cv_cc_needs_belf=no])
+     AC_LANG_RESTORE])
   if test x"$lt_cv_cc_needs_belf" != x"yes"; then
     # this is probably gcc 2.8.0, egcs 1.0 or newer; no need for -belf
     CFLAGS="$SAVE_CFLAGS"
@@ -1210,8 +1421,31 @@ ifdef([AC_PROVIDE_AC_LIBTOOL_WIN32_DLL],
   AC_CHECK_TOOL(DLLTOOL, dlltool, false)
   AC_CHECK_TOOL(AS, as, false)
   AC_CHECK_TOOL(OBJDUMP, objdump, false)
+
+  # recent cygwin and mingw systems supply a stub DllMain which the user
+  # can override, but on older systems we have to supply one
+  AC_CACHE_CHECK([if libtool should supply DllMain function], lt_cv_need_dllmain,
+    [AC_TRY_LINK([],
+      [extern int __attribute__((__stdcall__)) DllMain(void*, int, void*);
+      DllMain (0, 0, 0);],
+      [lt_cv_need_dllmain=no],[lt_cv_need_dllmain=yes])])
+
+  case "$lt_target/$CC" in
+  *-*-cygwin*/gcc*-mno-cygwin*|*-*-mingw*)
+    # old mingw systems require "-dll" to link a DLL, while more recent ones
+    # require "-mdll"
+    SAVE_CFLAGS="$CFLAGS"
+    CFLAGS="$CFLAGS -mdll"
+    AC_CACHE_CHECK([how to link DLLs], lt_cv_cc_dll_switch,
+      [AC_TRY_LINK([], [], [lt_cv_cc_dll_switch=-mdll],[lt_cv_cc_dll_switch=-dll])])
+    CFLAGS="$SAVE_CFLAGS" ;;
+  *-*-cygwin*)
+    # cygwin systems need to pass --dll to the linker, and not link
+    # crt.o which will require a WinMain@16 definition.
+    lt_cv_cc_dll_switch="-Wl,--dll -nostartfiles" ;;
+  esac
   ;;
-])
+  ])
 esac
 ])
 
@@ -1321,6 +1555,83 @@ enable_fast_install=AC_ENABLE_FAST_INSTALL_DEFAULT)dnl
 AC_DEFUN(AC_DISABLE_FAST_INSTALL, [AC_BEFORE([$0],[AC_LIBTOOL_SETUP])dnl
 AC_ENABLE_FAST_INSTALL(no)])
 
+
+# AC_PATH_TOOL_PREFIX - find a file program which can recognise shared library
+AC_DEFUN(AC_PATH_TOOL_PREFIX,
+[AC_MSG_CHECKING([for $1])
+AC_CACHE_VAL(lt_cv_path_MAGIC,
+[case "$MAGIC" in
+  /*)
+  lt_cv_path_MAGIC="$MAGIC" # Let the user override the test with a path.
+  ;;
+  ?:/*)
+  ac_cv_path_MAGIC="$MAGIC" # Let the user override the test with a dos path.
+  ;;
+  *)
+  ac_save_MAGIC="$MAGIC"
+  IFS="${IFS=   }"; ac_save_ifs="$IFS"; IFS=":"
+dnl $ac_dummy forces splitting on constant user-supplied paths.
+dnl POSIX.2 word splitting is done only on the output of word expansions,
+dnl not every word.  This closes a longstanding sh security hole.
+  ac_dummy="ifelse([$2], , $PATH, [$2])"
+  for ac_dir in $ac_dummy; do
+    test -z "$ac_dir" && ac_dir=.
+    if test -f $ac_dir/$1; then
+      lt_cv_path_MAGIC="$ac_dir/$1"
+      if test -n "$file_magic_test_file"; then
+       case "$deplibs_check_method" in
+       "file_magic "*)
+         file_magic_regex="`expr \"$deplibs_check_method\" : \"file_magic \(.*\)\"`"
+         MAGIC="$lt_cv_path_MAGIC"
+         if eval $file_magic_cmd \$file_magic_test_file 2> /dev/null |
+           egrep "$file_magic_regex" > /dev/null; then
+           :
+         else
+           cat <<EOF 1>&2
+
+*** Warning: the command libtool uses to detect shared libraries,
+*** $file_magic_cmd, produces output that libtool cannot recognize.
+*** The result is that libtool may fail to recognize shared libraries
+*** as such.  This will affect the creation of libtool libraries that
+*** depend on shared libraries, but programs linked with such libtool
+*** libraries will work regardless of this problem.  Nevertheless, you
+*** may want to report the problem to your system manager and/or to
+*** bug-libtool@gnu.org
+
+EOF
+         fi ;;
+       esac
+      fi
+      break
+    fi
+  done
+  IFS="$ac_save_ifs"
+  MAGIC="$ac_save_MAGIC"
+  ;;
+esac])
+MAGIC="$lt_cv_path_MAGIC"
+if test -n "$MAGIC"; then
+  AC_MSG_RESULT($MAGIC)
+else
+  AC_MSG_RESULT(no)
+fi
+])
+
+
+# AC_PATH_MAGIC - find a file program which can recognise a shared library
+AC_DEFUN(AC_PATH_MAGIC,
+[AC_REQUIRE([AC_CHECK_TOOL_PREFIX])dnl
+AC_PATH_TOOL_PREFIX(${ac_tool_prefix}file, /usr/bin:$PATH)
+if test -z "$lt_cv_path_MAGIC"; then
+  if test -n "$ac_tool_prefix"; then
+    AC_PATH_TOOL_PREFIX(file, /usr/bin:$PATH)
+  else
+    MAGIC=:
+  fi
+fi
+])
+
+
 # AC_PROG_LD - find the path to the GNU or non-GNU linker
 AC_DEFUN(AC_PROG_LD,
 [AC_ARG_WITH(gnu-ld,
@@ -1333,7 +1644,13 @@ ac_prog=ld
 if test "$ac_cv_prog_gcc" = yes; then
   # Check if gcc -print-prog-name=ld gives a path.
   AC_MSG_CHECKING([for ld used by GCC])
-  ac_prog=`($CC -print-prog-name=ld) 2>&5`
+  case $lt_target in
+  *-*-mingw*)
+    # gcc leaves a trailing carriage return which upsets mingw
+    ac_prog=`($CC -print-prog-name=ld) 2>&5 | tr -d '\015'` ;;
+  *)
+    ac_prog=`($CC -print-prog-name=ld) 2>&5` ;;
+  esac
   case "$ac_prog" in
     # Accept absolute paths.
 changequote(,)dnl
@@ -1400,8 +1717,139 @@ if $LD -v 2>&1 </dev/null | egrep '(GNU|with BFD)' 1>&5; then
 else
   ac_cv_prog_gnu_ld=no
 fi])
+with_gnu_ld=$ac_cv_prog_gnu_ld
+])
+
+# AC_PROG_LD_RELOAD_FLAG - find reload flag for linker
+#   -- PORTME Some linkers may need a different reload flag.
+AC_DEFUN(AC_PROG_LD_RELOAD_FLAG,
+[AC_CACHE_CHECK([for $LD option to reload object files], lt_cv_ld_reload_flag,
+[lt_cv_ld_reload_flag='-r'])
+reload_flag=$lt_cv_ld_reload_flag
+test -n "$reload_flag" && reload_flag=" $reload_flag"
+])
+
+# AC_DEPLIBS_CHECK_METHOD - how to check for library dependencies
+#  -- PORTME fill in with the dynamic library characteristics
+AC_DEFUN(AC_DEPLIBS_CHECK_METHOD,
+[AC_CACHE_CHECK([how to recognise dependant libraries],
+lt_cv_deplibs_check_method,
+[lt_cv_file_magic_cmd='${MAGIC}'
+lt_cv_file_magic_test_file=
+lt_cv_deplibs_check_method='unknown'
+# Need to set the preceding variable on all platforms that support
+# interlibrary dependencies.
+# 'none' -- dependencies not supported.
+# `unknown' -- same as none, but documents that we really don't know.
+# 'pass_all' -- all dependencies passed with no checks.
+# 'test_compile' -- check by making test program.
+# 'file_magic [regex]' -- check by looking for files in library path
+# which responds to the $file_magic_cmd with a given egrep regex.
+# If you have `file' or equivalent on your system and you're not sure
+# whether `pass_all' will *always* work, you probably want this one.
+
+case "$host_os" in
+aix4* | beos*)
+  lt_cv_deplibs_check_method=pass_all
+  ;;
+
+bsdi4*)
+  changequote(,)dnl
+  lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (shared object|dynamic lib)'
+  changequote([, ])dnl
+  lt_cv_file_magic_test_file=/shlib/libc.so
+  ;;
+
+cygwin* | mingw*)
+  lt_cv_deplibs_check_method='file_magic file format pei*-i386(.*architecture: i386)?'
+  lt_cv_file_magic_cmd='${OBJDUMP} -f'
+  ;;
+
+freebsd*)
+  case "$version_type" in
+  freebsd-elf*)
+    lt_cv_deplibs_check_method=pass_all
+    ;;
+  esac
+  ;;
+
+gnu*)
+  lt_cv_deplibs_check_method=pass_all
+  ;;
+
+irix5* | irix6*)
+  case "$host_os" in
+  irix5*)
+    # this will be overridden with pass_all, but let us keep it just in case
+    lt_cv_deplibs_check_method="file_magic ELF 32-bit MSB dynamic lib MIPS - version 1"
+    ;;
+  *)
+    case "$LD" in
+    *-32|*"-32 ") libmagic=32-bit;;
+    *-n32|*"-n32 ") libmagic=N32;;
+    *-64|*"-64 ") libmagic=64-bit;;
+    *) libmagic=never-match;;
+    esac
+    # this will be overridden with pass_all, but let us keep it just in case
+    changequote(,)dnl
+    lt_cv_deplibs_check_method="file_magic ELF ${libmagic} MSB mips-[1234] dynamic lib MIPS - version 1"
+    changequote([, ])dnl
+    ;;
+  esac
+  lt_cv_file_magic_test_file=`echo /lib${libsuff}/libc.so*`
+  lt_cv_deplibs_check_method=pass_all
+  ;;
+
+# This must be Linux ELF.
+linux-gnu*)
+  case "$host_cpu" in
+  alpha* | i*86 | powerpc* | sparc* )
+    lt_cv_deplibs_check_method=pass_all ;;
+  *)
+    # glibc up to 2.1.1 does not perform some relocations on ARM
+    changequote(,)dnl
+    lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [LM]SB (shared object|dynamic lib )' ;;
+    changequote([, ])dnl
+  esac
+  lt_cv_file_magic_test_file=`echo /lib/libc.so* /lib/libc-*.so`
+  ;;
+
+osf3* | osf4* | osf5*)
+  # this will be overridden with pass_all, but let us keep it just in case
+  lt_cv_deplibs_check_method='file_magic COFF format alpha shared library'
+  lt_cv_file_magic_test_file=/shlib/libc.so
+  lt_cv_deplibs_check_method=pass_all
+  ;;
+
+sco3.2v5*)
+  lt_cv_deplibs_check_method=pass_all
+  ;;
+
+solaris*)
+  lt_cv_deplibs_check_method=pass_all
+  lt_cv_file_magic_test_file=/lib/libc.so
+  ;;
+
+sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*)
+  case "$host_vendor" in
+  ncr)
+    lt_cv_deplibs_check_method=pass_all
+    ;;
+  motorola)
+    changequote(,)dnl
+    lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (shared object|dynamic lib) M[0-9][0-9]* Version [0-9]'
+    changequote([, ])dnl
+    lt_cv_file_magic_test_file=`echo /usr/lib/libc.so*`
+    ;;
+  esac
+  ;;
+esac
+])
+file_magic_cmd=$lt_cv_file_magic_cmd
+deplibs_check_method=$lt_cv_deplibs_check_method
 ])
 
+
 # AC_PROG_NM - find the path to a BSD-compatible name lister
 AC_DEFUN(AC_PROG_NM,
 [AC_MSG_CHECKING([for BSD-compatible nm])
@@ -1469,7 +1917,7 @@ AC_DEFUN(AC_LIBLTDL_CONVENIENCE, [AC_BEFORE([$0],[AC_LIBTOOL_SETUP])dnl
       ac_configure_args="$ac_configure_args --enable-ltdl-convenience" ;;
   esac
   LIBLTDL=ifelse($#,1,$1,['${top_builddir}/libltdl'])/libltdlc.la
-  INCLTDL=ifelse($#,1,-I$1,['-I${top_builddir}/libltdl'])
+  INCLTDL=ifelse($#,1,-I$1,['-I${top_srcdir}/libltdl'])
 ])
 
 # AC_LIBLTDL_INSTALLABLE[(dir)] - sets LIBLTDL to the link flags for
@@ -1493,7 +1941,7 @@ AC_DEFUN(AC_LIBLTDL_INSTALLABLE, [AC_BEFORE([$0],[AC_LIBTOOL_SETUP])dnl
   if test x"$enable_ltdl_install" = x"yes"; then
     ac_configure_args="$ac_configure_args --enable-ltdl-install"
     LIBLTDL=ifelse($#,1,$1,['${top_builddir}/libltdl'])/libltdl.la
-    INCLTDL=ifelse($#,1,-I$1,['-I${top_builddir}/libltdl'])
+    INCLTDL=ifelse($#,1,-I$1,['-I${top_srcdir}/libltdl'])
   else
     ac_configure_args="$ac_configure_args --enable-ltdl-install=no"
     LIBLTDL="-lltdl"
index 774e6e5..ffab4cb 100644 (file)
@@ -94,6 +94,7 @@ typedef __mpz_struct MINT;
 extern "C" {
 #endif
 
+#define mp_set_memory_functions __gmp_set_memory_functions
 void mp_set_memory_functions _PROTO ((void *(*) (size_t),
                                       void *(*) (void *, size_t, size_t),
                                       void (*) (void *, size_t)));
index dde187c..2f58862 100644 (file)
@@ -253,7 +253,7 @@ C ____ UNROLLED LOOP SOFTWARE PIPELINE STARTUP ____
        umulh   r19,    r1,     r12     C U1
        cmpult  r23,    r15,    r20     C L0 lo add => carry
        addq    r23,    r14,    r23     C U0 hi add => answer
-       ldq     r0,     (r17)           C L1
+       ldq     r0,     0(r17)          C L1
        mulq    r19,    r2,     r13     C U1
        cmpult  r23,    r14,    r21     C L0 hi add => carry
        addq    r8,     r20,    r8      C U0 hi mul + carry
@@ -274,7 +274,7 @@ $Loop:
        bis     r31,    r31,    r31     C U1 mt
        cmpult  r22,    r8,     r21     C L0 hi add => carry
        addq    r10,    r20,    r10     C U0 hi mul + carry
-       ldq     r4,     (r16)           C L1
+       ldq     r4,     0(r16)          C L1
 
        bis     r31,    r31,    r31     C U1 mt
        addq    r5,     r11,    r23     C L0 lo + acc
@@ -363,7 +363,7 @@ $Loop:
 
        umulh   r19,    r0,     r10     C U1
        addq    r6,     r13,    r6      C L0 lo + acc
-       stq     r22,    (r16)           C L0
+       stq     r22,    0(r16)          C L0
        stq     r23,    8(r16)          C L1
 
        bis     r31,    r31,    r31     C L0 st slosh
@@ -389,7 +389,7 @@ $Loop:
        umulh   r19,    r1,     r12     C U1
        cmpult  r23,    r15,    r20     C L0 lo add => carry
        addq    r23,    r14,    r23     C U0 hi add => answer
-       ldq     r0,     (r17)           C L1
+       ldq     r0,     0(r17)          C L1
 
        mulq    r19,    r2,     r13     C U1
        cmpult  r23,    r14,    r21     C L0 hi add => carry
@@ -415,7 +415,7 @@ C ____ UNROLLED LOOP SOFTWARE PIPELINE FINISH ____
 $Lend:
        cmpult  r22,    r8,     r21     C L0 hi add => carry
        addq    r10,    r20,    r10     C U0 hi mul + carry
-       ldq     r4,     (r16)           C L1
+       ldq     r4,     0(r16)          C L1
        addq    r5,     r11,    r23     C L0 lo + acc
        addq    r10,    r21,    r10     C L0 hi mul + carry
        ldq     r5,     8(r16)          C L1
@@ -457,7 +457,7 @@ $Lend:
        addq    r23,    r10,    r23     C U0 hi add => answer
        cmpult  r23,    r10,    r21     C L0 hi add => carry
        addq    r12,    r20,    r12     C U0 hi mul + carry
-       stq     r22,    (r16)           C L0
+       stq     r22,    0(r16)          C L0
        stq     r23,    8(r16)          C L1
        addq    r12,    r21,    r0      C U0 hi mul + carry
 
index 9d2df1b..d234b22 100644 (file)
@@ -35,11 +35,9 @@ MA 02111-1307, USA. */
     http://www.mpi-sb.mpg.de/~ziegler/TechRep.ps.gz
 */
 
-static mp_limb_t mpn_bz_div_3_halves_by_2 _PROTO ((mp_ptr, mp_ptr, mp_srcptr,
-                                                   mp_size_t, mp_ptr));
+static mp_limb_t mpn_bz_div_3_halves_by_2
+  _PROTO ((mp_ptr qp, mp_ptr np, mp_srcptr dp, mp_size_t n));
 
-static mp_limb_t mpn_bz_divrem_aux _PROTO ((mp_ptr, mp_ptr, mp_srcptr,
-                                            mp_size_t, mp_ptr));
 
 /* mpn_bz_divrem_n(n) calls 2*mul(n/2)+2*div(n/2), thus to be faster than
    div(n) = 4*div(n/2), we need mul(n/2) to be faster than the classic way,
@@ -73,6 +71,7 @@ unused_mpn_divrem (qp, qxn, np, nn, dp, dn)
 }
 #endif
 
+
 /* mpn_bz_divrem_n - Implements algorithm of page 8 in [1]: divides (np,2n)
    by (dp,n) and puts the quotient in (qp,n), the remainder in (np,n).
    Returns most significant limb of the quotient, which is 0 or 1.
@@ -89,135 +88,66 @@ mpn_bz_divrem_n (qp, np, dp, n)
      mp_size_t n;
 #endif
 {
-  mp_limb_t qhl = 0;
-  if (mpn_cmp (np + n, dp, n) >= 0)
-    {
-      qhl = 1;
-      mpn_sub_n (np + n, np + n, dp, n);
-      abort ();
-    }
-  if (n % 2 != 0)
-    {
-      /* divide (2n - 2) most significant limbs from np by those (n - 1) from dp */
-      if (n < BZ_THRESHOLD)
-       qhl += mpn_sb_divrem_mn (qp + 1, np + 2, 2 * (n - 1), dp + 1, n - 1);
-      else
-       qhl += mpn_bz_divrem_n (qp + 1, np + 2, dp + 1, n - 1);
-      /* now (qp + 1, n - 1) contains the quotient of (np + 2, 2n - 2) by
-        (dp + 1, n - 1) and (np + 2, n - 1) contains the remainder */
-      if (mpn_sub_1 (np + n, np + n, 1,
-                    mpn_submul_1 (np + 1, qp + 1, n - 1, dp[0])))
-       {
-         /* quotient too large */
-         qhl -= mpn_sub_1 (qp + 1, qp + 1, n - 1, 1L);
-         if (mpn_add_n (np + 1, np + 1, dp, n) == 0)
-           { /* still too large */
-             qhl -= mpn_sub_1 (qp + 1, qp + 1, n - 1, 1L);
-             mpn_add_n (np + 1, np + 1, dp, n); /* always carry here */
-           }
-       }
-      /* now divide (np, n + 1) by (dp, n) */
-      qhl += mpn_add_1 (qp + 1, qp + 1, n - 1,
-                       mpn_sb_divrem_mn (qp, np, n + 1, dp, n));
-    }
-  else
-    {
-      mp_ptr tmp;
-      mp_size_t n2 = n/2;
-      TMP_DECL (marker);
-      TMP_MARK (marker);
-      tmp = (mp_ptr) TMP_ALLOC (n * BYTES_PER_MP_LIMB);
-      qhl = mpn_bz_div_3_halves_by_2 (qp + n2, np + n2, dp, n2, tmp);
-      qhl += mpn_add_1 (qp + n2, qp + n2, n2,
-                      mpn_bz_div_3_halves_by_2 (qp, np, dp, n2, tmp));
-      TMP_FREE (marker);
-    }
-  return qhl;
-}
-
-/* Like mpn_bz_divrem_n, but without memory allocation.  Also
-   assumes mpn_cmp (np + n, dp, n) < 0 */
-
-static mp_limb_t
-#if __STDC__
-mpn_bz_divrem_aux (mp_ptr qp, mp_ptr np, mp_srcptr dp, mp_size_t n, mp_ptr tmp)
-#else
-mpn_bz_divrem_aux (qp, np, dp, n, tmp)
-     mp_ptr qp;
-     mp_ptr np;
-     mp_srcptr dp;
-     mp_size_t n;
-     mp_ptr tmp;
-#endif
-{
-  mp_limb_t qhl;
+  mp_limb_t qhl, cc;
 
   if (n % 2 != 0)
     {
-      /* divide (2n - 2) most significant limbs from np by those (n - 1) from dp */
-      qhl = mpn_bz_divrem_aux (qp + 1, np + 2, dp + 1, n - 1, tmp);
-      /* now (qp + 1, n - 1) contains the quotient of (np + 2, 2n - 2) by
-        (dp + 1, n - 1) and (np + 2, n - 1) contains the remainder */
-      if (mpn_sub_1 (np + n, np + n, 1,
-                    mpn_submul_1 (np + 1, qp + 1, n - 1, dp[0])))
-       {
-         /* quotient too large */
-         qhl -= mpn_sub_1 (qp + 1, qp + 1, n - 1, 1L);
-         if (mpn_add_n (np + 1, np + 1, dp, n) == 0)
-           { /* still too large */
-             qhl -= mpn_sub_1 (qp + 1, qp + 1, n - 1, 1L);
-             mpn_add_n (np + 1, np + 1, dp, n); /* always carry here */
-           }
-       }
-      /* now divide (np, n + 1) by (dp, n) */
+      qhl = mpn_bz_divrem_n (qp + 1, np + 2, dp + 1, n - 1);
+      cc = mpn_submul_1 (np + 1, qp + 1, n - 1, dp[0]);
+      cc = mpn_sub_1 (np + n, np + n, 1, cc);
+      if (qhl) cc += mpn_sub_1 (np + n, np + n, 1, dp[0]);
+      while (cc)
+        {
+          qhl -= mpn_sub_1 (qp + 1, qp + 1, n - 1, (mp_limb_t) 1);
+          cc -= mpn_add_n (np + 1, np + 1, dp, n);
+        }
       qhl += mpn_add_1 (qp + 1, qp + 1, n - 1,
-                       mpn_sb_divrem_mn (qp, np, n + 1, dp, n));
+                        mpn_sb_divrem_mn (qp, np, n + 1, dp, n));
     }
   else
     {
       mp_size_t n2 = n/2;
-      qhl = mpn_bz_div_3_halves_by_2 (qp + n2, np + n2, dp, n2, tmp);
+      qhl = mpn_bz_div_3_halves_by_2 (qp + n2, np + n2, dp, n2);
       qhl += mpn_add_1 (qp + n2, qp + n2, n2,
-                      mpn_bz_div_3_halves_by_2 (qp, np, dp, n2, tmp));
+                        mpn_bz_div_3_halves_by_2 (qp, np, dp, n2));
     }
   return qhl;
 }
 
+
 /* divides (np, 3n) by (dp, 2n) and puts the quotient in (qp, n),
    the remainder in (np, 2n) */
 
 static mp_limb_t
 #if __STDC__
-mpn_bz_div_3_halves_by_2 (mp_ptr qp, mp_ptr np, mp_srcptr dp, mp_size_t n,
-                          mp_ptr tmp)
+mpn_bz_div_3_halves_by_2 (mp_ptr qp, mp_ptr np, mp_srcptr dp, mp_size_t n)
 #else
-mpn_bz_div_3_halves_by_2 (qp, np, dp, n, tmp)
+mpn_bz_div_3_halves_by_2 (qp, np, dp, n)
      mp_ptr qp;
      mp_ptr np;
      mp_srcptr dp;
      mp_size_t n;
-     mp_ptr tmp;
 #endif
 {
-  mp_size_t twon = n + n;
-  mp_limb_t qhl;
+  mp_size_t twon = n + n; 
+  mp_limb_t qhl, cc;
+  mp_ptr tmp;
+  TMP_DECL (marker);
 
+  TMP_MARK (marker);
   if (n < BZ_THRESHOLD)
     qhl = mpn_sb_divrem_mn (qp, np + n, twon, dp + n, n);
   else
-    qhl = mpn_bz_divrem_aux (qp, np + n, dp + n, n, tmp);
-  /* q = (qp, n), c = (np + n, n) with the notations of [1] */
+    qhl = mpn_bz_divrem_n (qp, np + n, dp + n, n);
+  tmp = (mp_ptr) TMP_ALLOC (twon * BYTES_PER_MP_LIMB);
   mpn_mul_n (tmp, qp, dp, n);
-  if (qhl != 0)
-    mpn_add_n (tmp + n, tmp + n, dp, n);
-  if (mpn_sub_n (np, np, tmp, twon))           /* R = (np, 2n) */
+  cc = mpn_sub_n (np, np, tmp, twon);
+  TMP_FREE (marker);
+  if (qhl) cc += mpn_sub_n (np + n, np + n, dp, n);
+  while (cc)
     {
-      qhl -= mpn_sub_1 (qp, qp, n, 1L);
-      if (mpn_add_n (np, np, dp, twon) == 0)
-       { /* qp still too large */
-         qhl -= mpn_sub_1 (qp, qp, n, 1L);
-         mpn_add_n (np, np, dp, twon);         /* always carry here */
-       }
+      qhl -= mpn_sub_1 (qp, qp, n, (mp_limb_t) 1);
+      cc -= mpn_add_n (np, np, dp, twon);
     }
   return qhl;
 }
index 70efb80..2c61925 100644 (file)
@@ -67,7 +67,7 @@ MULFUNC_PROLOGUE(mpn_popcount mpn_hamdist)
 ifdef(`PIC',,`
        dnl  non-PIC
 
-       .section .rodata
+       DATA
        ALIGN(8)
 
 define(LS,
index 68e049a..fa7c8c0 100644 (file)
@@ -96,7 +96,7 @@ MULFUNC_PROLOGUE(mpn_popcount mpn_hamdist)
 ifdef(`PIC',,`
        dnl  non-PIC
 
-       .section .rodata
+       DATA
        ALIGN(8)
 
 define(LS,
index d0cd039..081ce19 100644 (file)
@@ -1,7 +1,7 @@
 /* mpz_fdiv_r_2exp -- Divide a integer by 2**CNT and produce a remainder.
 
-Copyright (C) 1991, 1993, 1994, 1995, 1998, 1999 Free Software Foundation,
-Inc.
+Copyright (C) 1991, 1993, 1994, 1995, 1998, 1999, 2000 Free Software
+Foundation, Inc.
 
 This file is part of the GNU MP Library.
 
@@ -83,10 +83,13 @@ mpz_fdiv_r_2exp (res, in, cnt)
     {
       /* Result should be 2^CNT - RES */
       mpz_t tmp;
+      TMP_DECL (marker);
+      TMP_MARK (marker);
       MPZ_TMP_INIT (tmp, cnt/BITS_PER_MP_LIMB + 2);
       mpz_set_ui (tmp, 1L);
       mpz_mul_2exp (tmp, tmp, cnt);
       mpz_sub (res, tmp, res);
+      TMP_FREE (marker);
     }
 }
 
index ca8c15c..7495882 100644 (file)
@@ -1,6 +1,6 @@
 /* mpz/lcm.c:   Calculate the least common multiple of two integers.
 
-Copyright (C) 1996 Free Software Foundation, Inc.
+Copyright (C) 1996, 2000 Free Software Foundation, Inc.
 
 This file is part of the GNU MP Library.
 
@@ -37,6 +37,9 @@ mpz_lcm (r, u, v)
 {
   mpz_t g;
   mp_size_t usize, vsize, size;
+  TMP_DECL (marker);
+
+  TMP_MARK (marker);
 
   usize = ABS (SIZ (u));
   vsize = ABS (SIZ (v));
@@ -53,4 +56,6 @@ mpz_lcm (r, u, v)
   mpz_gcd (g, u, v);
   mpz_divexact (g, u, g);
   mpz_mul (r, g, v);
+
+  TMP_FREE (marker);
 }
index 0217d8f..82eb678 100644 (file)
@@ -181,8 +181,8 @@ mpz_millerrabin (n, reps)
   mpz_powm (y, x, nm1, n);
   if (mpz_cmp_ui (y, 1L) != 0)
     {
-      return 0;
       TMP_FREE (marker);
+      return 0;
     }
 
   MPZ_TMP_INIT (q, SIZ (n));
index aa57784..69e1bae 100644 (file)
@@ -39,6 +39,9 @@ mpz_urandomm (rop, rstate, n)
   mp_ptr tp;
   mp_size_t nbits, size;
   int count;
+  TMP_DECL (marker);
+
+  TMP_MARK (marker);
 
   /* FIXME: Should check for n == 0 and report error */
 
@@ -70,4 +73,6 @@ mpz_urandomm (rop, rstate, n)
   while (mpz_cmp (t, p) >= 0);
 
   mpz_mod (rop, t, n);
+
+  TMP_FREE (marker);
 }
index 5ac4cb8..e318618 100644 (file)
@@ -1,3 +1,3 @@
-@set UPDATED 3 August 2000
-@set EDITION 3.1
-@set VERSION 3.1
+@set UPDATED 5 October 2000
+@set EDITION 3.1.1
+@set VERSION 3.1.1
index 5ac4cb8..e318618 100644 (file)
@@ -1,3 +1,3 @@
-@set UPDATED 3 August 2000
-@set EDITION 3.1
-@set VERSION 3.1
+@set UPDATED 5 October 2000
+@set EDITION 3.1.1
+@set VERSION 3.1.1