On 29/01/2025 16:37, Ilya Maximets wrote:
> On 1/28/25 16:53, David Marchand wrote:
>> Since sparse v0.6.4 (which is 3 years old and happens to be the latest
>> official release), GCC atomic builtins are recognised by sparse
>> (see below first three links).
> 
> We have a minimal sparse version documented.  I suppose that version
> should be updated by this commit if we're going to rely on functionality
> introduced in a newer release.
> 

LGTM. I can make that small doc change while applying.

I don't think we should backport to 3.4 and ask for a dependency upgrade
at this stage. 3.5 is not released, so i think we could backport to 3.5
to correctly document the required sparse verison. Any opinions ?

> Best regards, Ilya Maximets.
> 
>>
>> In the case of rte_atomic.h, DPDK stopped using __sync in favor of
>> __atomic builtin in v23.07 (see below last link).
>> However, no OVS developer complained about sparse build failures because
>> of rte_atomic.h which means that everyone uses a recent sparse (if any).
>>
>> Remove wrappers around those DPDK headers.
>>
>> Link: 
>> https://git.kernel.org/pub/scm/devel/sparse/sparse.git/commit/?id=cf8f104749f5
>> Link: 
>> https://git.kernel.org/pub/scm/devel/sparse/sparse.git/commit/?id=7cdf84691f33
>> Link: 
>> https://git.kernel.org/pub/scm/devel/sparse/sparse.git/commit/?id=f42e2afa9ed0
>> Link: https://git.dpdk.org/dpdk/commit/?id=a2f807316dae
>> Signed-off-by: David Marchand <david.march...@redhat.com>
>> ---
>>  include/sparse/automake.mk       |  3 ---
>>  include/sparse/rte_atomic.h      | 25 -------------------------
>>  include/sparse/rte_mbuf.h        | 29 -----------------------------
>>  include/sparse/rte_trace_point.h | 28 ----------------------------
>>  4 files changed, 85 deletions(-)
>>  delete mode 100644 include/sparse/rte_atomic.h
>>  delete mode 100644 include/sparse/rte_mbuf.h
>>  delete mode 100644 include/sparse/rte_trace_point.h
>>
>> diff --git a/include/sparse/automake.mk b/include/sparse/automake.mk
>> index 45e6202c52..052a1b4b82 100644
>> --- a/include/sparse/automake.mk
>> +++ b/include/sparse/automake.mk
>> @@ -12,10 +12,7 @@ noinst_HEADERS += \
>>          include/sparse/netinet/ip6.h \
>>          include/sparse/netpacket/packet.h \
>>          include/sparse/pthread.h \
>> -        include/sparse/rte_atomic.h \
>> -        include/sparse/rte_mbuf.h \
>>          include/sparse/rte_memcpy.h \
>> -        include/sparse/rte_trace_point.h \
>>          include/sparse/sys/socket.h \
>>          include/sparse/sys/sysmacros.h \
>>          include/sparse/sys/types.h \
>> diff --git a/include/sparse/rte_atomic.h b/include/sparse/rte_atomic.h
>> deleted file mode 100644
>> index ae49fe5c03..0000000000
>> --- a/include/sparse/rte_atomic.h
>> +++ /dev/null
>> @@ -1,25 +0,0 @@
>> -/* Copyright (c) 2015 Nicira, 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
>> -
>> -/* Fix sparse technicality about types in one of the function calls by just
>> - * ignoring it. */
>> -#define __sync_add_and_fetch(a, b) (0)
>> -
>> -/* Get actual <rte_atomic.h> definitions for us to annotate and build on. */
>> -#include_next <rte_atomic.h>
>> diff --git a/include/sparse/rte_mbuf.h b/include/sparse/rte_mbuf.h
>> deleted file mode 100644
>> index 981cdb441f..0000000000
>> --- a/include/sparse/rte_mbuf.h
>> +++ /dev/null
>> @@ -1,29 +0,0 @@
>> -/* Copyright (c) 2020 Intel, 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 about gcc atomic builtins. */
>> -#ifndef __ATOMIC_ACQ_REL
>> -#define __ATOMIC_ACQ_REL 0
>> -#define __ATOMIC_RELAXED 1
>> -#define __atomic_add_fetch(p, val, memorder) (*(p) = *(p) + (val))
>> -#define __atomic_store_n(p, val, memorder) (*(p) = (val))
>> -#endif
>> -
>> -/* Get actual <rte_mbuf.h> definitions for us to annotate and build on. */
>> -#include_next <rte_mbuf.h>
>> diff --git a/include/sparse/rte_trace_point.h 
>> b/include/sparse/rte_trace_point.h
>> deleted file mode 100644
>> index 8039232754..0000000000
>> --- a/include/sparse/rte_trace_point.h
>> +++ /dev/null
>> @@ -1,28 +0,0 @@
>> -/* Copyright 2020, 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 about gcc atomic builtins. */
>> -#ifndef __ATOMIC_ACQUIRE
>> -#define __ATOMIC_ACQUIRE 0
>> -#define __atomic_load_n(p, memorder) *(p)
>> -#endif
>> -
>> -/* Get actual <rte_trace_point.h> definitions for us to annotate and
>> - * build on. */
>> -#include_next <rte_trace_point.h>
> 
> _______________________________________________
> dev mailing list
> d...@openvswitch.org
> https://mail.openvswitch.org/mailman/listinfo/ovs-dev
> 

_______________________________________________
dev mailing list
d...@openvswitch.org
https://mail.openvswitch.org/mailman/listinfo/ovs-dev

Reply via email to