Ubuntu patches uname -p to return the processor type:
https://git.launchpad.net/ubuntu/+source/coreutils/tree/debian/patches/80_fedora_sysinfo.patch?h=ubuntu/oracular
and Fedora also did before Fedora 38:
cd953e11dd
but in general, uname -p returns "unknown". Use uname -m instead.
Fixes build error:
/usr/bin/ld: /tmp/ccgv9E4e.o: in function `_start':
freestanding.c:(.text+0x6255a): multiple definition of `_start'; /usr/lib/gcc/x86_64-redhat-linux/14/../../../../lib64/crt1.o:(.text+0x0): first defined here
collect2: error: ld returned 1 exit status
When the freestanding test is built with any kind of optimization
that enables vectorized loops, special care must be taken to align
the stack for _start() at a 16-byte boundary.
the complexity of test-lz4-list.py is overkill,
it's unclear why some tests are failing after sending output to stdout instead of stderr,
seems like a fairly obscure parsing logic,
there's no point maintaining that complexity.
fixes#1193.
Implicit `stdout` has been a behavior of the `lz4` cli since its early days,
but it ends up being confusing for users, which do not expect this behavior.
The feature is already deprecated, it has been issuing a warning message for several years.
It's time to cut it out.
The text at the top of each source file was already specifying 2.0-or-later,
but this wasn't clearly reflected in the full-text license in COPYING,
which was the old 2.0 license, which can be interpreted as 2.0-only.
Note that the license of `liblz4`, the library in `lib/` directory,
is unchanged, and remains the more permissive `BSD 2-clause`.
by not searching into the 2nd buffer
which is an inefficiency (less compression opportunities)
but makes the code sensibly simpler to read
and is a use-case avoided by lz4frame.
and make it build the MT version of lz4
with an option that is enabled by default but can be disabled on demand.
Also :
- added make target mesonbuild, for easy local build
- made huge tests friendlier to MT variant, for faster testing time
Note: effectively limited to using the dictionary once for now,
as opposed to once per block when blocks are independent
(no impact when blocks are linked: dictionary is supposed to be used once anyway)
Also :
- clarifies that default lz4frame block size is 64 KB
- refactor LZ4 Frame spec, dictionary paragraph
- updated manual
PR #1308 introduces a new symbol, `LZ4_compress_fast_extState_destSize()`,
which, upon inspection, doesn't seem to work as advertised.
In particular, it fails if `dstCapacity` is not large enough,
as opposed to adjusting input size to fit within `dstCapacity`.
Even if it had worked, it would have resulted in problems
for the existing `LZ4_compress_fast_extState()`,
that would have stopped failing when `dstCapacity` is not large enough,
resulting in silent input truncation.
Changed the approach.
It appears the wanted functionality already exists within `lz4` source code,
and is called `LZ4_compress_destSize_extState()`.
It wasn't exposed dues to a (non-verified) problem regarding lz4 state on exit:
it's claimed that since the `_destSize` doesn't completely consume the input,
the state may end up in an "unfinished" status,
making it dangerous to re-employ in later invocations.
Fixed that by enforcing a state initialization at the end of operation.
Also : added some tests,
ensure that `LZ4_compress_fast_extState()` fails as expected when `dstCapacity` is not large enough,
and ensure that `LZ4_compress_destSize_extState()` does succeed in the same circumstance,
by consume less input.
Finally, expose `LZ4_compress_destSize_extState()` as an advanced experimental symbol.