summaryrefslogtreecommitdiffstats
path: root/contrib/perl5/makedef.pl
diff options
context:
space:
mode:
Diffstat (limited to 'contrib/perl5/makedef.pl')
-rw-r--r--contrib/perl5/makedef.pl895
1 files changed, 0 insertions, 895 deletions
diff --git a/contrib/perl5/makedef.pl b/contrib/perl5/makedef.pl
deleted file mode 100644
index e983967..0000000
--- a/contrib/perl5/makedef.pl
+++ /dev/null
@@ -1,895 +0,0 @@
-#
-# Create the export list for perl.
-#
-# Needed by WIN32 and OS/2 for creating perl.dll
-# and by AIX for creating libperl.a when -Dusershrplib is in effect.
-#
-# reads global.sym, pp.sym, perlvars.h, intrpvar.h, thrdvar.h, config.h
-# On OS/2 reads miniperl.map as well
-
-my $PLATFORM;
-my $CCTYPE;
-
-my %bincompat5005 =
- (
- Perl_call_atexit => "perl_atexit",
- Perl_eval_sv => "perl_eval_sv",
- Perl_eval_pv => "perl_eval_pv",
- Perl_call_argv => "perl_call_argv",
- Perl_call_method => "perl_call_method",
- Perl_call_pv => "perl_call_pv",
- Perl_call_sv => "perl_call_sv",
- Perl_get_av => "perl_get_av",
- Perl_get_cv => "perl_get_cv",
- Perl_get_hv => "perl_get_hv",
- Perl_get_sv => "perl_get_sv",
- Perl_init_i18nl10n => "perl_init_i18nl10n",
- Perl_init_i18nl14n => "perl_init_i18nl14n",
- Perl_new_collate => "perl_new_collate",
- Perl_new_ctype => "perl_new_ctype",
- Perl_new_numeric => "perl_new_numeric",
- Perl_require_pv => "perl_require_pv",
- Perl_safesyscalloc => "Perl_safecalloc",
- Perl_safesysfree => "Perl_safefree",
- Perl_safesysmalloc => "Perl_safemalloc",
- Perl_safesysrealloc => "Perl_saferealloc",
- Perl_set_numeric_local => "perl_set_numeric_local",
- Perl_set_numeric_standard => "perl_set_numeric_standard",
- Perl_malloc => "malloc",
- Perl_mfree => "free",
- Perl_realloc => "realloc",
- Perl_calloc => "calloc",
- );
-
-my $bincompat5005 = join("|", keys %bincompat5005);
-
-while (@ARGV) {
- my $flag = shift;
- $define{$1} = 1 if ($flag =~ /^-D(\w+)$/);
- $define{$1} = $2 if ($flag =~ /^-D(\w+)=(.+)$/);
- $CCTYPE = $1 if ($flag =~ /^CCTYPE=(\w+)$/);
- $PLATFORM = $1 if ($flag =~ /^PLATFORM=(\w+)$/);
-}
-
-my @PLATFORM = qw(aix win32 os2 MacOS);
-my %PLATFORM;
-@PLATFORM{@PLATFORM} = ();
-
-defined $PLATFORM || die "PLATFORM undefined, must be one of: @PLATFORM\n";
-exists $PLATFORM{$PLATFORM} || die "PLATFORM must be one of: @PLATFORM\n";
-
-my $config_sh = "config.sh";
-my $config_h = "config.h";
-my $thrdvar_h = "thrdvar.h";
-my $intrpvar_h = "intrpvar.h";
-my $perlvars_h = "perlvars.h";
-my $global_sym = "global.sym";
-my $pp_sym = "pp.sym";
-my $globvar_sym = "globvar.sym";
-my $perlio_sym = "perlio.sym";
-
-if ($PLATFORM eq 'aix') {
- # Nothing for now.
-}
-elsif ($PLATFORM eq 'win32') {
- $CCTYPE = "MSVC" unless defined $CCTYPE;
- foreach ($thrdvar_h, $intrpvar_h, $perlvars_h, $global_sym, $pp_sym, $globvar_sym) {
- s!^!..\\!;
- }
-}
-elsif ($PLATFORM eq 'MacOS') {
- foreach ($thrdvar_h, $intrpvar_h, $perlvars_h, $global_sym,
- $pp_sym, $globvar_sym, $perlio_sym) {
- s!^!::!;
- }
-}
-
-unless ($PLATFORM eq 'win32' || $PLATFORM eq 'MacOS') {
- open(CFG,$config_sh) || die "Cannot open $config_sh: $!\n";
- while (<CFG>) {
- if (/^(?:ccflags|optimize)='(.+)'$/) {
- $_ = $1;
- $define{$1} = 1 while /-D(\w+)/g;
- }
- if ($PLATFORM eq 'os2') {
- $CONFIG_ARGS = $1 if /^(?:config_args)='(.+)'$/;
- $ARCHNAME = $1 if /^(?:archname)='(.+)'$/;
- }
- }
- close(CFG);
-}
-
-open(CFG,$config_h) || die "Cannot open $config_h: $!\n";
-while (<CFG>) {
- $define{$1} = 1 if /^\s*#\s*define\s+(MYMALLOC)\b/;
- $define{$1} = 1 if /^\s*#\s*define\s+(USE_5005THREADS)\b/;
- $define{$1} = 1 if /^\s*#\s*define\s+(USE_ITHREADS)\b/;
- $define{$1} = 1 if /^\s*#\s*define\s+(USE_PERLIO)\b/;
- $define{$1} = 1 if /^\s*#\s*define\s+(USE_SFIO)\b/;
- $define{$1} = 1 if /^\s*#\s*define\s+(MULTIPLICITY)\b/;
- $define{$1} = 1 if /^\s*#\s*define\s+(PERL_IMPLICIT_SYS)\b/;
- $define{$1} = 1 if /^\s*#\s*define\s+(PERL_BINCOMPAT_5005)\b/;
-}
-close(CFG);
-
-# perl.h logic duplication begins
-
-if ($define{USE_ITHREADS}) {
- if (!$define{MULTIPLICITY} && !$define{PERL_OBJECT}) {
- $define{MULTIPLICITY} = 1;
- }
-}
-
-$define{PERL_IMPLICIT_CONTEXT} ||=
- $define{USE_ITHREADS} ||
- $define{USE_5005THREADS} ||
- $define{MULTIPLICITY} ;
-
-if ($define{PERL_CAPI}) {
- delete $define{PERL_OBJECT};
- $define{MULTIPLICITY} = 1;
- $define{PERL_IMPLICIT_CONTEXT} = 1;
- $define{PERL_IMPLICIT_SYS} = 1;
-}
-
-if ($define{PERL_OBJECT}) {
- $define{PERL_IMPLICIT_CONTEXT} = 1;
- $define{PERL_IMPLICIT_SYS} = 1;
-}
-
-# perl.h logic duplication ends
-
-if ($PLATFORM eq 'win32') {
- warn join(' ',keys %define)."\n";
- print "LIBRARY Perl56\n";
- print "DESCRIPTION 'Perl interpreter'\n";
- print "EXPORTS\n";
- if ($define{PERL_IMPLICIT_SYS}) {
- output_symbol("perl_get_host_info");
- output_symbol("perl_alloc_override");
- }
-}
-elsif ($PLATFORM eq 'os2') {
- ($v = $]) =~ s/(\d\.\d\d\d)(\d\d)$/$1_$2/;
- $v .= '-thread' if $ARCHNAME =~ /-thread/;
- #$sum = 0;
- #for (split //, $v) {
- # $sum = ($sum * 33) + ord;
- # $sum &= 0xffffff;
- #}
- #$sum += $sum >> 5;
- #$sum &= 0xffff;
- #$sum = printf '%X', $sum;
- ($dll = $define{PERL_DLL}) =~ s/\.dll$//i;
- # print STDERR "'$dll' <= '$define{PERL_DLL}'\n";
- print <<"---EOP---";
-LIBRARY '$dll' INITINSTANCE TERMINSTANCE
-DESCRIPTION '\@#perl5-porters\@perl.org:$v#\@ Perl interpreter'
-STACKSIZE 32768
-CODE LOADONCALL
-DATA LOADONCALL NONSHARED MULTIPLE
-EXPORTS
----EOP---
-}
-elsif ($PLATFORM eq 'aix') {
- print "#!\n";
-}
-
-my %skip;
-my %export;
-
-sub skip_symbols {
- my $list = shift;
- foreach my $symbol (@$list) {
- $skip{$symbol} = 1;
- }
-}
-
-sub emit_symbols {
- my $list = shift;
- foreach my $symbol (@$list) {
- my $skipsym = $symbol;
- # XXX hack
- if ($define{PERL_OBJECT} || $define{MULTIPLICITY}) {
- $skipsym =~ s/^Perl_[GIT](\w+)_ptr$/PL_$1/;
- }
- emit_symbol($symbol) unless exists $skip{$skipsym};
- }
-}
-
-if ($PLATFORM eq 'win32') {
- skip_symbols [qw(
- 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
- main
- Perl_ErrorNo
- Perl_GetVars
- Perl_do_exec3
- Perl_do_ipcctl
- Perl_do_ipcget
- Perl_do_msgrcv
- Perl_do_msgsnd
- Perl_do_semop
- Perl_do_shmio
- Perl_dump_fds
- Perl_init_thread_intern
- Perl_my_bzero
- Perl_my_htonl
- Perl_my_ntohl
- Perl_my_swap
- Perl_my_chsize
- Perl_same_dirent
- Perl_setenv_getix
- Perl_unlnk
- Perl_watch
- Perl_safexcalloc
- Perl_safexmalloc
- Perl_safexfree
- Perl_safexrealloc
- Perl_my_memcmp
- Perl_my_memset
- PL_cshlen
- PL_cshname
- PL_opsave
- Perl_do_exec
- Perl_getenv_len
- Perl_my_pclose
- Perl_my_popen
- )];
-}
-elsif ($PLATFORM eq 'aix') {
- skip_symbols([qw(
- Perl_dump_fds
- Perl_ErrorNo
- Perl_GetVars
- Perl_my_bcopy
- Perl_my_bzero
- Perl_my_chsize
- Perl_my_htonl
- Perl_my_memcmp
- Perl_my_memset
- Perl_my_ntohl
- Perl_my_swap
- Perl_safexcalloc
- Perl_safexfree
- Perl_safexmalloc
- Perl_safexrealloc
- Perl_same_dirent
- Perl_unlnk
- Perl_sys_intern_clear
- Perl_sys_intern_dup
- Perl_sys_intern_init
- PL_cryptseen
- PL_opsave
- PL_statusvalue_vms
- PL_sys_intern
- )]);
-}
-elsif ($PLATFORM eq 'os2') {
- emit_symbols([qw(
- ctermid
- get_sysinfo
- Perl_OS2_init
- OS2_Perl_data
- dlopen
- dlsym
- dlerror
- dlclose
- my_tmpfile
- my_tmpnam
- my_flock
- my_rmdir
- my_mkdir
- malloc_mutex
- threads_mutex
- nthreads
- nthreads_cond
- os2_cond_wait
- os2_stat
- pthread_join
- pthread_create
- pthread_detach
- XS_Cwd_change_drive
- XS_Cwd_current_drive
- XS_Cwd_extLibpath
- XS_Cwd_extLibpath_set
- XS_Cwd_sys_abspath
- XS_Cwd_sys_chdir
- XS_Cwd_sys_cwd
- XS_Cwd_sys_is_absolute
- XS_Cwd_sys_is_relative
- XS_Cwd_sys_is_rooted
- XS_DynaLoader_mod2fname
- XS_File__Copy_syscopy
- Perl_Register_MQ
- Perl_Deregister_MQ
- Perl_Serve_Messages
- Perl_Process_Messages
- init_PMWIN_entries
- PMWIN_entries
- Perl_hab_GET
- )]);
-}
-elsif ($PLATFORM eq 'MacOS') {
- skip_symbols [qw(
- Perl_GetVars
- PL_cryptseen
- PL_cshlen
- PL_cshname
- PL_statusvalue_vms
- PL_sys_intern
- PL_opsave
- PL_timesbuf
- Perl_dump_fds
- Perl_my_bcopy
- Perl_my_bzero
- Perl_my_chsize
- Perl_my_htonl
- Perl_my_memcmp
- Perl_my_memset
- Perl_my_ntohl
- Perl_my_swap
- Perl_safexcalloc
- Perl_safexfree
- Perl_safexmalloc
- Perl_safexrealloc
- Perl_unlnk
- Perl_sys_intern_clear
- Perl_sys_intern_init
- )];
-}
-
-
-unless ($define{'DEBUGGING'}) {
- skip_symbols [qw(
- Perl_deb_growlevel
- Perl_debop
- Perl_debprofdump
- Perl_debstack
- Perl_debstackptrs
- Perl_runops_debug
- Perl_sv_peek
- PL_block_type
- PL_watchaddr
- PL_watchok
- )];
-}
-
-if ($define{'PERL_IMPLICIT_SYS'}) {
- skip_symbols [qw(
- Perl_getenv_len
- Perl_my_popen
- Perl_my_pclose
- )];
-}
-else {
- skip_symbols [qw(
- PL_Mem
- PL_MemShared
- PL_MemParse
- PL_Env
- PL_StdIO
- PL_LIO
- PL_Dir
- PL_Sock
- PL_Proc
- )];
-}
-
-unless ($define{'PERL_FLEXIBLE_EXCEPTIONS'}) {
- skip_symbols [qw(
- PL_protect
- Perl_default_protect
- Perl_vdefault_protect
- )];
-}
-
-if ($define{'MYMALLOC'}) {
- emit_symbols [qw(
- Perl_dump_mstats
- Perl_get_mstats
- Perl_malloc
- Perl_mfree
- Perl_realloc
- Perl_calloc
- Perl_strdup
- Perl_putenv
- )];
- if ($define{'USE_5005THREADS'} || $define{'USE_ITHREADS'}) {
- emit_symbols [qw(
- PL_malloc_mutex
- )];
- }
- else {
- skip_symbols [qw(
- PL_malloc_mutex
- )];
- }
-}
-else {
- skip_symbols [qw(
- PL_malloc_mutex
- Perl_dump_mstats
- Perl_get_mstats
- Perl_malloc
- Perl_mfree
- Perl_realloc
- Perl_calloc
- Perl_malloced_size
- )];
-}
-
-unless ($define{'USE_5005THREADS'} || $define{'USE_ITHREADS'}) {
- skip_symbols [qw(
- PL_thr_key
- )];
-}
-
-unless ($define{'USE_5005THREADS'}) {
- skip_symbols [qw(
- PL_sv_mutex
- PL_strtab_mutex
- PL_svref_mutex
- PL_cred_mutex
- PL_eval_mutex
- PL_fdpid_mutex
- PL_sv_lock_mutex
- PL_eval_cond
- PL_eval_owner
- PL_threads_mutex
- PL_nthreads
- PL_nthreads_cond
- PL_threadnum
- PL_threadsv_names
- PL_thrsv
- PL_vtbl_mutex
- Perl_condpair_magic
- Perl_new_struct_thread
- Perl_per_thread_magicals
- Perl_thread_create
- Perl_find_threadsv
- Perl_unlock_condpair
- Perl_magic_mutexfree
- Perl_sv_lock
- )];
-}
-
-unless ($define{'USE_ITHREADS'}) {
- skip_symbols [qw(
- PL_ptr_table
- PL_op_mutex
- Perl_dirp_dup
- Perl_cx_dup
- Perl_si_dup
- Perl_any_dup
- Perl_ss_dup
- Perl_fp_dup
- Perl_gp_dup
- Perl_he_dup
- Perl_mg_dup
- Perl_re_dup
- Perl_sv_dup
- Perl_sys_intern_dup
- Perl_ptr_table_fetch
- Perl_ptr_table_new
- Perl_ptr_table_split
- Perl_ptr_table_store
- Perl_ptr_table_clear
- Perl_ptr_table_free
- perl_clone
- perl_clone_using
- )];
-}
-
-unless ($define{'PERL_IMPLICIT_CONTEXT'}) {
- skip_symbols [qw(
- Perl_croak_nocontext
- Perl_die_nocontext
- Perl_deb_nocontext
- Perl_form_nocontext
- Perl_load_module_nocontext
- Perl_mess_nocontext
- Perl_warn_nocontext
- Perl_warner_nocontext
- Perl_newSVpvf_nocontext
- Perl_sv_catpvf_nocontext
- Perl_sv_setpvf_nocontext
- Perl_sv_catpvf_mg_nocontext
- Perl_sv_setpvf_mg_nocontext
- )];
-}
-
-unless ($define{'PERL_IMPLICIT_SYS'}) {
- skip_symbols [qw(
- perl_alloc_using
- perl_clone_using
- )];
-}
-
-unless ($define{'FAKE_THREADS'}) {
- skip_symbols [qw(PL_curthr)];
-}
-
-sub readvar {
- my $file = shift;
- my $proc = shift || sub { "PL_$_[2]" };
- open(VARS,$file) || die "Cannot open $file: $!\n";
- my @syms;
- while (<VARS>) {
- # All symbols have a Perl_ prefix because that's what embed.h
- # sticks in front of them.
- push(@syms, &$proc($1,$2,$3)) if (/\bPERLVAR(A?I?C?)\(([IGT])(\w+)/);
- }
- close(VARS);
- return \@syms;
-}
-
-if ($define{'USE_5005THREADS'}) {
- my $thrd = readvar($thrdvar_h);
- skip_symbols $thrd;
-}
-
-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';
-}
-
-# functions from *.sym files
-
-my @syms = ($global_sym, $globvar_sym); # $pp_sym is not part of the API
-
-if ($define{'USE_PERLIO'}) {
- push @syms, $perlio_sym;
- if ($define{'USE_SFIO'}) {
- # SFIO defines most of the PerlIO routines as macros
- skip_symbols [qw(
- PerlIO_canset_cnt
- PerlIO_clearerr
- PerlIO_close
- PerlIO_eof
- PerlIO_error
- PerlIO_exportFILE
- PerlIO_fast_gets
- PerlIO_fdopen
- PerlIO_fileno
- PerlIO_findFILE
- PerlIO_flush
- PerlIO_get_base
- PerlIO_get_bufsiz
- PerlIO_get_cnt
- PerlIO_get_ptr
- PerlIO_getc
- PerlIO_getname
- PerlIO_has_base
- PerlIO_has_cntptr
- PerlIO_importFILE
- PerlIO_open
- PerlIO_printf
- PerlIO_putc
- PerlIO_puts
- PerlIO_read
- PerlIO_releaseFILE
- PerlIO_reopen
- PerlIO_rewind
- PerlIO_seek
- PerlIO_set_cnt
- PerlIO_set_ptrcnt
- PerlIO_setlinebuf
- PerlIO_sprintf
- PerlIO_stderr
- PerlIO_stdin
- PerlIO_stdout
- PerlIO_stdoutf
- PerlIO_tell
- PerlIO_ungetc
- PerlIO_vprintf
- PerlIO_write
- )];
- }
-}
-
-for my $syms (@syms) {
- open (GLOBAL, "<$syms") || die "failed to open $syms: $!\n";
- 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_" : "");
- $symbol .= $_;
- emit_symbol($symbol) unless exists $skip{$symbol};
- }
- close(GLOBAL);
-}
-
-# variables
-
-if ($define{'PERL_OBJECT'} || $define{'MULTIPLICITY'}) {
- for my $f ($perlvars_h, $intrpvar_h, $thrdvar_h) {
- my $glob = readvar($f, sub { "Perl_" . $_[1] . $_[2] . "_ptr" });
- emit_symbols $glob;
- }
- # XXX AIX seems to want the perlvars.h symbols, for some reason
- if ($PLATFORM eq 'aix') {
- my $glob = readvar($perlvars_h);
- emit_symbols $glob;
- }
-}
-else {
- unless ($define{'PERL_GLOBAL_STRUCT'}) {
- my $glob = readvar($perlvars_h);
- emit_symbols $glob;
- }
- unless ($define{'MULTIPLICITY'}) {
- my $glob = readvar($intrpvar_h);
- emit_symbols $glob;
- }
- unless ($define{'MULTIPLICITY'} || $define{'USE_5005THREADS'}) {
- my $glob = readvar($thrdvar_h);
- emit_symbols $glob;
- }
-}
-
-sub try_symbol {
- my $symbol = shift;
-
- return if $symbol !~ /^[A-Za-z]/;
- return if $symbol =~ /^\#/;
- $symbol =~s/\r//g;
- chomp($symbol);
- return if exists $skip{$symbol};
- emit_symbol($symbol);
-}
-
-while (<DATA>) {
- try_symbol($_);
-}
-
-if ($PLATFORM eq 'win32') {
- foreach my $symbol (qw(
- boot_DynaLoader
- Perl_init_os_extras
- Perl_thread_create
- Perl_win32_init
- RunPerl
- win32_errno
- win32_environ
- win32_stdin
- win32_stdout
- win32_stderr
- win32_ferror
- win32_feof
- win32_strerror
- win32_fprintf
- win32_printf
- win32_vfprintf
- win32_vprintf
- win32_fread
- win32_fwrite
- win32_fopen
- win32_fdopen
- win32_freopen
- win32_fclose
- win32_fputs
- win32_fputc
- win32_ungetc
- win32_getc
- win32_fileno
- win32_clearerr
- win32_fflush
- win32_ftell
- win32_fseek
- win32_fgetpos
- win32_fsetpos
- win32_rewind
- win32_tmpfile
- win32_abort
- win32_fstat
- win32_stat
- win32_pipe
- win32_popen
- win32_pclose
- win32_rename
- win32_setmode
- win32_lseek
- win32_tell
- win32_dup
- win32_dup2
- win32_open
- win32_close
- win32_eof
- win32_read
- win32_write
- win32_spawnvp
- win32_mkdir
- win32_rmdir
- win32_chdir
- win32_flock
- win32_execv
- win32_execvp
- win32_htons
- win32_ntohs
- win32_htonl
- win32_ntohl
- win32_inet_addr
- win32_inet_ntoa
- win32_socket
- win32_bind
- win32_listen
- win32_accept
- win32_connect
- win32_send
- win32_sendto
- win32_recv
- win32_recvfrom
- win32_shutdown
- win32_closesocket
- win32_ioctlsocket
- win32_setsockopt
- win32_getsockopt
- win32_getpeername
- win32_getsockname
- win32_gethostname
- win32_gethostbyname
- win32_gethostbyaddr
- win32_getprotobyname
- win32_getprotobynumber
- win32_getservbyname
- win32_getservbyport
- win32_select
- win32_endhostent
- win32_endnetent
- win32_endprotoent
- win32_endservent
- win32_getnetent
- win32_getnetbyname
- win32_getnetbyaddr
- win32_getprotoent
- win32_getservent
- win32_sethostent
- win32_setnetent
- win32_setprotoent
- win32_setservent
- win32_getenv
- win32_putenv
- win32_perror
- win32_setbuf
- win32_setvbuf
- win32_flushall
- win32_fcloseall
- win32_fgets
- win32_gets
- win32_fgetc
- win32_putc
- win32_puts
- win32_getchar
- win32_putchar
- win32_malloc
- win32_calloc
- win32_realloc
- win32_free
- win32_sleep
- win32_times
- win32_access
- win32_alarm
- win32_chmod
- win32_open_osfhandle
- win32_get_osfhandle
- win32_ioctl
- win32_link
- win32_unlink
- win32_utime
- win32_uname
- win32_wait
- win32_waitpid
- win32_kill
- win32_str_os_error
- win32_opendir
- win32_readdir
- win32_telldir
- win32_seekdir
- win32_rewinddir
- win32_closedir
- win32_longpath
- win32_os_id
- win32_getpid
- win32_crypt
- win32_dynaload
- ))
- {
- try_symbol($symbol);
- }
-}
-elsif ($PLATFORM eq 'os2') {
- open MAP, 'miniperl.map' or die 'Cannot read miniperl.map';
- /^\s*[\da-f:]+\s+(\w+)/i and $mapped{$1}++ foreach <MAP>;
- close MAP or die 'Cannot close miniperl.map';
-
- @missing = grep { !exists $mapped{$_} and !exists $bincompat5005{$_} }
- keys %export;
- delete $export{$_} foreach @missing;
-}
-elsif ($PLATFORM eq 'MacOS') {
- open MACSYMS, 'macperl.sym' or die 'Cannot read macperl.sym';
-
- while (<MACSYMS>) {
- try_symbol($_);
- }
-
- close MACSYMS;
-}
-
-# Now all symbols should be defined because
-# next we are going to output them.
-
-foreach my $symbol (sort keys %export) {
- output_symbol($symbol);
-}
-
-sub emit_symbol {
- my $symbol = shift;
- chomp($symbol);
- $export{$symbol} = 1;
-}
-
-sub output_symbol {
- my $symbol = shift;
- $symbol = $bincompat5005{$symbol}
- if $define{PERL_BINCOMPAT_5005} and $symbol =~ /^($bincompat5005)$/;
- if ($PLATFORM eq 'win32') {
- $symbol = "_$symbol" if $CCTYPE eq 'BORLAND';
- print "\t$symbol\n";
-# XXX: binary compatibility between compilers is an exercise
-# in frustration :-(
-# 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
-# nprint "\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";
-# }
- }
- elsif ($PLATFORM eq 'os2') {
- print qq( "$symbol"\n);
- }
- elsif ($PLATFORM eq 'aix' || $PLATFORM eq 'MacOS') {
- print "$symbol\n";
- }
-}
-
-1;
-__DATA__
-# extra globals not included above.
-perl_alloc
-perl_alloc_using
-perl_clone
-perl_clone_using
-perl_construct
-perl_destruct
-perl_free
-perl_parse
-perl_run
OpenPOWER on IntegriCloud