diff --git a/macros.perl b/macros.perl index 4afad47..e2cab04 100644 --- a/macros.perl +++ b/macros.perl @@ -77,7 +77,10 @@ done\ \ # build filelist\ for i in ${all_dir[@]}; do\ - # do not add "%dir %{perl_vendorarch}/auto", included in perl package\ + # do not add "dir {perl_vendorlib/arch}/auto", included in perl package\ + if [ "${i}" = "auto" ]; then\ + continue\ + fi\ if [ "%{perl_vendorlib}/${i}" = "%{perl_vendorarch}/auto" ]; then\ continue\ else\ diff --git a/perl-constprint.diff b/perl-constprint.diff new file mode 100644 index 0000000..eefb547 --- /dev/null +++ b/perl-constprint.diff @@ -0,0 +1,20 @@ +--- ./gv.c.orig 2010-05-13 22:01:07.000000000 +0000 ++++ ./gv.c 2010-07-28 09:57:06.000000000 +0000 +@@ -250,8 +250,16 @@ Perl_gv_init(pTHX_ GV *gv, HV *stash, co + if (doproto) { /* Replicate part of newSUB here. */ + ENTER; + if (has_constant) { ++ char *name0 = NULL; ++ if (name[len]) { ++ /* newCONSTSUB doesn't take a len arg, so make sure w ++ * give it a \0-terminated string */ ++ name0 = savepvn(name, len); ++ } + /* newCONSTSUB takes ownership of the reference from us. */ +- GvCV(gv) = newCONSTSUB(stash, name, has_constant); ++ GvCV(gv) = newCONSTSUB(stash, (name0 ? name0 : name), has_constant); ++ if (name0) ++ Safefree(name0); + /* If this reference was a copy of another, then the subroutine + must have been "imported", by a Perl space assignment to a GV + from a reference to CV. */ diff --git a/perl-h2ph.diff b/perl-h2ph.diff new file mode 100644 index 0000000..35ba7f0 --- /dev/null +++ b/perl-h2ph.diff @@ -0,0 +1,49 @@ +--- ./utils/h2ph.PL.orig ++++ ./utils/h2ph.PL +@@ -401,7 +401,10 @@ if ($opt_e && (scalar(keys %bad_file) > 0)) { + exit $Exit; + + sub expr { +- $new = '"(assembly code)"' and return if /\b__asm__\b/; # freak out. ++ if (/\b__asm__\b/) { # freak out ++ $new = '"(assembly code)"'; ++ return ++ } + my $joined_args; + if(keys(%curargs)) { + $joined_args = join('|', keys(%curargs)); +@@ -798,7 +801,16 @@ sub build_preamble_if_necessary + # parenthesized value: d=(v) + $define{$_} = $1; + } +- if ($define{$_} =~ /^([+-]?(\d+)?\.\d+([eE][+-]?\d+)?)[FL]?$/) { ++ if (/^(\w+)\((\w)\)$/) { ++ my($macro, $arg) = ($1, $2); ++ my $def = $define{$_}; ++ $def =~ s/$arg/\$\{$arg\}/g; ++ print PREAMBLE <