This is the mail archive of the
cygwin
mailing list for the Cygwin project.
Re: [BUG ?] Failed to rebuild Cygwin
- From: Corinna Vinschen <corinna-cygwin at cygwin dot com>
- To: cygwin at cygwin dot com
- Cc: JonY <10walls at gmail dot com>
- Date: Wed, 31 Jul 2013 11:59:49 +0200
- Subject: Re: [BUG ?] Failed to rebuild Cygwin
- References: <003401ce8dcb$a630b310$f2921930$%fedin at samsung dot com>
- Reply-to: cygwin at cygwin dot com
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?
Corinna
--
Corinna Vinschen Please, send mails regarding Cygwin to
Cygwin Maintainer cygwin AT cygwin DOT com
Red Hat
--
Problem reports: http://cygwin.com/problems.html
FAQ: http://cygwin.com/faq/
Documentation: http://cygwin.com/docs.html
Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple