Unmangle mathoms under C++.
authorCraig A. Berry <craigberry@mac.com>
Sun, 6 May 2012 13:50:43 +0000 (08:50 -0500)
committerCraig A. Berry <craigberry@mac.com>
Thu, 24 May 2012 13:43:58 +0000 (08:43 -0500)
In order to actually provide binary compatibility, we have to
serve up these functions under the names they were known by
before making their way into mathoms.c.  We've always done that
under C, but not C++.

mathoms.c

index a48777d..eb64c77 100644 (file)
--- a/mathoms.c
+++ b/mathoms.c
  */
 #else
 
+/* Not all of these have prototypes elsewhere, so do this to get
+ * non-mangled names.
+ */
+#ifdef __cplusplus
+extern "C" {
+#endif
+
 PERL_CALLCONV OP * Perl_ref(pTHX_ OP *o, I32 type);
 PERL_CALLCONV void Perl_sv_unref(pTHX_ SV *sv);
 PERL_CALLCONV void Perl_sv_taint(pTHX_ SV *sv);
@@ -1197,6 +1204,10 @@ Perl_to_utf8_upper(pTHX_ const U8 *p, U8* ustrp, STRLEN *lenp)
     return _to_utf8_upper_flags(p, ustrp, lenp, FALSE, NULL);
 }
 
+#ifdef __cplusplus
+}
+#endif
+
 #endif /* NO_MATHOMS */
 
 /*