liboqs/scripts/copy_from_xkcp
Amir Ayupov 3dd478e157 [NFCI] Move Keccak rhotates tables to rodata
rhotates tables are placed to .text section which confuses tools such as
BOLT. Move them to rodata to unbreak and avoid polluting icache/iTLB
with data.

1. Update patch file using the steps in scripts/copy_from_xkcp/README
2. Apply the updated patch with scripts/copy_from_xkcp/package.sh

Sync with XKCP upstream: https://github.com/XKCP/XKCP/pull/137
Similar fix in OpenSSL: https://github.com/openssl/openssl/pull/21440
Redo of https://github.com/open-quantum-safe/liboqs/pull/1508

Signed-off-by: Amir Ayupov <aaupov@fb.com>
2024-04-02 10:49:03 -04:00
..
2021-04-06 10:34:45 -04:00

Usage
-----
From liboqs/scripts/copy_from_xkcp run
$ ./package.sh
This will output liboqs-xkcp-todaysdate.tar.gz

From the top level liboqs directory:
$ rm -rf src/common/sha3/xkcp_low
$ tar xzf scripts/copy_from_xkcp/liboqs-xkcp-todaysdate.tar.gz

Patching
--------
From liboqs/scripts/copy_from_xkcp run
$ ./checkout.sh
This will create `upstream` and `upstream-patched` directories.
The `upstream-patched` directory is `upstream` with the patches
from the `patches` directory applied.

Make any necessary changes in the `upstream-patched` directory,
then run
$ ./update-patches.sh

Your new patches will be included in the next run of ./package.sh.