assorted blead build help for VMS (mostly ithreads-related)
Craig A. Berry [Sun, 2 Oct 2005 21:45:20 +0000 (21:45 +0000)]
p4raw-id: //depot/perl@25680

configure.com
pp_sys.c
vms/gen_shrfls.pl
vms/vmsish.h

index 65b8fa3..f53a6bd 100644 (file)
@@ -4885,6 +4885,13 @@ $       echo4 "You did not specify that, so I am disabling symbolic link support
 $    ENDIF
 $  ENDIF
 $!
+$!
+$! Check for grp.h -- should be 7.3 and later, but test to be sure
+$!
+$ tmp = "grp.h"
+$ GOSUB inhdr
+$ i_grp = tmp
+$!
 $! VMS V7.3-2 powered options
 $! We know that it is only available for V7.3-2 and later on 64 bit platforms.
 $! Only implementing right now on 8.2 because that is what I am testing.
@@ -4895,6 +4902,8 @@ $  d_getgrnam_r = "undef"
 $  getgrnam_r_proto = "0"
 $  d_getpgid = "undef"
 $  d_getpgrp = "undef"
+$! N.B.  We already have home-grown thread-safe versions of
+$!       getpwnam and getpwuid -- no need to use CRTL versions
 $  d_getpwnam_r = "undef"
 $  getpwnam_r_proto = "0"
 $  d_getpwuid_r = "undef"
@@ -4916,10 +4925,6 @@ $!        FIXME: Need to find how to activate this.
 $!       d_getpgid = "define"
 $!       d_getpgrp = "define"
 $    endif
-$    d_getpwnam_r = "define"
-$    getpwnam_r_proto = "1"
-$    d_getpwuid_r = "define"
-$    getpwuid_r_proto = "1"
 $    d_setgrent = "define"
 $    d_ttyname_r = "define"
 $    ttyname_r_proto = "1"
@@ -6038,7 +6043,7 @@ $ WC "i_fcntl='" + i_fcntl + "'"
 $ WC "i_float='define'"
 $ WC "i_fp='undef'"
 $ WC "i_fp_class='undef'"
-$ WC "i_grp='undef'"
+$ WC "i_grp='" + i_grp + "'"
 $ WC "i_ieeefp='undef'"
 $ WC "i_inttypes='" + i_inttypes + "'"
 $ WC "i_langinfo='" + i_langinfo + "'"
index 12d2ac6..363c93b 100644 (file)
--- a/pp_sys.c
+++ b/pp_sys.c
@@ -87,7 +87,7 @@ extern int h_errno;
 #ifndef getpwent
   struct passwd *getpwent (void);
 #elif defined (VMS) && defined (my_getpwent)
-  struct passwd *Perl_my_getpwent (void);
+  struct passwd *Perl_my_getpwent (pTHX);
 #endif
 # endif
 #endif
index 6fb1bb9..2a94014 100644 (file)
@@ -153,7 +153,7 @@ sub scan_func {
   if ( $line =~ /(\w+)\s*\(/ ) {
     print "\troutine name is \\$1\\\n" if $debug > 1;
     if ($1 eq 'main' || $1 eq 'perl_init_ext' || $1 eq '__attribute__format__'
-        || (($1 eq 'Perl_stashpv_hvname_match') && ! $use_threads)) {
+        || $1 eq 'sizeof' || (($1 eq 'Perl_stashpv_hvname_match') && ! $use_threads)) {
       print "\tskipped\n" if $debug > 1;
     }
     else { $fcns{$1}++ }
@@ -182,7 +182,7 @@ if ($docc) {
 else {
   open(CPP,"$cpp_file") or die "$0: Can't read preprocessed file $cpp_file: $!\n";
 }
-%checkh = map { $_,1 } qw( thread bytecode byterun proto perlio perlvars intrpvar thrdvar );
+%checkh = map { $_,1 } qw( thread bytecode byterun proto perlapi perlio perlvars intrpvar thrdvar );
 $ckfunc = 0;
 LINE: while (<CPP>) {
   while (/^#.*vmsish\.h/i .. /^#.*perl\.h/i) {
index e4e9595..41b2bb2 100644 (file)
 #define my_fdopen               Perl_my_fdopen
 #define my_fclose               Perl_my_fclose
 #define my_fwrite              Perl_my_fwrite
-#define my_getpwent            Perl_my_getpwent
-#define my_endpwent            Perl_my_endpwent
+#define my_getpwent()          Perl_my_getpwent(aTHX)
+#define my_endpwent()          Perl_my_endpwent(aTHX)
 #define my_getlogin            Perl_my_getlogin
 #define init_os_extras Perl_init_os_extras
 
@@ -862,7 +862,7 @@ int    my_fwrite (const void *, size_t, size_t, FILE *);
 int    Perl_my_flush (pTHX_ FILE *);
 struct passwd *        Perl_my_getpwnam (pTHX_ const char *name);
 struct passwd *        Perl_my_getpwuid (pTHX_ Uid_t uid);
-void   my_endpwent (pTHX);
+void   Perl_my_endpwent (pTHX);
 char * my_getlogin (void);
 typedef char __VMS_SEPYTOTORP__;
 /* prototype section end marker; `typedef' passes through cpp */