This is the mail archive of the cygwin mailing list for the Cygwin project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[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/


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]