Skip to contentSkip to conversation

Makefile.extrawarn: Move -Wunaligned-access to W=1

PATCH In review Nathan Chancellor 3 participants 4 messages Feb 2, 2022 – Feb 8, 2022

Subsystems (2)
lore
Share & tools
lore

Nathan Chancellor

author maintainer
#0 lore raw

PATCH v2 1/1 Makefile.extrawarn: Move -Wunaligned-access to W=1

-Wunaligned-access is a new warning in clang that is default enabled for arm and arm64 under certain circumstances within the clang frontend (see LLVM commit below). On v5.17-rc2, an ARCH=arm allmodconfig build shows 1284 total/70 unique instances of this warning (most of the instances are in header files), which is quite noisy.

To keep a normal build green through CONFIG_WERROR, only show this warning with W=1, which will allow automated build systems to catch new instances of the warning so that the total number can be driven down to zero eventually since catching unaligned accesses at compile time would be generally useful.

---

v1 -> v2: https://lore.kernel.org/r/[email protected]/

* Move to W=1 instead of W=2 so that new instances are caught (Arnd).
* Add links to the ClangBuiltLinux issue tracker.

 scripts/Makefile.extrawarn | 1 +
 1 file changed, 1 insertion(+)
scripts/Makefile.extrawarn +1 -0
index d53825503874..8be892887d71 100644
@@ -51,6 +51,7 @@ KBUILD_CFLAGS += -Wno-sign-compare
 KBUILD_CFLAGS += -Wno-format-zero-length
 KBUILD_CFLAGS += $(call cc-disable-warning, pointer-to-enum-cast)
 KBUILD_CFLAGS += -Wno-tautological-constant-out-of-range-compare
+KBUILD_CFLAGS += $(call cc-disable-warning, unaligned-access)
 endif
 
 endif

base-commit: 26291c54e111ff6ba87a164d85d4a4e134b7315c

Signature · 1 line
2.35.1
Reviewed-by on v2 1/1
#1 lore raw
Quoted 13 lines · Nathan Chancellor

-Wunaligned-access is a new warning in clang that is default enabled for arm and arm64 under certain circumstances within the clang frontend (see LLVM commit below). On v5.17-rc2, an ARCH=arm allmodconfig build shows 1284 total/70 unique instances of this warning (most of the instances are in header files), which is quite noisy.

To keep a normal build green through CONFIG_WERROR, only show this warning with W=1, which will allow automated build systems to catch new instances of the warning so that the total number can be driven down to zero eventually since catching unaligned accesses at compile time would be generally useful.

Quoted 5 lines

Thanks to you and Arnd for working out whether this is important to pursue. Sounds like it is.

Quoted 27 lines

---

v1 -> v2: https://lore.kernel.org/r/[email protected]/

* Move to W=1 instead of W=2 so that new instances are caught (Arnd).
* Add links to the ClangBuiltLinux issue tracker.

 scripts/Makefile.extrawarn | 1 +
 1 file changed, 1 insertion(+)
scripts/Makefile.extrawarn +1 -0
index d53825503874..8be892887d71 100644
@@ -51,6 +51,7 @@ KBUILD_CFLAGS += -Wno-sign-compare
 KBUILD_CFLAGS += -Wno-format-zero-length
 KBUILD_CFLAGS += $(call cc-disable-warning, pointer-to-enum-cast)
 KBUILD_CFLAGS += -Wno-tautological-constant-out-of-range-compare
+KBUILD_CFLAGS += $(call cc-disable-warning, unaligned-access)
 endif
 
 endif

base-commit: 26291c54e111ff6ba87a164d85d4a4e134b7315c --
2.35.1

Signature · 2 lines
Thanks,
~Nick Desaulniers
#2 lore raw
Quoted 21 lines · Nick Desaulniers
Quoted 13 lines · Nathan Chancellor

-Wunaligned-access is a new warning in clang that is default enabled for arm and arm64 under certain circumstances within the clang frontend (see LLVM commit below). On v5.17-rc2, an ARCH=arm allmodconfig build shows 1284 total/70 unique instances of this warning (most of the instances are in header files), which is quite noisy.

To keep a normal build green through CONFIG_WERROR, only show this warning with W=1, which will allow automated build systems to catch new instances of the warning so that the total number can be driven down to zero eventually since catching unaligned accesses at compile time would be generally useful.

Quoted 5 lines
Quoted 5 lines

Thanks to you and Arnd for working out whether this is important to pursue. Sounds like it is.

Quoted 1 line

---

I assume this should be considered as a bug fix to avoid the error for the combination of CONFIG_WERROR=y and the latest Clang.

Applied to linux-kbuild/fixes.
Thanks.

Quoted 31 lines
Quoted 22 lines

v1 -> v2: https://lore.kernel.org/r/[email protected]/

* Move to W=1 instead of W=2 so that new instances are caught (Arnd).
* Add links to the ClangBuiltLinux issue tracker.

 scripts/Makefile.extrawarn | 1 +
 1 file changed, 1 insertion(+)
scripts/Makefile.extrawarn +1 -0
index d53825503874..8be892887d71 100644
@@ -51,6 +51,7 @@ KBUILD_CFLAGS += -Wno-sign-compare
 KBUILD_CFLAGS += -Wno-format-zero-length
 KBUILD_CFLAGS += $(call cc-disable-warning, pointer-to-enum-cast)
 KBUILD_CFLAGS += -Wno-tautological-constant-out-of-range-compare
+KBUILD_CFLAGS += $(call cc-disable-warning, unaligned-access)
 endif
 
 endif
Quoted 4 lines

base-commit: 26291c54e111ff6ba87a164d85d4a4e134b7315c --
2.35.1

--
Thanks,
~Nick Desaulniers

Signature · 2 lines
Best Regards
Masahiro Yamada
author maintainer
#3 lore raw
Quoted 29 lines · Masahiro Yamada
Quoted 21 lines · Nick Desaulniers
Quoted 13 lines · Nathan Chancellor

-Wunaligned-access is a new warning in clang that is default enabled for arm and arm64 under certain circumstances within the clang frontend (see LLVM commit below). On v5.17-rc2, an ARCH=arm allmodconfig build shows 1284 total/70 unique instances of this warning (most of the instances are in header files), which is quite noisy.

To keep a normal build green through CONFIG_WERROR, only show this warning with W=1, which will allow automated build systems to catch new instances of the warning so that the total number can be driven down to zero eventually since catching unaligned accesses at compile time would be generally useful.

Quoted 5 lines
Quoted 5 lines

Thanks to you and Arnd for working out whether this is important to pursue. Sounds like it is.

Quoted 1 line

---

Quoted 6 lines

I assume this should be considered as a bug fix to avoid the error for the combination of CONFIG_WERROR=y and the latest Clang.

Applied to linux-kbuild/fixes.
Thanks.

Yes, this is what I was hoping for! Thank you, I'll try to make that more clear in the future.

Cheers,
Nathan

Quoted 37 lines
Quoted 31 lines
Quoted 22 lines

v1 -> v2: https://lore.kernel.org/r/[email protected]/

* Move to W=1 instead of W=2 so that new instances are caught (Arnd).
* Add links to the ClangBuiltLinux issue tracker.

 scripts/Makefile.extrawarn | 1 +
 1 file changed, 1 insertion(+)
scripts/Makefile.extrawarn +1 -0
index d53825503874..8be892887d71 100644
@@ -51,6 +51,7 @@ KBUILD_CFLAGS += -Wno-sign-compare
 KBUILD_CFLAGS += -Wno-format-zero-length
 KBUILD_CFLAGS += $(call cc-disable-warning, pointer-to-enum-cast)
 KBUILD_CFLAGS += -Wno-tautological-constant-out-of-range-compare
+KBUILD_CFLAGS += $(call cc-disable-warning, unaligned-access)
 endif
 
 endif
Quoted 4 lines

base-commit: 26291c54e111ff6ba87a164d85d4a4e134b7315c --
2.35.1

--
Thanks,
~Nick Desaulniers

Signature · 2 lines
Best Regards
Masahiro Yamada