Mike, Please post instead of sending private email.
On Tue, May 25, 2004 at 02:08:49PM -0600, Arms, Mike wrote: > I began my search trying to get the Perl module GD::Text > to compile under Cygwin and Cywin Perl 5.8.2-1 . > The "make" step would fail right away with: > > Checking if your kit is complete... > Looks good > C:\cygwin\bin\perl.exe (2780): *** unable to remap > C:\cygwin\bin\cygfreetype-6.dll to same address as parent(0x?) != 0xD00000 > 10 [main] perl 2936 sync_with_child: child 2780(0x27C) died before > initialization with status code 0x1 > 3880 [main] perl 2936 sync_with_child: *** child state child loading dlls > > Note: in the log above, I neglected to grab the hex address so > I just show it as 0x? . > > So I did some googling and found several references to solving > this problem by using your "rebaseall" utility. I followed the > procedure (stopped all cygwin processes, fired up a Cygwin bash > window, and ran "rebaseall -v"). It did not report that it > changed "/usr/bin/cygfreetype-6.dll" . And no change when I > ran "make". So I ran the "rebase" program directly with: > > rebase -v -b 13631488 /usr/bin/cygfreetype-6.dll > > That indicated that it changed the base address to 0xD00000. > Ran the make again, and it did a similar complaint with > "/usr/bin/cygz.dll". I ran rebase on it with an offset based > on the 60000 size from the previous rebase: > > rebase -v -b 14024704 /usr/bin/cygz.dll > > So now the "make" is complaining: > > C:\cygwin\bin\perl.exe (2780): *** unable to remap > C:\cygwin\bin\cygiconv-2.dll to same address as parent(0xDC0000) != 0xDD0000 > > I hesitate to do any more rebasing for fear of totally hosing my > Cywgin installation. I take it that each of these DLL's need > a separate base address that does not overlap with any others > (after taking into consideration their size)? Yes. > Is there a way to list the mappings for all of the cygwin DLLs? The following will display the base addresses for all DLLs install via Cygwin setup.exe: $ zcat /etc/setup/*.gz | grep '.dll$' | sed 's/^/\//' | xargs objdump -p | egrep 'pei-i386|ImageBase' > Is this contained in a file somewhere? No. > Why would rebaseall when passed the Files arguments choose to skip > them? (That was from the output, although the names of the additional > Files were not shown.) IIRC, because they are read-only, non-existent, etc. > Hoping for some illumination. Thanks. Note the following: 1. Rebasing is usually an all or nothing operation. Hence, I typically only recommend using rebaseall. 2. rebaseall only rebases DLLs installed via Cygwin's setup.exe and the extra ones possibly specified by the -T option. So, if your make produces new DLLs that are dlopen-ed by perl then this could be your problem. Jason -- PGP/GPG Key: http://www.tishler.net/jason/pubkey.asc or key servers Fingerprint: 7A73 1405 7F2B E669 C19D 8784 1AFD E4CC ECF4 8EF6 -- Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple Problem reports: http://cygwin.com/problems.html Documentation: http://cygwin.com/docs.html FAQ: http://cygwin.com/faq/