Hi,
On 29/12/2019 19:25, Niels Möller wrote:
Claude Heiland-Allen <[email protected]> writes:
However trying the method suggested in the documentation also fails,
but in a different way:
```
CC_FOR_BUILD="gcc" \
CPP_FOR_BUILD="gcc -E" \
CFLAGS="-march=native -O3 -fomit-frame-pointer" \
CXXFLAGS="-march=native -O3 -fomit-frame-pointer" \
LDFLAGS="-static-libgcc -static-libstdc++" \
CPPFLAGS="-D__USE_MINGW_ANSI_STDIO" \
./configure --build=zen-pc-linux-gnu --host=zen-w64-mingw32 \
--prefix=/home/claude/winNATIVE
...
config.status: linking mpn/x86_64/zen/gmp-mparam.h to gmp-mparam.h
config.status: executing libtool commands
configure: summary of build options:
Version: GNU MP 6.1.99
Host type: zen-w64-mingw32
ABI: 64
Install prefix: /home/claude/winNATIVE
Compiler: gcc
Static libraries: yes
Shared libraries: no
configure: If wine64 is installed, use make check TESTS_ENVIRONMENT=wine64.
```
Notice it uses compiler `gcc` instead of `x86_64-w64-mingw32-gcc`,
which leads to a build for Linux, not Windows.
Autoconf has a convenience feature to automatically pick a
cross-compiler based on the host triplet. But that works only if
cross-compiler name and host-triplet match perfectly. Otherwise, you
must specify the correct cross compiler explicitly, with
CC=x86_64-w64-mingw32-gcc.
Aha, thanks for this tip, I found an incantation that works:
```
CC=x86_64-w64-mingw32-gcc \
CC_FOR_BUILD=x86_64-linux-gnu-gcc \
CPPFLAGS=-D__USE_MINGW_ANSI_STDIO \
LDFLAGS="-static-libgcc -static-libstdc++" \
./configure \
--build=x86_64-linux-gnu \
--host=x86_64-w64-mingw32 \
--enable-fat \
--enable-static \
--disable-shared \
--prefix=/home/claude/wintmp/
```
The `CPPFLAGS` is necessary to avoid test failure in printf/scanf. I
found that `make check` works (I have binfmt support enabled so wine is
invoked automatically), but `make check TESTS_ENVIRONMENT=wine64` as
suggested fails:
```
make[5]: Entering directory '/home/claude/wintmp/src/gmp/tests'
wine: Bad EXE format for Z:\bin\bash..
```
Trying a fat build (thanks for the pointer to this method, I think
it's what I really need) also fails, at `make check`:
Can't say why this fails. If you have tried different configs in the
same build tree, try starting over from make distclean.
This tip may also have helped, thanks again,
Claude
--
https://mathr.co.uk
_______________________________________________
gmp-bugs mailing list
[email protected]
https://gmplib.org/mailman/listinfo/gmp-bugs