From owner-svn-ports-all@FreeBSD.ORG Mon Mar 3 12:06:39 2014 Return-Path: Delivered-To: svn-ports-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id 453E8BF1; Mon, 3 Mar 2014 12:06:39 +0000 (UTC) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id 258D9FF2; Mon, 3 Mar 2014 12:06:39 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.8/8.14.8) with ESMTP id s23C6ddh091726; Mon, 3 Mar 2014 12:06:39 GMT (envelope-from bf@svn.freebsd.org) Received: (from bf@localhost) by svn.freebsd.org (8.14.8/8.14.8/Submit) id s23C6cl2091724; Mon, 3 Mar 2014 12:06:38 GMT (envelope-from bf@svn.freebsd.org) Message-Id: <201403031206.s23C6cl2091724@svn.freebsd.org> From: Brendan Fabeny Date: Mon, 3 Mar 2014 12:06:38 +0000 (UTC) To: ports-committers@freebsd.org, svn-ports-all@freebsd.org, svn-ports-head@freebsd.org Subject: svn commit: r346884 - in head/math/gsl: . files X-SVN-Group: ports-head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-ports-all@freebsd.org X-Mailman-Version: 2.1.17 Precedence: list List-Id: SVN commit messages for the ports tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 03 Mar 2014 12:06:39 -0000 Author: bf Date: Mon Mar 3 12:06:38 2014 New Revision: 346884 URL: http://svnweb.freebsd.org/changeset/ports/346884 QAT: https://qat.redports.org/buildarchive/r346884/ Log: Attempt to fix the build on powerpc* by the same means used on Darwin and GNU/Linux PR: 179857 Submitted by: jhibbits, nwhitehorn Added: head/math/gsl/files/patch-ieee-utils-fp-freebsd.c (contents, props changed) Modified: head/math/gsl/Makefile Modified: head/math/gsl/Makefile ============================================================================== --- head/math/gsl/Makefile Mon Mar 3 12:03:02 2014 (r346883) +++ head/math/gsl/Makefile Mon Mar 3 12:06:38 2014 (r346884) @@ -30,10 +30,4 @@ check regression-test test: build @cd ${WRKSRC}; ${SETENV} ${MAKE_ENV} ${CORELIMIT} ${MAKE_CMD} \ ${MAKE_ARGS} check -.include - -.if ${ARCH} == "powerpc" -BROKEN= Does not compile on powerpc -.endif - -.include +.include Added: head/math/gsl/files/patch-ieee-utils-fp-freebsd.c ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/math/gsl/files/patch-ieee-utils-fp-freebsd.c Mon Mar 3 12:06:38 2014 (r346884) @@ -0,0 +1,66 @@ +--- ieee-utils/fp-freebsd.c.orig 2014-02-03 11:46:44.000000000 -0600 ++++ ieee-utils/fp-freebsd.c 2014-02-03 11:46:18.000000000 -0600 +@@ -24,10 +24,28 @@ + int + gsl_ieee_set_mode (int precision, int rounding, int exception_mask) + { +- fp_prec_t prec = 0 ; + fp_except_t mode = 0 ; + fp_rnd_t rnd = 0 ; + ++#ifdef __powerpc__ ++ switch (precision) ++ { ++ case GSL_IEEE_SINGLE_PRECISION: ++ GSL_ERROR ("powerpc only supports default precision rounding", GSL_EUNSUP) ++; ++ break ; ++ case GSL_IEEE_DOUBLE_PRECISION: ++ GSL_ERROR ("powerpc only supports default precision rounding", GSL_EUNSUP) ++; ++ break ; ++ case GSL_IEEE_EXTENDED_PRECISION: ++ GSL_ERROR ("powerpc only supports default precision rounding", GSL_EUNSUP) ++; ++ break ; ++ } ++#else ++ fp_prec_t prec = 0 ; ++ + switch (precision) + { + case GSL_IEEE_SINGLE_PRECISION: +@@ -43,6 +61,7 @@ + fpsetprec(prec); + break ; + } ++#endif + + switch (rounding) + { +@@ -69,13 +88,23 @@ + + /* Turn on all the exceptions apart from 'inexact' */ + +- mode = FP_X_INV | FP_X_DNML | FP_X_DZ | FP_X_OFL | FP_X_UFL ; ++ mode = FP_X_INV | FP_X_DZ | FP_X_OFL | FP_X_UFL ; + + if (exception_mask & GSL_IEEE_MASK_INVALID) + mode &= ~ FP_X_INV ; + + if (exception_mask & GSL_IEEE_MASK_DENORMALIZED) +- mode &= ~ FP_X_DNML ; ++ { ++ /* do nothing */ ++ } ++ else ++ { ++#ifdef __powerpc__ ++ GSL_ERROR ("powerpc does not support the denormalized operand exception. " "Use 'mask-denormalized' to work around this.", GSL_EUNSUP) ; ++#else ++ mode |= FP_X_DNML; ++#endif ++ } + + if (exception_mask & GSL_IEEE_MASK_DIVISION_BY_ZERO) + mode &= ~ FP_X_DZ ;