X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=INSTALL;h=3aa80ca9b7e8c09ecb2b7c3c9b5605a23123684a;hb=453189b60dbb6e88d68de022c83a2a4ff03203fd;hp=f96102490260957d6823cdb447313d494cb93389;hpb=b2b23189a6e87ef8e3bbd5dfc9cc93945580dd22;p=p5sagit%2Fp5-mst-13.2.git diff --git a/INSTALL b/INSTALL index f961024..3aa80ca 100644 --- a/INSTALL +++ b/INSTALL @@ -85,7 +85,7 @@ extensions that have not been updated for the new naming convention with: perl Makefile.PL POLLUTE=1 - + Alternatively, you can enable CPP symbol pollution wholesale by building perl itself with: @@ -517,6 +517,23 @@ directories to add to @INC. By default, it will be empty. Perl will search these directories (including architecture and version-specific subdirectories) for add-on modules and extensions. +=item APPLLIB_EXP + +There is one other way of adding paths to @INC at perl build time, and +that is by setting the APPLLIB_EXP C pre-processor token to a colon- +separated list of directories, like this + + sh Configure -Accflags='-DAPPLLIB_EXP=\"/usr/libperl\"' + +The directories defined by APPLLIB_EXP get added to @INC I, +ahead of any others, and so provide a way to override the standard perl +modules should you, for example, want to distribute fixes without +touching the perl distribution proper. And, like otherlib dirs, +version and architecture specific subdirectories are also searched, if +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 Man Pages In versions 5.005_57 and earlier, the default was to store module man @@ -1131,6 +1148,39 @@ you have some libraries under /usr/local/ and others under =back +=head2 Building DB, NDBM, and ODBM interfaces with Berkeley DB 3 + +Perl interface for DB3 is part of Berkeley DB, but if you want to +compile standard Perl DB/ODBM/NDBM interfaces, you must follow +following instructions. + +Berkeley DB3 from Sleepycat Software is by default installed without +DB1 compatibility code (needed for DB_File interface) and without +links to compatibility files. So if you want to use packages written +for DB/ODBM/NDBM interfaces, you need to configure DB3 with +--enable-compat185 (and optionally with --enable-dump185) and create +additional references (suppose you are installing DB3 with +--prefix=/usr): + + ln -s libdb-3.so /usr/lib/libdbm.so + ln -s libdb-3.so /usr/lib/libndbm.so + echo '#define DB_DBM_HSEARCH 1' >dbm.h + echo '#include ' >>dbm.h + install -m 0644 dbm.h /usr/include/dbm.h + install -m 0644 dbm.h /usr/include/ndbm.h + +Optionally, if you have compiled with --enable-compat185 (not needed +for ODBM/NDBM): + + ln -s libdb-3.so /usr/lib/libdb1.so + ln -s libdb-3.so /usr/lib/libdb.so + +ODBM emulation seems not to be perfect, but is quite usable, +using DB 3.1.17: + + lib/odbm.............FAILED at test 9 + Failed 1/64 tests, 98.44% okay + =head2 What if it doesn't work? If you run into problems, try some of the following ideas. @@ -1397,36 +1447,6 @@ numbers and function name may vary in different versions of perl): it might well be a symptom of the gcc "varargs problem". See the previous L<"varargs"> item. -=item Solaris and SunOS dynamic loading - -If you have problems with dynamic loading using gcc on SunOS or -Solaris, and you are using GNU as and GNU ld, you may need to add --B/bin/ (for SunOS) or -B/usr/ccs/bin/ (for Solaris) to your -$ccflags, $ldflags, and $lddlflags so that the system's versions of as -and ld are used. Note that the trailing '/' is required. -Alternatively, you can use the GCC_EXEC_PREFIX -environment variable to ensure that Sun's as and ld are used. Consult -your gcc documentation for further information on the -B option and -the GCC_EXEC_PREFIX variable. - -One convenient way to ensure you are not using GNU as and ld is to -invoke Configure with - - sh Configure -Dcc='gcc -B/usr/ccs/bin/' - -for Solaris systems. For a SunOS system, you must use -B/bin/ -instead. - -Alternatively, recent versions of GNU ld reportedly work if you -include C<-Wl,-export-dynamic> in the ccdlflags variable in -config.sh. - -=item ld.so.1: ./perl: fatal: relocation error: - -If you get this message on SunOS or Solaris, and you're using gcc, -it's probably the GNU as or GNU ld problem in the previous item -L<"Solaris and SunOS dynamic loading">. - =item LD_LIBRARY_PATH If you run into dynamic loading problems, check your setting of @@ -1435,18 +1455,6 @@ Perl library (libperl.a rather than libperl.so) it should build fine with LD_LIBRARY_PATH unset, though that may depend on details of your local set-up. -=item dlopen: stub interception failed - -The primary cause of the 'dlopen: stub interception failed' message is -that the LD_LIBRARY_PATH environment variable includes a directory -which is a symlink to /usr/lib (such as /lib). - -The reason this causes a problem is quite subtle. The file libdl.so.1.0 -actually *only* contains functions which generate 'stub interception -failed' errors! The runtime linker intercepts links to -"/usr/lib/libdl.so.1.0" and links in internal implementation of those -functions instead. [Thanks to Tim Bunce for this explanation.] - =item nm extraction If Configure seems to be having trouble finding library functions, @@ -1632,24 +1640,11 @@ official site named at the start of this document. If you do find that any site is carrying a corrupted or incomplete source code archive, please report it to the site's maintainer. -This message can also be a symptom of using (say) a GNU tar compiled -for SunOS4 on Solaris. When you run SunOS4 binaries on Solaris the -run-time system magically alters pathnames matching m#lib/locale# - so -when tar tries to create lib/locale.pm a differently-named file gets -created instead. - -You may find the file under its assumed name and be able to rename it -back. Or use Sun's tar to do the extract. - =item invalid token: ## You are using a non-ANSI-compliant C compiler. See L. -=item lib/locale.pm: No such file or directory - -See L. - =item Miscellaneous Some additional things that have been reported for either perl4 or perl5: @@ -1831,12 +1826,17 @@ anything, you can run make install will install the following: + binaries + perl, perl5.nnn where nnn is the current release number. This will be a link to perl. suidperl, sperl5.nnn If you requested setuid emulation. a2p awk-to-perl translator + + scripts + cppstdin This is used by perl -P, if your cc -E can't read from stdin. c2ph, pstruct Scripts for handling C structures in header files. @@ -1849,13 +1849,21 @@ make install will install the following: pl2pm Convert Perl 4 .pl files to Perl 5 .pm modules pod2html, Converters from perl's pod documentation format pod2latex, to other useful formats. - pod2man, and - pod2text + pod2man, + pod2text, + pod2checker, + pod2select, + pod2usage splain Describe Perl warnings and errors dprofpp Perl code profile post-processor - library files in $privlib and $archlib specified to + library files + + in $privlib and $archlib specified to Configure, usually under /usr/local/lib/perl5/. + + documentation + man pages in $man1dir, usually /usr/local/man/man1. module man pages in $man3dir, usually /usr/local/man/man3. @@ -1864,11 +1872,28 @@ make install will install the following: Installperl will also create the directories listed above in L<"Installation Directories">. -Perl's *.h header files and the libperl.a library are also installed +Perl's *.h header files and the libperl library are also installed under $archlib so that any user may later build new modules, run the optional Perl compiler, or embed the perl interpreter into another program even if the Perl source is no longer available. +Sometimes you only want to install the version-specific parts of the perl +installation. For example, you may wish to install a newer version of +perl alongside an already installed production version of perl without +disabling installation of new modules for the production version. +To only install the version-specific parts of the perl installation, run + + Configure -Dversiononly + +or answer 'y' to the appropriate Configure prompt. Alternatively, +you can just manually run + + ./perl installperl -v + +and skip installman altogether. +See also L<"Maintaining completely separate versions"> for another +approach. + =head1 Coexistence with earlier versions of perl5 In general, you can usually safely upgrade from one version of Perl (e.g.