On Wed, Aug 09, 2023 at 03:42:44PM -0500, Pierre-Louis Bossart wrote:
Ah, I still think you will need to pass CC to make directly, rather than through the environment but you should be able to prevent merge_config.sh from getting in the way by passing '-m' to avoid having it invoke make itself, then you can add a 'make olddefconfig' step after that, perhaps something like this?
- name: build start run: | export ARCH=x86_64 KCFLAGS="-Wall -Werror" export MAKEFLAGS=j"$(nproc)" bash kconfig/kconfig-sof-default.sh -m
The -m doesn't work since it's added last, but it's not even needed. The sequence below re-adds clang, that's just fine.
Ah right!
make CC=clang olddefconfig make CC=clang sound/ make CC=clang drivers/soundwire/ make CC=clang
The fun part now is that I get tons of unrelated errors - but at least that's a sign we're using the clang compiler
sound/pci/hda/hda_bind.c:232:18: error: format string is not a string literal (potentially insecure) [-Werror,-Wformat-security]
Heh, I suppose that is somewhat self inflicted with the '-Wall -Wextra', as '-Wformat-security' gets re-enabled after being disabled in the main Makefile. May be worth sticking a '-Wno-format-security' back on there. Glad to hear that it is working now and thank you for testing with clang to help catch issues before they make it to a tree :)
Cheers, Nathan