Re: [perl #34493] h2ph `extern inline' problems
[p5sagit/p5-mst-13.2.git] / INSTALL
diff --git a/INSTALL b/INSTALL
index b529ce9..fb2d5cd 100644 (file)
--- a/INSTALL
+++ b/INSTALL
@@ -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,16 @@ 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 -Accflags=-DUSE_SITECUSTOMIZE
+
+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 +1700,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 the libs variable looks correct, you might have the
+L<"nm extraction"> problem discussed above.
 
-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 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