From patchwork Sat Nov 9 19:47:52 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Janne Blomqvist X-Patchwork-Id: 1192495 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=gcc.gnu.org (client-ip=209.132.180.131; helo=sourceware.org; envelope-from=gcc-patches-return-512884-incoming=patchwork.ozlabs.org@gcc.gnu.org; receiver=) Authentication-Results: ozlabs.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: ozlabs.org; dkim=pass (1024-bit key; unprotected) header.d=gcc.gnu.org header.i=@gcc.gnu.org header.b="kKO34rdo"; dkim=pass (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.b="BiB93zp+"; dkim-atps=neutral Received: from sourceware.org (server1.sourceware.org [209.132.180.131]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 479SPS2QsZz9sNT for ; Sun, 10 Nov 2019 06:48:42 +1100 (AEDT) DomainKey-Signature: a=rsa-sha1; c=nofws; d=gcc.gnu.org; h=list-id :list-unsubscribe:list-archive:list-post:list-help:sender:from :to:cc:subject:date:message-id; q=dns; s=default; b=ekZ28WF6+nuS v4/OK0HZLD6YE//2zyHcvic9JMsJ8sP20t+IX2Qxn3qabVCvI7O5ua5oyVNNPTjW sWx/YEy6Z8HPd23t1EqwHEj2pWHknoqYEkFlKH0y1zEGk3qP5Wsy/eg7jeoWlOOa hrh/j0+Bqq7A13K66smQNSeJr89U8rI= DKIM-Signature: v=1; a=rsa-sha1; c=relaxed; d=gcc.gnu.org; h=list-id :list-unsubscribe:list-archive:list-post:list-help:sender:from :to:cc:subject:date:message-id; s=default; bh=OYGJCUZlt7mizie/ur EwWervfgA=; b=kKO34rdo4izT2VYWgWlTfRMeFAlHwqank+y7NPzBfI04kuobDa d8FUIKCFGutr+VmGujlzpngRJz7ihWxVTrY7Q3yMuMR6UiXE89SnuVmGw2swH4lm G22wHgspeZa2wZDWjbkfg4aAy/Az8U+9bofxWTcARabG+C7Zk4zCywTfY= Received: (qmail 62579 invoked by alias); 9 Nov 2019 19:48:28 -0000 Mailing-List: contact gcc-patches-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Id: List-Unsubscribe: List-Archive: List-Post: List-Help: Sender: gcc-patches-owner@gcc.gnu.org Delivered-To: mailing list gcc-patches@gcc.gnu.org Received: (qmail 62323 invoked by uid 89); 9 Nov 2019 19:48:20 -0000 Authentication-Results: sourceware.org; auth=none X-Spam-SWARE-Status: No, score=-26.6 required=5.0 tests=AWL, BAYES_00, FREEMAIL_FROM, GIT_PATCH_0, GIT_PATCH_1, GIT_PATCH_2, GIT_PATCH_3, KAM_NUMSUBJECT, RCVD_IN_DNSWL_NONE, SPF_PASS autolearn=ham version=3.3.1 spammy=sk:with-gm, sk:withgm, withmpfr, with-mpc X-HELO: mail-lj1-f179.google.com Received: from mail-lj1-f179.google.com (HELO mail-lj1-f179.google.com) (209.85.208.179) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with ESMTP; Sat, 09 Nov 2019 19:48:02 +0000 Received: by mail-lj1-f179.google.com with SMTP id q2so9688260ljg.7; Sat, 09 Nov 2019 11:48:02 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id; bh=CL7Seq6Ox3yaSqx8bCjVYaP0AHSpfQKac7UeXp/r0gM=; b=BiB93zp+cr99yH9j5wxmo+WO1lclCsi/ZF86MgKtPPpJdD04tdZijiGgLETClOvB36 N9/uTDol7fVCh26R4zv8QGuC/XJ2d/ig2q7g8fWQnmAe31P/8SAr/DbWlL2+qWB0OU6d dngVt6E4uh3XUF+HfbWifYG0JdhvHrQXF+giChcsyJU09BVm3BQBvcVwBMTSwxUJtzEO EkXdlhjwfHIgEWZZx45Xo0y/lZEQ4rUvlfw9BhnI0l3emyGrU9MWSwIsq/Zi+oCK6sId 3papTCtwX2NcOl8c8pQVqknZonM4fuPY/DsxN3cn6OyDl9ykhKxASqM0MiCC8g3FPgIQ y6KQ== Received: from ws.lan (88-114-247-254.elisa-laajakaista.fi. [88.114.247.254]) by smtp.gmail.com with ESMTPSA id r22sm4758087lji.71.2019.11.09.11.47.58 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sat, 09 Nov 2019 11:47:59 -0800 (PST) From: Janne Blomqvist To: fortran@gcc.gnu.org, gcc-patches@gcc.gnu.org Cc: Janne Blomqvist Subject: [PATCH] Bump minimum MPFR version to 3.1.0 Date: Sat, 9 Nov 2019 21:47:52 +0200 Message-Id: <20191109194752.2180-1-blomqvist.janne@gmail.com> Bump the minimum MPFR version to 3.1.0, released 2011-10-03. With this requirement one can still build GCC with the operating system provided MPFR on old but still supported operating systems like SLES 12 (MPFR 3.1.2) or RHEL/CentOS 7.x (MPFR 3.1.1). This allows removing some code in the Fortran frontend, as well as fixing PR 91828. ChangeLog: 2019-11-09 Janne Blomqvist PR fortran/91828 * configure.ac: Bump minimum MPFR to 3.1.0, recommended to 3.1.6+. * configure: Regenerated. gcc/ChangeLog: 2019-11-09 Janne Blomqvist PR fortran/91828 * doc/install.texi: Document that the minimum MPFR version is 3.1.0. gcc/fortran/ChangeLog: 2019-11-09 Janne Blomqvist PR fortran/91828 * simplify.c (gfc_simplify_fraction): Remove fallback path for MPFR < 3.1.0. --- configure.ac | 6 +++--- gcc/doc/install.texi | 2 +- gcc/fortran/simplify.c | 37 ------------------------------------- 3 files changed, 4 insertions(+), 41 deletions(-) diff --git a/configure.ac b/configure.ac index b8ce2ad20b9..d63a8bae940 100644 --- a/configure.ac +++ b/configure.ac @@ -1601,12 +1601,12 @@ if test -d ${srcdir}/gcc && test "x$have_gmp" = xno; then AC_MSG_CHECKING([for the correct version of mpfr.h]) AC_TRY_COMPILE([#include #include ],[ - #if MPFR_VERSION < MPFR_VERSION_NUM(2,4,0) + #if MPFR_VERSION < MPFR_VERSION_NUM(3,1,0) choke me #endif ], [AC_TRY_COMPILE([#include #include ],[ - #if MPFR_VERSION < MPFR_VERSION_NUM(2,4,2) + #if MPFR_VERSION < MPFR_VERSION_NUM(3,1,6) choke me #endif ], [AC_MSG_RESULT([yes])], [AC_MSG_RESULT([buggy but acceptable])])], @@ -1661,7 +1661,7 @@ if test -d ${srcdir}/gcc && test "x$have_gmp" = xno; then # The library versions listed in the error message below should match # the HARD-minimums enforced above. if test x$have_gmp != xyes; then - AC_MSG_ERROR([Building GCC requires GMP 4.2+, MPFR 2.4.0+ and MPC 0.8.0+. + AC_MSG_ERROR([Building GCC requires GMP 4.2+, MPFR 3.1.0+ and MPC 0.8.0+. Try the --with-gmp, --with-mpfr and/or --with-mpc options to specify their locations. Source code for these libraries can be found at their respective hosting sites as well as at diff --git a/gcc/doc/install.texi b/gcc/doc/install.texi index 2cb8a342a2c..93b01ff7971 100644 --- a/gcc/doc/install.texi +++ b/gcc/doc/install.texi @@ -384,7 +384,7 @@ and @option{--with-gmp-include}. The in-tree build is only supported with the GMP version that download_prerequisites installs. -@item MPFR Library version 2.4.2 (or later) +@item MPFR Library version 3.1.0 (or later) Necessary to build GCC@. It can be downloaded from @uref{https://www.mpfr.org}. If an MPFR source distribution is found diff --git a/gcc/fortran/simplify.c b/gcc/fortran/simplify.c index 2eb1943c3ee..0461d31cd88 100644 --- a/gcc/fortran/simplify.c +++ b/gcc/fortran/simplify.c @@ -3076,12 +3076,7 @@ gfc_expr * gfc_simplify_fraction (gfc_expr *x) { gfc_expr *result; - -#if MPFR_VERSION < MPFR_VERSION_NUM(3,1,0) - mpfr_t absv, exp, pow2; -#else mpfr_exp_t e; -#endif if (x->expr_type != EXPR_CONSTANT) return NULL; @@ -3095,41 +3090,9 @@ gfc_simplify_fraction (gfc_expr *x) return result; } -#if MPFR_VERSION < MPFR_VERSION_NUM(3,1,0) - - /* MPFR versions before 3.1.0 do not include mpfr_frexp. - TODO: remove the kludge when MPFR 3.1.0 or newer will be required */ - - if (mpfr_sgn (x->value.real) == 0) - { - mpfr_set (result->value.real, x->value.real, GFC_RND_MODE); - return result; - } - - gfc_set_model_kind (x->ts.kind); - mpfr_init (exp); - mpfr_init (absv); - mpfr_init (pow2); - - mpfr_abs (absv, x->value.real, GFC_RND_MODE); - mpfr_log2 (exp, absv, GFC_RND_MODE); - - mpfr_trunc (exp, exp); - mpfr_add_ui (exp, exp, 1, GFC_RND_MODE); - - mpfr_ui_pow (pow2, 2, exp, GFC_RND_MODE); - - mpfr_div (result->value.real, x->value.real, pow2, GFC_RND_MODE); - - mpfr_clears (exp, absv, pow2, NULL); - -#else - /* mpfr_frexp() correctly handles zeros and NaNs. */ mpfr_frexp (&e, result->value.real, x->value.real, GFC_RND_MODE); -#endif - return range_check (result, "FRACTION"); }