Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

perl 5.005_58 vs existing perl modules #288

Closed
p5pRT opened this issue Jul 29, 1999 · 13 comments
Closed

perl 5.005_58 vs existing perl modules #288

p5pRT opened this issue Jul 29, 1999 · 13 comments

Comments

@p5pRT
Copy link

p5pRT commented Jul 29, 1999

Migrated from rt.perl.org#1110 (status was 'resolved')

Searchable as RT1110$

@p5pRT
Copy link
Author

p5pRT commented Jul 29, 1999

From lvirden@cas.org

I don't know whether this latest release is supposed to be compatible or
not with previous releases. But here's the behavior I am seeing​:

$ cat $(whence cpan)
#!/vol/lwv26ldatae/bin/perl

eval 'exec /vol/lwv26ldatae/bin/perl -S $0 ${1+"$@​"}'
  if 0; # not running under some shell

use CPAN;
shell;

$ cpan
Use of uninitialized value at (eval 3) line 16, <TERMCAP> line 1931.
Use of uninitialized value at /vol/lwv26ldatae/lib/perl5/5.005/Term/Cap.pm line 284.
Use of uninitialized value at /vol/lwv26ldatae/lib/perl5/5.005/Term/Cap.pm line 284.

cpan shell -- CPAN exploration and modules installation (v1.50)
ReadLine support available (try ``install Bundle​::CPAN'')

cpan> install Term​::Cap
defined(@​array) is deprecated at /vol/lwv26ldatae/lib/perl5/site_perl/5.005/sun4-solaris/Net/Cmd.pm line 57, <FIN> line 1.
(Maybe you should just omit the defined()?)
CPAN​: Net​::FTP loaded ok
Fetching with Net​::FTP​:
  ftp​://ftp.perl.org/pub/perl/CPAN/authors/01mailrc.txt.gz
Going to read /home/lwv26/.cpan/sources/authors/01mailrc.txt.gz
ld.so.1​: /vol/lwv26ldatae/bin/perl​: fatal​: relocation error​: file /vol/lwv26ldatae/lib/perl5/site_perl/5.005/sun4-solaris/auto/Compress/Zlib/Zlib.so​: symbol perl_get_sv​: referenced symbol not found
Killed

It looks like there is some sort of incompatibility along the way...

Perl Info


Site configuration information for perl 5.00558:

Configured by lwv26 at Thu Jul 29 13:04:09 EDT 1999.

Summary of my perl5 (revision 5.0 version 5 subversion 58) configuration:
  Platform:
    osname=solaris, osvers=2.6, archname=sun4-solaris
    uname='sunos lwv26awu 5.6 generic_105181-14 sun4u sparc sunw,ultra-5_10 '
    config_args=''
    hint=previous, useposix=true, d_sigaction=define
    usethreads=undef useperlio=undef d_sfio=undef
    use64bits=undef usemultiplicity=undef
  Compiler:
    cc='cc', optimize='-O', gccversion=
    cppflags='-DDEBUGGING -I/projects/gnu/sparc-sun-solaris2.6/include -I/vol/lwv26ldatae/include -I/usr/ccs/include -I/usr/include'
    ccflags ='-DDEBUGGING -I/projects/gnu/sparc-sun-solaris2.6/include -I/vol/lwv26ldatae/include -I/usr/ccs/include -I/usr/include'
    stdchar='unsigned char', d_stdstdio=define, usevfork=false
    intsize=4, longsize=4, ptrsize=4, doublesize=8
    d_longlong=define, longlongsize=8, d_longdbl=define, longdblsize=16
    alignbytes=8, usemymalloc=y, prototype=define
  Linker and Libraries:
    ld='cc', ldflags ='-L/projects/gnu/sparc-sun-solaris2.6/lib -L/vol/lwv26ldatae/lib -L/usr/ccs/lib -R/projects/gnu/sparc-sun-solaris2.6/lib:/vol/lwv26ldatae/lib:/usr/ccs/lib'
    libpth=/projects/gnu/sparc-sun-solaris2.6/lib /vol/lwv26ldatae/lib /usr/ccs/lib /usr/lib
    libs=-lsocket -lnsl -lgdbm -ldb -ldl -lm -lc -lcrypt
    libc=/lib/libc.so, so=so, useshrplib=false, libperl=libperl.a
  Dynamic Linking:
    dlsrc=dl_dlopen.xs, dlext=so, d_dlsymun=undef, ccdlflags=' '
    cccdlflags='-KPIC', lddlflags='-R/projects/gnu/sparc-sun-solaris2.6/lib:/vol/lwv26ldatae/lib:/usr/ccs/lib -G -L/projects/gnu/sparc-sun-solaris2.6/lib -L/vol/lwv26ldatae/lib -L/usr/ccs/lib'

Locally applied patches:
    


@INC for perl 5.00558:
    /home/lwv26/lib/perl5/
    /projects/sprs_lwv/lib/perl5/
    /vol/lwv26ldatae/lib/perl5/5.005/sun4-solaris
    /vol/lwv26ldatae/lib/perl5/5.005
    /vol/lwv26ldatae/lib/perl5/site_perl/5.005/sun4-solaris
    /vol/lwv26ldatae/lib/site_perl
    .


Environment for perl 5.00558:
    HOME=/home/lwv26
    LANG=C
    LANGUAGE (unset)
    LD_LIBRARY_PATH=/lprod/cas/lib:/usr/dt/lib:/usr/openwin/lib:/usr/lib
    LOGDIR (unset)
    PATH=/opt/SUNWspro/bin:/ldatae/bin:/projects/sprs_lwv/sol26/bin:/projects/sprs_lwv/sol26/bin/mime:/projects/sprs_lwv/sol2/bin:/projects/sprs_lwv/bin:/projects/sprs_lwv/bin/mime:/home/lwv26/bin/D.news:/usr/perl5/bin:/projects/gnu/sparc-sun-solaris2.6/bin:/usr/tcl80/pd/sun4/bin:/usr/tcl80/pd/bin:/usr/tcl80/sun4/bin:/usr/tcl80/bin:/projects/xopsrc/sun4/bin:/projects/xopsrc/bin:/usr/atria/bin:/projects/intranet/bin:/projects/clearcase/bin:/vol/tclsrcsol/TclPro1.2/solaris-sparc/bin:/ldata2/teTeX/bin/sparc-sun-solaris2.6:/usr/tcl81/sun4/bin:/usr/tcl81/bin:/ldata/bin:/home/lwv26/bin/D.aws:/home/lwv26/bin/sol2:/home/lwv26/bin/D.frontend:/home/lwv26/bin/D.ksh:/cas/test/bin/sun4:/projects/sprs_lwv/bin/sol2:/usr/java1.2/bin:/home/lwv26/bin/sun4:/lprod/cas/bin:/usr/local/bin:/usr/dt/bin:/usr/openwin/bin:/bin:/cas/bin/sun4:/cas/abin/sun4:/cas/X11/sun4/bin:/usr/ccs/bin:/uprod/bin:/usr/sbin:/cas/tools/bin/sun4:/cas/X11/sun4/tools/bin:/usr/ucb:/home/lwv26/bin:/cas/tools/pdbin/sun4:/home/l!
wv26/bin/D.mistypes:/home/lwv26/bin/D.toys:/home/lwv26/bin/D.tools:/projects/npd/npdweb/bin-sol2
    PERL5LIB=/home/lwv26/lib/perl5/:/projects/sprs_lwv/lib/perl5/:
    PERLDOC=-t
    PERLLIB=/home/lwv26/lib/perl:/projects/sprs_lwv/lib/perl:
    PERL_BADLANG (unset)
    SHELL=/bin/ksh

@p5pRT
Copy link
Author

p5pRT commented Jul 29, 1999

From [Unknown Contact. See original ticket]

On Thu, 29 Jul 1999 14​:39​:13 EDT, "Larry W. Virden" wrote​:

I don't know whether this latest release is supposed to be compatible or
not with previous releases.

perldelta.pod is your friend.

Hmm - so it is. I guess I am surprised by the behavior in Configure though.
In the past, when there was a break in binary compatibility, a different
directory was presented as the default by Configure. When I didn't get
that prompt, I assumed (yes, bad to do ... sorry) that things were
continuing to be compatible. To date, this release was the first in the
5.005_5x series that demonstrated the difference.

$ cpan
Use of uninitialized value at (eval 3) line 16, <TERMCAP> line 1931.
Use of uninitialized value at /vol/lwv26ldatae/lib/perl5/5.005/Term/Cap.pm lin
e 284.
Use of uninitialized value at /vol/lwv26ldatae/lib/perl5/5.005/Term/Cap.pm lin
e 284.

Were these warnings emitted by previous versions too?

No, they were not.

ftp​://ftp.perl.org/pub/perl/CPAN/authors/01mailrc.txt.gz
Going to read /home/lwv26/.cpan/sources/authors/01mailrc.txt.gz
ld.so.1​: /vol/lwv26ldatae/bin/perl​: fatal​: relocation error​: file /vol/lwv26ld
atae/lib/perl5/site_perl/5.005/sun4-solaris/auto/Compress/Zlib/Zlib.so​: symbol
  > ^^^^^

You'll need to enable PERL_BINCOMPAT_5005 as perldelta.pod suggests.
(Jarkko​: This needs to be a Configure flag that defaults to on.)

Beware that 5.005_5x can only hope to be binary compatible with 5.005
extensions when your are making a plain-vanilla-no-doodads-whatsoever
build. If you ask for MULTIPLICITY or USE_THREADS, you're out of luck.

It's a shame Configure can not detect that special case (as far as I am aware,
I've not asked for either of these) and prompt the configurer to use
a different directory structure...
--
Larry W. Virden <URL​: mailto​:lvirden@​cas.org>
<URL​: http​://www.purl.org/NET/lvirden/> <*> O- "No one is what he seems."
Unless explicitly stated to the contrary, nothing in this posting should
be construed as representing my employer's opinions.
-><-

@p5pRT
Copy link
Author

p5pRT commented Jul 29, 1999

From @gsar

On Thu, 29 Jul 1999 14​:39​:13 EDT, "Larry W. Virden" wrote​:

I don't know whether this latest release is supposed to be compatible or
not with previous releases.

perldelta.pod is your friend.

                        But here's the behavior I am seeing&#8203;:

$ cat $(whence cpan)
#!/vol/lwv26ldatae/bin/perl

eval 'exec /vol/lwv26ldatae/bin/perl -S $0 ${1+"$@​"}'
if 0; # not running under some shell

use CPAN;
shell;

$ cpan
Use of uninitialized value at (eval 3) line 16, <TERMCAP> line 1931.
Use of uninitialized value at /vol/lwv26ldatae/lib/perl5/5.005/Term/Cap.pm lin
e 284.
Use of uninitialized value at /vol/lwv26ldatae/lib/perl5/5.005/Term/Cap.pm lin
e 284.

Were these warnings emitted by previous versions too?

cpan shell -- CPAN exploration and modules installation (v1.50)
ReadLine support available (try ``install Bundle​::CPAN'')

cpan> install Term​::Cap
defined(@​array) is deprecated at /vol/lwv26ldatae/lib/perl5/site_perl/5.005/su
n4-solaris/Net/Cmd.pm line 57, <FIN> line 1.
(Maybe you should just omit the defined()?)

Seems to be a problem in Net​::Cmd.

CPAN​: Net​::FTP loaded ok
Fetching with Net​::FTP​:
ftp​://ftp.perl.org/pub/perl/CPAN/authors/01mailrc.txt.gz
Going to read /home/lwv26/.cpan/sources/authors/01mailrc.txt.gz
ld.so.1​: /vol/lwv26ldatae/bin/perl​: fatal​: relocation error​: file /vol/lwv26ld
atae/lib/perl5/site_perl/5.005/sun4-solaris/auto/Compress/Zlib/Zlib.so​: symbol
  ^^^^^

You'll need to enable PERL_BINCOMPAT_5005 as perldelta.pod suggests.
(Jarkko​: This needs to be a Configure flag that defaults to on.)

Beware that 5.005_5x can only hope to be binary compatible with 5.005
extensions when your are making a plain-vanilla-no-doodads-whatsoever
build. If you ask for MULTIPLICITY or USE_THREADS, you're out of luck.

Sarathy
gsar@​activestate.com

@p5pRT
Copy link
Author

p5pRT commented Jul 29, 1999

From @gsar

On Thu, 29 Jul 1999 22​:23​:32 +0300, Jarkko Hietaniemi wrote​:

You'll need to enable PERL_BINCOMPAT_5005 as perldelta.pod suggests.
(Jarkko​: This needs to be a Configure flag that defaults to on.)

Come again? A "Configure flag"? Do you mean there should be
a question like "You wanna binary compatibility with 5.005? [y] "
the answer to which ends up in $Config{bincompat5005}?

Yes.

Sarathy
gsar@​activestate.com

@p5pRT
Copy link
Author

p5pRT commented Jul 29, 1999

From [Unknown Contact. See original ticket]

Okay, after reading the perldelta.pod, I tried editing my config.sh
to include the -DPERL_BINCOMPAT_5005 -DPERL_POLLUTE flags.
I then did a Configure -der and a make. The results I get are
interesting​:

/usr/ccs/bin/ar rcu libperl.a perl.o malloc.o gv.o toke.o perly.o op.o regcomp.o
dump.o util.o mg.o hv.o av.o run.o pp_hot.o sv.o pp.o scope.o pp_ctl.o pp_sys.o
doop.o doio.o regexec.o utf8.o taint.o deb.o universal.o globals.o perlio.o
cc -L/projects/gnu/sparc-sun-solaris2.6/lib -L/vol/lwv26ldatae/lib -L/usr/ccs/l
ib -R/projects/gnu/sparc-sun-solaris2.6/lib​:/vol/lwv26ldatae/lib​:/usr/ccs/lib -o
miniperl miniperlmain.o libperl.a -lsocket -lnsl -lgdbm -ldb -ldl -lm -lc -lcry
pt
./miniperl -w -Ilib -MExporter -e 0 || make minitest
Bus Error - core dumped
make[1]​: Entering directory `/ldatae/gnu/perl5.005_58'
You may see some irrelevant test failures if you have been unable
to build lib/Config.pm.
cd t && (rm -f perl; /bin/ln -s ../miniperl perl) \
  && ./perl TEST base/*.t comp/*.t cmd/*.t io/*.t op/*.t pragma/*.t </dev
/tty
Bus Error - core dumped
make[1]​: [minitest] Error 138 (ignored)
make[1]​: Leaving directory `/ldatae/gnu/perl5.005_58'
./miniperl configpm configpm.tmp
make​: *** [lib/Config.pm] Bus Error (core dumped)
--
Larry W. Virden <URL​: mailto​:lvirden@​cas.org>
<URL​: http​://www.purl.org/NET/lvirden/> <*> O- "No one is what he seems."
Unless explicitly stated to the contrary, nothing in this posting should
be construed as representing my employer's opinions.
-><-

@p5pRT
Copy link
Author

p5pRT commented Jul 29, 1999

From @jhi

Gurusamy Sarathy writes​:

CPAN​: Net​::FTP loaded ok
Fetching with Net​::FTP​:
ftp​://ftp.perl.org/pub/perl/CPAN/authors/01mailrc.txt.gz
Going to read /home/lwv26/.cpan/sources/authors/01mailrc.txt.gz
ld.so.1​: /vol/lwv26ldatae/bin/perl​: fatal​: relocation error​: file /vol/lwv26ld
atae/lib/perl5/site_perl/5.005/sun4-solaris/auto/Compress/Zlib/Zlib.so​: symbol
^^^^^

You'll need to enable PERL_BINCOMPAT_5005 as perldelta.pod suggests.
(Jarkko​: This needs to be a Configure flag that defaults to on.)

Come again? A "Configure flag"? Do you mean there should be
a question like "You wanna binary compatibility with 5.005? [y] "
the answer to which ends up in $Config{bincompat5005}?

Beware that 5.005_5x can only hope to be binary compatible with 5.005
extensions when your are making a plain-vanilla-no-doodads-whatsoever
build. If you ask for MULTIPLICITY or USE_THREADS, you're out of luck.

Sarathy
gsar@​activestate.com

--
$jhi++; # http​://www.iki.fi/jhi/
  # There is this special biologist word we use for 'stable'.
  # It is 'dead'. -- Jack Cohen

@p5pRT
Copy link
Author

p5pRT commented Jul 29, 1999

From @jhi

Gurusamy Sarathy writes​:

On Thu, 29 Jul 1999 22​:23​:32 +0300, Jarkko Hietaniemi wrote​:

You'll need to enable PERL_BINCOMPAT_5005 as perldelta.pod suggests.
(Jarkko​: This needs to be a Configure flag that defaults to on.)

Come again? A "Configure flag"? Do you mean there should be
a question like "You wanna binary compatibility with 5.005? [y] "
the answer to which ends up in $Config{bincompat5005}?

Yes.

Does the sesquipedalian -DPERL_BINCOMPAT_5005 have to go to ccflags?
Isn't some shameful shady corner of config.h enough?

--
$jhi++; # http​://www.iki.fi/jhi/
  # There is this special biologist word we use for 'stable'.
  # It is 'dead'. -- Jack Cohen

@p5pRT
Copy link
Author

p5pRT commented Jul 29, 1999

From @jhi

Ilya Zakharevich writes​:

Jarkko Hietaniemi writes​:

Come again? A "Configure flag"? Do you mean there should be
a question like "You wanna binary compatibility with 5.005? [y] "
the answer to which ends up in $Config{bincompat5005}?

Yes.

Does the sesquipedalian -DPERL_BINCOMPAT_5005 have to go to ccflags?
Isn't some shameful shady corner of config.h enough?

There should be -D add_ccflags=... option to Configure.

There is. It's called -Dccflags. All that gets prepended to your
ccflags-- unless your hints file does naughty things like

  ccflags="-blah"

instead of

  ccflags="$ccflags -blah"

--
$jhi++; # http​://www.iki.fi/jhi/
  # There is this special biologist word we use for 'stable'.
  # It is 'dead'. -- Jack Cohen

@p5pRT
Copy link
Author

p5pRT commented Jul 29, 1999

From [Unknown Contact. See original ticket]

Jarkko Hietaniemi writes​:

Come again? A "Configure flag"? Do you mean there should be
a question like "You wanna binary compatibility with 5.005? [y] "
the answer to which ends up in $Config{bincompat5005}?

Yes.

Does the sesquipedalian -DPERL_BINCOMPAT_5005 have to go to ccflags?
Isn't some shameful shady corner of config.h enough?

There should be -D add_ccflags=... option to Configure.

Ilya

@p5pRT
Copy link
Author

p5pRT commented Jul 29, 1999

From @jhi

Ilya Zakharevich writes​:

On Thu, Jul 29, 1999 at 11​:29​:34PM +0300, Jarkko Hietaniemi wrote​:

There is. It's called -Dccflags. All that gets prepended to your
ccflags-- unless your hints file does naughty things like

ccflags="\-blah"

instead of

ccflags="$ccflags \-blah"

How would you *change* ccflags then? I

In hints files you mean? sed, basically.

grep ccflags= \*

in ./hints, and see both styles prolific there. It should be possible

Yes, I know. That's a sin of the hints file writers.

to do it both ways.

Well, *sometimes* the hints file writer is right in clobbering the
old value of a setting.

Just checking that we are on the same page​: you are suggesting
a Configure -Dthing that would append something to ccflags
after the hints file has been processed?

--
$jhi++; # http​://www.iki.fi/jhi/
  # There is this special biologist word we use for 'stable'.
  # It is 'dead'. -- Jack Cohen

@p5pRT
Copy link
Author

p5pRT commented Jul 29, 1999

From [Unknown Contact. See original ticket]

On Thu, Jul 29, 1999 at 11​:29​:34PM +0300, Jarkko Hietaniemi wrote​:

There is. It's called -Dccflags. All that gets prepended to your
ccflags-- unless your hints file does naughty things like

ccflags="\-blah"

instead of

ccflags="$ccflags \-blah"

How would you *change* ccflags then? I

  grep ccflags= *

in ./hints, and see both styles prolific there. It should be possible
to do it both ways.

Ilya

@p5pRT
Copy link
Author

p5pRT commented Jul 29, 1999

From [Unknown Contact. See original ticket]

On Fri, Jul 30, 1999 at 12​:22​:35AM +0300, Jarkko Hietaniemi wrote​:

There is. It's called -Dccflags. All that gets prepended to your
ccflags-- unless your hints file does naughty things like

ccflags="\-blah"

instead of

ccflags="$ccflags \-blah"

How would you *change* ccflags then? I

In hints files you mean? sed, basically.

No. How would you *replace* ccflags from Configure command line?

grep ccflags= \*

in ./hints, and see both styles prolific there. It should be possible

Yes, I know. That's a sin of the hints file writers.

I do not think so. We cannot require people follow non-existing
suggestions. Where is it written which flags are appended/prepended/replaced?

Just checking that we are on the same page​: you are suggesting
a Configure -Dthing that would append something to ccflags
after the hints file has been processed?

Given the amound of hints/*.sh files which append/prepend ccflags, it
is probably not needed - just fix those which do not do this.
However, in the future one may need to have an "overwrite_ccflags"
option. Probably Configure could recognize any "overwrite_*" option.

BTW, yesterday I realized how useful may be mv_if_different when
extracting .SH files. This may remove a redundant recompilation.

Ilya

@p5pRT
Copy link
Author

p5pRT commented Jul 30, 1999

From @jhi

Ilya Zakharevich writes​:

In hints files you mean? sed, basically.

No. How would you *replace* ccflags from Configure command line?

You mean ignore completely what the hints file says?

grep ccflags= \*

in ./hints, and see both styles prolific there. It should be possible

Yes, I know. That's a sin of the hints file writers.

I do not think so. We cannot require people follow non-existing
suggestions. Where is it written which flags are appended/prepended/replaced?

INSTALL​:

=head2 Other Compiler Flags

For most users, all of the Configure defaults are fine. However, you
can change a number of factors in the way perl is built by adding
appropriate -D directives to your ccflags variable in config.sh.

You should also run Configure interactively to verify that a hint file
doesn't inadvertently override your ccflags setting. (Hints files
shouldn't do that, but some might.)

--
$jhi++; # http​://www.iki.fi/jhi/
  # There is this special biologist word we use for 'stable'.
  # It is 'dead'. -- Jack Cohen

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

1 participant