GMP cannot be configured using an absolute path to the "configrue" script in MSYS2 MINGW environment on Windows.

Emil Lenngren emil.lenngren at
Thu Oct 14 13:59:57 UTC 2021

Steps to reproduce:
1. Install MSYS2.
2. Open the MSYS2 MinGW 64-bit environment (not the MSYS2 MSYS environment,
which is used like Cygwin).
3. Install the required packages to build gmp using "pacman -S", including
"make" and "mingw-w64-x86_64-toolchain", which includes gcc for the mingw
target. Note that the plain "gcc" package is for the Cygwin environment and
should not be used.
4. Download gmp-6.2.1 and extract it.
5. Call the "configure" script in the gmp-6.2.1 directory from a newly
created out-of-tree build directory without arguments, using an absolute
path (not relative path).
6. The configure script fails with "error: Oops, mp_limb_t doesn't seem to

The root cause seems to be that the configure script generates C files
which it tries to compile. These files include UNIX style absolute paths
for include files, such as #include "/home/Emil/gmp-6.2.1/". These
absolute UNIX style paths are not allowed/usable in the MinGW environment.
Instead relative paths or Windows style paths with "X:\" prefix must be
used. Forward slashes however work fine as path separator.
When calling the "configure" script using a relative paths, it works fine

This issue arised when I tried to build a cross compiler using crosstool-NG
in MSYS2. Apparently crosstool-NG compiles its own version of GMP by
calling GMP's "configure" script using an absolute path, and therefore the
build of the cross compiler fails. I had to change crosstool-NG to use a
relative path using `realpath --relative-to=.
"${CT_SRC_DIR}/gmp/configure"`, then it worked. describes that it is
not possible to use absolute paths with gcc under mingw.

GMP version: 6.2.1 pre-packaged

configure options: none

configure stderr:
configure: WARNING: gmp.h doesnt recognise compiler "inline", inlines will
be unavailable
configure: WARNING: gmp.h doesnt recognise <stdio.h>, FILE prototypes will
be unavailable
configure: error: Oops, mp_limb_t doesn't seem to work

configure stdout:
in separate attached file with config.log

gcc -v:
Using built-in specs.
Target: x86_64-w64-mingw32
Configured with: ../gcc-10.3.0/configure --prefix=/mingw64
--with-local-prefix=/mingw64/local --build=x86_64-w64-mingw32
--host=x86_64-w64-mingw32 --target=x86_64-w64-mingw32
--libexecdir=/mingw64/lib --enable-bootstrap --enable-checking=release
--with-arch=x86-64 --with-tune=generic
--enable-languages=c,lto,c++,fortran,ada,objc,obj-c++,jit --enable-shared
--enable-static --enable-libatomic --enable-threads=posix --enable-graphite
--enable-fully-dynamic-string --enable-libstdcxx-filesystem-ts=yes
--enable-libstdcxx-time=yes --disable-libstdcxx-pch
--disable-libstdcxx-debug --enable-lto --enable-libgomp --disable-multilib
--disable-rpath --disable-win32-registry --disable-nls --disable-werror
--disable-symvers --with-libiconv --with-system-zlib --with-gmp=/mingw64
--with-mpfr=/mingw64 --with-mpc=/mingw64 --with-isl=/mingw64
--with-pkgversion='Rev7, Built by MSYS2 project' --with-bugurl= --with-gnu-as --with-gnu-ld
-Wl,--disable-dynamicbase -static-libstdc++ -static-libgcc'
--enable-linker-plugin-flags='LDFLAGS=-static-libstdc++\ -static-libgcc\
Thread model: posix
Supported LTO compression algorithms: zlib zstd
gcc version 10.3.0 (Rev7, Built by MSYS2 project)

uname -a:
MINGW64_NT-10.0-19042 Emil-Dell 3.2.0-340.x86_64 2021-08-02 16:30 UTC
x86_64 Msys
-------------- next part --------------
A non-text attachment was scrubbed...
Name: log
Type: application/x-zip-compressed
Size: 26234 bytes
Desc: not available
URL: <>

More information about the gmp-bugs mailing list