pd |void |pad_fixup_inner_anons|PADLIST *padlist|CV *old_cv|CV *new_cv
pd |void |pad_push |PADLIST *padlist|int depth
-p |HV* |pad_compname_type|PADOFFSET po
+p |HV* |pad_compname_type|const PADOFFSET po
#if defined(PERL_IN_PAD_C) || defined(PERL_DECL_PROT)
sd |PADOFFSET|pad_findlex |const char *name|const CV* cv|U32 seq|int warn \
elsif ($PLATFORM =~ /^win(?:32|ce)$/ || $PLATFORM eq 'netware') {
$CCTYPE = "MSVC" unless defined $CCTYPE;
foreach ($thrdvar_h, $intrpvar_h, $perlvars_h, $global_sym,
- $pp_sym, $globvar_sym, $perlio_sym) {
+ $pp_sym, $globvar_sym, $perlio_sym) {
s!^!..\\!;
}
}
elsif ($PLATFORM eq 'MacOS') {
foreach ($thrdvar_h, $intrpvar_h, $perlvars_h, $global_sym,
- $pp_sym, $globvar_sym, $perlio_sym) {
+ $pp_sym, $globvar_sym, $perlio_sym) {
s!^!::!;
}
}
$_ = $1;
$define{$1} = 1 while /-D(\w+)/g;
}
+ if (/^(d_(?:mmap|sigaction))='(.+)'$/) {
+ $define{$1} = $2;
+ }
if ($PLATFORM eq 'os2') {
$CONFIG_ARGS = $1 if /^config_args='(.+)'$/;
$ARCHNAME = $1 if /^archname='(.+)'$/;
PL_timesbuf
main
Perl_ErrorNo
+ Perl_GetVars
Perl_do_exec3
Perl_do_ipcctl
Perl_do_ipcget
win32_spawnvp
main
Perl_ErrorNo
+ Perl_GetVars
Perl_do_exec3
Perl_do_ipcctl
Perl_do_ipcget
skip_symbols([qw(
Perl_dump_fds
Perl_ErrorNo
+ Perl_GetVars
Perl_my_bcopy
Perl_my_bzero
Perl_my_chsize
}
elsif ($PLATFORM eq 'MacOS') {
skip_symbols [qw(
+ Perl_GetVars
PL_cryptseen
PL_cshlen
PL_cshname
PL_timesbuf
main
Perl_ErrorNo
+ Perl_GetVars
Perl_do_exec3
Perl_do_ipcctl
Perl_do_ipcget
Perl_getenv_len
Perl_my_popen
Perl_my_pclose
+ PL_sig_sv
)];
}
else {
)];
}
-if ($define{'PERL_MALLOC_WRAP'}) {
- emit_symbols [qw(
- PL_memory_wrap
- )];
-}
-
-unless ($define{'HAS_MMAP'}) {
- skip_symbols [qw(
- PL_mmap_page_size
- )];
-}
-
-unless ($define{'HAS_TIMES'} || $define{'PERL_NEED_TIMESBASE'}) {
+unless ($define{'PERL_MALLOC_WRAP'}) {
skip_symbols [qw(
- PL_timesbase
- )];
-}
-
-unless ($define{'PERL_NEED_APPCTX'}) {
- skip_symbols [qw(
- PL_appctx
+ PL_memory_wrap
)];
}
)];
}
-if ($define{'PERL_IMPLICIT_CONTEXT'}) {
- skip_symbols [qw(
- PL_sig_sv
- )];
-}
-
unless ($define{'PERL_IMPLICIT_SYS'}) {
skip_symbols [qw(
perl_alloc_using
skip_symbols [qw(PL_curthr)];
}
-unless ($define{'FAKE_DEFAULT_SIGNAL_HANDLERS'}) {
+unless ($define{'PL_OP_SLAB_ALLOC'}) {
skip_symbols [qw(
- PL_sig_defaulting
- )];
+ PL_OpPtr
+ PL_OpSlab
+ PL_OpSpace
+ Perl_Slab_Alloc
+ Perl_Slab_Free
+ )];
+}
+
+unless ($define{'THREADS_HAVE_PIDS'}) {
+ skip_symbols [qw(PL_ppid)];
}
-unless ($define{'FAKE_PERSISTENT_SIGNAL_HANDLERS'}) {
+unless ($define{'PERL_NEED_APPCTX'}) {
skip_symbols [qw(
- PL_sig_ignoring
+ PL_appctx
)];
}
-unless ($define{'FAKE_DEFAULT_SIGNAL_HANDLERS'} ||
- $define{'FAKE_PERSISTENT_SIGNAL_HANDLERS'})
-{
+unless ($define{'PERL_NEED_TIMESBASE'}) {
skip_symbols [qw(
- PL_sig_handlers_initted
+ PL_timesbase
)];
}
-unless ($define{'PL_OP_SLAB_ALLOC'}) {
+unless ($define{'d_mmap'}) {
skip_symbols [qw(
- PL_OpPtr
- PL_OpSlab
- PL_OpSpace
- Perl_Slab_Alloc
- Perl_Slab_Free
- )];
+ PL_mmap_page_size
+ )];
}
-unless ($define{'THREADS_HAVE_PIDS'}) {
- skip_symbols [qw(PL_ppid)];
+if ($define{'d_sigaction'}) {
+ skip_symbols [qw(
+ PL_sig_trapped
+ )];
}
+if ($^O ne 'vms') {
+ # VMS does its own thing for these symbols.
+ skip_symbols [qw(PL_sig_handlers_initted
+ PL_sig_ignoring
+ PL_sig_defaulting)];
+}
+
sub readvar {
my $file = shift;
my $proc = shift || sub { "PL_$_[2]" };
my @syms;
while (<VARS>) {
# All symbols have a Perl_ prefix because that's what embed.h
- # sticks in front of them.
+ # sticks in front of them. The A?I?S?C? is strictly speaking
+ # wrong.
push(@syms, &$proc($1,$2,$3)) if (/\bPERLVAR(A?I?S?C?)\(([IGT])(\w+)/);
}
close(VARS);
return \@syms;
}
-unless ($define{'PERL_GLOBAL_STRUCT'}) {
- skip_symbols [qw(
- Perl_GetVars
- Perl_free_global_struct
- Perl_init_global_struct
- )];
-}
-
if ($define{'PERL_GLOBAL_STRUCT'}) {
my $global = readvar($perlvars_h);
skip_symbols $global;
emit_symbol('Perl_GetVars');
emit_symbols [qw(PL_Vars PL_VarsPtr)] unless $CCTYPE eq 'GCC';
+} else {
+ skip_symbols [qw(Perl_init_global_struct Perl_free_global_struct)];
}
# functions from *.sym files
} else {
# -Uuseperlio
# Skip the PerlIO layer symbols - although
- # nothing should have exported them any way
+ # nothing should have exported them anyway.
skip_symbols \@layer_syms;
skip_symbols [qw(PL_def_layerlist PL_known_layers PL_perlio)];
Signal_t Perl_csighandler(int sig);
-/* if you only have signal() and it resets on each signal, FAKE_PERSISTENT_SIGNAL_HANDLERS fixes */
-#if !defined(HAS_SIGACTION) && defined(VMS)
-# define FAKE_PERSISTENT_SIGNAL_HANDLERS
-#endif
-/* if we're doing kill() with sys$sigprc on VMS, FAKE_DEFAULT_SIGNAL_HANDLERS */
-#if defined(KILL_BY_SIGPRC)
-# define FAKE_DEFAULT_SIGNAL_HANDLERS
-#endif
-
static void restore_magic(pTHX_ const void *p);
static void unwind_handler_stack(pTHX_ const void *p);
I32
Perl_whichsig(pTHX_ const char *sig)
{
- register const char * const *sigv;
+ register char* const* sigv;
- for (sigv = PL_sig_name; *sigv; sigv++)
+ for (sigv = (char* const*)PL_sig_name; *sigv; sigv++)
if (strEQ(sig,*sigv))
- return PL_sig_num[sigv - PL_sig_name];
+ return PL_sig_num[sigv - (char* const*)PL_sig_name];
#ifdef SIGCLD
if (strEQ(sig,"CHLD"))
return SIGCLD;
for (; isALNUM(**s); (*s)++) ;
}
else if (givehelp) {
- const char **p = usage_msgd;
+ char **p = (char **)usage_msgd;
while (*p) PerlIO_printf(PerlIO_stdout(), "%s\n", *p++);
}
# ifdef EBCDIC
void *ptr;
} PerlExitListEntry;
+/* if you only have signal() and it resets on each signal, FAKE_PERSISTENT_SIGNAL_HANDLERS fixes */
+/* These have to be before perlvars.h */
+#if !defined(HAS_SIGACTION) && defined(VMS)
+# define FAKE_PERSISTENT_SIGNAL_HANDLERS
+#endif
+/* if we're doing kill() with sys$sigprc on VMS, FAKE_DEFAULT_SIGNAL_HANDLERS */
+#if defined(KILL_BY_SIGPRC)
+# define FAKE_DEFAULT_SIGNAL_HANDLERS
+#endif
+
#ifdef PERL_GLOBAL_STRUCT
struct perl_vars {
# include "perlvars.h"
PERLVARA(Gsig_ignoring, SIG_SIZE, int) /* which signals we are ignoring */
#endif
#ifdef FAKE_DEFAULT_SIGNAL_HANDLERS
-PERLVAR(Gsig_defaulting, SIG_SIZE, int)
+PERLVARA(Gsig_defaulting, SIG_SIZE, int)
#endif
#ifndef PERL_IMPLICIT_CONTEXT
return (m);
}
-
+#define TEMPSYM_INIT(symptr, p, e) \
+ STMT_START { \
+ (symptr)->patptr = p; \
+ (symptr)->patend = e; \
+ (symptr)->grpbeg = NULL; \
+ (symptr)->grpend = NULL; \
+ (symptr)->grpend = NULL; \
+ (symptr)->code = 0; \
+ (symptr)->length = 0; \
+ (symptr)->howlen = 0; \
+ (symptr)->level = 0; \
+ (symptr)->flags = FLAG_PACK; \
+ (symptr)->strbeg = 0; \
+ (symptr)->previous = NULL; \
+ } STMT_END
/*
=for apidoc pack_cat
void
Perl_pack_cat(pTHX_ SV *cat, char *pat, register char *patend, register SV **beglist, SV **endlist, SV ***next_in_list, U32 flags)
{
- tempsym_t sym = { pat, patend, NULL, NULL, 0, 0, 0, 0, FLAG_PACK, 0, NULL };
+ tempsym_t sym;
(void)next_in_list;
(void)flags;
+ TEMPSYM_INIT(&sym, pat, patend);
+
(void)pack_rec( cat, &sym, beglist, endlist );
}
Perl_packlist(pTHX_ SV *cat, char *pat, register char *patend, register SV **beglist, SV **endlist )
{
STRLEN no_len;
- tempsym_t sym = { pat, patend, NULL, NULL, 0, 0, 0, 0, FLAG_PACK, 0, NULL };
+ tempsym_t sym;
+
+ TEMPSYM_INIT(&sym, pat, patend);
/* We're going to do changes through SvPVX(cat). Make sure it's valid.
Also make sure any UTF8 flag is loaded */
PERL_CALLCONV void Perl_pad_fixup_inner_anons(pTHX_ PADLIST *padlist, CV *old_cv, CV *new_cv);
PERL_CALLCONV void Perl_pad_push(pTHX_ PADLIST *padlist, int depth);
-PERL_CALLCONV HV* Perl_pad_compname_type(pTHX_ PADOFFSET po);
+PERL_CALLCONV HV* Perl_pad_compname_type(pTHX_ const PADOFFSET po);
#if defined(PERL_IN_PAD_C) || defined(PERL_DECL_PROT)
STATIC PADOFFSET S_pad_findlex(pTHX_ const char *name, const CV* cv, U32 seq, int warn, SV** out_capture, SV** out_name_sv, int *out_flags);
struct debug_tokens *p;
SV* report = newSVpvn("<== ", 4);
- for (p = debug_tokens; p->token; p++) {
+ for (p = (struct debug_tokens *)debug_tokens; p->token; p++) {
if (p->token == (int)rv) {
name = p->name;
type = p->type;
# else
plvarsp = PL_VarsPtr;
# endif /* PERL_GLOBAL_STRUCT_PRIVATE */
+# undef PERLVAR
+# undef PERLVARA
+# undef PERLVARI
+# undef PERLVARIC
+# undef PERLVARISC
# define PERLVAR(var,type) /**/
# define PERLVARA(var,n,type) /**/
# define PERLVARI(var,type,init) plvarsp->var = init;