X-Git-Url: https://perl5.git.perl.org/perl5.git/blobdiff_plain/d1e2f601ca8f928cc2b7526839763ea10c26b18f..5be9e8240b44cf7f6dd4e36e9c8362389aa84661:/makedef.pl diff --git a/makedef.pl b/makedef.pl index 4376842..c97fdc4 100644 --- a/makedef.pl +++ b/makedef.pl @@ -87,9 +87,12 @@ process_cc_flags(@Config{qw(ccflags optimize)}) # the user might have chosen to disable because the canned configs are # minimal configs that don't include any of those options. -my @options = sort(Config::bincompat_options(), Config::non_bincompat_options()); -print STDERR "Options: (@options)\n" unless $ARGS{PLATFORM} eq 'test'; -$define{$_} = 1 foreach @options; +#don't use the host Perl's -V defines for the WinCE Perl +if($ARGS{PLATFORM} ne 'wince') { + my @options = sort(Config::bincompat_options(), Config::non_bincompat_options()); + print STDERR "Options: (@options)\n" unless $ARGS{PLATFORM} eq 'test'; + $define{$_} = 1 foreach @options; +} my %exportperlmalloc = ( @@ -101,7 +104,8 @@ my %exportperlmalloc = my $exportperlmalloc = $ARGS{PLATFORM} eq 'os2'; -open(CFG, '<', 'config.h') || die "Cannot open config.h: $!\n"; +my $config_h = $ARGS{PLATFORM} eq 'wince' ? 'xconfig.h' : 'config.h'; +open(CFG, '<', $config_h) || die "Cannot open $config_h: $!\n"; while () { $define{$1} = 1 if /^\s*\#\s*define\s+(MYMALLOC|MULTIPLICITY |SPRINTF_RETURNS_STRLEN @@ -279,7 +283,7 @@ unless ($define{'PERL_OLD_COPY_ON_WRITE'} ++$skip{Perl_sv_setsv_cow}; } -unless ($define{PERL_SAW_AMPERSAND}) { +unless ($define{PERL_SAWAMPERSAND}) { ++$skip{PL_sawampersand}; } @@ -360,6 +364,7 @@ unless ($define{'USE_ITHREADS'}) { PL_stashpadix PL_stashpadmax Perl_alloccopstash + Perl_allocfilegv Perl_clone_params_del Perl_clone_params_new Perl_parser_dup @@ -452,7 +457,7 @@ unless ($define{PERL_MAD}) { unless ($define{'MULTIPLICITY'}) { ++$skip{$_} foreach qw( PL_interp_size - PL_interp_size_5_16_0 + PL_interp_size_5_18_0 ); } @@ -536,6 +541,9 @@ if ($define{'PERL_GLOBAL_STRUCT'}) { ++$skip{$_} foreach qw(Perl_init_global_struct Perl_free_global_struct); } +++$skip{PL_op_exec_cnt} + unless $define{PERL_TRACE_OPS}; + # functions from *.sym files my @syms = qw(globvar.sym); @@ -623,93 +631,12 @@ if ($ARGS{PLATFORM} eq 'netware') { } if ($define{'USE_PERLIO'}) { - # Export the symols that make up the PerlIO abstraction, regardless + # Export the symbols that make up the PerlIO abstraction, regardless # of its implementation - read from a file push @syms, 'perlio.sym'; - # This part is then dependent on how the abstraction is implemented - if ($define{'USE_SFIO'}) { - # Old legacy non-stdio "PerlIO" - ++$skip{$_} foreach @layer_syms; - ++$skip{perlsio_binmode}; - # SFIO defines most of the PerlIO routines as macros - # So undo most of what $perlio_sym has just done - d'oh ! - # Perhaps it would be better to list the ones which do exist - # And emit them - ++$skip{$_} foreach 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 - PerlIO_perlio - Perl_PerlIO_clearerr - Perl_PerlIO_close - Perl_PerlIO_eof - Perl_PerlIO_error - Perl_PerlIO_fileno - Perl_PerlIO_fill - Perl_PerlIO_flush - Perl_PerlIO_get_base - Perl_PerlIO_get_bufsiz - Perl_PerlIO_get_cnt - Perl_PerlIO_get_ptr - Perl_PerlIO_read - Perl_PerlIO_seek - Perl_PerlIO_set_cnt - Perl_PerlIO_set_ptrcnt - Perl_PerlIO_setlinebuf - Perl_PerlIO_stderr - Perl_PerlIO_stdin - Perl_PerlIO_stdout - Perl_PerlIO_tell - Perl_PerlIO_unread - Perl_PerlIO_write - PL_def_layerlist - PL_known_layers - PL_perlio - ); - } - else { - # PerlIO with layers - export implementation - try_symbols(@layer_syms, 'perlsio_binmode'); - } + # PerlIO with layers - export implementation + try_symbols(@layer_syms, 'perlsio_binmode'); } else { # -Uuseperlio # Skip the PerlIO layer symbols - although @@ -743,7 +670,7 @@ if ($define{'USE_PERLIO'}) { foreach (@$embed) { my ($flags, $retval, $func, @args) = @$_; next unless $func; - if ($flags =~ /[AX]/ && $flags !~ /[xm]/ || $flags =~ /b/) { + if ($flags =~ /[AX]/ && $flags !~ /[xmi]/ || $flags =~ /b/) { # public API, so export # If a function is defined twice, for example before and after @@ -751,7 +678,8 @@ if ($define{'USE_PERLIO'}) { # within the block, as the *first* definition may have flags which # mean "don't export" next if $seen{$func}++; - $func = "Perl_$func" if $flags =~ /[pbX]/; + # Should we also skip adding the Perl_ prefix if $flags =~ /o/ ? + $func = "Perl_$func" if ($flags =~ /[pbX]/ && $func !~ /^Perl_/); ++$export{$func} unless exists $skip{$func}; } } @@ -796,9 +724,7 @@ try_symbols(qw( PerlIO_getpos PerlIO_init PerlIO_setpos - PerlIO_sprintf PerlIO_tmpfile - PerlIO_vsprintf )); if ($ARGS{PLATFORM} eq 'win32') { @@ -811,6 +737,10 @@ if ($ARGS{PLATFORM} eq 'win32') { )); } +if ($ARGS{PLATFORM} eq 'wince') { + ++$skip{'win32_isatty'}; # commit 4342f4d6df is win32-only +} + if ($ARGS{PLATFORM} =~ /^win(?:32|ce)$/) { try_symbols(qw( Perl_init_os_extras