Mail Archives: cygwin/2009/04/20/09:06:45
X-Recipient: | archive-cygwin AT delorie DOT com
|
X-SWARE-Spam-Status: | No, hits=-1.4 required=5.0 tests=AWL,BAYES_00,J_CHICKENPOX_22,J_CHICKENPOX_23,SARE_MSGID_LONG40,SPF_PASS
|
X-Spam-Check-By: | sourceware.org
|
MIME-Version: | 1.0
|
Date: | Mon, 20 Apr 2009 15:06:25 +0200
|
Message-ID: | <6910a60904200606l4bf9b12cx508fc6472cd995e9@mail.gmail.com>
|
Subject: | [1.7] perl5 changes: split debug, peflags, ...
|
From: | Reini Urban <rurban AT x-ray DOT at>
|
To: | The Cygwin Mailing List <cygwin AT cygwin DOT com>
|
X-IsSubscribed: | yes
|
Mailing-List: | contact cygwin-help AT cygwin DOT com; run by ezmlm
|
List-Id: | <cygwin.cygwin.com>
|
List-Subscribe: | <mailto:cygwin-subscribe AT cygwin DOT com>
|
List-Archive: | <http://sourceware.org/ml/cygwin/>
|
List-Post: | <mailto:cygwin AT cygwin DOT com>
|
List-Help: | <mailto:cygwin-help AT cygwin DOT com>, <http://sourceware.org/ml/#faqs>
|
Sender: | cygwin-owner AT cygwin DOT com
|
Mail-Followup-To: | cygwin AT cygwin DOT com
|
Delivered-To: | mailing list cygwin AT cygwin DOT com
|
For the forthcoming perl5 update for 1.7 I'm testing this:
1. compilation with gcc4.3 against shared libgcc_s
2. I'm testing to split the debug sections into the /usr/lib/debug path,
with a seperate perl_debug package.
Yaakov, did you already envisioned that for cygport?
I use this function in my build script (dir = topdir)
strip_debug() {
echo "## seperate debug symbols into extra /usr/lib/debug/path/file.dbg"
find -type f -name \*.exe > $dir/strip.lst
find -type f -name \*.dll >> $dir/strip.lst
strippath=/usr/lib/debug
for f in $(cat $dir/strip.lst); do
d=$(dirname $f)
s=$(basename $f .exe)
s=$(basename $s .dll)
mkdir -p ${dir}/inst${strippath}/$d
objcopy --only-keep-debug $f ${dir}/inst${strippath}/$d/$s.dbg
objcopy --strip-debug $f
objcopy --add-gnu-debuglink=${strippath}/$d/$s.dbg $f
done
true
}
If not, I think that would be a worthwhile addition to automatically
create a ${PN}-debug package,
unless NO_DEBUGPKG or such. I don't know the ebuild conventions for this.
Or just define a ADD_DEBUGPKG=1
3. I changed the perl archname from "i686-cygwin" to "i686-cygwin-1.7"
for easier coexistance, and getting cleaner bugreports. There's no
perl version bump,
just gcc4 (with the new libgcc_s dep) and cygwin-1.7.
For cygwin-1.7 I added utf-8 <-> wchar pathname conversions, but just for
Cygwin::win_to_posix_path and Cygwin::posix_to _win_to_path, not yet
for the full IO API.
wchar support for the full IO API is a major task, and not yet
envisioned even for win32.
Say I wanted ActivePerl to step ahead :)
4. I added some new modules to vendor_perl:
ActivePerl ships CPAN::Inject, so I added it also with the following
dependencies:
Text::Glob Number::Compare File::Find::Rule Data::Compare
CPAN::Checksums File::Remove File::chmod
Params::Util Test::Script CPAN::Checksums CPAN::Inject
IO::Compress::Bzip2 is also new.
Most other vendor modules are updates to its latest CPAN version.
5. the need to rebase might get better from vista onwards, as I use now
rebase_all() {
echo "## set proper peflags, no rebasing"
echo "./perl.exe" > $dir/rebase.lst
find -type f -name \*.exe | grep -v "perl.exe" >> $dir/rebase.lst
peflags -t1 -T $dir/rebase.lst
find -type f -name \*.dll > $dir/rebase.lst
peflags -d1 -T $dir/rebase.lst
true
}
and -Wl,--enable-auto-image-base.
But a better rebasebase address for Vista would also help. I have no
Vista to test.
Currently I'm using 0x52000000 upwards, but it looks like there's a
conflict with some vista dll sitting there.
6. the change for the linker step in all makefiles from CC to LD not yet.
We will need that for llvm but I leave that to a new update, need to
check it upstream and my llvm tests first.
Note that perl uses LD=g++ or LD=gcc and not LD=ld. And the main
makefile even ignores LD at all and
uses CC in a lot of places. This forbids the use of llvm, with a speed
advantage of 5-20% due to link optimizations.
--
Reini Urban
http://phpwiki.org/ http://murbreak.at/
--
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/
- Raw text -