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
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
ide
reports
toolchain host-tools.cmake: Corrected sdk download url 2019-03-21 09:07:53 -05:00
usage
util
ccache.cmake
cfb.cmake
dts.cmake
extensions.cmake extensions.cmake: need unique strings, not random ones 2019-03-28 14:27:47 -05:00
extra_flags.cmake
fpu-for-gcc-m-cpu.cmake
gcc-m-cpu.cmake
generic_toolchain.cmake
git.cmake
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
pristine.cmake
python.cmake
target_toolchain.cmake
version.cmake
zephyr_module.cmake kconfig: Move Kconfig.modules to the root build directory 2019-03-28 09:23:02 -04:00