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

Reply via email to