setting CPU_TYPE when cross-compiling from Linux to Windows

Niels Möller nisse at lysator.liu.se
Sun Dec 29 19:25:13 UTC 2019


Claude Heiland-Allen <claude at mathr.co.uk> 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.

> 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.

Regards,
/Niels

-- 
Niels Möller. PGP-encrypted email is preferred. Keyid 368C6677.
Internet email is subject to wholesale government surveillance.


More information about the gmp-bugs mailing list