Closed p5pRT closed 20 years ago
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\, \
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\, \
It looks like there is some sort of incompatibility along the way...
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\, \
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. ->\<-
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​:
$ 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\, \
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\, \
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
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
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. ->\<-
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
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
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
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
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
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
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
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
Migrated from rt.perl.org#1110 (status was 'resolved')
Searchable as RT1110$