grub-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [PATCH v5 1/2] Import upstream zstd-1.3.6


From: Daniel Kiper
Subject: Re: [PATCH v5 1/2] Import upstream zstd-1.3.6
Date: Tue, 13 Nov 2018 15:06:55 +0100
User-agent: NeoMutt/20170113 (1.7.2)

On Mon, Nov 12, 2018 at 02:14:45PM -0800, Nick Terrell wrote:
> - Import zstd-1.3.6 from upstream
> - Add zstd's module.c file
> - Add the zstd module to Makefile.core.def
>
> Import zstd-1.3.6 from upstream [1]. Only the files need for decompression
> are imported. I used the latest zstd release, which includes patches [2] to
> build cleanly in GRUB.
>
> I included the script used to import zstd-1.3.6 below at the bottom of the
> commit message.
>
> Upstream zstd commit hash: 4fa456d7f12f8b27bd3b2f5dfd4f46898cb31c24
> Upstream zstd commit name: Merge pull request #1354 from facebook/dev
>
> Zstd requires some posix headers, which it gets from posix_wrap.
> This can be checked by inspecting the .Po files generated by automake,
> which contain the header dependencies. After building run the command
> `cat grub-core/lib/zstd/.deps-core/*.Po` to see the dependencies [3].
> The only OS dependencies are:
>
> - stddef.h, which is already a dependency in posix_wrap, and used for size_t
>   by lzo and xz.
> - stdarg.h, which comes from the grub/misc.h header, and we don't use in zstd.
>
> All the types like uint64_t are typedefed to grub_uint64_t under the hood.
> The only exception is size_t, which comes from stddef.h. This is already the
> case for lzo and xz. I don't think there are any cross-compilation concerns,
> because cross-compilers provide their own system headers (and it would already
> be broken).
>
> [1] https://github.com/facebook/zstd/releases/tag/v1.3.6
> [2] https://github.com/facebook/zstd/pull/1344
> [3] https://gist.github.com/terrelln/7a16b92f5a1b3aecf980f944b4a966c4
>
> ```
> #!/bin/sh -e
>
> curl -L -O 
> https://github.com/facebook/zstd/releases/download/v1.3.6/zstd-1.3.6.tar.gz
> curl -L -O 
> https://github.com/facebook/zstd/releases/download/v1.3.6/zstd-1.3.6.tar.gz.sha256
> sha256sum --check zstd-1.3.6.tar.gz.sha256
> tar xzf zstd-1.3.6.tar.gz
>
> SRC_LIB="zstd-1.3.6/lib"
> DST_LIB="grub-core/lib/zstd"
> rm -rf $DST_LIB
> mkdir -p $DST_LIB
> cp $SRC_LIB/zstd.h $DST_LIB/
> cp $SRC_LIB/common/*.[hc] $DST_LIB/
> cp $SRC_LIB/decompress/*.[hc] $DST_LIB/
> rm $DST_LIB/{pool.[hc],threading.[hc]}
> rm -rf zstd-1.3.6*
> echo SUCCESS!
> ```
>
> Signed-off-by: Nick Terrell <address@hidden>

Reviewed-by: Daniel Kiper <address@hidden>

Daniel



reply via email to

[Prev in Thread] Current Thread [Next in Thread]