More de-cut-and-pastos.
[p5sagit/p5-mst-13.2.git] / INSTALL
diff --git a/INSTALL b/INSTALL
index 8360e1d..734483f 100644 (file)
--- a/INSTALL
+++ b/INSTALL
@@ -26,6 +26,13 @@ For information on what's new in this release, see the
 pod/perldelta.pod file.  For more detailed information about specific
 changes, see the Changes file.
 
+IMPORTANT NOTE:  5.005_53 and later releases do not export unadorned
+global symbols anymore.  This means most CPAN modules probably won't
+build under this release without adding '-DPERL_POLLUTE' to ccflags
+in config.sh.  This is not the default because we want the modules
+to get fixed *before* the 5.006 release.  pod/perldelta.pod contains
+additional notes about this.
+
 =head1 DESCRIPTION
 
 This document is written in pod format as an easy way to indicate its
@@ -62,7 +69,25 @@ The standard extensions supplied with Perl will be handled automatically.
 
 In a related issue, old extensions may possibly be affected by the
 changes in the Perl language in the current release.  Please see
-pod/perldelta.pod for a description of what's changed.
+pod/perldelta.pod (and pod/perl500Xdelta.pod) for a description of
+what's changed.
+
+=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 C<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
+in the Perl sources.  C<ansi2knr> is usually found as part of the freely
+available C<Ghostscript> distribution.  Another similar tool is
+C<unprotoize>, distributed with GCC.  Since C<unprotoize> requires GCC to
+run, you may have to run it on a platform where GCC is available, and move
+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.
 
 =head1 Space Requirements
 
@@ -472,23 +497,26 @@ that problem.
 
 If you need to install perl on many identical systems, it is
 convenient to compile it once and create an archive that can be
-installed on multiple systems.  Here's one way to do that:
+installed on multiple systems.  Suppose, for example, that you want to
+create an archive that can be installed in /opt/perl.
+Here's one way to do that:
 
     # Set up config.over to install perl into a different directory,
     # e.g. /tmp/perl5 (see previous part).
-    sh Configure -des
+    sh Configure -Dprefix=/opt/perl -des
     make
     make test
-    make install
+    make install   # This will install everything into /tmp/perl5.
     cd /tmp/perl5
-    # Edit $archlib/Config.pm to change all the
+    # Edit $archlib/Config.pm and $archlib/.packlist to change all the
     # install* variables back to reflect where everything will
-    # really be installed.
-    # Edit any of the scripts in $scriptdir to have the correct
+    # really be installed.  (That is, change /tmp/perl5 to /opt/perl
+    # everywhere in those files.)
+    # Check the scripts in $scriptdir to make sure they have the correct
     # #!/wherever/perl line.
     tar cvf ../perl5-archive.tar .
     # Then, on each machine where you want to install perl,
-    cd /usr/local  # Or wherever you specified as $prefix
+    cd /opt/perl # Or wherever you specified as $prefix
     tar xvf perl5-archive.tar
 
 =head2 Site-wide Policy settings
@@ -771,20 +799,10 @@ you can change a number of factors in the way perl is built
 by adding appropriate -D directives to your ccflags variable in
 config.sh.
 
-For example, you can replace the rand() and srand() functions in the
-perl source by any other random number generator by a trick such as the
-following (this should all be on one line):
-
-       sh Configure -Dccflags='-Dmy_rand=random -Dmy_srand=srandom' \
-               -Drandbits=31
-
-or you can use the drand48 family of functions with
-
-       sh Configure -Dccflags='-Dmy_rand=lrand48 -Dmy_srand=srand48' \
-               -Drandbits=31
-
-or by adding the -D flags to your ccflags at the appropriate Configure
-prompt.  (Read pp.c to see how this works.)
+Starting from Perl 5.005_53 you no more need to replace the rand() and
+srand() functions in the perl source by any other random number
+generator because Configure chooses the widest one available
+(drand48(), srandom(), or rand()).
 
 You should also run Configure interactively to verify that a hint file
 doesn't inadvertently override your ccflags setting.  (Hints files
@@ -1210,6 +1228,14 @@ V IPC may be broken.  The XX typically is 20, and that is what ZZZ
 also should be.  Consider upgrading your OS, or reconfiguring your OS
 to include the System V semaphores.
 
+=item lib/ipc_sysv........semget: No space left on device
+
+Either your account or the whole system has run out of semaphores.  Or
+both.  Either list the semaphores with "ipcs" and remove the unneeded
+ones (which ones these are depends on your system and applications)
+with "ipcrm -s SEMAPHORE_ID_HERE" or configure more semaphores to your
+system.
+
 =item Miscellaneous
 
 Some additional things that have been reported for either perl4 or perl5:
@@ -1220,8 +1246,9 @@ NCR Tower 32 (OS 2.01.01) may need -W2,-Sl,2000 and #undef MKDIR.
 
 UTS may need one or more of -DCRIPPLED_CC, -K or -g, and undef LSTAT.
 
-FreeBSD will fail the lib/ipc_sysv.t test if SysV IPC has not been
-configured to the kernel.
+FreeBSD can fail the lib/ipc_sysv.t test if SysV IPC has not been
+configured to the kernel.  Perl tries to detect this, though, and
+you will get a message telling what to do.
 
 If you get syntax errors on '(', try -DCRIPPLED_CC.