that you might not be able to. The installation directory is encoded
in the perl binary with the LD_RUN_PATH environment variable (or
equivalent ld command-line option). On Solaris, you can override that
-with LD_LIBRARY_PATH; on Linux you can't. On Digital Unix, you can
-override LD_LIBRARY_PATH by setting the _RLD_ROOT environment variable
-to point to the perl build directory.
+with LD_LIBRARY_PATH; on Linux, you can only override at runtime via
+LD_PRELOAD, specifying the exact filename you wish to be used; and on
+Digital Unix, you can override LD_LIBRARY_PATH by setting the
+_RLD_ROOT environment variable to point to the perl build directory.
The only reliable answer is that you should specify a different
directory for the architecture-dependent library for your -DDEBUGGING
does not allow its malloc functions to be fully replaced with custom
versions.
+=item -DPERL_DEBUGGING_MSTATS
+
+This flag enables debugging mstats, which is required to use the
+Devel::Peek::mstat() function. You cannot enable this unless you are
+using Perl's malloc, so a typical Configure command would be
+
+ sh Configure -DPERL_DEBUGGING_MSTATS -Dusemymalloc='y'
+
+to enable this option.
+
=back
=head2 Building a debugging perl
DynaLoader extension; you should just build the stub dl_none.xs
version. (Configure will suggest this as the default.)
-In summary, here are the Configure command-line variables you can set
-to turn off various extensions. All others are included by default.
+To disable certain extensions so that they are not built, use
+the -Dnoextensions=... and -Donlyextensions=... options. They both
+accept a space-separated list of extensions. The extensions listed
+in C<noextensions> are removed from the list of extensions to build,
+while the C<onlyextensions> is rather more severe and builds only
+the listed extensions. The latter should be used with extreme caution
+since certain extensions are used by many other extensions and modules:
+such modules include Fcntl and IO. The order of processing these
+options is first C<only> (if present), then C<no> (if present).
+
+Another, older way to turn off various extensions (which is still good
+to know if you have to work with older Perl) exists. Here are the
+Configure command-line variables you can set to turn off various
+extensions. All others are included by default.
DB_File i_db
DynaLoader (Must always be included as a static extension)
=item Bad arg length for semctl, is XX, should be ZZZ
-If you get this error message from the lib/ipc_sysv test, your System
+If you get this error message from the ext/IPC/SysV/t/sem test, your System
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
+=item ext/IPC/SysV/t/sem........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
UTS may need one or more of -K or -g, and undef LSTAT.
-FreeBSD can fail the lib/ipc_sysv.t test if SysV IPC has not been
+FreeBSD can fail the ext/IPC/SysV/t/sem.t test if SysV IPC has not been
configured in the kernel. Perl tries to detect this, though, and
you will get a message telling what to do.
functionality.
NOTE: Perl is routinely built using cross-compilation
- in the EPOC environment but the solutions from there
- can't directly be used elsewhere.
-
-The one environment where cross-compilation has successfully been used
-as of this writing is the Compaq iPAQ running ARM Linux. The build
-host was Intel Linux, the networking setup was PPP + SSH. The exact
-setup details are beyond the scope of this document, see
-http://www.handhelds.org/ for more information.
+ in the EPOC environment, in the WinCE, and in the OpenZaurus
+ project, but all those use something slightly different setup
+ than what described here. For the WinCE setup, read the
+ wince/README.compile. For the OpenZaurus setup, read the
+ Cross/README.
+
+The one environment where this cross-compilation setup has
+successfully been used as of this writing is the Compaq iPAQ running
+ARM Linux. The build host was Intel Linux, the networking setup was
+PPP + SSH. The exact setup details are beyond the scope of this
+document, see http://www.handhelds.org/ for more information.
To run Configure in cross-compilation mode the basic switch is
C<-Dusecrosscompile>.