This is the mail archive of the
cygwin
mailing list for the Cygwin project.
Re: Cygwin build scripts in perl
- From: Ilguiz Latypov <ilatypov at infradead dot org>
- To: cygwin at cygwin dot com
- Date: Mon, 8 Mar 2010 07:15:20 -0800 (PST)
- Subject: Re: Cygwin build scripts in perl
>>In particular, mkimport ran objcopy against "ftruncate.o" in a
>>temporary directory, but I believe the expected filename argument was
>>supposed to be "t-ftruncate.o". This is only my conjecture as I do not
>>know the purpose and the intention of the implementation with these
>>scripts.
>While it is very possible that my code could have bugs, the objcopy
>commands in the code exit on error so, if there were problems with the
>commands no one would be able to build cygwin. I don't see any objcopy
>errors when I build Cygwin on either linux or Windows.
I suspect that an assumption in mkimport does not always hold true. It appears that the script assumes existence of <SYMBOL>.o members of the input library cygdll.a for each object symbol <SYMBOL> being replaced.
if (!defined($fn = $symfile{$_sym})) {
$fn = "$sym.o";
$text{$fn} = $_sym;
}
My linker created cygdll.a where all *.o members were in the form "d00[0-9]{4}.o"
I guess the difference is in the GNU compiler version. I am using gcc 4.3.4-3 with --version showing "4.3.4 20090804 (release) 1". (Just in case, my binutils are 2.19.51-1 with --version showing "2.19.51.20090704").
Let me take my original blind guess back. It probably resulted in a wrong import library. I wonder if such mistakes like mine could be caught by checking the contents of the generated import library.
--
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