summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDaniel Dragan <bulk88@hotmail.com>2018-04-20 10:46:39 -0400
committerCraig A. Berry <craigberry@mac.com>2018-04-21 08:15:55 -0500
commitc41ed02688c7d0eea7fe888ba996b3a9165df529 (patch)
tree46e807f9814bae9911d3894c3d99a180a6d2d150
parentf75ab299e2c1f32844ff278938ff12a96931649a (diff)
downloadperl-c41ed02688c7d0eea7fe888ba996b3a9165df529.tar.gz
#133125 revise -DNO_MATHOM logic again in makedef.pl
Revision of patch in #133098. There is a problem described in #133125 with XS-APITest using with "Perl_" mathomed C symbols instead of the Perl_-less ones which would get preprocessor redirected to newer C funcs, then link failure of XS-APITest on Win32 because missing symbols. These symbols were missing because they were marked "m" and I thought in commit 1545ba5b04 "m" means no C symbol, ever, but that isn't true. It seems that "b" means must export on a with-mathoms default perl. So put back part of the original code before commit 1545ba5b04 from commit 3f1866a8f6, so that on with mathoms builds all "b"s are exported, but on no mathom builds, all "b"s are removed/not exported. There are some logic holes here for strange or impossible combinations of flags, like flags "Abi" or just "b" without "A", that I wont address here.
-rw-r--r--makedef.pl3
1 files changed, 2 insertions, 1 deletions
diff --git a/makedef.pl b/makedef.pl
index daf6b400fc..dbd756d713 100644
--- a/makedef.pl
+++ b/makedef.pl
@@ -736,7 +736,8 @@ unless ($define{'USE_QUADMATH'}) {
foreach (@$embed) {
my ($flags, $retval, $func, @args) = @$_;
next unless $func;
- if ($flags =~ /[AX]/ && $flags !~ $excludedre)
+ if (($flags =~ /[AX]/ && $flags !~ $excludedre)
+ || (!$define{'NO_MATHOMS'} && $flags =~ /b/))
{
# public API, so export