* [PATCH] optee-test: Suppress new gcc-15 -Wunterminated-string-initialization
@ 2025-05-07 1:41 Denys Dmytriyenko
2025-05-07 6:31 ` [meta-arm] " Mikko Rapeli
0 siblings, 1 reply; 3+ messages in thread
From: Denys Dmytriyenko @ 2025-05-07 1:41 UTC (permalink / raw)
To: meta-arm; +Cc: Denys Dmytriyenko
From: Denys Dmytriyenko <denys@konsulko.com>
Mark corresponding arrays with nonstring attribute to suppress the new
gcc-15 warning -Wunterminated-string-initialization that becomes an
error due to the global -Werror.
Signed-off-by: Denys Dmytriyenko <denys@konsulko.com>
---
...-15-Wunterminated-string-initializat.patch | 69 +++++++++++++++++++
.../optee/optee-test_4.4.0.bb | 1 +
2 files changed, 70 insertions(+)
create mode 100644 meta-arm/recipes-security/optee/optee-test/0001-Suppress-new-gcc-15-Wunterminated-string-initializat.patch
diff --git a/meta-arm/recipes-security/optee/optee-test/0001-Suppress-new-gcc-15-Wunterminated-string-initializat.patch b/meta-arm/recipes-security/optee/optee-test/0001-Suppress-new-gcc-15-Wunterminated-string-initializat.patch
new file mode 100644
index 00000000..0f52f3d6
--- /dev/null
+++ b/meta-arm/recipes-security/optee/optee-test/0001-Suppress-new-gcc-15-Wunterminated-string-initializat.patch
@@ -0,0 +1,69 @@
+From a8e58203dcb4c13ee340259cd2692202ac8414d1 Mon Sep 17 00:00:00 2001
+From: Denys Dmytriyenko <denys@konsulko.com>
+Date: Tue, 6 May 2025 21:35:55 -0400
+Subject: [PATCH] Suppress new gcc-15 -Wunterminated-string-initialization
+
+GCC 15 now warns when character arrays are being initialized by strings
+and terminating NUL character doesn't fit. GCC 15.1 also allows marking
+such arrays with nonstring attribute to suppress the warning. W/o such
+attribute, the warning becomes error due to the global -Werror. Add the
+attribute accordingly.
+
+Fixes these errors:
+
+| ./regression_4000_data.h:7919:9: error: initializer-string for array of 'unsigned char' truncates NUL terminator but destination lacks 'nonstring' attribute (20 chars into 19 available) [-Werror=unterminated-string-initialization]
+| 7919 | "encryption standard";
+| | ^~~~~~~~~~~~~~~~~~~~~
+| ./regression_4000_data.h:8387:9: error: initializer-string for array of 'unsigned char' truncates NUL terminator but destination lacks 'nonstring' attribute (113 chars into 112 available) [-Werror=unterminated-string-initialization]
+| 8387 | "abcdbcdecdefdefgefghfghighijhijkijkljklmklmnlmnomn"
+| | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+| ./regression_4000.c:1295:47: error: initializer-string for array of 'unsigned char' truncates NUL terminator but destination lacks 'nonstring' attribute (4 chars into 3 available) [-Werror=unterminated-string-initialization]
+| 1295 | static const uint8_t hash_data_sm3_a1_in[3] = "abc";
+| | ^~~~~
+
+Upstream-Status: Pending
+
+Signed-off-by: Denys Dmytriyenko <denys@konsulko.com>
+---
+ host/xtest/regression_4000.c | 2 +-
+ host/xtest/regression_4000_data.h | 4 ++--
+ 2 files changed, 3 insertions(+), 3 deletions(-)
+
+diff --git a/host/xtest/regression_4000.c b/host/xtest/regression_4000.c
+index 3aa15be..46e6f8e 100644
+--- a/host/xtest/regression_4000.c
++++ b/host/xtest/regression_4000.c
+@@ -1292,7 +1292,7 @@ static const uint8_t hash_data_shake256_out2[] = {
+ * https://tools.ietf.org/html/draft-sca-cfrg-sm3-02
+ * Appendix A.1
+ */
+-static const uint8_t hash_data_sm3_a1_in[3] = "abc";
++static const uint8_t hash_data_sm3_a1_in[3] __attribute__((nonstring)) = "abc";
+
+ static const uint8_t hash_data_sm3_a1_out[] = {
+ 0x66, 0xc7, 0xf0, 0xf4, 0x62, 0xee, 0xed, 0xd9,
+diff --git a/host/xtest/regression_4000_data.h b/host/xtest/regression_4000_data.h
+index 0881ac3..eb101b2 100644
+--- a/host/xtest/regression_4000_data.h
++++ b/host/xtest/regression_4000_data.h
+@@ -7914,7 +7914,7 @@ static struct derive_key_ecdh_t {
+ };
+
+ /* G/MT 0003 (SM2) Part 5 Annex C.2 - encryption/decryption */
+-static const uint8_t gmt_0003_part5_c2_sm2_testvector_ptx[19] =
++static const uint8_t gmt_0003_part5_c2_sm2_testvector_ptx[19] __attribute__((nonstring)) =
+ /* M */
+ "encryption standard";
+ static const uint8_t gmt_0003_part5_c2_sm2_testvector_private[] = {
+@@ -8383,7 +8383,7 @@ static const uint8_t mac_data_sha3_512_out1[] = {
+ * GM/T 0042-2015
+ * Section D.3 Test vector 1
+ */
+-static const uint8_t mac_data_sm3_d31_in[112] =
++static const uint8_t mac_data_sm3_d31_in[112] __attribute__((nonstring)) =
+ "abcdbcdecdefdefgefghfghighijhijkijkljklmklmnlmnomn"
+ "opnopqabcdbcdecdefdefgefghfghighijhijkijkljklmklmn"
+ "lmnomnopnopq";
+--
+2.25.1
+
diff --git a/meta-arm/recipes-security/optee/optee-test_4.4.0.bb b/meta-arm/recipes-security/optee/optee-test_4.4.0.bb
index d514c82c..80df523d 100644
--- a/meta-arm/recipes-security/optee/optee-test_4.4.0.bb
+++ b/meta-arm/recipes-security/optee/optee-test_4.4.0.bb
@@ -5,6 +5,7 @@ SRCREV = "695231ef8987866663a9ed5afd8f77d1bae3dc08"
LIC_FILES_CHKSUM = "file://LICENSE.md;md5=a8fa504109e4cd7ea575bc49ea4be560"
+SRC_URI += "file://0001-Suppress-new-gcc-15-Wunterminated-string-initializat.patch"
# Include ffa_spmc test group if the SPMC test is enabled.
# Supported after op-tee v3.20
--
2.25.1
^ permalink raw reply related [flat|nested] 3+ messages in thread
* Re: [meta-arm] [PATCH] optee-test: Suppress new gcc-15 -Wunterminated-string-initialization
2025-05-07 1:41 [PATCH] optee-test: Suppress new gcc-15 -Wunterminated-string-initialization Denys Dmytriyenko
@ 2025-05-07 6:31 ` Mikko Rapeli
2025-05-07 7:17 ` Denys Dmytriyenko
0 siblings, 1 reply; 3+ messages in thread
From: Mikko Rapeli @ 2025-05-07 6:31 UTC (permalink / raw)
To: denis; +Cc: meta-arm, Denys Dmytriyenko
Hi,
On Tue, May 06, 2025 at 09:41:07PM -0400, Denys Dmytriyenko via lists.yoctoproject.org wrote:
> From: Denys Dmytriyenko <denys@konsulko.com>
>
> Mark corresponding arrays with nonstring attribute to suppress the new
> gcc-15 warning -Wunterminated-string-initialization that becomes an
> error due to the global -Werror.
>
> Signed-off-by: Denys Dmytriyenko <denys@konsulko.com>
> ---
> ...-15-Wunterminated-string-initializat.patch | 69 +++++++++++++++++++
> .../optee/optee-test_4.4.0.bb | 1 +
> 2 files changed, 70 insertions(+)
> create mode 100644 meta-arm/recipes-security/optee/optee-test/0001-Suppress-new-gcc-15-Wunterminated-string-initializat.patch
>
> diff --git a/meta-arm/recipes-security/optee/optee-test/0001-Suppress-new-gcc-15-Wunterminated-string-initializat.patch b/meta-arm/recipes-security/optee/optee-test/0001-Suppress-new-gcc-15-Wunterminated-string-initializat.patch
> new file mode 100644
> index 00000000..0f52f3d6
> --- /dev/null
> +++ b/meta-arm/recipes-security/optee/optee-test/0001-Suppress-new-gcc-15-Wunterminated-string-initializat.patch
> @@ -0,0 +1,69 @@
> +From a8e58203dcb4c13ee340259cd2692202ac8414d1 Mon Sep 17 00:00:00 2001
> +From: Denys Dmytriyenko <denys@konsulko.com>
> +Date: Tue, 6 May 2025 21:35:55 -0400
> +Subject: [PATCH] Suppress new gcc-15 -Wunterminated-string-initialization
> +
> +GCC 15 now warns when character arrays are being initialized by strings
> +and terminating NUL character doesn't fit. GCC 15.1 also allows marking
> +such arrays with nonstring attribute to suppress the warning. W/o such
> +attribute, the warning becomes error due to the global -Werror. Add the
> +attribute accordingly.
> +
> +Fixes these errors:
> +
> +| ./regression_4000_data.h:7919:9: error: initializer-string for array of 'unsigned char' truncates NUL terminator but destination lacks 'nonstring' attribute (20 chars into 19 available) [-Werror=unterminated-string-initialization]
> +| 7919 | "encryption standard";
> +| | ^~~~~~~~~~~~~~~~~~~~~
> +| ./regression_4000_data.h:8387:9: error: initializer-string for array of 'unsigned char' truncates NUL terminator but destination lacks 'nonstring' attribute (113 chars into 112 available) [-Werror=unterminated-string-initialization]
> +| 8387 | "abcdbcdecdefdefgefghfghighijhijkijkljklmklmnlmnomn"
> +| | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> +| ./regression_4000.c:1295:47: error: initializer-string for array of 'unsigned char' truncates NUL terminator but destination lacks 'nonstring' attribute (4 chars into 3 available) [-Werror=unterminated-string-initialization]
> +| 1295 | static const uint8_t hash_data_sm3_a1_in[3] = "abc";
> +| | ^~~~~
> +
> +Upstream-Status: Pending
Thanks, this is the correct fix. Can you submit upstream? They react
pretty fast there.
I still don't like -Werror as default since compiler and versions
at distro/intregrator level may differ greatly from what upstream
uses and supports.
Cheers,
-Mikko
> +Signed-off-by: Denys Dmytriyenko <denys@konsulko.com>
> +---
> + host/xtest/regression_4000.c | 2 +-
> + host/xtest/regression_4000_data.h | 4 ++--
> + 2 files changed, 3 insertions(+), 3 deletions(-)
> +
> +diff --git a/host/xtest/regression_4000.c b/host/xtest/regression_4000.c
> +index 3aa15be..46e6f8e 100644
> +--- a/host/xtest/regression_4000.c
> ++++ b/host/xtest/regression_4000.c
> +@@ -1292,7 +1292,7 @@ static const uint8_t hash_data_shake256_out2[] = {
> + * https://tools.ietf.org/html/draft-sca-cfrg-sm3-02
> + * Appendix A.1
> + */
> +-static const uint8_t hash_data_sm3_a1_in[3] = "abc";
> ++static const uint8_t hash_data_sm3_a1_in[3] __attribute__((nonstring)) = "abc";
> +
> + static const uint8_t hash_data_sm3_a1_out[] = {
> + 0x66, 0xc7, 0xf0, 0xf4, 0x62, 0xee, 0xed, 0xd9,
> +diff --git a/host/xtest/regression_4000_data.h b/host/xtest/regression_4000_data.h
> +index 0881ac3..eb101b2 100644
> +--- a/host/xtest/regression_4000_data.h
> ++++ b/host/xtest/regression_4000_data.h
> +@@ -7914,7 +7914,7 @@ static struct derive_key_ecdh_t {
> + };
> +
> + /* G/MT 0003 (SM2) Part 5 Annex C.2 - encryption/decryption */
> +-static const uint8_t gmt_0003_part5_c2_sm2_testvector_ptx[19] =
> ++static const uint8_t gmt_0003_part5_c2_sm2_testvector_ptx[19] __attribute__((nonstring)) =
> + /* M */
> + "encryption standard";
> + static const uint8_t gmt_0003_part5_c2_sm2_testvector_private[] = {
> +@@ -8383,7 +8383,7 @@ static const uint8_t mac_data_sha3_512_out1[] = {
> + * GM/T 0042-2015
> + * Section D.3 Test vector 1
> + */
> +-static const uint8_t mac_data_sm3_d31_in[112] =
> ++static const uint8_t mac_data_sm3_d31_in[112] __attribute__((nonstring)) =
> + "abcdbcdecdefdefgefghfghighijhijkijkljklmklmnlmnomn"
> + "opnopqabcdbcdecdefdefgefghfghighijhijkijkljklmklmn"
> + "lmnomnopnopq";
> +--
> +2.25.1
> +
> diff --git a/meta-arm/recipes-security/optee/optee-test_4.4.0.bb b/meta-arm/recipes-security/optee/optee-test_4.4.0.bb
> index d514c82c..80df523d 100644
> --- a/meta-arm/recipes-security/optee/optee-test_4.4.0.bb
> +++ b/meta-arm/recipes-security/optee/optee-test_4.4.0.bb
> @@ -5,6 +5,7 @@ SRCREV = "695231ef8987866663a9ed5afd8f77d1bae3dc08"
>
> LIC_FILES_CHKSUM = "file://LICENSE.md;md5=a8fa504109e4cd7ea575bc49ea4be560"
>
> +SRC_URI += "file://0001-Suppress-new-gcc-15-Wunterminated-string-initializat.patch"
>
> # Include ffa_spmc test group if the SPMC test is enabled.
> # Supported after op-tee v3.20
> --
> 2.25.1
>
>
> -=-=-=-=-=-=-=-=-=-=-=-
> Links: You receive all messages sent to this group.
> View/Reply Online (#6488): https://lists.yoctoproject.org/g/meta-arm/message/6488
> Mute This Topic: https://lists.yoctoproject.org/mt/112661556/7159507
> Group Owner: meta-arm+owner@lists.yoctoproject.org
> Unsubscribe: https://lists.yoctoproject.org/g/meta-arm/unsub [mikko.rapeli@linaro.org]
> -=-=-=-=-=-=-=-=-=-=-=-
>
^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: [meta-arm] [PATCH] optee-test: Suppress new gcc-15 -Wunterminated-string-initialization
2025-05-07 6:31 ` [meta-arm] " Mikko Rapeli
@ 2025-05-07 7:17 ` Denys Dmytriyenko
0 siblings, 0 replies; 3+ messages in thread
From: Denys Dmytriyenko @ 2025-05-07 7:17 UTC (permalink / raw)
To: Mikko Rapeli; +Cc: meta-arm, Denys Dmytriyenko
On Wed, May 07, 2025 at 09:31:57AM +0300, Mikko Rapeli wrote:
> Hi,
>
> On Tue, May 06, 2025 at 09:41:07PM -0400, Denys Dmytriyenko via lists.yoctoproject.org wrote:
> > From: Denys Dmytriyenko <denys@konsulko.com>
> >
> > Mark corresponding arrays with nonstring attribute to suppress the new
> > gcc-15 warning -Wunterminated-string-initialization that becomes an
> > error due to the global -Werror.
> >
> > Signed-off-by: Denys Dmytriyenko <denys@konsulko.com>
> > ---
> > ...-15-Wunterminated-string-initializat.patch | 69 +++++++++++++++++++
> > .../optee/optee-test_4.4.0.bb | 1 +
> > 2 files changed, 70 insertions(+)
> > create mode 100644 meta-arm/recipes-security/optee/optee-test/0001-Suppress-new-gcc-15-Wunterminated-string-initializat.patch
> >
> > diff --git a/meta-arm/recipes-security/optee/optee-test/0001-Suppress-new-gcc-15-Wunterminated-string-initializat.patch b/meta-arm/recipes-security/optee/optee-test/0001-Suppress-new-gcc-15-Wunterminated-string-initializat.patch
> > new file mode 100644
> > index 00000000..0f52f3d6
> > --- /dev/null
> > +++ b/meta-arm/recipes-security/optee/optee-test/0001-Suppress-new-gcc-15-Wunterminated-string-initializat.patch
> > @@ -0,0 +1,69 @@
> > +From a8e58203dcb4c13ee340259cd2692202ac8414d1 Mon Sep 17 00:00:00 2001
> > +From: Denys Dmytriyenko <denys@konsulko.com>
> > +Date: Tue, 6 May 2025 21:35:55 -0400
> > +Subject: [PATCH] Suppress new gcc-15 -Wunterminated-string-initialization
> > +
> > +GCC 15 now warns when character arrays are being initialized by strings
> > +and terminating NUL character doesn't fit. GCC 15.1 also allows marking
> > +such arrays with nonstring attribute to suppress the warning. W/o such
> > +attribute, the warning becomes error due to the global -Werror. Add the
> > +attribute accordingly.
> > +
> > +Fixes these errors:
> > +
> > +| ./regression_4000_data.h:7919:9: error: initializer-string for array of 'unsigned char' truncates NUL terminator but destination lacks 'nonstring' attribute (20 chars into 19 available) [-Werror=unterminated-string-initialization]
> > +| 7919 | "encryption standard";
> > +| | ^~~~~~~~~~~~~~~~~~~~~
> > +| ./regression_4000_data.h:8387:9: error: initializer-string for array of 'unsigned char' truncates NUL terminator but destination lacks 'nonstring' attribute (113 chars into 112 available) [-Werror=unterminated-string-initialization]
> > +| 8387 | "abcdbcdecdefdefgefghfghighijhijkijkljklmklmnlmnomn"
> > +| | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> > +| ./regression_4000.c:1295:47: error: initializer-string for array of 'unsigned char' truncates NUL terminator but destination lacks 'nonstring' attribute (4 chars into 3 available) [-Werror=unterminated-string-initialization]
> > +| 1295 | static const uint8_t hash_data_sm3_a1_in[3] = "abc";
> > +| | ^~~~~
> > +
> > +Upstream-Status: Pending
>
> Thanks, this is the correct fix. Can you submit upstream? They react
> pretty fast there.
Already did.
Upstream-Status: Submitted [https://github.com/OP-TEE/optee_test/pull/796]
> I still don't like -Werror as default since compiler and versions
> at distro/intregrator level may differ greatly from what upstream
> uses and supports.
>
> Cheers,
>
> -Mikko
>
> > +Signed-off-by: Denys Dmytriyenko <denys@konsulko.com>
> > +---
> > + host/xtest/regression_4000.c | 2 +-
> > + host/xtest/regression_4000_data.h | 4 ++--
> > + 2 files changed, 3 insertions(+), 3 deletions(-)
> > +
> > +diff --git a/host/xtest/regression_4000.c b/host/xtest/regression_4000.c
> > +index 3aa15be..46e6f8e 100644
> > +--- a/host/xtest/regression_4000.c
> > ++++ b/host/xtest/regression_4000.c
> > +@@ -1292,7 +1292,7 @@ static const uint8_t hash_data_shake256_out2[] = {
> > + * https://tools.ietf.org/html/draft-sca-cfrg-sm3-02
> > + * Appendix A.1
> > + */
> > +-static const uint8_t hash_data_sm3_a1_in[3] = "abc";
> > ++static const uint8_t hash_data_sm3_a1_in[3] __attribute__((nonstring)) = "abc";
> > +
> > + static const uint8_t hash_data_sm3_a1_out[] = {
> > + 0x66, 0xc7, 0xf0, 0xf4, 0x62, 0xee, 0xed, 0xd9,
> > +diff --git a/host/xtest/regression_4000_data.h b/host/xtest/regression_4000_data.h
> > +index 0881ac3..eb101b2 100644
> > +--- a/host/xtest/regression_4000_data.h
> > ++++ b/host/xtest/regression_4000_data.h
> > +@@ -7914,7 +7914,7 @@ static struct derive_key_ecdh_t {
> > + };
> > +
> > + /* G/MT 0003 (SM2) Part 5 Annex C.2 - encryption/decryption */
> > +-static const uint8_t gmt_0003_part5_c2_sm2_testvector_ptx[19] =
> > ++static const uint8_t gmt_0003_part5_c2_sm2_testvector_ptx[19] __attribute__((nonstring)) =
> > + /* M */
> > + "encryption standard";
> > + static const uint8_t gmt_0003_part5_c2_sm2_testvector_private[] = {
> > +@@ -8383,7 +8383,7 @@ static const uint8_t mac_data_sha3_512_out1[] = {
> > + * GM/T 0042-2015
> > + * Section D.3 Test vector 1
> > + */
> > +-static const uint8_t mac_data_sm3_d31_in[112] =
> > ++static const uint8_t mac_data_sm3_d31_in[112] __attribute__((nonstring)) =
> > + "abcdbcdecdefdefgefghfghighijhijkijkljklmklmnlmnomn"
> > + "opnopqabcdbcdecdefdefgefghfghighijhijkijkljklmklmn"
> > + "lmnomnopnopq";
> > +--
> > +2.25.1
> > +
> > diff --git a/meta-arm/recipes-security/optee/optee-test_4.4.0.bb b/meta-arm/recipes-security/optee/optee-test_4.4.0.bb
> > index d514c82c..80df523d 100644
> > --- a/meta-arm/recipes-security/optee/optee-test_4.4.0.bb
> > +++ b/meta-arm/recipes-security/optee/optee-test_4.4.0.bb
> > @@ -5,6 +5,7 @@ SRCREV = "695231ef8987866663a9ed5afd8f77d1bae3dc08"
> >
> > LIC_FILES_CHKSUM = "file://LICENSE.md;md5=a8fa504109e4cd7ea575bc49ea4be560"
> >
> > +SRC_URI += "file://0001-Suppress-new-gcc-15-Wunterminated-string-initializat.patch"
> >
> > # Include ffa_spmc test group if the SPMC test is enabled.
> > # Supported after op-tee v3.20
> > --
> > 2.25.1
^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2025-05-07 7:17 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-05-07 1:41 [PATCH] optee-test: Suppress new gcc-15 -Wunterminated-string-initialization Denys Dmytriyenko
2025-05-07 6:31 ` [meta-arm] " Mikko Rapeli
2025-05-07 7:17 ` Denys Dmytriyenko
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.