This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
Update one of merijn's previous emails.
[perl5.git] / makedef.pl
index c2344e1..0ee159d 100644 (file)
@@ -36,6 +36,24 @@ my %PLATFORM;
 defined $PLATFORM || die "PLATFORM undefined, must be one of: @PLATFORM\n";
 exists $PLATFORM{$PLATFORM} || die "PLATFORM must be one of: @PLATFORM\n";
 
+if ($PLATFORM eq 'win32' or $PLATFORM eq "aix") {
+       # Add the compile-time options that miniperl was built with to %define.
+       # On Win32 these are not the same options as perl itself will be built
+       # with since miniperl is built with a canned config (one of the win32/
+       # config_H.*) and none of the BUILDOPT's that are set in the makefiles,
+       # but they do include some #define's that are hard-coded in various
+       # source files and header files and don't include any BUILDOPT's that
+       # the user might have chosen to disable because the canned configs are
+       # minimal configs that don't include any of those options.
+       my $config = `$^X -Ilib -V`;
+       my($options) = $config =~ /^  Compile-time options: (.*?)\n^  \S/ms;
+       $options =~ s/\s+/ /g;
+       print STDERR "Options: ($options)\n";
+       foreach (split /\s+/, $options) {
+               $define{$_} = 1;
+       }
+}
+
 my %exportperlmalloc =
     (
        Perl_malloc             =>      "malloc",
@@ -133,8 +151,9 @@ if ($define{USE_ITHREADS} && $PLATFORM ne 'win32' && $^O ne 'darwin') {
 
 my $sym_ord = 0;
 
+print STDERR "Defines: (" . join(' ', sort keys %define) . ")\n";
+
 if ($PLATFORM =~ /^win(?:32|ce)$/) {
-    warn join(' ',keys %define)."\n";
     ($dll = ($define{PERL_DLL} || "perl59")) =~ s/\.dll$//i;
     print "LIBRARY $dll\n";
     print "DESCRIPTION 'Perl interpreter'\n";
@@ -649,6 +668,12 @@ unless ($define{'PERL_MALLOC_WRAP'}) {
                    )];
 }
 
+if ($define{'PERL_USE_SAFE_PUTENV'}) {
+    skip_symbols [qw(
+                   PL_use_safe_putenv
+                  )];
+}
+
 unless ($define{'USE_ITHREADS'}) {
     skip_symbols [qw(
                    PL_thr_key
@@ -725,6 +750,7 @@ unless ($define{'USE_ITHREADS'}) {
                    Perl_sharedsv_thrcnt_dec
                    Perl_sharedsv_thrcnt_inc
                    Perl_sharedsv_unlock
+                   Perl_stashpv_hvname_match
                    )];
 }
 
@@ -783,6 +809,17 @@ unless ($define{'PERL_NEED_TIMESBASE'}) {
                    )];
 }
 
+unless ($define{'DEBUG_LEAKING_SCALARS_FORK_DUMP'}) {
+    skip_symbols [qw(
+                   PL_dumper_fd
+                   )];
+}
+unless ($define{'PERL_DONT_CREATE_GVSV'}) {
+    skip_symbols [qw(
+                    Perl_gv_SVadd
+                   )];
+}
+
 unless ($define{'d_mmap'}) {
     skip_symbols [qw(
                    PL_mmap_page_size
@@ -1233,6 +1270,9 @@ if ($PLATFORM =~ /^win(?:32|ce)$/) {
     {
        try_symbol($symbol);
     }
+    if ($CCTYPE eq "BORLAND") {
+       try_symbol('_matherr');
+    }
 }
 elsif ($PLATFORM eq 'os2') {
     open MAP, 'miniperl.map' or die 'Cannot read miniperl.map';