Message ID | 20250507014107.1686356-1-denis@denix.org |
---|---|
State | New |
Headers | show |
Series | optee-test: Suppress new gcc-15 -Wunterminated-string-initialization | expand |
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] > -=-=-=-=-=-=-=-=-=-=-=- >
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
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