zephyr/cmake
Marc Herbert 915a353255 extensions.cmake: need unique strings, not random ones
1. To support being called multiple times, the function
zephyr_library_compile_options() uses unique
options_interface_lib_${random} names. These only need to be unique, not
random. So replace them with a simple MD5 hash of the ${item} argument.

To reproduce quickly run:
  sanitycheck -b -p qemu_xtensa --tag shell
... a few times and compare the output directories.

This bug sits for now at the top of the list of build reproducibility
issues the most bizarre and difficult to root cause. When running
sanitycheck over a large sample of configurations it was affecting
only qemu_xtensa/**/zephyr/arch/arch/xtensa/core/startup/Makefile
files (and their corresponding CMakeFiles/TargetDirectories.txt),
randomly ordering the following three Make targets and only these
three: rebuild_cache, edit_cache, arch__xtensa__core__startup.

The key to root causing was cmake --trace-expand which prints the random
string.

2. generate_unique_target_name_from_filename() also generated a random
string for the same uniqueness reason. This one was easier to root cause
and reproduce with: sanitycheck --tag gen_inc_file

Signed-off-by: Marc Herbert <marc.herbert@intel.com>
2019-03-28 14:27:47 -05:00
..
app cmake: Deprecate 'set_conf_file' 2019-03-01 09:44:09 +01:00
backports cmake: Fixed python detection bug 2018-12-21 11:13:03 +01:00
compiler host-gcc/target.cmake: stop discarding CMAKE_<tool>_FLAGS for x86 2019-03-21 00:21:27 -07:00
emu cmake: add debugserver target for nsim 2019-03-20 00:35:43 -07:00
flash cmake: Use west installation directly 2019-01-29 10:15:01 +01:00
ide cmake: Eclipse CDT4 generator amendment 2018-10-17 18:16:55 -04:00
reports
toolchain host-tools.cmake: Corrected sdk download url 2019-03-21 09:07:53 -05:00
usage cmake: Fix how usage finds board names 2019-01-31 03:17:19 -06:00
util cmake: Whitespace and commentary fixes 2018-12-20 12:23:50 +01:00
ccache.cmake
cfb.cmake subsys: fb: add support for generating CFB font headers at build time 2018-11-28 11:46:00 +01:00
dts.cmake cmake: Run dts before kconfig 2019-02-01 10:16:06 -06:00
extensions.cmake extensions.cmake: need unique strings, not random ones 2019-03-28 14:27:47 -05:00
extra_flags.cmake lib/os: Conditionally eliminate alloca/VLA usage 2019-02-28 10:06:35 -08:00
fpu-for-gcc-m-cpu.cmake soc: arm: Kconfig option to indicate double-precision FP 2019-02-08 14:09:18 -06:00
gcc-m-cpu.cmake
generic_toolchain.cmake x86_64: use host toolchain 2019-02-10 11:57:17 -06:00
git.cmake cmake: more deterministic git describe --abbrev=12 2019-02-27 10:27:47 +01:00
hex.cmake
host-tools.cmake west: require version 0.5.6 2019-03-25 22:46:56 -04:00
kconfig.cmake kconfig: Move Kconfig.modules to the root build directory 2019-03-28 09:23:02 -04:00
kobj.cmake cmake: Use variables for target names 2019-01-19 07:21:55 -05:00
pristine.cmake
python.cmake cmake: boilerplate: Move out finding git+python to separate cmake files 2018-12-27 19:24:51 -05:00
target_toolchain.cmake cmake: Document CMAKE_SYSTEM_-variables, and add CMAKE_SYSTEM_VERSION 2018-12-20 11:15:20 +01:00
version.cmake
zephyr_module.cmake kconfig: Move Kconfig.modules to the root build directory 2019-03-28 09:23:02 -04:00