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

Compress::Raw::Zlib doesn't apply symbol versioning when building zlib-src #8

Closed
monkburger opened this issue Apr 29, 2022 · 34 comments · Fixed by #11 or Perl/perl5#19725
Closed
Assignees
Labels
bug Something isn't working

Comments

@monkburger
Copy link

monkburger commented Apr 29, 2022

There's a rare chance that when using the C:R:Z XS module under Linux (possibly others, like Solaris), there may be a symbol collision depending on your backend environment (perlcc, mod_perl, or other modules).

Zlib.so exports these functions, globally, without any symbol versions (via readelf -s blib/arch/auto/Compress/Raw/Zlib/Zlib.so | egrep flate)

57: 0000000000012ce0   198 FUNC    GLOBAL DEFAULT   14 inflateResetKeep
61: 0000000000015650    80 FUNC    GLOBAL DEFAULT   14 inflateCodesUsed
62: 00000000000152d0    75 FUNC    GLOBAL DEFAULT   14 inflateSyncPoint
64: 000000000000f310   228 FUNC    GLOBAL DEFAULT   14 deflateResetKeep
65: 0000000000012580    62 FUNC    GLOBAL DEFAULT   14 inflateBackEnd
66: 0000000000015530    70 FUNC    GLOBAL DEFAULT   14 inflateUndermine
67: 0000000000012ee0   192 FUNC    GLOBAL DEFAULT   14 inflateInit2_
69: 0000000000014ec0   212 FUNC    GLOBAL DEFAULT   14 inflateSetDictionary
70: 0000000000012e10   198 FUNC    GLOBAL DEFAULT   14 inflateReset2
77: 000000000000f590   210 FUNC    GLOBAL DEFAULT   14 deflatePrime
78: 000000000000f800  4985 FUNC    GLOBAL DEFAULT   14 deflate

On ELF based systems (Linux, etc), unversioned symbols preempt versioned ones, so you could run into issues such as what was described in this bug report with CryptX, as well as these upstream reports relating to symbol versions, as well as this

He's what LD_DEBUG=all shows on some test code:

foo.1358336: 1358336: symbol=inflate; lookup in file=/usr/lib/x86_64-linux-gnu/perl/5.30/auto/Compress/Raw/Zlib/Zlib.so [0]
foo.1358336: 1358336: symbol=inflate; lookup in file=/lib/x86_64-linux-gnu/libz.so.1 [0]

Which yields the following:

foo.1358336:   1358336:	binding file /usr/lib/x86_64-linux-gnu/perl/5.30/auto/Compress/Raw/Zlib/Zlib.so [0] to /lib/x86_64-linux-gnu/libz.so.1 [0]: normal symbol `inflate'

A small rant: ELF systems (Solaris, Linux) situation is ever worse because they allow runtime symbol interposition (i.e. libraries compete for who wins over symbol names at program startup). There's no telling what symbol you will get, as the flat namespace model shows.

Some ideas to avoid any issues:

  • Use zlib.map from upstream when building zlib-src
  • -Bsymbolic to the linker/compiler flags? <-- not tested, unsure of how it would work unless you linked libperl.so / libperl.a at link time
  • Avoid building zlib-src and just depend on the system libz
@FGasper
Copy link

FGasper commented Apr 29, 2022

One way to do this would be to build libz.a, then link libz.a into the C::R::Zlib shared library. The linker would need --exclude-libs=ALL, too.

@pmqs
Copy link
Owner

pmqs commented Apr 30, 2022

Hey @monkburger

thanks for the feedback.

shout if I'm inferring too much here, but as things stand this is still a potential issue that hasn't been triggered anywhere that you know of?

Getting back to the issue, can I make sure I understand it properly?

This is only going to be an issue where Perl & C::R::Zlib are embedded in a larger application. Let's assume mod_perl for now. In the mod_perl setup they may be another component that wants to use zlib. That other component has been linked against the OS version of zlib (that has included versioned symbols for a while).

At load time the unversioned zlib symbols in C::R::Zlib will always be used in preference to the OS copy. That is a possible issue if the zlib source embedded in C::R::Zlib & the OS versions of zlib don't match.

Is that about it?

thanks
Paul

@monkburger
Copy link
Author

Hi Paul.

That is correct.

I may have a demonstration of this behavior very soon - with a crash. I'll keep you posted.

@pmqs pmqs self-assigned this May 2, 2022
@toddr
Copy link

toddr commented May 2, 2022

libperl links against distro zlib on AlmaLinux 8 because libnsl needs the distro zlib . As best I can tell,

$>lddtree /usr/local/cpanel/3rdparty/perl/532/lib/perl5/532/x86_64-linux-64int/CORE/libperl.so 
libperl.so => /usr/local/cpanel/3rdparty/perl/532/lib/perl5/532/x86_64-linux-64int/CORE/libperl.so (interpreter => none)
    libpthread.so.0 => /lib64/libpthread.so.0
        ld-linux-x86-64.so.2 => /lib64/ld-linux-x86-64.so.2
    libnsl.so.2 => /lib64/libnsl.so.2
        libtirpc.so.3 => /lib64/libtirpc.so.3
            libgssapi_krb5.so.2 => /lib64/libgssapi_krb5.so.2
                libkrb5support.so.0 => /lib64/libkrb5support.so.0
                    libselinux.so.1 => /lib64/libselinux.so.1
                        libpcre2-8.so.0 => /lib64/libpcre2-8.so.0
                libkeyutils.so.1 => /lib64/libkeyutils.so.1
                libcrypto.so.1.1 => /lib64/libcrypto.so.1.1
                    libz.so.1 => /lib64/libz.so.1
                libresolv.so.2 => /lib64/libresolv.so.2
            libkrb5.so.3 => /lib64/libkrb5.so.3
            libk5crypto.so.3 => /lib64/libk5crypto.so.3
            libcom_err.so.2 => /lib64/libcom_err.so.2
    libdl.so.2 => /lib64/libdl.so.2
    libm.so.6 => /lib64/libm.so.6
    libcrypt.so.1 => /lib64/libcrypt.so.1
    libutil.so.1 => /lib64/libutil.so.1
    libc.so.6 => /lib64/libc.so.6

@toddr
Copy link

toddr commented May 2, 2022

Right now I cannot build blead on AlmaLinux 8.

@FGasper
Copy link

FGasper commented May 2, 2022

As best I can tell, a reasonable fix would be, instead of slurping all of zlib’s .o files directly into Zlib.so, create libz.a from the .o files, then slurp libz.a into Zlib.so, with the --exclude-libs=ALL linker flag. That’ll prevent the symbol conflict because Zlib.so will no longer export zlib’s symbols.

You’ll need to exclude platforms where the linker doesn’t support --exclude-libs; AFAICT only GNU’s linker recognizes it.

@pmqs
Copy link
Owner

pmqs commented May 3, 2022

Right now I cannot build blead on AlmaLinux 8.

Is that because of this issue?

@FGasper
Copy link

FGasper commented May 3, 2022

echo 'int main() { return 0; }' | gcc '-Wl,--exclude-libs,ALL' -xc -o /dev/null -

^^ One-liner to determine if the linker supports the relevant option.

@toddr
Copy link

toddr commented May 3, 2022

Right now I cannot build blead on AlmaLinux 8.

Is that because of this issue?

Correct.

[2022-05-02 17:30:00] LOG       #   Failed test 'ZLIB_VERSION (1.2.12) matches Compress::Zlib::zlib_version'
[2022-05-02 17:30:00] LOG       #   at t/cz-01version.t line 34.
[2022-05-02 17:30:00] LOG       #          got: '1.2.12'
[2022-05-02 17:30:00] LOG       #     expected: '1.2.11'
[2022-05-02 17:30:00] LOG       # 
[2022-05-02 17:30:00] LOG       # The version of zlib.h does not match the version of libz
[2022-05-02 17:30:00] LOG       # 
[2022-05-02 17:30:00] LOG       # You have zlib.h version 1.2.12
[2022-05-02 17:30:00] LOG       #      and libz   version 1.2.11
[2022-05-02 17:30:00] LOG       # 
[2022-05-02 17:30:00] LOG       # You probably have two versions of zlib installed on your system.
[2022-05-02 17:30:00] LOG       # Try removing the one you don't want to use and rebuild.
[2022-05-02 17:30:00] LOG       # Looks like you failed 1 test of 2.
[2022-05-02 17:30:00] LOG       ../cpan/IO-Compress/t/cz-01version.t ............................... 

@pmqs
Copy link
Owner

pmqs commented May 3, 2022

Right now I cannot build blead on AlmaLinux 8.

Is that because of this issue?

Correct.

[2022-05-02 17:30:00] LOG       #   Failed test 'ZLIB_VERSION (1.2.12) matches Compress::Zlib::zlib_version'
[2022-05-02 17:30:00] LOG       #   at t/cz-01version.t line 34.
[2022-05-02 17:30:00] LOG       #          got: '1.2.12'
[2022-05-02 17:30:00] LOG       #     expected: '1.2.11'
[2022-05-02 17:30:00] LOG       # 
[2022-05-02 17:30:00] LOG       # The version of zlib.h does not match the version of libz
[2022-05-02 17:30:00] LOG       # 
[2022-05-02 17:30:00] LOG       # You have zlib.h version 1.2.12
[2022-05-02 17:30:00] LOG       #      and libz   version 1.2.11
[2022-05-02 17:30:00] LOG       # 
[2022-05-02 17:30:00] LOG       # You probably have two versions of zlib installed on your system.
[2022-05-02 17:30:00] LOG       # Try removing the one you don't want to use and rebuild.
[2022-05-02 17:30:00] LOG       # Looks like you failed 1 test of 2.
[2022-05-02 17:30:00] LOG       ../cpan/IO-Compress/t/cz-01version.t ............................... 

OK - means this isn't a hypothetical issue anymore

@pmqs pmqs added the bug Something isn't working label May 3, 2022
@pmqs
Copy link
Owner

pmqs commented May 3, 2022

I think there are two robust approaches to make this problem go away forever

  1. Statically link the object files, as you suggest @FGasper
    Concerns here are coming up with something that will work on all versions of Perl and all platforms.
  2. Drop support for building with local copies of the zlib sources as @monkburger suggests.
    My recollection on why this feature exists dates from a time when some platforms didn't have easy access to zlib. These days the main Linux distros don't build C:R:Z with the local zlib sources at all. No idea what the Windows/Mac distros do. Need to see if this is likely to break Strawberry Perl & Activestate?

@FGasper
Copy link

FGasper commented May 3, 2022

Is it possible/feasible to include zlib as a github submodule? If so, you maybe could piggyback on top of zlib’s own build process.

@FGasper
Copy link

FGasper commented May 3, 2022

@pmqs
Copy link
Owner

pmqs commented May 3, 2022

Is it possible/feasible to include zlib as a github submodule? If so, you maybe could piggyback on top of zlib’s own build process.

That's a possibility

@FGasper
Copy link

FGasper commented May 3, 2022

Maybe the static-linking approach could be confined to cases where the linker can --exclude-libs. That way the change would only affect GNU environments.

@pmqs
Copy link
Owner

pmqs commented May 3, 2022

Rough proof-of-concept: https://github.com/FGasper/Compress-Raw-Zlib/tree/exclude_libs

Thanks! Will take a look

@monkburger
Copy link
Author

monkburger commented May 3, 2022

A side note: zlib-src/zlib.h has this: Z_PREFIX

Which does this, ie:

#  ifdef Z_PREFIX_SET
#    define z_gzopen z_gzopen64
#    define z_gzseek z_gzseek64
#    define z_gztell z_gztell64
#    define z_gzoffset z_gzoffset64
#    define z_adler32_combine z_adler32_combine64
#    define z_crc32_combine z_crc32_combine64
#    define z_crc32_combine_gen z_crc32_combine_gen64
#  else
#    define gzopen gzopen64
#    define gzseek gzseek64
#    define gztell gztell64
#    define gzoffset gzoffset64
#    define adler32_combine adler32_combine64
#    define crc32_combine crc32_combine64

.. etc..

I compiled Compress::Raw::Zlib with -DZ_PREFIX and it seems to work (make test works), and the libz symbols are now prefixed with z_, ie:

65: 00000000000138b3    25 FUNC    GLOBAL DEFAULT   14 z_zError
66: 0000000000011926  1084 FUNC    GLOBAL DEFAULT   14 z_inflate_table
67: 000000000000d1b3    37 FUNC    GLOBAL DEFAULT   14 z_deflateSetHeader
69: 000000000000b74a     9 FUNC    GLOBAL DEFAULT   14 z_adler32_combine
70: 00000000000118a6    81 FUNC    GLOBAL DEFAULT   14 z_inflateMark
71: 0000000000011576    41 FUNC    GLOBAL DEFAULT   14 z_inflateGetHeader
74: 00000000000138a9    10 FUNC    GLOBAL DEFAULT   14 z_zlibCompileFlags
75: 0000000000011712   316 FUNC    GLOBAL DEFAULT   14 z_inflateCopy
76: 000000000001361c   185 FUNC    GLOBAL DEFAULT   14 z__tr_tally

@FGasper
Copy link

FGasper commented May 3, 2022

Z_PREFIX might be the most expedient resolution for the immediate situation, then … assuming there isn’t some other zlib out there compiled with that option, of course.

Long-term it would still seem safer not to export symbols at all.

@pmqs
Copy link
Owner

pmqs commented May 3, 2022

A side note: zlib-src/zlib.h has this: Z_PREFIX

Which does this, ie:

#  ifdef Z_PREFIX_SET
#    define z_gzopen z_gzopen64
#    define z_gzseek z_gzseek64
#    define z_gztell z_gztell64
#    define z_gzoffset z_gzoffset64
#    define z_adler32_combine z_adler32_combine64
#    define z_crc32_combine z_crc32_combine64
#    define z_crc32_combine_gen z_crc32_combine_gen64
#  else
#    define gzopen gzopen64
#    define gzseek gzseek64
#    define gztell gztell64
#    define gzoffset gzoffset64
#    define adler32_combine adler32_combine64
#    define crc32_combine crc32_combine64

.. etc..

I compiled Compress::Raw::Zlib with -DZ_PREFIX and it seems to work (make test works), and the libz symbols are now prefixed with z_, ie:

65: 00000000000138b3    25 FUNC    GLOBAL DEFAULT   14 z_zError
66: 0000000000011926  1084 FUNC    GLOBAL DEFAULT   14 z_inflate_table
67: 000000000000d1b3    37 FUNC    GLOBAL DEFAULT   14 z_deflateSetHeader
69: 000000000000b74a     9 FUNC    GLOBAL DEFAULT   14 z_adler32_combine
70: 00000000000118a6    81 FUNC    GLOBAL DEFAULT   14 z_inflateMark
71: 0000000000011576    41 FUNC    GLOBAL DEFAULT   14 z_inflateGetHeader
74: 00000000000138a9    10 FUNC    GLOBAL DEFAULT   14 z_zlibCompileFlags
75: 0000000000011712   316 FUNC    GLOBAL DEFAULT   14 z_inflateCopy
76: 000000000001361c   185 FUNC    GLOBAL DEFAULT   14 z__tr_tally

Completely forgot that zlib has that feature! This may be the path of least resistance to sort this out for now.

@monkburger
Copy link
Author

monkburger commented May 3, 2022

Z_PREFIX might be the most expedient resolution for the immediate situation, then … assuming there isn’t some other zlib out there compiled with that option, of course.

Long-term it would still seem safer not to export symbols at all.

Indeed.

A side note: zlib-src/zlib.h has this: Z_PREFIX
Which does this, ie:

#  ifdef Z_PREFIX_SET
#    define z_gzopen z_gzopen64
#    define z_gzseek z_gzseek64
#    define z_gztell z_gztell64
#    define z_gzoffset z_gzoffset64
#    define z_adler32_combine z_adler32_combine64
#    define z_crc32_combine z_crc32_combine64
#    define z_crc32_combine_gen z_crc32_combine_gen64
#  else
#    define gzopen gzopen64
#    define gzseek gzseek64
#    define gztell gztell64
#    define gzoffset gzoffset64
#    define adler32_combine adler32_combine64
#    define crc32_combine crc32_combine64

.. etc..
I compiled Compress::Raw::Zlib with -DZ_PREFIX and it seems to work (make test works), and the libz symbols are now prefixed with z_, ie:

65: 00000000000138b3    25 FUNC    GLOBAL DEFAULT   14 z_zError
66: 0000000000011926  1084 FUNC    GLOBAL DEFAULT   14 z_inflate_table
67: 000000000000d1b3    37 FUNC    GLOBAL DEFAULT   14 z_deflateSetHeader
69: 000000000000b74a     9 FUNC    GLOBAL DEFAULT   14 z_adler32_combine
70: 00000000000118a6    81 FUNC    GLOBAL DEFAULT   14 z_inflateMark
71: 0000000000011576    41 FUNC    GLOBAL DEFAULT   14 z_inflateGetHeader
74: 00000000000138a9    10 FUNC    GLOBAL DEFAULT   14 z_zlibCompileFlags
75: 0000000000011712   316 FUNC    GLOBAL DEFAULT   14 z_inflateCopy
76: 000000000001361c   185 FUNC    GLOBAL DEFAULT   14 z__tr_tally

Completely forgot that zlib has that feature! This may be the path of least resistance to sort this out for now.

It might be worthwhile to perhaps change the prefix to be crz_ instead of z_ ? (as a 'this is who I am') ?

monkburger pushed a commit to monkburger/Compress-Raw-Zlib that referenced this issue May 3, 2022
all libz (zlib-src/) symbols with z_, which should fix any symbol conflicts.

XXX: It might be worthwhile to change the z_ prefix to something unique to C::R::Zlib, ie: crz_.
@toddr
Copy link

toddr commented May 3, 2022

If you're going to do crz, you might as well go with Perl_crz ?

@pmqs
Copy link
Owner

pmqs commented May 3, 2022

If you're going to do crz, you might as well go with Perl_crz ?

Was thinking along the same lines. I had thought that zlib would let you pick the prefix, but it would seem that z_ is all that it has. Not that difficult to change the source to make another prefix happen though.

Also need to look at the static link POC https://github.com/FGasper/Compress-Raw-Zlib/tree/exclude_libs from @FGasper in more detail.

monkburger pushed a commit to monkburger/Compress-Raw-Zlib that referenced this issue May 3, 2022
This enables -DZ_PREFIX, but prefixes external symbols with perl_crz_ instead of z_ (only when building w/ -DZ_PREFIX)
@toddr
Copy link

toddr commented May 11, 2022

@pmqs I'm a little nervous about this fix not making 5.36 and Perl being unable to compile on RHEL/AlmaLinux 8. Are you ok with the PR?

@pmqs
Copy link
Owner

pmqs commented May 11, 2022

Hey @toddr

Yes, I am ok with the change. Just haven't had the opportunity to spin a new release. Should be able to get to it by the weekend. Is there a cutoff date for 5.36?

@toddr
Copy link

toddr commented May 11, 2022

I'm being told: "As soon as any blockers get resolved"

@pmqs
Copy link
Owner

pmqs commented May 11, 2022

OK - I'll get sorted asap

@pmqs pmqs closed this as completed in #11 May 13, 2022
@pmqs
Copy link
Owner

pmqs commented May 13, 2022

Just uploaded C:R:Zlib 2.104 to CPAN with fix from #11.

Thanks everyone for chipping in with this

@pghmcfc
Copy link
Contributor

pghmcfc commented May 13, 2022

It would be nice if BUILD_ZLIB is false (for building with system zlib) that the -DZ_PREFIX define in Makefile.PL wasn't there - the system zlib will of course have the regular symbol names and not the renamed versions.

toddr added a commit to toddr/perl that referenced this issue May 13, 2022
This commit synchs into blead versions 2.104 for CPAN distribution:

   Compress-Raw-Zlib

  2.104 13 April 2022

Changes:

* Merge pull request Perl#11 from monkburger/symbol_fix_2
  Fri May 13 07:17:19 2022 +0100
  64aea2d3f78946d7df4096eadfa0d7267f4439a5

* perl_crz -> Perl_crz
  Tue May 3 18:19:24 2022 +0000
  20502e6c2eba8ddcad80b20574e840457c0cb369

* This is a slightly different way to fix pmqs/Compress-Raw-Zlib#8
  Tue May 3 18:06:48 2022 +0000
  d9cd27fb212da7455b6ba44729ca11bb441f3950

* add tests for crc32/adler32_combine
  Mon May 2 16:18:13 2022 +0100
  dcfe9ef439790f1a4fae81cf3eac38cfeb848294
@GreenReaper
Copy link

I think I may have run into what @pghmcfc mentioned (although it's possible I'm doing something wrong, too).

After doing a portupgrade of this package on FreeBSD (which compiles it from source), munin-run apache_accesses gives

/usr/local/lib/perl5/site_perl/mach/5.32/auto/Compress/Raw/Zlib/Zlib.so: Undefined symbol "z_zlibVersion"

The munin plugin in question runs a Perl script using LWP::UserAgent, which may need to handle zlib-compressed streams.

The distribution applies the following patch, setting BUILD_ZLIB to false:

--- config.in.orig      2019-03-16 16:41:19 UTC
+++ config.in
@@ -16,9 +16,9 @@
 #    Setting the Gzip OS Code
 #

-BUILD_ZLIB      = True
-INCLUDE         = ./zlib-src
-LIB             = ./zlib-src
+BUILD_ZLIB      = False
+INCLUDE         = /usr/include
+LIB             = /usr/lib
 OLD_ZLIB        = False
 GZIP_OS_CODE    = AUTO_DETECT

I added the following to end of the port's files/patch-config.in (bearing in mind that the last line of the existing patch is empty) and re-ran the portupgrade again, and it worked:

--- Makefile.PL
+++ Makefile.PL
@@ -75,7 +75,7 @@
     MAME         => 'Compress::Raw::Zlib',
     VERSION_FROM => 'lib/Compress/Raw/Zlib.pm',
     INC          => "-I$ZLIB_INCLUDE" ,
-    DEFINE       => "-DNO_VIZ -DZ_SOLO $OLD_ZLIB $WALL -DZ_PREFIX -DGZIP_OS_CODE=$GZIP_OS_CODE $USE_PPPORT_H" ,
+    DEFINE       => "-DNO_VIZ -DZ_SOLO $OLD_ZLIB $WALL -DGZIP_OS_CODE=$GZIP_OS_CODE $USE_PPPORT_H" ,
     XS           => { 'Zlib.xs' => 'Zlib.c'},
     'depend'     => { 'Makefile'   => 'config.in' },
     'clean'      => { FILES        => '*.c constants.h constants.xs' },

I'm not sure if that breaks it in some other way for other purposes, but it seems to have fixed my issue.

@pghmcfc
Copy link
Contributor

pghmcfc commented May 14, 2022

For me the problem manifested just by running the test suite:

$ make test COMPRESS_ZLIB_RUN_MOST=1
"/usr/bin/perl" -MExtUtils::Command::MM -e 'cp_nonempty' -- Zlib.bs blib/arch/auto/Compress/Raw/Zlib/Zlib.bs 644
PERL_DL_NONLAZY=1 "/usr/bin/perl" "-MExtUtils::Command::MM" "-MTest::Harness" "-e" "undef *Test::Harness::Switches; test_harness(0, 'blib/lib', 'blib/arch')" t/*.t
# Running Perl version  5.034001
t/000prereq.t ...... ok

#     Failed test (t/01version.t at line 23)
#     Tried to use 'Compress::Raw::Zlib'.
#     Error:  Can't load '/builddir/build/BUILD/Compress-Raw-Zlib-2.104/blib/arch/auto/Compress/Raw/Zlib/Zlib.so' for module Compress::Raw::Zlib: /builddir/build/BUILD/Compress-Raw-Zlib-2.104/blib/arch/auto/Compress/Raw/Zlib/Zlib.so: undefined symbol: z_deflateEnd at /usr/lib64/perl5/DynaLoader.pm line 193.
#  at (eval 7) line 2.
# Compilation failed in require at (eval 7) line 2.
# BEGIN failed--compilation aborted at t/01version.t line 23.
Bareword "ZLIB_VERSION" not allowed while "strict subs" in use at t/01version.t line 31.
Bareword "Compress::Raw::Zlib::zlib_version" not allowed while "strict subs" in use at t/01version.t line 32.
Execution of t/01version.t aborted due to compilation errors.
# Looks like you planned 3 tests but only ran 2.
# Looks like your test died just after 2.
t/01version.t ...... 
Dubious, test returned 255 (wstat 65280, 0xff00)
Failed 2/3 subtests 
... etc.

@pmqs pmqs reopened this May 14, 2022
@pmqs
Copy link
Owner

pmqs commented May 14, 2022

Issue reproduced - I'll get a fix together

rjbs pushed a commit to Perl/perl5 that referenced this issue May 14, 2022
This commit synchs into blead versions 2.104 for CPAN distribution:

   Compress-Raw-Zlib

  2.104 13 April 2022

Changes:

* Merge pull request #11 from monkburger/symbol_fix_2
  Fri May 13 07:17:19 2022 +0100
  64aea2d3f78946d7df4096eadfa0d7267f4439a5

* perl_crz -> Perl_crz
  Tue May 3 18:19:24 2022 +0000
  20502e6c2eba8ddcad80b20574e840457c0cb369

* This is a slightly different way to fix pmqs/Compress-Raw-Zlib#8
  Tue May 3 18:06:48 2022 +0000
  d9cd27fb212da7455b6ba44729ca11bb441f3950

* add tests for crc32/adler32_combine
  Mon May 2 16:18:13 2022 +0100
  dcfe9ef439790f1a4fae81cf3eac38cfeb848294
@pmqs
Copy link
Owner

pmqs commented May 14, 2022

Issue fixed in https://github.com/pmqs/Compress-Raw-Zlib/releases/tag/v2.105

@GreenReaper
Copy link

Thank you! (The Changes file has 2.104 again, but I don't know if that has any material impact. )

@monkburger
Copy link
Author

Seems to be fixed. Thanks everyone!

atoomic added a commit to atoomic/perl5 that referenced this issue Jul 20, 2022
From ChangeLog:

  2.202 27 June 2022

      * Z_NULL should be 'UV' rather than 'PV'
        pmqs/Compress-Raw-Zlib#17
        Sun Jun 26 22:02:04 2022 +0100
        de28f0335d3d605d696b19d43fc48de42272455c

  2.201 25 June 2022

      * 2.021
        Sat Jun 25 08:42:46 2022 +0100
        85416cab509c18c5fa3f923de7b45b6c7c0f7a6f

      * 2.201
        Sat Jun 25 08:39:26 2022 +0100
        b3d63862b2ff4ac9d28e23be500c0d32ad69dd11

      * More zlib-ng updates
        Thu Jun 23 22:42:13 2022 +0100
        313f626425181702b5fc80af2b6ea7eed41d5a9d

      * Fix test count regression in t/07bufsize.t (Perl#16)
        Wed Jun 22 09:45:11 2022 +0100
        98dc5b4a2b30c26752b6f686462b06b8db72a5e4

  2.200 21 June 2022

      * Added zlib-ng support
        pmqs/Compress-Raw-Zlib#9

      * Only set Z_SOLO when building zlib sources
      * pmqs/Compress-Raw-Zlib#12
        Tue Jun 7 10:13:00 2022 +0100
        c44e0b732e214b7f77d42a3af6ae64ef944cee90

  2.105 14 April 2022

      * Add Compress::Raw::Zlib::VERSION to output
        Sat May 14 15:16:57 2022 +0100
        3e22c93169a67986017f64d9a2e5085c417d8624

      * Dump version info when running test harness
        Sat May 14 15:10:17 2022 +0100
        ca9f33ba0323d0abc91a83800636f180b2b44162

      * Fix use of ZLIB_INCLUDE/LIB
        Sat May 14 09:01:38 2022 +0100
        8a7d4a97d7441b61a8a888342766419044fa5a33

      * More fixes for BUILD_ZLIB off
        Sat May 14 08:54:04 2022 +0100
        2d9650094dab90858ef58bfbda62f3bc60e159e4

      * Add BUILD_ZLIB to the matrix
        Sat May 14 08:31:54 2022 +0100
        b61b92fc9d06bf04f1adec337357ffbd39535901

      * Merge branch 'master' of
      * https://github.com/pmqs/Compress-Raw-Zlib
        Sat May 14 08:27:14 2022 +0100
        3ac7d0d3d45ae263402fab1ebb3835e2ae16c5a6

      * Fix for BUILD_ZLIB disabled
        Sat May 14 08:25:34 2022 +0100
        b0f04e37fb58a34ef01767ad16a8f63ca868eec6

      * Add BUILD_ZLIB to the matrix
        Sat May 14 08:22:56 2022 +0100
        aa8f5ff981c7305c995d4e2f798ae0d7d45866a5

  2.104 13 April 2022

      * Merge pull request #11 from monkburger/symbol_fix_2
        Fri May 13 07:17:19 2022 +0100
        64aea2d3f78946d7df4096eadfa0d7267f4439a5

      * perl_crz -> Perl_crz
        Tue May 3 18:19:24 2022 +0000
        20502e6c2eba8ddcad80b20574e840457c0cb369

      * This is a slightly different way to fix
      * pmqs/Compress-Raw-Zlib#8
        Tue May 3 18:06:48 2022 +0000
        d9cd27fb212da7455b6ba44729ca11bb441f3950

      * add tests for crc32/adler32_combine
        Mon May 2 16:18:13 2022 +0100
        dcfe9ef439790f1a4fae81cf3eac38cfeb848294
atoomic added a commit to Perl/perl5 that referenced this issue Jul 20, 2022
From ChangeLog:

  2.202 27 June 2022

      * Z_NULL should be 'UV' rather than 'PV'
        pmqs/Compress-Raw-Zlib#17
        Sun Jun 26 22:02:04 2022 +0100
        de28f0335d3d605d696b19d43fc48de42272455c

  2.201 25 June 2022

      * 2.021
        Sat Jun 25 08:42:46 2022 +0100
        85416cab509c18c5fa3f923de7b45b6c7c0f7a6f

      * 2.201
        Sat Jun 25 08:39:26 2022 +0100
        b3d63862b2ff4ac9d28e23be500c0d32ad69dd11

      * More zlib-ng updates
        Thu Jun 23 22:42:13 2022 +0100
        313f626425181702b5fc80af2b6ea7eed41d5a9d

      * Fix test count regression in t/07bufsize.t (#16)
        Wed Jun 22 09:45:11 2022 +0100
        98dc5b4a2b30c26752b6f686462b06b8db72a5e4

  2.200 21 June 2022

      * Added zlib-ng support
        pmqs/Compress-Raw-Zlib#9

      * Only set Z_SOLO when building zlib sources
      * pmqs/Compress-Raw-Zlib#12
        Tue Jun 7 10:13:00 2022 +0100
        c44e0b732e214b7f77d42a3af6ae64ef944cee90

  2.105 14 April 2022

      * Add Compress::Raw::Zlib::VERSION to output
        Sat May 14 15:16:57 2022 +0100
        3e22c93169a67986017f64d9a2e5085c417d8624

      * Dump version info when running test harness
        Sat May 14 15:10:17 2022 +0100
        ca9f33ba0323d0abc91a83800636f180b2b44162

      * Fix use of ZLIB_INCLUDE/LIB
        Sat May 14 09:01:38 2022 +0100
        8a7d4a97d7441b61a8a888342766419044fa5a33

      * More fixes for BUILD_ZLIB off
        Sat May 14 08:54:04 2022 +0100
        2d9650094dab90858ef58bfbda62f3bc60e159e4

      * Add BUILD_ZLIB to the matrix
        Sat May 14 08:31:54 2022 +0100
        b61b92fc9d06bf04f1adec337357ffbd39535901

      * Merge branch 'master' of
      * https://github.com/pmqs/Compress-Raw-Zlib
        Sat May 14 08:27:14 2022 +0100
        3ac7d0d3d45ae263402fab1ebb3835e2ae16c5a6

      * Fix for BUILD_ZLIB disabled
        Sat May 14 08:25:34 2022 +0100
        b0f04e37fb58a34ef01767ad16a8f63ca868eec6

      * Add BUILD_ZLIB to the matrix
        Sat May 14 08:22:56 2022 +0100
        aa8f5ff981c7305c995d4e2f798ae0d7d45866a5

  2.104 13 April 2022

      * Merge pull request #11 from monkburger/symbol_fix_2
        Fri May 13 07:17:19 2022 +0100
        64aea2d3f78946d7df4096eadfa0d7267f4439a5

      * perl_crz -> Perl_crz
        Tue May 3 18:19:24 2022 +0000
        20502e6c2eba8ddcad80b20574e840457c0cb369

      * This is a slightly different way to fix
      * pmqs/Compress-Raw-Zlib#8
        Tue May 3 18:06:48 2022 +0000
        d9cd27fb212da7455b6ba44729ca11bb441f3950

      * add tests for crc32/adler32_combine
        Mon May 2 16:18:13 2022 +0100
        dcfe9ef439790f1a4fae81cf3eac38cfeb848294
scottchiefbaker pushed a commit to scottchiefbaker/perl5 that referenced this issue Nov 3, 2022
This commit synchs into blead versions 2.104 for CPAN distribution:

   Compress-Raw-Zlib

  2.104 13 April 2022

Changes:

* Merge pull request Perl#11 from monkburger/symbol_fix_2
  Fri May 13 07:17:19 2022 +0100
  64aea2d3f78946d7df4096eadfa0d7267f4439a5

* perl_crz -> Perl_crz
  Tue May 3 18:19:24 2022 +0000
  20502e6c2eba8ddcad80b20574e840457c0cb369

* This is a slightly different way to fix pmqs/Compress-Raw-Zlib#8
  Tue May 3 18:06:48 2022 +0000
  d9cd27fb212da7455b6ba44729ca11bb441f3950

* add tests for crc32/adler32_combine
  Mon May 2 16:18:13 2022 +0100
  dcfe9ef439790f1a4fae81cf3eac38cfeb848294
scottchiefbaker pushed a commit to scottchiefbaker/perl5 that referenced this issue Nov 3, 2022
From ChangeLog:

  2.202 27 June 2022

      * Z_NULL should be 'UV' rather than 'PV'
        pmqs/Compress-Raw-Zlib#17
        Sun Jun 26 22:02:04 2022 +0100
        de28f0335d3d605d696b19d43fc48de42272455c

  2.201 25 June 2022

      * 2.021
        Sat Jun 25 08:42:46 2022 +0100
        85416cab509c18c5fa3f923de7b45b6c7c0f7a6f

      * 2.201
        Sat Jun 25 08:39:26 2022 +0100
        b3d63862b2ff4ac9d28e23be500c0d32ad69dd11

      * More zlib-ng updates
        Thu Jun 23 22:42:13 2022 +0100
        313f626425181702b5fc80af2b6ea7eed41d5a9d

      * Fix test count regression in t/07bufsize.t (Perl#16)
        Wed Jun 22 09:45:11 2022 +0100
        98dc5b4a2b30c26752b6f686462b06b8db72a5e4

  2.200 21 June 2022

      * Added zlib-ng support
        pmqs/Compress-Raw-Zlib#9

      * Only set Z_SOLO when building zlib sources
      * pmqs/Compress-Raw-Zlib#12
        Tue Jun 7 10:13:00 2022 +0100
        c44e0b732e214b7f77d42a3af6ae64ef944cee90

  2.105 14 April 2022

      * Add Compress::Raw::Zlib::VERSION to output
        Sat May 14 15:16:57 2022 +0100
        3e22c93169a67986017f64d9a2e5085c417d8624

      * Dump version info when running test harness
        Sat May 14 15:10:17 2022 +0100
        ca9f33ba0323d0abc91a83800636f180b2b44162

      * Fix use of ZLIB_INCLUDE/LIB
        Sat May 14 09:01:38 2022 +0100
        8a7d4a97d7441b61a8a888342766419044fa5a33

      * More fixes for BUILD_ZLIB off
        Sat May 14 08:54:04 2022 +0100
        2d9650094dab90858ef58bfbda62f3bc60e159e4

      * Add BUILD_ZLIB to the matrix
        Sat May 14 08:31:54 2022 +0100
        b61b92fc9d06bf04f1adec337357ffbd39535901

      * Merge branch 'master' of
      * https://github.com/pmqs/Compress-Raw-Zlib
        Sat May 14 08:27:14 2022 +0100
        3ac7d0d3d45ae263402fab1ebb3835e2ae16c5a6

      * Fix for BUILD_ZLIB disabled
        Sat May 14 08:25:34 2022 +0100
        b0f04e37fb58a34ef01767ad16a8f63ca868eec6

      * Add BUILD_ZLIB to the matrix
        Sat May 14 08:22:56 2022 +0100
        aa8f5ff981c7305c995d4e2f798ae0d7d45866a5

  2.104 13 April 2022

      * Merge pull request Perl#11 from monkburger/symbol_fix_2
        Fri May 13 07:17:19 2022 +0100
        64aea2d3f78946d7df4096eadfa0d7267f4439a5

      * perl_crz -> Perl_crz
        Tue May 3 18:19:24 2022 +0000
        20502e6c2eba8ddcad80b20574e840457c0cb369

      * This is a slightly different way to fix
      * pmqs/Compress-Raw-Zlib#8
        Tue May 3 18:06:48 2022 +0000
        d9cd27fb212da7455b6ba44729ca11bb441f3950

      * add tests for crc32/adler32_combine
        Mon May 2 16:18:13 2022 +0100
        dcfe9ef439790f1a4fae81cf3eac38cfeb848294
@pmqs pmqs mentioned this issue Aug 18, 2023
5 tasks
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working
Projects
None yet
6 participants