Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[PATCH] 4497a11 Export DynaLoader symbols from libperl again #11674

Closed
p5pRT opened this issue Sep 27, 2011 · 17 comments
Closed

[PATCH] 4497a11 Export DynaLoader symbols from libperl again #11674

p5pRT opened this issue Sep 27, 2011 · 17 comments
Labels

Comments

@p5pRT
Copy link

p5pRT commented Sep 27, 2011

Migrated from rt.perl.org#100138 (status was 'resolved')

Searchable as RT100138$

@p5pRT
Copy link
Author

p5pRT commented Sep 27, 2011

From @rurban

This is a bug report for perl from rurban@​cpan.org,
generated with the help of perlbug 1.39 running under perl 5.15.3.

With 5.15.2 and the new xubpp, DynaLoader symbols were XS_INTERNAL,
before they were effectively XS_EXTERNAL. This broke B​::C and possibly
other embedded apps which link to DynaLoader functions.


Flags​:
  category=library
  severity=critical
  module=DynaLoader


Site configuration information for perl 5.15.3​:

Configured by rurban at Wed Sep 21 14​:46​:58 CEST 2011.

Summary of my perl5 (revision 5 version 15 subversion 3) configuration​:
  Commit id​: 818a19b
  Platform​:
  osname=darwin, osvers=10.8.0, archname=darwin-nothread-git
  uname='darwin air.local 10.8.0 darwin kernel version 10.8.0​: tue
jun 7 16​:33​:36 pdt 2011; root​:xnu-1504.15.3~1release_i386 i386 '
  config_args='-de -Dusedtrace -Dmksymlinks -Accflags=-m64
-Aldflags=-m64 -Dcc=gcc-mp-4.6 -Dld=gcc-mp-4.6 -Dusedevel
-Duseshrplib'
  hint=recommended, useposix=true, d_sigaction=define
  useithreads=undef, usemultiplicity=undef
  useperlio=define, d_sfio=undef, uselargefiles=define, usesocks=undef
  use64bitint=define, use64bitall=define, uselongdouble=undef
  usemymalloc=n, bincompat5005=undef
  Compiler​:
  cc='gcc-mp-4.6', ccflags ='-fno-common -DPERL_DARWIN -m64
-fno-strict-aliasing -pipe -fstack-protector -I/usr/local/include
-I/opt/local/include',
  optimize='-O3',
  cppflags='-fno-common -DPERL_DARWIN -m64 -fno-strict-aliasing
-pipe -fstack-protector -I/usr/local/include -I/opt/local/include'
  ccversion='', gccversion='4.6.1 20110325 (prerelease)', gccosandvers=''
  intsize=4, longsize=8, ptrsize=8, doublesize=8, byteorder=12345678
  d_longlong=define, longlongsize=8, d_longdbl=define, longdblsize=16
  ivtype='long', ivsize=8, nvtype='double', nvsize=8, Off_t='off_t',
lseeksize=8
  alignbytes=8, prototype=define
  Linker and Libraries​:
  ld='gcc-mp-4.6', ldflags =' -m64 -fstack-protector
-L/usr/local/lib -L/opt/local/lib'
  libpth=/usr/local/lib /opt/local/lib /usr/lib
  libs=-lgdbm -ldbm -ldl -lm -lutil -lc
  perllibs=-ldl -lm -lutil -lc
  libc=, so=dylib, useshrplib=true, libperl=libperl.dylib
  gnulibc_version=''
  Dynamic Linking​:
  dlsrc=dl_dlopen.xs, dlext=bundle, d_dlsymun=undef, ccdlflags=' '
  cccdlflags=' ', lddlflags=' -bundle -undefined dynamic_lookup
-L/usr/local/lib -L/opt/local/lib -fstack-protector'

Locally applied patches​:


@​INC for perl 5.15.3​:
  /usr/local/lib/perl5/site_perl/5.15.3/darwin-nothread-git
  /usr/local/lib/perl5/site_perl/5.15.3
  /usr/local/lib/perl5/5.15.3/darwin-nothread-git
  /usr/local/lib/perl5/5.15.3
  /usr/local/lib/perl5/site_perl
  .


Environment for perl 5.15.3​:
  DYLD_LIBRARY_PATH (unset)
  HOME=/Users/rurban
  LANG=en_US.UTF-8
  LANGUAGE (unset)
  LC_CTYPE=en_US.UTF-8
  LD_LIBRARY_PATH (unset)
  LOGDIR (unset)
  PATH=/opt/local/bin​:/opt/local/sbin​:/usr/bin​:/bin​:/usr/sbin​:/sbin​:/usr/local/bin​:/usr/X11/bin​:/Users/rurban/bin
  PERL_BADLANG (unset)
  SHELL=/bin/bash
--
Reini Urban
http​://cpanel.net/   http​://www.perl-compiler.org/

@p5pRT
Copy link
Author

p5pRT commented Sep 27, 2011

From @rurban

0001-Export-DynaLoader-symbols-from-libperl-again.patch
From 4497a11a0d2e48af795e0e4d8f8c185e48d87b10 Mon Sep 17 00:00:00 2001
From: Reini Urban <rurban@x-ray.at>
Date: Tue, 27 Sep 2011 06:45:37 -0500
Subject: [PATCH] Export DynaLoader symbols from libperl again
MIME-Version: 1.0
Content-Type: multipart/mixed; boundary="------------1.7.6.1"

This is a multi-part message in MIME format.
--------------1.7.6.1
Content-Type: text/plain; charset=UTF-8; format=fixed
Content-Transfer-Encoding: 8bit


With 5.15.2 and the new xubpp, DynaLoader symbols were XS_INTERNAL, before
they were effectively XS_EXTERNAL. This broke B::C and possibly other
embedded apps which link to DynaLoader functions.
---
 ext/DynaLoader/dlutils.c |    1 +
 1 files changed, 1 insertions(+), 0 deletions(-)


--------------1.7.6.1
Content-Type: text/x-patch; name="0001-Export-DynaLoader-symbols-from-libperl-again.patch"
Content-Transfer-Encoding: 8bit
Content-Disposition: attachment; filename="0001-Export-DynaLoader-symbols-from-libperl-again.patch"

diff --git a/ext/DynaLoader/dlutils.c b/ext/DynaLoader/dlutils.c
index 1ba9a61..574ccad 100644
--- a/ext/DynaLoader/dlutils.c
+++ b/ext/DynaLoader/dlutils.c
@@ -8,6 +8,7 @@
  *                      files when the interpreter exits
  */
 
+#define PERL_EUPXS_ALWAYS_EXPORT
 #ifndef START_MY_CXT /* Some IDEs try compiling this standalone. */
 #   include "EXTERN.h"
 #   include "perl.h"

--------------1.7.6.1--


@p5pRT
Copy link
Author

p5pRT commented Sep 27, 2011

From @Leont

On Tue, Sep 27, 2011 at 2​:52 PM, Reini Urban <perlbug-followup@​perl.org> wrote​:

With 5.15.2 and the new xubpp, DynaLoader symbols were XS_INTERNAL,
before they were effectively XS_EXTERNAL. This broke B​::C and possibly
other embedded apps which link to DynaLoader functions.

Yeah, if boot_Dynaloader isn't exported then any embedded perl
application would break.

Leon

@p5pRT
Copy link
Author

p5pRT commented Sep 27, 2011

The RT System itself - Status changed from 'new' to 'open'

@p5pRT
Copy link
Author

p5pRT commented Sep 27, 2011

From @rurban

On Tue, Sep 27, 2011 at 8​:03 AM, Leon Timmermans <fawaka@​gmail.com> wrote​:

On Tue, Sep 27, 2011 at 2​:52 PM, Reini Urban <perlbug-followup@​perl.org> wrote​:

With 5.15.2 and the new xubpp, DynaLoader symbols were XS_INTERNAL,
before they were effectively XS_EXTERNAL. This broke B​::C and possibly
other embedded apps which link to DynaLoader functions.

Yeah, if boot_Dynaloader isn't exported then any embedded perl
application would break.

boot_DynaLoader is not the problem, this is always exported.
I link to the functions directly, as to the other perl internal XS functions
(_XS_
The individual symbols are​:

Undefined symbols​:
B​::C svn
$ t/testc.sh 16
/usr/local/bin/perl5.15.2d-nt -Mblib script/cc_harness -g3 ccode16.c -o ccode16
gcc-mp-4.6 -fno-common -DPERL_DARWIN -m64 -DDEBUGGING
-fno-strict-aliasing -pipe -fstack-protector -I/usr/local/include
-I/opt/local/include -m64
-I/usr/local/lib/perl5/5.15.2/darwin-debug/CORE -g3 ccode16.c -o
ccode16 -m64 -L/usr/local/lib -L/opt/local/lib -m64
-L/usr/local/lib/perl5/5.15.2/darwin-debug/CORE -lperl -ldl -lm -lutil
-lc
ccode16.c​: In function 'perl_init_aaaa'​:
ccode16.c​:5013​:12​: note​: variable tracking size limit exceeded with
-fvar-tracking-assignments, retrying without
Undefined symbols​:
  "_XS_DynaLoader_dl_error", referenced from​:
  _perl_init_aaaa in cc4LCSbS.o
  "_XS_DynaLoader_dl_install_xsub", referenced from​:
  _perl_init_aaaa in cc4LCSbS.o
  "_XS_DynaLoader_dl_find_symbol", referenced from​:
  _perl_init_aaaa in cc4LCSbS.o
  "_XS_DynaLoader_dl_undef_symbols", referenced from​:
  _perl_init_aaaa in cc4LCSbS.o
  "_XS_DynaLoader_dl_load_file", referenced from​:
  _perl_init_aaaa in cc4LCSbS.o
ld​: symbol(s) not found

$ ls /usr/local/lib/perl5/5.15*/darwin-*/CORE/libperl.dylib
/usr/local/lib/perl5/5.15.0/darwin-multi-debug/CORE/libperl.dylib
/usr/local/lib/perl5/5.15.1/darwin-debug-methopt/CORE/libperl.dylib
/usr/local/lib/perl5/5.15.1/darwin-debug-multi/CORE/libperl.dylib
/usr/local/lib/perl5/5.15.1/darwin-debug/CORE/libperl.dylib
/usr/local/lib/perl5/5.15.2/darwin-debug/CORE/libperl.dylib
/usr/local/lib/perl5/5.15.2/darwin-nothread-git/CORE/libperl.dylib
/usr/local/lib/perl5/5.15.3/darwin-debug/CORE/libperl.dylib
/usr/local/lib/perl5/5.15.3/darwin-nothread-git/CORE/libperl.dylib

$ nm /usr/local/lib/perl5/5.15*/darwin-*/CORE/libperl.dylib |grep
XS_DynaLoader_dl_error
0000000000377b9a T _XS_DynaLoader_dl_error
000000000034b340 T _XS_DynaLoader_dl_error
00000000001ddb10 T _XS_DynaLoader_dl_error
000000000034a440 T _XS_DynaLoader_dl_error
000000000034ee60 t _XS_DynaLoader_dl_error
000000000012ea80 t _XS_DynaLoader_dl_error
000000000034bc84 t _XS_DynaLoader_dl_error
000000000012d3d0 t _XS_DynaLoader_dl_error

< 5.15.2 T, since 5.15.2 t

DynaLoader is the only XS here with xsubpp mangling,
the others are proper .c files.

$ nm /usr/local/lib/perl5/5.15.3/darwin-debug/CORE/libperl.dylib |grep _XS_

000000000034ee60 t _XS_DynaLoader_dl_error
000000000034e2e4 t _XS_DynaLoader_dl_find_symbol
000000000034e845 t _XS_DynaLoader_dl_install_xsub
000000000034dadd t _XS_DynaLoader_dl_load_file
000000000034e788 t _XS_DynaLoader_dl_undef_symbols
000000000034dfb4 t _XS_DynaLoader_dl_unload_file
0000000000319869 T _XS_Internals_HvREHASH
0000000000316c0d T _XS_Internals_SvREADONLY
0000000000317492 T _XS_Internals_SvREFCNT
00000000003196f7 T _XS_Internals_hash_seed
000000000031791f T _XS_Internals_hv_clear_placehold
00000000003197b0 T _XS_Internals_rehash_seed
000000000031cd1f T _XS_PerlIO__Layer__NoWarnings
000000000031ce53 T _XS_PerlIO__Layer__find
0000000000317b67 T _XS_PerlIO_get_layers
000000000030f286 T _XS_UNIVERSAL_DOES
000000000030f470 T _XS_UNIVERSAL_VERSION
000000000030e89c T _XS_UNIVERSAL_can
000000000030e231 T _XS_UNIVERSAL_isa
000000000015246d T _XS_mro_method_changed_in
0000000000319b42 T _XS_re_is_regexp
000000000031acdc T _XS_re_regexp_pattern
0000000000319ea8 T _XS_re_regname
000000000031a471 T _XS_re_regnames
0000000000319c9e T _XS_re_regnames_count
0000000000316201 T _XS_utf8_decode
0000000000316500 T _XS_utf8_downgrade
0000000000316122 T _XS_utf8_encode
0000000000315cb1 T _XS_utf8_is_utf8
000000000031678f T _XS_utf8_native_to_unicode
00000000003169ce T _XS_utf8_unicode_to_native
0000000000316374 T _XS_utf8_upgrade
0000000000315e30 T _XS_utf8_valid
00000000003131a2 T _XS_version_boolean
0000000000313553 T _XS_version_is_alpha
0000000000315977 T _XS_version_is_qv
000000000031026f T _XS_version_new
0000000000313457 T _XS_version_noop
0000000000312820 T _XS_version_normal
00000000003125c0 T _XS_version_numify
000000000031388d T _XS_version_qv
0000000000312360 T _XS_version_stringify
0000000000312a80 T _XS_version_vcmp

--
Reini Urban
http​://cpanel.net/   http​://www.perl-compiler.org/

@p5pRT
Copy link
Author

p5pRT commented Sep 28, 2011

From @tsee

On 09/27/2011 03​:40 PM, Reini Urban wrote​:

On Tue, Sep 27, 2011 at 8​:03 AM, Leon Timmermans<fawaka@​gmail.com> wrote​:

On Tue, Sep 27, 2011 at 2​:52 PM, Reini Urban<perlbug-followup@​perl.org> wrote​:

With 5.15.2 and the new xubpp, DynaLoader symbols were XS_INTERNAL,
before they were effectively XS_EXTERNAL. This broke B​::C and possibly
other embedded apps which link to DynaLoader functions.

Yeah, if boot_Dynaloader isn't exported then any embedded perl
application would break.

boot_DynaLoader is not the problem, this is always exported.
I link to the functions directly, as to the other perl internal XS functions
(_XS_
The individual symbols are​:

[...]

Undefined symbols​:
"_XS_DynaLoader_dl_error", referenced from​:
_perl_init_aaaa in cc4LCSbS.o

Makes me wonder whether the exact name of XSUBs is considered an
implementation detail or part of the API.

Anyway, on a recentish blead perl at
a62da8e (Aug 28th)​:

tsee@​l3tsee​:~/perl/cpan_perl_branch_smoke$ nm
../../bleadperl/perl-ssh/perl | grep XS | grep Dyna
0000000000710dc2 t XS_DynaLoader_CLONE
0000000000710b5a t XS_DynaLoader_dl_error
000000000071004a t XS_DynaLoader_dl_find_symbol
00000000007105b7 t XS_DynaLoader_dl_install_xsub
000000000070f7e9 t XS_DynaLoader_dl_load_file
00000000007104fd t XS_DynaLoader_dl_undef_symbols
000000000070fcf8 t XS_DynaLoader_dl_unload_file

In a nutshell, XSUBs should now be exported alright if

a) xsubpp is old.
b) They aren't generated by xsubpp (duh), even if they're declared with
the XS() macro.
c) They are generated by xsubpp, but the XS code
uses the "EXPORT_XSUB_SYMBOLS​: ENABLE" XS verb to disable generation of
'static' XSUBs.
d) (And if this breaks, you get to keep both pieces) you do "#define
PERL_EUPXS_ALWAYS_EXPORT" so that it's defined during the XSUB
declaration and implementation. It basically forces the ParseXS-internal
variant of the XS() macro to use XS_EXTERNAL instead of XS_INTERNAL.

Does that give you enough rope to hang anything?

Cheers,
Steffen

@p5pRT
Copy link
Author

p5pRT commented Sep 28, 2011

From @rurban

On Wed, Sep 28, 2011 at 1​:31 AM, Steffen Mueller
<smueller@​ma2geo.mathematik.uni-karlsruhe.de> wrote​:

d) (And if this breaks, you get to keep both pieces) you do "#define
PERL_EUPXS_ALWAYS_EXPORT" so that it's defined during the XSUB declaration
and implementation. It basically forces the ParseXS-internal variant of the
XS() macro to use XS_EXTERNAL instead of XS_INTERNAL.

Does that give you enough rope to hang anything?

Didn't you see my patch in the ticket? 5.15.2 and 5.15.3 is already
broken. Please let not 5.15.4 also be broken.

I added #define PERL_EUPXS_ALWAYS_EXPORT to dlutils.c so all
DynaLoader.xs versions export now their symbols as before, and I can
link to them as before.

The problem is in CORE, all other things I can manage by myself.
--
Reini Urban
http​://cpanel.net/   http​://www.perl-compiler.org/

@p5pRT
Copy link
Author

p5pRT commented Sep 30, 2011

From @rurban

Can someone please apply the patch?
--
Reini Urban
http​://cpanel.net/   http​://www.perl-compiler.org/

@p5pRT
Copy link
Author

p5pRT commented Sep 30, 2011

From @cpansprout

On Tue Sep 27 05​:52​:30 2011, rurban wrote​:

This is a bug report for perl from rurban@​cpan.org,
generated with the help of perlbug 1.39 running under perl 5.15.3.

With 5.15.2 and the new xubpp, DynaLoader symbols were XS_INTERNAL,
before they were effectively XS_EXTERNAL. This broke B​::C and possibly
other embedded apps which link to DynaLoader functions.

Thank you. I have applied your attached patch as 2e34687.

@p5pRT
Copy link
Author

p5pRT commented Sep 30, 2011

@cpansprout - Status changed from 'open' to 'resolved'

@p5pRT p5pRT closed this as completed Sep 30, 2011
@p5pRT
Copy link
Author

p5pRT commented Sep 30, 2011

From kaffeetisch@gmx.de

On 27.09.2011 14​:52, Reini Urban (via RT) wrote​:

+#define PERL_EUPXS_ALWAYS_EXPORT

If I read Steffen's reply and commit
a62da8e correctly, this change
shouldn't be necessary anymore.

@p5pRT
Copy link
Author

p5pRT commented Oct 1, 2011

From @cpansprout

On Fri Sep 30 16​:27​:52 2011, kaffeetisch@​gmx.de wrote​:

On 27.09.2011 14​:52, Reini Urban (via RT) wrote​:

+#define PERL_EUPXS_ALWAYS_EXPORT

If I read Steffen's reply and commit
a62da8e correctly, this change
shouldn't be necessary anymore.

Does that mean I should revert Reini’s patch which I applied a few hours
ago?

@p5pRT
Copy link
Author

p5pRT commented Oct 1, 2011

From @rurban

On Fri Sep 30 16​:27​:52 2011, kaffeetisch@​gmx.de wrote​:

On 27.09.2011 14​:52, Reini Urban (via RT) wrote​:

+#define PERL_EUPXS_ALWAYS_EXPORT

If I read Steffen's reply and commit
a62da8e correctly, this change
shouldn't be necessary anymore.

Wrong. This change caused the DynaLoader breakage.

On Fri, Sep 30, 2011 at 8​:10 PM, Father Chrysostomos via RT
<perlbug-followup@​perl.org> wrote​:

Does that mean I should revert Reini’s patch which I applied a few hours
ago?

No. Thanks for applying.

BTW​: I've just setup a B​::C smoker here at cPanel which tests blead
daily, so I hopefully catch breakage earlier.
I'm not sure how to add CORE tests to such weird cases, but I'm thinking of it.
It will help me most :)
--
Reini Urban
http​://cpanel.net/   http​://www.perl-compiler.org/

@p5pRT
Copy link
Author

p5pRT commented Oct 1, 2011

From @cpansprout

On Fri Sep 30 18​:48​:42 2011, rurban wrote​:

BTW​: I've just setup a B​::C smoker here at cPanel which tests blead
daily, so I hopefully catch breakage earlier.
I'm not sure how to add CORE tests to such weird cases, but I'm
thinking of it.
It will help me most :)

Thank you. That sort of thing is always helpful.

(I test my CPAN modules monthly with blead. I’ve caught quite a few
bugs that way. :-)

@p5pRT
Copy link
Author

p5pRT commented Oct 1, 2011

From kaffeetisch@gmx.de

On 01.10.2011 03​:48, Reini Urban wrote​:

On Fri Sep 30 16​:27​:52 2011, kaffeetisch@​gmx.de wrote​:

On 27.09.2011 14​:52, Reini Urban (via RT) wrote​:

+#define PERL_EUPXS_ALWAYS_EXPORT

If I read Steffen's reply and commit
a62da8e correctly, this change
shouldn't be necessary anymore.

Wrong. This change caused the DynaLoader breakage.

While it wasn't actually this commit that changed the visibility of
DynaLoader symbols, you're right that it doesn't fix it either. (Since
DynaLoader goes through xsubpp normally, so it doesn't use the XS macro
manually which is the only case affected by the cited commit and its
parent.)

@p5pRT
Copy link
Author

p5pRT commented Oct 1, 2011

From @tsee

Hi all,

this is a mixed response to Reini and Thorsten, sorry about that.

On 10/01/2011 11​:38 AM, Torsten Schoenfeld wrote​:

On 01.10.2011 03​:48, Reini Urban wrote​:

On Fri Sep 30 16​:27​:52 2011, kaffeetisch@​gmx.de wrote​:

On 27.09.2011 14​:52, Reini Urban (via RT) wrote​:

+#define PERL_EUPXS_ALWAYS_EXPORT

Sorry for being slow in applying. I had planned to think about a more
elegant solution and figuring out how DynaLoader / B​::C are special
before applying this. Evidently, I did not get to that in time.

If I read Steffen's reply and commit
a62da8e correctly, this change
shouldn't be necessary anymore.

Wrong. This change caused the DynaLoader breakage.

Though is it actually DynaLoader breakage or B​::C breakage? Either way,
adding the define seems like a horrible but acceptable workaround that
is less work than adding the explicit XS verb to each of the various .xs
files of DynaLoader. Including a comment as to what the define does
wouldn't have hurt, though.

While it wasn't actually this commit that changed the visibility of
DynaLoader symbols, you're right that it doesn't fix it either. (Since
DynaLoader goes through xsubpp normally, so it doesn't use the XS macro
manually which is the only case affected by the cited commit and its
parent.)

Indeed. It seemed fishy to me that the define in a .c file would do
anything at all. But since that's #included by the various .xs files, it
does work.

--Steffen

@p5pRT
Copy link
Author

p5pRT commented Oct 1, 2011

From @rurban

On Sat, Oct 1, 2011 at 7​:23 AM, Steffen Mueller <smueller@​cpan.org> wrote​:

Hi all,

this is a mixed response to Reini and Thorsten, sorry about that.

On 10/01/2011 11​:38 AM, Torsten Schoenfeld wrote​:

On 01.10.2011 03​:48, Reini Urban wrote​:

On Fri Sep 30 16​:27​:52 2011, kaffeetisch@​gmx.de wrote​:

On 27.09.2011 14​:52, Reini Urban (via RT) wrote​:

+#define PERL_EUPXS_ALWAYS_EXPORT

Sorry for being slow in applying. I had planned to think about a more
elegant solution and figuring out how DynaLoader / B​::C are special before
applying this. Evidently, I did not get to that in time.

If I read Steffen's reply and commit
a62da8e correctly, this change
shouldn't be necessary anymore.

Wrong. This change caused the DynaLoader breakage.

Though is it actually DynaLoader breakage or B​::C breakage?

DynaLoader works fine. Only perlembed apps which link to DynaLoader broke.
The only to me known such app is B​::C. But I haven't checked the others on cpan.
I guess they go through the perl interface, not the C interface.

Either way,
adding the define seems like a horrible but acceptable workaround that is
less work than adding the explicit XS verb to each of the various .xs files
of DynaLoader. Including a comment as to what the define does wouldn't have
hurt, though.

I though the define is explicit enough. And there is also this ticket
and the commit message, which is also explicit.

While it wasn't actually this commit that changed the visibility of
DynaLoader symbols, you're right that it doesn't fix it either. (Since
DynaLoader goes through xsubpp normally, so it doesn't use the XS macro
manually which is the only case affected by the cited commit and its
parent.)

Indeed. It seemed fishy to me that the define in a .c file would do anything
at all. But since that's #included by the various .xs files, it does work.
--
Reini Urban
http​://cpanel.net/   http​://www.perl-compiler.org/

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

1 participant