Go to file
Marc Herbert b4edab69de Revert "cmake: make sure sha1 is computed without filters"
Commit 3315681c69 ("cmake: make sure sha1 is computed without
filters") added the `--no-filters` option to the `git hash-object`
invocation used to produce a `src/` checksum embedded in all firmware
binaries and .ldc files.

This fixed a small mismatch for the (very few) people using the
_asymmetric_ `autocrlf = input`. However it created a huge mismatch for
the numerous people using the _symetric_ `autocrlf = true`.

So revert that commit, remove `--no-filters` and replace it with a build
time warning.

`--no-filters` produces a checksum of the files as they are on the
filesystem, as opposed to how they would be input into git after
optional CRLF -> LF conversion.

When `--no-filters` was added, no one was compiling in Windows. Most
developers were not performing any conversion because there is no
`autocrlf` conversion by default on Linux.  Files were identical inside
and outside of git and life was simple.

Simple life except for at least one indomitable Linux developer who had
the _asymmetric_ `autocrlf = input` setting. Also, the SOF git repo
always had two exceptional (and generated) files with CRLF end of lines;
see issue #5917 for details (all other files have LF end of lines). So
for that "asymmetric" developer only and these two files only, `autocrlf
= input` converted these 2 files to LF before hashing and this caused a
different checksum. `--no-filters` stopped that conversion and "solved"
that mismatch.

But now Windows has entered the stage. On Windows, the default is
usually (and unfortunately) the symmetric `autocrlf = true`. It is the
default for Github's Windows runner. This symmetric default converts ALL
other files to CRLF when extracting them out of git. This causes `git
hash-object --no-filters` to produce a _different hash for all but 2
files on Windows_!

The only solution is to:

1. Drop the `--no-filters` to align everything on what is _stored in
   git_. What is stored in git is the only thing we are sure all users have
   in common.

2. Request users to use only _symmetric_ `autocrlf` settings so any
   optional input+output conversion cancels itself out.

3. Convert odd files and make sure they all have LF end of lines.

4. In the future, drop this entire git hash-object technique which is
   flawed in multiple ways and has been causing multiple issues. Much,
   much more work than this very small revert though.

Signed-off-by: Marc Herbert <marc.herbert@intel.com>
2023-01-18 12:17:51 +00:00
.github github: add new SPDX-README.md and show it when checkpatch fails 2023-01-11 17:10:43 +00:00
app config: mtl: enabling power domains 2022-12-14 11:43:34 +01:00
doc header: rtos: decouple headers into rtos specific directories. 2022-08-31 12:01:07 +01:00
installer scripts: fix check whether CMake configuration succeeded 2023-01-04 16:09:08 +00:00
keys Move signing key pair from rimage/ up one level 2020-05-13 10:16:04 +01:00
rimage@ba8534bb23 west.yml: upgrade rimage to ba8534bb23 2023-01-05 15:05:11 +02:00
scripts Revert "cmake: make sure sha1 is computed without filters" 2023-01-18 12:17:51 +00:00
smex header: rtos: decouple headers into rtos specific directories. 2022-08-31 12:01:07 +01:00
src audio: google: remove post processor 2023-01-13 14:27:33 -08:00
submanifests Add west.yml configuring zephyr dependencies from sof 2022-08-03 11:43:22 +01:00
test Audio: Math: Add HiFi3 version implementation of FFT 2023-01-11 14:28:00 +00:00
third_party/include Updating of GoogleRtcAudioProcessing component to provide a more general behavior 2022-12-09 16:00:16 -08:00
tools topology2: remove HDMI from topologies for MTL 2023-01-18 13:40:06 +02:00
xtos/include mutex: add mutex support in XTOS 2022-12-19 13:26:19 +02:00
zephyr memory: Add virtual memory regions gathering and structs 2023-01-17 16:10:44 +02:00
.gitignore .gitignore: stop ignoring CMake files for in-source doxygen builds 2022-07-19 09:38:30 +01:00
.gitmodules .gitmodules: remove .git suffix from rimage.git 2021-09-30 15:56:44 +01:00
.travis.yml .github: replace HAVE_CONFIG KConfig hack with an override 2021-03-23 12:17:22 +00:00
CMakeLists.txt platform: Add Zephyr native_posix-based emulation environment 2022-12-07 17:25:39 +00:00
CODEOWNERS owners: fix google audio component path 2023-01-11 13:26:14 +00:00
Kconfig kconfig: allow SOF Kconfig to be included in other projects 2021-08-04 12:34:39 +01:00
Kconfig.sof Performance: remove perf avg macro and reduce print profiling logs 2022-11-01 10:45:00 +00:00
Kconfig.xtos-build kconfig: move BUILD_VM_ROM Kconfig.xtos-build 2021-05-25 15:53:39 +01:00
Kconfig.xtos-dbg Kconfig: use uncached buffer only for debugging 2021-09-29 16:36:27 +01:00
Kconfig.zephyr-log sof: replace log calls with zephyr logging api 2022-04-27 15:05:24 +01:00
LICENCE LICENCE: Add Khronos Group Inc license header 2022-04-12 19:41:27 +03:00
README.md README.md: add link to discord.com/zephyr#sof channel 2022-12-23 11:13:31 +00:00
west.yml zephyr: ace: pm_runtime: Use new register name & update zephyr revision 2023-01-13 13:11:08 +02:00

README.md

Sound Open Firmware

Status

Daily Actions

Gitter chat

#sof channel on discord.com

Documentation

See docs

Running the tests

See unit testing documentation

Deployment

TODO: Add additional notes about how to deploy this on a live system

Contributing

See Contributing to the Project

License

This project is licensed under the BSD Clause 3 - see the LICENCE file for details