From b1384cb6d48be0ad007bac61aba6f1557937f130 Mon Sep 17 00:00:00 2001 From: Paul Eggert Date: Sun, 26 Jul 2020 09:57:47 -0700 Subject: [PATCH 2/2] libgmp: remove dependency on havelib * m4/libgmp.m4 (gl_LIBGMP): If gl_HAVE_MODULE_HAVELIB is not defined, use the more-traditional AC_SEARCH_LIBS approach. This should work better with GNU Emacs configuration, which uses pkg-config instead of a havelib-style approach. * modules/havelib (gl_HAVE_MODULE_HAVELIB): New witness macro. * modules/libgmp (Depends-on): Remove havelib. --- ChangeLog | 8 ++++++++ m4/libgmp.m4 | 52 ++++++++++++++++++++++++++++++++----------------- modules/havelib | 1 + modules/libgmp | 1 - 4 files changed, 43 insertions(+), 19 deletions(-) diff --git a/ChangeLog b/ChangeLog index 44ce5301b..aee21afed 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,5 +1,13 @@ 2020-07-26 Paul Eggert + libgmp: remove dependency on havelib + * m4/libgmp.m4 (gl_LIBGMP): If gl_HAVE_MODULE_HAVELIB is not defined, + use the more-traditional AC_SEARCH_LIBS approach. + This should work better with GNU Emacs configuration, + which uses pkg-config instead of a havelib-style approach. + * modules/havelib (gl_HAVE_MODULE_HAVELIB): New witness macro. + * modules/libgmp (Depends-on): Remove havelib. + libgmp: remove HAVE_GMP, LIB_GMP * m4/libgmp.m4 (gl_LIBGMP): Do not define HAVE_GMP and LIB_GMP, as they’re redundant. I’ll adjust GNU Coreutils accordingly. diff --git a/m4/libgmp.m4 b/m4/libgmp.m4 index e48b5c2c2..82c065e2c 100644 --- a/m4/libgmp.m4 +++ b/m4/libgmp.m4 @@ -1,4 +1,4 @@ -# libgmp.m4 serial 3 +# libgmp.m4 serial 4 # Configure the GMP library or a replacement. dnl Copyright 2020 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation @@ -6,10 +6,10 @@ dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. dnl gl_LIBGMP -dnl Searches for an installed libgmp. -dnl If found, it sets and AC_SUBSTs HAVE_LIBGMP=yes and the LIBGMP and LTLIBGMP -dnl variables, and augments the CPPFLAGS variable, and #defines HAVE_LIBGMP. -dnl Otherwise, it sets and AC_SUBSTs HAVE_LIBGMP=no and LIBGMP and LTLIBGMP to +dnl Search for an installed libgmp. +dnl If found, set and AC_SUBST HAVE_LIBGMP=yes and the LIBGMP and LTLIBGMP +dnl variables, and augment the CPPFLAGS variable, and #define HAVE_LIBGMP to 1. +dnl Otherwise, set and AC_SUBST HAVE_LIBGMP=no and LIBGMP and LTLIBGMP to dnl empty. AC_DEFUN([gl_LIBGMP], @@ -25,19 +25,35 @@ AC_DEFUN([gl_LIBGMP], LTLIBGMP= ;; *) - AC_LIB_HAVE_LINKFLAGS([gmp], [], - [#include ], - [static const mp_limb_t x[2] = { 0x73, 0x55 }; - mpz_t tmp; - mpz_roinit_n (tmp, x, 2); - ], - [no]) - if test $HAVE_LIBGMP = no; then - case "$with_libgmp" in - yes) - AC_MSG_ERROR([GMP not found, although --with-libgmp was specified. Try specifying --with-libgmp-prefix=DIR.]) - ;; - esac + dnl Prefer AC_LIB_HAVE_LINKFLAGS if the havelib module is also in use. + m4_ifdef([gl_HAVE_MODULE_HAVELIB], + [AC_LIB_HAVE_LINKFLAGS([gmp], [], + [#include ], + [static const mp_limb_t x[2] = { 0x73, 0x55 }; + mpz_t tmp; + mpz_roinit_n (tmp, x, 2); + ], + [no])], + [gl_saved_LIBS=$LIBS + AC_SEARCH_LIBS([__gmpz_roinit_n], [gmp]) + LIBS=$gl_saved_LIBS + case $ac_cv_search___gmpz_roinit_n in + 'none needed') + HAVE_LIBGMP=yes LIBGMP=;; + -*) + HAVE_LIBGMP=yes LIBGMP=$ac_cv_search___gmpz_roinit_n;; + *) + HAVE_LIBGMP=no LIBGMP=;; + esac + LTLIBGMP=$LIBGMP + AC_SUBST([HAVE_LIBGMP]) + AC_SUBST([LIBGMP]) + AC_SUBST([LTLIBGMP])]) + if test "$with_libgmp,$HAVE_LIBGMP" = yes,no; then + AC_MSG_ERROR( + [GMP not found, although --with-libgmp was specified.m4_ifdef( + [AC_LIB_HAVE_LINKFLAGS], + [ Try specifying --with-libgmp-prefix=DIR.])]) fi ;; esac diff --git a/modules/havelib b/modules/havelib index e47dbfc11..2d8dd57f5 100644 --- a/modules/havelib +++ b/modules/havelib @@ -11,6 +11,7 @@ build-aux/config.rpath Depends-on: configure.ac: +AC_DEFUN([gl_HAVE_MODULE_HAVELIB]) Makefile.am: diff --git a/modules/libgmp b/modules/libgmp index 70f20cf70..a0c77056d 100644 --- a/modules/libgmp +++ b/modules/libgmp @@ -8,7 +8,6 @@ lib/mini-gmp.h m4/libgmp.m4 Depends-on: -havelib configure.ac: gl_LIBGMP -- 2.17.1