Fortran dependency check fails on Linux with Intel Compiler 16 Update 3
The Fortran dependency check fails on Linux with Intel Compiler 16 Update 3 and results in a compile cascade. It works fine with Intel Compiler 15. I have not tested on Windows.
The reason for the bug is that the function cmDependsFortran::ModulesDiffer fails. The Intel-generated modules differ at offset 49 and 50, where they store a binary timestamp. The function tries to ignore this difference by skipping until the first occurence of the sequence linefeed-zero (0x0A 0x00). Of course this check fails if there is an additional occurence of the sequence before the timestamp, which is the case for modules created with Intel Compiler 16 Update 3 as shown in this hex dump (first two bytes):
0000000 0a 00 01 00 30 d3 05 00 7e 0b 00 00 6b 38 32 30 0000020 33 30 39 00 0b 00 00 00 61 06 00 00 00 00 00 00 0000040 00 00 00 00 31 36 2e 30 00 00 00 00 00 00 00 00 0000060 7c 57 bd 57 00 00 00 00 03 00 00 00 00 00 00 00 0000100 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 * 0000240 0a 00 00 00 00 00 00 00 2f 72 65 64 2f 63 6d 74
I suggest to skip the first 64 bytes before starting to search for the linefeed-zero sequence.