-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 According to Bob Rossi on 11/30/2006 7:32 PM: > Hi, > > If I'm using cygwin, with the -mno-cygwin gcc/g++ compiler option, then > mingw is used. Or more precisely, the -mno-cygwin switch in cygwin's gcc is a shorthand for invoking a cross-compiler that produces mingw executables. > It seems that mingw uses a \r\n for a newline. Yes, mingw is a native Windows target, which means a mingw executable produces DOS line endings unless you open a file in binary mode; autoconf currently does not produce test executables that do this, on the grounds that requesting binary mode is not portable to other platforms. > > AC_CHECK_SIZEOF does these two things on cygwin with autoconf 2.60. > fprintf(f, "%d\n", sizeof($1)); > which prints "4\r\n" if the size is 4 and then > AC_CV_NAME=`cat conftestval`, ... > now cygwin's cat doesn't understand \r\n, so Or better worded, on a binary mount, cygwin's cat treats \r literally, like any other unix implementation of cat would do. > ac_cv_sizeof_int=`cat conftestval` > results in "4\r", which breaks the configure.in scripts that check with > if statements for "$ac_cv_sizeof_int" = "4". > > What is the best way to resolve something like this? Perhaps experiment with a cygwin text mount, so that cygwin cat will ignore the \r. Or experiment with the recent add-on to cygwin's bash, where exporting SHELLOPTS with the cygwin-specific shell option igncr set will tell subsequent /bin/sh invocations to strip \r from command substitution. Or rather than trying to cross-compile, with mixed results between mingw test binaries but cygwin build framework; just use the MSYS environment so that your entire build process is native. Actually, maybe it would work if you invoked configure properly - since - -mno-cygwin is requesting a cross-compiler, you REALLY should be invoking it like this: ./configure --host=i686-pc-mingw32 --build=i686-pc-cygwin \ CC='gcc -mno-cygwin' And the fact that you are now telling configure the truth that you are cross-compiling, even though the cross binaries are executable, may be enough for autoconf to try harder for discovering how AC_CHECK_SIZEOF should behave without tripping up on line endings (and if that is not the case, maybe we should consider patching autoconf to make it happen that way). - -- Life is short - so eat dessert first! Eric Blake ebb9@xxxxxxx -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.5 (Cygwin) Comment: Public key at home.comcast.net/~ericblake/eblake.gpg Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org iD8DBQFFb6jc84KuGfSFAYARAsm8AKDHGKnsrS9YCeo0Ae+7gBFpMwNcgACgjufm sZldUr3kV4auZC/oe9KdtpM= =6KKf -----END PGP SIGNATURE----- _______________________________________________ Autoconf mailing list Autoconf@xxxxxxx http://lists.gnu.org/mailman/listinfo/autoconf