Tru64 vs Berkeley DB
Jarkko Hietaniemi [Fri, 30 Aug 2002 06:56:38 +0000 (09:56 +0300)]
Message-Id: <20020830035638.GB874@lyta.hut.fi>

p4raw-id: //depot/perl@17808

README.tru64
hints/dec_osf.sh

index 877872c..ab21fe0 100644 (file)
@@ -63,6 +63,24 @@ patch is expected sometime after perl 5.8.0 is released.  If your libc
 has not yet been patched, you'll get a warning from Configure when
 selecting long doubles.
 
+=head2 db-hash.t failing on Tru64
+
+The Berkeley DB 1.85 coming with the Tru64 is unfortunately buggy.
+In general in Tru64 V4.* it seemed to be more stable, but in V5.*
+something broke (even though the DB stayed at release 1.85) and
+the DB_File extension test db-hash.t may fail by dumping core after
+the subtest 21.  There really is no good cure as of Tru64 V5.1A expect
+installing a newer Berkeley DB and supplying the right directories for
+-Dlocincpth=/some/include and -Dloclibpth=/some/lib when running Configure.
+
+You can also work around the problem by disabling the DB_File by
+specifying -Ui_db to Configure, and then using the BerkeleyFile module
+from CPAN instead of DB_File.  The BerkeleyFile works with Berkeley DB
+versions 2.* or greater.
+
+The Berkeley DB 4.0.14 has been tested with Tru64 V5.1A and found
+to work.  The latest Berkeley DB can be found from F<http://www.sleepycat.com>.
+
 =head2 64-bit Perl on Tru64
 
 In Tru64 Perl's integers are automatically 64-bit wide, there is
index b3872fa..8ef151e 100644 (file)
@@ -357,14 +357,10 @@ case "`/usr/sbin/sizer -v`" in
 *[1-4].0*) d_modfl=undef ;; # must wait till 5.0
 esac
 
-# Keep those leading tabs.
-       needusrshlib=''
+# Keep that leading tab.
        old_LD_LIBRARY_PATH=$LD_LIBRARY_PATH
 for p in $loclibpth
 do
-       if test -n "`ls $p/libdb.so* 2>/dev/null`"; then
-           needusrshlib=yes
-       fi
        if test -d $p; then
            echo "Appending $p to LD_LIBRARY_PATH." >& 4
            case "$LD_LIBRARY_PATH" in
@@ -377,14 +373,6 @@ case "$LD_LIBRARY_PATH" in
 "$old_LD_LIBRARY_PATH") ;;
 *) echo "LD_LIBRARY_PATH is now $LD_LIBRARY_PATH." >& 4 ;;
 esac
-# This is evil but I can't think of a nice workaround:
-# the /usr/shlib/libdb.so needs to be seen first,
-# or running Configure will fail.
-if test -n "$needusrshlib"; then
-    echo "Prepending /usr/shlib to loclibpth." >& 4
-    loclibpth="/usr/shlib $loclibpth"
-    echo "loclibpth is now $loclibpth." >& 4
-fi
 
 #
 # Unset temporary variables no more needed.