summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--embed.h14
-rwxr-xr-xembed.pl17
-rw-r--r--sv.h6
3 files changed, 24 insertions, 13 deletions
diff --git a/embed.h b/embed.h
index ff4bfaea82..c19e445c95 100644
--- a/embed.h
+++ b/embed.h
@@ -639,10 +639,14 @@
#define sv_2iv Perl_sv_2iv
#define sv_2mortal Perl_sv_2mortal
#define sv_2nv Perl_sv_2nv
+#ifdef CRIPPLED_CC
#define sv_2pv Perl_sv_2pv
+#endif
#define sv_2pvutf8 Perl_sv_2pvutf8
#define sv_2pvbyte Perl_sv_2pvbyte
+#ifdef CRIPPLED_CC
#define sv_pvn_nomg Perl_sv_pvn_nomg
+#endif
#define sv_2uv Perl_sv_2uv
#define sv_iv Perl_sv_iv
#define sv_uv Perl_sv_uv
@@ -657,8 +661,12 @@
#define sv_catpvf Perl_sv_catpvf
#define sv_vcatpvf Perl_sv_vcatpvf
#define sv_catpv Perl_sv_catpv
+#ifdef CRIPPLED_CC
#define sv_catpvn Perl_sv_catpvn
+#endif
+#ifdef CRIPPLED_CC
#define sv_catsv Perl_sv_catsv
+#endif
#define sv_chop Perl_sv_chop
#define sv_clean_all Perl_sv_clean_all
#define sv_clean_objs Perl_sv_clean_objs
@@ -691,7 +699,9 @@
#define sv_peek Perl_sv_peek
#define sv_pos_u2b Perl_sv_pos_u2b
#define sv_pos_b2u Perl_sv_pos_b2u
+#ifdef CRIPPLED_CC
#define sv_pvn_force Perl_sv_pvn_force
+#endif
#define sv_pvutf8n_force Perl_sv_pvutf8n_force
#define sv_pvbyten_force Perl_sv_pvbyten_force
#define sv_reftype Perl_sv_reftype
@@ -711,7 +721,9 @@
#define sv_setref_pvn Perl_sv_setref_pvn
#define sv_setpv Perl_sv_setpv
#define sv_setpvn Perl_sv_setpvn
+#ifdef CRIPPLED_CC
#define sv_setsv Perl_sv_setsv
+#endif
#define sv_taint Perl_sv_taint
#define sv_tainted Perl_sv_tainted
#define sv_unmagic Perl_sv_unmagic
@@ -832,7 +844,9 @@
#define sv_pv Perl_sv_pv
#define sv_pvutf8 Perl_sv_pvutf8
#define sv_pvbyte Perl_sv_pvbyte
+#ifdef CRIPPLED_CC
#define sv_utf8_upgrade Perl_sv_utf8_upgrade
+#endif
#define sv_utf8_downgrade Perl_sv_utf8_downgrade
#define sv_utf8_encode Perl_sv_utf8_encode
#define sv_utf8_decode Perl_sv_utf8_decode
diff --git a/embed.pl b/embed.pl
index 81a65879ff..e4dae1b981 100755
--- a/embed.pl
+++ b/embed.pl
@@ -344,12 +344,14 @@ walk_table {
else {
my ($flags,$retval,$func,@args) = @_;
unless ($flags =~ /o/) {
+ $ret .= "#ifdef CRIPPLED_CC\n" if $flags =~ /C/;
if ($flags =~ /s/) {
$ret .= hide($func,"S_$func");
}
elsif ($flags =~ /p/) {
$ret .= hide($func,"Perl_$func");
}
+ $ret .= "#endif\n" if $flags =~ /C/;
}
}
$ret;
@@ -1052,6 +1054,7 @@ __END__
:
: flags are single letters with following meanings:
: A member of public API
+: C wrap compatibility macro in #ifdef DCRIPPLED_CC
: d function has documentation with its source
: s static function, should have an S_ prefix in source
: file
@@ -1720,10 +1723,10 @@ Apd |IO* |sv_2io |SV* sv
Apd |IV |sv_2iv |SV* sv
Apd |SV* |sv_2mortal |SV* sv
Apd |NV |sv_2nv |SV* sv
-Ap |char* |sv_2pv |SV* sv|STRLEN* lp
+ACp |char* |sv_2pv |SV* sv|STRLEN* lp
Apd |char* |sv_2pvutf8 |SV* sv|STRLEN* lp
Apd |char* |sv_2pvbyte |SV* sv|STRLEN* lp
-Ap |char* |sv_pvn_nomg |SV* sv|STRLEN* lp
+ACp |char* |sv_pvn_nomg |SV* sv|STRLEN* lp
Apd |UV |sv_2uv |SV* sv
Apd |IV |sv_iv |SV* sv
Apd |UV |sv_uv |SV* sv
@@ -1738,8 +1741,8 @@ Apd |SV* |sv_bless |SV* sv|HV* stash
Afpd |void |sv_catpvf |SV* sv|const char* pat|...
Ap |void |sv_vcatpvf |SV* sv|const char* pat|va_list* args
Apd |void |sv_catpv |SV* sv|const char* ptr
-Apd |void |sv_catpvn |SV* sv|const char* ptr|STRLEN len
-Apd |void |sv_catsv |SV* dsv|SV* ssv
+ACpd |void |sv_catpvn |SV* sv|const char* ptr|STRLEN len
+ACpd |void |sv_catsv |SV* dsv|SV* ssv
Apd |void |sv_chop |SV* sv|char* ptr
pd |I32 |sv_clean_all
pd |void |sv_clean_objs
@@ -1774,7 +1777,7 @@ Apd |SV* |sv_newref |SV* sv
Ap |char* |sv_peek |SV* sv
Apd |void |sv_pos_u2b |SV* sv|I32* offsetp|I32* lenp
Apd |void |sv_pos_b2u |SV* sv|I32* offsetp
-Apd |char* |sv_pvn_force |SV* sv|STRLEN* lp
+ACpd |char* |sv_pvn_force |SV* sv|STRLEN* lp
Apd |char* |sv_pvutf8n_force|SV* sv|STRLEN* lp
Apd |char* |sv_pvbyten_force|SV* sv|STRLEN* lp
Apd |char* |sv_reftype |SV* sv|int ob
@@ -1795,7 +1798,7 @@ Apd |SV* |sv_setref_pvn |SV* rv|const char* classname|char* pv \
|STRLEN n
Apd |void |sv_setpv |SV* sv|const char* ptr
Apd |void |sv_setpvn |SV* sv|const char* ptr|STRLEN len
-Apd |void |sv_setsv |SV* dsv|SV* ssv
+ACpd |void |sv_setsv |SV* dsv|SV* ssv
Apd |void |sv_taint |SV* sv
Apd |bool |sv_tainted |SV* sv
Apd |int |sv_unmagic |SV* sv|int type
@@ -1927,7 +1930,7 @@ Apd |char* |sv_2pvbyte_nolen|SV* sv
Apd |char* |sv_pv |SV *sv
Apd |char* |sv_pvutf8 |SV *sv
Apd |char* |sv_pvbyte |SV *sv
-Apd |STRLEN |sv_utf8_upgrade|SV *sv
+ACpd |STRLEN |sv_utf8_upgrade|SV *sv
ApdM |bool |sv_utf8_downgrade|SV *sv|bool fail_ok
Apd |void |sv_utf8_encode |SV *sv
ApdM |bool |sv_utf8_decode |SV *sv
diff --git a/sv.h b/sv.h
index 0b3aba2154..7ca49a7a0a 100644
--- a/sv.h
+++ b/sv.h
@@ -983,17 +983,11 @@ otherwise.
#define sv_utf8_upgrade_macro(sv) sv_utf8_upgrade_flags(sv, SV_GMAGIC)
/* function style also available for sourcecompat */
-#undef sv_setsv
#define sv_setsv(dsv, ssv) sv_setsv_macro(dsv, ssv)
-#undef sv_catsv
#define sv_catsv(dsv, ssv) sv_catsv_macro(dsv, ssv)
-#undef sv_catpvn
#define sv_catpvn(dsv, sstr, slen) sv_catpvn_macro(dsv, sstr, slen)
-#undef sv_2pv
#define sv_2pv(sv, lp) sv_2pv_macro(sv, lp)
-#undef sv_pvn_force
#define sv_pvn_force(sv, lp) sv_pvn_force_macro(sv, lp)
-#undef sv_utf8_upgrade
#define sv_utf8_upgrade(sv) sv_utf8_upgrade_macro(sv)
#undef SvPV