delorie.com/archives/browse.cgi   search  
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 -


  webmaster     delorie software   privacy  
  Copyright © 2019   by DJ Delorie     Updated Jul 2019