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 To: The Cygwin Mailing List Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit X-IsSubscribed: yes Mailing-List: contact cygwin-help AT cygwin DOT com; run by ezmlm List-Id: List-Subscribe: List-Archive: List-Post: List-Help: , 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/