integrate changes#3091-3094 from maint-5.005
Gurusamy Sarathy [Wed, 24 Mar 1999 10:01:56 +0000 (10:01 +0000)]
p4raw-link: @3091 on //depot/maint-5.005/perl: 74b502a1b27c7427d14366e729c0b76cb5ba79a6

p4raw-id: //depot/perl@3148
p4raw-integrated: from //depot/maint-5.005/perl@3147 'copy in'
vos/config_h.SH_orig (@2813..) README.hurd (@3093..) 'merge in'
vms/subconfigure.com (@2716..) vos/config.h (@2813..)

README.hurd
vms/subconfigure.com
vos/config.h
vos/config_h.SH_orig

index 2afa0e6..40e1ba9 100644 (file)
@@ -1,39 +1,40 @@
 Notes on Perl on the Hurd
-Last Updated: Fri, 12 Feb 1999 21:11:14 +0100
+Last Updated: Sat,  6 Mar 1999 16:07:59 +0100
 Written by: Mark Kettenis <kettenis@gnu.org>
 
-* Known Problems
+If you want to use Perl on the Hurd, I recommend using the Debian
+GNU/Hurd distribution (see http://www.debian.org), even if an
+official, stable release has not yet been made.  The old `gnu-0.2'
+binary distribution will most certainly have additional problems.
 
-There are several problems with Perl on the Hurd.  Most of them are
-related to bugs in the OS, some might be actual bugs in Perl.
+* Known Problems
 
-The database code has problems that make Perl crash.  When running the
-test-suite one of the tests will crash.  Note that on the Hurd when a
-program crashes, the crash server suspends the program.  Continuing
-the program will cause it to exit.
+The Perl testsuite may still report some errors on the Hurd.  The
+`lib/anydbm.t' and `op/stat.t' tests will most certainly fail.  The
+first fails because Berkeley DB 2 does not allow empty keys and the
+test tries to use them anyway.  This is not really a Hurd bug.  The
+same test fails on Linux with version 2.1 of the GNU C Library.  The
+second failure is caused by a bug in the Hurd's filesystem servers,
+that we have not been able to fix yet.  I don't think it is crucial.
 
 The socket tests may fail if the network is not configured.  You have
 to make `/hurd/pfinet' the translator for `/servers/socket/2', giving
 it the right arguments.  Try `/hurd/pfinet --help' for more
-information.  It seems that it is currently not possible to do this
-right when you do not have a supported network device.  Therefore all
-tests that use INET sockets fail on my system, suggesting that the
-`localhost' address may not be defined.
+information.
 
 Here are the statistics for Perl 5.005_03 on my system:
 
 Failed Test  Status Wstat Total Fail  Failed  List of failed
 -------------------------------------------------------------------------------
-lib/anydbm.t                 12    3  25.00%  1, 4, 9
-lib/db-btree.t    0    11    ??   ??       %  ??
-lib/db-hash.t   255 65280    62   42  67.74%  15, 22-62
-lib/db-recno.t    2   512    78   61  78.21%  17, 19-78
-lib/io_pipe.t                10   ??       %  ??
-lib/io_sock.t    46 11776     5    5 100.00%  1-5
-lib/io_udp.t     46 11776     3    3 100.00%  1-3
-lib/socket.t                  6    6 100.00%  1-6
+lib/anydbm.t                 12    1   8.33%  12
 op/stat.t                    58    1   1.72%  4
-op/time.t                     5    1  20.00%  2
 5 tests skipped, plus 14 subtests skipped.
-Failed 10/188 test scripts, 94.68% okay. 121/6467 subtests failed, 98.13% okay.
+Failed 2/189 test scripts, 98.94% okay. 2/6669 subtests failed, 99.97% okay.
+
+There are quite a few systems out there that do worse!
+
+However, since I am running a very recent Hurd snapshot, in which a lot of
+bugs that were exposed by the Perl testsuite have been fixed, you may
+encounter more failures.  Likely candidates are: `lib/io_pipe.t',
+`lib/io_sock.t', `lib/io_udp.t' and `lib/time.t'.
 
index 77dc15c..5f0c6a8 100644 (file)
@@ -73,6 +73,8 @@ $ perl_i_sysmman="undef"
 $ perl_d_telldirproto="define"
 $ perl_i_sysmount="undef"
 $ perl_d_fstatfs="undef"
+$ perl_i_machcthreads="undef"
+$ perl_i_pthread="define"
 $ perl_d_fstatvfs="undef"
 $ perl_d_statfsflags="undef"
 $ perl_i_sysstatvfs="undef"
@@ -3078,6 +3080,8 @@ $ WC "i_sysmount='" + perl_i_sysmount + "'"
 $ WC "d_fstatfs='" + perl_d_fstatfs + "'"
 $ WC "d_statfsflags='" + perl_d_statfsflags + "'"
 $ WC "i_sysstatvfs='" + perl_i_sysstatvfs + "'"
+$ WC "i_machcthreads='" + perl_i_machcthreads + "'"
+$ WC "i_pthread='" + perl_i_pthread + "'"
 $ WC "d_fstatvfs='" + perl_d_fstatvfs + "'"
 $ WC "i_mntent='" + perl_i_mntent + "'"
 $ WC "d_getmntent='" + perl_d_getmntent + "'"
index 7f4c1a2..bed1a98 100644 (file)
@@ -1,7 +1,7 @@
 /* This is config.h for Stratus VOS.  It was created by hand
    from the distribution copy of config_h.SH.  */
 
-/* Configuration time: September 4, 1998
+/* Configuration time: March 5, 1999
  * Configured by: Paul Green
  * Target system: Stratus VOS
  */
  *     This symbol is defined if the C compiler can cast negative
  *     or large floating point numbers to 32-bit ints.
  */
-#define        CASTI32         /**/
+/*#define      CASTI32         /**/
 
 /* CASTNEGFLOAT:
  *     This symbol is defined if the C compiler can cast negative
  */
 #define ARCHNAME "vos" /**/
 
+/* I_MACH_CTHREADS:
+ *    This symbol, if defined, indicates to the C program that it should
+ *    include <mach/cthreads.h>.
+ */
+/*#define      I_MACH_CTHREADS         /**/
+
+/* I_PTHREAD:
+ *    This symbol, if defined, indicates to the C program that it should
+ *    include <pthread.h>.
+ */
+/*#define   I_PTHREAD               /**/
+
 /* HAS_PTHREAD_YIELD:
  *     This symbol, if defined, indicates that the pthread_yield 
  *     routine is available to yield the execution of the current
index 49f86c7..819be2b 100755 (executable)
@@ -239,6 +239,54 @@ sed <<!GROK!THIS! >config.h -e 's!^#undef\(.*/\)\*!/\*#define\1 \*!' -e 's!^#un-
  */
 #$d_fsetpos HAS_FSETPOS        /**/
 
+/* I_SYS_MOUNT:
+ *     This symbol, if defined, indicates to the C program that it should
+ *     include <sys/mount.h>.
+ */
+#$i_sysmount I_SYS_MOUNT               /**/
+
+/* HAS_FSTATFS:
+ *     This symbol, if defined, indicates that the fstatfs routine is
+ *     available to stat the filesystem of a file descriptor.
+ */
+#$d_fstatfs HAS_FSTATFS        /**/
+
+/* HAS_STRUCT_STATFS_FLAGS:
+ *     This symbol, if defined, indicates that the struct statfs has
+ *     the f_flags member for mount flags.
+ */
+#$d_statfsflags HAS_STRUCT_STATFS_FLAGS        /**/
+
+/* I_SYS_STATVFS:
+ *     This symbol, if defined, indicates to the C program that it should
+ *     include <sys/statvfs.h>.
+ */
+#$i_sysstatvfs I_SYS_STATVFS           /**/
+
+/* HAS_FSTATVFS:
+ *     This symbol, if defined, indicates that the fstatvfs routine is
+ *     available to stat the filesystem of a file descriptor.
+ */
+#$d_fstatvfs HAS_FSTATVFS      /**/
+
+/* I_MNTENT:
+ *     This symbol, if defined, indicates to the C program that it should
+ *     include <mntent.h>.
+ */
+#$i_mntent I_MNTENT            /**/
+
+/* HAS_GETMNTENT:
+ *     This symbol, if defined, indicates that the getmntent routine is
+ *     available to lookup mount entries in some data base or other.
+ */
+#$d_getmntent HAS_GETMNTENT    /**/
+
+/* HAS_HASMNTOPT:
+ *     This symbol, if defined, indicates that the hasmntopt routine is
+ *     available to query mount entries returned by getmntent.
+ */
+#$d_hasmntopt HAS_HASMNTOPT    /**/
+
 /* HAS_GETTIMEOFDAY:
  *     This symbol, if defined, indicates that the gettimeofday() system
  *     call is available for a sub-second accuracy clock. Usually, the file
@@ -1813,7 +1861,7 @@ sed <<!GROK!THIS! >config.h -e 's!^#undef\(.*/\)\*!/\*#define\1 \*!' -e 's!^#un-
  *     the sig_name list.
  */
 #define SIG_NAME $sig_name_init                /**/
-#define SIG_NUM  $sig_num                      /**/
+#define SIG_NUM  $sig_num_init         /**/
 
 /* VOIDFLAGS:
  *     This symbol indicates how much support of the void type is given by this
@@ -1902,6 +1950,15 @@ sed <<!GROK!THIS! >config.h -e 's!^#undef\(.*/\)\*!/\*#define\1 \*!' -e 's!^#un-
 #define PRIVLIB "$privlib"             /**/
 #define PRIVLIB_EXP "$privlibexp"              /**/
 
+/* SELECT_MIN_BITS:
+ *     This symbol holds the minimum number of bits operated by select.
+ *     That is, if you do select(n, ...), how many bits at least will be
+ *     cleared in the masks if some activity is detected.  Usually this
+ *     is either n or 32*ceil(n/32), especially many little-endians do
+ *     the latter.  This is only useful if you have select(), naturally.
+ */
+#define SELECT_MIN_BITS        $selectminbits  /**/
+
 /* SITEARCH:
  *     This symbol contains the name of the private library for this package.
  *     The library is private in the sense that it needn't be in anyone's
@@ -2017,6 +2074,18 @@ sed <<!GROK!THIS! >config.h -e 's!^#undef\(.*/\)\*!/\*#define\1 \*!' -e 's!^#un-
  */
 #define ARCHNAME "$archname"           /**/
 
+/* I_MACH_CTHREADS:
+ *    This symbol, if defined, indicates to the C program that it should
+ *    include <mach/cthreads.h>.
+ */
+/*#define      I_MACH_CTHREADS         /**/
+
+/* I_PTHREAD:
+ *    This symbol, if defined, indicates to the C program that it should
+ *    include <pthread.h>.
+ */
+/*#define   I_PTHREAD                  /**/
+
 /* HAS_PTHREAD_YIELD:
  *     This symbol, if defined, indicates that the pthread_yield 
  *     routine is available to yield the execution of the current