Ray Satiro
2013-11-05 07:46:48 UTC
For projects that use autoconf they typically do something like this for <function>:
AC_CHECK_FUNCS([<function>])
and that results in HAVE_<function>
In wget there is:
AC_CHECK_FUNCS([_ftelli64])
http://alpha.gnu.org/gnu/wget/wget-1.14.96-38327.tar.gz
Which results in configure doing something like this
main ()
{
return _ftelli64 ();
return 0;
}
gcc a.c
In older MinGW compile failure, in newer success (ie HAVE__FTELLI64). So during compile in newer it thinks _ftelli64() is available but not necessarily.
Yesterday I did a fresh install of MinGW using mingw-get-setup.exe in an up to date Vista SP2 x86 VM and its msvcrt does not contain _ftelli64, for example. There is some change that has resulted in programs that compile fine but give an error when they are actually run. I compiled wget fine but when I ran it I saw this:
The procedure entry point _ftelli64 could not be located in the dynamic link library msvcrt.dll
It seems to me the change can cause a lot of problems and result in compiled programs that won't run on XP, Vista. Do you have any advice on how to deal with this issue?
Also, here is some related background I found from searching the web:
Late 2012 change to remove the version check before some function prototypes like _ftelli64
http://sourceforge.net/mailarchive/message.php?msg_id=29575958
http://sourceforge.net/p/mingw/mingw-org-wsl/ci/73f6ac0c5a3c485b0bcea20e05f06dc9f705bf6c
Late 2013 bug listed as fixed regarding _ftelli64 _fseeki64.
http://sourceforge.net/p/mingw/bugs/2021
Not sure if/how that relates to a default install of MinGW, what I assume most users will have.
Thanks and pardon any formatting issues as I'm still adjusting to the new Yahoo mail.. although I'm sending this in plaintext so it should be ok...
AC_CHECK_FUNCS([<function>])
and that results in HAVE_<function>
In wget there is:
AC_CHECK_FUNCS([_ftelli64])
http://alpha.gnu.org/gnu/wget/wget-1.14.96-38327.tar.gz
Which results in configure doing something like this
main ()
{
return _ftelli64 ();
return 0;
}
gcc a.c
In older MinGW compile failure, in newer success (ie HAVE__FTELLI64). So during compile in newer it thinks _ftelli64() is available but not necessarily.
Yesterday I did a fresh install of MinGW using mingw-get-setup.exe in an up to date Vista SP2 x86 VM and its msvcrt does not contain _ftelli64, for example. There is some change that has resulted in programs that compile fine but give an error when they are actually run. I compiled wget fine but when I ran it I saw this:
The procedure entry point _ftelli64 could not be located in the dynamic link library msvcrt.dll
It seems to me the change can cause a lot of problems and result in compiled programs that won't run on XP, Vista. Do you have any advice on how to deal with this issue?
Also, here is some related background I found from searching the web:
Late 2012 change to remove the version check before some function prototypes like _ftelli64
http://sourceforge.net/mailarchive/message.php?msg_id=29575958
http://sourceforge.net/p/mingw/mingw-org-wsl/ci/73f6ac0c5a3c485b0bcea20e05f06dc9f705bf6c
Late 2013 bug listed as fixed regarding _ftelli64 _fseeki64.
http://sourceforge.net/p/mingw/bugs/2021
Not sure if/how that relates to a default install of MinGW, what I assume most users will have.
Thanks and pardon any formatting issues as I'm still adjusting to the new Yahoo mail.. although I'm sending this in plaintext so it should be ok...