From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!.POSTED!not-for-mail From: Paul Eggert Newsgroups: gmane.emacs.devel Subject: Re: Merging bignum to master Date: Sun, 12 Aug 2018 01:09:26 -0700 Organization: UCLA Computer Science Department Message-ID: <48742e8c-fffb-7fe0-bb12-2ce3dc171603@cs.ucla.edu> References: <877ekwu1mn.fsf@tromey.com> NNTP-Posting-Host: blaine.gmane.org Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="------------2814A7ABE49D765E79DF852D" X-Trace: blaine.gmane.org 1534061296 32132 195.159.176.226 (12 Aug 2018 08:08:16 GMT) X-Complaints-To: usenet@blaine.gmane.org NNTP-Posting-Date: Sun, 12 Aug 2018 08:08:16 +0000 (UTC) User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101 Thunderbird/52.9.1 To: Ulrich Mueller , emacs-devel@gnu.org Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Sun Aug 12 10:08:12 2018 Return-path: Envelope-to: ged-emacs-devel@m.gmane.org Original-Received: from lists.gnu.org ([208.118.235.17]) by blaine.gmane.org with esmtp (Exim 4.84_2) (envelope-from ) id 1folQ3-0008Gy-AG for ged-emacs-devel@m.gmane.org; Sun, 12 Aug 2018 10:08:11 +0200 Original-Received: from localhost ([::1]:34464 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1folS9-0005nN-TE for ged-emacs-devel@m.gmane.org; Sun, 12 Aug 2018 04:10:21 -0400 Original-Received: from eggs.gnu.org ([2001:4830:134:3::10]:44933) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1folRT-0005gg-5p for emacs-devel@gnu.org; Sun, 12 Aug 2018 04:09:40 -0400 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1folRO-0005q9-61 for emacs-devel@gnu.org; Sun, 12 Aug 2018 04:09:39 -0400 Original-Received: from zimbra.cs.ucla.edu ([131.179.128.68]:53898) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1folRN-0005pW-Qi for emacs-devel@gnu.org; Sun, 12 Aug 2018 04:09:34 -0400 Original-Received: from localhost (localhost [127.0.0.1]) by zimbra.cs.ucla.edu (Postfix) with ESMTP id 00C9916072A; Sun, 12 Aug 2018 01:09:32 -0700 (PDT) Original-Received: from zimbra.cs.ucla.edu ([127.0.0.1]) by localhost (zimbra.cs.ucla.edu [127.0.0.1]) (amavisd-new, port 10032) with ESMTP id 6Z9PPyRIVinE; Sun, 12 Aug 2018 01:09:27 -0700 (PDT) Original-Received: from localhost (localhost [127.0.0.1]) by zimbra.cs.ucla.edu (Postfix) with ESMTP id 5F447160CBC; Sun, 12 Aug 2018 01:09:27 -0700 (PDT) X-Virus-Scanned: amavisd-new at zimbra.cs.ucla.edu Original-Received: from zimbra.cs.ucla.edu ([127.0.0.1]) by localhost (zimbra.cs.ucla.edu [127.0.0.1]) (amavisd-new, port 10026) with ESMTP id qAY-6vBSMPC2; Sun, 12 Aug 2018 01:09:27 -0700 (PDT) Original-Received: from [192.168.1.9] (unknown [47.154.30.119]) by zimbra.cs.ucla.edu (Postfix) with ESMTPSA id 1A77216072A; Sun, 12 Aug 2018 01:09:27 -0700 (PDT) In-Reply-To: Content-Language: en-US X-detected-operating-system: by eggs.gnu.org: GNU/Linux 3.x [fuzzy] X-Received-From: 131.179.128.68 X-BeenThere: emacs-devel@gnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: "Emacs development discussions." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Original-Sender: "Emacs-devel" Xref: news.gmane.org gmane.emacs.devel:228440 Archived-At: This is a multi-part message in MIME format. --------------2814A7ABE49D765E79DF852D Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 7bit Ulrich Mueller wrote: > I noticed that there is no --with-gmp configure option to control > linking against libgmp. It this as it is supposed to be? We should have an option, for the same reason we have an option for building versus linking to the regex library. I installed the attached to try to do that. I didn't call the option --with-gmp, since the idea is that Emacs always uses GMP in some form or another. I called it --with-mini-gmp, as it controls whether Emacs uses mini-gmp or regular GMP. --------------2814A7ABE49D765E79DF852D Content-Type: text/x-patch; name="0001-New-configure-arg-with-mini-gmp.patch" Content-Transfer-Encoding: 7bit Content-Disposition: attachment; filename="0001-New-configure-arg-with-mini-gmp.patch" >From 3fc948a36c0f70f73d2e8eb688b1599fa6b73036 Mon Sep 17 00:00:00 2001 From: Paul Eggert Date: Sun, 12 Aug 2018 01:06:15 -0700 Subject: [PATCH] New 'configure' arg --with-mini-gmp * configure.ac: It lets the builder override default of whther mini-gmp is used. Use AC_SEARCH_LIBS as per Autoconf manual. --- configure.ac | 35 ++++++++++++++++++++++++----------- etc/NEWS | 7 +++++-- 2 files changed, 29 insertions(+), 13 deletions(-) diff --git a/configure.ac b/configure.ac index 690b999125..58bdefab6d 100644 --- a/configure.ac +++ b/configure.ac @@ -4302,19 +4302,32 @@ AC_DEFUN AC_SUBST(DESLIB) AC_SUBST(KRB4LIB) +AC_ARG_WITH([mini-gmp], + [AS_HELP_STRING([--without-mini-gmp], + [don't compile and use mini-gmp, a substitute for the + GNU Multiple Precision (GMP) library; this is the + default on systems with recent-enough GMP.])]) GMP_LIB= -GMP_OBJ= +GMP_OBJ=mini-gmp.o HAVE_GMP=no -AC_CHECK_LIB(gmp, __gmpz_roinit_n, [ - AC_CHECK_HEADERS(gmp.h, [ - GMP_LIB=-lgmp - HAVE_GMP=yes - AC_DEFINE(HAVE_GMP, 1, [Define to 1 if you have gmp.h and -lgmp])])]) -if test $HAVE_GMP = no; then - GMP_OBJ=mini-gmp.o -fi -AC_SUBST(GMP_LIB) -AC_SUBST(GMP_OBJ) +case $with_mini_gmp in + yes) ;; + no) HAVE_GMP=yes;; + *) AC_CHECK_HEADERS([gmp.h], + [OLIBS=$LIBS + AC_SEARCH_LIBS([__gmpz_roinit_n], [gmp]) + LIBS=$OLIBS + case $ac_cv_search___gmpz_roinit_n in + 'none needed') HAVE_GMP=yes;; + -*) HAVE_GMP=yes GMP_LIB=$ac_cv_search___gmpz_roinit_n;; + esac]);; +esac +if test "$HAVE_GMP" = yes; then + GMP_OBJ= + AC_DEFINE([HAVE_GMP], 1, [Define to 1 if you have recent-enough GMP.]) +fi +AC_SUBST([GMP_LIB]) +AC_SUBST([GMP_OBJ]) AC_CHECK_HEADERS(valgrind/valgrind.h) diff --git a/etc/NEWS b/etc/NEWS index d684e35524..decc5e3954 100644 --- a/etc/NEWS +++ b/etc/NEWS @@ -24,8 +24,11 @@ When you add a new item, use the appropriate mark if you are sure it applies, * Installation Changes in Emacs 27.1 -** configure now checks for the GMP library. If not found, the -included "mini-gmp" library is used instead. +** Emacs now uses GMP, the GNU Multiple Precision library. +By default, if 'configure' does not find a suitable libgmp, it +arranges for the included mini-gmp library to be built and used. +The new 'configure' option --with-mini-gmp uses mini-gmp even if a +suitable libgmp is available. ** The new configure option '--with-json' adds support for JSON using the Jansson library. It is on by default; use 'configure -- 2.17.1 --------------2814A7ABE49D765E79DF852D--