Commit graph

45 commits

Author SHA1 Message Date
wiz
53fe698af1 Apply 11 upstream patches, bump to 3.2.1pl11.
Requested by Kai-Uwe Eckhardt.
Remove an incorrect comment.

Changes:

One of the mpfr_exp implementations uses a left shift on an integer
that can be negative: exps <<= 1; and this has an undefined behavior
according to the ISO C standard. In most cases, this will correspond
to a multiplication by 2, and the code will behave as expected
(this is why the bug hadn't been detected until now). But problems
may occur if a sanitizer is used (this is how this bug was detected)
or possibly in case of advanced optimizations, such as LTO. This
is fixed by the exp_2 patch.

The mpfr_fits_u*_p functions return 0 ("doesn't fit") instead of
non-zero ("fits") on negative arguments for which the rounding to
an integer in the given rounding mode is 0. This bug is fixed by
the fits-smallneg patch, which also updates the testcases.

Some tget_flt tests fail in environments where native C floating-point
division by zero is not supported, e.g. regarded as an error, such
as with Clang's sanitizer; some similar tests were already disabled
in such a case, but not all. The tset_ld test triggers a useless
overflow on a double. These problems are fixed by the clang-divby0
patch, which also disables constant division by zero on the native
C type double with Clang in order to avoid incorrect code.

The formatted output functions (mpfr_*printf) are incorrect on the
value 0 when using the alternative form (# flag), a positive
precision, and the g or G conversion specifier: there is one
additional trailing 0. The corresponding test is also incorrect
(explaining why the bug was not detected). These problems are fixed
by the printf-alt0 patch, which also provides some additional
related tests.

Only for applications using the custom interface: The mpfr_custom_init_set
macro has a typo in a variable name, which can yield incorrect
behavior if the second argument is not a simple expression. This
bug is fixed by the custom_init_set patch.

The build fails on li2.c with the GCC -Werror=return-type option
when logging has been enabled. This problem is fixed by the li2-return
patch.

The rounding of mpfr_exp can be incorrect for output precisions
larger than or equal to MPFR_EXP_THRESHOLD (several thousands of
bits; its value depends on the architecture). This bug is fixed by
the exp3 patch, which also provides a testcase.

This MPFR release fails to build with GMP 6 when the --with-gmp-build
configure option is used. The gmp6-compat patch fixes this
compatibility problem.

When dividing a very large number (near the maximum finite one, in
absolute value) by a very small number (near the minimum one, in
absolute value), an integer overflow occurs in the computation of
the exponent of the result, yielding undefined behavior, such as
the result 0 instead of infinity. This bug is fixed by the div-overflow
patch, which also provides a testcase.

The vasprintf.c source file contains incorrect assertions, which
may fail while the computation is valid; this can occur only when
outputting tiny numbers (very small exponents). These assertions
are fixed by the vasprintf patch, which also provides a testcase.

A buffer overflow may occur in mpfr_strtofr. This is due to incorrect
GMP documentation for mpn_set_str about the size of a buffer
(discussion; first fix in the GMP documentation). This bug is
present in the MPFR versions from 2.1.0 (adding mpfr_strtofr) to
this one, and can be detected by running "make check" in a 32-bit
ABI under GNU/Linux with alloca disabled (this is currently possible
by using the --with-gmp-build configure option where alloca has
been disabled in the GMP build). It is fixed by the strtofr patch.
2014-12-05 13:16:26 +00:00
wiz
0f9bcfcee2 Mark two custom targets .PHONY.
XXX: This does not handle distribution patches.
2014-12-05 13:14:21 +00:00
wiz
d33dfdeb7c Reset maintainer for resigned developers. 2013-12-23 11:57:02 +00:00
jperkin
0e6def7961 Split the extract phase into fetch and extract, to ensure that distfiles
can be fetched correctly, keeping in sync with devel/gmp inplace.mk
2013-07-08 20:18:52 +00:00
drochner
4ed54577af update to 3.1.2
changes:
-bugfixes (were patched in 3.1.1plX)
-updated examples
2013-03-15 19:09:06 +00:00
asau
3403d7e4e1 Update to MPFR 3.1.1p2
1. The mpfr_get_decimal64 function (available only when MPFR has
   been configured with --enable-decimal-float) has several bugs,
   fixed by the get_decimal64 patch, which also provides testcases.
   It corresponds to the following changesets in the 3.1 branch:
   8373, 8378, 8380.
2. The ternary value returned by the mpfr_strtofr function can
   be wrong under particular conditions (example). This is fixed
   by the strtofr-ternary-value patch, which also provides
   testcases. It corresponds to the following changeset in the 3.1
   branch: 8399.
2012-09-13 17:51:01 +00:00
asau
b63c74fdfd "user-destdir" is default these days 2012-09-11 23:04:15 +00:00
drochner
14d971563e leave DIST_SUBDIR there - as the distribution scheme worked all the time,
patches will be released rather than full new distfiles, and if they crop
up, we'd have to refetch the original distfile otherwise
2012-08-01 19:29:26 +00:00
wiz
7fb689fc15 Update to 3.1.1:
Changes from version 3.1.0 to version 3.1.1:
- Improved MPFR manual.
- Test coverage: 96.5% lines of code.
- Bug fixes (see <http://www.mpfr.org/mpfr-3.1.0/#fixed> or ChangeLog file).
2012-07-29 20:30:15 +00:00
dholland
7e751949e4 Set BUILDLINK_ABI_DEPENDS correctly (with +=, not ?=)
It turns out there were a lot of these.
2012-05-07 01:53:12 +00:00
hans
4b7dfc03f1 Use the .tar.bz2 distfile to avoid the xzcat dependency and issues when
building this inside of gcc.
2012-05-03 11:55:36 +00:00
wiz
8952e8a1c7 Update to 3.1.0:
Changes from versions 3.0.* to version 3.1.0:
- The "canard à l'orange" release.
- The MPFR source has been reorganized.
- Dropped ansi2knr support.
- TLS support is now detected automatically. If TLS is supported, MPFR is
  built as thread safe by default. To disable TLS explicitly, configure
  MPFR with --disable-thread-safe.
- New --enable-gmp-internals configure option to use GMP's undocumented
  functions (not from the public API). Note that library versioning is
  not guaranteed to work if this option is used.
- The mpfr_urandom and mpfr_urandomb functions now return identical values
  on processors with different word size (assuming the same random seed, and
  since the GMP random generator does not depend itself on the word size,
  cf http://gmplib.org/list-archives/gmp-devel/2010-September/001642.html).
- The mpfr_add_one_ulp and mpfr_sub_one_ulp macros (which are obsolete and
  no more documented) will be removed in a future release.
- Speed improvement for the mpfr_sqr and mpfr_div functions using Mulders'
  algorithm. As a consequence, other functions using those routines are
  also faster.
- Much faster formatted output (mpfr_printf, etc.) with %Rg and similar.
- The --with-gmp-build configure option can now be used when the GMP
  source directory and the GMP build directory are different (without
  having to copy header files manually as before).
- New functions mpfr_buildopt_gmpinternals_p, mpfr_buildopt_tune_case,
  mpfr_frexp, mpfr_grandom and mpfr_z_sub.
- New divide-by-zero exception (flag) and associated functions.
- The mpfr.h header can be included several times, while still supporting
  optional functions (see Section "Headers and Libraries" in the manual).
- Updated tuning parameters.
- Improved MPFR manual.
- MPFR tests: libtool no longer generates wrapper scripts with "make check"
  (so that running the tests under valgrind or gdb is easier).
- Bug fixes.
  Note: The mpfr_subnormalize implementation up to MPFR 3.0.0 did not change
  the flags. In particular, it did not follow the generic rule concerning
  the inexact flag (and no special behavior was specified). The case of the
  underflow flag was more a lack of specification.

NetBSD-6.99.4/amd64:
All 160 tests passed
(1 test was not run)
2012-04-22 15:13:26 +00:00
hans
590cbada61 Add inplace.mk to allow building this inside another package. 2012-04-13 11:00:14 +00:00
hans
ce62caf50c Fix detection of builtin mpfr on SunOS. 2011-09-14 17:18:29 +00:00
drochner
e0f64fff72 in the awk code to extract the version number from a header, avoid
the non-standard "gensub" function, from Alexander Nasonov per PM
2011-07-14 18:06:59 +00:00
drochner
51be567cb1 allow to use gmp/mpfr/mpc which comes with the system (eg on
NetBSD-current with gcc45)
2011-07-08 09:40:57 +00:00
asau
fbc7b30007 Update MPFR to version 3.0.1 patch level 3.
Patch 3 fixes the following bug:

  The mpfr_atan function calls mpfr_check_range on the unrounded
  result (no longer allocated) instead of the rounded result.
  Consequence of this bug: possible incorrect or invalid result and/or
  incorrect flags if the unrounded result or rounded result is not in
  the current exponent range. Or possibly worse if the memory used by
  the unrounded result is modified before the return of the function.
  This bug has been present since MPFR 2.1.0 (exceptions were not
  supported before).


Patch 2 fixes the following bug:

  The mpfr_rec_sqrt function can have undefined behavior due to the
  call of mpn_add_1 or mpn_sub_1 (from GMP) with a null size, which is
  not allowed. The fourth argument of mpn_add_1 or mpn_sub_1 (i.e. the
  value that should have been added or subtracted) is here also 0, so
  that the consequences are limited. In practice, with the current GMP
  version, this yields a small buffer overflow (1 limb, i.e. 32 bits
  or 64 bits), as shown by valgrind, with the possible consequences:
  a crash, or memory corruption (very unlikely) if another process or
  thread modifies the limb at the same time (as in this context, the
  value is first read then written back by GMP). This bug has always
  been present since the introduction of the mpfr_rec_sqrt function
  in MPFR 2.4.0.


Patch 1 fixes the following bug:

  If the exponent range has been reduced such that emax = 1 or 2,
  mpfr_asin may give an incorrect result on +1 and -1.

which should probably never occur in practical codes.
2011-05-08 21:06:51 +00:00
asau
e418f1d7f9 Update MPFR to version 3.0.1
Changes from version 3.0.0 to version 3.0.1:
- Bug fixes (see <http://www.mpfr.org/mpfr-3.0.0/#fixed> or ChangeLog file).
  Note: The mpfr_subnormalize implementation up to MPFR 3.0.0 did not change
  the flags. In particular, it did not follow the generic rule concerning
  the inexact flag (and no special behavior was specified). The case of the
  underflow flag was more a lack of specification.
2011-04-07 00:21:02 +00:00
asau
d11a9560fe Bump revision after math/mpfr update. 2010-07-15 21:35:10 +00:00
asau
8d40396527 Update MPFR to version 3.0.0.
Contributed by Stathis Kamperis on IRC.

Changes from versions 2.4.* to version 3.0.0:

- The "boudin aux pommes" release.
- MPFR 3.0.0 is binary incompatible with previous versions but (almost)
  API compatible.  More precisely the obsolete functions mpfr_random
  and mpfr_random2 have been removed, the meaning of the return type
  of the function mpfr_get_f has changed, and the return type of the
  function mpfr_get_z is now int instead of void.  In practice, this
  should not break any existing code.
- MPFR is now distributed under the GNU Lesser General Public License
  version 3 or later (LGPL v3+).
- Rounding modes GMP_RNDx are now MPFR_RNDx (GMP_RNDx kept for
  compatibility).
- A new rounding mode (MPFR_RNDA) is available to round away from zero.
- The rounding mode type is now mpfr_rnd_t (as in previous versions,
  both mpfr_rnd_t and mp_rnd_t are accepted, but mp_rnd_t may be
  removed in the future).
- The precision type is now mpfr_prec_t (as in previous versions, both
  mpfr_prec_t and mp_prec_t are accepted, but mp_prec_t may be removed
  in the future) and it is now signed (it was unsigned in MPFR 2.*, but
  this was not documented). In practice, this change should not affect
  existing code that assumed nothing on the precision type.
- MPFR now has its own exponent type mpfr_exp_t, which is currently
  the same as GMP's mp_exp_t.
- Functions mpfr_random and mpfr_random2 have been removed.
- mpfr_get_f and mpfr_get_z now return a ternary value.
- mpfr_strtofr now accepts bases from 37 to 62.
- mpfr_custom_get_mantissa was renamed to mpfr_custom_get_significand
  (mpfr_custom_get_mantissa is still available via a #define).
- Functions mpfr_get_si, mpfr_get_ui, mpfr_get_sj, mpfr_get_uj,
  mpfr_get_z and mpfr_get_z_2exp no longer have cases with undefined
  behavior; in these cases, the behavior is now specified, and in
  particular, the erange flag is set.
- New functions mpfr_buildopt_tls_p and mpfr_buildopt_decimal_p giving
  information about options used at MPFR build time.
- New function mpfr_regular_p.
- New function mpfr_set_zero.
- New function mpfr_digamma.
- New function mpfr_ai (incomplete, experimental).
- New functions mpfr_set_flt and mpfr_get_flt to convert from/to the
  float type.
- New function mpfr_urandom.
- New function mpfr_set_z_2exp (companion to mpfr_get_z_2exp, which
  was renamed from mpfr_get_z_exp in previous versions).
- Speed improvement for large operands in the trigonometric functions
  (mpfr_sin, mpfr_cos, mpfr_tan, mpfr_sin_cos): speedup of about 2.5
  for 10^5 digits, of about 5 for 10^6 digits.
- Speed improvement for large operands of the inverse trigonometric
  functions (arcsin, arccos, arctan): about 2 for 10^3 digits, up to
  2.7 for 10^6 digits.
- Some documentation files are installed in $docdir.
- The detection of a GMP build directory (more precisely, the internal
  header files of GMP) was previously done separately from the use of
  the --with-gmp-build configure option. This was not consistent with
  the documentation and with other parts of the configure script. So,
  as of MPFR 3.0.0, the internal header files of GMP are now used if
  and only if the --with-gmp-build configure option is given.
- The configure script recognizes some extra "long double" formats
  (double big endian, double little endian, double-double big endian).
- MPFR manual: added "API Compatibility" section.
- Test coverage: 97.1% lines of code.
- Bug fixes.
2010-07-15 20:30:40 +00:00
asau
1807ff2338 Recursive revision bump for GMP update, 2nd part. 2010-03-24 21:54:15 +00:00
asau
00708ce7e3 Recursive revision bump for GMP update. 2010-03-24 19:43:21 +00:00
asau
45f59d1309 Update to MPFR 2.4.2-p3.
Previously used cumulative patch is no longer distributed,
replace it with individual patches.
It is hard to tell what the patch level was before.
2010-01-15 14:04:36 +00:00
wiz
5f91fd7010 Set LICENSE. 2009-12-15 12:36:50 +00:00
wiz
a324d95850 Update to 2.4.2:
Changes from version 2.4.1 to version 2.4.2:
- Security fix in formatted output functions (buffer overflow).
- Formatted output functions: 6 is now the default value for
  empty precision field with %Rf.
- Better portability of configure script.
- Detection of intmax_t and uintmax_t types.
- Improved documentation: mpfr_get_z_exp, mpfr_strtofr, mpfr_get_str and
  formatted output functions.
- Improved message in case of assertion failure.
- Test coverage: 97.0% lines of code.
- Updated tcmp_ld test to really test the long double.
- Some documentation files are installed in $docdir.
- Removed mpfr_init_cache (unused and undocumented function).
- Fixed the way $CC / $CFLAGS are got from gmp.h (__GMP_CC / __GMP_CFLAGS).
- Bug fixes.
- Also note that GCC 4.4.0 (only this obsolete version) does not build
  MPFR 2.4.2 correctly; this is detected by "make check" (failures in
  tget_z and tpow_all).
2009-12-15 12:35:57 +00:00
joerg
2d1ba244e9 Simply and speed up buildlink3.mk files and processing.
This changes the buildlink3.mk files to use an include guard for the
recursive include. The use of BUILDLINK_DEPTH, BUILDLINK_DEPENDS,
BUILDLINK_PACKAGES and BUILDLINK_ORDER is handled by a single new
variable BUILDLINK_TREE. Each buildlink3.mk file adds a pair of
enter/exit marker, which can be used to reconstruct the tree and
to determine first level includes. Avoiding := for large variables
(BUILDLINK_ORDER) speeds up parse time as += has linear complexity.
The include guard reduces system time by avoiding reading files over and
over again. For complex packages this reduces both %user and %sys time to
half of the former time.
2009-03-20 19:23:50 +00:00
drochner
2a1819ff4d update to 2.4.1
changes:
-Behavior of mpfr_check_range changed
-Function mpfr_init_gmp_rand is no longer defined
-New functions
-Configure test for TLS support
-Get default $CC and $CFLAGS from gmp.h
-Security fix in mpfr_snprintf and mpfr_vsnprintf (buffer overflow)
-Configure: new checks for length modifiers hh and ll (new in C99)
-bugfixes
-documentation fixes
2009-03-19 11:54:53 +00:00
bjs
cdeeca638c Update to mpfr-2.3.1. Add new distribution patch, appease pkglint.
Changes from version 2.3.0 to version 2.3.1:

- Changes in the behavior of mpfr_strtofr and in its documentation
  concerning particular cases where the code and the documentation
  did not match.
- Bug fixes; see <http://www.mpfr.org/mpfr-2.3.0/#bugs>.
- Configure test for TLS support.
- Improved MPFR manual.
2008-08-17 07:59:13 +00:00
joerg
f605fec2db Mark as destdir ready. 2008-07-14 12:55:56 +00:00
drochner
b82198cefb update to 2.3.0
changes:
-New functions mpfr_j0, mpfr_j1, mpfr_jn, mpfr_y0, mpfr_y1, mpfr_yn,
 mpfr_lgamma, mpfr_remainder, mpfr_remquo, mpfr_fms, mpfr_signbit,
 mpfr_setsign, mpfr_copysign, mpfr_get_patches
-Functions mpfr_sin, mpfr_cos and mpfr_sin_cos improved
-More detailed MPFR manual
-Improved tests (make check)
-Bug fixes
2007-09-18 20:15:57 +00:00
jlam
c16221a4db Change the format of BUILDLINK_ORDER to contain depth information as well,
and add a new helper target and script, "show-buildlink3", that outputs
a listing of the buildlink3.mk files included as well as the depth at
which they are included.

For example, "make show-buildlink3" in fonts/Xft2 displays:

	zlib
	fontconfig
	    iconv
	    zlib
	    freetype2
	    expat
	freetype2
	Xrender
	    renderproto
2006-07-08 23:10:35 +00:00
jlam
9430e49307 Track information in a new variable BUILDLINK_ORDER that informs us
of the order in which buildlink3.mk files are (recursively) included
by a package Makefile.
2006-07-08 22:38:58 +00:00
rillig
96fc47c14f Aligned the last line of the buildlink3.mk files with the first line, so
that they look nicer.
2006-04-12 10:26:59 +00:00
reed
5abef9be14 Over 1200 files touched but no revisions bumped :)
RECOMMENDED is removed. It becomes ABI_DEPENDS.

BUILDLINK_RECOMMENDED.foo becomes BUILDLINK_ABI_DEPENDS.foo.

BUILDLINK_DEPENDS.foo becomes BUILDLINK_API_DEPENDS.foo.

BUILDLINK_DEPENDS does not change.

IGNORE_RECOMMENDED (which defaulted to "no") becomes USE_ABI_DEPENDS
which defaults to "yes".

Added to obsolete.mk checking for IGNORE_RECOMMENDED.

I did not manually go through and fix any aesthetic tab/spacing issues.

I have tested the above patch on DragonFly building and packaging
subversion and pkglint and their many dependencies.

I have also tested USE_ABI_DEPENDS=no on my NetBSD workstation (where I
have used IGNORE_RECOMMENDED for a long time). I have been an active user
of IGNORE_RECOMMENDED since it was available.

As suggested, I removed the documentation sentences suggesting bumping for
"security" issues.

As discussed on tech-pkg.

I will commit to revbump, pkglint, pkg_install, createbuildlink separately.

Note that if you use wip, it will fail!  I will commit to pkgsrc-wip
later (within day).
2006-04-06 06:21:32 +00:00
jlam
739ade02f5 List the info pages directly in the PLIST and ensure that we honor
PKGINFODIR.
2006-03-31 23:56:28 +00:00
joerg
ff9923ceb3 Fix DragonFly: include stdint.h. 2006-03-24 10:35:29 +00:00
drochner
cb33ab09ed update to 2.2.0
changes:
-Bug fixes
-New functions mpfr_set_overflow, mpfr_set_underflow, mpfr_set_inexflag,
 mpfr_set_erangeflag, mpfr_set_nanflag, mpfr_erfc, mpfr_atan2, mpfr_pow_z,
 mpfr_subnormalize, mpfr_const_catalan, mpfr_sec, mpfr_csc, mpfr_cot,
 mpfr_root, mpfr_eint, mpfr_get_f, mpfr_sech, mpfr_csch, mpfr_coth,
 mpfr_lngamma
-New macro: MPFR_VERSION_STRING
-The exported MPFR variables have been removed from mpfr.h
-cleanup, speed improvement...
2006-03-02 19:09:39 +00:00
joerg
a4dbc68953 config.guess / config.sub override. 2006-01-03 20:48:01 +00:00
rillig
579e977969 Ran "pkglint --autofix", which corrected some of the quoting issues in
CONFIGURE_ARGS.
2005-12-05 23:55:01 +00:00
rillig
3525c40187 Explicitly set BUILD_DIRS to emphasize it is different from CONFIGURE_DIRS. 2005-11-04 11:12:29 +00:00
tv
f816d81489 Remove USE_BUILDLINK3 and NO_BUILDLINK; these are no longer used. 2005-04-11 21:44:48 +00:00
agc
1e46c076aa Add RMD160 digests in addition to SHA1 ones. 2005-02-23 12:06:53 +00:00
tv
c487cb967a Libtool fix for PR pkg/26633, and other issues. Update libtool to 1.5.10
in the process.  (More information on tech-pkg.)

Bump PKGREVISION and BUILDLINK_DEPENDS of all packages using libtool and
installing .la files.

Bump PKGREVISION (only) of all packages depending directly on the above
via a buildlink3 include.
2004-10-03 00:12:51 +00:00
rh
d4f392c55d Add a buildlink3.mk file 2004-06-05 22:19:53 +00:00
rh
d344d8f280 Initial import of mpfr-2.0.3, a library for multiple-precision
floating-point computations
2004-06-05 22:11:38 +00:00