[BUG ?] Failed to rebuild Cygwin

JonY 10walls@gmail.com
Wed Jul 31 10:28:00 GMT 2013


On 7/31/2013 17:59, Corinna Vinschen wrote:
> On Jul 31 12:55, Pavel Fedin wrote:
>>  Hello!
>>
>>  I have occasionally found a little problem in path check code. Attempt to
>> reference thing like '/..' fails, however at least under Linux this resolves
>> to root, and you can actually attempt to go past-root as many times as you
>> want, e. g. '/../../../..'. The bug was occasionally revealed by 'make' test
>> suite.
>>  I wanted to fix it, but cannot rebuild Cygwin DLL. The build ends up in:
>> --- cut ---
>> x86_64-w64-mingw32-g++  -o strace.exe strace.o path.o -L/usr/lib/w32api
>> -static -lntdll
>> /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.


-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 834 bytes
Desc: OpenPGP digital signature
URL: <http://cygwin.com/pipermail/cygwin/attachments/20130731/40963e40/attachment.sig>


More information about the Cygwin mailing list