# This is a patch for perl-5.6.0 to update it to perl-5.6.1-TRIAL1. # It was generated by makepatch 1.92 (2.0BETA) on Mon Dec 18 02:03:23 2000. # # To apply this patch, chdir to source directory perl-5.6.0 and enter # # /bin/sh # patch -p1 -N < rm -f MAINTAIN rm -f lib/CGI.pm rm -f lib/unicode/Is/DCinital.pl rm -f lib/unicode/Props.txt rm -f lib/unicode/UCD300.html rm -f lib/unicode/Unicode.300 rm -f lib/unicode/Unicode3.html rm -f pod/Makefile rm -f pod/Win32.pod rm -f pod/buildtoc rm -f utils/perlbc.PL rm -f vms/subconfigure.com rm -f vos/config.def rm -f vos/config.h rm -f vos/config_h.SH_orig touch Porting/repository.pod touch README.aix touch README.solaris touch ext/DynaLoader/dl_mac.xs touch ext/DynaLoader/hints/netbsd.pl touch hints/nonstopux.sh touch lib/CGI.pm touch lib/CGI/Util.pm touch lib/File/Spec/Epoc.pm touch lib/File/Temp.pm touch lib/Pod/LaTeX.pm touch lib/Win32.pod touch lib/unicode/BidiMirr.txt touch lib/unicode/CaseFold.txt touch lib/unicode/Is/BidiAL.pl touch lib/unicode/Is/BidiBN.pl touch lib/unicode/Is/BidiLRE.pl touch lib/unicode/Is/BidiLRO.pl touch lib/unicode/Is/BidiNSM.pl touch lib/unicode/Is/BidiPDF.pl touch lib/unicode/Is/BidiRLE.pl touch lib/unicode/Is/BidiRLO.pl touch lib/unicode/Is/Cf.pl touch lib/unicode/Is/Cs.pl touch lib/unicode/Is/DCfraction.pl touch lib/unicode/Is/DCmedial.pl touch lib/unicode/Is/LbrkAI.pl touch lib/unicode/Is/LbrkAL.pl touch lib/unicode/Is/LbrkB2.pl touch lib/unicode/Is/LbrkBA.pl touch lib/unicode/Is/LbrkBB.pl touch lib/unicode/Is/LbrkBK.pl touch lib/unicode/Is/LbrkCB.pl touch lib/unicode/Is/LbrkCL.pl touch lib/unicode/Is/LbrkCM.pl touch lib/unicode/Is/LbrkCR.pl touch lib/unicode/Is/LbrkEX.pl touch lib/unicode/Is/LbrkGL.pl touch lib/unicode/Is/LbrkHY.pl touch lib/unicode/Is/LbrkID.pl touch lib/unicode/Is/LbrkIN.pl touch lib/unicode/Is/LbrkIS.pl touch lib/unicode/Is/LbrkLF.pl touch lib/unicode/Is/LbrkNS.pl touch lib/unicode/Is/LbrkNU.pl touch lib/unicode/Is/LbrkOP.pl touch lib/unicode/Is/LbrkPO.pl touch lib/unicode/Is/LbrkPR.pl touch lib/unicode/Is/LbrkQU.pl touch lib/unicode/Is/LbrkSA.pl touch lib/unicode/Is/LbrkSG.pl touch lib/unicode/Is/LbrkSP.pl touch lib/unicode/Is/LbrkSY.pl touch lib/unicode/Is/LbrkXX.pl touch lib/unicode/Is/LbrkZW.pl touch lib/unicode/Is/Me.pl touch lib/unicode/Is/Nl.pl touch lib/unicode/Is/Pc.pl touch lib/unicode/Is/Pf.pl touch lib/unicode/Is/Pi.pl touch lib/unicode/Is/Sk.pl touch lib/unicode/Is/SylAA.pl touch lib/unicode/Is/SylAAI.pl touch lib/unicode/Is/SylAI.pl touch lib/unicode/Is/SylEE.pl touch lib/unicode/Is/SylII.pl touch lib/unicode/Is/SylN.pl touch lib/unicode/Is/SylOO.pl touch lib/unicode/Is/SylWAA.pl touch lib/unicode/Is/SylWEE.pl touch lib/unicode/Is/SylWII.pl touch lib/unicode/Is/SylWO.pl touch lib/unicode/Is/SylWOO.pl touch lib/unicode/Is/SylWU.pl touch lib/unicode/PropList.txt touch lib/unicode/README.perl touch lib/unicode/UCD301.html touch lib/unicode/UCDFF301.html touch lib/unicode/Unicode.301 touch pod/Makefile.SH touch pod/buildtoc.PL touch pod/perldebtut.pod touch pod/perlebcdic.pod touch pod/perlmodlib.PL touch pod/perlnewmod.pod touch pod/perlrequick.pod touch pod/perlretut.pod touch pod/perlutil.pod touch t/lib/b.t touch t/lib/cgi-pretty.t touch t/lib/class-struct.t touch t/lib/ftmp-mktemp.t touch t/lib/ftmp-posix.t touch t/lib/ftmp-security.t touch t/lib/ftmp-tempfile.t touch t/lib/gol-oo.t touch t/lib/peek.t touch t/lib/selfloader.t touch t/lib/syslog.t touch t/lib/tie-refhash.t touch t/lib/tie-splice.t touch t/lib/tie-substrhash.t touch t/op/my_stash.t touch t/op/regmesg.t touch t/pod/find.t touch vms/vmspipe.com touch vos/config.alpha.def touch vos/config.alpha.h touch vos/config.ga.def touch vos/config.ga.h touch vos/configure_perl.cm touch vos/install_perl.cm exit # End of preamble. Index: patchlevel.h ####### perl-5.6.1-TRIAL1/ => perl-5.6.1-TRIAL1 *** perl-5.6.1-TRIAL1/patchlevel.h Wed Mar 22 12:23:11 2000 --- perl-5.6.1-TRIAL1/patchlevel.h Sun Dec 17 21:13:42 2000 *************** *** 5,11 **** #define PERL_REVISION 5 /* age */ #define PERL_VERSION 6 /* epoch */ ! #define PERL_SUBVERSION 0 /* generation */ /* The following numbers describe the earliest compatible version of Perl ("compatibility" here being defined as sufficient binary/API --- 5,11 ---- #define PERL_REVISION 5 /* age */ #define PERL_VERSION 6 /* epoch */ ! #define PERL_SUBVERSION 1 /* generation */ /* The following numbers describe the earliest compatible version of Perl ("compatibility" here being defined as sufficient binary/API *************** *** 70,75 **** --- 70,76 ---- #if !defined(PERL_PATCHLEVEL_H_IMPLICIT) && !defined(LOCAL_PATCH_COUNT) static char *local_patches[] = { NULL + , "v5.6.1-TRIAL1" ,NULL }; Index: AUTHORS ####### perl-5.6.1-TRIAL1/ => perl-5.6.1-TRIAL1 *** perl-5.6.1-TRIAL1/AUTHORS Mon Dec 27 18:18:12 1999 --- perl-5.6.1-TRIAL1/AUTHORS Sun Dec 17 19:27:02 2000 *************** *** 1,120 **** ! # Two sections: the real one and the virtual one. ! # The real section has three \t+ fields: alias, name, email. ! # The sections are separated by one or more empty lines. ! # The virtual section (each record two \t+ separated fields) builds ! # meta-aliases based on the real section. ! ! alan.burlison Alan Burlison Alan.Burlison@UK.Sun.com ! allen Norton T. Allen allen@huarp.harvard.edu ! bradapp Brad Appleton bradapp@enteract.com ! cbail Charles Bailey bailey@newman.upenn.edu ! dgris Daniel Grisinger dgris@dimensional.com ! dmulholl Daniel Yacob dmulholl@cs.indiana.edu ! dogcow Tom Spindler dogcow@merit.edu ! domo Dominic Dunlop domo@slipper.ip.lu ! doug Doug MacEachern dougm@pobox.com ! doughera Andy Dougherty doughera@lafcol.lafayette.edu ! gbarr Graham Barr gbarr@ti.com ! gerti Gerd Knops gerti@BITart.com ! gibreel Stephen Zander gibreel@pobox.com ! gnat Nathan Torkington gnat@frii.com ! gsar Gurusamy Sarathy gsar@activestate.com ! hansmu Hans Mulder hansmu@xs4all.nl ! ilya Ilya Zakharevich ilya@math.ohio-state.edu ! jbuehler Joe Buehler jbuehler@hekimian.com ! jfs John Stoffel jfs@fluent.com ! jhi Jarkko Hietaniemi jhi@iki.fi ! jon Jon Orwant orwant@media.mit.edu ! jvromans Johan Vromans jvromans@squirrel.nl ! k Andreas Koenig andreas.koenig@franz.ww.tu-berlin.de ! kjahds Kenneth Albanowski kjahds@kjahds.com ! krishna Krishna Sethuraman krishna@sgi.com ! kstar Kurt D. Starsinic kstar@isinet.com ! lstein Lincoln D. Stein lstein@genome.wi.mit.edu ! lutherh Luther Huffman lutherh@stratcom.com ! lutz Mark P. Lutz mark.p.lutz@boeing.com ! lwall Larry Wall larry@wall.org ! makemaker MakeMaker list makemaker@franz.ww.tu-berlin.de ! mbiggar Mark A Biggar mab@wdl.loral.com ! mbligh Martin J. Bligh mbligh@sequent.com ! mike Mike Stok mike@stok.co.uk ! millert Todd Miller millert@openbsd.org ! laszlo.molnar Laszlo Molnar Laszlo.Molnar@eth.ericsson.se ! mpeix Mark Bixby markb@cccd.edu ! muir David Muir Sharnoff muir@idiom.com ! neale Neale Ferguson neale@VMA.TABNSW.COM.AU ! nik Nick Ing-Simmons nik@tiuk.ti.com ! okamoto Jeff Okamoto okamoto@corp.hp.com ! paul_green Paul Green Paul_Green@stratus.com ! pmarquess Paul Marquess Paul.Marquess@btinternet.com ! pomeranz Hal Pomeranz pomeranz@netcom.com ! pudge Chris Nandor pudge@pobox.com ! pueschel Norbert Pueschel pueschel@imsdd.meb.uni-bonn.de ! pvhp Peter Prymmer pvhp@forte.com ! raphael Raphael Manfredi Raphael_Manfredi@pobox.com ! rdieter Rex Dieter rdieter@math.unl.edu ! rsanders Robert Sanders Robert.Sanders@linux.org ! roberto Ollivier Robert roberto@keltia.freenix.fr ! roderick Roderick Schertler roderick@argon.org ! roehrich Dean Roehrich roehrich@cray.com ! tsanders Tony Sanders sanders@bsdi.com ! schinder Paul Schinder schinder@pobox.com ! scotth Scott Henry scotth@sgi.com ! seibert Greg Seibert seibert@Lynx.COM ! spider Spider Boardman spider@Orb.Nashua.NH.US ! smccam Stephen McCamant smccam@uclink4.berkeley.edu ! sugalskd Dan Sugalski sugalskd@osshe.edu ! sundstrom David Sundstrom sunds@asictest.sc.ti.com ! tchrist Tom Christiansen tchrist@perl.com ! thomas.dorner Dorner Thomas Thomas.Dorner@start.de ! timb Tim Bunce Tim.Bunce@ig.co.uk ! tom.horsley Tom Horsley Tom.Horsley@mail.ccur.com ! tye Tye McQueen tye@metronet.com ! wayne.thompson Wayne Thompson Wayne.Thompson@Ebay.sun.com ! ! PUMPKING gsar ! aix jhi ! amiga pueschel ! beos dogcow ! bsdos tsanders ! cfg jhi ! cgi lstein ! complex jhi,raphael ! cpan k ! cxux tom.horsley ! cygwin win32 ! dec_osf jhi,spider ! dgux roderick ! doc tchrist ! dos laszlo.molnar ! dynix/ptx mbligh ! ebcdic vms,vmesa,posixbc ! filespec kjahds ! freebsd roberto ! hpux okamoto,jhi ! irix scotth,krishna,jfs,kstar ! jpl gibreel ! linux kjahds,kstar ! locale jhi,domo ! lynxos lynxos ! machten domo ! mm makemaker ! mvs pvhp ! netbsd jhi ! openbsd millert ! os2 ilya ! plan9 lutherl ! posix-bc thomas.dorner ! powerux tom.horsley ! qnx allen ! solaris doughera,alan.burlison ! step gerti,hansmu,rdieter ! sunos4 doughera ! svr4 tye ! unicos jhi,lutz ! uwin jbuehler ! vmesa neale ! vms sugalskd,cbail ! vos paul_green ! warn pmarquess ! win32 gsar --- 1,512 ---- ! # To give due honor to those who have made Perl 5 what is is today, ! # here are easily-from-changelogs-extractable people and their ! # (hopefully) current and preferred email addresses (as of late 2000 ! # if known) from the Changes files. These people have either submitted ! # patches or suggestions, or their bug reports or comments have inspired ! # the appropriate patches. Corrections and additions welcome. ! # ! -- ! Aaron B. Dossett ! Abigail ! Achim Bohnet ! Adam Krolnik ! Akim Demaille ! Alan Burlison ! Alan Champion ! Alan Harder ! Alan Modra ! Albert Dvornik ! Alexander Smishlajev ! Ambrose Kofi Laing ! Andreas Klussmann ! Andreas König ! Andreas Schwab ! Andrew Bettison ! Andrew Cohen ! Andrew M. Langmead ! Andrew Pimlott ! Andrew Vignaux ! Andrew Wilcox ! Andy Dougherty ! Anno Siegel ! Anthony David ! Anton Berezin ! Art Green ! Artur ! Barrie Slaymaker ! Barry Friedman ! Ben Tilly ! Benjamin Low ! Benjamin Stuhl ! Benjamin Sugars ! Bernard Quatermass ! Bill Campbell ! Bill Glicker ! Billy Constantine ! Blair Zajac ! Boyd Gerber ! Brad Appleton ! Brad Hughes ! Brad Lanam ! Brent B. Powers ! Brian Callaghan ! Brian Clarke ! Brian Grossman ! Brian Harrison ! Brian Jepson ! Brian Katzung ! Brian Reichert ! Brian S. Cashman ! Bruce Barnett ! Bruce J. Keeler ! Bruce P. Schuck ! Byron Brummer ! Calle Dybedahl ! Carl Witty ! Cary D. Renzema ! Casey R. Tweten ! Castor Fu ! Chaim Frenkel ! Charles Bailey ! Charles F. Randall ! Charles Lane ! Chip Salzenberg ! Chris Faylor ! Chris Nandor ! Chris Wick ! Christian Kirsch ! Christopher Davis ! Chuck D. Phillips ! Chunhui Teng ! Clark Cooper ! Clinton Pierce ! Colin Kuskie ! Conrad Augustin ! Conrad E. Kimball ! Craig A. Berry ! Dale Amon ! Damian Conway ! Damon Atkins ! Dan Boorstein ! Dan Carson ! Dan Schmidt ! Dan Sugalski ! Daniel Chetlin ! Daniel Grisinger ! Daniel Muińo ! Daniel S. Lewart ! Daniel Yacob ! Danny R. Faught ! Danny Sadinoff ! Darrell Kindred ! Darrell Schiebel ! Darren/Torin/Who Ever... ! Dave Bianchi ! Dave Hartnoll ! Dave Nelson ! Dave Schweisguth ! David Billinghurst ! David Campbell ! David Couture ! David Dyck ! David F. Haertig ! David Filo ! David Glasser ! David Hammen ! David J. Fiander ! David Kerry ! David Muir Sharnoff ! David R. Favor ! David Sparks ! David Sundstrom ! Davin Milun ! Dean Roehrich ! Dennis Marsa ! dive ! Dominic Dunlop ! Dominique Dumont ! Doug Campbell ! Doug MacEachern ! Douglas E. Wegscheid ! Douglas Lankshear ! Dov Grobgeld ! Drago Goricanec ! Ed Peschko ! Elaine -HFB- Ashton ! Eric Arnold ! Eric Bartley ! Eric E. Coe ! Eric Fifer ! Erich Rickheit ! Eryq ! Eugene Alterman ! Fabien Tassin ! Felix Gallo ! Florent Guillaume ! Frank Crawford ! Frank Ridderbusch ! Frank Tobin ! François Désarménien ! Fréderic Chauveau ! G. Del Merritt ! Gabe Schaffer ! Gary Clark ! Gary Ng <71564.1743@compuserve.com> ! Gerben Wierda ! Gerd Knops ! Giles Lean ! Gisle Aas ! Grace Lee ! Graham Barr ! Graham TerMarsch ! Greg Bacon ! Greg Chapman ! Greg Earle ! Greg Kuperberg ! Greg Seibert ! Greg Ward ! Gregory Martin Pfeil ! Gurusamy Sarathy ! Gustaf Neumann ! Guy Decoux ! H.Merijn Brand ! Hal Pomeranz ! Hallvard B Furuseth ! Hans Mulder ! Hans de Graaff ! Harold O Morris ! Harry Edmon ! Helmut Jarausch ! Henrik Tougaard ! Holger Bechtold ! Horst von Brand ! Hubert Feyrer ! Hugo van der Sanden ! Hunter Kelly ! Huw Rogers ! Ian Maloney ! Ian Phillipps ! Ignasi Roca ! Ilya Sandler ! Ilya Zakharevich ! Inaba Hiroto ! Irving Reid ! J. David Blackstone ! J. van Krieken ! JD Laub ! Jack Shirazi ! Jacqui Caren ! James FitzGibbon ! Jamshid Afshar ! Jan D. ! Jan Dubois ! Jan Pazdziora ! Jan-Pieter Cornet ! Jared Rhine ! Jarkko Hietaniemi ! Jason A. Smith ! Jason Shirk ! Jason Stewart ! Jason Varsoke ! Jay Rogers ! Jeff Bouis ! Jeff McDougal ! Jeff Okamoto ! Jeff Pinyan ! Jeff Urlwin ! Jeffrey Friedl ! Jeffrey S. Haemer ! Jens Hamisch ! Jens T. Berger Thielemann ! Jens Thomsen ! Jens-Uwe Mager ! Jeremy D. Zawodny ! Jerome Abela ! Jim Anderson ! Jim Avera ! Jim Balter ! Jim Meyering ! Jim Miner ! Jim Richardson ! Joachim Huober ! Jochen Wiedmann ! Joe Buehler ! Joe Smith ! Joerg Porath ! Joergen Haegg ! Johan Holtman ! Johan Vromans ! Johann Klasek ! John Bley ! John Borwick ! John Cerney ! John D Groenveld ! John Hughes ! John L. Allen ! John Macdonald ! John Nolan ! John Peacock ! John Rowe ! John Stoffel ! John Tobey ! Jon Orwant ! Jonathan Biggar ! Jonathan D Johnston ! Jonathan Fine ! Jonathan I. Kamens ! Jonathan Roy ! Joseph N. Hall ! Joseph S. Myers ! Joshua Pritikin ! Juan Gallego ! Julian Yip ! Ka-Ping Yee ! Karl Glazebrook ! Karl Heuer ! Karl Simon Berg ! Karsten Sperling ! Keith Neufeld ! Keith Thompson ! Ken Estes ! Ken Fox ! Ken MacLeod ! Ken Shan ! Kenneth Albanowski ! Kenneth Duda ! Keong Lim ! Kim Frutiger ! Kragen Sitaker ! Krishna Sethuraman ! Kurt D. Starsinic ! Kyriakos Georgiou ! Larry Parmelee ! Larry Schuler ! Larry Schwimmer ! Larry W. Virden ! Larry Wall ! Lars Hecking ! Laszlo Molnar ! Les Peters ! Lincoln D. Stein ! Lionel Cons ! Luca Fini ! Lupe Christoph ! Luther Huffman ! M. J. T. Guy ! Major Sébastien ! Makoto MATSUSHITA ! Malcolm Beattie ! Marc Lehmann ! Marc Paquette ! Marcel Grunauer ! Mark A Biggar ! Mark Bixby ! Mark Dickinson ! Mark Hanson ! Mark K Trettin ! Mark Kaehny ! Mark Kettenis ! Mark Knutsen ! Mark Kvale ! Mark Leighton Fisher ! Mark P. Lutz ! Mark R. Levinson ! Mark-Jason Dominus ! Martijn Koster ! Martin J. Bligh ! Martin Jost ! Martin Lichtin ! Martin Plechsmid ! Marty Lucich ! Martyn Pearce ! Masahiro KAJIURA ! Mathias Koerber ! Matt Kimball ! Matthew Green ! Matthew T Harden ! Matthias Ulrich Neeracher ! Matthias Urlichs ! Maurizio Loreti ! Michael Cook ! Michael De La Rue ! Michael Engel ! Michael G Schwern ! Michael H. Moran ! Michael Mahan ! Michael Stevens ! Michele Sardo ! Mik Firestone ! Mike Fletcher ! Mike Hopkirk ! Mike Rogers ! Mike Stok ! Mike W Ellwood ! Milton Hankins ! Milton L. Hankins ! Molnar Laszlo ! Murray Nesbitt ! Nathan Kurz ! Nathan Torkington ! Neale Ferguson ! Neil Bowers ! Nicholas Clark ! Nick Duffek ! Nick Gianniotis ! Nick Ing-Simmons ! Norbert Pueschel ! Norton T. Allen ! Olaf Flebbe ! Olaf Titz ! Ollivier Robert ! Owen Taylor ! Patrick Hayes ! Patrick O'Brien ! Paul A Sand ! Paul David Fardy ! Paul Green ! Paul Hoffman ! Paul Holser ! Paul Johnson ! Paul Marquess ! Paul Moore ! Paul Moore ! Paul Rogers ! Paul Saab ! Paul Schinder ! Pete Peterson ! Peter Chines ! Peter Gordon ! Peter Haworth ! Peter J. Farley III ! Peter Jaspers-Fayer ! Peter Prymmer ! Peter Scott ! Peter Wolfe ! Peter van Heusden ! Petter Reinholdtsen ! Phil Lobbes ! Philip Hazel ! Philip Newton ! Piers Cawley ! Piotr Klaban ! Prymmer/Kahn ! Quentin Fennessy ! Radu Greab ! Ralf S. Engelschall ! Randal L. Schwartz ! Randy J. Ray ! Raphael Manfredi ! Raymund Will ! Rex Dieter ! Rich Morin ! Richard A. Wells ! Richard Foley ! Richard L. England ! Richard L. Maus, Jr. ! Richard Soderberg ! Rick Delaney ! Rick Pluta ! Rickard Westman ! Rob Henderson ! Robert Partington ! Robert Sanders ! Robert Spier ! Robin Barker ! Robin Houston ! Rocco Caputo ! Roderick Schertler ! Rodger Anderson ! Ronald F. Guilmette ! Ronald J. Kimball ! Ruben Schattevoy ! Rujith S. de Silva ! Russ Allbery ! Russell Fulton ! Russell Mosemann ! Ryan Herbert ! SAKAI Kiyotaka ! Samuli Kärkkäinen ! Scott Gifford ! Scott Henry ! Sean Robinson ! Sean Sheedy ! Shigeya Suzuki ! Shishir Gundavaram ! Simon Cozens ! Simon Leinen ! Simon Parsons ! Slaven Rezic ! Spider Boardman ! Stephane Payrard ! Stephen McCamant ! Stephen O. Lidie ! Stephen P. Potter ! Stephen Zander ! Steve A Fink ! Steve Kelem ! Steve McDougall ! Steve Nielsen ! Steve Pearlmutter ! Steve Vinoski ! Steven Knight ! Steven N. Hirsch ! Steven Parkes ! Sven Verdoolaege ! SynaptiCAD, Inc. ! Taro KAWAGISHI ! Ted Ashton ! Ted Law ! Thad Floryan ! Thomas Bowditch ! Thomas Conté ! Thomas Dorner ! Thomas Kofler ! Thomas König ! Tim Ayers ! Tim Bunce ! Tim Conrow ! Tim Freeman ! Tim Jenness ! Tim Mooney ! Tim Witham ! Tkil ! Todd C. Miller ! Todd Miller ! Tom Christiansen ! Tom Horsley ! Tom Hughes ! Tom Phoenix ! Tom Spindler ! Tony Camas ! Tony Cook ! Tony Sanders ! Tor Lillqvist ! Trevor Blackwell ! Tuomas J. Lukka ! Tye McQueen ! Ulrich Kunitz ! Ulrich Pfeifer ! Vadim Konovalov ! Valeriy E. Ushakov ! Vishal Bhatia ! Vlad Harchev ! Vladimir Alexiev ! W. Phillip Moore ! Warren Hyde ! Warren Jones ! Wayne Berke ! Wayne Scott ! Wayne Thompson ! Wilfredo Sánchez ! William Mann ! William J. Middleton ! William R Ward ! William Setzer ! Winfried König ! Wolfgang Laun ! Yary Hluchan ! Yasushi Nakajima ! Yitzchak Scott-Thoennes ! Yutaka OIWA ! Yutao Feng ! Zachary Miller Index: Changes ####### perl-5.6.1-TRIAL1/ => perl-5.6.1-TRIAL1 *** perl-5.6.1-TRIAL1/Changes Wed Mar 22 21:39:54 2000 --- perl-5.6.1-TRIAL1/Changes Mon Dec 18 02:01:10 2000 *************** *** 89,94 **** --- 89,3594 ---- -------------- + Version v5.6.1 Trial release 1 + -------------- + + ____________________________________________________________________________ + [ 8182] By: gsar on 2000/12/18 09:53:47 + Log: delete spurious files + Branch: maint-5.6/perl + - lib/CGI/eg/make_links.pl lib/CGI/eg/wilogo.gif vos/config.def + - vos/config.h vos/config_h.SH_orig + ____________________________________________________________________________ + [ 8181] By: gsar on 2000/12/18 09:46:08 + Log: regen perltoc + Branch: maint-5.6/perl + ! pod/buildtoc.PL pod/perl.pod pod/perlapi.pod pod/perltoc.pod + ____________________________________________________________________________ + [ 8180] By: gsar on 2000/12/18 09:20:27 + Log: integrate changes#7924..7926,7946,7952 from mainline + Branch: maint-5.6/perl + !> lib/CPAN.pm lib/CPAN/FirstTime.pm lib/ExtUtils/MM_Unix.pm + !> lib/File/stat.pm t/lib/class-struct.t + ____________________________________________________________________________ + [ 8179] By: gsar on 2000/12/18 08:55:54 + Log: integrate changes#7889,7890,7900,7903,7904,7907,7910,7917, + 7918,7919,7988,8907 from mainline (various) + Branch: maint-5.6/perl + +> t/lib/class-struct.t + !> MANIFEST README.amiga ext/Sys/Syslog/Syslog.pm gv.c + !> lib/Class/Struct.pm pod/perlipc.pod pod/perltie.pod + !> t/lib/syslfs.t t/op/lfs.t utils/perlcc.PL + ____________________________________________________________________________ + [ 8178] By: gsar on 2000/12/18 08:16:30 + Log: avoid redefinition warnings on windows due to sys/socket.h getting + #included before win32.h + Branch: maint-5.6/perl + ! win32/include/sys/socket.h + ____________________________________________________________________________ + [ 8177] By: gsar on 2000/12/18 05:24:04 + Log: make regen_headers; fix POSIX.xs problems; remove outdated + code from sys/socket.h that makes build fail now + Branch: maint-5.6/perl + ! ext/POSIX/POSIX.xs global.sym objXSUB.h perlapi.c + ! pod/perlapi.pod + !> win32/include/sys/socket.h + ____________________________________________________________________________ + [ 8176] By: gsar on 2000/12/18 05:20:17 + Log: update Changes + Branch: maint-5.6/perl + ! Changes patchlevel.h + ____________________________________________________________________________ + [ 8175] By: gsar on 2000/12/18 04:57:48 + Log: integrate changes#7643,7646..7649,7651..7654,7658,7659, + 7661..7665,7667..7669,7671,7673,7676,7677,7681..7683, + 7689..7697,7699..7701,7703,7705,7714,7715,7718..7723, + 7725,7726,7729..7732,7737,7748,7749,7758,7759,7761,7773, + 7775,7776,7782,7785..7787,7804,7807,7808,7810,7811,7816, + 7823,7825,7838 + Branch: maint-5.6/perl + +> lib/File/Spec/Epoc.pm + !> (integrate 88 files) + ____________________________________________________________________________ + [ 8174] By: gsar on 2000/12/18 03:53:09 + Log: integrate changes#7602,7604..7611,7614,7616..7619,7621..7623, + 7625..7629,7631..7634,7637,7639,7642 from mainline + Branch: maint-5.6/perl + +> README.solaris + !> (integrate 26 files) + ____________________________________________________________________________ + [ 8173] By: gsar on 2000/12/18 03:37:02 + Log: integrate changes#7472,7474..7479,7481,7485,7489,7493,7494,7496, + 7497,7499..7503,7505..7507,7509..7513,7515..7523,7526..7534, + 7536,7540,7542,7544..7546,7549,7553,7556,7557,7559,7561..7563, + 7565,7568..7572,7576,7578..7589,9592..7594,7596..7601 from mainline + Branch: maint-5.6/perl + +> t/lib/tie-refhash.t t/lib/tie-substrhash.t + - MAINTAIN + !> (integrate 111 files) + ____________________________________________________________________________ + [ 8171] By: gsar on 2000/12/18 02:49:24 + Log: integrate changes#7447,7448,7450,7454,7456,7457,7460,7462, + 7465..7471 from mainline + + Remains of the old UTF-8 API, utf8_to_uv_chk(): didn't link + in platforms that strictly require all the symbols being present + at link time. + + Subject: [PATCH: perl@7446] restore missing d_stdio_cnt_lval to VMS + + Subject: [ID 20001025.011] [PATCH] t/io/open.t perl@7369[ 7350] breaks VMS perl + + Subject: [ID 20001026.006] C gives uninitialized warning + + Subject: [PATCH] todo + + Subject: [ID 20001027.002] Patch 7380 followup - Perl_modfl *must* be defined + + Use $sort, $uniq (and $tr) consistently as wondered + by Nicholas Clark. + + Too enthusiastic editing in #7460. + + The reëntrant version shouldn't be needed unless USE_PURE_BISON. + + Upgrade to CPAN 1.58_55. + Subject: CPAN.pm status + + Subject: [ID 20001027.005] Nit in perlos2.pod - space needs deleted on line 118 + + Make target reordering to avoid pointless re-makes. + Subject: Re: Total re-make of 'make okfile' after 7451 ? + + Subject: [ID 20001027.010] [PATCH] Add info on building CPAN modules to README.dos + + Subject: DOC PATCH 5.6.0 + + Add the repository doc by Malcolm, Sarathy, and by Simon, + name as suggested by Michael Bletzinger . + Branch: maint-5.6/perl + +> Porting/repository.pod + !> Configure MANIFEST Makefile.SH README.dos README.os2 + !> config_h.SH configure.com embed.h embed.pl handy.h lib/CPAN.pm + !> lib/CPAN/FirstTime.pm perl.h pod/perlfunc.pod pod/perltodo.pod + !> pp.c proto.h t/io/open.t t/op/assignwarn.t toke.c + ____________________________________________________________________________ + [ 8169] By: gsar on 2000/12/18 02:33:34 + Log: integrate changes#7416,7417,7420..7422,7424,7426..7429,7431..7433, + 7435..7441,7445 from mainline + + Make the UTF-8 decoding stricter and more verbose when + malformation happens. This involved adding an argument + to utf8_to_uv_chk(), which involved changing its prototype, + and prefer STRLEN over I32 for the UTF-8 length, which as + a domino effect necessitated changing the prototypes of + scan_bin(), scan_oct(), scan_hex(), and reg_uni(). + The stricter UTF-8 decoding checking uses Markus Kuhn's + UTF-8 Decode Stress Tester from + http://www.cl.cam.ac.uk/~mgk25/ucs/examples/UTF-8-test.txt + + Run vms/vms_yfix.pl, should have done that after changing + perly.c in #7382. + + Subject: [PATCH 5.7.0] static linking with uninstalled perl + + (Replaced by #7440.) + Subject: Re: [ID 20001022.001] Not OK: perl v5.7.0 +DEVEL7368 on i686-linux 2.2.16 + + Fix the bug ID 20001024.005, the bug introduced by #7416. + + Subject: Re: [ID 20001023.003] PATCH perlfaq5 [perl-current] + + Fix the bug reported in + From: andreas.koenig@anima.de (Andreas J. Koenig) + Also make is_utf8_char() stricter. + + Missed the header file changes from #7425. + + Check if stdio supports tweaking lval and cnt simultaneously. + Subject: PATCH (Re: PerlIO - Configure tweak for Linux/glibc?) + + Stratus VOS updates from Paul Green. + + Podify README.epoc and README.vos. + + Add targets to Makefile.SH, most importantly + 'regen_all' which also remembers to update vms/perly*. + + Subject: Minor update to find2perl, for portability + + Subject: patch 7416 breaks sv.c on AIX and HP-UX (patch included) + + Subject: [ID 20001024.007] [PATCH] "Dump local *FH" causes SEGV + + Rename UTF8LEN() to be UNISKIP(), too confusing to have + UTF8LEN() and UTF8SKIP(). + + Allow poking holes at the UTF-8 decoding strictness. + + Continue the internal UTF-8 API tweaking. + Rename utf8_to_uv_chk() back to utf8_to_uv() because it's + used much more than the simpler API, now called utf8_to_uv_simple(). + Still not quite happy with API, too much partial duplication + of functionality. + + A new version of making the syslog test more robust. + (Replaces #7421.) + Subject: Re: [ID 20001022.001] Not OK: perl v5.7.0 +DEVEL7368 on i686-linux 2.2.16 + + buildtoc target tweaks. + + Integrate with vmsperl #7430 by Charles Bailey: + + Cleanup from prior patch (Charles Lane?): + - improve handling of MFDs in Basename and Path + - default to no xsubpp line # munging when building debug images + Branch: maint-5.6/perl + +> vos/config.alpha.def vos/config.alpha.h vos/config.ga.def + +> vos/config.ga.h vos/configure_perl.cm vos/install_perl.cm + !> (integrate 67 files) + ____________________________________________________________________________ + [ 8168] By: gsar on 2000/12/18 02:05:49 + Log: integrate changes#7512,7733 from mainline (regex bugfixes) + + Subject: [ID 20001031.004] Uninitialized auto variable in regcomp.c + From: Martin Husemann + + Subject: [PATCH 5.7.0] restore match data on backtracing + From: Ilya Zakharevich + Branch: maint-5.6/perl + !> regcomp.c regexec.c t/op/re_tests + ____________________________________________________________________________ + [ 8167] By: gsar on 2000/12/18 01:55:22 + Log: integrate changes#7858,7986 from mainline + + C in pseudo-fork()ed process may diddle + parent's memory; fix it by keeping track of the actual pad + offset rather than a raw pointer (this change is probably also + relevant to non-ithreads case to avoid fallout from reallocs of + the pad array, but is currently only enabled for the ithreads + case in the interests of minimal disruption to existing "well + tested" code) + + fix open(FOO, ">&MYSOCK") failure under Windows 9x (problem is + due to the notorious GetFileType() bug in Windows 9x, which fstat() + tickles) + Branch: maint-5.6/perl + !> embed.h embed.pl global.sym objXSUB.h perlapi.c pp_ctl.c + !> proto.h scope.c scope.h sv.c t/op/fork.t win32/perlhost.h + !> win32/win32.c win32/win32.h win32/win32sck.c + ____________________________________________________________________________ + [ 8166] By: gsar on 2000/12/18 01:52:59 + Log: integrate changes#7626,7632,7717,7738,7814,7817,7902,7912,7915 + from mainline (xsubpp and ExtUtils::LibList fixups, various + other small items) + Branch: maint-5.6/perl + !> emacs/cperl-mode.el emacs/ptags lib/ExtUtils/Liblist.pm + !> lib/ExtUtils/MM_VMS.pm lib/ExtUtils/MakeMaker.pm + !> lib/ExtUtils/xsubpp lib/unicode/syllables.txt minimod.pl + !> pod/perlfunc.pod pod/perlxs.pod pod/perlxstut.pod t/op/split.t + !> win32/bin/search.pl + ____________________________________________________________________________ + [ 8165] By: gsar on 2000/12/18 01:28:45 + Log: integrate changes#7533,7563,7611,7623 from mainline (various + malloc.c embellishments) + Branch: maint-5.6/perl + !> malloc.c pod/perldiag.pod + ____________________________________________________________________________ + [ 8164] By: gsar on 2000/12/18 01:23:33 + Log: integrate changes#7419,7806,8129 from mainline (various h2xs + fixups) + Branch: maint-5.6/perl + !> utils/h2xs.PL + ____________________________________________________________________________ + [ 8163] By: gsar on 2000/12/18 01:17:50 + Log: integrate changes#7493,7599,7803 from mainline (various perlbug + fixups) + Branch: maint-5.6/perl + !> Makefile.SH utils/perlbug.PL + ____________________________________________________________________________ + [ 8162] By: gsar on 2000/12/18 00:25:43 + Log: always export Perl_deb() (it is required by re.xs whether + Perl is built with or without -DDEBUGGING) + Branch: maint-5.6/perl + ! makedef.pl + ____________________________________________________________________________ + [ 8161] By: gsar on 2000/12/18 00:23:38 + Log: integrate change#7414 from mainline + + Undo the basename() part of #7412 since the lib/basename + tests would need upgrading too. + + squelch two tests in tr.t that rely on tr/// paranoia change + that's not in 5.6.x + Branch: maint-5.6/perl + ! t/op/tr.t + !> lib/File/Basename.pm + ____________________________________________________________________________ + [ 8160] By: gsar on 2000/12/18 00:05:30 + Log: missing change in previous integrate + Branch: maint-5.6/perl + !> README.aix + ____________________________________________________________________________ + [ 8159] By: gsar on 2000/12/18 00:03:38 + Log: integrate changes#7205..7210,7212,7214..7219,7222,7223,7225,7226, + 7228,7230..7241,7243,7346,7347,7350..7354,7356,7358..7360,7362, + 7363,7365..7368,7370..7374,7376..7386,7391,7393..7399,7304..7408, + 7410..7413 from mainline + Branch: maint-5.6/perl + +> README.aix hints/nonstopux.sh lib/unicode/Is/DCmedial.pl + +> t/lib/tie-splice.t + - lib/unicode/Is/DCinital.pl + !> (integrate 112 files) + ____________________________________________________________________________ + [ 8156] By: gsar on 2000/12/17 22:49:13 + Log: integrate changes#7069..7077,7079,7081..7087,7090,7092,7093, + 7096..7104,7109..7117,7119..7124,7126,7128,7129,7133,7134, + 7136..7139,7141..7146,7148,7149,7151,7153..7155,7157,7158, + 7160,7161,7164,7165,7169..7178,7180..7191,7193..7197,7199, + 7201,7204 from mainline + Branch: maint-5.6/perl + !> (integrate 121 files) + ____________________________________________________________________________ + [ 8153] By: gsar on 2000/12/17 21:23:05 + Log: integrate changes#7017..7019,7021..7025,7027..7036,7038,7039, + 7041..7044,7046..7048,7050..7061,7063,7066..7067,7069..7074 + from mainline + + Document the SvIOK_.*UV(). + + Update Unicode todo list. + + Guard against bad string->int conversion for quads. + + Subject: small apidoc fix + + Subject: [PATCH] Tie::StdHandle did not know about 3-arg open + + Subject: [PATCH] Tied filehandle documentation + + Subject: [PATCH] Modernize Opcode.pm documentation + + Make Data::Dumper (non-XS) to work with changed semantics of ref(). + Subject: Re: Undocumented(?) change to "ref" semantics in 5.7.0 + [applied even though said semantics didn't change in 5.6.x] + + Subject: [PATCH@7014] \G in non-/g is well-defined now ... right? + + Subject: Re: [ID 20000905.001] Assertion failed: file "toke.c", line 202 + + Fix the URL, but the server is still missing in action. + Subject: [ID 20000905.002] perlfaq1.pod URL error + + Subject: [ID 20000903.001] \w in utf8-strings + + Fix the ccversion detection for 5.1 and beyond. + Subject: [ID 20000907.007] Not OK: perl v5.7.0 +devel-7030 on alpha-dec_osf 4.0f + + Subject: [PATCH 5.7.0] perl5db.pl [Was: Re: Debugger question] + + Subject: [ID 20000904.008] Tiny fix for perldiag + + Subject: Re: [ID 20000906.004] segfault with bad perl statement + + Subject: Re: [ID 20000907.007] Not OK: perl v5.7.0 +devel-7030 on alpha-dec_osf 4.0f + + Subject: [ID 20000908.002] perlipc documentation bug. + + Subject: [PATCH lib/Benchmark.pm] + + Re-allow vec() for characters > 255. + Subject: [PATCH] Re: [ID 20000907.005] Not OK: perl v5.7.0 +devel-7030 on alpha-dec_osf-perlio 4.0f (UNINSTALLED) + + Do away with memory models cruft. Sorry, PDP users. + + Continue #7041. + + Subject: [PATCH (or RFC): 5.7.0] make the ran_tests intermediate file 8.3 friendly + + Subject: [PATCH: 5.7.0] proper setting for isnan for DECC 5.3 + + Upgrade to CPAN 1.57_65, from Andreas König. + + Upgrade to podlators-1.03 (Pod::Man 1.07 and Pod::Text 2.05), + by Russ Allbery. + + Silence t/pod/*.t about alternate quote-mappings now implemented + by Pod::Text, from Brad Appleton. + + Modern Borland C now seems to have anon unions for info.wProcessorArchitecture + Subject: borland C++ win32.c tweak + + C<@a = @b = split(...)> optimization coredumps under ithreads + (missed a spot when fixing up op_pmreplroot hack for ithreads) + + Document the SvUTF8*(). + + Subject: [PATCH] Perl 5.6.0, 5.7.0 ... vms/test.com to eliminate spurious NL's in test output + + Subject: RE: [Patch 5.7.0] Removing -ldb from the core build + + Do in VMS as the #7054 does. + + Subject: [patch] perlfunc.pod -- POSIX::sigpause should be POSIX::pause + + Subject: [ID 20000911.008] Not OK: perl v5.7.0 +DEVEL7048 on os2-64int-ld 2.30 (UNINSTALLED) + + Subject: [patch: perl@7045] vms updates + + Test for the #7049. + Subject: Re: [PATCH] Re: [ID 20000910.001] Not OK: perl v5.7.0 +DEVEL7044 on i686-linux 2.2.16-raid (UNINSTALLED) + + Break up the myconfig lines a bit. + Subject: perlbug/perl -V output format + + Subject: [ID 20000911.011] misplaced typemap in perlxs.pod + + The #7054 truncated Configure badly. + + change#6327 didn't quite go all the way to enable USE_SOCKETS_AS_HANDLES + initialization in all the threads on Windows + + Allow for whitespace between "#" and "line" in cpp output. + Subject: [PATCH] Re: Problems compiling bleadperl on Unicos 9 + + Remove vestiges of tr//CU. + Subject: [ID 20000912.009] perlunicode.pod still mentions tr///CU + + The return value of setlocale must be copied away. + Subject: [ID 20000913.001] Heap corruption in Perl_init_i18nl10n + + Allow chop() and chomp() to be overridden. + Subject: [PATCH] Re: [ID 20000911.006] I can override glob but not chop? + + Hints optimization. + Subject: Minor nit + + Subject: [PATCH] de-wall t/README + + Subject: Re: Two advertising clauses need to be removed + Branch: maint-5.6/perl + !> (integrate 75 files) + ____________________________________________________________________________ + [ 8152] By: gsar on 2000/12/17 20:30:11 + Log: integrate changes#6945,6947,6949..6954,6956,6958,6959,6961, + 6964..6972,6977..6981..6984,6987,6988,6991,6994,6997, + 6999..7001,7003..7005,7007,7009,7011,7012 from mainline + + Don't attach -ld to the archname if pointless. + + Document UNTIE in a very minimalistic way. + + POSIX doesn't report long double values under -Duselongdouble + when the long doubles are "real" (bigger than doubles). + + More author updates. + + Try to deduce NV_MAX. Really should be Configure fodder. + + :: not allowed in pathnames, change to . + Subject: [PATCH perl@6938] cygwin port + + Forget about NV_MAX (#6951). Various floating point tweaks, + ideas from Eric Fifer, Yitzchak, Alan, and Spider. + + Move the Solaris 7 scan to use64bitall, make the + failure to find 64-bot sparc libc to mention the + possibility of being in an intel, from Lupe and Alan. + + Regen perltoc. + + AUTHORS tweaks, from Peter Prymmer. + + More address tweaking. + + Small tweaks all over. + + File::Temp patches from Andreas König, + + Subject: [PATCH perl@6962] 2 more vms.c fix-ups and status + + Subject: CPAN.pm beta 1.57_57 for the core + + Part of the solution. + Subject: Re: [ID 20000807.004] [PATCH] conditional breakpoints leak memory + + Subject: [PATCH@6961] Fix misleading example in perlretut.pod + + Subject: [PATCH lib/overload.pm] Sanaty checking of arguments to overload::constant + + Add the overload warnings to perldiag. + + Drop unused argument. + Subject: Re: [ID 20000831.034] overload::constant and number of arguments. + + Subject: Nit in Configure (bleadperl@6961) + + Update to PodParser 1.18, from Brad Appleton. + + Subject: [ID 20000901.017] [PATCH] Basic test failure in an untidy world + + Subject: [PATCH: 6948] add SCNfldbl to configure.com + + Document UNTIE. Also tweak implementation to suppress the 'inner references' + warning when UNTIE exists and instead pass the cound of extra references to + the UNTIE method. + + Rename the PRIElfbl, PRIX64, etc, to be PRIEUfldbl, PRIXU64, + so that case-ignoring systems like DCL can tell them from + PRIefldbl and PRIx64. Apply Merijn's ccversion patches. + + Subject: Re: [PATCH lib/overload.pm] Sanaty checking of arguments to overload::constant + + Feature ordering tweak. + + Regen perltoc. + + Subject: [PATCH] Fix vec() / utf8 (was Re: bitvec ops still broken with utf8 -- or not?) + + Subject: Re: [PATCH perl@6962] 2 more vms.c fix-ups and status + + Subject: http:// in L<> + + Detypo. + + change#6791 accidentally clobbered change#6710, put it back + + Only the first line, thank you very much. + + Subject: [PATCH: 6996] minimal removal of 8 bit chrs from perlebcdic.pod + plus rework the http: spots as suggested by Tom Christiansen, + plus regen perltoc. + + Undo part of change 6489 which looks like a bulk edit which + changed _all_ gv_efullname3() calls to gv_efullname4() calls. + The supressing of main:: on return from select() is undesirable. + + Apparently avoiding the swapping is too costly. + + Various Configure nits by Philip Newton, + plus the ebcdic one by me. + + Make certain cc is set before trying to run it. + + If overloaded %{} etc. return the object do not loop. + Thus sub deref { $_[0] } functions if object is wanted type. + + Update perlhist. + + More %{} and other deref special casing - do not pass to 'nomethod'. + Branch: maint-5.6/perl + !> (integrate 59 files) + ____________________________________________________________________________ + [ 8151] By: gsar on 2000/12/17 19:14:38 + Log: integrate changes#6903,6905..6907,6909,6911..6913,6915,6917,6918, + 6920..6926,6928..6930,6934..6937,6939,6940,6942..6944 from mainline + + Subject: [PATCH perl@6889] Chuck Lane's OpenVMS piping improvements + + Make the epsilon to be relative, not absolute. + + Put back the flags dump as reasoned in + Subject: Re: [PATCH] Glob dumping + + Introduce ccname to keep track of what compiler kind of we have. + + Subject: Re: [ID 20000829.020] perl -e 'package; print __PACKAGE__' core dumps + + Put back the slice accidentally removed by #6907. + + Reset archname and archname64 always, forcing them be + recomputed at each Configure run, make Configure and + the hints files agree on the naming of largefiles variables. + + Don't say "Perl 5.0 source kit". + + Subject: [PATCH] fix misc cast warnings + + Subject: typos in pods + + NVs not necessarily doubles, as pointed out by Yitzchak. + + Subject: [PATCH 6889] add a few ldbl formats to configure.com + + Subject: [ID 20000830.036] [DOC] chom?p %hash not documented + + Better options for rsync. + + Subject: [PATCH perl@6889] fix Storable on VMS by fixing my_fwrite() + + Subject: Re: not OK, 6919 on Alpha VMS V 7.1 w/ DECC 6.0-001 + + Subject: [PATCH] Re: UNTIE method + + A better fix for the Socket building problem from Craig Berry. + + Retract the dummy test, skip the security tests (instead of failing), + explain what the warnings mean. + + Heap decorruption. + Subject: [PATCH] Fix for miniperl coredump on Solaris with -Duselongdouble + + Update to Unicode 3.0.1. + + Missed one Unicode file. + + Subject: Re: typos in pods + + The #6929 was too skimpy. + + sscanf() may be the only way to read long doubles from strings. + + Reveal Borland's isnan. + Subject: build with BC++ tweak + + Issue useful diagnostic on unknown pod commands. + Subject: [PATCH lib/Pod/Man.pm] Re: [ID 20000830.048] + + Subject: [PATCH] Re: [ID 20000830.048] Not OK: perl v5.7.0 +DEVEL6938 on i686-linux 2.2.13 + + Clarify the third case of ftmp-security warnings. + + Make -Dusemorebits find long doubles in Solaris. + + Wrap the test in eval. + Branch: maint-5.6/perl + +> lib/unicode/BidiMirr.txt lib/unicode/CaseFold.txt + +> lib/unicode/PropList.txt lib/unicode/README.perl + +> lib/unicode/UCD301.html lib/unicode/UCDFF301.html + +> lib/unicode/Unicode.301 vms/vmspipe.com + - lib/unicode/Props.txt lib/unicode/UCD300.html + - lib/unicode/Unicode.300 lib/unicode/Unicode3.html + !> (integrate 305 files) + ____________________________________________________________________________ + [ 8146] By: gsar on 2000/12/17 18:09:08 + Log: update Changes + Branch: maint-5.6/perl + ! Changes + ____________________________________________________________________________ + [ 7899] By: gsar on 2000/11/28 06:32:55 + Log: reintegrate files missed by change#7895 + Branch: maint-5.6/perl + +> ext/ByteLoader/bytecode.h utils/Makefile + - utils/perlbc.PL + ____________________________________________________________________________ + [ 7897] By: gsar on 2000/11/27 18:22:47 + Log: can't integrate these two files, for some reason + Branch: maint-5.6/perl + - ext/ByteLoader/bytecode.h utils/Makefile + ____________________________________________________________________________ + [ 7895] By: gsar on 2000/11/27 18:11:21 + Log: integrate changes#6763..6766,6770,6773,6775..6776,6778,6780, + 6782..6791,6793..6814,6816,6818..6822,6824..6830,6838..6849, + 6757..6890,6892..6901 from mainline + + Bytecompiler patches from Benjamin Stuhl. + + More bytecompiler. + + Subject: [PATCH blead] B:: missing dependency + + Subject: [PATCH: 6757] configure.com updates and syslog build + + Long double Gconvert fixes from Yitzchak Scott-Thoennes + and Spider Boardman. + + Subject: [PATCH blead] nextchar() abuse misses an optimisation + + Long double fixes from Spider Boardman. + + Make the selection of NVff et al stricter. + + cSVOPo_*v things index into the current PL_curpad + under ithreads, which is different from the curpad + used by the XSUB. (In other words, the code as-is + before this patch wouldn't work under ithreads.) + + Be portable. + + VMS MMS (make) wants null action. + + Mac and other portability updates from Chris Nandor. + + Storable support, v-version fixes. + Subject: CPAN.pm beta for testing available + + Portability fix from Hugo van der Sanden. + + Bad makefile. + + Subject: [ID 20000823.004] [PATCH 5.6.0+] Pod::Html is too self-contained + + Subject: [PATCH] (Mac OS X): Don't #define environ unless PERL_CORE + + Subject: [PATCH] Re: [ID 20000821.008] Negitive numbers with vec dumps core + + Replace #6705 with a minimal doc patch. + Subject: [PATCH 5.6.0] replace change #6705 + + Drop the separate perlbc, perlcc -b should be enough. + + installperl couldn't tell whether it had run tests or not. + Subject: [PATCH] Re: installperl and t/TEST + + Add silencer flags to installperl. + Subject: [PATCH] Making installperl silent. + + Make "make install" by default silent. A new "install-verbose" + target is verbose. + + More liberal parsing of version numbers. + Subject: Re: CPAN.pm beta for testing available + + Create directories in silence. + Subject: [PATCH] Another silencer for MakeMaker + + DOS patches and portability/porting notes, from Tim Jenness. + + Make installman to recognize the silence flag -S. + + Actually do something with the silencer option. + + Continue silencing. + + Show the doc file, not the temp file. + + Regen perltoc. + + Subject: [PATCH] More silencing of installman. + + Better wording for the vec lvalue diagnostic. + Subject: Re: [PATCH] Re: [ID 20000821.008] Negitive numbers with vec dumps core + + Subject: [PATCH: 6805] several more tweaks to configure.com + + Subject: [PATCH perl@6805, 5.6.0, 5.005_03] prevent rare Perl hang on VMS + + Missing parts of + Subject: [PATCH: 6789] some endl fixes for VMS wackiness + + Subject: [ID 20000824.029] MakeMaker manifypods fails on DJGPP systems + (applied slightly modified) + + installperl --verbose and --silent. + Subject: Re: [PATCH] More silencing of installman. + + Add install-silent target. + + AIX 4.3.3 has SOCKS in libc with a differently named init routine, + the problem reported in + Subject: [ID 20000825.007] Building stable 5.6.0 on AIX 4.3.3 using SOCKS + + Tweak the sfio/useperlio logic, hopefully as wished in + Subject: [ID 20000825.004] Not OK: perl v5.7.0 +SUIDMAIL +DEVEL6804 on i586-linux 2.2.12 (UNINSTALLED) + + One forgotten file from #6816. + + Subject: [PATCH @6820] installman under -w and strict (was Re: [PATCH] More silencing of installman.) + + Remove duplicately applied patch shards. + Subject: [ID 20000825.012] [PATCH@6822] t/lib/cgi-html.t produces ugly cruft during 'make test' + + Support preserving extremely big/small angles. + + Subject: Re: [ID 20000825.019] Not OK: perl v5.7.0 +SUIDMAIL +DEVEL6820 on alpha-dec_osf 5.1 (UNINSTALLED) + + Subject: [PATCH] installation not quite silent yet. + + Update the test count. + + Use UVxf, PTR2UV, NVff. + + Document PTR2XX and INT2PTR. + + no-install target a la make -n. + Subject: [PATCH] make no-install (was Re: [PATCH] installation not quite silent yet.) + + grep -e isn't portable. + Subject: [ID 20000825.027] let me (perlbug@perl.com) know how I blew it + + Can't get the test to reliably work thanks to the + inaccurateness of floating point. "Resolves" bug ids + 20000826.003, 20000826.009, 20000826.010, + + Subject: installman buglet + + DJGPP update from Laszlo Molnar. + + Subject: MM_Unix.pm LD_RUN_PATH niggles on Solaris + + Passing -R in ldflags makes now it to appear in the default + for lddlflags, just like with -L. + Subject: Re: MM_Unix.pm LD_RUN_PATH niggles on Solaris + + Test nit. + + Use the actual thread type, not the pointer-to-struct. + + Provice virtual $Config{ccflags_nolargefiles} etc. + + display_format used as a class method without arguments was broken, + reported in + Subject: Math::Complex->display_format() sets style to 'Math::Complex' + + Subject: [ID 20000828.006] dir name "0" not safe with Cwd.pm + + Subject: [ID 20000828.009] Not OK: perl v5.7.0 +SUIDMAIL +DEVEL6855 on i586-linux 2.2.12 (UNINSTALLED) + + Subject: [PATCH@6855] _Minor_ change to overload.pm pod + + opmini.o may be left around if a build is interrupted. + + Typo in #6858. + + Fix for ID 20000828.001, long doubles were not formatted + correctly (showed up in $], which stopped installing perl). + + An attempt to fix the problem reported in + Subject: Building perl@6856 using gcc/AIX 4.3.3 + I can't test this properly since the gcc installation I have + access to seems to be botched (gcc is calling the AIX cpp, + a losing proposition...) + + Add -ld to archname on long tr...double platforms. + + Subject: hv.h Doc Patch + + Potential cruft. + + Subject: [PATCH bleedperl@6856] warnings fixes + + -S is the silent flag, -s is the strip flag. + Subject: [PATCH] Re: [PATCH] make no-install + + Take out the SUIDMAIL thing, that will not be + a problem in 5.7.*. + + Subject: [PATCH bleedperl@6866] spellings + + Subject: [PATCH] Re: files not cleaned even by veryclean + + Use minimal @INC in tests, most of the time just '../lib', + so that we simply can't pick up stuff from other Perls than + the one we are testing. Pointed out by + Subject: Re: [PATCH: 6757] make new Storable tests forgiving of places where not built + + Update to Getopt::Long 2.24, from Johan Vromans. + + Fix for thinko in #6848. + Subject: Compiler error in ext/Thread/Thread.c (bleadperl@6866) + + Patches all over for people and the files they (hopefully) care about. + + Subject: Net::protoent does not export 'getproto' + + Missed a change in #6869. + + Subject: [PATCH] Warnings in B::Deparse + + Subject: [PATCH] Glob dumping + + Disable one of the tests for now. + + Disabling the one test is a bit tricky. + + Don't forget to tidy up. + + The #6881 removed one dump line. + + Subject: Re: [ID 20000525.003] perldoc fails when Makefile.PL is in cwd + + Under usethreads the dumped variable is IN_PAD. + Subject: Re: [PATCH] Glob dumping + + Subject: [ID 20000829.026] [PATCH 6868] File::Temp + + Subject: [ID 20000829.022] [PATCH 6868] Minor nit in installhtml + + Subject: [ID 20000829.023] [PATCH 6868] perlbug@perl.com --> perlbug@perl.org + + Regen Configure for #6894. + + Subject: [PATCH: 6889] updates to perlebcdic.pod + + Undo namespace pollution of #6878. + Subject: Re: Net::protoent does not export 'getproto' + + Admit that we are leaking scalars. + + Subject: [PATCH 5.6.0] [ID 20000608.006] panic: magic_killbackrefs with blessed global weakrefs + Branch: maint-5.6/perl + !> (integrate 271 files) + ____________________________________________________________________________ + [ 7894] By: gsar on 2000/11/27 16:00:34 + Log: a couple of nits + Branch: maint-5.6/perl + ! MANIFEST pp_sys.c + ____________________________________________________________________________ + [ 7893] By: gsar on 2000/11/27 15:10:56 + Log: integrate changes#6666..6678,6680..6682,6684..6691,6699..6733, + 6740..6745,6747..6757,6760 + + Subject: Re: [ID 20000816.006] [PATCH @6655] Shell.pm, bug fix, strict and OO Interface + + Subject: [PATCH(2) @6655] Re: perldebut.pod - spelling + + Doc nits spotted by Richard Soderberg. + + move WNOHANG definition to where other such things are + + Make $Config{byteorder} more magical so that it is + dynamically computed: nice for 'fat binaries'. + Subject: [PATCH]: default byteorder + + Subject: [PATCH] Cwd.pm now uses strict + + Subject: Re: [PATCH]Re: Questions about Math::BigFloat + + Get -DLEAKTEST to compile (not necessarily to work, mind) + Subject: [ID 20000724.006] -DLEAKTEST problem + + perldebtut 1.10 from Richard Foley, plus Celsius and Fahrenheit. + + Add perlebcdic from Peter Prymmer, regen toc. + + Don't propose using modules built for 5.005 if no binary + compatibility with 5.005 is attempted. + + Do not use prototyping here. + Subject: [ID 20000817.016] [PATCH] Peek.xs + + Document what the backtick returns if the command fails. + + Add byteorder to the myconfig output. + + Introduce NVef, NVff, and NVgf, use the middle one. + (helps for lib/peek + Linux + long doubles) Reported in + Subject: [ID 20000814.005] Not OK: perl v5.6.0 on i686-linux-64int 2.2.13 + Use NVs in POSIX math, not doubles. + Subject: [ID 20000817.014] POSIX & modfl + + Subject: [PATCH 5.6.0+] newSVrv() memory leak + + The byteorder code in #6671 was wrong. + + Fix the lib/complex failure of + Subject: [ID 20000814.005] Not OK: perl v5.6.0 on i686-linux-64int 2.2.13 + Linux long double accuracy issue: something that + when printed with %g looks like "2" but int() of it is 1. + + Propagate new Configure vars. + + Unbuffer the output. + + Subject: [PATCH] perltrap.pod spring cleaning + + Subject: [PATCH] perlfunc.pod -- clarifying sprintf array argument issues + Subject: [ID 20000817.018] behaviour change 5.5.3 -> 5.6.0 re "Modification of a read-only value" + + Tiny Getopt::Long patch from Johan Vromans. + + Document code point which makes if (defined %stash::) to work + (noted by Spider Boardman). + + Subject: [PATCH perl@6698] cygwin port + + Document the NDBM_File and ODBM_File as SDBM_File + was documented in #6417. + + The new tests were missing from #6415. + + Add [[:blank:]] as suggested in + Subject: [ID 20000716.024] [=cc=] / [:blank:] + (the [=cc=] has already been taken care of by #6439 + so the whole bug report can be closed) + and make [[:space:]] to be equivalent to isspace(3) + (as opposed to \s, which is isSPACE()). The difference + is that now [[:space:]] matches the mythical vertical tab, + while \s doesn't. + + Don't eat leading os from index entries. + Subject: Re: [ID 20000810.006] Pod::Man Ate My 'O'! + + Subject: [PATCH 5.6.0+] fix for Win32::DomainName + + Typo in pp_complement(). + Subject: [PATCH perl-current] Deparse + + Add warnif(), check warnings further up the stack, + all the warnings functions now can take an optional object reference. + Subject: [PATCH bleedperl@6691] warnings pragma update + + Fix a core dump in lib/selfloader under -DDEBUGGING. + Subject: PATCH @6698 for [ID 20000817.007] Not OK: perl v5.7.0 +SUIDMAIL +DEVEL6676 on alpha-dec_osf 4.0f (UNINSTALLED) + + Subject: [PATCH 5.6.0+] fix for Win32::GetFullPathName and Win32::GetShortPathName + + Subject: [PATCH: 6698] tidy up the temp files left by peek tests on VMS + + Subject: [PATCH: 6698] was Re: [PATCH: 6640] VMS Makefile.SH update (fwd) + Put back the long double avoidance code to POSIX.xs + because VMS seems to need it still. + + Introduce a 'veryclean' target that is like 'distclean' + but also removes *~ and *.orig. + + Subject: [ID 20000817.023] endianness description in perlfunc.pod + + Subject: [PATCH perl@6698] File::Temp fix-ups for OpenVMS + + Let's try #6717 again. + + UTF8 concat fixes. + Subject: [PATCH @6713] Re: [ID 20000815.006] latest patched perl core dumps + + pp_open() could pass an uninitialized filename down to do_open9(). + + Subject: Re: [ID 20000819.002] Not OK: perl v5.7.0 +SUIDMAIL +DEVEL6707 on i686-linux 2.2.5-16 (UNINSTALLED) + + Update to CGI 2.72, from Lincoln Stein. + + Subject: [PATCH] Silence MakeMaker (Was: installman) + + Use temporary directory instead of current directory. + Subject: Re: [ID 20000816.011] Test failure in lib/ftmp-security.t + + Document odd vs even subreleases and -Dusedevel. + + The veryclean target needs to clobber. + + Use File::Spec->tmpdir(). + + Document the number of exponent digits. + + Mention perlebcdic and perlposix-bc. + + s/this one/the 5.6.0 release/ + + The #6724 is here. + + The correct cleaning order is an art. + + small tweaks for change#6705: avoid C++ style comments in C code; + use Perl's malloc API rather than the low level system one + + Array context keeps slithering in. + + Subject: Re: 5.7.0 getting really close, new snapshot: perldelta, Storable + + Subject: [PATCH] os2.c fix for use64bitint + + Update to Pod::LaTeX 0.53. + Subject: [PATCH] lib/Pod/LaTeX.pm updates + + Document the endianness of Alpha more precisely. + + Subject: RE: [PATCH perl@6736] t/pragma/warn/9enabled assumes stdout buffered + + Rename the macro argument because some preprocessors + can't tell the difference and expand arguments also inside + double quoted strings. + + free TLS slot properly on Windows + + use Cwd 'chdir' didn't set $ENV{PWD} correctly on Windows + + Unicos/mk requires elaborate paranoia. + + Tweak the floating point output routine preferences. + + Also under djgpp the timestamps are funky. + + Apply some PodParser 1.18 patches; the Pod/Find.pm + patches cannot be applied since #6712 conflicts. + + Use PodParser 1.18 new test. + + A pod nit. + Subject: [PATCH] pod/perlre.pod (was Re: [ID 20000821.007] $&, $1, etc. disappear when sub returns) + + Be verydeepclean. + Branch: maint-5.6/perl + +> pod/perlebcdic.pod + !> (integrate 106 files) + ____________________________________________________________________________ + [ 7887] By: gsar on 2000/11/27 14:13:05 + Log: integrate changes#6613..6616,6620..6665 from mainline + + VMS configure.com update continues. + + Subject: Test fails / warnings with perl-current #6612 + + Subject: [PATCH] @+, @- readonly (was Re: @ interpolating in "") + + Subject: Re: [ID 20000807.003] [PATCH] Debugger treatment of condition "0" + + For now remove the mail code. + + Subject: Re: [PATCH] @+, @- readonly + + Subject: warning: storage class after type is obsolescent + + Subject: sfio2000 + + Subject: Re: File::Temp problems on VMS in bleedperl + + README.os2 update. + Subject: Re: [PATCH perl-current] Make op/sprintf.t more comprehensive, + + Make the user to give up his firstborn, err, to knowingly + verify installing an unstable developer release. Also bump + the release to 5.7.0, but leave a patch tag in the local + patches saying that this is not yet the real thing. + + Update (kinda) to Test 1.14, from Joshua Pritikin. + + make ok etc also for win32. + + Subject: [ID 20000815.005] [PATCH] perldoc not looking in the right place for script pod + + Don't blow limited stacks, a lower number is enough to + tickle the lookbehind limit. + + Use -Dusedevel; regen Configure and the respective Porting stuff. + + Subject: [PATCH] debugger exit code should reflect user exit code + + Subject: [PATCH perl@6620] cygwin port + + Missed a file from #6638. + + Subject: [PATCH] for t/lib/peek.t (was Re: [ID 20000814.005] Not OK: perl v5.6.0 on i686-linux-64int 2.2.13) + + magic callbacks all need to have same type signature + + Subject: [ID 20000815.014] [PATCH] INSTALL doesn't mention 64 bit support. + + Fix a dependency problem. + Subject: [PATCH: 6640] VMS Makefile.SH update + + The numeric locale was reset to "C" by s?printf and never restored. + Subject: [ID 20000809.003] setlocale(LC_NUMERIC...) produces different results in 5.005 and 5.6 + No test since adding the failing example to locale.t + does not fail -- probably because the locale settings are so + thoroughly tweaked by that time. Running the example standalone + does fail, though. UPDATE: test case added at change #7540. + + Subject: [ID 20000324.040] minor fix to perlhpux.pod + + Update to CPAN 1.57. + + Subject: [PATCH] Cwd::_backtick_pwd does not check return value + + Change the perlbug address to perl.org since it's more forgiving. + + Change the regx compilation error markers to use = instead of < + since pod makes using the latter quite messy. Reported in + ID 20000814.006 by Abigail and in + Subject: Unknown escape E<> ? + + Update to perldebtut 1.9, from Richard Foley. + + check that the number pseudo children doesn't exceed + MAXIMUM_WAIT_OBJECTS, which is currently 64 (avoids overflowing + the WaitForMultipleObjects() limit that would cause wait() + to crash) + wait() and waitpid() could potentially be rewritten to use + more than one thread to do the waiting to eliminate this + limitation + + change#6328 could make close(SOCKET) return false on windows + when it shouldn't + + pod nit seen in passing + + on windows, the return values from wait() and waitpid() don't + match those of pseudo-pids + + waitpid() now handles externally spawned pids correctly; + fixes for backtick/wait/waitpid failures on Windows 9x + these changes make the pid returned by process functions on + Windows 9x always positive by clearing the high bit (which + is always set on Win9x); pseudo-process PIDs are likewise + always negative now on Win9x (just as on NT/2000) + + trailing new %ENV entries weren't being pushed into the real + environment of subprocesses on Windows + + Tweak the regex compilation errors once more. + + avoid warnings from dense compiler + + add "ok" targets from change#6632 in makefile.mk + Branch: maint-5.6/perl + - lib/Pod/PlainText.pm vms/configure.com + !> (integrate 66 files) + ____________________________________________________________________________ + [ 7885] By: gsar on 2000/11/27 13:53:18 + Log: integrate changes#6540..6541,6546..6549,6552..6554,6557..6606, + 6610..6611 from mainline + + Make regular expression parse error messages easier to understand. + Subject: Re: enhanced(?) regex error messages + + Tiny tidying on report_evil_fh(). + + Subject: Re: enhanced(?) regex error messages + plus Capitalize the error messages, plus perldiag them. + + Subject: Patch against 5.6.0 to allow "-d:Module=arg,arg,arg" + + Document here-doc better. + + Subject: [ID 20000807.003] [PATCH] Debugger treatment of condition "0" + + Subject: [PATCH] Re: [ID 20000807.008] Double reads considered evil? (deja vu) + Do away with array context, from Daniel Chetlin + (either perlbug or p5p ate the original), plus regen + perlapi and perltoc. + + Regen global.sym. + + Double check that we have a dirhandle. + + Subject: Re: enhanced(?) regex error messages + (plus two small patches sent privately) + (this still seems to leave few test failures) + + warn is a macro, avoid using at a variable to avoid warnings + in some configurations; readdir.t is too conservative in + estimating number of *.t's + + Get back into sync with Jeffrey on the enhanced regex warnings. + + Subject: [PATCH 5.6.0] cygwin port + + Zero entries were skipped, fix from Adrian Goalby + + + Subject: Remove dead entry in perldiag + + Amend the description of Perl6. + Subject: [PATCH Perl-5.6.0] perlfaq1.pod + + detypo + + It's the 2ndO'ROSSC. + + Revert the sv.c part of #6559, a better fix is needed. + + Iterating perl6 description. + + Update to Term::ANSIColor 1.03, from Russ Allbery. + + Update to Getopt::Long 2.23_05, from Johan Vromans. + + Small AUTHORS and MAINTAIN updates. Could do with big updates. + + Update to Pod::Parser 1.17, from Brad Appleton. + + Update to CPAN 1.56, from Andreas König. + + Update to CGI 2.70, from Lincoln Stein. + + Put back the std @INC thing. + + Fixes to looking-like-number to keep behaviour as it was in 5.005_03. + Subject: Re: [ID 20000810.002] $a["1foo"] same as $a[0] + + Document the IO::Select timeout. + + sleep(1) does not necessarily return 1. + Subject: [PATCH bleadperl] op/lex_assign.t + + Subject: debugger "d" command doesnt check line number + + B::Deparse didn't do sub attributes. + Subject: B::Deparse was Re: [ID 20000808.005] refs to returned lvalues are lvalues?? + + Preprocessing and postprocessing for File::Find. + Subject: Patch to Find::File.pm to allow alphabetical results + + Subject: Re: [ID 20000809.005] trouble with long string and /m modifier - uninitialized value + + Subject: Re: [ID 20000809.006] Debugger lost the ability to see $1 et al + + Subject: Re: [ID 20000730.003] utf8::length() bad + + Subject: Getting perlio and threads to compile + (the Solaris version changes in Configure skipped) + + Tests for #6589. + Subject: Re: B::Deparse was Re: [ID 20000808.005] refs to returned lvalues are lvalues?? + + Add Perl debugging tutorial, regen toc. + Subject: perldebtut.pod + + Add a few missing files, update MANIFEST. + + Rewrite of vms/subconfigure.com as configure.com, + from Peter Prymmer and the vmsperl crew. + + Should have deleted this in #6603. + + Fix the test for 5005threads. + + Fix-n-skip the tests under 5005threads. + + Subject: [PATCH] t/op/regmesg.t fails if REG_INFTY set + + Upgrade to CGI 2.71, from Lincoln Stein. + Branch: maint-5.6/perl + +> lib/CGI/eg/make_links.pl lib/CGI/eg/wilogo.gif + +> lib/Pod/PlainText.pm pod/perldebtut.pod t/lib/gol-oo.t + +> t/op/regmesg.t t/pod/find.t vms/configure.com + - vms/subconfigure.com + ! lib/lib.pm + !> (integrate 115 files) + ____________________________________________________________________________ + [ 7883] By: gsar on 2000/11/27 11:50:46 + Log: integrate changes#6469..6484,6486..6501,6504..6505,6507..6509, + 6511..6513,6515..6523,6525..6536 + + The swallow_bom() saga continues. The #23 of require.t + (UTF16-LE) still fails (silently, no output) but the #22 + (UTF16-BE) seems to be working now. The root of the + failure may be in sv_gets(): is it UTF-16LE-aware, + especially when it comes to line endings? + + Document the problem with -P in HP-UX and its workaround. + + Subject: [PATCH] allow non-variable as lhs of non-updating tr/// + (aka ID 20000730.002) + + Subject: fix and question re: waitpid() under win32 + + Make the safety catch for buggy gccs work with triple version + numbers like 2.95.2. Reported in + Subject: [ID 20000731.005] Perl 5.6.0 "Configure" fails to recognize gcc 2.95.2 + + In Digital UNIX warn if gcc explicitly chosen because even + 2.95.2 is known to cause problems. + + Make chr() for values >127 to create utf8 when under utf8. + + various syntax errors and such (not fixed: comp/require.t#22 coredump + on Windows) + + Stash away the largefiles flags and libswanted. + + BOM patching from Simon Cozens. + + If gccosandvers is equal to osname, clear gccosandvers. + + Make p4desc to skip non-mainperl branches by default. + + Subject: [Proposed PATCH] Let Perl define QUAD_MIN and _MAX itself + + The test from this + Subject: Re: [ID 20000411.002] qw() gives different results in 5.6 to previous versions + + In new BSDs changes to argv[] do not show up in ps(1) output, + instead one must use setproctitle(). This was already addressed + by change #6457, but the below has a new variant for FreeBSD 4.0 + or later, and the matter is also documented more. + + FreeBSD 3.* updates from + Subject: [ID 20000801.007] setting $0 on FreeBSD 4.x does not get reflected in /bin/ps + + regen_headers, regen perltoc. + + Document in one place the memory abstractions used in Perl core. + + memcpy has n o in it, as pinted ut by Sarathy. + + Remove the extraneous "main::" prefix from all the + "opened only for", "on closed", and "never opened" warnings. + + The name of a filehandle does not have . + + The tr utf8 patching continues. + + The new setproctitle() feature is available only in + bleeding edge FreeBSD. From Paul Saab. + + Subject: [PATCH bleadperl] [ID 20000731.010] regex error + + Dump UVs as UVs in Data::Dumper. + + detypo #6494 + + Document the IVdf UVuf UVof UVxf. + + require.t needs binmode() to work on windows + + Generate OP_IS_SOCKET() and OP_IS_FILETEST() macros + that are hopefully soon put into use. + + Allow "no Module;" even if there is no 'unimport'. + + Better skip message for the test; one of the two problems in + Subject: [ID 20000224.003] Not OK: perl v5.5.660 on i86pc-solaris 2.7 + + The subtest 4 may fail also on VOBS, as pointed out + by Nick Ing-Simmons in November 1999, bug id 19991124.003 + (but the failure in that bug report isn't the subtest 4). + + Be more informative on what is skipped and why, + also repeat the list at the end. + + Add a URL for FSF. + + Subject: [PATCH] sv.h documentation - SvLEN + + Subject: [PATCH bleadperl] [ID 20000803.001] further regexp counting problems + + Subject: [PATCH perl-current] Comings and goings in op/sprintf.t + + Subject: [PATCH] bad cppsymbols on os2 + Configure question + + Subject: [ID 20000802.002] [PATCH] memory pseudo-leak in sv_dump + + Subject: [ID 20000802.004] Tests op/grent.t and op/pwent.t fail unnecessarily + mention the idea of @( and @) + + This is 6512. Really. + + Subject: [ID 19990721.004] Documentation bug in perlfunc + + Subject: Minor tweak to perlvar.pod + + In the warnings call filehandles consistently so; + add "unopened" warning for stat(). + + After the #6519 a warning about stat() is just that, + not about a filetest, which now have their own warning. + + Subject: [ID 20000804.002] configure.gnu and arguments with whitespace characters + + Subject: Re: Array vs. List context + + Subject: New perlcc, take 2 + + Weed buglets pointed out by + Subject: Re: [ID 20000803.005] miniperl aborts during Perl make + + gcc versions might have (parentheses) in them. + + Subject: [ID 20000724.004] Perl interpreter segfault when using built-in flock + + Essential prototype changes were missing from #6527. + Also make report_evil_fh() more bomb-proof. + + Zap lib/Sys directory when cleaning up. + + Change the Policy policy: now -Dprefix= with an existing + Policy.sh and prefix == siteprefix == vendorprefix, then all + of them follow along the new prefix. + Subject: Re: [ID 20000508.002] -Dprefix completely broken [PATCH] + + Continue fixing the io warnings. This also + sort of fixes bug ID 20000802.003: the core dump + is no more. Whether the current behaviour is correct + (giving a warning: "Not a format reference"), is another matter. + + Have symbols for the IoTYPEs. + + Subject: [PATCH] perlfunc.pod use documentation (5.6.0) + + Document a bit that UDP is not what you might think. + Subject: Re: IO::Socket::INET bug sending large UDP packets/fragmentation + tr memory corruption fix from Simon Cozens. + + Plug the security hole described in the Aug 05 2000 bugtraq message + "sperl 5.00503 (and newer ;) exploit" by Michal Zalewski. + The security hole exists only in suidperls, which isn't + installed or even built by default. + Branch: maint-5.6/perl + !> (integrate 71 files) + ____________________________________________________________________________ + [ 7882] By: gsar on 2000/11/27 10:25:36 + Log: integrate changes#6439..6444,6446..6453,6455..6457,6460..6465,6467..6468 + from mainline + + Make the unimplemented POSIX regex features [[.cc.]] and [[=c=]] + to be fatal errors (instead of by default ignoring them, and + ignoring with a bug: even though -w gave an error, the opening [ + was left in) Reported in: + + Subject: [PATCH: perl@6409] bug fix for munchconfig (turned up by CXX) + + Subject: [PATCH] split /^/ + + MacOS nits from Matthias Neeracher. + + More split() doc and test patches from Mike Guy. + + Allow "sub AUTOLOAD;" to stop AUTOLOAD inheritance, + from Graham Barr in the module list. + + docfix from Peter Scott . + + File::Temp patches for VMS and OS/2 from Tim Jenness. + + open() wariness in perlbug. + + Subject: [PATCH] minor doc change - perlguts + + Subject: Minor doc patch: handy.h + + Be wary of close()s, too. + + Further File::Temp patches from Yitzchak Scott-Thoennes + and Craig A. Berry. + + Subject: [PATCH] fixes bug 20000508.004 + + Subject: [ID 19990709.002] [DOCUMENTATION PATCH] perldiag + + Allow "no AutoLoader;", based on change #6444, + suggested by Graham Barr. + + Use setproctitle() if available to modify $0. + + Warn if the version of the operating system used to compile gcc + differs from the current version of the operating system. + Also display the gcc compilation os and version in myconfig. + Inspiration from + + Tiny fixes for #6460. + + The problem described in this + Subject: [ID 20000322.018] named chars aren't magical enough + has been fixed in perl 5.6.0 but just in case added a test + to keep it away. (The report from Joseph Hall.) + + Tune the comments and hopefully stop a memory leak. + + Subject: UTF8 concat + (with a memory leak fixed, plus a few casts added) + This also seems to help for + Subject: [ID 20000716.015] join UTF8 weirdness + + Do not upgrade SVs into utf8 just because they participate + in eq or cmp. Reported and fix suggested in + Subject: [ID 20000720.009] sv_eq UTF8 bug + + Fix the HALF_UPGRADE() macro introduced in #6263. + + Find green threads before native threads. + Subject: Re: Patch to jpl/JNI/Makefile.PL + Branch: maint-5.6/perl + !> (integrate 30 files) + ____________________________________________________________________________ + [ 7846] By: gsar on 2000/11/24 00:55:57 + Log: integrate changes#6415..6418,6420..6438 from mainline + + Fix the bitvector ops for utf8 (tricky since past 7 bits + the utf8 'characters' can be more than one octet). + + MPE/ix updates for perl 5.6.0 from Mark Bixby. + + Subject: SDBM_File documentation + + Detypo. + + Decutandpasto. + + Send all installperl messages to STDERR and be -w clean. + + Out-of-date note removed. + + Protect against "wild next"s, that is, callbacks doing "next" + instead of "return". + + Use STDOUT consistently. + + The output might have been produced in the wrong order. + + A missing 'break' after the [[:space:]] switch case. + + Add tests for + [ID 19991110.003] another matching finding by pcre author + which has already been fixed by some patch, as verified in + + Documentation to explain the behaviour of map(). + + Add an optimization for map-maps-a-list-element-to-more-list-elements + case, but add also notes explaining the relationship of this + patch and the earlier notes by Sarathy. + + Subject: [ID 20000716.023] syslog test fails without sockets + + Subject: Re: [PATCH] [ID 20000716.011] strangeness with split($_ =~ m/.../) + Test cases for #6431. + + File::Spec::VMS fixup for tmpdir from Craig Berry. + + Make the "uninit variable" warning to say "concat or string" + or "join or string" when in concat or join . + + Get UTF16 BOMs working. Patch from + Subject: Re: [ID 20000719.001] Problem with bleadperl of 7/18/00 + + Subject: [PATCH] Make large file tests deal with SIGXFSZ + + Subject: [ID 20000724.003] Documentation changes for perllocale.pod + + Subject: [PATCH] av.c apidoc + Branch: maint-5.6/perl + !> (integrate 43 files) + ____________________________________________________________________________ + [ 7845] By: gsar on 2000/11/24 00:20:45 + Log: integrate changes#6406..6414 from mainline + + Merge perlhacktut into perlhack, update perlguts. + + Fix AutoSplit to use File::Spec the right way in VMS, + from Peter Prymmer. + + The bug report + [ID 19991110.002] minimal matching discrepancy found by pcre author + seems to have been fixed (though differently from what was suggested + in the report) in 5.6.0. Add tests to keep the bug from reappearing. + + thinko fix in vms/descrip_mms.template, the win32.pod in lib, + not in pod, from Peter Prymmer + + Subject: [docpatch] Re: [ID 19991002.011] perldoc -f shift + From: Hugo + Date: Fri, 14 Jul 2000 23:05:20 +0100 + Message-Id: <200007142205.XAA17882@crypt.compulink.co.uk> + + Didn't anymore apply, but that point still could use another fix. + + lib/b test fixes from Peter Prymmer. + + More docs for sv functions. + + perlvms.pod whitespace cleanup to keep pod utils happy. + + another VMS build tweak from Peter Prymmer + Branch: maint-5.6/perl + !> embed.pl lib/AutoSplit.pm pod/perlapi.pod pod/perlfunc.pod + !> pod/perlguts.pod pod/perlhack.pod sv.c t/lib/b.t t/op/re_tests + !> vms/descrip_mms.template vms/perlvms.pod + ____________________________________________________________________________ + [ 7799] By: gsar on 2000/11/22 01:02:56 + Log: some lib_pm.PL changes snuck in via change#7772 + Branch: maint-5.6/perl + ! Makefile.SH + ____________________________________________________________________________ + [ 7781] By: gsar on 2000/11/20 19:02:55 + Log: type mismatch due to faulty integration + Branch: maint-5.6/perl + ! toke.c win32/Makefile + ____________________________________________________________________________ + [ 7780] By: gsar on 2000/11/20 17:31:55 + Log: integrate changes#6392,6394..6399,6401..6404 + + The {multiplier} of a fixed substring was overlooked which + caused a wrong initial search offset for that substring. + + Subject: [PATCH 5.6.0] Re: [ID 20000613.001] Regex works in v5.005_03 but fails in v5.06 + From: Hugo + Message-Id: <200007131827.TAA14487@crypt.compulink.co.uk> + Date: Thu, 13 Jul 2000 19:27:13 +0100 + + Fix the BOM bug: not a byteorder bug, a signedness bug. + + Replace change #6337 with a better one. + + Subject: Re: [PATCH] [ID 20000701.002] Regular Expressions Not Unsetting $1 Vars When Backtracking + From: Hugo + Date: Fri, 14 Jul 2000 04:16:20 +0100 + Message-Id: <200007140316.EAA15857@crypt.compulink.co.uk> + + MakeMaker should not remove editor backups (*~) on `make clean` + by default (completes change#6383) + + move new variables to the end of the interpreter structure (for + bincompat in code that doesn't #include XSUB.h) + + rename totally bletcherous SvLOCK() thingy (doesn't do what the + name suggests anyway) + + various cleanups (typos, misformatted code, and small bugs) + + typecasts needed for change#6394 + + typos in change#6399, regen headers + + inconsistent types needs casts + + PERL_OBJECT build tweaks + Branch: maint-5.6/perl + !> MANIFEST doop.c embed.h embed.pl embedvar.h + !> ext/IPC/SysV/Makefile.PL global.sym intrpvar.h + !> lib/ExtUtils/MM_Unix.pm mg.c op.c perlapi.h pod/perlapi.pod + !> pp.c proto.h regcomp.c regexec.c sv.h t/op/re_tests thread.h + !> toke.c util.c + ____________________________________________________________________________ + [ 7779] By: gsar on 2000/11/20 17:06:29 + Log: integrate changes#6376..6378,6380,6383,6385..6388,6391 + + Cosmetics and perldelta. + + Fix nits noticed by Boston.pm. + + Do the cc sanity check both before the hints and + after the cc selction. + + get sprintf.t to adjust properly for 3-digit exponents + + don't clobber *.orig files on *clean targets + + fix bugs in processing %v-*d and similar format specs (from + Avi Finkel ) + + sprintf test tweaks (from Dominic Dunlop) + + new selfloader.t in change#6183 doesn't close DATA handles, + and thus fails to clean up tmp files on dosish platforms + + typos (spotted by Peter Prymmer) + + typo fix from Craig Berry + Branch: maint-5.6/perl + !> Configure Makefile.SH config_h.SH ext/IPC/SysV/Makefile.PL + !> pod/perldelta.pod pod/perlre.pod sv.c t/lib/english.t + !> t/lib/selfloader.t t/op/sprintf.t vms/subconfigure.com + !> x2p/Makefile.SH + ____________________________________________________________________________ + [ 7778] By: gsar on 2000/11/20 16:46:51 + Log: integrate changes#6340..6342,6348,6354,6356,6357,6371,6372,6375 + + Subject: Re: format bug report [Patch] + From: "H.Merijn Brand" + Date: Wed, 05 Jul 2000 13:12:52 +0200 + Message-Id: <20000705130745.67BF.H.M.BRAND@hccnet.nl> + + Subject: Re: format bug report [Patch] + From: "H.Merijn Brand" + Date: Wed, 05 Jul 2000 14:10:01 +0200 + Message-Id: <20000705140837.73C2.H.M.BRAND@hccnet.nl> + + Subject: Re: [ID 20000704.002] [PATCH] memory leak with debug / anon subs + From: "M.J.T. Guy" + Message-Id: + Date: Fri, 07 Jul 2000 17:57:16 +0100 + + Subject: [ID 20000710.002] fatal error or memory loss when deleting symbols in evaled code with syntax errors + To: perl5-porters@perl.org + From: Karsten Sperling + Date: Mon, 10 Jul 2000 15:12:52 +0200 + Message-Id: <200007101315.e6ADFrg21041@chthon.perl.com> + + README.posix-bc podified from Thomas Dorner. + + Subject: [PATCH perl-current] Make op/sprintf.t more comprehensive, take2 + From: Dominic Dunlop + Date: Tue, 11 Jul 2000 12:27:33 +0200 + Message-Id: + + Typo in #6341. + + Fix for + Subject: [ID 20000711.005] spurious uninit warning with msgrcv() + From: Roderick Schertler + Date: Tue, 11 Jul 2000 13:55:05 -0400 + Message-Id: <200007111755.NAA05077@jones.argon.org> + + Minor cleanups on the booklist. + + Reintroduce perlbook (updated for Mk III), introduce perlposix-bc, + regen perltoc. + + windows build tweaks (op/sprintf.t still fails tests 120-121, 149) + Branch: maint-5.6/perl + +> pod/perlbook.pod + !> MANIFEST README.posix-bc doio.c lib/Symbol.pm pod/Makefile.SH + !> pod/buildtoc.PL pod/perl.pod pod/perlfaq2.pod pod/perltoc.pod + !> pp_hot.c t/op/sprintf.t t/op/write.t toke.c win32/win32sck.c + ____________________________________________________________________________ + [ 7772] By: gsar on 2000/11/20 13:06:23 + Log: integrate changes#6315..6319,6321..6331,6333..6338 + + Integrate with Sarathy, preliminary fix for unicos + alignment problems in [ID 20000612.002] Perl problem on Cray system. + + some debugger output does not go to the socket when RemotePort is set + + winsock cleanup never done on Windows (leads to handle leaks) + + fix UNC path handling on Windows under ithreads, and chdir() + return value when given a non-existent directory + + Autogenerate pod/Makefile and pod/buildtoc. + buildtoc also checks whether the existin pods are + mentioned in MANIFEST and perl.pod, and vice versa. + (None of the thusly found discrepancies fixed yet.) + roffitall also needs to be autogenerated similarly but it + seems so badly out of date that I didn't touch it yet. + + Config is being used. + + Add =head1 NAMEs so that buildtoc is happy. + (The CGI::Util nit reported to Lincoln.) + + Fix complaints of buildtoc. + + Fix the alignment problem in Crays ([ID 20000612.002]). + + Remove perlbook, update perlfaq book listing, + rearrange perl.pod, regenerate perltoc. + + Fix a nit spotted by 64bit IRIX compilation: a (64-bit) pointer + was cast to an unsigned (32-bit) integer with wild abandon. + + winsock options weren't being set in all threads under ithreads + (caused send()s from second and subsequent threads to fail) + + accept() leaks memory on windows due to incorrect ordering of + closesocket() and fclose() calls + + Reorder perl.pod once more. + + More POSIX.pod tweaks. + + Sprinkle ldlibpath. + + Precedence goof, fix based on + Subject: [PATCH 5.6.0] op/taint.t continues on failed shmget() + From: Hugo + Date: Tue, 11 Jul 2000 12:52:38 +0100 + Message-Id: <200007111152.MAA05488@crypt.compulink.co.uk> + + Subject: PATCH perlguts.pod: Document D and d magic types + From: mjd@plover.com + Date: 5 Jul 2000 18:01:51 -0000 + Message-ID: <20000705180151.29413.qmail@plover.com> + + Subject: [ID 20000705.002] problem with perl 5.6.0 on NetBSD/sparc + From: Hubert Feyrer + Date: Wed, 5 Jul 2000 14:56:43 +0200 (MET DST) + Message-Id: + + Subject: [PATCH cfgperl] $& segfaults if you trick it + From: simon@brecon.co.uk (Simon Cozens) + Date: 7 Jul 2000 11:26:09 GMT + Message-ID: + + Subject: [PATCH] [ID 20000701.002] Regular Expressions Not Unsetting $1 Vars When Backtracking + From: Hugo + Date: Tue, 11 Jul 2000 12:44:50 +0100 + Message-Id: <200007111144.MAA04446@crypt.compulink.co.uk> + + Subject: [PATCH] Re: "%#p" format specifier: document and test or not? + From: "M.J.T. Guy" + Date: Tue, 11 Jul 2000 13:50:51 +0100 + Message-Id: + Branch: maint-5.6/perl + +> ext/DynaLoader/hints/netbsd.pl lib/Win32.pod pod/Makefile.SH + +> pod/buildtoc.PL + - pod/Makefile pod/Win32.pod pod/buildtoc pod/perlbook.pod + !> (integrate 26 files) + ____________________________________________________________________________ + [ 7771] By: gsar on 2000/11/20 12:31:42 + Log: integrate changes#6283..6285,6291,6294..6300,6302..6304,6306..6307, + 6310,6311,6314 + + Subject: [PATCH bleedperl] File::Spec 0.82 beta + From: Barrie Slaymaker + Date: Wed, 28 Jun 2000 11:35:29 -0400 + Message-Id: <200006281535.LAA21095@jester.slaysys.com> + + tweak perlembed for multiplicity/usethreads sanity; correct notes + about Windows + + localize %INC in a Safe compartment so that use/require work + (many other magic globals probably need similar treatment) + + dounwind() may cause POPSUB() to diddle the wrong PL_curpad + when @_ is modified, causing coredumps + + slurp mode fix in change#4736 still not quite right + + Point to perlipc for more SysV IPC examples. + + Elaborate POSIX.pod. Still needs work. + + fix ~320 byte memory leak (psig_{ptr,name} tables were never freed) + + fix large memory leak that has been around for ever, masked by + -DPURIFY (most of the arenas were never freed!) + + fix memory leak on Windows (PL_sys_intern contents were never + freed) + + PERL_OBJECT build tweak + + adjust change#6299 + + remove rel2abs prototypes (from Barrie Slaymaker) + + missing perldiag entry for unpack("w",...) diagnostic (from + Andreas Koenig) + + better diagnostic on Frob->stuff() when Frob:: doesn't exist + (from Richard Soderberg ) + + Win32 patches for cfgperl from Sarathy. + + b.t fails under OS/2 (from Yitzchak Scott-Thoennes) + + More POSIX.pod embellishment. + + tyop in change#6306 + Branch: maint-5.6/perl + !> (integrate 44 files) + ____________________________________________________________________________ + [ 7770] By: gsar on 2000/11/20 11:51:00 + Log: integrate changes#6268..6282 from cfgperl branch + + Subject: [PATCH perl-current] Make op/sprintf.t more comprehensive + From: Dominic Dunlop + Date: Thu, 29 Jun 2000 12:32:39 +0200 + Message-Id: + + Regen headers for #6261 (and update embed.pl for this) and #6267, + silence few compiler warnings. + + Subject: PATCH (Re: [ID 20000612.004] Should regression tests fail if user doesn't build XS extensions?) + From: Nicholas Clark + Date: Fri, 23 Jun 2000 16:21:15 +0100 + Message-ID: <20000623162115.A19894@Bagpuss.unfortu.net> + + Subject: PATCH pod/perltie.pod + From: Ian Phillipps + Date: Fri, 16 Jun 2000 00:17:19 +0100 + Message-ID: <20000616001719.A17108@homer.diplex.co.uk> + (only the first hunk, the second hunk had already been done + by some other patch) + + Subject: [ID 20000614.005] [patch] Tweak to Net::Ping docs + From: Tom Phoenix + Received: (qmail 6398 invoked by uid 508); 15 Jun 2000 00:30:54 -0000 + Date: Wed, 14 Jun 2000 17:30:37 -0700 (PDT) + + Subject: [PATCH] xsub attributes + From: Doug MacEachern + Date: Wed, 14 Jun 2000 15:09:22 -0700 (PDT) + Message-ID: + + Subject: [ID 20000614.003] 5.6.0 File/Glob.pm incompatibility + From: Andy Dougherty + Date: Wed, 14 Jun 2000 13:33:32 -0400 (EDT) + Message-Id: + + Subject: [PATCH] 5.6.0 lib/Pod/{Html,Man,Text}.pm + From: "Daniel S. Lewart" + Date: Tue, 13 Jun 2000 02:43:48 -0500 + Message-ID: <20000613024347.A28388@staff2.cso.uiuc.edu> + + Subject: [PATCH] Re: eval documentation: context + From: "M.J.T. Guy" + Date: Mon, 12 Jun 2000 15:07:29 +0100 + Message-Id: + + Subject: [PATCH] Re: [ID 20000612.001] map {chop; $_} (Literals problem) + From: "M.J.T. Guy" + Date: Mon, 12 Jun 2000 14:55:59 +0100 + Message-Id: + + Subject: [ID 20000609.002] Text::Wrap::wrap does not handle multiline strings properly + From: "Milton L. Hankins" + Date: Fri, 09 Jun 2000 12:39:27 -0400 + Message-Id: <39411DBF.A04BB1A@swl.msd.ray.com> + (plus update the version "number" of Text::Wrap) + + Subject: [ID 20000602.002] [PATCH] perlsub.pod: ambiguous usage of "closure" + From: Tim Ayers + Date: Thu, 08 Jun 2000 08:11:06 +0200 + Message-id: <393F38FA.9B5F4C7D@m.dasa.de> + [resent by Richard Foley, Message-Id probably wrong] + + Subject: Re: backwards compatibility in h2xs and makemaker [PATCH] + From: rspier@pobox.com (Robert Spier) + Date: Wed, 7 Jun 2000 12:47:37 -0400 (EDT) + Message-ID: <14654.31913.845602.610277@rls.cx> + + Subject: [PATCH 5.6.0] utils/h2xs.PL + From: "Daniel S. Lewart" + Date: Wed, 7 Jun 2000 04:02:04 -0500 + Message-ID: <20000607040201.A22568@staff1.cso.uiuc.edu> + + Subject: [PATCH 5.6.0]ITHREADs for VMS + From: Dan Sugalski + Date: Tue, 06 Jun 2000 11:59:50 -0400 + Message-Id: <4.3.2.7.0.20000606115752.01c82220@24.8.96.48> + Branch: maint-5.6/perl + !> (integrate 31 files) + ____________________________________________________________________________ + [ 7769] By: gsar on 2000/11/20 11:29:06 + Log: integrate changes#6261..6266 from cfgperl + + Subject: Re: [PATCH cfgperl] BOMs away! + From: simon@brecon.co.uk (Simon Cozens) + Date: 17 Jun 2000 11:49:57 GMT + Message-ID: + + Subject: 5.6.0 Patch for EPOC + From: Olaf Flebbe + Date: Tue, 13 Jun 2000 22:59:29 +0200 (MEST) + Message-ID: <23449.960929969@www11.gmx.net> + + tr fixes from Simon Cozens + + Subject: [ID 20000628.004] Re: Problem compiling perl? [BSDI-Support-Request #71232] + From: Marty Lucich + Date: Wed, 28 Jun 2000 14:16:05 -0700 (PDT) + Message-Id: <200006282116.OAA11148@netcom.com> + ccdlflags update (the BSD/OS 4.1 part had already been taken + care of by #6141). + + Subject: Re: [ID 20000628.006] POSIX::STRERR_FILENO typo + From: sthoenna@efn.org (Yitzchak Scott-Thoennes) + Date: Wed, 28 Jun 2000 17:50:12 -0700 + Message-ID: + + Subject: [PATCH 5.6.0] cygwin port + Message-ID: <779F20BCCE5AD31186A50008C75D997917173C@silldn_mail1.sanwaint.com> + From: "Fifer, Eric" + Date: Thu, 29 Jun 2000 12:58:29 +0100 + Branch: maint-5.6/perl + !> README.epoc cygwin/Makefile.SHs doop.c epoc/config.sh + !> epoc/createpkg.pl epoc/epocish.c epoc/epocish.h + !> ext/POSIX/POSIX.pm ext/POSIX/POSIX.pod ext/POSIX/POSIX.xs + !> hints/bsdos.sh pod/perldiag.pod t/comp/require.t toke.c + ____________________________________________________________________________ + [ 7768] By: gsar on 2000/11/20 11:13:44 + Log: integrate changes#6252..6256,6259..6260 + + Paranoia tweak on #6249. + Subject: Re: [PATCH 5.6.0 IPC/Open3.pm] Allow the use of numeric fd's + From: Ronald J Kimball + Date: Sun, 25 Jun 2000 23:43:12 -0400 + Message-ID: <20000625234312.B74147@linguist.dartmouth.edu> + + Subject: tr///, help wanted. + From: simon@brecon.co.uk (Simon Cozens) + Date: 28 Jun 2000 11:29:04 GMT + Message-ID: + + small thinko tweaks + + tweaks from Simon Conzes to further fix tr/// under utf8 + + perlnewmod was missing from MANIFEST. + + Subject: Re: [PATCH] pack('U',$foo) doesn't UTF8 + From: simon@brecon.co.uk (Simon Cozens) + Date: 17 Jun 2000 11:56:44 GMT + Message-ID: + pack U0, pack C0 + Branch: maint-5.6/perl + !> MANIFEST doop.c embed.h embed.pl embedvar.h global.sym + !> lib/Exporter.pm lib/IPC/Open3.pm objXSUB.h op.c + !> pod/perlfunc.pod pp.c pp_proto.h proto.h sv.c t/op/my_stash.t + !> t/op/pack.t t/op/tr.t t/pragma/constant.t t/pragma/warn/op + ____________________________________________________________________________ + [ 7767] By: gsar on 2000/11/20 10:51:38 + Log: integrate change#6250 from cfgperl + + Subject: Re: [PATCH] support 'my __PACKAGE__ $obj = ...' + From: Doug MacEachern + Date: Tue, 27 Jun 2000 14:17:28 -0700 (PDT) + Message-ID: + Branch: maint-5.6/perl + +> t/op/my_stash.t + !> MANIFEST embed.pl global.sym proto.h toke.c + ____________________________________________________________________________ + [ 7766] By: gsar on 2000/11/20 10:48:34 + Log: integrate changes#6240,6242..6246,6248,6249 from cfgperl + + Subject: [ID 20000626.007] h2xs man page contains trailing garbage + From: Nicholas Clark + Date: Mon, 26 Jun 2000 18:40:14 +0100 + Message-Id: <200006261740.SAA02740@Bagpuss.unfortu.net> + + Subject: [PATCH] bytes<->utf8 fixes + From: simon@brecon.co.uk (Simon Cozens) + Date: 26 Jun 2000 04:55:45 GMT + Message-ID: + + Subject: [PATCH] is_utf8_string + From: simon@brecon.co.uk (Simon Cozens) + Date: 26 Jun 2000 02:25:59 GMT + Message-ID: + + Subject: [PATCH] avoid mg_ptr in '*' magic + From: Doug MacEachern + Date: Sun, 25 Jun 2000 11:16:08 -0700 (PDT) + Message-ID: + + Subject: [ID 20000624.001] PERL_DL_DEBUG=1 DynaLoader message appears to be wrong + From: Nicholas Clark + Date: Sat, 24 Jun 2000 13:06:20 +0100 + Message-Id: <200006241206.NAA03771@Bagpuss.unfortu.net> + + Allow for standalone testing. + + Subject: DOC PATCH 5.6.0: perlfunc/sprintf does not contain an example + From: Mark-Jason Dominus + Date: Tue, 27 Jun 2000 22:36:42 -0400 + Message-ID: <20000628023642.12166.qmail@plover.com> + + Subject: Re: [PATCH 5.6.0 IPC/Open3.pm] Allow the use of numeric fd's + From: Frank Tobin + Date: Sun, 25 Jun 2000 19:00:58 -0500 (CDT) + Message-ID: + Branch: maint-5.6/perl + !> embed.h embed.pl embedvar.h ext/DynaLoader/DynaLoader_pm.PL + !> global.sym gv.c lib/IPC/Open3.pm objXSUB.h perlapi.c perlapi.h + !> pod/perlapi.pod pod/perlfunc.pod pod/perlintern.pod pp_proto.h + !> proto.h sv.c t/lib/filefunc.t t/lib/filespec.t t/lib/peek.t + !> utf8.c utils/h2xs.PL + ____________________________________________________________________________ + [ 7765] By: gsar on 2000/11/20 10:29:13 + Log: integrate change#6239 from cfgperl + + Configure maintenance. Sever some dependency cycles, + separate gccversion from the cc unit, + address [ID 20000623.006] Configure script patch for using gcc on AIX + (but solve it a little bit differently), + unduplex some accidentally duplicated units, + suggest using gcc if no cc available + (p5p thread: "Solaris configure: counterproposal", 1999-09) + Branch: maint-5.6/perl + !> Configure Todo-5.6 config_h.SH + ____________________________________________________________________________ + [ 7764] By: gsar on 2000/11/20 10:25:55 + Log: integrate changes#6233..6238 from cfgperl + + Subject: PATCH 5.6.0: Document OPf_SPECIAL flag in regcomp op nodes + From: Mark-Jason Dominus + Date: Fri, 16 Jun 2000 20:53:04 -0400 + Message-ID: <20000617005304.8008.qmail@plover.com> + + Prefer C:/temp in Win32 as File::Spec->tmpdir to /tmp + because when run as services (Win32ese for daemons) + no environment variables are set and tmpdir ends up as /tmp, + which is ambiguous. + Subject:[ID 20000616.002] File::Spec->tmpdir broken when running as service + From: matt@sergeant.org + Date: 16 Jun 2000 16:30:43 -0000 + Message-Id: <20000616163043.26398.qmail@mail.sergeant.org> + + The thread begun by + Subject: [ID 20000616.001] Typo on line 390 of .../hints/solaris_2.sh + From: Kevin.Ruscoe@ubsw.com + Date: Fri, 16 Jun 2000 16:38:51 +0100 + Message-Id: + + Tweak embed.pl, regen headers. + + Subject: [PATCH 5.6.0] XS module loading fixup for VMS + From: Dan Sugalski + Date: Fri, 23 Jun 2000 17:00:00 -0400 + Message-Id: <4.3.2.7.0.20000623165934.00c93d10@24.8.96.48> + Branch: maint-5.6/perl + !> (integrate 27 files) + ____________________________________________________________________________ + [ 7763] By: gsar on 2000/11/20 10:08:08 + Log: s/perl56delta/perldelta/g + Branch: maint-5.6/perl + ! pod/Makefile + ____________________________________________________________________________ + [ 7762] By: gsar on 2000/11/20 10:04:00 + Log: integrate changes#6225,6229,6231,6232 from cfgperl + + Add source code filenames to apidoc. + From: simon@brecon.co.uk (Simon Cozens) + Subject: [PATCH embed.pl] Source X-ref + Date: 22 Jun 2000 02:18:49 GMT + Message-ID: + + Subject: README.hpux version 0.6.1 + Date: Tue, 20 Jun 2000 15:25:51 -0700 (PDT) + From: Jeff Okamoto + Message-Id: <200006202225.PAA26205@xfiles.intercon.hp.com> + + Subject: [PATCH 5.6.0] cygwin port + From: "Fifer, Eric" + Date: Tue, 20 Jun 2000 14:30:58 +0100 + Message-ID: <779F20BCCE5AD31186A50008C75D9979171734@silldn_mail1.sanwaint.com> + + Subject: PATCH: pod/perlutil.pod - utilities packaged with the Perl distribution + From: simon@brecon.co.uk (Simon Cozens) + Date: 19 Jun 2000 15:18:27 GMT + Message-ID: + + plus update pod/Makefile and regenerate perltoc + Branch: maint-5.6/perl + +> pod/perlutil.pod + !> MANIFEST README.cygwin README.hpux Todo-5.6 embed.pl + !> lib/File/Find.pm pod/Makefile pod/perltoc.pod pod/roffitall + ____________________________________________________________________________ + [ 7344] By: gsar on 2000/10/16 09:30:21 + Log: integrate change#6220 from cfgperl + + Win32 patches from Benjamin Stuhl. + Branch: maint-5.6/perl + !> makedef.pl win32/win32.h + ____________________________________________________________________________ + [ 7343] By: gsar on 2000/10/16 08:32:19 + Log: integrate changes#6221,6222 from cfgperl + + Remove tr///CU (the feature is to be obsoleted by better interfaces). + From: simon@brecon.co.uk (Simon Cozens) + Subject: [PATCH] Eliminate tr///[CU][CU] + Date: 23 Jun 2000 11:05:40 GMT + Message-ID: + + doc typo fix + Subject: [PATCH] documentation typo in lib/Pod/Usage.pm + From: Ian Phillipps + Date: Fri, 23 Jun 2000 10:40:58 +0100 + Message-ID: <20000623104058.A22791@homer.diplex.co.uk> + Branch: maint-5.6/perl + !> doop.c embed.pl lib/Pod/Usage.pm pod/perlop.pod toke.c utf8.c + ____________________________________________________________________________ + [ 7342] By: gsar on 2000/10/16 08:28:08 + Log: integrate change#6217 from cfgperl (in part) + + Rename the fdpid locking and integrate with Sarathy. + Branch: maint-5.6/perl + !> Configure config_h.SH doio.c embed.h embed.pl embedvar.h + !> global.sym gv.c intrpvar.h objXSUB.h perl.c perlapi.h pp.c + !> pp_ctl.c proto.h sv.h util.c util.h vmesa/vmesa.c + !> win32/win32.c + ____________________________________________________________________________ + [ 7341] By: gsar on 2000/10/16 08:23:39 + Log: integrate changes#6214..6216 from mainline + + @_ can't have junk in it even in the non-USE_ITHREADS case because + caller() wants to populate @DB::args with it (causes a coredump + in Carp::confess()) + + tweak comment about @DB::args + + be more optimal about clearing @_ + Branch: maint-5.6/perl + !> av.h cop.h pp_ctl.c t/op/runlevel.t + ____________________________________________________________________________ + [ 7340] By: gsar on 2000/10/16 08:20:37 + Log: integrate changes#6207..6210 from cfgperl + + Subject: [PATCH 5.6.0] Threadsafe patches + From: Dan Sugalski + To: perl5-porters@perl.org + Date: Mon, 08 May 2000 18:08:13 -0400 + Message-Id: <4.3.1.0.20000508180729.02182de0@24.8.96.48> + + Regen headers for #6207. + + Lock PL_fdpid against race conditions, based on: + Subject: [PATCH 5.6.0]subprocess fixup for threads + From: Dan Sugalski + To: perl5-porters@perl.org + Date: Tue, 11 Apr 2000 17:02:32 -0400 + Message-Id: <4.3.0.20000411170218.01d2f580@24.8.96.48> + + Mopup for #6207 and #6209. + Branch: maint-5.6/perl + !> doio.c embed.h embed.pl global.sym gv.c intrpvar.h objXSUB.h + !> perl.c pp.c pp_ctl.c proto.h sv.h util.c vmesa/vmesa.c + !> win32/win32.c + ____________________________________________________________________________ + [ 7339] By: gsar on 2000/10/16 08:14:34 + Log: integrate change#6203 from cfgperl + + perldiag should refer to perlos2.pod not README.os2 + Branch: maint-5.6/perl + !> pod/perldiag.pod + ____________________________________________________________________________ + [ 7338] By: gsar on 2000/10/16 08:11:42 + Log: integrate change#6201 from mainline + + Perl_eval_pv() leaks 4 bytes every time it is called because it + does a PUSHMARK that's never ever POPMARKed; in general, only + Perl_call_[sp]v() need a PUSHMARK for incoming arguments; + Perl_eval_[sp]v() don't because they don't take any incoming + arguments (this leak has been around since the original version + of perl_eval_pv() in 5.003_97e) + Branch: maint-5.6/perl + !> perl.c + ____________________________________________________________________________ + [ 7337] By: gsar on 2000/10/16 08:08:47 + Log: integrate changes#6197..6200 from cfgperl + + Subject: [ID 20000602.005] [PATCH]5.6.0 (DOC) tiny change to perlsyn.pod + From: John Borwick + Date: Fri, 2 Jun 2000 14:35:03 -0400 (EDT) + Message-Id: + + Subject: [PATCH 5.6.0]VMS fixups so we can build with MULTIPLICITY + From: Dan Sugalski + To: vmsperl@perl.org, perl5-porters@perl.org + Date: Fri, 02 Jun 2000 16:00:41 -0400 + Message-Id: <4.3.2.7.0.20000602155951.01f02b20@24.8.96.48> + Message-Id: <4.3.2.7.0.20000602164011.01ec8c30@24.8.96.48> + + Subject: [PATCH 5.6.0]Make perl's malloc work on VMS + From: Dan Sugalski + To: perl5-porters@perl.org, vmsperl@perl.org + Date: Fri, 02 Jun 2000 17:30:51 -0400 + Message-Id: <4.3.2.7.0.20000602173021.01f03570@24.8.96.48> + + Update to cperl-mode.el 4.31 from + ftp://ftp.math.ohio-state.edu/pub/users/ilya/cperl-mode.el + Subject: A couple of notes + From: Ilya Zakharevich + To: Mailing list Perl5 + Date: Sat, 3 Jun 2000 23:33:32 -0400 + Message-ID: <20000603233332.A6790@monk.mps.ohio-state.edu> + Branch: maint-5.6/perl + !> emacs/cperl-mode.el embed.h embed.pl embedvar.h + !> ext/POSIX/POSIX.xs global.sym objXSUB.h perlapi.c perlapi.h + !> pod/perlapi.pod pod/perlintern.pod pod/perlsyn.pod proto.h + !> vms/descrip_mms.template vms/gen_shrfls.pl vms/vms.c + !> vms/vmsish.h + ____________________________________________________________________________ + [ 7336] By: gsar on 2000/10/16 08:03:46 + Log: integrate changes#6194,6195 from mainline + + fix small eval"" memory leaks under USE_ITHREADS + + fix yet another eval"" leak under USE_ITHREADS + Branch: maint-5.6/perl + !> cop.h embed.h embed.pl objXSUB.h op.c perl.c perlapi.c perly.c + !> perly_c.diff pp_ctl.c proto.h scope.c scope.h sv.c toke.c + !> vms/perly_c.vms + ____________________________________________________________________________ + [ 7335] By: gsar on 2000/10/16 08:02:15 + Log: integrate changes#6190,6191 from mainline + + submit missing embed.pl change + + vec() loses numericalness (modified version of patch suggested + by Robin Barker) + Branch: maint-5.6/perl + !> doop.c embed.pl t/op/vec.t + ____________________________________________________________________________ + [ 7334] By: gsar on 2000/10/16 08:01:03 + Log: integrate change#6189 from mainline + + counting tr/// corrupts later operation (from M.J.T Guy) + Branch: maint-5.6/perl + !> doop.c t/op/tr.t + ____________________________________________________________________________ + [ 7333] By: gsar on 2000/10/16 07:59:07 + Log: integrate changes#6183..6188 from mainline + + SelfLoader can lose $@ in AUTOLOAD() (from Nicholas Clark + ) + + tweak for change#6127 + + remove incorrect documentation about implicit split to @_ in + list context, which never really worked in perl 5 (from + M.J.T. Guy) + + further qualify references to "alphanumeric" (from Wolfgang Laun + ) + + replace pod2latex with the one in Pod-LaTeX v0.52 from CPAN + (from Tim Jenness ) + + h2xs tweaks + Branch: maint-5.6/perl + +> lib/Pod/LaTeX.pm t/lib/selfloader.t + !> AUTHORS MAINTAIN MANIFEST ext/Devel/Peek/Peek.pm handy.h + !> lib/SelfLoader.pm perl.c pod/perlapi.pod pod/perldata.pod + !> pod/perlfaq6.pod pod/perlfaq9.pod pod/perlfunc.pod + !> pod/perllocale.pod pod/perlre.pod pod/perltrap.pod + !> pod/pod2latex.PL utils/h2xs.PL + ____________________________________________________________________________ + [ 7332] By: gsar on 2000/10/16 07:53:52 + Log: integrate change#6179 from mainline + + buggy modulus on UVs introduced by change#3378 (resulted in + 4063328477 % 65535 amounting to 27406, instead of 27407) + Branch: maint-5.6/perl + !> pp.c t/op/arith.t + ____________________________________________________________________________ + [ 7331] By: gsar on 2000/10/16 07:52:49 + Log: integrate changes#6176,6177,6178,6182 from cfgperl + + Single-quoted utf8 patch from Simon Cozens. + + Substitution utf8 patch from Simon Cozens. + + Be cleaner. + + Be Cleaner Part Deux. + Branch: maint-5.6/perl + !> Makefile.SH pp_hot.c toke.c + ____________________________________________________________________________ + [ 7330] By: gsar on 2000/10/16 07:41:36 + Log: integrate change#6172 from mainline + + fix buggy multiline matching of C<"a\nxb\n" =~ /(?!\A)x/m> + (from Ilya Zakharevich) + Branch: maint-5.6/perl + !> regexec.c t/op/re_tests + ____________________________________________________________________________ + [ 7329] By: gsar on 2000/10/16 07:40:25 + Log: integrate change#6171 from mainline + + scalar() doesn't force scalar context when used in void context + (from Simon Cozens) + Branch: maint-5.6/perl + !> op.c t/op/wantarray.t + ____________________________________________________________________________ + [ 7328] By: gsar on 2000/10/16 07:39:33 + Log: integrate change#6170 from mainline + + change#6142 needs tweaks to tests to work where there's no + symlink() (from Helmut Jarausch ) + Branch: maint-5.6/perl + !> t/lib/filefind.t + ____________________________________________________________________________ + [ 7327] By: gsar on 2000/10/16 07:35:34 + Log: integrate changes#6166..6168 from cfgperl + + Introduce HAS_GETESPWNAM, HAS_GETPRPWNAM, and I_PROT + in case somebody wants to write an extension for more + shadow database interfaces. + + tweak todo + + Tweak NV_PRESERVES_UV*, vms/subconfigure.com left untouched. + Branch: maint-5.6/perl + !> Configure Porting/Glossary Porting/config.sh Porting/config_H + !> Todo-5.6 config_h.SH epoc/config.sh perl.h pp_sys.c toke.c + !> vms/subconfigure.com vos/config.def vos/config.h vos/config.pl + !> vos/config_h.SH_orig win32/config.bc win32/config.gc + !> win32/config.vc win32/config_H.bc win32/config_H.gc + !> win32/config_H.vc win32/config_h.PL win32/config_sh.PL + ____________________________________________________________________________ + [ 7326] By: gsar on 2000/10/16 07:29:05 + Log: integrate changes#6157,6159..6161,6164 from cfgperl + + Regen Configure to jive with #6149. + + Upgrade to File::Temp 0.08 from Tim Jenness via CPAN. + + Changes for the File::Temp 0.08 (change #6159) test suite + to fit better into the Perl distribution test framework. + + Add autogeneration of perlmodlib.pod and the new perlnewmod.pod, + both from Simon Cozens. + + detypo + Branch: maint-5.6/perl + +> pod/perlmodlib.PL pod/perlnewmod.pod + !> AUTHORS Configure MAINTAIN MANIFEST config_h.SH + !> lib/File/Temp.pm pod/Makefile pod/perl.pod pod/perlmodlib.pod + !> pod/perltoc.pod t/lib/ftmp-mktemp.t t/lib/ftmp-posix.t + !> t/lib/ftmp-security.t t/lib/ftmp-tempfile.t + ____________________________________________________________________________ + [ 7325] By: gsar on 2000/10/16 07:25:13 + Log: integrate change#6158 from vmsperl + + Add fallback to tmpfile for use in cases where user's relying on + ACLs on SYS$SCRATCH to permit file creation. (based on Charles + Lane's patch) + Branch: maint-5.6/perl + !> vms/vms.c vms/vmsish.h + ____________________________________________________________________________ + [ 7324] By: gsar on 2000/10/16 07:20:50 + Log: integrate changes#6153..6155 from mainline + + prettier Test::Harness output on failed tests (from Nicholas Clark + ) + + avoid type mismatch warning + + small bug in change#6144; remove random \xA0 character that snuck + in via change#6145 + Branch: maint-5.6/perl + !> lib/AutoSplit.pm lib/ExtUtils/xsubpp lib/Test/Harness.pm + !> perl.c + ____________________________________________________________________________ + [ 7323] By: gsar on 2000/10/16 07:18:47 + Log: integrate changes#6151,6152 from mainline + + fix accidental pessimization in RE optimizer (from Ilya Zakharevich) + + cosmetic fixups of RE debug output (from Ilya Zakharevich) + Branch: maint-5.6/perl + !> regexec.c + ____________________________________________________________________________ + [ 7322] By: gsar on 2000/10/16 07:17:25 + Log: integrate changes#6146..6150 from mainline + + doc typo + + add a make entry to Config.pm so "perl -V:make" works on VMS + (from Peter Prymmer) + + close open file before chmod() (from Rocco Caputo ) + + OS/2 tweaks for usethreads build (from Rocco Caputo + ) + + perlrequick.pod updates (from Mark Kvale ) + Branch: maint-5.6/perl + !> Configure hints/os2.sh lib/ExtUtils/MM_Unix.pm lib/warnings.pm + !> makedef.pl os2/Makefile.SHs os2/OS2/REXX/t/rx_dllld.t + !> os2/OS2/REXX/t/rx_objcall.t os2/OS2/REXX/t/rx_tievar.t + !> os2/OS2/REXX/t/rx_tieydb.t os2/os2.c os2/os2ish.h perl.c + !> pod/perlrequick.pod util.c vms/subconfigure.com warnings.h + !> warnings.pl x2p/a2p.h + ____________________________________________________________________________ + [ 7321] By: gsar on 2000/10/16 07:14:02 + Log: integrate changes#6143..6145 from mainline + + MacOS support, part 1 (from Matthias Neeracher + ) + + MacOS support, part 2: make AutoSplit use File::Spec instead + of assuming Unixisms; *UNTESTED on Unix* (from Matthias Neeracher + ) + + make xsubpp skip embedded pod (from Matthias Neeracher + ) + Branch: maint-5.6/perl + +> ext/DynaLoader/dl_mac.xs + !> MANIFEST ext/DB_File/Makefile.PL ext/NDBM_File/Makefile.PL + !> ext/POSIX/POSIX.xs lib/AutoSplit.pm lib/ExtUtils/MakeMaker.pm + !> lib/ExtUtils/xsubpp mg.c perl.c perlsfio.h pod/perlfaq4.pod + !> pp_ctl.c proto.h toke.c util.c util.h + ____________________________________________________________________________ + [ 7320] By: gsar on 2000/10/16 07:12:13 + Log: integrate changes#6141,6142 from mainline + + BSD/OS (bsdi) hints update by Timur I. Bakeyev and Todd C. Miller, + forwarded by Peter Seebach from the bsdi-users mailing list. + p5p Message-Id: <200005280543.AAA24519@guild.plethora.net> + + File::Find fails to chdir when chasing symlinks (from + Helmut Jarausch ) + Branch: maint-5.6/perl + !> hints/bsdos.sh lib/File/Find.pm t/lib/filefind.t + ____________________________________________________________________________ + [ 7319] By: gsar on 2000/10/16 07:04:30 + Log: integrate change#6139 from mainline + + revise mktables.PL for bugs and newness in Unicode 3.0 + (from James Bence ) + Branch: maint-5.6/perl + +> (branch 30 files) + !> (integrate 49 files) + ____________________________________________________________________________ + [ 7318] By: gsar on 2000/10/16 07:01:01 + Log: integrate changes#6137,6138 from mainline + + fix bogus redeclaration warning for "our" variables in different + scopes + + add note about the handling of negative indices to tied arrays + (from Michael G Schwern ) + Branch: maint-5.6/perl + !> op.c pod/perltie.pod t/pragma/strict-vars + ____________________________________________________________________________ + [ 7317] By: gsar on 2000/10/16 06:58:46 + Log: integrate changes#6127..6136 from mainline + + call_method(...,G_EVAL) can longjmp() out if the method probing + failed (from Gisle Aas) + + new perlxstut example for passing/returning refs to arrays + (from David Lowe ) + + VMS test harness tweak (from Jesper Naur ) + + fix places that mean C<"word" character> but say C + + avoid warnings in POSIX.pm (from Barrie Slaymaker) + + warnings::enabled() doesn't fall back to looking at $^W if + caller isn't using lexical warnings (from Paul Marquess) + + elide bogus test in change#6132 + + make Test::Harness use wait.h/WCOREDUMP if available + (from Ben Tilly ) + + enable Test::Harness to dynamically determine column width etc. + (from Rob Napier ) + + random pod typos (from Peter Scott ) + Branch: maint-5.6/perl + !> cop.h ext/Devel/Peek/Peek.pm ext/POSIX/POSIX.pm + !> lib/Test/Harness.pm perl.c pod/perldebguts.pod + !> pod/perlfunc.pod pod/perlre.pod pod/perlretut.pod + !> pod/perlxstut.pod pp_ctl.c t/pragma/warn/9enabled vms/test.com + ____________________________________________________________________________ + [ 7316] By: gsar on 2000/10/16 06:53:23 + Log: integrate change#6126 from mainline + + change#2879 broke rvalue autovivification of magicals such as + ${$num} (reworked variant of patch suggested by Simon Cozens) + Branch: maint-5.6/perl + !> embed.h embed.pl gv.c pod/perlapi.pod pod/perlintern.pod pp.c + !> pp_hot.c proto.h t/op/gv.t + ____________________________________________________________________________ + [ 7315] By: gsar on 2000/10/16 06:51:38 + Log: integrate changes#6123,6125 from mainline + + clarify gotcha with #line directives (from Rocco Caputo + ) + + enable propagating exception objects via Perl_croak() in XS code + (from Gisle Aas) + Branch: maint-5.6/perl + !> pod/perldebug.pod pod/perlsyn.pod util.c + ____________________________________________________________________________ + [ 7314] By: gsar on 2000/10/16 06:49:28 + Log: integrate change#6122 from mainline + + downgrade fatal error on C<"foo@nosucharray.com"> to optional + warning (from Mark-Jason Dominus) + Branch: maint-5.6/perl + !> lib/ExtUtils/typemap pod/perldelta.pod pod/perlsub.pod + !> pod/perltrap.pod t/base/lex.t t/pragma/strict-vars + !> t/pragma/strict.t t/pragma/warn/toke t/pragma/warnings.t + !> toke.c + ____________________________________________________________________________ + [ 7313] By: gsar on 2000/10/16 06:46:54 + Log: integrate changes#6112..6121 from vmsperl + + Check for existence of file before trying to delete + + Ugly workaround for version-specific RTL error + + Urk -- undo previous removal of vmsish 'exit' change + + Add bounds checking for several strings (Charles Lane) + + Miscellaneous cosmetic fixes (Charles Lane) + + Treat sockets as special in sys(read|write) (Charles Lane et al.) + + Regularize distinction between RMS$_DNF and RMS$_DIR (Craig Berry) + Flatten case labels in switch statements uniformly (Charles Bailey) + + Quiet error messages in vmsish.t (Charles Lane) + + Add missing escape (Charles Lane) + + Allow eliminate_macros() and fixpath() to handle space-delimited + lists (based on fixes by Craig Berry) + Branch: maint-5.6/perl + !> lib/ExtUtils/MM_VMS.pm lib/File/Spec/VMS.pm t/op/lex_assign.t + !> vms/ext/vmsish.pm vms/ext/vmsish.t vms/test.com vms/vms.c + !> vms/vmsish.h + ____________________________________________________________________________ + [ 7312] By: gsar on 2000/10/16 06:41:18 + Log: integrate changes#6107,6110 from cfgperl + + Tweak the todo list. + + todo tweak + Branch: maint-5.6/perl + !> Todo-5.6 + ____________________________________________________________________________ + [ 7311] By: gsar on 2000/10/16 06:38:38 + Log: integrate changes#6104,6108 from mainline + + PL_sys_intern was being initialized too late on windows + + reenable fake signal handling on Windows, bugs and all + Branch: maint-5.6/perl + !> embed.h embed.pl global.sym makedef.pl mg.c objXSUB.h perl.c + !> perl.h perlapi.c pod/perlapi.pod proto.h win32/perlhost.h + !> win32/win32.c + ____________________________________________________________________________ + [ 7310] By: gsar on 2000/10/16 06:36:03 + Log: integrate changes#6095,6097..6103 from cfgperl + + Introduce NV_PRESERVED_BITS. Not yet used anywhere but + might be useful in future. + + Add a note about possible compilation problems from Allen Smith. + + Add a note about other, yet unsupported, shadow password APIs. + + Tweaks for the cc bugs from Allen Smith. + + More compilation tweakery from Allen Smith. + + Hints and test tweaks for Unicos. + + The test suite tweak in #6101 wasn't quite right. + + Test tweaking for Unicos continues. + Branch: maint-5.6/perl + !> Configure Porting/Glossary Porting/config.sh Porting/config_H + !> config_h.SH hints/irix_6.sh hints/unicos.sh pp_sys.c t/lib/b.t + !> t/lib/complex.t t/op/64bitint.t + ____________________________________________________________________________ + [ 7309] By: gsar on 2000/10/16 06:29:41 + Log: integrate changes#6093,6094 from mainline + + fork() failure to create pseudo process sets errno=EAGAIN and returns + undef on windows (from Clinton Pierce ) + + cygwin update (from Eric Fifer ) + Branch: maint-5.6/perl + !> README.cygwin cygwin/Makefile.SHs cygwin/cygwin.c + !> hints/cygwin.sh pp_sys.c sv.c win32/perlhost.h + ____________________________________________________________________________ + [ 7308] By: gsar on 2000/10/16 06:27:29 + Log: integrate change#6092 from cfgperl + + Regen perltoc with the fixed buildtoc. + Branch: maint-5.6/perl + !> pod/perltoc.pod + ____________________________________________________________________________ + [ 7307] By: gsar on 2000/10/16 06:26:40 + Log: integrate changes#6089,6090 from mainline + + buildtoc tweak to fix newline lossage + + concat doesn't preserve utf8-ness, and doesn't invalidate + [NI]OK; added tests for both + Branch: maint-5.6/perl + !> perl.c pod/buildtoc pp_hot.c sv.c t/op/substr.t + ____________________________________________________________________________ + [ 7306] By: gsar on 2000/10/16 06:24:05 + Log: integrate change#6088 from cfgperl + + Remove HAS_SETSPENT, HAS_GETSPENT, HAS_ENDSPENT, + because we do not use those. The HAS_GETSPNAM remains, + though, because we still do use that. + Branch: maint-5.6/perl + !> Configure Porting/Glossary Porting/config.sh Porting/config_H + !> config_h.SH epoc/config.sh hints/machten.sh pod/perltoc.pod + !> pp_sys.c vms/subconfigure.com vos/config.def vos/config.h + !> vos/config_h.SH_orig win32/config.bc win32/config.gc + !> win32/config.vc win32/config_H.bc win32/config_H.gc + !> win32/config_H.vc win32/config_h.PL win32/config_sh.PL + ____________________________________________________________________________ + [ 7305] By: gsar on 2000/10/16 06:15:52 + Log: integrate changes#6084,6085,6087 from mainline + + substr() does not preserve utf8-ness (from Stefan Eissing + ); added tests + + repeat operator (x) doesn't preserve utf8-ness + + reverse() and quotemeta() weren't preserving utf8-ness; add tests + Branch: maint-5.6/perl + !> pp.c sv.c t/op/quotemeta.t t/op/substr.t toke.c + ____________________________________________________________________________ + [ 7304] By: gsar on 2000/10/16 06:13:10 + Log: integrate changes#6077..6083 from mainline + + avoid warnings in diagnostics.pm; pod tweaks (from Peter Prymmer + and Tom Phoenix) + + workaround for CRT bug in chdir() (from Charles Lane, via + Peter Prymmer) + + remove outdated kludge in Carp (NULLs are permitted in diagnostics + now) + + add File::Temp v0.08 from CPAN, with small tweaks to testsuite + (from Tim Jenness ) + + better default perlbug categories for ok reports (from Richard Foley) + + peek.t non-portable to ithreads + + note about undocumented caller() return value (from M.J.T. Guy); + yet another peek.t tweak + Branch: maint-5.6/perl + +> lib/File/Temp.pm t/lib/ftmp-mktemp.t t/lib/ftmp-posix.t + +> t/lib/ftmp-security.t t/lib/ftmp-tempfile.t + !> AUTHORS MAINTAIN MANIFEST iperlsys.h lib/Carp/Heavy.pm + !> lib/diagnostics.pm pod/perlfunc.pod pod/perlrun.pod + !> pod/perltie.pod t/lib/peek.t utils/perlbug.PL vms/vms.c + !> vms/vmsish.h + ____________________________________________________________________________ + [ 7303] By: gsar on 2000/10/16 06:03:18 + Log: integrate changes#6011,6016,6033,6035..6039,6047..6052,6054..6059, + 6073..6075 from cfgperl (pp_sys.c manually merged due to conflicts) + + &HUGE_VAL is not defined, it exists. + + Do not warn that an infinity does not look like a number. + + Rewrite the pwent/spent logic to be a little bit more clearer. + + Continue on the pwent/spent case. + + Correct Freudian slip. + + Use HUGE_VALL if applicable. + + pwent/spent #ifdef imbalance. + + Infinite problems. + + Call getspnam() only iff needd. + + Test both the scalar and list contexts. + + Use setxxent()/endxxent(). + + Complex tweakery. + + Unicos hint tweak. + + Be more forgiving in POSIX about HUGE_VALL. + + Detypo. + + The search of infinity continues, this time simplified. + + The logic of choosing strtol/strtoul/strtoll/strtoull was wrong + in natively 64-bit platforms where a long is a quad (no need + for long longs). Also added bias for IVs. + + Complex tweaks. + + Introduce t/lib/peek.t. + + Make the test more portable. + Branch: maint-5.6/perl + +> t/lib/peek.t + ! pp_sys.c + !> MANIFEST ext/POSIX/POSIX.xs hints/unicos.sh + !> lib/Math/Complex.pm sv.c t/lib/complex.t t/op/grent.t + !> t/op/pwent.t toke.c util.c + ____________________________________________________________________________ + [ 7302] By: gsar on 2000/10/16 05:03:37 + Log: integrate changes#6066..6071 from mainline + + s/END/CHECK/ + + replace direct call to sighandler() with (*PL_sighandlerp)() + + note about values() + + File::Spec compatibility update (from Barrie Slaymaker + ) + + remove misleading comment (from M.J.T. Guy) + + misformatted perllocal.pod (from Tim Jenness + ) + Branch: maint-5.6/perl + !> lib/ExtUtils/MM_Unix.pm lib/ExtUtils/MM_Win32.pm + !> lib/File/Spec.pm lib/File/Spec/Mac.pm lib/File/Spec/Unix.pm + !> lib/File/Spec/VMS.pm lib/File/Spec/Win32.pm perl.c + !> pod/perlfunc.pod t/lib/anydbm.t win32/win32.c + ____________________________________________________________________________ + [ 7301] By: gsar on 2000/10/16 05:00:08 + Log: integrate changes#6061..6063 from mainline + + change#5921 neglected to make eq honor "use bytes" + + additional tests for utf8.t + + tokeq() could read unallocated field in argument + Branch: maint-5.6/perl + !> sv.c t/pragma/utf8.t toke.c + ____________________________________________________________________________ + [ 7300] By: gsar on 2000/10/16 04:56:54 + Log: integrate changes#6046,6048,6057,6058 from mainline + + libscheck has insufficient checks for n32 libs (from + Albert Chin-A-Young ) + + add note about how $( doesn't interpolate in REs (from + Philip Newton ) + + fix broken parsing of /\x{ab}/ + + printf(...) should be PerlIO_printf(PerlIO_stdout(), ...) + (spotted by Donald Kinzer ) + Branch: maint-5.6/perl + !> hints/irix_6.sh perl.c pod/perlop.pod regcomp.c + !> t/pragma/utf8.t + ____________________________________________________________________________ + [ 7299] By: gsar on 2000/10/16 04:52:50 + Log: integrate change#6044 from mainline + + change#3798 broke the meaning of "\0_7_7", tr/\0_// etc.; fix it + such that underscores are only ignored in literal numbers, + "\x{...}", and hex/oct argument + Branch: maint-5.6/perl + !> perl.c pp.c regcomp.c t/op/oct.t toke.c util.c + ____________________________________________________________________________ + [ 7298] By: gsar on 2000/10/16 04:50:53 + Log: integrate changes#6027..6043 from mainline + + podlators-1.02 update (from Russ Allbery) + + Pod::Man generates groff-incompatible macro definition (from + Tom Christiansen) + + add CGI.pm v2.66 (from Lincoln Stein) + + introduce @LAST_MATCH_START and @LAST_MATCH_END, English aliases + for @- and @+ (from Johan Vromans) + + small nits in diagnostics.pm (from Robin Barker) + + whitespace adjustments + + missing files in MANIFEST + + cpio 2.4.2 on Linux creates directories in 0700 mode, adjust makerel + to compensate + + remove outdated perltrap entry (from Peter Scott ) + + perlretut revisions (from Mark Kvale ) + Branch: maint-5.6/perl + +> lib/CGI/Util.pm t/lib/cgi-pretty.t + !> MANIFEST Porting/makerel lib/CGI.pm lib/CGI/Carp.pm + !> lib/CGI/Cookie.pm lib/CGI/Pretty.pm lib/CGI/Push.pm + !> lib/English.pm lib/Pod/Man.pm lib/Pod/Text.pm + !> lib/diagnostics.pm pod/perldiag.pod pod/perlretut.pod + !> pod/perltrap.pod pod/perlvar.pod pp_sys.c t/lib/cgi-function.t + !> t/lib/cgi-html.t t/lib/cgi-request.t + ____________________________________________________________________________ + [ 7297] By: gsar on 2000/10/16 04:44:30 + Log: integrate change#6025 from mainline + + Is{Alnum,Alpha,Word} don't match titlecase + TODO: IsSpace is defined recursively! + (both spotted by Larry) + Branch: maint-5.6/perl + !> lib/unicode/Is/Alnum.pl lib/unicode/Is/Alpha.pl + !> lib/unicode/Is/Word.pl lib/unicode/mktables.PL + ____________________________________________________________________________ + [ 7296] By: gsar on 2000/10/16 04:39:30 + Log: integrate change#6023 from mainline + + debugger stomps on $. (from M.J.T. Guy) + Branch: maint-5.6/perl + !> lib/perl5db.pl + ____________________________________________________________________________ + [ 7295] By: gsar on 2000/10/16 04:38:02 + Log: integrate change#6022 from mainline + + unbalanced LEAVE after perl_clone(...,0) (from Doug MacEachern) + Branch: maint-5.6/perl + !> sv.c + ____________________________________________________________________________ + [ 7294] By: gsar on 2000/10/16 04:37:05 + Log: integrate changes#6018..6021 from mainline + + make lib/syslog.t portable to systems that don't have _PATH_LOG, + make _PATH_LOG() return "" if unavailable + + windows portability tweaks + + test tweak + + remove Win2K issue in pod (fixed by change#6020) + Branch: maint-5.6/perl + !> README.win32 ext/File/Glob/Glob.pm ext/Sys/Syslog/Syslog.pm + !> ext/Sys/Syslog/Syslog.xs pod/perldelta.pod t/lib/b.t + !> t/lib/open3.t t/lib/syslog.t win32/win32.h + ____________________________________________________________________________ + [ 7293] By: gsar on 2000/10/16 04:20:00 + Log: integrate changes#6013..6015 from mainline + + tweak change#5945 to display correct switch name in diagnostic + + glob() loading File::Glob behind the scenes may cause syntax errors + + tweak test for portability + Branch: maint-5.6/perl + !> op.c perl.c pod/perldiag.pod t/lib/b.t + ____________________________________________________________________________ + [ 7292] By: gsar on 2000/10/16 04:18:11 + Log: integrate changes#6005..6010 from mainline, cfgperl + + perldoc might fail via "use blib" (from Hugo van der Sanden) + + Regen Configure. + + note about compile failures and END blocks (from M.J.T. Guy) + + VMS config tweak (from Craig A. Berry ) + + (change#6009 integrated earlier in change#7255) + + clarify note about shadow password support (from + gellyfish@gellyfish.com) + Branch: maint-5.6/perl + !> Configure Porting/Glossary Porting/config.sh Porting/config_H + !> config_h.SH installperl pod/perldelta.pod pod/perlfunc.pod + !> pod/perlmod.pod utils/perldoc.PL vms/subconfigure.com + ____________________________________________________________________________ + [ 7291] By: gsar on 2000/10/16 04:12:03 + Log: integrate changes#6002,6003 from mainline + + destructive sv_setsv() can lose UV-ness from source, causing + numeric promotions/comparisons to fail to do the right thing + + allow REG_EXPAND_SZ keys in Windows registry (from + John Clayton ) + Branch: maint-5.6/perl + !> sv.c win32/win32.c + ____________________________________________________________________________ + [ 7290] By: gsar on 2000/10/16 04:10:19 + Log: integrate change#6001 from mainline + + support additional library locations via $Config{otherlibdirs} + (from Andy Dougherty) + Branch: maint-5.6/perl + !> Configure INSTALL Porting/Glossary Porting/config.sh + !> Porting/config_H config_h.SH epoc/config.sh perl.c + !> vms/subconfigure.com vos/config.def vos/config_h.SH_orig + !> win32/config.bc win32/config.gc win32/config.vc + ____________________________________________________________________________ + [ 7289] By: gsar on 2000/10/16 04:08:28 + Log: integrate change#5999 from mainline + + fix line renumbering bug in C + Branch: maint-5.6/perl + !> t/pragma/warn/toke toke.c + ____________________________________________________________________________ + [ 7288] By: gsar on 2000/10/16 04:07:01 + Log: integrate changes#5997,5998 from cfgperl + + Preserve $!. + + Try to get "Inf" by using &POSIX::HUGE_VAL in sprintf. + Branch: maint-5.6/perl + !> lib/Math/Complex.pm + ____________________________________________________________________________ + [ 7287] By: gsar on 2000/10/16 04:04:37 + Log: integrate change#5995 from mainline + + fixes for bugs in C (from Paul Marquess) + Branch: maint-5.6/perl + !> mg.c t/pragma/warn/7fatal warnings.h warnings.pl + ____________________________________________________________________________ + [ 7286] By: gsar on 2000/10/16 04:03:21 + Log: integrate change#5994 from mainline + + fix for missed accounting for null byte in pack("Z",...) (from + M.J.T. Guy) + Branch: maint-5.6/perl + !> pp.c t/op/pack.t + ____________________________________________________________________________ + [ 7285] By: gsar on 2000/10/16 04:02:11 + Log: integrate changes#5989..5993 from mainline + + qw(a\\b) must be parsed like 'a\\b', i.e., backslash escapes + itself and no other (from Tom Hughes) + + use $ENV{LIB} to search for libs under Visual C compiler + on Windows (from Jochen Wiedmann ) + + posix-bc patches (from Dorner Thomas ) + + pod nit (from Simon Cozens) + + various minor tweaks seen on p5p + Branch: maint-5.6/perl + !> README.posix-bc hints/posix-bc.sh lib/ExtUtils/Liblist.pm + !> lib/perl5db.pl pod/perlipc.pod pod/perlop.pod pod/perlvar.pod + !> t/op/array.t toke.c + ____________________________________________________________________________ + [ 7284] By: gsar on 2000/10/16 03:59:00 + Log: integrate changes#5978..5988 from mainline + + sync version numbers in File::Spec with the ones on CPAN + (from Barrie Slaymaker) + + under useithreads, constant pad entries could inadvertantly be + shared across threads (from Eric Blood ); + added Eric's test case to testsuite + + allow Configure -S to run non-interactively (spotted by Greg Hudson + ) + + rename File::Glob::glob() to File::Glob::bsd_glob() to avoid + prototype mismatch with CORE::glob(); update pod and tests to + suit (File::Glob::glob() is still available for backward + compatibility, but should be considered deprecated) + + avoid error in IO::Socket::INET when given an unknown service name + with a port number (from Brian Raven ) + + numeric conversion of non-number in change#3378 tramples on + OOK offset, causing segfaults + + attributes::reftype() doesn't work on tied argument + + forked child may not exit correctly if it failed to open + /dev/console (from Graham Barr) + + add regular expressions tutorial and quick-start guide (from + Mark Kvale ) + + B::Bytecode tweaks (from Simon Cozens ) + + s/HTMLSCRIPTPOD/HTMLSCRIPTPODS/ (from Paul Sharpe + ) + Branch: maint-5.6/perl + +> pod/perlrequick.pod pod/perlretut.pod + !> AUTHORS Configure MAINTAIN MANIFEST ext/B/B/Bytecode.pm + !> ext/B/B/Disassembler.pm ext/File/Glob/Glob.pm + !> ext/IO/lib/IO/Socket/INET.pm ext/Sys/Syslog/Syslog.pm + !> lib/ExtUtils/MakeMaker.pm lib/File/Spec/Functions.pm + !> lib/File/Spec/Mac.pm lib/File/Spec/OS2.pm + !> lib/File/Spec/Unix.pm lib/File/Spec/VMS.pm + !> lib/File/Spec/Win32.pm op.c sv.c t/lib/glob-basic.t + !> t/lib/glob-case.t t/lib/glob-taint.t t/op/misc.t xsutils.c + ____________________________________________________________________________ + [ 7283] By: gsar on 2000/10/16 03:52:14 + Log: integrate change#5977 from mainline + + autoquote barewords followed by newline and arrow properly + (variant of fix suggested by Rick Delaney and M.J.T. Guy) + Branch: maint-5.6/perl + !> t/pragma/warn/toke toke.c + ____________________________________________________________________________ + [ 7282] By: gsar on 2000/10/16 03:50:48 + Log: integrate change#5976 from mainline + + DB_File v1.73 update (from Paul Marquess) + Branch: maint-5.6/perl + !> ext/DB_File/Changes ext/DB_File/DB_File.pm + !> ext/DB_File/DB_File.xs ext/DB_File/version.c + ____________________________________________________________________________ + [ 7281] By: gsar on 2000/10/16 03:49:14 + Log: integrate change#5975 from mainline + + allow sort() reentrancy (variant of patch suggested by + Hugo van der Sanden) + Branch: maint-5.6/perl + !> pp_ctl.c t/op/sort.t + ____________________________________________________________________________ + [ 7280] By: gsar on 2000/10/16 03:48:22 + Log: integrate change#5974 from mainline + + change#4197 somehow missed initializing PL_errors, meaning + syntax error queueing wasn't working outside eval"" at all; + also fixed eval"" to localize PL_error_count, so that compile-time + eval's don't clobber the error state of the outer context + Branch: maint-5.6/perl + !> lib/Math/Complex.pm perl.c pp_ctl.c t/pragma/warn/op + !> t/pragma/warn/toke + ____________________________________________________________________________ + [ 7279] By: gsar on 2000/10/16 03:46:21 + Log: integrate change#5973 from mainline + + fix for failure to match $foo =~ /(?i)/ (from Ilya Zakharevich) + Branch: maint-5.6/perl + !> regcomp.c regexec.c t/op/re_tests + ____________________________________________________________________________ + [ 7278] By: gsar on 2000/10/16 03:44:54 + Log: integrate change#5971 from cfgperl + + Unicos tweaks from Mark P. Lutz. + Branch: maint-5.6/perl + !> hints/unicos.sh lib/Math/Complex.pm + ____________________________________________________________________________ + [ 7277] By: gsar on 2000/10/16 03:42:59 + Log: integrate changes#5966..5970 from mainline + + add testsuite for B backends, fix bug in B::Deparse (from + Simon Cozens ) + + improved docs on the warn_uninit diagnostic (from David Glasser + and Simon Cozens) + + tolerate spaces in group names in test on solaris (from David Boyce + ) + + fix Sys::Syslog breakage on domain sockets (from Tom Hughes) + + Data::Dumper fumbles negative numbers on 32-bit platforms where + IV is >32bits + Branch: maint-5.6/perl + +> t/lib/b.t t/lib/syslog.t + !> MANIFEST ext/B/B/Deparse.pm ext/B/B/Stash.pm + !> ext/Data/Dumper/Dumper.xs ext/Sys/Syslog/Syslog.pm + !> pod/perldiag.pod t/lib/dumper.t t/op/groups.t + ____________________________________________________________________________ + [ 7276] By: gsar on 2000/10/16 03:39:30 + Log: integrate change#5965 from mainline + + avoid "will not stay shared" warnings for our variables (from + Robin Barker) + Branch: maint-5.6/perl + !> op.c t/pragma/warn/op + ____________________________________________________________________________ + [ 7275] By: gsar on 2000/10/16 03:38:18 + Log: integrate change#5964 from mainline + + reformat to 72 columns (again) + Branch: maint-5.6/perl + !> pod/perldiag.pod + ____________________________________________________________________________ + [ 7274] By: gsar on 2000/10/16 03:36:58 + Log: integrate change#5963 from mainline + + patch from Larry to make (\&) prototype work; added tests for + the same + Branch: maint-5.6/perl + !> op.c t/comp/proto.t + ____________________________________________________________________________ + [ 7273] By: gsar on 2000/10/16 03:35:51 + Log: integrate changes#5956..5962 from mainline + + better diagnostics on failed tests (from Ilya Zakharevich) + + pod nits (from A. C. Yardley ) + + change#3569 deleted some essential code, revert; avoid use of + atexit() to make DynaLoader work properly on AIX under mod_perl + (from Jens-Uwe Mager ) + + doubled words in pods (from Simon Cozens + ) + + better INSTALL notes on Solaris issues (from Dominic Dunlop) + + recognize our, CHECK and INIT in cperl-mode (from Doug MacEachern) + + updated README.hpux (from Jeff Okamoto) + Branch: maint-5.6/perl + !> INSTALL README.hpux emacs/cperl-mode.el + !> ext/DynaLoader/dl_aix.xs pod/perldebguts.pod pod/perldelta.pod + !> pod/perlfaq5.pod pod/perlfork.pod pod/perlfunc.pod + !> pod/perlipc.pod pod/perllexwarn.pod pod/perllocale.pod + !> pod/perlmod.pod pod/perlmodlib.pod pod/perlnumber.pod + !> pod/perlopentut.pod pod/perltodo.pod pod/perltootc.pod + !> t/op/lex_assign.t + ____________________________________________________________________________ + [ 7272] By: gsar on 2000/10/16 03:31:22 + Log: integrate change#5955 from mainline + + longstanding bug exposed by change#3307: sort arguments weren't + compiled with the right wantarray context (ensuing runtime lookup + via block_gimme() was getting the incidental context of the + sort() itself) + Branch: maint-5.6/perl + !> op.c t/op/sort.t + ____________________________________________________________________________ + [ 7271] By: gsar on 2000/10/16 03:29:11 + Log: integrate changes#5933,5935,5940..5944,5946,5951,5952 from cfgperl + branch + + Flatten the cpp jungle doing the nosuid checking. + + Do not assume sign propagation. (from M.J.T. Guy) + + Various Unicos 10.0.0.6 fixes. (from Mark Lutz) + + Add HAS_FREXPL, HAS_ISNAN, HAS_ISNANL, and HAS_MODFL. + Now pp_ncmp() returns undef is either operand is a NaN. + + On second thoughts frexp() does have two arguments. + + Document that tr() is not tr(1). + + Be more robust on "extreme" (large absolute value) + arguments. Originally reported by Daniel Connelly + as a problem with asinh() on large negative arguments, + asinh() used to bail out because an argument to log() + ended up being zero. Ilya Zakharevich proposed using + Taylor's series in such cases, which for such large + arguments is a very good approximation. + + Undo "use integer" addition from 64bitint as it seems + to break most of the subtests in Digital UNIX; + Unicos needs to find another way. + Branch: maint-5.6/perl + !> (integrate 29 files) + ____________________________________________________________________________ + [ 7270] By: gsar on 2000/10/16 03:09:44 + Log: integrate changes#5948,5949,5950 from mainline + + typo in vars.pm that leads to cryptic message (from Piotr + Piatkowski ) + + make perldoc use the pod2man from the same version (from + M.J.T. Guy) + + reformat perldiag to avoid long lines + Branch: maint-5.6/perl + !> lib/vars.pm pod/perldiag.pod utils/perldoc.PL + ____________________________________________________________________________ + [ 7269] By: gsar on 2000/10/16 03:05:54 + Log: integrate change#5947 from mainline + + use &dl_error rather than &dl_load_file as the guard for calling + boot_DynaLoader() (meant to fix dl_error() redefined warnings in + statically built perl) + Branch: maint-5.6/perl + !> ext/DynaLoader/DynaLoader_pm.PL ext/DynaLoader/XSLoader_pm.PL + ____________________________________________________________________________ + [ 7268] By: gsar on 2000/10/16 03:04:48 + Log: integrate change#5945 from mainline + + make module name mandatory after -M switch; reorder perldiag + alphabetically (from Mark-Jason Dominus) + Branch: maint-5.6/perl + !> perl.c pod/perldiag.pod + ____________________________________________________________________________ + [ 7267] By: gsar on 2000/10/16 03:03:01 + Log: integrate change#5939 from mainline + + more pod nits (from Larry Virden) + Branch: maint-5.6/perl + !> README.win32 pod/perlsub.pod pod/perlsyn.pod + !> pod/perlthrtut.pod pod/perltoc.pod pod/perltodo.pod + !> pod/perlxs.pod pod/perlxstut.pod vms/perlvms.pod + ____________________________________________________________________________ + [ 7266] By: gsar on 2000/10/16 03:01:39 + Log: integrate change#5938 from mainline + + Consolidated B::Deparse fixes (from Stephen McCamant) + Branch: maint-5.6/perl + !> ext/B/B/Deparse.pm + ____________________________________________________________________________ + [ 7265] By: gsar on 2000/10/16 03:00:43 + Log: integrate change#5936 from mainline + + additional tests for change#7263 (from Paul Marquess) + Branch: maint-5.6/perl + !> t/pragma/warn/2use t/pragma/warn/3both t/pragma/warn/4lint + !> t/pragma/warn/5nolint t/pragma/warn/6default + ____________________________________________________________________________ + [ 7264] By: gsar on 2000/10/16 02:58:34 + Log: integrate change#5934 from mainline + + propagate lexical warnings from surrounding scope correctly + within string eval() (from Paul Marquess) + Branch: maint-5.6/perl + !> pp_ctl.c t/pragma/warn/pp_ctl + ____________________________________________________________________________ + [ 7263] By: gsar on 2000/10/16 02:56:53 + Log: integrate change#5932 from mainline + + add rsignal(), whichsig() and do_join() to public API list + (mod_perl uses them to good advantage) + Branch: maint-5.6/perl + !> embed.pl global.sym objXSUB.h perlapi.c proto.h + ____________________________________________________________________________ + [ 7262] By: gsar on 2000/10/16 02:55:53 + Log: integrate change#5931 from mainline + + fix RE brokenness on refs/overloaded things (from Ilya Zakharevich) + Branch: maint-5.6/perl + !> pp_hot.c regexec.c t/op/pat.t + ____________________________________________________________________________ + [ 7261] By: gsar on 2000/10/16 02:55:01 + Log: integrate change#5930 from mainline + + small os390 tweaks (from Peter Prymmer) + Branch: maint-5.6/perl + !> config_h.SH makedepend.SH + ____________________________________________________________________________ + [ 7260] By: gsar on 2000/10/16 02:54:10 + Log: integrate change#5929 from mainline + + pod nits + Branch: maint-5.6/perl + !> pod/perlguts.pod + ____________________________________________________________________________ + [ 7259] By: gsar on 2000/10/16 02:52:55 + Log: integrate change#5927 from mainline + + arrange for next() to resume at the unstack op rather than the + loop conditional, so that scope cleanup happens correctly + (from Stephen McCamant) + Branch: maint-5.6/perl + !> op.c pp_ctl.c t/op/misc.t + ____________________________________________________________________________ + [ 7258] By: gsar on 2000/10/16 02:51:38 + Log: integrate change#5926 from mainline + + on windows, reserve 16M of stack rather than 128M (allows more + threads to run concurrently) + Branch: maint-5.6/perl + !> win32/Makefile win32/makefile.mk + ____________________________________________________________________________ + [ 7257] By: gsar on 2000/10/16 02:50:37 + Log: integrate change#5925 from mainline + + POSIX-BC tweak (from Ignasi Roca ) + Branch: maint-5.6/perl + !> toke.c + ____________________________________________________________________________ + [ 7256] By: gsar on 2000/10/16 02:49:36 + Log: integrate change#5924 from mainline + + avoid using uninitialized memory in require version check + Branch: maint-5.6/perl + !> pp_ctl.c universal.c + ____________________________________________________________________________ + [ 7255] By: gsar on 2000/10/16 02:48:03 + Log: integrate changes#5923,5928,6009 from mainline + + IO::Poll bugs fixed (from Lincoln Stein ) + Branch: maint-5.6/perl + !> ext/IO/lib/IO/Poll.pm t/lib/io_poll.t + ____________________________________________________________________________ + [ 7254] By: gsar on 2000/10/16 02:44:46 + Log: integrate change#5922 from mainline + + commentary about IoTYPE() (from Nathan Torkington) + Branch: maint-5.6/perl + !> sv.h + ____________________________________________________________________________ + [ 7253] By: gsar on 2000/10/16 02:43:49 + Log: integrate change#5921 from mainline + + make eq unicode-aware (from Gisle Aas); fix bogus tests revealed + Branch: maint-5.6/perl + !> sv.c t/lib/charnames.t t/pragma/utf8.t + ____________________________________________________________________________ + [ 7252] By: gsar on 2000/10/16 02:42:31 + Log: integrate change#5920 from mainline + + Larry's fix for buggy propagation of utf8-ness in join(); add test + Branch: maint-5.6/perl + !> doop.c t/op/ver.t + ____________________________________________________________________________ + [ 7251] By: gsar on 2000/10/16 02:41:14 + Log: integrate changes#5915..5919 from mainline + + various (pod tweaks &c) + Branch: maint-5.6/perl + !> (integrate 33 files) + ____________________________________________________________________________ + [ 7250] By: gsar on 2000/10/16 02:38:16 + Log: integrate change#5914 from mainline + + caller() wasn't returning the right number of elements for + eval {...} + Branch: maint-5.6/perl + !> pp_ctl.c t/pragma/warn/9enabled + ____________________________________________________________________________ + [ 7249] By: gsar on 2000/10/16 02:37:02 + Log: integrate change#5913 from mainline + + pod nit: $yday range for localtime/gmtime is 0..364 not 1..365 + (from Mark-Jason Dominus) + Branch: maint-5.6/perl + !> pod/perlfunc.pod + ____________________________________________________________________________ + [ 7248] By: gsar on 2000/10/16 02:35:58 + Log: integrate change#5912 from mainline + + fix totally broken caching in UNIVERSAL::isa() (from + Nick Ing-Simmons) + Branch: maint-5.6/perl + !> t/op/universal.t universal.c + ____________________________________________________________________________ + [ 7247] By: gsar on 2000/10/16 02:34:27 + Log: integrate changes#5910,5911 from mainline + + typo in pod + + add linebreak properties from unicode/LineBrk.txt (from + Dave Hartnoll ) + Branch: maint-5.6/perl + +> (branch 29 files) + !> ext/Thread/Thread.pm lib/unicode/mktables.PL + ____________________________________________________________________________ + [ 7246] By: gsar on 2000/10/16 02:33:29 + Log: integrate change#5909 from mainline + + mode argument to do_binmode() should be file mode, not boolean + Branch: maint-5.6/perl + !> pp_sys.c + ____________________________________________________________________________ + [ 7245] By: gsar on 2000/10/16 02:31:04 + Log: integrate change#5908 from mainline + + introduce illegal symbols into null package so that + gv_fetchpv(...,TRUE) always returns a valid GV even when the + symbol is trapped by strictures (avoids coredumps) + Branch: maint-5.6/perl + !> embedvar.h gv.c intrpvar.h perl.c perlapi.h + !> t/pragma/strict-vars + ____________________________________________________________________________ + [ 7242] By: gsar on 2000/10/16 02:26:51 + Log: integrate changes#5905,5906,5907,6064 from mainline + + printf/sprintf didn't get quad types right under use64bitint + Branch: maint-5.6/perl + !> pp_sys.c sv.c t/op/64bitint.t + ____________________________________________________________________________ + [ 5902] By: gsar on 2000/03/28 01:59:14 + Log: create maint-5.6 branch + Branch: maint-5.6/perl + +> (branch 1611 files) + ____________________________________________________________________________ + [ 5900] By: gsar on 2000/03/23 05:42:43 + Log: three guesses on what this is :-) + Branch: perl + ! Changes + + -------------- Version v5.6.0 -------------- *************** *** 664,670 **** ____________________________________________________________________________ [ 5802] By: jhi on 2000/03/18 17:11:07 Log: Configure nits: rewording from Sarathy (aka #5796), ! and installation directories patch from Robin Parker. Branch: cfgperl ! Configure Porting/Glossary Porting/config.sh Porting/config_H ! config_h.SH vos/config.h vos/config_h.SH_orig --- 4164,4170 ---- ____________________________________________________________________________ [ 5802] By: jhi on 2000/03/18 17:11:07 Log: Configure nits: rewording from Sarathy (aka #5796), ! and installation directories patch from Robin Barker. Branch: cfgperl ! Configure Porting/Glossary Porting/config.sh Porting/config_H ! config_h.SH vos/config.h vos/config_h.SH_orig *************** *** 2841,2847 **** ____________________________________________________________________________ [ 5440] By: jhi on 2000/03/02 17:48:15 Log: Confusion over uselargefiles.cbu and uselfs.cbu (the first one ! is the correct one), spotted by Robin Parker. Branch: cfgperl ! Configure config_h.SH hints/aix.sh hints/hpux.sh Branch: metaconfig/U/perl --- 6341,6347 ---- ____________________________________________________________________________ [ 5440] By: jhi on 2000/03/02 17:48:15 Log: Confusion over uselargefiles.cbu and uselfs.cbu (the first one ! is the correct one), spotted by Robin Barker. Branch: cfgperl ! Configure config_h.SH hints/aix.sh hints/hpux.sh Branch: metaconfig/U/perl *************** *** 12365,12371 **** ____________________________________________________________________________ [ 4045] By: jhi on 1999/08/29 15:18:38 Log: Fix scalar gmtime (and localtime) in quad environments, ! bug reported by Robin Parker. From: Robin Barker To: jhi@iki.fi --- 15865,15871 ---- ____________________________________________________________________________ [ 4045] By: jhi on 1999/08/29 15:18:38 Log: Fix scalar gmtime (and localtime) in quad environments, ! bug reported by Robin Barker. From: Robin Barker To: jhi@iki.fi *************** *** 13319,13325 **** [ 3914] By: jhi on 1999/08/03 21:11:11 Log: The op/filetest.t failed subtest 7 if testing as root. ! From: =?iso-8859-1?Q?Fran=E7ois=20D=E9sarm=E9nien?= To: perl5-porters@perl.org Subject: [ID 19990727.039] Not OK: perl 5.00558 on i386-sco 3.2v5.0.4 Date: Tue, 27 Jul 1999 22:54:05 +0200 --- 16819,16825 ---- [ 3914] By: jhi on 1999/08/03 21:11:11 Log: The op/filetest.t failed subtest 7 if testing as root. ! From: François Désarménien To: perl5-porters@perl.org Subject: [ID 19990727.039] Not OK: perl 5.00558 on i386-sco 3.2v5.0.4 Date: Tue, 27 Jul 1999 22:54:05 +0200 Index: Changes5.004 ####### perl-5.6.1-TRIAL1/ => perl-5.6.1-TRIAL1 *** perl-5.6.1-TRIAL1/Changes5.004 Tue Jul 20 10:17:50 1999 --- perl-5.6.1-TRIAL1/Changes5.004 Mon Nov 27 05:28:54 2000 *************** *** 8031,8037 **** From: Chip Salzenberg Files: pp_hot.c ! Title: "Fix grep() with refs in array context" From: Chip Salzenberg Files: pp.c --- 8031,8037 ---- From: Chip Salzenberg Files: pp_hot.c ! Title: "Fix grep() with refs in list context" From: Chip Salzenberg Files: pp.c Index: Configure Prereq: 3.0.1.9 ####### perl-5.6.1-TRIAL1/ => perl-5.6.1-TRIAL1 *** perl-5.6.1-TRIAL1/Configure Wed Mar 22 12:36:37 2000 --- perl-5.6.1-TRIAL1/Configure Sun Dec 17 20:44:54 2000 *************** *** 20,27 **** # $Id: Head.U,v 3.0.1.9 1997/02/28 15:02:09 ram Exp $ # ! # Generated on Wed Mar 22 19:13:31 EET 2000 [metaconfig 3.0 PL70] ! # (with additional metaconfig patches by perlbug@perl.com) cat >/tmp/c1$$ </tmp/c1$$ <&4 --- 1613,1619 ---- You have the option of continuing the configuration process, despite the distinct possibility that your kit is damaged, by typing 'y'es. If you do, don't blame me if something goes wrong. I advise you to type 'n'o ! and contact the author (perlbug@perl.org). EOM echo $n "Continue? [n] $c" >&4 *************** *** 1737,1742 **** --- 1776,1815 ---- You may safely delete it if you wish. EOF + xversion=`awk '/define[ ]+PERL_VERSION/ {print $3}' $rsrc/patchlevel.h` + case "$usedevel" in + $define|true|[yY]*) ;; + *) case "$xversion" in + *[13579]) + cat >&4 <&4 "Okay, continuing." ;; + *) echo >&4 "Okay, bye." + exit 1 + ;; + esac + ;; + esac + ;; + esac + : general instructions needman=true firsttime=true *************** *** 1799,1805 **** Unix system. If despite that it blows up on yours, your best bet is to edit Configure and run it again. If you can't run Configure for some reason, you'll have to generate a config.sh file by hand. Whatever problems you ! have, let me (perlbug@perl.com) know how I blew it. This installation script affects things in two ways: --- 1872,1878 ---- Unix system. If despite that it blows up on yours, your best bet is to edit Configure and run it again. If you can't run Configure for some reason, you'll have to generate a config.sh file by hand. Whatever problems you ! have, let me (perlbug@perl.org) know how I blew it. This installation script affects things in two ways: *************** *** 2020,2025 **** --- 2093,2158 ---- ;; esac + cat <checkcc + $startsh + EOS + cat <<'EOSC' >>checkcc + case "$cc" in + '') ;; + *) $rm -f try try.* + $cat >try.c <&4 + despair=yes + trygcc=yes + case "$cc" in + *gcc*) trygcc=no ;; + esac + case "`$cc -v -c try.c 2>&1`" in + *gcc*) trygcc=no ;; + esac + if $test X"$trygcc" = Xyes; then + if gcc -o try -c try.c; then + echo " " + echo "You seem to have a working gcc, though." >&4 + rp="Would you like to use it?" + dflt=y + if $test -f myread; then + . ./myread + else + if $test -f UU/myread; then + . ./UU/myread + else + echo "Cannot find myread, sorry. Aborting." >&2 + exit 1 + fi + fi + case "$ans" in + [yY]*) cc=gcc; ccname=gcc; ccflags=''; despair=no ;; + esac + fi + fi + if $test X"$despair" = Xyes; then + $cat >&4 <&4 tmp_n="$n" tmp_c="$c" --- 2267,2276 ---- rp="I see a config.sh file. Shall I use it to set the defaults?" . UU/myread case "$ans" in ! n*|N*) echo "OK, I'll ignore it." ! mv config.sh config.sh.old ! myuname="$newmyuname" ! ;; *) echo "Fetching default answers from your old config.sh file..." >&4 tmp_n="$n" tmp_c="$c" *************** *** 2152,2157 **** --- 2288,2294 ---- ;; esac fi + . ./UU/checkcc if test ! -f config.sh; then $cat <&4 dflt='' : Half the following guesses are probably wrong... If you have better ! : tests or hints, please send them to perlbug@perl.com : The metaconfig authors would also appreciate a copy... $test -f /irix && osname=irix $test -f /xenix && osname=sco_xenix --- 2299,2305 ---- (cd $src/hints; ls -C *.sh) | $sed 's/\.sh/ /g' >&4 dflt='' : Half the following guesses are probably wrong... If you have better ! : tests or hints, please send them to perlbug@perl.org : The metaconfig authors would also appreciate a copy... $test -f /irix && osname=irix $test -f /xenix && osname=sco_xenix *************** *** 2298,2303 **** --- 2435,2441 ---- esac ;; next*) osname=next ;; + nonstop-ux) osname=nonstopux ;; POSIX-BC | posix-bc ) osname=posix-bc osvers="$3" ;; *************** *** 2539,2545 **** ;; esac test "$override" && . ./optdef.sh - myuname="$newmyuname" : Restore computed paths for file in $loclist $trylist; do --- 2677,2682 ---- *************** *** 2756,2925 **** set usemultiplicity eval $setvar - : determine where manual pages are on this system - echo " " - case "$sysman" in - '') - syspath='/usr/man/man1 /usr/man/mann /usr/man/manl /usr/man/local/man1' - syspath="$syspath /usr/man/u_man/man1 /usr/share/man/man1" - syspath="$syspath /usr/catman/u_man/man1 /usr/man/l_man/man1" - syspath="$syspath /usr/local/man/u_man/man1 /usr/local/man/l_man/man1" - syspath="$syspath /usr/man/man.L /local/man/man1 /usr/local/man/man1" - sysman=`./loc . /usr/man/man1 $syspath` - ;; - esac - if $test -d "$sysman"; then - echo "System manual is in $sysman." >&4 - else - echo "Could not find manual pages in source form." >&4 - fi - - : see what memory models we can support - case "$models" in - '') - $cat >pdp11.c <<'EOP' - int main() { - #ifdef pdp11 - exit(0); - #else - exit(1); - #endif - } - EOP - ( cc -o pdp11 pdp11.c ) >/dev/null 2>&1 - if $test -f pdp11 && ./pdp11 2>/dev/null; then - dflt='unsplit split' - else - tans=`./loc . X /lib/small /lib/large /usr/lib/small /usr/lib/large /lib/medium /usr/lib/medium /lib/huge` - case "$tans" in - X) dflt='none';; - *) if $test -d /lib/small || $test -d /usr/lib/small; then - dflt='small' - else - dflt='' - fi - if $test -d /lib/medium || $test -d /usr/lib/medium; then - dflt="$dflt medium" - fi - if $test -d /lib/large || $test -d /usr/lib/large; then - dflt="$dflt large" - fi - if $test -d /lib/huge || $test -d /usr/lib/huge; then - dflt="$dflt huge" - fi - esac - fi;; - *) dflt="$models";; - esac - $cat </dev/null 2>&1 || \ - $contains '\-i' $sysman/cc.1 >/dev/null 2>&1; then - dflt='-i' - else - dflt='none' - fi;; - *) dflt="$split";; - esac - rp="What flag indicates separate I and D space?" - . ./myread - tans="$ans" - case "$tans" in - none) tans='';; - esac - split="$tans" - unsplit='';; - *large*|*small*|*medium*|*huge*) - case "$models" in - *large*) - case "$large" in - '') dflt='-Ml';; - *) dflt="$large";; - esac - rp="What flag indicates large model?" - . ./myread - tans="$ans" - case "$tans" in - none) tans=''; - esac - large="$tans";; - *) large='';; - esac - case "$models" in - *huge*) case "$huge" in - '') dflt='-Mh';; - *) dflt="$huge";; - esac - rp="What flag indicates huge model?" - . ./myread - tans="$ans" - case "$tans" in - none) tans=''; - esac - huge="$tans";; - *) huge="$large";; - esac - case "$models" in - *medium*) case "$medium" in - '') dflt='-Mm';; - *) dflt="$medium";; - esac - rp="What flag indicates medium model?" - . ./myread - tans="$ans" - case "$tans" in - none) tans=''; - esac - medium="$tans";; - *) medium="$large";; - esac - case "$models" in - *small*) case "$small" in - '') dflt='none';; - *) dflt="$small";; - esac - rp="What flag indicates small model?" - . ./myread - tans="$ans" - case "$tans" in - none) tans=''; - esac - small="$tans";; - *) small='';; - esac - ;; - *) - echo "Unrecognized memory models--you may have to edit Makefile.SH" >&4 - ;; - esac - $rm -f pdp11.* pdp11 - : make some quick guesses about what we are up against echo " " $echo $n "Hmm... $c" --- 2893,2898 ---- *************** *** 2937,2943 **** then echo "Looks kind of like an OSF/1 system, but we'll see..." echo exit 0 >osf1 ! elif test `echo abc | tr a-z A-Z` = Abc ; then xxx=`./loc addbib blurfl $pth` if $test -f $xxx; then echo "Looks kind of like a USG system with BSD features, but we'll see..." --- 2910,2916 ---- then echo "Looks kind of like an OSF/1 system, but we'll see..." echo exit 0 >osf1 ! elif test `echo abc | $tr a-z A-Z` = Abc ; then xxx=`./loc addbib blurfl $pth` if $test -f $xxx; then echo "Looks kind of like a USG system with BSD features, but we'll see..." *************** *** 2976,2987 **** --- 2949,2963 ---- ;; esac : Detect OS2. The p_ variable is set above in the Head.U unit. + : Note that this also -- wrongly -- detects e.g. dos-djgpp, which also uses + : semicolon as a patch separator case "$p_" in :) ;; *) $cat <<'EOI' I have the feeling something is not exactly right, however...don't tell me... lemme think...does HAL ring a bell?...no, of course, you're only running OS/2! + (Or you may be running DOS with DJGPP.) EOI echo exit 0 >os2 ;; *************** *** 3012,3068 **** $eunicefix bsd usg v7 osf1 eunice xenix venix os2 $rm -f foo ! : see if we need a special compiler ! echo " " ! if ./usg; then ! case "$cc" in ! '') case "$Mcc" in ! /*) dflt='Mcc';; ! *) case "$large" in ! -M*) dflt='cc';; ! *) if $contains '\-M' $sysman/cc.1 >/dev/null 2>&1 ; then ! if $contains '\-M' $sysman/cpp.1 >/dev/null 2>&1; then ! dflt='cc' ! else ! dflt='cc -M' ! fi ! else ! dflt='cc' ! fi;; ! esac;; ! esac;; ! *) dflt="$cc";; ! esac ! case "$dflt" in ! *M*) $cat <<'EOM' ! On some older systems the default C compiler will not resolve multiple global ! references that happen to have the same name. On some such systems the "Mcc" ! command may be used to force these to be resolved. On other systems a "cc -M" ! command is required. (Note that the -M flag on other systems indicates a ! memory model to use!) If you have the Gnu C compiler, you might wish to use ! that instead. ! ! EOM ! ;; ! esac ! rp="Use which C compiler?" ! . ./myread ! cc="$ans" ! else ! case "$cc" in ! '') dflt=cc;; ! *) dflt="$cc";; ! esac ! rp="Use which C compiler?" ! . ./myread ! cc="$ans" ! fi : Look for a hint-file generated 'call-back-unit'. Now that the : user has specified the compiler, we may need to set or change some : other defaults. if $test -f cc.cbu; then . ./cc.cbu fi echo " " echo "Checking for GNU cc in disguise and/or its version number..." >&4 $cat >gccvers.c <&4 $cat >gccvers.c <filexp <&2 ! exit 1 ! fi ! case "\$1" in ! */*) ! echo \$dir/\`$expr x\$1 : '..[^/]*/\(.*\)'\` ! ;; ! *) ! echo \$dir ! ;; ! esac fi ! ;; ! *) ! echo \$1 ! ;; ! esac ! EOSS ! chmod +x filexp ! $eunicefix filexp ! ! : now set up to get a file name ! cat <getfile ! $startsh ! EOS ! cat <<'EOSC' >>getfile ! tilde='' ! fullpath='' ! already='' ! skip='' ! none_ok='' ! exp_file='' ! nopath_ok='' ! orig_rp="$rp" ! orig_dflt="$dflt" ! case "$gfpth" in ! '') gfpth='.' ;; ! esac ! ! case "$fn" in ! *\(*) ! expr $fn : '.*(\(.*\)).*' | tr ',' $trnl >getfile.ok ! fn=`echo $fn | sed 's/(.*)//'` ! ;; ! esac ! case "$fn" in ! *:*) ! loc_file=`expr $fn : '.*:\(.*\)'` ! fn=`expr $fn : '\(.*\):.*'` ! ;; ! esac case "$fn" in ! *~*) tilde=true;; ! esac ! case "$fn" in */*) fullpath=true;; esac case "$fn" in --- 3041,3311 ---- case "$gccversion" in 1*) cpp=`./loc gcc-cpp $cpp $pth` ;; esac + case "$gccversion" in + '') gccosandvers='' ;; + *) gccshortvers=`echo "$gccversion"|sed 's/ .*//'` + gccosandvers=`$cc -v 2>&1|grep '/specs$'|sed "s!.*/[^-/]*-[^-/]*-\([^-/]*\)/$gccshortvers/specs!\1!"` + gccshortvers='' + case "$gccosandvers" in + $osname) gccosandvers='' ;; # linux gccs seem to have no linux osvers, grr + $osname$osvers) ;; # looking good + $osname*) cat <&4 + + *** WHOA THERE!!! *** + + Your gcc has not been compiled for the exact release of + your operating system ($gccosandvers versus $osname$osvers). + + In general it is a good idea to keep gcc synchronized with + the operating system because otherwise serious problems + may ensue when trying to compile software, like Perl. + + I'm trying to be optimistic here, though, and will continue. + If later during the configuration and build icky compilation + problems appear (headerfile conflicts being the most common + manifestation), I suggest reinstalling the gcc to match + your operating system release. ! EOM ! ;; ! *) gccosandvers='' ;; # failed to parse, better be silent ! esac ! ;; ! esac ! case "$ccname" in ! '') ccname="$cc" ;; esac ! : see how we invoke the C preprocessor ! echo " " ! echo "Now, how can we feed standard input to your C preprocessor..." >&4 ! cat <<'EOT' >testcpp.c ! #define ABC abc ! #define XYZ xyz ! ABC.XYZ ! EOT ! cd .. ! if test ! -f cppstdin; then ! if test "X$osname" = "Xaix" -a "X$gccversion" = X; then ! # AIX cc -E doesn't show the absolute headerfile ! # locations but we'll cheat by using the -M flag. ! echo 'cat >.$$.c; rm -f .$$.u; '"$cc"' ${1+"$@"} -M -c .$$.c 2>/dev/null; test -s .$$.u && awk '"'"'$2 ~ /\.h$/ { print "# 0 \""$2"\"" }'"'"' .$$.u; rm -f .$$.o .$$.u; '"$cc"' -E ${1+"$@"} .$$.c; rm .$$.c' > cppstdin else ! echo 'cat >.$$.c; '"$cc"' -E ${1+"$@"} .$$.c; rm .$$.c' >cppstdin fi ! else ! echo "Keeping your $hint cppstdin wrapper." ! fi ! chmod 755 cppstdin ! wrapper=`pwd`/cppstdin ! ok='false' ! cd UU ! if $test "X$cppstdin" != "X" && \ ! $cppstdin $cppminus testcpp.out 2>&1 && \ ! $contains 'abc.*xyz' testcpp.out >/dev/null 2>&1 ! then ! echo "You used to use $cppstdin $cppminus so we'll use that again." ! case "$cpprun" in ! '') echo "But let's see if we can live without a wrapper..." ;; ! *) ! if $cpprun $cpplast testcpp.out 2>&1 && \ ! $contains 'abc.*xyz' testcpp.out >/dev/null 2>&1 ! then ! echo "(And we'll use $cpprun $cpplast to preprocess directly.)" ! ok='true' ! else ! echo "(However, $cpprun $cpplast does not work, let's see...)" ! fi ! ;; ! esac ! else ! case "$cppstdin" in ! '') ;; ! *) ! echo "Good old $cppstdin $cppminus does not seem to be of any help..." ! ;; ! esac ! fi ! ! if $ok; then ! : nothing ! elif echo 'Maybe "'"$cc"' -E" will work...'; \ ! $cc -E testcpp.out 2>&1; \ ! $contains 'abc.*xyz' testcpp.out >/dev/null 2>&1 ; then ! echo "Yup, it does." ! x_cpp="$cc -E" ! x_minus=''; ! elif echo 'Nope...maybe "'"$cc"' -E -" will work...'; \ ! $cc -E - testcpp.out 2>&1; \ ! $contains 'abc.*xyz' testcpp.out >/dev/null 2>&1 ; then ! echo "Yup, it does." ! x_cpp="$cc -E" ! x_minus='-'; ! elif echo 'Nope...maybe "'"$cc"' -P" will work...'; \ ! $cc -P testcpp.out 2>&1; \ ! $contains 'abc.*xyz' testcpp.out >/dev/null 2>&1 ; then ! echo "Yipee, that works!" ! x_cpp="$cc -P" ! x_minus=''; ! elif echo 'Nope...maybe "'"$cc"' -P -" will work...'; \ ! $cc -P - testcpp.out 2>&1; \ ! $contains 'abc.*xyz' testcpp.out >/dev/null 2>&1 ; then ! echo "At long last!" ! x_cpp="$cc -P" ! x_minus='-'; ! elif echo 'No such luck, maybe "'$cpp'" will work...'; \ ! $cpp testcpp.out 2>&1; \ ! $contains 'abc.*xyz' testcpp.out >/dev/null 2>&1 ; then ! echo "It works!" ! x_cpp="$cpp" ! x_minus=''; ! elif echo 'Nixed again...maybe "'$cpp' -" will work...'; \ ! $cpp - testcpp.out 2>&1; \ ! $contains 'abc.*xyz' testcpp.out >/dev/null 2>&1 ; then ! echo "Hooray, it works! I was beginning to wonder." ! x_cpp="$cpp" ! x_minus='-'; ! elif echo 'Uh-uh. Time to get fancy. Trying a wrapper...'; \ ! $wrapper testcpp.out 2>&1; \ ! $contains 'abc.*xyz' testcpp.out >/dev/null 2>&1 ; then ! x_cpp="$wrapper" ! x_minus='' ! echo "Eureka!" ! else ! dflt='' ! rp="No dice. I can't find a C preprocessor. Name one:" ! . ./myread ! x_cpp="$ans" ! x_minus='' ! $x_cpp testcpp.out 2>&1 ! if $contains 'abc.*xyz' testcpp.out >/dev/null 2>&1 ; then ! echo "OK, that will do." >&4 ! else ! echo "Sorry, I can't get that to work. Go find one and rerun Configure." >&4 ! exit 1 ! fi ! fi ! ! case "$ok" in ! false) ! cppstdin="$x_cpp" ! cppminus="$x_minus" ! cpprun="$x_cpp" ! cpplast="$x_minus" ! set X $x_cpp ! shift ! case "$1" in ! "$cpp") ! echo "Perhaps can we force $cc -E using a wrapper..." ! if $wrapper testcpp.out 2>&1; \ ! $contains 'abc.*xyz' testcpp.out >/dev/null 2>&1 ! then ! echo "Yup, we can." ! cppstdin="$wrapper" ! cppminus=''; ! else ! echo "Nope, we'll have to live without it..." ! fi ! ;; ! esac ! case "$cpprun" in ! "$wrapper") ! cpprun='' ! cpplast='' ! ;; ! esac ! ;; ! esac ! ! case "$cppstdin" in ! "$wrapper"|'cppstdin') ;; ! *) $rm -f $wrapper;; ! esac ! $rm -f testcpp.c testcpp.out ! ! : decide how portable to be. Allow command line overrides. ! case "$d_portable" in ! "$undef") ;; ! *) d_portable="$define" ;; ! esac ! ! : set up shell script to do ~ expansion ! cat >filexp <&2 ! exit 1 ! fi ! case "\$1" in ! */*) ! echo \$dir/\`$expr x\$1 : '..[^/]*/\(.*\)'\` ! ;; ! *) ! echo \$dir ! ;; ! esac ! fi ! ;; ! *) ! echo \$1 ! ;; ! esac ! EOSS ! chmod +x filexp ! $eunicefix filexp ! ! : now set up to get a file name ! cat <getfile ! $startsh ! EOS ! cat <<'EOSC' >>getfile ! tilde='' ! fullpath='' ! already='' ! skip='' ! none_ok='' ! exp_file='' ! nopath_ok='' ! orig_rp="$rp" ! orig_dflt="$dflt" ! case "$gfpth" in ! '') gfpth='.' ;; ! esac case "$fn" in ! *\(*) ! expr $fn : '.*(\(.*\)).*' | $tr ',' $trnl >getfile.ok ! fn=`echo $fn | sed 's/(.*)//'` ! ;; ! esac ! ! case "$fn" in ! *:*) ! loc_file=`expr $fn : '.*:\(.*\)'` ! fn=`expr $fn : '\(.*\):.*'` ! ;; ! esac ! ! case "$fn" in ! *~*) tilde=true;; ! esac ! case "$fn" in */*) fullpath=true;; esac case "$fn" in *************** *** 3266,3271 **** --- 3389,3395 ---- true) case "$ansexp" in /*) value="$ansexp" ;; + [a-zA-Z]:/*) value="$ansexp" ;; *) redo=true case "$already" in *************** *** 3393,3399 **** /bsd43 #endif EOCP ! if $cc -E usr.c > usr.out && $contains / usr.out >/dev/null 2>&1; then dflt='/bsd43/usr/include' incpath='/bsd43' mips_type='BSD 4.3' --- 3517,3523 ---- /bsd43 #endif EOCP ! if cc -E usr.c > usr.out && $contains / usr.out >/dev/null 2>&1; then dflt='/bsd43/usr/include' incpath='/bsd43' mips_type='BSD 4.3' *************** *** 3426,3637 **** ;; esac ! : see how we invoke the C preprocessor ! echo " " ! echo "Now, how can we feed standard input to your C preprocessor..." >&4 ! cat <<'EOT' >testcpp.c ! #define ABC abc ! #define XYZ xyz ! ABC.XYZ ! EOT ! cd .. ! if test ! -f cppstdin; then ! if test "X$osname" = "Xaix" -a "X$gccversion" = X; then ! # AIX cc -E doesn't show the absolute headerfile ! # locations but we'll cheat by using the -M flag. ! echo 'cat >.$$.c; rm -f .$$.u; '"$cc"' ${1+"$@"} -M -c .$$.c 2>/dev/null; test -s .$$.u && awk '"'"'$2 ~ /\.h$/ { print "# 0 \""$2"\"" }'"'"' .$$.u; rm -f .$$.o .$$.u; '"$cc"' -E ${1+"$@"} .$$.c; rm .$$.c' > cppstdin else ! echo 'cat >.$$.c; '"$cc"' -E ${1+"$@"} .$$.c; rm .$$.c' >cppstdin fi ! else ! echo "Keeping your $hint cppstdin wrapper." ! fi ! chmod 755 cppstdin ! wrapper=`pwd`/cppstdin ! ok='false' ! cd UU ! ! if $test "X$cppstdin" != "X" && \ ! $cppstdin $cppminus testcpp.out 2>&1 && \ ! $contains 'abc.*xyz' testcpp.out >/dev/null 2>&1 ! then ! echo "You used to use $cppstdin $cppminus so we'll use that again." ! case "$cpprun" in ! '') echo "But let's see if we can live without a wrapper..." ;; ! *) ! if $cpprun $cpplast testcpp.out 2>&1 && \ ! $contains 'abc.*xyz' testcpp.out >/dev/null 2>&1 ! then ! echo "(And we'll use $cpprun $cpplast to preprocess directly.)" ! ok='true' ! else ! echo "(However, $cpprun $cpplast does not work, let's see...)" ! fi ! ;; ! esac ! else ! case "$cppstdin" in ! '') ;; ! *) ! echo "Good old $cppstdin $cppminus does not seem to be of any help..." ! ;; ! esac ! fi ! ! if $ok; then ! : nothing ! elif echo 'Maybe "'"$cc"' -E" will work...'; \ ! $cc -E testcpp.out 2>&1; \ ! $contains 'abc.*xyz' testcpp.out >/dev/null 2>&1 ; then ! echo "Yup, it does." ! x_cpp="$cc -E" ! x_minus=''; ! elif echo 'Nope...maybe "'"$cc"' -E -" will work...'; \ ! $cc -E - testcpp.out 2>&1; \ ! $contains 'abc.*xyz' testcpp.out >/dev/null 2>&1 ; then ! echo "Yup, it does." ! x_cpp="$cc -E" ! x_minus='-'; ! elif echo 'Nope...maybe "'"$cc"' -P" will work...'; \ ! $cc -P testcpp.out 2>&1; \ ! $contains 'abc.*xyz' testcpp.out >/dev/null 2>&1 ; then ! echo "Yipee, that works!" ! x_cpp="$cc -P" ! x_minus=''; ! elif echo 'Nope...maybe "'"$cc"' -P -" will work...'; \ ! $cc -P - testcpp.out 2>&1; \ ! $contains 'abc.*xyz' testcpp.out >/dev/null 2>&1 ; then ! echo "At long last!" ! x_cpp="$cc -P" ! x_minus='-'; ! elif echo 'No such luck, maybe "'$cpp'" will work...'; \ ! $cpp testcpp.out 2>&1; \ ! $contains 'abc.*xyz' testcpp.out >/dev/null 2>&1 ; then ! echo "It works!" ! x_cpp="$cpp" ! x_minus=''; ! elif echo 'Nixed again...maybe "'$cpp' -" will work...'; \ ! $cpp - testcpp.out 2>&1; \ ! $contains 'abc.*xyz' testcpp.out >/dev/null 2>&1 ; then ! echo "Hooray, it works! I was beginning to wonder." ! x_cpp="$cpp" ! x_minus='-'; ! elif echo 'Uh-uh. Time to get fancy. Trying a wrapper...'; \ ! $wrapper testcpp.out 2>&1; \ ! $contains 'abc.*xyz' testcpp.out >/dev/null 2>&1 ; then ! x_cpp="$wrapper" ! x_minus='' ! echo "Eureka!" ! else ! dflt='' ! rp="No dice. I can't find a C preprocessor. Name one:" ! . ./myread ! x_cpp="$ans" ! x_minus='' ! $x_cpp testcpp.out 2>&1 ! if $contains 'abc.*xyz' testcpp.out >/dev/null 2>&1 ; then ! echo "OK, that will do." >&4 ! else ! echo "Sorry, I can't get that to work. Go find one and rerun Configure." >&4 ! exit 1 ! fi ! fi ! ! case "$ok" in ! false) ! cppstdin="$x_cpp" ! cppminus="$x_minus" ! cpprun="$x_cpp" ! cpplast="$x_minus" ! set X $x_cpp ! shift ! case "$1" in ! "$cpp") ! echo "Perhaps can we force $cc -E using a wrapper..." ! if $wrapper testcpp.out 2>&1; \ ! $contains 'abc.*xyz' testcpp.out >/dev/null 2>&1 ! then ! echo "Yup, we can." ! cppstdin="$wrapper" ! cppminus=''; ! else ! echo "Nope, we'll have to live without it..." ! fi ! ;; ! esac ! case "$cpprun" in ! "$wrapper") ! cpprun='' ! cpplast='' ! ;; ! esac ! ;; ! esac ! ! case "$cppstdin" in ! "$wrapper"|'cppstdin') ;; ! *) $rm -f $wrapper;; ! esac ! $rm -f testcpp.c testcpp.out ! ! : Set private lib path ! case "$plibpth" in ! '') if ./mips; then ! plibpth="$incpath/usr/lib /usr/local/lib /usr/ccs/lib" ! fi;; ! esac ! case "$libpth" in ! ' ') dlist='';; ! '') dlist="$loclibpth $plibpth $glibpth";; ! *) dlist="$libpth";; ! esac ! ! : Now check and see which directories actually exist, avoiding duplicates ! libpth='' ! for xxx in $dlist ! do ! if $test -d $xxx; then ! case " $libpth " in ! *" $xxx "*) ;; ! *) libpth="$libpth $xxx";; ! esac ! fi ! done ! $cat <<'EOM' ! ! Some systems have incompatible or broken versions of libraries. Among ! the directories listed in the question below, please remove any you ! know not to be holding relevant libraries, and add any that are needed. ! Say "none" for none. ! ! EOM ! case "$libpth" in ! '') dflt='none';; ! *) ! set X $libpth ! shift ! dflt=${1+"$@"} ! ;; ! esac ! rp="Directories to use for library searches?" ! . ./myread ! case "$ans" in ! none) libpth=' ';; ! *) libpth="$ans";; ! esac ! ! : compute shared library extension ! case "$so" in ! '') ! if xxx=`./loc libc.sl X $libpth`; $test -f "$xxx"; then ! dflt='sl' ! else ! dflt='so' ! fi ! ;; ! *) dflt="$so";; ! esac ! $cat < int main() { printf("Ok\n"); exit(0); } EOF ! set X $cc $optimize $ccflags -o try $ldflags try.c $libs shift $cat >try.msg <<'EOM' I've tried to compile and run the following simple program: --- 4026,4032 ---- #include int main() { printf("Ok\n"); exit(0); } EOF ! set X $cc -o try $optimize $ccflags $ldflags try.c $libs shift $cat >try.msg <<'EOM' I've tried to compile and run the following simple program: *************** *** 4068,4074 **** EOM dflt=y ! if sh -c "$cc $optimize $ccflags -o try $ldflags try.c $libs" >>try.msg 2>&1; then if sh -c './try' >>try.msg 2>&1; then xxx=`./try` case "$xxx" in --- 4045,4051 ---- EOM dflt=y ! if sh -c "$cc -o try $optimize $ccflags $ldflags try.c $libs" >>try.msg 2>&1; then if sh -c './try' >>try.msg 2>&1; then xxx=`./try` case "$xxx" in *************** *** 4180,4191 **** compile=' mc_file=$1; shift; ! $cc $optimize $ccflags $ldflags -o ${mc_file} $* ${mc_file}.c $libs > /dev/null 2>&1;' : define a shorthand compile call for compilations that should be ok. compile_ok=' mc_file=$1; shift; ! $cc $optimize $ccflags $ldflags -o ${mc_file} $* ${mc_file}.c $libs;' : check for lengths of integral types echo " " --- 4157,4168 ---- compile=' mc_file=$1; shift; ! $cc -o ${mc_file} $optimize $ccflags $ldflags $* ${mc_file}.c $libs > /dev/null 2>&1;' : define a shorthand compile call for compilations that should be ok. compile_ok=' mc_file=$1; shift; ! $cc -o ${mc_file} $optimize $ccflags $ldflags $* ${mc_file}.c $libs;' : check for lengths of integral types echo " " *************** *** 4590,6100 **** ;; esac - : determine the architecture name echo " " ! if xxx=`./loc arch blurfl $pth`; $test -f "$xxx"; then ! tarch=`arch`"-$osname" ! elif xxx=`./loc uname blurfl $pth`; $test -f "$xxx" ; then ! if uname -m > tmparch 2>&1 ; then ! tarch=`$sed -e 's/ *$//' -e 's/ /_/g' \ ! -e 's/$/'"-$osname/" tmparch` ! else ! tarch="$osname" ! fi ! $rm -f tmparch else ! tarch="$osname" fi ! case "$myarchname" in ! ''|"$tarch") ;; *) ! echo "(Your architecture name used to be $myarchname.)" ! archname='' ;; esac ! myarchname="$tarch" ! case "$archname" in ! '') dflt="$tarch";; ! *) dflt="$archname";; ! esac ! rp='What is your architecture name' . ./myread ! archname="$ans" ! case "$usethreads" in ! $define) ! echo "Threads selected." >&4 ! case "$archname" in ! *-thread*) echo "...and architecture name already has -thread." >&4 ! ;; ! *) archname="$archname-thread" ! echo "...setting architecture name to $archname." >&4 ! ;; ! esac ! ;; esac ! case "$usemultiplicity" in ! $define) ! echo "Multiplicity selected." >&4 ! case "$archname" in ! *-multi*) echo "...and architecture name already has -multi." >&4 ! ;; ! *) archname="$archname-multi" ! echo "...setting architecture name to $archname." >&4 ! ;; ! esac ! ;; esac ! case "$use64bitint" in ! $define) ! case "$archname64" in ! '') ! ;; ! *) ! case "$archname" in ! *-$archname64*) echo "...and architecture name already has $archname64." >&4 ! ;; ! *) archname="$archname-$archname64" ! echo "...setting architecture name to $archname." >&4 ! ;; ! esac ;; esac esac ! : determine root of directory hierarchy where package will be installed. ! case "$prefix" in ! '') ! dflt=`./loc . /usr/local /usr/local /local /opt /usr` ! ;; ! *) ! dflt="$prefix" ;; esac ! $cat <&4 else ! echo "AFS does not seem to be running..." >&4 fi ! : determine installation prefix for where package is to be installed. ! if $afs; then ! $cat <&4 ! if $test -r $rsrc/patchlevel.h;then ! revision=`awk '/define[ ]+PERL_REVISION/ {print $3}' $rsrc/patchlevel.h` ! patchlevel=`awk '/define[ ]+PERL_VERSION/ {print $3}' $rsrc/patchlevel.h` ! subversion=`awk '/define[ ]+PERL_SUBVERSION/ {print $3}' $rsrc/patchlevel.h` ! api_revision=`awk '/define[ ]+PERL_API_REVISION/ {print $3}' $rsrc/patchlevel.h` ! api_version=`awk '/define[ ]+PERL_API_VERSION/ {print $3}' $rsrc/patchlevel.h` ! api_subversion=`awk '/define[ ]+PERL_API_SUBVERSION/ {print $3}' $rsrc/patchlevel.h` ! else ! revision=0 ! patchlevel=0 ! subversion=0 ! api_revision=0 ! api_version=0 ! api_subversion=0 ! fi ! $echo $n "(You have $package revision $revision" $c ! $echo $n " patchlevel $patchlevel" $c ! test 0 -eq "$subversion" || $echo $n " subversion $subversion" $c ! echo ".)" ! case "$osname" in ! dos|vms) ! : XXX Should be a Configure test for double-dots in filenames. ! version=`echo $revision $patchlevel $subversion | \ ! $awk '{ printf "%d_%d_%d\n", $1, $2, $3 }'` ! api_versionstring=`echo $api_revision $api_version $api_subversion | \ ! $awk '{ printf "%d_%d_%d\n", $1, $2, $3 }'` ! ;; ! *) ! version=`echo $revision $patchlevel $subversion | \ ! $awk '{ printf "%d.%d.%d\n", $1, $2, $3 }'` ! api_versionstring=`echo $api_revision $api_version $api_subversion | \ ! $awk '{ printf "%d.%d.%d\n", $1, $2, $3 }'` ! ;; ! esac ! : Special case the 5.005_xx maintenance series, which used 5.005 ! : without any subversion label as a subdirectory in $sitelib ! if test "${api_revision}${api_version}${api_subversion}" = "550"; then ! api_versionstring='5.005' ! fi ! : determine installation style ! : For now, try to deduce it from prefix unless it is already set. ! : Reproduce behavior of 5.005 and earlier, maybe drop that in 5.7. ! case "$installstyle" in ! '') case "$prefix" in ! *perl*) dflt='lib';; ! *) dflt='lib/perl5' ;; esac ! ;; ! *) dflt="$installstyle" ;; ! esac ! : Probably not worth prompting for this since we prompt for all ! : the directories individually, and the prompt would be too long and ! : confusing anyway. ! installstyle=$dflt ! ! : determine where private library files go ! : Usual default is /usr/local/lib/perl5/$version. ! : Also allow things like /opt/perl/lib/$version, since ! : /opt/perl/lib/perl5... would be redundant. ! : The default "style" setting is made in installstyle.U ! case "$installstyle" in ! *lib/perl5*) set dflt privlib lib/$package/$version ;; ! *) set dflt privlib lib/$version ;; ! esac ! eval $prefixit ! $cat <reflect ! chmod +x,u+s reflect ! ./reflect >flect 2>&1 ! if $contains "/dev/fd" flect >/dev/null; then ! echo "Congratulations, your kernel has secure setuid scripts!" >&4 ! val="$define" else $cat <&4 - dflt=n;; - "$undef") - echo "Well, the $hint value is *not* secure." >&4 - dflt=n;; - *) echo "Well, the $hint value *is* secure." >&4 - dflt=y;; - esac - ;; - *) - $rm -f reflect flect - echo "#!$ls" >reflect - chmod +x,u+s reflect - echo >flect - chmod a+w flect - echo '"su" will (probably) prompt you for '"$ans's password." - su $ans -c './reflect >flect' - if $contains "/dev/fd" flect >/dev/null; then - echo "Okay, it looks like setuid scripts are secure." >&4 - dflt=y - else - echo "I don't think setuid scripts are secure." >&4 - dflt=n - fi - ;; - esac - rp='Does your kernel have *secure* setuid scripts?' - . ./myread - case "$ans" in - [yY]*) val="$define";; - *) val="$undef";; - esac fi ! else ! echo "I don't think setuid scripts are secure (no /dev/fd directory)." >&4 ! echo "(That's for file descriptors, not floppy disks.)" ! val="$undef" ! fi ! set d_suidsafe ! eval $setvar ! $rm -f reflect flect ! : now see if they want to do setuid emulation ! echo " " ! val="$undef" ! case "$d_suidsafe" in ! "$define") ! val="$undef" ! echo "No need to emulate SUID scripts since they are secure here." >& 4 ! ;; ! *) ! $cat <&4 ! echo '#include ' > foo.c ! $cat >fieldn </dev/null | \ ! $grep '^[ ]*#.*stdio\.h' | \ ! while read cline; do ! pos=1 ! set \$cline ! while $test \$# -gt 0; do ! if $test -r \`echo \$1 | $tr -d '"'\`; then ! echo "\$pos" ! exit 0 ! fi ! shift ! pos=\`expr \$pos + 1\` ! done ! done ! EOF ! chmod +x fieldn ! fieldn=`./fieldn` ! $rm -f foo.c fieldn ! case $fieldn in ! '') pos='???';; ! 1) pos=first;; ! 2) pos=second;; ! 3) pos=third;; ! *) pos="${fieldn}th";; ! esac ! echo "Your cpp writes the filename in the $pos field of the line." ! ! : locate header file ! $cat >findhdr <" > foo\$\$.c - $cppstdin $cppminus $cppflags < foo\$\$.c 2>/dev/null | \ - $grep "^[ ]*#.*\$wanted" | \ - while read cline; do - name=\`echo \$cline | $awk "\$awkprg" | $tr -d '"'\` - case "\$name" in - *[/\\\\]\$wanted) echo "\$name"; exit 1;; - *[\\\\/]\$wanted) echo "\$name"; exit 1;; - *) exit 2;; - esac; - done; - # - # status = 0: grep returned 0 lines, case statement not executed - # status = 1: headerfile found - # status = 2: while loop executed, no headerfile found - # - status=\$? - $rm -f foo\$\$.c; - if test \$status -eq 1; then - exit 0; - fi - exit 1 - EOF - chmod +x findhdr - - : define an alternate in-header-list? function - inhdr='echo " "; td=$define; tu=$undef; yyy=$@; - cont=true; xxf="echo \"<\$1> found.\" >&4"; - case $# in 2) xxnf="echo \"<\$1> NOT found.\" >&4";; - *) xxnf="echo \"<\$1> NOT found, ...\" >&4";; - esac; - case $# in 4) instead=instead;; *) instead="at last";; esac; - while $test "$cont"; do - xxx=`./findhdr $1` - var=$2; eval "was=\$$2"; - if $test "$xxx" && $test -r "$xxx"; - then eval $xxf; - eval "case \"\$$var\" in $undef) . ./whoa; esac"; eval "$var=\$td"; - cont=""; - else eval $xxnf; - eval "case \"\$$var\" in $define) . ./whoa; esac"; eval "$var=\$tu"; fi; - set $yyy; shift; shift; yyy=$@; - case $# in 0) cont="";; - 2) xxf="echo \"but I found <\$1> $instead.\" >&4"; - xxnf="echo \"and I did not find <\$1> either.\" >&4";; - *) xxf="echo \"but I found <\$1\> instead.\" >&4"; - xxnf="echo \"there is no <\$1>, ...\" >&4";; - esac; - done; - while $test "$yyy"; - do set $yyy; var=$2; eval "was=\$$2"; - eval "case \"\$$var\" in $define) . ./whoa; esac"; eval "$var=\$tu"; - set $yyy; shift; shift; yyy=$@; - done' - - : see if this is a malloc.h system - set malloc.h i_malloc - eval $inhdr - - : see if stdlib is available - set stdlib.h i_stdlib - eval $inhdr - - : determine which malloc to compile in - echo " " - case "$usemymalloc" in - ''|[yY]*|true|$define) dflt='y' ;; - *) dflt='n' ;; - esac - rp="Do you wish to attempt to use the malloc that comes with $package?" - . ./myread - usemymalloc="$ans" - case "$ans" in - y*|true) - usemymalloc='y' - mallocsrc='malloc.c' - mallocobj="malloc$_o" - d_mymalloc="$define" - case "$libs" in - *-lmalloc*) - : Remove malloc from list of libraries to use - echo "Removing unneeded -lmalloc from library list" >&4 - set `echo X $libs | $sed -e 's/-lmalloc / /' -e 's/-lmalloc$//'` - shift - libs="$*" - echo "libs = $libs" >&4 - ;; - esac - ;; - *) - usemymalloc='n' - mallocsrc='' - mallocobj='' - d_mymalloc="$undef" ;; esac ! : compute the return types of malloc and free echo " " ! $cat >malloc.c < ! #include ! #ifdef I_MALLOC ! #include ! #endif ! #ifdef I_STDLIB ! #include ! #endif ! #ifdef TRY_MALLOC ! void *malloc(); ! #endif ! #ifdef TRY_FREE ! void free(); ! #endif ! END ! case "$malloctype" in ! '') ! if $cc $ccflags -c -DTRY_MALLOC malloc.c >/dev/null 2>&1; then ! malloctype='void *' else ! malloctype='char *' fi ;; esac ! echo "Your system wants malloc to return '$malloctype', it would seem." >&4 ! case "$freetype" in ! '') ! if $cc $ccflags -c -DTRY_FREE malloc.c >/dev/null 2>&1; then ! freetype='void' else ! freetype='int' fi ;; esac ! echo "Your system uses $freetype free(), it would seem." >&4 ! $rm -f malloc.[co] ! $cat <&4 ! $cat >prototype.c <<'EOCP' ! int main(int argc, char *argv[]) { ! exit(0);} ! EOCP ! if $cc $ccflags -c prototype.c >prototype.out 2>&1 ; then ! echo "Your C compiler appears to support function prototypes." ! val="$define" else ! echo "Your C compiler doesn't seem to understand function prototypes." ! val="$undef" fi - set prototype - eval $setvar - $rm -f prototype* ! case "$prototype" in ! "$define") ;; ! *) ansi2knr='ansi2knr' ! echo " " ! cat <&4 ! $me: FATAL ERROR: ! This version of $package can only be compiled by a compiler that ! understands function prototypes. Unfortunately, your C compiler ! $cc $ccflags ! doesn't seem to understand them. Sorry about that. ! If GNU cc is available for your system, perhaps you could try that instead. ! Eventually, we hope to support building Perl with pre-ANSI compilers. ! If you would like to help in that effort, please contact . - Aborting Configure now. EOM ! exit 2 ! ;; ! esac ! ! : determine where public executables go ! echo " " ! set dflt bin bin ! eval $prefixit fn=d~ ! rp='Pathname where the public executables will reside?' . ./getfile ! if $test "X$ansexp" != "X$binexp"; then ! installbin='' ! fi ! bin="$ans" ! binexp="$ansexp" ! : Change installation prefix, if necessary. ! : XXX Bug? -- ignores Configure -Dinstallprefix setting. ! if $test X"$prefix" != X"$installprefix"; then ! installbin=`echo $binexp | sed "s#^$prefix#$installprefix#"` else ! installbin="$binexp" fi ! ! : Find perl5.005 or later. ! echo "Looking for a previously installed perl5.005 or later... " ! case "$perl5" in ! '') for tdir in `echo "$binexp:$PATH" | $sed "s/$path_sep/ /g"`; do ! : Check if this perl is recent and can load a simple module ! if $test -x $tdir/perl && $tdir/perl -Mless -e 'use 5.005;' >/dev/null 2>&1; then ! perl5=$tdir/perl ! break; ! elif $test -x $tdir/perl5 && $tdir/perl5 -Mless -e 'use 5.005;' >/dev/null 2>&1; then ! perl5=$tdir/perl ! break; ! fi ! done ;; ! *) perl5="$perl5" ;; esac ! case "$perl5" in ! '') echo "None found. That's ok.";; ! *) echo "Using $perl5." ;; esac $cat < getverlist <> getverlist <<'EOPL' - # Can't have leading @ because metaconfig interprets it as a command! - ;@inc_version_list=(); - $stem=dirname($sitelib); - # XXX Redo to do opendir/readdir? - if (-d $stem) { - chdir($stem); - ;@candidates = glob("5.*"); - } - else { - ;@candidates = (); - } ! # XXX ToDo: These comparisons must be reworked when two-digit ! # subversions come along, so that 5.7.10 compares as greater than ! # 5.7.3! By that time, hope that 5.6.x is sufficiently ! # widespread that we can use the built-in version vectors rather ! # than reinventing them here. For 5.6.0, however, we must ! # assume this script will likely be run by 5.005_0x. --AD 1/2000. ! foreach $d (@candidates) { ! if ($d lt $version) { ! if ($d ge $api_versionstring) { ! unshift(@inc_version_list, grep { -d } "$d/$archname", $d); ! } ! elsif ($d ge "5.005") { ! unshift(@inc_version_list, grep { -d } $d); ! } ! } ! else { ! # Skip newer version. I.e. don't look in ! # 5.7.0 if we're installing 5.6.1. ! } ! } ! ! if (@inc_version_list) { ! print join(' ', @inc_version_list); ! } ! else { ! # Blank space to preserve value for next Configure run. ! print " "; ! } ! EOPL ! chmod +x getverlist ! case "$inc_version_list" in ! '') if test -x "$perl5"; then ! dflt=`$perl5 getverlist` ! else ! dflt='none' ! fi ! ;; ! $undef) dflt='none' ;; ! *) dflt="$inc_version_list" ;; ! esac ! case "$dflt" in ! ''|' ') dflt=none ;; ! esac ! $cat <<'EOM' ! ! In order to ease the process of upgrading, this version of perl ! can be configured to use modules built and installed with earlier ! versions of perl that were installed under $prefix. Specify here ! the list of earlier versions that this version of perl should check. ! If Configure detected no earlier versions of perl installed under ! $prefix, then the list will be empty. Answer 'none' to tell perl ! to not search earlier versions. ! ! The default should almost always be sensible, so if you're not sure, ! just accept the default. ! EOM ! ! rp='List of earlier versions to include in @INC?' ! . ./myread ! case "$ans" in ! [Nn]one|''|' ') inc_version_list=' ' ;; ! *) inc_version_list="$ans" ;; ! esac ! case "$inc_version_list" in ! ''|' ') ! inc_version_list_init='0';; ! *) inc_version_list_init=`echo $inc_version_list | ! $sed -e 's/^/"/' -e 's/ /","/g' -e 's/$/",0/'` ;; ! esac ! $rm -f getverlist ! : determine whether to install perl also as /usr/bin/perl - echo " " - if $test -d /usr/bin -a "X$installbin" != X/usr/bin; then - $cat <&4 ! cat >gnulibc.c < ! int main() ! { ! #ifdef __GLIBC__ ! exit(0); ! #else ! exit(1); ! #endif ! } ! EOM ! set gnulibc ! if eval $compile_ok && ./gnulibc; then ! val="$define" ! echo "You are using the GNU C Library" ! else ! val="$undef" ! echo "You are not using the GNU C Library" ! fi ! $rm -f gnulibc* ! set d_gnulibc ! eval $setvar ! ! : see if nm is to be used to determine whether a symbol is defined or not ! case "$usenm" in ! '') ! dflt='' ! case "$d_gnulibc" in "$define") ! echo " " ! echo "nm probably won't work on the GNU C Library." >&4 ! dflt=n ! ;; ! esac ! case "$dflt" in ! '') ! if $test "$osname" = aix -a ! -f /lib/syscalls.exp; then ! echo " " ! echo "Whoops! This is an AIX system without /lib/syscalls.exp!" >&4 ! echo "'nm' won't be sufficient on this sytem." >&4 ! dflt=n ! fi ;; ! esac ! case "$dflt" in ! '') dflt=`$egrep 'inlibc|csym' $rsrc/Configure | wc -l 2>/dev/null` ! if $test $dflt -gt 20; then ! dflt=y ! else ! dflt=n ! fi ;; esac ;; - *) - case "$usenm" in - true|$define) dflt=y;; - *) dflt=n;; - esac - ;; esac $cat < /dev/null 2>&1; then ! nm_so_opt='--dynamic' ! fi ! ;; ! esac ! ;; ! esac ! case "$runnm" in ! true) ! : get list of predefined functions in a handy place ! echo " " ! case "$libc" in ! '') libc=unknown ! case "$libs" in ! *-lc_s*) libc=`./loc libc_s$_a $libc $libpth` ! esac ! ;; ! esac ! libnames=''; ! case "$libs" in ! '') ;; ! *) for thislib in $libs; do ! case "$thislib" in ! -lc|-lc_s) ! : Handle C library specially below. ! ;; ! -l*) ! thislib=`echo $thislib | $sed -e 's/^-l//'` ! if try=`./loc lib$thislib.$so.'*' X $libpth`; $test -f "$try"; then ! : ! elif try=`./loc lib$thislib.$so X $libpth`; $test -f "$try"; then ! : ! elif try=`./loc lib$thislib$_a X $libpth`; $test -f "$try"; then ! : ! elif try=`./loc $thislib$_a X $libpth`; $test -f "$try"; then ! : ! elif try=`./loc lib$thislib X $libpth`; $test -f "$try"; then ! : ! elif try=`./loc $thislib X $libpth`; $test -f "$try"; then ! : ! elif try=`./loc Slib$thislib$_a X $xlibpth`; $test -f "$try"; then ! : ! else ! try='' ! fi ! libnames="$libnames $try" ! ;; ! *) libnames="$libnames $thislib" ;; ! esac ! done ! ;; ! esac ! xxx=normal ! case "$libc" in ! unknown) ! set /lib/libc.$so ! for xxx in $libpth; do ! $test -r $1 || set $xxx/libc.$so ! : The messy sed command sorts on library version numbers. ! $test -r $1 || \ ! set `echo blurfl; echo $xxx/libc.$so.[0-9]* | \ ! tr ' ' $trnl | egrep -v '\.[A-Za-z]*$' | $sed -e ' ! h ! s/[0-9][0-9]*/0000&/g ! s/0*\([0-9][0-9][0-9][0-9][0-9]\)/\1/g ! G ! s/\n/ /' | \ ! sort | $sed -e 's/^.* //'` ! eval set \$$# ! done ! $test -r $1 || set /usr/ccs/lib/libc.$so ! $test -r $1 || set /lib/libsys_s$_a ! ;; ! *) ! set blurfl ! ;; ! esac ! if $test -r "$1"; then ! echo "Your (shared) C library seems to be in $1." ! libc="$1" ! elif $test -r /lib/libc && $test -r /lib/clib; then ! echo "Your C library seems to be in both /lib/clib and /lib/libc." ! xxx=apollo ! libc='/lib/clib /lib/libc' ! if $test -r /lib/syslib; then ! echo "(Your math library is in /lib/syslib.)" ! libc="$libc /lib/syslib" fi - elif $test -r "$libc" || (test -h "$libc") >/dev/null 2>&1; then - echo "Your C library seems to be in $libc, as you said before." - elif $test -r $incpath/usr/lib/libc$_a; then - libc=$incpath/usr/lib/libc$_a; - echo "Your C library seems to be in $libc. That's fine." - elif $test -r /lib/libc$_a; then - libc=/lib/libc$_a; - echo "Your C library seems to be in $libc. You're normal." else ! if tans=`./loc libc$_a blurfl/dyick $libpth`; $test -r "$tans"; then ! : ! elif tans=`./loc libc blurfl/dyick $libpth`; $test -r "$tans"; then ! libnames="$libnames "`./loc clib blurfl/dyick $libpth` ! elif tans=`./loc clib blurfl/dyick $libpth`; $test -r "$tans"; then ! : ! elif tans=`./loc Slibc$_a blurfl/dyick $xlibpth`; $test -r "$tans"; then ! : ! elif tans=`./loc Mlibc$_a blurfl/dyick $xlibpth`; $test -r "$tans"; then ! : ! else ! tans=`./loc Llibc$_a blurfl/dyick $xlibpth` ! fi ! if $test -r "$tans"; then ! echo "Your C library seems to be in $tans, of all places." ! libc=$tans ! else ! libc='blurfl' ! fi fi ! if $test $xxx = apollo -o -r "$libc" || (test -h "$libc") >/dev/null 2>&1; then ! dflt="$libc" ! cat < libpath ! cat >&4 < libnames ! set X `cat libnames` ! shift ! xxx=files ! case $# in 1) xxx=file; esac ! echo "Extracting names from the following $xxx for later perusal:" >&4 ! echo " " ! $sed 's/^/ /' libnames >&4 ! echo " " ! $echo $n "This may take a while...$c" >&4 ! for file in $*; do ! case $file in ! *$so*) $nm $nm_so_opt $nm_opt $file 2>/dev/null;; ! *) $nm $nm_opt $file 2>/dev/null;; ! esac ! done >libc.tmp ! $echo $n ".$c" ! $grep fprintf libc.tmp > libc.ptf ! xscan='eval "libc.list"; $echo $n ".$c" >&4' ! xrun='eval "libc.list"; echo "done" >&4' ! xxx='[ADTSIW]' ! if com="$sed -n -e 's/__IO//' -e 's/^.* $xxx *_[_.]*//p' -e 's/^.* $xxx *//p'";\ ! eval $xscan;\ ! $contains '^fprintf$' libc.list >/dev/null 2>&1; then ! eval $xrun ! elif com="$sed -n -e 's/^__*//' -e 's/^\([a-zA-Z_0-9$]*\).*xtern.*/\1/p'";\ ! eval $xscan;\ ! $contains '^fprintf$' libc.list >/dev/null 2>&1; then ! eval $xrun ! elif com="$sed -n -e '/|UNDEF/d' -e '/FUNC..GL/s/^.*|__*//p'";\ ! eval $xscan;\ ! $contains '^fprintf$' libc.list >/dev/null 2>&1; then ! eval $xrun ! elif com="$sed -n -e 's/^.* D __*//p' -e 's/^.* D //p'";\ ! eval $xscan;\ ! $contains '^fprintf$' libc.list >/dev/null 2>&1; then ! eval $xrun ! elif com="$sed -n -e 's/^_//' -e 's/^\([a-zA-Z_0-9]*\).*xtern.*text.*/\1/p'";\ ! eval $xscan;\ ! $contains '^fprintf$' libc.list >/dev/null 2>&1; then ! eval $xrun ! elif com="$sed -n -e 's/^.*|FUNC |GLOB .*|//p'";\ ! eval $xscan;\ ! $contains '^fprintf$' libc.list >/dev/null 2>&1; then ! eval $xrun ! elif com="$grep '|' | $sed -n -e '/|COMMON/d' -e '/|DATA/d' \ ! -e '/ file/d' -e 's/^\([^ ]*\).*/\1/p'";\ ! eval $xscan;\ ! $contains '^fprintf$' libc.list >/dev/null 2>&1; then ! eval $xrun ! elif com="$sed -n -e 's/^.*|FUNC |GLOB .*|//p' -e 's/^.*|FUNC |WEAK .*|//p'";\ ! eval $xscan;\ ! $contains '^fprintf$' libc.list >/dev/null 2>&1; then ! eval $xrun ! elif com="$sed -n -e 's/^__//' -e '/|Undef/d' -e '/|Proc/s/ .*//p'";\ ! eval $xscan;\ ! $contains '^fprintf$' libc.list >/dev/null 2>&1; then ! eval $xrun ! elif com="$sed -n -e 's/^.*|Proc .*|Text *| *//p'";\ ! eval $xscan;\ ! $contains '^fprintf$' libc.list >/dev/null 2>&1; then ! eval $xrun ! elif com="$sed -n -e '/Def. Text/s/.* \([^ ]*\)\$/\1/p'";\ ! eval $xscan;\ ! $contains '^fprintf$' libc.list >/dev/null 2>&1; then ! eval $xrun ! elif com="$sed -n -e 's/^[-0-9a-f ]*_\(.*\)=.*/\1/p'";\ ! eval $xscan;\ ! $contains '^fprintf$' libc.list >/dev/null 2>&1; then ! eval $xrun ! elif com="$sed -n -e 's/.*\.text n\ \ \ \.//p'";\ ! eval $xscan;\ ! $contains '^fprintf$' libc.list >/dev/null 2>&1; then ! eval $xrun ! elif com="sed -n -e 's/^__.*//' -e 's/[ ]*D[ ]*[0-9]*.*//p'";\ ! eval $xscan;\ ! $contains '^fprintf$' libc.list >/dev/null 2>&1; then ! eval $xrun ! else ! $nm -p $* 2>/dev/null >libc.tmp ! $grep fprintf libc.tmp > libc.ptf ! if com="$sed -n -e 's/^.* [ADTSIW] *_[_.]*//p' -e 's/^.* [ADTSIW] //p'";\ ! eval $xscan; $contains '^fprintf$' libc.list >/dev/null 2>&1 ! then ! nm_opt='-p' ! eval $xrun else ! echo " " ! echo "$nm didn't seem to work right. Trying $ar instead..." >&4 ! com='' ! if $ar t $libc > libc.tmp && $contains '^fprintf$' libc.tmp >/dev/null 2>&1; then ! for thisname in $libnames $libc; do ! $ar t $thisname >>libc.tmp ! done ! $sed -e "s/\\$_o\$//" < libc.tmp > libc.list ! echo "Ok." >&4 ! elif test "X$osname" = "Xos2" && $ar tv $libc > libc.tmp; then ! # Repeat libc to extract forwarders to DLL entries too ! for thisname in $libnames $libc; do ! $ar tv $thisname >>libc.tmp ! # Revision 50 of EMX has bug in $ar. ! # it will not extract forwarders to DLL entries ! # Use emximp which will extract exactly them. ! emximp -o tmp.imp $thisname \ ! 2>/dev/null && \ ! $sed -e 's/^\([_a-zA-Z0-9]*\) .*$/\1/p' \ ! < tmp.imp >>libc.tmp ! $rm tmp.imp ! done ! $sed -e "s/\\$_o\$//" -e 's/^ \+//' < libc.tmp > libc.list ! echo "Ok." >&4 ! else ! echo "$ar didn't seem to work right." >&4 ! echo "Maybe this is a Cray...trying bld instead..." >&4 ! if bld t $libc | $sed -e 's/.*\///' -e "s/\\$_o:.*\$//" > libc.list ! then ! for thisname in $libnames; do ! bld t $libnames | \ ! $sed -e 's/.*\///' -e "s/\\$_o:.*\$//" >>libc.list ! $ar t $thisname >>libc.tmp ! done ! echo "Ok." >&4 ! else ! echo "That didn't work either. Giving up." >&4 ! exit 1 ! fi ! fi fi fi ! nm_extract="$com" ! if $test -f /lib/syscalls.exp; then echo " " ! echo "Also extracting names from /lib/syscalls.exp for good ole AIX..." >&4 ! $sed -n 's/^\([^ ]*\)[ ]*syscall[0-9]*$/\1/p' /lib/syscalls.exp >>libc.list fi ! ;; esac - $rm -f libnames libpath ! : see if dld is available ! set dld.h i_dld ! eval $inhdr ! : is a C symbol defined? ! csym='tlook=$1; ! case "$3" in ! -v) tf=libc.tmp; tc=""; tdc="";; ! -a) tf=libc.tmp; tc="[0]"; tdc="[]";; ! *) tlook="^$1\$"; tf=libc.list; tc="()"; tdc="()";; ! esac; ! tx=yes; ! case "$reuseval-$4" in ! true-) ;; ! true-*) tx=no; eval "tval=\$$4"; case "$tval" in "") tx=yes;; esac;; ! esac; ! case "$tx" in ! yes) ! case "$runnm" in ! true) ! if $contains $tlook $tf >/dev/null 2>&1; ! then tval=true; ! else tval=false; ! fi;; ! *) ! echo "int main() { extern short $1$tdc; printf(\"%hd\", $1$tc); }" > t.c; ! if $cc $optimize $ccflags $ldflags -o t t.c $libs >/dev/null 2>&1; ! then tval=true; ! else tval=false; ! fi; ! $rm -f t t.c;; ! esac;; ! *) ! case "$tval" in ! $define) tval=true;; ! *) tval=false;; ! esac;; ! esac; ! eval "$2=$tval"' ! : define an is-in-libc? function ! inlibc='echo " "; td=$define; tu=$undef; ! sym=$1; var=$2; eval "was=\$$2"; ! tx=yes; ! case "$reuseval$was" in ! true) ;; ! true*) tx=no;; ! esac; ! case "$tx" in ! yes) ! set $sym tres -f; ! eval $csym; ! case "$tres" in ! true) ! echo "$sym() found." >&4; ! case "$was" in $undef) . ./whoa; esac; eval "$var=\$td";; ! *) ! echo "$sym() NOT found." >&4; ! case "$was" in $define) . ./whoa; esac; eval "$var=\$tu";; ! esac;; ! *) ! case "$was" in ! $define) echo "$sym() found." >&4;; ! *) echo "$sym() NOT found." >&4;; ! esac;; ! esac' : see if dlopen exists xxx_runnm="$runnm" --- 4567,6309 ---- ;; esac echo " " ! echo "Checking for GNU C Library..." >&4 ! cat >gnulibc.c < ! int main() ! { ! #ifdef __GLIBC__ ! exit(0); ! #else ! exit(1); ! #endif ! } ! EOM ! set gnulibc ! if eval $compile_ok && ./gnulibc; then ! val="$define" ! echo "You are using the GNU C Library" else ! val="$undef" ! echo "You are not using the GNU C Library" fi ! $rm -f gnulibc* ! set d_gnulibc ! eval $setvar ! ! : see if nm is to be used to determine whether a symbol is defined or not ! case "$usenm" in ! '') ! dflt='' ! case "$d_gnulibc" in ! "$define") ! echo " " ! echo "nm probably won't work on the GNU C Library." >&4 ! dflt=n ! ;; ! esac ! case "$dflt" in ! '') ! if $test "$osname" = aix -a ! -f /lib/syscalls.exp; then ! echo " " ! echo "Whoops! This is an AIX system without /lib/syscalls.exp!" >&4 ! echo "'nm' won't be sufficient on this sytem." >&4 ! dflt=n ! fi ! ;; ! esac ! case "$dflt" in ! '') dflt=`$egrep 'inlibc|csym' $rsrc/Configure | wc -l 2>/dev/null` ! if $test $dflt -gt 20; then ! dflt=y ! else ! dflt=n ! fi ! ;; ! esac ! ;; *) ! case "$usenm" in ! true|$define) dflt=y;; ! *) dflt=n;; ! esac ;; esac ! $cat < /dev/null 2>&1; then ! nm_so_opt='--dynamic' ! fi ;; esac + ;; esac ! case "$runnm" in ! true) ! : get list of predefined functions in a handy place ! echo " " ! case "$libc" in ! '') libc=unknown ! case "$libs" in ! *-lc_s*) libc=`./loc libc_s$_a $libc $libpth` ! esac ;; esac ! libnames=''; ! case "$libs" in '') ;; ! *) for thislib in $libs; do ! case "$thislib" in ! -lc|-lc_s) ! : Handle C library specially below. ! ;; ! -l*) ! thislib=`echo $thislib | $sed -e 's/^-l//'` ! if try=`./loc lib$thislib.$so.'*' X $libpth`; $test -f "$try"; then ! : ! elif try=`./loc lib$thislib.$so X $libpth`; $test -f "$try"; then ! : ! elif try=`./loc lib$thislib$_a X $libpth`; $test -f "$try"; then ! : ! elif try=`./loc $thislib$_a X $libpth`; $test -f "$try"; then ! : ! elif try=`./loc lib$thislib X $libpth`; $test -f "$try"; then ! : ! elif try=`./loc $thislib X $libpth`; $test -f "$try"; then ! : ! elif try=`./loc Slib$thislib$_a X $xlibpth`; $test -f "$try"; then ! : ! else ! try='' ! fi ! libnames="$libnames $try" ! ;; ! *) libnames="$libnames $thislib" ;; esac + done ;; esac ! xxx=normal ! case "$libc" in ! unknown) ! set /lib/libc.$so ! for xxx in $libpth; do ! $test -r $1 || set $xxx/libc.$so ! : The messy sed command sorts on library version numbers. ! $test -r $1 || \ ! set `echo blurfl; echo $xxx/libc.$so.[0-9]* | \ ! tr ' ' $trnl | egrep -v '\.[A-Za-z]*$' | $sed -e ' ! h ! s/[0-9][0-9]*/0000&/g ! s/0*\([0-9][0-9][0-9][0-9][0-9]\)/\1/g ! G ! s/\n/ /' | \ ! $sort | $sed -e 's/^.* //'` ! eval set \$$# ! done ! $test -r $1 || set /usr/ccs/lib/libc.$so ! $test -r $1 || set /lib/libsys_s$_a ! ;; ! *) ! set blurfl ;; esac ! if $test -r "$1"; then ! echo "Your (shared) C library seems to be in $1." ! libc="$1" ! elif $test -r /lib/libc && $test -r /lib/clib; then ! echo "Your C library seems to be in both /lib/clib and /lib/libc." ! xxx=apollo ! libc='/lib/clib /lib/libc' ! if $test -r /lib/syslib; then ! echo "(Your math library is in /lib/syslib.)" ! libc="$libc /lib/syslib" ! fi ! elif $test -r "$libc" || (test -h "$libc") >/dev/null 2>&1; then ! echo "Your C library seems to be in $libc, as you said before." ! elif $test -r $incpath/usr/lib/libc$_a; then ! libc=$incpath/usr/lib/libc$_a; ! echo "Your C library seems to be in $libc. That's fine." ! elif $test -r /lib/libc$_a; then ! libc=/lib/libc$_a; ! echo "Your C library seems to be in $libc. You're normal." else ! if tans=`./loc libc$_a blurfl/dyick $libpth`; $test -r "$tans"; then ! : ! elif tans=`./loc libc blurfl/dyick $libpth`; $test -r "$tans"; then ! libnames="$libnames "`./loc clib blurfl/dyick $libpth` ! elif tans=`./loc clib blurfl/dyick $libpth`; $test -r "$tans"; then ! : ! elif tans=`./loc Slibc$_a blurfl/dyick $xlibpth`; $test -r "$tans"; then ! : ! elif tans=`./loc Mlibc$_a blurfl/dyick $xlibpth`; $test -r "$tans"; then ! : ! else ! tans=`./loc Llibc$_a blurfl/dyick $xlibpth` ! fi ! if $test -r "$tans"; then ! echo "Your C library seems to be in $tans, of all places." ! libc=$tans ! else ! libc='blurfl' ! fi fi + if $test $xxx = apollo -o -r "$libc" || (test -h "$libc") >/dev/null 2>&1; then + dflt="$libc" + cat < libpath ! cat >&4 < libnames ! set X `cat libnames` ! shift ! xxx=files ! case $# in 1) xxx=file; esac ! echo "Extracting names from the following $xxx for later perusal:" >&4 ! echo " " ! $sed 's/^/ /' libnames >&4 ! echo " " ! $echo $n "This may take a while...$c" >&4 ! for file in $*; do ! case $file in ! *$so*) $nm $nm_so_opt $nm_opt $file 2>/dev/null;; ! *) $nm $nm_opt $file 2>/dev/null;; esac ! done >libc.tmp ! $echo $n ".$c" ! $grep fprintf libc.tmp > libc.ptf ! xscan='eval "libc.list"; $echo $n ".$c" >&4' ! xrun='eval "libc.list"; echo "done" >&4' ! xxx='[ADTSIW]' ! if com="$sed -n -e 's/__IO//' -e 's/^.* $xxx *_[_.]*//p' -e 's/^.* $xxx *//p'";\ ! eval $xscan;\ ! $contains '^fprintf$' libc.list >/dev/null 2>&1; then ! eval $xrun ! elif com="$sed -n -e 's/^__*//' -e 's/^\([a-zA-Z_0-9$]*\).*xtern.*/\1/p'";\ ! eval $xscan;\ ! $contains '^fprintf$' libc.list >/dev/null 2>&1; then ! eval $xrun ! elif com="$sed -n -e '/|UNDEF/d' -e '/FUNC..GL/s/^.*|__*//p'";\ ! eval $xscan;\ ! $contains '^fprintf$' libc.list >/dev/null 2>&1; then ! eval $xrun ! elif com="$sed -n -e 's/^.* D __*//p' -e 's/^.* D //p'";\ ! eval $xscan;\ ! $contains '^fprintf$' libc.list >/dev/null 2>&1; then ! eval $xrun ! elif com="$sed -n -e 's/^_//' -e 's/^\([a-zA-Z_0-9]*\).*xtern.*text.*/\1/p'";\ ! eval $xscan;\ ! $contains '^fprintf$' libc.list >/dev/null 2>&1; then ! eval $xrun ! elif com="$sed -n -e 's/^.*|FUNC |GLOB .*|//p'";\ ! eval $xscan;\ ! $contains '^fprintf$' libc.list >/dev/null 2>&1; then ! eval $xrun ! elif com="$grep '|' | $sed -n -e '/|COMMON/d' -e '/|DATA/d' \ ! -e '/ file/d' -e 's/^\([^ ]*\).*/\1/p'";\ ! eval $xscan;\ ! $contains '^fprintf$' libc.list >/dev/null 2>&1; then ! eval $xrun ! elif com="$sed -n -e 's/^.*|FUNC |GLOB .*|//p' -e 's/^.*|FUNC |WEAK .*|//p'";\ ! eval $xscan;\ ! $contains '^fprintf$' libc.list >/dev/null 2>&1; then ! eval $xrun ! elif com="$sed -n -e 's/^__//' -e '/|Undef/d' -e '/|Proc/s/ .*//p'";\ ! eval $xscan;\ ! $contains '^fprintf$' libc.list >/dev/null 2>&1; then ! eval $xrun ! elif com="$sed -n -e 's/^.*|Proc .*|Text *| *//p'";\ ! eval $xscan;\ ! $contains '^fprintf$' libc.list >/dev/null 2>&1; then ! eval $xrun ! elif com="$sed -n -e '/Def. Text/s/.* \([^ ]*\)\$/\1/p'";\ ! eval $xscan;\ ! $contains '^fprintf$' libc.list >/dev/null 2>&1; then ! eval $xrun ! elif com="$sed -n -e 's/^[-0-9a-f ]*_\(.*\)=.*/\1/p'";\ ! eval $xscan;\ ! $contains '^fprintf$' libc.list >/dev/null 2>&1; then ! eval $xrun ! elif com="$sed -n -e 's/.*\.text n\ \ \ \.//p'";\ ! eval $xscan;\ ! $contains '^fprintf$' libc.list >/dev/null 2>&1; then ! eval $xrun ! elif com="sed -n -e 's/^__.*//' -e 's/[ ]*D[ ]*[0-9]*.*//p'";\ ! eval $xscan;\ ! $contains '^fprintf$' libc.list >/dev/null 2>&1; then ! eval $xrun else ! $nm -p $* 2>/dev/null >libc.tmp ! $grep fprintf libc.tmp > libc.ptf ! if com="$sed -n -e 's/^.* [ADTSIW] *_[_.]*//p' -e 's/^.* [ADTSIW] //p'";\ ! eval $xscan; $contains '^fprintf$' libc.list >/dev/null 2>&1 ! then ! nm_opt='-p' ! eval $xrun ! else ! echo " " ! echo "$nm didn't seem to work right. Trying $ar instead..." >&4 ! com='' ! if $ar t $libc > libc.tmp && $contains '^fprintf$' libc.tmp >/dev/null 2>&1; then ! for thisname in $libnames $libc; do ! $ar t $thisname >>libc.tmp ! done ! $sed -e "s/\\$_o\$//" < libc.tmp > libc.list ! echo "Ok." >&4 ! elif test "X$osname" = "Xos2" && $ar tv $libc > libc.tmp; then ! # Repeat libc to extract forwarders to DLL entries too ! for thisname in $libnames $libc; do ! $ar tv $thisname >>libc.tmp ! # Revision 50 of EMX has bug in $ar. ! # it will not extract forwarders to DLL entries ! # Use emximp which will extract exactly them. ! emximp -o tmp.imp $thisname \ ! 2>/dev/null && \ ! $sed -e 's/^\([_a-zA-Z0-9]*\) .*$/\1/p' \ ! < tmp.imp >>libc.tmp ! $rm tmp.imp ! done ! $sed -e "s/\\$_o\$//" -e 's/^ \+//' < libc.tmp > libc.list ! echo "Ok." >&4 ! else ! echo "$ar didn't seem to work right." >&4 ! echo "Maybe this is a Cray...trying bld instead..." >&4 ! if bld t $libc | $sed -e 's/.*\///' -e "s/\\$_o:.*\$//" > libc.list ! then ! for thisname in $libnames; do ! bld t $libnames | \ ! $sed -e 's/.*\///' -e "s/\\$_o:.*\$//" >>libc.list ! $ar t $thisname >>libc.tmp ! done ! echo "Ok." >&4 ! else ! echo "That didn't work either. Giving up." >&4 ! exit 1 ! fi ! fi ! fi ! fi ! nm_extract="$com" ! if $test -f /lib/syscalls.exp; then ! echo " " ! echo "Also extracting names from /lib/syscalls.exp for good ole AIX..." >&4 ! $sed -n 's/^\([^ ]*\)[ ]*syscall[0-9]*$/\1/p' /lib/syscalls.exp >>libc.list fi + ;; + esac + $rm -f libnames libpath ! : is a C symbol defined? ! csym='tlook=$1; ! case "$3" in ! -v) tf=libc.tmp; tc=""; tdc="";; ! -a) tf=libc.tmp; tc="[0]"; tdc="[]";; ! *) tlook="^$1\$"; tf=libc.list; tc="()"; tdc="()";; ! esac; ! tx=yes; ! case "$reuseval-$4" in ! true-) ;; ! true-*) tx=no; eval "tval=\$$4"; case "$tval" in "") tx=yes;; esac;; ! esac; ! case "$tx" in ! yes) ! case "$runnm" in ! true) ! if $contains $tlook $tf >/dev/null 2>&1; ! then tval=true; ! else tval=false; ! fi;; ! *) ! echo "int main() { extern short $1$tdc; printf(\"%hd\", $1$tc); }" > t.c; ! if $cc -o t $optimize $ccflags $ldflags t.c $libs >/dev/null 2>&1; ! then tval=true; ! else tval=false; ! fi; ! $rm -f t t.c;; ! esac;; ! *) ! case "$tval" in ! $define) tval=true;; ! *) tval=false;; ! esac;; ! esac; ! eval "$2=$tval"' ! : define an is-in-libc? function ! inlibc='echo " "; td=$define; tu=$undef; ! sym=$1; var=$2; eval "was=\$$2"; ! tx=yes; ! case "$reuseval$was" in ! true) ;; ! true*) tx=no;; ! esac; ! case "$tx" in ! yes) ! set $sym tres -f; ! eval $csym; ! case "$tres" in ! true) ! echo "$sym() found." >&4; ! case "$was" in $undef) . ./whoa; esac; eval "$var=\$td";; ! *) ! echo "$sym() NOT found." >&4; ! case "$was" in $define) . ./whoa; esac; eval "$var=\$tu";; ! esac;; ! *) ! case "$was" in ! $define) echo "$sym() found." >&4;; ! *) echo "$sym() NOT found." >&4;; ! esac;; ! esac' ! : see if sqrtl exists ! set sqrtl d_sqrtl ! eval $inlibc + case "$ccflags" in + *-DUSE_LONG_DOUBLE*|*-DUSE_MORE_BITS*) uselongdouble="$define" ;; + esac ! case "$uselongdouble" in ! $define|true|[yY]*) dflt='y';; ! *) dflt='n';; ! esac ! cat <&4 ! *** You requested the use of long doubles but you do not seem to have ! *** the mathematic functions for long doubles. I'm disabling the use ! *** of long doubles. ! ! EOM ! uselongdouble=$undef ;; esac ! : check for length of double echo " " ! case "$doublesize" in ! '') ! echo "Checking to see how big your double precision numbers are..." >&4 ! $cat >try.c <<'EOCP' ! #include ! int main() ! { ! printf("%d\n", (int)sizeof(double)); ! exit(0); ! } ! EOCP ! set try ! if eval $compile_ok; then ! doublesize=`./try` ! echo "Your double is $doublesize bytes long." ! else ! dflt='8' ! echo "(I can't seem to compile the test program. Guessing...)" ! rp="What is the size of a double precision number (in bytes)?" ! . ./myread ! doublesize="$ans" fi ;; esac + $rm -f try.c try ! : check for long doubles echo " " ! echo "Checking to see if you have long double..." >&4 ! echo 'int main() { long double x = 7.0; }' > try.c ! set try ! if eval $compile; then ! val="$define" ! echo "You have long double." ! else ! val="$undef" ! echo "You do not have long double." ! fi ! $rm try.* ! set d_longdbl ! eval $setvar ! ! : check for length of long double ! case "${d_longdbl}${longdblsize}" in ! $define) ! echo " " ! echo "Checking to see how big your long doubles are..." >&4 ! $cat >try.c <<'EOCP' #include ! int main() ! { ! printf("%d\n", sizeof(long double)); ! } ! EOCP ! set try ! set try ! if eval $compile; then ! longdblsize=`./try$exe_ext` ! echo "Your long doubles are $longdblsize bytes long." else ! dflt='8' ! echo " " ! echo "(I can't seem to compile the test program. Guessing...)" >&4 ! rp="What is the size of a long double (in bytes)?" ! . ./myread ! longdblsize="$ans" fi + if $test "X$doublesize" = "X$longdblsize"; then + echo "(That isn't any different from an ordinary double.)" + fi ;; esac ! $rm -f try.* try ! : determine the architecture name ! echo " " ! if xxx=`./loc arch blurfl $pth`; $test -f "$xxx"; then ! tarch=`arch`"-$osname" ! elif xxx=`./loc uname blurfl $pth`; $test -f "$xxx" ; then ! if uname -m > tmparch 2>&1 ; then ! tarch=`$sed -e 's/ *$//' -e 's/ /_/g' \ ! -e 's/$/'"-$osname/" tmparch` else ! tarch="$osname" fi + $rm -f tmparch + else + tarch="$osname" + fi + case "$myarchname" in + ''|"$tarch") ;; + *) + echo "(Your architecture name used to be $myarchname.)" + archname='' ;; esac ! myarchname="$tarch" ! case "$archname" in ! '') dflt="$tarch";; ! *) dflt="$archname";; esac + rp='What is your architecture name' . ./myread ! archname="$ans" ! case "$usethreads" in ! $define) ! echo "Threads selected." >&4 ! case "$archname" in ! *-thread*) echo "...and architecture name already has -thread." >&4 ! ;; ! *) archname="$archname-thread" ! echo "...setting architecture name to $archname." >&4 ! ;; ! esac ;; esac ! case "$usemultiplicity" in ! $define) ! echo "Multiplicity selected." >&4 ! case "$archname" in ! *-multi*) echo "...and architecture name already has -multi." >&4 ! ;; ! *) archname="$archname-multi" ! echo "...setting architecture name to $archname." >&4 ! ;; ! esac ;; ! esac ! case "$use64bitint$use64bitall" in ! *"$define"*) ! case "$archname64" in '') ! echo "This architecture is naturally 64-bit, not changing architecture name." >&4 ! ;; ! *) ! case "$use64bitint" in ! "$define") echo "64 bit integers selected." >&4 ;; ! esac ! case "$use64bitall" in ! "$define") echo "Maximal 64 bitness selected." >&4 ;; esac + case "$archname" in + *-$archname64*) echo "...and architecture name already has $archname64." >&4 + ;; + *) archname="$archname-$archname64" + echo "...setting architecture name to $archname." >&4 + ;; + esac ;; ! esac ! esac ! case "$uselongdouble" in ! $define) ! echo "Long doubles selected." >&4 ! case "$longdblsize" in ! $doublesize) ! "...but long doubles are equal to doubles, not changing architecture name." >&4 ! ;; ! *) ! case "$archname" in ! *-ld*) echo "...and architecture name already has -ld." >&4 ! ;; ! *) archname="$archname-ld" ! echo "...setting architecture name to $archname." >&4 ! ;; ! esac ;; esac ;; esac ! : determine root of directory hierarchy where package will be installed. ! case "$prefix" in ! '') ! dflt=`./loc . /usr/local /usr/local /local /opt /usr` ;; ! *) ! dflt="$prefix" ! ;; ! esac ! $cat <&4 else ! echo "AFS does not seem to be running..." >&4 fi ! : determine installation prefix for where package is to be installed. ! if $afs; then ! $cat <&4 ! if $test -r $rsrc/patchlevel.h;then ! revision=`awk '/define[ ]+PERL_REVISION/ {print $3}' $rsrc/patchlevel.h` ! patchlevel=`awk '/define[ ]+PERL_VERSION/ {print $3}' $rsrc/patchlevel.h` ! subversion=`awk '/define[ ]+PERL_SUBVERSION/ {print $3}' $rsrc/patchlevel.h` ! api_revision=`awk '/define[ ]+PERL_API_REVISION/ {print $3}' $rsrc/patchlevel.h` ! api_version=`awk '/define[ ]+PERL_API_VERSION/ {print $3}' $rsrc/patchlevel.h` ! api_subversion=`awk '/define[ ]+PERL_API_SUBVERSION/ {print $3}' $rsrc/patchlevel.h` else ! revision=0 ! patchlevel=0 ! subversion=0 ! api_revision=0 ! api_version=0 ! api_subversion=0 fi ! $echo "(You have $package version $patchlevel subversion $subversion.)" ! case "$osname" in ! dos|vms) ! : XXX Should be a Configure test for double-dots in filenames. ! version=`echo $revision $patchlevel $subversion | \ ! $awk '{ printf "%d_%d_%d\n", $1, $2, $3 }'` ! api_versionstring=`echo $api_revision $api_version $api_subversion | \ ! $awk '{ printf "%d_%d_%d\n", $1, $2, $3 }'` ;; ! *) ! version=`echo $revision $patchlevel $subversion | \ ! $awk '{ printf "%d.%d.%d\n", $1, $2, $3 }'` ! api_versionstring=`echo $api_revision $api_version $api_subversion | \ ! $awk '{ printf "%d.%d.%d\n", $1, $2, $3 }'` ;; esac ! : Special case the 5.005_xx maintenance series, which used 5.005 ! : without any subversion label as a subdirectory in $sitelib ! if test "${api_revision}${api_version}${api_subversion}" = "550"; then ! api_versionstring='5.005' ! fi ! ! : determine installation style ! : For now, try to deduce it from prefix unless it is already set. ! : Reproduce behavior of 5.005 and earlier, maybe drop that in 5.7. ! case "$installstyle" in ! '') case "$prefix" in ! *perl*) dflt='lib';; ! *) dflt='lib/perl5' ;; ! esac ! ;; ! *) dflt="$installstyle" ;; esac + : Probably not worth prompting for this since we prompt for all + : the directories individually, and the prompt would be too long and + : confusing anyway. + installstyle=$dflt + : determine where private library files go + : Usual default is /usr/local/lib/perl5/$version. + : Also allow things like /opt/perl/lib/$version, since + : /opt/perl/lib/perl5... would be redundant. + : The default "style" setting is made in installstyle.U + case "$installstyle" in + *lib/perl5*) set dflt privlib lib/$package/$version ;; + *) set dflt privlib lib/$version ;; + esac + eval $prefixit $cat <reflect ! chmod +x,u+s reflect ! ./reflect >flect 2>&1 ! if $contains "/dev/fd" flect >/dev/null; then ! echo "Congratulations, your kernel has secure setuid scripts!" >&4 ! val="$define" else ! $cat <&4 ! dflt=n;; ! "$undef") ! echo "Well, the $hint value is *not* secure." >&4 ! dflt=n;; ! *) echo "Well, the $hint value *is* secure." >&4 ! dflt=y;; ! esac ! ;; ! *) ! $rm -f reflect flect ! echo "#!$ls" >reflect ! chmod +x,u+s reflect ! echo >flect ! chmod a+w flect ! echo '"su" will (probably) prompt you for '"$ans's password." ! su $ans -c './reflect >flect' ! if $contains "/dev/fd" flect >/dev/null; then ! echo "Okay, it looks like setuid scripts are secure." >&4 ! dflt=y ! else ! echo "I don't think setuid scripts are secure." >&4 ! dflt=n ! fi ! ;; ! esac ! rp='Does your kernel have *secure* setuid scripts?' ! . ./myread ! case "$ans" in ! [yY]*) val="$define";; ! *) val="$undef";; ! esac fi else ! echo "I don't think setuid scripts are secure (no /dev/fd directory)." >&4 ! echo "(That's for file descriptors, not floppy disks.)" ! val="$undef" fi ! set d_suidsafe ! eval $setvar ! $rm -f reflect flect ! : now see if they want to do setuid emulation ! echo " " ! val="$undef" ! case "$d_suidsafe" in ! "$define") ! val="$undef" ! echo "No need to emulate SUID scripts since they are secure here." >& 4 ! ;; ! *) ! $cat <&4 ! echo '#include ' > foo.c ! $cat >fieldn </dev/null | \ ! $grep '^[ ]*#.*stdio\.h' | \ ! while read cline; do ! pos=1 ! set \$cline ! while $test \$# -gt 0; do ! if $test -r \`echo \$1 | $tr -d '"'\`; then ! echo "\$pos" ! exit 0 ! fi ! shift ! pos=\`expr \$pos + 1\` ! done ! done ! EOF ! chmod +x fieldn ! fieldn=`./fieldn` ! $rm -f foo.c fieldn ! case $fieldn in ! '') pos='???';; ! 1) pos=first;; ! 2) pos=second;; ! 3) pos=third;; ! *) pos="${fieldn}th";; ! esac ! echo "Your cpp writes the filename in the $pos field of the line." ! : locate header file ! $cat >findhdr <" > foo\$\$.c ! $cppstdin $cppminus $cppflags < foo\$\$.c 2>/dev/null | \ ! $grep "^[ ]*#.*\$wanted" | \ ! while read cline; do ! name=\`echo \$cline | $awk "\$awkprg" | $tr -d '"'\` ! case "\$name" in ! *[/\\\\]\$wanted) echo "\$name"; exit 1;; ! *[\\\\/]\$wanted) echo "\$name"; exit 1;; ! *) exit 2;; ! esac; ! done; ! # ! # status = 0: grep returned 0 lines, case statement not executed ! # status = 1: headerfile found ! # status = 2: while loop executed, no headerfile found ! # ! status=\$? ! $rm -f foo\$\$.c; ! if test \$status -eq 1; then ! exit 0; ! fi ! exit 1 ! EOF ! chmod +x findhdr ! : define an alternate in-header-list? function ! inhdr='echo " "; td=$define; tu=$undef; yyy=$@; ! cont=true; xxf="echo \"<\$1> found.\" >&4"; ! case $# in 2) xxnf="echo \"<\$1> NOT found.\" >&4";; ! *) xxnf="echo \"<\$1> NOT found, ...\" >&4";; ! esac; ! case $# in 4) instead=instead;; *) instead="at last";; esac; ! while $test "$cont"; do ! xxx=`./findhdr $1` ! var=$2; eval "was=\$$2"; ! if $test "$xxx" && $test -r "$xxx"; ! then eval $xxf; ! eval "case \"\$$var\" in $undef) . ./whoa; esac"; eval "$var=\$td"; ! cont=""; ! else eval $xxnf; ! eval "case \"\$$var\" in $define) . ./whoa; esac"; eval "$var=\$tu"; fi; ! set $yyy; shift; shift; yyy=$@; ! case $# in 0) cont="";; ! 2) xxf="echo \"but I found <\$1> $instead.\" >&4"; ! xxnf="echo \"and I did not find <\$1> either.\" >&4";; ! *) xxf="echo \"but I found <\$1\> instead.\" >&4"; ! xxnf="echo \"there is no <\$1>, ...\" >&4";; ! esac; ! done; ! while $test "$yyy"; ! do set $yyy; var=$2; eval "was=\$$2"; ! eval "case \"\$$var\" in $define) . ./whoa; esac"; eval "$var=\$tu"; ! set $yyy; shift; shift; yyy=$@; ! done' ! ! : see if this is a malloc.h system ! set malloc.h i_malloc ! eval $inhdr ! ! : see if stdlib is available ! set stdlib.h i_stdlib ! eval $inhdr ! ! : determine which malloc to compile in ! echo " " ! case "$usemymalloc" in ! ''|[yY]*|true|$define) dflt='y' ;; ! *) dflt='n' ;; ! esac ! rp="Do you wish to attempt to use the malloc that comes with $package?" ! . ./myread ! usemymalloc="$ans" ! case "$ans" in ! y*|true) ! usemymalloc='y' ! mallocsrc='malloc.c' ! mallocobj="malloc$_o" ! d_mymalloc="$define" ! case "$libs" in ! *-lmalloc*) ! : Remove malloc from list of libraries to use ! echo "Removing unneeded -lmalloc from library list" >&4 ! set `echo X $libs | $sed -e 's/-lmalloc / /' -e 's/-lmalloc$//'` ! shift ! libs="$*" ! echo "libs = $libs" >&4 ! ;; ! esac ! ;; ! *) ! usemymalloc='n' ! mallocsrc='' ! mallocobj='' ! d_mymalloc="$undef" ! ;; ! esac ! ! : compute the return types of malloc and free ! echo " " ! $cat >malloc.c < ! #include ! #ifdef I_MALLOC ! #include ! #endif ! #ifdef I_STDLIB ! #include ! #endif ! #ifdef TRY_MALLOC ! void *malloc(); ! #endif ! #ifdef TRY_FREE ! void free(); ! #endif ! END ! case "$malloctype" in ! '') ! if $cc $ccflags -c -DTRY_MALLOC malloc.c >/dev/null 2>&1; then ! malloctype='void *' else ! malloctype='char *' fi + ;; + esac + echo "Your system wants malloc to return '$malloctype', it would seem." >&4 + + case "$freetype" in + '') + if $cc $ccflags -c -DTRY_FREE malloc.c >/dev/null 2>&1; then + freetype='void' + else + freetype='int' + fi + ;; + esac + echo "Your system uses $freetype free(), it would seem." >&4 + $rm -f malloc.[co] + $cat <&4 ! $cat >prototype.c <<'EOCP' ! int main(int argc, char *argv[]) { ! exit(0);} ! EOCP ! if $cc $ccflags -c prototype.c >prototype.out 2>&1 ; then ! echo "Your C compiler appears to support function prototypes." ! val="$define" ! else ! echo "Your C compiler doesn't seem to understand function prototypes." ! val="$undef" ! fi ! set prototype ! eval $setvar ! $rm -f prototype* ! ! case "$prototype" in ! "$define") ;; ! *) ansi2knr='ansi2knr' echo " " ! cat <&4 ! ! $me: FATAL ERROR: ! This version of $package can only be compiled by a compiler that ! understands function prototypes. Unfortunately, your C compiler ! $cc $ccflags ! doesn't seem to understand them. Sorry about that. ! ! If GNU cc is available for your system, perhaps you could try that instead. ! ! Eventually, we hope to support building Perl with pre-ANSI compilers. ! If you would like to help in that effort, please contact . ! ! Aborting Configure now. ! EOM ! exit 2 ! ;; ! esac ! ! : determine where public executables go ! echo " " ! set dflt bin bin ! eval $prefixit ! fn=d~ ! rp='Pathname where the public executables will reside?' ! . ./getfile ! if $test "X$ansexp" != "X$binexp"; then ! installbin='' fi ! bin="$ans" ! binexp="$ansexp" ! : Change installation prefix, if necessary. ! : XXX Bug? -- ignores Configure -Dinstallprefix setting. ! if $test X"$prefix" != X"$installprefix"; then ! installbin=`echo $binexp | sed "s#^$prefix#$installprefix#"` ! else ! installbin="$binexp" ! fi ! ! : Find perl5.005 or later. ! echo "Looking for a previously installed perl5.005 or later... " ! case "$perl5" in ! '') for tdir in `echo "$binexp:$PATH" | $sed "s/$path_sep/ /g"`; do ! : Check if this perl is recent and can load a simple module ! if $test -x $tdir/perl && $tdir/perl -Mless -e 'use 5.005;' >/dev/null 2>&1; then ! perl5=$tdir/perl ! break; ! elif $test -x $tdir/perl5 && $tdir/perl5 -Mless -e 'use 5.005;' >/dev/null 2>&1; then ! perl5=$tdir/perl ! break; ! fi ! done ! ;; ! *) perl5="$perl5" ! ;; ! esac ! case "$perl5" in ! '') echo "None found. That's ok.";; ! *) echo "Using $perl5." ;; esac ! : Determine list of previous versions to include in @INC ! $cat > getverlist <> getverlist <<'EOPL' ! # Can't have leading @ because metaconfig interprets it as a command! ! ;@inc_version_list=(); ! # XXX Redo to do opendir/readdir? ! if (-d $stem) { ! chdir($stem); ! ;@candidates = glob("5.*"); ! } ! else { ! ;@candidates = (); ! } ! # XXX ToDo: These comparisons must be reworked when two-digit ! # subversions come along, so that 5.7.10 compares as greater than ! # 5.7.3! By that time, hope that 5.6.x is sufficiently ! # widespread that we can use the built-in version vectors rather ! # than reinventing them here. For 5.6.0, however, we must ! # assume this script will likely be run by 5.005_0x. --AD 1/2000. ! foreach $d (@candidates) { ! if ($d lt $version) { ! if ($d ge $api_versionstring) { ! unshift(@inc_version_list, grep { -d } "$d/$archname", $d); ! } ! elsif ($d ge "5.005") { ! unshift(@inc_version_list, grep { -d } $d); ! } ! } ! else { ! # Skip newer version. I.e. don't look in ! # 5.7.0 if we're installing 5.6.1. ! } ! } ! ! if (@inc_version_list) { ! print join(' ', @inc_version_list); ! } ! else { ! # Blank space to preserve value for next Configure run. ! print " "; ! } ! EOPL ! chmod +x getverlist ! case "$inc_version_list" in ! '') if test -x "$perl5"; then ! dflt=`$perl5 getverlist` ! else ! dflt='none' ! fi ! ;; ! $undef) dflt='none' ;; ! *) dflt="$inc_version_list" ;; ! esac ! case "$dflt" in ! ''|' ') dflt=none ;; ! esac ! case "$dflt" in ! 5.005) case "$bincompat5005" in ! $define|true|[yY]*) ;; ! *) dflt=none ;; ! esac ! ;; ! esac ! $cat <<'EOM' ! ! In order to ease the process of upgrading, this version of perl ! can be configured to use modules built and installed with earlier ! versions of perl that were installed under $prefix. Specify here ! the list of earlier versions that this version of perl should check. ! If Configure detected no earlier versions of perl installed under ! $prefix, then the list will be empty. Answer 'none' to tell perl ! to not search earlier versions. ! ! The default should almost always be sensible, so if you're not sure, ! just accept the default. ! EOM ! ! rp='List of earlier versions to include in @INC?' ! . ./myread ! case "$ans" in ! [Nn]one|''|' ') inc_version_list=' ' ;; ! *) inc_version_list="$ans" ;; ! esac ! case "$inc_version_list" in ! ''|' ') ! inc_version_list_init='0';; ! *) inc_version_list_init=`echo $inc_version_list | ! $sed -e 's/^/"/' -e 's/ /","/g' -e 's/$/",0/'` ! ;; ! esac ! $rm -f getverlist ! ! : determine whether to install perl also as /usr/bin/perl ! ! echo " " ! if $test -d /usr/bin -a "X$installbin" != X/usr/bin; then ! $cat <&4 <&4 <&4 + else + echo "Could not find manual pages in source form." >&4 + fi + : determine where manual pages go set man1dir man1dir none eval $prefixit *************** *** 6899,6916 **** /[ ]$myhostname[ . ]/p" > hosts } tmp_re="[ . ]" ! $test x`$awk "/[0-9].*[ ]$myhostname$tmp_re/ { sum++ } END { print sum }" hosts` = x1 || tmp_re="[ ]" ! dflt=.`$awk "/[0-9].*[ ]$myhostname$tmp_re/ {for(i=2; i<=NF;i++) print \\\$i}" \ ! hosts | $sort | $uniq | \ ! $sed -n -e "s/$myhostname\.\([-a-zA-Z0-9_.]\)/\1/p"` ! case `$echo X$dflt` in ! X*\ *) echo "(Several hosts in /etc/hosts matched hostname)" dflt=. ! ;; ! X.) echo "(You do not have fully-qualified names in /etc/hosts)" ! ;; ! esac case "$dflt" in .) tans=`./loc resolv.conf X /etc /usr/etc` --- 7126,7148 ---- /[ ]$myhostname[ . ]/p" > hosts } tmp_re="[ . ]" ! if $test -f hosts; then ! $test x`$awk "/[0-9].*[ ]$myhostname$tmp_re/ { sum++ } END { print sum }" hosts` = x1 || tmp_re="[ ]" ! dflt=.`$awk "/[0-9].*[ ]$myhostname$tmp_re/ {for(i=2; i<=NF;i++) print \\\$i}" \ ! hosts | $sort | $uniq | \ ! $sed -n -e "s/$myhostname\.\([-a-zA-Z0-9_.]\)/\1/p"` ! case `$echo X$dflt` in ! X*\ *) echo "(Several hosts in the database matched hostname)" ! dflt=. ! ;; ! X.) echo "(You do not have fully-qualified names in the hosts database)" ! ;; ! esac ! else ! echo "(I cannot locate a hosts database anywhere)" dflt=. ! fi case "$dflt" in .) tans=`./loc resolv.conf X /etc /usr/etc` *************** *** 7026,7032 **** If you or somebody else will be maintaining perl at your site, please fill in the correct e-mail address here so that they may be contacted if necessary. Currently, the "perlbug" program included with perl ! will send mail to this address in addition to perlbug@perl.com. You may enter "none" for no administrator. EOM --- 7258,7264 ---- If you or somebody else will be maintaining perl at your site, please fill in the correct e-mail address here so that they may be contacted if necessary. Currently, the "perlbug" program included with perl ! will send mail to this address in addition to perlbug@perl.org. You may enter "none" for no administrator. EOM *************** *** 7038,7043 **** --- 7270,7294 ---- . ./myread perladmin="$ans" + : determine whether to only install version-specific parts. + echo " " + $cat <&4 - - *** You requested the use of long doubles but you do not seem to have - *** the mathematic functions for long doubles. I'm disabling the use - *** of long doubles. - - EOM - uselongdouble=$undef - ;; - esac - case "$useperlio" in $define|true|[yY]*) dflt='y';; *) dflt='n';; --- 7416,7421 ---- *************** *** 7309,7394 **** installvendorbin="$vendorbinexp" fi ! : see if qgcvt exists ! set qgcvt d_qgcvt ! eval $inlibc ! ! : check for length of double ! echo " " ! case "$doublesize" in ! '') ! echo "Checking to see how big your double precision numbers are..." >&4 ! $cat >try.c <<'EOCP' ! #include ! int main() ! { ! printf("%d\n", (int)sizeof(double)); ! exit(0); ! } ! EOCP ! set try ! if eval $compile_ok; then ! doublesize=`./try` ! echo "Your double is $doublesize bytes long." ! else ! dflt='8' ! echo "(I can't seem to compile the test program. Guessing...)" ! rp="What is the size of a double precision number (in bytes)?" ! . ./myread ! doublesize="$ans" ! fi ! ;; ! esac ! $rm -f try.c try ! ! : check for long doubles ! echo " " ! echo "Checking to see if you have long double..." >&4 ! echo 'int main() { long double x = 7.0; }' > try.c ! set try ! if eval $compile; then ! val="$define" ! echo "You have long double." ! else ! val="$undef" ! echo "You do not have long double." ! fi ! $rm try.* ! set d_longdbl ! eval $setvar ! ! : check for length of long double ! case "${d_longdbl}${longdblsize}" in ! $define) ! echo " " ! echo "Checking to see how big your long doubles are..." >&4 ! $cat >try.c <<'EOCP' ! #include ! int main() ! { ! printf("%d\n", sizeof(long double)); ! } ! EOCP ! set try ! set try ! if eval $compile; then ! longdblsize=`./try$exe_ext` ! echo "Your long doubles are $longdblsize bytes long." ! else ! dflt='8' ! echo " " ! echo "(I can't seem to compile the test program. Guessing...)" >&4 ! rp="What is the size of a long double (in bytes)?" ! . ./myread ! longdblsize="$ans" ! fi ! if $test "X$doublesize" = "X$longdblsize"; then ! echo "(That isn't any different from an ordinary double.)" ! fi ! ;; ! esac ! $rm -f try.* try ! echo " " if $test X"$d_longdbl" = X"$define"; then --- 7471,7480 ---- installvendorbin="$vendorbinexp" fi ! : see if qgcvt exists ! set qgcvt d_qgcvt ! eval $inlibc ! echo " " if $test X"$d_longdbl" = X"$define"; then *************** *** 7410,7416 **** case "$yyy" in 123.456) sPRIfldbl='"f"'; sPRIgldbl='"g"'; sPRIeldbl='"e"'; ! sPRIFldbl='"F"'; sPRIGldbl='"G"'; sPRIEldbl='"E"'; echo "We will use %f." ;; esac --- 7496,7502 ---- case "$yyy" in 123.456) sPRIfldbl='"f"'; sPRIgldbl='"g"'; sPRIeldbl='"e"'; ! sPRIFUldbl='"F"'; sPRIGUldbl='"G"'; sPRIEUldbl='"E"'; echo "We will use %f." ;; esac *************** *** 7432,7438 **** case "$yyy" in 123.456) sPRIfldbl='"llf"'; sPRIgldbl='"llg"'; sPRIeldbl='"lle"'; ! sPRIFldbl='"llF"'; sPRIGldbl='"llG"'; sPRIEldbl='"llE"'; echo "We will use %llf." ;; esac --- 7518,7524 ---- case "$yyy" in 123.456) sPRIfldbl='"llf"'; sPRIgldbl='"llg"'; sPRIeldbl='"lle"'; ! sPRIFUldbl='"llF"'; sPRIGUldbl='"llG"'; sPRIEUldbl='"llE"'; echo "We will use %llf." ;; esac *************** *** 7454,7460 **** case "$yyy" in 123.456) sPRIfldbl='"Lf"'; sPRIgldbl='"Lg"'; sPRIeldbl='"Le"'; ! sPRIFldbl='"LF"'; sPRIGldbl='"LG"'; sPRIEldbl='"LE"'; echo "We will use %Lf." ;; esac --- 7540,7546 ---- case "$yyy" in 123.456) sPRIfldbl='"Lf"'; sPRIgldbl='"Lg"'; sPRIeldbl='"Le"'; ! sPRIFUldbl='"LF"'; sPRIGUldbl='"LG"'; sPRIEUldbl='"LE"'; echo "We will use %Lf." ;; esac *************** *** 7476,7482 **** case "$yyy" in 123.456) sPRIfldbl='"lf"'; sPRIgldbl='"lg"'; sPRIeldbl='"le"'; ! sPRIFldbl='"lF"'; sPRIGldbl='"lG"'; sPRIEldbl='"lE"'; echo "We will use %lf." ;; esac --- 7562,7568 ---- case "$yyy" in 123.456) sPRIfldbl='"lf"'; sPRIgldbl='"lg"'; sPRIeldbl='"le"'; ! sPRIFUldbl='"lF"'; sPRIGUldbl='"lG"'; sPRIEUldbl='"lE"'; echo "We will use %lf." ;; esac *************** *** 7485,7490 **** --- 7571,7578 ---- if $test X"$sPRIfldbl" = X; then echo "Cannot figure out how to print long doubles." >&4 + else + sSCNfldbl=$sPRIfldbl # expect consistency fi $rm -f try try.* *************** *** 7493,7520 **** case "$sPRIfldbl" in '') d_PRIfldbl="$undef"; d_PRIgldbl="$undef"; d_PRIeldbl="$undef"; ! d_PRIFldbl="$undef"; d_PRIGldbl="$undef"; d_PRIEldbl="$undef"; ;; *) d_PRIfldbl="$define"; d_PRIgldbl="$define"; d_PRIeldbl="$define"; ! d_PRIFldbl="$define"; d_PRIGldbl="$define"; d_PRIEldbl="$define"; ;; esac : Check how to convert floats to strings. ! if test "X$d_Gconvert" = X; then ! echo " " ! echo "Checking for an efficient way to convert floats to strings." ! echo " " > try.c ! case "$uselongdouble" in ! "$define") echo "#define USE_LONG_DOUBLE" >>try.c ;; ! esac ! case "$d_longdbl" in ! "$define") echo "#define HAS_LONG_DOUBLE" >>try.c ;; ! esac ! case "$d_PRIgldbl" in ! "$define") echo "#define HAS_PRIgldbl" >>try.c ;; ! esac ! $cat >>try.c < try.c ! case "$uselongdouble" in ! "$define") echo "#define USE_LONG_DOUBLE" >>try.c ;; ! esac ! case "$d_longdbl" in ! "$define") echo "#define HAS_LONG_DOUBLE" >>try.c ;; ! esac ! case "$d_PRIgldbl" in ! "$define") echo "#define HAS_PRIgldbl" >>try.c ;; ! esac ! $cat >>try.c <&4 ! if ./try; then ! echo "I'll use $xxx_convert to convert floats into a string." >&4 ! break; ! else ! echo "...But $xxx_convert didn't work as I expected." ! fi else ! echo "$xxx_convert NOT found." >&4 fi ! done ! ! case "$xxx_convert" in ! gconvert) d_Gconvert='gconvert((x),(n),(t),(b))' ;; ! gcvt) d_Gconvert='gcvt((x),(n),(b))' ;; ! qgcvt) d_Gconvert='qgcvt((x),(n),(b))' ;; ! *) case "$uselongdouble$d_longdbl$d_PRIgldbl" in ! "$define$define$define") ! d_Gconvert="sprintf((b),\"%.*$sPRIgldbl\",(n),(x))" ;; ! *) d_Gconvert='sprintf((b),"%.*g",(n),(x))' ;; ! esac ! ;; ! esac ! fi : Initialize h_fcntl h_fcntl=false --- 7698,7759 ---- Gconvert((DOUBLETYPE)-100000.0, 8, 0, buf); checkit("-100000", buf); + Gconvert((DOUBLETYPE)123.456, 8, 0, buf); + checkit("123.456", buf); + exit(0); } EOP ! case "$d_Gconvert" in ! gconvert*) xxx_list='gconvert gcvt sprintf' ;; ! gcvt*) xxx_list='gcvt gconvert sprintf' ;; ! sprintf*) xxx_list='sprintf gconvert gcvt' ;; ! *) xxx_list='gconvert gcvt sprintf' ;; ! esac ! case "$d_longdbl$uselongdouble$d_PRIgldbl" in ! "$define$define$define") ! # for long doubles prefer first qgcvt, then sprintf ! xxx_list="`echo $xxx_list|sed s/sprintf//`" ! xxx_list="sprintf $xxx_list" ! case "$d_qgcvt" in ! "$define") xxx_list="qgcvt $xxx_list" ;; ! esac ! ;; ! esac ! for xxx_convert in $xxx_list; do ! echo "Trying $xxx_convert..." ! $rm -f try try$_o ! set try -DTRY_$xxx_convert ! if eval $compile; then ! echo "$xxx_convert() found." >&4 ! if ./try; then ! echo "I'll use $xxx_convert to convert floats into a string." >&4 ! break; else ! echo "...But $xxx_convert didn't work as I expected." fi ! else ! echo "$xxx_convert NOT found." >&4 ! fi ! done ! ! case "$xxx_convert" in ! gconvert) d_Gconvert='gconvert((x),(n),(t),(b))' ;; ! gcvt) d_Gconvert='gcvt((x),(n),(b))' ;; ! qgcvt) d_Gconvert='qgcvt((x),(n),(b))' ;; ! *) case "$uselongdouble$d_longdbl$d_PRIgldbl" in ! "$define$define$define") ! d_Gconvert="sprintf((b),\"%.*\"$sPRIgldbl,(n),(x))" ;; ! *) d_Gconvert='sprintf((b),"%.*g",(n),(x))' ;; ! esac ! ;; ! esac ! ! : see if _fwalk exists ! set fwalk d__fwalk ! eval $inlibc : Initialize h_fcntl h_fcntl=false *************** *** 7684,7698 **** EOCP : check sys/file.h first, no particular reason here if $test `./findhdr sys/file.h` && \ ! $cc $cppflags -DI_SYS_FILE -o access access.c >/dev/null 2>&1 ; then h_sysfile=true; echo " defines the *_OK access constants." >&4 elif $test `./findhdr fcntl.h` && \ ! $cc $cppflags -DI_FCNTL -o access access.c >/dev/null 2>&1 ; then h_fcntl=true; echo " defines the *_OK access constants." >&4 elif $test `./findhdr unistd.h` && \ ! $cc $cppflags -DI_UNISTD -o access access.c >/dev/null 2>&1 ; then echo " defines the *_OK access constants." >&4 else echo "I can't find the four *_OK access constants--I'll use mine." >&4 --- 7786,7800 ---- EOCP : check sys/file.h first, no particular reason here if $test `./findhdr sys/file.h` && \ ! $cc -o access $cppflags -DI_SYS_FILE access.c >/dev/null 2>&1 ; then h_sysfile=true; echo " defines the *_OK access constants." >&4 elif $test `./findhdr fcntl.h` && \ ! $cc -o access $cppflags -DI_FCNTL access.c >/dev/null 2>&1 ; then h_fcntl=true; echo " defines the *_OK access constants." >&4 elif $test `./findhdr unistd.h` && \ ! $cc -o access $cppflags -DI_UNISTD access.c >/dev/null 2>&1 ; then echo " defines the *_OK access constants." >&4 else echo "I can't find the four *_OK access constants--I'll use mine." >&4 *************** *** 7782,7791 **** exit(1); } EOP ! if $cc -DTRY_BSD_PGRP $ccflags $ldflags -o set set.c $libs >/dev/null 2>&1 && ./set; then echo "You have to use getpgrp(pid) instead of getpgrp()." >&4 val="$define" ! elif $cc $ccflags $ldflags -o set set.c $libs >/dev/null 2>&1 && ./set; then echo "You have to use getpgrp() instead of getpgrp(pid)." >&4 val="$undef" else --- 7884,7893 ---- exit(1); } EOP ! if $cc -o set -DTRY_BSD_PGRP $ccflags $ldflags set.c $libs >/dev/null 2>&1 && ./set; then echo "You have to use getpgrp(pid) instead of getpgrp()." >&4 val="$define" ! elif $cc -o set $ccflags $ldflags set.c $libs >/dev/null 2>&1 && ./set; then echo "You have to use getpgrp() instead of getpgrp(pid)." >&4 val="$undef" else *************** *** 7844,7853 **** exit(1); } EOP ! if $cc -DTRY_BSD_PGRP $ccflags $ldflags -o set set.c $libs >/dev/null 2>&1 && ./set; then echo 'You have to use setpgrp(pid,pgrp) instead of setpgrp().' >&4 val="$define" ! elif $cc $ccflags $ldflags -o set set.c $libs >/dev/null 2>&1 && ./set; then echo 'You have to use setpgrp() instead of setpgrp(pid,pgrp).' >&4 val="$undef" else --- 7946,7955 ---- exit(1); } EOP ! if $cc -o set -DTRY_BSD_PGRP $ccflags $ldflags set.c $libs >/dev/null 2>&1 && ./set; then echo 'You have to use setpgrp(pid,pgrp) instead of setpgrp().' >&4 val="$define" ! elif $cc -o set $ccflags $ldflags set.c $libs >/dev/null 2>&1 && ./set; then echo 'You have to use setpgrp() instead of setpgrp(pid,pgrp).' >&4 val="$undef" else *************** *** 8399,8406 **** : Call the object file tmp-dyna.o in case dlext=o. if $cc $ccflags $cccdlflags -c dyna.c > /dev/null 2>&1 && mv dyna${_o} tmp-dyna${_o} > /dev/null 2>&1 && ! $ld $lddlflags -o dyna.$dlext tmp-dyna${_o} > /dev/null 2>&1 && ! $cc $ccflags -o fred $ldflags $cccdlflags $ccdlflags fred.c $libs > /dev/null 2>&1; then xxx=`./fred` case $xxx in 1) echo "Test program failed using dlopen." >&4 --- 8501,8508 ---- : Call the object file tmp-dyna.o in case dlext=o. if $cc $ccflags $cccdlflags -c dyna.c > /dev/null 2>&1 && mv dyna${_o} tmp-dyna${_o} > /dev/null 2>&1 && ! $ld -o dyna.$dlext $lddlflags tmp-dyna${_o} > /dev/null 2>&1 && ! $cc -o fred $ccflags $ldflags $cccdlflags $ccdlflags fred.c $libs > /dev/null 2>&1; then xxx=`./fred` case $xxx in 1) echo "Test program failed using dlopen." >&4 *************** *** 8479,8488 **** set endservent d_endsent eval $inlibc - : see if endspent exists - set endspent d_endspent - eval $inlibc - : Locate the flags for 'open()' echo " " $cat >open3.c <<'EOCP' --- 8581,8586 ---- *************** *** 8756,8761 **** --- 8854,8907 ---- set fcntl d_fcntl eval $inlibc + echo " " + : See if fcntl-based locking works. + $cat >try.c <<'EOCP' + #include + #include + #include + int main() { + #if defined(F_SETLK) && defined(F_SETLKW) + struct flock flock; + int retval, fd; + fd = open("try.c", O_RDONLY); + flock.l_type = F_RDLCK; + flock.l_whence = SEEK_SET; + flock.l_start = flock.l_len = 0; + retval = fcntl(fd, F_SETLK, &flock); + close(fd); + (retval < 0 ? exit(2) : exit(0)); + #else + exit(2); + #endif + } + EOCP + echo "Checking if fcntl-based file locking works... " + case "$d_fcntl" in + "$define") + set try + if eval $compile_ok; then + if ./try; then + echo "Yes, it seems to work." + val="$define" + else + echo "Nope, it didn't work." + val="$undef" + fi + else + echo "I'm unable to compile the test program, so I'll assume not." + val="$undef" + fi + ;; + *) val="$undef"; + echo "Nope, since you don't even have fcntl()." + ;; + esac + set d_fcntl_can_lock + eval $setvar + $rm -f try* + + hasfield='varname=$1; struct=$2; field=$3; shift; shift; shift; while $test $# -ge 2; do case "$1" in *************** *** 9062,9067 **** --- 9208,9217 ---- set d_fpos64_t eval $setvar + : see if frexpl exists + set frexpl d_frexpl + eval $inlibc + hasstruct='varname=$1; struct=$2; shift; shift; while $test $# -ge 2; do case "$1" in *************** *** 9128,9133 **** --- 9278,9287 ---- eval $inlibc + : see if fsync exists + set fsync d_fsync + eval $inlibc + : see if ftello exists set ftello d_ftello eval $inlibc *************** *** 9139,9144 **** --- 9293,9302 ---- set getcwd d_getcwd eval $inlibc + : see if getespwnam exists + set getespwnam d_getespwnam + eval $inlibc + : see if getfsstat exists set getfsstat d_getfsstat *************** *** 9283,9288 **** --- 9441,9450 ---- set d_getnetprotos getnetent $i_netdb netdb.h eval $hasproto + : see if getpagesize exists + set getpagesize d_getpagsz + eval $inlibc + : see if getprotobyname exists set getprotobyname d_getpbyname *************** *** 9317,9322 **** --- 9479,9488 ---- set d_getprotoprotos getprotoent $i_netdb netdb.h eval $hasproto + : see if getprpwnam exists + set getprpwnam d_getprpwnam + eval $inlibc + : see if getpwent exists set getpwent d_getpwent eval $inlibc *************** *** 9339,9348 **** set d_getservprotos getservent $i_netdb netdb.h eval $hasproto - : see if getspent exists - set getspent d_getspent - eval $inlibc - : see if getspnam exists set getspnam d_getspnam eval $inlibc --- 9505,9510 ---- *************** *** 9552,9557 **** --- 9714,9727 ---- eval $setvar $rm -f isascii* + : see if isnan exists + set isnan d_isnan + eval $inlibc + + : see if isnanl exists + set isnanl d_isnanl + eval $inlibc + : see if killpg exists set killpg d_killpg eval $inlibc *************** *** 9634,9640 **** set try if eval $compile; then val="$define" ! echo "You have have long long." else val="$undef" echo "You do not have long long." --- 9804,9810 ---- set try if eval $compile; then val="$define" ! echo "You have long long." else val="$undef" echo "You do not have long long." *************** *** 9771,9776 **** --- 9941,9950 ---- + : see if modfl exists + set modfl d_modfl + eval $inlibc + : see if mprotect exists set mprotect d_mprotect eval $inlibc *************** *** 9933,9938 **** --- 10107,10143 ---- charsize="$ans" $rm -f try.c try + : check for volatile keyword + echo " " + echo 'Checking to see if your C compiler knows about "volatile"...' >&4 + $cat >try.c <<'EOCP' + int main() + { + typedef struct _goo_struct goo_struct; + goo_struct * volatile goo = ((goo_struct *)0); + struct _goo_struct { + long long_int; + int reg_int; + char char_var; + }; + typedef unsigned short foo_t; + char *volatile foo; + volatile int bar; + volatile foo_t blech; + foo = foo; + } + EOCP + if $cc -c $ccflags try.c >/dev/null 2>&1 ; then + val="$define" + echo "Yup, it does." + else + val="$undef" + echo "Nope, it doesn't." + fi + set d_volatile + eval $setvar + $rm -f try.* + echo " " $echo "Choosing the C types to be used for Perl's internal types..." >&4 *************** *** 10111,10141 **** ;; esac ! $echo "Checking whether your NVs can preserve your UVs..." >&4 $cat <try.c #include int main() { ! $uvtype k = ($uvtype)~0, l; $nvtype d; ! l = k; ! d = ($nvtype)l; ! l = ($uvtype)d; ! if (l == k) ! printf("preserve\n"); exit(0); } EOP set try if eval $compile; then ! case "`./try$exe_ext`" in ! preserve) d_nv_preserves_uv="$define" ;; ! esac ! fi ! case "$d_nv_preserves_uv" in ! $define) $echo "Yes, they can." 2>&1 ;; ! *) $echo "No, they can't." 2>&1 ! d_nv_preserves_uv="$undef" ! ;; esac $rm -f try.* try --- 10316,10379 ---- ;; esac ! $echo "Checking how many bits of your UVs your NVs can preserve..." >&4 ! : volatile so that the compiler has to store it out to memory. ! if test X"$d_volatile" = X"$define"; then ! volatile=volatile ! fi $cat <try.c #include + #include + #include + #ifdef SIGFPE + $volatile int bletched = 0; + $signal_t blech(s) int s; { bletched = 1; } + #endif int main() { ! $uvtype u = 0; $nvtype d; ! int n = 8 * $uvsize; ! int i; ! #ifdef SIGFPE ! signal(SIGFPE, blech); ! #endif ! ! for (i = 0; i < n; i++) { ! u = u << 1 | ($uvtype)1; ! d = ($nvtype)u; ! if (($uvtype)d != u) ! break; ! if (d <= 0) ! break; ! d = ($nvtype)(u - 1); ! if (($uvtype)d != (u - 1)) ! break; ! #ifdef SIGFPE ! if (bletched) { ! break; ! #endif ! } ! } ! printf("%d\n", ((i == n) ? -n : i)); exit(0); } EOP set try + + d_nv_preserves_uv="$undef" if eval $compile; then ! d_nv_preserves_uv_bits="`./try$exe_ext`" ! fi ! case "$d_nv_preserves_uv_bits" in ! \-[1-9]*) ! d_nv_preserves_uv_bits=`expr 0 - $d_nv_preserves_uv_bits` ! $echo "Your NVs can preserve all $d_nv_preserves_uv_bits bits of your UVs." 2>&1 ! d_nv_preserves_uv="$define" ! ;; ! [1-9]*) $echo "Your NVs can preserve only $d_nv_preserves_uv_bits bits of your UVs." 2>&1 ! d_nv_preserves_uv="$undef" ;; ! *) $echo "Can't figure out how many bits your NVs preserve." 2>&1 ! d_nv_preserves_uv_bits="$undef" ;; esac $rm -f try.* try *************** *** 10934,10939 **** --- 11172,11181 ---- set setpriority d_setprior eval $inlibc + : see if setproctitle exists + set setproctitle d_setproctitle + eval $inlibc + : see if setpwent exists set setpwent d_setpwent eval $inlibc *************** *** 10966,10975 **** set setsid d_setsid eval $inlibc - : see if setspent exists - set setspent d_setspent - eval $inlibc - : see if setvbuf exists set setvbuf d_setvbuf eval $inlibc --- 11208,11213 ---- *************** *** 10998,11007 **** *) dflt='n';; esac echo "$package can use the sfio library, but it is experimental." rp="You seem to have sfio available, do you want to try using it?" . ./myread case "$ans" in ! y|Y) ;; *) echo "Ok, avoiding sfio this time. I'll use stdio instead." val="$undef" : Remove sfio from list of libraries to use --- 11236,11254 ---- *) dflt='n';; esac echo "$package can use the sfio library, but it is experimental." + case "$useperlio" in + "$undef") + echo "For sfio also the PerlIO abstraction layer is needed." + echo "Earlier you said you wouldn't want that." + ;; + esac rp="You seem to have sfio available, do you want to try using it?" . ./myread case "$ans" in ! y|Y) echo "Ok, turning on both sfio and PerlIO, then." ! useperlio="$define" ! val="$define" ! ;; *) echo "Ok, avoiding sfio this time. I'll use stdio instead." val="$undef" : Remove sfio from list of libraries to use *************** *** 11014,11021 **** ;; *) case "$usesfio" in true|$define|[yY]*) ! echo "Sorry, cannot find sfio on this machine" >&4 ! echo "Ignoring your setting of usesfio=$usesfio" >&4 ;; esac ;; --- 11261,11269 ---- ;; *) case "$usesfio" in true|$define|[yY]*) ! echo "Sorry, cannot find sfio on this machine." >&4 ! echo "Ignoring your setting of usesfio=$usesfio." >&4 ! val="$undef" ;; esac ;; *************** *** 11184,11189 **** --- 11432,11441 ---- eval $setvar $rm -f try.c try + : see if socks5_init exists + set socks5_init d_socks5_init + eval $inlibc + : see if sys/stat.h is available set sys/stat.h i_sysstat eval $inhdr *************** *** 11237,11243 **** : see if _ptr and _cnt from stdio act std echo " " ! if $contains '_IO_fpos_t' `./findhdr stdio.h` `./findhdr libio.h` >/dev/null 2>&1 ; then echo "(Looks like you have stdio.h from Linux.)" case "$stdio_ptr" in '') stdio_ptr='((fp)->_IO_read_ptr)' --- 11489,11516 ---- : see if _ptr and _cnt from stdio act std echo " " ! ! if $contains '_lbfsize' `./findhdr stdio.h` >/dev/null 2>&1 ; then ! echo "(Looks like you have stdio.h from BSD.)" ! case "$stdio_ptr" in ! '') stdio_ptr='((fp)->_p)' ! ptr_lval=$define ! ;; ! *) ptr_lval=$d_stdio_ptr_lval;; ! esac ! case "$stdio_cnt" in ! '') stdio_cnt='((fp)->_r)' ! cnt_lval=$define ! ;; ! *) cnt_lval=$d_stdio_cnt_lval;; ! esac ! case "$stdio_base" in ! '') stdio_base='((fp)->_ub._base ? (fp)->_ub._base : (fp)->_bf._base)';; ! esac ! case "$stdio_bufsiz" in ! '') stdio_bufsiz='((fp)->_ub._base ? (fp)->_ub._size : (fp)->_bf._size)';; ! esac ! elif $contains '_IO_fpos_t' `./findhdr stdio.h` `./findhdr libio.h` >/dev/null 2>&1 ; then echo "(Looks like you have stdio.h from Linux.)" case "$stdio_ptr" in '') stdio_ptr='((fp)->_IO_read_ptr)' *************** *** 11277,11282 **** --- 11550,11556 ---- '') stdio_bufsiz='((fp)->_cnt + (fp)->_ptr - (fp)->_base)';; esac fi + : test whether _ptr and _cnt really work echo "Checking how std your stdio is..." >&4 $cat >try.c <&4 + $cat >try.c < + /* Can we scream? */ + /* Eat dust sed :-) */ + /* In the buffer space, no one can hear you scream. */ + #define FILE_ptr(fp) $stdio_ptr + #define FILE_cnt(fp) $stdio_cnt + #include + int main() { + FILE *fp = fopen("try.c", "r"); + int c; + char *ptr; + size_t cnt; + if (!fp) { + puts("Fail even to read"); + exit(1); + } + c = getc(fp); /* Read away the first # */ + if (c == EOF) { + puts("Fail even to read"); + exit(1); + } + if (!( + 18 <= FILE_cnt(fp) && + strncmp(FILE_ptr(fp), "include \n", 18) == 0 + )) { + puts("Fail even to read"); + exit (1); + } + ptr = (char*) FILE_ptr(fp); + cnt = (size_t)FILE_cnt(fp); + + FILE_ptr(fp) += 42; + + if ((char*)FILE_ptr(fp) != (ptr + 42)) { + printf("Fail ptr check %p != %p", FILE_ptr(fp), (ptr + 42)); + exit (1); + } + if (FILE_cnt(fp) <= 20) { + printf ("Fail (<20 chars to test)"); + exit (1); + } + if (strncmp(FILE_ptr(fp), "Eat dust sed :-) */\n", 20) != 0) { + puts("Fail compare"); + exit (1); + } + if (cnt == FILE_cnt(fp)) { + puts("Pass_unchanged"); + exit (0); + } + if (FILE_cnt(fp) == (cnt - 42)) { + puts("Pass_changed"); + exit (0); + } + printf("Fail count was %d now %d\n", cnt, FILE_cnt(fp)); + return 1; + + } + EOP + set try + if eval $compile; then + case `./try$exe_ext` in + Pass_changed) + echo "Increasing ptr in your stdio decreases cnt by the same amount. Good." >&4 + d_stdio_ptr_lval_sets_cnt="$define" ;; + Pass_unchanged) + echo "Increasing ptr in your stdio leaves cnt unchanged. Good." >&4 + d_stdio_ptr_lval_nochange_cnt="$define" ;; + Fail*) + echo "Increasing ptr in your stdio didn't do exactly what I expected. We'll not be doing that then." >&4 ;; + *) + echo "It appears attempting to set ptr in your stdio is a bad plan." >&4 ;; + esac + else + echo "It seems we can't set ptr in your stdio. Nevermind." >&4 + fi + $rm -f try.c try + ;; + esac + : see if _base is also standard val="$undef" case "$d_stdstdio" in *************** *** 11490,11495 **** --- 11851,11859 ---- #ifdef __hpux #define strtoll __strtoll #endif + #ifdef __EMX__ + #define strtoll _strtoll + #endif #include extern long long int strtoll(char *s, char **, int); static int bad = 0; *************** *** 11516,11522 **** EOCP set try if eval $compile; then ! case "`./try`" in ok) echo "Your strtoll() seems to be working okay." ;; *) cat <&4 Your strtoll() doesn't seem to be working okay. --- 11880,11887 ---- EOCP set try if eval $compile; then ! yyy=`./try` ! case "$yyy" in ok) echo "Your strtoll() seems to be working okay." ;; *) cat <&4 Your strtoll() doesn't seem to be working okay. *************** *** 11524,11529 **** --- 11889,11897 ---- d_strtoll="$undef" ;; esac + else + echo "(I can't seem to compile the test program--assuming it doesn't)" + d_strtoll="$undef" fi ;; esac *************** *** 11774,11810 **** set d_void_closedir eval $setvar $rm -f closedir* - : check for volatile keyword - echo " " - echo 'Checking to see if your C compiler knows about "volatile"...' >&4 - $cat >try.c <<'EOCP' - int main() - { - typedef struct _goo_struct goo_struct; - goo_struct * volatile goo = ((goo_struct *)0); - struct _goo_struct { - long long_int; - int reg_int; - char char_var; - }; - typedef unsigned short foo_t; - char *volatile foo; - volatile int bar; - volatile foo_t blech; - foo = foo; - } - EOCP - if $cc -c $ccflags try.c >/dev/null 2>&1 ; then - val="$define" - echo "Yup, it does." - else - val="$undef" - echo "Nope, it doesn't." - fi - set d_volatile - eval $setvar - $rm -f try.* - : see if there is a wait4 set wait4 d_wait4 eval $inlibc --- 12142,12147 ---- *************** *** 12412,12425 **** set tebcdic if eval $compile_ok; then if ./tebcdic; then ! echo "You have EBCDIC." >&4 val="$define" else ! echo "Nope, no EBCDIC, probably ASCII or some ISO Latin." >&4 fi else echo "I'm unable to compile the test program." >&4 ! echo "I'll assume ASCII or some ISO Latin." >&4 fi $rm -f tebcdic.c tebcdic set ebcdic --- 12749,12762 ---- set tebcdic if eval $compile_ok; then if ./tebcdic; then ! echo "You seem to speak EBCDIC." >&4 val="$define" else ! echo "Nope, no EBCDIC, probably ASCII or some ISO Latin. Or UTF8." >&4 fi else echo "I'm unable to compile the test program." >&4 ! echo "I'll assume ASCII or some ISO Latin. Or UTF8." >&4 fi $rm -f tebcdic.c tebcdic set ebcdic *************** *** 12827,12833 **** case "$yyy" in 12345678901) sPRId64='"d"'; sPRIi64='"i"'; sPRIu64='"u"'; ! sPRIo64='"o"'; sPRIx64='"x"'; sPRIX64='"X"'; echo "We will use %d." ;; esac --- 13164,13170 ---- case "$yyy" in 12345678901) sPRId64='"d"'; sPRIi64='"i"'; sPRIu64='"u"'; ! sPRIo64='"o"'; sPRIx64='"x"'; sPRIXU64='"X"'; echo "We will use %d." ;; esac *************** *** 12849,12855 **** case "$yyy" in 12345678901) sPRId64='"ld"'; sPRIi64='"li"'; sPRIu64='"lu"'; ! sPRIo64='"lo"'; sPRIx64='"lx"'; sPRIX64='"lX"'; echo "We will use %ld." ;; esac --- 13186,13192 ---- case "$yyy" in 12345678901) sPRId64='"ld"'; sPRIi64='"li"'; sPRIu64='"lu"'; ! sPRIo64='"lo"'; sPRIx64='"lx"'; sPRIXU64='"lX"'; echo "We will use %ld." ;; esac *************** *** 12872,12878 **** case "$yyy" in 12345678901) sPRId64=PRId64; sPRIi64=PRIi64; sPRIu64=PRIu64; ! sPRIo64=PRIo64; sPRIx64=PRIx64; sPRIX64=PRIX64; echo "We will use the C9X style." ;; esac --- 13209,13215 ---- case "$yyy" in 12345678901) sPRId64=PRId64; sPRIi64=PRIi64; sPRIu64=PRIu64; ! sPRIo64=PRIo64; sPRIx64=PRIx64; sPRIXU64=PRIXU64; echo "We will use the C9X style." ;; esac *************** *** 12884,12890 **** #include #include int main() { ! long long q = 12345678901LL; /* AIX cc requires the LL prefix. */ printf("%lld\n", q); } EOCP --- 13221,13227 ---- #include #include int main() { ! long long q = 12345678901LL; /* AIX cc requires the LL suffix. */ printf("%lld\n", q); } EOCP *************** *** 12894,12900 **** case "$yyy" in 12345678901) sPRId64='"lld"'; sPRIi64='"lli"'; sPRIu64='"llu"'; ! sPRIo64='"llo"'; sPRIx64='"llx"'; sPRIX64='"llX"'; echo "We will use the %lld style." ;; esac --- 13231,13237 ---- case "$yyy" in 12345678901) sPRId64='"lld"'; sPRIi64='"lli"'; sPRIu64='"llu"'; ! sPRIo64='"llo"'; sPRIx64='"llx"'; sPRIXU64='"llX"'; echo "We will use the %lld style." ;; esac *************** *** 12916,12922 **** case "$yyy" in 12345678901) sPRId64='"Ld"'; sPRIi64='"Li"'; sPRIu64='"Lu"'; ! sPRIo64='"Lo"'; sPRIx64='"Lx"'; sPRIX64='"LX"'; echo "We will use %Ld." ;; esac --- 13253,13259 ---- case "$yyy" in 12345678901) sPRId64='"Ld"'; sPRIi64='"Li"'; sPRIu64='"Lu"'; ! sPRIo64='"Lo"'; sPRIx64='"Lx"'; sPRIXU64='"LX"'; echo "We will use %Ld." ;; esac *************** *** 12938,12944 **** case "$yyy" in 12345678901) sPRId64='"qd"'; sPRIi64='"qi"'; sPRIu64='"qu"'; ! sPRIo64='"qo"'; sPRIx64='"qx"'; sPRIX64='"qX"'; echo "We will use %qd." ;; esac --- 13275,13281 ---- case "$yyy" in 12345678901) sPRId64='"qd"'; sPRIi64='"qi"'; sPRIu64='"qu"'; ! sPRIo64='"qo"'; sPRIx64='"qx"'; sPRIXU64='"qX"'; echo "We will use %qd." ;; esac *************** *** 12955,12964 **** case "$sPRId64" in '') d_PRId64="$undef"; d_PRIi64="$undef"; d_PRIu64="$undef"; ! d_PRIo64="$undef"; d_PRIx64="$undef"; d_PRIX64="$undef"; ;; *) d_PRId64="$define"; d_PRIi64="$define"; d_PRIu64="$define"; ! d_PRIo64="$define"; d_PRIx64="$define"; d_PRIX64="$define"; ;; esac --- 13292,13301 ---- case "$sPRId64" in '') d_PRId64="$undef"; d_PRIi64="$undef"; d_PRIu64="$undef"; ! d_PRIo64="$undef"; d_PRIx64="$undef"; d_PRIXU64="$undef"; ;; *) d_PRId64="$define"; d_PRIi64="$define"; d_PRIu64="$define"; ! d_PRIo64="$define"; d_PRIx64="$define"; d_PRIXU64="$define"; ;; esac *************** *** 12971,12988 **** --- 13308,13328 ---- uvuformat="$sPRIu64" uvoformat="$sPRIo64" uvxformat="$sPRIx64" + uvXUformat="$sPRIXU64" else if $test X"$ivsize" = X"$longsize"; then ivdformat='"ld"' uvuformat='"lu"' uvoformat='"lo"' uvxformat='"lx"' + uvXUformat='"lX"' else if $test X"$ivsize" = X"$intsize"; then ivdformat='"d"' uvuformat='"u"' uvoformat='"o"' uvxformat='"x"' + uvXUformat='"X"' else : far out if $test X"$ivsize" = X"$shortsize"; then *************** *** 12990,13000 **** --- 13330,13357 ---- uvuformat='"hu"' uvoformat='"ho"' uvxformat='"hx"' + uvXUformat='"hX"' fi fi fi fi + if $test X"$uselongdouble" = X"$define" -a X"$d_longdbl" = X"$define" -a X"$d_PRIgldbl" = X"$define"; then + nveformat="$sPRIeldbl" + nvfformat="$sPRIfldbl" + nvgformat="$sPRIgldbl" + nvEUformat="$sPRIEUldbl" + nvFUformat="$sPRIFUldbl" + nvGUformat="$sPRIGUldbl" + else + nveformat='"e"' + nvfformat='"f"' + nvgformat='"g"' + nvEUformat='"E"' + nvFUformat='"F"' + nvGUformat='"G"' + fi + case "$ivdformat" in '') echo "$0: Fatal: failed to find format strings, cannot continue." >& 4 exit 1 *************** *** 13273,13284 **** --- 13630,13644 ---- dflt='' case "$pg" in /*) dflt=$pg;; + [a-zA-Z]:/*) dflt=$pg;; esac case "$more" in /*) dflt=$more;; + [a-zA-Z]:/*) dflt=$more;; esac case "$less" in /*) dflt=$less;; + [a-zA-Z]:/*) dflt=$less;; esac case "$dflt" in '') dflt=/usr/ucb/more;; *************** *** 13351,13363 **** $cc $ccflags -c bar2.c >/dev/null 2>&1 $cc $ccflags -c foo.c >/dev/null 2>&1 $ar rc bar$_a bar2$_o bar1$_o >/dev/null 2>&1 ! if $cc $ccflags $ldflags -o foobar foo$_o bar$_a $libs > /dev/null 2>&1 && ./foobar >/dev/null 2>&1; then echo "$ar appears to generate random libraries itself." orderlib=false ranlib=":" elif $ar ts bar$_a >/dev/null 2>&1 && ! $cc $ccflags $ldflags -o foobar foo$_o bar$_a $libs > /dev/null 2>&1 && ./foobar >/dev/null 2>&1; then echo "a table of contents needs to be added with '$ar ts'." orderlib=false --- 13711,13723 ---- $cc $ccflags -c bar2.c >/dev/null 2>&1 $cc $ccflags -c foo.c >/dev/null 2>&1 $ar rc bar$_a bar2$_o bar1$_o >/dev/null 2>&1 ! if $cc -o foobar $ccflags $ldflags foo$_o bar$_a $libs > /dev/null 2>&1 && ./foobar >/dev/null 2>&1; then echo "$ar appears to generate random libraries itself." orderlib=false ranlib=":" elif $ar ts bar$_a >/dev/null 2>&1 && ! $cc -o foobar $ccflags $ldflags foo$_o bar$_a $libs > /dev/null 2>&1 && ./foobar >/dev/null 2>&1; then echo "a table of contents needs to be added with '$ar ts'." orderlib=false *************** *** 13848,13853 **** --- 14208,14217 ---- set d_socklen_t eval $setvar + : see if this is a socks.h system + set socks.h i_socks + eval $inhdr + : check for type of the size argument to socket calls case "$d_socket" in "$define") *************** *** 13855,13861 **** Checking to see what type is the last argument of accept(). EOM - hdrs="$define sys/types.h $d_socket sys/socket.h" yyy='' case "$d_socklen_t" in "$define") yyy="$yyy socklen_t" --- 14219,14224 ---- *************** *** 13864,13873 **** for xxx in $yyy; do case "$socksizetype" in '') try="extern int accept(int, struct sockaddr *, $xxx *);" ! if ./protochk "$try" $hdrs; then ! echo "Your system accepts '$xxx *' for the last argument of accept()." ! socksizetype="$xxx" ! fi ;; esac done --- 14227,14245 ---- for xxx in $yyy; do case "$socksizetype" in '') try="extern int accept(int, struct sockaddr *, $xxx *);" ! case "$usesocks" in ! "$define") ! if ./protochk "$try" $i_systypes sys/types.h $d_socket sys/socket.h literal '#define INCLUDE_PROTOTYPES' $i_socks socks.h.; then ! echo "Your system accepts '$xxx *' for the last argument of accept()." ! socksizetype="$xxx" ! fi ! ;; ! *) if ./protochk "$try" $i_systypes sys/types.h $d_socket sys/socket.h; then ! echo "Your system accepts '$xxx *' for the last argument of accept()." ! socksizetype="$xxx" ! fi ! ;; ! esac ;; esac done *************** *** 14175,14180 **** --- 14547,14556 ---- set ieeefp.h i_ieeefp eval $inhdr + : see if this is a libutil.h system + set libutil.h i_libutil + eval $inhdr + : see if locale.h is available set locale.h i_locale eval $inhdr *************** *** 14254,14259 **** --- 14630,14639 ---- set poll.h i_poll eval $inhdr + : see if this is a prot.h system + set prot.h i_prot + eval $inhdr + echo " " $echo "Guessing which symbols your C compiler and preprocessor define..." >&4 $cat <<'EOSH' > Cppsym.know *************** *** 14290,14296 **** MIPS_SZLONG MIPS_SZPTR MIPSEB MIPSEL MODERN_C motorola mpeix MSDOS MTXINU MULTIMAX mvs MVS n16 ncl_el ncl_mr NetBSD news1500 news1700 news1800 news1900 news3700 ! news700 news800 news900 NeXT NLS ns16000 ns32000 ns32016 ns32332 ns32k nsc32000 OCS88 OEMVS OpenBSD os OS2 OS390 osf OSF1 OSF_SOURCE pa_risc PA_RISC1_1 PA_RISC2_0 PARAGON parisc --- 14670,14676 ---- MIPS_SZLONG MIPS_SZPTR MIPSEB MIPSEL MODERN_C motorola mpeix MSDOS MTXINU MULTIMAX mvs MVS n16 ncl_el ncl_mr NetBSD news1500 news1700 news1800 news1900 news3700 ! news700 news800 news900 NeXT NLS nonstopux ns16000 ns32000 ns32016 ns32332 ns32k nsc32000 OCS88 OEMVS OpenBSD os OS2 OS390 osf OSF1 OSF_SOURCE pa_risc PA_RISC1_1 PA_RISC2_0 PARAGON parisc *************** *** 14322,14329 **** EOSH ./tr '[a-z]' '[A-Z]' < Cppsym.know > Cppsym.a ./tr '[A-Z]' '[a-z]' < Cppsym.know > Cppsym.b ! $cat Cppsym.a Cppsym.b | $tr ' ' $trnl | sort | uniq > Cppsym.know ! $rm -f Cppsym.a Cppsym.b cat < Cppsym $startsh if $test \$# -gt 0; then --- 14702,14710 ---- EOSH ./tr '[a-z]' '[A-Z]' < Cppsym.know > Cppsym.a ./tr '[A-Z]' '[a-z]' < Cppsym.know > Cppsym.b ! $cat Cppsym.know > Cppsym.c ! $cat Cppsym.a Cppsym.b Cppsym.c | $tr ' ' $trnl | $sort | $uniq > Cppsym.know ! $rm -f Cppsym.a Cppsym.b Cppsym.c cat < Cppsym $startsh if $test \$# -gt 0; then *************** *** 14362,14369 **** ccflags="$ccflags" case "$osname-$gccversion" in irix-) ccflags="\$ccflags -woff 1178" ;; esac ! $cc $optimize \$ccflags $ldflags -o try try.c $libs && ./try$exe_ext EOSH chmod +x Cppsym.try $eunicefix Cppsym.try --- 14743,14751 ---- ccflags="$ccflags" case "$osname-$gccversion" in irix-) ccflags="\$ccflags -woff 1178" ;; + os2-*) ccflags="\$ccflags -Zlinker /PM:VIO" ;; esac ! $cc -o try $optimize \$ccflags $ldflags try.c $libs && ./try$exe_ext EOSH chmod +x Cppsym.try $eunicefix Cppsym.try *************** *** 14417,14423 **** else if $test -s ccsym.com; then echo "Your C compiler and pre-processor define these symbols:" ! $sed -e 's/\(.*\)=.*/\1/' ccsym.com also='also ' symbols='ones' cppccsymbols=`$cat ccsym.com` --- 14799,14805 ---- else if $test -s ccsym.com; then echo "Your C compiler and pre-processor define these symbols:" ! $sed -e 's/\(..*\)=.*/\1/' ccsym.com also='also ' symbols='ones' cppccsymbols=`$cat ccsym.com` *************** *** 14427,14433 **** if $test -s ccsym.cpp; then $test "$also" && echo " " echo "Your C pre-processor ${also}defines the following symbols:" ! $sed -e 's/\(.*\)=.*/\1/' ccsym.cpp also='further ' cppsymbols=`$cat ccsym.cpp` cppsymbols=`echo $cppsymbols` --- 14809,14815 ---- if $test -s ccsym.cpp; then $test "$also" && echo " " echo "Your C pre-processor ${also}defines the following symbols:" ! $sed -e 's/\(..*\)=.*/\1/' ccsym.cpp also='further ' cppsymbols=`$cat ccsym.cpp` cppsymbols=`echo $cppsymbols` *************** *** 14436,14449 **** if $test -s ccsym.own; then $test "$also" && echo " " echo "Your C compiler ${also}defines the following cpp symbols:" ! $sed -e 's/\(.*\)=1/\1/' ccsym.own ! $sed -e 's/\(.*\)=.*/\1/' ccsym.own | $uniq >>Cppsym.true ccsymbols=`$cat ccsym.own` ccsymbols=`echo $ccsymbols` $test "$silent" || sleep 1 fi fi ! $rm -f ccsym* : see if this is a termio system val="$undef" --- 14818,14831 ---- if $test -s ccsym.own; then $test "$also" && echo " " echo "Your C compiler ${also}defines the following cpp symbols:" ! $sed -e 's/\(..*\)=1/\1/' ccsym.own ! $sed -e 's/\(..*\)=.*/\1/' ccsym.own | $uniq >>Cppsym.true ccsymbols=`$cat ccsym.own` ccsymbols=`echo $ccsymbols` $test "$silent" || sleep 1 fi fi ! $rm -f ccsym* Cppsym.* : see if this is a termio system val="$undef" *************** *** 14504,14513 **** set shadow.h i_shadow eval $inhdr - : see if this is a socks.h system - set socks.h i_socks - eval $inhdr - : see if stdarg is available echo " " if $test `./findhdr stdarg.h`; then --- 14886,14891 ---- *************** *** 14825,14830 **** --- 15203,15214 ---- true|$define|y) avail_ext="$avail_ext $xxx" ;; esac ;; + Sys/Syslog|sys/syslog) + : XXX syslog requires socket + case "$d_socket" in + true|$define|y) avail_ext="$avail_ext $xxx" ;; + esac + ;; Thread|thread) case "$usethreads" in true|$define|y) avail_ext="$avail_ext $xxx" ;; *************** *** 14971,14976 **** --- 15355,15379 ---- shift extensions="$*" + : Remove libraries needed only for extensions + : The appropriate ext/Foo/Makefile.PL will add them back in, if necessary. + : The exception is SunOS 4.x, which needs them. + case "${osname}X${osvers}" in + sunos*X4*) + perllibs="$libs" + ;; + *) case "$usedl" in + $define|true|[yY]*) + set X `echo " $libs " | sed -e 's@ -lndbm @ @' -e 's@ -lgdbm @ @' -e 's@ -ldbm @ @' -e 's@ -ldb @ @'` + shift + perllibs="$*" + ;; + *) perllibs="$libs" + ;; + esac + ;; + esac + : Remove build directory name from cppstdin so it can be used from : either the present location or the final installed location. echo " " *************** *** 15082,15088 **** --- 15485,15494 ---- cccdlflags='$cccdlflags' ccdlflags='$ccdlflags' ccflags='$ccflags' + ccflags_uselargefiles='$ccflags_uselargefiles' + ccname='$ccname' ccsymbols='$ccsymbols' + ccversion='$ccversion' cf_by='$cf_by' cf_email='$cf_email' cf_time='$cf_time' *************** *** 15109,15118 **** cryptlib='$cryptlib' csh='$csh' d_Gconvert='$d_Gconvert' ! d_PRIEldbl='$d_PRIEldbl' ! d_PRIFldbl='$d_PRIFldbl' ! d_PRIGldbl='$d_PRIGldbl' ! d_PRIX64='$d_PRIX64' d_PRId64='$d_PRId64' d_PRIeldbl='$d_PRIeldbl' d_PRIfldbl='$d_PRIfldbl' --- 15515,15524 ---- cryptlib='$cryptlib' csh='$csh' d_Gconvert='$d_Gconvert' ! d_PRIEUldbl='$d_PRIEUldbl' ! d_PRIFUldbl='$d_PRIFUldbl' ! d_PRIGUldbl='$d_PRIGUldbl' ! d_PRIXU64='$d_PRIXU64' d_PRId64='$d_PRId64' d_PRIeldbl='$d_PRIeldbl' d_PRIfldbl='$d_PRIfldbl' *************** *** 15121,15126 **** --- 15527,15534 ---- d_PRIo64='$d_PRIo64' d_PRIu64='$d_PRIu64' d_PRIx64='$d_PRIx64' + d_SCNfldbl='$d_SCNfldbl' + d__fwalk='$d__fwalk' d_access='$d_access' d_accessx='$d_accessx' d_alarm='$d_alarm' *************** *** 15162,15173 **** d_endpent='$d_endpent' d_endpwent='$d_endpwent' d_endsent='$d_endsent' - d_endspent='$d_endspent' d_eofnblk='$d_eofnblk' d_eunice='$d_eunice' d_fchmod='$d_fchmod' d_fchown='$d_fchown' d_fcntl='$d_fcntl' d_fd_macros='$d_fd_macros' d_fd_set='$d_fd_set' d_fds_bits='$d_fds_bits' --- 15570,15581 ---- d_endpent='$d_endpent' d_endpwent='$d_endpwent' d_endsent='$d_endsent' d_eofnblk='$d_eofnblk' d_eunice='$d_eunice' d_fchmod='$d_fchmod' d_fchown='$d_fchown' d_fcntl='$d_fcntl' + d_fcntl_can_lock='$d_fcntl_can_lock' d_fd_macros='$d_fd_macros' d_fd_set='$d_fd_set' d_fds_bits='$d_fds_bits' *************** *** 15177,15190 **** --- 15585,15601 ---- d_fork='$d_fork' d_fpathconf='$d_fpathconf' d_fpos64_t='$d_fpos64_t' + d_frexpl='$d_frexpl' d_fs_data_s='$d_fs_data_s' d_fseeko='$d_fseeko' d_fsetpos='$d_fsetpos' d_fstatfs='$d_fstatfs' d_fstatvfs='$d_fstatvfs' + d_fsync='$d_fsync' d_ftello='$d_ftello' d_ftime='$d_ftime' d_getcwd='$d_getcwd' + d_getespwnam='$d_getespwnam' d_getfsstat='$d_getfsstat' d_getgrent='$d_getgrent' d_getgrps='$d_getgrps' *************** *** 15200,15205 **** --- 15611,15617 ---- d_getnbyname='$d_getnbyname' d_getnent='$d_getnent' d_getnetprotos='$d_getnetprotos' + d_getpagsz='$d_getpagsz' d_getpbyname='$d_getpbyname' d_getpbynumber='$d_getpbynumber' d_getpent='$d_getpent' *************** *** 15209,15220 **** d_getppid='$d_getppid' d_getprior='$d_getprior' d_getprotoprotos='$d_getprotoprotos' d_getpwent='$d_getpwent' d_getsbyname='$d_getsbyname' d_getsbyport='$d_getsbyport' d_getsent='$d_getsent' d_getservprotos='$d_getservprotos' - d_getspent='$d_getspent' d_getspnam='$d_getspnam' d_gettimeod='$d_gettimeod' d_gnulibc='$d_gnulibc' --- 15621,15632 ---- d_getppid='$d_getppid' d_getprior='$d_getprior' d_getprotoprotos='$d_getprotoprotos' + d_getprpwnam='$d_getprpwnam' d_getpwent='$d_getpwent' d_getsbyname='$d_getsbyname' d_getsbyport='$d_getsbyport' d_getsent='$d_getsent' d_getservprotos='$d_getservprotos' d_getspnam='$d_getspnam' d_gettimeod='$d_gettimeod' d_gnulibc='$d_gnulibc' *************** *** 15226,15231 **** --- 15638,15645 ---- d_inetaton='$d_inetaton' d_int64_t='$d_int64_t' d_isascii='$d_isascii' + d_isnan='$d_isnan' + d_isnanl='$d_isnanl' d_killpg='$d_killpg' d_lchown='$d_lchown' d_ldbl_dig='$d_ldbl_dig' *************** *** 15252,15257 **** --- 15666,15672 ---- d_mkstemps='$d_mkstemps' d_mktime='$d_mktime' d_mmap='$d_mmap' + d_modfl='$d_modfl' d_mprotect='$d_mprotect' d_msg='$d_msg' d_msg_ctrunc='$d_msg_ctrunc' *************** *** 15268,15273 **** --- 15683,15689 ---- d_mymalloc='$d_mymalloc' d_nice='$d_nice' d_nv_preserves_uv='$d_nv_preserves_uv' + d_nv_preserves_uv_bits='$d_nv_preserves_uv_bits' d_off64_t='$d_off64_t' d_old_pthread_create_joinable='$d_old_pthread_create_joinable' d_oldpthreads='$d_oldpthreads' *************** *** 15275,15280 **** --- 15691,15697 ---- d_open3='$d_open3' d_pathconf='$d_pathconf' d_pause='$d_pause' + d_perl_otherlibdirs='$d_perl_otherlibdirs' d_phostname='$d_phostname' d_pipe='$d_pipe' d_poll='$d_poll' *************** *** 15321,15326 **** --- 15738,15744 ---- d_setpgrp2='$d_setpgrp2' d_setpgrp='$d_setpgrp' d_setprior='$d_setprior' + d_setproctitle='$d_setproctitle' d_setpwent='$d_setpwent' d_setregid='$d_setregid' d_setresgid='$d_setresgid' *************** *** 15330,15336 **** d_setruid='$d_setruid' d_setsent='$d_setsent' d_setsid='$d_setsid' - d_setspent='$d_setspent' d_setvbuf='$d_setvbuf' d_sfio='$d_sfio' d_shm='$d_shm' --- 15748,15753 ---- *************** *** 15344,15349 **** --- 15761,15767 ---- d_socket='$d_socket' d_socklen_t='$d_socklen_t' d_sockpair='$d_sockpair' + d_socks5_init='$d_socks5_init' d_sqrtl='$d_sqrtl' d_statblks='$d_statblks' d_statfs_f_flags='$d_statfs_f_flags' *************** *** 15351,15356 **** --- 15769,15776 ---- d_statvfs='$d_statvfs' d_stdio_cnt_lval='$d_stdio_cnt_lval' d_stdio_ptr_lval='$d_stdio_ptr_lval' + d_stdio_ptr_lval_nochange_cnt='$d_stdio_ptr_lval_nochange_cnt' + d_stdio_ptr_lval_sets_cnt='$d_stdio_ptr_lval_sets_cnt' d_stdio_stream_array='$d_stdio_stream_array' d_stdiobase='$d_stdiobase' d_stdstdio='$d_stdstdio' *************** *** 15430,15435 **** --- 15850,15856 ---- full_ar='$full_ar' full_csh='$full_csh' full_sed='$full_sed' + gccosandvers='$gccosandvers' gccversion='$gccversion' gidformat='$gidformat' gidsign='$gidsign' *************** *** 15444,15450 **** h_sysfile='$h_sysfile' hint='$hint' hostcat='$hostcat' - huge='$huge' i16size='$i16size' i16type='$i16type' i32size='$i32size' --- 15865,15870 ---- *************** *** 15467,15472 **** --- 15887,15893 ---- i_iconv='$i_iconv' i_ieeefp='$i_ieeefp' i_inttypes='$i_inttypes' + i_libutil='$i_libutil' i_limits='$i_limits' i_locale='$i_locale' i_machcthr='$i_machcthr' *************** *** 15480,15485 **** --- 15901,15907 ---- i_netinettcp='$i_netinettcp' i_niin='$i_niin' i_poll='$i_poll' + i_prot='$i_prot' i_pthread='$i_pthread' i_pwd='$i_pwd' i_rpcsvcdbm='$i_rpcsvcdbm' *************** *** 15557,15566 **** ivtype='$ivtype' known_extensions='$known_extensions' ksh='$ksh' - large='$large' ld='$ld' lddlflags='$lddlflags' ldflags='$ldflags' ldlibpthname='$ldlibpthname' less='$less' lib_ext='$lib_ext' --- 15979,15988 ---- ivtype='$ivtype' known_extensions='$known_extensions' ksh='$ksh' ld='$ld' lddlflags='$lddlflags' ldflags='$ldflags' + ldflags_uselargefiles='$ldflags_uselargefiles' ldlibpthname='$ldlibpthname' less='$less' lib_ext='$lib_ext' *************** *** 15573,15578 **** --- 15995,16001 ---- libsfound='$libsfound' libspath='$libspath' libswanted='$libswanted' + libswanted_uselargefiles='$libswanted_uselargefiles' line='$line' lint='$lint' lkflags='$lkflags' *************** *** 15601,15611 **** man3dir='$man3dir' man3direxp='$man3direxp' man3ext='$man3ext' - medium='$medium' mips_type='$mips_type' mkdir='$mkdir' mmaptype='$mmaptype' - models='$models' modetype='$modetype' more='$more' multiarch='$multiarch' --- 16024,16032 ---- *************** *** 15624,15629 **** --- 16045,16056 ---- nm_so_opt='$nm_so_opt' nonxs_ext='$nonxs_ext' nroff='$nroff' + nvEUformat='$nvEUformat' + nvFUformat='$nvFUformat' + nvGUformat='$nvGUformat' + nveformat='$nveformat' + nvfformat='$nvfformat' + nvgformat='$nvgformat' nvsize='$nvsize' nvtype='$nvtype' o_nonblock='$o_nonblock' *************** *** 15633,15638 **** --- 16060,16066 ---- orderlib='$orderlib' osname='$osname' osvers='$osvers' + otherlibdirs='$otherlibdirs' package='$package' pager='$pager' passcat='$passcat' *************** *** 15641,15646 **** --- 16069,16075 ---- perl5='$perl5' perl='$perl' perladmin='$perladmin' + perllibs='$perllibs' perlpath='$perlpath' pg='$pg' phostname='$phostname' *************** *** 15666,15675 **** rm='$rm' rmail='$rmail' runnm='$runnm' ! sPRIEldbl='$sPRIEldbl' ! sPRIFldbl='$sPRIFldbl' ! sPRIGldbl='$sPRIGldbl' ! sPRIX64='$sPRIX64' sPRId64='$sPRId64' sPRIeldbl='$sPRIeldbl' sPRIfldbl='$sPRIfldbl' --- 16095,16104 ---- rm='$rm' rmail='$rmail' runnm='$runnm' ! sPRIEUldbl='$sPRIEUldbl' ! sPRIFUldbl='$sPRIFUldbl' ! sPRIGUldbl='$sPRIGUldbl' ! sPRIXU64='$sPRIXU64' sPRId64='$sPRId64' sPRIeldbl='$sPRIeldbl' sPRIfldbl='$sPRIfldbl' *************** *** 15678,15683 **** --- 16107,16113 ---- sPRIo64='$sPRIo64' sPRIu64='$sPRIu64' sPRIx64='$sPRIx64' + sSCNfldbl='$sSCNfldbl' sched_yield='$sched_yield' scriptdir='$scriptdir' scriptdirexp='$scriptdirexp' *************** *** 15712,15718 **** sizetype='$sizetype' sleep='$sleep' smail='$smail' - small='$small' so='$so' sockethdr='$sockethdr' socketlib='$socketlib' --- 16142,16147 ---- *************** *** 15720,15726 **** sort='$sort' spackage='$spackage' spitshell='$spitshell' - split='$split' src='$src' ssizetype='$ssizetype' startperl='$startperl' --- 16149,16154 ---- *************** *** 15785,15790 **** --- 16213,16219 ---- usevfork='$usevfork' usrinc='$usrinc' uuname='$uuname' + uvXUformat='$uvXUformat' uvoformat='$uvoformat' uvsize='$uvsize' uvtype='$uvtype' *************** *** 15800,15805 **** --- 16229,16235 ---- vendorprefix='$vendorprefix' vendorprefixexp='$vendorprefixexp' version='$version' + versiononly='$versiononly' vi='$vi' voidflags='$voidflags' xlibpth='$xlibpth' *************** *** 15818,15826 **** : propagate old symbols if $test -f UU/config.sh; then ! UU/oldconfig.sh sed -n 's/^\([a-zA-Z_0-9]*\)=.*/\1/p' config.sh config.sh UU/oldconfig.sh |\ ! sort | uniq -u >UU/oldsyms set X `cat UU/oldsyms` shift case $# in --- 16248,16256 ---- : propagate old symbols if $test -f UU/config.sh; then ! UU/oldconfig.sh sed -n 's/^\([a-zA-Z_0-9]*\)=.*/\1/p' config.sh config.sh UU/oldconfig.sh |\ ! $sort | $uniq -u >UU/oldsyms set X `cat UU/oldsyms` shift case $# in *************** *** 15894,15900 **** . UU/myread case "$ans" in y*) ! $make depend && echo "Now you must run a $make." ;; *) echo "You must run '$make depend' then '$make'." --- 16324,16330 ---- . UU/myread case "$ans" in y*) ! $make depend && echo "Now you must run '$make'." ;; *) echo "You must run '$make depend' then '$make'." Index: INSTALL Prereq: 1.58 ####### perl-5.6.1-TRIAL1/ => perl-5.6.1-TRIAL1 *** perl-5.6.1-TRIAL1/INSTALL Tue Mar 7 14:40:27 2000 --- perl-5.6.1-TRIAL1/INSTALL Sun Dec 17 19:49:48 2000 *************** *** 6,12 **** First, make sure you are installing an up-to-date version of Perl. If you didn't get your Perl source from CPAN, check the latest version at ! . The basic steps to build and install perl5 on a Unix system with all the defaults are: --- 6,12 ---- First, make sure you are installing an up-to-date version of Perl. If you didn't get your Perl source from CPAN, check the latest version at ! . The basic steps to build and install perl5 on a Unix system with all the defaults are: *************** *** 24,29 **** --- 24,38 ---- Each of these is explained in further detail below. + B: starting from the release 5.6.0 Perl will use a version + scheme where even-numbered subreleases (like 5.6) are stable + maintenance releases and odd-numbered subreleases (like 5.7) are + unstable development releases. Development releases should not be + used in production environments. Fixes and new features are first + carefully tested in development releases and only if they prove + themselves to be worthy will they be migrated to the maintenance + releases. + The above commands will install Perl to /usr/local or /opt, depending on the platform. If that's not okay with you, use *************** *** 76,82 **** with: perl Makefile.PL POLLUTE=1 ! Alternatively, you can enable CPP symbol pollution wholesale by building perl itself with: --- 85,91 ---- with: perl Makefile.PL POLLUTE=1 ! Alternatively, you can enable CPP symbol pollution wholesale by building perl itself with: *************** *** 113,120 **** =head1 WARNING: This version requires a compiler that supports ANSI C. ! If you find that your C compiler is not ANSI-capable, try obtaining ! GCC, available from GNU mirrors worldwide (e.g. ftp://ftp.gnu.org/pub/gnu). Another alternative may be to use a tool like ansi2knr to convert the sources back to K&R style, but there is no guarantee this route will get you anywhere, since the prototypes are not the only ANSI features used --- 122,163 ---- =head1 WARNING: This version requires a compiler that supports ANSI C. ! Most C compilers are now ANSI-compliant. However, a few current ! computers are delivered with an older C compiler expressly for ! rebuilding the system kernel, or for some other historical reason. ! Alternatively, you may have an old machine which was shipped before ! ANSI compliance became widespread. Such compilers are not suitable ! for building Perl. ! ! If you find that your default C compiler is not ANSI-capable, but you ! know that an ANSI-capable compiler is installed on your system, you ! can tell F to use the correct compiler by means of the ! C<-Dcc=> command-line option -- see L<"gcc">. ! ! If do not have an ANSI-capable compiler there are several avenues open ! to you: ! ! =over 4 ! ! =item * ! ! You may try obtaining GCC, available from GNU mirrors worldwide, ! listed at . If, rather than ! building gcc from source code, you locate a binary version configured ! for your platform, be sure that it is compiled for the version of the ! operating system that you are using. ! ! =item * ! ! You may purchase a commercial ANSI C compiler from your system ! supplier or elsewhere. (Or your organization may already have ! licensed such software -- ask your colleagues to find out how to ! access it.) If there is a README file for your system in the Perl ! distribution (for example, F), it may contain advice on ! suitable compilers. ! ! =item * ! Another alternative may be to use a tool like ansi2knr to convert the sources back to K&R style, but there is no guarantee this route will get you anywhere, since the prototypes are not the only ANSI features used *************** *** 125,133 **** the sources back to the platform without GCC. If you succeed in automatically converting the sources to a K&R compatible ! form, be sure to email perlbug@perl.com to let us know the steps you followed. This will enable us to officially support this option. Although Perl can be compiled using a C++ compiler, the Configure script does not work with some C++ compilers. --- 168,178 ---- the sources back to the platform without GCC. If you succeed in automatically converting the sources to a K&R compatible ! form, be sure to email perlbug@perl.org to let us know the steps you followed. This will enable us to officially support this option. + =back + Although Perl can be compiled using a C++ compiler, the Configure script does not work with some C++ compilers. *************** *** 291,297 **** sh Configure -des ! For my Solaris system, I usually use sh Configure -Dprefix=/opt/perl -Doptimize='-xpentium -xO4' -des --- 336,349 ---- sh Configure -des ! Note: for development releases (odd subreleases, like 5.7, as opposed ! to maintenance releases which have even subreleases, like 5.6) ! if you want to use Configure -d, you will also need to supply -Dusedevel ! to Configure, because the default answer to the question "do you really ! want to Configure a development version?" is "no". The -Dusedevel ! skips that sanity check. ! ! For example for my Solaris system, I usually use sh Configure -Dprefix=/opt/perl -Doptimize='-xpentium -xO4' -des *************** *** 461,469 **** As a final catch-all, Configure also offers an $otherlibdirs variable. This variable contains a colon-separated list of additional ! directories to add to @INC. By default, it will be set to ! $prefix/site_perl if Configure detects that you have 5.004-era modules ! installed there. However, you can set it to anything you like. =item Man Pages --- 513,521 ---- As a final catch-all, Configure also offers an $otherlibdirs variable. This variable contains a colon-separated list of additional ! directories to add to @INC. By default, it will be empty. ! Perl will search these directories (including architecture and ! version-specific subdirectories) for add-on modules and extensions. =item Man Pages *************** *** 634,639 **** --- 686,737 ---- Eventually (by perl v5.6.0) this internal confusion ought to disappear, and these options may disappear as well. + =head2 64 bit support. + + If your platform does not have 64 bits natively, but can simulate them with + compiler flags and/or C or C, you can build a perl that + uses 64 bits. + + There are actually two modes of 64-bitness: the first one is achieved + using Configure -Duse64bitint and the second one using Configure + -Duse64bitall. The difference is that the first one is minimal and + the second one maximal. The first works in more places than the second. + + The C does only as much as is required to get 64-bit + integers into Perl (this may mean, for example, using "long longs") + while your memory may still be limited to 2 gigabytes (because your + pointers could still be 32-bit). Note that the name C<64bitint> does + not imply that your C compiler will be using 64-bit Cs (it might, + but it doesn't have to): the C means that you will be + able to have 64 bits wide scalar values. + + The C goes all the way by attempting to switch also + integers (if it can), longs (and pointers) to being 64-bit. This may + create an even more binary incompatible Perl than -Duse64bitint: the + resulting executable may not run at all in a 32-bit box, or you may + have to reboot/reconfigure/rebuild your operating system to be 64-bit + aware. + + Natively 64-bit systems like Alpha and Cray need neither -Duse64bitint + nor -Duse64bitall. + + NOTE: 64-bit support is still experimental on most platforms. + Existing support only covers the LP64 data model. In particular, the + LLP64 data model is not yet supported. 64-bit libraries and system + APIs on many platforms have not stabilized--your mileage may vary. + + =head2 Long doubles + + In some systems you may be able to use long doubles to enhance the + range and precision of your double precision floating point numbers + (that is, Perl's numbers). Use Configure -Duselongdouble to enable + this support (if it is available). + + =head2 "more bits" + + You can "Configure -Dusemorebits" to turn on both the 64-bit support + and the long double support. + =head2 Selecting File IO mechanisms Previous versions of perl used the standard IO mechanisms as defined in *************** *** 665,671 **** configuration exists to allow these issues to be worked on. This option requires the 'sfio' package to have been built and installed. ! A (fairly old) version of sfio is in CPAN. You select this option by --- 763,769 ---- configuration exists to allow these issues to be worked on. This option requires the 'sfio' package to have been built and installed. ! The latest sfio is available from http://www.research.att.com/sw/tools/sfio/ You select this option by *************** *** 682,690 **** _exit vs. exit. If you have this problem, the fix is to go back to your sfio sources and correct iffe's guess about atexit. - There also might be a more recent release of Sfio that fixes your - problem. - =item 2. Normal stdio IO, but with all IO going through calls to the PerlIO --- 780,785 ---- *************** *** 703,708 **** --- 798,810 ---- =back + =head2 SOCKS + + Perl can be configured to be 'socksified', that is, to use the SOCKS + TCP/IP proxy protocol library. SOCKS is used to give applications + access to transport layer network proxies. Perl supports only SOCKS + Version 5. You can find more about SOCKS from http://www.socks.nec.com/ + =head2 Dynamic Loading By default, Configure will compile perl to use dynamic loading if *************** *** 1295,1330 **** it might well be a symptom of the gcc "varargs problem". See the previous L<"varargs"> item. - =item Solaris and SunOS dynamic loading - - If you have problems with dynamic loading using gcc on SunOS or - Solaris, and you are using GNU as and GNU ld, you may need to add - -B/bin/ (for SunOS) or -B/usr/ccs/bin/ (for Solaris) to your - $ccflags, $ldflags, and $lddlflags so that the system's versions of as - and ld are used. Note that the trailing '/' is required. - Alternatively, you can use the GCC_EXEC_PREFIX - environment variable to ensure that Sun's as and ld are used. Consult - your gcc documentation for further information on the -B option and - the GCC_EXEC_PREFIX variable. - - One convenient way to ensure you are not using GNU as and ld is to - invoke Configure with - - sh Configure -Dcc='gcc -B/usr/ccs/bin/' - - for Solaris systems. For a SunOS system, you must use -B/bin/ - instead. - - Alternatively, recent versions of GNU ld reportedly work if you - include C<-Wl,-export-dynamic> in the ccdlflags variable in - config.sh. - - =item ld.so.1: ./perl: fatal: relocation error: - - If you get this message on SunOS or Solaris, and you're using gcc, - it's probably the GNU as or GNU ld problem in the previous item - L<"Solaris and SunOS dynamic loading">. - =item LD_LIBRARY_PATH If you run into dynamic loading problems, check your setting of --- 1397,1402 ---- *************** *** 1333,1350 **** fine with LD_LIBRARY_PATH unset, though that may depend on details of your local set-up. - =item dlopen: stub interception failed - - The primary cause of the 'dlopen: stub interception failed' message is - that the LD_LIBRARY_PATH environment variable includes a directory - which is a symlink to /usr/lib (such as /lib). - - The reason this causes a problem is quite subtle. The file libdl.so.1.0 - actually *only* contains functions which generate 'stub interception - failed' errors! The runtime linker intercepts links to - "/usr/lib/libdl.so.1.0" and links in internal implementation of those - functions instead. [Thanks to Tim Bunce for this explanation.] - =item nm extraction If Configure seems to be having trouble finding library functions, --- 1405,1410 ---- *************** *** 1518,1523 **** --- 1578,1600 ---- vendor-supplied utilities explicitly to Configure, for example by Configure -Dar=/bin/ar. + =item THIS PACKAGE SEEMS TO BE INCOMPLETE + + The F program has not been able to find all the files which + make up the complete Perl distribution. You may have a damaged source + archive file (in which case you may also have seen messages such as + C and C), or you may have obtained a structurally-sound but + incomplete archive. In either case, try downloading again from the + official site named at the start of this document. If you do find + that any site is carrying a corrupted or incomplete source code + archive, please report it to the site's maintainer. + + =item invalid token: ## + + You are using a non-ANSI-compliant C compiler. See L. + =item Miscellaneous Some additional things that have been reported for either perl4 or perl5: *************** *** 1616,1621 **** --- 1693,1743 ---- tries to exercise the regular expression subsystem quite thoroughly, and may well be far more demanding than your normal usage. + =item Test failures from lib/ftmp-security saying "system possibly insecure" + + Firstly, test failures from the ftmp-security are not necessarily + serious or indicative of a real security threat. That being said, + they bear investigating. + + The tests may fail for the following reasons. Note that each of the + tests is run both in the building directory and the temporary + directory, as returned by File::Spec->tmpdir(). + + (1) If the directory the tests are being run is owned by somebody else + than the user running the tests, or root (uid 0). This failure can + happen if the Perl source code distribution is unpacked in a way that + the user ids in the distribution package are used as-is. Some tar + programs do this. + + (2) If the directory the test are being run in is writable by group + or by other (remember: with UNIX/POSIX semantics, write access to + a directory means the right to add/remove files in that directory), + and there is no sticky bit set in the directory. 'Sticky bit' is + a feature used in some UNIXes to give extra protection to files: if + the bit is on a directory, no one but the owner (or the root) can remove + that file even if the permissions of the directory would allow file + removal by others. This failure can happen if the permissions in the + directory simply are a bit too liberal for the tests' liking. This + may or may not be a real problem: it depends on the permissions policy + used on this particular directory/project/system/site. This failure + can also happen if the system either doesn't support the sticky bit + (this is the case with many non-UNIX platforms: in principle the + File::Temp should know about these platforms and skip the tests), or + if the system supports the sticky bit but for some reason or reasons + it is not being used. This is for example the case with HP-UX: as of + HP-UX release 11.00, the sticky bit is very much supported, but HP-UX + doesn't use it on its /tmp directory as shipped. Also as with the + permissions, some local policy might dictate that the stickiness is + not used. + + (3) If the system supports the POSIX 'chown giveaway' feature and if + any of the parent directories of the temporary file back to the root + directory are 'unsafe', using the definitions given above in (1) and + (2). + + See the documentation for the File::Temp module for more information + about the various security aspects. + =back =head1 make install *************** *** 1654,1665 **** --- 1776,1792 ---- make install will install the following: + binaries + perl, perl5.nnn where nnn is the current release number. This will be a link to perl. suidperl, sperl5.nnn If you requested setuid emulation. a2p awk-to-perl translator + + scripts + cppstdin This is used by perl -P, if your cc -E can't read from stdin. c2ph, pstruct Scripts for handling C structures in header files. *************** *** 1672,1684 **** pl2pm Convert Perl 4 .pl files to Perl 5 .pm modules pod2html, Converters from perl's pod documentation format pod2latex, to other useful formats. ! pod2man, and ! pod2text splain Describe Perl warnings and errors dprofpp Perl code profile post-processor ! library files in $privlib and $archlib specified to Configure, usually under /usr/local/lib/perl5/. man pages in $man1dir, usually /usr/local/man/man1. module man pages in $man3dir, usually /usr/local/man/man3. --- 1799,1819 ---- pl2pm Convert Perl 4 .pl files to Perl 5 .pm modules pod2html, Converters from perl's pod documentation format pod2latex, to other useful formats. ! pod2man, ! pod2text, ! pod2checker, ! pod2select, ! pod2usage splain Describe Perl warnings and errors dprofpp Perl code profile post-processor ! library files ! ! in $privlib and $archlib specified to Configure, usually under /usr/local/lib/perl5/. + + documentation + man pages in $man1dir, usually /usr/local/man/man1. module man pages in $man3dir, usually /usr/local/man/man3. *************** *** 1687,1697 **** Installperl will also create the directories listed above in L<"Installation Directories">. ! Perl's *.h header files and the libperl.a library are also installed under $archlib so that any user may later build new modules, run the optional Perl compiler, or embed the perl interpreter into another program even if the Perl source is no longer available. =head1 Coexistence with earlier versions of perl5 In general, you can usually safely upgrade from one version of Perl (e.g. --- 1822,1849 ---- Installperl will also create the directories listed above in L<"Installation Directories">. ! Perl's *.h header files and the libperl library are also installed under $archlib so that any user may later build new modules, run the optional Perl compiler, or embed the perl interpreter into another program even if the Perl source is no longer available. + Sometimes you only want to install the version-specific parts of the perl + installation. For example, you may wish to install a newer version of + perl alongside an already installed production version of perl without + disabling installation of new modules for the production version. + To only install the version-specific parts of the perl installation, run + + Configure -Dversiononly + + or answer 'y' to the appropriate Configure prompt. Alternatively, + you can just manually run + + ./perl installperl -v + + and skip installman altogether. + See also L<"Maintaining completely separate versions"> for another + approach. + =head1 Coexistence with earlier versions of perl5 In general, you can usually safely upgrade from one version of Perl (e.g. *************** *** 1878,1884 **** If you have difficulty building perl, and none of the advice in this file helps, and careful reading of the error message and the relevant manual pages on your system doesn't help either, then you should send a message ! to either the comp.lang.perl.misc newsgroup or to perlbug@perl.com with an accurate description of your problem. Please include the output of the ./myconfig shell script that comes with --- 2030,2036 ---- If you have difficulty building perl, and none of the advice in this file helps, and careful reading of the error message and the relevant manual pages on your system doesn't help either, then you should send a message ! to either the comp.lang.perl.misc newsgroup or to perlbug@perl.org with an accurate description of your problem. Please include the output of the ./myconfig shell script that comes with Index: MANIFEST ####### perl-5.6.1-TRIAL1/ => perl-5.6.1-TRIAL1 *** perl-5.6.1-TRIAL1/MANIFEST Wed Mar 22 11:33:23 2000 --- perl-5.6.1-TRIAL1/MANIFEST Mon Dec 18 00:52:32 2000 *************** *** 12,18 **** EXTERN.h Included before foreign .h files INSTALL Detailed installation instructions INTERN.h Included before domestic .h files - MAINTAIN Who maintains which files MANIFEST This list of files Makefile.SH A script that generates Makefile Policy_sh.SH Hold site-wide preferences between Configure runs. --- 12,17 ---- *************** *** 30,37 **** --- 29,38 ---- Porting/patching.pod How to report changes made to Perl Porting/patchls Flexible patch file listing utility Porting/pumpkin.pod Guidelines and hints for Perl maintainers + Porting/repository.pod How to use the Perl repository README The Instructions README.Y2K Notes about Year 2000 concerns + README.aix Notes about AIX port README.amiga Notes about AmigaOS port README.apollo Notes about Apollo DomainOS port README.beos Notes about BeOS port *************** *** 48,53 **** --- 49,55 ---- README.plan9 Notes about Plan9 port README.posix-bc Notes about BS2000 POSIX port README.qnx Notes about QNX port + README.solaris Notes about Solaris port README.threads Notes about multithreading README.vmesa Notes about VM/ESA port README.vms Notes about installing the VMS port *************** *** 69,76 **** configure.gnu Crude emulation of GNU configure cop.h Control operator header cv.h Code value header - cygwin/cygwin.c Additional code for Cygwin port cygwin/Makefile.SHs Shared library generation for Cygwin port cygwin/ld2.in ld wrapper template for Cygwin port cygwin/perlld.in dll generator template for Cygwin port deb.c Debugging routines --- 71,78 ---- configure.gnu Crude emulation of GNU configure cop.h Control operator header cv.h Code value header cygwin/Makefile.SHs Shared library generation for Cygwin port + cygwin/cygwin.c Additional code for Cygwin port cygwin/ld2.in ld wrapper template for Cygwin port cygwin/perlld.in dll generator template for Cygwin port deb.c Debugging routines *************** *** 238,243 **** --- 240,246 ---- ext/DynaLoader/dl_dlopen.xs BSD/SunOS4&5 dlopen() style implementation ext/DynaLoader/dl_dyld.xs NeXT/Apple dyld implementation ext/DynaLoader/dl_hpux.xs HP-UX implementation + ext/DynaLoader/dl_mac.xs MacOS implementation ext/DynaLoader/dl_mpeix.xs MPE/iX implementation ext/DynaLoader/dl_next.xs NeXT implementation ext/DynaLoader/dl_none.xs Stub implementation *************** *** 246,251 **** --- 249,255 ---- ext/DynaLoader/dlutils.c Dynamic loader utilities for dl_*.xs files ext/DynaLoader/hints/aix.pl Hint for DynaLoader for named architecture ext/DynaLoader/hints/linux.pl Hint for DynaLoader for named architecture + ext/DynaLoader/hints/netbsd.pl Hint for DynaLoader for named architecture ext/DynaLoader/hints/openbsd.pl Hint for DynaLoader for named architecture ext/Errno/ChangeLog Errno perl module change log ext/Errno/Errno_pm.PL Errno perl module create script *************** *** 300,307 **** ext/NDBM_File/hints/cygwin.pl Hint for NDBM_File for named architecture ext/NDBM_File/hints/dec_osf.pl Hint for NDBM_File for named architecture ext/NDBM_File/hints/dynixptx.pl Hint for NDBM_File for named architecture - ext/NDBM_File/hints/solaris.pl Hint for NDBM_File for named architecture ext/NDBM_File/hints/sco.pl Hint for NDBM_File for named architecture ext/NDBM_File/hints/svr4.pl Hint for NDBM_File for named architecture ext/NDBM_File/typemap NDBM extension interface types ext/ODBM_File/Makefile.PL ODBM extension makefile writer --- 304,311 ---- ext/NDBM_File/hints/cygwin.pl Hint for NDBM_File for named architecture ext/NDBM_File/hints/dec_osf.pl Hint for NDBM_File for named architecture ext/NDBM_File/hints/dynixptx.pl Hint for NDBM_File for named architecture ext/NDBM_File/hints/sco.pl Hint for NDBM_File for named architecture + ext/NDBM_File/hints/solaris.pl Hint for NDBM_File for named architecture ext/NDBM_File/hints/svr4.pl Hint for NDBM_File for named architecture ext/NDBM_File/typemap NDBM extension interface types ext/ODBM_File/Makefile.PL ODBM extension makefile writer *************** *** 366,374 **** ext/Socket/Makefile.PL Socket extension makefile writer ext/Socket/Socket.pm Socket extension Perl module ext/Socket/Socket.xs Socket extension external subroutines - ext/Sys/Hostname/Makefile.PL Sys::Hostname extension makefile writer ext/Sys/Hostname/Hostname.pm Sys::Hostname extension Perl module ext/Sys/Hostname/Hostname.xs Sys::Hostname extension external subroutines ext/Sys/Syslog/Makefile.PL Sys::Syslog extension makefile writer ext/Sys/Syslog/Syslog.pm Sys::Syslog extension Perl module ext/Sys/Syslog/Syslog.xs Sys::Syslog extension external subroutines --- 370,378 ---- ext/Socket/Makefile.PL Socket extension makefile writer ext/Socket/Socket.pm Socket extension Perl module ext/Socket/Socket.xs Socket extension external subroutines ext/Sys/Hostname/Hostname.pm Sys::Hostname extension Perl module ext/Sys/Hostname/Hostname.xs Sys::Hostname extension external subroutines + ext/Sys/Hostname/Makefile.PL Sys::Hostname extension makefile writer ext/Sys/Syslog/Makefile.PL Sys::Syslog extension makefile writer ext/Sys/Syslog/Syslog.pm Sys::Syslog extension Perl module ext/Sys/Syslog/Syslog.xs Sys::Syslog extension external subroutines *************** *** 478,483 **** --- 482,488 ---- hints/next_3.sh Hints for named architecture hints/next_3_0.sh Hints for named architecture hints/next_4.sh Hints for named architecture + hints/nonstopux.sh Hints for named architecture hints/openbsd.sh Hints for named architecture hints/opus.sh Hints for named architecture hints/os2.sh Hints for named architecture *************** *** 567,572 **** --- 572,578 ---- lib/CGI/Pretty.pm Output nicely formatted HTML lib/CGI/Push.pm Support for server push lib/CGI/Switch.pm Simple interface for multiple server types + lib/CGI/Util.pm Utility functions lib/CPAN.pm Interface to Comprehensive Perl Archive Network lib/CPAN/FirstTime.pm Utility for creating CPAN config files lib/CPAN/Nox.pm Runs CPAN while avoiding compiled extensions *************** *** 616,621 **** --- 622,629 ---- lib/File/Spec/Unix.pm portable operations on Unix file names lib/File/Spec/VMS.pm portable operations on VMS file names lib/File/Spec/Win32.pm portable operations on Win32 file names + lib/File/Spec/Epoc.pm portable operations on EPOC file names + lib/File/Temp.pm create safe temporary files and file handles lib/File/stat.pm By-name interface to Perl's builtin stat lib/FileCache.pm Keep more files open than the system permits lib/FileHandle.pm Backward-compatible front end to IO extension *************** *** 639,644 **** --- 647,653 ---- lib/Pod/Functions.pm used by pod/splitpod lib/Pod/Html.pm Convert POD data to HTML lib/Pod/InputObjects.pm Pod-Parser - define objects for input streams + lib/Pod/LaTeX.pm Convert POD data to LaTeX lib/Pod/Man.pm Convert POD data to *roff lib/Pod/ParseUtils.pm Pod-Parser - pod utility functions lib/Pod/Parser.pm Pod-Parser - define base class for parsing POD *************** *** 677,682 **** --- 686,692 ---- lib/UNIVERSAL.pm Base class for ALL classes lib/User/grent.pm By-name interface to Perl's builtin getgr* lib/User/pwent.pm By-name interface to Perl's builtin getpw* + lib/Win32.pod Documentation for Win32 extras lib/abbrev.pl An abbreviation table builder lib/assert.pl assertion and panic with stack trace lib/attributes.pm For "sub foo : attrlist" *************** *** 734,742 **** --- 744,754 ---- lib/unicode/ArabLink.pl Unicode character database lib/unicode/ArabLnkGrp.pl Unicode character database lib/unicode/ArabShap.txt Unicode character database + lib/unicode/BidiMirr.txt Unicode character database lib/unicode/Bidirectional.pl Unicode character database lib/unicode/Block.pl Unicode character database lib/unicode/Blocks.txt Unicode character database + lib/unicode/CaseFold.txt Unicode character database lib/unicode/Category.pl Unicode character database lib/unicode/CombiningClass.pl Unicode character database lib/unicode/CompExcl.txt Unicode character database *************** *** 833,861 **** lib/unicode/Is/ASCII.pl Unicode character database lib/unicode/Is/Alnum.pl Unicode character database lib/unicode/Is/Alpha.pl Unicode character database lib/unicode/Is/BidiAN.pl Unicode character database lib/unicode/Is/BidiB.pl Unicode character database lib/unicode/Is/BidiCS.pl Unicode character database lib/unicode/Is/BidiEN.pl Unicode character database lib/unicode/Is/BidiES.pl Unicode character database lib/unicode/Is/BidiET.pl Unicode character database lib/unicode/Is/BidiL.pl Unicode character database lib/unicode/Is/BidiON.pl Unicode character database lib/unicode/Is/BidiR.pl Unicode character database lib/unicode/Is/BidiS.pl Unicode character database lib/unicode/Is/BidiWS.pl Unicode character database lib/unicode/Is/C.pl Unicode character database lib/unicode/Is/Cc.pl Unicode character database lib/unicode/Is/Cn.pl Unicode character database lib/unicode/Is/Cntrl.pl Unicode character database lib/unicode/Is/Co.pl Unicode character database lib/unicode/Is/DCcircle.pl Unicode character database lib/unicode/Is/DCcompat.pl Unicode character database lib/unicode/Is/DCfinal.pl Unicode character database lib/unicode/Is/DCfont.pl Unicode character database ! lib/unicode/Is/DCinital.pl Unicode character database lib/unicode/Is/DCinitial.pl Unicode character database lib/unicode/Is/DCisolated.pl Unicode character database lib/unicode/Is/DCnarrow.pl Unicode character database lib/unicode/Is/DCnoBreak.pl Unicode character database lib/unicode/Is/DCsmall.pl Unicode character database --- 845,884 ---- lib/unicode/Is/ASCII.pl Unicode character database lib/unicode/Is/Alnum.pl Unicode character database lib/unicode/Is/Alpha.pl Unicode character database + lib/unicode/Is/BidiAL.pl Unicode character database lib/unicode/Is/BidiAN.pl Unicode character database lib/unicode/Is/BidiB.pl Unicode character database + lib/unicode/Is/BidiBN.pl Unicode character database lib/unicode/Is/BidiCS.pl Unicode character database lib/unicode/Is/BidiEN.pl Unicode character database lib/unicode/Is/BidiES.pl Unicode character database lib/unicode/Is/BidiET.pl Unicode character database lib/unicode/Is/BidiL.pl Unicode character database + lib/unicode/Is/BidiLRE.pl Unicode character database + lib/unicode/Is/BidiLRO.pl Unicode character database + lib/unicode/Is/BidiNSM.pl Unicode character database lib/unicode/Is/BidiON.pl Unicode character database + lib/unicode/Is/BidiPDF.pl Unicode character database lib/unicode/Is/BidiR.pl Unicode character database + lib/unicode/Is/BidiRLE.pl Unicode character database + lib/unicode/Is/BidiRLO.pl Unicode character database lib/unicode/Is/BidiS.pl Unicode character database lib/unicode/Is/BidiWS.pl Unicode character database lib/unicode/Is/C.pl Unicode character database lib/unicode/Is/Cc.pl Unicode character database + lib/unicode/Is/Cf.pl Unicode character database lib/unicode/Is/Cn.pl Unicode character database lib/unicode/Is/Cntrl.pl Unicode character database lib/unicode/Is/Co.pl Unicode character database + lib/unicode/Is/Cs.pl Unicode character database lib/unicode/Is/DCcircle.pl Unicode character database lib/unicode/Is/DCcompat.pl Unicode character database lib/unicode/Is/DCfinal.pl Unicode character database lib/unicode/Is/DCfont.pl Unicode character database ! lib/unicode/Is/DCfraction.pl Unicode character database lib/unicode/Is/DCinitial.pl Unicode character database lib/unicode/Is/DCisolated.pl Unicode character database + lib/unicode/Is/DCmedial.pl Unicode character database lib/unicode/Is/DCnarrow.pl Unicode character database lib/unicode/Is/DCnoBreak.pl Unicode character database lib/unicode/Is/DCsmall.pl Unicode character database *************** *** 869,874 **** --- 892,926 ---- lib/unicode/Is/Digit.pl Unicode character database lib/unicode/Is/Graph.pl Unicode character database lib/unicode/Is/L.pl Unicode character database + lib/unicode/Is/LbrkAI.pl Unicode character database + lib/unicode/Is/LbrkAL.pl Unicode character database + lib/unicode/Is/LbrkB2.pl Unicode character database + lib/unicode/Is/LbrkBA.pl Unicode character database + lib/unicode/Is/LbrkBB.pl Unicode character database + lib/unicode/Is/LbrkBK.pl Unicode character database + lib/unicode/Is/LbrkCB.pl Unicode character database + lib/unicode/Is/LbrkCL.pl Unicode character database + lib/unicode/Is/LbrkCM.pl Unicode character database + lib/unicode/Is/LbrkCR.pl Unicode character database + lib/unicode/Is/LbrkEX.pl Unicode character database + lib/unicode/Is/LbrkGL.pl Unicode character database + lib/unicode/Is/LbrkHY.pl Unicode character database + lib/unicode/Is/LbrkID.pl Unicode character database + lib/unicode/Is/LbrkIN.pl Unicode character database + lib/unicode/Is/LbrkIS.pl Unicode character database + lib/unicode/Is/LbrkLF.pl Unicode character database + lib/unicode/Is/LbrkNS.pl Unicode character database + lib/unicode/Is/LbrkNU.pl Unicode character database + lib/unicode/Is/LbrkOP.pl Unicode character database + lib/unicode/Is/LbrkPO.pl Unicode character database + lib/unicode/Is/LbrkPR.pl Unicode character database + lib/unicode/Is/LbrkQU.pl Unicode character database + lib/unicode/Is/LbrkSA.pl Unicode character database + lib/unicode/Is/LbrkSG.pl Unicode character database + lib/unicode/Is/LbrkSP.pl Unicode character database + lib/unicode/Is/LbrkSY.pl Unicode character database + lib/unicode/Is/LbrkXX.pl Unicode character database + lib/unicode/Is/LbrkZW.pl Unicode character database lib/unicode/Is/Ll.pl Unicode character database lib/unicode/Is/Lm.pl Unicode character database lib/unicode/Is/Lo.pl Unicode character database *************** *** 877,910 **** --- 929,981 ---- lib/unicode/Is/Lu.pl Unicode character database lib/unicode/Is/M.pl Unicode character database lib/unicode/Is/Mc.pl Unicode character database + lib/unicode/Is/Me.pl Unicode character database lib/unicode/Is/Mirrored.pl Unicode character database lib/unicode/Is/Mn.pl Unicode character database lib/unicode/Is/N.pl Unicode character database lib/unicode/Is/Nd.pl Unicode character database + lib/unicode/Is/Nl.pl Unicode character database lib/unicode/Is/No.pl Unicode character database lib/unicode/Is/P.pl Unicode character database + lib/unicode/Is/Pc.pl Unicode character database lib/unicode/Is/Pd.pl Unicode character database lib/unicode/Is/Pe.pl Unicode character database + lib/unicode/Is/Pf.pl Unicode character database + lib/unicode/Is/Pi.pl Unicode character database lib/unicode/Is/Po.pl Unicode character database lib/unicode/Is/Print.pl Unicode character database lib/unicode/Is/Ps.pl Unicode character database lib/unicode/Is/Punct.pl Unicode character database lib/unicode/Is/S.pl Unicode character database lib/unicode/Is/Sc.pl Unicode character database + lib/unicode/Is/Sk.pl Unicode character database lib/unicode/Is/Sm.pl Unicode character database lib/unicode/Is/So.pl Unicode character database lib/unicode/Is/Space.pl Unicode character database lib/unicode/Is/SylA.pl Unicode character database + lib/unicode/Is/SylAA.pl Unicode character database + lib/unicode/Is/SylAAI.pl Unicode character database + lib/unicode/Is/SylAI.pl Unicode character database lib/unicode/Is/SylC.pl Unicode character database lib/unicode/Is/SylE.pl Unicode character database + lib/unicode/Is/SylEE.pl Unicode character database lib/unicode/Is/SylI.pl Unicode character database + lib/unicode/Is/SylII.pl Unicode character database + lib/unicode/Is/SylN.pl Unicode character database lib/unicode/Is/SylO.pl Unicode character database + lib/unicode/Is/SylOO.pl Unicode character database lib/unicode/Is/SylU.pl Unicode character database lib/unicode/Is/SylV.pl Unicode character database lib/unicode/Is/SylWA.pl Unicode character database + lib/unicode/Is/SylWAA.pl Unicode character database lib/unicode/Is/SylWC.pl Unicode character database lib/unicode/Is/SylWE.pl Unicode character database + lib/unicode/Is/SylWEE.pl Unicode character database lib/unicode/Is/SylWI.pl Unicode character database + lib/unicode/Is/SylWII.pl Unicode character database + lib/unicode/Is/SylWO.pl Unicode character database + lib/unicode/Is/SylWOO.pl Unicode character database + lib/unicode/Is/SylWU.pl Unicode character database lib/unicode/Is/SylWV.pl Unicode character database lib/unicode/Is/Syllable.pl Unicode character database lib/unicode/Is/Upper.pl Unicode character database *************** *** 922,938 **** lib/unicode/Names.txt Unicode character database lib/unicode/NamesList.html Unicode character database lib/unicode/Number.pl Unicode character database ! lib/unicode/Props.txt Unicode character database lib/unicode/README.Ethiopic Unicode character database lib/unicode/ReadMe.txt Unicode character database info lib/unicode/SpecCase.txt Unicode character database lib/unicode/To/Digit.pl Unicode character database lib/unicode/To/Lower.pl Unicode character database lib/unicode/To/Title.pl Unicode character database lib/unicode/To/Upper.pl Unicode character database ! lib/unicode/UCD300.html Unicode character database ! lib/unicode/Unicode.300 Unicode character database ! lib/unicode/Unicode3.html Unicode character database lib/unicode/mktables.PL Unicode character database generator lib/unicode/syllables.txt Unicode character database lib/utf8.pm Pragma to control Unicode support --- 993,1010 ---- lib/unicode/Names.txt Unicode character database lib/unicode/NamesList.html Unicode character database lib/unicode/Number.pl Unicode character database ! lib/unicode/PropList.txt Unicode character database lib/unicode/README.Ethiopic Unicode character database + lib/unicode/README.perl Unicode character database lib/unicode/ReadMe.txt Unicode character database info lib/unicode/SpecCase.txt Unicode character database lib/unicode/To/Digit.pl Unicode character database lib/unicode/To/Lower.pl Unicode character database lib/unicode/To/Title.pl Unicode character database lib/unicode/To/Upper.pl Unicode character database ! lib/unicode/UCD301.html Unicode character database ! lib/unicode/UCDFF301.html Unicode character database ! lib/unicode/Unicode.301 Unicode character database lib/unicode/mktables.PL Unicode character database generator lib/unicode/syllables.txt Unicode character database lib/utf8.pm Pragma to control Unicode support *************** *** 991,1002 **** os2/OS2/Process/Process.pm system() constants in a module os2/OS2/Process/Process.xs system() constants in a module os2/OS2/REXX/Changes DLL access module - os2/OS2/REXX/MANIFEST DLL access module os2/OS2/REXX/DLL/Changes DLL access module os2/OS2/REXX/DLL/DLL.pm DLL access module os2/OS2/REXX/DLL/DLL.xs DLL access module os2/OS2/REXX/DLL/MANIFEST DLL access module os2/OS2/REXX/DLL/Makefile.PL DLL access module os2/OS2/REXX/Makefile.PL DLL access module os2/OS2/REXX/REXX.pm DLL access module os2/OS2/REXX/REXX.xs DLL access module --- 1063,1074 ---- os2/OS2/Process/Process.pm system() constants in a module os2/OS2/Process/Process.xs system() constants in a module os2/OS2/REXX/Changes DLL access module os2/OS2/REXX/DLL/Changes DLL access module os2/OS2/REXX/DLL/DLL.pm DLL access module os2/OS2/REXX/DLL/DLL.xs DLL access module os2/OS2/REXX/DLL/MANIFEST DLL access module os2/OS2/REXX/DLL/Makefile.PL DLL access module + os2/OS2/REXX/MANIFEST DLL access module os2/OS2/REXX/Makefile.PL DLL access module os2/OS2/REXX/REXX.pm DLL access module os2/OS2/REXX/REXX.xs DLL access module *************** *** 1050,1065 **** plan9/plan9ish.h Plan9 port: Plan9-specific C header file plan9/setup.rc Plan9 port: script for easy build+install plan9/versnum Plan9 port: script to print version number ! pod/Makefile Make pods into something else ! pod/Win32.pod Documentation for Win32 extras ! pod/buildtoc generate perltoc.pod pod/checkpods.PL Tool to check for common errors in pods ! pod/perl.pod Top level perl man page pod/perl5004delta.pod Changes from 5.003 to 5.004 pod/perl5005delta.pod Changes from 5.004 to 5.005 pod/perlapi.pod Perl API documentation (autogenerated) pod/perlapio.pod IO API info ! pod/perlbook.pod Book info pod/perlboot.pod Beginner's Object-oriented Tutorial pod/perlbot.pod Object-oriented Bag o' Tricks pod/perlcall.pod Callback info --- 1122,1136 ---- plan9/plan9ish.h Plan9 port: Plan9-specific C header file plan9/setup.rc Plan9 port: script for easy build+install plan9/versnum Plan9 port: script to print version number ! pod/Makefile.SH generate Makefile whichs makes pods into something else ! pod/buildtoc.PL generate buildtoc which generates perltoc.pod pod/checkpods.PL Tool to check for common errors in pods ! pod/perl.pod Top level perl documentation pod/perl5004delta.pod Changes from 5.003 to 5.004 pod/perl5005delta.pod Changes from 5.004 to 5.005 pod/perlapi.pod Perl API documentation (autogenerated) pod/perlapio.pod IO API info ! pod/perlbook.pod Perl book information pod/perlboot.pod Beginner's Object-oriented Tutorial pod/perlbot.pod Object-oriented Bag o' Tricks pod/perlcall.pod Callback info *************** *** 1067,1076 **** --- 1138,1149 ---- pod/perldata.pod Data structure info pod/perldbmfilter.pod Info about DBM Filters pod/perldebguts.pod Debugger guts info + pod/perldebtut.pod Perl debugging tutorial pod/perldebug.pod Debugger info pod/perldelta.pod Changes since last version pod/perldiag.pod Diagnostic info pod/perldsc.pod Data Structures Cookbook + pod/perlebcdic.pod Considerations for running Perl on EBCDIC platforms pod/perlembed.pod Embedding info pod/perlfaq.pod Frequently Asked Questions, Top Level pod/perlfaq1.pod Frequently Asked Questions, Part 1 *************** *** 1096,1102 **** --- 1169,1177 ---- pod/perllol.pod How to use lists of lists pod/perlmod.pod Module mechanism info pod/perlmodinstall.pod Installing CPAN Modules + pod/perlmodlib.PL Generate pod/perlmodlib.pod pod/perlmodlib.pod Module policy info + pod/perlnewmod.pod Preparing a new module for distribution pod/perlnumber.pod Semantics of numbers and numeric operations pod/perlobj.pod Object info pod/perlop.pod Operator info *************** *** 1106,1111 **** --- 1181,1188 ---- pod/perlre.pod Regular expression info pod/perlref.pod References info pod/perlreftut.pod Mark's references tutorial + pod/perlrequick.pod Quick start guide for Perl regular expressions + pod/perlretut.pod Tutorial for Perl regular expressions pod/perlrun.pod Execution info pod/perlsec.pod Security info pod/perlstyle.pod Style info *************** *** 1119,1124 **** --- 1196,1202 ---- pod/perltootc.pod Tom's object-oriented tutorial (more on class data) pod/perltrap.pod Trap info pod/perlunicode.pod Unicode support info + pod/perlutil.pod Accompanying utilities explained pod/perlvar.pod Variable info pod/perlxs.pod XS api info pod/perlxstut.pod XS tutorial *************** *** 1202,1207 **** --- 1280,1286 ---- t/lib/anydbm.t See if AnyDBM_File works t/lib/attrs.t See if attrs works with C t/lib/autoloader.t See if AutoLoader works + t/lib/b.t See if B backends work t/lib/basename.t See if File::Basename works t/lib/bigfloat.t See if bigfloat.pl works t/lib/bigfltpm.t See if BigFloat.pm works *************** *** 1210,1218 **** --- 1289,1299 ---- t/lib/cgi-form.t See if CGI.pm works t/lib/cgi-function.t See if CGI.pm works t/lib/cgi-html.t See if CGI.pm works + t/lib/cgi-pretty.t See if CGI.pm works t/lib/cgi-request.t See if CGI.pm works t/lib/charnames.t See if character names work t/lib/checktree.t See if File::CheckTree works + t/lib/class-struct.t See if Class::Struct works t/lib/complex.t See if Math::Complex works t/lib/db-btree.t See if DB_File works t/lib/db-hash.t See if DB_File works *************** *** 1236,1243 **** t/lib/dumper-ovl.t See if Data::Dumper works for overloaded data t/lib/dumper.t See if Data::Dumper works t/lib/english.t See if English works - t/lib/env.t See if Env works t/lib/env-array.t See if Env works for arrays t/lib/errno.t See if Errno works t/lib/fatal.t See if Fatal works t/lib/fields.t See if base/fields works --- 1317,1324 ---- t/lib/dumper-ovl.t See if Data::Dumper works for overloaded data t/lib/dumper.t See if Data::Dumper works t/lib/english.t See if English works t/lib/env-array.t See if Env works for arrays + t/lib/env.t See if Env works t/lib/errno.t See if Errno works t/lib/fatal.t See if Fatal works t/lib/fields.t See if base/fields works *************** *** 1249,1254 **** --- 1330,1339 ---- t/lib/filepath.t See if File::Path works t/lib/filespec.t See if File::Spec works t/lib/findbin.t See if FindBin works + t/lib/ftmp-mktemp.t See if File::Temp works + t/lib/ftmp-posix.t See if File::Temp works + t/lib/ftmp-security.t See if File::Temp works + t/lib/ftmp-tempfile.t See if File::Temp works t/lib/gdbm.t See if GDBM_File works t/lib/getopt.t See if Getopt::Std and Getopt::Long work t/lib/glob-basic.t See if File::Glob works *************** *** 1258,1263 **** --- 1343,1349 ---- t/lib/gol-basic.t See if Getopt::Long works t/lib/gol-compat.t See if Getopt::Long works t/lib/gol-linkage.t See if Getopt::Long works + t/lib/gol-oo.t See if Getopt::Long works t/lib/h2ph.h Test header file for h2ph t/lib/h2ph.pht Generated output from h2ph.h by h2ph, for comparison t/lib/h2ph.t See if h2ph works like it should *************** *** 1284,1289 **** --- 1370,1376 ---- t/lib/open3.t See if IPC::Open3 works t/lib/ops.t See if Opcode works t/lib/parsewords.t See if Text::ParseWords works + t/lib/peek.t See if Devel::Peek works t/lib/ph.t See if h2ph works t/lib/posix.t See if POSIX works t/lib/safe1.t See if Safe works *************** *** 1291,1308 **** --- 1378,1400 ---- t/lib/sdbm.t See if SDBM_File works t/lib/searchdict.t See if Search::Dict works t/lib/selectsaver.t See if SelectSaver works + t/lib/selfloader.t See if SelfLoader works t/lib/socket.t See if Socket works t/lib/soundex.t See if Soundex works t/lib/symbol.t See if Symbol works t/lib/syslfs.t See if large files work for sysio + t/lib/syslog.t See if Sys::Syslog works t/lib/textfill.t See if Text::Wrap::fill works t/lib/texttabs.t See if Text::Tabs works t/lib/textwrap.t See if Text::Wrap::wrap works t/lib/thr5005.t Test 5.005-style threading (skipped if no use5005threads) t/lib/tie-push.t Test for Tie::Array + t/lib/tie-refhash.t Test for Tie::RefHash and Tie::RefHash::Nestable + t/lib/tie-splice.t Test for Tie::Array::SPLICE t/lib/tie-stdarray.t Test for Tie::StdArray t/lib/tie-stdhandle.t Test for Tie::StdHandle t/lib/tie-stdpush.t Test for Tie::StdArray + t/lib/tie-substrhash.t Test for Tie::SubstrHash t/lib/timelocal.t See if Time::Local works t/lib/trig.t See if Math::Trig works t/op/64bitint.t See if 64 bit integers work *************** *** 1357,1362 **** --- 1449,1455 ---- t/op/misc.t See if miscellaneous bugs have been fixed t/op/mkdir.t See if mkdir works t/op/my.t See if lexical scoping works + t/op/my_stash.t See if my Package works t/op/nothr5005.t local @_ test which does not work under use5005threads t/op/numconvert.t See if accessing fields does not change numeric values t/op/oct.t See if oct and hex work *************** *** 1376,1381 **** --- 1469,1475 ---- t/op/ref.t See if refs and objects work t/op/regexp.t See if regular expressions work t/op/regexp_noamp.t See if regular expressions work with optimizations + t/op/regmesg.t See if one can get regular expression errors t/op/repeat.t See if x operator works t/op/runlevel.t See if die() works from perl_call_*() t/op/sleep.t See if sleep works *************** *** 1405,1410 **** --- 1499,1505 ---- t/op/write.t See if write works t/pod/emptycmd.t Test empty pod directives t/pod/emptycmd.xr Expected results for emptycmd.t + t/pod/find.t See if Pod::Find works t/pod/for.t Test =for directive t/pod/for.xr Expected results for for.t t/pod/headings.t Test =head directives *************** *** 1432,1438 **** t/pod/special_seqs.t Test "special" interior sequences t/pod/special_seqs.xr Expected results for emptycmd.t t/pod/testcmp.pl Module to compare output against expected results ! t/pod/testp2pt.pl Module to test Pod::PlainText for a given file t/pod/testpchk.pl Module to test Pod::Checker for a given file t/pragma/constant.t See if compile-time constants work t/pragma/diagnostics.t See if diagnostics.pm works --- 1527,1533 ---- t/pod/special_seqs.t Test "special" interior sequences t/pod/special_seqs.xr Expected results for emptycmd.t t/pod/testcmp.pl Module to compare output against expected results ! t/pod/testp2pt.pl Module to test Pod::Text for a given file t/pod/testpchk.pl Module to test Pod::Checker for a given file t/pragma/constant.t See if compile-time constants work t/pragma/diagnostics.t See if diagnostics.pm works *************** *** 1444,1451 **** t/pragma/strict-subs Tests of "use strict 'subs'" for strict.t t/pragma/strict-vars Tests of "use strict 'vars'" for strict.t t/pragma/strict.t See if strictures work - t/pragma/subs.t See if subroutine pseudo-importation works t/pragma/sub_lval.t See if lvalue subroutines work t/pragma/utf8.t See if utf8 operations work t/pragma/warn/1global Tests of global warnings for warnings.t t/pragma/warn/2use Tests for "use warnings" for warnings.t --- 1539,1546 ---- t/pragma/strict-subs Tests of "use strict 'subs'" for strict.t t/pragma/strict-vars Tests of "use strict 'vars'" for strict.t t/pragma/strict.t See if strictures work t/pragma/sub_lval.t See if lvalue subroutines work + t/pragma/subs.t See if subroutine pseudo-importation works t/pragma/utf8.t See if utf8 operations work t/pragma/warn/1global Tests of global warnings for warnings.t t/pragma/warn/2use Tests for "use warnings" for warnings.t *************** *** 1496,1502 **** utils/dprofpp.PL Perl code profile post-processor utils/h2ph.PL A thing to turn C .h files into perl .ph files utils/h2xs.PL Program to make .xs files from C header files - utils/perlbc.PL Front-end for byte compiler utils/perlbug.PL A simple tool to submit a bug report utils/perlcc.PL Front-end for compiler utils/perldoc.PL A simple tool to find & display perl's documentation --- 1591,1596 ---- *************** *** 1533,1551 **** vms/perly_h.vms perly.h with fixed declarations for global syms vms/sockadapt.c glue for SockshShr socket support vms/sockadapt.h glue for SockshShr socket support - vms/subconfigure.com performs compiler checks and writes config.sh, config.h, and descrip.mms vms/test.com DCL driver for regression tests vms/vms.c VMS-specific C code for Perl core vms/vms_yfix.pl convert Unix perly.[ch] to VMS perly_[ch].vms vms/vmsish.h VMS-specific C header for Perl core vms/writemain.pl Generate perlmain.c from miniperlmain.c+extensions vos/Changes Changes made to port Perl to the VOS operating system vos/build.cm VOS command macro to build Perl vos/compile_perl.cm VOS command macro to build multiple version of Perl ! vos/config.def input for config.pl ! vos/config.h config.h for VOS vos/config.pl script to convert a config_h.SH to a config.h ! vos/config_h.SH_orig config_h.SH at the time config.h was created vos/perl.bind VOS bind control file vos/test_vos_dummies.c Test program for "vos_dummies.c" vos/vos_dummies.c Wrappers to soak up undefined functions --- 1627,1648 ---- vms/perly_h.vms perly.h with fixed declarations for global syms vms/sockadapt.c glue for SockshShr socket support vms/sockadapt.h glue for SockshShr socket support vms/test.com DCL driver for regression tests vms/vms.c VMS-specific C code for Perl core vms/vms_yfix.pl convert Unix perly.[ch] to VMS perly_[ch].vms vms/vmsish.h VMS-specific C header for Perl core + vms/vmspipe.com VMS-specific piped command helper script vms/writemain.pl Generate perlmain.c from miniperlmain.c+extensions vos/Changes Changes made to port Perl to the VOS operating system vos/build.cm VOS command macro to build Perl vos/compile_perl.cm VOS command macro to build multiple version of Perl ! vos/config.alpha.def definitions used by config.pl ! vos/config.ga.def definitions used by config.pl ! vos/config.alpha.h config.h for use with alpha VOS POSIX.1 support ! vos/config.ga.h config.h for use with generally-available VOS POSIX.1 support vos/config.pl script to convert a config_h.SH to a config.h ! vos/configure_perl.cm VOS command macro to configure perl before building ! vos/install_perl.cm VOS command macro to install perl after building vos/perl.bind VOS bind control file vos/test_vos_dummies.c Test program for "vos_dummies.c" vos/vos_dummies.c Wrappers to soak up undefined functions Index: Makefile.SH ####### perl-5.6.1-TRIAL1/ => perl-5.6.1-TRIAL1 *** perl-5.6.1-TRIAL1/Makefile.SH Sat Mar 11 08:05:24 2000 --- perl-5.6.1-TRIAL1/Makefile.SH Sun Dec 17 19:27:04 2000 *************** *** 70,76 **** *) shrpldflags="$shrpldflags -b noentry" ;; esac ! shrpldflags="$shrpldflags $ldflags $libs $cryptlib" linklibperl="-L $archlibexp/CORE -L `pwd | sed 's/\/UU$//'` -lperl" ;; hpux*) --- 70,76 ---- *) shrpldflags="$shrpldflags -b noentry" ;; esac ! shrpldflags="$shrpldflags $ldflags $perllibs $cryptlib" linklibperl="-L $archlibexp/CORE -L `pwd | sed 's/\/UU$//'` -lperl" ;; hpux*) *************** *** 134,141 **** LDFLAGS = $ldflags CLDFLAGS = $ldflags - SMALL = $small - LARGE = $large $split mallocsrc = $mallocsrc mallocobj = $mallocobj LNS = $lns --- 134,139 ---- *************** *** 176,182 **** ext = \$(dynamic_ext) \$(static_ext) \$(nonxs_ext) DYNALOADER = lib/auto/DynaLoader/DynaLoader\$(LIB_EXT) ! libs = $libs $cryptlib public = perl $suidperl utilities translators --- 174,180 ---- ext = \$(dynamic_ext) \$(static_ext) \$(nonxs_ext) DYNALOADER = lib/auto/DynaLoader/DynaLoader\$(LIB_EXT) ! libs = $perllibs $cryptlib public = perl $suidperl utilities translators *************** *** 206,216 **** # how to tr(anslate) newlines TRNL = '$trnl' # not used by Makefile but by installperl; ! # mentioned here so that metaconfig picks it up ! INSTALL_USR_BIN_PERL = $installusrbinperl - !GROK!THIS! ## In the following dollars and backticks do not need the extra backslash. $spitshell >>Makefile <<'!NO!SUBS!' --- 204,215 ---- # how to tr(anslate) newlines TRNL = '$trnl' + !GROK!THIS! # not used by Makefile but by installperl; ! # mentioned here so that metaconfig picks these up ! # $installusrbinperl ! # $versiononly ## In the following dollars and backticks do not need the extra backslash. $spitshell >>Makefile <<'!NO!SUBS!' *************** *** 222,240 **** # Files to be built with variable substitution before miniperl # is available. sh = Makefile.SH cflags.SH config_h.SH makeaperl.SH makedepend.SH \ ! makedir.SH myconfig.SH writemain.SH shextract = Makefile cflags config.h makeaperl makedepend \ ! makedir myconfig writemain # Files to be built with variable substitution after miniperl is # available. Dependencies handled manually below (for now). pl = pod/pod2html.PL pod/pod2latex.PL pod/pod2man.PL pod/pod2text.PL \ ! pod/pod2usage.PL pod/podchecker.PL pod/podselect.PL plextract = pod/pod2html pod/pod2latex pod/pod2man pod/pod2text \ ! pod/pod2usage pod/podchecker pod/podselect addedbyconf = UU $(shextract) $(plextract) pstruct --- 221,241 ---- # Files to be built with variable substitution before miniperl # is available. sh = Makefile.SH cflags.SH config_h.SH makeaperl.SH makedepend.SH \ ! makedir.SH myconfig.SH writemain.SH pod/Makefile.SH shextract = Makefile cflags config.h makeaperl makedepend \ ! makedir myconfig writemain pod/Makefile # Files to be built with variable substitution after miniperl is # available. Dependencies handled manually below (for now). pl = pod/pod2html.PL pod/pod2latex.PL pod/pod2man.PL pod/pod2text.PL \ ! pod/pod2usage.PL pod/podchecker.PL pod/podselect.PL \ ! pod/buildtoc.PL plextract = pod/pod2html pod/pod2latex pod/pod2man pod/pod2text \ ! pod/pod2usage pod/podchecker pod/podselect \ ! pod/buildtoc addedbyconf = UU $(shextract) $(plextract) pstruct *************** *** 298,304 **** FORCE: @sh -c true ! opmini$(OBJ_EXT): op.c $(RMS) opmini.c $(LNS) op.c opmini.c $(CCCMD) $(PLDLFLAGS) -DPERL_EXTERNAL_GLOB opmini.c --- 299,305 ---- FORCE: @sh -c true ! opmini$(OBJ_EXT): op.c config.h $(RMS) opmini.c $(LNS) op.c opmini.c $(CCCMD) $(PLDLFLAGS) -DPERL_EXTERNAL_GLOB opmini.c *************** *** 333,339 **** case "$osname" in aix) $spitshell >>Makefile <>Makefile <>Makefile <<'!NO!SUBS!' miniperl: $& miniperlmain$(OBJ_EXT) $(LIBPERL) opmini$(OBJ_EXT) ! $(LDLIBPTH) $(CC) $(LARGE) $(CLDFLAGS) -o miniperl \ miniperlmain$(OBJ_EXT) opmini$(OBJ_EXT) $(LLIBPERL) $(libs) $(LDLIBPTH) ./miniperl -w -Ilib -MExporter -e '' || $(MAKE) minitest !NO!SUBS! --- 459,465 ---- *) $spitshell >>Makefile <<'!NO!SUBS!' miniperl: $& miniperlmain$(OBJ_EXT) $(LIBPERL) opmini$(OBJ_EXT) ! $(LDLIBPTH) $(CC) $(CLDFLAGS) -o miniperl \ miniperlmain$(OBJ_EXT) opmini$(OBJ_EXT) $(LLIBPERL) $(libs) $(LDLIBPTH) ./miniperl -w -Ilib -MExporter -e '' || $(MAKE) minitest !NO!SUBS! *************** *** 468,483 **** $spitshell >>Makefile <<'!NO!SUBS!' perl: $& perlmain$(OBJ_EXT) $(LIBPERL) $(DYNALOADER) $(static_ext) ext.libs $(PERLEXPORT) ! $(SHRPENV) $(LDLIBPTH) $(CC) $(LARGE) $(CLDFLAGS) $(CCDLFLAGS) -o perl perlmain$(OBJ_EXT) $(DYNALOADER) $(static_ext) $(LLIBPERL) `cat ext.libs` $(libs) pureperl: $& perlmain$(OBJ_EXT) $(LIBPERL) $(DYNALOADER) $(static_ext) ext.libs $(PERLEXPORT) ! $(SHRPENV) $(LDLIBPTH) purify $(CC) $(LARGE) $(CLDFLAGS) $(CCDLFLAGS) -o pureperl perlmain$(OBJ_EXT) $(DYNALOADER) $(static_ext) $(LLIBPERL) `cat ext.libs` $(libs) purecovperl: $& perlmain$(OBJ_EXT) $(LIBPERL) $(DYNALOADER) $(static_ext) ext.libs $(PERLEXPORT) ! $(SHRPENV) $(LDLIBPTH) purecov $(CC) $(LARGE) $(CLDFLAGS) $(CCDLFLAGS) -o purecovperl perlmain$(OBJ_EXT) $(DYNALOADER) $(static_ext) $(LLIBPERL) `cat ext.libs` $(libs) quantperl: $& perlmain$(OBJ_EXT) $(LIBPERL) $(DYNALOADER) $(static_ext) ext.libs $(PERLEXPORT) ! $(SHRPENV) $(LDLIBPTH) quantify $(CC) $(LARGE) $(CLDFLAGS) $(CCDLFLAGS) -o quantperl perlmain$(OBJ_EXT) $(DYNALOADER) $(static_ext) $(LLIBPERL) `cat ext.libs` $(libs) # This version, if specified in Configure, does ONLY those scripts which need # set-id emulation. Suidperl must be setuid root. It contains the "taint" --- 469,484 ---- $spitshell >>Makefile <<'!NO!SUBS!' perl: $& perlmain$(OBJ_EXT) $(LIBPERL) $(DYNALOADER) $(static_ext) ext.libs $(PERLEXPORT) ! $(SHRPENV) $(LDLIBPTH) $(CC) $(CLDFLAGS) $(CCDLFLAGS) -o perl perlmain$(OBJ_EXT) $(DYNALOADER) $(static_ext) $(LLIBPERL) `cat ext.libs` $(libs) pureperl: $& perlmain$(OBJ_EXT) $(LIBPERL) $(DYNALOADER) $(static_ext) ext.libs $(PERLEXPORT) ! $(SHRPENV) $(LDLIBPTH) purify $(CC) $(CLDFLAGS) $(CCDLFLAGS) -o pureperl perlmain$(OBJ_EXT) $(DYNALOADER) $(static_ext) $(LLIBPERL) `cat ext.libs` $(libs) purecovperl: $& perlmain$(OBJ_EXT) $(LIBPERL) $(DYNALOADER) $(static_ext) ext.libs $(PERLEXPORT) ! $(SHRPENV) $(LDLIBPTH) purecov $(CC) $(CLDFLAGS) $(CCDLFLAGS) -o purecovperl perlmain$(OBJ_EXT) $(DYNALOADER) $(static_ext) $(LLIBPERL) `cat ext.libs` $(libs) quantperl: $& perlmain$(OBJ_EXT) $(LIBPERL) $(DYNALOADER) $(static_ext) ext.libs $(PERLEXPORT) ! $(SHRPENV) $(LDLIBPTH) quantify $(CC) $(CLDFLAGS) $(CCDLFLAGS) -o quantperl perlmain$(OBJ_EXT) $(DYNALOADER) $(static_ext) $(LLIBPERL) `cat ext.libs` $(libs) # This version, if specified in Configure, does ONLY those scripts which need # set-id emulation. Suidperl must be setuid root. It contains the "taint" *************** *** 485,491 **** # has been invoked correctly. suidperl: $& sperl$(OBJ_EXT) perlmain$(OBJ_EXT) $(LIBPERL) $(DYNALOADER) $(static_ext) ext.libs $(PERLEXPORT) ! $(SHRPENV) $(LDLIBPTH) $(CC) $(LARGE) $(CLDFLAGS) $(CCDLFLAGS) -o suidperl perlmain$(OBJ_EXT) sperl$(OBJ_EXT) $(DYNALOADER) $(static_ext) $(LLIBPERL) `cat ext.libs` $(libs) !NO!SUBS! --- 486,492 ---- # has been invoked correctly. suidperl: $& sperl$(OBJ_EXT) perlmain$(OBJ_EXT) $(LIBPERL) $(DYNALOADER) $(static_ext) ext.libs $(PERLEXPORT) ! $(SHRPENV) $(LDLIBPTH) $(CC) $(CLDFLAGS) $(CCDLFLAGS) -o suidperl perlmain$(OBJ_EXT) sperl$(OBJ_EXT) $(DYNALOADER) $(static_ext) $(LLIBPERL) `cat ext.libs` $(libs) !NO!SUBS! *************** *** 531,545 **** -@rm -f extra.pods -@for x in `grep -l '^=[a-z]' README.* | grep -v README.vms` ; do \ nx=`echo $$x | sed -e "s/README\.//"`; \ ! $(LNS) ../$$x "pod/perl"$$nx".pod" ; \ echo "pod/perl"$$nx".pod" >> extra.pods ; \ done ! -@test -f vms/perlvms.pod && $(LNS) ../vms/perlvms.pod pod/perlvms.pod && echo "pod/perlvms.pod" >> extra.pods install-strip: $(MAKE) STRIPFLAGS=-s install ! install: all install.perl install.man install.perl: all installperl if [ -n "$(COMPILE)" ]; \ --- 532,556 ---- -@rm -f extra.pods -@for x in `grep -l '^=[a-z]' README.* | grep -v README.vms` ; do \ nx=`echo $$x | sed -e "s/README\.//"`; \ ! cd pod ; $(LNS) ../$$x "perl"$$nx".pod" ; cd .. ; \ echo "pod/perl"$$nx".pod" >> extra.pods ; \ done ! -@test -f vms/perlvms.pod && cd pod && $(LNS) ../vms/perlvms.pod perlvms.pod && cd .. && echo "pod/perlvms.pod" >> extra.pods install-strip: $(MAKE) STRIPFLAGS=-s install ! install: ! $(MAKE) install.perl install.man STRIPFLAGS=$(STRIPFLAGS) ! ! install-verbose: ! $(MAKE) install.perl install.man STRIPFLAGS=$(STRIPFLAGS) INSTALLFLAGS=-V ! ! install-silent: ! $(MAKE) install.perl install.man STRIPFLAGS=$(STRIPFLAGS) INSTALLFLAGS=-S ! ! no-install: ! $(MAKE) install.perl install.man STRIPFLAGS=$(STRIPFLAGS) INSTALLFLAGS=-n install.perl: all installperl if [ -n "$(COMPILE)" ]; \ *************** *** 549,563 **** cd ../pod; $(MAKE) compile; \ else :; \ fi ! $(LDLIBPTH) ./perl installperl $(STRIPFLAGS) install.man: all installman ! $(LDLIBPTH) ./perl installman # XXX Experimental. Hardwired values, but useful for testing. # Eventually Configure could ask for some of these values. install.html: all installhtml ! -@test -f README.vms && $(LNS) ../README.vms vms/README_vms.pod $(LDLIBPTH) ./perl installhtml \ --podroot=. --podpath=. --recurse \ --htmldir=$(privlib)/html \ --- 560,574 ---- cd ../pod; $(MAKE) compile; \ else :; \ fi ! $(LDLIBPTH) ./perl installperl $(INSTALLFLAGS) $(STRIPFLAGS) install.man: all installman ! $(LDLIBPTH) ./perl installman $(INSTALLFLAGS) # XXX Experimental. Hardwired values, but useful for testing. # Eventually Configure could ask for some of these values. install.html: all installhtml ! -@test -f README.vms && cd vms && $(LNS) ../README.vms README_vms.pod && cd .. $(LDLIBPTH) ./perl installhtml \ --podroot=. --podpath=. --recurse \ --htmldir=$(privlib)/html \ *************** *** 595,600 **** --- 606,616 ---- perly.h: perly.y -@sh -c true + PERLYVMS = vms/perly_c.vms vms/perly_h.vms + + $(PERLYVMS): perly.c perly.h vms/vms_yfix.pl + perl vms/vms_yfix.pl perly.c perly.h vms/perly_c.vms vms/perly_h.vms + # No compat3.sym here since and including the 5.004_50. # No interp.sym since 5.005_03. SYM = global.sym globvar.sym perlio.sym pp.sym *************** *** 619,624 **** --- 635,665 ---- # To force them to be regenerated, type # make regen_headers + keywords.h: keywords.pl + -perl keywords.pl + + OPCODE_PL_OUTPUT = opcode.h opnames.h pp_proto.h pp.sym + + $(OPCODE_PL_OUTPUT): opcode.pl + -perl opcode.pl + + # Really the prerequisites for the next rule should only be "embed.pl pp.sym" + # Writing it this way gives make a big hint to always run opcode.pl before + # embed.pl. The alternative - running embed.pl then opcode.pl causes embed.pl + # to be re-run next make invocation, and then all object files get recompiled. + + proto.h embed.h embedvar.h global.sym objXSUB.h perlapi.h perlapi.c pod/perlintern.pod pod/perlapi.pod: embed.pl $(OPCODE_PL_OUTPUT) + -perl embed.pl + + ext/ByteLoader/byterun.h ext/ByteLoader/byterun.c ext/B/B/Asmdata.pm: bytecode.pl + -perl bytecode.pl + + regnodes.h: regcomp.pl + -perl regcomp.pl + + warnings.h lib/warnings.pm: warnings.pl + -perl warnings.pl + AUTOGEN_FILES = keywords.h opcode.h opnames.h pp_proto.h pp.sym proto.h \ embed.h embedvar.h global.sym \ pod/perlintern.pod pod/perlapi.pod \ *************** *** 635,640 **** --- 676,686 ---- -perl regcomp.pl -perl warnings.pl + regen_pods: FORCE + -cd pod; $(LDLIBPTH) make regen_pods + + regen_all: $(PERLYVMS) regen_headers regen_pods + # Extensions: # Names added to $(dynamic_ext) or $(static_ext) or $(nonxs_ext) will # automatically get built. There should ordinarily be no need to change *************** *** 659,681 **** clean: _tidy _mopup ! realclean: _cleaner _mopup @echo "Note that make realclean does not delete config.sh or Policy.sh" ! clobber: _cleaner _mopup rm -f config.sh cppstdin Policy.sh distclean: clobber # Do not 'make _mopup' directly. _mopup: rm -f *$(OBJ_EXT) *$(LIB_EXT) all perlmain.c -@test -f extra.pods && rm -f `cat extra.pods` -@test -f vms/README_vms.pod && rm -f vms/README_vms.pod ! -rm -f perl.exp ext.libs extra.pods -rm -f perl.export perl.dll perl.libexp perl.map perl.def -rm -f perl.loadmap miniperl.loadmap perl.prelmap miniperl.prelmap ! rm -f perl suidperl miniperl $(LIBPERL) # Do not 'make _tidy' directly. _tidy: --- 705,733 ---- clean: _tidy _mopup ! realclean: _realcleaner _mopup @echo "Note that make realclean does not delete config.sh or Policy.sh" ! _clobber: rm -f config.sh cppstdin Policy.sh + clobber: _realcleaner _mopup _clobber + distclean: clobber + # Like distclean but also removes emacs backups and *.orig. + veryclean: _verycleaner _mopup _clobber + -@rm -f Obsolete Wanted + # Do not 'make _mopup' directly. _mopup: rm -f *$(OBJ_EXT) *$(LIB_EXT) all perlmain.c -@test -f extra.pods && rm -f `cat extra.pods` -@test -f vms/README_vms.pod && rm -f vms/README_vms.pod ! -rm -f perl.exp ext.libs extra.pods opmini.o -rm -f perl.export perl.dll perl.libexp perl.map perl.def -rm -f perl.loadmap miniperl.loadmap perl.prelmap miniperl.prelmap ! rm -f perl suidperl miniperl $(LIBPERL) libperl.* microperl # Do not 'make _tidy' directly. _tidy: *************** *** 687,702 **** done rm -f testcompile compilelog ! # Do not 'make _cleaner' directly. ! _cleaner: -cd os2; rm -f Makefile ! -cd pod; $(LDLIBPTH) $(MAKE) realclean ! -cd utils; $(LDLIBPTH) $(MAKE) realclean ! -cd x2p; $(LDLIBPTH) $(MAKE) realclean -@for x in $(DYNALOADER) $(dynamic_ext) $(static_ext) $(nonxs_ext) ; do \ ! $(LDLIBPTH) sh ext/util/make_ext realclean $$x MAKE=$(MAKE) ; \ done ! rm -f *.orig */*.orig *~ */*~ core core.*perl.*.? *perl.core t/core t/core.perl.*.? t/*perl.core t/misctmp* t/tmp* t/c t/perl .?*.c so_locations $(LIBPERL_NONSHR) $(MINIPERL_NONSHR) rm -rf $(addedbyconf) rm -f $(FIRSTMAKEFILE) $(FIRSTMAKEFILE).old rm -f $(private) --- 739,755 ---- done rm -f testcompile compilelog ! _cleaner1: -cd os2; rm -f Makefile ! -cd pod; $(LDLIBPTH) $(MAKE) $(CLEAN) ! -cd utils; $(LDLIBPTH) $(MAKE) $(CLEAN) ! -cd x2p; $(LDLIBPTH) $(MAKE) $(CLEAN) -@for x in $(DYNALOADER) $(dynamic_ext) $(static_ext) $(nonxs_ext) ; do \ ! $(LDLIBPTH) sh ext/util/make_ext $(CLEAN) $$x MAKE=$(MAKE) ; \ done ! ! _cleaner2: ! rm -f core core.*perl.*.? *perl.core t/core t/core.perl.*.? t/*perl.core t/misctmp* t/forktmp* t/tmp* t/c t/perl t/rantests .?*.c so_locations $(LIBPERL_NONSHR) $(MINIPERL_NONSHR) rm -rf $(addedbyconf) rm -f $(FIRSTMAKEFILE) $(FIRSTMAKEFILE).old rm -f $(private) *************** *** 705,711 **** rm -f h2ph.man pstruct rm -rf .config rm -f testcompile compilelog ! -rmdir lib/B lib/Data lib/IO/Socket lib/IO # The following lint has practically everything turned on. Unfortunately, # you have to wade through a lot of mumbo jumbo that can't be suppressed. --- 758,773 ---- rm -f h2ph.man pstruct rm -rf .config rm -f testcompile compilelog ! -rmdir lib/B lib/Data lib/IO/Socket lib/IO lib/Sys lib/Thread ! ! _realcleaner: ! @$(LDLIBPTH) $(MAKE) _cleaner1 CLEAN=realclean ! @$(LDLIBPTH) $(MAKE) _cleaner2 ! ! _verycleaner: ! @$(LDLIBPTH) $(MAKE) _cleaner1 CLEAN=veryclean ! @$(LDLIBPTH) $(MAKE) _cleaner2 ! -rm -f *~ *.orig */*~ */*.orig */*/*~ */*/*.orig # The following lint has practically everything turned on. Unfortunately, # you have to wade through a lot of mumbo jumbo that can't be suppressed. *************** *** 750,755 **** --- 812,818 ---- else \ cd t && PERL_SKIP_TTY_TEST=1 $(LDLIBPTH) ./perl TEST; \ fi + @echo "Ran tests" > t/rantests utest ucheck: test-prep if (true /dev/null 2>&1; then \ *************** *** 780,790 **** --- 843,865 ---- okfile: utilities $(LDLIBPTH) ./perl -Ilib utils/perlbug -ok -s '(UNINSTALLED)' -F perl.ok + oknack: utilities + $(LDLIBPTH) ./perl -Ilib utils/perlbug -ok -s '(UNINSTALLED)' -A + + okfilenack: utilities + $(LDLIBPTH) ./perl -Ilib utils/perlbug -ok -s '(UNINSTALLED)' -F perl.ok -A + nok: utilities $(LDLIBPTH) ./perl -Ilib utils/perlbug -nok -s '(UNINSTALLED)' nokfile: utilities $(LDLIBPTH) ./perl -Ilib utils/perlbug -nok -s '(UNINSTALLED)' -F perl.nok + + noknack: utilities + $(LDLIBPTH) ./perl -Ilib utils/perlbug -nok -s '(UNINSTALLED)' -A + + nokfilenack: utilities + $(LDLIBPTH) ./perl -Ilib utils/perlbug -nok -s '(UNINSTALLED)' -F perl.nok -A clist: $(c) echo $(c) | tr ' ' $(TRNL) >.clist Index: Policy_sh.SH ####### perl-5.6.1-TRIAL1/ => perl-5.6.1-TRIAL1 *** perl-5.6.1-TRIAL1/Policy_sh.SH Fri Feb 25 22:34:45 2000 --- perl-5.6.1-TRIAL1/Policy_sh.SH Mon Nov 27 03:19:26 2000 *************** *** 7,24 **** # # This file was produced by running the Policy_sh.SH script, which # gets its values from config.sh, which is generally produced by ! # running Configure. The Policy.sh file gets overwritten each time ! # Configure is run. Any variables you add to Policy.sh will be lost ! # unless you copy Policy.sh somewhere else before running Configure. # # The idea here is to distill in one place the common site-wide # "policy" answers (such as installation directories) that are # to be "sticky". If you keep the file Policy.sh around in # the same directory as you are building Perl, then Configure will # (by default) load up the Policy.sh file just before the ! # platform-specific hints file. # - # Allow Configure command-line overrides; usually these won't be # needed, but something like -Dprefix=/test/location can be quite # useful for testing out new versions. --- 7,39 ---- # # This file was produced by running the Policy_sh.SH script, which # gets its values from config.sh, which is generally produced by ! # running Configure. # # The idea here is to distill in one place the common site-wide # "policy" answers (such as installation directories) that are # to be "sticky". If you keep the file Policy.sh around in # the same directory as you are building Perl, then Configure will # (by default) load up the Policy.sh file just before the ! # platform-specific hints file and rewrite it at the end. ! # ! # The sequence of events is as follows: ! # A: If you are NOT re-using an old config.sh: ! # 1. At start-up, Configure loads up the defaults from the ! # os-specific hints/osname_osvers.sh file and any previous ! # Policy.sh file. ! # 2. At the end, Configure runs Policy_sh.SH, which creates ! # Policy.sh, overwriting a previous Policy.sh if necessary. ! # ! # B: If you are re-using an old config.sh: ! # 1. At start-up, Configure loads up the defaults from config.sh, ! # ignoring any previous Policy.sh file. ! # 2. At the end, Configure runs Policy_sh.SH, which creates ! # Policy.sh, overwriting a previous Policy.sh if necessary. ! # ! # Thus the Policy.sh file gets overwritten each time ! # Configure is run. Any variables you add to Policy.sh will be lost ! # unless you copy Policy.sh somewhere else before running Configure. # # Allow Configure command-line overrides; usually these won't be # needed, but something like -Dprefix=/test/location can be quite # useful for testing out new versions. *************** *** 37,52 **** case "\$prefix" in '') prefix='$prefix' ;; esac case "\$siteprefix" in ! '') siteprefix='$siteprefix' ;; esac case "\$vendorprefix" in ! '') vendorprefix='$vendorprefix' ;; esac # Where installperl puts things. case "\$installprefix" in ! '') installprefix='$installprefix' ;; esac # Installation directives. Note that each one comes in three flavors. --- 52,88 ---- case "\$prefix" in '') prefix='$prefix' ;; esac + + # By default, the next three are the same as \$prefix. + # If the user changes \$prefix, and previously \$siteprefix was the + # same as \$prefix, then change \$siteprefix as well. + # Use similar logic for \$vendorprefix and \$installprefix. + case "\$siteprefix" in ! '') if test "$siteprefix" = "$prefix"; then ! siteprefix="\$prefix" ! else ! siteprefix='$siteprefix' ! fi ! ;; esac case "\$vendorprefix" in ! '') if test "$vendorprefix" = "$prefix"; then ! vendorprefix="\$prefix" ! else ! vendorprefix='$vendorprefix' ! fi ! ;; esac # Where installperl puts things. case "\$installprefix" in ! '') if test "$installprefix" = "$prefix"; then ! installprefix="\$prefix" ! else ! installprefix='$installprefix' ! fi ! ;; esac # Installation directives. Note that each one comes in three flavors. Index: Porting/Contract ####### perl-5.6.1-TRIAL1/ => perl-5.6.1-TRIAL1 *** perl-5.6.1-TRIAL1/Porting/Contract Tue Jul 20 10:17:51 1999 --- perl-5.6.1-TRIAL1/Porting/Contract Sun Dec 17 20:44:54 2000 *************** *** 19,25 **** We recognize that the Perl core, defined as the software distributed with the heart of Perl itself, is a joint project on the part of all of us. ! >From time to time, a script, module, or set of modules (hereafter referred to simply as a "module") will prove so widely useful and/or so integral to the correct functioning of Perl itself that it should be distributed with Perl core. This should never be done without the author's explicit --- 19,25 ---- We recognize that the Perl core, defined as the software distributed with the heart of Perl itself, is a joint project on the part of all of us. ! From time to time, a script, module, or set of modules (hereafter referred to simply as a "module") will prove so widely useful and/or so integral to the correct functioning of Perl itself that it should be distributed with Perl core. This should never be done without the author's explicit Index: Porting/Glossary ####### perl-5.6.1-TRIAL1/ => perl-5.6.1-TRIAL1 *** perl-5.6.1-TRIAL1/Porting/Glossary Wed Mar 22 05:51:17 2000 --- perl-5.6.1-TRIAL1/Porting/Glossary Sun Dec 17 20:44:55 2000 *************** *** 174,180 **** cc (cc.U): This variable holds the name of a command to execute a C compiler which can resolve multiple global references that happen to have the same ! name. Usual values are 'cc', 'Mcc', 'cc -M', and 'gcc'. cccdlflags (dlsrc.U): This variable contains any special flags that might need to be --- 174,181 ---- cc (cc.U): This variable holds the name of a command to execute a C compiler which can resolve multiple global references that happen to have the same ! name. Usual values are 'cc' and 'gcc'. ! Fervent ANSI compilers may be called 'c89'. AIX has xlc. cccdlflags (dlsrc.U): This variable contains any special flags that might need to be *************** *** 192,203 **** --- 193,220 ---- This variable contains any additional C compiler flags desired by the user. It is up to the Makefile to use this. + ccflags_uselargefiles (uselfs.U): + This variable contains the compiler flags needed by large file builds + and added to ccflags by hints files. + + ccname (Checkcc.U): + This can set either by hints files or by Configure. If using + gcc, this is gcc, and if not, usually equal to cc, unimpressive, no? + Some platforms, however, make good use of this by storing the + flavor of the C compiler being used here. For example if using + the Sun WorkShop suite, ccname will be 'workshop'. + ccsymbols (Cppsym.U): The variable contains the symbols defined by the C compiler alone. The symbols defined by cpp or by cc when it calls cpp are not in this list, see cppsymbols and cppccsymbols. The list is a space-separated list of symbol=value tokens. + ccversion (Checkcc.U): + This can set either by hints files or by Configure. If using + a (non-gcc) vendor cc, this variable may contain a version for + the compiler. + cf_by (cf_who.U): Login name of the person who ran the Configure script and answered the questions. This is used to tag both config.sh and config_h.SH. *************** *** 323,328 **** --- 340,349 ---- full pathname (if any) of the csh program. After Configure runs, the value is reset to a plain "csh" and is not useful. + d__fwalk (d__fwalk.U): + This variable conditionally defines HAS__FWALK if _fwalk() is + available to apply a function to all the file handles. + d_access (d_access.U): This variable conditionally defines HAS_ACCESS if the access() system call is available to check for access permissions using real IDs. *************** *** 506,515 **** This variable conditionally defines HAS_ENDSERVENT if endservent() is available to close whatever was being used for service queries. - d_endspent (d_endspent.U): - This variable conditionally defines HAS_ENDSPENT if endspent() is - available to finalize the scan of SysV shadow password entries. - d_eofnblk (nblock_io.U): This variable conditionally defines EOF_NONBLOCK if EOF can be seen when reading from a non-blocking I/O source. --- 527,532 ---- *************** *** 532,537 **** --- 549,558 ---- This variable conditionally defines the HAS_FCNTL symbol, and indicates whether the fcntl() function exists + d_fcntl_can_lock (d_fcntl_can_lock.U): + This variable conditionally defines the FCNTL_CAN_LOCK symbol + and indicates whether file locking with fcntl() works. + d_fd_macros (d_fd_set.U): This variable contains the eventual value of the HAS_FD_MACROS symbol, which indicates if your C compiler knows about the macros which *************** *** 573,578 **** --- 594,603 ---- d_fpos64_t (d_fpos64_t.U): This symbol will be defined if the C compiler supports fpos64_t. + d_frexpl (d_frexpl.U): + This variable conditionally defines the HAS_FREXPL symbol, which + indicates to the C program that the frexpl() routine is available. + d_fs_data_s (d_fs_data_s.U): This variable conditionally defines the HAS_STRUCT_FS_DATA symbol, which indicates that the struct fs_data is supported. *************** *** 593,598 **** --- 618,627 ---- This variable conditionally defines the HAS_FSTATVFS symbol, which indicates to the C program that the fstatvfs() routine is available. + d_fsync (d_fsync.U): + This variable conditionally defines the HAS_FSYNC symbol, which + indicates to the C program that the fsync() routine is available. + d_ftello (d_ftello.U): This variable conditionally defines the HAS_FTELLO symbol, which indicates to the C program that the ftello() routine is available. *************** *** 616,621 **** --- 645,654 ---- indicates to the C program that the getcwd() routine is available to get the current working directory. + d_getespwnam (d_getespwnam.U): + This variable conditionally defines HAS_GETESPWNAM if getespwnam() is + available to retrieve enchanced (shadow) password entries by name. + d_getfsstat (d_getfsstat.U): This variable conditionally defines the HAS_GETFSSTAT symbol, which indicates to the C program that the getfsstat() routine is available. *************** *** 690,695 **** --- 723,732 ---- prototypes for the various getnet*() functions. See also netdbtype.U for probing for various netdb types. + d_getpagsz (d_getpagsz.U): + This variable conditionally defines HAS_GETPAGESIZE if getpagesize() + is available to get the system page size. + d_getpbyname (d_getprotby.U): This variable conditionally defines the HAS_GETPROTOBYNAME symbol, which indicates to the C program that the *************** *** 735,740 **** --- 772,781 ---- prototypes for the various getproto*() functions. See also netdbtype.U for probing for various netdb types. + d_getprpwnam (d_getprpwnam.U): + This variable conditionally defines HAS_GETPRPWNAM if getprpwnam() is + available to retrieve protected (shadow) password entries by name. + d_getpwent (d_getpwent.U): This variable conditionally defines the HAS_GETPWENT symbol, which indicates to the C program that the getpwent() routine is available *************** *** 762,771 **** prototypes for the various getserv*() functions. See also netdbtype.U for probing for various netdb types. - d_getspent (d_getspent.U): - This variable conditionally defines HAS_GETSPENT if getspent() is - available to retrieve SysV shadow password entries sequentially. - d_getspnam (d_getspnam.U): This variable conditionally defines HAS_GETSPNAM if getspnam() is available to retrieve SysV shadow password entries by name. --- 803,808 ---- *************** *** 811,816 **** --- 848,861 ---- This variable conditionally defines the HAS_ISASCII constant, which indicates to the C program that isascii() is available. + d_isnan (d_isnan.U): + This variable conditionally defines the HAS_ISNAN symbol, which + indicates to the C program that the isnan() routine is available. + + d_isnanl (d_isnanl.U): + This variable conditionally defines the HAS_ISNANL symbol, which + indicates to the C program that the isnanl() routine is available. + d_killpg (d_killpg.U): This variable conditionally defines the HAS_KILLPG symbol, which indicates to the C program that the killpg() routine is available *************** *** 933,938 **** --- 978,987 ---- This variable conditionally defines HAS_MMAP if mmap() is available to map a file into memory. + d_modfl (d_modfl.U): + This variable conditionally defines the HAS_MODFL symbol, which + indicates to the C program that the modfl() routine is available. + d_mprotect (d_mprotect.U): This variable conditionally defines HAS_MPROTECT if mprotect() is available to modify the access protection of a memory mapped file. *************** *** 1003,1008 **** --- 1052,1061 ---- This variable indicates whether a variable of type nvtype can preserve all the bits a variable of type uvtype. + d_nv_preserves_uv_bits (perlxv.U): + This variable indicates how many of bits type uvtype + a variable nvtype can preserve. + d_off64_t (d_off64_t.U): This symbol will be defined if the C compiler supports off64_t. *************** *** 1036,1041 **** --- 1089,1099 ---- indicates to the C program that the pause() routine is available to suspend a process until a signal is received. + d_perl_otherlibdirs (otherlibdirs.U): + This variable conditionally defines PERL_OTHERLIBDIRS, which + contains a colon-separated set of paths for the perl binary to + include in @INC. See also otherlibdirs. + d_phostname (d_gethname.U): This variable conditionally defines the HAS_PHOSTNAME symbol, which contains the shell command which, when fed to popen(), may be *************** *** 1061,1088 **** indiciates that stdio has a symbol to print 64-bit decimal numbers. d_PRIeldbl (longdblfio.U): ! This variable conditionally defines the PERL_PRIfldlbl symbol, which indiciates that stdio has a symbol to print long doubles. ! d_PRIEldbl (longdblfio.U): ! This variable conditionally defines the PERL_PRIfldlbl symbol, which indiciates that stdio has a symbol to print long doubles. d_PRIfldbl (longdblfio.U): ! This variable conditionally defines the PERL_PRIfldlbl symbol, which indiciates that stdio has a symbol to print long doubles. ! d_PRIFldbl (longdblfio.U): ! This variable conditionally defines the PERL_PRIfldlbl symbol, which indiciates that stdio has a symbol to print long doubles. d_PRIgldbl (longdblfio.U): ! This variable conditionally defines the PERL_PRIfldlbl symbol, which indiciates that stdio has a symbol to print long doubles. ! d_PRIGldbl (longdblfio.U): ! This variable conditionally defines the PERL_PRIfldlbl symbol, which indiciates that stdio has a symbol to print long doubles. d_PRIi64 (quadfio.U): This variable conditionally defines the PERL_PRIi64 symbol, which --- 1119,1152 ---- indiciates that stdio has a symbol to print 64-bit decimal numbers. d_PRIeldbl (longdblfio.U): ! This variable conditionally defines the PERL_PRIfldbl symbol, which indiciates that stdio has a symbol to print long doubles. ! d_PRIEUldbl (longdblfio.U): ! This variable conditionally defines the PERL_PRIfldbl symbol, which indiciates that stdio has a symbol to print long doubles. + The 'U' in the name is to separate this from d_PRIeldbl so that even + case-blind systems can see the difference. d_PRIfldbl (longdblfio.U): ! This variable conditionally defines the PERL_PRIfldbl symbol, which indiciates that stdio has a symbol to print long doubles. ! d_PRIFUldbl (longdblfio.U): ! This variable conditionally defines the PERL_PRIfldbl symbol, which indiciates that stdio has a symbol to print long doubles. + The 'U' in the name is to separate this from d_PRIfldbl so that even + case-blind systems can see the difference. d_PRIgldbl (longdblfio.U): ! This variable conditionally defines the PERL_PRIfldbl symbol, which indiciates that stdio has a symbol to print long doubles. ! d_PRIGUldbl (longdblfio.U): ! This variable conditionally defines the PERL_PRIfldbl symbol, which indiciates that stdio has a symbol to print long doubles. + The 'U' in the name is to separate this from d_PRIgldbl so that even + case-blind systems can see the difference. d_PRIi64 (quadfio.U): This variable conditionally defines the PERL_PRIi64 symbol, which *************** *** 1101,1109 **** This variable conditionally defines the PERL_PRIx64 symbol, which indiciates that stdio has a symbol to print 64-bit hexadecimal numbers. ! d_PRIX64 (quadfio.U): ! This variable conditionally defines the PERL_PRIX64 symbol, which indiciates that stdio has a symbol to print 64-bit hExADECimAl numbers. d_pthread_yield (d_pthread_y.U): This variable conditionally defines the HAS_PTHREAD_YIELD --- 1165,1175 ---- This variable conditionally defines the PERL_PRIx64 symbol, which indiciates that stdio has a symbol to print 64-bit hexadecimal numbers. ! d_PRIXU64 (quadfio.U): ! This variable conditionally defines the PERL_PRIXU64 symbol, which indiciates that stdio has a symbol to print 64-bit hExADECimAl numbers. + The 'U' in the name is to separate this from d_PRIx64 so that even + case-blind systems can see the difference. d_pthread_yield (d_pthread_y.U): This variable conditionally defines the HAS_PTHREAD_YIELD *************** *** 1195,1200 **** --- 1261,1270 ---- which indicates that the SCM_RIGHTS is available. #ifdef is not enough because it may be an enum, glibc has been known to do this. + d_SCNfldbl (longdblfio.U): + This variable conditionally defines the PERL_PRIfldbl symbol, which + indiciates that stdio has a symbol to scan long doubles. + d_seekdir (d_readdir.U): This variable conditionally defines HAS_SEEKDIR if seekdir() is available. *************** *** 1287,1292 **** --- 1357,1367 ---- This variable conditionally defines HAS_SETPRIORITY if setpriority() is available to set a process's priority. + d_setproctitle (d_setproctitle.U): + This variable conditionally defines the HAS_SETPROCTITLE symbol, + which indicates to the C program that the setproctitle() routine + is available. + d_setpwent (d_setpwent.U): This variable conditionally defines the HAS_SETPWENT symbol, which indicates to the C program that the setpwent() routine is available *************** *** 1330,1339 **** This variable conditionally defines HAS_SETSID if setsid() is available to set the process group ID. - d_setspent (d_setspent.U): - This variable conditionally defines HAS_SETSPENT if setspent() is - available to initialize the scan of SysV shadow password entries. - d_setvbuf (d_setvbuf.U): This variable conditionally defines the HAS_SETVBUF symbol, which indicates to the C program that the setvbuf() routine is available --- 1405,1410 ---- *************** *** 1388,1393 **** --- 1459,1468 ---- This variable conditionally defines the HAS_SOCKETPAIR symbol, which indicates that the BSD socketpair() is supported. + d_socks5_init (d_socks5_init.U): + This variable conditionally defines the HAS_SOCKS5_INIT symbol, which + indicates to the C program that the socks5_init() routine is available. + d_sqrtl (d_sqrtl.U): This variable conditionally defines the HAS_SQRTL symbol, which indicates to the C program that the sqrtl() routine is available. *************** *** 1419,1424 **** --- 1494,1508 ---- This variable conditionally defines STDIO_PTR_LVALUE if the FILE_ptr macro can be used as an lvalue. + d_stdio_ptr_lval_nochange_cnt (d_stdstdio.U): + This symbol is defined if using the FILE_ptr macro as an lvalue + to increase the pointer by n leaves File_cnt(fp) unchanged. + + d_stdio_ptr_lval_sets_cnt (d_stdstdio.U): + This symbol is defined if using the FILE_ptr macro as an lvalue + to increase the pointer by n has the side effect of decreasing the + value of File_cnt(fp) by n. + d_stdio_stream_array (stdio_streams.U): This variable tells whether there is an array holding the stdio streams. *************** *** 1782,1788 **** can share this executable will have the same full pathname to 'sed.' ! gccversion (cc.U): If GNU cc (gcc) is used, this variable holds '1' or '2' to indicate whether the compiler is version 1 or 2. This is used in setting some of the default cflags. It is set to '' if not gcc. --- 1866,1877 ---- can share this executable will have the same full pathname to 'sed.' ! gccosandvers (gccvers.U): ! If GNU cc (gcc) is used, this variable the operating system and ! version used to compile the gcc. It is set to '' if not gcc, ! or if nothing useful can be parsed as the os version. ! ! gccversion (gccvers.U): If GNU cc (gcc) is used, this variable holds '1' or '2' to indicate whether the compiler is version 1 or 2. This is used in setting some of the default cflags. It is set to '' if not gcc. *************** *** 1849,1860 **** On some systems, such as os390, there may be no equivalent command, in which case this variable is unset. - huge (models.U): - This variable contains a flag which will tell the C compiler and loader - to produce a program running with a huge memory model. If the - huge model is not supported, contains the flag to produce large - model programs. It is up to the Makefile to use this. - i16size (perlxv.U): This variable is the size of an I16 in bytes. --- 1938,1943 ---- *************** *** 1941,1946 **** --- 2024,2033 ---- This variable conditionally defines the I_INTTYPES symbol, and indicates whether a C program should include . + i_libutil (i_libutil.U): + This variable conditionally defines the I_LIBUTIL symbol, and indicates + whether a C program should include . + i_limits (i_limits.U): This variable conditionally defines the I_LIMITS symbol, and indicates whether a C program may include to get symbols like WORD_BIT *************** *** 1997,2002 **** --- 2084,2093 ---- This variable conditionally defines the I_POLL symbol, and indicates whether a C program should include . + i_prot (i_prot.U): + This variable conditionally defines the I_PROT symbol, and indicates + whether a C program should include . + i_pthread (i_pthread.U): This variable conditionally defines the I_PTHREAD symbol, and indicates whether a C program should include . *************** *** 2360,2370 **** This variable is defined but not used by Configure. The value is a plain '' and is not useful. - large (models.U): - This variable contains a flag which will tell the C compiler and loader - to produce a program running with a large memory model. It is up to - the Makefile to use this. - ld (dlsrc.U): This variable indicates the program to be used to link libraries for dynamic loading. On some systems, it is 'ld'. --- 2451,2456 ---- *************** *** 2381,2386 **** --- 2467,2476 ---- This variable contains any additional C loader flags desired by the user. It is up to the Makefile to use this. + ldflags_uselargefiles (uselfs.U): + This variable contains the loader flags needed by large file builds + and added to ldflags by hints files. + ldlibpthname (libperl.U): This variable holds the name of the shared library search path, often LD_LIBRARY_PATH. To get an empty *************** *** 2433,2438 **** --- 2523,2534 ---- search. The order is chosen to pick up the c library ahead of ucb or bsd libraries for SVR4. + libswanted_uselargefiles (uselfs.U): + This variable contains the libraries needed by large file builds + and added to ldflags by hints files. It is a space separated list + of the library names without the "lib" prefix or any suffix, just + like libswanted.. + line (Loc.U): This variable is defined but not used by Configure. The value is a plain '' and is not useful. *************** *** 2578,2589 **** full pathname (if any) of the Mcc program. After Configure runs, the value is reset to a plain "Mcc" and is not useful. - medium (models.U): - This variable contains a flag which will tell the C compiler and loader - to produce a program running with a medium memory model. If the - medium model is not supported, contains the flag to produce large - model programs. It is up to the Makefile to use this. - mips_type (usrinc.U): This variable holds the environment type for the mips system. Possible values are "BSD 4.3" and "System V". --- 2674,2679 ---- *************** *** 2598,2608 **** (and simultaneously the type of the first argument). It can be 'void *' or 'caddr_t'. - models (models.U): - This variable contains the list of memory models supported by this - system. Possible component values are none, split, unsplit, small, - medium, large, and huge. The component values are space separated. - modetype (modetype.U): This variable defines modetype to be something like mode_t, int, unsigned short, or whatever type is used to declare file --- 2688,2693 ---- *************** *** 2695,2700 **** --- 2780,2809 ---- full pathname (if any) of the nroff program. After Configure runs, the value is reset to a plain "nroff" and is not useful. + nveformat (perlxvf.U): + This variable contains the format string used for printing + a Perl NV using %e-ish floating point format. + + nvEUformat (perlxvf.U): + This variable contains the format string used for printing + a Perl NV using %E-ish floating point format. + + nvfformat (perlxvf.U): + This variable confains the format string used for printing + a Perl NV using %f-ish floating point format. + + nvFUformat (perlxvf.U): + This variable confains the format string used for printing + a Perl NV using %F-ish floating point format. + + nvgformat (perlxvf.U): + This variable contains the format string used for printing + a Perl NV using %g-ish floating point format. + + nvGUformat (perlxvf.U): + This variable contains the format string used for printing + a Perl NV using %G-ish floating point format. + nvsize (perlxv.U): This variable is the size of an NV in bytes. *************** *** 2741,2746 **** --- 2850,2865 ---- same for this package, hints files might just be os_4.0 or os_4.1, etc., not keeping separate files for each little release. + otherlibdirs (otherlibdirs.U): + This variable contains a colon-separated set of paths for the perl + binary to search for additional library files or modules. + These directories will be tacked to the end of @INC. + Perl will automatically search below each path for version- + and architecture-specific directories. See inc_version_list + for more details. + A value of ' ' means 'none' and is used to preserve this value + for the next run through Configure. + package (package.U): This variable contains the name of the package being constructed. It is primarily intended for the use of later Configure units. *************** *** 2792,2797 **** --- 2911,2920 ---- perladmin (perladmin.U): Electronic mail address of the perl5 administrator. + perllibs (End.U): + The list of libraries needed by Perl only (any libraries needed + by extensions only will by dropped, if using dynamic loading). + perlpath (perlpath.U): This variable contains the eventual value of the PERLPATH symbol, which contains the name of the perl interpreter to be used in *************** *** 3114,3124 **** This variable is defined but not used by Configure. The value is a plain '' and is not useful. - small (models.U): - This variable contains a flag which will tell the C compiler and loader - to produce a program running with a small memory model. It is up to - the Makefile to use this. - so (so.U): This variable holds the extension used to identify shared libraries (also known as shared objects) on the system. Usually set to 'so'. --- 3237,3242 ---- *************** *** 3148,3159 **** This variable contains the command necessary to spit out a runnable shell on this system. It is either cat or a grep '-v' for # comments. - split (models.U): - This variable contains a flag which will tell the C compiler and loader - to produce a program that will run in separate I and D space, for those - machines that support separation of instruction and data space. It is - up to the Makefile to use this. - sPRId64 (quadfio.U): This variable, if defined, contains the string used by stdio to format 64-bit decimal numbers (format 'd') for output. --- 3266,3271 ---- *************** *** 3162,3186 **** This variable, if defined, contains the string used by stdio to format long doubles (format 'e') for output. ! sPRIEldbl (longdblfio.U): This variable, if defined, contains the string used by stdio to format long doubles (format 'E') for output. sPRIfldbl (longdblfio.U): This variable, if defined, contains the string used by stdio to format long doubles (format 'f') for output. ! sPRIFldbl (longdblfio.U): This variable, if defined, contains the string used by stdio to format long doubles (format 'F') for output. sPRIgldbl (longdblfio.U): This variable, if defined, contains the string used by stdio to format long doubles (format 'g') for output. ! sPRIGldbl (longdblfio.U): This variable, if defined, contains the string used by stdio to format long doubles (format 'G') for output. sPRIi64 (quadfio.U): This variable, if defined, contains the string used by stdio to --- 3274,3304 ---- This variable, if defined, contains the string used by stdio to format long doubles (format 'e') for output. ! sPRIEUldbl (longdblfio.U): This variable, if defined, contains the string used by stdio to format long doubles (format 'E') for output. + The 'U' in the name is to separate this from sPRIeldbl so that even + case-blind systems can see the difference. sPRIfldbl (longdblfio.U): This variable, if defined, contains the string used by stdio to format long doubles (format 'f') for output. ! sPRIFUldbl (longdblfio.U): This variable, if defined, contains the string used by stdio to format long doubles (format 'F') for output. + The 'U' in the name is to separate this from sPRIfldbl so that even + case-blind systems can see the difference. sPRIgldbl (longdblfio.U): This variable, if defined, contains the string used by stdio to format long doubles (format 'g') for output. ! sPRIGUldbl (longdblfio.U): This variable, if defined, contains the string used by stdio to format long doubles (format 'G') for output. + The 'U' in the name is to separate this from sPRIgldbl so that even + case-blind systems can see the difference. sPRIi64 (quadfio.U): This variable, if defined, contains the string used by stdio to *************** *** 3198,3212 **** This variable, if defined, contains the string used by stdio to format 64-bit hexadecimal numbers (format 'x') for output. ! sPRIX64 (quadfio.U): This variable, if defined, contains the string used by stdio to format 64-bit hExADECimAl numbers (format 'X') for output. src (src.U): This variable holds the path to the package source. It is up to the Makefile to use this variable and set VPATH accordingly to find the sources remotely. ssizetype (ssizetype.U): This variable defines ssizetype to be something like ssize_t, long or int. It is used by functions that return a count --- 3316,3336 ---- This variable, if defined, contains the string used by stdio to format 64-bit hexadecimal numbers (format 'x') for output. ! sPRIXU64 (quadfio.U): This variable, if defined, contains the string used by stdio to format 64-bit hExADECimAl numbers (format 'X') for output. + The 'U' in the name is to separate this from sPRIx64 so that even + case-blind systems can see the difference. src (src.U): This variable holds the path to the package source. It is up to the Makefile to use this variable and set VPATH accordingly to find the sources remotely. + sSCNfldbl (longdblfio.U): + This variable, if defined, contains the string used by stdio to + format long doubles (format 'f') for input. + ssizetype (ssizetype.U): This variable defines ssizetype to be something like ssize_t, long or int. It is used by functions that return a count *************** *** 3521,3527 **** uvxformat (perlxvf.U): This variable contains the format string used for printing ! a Perl UV as an unsigned hexadecimal integer. vendorarch (vendorarch.U): This variable contains the value of the PERL_VENDORARCH symbol. --- 3645,3655 ---- uvxformat (perlxvf.U): This variable contains the format string used for printing ! a Perl UV as an unsigned hexadecimal integer in lowercase abcdef. ! ! uvXUformat (perlxvf.U): ! This variable contains the format string used for printing ! a Perl UV as an unsigned hexadecimal integer in uppercase ABCDEF. vendorarch (vendorarch.U): This variable contains the value of the PERL_VENDORARCH symbol. *************** *** 3582,3587 **** --- 3710,3727 ---- full version number, including any possible subversions. This is suitable for use as a directory name, and hence is filesystem dependent. + + versiononly (versiononly.U): + If set, this symbol indicates that only the version-specific + components of a perl installation should be installed. + This may be useful for making a test installation of a new + version without disturbing the existing installation. + Setting versiononly is equivalent to setting installperl's -v option. + In particular, the non-versioned scripts and programs such as + a2p, c2ph, h2xs, pod2*, and perldoc are not installed + (see INSTALL for a more complete list). Nor are the man + pages installed. + Usually, this is undef. vi (Loc.U): This variable is defined but not used by Configure. Index: Porting/config.sh ####### perl-5.6.1-TRIAL1/ => perl-5.6.1-TRIAL1 *** perl-5.6.1-TRIAL1/Porting/config.sh Wed Mar 22 05:51:17 2000 --- perl-5.6.1-TRIAL1/Porting/config.sh Sun Dec 17 20:44:55 2000 *************** *** 7,14 **** # # Package name : perl5 ! # Source directory : . ! # Configuration time: Tue Mar 21 23:22:20 EET 2000 # Configured by : jhi # Target system : osf1 alpha.hut.fi v4.0 878 alpha --- 7,14 ---- # # Package name : perl5 ! # Source directory : /m/fs/work/work/permanent/perl/pp4/perl ! # Configuration time: Thu Nov 16 03:24:59 EET 2000 # Configured by : jhi # Target system : osf1 alpha.hut.fi v4.0 878 alpha *************** *** 35,44 **** api_version='5' api_versionstring='5.005' ar='ar' ! archlib='/opt/perl/lib/5.6.0/alpha-dec_osf-thread-multi' ! archlibexp='/opt/perl/lib/5.6.0/alpha-dec_osf-thread-multi' archname64='' ! archname='alpha-dec_osf-thread-multi' archobjs='' awk='awk' baserev='5.0' --- 35,44 ---- api_version='5' api_versionstring='5.005' ar='ar' ! archlib='/opt/perl/lib/5.7.0/alpha-dec_osf-thread' ! archlibexp='/opt/perl/lib/5.7.0/alpha-dec_osf-thread' archname64='' ! archname='alpha-dec_osf-thread' archobjs='' awk='awk' baserev='5.0' *************** *** 54,65 **** cat='cat' cc='cc' cccdlflags=' ' ! ccdlflags=' -Wl,-rpath,/opt/perl/lib/5.6.0/alpha-dec_osf-thread-multi/CORE' ccflags='-pthread -std -DLANGUAGE_C' ccsymbols='__alpha=1 __LANGUAGE_C__=1 __osf__=1 __unix__=1 _LONGLONG=1 _SYSTYPE_BSD=1 SYSTYPE_BSD=1 unix=1' cf_by='jhi' cf_email='yourname@yourhost.yourplace.com' ! cf_time='Tue Mar 21 23:22:20 EET 2000' charsize='1' chgrp='' chmod='' --- 54,68 ---- cat='cat' cc='cc' cccdlflags=' ' ! ccdlflags=' -Wl,-rpath,/opt/perl/lib/5.7.0/alpha-dec_osf-thread/CORE' ccflags='-pthread -std -DLANGUAGE_C' + ccflags_uselargefiles='' + ccname='cc' ccsymbols='__alpha=1 __LANGUAGE_C__=1 __osf__=1 __unix__=1 _LONGLONG=1 _SYSTYPE_BSD=1 SYSTYPE_BSD=1 unix=1' + ccversion='V5.6-082' cf_by='jhi' cf_email='yourname@yourhost.yourplace.com' ! cf_time='Thu Nov 16 03:24:59 EET 2000' charsize='1' chgrp='' chmod='' *************** *** 83,92 **** cryptlib='' csh='csh' d_Gconvert='gcvt((x),(n),(b))' ! d_PRIEldbl='define' ! d_PRIFldbl='define' ! d_PRIGldbl='define' ! d_PRIX64='define' d_PRId64='define' d_PRIeldbl='define' d_PRIfldbl='define' --- 86,95 ---- cryptlib='' csh='csh' d_Gconvert='gcvt((x),(n),(b))' ! d_PRIEUldbl='define' ! d_PRIFUldbl='define' ! d_PRIGUldbl='define' ! d_PRIXU64='define' d_PRId64='define' d_PRIeldbl='define' d_PRIfldbl='define' *************** *** 95,100 **** --- 98,105 ---- d_PRIo64='define' d_PRIu64='define' d_PRIx64='define' + d_SCNfldbl='define' + d__fwalk='undef' d_access='define' d_accessx='undef' d_alarm='define' *************** *** 136,147 **** d_endpent='define' d_endpwent='define' d_endsent='define' - d_endspent='undef' d_eofnblk='define' d_eunice='undef' d_fchmod='define' d_fchown='define' d_fcntl='define' d_fd_macros='define' d_fd_set='define' d_fds_bits='define' --- 141,152 ---- d_endpent='define' d_endpwent='define' d_endsent='define' d_eofnblk='define' d_eunice='undef' d_fchmod='define' d_fchown='define' d_fcntl='define' + d_fcntl_can_lock='define' d_fd_macros='define' d_fd_set='define' d_fds_bits='define' *************** *** 151,164 **** --- 156,172 ---- d_fork='define' d_fpathconf='define' d_fpos64_t='undef' + d_frexpl='define' d_fs_data_s='undef' d_fseeko='undef' d_fsetpos='define' d_fstatfs='define' d_fstatvfs='define' + d_fsync='define' d_ftello='undef' d_ftime='undef' d_getcwd='define' + d_getespwnam='undef' d_getfsstat='define' d_getgrent='define' d_getgrps='define' *************** *** 174,179 **** --- 182,188 ---- d_getnbyname='define' d_getnent='define' d_getnetprotos='define' + d_getpagsz='define' d_getpbyname='define' d_getpbynumber='define' d_getpent='define' *************** *** 183,194 **** d_getppid='define' d_getprior='define' d_getprotoprotos='define' d_getpwent='define' d_getsbyname='define' d_getsbyport='define' d_getsent='define' d_getservprotos='define' - d_getspent='undef' d_getspnam='undef' d_gettimeod='define' d_gnulibc='undef' --- 192,203 ---- d_getppid='define' d_getprior='define' d_getprotoprotos='define' + d_getprpwnam='undef' d_getpwent='define' d_getsbyname='define' d_getsbyport='define' d_getsent='define' d_getservprotos='define' d_getspnam='undef' d_gettimeod='define' d_gnulibc='undef' *************** *** 200,205 **** --- 209,216 ---- d_inetaton='define' d_int64_t='undef' d_isascii='define' + d_isnan='define' + d_isnanl='define' d_killpg='define' d_lchown='define' d_ldbl_dig='define' *************** *** 226,231 **** --- 237,243 ---- d_mkstemps='undef' d_mktime='define' d_mmap='define' + d_modfl='define' d_mprotect='define' d_msg='define' d_msg_ctrunc='define' *************** *** 242,247 **** --- 254,260 ---- d_mymalloc='undef' d_nice='define' d_nv_preserves_uv='undef' + d_nv_preserves_uv_bits='53' d_off64_t='undef' d_old_pthread_create_joinable='undef' d_oldpthreads='undef' *************** *** 249,254 **** --- 262,268 ---- d_open3='define' d_pathconf='define' d_pause='define' + d_perl_otherlibdirs='undef' d_phostname='undef' d_pipe='define' d_poll='define' *************** *** 295,300 **** --- 309,315 ---- d_setpgrp2='undef' d_setpgrp='define' d_setprior='define' + d_setproctitle='undef' d_setpwent='define' d_setregid='define' d_setresgid='undef' *************** *** 304,310 **** d_setruid='define' d_setsent='define' d_setsid='define' - d_setspent='undef' d_setvbuf='define' d_sfio='undef' d_shm='define' --- 319,324 ---- *************** *** 318,323 **** --- 332,338 ---- d_socket='define' d_socklen_t='undef' d_sockpair='define' + d_socks5_init='undef' d_sqrtl='define' d_statblks='define' d_statfs_f_flags='define' *************** *** 325,330 **** --- 340,347 ---- d_statvfs='define' d_stdio_cnt_lval='define' d_stdio_ptr_lval='define' + d_stdio_ptr_lval_nochange_cnt='define' + d_stdio_ptr_lval_sets_cnt='undef' d_stdio_stream_array='define' d_stdiobase='define' d_stdstdio='define' *************** *** 383,389 **** dlsrc='dl_dlopen.xs' doublesize='8' drand01='drand48()' ! dynamic_ext='B ByteLoader DB_File Data/Dumper Devel/DProf Devel/Peek Fcntl File/Glob IO IPC/SysV NDBM_File ODBM_File Opcode POSIX SDBM_File Socket Sys/Hostname Sys/Syslog Thread attrs re' eagain='EAGAIN' ebcdic='undef' echo='echo' --- 400,406 ---- dlsrc='dl_dlopen.xs' doublesize='8' drand01='drand48()' ! dynamic_ext='B ByteLoader DB_File Data/Dumper Devel/DProf Devel/Peek Encode Fcntl File/Glob IO IPC/SysV NDBM_File ODBM_File Opcode POSIX SDBM_File Socket Storable Sys/Hostname Sys/Syslog Thread attrs re' eagain='EAGAIN' ebcdic='undef' echo='echo' *************** *** 392,398 **** eunicefix=':' exe_ext='' expr='expr' ! extensions='B ByteLoader DB_File Data/Dumper Devel/DProf Devel/Peek Fcntl File/Glob IO IPC/SysV NDBM_File ODBM_File Opcode POSIX SDBM_File Socket Sys/Hostname Sys/Syslog Thread attrs re Errno' fflushNULL='define' fflushall='undef' find='' --- 409,415 ---- eunicefix=':' exe_ext='' expr='expr' ! extensions='B ByteLoader DB_File Data/Dumper Devel/DProf Devel/Peek Encode Fcntl File/Glob IO IPC/SysV NDBM_File ODBM_File Opcode POSIX SDBM_File Socket Storable Sys/Hostname Sys/Syslog Thread attrs re Errno' fflushNULL='define' fflushall='undef' find='' *************** *** 404,409 **** --- 421,427 ---- full_ar='/usr/bin/ar' full_csh='/usr/bin/csh' full_sed='/usr/bin/sed' + gccosandvers='' gccversion='' gidformat='"u"' gidsign='1' *************** *** 418,424 **** h_sysfile='true' hint='recommended' hostcat='cat /etc/hosts' - huge='' i16size='2' i16type='short' i32size='4' --- 436,441 ---- *************** *** 441,446 **** --- 458,464 ---- i_iconv='define' i_ieeefp='undef' i_inttypes='undef' + i_libutil='undef' i_limits='define' i_locale='define' i_machcthr='undef' *************** *** 454,459 **** --- 472,478 ---- i_netinettcp='define' i_niin='define' i_poll='define' + i_prot='define' i_pthread='define' i_pwd='define' i_rpcsvcdbm='undef' *************** *** 509,525 **** inc_version_list_init='0' incpath='' inews='' ! installarchlib='/opt/perl/lib/5.6.0/alpha-dec_osf-thread-multi' installbin='/opt/perl/bin' installman1dir='/opt/perl/man/man1' installman3dir='/opt/perl/man/man3' installprefix='/opt/perl' installprefixexp='/opt/perl' ! installprivlib='/opt/perl/lib/5.6.0' installscript='/opt/perl/bin' ! installsitearch='/opt/perl/lib/site_perl/5.6.0/alpha-dec_osf-thread-multi' installsitebin='/opt/perl/bin' ! installsitelib='/opt/perl/lib/site_perl/5.6.0' installstyle='lib' installusrbinperl='define' installvendorarch='' --- 528,544 ---- inc_version_list_init='0' incpath='' inews='' ! installarchlib='/opt/perl/lib/5.7.0/alpha-dec_osf-thread' installbin='/opt/perl/bin' installman1dir='/opt/perl/man/man1' installman3dir='/opt/perl/man/man3' installprefix='/opt/perl' installprefixexp='/opt/perl' ! installprivlib='/opt/perl/lib/5.7.0' installscript='/opt/perl/bin' ! installsitearch='/opt/perl/lib/site_perl/5.7.0/alpha-dec_osf-thread' installsitebin='/opt/perl/bin' ! installsitelib='/opt/perl/lib/site_perl/5.7.0' installstyle='lib' installusrbinperl='define' installvendorarch='' *************** *** 529,552 **** ivdformat='"ld"' ivsize='8' ivtype='long' ! known_extensions='B ByteLoader DB_File Data/Dumper Devel/DProf Devel/Peek Fcntl File/Glob GDBM_File IO IPC/SysV NDBM_File ODBM_File Opcode POSIX SDBM_File Socket Sys/Hostname Sys/Syslog Thread attrs re' ksh='' - large='' ld='ld' lddlflags='-shared -expect_unresolved "*" -msym -std -s' ldflags='' ldlibpthname='LD_LIBRARY_PATH' less='less' lib_ext='.a' libc='/usr/shlib/libc.so' libperl='libperl.so' libpth='/usr/shlib /usr/ccs/lib /usr/lib/cmplrs/cc /usr/lib /var/shlib' ! libs='-lgdbm -ldbm -ldb -lm -liconv -lpthread -lexc' libsdirs=' /usr/shlib /usr/ccs/lib' ! libsfiles=' libgdbm.so libdbm.a libdb.so libm.so libiconv.so libpthread.so libexc.so' ! libsfound=' /usr/shlib/libgdbm.so /usr/ccs/lib/libdbm.a /usr/shlib/libdb.so /usr/shlib/libm.so /usr/shlib/libiconv.so /usr/shlib/libpthread.so /usr/shlib/libexc.so' libspath=' /usr/shlib /usr/ccs/lib /usr/lib/cmplrs/cc /usr/lib /var/shlib' ! libswanted='sfio socket bind inet nsl nm gdbm dbm db malloc dld ld sun m cposix posix ndir dir crypt sec ucb BSD x iconv pthread exc' line='' lint='' lkflags='' --- 548,572 ---- ivdformat='"ld"' ivsize='8' ivtype='long' ! known_extensions='B ByteLoader DB_File Data/Dumper Devel/DProf Devel/Peek Encode Fcntl File/Glob GDBM_File IO IPC/SysV NDBM_File ODBM_File Opcode POSIX SDBM_File Socket Storable Sys/Hostname Sys/Syslog Thread attrs re' ksh='' ld='ld' lddlflags='-shared -expect_unresolved "*" -msym -std -s' ldflags='' + ldflags_uselargefiles='' ldlibpthname='LD_LIBRARY_PATH' less='less' lib_ext='.a' libc='/usr/shlib/libc.so' libperl='libperl.so' libpth='/usr/shlib /usr/ccs/lib /usr/lib/cmplrs/cc /usr/lib /var/shlib' ! libs='-lgdbm -ldbm -ldb -lm -liconv -lutil -lpthread -lexc' libsdirs=' /usr/shlib /usr/ccs/lib' ! libsfiles=' libgdbm.so libdbm.a libdb.so libm.so libiconv.so libutil.a libpthread.so libexc.so' ! libsfound=' /usr/shlib/libgdbm.so /usr/ccs/lib/libdbm.a /usr/shlib/libdb.so /usr/shlib/libm.so /usr/shlib/libiconv.so /usr/ccs/lib/libutil.a /usr/shlib/libpthread.so /usr/shlib/libexc.so' libspath=' /usr/shlib /usr/ccs/lib /usr/lib/cmplrs/cc /usr/lib /var/shlib' ! libswanted='sfio socket bind inet nsl nm gdbm dbm db malloc dld ld sun m cposix posix ndir dir crypt sec ucb BSD x iconv util pthread exc' ! libswanted_uselargefiles='' line='' lint='' lkflags='' *************** *** 575,585 **** man3dir='/opt/perl/man/man3' man3direxp='/opt/perl/man/man3' man3ext='3' - medium='' mips_type='' mkdir='mkdir' mmaptype='void *' - models='none' modetype='mode_t' more='more' multiarch='undef' --- 595,603 ---- *************** *** 598,603 **** --- 616,627 ---- nm_so_opt='' nonxs_ext='Errno' nroff='nroff' + nvEUformat='"E"' + nvFUformat='"F"' + nvGUformat='"G"' + nveformat='"e"' + nvfformat='"f"' + nvgformat='"g"' nvsize='8' nvtype='double' o_nonblock='O_NONBLOCK' *************** *** 606,620 **** optimize='-O' orderlib='false' osname='dec_osf' ! osvers='4.0' package='perl5' pager='/c/bin/less' passcat='cat /etc/passwd' ! patchlevel='6' path_sep=':' perl5='/u/vieraat/vieraat/jhi/Perl/bin/perl' perl='' perladmin='yourname@yourhost.yourplace.com' perlpath='/opt/perl/bin/perl' pg='pg' phostname='' --- 630,646 ---- optimize='-O' orderlib='false' osname='dec_osf' ! osvers='4.0d' ! otherlibdirs=' ' package='perl5' pager='/c/bin/less' passcat='cat /etc/passwd' ! patchlevel='7' path_sep=':' perl5='/u/vieraat/vieraat/jhi/Perl/bin/perl' perl='' perladmin='yourname@yourhost.yourplace.com' + perllibs='-lm -liconv -lutil -lpthread -lexc' perlpath='/opt/perl/bin/perl' pg='pg' phostname='' *************** *** 625,632 **** pr='' prefix='/opt/perl' prefixexp='/opt/perl' ! privlib='/opt/perl/lib/5.6.0' ! privlibexp='/opt/perl/lib/5.6.0' prototype='define' ptrsize='8' quadkind='2' --- 651,658 ---- pr='' prefix='/opt/perl' prefixexp='/opt/perl' ! privlib='/opt/perl/lib/5.7.0' ! privlibexp='/opt/perl/lib/5.7.0' prototype='define' ptrsize='8' quadkind='2' *************** *** 640,649 **** rm='rm' rmail='' runnm='true' ! sPRIEldbl='"E"' ! sPRIFldbl='"F"' ! sPRIGldbl='"G"' ! sPRIX64='"lX"' sPRId64='"ld"' sPRIeldbl='"e"' sPRIfldbl='"f"' --- 666,675 ---- rm='rm' rmail='' runnm='true' ! sPRIEUldbl='"E"' ! sPRIFUldbl='"F"' ! sPRIGUldbl='"G"' ! sPRIXU64='"lX"' sPRId64='"ld"' sPRIeldbl='"e"' sPRIfldbl='"f"' *************** *** 652,657 **** --- 678,684 ---- sPRIo64='"lo"' sPRIu64='"lu"' sPRIx64='"lx"' + sSCNfldbl='"f"' sched_yield='sched_yield()' scriptdir='/opt/perl/bin' scriptdirexp='/opt/perl/bin' *************** *** 673,692 **** sig_num='0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 6 6 16 20 23 23 23 29 48 ' sig_num_init='0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 6, 6, 16, 20, 23, 23, 23, 29, 48, 0' signal_t='void' ! sitearch='/opt/perl/lib/site_perl/5.6.0/alpha-dec_osf-thread-multi' ! sitearchexp='/opt/perl/lib/site_perl/5.6.0/alpha-dec_osf-thread-multi' sitebin='/opt/perl/bin' sitebinexp='/opt/perl/bin' ! sitelib='/opt/perl/lib/site_perl/5.6.0' sitelib_stem='/opt/perl/lib/site_perl' ! sitelibexp='/opt/perl/lib/site_perl/5.6.0' siteprefix='/opt/perl' siteprefixexp='/opt/perl' sizesize='8' sizetype='size_t' sleep='' smail='' - small='' so='so' sockethdr='' socketlib='' --- 700,718 ---- sig_num='0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 6 6 16 20 23 23 23 29 48 ' sig_num_init='0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 6, 6, 16, 20, 23, 23, 23, 29, 48, 0' signal_t='void' ! sitearch='/opt/perl/lib/site_perl/5.7.0/alpha-dec_osf-thread' ! sitearchexp='/opt/perl/lib/site_perl/5.7.0/alpha-dec_osf-thread' sitebin='/opt/perl/bin' sitebinexp='/opt/perl/bin' ! sitelib='/opt/perl/lib/site_perl/5.7.0' sitelib_stem='/opt/perl/lib/site_perl' ! sitelibexp='/opt/perl/lib/site_perl/5.7.0' siteprefix='/opt/perl' siteprefixexp='/opt/perl' sizesize='8' sizetype='size_t' sleep='' smail='' so='so' sockethdr='' socketlib='' *************** *** 694,701 **** sort='sort' spackage='Perl5' spitshell='cat' ! split='' ! src='.' ssizetype='ssize_t' startperl='#!/opt/perl/bin/perl' startsh='#!/bin/sh' --- 720,726 ---- sort='sort' spackage='Perl5' spitshell='cat' ! src='/m/fs/work/work/permanent/perl/pp4/perl' ssizetype='ssize_t' startperl='#!/opt/perl/bin/perl' startsh='#!/bin/sh' *************** *** 737,751 **** uname='uname' uniq='uniq' uquadtype='unsigned long' ! use5005threads='undef' use64bitall='define' use64bitint='define' usedl='define' ! useithreads='define' uselargefiles='define' uselongdouble='undef' usemorebits='undef' ! usemultiplicity='define' usemymalloc='n' usenm='true' useopcode='true' --- 762,776 ---- uname='uname' uniq='uniq' uquadtype='unsigned long' ! use5005threads='define' use64bitall='define' use64bitint='define' usedl='define' ! useithreads='undef' uselargefiles='define' uselongdouble='undef' usemorebits='undef' ! usemultiplicity='undef' usemymalloc='n' usenm='true' useopcode='true' *************** *** 759,764 **** --- 784,790 ---- usevfork='false' usrinc='/usr/include' uuname='' + uvXUformat='"lX"' uvoformat='"lo"' uvsize='8' uvtype='unsigned long' *************** *** 773,802 **** vendorlibexp='' vendorprefix='' vendorprefixexp='' ! version='5.6.0' vi='' voidflags='15' xlibpth='/usr/lib/386 /lib/386' ! xs_apiversion='5.6.0' zcat='' zip='zip' # Configure command line arguments. ! config_arg0='Configure' ! config_args='-Dprefix=/opt/perl -Doptimize=-O -Dusethreads -Duse64bitint -Duselargefiles -Dcf_by=yourname -Dcf_email=yourname@yourhost.yourplace.com -Dperladmin=yourname@yourhost.yourplace.com -Dmydomain=.yourplace.com -Dmyhostname=yourhost -dE' ! config_argc=11 config_arg1='-Dprefix=/opt/perl' config_arg2='-Doptimize=-O' config_arg3='-Dusethreads' ! config_arg4='-Duse64bitint' ! config_arg5='-Duselargefiles' ! config_arg6='-Dcf_by=yourname' ! config_arg7='-Dcf_email=yourname@yourhost.yourplace.com' ! config_arg8='-Dperladmin=yourname@yourhost.yourplace.com' ! config_arg9='-Dmydomain=.yourplace.com' ! config_arg10='-Dmyhostname=yourhost' ! config_arg11='-dE' PERL_REVISION=5 ! PERL_VERSION=6 PERL_SUBVERSION=0 PERL_API_REVISION=5 PERL_API_VERSION=5 --- 799,831 ---- vendorlibexp='' vendorprefix='' vendorprefixexp='' ! version='5.7.0' ! versiononly='undef' vi='' voidflags='15' xlibpth='/usr/lib/386 /lib/386' ! xs_apiversion='5.7.0' zcat='' zip='zip' # Configure command line arguments. ! config_arg0='./Configure' ! config_args='-Dprefix=/opt/perl -Doptimize=-O -Dusethreads -Duse5005threads -Duse64bitint -Duselargefiles -Dcf_by=yourname -Dcf_email=yourname@yourhost.yourplace.com -Dperladmin=yourname@yourhost.yourplace.com -Dmydomain=.yourplace.com -Dmyhostname=yourhost -dE -Dusedevel' ! config_argc=13 config_arg1='-Dprefix=/opt/perl' config_arg2='-Doptimize=-O' config_arg3='-Dusethreads' ! config_arg4='-Duse5005threads' ! config_arg5='-Duse64bitint' ! config_arg6='-Duselargefiles' ! config_arg7='-Dcf_by=yourname' ! config_arg8='-Dcf_email=yourname@yourhost.yourplace.com' ! config_arg9='-Dperladmin=yourname@yourhost.yourplace.com' ! config_arg10='-Dmydomain=.yourplace.com' ! config_arg11='-Dmyhostname=yourhost' ! config_arg12='-dE' ! config_arg13='-Dusedevel' PERL_REVISION=5 ! PERL_VERSION=7 PERL_SUBVERSION=0 PERL_API_REVISION=5 PERL_API_VERSION=5 Index: Porting/config_H Prereq: 3.0.1.5 ####### perl-5.6.1-TRIAL1/ => perl-5.6.1-TRIAL1 *** perl-5.6.1-TRIAL1/Porting/config_H Wed Mar 22 05:51:17 2000 --- perl-5.6.1-TRIAL1/Porting/config_H Sun Dec 17 20:44:55 2000 *************** *** 16,23 **** /* * Package name : perl5 ! * Source directory : . ! * Configuration time: Tue Mar 21 23:22:20 EET 2000 * Configured by : jhi * Target system : osf1 alpha.hut.fi v4.0 878 alpha */ --- 16,23 ---- /* * Package name : perl5 ! * Source directory : /m/fs/work/work/permanent/perl/pp4/perl ! * Configuration time: Thu Nov 16 03:24:59 EET 2000 * Configured by : jhi * Target system : osf1 alpha.hut.fi v4.0 878 alpha */ *************** *** 224,240 **** */ #define HAS_GETPGID /**/ - /* HAS_GETPGRP: - * This symbol, if defined, indicates that the getpgrp routine is - * available to get the current process group. - */ - /* USE_BSD_GETPGRP: - * This symbol, if defined, indicates that getpgrp needs one - * arguments whereas USG one needs none. - */ - #define HAS_GETPGRP /**/ - /*#define USE_BSD_GETPGRP / **/ - /* HAS_GETPGRP2: * This symbol, if defined, indicates that the getpgrp2() (as in DG/UX) * routine is available to get the current process group. --- 224,229 ---- *************** *** 489,506 **** */ #define HAS_SETPGID /**/ - /* HAS_SETPGRP: - * This symbol, if defined, indicates that the setpgrp routine is - * available to set the current process group. - */ - /* USE_BSD_SETPGRP: - * This symbol, if defined, indicates that setpgrp needs two - * arguments whereas USG one needs none. See also HAS_SETPGID - * for a POSIX interface. - */ - #define HAS_SETPGRP /**/ - #define USE_BSD_SETPGRP /**/ - /* HAS_SETPGRP2: * This symbol, if defined, indicates that the setpgrp2() (as in DG/UX) * routine is available to set the current process group. --- 478,483 ---- *************** *** 1092,1099 **** * This symbol contains the ~name expanded version of ARCHLIB, to be used * in programs that are not prepared to deal with ~ expansion at run-time. */ ! #define ARCHLIB "/opt/perl/lib/5.6.0/alpha-dec_osf-thread-multi" /**/ ! #define ARCHLIB_EXP "/opt/perl/lib/5.6.0/alpha-dec_osf-thread-multi" /**/ /* ARCHNAME: * This symbol holds a string representing the architecture name. --- 1069,1076 ---- * This symbol contains the ~name expanded version of ARCHLIB, to be used * in programs that are not prepared to deal with ~ expansion at run-time. */ ! #define ARCHLIB "/opt/perl/lib/5.7.0/alpha-dec_osf-thread" /**/ ! #define ARCHLIB_EXP "/opt/perl/lib/5.7.0/alpha-dec_osf-thread" /**/ /* ARCHNAME: * This symbol holds a string representing the architecture name. *************** *** 1101,1107 **** * where library files may be held under a private library, for * instance. */ ! #define ARCHNAME "alpha-dec_osf-thread-multi" /**/ /* HAS_ATOLF: * This symbol, if defined, indicates that the atolf routine is --- 1078,1084 ---- * where library files may be held under a private library, for * instance. */ ! #define ARCHNAME "alpha-dec_osf-thread" /**/ /* HAS_ATOLF: * This symbol, if defined, indicates that the atolf routine is *************** *** 1184,1204 **** * This macro surrounds its token with double quotes. */ #if 42 == 1 ! # define CAT2(a,b) a/**/b ! # define STRINGIFY(a) "a" /* If you can get stringification with catify, tell me how! */ #endif #if 42 == 42 ! # define PeRl_CaTiFy(a, b) a ## b ! # define PeRl_StGiFy(a) #a /* the additional level of indirection enables these macros to be * used as arguments to other macros. See K&R 2nd ed., page 231. */ ! # define CAT2(a,b) PeRl_CaTiFy(a,b) ! # define StGiFy(a) PeRl_StGiFy(a) ! # define STRINGIFY(a) PeRl_StGiFy(a) #endif #if 42 != 1 && 42 != 42 ! #include "Bletch: How does this C preprocessor catenate tokens?" #endif /* CPPSTDIN: --- 1161,1181 ---- * This macro surrounds its token with double quotes. */ #if 42 == 1 ! #define CAT2(a,b) a/**/b ! #define STRINGIFY(a) "a" /* If you can get stringification with catify, tell me how! */ #endif #if 42 == 42 ! #define PeRl_CaTiFy(a, b) a ## b ! #define PeRl_StGiFy(a) #a /* the additional level of indirection enables these macros to be * used as arguments to other macros. See K&R 2nd ed., page 231. */ ! #define CAT2(a,b) PeRl_CaTiFy(a,b) ! #define StGiFy(a) PeRl_StGiFy(a) ! #define STRINGIFY(a) PeRl_StGiFy(a) #endif #if 42 != 1 && 42 != 42 ! # include "Bletch: How does this C preprocessor catenate tokens?" #endif /* CPPSTDIN: *************** *** 1328,1350 **** */ #define HAS_ENDSERVENT /**/ - /* HAS_ENDSPENT: - * This symbol, if defined, indicates that the endspent system call is - * available to finalize the scan of SysV shadow password entries. - */ - /*#define HAS_ENDSPENT / **/ - /* HAS_FD_SET: * This symbol, when defined, indicates presence of the fd_set typedef * in */ #define HAS_FD_SET /**/ /* HAS_FPOS64_T: * This symbol will be defined if the C compiler supports fpos64_t. */ /*#define HAS_FPOS64_T / **/ /* HAS_STRUCT_FS_DATA: * This symbol, if defined, indicates that the struct fs_data * to do statfs() is supported. --- 1305,1334 ---- */ #define HAS_ENDSERVENT /**/ /* HAS_FD_SET: * This symbol, when defined, indicates presence of the fd_set typedef * in */ #define HAS_FD_SET /**/ + /* FLEXFILENAMES: + * This symbol, if defined, indicates that the system supports filenames + * longer than 14 characters. + */ + #define FLEXFILENAMES /**/ + /* HAS_FPOS64_T: * This symbol will be defined if the C compiler supports fpos64_t. */ /*#define HAS_FPOS64_T / **/ + /* HAS_FREXPL: + * This symbol, if defined, indicates that the frexpl routine is + * available to break a long double floating-point number into + * a normalized fraction and an integral power of 2. + */ + #define HAS_FREXPL /**/ + /* HAS_STRUCT_FS_DATA: * This symbol, if defined, indicates that the struct fs_data * to do statfs() is supported. *************** *** 1392,1397 **** --- 1376,1387 ---- */ #define HAS_GETCWD /**/ + /* HAS_GETESPWNAM: + * This symbol, if defined, indicates that the getespwnam system call is + * available to retrieve enchanced (shadow) password entries by name. + */ + /*#define HAS_GETESPWNAM / **/ + /* HAS_GETFSSTAT: * This symbol, if defined, indicates that the getfsstat routine is * available to stat filesystems in bulk. *************** *** 1497,1502 **** --- 1487,1499 ---- */ #define HAS_GETNET_PROTOS /**/ + /* HAS_GETPAGESIZE: + * This symbol, if defined, indicates that the getpagesize system call + * is available to get system page size, which is the granularity of + * many memory management calls. + */ + #define HAS_GETPAGESIZE /**/ + /* HAS_GETPROTOENT: * This symbol, if defined, indicates that the getprotoent() routine is * available to look up protocols in some data base or another. *************** *** 1522,1527 **** --- 1519,1530 ---- */ #define HAS_GETPROTO_PROTOS /**/ + /* HAS_GETPRPWNAM: + * This symbol, if defined, indicates that the getprpwnam system call is + * available to retrieve protected (shadow) password entries by name. + */ + /*#define HAS_GETPRPWNAM / **/ + /* HAS_GETPWENT: * This symbol, if defined, indicates that the getpwent routine is * available for sequential access of the passwd database. *************** *** 1543,1554 **** */ #define HAS_GETSERV_PROTOS /**/ - /* HAS_GETSPENT: - * This symbol, if defined, indicates that the getspent system call is - * available to retrieve SysV shadow password entries sequentially. - */ - /*#define HAS_GETSPENT / **/ - /* HAS_GETSPNAM: * This symbol, if defined, indicates that the getspnam system call is * available to retrieve SysV shadow password entries by name. --- 1546,1551 ---- *************** *** 1624,1629 **** --- 1621,1645 ---- */ #define HAS_ISASCII /**/ + /* HAS_ISNAN: + * This symbol, if defined, indicates that the isnan routine is + * available to check whether a double is a NaN. + */ + #define HAS_ISNAN /**/ + + /* HAS_ISNANL: + * This symbol, if defined, indicates that the isnanl routine is + * available to check whether a long double is a NaN. + */ + #define HAS_ISNANL /**/ + + /* HAS_LCHOWN: + * This symbol, if defined, indicates that the lchown routine is + * available to operate on a symbolic link (instead of following the + * link). + */ + #define HAS_LCHOWN /**/ + /* HAS_LDBL_DIG: * This symbol, if defined, indicates that this system's * or defines the symbol LDBL_DIG, which is the number *************** *** 1711,1716 **** --- 1727,1739 ---- #define HAS_MMAP /**/ #define Mmap_t void * /**/ + /* HAS_MODFL: + * This symbol, if defined, indicates that the modfl routine is + * available to split a long double x into a fractional part f and + * an integer part i such that |f| < 1.0 and (f + i) = x. + */ + #define HAS_MODFL /**/ + /* HAS_MPROTECT: * This symbol, if defined, indicates that the mprotect system call is * available to modify the access protection of a memory mapped file. *************** *** 1823,1828 **** --- 1846,1857 ---- */ #define HAS_SETPROTOENT /**/ + /* HAS_SETPROCTITLE: + * This symbol, if defined, indicates that the setproctitle routine is + * available to set process title. + */ + /*#define HAS_SETPROCTITLE / **/ + /* HAS_SETPWENT: * This symbol, if defined, indicates that the setpwent routine is * available for initializing sequential access of the passwd database. *************** *** 1835,1846 **** */ #define HAS_SETSERVENT /**/ - /* HAS_SETSPENT: - * This symbol, if defined, indicates that the setspent system call is - * available to initialize the scan of SysV shadow password entries. - */ - /*#define HAS_SETSPENT / **/ - /* HAS_SETVBUF: * This symbol, if defined, indicates that the setvbuf routine is * available to change buffering on an open stdio stream. --- 1864,1869 ---- *************** *** 1944,1949 **** --- 1967,1978 ---- /*#define HAS_MSG_PROXY / **/ #define HAS_SCM_RIGHTS /**/ + /* HAS_SOCKS5_INIT: + * This symbol, if defined, indicates that the socks5_init routine is + * available to initialize SOCKS 5. + */ + /*#define HAS_SOCKS5_INIT / **/ + /* HAS_SQRTL: * This symbol, if defined, indicates that the sqrtl routine is * available to do long double square roots. *************** *** 2006,2017 **** --- 2035,2057 ---- * This symbol is defined if the FILE_cnt macro can be used as an * lvalue. */ + /* STDIO_PTR_LVAL_SETS_CNT: + * This symbol is defined if using the FILE_ptr macro as an lvalue + * to increase the pointer by n has the side effect of decreasing the + * value of File_cnt(fp) by n. + */ + /* STDIO_PTR_LVAL_NOCHANGE_CNT: + * This symbol is defined if using the FILE_ptr macro as an lvalue + * to increase the pointer by n leaves File_cnt(fp) unchanged. + */ #define USE_STDIO_PTR /**/ #ifdef USE_STDIO_PTR #define FILE_ptr(fp) ((fp)->_ptr) #define STDIO_PTR_LVALUE /**/ #define FILE_cnt(fp) ((fp)->_cnt) #define STDIO_CNT_LVALUE /**/ + /*#define STDIO_PTR_LVAL_SETS_CNT / **/ + #define STDIO_PTR_LVAL_NOCHANGE_CNT /**/ #endif /* USE_STDIO_BASE: *************** *** 2279,2284 **** --- 2319,2330 ---- */ /*#define I_INTTYPES / **/ + /* I_LIBUTIL: + * This symbol, if defined, indicates that exists and + * should be included. + */ + /*#define I_LIBUTIL / **/ + /* I_MACH_CTHREADS: * This symbol, if defined, indicates to the C program that it should * include . *************** *** 2309,2314 **** --- 2355,2366 ---- */ #define I_POLL /**/ + /* I_PROT: + * This symbol, if defined, indicates that exists and + * should be included. + */ + #define I_PROT /**/ + /* I_PTHREAD: * This symbol, if defined, indicates to the C program that it should * include . *************** *** 2471,2478 **** --- 2523,2540 ---- * This symbol, if defined, contains the string used by stdio to * format long doubles (format 'g') for output. */ + /* PERL_PRIeldbl: + * This symbol, if defined, contains the string used by stdio to + * format long doubles (format 'e') for output. + */ + /* PERL_SCNfldbl: + * This symbol, if defined, contains the string used by stdio to + * format long doubles (format 'f') for input. + */ #define PERL_PRIfldbl "f" /**/ #define PERL_PRIgldbl "g" /**/ + #define PERL_PRIeldbl "e" /**/ + #define PERL_SCNfldbl "f" /**/ /* Off_t: * This symbol holds the type used to declare offsets in the kernel. *************** *** 2560,2565 **** --- 2622,2637 ---- #define Netdb_name_t const char * /**/ #define Netdb_net_t int /**/ + /* PERL_OTHERLIBDIRS: + * This variable contains a colon-separated set of paths for the perl + * binary to search for additional library files or modules. + * These directories will be tacked to the end of @INC. + * Perl will automatically search below each path for version- + * and architecture-specific directories. See PERL_INC_VERSION_LIST + * for more details. + */ + /*#define PERL_OTHERLIBDIRS " " / **/ + /* IVTYPE: * This symbol defines the C type used for Perl's IV. */ *************** *** 2623,2631 **** /* U64SIZE: * This symbol contains the sizeof(U64). */ /* NV_PRESERVES_UV: * This symbol, if defined, indicates that a variable of type NVTYPE ! * can preserve all the bit of a variable of type UVSIZE. */ #define IVTYPE long /**/ #define UVTYPE unsigned long /**/ --- 2695,2710 ---- /* U64SIZE: * This symbol contains the sizeof(U64). */ + /* NVSIZE: + * This symbol contains the sizeof(NV). + */ /* NV_PRESERVES_UV: * This symbol, if defined, indicates that a variable of type NVTYPE ! * can preserve all the bits of a variable of type UVTYPE. ! */ ! /* NV_PRESERVES_UV_BITS: ! * This symbol contains the number of bits a variable of type NVTYPE ! * can preserve of a variable of type UVTYPE. */ #define IVTYPE long /**/ #define UVTYPE unsigned long /**/ *************** *** 2652,2658 **** --- 2731,2739 ---- #define I64SIZE 8 /**/ #define U64SIZE 8 /**/ #endif + #define NVSIZE 8 /**/ #undef NV_PRESERVES_UV + #define NV_PRESERVES_UV_BITS 53 /* IVdf: * This symbol defines the format string used for printing a Perl IV *************** *** 2668,2679 **** */ /* UVxf: * This symbol defines the format string used for printing a Perl UV ! * as an unsigned hexadecimal integer. */ #define IVdf "ld" /**/ #define UVuf "lu" /**/ #define UVof "lo" /**/ #define UVxf "lx" /**/ /* Pid_t: * This symbol holds the type used to declare process ids in the kernel. --- 2749,2775 ---- */ /* UVxf: * This symbol defines the format string used for printing a Perl UV ! * as an unsigned hexadecimal integer in lowercase abcdef. ! */ ! /* NVef: ! * This symbol defines the format string used for printing a Perl NV ! * using %e-ish floating point format. ! */ ! /* NVff: ! * This symbol defines the format string used for printing a Perl NV ! * using %f-ish floating point format. ! */ ! /* NVgf: ! * This symbol defines the format string used for printing a Perl NV ! * using %g-ish floating point format. */ #define IVdf "ld" /**/ #define UVuf "lu" /**/ #define UVof "lo" /**/ #define UVxf "lx" /**/ + #define NVef "e" /**/ + #define NVff "f" /**/ + #define NVgf "g" /**/ /* Pid_t: * This symbol holds the type used to declare process ids in the kernel. *************** *** 2692,2699 **** * This symbol contains the ~name expanded version of PRIVLIB, to be used * in programs that are not prepared to deal with ~ expansion at run-time. */ ! #define PRIVLIB "/opt/perl/lib/5.6.0" /**/ ! #define PRIVLIB_EXP "/opt/perl/lib/5.6.0" /**/ /* PTRSIZE: * This symbol contains the size of a pointer, so that the C preprocessor --- 2788,2795 ---- * This symbol contains the ~name expanded version of PRIVLIB, to be used * in programs that are not prepared to deal with ~ expansion at run-time. */ ! #define PRIVLIB "/opt/perl/lib/5.7.0" /**/ ! #define PRIVLIB_EXP "/opt/perl/lib/5.7.0" /**/ /* PTRSIZE: * This symbol contains the size of a pointer, so that the C preprocessor *************** *** 2791,2798 **** * This symbol contains the ~name expanded version of SITEARCH, to be used * in programs that are not prepared to deal with ~ expansion at run-time. */ ! #define SITEARCH "/opt/perl/lib/site_perl/5.6.0/alpha-dec_osf-thread-multi" /**/ ! #define SITEARCH_EXP "/opt/perl/lib/site_perl/5.6.0/alpha-dec_osf-thread-multi" /**/ /* SITELIB: * This symbol contains the name of the private library for this package. --- 2887,2894 ---- * This symbol contains the ~name expanded version of SITEARCH, to be used * in programs that are not prepared to deal with ~ expansion at run-time. */ ! #define SITEARCH "/opt/perl/lib/site_perl/5.7.0/alpha-dec_osf-thread" /**/ ! #define SITEARCH_EXP "/opt/perl/lib/site_perl/5.7.0/alpha-dec_osf-thread" /**/ /* SITELIB: * This symbol contains the name of the private library for this package. *************** *** 2814,2821 **** * removed. The elements in inc_version_list (inc_version_list.U) can * be tacked onto this variable to generate a list of directories to search. */ ! #define SITELIB "/opt/perl/lib/site_perl/5.6.0" /**/ ! #define SITELIB_EXP "/opt/perl/lib/site_perl/5.6.0" /**/ #define SITELIB_STEM "/opt/perl/lib/site_perl" /**/ /* Size_t_size: --- 2910,2917 ---- * removed. The elements in inc_version_list (inc_version_list.U) can * be tacked onto this variable to generate a list of directories to search. */ ! #define SITELIB "/opt/perl/lib/site_perl/5.7.0" /**/ ! #define SITELIB_EXP "/opt/perl/lib/site_perl/5.7.0" /**/ #define SITELIB_STEM "/opt/perl/lib/site_perl" /**/ /* Size_t_size: *************** *** 2943,2949 **** * be built to use multiplicity. */ #ifndef MULTIPLICITY ! #define MULTIPLICITY /**/ #endif /* USE_PERLIO: --- 3039,3045 ---- * be built to use multiplicity. */ #ifndef MULTIPLICITY ! /*#define MULTIPLICITY / **/ #endif /* USE_PERLIO: *************** *** 2975,2982 **** * This symbol, if defined, indicates that Perl should * be built to use the old draft POSIX threads API. */ ! /*#define USE_5005THREADS / **/ ! #define USE_ITHREADS /**/ #if defined(USE_5005THREADS) && !defined(USE_ITHREADS) #define USE_THREADS /* until src is revised*/ #endif --- 3071,3078 ---- * This symbol, if defined, indicates that Perl should * be built to use the old draft POSIX threads API. */ ! #define USE_5005THREADS /**/ ! /*#define USE_ITHREADS / **/ #if defined(USE_5005THREADS) && !defined(USE_ITHREADS) #define USE_THREADS /* until src is revised*/ #endif *************** *** 3040,3046 **** /* PERL_XS_APIVERSION: * This variable contains the version of the oldest perl binary * compatible with the present perl. perl.c:incpush() and ! * lib/lib.pm will automatically search in /opt/perl/lib/site_perl/5.6.0/alpha-dec_osf-thread-multi for older * directories across major versions back to xs_apiversion. * This is only useful if you have a perl library directory tree * structured like the default one. --- 3136,3142 ---- /* PERL_XS_APIVERSION: * This variable contains the version of the oldest perl binary * compatible with the present perl. perl.c:incpush() and ! * lib/lib.pm will automatically search in /opt/perl/lib/site_perl/5.7.0/alpha-dec_osf-thread for older * directories across major versions back to xs_apiversion. * This is only useful if you have a perl library directory tree * structured like the default one. *************** *** 3059,3065 **** * compatible with the present perl. (That is, pure perl modules * written for pm_apiversion will still work for the current * version). perl.c:incpush() and lib/lib.pm will automatically ! * search in /opt/perl/lib/site_perl/5.6.0 for older directories across major versions * back to pm_apiversion. This is only useful if you have a perl * library directory tree structured like the default one. The * versioned site_perl library was introduced in 5.005, so that's --- 3155,3161 ---- * compatible with the present perl. (That is, pure perl modules * written for pm_apiversion will still work for the current * version). perl.c:incpush() and lib/lib.pm will automatically ! * search in /opt/perl/lib/site_perl/5.7.0 for older directories across major versions * back to pm_apiversion. This is only useful if you have a perl * library directory tree structured like the default one. The * versioned site_perl library was introduced in 5.005, so that's *************** *** 3069,3088 **** * (presumably) be similar. * See the INSTALL file for how this works. */ ! #define PERL_XS_APIVERSION "5.6.0" #define PERL_PM_APIVERSION "5.005" ! /* HAS_LCHOWN: ! * This symbol, if defined, indicates that the lchown routine is ! * available to operate on a symbolic link (instead of following the ! * link). */ ! #define HAS_LCHOWN /**/ ! /* FLEXFILENAMES: ! * This symbol, if defined, indicates that the system supports filenames ! * longer than 14 characters. */ ! #define FLEXFILENAMES /**/ #endif --- 3165,3214 ---- * (presumably) be similar. * See the INSTALL file for how this works. */ ! #define PERL_XS_APIVERSION "5.7.0" #define PERL_PM_APIVERSION "5.005" ! /* HAS_GETPGRP: ! * This symbol, if defined, indicates that the getpgrp routine is ! * available to get the current process group. */ ! /* USE_BSD_GETPGRP: ! * This symbol, if defined, indicates that getpgrp needs one ! * arguments whereas USG one needs none. ! */ ! #define HAS_GETPGRP /**/ ! /*#define USE_BSD_GETPGRP / **/ ! /* HAS_SETPGRP: ! * This symbol, if defined, indicates that the setpgrp routine is ! * available to set the current process group. */ ! /* USE_BSD_SETPGRP: ! * This symbol, if defined, indicates that setpgrp needs two ! * arguments whereas USG one needs none. See also HAS_SETPGID ! * for a POSIX interface. ! */ ! #define HAS_SETPGRP /**/ ! #define USE_BSD_SETPGRP /**/ ! ! /* HAS__FWALK: ! * This symbol, if defined, indicates that the _fwalk system call is ! * available to apply a function to all the file handles. ! */ ! /*#define HAS__FWALK / **/ ! ! /* FCNTL_CAN_LOCK: ! * This symbol, if defined, indicates that fcntl() can be used ! * for file locking. Normally on Unix systems this is defined. ! * It may be undefined on VMS. ! */ ! #define FCNTL_CAN_LOCK /**/ ! ! /* HAS_FSYNC: ! * This symbol, if defined, indicates that the fsync routine is ! * available to write a file's modified data and attributes to ! * permanent storage. ! */ ! #define HAS_FSYNC /**/ #endif Index: Porting/genlog ####### perl-5.6.1-TRIAL1/ => perl-5.6.1-TRIAL1 *** perl-5.6.1-TRIAL1/Porting/genlog Tue Nov 30 19:57:56 1999 --- perl-5.6.1-TRIAL1/Porting/genlog Sun Dec 17 19:27:04 2000 *************** *** 20,26 **** $0 =~ s|^.*/||; unless (@ARGV) { die < USAGE } --- 20,26 ---- $0 =~ s|^.*/||; unless (@ARGV) { die < USAGE } *************** *** 32,37 **** --- 32,42 ---- my $p4port = $ENV{P4PORT} || 'localhost:1666'; + my @branch_include; + my @branch_exclude; + my %branch_include; + my %branch_exclude; + while (@ARGV) { $_ = shift; if (/^(\d+)\.\.(\d+)$/) { *************** *** 43,48 **** --- 48,59 ---- elsif (/^-p(.*)$/) { $p4port = $1 || shift; } + elsif (/^-bi(.*)$/) { + push @branch_include, $1 || shift; + } + elsif (/^-be(.*)$/) { + push @branch_exclude, $1 || shift; + } else { warn "Arguments must be change numbers, ignoring `$_'\n"; } *************** *** 50,55 **** --- 61,69 ---- @changes = sort { $b <=> $a } @changes; + @branch_include{@branch_include} = @branch_include if @branch_include; + @branch_exclude{@branch_exclude} = @branch_exclude if @branch_exclude; + my @desc = `p4 -p $p4port describe -s @changes`; if ($?) { die "$0: `p4 -p $p4port describe -s @changes` failed, status[$?]\n"; *************** *** 58,63 **** --- 72,79 ---- chomp @desc; while (@desc) { my ($change,$who,$date,$time,@log,$branch,$file,$type,%files); + my $skip = 0; + my $nbranch = 0; $_ = shift @desc; if (/^Change (\d+) by (\w+)\@.+ on (\S+) (\S+)\s*$/) { ($change, $who, $date, $time) = ($1,$2,$3,$4); *************** *** 73,78 **** --- 89,100 ---- last unless /^\.\.\./; if (m{^\.\.\. //depot/(.*?perl|[^/]*)/([^#]+)#\d+ (\w+)\s*$}) { ($branch,$file,$type) = ($1,$2,$3); + $nbranch++; + if (exists $branch_exclude{$branch} or + @branch_include and + not exists $branch_include{$branch}) { + $skip++; + } $files{$branch} = {} unless exists $files{$branch}; $files{$branch}{$type} = [] unless exists $files{$branch}{$type}; push @{$files{$branch}{$type}}, $file; *************** *** 83,89 **** } } } ! next unless $change; print "_" x 76, "\n"; printf < perl-5.6.1-TRIAL1 *** perl-5.6.1-TRIAL1/Porting/makerel Sun Feb 27 16:40:56 2000 --- perl-5.6.1-TRIAL1/Porting/makerel Sun Oct 15 22:08:26 2000 *************** *** 78,85 **** chdir "$relroot/$reldir" or die $!; print "Setting file permissions...\n"; ! system("find . -type f -print | xargs chmod -w"); ! system("find . -type d -print | xargs chmod g-s"); system("find t -name '*.t' -print | xargs chmod +x"); my @exe = qw( Configure --- 78,85 ---- chdir "$relroot/$reldir" or die $!; print "Setting file permissions...\n"; ! system("find . -type f -print | xargs chmod 0444"); ! system("find . -type d -print | xargs chmod 0755"); system("find t -name '*.t' -print | xargs chmod +x"); my @exe = qw( Configure Index: Porting/p4desc ####### perl-5.6.1-TRIAL1/ => perl-5.6.1-TRIAL1 *** perl-5.6.1-TRIAL1/Porting/p4desc Wed Jan 26 14:45:14 2000 --- perl-5.6.1-TRIAL1/Porting/p4desc Mon Nov 27 03:19:26 2000 *************** *** 6,12 **** # Gurusamy Sarathy # ! use vars qw($thisfile $change $file $fnum $h $v $p4port @addfiles); BEGIN { $0 =~ s|^.*/||; --- 6,13 ---- # Gurusamy Sarathy # ! use vars qw($thisfile $change $file $fnum $h $v $p4port @addfiles ! $branches $skip); BEGIN { $0 =~ s|^.*/||; *************** *** 18,23 **** --- 19,27 ---- elsif (/^-p(.*)$/) { $p4port = $1 || ' '; } + elsif (/^-b(.*)$/) { + $branches = $1; + } elsif (/^-v$/) { $v++; } *************** *** 30,49 **** } unless (@files) { @files = '-'; undef $^I; } @ARGV = @files; if ($h) { print STDERR < change-123.desc --- 34,61 ---- } unless (@files) { @files = '-'; undef $^I; } @ARGV = @files; + $branches = '//depot/perl/' unless defined $branches; if ($h) { print STDERR < change-123.desc *************** *** 65,78 **** # while we are within range if ($cur) { ! if (m{^\.\.\. (//depot/.+?#\d+) (add|branch)$}) { ! my $newfile = $1; ! push @addfiles, $newfile; ! warn "$newfile add, revision != 1!\n" unless $newfile =~ /#1$/; } warn "file [$file] line [$cur] file# [$fnum]\n" if $v; } if (/^Change (\d+) by/) { $_ = "\n\n" . $_ if $change; # start of a new change list $change = $1; --- 77,104 ---- # while we are within range if ($cur) { ! if (m|^\.\.\. |) { ! if (m|$branches|) { ! if (m{^\.\.\. (//depot/.+?\#\d+) (add|branch)$}) { ! my $newfile = $1; ! push @addfiles, $newfile; ! warn "$newfile add, revision != 1!\n" unless $newfile =~ /#1$/; ! } ! } else { ! push @skipped, "# $_"; ! $_ = ''; ! } } warn "file [$file] line [$cur] file# [$fnum]\n" if $v; } + if (m|^==== //depot/|) { + $skip = !m|$branches|; + print "# Skipped because not under branches: $branches\n" if $skip; + } + + $_ = "# $_" if $skip; + if (/^Change (\d+) by/) { $_ = "\n\n" . $_ if $change; # start of a new change list $change = $1; *************** *** 84,89 **** --- 110,118 ---- if (eof) { $_ .= newfiles(); + $_ .= join('', "\n", + "# Skipped because not under branches: $branches\n", + @skipped, "\n") if @skipped; } sub newfiles { Index: Porting/pumpkin.pod Prereq: 1.23 ####### perl-5.6.1-TRIAL1/ => perl-5.6.1-TRIAL1 *** perl-5.6.1-TRIAL1/Porting/pumpkin.pod Mon Feb 14 10:54:08 2000 --- perl-5.6.1-TRIAL1/Porting/pumpkin.pod Sun Dec 17 19:49:48 2000 *************** *** 58,64 **** For compatibility with the older numbering scheme the composite floating point version number continues to be available as the magic variable $], ! and amounts to C<$revision + $version/1000 + $subversion/1000000>. This can still be used in comparisons. print "You've got an old perl\n" if $] < 5.005_03; --- 58,64 ---- For compatibility with the older numbering scheme the composite floating point version number continues to be available as the magic variable $], ! and amounts to C<$revision + $version/1000 + $subversion/100000>. This can still be used in comparisons. print "You've got an old perl\n" if $] < 5.005_03; *************** *** 210,216 **** line options and possibly existing config.sh and Policy.sh files from previous Configure runs. ! The extension hints are written Perl (by the time they are used miniperl has been built) and control the building of their respective extensions. They can be used to for example manipulate compilation and linking flags. --- 210,216 ---- line options and possibly existing config.sh and Policy.sh files from previous Configure runs. ! The extension hints are written in Perl (by the time they are used miniperl has been built) and control the building of their respective extensions. They can be used to for example manipulate compilation and linking flags. *************** *** 252,258 **** A file called F at the top level that explains things like how to install perl at this platform, where to get any possibly required additional software, and for example what test suite errors ! to expect, is nice too. You may also want to write a separate F<.pod> file for your operating system to tell about existing mailing lists, os-specific modules, --- 252,259 ---- A file called F at the top level that explains things like how to install perl at this platform, where to get any possibly required additional software, and for example what test suite errors ! to expect, is nice too. Such files are in the process of being written ! in pod format and will eventually be renamed F. You may also want to write a separate F<.pod> file for your operating system to tell about existing mailing lists, os-specific modules, *************** *** 449,455 **** to config.sh and then propoagate them to a canned 'config.h' by any number of means, including a perl script in win32/ or carrying config.sh and config_h.SH to a Unix system and running sh ! config_h.SH.) XXX] The Porting/config.sh and Porting/config_H files are provided to --- 450,458 ---- to config.sh and then propoagate them to a canned 'config.h' by any number of means, including a perl script in win32/ or carrying config.sh and config_h.SH to a Unix system and running sh ! config_h.SH.) Vms uses configure.com to generate its own config.sh ! and config.h. If you want to add a new variable to config.sh check ! with vms folk how to add it to configure.com too. XXX] The Porting/config.sh and Porting/config_H files are provided to *************** *** 460,466 **** Simply edit the existing config_H file; keep the first few explanatory lines and then copy your new config.h below. ! It may also be necessary to update win32/config.?c, vms/config.vms and plan9/config.plan9, though you should be quite careful in doing so if you are not familiar with those systems. You might want to issue your patch with a promise to quickly issue a follow-up that handles those --- 463,469 ---- Simply edit the existing config_H file; keep the first few explanatory lines and then copy your new config.h below. ! It may also be necessary to update win32/config.?c, and plan9/config.plan9, though you should be quite careful in doing so if you are not familiar with those systems. You might want to issue your patch with a promise to quickly issue a follow-up that handles those *************** *** 481,488 **** started to fix F to detect this, but I never completed the task. ! If C changes, make sure you run C to ! update the corresponding VMS files. See L. Some additional notes from Larry on this: --- 484,493 ---- started to fix F to detect this, but I never completed the task. ! If C or C changes, make sure you run C ! to update the corresponding VMS files. This could be taken care of by ! the regen_all target in the Unix Makefile. See also ! L. Some additional notes from Larry on this: *************** *** 507,512 **** --- 512,522 ---- Larry + =head2 make regen_all + + This target takes care of the PERLYVMS, regen_headers, and regen_pods + targets. + =head2 make regen_headers The F, F, and F files are all automatically *************** *** 532,537 **** --- 542,551 ---- than answering all the questions and complaints about the failing command. + =head2 make regen_pods + + Will run `make regen_pods` in the pod directory for indexing. + =head2 global.sym, interp.sym and perlio.sym Make sure these files are up-to-date. Read the comments in these *************** *** 541,547 **** If you do change F or F, think carefully about what you are doing. To the extent reasonable, we'd like to maintain ! souce and binary compatibility with older releases of perl. That way, extensions built under one version of perl will continue to work with new versions of perl. --- 555,561 ---- If you do change F or F, think carefully about what you are doing. To the extent reasonable, we'd like to maintain ! source and binary compatibility with older releases of perl. That way, extensions built under one version of perl will continue to work with new versions of perl. *************** *** 594,604 **** =head2 VMS-specific updates If you have changed F or F, then you most probably want ! to update F by running C. ! The Perl version number appears in several places under F. ! It is courteous to update these versions. For example, if you are ! making 5.004_42, replace "5.00441" with "5.00442". =head2 Making the new distribution --- 608,618 ---- =head2 VMS-specific updates If you have changed F or F, then you most probably want ! to update F by running C, or ! by running `make regen_all` which will run that script for you. ! The Perl revision number appears as "perl5" in configure.com. ! It is courteous to update that if necessary. =head2 Making the new distribution *************** *** 701,706 **** --- 715,748 ---- You can also hand-tweak your config.h to try out different #ifdef branches. + =head2 Other tests + + =over 4 + + =item CHECK_FORMAT + + To test the correct use of printf-style arguments, C with + S<-Dccflags='-DCHECK_FORMAT -Wformat'> and run C. The compiler + will produce warning of incorrect use of format arguments. CHECK_FORMAT + changes perl-defined formats to common formats, so DO NOT USE the executable + produced by this process. + + A more accurate approach is the following commands: + + sh Configure -des -Dccflags=-Wformat ... + make miniperl # without -DCHECK_FORMAT + perl -i.orig -pwe 's/-Wformat/-DCHECK_FORMAT $&/' config.sh + sh Configure -S + make >& make.log # build from correct miniperl + make clean + make miniperl >& mini.log # build miniperl with -DCHECK_FORMAT + perl -nwe 'print if /^\S+:/ and not /^make\b/' mini.log make.log + make clean + + (-Wformat support by Robin Barker.) + + =back + =head1 Running Purify Purify is a commercial tool that is helpful in identifying memory *************** *** 1325,1331 **** =item File locking Somehow, straighten out, document, and implement lockf(), flock(), ! and/or fcntl() file locking. It's a mess. =back --- 1367,1374 ---- =item File locking Somehow, straighten out, document, and implement lockf(), flock(), ! and/or fcntl() file locking. It's a mess. See $d_fcntl_can_lock ! in recent config.sh files though. =back Index: Porting/repository.pod ####### perl-5.6.1-TRIAL1/ => perl-5.6.1-TRIAL1 *** perl-5.6.1-TRIAL1/Porting/repository.pod Tue May 5 13:32:27 1998 --- perl-5.6.1-TRIAL1/Porting/repository.pod Sun Dec 17 19:27:04 2000 *************** *** 0 **** --- 1,327 ---- + =head1 NAME + + repository - Using the Perl repository + + This document describes what a Perl Porter needs to do + to start using the Perl repository. + + =head1 Prerequisites + + You'll need to get hold of the following software. + + =over 4 + + =item Perforce + + Download a perforce client from: + + http://www.perforce.com/perforce/loadprog.html + + You'll probably also want to look at: + + http://www.perforce.com/perforce/technical.html + + where you can look at or download its documentation. + + =item ssh + + If you don't already have access to an ssh client, then look at its + home site C which mentions ftp sites from + which it's available. You only need to build the client parts (ssh + and ssh-keygen should suffice). + + =back + + =head1 Creating an SSH Key Pair + + If you already use ssh and want to use the same key pair for perl + repository access then you can skip the rest of this section. + Otherwise, generate an ssh key pair for use with the repository + by typing the command + + ssh-keygen + + After generating a key pair and testing it, ssh-keygen will ask you + to enter a filename in which to save the key. The default it offers + will be the file F<~/.ssh/identity> which is suitable unless you + particularly want to keep separate ssh identities for some reason. + If so, you could save the perl repository private key in the file + F<~/.ssh/perl>, for example, but I will use the standard filename + in the remainder of the examples of this document. + + After typing in the filename, it will prompt you to type in a + passphrase. The private key will itself be encrypted so that it is + usable only when that passphrase is typed. (When using ssh, you will + be prompted when it requires a pass phrase to unlock a private key.) + If you provide a blank passphrase then no passphrase will be needed + to unlock the key and, as a consequence, anyone who gains access to + the key file gains access to accounts protected with that key + (barring additional configuration to restrict access by IP address). + + When you have typed the passphrase in twice, ssh-keygen will confirm + where it has saved the private key (in the filename you gave and + with permissions set to be only readable by you), what your public + key is (don't worry: you don't need to memorise it) and where it + has saved the corresponding public key. The public key is saved in + a filename corresponding to your private key's filename but with + ".pub" appended, usually F<~/.ssh/identity.pub>. That public key + can be (but need not be) world readable. It is not used by your + own system at all. + + =head1 Notifying the Repository Keeper + + Mail the contents of that public key file to the keeper of the perl + repository (see L below). + When the key is added to the repository host's configuration file, + you will be able to connect to it with ssh by using the corresponding + private key file (after unlocking it with your chosen passphrase). + + =head1 Connecting to the Repository + + Connections to the repository are made by using ssh to provide a + TCP "tunnel" rather than by using ssh to login to or invoke any + ordinary commands on the repository. When you want to start a + session using the repository, use the command + + ssh -l perlrep -f -q -x -L 1666:127.0.0.1:1666 sickle.activestate.com + foo + + If you are not using the default filename of F<~/.ssh/identity> + to hold your perl repository private key then you'll need to add + the option B<-i filename> to tell ssh where it is. Unless you chose + a blank passphrase for that private key, ssh will prompt you for the + passphrase to unlock that key. Then ssh will fork and put itself + in the background, returning you (silently) to your shell prompt. + The tunnel for repository access is now ready for use. + + For the sake of completeness (and for the case where the chosen + port of 1666 is already in use on your machine), I'll briefly + describe what all those ssh arguments are for. + + =over 4 + + =item B<-l perl> + + Use a remote username of perl. The account on the repository which + provides the end-point of the ssh tunnel is named "perl". + + =item B<-f> + + Tells ssh to fork and remain running in the background. Since ssh + is only being used for its tunnelling capabilities, the command + that ssh runs never does any I/O and can sit silently in the + background. + + =item B<-q> + + Tells ssh to be quiet. Without this option, ssh will output a + message each time you use a p4 command (since each p4 command + tunnels over the ssh connection to reach the repository). + + =item B<-x> + + Tells ssh not to bother to set up a tunnel for X11 connections. + The repository doesn't allow this anyway. + + =item B<-L 1666:127.0.0.1:1666> + + This is the important option. It tells ssh to listen out for + connections made to port 1666 on your local machine. When such + a connection is made, the ssh client tells the remote side + (the corresponding ssh daemon on the repository) to make a + connection to IP address 127.0.0.1, port 1666. Data flowing + along that connection is tunnelled over the ssh connection + (encrypted). The perforce daemon running on the repository + only accepts connections from localhost and that is exactly + where ssh-tunnelled connections appear to come from. + + If port 1666 is already in use on your machine then you can + choose any non-privileged port (a number between 1024 and 65535) + which happens to be free on your machine. It's the first of the + three colon separated values that you should change. Picking + port 2345 would mean changing the option to + B<-L 2345:127.0.0.1:1666>. Whatever port number you choose should + be used for the value of the P4PORT environment variable (q.v.). + + =item sickle.activestate.com + + This is the canonical IP name of the host on which the perl + repository runs. Its IP number is 199.60.48.20. + + =item foo + + This is a dummy place holder argument. Without an argument + here, ssh will try to perform an interactive login to the + repository which is not allowed. Ordinarily, this argument + is for the one-off command which is to be executed on the + remote host. However, the repository's ssh configuration + file uses the "command=" option to force a particular + command to run so the actual value of the argument is + ignored. The command that's actually run merely pauses and + waits for the ssh connection to drop, then exits. + + =back + + =head1 Problems + + You should normally get a prompt that asks for the passphrase + for your RSA key when you connect with the ssh command shown + above. If you see a prompt that looks like: + + perlrep@sickle.activestate.com's password: + + Then you either don't have a ~/.ssh/identity file corresponding + to your public key, or your ~/.ssh/identity file is not readable. + Fix the problem and try again. + + =head1 Using the Perforce Client + + Remember to read the documentation for Perforce. You need + to make sure that three environment variable are set + correctly before using the p4 client with the perl repository. + + =over 4 + + =item P4PORT + + Set this to localhost:1666 (the port for your ssh client to listen on) + unless that port is already in use on your host. If it is, see + the section above on the B<-L 1666:127.0.0.1:1666> option to ssh. + + =item P4CLIENT + + The value of this is the name by which Perforce knows your + host's workspace. You need to pick a name (for example, your + hostname unless that clashes with someone else's client name) + when you first start using the perl repository and then + stick with it. If you connect from multiple hosts (with + different workspaces) then maybe you could have multiple + clients. There is a licence limit on the number of perforce + clients which can be created. Although we have been told that + Perforce will raise our licence limits within reason, it's + probably best not to use additional clients unless needed. + + Note that perforce only needs the client name so that it can + find the directory under which your client files are stored. + If you have multiple hosts sharing the same directory structure + via NFS then only one client name is necessary. + + The C command lists all currently known clients. + + =item P4USER + + This is the username by which perforce knows you. Use your + username if you have a well known or obvious one or else pick + a new one which other perl5-porters will recognise. There is + a licence limit on the number of these usernames. Perforce + doesn't enforce security between usernames. If you set P4USER + to be somebody else's username then perforce will believe you + completely with regard to access control, logging and so on. + + The C command lists all currently known users. + + =back + + Once these three environment variables are set, you can use the + perforce p4 client exactly as described in its documentation. + After setting these variables and connecting to the repository + for the first time, you should use the C and + C commands to tell perforce the details of your + new username and your new client workspace specifications. + + =head1 Ending a Repository Session + + When you have finished a session using the repository, you + should kill off the ssh client process to break the tunnel. + Since ssh forked itself into the background, you'll need to use + something like ps with the appropriate options to find the ssh + process and then kill it manually. The default signal of + SIGTERM is fine. + + =head1 Overview of the Repository + + Please read at least the introductory sections of the Perforce + User Guide (and perhaps the Quick Start Guide as well) before + reading this section. + + Every repository user typically "owns" a "branch" of the mainline + code in the repository. They hold the "pumpkin" for things in this + area, and are usually the only user who will modify files there. + This is not strictly enforced in order to allow the flexibility + of other users stealing the pumpkin for short periods with the + owner's permission. + + Here is the current structure of the repository: + + /----+-----perl - Mainline development (bleadperl) + +-----cfgperl - Configure Pumpkin's Perl + +-----vmsperl - VMS Pumpkin's Perl + +-----maint-5.004------perl - Maintainance branches + +-----maint-5.005------perl + +-----maint-5.6------perl + + Perforce uses a branching model that simply tracks relationships + between files. It does not care about directories at all, so + any file can be a branch of any other file--the fully qualified + depot path name (of the form //depot/foo/bar.c) uniquely determines + a file for the purpose of establishing branching relationships. + Since a branch usually involves hundreds of files, such relationships + are typically specified en masse using a branch map (try `p4 help branch`). + `p4 branches` lists the existing branches that have been set up. + `p4 branch -o branchname` can be used to view the map for a particular + branch, if you want to determine the ancestor for a particular set of + files. + + The mainline (aka "trunk") code in the Perl repository is under + "//depot/perl/...". Most branches typically map its entire + contents under a directory that goes by the same name as the branch + name. Thus the contents of the cfgperl branch are to be found + in //depot/cfgperl. + + Run `p4 client` to specify how the repository contents should map to + your local disk. Most users will typically have a client map that + includes at least their entire branch and the contents of the mainline. + + Run `p4 changes -l -m10` to check on the activity in the repository. + //depot/perl/Porting/genlog is useful to get an annotated changelog + that shows files and branches. You can use this listing to determine + if there are any changes in the mainline that you need to merge into + your own branch. A typical merging session looks like this: + + % cd ~/p4view/cfgperl + % p4 integrate -b cfgperl # to bring parent changes into cfgperl + % p4 resolve -a ./... # auto merge the changes + % p4 resolve ./... # manual merge conflicting changes + % p4 submit ./... # check in + + If the owner of the mainline wants to bring the changes in cfgperl + back into the mainline, they do: + + % p4 integrate -r -b cfgperl + ... + + Generating a patch for change#42 is done as follows: + + % p4 describe -du 42 | p4desc | p4d2p > change-42.patch + + p4desc and p4d2p are to be found in //depot/perl/Porting/. + + =head1 Contact Information + + The mail alias can be used to reach + all current users of the repository. + + The repository keeper is currently Gurusamy Sarathy + . + + =head1 AUTHORS + + Malcolm Beattie, mbeattie@sable.ox.ac.uk, 24 June 1997. + + Gurusamy Sarathy, gsar@activestate.com, 8 May 1999. + + Slightly updated by Simon Cozens, simon@brecon.co.uk, 3 July 2000 + + =cut + + Index: README ####### perl-5.6.1-TRIAL1/ => perl-5.6.1-TRIAL1 *** perl-5.6.1-TRIAL1/README Sun Feb 6 11:32:59 2000 --- perl-5.6.1-TRIAL1/README Mon Nov 27 09:34:27 2000 *************** *** 22,29 **** Kit, in the file named "Artistic". If not, I'll be glad to provide one. You should also have received a copy of the GNU General Public License ! along with this program; if not, write to the Free Software Foundation, ! Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA. For those of you that choose to use the GNU General Public License, my interpretation of the GNU General Public License is that no Perl --- 22,31 ---- Kit, in the file named "Artistic". If not, I'll be glad to provide one. You should also have received a copy of the GNU General Public License ! along with this program in the file named "Copying". If not, write to the ! Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA ! 02111-1307, USA or visit their web page on the internet at ! http://www.gnu.org/copyleft/gpl.html. For those of you that choose to use the GNU General Public License, my interpretation of the GNU General Public License is that no Perl *************** *** 70,76 **** 2) Read the manual entries before running perl. 3) IMPORTANT! Help save the world! Communicate any problems and suggested ! patches to perlbug@perl.com so we can keep the world in sync. If you have a problem, there's someone else out there who either has had or will have the same problem. It's usually helpful if you send the output of the "myconfig" script in the main perl directory. --- 72,78 ---- 2) Read the manual entries before running perl. 3) IMPORTANT! Help save the world! Communicate any problems and suggested ! patches to perlbug@perl.org so we can keep the world in sync. If you have a problem, there's someone else out there who either has had or will have the same problem. It's usually helpful if you send the output of the "myconfig" script in the main perl directory. Index: README.Y2K ####### perl-5.6.1-TRIAL1/ => perl-5.6.1-TRIAL1 *** perl-5.6.1-TRIAL1/README.Y2K Mon Sep 20 09:59:18 1999 --- perl-5.6.1-TRIAL1/README.Y2K Mon Nov 27 05:28:55 2000 *************** *** 21,27 **** localtime) supply adequate information to determine the year well beyond 2000 (2038 is when trouble strikes for 32-bit machines). The year returned by these functions ! when used in an array context is the year minus 1900. For years between 1910 and 1999 this happens to be a 2-digit decimal number. To avoid the year 2000 problem simply do not treat the year as a 2-digit number. It isn't. --- 21,27 ---- localtime) supply adequate information to determine the year well beyond 2000 (2038 is when trouble strikes for 32-bit machines). The year returned by these functions ! when used in a list context is the year minus 1900. For years between 1910 and 1999 this happens to be a 2-digit decimal number. To avoid the year 2000 problem simply do not treat the year as a 2-digit number. It isn't. Index: README.aix ####### perl-5.6.1-TRIAL1/ => perl-5.6.1-TRIAL1 *** perl-5.6.1-TRIAL1/README.aix Tue May 5 13:32:27 1998 --- perl-5.6.1-TRIAL1/README.aix Sun Dec 17 19:27:04 2000 *************** *** 0 **** --- 1,174 ---- + If you read this file _as_is_, just ignore the funny characters you see. + It is written in the POD format (see pod/perlpod.pod) which is specially + designed to be readable as is. + + =head1 NAME + + README.aix - Perl version 5 on IBM Unix (AIX) systems + + =head1 DESCRIPTION + + This document describes various features of IBM's Unix operating + system (AIX) that will affect how Perl version 5 (hereafter just Perl) + is compiled and/or runs. + + =head2 Compiling Perl 5 on AIX + + When compiling Perl, you must use an ANSI C compiler. AIX does not ship + an ANSI compliant C-compiler with AIX by default, but binary builds of + gcc for AIX are widely available. + + At the moment of writing, AIX supports two different native C compilers, + for which you have to pay: B and B. If you decide to use eiter + of these two (which is quite a lot easier than using gcc), be sure to + upgrade to the latest available patch level. Currently: + + xlC.C 3.1.4.0 + vac.C 4.4.0.3 (5.0 is already available) + + Perl can be compiled with either IBM's ANSI C compiler or with gcc. + The former is recommended, as not only can it compile Perl with no + difficulty, but also can take advantage of features listed later that + require the use of IBM compiler-specific command-line flags. + + If you decide to use gcc, make sure your installation is recent and + complete, and be sure to read the Perl README file for more gcc-specific + details. + + =head2 OS level + + Before installing the patches to the IBM C-compiler you need to know the + level of patching for the Operating System. IBM's command 'oslevel' will + show the base, but is not always complete: + + # oslevel + 4.3.0.0 + # lslpp -l | grep 'bos.rte ' + bos.rte 4.3.2.1 COMMITTED Base Operating System Runtime + bos.rte 4.3.2.0 COMMITTED Base Operating System Runtime + # + + =head2 Building Dynamic Extensions on AIX + + AIX supports dynamically loadable libraries (shared libraries). + Shared libraries end with the suffix .a, which is a bit misleading, + because *all* libraries are shared ;-). + + =head2 The IBM ANSI C Compiler + + All defaults for Configure can be used. + + If you've chosen to use vac 4, be sure to run 4.4.0.3. Older versions + will turn up nasty later on. + + Here's a brief lead of how to upgrade the compiler to the latest + level. Of course this is subject to changes. You can only upgrade + versions from ftp-available updates if the first three digit groups + are the same (in where you can skip intermediate unlike the patches + in the developer snapshots of perl), or to one version up where the + `base' is available. In other words, the AIX compiler patches are + cumulative. + + vac.C.4.4.0.1 => vac.C.4.4.0.3 is OK (vac.C.4.4.0.2 not needed) + xlC.C.3.1.3.3 => xlC.C.3.1.4.10 is NOT OK (xlC.C.3.1.4.0 is not available) + + # ftp ftp.software.ibm.com + Connected to service.boulder.ibm.com. + : welcome message ... + Name (ftp.software.ibm.com:merijn): anonymous + 331 Guest login ok, send your complete e-mail address as password. + Password: + ... accepted login stuff + ftp> cd /aix/fixes/v4/ + ftp> dir other other.ll + output to local-file: other.ll? y + 200 PORT command successful. + 150 Opening ASCII mode data connection for /bin/ls. + 226 Transfer complete. + ftp> dir xlc xlc.ll + output to local-file: xlc.ll? y + 200 PORT command successful. + 150 Opening ASCII mode data connection for /bin/ls. + 226 Transfer complete. + ftp> bye + ... goodbye messages + # ls -l *.ll + -rw-rw-rw- 1 merijn system 1169432 Nov 2 17:29 other.ll + -rw-rw-rw- 1 merijn system 29170 Nov 2 17:29 xlc.ll + + On AIX 4.2 using xlC, we continue: + + # lslpp -l | fgrep 'xlC.C ' + xlC.C 3.1.4.9 COMMITTED C for AIX Compiler + xlC.C 3.1.4.0 COMMITTED C for AIX Compiler + # grep 'xlC.C.3.1.4.*.bff' xlc.ll + -rw-r--r-- 1 45776101 1 6286336 Jul 22 1996 xlC.C.3.1.4.1.bff + -rw-rw-r-- 1 45776101 1 6173696 Aug 24 1998 xlC.C.3.1.4.10.bff + -rw-r--r-- 1 45776101 1 6319104 Aug 14 1996 xlC.C.3.1.4.2.bff + -rw-r--r-- 1 45776101 1 6316032 Oct 21 1996 xlC.C.3.1.4.3.bff + -rw-r--r-- 1 45776101 1 6315008 Dec 20 1996 xlC.C.3.1.4.4.bff + -rw-rw-r-- 1 45776101 1 6178816 Mar 28 1997 xlC.C.3.1.4.5.bff + -rw-rw-r-- 1 45776101 1 6188032 May 22 1997 xlC.C.3.1.4.6.bff + -rw-rw-r-- 1 45776101 1 6191104 Sep 5 1997 xlC.C.3.1.4.7.bff + -rw-rw-r-- 1 45776101 1 6185984 Jan 13 1998 xlC.C.3.1.4.8.bff + -rw-rw-r-- 1 45776101 1 6169600 May 27 1998 xlC.C.3.1.4.9.bff + # wget ftp://ftp.software.ibm.com/aix/fixes/v4/xlc/xlC.C.3.1.4.10.bff + # + + On AIX 4.3 using vac, we continue: + + # lslpp -l | fgrep 'vac.C ' + vac.C 4.4.0.2 COMMITTED C for AIX Compiler + vac.C 4.4.0.0 COMMITTED C for AIX Compiler + # grep 'vac.C.4.4.0.*.bff' other.ll + -rw-rw-r-- 1 45776101 1 13466624 May 26 1999 vac.C.4.4.0.1.bff + -rw-rw-r-- 1 45776101 1 13473792 Aug 31 1999 vac.C.4.4.0.2.bff + -rw-rw-r-- 1 45776101 1 13480960 May 19 20:32 vac.C.4.4.0.3.bff + # wget ftp://ftp.software.ibm.com/aix/fixes/v4/other/vac.C.4.4.0.3.bff + # + + Then execute the following command, and fill in its choices + + # smit install_update + -> Install and Update from LATEST Available Software + * INPUT device / directory for software [ vac.C.4.4.0.3.bff ] + [ OK ] + [ OK ] + + Follow the messages ... and you're done. + + =head2 Using GNU's gcc for building perl + + ... ? + + =head2 Using Large Files with Perl + + ... ? + + =head2 Threaded Perl + + ... ? + + =head2 64-bit Perl + + ... ? + + =head2 GDBM and Threads + + ... ? + + =head2 NFS filesystems and utime(2) + + ... ? + + =head1 AUTHOR + + H.Merijn Brand + + Structure copied from README.hpux + + =head1 DATE + + Version 0.0.1: 16-10-2000 + + =cut Index: README.amiga ####### perl-5.6.1-TRIAL1/ => perl-5.6.1-TRIAL1 *** perl-5.6.1-TRIAL1/README.amiga Fri Mar 3 19:59:44 2000 --- perl-5.6.1-TRIAL1/README.amiga Mon Dec 18 00:52:32 2000 *************** *** 16,21 **** --- 16,26 ---- to list some (not all may be available simultaneously), or it may be read I: either as F, or F. + A recent version of perl for the Amiga can be found at the Geek Gadgets + section of the Aminet: + + http://www.aminet.net/~aminet/dirs/dev_gg.html + =cut Contents *************** *** 53,68 **** =item B You need the Unix emulation for AmigaOS, whose most important part is ! B. For a minimum setup, get the following archives from ! ftp://ftp.ninemoons.com/pub/ade/current or a mirror: ! ! ixemul-46.0-bin.lha ! ixemul-46.0-env-bin.lha ! pdksh-4.9-bin.lha ! ADE-misc-bin.lha ! Note that there might be newer versions available by the time you read ! this. Note also that this is a minimum setup; you might want to add other packages of B (the I). --- 58,69 ---- =item B You need the Unix emulation for AmigaOS, whose most important part is ! B. For a minimum setup, get the latest versions ! of the following packages from the Aminet archives (http://www.aminet.net/~aminet/): ! ixemul-bin ! ixemul-env-bin ! pdksh-bin Note also that this is a minimum setup; you might want to add other packages of B (the I). *************** *** 118,128 **** Change to the installation directory (most probably ADE:), and extract the binary distribution: ! lha -mraxe x perl-5.003-bin.lha or ! tar xvzpf perl-5.003-bin.tgz (Of course you need lha or tar and gunzip for this.) --- 119,129 ---- Change to the installation directory (most probably ADE:), and extract the binary distribution: ! lha -mraxe x perl-$VERSION-bin.lha or ! tar xvzpf perl-$VERSION-bin.tgz (Of course you need lha or tar and gunzip for this.) *************** *** 181,196 **** =head2 Prerequisites ! You need to have the latest B (Amiga Developers Environment) ! from ftp://ftp.ninemoons.com/pub/ade/current. ! Also, you need a lot of free memory, probably at least 8MB. =head2 Getting the perl source You can either get the latest perl-for-amiga source from Ninemoons and extract it with: ! tar xvzpf perl-5.004-src.tgz or get the official source from CPAN: --- 182,196 ---- =head2 Prerequisites ! You need to have the latest B (Unix emulation for Amiga) ! from Aminet. =head2 Getting the perl source You can either get the latest perl-for-amiga source from Ninemoons and extract it with: ! tar xvzpf perl-$VERSION-src.tgz or get the official source from CPAN: *************** *** 198,204 **** Extract it like this ! tar xvzpf perl5.004.tar.gz You will see a message about errors while extracting F. This is normal and expected. (There is a conflict with a similarly-named file --- 198,204 ---- Extract it like this ! tar xvzpf perl-$VERSION.tar.gz You will see a message about errors while extracting F. This is normal and expected. (There is a conflict with a similarly-named file *************** *** 206,217 **** =head2 Making ! sh configure.gnu --prefix=/ade ! Now make =head2 Testing Now run --- 206,265 ---- =head2 Making ! =over 4 ! ! =item * ! ! remember to use a healthy sized stack (I used 2000000) ! ! =item * ! ! your PATH environment variable must include /bin (e.g. ".:/bin" is good) ! (or, more precisely, it must include the directory where you have your ! basic UNIX utilities like test, cat, sed, and so on) ! ! =item * ! ! sh Configure -Dprefix=/ade -Dloclibpth=/ade/lib ! ! =item * ! ! fix makedepend ! ! In the file 'makedepend' there are three spots like this `$cat ...`: ! a for loop near line 75, an egrep near line 161, and a for loop near ! line 175. In all those spots using an editor change the $cat to ! /bin/cat. ! ! =item * ! now type make depend ! ! When the make depend has ended load the gnumakefile into ! an editor and go to the end of the file. ! ! Move upwards in the file until you reach av.o: EXTERN.h ! and delete all lines down to # WARNING: Put.... ! ! =item * ! ! now go to the x2p directory ! ! Load the gnumakefile into an editor. ! ! Go to the end moveup until you reach hash.o: EXTERN.h ! and delete all lines dowonwards until you reach a line saying ! ! # WARNING: Put nothing.... ! ! =item * ! ! Now! make + =back + =head2 Testing Now run *************** *** 229,237 **** make install ! =head1 AUTHOR Norbert Pueschel, pueschel@imsdd.meb.uni-bonn.de =head1 SEE ALSO --- 277,286 ---- make install ! =head1 AUTHORS Norbert Pueschel, pueschel@imsdd.meb.uni-bonn.de + Jan-Erik Karlsson, trg@privat.utfors.se =head1 SEE ALSO Index: README.cygwin ####### perl-5.6.1-TRIAL1/ => perl-5.6.1-TRIAL1 *** perl-5.6.1-TRIAL1/README.cygwin Thu Mar 2 09:52:52 2000 --- perl-5.6.1-TRIAL1/README.cygwin Sun Dec 17 19:49:48 2000 *************** *** 13,19 **** affect how Perl behaves at runtime. B There are pre-built Perl packages available for Cygwin and a ! version of Perl is provided on the Cygwin CD. If you have no need to customize the configuration, consider using one of these packages: http://cygutils.netpedia.net/ --- 13,19 ---- affect how Perl behaves at runtime. B There are pre-built Perl packages available for Cygwin and a ! version of Perl is provided on the Cygwin CD. If you do not need to customize the configuration, consider using one of these packages: http://cygutils.netpedia.net/ *************** *** 27,57 **** system calls and environment these programs expect. More information about this project can be found at: ! http://sourceware.cygnus.com/cygwin/ A recent net or commercial release of Cygwin is required. ! At the time this document was written, the port required recent ! development snapshots that were expected to stabilize early in 2000 and ! be released to the net as B21 and commercially as v1.1. B At this point, minimal effort has been made to provide compatibility with old (beta) Cygwin releases. The focus has been to provide a high quality release and not worry about working around old ! Cygwin bugs. If you wish to use Perl with Cygwin B20.1 or earlier, ! consider using either perl5.005_03 or perl5.005_62, which are available ! in source and binary form at C or on the ! Cygwin CD. If there is significant demand, a patch kit can be developed ! to port back to earlier Cygwin versions. ! ! =head2 Compiler ! ! A recent net or commercial release of I is required. ! ! At the time this document was written, I was current and ! could be downloaded from: ! ! ftp://ftp.xraylith.wisc.edu/pub/khan/gnu-win32/cygwin/gcc-2.95.2/ =head2 Cygwin Configuration --- 27,45 ---- system calls and environment these programs expect. More information about this project can be found at: ! http://www.cygwin.com/ A recent net or commercial release of Cygwin is required. ! At the time this document was last updated, Cygwin 1.1.5 was current. B At this point, minimal effort has been made to provide compatibility with old (beta) Cygwin releases. The focus has been to provide a high quality release and not worry about working around old ! bugs. If you wish to use Perl with Cygwin B20.1 or earlier, consider ! using perl5.005_03, which is available in source and binary form at ! C. If there is significant demand, ! a patch kit can be developed to port back to earlier Cygwin versions. =head2 Cygwin Configuration *************** *** 60,74 **** Perl usage. B The binaries that are built will run on all Win32 versions. ! They do not depend on your host system (Win9x, WinNT) or your Cygwin ! configuration (I, I, binary/text mounts). The only ! dependencies come from hardcoded pathnames like C. However, ! your host system and Cygwin configuration will affect Perl's runtime ! behavior (see L). Some regression tests may fail in different ! ways depending on your setup. For now, the test suite does not skip ! tests that do not make sense given a particular setup. If a test can ! pass in some Cygwin setup, it is left in and explainable test failures ! are documented. =over 4 --- 48,58 ---- Perl usage. B The binaries that are built will run on all Win32 versions. ! They do not depend on your host system (Win9x/WinME, WinNT/Win2K) ! or your Cygwin configuration (I, I, binary/text mounts). ! The only dependencies come from hard-coded pathnames like C. ! However, your host system and Cygwin configuration will affect Perl's ! runtime behavior (see L). =over 4 *************** *** 78,106 **** versions of programs. Any Windows directories should be removed or moved to the end of your C. - =item * F - - There should be an instance of I in F (or F). - Configure tests C<#!/bin/cat> and if it is not found, you will see - the error: - - Configure: ./try: No such file or directory - - =item * F - - If you do not have a F directory, Configure will B prompt - you to install I into F. - =item * I If you do not have I (which is part of the I package), ! Configure will B prompt you to install man pages. =item * Permissions On WinNT with either the I or I C settings, directory and file permissions may not be set correctly. Since the build process ! creates files and directories, to be safe you may want to run a `C' on the entire Perl source tree. Also, it is a well known WinNT "feature" that files created by a login --- 62,77 ---- versions of programs. Any Windows directories should be removed or moved to the end of your C. =item * I If you do not have I (which is part of the I package), ! Configure will B prompt you to install I pages. =item * Permissions On WinNT with either the I or I C settings, directory and file permissions may not be set correctly. Since the build process ! creates directories and files, to be safe you may want to run a `C' on the entire Perl source tree. Also, it is a well known WinNT "feature" that files created by a login *************** *** 123,129 **** ./Configure 2>&1 | tee log.configure ! If you are willing to accept all the defaults add a B<-d> option. However, several useful customizations are available. =head2 Strip Binaries --- 94,100 ---- ./Configure 2>&1 | tee log.configure ! If you are willing to accept all the defaults run Configure with B<-de>. However, several useful customizations are available. =head2 Strip Binaries *************** *** 153,174 **** =item * C<-lcrypt> ! The crypt libraries in GNU libc have been ported to Cygwin. The DES based Ultra Fast Crypt port was done by Alexey Truhan: ! http://dome.weeg.uiowa.edu/pub/domestic/sos/cw32crypt-dist-0.tgz NOTE: There are various export restrictions on DES implementations, see the glibc README for more details. The MD5 port was done by Andy Piper: ! http://dome.weeg.uiowa.edu/pub/domestic/sos/libcrypt.tgz ! ! More information can also be found at: ! ! http://miracle.geol.msu.ru/sos/ =item * C<-lgdbm> (C) --- 124,144 ---- =item * C<-lcrypt> ! The crypt package distributed with Cygwin is a Linux compatible 56-bit ! DES crypt port by Corinna Vinschen. ! ! Alternatively, the crypt libraries in GNU libc have been ported to Cygwin. The DES based Ultra Fast Crypt port was done by Alexey Truhan: ! ftp://ftp.franken.de/pub/win32/develop/gnuwin32/cygwin/porters/Okhapkin_Sergey/cw32crypt-dist-0.tgz NOTE: There are various export restrictions on DES implementations, see the glibc README for more details. The MD5 port was done by Andy Piper: ! ftp://ftp.franken.de/pub/win32/develop/gnuwin32/cygwin/porters/Okhapkin_Sergey/libcrypt.tgz =item * C<-lgdbm> (C) *************** *** 176,193 **** also makes C and C possible (although they add little extra value). =item * C<-ldb> (C) BerkeleyDB is available for Cygwin. Some details can be found in F. =item * C<-lcygipc> (C) A port of SysV IPC is available for Cygwin. NOTE: This has B been extensively tested. In particular, ! C is undefined because it fails a configure test and on ! Win9x the shm*() functions seem to hang. =back --- 146,170 ---- also makes C and C possible (although they add little extra value). + NOTE: The ndbm/dbm emulations only completely work on NTFS partitions. + =item * C<-ldb> (C) BerkeleyDB is available for Cygwin. Some details can be found in F. + NOTE: The BerkeleyDB library only completely works on NTFS partitions. + =item * C<-lcygipc> (C) A port of SysV IPC is available for Cygwin. NOTE: This has B been extensively tested. In particular, ! C is undefined because it fails a Configure test ! and on Win9x the I functions seem to hang. It also creates ! a compile time dependency because F includes F<> ! and F<> (which will be required in the future when compiling ! CPAN modules). =back *************** *** 228,234 **** I supports long doubles (12 bytes). However, several additional long double math functions are necessary to use them within Perl ! (I<{atan2,cos,exp,floor,fmod,frexp,log,modf,pow,sin,sqrt}l,strtold>). These are B yet available with Cygwin. =item * C<-Dusethreads> --- 205,211 ---- I supports long doubles (12 bytes). However, several additional long double math functions are necessary to use them within Perl ! (I<{atan2,cos,exp,floor,fmod,frexp,isnan,log,modf,pow,sin,sqrt}l,strtold>). These are B yet available with Cygwin. =item * C<-Dusethreads> *************** *** 248,279 **** =over 4 ! =item * Whoa There ! ! Cygwin does not yet implement chroot(), setegid() or seteuid() ! functionality, but has stub functions that return C. You will ! see a message when Configure detects that its guess conflicts with the ! hint file. ! ! *** WHOA THERE!!! *** ! The recommended value for $d_chroot on this machine was "undef"! ! Keep the recommended value? [y] ! ! You should keep the recommended value. ! ! =item * dlsym I is needed to build dynamic libraries, but it does not exist when dlsym() checking occurs (it is not created until `C' runs). You will see the following message: Checking whether your dlsym() needs a leading underscore ... I can't compile and run the test program. I'm guessing that dlsym doesn't need a leading underscore. Since the guess is correct, this is not a problem. ! =item * Win9x and d_eofnblk Win9x does not correctly report C with a non-blocking read on a closed pipe. You will see the following messages: --- 225,244 ---- =over 4 ! =item * I I is needed to build dynamic libraries, but it does not exist when dlsym() checking occurs (it is not created until `C' runs). You will see the following message: Checking whether your dlsym() needs a leading underscore ... + ld2: not found I can't compile and run the test program. I'm guessing that dlsym doesn't need a leading underscore. Since the guess is correct, this is not a problem. ! =item * Win9x and C Win9x does not correctly report C with a non-blocking read on a closed pipe. You will see the following messages: *************** *** 288,308 **** At least for consistency with WinNT, you should keep the recommended value. - =item * Checking how std your stdio is... - - Configure reports: - - Your stdio doesn't appear very std. - - This is correct. - =item * Compiler/Preprocessor defines The following error occurs because of the Cygwin C<#define> of C<_LONG_DOUBLE>: Guessing which symbols your C compiler and preprocessor define... ! try.c:3847: parse error This failure does not seem to cause any problems. --- 253,265 ---- At least for consistency with WinNT, you should keep the recommended value. =item * Compiler/Preprocessor defines The following error occurs because of the Cygwin C<#define> of C<_LONG_DOUBLE>: Guessing which symbols your C compiler and preprocessor define... ! try.c:: parse error This failure does not seem to cause any problems. *************** *** 310,316 **** =head1 MAKE ! Simply run make and wait: make 2>&1 | tee log.make --- 267,273 ---- =head1 MAKE ! Simply run I and wait: make 2>&1 | tee log.make *************** *** 321,328 **** warning: overriding commands for target warning: ignoring old commands for target ! Warning: no export definition file provided ! dllwrap will create one, but may not be what you want =head2 ld2 --- 278,285 ---- warning: overriding commands for target warning: ignoring old commands for target ! dllwrap: no export definition file provided ! dllwrap: creating one, but that may not be what you want =head2 ld2 *************** *** 332,340 **** this is because the remainder of the `C' refers to I without fully specifying its path and does this from multiple subdirectories. The assumption is that $installbin is in your current C. If this ! is not the case or if you do not have an I program, `C' ! will fail at some point. If this happens, just manually copy I ! from the source directory to someplace in your C. =head1 TEST --- 289,297 ---- this is because the remainder of the `C' refers to I without fully specifying its path and does this from multiple subdirectories. The assumption is that $installbin is in your current C. If this ! is not the case `C' will fail at some point. If this happens, ! just manually copy I from the source directory to somewhere in ! your C. =head1 TEST *************** *** 348,368 **** running as `C<./perl harness>'. Test results vary depending on your host system and your Cygwin ! configuration. It is possible that Cygwin will pass all the tests, ! but it is more likely that some tests will fail for one of these reasons. =head2 File Permissions UNIX file permissions are based on sets of mode bits for ! {read,write,execute} for each {user,group,other}. By default Cygwin only ! tracks the Win32 readonly attribute represented as the UNIX file user ! write bit (files are always readable, files are executable if they have ! a F<.{com,bat,exe}> extension or begin with C<#!>, directories are always ! readable and executable). On WinNT with the I C setting, ! the remaining mode bits are stored as extended attributes. On WinNT ! with the I C setting, permissions use the standard WinNT ! security descriptors and access control lists. Without one of these ! options, these tests will fail: Failed Test List of failed ------------------------------------ --- 305,327 ---- running as `C<./perl harness>'. Test results vary depending on your host system and your Cygwin ! configuration. If a test can pass in some Cygwin setup, it is always ! attempted and explainable test failures are documented. It is possible ! for Perl to pass all the tests, but it is more likely that some tests ! will fail for one of the reasons listed below. =head2 File Permissions UNIX file permissions are based on sets of mode bits for ! {read,write,execute} for each {user,group,other}. By default Cygwin ! only tracks the Win32 read-only attribute represented as the UNIX file ! user write bit (files are always readable, files are executable if they ! have a F<.{com,bat,exe}> extension or begin with C<#!>, directories are ! always readable and executable). On WinNT with the I C ! setting, the additional mode bits are stored as extended file attributes. ! On WinNT with the I C setting, permissions use the standard ! WinNT security descriptors and access control lists. Without one of ! these options, these tests will fail: Failed Test List of failed ------------------------------------ *************** *** 380,386 **** =head2 Hard Links FAT partitions do not support hard links (whereas NTFS does), in which ! case Cygwin implements link() by copying the file. These tests will fail: Failed Test List of failed ------------------------------------ --- 339,348 ---- =head2 Hard Links FAT partitions do not support hard links (whereas NTFS does), in which ! case Cygwin implements link() by copying the file. On remote (network) ! drives Cygwin's stat() always sets C to 1, so the link count ! for remote directories and files is not available. In either case, ! these tests will fail: Failed Test List of failed ------------------------------------ *************** *** 408,414 **** A required .DLL file, CYGWIN1.DLL, was not found WinNT ! perl.exe or sh.exe - Unable to Locate DLL The dynamic link library cygwin1.dll could not be found in the specified path ... --- 370,376 ---- A required .DLL file, CYGWIN1.DLL, was not found WinNT ! perl.exe - Unable to Locate DLL The dynamic link library cygwin1.dll could not be found in the specified path ... *************** *** 420,427 **** ------------------------------------ op/taint.t 1, 3, 31, 37 ! Alternatively, you can copy F into one of the Windows system ! directories (although, this is B recommended). =head2 /etc/group --- 382,394 ---- ------------------------------------ op/taint.t 1, 3, 31, 37 ! Alternatively, you can copy F into the directory where the ! tests run: ! ! cp /bin/cygwin1.dll t ! ! or one of the Windows system directories (although, this is B ! recommended). =head2 /etc/group *************** *** 433,451 **** ------------------------------------ op/grent.t 1 - =head2 Unexplained Failures - - Any additional tests that fail are likely due to bugs in Cygwin or the - optional libraries. It is expected that by the time of the next net - release most of these will be solved so they are not described here. - =head2 Script Portability ! Cygwin does an outstanding job of providing UNIX-like semantics on ! top of Win32 systems. However, in addition to the items noted above, ! there are some differences that you should know about. This is only a ! very brief guide to portability, more information can be found in the ! Cygwin documentation. =over 4 --- 400,411 ---- ------------------------------------ op/grent.t 1 =head2 Script Portability ! Cygwin does an outstanding job of providing UNIX-like semantics on top of ! Win32 systems. However, in addition to the items noted above, there are ! some differences that you should know about. This is a very brief guide ! to portability, more information can be found in the Cygwin documentation. =over 4 *************** *** 454,473 **** Cygwin pathnames can be separated by forward (F) or backward (F<\>) slashes. They may also begin with drive letters (F) or Universal Naming Codes (F). DOS device names (F, F, F, ! F, F) are invalid as base filenames. However, they can be ! used in extensions (e.g., F). Names may not contain these ! characters: : * ? " < > | ! File names are case insensitive, but case preserving. With the I ! C setting, file names are mixed-case (although, directory names ! remain case insensitive). ! ! The I setting is only available with the "coolview" version of ! F provided by Sergey Okhapkin at: ! ! ftp://ftp.franken.de/pub/win32/develop/gnuwin32/cygwin/porters/Okhapkin_Sergey/ =item * Text/Binary --- 414,428 ---- Cygwin pathnames can be separated by forward (F) or backward (F<\>) slashes. They may also begin with drive letters (F) or Universal Naming Codes (F). DOS device names (F, F, F, ! F, F, F) are invalid as base filenames. However, they ! can be used in extensions (e.g., F). Names may contain all ! printable characters except these: : * ? " < > | ! File names are case insensitive, but case preserving. A pathname that ! contains a backslash or drive letter is a Win32 pathname (and not subject ! to the translations applied to POSIX style pathnames). =item * Text/Binary *************** *** 486,508 **** =item * F<.exe> ! The Cygwin stat() makes the F<.exe> extension transparent by looking for ! a F when you ask for F (unless a F also exists). ! Cygwin does not require a F<.exe> extension, but I adds it ! automatically when building a program. However, when accessing an ! executable as a normal file (e.g., I or I in a makefile) ! the F<.exe> is not transparent. ! ! NOTE: There is a version of I that understands the F<.exe> ! semantics, it can be found at: ! ! ftp://ftp.franken.de/pub/win32/develop/gnuwin32/cygwin/porters/Humblet_Pierre_A/ =item * chown() ! On WinNT with the I C setting, chown() can change a file's ! user and group IDs. In all other configurations chown() is a no-op, ! although this is appropriate on Win9x since there is no security model. =item * Miscellaneous --- 441,458 ---- =item * F<.exe> ! The Cygwin stat(), lstat() and readlink() functions make the F<.exe> ! extension transparent by looking for F when you ask for F ! (unless a F also exists). Cygwin does not require a F<.exe> ! extension, but I adds it automatically when building a program. ! However, when accessing an executable as a normal file (e.g., I ! in a makefile) the F<.exe> is not transparent. The I included ! with Cygwin automatically appends a F<.exe> when necessary. =item * chown() ! On WinNT chown() can change a file's user and group IDs. On Win9x chown() ! is a no-op, although this is appropriate since there is no security model. =item * Miscellaneous *************** *** 511,521 **** Win9x can not rename() an open file (although WinNT can). =back =head1 INSTALL ! This will install Perl, including man pages. make install | tee log.make-install --- 461,474 ---- Win9x can not rename() an open file (although WinNT can). + The Cygwin chroot() implementation has holes (it can not restrict file + access by native Win32 programs). + =back =head1 INSTALL ! This will install Perl, including I pages. make install | tee log.make-install *************** *** 539,549 **** =item Documentation ! INSTALL README.cygwin ! Changes Changes5.005 Changes5.004 ! AUTHORS MAINTAIN MANIFEST README.win32 ! pod/perl.pod pod/perlfaq3.pod pod/perlhist.pod pod/perlmodlib.pod ! pod/perlport.pod pod/perltoc.pod pod/perl5004delta.pod =item Build, Configure, Make, Install --- 492,502 ---- =item Documentation ! INSTALL README.cygwin README.win32 MANIFEST ! Changes Changes5.005 Changes5.004 Changes5.6 ! pod/perl.pod pod/perlport.pod pod/perlfaq3.pod ! pod/perldelta.pod pod/perl5004delta.pod pod/perl56delta.pod ! pod/perlhist.pod pod/perlmodlib.pod pod/buildtoc.PL pod/perltoc.pod =item Build, Configure, Make, Install *************** *** 565,570 **** --- 518,524 ---- =item Tests t/io/tell.t - binmode + t/lib/b.t - ignore Cwd from os_extras t/lib/glob-basic.t - Win32 directory list access differs from read mode t/op/magic.t - $^X/symlink WORKAROUND, s/.exe// t/op/stat.t - no /dev, skip Win32 ftCreationTime quirk *************** *** 575,588 **** EXTERN.h - __declspec(dllimport) XSUB.h - __declspec(dllexport) ! cygwin/cygwin.c - os_extras (getcwd) perl.c - os_extras perl.h - binmode doio.c - win9x can not rename a file when it is open ! pp_sys.c - do not define h_errno ! mg.c - environ WORKAROUND ! unixish.h - environ WORKAROUND ! util.c - environ WORKAROUND =item Compiled Module Source --- 529,540 ---- EXTERN.h - __declspec(dllimport) XSUB.h - __declspec(dllexport) ! cygwin/cygwin.c - os_extras (getcwd, spawn) perl.c - os_extras perl.h - binmode doio.c - win9x can not rename a file when it is open ! pp_sys.c - do not define h_errno, pp_system with spawn ! util.c - use setenv =item Compiled Module Source *************** *** 599,631 **** - require MM_Cygwin.pm lib/ExtUtils/MM_Cygwin.pm - canonpath, cflags, manifypods, perl_archive lib/File/Spec/Unix.pm - preserve //unc lib/perl5db.pl - use stdin not /dev/tty - utils/perlcc.PL - DynaLoader.a in compile, -DUSEIMPORTLIB utils/perldoc.PL - version comment =back =head1 BUGS ! Upon each start, I warns that a rule for F is overridden ! (but there seems to be no better solution than adding an explicit define). ! `C' does not remove library F<.def> and F<.exe.stackdump> files. The I script contains references to the source directory. You should ! change these to C (or whatever) after install. =head1 AUTHORS ! Charles Wilson Ecwilson@ece.gatech.eduE, ! Eric Fifer Eefifer@sanwaint.comE, ! alexander smishlajev Eals@turnhere.comE, ! Steven Morlock Enewspost@morlock.netE, ! Sebastien Barre ESebastien.Barre@utc.frE, ! Teun Burgers Eburgers@ecn.nlE. =head1 HISTORY ! Last updated: 1 March 2000 --- 551,592 ---- - require MM_Cygwin.pm lib/ExtUtils/MM_Cygwin.pm - canonpath, cflags, manifypods, perl_archive + lib/File/Find.pm - on remote drives stat() always sets st_nlink to 1 lib/File/Spec/Unix.pm - preserve //unc + lib/File/Temp.pm - no directory sticky bit lib/perl5db.pl - use stdin not /dev/tty utils/perldoc.PL - version comment =back =head1 BUGS ! When I starts, it warns about overriding commands for F. ! `C' does not remove library F<.def> or F<.exe.stackdump> files. The I script contains references to the source directory. You should ! change these to $installbin after `C'. ! ! Support for swapping real and effective user and group IDs is incomplete. ! On WinNT Cygwin provides setuid(), seteuid(), setgid() and setegid(). ! However, additional Cygwin calls for manipulating WinNT access tokens ! and security contexts are required. ! ! When building DLLs, `C' is used to export ! global symbols. It might be better to generate an explicit F<.def> file ! (see F). Also, DLLs can now be build with `C'. =head1 AUTHORS ! Charles Wilson , ! Eric Fifer , ! alexander smishlajev , ! Steven Morlock , ! Sebastien Barre , ! Teun Burgers . =head1 HISTORY ! Last updated: 9 November 2000 Index: README.dos ####### perl-5.6.1-TRIAL1/ => perl-5.6.1-TRIAL1 *** perl-5.6.1-TRIAL1/README.dos Wed Mar 22 21:41:53 2000 --- perl-5.6.1-TRIAL1/README.dos Mon Dec 18 02:01:46 2000 *************** *** 9,15 **** =head1 SYNOPSIS These are instructions for building Perl under DOS (or w??), using ! DJGPP v2.01 or later. Under w95 long filenames are supported. =head1 DESCRIPTION --- 9,15 ---- =head1 SYNOPSIS These are instructions for building Perl under DOS (or w??), using ! DJGPP v2.03 or later. Under w95 long filenames are supported. =head1 DESCRIPTION *************** *** 22,27 **** --- 22,31 ---- is used to build extensions to perl). Therefore, you should be able to build and install most extensions found in the CPAN sites. + Detailed instructions on how to build and install perl extension + modules, including XS-type modules, is included. See 'BUILDING AND + INSTALLING MODULES'. + =head2 Prerequisites =over 4 *************** *** 46,64 **** You need the following files to build perl (or add new modules): ! v2/djdev202.zip ! v2/bnu27b.zip ! v2gnu/gcc2721b.zip ! v2gnu/bsh1147b.zip ! v2gnu/mak3761b.zip v2gnu/fil316b.zip ! v2gnu/sed118b.zip ! v2gnu/txt122b.zip ! v2gnu/dif271b.zip ! v2gnu/grep21b.zip v2gnu/shl112b.zip v2gnu/gawk303b.zip ! v2misc/csdpmi4b.zip or possibly any newer version. --- 50,68 ---- You need the following files to build perl (or add new modules): ! v2/djdev203.zip ! v2/bnu2951b.zip ! v2gnu/gcc2952b.zip ! v2gnu/bsh204b.zip ! v2gnu/mak3791b.zip v2gnu/fil316b.zip ! v2gnu/sed302b.zip ! v2gnu/txt20b.zip ! v2gnu/dif272b.zip ! v2gnu/grep24b.zip v2gnu/shl112b.zip v2gnu/gawk303b.zip ! v2misc/csdpmi4b.zip or possibly any newer version. *************** *** 100,108 **** =item * Unpack the source package F with djtarx. If you want ! to use long file names under w95, don't forget to use set LFN=y before unpacking the archive. --- 104,114 ---- =item * Unpack the source package F with djtarx. If you want ! to use long file names under w95 and also to get Perl to pass all its ! tests, don't forget to use set LFN=y + set FNCASE=y before unpacking the archive. *************** *** 113,118 **** --- 119,127 ---- ln -s bash.exe sh.exe + [If you have the recommended version of bash for DJGPP, this is already + done for you.] + And make the C environment variable point to this F: set SHELL=c:/djgpp/bin/sh.exe (use full path name!) *************** *** 129,148 **** Copy or link F to F if you don't have F. Copy or link F to F if you don't have F. =item * Chdir to the djgpp subdirectory of perl toplevel and type the following ! command: configure.bat This will do some preprocessing then run the Configure script for you. ! The Configure script is interactive, but in most cases you ! just need to press ENTER. If the script says that your package is incomplete, and asks whether to continue, just answer with Y (this can only happen if you don't use ! long filenames). When Configure asks about the extensions, I suggest IO and Fcntl, and if you want database handling then SDBM_File or GDBM_File --- 138,171 ---- Copy or link F to F if you don't have F. Copy or link F to F if you don't have F. + [If you have the recommended versions of djdev, shell utilities and + gawk, all these are already done for you, and you will not need to do + anything.] + =item * Chdir to the djgpp subdirectory of perl toplevel and type the following ! commands: + set FNCASE=y configure.bat This will do some preprocessing then run the Configure script for you. ! The Configure script is interactive, but in most cases you just need to ! press ENTER. The "set" command ensures that DJGPP preserves the letter ! case of file names when reading directories. If you already issued this ! set command when unpacking the archive, and you are in the same DOS ! session as when you unpacked the archive, you don't have to issue the ! set command again. This command is necessary *before* you start to ! (re)configure or (re)build perl in order to ensure both that perl builds ! correctly and that building XS-type modules can succeed. See the DJGPP ! info entry for "_preserve_fncase" for more information: ! ! info libc alphabetical _preserve_fncase If the script says that your package is incomplete, and asks whether to continue, just answer with Y (this can only happen if you don't use ! long filenames or forget to issue "set FNCASE=y" first). When Configure asks about the extensions, I suggest IO and Fcntl, and if you want database handling then SDBM_File or GDBM_File *************** *** 201,209 **** and the library goes under C<($DJDIR)/lib/perl5>. The pod documentation goes under C<($DJDIR)/lib/perl5/pod>. =head1 AUTHOR ! Laszlo Molnar, F =head1 SEE ALSO --- 224,329 ---- and the library goes under C<($DJDIR)/lib/perl5>. The pod documentation goes under C<($DJDIR)/lib/perl5/pod>. + =head1 BUILDING AND INSTALLING MODULES + + + =head2 Prerequisites + + For building and installing non-XS modules, all you need is a working + perl under DJGPP. Non-XS modules do not require re-linking the perl + binary, and so are simpler to build and install. + + XS-type modules do require re-linking the perl binary, because part of + an XS module is written in "C", and has to be linked together with the + perl binary to be executed. This is required because perl under DJGPP + is built with the "static link" option, due to the lack of "dynamic + linking" in the DJGPP environment. + + Because XS modules require re-linking of the perl binary, you need both + the perl binary distribution and the perl source distribution to build + an XS extension module. In addition, you will have to have built your + perl binary from the source distribution so that all of the components + of the perl binary are available for the required link step. + + =head2 Unpacking CPAN Modules + + First, download the module package from CPAN (e.g., the "Comma Separated + Value" text package, Text-CSV-0.01.tar.gz). Then expand the contents of + the package into some location on your disk. Most CPAN modules are + built with an internal directory structure, so it is usually safe to + expand it in the root of your DJGPP installation. Some people prefer to + locate source trees under /usr/src (i.e., C<($DJDIR)/usr/src>), but you may + put it wherever seems most logical to you, *EXCEPT* under the same + directory as your perl source code. There are special rules that apply + to modules which live in the perl source tree that do not apply to most + of the modules in CPAN. + + Unlike other DJGPP packages, which are normal "zip" files, most CPAN + module packages are "gzipped tarballs". Recent versions of WinZip will + safely unpack and expand them, *UNLESS* they have zero-length files. It + is a known WinZip bug (as of v7.0) that it will not extract zero-length + files. + + From the command line, you can use the djtar utility provided with DJGPP + to unpack and expand these files. For example: + + C:\djgpp>djtarx -v Text-CSV-0.01.tar.gz + + This will create the new directory C<($DJDIR)/Text-CSV-0.01>, filling + it with the source for this module. + + =head2 Building Non-XS Modules + + To build a non-XS module, you can use the standard module-building + instructions distributed with perl modules. + + perl Makefile.PL + make + make test + make install + + This is sufficient because non-XS modules install only ".pm" files and + (sometimes) pod and/or man documentation. No re-linking of the perl + binary is needed to build, install or use non-XS modules. + + =head2 Building XS Modules + + To build an XS module, you must use the standard module-building + instructions distributed with perl modules *PLUS* three extra + instructions specific to the DJGPP "static link" build environment. + + set FNCASE=y + perl Makefile.PL + make + make perl + make test + make -f Makefile.aperl inst_perl MAP_TARGET=perl.exe + make install + + The first extra instruction sets DJGPP's FNCASE environment variable so + that the new perl binary which you must build for an XS-type module will + build correctly. The second extra instruction re-builds the perl binary + in your module directory before you run "make test", so that you are + testing with the new module code you built with "make". The third extra + instruction installs the perl binary from your module directory into the + standard DJGPP binary directory, C<($DJDIR)/bin>, replacing your + previous perl binary. + + Note that the MAP_TARGET value *must* have the ".exe" extension or you + will not create a "perl.exe" to replace the one in C<($DJDIR)/bin>. + + When you are done, the XS-module install process will have added information + to yout "perllocal" information telling that the perl binary has been replaced, + and what module was installed. you can view this information at any time + by using the command: + + perl -S perldoc perllocal + =head1 AUTHOR ! Laszlo Molnar, F [Installing/building perl] ! ! Peter J. Farley III F [Building/installing modules] =head1 SEE ALSO Index: README.epoc ####### perl-5.6.1-TRIAL1/ => perl-5.6.1-TRIAL1 *** perl-5.6.1-TRIAL1/README.epoc Tue Feb 22 01:37:18 2000 --- perl-5.6.1-TRIAL1/README.epoc Sun Dec 17 18:24:45 2000 *************** *** 1,27 **** ! ===================================================================== ! Perl 5 README file for the EPOC operating system. ! ===================================================================== ! Olaf Flebbe ! http://www.linuxstart.com/~oflebbe/perl/perl5.html ! 2000-02-20 ! ===================================================================== ! Introduction ! ===================================================================== EPOC is a OS for palmtops and mobile phones. For more informations look at: http://www.symbian.com/ ! This is a port of Perl version 5.5.650 to EPOC. It runs on the Perl ! Series 5, Series 5mx and the Psion Revo. I have no reports for other ! EPOC devices. ! ! Features are left out, because of restrictions of the POSIX support. ! ! ===================================================================== ! Installation/Usage ! ===================================================================== You will need ~4MB free space in order to install and run perl. --- 1,26 ---- ! If you read this file _as_is_, just ignore the funny characters you ! see. It is written in the POD format (see pod/perlpod.pod) which is ! specially designed to be readable as is. ! =head1 NAME ! ! README.epoc - Perl for EPOC ! ! =head1 SYNOPSIS ! ! Perl 5 README file for the EPOC operating system. ! =head1 INTRODUCTION EPOC is a OS for palmtops and mobile phones. For more informations look at: http://www.symbian.com/ ! This is a port of perl to EPOC. It runs on the Psion Series 5, 5mx, ! 5mx Pro, Psion Revo and on the Ericson M128. I have no report about ! the Psion Netbook or the S7. For information about this hardware ! please refer to http://www.psion.com. ! ! =head1 INSTALLING PERL ON EPOC You will need ~4MB free space in order to install and run perl. *************** *** 33,49 **** this version. (For details look into epoc/createpkg.pl). If you like to use them, you are free to copy them from a current perl release. ! Copy eshell.exe from the same page you got perl to your EPOC device. ! Start eshell.exe with a double tap. Now you can enter: perl -de 0 in order to run the perl debugger. If you are leaving perl, you get into the system screen. You have to ! switch back manually to eshell.exe When perl is running, you will see a task with the name STDOUT in the task list. ! ====================================================================== ! IO Redirection ! ====================================================================== You can redirect the output with the UNIX bourne shell syntax (this is built into perl rather then eshell) For instance the following command --- 32,48 ---- this version. (For details look into epoc/createpkg.pl). If you like to use them, you are free to copy them from a current perl release. ! Get ESHELL from symbian: ! http://developer.epocworld.com/downloads/progs/Eshell.zip Now you can enter: perl -de 0 in order to run the perl debugger. If you are leaving perl, you get into the system screen. You have to ! switch back manually to ESHELL. When perl is running, you will see a task with the name STDOUT in the task list. ! =head1 USING PERL ON EPOC ! ! =head2 IO Redirection You can redirect the output with the UNIX bourne shell syntax (this is built into perl rather then eshell) For instance the following command *************** *** 52,160 **** perl test.pl >stdout_file stderr_file ! Alternativly you can use 2>&1 in order to add the standard error output to stdout. ! ====================================================================== ! PATH Names ! ====================================================================== ! ! Pathnames to executables in eshell.exe have to be written with ! backslashes '\', file arguments to perl with slashes '/'. The default ! drive of perl is the same as the drive perl.exe is located on, the ! default path seems to be '/'. ! i.e. command lines look a little bit funny: ! D:\perl.exe C:/test.pl >C:/output.txt You can automatically search for file on all EPOC drives with a ? as ! the driver letter. For instance ?:\a.txt seraches for C:\a.txt, D:\b.txt (and Z:\a.txt). ! ====================================================================== ! Editors ! ====================================================================== ! You may have a problem to create perl scripts. A cumbersome workaround ! is to use the OPL Editor and exporting to text. ! The OPL+ Editor is quite good. (Shareware: http://www.twiddlebit.com) ! There is a port of vim around: ! http://www.starship.freeserve.co.uk/index.html ! ====================================================================== ! Restrictions ! ====================================================================== ! The following things are left out of this perl port: ! + backquoting, pipes etc. ! + system() does not inherit ressources like: file descriptors, ! environment etc. ! + signal, kill, alarm. Do not try to use them. This may be ! impossible to implement on EPOC. ! + select is missing. ! + binmode does not exist. (No CR LF to LF translation for text files) ! + EPOC does not handle the notion of current drive and current ! directory very well (i.e. not at all, but it tries hard to emulate ! one) See PATH. ! + You need the shell eshell.exe in order to run perl.exe and supply ! it with arguments. ! + Heap is limited to 4MB. ! =================================================================== ! Compiling Perl 5 on the EPOC cross compiling envionment. ! =================================================================== Sorry, this is far too short. ! You will need the C++ SDK from http://developer.epocworld.com/. ! You will need to set up the cross SDK from ! http://www.linuxstart.com/~oflebbe ! You may have to adjust config.sh (cc, cppflags) for your epoc ! install location. ! You may have to adjust config.sh for your cross SDK location ! Get the Perl sources from your nearest CPAN site. ! Unpack the sources. - Build a native perl from this sources... cp epoc/* . ./Configure -S ! make perl cp miniperl.native miniperl make perl perl link.pl perlmain.o lib/auto/DynaLoader/DynaLoader.a \ ! lib/auto/Data/Dumper.a \ lib/auto/File/Glob/Glob.a lib/auto/IO/IO.a \ ! lib/auto/Socket/Socket.a perl.a `cat ext.libs` perl createpkg.pl - wine "G:/bin/makesis perl.pkg perl.sis" ! ==================================================================== ! Wish List ! ==================================================================== ! - Threads ? ! - Acess to the GUI? ! ==================================================================== ! Support Status ! ==================================================================== ! I'm offering this port "as is". You can ask me questions, but I can't ! guarantee I'll be able to answer them; I don't know much about Perl ! internals myself; --- 51,204 ---- perl test.pl >stdout_file stderr_file ! Alternatively you can use 2>&1 in order to add the standard error output to stdout. ! =head2 PATH Names ! ! ESHELL looks for executables in ?:/System/Programs. The SIS file ! installs perl in this special folder directory. The default drive and ! path are the same as folder the executable resides. The EPOC ! filesystem is case-preserving, not case-sensitive. ! ! EPOC uses the ?: syntax for establishing a search order: First in C: (RAM), ! then on D: (CF Card) and last in Z: (ROM). ! The perl @INC search path is now implemented with '?:'. Your perl ! executable can now live on a different drive than the perl library or ! even your scripts. ! ESHELL paths have to be written with backslashes '\', file arguments ! to perl with slashes '/'. Remember that I/O redirection is done ! internally in perl, so please use slashes for redirects. ! ! perl.exe C:/test.pl >C:/output.txt You can automatically search for file on all EPOC drives with a ? as ! the driver letter. For instance ?:\a.txt searches for C:\a.txt, D:\b.txt (and Z:\a.txt). ! =head2 Editors ! ! A suitable text-editor can be downloaded ! from symbian http://developer.epocworld.com/downloads/progs/Editor.zip ! ! =head2 Features ! ! The built-in function EPOC::getcwd returns the current directory. ! ! =head2 Restrictions ! ! Features are left out, because of restrictions of the POSIX support in ! EPOC: ! ! =over 4 ! ! =item * ! ! backquoting, pipes etc. ! =item * ! system() does not inherit ressources like: file descriptors, ! environment etc. ! =item * ! signal, kill, alarm. Do not try to use them. This may be ! impossible to implement on EPOC. ! =item * ! select is missing. ! =item * ! binmode does not exist. (No CR LF to LF translation for text files) ! =item * ! EPOC does not handle the notion of current drive and current ! directory very well (i.e. not at all, but it tries hard to emulate ! one) See PATH. ! =item * ! You need the shell eshell.exe in order to run perl.exe and supply ! it with arguments. ! =item * ! ! Heap is limited to 4MB. ! ! =back ! ! =head2 Compiling Perl 5 on the EPOC cross compiling environment Sorry, this is far too short. ! =over 4 ! ! =item * ! ! You will need the C++ SDK from http://developer.epocworld.com/. ! ! =item * ! ! You will need to set up the cross SDK from ! http://members.linuxstart.com/~oflebbe ! ! =item * ! ! You may have to adjust config.sh (cc, cppflags) for your epoc ! install location. ! =item * ! You may have to adjust config.sh for your cross SDK location ! =item * ! Get the Perl sources from your nearest CPAN site. ! =item * ! ! Unpack the sources. ! ! =item * ! ! Build a native perl from this sources... cp epoc/* . ./Configure -S ! make perl.a cp miniperl.native miniperl make perl + make ext/Errno/pm_to_blib perl link.pl perlmain.o lib/auto/DynaLoader/DynaLoader.a \ ! lib/auto/Data/Dumper/Dumper.a \ lib/auto/File/Glob/Glob.a lib/auto/IO/IO.a \ ! lib/auto/Socket/Socket.a \ ! lib/auto/Fcntl/Fcntl.a lib/auto/Sys/Hostname/Hostname.a \ ! perl.a `cat ext.libs` perl createpkg.pl + wine G:/bin/makesis perl.pkg perl.sis + + =back ! =head1 SUPPORT STATUS ! ! I'm offering this port "as is". You can ask me questions, but I can't ! guarantee I'll be able to answer them. ! ! =head1 AUTHOR ! ! Olaf Flebbe ! http://members.linuxstart.com/~oflebbe/perl/perl5.html ! =head1 LAST UPDATE ! 2000-09-18 ! =cut Index: README.hpux ####### perl-5.6.1-TRIAL1/ => perl-5.6.1-TRIAL1 *** perl-5.6.1-TRIAL1/README.hpux Tue Jul 20 10:17:52 1999 --- perl-5.6.1-TRIAL1/README.hpux Sun Dec 17 20:44:55 2000 *************** *** 1,6 **** ! If you read this file _as_is_, just ignore the funny characters you ! see. It is written in the POD format (see pod/perlpod.pod) which is ! specially designed to be readable as is. =head1 NAME --- 1,6 ---- ! If you read this file _as_is_, just ignore the funny characters you see. ! It is written in the POD format (see pod/perlpod.pod) which is specially ! designed to be readable as is. =head1 NAME *************** *** 8,40 **** =head1 DESCRIPTION ! This document describes various features of HP's Unix operating system (HP-UX) ! that will affect how Perl version 5 (hereafter just Perl) is compiled and/or ! runs. =head2 Compiling Perl 5 on HP-UX ! When compiling Perl, the use of an ANSI C compiler is highly recommended. ! The C compiler that ships with all HP-UX systems is a K&R compiler that ! should only be used to build new kernels. Perl can be compiled with either HP's ANSI C compiler or with gcc. The ! former is recommended, as not only can it compile Perl with no difficulty, ! but also can take advantage of features listed later that require the use ! of HP compiler-specific command-line flags. ! ! If you decide to use gcc, make sure your installation is recent and complete, ! and be sure to read the Perl README file for more gcc-specific details. =head2 PA-RISC ! HP's current Unix systems run on its own Precision Architecture (PA-RISC) chip. ! HP-UX used to run on the Motorola MC68000 family of chips, but any machine with ! this chip in it is quite obsolete and this document will not attempt to address ! issues for compiling Perl on the Motorola chipset. ! The most recent version of PA-RISC at the time of this document's last update ! is 2.0. =head2 PA-RISC 1.0 --- 8,42 ---- =head1 DESCRIPTION ! This document describes various features of HP's Unix operating system ! (HP-UX) that will affect how Perl version 5 (hereafter just Perl) is ! compiled and/or runs. =head2 Compiling Perl 5 on HP-UX ! When compiling Perl, you must use an ANSI C compiler. The C compiler ! that ships with all HP-UX systems is a K&R compiler that should only be ! used to build new kernels. Perl can be compiled with either HP's ANSI C compiler or with gcc. The ! former is recommended, as not only can it compile Perl with no ! difficulty, but also can take advantage of features listed later that ! require the use of HP compiler-specific command-line flags. ! ! If you decide to use gcc, make sure your installation is recent and ! complete, and be sure to read the Perl README file for more gcc-specific ! details. =head2 PA-RISC ! HP's current Unix systems run on its own Precision Architecture ! (PA-RISC) chip. HP-UX used to run on the Motorola MC68000 family of ! chips, but any machine with this chip in it is quite obsolete and this ! document will not attempt to address issues for compiling Perl on the ! Motorola chipset. ! The most recent version of PA-RISC at the time of this document's last ! update is 2.0. =head2 PA-RISC 1.0 *************** *** 42,49 **** The following systems contain PA-RISC 1.0 chips: ! 600, 635, 645, 800, 808, 815, 822, 825, 832, 834, 835, 840, ! 842, 845, 850, 852, 855, 860, 865, 870, 890 =head2 PA-RISC 1.1 --- 44,51 ---- The following systems contain PA-RISC 1.0 chips: ! 600, 635, 645, 808, 815, 822, 825, 832, 834, 835, 840, 842, 845, 850, 852, ! 855, 860, 865, 870, 890 =head2 PA-RISC 1.1 *************** *** 52,103 **** The following systems contain with PA-RISC 1.1 chips: ! 705, 710, 712, 715, 720, 722, 725, 728, 730, 735, 743, 745, 747, 750, ! 755, 770, 807S, 817S, 827S, 837S, 847S, 857S, 867S, 877S, 887S, 897S, ! D200, D210, D220, D230, D250, D260, D310, D320, D330, D350, D360, D400, ! E25, E35, E45, E55, F10, F20, F30, G30, G40, G50, G60, G70, H30, H40, ! H50, H60, H70, I30, I40, I50, I60, I70, K100, K200, K210, K220, K400, ! K410, K420, T500, T520 ! =head2 PA-RISC 2.0 ! The most recent upgrade to the PA-RISC design, it added support for 64-bit ! integer data. ! The following systems contain PA-RISC 2.0 chips (this is very likely to be ! out of date): ! D270, D280, D370, D380, K250, K260, K370, K380, K450, K460, K570, K580, ! T600, V2200 A complete list of models at the time the OS was built is in the file ! /opt/langtools/lib/sched.models. ! The first column corresponds to the output of the "uname -m" command ! (without the leading "9000/"). ! The second column is the PA-RISC version ! and the third column is the exact chip type used. =head2 Portability Between PA-RISC Versions An executable compiled on a PA-RISC 2.0 platform will not execute on a ! PA-RISC 1.1 platform, even if they are running the same version of HP-UX. ! If you are building Perl on a PA-RISC 2.0 platform and want that Perl to ! to also run on a PA-RISC 1.1, the compiler flags +DAportable and +DS32 ! should be used. ! It is no longer possible to compile PA-RISC 1.0 executables on either the ! PA-RISC 1.1 or 2.0 platforms. =head2 Building Dynamic Extensions on HP-UX HP-UX supports dynamically loadable libraries (shared libraries). Shared libraries end with the suffix .sl. ! Shared libraries created on a platform using a particular PA-RISC version ! are not usable on platforms using an earlier PA-RISC version by default. ! However, this backwards compatibility may be enabled using the same ! +DAportable compiler flag (with the same PA-RISC 1.0 caveat mentioned above). To create a shared library, the following steps must be performed: --- 54,111 ---- The following systems contain with PA-RISC 1.1 chips: ! 705, 710, 712, 715, 720, 722, 725, 728, 730, 735, 742, 743, 745, 747, 750, ! 755, 770, 777, 778, 779, 800, 801, 803, 806, 807, 809, 811, 813, 816, 817, ! 819, 821, 826, 827, 829, 831, 837, 839, 841, 847, 849, 851, 856, 857, 859, ! 867, 869, 877, 887, 891, 892, 897, A180, A180C, B115, B120, B132L, B132L+, ! B160L, B180L, C100, C110, C115, C120, C160L, D200, D210, D220, D230, D250, ! D260, D310, D320, D330, D350, D360, D410, DX0, DX5, DZO, E25, E35, E45, ! E55, F10, F20, F30, G30, G40, G50, G60, G70, H20, H30, H40, H50, H60, H70, ! I30, I40, I50, I60, I70, J200, J210, J210XC, K100, K200, K210, K220, K230, ! K400, K410, K420, S700i, S715, S724, S760, T500, T520 =head2 PA-RISC 2.0 ! The most recent upgrade to the PA-RISC design, it added support for ! 64-bit integer data. ! As of the date of this document's last update, the following systems ! contain PA-RISC 2.0 chips (this is very likely to be out of date): ! 700, 780, 781, 782, 783, 785, 802, 804, 810, 820, 861, 871, 879, 889, 893, ! 895, 896, 898, 899, B1000, C130, C140, C160, C180, C180+, C180-XP, C200+, ! C400+, C3000, C360, CB260, D270, D280, D370, D380, D390, D650, J220, J2240, ! J280, J282, J400, J410, J5000, J7000, K250, K260, K260-EG, K270, K360, ! K370, K380, K450, K460, K460-EG, K460-XP, K470, K570, K580, L1000, L2000, ! N4000, R380, R390, T540, T600, V2000, V2200, V2250, V2500 A complete list of models at the time the OS was built is in the file ! /opt/langtools/lib/sched.models. The first column corresponds to the ! output of the "uname -m" command (without the leading "9000/"). The ! second column is the PA-RISC version and the third column is the exact ! chip type used. =head2 Portability Between PA-RISC Versions An executable compiled on a PA-RISC 2.0 platform will not execute on a ! PA-RISC 1.1 platform, even if they are running the same version of ! HP-UX. If you are building Perl on a PA-RISC 2.0 platform and want that ! Perl to to also run on a PA-RISC 1.1, the compiler flags +DAportable and ! +DS32 should be used. ! It is no longer possible to compile PA-RISC 1.0 executables on either ! the PA-RISC 1.1 or 2.0 platforms. =head2 Building Dynamic Extensions on HP-UX HP-UX supports dynamically loadable libraries (shared libraries). Shared libraries end with the suffix .sl. ! Shared libraries created on a platform using a particular PA-RISC ! version are not usable on platforms using an earlier PA-RISC version by ! default. However, this backwards compatibility may be enabled using the ! same +DAportable compiler flag (with the same PA-RISC 1.0 caveat ! mentioned above). To create a shared library, the following steps must be performed: *************** *** 116,162 **** time, you will get fatal "Unresolved symbol" errors at run time when the library is loaded. ! You may create a shared library that referers to another library, which ! may be either an archive library or a shared library. If it is a ! shared library, this is called a "dependent library". ! The dependent library's name is recorded in the main shared library, ! but it is not linked into the shared library. ! Instead, it is loaded when the main shared library is loaded. If the referred library is an archive library, then it is treated as a simple collection of .o modules (all of which must contain PIC). These modules are then linked into the shared library. ! Note that it is okay to create a library which contains a dependent library ! that is already linked into perl. It is no longer possible to link PA-RISC 1.0 shared libraries. =head2 The HP ANSI C Compiler ! When using this compiler to build Perl, you should make sure that ! the flag -Aa is added to the cpprun and cppstdin variables in the ! config.sh file. =head2 Using Large Files with Perl ! Beginning with HP-UX version 10.20, files larger than 2GB (2^31) may be ! created and manipulated. ! Three separate methods of doing this are available. ! Of these methods, ! the best method for Perl is to compile using the -D_FILE_OFFSET_BITS=64 ! compiler flag. ! This causes Perl to be compiled using structures and functions in which ! these are 64 bits wide, rather than 32 bits wide. ! ! There are only two drawbacks to this approach: ! the first is that the seek and tell functions (both the builtin version ! and the POSIX module's version) will not correctly ! function for these large files ! (the offset arguments in seek and tell are implemented as type long). ! The second is that any extension which calls any file-manipulating C function ! will need to be recompiled using the above-mentioned -D_FILE_OFFSET_BITS=64 ! flag. The list of functions that will need to recompiled is: creat, fgetpos, fopen, freopen, fsetpos, fstat, --- 124,169 ---- time, you will get fatal "Unresolved symbol" errors at run time when the library is loaded. ! You may create a shared library that refers to another library, which ! may be either an archive library or a shared library. If this second ! library is a shared library, this is called a "dependent library". The ! dependent library's name is recorded in the main shared library, but it ! is not linked into the shared library. Instead, it is loaded when the ! main shared library is loaded. This can cause problems if you build an ! extension on one system and move it to another system where the ! libraries may not be located in the same place as on the first system. If the referred library is an archive library, then it is treated as a simple collection of .o modules (all of which must contain PIC). These modules are then linked into the shared library. ! Note that it is okay to create a library which contains a dependent ! library that is already linked into perl. It is no longer possible to link PA-RISC 1.0 shared libraries. =head2 The HP ANSI C Compiler ! When using this compiler to build Perl, you should make sure that the ! flag -Aa is added to the cpprun and cppstdin variables in the config.sh ! file (though see the section on 64-bit perl below). =head2 Using Large Files with Perl ! Beginning with HP-UX version 10.20, files larger than 2GB (2^31 bytes) ! may be created and manipulated. Three separate methods of doing this ! are available. Of these methods, the best method for Perl is to compile ! using the -Duselargefiles flag to Configure. This causes Perl to be ! compiled using structures and functions in which these are 64 bits wide, ! rather than 32 bits wide. (Note that this will only work with HP's ANSI ! C compiler. If you want to compile Perl using gcc, you will have to get ! a version of the compiler that support 64-bit operations.) ! ! There are some drawbacks to this approach. One is that any extension ! which calls any file-manipulating C function will need to be recompiled ! (just follow the usual "perl Makefile.PL; make; make test; make install" ! procedure). ! The list of functions that will need to recompiled is: creat, fgetpos, fopen, freopen, fsetpos, fstat, *************** *** 167,217 **** statvfs, statvfsdev, tmpfile, truncate, getrlimit, setrlimit =head2 Threaded Perl It is impossible to compile a version of threaded Perl on any version of HP-UX before 10.30, and it is strongly suggested that you be running on HP-UX 11.00 at least. ! To compile Perl with thread, add -Dusethreads to the arguments of Configure. ! Ensure that the -D_POSIX_C_SOURCE=199506L compiler flag is automatically ! added to the list of flags. Also make sure that -lpthread is listed before ! -lc in the list of libraries to link Perl with. ! As of the date of this document, Perl threads are not fully supported on HP-UX. =head2 64-bit Perl ! Beginning with HP-UX 11.00, programs compiled under HP-UX can take advantage ! of the LP64 programming environment (LP64 means Longs and Pointers are 64 bits ! wide). ! ! Work is being performed on Perl to make it 64-bit compliant on all versions ! of Unix. Once this is complete, scalar variables will be able to hold ! numbers larger than 2^32 with complete precision. As of the date of this document, Perl is not 64-bit compliant on HP-UX. ! Should a user wish to experiment with compiling Perl in the LP64 environment, ! the following steps must be taken: libraries must be searched only within ! /lib/pa20_64, the compiler flag +DD64 must be used, and the C library is ! now located at /lib/pa20_64/libc.sl. ! ! On the brighter side, the large file problem goes away, as longs are now ! 64 bits wide. =head2 GDBM and Threads ! If you attempt to compile Perl with threads on an 11.X system and also link ! in the GDBM library, then Perl will immediately core dump when it starts up. ! The only workaround at this point is to relink the GDBM library under 11.X, ! then relink it into Perl. =head2 NFS filesystems and utime(2) If you are compiling Perl on a remotely-mounted NFS filesystem, the test ! io/fs.t may fail on test #18. ! This appears to be a bug in HP-UX and no fix is currently available. =head1 AUTHOR --- 174,264 ---- statvfs, statvfsdev, tmpfile, truncate, getrlimit, setrlimit + Another drawback is only valid for Perl versions before 5.6.0. This + drawback is that the seek and tell functions (both the builtin version + and POSIX module version) will not perform correctly. + + It is strongly recommended that you use this flag when you run + Configure. If you do not do this, but later answer the question about + large files when Configure asks you, you may get a configuration that + cannot be compiled, or that does not function as expected. + =head2 Threaded Perl It is impossible to compile a version of threaded Perl on any version of HP-UX before 10.30, and it is strongly suggested that you be running on HP-UX 11.00 at least. ! To compile Perl with threads, add -Dusethreads to the arguments of ! Configure. Verify that the -D_POSIX_C_SOURCE=199506L compiler flag is ! automatically added to the list of flags. Also make sure that -lpthread ! is listed before -lc in the list of libraries to link Perl with. ! As of the date of this document, Perl threads are not fully supported on ! HP-UX. =head2 64-bit Perl ! Beginning with HP-UX 11.00, programs compiled under HP-UX can take ! advantage of the LP64 programming environment (LP64 means Longs and ! Pointers are 64 bits wide). ! ! Work is being performed on Perl to make it 64-bit compliant on all ! versions of Unix. Once this is complete, scalar variables will be able ! to hold numbers larger than 2^32 with complete precision. As of the date of this document, Perl is not 64-bit compliant on HP-UX. ! Should a user wish to experiment with compiling Perl in the LP64 ! environment, use the -Duse64bitall flag to Configure. This will force ! Perl to be compiled in a pure LP64 environment (via the +DD64 flag). ! ! You can also use the -Duse64bitint flag to Configure. Although there ! are some minor differences between compiling Perl with this flag versus ! the -Duse64bitall flag, they should not be noticeable from a Perl user's ! perspective. ! ! In both cases, it is strongly recommended that you use these flags when ! you run Configure. If you do not use do this, but later answer the ! questions about 64-bit numbers when Configure asks you, you may get a ! configuration that cannot be compiled, or that does not function as ! expected. ! ! (Note that these Configure flags will only work with HP's ANSI C ! compiler. If you want to compile Perl using gcc, you will have to get a ! version of the compiler that support 64-bit operations.) =head2 GDBM and Threads ! If you attempt to compile Perl with threads on an 11.X system and also ! link in the GDBM library, then Perl will immediately core dump when it ! starts up. The only workaround at this point is to relink the GDBM ! library under 11.X, then relink it into Perl. =head2 NFS filesystems and utime(2) If you are compiling Perl on a remotely-mounted NFS filesystem, the test ! io/fs.t may fail on test #18. This appears to be a bug in HP-UX and no ! fix is currently available. ! ! =head2 perl -P and // ! ! In HP-UX Perl is compiled with flags that will cause problems if the ! -P flag of Perl (preprocess Perl code with the C preprocessor before ! perl sees it) is used. The problem is that C, being a C++-style ! until-end-of-line comment, will disappear along with the remainder ! of the line. This means that common Perl constructs like ! ! s/foo//; ! ! will turn into illegal code ! ! s/foo ! ! The workaround is to use some other quoting separator than C<"/">, ! like for example C<"!">: ! ! s!foo!!; =head1 AUTHOR *************** *** 221,226 **** =head1 DATE ! Version 0.2: 1999/03/01 =cut --- 268,273 ---- =head1 DATE ! Version 0.6.1: 2000/06/20 =cut Index: README.machten ####### perl-5.6.1-TRIAL1/ => perl-5.6.1-TRIAL1 *** perl-5.6.1-TRIAL1/README.machten Wed Mar 22 19:00:54 2000 --- perl-5.6.1-TRIAL1/README.machten Sun Oct 15 19:39:46 2000 *************** *** 57,81 **** =back - =head2 Using external modules - - If warnings are enabled with Perl's C<-w> command-line flag, you are - likely to see warnings when using external modules containing XS - (compiled) code: - - Subroutine DynaLoader::dl_error redefined at /usr/local/lib/perl5/5.6.0/powerpc-machten/DynaLoader.pm line 93. - - This is a harmless consequence of the static linking used for MachTen - perl. You can suppress the warnings by using the more modern - C<-Mwarnings> instead of the traditional C<-w>. (See L.) - =head2 Building external modules To add an external module to perl, build in the normal way, which is documented in L, or which can be driven automatically by the CPAN module (see L), which is part of the ! standard distribution. If wou want to install a ! module contains XS code (C or C++ source which compiles to object code for linking with perl), you will have to replace your perl binary with a new version containing the new statically-linked object module. The build process tells you how to do this. --- 57,69 ---- =back =head2 Building external modules To add an external module to perl, build in the normal way, which is documented in L, or which can be driven automatically by the CPAN module (see L), which is part of the ! standard distribution. If you want to install a module which ! contains XS code (C or C++ source which compiles to object code for linking with perl), you will have to replace your perl binary with a new version containing the new statically-linked object module. The build process tells you how to do this. *************** *** 98,101 **** =head1 DATE ! Version 1.0 2000-03-22 --- 86,89 ---- =head1 DATE ! Version 1.0.1 2000-03-27 Index: README.os2 ####### perl-5.6.1-TRIAL1/ => perl-5.6.1-TRIAL1 *** perl-5.6.1-TRIAL1/README.os2 Fri Mar 3 19:59:44 2000 --- perl-5.6.1-TRIAL1/README.os2 Sun Dec 17 19:27:04 2000 *************** *** 115,121 **** - Threads AUTHOR SEE ALSO ! =head1 DESCRIPTION =head2 Target --- 115,121 ---- - Threads AUTHOR SEE ALSO ! =head1 DESCRIPTION =head2 Target *************** *** 178,190 **** fact RSX is required if there is no VCPI present. Note the RSX requires DPMI. ! Only the latest runtime is supported, currently C<0.9c>. Perl may run under earlier versions of EMX, but this is not tested. One can get different parts of EMX from, say ! ftp://ftp.cdrom.com/pub/os2/emx09c/ ! ftp://hobbes.nmsu.edu/os2/unix/emx09c/ The runtime component should have the name F. --- 178,191 ---- fact RSX is required if there is no VCPI present. Note the RSX requires DPMI. ! Only the latest runtime is supported, currently C<0.9d fix 03>. Perl may run under earlier versions of EMX, but this is not tested. One can get different parts of EMX from, say ! http://www.leo.org/pub/comp/os/os2/leo/gnu/emx+gcc/ ! http://powerusersbbs.com/pub/os2/dev/ [EMX+GCC Development] ! http://hobbes.nmsu.edu/pub/os2/dev/emx/v0.9d/ The runtime component should have the name F. *************** *** 393,404 **** =over 4 ! =item Did you run your programs with C<-w> switch? See L. ! =item Do you try to run I shell commands, like C<`copy a b`> (internal for F), or C<`glob a*b`> (internal for ksh)? You --- 394,405 ---- =over 4 ! =item * Did you run your programs with C<-w> switch? See L. ! =item * Do you try to run I shell commands, like C<`copy a b`> (internal for F), or C<`glob a*b`> (internal for ksh)? You *************** *** 723,729 **** =head1 BUILD Here we discuss how to build Perl under OS/2. There is an alternative ! (but maybe older) view on L. =head2 Prerequisites --- 724,730 ---- =head1 BUILD Here we discuss how to build Perl under OS/2. There is an alternative ! (but maybe older) view on http://www.shadow.net/~troc/os2perl.html =head2 Prerequisites *************** *** 1060,1065 **** --- 1061,1070 ---- You use an old version of GNU make. See L. + =head2 op/sprintf test failure + + This can result from a bug in emx sprintf which was fixed in 0.9d fix 03. + =head1 Specific (mis)features of OS/2 port =head2 C, C *************** *** 1158,1175 **** =over 4 ! =item Since L is present in EMX, but is not functional, it is emulated by perl. To disable the emulations, set environment variable C. ! =item Here is the list of things which may be "broken" on EMX (from EMX docs): ! =over =item * --- 1163,1180 ---- =over 4 ! =item * Since L is present in EMX, but is not functional, it is emulated by perl. To disable the emulations, set environment variable C. ! =item * Here is the list of things which may be "broken" on EMX (from EMX docs): ! =over 4 =item * *************** *** 1200,1206 **** Note that C does not work with the current version of EMX. ! =item Since F is used for globing (see L), the bugs of F plague perl as well. --- 1205,1211 ---- Note that C does not work with the current version of EMX. ! =item * Since F is used for globing (see L), the bugs of F plague perl as well. *************** *** 1481,1487 **** B currently F of pdksh calls external programs via fork()/exec(), and there is I functioning exec() on ! OS/2. exec() is emulated by EMX by asyncroneous call while the caller waits for child completion (to pretend that the C did not change). This means that 1 I copy of F is made active via fork()/exec(), which may lead to some resources taken from the system (even if we do --- 1486,1492 ---- B currently F of pdksh calls external programs via fork()/exec(), and there is I functioning exec() on ! OS/2. exec() is emulated by EMX by asynchronous call while the caller waits for child completion (to pretend that the C did not change). This means that 1 I copy of F is made active via fork()/exec(), which may lead to some resources taken from the system (even if we do *************** *** 1512,1520 **** For the details of the current situation with calling external programs, see L. ! =over ! =item External scripts may be called by name. Perl will try the same extensions as when processing B<-S> command-line switch. --- 1517,1525 ---- For the details of the current situation with calling external programs, see L. ! =over 4 ! =item * External scripts may be called by name. Perl will try the same extensions as when processing B<-S> command-line switch. *************** *** 1525,1532 **** Perl uses its own malloc() under OS/2 - interpreters are usually malloc-bound for speed, but perl is not, since its malloc is lightning-fast. ! Perl-memory-usage-tuned benchmarks show that Perl's malloc is 5 times quickier ! than EMX one. I do not have convincing data about memory footpring, but a (pretty random) benchmark showed that Perl one is 5% better. Combination of perl's malloc() and rigid DLL name resolution creates --- 1530,1537 ---- Perl uses its own malloc() under OS/2 - interpreters are usually malloc-bound for speed, but perl is not, since its malloc is lightning-fast. ! Perl-memory-usage-tuned benchmarks show that Perl's malloc is 5 times quicker ! than EMX one. I do not have convincing data about memory footprint, but a (pretty random) benchmark showed that Perl one is 5% better. Combination of perl's malloc() and rigid DLL name resolution creates *************** *** 1544,1550 **** Most notable problems: ! =over =item C --- 1549,1555 ---- Most notable problems: ! =over 4 =item C Index: README.os390 ####### perl-5.6.1-TRIAL1/ => perl-5.6.1-TRIAL1 *** perl-5.6.1-TRIAL1/README.os390 Tue Jul 20 10:17:52 1999 --- perl-5.6.1-TRIAL1/README.os390 Sun Dec 17 20:44:55 2000 *************** *** 1,5 **** This document is written in pod format hence there are punctuation ! characters in in odd places. Do not worry, you've apparently got the ASCII->EBCDIC translation worked out correctly. You can read more about pod in pod/perlpod.pod or the short summary in the INSTALL file. --- 1,6 ---- + This document is written in pod format hence there are punctuation ! characters in odd places. Do not worry, you've apparently got the ASCII->EBCDIC translation worked out correctly. You can read more about pod in pod/perlpod.pod or the short summary in the INSTALL file. *************** *** 15,26 **** =head1 DESCRIPTION ! This is a fully ported perl for OS/390 Release 3, 5 and 6. ! It may work on other versions, but those are the ones we've ! tested it on. You may need to carry out some system configuration tasks before ! running the Configure script for perl. =head2 Unpacking --- 16,27 ---- =head1 DESCRIPTION ! This is a fully ported Perl for OS/390 Version 2 Release 3, 5, 6, 7, ! 8, and 9. It may work on other versions or releases, but those are ! the ones we've tested it on. You may need to carry out some system configuration tasks before ! running the Configure script for Perl. =head2 Unpacking *************** *** 41,52 **** This may also be a good time to ensure that your /etc/protocol file and either your /etc/resolv.conf or /etc/hosts files are in place. ! GNU make for OS/390, which may be required for the build of perl, ! is available from: http://www.mks.com/s390/gnu/index.htm =head2 Configure Once you've unpacked the distribution, run "sh Configure" (see INSTALL --- 42,80 ---- This may also be a good time to ensure that your /etc/protocol file and either your /etc/resolv.conf or /etc/hosts files are in place. + The IBM document that described such USS system setup issues was + SC28-1890-07 "OS/390 UNIX System Services Planning", in particular + Chapter 6 on customizing the OE shell. ! GNU make for OS/390, which is required for the build of perl (as well as ! building CPAN modules and extensions), is available from: http://www.mks.com/s390/gnu/index.htm + Some people have reported encountering "Out of memory!" errors while + trying to build Perl using GNU make binaries. If you encounter such + trouble then try to download the source code kit and build GNU make + from source to eliminate any such trouble. You might also find GNU make + (as well as Perl and Apache) in the red-piece/book "Open Source Software + for OS/390 UNIX", SG24-5944-00 from IBM. + + There is a syntax error in the /usr/include/sys/socket.h header file + that IBM supplies with USS V2R7, V2R8, and possibly V2R9. The problem with + the header file is that near the definition of the SO_REUSEPORT constant + there is a spurious extra '/' character outside of a comment like so: + + #define SO_REUSEPORT 0x0200 /* allow local address & port + reuse */ / + + You could edit that header yourself to remove that last '/', or you might + note that Language Environment (LE) APAR PQ39997 describes the problem + and PTF's UQ46272 and UQ46271 are the (R8 at least) fixes and apply them. + If left unattended that syntax error will turn up as an inability for Perl + to build its "Socket" extension. + + For successful testing you may need to turn on the sticky bit for your + world readable /tmp directory if you have not already done so (see man chmod). + =head2 Configure Once you've unpacked the distribution, run "sh Configure" (see INSTALL *************** *** 58,82 **** =item * Some of the parser default template files in /samples are needed in /etc. In particular be sure that you at least copy /samples/yyparse.c to /etc ! before running perl's Configure. This step ensures successful extraction ! of EBCDIC versions of parser files such as perly.c. =item * ! This port doesn't support dynamic loading. Although ! OS/390 has support for DLLs, there are some differences ! that cause problems for perl. =item * ! You may see a "WHOA THERE!!!" message for $d_shmatprototype ! it is OK to keep the recommended "define". =item * ! Don't turn on the compiler optimization flag "-O". There's a bug in either the optimizer or perl that causes perl to not work correctly when the optimizer is on. --- 86,168 ---- =item * + A message of the form: + + (I see you are using the Korn shell. Some ksh's blow up on Configure, + mainly on older exotic systems. If yours does, try the Bourne shell instead.) + + is nothing to worry about at all. + + =item * + Some of the parser default template files in /samples are needed in /etc. In particular be sure that you at least copy /samples/yyparse.c to /etc ! before running Perl's Configure. This step ensures successful extraction ! of EBCDIC versions of parser files such as perly.c. This has to be done ! before running Configure the first time. If you failed to do so then the ! easiest way to re-Configure Perl is to delete your misconfigured build root ! and re extract the source from the tar ball. If for some reason you do not ! want to do that then, after ensuring that /etc/yyparse.c is properly in place ! run the following commands from within the Perl build directory: ! ! rm -f y.tab.c y.tab.h ! yacc -d perly.y ! mv -f y.tab.c perly.c ! chmod u+w perly.c ! sed -e '/^#include "perl\.h"/a\ ! \ ! #define yydebug PL_yydebug\ ! #define yynerrs PL_yynerrs\ ! #define yyerrflag PL_yyerrflag\ ! #define yychar PL_yychar\ ! #define yyval PL_yyval\ ! #define yylval PL_yylval' \ ! -e '/YYSTYPE *yyval;/D' \ ! -e '/YYSTYPE *yylval;/D' \ ! -e '/int yychar,/,/yynerrs;/D' \ ! -e 's/int yydebug = 0;/yydebug = 0;/' \ ! -e 's/[^_]realloc(/PerlMem_realloc(/g' \ ! -e 's/fprintf *( *stderr *,/PerlIO_printf(Perl_debug_log,/g' \ ! -e 's/y\.tab/perly/g' perly.c >perly.tmp ! mv -f perly.tmp perly.c ! mv -f y.tab.h perly.h ! cd x2p ! rm -f y.tab.c y.tab.h ! yacc a2p.y ! mv -f y.tab.c a2p.c ! chmod u+w a2p.c ! sed -e 's/fprintf *( *stderr *,/PerlIO_printf(Perl_debug_log,/g' \ ! -e 's/y\.tab/a2p/g' a2p.c >a2p.tmp ! mv -f a2p.tmp a2p.c ! mv -f y.tab.h a2p.h ! cd .. ! ! There, easy huh? If you find typing all that in difficult then perhaps ! you should reconsider the rm -rf of the perl build directory and ! re extraction of the source tar ball. =item * ! This port doesn't support dynamic loading. Although OS/390 has support ! for DLLs via dllload(), there are some differences that cause problems ! for Perl. (We need a volunteer to write a ext/DynaLoader/dl_dllload.xs ! file). =item * ! A message of the form: ! ! shmat() found. ! and it returns (void *). ! *** WHOA THERE!!! *** ! The recommended value for $d_shmatprototype on this machine was "define"! ! Keep the recommended value? [y] ! ! is nothing to worry about at all. =item * ! Do not turn on the compiler optimization flag "-O". There is a bug in either the optimizer or perl that causes perl to not work correctly when the optimizer is on. *************** *** 85,91 **** Some of the configuration files in /etc used by the networking APIs are either missing or have the wrong names. In particular, make sure that there's either ! an /etc/resolv.conf or and /etc/hosts, so that gethostbyname() works, and make sure that the file /etc/proto has been renamed to /etc/protocol (NOT /etc/protocols, as used by other Unix systems). --- 171,177 ---- Some of the configuration files in /etc used by the networking APIs are either missing or have the wrong names. In particular, make sure that there's either ! an /etc/resolv.conf or an /etc/hosts, so that gethostbyname() works, and make sure that the file /etc/proto has been renamed to /etc/protocol (NOT /etc/protocols, as used by other Unix systems). *************** *** 100,106 **** make make test ! if everything looks ok then: make install --- 186,192 ---- make make test ! if everything looks ok (see the next section for test/IVP diagnosis) then: make install *************** *** 108,158 **** on how you answered the questions that Configure asked and whether or not you have write access to the directories you specified. =head2 Usage Hints When using perl on OS/390 please keep in mind that the EBCDIC and ASCII ! character sets are different. Perl builtin functions that may behave ! differently under EBCDIC are mentioned in the perlport.pod document. ! ! OpenEdition (UNIX System Services) does not (yet) support the #! means ! of script invokation. ! See: head `whence perldoc` for an example of how to use the "eval exec" trick to ask the shell to ! have perl run your scripts for you. ! =head2 Extensions ! You can build xs based extensions to Perl for OS/390 but will need to ! follow the instructions in ExtUtils::MakeMaker for building statically ! linked perl binaries. In most cases people have reported better ! results with GNU make rather than the system's /bin/make. =head1 AUTHORS ! David Fiander and Peter Prymmer. =head1 SEE ALSO ! L, L, L. =head2 Mailing list The Perl Institute (http://www.perl.org/) maintains a perl-mvs mailing list of interest to all folks building and/or ! using perl on EBCDIC platforms. To subscibe, send a message of: subscribe perl-mvs ! to majordomo@perl.org. =head1 HISTORY This document was originally written by David Fiander for the 5.005 release of Perl. ! This document was podified for the 5.005_03 release of perl 11 March 1999. =cut --- 194,361 ---- on how you answered the questions that Configure asked and whether or not you have write access to the directories you specified. + =head2 build anomalies + + "Out of memory!" messages during the build of Perl are most often fixed + by re building the GNU make utility for OS/390 from a source code kit. + + Another memory limiting item to check is your MAXASSIZE parameter in your + 'SYS1.PARMLIB(BPXPRMxx)' data set (note too that as of V2R8 address space + limits can be set on a per user ID basis in the USS segment of a RACF + profile). People have reported successful builds of Perl with MAXASSIZE + parameters as small as 503316480 (and it may be possible to build Perl + with a MAXASSIZE smaller than that). + + Within USS your /etc/profile or $HOME/.profile may limit your ulimit + settings. Check that the following command returns reasonable values: + + ulimit -a + + To conserve memory you should have your compiler modules loaded into the + Link Pack Area (LPA/ELPA) rather than in a link list or step lib. + + If the c89 compiler complains of syntax errors during the build of the + Socket extension then be sure to fix the syntax error in the system + header /usr/include/sys/socket.h. + + =head2 testing anomalies + + The `make test` step runs a Perl Verification Procedure, usually before + installation. You might encounter STDERR messages even during a successful + run of `make test`. Here is a guide to some of the more commonly seen + anomalies: + + =over 4 + + =item * + + A message of the form: + + comp/cpp.............ERROR CBC3191 ./.301989890.c:1 The character $ is not a + valid C source character. + FSUM3065 The COMPILE step ended with return code 12. + FSUM3017 Could not compile .301989890.c. Correct the errors and try again. + ok + + indicates that the t/comp/cpp.t test of Perl's -P command line switch has + passed but that the particular invocation of c89 -E in the cpp script does + not suppress the C compiler check of source code validity. + + =item * + + A message of the form: + + io/openpid...........CEE5210S The signal SIGHUP was received. + CEE5210S The signal SIGHUP was received. + CEE5210S The signal SIGHUP was received. + ok + + indicates that the t/io/openpid.t test of Perl has passed but done so + with extraneous messages on stderr from CEE. + + =item * + + A message of the form: + + lib/ftmp-security....File::Temp::_gettemp: Parent directory (/tmp/) is not safe + (sticky bit not set when world writable?) at lib/ftmp-security.t line 100 + File::Temp::_gettemp: Parent directory (/tmp/) is not safe (sticky bit not + set when world writable?) at lib/ftmp-security.t line 100 + ok + + indicates a problem with the permissions on your /tmp directory within the HFS. + To correct that problem issue the command: + + chmod a+t /tmp + + from an account with write access to the directory entry for /tmp. + + =back + =head2 Usage Hints When using perl on OS/390 please keep in mind that the EBCDIC and ASCII ! character sets are different. See perlebcdic.pod for more on such character ! set issues. Perl builtin functions that may behave differently under ! EBCDIC are also mentioned in the perlport.pod document. ! ! Open Edition (UNIX System Services) from V2R8 onward does support ! #!/path/to/perl script invocation. There is a PTF available from ! IBM for V2R7 that will allow shell/kernel support for #!. USS ! releases prior to V2R7 did not support the #! means of script invocation. ! If you are running V2R6 or earlier then see: head `whence perldoc` for an example of how to use the "eval exec" trick to ask the shell to ! have Perl run your scripts on those older releases of Unix System Services. ! ! =head2 Modules and Extensions ! Pure pure (that is non xs) modules may be installed via the usual: ! perl Makefile.PL ! make ! make test ! make install ! ! You can also build xs based extensions to Perl for OS/390 but will need ! to follow the instructions in ExtUtils::MakeMaker for building ! statically linked perl binaries. In the simplest configurations building ! a static perl + xs extension boils down to: ! ! perl Makefile.PL ! make ! make perl ! make test ! make install ! make -f Makefile.aperl inst_perl MAP_TARGET=perl ! ! In most cases people have reported better results with GNU make rather ! than the system's /bin/make program, whether for plain modules or for ! xs based extensions. =head1 AUTHORS ! David Fiander and Peter Prymmer with thanks to Dennis Longnecker ! and William Raffloer for valuable reports, LPAR and PTF feedback. ! Thanks to Mike MacIsaac and Egon Terwedow for SG24-5944-00. =head1 SEE ALSO ! L, L, L, L. ! ! http://www.mks.com/s390/gnu/index.htm ! ! http://www.redbooks.ibm.com/abstracts/sg245944.html ! ! http://www.s390.ibm.com/products/oe/bpxa1ty1.html#opensrc ! ! http://www.s390.ibm.com/products/oe/portbk/bpxacenv.html ! ! http://www.xray.mpe.mpg.de/mailing-lists/perl-mvs/ =head2 Mailing list The Perl Institute (http://www.perl.org/) maintains a perl-mvs mailing list of interest to all folks building and/or ! using perl on all EBCDIC platforms (not just OS/390). ! To subscribe, send a message of: subscribe perl-mvs ! to majordomo@perl.org. There is a web archive of the mailing list at: ! ! http://www.xray.mpe.mpg.de/mailing-lists/perl-mvs/ =head1 HISTORY This document was originally written by David Fiander for the 5.005 release of Perl. ! This document was podified for the 5.005_03 release of Perl 11 March 1999. ! ! Updated 12 November 2000 for the 5.7.1 release of Perl. =cut + Index: README.posix-bc ####### perl-5.6.1-TRIAL1/ => perl-5.6.1-TRIAL1 *** perl-5.6.1-TRIAL1/README.posix-bc Tue Jul 20 10:17:52 1999 --- perl-5.6.1-TRIAL1/README.posix-bc Mon Nov 27 06:53:42 2000 *************** *** 1,28 **** ! This is a first ported perl for the POSIX subsystem in BS2000 VERSION ! 'V121', OSD V3.1, POSIX Shell V03.1A55. It may work on other ! versions, but that's the one we've tested it on. You may need the following GNU programs in order to install perl: ! gzip: We used version 1.2.4, which could be installed out of the box with one failure during 'make check'. ! bison: The yacc coming with BS2000 POSIX didn't work for us. So we had to use bison. We had to make a few changes to perl in order to use the pure (reentrant) parser of bison. We used version 1.25, but we had to add a few changes due to EBCDIC. ! ! UNPACKING: ! ========== To extract an ASCII tar archive on BS2000 POSIX you need an ASCII filesystem (we used the mountpoint /usr/local/ascii for this). Now ! you extract the archive in the ASCII filesystem without I/O-conversion: cd /usr/local/ascii export IO_CONVERSION=NO --- 1,43 ---- ! This document is written in pod format hence there are punctuation ! characters in in odd places. Do not worry, you've apparently got the ! ASCII->EBCDIC translation worked out correctly. You can read more ! about pod in pod/perlpod.pod or the short summary in the INSTALL file. ! ! =head1 NAME ! ! README.posix-bc - building and installing Perl for BS2000 POSIX. ! ! =head1 SYNOPSIS ! ! This document will help you Configure, build, test and install Perl ! on BS2000 in the POSIX subsystem. ! ! =head1 DESCRIPTION ! ! This is a ported perl for the POSIX subsystem in BS2000 VERSION OSD ! V3.1A. It may work on other versions, but that's the one we've tested ! it on. You may need the following GNU programs in order to install perl: ! =head2 gzip We used version 1.2.4, which could be installed out of the box with one failure during 'make check'. ! =head2 bison The yacc coming with BS2000 POSIX didn't work for us. So we had to use bison. We had to make a few changes to perl in order to use the pure (reentrant) parser of bison. We used version 1.25, but we had to add a few changes due to EBCDIC. ! =head2 Unpacking To extract an ASCII tar archive on BS2000 POSIX you need an ASCII filesystem (we used the mountpoint /usr/local/ascii for this). Now ! you extract the archive in the ASCII filesystem without ! I/O-conversion: cd /usr/local/ascii export IO_CONVERSION=NO *************** *** 30,53 **** You may ignore the error message for the first element of the archive (this doesn't look like a tar archive / skipping to next file...), ! it's only the directory which will be made anyway. After extracting the archive you copy the whole directory tree to your ! EBCDIC filesystem. This time you use I/O-conversion: cd /usr/local/src IO_CONVERSION=YES cp -r /usr/local/ascii/perl5.005_02 ./ ! ! COMPILING: ! ========== There is a "hints" file for posix-bc that specifies the correct values for most things. The major problem is (of course) the EBCDIC character ! set. ! ! Configure did everything except the perl parser. Because of our problems with the native yacc we used GNU bison to generate a pure (=reentrant) parser for perly.y. So our yacc is --- 45,64 ---- You may ignore the error message for the first element of the archive (this doesn't look like a tar archive / skipping to next file...), ! it's only the directory which will be created automatically anyway. After extracting the archive you copy the whole directory tree to your ! EBCDIC filesystem. B: cd /usr/local/src IO_CONVERSION=YES cp -r /usr/local/ascii/perl5.005_02 ./ ! =head2 Compiling There is a "hints" file for posix-bc that specifies the correct values for most things. The major problem is (of course) the EBCDIC character ! set. We have german EBCDIC version. Because of our problems with the native yacc we used GNU bison to generate a pure (=reentrant) parser for perly.y. So our yacc is *************** *** 85,131 **** called byacc to distinguish between the two versions: ln -s /usr/bin/yacc /usr/local/bin/byacc - - We build perl using both GNU make and the native make. ! TESTING: ! ======== ! We still got a few errors during 'make test'. Most of them are the ! result of using bison. Bison prints 'parser error' instead of 'syntax ! error', so we may ignore them. One error in the test op/regexp (and ! op/regexp_noamp) seems a bit critical, the result was an 'Out of ! memory' (core dump with op/regexp_noamp). The following list shows our errors, your results may differ: ! op/misc.............FAILED tests 45-46 ! op/pack.............FAILED tests 58-60 ! op/regexp...........FAILED tests 405-492 (core dump) ! op/regexp_noamp.....FAILED tests 405-492 (core dump) pragma/overload.....FAILED tests 152-153, 170-171 ! pragma/subs.........FAILED tests 1-2 ! pragma/warning......FAILED tests 121, 127, 130, 142 ! lib/cgi-html........dubious, FAILED tests 1-17 (ALL) ! lib/complex.........FAILED tests 264, 484 ! lib/dumper..........FAILED tests MANY ! Failed 7/190 test scripts, 96.32% okay. 234/6549 subtests failed, 96.43% okay. ! ! INSTALLING: ! =========== We have no nroff on BS2000 POSIX (yet), so we ignored any errors while installing the documentation. ! USING PERL: ! =========== BS2000 POSIX doesn't support the shebang notation ! ('#!/usr/local/bin/perl'), so you have to use the following lines instead: : # use perl eval 'exec /usr/local/bin/perl -S $0 ${1+"$@"}' if $running_under_some_shell; --- 96,162 ---- called byacc to distinguish between the two versions: ln -s /usr/bin/yacc /usr/local/bin/byacc + We build perl using GNU make. We tried the native make once and it + worked too. ! =head2 Testing ! We still got a few errors during C. Some of them are the ! result of using bison. Bison prints I instead of I, so we may ignore them. The following list shows our errors, your results may differ: ! op/numconvert.......FAILED tests 1409-1440 ! op/regexp...........FAILED tests 483, 496 ! op/regexp_noamp.....FAILED tests 483, 496 pragma/overload.....FAILED tests 152-153, 170-171 ! pragma/warnings.....FAILED tests 14, 82, 129, 155, 192, 205, 207 ! lib/bigfloat........FAILED tests 351-352, 355 ! lib/bigfltpm........FAILED tests 354-355, 358 ! lib/complex.........FAILED tests 267, 487 ! lib/dumper..........FAILED tests 43, 45 ! Failed 11/231 test scripts, 95.24% okay. 57/10595 subtests failed, 99.46% okay. ! =head2 Install We have no nroff on BS2000 POSIX (yet), so we ignored any errors while installing the documentation. ! =head2 Using Perl BS2000 POSIX doesn't support the shebang notation ! (C<#!/usr/local/bin/perl>), so you have to use the following lines instead: : # use perl eval 'exec /usr/local/bin/perl -S $0 ${1+"$@"}' if $running_under_some_shell; + + =head1 AUTHORS + + Thomas Dorner + + =head1 SEE ALSO + + L, L. + + =head2 Mailing list + + The Perl Institute (http://www.perl.org/) maintains a perl-mvs mailing + list of interest to all folks building and/or using perl on EBCDIC + platforms. To subscribe, send a message of: + + subscribe perl-mvs + + to majordomo@perl.org. + + =head1 HISTORY + + This document was originally written by Thomas Dorner for the 5.005 + release of Perl. + + This document was podified for the 5.6 release of perl 11 July 2000. + + =cut Index: README.solaris ####### perl-5.6.1-TRIAL1/ => perl-5.6.1-TRIAL1 *** perl-5.6.1-TRIAL1/README.solaris Tue May 5 13:32:27 1998 --- perl-5.6.1-TRIAL1/README.solaris Sun Dec 17 20:44:55 2000 *************** *** 0 **** --- 1,522 ---- + If you read this file _as_is_, just ignore the funny characters you + see. It is written in the POD format (see pod/perlpod.pod) which is + specifically designed to be readable as is. + + =head1 NAME + + README.solaris - Perl version 5 on Solaris systems + + =head1 DESCRIPTION + + This document describes various features of Sun's Solaris operating system + that will affect how Perl version 5 (hereafter just perl) is + compiled and/or runs. Some issues relating to the older SunOS 4.x are + also discussed, though they may be out of date. + + For the most part, everything should just work. + + Starting with Solaris 8, perl5.00503 (or higher) is supplied with the + operating system, so you might not even need to build a newer version + of perl at all. The Sun-supplied version is installed in /usr/perl5 + with /usr/bin/perl pointing to /usr/perl5/bin/perl. Do not disturb + that installation unless you really know what you are doing. If you + remove the perl supplied with the OS, there is a good chance you will + render some bits of your system inoperable. If you wish to install a + newer version of perl, install it under a different prefix from + /usr/perl5. Common prefixes to use are /usr/local and /opt/perl. + + You may wish to put your version of perl in the PATH of all users by + changing the link /usr/bin/perl. This is OK, as all Perl scripts + shipped with Solaris use /usr/perl5/bin/perl. + + =head2 Solaris Version Numbers. + + For consistency with common usage, perl's Configure script performs + some minor manipulations on the operating system name and version + number as reported by uname. Here's a partial translation table: + + Sun: perl's Configure: + uname uname -r Name osname osvers + SunOS 4.1.3 Solaris 1.1 sunos 4.1.3 + SunOS 5.6 Solaris 2.6 solaris 2.6 + SunOS 5.8 Solaris 8 solaris 2.8 + + The complete table can be found in the Sun Managers' FAQ + L under + "9.1) Which Sun models run which versions of SunOS?". + + =head1 RESOURCES + + There are many, many source for Solaris information. A few of the + important ones for perl: + + =over 4 + + =item Solaris FAQ + + The Solaris FAQ is available at + L. + + The Sun Managers' FAQ is available at + L + + =item Precompiled Binaries + + Precompiled binaries, links to many sites, and much, much more is + available at L. + + =item Solaris Documentation + + All Solaris documentation is available on-line at L. + + =back + + =head1 SETTING UP + + =head2 File Extraction Problems. + + Be sure to use a tar program compiled under Solaris (not SunOS 4.x) + to extract the perl-5.x.x.tar.gz file. Do not use GNU tar compiled + for SunOS4 on Solaris. (GNU tar compiled for Solaris should be fine.) + When you run SunOS4 binaries on Solaris, the run-time system magically + alters pathnames matching m#lib/locale# so that when tar tries to create + lib/locale.pm, a file named lib/oldlocale.pm gets created instead. + If you found this advice it too late and used a SunOS4-compiled tar + anyway, you must find the incorrectly renamed file and move it back + to lib/locale.pm. + + =head2 Compiler and Related Tools. + + You must use an ANSI C compiler to build perl. Perl can be compiled + with either Sun's add-on C compiler or with gcc. The C compiler that + shipped with SunOS4 will not do. + + =head3 Include /usr/ccs/bin/ in your PATH. + + Several tools needed to build perl are located in /usr/ccs/bin/: ar, + as, ld, and make. Make sure that /usr/ccs/bin/ is in your PATH. + + You need to make sure the following packages are installed + (this info is extracted from the Solaris FAQ): + + for tools (sccs, lex, yacc, make, nm, truss, ld, as): SUNWbtool, + SUNWsprot, SUNWtoo + + for libraries & headers: SUNWhea, SUNWarc, SUNWlibm, SUNWlibms, SUNWdfbh, + SUNWcg6h, SUNWxwinc, SUNWolinc + + for 64 bit development: SUNWarcx, SUNWbtoox, SUNWdplx, SUNWscpux, + SUNWsprox, SUNWtoox, SUNWlmsx, SUNWlmx, SUNWlibCx + + If you are in doubt which package contains a file you are missing, + try to find an installation that has that file. Then do a + + grep /my/missing/file /var/sadm/install/contents + + This will display a line like this: + + /usr/include/sys/errno.h f none 0644 root bin 7471 37605 956241356 SUNWhea + + The last item listed (SUNWhea in this example) is the package you need. + + =head3 Avoid /usr/ucb/cc. + + You don't need to have /usr/ucb/ in your PATH to build perl. If you + want /usr/ucb/ in your PATH anyway, make sure that /usr/ucb/ is NOT + in your PATH before the directory containing the right C compiler. + + =head3 Sun's C Compiler + + If you use Sun's C compiler, make sure the correct directory + (usually /opt/SUNWspro/bin/) is in your PATH (before /usr/ucb/). + + =head3 GCC + + If you use gcc, make sure your installation is recent and + complete. As a point of reference, perl-5.6.0 built fine with + gcc-2.8.1 on both Solaris 2.6 and Solaris 8. You'll be able to + Configure perl with + + sh Configure -Dcc=gcc + + If you have updated your Solaris version, you may also have to update + your GCC. For example, if you are running Solaris 2.6 and your gcc is + installed under /usr/local, check in /usr/local/lib/gcc-lib and make + sure you have the appropriate directory, sparc-sun-solaris2.6/ or + i386-pc-solaris2.6/. If gcc's directory is for a different version of + Solaris than you are running, then you will need to rebuild gcc for + your new version of Solaris. + + You can get a precompiled version of gcc from + L. Make sure you pick up the package for + your Solaris release. + + =head3 GNU as and GNU ld + + The versions of as and ld supplied with Solaris work fine for building + perl. There is normally no need to install the GNU versions. + + If you decide to ignore this advice and use the GNU versions anyway, + then be sure that they are relatively recent. Versions newer than 2.7 + are apparently new enough. Older versions may have trouble with + dynamic loading. + + If your gcc is configured to use GNU as and ld but you want to use the + Solaris ones instead to build perl, then you'll need to add + -B/usr/ccs/bin/ to the gcc command line. One convenient way to do + that is with + + sh Configure -Dcc='gcc -B/usr/ccs/bin/' + + Note that the trailing slash is required. This will result in some + harmless warnings as Configure is run: + + gcc: file path prefix `/usr/ccs/bin/' never used + + These messages may safely be ignored. + (Note that for a SunOS4 system, you must use -B/bin/ instead.) + + Alternatively, you can use the GCC_EXEC_PREFIX environment variable to + ensure that Sun's as and ld are used. Consult your gcc documentation + for further information on the -B option and the GCC_EXEC_PREFIX variable. + + =head3 GNU make + + Sun's make works fine for building perl. + If you wish to use GNU make anyway, be sure that the set-group-id bit is not + set. If it is, then arrange your PATH so that /usr/ccs/bin/make is + before GNU make or else have the system administrator disable the + set-group-id bit on GNU make. + + =head3 Avoid libucb. + + Solaris provides some BSD-compatibility functions in /usr/ucblib/libucb.a. + Perl will not build and run correctly if linked against -lucb since it + contains routines that are incompatible with the standard Solaris libc. + Normally this is not a problem since the solaris hints file prevents + Configure from even looking in /usr/ucblib for libraries, and also + explicitly omits -lucb. + + =head2 Environment + + =head3 PATH + + Make sure your PATH includes the compiler (/opt/SUNWspro/bin/ if you're + using Sun's compiler) as well as /usr/ccs/bin/ to pick up the other + development tools (such as make, ar, as, and ld). Make sure your path + either doesn't include /usr/ucb or that it includes it after the + compiler and compiler tools and other standard Solaris directories. + You definitely don't want /usr/ucb/cc. + + =head3 LD_LIBRARY_PATH + + If you have the LD_LIBRARY_PATH environment variable set, be sure that + it does NOT include /lib or /usr/lib. If you will be building + extensions that call third-party shared libraries (e.g. Berkeley DB) + then make sure that your LD_LIBRARY_PATH environment variable includes + the directory with that library (e.g. /usr/local/lib). + + If you get an error message + + dlopen: stub interception failed + + it is probably because your LD_LIBRARY_PATH environment variable + includes a directory which is a symlink to /usr/lib (such as /lib). + The reason this causes a problem is quite subtle. The file + libdl.so.1.0 actually *only* contains functions which generate 'stub + interception failed' errors! The runtime linker intercepts links to + "/usr/lib/libdl.so.1.0" and links in internal implementations of those + functions instead. [Thanks to Tim Bunce for this explanation.] + + =head1 RUN CONFIGURE. + + See the INSTALL file for general information regarding Configure. + Only Solaris-specific issues are discussed here. Usually, the + defaults should be fine. + + =head2 64-bit Issues. + + See the INSTALL file for general information regarding 64-bit compiles. + In general, the defaults should be fine for most people. + + By default, perl-5.6.0 (or later) is compiled as a 32-bit application + with largefile and long-long support. + + =head3 General 32-bit vs. 64-bit issues. + + Solaris 7 and above will run in either 32 bit or 64 bit mode on SPARC + CPUs, via a reboot. You can build 64 bit apps whilst running 32 bit + mode and vice-versa. 32 bit apps will run under Solaris running in + either 32 or 64 bit mode. 64 bit apps require Solaris to be running + 64 bit mode. + + Existing 32 bit apps are properly known as LP32, i.e. Longs and + Pointers are 32 bit. 64-bit apps are more properly known as LP64. + The discriminating feature of a LP64 bit app is its ability to utilise a + 64-bit address space. It is perfectly possible to have a LP32 bit app + that supports both 64-bit integers (long long) and largefiles (> 2GB), + and this is the default for perl-5.6.0. + + For a more complete explanation of 64-bit issues, see the Solaris 64-bit + Developer's Guide at http://docs.sun.com:80/ab2/coll.45.13/SOL64TRANS/ + + You can detect the OS mode using "isainfo -v", e.g. + + fubar$ isainfo -v # Ultra 30 in 64 bit mode + 64-bit sparcv9 applications + 32-bit sparc applications + + By default, perl will be compiled as a 32-bit application. Unless you + want to allocate more than ~ 4GB of memory inside Perl, you probably + don't need Perl to be a 64-bit app. + + =head3 Large File Suppprt + + For Solaris 2.6 and onwards, there are two different ways for 32-bit + applications to manipulate large files (files whose size is > 2GByte). + (A 64-bit application automatically has largefile support built in + by default.) + + First is the "transitional compilation environment", described in + lfcompile64(5). According to the man page, + + The transitional compilation environment exports all the + explicit 64-bit functions (xxx64()) and types in addition to + all the regular functions (xxx()) and types. Both xxx() and + xxx64() functions are available to the program source. A + 32-bit application must use the xxx64() functions in order + to access large files. See the lf64(5) manual page for a + complete listing of the 64-bit transitional interfaces. + + The transitional compilation environment is obtained with the + following compiler and linker flags: + + getconf LFS64_CFLAGS -D_LARGEFILE64_SOURCE + getconf LFS64_LDFLAG # nothing special needed + getconf LFS64_LIBS # nothing special needed + + Second is the "large file compilation environment", described in + lfcompile(5). According to the man page, + + Each interface named xxx() that needs to access 64-bit entities + to access large files maps to a xxx64() call in the + resulting binary. All relevant data types are defined to be + of correct size (for example, off_t has a typedef definition + for a 64-bit entity). + + An application compiled in this environment is able to use + the xxx() source interfaces to access both large and small + files, rather than having to explicitly utilize the transitional + xxx64() interface calls to access large files. + + Two exceptions are fseek() and ftell(). 32-bit applications should + use fseeko(3C) and ftello(3C). These will get automatically mapped + to fseeko64() and ftello64(). + + The large file compilation environment is obtained with + + getconf LFS_CFLAGS -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 + getconf LFS_LDFLAGS # nothing special needed + getconf LFS_LIBS # nothing special needed + + By default, perl uses the large file compilation environment and + relies on Solaris to do the underlying mapping of interfaces. + + =head3 Building an LP64 Perl + + To compile a 64-bit application on an UltraSparc with a recent Sun Compiler, + you need to use the flag "-xarch=v9". getconf(1) will tell you this, e.g. + + fubar$ getconf -a | grep v9 + XBS5_LP64_OFF64_CFLAGS: -xarch=v9 + XBS5_LP64_OFF64_LDFLAGS: -xarch=v9 + XBS5_LP64_OFF64_LINTFLAGS: -xarch=v9 + XBS5_LPBIG_OFFBIG_CFLAGS: -xarch=v9 + XBS5_LPBIG_OFFBIG_LDFLAGS: -xarch=v9 + XBS5_LPBIG_OFFBIG_LINTFLAGS: -xarch=v9 + _XBS5_LP64_OFF64_CFLAGS: -xarch=v9 + _XBS5_LP64_OFF64_LDFLAGS: -xarch=v9 + _XBS5_LP64_OFF64_LINTFLAGS: -xarch=v9 + _XBS5_LPBIG_OFFBIG_CFLAGS: -xarch=v9 + _XBS5_LPBIG_OFFBIG_LDFLAGS: -xarch=v9 + _XBS5_LPBIG_OFFBIG_LINTFLAGS: -xarch=v9 + + This flag is supported in Sun WorkShop Compilers 5.0 and onwards + (now marketed under the name Forte) when used on Solaris 7 or later on + UltraSparc systems. + + If you are using gcc, you would need to use -mcpu=v9 -m64 instead. This + option is not yet supported as of gcc 2.95.2; from install/SPECIFIC + in that release: + + GCC version 2.95 is not able to compile code correctly for sparc64 + targets. Users of the Linux kernel, at least, can use the sparc32 + program to start up a new shell invocation with an environment that + causes configure to recognize (via uname -a) the system as sparc-*-* + instead. + + All this should be handled automatically by the hints file, if + requested. + + If you do want to be able to allocate more than 4GB memory inside + perl, then you should use the Solaris malloc, since the perl + malloc breaks when dealing with more than 2GB of memory. You can do + this with + + sh Configure -Uusemymalloc + + =head3 Long Doubles. + + As of 5.6.0, long doubles are not working. + + =head2 Threads. + + It is possible to build a threaded version of perl on Solaris. The entire + perl thread implementation is still experimental, however, so beware. + Perl uses the sched_yield(3RT) function. In versions of Solaris up + to 2.6, that function is in -lposix4. Starting with Solaris 7, it is + in -lrt. The hints file should handle adding this automatically. + + =head2 Malloc Issues. + + You should not use perl's malloc if you are building with gcc. There + are reports of core dumps, especially in the PDL module. The problem + appears to go away under -DDEBUGGING, so it has been difficult to + track down. Sun's compiler appears to be ok with or without perl's + malloc. [XXX further investigation is needed here.] + + You should also not use perl's malloc if you are building perl as + an LP64 application, since perl's malloc has trouble allocating more + than 2GB of memory. + + You can avoid perl's malloc by Configuring with + + sh Configure -Uusemymalloc + + [XXX Update hints file.] + + =head1 MAKE PROBLEMS. + + =over 4 + + =item Dynamic Loading Problems With GNU as and GNU ld + + If you have problems with dynamic loading using gcc on SunOS or + Solaris, and you are using GNU as and GNU ld, see the section + L<"GNU as and GNU ld"> above. + + =item ld.so.1: ./perl: fatal: relocation error: + + If you get this message on SunOS or Solaris, and you're using gcc, + it's probably the GNU as or GNU ld problem in the previous item + L<"GNU as and GNU ld">. + + =item dlopen: stub interception failed + + The primary cause of the 'dlopen: stub interception failed' message is + that the LD_LIBRARY_PATH environment variable includes a directory + which is a symlink to /usr/lib (such as /lib). See + L<"LD_LIBRARY_PATH"> above. + + =item #error "No DATAMODEL_NATIVE specified" + + This is a common error when trying to build perl on Solaris 2.6 with a + gcc installation from Solaris 2.5 or 2.5.1. The Solaris header files + changed, so you need to update your gcc installation. You can either + rerun the fixincludes script from gcc or take the opportunity to + update your gcc installation. + + =item sh: ar: not found + + This is a message from your shell telling you that the command 'ar' + was not found. You need to check your PATH environment variable to + make sure that it includes the directory with the 'ar' command. This + is a common problem on Solaris, where 'ar' is in the /usr/ccs/bin/ + directory. + + =back + + =head1 MAKE TEST + + =head2 op/stat.t test 4 + + op/stat.t test 4 may fail if you are on a tmpfs of some sort. + Building in /tmp sometimes shows this behavior. The + test suite detects if you are building in /tmp, but it may not be able + to catch all tmpfs situations. + + =head1 PREBUILT BINARIES. + + You can pick up prebuilt binaries for Solaris from + L, ActiveState L, + and L under the Binaries list at the top of the page. + There are probably other sources as well. Please note that these sites + are under the control of their respective owners, not the perl developers. + + =head1 RUNTIME ISSUES. + + =head2 Limits on Numbers of Open Files. + + The stdio(3C) manpage notes that only 255 files may be opened using + fopen(), and only file descriptors 0 through 255 can be used in a + stream. Since perl calls open() and then fdopen(3C) with the + resulting file descriptor, perl is limited to 255 simultaneous open + files. + + =head1 SOLARIS-SPECIFIC MODULES. + + See the modules under the Solaris:: namespace on CPAN, + L. + + =head1 SOLARIS-SPECIFIC PROBLEMS WITH MODULES. + + =head2 Proc::ProcessTable + + Proc::ProcessTable does not compile on Solaris with perl5.6.0 and higher + if you have LARGEFILES defined. Since largefile support is the + default in 5.6.0 and later, you have to take special steps to use this + module. + + The problem is that various structures visible via procfs use off_t, + and if you compile with largefile support these change from 32 bits to + 64 bits. Thus what you get back from procfs doesn't match up with + the structures in perl, resulting in garbage. See proc(4) for further + discussion. + + A fix for Proc::ProcessTable is to edit Makefile to + explicitly remove the largefile flags from the ones MakeMaker picks up + from Config.pm. This will result in Proc::ProcessTable being built + under the correct environment. Everything should then be OK as long as + Proc::ProcessTable doesn't try to share off_t's with the rest of perl, + or if it does they should be explicitly specified as off64_t. + + =head2 BSD::Resource + + BSD::Resource versions earlier than 1.09 do not compile on Solaris + with perl 5.6.0 and higher, for the same reasons as Proc::ProcessTable. + BSD::Resource versions starting from 1.09 have a workaround for the problem. + + =head2 Net::SSLeay + + Net::SSLeay requires a /dev/urandom to be present. This device is not + part of Solaris. You can either get the package SUNWski (packaged with + several Sun software products, for example the Sun WebServer, which is + part of the Solaris Server Intranet Extension, or the Sun Directory + Services, part of Solaris for ISPs) or download the ANDIrand package + from L. If you use SUNWski, make a + symbolic link /dev/urandom pointing to /dev/random. + + It may be possible to use the Entropy Gathering Daemon (written in + Perl!), available from L. + + =head1 AUTHOR + + The original was written by Andy Dougherty F + drawing heavily on advice from Alan Burlison, Nick Ing-Simmons, Tim Bunce, + and many other Solaris users over the years. + + Please report any errors, updates, or suggestions to F. + + =head1 LAST MODIFIED + + $Id: README.solaris,v 1.4 2000/11/11 20:29:58 doughera Exp $ Index: README.vmesa ####### perl-5.6.1-TRIAL1/ => perl-5.6.1-TRIAL1 *** perl-5.6.1-TRIAL1/README.vmesa Tue Jul 20 10:17:52 1999 --- perl-5.6.1-TRIAL1/README.vmesa Mon Nov 27 06:53:42 2000 *************** *** 62,68 **** If you are interested in the VM and OS/390 ports of perl then see the perl-mvs mailing list: The Perl Institute (http://www.perl.org/) maintains a mailing list of interest to all folks building and/or ! using perl on EBCDIC platforms. To subscibe, send a message of: subscribe perl-mvs --- 62,68 ---- If you are interested in the VM and OS/390 ports of perl then see the perl-mvs mailing list: The Perl Institute (http://www.perl.org/) maintains a mailing list of interest to all folks building and/or ! using perl on EBCDIC platforms. To subscribe, send a message of: subscribe perl-mvs Index: README.vos ####### perl-5.6.1-TRIAL1/ => perl-5.6.1-TRIAL1 *** perl-5.6.1-TRIAL1/README.vos Sun Feb 6 09:13:12 2000 --- perl-5.6.1-TRIAL1/README.vos Sun Dec 17 18:24:45 2000 *************** *** 1,128 **** ! Perl 5 README file for the Stratus VOS operating system. ! Paul Green (Paul_Green@stratus.com) ! February 3, 2000 ! ! ! Introduction ! ------------ ! This is a port of Perl version 5, revision 005-63, to VOS. Perl ! is a scripting or macro language that is popular on many ! systems. See your local computer bookstore for a number of good ! books on Perl. ! ! Most of the Perl features should work on VOS. However, any attempt by perl.pm to call the following unimplemented POSIX functions will result in an error message and an immediate and fatal call to the VOS debugger. They are "dup", "fork", and "waitpid". The lack of these functions pretty much prevents you from starting VOS commands and grabbing their output in perl. The workaround is to run the commands outside of perl, then have ! perl process the output file. - Compiling Perl 5 on VOS - ----------------------- Before you can build Perl 5 on VOS, you need to have or acquire the following additional items. ! 1. The VOS Standard C Compiler and Runtime, or the VOS Standard C ! Cross-Compiler. This is a standard Stratus product. ! 2. The VOS OS TCP/IP product set. While the necessary header ! files are included with VOS POSIX.1, you still need the ! appropriate object files in order to bind perl.pm. This is ! a standard Stratus product. ! ! 3. The VOS POSIX.1 environment. As of this writing, this is ! available on the VOS FTP site. Login anonymously to ! ftp.stratus.com and get the file ! /pub/vos/alpha/posix.save.evf.gz in binary file-transfer ! mode. Or use the Uniform Resource Locator (URL) ! ftp://ftp.stratus.com/pub/vos/alpha/posix.save.evf.gz from ! your web browser. This is not a standard Stratus product. ! ! Instructions for unbundling this file are at ! ftp://ftp.stratus.com/pub/vos/utility/utility.html. ! ! 4. You must compile this version of Perl 5 on VOS Release ! 14.1.0 or higher because some of the perl source files ! contain more than 32,767 source lines. Due to VOS ! release-compatibility rules, this port of perl may not ! execute on VOS Release 12 or earlier. To build perl 5, change to the "vos" subdirectory and type the command "compile_perl -processor X", where X is the processor type (mc68020, i80860, pa7100, pa8000) that you wish to use. Note that code compiled for the pa7100 processor type can ! execute on the PA7100, PA8000, and PA8500 processors, and that ! code compiled for the pa8000 processor type can execute on the ! PA8000 and PA8500 processors. ! Installing Perl 5 on VOS ! ------------------------ ! 1. Create the directory >system>ported>command_library. ! ! 2. Copy the appropriate version of the perl program module to ! this directory. For example, with your current directory ! set to the top-level directory of Perl 5, to install the ! executable program module for the Motorola 68K ! architecture, enter: !copy_file vos>obj>perl.pm >system>ported>command_library>* ! (If you wish to use both Perl version 4 and Perl version 5, ! you must give them different names; for example, perl.pm ! and perl5.pm). ! 3. Create the directory >system>ported>perl>lib. ! 4. Copy all of the files and subdirectories from the lib ! subdirectory into this new directory. For example, with ! the current directory set to the top-level directory of the ! perl distribution, enter: ! !copy_dir lib >system>ported>perl>lib>5.005 ! 5. While there are currently no architecture-specific ! extensions or modules distributed with perl, the following ! directories can be used to hold such files: ! >system>ported>perl>lib>5.005.68k ! >system>ported>perl>lib>5.005.860 ! >system>ported>perl>lib>5.005.7100 ! >system>ported>perl>lib>5.005.8000 ! 6. Site-specific perl extensions and modules can be installed ! in one of two places. Put architecture-independent files ! into: ! >system>ported>perl>lib>site>5.005 ! Put architecture-dependent files into one of the following ! directories: ! >system>ported>perl>lib>site>5.005.68k ! >system>ported>perl>lib>site>5.005.860 ! >system>ported>perl>lib>site>5.005.7100 ! >system>ported>perl>lib>site>5.005.8000 ! 7. You can examine the @INC variable from within a perl program ! to see the order in which Perl searches these directories. ! Unimplemented Features ! ---------------------- ! If Perl 5 attempts to call an unimplemented VOS POSIX.1 function, ! it will print a fatal error message and enter the VOS debugger. ! This error is not recoverable. See vos_dummies.c for a list of ! the unimplemented POSIX.1 functions. To see what functions are ! unimplemented and what the error message looks like, compile and ! execute "test_vos_dummies.c". - Restrictions - ------------ This port of Perl version 5 to VOS prefers Unix-style, slash-separated pathnames over VOS-style greater-than-separated pathnames. VOS-style pathnames should work in most contexts, but --- 1,189 ---- ! If you read this file _as_is_, just ignore the funny characters you ! see. It is written in the POD format (see pod/perlpod.pod) which is ! specially designed to be readable as is. ! ! =head1 NAME ! ! README.vos - Perl for Stratus VOS ! ! =head1 SYNOPSIS ! ! This is a port of Perl version 5, revision 7, to VOS. Perl is a ! scripting or macro language that is popular on many systems. See your ! local computer bookstore for a number of good books on Perl. ! ! =head2 Stratus POSIX Support ! ! Note that there are two different implementations of POSIX.1 ! support on VOS. There is an alpha version of POSIX that is ! available from the Stratus anonymous ftp site ! (ftp://ftp.stratus.com/pub/vos/posix/alpha/alpha.html). There ! is a generally-available version of POSIX that comes with the ! VOS Standard C compiler and C runtime in VOS Release 14.3.0 or ! higher. This port of POSIX will compile and bind with either ! version of POSIX. ! ! Most of the Perl features should work on VOS regardless of which ! version of POSIX that you are using. However, the alpha version ! of POSIX is missing a number of key functions, and therefore any attempt by perl.pm to call the following unimplemented POSIX functions will result in an error message and an immediate and fatal call to the VOS debugger. They are "dup", "fork", and "waitpid". The lack of these functions pretty much prevents you from starting VOS commands and grabbing their output in perl. The workaround is to run the commands outside of perl, then have ! perl process the output file. These functions are all available ! in the generally-available version of POSIX. + =head1 INSTALLING PERL IN VOS + + =head2 Compiling Perl 5 on VOS Before you can build Perl 5 on VOS, you need to have or acquire the following additional items. ! =over 5 ! ! =item 1 ! ! The VOS Standard C Compiler and Runtime, or the VOS Standard C ! Cross-Compiler. This is a standard Stratus product. ! =item 2 ! ! Either the VOS OS TCP/IP or STCP product set. If you are ! building with the alpha version of POSIX you need the OS ! TCP/IP product set. If you are building with the ! generally-available version of POSIX you need the STCP ! product set. These are standard Stratus products. ! ! =item 3 ! ! Either the alpha or generally-available version of the VOS ! POSIX.1 environment. ! ! The alpha version of POSIX.1 support is available on the ! Stratus FTP site. Login anonymously to ftp.stratus.com and ! get the file /pub/vos/posix/alpha/posix.save.evf.gz in ! binary file-transfer mode. Or use the Uniform Resource ! Locator (URL) ! ftp://ftp.stratus.com/pub/vos/alpha/posix.save.evf.gz from ! your web browser. Instructions for unbundling this file ! are at ftp://ftp.stratus.com/pub/vos/utility/utility.html. ! This is not a standard Stratus product. ! ! The generally-available version of POSIX.1 support is ! bundled with the VOS Standard C compiler and Runtime (or ! Cross-Compiler) in VOS Release 14.3.0 or higher. This is a ! standard Stratus product. ! ! =item 4 ! ! You must compile this version of Perl 5 on VOS Release ! 14.1.0 or higher because some of the perl source files ! contain more than 32,767 source lines. Due to VOS ! release-compatibility rules, this port of perl may not ! execute on VOS Release 12 or earlier. ! ! =back To build perl 5, change to the "vos" subdirectory and type the command "compile_perl -processor X", where X is the processor type (mc68020, i80860, pa7100, pa8000) that you wish to use. + Note that the generally-available version of POSIX.1 support is + not available for the mc68020 or i80860 processors. + + You must have purchased the VOS Standard C Cross Compiler in + order to compile perl for a processor type that is different + from the processor type of the module. + Note that code compiled for the pa7100 processor type can ! execute on the PA7100, PA8000, PA8500 and PA8600 processors, and ! that code compiled for the pa8000 processor type can execute on ! the PA8000, PA8500 and PA8600 processors. ! ! =head2 Installing Perl 5 on VOS ! ! =over 4 ! ! =item 1 + Create the directory >system>ported>command_library. ! =item 2 ! ! Copy the appropriate version of the perl program module to ! this directory. For example, with your current directory ! set to the top-level directory of Perl 5, to install the ! executable program module for the Motorola 68K ! architecture, enter: !copy_file vos>obj>perl.pm >system>ported>command_library>* ! (If you wish to use both Perl version 4 and Perl version 5, ! you must give them different names; for example, perl.pm ! and perl5.pm). ! ! =item 3 ! ! Create the directory >system>ported>perl>lib. ! ! =item 4 ! ! Copy all of the files and subdirectories from the lib ! subdirectory into this new directory. For example, with ! the current directory set to the top-level directory of the ! perl distribution, enter: ! ! !copy_dir lib >system>ported>perl>lib>5.7 ! ! =item 5 ! While there are currently no architecture-specific ! extensions or modules distributed with perl, the following ! directories can be used to hold such files: ! >system>ported>perl>lib>5.7.68k ! >system>ported>perl>lib>5.7.860 ! >system>ported>perl>lib>5.7.7100 ! >system>ported>perl>lib>5.7.8000 ! =item 6 ! Site-specific perl extensions and modules can be installed in one of ! two places. Put architecture-independent files into: ! >system>ported>perl>lib>site>5.7 ! Put architecture-dependent files into one of the following ! directories: ! >system>ported>perl>lib>site>5.7.68k ! >system>ported>perl>lib>site>5.7.860 ! >system>ported>perl>lib>site>5.7.7100 ! >system>ported>perl>lib>site>5.7.8000 ! =item 7 ! You can examine the @INC variable from within a perl program ! to see the order in which Perl searches these directories. ! =back + =head1 USING PERL IN VOS ! =head2 Unimplemented Features + If perl is built with the alpha version of VOS POSIX.1 support + and if it attempts to call an unimplemented VOS POSIX.1 + function, it will print a fatal error message and enter the VOS + debugger. This error is not recoverable. See vos_dummies.c for + a list of the unimplemented POSIX.1 functions. To see what + functions are unimplemented and what the error message looks + like, compile and execute "test_vos_dummies.c". + + =head2 Restrictions This port of Perl version 5 to VOS prefers Unix-style, slash-separated pathnames over VOS-style greater-than-separated pathnames. VOS-style pathnames should work in most contexts, but *************** *** 139,151 **** See the file pod/perlport.pod for more information about the VOS port of Perl. - Support Status - -------------- I'm offering this port "as is". You can ask me questions, but I ! can't guarantee I'll be able to answer them; I don't know much ! about Perl itself; I'm still learning that. There are some excellent books available on the Perl language; consult a book seller. ! (end) --- 200,218 ---- See the file pod/perlport.pod for more information about the VOS port of Perl. + =head1 SUPPORT STATUS I'm offering this port "as is". You can ask me questions, but I ! can't guarantee I'll be able to answer them. There are some excellent books available on the Perl language; consult a book seller. ! =head1 AUTHOR ! ! Paul Green (Paul_Green@stratus.com) ! ! =head1 LAST UPDATE ! ! October 24, 2000 ! ! =cut Index: README.win32 ####### perl-5.6.1-TRIAL1/ => perl-5.6.1-TRIAL1 *** perl-5.6.1-TRIAL1/README.win32 Wed Mar 22 21:41:53 2000 --- perl-5.6.1-TRIAL1/README.win32 Mon Dec 18 02:01:46 2000 *************** *** 14,20 **** =head1 DESCRIPTION Before you start, you should glance through the README file ! found in the top-level directory where the Perl distribution was extracted. Make sure you read and understand the terms under which this software is being distributed. --- 14,20 ---- =head1 DESCRIPTION Before you start, you should glance through the README file ! found in the top-level directory to which the Perl distribution was extracted. Make sure you read and understand the terms under which this software is being distributed. *************** *** 28,37 **** You may also want to look at two other options for building a perl that will work on Windows NT: the README.cygwin and ! README.os2 files, which each give a different set of rules to build ! a Perl that will work on Win32 platforms. Those two methods will ! probably enable you to build a more Unix-compatible perl, but you ! will also need to download and use various other build-time and run-time support software described in those files. This set of instructions is meant to describe a so-called "native" --- 28,37 ---- You may also want to look at two other options for building a perl that will work on Windows NT: the README.cygwin and ! README.os2 files, each of which give a different set of rules to ! build a Perl that will work on Win32 platforms. Those two methods ! will probably enable you to build a more Unix-compatible perl, but ! you will also need to download and use various other build-time and run-time support software described in those files. This set of instructions is meant to describe a so-called "native" *************** *** 70,78 **** http://www.cpan.org/authors/id/GSAR/dmake-4.1pl1-win32.zip ! (This is a fixed version of original dmake sources obtained from http://www.wticorp.com/dmake/. As of version 4.1PL1, the original ! sources did not build as shipped, and had various other problems. A patch is included in the above fixed version.) Fetch and install dmake somewhere on your path (follow the instructions --- 70,78 ---- http://www.cpan.org/authors/id/GSAR/dmake-4.1pl1-win32.zip ! (This is a fixed version of the original dmake sources obtained from http://www.wticorp.com/dmake/. As of version 4.1PL1, the original ! sources did not build as shipped and had various other problems. A patch is included in the above fixed version.) Fetch and install dmake somewhere on your path (follow the instructions *************** *** 85,91 **** If the build fails under that shell, try building again with the cmd shell. ! The nmake Makefile also has known incompatibilites with the "command.com" shell that comes with Windows 9x. You will need to use dmake and makefile.mk to build under Windows 9x. --- 85,91 ---- If the build fails under that shell, try building again with the cmd shell. ! The nmake Makefile also has known incompatibilities with the "command.com" shell that comes with Windows 9x. You will need to use dmake and makefile.mk to build under Windows 9x. *************** *** 97,116 **** =item Borland C++ If you are using the Borland compiler, you will need dmake. ! (The make that Borland supplies is seriously crippled, and will not work for MakeMaker builds.) ! See L/"Make"> above. =item Microsoft Visual C++ The nmake that comes with Visual C++ will suffice for building. ! You will need to run the VCVARS32.BAT file usually found somewhere like C:\MSDEV4.2\BIN. This will set your build environment. ! You can also use dmake to build using Visual C++, provided: you set OSRELEASE to "microsft" (or whatever the directory name ! under which the Visual C dmake configuration lives) in your environment, and edit win32/config.vc to change "make=nmake" into "make=dmake". The latter step is only essential if you want to use dmake as your default make for building extensions using MakeMaker. --- 97,116 ---- =item Borland C++ If you are using the Borland compiler, you will need dmake. ! (The make that Borland supplies is seriously crippled and will not work for MakeMaker builds.) ! See L above. =item Microsoft Visual C++ The nmake that comes with Visual C++ will suffice for building. ! You will need to run the VCVARS32.BAT file, usually found somewhere like C:\MSDEV4.2\BIN. This will set your build environment. ! You can also use dmake to build using Visual C++; provided, however, you set OSRELEASE to "microsft" (or whatever the directory name ! under which the Visual C dmake configuration lives) in your environment and edit win32/config.vc to change "make=nmake" into "make=dmake". The latter step is only essential if you want to use dmake as your default make for building extensions using MakeMaker. *************** *** 125,131 **** Make sure you install the binaries that work with MSVCRT.DLL as indicated in the README for the GCC bundle. You may need to set up a few environment ! variables (usually run from a batch file). You also need dmake. See L above on how to get it. --- 125,135 ---- Make sure you install the binaries that work with MSVCRT.DLL as indicated in the README for the GCC bundle. You may need to set up a few environment ! variables (usually ran from a batch file). ! ! The version of gcc-2.95.2-msvcrt.exe released 7 November 1999 left out ! a fix for certain command line quotes, so be sure to download and install ! fixes/quote-fix-msvcrt.exe too. You also need dmake. See L above on how to get it. *************** *** 145,156 **** =item * ! Edit the makefile.mk (or Makefile, if using nmake) and change the values ! of INST_DRV and INST_TOP. You can also enable various build ! flags. These are explained in the makefiles. ! You will have to make sure CCTYPE is set correctly, and CCHOME points ! to wherever you installed your compiler. The default value for CCHOME in the makefiles for Visual C++ may not be correct for some versions. Make sure the default exists --- 149,160 ---- =item * ! Edit the makefile.mk (or Makefile, if you're using nmake) and change ! the values of INST_DRV and INST_TOP. You can also enable various ! build flags. These are explained in the makefiles. ! You will have to make sure that CCTYPE is set correctly and that ! CCHOME points to wherever you installed your compiler. The default value for CCHOME in the makefiles for Visual C++ may not be correct for some versions. Make sure the default exists *************** *** 161,167 **** bundled with the distribution due to US Government restrictions on the export of cryptographic software. Nevertheless, this routine is part of the "libdes" library (written by Eric Young) which is widely ! available worldwide, usually along with SSLeay (for example: "ftp://fractal.mta.ca/pub/crypto/SSLeay/DES/"). Set CRYPT_SRC to the name of the file that implements des_fcrypt(). Alternatively, if you have built a library that contains des_fcrypt(), you can set --- 165,171 ---- bundled with the distribution due to US Government restrictions on the export of cryptographic software. Nevertheless, this routine is part of the "libdes" library (written by Eric Young) which is widely ! available worldwide, usually along with SSLeay (for example, "ftp://fractal.mta.ca/pub/crypto/SSLeay/DES/"). Set CRYPT_SRC to the name of the file that implements des_fcrypt(). Alternatively, if you have built a library that contains des_fcrypt(), you can set *************** *** 193,201 **** Type "dmake test" (or "nmake test"). This will run most of the tests from the testsuite (many tests will be skipped). ! No tests should typically fail when running Windows NT 4.0. Under Windows ! 2000, test 22 in lib/open3.t is known to fail (cause still unknown). Many ! tests will fail under Windows 9x due to the inferior command shell. Some test failures may occur if you use a command shell other than the native "cmd.exe", or if you are building from a path that contains --- 197,205 ---- Type "dmake test" (or "nmake test"). This will run most of the tests from the testsuite (many tests will be skipped). ! There should be no test failures when running under Windows NT 4.0 or ! Windows 2000. Many tests I fail under Windows 9x due to the inferior ! command shell. Some test failures may occur if you use a command shell other than the native "cmd.exe", or if you are building from a path that contains *************** *** 208,214 **** arising from the inability to find the Borland Runtime DLLs on the system default path. You will need to copy the DLLs reported by the messages from where Borland chose to install it, into the Windows system directory ! (usually somewhere like C:\WINNT\SYSTEM32), and rerun the test. Please report any other failures as described under L. --- 212,218 ---- arising from the inability to find the Borland Runtime DLLs on the system default path. You will need to copy the DLLs reported by the messages from where Borland chose to install it, into the Windows system directory ! (usually somewhere like C:\WINNT\SYSTEM32) and rerun the test. Please report any other failures as described under L. *************** *** 220,226 **** C<$INST_TOP\$VERSION\lib\pod> and HTML versions of the same under C<$INST_TOP\$VERSION\lib\pod\html>. To use the Perl you just installed, you will need to add two components to your PATH environment variable, ! C<$INST_TOP\$VERSION\bin>, and C<$INST_TOP\$VERSION\bin\$ARCHNAME>. For example: set PATH c:\perl\5.6.0\bin;c:\perl\5.6.0\bin\MSWin32-x86;%PATH% --- 224,230 ---- C<$INST_TOP\$VERSION\lib\pod> and HTML versions of the same under C<$INST_TOP\$VERSION\lib\pod\html>. To use the Perl you just installed, you will need to add two components to your PATH environment variable, ! C<$INST_TOP\$VERSION\bin> and C<$INST_TOP\$VERSION\bin\$ARCHNAME>. For example: set PATH c:\perl\5.6.0\bin;c:\perl\5.6.0\bin\MSWin32-x86;%PATH% *************** *** 283,311 **** shells found in UNIX environments, you will be less than pleased with what Windows offers by way of a command shell. ! The crucial thing to understand about the "cmd" shell (which is ! the default on Windows NT) is that it does not do any wildcard ! expansions of command-line arguments (so wildcards need not be ! quoted). It also provides only rudimentary quoting. The only ! (useful) quote character is the double quote ("). It can be used to ! protect spaces in arguments and other special characters. The ! Windows NT documentation has almost no description of how the quoting rules are implemented, but here are some general observations ! based on experiments: The shell breaks arguments at spaces and ! passes them to programs in argc/argv. Doublequotes can be used ! to prevent arguments with spaces in them from being split up. ! You can put a double quote in an argument by escaping it with ! a backslash and enclosing the whole argument within double quotes. ! The backslash and the pair of double quotes surrounding the ! argument will be stripped by the shell. ! ! The file redirection characters "<", ">", and "|" cannot be quoted ! by double quotes (there are probably more such). Single quotes ! will protect those three file redirection characters, but the ! single quotes don't get stripped by the shell (just to make this ! type of quoting completely useless). The caret "^" has also ! been observed to behave as a quoting character (and doesn't get ! stripped by the shell also). Here are some examples of usage of the "cmd" shell: --- 287,328 ---- shells found in UNIX environments, you will be less than pleased with what Windows offers by way of a command shell. ! The crucial thing to understand about the Windows environment is that ! the command line you type in is processed twice before Perl sees it. ! First, your command shell (usually CMD.EXE on Windows NT, and ! COMMAND.COM on Windows 9x) preprocesses the command line, to handle ! redirection, environment variable expansion, and location of the ! executable to run. Then, the perl executable splits the remaining ! command line into individual arguments, using the C runtime library ! upon which Perl was built. ! ! It is particularly important to note that neither the shell nor the C ! runtime do any wildcard expansions of command-line arguments (so ! wildcards need not be quoted). Also, the quoting behaviours of the ! shell and the C runtime are rudimentary at best (and may, if you are ! using a non-standard shell, be inconsistent). The only (useful) quote ! character is the double quote ("). It can be used to protect spaces ! and other special characters in arguments. ! ! The Windows NT documentation has almost no description of how the quoting rules are implemented, but here are some general observations ! based on experiments: The C runtime breaks arguments at spaces and ! passes them to programs in argc/argv. Double quotes can be used to ! prevent arguments with spaces in them from being split up. You can ! put a double quote in an argument by escaping it with a backslash and ! enclosing the whole argument within double quotes. The backslash and ! the pair of double quotes surrounding the argument will be stripped by ! the C runtime. ! ! The file redirection characters "<", ">", and "|" can be quoted by ! double quotes (although there are suggestions that this may not always ! be true). Single quotes are not treated as quotes by the shell or ! the C runtime, they don't get stripped by the shell (just to make ! this type of quoting completely useless). The caret "^" has also ! been observed to behave as a quoting character, but this appears ! to be a shell feature, and the caret is not stripped from the command ! line, so Perl still sees it (and the C runtime phase does not treat ! the caret as a quote character). Here are some examples of usage of the "cmd" shell: *************** *** 345,350 **** --- 362,374 ---- Discovering the usefulness of the "command.com" shell on Windows 9x is left as an exercise to the reader :) + One particularly pernicious problem with the 4NT command shell for + Windows NT is that it (nearly) always treats a % character as indicating + that environment variable expansion is needed. Under this shell, it is + therefore important to always double any % characters which you want + Perl to see (for example, for hash variables), even when they are + quoted. + =item Building Extensions The Comprehensive Perl Archive Network (CPAN) offers a wealth *************** *** 366,377 **** where $MAKE is whatever 'make' program you have configured perl to use. Use "perl -V:make" to find out what this is. Some extensions ! may not provide a testsuite (so "$MAKE test" may not do anything, or fail), but most serious ones do. It is important that you use a supported 'make' program, and ensure Config.pm knows about it. If you don't have nmake, you can ! either get dmake from the location mentioned earlier, or get an old version of nmake reportedly available from: ftp://ftp.microsoft.com/Softlib/MSLFILES/nmake15.exe --- 390,401 ---- where $MAKE is whatever 'make' program you have configured perl to use. Use "perl -V:make" to find out what this is. Some extensions ! may not provide a testsuite (so "$MAKE test" may not do anything or fail), but most serious ones do. It is important that you use a supported 'make' program, and ensure Config.pm knows about it. If you don't have nmake, you can ! either get dmake from the location mentioned earlier or get an old version of nmake reportedly available from: ftp://ftp.microsoft.com/Softlib/MSLFILES/nmake15.exe *************** *** 419,429 **** alternate shell that *does* expand wildcards. Instead, the following solution works rather well. The nice things ! about it: 1) you can start using it right away 2) it is more powerful, ! because it will do the right thing with a pattern like */*/*.c ! 3) you can decide whether you do/don't want to use it 4) you can ! extend the method to add any customizations (or even entirely ! different kinds of wildcard expansion). C:\> copy con c:\perl\lib\Wild.pm # Wild.pm - emulate shell @ARGV expansion on shells that don't --- 443,453 ---- alternate shell that *does* expand wildcards. Instead, the following solution works rather well. The nice things ! about it are 1) you can start using it right away; 2) it is more ! powerful, because it will do the right thing with a pattern like ! */*/*.c; 3) you can decide whether you do/don't want to use it; and ! 4) you can extend the method to add any customizations (or even ! entirely different kinds of wildcard expansion). C:\> copy con c:\perl\lib\Wild.pm # Wild.pm - emulate shell @ARGV expansion on shells that don't *************** *** 465,471 **** be used under the Activeware port of Perl, which used to be the only native port for the Win32 platform. Since the Activeware port does not have adequate support for Perl's extension building tools, these ! extensions typically do not support those tools either, and therefore cannot be built using the generic steps shown in the previous section. To ensure smooth transitioning of existing code that uses the --- 489,495 ---- be used under the Activeware port of Perl, which used to be the only native port for the Win32 platform. Since the Activeware port does not have adequate support for Perl's extension building tools, these ! extensions typically do not support those tools either and, therefore, cannot be built using the generic steps shown in the previous section. To ensure smooth transitioning of existing code that uses the *************** *** 521,527 **** refer to all the command line arguments, so you may need to make sure that construct works in batch files. As of this writing, 4DOS/NT users will need a "ParameterChar = *" statement in their ! 4NT.INI file, or will need to execute "setdos /p*" in the 4DOS/NT startup file to enable this to work. =item 3 --- 545,551 ---- refer to all the command line arguments, so you may need to make sure that construct works in batch files. As of this writing, 4DOS/NT users will need a "ParameterChar = *" statement in their ! 4NT.INI file or will need to execute "setdos /p*" in the 4DOS/NT startup file to enable this to work. =item 3 *************** *** 575,581 **** L, and a few are not implemented at all. To avoid surprises, particularly if you have had prior exposure to Perl in other operating environments or if you intend to write code ! that will be portable to other environments, see L for a reasonably definitive list of these differences. Not all extensions available from CPAN may build or work properly --- 599,605 ---- L, and a few are not implemented at all. To avoid surprises, particularly if you have had prior exposure to Perl in other operating environments or if you intend to write code ! that will be portable to other environments. See L for a reasonably definitive list of these differences. Not all extensions available from CPAN may build or work properly *************** *** 600,610 **** =over 4 ! Gary Ng E71564.1743@CompuServe.COME ! Gurusamy Sarathy Egsar@activestate.comE ! Nick Ing-Simmons Enick@ni-s.u-net.comE =back --- 624,634 ---- =over 4 ! =item Gary Ng E71564.1743@CompuServe.COME ! =item Gurusamy Sarathy Egsar@activestate.comE ! =item Nick Ing-Simmons Enick@ni-s.u-net.comE =back Index: Todo ####### perl-5.6.1-TRIAL1/ => perl-5.6.1-TRIAL1 *** perl-5.6.1-TRIAL1/Todo Wed Mar 22 08:43:20 2000 --- perl-5.6.1-TRIAL1/Todo Sun Dec 17 15:50:56 2000 *************** *** 47,56 **** to be used in re-entrant (=multithreaded) code Icky things: the _r API is not standardized and the _r-forms require per-thread data to store their state - memory profiler: turn malloc.c:Perl_get_mstats() into - an extension (Devel::MProf?) that would return the malloc - stats in a nice Perl datastructure (also a simple interface - to return just the grand total would be good) cross-compilation support host vs target: compile in the host, get the executable to the target, get the possible input files to the target, --- 47,52 ---- Index: Todo-5.6 ####### perl-5.6.1-TRIAL1/ => perl-5.6.1-TRIAL1 *** perl-5.6.1-TRIAL1/Todo-5.6 Wed Mar 22 08:44:35 2000 --- perl-5.6.1-TRIAL1/Todo-5.6 Sun Dec 17 14:40:01 2000 *************** *** 12,18 **** eliminate need for "use utf8;" autoload byte.pm when byte:: is seen by the parser check uv_to_utf8() calls for buffer overflow ! (see also "Locales", "Regexen", and "Miscellaneous") Multi-threading support "use Thread;" under useithreads --- 12,36 ---- eliminate need for "use utf8;" autoload byte.pm when byte:: is seen by the parser check uv_to_utf8() calls for buffer overflow ! make \uXXXX (and \u{XXXX}?) where XXXX are hex digits ! to work similarly to Unicode tech reports and Java ! notation \uXXXX (and already existing \x{XXXX))? ! more than four hexdigits? make also \U+XXXX work? ! overloadable regex assertions? e.g. in Thai \b cannot ! be deduced by any simple character class boundary rules, ! word boundaries must algorithmically computed ! ! see ext/Encode/Todo for notes and references about proper detection ! of malformed UTF-8 ! ! SCSU? http://www.unicode.org/unicode/reports/tr6/ ! Collation? http://www.unicode.org/unicode/reports/tr10/ ! Normalization? http://www.unicode.org/unicode/reports/tr15/ ! EBCDIC? http://www.unicode.org/unicode/reports/tr16/ ! Regexes? http://www.unicode.org/unicode/reports/tr18/ ! Case Mappings? http://www.unicode.org/unicode/reports/tr21/ ! ! See also "Locales", "Regexen", and "Miscellaneous". Multi-threading support "use Thread;" under useithreads *************** *** 39,55 **** API-space: complete the list of things that constitute public api Configure - fix the vicious cyclic multidependency of cc <-> libpth <-> loclibpth - libswanted <-> usethreads <-> use64bitint <-> use64bitall <-> - uselargefiles <-> ... make configuring+building away from source directory work (VPATH et al) this is related to: cross-compilation configuring (see Todo) _r support (see Todo for mode detailed description) POSIX 1003.1 1996 Edition support--realtime stuff: POSIX semaphores, message queues, shared memory, realtime clocks, timers, signals (the metaconfig units mostly already exist for these) UNIX98 support: reader-writer locks, realtime/asynchronous IO IPv6 support: see RFC2292, RFC2553 Long doubles figure out where the PV->NV->PV conversion gets it wrong at least --- 57,74 ---- API-space: complete the list of things that constitute public api Configure make configuring+building away from source directory work (VPATH et al) this is related to: cross-compilation configuring (see Todo) _r support (see Todo for mode detailed description) POSIX 1003.1 1996 Edition support--realtime stuff: POSIX semaphores, message queues, shared memory, realtime clocks, timers, signals (the metaconfig units mostly already exist for these) + PREFERABLY AS AN EXTENSION UNIX98 support: reader-writer locks, realtime/asynchronous IO + PREFERABLY AS AN EXTENSION IPv6 support: see RFC2292, RFC2553 + PREFERABLY AS AN EXTENSION + there already is Socket6 in CPAN Long doubles figure out where the PV->NV->PV conversion gets it wrong at least *************** *** 60,65 **** --- 79,85 ---- 64-bit support Configure probe for quad_t, uquad_t, and (argh) u_quad_t, they might be in some systems the only thing working as quadtype and uquadtype. + more pain: long_long, u_long_long. Locales deprecate traditional/legacy locales? *************** *** 67,81 **** figure out how to support Unicode locales suggestion: integrate the IBM Classes for Unicode (ICU) http://oss.software.ibm.com/developerworks/opensource/icu/project/ ! and check out also the Locale Converter: http://alphaworks.ibm.com/tech/localeconverter ! ICU is "portable, open-source Unicode library with: ! charset-independent locales (with multiple locales simultaneously ! supported in same thread; character conversions; formatting/parsing ! for numbers, currencies, date/time and messages; message catalogs ! (resources) ; transliteration, collation, normalization, and text ! boundaries (grapheme, word, line-break))". ! There is also 'iconv', either from XPG4 or GNU (glibc). iconv is about character set conversions. Either ICU or iconv would be valuable to get integrated into Perl, Configure already probes for libiconv and . --- 87,102 ---- figure out how to support Unicode locales suggestion: integrate the IBM Classes for Unicode (ICU) http://oss.software.ibm.com/developerworks/opensource/icu/project/ ! ICU is "portable, open-source Unicode library with: ! charset-independent locales (with multiple locales ! simultaneously supported in same thread; character ! conversions; formatting/parsing for numbers, currencies, ! date/time and messages; message catalogs (resources); ! transliteration, collation, normalization, and text ! boundaries (grapheme, word, line-break))". ! Check out also the Locale Converter: http://alphaworks.ibm.com/tech/localeconverter ! There is also the iconv interface, either from XPG4 or GNU (glibc). iconv is about character set conversions. Either ICU or iconv would be valuable to get integrated into Perl, Configure already probes for libiconv and . *************** *** 101,106 **** --- 122,130 ---- this is also a part of the Unicode 3.0: http://www.unicode.org/unicode/uni2book/u2.html executive summary: there are several different levels of 'equivalence' + trie optimization: factor out common suffixes (and prefixes?) + from |-alternating groups (both for exact strings and character + classes, use lookaheads?) approximate matching Security *************** *** 120,141 **** work out DLL versioning Miscellaneous add new modules (Archive::Tar, Compress::Zlib, CPAN::FTP?) sub-second sleep()? alarm()? time()? (integrate Time::HiRes? Configure doesn't yet probe for usleep/nanosleep/ualarm but the units exist) floating point handling: nans, infinities, fp exception masks, etc. ! at least the following interfaces exist: fp_classify(), fp_class(), ! class(), isnan(), isinf(), isfinite(), finite(), isnormal(), ! ordered(), fp_setmask(), fp_getmask(), fp_setround(), fp_getround(), ! ieeefp.h, fp_class.h. There are metaconfig units for most of these. ! Search for ifdef __osf__ in pp.c to find a temporary fix that ! needs to be done right. fix the basic arithmetics (+ - * / %) to preserve IVness/UVness if ! both arguments are IVs/UVs replace pod2html with new PodtoHtml? (requires other modules from CPAN) automate testing with large parts of CPAN - Unicode collation? http://www.unicode.org/unicode/reports/tr10/ turn Cwd into an XS module? (Configure already probes for getcwd()) mmap for speeding up input? (Configure already probes for the mmap family) sendmsg, recvmsg? (Configure doesn't probe for these but the units exist) --- 144,170 ---- work out DLL versioning Miscellaneous + introduce @( and @) because group names can have spaces add new modules (Archive::Tar, Compress::Zlib, CPAN::FTP?) sub-second sleep()? alarm()? time()? (integrate Time::HiRes? Configure doesn't yet probe for usleep/nanosleep/ualarm but the units exist) floating point handling: nans, infinities, fp exception masks, etc. ! At least the following interfaces exist: fp_classify(), fp_class(), ! class(), isinf(), isfinite(), finite(), isnormal(), unordered(), ! , (there are metaconfig units for all these), ! fp_setmask(), fp_getmask(), fp_setround(), fp_getround() ! (no metaconfig units yet for these). ! Don't forget finitel(), fp_classl(), fp_class_l(), (yes, both do, ! unfortunately, exist), and unorderedl(). ! PREFERABLY AS AN EXTENSION. ! As of 5.6.1 there is cpp macro Perl_isnan(). fix the basic arithmetics (+ - * / %) to preserve IVness/UVness if ! both arguments are IVs/UVs: it sucks that one cannot see ! the 'carry flag' (or equivalent) of the CPU from C, ! C is too high-level... replace pod2html with new PodtoHtml? (requires other modules from CPAN) automate testing with large parts of CPAN turn Cwd into an XS module? (Configure already probes for getcwd()) mmap for speeding up input? (Configure already probes for the mmap family) sendmsg, recvmsg? (Configure doesn't probe for these but the units exist) *************** *** 154,156 **** --- 183,187 ---- spot-check all new modules for completeness better docs for pack()/unpack() reorg tutorials vs. reference sections + make roffitall to be dynamical about its pods and libs + Index: av.c ####### perl-5.6.1-TRIAL1/ => perl-5.6.1-TRIAL1 *** perl-5.6.1-TRIAL1/av.c Sun Mar 5 00:01:33 2000 --- perl-5.6.1-TRIAL1/av.c Sun Dec 17 20:44:56 2000 *************** *** 554,559 **** --- 554,560 ---- register I32 i; register SV **ary; MAGIC* mg; + I32 slide; if (!av || num <= 0) return; *************** *** 591,596 **** --- 592,600 ---- } if (num) { i = AvFILLp(av); + /* Create extra elements */ + slide = i > 0 ? i : 0; + num += slide; av_extend(av, i + num); AvFILLp(av) += num; ary = AvARRAY(av); *************** *** 598,603 **** --- 602,611 ---- do { ary[--num] = &PL_sv_undef; } while (num); + /* Make extra elements into a buffer */ + AvMAX(av) -= slide; + AvFILLp(av) -= slide; + SvPVX(av) = (char*)(AvARRAY(av) + slide); } } *************** *** 661,666 **** --- 669,682 ---- return AvFILL(av); } + /* + =for apidoc av_fill + + Ensure than an array has a given number of elements, equivalent to + Perl's C<$#array = $fill;>. + + =cut + */ void Perl_av_fill(pTHX_ register AV *av, I32 fill) { *************** *** 708,713 **** --- 724,737 ---- (void)av_store(av,fill,&PL_sv_undef); } + /* + =for apidoc av_delete + + Deletes the element indexed by C from the array. Returns the + deleted element. C is currently ignored. + + =cut + */ SV * Perl_av_delete(pTHX_ AV *av, I32 key, I32 flags) { *************** *** 758,767 **** } /* ! * This relies on the fact that uninitialized array elements ! * are set to &PL_sv_undef. ! */ bool Perl_av_exists(pTHX_ AV *av, I32 key) { --- 782,796 ---- } /* ! =for apidoc av_exists ! ! Returns true if the element indexed by C has been initialized. ! ! This relies on the fact that uninitialized array elements are set to ! C<&PL_sv_undef>. + =cut + */ bool Perl_av_exists(pTHX_ AV *av, I32 key) { *************** *** 775,783 **** if (SvRMAGICAL(av)) { if (mg_find((SV*)av,'P') || mg_find((SV*)av,'D')) { SV *sv = sv_newmortal(); mg_copy((SV*)av, sv, 0, key); ! magic_existspack(sv, mg_find(sv, 'p')); ! return SvTRUE(sv); } } if (key <= AvFILLp(av) && AvARRAY(av)[key] != &PL_sv_undef --- 804,817 ---- if (SvRMAGICAL(av)) { if (mg_find((SV*)av,'P') || mg_find((SV*)av,'D')) { SV *sv = sv_newmortal(); + MAGIC *mg; + mg_copy((SV*)av, sv, 0, key); ! mg = mg_find(sv, 'p'); ! if (mg) { ! magic_existspack(sv, mg); ! return SvTRUE(sv); ! } } } if (key <= AvFILLp(av) && AvARRAY(av)[key] != &PL_sv_undef Index: av.h ####### perl-5.6.1-TRIAL1/ => perl-5.6.1-TRIAL1 *** perl-5.6.1-TRIAL1/av.h Sun Feb 6 11:32:59 2000 --- perl-5.6.1-TRIAL1/av.h Mon Oct 16 01:21:59 2000 *************** *** 32,39 **** * real if the array needs to be modified in some way. Functions that * modify fake AVs check both flags to call av_reify() as appropriate. * ! * Note that the Perl stack has neither flag set. (Thus, items that go ! * on the stack are never refcounted.) * * These internal details are subject to change any time. AV * manipulations external to perl should not care about any of this. --- 32,39 ---- * real if the array needs to be modified in some way. Functions that * modify fake AVs check both flags to call av_reify() as appropriate. * ! * Note that the Perl stack and @DB::args have neither flag set. (Thus, ! * items that go on the stack are never refcounted.) * * These internal details are subject to change any time. AV * manipulations external to perl should not care about any of this. Index: bytecode.pl ####### perl-5.6.1-TRIAL1/ => perl-5.6.1-TRIAL1 *** perl-5.6.1-TRIAL1/bytecode.pl Tue Mar 7 01:29:53 2000 --- perl-5.6.1-TRIAL1/bytecode.pl Mon Nov 27 09:34:27 2000 *************** *** 13,19 **** # Nullsv *must* come first in the following so that the condition # ($$sv == 0) can continue to be used to test (sv == Nullsv). ! my @specialsv = qw(Nullsv &PL_sv_undef &PL_sv_yes &PL_sv_no); my (%alias_from, $from, $tos); while (($from, $tos) = each %alias_to) { --- 13,19 ---- # Nullsv *must* come first in the following so that the condition # ($$sv == 0) can continue to be used to test (sv == Nullsv). ! my @specialsv = qw(Nullsv &PL_sv_undef &PL_sv_yes &PL_sv_no pWARN_ALL pWARN_NONE); my (%alias_from, $from, $tos); while (($from, $tos) = each %alias_to) { *************** *** 82,88 **** #include "bytecode.h" ! static int optype_size[] = { EOT my $i = 0; for ($i = 0; $i < @optype - 1; $i++) { --- 82,88 ---- #include "bytecode.h" ! static const int optype_size[] = { EOT my $i = 0; for ($i = 0; $i < @optype - 1; $i++) { *************** *** 92,124 **** print BYTERUN_C <<'EOT'; }; - static SV *specialsv_list[4]; - - static int bytecode_iv_overflows = 0; - static SV *bytecode_sv; - static XPV bytecode_pv; - static void **bytecode_obj_list; - static I32 bytecode_obj_list_fill = -1; - void * ! bset_obj_store(pTHXo_ void *obj, I32 ix) { ! if (ix > bytecode_obj_list_fill) { ! if (bytecode_obj_list_fill == -1) ! New(666, bytecode_obj_list, ix + 1, void*); ! else ! Renew(bytecode_obj_list, ix + 1, void*); ! bytecode_obj_list_fill = ix; } ! bytecode_obj_list[ix] = obj; return obj; } void ! byterun(pTHXo_ struct bytestream bs) { dTHR; ! int insn; EOT --- 92,119 ---- print BYTERUN_C <<'EOT'; }; void * ! bset_obj_store(pTHXo_ struct byteloader_state *bstate, void *obj, I32 ix) { ! if (ix > bstate->bs_obj_list_fill) { ! Renew(bstate->bs_obj_list, ix + 32, void*); ! bstate->bs_obj_list_fill = ix + 31; } ! bstate->bs_obj_list[ix] = obj; return obj; } void ! byterun(pTHXo_ register struct byteloader_state *bstate) { dTHR; ! register int insn; ! U32 ix; ! SV *specialsv_list[6]; ! ! BYTECODE_HEADER_CHECK; /* croak if incorrect platform */ ! New(666, bstate->bs_obj_list, 32, void*); /* set op objlist */ ! bstate->bs_obj_list_fill = 31; EOT *************** *** 198,210 **** # open(BYTERUN_H, ">ext/ByteLoader/byterun.h") or die "ext/ByteLoader/byterun.h: $!"; print BYTERUN_H $c_header, <<'EOT'; ! struct bytestream { ! void *data; ! int (*pfgetc)(void *); ! int (*pfread)(char *, size_t, size_t, void *); ! void (*pfreadpv)(U32, void *, XPV *); }; enum { EOT --- 193,217 ---- # open(BYTERUN_H, ">ext/ByteLoader/byterun.h") or die "ext/ByteLoader/byterun.h: $!"; print BYTERUN_H $c_header, <<'EOT'; ! struct byteloader_fdata { ! SV *datasv; ! int next_out; ! int idx; }; + struct byteloader_state { + struct byteloader_fdata *bs_fdata; + SV *bs_sv; + void **bs_obj_list; + int bs_obj_list_fill; + XPV bs_pv; + int bs_iv_overflows; + }; + + int bl_getc(struct byteloader_fdata *); + int bl_read(struct byteloader_fdata *, char *, size_t, size_t); + extern void byterun(pTHXo_ struct byteloader_state *); + enum { EOT *************** *** 233,250 **** } printf BYTERUN_H " OPt_%s\t\t/* %d */\n};\n\n", $optype[$i], $i; - print BYTERUN_H <<'EOT'; - extern void byterun(pTHXo_ struct bytestream bs); - - #define INIT_SPECIALSV_LIST STMT_START { \ - EOT - for ($i = 0; $i < @specialsv; $i++) { - print BYTERUN_H "\tPL_specialsv_list[$i] = $specialsv[$i]; \\\n"; - } - print BYTERUN_H <<'EOT'; - } STMT_END - EOT - # # Finish off insn_data and create array initialisers in Asmdata.pm # --- 240,245 ---- *************** *** 294,378 **** #opcode lvalue argtype flags # ret none none x ! ldsv bytecode_sv svindex ldop PL_op opindex ! stsv bytecode_sv U32 s stop PL_op U32 s ! ldspecsv bytecode_sv U8 x ! newsv bytecode_sv U8 x newop PL_op U8 x newopn PL_op U8 x newpv none PV ! pv_cur bytecode_pv.xpv_cur STRLEN ! pv_free bytecode_pv none x ! sv_upgrade bytecode_sv char x ! sv_refcnt SvREFCNT(bytecode_sv) U32 ! sv_refcnt_add SvREFCNT(bytecode_sv) I32 x ! sv_flags SvFLAGS(bytecode_sv) U32 ! xrv SvRV(bytecode_sv) svindex ! xpv bytecode_sv none x ! xiv32 SvIVX(bytecode_sv) I32 ! xiv64 SvIVX(bytecode_sv) IV64 ! xnv SvNVX(bytecode_sv) NV ! xlv_targoff LvTARGOFF(bytecode_sv) STRLEN ! xlv_targlen LvTARGLEN(bytecode_sv) STRLEN ! xlv_targ LvTARG(bytecode_sv) svindex ! xlv_type LvTYPE(bytecode_sv) char ! xbm_useful BmUSEFUL(bytecode_sv) I32 ! xbm_previous BmPREVIOUS(bytecode_sv) U16 ! xbm_rare BmRARE(bytecode_sv) U8 ! xfm_lines FmLINES(bytecode_sv) I32 ! xio_lines IoLINES(bytecode_sv) long ! xio_page IoPAGE(bytecode_sv) long ! xio_page_len IoPAGE_LEN(bytecode_sv) long ! xio_lines_left IoLINES_LEFT(bytecode_sv) long ! xio_top_name IoTOP_NAME(bytecode_sv) pvcontents ! xio_top_gv *(SV**)&IoTOP_GV(bytecode_sv) svindex ! xio_fmt_name IoFMT_NAME(bytecode_sv) pvcontents ! xio_fmt_gv *(SV**)&IoFMT_GV(bytecode_sv) svindex ! xio_bottom_name IoBOTTOM_NAME(bytecode_sv) pvcontents ! xio_bottom_gv *(SV**)&IoBOTTOM_GV(bytecode_sv) svindex ! xio_subprocess IoSUBPROCESS(bytecode_sv) short ! xio_type IoTYPE(bytecode_sv) char ! xio_flags IoFLAGS(bytecode_sv) char ! xcv_stash *(SV**)&CvSTASH(bytecode_sv) svindex ! xcv_start CvSTART(bytecode_sv) opindex ! xcv_root CvROOT(bytecode_sv) opindex ! xcv_gv *(SV**)&CvGV(bytecode_sv) svindex ! xcv_file CvFILE(bytecode_sv) pvcontents ! xcv_depth CvDEPTH(bytecode_sv) long ! xcv_padlist *(SV**)&CvPADLIST(bytecode_sv) svindex ! xcv_outside *(SV**)&CvOUTSIDE(bytecode_sv) svindex ! xcv_flags CvFLAGS(bytecode_sv) U16 ! av_extend bytecode_sv SSize_t x ! av_push bytecode_sv svindex x ! xav_fill AvFILLp(bytecode_sv) SSize_t ! xav_max AvMAX(bytecode_sv) SSize_t ! xav_flags AvFLAGS(bytecode_sv) U8 ! xhv_riter HvRITER(bytecode_sv) I32 ! xhv_name HvNAME(bytecode_sv) pvcontents ! hv_store bytecode_sv svindex x ! sv_magic bytecode_sv char x ! mg_obj SvMAGIC(bytecode_sv)->mg_obj svindex ! mg_private SvMAGIC(bytecode_sv)->mg_private U16 ! mg_flags SvMAGIC(bytecode_sv)->mg_flags U8 ! mg_pv SvMAGIC(bytecode_sv) pvcontents x ! xmg_stash *(SV**)&SvSTASH(bytecode_sv) svindex ! gv_fetchpv bytecode_sv strconst x ! gv_stashpv bytecode_sv strconst x ! gp_sv GvSV(bytecode_sv) svindex ! gp_refcnt GvREFCNT(bytecode_sv) U32 ! gp_refcnt_add GvREFCNT(bytecode_sv) I32 x ! gp_av *(SV**)&GvAV(bytecode_sv) svindex ! gp_hv *(SV**)&GvHV(bytecode_sv) svindex ! gp_cv *(SV**)&GvCV(bytecode_sv) svindex ! gp_file GvFILE(bytecode_sv) pvcontents ! gp_io *(SV**)&GvIOp(bytecode_sv) svindex ! gp_form *(SV**)&GvFORM(bytecode_sv) svindex ! gp_cvgen GvCVGEN(bytecode_sv) U32 ! gp_line GvLINE(bytecode_sv) line_t ! gp_share bytecode_sv svindex x ! xgv_flags GvFLAGS(bytecode_sv) U8 op_next PL_op->op_next opindex op_sibling PL_op->op_sibling opindex op_ppaddr PL_op->op_ppaddr strconst x --- 289,374 ---- #opcode lvalue argtype flags # ret none none x ! ldsv bstate->bs_sv svindex ldop PL_op opindex ! stsv bstate->bs_sv U32 s stop PL_op U32 s ! stpv bstate->bs_pv.xpv_pv U32 x ! ldspecsv bstate->bs_sv U8 x ! newsv bstate->bs_sv U8 x newop PL_op U8 x newopn PL_op U8 x newpv none PV ! pv_cur bstate->bs_pv.xpv_cur STRLEN ! pv_free bstate->bs_pv none x ! sv_upgrade bstate->bs_sv char x ! sv_refcnt SvREFCNT(bstate->bs_sv) U32 ! sv_refcnt_add SvREFCNT(bstate->bs_sv) I32 x ! sv_flags SvFLAGS(bstate->bs_sv) U32 ! xrv SvRV(bstate->bs_sv) svindex ! xpv bstate->bs_sv none x ! xiv32 SvIVX(bstate->bs_sv) I32 ! xiv64 SvIVX(bstate->bs_sv) IV64 ! xnv SvNVX(bstate->bs_sv) NV ! xlv_targoff LvTARGOFF(bstate->bs_sv) STRLEN ! xlv_targlen LvTARGLEN(bstate->bs_sv) STRLEN ! xlv_targ LvTARG(bstate->bs_sv) svindex ! xlv_type LvTYPE(bstate->bs_sv) char ! xbm_useful BmUSEFUL(bstate->bs_sv) I32 ! xbm_previous BmPREVIOUS(bstate->bs_sv) U16 ! xbm_rare BmRARE(bstate->bs_sv) U8 ! xfm_lines FmLINES(bstate->bs_sv) I32 ! xio_lines IoLINES(bstate->bs_sv) long ! xio_page IoPAGE(bstate->bs_sv) long ! xio_page_len IoPAGE_LEN(bstate->bs_sv) long ! xio_lines_left IoLINES_LEFT(bstate->bs_sv) long ! xio_top_name IoTOP_NAME(bstate->bs_sv) pvcontents ! xio_top_gv *(SV**)&IoTOP_GV(bstate->bs_sv) svindex ! xio_fmt_name IoFMT_NAME(bstate->bs_sv) pvcontents ! xio_fmt_gv *(SV**)&IoFMT_GV(bstate->bs_sv) svindex ! xio_bottom_name IoBOTTOM_NAME(bstate->bs_sv) pvcontents ! xio_bottom_gv *(SV**)&IoBOTTOM_GV(bstate->bs_sv) svindex ! xio_subprocess IoSUBPROCESS(bstate->bs_sv) short ! xio_type IoTYPE(bstate->bs_sv) char ! xio_flags IoFLAGS(bstate->bs_sv) char ! xcv_stash *(SV**)&CvSTASH(bstate->bs_sv) svindex ! xcv_start CvSTART(bstate->bs_sv) opindex ! xcv_root CvROOT(bstate->bs_sv) opindex ! xcv_gv *(SV**)&CvGV(bstate->bs_sv) svindex ! xcv_file CvFILE(bstate->bs_sv) pvindex ! xcv_depth CvDEPTH(bstate->bs_sv) long ! xcv_padlist *(SV**)&CvPADLIST(bstate->bs_sv) svindex ! xcv_outside *(SV**)&CvOUTSIDE(bstate->bs_sv) svindex ! xcv_flags CvFLAGS(bstate->bs_sv) U16 ! av_extend bstate->bs_sv SSize_t x ! av_push bstate->bs_sv svindex x ! xav_fill AvFILLp(bstate->bs_sv) SSize_t ! xav_max AvMAX(bstate->bs_sv) SSize_t ! xav_flags AvFLAGS(bstate->bs_sv) U8 ! xhv_riter HvRITER(bstate->bs_sv) I32 ! xhv_name HvNAME(bstate->bs_sv) pvcontents ! hv_store bstate->bs_sv svindex x ! sv_magic bstate->bs_sv char x ! mg_obj SvMAGIC(bstate->bs_sv)->mg_obj svindex ! mg_private SvMAGIC(bstate->bs_sv)->mg_private U16 ! mg_flags SvMAGIC(bstate->bs_sv)->mg_flags U8 ! mg_pv SvMAGIC(bstate->bs_sv) pvcontents x ! xmg_stash *(SV**)&SvSTASH(bstate->bs_sv) svindex ! gv_fetchpv bstate->bs_sv strconst x ! gv_stashpv bstate->bs_sv strconst x ! gp_sv GvSV(bstate->bs_sv) svindex ! gp_refcnt GvREFCNT(bstate->bs_sv) U32 ! gp_refcnt_add GvREFCNT(bstate->bs_sv) I32 x ! gp_av *(SV**)&GvAV(bstate->bs_sv) svindex ! gp_hv *(SV**)&GvHV(bstate->bs_sv) svindex ! gp_cv *(SV**)&GvCV(bstate->bs_sv) svindex ! gp_file GvFILE(bstate->bs_sv) pvindex ! gp_io *(SV**)&GvIOp(bstate->bs_sv) svindex ! gp_form *(SV**)&GvFORM(bstate->bs_sv) svindex ! gp_cvgen GvCVGEN(bstate->bs_sv) U32 ! gp_line GvLINE(bstate->bs_sv) line_t ! gp_share bstate->bs_sv svindex x ! xgv_flags GvFLAGS(bstate->bs_sv) U8 op_next PL_op->op_next opindex op_sibling PL_op->op_sibling opindex op_ppaddr PL_op->op_ppaddr strconst x *************** *** 399,407 **** op_redoop cLOOP->op_redoop opindex op_nextop cLOOP->op_nextop opindex op_lastop cLOOP->op_lastop opindex ! cop_label cCOP->cop_label pvcontents ! cop_stashpv cCOP pvcontents x ! cop_file cCOP pvcontents x cop_seq cCOP->cop_seq U32 cop_arybase cCOP->cop_arybase I32 cop_line cCOP line_t x --- 395,403 ---- op_redoop cLOOP->op_redoop opindex op_nextop cLOOP->op_nextop opindex op_lastop cLOOP->op_lastop opindex ! cop_label cCOP->cop_label pvindex ! cop_stashpv cCOP pvindex x ! cop_file cCOP pvindex x cop_seq cCOP->cop_seq U32 cop_arybase cCOP->cop_arybase I32 cop_line cCOP line_t x *************** *** 409,411 **** --- 405,410 ---- main_start PL_main_start opindex main_root PL_main_root opindex curpad PL_curpad svindex x + push_begin PL_beginav svindex x + push_init PL_initav svindex x + push_end PL_endav svindex x Index: cflags.SH ####### perl-5.6.1-TRIAL1/ => perl-5.6.1-TRIAL1 *** perl-5.6.1-TRIAL1/cflags.SH Mon Jan 24 05:06:09 2000 --- perl-5.6.1-TRIAL1/cflags.SH Sun Dec 17 13:06:37 2000 *************** *** 129,136 **** fi : Can we perhaps use $ansi2knr here ! echo "$cc -c -DPERL_CORE $ccflags $optimize $perltype $large $split" ! eval "$also "'"$cc -DPERL_CORE -c $ccflags $optimize $perltype $large $split"' . $TOP/config.sh --- 129,136 ---- fi : Can we perhaps use $ansi2knr here ! echo "$cc -c -DPERL_CORE $ccflags $optimize $perltype" ! eval "$also "'"$cc -DPERL_CORE -c $ccflags $optimize $perltype"' . $TOP/config.sh Index: config_h.SH Prereq: 3.0.1.5 ####### perl-5.6.1-TRIAL1/ => perl-5.6.1-TRIAL1 *** perl-5.6.1-TRIAL1/config_h.SH Wed Mar 22 12:36:37 2000 --- perl-5.6.1-TRIAL1/config_h.SH Sun Dec 17 20:44:56 2000 *************** *** 238,254 **** */ #$d_getpgid HAS_GETPGID /**/ - /* HAS_GETPGRP: - * This symbol, if defined, indicates that the getpgrp routine is - * available to get the current process group. - */ - /* USE_BSD_GETPGRP: - * This symbol, if defined, indicates that getpgrp needs one - * arguments whereas USG one needs none. - */ - #$d_getpgrp HAS_GETPGRP /**/ - #$d_bsdgetpgrp USE_BSD_GETPGRP /**/ - /* HAS_GETPGRP2: * This symbol, if defined, indicates that the getpgrp2() (as in DG/UX) * routine is available to get the current process group. --- 238,243 ---- *************** *** 503,520 **** */ #$d_setpgid HAS_SETPGID /**/ - /* HAS_SETPGRP: - * This symbol, if defined, indicates that the setpgrp routine is - * available to set the current process group. - */ - /* USE_BSD_SETPGRP: - * This symbol, if defined, indicates that setpgrp needs two - * arguments whereas USG one needs none. See also HAS_SETPGID - * for a POSIX interface. - */ - #$d_setpgrp HAS_SETPGRP /**/ - #$d_bsdsetpgrp USE_BSD_SETPGRP /**/ - /* HAS_SETPGRP2: * This symbol, if defined, indicates that the setpgrp2() (as in DG/UX) * routine is available to set the current process group. --- 492,497 ---- *************** *** 1198,1218 **** * This macro surrounds its token with double quotes. */ #if $cpp_stuff == 1 ! # define CAT2(a,b) a/**/b ! # define STRINGIFY(a) "a" /* If you can get stringification with catify, tell me how! */ #endif #if $cpp_stuff == 42 ! # define PeRl_CaTiFy(a, b) a ## b ! # define PeRl_StGiFy(a) #a /* the additional level of indirection enables these macros to be * used as arguments to other macros. See K&R 2nd ed., page 231. */ ! # define CAT2(a,b) PeRl_CaTiFy(a,b) ! # define StGiFy(a) PeRl_StGiFy(a) ! # define STRINGIFY(a) PeRl_StGiFy(a) #endif #if $cpp_stuff != 1 && $cpp_stuff != 42 ! #include "Bletch: How does this C preprocessor catenate tokens?" #endif /* CPPSTDIN: --- 1175,1195 ---- * This macro surrounds its token with double quotes. */ #if $cpp_stuff == 1 ! #define CAT2(a,b) a/**/b ! #define STRINGIFY(a) "a" /* If you can get stringification with catify, tell me how! */ #endif #if $cpp_stuff == 42 ! #define PeRl_CaTiFy(a, b) a ## b ! #define PeRl_StGiFy(a) #a /* the additional level of indirection enables these macros to be * used as arguments to other macros. See K&R 2nd ed., page 231. */ ! #define CAT2(a,b) PeRl_CaTiFy(a,b) ! #define StGiFy(a) PeRl_StGiFy(a) ! #define STRINGIFY(a) PeRl_StGiFy(a) #endif #if $cpp_stuff != 1 && $cpp_stuff != 42 ! # include "Bletch: How does this C preprocessor catenate tokens?" #endif /* CPPSTDIN: *************** *** 1342,1364 **** */ #$d_endsent HAS_ENDSERVENT /**/ - /* HAS_ENDSPENT: - * This symbol, if defined, indicates that the endspent system call is - * available to finalize the scan of SysV shadow password entries. - */ - #$d_endspent HAS_ENDSPENT /**/ - /* HAS_FD_SET: * This symbol, when defined, indicates presence of the fd_set typedef * in */ #$d_fd_set HAS_FD_SET /**/ /* HAS_FPOS64_T: * This symbol will be defined if the C compiler supports fpos64_t. */ #$d_fpos64_t HAS_FPOS64_T /**/ /* HAS_STRUCT_FS_DATA: * This symbol, if defined, indicates that the struct fs_data * to do statfs() is supported. --- 1319,1348 ---- */ #$d_endsent HAS_ENDSERVENT /**/ /* HAS_FD_SET: * This symbol, when defined, indicates presence of the fd_set typedef * in */ #$d_fd_set HAS_FD_SET /**/ + /* FLEXFILENAMES: + * This symbol, if defined, indicates that the system supports filenames + * longer than 14 characters. + */ + #$d_flexfnam FLEXFILENAMES /**/ + /* HAS_FPOS64_T: * This symbol will be defined if the C compiler supports fpos64_t. */ #$d_fpos64_t HAS_FPOS64_T /**/ + /* HAS_FREXPL: + * This symbol, if defined, indicates that the frexpl routine is + * available to break a long double floating-point number into + * a normalized fraction and an integral power of 2. + */ + #$d_frexpl HAS_FREXPL /**/ + /* HAS_STRUCT_FS_DATA: * This symbol, if defined, indicates that the struct fs_data * to do statfs() is supported. *************** *** 1406,1411 **** --- 1390,1401 ---- */ #$d_getcwd HAS_GETCWD /**/ + /* HAS_GETESPWNAM: + * This symbol, if defined, indicates that the getespwnam system call is + * available to retrieve enchanced (shadow) password entries by name. + */ + #$d_getespwnam HAS_GETESPWNAM /**/ + /* HAS_GETFSSTAT: * This symbol, if defined, indicates that the getfsstat routine is * available to stat filesystems in bulk. *************** *** 1511,1516 **** --- 1501,1513 ---- */ #$d_getnetprotos HAS_GETNET_PROTOS /**/ + /* HAS_GETPAGESIZE: + * This symbol, if defined, indicates that the getpagesize system call + * is available to get system page size, which is the granularity of + * many memory management calls. + */ + #$d_getpagsz HAS_GETPAGESIZE /**/ + /* HAS_GETPROTOENT: * This symbol, if defined, indicates that the getprotoent() routine is * available to look up protocols in some data base or another. *************** *** 1536,1541 **** --- 1533,1544 ---- */ #$d_getprotoprotos HAS_GETPROTO_PROTOS /**/ + /* HAS_GETPRPWNAM: + * This symbol, if defined, indicates that the getprpwnam system call is + * available to retrieve protected (shadow) password entries by name. + */ + #$d_getprpwnam HAS_GETPRPWNAM /**/ + /* HAS_GETPWENT: * This symbol, if defined, indicates that the getpwent routine is * available for sequential access of the passwd database. *************** *** 1557,1568 **** */ #$d_getservprotos HAS_GETSERV_PROTOS /**/ - /* HAS_GETSPENT: - * This symbol, if defined, indicates that the getspent system call is - * available to retrieve SysV shadow password entries sequentially. - */ - #$d_getspent HAS_GETSPENT /**/ - /* HAS_GETSPNAM: * This symbol, if defined, indicates that the getspnam system call is * available to retrieve SysV shadow password entries by name. --- 1560,1565 ---- *************** *** 1638,1643 **** --- 1635,1659 ---- */ #$d_isascii HAS_ISASCII /**/ + /* HAS_ISNAN: + * This symbol, if defined, indicates that the isnan routine is + * available to check whether a double is a NaN. + */ + #$d_isnan HAS_ISNAN /**/ + + /* HAS_ISNANL: + * This symbol, if defined, indicates that the isnanl routine is + * available to check whether a long double is a NaN. + */ + #$d_isnanl HAS_ISNANL /**/ + + /* HAS_LCHOWN: + * This symbol, if defined, indicates that the lchown routine is + * available to operate on a symbolic link (instead of following the + * link). + */ + #$d_lchown HAS_LCHOWN /**/ + /* HAS_LDBL_DIG: * This symbol, if defined, indicates that this system's * or defines the symbol LDBL_DIG, which is the number *************** *** 1725,1730 **** --- 1741,1753 ---- #$d_mmap HAS_MMAP /**/ #define Mmap_t $mmaptype /**/ + /* HAS_MODFL: + * This symbol, if defined, indicates that the modfl routine is + * available to split a long double x into a fractional part f and + * an integer part i such that |f| < 1.0 and (f + i) = x. + */ + #$d_modfl HAS_MODFL /**/ + /* HAS_MPROTECT: * This symbol, if defined, indicates that the mprotect system call is * available to modify the access protection of a memory mapped file. *************** *** 1837,1842 **** --- 1860,1871 ---- */ #$d_setpent HAS_SETPROTOENT /**/ + /* HAS_SETPROCTITLE: + * This symbol, if defined, indicates that the setproctitle routine is + * available to set process title. + */ + #$d_setproctitle HAS_SETPROCTITLE /**/ + /* HAS_SETPWENT: * This symbol, if defined, indicates that the setpwent routine is * available for initializing sequential access of the passwd database. *************** *** 1849,1860 **** */ #$d_setsent HAS_SETSERVENT /**/ - /* HAS_SETSPENT: - * This symbol, if defined, indicates that the setspent system call is - * available to initialize the scan of SysV shadow password entries. - */ - #$d_setspent HAS_SETSPENT /**/ - /* HAS_SETVBUF: * This symbol, if defined, indicates that the setvbuf routine is * available to change buffering on an open stdio stream. --- 1878,1883 ---- *************** *** 1958,1963 **** --- 1981,1992 ---- #$d_msg_proxy HAS_MSG_PROXY /**/ #$d_scm_rights HAS_SCM_RIGHTS /**/ + /* HAS_SOCKS5_INIT: + * This symbol, if defined, indicates that the socks5_init routine is + * available to initialize SOCKS 5. + */ + #$d_socks5_init HAS_SOCKS5_INIT /**/ + /* HAS_SQRTL: * This symbol, if defined, indicates that the sqrtl routine is * available to do long double square roots. *************** *** 2020,2031 **** --- 2049,2071 ---- * This symbol is defined if the FILE_cnt macro can be used as an * lvalue. */ + /* STDIO_PTR_LVAL_SETS_CNT: + * This symbol is defined if using the FILE_ptr macro as an lvalue + * to increase the pointer by n has the side effect of decreasing the + * value of File_cnt(fp) by n. + */ + /* STDIO_PTR_LVAL_NOCHANGE_CNT: + * This symbol is defined if using the FILE_ptr macro as an lvalue + * to increase the pointer by n leaves File_cnt(fp) unchanged. + */ #$d_stdstdio USE_STDIO_PTR /**/ #ifdef USE_STDIO_PTR #define FILE_ptr(fp) $stdio_ptr #$d_stdio_ptr_lval STDIO_PTR_LVALUE /**/ #define FILE_cnt(fp) $stdio_cnt #$d_stdio_cnt_lval STDIO_CNT_LVALUE /**/ + #$d_stdio_ptr_lval_sets_cnt STDIO_PTR_LVAL_SETS_CNT /**/ + #$d_stdio_ptr_lval_nochange_cnt STDIO_PTR_LVAL_NOCHANGE_CNT /**/ #endif /* USE_STDIO_BASE: *************** *** 2293,2298 **** --- 2333,2344 ---- */ #$i_inttypes I_INTTYPES /**/ + /* I_LIBUTIL: + * This symbol, if defined, indicates that exists and + * should be included. + */ + #$i_libutil I_LIBUTIL /**/ + /* I_MACH_CTHREADS: * This symbol, if defined, indicates to the C program that it should * include . *************** *** 2323,2328 **** --- 2369,2380 ---- */ #$i_poll I_POLL /**/ + /* I_PROT: + * This symbol, if defined, indicates that exists and + * should be included. + */ + #$i_prot I_PROT /**/ + /* I_PTHREAD: * This symbol, if defined, indicates to the C program that it should * include . *************** *** 2485,2492 **** --- 2537,2554 ---- * This symbol, if defined, contains the string used by stdio to * format long doubles (format 'g') for output. */ + /* PERL_PRIeldbl: + * This symbol, if defined, contains the string used by stdio to + * format long doubles (format 'e') for output. + */ + /* PERL_SCNfldbl: + * This symbol, if defined, contains the string used by stdio to + * format long doubles (format 'f') for input. + */ #$d_PRIfldbl PERL_PRIfldbl $sPRIfldbl /**/ #$d_PRIgldbl PERL_PRIgldbl $sPRIgldbl /**/ + #$d_PRIeldbl PERL_PRIeldbl $sPRIeldbl /**/ + #$d_SCNfldbl PERL_SCNfldbl $sSCNfldbl /**/ /* Off_t: * This symbol holds the type used to declare offsets in the kernel. *************** *** 2574,2579 **** --- 2636,2651 ---- #define Netdb_name_t $netdb_name_type /**/ #define Netdb_net_t $netdb_net_type /**/ + /* PERL_OTHERLIBDIRS: + * This variable contains a colon-separated set of paths for the perl + * binary to search for additional library files or modules. + * These directories will be tacked to the end of @INC. + * Perl will automatically search below each path for version- + * and architecture-specific directories. See PERL_INC_VERSION_LIST + * for more details. + */ + #$d_perl_otherlibdirs PERL_OTHERLIBDIRS "$otherlibdirs" /**/ + /* IVTYPE: * This symbol defines the C type used for Perl's IV. */ *************** *** 2637,2645 **** /* U64SIZE: * This symbol contains the sizeof(U64). */ /* NV_PRESERVES_UV: * This symbol, if defined, indicates that a variable of type NVTYPE ! * can preserve all the bit of a variable of type UVSIZE. */ #define IVTYPE $ivtype /**/ #define UVTYPE $uvtype /**/ --- 2709,2724 ---- /* U64SIZE: * This symbol contains the sizeof(U64). */ + /* NVSIZE: + * This symbol contains the sizeof(NV). + */ /* NV_PRESERVES_UV: * This symbol, if defined, indicates that a variable of type NVTYPE ! * can preserve all the bits of a variable of type UVTYPE. ! */ ! /* NV_PRESERVES_UV_BITS: ! * This symbol contains the number of bits a variable of type NVTYPE ! * can preserve of a variable of type UVTYPE. */ #define IVTYPE $ivtype /**/ #define UVTYPE $uvtype /**/ *************** *** 2666,2672 **** --- 2745,2753 ---- #define I64SIZE $i64size /**/ #define U64SIZE $u64size /**/ #endif + #define NVSIZE $nvsize /**/ #$d_nv_preserves_uv NV_PRESERVES_UV + #define NV_PRESERVES_UV_BITS $d_nv_preserves_uv_bits /* IVdf: * This symbol defines the format string used for printing a Perl IV *************** *** 2682,2693 **** */ /* UVxf: * This symbol defines the format string used for printing a Perl UV ! * as an unsigned hexadecimal integer. */ #define IVdf $ivdformat /**/ #define UVuf $uvuformat /**/ #define UVof $uvoformat /**/ #define UVxf $uvxformat /**/ /* Pid_t: * This symbol holds the type used to declare process ids in the kernel. --- 2763,2789 ---- */ /* UVxf: * This symbol defines the format string used for printing a Perl UV ! * as an unsigned hexadecimal integer in lowercase abcdef. ! */ ! /* NVef: ! * This symbol defines the format string used for printing a Perl NV ! * using %e-ish floating point format. ! */ ! /* NVff: ! * This symbol defines the format string used for printing a Perl NV ! * using %f-ish floating point format. ! */ ! /* NVgf: ! * This symbol defines the format string used for printing a Perl NV ! * using %g-ish floating point format. */ #define IVdf $ivdformat /**/ #define UVuf $uvuformat /**/ #define UVof $uvoformat /**/ #define UVxf $uvxformat /**/ + #define NVef $nveformat /**/ + #define NVff $nvfformat /**/ + #define NVgf $nvgformat /**/ /* Pid_t: * This symbol holds the type used to declare process ids in the kernel. *************** *** 3086,3103 **** #define PERL_XS_APIVERSION "$xs_apiversion" #define PERL_PM_APIVERSION "$pm_apiversion" ! /* HAS_LCHOWN: ! * This symbol, if defined, indicates that the lchown routine is ! * available to operate on a symbolic link (instead of following the ! * link). */ ! #$d_lchown HAS_LCHOWN /**/ ! /* FLEXFILENAMES: ! * This symbol, if defined, indicates that the system supports filenames ! * longer than 14 characters. */ ! #$d_flexfnam FLEXFILENAMES /**/ #endif !GROK!THIS! --- 3182,3229 ---- #define PERL_XS_APIVERSION "$xs_apiversion" #define PERL_PM_APIVERSION "$pm_apiversion" ! /* HAS_GETPGRP: ! * This symbol, if defined, indicates that the getpgrp routine is ! * available to get the current process group. */ ! /* USE_BSD_GETPGRP: ! * This symbol, if defined, indicates that getpgrp needs one ! * arguments whereas USG one needs none. ! */ ! #$d_getpgrp HAS_GETPGRP /**/ ! #$d_bsdgetpgrp USE_BSD_GETPGRP /**/ ! /* HAS_SETPGRP: ! * This symbol, if defined, indicates that the setpgrp routine is ! * available to set the current process group. */ ! /* USE_BSD_SETPGRP: ! * This symbol, if defined, indicates that setpgrp needs two ! * arguments whereas USG one needs none. See also HAS_SETPGID ! * for a POSIX interface. ! */ ! #$d_setpgrp HAS_SETPGRP /**/ ! #$d_bsdsetpgrp USE_BSD_SETPGRP /**/ ! ! /* HAS__FWALK: ! * This symbol, if defined, indicates that the _fwalk system call is ! * available to apply a function to all the file handles. ! */ ! #$d__fwalk HAS__FWALK /**/ ! ! /* FCNTL_CAN_LOCK: ! * This symbol, if defined, indicates that fcntl() can be used ! * for file locking. Normally on Unix systems this is defined. ! * It may be undefined on VMS. ! */ ! #$d_fcntl_can_lock FCNTL_CAN_LOCK /**/ ! ! /* HAS_FSYNC: ! * This symbol, if defined, indicates that the fsync routine is ! * available to write a file's modified data and attributes to ! * permanent storage. ! */ ! #$d_fsync HAS_FSYNC /**/ #endif !GROK!THIS! Index: configpm ####### perl-5.6.1-TRIAL1/ => perl-5.6.1-TRIAL1 *** perl-5.6.1-TRIAL1/configpm Fri Mar 17 08:58:04 2000 --- perl-5.6.1-TRIAL1/configpm Sun Dec 17 10:56:42 2000 *************** *** 128,168 **** # Search for it in the big string my($value, $start, $marker, $quote_type); ! $marker = "$_[1]="; $quote_type = "'"; ! # return undef unless (($value) = $config_sh =~ m/^$_[1]='(.*)'\s*$/m); ! # Check for the common case, ' delimeted ! $start = index($config_sh, "\n$marker$quote_type"); ! # If that failed, check for " delimited ! if ($start == -1) { ! $quote_type = '"'; ! $start = index($config_sh, "\n$marker$quote_type"); ! } ! return undef if ( ($start == -1) && # in case it's first ! (substr($config_sh, 0, length($marker)) ne $marker) ); ! if ($start == -1) { ! # It's the very first thing we found. Skip $start forward ! # and figure out the quote mark after the =. ! $start = length($marker) + 1; ! $quote_type = substr($config_sh, $start - 1, 1); ! } ! else { ! $start += length($marker) + 2; } - $value = substr($config_sh, $start, - index($config_sh, "$quote_type\n", $start) - $start); - # If we had a double-quote, we'd better eval it so escape # sequences and such can be interpolated. Since the incoming # value is supposed to follow shell rules and not perl rules, # we escape any perl variable markers if ($quote_type eq '"') { ! $value =~ s/\$/\\\$/g; ! $value =~ s/\@/\\\@/g; ! eval "\$value = \"$value\""; } #$value = sprintf($value) if $quote_type eq '"'; ! $value = undef if $value eq 'undef'; # So we can say "if $Config{'foo'}". $_[0]->{$_[1]} = $value; # cache it return $value; } --- 128,211 ---- # Search for it in the big string my($value, $start, $marker, $quote_type); ! $quote_type = "'"; ! # Virtual entries. ! if ($_[1] eq 'byteorder') { ! # byteorder does exist on its own but we overlay a virtual ! # dynamically recomputed value. ! my $t = $Config{ivtype}; ! my $s = $Config{ivsize}; ! my $f = $t eq 'long' ? 'L!' : $s == 8 ? 'Q': 'I'; ! if ($s == 4 || $s == 8) { ! my $i = 0; ! foreach my $c (reverse(2..$s)) { $i |= ord($c); $i <<= 8 } ! $i |= ord(1); ! $value = join('', unpack('a'x$s, pack($f, $i))); ! } else { ! $value = '?'x$s; ! } ! } elsif ($_[1] =~ /^((?:cc|ld)flags|libs(?:wanted)?)_nolargefiles/) { ! # These are purely virtual, they do not exist, but need to ! # be computed on demand for largefile-incapable extensions. ! my $key = "${1}_uselargefiles"; ! $value = $Config{$1}; ! my $withlargefiles = $Config{$key}; ! if ($key =~ /^(?:cc|ld)flags_/) { ! $value =~ s/\Q$withlargefiles\E\b//; ! } elsif ($key =~ /^libs/) { ! my @lflibswanted = split(' ', $Config{libswanted_uselargefiles}); ! if (@lflibswanted) { ! my %lflibswanted; ! @lflibswanted{@lflibswanted} = (); ! if ($key =~ /^libs_/) { ! my @libs = grep { /^-l(.+)/ && ! not exists $lflibswanted{$1} } ! split(' ', $Config{libs}); ! $Config{libs} = join(' ', @libs); ! } elsif ($key =~ /^libswanted_/) { ! my @libswanted = grep { not exists $lflibswanted{$_} } ! split(' ', $Config{libswanted}); ! $Config{libswanted} = join(' ', @libswanted); ! } ! } ! } ! } else { ! $marker = "$_[1]="; ! # return undef unless (($value) = $config_sh =~ m/^$_[1]='(.*)'\s*$/m); ! # Check for the common case, ' delimeted ! $start = index($config_sh, "\n$marker$quote_type"); ! # If that failed, check for " delimited ! if ($start == -1) { ! $quote_type = '"'; ! $start = index($config_sh, "\n$marker$quote_type"); ! } ! return undef if ( ($start == -1) && # in case it's first ! (substr($config_sh, 0, length($marker)) ne $marker) ); ! if ($start == -1) { ! # It's the very first thing we found. Skip $start forward ! # and figure out the quote mark after the =. ! $start = length($marker) + 1; ! $quote_type = substr($config_sh, $start - 1, 1); ! } ! else { ! $start += length($marker) + 2; ! } ! $value = substr($config_sh, $start, ! index($config_sh, "$quote_type\n", $start) - $start); } # If we had a double-quote, we'd better eval it so escape # sequences and such can be interpolated. Since the incoming # value is supposed to follow shell rules and not perl rules, # we escape any perl variable markers if ($quote_type eq '"') { ! $value =~ s/\$/\\\$/g; ! $value =~ s/\@/\\\@/g; ! eval "\$value = \"$value\""; } #$value = sprintf($value) if $quote_type eq '"'; ! # So we can say "if $Config{'foo'}". ! $value = undef if $value eq 'undef'; $_[0]->{$_[1]} = $value; # cache it return $value; } *************** *** 191,197 **** index($config_sh, "\n$_[1]='") != -1 or substr($config_sh, 0, length($_[1])+2) eq "$_[1]='" or index($config_sh, "\n$_[1]=\"") != -1 or ! substr($config_sh, 0, length($_[1])+2) eq "$_[1]=\""; } sub STORE { die "\%Config::Config is read-only\n" } --- 234,241 ---- index($config_sh, "\n$_[1]='") != -1 or substr($config_sh, 0, length($_[1])+2) eq "$_[1]='" or index($config_sh, "\n$_[1]=\"") != -1 or ! substr($config_sh, 0, length($_[1])+2) eq "$_[1]=\"" or ! $_[1] =~ /^(?:(?:cc|ld)flags|libs(?:wanted)?)_nolargefiles$/; } sub STORE { die "\%Config::Config is read-only\n" } Index: configure.com ####### perl-5.6.1-TRIAL1/ => perl-5.6.1-TRIAL1 *** perl-5.6.1-TRIAL1/configure.com Thu Mar 16 18:28:36 2000 --- perl-5.6.1-TRIAL1/configure.com Sun Dec 17 20:44:56 2000 *************** *** 1,7 **** $ sav_ver = 'F$VERIFY(0)' $! SET VERIFY $! ! $! For example, if you unpacked perl into: [USER.PERL5_00n...] then you will $! want to cd into the tree and execute Configure: $! $! $ SET DEFAULT [USER.PERL5_xxx] --- 1,7 ---- $ sav_ver = 'F$VERIFY(0)' $! SET VERIFY $! ! $! For example, if you unpacked perl into: [USER.PERL-5n...] then you will $! want to cd into the tree and execute Configure: $! $! $ SET DEFAULT [USER.PERL5_xxx] *************** *** 35,41 **** --- 35,43 ---- $! VMS-isms we will need: $ echo = "write sys$output " $ cat = "type" + $ delete := delete ! local symbol overrides globals with qualifiers $ gcc_symbol = "gcc" + $ ld = "Link" $ ans = "" $ macros = "" $ extra_flags = "" *************** *** 50,61 **** $ use_two_pot_malloc = "N" $ use_pack_malloc = "N" $ use_debugmalloc = "N" ! $ d_secintgenv = "N" ! $ cc_flags = "" ! $ use_multiplicity = "N" $ vms_default_directory_name = F$ENVIRONMENT("DEFAULT") ! $ max_allowed_dir_depth = 3 ! e.g. [A.B.PERL5_xxx] not [A.B.C.PERL5_xxx] ! $! max_allowed_dir_depth = 2 ! e.g. [A.PERL5_xxx] not [A.B.PERL5_xxx] $! $ vms_filcnt = F$GETJPI ("","FILCNT") $! --- 52,61 ---- $ use_two_pot_malloc = "N" $ use_pack_malloc = "N" $ use_debugmalloc = "N" ! $ ccflags = "" $ vms_default_directory_name = F$ENVIRONMENT("DEFAULT") ! $ max_allowed_dir_depth = 3 ! e.g. [A.B.PERLxxx] not [A.B.C.PERLxxx] ! $! max_allowed_dir_depth = 2 ! e.g. [A.PERLxxx] not [A.B.PERLxxx] $! $ vms_filcnt = F$GETJPI ("","FILCNT") $! *************** *** 118,133 **** $ fastread="" $ reuseval="false" $ maniskip = "false" ! $ config_sh="" $ alldone="" $ error="" $ silent="" $ extractsh="" $ override="" $ knowitall="" ! $ Using_Dec_C = "" ! $ Using_Gnu_C = "" $ Dec_C_Version = "" $ use_threads = "F" $ use_5005_threads = "N" $ use_ithreads = "N" --- 118,135 ---- $ fastread="" $ reuseval="false" $ maniskip = "false" ! $ IF F$TYPE(config_sh) .EQS. "" THEN config_sh="" $ alldone="" $ error="" $ silent="" $ extractsh="" $ override="" $ knowitall="" ! $ Using_Dec_C = "n" ! $ Using_Gnu_C = "n" ! $ using_cxx = "n" $ Dec_C_Version = "" + $ cxxversion = "" $ use_threads = "F" $ use_5005_threads = "N" $ use_ithreads = "N" *************** *** 170,176 **** $ P'i' = P'i' - "e" $ gotshortopt = "t" $ ENDIF ! $ IF (F$EXTRACT(0,1,P'i') .EQS. "f") !"-f") $ THEN $ P'i' = P'i' - "f" $ config_sh = P'i' --- 172,178 ---- $ P'i' = P'i' - "e" $ gotshortopt = "t" $ ENDIF ! $ IF (F$EXTRACT(0,1,P'i') .EQS. "f") ! "-f" $ THEN $ P'i' = P'i' - "f" $ config_sh = P'i' *************** *** 179,184 **** --- 181,187 ---- $ test_config_sh = F$FILE_ATTRIBUTES(config_sh,"PRO") $ IF (F$LOCATE("R",test_config_sh).NE.F$LENGTH(test_config_sh)) $ THEN + $ config_dflt = "y" $ CONTINUE !at this point check UIC && if test allows... $ !to be continued ? $ ELSE *************** *** 191,290 **** $ ENDIF $ gotopt = "t" $ ENDIF ! $ IF (F$EXTRACT(0,1,P'i') .EQS. "h") $ THEN $ error = "true" $ gotopt = "t" $ P'i' = P'i' - "h" $ gotshortopt = "t" $ ENDIF ! $ IF (F$EXTRACT(0,1,P'i') .EQS. "m") $ THEN $ maniskip = "true" $ gotopt = "t" $ P'i' = P'i' - "m" $ gotshortopt = "t" $ ENDIF ! $ IF (F$EXTRACT(0,1,P'i') .EQS. "r") $ THEN $ reuseval = "true" $ gotopt = "t" $ P'i' = P'i' - "r" $ gotshortopt = "t" $ ENDIF ! $ IF (F$EXTRACT(0,1,P'i') .EQS. "s") $ THEN $ silent = "true" $ gotopt = "t" $ P'i' = P'i' - "s" $ gotshortopt = "t" $ ENDIF ! $ IF (F$EXTRACT(0,1,P'i') .EQS. "E") !"-E") $ THEN $ alldone = "exit" $ gotopt = "t" $ ENDIF ! $ IF (F$EXTRACT(0,1,P'i') .EQS. "K") !"-K") $ THEN $ knowitall = "true" $ gotopt = "t" $ P'i' = P'i' - "K" $ gotshortopt = "t" $ ENDIF ! $ IF (F$EXTRACT(0,1,P'i') .EQS. "O") $ THEN $ override = "true" $ gotopt = "t" $ P'i' = P'i' - "O" $ gotshortopt = "t" $ ENDIF ! $ IF (F$EXTRACT(0,1,P'i') .EQS. "S") !"-S") $ THEN ! $ extractsh = "true" !VMS? $ gotopt = "t" $ P'i' = P'i' - "S" $ gotshortopt = "t" $ ENDIF ! $ IF (F$EXTRACT(0,1,P'i') .EQS. "D") !"-D") $ THEN $ P'i' = P'i' - "D" - $!Hmm.. this part needs work - $! P'i' $ IF (F$LOCATE("=",P'i') .EQ. F$LENGTH(P'i')) $ THEN ! $ P'i' = "define" $ ELSE $ IF (F$LOCATE("=",P'i') .EQ. (F$LENGTH(P'i') - 1)) $ THEN $ me = F$PARSE(me,,,"NAME") + F$PARSE(me,,,"TYPE") ! $ echo "''me': use '-Usymbol=val' not '-Dsymbol='." $ echo "''me': ignoring -D",P'i' $ ELSE ! $!Hmm.. this part needs work ! $! 'F$EXTRACT(0,F$LOCATE("=",P'i'),P'i')' = - ! $! 'F$EXTRACT(F$LOCATE("=",P'i'),P'i'),F$LENGTH(P'i'),P'i')' $ ENDIF $ ENDIF - $ ECHO "P''i' =>",P'i',"<=" !Diag $ gotopt = "t" $ ENDIF ! $ IF (F$EXTRACT(0,1,P'i') .EQS. "U") !"-U") $ THEN $ P'i' = P'i' - "U" $ IF (F$LOCATE("=",P'i') .EQ. F$LENGTH(P'i')) $ THEN ! $ P'i' = "" $ ELSE $ IF (F$LOCATE("=",P'i') .LT. (F$LENGTH(P'i') - 1)) $ THEN $ me = F$PARSE(me,,,"NAME") + F$PARSE(me,,,"TYPE") ! $ echo "''me': use '-Dsymbol=val' not '-Usymbol=val'." $ echo "''me': ignoring -U",P'i' $ ELSE ! $ P'i' = "undef" $ ENDIF $ ENDIF - $ ECHO "P''i' =>",P'i',"<=" !Diag $ gotopt = "t" $ ENDIF $ IF (F$EXTRACT(0,1,P'i') .EQS. "V") --- 194,296 ---- $ ENDIF $ gotopt = "t" $ ENDIF ! $ IF (F$EXTRACT(0,1,P'i') .EQS. "h") ! "-h" $ THEN $ error = "true" $ gotopt = "t" $ P'i' = P'i' - "h" $ gotshortopt = "t" $ ENDIF ! $ IF (F$EXTRACT(0,1,P'i') .EQS. "m") ! "-m" $ THEN $ maniskip = "true" $ gotopt = "t" $ P'i' = P'i' - "m" $ gotshortopt = "t" $ ENDIF ! $ IF (F$EXTRACT(0,1,P'i') .EQS. "r") ! "-r" $ THEN $ reuseval = "true" $ gotopt = "t" $ P'i' = P'i' - "r" $ gotshortopt = "t" $ ENDIF ! $ IF (F$EXTRACT(0,1,P'i') .EQS. "s") ! "-s" $ THEN $ silent = "true" $ gotopt = "t" $ P'i' = P'i' - "s" $ gotshortopt = "t" $ ENDIF ! $ IF (F$EXTRACT(0,1,P'i') .EQS. "E") ! "-E" $ THEN $ alldone = "exit" $ gotopt = "t" $ ENDIF ! $ IF (F$EXTRACT(0,1,P'i') .EQS. "K") ! "-K" $ THEN $ knowitall = "true" $ gotopt = "t" $ P'i' = P'i' - "K" $ gotshortopt = "t" $ ENDIF ! $ IF (F$EXTRACT(0,1,P'i') .EQS. "O") ! "-O" $ THEN $ override = "true" $ gotopt = "t" $ P'i' = P'i' - "O" $ gotshortopt = "t" $ ENDIF ! $ IF (F$EXTRACT(0,1,P'i') .EQS. "S") ! "-S" $ THEN ! $ extractsh = "true" !VMS? Yes with munchconfig $ gotopt = "t" $ P'i' = P'i' - "S" $ gotshortopt = "t" $ ENDIF ! $ IF (F$EXTRACT(0,1,P'i') .EQS. "D") ! "-D" $ THEN $ P'i' = P'i' - "D" $ IF (F$LOCATE("=",P'i') .EQ. F$LENGTH(P'i')) $ THEN ! $ tmp = P'i' + "=""define""" ! $ 'tmp' ! $ DELETE/SYMBOL tmp $ ELSE $ IF (F$LOCATE("=",P'i') .EQ. (F$LENGTH(P'i') - 1)) $ THEN $ me = F$PARSE(me,,,"NAME") + F$PARSE(me,,,"TYPE") ! $ echo "''me': use ""-Usymbol=val"" not ""-Dsymbol=""." $ echo "''me': ignoring -D",P'i' $ ELSE ! $ tmp = F$EXTRACT(0,F$LOCATE("=",P'i'),P'i') ! $ tmp = tmp + "=""" + F$EXTRACT(F$LOCATE("=",P'i')+1,F$LENGTH(P'i'),P'i') + """" ! $ 'tmp' ! $ DELETE/SYMBOL tmp $ ENDIF $ ENDIF $ gotopt = "t" $ ENDIF ! $ IF (F$EXTRACT(0,1,P'i') .EQS. "U") ! "-U" $ THEN $ P'i' = P'i' - "U" $ IF (F$LOCATE("=",P'i') .EQ. F$LENGTH(P'i')) $ THEN ! $ tmp = P'i' + "=""""" ! $ 'tmp' ! $ DELETE/SYMBOL tmp $ ELSE $ IF (F$LOCATE("=",P'i') .LT. (F$LENGTH(P'i') - 1)) $ THEN $ me = F$PARSE(me,,,"NAME") + F$PARSE(me,,,"TYPE") ! $ echo "''me': use ""-Dsymbol=val"" not ""-Usymbol=val""." $ echo "''me': ignoring -U",P'i' $ ELSE ! $ tmp = P'i' + "=""undef""" ! $ 'tmp' ! $ DELETE/SYMBOL tmp $ ENDIF $ ENDIF $ gotopt = "t" $ ENDIF $ IF (F$EXTRACT(0,1,P'i') .EQS. "V") *************** *** 292,298 **** $ me = F$PARSE(me,,,"NAME") + F$PARSE(me,,,"TYPE") $ echo "''me' generated by an unknown version of EDT." $ STOP ! $ EXIT !0 $ ENDIF $ IF .NOT.gotopt $ THEN --- 298,304 ---- $ me = F$PARSE(me,,,"NAME") + F$PARSE(me,,,"TYPE") $ echo "''me' generated by an unknown version of EDT." $ STOP ! $ EXIT $ ENDIF $ IF .NOT.gotopt $ THEN *************** *** 309,317 **** $ IF (error) $ THEN $ me = F$PARSE(me,,,"DIRECTORY")+ F$PARSE(me,,,"NAME") ! $ echo "Usage: @''me' [-dehmrEKOSV] [-fconfig.sh] [-Dsymbol] [-Dsymbol=value]" $ echo " [-Usymbol] [-Usymbol=]" ! $ TYPE SYS$INPUT "-d" : use defaults for all answers. "-e" : go on without questioning past the production of config.sh. * "-f" : specify an alternate default configuration file. --- 315,324 ---- $ IF (error) $ THEN $ me = F$PARSE(me,,,"DIRECTORY")+ F$PARSE(me,,,"NAME") ! $ echo "Usage: @''me' [-dehmr""EKOSV""] [-fconfig.sh] [""-Dsymbol""] [""-Dsymbol=value""]" $ echo " [-Usymbol] [-Usymbol=]" ! $ TYPE SYS$INPUT: ! $ DECK "-d" : use defaults for all answers. "-e" : go on without questioning past the production of config.sh. * "-f" : specify an alternate default configuration file. *************** *** 330,335 **** --- 337,343 ---- -"Usymbol" symbol gets the value 'undef' -"Usymbol=" symbol gets completely empty -V : print version number and exit (with a zero status). + $ EOD $ echo "%Config-I-VMS, lower case switches must be enclosed" $ echo "-Config-I-VMS, in double quotation marks, e.g.:" $ echo "-Config-I-VMS, @Configure ""-des""" *************** *** 393,399 **** $ echo4 "First let's make sure your kit is complete. Checking..." $ manifestfound = "" $ miss_list = "" ! $! Here I assume we are in the [foo.PERL5xxx.VMS...] tree $! because the search routine simply does set def [-] if necessary. $ file_2_find = "MANIFEST" !I hope this one is not in [foo.PERL5xxx.VMS...] $Research_manifest: --- 401,407 ---- $ echo4 "First let's make sure your kit is complete. Checking..." $ manifestfound = "" $ miss_list = "" ! $! Here I assume we are in the [foo.PERLxxx...] tree $! because the search routine simply does set def [-] if necessary. $ file_2_find = "MANIFEST" !I hope this one is not in [foo.PERL5xxx.VMS...] $Research_manifest: *************** *** 418,427 **** --- 426,437 ---- $ IF (F$ELEMENT(max_allowed_dir_depth,".",F$ENVIRONMENT("Default")).nes.".") $ THEN $ TYPE SYS$INPUT: + $ DECK %Config-E-VMS, ERROR: Sorry! It apears as though your perl build sub-directory is already too deep into the VMS file system. Please try moving stuff into a shallower directory (or altering the "max_allowed_dir_depth" parameter). + $ EOD $ echo4 "ABORTING..." $ SET DEFAULT 'vms_default_directory_name' !be kind rewind $ STOP *************** *** 537,542 **** --- 547,554 ---- $ IF ((miss_list .NES. "").OR.(manifestfound .EQS. "")) $ THEN $ TYPE SYS$INPUT: + $ DECK + THIS PACKAGE SEEMS TO BE INCOMPLETE. *************** *** 545,550 **** --- 557,563 ---- do, don't blame me if something goes wrong. I advise you to type 'n'o and contact the author (dan@sidhe.org) + $ EOD $ READ SYS$COMMAND/PROMPT="Continue? [n] " ans $ IF ans $ THEN *************** *** 575,587 **** $ Then $ echo4 "''rp'" $ Else ! $ If (silent) ! $ Then $ READ SYS$COMMAND/PROMPT="''rp'" ans ! $ Else $ echo "" $ READ SYS$COMMAND/PROMPT="''rp'" ans ! $ Endif $ Endif $ RETURN $! --- 588,610 ---- $ Then $ echo4 "''rp'" $ Else ! $ If (.NOT. silent) Then echo "" ! $ READ SYS$COMMAND/PROMPT="''rp'" ans ! $ IF (ans .EQS. "&-d") ! $ THEN ! $ echo4 "(OK, I will run with -d after this question.)" ! $ IF (.NOT. silent) THEN echo "" $ READ SYS$COMMAND/PROMPT="''rp'" ans ! $ fastread := yes ! $ ENDIF ! $ IF (ans .EQS. "&-s") ! $ THEN ! $ echo4 "(OK, I will run with -s after this question.)" $ echo "" $ READ SYS$COMMAND/PROMPT="''rp'" ans ! $ silent := true ! $ GOSUB Shut_up ! $ ENDIF $ Endif $ RETURN $! *************** *** 602,607 **** --- 625,682 ---- $ CLOSE CONFIG $ ENDIF $! + $ IF F$TYPE(usedevel) .EQS. "" THEN usedevel := n + $ patchlevel_h = F$SEARCH("[-]patchlevel.h") + $ IF (patchlevel_h.NES."") + $ THEN + $ SEARCH 'patchlevel_h' "define","PERL_VERSION","epoch"/match=and/out=[]ver.out + $ IF .NOT. usedevel .AND. usedevel .NES. "define" + $ THEN + $ OPEN/READ CONFIG []ver.out + $ READ CONFIG line + $ CLOSE CONFIG + $ tmp = F$EDIT(line,"TRIM,COMPRESS") + $ xpatchlevel = F$INTEGER(F$ELEMENT(2," ",tmp)) + $ line = xpatchlevel / 2 + $ tmp = xpatchlevel - ( line * 2 ) + $ IF tmp .NE. 0 + $ THEN + $ echo4 "patchlevel is " + F$STRING(xpatchlevel) + $ cat4 SYS$INPUT: + $ DECK + *** WHOA THERE!!! *** + + This is an UNSTABLE DEVELOPMENT release. + (The patchlevel, is odd--as opposed to even, + and that signifies a development release. If you want a + maintenance release, you want an even-numbered release.) + + Do ***NOT*** install this into production use. + Data corruption and crashes are possible. + + It is most seriously suggested that you do not continue any further + unless you want to help in developing and debugging Perl. + + $ EOD + $ dflt="n" + $ rp="Do you really want to continue? [''dflt'] " + $ IF (fastread) THEN fastread := FALSE + $ GOSUB myread + $ IF ans .EQS. "" THEN ans = dflt + $ IF ans + $ THEN + $ echo4 "Okay, continuing." + $ ELSE + $ echo4 "Okay, bye." + $ DELETE/NOLOG/NOCONFIRM []ver.out; + $ GOTO Clean_up + $ ENDIF + $ ENDIF + $ DELETE/SYMBOL line + $ DELETE/SYMBOL tmp + $ ENDIF + $ DELETE/NOLOG/NOCONFIRM []ver.out; + $ ENDIF $!: general instructions $ needman = "true" $ firsttime = "true" *************** *** 626,631 **** --- 701,707 ---- $ IF (needman) $ THEN $ TYPE SYS$INPUT: + $ DECK This installation shell script will examine your system and ask you questions to determine how the perl5 package should be installed. If you get *************** *** 634,649 **** --- 710,729 ---- Many of the questions will have default answers in square brackets; typing carriage return will give you the default. + $ EOD $ READ SYS$COMMAND/PROMPT="Type carriage return to continue " ans $ TYPE SYS$INPUT: + $ DECK In a hurry? You may run '@Configure "-d"'. This will bypass nearly all the questions and use the computed defaults (or the previous answers provided there was already a config.sh file). Type '@Configure "-h"' for a list of options. + $ EOD $ READ SYS$COMMAND/PROMPT="Type carriage return to continue " ans $ TYPE SYS$INPUT: + $ DECK Much effort has been expended to ensure that this shell script will run on any VMS system. If despite that it blows up on yours, your *************** *** 651,656 **** --- 731,737 ---- you have with Configure.com, let me (dan@sidhe.org) know how I blew it. + $ EOD $!This installation script affects things in two ways: $! $!1) it may do direct variable substitutions on some of the files included *************** *** 675,681 **** $!: figure out how to guarantee sh startup !sfn $!: find out where common programs are !sfn $!loclist="awk/cat/comm/cp/echo/expr/find/grep/ln/ls/mkdir/rm/sed/sort/touch/tr/uniq" ! $!trylist="Mcc/byacc/cpp/csh/date/egrep/less/line/more/nroff/perl/pg/sendmail/test/uname" $! echo "I don't know where '$file' is, and my life depends on it." $! echo "Go find a public domain implementation or fix your PATH setting!" $! echo "" --- 756,762 ---- $!: figure out how to guarantee sh startup !sfn $!: find out where common programs are !sfn $!loclist="awk/cat/comm/cp/echo/expr/find/grep/ln/ls/mkdir/rm/sed/sort/touch/tr/uniq" ! $!trylist="byacc/cpp/csh/date/egrep/less/line/more/nroff/perl/pg/sendmail/test/uname" $! echo "I don't know where '$file' is, and my life depends on it." $! echo "Go find a public domain implementation or fix your PATH setting!" $! echo "" *************** *** 699,713 **** $ IF (configshfound.NES."") THEN GOTO Config_sh_found $ ENDIF $ IF (i.LT.max) THEN GOTO Config_sh_look ! $ IF (configshfound.EQS."") THEN GOTO Beyond_config_sh $Config_sh_found: ! $ echo "" ! $ echo "Fetching default answers from ''config_sh'..." $!we actually do not have "hints/" for VMS $! TYPE SYS$INPUT: $! $!First time through, eh? I have some defaults handy for the following systems: $! $! echo " ","VMS_VAX" $! echo " ","VMS_AXP" $! : Now look for a hint file osname_osvers, unless one has been --- 780,828 ---- $ IF (configshfound.NES."") THEN GOTO Config_sh_found $ ENDIF $ IF (i.LT.max) THEN GOTO Config_sh_look ! $! genconfig.pl has "osname='VMS'" ! $ osname = F$EDIT(F$GETSYI("NODE_SWTYPE"),"COLLAPSE") ! $ IF (configshfound.EQS."") ! $ THEN ! $ config_sh = "[-]config.sh" ! the fallback default ! $ GOTO Beyond_config_sh ! $ ENDIF $Config_sh_found: ! $ IF F$TYPE(osname) .EQS. "" THEN osname = F$EDIT(F$GETSYI("NODE_SWTYPE"),"COLLAPSE") ! $ IF F$TYPE(config_dflt) .EQS. "" THEN config_dflt = "n" ! $ rp = "Shall I @ ''config_sh' for default answers? [''config_dflt'] " ! $ GOSUB myread ! $ IF ans .EQS. "" THEN ans = config_dflt ! $ IF ans ! $ THEN ! $ echo "" ! $ echo "Fetching default answers from ''config_sh'..." ! $! ! $! This @ is why config_sh must employ DCL syntax. Note that for ! $! symbols to be returned to this procedure they must be global. ! $! Which implies that assignments must be of the :== or == variety. ! $! Note further that the [-]config.sh file written by this procedure ! $! employs shell syntax. In order to convert shell syntax to DCL ! $! you might try: ! $! ! $! perl -ni -e "s/^#/!#/;s/='/==""/;s/'$/""/;print ""\$ $_"";" config.sh ! $! ! $! However, watch out for sig_nam, sig_nam_init, sig_num, startperl ! $! and any of the lower case double quoted variables such as the *format ! $! variables in such a config."sh". ! $! ! $ @'config_sh' ! $! ! $ ENDIF ! $ DELETE/SYMBOL config_dflt ! $! $!we actually do not have "hints/" for VMS $! TYPE SYS$INPUT: + $! DECK $! $!First time through, eh? I have some defaults handy for the following systems: $! + $! EOD $! echo " ","VMS_VAX" $! echo " ","VMS_AXP" $! : Now look for a hint file osname_osvers, unless one has been *************** *** 723,742 **** $! $!: Restore computed paths !sfn $! - $! genconfig.pl has "osname='VMS'" - $ osname = F$EDIT(F$GETSYI("NODE_SWTYPE"),"COLLAPSE") $! %Config-I-VMS, a necessary error trap (could be PC running VCL) $! $ IF (osname .NES. "VMS") $ THEN $ echo4 "Hmm.. I wonder what ''osname' is (?)" $ TYPE SYS$INPUT: %Config-E-VMS, ERROR: Err, you do not appear to be running VMS! This procedure is intended to Configure the building of Perl for VMS. $ READ SYS$COMMAND/PROMPT="Continue anyway? [n] " ans $ IF ans $ THEN --- 838,857 ---- $! $!: Restore computed paths !sfn $! $! %Config-I-VMS, a necessary error trap (could be PC running VCL) $! $ IF (osname .NES. "VMS") $ THEN $ echo4 "Hmm.. I wonder what ''osname' is (?)" $ TYPE SYS$INPUT: + $ DECK %Config-E-VMS, ERROR: Err, you do not appear to be running VMS! This procedure is intended to Configure the building of Perl for VMS. + $ EOD $ READ SYS$COMMAND/PROMPT="Continue anyway? [n] " ans $ IF ans $ THEN *************** *** 750,760 **** --- 865,877 ---- $ ELSE !we are on VMS huzzah! $ IF .NOT.silent $ THEN TYPE SYS$INPUT: + $ DECK Configure uses the operating system name and version to set some defaults. The default value is probably right if the name rings a bell. Otherwise, since spelling matters for me, either accept the default or answer "none" to leave it blank. + $ EOD $ ENDIF $ rp = "Operating system name? [''osname'] " $ GOSUB myread *************** *** 768,776 **** $ ENDIF !(osname .NES./.EQS. "VMS") $! $!: who configured the system - $! see 'user' above. $ cf_by = F$EDIT(user,"LOWERCASE") - $! cf_time = F$CVTIME() !superceded by procedure below $ osvers = F$EDIT(F$GETSYI("VERSION"),"TRIM") $! $! Peter Prymmer has seen: --- 885,891 ---- *************** *** 793,799 **** $! $! This snippet o' DCL returns a string in default Unix `date` format, $! and it will prompt to set SYS$TIMEZONE_DIFFERENTIAL. - $! Peter Prymmer pvhp@lns62.lns.cornell.edu $! $ MIN_TZO = -840 !units are minutes here $ MAX_TZO = 840 --- 908,913 ---- *************** *** 832,838 **** $ direction = "west of " $ ENDIF $ echo "" - $ echo "%Config-I-VMS," $ echo "According to the setting of your ""SYS$TIMEZONE_DIFFERENTIAL"" (= ''systz')" $ IF tzminrem.ne.0 $ THEN --- 946,951 ---- *************** *** 842,848 **** $ ENDIF $ dflt = "y" $ echo "Your system is ''tzspan' ''direction'UTC in England." ! $ rp = "%Config-I-VMS, (''systz') Is this UTC Time Zone Offset correct? [''dflt'] " $ GOSUB myread $ IF ans.OR.(ans.EQS."") $ THEN --- 955,961 ---- $ ENDIF $ dflt = "y" $ echo "Your system is ''tzspan' ''direction'UTC in England." ! $ rp = "(''systz') Is this UTC Time Zone Offset correct? [''dflt'] " $ GOSUB myread $ IF ans.OR.(ans.EQS."") $ THEN *************** *** 852,858 **** $ ENDIF $ ELSE $ echo "" - $ echo4 "%Config-I-VMS," $ echo4 """SYS$TIMEZONE_DIFFERENTIAL"" does not appear to be DEFINEd on your system" $ ENDIF $! --- 965,970 ---- *************** *** 899,904 **** --- 1011,1018 ---- $! $!: determine the architecture name $! genconfig.pl has either archname='VMS_AXP' or 'VMS_VAX' + $! Note that DCL in VMS V5.4 does not have F$GETSYI("ARCH_NAME") + $! but does have F$GETSYI("HW_MODEL"). $! $ IF (F$GETSYI("HW_MODEL") .LT. 1024) $ THEN *************** *** 923,929 **** $ ENDIF $ ENDIF $ dflt = "n" ! $ rp = "Will you be sharing your PERL_ROOT with ''otherarch'? [''dflt'] " $ GOSUB myread $ if ans.NES."" $ THEN --- 1037,1045 ---- $ ENDIF $ ENDIF $ dflt = "n" ! $ vms_prefix = "perl_root" ! $ vms_prefixup = F$EDIT(vms_prefix,"UPCASE") ! $ rp = "Will you be sharing your ''vms_prefixup' with ''otherarch'? [''dflt'] " $ GOSUB myread $ if ans.NES."" $ THEN *************** *** 946,967 **** $!: expand filename !sfn $!: now set up to get a file name !sfn $! ! $ prefix = F$ENVIRONMENT("DEFAULT") - ".UU]" + "]" ! $ prefix = F$PARSE(prefix,,,,"NO_CONCEAL") - "][" - ".;" ! $ prefixbase = prefix - "]" ! $ prefix = prefixbase + ".]" $!: determine root of directory hierarchy where package will be installed. $ dflt = prefix $ IF .NOT.silent $ THEN $ echo "" $ echo "By default, ''package' will be installed in ''dflt', pod" ! $ echo "pages under ''prefixbase'LIB.POD], etc..., i.e. with ''dflt' as prefix for" $ echo "all installation directories." ! $ echo "On ''osname' the ''prefix' is used to DEFINE the ''packageup'_ROOT prior to installation" $ echo "as well as during subsequent use of ''package' via ''packageup'_SETUP.COM." $ ENDIF ! $ rp = "Installation prefix to use (for ''packageup'_ROOT)? [ ''dflt' ] " $ GOSUB myread $ IF ans.NES."" $ THEN --- 1062,1087 ---- $!: expand filename !sfn $!: now set up to get a file name !sfn $! ! $ IF F$TYPE(prefix) .EQS. "" ! $ THEN ! $ prefix = F$ENVIRONMENT("DEFAULT") - ".UU]" + "]" ! $ prefix = F$PARSE(prefix,,,,"NO_CONCEAL") - "][" - ".;" ! $ prefixbase = prefix - "]" ! $ prefix = prefixbase + ".]" ! $ ENDIF ! $ src = prefix $!: determine root of directory hierarchy where package will be installed. $ dflt = prefix $ IF .NOT.silent $ THEN $ echo "" $ echo "By default, ''package' will be installed in ''dflt', pod" ! $ echo "pages under ''prefixbase'.LIB.POD], etc..., i.e. with ''dflt' as prefix for" $ echo "all installation directories." ! $ echo "On ''osname' the prefix is used to DEFINE the ''vms_prefixup' prior to installation" $ echo "as well as during subsequent use of ''package' via ''packageup'_SETUP.COM." $ ENDIF ! $ rp = "Installation prefix to use (for ''vms_prefixup')? [ ''dflt' ] " $ GOSUB myread $ IF ans.NES."" $ THEN *************** *** 970,975 **** --- 1090,1096 ---- $ ELSE $ prefix = dflt $ ENDIF + $ perl_root = prefix $! $! Check here for pre-existing PERL_ROOT. $! -> ask if removal desired. *************** *** 979,985 **** $ vms_skip_install = "true" $ dflt = "y" $! echo "" ! $ rp = "%Config-I-VMS, Skip the remaining """"where install"""" questions? [''dflt'] " $ GOSUB myread $ IF (.NOT.ans).AND.(ans.NES."") THEN vms_skip_install = "false" $ IF (.NOT.vms_skip_install) --- 1100,1106 ---- $ vms_skip_install = "true" $ dflt = "y" $! echo "" ! $ rp = "Skip the remaining """"where install"""" questions? [''dflt'] " $ GOSUB myread $ IF (.NOT.ans).AND.(ans.NES."") THEN vms_skip_install = "false" $ IF (.NOT.vms_skip_install) *************** *** 991,1002 **** $!: Usual default is /usr/local/lib/perl5. Also allow things like $!: /opt/perl/lib, since /opt/perl/lib/perl5 would be redundant. $ IF .NOT.silent ! $ THEN TYPE SYS$INPUT: There are some auxiliary files for perl5 that need to be put into a private library directory that is accessible by everyone. $ ENDIF - $ dflt = prefix - ".]" + ".LIB]" $ rp = "Pathname where the private library files will reside? " $ rp = F$FAO("!AS!/!AS",rp,"[ ''dflt' ] ") $ GOSUB myread --- 1112,1129 ---- $!: Usual default is /usr/local/lib/perl5. Also allow things like $!: /opt/perl/lib, since /opt/perl/lib/perl5 would be redundant. $ IF .NOT.silent ! $ THEN ! $ TYPE SYS$INPUT: ! $ DECK There are some auxiliary files for perl5 that need to be put into a private library directory that is accessible by everyone. + $ EOD + $ ENDIF + $ IF F$TYPE(privlib) .NES. "" + $ THEN dflt = privlib + $ ELSE dflt = "''vms_prefix':[lib]" $ ENDIF $ rp = "Pathname where the private library files will reside? " $ rp = F$FAO("!AS!/!AS",rp,"[ ''dflt' ] ") $ GOSUB myread *************** *** 1013,1024 **** $ IF .NOT.silent $ THEN $ echo "" ! $ echo "%Config-I-VMS, You may choose to write ''packageup'_SETUP.COM to assign a foreign" ! $ echo "-Config-I-VMS, symbol to invoke ''package', which is the usual method." ! $ echO "-Config-I-VMS, If you do not do so then you would need a DCL command verb at the" ! $ echo "-Config-I-VMS, process or the system wide level." $ ENDIF ! $ rp = "Invoke perl as a global symbol foreign command [''dflt'] " $ GOSUB myread $ IF (.NOT.ans).AND.(ans.NES."") THEN perl_symbol = "false" $! --- 1140,1151 ---- $ IF .NOT.silent $ THEN $ echo "" ! $ echo "You may choose to write ''packageup'_SETUP.COM to assign a foreign" ! $ echo "symbol to invoke ''package', which is the usual method." ! $ echO "If you do not do so then you would need a DCL command verb at the" ! $ echo "process or the system wide level." $ ENDIF ! $ rp = "Invoke perl as a global symbol foreign command? [''dflt'] " $ GOSUB myread $ IF (.NOT.ans).AND.(ans.NES."") THEN perl_symbol = "false" $! *************** *** 1028,1038 **** $ IF .NOT.silent $ THEN $ echo "" ! $ echo "%Config-I-VMS, Since you won't be using a symbol you must choose to put the ''packageup'" ! $ echo "-Config-I-VMS, verb in a per-process table or in the system wide DCLTABLES (which" ! $ echo "-Config-I-VMS, would require write privilege)." $ ENDIF ! $ rp = "Invoke perl as a per process command verb [ ''dflt' ] " $ GOSUB myread $ IF (.NOT.ans).AND.(ans.NES."") $ THEN perl_verb = "DCLTABLES" --- 1155,1165 ---- $ IF .NOT.silent $ THEN $ echo "" ! $ echo "Since you won't be using a symbol you must choose to put the ''packageup'" ! $ echo "verb in a per-process table or in the system wide DCLTABLES (which" ! $ echo "would require write privilege)." $ ENDIF ! $ rp = "Invoke perl as a per process command verb? [ ''dflt' ] " $ GOSUB myread $ IF (.NOT.ans).AND.(ans.NES."") $ THEN perl_verb = "DCLTABLES" *************** *** 1045,1051 **** $ revision = baserev - ".0" $!: get the patchlevel $ echo "" ! $ echo4 "Getting the current patchlevel..." !>&4 $ patchlevel_h = F$SEARCH("[-]patchlevel.h") $ IF (patchlevel_h.NES."") $ THEN --- 1172,1178 ---- $ revision = baserev - ".0" $!: get the patchlevel $ echo "" ! $ echo4 "Getting the current patchlevel..." $ patchlevel_h = F$SEARCH("[-]patchlevel.h") $ IF (patchlevel_h.NES."") $ THEN *************** *** 1056,1062 **** $ got_api_subversion = "false" $ OPEN/READONLY CONFIG 'patchlevel_h' $Patchlevel_h_loop: ! $ READ/END_Of_File=Close_patch CONFIG line $ IF ((F$LOCATE("#define PERL_VERSION",line).NE.F$LENGTH(line)).AND.(.NOT.got_patch)) $ THEN $ line = F$EDIT(line,"COMPRESS, TRIM") --- 1183,1189 ---- $ got_api_subversion = "false" $ OPEN/READONLY CONFIG 'patchlevel_h' $Patchlevel_h_loop: ! $ READ/END_Of_File=Close_patch/ERROR=Close_patch CONFIG line $ IF ((F$LOCATE("#define PERL_VERSION",line).NE.F$LENGTH(line)).AND.(.NOT.got_patch)) $ THEN $ line = F$EDIT(line,"COMPRESS, TRIM") *************** *** 1090,1098 **** $ IF (.NOT.got_patch).OR.(.NOT.got_sub) THEN GOTO Patchlevel_h_loop $Close_patch: $ CLOSE CONFIG ! $ ELSE ! $ patchlevel="0" ! $ subversion="0" $ ENDIF $ IF (F$STRING(subversion) .NES. "0") $ THEN --- 1217,1225 ---- $ IF (.NOT.got_patch).OR.(.NOT.got_sub) THEN GOTO Patchlevel_h_loop $Close_patch: $ CLOSE CONFIG ! $ ELSE ! $ patchlevel="0" ! $ subversion="0" $ ENDIF $ IF (F$STRING(subversion) .NES. "0") $ THEN *************** *** 1105,1111 **** $! $ IF (.NOT.vms_skip_install) $ THEN - $!: set the prefixup variable, to restore leading tilda escape !sfn $!: set the prefixup variable, to restore leading tilde escape !sfn $! $!: determine where public architecture dependent libraries go --- 1232,1237 ---- *************** *** 1115,1126 **** $ echo "''package' contains architecture-dependent library files. If you are" $ ENDIF $ IF (.NOT.silent) ! $ THEN TYPE SYS$INPUT: sharing libraries in a heterogeneous environment, you might store these files in a separate location. Otherwise, you can just include them with the rest of the public library files. $ ENDIF - $ dflt = privlib - "]" + "." + archname + "." + version + "]" $ rp = "Where do you want to put the public architecture-dependent libraries? " $ rp = F$FAO("!AS!/!AS",rp,"[ ''dflt' ] ") $ GOSUB myread --- 1241,1258 ---- $ echo "''package' contains architecture-dependent library files. If you are" $ ENDIF $ IF (.NOT.silent) ! $ THEN ! $ TYPE SYS$INPUT: ! $ DECK sharing libraries in a heterogeneous environment, you might store these files in a separate location. Otherwise, you can just include them with the rest of the public library files. + $ EOD + $ ENDIF + $ IF F$TYPE(archlib) .NES. "" + $ THEN dflt = archlib + $ ELSE dflt = privlib - "]" + "." + archname + "." + version + "]" $ ENDIF $ rp = "Where do you want to put the public architecture-dependent libraries? " $ rp = F$FAO("!AS!/!AS",rp,"[ ''dflt' ] ") $ GOSUB myread *************** *** 1129,1144 **** $ ELSE archlib = dflt $ ENDIF $! - $!: set up the script used to warn in case of inconsistency !sfn - $!: function used to set $1 to $val !sfn - $! $ ENDIF !%Config-I-VMS, skip "where install" questions $! This quotation from Configure has to be included on VMS: $ TYPE SYS$INPUT: There is, however, a strange, musty smell in the air that reminds me of something...hmm...yes...I've got it...there's a VMS nearby, or I'm a Blit. ! $ CONTINUE $ IF (.NOT.vms_skip_install) $ THEN $!: it so happens the Eunice I know will not run shell scripts in Unix format --- 1261,1276 ---- $ ELSE archlib = dflt $ ENDIF $! $ ENDIF !%Config-I-VMS, skip "where install" questions + $! $! This quotation from Configure has to be included on VMS: + $! $ TYPE SYS$INPUT: + $ DECK There is, however, a strange, musty smell in the air that reminds me of something...hmm...yes...I've got it...there's a VMS nearby, or I'm a Blit. ! $ EOD $ IF (.NOT.vms_skip_install) $ THEN $!: it so happens the Eunice I know will not run shell scripts in Unix format *************** *** 1148,1161 **** $! $!: determine where site specific libraries go. $ IF .NOT.silent ! $ THEN TYPE SYS$INPUT: The installation process will also create a directory for site-specific extensions and modules. Some users find it convenient to place all local files in this directory rather than in the main distribution directory. $ ENDIF - $ dflt = privlib - "]" + ".SITE_PERL]" $ rp = "Pathname for the site-specific library files? " $ rp = F$FAO("!AS!/!AS",rp,"[ ''dflt' ] ") $ GOSUB myread --- 1280,1299 ---- $! $!: determine where site specific libraries go. $ IF .NOT.silent ! $ THEN ! $ TYPE SYS$INPUT: ! $ DECK The installation process will also create a directory for site-specific extensions and modules. Some users find it convenient to place all local files in this directory rather than in the main distribution directory. + $ EOD + $ ENDIF + $ IF F$TYPE(sitelib) .NES. "" + $ THEN dflt = sitelib + $ ELSE dflt = privlib - "]" + ".SITE_PERL]" $ ENDIF $ rp = "Pathname for the site-specific library files? " $ rp = F$FAO("!AS!/!AS",rp,"[ ''dflt' ] ") $ GOSUB myread *************** *** 1167,1177 **** $!: determine where site specific architecture-dependent libraries go. $ IF .NOT.silent $ THEN TYPE SYS$INPUT: The installation process will also create a directory for architecture-dependent site-specific extensions and modules. $ ENDIF - $ dflt = sitelib - "]" + "." + archname + "]" $ rp = "Pathname for the site-specific architecture-dependent library files? " $ rp = F$FAO("!AS!/!AS",rp,"[ ''dflt' ] ") $ GOSUB myread --- 1305,1320 ---- $!: determine where site specific architecture-dependent libraries go. $ IF .NOT.silent $ THEN TYPE SYS$INPUT: + $ DECK The installation process will also create a directory for architecture-dependent site-specific extensions and modules. + $ EOD + $ ENDIF + $ IF F$TYPE(sitearch) .NES. "" + $ THEN dflt = sitearch + $ ELSE dflt = sitelib - "]" + "." + archname + "]" $ ENDIF $ rp = "Pathname for the site-specific architecture-dependent library files? " $ rp = F$FAO("!AS!/!AS",rp,"[ ''dflt' ] ") $ GOSUB myread *************** *** 1183,1189 **** $!: determine where old public architecture dependent libraries might be $! $!: determine where public executables go ! $ dflt = prefix - ".]" + ".BIN]" $ rp = "Pathname where the public executables will reside? " $ rp = F$FAO("!AS!/!AS",rp,"[ ''dflt' ] ") $ GOSUB myread --- 1326,1336 ---- $!: determine where old public architecture dependent libraries might be $! $!: determine where public executables go ! $ IF F$TYPE(bin) .NES. "" ! $ THEN dflt = bin ! $! ELSE dflt = prefix - ".]" + ".BIN]" ! $ ELSE dflt = "/''vms_prefix'/000000" ! $ ENDIF $ rp = "Pathname where the public executables will reside? " $ rp = F$FAO("!AS!/!AS",rp,"[ ''dflt' ] ") $ GOSUB myread *************** *** 1199,1206 **** --- 1346,1402 ---- $!: What suffix to use on installed man pages $!: see what memory models we can support $! + $ ELSE ! skipping "where install" questions, we must set some symbols + $ IF F$TYPE(archlib).EQS."" THEN - + archlib="''vms_prefix':[lib.''archname'.''version']" + $ IF F$TYPE(bin) .EQS. "" THEN - + bin="/''vms_prefix'/000000" + $ IF F$TYPE(privlib) .EQS. "" THEN - + privlib ="''vms_prefix':[lib]" + $ IF F$TYPE(sitearch) .EQS. "" THEN - + sitearch="''vms_prefix':[lib.site_perl.''archname']" + $ IF F$TYPE(sitelib) .EQS. "" THEN - + sitelib ="''vms_prefix':[lib.site_perl]" $ ENDIF !%Config-I-VMS, skip "where install" questions $! + $! These derived locations can be set whether we've opted to + $! skip the where install questions or not. + $! + $ IF F$TYPE(archlibexp) .EQS. "" THEN - + archlibexp="''vms_prefix':[lib.''archname'.''version']" + $ IF F$TYPE(binexp) .EQS. "" THEN - + binexp ="''vms_prefix':[000000]" + $ IF F$TYPE(builddir) .EQS. "" THEN - + builddir ="''vms_prefix':[000000]" + $ IF F$TYPE(installarchlib) .EQS. "" THEN - + installarchlib="''vms_prefix':[lib.''archname'.''version']" + $ IF F$TYPE(installbin) .EQS. "" THEN - + installbin ="''vms_prefix':[000000]" + $ IF F$TYPE(installscript) .EQS. "" THEN - + installscript ="''vms_prefix':[utils]" + $ IF F$TYPE(installman1dir) .EQS. "" THEN - + installman1dir ="''vms_prefix':[man.man1]" + $ IF F$TYPE(installman3dir) .EQS. "" THEN - + installman3dir ="''vms_prefix':[man.man3]" + $ IF F$TYPE(installprivlib) .EQS. "" THEN - + installprivlib ="''vms_prefix':[lib]" + $ IF F$TYPE(installsitearch) .EQS. "" THEN - + installsitearch="''vms_prefix':[lib.site_perl.''archname']" + $ IF F$TYPE(installsitelib) .EQS. "" THEN - + installsitelib ="''vms_prefix':[lib.site_perl]" + $ IF F$TYPE(oldarchlib) .EQS. "" THEN - + oldarchlib="''vms_prefix':[lib.''archname']" + $ IF F$TYPE(oldarchlibexp) .EQS. "" THEN - + oldarchlibexp="''vms_prefix':[lib.''archname']" + $ IF F$TYPE(privlibexp) .EQS. "" THEN - + privlibexp ="''vms_prefix':[lib]" + $ IF F$TYPE(sitearchexp) .EQS. "" THEN - + sitearchexp ="''vms_prefix':[lib.site_perl.''archname']" + $ IF F$TYPE(sitelib_stem) .EQS. "" THEN - + sitelib_stem ="''vms_prefix':[lib.site_perl]" + $ IF F$TYPE(sitelibexp) .EQS. "" THEN - + sitelibexp ="''vms_prefix':[lib.site_perl]" + $! $!: see if we need a special compiler $! cc_list = "cc/decc|gcc" !%Config-I-VMS, compiler symbols/commands $! *************** *** 1209,1215 **** --- 1405,1413 ---- $ vms_cc_available = "" $! $ OPEN/WRITE CONFIG ccvms.c + $ WRITE CONFIG "#ifdef __DECC" $ WRITE CONFIG "#include " !DECC is sooo picky + $ WRITE CONFIG "#endif" $ WRITE CONFIG "#include " $ WRITE CONFIG "int main() {" $ WRITE CONFIG "#ifdef __DECC" *************** *** 1228,1235 **** $! DEASSIGN SYS$OUTPUT $! DEASSIGN SYS$ERROR $ IF (silent) THEN GOSUB Shut_up - $! echo "%Config-I-VMS, After cc compile $status = >''tmp'<" !diagnostic - $! $ IF tmp.NE.%X10B90001 $ THEN $ IF tmp.NE.%X10000001 --- 1426,1431 ---- *************** *** 1241,1268 **** $! $ GOSUB List_Parse $ IF .NOT.silent THEN echo "" ! $ echo "%Config-I-VMS, Default ""cc"" is ''line' ''archsufx' ''F$GETSYI("VERSION")'" $ IF F$LOCATE("VAX",line).NE.F$LENGTH(line) $ THEN $ IF .NOT.silent $ THEN ! $ echo "%Config-I-VMS, Will try cc/decc..." $ ENDIF ! $ DEFINE SYS$ERROR _NLA0: ! $ DEFINE SYS$OUTPUT _NLA0: $ SET NOON $ cc/decc/NoObj/list=ccvms.lis ccvms.c $ tmp = $status - $ DEASSIGN SYS$OUTPUT - $ DEASSIGN SYS$ERROR $ SET ON $ IF (silent) THEN GOSUB Shut_up $ IF tmp.NE.%X10B90001 $ THEN ! $ echo "%Config-I-VMS, Apparently you don't have that one." $ ELSE $ GOSUB List_parse ! $ echo "%Config-I-VMS, You also have: ''line' ''archsufx' ''F$GETSYI("VERSION")'" $ vms_cc_available = vms_cc_available + "cc/decc " $ ENDIF $ ELSE --- 1437,1462 ---- $! $ GOSUB List_Parse $ IF .NOT.silent THEN echo "" ! $ echo "Default ""cc"" is ''line' ''archsufx' ''F$GETSYI("VERSION")'" $ IF F$LOCATE("VAX",line).NE.F$LENGTH(line) $ THEN $ IF .NOT.silent $ THEN ! $ echo "Will try cc/decc..." $ ENDIF ! $ DEFINE/USER_MODE SYS$ERROR NL: ! $ DEFINE/USER_MODE SYS$OUTPUT NL: $ SET NOON $ cc/decc/NoObj/list=ccvms.lis ccvms.c $ tmp = $status $ SET ON $ IF (silent) THEN GOSUB Shut_up $ IF tmp.NE.%X10B90001 $ THEN ! $ echo "Apparently you don't have that one." $ ELSE $ GOSUB List_parse ! $ echo "You also have: ''line' ''archsufx' ''F$GETSYI("VERSION")'" $ vms_cc_available = vms_cc_available + "cc/decc " $ ENDIF $ ELSE *************** *** 1274,1293 **** $ ENDIF $! $Gcc_initial_check: ! $ echo "%Config-I-VMS, Checking for Gcc" $ OPEN/WRITE CONFIG gccvers.lis ! $ DEFINE SYS$ERROR CONFIG ! $ DEFINE SYS$OUTPUT CONFIG $ 'gcc_symbol'/noobj/version _nla0: $ tmp = $status - $ DEASSIGN SYS$OUTPUT - $ DEASSIGN SYS$ERROR $ IF (silent) THEN GOSUB Shut_up $ CLOSE CONFIG $ IF (tmp.NE.%X10000001).and.(tmp.ne.%X00030001) $ THEN ! $ echo "%Config-I-VMS, Symbol ""''gcc_symbol'"" is not defined. I guess you don't have it." ! $ goto cc_cleanup $ ENDIF $ OPEN/READ CONFIG gccvers.lis $GCC_List_Read: --- 1468,1486 ---- $ ENDIF $! $Gcc_initial_check: ! $ echo "Checking for gcc" $ OPEN/WRITE CONFIG gccvers.lis ! $ DEFINE/USER_MODE SYS$ERROR CONFIG ! $ DEFINE/USER_MODE SYS$OUTPUT CONFIG $ 'gcc_symbol'/noobj/version _nla0: $ tmp = $status $ IF (silent) THEN GOSUB Shut_up $ CLOSE CONFIG $ IF (tmp.NE.%X10000001).and.(tmp.ne.%X00030001) $ THEN ! $ echo "Symbol ""''gcc_symbol'"" is not defined. I guess you do not have it." ! $ DELETE/NOLOG/NOCONFIRM gccvers.lis; ! $ GOTO Cxx_initial_check $ ENDIF $ OPEN/READ CONFIG gccvers.lis $GCC_List_Read: *************** *** 1299,1310 **** $ vms_cc_available = vms_cc_available + "''gcc_symbol' " $ DELETE/NOLOG/NOCONFIRM gccvers.lis; $! $CC_Cleanup: $ DELETE/NOLOG/NOCONFIRM ccvms.*; $CC_Desired: $!: see if we need a special compiler $! echo "" ! $ echo "%Config-I-VMS, available compiler(s):" $ echo "( ''vms_cc_available')" $ IF .NOT.nocc $ THEN --- 1492,1584 ---- $ vms_cc_available = vms_cc_available + "''gcc_symbol' " $ DELETE/NOLOG/NOCONFIRM gccvers.lis; $! + $Cxx_initial_check: + $! + $! Do note that [vms]perl source files have a ways to go before they will + $! compile under CXX. + $! In order to test Configure.com with CXX invoke it with "-Dtry_cxx" on + $! the command line. + $! + $ IF F$TYPE(try_cxx) .EQS. "" THEN try_cxx := n + $ IF try_cxx .OR. try_cxx .EQS. "define" + $! + $ THEN + $! + $ echo "Checking for CXX..." + $ OPEN/WRITE CONFIG ccvms.c + $ WRITE CONFIG "#include " + $ WRITE CONFIG "int main() {" + $ WRITE CONFIG "#ifdef __DECCXX" + $ WRITE CONFIG " cout << __DECCXX, endl;" + $ WRITE CONFIG "#else" + $ WRITE CONFIG " cout << 0,endl;" + $ WRITE CONFIG "#endif" + $! Todo: add G++ identifier check ?? + $ WRITE CONFIG " return(0);" + $ WRITE CONFIG "}" + $ CLOSE CONFIG + $ SET NOON + $ DEFINE/USER_MODE SYS$OUTPUT NL: + $ DEFINE/USER_MODE SYS$ERROR NL: + $ cxx ccvms.c + $ tmp = $status + $ SET ON + $! success $status with: + $! DEC C++ V1.1-001 on VMS VAX V5.5-2 + $! DEC C++ V5.6-013 on OpenVMS VAX V7.1 + $! DEC C++ V6.1-003 on OpenVMS Alpha V7.1 + $! Compaq C++ V6.2-016 for OpenVMS Alpha V7.2-1 + $ IF tmp .eq. %X15F60001 + $ THEN + $! Which linker? + $ SET NOON + $ DEFINE/USER_MODE SYS$OUTPUT NL: + $ DEFINE/USER_MODE SYS$ERROR NL: + $ link ccvms.obj + $ tmp = $status + $ SET ON + $ ! success $status with: + $ ! link && DEC C++ V1.1-001 on VMS VAX V5.5-2 + $ ! link && DEC C++ V5.6-013 on OpenVMS VAX V7.1 + $ IF tmp .eq. %X10000001 + $ THEN + $ ld_try = "Link" + $ vms_cc_available = vms_cc_available + "cxx " + $ echo "CXX and LINK are available." + $ ELSE + $ IF F$SEARCH("ccvms.exe") .NES. "" THEN DELETE/NOLOG/NOCONFIRM ccvms.exe; + $ SET NOON + $ DEFINE/USER_MODE SYS$OUTPUT NL: + $ DEFINE/USER_MODE SYS$ERROR NL: + $ cxxlink ccvms.obj + $ tmp = $status + $ SET ON + $ ! success $status with: + $ ! cxxlink && DEC C++ V6.1-003 on OpenVMS Alpha V7.1 + $ ! cxxlink && Compaq C++ V6.2-016 for OpenVMS Alpha V7.2-1 + $ IF tmp .eq. %X10000001 + $ THEN + $ ld_try = "cxxlink" + $ vms_cc_available = vms_cc_available + "cxx " + $ echo "CXX and CXXLINK are available." + $ ENDIF + $ ENDIF + $ IF F$SEARCH("ccvms.exe") .NES. "" THEN DELETE/NOLOG/NOCONFIRM ccvms.exe; + $ ELSE + $ echo "Nope." + $ ENDIF + $ DELETE/NOLOG/NOCONFIRM ccvms.c; + $ IF F$SEARCH("ccvms.obj") .NES. "" THEN DELETE/NOLOG/NOCONFIRM ccvms.obj; + $ CALL Cxx_demangler_cleanup + $! + $ ENDIF ! 1 .eq. 0 or 1 .eq. 1 + $! $CC_Cleanup: $ DELETE/NOLOG/NOCONFIRM ccvms.*; $CC_Desired: $!: see if we need a special compiler $! echo "" ! $ echo "Available compiler(s):" $ echo "( ''vms_cc_available')" $ IF .NOT.nocc $ THEN *************** *** 1321,1362 **** $ IF (F$LOCATE("dec",ans).NE.F$LENGTH(ans)).or.(F$LOCATE("compaq",ans).NE.F$LENGTH(ans)) $ THEN $ Mcc = "cc/decc" ! $ Using_Dec_C = "Yes" $ C_COMPILER_Replace = "CC=cc=''Mcc'" $ ENDIF ! $ IF Mcc.NES.dflt $ THEN ! $ IF (F$LOCATE("dec",dflt).NE.F$LENGTH(dflt)).or(F$LOCATE("compaq",dflt).NE.F$LENGTH(dflt)) ! $ THEN ! $ C_COMPILER_Replace = "CC=cc=''Mcc'" ! $ ELSE ! $ Using_Dec_C = "Yes" ! $ ENDIF ! $ ELSE ! $ IF Mcc .EQS. "cc/decc" $ THEN ! $ Using_Dec_C = "Yes" ! $ C_COMPILER_Replace = "CC=cc=''Mcc'" $ ENDIF $ ENDIF $ ELSE $ Mcc = dflt $ IF Mcc .EQS. "cc/decc" $ THEN ! $ Using_Dec_C = "Yes" $ C_COMPILER_Replace = "CC=cc=''Mcc'" $ ENDIF $ IF Mcc .EQS. "gcc" $ THEN ! $ Using_Gnu_C = "Yes" $ C_COMPILER_Replace = "CC=cc=''Mcc'" $ ENDIF $ ENDIF $Decc_Version_check: ! $ IF "''Using_Dec_C'".EQS."Yes" $ THEN $ echo "" ! $ echo4 "Checking for Dec C's version number..." !>&4 $ OPEN/WRITE CONFIG deccvers.c $ WRITE CONFIG "#include " !DECC is sooo picky $ WRITE CONFIG "#include " --- 1595,1646 ---- $ IF (F$LOCATE("dec",ans).NE.F$LENGTH(ans)).or.(F$LOCATE("compaq",ans).NE.F$LENGTH(ans)) $ THEN $ Mcc = "cc/decc" ! $ Using_Dec_C := Y $ C_COMPILER_Replace = "CC=cc=''Mcc'" $ ENDIF ! $ IF F$LOCATE("cxx",F$EDIT(ans,"COLLAPSE,LOWERCASE")) .NE. F$LENGTH(ans) $ THEN ! $ Mcc = "cxx" ! $ using_cxx := Y ! $ ld = ld_try ! $ C_COMPILER_Replace = "CC=cc=''Mcc'" ! $ ELSE ! Not_cxx ! $ IF Mcc.NES.dflt $ THEN ! $ IF F$LOCATE("dec",dflt) .NE. F$LENGTH(dflt) .or. - ! F$LOCATE("compaq",dflt) .NE. F$LENGTH(dflt) ! $ THEN ! $ C_COMPILER_Replace = "CC=cc=''Mcc'" ! $ ELSE ! $ Using_Dec_C := Y ! $ ENDIF ! $ ELSE ! $ IF Mcc .EQS. "cc/decc" ! $ THEN ! $ Using_Dec_C := Y ! $ C_COMPILER_Replace = "CC=cc=''Mcc'" ! $ ENDIF $ ENDIF $ ENDIF $ ELSE $ Mcc = dflt $ IF Mcc .EQS. "cc/decc" $ THEN ! $ Using_Dec_C := Y $ C_COMPILER_Replace = "CC=cc=''Mcc'" $ ENDIF $ IF Mcc .EQS. "gcc" $ THEN ! $ Using_Gnu_C := Y $ C_COMPILER_Replace = "CC=cc=''Mcc'" $ ENDIF $ ENDIF $Decc_Version_check: ! $ ccversion="" ! $ IF Using_Dec_C $ THEN $ echo "" ! $ echo4 "Checking for the Dec C version number..." $ OPEN/WRITE CONFIG deccvers.c $ WRITE CONFIG "#include " !DECC is sooo picky $ WRITE CONFIG "#include " *************** *** 1371,1523 **** $ WRITE CONFIG " exit(0);" $ WRITE CONFIG "}" $ CLOSE CONFIG ! $ DEFINE SYS$ERROR _NLA0: ! $ DEFINE SYS$OUTPUT _NLA0: $ 'Mcc' deccvers.c $ tmp = $status - $ DEASSIGN SYS$ERROR _NLA0: - $ DEASSIGN SYS$OUTPUT _NLA0: $ IF (silent) THEN GOSUB Shut_up ! $ DEFINE SYS$ERROR _NLA0: ! $ DEFINE SYS$OUTPUT _NLA0: $ link deccvers.obj $ tmp = $status - $ DEASSIGN SYS$ERROR - $ DEASSIGN SYS$OUTPUT $ IF (silent) THEN GOSUB Shut_up $ OPEN/WRITE CONFIG deccvers.out ! $ DEFINE SYS$ERROR CONFIG ! $ DEFINE SYS$OUTPUT CONFIG $ mcr []deccvers.exe $ tmp = $status $ CLOSE CONFIG - $ DEASSIGN SYS$OUTPUT - $ DEASSIGN SYS$ERROR $ IF (silent) THEN GOSUB Shut_up $ OPEN/READ CONFIG deccvers.out $ READ/END_OF_FILE=Dec_c_cleanup CONFIG line $Dec_c_cleanup: $ CLOSE CONFIG - $! DELETE/NOLOG/NOCONFIRM deccvers.*; $ echo "You are using Dec C ''line'" ! $ Dec_C_Version = line ! $ Dec_C_Version = Dec_C_Version + 0 ! $ if Dec_C_Version.ge.60200000 THEN CC_FLAGS = CC_FLAGS + "/NOANSI_ALIAS" $ ENDIF $Gcc_check: ! $ if "''using_gnu_c'" .eqs. "Yes" $ THEN ! $ vaxcrtl_olb = F$SEARCH("SYS$LIBRARY:VAXCRTL.OLB") ! $ vaxcrtl_exe = F$SEARCH("SYS$SHARE:VAXCRTL.EXE") ! $ gcclib_olb = F$SEARCH("GNU_CC:[000000]GCCLIB.OLB") ! $ IF gcclib_olb .EQS. "" ! $ THEN ! $! These objects/libs come w/ gcc 2.7.2 for AXP: ! $ tmp = F$SEARCH("GNU_CC:[000000]libgcc2.olb") ! $ IF tmp .NES. "" then gcclib_olb = tmp ! $ tmp = F$SEARCH("GNU_CC:[000000]libgcclib.olb") ! $ IF tmp .NES. "" $ THEN ! $ IF gcclib_olb .EQS. "" ! $ THEN gcclib_olb = tmp ! $ ELSE gcclib_olb = gcclib_olb + "/lib," + tmp $ ENDIF ! $ ENDIF ! $ tmp = F$SEARCH("SYS$LIBRARY:VAXCRTL.OLB") ! $ IF tmp .NES. "" ! $ THEN ! $ IF gcclib_olb .EQS. "" ! $ THEN gcclib_olb = tmp ! $ ELSE gcclib_olb = gcclib_olb + "/lib," + tmp $ ENDIF ! $ ENDIF ! $ tmp = F$SEARCH("GNU_CC:[000000]crt0.obj") ! $ IF tmp .NES. "" ! $ THEN ! $ IF gcclib_olb .EQS. "" ! $ THEN gcclib_olb = tmp ! $ ELSE gcclib_olb = gcclib_olb + "/lib," + tmp $ ENDIF $ ENDIF ! $ IF gcclib_olb .EQS. vaxcrtl_olb THEN gcclib_olb = "" !goofy order of axplibs ! $ ELSE ! $ gcclib_olb = gcclib_olb + "/lib" ! $ ENDIF ! $ IF gcclib_olb .NES. "" .AND. - (vaxcrtl_olb .NES. "" .OR. - vaxcrtl_exe .NES. "" ) $ THEN ! $ echo "" ! $ echo4 "Checking for GNU cc in disguise and/or its version number..." !>&4 ! $ OPEN/WRITE CONFIG gccvers.c ! $ WRITE CONFIG "#include " !DECC is sooo picky $ WRITE CONFIG "#include " $ WRITE CONFIG "int main() {" ! $ WRITE CONFIG "#ifdef __GNUC__" ! $ WRITE CONFIG "#ifdef __VERSION__" ! $ WRITE CONFIG " printf(""%s\n"", __VERSION__);" $ WRITE CONFIG "#else" ! $ WRITE CONFIG " printf(""%s\n"", ""1"");" $ WRITE CONFIG "#endif" ! $ WRITE CONFIG "#endif" ! $ WRITE CONFIG " exit(0);" $ WRITE CONFIG "}" $ CLOSE CONFIG ! $ DEFINE SYS$ERROR _NLA0: ! $ DEFINE SYS$OUTPUT _NLA0: ! $ 'Mcc' gccvers.c $ tmp = $status ! $ DEASSIGN SYS$ERROR _NLA0: ! $ DEASSIGN SYS$OUTPUT _NLA0: $ IF (silent) THEN GOSUB Shut_up ! $ DEFINE SYS$ERROR _NLA0: ! $ DEFINE SYS$OUTPUT _NLA0: ! $ IF vaxcrtl_exe .EQS. "" ! $ THEN ! $ IF F$LOCATE("VAXCRTL",gcclib_olb).NE.F$LENGTH(gcclib_olb) ! $ THEN ! $ link gccvers.obj,'gcclib_olb',SYS$LIBRARY:VAXCRTL/Library ! $ tmp = $status ! $ ELSE ! $ link gccvers.obj,'gcclib_olb' ! $ tmp = $status ! $ ENDIF ! $ ELSE ! $ OPEN/WRITE CONFIG GCCVERS.OPT ! $ WRITE CONFIG "SYS$SHARE:VAXCRTL/SHARE" ! $ CLOSE CONFIG ! $ link gccvers.obj,GCCVERS.OPT/OPT,'gcclib_olb' ! $ tmp = $status ! $ ENDIF ! $ DEASSIGN SYS$ERROR ! $ DEASSIGN SYS$OUTPUT $ IF (silent) THEN GOSUB Shut_up ! $ OPEN/WRITE CONFIG gccvers.out ! $ DEFINE SYS$ERROR CONFIG ! $ DEFINE SYS$OUTPUT CONFIG ! $ mcr []gccvers.exe $ tmp = $status $ CLOSE CONFIG - $ DEASSIGN SYS$OUTPUT - $ DEASSIGN SYS$ERROR $ IF (silent) THEN GOSUB Shut_up ! $ OPEN/READ CONFIG gccvers.out ! $ READ/END_OF_FILE=Gcc_cleanup CONFIG line ! $Gcc_cleanup: $ CLOSE CONFIG ! $ DELETE/NOLOG/NOCONFIRM gccvers.*; ! $ IF F$LOCATE("GNU C version ",line).NE.F$LENGTH(line) ! $ THEN ! $ echo "You are not using GNU cc." ! $ GOTO Host_name ! $ ELSE ! $ echo "You are using GNU cc ''line'" ! $ Using_Gnu_C = "Yes" ! $ C_COMPILER_Replace = "CC=cc=''Mcc'" ! $ GOTO Include_dirs ! $ ENDIF $ ENDIF ! $endif $ GOTO Host_name $! $List_Parse: --- 1655,1873 ---- $ WRITE CONFIG " exit(0);" $ WRITE CONFIG "}" $ CLOSE CONFIG ! $ SET NOON ! $ DEFINE/USER_MODE SYS$ERROR NL: ! $ DEFINE/USER_MODE SYS$OUTPUT NL: $ 'Mcc' deccvers.c $ tmp = $status $ IF (silent) THEN GOSUB Shut_up ! $ DEFINE/USER_MODE SYS$ERROR NL: ! $ DEFINE/USER_MODE SYS$OUTPUT NL: $ link deccvers.obj $ tmp = $status $ IF (silent) THEN GOSUB Shut_up $ OPEN/WRITE CONFIG deccvers.out ! $ DEFINE/USER_MODE SYS$ERROR CONFIG ! $ DEFINE/USER_MODE SYS$OUTPUT CONFIG $ mcr []deccvers.exe $ tmp = $status + $ SET ON $ CLOSE CONFIG $ IF (silent) THEN GOSUB Shut_up $ OPEN/READ CONFIG deccvers.out $ READ/END_OF_FILE=Dec_c_cleanup CONFIG line $Dec_c_cleanup: $ CLOSE CONFIG $ echo "You are using Dec C ''line'" ! $ ccversion = line ! $ Dec_C_Version = F$INTEGER(line) ! $ IF Dec_C_Version .GE. 60200000 ! $ THEN ! $ echo4 "adding /NOANSI_ALIAS qualifier to ccflags." ! $ ccflags = ccflags + "/NOANSI_ALIAS" ! $ ENDIF ! $ DELETE/NOLOG/NOCONFIRM deccvers.*; $ ENDIF $Gcc_check: ! $ gccversion = "" ! $ IF Using_Gnu_C $ THEN ! $ vaxcrtl_olb = F$SEARCH("SYS$LIBRARY:VAXCRTL.OLB") ! $ vaxcrtl_exe = F$SEARCH("SYS$SHARE:VAXCRTL.EXE") ! $ gcclib_olb = F$SEARCH("GNU_CC:[000000]GCCLIB.OLB") ! $ IF gcclib_olb .EQS. "" $ THEN ! $! These objects/libs come w/ gcc 2.7.2 for AXP: ! $ tmp = F$SEARCH("GNU_CC:[000000]libgcc2.olb") ! $ IF tmp .NES. "" then gcclib_olb = tmp ! $ tmp = F$SEARCH("GNU_CC:[000000]libgcclib.olb") ! $ IF tmp .NES. "" ! $ THEN ! $ IF gcclib_olb .EQS. "" ! $ THEN gcclib_olb = tmp ! $ ELSE gcclib_olb = gcclib_olb + "/lib," + tmp ! $ ENDIF $ ENDIF ! $ tmp = F$SEARCH("SYS$LIBRARY:VAXCRTL.OLB") ! $ IF tmp .NES. "" ! $ THEN ! $ IF gcclib_olb .EQS. "" ! $ THEN gcclib_olb = tmp ! $ ELSE gcclib_olb = gcclib_olb + "/lib," + tmp ! $ ENDIF $ ENDIF ! $ tmp = F$SEARCH("GNU_CC:[000000]crt0.obj") ! $ IF tmp .NES. "" ! $ THEN ! $ IF gcclib_olb .EQS. "" ! $ THEN gcclib_olb = tmp ! $ ELSE gcclib_olb = gcclib_olb + "/lib," + tmp ! $ ENDIF $ ENDIF + $ IF gcclib_olb .EQS. vaxcrtl_olb THEN gcclib_olb = "" !goofy order of axplibs + $ ELSE + $ gcclib_olb = gcclib_olb + "/lib" $ ENDIF ! $ IF gcclib_olb .NES. "" .AND. - (vaxcrtl_olb .NES. "" .OR. - vaxcrtl_exe .NES. "" ) + $ THEN + $ echo "" + $ echo4 "Checking for GNU cc in disguise and/or its version number..." !>&4 + $ OPEN/WRITE CONFIG gccvers.c + $ WRITE CONFIG "#include " + $ WRITE CONFIG "int main() {" + $ WRITE CONFIG "#ifdef __GNUC__" + $ WRITE CONFIG "#ifdef __VERSION__" + $ WRITE CONFIG " printf(""%s\n"", __VERSION__);" + $ WRITE CONFIG "#else" + $ WRITE CONFIG " printf(""%s\n"", ""1"");" + $ WRITE CONFIG "#endif" + $ WRITE CONFIG "#endif" + $ WRITE CONFIG " exit(0);" + $ WRITE CONFIG "}" + $ CLOSE CONFIG + $ DEFINE SYS$ERROR _NLA0: + $ DEFINE SYS$OUTPUT _NLA0: + $ 'Mcc' gccvers.c + $ tmp = $status + $ DEASSIGN SYS$ERROR _NLA0: + $ DEASSIGN SYS$OUTPUT _NLA0: + $ IF (silent) THEN GOSUB Shut_up + $ DEFINE SYS$ERROR _NLA0: + $ DEFINE SYS$OUTPUT _NLA0: + $ IF vaxcrtl_exe .EQS. "" + $ THEN + $ IF F$LOCATE("VAXCRTL",gcclib_olb).NE.F$LENGTH(gcclib_olb) + $ THEN + $ link gccvers.obj,'gcclib_olb',SYS$LIBRARY:VAXCRTL/Library + $ tmp = $status + $ ELSE + $ link gccvers.obj,'gcclib_olb' + $ tmp = $status + $ ENDIF + $ ELSE + $ OPEN/WRITE CONFIG GCCVERS.OPT + $ WRITE CONFIG "SYS$SHARE:VAXCRTL/SHARE" + $ CLOSE CONFIG + $ link gccvers.obj,GCCVERS.OPT/OPT,'gcclib_olb' + $ tmp = $status + $ ENDIF + $ DEASSIGN SYS$ERROR + $ DEASSIGN SYS$OUTPUT + $ IF (silent) THEN GOSUB Shut_up + $ OPEN/WRITE CONFIG gccvers.out + $ DEFINE SYS$ERROR CONFIG + $ DEFINE SYS$OUTPUT CONFIG + $ mcr []gccvers.exe + $ tmp = $status + $ CLOSE CONFIG + $ DEASSIGN SYS$OUTPUT + $ DEASSIGN SYS$ERROR + $ IF (silent) THEN GOSUB Shut_up + $ OPEN/READ CONFIG gccvers.out + $ READ/END_OF_FILE=Gcc_cleanup CONFIG line + $Gcc_cleanup: + $ CLOSE CONFIG + $ DELETE/NOLOG/NOCONFIRM gccvers.*; + $ IF F$LOCATE("GNU C version ",line).NE.F$LENGTH(line) + $ THEN + $ echo "You are not using GNU cc." + $ GOTO Host_name + $ ELSE + $ echo "You are using GNU cc ''line'" + $ gccversion = line + $ Using_Gnu_C := Y + $ C_COMPILER_Replace = "CC=cc=''Mcc'" + $ GOTO Include_dirs + $ ENDIF + $ ENDIF + $ ENDIF + $Cxx_Version_check: + $ IF using_cxx $ THEN ! $ OPEN/WRITE CONFIG cxxvers.c $ WRITE CONFIG "#include " $ WRITE CONFIG "int main() {" ! $ WRITE CONFIG "#ifdef __DECCXX_VER" ! $ WRITE CONFIG " printf(""%i\n"", __DECCXX_VER);" $ WRITE CONFIG "#else" ! $ WRITE CONFIG " printf(""%i\n"", ""0"");" $ WRITE CONFIG "#endif" ! $ WRITE CONFIG " return(0);" $ WRITE CONFIG "}" $ CLOSE CONFIG ! $ SET NOON ! $ DEFINE/USER_MODE SYS$ERROR NL: ! $ DEFINE/USER_MODE SYS$OUTPUT NL: ! $ 'Mcc' cxxvers.c $ tmp = $status ! $ SET ON $ IF (silent) THEN GOSUB Shut_up ! $ SET NOON ! $ DEFINE/USER_MODE SYS$ERROR NL: ! $ DEFINE/USER_MODE SYS$OUTPUT NL: ! $ 'ld' cxxvers.obj ! $ tmp = $status ! $ SET ON $ IF (silent) THEN GOSUB Shut_up ! $ OPEN/WRITE CONFIG cxxvers.out ! $ SET NOON ! $ DEFINE/USER_MODE SYS$ERROR CONFIG ! $ DEFINE/USER_MODE SYS$OUTPUT CONFIG ! $ mcr []cxxvers.exe $ tmp = $status + $ SET ON $ CLOSE CONFIG $ IF (silent) THEN GOSUB Shut_up ! $ OPEN/READ CONFIG cxxvers.out ! $ READ/END_OF_FILE=Cxx_cleanup CONFIG line ! $Cxx_cleanup: $ CLOSE CONFIG ! $ DELETE/NOLOG/NOCONFIRM cxxvers.*; ! $ echo "You are using CXX ''line'" ! $ cxxversion = line ! $ ccversion = line ! $ CALL Cxx_demangler_cleanup ! $ ENDIF ! $! ! $Cxx_demangler_cleanup: SUBROUTINE ! $! ! $! If we do build with CXX these demangler Dbs will be left all over. ! $! However, configure.com does try to remove the [.UU] sub directory. ! $! Be sure to set default to the correct place before calling this sub. ! $! ! $ SET NOON ! $ IF F$SEARCH("[.CXX_REPOSITORY]*.*") .NES. "" THEN DELETE/NOLOG/NOCONFIRM [.CXX_REPOSITORY]*.*;* ! $ IF F$SEARCH("CXX_REPOSITORY.DIR") .NES. "" ! $ THEN ! $ SET PROTECTION=(SYSTEM:RWED,OWNER:RWED) CXX_REPOSITORY.DIR ! $ DELETE/NOLOG/NOCONFIRM CXX_REPOSITORY.DIR; $ ENDIF ! $ SET ON ! $ EXIT ! $ ENDSUBROUTINE ! Cxx_demangler_cleanup ! $! $ GOTO Host_name $! $List_Parse: *************** *** 1542,1548 **** $ RETURN $! $Include_dirs: ! $!: What should the include directory be ? $ dflt = gcclib_olb $ rp = "Where are the include files you want to use? " $ IF f$length( rp + "[''dflt'] " ).gt.76 --- 1892,1898 ---- $ RETURN $! $Include_dirs: ! $!: What should the include directory be ? (.TLB text libraries) $ dflt = gcclib_olb $ rp = "Where are the include files you want to use? " $ IF f$length( rp + "[''dflt'] " ).gt.76 *************** *** 1608,1620 **** $ myhostname = myhostname - mydomain $ echo "(Trimming domain name from host name--host name is now ''myhostname')" $ IF .NOT.silent ! $ THEN TYPE SYS$INPUT: I need to get your e-mail address in Internet format if possible, i.e. something like user@host.domain. Please answer accurately since I have no easy means to double check it. The default value provided below is most probably close to the reality but may not be valid from outside your organization... $ ENDIF $ dflt = "''cf_by'@''myhostname'"+"''mydomain'" $ rp = "What is your e-mail address? [''dflt'] " --- 1958,1973 ---- $ myhostname = myhostname - mydomain $ echo "(Trimming domain name from host name--host name is now ''myhostname')" $ IF .NOT.silent ! $ THEN ! $ TYPE SYS$INPUT: ! $ DECK I need to get your e-mail address in Internet format if possible, i.e. something like user@host.domain. Please answer accurately since I have no easy means to double check it. The default value provided below is most probably close to the reality but may not be valid from outside your organization... + $ EOD $ ENDIF $ dflt = "''cf_by'@''myhostname'"+"''mydomain'" $ rp = "What is your e-mail address? [''dflt'] " *************** *** 1625,1637 **** $ ENDIF $! $ IF .NOT.silent ! $ THEN TYPE SYS$INPUT: If you or somebody else will be maintaining perl at your site, please fill in the correct e-mail address here so that they may be contacted if necessary. Currently, the "perlbug" program included with perl will send mail to this address in addition to perlbug@perl.com. You may enter "none" for no administrator. $ ENDIF $ dflt = "''cf_email'" $ rp = "Perl administrator e-mail address [''dflt'] " --- 1978,1993 ---- $ ENDIF $! $ IF .NOT.silent ! $ THEN ! $ TYPE SYS$INPUT: ! $ DECK If you or somebody else will be maintaining perl at your site, please fill in the correct e-mail address here so that they may be contacted if necessary. Currently, the "perlbug" program included with perl will send mail to this address in addition to perlbug@perl.com. You may enter "none" for no administrator. + $ EOD $ ENDIF $ dflt = "''cf_email'" $ rp = "Perl administrator e-mail address [''dflt'] " *************** *** 1667,1706 **** $!: see whether socketshr exists $ IF (F$SEARCH(F$PARSE("SocketShr","Sys$Share:.Exe")).NES."") $ THEN ! $ has_socketshr = "T" $ echo "" ! $ echo4 "Hmm... Looks like you have SOCKETSHR's Berkeley networking support." ! $ endif ! $ if (Dec_C_Version .ge. 50200000) $ THEN $ Has_Dec_C_Sockets = "T" $ echo "" ! $ echo4 "Hmm... Looks like you've got Dec C's Berkeley networking support." $ ENDIF $ ! Hey, we've got both. Default to Dec C, then, since it's better ! $ if ("''Has_socketshr'".eq."T") .or.("''has_dec_c_sockets'".eq."T") $ THEN $ echo "" ! $ echo "You've got sockets available. Which socket stack do you want to" ! $ echo "build into perl?" ! $ if "''has_dec_c_sockets'".eqs."T" $ THEN $ dflt = "DECC" $ else $ dflt = "SOCKETSHR" $ endif $ rp = "Choose socket stack (NONE" ! $ if "''has_socketshr'".eqs."T" THEN rp = rp + ",SOCKETSHR" ! $ if "''has_dec_c_sockets'".eqs."T" THEN rp = rp + ",DECC" $ rp = rp + ") [''dflt'] " $ GOSUB myread ! $ IF "''ans'".eqs."" THEN ans = "''dflt'" ! $ has_dec_c_sockets = "F" ! $ has_socketshr = "F" $ ans = F$EDIT(ans,"TRIM,COMPRESS,LOWERCASE") ! $ IF ans.eqs."decc" then has_dec_c_sockets = "T" ! $ IF ans.eqs."socketshr" then has_socketshr = "T" ! $ endif $! $! $! Ask if they want to build with VMS_DEBUG perl --- 2023,2066 ---- $!: see whether socketshr exists $ IF (F$SEARCH(F$PARSE("SocketShr","Sys$Share:.Exe")).NES."") $ THEN ! $ Has_socketshr = "T" $ echo "" ! $ echo4 "Hmm... Looks like you have SOCKETSHR Berkeley networking support." ! $ ELSE ! $ Has_socketshr = "F" ! $ ENDIF ! $ IF (Dec_C_Version .GE. 50200000) .or. using_cxx $ THEN $ Has_Dec_C_Sockets = "T" $ echo "" ! $ echo4 "Hmm... Looks like you have Dec C Berkeley networking support." ! $ ELSE ! $ Has_Dec_C_Sockets = "F" $ ENDIF $ ! Hey, we've got both. Default to Dec C, then, since it's better ! $ IF Has_socketshr .OR. Has_Dec_C_Sockets $ THEN $ echo "" ! $ echo "You have sockets available. Which socket stack do you want to" ! $ echo "build into Perl?" ! $ IF Has_Dec_C_Sockets $ THEN $ dflt = "DECC" $ else $ dflt = "SOCKETSHR" $ endif $ rp = "Choose socket stack (NONE" ! $ IF Has_socketshr THEN rp = rp + ",SOCKETSHR" ! $ IF Has_Dec_C_Sockets THEN rp = rp + ",DECC" $ rp = rp + ") [''dflt'] " $ GOSUB myread ! $ IF ans .EQS. "" THEN ans = "''dflt'" ! $ Has_Dec_C_Sockets = "F" ! $ Has_socketshr = "F" $ ans = F$EDIT(ans,"TRIM,COMPRESS,LOWERCASE") ! $ IF ans.eqs."decc" then Has_Dec_C_Sockets = "T" ! $ IF ans.eqs."socketshr" then Has_socketshr = "T" ! $ ENDIF $! $! $! Ask if they want to build with VMS_DEBUG perl *************** *** 1723,1733 **** $! $! Ask if they want to build with DEBUGGING $ echo "" ! $ echo "Perl can be built with extra runtime debugging enabled. This ! $ echo "enables the -D switch, at the cost of some performance. It ! $ echo "was mandatory on perl 5.005 and before on VMS, but is now ! $ echo "optional. If you don't generally use it you should probably ! $ echo "leave this off and gain a bit of extra speed. $ dflt = "y" $ rp = "Build a DEBUGGING version of Perl? [''dflt'] " $ GOSUB myread --- 2083,2093 ---- $! $! Ask if they want to build with DEBUGGING $ echo "" ! $ echo "Perl can be built with extra runtime debugging enabled. This" ! $ echo "enables the -D switch, at the cost of some performance. It" ! $ echo "was mandatory on perl 5.005 and before on VMS, but is now" ! $ echo "optional. If you do not generally use it you should probably" ! $ echo "leave this off and gain a bit of extra speed." $ dflt = "y" $ rp = "Build a DEBUGGING version of Perl? [''dflt'] " $ GOSUB myread *************** *** 1741,1817 **** $! $! Ask if they want to build with MULTIPLICITY $ echo "" ! $ echo "The perl interpreter engine can be built in a way that makes it ! $ echo "possible for a program that embeds perl into it (and yes, you can ! $ echo "do that--it's pretty keen) to have multiple perl interpreters active ! $ echo "at once. There is some performance overhead, however, so you ! $ echo "probably don't want to choose this unless you're going to be doing ! $ echo "funky perl embedding." $ dflt = "n" ! $ rp = "Build with MULTIPLICITY? [''dflt'] " $ GOSUB myread ! $ if ans.eqs."" then ans = dflt ! $ IF F$EXTRACT(0, 1, F$EDIT(ans,"COLLAPSE,UPCASE")) .eqs. "Y" $ THEN ! $ use_multiplicity="Y" $ ELSE ! $ use_multiplicity="N" $ ENDIF $! $! Ask if they want to build with 64-bit support ! $ IF (Archname.eqs."VMS_AXP").and.("''f$extract(1,3, f$getsyi(""version""))'".ges."7.1") $ THEN $ dflt = use64bitint $ echo "" ! $ echo "You can have native 64-bit long integers. $ echo "" ! $ echo "Perl can be built to take advantage of 64-bit integer types ! $ echo "on some systems, which provide a much larger range for perl's ! $ echo "mathematical operations. (Note that does *not* enable 64-bit $ echo "fileops at the moment, as Dec C doesn't do that yet)." ! $ echo "Choosing this option will most probably introduce binary incompatibilities. $ echo "" ! $ echo "If this doesn't make any sense to you, just accept the default ''dflt'. $ rp = "Try to use 64-bit integers, if available? [''dflt'] " $ GOSUB myread $ IF ans .EQS. "" THEN ans = dflt ! $ IF (f$extract(0, 1, f$edit(ans,"COLLAPSE,UPCASE")) .EQS. "Y") ! $ THEN ! $ use64bitint="Y" ! $ ELSE ! $ use64bitint="N" $ ENDIF $ IF (use64bitint) $ THEN $ dflt = use64bitall $ echo "" ! $ echo "Since you chose 64-bitness you may want to try maximal 64-bitness. ! $ echo "What you have chosen is minimal 64-bitness which means just enough ! $ echo "to get 64-bit integers. The maximal means using as much 64-bitness ! $ echo "as is possible on the platform. This in turn means even more binary ! $ echo "incompatibilities. On the other hand, your platform may not have ! $ echo "any more maximal 64-bitness than what you already have chosen. $ echo "" ! $ echo "If this doesn't make any sense to you, just accept the default ''dflt'. $ rp = "Try to use full 64-bit support, if available? [''dflt'] " $ GOSUB myread $ IF ans .EQS. "" THEN ans = dflt ! $ IF (f$extract(0, 1, f$edit(ans,"COLLAPSE,UPCASE")) .EQS. "Y") ! $ THEN ! $ use64bitall="Y" ! $ ELSE ! $ use64bitall="N" $ ENDIF $ ENDIF $ ENDIF ! AXP && >= 7.1 $! $! Ask about threads, if appropriate ! $ if (Using_Dec_C.eqs."Yes") $ THEN $ echo "" ! $ echo "This version of Perl can be built with threads. While really nifty, ! $ echo "they are a beta feature, and there is a speed penalty for perl ! $ echo "programs if you build with threads *even if you don't use them* $ dflt = "n" $ rp = "Build with threads? [''dflt'] " $ GOSUB myread --- 2101,2172 ---- $! $! Ask if they want to build with MULTIPLICITY $ echo "" ! $ echo "Perl can be built so that multiple Perl interpreters can coexist" ! $ echo "within the same Perl executable." ! $ echo "There is some performance overhead, however, so you" ! $ echo "probably do not want to choose this unless you are going to be" ! $ echo "doing things with embedded perl." $ dflt = "n" ! $ rp = "Build Perl for multiplicity? [''dflt'] " $ GOSUB myread ! $ IF ans.eqs."" then ans = dflt ! $ IF ans $ THEN ! $ usemultiplicity="define" $ ELSE ! $ usemultiplicity="undef" $ ENDIF $! $! Ask if they want to build with 64-bit support ! $ IF (archname.eqs."VMS_AXP").and.("''f$extract(1,3, f$getsyi(""version""))'".ges."7.1") $ THEN $ dflt = use64bitint $ echo "" ! $ echo "You can have native 64-bit long integers." $ echo "" ! $ echo "Perl can be built to take advantage of 64-bit integer types" ! $ echo "on some systems, which provide a much larger range for perl's" ! $ echo "mathematical operations. (Note that does *not* enable 64-bit" $ echo "fileops at the moment, as Dec C doesn't do that yet)." ! $ echo "Choosing this option will most probably introduce binary incompatibilities." $ echo "" ! $ echo "If this does not make any sense to you, just accept the default ''dflt'." $ rp = "Try to use 64-bit integers, if available? [''dflt'] " $ GOSUB myread $ IF ans .EQS. "" THEN ans = dflt ! $ IF ans ! $ THEN use64bitint="Y" ! $ ELSE use64bitint="N" $ ENDIF $ IF (use64bitint) $ THEN $ dflt = use64bitall $ echo "" ! $ echo "Since you chose 64-bitness you may want to try maximal 64-bitness." ! $ echo "What you have chosen is minimal 64-bitness which means just enough" ! $ echo "to get 64-bit integers. The maximal means using as much 64-bitness" ! $ echo "as is possible on the platform. This in turn means even more binary" ! $ echo "incompatibilities. On the other hand, your platform may not have" ! $ echo "any more maximal 64-bitness than what you already have chosen." $ echo "" ! $ echo "If this does not make any sense to you, just accept the default ''dflt'." $ rp = "Try to use full 64-bit support, if available? [''dflt'] " $ GOSUB myread $ IF ans .EQS. "" THEN ans = dflt ! $ IF ans ! $ THEN use64bitall="Y" ! $ ELSE use64bitall="N" $ ENDIF $ ENDIF $ ENDIF ! AXP && >= 7.1 $! $! Ask about threads, if appropriate ! $ IF Using_Dec_C .OR. using_cxx $ THEN $ echo "" ! $ echo "This version of Perl can be built with threads. While really nifty," ! $ echo "they are a beta feature, and there is a speed penalty for perl" ! $ echo "programs if you build with threads *even if you do not use them*." $ dflt = "n" $ rp = "Build with threads? [''dflt'] " $ GOSUB myread *************** *** 1819,1840 **** $ if (f$extract(0, 1, "''ans'").eqs."Y").or.(f$extract(0, 1, "''ans'").eqs."y") $ THEN $ use_threads="T" - $! $ ! Shall we do the 5.005-stype threads, or IThreads? ! $ echo "As of 5.5.640, Perl has two different internal threading ! $ echo "implementations, the 5.005 version (5005threads) and an ! $ echo "interpreter-based version (ithreads) that has one ! $ echo "interpreter per thread. Both are very experimental. This ! $ echo "arrangement exists to help developers work out which one ! $ echo "is better. ! $ echo " ! $ echo "If you're a casual user, you probably don't want ! $ echo "interpreter-threads at this time. There doesn't yet exist ! $ echo "a way to create threads from within Perl in this model, ! $ echo "i.e., ""use Thread;"" will NOT work. ! $ echo " $ dflt = "n" ! $ rp = "Build with Interpreter threads? [''dflt'] $ GOSUB myread $ if ans.eqs."" then ans = dflt $ if (f$extract(0, 1, "''ans'").eqs."Y").or.(f$extract(0, 1, "''ans'").eqs."y") --- 2174,2194 ---- $ if (f$extract(0, 1, "''ans'").eqs."Y").or.(f$extract(0, 1, "''ans'").eqs."y") $ THEN $ use_threads="T" $ ! Shall we do the 5.005-stype threads, or IThreads? ! $ echo "As of 5.5.640, Perl has two different internal threading" ! $ echo "implementations, the 5.005 version (5005threads) and an" ! $ echo "interpreter-based version (ithreads) that has one" ! $ echo "interpreter per thread. Both are very experimental. This" ! $ echo "arrangement exists to help developers work out which one" ! $ echo "is better." ! $ echo "" ! $ echo "If you are a casual user, you probably do not want" ! $ echo "interpreter-threads at this time. There doesn't yet exist" ! $ echo "a way to create threads from within Perl in this model," ! $ echo "i.e., ""use Thread;"" will NOT work." ! $ echo "" $ dflt = "n" ! $ rp = "Build with Interpreter threads? [''dflt'] " $ GOSUB myread $ if ans.eqs."" then ans = dflt $ if (f$extract(0, 1, "''ans'").eqs."Y").or.(f$extract(0, 1, "''ans'").eqs."y") *************** *** 1846,1862 **** $ use_5005_threads="Y" $ ENDIF $ ! Are they on VMS 7.1 on an alpha? ! $ if (Archname.eqs."VMS_AXP").and.("''f$extract(1,3, f$getsyi(""version""))'".ges."7.1") $ THEN $ echo "" ! $ echo "Threaded perl can be linked to use multiple kernel threads ! $ echo "and system upcalls on VMS 7.1+ on Alpha systems. This feature ! $ echo "allows multiple threads to execute simultaneously on an SMP ! $ echo "system as well as preventing a single thread from blocking ! $ echo "all the threads in a program, even on a single-processor ! $ echo "machine. Unfortunately this feature isn't safe on an ! $ echo "unpatched 7.1 system. (Several OS patches were required when ! $ echo "this procedure was written) $ dflt = "n" $ rp = "Enable multiple kernel threads and upcalls? [''dflt'] " $ gosub myread --- 2200,2216 ---- $ use_5005_threads="Y" $ ENDIF $ ! Are they on VMS 7.1 on an alpha? ! $ if (archname.eqs."VMS_AXP").and.("''f$extract(1,3, f$getsyi(""version""))'".ges."7.1") $ THEN $ echo "" ! $ echo "Threaded perl can be linked to use multiple kernel threads" ! $ echo "and system upcalls on VMS 7.1+ on Alpha systems. This feature" ! $ echo "allows multiple threads to execute simultaneously on an SMP" ! $ echo "system as well as preventing a single thread from blocking" ! $ echo "all the threads in a program, even on a single-processor" ! $ echo "machine. Unfortunately, this feature isn't safe on an" ! $ echo "unpatched 7.1 system (several OS patches were required when" ! $ echo "this procedure was written)." $ dflt = "n" $ rp = "Enable multiple kernel threads and upcalls? [''dflt'] " $ gosub myread *************** *** 1868,1914 **** $ ENDIF $ ENDIF $ ENDIF ! $ if archname .eqs. "VMS_AXP" ! $ then ! $! $! Case sensitive? ! $ echo "" ! $ echo "By default, perl (and pretty much everything else on VMS) uses ! $ echo "case-insensitive linker symbols. Which is to say, when the ! $ echo "underlying C code makes a call to a routine called Perl_foo in ! $ echo "the source, the name in the object modules or shareable images ! $ echo "is really PERL_FOO. There are some packages that use an ! $ echo "embedded perl interpreter that instead require case-sensitive ! $ echo "linker symbols. ! $ echo "" ! $ echo "If you have no idea what this means, and don't have ! $ echo "any program requiring anything, choose the default. ! $ dflt = be_case_sensitive ! $ rp = "Case-sensitive symbols [''dflt'] " ! $ gosub myread ! $ if ans.eqs."" then ans="''dflt'" ! $ be_case_sensitive = "''ans'" ! $! $! IEEE math? ! $ echo "" ! $ echo "Perl normally uses G_FLOAT format floating point numbers ! $ echo "internally, as do most things on VMS. You can, however, build ! $ echo "with IEEE floating point numbers instead if you need to. ! $ dflt = use_ieee_math ! $ rp = "Use IEEE math [''dflt'] " ! $ gosub myread ! $ if ans.eqs."" then ans="''dflt'" ! $ use_ieee_math = "''ans'" ! $ endif $! CC Flags $ echo "" ! $ echo "You can, if you need to, pass extra flags on to the C ! $ echo "compiler. In general you should only do this if you really, ! $ echo "really know what you're doing. $ dflt = user_c_flags ! $ rp = "Extra C flags [''dflt'] " ! $ gosub myread ! $ if ans.eqs."" then ans="''dflt'" $ user_c_flags = "''ans'" $! $! Ask whether they want to use secure logical translation when tainting --- 2222,2269 ---- $ ENDIF $ ENDIF $ ENDIF ! $ IF archname .EQS. "VMS_AXP" ! $ THEN $! Case sensitive? ! $ echo "" ! $ echo "By default, perl (and pretty much everything else on VMS) uses" ! $ echo "case-insensitive linker symbols. Which is to say, when the" ! $ echo "underlying C code makes a call to a routine called Perl_foo in" ! $ echo "the source, the name in the object modules or shareable images" ! $ echo "is really PERL_FOO. There are some packages that use an" ! $ echo "embedded perl interpreter that instead require case-sensitive" ! $ echo "linker symbols." ! $ echo "" ! $ echo "If you have no idea what this means, and do not have" ! $ echo "any program requiring anything, choose the default." ! $ dflt = be_case_sensitive ! $ rp = "Build with case-sensitive symbols? [''dflt'] " ! $ GOSUB myread ! $ IF ans .EQS. "" THEN ans="''dflt'" ! $ be_case_sensitive = "''ans'" $! IEEE math? ! $ echo "" ! $ echo "Perl normally uses G_FLOAT format floating point numbers" ! $ echo "internally, as do most things on VMS. You can, however, build" ! $ echo "with IEEE floating point numbers instead if you need to." ! $ dflt = use_ieee_math ! $ rp = "Use IEEE math? [''dflt'] " ! $ GOSUB myread ! $ IF ans .eqs. "" THEN ans = "''dflt'" ! $ use_ieee_math = "''ans'" ! $ ENDIF $! CC Flags $ echo "" ! $ echo "Your compiler may want other flags. For this question you should include" ! $ echo "/INCLUDE=(whatever) and /DEFINE=(whatever), flags and any other flags" ! $ echo "or qualifiers used by the compiler." ! $ echo "" ! $ echo "To use no flags, specify the word ""none""." $ dflt = user_c_flags ! $ rp = "Any additional cc flags? [''dflt'] " ! $ GOSUB myread ! $ IF ans .EQS. "" THEN ans = "''dflt'" ! $ IF ans .EQS. "none" THEN ans = "" $ user_c_flags = "''ans'" $! $! Ask whether they want to use secure logical translation when tainting *************** *** 1929,1936 **** $ dflt = "y" $ rp = "Use secure logical name translation? [''dflt'] " $ GOSUB myread ! $ if ans.eqs."" then ans="''dflt'" ! $ d_secintgenv = f$extract(0, 1, f$edit(ans,"TRIM,COMPRESS,UPCASE")) $! $! Ask whether they want to default filetypes $ echo "" --- 2284,2294 ---- $ dflt = "y" $ rp = "Use secure logical name translation? [''dflt'] " $ GOSUB myread ! $ IF ans .eqs. "" THEN ans = dflt ! $ IF ans ! $ THEN d_secintgenv := Y ! $ ELSE d_secintgenv := N ! $ ENDIF $! $! Ask whether they want to default filetypes $ echo "" *************** *** 1942,1988 **** $ echo """$ perl foo"" would cause Perl to look for foo., then foo.pl, and" $ echo "finally foo.com)." $ echo "" ! $ echo "This is currently broken in some configurations. Only enable it if ! $ echo "you know what you're doing. " ! $ dflt = "N" $ rp = "Always use default file types? [''dflt'] " $ GOSUB myread ! $ if ans.eqs."" then ans="''dflt'" ! $ d_alwdeftype = f$extract(0, 1, f$edit(ans,"COLLAPSE,UPCASE")) ! $! $! Ask if they want to use perl's memory allocator $ echo "" ! $ echo "Perl has a built-in memory allocator that's tuned for perl's ! $ echo "normal memory usage. It's oftentimes better than the standard ! $ echo "system memory allocator. It also has the advantage of providing ! $ echo "memory allocation statistics, if you choose to enable them. $ dflt = "n" ! $ rp = "Build with perl's memory allocator? [''dflt'] " $ GOSUB myread ! $ if ans.eqs."" then ans="''dflt'" ! $ mymalloc = f$extract(0, 1, f$edit(ans,"COLLAPSE,UPCASE")) ! $ if mymalloc.eqs."Y" $ THEN ! $ if use_debugging_perl.eqs."Y" $ THEN $ echo "" ! $ echo "Perl can keep statistics on memory usage if you choose to use ! $ echo "them. This is useful for debugging, but does have some ! $ echo "performance overhead. $ dflt = "n" $ rp = "Do you want the debugging memory allocator? [''dflt'] " $ gosub myread ! $ if ans.eqs."" then ans="''dflt'" $ use_debugmalloc = f$extract(0, 1, f$edit(ans, "COLLAPSE,UPCASE")) $ ENDIF $ ! Check which memory allocator we want $ echo "" ! $ echo "There are currently three different memory allocators: the ! $ echo "default (which is a pretty good general-purpose memory manager), ! $ echo "the TWO_POT allocator (which is optimized to save memory for ! $ echo "larger allocations), and PACK_MALLOC (which is optimized to save ! $ echo "memory for smaller allocations). They're all good, but if your ! $ echo "usage tends towards larger chunks use TWO_POT, otherwise use $ echo "PACK_MALLOC." $ dflt = "DEFAULT" $ rp = "Memory allocator (DEFAULT, TWO_POT, PACK_MALLOC) [''dflt'] " --- 2300,2355 ---- $ echo """$ perl foo"" would cause Perl to look for foo., then foo.pl, and" $ echo "finally foo.com)." $ echo "" ! $ echo "This is currently broken in some configurations. Only enable it if" ! $ echo "you know what you are doing." ! $ dflt = "n" $ rp = "Always use default file types? [''dflt'] " $ GOSUB myread ! $ IF ans .EQS. "" THEN ans = dflt ! $ IF ans ! $ THEN d_alwdeftype := Y ! $ ELSE d_alwdeftype := N ! $ ENDIF $! Ask if they want to use perl's memory allocator $ echo "" ! $ echo "Perl has a built-in memory allocator that is tuned for normal" ! $ echo "memory usage. It is oftentimes better than the standard system" ! $ echo "memory allocator. It also has the advantage of providing memory" ! $ echo "allocation statistics, if you choose to enable them." $ dflt = "n" ! $ IF F$TYPE(usemymalloc) .EQS. "STRING" ! $ THEN ! $ IF usemymalloc THEN dflt = "y" ! $ ENDIF ! $ rp = "Do you wish to attempt to use the malloc that comes with ''package'? [''dflt'] " $ GOSUB myread ! $ IF ans .eqs. "" THEN ans = dflt ! $ IF ans ! $ THEN mymalloc := Y ! $ ELSE mymalloc := N ! $ ENDIF ! $ IF mymalloc $ THEN ! $ IF use_debugging_perl $ THEN $ echo "" ! $ echo "Perl can keep statistics on memory usage if you choose to use" ! $ echo "them. This is useful for debugging, but does have some" ! $ echo "performance overhead." $ dflt = "n" $ rp = "Do you want the debugging memory allocator? [''dflt'] " $ gosub myread ! $ IF ans .eqs. "" THEN ans = "''dflt'" $ use_debugmalloc = f$extract(0, 1, f$edit(ans, "COLLAPSE,UPCASE")) $ ENDIF $ ! Check which memory allocator we want $ echo "" ! $ echo "There are currently three different memory allocators: the" ! $ echo "default (which is a pretty good general-purpose memory manager)," ! $ echo "the TWO_POT allocator (which is optimized to save memory for" ! $ echo "larger allocations), and PACK_MALLOC (which is optimized to save" ! $ echo "memory for smaller allocations). They're all good, but if your" ! $ echo "usage tends towards larger chunks use TWO_POT, otherwise use" $ echo "PACK_MALLOC." $ dflt = "DEFAULT" $ rp = "Memory allocator (DEFAULT, TWO_POT, PACK_MALLOC) [''dflt'] " *************** *** 1994,2010 **** $! $! Ask for their default list of extensions to build $ echo "" ! $ echo "It's time to specify which modules you want to build into ! $ echo "perl. Most of these are standard and should be chosen, though ! $ echo "you might, for example, want to build GDBM_File instead of ! $ echo "SDBM_File if you have the GDBM library built on your machine. ! $ echo "Whatever you do, make sure the re module is first or things will ! $ echo "break badly" ! $ echo " $ echo "Which modules do you want to build into perl?" $! dflt = "Fcntl Errno File::Glob IO Opcode Byteloader Devel::Peek Devel::DProf Data::Dumper attrs re VMS::Stdio VMS::DCLsym B SDBM_File" ! $ dflt = "re Fcntl Errno File::Glob IO Opcode Devel::Peek Devel::DProf Data::Dumper attrs VMS::Stdio VMS::DCLsym B SDBM_File Thread Sys::Hostname" ! $ if Using_Dec_C.eqs."Yes" $ THEN $ dflt = dflt + " POSIX" $ ENDIF --- 2361,2375 ---- $! $! Ask for their default list of extensions to build $ echo "" ! $ echo "It is time to specify which modules you want to build into" ! $ echo "perl. Most of these are standard and should be chosen, though" ! $ echo "you might, for example, want to build GDBM_File instead of" ! $ echo "SDBM_File if you have the GDBM library built on your machine." ! $ echo "" $ echo "Which modules do you want to build into perl?" $! dflt = "Fcntl Errno File::Glob IO Opcode Byteloader Devel::Peek Devel::DProf Data::Dumper attrs re VMS::Stdio VMS::DCLsym B SDBM_File" ! $ dflt = "re Fcntl Errno File::Glob IO Opcode Devel::Peek Devel::DProf Data::Dumper attrs VMS::Stdio VMS::DCLsym B SDBM_File Storable Thread Sys::Hostname" ! $ IF Using_Dec_C .OR. using_cxx $ THEN $ dflt = dflt + " POSIX" $ ENDIF *************** *** 2046,2056 **** $ dflt = f$edit(a,"trim") $! $ extensions = "''ans'" ! $ perl_known_extensions = "''dflt'" $! $! %Config-I-VMS, determine build/make utility here (make gmake mmk mms) $ echo "" ! $ echo "%Config-I-VMS, Checking your ""make"" utilities..." $! If the 'build' that you use is not here add it and it's test $! switch to the _END_ of these strings (and increment max_build) $! (e.g. builders = builders + "/FOOMAKE" --- 2411,2421 ---- $ dflt = f$edit(a,"trim") $! $ extensions = "''ans'" ! $ known_extensions = "''dflt'" $! $! %Config-I-VMS, determine build/make utility here (make gmake mmk mms) $ echo "" ! $ echo "Checking your ""make"" utilities..." $! If the 'build' that you use is not here add it and it's test $! switch to the _END_ of these strings (and increment max_build) $! (e.g. builders = builders + "/FOOMAKE" *************** *** 2073,2083 **** $ build = F$ELEMENT(n,"/",builders) $ probe = F$ELEMENT(n,"!",probers) $ echo "Testing whether you have ''build' on your system..." $ SET NOON $ ON CONTROL_Y THEN GOTO Reenable_messages_build $ SET MESSAGE/NOFAC/NOSEV/NOIDENT/NOTEXT $ 'build' 'probe' ! $ IF ($SEVERITY .EQ. 1) $ THEN $ echo "OK." $ IF (build .EQS. orig_dflt) --- 2438,2453 ---- $ build = F$ELEMENT(n,"/",builders) $ probe = F$ELEMENT(n,"!",probers) $ echo "Testing whether you have ''build' on your system..." + $! + $! Noted with GNU Make version 3.60 that the $status and $severity + $! with the 'probe' Makefile appear to be: $STATUS == "%X1000000C" + $! $SEVERITY == "4". + $! $ SET NOON $ ON CONTROL_Y THEN GOTO Reenable_messages_build $ SET MESSAGE/NOFAC/NOSEV/NOIDENT/NOTEXT $ 'build' 'probe' ! $ IF ($SEVERITY .EQ. 1) ! not adequate? $ THEN $ echo "OK." $ IF (build .EQS. orig_dflt) *************** *** 2101,2107 **** $ THEN $ echo "Here is the list of builders you can apparently use:" $ echo "(",ok_builders," )" ! $ rp = "Which """"make"""" utility do you wish to use [''dflt']? " $ GOSUB myread $ ans = F$EDIT(ans,"TRIM, COMPRESS") $ ans = F$EXTRACT(0,F$LOCATE(" ",ans),ans) !throw out "-f Makefile." here --- 2471,2477 ---- $ THEN $ echo "Here is the list of builders you can apparently use:" $ echo "(",ok_builders," )" ! $ rp = "Which """"make"""" utility do you wish to use? [''dflt'] " $ GOSUB myread $ ans = F$EDIT(ans,"TRIM, COMPRESS") $ ans = F$EXTRACT(0,F$LOCATE(" ",ans),ans) !throw out "-f Makefile." here *************** *** 2111,2128 **** $ ENDIF $ ELSE $ TYPE SYS$INPUT: %Config-E-VMS, ERROR: Well this looks pretty serious. Perl5 cannot be compiled without a "make" utility of some sort and after checking my "builders" list I cannot find the symbol or command you use on your system to compile programs. ! $ READ SYS$COMMAND/PROMPT="%Config-I-VMS, Which ""MMS"" do you use? " ans $ ans = F$EDIT(ans,"TRIM, COMPRESS") $ ans = F$EXTRACT(0,F$LOCATE(" ",ans),ans) !throw out "-f Makefile." here $ IF (ans .EQS. "") $ THEN build = dflt ! $ echo "I don't know where 'make' is, and my life depends on it." $ echo "Go find a make program or fix your DCL$PATH setting!" $ echo "ABORTING..." $ SET DEFAULT 'vms_default_directory_name' !be kind rewind --- 2481,2500 ---- $ ENDIF $ ELSE $ TYPE SYS$INPUT: + $ DECK %Config-E-VMS, ERROR: Well this looks pretty serious. Perl5 cannot be compiled without a "make" utility of some sort and after checking my "builders" list I cannot find the symbol or command you use on your system to compile programs. ! $ EOD ! $ READ SYS$COMMAND/PROMPT="Which ""MMS"" do you use? " ans $ ans = F$EDIT(ans,"TRIM, COMPRESS") $ ans = F$EXTRACT(0,F$LOCATE(" ",ans),ans) !throw out "-f Makefile." here $ IF (ans .EQS. "") $ THEN build = dflt ! $ echo "I do not know where ""make"" is, and my life depends on it." $ echo "Go find a make program or fix your DCL$PATH setting!" $ echo "ABORTING..." $ SET DEFAULT 'vms_default_directory_name' !be kind rewind *************** *** 2137,2149 **** --- 2509,2525 ---- $ GOTO Beyond_open $Open_error: $ TYPE SYS$INPUT: + $ DECK There seems to be trouble. I just tried to create a file in + $ EOD $ echo4 'F$ENVIRONMENT("DEFAULT")' $ TYPE SYS$INPUT: + $ DECK but was unsuccessful. I am stopping now. Please check that directories' PROTECTION bits. I will leave you in the directory where you started Configure.com + $ EOD $ echo4 "ABORTING..." $ GOTO Clean_up $ STOP *************** *** 2155,2161 **** $! $!: locate the preferred pager for this system $!pagers = "most|more|less|type/page" ! $!rp='What pager is used on your system?' $! $! update [.vms]config.vms here $! --- 2531,2547 ---- $! $!: locate the preferred pager for this system $!pagers = "most|more|less|type/page" ! $ dflt = "type/page" ! $! assume that the presence of a most symbol indicates the presence ! $! of the pager. ! $ IF F$TYPE(most) .EQS. "STRING" THEN dflt = "most" ! $ IF F$TYPE(pager) .EQS. "STRING" THEN dflt = pager ! $ rp="What pager is used on your system? [''dflt'] " ! $ GOSUB myread ! $ IF (ans .EQS. "") ! $ THEN pager = dflt ! $ ELSE pager = ans ! $ ENDIF $! $! update [.vms]config.vms here $! *************** *** 2167,2232 **** $ makefile = "" !wrt MANIFEST dir $ UUmakefile = "[-]DESCRIP.MMS" !wrt CWD dir $ DEFmakefile = "DESCRIP.MMS" !wrt DEF dir (?) $ ELSE $ makefile = " -f Makefile." !wrt MANIFEST dir $ UUmakefile = "[-]Makefile." !wrt CWD dir $ DEFmakefile = "Makefile." !wrt DEF dir (?) $ ENDIF $! ! $ IF macros.NES."" ! $ THEN $ tmp = F$LENGTH(macros) $ macros = F$EXTRACT(0,(tmp-1),macros) !miss trailing comma $ macros = "/macro=(" + macros + ")" $ ENDIF $! Build up the extra C flags $! ! $ if use_ieee_math ! $ then $ extra_flags = "''extra_flags'" + "/float=ieee/ieee=denorm_results" ! $ endif ! $ if be_case_sensitive ! $ then $ extra_flags = "''extra_flags'" + "/Names=As_Is" ! $ endif $ extra_flags = "''extra_flags'" + "''user_c_flags'" $! ! $! Invoke the subconfig piece $! $ echo "" ! $ echo4 "Checking the C run-time library" ! $ dflt = F$ENVIRONMENT("DEFAULT") ! $ SET DEFAULT [-.vms] ! $ @subconfigure ! $ SET DEFAULT 'dflt $! ! $! Warn of dangerous symbols or logical names $! ! $Bad_environment: SUBROUTINE ! $ Bad_env = "" ! $ IF p2 .eqs. "SYMBOL" ! $ THEN ! $ IF f$type('p1) .nes. "" THEN Bad_env := SYMBOL ! $ ELSE ! $ IF f$trnlnm(p1) .nes. "" THEN Bad_env := LOGICAL ! $ ENDIF ! $ IF Bad_env .eqs. "SYMBOL" .or. Bad_env .eqs. "LOGICAL" ! $ THEN ! $ IF f$search("config.msg") .nes. "" ! $ THEN ! $ OPEN/APPEND CONFIG config.msg ! $ ELSE ! $ OPEN/WRITE CONFIG config.msg ! $ ENDIF ! $ IF Bad_env .eqs. "SYMBOL" ! $ THEN ! $ WRITE CONFIG "" ! $ WRITE CONFIG "Symbol name ''p1' found in environment as " + &p1 $ WRITE CONFIG " delete before building ''package' via:" $ WRITE CONFIG " $ DELETE/SYMBOL/GLOBAL ''p1'" $ IF f$locate("""",&p1) .ge. f$length(&p1) $ THEN ! $ WRITE CONFIG " after building, testing, and installing ''package' $ WRITE CONFIG " restore the symbol with:" $ WRITE CONFIG " $ ''p1' == """ + &p1 + """" $ ENDIF --- 2553,5584 ---- $ makefile = "" !wrt MANIFEST dir $ UUmakefile = "[-]DESCRIP.MMS" !wrt CWD dir $ DEFmakefile = "DESCRIP.MMS" !wrt DEF dir (?) + $ Makefile_SH = "descrip_mms.template" $ ELSE $ makefile = " -f Makefile." !wrt MANIFEST dir $ UUmakefile = "[-]Makefile." !wrt CWD dir $ DEFmakefile = "Makefile." !wrt DEF dir (?) + $ Makefile_SH = "Makefile.in" $ ENDIF $! ! $ IF macros .NES. "" ! $ THEN $ tmp = F$LENGTH(macros) $ macros = F$EXTRACT(0,(tmp-1),macros) !miss trailing comma $ macros = "/macro=(" + macros + ")" $ ENDIF $! Build up the extra C flags $! ! $ IF use_ieee_math ! $ THEN $ extra_flags = "''extra_flags'" + "/float=ieee/ieee=denorm_results" ! $ ENDIF ! $ IF be_case_sensitive ! $ THEN $ extra_flags = "''extra_flags'" + "/Names=As_Is" ! $ ENDIF $ extra_flags = "''extra_flags'" + "''user_c_flags'" $! ! $ min_pgflquota = "100000" ! $ pgflquota = F$STRING(F$GETJPI("","PGFLQUOTA")) ! $ IF pgflquota .LES. min_pgflquota ! $ THEN ! $ echo4 "Your PGFLQUOTA of ''pgflquota' appears too small to build ''package'." ! $ READ SYS$COMMAND/PROMPT="Continue? [n] " ans ! $ IF ans ! $ THEN ! $ echo4 "Continuing..." ! $ ELSE ! $ echo4 "ABORTING..." ! $ GOTO Clean_up ! $ ENDIF ! $ ENDIF $! $ echo "" ! $ echo4 "Checking the C run-time library." $! ! $! Former SUBCONFIGURE.COM $! ! $! - build a config.sh for VMS Perl. ! $! - use built config.sh to take config_h.SH -> config.h ! $! - also take vms/descrip_mms.template -> descrip.mms (VMS Makefile) ! $! vms/Makefile.in -> Makefile. (VMS GNU Makefile?) ! $! vms/Makefile.SH -> Makefile. (VMS GNU Makefile?) ! $! - build make_ext.com extension builder procedure. ! $! ! $! Note for folks from other platforms changing things in here: ! $! ! $! Fancy changes (based on compiler capabilities or VMS version or ! $! whatever) are tricky, so go ahead and punt on those. ! $! ! $! Simple changes, though (say, always setting something to 1, or undef, ! $! or something like that) are straightforward. Adding a new constant ! $! item for the ultimately created config.sh requires at least one ! $! (possibly more) line(s) to this file. ! $! ! $! Add a line in the format: ! $! ! $! $ WC "foo='undef'" ! $! ! $! somewhere between the line tagged '##BEGIN WRITE NEW CONSTANTS HERE##' ! $! and the one tagged '##END WRITE NEW CONSTANTS HERE##' (note the order ! $! is sorted ASCII and corresponds to the output of config.sh in the ! $! Bourne shell version of Configure). ! $! Be very careful with quoting, as it can be tricky. ! $! For example if instead of a constant string like 'undef' or 'define' ! $! you wanted to add something to VMS's config.sh that looks like: ! $! ! $! blank_string='' ! $! ! $! then add a line that looks like this before the ! $! '##END WRITE NEW CONSTANTS HERE##' tagged line: ! $! ! $! $ WC "blank_string='" + "'" ! $! ! $! (+ is the string concatenator and "''var'" has the effect ! $! of "${var}" in perl or sh, but "'const'" is not interpolated). ! $! ! $! Note that unitialized variables, such as a line like: ! $! ! $! $ WC "new_var='" + new_var + "'" ! $! ! $! should be avoided unless new_var has a value assigned prior ! $! to that line (think of perl's -w warnings). ! $! ! $! %DCL-W-UNDSYM, undefined symbol - check validity and spelling ! $! \NEW_VAR\ ! $! ! $! ! $ vms_ver = F$EXTRACT(1,3, osvers) ! $ IF F$LENGTH(Mcc) .EQ. 0 THEN Mcc := "cc" ! $ MCC = f$edit(mcc, "UPCASE") ! $ C_Compiler_Replace := "CC=CC=''Mcc'''ccflags'" ! $ IF Using_Dec_C ! $ THEN ! $ Checkcc := "''Mcc'/prefix=all" ! $ ELSE ! $ IF using_cxx ! $ THEN ! $ Checkcc := cxx ! $ ELSE ! $ Checkcc := "''Mcc'" ! $ ENDIF ! $ ENDIF ! $ ccflags = ccflags + extra_flags ! $ IF be_case_sensitive ! $ THEN ! $ d_vms_be_case_sensitive = "define" ! $ ELSE ! $ d_vms_be_case_sensitive = "undef" ! $ ENDIF ! $! Some constant defaults. ! $ hwname = f$getsyi("HW_NAME") ! $ myname = myhostname ! $ IF myname .EQS. "" THEN myname = F$TRNLNM("SYS$NODE") ! $! ! $ ccdlflags="" ! $ cccdlflags="" ! $! ! $ IF use64bitint .OR. use64bitint .EQS. "define" ! $ THEN ! $ use64bitint = "define" ! $ uselargefiles = "define" ! $ uselongdouble = "define" ! $ usemorebits = "define" ! $ ELSE ! $ use64bitint = "undef" ! $ uselargefiles = "undef" ! $ uselongdouble = "undef" ! $ usemorebits = "undef" ! $ ENDIF ! $ IF use64bitall .OR. use64bitall .EQS. "define" ! $ THEN ! $ use64bitall = "define" ! $ ELSE ! $ use64bitall = "undef" ! $ ENDIF ! $! ! $ usemymalloc=mymalloc ! $! ! $ perl_cc=Mcc ! $! ! $ IF (sharedperl .AND. F$GETSYI("HW_MODEL") .GE. 1024) ! $ THEN ! $ obj_ext=".abj" ! $ so="axe" ! $ dlext="axe" ! $ exe_ext=".axe" ! $ lib_ext=".alb" ! $ ELSE ! $ obj_ext=".obj" ! $ so="exe" ! $ dlext="exe" ! $ exe_ext=".exe" ! $ lib_ext=".olb" ! $ ENDIF ! $ dlobj="dl_vms''obj_ext'" ! $! ! $ cppstdin="''perl_cc'/noobj/preprocess=sys$output sys$input" ! $ cppminus=" " ! $ cpprun="''perl_cc'/noobj/preprocess=sys$output sys$input" ! $ cpplast=" " ! $! ! $ timetype="time_t" ! $ signal_t="void" ! $ stdchar="char" ! $! ! $ IF mymalloc ! $ THEN d_mymalloc="define" ! $ ELSE d_mymalloc="undef" ! $ ENDIF ! $! ! $ usedl="define" ! $ startperl="""$ perl 'f$env(\""procedure\"")' \""'"+"'p1'\"" \""'"+"'p2'\"" \""'"+"'p3'\"" \""'"+"'p4'\"" \""'"+"'p5'\"" \""'"+"'p6'\"" \""'"+"'p7'\"" \""'"+"'p8'\""!\n" ! $ startperl=startperl + "$ exit++ + ++$status!=0 and $exit=$status=undef; while($#ARGV != -1 and $ARGV[$#ARGV] eq '"+"'){pop @ARGV;}""" ! $! ! $ IF ((Use_Threads) .AND. (vms_ver .LES. "6.2")) ! $ THEN ! $ libs="SYS$SHARE:CMA$LIB_SHR.EXE/SHARE SYS$SHARE:CMA$RTL.EXE/SHARE SYS$SHARE:CMA$OPEN_LIB_SHR.exe/SHARE SYS$SHARE:CMA$OPEN_RTL.exe/SHARE" ! $ ELSE ! $ libs=" " ! $ ENDIF ! $ IF Using_Dec_C .OR. using_cxx ! $ THEN ! $ libc="(DECCRTL)" ! $ ELSE ! $ libc=" " ! $ ENDIF ! $! ! $! perllibs should be libs with all non-core libs (such as gdbm) removed. ! $! ! $ perllibs=libs ! $! ! $! Are we 64 bit? ! $! ! $ IF use64bitint .OR. use64bitint .EQS. "define" ! $ THEN ! $ d_PRId64 = "define" ! $ d_PRIEUldbl = "define" ! $ d_PRIFUldbl = "define" ! $ d_PRIGUldbl = "define" ! $ d_PRIeldbl = "define" ! $ d_PRIfldbl = "define" ! $ d_PRIgldbl = "define" ! $ d_PRIu64 = "define" ! $ d_PRIo64 = "define" ! $ d_PRIx64 = "define" ! $ sPRId64 = """Ld""" ! $ sPRIEUldbl = """LE""" ! $ sPRIFUldbl = """LF""" ! $ sPRIGUldbl = """LG""" ! $ sPRIXU64 = """LX""" ! $ sPRIeldbl = """Le""" ! $ sPRIfldbl = """Lf""" ! $ sPRIgldbl = """Lg""" ! $ sPRIi64 = """Li""" ! $ sPRIo64 = """Lo""" ! $ sPRIu64 = """Lu""" ! $ sPRIx64 = """Lx""" ! $ d_quad = "define" ! $ quadtype = "long long" ! $ uquadtype = "unsigned long long" ! $ quadkind = "QUAD_IS_LONG_LONG" ! $ d_frexpl = "define" ! $ d_isnan = "define" ! $ d_isnanl = "define" ! $ d_modfl = "define" ! $ ELSE ! $ d_PRId64 = "undef" ! $ d_PRIEUldbl = "define" ! $ d_PRIFUldbl = "define" ! $ d_PRIGUldbl = "define" ! $ d_PRIXU64 = "undef" ! $ d_PRIeldbl = "define" ! $ d_PRIfldbl = "undef" ! $ d_PRIgldbl = "undef" ! $ d_PRIu64 = "undef" ! $ d_PRIo64 = "undef" ! $ d_PRIx64 = "undef" ! $ sPRId64 = "" ! $ sPRIEUldbl = """E""" ! $ sPRIFUldbl = """F""" ! $ sPRIGUldbl = """G""" ! $ sPRIXU64 = """lX""" ! $ sPRIeldbl = """e""" ! $ sPRIfldbl = """f""" ! $ sPRIgldbl = """g""" ! $ sPRIi64 = "" ! $ sPRIo64 = "" ! $ sPRIu64 = "" ! $ sPRIx64 = "" ! $ d_quad = "undef" ! $ quadtype = "long" ! $ uquadtype = "unsigned long" ! $ quadkind = "QUAD_IS_LONG" ! $ d_frexpl = "undef" ! $ d_isnan = "undef" ! $ d_isnanl = "undef" ! $ d_modfl = "undef" ! $ ENDIF ! $ d_SCNfldbl = d_PRIfldbl ! $ sSCNfldbl = sPRIfldbl ! expect consistency ! $! ! $! Now some that we build up ! $! ! $ IF Use_Threads ! $ THEN ! $ IF use_5005_threads ! $ THEN ! $ arch = "''arch'-thread" ! $ archname = "''archname'-thread" ! $ d_old_pthread_create_joinable = "undef" ! $ old_pthread_create_joinable = " " ! $ use5005threads = "define" ! $ useithreads = "undef" ! $ ELSE ! $ arch = "''arch'-ithread" ! $ archname = "''archname'-ithread" ! $ d_old_pthread_create_joinable = "undef" ! $ old_pthread_create_joinable = " " ! $ use5005threads = "undef" ! $ useithreads = "define" ! $ ENDIF ! $ ELSE ! $ d_old_pthread_create_joinable = "undef" ! $ old_pthread_create_joinable = " " ! $ use5005threads = "undef" ! $ useithreads = "undef" ! $ ENDIF ! $! ! $! Some that we need to invoke the compiler for ! $! ! $! ! $! handy construction aliases/symbols ! $! ! $ OS := "open/write CONFIG []try.c" ! $ WS := "write CONFIG" ! $ CS := "close CONFIG" ! $ DS := "delete/nolog/noconfirm []try.*;*" ! $ Needs_Opt := N ! $ good_compile = %X10B90001 ! $ IF Using_Gnu_C ! $ THEN ! $ open/write OPTCHAN []try.opt ! $ write OPTCHAN "Gnu_CC:[000000]gcclib.olb/library" ! $ write OPTCHAN "Sys$Share:VAXCRTL/Share" ! $ Close OPTCHAN ! $ Needs_Opt := Y ! $ good_compile = %X10000001 ! $ ENDIF ! $ IF using_cxx ! $ THEN ! $ good_compile = %X15F60001 ! $ ENDIF ! $ good_link = %X10000001 ! $ tmp = "" ! null string default ! $! ! $ GOTO beyond_compile_ok ! $! ! $! Check for type sizes ! $! ! $type_size_check: ! $! ! $ OS ! $ WS "#if defined(__DECC) || defined(__DECCXX)" ! $ WS "#include " ! $ WS "#endif" ! $ WS "#include " ! $ WS "int main()" ! $ WS "{" ! $ WS "printf(""%d\n"", sizeof(''tmp'));" ! $ WS "exit(0);" ! $ WS "}" ! $ CS ! $ GOSUB compile ! $ RETURN ! $! ! $!: locate header file ! $findhdr: ! $! ! $ OS ! $ WS "#if defined(__DECC) || defined(__DECCXX)" ! $ WS "#include " ! $ WS "#endif" ! $ WS "#include " ! $ WS "#include <''tmp'>" ! $ WS "int main()" ! $ WS "{" ! $ WS "printf(""define\n"");" ! $ WS "exit(0);" ! $ WS "}" ! $ CS ! $ GOSUB link_ok ! $ RETURN ! $! ! $!: define an alternate in-header-list? function ! $inhdr: ! $! ! $ GOSUB findhdr ! $ IF compile_status .EQ. good_compile .AND. link_status .EQ. good_link ! $ THEN ! $ echo4 "<''tmp'> found." ! $ tmp = "define" ! $ ELSE ! $ echo4 "<''tmp'> NOT found." ! $ tmp = "undef" ! $ ENDIF ! $ RETURN ! $! ! $!: define an is-in-libc? function ! $inlibc: ! $ GOSUB link_ok ! $ IF compile_status .EQ. good_compile .AND. link_status .EQ. good_link ! $ THEN ! $ echo4 "''tmp'() found." ! $ tmp = "define" ! $ ELSE ! $ echo4 "''tmp'() NOT found." ! $ tmp = "undef" ! $ ENDIF ! $ RETURN ! $! ! $!: define a shorthand compile call ! $compile: ! $ GOSUB link_ok ! $just_mcr_it: ! $ IF compile_status .EQ. good_compile .AND. link_status .EQ. good_link ! $ THEN ! $ OPEN/WRITE CONFIG []try.out ! $ DEFINE/USER_MODE SYS$ERROR CONFIG ! $ DEFINE/USER_MODE SYS$OUTPUT CONFIG ! $ MCR []try.exe ! $ CLOSE CONFIG ! $ OPEN/READ CONFIG []try.out ! $ READ CONFIG tmp ! $ CLOSE CONFIG ! $ DELETE/NOLOG/NOCONFIRM []try.out; ! $ DELETE/NOLOG/NOCONFIRM []try.exe; ! $ ELSE ! $ tmp = "" ! null string default ! $ ENDIF ! $ RETURN ! $! ! $link_ok: ! $ GOSUB compile_ok ! $ DEFINE/USER_MODE SYS$ERROR _NLA0: ! $ DEFINE/USER_MODE SYS$OUTPUT _NLA0: ! $ SET NOON ! $ IF Needs_Opt ! $ THEN ! $ 'ld' try.obj,try.opt/opt ! $ link_status = $status ! $ ELSE ! $ 'ld' try.obj ! $ link_status = $status ! $ ENDIF ! $ SET ON ! $ IF F$SEARCH("try.obj") .NES. "" THEN DELETE/NOLOG/NOCONFIRM try.obj; ! $ RETURN ! $! ! $!: define a shorthand compile call for compilations that should be ok. ! $compile_ok: ! $ DEFINE/USER_MODE SYS$ERROR _NLA0: ! $ DEFINE/USER_MODE SYS$OUTPUT _NLA0: ! $ SET NOON ! $ 'Checkcc' try.c ! $ compile_status = $status ! $ SET ON ! $ DELETE/NOLOG/NOCONFIRM try.c; ! $ RETURN ! $! ! $beyond_compile_ok: ! $! ! $! Check for __STDC__ ! $! ! $ OS ! $ WS "#if defined(__DECC) || defined(__DECCXX)" ! $ WS "#include " ! $ WS "#endif" ! $ WS "#include " ! $ WS "int main()" ! $ WS "{" ! $ WS "#ifdef __STDC__" ! $ WS "printf(""42\n"");" ! $ WS "#else" ! $ WS "printf(""1\n"");" ! $ WS "#endif" ! $ WS "exit(0);" ! $ WS "}" ! $ CS ! $ GOSUB compile ! $ cpp_stuff=tmp ! $ IF F$INTEGER(tmp) .eq. 42 ! $ THEN ! $ echo4 "Your C compiler and pre-processor defines the symbol:" ! $ echo4 "__STDC__" ! $ ENDIF ! $! ! $! Check for double size ! $! ! $ echo4 "Checking to see how big your double precision numbers are..." ! $ tmp="double" ! $ GOSUB type_size_check ! $ doublesize = tmp ! $ echo "Your double is ''doublesize' bytes long." ! $! ! $! Check for long double size ! $! ! $ OS ! $ WS "#if defined(__DECC) || defined(__DECCXX)" ! $ WS "#include " ! $ WS "#endif" ! $ WS "#include " ! $ WS "int main()" ! $ WS "{" ! $ WS "printf(""%d\n"", sizeof(long double));" ! $ WS "exit(0);" ! $ WS "}" ! $ CS ! $ echo4 "Checking to see if you have long double..." ! $ GOSUB link_ok ! $ IF link_status .NE. good_link ! $ THEN ! $ longdblsize="0" ! $ d_longdbl="undef" ! $ echo "You do not have long double." ! $ ELSE ! $ echo "You have long double." ! $ echo4 "Checking to see how big your long doubles are..." ! $ GOSUB just_mcr_it ! $ longdblsize = tmp ! $ d_longdbl = "define" ! $ echo "Your long doubles are ''longdblsize' bytes long." ! $ ENDIF ! $! ! $!: check for long long ! $ OS ! $ WS "#if defined(__DECC) || defined(__DECCXX)" ! $ WS "#include " ! $ WS "#endif" ! $ WS "#include " ! $ WS "int main()" ! $ WS "{" ! $ WS "printf(""%d\n"", sizeof(long long));" ! $ WS "exit(0);" ! $ WS "}" ! $ CS ! $ echo4 "Checking to see if you have long long..." ! $ GOSUB link_ok ! $ IF link_status .NE. good_link ! $ THEN ! $ longlongsize="0" ! $ d_longlong="undef" ! $ echo "You do not have long long." ! $ ELSE ! $ echo "You have long long." ! $ echo4 "Checking to see how big your long longs are..." ! $ GOSUB just_mcr_it ! $ longlongsize = tmp ! $ d_longlong = "define" ! $ echo "Your long longs are ''longlongsize' bytes long." ! $ ENDIF ! $! ! $! Check the prototype for getgid ! $! ! $ echo "Looking for the type for group ids returned by getgid()." ! $ OS ! $ WS "#if defined(__DECC) || defined(__DECCXX)" ! $ WS "#include " ! $ WS "#endif" ! $ WS "#include " ! $ WS "#include " ! $ WS "int main()" ! $ WS "{" ! $ WS "gid_t foo;" ! $ WS "exit(0);" ! $ WS "}" ! $ CS ! $ GOSUB compile_ok ! $ IF compile_status .NE. good_compile ! $ THEN ! $! Okay, gid_t failed. Must be unsigned int ! $ gidtype = "unsigned int" ! $ echo4 "assuming ""''gidtype'""." ! $ ELSE ! $ gidtype = "gid_t" ! $ echo4 "gid_t found." ! $ ENDIF ! $! ! $! Check to see if we've got dev_t ! $! ! $ echo "Looking for the type for dev." ! $ OS ! $ WS "#if defined(__DECC) || defined(__DECCXX)" ! $ WS "#include " ! $ WS "#endif" ! $ WS "#include " ! $ WS "#include " ! $ WS "int main()" ! $ WS "{" ! $ WS "dev_t foo;" ! $ WS "exit(0);" ! $ WS "}" ! $ CS ! $ GOSUB compile_ok ! $ IF compile_status .NE. good_compile ! $ THEN ! $! Okay, dev_t failed. Must be unsigned int ! $ devtype = "unsigned int" ! $ echo4 "assuming ""''devtype'""." ! $ ELSE ! $ devtype = "dev_t" ! $ echo4 "dev_t found." ! $ ENDIF ! $! ! $! Check to see if we've got unistd.h (which we ought to, but you never know) ! $! ! $ i_netdb = "undef" ! $ tmp = "unistd.h" ! $ GOSUB inhdr ! $ i_unistd = tmp ! $! ! $!: see if this is a libutil.h system ! $! ! $ tmp = "libutil.h" ! $ GOSUB inhdr ! $ i_libutil = tmp ! $! ! $! Check to see if we've got shadow.h (probably not, but...) ! $! ! $ tmp = "shadow.h" ! $ GOSUB inhdr ! $ i_shadow = tmp ! $! ! $! Check to see if we've got socks.h (probably not, but...) ! $! ! $ tmp = "socks.h" ! $ GOSUB inhdr ! $ i_socks = tmp ! $! ! $! Check the prototype for select ! $! ! $ IF Has_Dec_C_Sockets .OR. Has_Socketshr ! $ THEN ! $ OS ! $ WS "#if defined(__DECC) || defined(__DECCXX)" ! $ WS "#include " ! $ WS "#endif" ! $ WS "#include " ! $ WS "#include " ! $ IF i_unistd .EQS. "define" THEN WS "#include " ! $ IF Has_Socketshr ! $ THEN ! $ WS "#include " ! $ ELSE ! $ WS "#include " ! $ WS "#include " ! $ ENDIF ! $ WS "int main()" ! $ WS "{" ! $ WS "fd_set *foo;" ! $ WS "int bar;" ! $ WS "foo = NULL;" ! $ WS "bar = select(2, foo, foo, foo, NULL);" ! $ WS "exit(0);" ! $ WS "}" ! $ CS ! $ GOSUB compile_ok ! $ IF compile_status .NE. good_compile ! $ THEN ! $! Okay, select failed. Must be an int * ! $ selecttype = "int *" ! $ echo4 "select() NOT found." ! $ ELSE ! $ selecttype="fd_set *" ! $ echo4 "select() found." ! $ ENDIF ! $ ELSE ! $ ! No sockets, so stick in an int * : no select, so pick a harmless default ! $ selecttype = "int *" ! $ ENDIF ! $! ! $! Check to see if fd_set exists ! $! ! $ echo "Checking to see how well your C compiler handles fd_set and friends ..." ! $ OS ! $ WS "#if defined(__DECC) || defined(__DECCXX)" ! $ WS "#include " ! $ WS "#endif" ! $ WS "#include " ! $ WS "#include " ! $ IF Has_Socketshr ! $ THEN ! $ WS "#include " ! $ ENDIF ! $ IF Has_Dec_C_Sockets ! $ THEN ! $ WS "#include " ! $ WS "#include " ! $ ENDIF ! $ WS "int main()" ! $ WS "{" ! $ WS "fd_set *foo;" ! $ WS "int bar;" ! $ WS "exit(0);" ! $ WS "}" ! $ CS ! $ GOSUB compile_ok ! $ IF compile_status .ne. good_compile ! $ THEN ! $! Okay, fd_set failed. Must not exist ! $ d_fd_set = "undef" ! $ echo4 "Hmm, your compiler has some difficulty with fd_set." ! $ ELSE ! $ d_fd_set="define" ! $ echo4 "Well, your system knows about the normal fd_set typedef..." ! $ ENDIF ! $! ! $! Check for inttypes.h ! $! ! $ tmp = "inttypes.h" ! $ GOSUB inhdr ! $ i_inttypes = tmp ! $! ! $! Check to see if off64_t exists ! $! ! $ echo4 "Checking to see if you have off64_t..." ! $ OS ! $ WS "#if defined(__DECC) || defined(__DECCXX)" ! $ WS "#include " ! $ WS "#endif" ! $ WS "#include " ! $ WS "#include " ! $ WS "#''i_inttypes' IIH" ! $ WS "#ifdef IIH" ! $ WS "#include " ! $ WS "#endif" ! $ WS "int main()" ! $ WS "{" ! $ WS "off64_t bar;" ! $ WS "exit(0);" ! $ WS "}" ! $ CS ! $ GOSUB compile_ok ! $ IF compile_status .EQ. good_compile ! $ THEN ! $ d_off64_t="define" ! $ echo "You have off64_t." ! $ ELSE ! $ d_off64_t = "undef" ! $ echo "You do not have off64_t." ! $ ENDIF ! $! ! $! Check to see if fpos64_t exists ! $! ! $ echo4 "Checking to see if you have fpos64_t..." ! $ OS ! $ WS "#if defined(__DECC) || defined(__DECCXX)" ! $ WS "#include " ! $ WS "#endif" ! $ WS "#include " ! $ WS "#include " ! $ WS "#''i_inttypes' IIH" ! $ WS "#ifdef IIH" ! $ WS "#include " ! $ WS "#endif" ! $ WS "int main()" ! $ WS "{" ! $ WS "fpos64_t bar;" ! $ WS "exit(0);" ! $ WS "}" ! $ CS ! $ GOSUB compile_ok ! $ IF compile_status .EQ. good_compile ! $ THEN ! $ d_fpos64_t="define" ! $ echo "You have fpos64_t." ! $ ELSE ! $ d_fpos64_t = "undef" ! $ echo "You do not have fpos64_t." ! $ ENDIF ! $! ! $! Check to see if int64_t exists ! $! ! $ echo4 "Checking to see if you have int64_t..." ! $ OS ! $ WS "#if defined(__DECC) || defined(__DECCXX)" ! $ WS "#include " ! $ WS "#endif" ! $ WS "#include " ! $ WS "#include " ! $ WS "#''i_inttypes' IIH" ! $ WS "#ifdef IIH" ! $ WS "#include " ! $ WS "#endif" ! $ WS "int main()" ! $ WS "{" ! $ WS "int64_t bar;" ! $ WS "exit(0);" ! $ WS "}" ! $ CS ! $ GOSUB compile_ok ! $ IF compile_status .EQ. good_compile ! $ THEN ! $ d_int64_t="define" ! $ echo "You have int64_t." ! $ ELSE ! $ d_int64_t = "undef" ! $ echo "You do not have int64_t." ! $ ENDIF ! $! ! $!: see if this is a netdb.h system ! $ IF Has_Dec_C_Sockets ! $ THEN ! $ tmp = "netdb.h" ! $ GOSUB inhdr ! $ i_netdb = tmp ! $ ENDIF ! $! ! $! Check for h_errno ! $! ! $ echo4 "Checking to see if you have h_errno..." ! $ OS ! $ WS "#if defined(__DECC) || defined(__DECCXX)" ! $ WS "#include " ! $ WS "#endif" ! $ WS "#include " ! $ IF i_unistd .EQS. "define" THEN WS "#include " ! $ IF i_netdb .EQS. "define" THEN WS "#include " ! $ WS "int main()" ! $ WS "{" ! $ WS "h_errno = 3;" ! $ WS "exit(0);" ! $ WS "}" ! $ CS ! $ GOSUB link_ok ! $ IF compile_status .EQ. good_compile .AND. link_status .EQ. good_link ! $ THEN ! $ d_herrno="define" ! $ echo "You have h_errno." ! $ ELSE ! $ d_herrno="undef" ! $ echo "You do not have h_errno." ! $ ENDIF ! $! ! $! Check to see if gethostname exists ! $! ! $ IF Has_Dec_C_Sockets .OR. Has_Socketshr ! $ THEN ! $ OS ! $ WS "#if defined(__DECC) || defined(__DECCXX)" ! $ WS "#include " ! $ WS "#endif" ! $ WS "#include " ! $ WS "#include " ! $ IF Has_Socketshr ! $ THEN ! $ WS "#include " ! $ ELSE ! $ WS "#include " ! $ WS "#include " ! $ ENDIF ! $ WS "int main()" ! $ WS "{" ! $ WS "char name[100];" ! $ WS "int bar, baz;" ! $ WS "bar = 100;" ! $ WS "baz = gethostname(name, bar);" ! $ WS "exit(0);" ! $ WS "}" ! $ CS ! $ GOSUB link_ok ! $ IF compile_status .EQ. good_compile .AND. link_status .EQ. good_link ! $ THEN ! $ d_gethname="define" ! $ echo4 "gethostname() found." ! $ ELSE ! $ d_gethname="undef" ! $ ENDIF ! $ ELSE ! $ ! No sockets, so no gethname ! $ d_gethname = "undef" ! $ ENDIF ! $! ! $! Check for sys/file.h ! $! ! $ tmp = "sys/file.h" ! $ GOSUB inhdr ! $ i_sysfile = tmp ! $! ! $! Check for sys/utsname.h ! $! ! $ tmp = "sys/utsname.h" ! $ GOSUB inhdr ! $ i_sysutsname = tmp ! $! ! $! Check for syslog.h ! $! ! $ tmp = "syslog.h" ! $ GOSUB inhdr ! $ i_syslog = tmp ! $! ! $! Check for poll.h ! $! ! $ tmp = "poll.h" ! $ GOSUB inhdr ! $ i_poll = tmp ! $! ! $! Check for sys/uio.h ! $! ! $ tmp = "sys/uio.h" ! $ GOSUB inhdr ! $ i_sysuio = tmp ! $! ! $! Check for sys/mode.h ! $! ! $ tmp = "sys/mode.h" ! $ GOSUB inhdr ! $ i_sysmode = tmp ! $! ! $! Check for sys/access.h ! $! ! $ tmp = "sys/access.h" ! $ GOSUB inhdr ! $ i_sysaccess = tmp ! $! ! $! Check for sys/security.h ! $! ! $ tmp = "sys/security.h" ! $ GOSUB inhdr ! $ i_syssecrt = tmp ! $! ! $! Check for fcntl.h ! $! ! $ tmp = "fcntl.h" ! $ GOSUB inhdr ! $ i_fcntl = tmp ! $! ! $! Check for fcntl ! $! ! $ OS ! $ WS "#if defined(__DECC) || defined(__DECCXX)" ! $ WS "#include " ! $ WS "#endif" ! $ WS "#include " ! $ WS "#include " ! $ WS "int main()" ! $ WS "{" ! $ WS "fcntl(1,2,3);" ! $ WS "exit(0);" ! $ WS "}" ! $ CS ! $ tmp = "fcntl" ! $ GOSUB inlibc ! $ d_fcntl = tmp ! $! ! $! Check for fcntl locking capability ! $! ! $ echo4 "Checking if fcntl-based file locking works... " ! $ tmp = "undef" ! $ IF d_fcntl .EQS. "define" ! $ THEN ! $ OS ! $ WS "#include " ! $ WS "#if defined(__DECC) || defined(__DECCXX)" ! $ WS "#include " ! $ WS "#endif" ! $ WS "#include " ! $ WS "#include " ! $ WS "int main() {" ! $ WS "#if defined(F_SETLK) && defined(F_SETLKW)" ! $ WS " struct flock flock;" ! $ WS " int retval, fd;" ! $ WS " fd = open(""try.c"", O_RDONLY);" ! $ WS " flock.l_type = F_RDLCK;" ! $ WS " flock.l_whence = SEEK_SET;" ! $ WS " flock.l_start = flock.l_len = 0;" ! $ WS " retval = fcntl(fd, F_SETLK, &flock);" ! $ WS " close(fd);" ! $ WS " (retval < 0 ? printf(""undef\n"") : printf(""define\n""));" ! $ WS "#else" ! $ WS " printf(""undef\n"");" ! $ WS "#endif" ! $ WS "}" ! $ CS ! $ GOSUB link_ok ! $ IF compile_status .EQ. good_compile .AND. link_status .EQ. good_link ! $ THEN ! $ GOSUB just_mcr_it ! $ IF tmp .EQS. "define" ! $ THEN ! $ echo4 "Yes, it seems to work." ! $ ELSE ! $ echo4 "Nope, it didn't work." ! $ ENDIF ! $ ELSE ! $ echo4 "I'm unable to compile the test program, so I'll assume not." ! $ tmp = "undef" ! $ ENDIF ! $ ELSE ! $ echo4 "Nope, since you don't even have fcntl()." ! $ ENDIF ! $ d_fcntl_can_lock = tmp ! $! ! $! Check for memchr ! $! ! $ OS ! $ WS "#if defined(__DECC) || defined(__DECCXX)" ! $ WS "#include " ! $ WS "#endif" ! $ WS "#include " ! $ WS "int main()" ! $ WS "{" ! $ WS "char * place;" ! $ WS "place = memchr(""foo"", 47, 3)" ! $ WS "exit(0);" ! $ WS "}" ! $ CS ! $ tmp = "memchr" ! $ GOSUB inlibc ! $ d_memchr = tmp ! $! ! $! Check for strtoull ! $! ! $ OS ! $ WS "#if defined(__DECC) || defined(__DECCXX)" ! $ WS "#include " ! $ WS "#endif" ! $ WS "#include " ! $ WS "int main()" ! $ WS "{" ! $ WS "unsigned __int64 result;" ! $ WS "result = strtoull(""123123"", NULL, 10);" ! $ WS "exit(0);" ! $ WS "}" ! $ CS ! $ tmp = "strtoull" ! $ GOSUB inlibc ! $ d_strtoull = tmp ! $! ! $! Check for strtouq ! $! ! $ OS ! $ WS "#if defined(__DECC) || defined(__DECCXX)" ! $ WS "#include " ! $ WS "#endif" ! $ WS "#include " ! $ WS "int main()" ! $ WS "{" ! $ WS "unsigned __int64 result;" ! $ WS "result = strtouq(""123123"", NULL, 10);" ! $ WS "exit(0);" ! $ WS "}" ! $ CS ! $ tmp = "strtouq" ! $ GOSUB inlibc ! $ d_strtouq = tmp ! $! ! $! Check for strtoll ! $! ! $ OS ! $ WS "#if defined(__DECC) || defined(__DECCXX)" ! $ WS "#include " ! $ WS "#endif" ! $ WS "#include " ! $ WS "int main()" ! $ WS "{" ! $ WS "__int64 result;" ! $ WS "result = strtoll(""123123"", NULL, 10);" ! $ WS "exit(0);" ! $ WS "}" ! $ CS ! $ tmp = "strtoll" ! $ GOSUB inlibc ! $ d_strtoll = tmp ! $! ! $! Check for strtold ! $! ! $ OS ! $ WS "#if defined(__DECC) || defined(__DECCXX)" ! $ WS "#include " ! $ WS "#endif" ! $ WS "#include " ! $ WS "int main()" ! $ WS "{" ! $ WS "long double result;" ! $ WS "result = strtold(""123123"", NULL, 10);" ! $ WS "exit(0);" ! $ WS "}" ! $ CS ! $ tmp = "strtold" ! $ GOSUB inlibc ! $ d_strtold = tmp ! $! ! $! Check for atoll ! $! ! $ OS ! $ WS "#if defined(__DECC) || defined(__DECCXX)" ! $ WS "#include " ! $ WS "#endif" ! $ WS "#include " ! $ WS "int main()" ! $ WS "{" ! $ WS " __int64 result;" ! $ WS "result = atoll(""123123"");" ! $ WS "exit(0);" ! $ WS "}" ! $ CS ! $ tmp = "atoll" ! $ GOSUB inlibc ! $ d_atoll = tmp ! $! ! $! Check for atolf ! $! ! $ OS ! $ WS "#if defined(__DECC) || defined(__DECCXX)" ! $ WS "#include " ! $ WS "#endif" ! $ WS "#include " ! $ WS "int main()" ! $ WS "{" ! $ WS "long double" ! $ WS "result = atolf(""123123"");" ! $ WS "exit(0);" ! $ WS "}" ! $ CS ! $ tmp = "atolf" ! $ GOSUB inlibc ! $ d_atolf = tmp ! $! ! $! Check for access ! $! ! $ OS ! $ WS "#if defined(__DECC) || defined(__DECCXX)" ! $ WS "#include " ! $ WS "#endif" ! $ WS "#include " ! $ WS "int main()" ! $ WS "{" ! $ WS "access(""foo"", F_OK);" ! $ WS "exit(0);" ! $ WS "}" ! $ CS ! $ tmp = "acess" ! $ GOSUB inlibc ! $ d_access = tmp ! $! ! $! Check for bzero ! $! ! $ OS ! $ WS "#if defined(__DECC) || defined(__DECCXX)" ! $ WS "#include " ! $ WS "#endif" ! $ WS "#include " ! $ WS "#include " ! $ WS "int main()" ! $ WS "{" ! $ WS "char foo[10];" ! $ WS "bzero(foo, 10);" ! $ WS "exit(0);" ! $ WS "}" ! $ CS ! $ tmp = "bzero" ! $ GOSUB inlibc ! $ d_bzero = tmp ! $! ! $! Check for bcopy ! $! ! $ OS ! $ WS "#if defined(__DECC) || defined(__DECCXX)" ! $ WS "#include " ! $ WS "#endif" ! $ WS "#include " ! $ WS "#include " ! $ WS "int main()" ! $ WS "{" ! $ WS "char foo[10], bar[10];" ! $ WS "bcopy(""foo"", bar, 3);" ! $ WS "exit(0);" ! $ WS "}" ! $ CS ! $ tmp = "bcopy" ! $ GOSUB inlibc ! $ d_bcopy = tmp ! $! ! $! Check for mkstemp ! $! ! $ OS ! $ WS "#if defined(__DECC) || defined(__DECCXX)" ! $ WS "#include " ! $ WS "#endif" ! $ WS "#include " ! $ WS "int main()" ! $ WS "{" ! $ WS "mkstemp(""foo"");" ! $ WS "exit(0);" ! $ WS "}" ! $ CS ! $ tmp = "mkstemp" ! $ GOSUB inlibc ! $ d_mkstemp = tmp ! $! ! $! Check for mkstemps ! $! ! $ OS ! $ WS "#if defined(__DECC) || defined(__DECCXX)" ! $ WS "#include " ! $ WS "#endif" ! $ WS "#include " ! $ WS "int main()" ! $ WS "{" ! $ WS "mkstemps(""foo"", 1);" ! $ WS "exit(0);" ! $ WS "}" ! $ CS ! $ tmp = "mkstemps" ! $ GOSUB inlibc ! $ d_mkstemps = tmp ! $! ! $! Check for iconv ! $! ! $ OS ! $ WS "#if defined(__DECC) || defined(__DECCXX)" ! $ WS "#include " ! $ WS "#endif" ! $ WS "#include " ! $ WS "#include " ! $ WS "int main()" ! $ WS "{" ! $ WS " iconv_t cd = (iconv_t)0;" ! $ WS " char *inbuf, *outbuf;" ! $ WS " size_t inleft, outleft;" ! $ WS " iconv(cd, &inbuf, &inleft, &outbuf, &outleft);" ! $ WS " exit(0);" ! $ WS "}" ! $ CS ! $ GOSUB link_ok ! $ IF compile_status .ne. good_compile ! $ THEN ! $ d_iconv="undef" ! $ i_iconv="undef" ! $ ELSE ! $ IF link_status .ne. good_link ! $ THEN ! $ d_iconv="undef" ! $ i_iconv="undef" ! $ ELSE ! $ d_iconv="define" ! $ i_iconv="define" ! $ ENDIF ! $ ENDIF ! $ IF i_iconv .eqs. "define" ! $ THEN echo4 " found." ! $ ELSE echo4 " NOT found." ! $ ENDIF ! $! ! $! Check for mkdtemp ! $! ! $ OS ! $ WS "#if defined(__DECC) || defined(__DECCXX)" ! $ WS "#include " ! $ WS "#endif" ! $ WS "#include " ! $ WS "int main()" ! $ WS "{" ! $ WS "mkdtemp(""foo"");" ! $ WS "exit(0);" ! $ WS "}" ! $ CS ! $ tmp = "mkdtemp" ! $ GOSUB inlibc ! $ d_mkdtemp = tmp ! $! ! $! Check for setvbuf ! $! ! $ OS ! $ WS "#if defined(__DECC) || defined(__DECCXX)" ! $ WS "#include " ! $ WS "#endif" ! $ WS "#include " ! $ WS "int main()" ! $ WS "{" ! $ WS "FILE *foo;" ! $ WS "char Buffer[99];" ! $ WS "foo = fopen(""foo"", ""r"");" ! $ WS "setvbuf(foo, Buffer, 0, 0);" ! $ WS "exit(0);" ! $ WS "}" ! $ CS ! $ tmp = "setvbuf" ! $ GOSUB inlibc ! $ d_setvbuf = tmp ! $! ! $! Check for setenv ! $! ! $ OS ! $ WS "#if defined(__DECC) || defined(__DECCXX)" ! $ WS "#include " ! $ WS "#endif" ! $ WS "#include " ! $ WS "int main()" ! $ WS "{" ! $ WS "setenv(""FOO"", ""BAR"", 0);" ! $ WS "exit(0);" ! $ WS "}" ! $ CS ! $ tmp = "setenv" ! $ GOSUB inlibc ! $ d_setenv = tmp ! $! ! $! Check for setproctitle ! $! ! $ OS ! $ WS "#if defined(__DECC) || defined(__DECCXX)" ! $ WS "#include " ! $ WS "#endif" ! $ WS "#include " ! $ WS "int main()" ! $ WS "{" ! $ WS "setproctitle(""%s"", ""FOO"");" ! $ WS "exit(0);" ! $ WS "}" ! $ CS ! $ tmp = "setproctitle" ! $ GOSUB inlibc ! $ d_setproctitle = tmp ! $! ! $! Check for ! $! ! $ IF Has_Dec_C_Sockets .or. Has_Socketshr ! $ THEN ! $ tmp = "netinet/in.h" ! $ GOSUB inhdr ! $ i_niin = tmp ! $ ELSE ! $ i_niin="undef" ! $ ENDIF ! $! ! $! Check for ! $! ! $ IF Has_Dec_C_Sockets .or. Has_Socketshr ! $ THEN ! $ tmp = "netinet/tcp.h" ! $ GOSUB inhdr ! $ i_netinettcp = tmp ! $ ELSE ! $ i_netinettcp="undef" ! $ ENDIF ! $! ! $! Check for endhostent ! $! ! $ IF Has_Dec_C_Sockets .or. Has_Socketshr ! $ THEN ! $ OS ! $ WS "#if defined(__DECC) || defined(__DECCXX)" ! $ WS "#include " ! $ WS "#endif" ! $ WS "#include " ! $ IF Has_Socketshr ! $ THEN WS "#include " ! $ ELSE IF i_netdb .EQS. "define" THEN WS "#include " ! $ ENDIF ! $ WS "int main()" ! $ WS "{" ! $ WS "endhostent();" ! $ WS "exit(0);" ! $ WS "}" ! $ CS ! $ tmp = "endhostent" ! $ GOSUB inlibc ! $ d_endhent = tmp ! $ ELSE ! $ d_endhent="undef" ! $ ENDIF ! $! ! $! Check for endnetent ! $! ! $ IF Has_Dec_C_Sockets .or. Has_Socketshr ! $ THEN ! $ OS ! $ WS "#if defined(__DECC) || defined(__DECCXX)" ! $ WS "#include " ! $ WS "#endif" ! $ WS "#include " ! $ IF Has_Socketshr ! $ THEN WS "#include " ! $ ELSE IF i_netdb .EQS. "define" THEN WS "#include " ! $ ENDIF ! $ WS "int main()" ! $ WS "{" ! $ WS "endnetent();" ! $ WS "exit(0);" ! $ WS "}" ! $ CS ! $ tmp = "endnetent" ! $ GOSUB inlibc ! $ d_endnent = tmp ! $ ELSE ! $ d_endnent="undef" ! $ ENDIF ! $! ! $! Check for endprotoent ! $! ! $ IF Has_Dec_C_Sockets .OR. Has_Socketshr ! $ THEN ! $ OS ! $ WS "#if defined(__DECC) || defined(__DECCXX)" ! $ WS "#include " ! $ WS "#endif" ! $ WS "#include " ! $ IF Has_Socketshr ! $ THEN WS "#include " ! $ ELSE IF i_netdb .EQS. "define" THEN WS "#include " ! $ ENDIF ! $ WS "int main()" ! $ WS "{" ! $ WS "endprotoent();" ! $ WS "exit(0);" ! $ WS "}" ! $ CS ! $ tmp = "endprotoent" ! $ GOSUB inlibc ! $ d_endpent = tmp ! $ ELSE ! $ d_endpent="undef" ! $ ENDIF ! $! ! $! Check for endservent ! $! ! $ IF Has_Dec_C_Sockets .OR. Has_Socketshr ! $ THEN ! $ OS ! $ WS "#if defined(__DECC) || defined(__DECCXX)" ! $ WS "#include " ! $ WS "#endif" ! $ WS "#include " ! $ IF Has_Socketshr ! $ THEN WS "#include " ! $ ELSE IF i_netdb .EQS. "define" THEN WS "#include " ! $ ENDIF ! $ WS "int main()" ! $ WS "{" ! $ WS "endservent();" ! $ WS "exit(0);" ! $ WS "}" ! $ CS ! $ tmp = "endservent" ! $ GOSUB inlibc ! $ d_endsent = tmp ! $ ELSE ! $ d_endsent="undef" ! $ ENDIF ! $! ! $! Check for sethostent ! $! ! $ IF Has_Dec_C_Sockets .OR. Has_Socketshr ! $ THEN ! $ OS ! $ WS "#if defined(__DECC) || defined(__DECCXX)" ! $ WS "#include " ! $ WS "#endif" ! $ WS "#include " ! $ IF Has_Socketshr ! $ THEN WS "#include " ! $ ELSE IF i_netdb .EQS. "define" THEN WS "#include " ! $ ENDIF ! $ WS "int main()" ! $ WS "{" ! $ WS "sethostent(1);" ! $ WS "exit(0);" ! $ WS "}" ! $ CS ! $ tmp = "sethostent" ! $ GOSUB inlibc ! $ d_sethent = tmp ! $ ELSE ! $ d_sethent="undef" ! $ ENDIF ! $! ! $! Check for setnetent ! $! ! $ IF Has_Dec_C_Sockets .OR. Has_Socketshr ! $ THEN ! $ OS ! $ WS "#if defined(__DECC) || defined(__DECCXX)" ! $ WS "#include " ! $ WS "#endif" ! $ WS "#include " ! $ IF Has_Socketshr ! $ THEN WS "#include " ! $ ELSE IF i_netdb .EQS. "define" THEN WS "#include " ! $ ENDIF ! $ WS "int main()" ! $ WS "{" ! $ WS "setnetent(1);" ! $ WS "exit(0);" ! $ WS "}" ! $ CS ! $ tmp = "setnetent" ! $ GOSUB inlibc ! $ d_setnent = tmp ! $ ELSE ! $ d_setnent="undef" ! $ ENDIF ! $! ! $! Check for setprotoent ! $! ! $ IF Has_Dec_C_Sockets .OR. Has_Socketshr ! $ THEN ! $ OS ! $ WS "#if defined(__DECC) || defined(__DECCXX)" ! $ WS "#include " ! $ WS "#endif" ! $ WS "#include " ! $ IF Has_Socketshr ! $ THEN WS "#include " ! $ ELSE IF i_netdb .EQS. "define" THEN WS "#include " ! $ ENDIF ! $ WS "int main()" ! $ WS "{" ! $ WS "setprotoent(1);" ! $ WS "exit(0);" ! $ WS "}" ! $ CS ! $ tmp = "setprotoent" ! $ GOSUB inlibc ! $ d_setpent = tmp ! $ ELSE ! $ d_setpent="undef" ! $ ENDIF ! $! ! $! Check for setservent ! $! ! $ IF Has_Dec_C_Sockets .OR. Has_Socketshr ! $ THEN ! $ OS ! $ WS "#if defined(__DECC) || defined(__DECCXX)" ! $ WS "#include " ! $ WS "#endif" ! $ WS "#include " ! $ IF Has_Socketshr ! $ THEN WS "#include " ! $ ELSE IF i_netdb .EQS. "define" THEN WS "#include " ! $ ENDIF ! $ WS "int main()" ! $ WS "{" ! $ WS "setservent(1);" ! $ WS "exit(0);" ! $ WS "}" ! $ CS ! $ tmp = "setservent" ! $ GOSUB inlibc ! $ d_setsent = tmp ! $ ELSE ! $ d_setsent="undef" ! $ ENDIF ! $! ! $! Check for gethostent ! $! ! $ IF Has_Dec_C_Sockets .OR. Has_Socketshr ! $ THEN ! $ OS ! $ WS "#if defined(__DECC) || defined(__DECCXX)" ! $ WS "#include " ! $ WS "#endif" ! $ WS "#include " ! $ IF Has_Socketshr ! $ THEN WS "#include " ! $ ELSE IF i_netdb .EQS. "define" THEN WS "#include " ! $ ENDIF ! $ WS "int main()" ! $ WS "{" ! $ WS "gethostent();" ! $ WS "exit(0);" ! $ WS "}" ! $ CS ! $ tmp = "gethostent" ! $ GOSUB inlibc ! $ d_gethent = tmp ! $ ELSE ! $ d_gethent="undef" ! $ ENDIF ! $! ! $! Check for getnetent ! $! ! $ IF Has_Dec_C_Sockets .OR. Has_Socketshr ! $ THEN ! $ OS ! $ WS "#if defined(__DECC) || defined(__DECCXX)" ! $ WS "#include " ! $ WS "#endif" ! $ WS "#include " ! $ IF Has_Socketshr ! $ THEN WS "#include " ! $ ELSE IF i_netdb .EQS. "define" THEN WS "#include " ! $ ENDIF ! $ WS "int main()" ! $ WS "{" ! $ WS "getnetent();" ! $ WS "exit(0);" ! $ WS "}" ! $ CS ! $ tmp = "getnetent" ! $ GOSUB inlibc ! $ d_getnent = tmp ! $ ELSE ! $ d_getnent="undef" ! $ ENDIF ! $! ! $! Check for getprotoent ! $! ! $ IF Has_Dec_C_Sockets .OR. Has_Socketshr ! $ THEN ! $ OS ! $ WS "#if defined(__DECC) || defined(__DECCXX)" ! $ WS "#include " ! $ WS "#endif" ! $ WS "#include " ! $ IF Has_Socketshr ! $ THEN WS "#include " ! $ ELSE IF i_netdb .EQS. "define" THEN WS "#include " ! $ ENDIF ! $ WS "int main()" ! $ WS "{" ! $ WS "getprotoent();" ! $ WS "exit(0);" ! $ WS "}" ! $ CS ! $ tmp = "getprotoent" ! $ GOSUB inlibc ! $ d_getpent = tmp ! $ ELSE ! $ d_getpent="undef" ! $ ENDIF ! $! ! $! Check for getservent ! $! ! $ IF Has_Dec_C_Sockets .OR. Has_Socketshr ! $ THEN ! $ OS ! $ WS "#if defined(__DECC) || defined(__DECCXX)" ! $ WS "#include " ! $ WS "#endif" ! $ WS "#include " ! $ IF Has_Socketshr ! $ THEN WS "#include " ! $ ELSE IF i_netdb .EQS. "define" THEN WS "#include " ! $ ENDIF ! $ WS "int main()" ! $ WS "{" ! $ WS "getservent();" ! $ WS "exit(0);" ! $ WS "}" ! $ CS ! $ tmp = "getservent" ! $ GOSUB inlibc ! $ d_getsent = tmp ! $ ELSE ! $ d_getsent="undef" ! $ ENDIF ! $! ! $! Check for socklen_t ! $! ! $ IF Has_Dec_C_Sockets .OR. Has_Socketshr ! $ THEN ! $ echo4 "Checking to see if you have socklen_t..." ! $ OS ! $ WS "#if defined(__DECC) || defined(__DECCXX)" ! $ WS "#include " ! $ WS "#endif" ! $ WS "#include " ! $ IF Has_Socketshr ! $ THEN WS "#include " ! $ ELSE IF i_netdb .EQS. "define" THEN WS "#include " ! $ ENDIF ! $ WS "int main()" ! $ WS "{" ! $ WS "socklen_t x = 16;" ! $ WS "exit(0);" ! $ WS "}" ! $ CS ! $ GOSUB link_ok ! $ IF compile_status .EQ. good_compile .AND. link_status .EQ. good_link ! $ THEN ! $ d_socklen_t="define" ! $ echo "You have socklen_t." ! $ ELSE ! $ d_socklen_t="undef" ! $ echo "You do not have socklen_t." ! $ ENDIF ! $ ELSE ! $ d_socklen_t="undef" ! $ ENDIF ! $! ! $! Check for pthread_yield ! $! ! $ IF use_threads ! $ THEN ! $ OS ! $ WS "#if defined(__DECC) || defined(__DECCXX)" ! $ WS "#include " ! $ WS "#endif" ! $ WS "#include " ! $ WS "#include " ! $ WS "int main()" ! $ WS "{" ! $ WS "pthread_yield();" ! $ WS "exit(0);" ! $ WS "}" ! $ CS ! $ tmp = "pthread_yield" ! $ GOSUB inlibc ! $ d_pthread_yield = tmp ! $ ELSE ! $ d_pthread_yield="undef" ! $ ENDIF ! $! ! $! Check for sched_yield ! $! ! $ IF use_threads ! $ THEN ! $ OS ! $ WS "#if defined(__DECC) || defined(__DECCXX)" ! $ WS "#include " ! $ WS "#endif" ! $ WS "#include " ! $ WS "#include " ! $ WS "int main()" ! $ WS "{" ! $ WS "sched_yield();" ! $ WS "exit(0);" ! $ WS "}" ! $ CS ! $ tmp = "sched_yield" ! $ GOSUB inlibc ! $ d_sched_yield = tmp ! $ IF d_sched_yield .EQS. "define" ! $ THEN sched_yield = "sched_yield" ! $ ELSE sched_yield = " " ! $ ENDIF ! $ ELSE ! $ d_sched_yield="undef" ! $ sched_yield = " " ! $ ENDIF ! $! ! $! Check for generic pointer size ! $! ! $ echo4 "Checking to see how big your pointers are..." ! $ OS ! $ WS "#if defined(__DECC) || defined(__DECCXX)" ! $ WS "#include " ! $ WS "#endif" ! $ WS "#include " ! $ WS "int main()" ! $ WS "{" ! $ WS "int foo;" ! $ WS "foo = sizeof(char *);" ! $ WS "printf(""%d\n"", foo);" ! $ WS "exit(0);" ! $ WS "}" ! $ CS ! $ tmp = "char *" ! $ GOSUB type_size_check ! $ ptrsize = tmp ! $ echo "Your pointers are ''ptrsize' bytes long." ! $! ! $! Check for size_t size ! $! ! $ tmp = "size_t" ! $ zzz = tmp ! $ echo4 "Checking the size of ''zzz'..." ! $ GOSUB type_size_check ! $ sizesize = tmp ! $ echo "Your ''zzz' size is ''sizesize' bytes." ! $! ! $! Check rand48 and its ilk ! $! ! $ echo4 "Looking for a random number function..." ! $ OS ! $ WS "#if defined(__DECC) || defined(__DECCXX)" ! $ WS "#include " ! $ WS "#endif" ! $ WS "#include " ! $ WS "int main()" ! $ WS "{" ! $ WS "srand48(12L);" ! $ WS "exit(0);" ! $ WS "}" ! $ CS ! $ GOSUB link_ok ! $ IF compile_status .EQ. good_compile .AND. link_status .EQ. good_link ! $ THEN ! $ drand01 = "drand48()" ! $ randseedtype = "long int" ! $ seedfunc = "srand48" ! $ echo4 "Good, found drand48()." ! $ d_drand48proto = "define" ! $ ELSE ! $ d_drand48proto = "undef" ! $ drand01="random()" ! $ randseedtype = "unsigned" ! $ seedfunc = "srandom" ! $ OS ! $ WS "#if defined(__DECC) || defined(__DECCXX)" ! $ WS "#include " ! $ WS "#endif" ! $ WS "#include " ! $ WS "int main()" ! $ WS "{" ! $ WS "srandom(12);" ! $ WS "exit(0);" ! $ WS "}" ! $ CS ! $ GOSUB link_ok ! $ IF compile_status .EQ. good_compile .AND. link_status .EQ. good_link ! $ THEN ! $ echo4 "OK, found random()." ! $ ELSE ! $ drand01="(((float)rand())/((float)RAND_MAX))" ! $ randseedtype = "unsigned" ! $ seedfunc = "srand" ! $ echo4 "Yick, looks like I have to use rand()." ! $ ENDIF ! $ ENDIF ! $! Done with compiler checks. Clean up. ! $ IF F$SEARCH("try.c") .NES."" THEN DELETE/NOLOG/NOCONFIRM try.c;* ! $ IF F$SEARCH("try.obj").NES."" THEN DELETE/NOLOG/NOCONFIRM try.obj;* ! $ IF F$SEARCH("try.exe").NES."" THEN DELETE/NOLOG/NOCONFIRM try.exe;* ! $ IF F$SEARCH("try.opt").NES."" THEN DELETE/NOLOG/NOCONFIRM try.opt;* ! $ IF F$SEARCH("try.out").NES."" THEN DELETE/NOLOG/NOCONFIRM try.out;* ! $ IF using_cxx ! $ THEN ! $ CALL Cxx_demangler_cleanup ! $ ENDIF ! $! ! $! Some that are compiler or VMS version sensitive ! $! ! $! Gnu C stuff ! $ IF Using_Gnu_C ! $ THEN ! $ d_attribut="define" ! $ vms_cc_type="gcc" ! $ ELSE ! $ vms_cc_type="cc" ! $ d_attribut="undef" ! $ ENDIF ! $! ! $! Dec C >= 5.2 and VMS ver >= 7.0 ! $ IF (Using_Dec_C).AND.(F$INTEGER(Dec_C_Version).GE.50200000).AND.(vms_ver .GES. "7.0") ! $ THEN ! $ d_bcmp="define" ! $ d_gettimeod="define" ! $ d_uname="define" ! $ d_sigaction="define" ! $ d_truncate="define" ! $ d_wait4="define" ! $ d_index="define" ! $ pidtype="pid_t" ! $ sig_name="ZERO HUP INT QUIT ILL TRAP IOT EMT FPE KILL BUS SEGV SYS PIPE ALRM TERM ABRT USR1 USR2 SPARE18 SPARE19 CHLD CONT STOP TSTP TTIN TTOU DEBUG SPARE27 SPARE28 SPARE29 SPARE30 SPARE31 SPARE32 RTMIN RTMAX"",0" ! $ psnwc1="""ZERO"",""HUP"",""INT"",""QUIT"",""ILL"",""TRAP"",""IOT"",""EMT"",""FPE"",""KILL"",""BUS"",""SEGV"",""SYS""," ! $ psnwc2="""PIPE"",""ALRM"",""TERM"",""ABRT"",""USR1"",""USR2"",""SPARE18"",""SPARE19"",""CHLD"",""CONT"",""STOP"",""TSTP""," ! $ psnwc3="""TTIN"",""TTOU"",""DEBUG"",""SPARE27"",""SPARE28"",""SPARE29"",""SPARE30"",""SPARE31"",""SPARE32"",""RTMIN"",""RTMAX"",0" ! $ sig_name_init = psnwc1 + psnwc2 + psnwc3 ! $ sig_num="0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 6 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 64"",0" ! $ sig_num_init="0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,6,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,64,0" ! $! perl_sig_num_with_commas=sig_num_init ! $ uidtype="uid_t" ! $ d_pathconf="define" ! $ d_fpathconf="define" ! $ d_sysconf="define" ! $ d_sigsetjmp="define" ! $ ELSE ! $ pidtype="unsigned int" ! $ d_gettimeod="undef" ! $ d_bcmp="undef" ! $ d_uname="undef" ! $ d_sigaction="undef" ! $ d_truncate="undef" ! $ d_wait4="undef" ! $ d_index="undef" ! $ sig_name="ZERO HUP INT QUIT ILL TRAP IOT EMT FPE KILL BUS SEGV SYS PIPE ALRM TERM ABRT USR1 USR2"",0" ! $ psnwc1="""ZERO"",""HUP"",""INT"",""QUIT"",""ILL"",""TRAP"",""IOT"",""EMT"",""FPE"",""KILL"",""BUS"",""SEGV"",""SYS""," ! $ psnwc2="""PIPE"",""ALRM"",""TERM"",""ABRT"",""USR1"",""USR2"",0" ! $ sig_name_init = psnwc1 + psnwc2 ! $ sig_num="0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 6 16 17"",0" ! $ sig_num_init="0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,6,16,17,0" ! $! perl_sig_num_with_commas=sig_num_init ! $ uidtype="unsigned int" ! $ d_pathconf="undef" ! $ d_fpathconf="undef" ! $ d_sysconf="undef" ! $ d_sigsetjmp="undef" ! $ ENDIF ! $! ! $! Dec C alone ! $ IF Using_Dec_C ! $ THEN ! $ d_mbstowcs="define" ! $ d_mbtowc="define" ! $ d_stdiobase="define" ! $ d_stdio_cnt_lval="define" ! $ d_stdio_ptr_lval="define" ! $ d_stdstdio="define" ! $ d_wcstombs="define" ! $ d_mblen="define" ! $ d_mktime="define" ! $ d_strcoll="define" ! $ d_strxfrm="define" ! $ d_wctomb="define" ! $ i_locale="define" ! $ d_locconv="define" ! $ d_setlocale="define" ! $ vms_cc_type="decc" ! $ ELSE ! $ d_mbstowcs="undef" ! $ d_mbtowc="undef" ! $ d_stdiobase="undef" ! $ d_stdio_cnt_lval="undef" ! $ d_stdio_ptr_lval="undef" ! $ d_stdstdio="undef" ! $ d_wcstombs="undef" ! $ d_mblen="undef" ! $ d_mktime="undef" ! $ d_strcoll="undef" ! $ d_strxfrm="undef" ! $ d_wctomb="undef" ! $ i_locale="undef" ! $ d_locconv="undef" ! $ d_setlocale="undef" ! $ ENDIF ! $ d_stdio_ptr_lval_sets_cnt="undef" ! $ d_stdio_ptr_lval_nochange_cnt="undef" ! $! ! $! Sockets? ! $ if Has_Socketshr .OR. Has_Dec_C_Sockets ! $ THEN ! $ d_vms_do_sockets="define" ! $ d_htonl="define" ! $ d_socket="define" ! $ d_select="define" ! $ netdb_hlen_type="int" ! $ netdb_host_type="char *" ! $ netdb_name_type="char *" ! $ netdb_net_type="long" ! $ d_gethbyaddr="define" ! $ d_gethbyname="define" ! $ d_getnbyaddr="define" ! $ d_getnbyname="define" ! $ d_getpbynumber="define" ! $ d_getpbyname="define" ! $ d_getsbyport="define" ! $ d_getsbyname="define" ! $ d_gethostprotos="define" ! $ d_getnetprotos="define" ! $ d_getprotoprotos="define" ! $ d_getservprotos="define" ! $ IF Using_Dec_C .OR. using_cxx ! $ THEN ! $ socksizetype="unsigned int" ! $ ELSE ! $ socksizetype="int *" ! $ ENDIF ! $ ELSE ! $ d_vms_do_sockets="undef" ! $ d_htonl="undef" ! $ d_socket="undef" ! $ d_select="undef" ! $ netdb_hlen_type="int" ! $ netdb_host_type="char *" ! $ netdb_name_type="char *" ! $ netdb_net_type="long" ! $ d_gethbyaddr="undef" ! $ d_gethbyname="undef" ! $ d_getnbyaddr="undef" ! $ d_getnbyname="undef" ! $ d_getpbynumber="undef" ! $ d_getpbyname="undef" ! $ d_getsbyport="undef" ! $ d_getsbyname="undef" ! $ d_gethostprotos="undef" ! $ d_getnetprotos="undef" ! $ d_getprotoprotos="undef" ! $ d_getservprotos="undef" ! $ socksizetype="undef" ! $ ENDIF ! $! Threads ! $ IF use_threads ! $ THEN ! $ usethreads="define" ! $ d_pthreads_created_joinable="define" ! $ if (vms_ver .GES. "7.0") ! $ THEN ! $ d_oldpthreads="undef" ! $ ELSE ! $ d_oldpthreads="define" ! $ ENDIF ! $ ELSE ! $ d_oldpthreads="undef" ! $ usethreads="undef" ! $ d_pthreads_created_joinable="undef" ! $ ENDIF ! $! ! $! new (5.005_62++) typedefs for primitives ! $! ! $ echo "Choosing the C types to be used for Perl's internal types..." ! $ ivtype="long" ! $ uvtype="unsigned long" ! $ i8type="char" ! $ u8type="unsigned char" ! $ i16type="short" ! $ u16type="unsigned short" ! $ i32type="int" ! $ u32type="unsigned int" ! $ i64type="long long" ! $ u64type="unsigned long long" ! $ nvtype="double" ! $! ! $ IF use64bitint .OR. use64bitint .EQS. "define" ! $ THEN ! $ ivtype = "''i64type'" ! $ uvtype = "''u64type'" ! $ nvtype="long double" ! $ ELSE ! $ i64size="undef" ! $ u64size="undef" ! $ ENDIF ! $! ! $ tmp = "''ivtype'" ! $ GOSUB type_size_check ! $ ivsize = tmp ! $ IF use64bitint .OR. use64bitint .EQS. "define" THEN i64size = tmp ! $ IF ivtype .eqs. "long" ! $ THEN longsize = tmp ! $ ELSE ! $ tmp = "long" ! $ GOSUB type_size_check ! $ longsize = tmp ! $ ENDIF ! $! ! $ tmp = "''uvtype'" ! $ GOSUB type_size_check ! $ uvsize = tmp ! $ IF use64bitint .OR. use64bitint .EQS. "define" THEN u64size = tmp ! $! ! $ tmp = "''i8type'" ! $ GOSUB type_size_check ! $ i8size = tmp ! $! ! $ tmp = "''u8type'" ! $ GOSUB type_size_check ! $ u8size = tmp ! $! ! $ tmp = "''i16type'" ! $ GOSUB type_size_check ! $ i16size = tmp ! $ IF i16type .eqs. "short" ! $ THEN shortsize = tmp ! $ ELSE ! $ tmp = "short" ! $ gosub type_size_check ! $ shortsize = tmp ! $ ENDIF ! $! ! $ tmp = "''u16type'" ! $ GOSUB type_size_check ! $ u16size = tmp ! $! ! $ tmp = "''i32type'" ! $ GOSUB type_size_check ! $ i32size = tmp ! $ IF i32type .eqs. "int" ! $ THEN intsize = tmp ! $ ELSE ! $ tmp = "int" ! $ gosub type_size_check ! $ intsize = tmp ! $ ENDIF ! $! ! $ tmp = "''u32type'" ! $ gosub type_size_check ! $ u32size = tmp ! $! ! $ tmp = "''nvtype'" ! $ GOSUB type_size_check ! $ nvsize = tmp ! $! ! $ echo "(IV will be ""''ivtype'"", ''ivsize' bytes)" ! $ echo "(UV will be ""''uvtype'"", ''uvsize' bytes)" ! $ echo "(NV will be ""''nvtype'"", ''nvsize' bytes)" ! $! ! $ echo4 "Checking whether your NVs can preserve your UVs..." ! $ OS ! $ WS "#if defined(__DECC) || defined(__DECCXX)" ! $ WS "#include " ! $ WS "#endif" ! $ WS "#include " ! $ WS "int main() {" ! $ WS " ''uvtype' k = (''uvtype')~0, l;" ! $ WS " ''nvtype' d;" ! $ WS " l = k;" ! $ WS " d = (''nvtype')l;" ! $ WS " l = (''uvtype')d;" ! $ WS " if (l == k)" ! $ WS " printf(""preserve\n"");" ! $ WS " exit(0);" ! $ WS "}" ! $ CS ! $ GOSUB compile ! $ IF tmp .EQS. "preserve" ! $ THEN ! $ d_nv_preserves_uv = "define" ! $ echo "Yes, they can." ! $ d_nv_preserves_uv_bits = F$STRING(F$INTEGER(uvsize) * 8) ! $ ELSE ! $ d_nv_preserves_uv = "undef" ! $ echo "No, they can't." ! $ echo4 "Checking how many bits of your UVs your NVs can preserve..." ! $ OS ! $ WS "#if defined(__DECC) || defined(__DECCXX)" ! $ WS "#include " ! $ WS "#endif" ! $ WS "#include " ! $ WS "int main() {" ! $ WS " ''uvtype' u = 0;" ! $ WS " int n = 8 * ''uvsize';" ! $ WS " int i;" ! $ WS " for (i = 0; i < n; i++) {" ! $ WS " u = u << 1 | (''uvtype')1;" ! $ WS " if ((''uvtype')(''nvtype')u != u)" ! $ WS " break;" ! $ WS " }" ! $ WS " printf(""%d\n"", i);" ! $ WS " exit(0);" ! $ WS "}" ! $ GOSUB compile ! $ d_nv_preserves_uv_bits = tmp ! $ ENDIF ! $ DELETE/SYMBOL tmp ! $! ! $ ivdformat="""ld""" ! $ uvuformat="""lu""" ! $ uvoformat="""lo""" ! $ uvxformat="""lx""" ! $! uselongdouble? ! $ nveformat="""e""" ! $ nvfformat="""f""" ! $ nvgformat="""g""" ! $! ! $! Finally the composite ones. All config ! $! ! $ myuname="''osname' ''myname' ''osvers' ''F$EDIT(hwname, "TRIM")'" ! $! ! $ IF Using_Dec_C .AND. (.NOT. using_cxx) ! $ THEN ! $ ccflags="/Include=[]/Standard=Relaxed_ANSI/Prefix=All/Obj=''obj_ext'/NoList''ccflags'" ! $ ENDIF ! $ i_dirent = "undef" ! $ IF using_cxx ! $ THEN ! $ i_dirent = "define" ! $ ccflags="/Include=[]/Standard=ANSI/Prefix=All/Obj=''obj_ext'/NoList''ccflags'" ! $ ENDIF ! $ IF use_vmsdebug_perl ! $ THEN ! $ optimize="/Debug/NoOpt" ! $ dbgprefix = "DBG" ! $ ELSE ! $ optimize= "" ! $ dbgprefix = "" ! $ ENDIF ! $! ! $! Okay, we've got everything configured. Now go write out a config.sh. ! $ basename_config_sh = F$PARSE(config_sh,,,"NAME",)+F$PARSE(config_sh,,,"TYPE",) ! $ echo4 "Creating ''basename_config_sh'..." ! $ open/write CONFIG 'config_sh' ! $ WC := write CONFIG ! $! ! $! ##BEGIN WRITE NEW CONSTANTS HERE## ! $! ! $ WC "#!/bin/sh" ! $ WC "#" ! $ WC "# This file was produced by Configure.COM on a ''osname' system." ! $ WC "#" ! $ WC "# Package name : ''package'" ! $ WC "# Source directory : ''src'" ! $ WC "# Configuration time: " + cf_time ! $ WC "# Configuration by : " + cf_by ! $ WC "# Target system : " + myuname ! $ WC "" ! $ WC "CONFIG='true'" ! $ WC "Makefile_SH='" + Makefile_SH + "'" ! $ WC "Mcc='" + Mcc + "'" ! $! WC "PERL_SUBVERSION='" + subversion + "'" ! VMS specific to descrip_mms.template ! $ WC "PERL_VERSION='" + patchlevel + "'" ! VMS specific to descrip_mms.template ! $ WC "alignbytes='" + alignbytes + "'" ! $ WC "aphostname='" + "'" ! $ WC "ar='" + "'" ! $ WC "archlib='" + archlib + "'" ! $ WC "archlibexp='" + archlibexp + "'" ! $ WC "archname='" + archname + "'" ! $ WC "baserev='" + baserev + "'" ! $ WC "bin='" + bin + "'" ! $ WC "binexp='" + binexp + "'" ! $ WC "builddir='" + builddir + "'" ! $ WC "byteorder='1234'" ! $ WC "castflags='0'" ! $ WC "cc='" + perl_cc + "'" ! $ WC "cccdlflags='" + cccdlflags + "'" ! $ WC "ccdlflags='" + ccdlflags + "'" ! $ WC "ccflags='" + ccflags + "'" ! $ WC "ccversion='" + ccversion + "'" ! $ WC "cf_by='" + cf_by + "'" ! $ WC "cf_email='" + cf_email + "'" ! $ WC "cf_time='" + cf_time + "'" ! $ WC "config_args='" + config_args + "'" ! $ WC "config_sh='" + config_sh + "'" ! $ WC "cpp_stuff='" + cpp_stuff + "'" ! $ WC "cpplast='" + cpplast + "'" ! $ WC "cppminus='" + cppminus + "'" ! $ WC "cpprun='" + cpprun + "'" ! $ WC "cppstdin='" + cppstdin + "'" ! $ WC "crosscompile='undef'" ! $ WC "d__fwalk='undef'" ! $ WC "d_Gconvert='my_gconvert(x,n,t,b)'" ! $ WC "d_PRId64='" + d_PRId64 + "'" ! $ WC "d_PRIEldbl='" + d_PRIEUldbl + "'" ! $ WC "d_PRIFldbl='" + d_PRIFUldbl + "'" ! $ WC "d_PRIGldbl='" + d_PRIGUldbl + "'" ! $ WC "d_PRIX64='" + d_PRIXU64 + "'" ! $ WC "d_PRIeldbl='" + d_PRIeldbl + "'" ! $ WC "d_PRIfldbl='" + d_PRIfldbl + "'" ! $ WC "d_PRIgldbl='" + d_PRIgldbl + "'" ! $ WC "d_PRIo64='" + d_PRIo64 + "'" ! $ WC "d_PRIu64='" + d_PRIu64 + "'" ! $ WC "d_PRIx64='" + d_PRIx64 + "'" ! $ WC "d_SCNfldbl='" + d_SCNfldbl + "'" ! $ WC "d_access='" + d_access + "'" ! $ WC "d_accessx='undef'" ! $ WC "d_alarm='define'" ! $ WC "d_archlib='define'" ! $ WC "d_atolf='" + d_atolf + "'" ! $ WC "d_atoll='" + d_atoll + "'" ! $ WC "d_attribut='" + d_attribut + "'" ! $ WC "d_bcmp='" + d_bcmp + "'" ! $ WC "d_bcopy='" + d_bcopy + "'" ! $ WC "d_bincompat3='undef'" ! $ WC "d_bincompat5005='undef'" ! $ WC "d_bsdgetpgrp='undef'" ! $! WC "d_bsdpgrp='undef'" ! $ WC "d_bsdsetpgrp='undef'" ! $ WC "d_bzero='" + d_bzero + "'" ! $ WC "d_casti32='define'" ! $ WC "d_castneg='define'" ! $ WC "d_charvspr='undef'" ! $ WC "d_chown='define'" ! $ WC "d_chroot='undef'" ! $ WC "d_chsize='undef'" ! $ WC "d_cmsghdr_s='undef'" ! $ WC "d_const='define'" ! $ WC "d_crypt='define'" ! $ WC "d_csh='undef'" ! $ WC "d_cuserid='define'" ! $ WC "d_dbl_dig='define'" ! $ WC "d_difftime='define'" ! $ WC "d_dirnamlen='define'" ! $ WC "d_dlerror='undef'" ! $ WC "d_dlsymun='undef'" ! $ WC "d_dosuid='undef'" ! $ WC "d_drand48proto='" + d_drand48proto + "'" ! $ WC "d_dup2='define'" ! $ WC "d_eaccess='undef'" ! $ WC "d_endgrent='define'" ! $ WC "d_endhent='" + d_endhent + "'" ! $ WC "d_endnent='" + d_endnent + "'" ! $ WC "d_endpent='" + d_endpent + "'" ! $ WC "d_endpwent='define'" ! $ WC "d_endsent='" + d_endsent + "'" ! $ WC "d_eofnblk='undef'" ! $ WC "d_eunice='undef'" ! $ WC "d_fchmod='undef'" ! $ WC "d_fchown='undef'" ! $ WC "d_fcntl='" + d_fcntl + "'" ! $ WC "d_fcntl_can_lock='" + d_fcntl_can_lock + "'" ! $ WC "d_fd_set='" + d_fd_set + "'" ! $ WC "d_fgetpos='define'" ! $ WC "d_flexfnam='define'" ! $ WC "d_flock='undef'" ! $ WC "d_fork='undef'" ! $ WC "d_fpathconf='" + d_fpathconf + "'" ! $ WC "d_fpos64_t='" + d_fpos64_t + "'" ! $ WC "d_frexpl='" + d_frexpl + "'" ! $ WC "d_fs_data_s='undef'" ! $ WC "d_fseeko='undef'" ! $ WC "d_fsetpos='define'" ! $ WC "d_fstatfs='undef'" ! $ WC "d_fstatvfs='undef'" ! $ WC "d_fsync='undef'" ! $ WC "d_ftello='undef'" ! $ WC "d_getcwd='undef'" ! $ WC "d_getespwnam='undef'" ! $ WC "d_getfsstat='undef'" ! $ WC "d_getgrent='define'" ! $ WC "d_getgrps='undef'" ! $ WC "d_gethbyaddr='" + d_gethbyaddr + "'" ! $ WC "d_gethbyname='" + d_gethbyname + "'" ! $ WC "d_gethent='" + d_gethent + "'" ! $ WC "d_gethname='" + d_gethname + "'" ! $ WC "d_gethostprotos='" + d_gethostprotos + "'" ! $ WC "d_getlogin='define'" ! $ WC "d_getmnt='undef'" ! $ WC "d_getmntent='undef'" ! $ WC "d_getnbyaddr='" + d_getnbyaddr + "'" ! $ WC "d_getnbyname='" + d_getnbyname + "'" ! $ WC "d_getnent='" + d_getnent + "'" ! $ WC "d_getnetprotos='" + d_getnetprotos + "'" ! $ WC "d_getpagsz='undef'" ! $ WC "d_getpbyname='" + d_getpbyname + "'" ! $ WC "d_getpbynumber='" + d_getpbynumber + "'" ! $ WC "d_getpent='" + d_getpent + "'" ! $ WC "d_getpgid='undef'" ! $ WC "d_getpgrp2='undef'" ! $ WC "d_getpgrp='undef'" ! $ WC "d_getppid='undef'" ! $ WC "d_getprior='undef'" ! $ WC "d_getprotoprotos='" + d_getprotoprotos + "'" ! $ WC "d_getprpwnam='undef'" ! $ WC "d_getpwent='define'" ! $ WC "d_getsbyname='" + d_getsbyname + "'" ! $ WC "d_getsbyport='" + d_getsbyport + "'" ! $ WC "d_getsent='" + d_getsent + "'" ! $ WC "d_getservprotos='" + d_getservprotos + "'" ! $ WC "d_getspnam='undef'" ! $ WC "d_gettimeod='" + d_gettimeod + "'" ! $ WC "d_gnulibc='undef'" ! $ WC "d_grpasswd='undef'" ! $ WC "d_hasmntopt='undef'" ! $ WC "d_htonl='" + d_htonl + "'" ! $ WC "d_iconv='" + d_iconv +"'" ! $ WC "d_index='" + d_index + "'" ! $ WC "d_inetaton='undef'" ! $ WC "d_int64_t='" + d_int64_t + "'" ! $ WC "d_isascii='define'" ! $ WC "d_isnan='" + d_isnan + "'" ! $ WC "d_isnanl='" + d_isnanl + "'" ! $ WC "d_killpg='undef'" ! $ WC "d_lchown='undef'" ! $ WC "d_ldbl_dig='define'" ! $ WC "d_link='undef'" ! $ WC "d_llseek='undef'" ! $ WC "d_locconv='" + d_locconv + "'" ! $ WC "d_lockf='undef'" ! $ WC "d_longdbl='" + d_longdbl + "'" ! $ WC "d_longlong='" + d_longlong + "'" ! $ WC "d_lseekproto='define'" ! $ WC "d_lstat='undef'" ! $ WC "d_madvise='undef'" ! $ WC "d_mblen='" + d_mblen + "'" ! $ WC "d_mbstowcs='" + d_mbstowcs + "'" ! $ WC "d_mbtowc='" + d_mbtowc + "'" ! $ WC "d_memchr='" + d_memchr + "'" ! $ WC "d_memcmp='define'" ! $ WC "d_memcpy='define'" ! $ WC "d_memmove='define'" ! $ WC "d_memset='define'" ! $ WC "d_mkdir='define'" ! $ WC "d_mkdtemp='" + d_mkdtemp + "'" ! $ WC "d_mkfifo='undef'" ! $ WC "d_mknod='undef'" ! $ WC "d_mkstemp='" + d_mkstemp + "'" ! $ WC "d_mkstemps='" + d_mkstemps + "'" ! $ WC "d_mktime='" + d_mktime + "'" ! $ WC "d_mmap='undef'" ! $ WC "d_modfl='" + d_modfl + "'" ! $ WC "d_mprotect='undef'" ! $ WC "d_msg='undef'" ! $ WC "d_msg_ctrunc='undef'" ! $ WC "d_msg_dontroute='undef'" ! $ WC "d_msg_oob='undef'" ! $ WC "d_msg_peek='undef'" ! $ WC "d_msg_proxy='undef'" ! $ WC "d_msghdr_s='undef'" ! $ WC "d_msync='undef'" ! $ WC "d_munmap='undef'" ! $ WC "d_mymalloc='" + d_mymalloc + "'" ! $ WC "d_nice='define'" ! $ WC "d_nv_preserves_uv='" + d_nv_preserves_uv + "'" ! $ WC "d_nv_preserves_uv_bits='" + d_nv_preserves_uv_bits + "'" ! $ WC "d_off64_t='" + d_off64_t + "'" ! $ WC "d_old_pthread_create_joinable='" + d_old_pthread_create_joinable + "'" ! $ WC "d_oldarchlib='define'" ! $ WC "d_oldpthreads='" + d_oldpthreads + "'" ! $ WC "d_open3='define'" ! $ WC "d_pathconf='" + d_pathconf + "'" ! $ WC "d_pause='define'" ! $ WC "d_perl_otherlibdirs='undef'" ! $ WC "d_phostname='undef'" ! $ WC "d_pipe='define'" ! $ WC "d_poll='undef'" ! $ WC "d_pthread_yield='" + d_pthread_yield + "'" ! $ WC "d_pthreads_created_joinable='" + d_pthreads_created_joinable + "'" ! $ WC "d_pwage='undef'" ! $ WC "d_pwchange='undef'" ! $ WC "d_pwclass='undef'" ! $ WC "d_pwcomment='define'" ! $ WC "d_pwexpire='undef'" ! $ WC "d_pwgecos='define'" ! $ WC "d_pwpasswd='define'" ! $ WC "d_pwquota='undef'" ! $ WC "d_qgcvt='undef'" ! $ WC "d_quad='" + d_quad + "'" ! $ WC "d_readdir='define'" ! $ WC "d_readlink='undef'" ! $ WC "d_readv='undef'" ! $ WC "d_recvmsg='undef'" ! $ WC "d_rename='define'" ! $ WC "d_rewinddir='define'" ! $ WC "d_rmdir='define'" ! $ WC "d_safebcpy='undef'" ! $ WC "d_safemcpy='define'" ! $ WC "d_sanemcmp='define'" ! $ WC "d_sched_yield='" + d_sched_yield + "'" ! $ WC "d_scm_rights='undef'" ! $ WC "d_seekdir='define'" ! $ WC "d_select='" + d_select + "'" ! $ WC "d_sem='undef'" ! $ WC "d_semctl_semid_ds='undef'" ! $ WC "d_semctl_semun='undef'" ! $ WC "d_sendmsg='undef'" ! $ WC "d_setegid='undef'" ! $ WC "d_setenv='" + d_setenv + "'" ! $ WC "d_seteuid='undef'" ! $ WC "d_setgrent='undef'" ! $ WC "d_setgrps='undef'" ! $ WC "d_sethent='" + d_sethent + "'" ! $ WC "d_setlinebuf='undef'" ! $ WC "d_setlocale='" + d_setlocale + "'" ! $ WC "d_setnent='" + d_setnent + "'" ! $ WC "d_setpent='" + d_setpent + "'" ! $ WC "d_setpgid='undef'" ! $ WC "d_setpgrp2='undef'" ! $ WC "d_setpgrp='undef'" ! $ WC "d_setprior='undef'" ! $ WC "d_setproctitle='" + d_setproctitle + "'" ! $ WC "d_setpwent='define'" ! $ WC "d_setregid='undef'" ! $ WC "d_setresgid='undef'" ! $ WC "d_setresuid='undef'" ! $ WC "d_setreuid='undef'" ! $ WC "d_setrgid='undef'" ! $ WC "d_setruid='undef'" ! $ WC "d_setsent='" + d_setsent + "'" ! $ WC "d_setsid='undef'" ! $ WC "d_setvbuf='" + d_setvbuf + "'" ! $ WC "d_sfio='undef'" ! $ WC "d_shm='undef'" ! $ WC "d_shmatprototype='undef'" ! $ WC "d_sigaction='" + d_sigaction + "'" ! $ WC "d_sigsetjmp='" + d_sigsetjmp + "'" ! $ WC "d_socket='" + d_socket + "'" ! $ WC "d_socklen_t='" + d_socklen_t + "'" ! $ WC "d_sockpair='undef'" ! $ WC "d_socks5_init='undef'" ! $ WC "d_sqrtl='define'" ! $ WC "d_statblks='undef'" ! $ WC "d_statfs_f_flags='undef'" ! $ WC "d_statfs_s='undef'" ! $ WC "d_statfsflags='undef'" ! $ WC "d_stdio_cnt_lval='" + d_stdio_cnt_lval + "'" ! $ WC "d_stdio_ptr_lval='" + d_stdio_ptr_lval + "'" ! $ WC "d_stdio_ptr_lval_sets_cnt='" + d_stdio_ptr_lval_sets_cnt + "'" ! $ WC "d_stdio_ptr_lval_nochange_cnt='" + d_stdio_ptr_lval_nochange_cnt + "'" ! $ WC "d_stdio_stream_array='undef'" ! $ WC "d_stdiobase='" + d_stdiobase + "'" ! $ WC "d_stdstdio='" + d_stdstdio + "'" ! $ WC "d_strchr='define'" ! $ WC "d_strcoll='" + d_strcoll + "'" ! $ WC "d_strctcpy='define'" ! $ WC "d_strerrm='strerror((e),vaxc$errno)'" ! $ WC "d_strerror='define'" ! $ WC "d_strtod='define'" ! $ WC "d_strtol='define'" ! $ WC "d_strtold='" + d_strtold + "'" ! $ WC "d_strtoll='" + d_strtoll + "'" ! $ WC "d_strtoul='define'" ! $ WC "d_strtoull='" + d_strtoull + "'" ! $ WC "d_strtouq='" + d_strtouq + "'" ! $ WC "d_strxfrm='" + d_strxfrm + "'" ! $ WC "d_suidsafe='undef'" ! $ WC "d_symlink='undef'" ! $ WC "d_syscall='undef'" ! $ WC "d_sysconf='" + d_sysconf + "'" ! $ WC "d_syserrlst='undef'" ! $ WC "d_system='define'" ! $ WC "d_tcgetpgrp='undef'" ! $ WC "d_tcsetpgrp='undef'" ! $ WC "d_telldir='define'" ! $ WC "d_telldirproto='define'" ! $ WC "d_times='define'" ! $ WC "d_truncate='" + d_truncate + "'" ! $ WC "d_tzname='undef'" ! $ WC "d_umask='define'" ! $ WC "d_uname='" + d_uname + "'" ! $ WC "d_union_semun='undef'" ! $ WC "d_unlink_all_versions='undef'" ! $ WC "d_ustat='undef'" ! $ WC "d_vendorarch='undef'" ! $ WC "d_vendorlib='undef'" ! $ WC "d_vfork='define'" ! $ WC "d_vms_case_sensitive_symbols='" + d_vms_be_case_sensitive + "'" ! VMS ! $ WC "d_vms_do_sockets='" + d_vms_do_sockets + "'" ! VMS ! $ WC "d_void_closedir='define'" ! $ WC "d_volatile='define'" ! $ WC "d_vprintf='define'" ! $ WC "d_wait4='" + d_wait4 + "'" ! $ WC "d_waitpid='define'" ! $ WC "d_wcstombs='" + d_wcstombs + "'" ! $ WC "d_wctomb='" + d_wctomb + "'" ! $ WC "d_writev='undef'" ! $ WC "db_hashtype=' '" ! $ WC "db_prefixtype=' '" ! $ WC "dbgprefix='" + dbgprefix + "'" ! $ WC "defvoidused='15'" ! $ WC "devtype='" + devtype + "'" ! $ WC "direntrytype='struct dirent'" ! $ WC "dlext='" + dlext + "'" ! $ WC "dlobj='" + dlobj + "'" ! $ WC "dlsrc='dl_vms.c'" ! $ WC "doublesize='" + doublesize + "'" ! $ WC "drand01='" + drand01 + "'" ! $ WC "dynamic_ext='" + extensions + "'" ! $ WC "eagain=' '" ! $ WC "ebcdic='undef'" ! $ WC "embedmymalloc='" + mymalloc + "'" ! $ WC "eunicefix=':'" ! $ WC "exe_ext='" + exe_ext + "'" ! $ WC "extensions='" + extensions + "'" ! $ WC "fflushNULL='define'" ! $ WC "fflushall='undef'" ! $ WC "fpostype='fpos_t'" ! $ WC "freetype='void'" ! $ WC "full_ar='" + "'" ! $ WC "full_csh='" + " '" ! $ WC "full_sed='_NLA0:'" ! $ WC "gccversion='" + gccversion + "'" ! $ WC "gidformat='lu'" ! $ WC "gidsign='1'" ! $ WC "gidsize='4'" ! $ WC "gidtype='" + gidtype + "'" ! $ WC "groupstype='Gid_t'" ! $ WC "hint='none'" ! $ WC "hintfile='" + "'" ! $ WC "i16size='" + i16size + "'" ! $ WC "i16type='" + i16type + "'" ! $ WC "i32size='" + i32size + "'" ! $ WC "i32type='" + i32type + "'" ! $ WC "i64size='" + i64size + "'" ! $ WC "i64type='" + i64type + "'" ! $ WC "i8size='" + i8size + "'" ! $ WC "i8type='" + i8type + "'" ! $ WC "i_arpainet='undef'" ! $ WC "i_dbm='undef'" ! $ WC "i_dirent='" + i_dirent + "'" ! $ WC "i_dlfcn='undef'" ! $ WC "i_fcntl='" + i_fcntl + "'" ! $ WC "i_float='define'" ! $ WC "i_grp='undef'" ! $ WC "i_iconv='" + i_iconv +"'" ! $ WC "i_ieeefp='undef'" ! $ WC "i_inttypes='" + i_inttypes + "'" ! $ WC "i_libutil='" + i_libutil + "'" ! $ WC "i_limits='define'" ! $ WC "i_locale='" + i_locale + "'" ! $ WC "i_machcthr='undef'" ! $ WC "i_machcthreads='undef'" ! $ WC "i_math='define'" ! $ WC "i_memory='undef'" ! $ WC "i_mntent='undef'" ! $ WC "i_ndbm='undef'" ! $ WC "i_netdb='" + i_netdb + "'" ! $ WC "i_neterrno='define'" ! $ WC "i_netinettcp='" + i_netinettcp + "'" ! $ WC "i_niin='" + i_niin + "'" ! $ WC "i_poll='" + i_poll + "'" ! $ WC "i_prot='undef'" ! $ WC "i_pthread='define'" ! $ WC "i_pwd='undef'" ! $ WC "i_rpcsvcdbm='undef'" ! $ WC "i_sfio='undef'" ! $ WC "i_sgtty='undef'" ! $ WC "i_shadow='" + i_shadow + "'" ! $ WC "i_socks='" + i_socks + "'" ! $ WC "i_stdarg='define'" ! $ WC "i_stddef='define'" ! $ WC "i_stdlib='define'" ! $ WC "i_string='define'" ! $ WC "i_sunmath='undef'" ! $ WC "i_sysaccess='" + i_sysaccess + "'" ! $ WC "i_sysdir='undef'" ! $ WC "i_sysfile='" + i_sysfile + "'" ! $ WC "i_sysioctl='undef'" ! $ WC "i_syslog='" + i_syslog + "'" ! $ WC "i_sysmman='undef'" ! $ WC "i_sysmode='" + i_sysmode + "'" ! $ WC "i_sysmount='undef'" ! $ WC "i_sysndir='undef'" ! $ WC "i_sysparam='undef'" ! $ WC "i_sysresrc='undef'" ! $ WC "i_syssecrt='" + i_syssecrt + "'" ! $ WC "i_sysselct='undef'" ! $ WC "i_sysstat='define'" ! $ WC "i_sysstatfs='undef'" ! $ WC "i_sysstatvfs='undef'" ! $ WC "i_systime='undef'" ! $ WC "i_systimek='undef'" ! $ WC "i_systimes='undef'" ! $ WC "i_systypes='define'" ! $ WC "i_sysuio='" + i_sysuio + "'" ! $ WC "i_sysun='undef'" ! $ WC "i_sysutsname='" + i_sysutsname + "'" ! $ WC "i_sysvfs='undef'" ! $ WC "i_syswait='undef'" ! $ WC "i_termio='undef'" ! $ WC "i_termios='undef'" ! $ WC "i_time='define'" ! $ WC "i_unistd='" + i_unistd + "'" ! $ WC "i_ustat='undef'" ! $ WC "i_utime='undef'" ! $ WC "i_values='undef'" ! $ WC "i_varargs='undef'" ! $ WC "i_vfork='undef'" ! $ WC "inc_version_list='0'" ! $ WC "inc_version_list_init='0'" ! $ WC "installarchlib='" + installarchlib + "'" ! $ WC "installbin='" + installbin + "'" ! $ WC "installman1dir='" + installman1dir + "'" ! $ WC "installman3dir='" + installman3dir + "'" ! $ WC "installprivlib='" + installprivlib + "'" ! $ WC "installscript='" + installscript + "'" ! $ WC "installsitearch='" + installsitearch + "'" ! $ WC "installsitelib='" + installsitelib + "'" ! $ WC "installusrbinperl='undef'" ! $ WC "intsize='" + intsize + "'" ! $ WC "ivdformat='" + ivdformat + "'" ! $ WC "ivsize='" + ivsize + "'" ! $ WC "ivtype='" + ivtype + "'" ! $ WC "known_extensions='" + known_extensions + "'" ! $ WC "ld='" + ld + "'" ! $ WC "lddlflags='/Share'" ! $ WC "ldflags='/NoTrace/NoMap'" ! $ WC "lib_ext='" + lib_ext + "'" ! $ WC "libc='" + libc + "'" ! $ WC "libpth='/sys$share /sys$library'" ! $ WC "libs='" + libs + "'" ! $ WC "longdblsize='" + longdblsize + "'" ! $ WC "longlongsize='" + longlongsize + "'" ! $ WC "longsize='" + longsize + "'" ! $ WC "lseeksize='4'" ! $ WC "lseektype='int'" ! $ WC "mab='" + "'" ! $ WC "make='" + make + "'" ! $ WC "malloctype='void *'" ! $ WC "man1ext='rno'" ! $ WC "man3ext='rno'" ! $ WC "mmaptype=' " + "'" ! $ WC "modetype='unsigned int'" ! $ WC "multiarch='undef'" ! $ WC "mydomain='" + mydomain + "'" ! $ WC "myhostname='" + myhostname + "'" ! $ WC "myuname='" + myuname + "'" ! $ WC "netdb_hlen_type='" + netdb_hlen_type + "'" ! $ WC "netdb_host_type='" + netdb_host_type + "'" ! $ WC "netdb_name_type='" + netdb_name_type + "'" ! $ WC "netdb_net_type='" + netdb_net_type + "'" ! $ WC "nveformat='" + nveformat + "'" ! $ WC "nvfformat='" + nvfformat + "'" ! $ WC "nvgformat='" + nvgformat + "'" ! $ WC "nvsize='" + nvsize + "'" ! $ WC "nvtype='" + nvtype + "'" ! $ WC "o_nonblock=' '" ! $ WC "obj_ext='" + obj_ext + "'" ! $ WC "old_pthread_create_joinable='" + old_pthread_create_joinable + "'" ! $ WC "oldarchlib='" + oldarchlib + "'" ! $ WC "oldarchlibexp='" + oldarchlibexp + "'" ! $ WC "optimize='" + optimize + "'" ! $ WC "osname='" + osname + "'" ! $ WC "osvers='" + osvers + "'" ! $ WC "otherlibdirs='" + "'" ! $ WC "package='" + package + "'" ! $ WC "pager='" + pager + "'" ! $ WC "patchlevel='" + patchlevel + "'" ! $ WC "path_sep='|'" ! $ WC "perl_root='" + perl_root + "'" ! VMS specific $trnlnm() ! $ WC "perladmin='" + perladmin + "'" ! $ WC "perllibs='" + perllibs + "'" ! $ WC "pgflquota='" + pgflquota + "'" ! $ WC "pidtype='" + pidtype + "'" ! $ WC "pm_apiversion='" + version + "'" ! $! WC "prefix='" + vms_prefix + "'" ! $ WC "prefix='" + prefix + "'" ! $ WC "privlib='" + privlib + "'" ! $ WC "privlibexp='" + privlibexp + "'" ! $ WC "prototype='define'" ! $ WC "ptrsize='" + ptrsize + "'" ! $ WC "quadkind='" + quadkind + "'" ! $ WC "quadtype='" + quadtype + "'" ! $ WC "randbits='31'" ! $ WC "randseedtype='" + randseedtype + "'" ! $ WC "ranlib='" + "'" ! $ WC "rd_nodata=' '" ! $ WC "revision='" + revision + "'" ! $ WC "sPRId64='" + sPRId64 + "'" ! $ WC "sPRIEldbl='" + sPRIEUldbl + "'" ! $ WC "sPRIFldbl='" + sPRIFUldbl + "'" ! $ WC "sPRIGldbl='" + sPRIGUldbl + "'" ! $ WC "sPRIX64='" + sPRIXU64 + "'" ! $ WC "sPRIeldbl='" + sPRIeldbl + "'" ! $ WC "sPRIfldbl='" + sPRIfldbl + "'" ! $ WC "sPRIgldbl='" + sPRIgldbl + "'" ! $! WC "sPRIi64='" + sPRIi64 + "'" ! $ WC "sPRIo64='" + sPRIo64 + "'" ! $ WC "sPRIu64='" + sPRIu64 + "'" ! $ WC "sPRIx64='" + sPRIx64 + "'" ! $ WC "sSCNfldbl='" + sSCNfldbl + "'" ! $ WC "sched_yield='" + sched_yield + "'" ! $ WC "seedfunc='" + seedfunc + "'" ! $ WC "selectminbits='32'" ! $ WC "selecttype='" + selecttype + "'" ! $ WC "sh='MCR'" ! $ WC "shmattype='" + "'" ! $ WC "shortsize='" + shortsize + "'" ! $ WC "shrplib='define'" ! $ WC "sig_name='" + sig_name + "'" ! $ tmp = "sig_name_init='" + sig_name_init + "'" ! $ WC/symbol tmp ! $ DELETE/SYMBOL tmp ! $ WC "sig_num='" + sig_num + "'" ! $ WC "sig_num_init='" + sig_num_init + "'" ! $ WC "signal_t='" + signal_t + "'" ! $ WC "sitearch='" + sitearch + "'" ! $ WC "sitearchexp='" + sitearchexp + "'" ! $ WC "sitelib='" + sitelib + "'" ! $ WC "sitelib_stem='" + sitelib_stem + "'" ! $ WC "sitelibexp='" + sitelibexp + "'" ! $ WC "sizesize='" + sizesize + "'" ! $ WC "sizetype='size_t'" ! $ WC "so='" + so + "'" ! $ WC "socksizetype='" + socksizetype + "'" ! $ WC "spitshell='write sys$output '" ! $ WC "src='" + src + "'" ! $ WC "ssizetype='int'" ! $ WC "startperl=" + startperl ! This one's special--no enclosing single quotes ! $ WC "static_ext='" + "'" ! $ WC "stdchar='" + stdchar + "'" ! $ WC "stdio_base='((*fp)->_base)'" ! $ WC "stdio_bufsiz='((*fp)->_cnt + (*fp)->_ptr - (*fp)->_base)'" ! $ WC "stdio_cnt='((*fp)->_cnt)'" ! $ WC "stdio_ptr='((*fp)->_ptr)'" ! $ WC "stdio_stream_array=' " + "'" ! $ WC "subversion='" + subversion + "'" ! $ WC "timetype='" + timetype + "'" ! $ WC "u16size='" + u16size + "'" ! $ WC "u16type='" + u16type + "'" ! $ WC "u32size='" + u32size + "'" ! $ WC "u32type='" + u32type + "'" ! $ WC "u64size='" + u64size + "'" ! $ WC "u64type='" + u64type + "'" ! $ WC "u8size='" + u8size + "'" ! $ WC "u8type='" + u8type + "'" ! $ WC "uidformat='lu'" ! $ WC "uidsign='1'" ! $ WC "uidsize='4'" ! $ WC "uidtype='" + uidtype + "'" ! $ WC "uquadtype='" + uquadtype + "'" ! $ WC "use5005threads='" + use5005threads + "'" ! $ WC "use64bitall='" + use64bitall + "'" ! $ WC "use64bitint='" + use64bitint + "'" ! $ WC "usedebugging_perl='" + use_debugging_perl + "'" ! $ WC "usedl='" + usedl + "'" ! $ WC "useithreads='" + useithreads + "'" ! $ WC "uselargefiles='" + uselargefiles + "'" ! $ WC "uselongdouble='" + uselongdouble + "'" ! $ WC "usemorebits='" + usemorebits + "'" ! $ WC "usemultiplicity='" + usemultiplicity + "'" ! $ WC "usemymalloc='" + usemymalloc + "'" ! $ WC "useperlio='undef'" ! $ WC "useposix='false'" ! $ WC "usesocks='undef'" ! $ WC "usethreads='" + usethreads + "'" ! $ WC "usevfork='true'" ! $ WC "uvoformat='" + uvoformat + "'" ! $ WC "uvsize='" + uvsize + "'" ! $ WC "uvtype='" + uvtype + "'" ! $ WC "uvuformat='" + uvuformat + "'" ! $ WC "uvxformat='" + uvxformat + "'" ! $ WC "vendorarchexp='" + "'" ! $ WC "vendorlib_stem='" + "'" ! $ WC "vendorlibexp='" + "'" ! $ WC "version='" + version + "'" ! $ WC "vms_cc_type='" + vms_cc_type + "'" ! VMS specific ! $ WC "vms_prefix='" + vms_prefix + "'" ! VMS specific ! $ WC "vms_ver='" + vms_ver + "'" ! VMS specific ! $ WC "voidflags='15'" ! $ WC "xs_apiversion='" + version + "'" ! $ WC "CONFIGDOTSH='true'" ! $! ! $! ##END WRITE NEW CONSTANTS HERE## ! $! ! $ CLOSE CONFIG ! $! ! $! Okay, we've gotten here. Build munchconfig.exe ! $ COPY/NOLOG [-.vms]munchconfig.c [] ! $ COPY/NOLOG [-.vms]'Makefile_SH' [] ! $ 'Perl_CC' munchconfig.c ! $ IF Needs_Opt ! $ THEN ! $ OPEN/WRITE CONFIG []munchconfig.opt ! $ IF Using_Gnu_C ! $ THEN ! $ WRITE CONFIG "Gnu_CC:[000000]gcclib.olb/library" ! $ ENDIF ! $ WRITE CONFIG "Sys$Share:VAXCRTL/Share" ! $ CLOSE CONFIG ! $ 'ld' munchconfig.obj,munchconfig.opt/opt ! $ DELETE/NOLOG/NOCONFIRM munchconfig.opt; ! $ ELSE ! $ 'ld' munchconfig.obj ! $ ENDIF ! $ IF F$SEARCH("munchconfig.obj") .NES. "" THEN DELETE/NOLOG/NOCONFIRM munchconfig.obj; ! $ IF F$SEARCH("munchconfig.c") .NES. "" THEN DELETE/NOLOG/NOCONFIRM munchconfig.c; ! $ IF using_cxx ! $ THEN ! $ CALL Cxx_demangler_cleanup ! $ ENDIF ! $! ! $ IF alldone .EQS. "" ! $ THEN ! $ cat4 SYS$INPUT: ! $ DECK ! ! If you'd like to make any changes to the config.sh file before I begin ! to configure things, answer yes to the following question. ! ! $ EOD ! $ dflt="n" ! $ rp="Do you wish to edit ''basename_config_sh'? [''dflt'] " ! $ GOSUB myread ! $ IF ans .EQS. "" then ans = dflt ! $ IF ans ! $ THEN ! $ echo4 "" ! $ echo4 "Be sure to type LOGOUT after you have edited the file," ! $ echo4 "then this procedure will resume." ! $ echo4 "" ! $ default = F$ENVIRONMENT("DEFAULT") ! $ DIRECTORY 'config_sh' ! $ SET DEFAULT [-] ! $ SPAWN/WAIT ! $ SET DEFAULT 'default' ! $ ENDIF ! $ ENDIF ! $! ! $ echo "" ! $ echo4 "Adding ''osname' specific preprocessor commands." ! $ ! ! $ ! we need an fdl file ! $ CREATE [-]CONFIG.FDL ! $ DECK ! RECORD ! FORMAT STREAM_LF ! $ EOD ! $ CREATE /FDL=[-]CONFIG.FDL [-]CONFIG.LOCAL ! $ ! First spit out the header info with the local defines (to get ! $ ! around the 255 character command line limit) ! $ OPEN/APPEND CONFIG [-]config.local ! $ IF use_debugging_perl THEN WC "#define DEBUGGING" ! $ IF use_two_pot_malloc THEN WC "#define TWO_POT_OPTIMIZE" ! $ IF mymalloc THEN WC "#define EMBEDMYMALLOC" ! $ IF use_pack_malloc THEN WC "#define PACK_MALLOC" ! $ IF use_debugmalloc THEN WC "#define DEBUGGING_MSTATS" ! $ IF Using_Gnu_C THEN WC "#define GNUC_ATTRIBUTE_CHECK" ! $ IF (Has_Dec_C_Sockets) ! $ THEN ! $ WC "#define VMS_DO_SOCKETS" ! $ WC "#define DECCRTL_SOCKETS" ! $ ELSE ! $ IF Has_Socketshr THEN WC "#define VMS_DO_SOCKETS" ! $ ENDIF ! $! This is VMS-specific for now ! $ WC "#''d_setenv' HAS_SETENV" ! $ IF d_secintgenv THEN WC "#define SECURE_INTERNAL_GETENV" ! $ IF d_alwdeftype THEN WC "#define ALWAYS_DEFTYPES" ! $ IF use64bitint .OR. use64bitint .EQS. "define" ! $ THEN ! $ WC "#define USE_64_BIT_INT" ! $ WC "#define USE_LONG_DOUBLE" ! $ ENDIF ! $ IF use64bitall .OR. use64bitall .EQS. "define" THEN - ! WC "#define USE_64_BIT_ALL" ! $ IF be_case_sensitive THEN WC "#define VMS_WE_ARE_CASE_SENSITIVE" ! $ IF d_herrno .EQS. "undef" THEN WC "#define NEED_AN_H_ERRNO" ! $ WC "#define HAS_ENVGETENV" ! $ WC "#define PERL_EXTERNAL_GLOB" ! $ CLOSE CONFIG ! $! ! $ echo4 "Doing variable substitutions on .SH files..." ! $ echo4 "Extracting config.h (with variable substitutions)" ! $! ! $! Now build the normal config.h ! $ DEFINE/USER_MODE sys$output [-]config.main ! $ mcr []munchconfig 'config_sh' [-]config_h.sh ! $ ! Concatenate them together ! $ copy [-]config.local,[-]config.main [-]config.h ! $! Clean up ! $ DELETE/NOLOG [-]CONFIG.MAIN;* ! $ DELETE/NOLOG [-]CONFIG.LOCAL;* ! $ DELETE/NOLOG [-]CONFIG.FDL;* ! $! ! $ IF Using_Dec_C ! $ THEN ! $ DECC_REPLACE = "DECC=decc=1" ! $ ELSE ! $ DECC_REPLACE = "DECC=" ! $ ENDIF ! $ IF using_cxx ! $ THEN ! $ DECCXX_REPLACE = "DECCXX=DECCXX=1" ! $ ELSE ! $ DECCXX_REPLACE = "DECCXX=" ! $ ENDIF ! $ IF Using_Gnu_C ! $ THEN ! $ GNUC_REPLACE = "GNUC=gnuc=1" ! $ ELSE ! $ GNUC_REPLACE = "GNUC=" ! $ ENDIF ! $ IF Has_Dec_C_Sockets ! $ THEN ! $ SOCKET_REPLACE = "SOCKET=DECC_SOCKETS=1" ! $ ELSE ! $ IF Has_Socketshr ! $ THEN ! $ SOCKET_REPLACE = "SOCKET=SOCKETSHR_SOCKETS=1" ! $ ELSE ! $ SOCKET_REPLACE = "SOCKET=" ! $ ENDIF ! $ ENDIF ! $ IF Use_Threads ! $ THEN ! $ IF (vms_ver .LES. "6.2") ! $ THEN ! $ THREAD_REPLACE = "THREAD=OLDTHREADED=1" ! $ ELSE ! $ THREAD_REPLACE = "THREAD=THREADED=1" ! $ ENDIF ! $ ELSE ! $ THREAD_REPLACE = "THREAD=" ! $ ENDIF ! $ IF mymalloc ! $ THEN ! $ MALLOC_REPLACE = "MALLOC=MALLOC=1" ! $ ELSE ! $ MALLOC_REPLACE = "MALLOC=" ! $ ENDIF ! $ echo4 "Extracting ''defmakefile' (with variable substitutions)" ! $ DEFINE/USER_MODE sys$output 'UUmakefile' ! $ mcr []munchconfig 'config_sh' 'Makefile_SH' "''DECC_REPLACE'" - ! "''DECCXX_REPLACE'" "''ARCH_TYPE'" "''GNUC_REPLACE'" "''SOCKET_REPLACE'" - ! "''THREAD_REPLACE'" "''C_Compiler_Replace'" "''MALLOC_REPLACE'" - ! "''Thread_Live_Dangerously'" "PV=''version'" "FLAGS=FLAGS=''extra_flags'" ! $! Clean up after ourselves ! $ DELETE/NOLOG/NOCONFIRM []munchconfig.exe; ! $ echo4 "Extracting make_ext.com (without variable substitutions)" ! $ Create Sys$Disk:[-]make_ext.com ! $ Deck/Dollar="$EndOfTpl$" ! $!++ make_ext.com ! $! NOTE: This file is extracted as part of the VMS configuration process. ! $! Any changes made to it directly will be lost. If you need to make any ! $! changes, please edit the template in Configure.Com instead. ! $ def = F$Environment("Default") ! $ exts1 = F$Edit(p1,"Compress") ! $ p2 = F$Edit(p2,"Upcase,Compress,Trim") ! $ If F$Locate("MCR ",p2).eq.0 Then p2 = F$Extract(3,255,p2) ! $ miniperl = "$" + F$Search(F$Parse(p2,".Exe")) ! $ makeutil = p3 ! $ if f$type('p3') .nes. "" then makeutil = 'p3' ! $ targ = F$Edit(p4,"Lowercase") ! $ i = 0 ! $ next_ext: ! $ ext = F$Element(i," ",p1) ! $ If ext .eqs. " " Then Goto done ! $ Define/User_mode Perl_Env_Tables CLISYM_LOCAL ! $ miniperl ! $ deck ! ($extdir = $ENV{'ext'}) =~ s/::/./g; ! $extdir =~ s#/#.#g; ! if ($extdir =~ /^vms/i) { $extdir =~ s/vms/.vms.ext/i; } ! else { $extdir = ".ext.$extdir"; } ! ($ENV{'extdir'} = "[$extdir]"); ! ($ENV{'up'} = ('-') x ($extdir =~ tr/././)); ! $ eod ! $ Set Default &extdir ! $ redesc = 0 ! $ If F$Locate("clean",targ) .eqs. F$Length(targ) ! $ Then ! $ Write Sys$Output "" ! $ Write Sys$Output " Making ''ext' (dynamic)" ! $ On Error Then Goto done ! $ If F$Search("Descrip.MMS") .eqs. "" ! $ Then ! $ redesc = 1 ! $ Else ! $ If F$CvTime(F$File("Descrip.MMS","rdt")) .lts. - ! F$CvTime(F$File("Makefile.PL","rdt")) Then redesc = 1 ! $ EndIf ! $ Else ! $ Write Sys$Output "''targ'ing ''ext' . . ." ! $ On Error Then Continue ! $ EndIf ! $ If redesc Then - ! miniperl "-I[''up'.lib]" Makefile.PL "INST_LIB=[''up'.lib]" "INST_ARCHLIB=[''up'.lib]" ! $ makeutil 'targ' ! $ i = i + 1 ! $ Set Def &def ! $ Goto next_ext ! $ done: ! $ sts = $Status ! $ Set Def &def ! $ Exit sts ! $!-- make_ext.com ! $EndOfTpl$ ! $! ! $! ! $! Warn of dangerous symbols or logical names ! $! ! $Bad_environment: SUBROUTINE ! $ Bad_env = "" ! $ IF p2 .eqs. "SYMBOL" ! $ THEN ! $ IF f$type('p1') .nes. "" THEN Bad_env := SYMBOL ! $ ELSE ! $ IF f$trnlnm(p1) .nes. "" THEN Bad_env := LOGICAL ! $ ENDIF ! $ IF Bad_env .eqs. "SYMBOL" .or. Bad_env .eqs. "LOGICAL" ! $ THEN ! $ IF f$search("config.msg") .nes. "" ! $ THEN ! $ OPEN/APPEND CONFIG config.msg ! $ ELSE ! $ OPEN/WRITE CONFIG config.msg ! $ ENDIF ! $ IF Bad_env .eqs. "SYMBOL" ! $ THEN ! $ WRITE CONFIG "" ! $ WRITE CONFIG "Symbol name ''p1' found in environment as " + &p1 $ WRITE CONFIG " delete before building ''package' via:" $ WRITE CONFIG " $ DELETE/SYMBOL/GLOBAL ''p1'" $ IF f$locate("""",&p1) .ge. f$length(&p1) $ THEN ! $ WRITE CONFIG " after building, testing, and installing ''package'" $ WRITE CONFIG " restore the symbol with:" $ WRITE CONFIG " $ ''p1' == """ + &p1 + """" $ ENDIF *************** *** 2243,2249 **** $ EXIT $ ENDSUBROUTINE ! Bad_environment $ echo "" ! $ echo4 "%Config-I-VMS, Checking for dangerous pre-existing global symbols and logical names." $ CALL Bad_environment "TMP" $ CALL Bad_environment "LIB" $ CALL Bad_environment "T" --- 5595,5601 ---- $ EXIT $ ENDSUBROUTINE ! Bad_environment $ echo "" ! $ echo4 "Checking for dangerous pre-existing global symbols and logical names." $ CALL Bad_environment "TMP" $ CALL Bad_environment "LIB" $ CALL Bad_environment "T" *************** *** 2258,2285 **** $ THEN $ file_2_find = "[-]''packageup'.cld" $ echo "" ! $ echo4 "%Config-I-VMS, The perl.cld file is now being written..." $ OPEN/WRITE CONFIG 'file_2_find' $ ext = ".exe" ! $ IF ((sharedperl) .AND. (f$getsyi("ARCH_NAME") .NES. "VAX")) THEN ext := .AXE $ IF (use_vmsdebug_perl) $ THEN $ WRITE CONFIG "define verb dbgperl" ! $ WRITE CONFIG F$FAO("!_!AS","image ''packageup'_root:[000000]dbgperl''ext'") $ WRITE CONFIG F$FAO("!_!AS","cliflags (foreign)") $ WRITE CONFIG "" $ WRITE CONFIG "define verb perl" ! $ WRITE CONFIG F$FAO("!_!AS","image ''packageup'_root:[000000]ndbgPerl''ext'") $ WRITE CONFIG F$FAO("!_!AS","cliflags (foreign)") $ ELSE $ WRITE CONFIG "define verb perl" ! $ WRITE CONFIG F$FAO("!_!AS","image ''packageup'_root:[000000]perl''ext'") $ WRITE CONFIG F$FAO("!_!AS","cliflags (foreign)") $ ENDIF $ CLOSE CONFIG $ ENDIF ! (.NOT.perl_symbol) $ echo "" ! $ echo4 "%Config-I-VMS, The perl_setup.com file is now being written..." $ file_2_find = "[-]perl_setup.com" $ OPEN/WRITE CONFIG 'file_2_find' $ WRITE CONFIG "$!" --- 5610,5637 ---- $ THEN $ file_2_find = "[-]''packageup'.cld" $ echo "" ! $ echo4 "The perl.cld file is now being written..." $ OPEN/WRITE CONFIG 'file_2_find' $ ext = ".exe" ! $ IF ((sharedperl) .AND. (F$GETSYI("HW_MODEL") .GE. 1024)) THEN ext := .AXE $ IF (use_vmsdebug_perl) $ THEN $ WRITE CONFIG "define verb dbgperl" ! $ WRITE CONFIG F$FAO("!_!AS","image ''vms_prefix':[000000]dbgperl''ext'") $ WRITE CONFIG F$FAO("!_!AS","cliflags (foreign)") $ WRITE CONFIG "" $ WRITE CONFIG "define verb perl" ! $ WRITE CONFIG F$FAO("!_!AS","image ''vms_prefix':[000000]ndbgPerl''ext'") $ WRITE CONFIG F$FAO("!_!AS","cliflags (foreign)") $ ELSE $ WRITE CONFIG "define verb perl" ! $ WRITE CONFIG F$FAO("!_!AS","image ''vms_prefix':[000000]perl''ext'") $ WRITE CONFIG F$FAO("!_!AS","cliflags (foreign)") $ ENDIF $ CLOSE CONFIG $ ENDIF ! (.NOT.perl_symbol) $ echo "" ! $ echo4 "The perl_setup.com file is now being written..." $ file_2_find = "[-]perl_setup.com" $ OPEN/WRITE CONFIG 'file_2_find' $ WRITE CONFIG "$!" *************** *** 2294,2331 **** $ prefix = prefix - "000000." $ IF F$LOCATE(".]",prefix) .EQ. F$LENGTH(prefix) THEN - prefix = prefix - "]" + ".]" ! $ WRITE CONFIG "$ define/translation=concealed Perl_Root ''prefix'" $ WRITE CONFIG "$ ext = "".exe""" ! $ IF sharedperl .EQS. "Y" $ THEN ! $ write config "$ if f$getsyi(""ARCH_NAME"") .nes. ""VAX"" then ext = "".AXE""" $ ENDIF $ IF (perl_symbol) $ THEN $ IF (use_vmsdebug_perl) $ THEN ! $ WRITE CONFIG "$ dbgperl :== $Perl_Root:[000000]dbgPerl'ext'" ! $ WRITE CONFIG "$ perl :== $Perl_Root:[000000]ndbgPerl'ext'" ! $ WRITE CONFIG "$ define dbgPerlShr Perl_Root:[000000]dbgPerlShr'ext'" $ ELSE ! $ WRITE CONFIG "$ perl :== $Perl_Root:[000000]Perl'ext'" ! $ WRITE CONFIG "$ define PerlShr Perl_Root:[000000]PerlShr'ext'" $ ENDIF $ ELSE ! .NOT.perl_symbol $ IF (use_vmsdebug_perl) $ THEN ! $ WRITE CONFIG "$ define dbgPerlShr Perl_Root:[000000]dbgPerlShr'ext'" $ ELSE ! $ WRITE CONFIG "$ define PerlShr Perl_Root:[000000]PerlShr'ext'" $ ENDIF $ IF perl_verb .EQS. "PROCESS" $ THEN ! $ WRITE CONFIG "$ set command ''packagup'_ROOT:[000000]''packageup'.CLD" $ ENDIF $ ENDIF ! perl_symbol ! $ WRITE CONFIG "$ define/nolog pod2text Perl_Root:[lib.pod]pod2text.com" ! $ WRITE CONFIG "$ define/nolog pod2html Perl_Root:[lib.pod]pod2html.com" ! $ WRITE CONFIG "$ define/nolog pod2man Perl_Root:[lib.pod]pod2man.com" $! $ IF (tzneedset) $ THEN --- 5646,5683 ---- $ prefix = prefix - "000000." $ IF F$LOCATE(".]",prefix) .EQ. F$LENGTH(prefix) THEN - prefix = prefix - "]" + ".]" ! $ WRITE CONFIG "$ define/translation=concealed ''vms_prefix' ''prefix'" $ WRITE CONFIG "$ ext = "".exe""" ! $ IF sharedperl $ THEN ! $ write config "$ if f$getsyi(""HW_MODEL"") .ge. 1024 then ext = "".AXE""" $ ENDIF $ IF (perl_symbol) $ THEN $ IF (use_vmsdebug_perl) $ THEN ! $ WRITE CONFIG "$ dbgperl :== $''vms_prefix':[000000]dbgPerl'ext'" ! $ WRITE CONFIG "$ perl :== $''vms_prefix':[000000]ndbgPerl'ext'" ! $ WRITE CONFIG "$ define dbgPerlShr ''vms_prefix':[000000]dbgPerlShr'ext'" $ ELSE ! $ WRITE CONFIG "$ perl :== $''vms_prefix':[000000]Perl'ext'" ! $ WRITE CONFIG "$ define PerlShr ''vms_prefix':[000000]PerlShr'ext'" $ ENDIF $ ELSE ! .NOT.perl_symbol $ IF (use_vmsdebug_perl) $ THEN ! $ WRITE CONFIG "$ define dbgPerlShr ''vms_prefix':[000000]dbgPerlShr'ext'" $ ELSE ! $ WRITE CONFIG "$ define PerlShr ''vms_prefix':[000000]PerlShr'ext'" $ ENDIF $ IF perl_verb .EQS. "PROCESS" $ THEN ! $ WRITE CONFIG "$ set command ''vms_prefix':[000000]''packageup'.CLD" $ ENDIF $ ENDIF ! perl_symbol ! $ WRITE CONFIG "$ define/nolog pod2text ''vms_prefix':[lib.pod]pod2text.com" ! $ WRITE CONFIG "$ define/nolog pod2html ''vms_prefix':[lib.pod]pod2html.com" ! $ WRITE CONFIG "$ define/nolog pod2man ''vms_prefix':[lib.pod]pod2man.com" $! $ IF (tzneedset) $ THEN *************** *** 2338,2396 **** $ WRITE CONFIG "$!" $ IF (perl_symbol) $ THEN ! $ WRITE CONFIG "$ Perldoc == ""'"+"'Perl' Perl_Root:[lib.pod]Perldoc.com -t""" $ WRITE CONFIG "$ pod2text == ""'"+"'Perl' pod2text""" $ WRITE CONFIG "$ pod2html == ""'"+"'Perl' pod2html""" ! $ WRITE CONFIG "$ pod2latex == ""'"+"'Perl' Perl_Root:[lib.pod]pod2latex.com""" $ WRITE CONFIG "$!pod2man == ""'"+"'Perl' pod2man""" ! $ WRITE CONFIG "$!Perlbug == ""'"+"'Perl' Perl_Root:[lib]Perlbug.com""" ! $ WRITE CONFIG "$ c2ph == ""'"+"'Perl' Perl_Root:[utils]c2ph.com""" $ IF F$LOCATE("Devel::DProf",extensions) .LT. F$LENGTH(extensions) $ THEN ! $ WRITE CONFIG "$ dprofpp == ""'"+"'Perl' Perl_Root:[utils]dprofpp.com""" $ ENDIF ! $ WRITE CONFIG "$ h2ph == ""'"+"'Perl' Perl_Root:[utils]h2ph.com""" ! $ WRITE CONFIG "$ h2xs == ""'"+"'Perl' Perl_Root:[utils]h2xs.com""" ! $ WRITE CONFIG "$!perlcc == ""'"+"'Perl' Perl_Root:[utils]perlcc.com""" ! $ WRITE CONFIG "$ splain == ""'"+"'Perl' Perl_Root:[utils]splain.com""" $ ELSE ! $ WRITE CONFIG "$ Perldoc == ""Perl Perl_Root:[lib.pod]Perldoc.com -t""" $ WRITE CONFIG "$ pod2text == ""Perl pod2text""" $ WRITE CONFIG "$ pod2html == ""Perl pod2html""" ! $ WRITE CONFIG "$ pod2latex == ""Perl Perl_Root:[lib.pod]pod2latex.com""" $ WRITE CONFIG "$!pod2man == ""Perl pod2man""" ! $ WRITE CONFIG "$!Perlbug == ""Perl Perl_Root:[lib]Perlbug.com""" ! $ WRITE CONFIG "$ c2ph == ""Perl Perl_Root:[utils]c2ph.com""" $ IF F$LOCATE("Devel::DProf",extensions) .LT. F$LENGTH(extensions) $ THEN ! $ WRITE CONFIG "$ dprofpp == ""Perl Perl_Root:[utils]dprofpp.com""" $ ENDIF ! $ WRITE CONFIG "$ h2ph == ""Perl Perl_Root:[utils]h2ph.com""" ! $ WRITE CONFIG "$ h2xs == ""Perl Perl_Root:[utils]h2xs.com""" ! $ WRITE CONFIG "$!perlcc == ""Perl Perl_Root:[utils]perlcc.com""" ! $ WRITE CONFIG "$ splain == ""Perl Perl_Root:[utils]splain.com""" $ ENDIF $ CLOSE CONFIG $! $ echo "" ! $ echo "%Config-I-VMS, The file can be found at:" ! $ echo4 "-Config-I-VMS, ''F$SEARCH(file_2_find)'" ! $ echo "-Config-I-VMS, Add that file (or an @ call to it) to your [SY]LOGIN.COM" ! $ echo "-Config-I-VMS, when you are satisfied with a successful compilation," ! $ echo "-Config-I-VMS, testing, and installation of your perl." $ echo "" $ IF ((.NOT.perl_symbol) .AND. (perl_verb .EQS. "DCLTABLES")) $ THEN $ file_2_find = "[-]''packageup'_install.com" ! $ OPEN/WRITE CONFIG 'file_2_find $ WRITE CONFIG "$ set command perl /table=sys$common:[syslib]dcltables.exe -" $ WRITE CONFIG " /output=sys$common:[syslib]dcltables.exe" $ WRITE CONFIG "$ install replace sys$common:[syslib]dcltables.exe" $ CLOSE CONFIG $ echo4 "" ! $ echo4 "%Config-I-VMS, In order to install the ''packageup' verb into DCLTABLES run:" ! $ echo4 "-Config-I-VMS, @ ''F$SEARCH(file_2_find)'" ! $ echo4 "-Config-I-VMS, after a successful build, test, and install. Do so with CMKRNL privilege." $ echo4 "" $ ENDIF $! --- 5690,5748 ---- $ WRITE CONFIG "$!" $ IF (perl_symbol) $ THEN ! $ WRITE CONFIG "$ Perldoc == ""'"+"'Perl' ''vms_prefix':[lib.pod]Perldoc.com -t""" $ WRITE CONFIG "$ pod2text == ""'"+"'Perl' pod2text""" $ WRITE CONFIG "$ pod2html == ""'"+"'Perl' pod2html""" ! $ WRITE CONFIG "$ pod2latex == ""'"+"'Perl' ''vms_prefix':[lib.pod]pod2latex.com""" $ WRITE CONFIG "$!pod2man == ""'"+"'Perl' pod2man""" ! $ WRITE CONFIG "$!Perlbug == ""'"+"'Perl' ''vms_prefix':[lib]Perlbug.com""" ! $ WRITE CONFIG "$ c2ph == ""'"+"'Perl' ''vms_prefix':[utils]c2ph.com""" $ IF F$LOCATE("Devel::DProf",extensions) .LT. F$LENGTH(extensions) $ THEN ! $ WRITE CONFIG "$ dprofpp == ""'"+"'Perl' ''vms_prefix':[utils]dprofpp.com""" $ ENDIF ! $ WRITE CONFIG "$ h2ph == ""'"+"'Perl' ''vms_prefix':[utils]h2ph.com""" ! $ WRITE CONFIG "$ h2xs == ""'"+"'Perl' ''vms_prefix':[utils]h2xs.com""" ! $ WRITE CONFIG "$!perlcc == ""'"+"'Perl' ''vms_prefix':[utils]perlcc.com""" ! $ WRITE CONFIG "$ splain == ""'"+"'Perl' ''vms_prefix':[utils]splain.com""" $ ELSE ! $ WRITE CONFIG "$ Perldoc == ""Perl ''vms_prefix':[lib.pod]Perldoc.com -t""" $ WRITE CONFIG "$ pod2text == ""Perl pod2text""" $ WRITE CONFIG "$ pod2html == ""Perl pod2html""" ! $ WRITE CONFIG "$ pod2latex == ""Perl ''vms_prefix':[lib.pod]pod2latex.com""" $ WRITE CONFIG "$!pod2man == ""Perl pod2man""" ! $ WRITE CONFIG "$!Perlbug == ""Perl ''vms_prefix':[lib]Perlbug.com""" ! $ WRITE CONFIG "$ c2ph == ""Perl ''vms_prefix':[utils]c2ph.com""" $ IF F$LOCATE("Devel::DProf",extensions) .LT. F$LENGTH(extensions) $ THEN ! $ WRITE CONFIG "$ dprofpp == ""Perl ''vms_prefix':[utils]dprofpp.com""" $ ENDIF ! $ WRITE CONFIG "$ h2ph == ""Perl ''vms_prefix':[utils]h2ph.com""" ! $ WRITE CONFIG "$ h2xs == ""Perl ''vms_prefix':[utils]h2xs.com""" ! $ WRITE CONFIG "$!perlcc == ""Perl ''vms_prefix':[utils]perlcc.com""" ! $ WRITE CONFIG "$ splain == ""Perl ''vms_prefix':[utils]splain.com""" $ ENDIF $ CLOSE CONFIG $! $ echo "" ! $ echo "The file can be found at:" ! $ echo4 " ''F$SEARCH(file_2_find)'" ! $ echo "Add that file (or an @ call to it) to your [SY]LOGIN.COM" ! $ echo "when you are satisfied with a successful compilation," ! $ echo "testing, and installation of your perl." $ echo "" $ IF ((.NOT.perl_symbol) .AND. (perl_verb .EQS. "DCLTABLES")) $ THEN $ file_2_find = "[-]''packageup'_install.com" ! $ OPEN/WRITE CONFIG 'file_2_find' $ WRITE CONFIG "$ set command perl /table=sys$common:[syslib]dcltables.exe -" $ WRITE CONFIG " /output=sys$common:[syslib]dcltables.exe" $ WRITE CONFIG "$ install replace sys$common:[syslib]dcltables.exe" $ CLOSE CONFIG $ echo4 "" ! $ echo4 "In order to install the ''packageup' verb into DCLTABLES run:" ! $ echo4 " @ ''F$SEARCH(file_2_find)'" ! $ echo4 "after a successful build, test, and install. Do so with CMKRNL privilege." $ echo4 "" $ ENDIF $! Index: configure.gnu Prereq: 3.0.1.1 ####### perl-5.6.1-TRIAL1/ => perl-5.6.1-TRIAL1 *** perl-5.6.1-TRIAL1/configure.gnu Tue Jul 20 10:17:52 1999 --- perl-5.6.1-TRIAL1/configure.gnu Mon Nov 27 03:19:27 2000 *************** *** 86,92 **** exit 1 ;; *) ! opts="$opts $1" shift ;; esac --- 86,92 ---- exit 1 ;; *) ! opts="$opts '$1'" shift ;; esac *************** *** 126,132 **** *) copt="$copt -d";; esac ! set X sh Configure $copt $create $opts shift echo "$@" exec "$@" --- 126,132 ---- *) copt="$copt -d";; esac ! eval "set X sh Configure $copt $create $opts" shift echo "$@" exec "$@" Index: cop.h ####### perl-5.6.1-TRIAL1/ => perl-5.6.1-TRIAL1 *** perl-5.6.1-TRIAL1/cop.h Mon Mar 20 15:26:52 2000 --- perl-5.6.1-TRIAL1/cop.h Sun Dec 17 14:38:36 2000 *************** *** 29,60 **** # define CopFILE(c) ((c)->cop_file) # define CopFILEGV(c) (CopFILE(c) \ ? gv_fetchfile(CopFILE(c)) : Nullgv) ! # define CopFILE_set(c,pv) ((c)->cop_file = savepv(pv)) /* XXX */ # define CopFILESV(c) (CopFILE(c) \ ? GvSV(gv_fetchfile(CopFILE(c))) : Nullsv) # define CopFILEAV(c) (CopFILE(c) \ ? GvAV(gv_fetchfile(CopFILE(c))) : Nullav) # define CopSTASHPV(c) ((c)->cop_stashpv) ! # define CopSTASHPV_set(c,pv) ((c)->cop_stashpv = savepv(pv)) /* XXX */ # define CopSTASH(c) (CopSTASHPV(c) \ ? gv_stashpv(CopSTASHPV(c),GV_ADD) : Nullhv) ! # define CopSTASH_set(c,hv) CopSTASHPV_set(c, HvNAME(hv)) ! # define CopSTASH_eq(c,hv) (hv \ && (CopSTASHPV(c) == HvNAME(hv) \ || (CopSTASHPV(c) && HvNAME(hv) \ && strEQ(CopSTASHPV(c), HvNAME(hv))))) #else # define CopFILEGV(c) ((c)->cop_filegv) ! # define CopFILEGV_set(c,gv) ((c)->cop_filegv = gv) ! # define CopFILE_set(c,pv) ((c)->cop_filegv = gv_fetchfile(pv)) # define CopFILESV(c) (CopFILEGV(c) ? GvSV(CopFILEGV(c)) : Nullsv) # define CopFILEAV(c) (CopFILEGV(c) ? GvAV(CopFILEGV(c)) : Nullav) # define CopFILE(c) (CopFILESV(c) ? SvPVX(CopFILESV(c)) : Nullch) # define CopSTASH(c) ((c)->cop_stash) ! # define CopSTASH_set(c,hv) ((c)->cop_stash = hv) # define CopSTASHPV(c) (CopSTASH(c) ? HvNAME(CopSTASH(c)) : Nullch) ! # define CopSTASHPV_set(c,pv) CopSTASH_set(c, gv_stashpv(pv,GV_ADD)) ! # define CopSTASH_eq(c,hv) (CopSTASH(c) == hv) #endif /* USE_ITHREADS */ #define CopSTASH_ne(c,hv) (!CopSTASH_eq(c,hv)) --- 29,61 ---- # define CopFILE(c) ((c)->cop_file) # define CopFILEGV(c) (CopFILE(c) \ ? gv_fetchfile(CopFILE(c)) : Nullgv) ! # define CopFILE_set(c,pv) ((c)->cop_file = savepv(pv)) # define CopFILESV(c) (CopFILE(c) \ ? GvSV(gv_fetchfile(CopFILE(c))) : Nullsv) # define CopFILEAV(c) (CopFILE(c) \ ? GvAV(gv_fetchfile(CopFILE(c))) : Nullav) # define CopSTASHPV(c) ((c)->cop_stashpv) ! # define CopSTASHPV_set(c,pv) ((c)->cop_stashpv = ((pv) ? savepv(pv) : Nullch)) # define CopSTASH(c) (CopSTASHPV(c) \ ? gv_stashpv(CopSTASHPV(c),GV_ADD) : Nullhv) ! # define CopSTASH_set(c,hv) CopSTASHPV_set(c, (hv) ? HvNAME(hv) : Nullch) ! # define CopSTASH_eq(c,hv) ((hv) \ && (CopSTASHPV(c) == HvNAME(hv) \ || (CopSTASHPV(c) && HvNAME(hv) \ && strEQ(CopSTASHPV(c), HvNAME(hv))))) #else # define CopFILEGV(c) ((c)->cop_filegv) ! # define CopFILEGV_set(c,gv) ((c)->cop_filegv = (GV*)SvREFCNT_inc(gv)) ! # define CopFILE_set(c,pv) CopFILEGV_set((c), gv_fetchfile(pv)) # define CopFILESV(c) (CopFILEGV(c) ? GvSV(CopFILEGV(c)) : Nullsv) # define CopFILEAV(c) (CopFILEGV(c) ? GvAV(CopFILEGV(c)) : Nullav) # define CopFILE(c) (CopFILESV(c) ? SvPVX(CopFILESV(c)) : Nullch) # define CopSTASH(c) ((c)->cop_stash) ! # define CopSTASH_set(c,hv) ((c)->cop_stash = (hv)) # define CopSTASHPV(c) (CopSTASH(c) ? HvNAME(CopSTASH(c)) : Nullch) ! /* cop_stash is not refcounted */ ! # define CopSTASHPV_set(c,pv) CopSTASH_set((c), gv_stashpv(pv,GV_ADD)) ! # define CopSTASH_eq(c,hv) (CopSTASH(c) == (hv)) #endif /* USE_ITHREADS */ #define CopSTASH_ne(c,hv) (!CopSTASH_eq(c,hv)) *************** *** 79,84 **** --- 80,86 ---- U16 olddepth; U8 hasargs; U8 lval; /* XXX merge lval and hasargs? */ + SV ** oldcurpad; }; #define PUSHSUB(cx) \ *************** *** 105,117 **** } STMT_END #endif /* USE_THREADS */ ! #ifdef USE_ITHREADS ! /* junk in @_ spells trouble when cloning CVs, so don't leave any */ ! # define CLEAR_ARGARRAY() av_clear(cx->blk_sub.argarray) ! #else ! # define CLEAR_ARGARRAY() NOOP ! #endif /* USE_ITHREADS */ ! #define POPSUB(cx,sv) \ STMT_START { \ --- 107,120 ---- } STMT_END #endif /* USE_THREADS */ ! /* junk in @_ spells trouble when cloning CVs and in pp_caller(), so don't ! * leave any (a fast av_clear(ary), basically) */ ! #define CLEAR_ARGARRAY(ary) \ ! STMT_START { \ ! AvMAX(ary) += AvARRAY(ary) - AvALLOC(ary); \ ! SvPVX(ary) = (char*)AvALLOC(ary); \ ! AvFILLp(ary) = -1; \ ! } STMT_END #define POPSUB(cx,sv) \ STMT_START { \ *************** *** 124,133 **** cx->blk_sub.argarray = newAV(); \ av_extend(cx->blk_sub.argarray, fill); \ AvFLAGS(cx->blk_sub.argarray) = AVf_REIFY; \ ! PL_curpad[0] = (SV*)cx->blk_sub.argarray; \ } \ else { \ ! CLEAR_ARGARRAY(); \ } \ } \ sv = (SV*)cx->blk_sub.cv; \ --- 127,136 ---- cx->blk_sub.argarray = newAV(); \ av_extend(cx->blk_sub.argarray, fill); \ AvFLAGS(cx->blk_sub.argarray) = AVf_REIFY; \ ! cx->blk_sub.oldcurpad[0] = (SV*)cx->blk_sub.argarray; \ } \ else { \ ! CLEAR_ARGARRAY(cx->blk_sub.argarray); \ } \ } \ sv = (SV*)cx->blk_sub.cv; \ *************** *** 390,396 **** L. =for apidoc AmU||G_ARRAY ! Used to indicate array context. See C, C and L. =for apidoc AmU||G_VOID --- 393,399 ---- L. =for apidoc AmU||G_ARRAY ! Used to indicate list context. See C, C and L. =for apidoc AmU||G_VOID *************** *** 423,434 **** --- 426,439 ---- #define G_NOARGS 8 /* Don't construct a @_ array. */ #define G_KEEPERR 16 /* Append errors to $@, don't overwrite it */ #define G_NODEBUG 32 /* Disable debugging at toplevel. */ + #define G_METHOD 64 /* Calling method. */ /* flag bits for PL_in_eval */ #define EVAL_NULL 0 /* not in an eval */ #define EVAL_INEVAL 1 /* some enclosing scope is an eval */ #define EVAL_WARNONLY 2 /* used by yywarn() when calling yyerror() */ #define EVAL_KEEPERR 4 /* set by Perl_call_sv if G_KEEPERR */ + #define EVAL_INREQUIRE 8 /* The code is being required. */ /* Support for switching (stack and block) contexts. * This ensures magic doesn't invalidate local stack and cx pointers. Index: cygwin/Makefile.SHs ####### perl-5.6.1-TRIAL1/ => perl-5.6.1-TRIAL1 *** perl-5.6.1-TRIAL1/cygwin/Makefile.SHs Fri Feb 25 22:34:47 2000 --- perl-5.6.1-TRIAL1/cygwin/Makefile.SHs Sun Dec 17 13:06:38 2000 *************** *** 125,131 **** # The Module used here must not depend on Config or any extensions. miniperl: $& miniperlmain$(OBJ_EXT) $(LIBPERL)s$(LIB_EXT) opmini$(OBJ_EXT) ! $(LDLIBPTH) $(CC) $(LARGE) $(CLDFLAGS) -o miniperl miniperlmain$(OBJ_EXT) opmini$(OBJ_EXT) $(LLIBPERL)s $(libs) $(LDLIBPTH) ./miniperl -w -Ilib -MExporter -e '' || $(MAKE) minitest !NO!SUBS! --- 125,131 ---- # The Module used here must not depend on Config or any extensions. miniperl: $& miniperlmain$(OBJ_EXT) $(LIBPERL)s$(LIB_EXT) opmini$(OBJ_EXT) ! $(LDLIBPTH) $(CC) $(CLDFLAGS) -o miniperl miniperlmain$(OBJ_EXT) opmini$(OBJ_EXT) $(LLIBPERL)s $(libs) $(LDLIBPTH) ./miniperl -w -Ilib -MExporter -e '' || $(MAKE) minitest !NO!SUBS! *************** *** 147,153 **** # The Module used here must not depend on Config or any extensions. miniperl: $& miniperlmain$(OBJ_EXT) $(LIBPERL)$(LIB_EXT) opmini$(OBJ_EXT) ! $(LDLIBPTH) $(CC) $(LARGE) $(CLDFLAGS) -o miniperl miniperlmain$(OBJ_EXT) opmini$(OBJ_EXT) $(LLIBPERL) $(libs) $(LDLIBPTH) ./miniperl -w -Ilib -MExporter -e '' || $(MAKE) minitest !NO!SUBS! --- 147,153 ---- # The Module used here must not depend on Config or any extensions. miniperl: $& miniperlmain$(OBJ_EXT) $(LIBPERL)$(LIB_EXT) opmini$(OBJ_EXT) ! $(LDLIBPTH) $(CC) $(CLDFLAGS) -o miniperl miniperlmain$(OBJ_EXT) opmini$(OBJ_EXT) $(LLIBPERL) $(libs) $(LDLIBPTH) ./miniperl -w -Ilib -MExporter -e '' || $(MAKE) minitest !NO!SUBS! *************** *** 157,178 **** # libperl.a is _the_ library both in dll and static cases # $(LIBPERL)$(LIB_EXT) expands to this name dependless of build model # $spitshell >>Makefile <<'!NO!SUBS!' - opmini$(OBJ_EXT) : op.c - $(CCCMD) $(PLDLFLAGS) -DPERL_EXTERNAL_GLOB -o opmini$(OBJ_EXT) op.c - perl: $& perlmain$(OBJ_EXT) $(LIBPERL)$(LIB_EXT) $(DYNALOADER) $(static_ext) ext.libs ! $(SHRPENV) $(LDLIBPTH) $(CC) $(LARGE) $(CLDFLAGS) $(CCDLFLAGS) -o perl perlmain$(OBJ_EXT) $(DYNALOADER) $(static_ext) $(LLIBPERL) `cat ext.libs` $(libs) pureperl: $& perlmain$(OBJ_EXT) $(LIBPERL)$(LIB_EXT) $(DYNALOADER) $(static_ext) ext.libs ! $(SHRPENV) $(LDLIBPTH) purify $(CC) $(LARGE) $(CLDFLAGS) $(CCDLFLAGS) -o pureperl perlmain$(OBJ_EXT) $(DYNALOADER) $(static_ext) $(LLIBPERL) `cat ext.libs` $(libs) purecovperl: $& perlmain$(OBJ_EXT) $(LIBPERL)$(LIB_EXT) $(DYNALOADER) $(static_ext) ext.libs ! $(SHRPENV) $(LDLIBPTH) purecov $(CC) $(LARGE) $(CLDFLAGS) $(CCDLFLAGS) -o purecovperl perlmain$(OBJ_EXT) $(DYNALOADER) $(static_ext) $(LLIBPERL) `cat ext.libs` $(libs) quantperl: $& perlmain$(OBJ_EXT) $(LIBPERL)$(LIB_EXT) $(DYNALOADER) $(static_ext) ext.libs ! $(SHRPENV) $(LDLIBPTH) quantify $(CC) $(LARGE) $(CLDFLAGS) $(CCDLFLAGS) -o quantperl perlmain$(OBJ_EXT) $(DYNALOADER) $(static_ext) $(LLIBPERL) `cat ext.libs` $(libs) !NO!SUBS! --- 157,180 ---- # libperl.a is _the_ library both in dll and static cases # $(LIBPERL)$(LIB_EXT) expands to this name dependless of build model # + # NOTE: The "-Wl,-Bstatic $(LLIBPERL) -Wl,-Bdynamic" is required to give + # the import library linking priority over the dynamic library, since both + # the .dll and .a are in the same directory. When the new standard for + # naming import/dynamic/static libraries emerges this should be updated. + # $spitshell >>Makefile <<'!NO!SUBS!' perl: $& perlmain$(OBJ_EXT) $(LIBPERL)$(LIB_EXT) $(DYNALOADER) $(static_ext) ext.libs ! $(SHRPENV) $(LDLIBPTH) $(CC) $(CLDFLAGS) $(CCDLFLAGS) -o perl perlmain$(OBJ_EXT) $(DYNALOADER) $(static_ext) -Wl,-Bstatic $(LLIBPERL) -Wl,-Bdynamic `cat ext.libs` $(libs) pureperl: $& perlmain$(OBJ_EXT) $(LIBPERL)$(LIB_EXT) $(DYNALOADER) $(static_ext) ext.libs ! $(SHRPENV) $(LDLIBPTH) purify $(CC) $(CLDFLAGS) $(CCDLFLAGS) -o pureperl perlmain$(OBJ_EXT) $(DYNALOADER) $(static_ext) $(LLIBPERL) `cat ext.libs` $(libs) purecovperl: $& perlmain$(OBJ_EXT) $(LIBPERL)$(LIB_EXT) $(DYNALOADER) $(static_ext) ext.libs ! $(SHRPENV) $(LDLIBPTH) purecov $(CC) $(CLDFLAGS) $(CCDLFLAGS) -o purecovperl perlmain$(OBJ_EXT) $(DYNALOADER) $(static_ext) $(LLIBPERL) `cat ext.libs` $(libs) quantperl: $& perlmain$(OBJ_EXT) $(LIBPERL)$(LIB_EXT) $(DYNALOADER) $(static_ext) ext.libs ! $(SHRPENV) $(LDLIBPTH) quantify $(CC) $(CLDFLAGS) $(CCDLFLAGS) -o quantperl perlmain$(OBJ_EXT) $(DYNALOADER) $(static_ext) $(LLIBPERL) `cat ext.libs` $(libs) !NO!SUBS! Index: cygwin/cygwin.c ####### perl-5.6.1-TRIAL1/ => perl-5.6.1-TRIAL1 *** perl-5.6.1-TRIAL1/cygwin/cygwin.c Fri Feb 25 22:34:24 2000 --- perl-5.6.1-TRIAL1/cygwin/cygwin.c Sun Dec 17 19:27:05 2000 *************** *** 8,14 **** --- 8,141 ---- #include "XSUB.h" #include + #include + /* + * pp_system() implemented via spawn() + * - more efficient and useful when embedding Perl in non-Cygwin apps + * - code mostly borrowed from djgpp.c + */ + static int + do_spawnvp (const char *path, const char * const *argv) + { + dTHXo; + Sigsave_t ihand,qhand; + int childpid, result, status; + + rsignal_save(SIGINT, SIG_IGN, &ihand); + rsignal_save(SIGQUIT, SIG_IGN, &qhand); + childpid = spawnvp(_P_NOWAIT,path,argv); + if (childpid < 0) { + status = -1; + if(ckWARN(WARN_EXEC)) { + dTHR; + Perl_warner(aTHX_ WARN_EXEC,"Can't spawn \"%s\": %s", + path,Strerror (errno)); + } + } else { + do { + result = wait4pid(childpid, &status, 0); + } while (result == -1 && errno == EINTR); + if(result < 0) + status = -1; + } + (void)rsignal_restore(SIGINT, &ihand); + (void)rsignal_restore(SIGQUIT, &qhand); + return status; + } + + int + do_aspawn (SV *really, void **mark, void **sp) + { + dTHXo; + int rc; + char **a,*tmps,**argv; + STRLEN n_a; + + if (sp<=mark) + return -1; + a=argv=(char**) alloca ((sp-mark+3)*sizeof (char*)); + + while (++mark <= sp) + if (*mark) + *a++ = SvPVx(*mark, n_a); + else + *a++ = ""; + *a = Nullch; + + if (argv[0][0] != '/' && argv[0][0] != '\\' + && !(argv[0][0] && argv[0][1] == ':' + && (argv[0][2] == '/' || argv[0][2] != '\\')) + ) /* will swawnvp use PATH? */ + TAINT_ENV(); /* testing IFS here is overkill, probably */ + + if (really && *(tmps = SvPV(really, n_a))) + rc=do_spawnvp (tmps,(const char * const *)argv); + else + rc=do_spawnvp (argv[0],(const char *const *)argv); + + return rc; + } + + int + do_spawn (char *cmd) + { + dTHXo; + char **a,*s,*metachars = "$&*(){}[]'\";\\?>|<~`\n"; + const char *command[4]; + + while (*cmd && isSPACE(*cmd)) + cmd++; + + if (strnEQ (cmd,"/bin/sh",7) && isSPACE (cmd[7])) + cmd+=5; + + /* save an extra exec if possible */ + /* see if there are shell metacharacters in it */ + if (strstr (cmd,"...")) + goto doshell; + if (*cmd=='.' && isSPACE (cmd[1])) + goto doshell; + if (strnEQ (cmd,"exec",4) && isSPACE (cmd[4])) + goto doshell; + for (s=cmd; *s && isALPHA (*s); s++) ; /* catch VAR=val gizmo */ + if (*s=='=') + goto doshell; + + for (s=cmd; *s; s++) + if (strchr (metachars,*s)) + { + if (*s=='\n' && s[1]=='\0') + { + *s='\0'; + break; + } + doshell: + command[0] = "sh"; + command[1] = "-c"; + command[2] = cmd; + command[3] = NULL; + + return do_spawnvp("sh",command); + } + + New (1303,PL_Argv,(s-cmd)/2+2,char*); + PL_Cmd=savepvn (cmd,s-cmd); + a=PL_Argv; + for (s=PL_Cmd; *s;) { + while (*s && isSPACE (*s)) s++; + if (*s) + *(a++)=s; + while (*s && !isSPACE (*s)) s++; + if (*s) + *s++='\0'; + } + *a=Nullch; + if (!PL_Argv[0]) + return -1; + + return do_spawnvp(PL_Argv[0],(const char * const *)PL_Argv); + } /* see also Cwd.pm */ static *************** *** 19,25 **** if(items != 0) Perl_croak(aTHX_ "Usage: Cwd::cwd()"); ! if(cwd = getcwd(NULL, 0)) { ST(0) = sv_2mortal(newSVpv(cwd, 0)); safesysfree(cwd); XSRETURN(1); --- 146,152 ---- if(items != 0) Perl_croak(aTHX_ "Usage: Cwd::cwd()"); ! if((cwd = getcwd(NULL, -1))) { ST(0) = sv_2mortal(newSVpv(cwd, 0)); safesysfree(cwd); XSRETURN(1); Index: djgpp/config.over ####### perl-5.6.1-TRIAL1/ => perl-5.6.1-TRIAL1 *** perl-5.6.1-TRIAL1/djgpp/config.over Sun Feb 27 09:08:18 2000 --- perl-5.6.1-TRIAL1/djgpp/config.over Sun Dec 17 20:44:56 2000 *************** *** 1,5 **** ln='cp' ! pager='less' # fix extension names under DOS repair() --- 1,5 ---- ln='cp' ! pager='${DJDIR}/bin/less.exe' # fix extension names under DOS repair() *************** *** 34,40 **** -e 's=file/=='\ -e 's=File/=='\ -e 's=glob=='\ ! -e 's=Glob==' } static_ext=$(repair "$static_ext") extensions=$(repair "$extensions") --- 34,41 ---- -e 's=file/=='\ -e 's=File/=='\ -e 's=glob=='\ ! -e 's=Glob=='\ ! -e 's/storable/Storable/' } static_ext=$(repair "$static_ext") extensions=$(repair "$extensions") Index: djgpp/djgpp.c ####### perl-5.6.1-TRIAL1/ => perl-5.6.1-TRIAL1 *** perl-5.6.1-TRIAL1/djgpp/djgpp.c Sun Feb 27 09:08:18 2000 --- perl-5.6.1-TRIAL1/djgpp/djgpp.c Sun Dec 17 15:50:57 2000 *************** *** 433,435 **** --- 433,454 ---- strcpy (perlprefix,".."); } + int + djgpp_fflush (FILE *fp) + { + int res; + + if ((res = fflush(fp)) == 0 && fp) { + Stat_t s; + if (Fstat(fileno(fp), &s) == 0 && !S_ISSOCK(s.st_mode)) + res = fsync(fileno(fp)); + } + /* + * If the flush succeeded but set end-of-file, we need to clear + * the error because our caller may check ferror(). BTW, this + * probably means we just flushed an empty file. + */ + if (res == 0 && fp && ferror(fp) == EOF) clearerr(fp); + + return res; + } Index: doio.c ####### perl-5.6.1-TRIAL1/ => perl-5.6.1-TRIAL1 *** perl-5.6.1-TRIAL1/doio.c Sat Mar 18 23:18:00 2000 --- perl-5.6.1-TRIAL1/doio.c Sun Dec 17 20:46:49 2000 *************** *** 51,76 **** #include #endif - /* XXX If this causes problems, set i_unistd=undef in the hint file. */ - #ifdef I_UNISTD - # include - #endif - - #if defined(HAS_SOCKET) && !defined(VMS) /* VMS handles sockets via vmsish.h */ - # include - # if defined(USE_SOCKS) && defined(I_SOCKS) - # include - # endif - # ifdef I_NETBSD - # include - # endif - # ifndef ENOTSOCK - # ifdef I_NET_ERRNO - # include - # endif - # endif - #endif - bool Perl_do_open(pTHX_ GV *gv, register char *name, I32 len, int as_raw, int rawmode, int rawperm, PerlIO *supplied_fp) --- 51,56 ---- *************** *** 87,93 **** register IO *io = GvIOn(gv); PerlIO *saveifp = Nullfp; PerlIO *saveofp = Nullfp; ! char savetype = ' '; int writing = 0; PerlIO *fp; int fd; --- 67,73 ---- register IO *io = GvIOn(gv); PerlIO *saveifp = Nullfp; PerlIO *saveofp = Nullfp; ! char savetype = IoTYPE_CLOSED; int writing = 0; PerlIO *fp; int fd; *************** *** 108,114 **** if (IoIFP(io)) { fd = PerlIO_fileno(IoIFP(io)); ! if (IoTYPE(io) == '-') result = 0; else if (fd <= PL_maxsysfd) { saveifp = IoIFP(io); --- 88,94 ---- if (IoIFP(io)) { fd = PerlIO_fileno(IoIFP(io)); ! if (IoTYPE(io) == IoTYPE_STD) result = 0; else if (fd <= PL_maxsysfd) { saveifp = IoIFP(io); *************** *** 116,122 **** savetype = IoTYPE(io); result = 0; } ! else if (IoTYPE(io) == '|') result = PerlProc_pclose(IoIFP(io)); else if (IoIFP(io) != IoOFP(io)) { if (IoOFP(io)) { --- 96,102 ---- savetype = IoTYPE(io); result = 0; } ! else if (IoTYPE(io) == IoTYPE_PIPE) result = PerlProc_pclose(IoIFP(io)); else if (IoIFP(io) != IoOFP(io)) { if (IoOFP(io)) { *************** *** 146,159 **** switch (result = rawmode & O_ACCMODE) { case O_RDONLY: ! IoTYPE(io) = '<'; break; case O_WRONLY: ! IoTYPE(io) = '>'; break; case O_RDWR: default: ! IoTYPE(io) = '+'; break; } --- 126,139 ---- switch (result = rawmode & O_ACCMODE) { case O_RDONLY: ! IoTYPE(io) = IoTYPE_RDONLY; break; case O_WRONLY: ! IoTYPE(io) = IoTYPE_WRONLY; break; case O_RDWR: default: ! IoTYPE(io) = IoTYPE_RDWR; break; } *************** *** 216,229 **** } mode[0] = mode[1] = mode[2] = mode[3] = '\0'; IoTYPE(io) = *type; ! if (*type == '+' && tlen > 1 && type[tlen-1] != '|') { /* scary */ mode[1] = *type++; --tlen; writing = 1; } ! if (*type == '|') { ! if (num_svs && (tlen != 2 || type[1] != '-')) { unknown_desr: Perl_croak(aTHX_ "Unknown open() mode '%.*s'", (int)olen, oname); } --- 196,209 ---- } mode[0] = mode[1] = mode[2] = mode[3] = '\0'; IoTYPE(io) = *type; ! if (*type == IoTYPE_RDWR && tlen > 1 && type[tlen-1] != IoTYPE_PIPE) { /* scary */ mode[1] = *type++; --tlen; writing = 1; } ! if (*type == IoTYPE_PIPE) { ! if (num_svs && (tlen != 2 || type[1] != IoTYPE_STD)) { unknown_desr: Perl_croak(aTHX_ "Unknown open() mode '%.*s'", (int)olen, oname); } *************** *** 261,271 **** } writing = 1; } ! else if (*type == '>') { TAINT_PROPER("open"); type++; ! if (*type == '>') { ! mode[0] = IoTYPE(io) = 'a'; type++; tlen--; } --- 241,252 ---- } writing = 1; } ! else if (*type == IoTYPE_WRONLY) { TAINT_PROPER("open"); type++; ! if (*type == IoTYPE_WRONLY) { ! /* Two IoTYPE_WRONLYs in a row make for an IoTYPE_APPEND. */ ! mode[0] = IoTYPE(io) = IoTYPE_APPEND; type++; tlen--; } *************** *** 313,327 **** * be optimized away on most platforms; * only Solaris and Linux seem to flush * on that. --jhi */ ! PerlIO_seek(fp, 0, SEEK_CUR); /* On the other hand, do all platforms * take gracefully to flushing a read-only * filehandle? Perhaps we should do * fsetpos(src)+fgetpos(dst)? --nik */ PerlIO_flush(fp); fd = PerlIO_fileno(fp); ! if (IoTYPE(thatio) == 's') ! IoTYPE(io) = 's'; } else fd = -1; --- 294,323 ---- * be optimized away on most platforms; * only Solaris and Linux seem to flush * on that. --jhi */ ! #ifdef USE_SFIO ! /* sfio fails to clear error on next ! sfwrite, contrary to documentation. ! -- Nick Clark */ ! if (PerlIO_seek(fp, 0, SEEK_CUR) == -1) ! PerlIO_clearerr(fp); ! #endif /* On the other hand, do all platforms * take gracefully to flushing a read-only * filehandle? Perhaps we should do * fsetpos(src)+fgetpos(dst)? --nik */ PerlIO_flush(fp); fd = PerlIO_fileno(fp); ! /* When dup()ing STDIN, STDOUT or STDERR ! * explicitly set appropriate access mode */ ! if (IoIFP(thatio) == PerlIO_stdout() ! || IoIFP(thatio) == PerlIO_stderr()) ! IoTYPE(io) = IoTYPE_WRONLY; ! else if (IoIFP(thatio) == PerlIO_stdin()) ! IoTYPE(io) = IoTYPE_RDONLY; ! /* When dup()ing a socket, say result is ! * one as well */ ! else if (IoTYPE(thatio) == IoTYPE_SOCKET) ! IoTYPE(io) = IoTYPE_SOCKET; } else fd = -1; *************** *** 339,354 **** else { /*SUPPRESS 530*/ for (; isSPACE(*type); type++) ; ! if (strEQ(type,"-")) { fp = PerlIO_stdout(); ! IoTYPE(io) = '-'; } else { fp = PerlIO_open((num_svs ? name : type), mode); } } } ! else if (*type == '<') { if (num_svs && tlen != 1) goto unknown_desr; /*SUPPRESS 530*/ --- 335,350 ---- else { /*SUPPRESS 530*/ for (; isSPACE(*type); type++) ; ! if (*type == IoTYPE_STD && !type[1]) { fp = PerlIO_stdout(); ! IoTYPE(io) = IoTYPE_STD; } else { fp = PerlIO_open((num_svs ? name : type), mode); } } } ! else if (*type == IoTYPE_RDONLY) { if (num_svs && tlen != 1) goto unknown_desr; /*SUPPRESS 530*/ *************** *** 363,378 **** name = type; goto duplicity; } ! if (strEQ(type,"-")) { fp = PerlIO_stdin(); ! IoTYPE(io) = '-'; } else fp = PerlIO_open((num_svs ? name : type), mode); } ! else if (tlen > 1 && type[tlen-1] == '|') { if (num_svs) { ! if (tlen != 2 || type[0] != '-') goto unknown_desr; } else { --- 359,374 ---- name = type; goto duplicity; } ! if (*type == IoTYPE_STD && !type[1]) { fp = PerlIO_stdin(); ! IoTYPE(io) = IoTYPE_STD; } else fp = PerlIO_open((num_svs ? name : type), mode); } ! else if (tlen > 1 && type[tlen-1] == IoTYPE_PIPE) { if (num_svs) { ! if (tlen != 2 || type[0] != IoTYPE_STD) goto unknown_desr; } else { *************** *** 403,420 **** mode = "r"; fp = PerlProc_popen(name,mode); } ! IoTYPE(io) = '|'; } else { if (num_svs) goto unknown_desr; name = type; ! IoTYPE(io) = '<'; /*SUPPRESS 530*/ for (; isSPACE(*name); name++) ; if (strEQ(name,"-")) { fp = PerlIO_stdin(); ! IoTYPE(io) = '-'; } else { char *mode; --- 399,416 ---- mode = "r"; fp = PerlProc_popen(name,mode); } ! IoTYPE(io) = IoTYPE_PIPE; } else { if (num_svs) goto unknown_desr; name = type; ! IoTYPE(io) = IoTYPE_RDONLY; /*SUPPRESS 530*/ for (; isSPACE(*name); name++) ; if (strEQ(name,"-")) { fp = PerlIO_stdin(); ! IoTYPE(io) = IoTYPE_STD; } else { char *mode; *************** *** 430,448 **** } if (!fp) { dTHR; ! if (ckWARN(WARN_NEWLINE) && IoTYPE(io) == '<' && strchr(name, '\n')) Perl_warner(aTHX_ WARN_NEWLINE, PL_warn_nl, "open"); goto say_false; } if (IoTYPE(io) && ! IoTYPE(io) != '|' && IoTYPE(io) != '-') { dTHR; if (PerlLIO_fstat(PerlIO_fileno(fp),&PL_statbuf) < 0) { (void)PerlIO_close(fp); goto say_false; } if (S_ISSOCK(PL_statbuf.st_mode)) ! IoTYPE(io) = 's'; /* in case a socket was passed in to us */ #ifdef HAS_SOCKET else if ( #ifdef S_IFMT --- 426,444 ---- } if (!fp) { dTHR; ! if (ckWARN(WARN_NEWLINE) && IoTYPE(io) == IoTYPE_RDONLY && strchr(name, '\n')) Perl_warner(aTHX_ WARN_NEWLINE, PL_warn_nl, "open"); goto say_false; } if (IoTYPE(io) && ! IoTYPE(io) != IoTYPE_PIPE && IoTYPE(io) != IoTYPE_STD) { dTHR; if (PerlLIO_fstat(PerlIO_fileno(fp),&PL_statbuf) < 0) { (void)PerlIO_close(fp); goto say_false; } if (S_ISSOCK(PL_statbuf.st_mode)) ! IoTYPE(io) = IoTYPE_SOCKET; /* in case a socket was passed in to us */ #ifdef HAS_SOCKET else if ( #ifdef S_IFMT *************** *** 450,462 **** #else !PL_statbuf.st_mode #endif ! ) { char tmpbuf[256]; Sock_size_t buflen = sizeof tmpbuf; if (PerlSock_getsockname(PerlIO_fileno(fp), (struct sockaddr *)tmpbuf, &buflen) >= 0 || errno != ENOTSOCK) ! IoTYPE(io) = 's'; /* some OS's return 0 on fstat()ed socket */ /* but some return 0 for streams too, sigh */ } #endif --- 446,460 ---- #else !PL_statbuf.st_mode #endif ! && IoTYPE(io) != IoTYPE_WRONLY /* Dups of STD* filehandles already have */ ! && IoTYPE(io) != IoTYPE_RDONLY /* type so they aren't marked as sockets */ ! ) { /* on OS's that return 0 on fstat()ed pipe */ char tmpbuf[256]; Sock_size_t buflen = sizeof tmpbuf; if (PerlSock_getsockname(PerlIO_fileno(fp), (struct sockaddr *)tmpbuf, &buflen) >= 0 || errno != ENOTSOCK) ! IoTYPE(io) = IoTYPE_SOCKET; /* some OS's return 0 on fstat()ed socket */ /* but some return 0 for streams too, sigh */ } #endif *************** *** 476,486 **** --- 474,486 ---- SV *sv; PerlLIO_dup2(PerlIO_fileno(fp), fd); + LOCK_FDPID_MUTEX; sv = *av_fetch(PL_fdpid,PerlIO_fileno(fp),TRUE); (void)SvUPGRADE(sv, SVt_IV); pid = SvIVX(sv); SvIVX(sv) = 0; sv = *av_fetch(PL_fdpid,fd,TRUE); + UNLOCK_FDPID_MUTEX; (void)SvUPGRADE(sv, SVt_IV); SvIVX(sv) = pid; if (!was_fdopen) *************** *** 502,509 **** IoFLAGS(io) &= ~IOf_NOLINE; if (writing) { dTHR; ! if (IoTYPE(io) == 's' ! || (IoTYPE(io) == '>' && S_ISCHR(PL_statbuf.st_mode)) ) { char *mode; if (out_raw) --- 502,509 ---- IoFLAGS(io) &= ~IOf_NOLINE; if (writing) { dTHR; ! if (IoTYPE(io) == IoTYPE_SOCKET ! || (IoTYPE(io) == IoTYPE_WRONLY && S_ISCHR(PL_statbuf.st_mode)) ) { char *mode; if (out_raw) *************** *** 771,778 **** IoIFP(rstio) = PerlIO_fdopen(fd[0], "r"); IoOFP(wstio) = PerlIO_fdopen(fd[1], "w"); IoIFP(wstio) = IoOFP(wstio); ! IoTYPE(rstio) = '<'; ! IoTYPE(wstio) = '>'; if (!IoIFP(rstio) || !IoOFP(wstio)) { if (IoIFP(rstio)) PerlIO_close(IoIFP(rstio)); else PerlLIO_close(fd[0]); --- 771,778 ---- IoIFP(rstio) = PerlIO_fdopen(fd[0], "r"); IoOFP(wstio) = PerlIO_fdopen(fd[1], "w"); IoIFP(wstio) = IoOFP(wstio); ! IoTYPE(rstio) = IoTYPE_RDONLY; ! IoTYPE(wstio) = IoTYPE_WRONLY; if (!IoIFP(rstio) || !IoOFP(wstio)) { if (IoIFP(rstio)) PerlIO_close(IoIFP(rstio)); else PerlLIO_close(fd[0]); *************** *** 808,816 **** if (!io) { /* never opened */ if (not_implicit) { dTHR; ! if (ckWARN(WARN_UNOPENED)) ! Perl_warner(aTHX_ WARN_UNOPENED, ! "Close on unopened file <%s>",GvENAME(gv)); SETERRNO(EBADF,SS$_IVCHAN); } return FALSE; --- 808,815 ---- if (!io) { /* never opened */ if (not_implicit) { dTHR; ! if (ckWARN(WARN_UNOPENED)) /* no check for closed here */ ! report_evil_fh(gv, io, PL_op->op_type); SETERRNO(EBADF,SS$_IVCHAN); } return FALSE; *************** *** 821,827 **** IoPAGE(io) = 0; IoLINES_LEFT(io) = IoPAGE_LEN(io); } ! IoTYPE(io) = ' '; return retval; } --- 820,826 ---- IoPAGE(io) = 0; IoLINES_LEFT(io) = IoPAGE_LEN(io); } ! IoTYPE(io) = IoTYPE_CLOSED; return retval; } *************** *** 832,838 **** int status; if (IoIFP(io)) { ! if (IoTYPE(io) == '|') { status = PerlProc_pclose(IoIFP(io)); if (not_implicit) { STATUS_NATIVE_SET(status); --- 831,837 ---- int status; if (IoIFP(io)) { ! if (IoTYPE(io) == IoTYPE_PIPE) { status = PerlProc_pclose(IoIFP(io)); if (not_implicit) { STATUS_NATIVE_SET(status); *************** *** 842,848 **** retval = (status != -1); } } ! else if (IoTYPE(io) == '-') retval = TRUE; else { if (IoOFP(io) && IoOFP(io) != IoIFP(io)) { /* a socket */ --- 841,847 ---- retval = (status != -1); } } ! else if (IoTYPE(io) == IoTYPE_STD) retval = TRUE; else { if (IoOFP(io) && IoOFP(io) != IoIFP(io)) { /* a socket */ *************** *** 873,885 **** if (!io) return TRUE; else if (ckWARN(WARN_IO) ! && (IoTYPE(io) == '>' || IoIFP(io) == PerlIO_stdout() || IoIFP(io) == PerlIO_stderr())) { ! SV* sv = sv_newmortal(); ! gv_efullname3(sv, gv, Nullch); ! Perl_warner(aTHX_ WARN_IO, "Filehandle %s opened only for output", ! SvPV_nolen(sv)); } while (IoIFP(io)) { --- 872,893 ---- if (!io) return TRUE; else if (ckWARN(WARN_IO) ! && (IoTYPE(io) == IoTYPE_WRONLY || IoIFP(io) == PerlIO_stdout() || IoIFP(io) == PerlIO_stderr())) { ! /* integrate to report_evil_fh()? */ ! char *name = NULL; ! if (isGV(gv)) { ! SV* sv = sv_newmortal(); ! gv_efullname4(sv, gv, Nullch, FALSE); ! name = SvPV_nolen(sv); ! } ! if (name && *name) ! Perl_warner(aTHX_ WARN_IO, ! "Filehandle %s opened only for output", name); ! else ! Perl_warner(aTHX_ WARN_IO, ! "Filehandle opened only for output"); } while (IoIFP(io)) { *************** *** 923,930 **** } { dTHR; ! if (ckWARN(WARN_UNOPENED)) ! Perl_warner(aTHX_ WARN_UNOPENED, "tell() on unopened file"); } SETERRNO(EBADF,RMS$_IFI); return (Off_t)-1; --- 931,938 ---- } { dTHR; ! if (ckWARN2(WARN_UNOPENED,WARN_CLOSED)) ! report_evil_fh(gv, io, PL_op->op_type); } SETERRNO(EBADF,RMS$_IFI); return (Off_t)-1; *************** *** 945,952 **** } { dTHR; ! if (ckWARN(WARN_UNOPENED)) ! Perl_warner(aTHX_ WARN_UNOPENED, "seek() on unopened file"); } SETERRNO(EBADF,RMS$_IFI); return FALSE; --- 953,960 ---- } { dTHR; ! if (ckWARN2(WARN_UNOPENED,WARN_CLOSED)) ! report_evil_fh(gv, io, PL_op->op_type); } SETERRNO(EBADF,RMS$_IFI); return FALSE; *************** *** 962,969 **** return PerlLIO_lseek(PerlIO_fileno(fp), pos, whence); { dTHR; ! if (ckWARN(WARN_UNOPENED)) ! Perl_warner(aTHX_ WARN_UNOPENED, "sysseek() on unopened file"); } SETERRNO(EBADF,RMS$_IFI); return (Off_t)-1; --- 970,977 ---- return PerlLIO_lseek(PerlIO_fileno(fp), pos, whence); { dTHR; ! if (ckWARN2(WARN_UNOPENED,WARN_CLOSED)) ! report_evil_fh(gv, io, PL_op->op_type); } SETERRNO(EBADF,RMS$_IFI); return (Off_t)-1; *************** *** 1167,1173 **** * but only until the system hard limit/the filesystem limit, * at which we would get EPERM. Note that when using buffered * io the write failure can be delayed until the flush/close. --jhi */ ! if (len && (PerlIO_write(fp,tmps,len) == 0 || PerlIO_error(fp))) return FALSE; return !PerlIO_error(fp); } --- 1175,1181 ---- * but only until the system hard limit/the filesystem limit, * at which we would get EPERM. Note that when using buffered * io the write failure can be delayed until the flush/close. --jhi */ ! if (len && (PerlIO_write(fp,tmps,len) == 0)) return FALSE; return !PerlIO_error(fp); } *************** *** 1177,1201 **** { djSP; IO *io; ! GV* tmpgv; if (PL_op->op_flags & OPf_REF) { EXTEND(SP,1); ! tmpgv = cGVOP_gv; do_fstat: ! io = GvIO(tmpgv); if (io && IoIFP(io)) { ! PL_statgv = tmpgv; sv_setpv(PL_statname,""); PL_laststype = OP_STAT; return (PL_laststatval = PerlLIO_fstat(PerlIO_fileno(IoIFP(io)), &PL_statcache)); } else { ! if (tmpgv == PL_defgv) return PL_laststatval; ! if (ckWARN(WARN_UNOPENED)) ! Perl_warner(aTHX_ WARN_UNOPENED, "Stat on unopened file <%s>", ! GvENAME(tmpgv)); PL_statgv = Nullgv; sv_setpv(PL_statname,""); return (PL_laststatval = -1); --- 1185,1208 ---- { djSP; IO *io; ! GV* gv; if (PL_op->op_flags & OPf_REF) { EXTEND(SP,1); ! gv = cGVOP_gv; do_fstat: ! io = GvIO(gv); if (io && IoIFP(io)) { ! PL_statgv = gv; sv_setpv(PL_statname,""); PL_laststype = OP_STAT; return (PL_laststatval = PerlLIO_fstat(PerlIO_fileno(IoIFP(io)), &PL_statcache)); } else { ! if (gv == PL_defgv) return PL_laststatval; ! if (ckWARN2(WARN_UNOPENED,WARN_CLOSED)) ! report_evil_fh(gv, io, PL_op->op_type); PL_statgv = Nullgv; sv_setpv(PL_statname,""); return (PL_laststatval = -1); *************** *** 1207,1217 **** STRLEN n_a; PUTBACK; if (SvTYPE(sv) == SVt_PVGV) { ! tmpgv = (GV*)sv; goto do_fstat; } else if (SvROK(sv) && SvTYPE(SvRV(sv)) == SVt_PVGV) { ! tmpgv = (GV*)SvRV(sv); goto do_fstat; } --- 1214,1224 ---- STRLEN n_a; PUTBACK; if (SvTYPE(sv) == SVt_PVGV) { ! gv = (GV*)sv; goto do_fstat; } else if (SvROK(sv) && SvTYPE(SvRV(sv)) == SVt_PVGV) { ! gv = (GV*)SvRV(sv); goto do_fstat; } *************** *** 1915,1920 **** --- 1922,1930 ---- id = SvIVx(*++mark); mstr = *++mark; + /* suppress warning when reading into undef var --jhi */ + if (! SvOK(mstr)) + sv_setpvn(mstr, "", 0); msize = SvIVx(*++mark); mtype = (long)SvIVx(*++mark); flags = SvIVx(*++mark); Index: doop.c ####### perl-5.6.1-TRIAL1/ => perl-5.6.1-TRIAL1 *** perl-5.6.1-TRIAL1/doop.c Sat Mar 11 19:36:32 2000 --- perl-5.6.1-TRIAL1/doop.c Sun Dec 17 20:44:56 2000 *************** *** 19,31 **** #include #endif STATIC I32 ! S_do_trans_CC_simple(pTHX_ SV *sv) { dTHR; U8 *s; U8 *send; I32 matches = 0; STRLEN len; short *tbl; I32 ch; --- 19,46 ---- #include #endif + #define HALF_UTF8_UPGRADE(start,end) \ + STMT_START { \ + if ((start)<(end)) { \ + U8* NeWsTr; \ + STRLEN LeN = (end) - (start); \ + NeWsTr = bytes_to_utf8(start, &LeN); \ + Safefree(start); \ + (start) = NeWsTr; \ + (end) = (start) + LeN; \ + } \ + } STMT_END + STATIC I32 ! S_do_trans_simple(pTHX_ SV *sv) { dTHR; U8 *s; + U8 *d; U8 *send; + U8 *dstart; I32 matches = 0; + I32 sutf = SvUTF8(sv); STRLEN len; short *tbl; I32 ch; *************** *** 37,61 **** s = (U8*)SvPV(sv, len); send = s + len; ! while (s < send) { ! if ((ch = tbl[*s]) >= 0) { ! matches++; ! *s = ch; } ! s++; } - SvSETMAGIC(sv); return matches; } STATIC I32 ! S_do_trans_CC_count(pTHX_ SV *sv) { dTHR; U8 *s; U8 *send; I32 matches = 0; STRLEN len; short *tbl; --- 52,110 ---- s = (U8*)SvPV(sv, len); send = s + len; ! /* First, take care of non-UTF8 input strings, because they're easy */ ! if (!sutf) { ! while (s < send) { ! if ((ch = tbl[*s]) >= 0) { ! matches++; ! *s++ = ch; ! } ! else ! s++; } ! SvSETMAGIC(sv); ! return matches; } + /* Allow for expansion: $_="a".chr(400); tr/a/\xFE/, FE needs encoding */ + Newz(0, d, len*2+1, U8); + dstart = d; + while (s < send) { + STRLEN ulen; + short c; + + ulen = 1; + /* Need to check this, otherwise 128..255 won't match */ + c = utf8_to_uv(s, send - s, &ulen, 0); + if (c < 0x100 && (ch = tbl[(short)c]) >= 0) { + matches++; + if (ch < 0x80) + *d++ = ch; + else + d = uv_to_utf8(d,ch); + s += ulen; + } + else { /* No match -> copy */ + while (ulen--) + *d++ = *s++; + } + } + *d = '\0'; + sv_setpvn(sv, (const char*)dstart, d - dstart); + Safefree(dstart); + SvUTF8_on(sv); + SvSETMAGIC(sv); return matches; } STATIC I32 ! S_do_trans_count(pTHX_ SV *sv)/* SPC - OK */ { dTHR; U8 *s; U8 *send; I32 matches = 0; + I32 hasutf = SvUTF8(sv); STRLEN len; short *tbl; *************** *** 67,87 **** send = s + len; while (s < send) { ! if (tbl[*s] >= 0) ! matches++; ! s++; } return matches; } STATIC I32 ! S_do_trans_CC_complex(pTHX_ SV *sv) { dTHR; U8 *s; U8 *send; U8 *d; I32 matches = 0; STRLEN len; short *tbl; --- 116,148 ---- send = s + len; while (s < send) { ! if (hasutf && *s & 0x80) ! s += UTF8SKIP(s); ! else { ! UV c; ! STRLEN ulen; ! ulen = 1; ! if (hasutf) ! c = utf8_to_uv(s, send - s, &ulen, 0); ! else ! c = *s; ! if (c < 0x100 && tbl[c] >= 0) ! matches++; ! s += ulen; ! } } return matches; } STATIC I32 ! S_do_trans_complex(pTHX_ SV *sv)/* SPC - NOT OK */ { dTHR; U8 *s; U8 *send; U8 *d; + I32 hasutf = SvUTF8(sv); I32 matches = 0; STRLEN len; short *tbl; *************** *** 99,130 **** U8* p = send; while (s < send) { ! if ((ch = tbl[*s]) >= 0) { ! *d = ch; ! matches++; ! if (p == d - 1 && *p == *d) ! matches--; ! else ! p = d++; ! } ! else if (ch == -1) /* -1 is unmapped character */ ! *d++ = *s; /* -2 is delete character */ ! s++; } } else { while (s < send) { ! if ((ch = tbl[*s]) >= 0) { ! *d = ch; ! matches++; ! d++; ! } ! else if (ch == -1) /* -1 is unmapped character */ ! *d++ = *s; /* -2 is delete character */ ! s++; } } ! matches += send - d; /* account for disappeared chars */ *d = '\0'; SvCUR_set(sv, d - (U8*)SvPVX(sv)); SvSETMAGIC(sv); --- 160,199 ---- U8* p = send; while (s < send) { ! if (hasutf && *s & 0x80) ! s += UTF8SKIP(s); ! else { ! if ((ch = tbl[*s]) >= 0) { ! *d = ch; ! matches++; ! if (p == d - 1 && *p == *d) ! matches--; ! else ! p = d++; ! } ! else if (ch == -1) /* -1 is unmapped character */ ! *d++ = *s; /* -2 is delete character */ ! s++; ! } } } else { while (s < send) { ! if (hasutf && *s & 0x80) ! s += UTF8SKIP(s); ! else { ! if ((ch = tbl[*s]) >= 0) { ! *d = ch; ! matches++; ! d++; ! } ! else if (ch == -1) /* -1 is unmapped character */ ! *d++ = *s; /* -2 is delete character */ ! s++; ! } } } ! matches += send - d; /* account for disappeared chars */ *d = '\0'; SvCUR_set(sv, d - (U8*)SvPVX(sv)); SvSETMAGIC(sv); *************** *** 133,144 **** } STATIC I32 ! S_do_trans_UU_simple(pTHX_ SV *sv) { dTHR; U8 *s; U8 *send; U8 *d; I32 matches = 0; STRLEN len; --- 202,215 ---- } STATIC I32 ! S_do_trans_simple_utf8(pTHX_ SV *sv)/* SPC - OK */ { dTHR; U8 *s; U8 *send; U8 *d; + U8 *start; + U8 *dstart; I32 matches = 0; STRLEN len; *************** *** 149,191 **** UV extra = none + 1; UV final; UV uv; s = (U8*)SvPV(sv, len); send = s + len; svp = hv_fetch(hv, "FINAL", 5, FALSE); if (svp) final = SvUV(*svp); ! d = s; while (s < send) { if ((uv = swash_fetch(rv, s)) < none) { s += UTF8SKIP(s); matches++; d = uv_to_utf8(d, uv); } else if (uv == none) { int i; ! for (i = UTF8SKIP(s); i; i--) *d++ = *s++; } else if (uv == extra) { ! s += UTF8SKIP(s); matches++; d = uv_to_utf8(d, final); } else s += UTF8SKIP(s); } *d = '\0'; ! SvCUR_set(sv, d - (U8*)SvPVX(sv)); SvSETMAGIC(sv); return matches; } STATIC I32 ! S_do_trans_UU_count(pTHX_ SV *sv) { dTHR; U8 *s; --- 220,279 ---- UV extra = none + 1; UV final; UV uv; + I32 isutf; + I32 howmany; + isutf = SvUTF8(sv); s = (U8*)SvPV(sv, len); send = s + len; + start = s; svp = hv_fetch(hv, "FINAL", 5, FALSE); if (svp) final = SvUV(*svp); ! /* d needs to be bigger than s, in case e.g. upgrading is required */ ! Newz(0, d, len*2+1, U8); ! dstart = d; while (s < send) { if ((uv = swash_fetch(rv, s)) < none) { s += UTF8SKIP(s); matches++; + if ((uv & 0x80) && !isutf++) + HALF_UTF8_UPGRADE(dstart,d); d = uv_to_utf8(d, uv); } else if (uv == none) { int i; ! i = UTF8SKIP(s); ! if (i > 1 && !isutf++) ! HALF_UTF8_UPGRADE(dstart,d); ! while(i--) *d++ = *s++; } else if (uv == extra) { ! int i; ! i = UTF8SKIP(s); ! s += i; matches++; + if (i > 1 && !isutf++) + HALF_UTF8_UPGRADE(dstart,d); d = uv_to_utf8(d, final); } else s += UTF8SKIP(s); } *d = '\0'; ! sv_setpvn(sv, (const char*)dstart, d - dstart); SvSETMAGIC(sv); + if (isutf) + SvUTF8_on(sv); return matches; } STATIC I32 ! S_do_trans_count_utf8(pTHX_ SV *sv)/* SPC - OK */ { dTHR; U8 *s; *************** *** 200,205 **** --- 288,295 ---- UV uv; s = (U8*)SvPV(sv, len); + if (!SvUTF8(sv)) + s = bytes_to_utf8(s, &len); send = s + len; while (s < send) { *************** *** 212,400 **** } STATIC I32 ! S_do_trans_UC_simple(pTHX_ SV *sv) ! { ! dTHR; ! U8 *s; ! U8 *send; ! U8 *d; ! I32 matches = 0; ! STRLEN len; ! ! SV* rv = (SV*)cSVOP->op_sv; ! HV* hv = (HV*)SvRV(rv); ! SV** svp = hv_fetch(hv, "NONE", 4, FALSE); ! UV none = svp ? SvUV(*svp) : 0x7fffffff; ! UV extra = none + 1; ! UV final; ! UV uv; ! ! s = (U8*)SvPV(sv, len); ! send = s + len; ! ! svp = hv_fetch(hv, "FINAL", 5, FALSE); ! if (svp) ! final = SvUV(*svp); ! ! d = s; ! while (s < send) { ! if ((uv = swash_fetch(rv, s)) < none) { ! s += UTF8SKIP(s); ! matches++; ! *d++ = (U8)uv; ! } ! else if (uv == none) { ! I32 ulen; ! uv = utf8_to_uv(s, &ulen); ! s += ulen; ! *d++ = (U8)uv; ! } ! else if (uv == extra) { ! s += UTF8SKIP(s); ! matches++; ! *d++ = (U8)final; ! } ! else ! s += UTF8SKIP(s); ! } ! *d = '\0'; ! SvCUR_set(sv, d - (U8*)SvPVX(sv)); ! SvSETMAGIC(sv); ! ! return matches; ! } ! ! STATIC I32 ! S_do_trans_CU_simple(pTHX_ SV *sv) ! { ! dTHR; ! U8 *s; ! U8 *send; ! U8 *d; ! U8 *dst; ! I32 matches = 0; ! STRLEN len; ! ! SV* rv = (SV*)cSVOP->op_sv; ! HV* hv = (HV*)SvRV(rv); ! SV** svp = hv_fetch(hv, "NONE", 4, FALSE); ! UV none = svp ? SvUV(*svp) : 0x7fffffff; ! UV extra = none + 1; ! UV final; ! UV uv; ! U8 tmpbuf[UTF8_MAXLEN]; ! I32 bits = 16; ! ! s = (U8*)SvPV(sv, len); ! send = s + len; ! ! svp = hv_fetch(hv, "BITS", 4, FALSE); ! if (svp) ! bits = (I32)SvIV(*svp); ! ! svp = hv_fetch(hv, "FINAL", 5, FALSE); ! if (svp) ! final = SvUV(*svp); ! ! Newz(801, d, len * (bits >> 3) + 1, U8); ! dst = d; ! ! while (s < send) { ! uv = *s++; ! if (uv < 0x80) ! tmpbuf[0] = uv; ! else { ! tmpbuf[0] = (( uv >> 6) | 0xc0); ! tmpbuf[1] = (( uv & 0x3f) | 0x80); ! } ! ! if ((uv = swash_fetch(rv, tmpbuf)) < none) { ! matches++; ! d = uv_to_utf8(d, uv); ! } ! else if (uv == none) ! d = uv_to_utf8(d, s[-1]); ! else if (uv == extra) { ! matches++; ! d = uv_to_utf8(d, final); ! } ! } ! *d = '\0'; ! sv_usepvn_mg(sv, (char*)dst, d - dst); ! ! return matches; ! } ! ! /* utf-8 to latin-1 */ ! ! STATIC I32 ! S_do_trans_UC_trivial(pTHX_ SV *sv) ! { ! dTHR; ! U8 *s; ! U8 *send; ! U8 *d; ! STRLEN len; ! ! s = (U8*)SvPV(sv, len); ! send = s + len; ! ! d = s; ! while (s < send) { ! if (*s < 0x80) ! *d++ = *s++; ! else { ! I32 ulen; ! UV uv = utf8_to_uv(s, &ulen); ! s += ulen; ! *d++ = (U8)uv; ! } ! } ! *d = '\0'; ! SvCUR_set(sv, d - (U8*)SvPVX(sv)); ! SvSETMAGIC(sv); ! ! return SvCUR(sv); ! } ! ! /* latin-1 to utf-8 */ ! ! STATIC I32 ! S_do_trans_CU_trivial(pTHX_ SV *sv) ! { ! dTHR; ! U8 *s; ! U8 *send; ! U8 *d; ! U8 *dst; ! I32 matches; ! STRLEN len; ! ! s = (U8*)SvPV(sv, len); ! send = s + len; ! ! Newz(801, d, len * 2 + 1, U8); ! dst = d; ! ! matches = send - s; ! ! while (s < send) { ! if (*s < 0x80) ! *d++ = *s++; ! else { ! UV uv = *s++; ! *d++ = (( uv >> 6) | 0xc0); ! *d++ = (( uv & 0x3f) | 0x80); ! } ! } ! *d = '\0'; ! sv_usepvn_mg(sv, (char*)dst, d - dst); ! ! return matches; ! } ! ! STATIC I32 ! S_do_trans_UU_complex(pTHX_ SV *sv) { dTHR; U8 *s; --- 302,308 ---- } STATIC I32 ! S_do_trans_complex_utf8(pTHX_ SV *sv) /* SPC - NOT OK */ { dTHR; U8 *s; *************** *** 402,409 **** U8 *d; I32 matches = 0; I32 squash = PL_op->op_private & OPpTRANS_SQUASH; - I32 from_utf = PL_op->op_private & OPpTRANS_FROM_UTF; - I32 to_utf = PL_op->op_private & OPpTRANS_TO_UTF; I32 del = PL_op->op_private & OPpTRANS_DELETE; SV* rv = (SV*)cSVOP->op_sv; HV* hv = (HV*)SvRV(rv); --- 310,315 ---- *************** *** 414,419 **** --- 320,326 ---- UV uv; STRLEN len; U8 *dst; + I32 isutf = SvUTF8(sv); s = (U8*)SvPV(sv, len); send = s + len; *************** *** 422,448 **** if (svp) final = SvUV(*svp); ! if (PL_op->op_private & OPpTRANS_GROWS) { ! I32 bits = 16; ! ! svp = hv_fetch(hv, "BITS", 4, FALSE); ! if (svp) ! bits = (I32)SvIV(*svp); ! ! Newz(801, d, len * (bits >> 3) + 1, U8); dst = d; - } - else { - d = s; - dst = 0; - } if (squash) { UV puv = 0xfeedface; while (s < send) { ! if (from_utf) { uv = swash_fetch(rv, s); - } else { U8 tmpbuf[2]; uv = *s++; --- 329,342 ---- if (svp) final = SvUV(*svp); ! Newz(0, d, len*2+1, U8); dst = d; if (squash) { UV puv = 0xfeedface; while (s < send) { ! if (SvUTF8(sv)) uv = swash_fetch(rv, s); else { U8 tmpbuf[2]; uv = *s++; *************** *** 454,516 **** } uv = swash_fetch(rv, tmpbuf); } if (uv < none) { matches++; if (uv != puv) { ! if (uv >= 0x80 && to_utf) ! d = uv_to_utf8(d, uv); ! else ! *d++ = (U8)uv; puv = uv; } ! if (from_utf) ! s += UTF8SKIP(s); continue; } else if (uv == none) { /* "none" is unmapped character */ ! if (from_utf) { ! if (*s < 0x80) ! *d++ = *s++; ! else if (to_utf) { ! int i; ! for (i = UTF8SKIP(s); i; --i) ! *d++ = *s++; ! } ! else { ! I32 ulen; ! *d++ = (U8)utf8_to_uv(s, &ulen); ! s += ulen; ! } ! } ! else { /* must be to_utf only */ ! d = uv_to_utf8(d, s[-1]); ! } puv = 0xfeedface; continue; } else if (uv == extra && !del) { matches++; if (uv != puv) { ! if (final >= 0x80 && to_utf) ! d = uv_to_utf8(d, final); ! else ! *d++ = (U8)final; puv = final; } ! if (from_utf) ! s += UTF8SKIP(s); continue; } ! matches++; /* "none+1" is delete character */ ! if (from_utf) ! s += UTF8SKIP(s); } } else { while (s < send) { ! if (from_utf) { uv = swash_fetch(rv, s); - } else { U8 tmpbuf[2]; uv = *s++; --- 348,389 ---- } uv = swash_fetch(rv, tmpbuf); } + if (uv < none) { matches++; if (uv != puv) { ! if ((uv & 0x80) && !isutf++) ! HALF_UTF8_UPGRADE(dst,d); ! d = uv_to_utf8(d, uv); puv = uv; } ! s += UTF8SKIP(s); continue; } else if (uv == none) { /* "none" is unmapped character */ ! STRLEN ulen; ! *d++ = (U8)utf8_to_uv(s, send - s, &ulen, 0); ! s += ulen; puv = 0xfeedface; continue; } else if (uv == extra && !del) { matches++; if (uv != puv) { ! d = uv_to_utf8(d, final); puv = final; } ! s += UTF8SKIP(s); continue; } ! matches++; /* "none+1" is delete character */ ! s += UTF8SKIP(s); } } else { while (s < send) { ! if (SvUTF8(sv)) uv = swash_fetch(rv, s); else { U8 tmpbuf[2]; uv = *s++; *************** *** 524,570 **** } if (uv < none) { matches++; ! if (uv >= 0x80 && to_utf) ! d = uv_to_utf8(d, uv); ! else ! *d++ = (U8)uv; ! if (from_utf) ! s += UTF8SKIP(s); continue; } else if (uv == none) { /* "none" is unmapped character */ ! if (from_utf) { ! if (*s < 0x80) ! *d++ = *s++; ! else if (to_utf) { ! int i; ! for (i = UTF8SKIP(s); i; --i) ! *d++ = *s++; ! } ! else { ! I32 ulen; ! *d++ = (U8)utf8_to_uv(s, &ulen); ! s += ulen; ! } ! } ! else { /* must be to_utf only */ ! d = uv_to_utf8(d, s[-1]); ! } continue; } else if (uv == extra && !del) { matches++; ! if (final >= 0x80 && to_utf) ! d = uv_to_utf8(d, final); ! else ! *d++ = (U8)final; ! if (from_utf) ! s += UTF8SKIP(s); continue; } ! matches++; /* "none+1" is delete character */ ! if (from_utf) ! s += UTF8SKIP(s); } } if (dst) --- 397,420 ---- } if (uv < none) { matches++; ! d = uv_to_utf8(d, uv); ! s += UTF8SKIP(s); continue; } else if (uv == none) { /* "none" is unmapped character */ ! STRLEN ulen; ! *d++ = (U8)utf8_to_uv(s, send - s, &ulen, 0); ! s += ulen; continue; } else if (uv == extra && !del) { matches++; ! d = uv_to_utf8(d, final); ! s += UTF8SKIP(s); continue; } ! matches++; /* "none+1" is delete character */ ! s += UTF8SKIP(s); } } if (dst) *************** *** 583,588 **** --- 433,440 ---- { dTHR; STRLEN len; + I32 hasutf = (PL_op->op_private & + (OPpTRANS_FROM_UTF|OPpTRANS_TO_UTF)); if (SvREADONLY(sv) && !(PL_op->op_private & OPpTRANS_IDENTICAL)) Perl_croak(aTHX_ PL_no_modify); *************** *** 592,631 **** return 0; if (!SvPOKp(sv)) (void)SvPV_force(sv, len); ! (void)SvPOK_only(sv); DEBUG_t( Perl_deb(aTHX_ "2.TBL\n")); ! switch (PL_op->op_private & 63) { case 0: ! return do_trans_CC_simple(sv); ! ! case OPpTRANS_FROM_UTF: ! return do_trans_UC_simple(sv); ! ! case OPpTRANS_TO_UTF: ! return do_trans_CU_simple(sv); ! ! case OPpTRANS_FROM_UTF|OPpTRANS_TO_UTF: ! return do_trans_UU_simple(sv); case OPpTRANS_IDENTICAL: ! return do_trans_CC_count(sv); ! ! case OPpTRANS_FROM_UTF|OPpTRANS_IDENTICAL: ! return do_trans_UC_trivial(sv); ! ! case OPpTRANS_TO_UTF|OPpTRANS_IDENTICAL: ! return do_trans_CU_trivial(sv); ! ! case OPpTRANS_FROM_UTF|OPpTRANS_TO_UTF|OPpTRANS_IDENTICAL: ! return do_trans_UU_count(sv); default: ! if (PL_op->op_private & (OPpTRANS_FROM_UTF|OPpTRANS_TO_UTF)) ! return do_trans_UU_complex(sv); /* could be UC or CU too */ else ! return do_trans_CC_complex(sv); } } --- 444,472 ---- return 0; if (!SvPOKp(sv)) (void)SvPV_force(sv, len); ! if (!(PL_op->op_private & OPpTRANS_IDENTICAL)) ! (void)SvPOK_only_UTF8(sv); DEBUG_t( Perl_deb(aTHX_ "2.TBL\n")); ! switch (PL_op->op_private & ~hasutf & 63) { case 0: ! if (hasutf) ! return do_trans_simple_utf8(sv); ! else ! return do_trans_simple(sv); case OPpTRANS_IDENTICAL: ! if (hasutf) ! return do_trans_count_utf8(sv); ! else ! return do_trans_count(sv); default: ! if (hasutf) ! return do_trans_complex_utf8(sv); else ! return do_trans_complex(sv); } } *************** *** 644,650 **** (void)SvUPGRADE(sv, SVt_PV); if (SvLEN(sv) < len + items) { /* current length is way too short */ while (items-- > 0) { ! if (*mark && !SvGMAGICAL(*mark) && SvOK(*mark)) { SvPV(*mark, tmplen); len += tmplen; } --- 485,491 ---- (void)SvUPGRADE(sv, SVt_PV); if (SvLEN(sv) < len + items) { /* current length is way too short */ while (items-- > 0) { ! if (*mark && !SvGAMAGIC(*mark) && SvOK(*mark)) { SvPV(*mark, tmplen); len += tmplen; } *************** *** 660,671 **** if (items-- > 0) { char *s; ! if (*mark) { ! s = SvPV(*mark, tmplen); ! sv_setpvn(sv, s, tmplen); ! } ! else ! sv_setpv(sv, ""); mark++; } else --- 501,509 ---- if (items-- > 0) { char *s; ! sv_setpv(sv, ""); ! if (*mark) ! sv_catsv(sv, *mark); mark++; } else *************** *** 697,702 **** --- 535,541 ---- SvTAINTED_on(sv); } + /* currently converts input to bytes if possible, but doesn't sweat failure */ UV Perl_do_vecget(pTHX_ SV *sv, I32 offset, I32 size) { *************** *** 706,713 **** if (offset < 0) return retnum; ! if (size < 1 || (size & (size-1))) /* size < 1 or not a power of two */ Perl_croak(aTHX_ "Illegal number of bits in vec"); offset *= size; /* turn into bit offset */ len = (offset + size + 7) / 8; /* required number of bytes */ if (len > srclen) { --- 545,556 ---- if (offset < 0) return retnum; ! if (size < 1 || (size & (size-1))) /* size < 1 or not a power of two */ Perl_croak(aTHX_ "Illegal number of bits in vec"); + + if (SvUTF8(sv)) + (void) Perl_sv_utf8_downgrade(aTHX_ sv, TRUE); + offset *= size; /* turn into bit offset */ len = (offset + size + 7) / 8; /* required number of bytes */ if (len > srclen) { *************** *** 779,785 **** ((UV) s[offset + 4] << 24) + ((UV) s[offset + 5] << 16); else ! retnum =