[revert some function caching changes]
[p5sagit/p5-mst-13.2.git] / INSTALL
diff --git a/INSTALL b/INSTALL
index eaa9fbf..b629682 100644 (file)
--- a/INSTALL
+++ b/INSTALL
@@ -11,6 +11,11 @@ The basic steps to build and install perl5 on a Unix system are:
        make
        make test
        make install
+       # possibly add these:
+       (cd /usr/include  && h2ph *.h sys/*.h)
+       cd pod; make html && mv *.html <www home dir>  && cd ..
+       cd pod; make tex  && <process the latex files> && cd ..
+
 
 Each of these is explained in further detail below.
 
@@ -54,7 +59,22 @@ re-use your old config.sh.  Simply remove it or rename it, e.g.
 
        mv config.sh config.sh.old
 
-Then run Configure.
+If you wish to use your old config.sh, be especially attentive to the
+version and architecture-specific questions and answers.  For example,
+the default directory for architecture-dependent library modules
+includes the version name.  By default, Configure will reuse your old
+name (e.g. /opt/perl/lib/i86pc-solaris/5.003) even if you're running
+Configure for a different version, e.g. 5.004.  Yes, Configure should
+probably check and correct for this, but it doesn't, presently.
+Similarly, if you used a shared libperl.so (see below) with version
+numbers, you will probably want to adjust them as well.
+
+Also, be careful to check your architecture name.  Some Linux systems
+call themselves i486, while others use i586.  If you pick up a
+precompiled binary, it might not use the same name.
+
+In short, if you wish to use your old config.sh, I recommend running
+Configure interactively rather than blindly accepting the defaults.
 
 =head1 Run Configure.
 
@@ -105,12 +125,12 @@ you can use the Configure command line option -Uusedl.
 By default, Configure will offer to build every extension which appears
 to be supported.  For example, Configure will offer to build GDBM_File
 only if it is able to find the gdbm library.  (See examples below.)
-DynaLoader, Fcntl, FileHandle and IO are always built by default.
-Configure does not contain code to test for POSIX compliance, so POSIX
-is always built by default as well.  If you wish to skip POSIX, you can
-set the Configure variable useposix=false either in a hint file or from
-the Configure command line.  Similarly, the Opcode extension is always
-built by default, but you can skip it by setting the Configure variable
+DynaLoader, Fcntl, and IO are always built by default.  Configure does
+not contain code to test for POSIX compliance, so POSIX is always built
+by default as well.  If you wish to skip POSIX, you can set the
+Configure variable useposix=false either in a hint file or from the
+Configure command line.  Similarly, the Opcode extension is always built
+by default, but you can skip it by setting the Configure variable
 useopcode=false either in a hint file for from the command line.
 
 Even if you do not have dynamic loading, you must still build the
@@ -123,7 +143,6 @@ to turn off each extension:
     DB_File            i_db
     DynaLoader         (Must always be included as a static extension)
     Fcntl              (Always included by default)
-    FileHandle         (Always included by default)
     GDBM_File          i_gdbm
     IO                 (Always included by default)
     NDBM_File          i_ndbm
@@ -626,6 +645,23 @@ various other operating systems.
 
 =back
 
+=head1 Binary Compatibility With 5.003
+
+Perl 5.003 turned on the EMBED feature by default, which tries to
+avoid possible symbol name conflict by prefixing all global symbols
+with "Perl_".  However, its list of global symbols was incomplete.
+This error has been rectified in Perl 5.004.
+
+However, some sites may need to maintain complete binary compatibility
+with Perl 5.003.  If you are building Perl for such a site, then after
+B<Configure> you should run these two commands:
+
+   perl old_embed.pl
+   sh old_perl_exp.SH
+
+These commands will make your new Perl as binary-compatible with
+version 5.003 as possible.
+
 =head1 make depend
 
 This will look for all the includes.
@@ -672,6 +708,13 @@ during the building of extensions, you should run
 
 to test your version of miniperl.
 
+=item locale
+
+If you have any locale-related environment variables set, try
+unsetting them.  I have some reports that some versions of IRIX hang
+while running B<./miniperl configpm> with locales other than the C
+locale.  See the discussion under L<make test> below about locales.
+
 =item *
 
 If you get duplicates upon linking for malloc et al, say -DHIDEMYMALLOC.
@@ -841,6 +884,11 @@ If you get syntax errors on '(', try -DCRIPPLED_CC.
 
 Machines with half-implemented dbm routines will need to #undef I_ODBM
 
+db-recno failure on tests 51, 53 and 55:  Old versions of the DB library
+(including the DB library which comes with FreeBSD 2.1) had broken
+handling of recno databases with modified bval settings.  Upgrade your
+DB library or OS.
+
 =back
 
 =head1 make test
@@ -864,15 +912,17 @@ may be broken due to the combination of your environment and the way
 C<make test> exercises them.  For example, this may happen if you have
 one or more of these environment variables set: C<LC_ALL LC_CTYPE
 LC_COLLATE LANG>.  In some versions of UNIX, the non-English locales
-are known to cause programs to exhibit mysterious errors.  If you have
-any of the above environment variables set, please try
-C<setenv LC_ALL C> (for C shell) or <LC_ALL=C;export LC_ALL>
-(for Bourne or Korn shell) from the command line and then retry C<make test>.
-If the tests then succeed, you may have a broken program that is confusing the
-testing. Please run the troublesome test by hand as shown above and
-see whether you can locate the program.  Look for things like: C<exec,
-`backquoted command`, system, open("|...")> or C<open("...|")>.
-All these mean that Perl is trying to run some external program.
+are known to cause programs to exhibit mysterious errors.
+
+If you have any of the above environment variables set, please try
+C<setenv LC_ALL C> (for C shell) or <LC_ALL=C;export LC_ALL> (for
+Bourne or Korn shell) from the command line and then retry C<make
+test>.  If the tests then succeed, you may have a broken program that
+is confusing the testing. Please run the troublesome test by hand as
+shown above and see whether you can locate the program.  Look for
+things like: C<exec, `backquoted command`, system, open("|...")> or
+C<open("...|")>.  All these mean that Perl is trying to run some
+external program.
 
 =head1 INSTALLING PERL5
 
@@ -1045,4 +1095,4 @@ from the original README by Larry Wall.
 
 =head1 LAST MODIFIED
 
-8 October 1996
+9 October 1996