build: add CONFIG_APP_REPRODUCIBLE_BUILD menuconfig option to produce reproducible binaries

This commit is contained in:
Fu Hanxi
2021-10-09 15:42:14 +08:00
parent a65de0ab1f
commit 9919b75ec1
8 changed files with 63 additions and 2 deletions

View File

@@ -67,6 +67,7 @@ tools/ci/test_build_system.sh
tools/ci/test_build_system_cmake.sh
tools/ci/test_check_kconfigs.py
tools/ci/test_configure_ci_environment.sh
tools/ci/test_reproducible_build.sh
tools/cmake/convert_to_cmake.py
tools/docker/entrypoint.sh
tools/docker/hooks/build

View File

@@ -0,0 +1,26 @@
#!/usr/bin/env bash
set -euo
for path in \
"examples/get-started/hello_world" \
"examples/bluetooth/nimble/blecent"; do
cd "${IDF_PATH}/${path}"
echo "CONFIG_APP_REPRODUCIBLE_BUILD=y" >>sdkconfig.defaults
rm -f sdkconfig
idf.py -B build_first fullclean build
idf.py -B build_second fullclean build
for item in \
"partition_table/partition-table.bin" \
"bootloader/bootloader.bin" \
"bootloader/bootloader.elf" \
"bootloader/bootloader.map" \
"*.bin" \
"*.elf" \
"*.map"; do
diff -s build_first/${item} build_second/${item} # use glob, don't use double quotes
done
done