Buildroot Archive on lore.kernel.org
 help / color / mirror / Atom feed
* [Buildroot] [PATCH 1/1] package/ibm-sw-tpm2: fix build with gcc-15.x
@ 2026-09-16 23:12 Bernd Kuhls
  2026-09-17  6:37 ` Thomas Petazzoni via buildroot
  2026-09-25 14:46 ` Raphaël Mélotte via buildroot
  0 siblings, 2 replies; 3+ messages in thread
From: Bernd Kuhls @ 2026-09-16 23:12 UTC (permalink / raw)
  To: buildroot; +Cc: Philippe Reynes

Fixes:
https://autobuild.buildroot.net/results/d43/d4364f6e3636c696471bf8cba6d308439130e53a/

In function 'MakeIv',
    inlined from 'TestSymmetricAlgorithm' at AlgorithmTests.c:197:25:
AlgorithmTests.c:181:23: error: writing 32 bytes into a region of size
 16 [-Werror=stringop-overflow=]

The build error occurs with gcc 15.x on some platforms, gcc 14.x is not
affected.

These defconfigs build without this patch:

BR2_x86_64=y
BR2_GCC_VERSION_14_X=y
BR2_PACKAGE_IBM_SW_TPM2=y

BR2_x86_64=y
BR2_x86_x86_64_v4=y
BR2_GCC_VERSION_14_X=y
BR2_PACKAGE_IBM_SW_TPM2=y

BR2_x86_64=y
BR2_PACKAGE_IBM_SW_TPM2=y

This gcc-15 based defconfig is broken:

BR2_x86_64=y
BR2_x86_x86_64_v4=y
BR2_PACKAGE_IBM_SW_TPM2=y

The build error is not related to the recent bump of the package from
rev183-2024-03-27 to rev183-2026-08-26 because no changes were committed
upstream to AlgorithmTests.c since rev183-2024-03-27:
https://github.com/kgoldman/ibmswtpm2/commits/master/src/AlgorithmTests.c

Signed-off-by: Bernd Kuhls <bernd@kuhls.net>
---
 ...15-stringop-overflow-error-in-MakeIv.patch | 45 +++++++++++++++++++
 1 file changed, 45 insertions(+)
 create mode 100644 package/ibm-sw-tpm2/0003-tpm2-fix-GCC-15-stringop-overflow-error-in-MakeIv.patch

diff --git a/package/ibm-sw-tpm2/0003-tpm2-fix-GCC-15-stringop-overflow-error-in-MakeIv.patch b/package/ibm-sw-tpm2/0003-tpm2-fix-GCC-15-stringop-overflow-error-in-MakeIv.patch
new file mode 100644
index 0000000000..9b22522b36
--- /dev/null
+++ b/package/ibm-sw-tpm2/0003-tpm2-fix-GCC-15-stringop-overflow-error-in-MakeIv.patch
@@ -0,0 +1,45 @@
+From b35faee1224f5bccf759464e69f724a03421c8a9 Mon Sep 17 00:00:00 2001
+From: Arthur Gautier <arthur.gautier@arista.com>
+Date: Tue, 9 Jun 2026 21:52:07 -0700
+Subject: [PATCH] tpm2: fix GCC 15 stringop-overflow error in MakeIv
+
+When compiling with GCC 15 using `CFLAGS=-march=x86-64-v4`, the compiler's
+aggressively optimized vectorizer triggers a false-positive
+-Wstringop-overflow error. Because x86-64-v4 enables wide AVX-512 registers,
+the compiler misinterprets the loop unrolling and warns that a 64-byte
+vector write is overflowing the destination buffer:
+```
+  tpm2/TPMCmd/tpm/src/crypt/AlgorithmTests.c:158:17: error:
+  writing 64 bytes into a region of size 15 [-Werror=stringop-overflow=]
+    158 |             *iv = i;
+```
+
+This fixes the warning by marking the `iv` output pointer parameter as
+`volatile`. This inhibits the over-aggressive loop vectorization on this
+specific buffer, silencing the compiler error without changing the
+underlying logic.
+
+Signed-off-by: Arthur Gautier <arthur.gautier@arista.com>
+
+Source: https://github.com/stefanberger/libtpms/commit/2d9b00c4e42677cd0a9b67344f4d873ddc409a21
+Upstream: https://github.com/kgoldman/ibmswtpm2/pull/25
+
+[Bernd: rebased for ibm-sw-tpm2 package]
+Signed-off-by: Bernd Kuhls <bernd@kuhls.net>
+---
+ src/AlgorithmTests.c | 6 +++---
+ 1 file changed, 3 insertions(+), 3 deletions(-)
+
+diff --git a/src/AlgorithmTests.c b/src/AlgorithmTests.c
+index e8549adca..28d8e780a 100644
+--- a/src/AlgorithmTests.c
++++ b/src/AlgorithmTests.c
+@@ -162,7 +162,7 @@
+ // Internal function to make the appropriate IV depending on the mode.
+ static UINT32 MakeIv(TPM_ALG_ID mode,  // IN: symmetric mode
+ 		     UINT32     size,  // IN: block size of the algorithm
+-		     BYTE*      iv     // OUT: IV to fill in
++		     volatile BYTE*      iv     // OUT: IV to fill in
+ 		     )
+ {
+     BYTE i;
-- 
2.47.3

_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot

^ permalink raw reply related	[flat|nested] 3+ messages in thread

* Re: [Buildroot] [PATCH 1/1] package/ibm-sw-tpm2: fix build with gcc-15.x
  2026-09-16 23:12 [Buildroot] [PATCH 1/1] package/ibm-sw-tpm2: fix build with gcc-15.x Bernd Kuhls
@ 2026-09-17  6:37 ` Thomas Petazzoni via buildroot
  2026-09-25 14:46 ` Raphaël Mélotte via buildroot
  1 sibling, 0 replies; 3+ messages in thread
From: Thomas Petazzoni via buildroot @ 2026-09-17  6:37 UTC (permalink / raw)
  To: Bernd Kuhls; +Cc: buildroot, Philippe Reynes

On Thu, Sep 17, 2026 at 01:12:35AM +0200, Bernd Kuhls wrote:
> Fixes:
> https://autobuild.buildroot.net/results/d43/d4364f6e3636c696471bf8cba6d308439130e53a/
> 
> In function 'MakeIv',
>     inlined from 'TestSymmetricAlgorithm' at AlgorithmTests.c:197:25:
> AlgorithmTests.c:181:23: error: writing 32 bytes into a region of size
>  16 [-Werror=stringop-overflow=]
> 
> The build error occurs with gcc 15.x on some platforms, gcc 14.x is not
> affected.
> 
> These defconfigs build without this patch:
> 
> BR2_x86_64=y
> BR2_GCC_VERSION_14_X=y
> BR2_PACKAGE_IBM_SW_TPM2=y
> 
> BR2_x86_64=y
> BR2_x86_x86_64_v4=y
> BR2_GCC_VERSION_14_X=y
> BR2_PACKAGE_IBM_SW_TPM2=y
> 
> BR2_x86_64=y
> BR2_PACKAGE_IBM_SW_TPM2=y
> 
> This gcc-15 based defconfig is broken:
> 
> BR2_x86_64=y
> BR2_x86_x86_64_v4=y
> BR2_PACKAGE_IBM_SW_TPM2=y
> 
> The build error is not related to the recent bump of the package from
> rev183-2024-03-27 to rev183-2026-08-26 because no changes were committed
> upstream to AlgorithmTests.c since rev183-2024-03-27:
> https://github.com/kgoldman/ibmswtpm2/commits/master/src/AlgorithmTests.c
> 
> Signed-off-by: Bernd Kuhls <bernd@kuhls.net>

Applied to master, thanks!

Best regards,

Thomas Petazzoni
-- 
Thomas Petazzoni, co-owner and CEO, Bootlin
Embedded Linux and Kernel engineering and training
https://bootlin.com
_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot

^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: [Buildroot] [PATCH 1/1] package/ibm-sw-tpm2: fix build with gcc-15.x
  2026-09-16 23:12 [Buildroot] [PATCH 1/1] package/ibm-sw-tpm2: fix build with gcc-15.x Bernd Kuhls
  2026-09-17  6:37 ` Thomas Petazzoni via buildroot
@ 2026-09-25 14:46 ` Raphaël Mélotte via buildroot
  1 sibling, 0 replies; 3+ messages in thread
From: Raphaël Mélotte via buildroot @ 2026-09-25 14:46 UTC (permalink / raw)
  To: buildroot, Bernd Kuhls; +Cc: Raphaël Mélotte

In reply of:
> Fixes:
> https://autobuild.buildroot.net/results/d43/d4364f6e3636c696471bf8cba6d308439130e53a/
> 
> In function 'MakeIv',
>     inlined from 'TestSymmetricAlgorithm' at AlgorithmTests.c:197:25:
> AlgorithmTests.c:181:23: error: writing 32 bytes into a region of size
>  16 [-Werror=stringop-overflow=]
> 
> The build error occurs with gcc 15.x on some platforms, gcc 14.x is not
> affected.
> 
> These defconfigs build without this patch:
> 
> BR2_x86_64=y
> BR2_GCC_VERSION_14_X=y
> BR2_PACKAGE_IBM_SW_TPM2=y
> 
> BR2_x86_64=y
> BR2_x86_x86_64_v4=y
> BR2_GCC_VERSION_14_X=y
> BR2_PACKAGE_IBM_SW_TPM2=y
> 
> BR2_x86_64=y
> BR2_PACKAGE_IBM_SW_TPM2=y
> 
> This gcc-15 based defconfig is broken:
> 
> BR2_x86_64=y
> BR2_x86_x86_64_v4=y
> BR2_PACKAGE_IBM_SW_TPM2=y
> 
> The build error is not related to the recent bump of the package from
> rev183-2024-03-27 to rev183-2026-08-26 because no changes were committed
> upstream to AlgorithmTests.c since rev183-2024-03-27:
> https://github.com/kgoldman/ibmswtpm2/commits/master/src/AlgorithmTests.c
> 
> Signed-off-by: Bernd Kuhls <bernd@kuhls.net>

Applied to 2026.08.x. Thanks

> ---
>  ...15-stringop-overflow-error-in-MakeIv.patch | 45 +++++++++++++++++++
>  1 file changed, 45 insertions(+)
>  create mode 100644 package/ibm-sw-tpm2/0003-tpm2-fix-GCC-15-stringop-overflow-error-in-MakeIv.patch
> 
> diff --git a/package/ibm-sw-tpm2/0003-tpm2-fix-GCC-15-stringop-overflow-error-in-MakeIv.patch b/package/ibm-sw-tpm2/0003-tpm2-fix-GCC-15-stringop-overflow-error-in-MakeIv.patch
> new file mode 100644
> index 0000000000..9b22522b36
> --- /dev/null
> +++ b/package/ibm-sw-tpm2/0003-tpm2-fix-GCC-15-stringop-overflow-error-in-MakeIv.patch
> @@ -0,0 +1,45 @@
> +From b35faee1224f5bccf759464e69f724a03421c8a9 Mon Sep 17 00:00:00 2001
> +From: Arthur Gautier <arthur.gautier@arista.com>
> +Date: Tue, 9 Jun 2026 21:52:07 -0700
> +Subject: [PATCH] tpm2: fix GCC 15 stringop-overflow error in MakeIv
> +
> +When compiling with GCC 15 using `CFLAGS=-march=x86-64-v4`, the compiler's
> +aggressively optimized vectorizer triggers a false-positive
> +-Wstringop-overflow error. Because x86-64-v4 enables wide AVX-512 registers,
> +the compiler misinterprets the loop unrolling and warns that a 64-byte
> +vector write is overflowing the destination buffer:
> +```
> +  tpm2/TPMCmd/tpm/src/crypt/AlgorithmTests.c:158:17: error:
> +  writing 64 bytes into a region of size 15 [-Werror=stringop-overflow=]
> +    158 |             *iv = i;
> +```
> +
> +This fixes the warning by marking the `iv` output pointer parameter as
> +`volatile`. This inhibits the over-aggressive loop vectorization on this
> +specific buffer, silencing the compiler error without changing the
> +underlying logic.
> +
> +Signed-off-by: Arthur Gautier <arthur.gautier@arista.com>
> +
> +Source: https://github.com/stefanberger/libtpms/commit/2d9b00c4e42677cd0a9b67344f4d873ddc409a21
> +Upstream: https://github.com/kgoldman/ibmswtpm2/pull/25
> +
> +[Bernd: rebased for ibm-sw-tpm2 package]
> +Signed-off-by: Bernd Kuhls <bernd@kuhls.net>
> +---
> + src/AlgorithmTests.c | 6 +++---
> + 1 file changed, 3 insertions(+), 3 deletions(-)
> +
> +diff --git a/src/AlgorithmTests.c b/src/AlgorithmTests.c
> +index e8549adca..28d8e780a 100644
> +--- a/src/AlgorithmTests.c
> ++++ b/src/AlgorithmTests.c
> +@@ -162,7 +162,7 @@
> + // Internal function to make the appropriate IV depending on the mode.
> + static UINT32 MakeIv(TPM_ALG_ID mode,  // IN: symmetric mode
> + 		     UINT32     size,  // IN: block size of the algorithm
> +-		     BYTE*      iv     // OUT: IV to fill in
> ++		     volatile BYTE*      iv     // OUT: IV to fill in
> + 		     )
> + {
> +     BYTE i;
_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot

^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2026-09-25 14:46 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-09-16 23:12 [Buildroot] [PATCH 1/1] package/ibm-sw-tpm2: fix build with gcc-15.x Bernd Kuhls
2026-09-17  6:37 ` Thomas Petazzoni via buildroot
2026-09-25 14:46 ` Raphaël Mélotte via buildroot

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox