Subject: | Pod::Usage::pod2usage() problem with $Config{scriptdir} |
Date: | Fri, 1 Sep 2017 13:49:50 -0500 |
To: | <bug-Solaris-PerlGcc [...] rt.cpan.org>, <bug-Pod-Usage [...] rt.cpan.org> |
From: | Troy Loveday <troyl [...] ti.com> |
I'm submitting this bug report to Config and Pod::Usage, because I'm
not certain which one needs to be changed to fix the problem.
My perl is built with -Duserelocatableinc.
Problem:
When I call pod2usage( -verbose => 2 ), it tries to invoke
"$Config{scriptdir}/perldoc". It fails because the value of
$Config{scriptdir} is '.../'.
I don't know if Config should have applied relocate_inc()
to $Config{scriptdir} or if Pod::Usage should have used
$Config{scriptdirexp}.
I also noticed a related potential problem:
Both $Config{bin} and $Config{binexp} have the value '.../'.
Attached is the script 'pod2usage.pl' which demonstrates the
problem, and also prints the %Config values I mentioned above.
Sample run:
$ perl ./pod2usage.pl
scriptdir : .../
scriptdirexp : /apps/perl/5.14.2/bin/
bin : .../
binexp : .../
Also attached is a patch for Pod::Usage, should that be the
correct solution.
I did not attach a patch for Config. I don't know how to fix it,
since I don't think I understand the intended difference between, e.g.,
$Config{scriptdir} and $Config{scriptdirexp} (given that they both
existed before relocatable @INC). I am interested in clarification
on this.
Thanks very much for your time and effort. I am interested in knowing
the proper fix for this problem.
Here's all the gory details of my environment:
$ perl -MConfig -e 'print "$Config::VERSION\n";'
$ perl -MPod::Usage -e 'print "$Pod::Usage::VERSION\n";'
1.36
$ perl -v
This is perl 5, version 14, subversion 2 (v5.14.2) built for x86_64-linux-thread-multi
Copyright 1987-2011, Larry Wall
Perl may be copied only under the terms of either the Artistic License or the
GNU General Public License, which may be found in the Perl 5 source kit.
Complete documentation for Perl, including FAQ lists, should be found on
this system using "man perl" or "perldoc perl". If you have access to the
Internet, point your browser at http://www.perl.org/, the Perl Home Page.
$ uname -a
Linux dfl6vdt8016.dal.design.ti.com 2.6.32-642.el6.x86_64 #1 SMP Wed Apr 13 00:51:26 EDT 2016 x86_64 x86_64 x86_64 GNU/Linux
$ perl -V
Summary of my perl5 (revision 5 version 14 subversion 2) configuration:
Platform:
osname=linux, osvers=2.6.32-642.el6.x86_64, archname=x86_64-linux-thread-multi
uname='linux dflbhrhel68-64.dal.design.ti.com 2.6.32-642.el6.x86_64 #1 smp wed apr 13 00:51:26 edt 2016 x86_64 x86_64 x86_64 gnulinux '
config_args='-des -Duserelocatableinc -Dusethreads -Dcc=gcc -Dprefix=/apps/perl/5.14.2'
hint=recommended, useposix=true, d_sigaction=define
useithreads=define, usemultiplicity=define
useperlio=define, d_sfio=undef, uselargefiles=define, usesocks=undef
use64bitint=define, use64bitall=define, uselongdouble=undef
usemymalloc=n, bincompat5005=undef
Compiler:
cc='gcc', ccflags ='-D_REENTRANT -D_GNU_SOURCE -fno-strict-aliasing -pipe -fstack-protector -I/usr/local/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64',
optimize='-O2',
cppflags='-D_REENTRANT -D_GNU_SOURCE -fno-strict-aliasing -pipe -fstack-protector -I/usr/local/include'
ccversion='', gccversion='4.4.7 20120313 (Red Hat 4.4.7-17)', gccosandvers=''
intsize=4, longsize=8, ptrsize=8, doublesize=8, byteorder=12345678
d_longlong=define, longlongsize=8, d_longdbl=define, longdblsize=16
ivtype='long', ivsize=8, nvtype='double', nvsize=8, Off_t='off_t', lseeksize=8
alignbytes=8, prototype=define
Linker and Libraries:
ld='gcc', ldflags =' -fstack-protector -L/usr/local/lib'
libpth=/usr/local/lib /lib/../lib64 /usr/lib/../lib64 /lib /usr/lib /lib64 /usr/lib64 /usr/local/lib64
libs=-lnsl -lgdbm -ldb -ldl -lm -lcrypt -lutil -lpthread -lc
perllibs=-lnsl -ldl -lm -lcrypt -lutil -lpthread -lc
libc=/lib/libc-2.12.so, so=so, useshrplib=false, libperl=libperl.a
gnulibc_version='2.12'
Dynamic Linking:
dlsrc=dl_dlopen.xs, dlext=so, d_dlsymun=undef, ccdlflags='-Wl,-E'
cccdlflags='-fPIC', lddlflags='-shared -O2 -L/usr/local/lib -fstack-protector'
Characteristics of this binary (from libperl):
Compile-time options: MULTIPLICITY PERL_DONT_CREATE_GVSV
PERL_IMPLICIT_CONTEXT PERL_MALLOC_WRAP
PERL_PRESERVE_IVUV USE_64_BIT_ALL USE_64_BIT_INT
USE_ITHREADS USE_LARGE_FILES USE_PERLIO USE_PERL_ATOF
USE_REENTRANT_API
Built under linux
Compiled at Sep 8 2016 10:31:18
@INC:
/apps/perl/5.14.2/lib/site_perl/5.14.2/x86_64-linux-thread-multi
/apps/perl/5.14.2/lib/site_perl/5.14.2
/apps/perl/5.14.2/lib/5.14.2/x86_64-linux-thread-multi
/apps/perl/5.14.2/lib/5.14.2
.
--
Troy Loveday <troyl@ti.com>
Analog Technology Development
Texas Instruments, Inc.
Dallas, Texas
214-567-6463
Message body is not shown because sender requested not to inline it.
Message body is not shown because sender requested not to inline it.