X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=win32%2Fmakedef.pl;h=222ce06e7ec3cd3b51d7e0b7941c9386f2a779d5;hb=e200fe592a4997f548ebec319b6bc13065a09d24;hp=acb60a892c55c2303f8db0caba4e98a5e069b9aa;hpb=4b556e6ce00fc77d7d2644507d0f76c5004f26de;p=p5sagit%2Fp5-mst-13.2.git diff --git a/win32/makedef.pl b/win32/makedef.pl index acb60a8..222ce06 100644 --- a/win32/makedef.pl +++ b/win32/makedef.pl @@ -33,12 +33,18 @@ close(CFG); warn join(' ',keys %define)."\n"; +if ($define{PERL_OBJECT}) { + print "LIBRARY PerlCore\n"; + print "DESCRIPTION 'Perl interpreter'\n"; + print "EXPORTS\n"; + output_symbol("perl_alloc"); + exit(0); +} + if ($CCTYPE ne 'GCC') { print "LIBRARY Perl\n"; print "DESCRIPTION 'Perl interpreter, export autogenerated'\n"; - print "CODE LOADONCALL\n"; - print "DATA LOADONCALL NONSHARED MULTIPLE\n"; } else { @@ -70,7 +76,18 @@ sub emit_symbols } skip_symbols [qw( -Perl_statusvalue_vms +PL_statusvalue_vms +PL_archpat_auto +PL_cryptseen +PL_DBcv +PL_generation +PL_lastgotoprobe +PL_linestart +PL_modcount +PL_pending_ident +PL_sortcxix +PL_sublex_info +PL_timesbuf Perl_block_type Perl_additem Perl_cast_ulong @@ -78,7 +95,6 @@ Perl_check_uni Perl_checkcomma Perl_chsize Perl_ck_aelem -Perl_cryptseen Perl_cx_dump Perl_do_ipcctl Perl_do_ipcget @@ -127,15 +143,7 @@ Perl_pp_interp Perl_pp_map Perl_pp_nswitch Perl_q -Perl_rcsid Perl_reall_srchlen -Perl_regdump -Perl_regfold -Perl_regmyendp -Perl_regmyp_size -Perl_regmystartp -Perl_regnarrate -Perl_regprop Perl_same_dirent Perl_saw_return Perl_scan_const @@ -151,11 +159,11 @@ Perl_scan_trans Perl_scan_word Perl_setenv_getix Perl_skipspace +Perl_sort_mutex Perl_sublex_done Perl_sublex_start Perl_sv_ref Perl_sv_setptrobj -Perl_timesbuf Perl_too_few_arguments Perl_too_many_arguments Perl_unlnk @@ -170,16 +178,15 @@ mystack_mark perl_init_ext perl_requirepv stack -statusvalue_vms Perl_safexcalloc Perl_safexmalloc Perl_safexfree Perl_safexrealloc Perl_my_memcmp Perl_my_memset -Perl_cshlen -Perl_cshname -Perl_opsave +PL_cshlen +PL_cshname +PL_opsave )]; @@ -196,42 +203,46 @@ if ($define{'MYMALLOC'}) Perl_realloc Perl_calloc)]; } +else + { + skip_symbols [qw( + Perl_malloced_size)]; + } unless ($define{'USE_THREADS'}) { skip_symbols [qw( +PL_thr_key +PL_sv_mutex +PL_strtab_mutex +PL_svref_mutex +PL_malloc_mutex +PL_cred_mutex +PL_eval_mutex +PL_eval_cond +PL_eval_owner +PL_threads_mutex +PL_nthreads +PL_nthreads_cond +PL_threadnum +PL_threadsv_names +PL_thrsv +Perl_vtbl_mutex +Perl_getTHR +Perl_setTHR Perl_condpair_magic -Perl_thr_key -Perl_sv_mutex -Perl_svref_mutex -Perl_malloc_mutex -Perl_eval_mutex -Perl_eval_cond -Perl_eval_owner -Perl_threads_mutex Perl_new_struct_thread -Perl_nthreads -Perl_nthreads_cond Perl_per_thread_magicals Perl_thread_create -Perl_threadnum Perl_find_threadsv -Perl_threadsv_names -Perl_thrsv Perl_unlock_condpair -Perl_vtbl_mutex Perl_magic_mutexfree -Perl_sv_iv -Perl_sv_nv -Perl_sv_true -Perl_sv_uv -Perl_sv_pvn -Perl_newRV_noinc)]; +)]; } unless ($define{'FAKE_THREADS'}) { - skip_symbols [qw(Perl_curthr)]; + skip_symbols [qw(PL_curthr)]; } sub readvar @@ -243,7 +254,7 @@ sub readvar { # All symbols have a Perl_ prefix because that's what embed.h # sticks in front of them. - push(@syms,"Perl_".$1) if (/\bPERLVARI?C?\([IGT](\w+)/); + push(@syms,"PL_".$1) if (/\bPERLVARI?C?\([IGT](\w+)/); } close(VARS); return \@syms; @@ -265,6 +276,8 @@ if ($define{'PERL_GLOBAL_STRUCT'}) { my $global = readvar("../perlvars.h"); skip_symbols $global; + emit_symbols [qw(Perl_GetVars)]; + emit_symbols [qw(PL_Vars PL_VarsPtr)] unless $CCTYPE eq 'GCC'; } unless ($define{'DEBUGGING'}) @@ -305,11 +318,7 @@ close(GLOBAL); # doesn't hurt to include them anyway. # these don't have Perl prefix -if ($define{'PERL_GLOBAL_STRUCT'}) - { - emit_symbol( ($CCTYPE eq 'GCC') ? 'Perl_GetVars' : 'Perl_VarsPtr') - } -else +unless ($define{'PERL_GLOBAL_STRUCT'}) { my $glob = readvar("../perlvars.h"); emit_symbols $glob; @@ -340,25 +349,7 @@ while () { foreach my $symbol (sort keys %export) { - if ($CCTYPE eq "BORLAND") { - # workaround Borland quirk by exporting both the straight - # name and a name with leading underscore. Note the - # alias *must* come after the symbol itself, if both - # are to be exported. (Linker bug?) - print "\t_$symbol\n"; - print "\t$symbol = _$symbol\n"; - } - elsif ($CCTYPE eq 'GCC') { - # Symbols have leading _ whole process is $%£"% slow - # so skip aliases for now - print "\t$symbol\n"; - } - else { - # for binary coexistence, export both the symbol and - # alias with leading underscore - print "\t$symbol\n"; - print "\t_$symbol = $symbol\n"; - } + output_symbol($symbol); } sub emit_symbol { @@ -367,6 +358,29 @@ sub emit_symbol { $export{$symbol} = 1; } +sub output_symbol { + my $symbol = shift; + if ($CCTYPE eq "BORLAND") { + # workaround Borland quirk by exporting both the straight + # name and a name with leading underscore. Note the + # alias *must* come after the symbol itself, if both + # are to be exported. (Linker bug?) + print "\t_$symbol\n"; + print "\t$symbol = _$symbol\n"; + } + elsif ($CCTYPE eq 'GCC') { + # Symbols have leading _ whole process is $%£"% slow + # so skip aliases for now + print "\t$symbol\n"; + } + else { + # for binary coexistence, export both the symbol and + # alias with leading underscore + print "\t$symbol\n"; + print "\t_$symbol = $symbol\n"; + } +} + 1; __DATA__ # extra globals not included above. @@ -434,6 +448,7 @@ win32_stat win32_pipe win32_popen win32_pclose +win32_rename win32_setmode win32_lseek win32_tell @@ -449,6 +464,7 @@ win32_mkdir win32_rmdir win32_chdir win32_flock +win32_execv win32_execvp win32_htons win32_ntohs @@ -518,7 +534,15 @@ win32_get_osfhandle win32_ioctl win32_utime win32_wait +win32_waitpid +win32_kill win32_str_os_error +win32_opendir +win32_readdir +win32_telldir +win32_seekdir +win32_rewinddir +win32_closedir Perl_win32_init Perl_init_os_extras Perl_getTHR