This is the mail archive of the
cygwin
mailing list for the Cygwin project.
[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>
- Date: Mon, 20 Apr 2009 15:06:25 +0200
- Subject: [1.7] perl5 changes: split debug, peflags, ...
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/