Go to:
Gentoo Home
Documentation
Forums
Lists
Bugs
Planet
Store
Wiki
Get Gentoo!
Gentoo's Bugzilla – Attachment 631330 Details for
Bug 716520
sys-kernel/gentoo-sources-5.6.2+: Add support for ZSTD-compressed kernel and initramfs
Home
|
New
–
[Ex]
|
Browse
|
Search
|
Privacy Policy
|
[?]
|
Reports
|
Requests
|
Help
|
New Account
|
Log In
[x]
|
Forgot Password
Login:
[x]
[patch]
lib: prepare zstd for preboot environment
5000_ZSTD-v4-1-8-prepare-zstd-for-preboot-env.patch (text/plain), 2.94 KB, created by
Mike Pagano
on 2020-04-08 14:53:06 UTC
(
hide
)
Description:
lib: prepare zstd for preboot environment
Filename:
MIME Type:
Creator:
Mike Pagano
Created:
2020-04-08 14:53:06 UTC
Size:
2.94 KB
patch
obsolete
>diff --git a/lib/zstd/decompress.c b/lib/zstd/decompress.c >index 269ee9a796c1..73ded63278cf 100644 >--- a/lib/zstd/decompress.c >+++ b/lib/zstd/decompress.c >@@ -2490,6 +2490,7 @@ size_t ZSTD_decompressStream(ZSTD_DStream *zds, ZSTD_outBuffer *output, ZSTD_inB > } > } > >+#ifndef ZSTD_PREBOOT > EXPORT_SYMBOL(ZSTD_DCtxWorkspaceBound); > EXPORT_SYMBOL(ZSTD_initDCtx); > EXPORT_SYMBOL(ZSTD_decompressDCtx); >@@ -2529,3 +2530,4 @@ EXPORT_SYMBOL(ZSTD_insertBlock); > > MODULE_LICENSE("Dual BSD/GPL"); > MODULE_DESCRIPTION("Zstd Decompressor"); >+#endif >diff --git a/lib/zstd/fse_decompress.c b/lib/zstd/fse_decompress.c >index a84300e5a013..0b353530fb3f 100644 >--- a/lib/zstd/fse_decompress.c >+++ b/lib/zstd/fse_decompress.c >@@ -47,6 +47,7 @@ > ****************************************************************/ > #include "bitstream.h" > #include "fse.h" >+#include "zstd_internal.h" > #include <linux/compiler.h> > #include <linux/kernel.h> > #include <linux/string.h> /* memcpy, memset */ >@@ -60,14 +61,6 @@ > enum { FSE_static_assert = 1 / (int)(!!(c)) }; \ > } /* use only *after* variable declarations */ > >-/* check and forward error code */ >-#define CHECK_F(f) \ >- { \ >- size_t const e = f; \ >- if (FSE_isError(e)) \ >- return e; \ >- } >- > /* ************************************************************** > * Templates > ****************************************************************/ >diff --git a/lib/zstd/zstd_internal.h b/lib/zstd/zstd_internal.h >index 1a79fab9e13a..dac753397f86 100644 >--- a/lib/zstd/zstd_internal.h >+++ b/lib/zstd/zstd_internal.h >@@ -127,7 +127,14 @@ static const U32 OF_defaultNormLog = OF_DEFAULTNORMLOG; > * Shared functions to include for inlining > *********************************************/ > ZSTD_STATIC void ZSTD_copy8(void *dst, const void *src) { >- memcpy(dst, src, 8); >+ /* >+ * zstd relies heavily on gcc being able to analyze and inline this >+ * memcpy() call, since it is called in a tight loop. Preboot mode >+ * is compiled in freestanding mode, which stops gcc from analyzing >+ * memcpy(). Use __builtin_memcpy() to tell gcc to analyze this as a >+ * regular memcpy(). >+ */ >+ __builtin_memcpy(dst, src, 8); > } > /*! ZSTD_wildcopy() : > * custom version of memcpy(), can copy up to 7 bytes too many (8 bytes if length==0) */ >@@ -137,13 +144,16 @@ ZSTD_STATIC void ZSTD_wildcopy(void *dst, const void *src, ptrdiff_t length) > const BYTE* ip = (const BYTE*)src; > BYTE* op = (BYTE*)dst; > BYTE* const oend = op + length; >- /* Work around https://gcc.gnu.org/bugzilla/show_bug.cgi?id=81388. >+#if defined(GCC_VERSION) && GCC_VERSION >= 70000 && GCC_VERSION < 70200 >+ /* >+ * Work around https://gcc.gnu.org/bugzilla/show_bug.cgi?id=81388. > * Avoid the bad case where the loop only runs once by handling the > * special case separately. This doesn't trigger the bug because it > * doesn't involve pointer/integer overflow. > */ > if (length <= 8) > return ZSTD_copy8(dst, src); >+#endif > do { > ZSTD_copy8(op, ip); > op += 8;
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Actions:
View
|
Diff
Attachments on
bug 716520
:
630946
| 631330 |
631332
|
631334
|
631336
|
631338
|
631340
|
631342
|
631344
|
631346
|
632454