summaryrefslogtreecommitdiff
path: root/makedef.pl
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 /makedef.pl
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.
Diffstat (limited to 'makedef.pl')
-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