summaryrefslogtreecommitdiff
path: root/makedef.pl
diff options
context:
space:
mode:
Diffstat (limited to 'makedef.pl')
-rw-r--r--makedef.pl123
1 files changed, 119 insertions, 4 deletions
diff --git a/makedef.pl b/makedef.pl
index 94a0e1a8b8..4e9dfb2902 100644
--- a/makedef.pl
+++ b/makedef.pl
@@ -4,6 +4,7 @@
#
# Needed by WIN32 and OS/2 for creating perl.dll,
# and by AIX for creating libperl.a when -Dusershrplib is in effect,
+# and by VMS for creating perlshr.exe.
#
# Reads from information stored in
#
@@ -29,7 +30,7 @@
# perldll.def Windows
# perl.exp AIX
# perl.imp NetWare
-
+# makedef.lis VMS
BEGIN { unshift @INC, "lib" }
use Config;
@@ -57,7 +58,7 @@ while (@ARGV) {
}
}
-my @PLATFORM = qw(aix win32 wince os2 netware);
+my @PLATFORM = qw(aix win32 wince os2 netware vms);
my %PLATFORM;
@PLATFORM{@PLATFORM} = ();
@@ -131,6 +132,10 @@ unless ($PLATFORM eq 'win32' || $PLATFORM eq 'wince' || $PLATFORM eq 'netware')
$ARCHNAME = $1 if /^archname='(.+)'$/;
$PATCHLEVEL = $1 if /^perl_patchlevel='(.+)'$/;
}
+ if ($PLATFORM eq 'vms') {
+ $define{DEBUGGING} = 1 if /^usedebugging_perl='Y'$/;
+ $define{UNLINK_ALL_VERSIONS} = 1 if /^d_unlink_all_versions='define'$/;
+ }
}
close(CFG);
}
@@ -319,7 +324,7 @@ if ($PLATFORM eq 'win32') {
Perl_my_sprintf
)];
}
-else {
+elsif ($PLATFORM ne 'vms') {
skip_symbols [qw(
Perl_do_spawn
Perl_do_spawn_nowait
@@ -582,6 +587,116 @@ elsif ($PLATFORM eq 'netware') {
PerlIO_perlio
)];
}
+elsif ($PLATFORM eq 'vms') {
+ emit_symbols([qw(
+ boot_DynaLoader
+ Perl_cando
+ Perl_cando_by_name
+ Perl_closedir
+ Perl_csighandler_init
+ Perl_do_rmdir
+ Perl_fileify_dirspec
+ Perl_fileify_dirspec_ts
+ Perl_fileify_dirspec_utf8
+ Perl_fileify_dirspec_utf8_ts
+ Perl_flex_fstat
+ Perl_flex_lstat
+ Perl_flex_stat
+ Perl_kill_file
+ Perl_my_chdir
+ Perl_my_chmod
+ Perl_my_crypt
+ Perl_my_endpwent
+ Perl_my_fclose
+ Perl_my_fdopen
+ Perl_my_fgetname
+ Perl_my_flush
+ Perl_my_fwrite
+ Perl_my_gconvert
+ Perl_my_getenv
+ Perl_my_getenv_len
+ Perl_my_getlogin
+ Perl_my_getpwnam
+ Perl_my_getpwuid
+ Perl_my_gmtime
+ Perl_my_kill
+ Perl_my_localtime
+ Perl_my_mkdir
+ Perl_my_sigaction
+ Perl_my_symlink
+ Perl_my_time
+ Perl_my_tmpfile
+ Perl_my_trnlnm
+ Perl_my_utime
+ Perl_my_waitpid
+ Perl_opendir
+ Perl_pathify_dirspec
+ Perl_pathify_dirspec_ts
+ Perl_pathify_dirspec_utf8
+ Perl_pathify_dirspec_utf8_ts
+ Perl_readdir
+ Perl_readdir_r
+ Perl_rename
+ Perl_rmscopy
+ Perl_rmsexpand
+ Perl_rmsexpand_ts
+ Perl_rmsexpand_utf8
+ Perl_rmsexpand_utf8_ts
+ Perl_seekdir
+ Perl_sig_to_vmscondition
+ Perl_telldir
+ Perl_tounixpath
+ Perl_tounixpath_ts
+ Perl_tounixpath_utf8
+ Perl_tounixpath_utf8_ts
+ Perl_tounixspec
+ Perl_tounixspec_ts
+ Perl_tounixspec_utf8
+ Perl_tounixspec_utf8_ts
+ Perl_tovmspath
+ Perl_tovmspath_ts
+ Perl_tovmspath_utf8
+ Perl_tovmspath_utf8_ts
+ Perl_tovmsspec
+ Perl_tovmsspec_ts
+ Perl_tovmsspec_utf8
+ Perl_tovmsspec_utf8_ts
+ Perl_trim_unixpath
+ Perl_vms_case_tolerant
+ Perl_vms_do_aexec
+ Perl_vms_do_exec
+ Perl_vms_image_init
+ Perl_vms_realpath
+ Perl_vmssetenv
+ Perl_vmssetuserlnm
+ Perl_vmstrnenv
+ PerlIO_openn
+ )]);
+ skip_symbols([qw(
+ PL_statusvalue_posix
+ PL_cryptseen
+ PL_opsave
+ Perl_GetVars
+ Perl_dump_fds
+ Perl_my_bzero
+ Perl_my_bcopy
+ Perl_my_chsize
+ Perl_my_htonl
+ Perl_my_memcmp
+ Perl_my_memset
+ Perl_my_ntohl
+ Perl_my_sprintf
+ Perl_my_swap
+ )]);
+ skip_symbols([qw(
+ Perl_signbit
+ )])
+ if $define{'HAS_SIGNBIT'};
+ skip_symbols([qw(
+ Perl_unlnk
+ )])
+ unless $define{'UNLINK_ALL_VERSIONS'};
+}
unless ($define{'DEBUGGING'}) {
skip_symbols [qw(
@@ -1614,7 +1729,7 @@ sub output_symbol {
$ordinal{$exportperlmalloc{$symbol}} || ++$sym_ord
if $exportperlmalloc and exists $exportperlmalloc{$symbol};
}
- elsif ($PLATFORM eq 'aix') {
+ elsif ($PLATFORM eq 'aix' || $PLATFORM eq 'vms') {
print "$symbol\n";
}
elsif ($PLATFORM eq 'netware') {