From: Sisyphus <sis...@op...> - 2007-07-05 13:21:15
|
----- Original Message ----- From: "Keith MARSHALL" <kei...@to...> . . > > Under Cygwin, `gcc -mno-cygwin' is sufficient to ensure that the > MinGW compiler is used, in place of Cygwin's own; for C++ code, > you will also need CXX='g++ -mno-cygwin', and I guess for FORTRAN, > F77='g77 -mno-cygwin'; (I'm far from certain of the latter). > > `--host=x --build=y' is the standard autoconf way to initiate a > cross-compile. The purist in me says that, if you use this method > of specifying the host compiler, then you should *not* need to use > `-mno-cygwin' at all. I did try it once upon a time[1], and IIRC, > this is in fact the case. > > Conversely, if you use CC='gcc -mno-cygwin', and friends, you should > not need `--host', (nor `host_alias'), nor `--build', IIRC. > > `host_alias=i686-pc-mingw32' is completely redundant here; configure > sets it internally anyway, to identically the same value as you give > with `--host'. > On the strength of that I initially tried to build a static build of GMP-4.2.1 by running: ./configure --disable-shared --enable-static CC='gcc -mno-cygwin' But that produced the following error almost immediately: ---------------------------------------------- Rob@desktop2 /cygdrive/c/cygwin/comp/mingw/gmp/static/gmp-4.2.1 $ ./configure --disable-shared --enable-static CC='gcc -mno-cygwin' -pc' not recognizede `x86_64. Invalid configuration `x86_64 -pc-cygwin failed /bin/sh ./config.sub x86_64 ---------------------------------------------- So I then simply tried a copy'n'paste of the command as originally posted by Hugh (and added my shared/static config requirements to it): ./configure --disable-shared --enable-static --host=i686-pc-mingw32 --build=i686-pc-cygwin CC='gcc -mno-cygwin ' host_alias=i686-pc-mingw32 That seems to have worked well. Both 'make' and 'make check' ran fine, and the resulting library is, indeed, a native Win32 library. 'libgmp.a' weighs in at about 4kb lighter than the version produced in the msys shell on Windows 2000 (384kb vs 388kb) which, I assume, is neither here nor there. I saw stuff like -mtune=pentiumpro and -march=pentiumpro during the 'make' stage, which is a little disconcerting since it's an AMD64 box, but I guess that has something to do with having ABI=32 (instead of ABI=64). Where will 'make install' place gmp.h and libgmp.a ? Thanks for the info. Cheers, Rob |