Up to [NetBSD + pkgsrc-wip] / pkgsrc / devel / gmp
Request diff between arbitrary revisions - Display revisions graphically
Keyword substitution: kv
Default branch: MAIN
Recursive revision bump for GMP update, 2nd part.
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.
Update to GNU MP 4.2.1
Changes between GMP version 4.2 and 4.2.1
Bugs:
* Shared library numbers corrected.
* Broken support for 32-bit AIX fixed.
* Misc minor fixes.
Speedups:
* Exact division (mpz_divexact) now falls back to plain division for large
operands.
Features:
* Support for some new systems.
Changes between GMP version 4.1.4 and 4.2
Bugs:
* Minor bug fixes and code generalizations.
* Expanded and improved test suite.
Speedups:
* Many minor optimizations, too many to mention here.
* Division now always subquadratic.
* Computation of n-factorial much faster.
* Added basic x86-64 assembly code.
* Floating-point output is now subquadratic for all bases.
* FFT multiply code now about 25% faster.
* Toom3 multiply code faster.
Features:
* Much improved configure.
* Workarounds for many more compiler bugs.
* Temporary allocations are now made on the stack only if small.
* New systems supported: HPPA-2.0 gcc, IA-64 HP-UX, PowerPC-64 Darwin,
Sparc64 GNU/Linux.
* New i386 fat binaries, selecting optimised code at runtime (--enable-fat).
* New build option: --enable-profiling=instrument.
* New memory function: mp_get_memory_functions.
* New Mersenne Twister random numbers: gmp_randinit_mt, also now used for
gmp_randinit_default.
* New random functions: gmp_randinit_set, gmp_urandomb_ui, gmp_urandomm_ui.
* New integer functions: mpz_combit, mpz_rootrem.
* gmp_printf etc new type "M" for mp_limb_t.
* gmp_scanf and friends now accept C99 hex floats.
* Numeric input and output can now be in bases up to 62.
* Comparisons mpz_cmp_d, mpz_cmpabs_d, mpf_cmp_d recognise infinities.
* Conversions mpz_get_d, mpq_get_d, mpf_get_d truncate towards zero,
previously their behaviour was unspecified.
* Fixes for overflow issues with operands >= 2^31 bits.
Caveats:
* mpfr is gone, and will from now on be released only separately. Please see
www.mpfr.org.
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
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.
Aligned the last line of the buildlink3.mk files with the first line, so that they look nicer.
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).
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.
Reorder location and setting of BUILDLINK_PACKAGES to match template buildlink3.mk file in revision 1.101 of bsd.buildlink3.mk.
Append to BUILDLINK_DEPENDS.<pkg> instead of setting a default value. In the normal case when BUILDLINK_DEPENDS.<pkg> isn't specified, it receives a value only once due to the multiple inclusion protection in the bulldlink3.mk files. In the case where a package includes several buildlink3.mk files that each want a slightly different version of another dependency, having BUILDLINK_DEPENDS.<pkg> be a list allows for the strictest <pkg> dependency to be matched.
bl3ify