Patch release on top of v2.0 — fixes a real library-build bug, no changes
to the CLI binaries' behavior or the .pm3 format (same appversion 20,
fully compatible with v2.0 archives).
Fixes
- Library build was broken in v2.0.
packmp3.cppused
std::atomic/std::threadfor the-k/-thintra-file chunking
feature, but<atomic>/<thread>were only conditionally included
(CLI-only guard) —make lib/make so/make dll, or any manual
-DBUILD_LIBbuild, failed to compile entirely. Reported independently
by a downstream consumer (ytool) building from the v2.0 tag; reproduced
and confirmed before fixing. - Library headers were missing
extern "C".packmp3lib.h/
packmp3dll.hdeclaredpmplib_*without C linkage, so the "C-linkage
API" actually had C++ name mangling — a plain C consumer, a.deffile,
orGetProcAddress-by-name needed the compiler-mangled name. Fixed;
exported symbols are now clean (pmplib_convert_file2file, etc.). - Added a 32-bit Windows DLL target (
make dll-x86) — packMP3 only
shipped a 64-bit DLL before. - Cleaned up leftover "PMP" wording in CLI help/error text that should
have said.pm3(a few strings were missed in the v1.0→v2.0 rename).
Verified before publishing
- Reproduced the v2.0 library-build bug from scratch against the tagged
commit, then verifiedv2.0abuilds clean with the exact reported
recipe (g++ -O3 -std=c++17 -DBUILD_LIB -fPIC -shared ...). - Full corpus lossless round-trip (11 files ×
-k1/2/4, 33/33
bit-exact) with the actual release binary before upload. - Static lib, shared lib, and both Windows DLLs (32/64-bit) built and
exercised with a real C++ consumer — lossless round-trip confirmed;
both DLLs additionally verified on live Windows 7 SP1 x86 / Windows 10
x64 VMs.
Downloads
Same layout as v2.0: packMP3_linux_x64, packMP3_win_x64.exe,
packMP3_win_x86.exe (CLI), plus packMP3-2.0a-linux-x64-lib.tar.gz /
packMP3-2.0a-win64-lib.zip / packMP3-2.0a-win32-lib.zip (library
bundles: lib + headers + .def + README per platform).
sha256sum -c SHA256SUMS.txt
See v2.0 for the
full feature changelog (MPEG-1/2/2.5 support, .pm3 format, -k
chunking, etc.) — this release only fixes the library build.