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
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
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
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
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:
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.