X-Git-Url: https://perl5.git.perl.org/perl5.git/blobdiff_plain/6ac6a52b90121db9304782c76ae9243ce4205369..15871fce9413472c456f7af6b3953480020578b6:/perl.h diff --git a/perl.h b/perl.h index d6ccfa4..10fcd4b 100644 --- a/perl.h +++ b/perl.h @@ -815,6 +815,10 @@ int usleep(unsigned int); #define PERL_DONT_CREATE_GVSV #endif +#if !defined(HAS_WAITPID) && !defined(HAS_WAIT4) || defined(HAS_WAITPID_RUNTIME) +#define PERL_USES_PL_PIDSTATUS +#endif + /* Cannot include embed.h here on Win32 as win32.h has not yet been included and defines some config variables e.g. HAVE_INTERP_INTERN */ @@ -2687,7 +2691,7 @@ typedef pthread_key_t perl_key; if (MY_POSIX_EXIT) \ PL_statusvalue_vms = \ (C_FAC_POSIX | (evalue << 3 ) | (evalue == 1)? \ - (STS$K_ERROR | STS$M_INHIB_MSG) : 0); \ + (STS$K_ERROR | STS$M_INHIB_MSG) : 1); \ else \ PL_statusvalue_vms = SS$_ABORT; \ } else { /* forgive them Perl, for they have sinned */ \ @@ -2722,7 +2726,7 @@ typedef pthread_key_t perl_key; if (MY_POSIX_EXIT) \ PL_statusvalue_vms = \ (C_FAC_POSIX | (evalue << 3 ) | (evalue == 1)? \ - (STS$K_ERROR | STS$M_INHIB_MSG) : 0); \ + (STS$K_ERROR | STS$M_INHIB_MSG) : 1); \ else \ PL_statusvalue_vms = evalue ? evalue : SS$_NORMAL; \ set_vaxc_errno(PL_statusvalue_vms); \ @@ -2955,11 +2959,16 @@ typedef pthread_key_t perl_key; #ifndef IOCPARM_LEN # ifdef IOCPARM_MASK - /* on BSDish systes we're safe */ + /* on BSDish systems we're safe */ # define IOCPARM_LEN(x) (((x) >> 16) & IOCPARM_MASK) # else +# if defined(_IOC_SIZE) && defined(__GLIBC__) + /* on Linux systems we're safe */ +# define IOCPARM_LEN(x) _IOC_SIZE(x) +# else /* otherwise guess at what's safe */ -# define IOCPARM_LEN(x) 256 +# define IOCPARM_LEN(x) 256 +# endif # endif #endif @@ -5381,6 +5390,24 @@ extern void moncontrol(int); #pragma message disable (mainparm) /* Perl uses the envp in main(). */ #endif +#if !defined(OS2) && !defined(WIN32) && !defined(DJGPP) && !defined(EPOC) && !defined(__SYMBIAN32__) && !defined(MACOS_TRADITIONAL) +#define PERL_DEFAULT_DO_EXEC3_IMPLEMENTATION +#endif + +#define do_open(g, n, l, a, rm, rp, sf) \ + do_openn(g, n, l, a, rm, rp, sf, (SV **) NULL, 0) +#ifdef PERL_DEFAULT_DO_EXEC3_IMPLEMENTATION +# define do_exec(cmd) do_exec3(cmd,0,0) +#else +/* do_exec is a real function implemented in a platform specific file. */ +# define do_exec Perl_do_exec +#endif +#ifdef OS2 +# define do_aexec Perl_do_aexec +#else +# define do_aexec(really, mark,sp) do_aexec5(really, mark, sp, 0, 0) +#endif + /* and finally... */ #define PERL_PATCHLEVEL_H_IMPLICIT #include "patchlevel.h"