aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPhil Christensen <philc@microsoft.com>2018-12-20 00:01:14 -0800
committerGitHub <noreply@github.com>2018-12-20 00:01:14 -0800
commit32767dd5f677be54a9b046d1bec1035b71ca0a4c (patch)
tree39a7242d14bfc9801a0775bcdbb61ea4d38c1506
parent28e221744a7592e2a4539a77c3252e52708d48ec (diff)
parentdd005656273d5d004ea7a74256a2cb9ca9f89dc7 (diff)
downloadvcpkg-32767dd5f677be54a9b046d1bec1035b71ca0a4c.tar.gz
vcpkg-32767dd5f677be54a9b046d1bec1035b71ca0a4c.zip
Merge pull request #4964 from studiofuga/dev/studiofuga/mpfr-varargs-fix
[mpfr] Update mpfr to 4.0.1 and fix compilation under gcc 7
-rw-r--r--ports/mpfr/CMakeLists.txt332
-rw-r--r--ports/mpfr/CONTROL2
-rw-r--r--ports/mpfr/gmp_printf.c6
-rw-r--r--ports/mpfr/portfile.cmake10
-rw-r--r--ports/mpfr/test_stdarg.c6
5 files changed, 182 insertions, 174 deletions
diff --git a/ports/mpfr/CMakeLists.txt b/ports/mpfr/CMakeLists.txt
index ed48eaf59..f0064666c 100644
--- a/ports/mpfr/CMakeLists.txt
+++ b/ports/mpfr/CMakeLists.txt
@@ -11,237 +11,240 @@ set(GMP_INCLUDE_DIRS ${GMP_INCLUDE_DIR})
# Sources
set(SRCS
- src/gmp_printf.c
- src/mpfr.h
- src/mpf2mpfr.h
- src/mpfr-gmp.h
- src/mpfr-impl.h
- src/mpfr-intmax.h
- src/mpfr-longlong.h
- src/mpfr-thread.h
- src/exceptions.c
- src/extract.c
- src/uceil_exp2.c
- src/uceil_log2.c
- src/ufloor_log2.c
+ src/abort_prec_max.c
+ src/acos.c
+ src/acosh.c
src/add.c
src/add1.c
+ src/add1sp.c
+ src/add_d.c
src/add_ui.c
src/agm.c
+ src/ai.c
+ src/asin.c
+ src/asinh.c
+ src/atan.c
+ src/atan2.c
+ src/atanh.c
+ src/bernoulli.c
+ src/beta.c
+ src/buildopt.c
+ src/cache.c
+ src/cbrt.c
+ src/check.c
src/clear.c
+ src/clears.c
src/cmp.c
+ src/cmp2.c
src/cmp_abs.c
+ src/cmp_d.c
+ src/cmp_ld.c
src/cmp_si.c
src/cmp_ui.c
src/comparisons.c
+ src/constant.c
+ src/const_catalan.c
+ src/const_euler.c
+ src/const_log2.c
+ src/const_pi.c
+ src/copysign.c
+ src/cos.c
+ src/cosh.c
+ src/cot.c
+ src/coth.c
+ src/csc.c
+ src/csch.c
+ src/digamma.c
+ src/dim.c
+ src/div.c
src/div_2exp.c
- src/div_2si.c
+ src/div_2si.c
src/div_2ui.c
- src/div.c
+ src/div_d.c
src/div_ui.c
src/dump.c
+ src/d_div.c
+ src/d_sub.c
+ src/eint.c
src/eq.c
+ src/erandom.c
+ src/erf.c
+ src/erfc.c
+ src/exceptions.c
+ src/exp.c
src/exp10.c
src/exp2.c
src/exp3.c
- src/exp.c
+ src/expm1.c
+ src/exp_2.c
+ src/extract.c
+ src/factorial.c
+ src/fits_intmax.c
+ src/fits_sint.c
+ src/fits_slong.c
+ src/fits_sshort.c
+ src/fits_uint.c
+ src/fits_uintmax.c
+ src/fits_ulong.c
+ src/fits_ushort.c
+ src/fma.c
+ src/fmma.c
+ src/fms.c
src/frac.c
+ src/free_cache.c
src/frexp.c
+ src/gamma.c
+ src/gammaonethird.c
+ src/gamma_inc.c
src/get_d.c
+ src/get_d64.c
src/get_exp.c
+ src/get_f.c
+ src/get_float128.c
+ src/get_flt.c
+ src/get_ld.c
+ src/get_patches.c
+ src/get_q.c
+ src/get_si.c
+ src/get_sj.c
src/get_str.c
+ src/get_ui.c
+ src/get_uj.c
+ src/get_z.c
+ src/get_z_exp.c
+ src/gmp_op.c
+ src/grandom.c
+ src/hypot.c
src/init.c
+ src/init2.c
+ src/inits.c
+ src/inits2.c
src/inp_str.c
- src/isinteger.c
+ src/int_ceil_log2.c
src/isinf.c
+ src/isinteger.c
src/isnan.c
src/isnum.c
- src/const_log2.c
+ src/isqrt.c
+ src/isregular.c
+ src/iszero.c
+ src/jn.c
+ src/li2.c
+ src/lngamma.c
src/log.c
+ src/log10.c
+ src/log1p.c
+ src/log2.c
+ src/logging.c
+ src/log_ui.c
+ src/minmax.c
+ src/min_prec.c
src/modf.c
+ src/mpfr-gmp.c
+ src/mpfr-mini-gmp.c
+ src/mpn_exp.c
+ src/mp_clz_tab.c
+ src/mul.c
+ src/mulders.c
src/mul_2exp.c
src/mul_2si.c
src/mul_2ui.c
- src/mul.c
+ src/mul_d.c
src/mul_ui.c
src/neg.c
src/next.c
+ src/nrandom.c
+ src/odd_p.c
src/out_str.c
- src/printf.c
- src/vasprintf.c
- src/const_pi.c
+ src/pool.c
src/pow.c
+ src/powerof2.c
src/pow_si.c
src/pow_ui.c
+ src/pow_z.c
+ src/printf.c
src/print_raw.c
- src/print_rnd_mode.c
+ src/print_rnd_mode.c
+ src/random_deviate.c
+ src/rec_sqrt.c
src/reldiff.c
+ src/rem1.c
+ src/rint.c
+ src/rndna.c
+ src/root.c
+ src/round_near_x.c
+ src/round_p.c
src/round_prec.c
+ src/scale2.c
+ src/sec.c
+ src/sech.c
src/set.c
src/setmax.c
src/setmin.c
+ src/setsign.c
src/set_d.c
+ src/set_d64.c
src/set_dfl_prec.c
src/set_exp.c
- src/set_rnd.c
src/set_f.c
+ src/set_float128.c
+ src/set_flt.c
+ src/set_inf.c
+ src/set_ld.c
+ src/set_nan.c
src/set_prc_raw.c
src/set_prec.c
src/set_q.c
+ src/set_rnd.c
src/set_si.c
+ src/set_si_2exp.c
+ src/set_sj.c
src/set_str.c
src/set_str_raw.c
src/set_ui.c
+ src/set_ui_2exp.c
+ src/set_uj.c
src/set_z.c
+ src/set_zero.c
+ src/set_z_exp.c
+ src/sgn.c
+ src/signbit.c
+ src/sin.c
+ src/sinh.c
+ src/sinh_cosh.c
+ src/sin_cos.c
+ src/si_op.c
+ src/sqr.c
src/sqrt.c
src/sqrt_ui.c
+ src/stack_interface.c
+ src/strtofr.c
src/sub.c
src/sub1.c
+ src/sub1sp.c
+ src/subnormal.c
+ src/sub_d.c
src/sub_ui.c
- src/rint.c
+ src/sum.c
+ src/swap.c
+ src/tan.c
+ src/tanh.c
+ src/ubf.c
+ src/uceil_exp2.c
+ src/uceil_log2.c
+ src/ufloor_log2.c
src/ui_div.c
+ src/ui_pow.c
+ src/ui_pow_ui.c
src/ui_sub.c
src/urandom.c
src/urandomb.c
- src/get_z_exp.c
- src/swap.c
- src/factorial.c
- src/cosh.c
- src/sinh.c
- src/tanh.c
- src/sinh_cosh.c
- src/acosh.c
- src/asinh.c
- src/atanh.c
- src/atan.c
- src/cmp2.c
- src/exp_2.c
- src/asin.c
- src/const_euler.c
- src/cos.c
- src/sin.c
- src/tan.c
- src/fma.c
- src/fms.c
- src/hypot.c
- src/log1p.c
- src/expm1.c
- src/log2.c
- src/log10.c
- src/ui_pow.c
- src/ui_pow_ui.c
- src/minmax.c
- src/dim.c
- src/signbit.c
- src/copysign.c
- src/setsign.c
- src/gmp_op.c
- src/init2.c
- src/acos.c
- src/sin_cos.c
- src/set_nan.c
- src/set_inf.c
- src/set_zero.c
- src/powerof2.c
- src/gamma.c
- src/set_ld.c
- src/get_ld.c
- src/cbrt.c
- src/volatile.c
- src/fits_s.h
- src/fits_sshort.c
- src/fits_sint.c
- src/fits_slong.c
- src/fits_u.h
- src/fits_ushort.c
- src/fits_uint.c
- src/fits_ulong.c
- src/fits_uintmax.c
- src/fits_intmax.c
- src/get_si.c
- src/get_ui.c
- src/zeta.c
- src/cmp_d.c
- src/erf.c
- src/inits.c
- src/inits2.c
- src/clears.c
- src/sgn.c
- src/check.c
- src/sub1sp.c
+ src/vasprintf.c
src/version.c
- src/mpn_exp.c
- src/mpfr-gmp.c
- src/mp_clz_tab.c
- src/sum.c
- src/add1sp.c
- src/free_cache.c
- src/si_op.c
- src/cmp_ld.c
- src/set_ui_2exp.c
- src/set_si_2exp.c
- src/set_uj.c
- src/set_sj.c
- src/get_sj.c
- src/get_uj.c
- src/get_z.c
- src/iszero.c
- src/cache.c
- src/sqr.c
- src/int_ceil_log2.c
- src/isqrt.c
- src/strtofr.c
- src/pow_z.c
- src/logging.c
- src/mulders.c
- src/get_f.c
- src/round_p.c
- src/erfc.c
- src/atan2.c
- src/subnormal.c
- src/const_catalan.c
- src/root.c
- src/gen_inverse.h
- src/sec.c
- src/csc.c
- src/cot.c
- src/eint.c
- src/sech.c
- src/csch.c
- src/coth.c
- src/round_near_x.c
- src/constant.c
- src/abort_prec_max.c
- src/stack_interface.c
- src/lngamma.c
- src/zeta_ui.c
- src/set_d64.c
- src/get_d64.c
- src/jn.c
+ src/volatile.c
src/yn.c
- src/rem1.c
- src/get_patches.c
- src/add_d.c
- src/sub_d.c
- src/d_sub.c
- src/mul_d.c
- src/div_d.c
- src/d_div.c
- src/li2.c
- src/rec_sqrt.c
- src/min_prec.c
- src/buildopt.c
- src/digamma.c
- src/bernoulli.c
- src/isregular.c
- src/set_flt.c
- src/get_flt.c
- src/scale2.c
- src/set_z_exp.c
- src/ai.c
- src/gammaonethird.c
- src/ieee_floats.h
- src/grandom.c)
+ src/zeta.c
+ src/zeta_ui.c)
configure_file("src/mparam_h.in" "mparam.h")
@@ -255,6 +258,11 @@ if(BUILD_SHARED_LIBS)
target_compile_definitions(mpfr PRIVATE __GMP_LIBGMP_DLL)
endif()
+try_compile(I_HAVE_STDARG ${CMAKE_BINARY_DIR} ${PROJECT_SOURCE_DIR}/test_stdarg.c)
+if (I_HAVE_STDARG)
+ target_compile_definitions(mpfr PRIVATE HAVE_STDARG)
+endif (I_HAVE_STDARG)
+
target_link_libraries(mpfr ${GMP_LIBRARIES})
target_include_directories(mpfr PUBLIC ${GMP_INCLUDE_DIRS})
diff --git a/ports/mpfr/CONTROL b/ports/mpfr/CONTROL
index fdfe6deb0..e9f4451be 100644
--- a/ports/mpfr/CONTROL
+++ b/ports/mpfr/CONTROL
@@ -1,4 +1,4 @@
Source: mpfr
-Version: 3.1.6-2
+Version: 4.0.1
Description: The MPFR library is a C library for multiple-precision floating-point computations with correct rounding
Build-Depends: mpir
diff --git a/ports/mpfr/gmp_printf.c b/ports/mpfr/gmp_printf.c
deleted file mode 100644
index 1ccb94c0c..000000000
--- a/ports/mpfr/gmp_printf.c
+++ /dev/null
@@ -1,6 +0,0 @@
-#include <stdio.h>
-#include <stdarg.h>
-
-extern int __gmpfr_fprintf(const char *fmt, va_list argp) {
- return fprintf(stderr, fmt, argp);
-}
diff --git a/ports/mpfr/portfile.cmake b/ports/mpfr/portfile.cmake
index 689b075fc..7e455041b 100644
--- a/ports/mpfr/portfile.cmake
+++ b/ports/mpfr/portfile.cmake
@@ -1,14 +1,14 @@
include(vcpkg_common_functions)
-set(SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/mpfr-3.1.6)
+set(SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/mpfr-4.0.1)
vcpkg_download_distfile(ARCHIVE
- URLS "http://www.mpfr.org/mpfr-3.1.6/mpfr-3.1.6.tar.xz"
- FILENAME "mpfr-3.1.6.tar.xz"
- SHA512 746ee74d5026f267f74ab352d850ed30ff627d530aa840c71b24793e44875f8503946bd7399905dea2b2dd5744326254d7889337fe94cfe58d03c4066e9d8054
+ URLS "http://www.mpfr.org/mpfr-4.0.1/mpfr-4.0.1.tar.xz"
+ FILENAME "mpfr-4.0.1.tar.xz"
+ SHA512 137ad68bc1e33a155edc1247fcdba27f999cf48ed526773136584090ddf2cfdfc9ea79fbf74ea1943b835b4b1ff29b05087114738c6ad3b485848540f30cac4f
)
vcpkg_extract_source_archive(${ARCHIVE})
file(COPY ${CMAKE_CURRENT_LIST_DIR}/CMakeLists.txt DESTINATION ${SOURCE_PATH})
-file(COPY ${CMAKE_CURRENT_LIST_DIR}/gmp_printf.c DESTINATION ${SOURCE_PATH}/src)
+file(COPY ${CMAKE_CURRENT_LIST_DIR}/test_stdarg.c DESTINATION ${SOURCE_PATH})
vcpkg_configure_cmake(
SOURCE_PATH ${SOURCE_PATH}
diff --git a/ports/mpfr/test_stdarg.c b/ports/mpfr/test_stdarg.c
new file mode 100644
index 000000000..dc1e2d7b4
--- /dev/null
+++ b/ports/mpfr/test_stdarg.c
@@ -0,0 +1,6 @@
+# include <stdarg.h>
+
+int main(int argc, char *argv) {
+ return 0;
+}
+