diff --git a/SOURCES/openvswitch-3.3.0.patch b/SOURCES/openvswitch-3.3.0.patch index b3ca344..192a342 100644 --- a/SOURCES/openvswitch-3.3.0.patch +++ b/SOURCES/openvswitch-3.3.0.patch @@ -217,6 +217,53 @@ index 2049ddaa26..22c767a4ce 100644 openvswitch (3.3.0-1) unstable; urgency=low * New upstream version +diff --git a/include/sparse/automake.mk b/include/sparse/automake.mk +index c1229870bb..45e6202c52 100644 +--- a/include/sparse/automake.mk ++++ b/include/sparse/automake.mk +@@ -1,5 +1,6 @@ + noinst_HEADERS += \ + include/sparse/rte_byteorder.h \ ++ include/sparse/immintrin.h \ + include/sparse/xmmintrin.h \ + include/sparse/arpa/inet.h \ + include/sparse/bits/floatn.h \ +diff --git a/include/sparse/immintrin.h b/include/sparse/immintrin.h +new file mode 100644 +index 0000000000..dd742be9f5 +--- /dev/null ++++ b/include/sparse/immintrin.h +@@ -0,0 +1,30 @@ ++/* Copyright (c) 2024 Red Hat, Inc. ++ * ++ * Licensed under the Apache License, Version 2.0 (the "License"); ++ * you may not use this file except in compliance with the License. ++ * You may obtain a copy of the License at: ++ * ++ * http://www.apache.org/licenses/LICENSE-2.0 ++ * ++ * Unless required by applicable law or agreed to in writing, software ++ * distributed under the License is distributed on an "AS IS" BASIS, ++ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. ++ * See the License for the specific language governing permissions and ++ * limitations under the License. ++ */ ++ ++#ifndef __CHECKER__ ++#error "Use this header only with sparse. It is not a correct implementation." ++#endif ++ ++/* Sparse doesn't know some types used by AVX512 and some other headers. ++ * Mark those headers as already included to avoid failures. This is fragile, ++ * so may need adjustments with compiler changes. */ ++#define _AVX512BF16INTRIN_H_INCLUDED ++#define _AVX512BF16VLINTRIN_H_INCLUDED ++#define _AVXNECONVERTINTRIN_H_INCLUDED ++#define _KEYLOCKERINTRIN_H_INCLUDED ++#define __AVX512FP16INTRIN_H_INCLUDED ++#define __AVX512FP16VLINTRIN_H_INCLUDED ++ ++#include_next diff --git a/ipsec/ovs-monitor-ipsec.in b/ipsec/ovs-monitor-ipsec.in index 7945162f9f..bc7ac55237 100755 --- a/ipsec/ovs-monitor-ipsec.in @@ -944,6 +991,56 @@ index 9927dcc185..f1fe32714e 100644 } static void +diff --git a/lib/tc.c b/lib/tc.c +index e9bcae4e4b..e55ba3b1bb 100644 +--- a/lib/tc.c ++++ b/lib/tc.c +@@ -3056,17 +3056,17 @@ nl_msg_put_flower_rewrite_pedits(struct ofpbuf *request, + struct tc_action *action, + uint32_t action_pc) + { +- struct { ++ union { + struct tc_pedit sel; +- struct tc_pedit_key keys[MAX_PEDIT_OFFSETS]; +- struct tc_pedit_key_ex keys_ex[MAX_PEDIT_OFFSETS]; +- } sel = { +- .sel = { +- .nkeys = 0 +- } +- }; ++ uint8_t buffer[sizeof(struct tc_pedit) ++ + MAX_PEDIT_OFFSETS * sizeof(struct tc_pedit_key)]; ++ } sel; ++ struct tc_pedit_key_ex keys_ex[MAX_PEDIT_OFFSETS]; + int i, j, err; + ++ memset(&sel, 0, sizeof sel); ++ memset(keys_ex, 0, sizeof keys_ex); ++ + for (i = 0; i < ARRAY_SIZE(flower_pedit_map); i++) { + struct flower_key_to_pedit *m = &flower_pedit_map[i]; + struct tc_pedit_key *pedit_key = NULL; +@@ -3100,8 +3100,8 @@ nl_msg_put_flower_rewrite_pedits(struct ofpbuf *request, + return EOPNOTSUPP; + } + +- pedit_key = &sel.keys[sel.sel.nkeys]; +- pedit_key_ex = &sel.keys_ex[sel.sel.nkeys]; ++ pedit_key = &sel.sel.keys[sel.sel.nkeys]; ++ pedit_key_ex = &keys_ex[sel.sel.nkeys]; + pedit_key_ex->cmd = TCA_PEDIT_KEY_EX_CMD_SET; + pedit_key_ex->htype = m->htype; + pedit_key->off = cur_offset; +@@ -3121,7 +3121,7 @@ nl_msg_put_flower_rewrite_pedits(struct ofpbuf *request, + } + } + } +- nl_msg_put_act_pedit(request, &sel.sel, sel.keys_ex, ++ nl_msg_put_act_pedit(request, &sel.sel, keys_ex, + flower->csum_update_flags ? TC_ACT_PIPE : action_pc); + + return 0; diff --git a/lib/vlog.c b/lib/vlog.c index b2653142f3..e78c785f7b 100644 --- a/lib/vlog.c @@ -2671,6 +2768,40 @@ index 98e494abf4..0008bc1720 100644 AT_BANNER([IGMP]) AT_SETUP([IGMP - flood under normal action]) +diff --git a/tests/test-util.c b/tests/test-util.c +index 7d899fbbfd..5d88d38f26 100644 +--- a/tests/test-util.c ++++ b/tests/test-util.c +@@ -1116,12 +1116,16 @@ test_snprintf(struct ovs_cmdl_context *ctx OVS_UNUSED) + { + char s[16]; + ++ /* GCC 7+ and Clang 18+ warn about the following calls that truncate ++ * a string using snprintf(). We're testing that truncation works ++ * properly, so temporarily disable the warning. */ + #if __GNUC__ >= 7 +- /* GCC 7+ warns about the following calls that truncate a string using +- * snprintf(). We're testing that truncation works properly, so +- * temporarily disable the warning. */ + #pragma GCC diagnostic push + #pragma GCC diagnostic ignored "-Wformat-truncation" ++#endif ++#if __clang_major__ >= 18 ++#pragma clang diagnostic push ++#pragma clang diagnostic ignored "-Wformat-truncation" + #endif + ovs_assert(snprintf(s, 4, "abcde") == 5); + ovs_assert(!strcmp(s, "abc")); +@@ -1130,6 +1134,9 @@ test_snprintf(struct ovs_cmdl_context *ctx OVS_UNUSED) + ovs_assert(!strcmp(s, "abcd")); + #if __GNUC__ >= 7 + #pragma GCC diagnostic pop ++#endif ++#if __clang_major__ >= 18 ++#pragma clang diagnostic pop + #endif + + ovs_assert(snprintf(s, 6, "abcde") == 5); diff --git a/tests/tunnel-push-pop-ipv6.at b/tests/tunnel-push-pop-ipv6.at index a8dd28c5b5..f1c5d42f66 100644 --- a/tests/tunnel-push-pop-ipv6.at diff --git a/SPECS/openvswitch3.3.spec b/SPECS/openvswitch3.3.spec index 29940f2..463cb51 100644 --- a/SPECS/openvswitch3.3.spec +++ b/SPECS/openvswitch3.3.spec @@ -57,7 +57,7 @@ Summary: Open vSwitch Group: System Environment/Daemons daemon/database/utilities URL: http://www.openvswitch.org/ Version: 3.3.0 -Release: 14%{?dist} +Release: 15%{?dist} # Nearly all of openvswitch is ASL 2.0. The bugtool is LGPLv2+, and the # lib/sflow*.[ch] files are SISSL @@ -767,6 +767,14 @@ exit 0 %endif %changelog +* Tue Apr 30 2024 Open vSwitch CI - 3.3.0-15 +- Merging upstream branch-3.3 [RH git: 1cb679f528] + Commit list: + 9a5c24d70f sparse: Add immintrin.h header. + 3528cc6f45 tc: Fix -Wgnu-variable-sized-type-not-at-end warning with Clang 18. + 5814de5687 tests: Fix build failure with Clang 18 due to -Wformat-truncation. + + * Mon Apr 29 2024 Open vSwitch CI - 3.3.0-14 - Merging upstream branch-3.3 [RH git: fd340e5b9e] Commit list: