delorie.com/archives/browse.cgi   search  
Mail Archives: cygwin/2012/09/09/18:17:56

X-Recipient: archive-cygwin AT delorie DOT com
X-SWARE-Spam-Status: No, hits=-5.1 required=5.0 tests=AWL,BAYES_00,DKIM_SIGNED,DKIM_VALID,FREEMAIL_FROM,KHOP_RCVD_TRUST,KHOP_THREADED,RCVD_IN_DNSWL_LOW,RCVD_IN_HOSTKARMA_YE,TW_NX
X-Spam-Check-By: sourceware.org
MIME-Version: 1.0
In-Reply-To: <CABa36qG=pHQTFCjaix1w_JAvm0-Es-idnrwP7AEibML--FSVqg@mail.gmail.com>
References: <CABa36qG=pHQTFCjaix1w_JAvm0-Es-idnrwP7AEibML--FSVqg AT mail DOT gmail DOT com>
Date: Sun, 9 Sep 2012 17:17:27 -0500
Message-ID: <CAHiT=DG+hURSNR=equDGEyujDkFhCC3Q9TEW1AowwrG3JiSd_g@mail.gmail.com>
Subject: Re: perl: inconsistent archname in build config?
From: Reini Urban <rurban AT x-ray DOT at>
To: 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-Unsubscribe: <mailto:cygwin-unsubscribe-archive-cygwin=delorie DOT com AT cygwin DOT 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

On Fri, Sep 7, 2012 at 8:30 PM, bert Dvornik wrote:
> Summary: Cygwin's perl 5.14 uses cygwin-thread-multi-64int as the
> archname for user module directories (i.e. those based on PERL5LIB),
> but i686-cygwin-threads-64int as the archname for system module
> directories and for installing files via cpan.  This seems to be based
> on the build configuration (there are two settings in different
> places).  It doesn't make sense to me, though maybe I'm missing
> something.
>
> Long version:
>
> I ran into a problem with local module paths after updating to
> perl-5.14.2-3.  I usually install Perl modules locally into
> ~/perl-lib/ by setting the prefix via CPAN's makepl_arg and
> mbuildpl_arg configuration options.  Then I can set my PERL5LIB to get
> that installation tree automatically used by perl.
>
> This worked fine up to and including perl 5.10.  But with 5.14
> something strange started happening.  If I look at the @INC in the
> "perl -V" output, I see this:
>
>   Summary of my perl5 (revision 5 version 14 subversion 2) configuration:
> [...lots of verbiage removed; see below for full output...]
>     %ENV:
>       PERL5LIB="/home/bert/perl-lib/lib/perl5:/home/bert/perl-lib/lib/perl5/site_perl/5.14:/home/bert/perl-lib/lib/perl5/5.14"
>     @INC:
>       /home/bert/perl-lib/lib/perl5/cygwin-thread-multi-64int
>       /home/bert/perl-lib/lib/perl5
>       /home/bert/perl-lib/lib/perl5/site_perl/5.14/cygwin-thread-multi-64int
>       /home/bert/perl-lib/lib/perl5/site_perl/5.14
>       /home/bert/perl-lib/lib/perl5/5.14/cygwin-thread-multi-64int
>       /home/bert/perl-lib/lib/perl5/5.14
>       /usr/lib/perl5/site_perl/5.14/i686-cygwin-threads-64int
>       /usr/lib/perl5/site_perl/5.14
>       /usr/lib/perl5/vendor_perl/5.14/i686-cygwin-threads-64int
>       /usr/lib/perl5/vendor_perl/5.14
>       /usr/lib/perl5/5.14/i686-cygwin-threads-64int
>       /usr/lib/perl5/5.14
>       /usr/lib/perl5/site_perl/5.10
>       /usr/lib/perl5/vendor_perl/5.10
>       /usr/lib/perl5/site_perl/5.8
>     .
> There are two odd things about this.  First, the @INC directories from
> PERL5LIB use cygwin-thread-multi-64int, but the system ones use
> i686-cygwin-threads-64int.  Second, when CPAN installs packages, they
> go into i686-cygwin-threads-64int, which is why the ones in my
> perl-lib directory are not being found in @INC.
>
> Looking more closely at the output of "perl -V", I can see what's
> probably causing the confusion:
>
>   Summary of my perl5 (revision 5 version 14 subversion 2) configuration:
>
>     Platform:
>       osname=cygwin, osvers=1.7.15(0.26053), archname=cygwin-thread-multi-64int
>       uname='cygwin_nt-5.1 winxp 1.7.15(0.26053) 2012-05-09 10:25 i686 cygwin '
>       config_args='-de -Dlibperl=cygperl5_14.dll -Dcc=gcc-4 -Dld=g++-4
> -Darchname=i686-cygwin-threads-64int -Dmksymlinks -Dusethreads
> -Accflags=-g'
>
> So the platform settings have "archname=cygwin-thread-multi-64int",
> but config_args include "-Darchname=i686-cygwin-threads-64int".  (Is
> config_args the arg list passed to the "sh Configure" when building
> perl?  If so, shouldn't -Darchname ACTUALLY set the archname?  Or is
> there some other weirdness going on here?)

Very interesting catch, thank you!
I will need to think a bit how to fix this, not to break too much.
Or if it needs t be fixed at all.
EU::MM seems to work okay, just MB and local::lib seems to be affected.

Yes, config_args is the cmdline, but archname is overridden
elsewhere in the old Configure system, most likely the hints.
-- 
Reini Urban
http://cpanel.net/   http://www.perl-compiler.org/

--
Problem reports:       http://cygwin.com/problems.html
FAQ:                   http://cygwin.com/faq/
Documentation:         http://cygwin.com/docs.html
Unsubscribe info:      http://cygwin.com/ml/#unsubscribe-simple

- Raw text -


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