On 7/31/2013 18:47, Corinna Vinschen wrote: > On Jul 31 12:28, Corinna Vinschen wrote: >> On Jul 31 18:13, JonY wrote: >>> On 7/31/2013 17:59, Corinna Vinschen wrote: >>>> On Jul 31 12:55, Pavel Fedin wrote: >>>>> /usr/x86_64-w64-mingw32/sys-root/mingw/lib/../lib/crt2.o: In function >>>>> `__tmainCRTStartup': >>>>> /usr/src/debug/mingw64-x86_64-runtime-3.0b_svn5935-1/crt/crtexe.c:285: >>>>> undefined reference to `_set_invalid_parameter_handler' >>>>> /usr/x86_64-w64-mingw32/sys-root/mingw/lib/../lib/libmingwex.a(lib64_libming >>>>> wex_a-mingw_pformat.o): In function `__pformat_exponent_digits': >>>>> /usr/src/debug/mingw64-x86_64-runtime-3.0b_svn5935-1/stdio/mingw_pformat.c:1 >>>>> 76: undefined reference to `_get_output_format' >>>>> collect2: error: ld returned 1 exit status >>>>> Makefile:143: recipe for target `cygwin-console-helper.exe' failed >>>>> make[3]: *** [cygwin-console-helper.exe] Error 1 >>>>> --- cut --- >>>>> Likely some MinGW CRT bug ? >>>> >>>> This also occurs on Fedora right now. >>>> >>>> AFAICS, the culprit is that the latest Cygwin w32api package doesn't >>>> match the files from mingw-crt for some reason. >>>> >>>> The build uses -L/usr/lib/w32api (-L/usr/i686-pc-cygwin/lib/w32api when >>>> cross building on Fedora), so the libs are taken from the w32api-runtime >>>> package. However, the compiler uses the default crt file >>>> /usr/i686-w64-mingw32/sys-root/mingw/lib/../lib/crt2.o which is provided >>>> by the mingw-crt package. >>>> >>>> This is a bug in Cygwin's Makefile since you should never use the w32api >>>> stuff for mingw executables, only for Cygwin executables, but still... >>>> >>>> JonY, do you have an idea why the mingw-crt differs that much from the >>>> w32api stuff that the above error occurs? >>>> >>> >>> Likely, because _set_invalid_parameter_handler was a stub in mingwex >>> that loads msvcrt.dll, it was disabled as a quickfix, as it was using >>> mingw-w64 stdlib.h directly. I did not think Cygwin win32api might need it. >>> >>> The build should be fixed on trunk, I will roll out a new release soon. >> >> Cool, thanks! > > Erm... hang on. On second thought, I'm not sure that this is a bug. > The actual bug here was clearly in the Cygwin utils Makefile. > > In fact, since w32api should only be used by Cygwin executables, why > should w32api provide libmingwex.a at all? Linking a Cygwin executable > against libmingwex doesn't sound like the right thing to do. Shouldn't > rather libmingwex.a just go from w32api? > Can you see what happens if libmingwex.a was replaced by the empty libm.a? It is only _get_output_format require stuff from msvcrt, _set_invalid_parameter_handler just uses some typedef declaration. I'm starting to wonder if this require a deeper fix.