1Copyright 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013 Free Software Foundation, Inc. 2Contributed by the AriC and Caramel projects, INRIA. 3 4This file is part of the GNU MPFR Library. 5 6The GNU MPFR Library is free software; you can redistribute it and/or modify 7it under the terms of the GNU Lesser General Public License as published by 8the Free Software Foundation; either version 3 of the License, or (at your 9option) any later version. 10 11The GNU MPFR Library is distributed in the hope that it will be useful, but 12WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY 13or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public 14License for more details. 15 16You should have received a copy of the GNU Lesser General Public License 17along with the GNU MPFR Library; see the file COPYING.LESSER. If not, see 18http://www.gnu.org/licenses/ or write to the Free Software Foundation, Inc., 1951 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. 20 21 22 23 Installing GNU MPFR 24 =================== 25 26Note: In case of problem, please read this INSTALL file carefully before 27reporting a bug, in particular Section "In case of problem" below. Some 28problems are due to bad configuration on the user side (not specific to 29MPFR). 30 310. You first need to install GMP. See <http://www.gnu.org/software/gmp/>. 32 MPFR requires GMP version 4.1 or later. 33 341. Extract the files from the archive. 35 362. It is strongly advised to apply the latest patches if this has 37 not been done yet and if patches are available. You can check 38 on the release page: 39 40 http://www.mpfr.org/mpfr-3.1.2/ 41 42 which may have additional information. The patches can be applied 43 with commands like: 44 45 wget http://www.mpfr.org/mpfr-3.1.2/allpatches 46 patch -N -Z -p1 < allpatches 47 48 or 49 50 curl http://www.mpfr.org/mpfr-3.1.2/allpatches | patch -N -Z -p1 51 52 (Those instructions are for the GNU patch command, for example 53 /usr/bin/gpatch on Solaris.) 54 553. In the MPFR directory, to detect your system, type: 56 ./configure 57 possibly with options (see below, in particular if this step or 58 one of the following fails). You should also check whether WARNING 59 lines have been output (such a problem may cause a failure in one 60 of the following steps). 61 Note: paths provided in configure options must always be absolute 62 (relative paths are not supported). 63 644. To build the library, type: 65 make 66 67 [optional] if you want to tune MPFR for your specific architecture, see 68 the section "Tuning MPFR" below. Note that for most common architectures, 69 MPFR includes some default tuning parameters which should be near from 70 optimal. 71 725. To check the built library (runs the test files), type: 73 make check 74 756. To install it (default "/usr/local" | see "--prefix" option), type: 76 make install 77 78If you installed MPFR (header and library) in directories that are 79not searched by default by the compiler and/or linking tools, then, 80like with other libraries, you may need to set up some environment 81variables such as C_INCLUDE_PATH (to find the header mpfr.h), 82LIBRARY_PATH (to find the library), and if the shared library has 83been installed, LD_LIBRARY_PATH (before execution) or LD_RUN_PATH 84(before linking); this list is not exhaustive and some environment 85variables may be specific to your system. "make install" gives some 86instructions; please read them. You can also find more information 87in the manuals of your compiler and linker. The MPFR FAQ may also 88give some information. 89 90Remember that if you have several MPFR (or GMP) versions installed 91(e.g., one with the system, and one, newer, by you), you will not 92necessarily get a compilation/linking error if a wrong library is 93used (e.g., because LD_LIBRARY_PATH has not been set correctly). 94But unexpected results may occur. 95 96Under Mac OS X, if the shared library was not installed and you use 97Apple's linker (this is the default), you will also need to provide 98the -search_paths_first linker flag ("-Wl,-search_paths_first" when 99you link via gcc) to make sure that the right library is selected, 100as by default, Apple's linker selects a shared library preferably, 101even when it is farther in the library paths. We recall that if a 102wrong library is selected due to this behavior, unexpected results 103may occur. 104 105 106Building the documentation 107========================== 108 109To build the documentation in various formats, you may first need to 110install recent versions of some utilities such as texinfo. 111 112* Type "make info" to produce the documentation in the info format. 113 114* Type "make pdf" to produce the documentation in the PDF format. 115 116* Type "make dvi" to produce the documentation in the DVI format. 117 118* Type "make ps" to produce the documentation in the Postscript format. 119 120* Type "make html" to produce the documentation in the HTML format 121 (in several pages); if you want only one output HTML file, then 122 type "makeinfo --html --no-split mpfr.texi" from the doc directory 123 instead. 124 125 126Building MPFR with internal GMP header files 127============================================ 128 129MPFR built with internal GMP header files is a bit faster, so you may want 130to build it with them. Just do this in step 1: 131 132 ./configure --with-gmp-build=GMPBUILD 133 134where GMPBUILD is the GMP build directory. The needed header files are: 135gmp-impl.h, longlong.h and all the necessary headers to use them, which 136may be located either in the GMP source directory or in the GMP build 137directory, in case they are different (MPFR takes care of that, as of 138MPFR 3.1.0). 139 140Warning: the library obtained in this way may use some internal GMP 141symbols, and thus dynamically linking your software with a different 142version of GMP might fail, even though it is declared as compatible 143by Libtool's versioning system. 144 145 146Tuning MPFR 147=========== 148 149For this, you need to build MPFR with a GMP build directory (see above). 150In the GMP build directory, you also need to go into the "tune" subdirectory 151and type "make speed". This will build the GMP speed library, which is used 152by the MPFR tuning mechanism. 153 154Then go back to the MPFR build directory, go into the "tune" subdirectory and 155type "make tune". This will build an optimized file "mparam.h" for your 156specific architecture. 157 158 159./configure options 160=================== 161 162--prefix=DIR installs MPFR headers and library in DIR/include and 163 DIR/lib respectively (the default is "/usr/local"). 164 165--with-gmp-include=DIR assumes that DIR contains gmp.h 166--with-gmp-lib=DIR assumes that DIR contains the GMP library 167--with-gmp=DIR assumes that DIR is where you have installed GMP. 168 same as --with-gmp-lib=DIR/lib 169 and --with-gmp-include=DIR/include 170 (use either --with-gmp alone or one or both of 171 --with-gmp-lib/--with-gmp-include) 172 Warning! Do not use these options if you have 173 CPPFLAGS and/or LDFLAGS containing a -I or -L 174 option with a directory that contains a GMP 175 header or library file, as these options just 176 add -I and -L options to CPPFLAGS and LDFLAGS 177 *after* the ones that are currently declared, 178 so that DIR will have a lower precedence. Also, 179 this may not work if DIR is a system directory 180 (typically /usr or /usr/local); see below. 181 182--with-gmp-build=DIR assumes that DIR contains the GMP build directory, 183 and enables the use of GMP internals (see above). 184 Warning! This option and the group of options 185 --with-gmp are mutually exclusive. 186 187--enable-assert build MPFR with assertions. 188 189--enable-thread-safe build MPFR as thread safe, using compiler-level 190 Thread Local Storage (TLS). Note: TLS support is 191 roughly tested by configure. If configure detects 192 that TLS does not work (because of the compiler, 193 linker or system libraries), it will output an 194 error message, telling you to build MPFR without 195 thread safe. For instance, though Mac OS X uses 196 GCC, it may not currently support GCC's __thread 197 storage class. 198 199--disable-thread-safe build MPFR without TLS. By default, TLS support 200 is detected automatically, and MPFR is built as 201 thread safe if supported. However this detection 202 is only a heuristic: TLS can be detected as 203 supported while its support is incomplete or 204 buggy (MPFR tests may fail). In such a case, 205 this option is useful. 206 207--enable-gmp-internals allows the MPFR build to use GMP's undocumented 208 functions (not from the public API). Note that 209 library versioning is not guaranteed to work if 210 this option is used. Thus it must not be used in 211 binary distributions. 212 213Note: By default, the configure script tries to set CC/CFLAGS to GMP's 214ones (this feature needs GMP 4.3.0 or later, or the --with-gmp-build 215option). However this is not guaranteed to work as the configure script 216does some compiler tests earlier, and the change may be too late. Also, 217the values obtained from GMP may be incorrect if GMP has been built 218on a different machine. In such a case, the user may need to specify 219CC/CFLAGS as explained below. 220 221Run "./configure --help" to see the other options (autoconf default options). 222 223 224If 'gmp.h' and 'libgmp' do not match 225==================================== 226 227Under some circumstances, the configure script may output a message 228saying: 229 230 'gmp.h' and 'libgmp' seem to have different versions or 231 we cannot run a program linked with GMP (if you cannot 232 see the version numbers above). [...] 233 234Even though the configure script does not fail in such a case, this 235message most often indicates a real error, which needs to be avoided. 236Possible causes are: 237 238* The wanted GMP library does not have the same ABI as the one chosen 239 to build MPFR. The consequences may be: 240 241 - A different GMP library (with the correct ABI) has been found, 242 but does not have the same version as 'gmp.h'. 243 244 - No other GMP libraries have been found (in this case, no version 245 numbers should be printed above the warning message). 246 247 This is incorrect and one of the following steps (make, make check) 248 will probably fail. GMP (actually gmp.h) now provides CC and CFLAGS 249 information to select the correct ABI, so that this problem should 250 no longer occur; but if GMP was provided by a binary package, such 251 information may not be valid. See the 252 253 checking for CC and CFLAGS in gmp.h... 254 255 line in the configure output (about the 11th line) and the following 256 few ones for more information. You may need to reinstall GMP or to 257 provide your own CC and/or CFLAGS. See also the remaining of this 258 INSTALL file. 259 260* A configure option like --with-gmp or --with-gmp-include was used 261 with a system include directory, e.g. one of the following: 262 263 --with-gmp=/usr 264 --with-gmp=/usr/local 265 --with-gmp-include=/usr/include 266 --with-gmp-include=/usr/local/include 267 268 GCC (and possibly other compilers) will ignore such a directive for 269 include directories (but this rule is not applied for the library 270 itself!). This means that the library search paths will be reordered 271 as declared, but the specified include directory will still be near 272 the end of the include search paths (thus with a low precedence). 273 This is not a problem if only one GMP version is installed, but 274 otherwise, a wrong gmp.h may be chosen, so that the versions of 275 gmp.h and libgmp may not match. The suggestions are the following: 276 277 - If you want to use the GMP version under /usr, then you should 278 uninstall all the other GMP versions (header and library files) 279 that may be seen in the search paths, in particular those under 280 /usr/local. 281 282 - If you want to use the GMP version under /usr/local, then you 283 should uninstall all the other GMP versions (header and library 284 files) that may be seen in the search paths, but *NOT* the one 285 under /usr (the version under /usr is provided by the OS vendor, 286 and changing/removing anything related to it may break your 287 system, and /usr should have a lower precedence than /usr/local 288 anyway). 289 290 To find where GMP versions have been installed: 291 292 $ locate libgmp (if you have a locate database) 293 294 and if the compiler is GCC: 295 296 $ gcc -print-file-name=libgmp.so (under most systems) 297 $ gcc -print-file-name=libgmp.dylib (under Mac OS X) 298 299 and if this does not work, you may try: 300 301 $ gcc -print-search-dirs 302 303* An official GCC version was used under Debian GNU/Linux. Problems 304 may come from the fact that Debian chose a different convention 305 for library search paths concerning 32-bit and 64-bit libraries. 306 A possible problem can be, for instance: 307 308 [Debian's GCC, correct library path] 309 $ gcc -print-file-name=libgmp.so 310 /home/vlefevre/gmp/athlon64/lib/../lib/libgmp.so 311 312 [Official GCC, incorrect library path] 313 $ gcc-4.3.1 -print-file-name=libgmp.so 314 /usr/lib/../lib64/libgmp.so 315 316 The solution: use a GCC provided by Debian or add symbolic links 317 such as lib64 -> lib (on 64-bit machines) for your library paths. 318 319* The problem may also be temporary and only due to the fact that 320 libtool could not be used at this time. This is unlikely, though. 321 322 323In case of problem 324================== 325 326First, look for any warning message in the configure output. 327 328Several documents may help you to solve the problem: 329 * this INSTALL file, in particular information given below; 330 * the FAQ (either the FAQ.html file distributed with MPFR, or the 331 on-line version <http://www.mpfr.org/faq.html>, which may be more 332 up-to-date); 333 * the MPFR web page for this version <http://www.mpfr.org/mpfr-3.1.2/>, 334 which lists bugs found in this version and provides some patches. 335 336If the "configure" fails, please check that the C compiler and its 337options are the same as those for the GMP build (specially the ABI). 338You can see the latter with the following command: 339 340 grep "^CC\|^CFLAGS" GMPBUILD/Makefile 341 342if the GMP build directory is available. Then type: 343 344 ./configure <configure options> CC=<C compiler> CFLAGS="<compiler options>" 345 346(quotes are needed when there are spaces or other special characters 347in the CC/CFLAGS value) and continue the install. On some platforms, 348you should provide further options to match those used by GMP, or set 349some environment variables. For instance, see the "Notes on AIX/PowerPC" 350section below. 351 352Warning! Do NOT use optimization options that can change the semantics 353of math operations, such as GCC's -ffast-math or Sun CC's -fast. 354Otherwise conversions from/to double's may be incorrect on infinities, 355NaN's and signed zeros. Since native FP arithmetic is used in a few 356places only, such options would not make MPFR faster anyway. 357 358If some "make check" tests fail, you can try the --disable-thread-safe 359configure option (see the configure options above): it has been reported 360that some platforms have buggy TLS support. Before trying this option, 361you may want to check in the configure output whether MPFR was built 362with TLS support; if yes, you will have a line: 363 checking for TLS support... yes 364Alternatively "grep MPFR_USE_THREAD_SAFE config.log" will show that 365MPFR_USE_THREAD_SAFE is defined to 1. If it is "no" (or the variable 366is not defined), the --disable-thread-safe option would be useless. 367 368Some tests failure may be due to other compiler bugs, in particular 369in optimization code. You can try to build MPFR without compiler 370optimizations by giving -O0 (letter O, digit 0) in CFLAGS. If the 371MPFR tests no longer fail, this was probably due to a compiler bug, 372though we cannot exclude a bug in MPFR. You may want to contact us 373(see below), possibly after looking at: 374 http://www.loria.fr/~zimmerma/software/compilerbugs.html 375 376On some platforms, try with "gmake" (GNU make) instead of "make". 377Problems have been reported with the Tru64 make. 378 379If the configure script reports that gmp.h version and libgmp version 380are different, or if the build was OK, but the tests failed to link 381with GMP or gave an error like 382 383 undefined reference to `__gmp_get_memory_functions' 384 385meaning that the GMP library was not found or a wrong GMP library was 386selected by the linker, then your library search paths are probably 387not correctly set (some paths are missing or they are specified in an 388incorrect order). 389 390Such problems commonly occur under some GNU/Linux machines, where the 391default header and library search paths may be inconsistent: GCC is 392configured to search /usr/local/include and /usr/local/lib by default, 393while the dynamic linker ignores /usr/local/lib. If you have a GMP 394version installed in /usr (provided by the OS vendor) and a new one 395installed in /usr/local, then the header of the new GMP version and 396the library of the old GMP version will be used! The best solution 397is to make sure that the dynamic linker configuration is consistent 398with GCC's behavior, for instance by having /usr/local/lib in 399/etc/ld.so.conf or in some file from /etc/ld.so.conf.d (as Debian 400did: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=395177). See 401also http://gcc.gnu.org/ml/gcc-help/2010-01/msg00171.html for more 402information. Alternatively you can use: 403 * environment variables. This may sometimes be necessary. If DIR 404 is the installation directory of GMP, add DIR/include to your 405 CPATH or C_INCLUDE_PATH (for compilers other than GCC, please 406 check the manual of your compiler), and add DIR/lib to your 407 LIBRARY_PATH and LD_LIBRARY_PATH (and/or LD_RUN_PATH); 408 * --with-gmp* configure options (described above), e.g. 409 --with-gmp=/opt/local (to use /opt/local/include for headers and 410 /opt/local/lib for libraries), but other software that uses GMP 411 and/or MPFR will need correct paths too, and environment variables 412 allow one to set such search paths in a global way. 413 Note about "--with-gmp=/usr/local". This option may appear to 414 solve the above inconsistency problem, but does not work as you 415 expect. Indeed it affects the library search path, in particular, 416 the one used by the dynamic linker (thus adding the missing 417 /usr/local/lib directory as wanted), but since /usr/local/include 418 is a "standard system include directory" for GCC, the include 419 search patch is not changed; this is often not a problem in this 420 particular case because usually, /usr/local/include is already 421 last in the include search patch, but this may fail under some 422 occasions and may trigger obscure errors. 423 424For instance, under Unix, where paths are separated by a colon: 425 426 * With POSIX sh-compatible shells (e.g. sh, ksh, bash, zsh): 427 export C_INCLUDE_PATH="/usr/local/include:/other/path/include" 428 export LIBRARY_PATH="/usr/local/lib:/other/path/lib" 429 export LD_LIBRARY_PATH="$LIBRARY_PATH" 430 431 * With csh or tcsh: 432 setenv C_INCLUDE_PATH "/usr/local/include:/other/path/include" 433 setenv LIBRARY_PATH "/usr/local/lib:/other/path/lib" 434 setenv LD_LIBRARY_PATH "$LIBRARY_PATH" 435 436If you can't solve your problem, you should contact us via the MPFR 437mailing-list <mpfr@inria.fr>, indicating the machine and operating system 438used (uname -a), the compiler and version used (gcc -v if you use gcc), 439the configure options used if any (including variables such as CC and 440CFLAGS), the version of GMP and MPFR used, and a description of the 441problem encountered. Please send us also the log of the "configure" 442(config.log). 443 444Note that even if you can build MPFR with a C++ compiler, you can't run 445the test suite: C and C++ are not the same language! You should use a C 446compiler instead. 447 448 449Notes about ABI 450=============== 451 452On 64-bit computers, it may happen that the default ABI (Application Binary 453Interface) chosen by MPFR does not correspond to the default one chosen by 454the compiler. 455 456In particular, this kind of message may indicate the problem: 457/usr/bin/ld: skipping incompatible mpfr/src/.libs/libmpfr.a when searching for -lmpfr 458 459In fact, since MPFR relies on GMP, it uses the same ABI as GMP. 460To be sure that your program compiles and links correctly, use the same 461compiler flags as MPFR does (look for CFLAGS in config.log). 462 463You might also recompile GMP with a different ABI, with for example 464./configure ABI=32. 465 466 467Notes on Mac OS X 468================= 469 470If you get an error of the form 471 472 ld: pointer in read-only segment not allowed in slidable image... 473 474this can mean that the link is done against a static (GMP) library. 475In such a case, you should configure MPFR with --disable-shared to 476disable the build of the shared library. 477 478 479Notes on FreeBSD 4.3 480==================== 481 482FreeBSD 4.3 is provided with an incorrect <float.h> header file, and 483MPFR tests related to long double's may fail. If you cannot upgrade 484the system, you can still use MPFR with FreeBSD 4.3, but you should 485not use conversions with the long double type. 486 487 488Notes on AIX/PowerPC 489==================== 490 491The following has been tested on AIX 5.3 (powerpc-ibm-aix5.3.0.0) with 492gcc 3.3.2 and GMP 4.2.1. 493 494If GMP was built with the 64-bit ABI, before building and testing MPFR, 495you should set the OBJECT_MODE environment variable to 64, e.g., with: 496 497 export OBJECT_MODE=64 498 499(in a sh-compatible shell). But you should also provide a correct CFLAGS 500value to the "configure" script: using --with-gmp-build is not sufficient 501due to the early compiler tests, as gcc will not compile any program if 502OBJECT_MODE is 64 and the -maix64 option is not provided. 503 504 505MPFR for use with 32-bit Windows Applications (win32) 506===================================================== 507 508There are several ways of building MPFR on Windows, the most appropriate 509approach depending on how you intend to use the resulting libraries. 510 511a. Using MinGW 512============== 513 5141 - We advise to use MinGW (http://www.mingw.org/), which is simpler and 515 less demanding than Cygwin. Contrary to Cygwin, it also provides native 516 Windows code. 517 5182 - If you just want to make a binary with gcc, there is nothing to do: 519 GMP, MPFR and the program compile exactly as under Linux. 520 But if you want to generate a library for MinGW from a Cygwin 521 environment, you may need the -mno-cygwin gcc option (otherwise 522 a typical error is _P_WAIT being undeclared). 523 5243 - If you want to make libraries work under another Windows compiler 525 like Visual C / C++, since the unix-like *.a library files are compatible 526 with Windows *.lib files, you can simply rename all *.a libraries to *.lib. 527 528 With gmp-4.1.3, the only remaining problem seems to be the "alloca" calls 529 in GMP. Configuring GMP and MPFR with --enable-alloca=malloc-reentrant 530 should work (if you build MPFR with GMP internal files). 531 532 Or you could add the library 533 "$MINGWIN$/lib/gcc-lib/mingw32/$VERSION$/libgcc.a" 534 to your project: it contains all the extra-functions needed by a program 535 compiled by gcc (division of 64-bit integer, bcopy, alloca...). 536 Of course, include it if and only if your compiler is not gcc. 537 5384 - On Windows32 / MinGW, if all the tests fail, try to run the test suite 539 with "make check EXEEXT=". 540 5415 - To avoid using the Microsoft runtime (which might not be conform to ISO C), 542 you can use the MinGW runtime package (which is an integral part of MinGW). 543 For example, with MinGW versions 3.15 and later you can get an 544 ISO-compliant printf() if you compile your application with either 545 '-ansi', '-posix' or '-D__USE_MINGW_ANSI_STDIO'. For example, you can 546 compile and test MPFR with CC="gcc -D__USE_MINGW_ANSI_STDIO". 547 548 For example under Win32, the following problem has been experienced with 549 MPFR 2.4.0 RC1 and the MSVC runtime (msvcrt.dll): 550 551 Error in mpfr_vsprintf (s, "%.*Zi, %R*e, %Lf%n", ...); 552 expected: "00000010610209857723, -1.2345678875e+07, 0.032258" 553 got: "00000010610209857723, -1.2345678875e+07, -0.000000" 554 FAIL: tsprintf.exe 555 556 This error is due to the MSVC runtime not supporting the L length modifier 557 for formatted output (e.g. printf with %Lf). You can check this with the 558 following program: 559 560 #include <stdio.h> 561 int main (void) 562 { 563 long double d = 1. / 31.; 564 printf ("%Lf\n", d); 565 return 0; 566 } 567 568 The expected output is 0.032258. 569 570 Note: The L modifier has been standard for a long time (it was added 571 in ISO C89). 572 573 Note 2: this now works correctly with Visual C++ 2008 and 2010 574 (tested on Microsoft (R) 32-bit C/C++ Optimizing Compiler Version 575 15.00.21022.08 for 80x86, Microsoft (R) C/C++ Optimizing Compiler 576 Version 15.00.21022.08 for x64, Microsoft (R) 32-bit C/C++ Optimizing 577 Compiler Version 16.00.30319.01 for 80x86, Microsoft (R) C/C++ Optimizing 578 Compiler Version 16.00.30319.01 for x64). 579 580b. Using Cygwin 581=============== 582 583This build should be similar to that for MinGW except that the resulting 584library depends on the Cygwin DLL and cannot therefore be used with 585Visual Studio as with MinGW. Indeed, the binaries compiled with Cygwin 586require a dynamic library (cygwin.dll) to work; there is a Cygwin option 587-mno-cygwin to build native code, but it may require some non-portable tricks. 588 589In case of failure, you may need to pass LDFLAGS='-shared-libgcc' at the 590end of the configure line due to a bug in GCC. Otherwise, if threading 591support is not needed, you can configure MPFR with --disable-thread-safe. 592 593c. Using Visual C++ 2008/2010 594============================= 595 596Win32 versions of the MPFR library can be built using Microsoft Visual 597C++ 2008 or 2010 using the build projects available here: 598 599http://gladman.plushost.co.uk/oldsite/computing/gmp4win.php 600 601These build projects contain both win32 and x64 builds but the latter 602will give errors if your version of Visual C++ lacks the 64-bit 603compiler and tools. The 32-bit build projects should however work 604on Visual C++ 2008, Visual C++ Express 2008 (SP1), Visual C++ 2010 605and Visual C++ Express 2010. 606 607MPFR for use with 64-bit Windows Applications (x64) 608=================================================== 609 610There are two ways of building MPFR for use with 64-bit Windows 611applications. 612 613a. Using MinGW64 614================ 615 616The MinGW64 version of the GCC compiler is now available here: 617 618http://sourceforge.net/projects/mingw-w64/ 619 620It can build both GMP and MPFR for 64-bit Windows applications. 621 622b. Using Visual C++ 2008/2010 623============================= 624 625x64 versions of the MPFR library can be built using Microsoft Visual 626C++ 2008 or 2010 using the build projects available here: 627 628http://gladman.plushost.co.uk/oldsite/computing/gmp4win.php 629 630These build projects contain both win32 and x64 builds but the latter 631can only be built if your version of Visual C++ contains the 64-bit 632compiler and tools. On Visual C++ 2008, the 64-bit tools are an 633option during installation so if you don't have them you will need 634to start the Visual Studio installer and add them to your IDE 635configuration. On Visual C++ 2010 they are installed by default. 636 637As delivered, Visual C++ Express 2008 SP1 cannot build x64 projects 638but the Windows SDK can be added to it to allow this. The IDE then 639needs to be configured as described here: 640 641http://msdn.microsoft.com/en-us/library/9yb4317s(VS.80).aspx 642 643to allow x64 builds. 644 645Visual C++ Express 2010 requires the Windows 7 SDK to be installed 646in order to build x64 projects. This SDK is available here: 647 648http://tinyurl.com/25zz8r6 649 650In this case, once this SDK has been installed, Visual C++ Express 2010 651will build x64 projects without further changes. 652