Mail Archives: cygwin/2004/02/18/15:46:37
------=_NextPart_000_0014_01C3F61C.B70967F0
Content-Type: text/plain;
charset="us-ascii"
Content-Transfer-Encoding: 7bit
This is an issue related to rebasing DLLs.
There's a "rebaseall" utility in Cygwin to fix this, unfortunately it does not
pick up non-package DLLs, including Perl extensions installed from CPAN shell.
I've made some changes to that script so that it does...which reminds me I need
to send out a patch, or something. Anyway, my "rebaseall" script is attached.
To run it, close any all Cygwin processes, open a bash shell, and run it.
HTH
--
Rafael
>-----Original Message-----
>From: Tino Lange
>Sent: Tuesday, February 17, 2004 10:09 AM
>To: The Cygwin Mailing List
>Subject: problem extending perl-5.8.2-1 via CPAN: Storable.dll
>
>Gerrit P. Haase wrote:
>> perl-5.8.2-1 release has been uploaded to sourceware
>> -- it should be on the mirrors soon.
>
>Hi Gerrit, hi List!
>
>I have a problem updating modules within the CPAN Shell. Perl itself
>crashes due to problems with Storable.dll?
>
>> cpan> install Mail::SpamAssassin
>> Running install for module Mail::SpamAssassin
>> Running make for F/FE/FELICITY/Mail-SpamAssassin-2.63.tar.gz
>> CPAN: Digest::MD5 loaded ok
>> CPAN: Compress::Zlib loaded ok
>> Checksum for /home/Tino/.cpan/sources/authors/id/F/FE/FELICITY/Mail-
>SpamAssassin-2.63.tar.gz ok
>> Scanning cache /home/Tino/.cpan/build for sizes
>> C:\cygwin\bin\perl.exe (3080): *** unable to remap
>C:\cygwin\lib\perl5\5.8.2\cygwin-thread-multi-64int\auto\Storable\Storable.dll
>to same address as parent(0xCE0000) != 0x1200000
>> 4 [main] perl 3168 sync_with_child: child 3080(0x6B0) died before
>initialization with status code 0x1
>> 6993 [main] perl 3168 sync_with_child: *** child state child loading dlls
>
>Can you give me a hint?
>I have searched the mailing list and the web for appropiate keywords,
>but I couldn't find a solution there.
>
>Attaches is a cygcheck.out. Please let me know if you need more information.
>
>Please always CC to me, since I'm not on the list.
>
>Thanks for your help!
>
>Tino
------=_NextPart_000_0014_01C3F61C.B70967F0
Content-Type: application/octet-stream;
name="rebaseall"
Content-Transfer-Encoding: quoted-printable
Content-Disposition: attachment;
filename="rebaseall"
#!/bin/bash
#
# Copyright (c) 2003 Jason Tishler
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2 of the License, or
# (at your option) any later version.
#
# A copy of the GNU General Public License can be found at
# http://www.gnu.org/
#
# Written by Jason Tishler <jason AT tishler DOT net>
#
# $Id: rebaseall,v 1.3 2003/02/07 19:39:33 jt Exp $
#
# Define constants
ProgramName=3D$(basename $0)
ProgramOptions=3D'b:o:v'
DefaultBaseAddress=3D0x70000000
DefaultOffset=3D0x10000
DefaultVerbose=3D
# Define functions
usage()
{
echo "usage: $ProgramName [-b BaseAddress] [-o Offset] [-v]"
exit 1
}
cleanup()
{
rm -f $TmpFile
exit 0
}
# Set traps
trap cleanup HUP INT TERM
# Set defaults
BaseAddress=3D$DefaultBaseAddress
Offset=3D$DefaultOffset
Verbose=3D$DefaultVerbose
# Parse command line arguments
while getopts $ProgramOptions Option $*
do
case $Option in
b)
BaseAddress=3D$OPTARG;;
o)
Offset=3D$OPTARG;;
v)
Verbose=3D-v;;
\?)
usage;;
esac
done
# Set temp directory
TmpDir=3D${TMP:-${TEMP:-/tmp}}
# Validate temp directory
if [ ! -d $TmpDir ]
then
echo "$ProgramName: $TmpDir is not a directory"
exit 2
fi
if [ ! -w $TmpDir ]
then
echo "$ProgramName: $TmpDir is not writable"
exit 2
fi
# Set temp file
TmpFile=3D$TmpDir/rebase.lst
# Create rebase list
# FIXME: Remove ugly Apache hack ASAP
zcat /etc/setup/*.lst.gz | grep 'dll$' |
sed -e '/cygwin1.dll$/d' -e 's/^/\//' -e 's/apache\/new/apache/' >$TmpF=
ile
# Try to find a good chunk of any non-package .dlls
find /usr/local /usr/lib/perl5/site_perl /lib/python*/site-packages /instal=
l \
/home /opt \
-name '*.dll' 2>/dev/null >>$TmpFile
# Get rid of duplicates
sort -o ${TmpFile}.$$ -u $TmpFile
mv ${TmpFile}.$$ $TmpFile
# Set perl libs writable for rebase
grep perl5 $TmpFile | xargs -i chmod u+w {}
# Rebase files
rebase $Verbose -d -b $BaseAddress -o $Offset -T $TmpFile
# Reset perl libs to read-only
grep perl5 $TmpFile | xargs -i chmod u-w {}
# Clean up
cleanup
------=_NextPart_000_0014_01C3F61C.B70967F0
Content-Type: text/plain; charset=us-ascii
--
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/
------=_NextPart_000_0014_01C3F61C.B70967F0--
- Raw text -