X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=INSTALL;h=3aa80ca9b7e8c09ecb2b7c3c9b5605a23123684a;hb=6d5d7abf5a8b730704df06d4203cb1dba3ba4523;hp=50e77732a4e700ada1997ba95321f595a363b3be;hpb=d56c570797c673478b3a116a0ec3f47317f46643;p=p5sagit%2Fp5-mst-13.2.git diff --git a/INSTALL b/INSTALL index 50e7773..3aa80ca 100644 --- a/INSTALL +++ b/INSTALL @@ -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: