This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
new_pte/del_pte can use new_body/del_body too
[perl5.git] / INSTALL
diff --git a/INSTALL b/INSTALL
index b529ce9..02a1333 100644 (file)
--- a/INSTALL
+++ b/INSTALL
@@ -332,7 +332,7 @@ after the platform hints have been run by using Configure's -A switch.
 For example, here's how to add a couple of extra flags to C compiler
 invocations:
 
-       sh Configure -Accflags="-DPERL_Y2KWARN -DPERL_POLLUTE_MALLOC"
+       sh Configure -Accflags="-DPERL_EXTERNAL_GLOB -DPERL_POLLUTE_MALLOC"
 
 For more help on Configure switches, run
 
@@ -527,7 +527,7 @@ One can still revert to the old guaranteed repeatable order (and be
 vulnerable to attack by wily crackers) by setting the environment
 variable PERL_HASH_SEED, see L<perlrun/PERL_HASH_SEED>.  Another option
 is to add -DUSE_HASH_SEED_EXPLICIT to the compilation flags (for
-example by using C<Configure -Accflags=-DUSE_HAS_SEED_EXPLICIT>), in
+example by using C<Configure -Accflags=-DUSE_HASH_SEED_EXPLICIT>), in
 which case one has to explicitly set the PERL_HASH_SEED environment
 variable to enable the security feature, or by adding -DNO_HASH_SEED to
 the compilation flags to completely disable the randomisation feature.
@@ -657,6 +657,19 @@ architecture-dependent library for your -DDEBUGGING version of perl.
 You can do this by changing all the *archlib* variables in config.sh to
 point to your new architecture-dependent library.
 
+=head3 Environment access
+
+Perl often needs to write to the program's environment, such as when C<%ENV>
+is assigned to. Many implementations of the C library function C<putenv()>
+leak memory, so where possible perl will manipulate the environment directly
+to avoid these leaks. The default is now to perform direct manipulation
+whenever perl is running as a stand alone interpreter, and to call the safe
+but potentially leaky C<putenv()> function when the perl interpreter is
+embedded in another application. You can force perl to always use C<putenv()>
+by compiling with -DPERL_USE_SAVE_PUTENV. You can force an embedded perl to
+use direct manipulation by setting C<PL_use_safe_putenv = 0;> after the
+C<perl_construct()> call.
+
 =head2 Installation Directories
 
 The installation directories can all be changed by answering the
@@ -832,6 +845,17 @@ present, at run time.  Of course, you can still search other @INC
 directories ahead of those in APPLLIB_EXP by using any of the standard
 run-time methods: $PERLLIB, $PERL5LIB, -I, use lib, etc.
 
+=item USE_SITECUSTOMIZE
+
+Run-time customization of @INC can be enabled with:
+
+       sh Configure -Dusesitecustomize
+
+Which will define USE_SITECUSTOMIZE and $Config{usesitecustomize}.
+When enabled, make perl run F<$sitelibexp/sitecustomize.pl> before
+anything else.  This script can then be set up to add additional
+entries to @INC.
+
 =item Man Pages
 
 In versions 5.005_57 and earlier, the default was to store module man
@@ -1677,13 +1701,33 @@ to
 then propagate your changes with B<sh Configure -S> and rebuild
 with B<make depend; make>.
 
-=item Missing functions
+=item Missing functions and Undefined symbols
+
+If the build of miniperl fails with a long list of missing functions or
+undefined symbols, check the libs variable in the config.sh file.  It
+should look something like
+
+       libs='-lsocket -lnsl -ldl -lm -lc'
+
+The exact libraries will vary from system to system, but you typically
+need to include at least the math library -lm.  Normally, Configure
+will suggest the correct defaults.  If the libs variable is empty, you
+need to start all over again.  Run
+
+       make distclean
+
+and start from the very beginning.  This time, unless you are sure of
+what you are doing, accept the default list of libraries suggested by
+Configure.
 
-If you have missing routines, you probably need to add some library or
-other, or you need to undefine some feature that Configure thought was
-there but is defective or incomplete.  Look through config.h for
-likely suspects.  If Configure guessed wrong on a number of functions,
-you might have the L<"nm extraction"> problem discussed above.
+If the libs variable looks correct, you might have the
+L<"nm extraction"> problem discussed above.
+
+If you stil have missing routines or undefined symbols, you probably
+need to add some library or other, or you need to undefine some feature
+that Configure thought was there but is defective or incomplete.  If
+you used a hint file, see if it has any relevant advice.  You can also
+look through through config.h for likely suspects.
 
 =item toke.c
 
@@ -2403,113 +2447,107 @@ Firstly, the bare minimum to run this script
      print("$f\n");
   }
 
-in Solaris is as follows (under $Config{prefix}):
+in Linux is as follows (under $Config{prefix}):
 
   ./bin/perl
-  ./lib/perl5/5.6.1/sun4-solaris-64int/auto/DynaLoader/autosplit.ix
-  ./lib/perl5/5.6.1/sun4-solaris-64int/auto/DynaLoader/dl_expandspec.al
-  ./lib/perl5/5.6.1/sun4-solaris-64int/auto/DynaLoader/dl_find_symbol_anywhere.al
-  ./lib/perl5/5.6.1/sun4-solaris-64int/auto/DynaLoader/dl_findfile.al
-  ./lib/perl5/5.6.1/sun4-solaris-64int/auto/File/Glob/Glob.so
-  ./lib/perl5/5.6.1/sun4-solaris-64int/auto/File/Glob/autosplit.ix
-  ./lib/perl5/5.6.1/sun4-solaris-64int/Config.pm
-  ./lib/perl5/5.6.1/sun4-solaris-64int/XSLoader.pm
-  ./lib/perl5/5.6.1/sun4-solaris-64int/DynaLoader.pm
-  ./lib/perl5/5.6.1/sun4-solaris-64int/CORE/libperl.so
-  ./lib/perl5/5.6.1/strict.pm
-  ./lib/perl5/5.6.1/warnings.pm
-  ./lib/perl5/5.6.1/Carp.pm
-  ./lib/perl5/5.6.1/Exporter.pm
-  ./lib/perl5/5.6.1/File/Glob.pm
-  ./lib/perl5/5.6.1/AutoLoader.pm
-  ./lib/perl5/5.6.1/vars.pm
-  ./lib/perl5/5.6.1/warnings/register.pm
-  ./lib/perl5/5.6.1/Carp/Heavy.pm
-  ./lib/perl5/5.6.1/Exporter/Heavy.pm
+  ./lib/perl5/5.9.3/strict.pm
+  ./lib/perl5/5.9.3/warnings.pm
+  ./lib/perl5/5.9.3/i686-linux/File/Glob.pm
+  ./lib/perl5/5.9.3/i686-linux/XSLoader.pm
+  ./lib/perl5/5.9.3/i686-linux/auto/File/Glob/Glob.so
 
 Secondly, Debian perl-base package contains the following files,
-size about 1.2MB in its i386 version:
+size about 1.9MB in its i386 version:
 
-  /usr/share/doc/perl/Documentation
-  /usr/share/doc/perl/README.Debian
-  /usr/share/doc/perl/copyright
+  /usr/bin/perl
+  /usr/bin/perl5.8.4
+  /usr/lib/perl/5.8
+  /usr/lib/perl/5.8.4/B.pm
+  /usr/lib/perl/5.8.4/B/Deparse.pm
+  /usr/lib/perl/5.8.4/Config.pm
+  /usr/lib/perl/5.8.4/Cwd.pm
+  /usr/lib/perl/5.8.4/Data/Dumper.pm
+  /usr/lib/perl/5.8.4/DynaLoader.pm
+  /usr/lib/perl/5.8.4/Errno.pm
+  /usr/lib/perl/5.8.4/Fcntl.pm
+  /usr/lib/perl/5.8.4/File/Glob.pm
+  /usr/lib/perl/5.8.4/IO.pm
+  /usr/lib/perl/5.8.4/IO/File.pm
+  /usr/lib/perl/5.8.4/IO/Handle.pm
+  /usr/lib/perl/5.8.4/IO/Pipe.pm
+  /usr/lib/perl/5.8.4/IO/Seekable.pm
+  /usr/lib/perl/5.8.4/IO/Select.pm
+  /usr/lib/perl/5.8.4/IO/Socket.pm
+  /usr/lib/perl/5.8.4/POSIX.pm
+  /usr/lib/perl/5.8.4/Socket.pm
+  /usr/lib/perl/5.8.4/XSLoader.pm
+  /usr/lib/perl/5.8.4/auto/Cwd/Cwd.bs
+  /usr/lib/perl/5.8.4/auto/Cwd/Cwd.so
+  /usr/lib/perl/5.8.4/auto/Data/Dumper/Dumper.bs
+  /usr/lib/perl/5.8.4/auto/Data/Dumper/Dumper.so
+  /usr/lib/perl/5.8.4/auto/DynaLoader/DynaLoader.a
+  /usr/lib/perl/5.8.4/auto/DynaLoader/autosplit.ix
+  /usr/lib/perl/5.8.4/auto/DynaLoader/dl_expandspec.al
+  /usr/lib/perl/5.8.4/auto/DynaLoader/dl_find_symbol_anywhere.al
+  /usr/lib/perl/5.8.4/auto/DynaLoader/dl_findfile.al
+  /usr/lib/perl/5.8.4/auto/DynaLoader/extralibs.ld
+  /usr/lib/perl/5.8.4/auto/Fcntl/Fcntl.bs
+  /usr/lib/perl/5.8.4/auto/Fcntl/Fcntl.so
+  /usr/lib/perl/5.8.4/auto/File/Glob/Glob.bs
+  /usr/lib/perl/5.8.4/auto/File/Glob/Glob.so
+  /usr/lib/perl/5.8.4/auto/IO/IO.bs
+  /usr/lib/perl/5.8.4/auto/IO/IO.so
+  /usr/lib/perl/5.8.4/auto/POSIX/POSIX.bs
+  /usr/lib/perl/5.8.4/auto/POSIX/POSIX.so
+  /usr/lib/perl/5.8.4/auto/POSIX/autosplit.ix
+  /usr/lib/perl/5.8.4/auto/POSIX/load_imports.al
+  /usr/lib/perl/5.8.4/auto/Socket/Socket.bs
+  /usr/lib/perl/5.8.4/auto/Socket/Socket.so
+  /usr/lib/perl/5.8.4/lib.pm
+  /usr/lib/perl/5.8.4/re.pm
+  /usr/share/doc/perl-base
   /usr/share/doc/perl/AUTHORS.gz
+  /usr/share/doc/perl/Documentation
+  /usr/share/doc/perl/README.Debian.gz
   /usr/share/doc/perl/changelog.Debian.gz
+  /usr/share/doc/perl/copyright
   /usr/share/man/man1/perl.1.gz
-  /usr/share/perl/5.6.1/AutoLoader.pm
-  /usr/share/perl/5.6.1/Carp.pm
-  /usr/share/perl/5.6.1/Carp/Heavy.pm
-  /usr/share/perl/5.6.1/Cwd.pm
-  /usr/share/perl/5.6.1/Exporter.pm
-  /usr/share/perl/5.6.1/Exporter/Heavy.pm
-  /usr/share/perl/5.6.1/File/Spec.pm
-  /usr/share/perl/5.6.1/File/Spec/Unix.pm
-  /usr/share/perl/5.6.1/FileHandle.pm
-  /usr/share/perl/5.6.1/Getopt/Long.pm
-  /usr/share/perl/5.6.1/IO/Socket/INET.pm
-  /usr/share/perl/5.6.1/IO/Socket/UNIX.pm
-  /usr/share/perl/5.6.1/IPC/Open2.pm
-  /usr/share/perl/5.6.1/IPC/Open3.pm
-  /usr/share/perl/5.6.1/SelectSaver.pm
-  /usr/share/perl/5.6.1/Symbol.pm
-  /usr/share/perl/5.6.1/Text/Tabs.pm
-  /usr/share/perl/5.6.1/Text/Wrap.pm
-  /usr/share/perl/5.6.1/attributes.pm
-  /usr/share/perl/5.6.1/auto/Getopt/Long/GetOptions.al
-  /usr/share/perl/5.6.1/auto/Getopt/Long/FindOption.al
-  /usr/share/perl/5.6.1/auto/Getopt/Long/Configure.al
-  /usr/share/perl/5.6.1/auto/Getopt/Long/config.al
-  /usr/share/perl/5.6.1/auto/Getopt/Long/Croak.al
-  /usr/share/perl/5.6.1/auto/Getopt/Long/autosplit.ix
-  /usr/share/perl/5.6.1/base.pm
-  /usr/share/perl/5.6.1/constant.pm
-  /usr/share/perl/5.6.1/fields.pm
-  /usr/share/perl/5.6.1/integer.pm
-  /usr/share/perl/5.6.1/lib.pm
-  /usr/share/perl/5.6.1/locale.pm
-  /usr/share/perl/5.6.1/overload.pm
-  /usr/share/perl/5.6.1/strict.pm
-  /usr/share/perl/5.6.1/vars.pm
-  /usr/share/perl/5.6.1/warnings.pm
-  /usr/share/perl/5.6.1/warnings/register.pm
-  /usr/bin/perl
-  /usr/lib/perl/5.6.1/Config.pm
-  /usr/lib/perl/5.6.1/Data/Dumper.pm
-  /usr/lib/perl/5.6.1/DynaLoader.pm
-  /usr/lib/perl/5.6.1/Errno.pm
-  /usr/lib/perl/5.6.1/Fcntl.pm
-  /usr/lib/perl/5.6.1/File/Glob.pm
-  /usr/lib/perl/5.6.1/IO.pm
-  /usr/lib/perl/5.6.1/IO/File.pm
-  /usr/lib/perl/5.6.1/IO/Handle.pm
-  /usr/lib/perl/5.6.1/IO/Pipe.pm
-  /usr/lib/perl/5.6.1/IO/Seekable.pm
-  /usr/lib/perl/5.6.1/IO/Select.pm
-  /usr/lib/perl/5.6.1/IO/Socket.pm
-  /usr/lib/perl/5.6.1/POSIX.pm
-  /usr/lib/perl/5.6.1/Socket.pm
-  /usr/lib/perl/5.6.1/XSLoader.pm
-  /usr/lib/perl/5.6.1/auto/Data/Dumper/Dumper.so
-  /usr/lib/perl/5.6.1/auto/Data/Dumper/Dumper.bs
-  /usr/lib/perl/5.6.1/auto/DynaLoader/dl_findfile.al
-  /usr/lib/perl/5.6.1/auto/DynaLoader/dl_expandspec.al
-  /usr/lib/perl/5.6.1/auto/DynaLoader/dl_find_symbol_anywhere.al
-  /usr/lib/perl/5.6.1/auto/DynaLoader/autosplit.ix
-  /usr/lib/perl/5.6.1/auto/DynaLoader/DynaLoader.a
-  /usr/lib/perl/5.6.1/auto/DynaLoader/extralibs.ld
-  /usr/lib/perl/5.6.1/auto/Fcntl/Fcntl.so
-  /usr/lib/perl/5.6.1/auto/Fcntl/Fcntl.bs
-  /usr/lib/perl/5.6.1/auto/File/Glob/Glob.bs
-  /usr/lib/perl/5.6.1/auto/File/Glob/Glob.so
-  /usr/lib/perl/5.6.1/auto/File/Glob/autosplit.ix
-  /usr/lib/perl/5.6.1/auto/IO/IO.so
-  /usr/lib/perl/5.6.1/auto/IO/IO.bs
-  /usr/lib/perl/5.6.1/auto/POSIX/POSIX.bs
-  /usr/lib/perl/5.6.1/auto/POSIX/POSIX.so
-  /usr/lib/perl/5.6.1/auto/POSIX/autosplit.ix
-  /usr/lib/perl/5.6.1/auto/POSIX/load_imports.al
-  /usr/lib/perl/5.6.1/auto/Socket/Socket.so
-  /usr/lib/perl/5.6.1/auto/Socket/Socket.bs
+  /usr/share/perl/5.8
+  /usr/share/perl/5.8.4/AutoLoader.pm
+  /usr/share/perl/5.8.4/Carp.pm
+  /usr/share/perl/5.8.4/Carp/Heavy.pm
+  /usr/share/perl/5.8.4/Exporter.pm
+  /usr/share/perl/5.8.4/Exporter/Heavy.pm
+  /usr/share/perl/5.8.4/File/Spec.pm
+  /usr/share/perl/5.8.4/File/Spec/Unix.pm
+  /usr/share/perl/5.8.4/FileHandle.pm
+  /usr/share/perl/5.8.4/Getopt/Long.pm
+  /usr/share/perl/5.8.4/IO/Socket/INET.pm
+  /usr/share/perl/5.8.4/IO/Socket/UNIX.pm
+  /usr/share/perl/5.8.4/IPC/Open2.pm
+  /usr/share/perl/5.8.4/IPC/Open3.pm
+  /usr/share/perl/5.8.4/List/Util.pm
+  /usr/share/perl/5.8.4/Scalar/Util.pm
+  /usr/share/perl/5.8.4/SelectSaver.pm
+  /usr/share/perl/5.8.4/Symbol.pm
+  /usr/share/perl/5.8.4/Text/ParseWords.pm
+  /usr/share/perl/5.8.4/Text/Tabs.pm
+  /usr/share/perl/5.8.4/Text/Wrap.pm
+  /usr/share/perl/5.8.4/attributes.pm
+  /usr/share/perl/5.8.4/base.pm
+  /usr/share/perl/5.8.4/bytes.pm
+  /usr/share/perl/5.8.4/bytes_heavy.pl
+  /usr/share/perl/5.8.4/constant.pm
+  /usr/share/perl/5.8.4/fields.pm
+  /usr/share/perl/5.8.4/integer.pm
+  /usr/share/perl/5.8.4/locale.pm
+  /usr/share/perl/5.8.4/overload.pm
+  /usr/share/perl/5.8.4/strict.pm
+  /usr/share/perl/5.8.4/utf8.pm
+  /usr/share/perl/5.8.4/utf8_heavy.pl
+  /usr/share/perl/5.8.4/vars.pm
+  /usr/share/perl/5.8.4/warnings.pm
+  /usr/share/perl/5.8.4/warnings/register.pm
 
 =head1 DOCUMENTATION