* perl: inconsistent archname in build config?
@ 2012-09-08 11:26 bert Dvornik
2012-09-08 20:26 ` bert Dvornik
2012-09-09 22:27 ` Reini Urban
0 siblings, 2 replies; 3+ messages in thread
From: bert Dvornik @ 2012-09-08 11:26 UTC (permalink / raw)
To: cygwin
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?)
It's been a few years since I've built perl from scratch, and I'm
sorry to say really don't have time to experiment with it at the
moment. The archname disconnect between CPAN installs and PERL5LIB is
being mildly annoying, but easy to band-aid by moving files to the
correct directory names. Any clues as to whether the behavior I'm
seeing is "correct", and if so, whether it's a problem in how perl was
configured for Cygwin or some bug in perl's build system?
Thank you in advance for any clues,
--bert
--
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
^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: perl: inconsistent archname in build config?
2012-09-08 11:26 perl: inconsistent archname in build config? bert Dvornik
@ 2012-09-08 20:26 ` bert Dvornik
2012-09-09 22:27 ` Reini Urban
1 sibling, 0 replies; 3+ messages in thread
From: bert Dvornik @ 2012-09-08 20:26 UTC (permalink / raw)
To: cygwin
On Fri, Sep 7, 2012 at 9:30 PM, bert Dvornik <bert@gljiva.org> 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.
Oops, I had promised the full output of perl -V but didn't include it.
Sorry. (Most of this will be exactly the same for everyone else, but
here it is just in case.)
--bert
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'
hint=recommended, useposix=true, d_sigaction=define
useithreads=define, usemultiplicity=define
useperlio=define, d_sfio=undef, uselargefiles=define, usesocks=undef
use64bitint=define, use64bitall=undef, uselongdouble=undef
usemymalloc=n, bincompat5005=undef
Compiler:
cc='gcc-4', ccflags ='-DPERL_USE_SAFE_PUTENV -U__STRICT_ANSI__ -g
-fno-strict-aliasing -pipe -fstack-protector',
optimize='-O3',
cppflags='-DPERL_USE_SAFE_PUTENV -U__STRICT_ANSI__ -g
-fno-strict-aliasing -pipe -fstack-protector'
ccversion='', gccversion='4.5.3', gccosandvers=''
intsize=4, longsize=4, ptrsize=4, doublesize=8, byteorder=12345678
d_longlong=define, longlongsize=8, d_longdbl=define, longdblsize=12
ivtype='long long', ivsize=8, nvtype='double', nvsize=8,
Off_t='off_t', lseeksize=8
alignbytes=8, prototype=define
Linker and Libraries:
ld='g++-4', ldflags =' -Wl,--enable-auto-import
-Wl,--export-all-symbols -Wl,--enable-auto-image-base
-fstack-protector -L/usr/local/lib'
libpth=/usr/local/lib /usr/lib /lib
libs=-lgdbm -ldb -ldl -lcrypt -lgdbm_compat
perllibs=-ldl -lcrypt
libc=/usr/lib/libc.a, so=dll, useshrplib=true, libperl=cygperl5_14.dll
gnulibc_version=''
Dynamic Linking:
dlsrc=dl_dlopen.xs, dlext=dll, d_dlsymun=undef, ccdlflags=' '
cccdlflags=' ', lddlflags=' --shared -Wl,--enable-auto-import
-Wl,--export-all-symbols -Wl,--enable-auto-image-base -L/usr/local/lib
-fstack-protector'
Characteristics of this binary (from libperl):
Compile-time options: MULTIPLICITY PERL_DONT_CREATE_GVSV
PERL_IMPLICIT_CONTEXT PERL_PRESERVE_IVUV
PERL_USE_SAFE_PUTENV USE_64_BIT_INT USE_ITHREADS
USE_LARGE_FILES USE_PERLIO USE_PERL_ATOF
USE_REENTRANT_API
Locally applied patches:
Bug#55162 File::Spec::case_tolerant performance
CYG07 $vendorarch/auto/.rebase
CYG15 static Win32CORE
CYG17 cyg-1.7 paths-utf8
0c612ce82 Fix building static extensions on cygwin, -UUSEIMPORTLIB
1bac5ecc1 Fix 64-bit threading sv.c: S_anonymise_cv_maybe
Cygwin::sync_winenv added
Built under cygwin
Compiled at Jul 12 2012 14:17:21
%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
.
--
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
^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: perl: inconsistent archname in build config?
2012-09-08 11:26 perl: inconsistent archname in build config? bert Dvornik
2012-09-08 20:26 ` bert Dvornik
@ 2012-09-09 22:27 ` Reini Urban
1 sibling, 0 replies; 3+ messages in thread
From: Reini Urban @ 2012-09-09 22:27 UTC (permalink / raw)
To: cygwin
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
^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2012-09-09 22:17 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2012-09-08 11:26 perl: inconsistent archname in build config? bert Dvornik
2012-09-08 20:26 ` bert Dvornik
2012-09-09 22:27 ` Reini Urban
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).