# perl.imp NetWare
# makedef.lis VMS
+use strict;
+use Config;
+
my $fold;
my %ARGS;
my %define;
BEGIN {
- BEGIN { unshift @INC, "lib" }
- use Config;
- use strict;
-
%ARGS = (CCTYPE => 'MSVC', TARG_DIR => '');
sub process_cc_flags {
}
}
-$define{PERL_IMPLICIT_CONTEXT} ||=
+$define{MULTIPLICITY} ||=
$define{USE_ITHREADS} ||
- $define{MULTIPLICITY} ;
+ $define{PERL_IMPLICIT_CONTEXT} ;
if ($define{USE_ITHREADS} && $ARGS{PLATFORM} ne 'win32' && $ARGS{PLATFORM} ne 'netware') {
$define{USE_REENTRANT_API} = 1;
# All platforms export boot_DynaLoader unconditionally.
my %export = ( boot_DynaLoader => 1 );
+# d_thread_local not perl_thread_local - see hints/darwin.sh
+++$export{PL_current_context}
+ if defined $Config{d_thread_local} && $define{USE_ITHREADS};
+
sub try_symbols {
foreach my $symbol (@_) {
++$export{$symbol} unless exists $skip{$symbol};
if ($ARGS{PLATFORM} ne 'os2') {
++$skip{$_} foreach qw(
- PL_cryptseen
PL_opsave
- Perl_GetVars
Perl_dump_fds
Perl_my_bcopy
Perl_my_bzero
);
}
-unless ($define{'PERL_IMPLICIT_CONTEXT'}) {
+unless ($define{'MULTIPLICITY'}) {
++$skip{$_} foreach qw(
PL_my_cxt_index
PL_my_cxt_list
if ($define{USE_THREAD_SAFE_LOCALE}) {
++$skip{PL_lc_numeric_mutex};
++$skip{PL_lc_numeric_mutex_depth};
- if (! $define{TS_W32_BROKEN_LOCALECONV}) {
- ++$skip{PL_locale_mutex};
- }
}
unless ($define{'USE_DTRACE'}) {
);
}
-unless ($define{'PERL_NEED_APPCTX'}) {
- ++$skip{PL_appctx};
-}
-
-unless ($define{'PERL_NEED_TIMESBASE'}) {
- ++$skip{PL_timesbase};
-}
-
unless ($define{'DEBUG_LEAKING_SCALARS'}) {
++$skip{PL_sv_serial};
}
++$skip{PL_memory_debug_header};
}
+unless ($define{'PERL_MEM_LOG'}) {
+ ++$skip{PL_mem_log};
+}
+
unless ($define{'MULTIPLICITY'}) {
++$skip{$_} foreach qw(
PL_interp_size
);
}
-unless ($define{'PERL_GLOBAL_STRUCT'}) {
- ++$skip{PL_global_struct_size};
-}
-
-unless ($define{'PERL_GLOBAL_STRUCT_PRIVATE'}) {
- ++$skip{$_} foreach qw(
- PL_my_cxt_keys
- PL_my_cxt_keys_size
- Perl_my_cxt_index
- );
-}
-
unless ($define{HAS_MMAP}) {
++$skip{PL_mmap_page_size};
}
++$skip{Perl_signbit};
}
-if ($define{'PERL_GLOBAL_STRUCT'}) {
- readvar('perlvars.h', \%skip);
- # This seems like the least ugly way to cope with the fact that PL_sh_path
- # is mentioned in perlvar.h and globvar.sym, and always exported.
- delete $skip{PL_sh_path};
- ++$export{Perl_GetVars};
- try_symbols(qw(PL_Vars PL_VarsPtr))
- unless $ARGS{CCTYPE} eq 'GCC' || $define{PERL_GLOBAL_STRUCT_PRIVATE};
-} else {
- ++$skip{$_} foreach qw(Perl_init_global_struct Perl_free_global_struct);
-}
-
++$skip{PL_op_exec_cnt}
unless $define{PERL_TRACE_OPS};
# variables
-if ($define{'MULTIPLICITY'} && $define{PERL_GLOBAL_STRUCT}) {
- readvar('perlvars.h', \%export, sub { "Perl_" . $_[1] . $_[2] . "_ptr" });
- # XXX AIX seems to want the perlvars.h symbols, for some reason
- if ($ARGS{PLATFORM} eq 'aix' or $ARGS{PLATFORM} eq 'os2') { # OS/2 needs PL_thr_key
- readvar('perlvars.h', \%export);
- }
-}
-else {
- unless ($define{'PERL_GLOBAL_STRUCT'}) {
- readvar('perlvars.h', \%export);
- }
- unless ($define{MULTIPLICITY}) {
- readvar('intrpvar.h', \%export);
- }
+readvar('perlvars.h', \%export);
+unless ($define{MULTIPLICITY}) {
+ readvar('intrpvar.h', \%export);
}
# Oddities from PerlIO
win32_puts
win32_getchar
win32_putchar
+ win32_symlink
+ win32_lstat
+ win32_readlink
));
}
elsif ($ARGS{PLATFORM} eq 'vms') {