#!../miniperl
-# Written: 10 April 1996 Gary Ng (71564.1743@compuserve.com)
+# Create the export list for perl. Needed by WIN32 for creating perl.dll.
-# Create the export list for perl.
-# Needed by WIN32 for creating perl.dll
-# based on perl_exp.SH in the main perl distribution directory
-
-# This simple program relys on 'global.sym' being up to date
-# with all of the global symbols that a dynamicly link library
-# might want to access.
-
-# There is some symbol defined in global.sym and interp.sym
-# that does not present in the WIN32 port but there is no easy
-# way to find them so I just put a exception list here
+# reads global.sym, pp.sym, perlvars.h, intrpvar.h, thrdvar.h, config.h
my $CCTYPE = "MSVC"; # default
{
$define{$1} = 1 if /^\s*#\s*define\s+(MYMALLOC)\b/;
$define{$1} = 1 if /^\s*#\s*define\s+(USE_THREADS)\b/;
+ $define{$1} = 1 if /^\s*#\s*define\s+(MULTIPLICITY)\b/;
}
close(CFG);
PL_cryptseen
PL_DBcv
PL_generation
-PL_in_clean_all
-PL_in_clean_objs
PL_lastgotoprobe
PL_linestart
PL_modcount
PL_sortcxix
PL_sublex_info
PL_timesbuf
-Perl_block_type
-Perl_additem
-Perl_cast_ulong
-Perl_check_uni
-Perl_checkcomma
-Perl_chsize
-Perl_ck_aelem
-Perl_cx_dump
+Perl_do_exec3
Perl_do_ipcctl
Perl_do_ipcget
Perl_do_msgrcv
Perl_do_msgsnd
Perl_do_semop
Perl_do_shmio
-Perl_doeval
-Perl_dofindlabel
-Perl_dopoptoeval
-Perl_dump_eval
Perl_dump_fds
-Perl_dump_form
-Perl_dump_gv
Perl_dump_mstats
-Perl_dump_op
-Perl_dump_packsubs
-Perl_dump_pm
-Perl_dump_sub
-Perl_expectterm
-Perl_fetch_gv
-Perl_fetch_io
-Perl_force_ident
-Perl_force_next
-Perl_force_word
-Perl_hv_stashpv
-Perl_intuit_more
Perl_init_thread_intern
-Perl_know_next
-Perl_modkids
-Perl_mstats
Perl_my_bzero
Perl_my_htonl
Perl_my_ntohl
Perl_my_swap
Perl_my_chsize
-Perl_newXSUB
-Perl_no_fh_allowed
-Perl_no_op
-Perl_nointrp
-Perl_nomem
-Perl_pp_cswitch
-Perl_pp_entersubr
-Perl_pp_evalonce
-Perl_pp_interp
-Perl_pp_map
-Perl_pp_nswitch
-Perl_q
-Perl_reall_srchlen
Perl_same_dirent
-Perl_saw_return
-Perl_scan_const
-Perl_scan_formline
-Perl_scan_heredoc
-Perl_scan_ident
-Perl_scan_inputsymbol
-Perl_scan_pat
-Perl_scan_prefix
-Perl_scan_str
-Perl_scan_subst
-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_too_few_arguments
-Perl_too_many_arguments
Perl_unlnk
Perl_watch
-Perl_yyname
-Perl_yyrule
-allgvs
-curblock
-curcsv
-lastretstr
-mystack_mark
-perl_init_ext
-perl_requirepv
-stack
Perl_safexcalloc
Perl_safexmalloc
Perl_safexfree
if ($define{'MYMALLOC'})
{
- skip_symbols [qw(
- Perl_safefree
- Perl_safemalloc
- Perl_saferealloc
- Perl_safecalloc)];
emit_symbols [qw(
Perl_malloc
- Perl_free
+ Perl_mfree
Perl_realloc
Perl_calloc)];
}
PL_threadnum
PL_threadsv_names
PL_thrsv
-Perl_vtbl_mutex
+PL_vtbl_mutex
Perl_getTHR
Perl_setTHR
Perl_condpair_magic
Perl_find_threadsv
Perl_unlock_condpair
Perl_magic_mutexfree
-Perl_sv_iv
-Perl_sv_nv
-Perl_sv_true
-Perl_sv_uv
-Perl_sv_pvn
)];
}
Perl_debstackptrs
Perl_runops_debug
Perl_sv_peek
- Perl_watchaddr
- Perl_watchok)];
+ PL_block_type
+ PL_watchaddr
+ PL_watchok)];
}
if ($define{'HAVE_DES_FCRYPT'})
emit_symbols [qw(win32_crypt)];
}
-open (GLOBAL, "<../global.sym") || die "failed to open global.sym" . $!;
-while (<GLOBAL>)
+# functions from *.sym files
+
+for my $syms ('../global.sym','../pp.sym', '../globvar.sym')
{
- next if (!/^[A-Za-z]/);
- next if (/_amg[ \t]*$/);
- # All symbols have a Perl_ prefix because that's what embed.h
- # sticks in front of them.
- chomp($_);
- my $symbol = "Perl_$_";
- emit_symbol($symbol) unless exists $skip{$symbol};
+ open (GLOBAL, "<$syms") || die "failed to open $syms" . $!;
+ while (<GLOBAL>)
+ {
+ next if (!/^[A-Za-z]/);
+ # Functions have a Perl_ prefix
+ # Variables have a PL_ prefix
+ chomp($_);
+ my $symbol = ($syms =~ /var\.sym$/i ? "PL_" : "Perl_");
+ $symbol .= $_;
+ emit_symbol($symbol) unless exists $skip{$symbol};
+ }
+ close(GLOBAL);
}
-close(GLOBAL);
-# also add symbols from interp.sym
-# They are only needed if -DMULTIPLICITY is not set but it
-# doesn't hurt to include them anyway.
-# these don't have Perl prefix
+# variables
unless ($define{'PERL_GLOBAL_STRUCT'})
{
__DATA__
# extra globals not included above.
perl_init_i18nl10n
-perl_init_ext
perl_alloc
perl_atexit
perl_construct
win32_setprotoent
win32_setservent
win32_getenv
+win32_putenv
win32_perror
win32_setbuf
win32_setvbuf
win32_get_osfhandle
win32_ioctl
win32_utime
+win32_uname
win32_wait
win32_waitpid
win32_kill
win32_seekdir
win32_rewinddir
win32_closedir
+win32_longpath
Perl_win32_init
Perl_init_os_extras
Perl_getTHR