On my system (I'm using GCC 4.9 and sparse 0.4.5) I need
lots of other headers like emmintrin.h to compile without
warnings.

The complete list is:

adxintrin.h,ammintrin.h,avx2intrin.h,avx512fintrin.h,
avxintrin.h,bmi2intrin.h,bmiintrin.h,f16cintrin.h,
fma4intrin.h,fmaintrin.h,fxsrintrin.h,ia32intrin.h,
immintrin.h,lwpintrin.h,lzcntintrin.h,mm3dnow.h,
mmintrin.h,pmmintrin.h,popcntintrin.h,prfchwintrin.h,
rdseedintrin.h,smmintrin.h,tbmintrin.h,tmmintrin.h,
wmmintrin.h,xmmintrin.h,xopintrin.h,xsaveintrin.h,
xsaveoptintrin.h

Do we want to generate these at build time, maybe?

On 18/05/2015 16:53, "Ethan Jackson" <et...@nicira.com> wrote:

>Sparse doesn't like several of the DPDK header files.  This patch
>works around it so we can get analysis when compiling DPDK.
>
>Signed-off-by: Ethan Jackson <et...@nicira.com>
>---
> include/sparse/automake.mk  |  4 ++++
> include/sparse/emmintrin.h  | 21 +++++++++++++++++++++
> include/sparse/rte_atomic.h | 25 +++++++++++++++++++++++++
> include/sparse/rte_lcore.h  | 23 +++++++++++++++++++++++
> include/sparse/rte_vect.h   | 23 +++++++++++++++++++++++
> 5 files changed, 96 insertions(+)
> create mode 100644 include/sparse/emmintrin.h
> create mode 100644 include/sparse/rte_atomic.h
> create mode 100644 include/sparse/rte_lcore.h
> create mode 100644 include/sparse/rte_vect.h
>
>diff --git a/include/sparse/automake.mk b/include/sparse/automake.mk
>index 572c7c2..c80c4c2 100644
>--- a/include/sparse/automake.mk
>+++ b/include/sparse/automake.mk
>@@ -1,10 +1,14 @@
> noinst_HEADERS += \
>         include/sparse/arpa/inet.h \
>         include/sparse/assert.h \
>+        include/sparse/emmintrin.h \
>         include/sparse/math.h \
>         include/sparse/netinet/in.h \
>         include/sparse/netinet/ip6.h \
>         include/sparse/netpacket/packet.h \
>         include/sparse/pthread.h \
>+        include/sparse/rte_atomic.h \
>+        include/sparse/rte_lcore.h \
>+        include/sparse/rte_vect.h \
>         include/sparse/sys/socket.h \
>         include/sparse/sys/wait.h
>diff --git a/include/sparse/emmintrin.h b/include/sparse/emmintrin.h
>new file mode 100644
>index 0000000..7c788dc
>--- /dev/null
>+++ b/include/sparse/emmintrin.h
>@@ -0,0 +1,21 @@
>+/* 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:
>+ *
>+ *     
>https://urldefense.proofpoint.com/v2/url?u=http-3A__www.apache.org_license
>s_LICENSE-2D2.0&d=AwIGaQ&c=Sqcl0Ez6M0X8aeM67LKIiDJAXVeAw-YihVMNtXt-uEs&r=S
>mB5nZacmXNq0gKCC1s_Cw5yUNjxgD4v5kJqZ2uWLlE&m=B8EAybkydoKA6-zjSe0T_2cshiumC
>E9wwf7RTwL7R6E&s=XbDR6JeYnydOdBUZ9vrXLn17h0EOW9wIF7lhpFjM_fo&e=
>+ *
>+ * 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 support SSE2 so the "real" header file quits with an
>error.
>+ * Instead, we simply do nothing thereby surpressing the message. */
>diff --git a/include/sparse/rte_atomic.h b/include/sparse/rte_atomic.h
>new file mode 100644
>index 0000000..ae49fe5
>--- /dev/null
>+++ b/include/sparse/rte_atomic.h
>@@ -0,0 +1,25 @@
>+/* 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:
>+ *
>+ *     
>https://urldefense.proofpoint.com/v2/url?u=http-3A__www.apache.org_license
>s_LICENSE-2D2.0&d=AwIGaQ&c=Sqcl0Ez6M0X8aeM67LKIiDJAXVeAw-YihVMNtXt-uEs&r=S
>mB5nZacmXNq0gKCC1s_Cw5yUNjxgD4v5kJqZ2uWLlE&m=B8EAybkydoKA6-zjSe0T_2cshiumC
>E9wwf7RTwL7R6E&s=XbDR6JeYnydOdBUZ9vrXLn17h0EOW9wIF7lhpFjM_fo&e=
>+ *
>+ * 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_lcore.h b/include/sparse/rte_lcore.h
>new file mode 100644
>index 0000000..584bfe1
>--- /dev/null
>+++ b/include/sparse/rte_lcore.h
>@@ -0,0 +1,23 @@
>+/* 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:
>+ *
>+ *     
>https://urldefense.proofpoint.com/v2/url?u=http-3A__www.apache.org_license
>s_LICENSE-2D2.0&d=AwIGaQ&c=Sqcl0Ez6M0X8aeM67LKIiDJAXVeAw-YihVMNtXt-uEs&r=S
>mB5nZacmXNq0gKCC1s_Cw5yUNjxgD4v5kJqZ2uWLlE&m=B8EAybkydoKA6-zjSe0T_2cshiumC
>E9wwf7RTwL7R6E&s=XbDR6JeYnydOdBUZ9vrXLn17h0EOW9wIF7lhpFjM_fo&e=
>+ *
>+ * 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
>+
>+typedef int rte_cpuset_t;
>+
>+/* Get actual <rte_lcore.h> definitions for us to annotate and build on.
>*/
>+#include_next <rte_lcore.h>
>diff --git a/include/sparse/rte_vect.h b/include/sparse/rte_vect.h
>new file mode 100644
>index 0000000..6f6625b
>--- /dev/null
>+++ b/include/sparse/rte_vect.h
>@@ -0,0 +1,23 @@
>+/* 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:
>+ *
>+ *     
>https://urldefense.proofpoint.com/v2/url?u=http-3A__www.apache.org_license
>s_LICENSE-2D2.0&d=AwIGaQ&c=Sqcl0Ez6M0X8aeM67LKIiDJAXVeAw-YihVMNtXt-uEs&r=S
>mB5nZacmXNq0gKCC1s_Cw5yUNjxgD4v5kJqZ2uWLlE&m=B8EAybkydoKA6-zjSe0T_2cshiumC
>E9wwf7RTwL7R6E&s=XbDR6JeYnydOdBUZ9vrXLn17h0EOW9wIF7lhpFjM_fo&e=
>+ *
>+ * 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
>+
>+typedef int __m128i;
>+
>+/* Get actual <rte_vect.h> definitions for us to annotate and build on.
>*/
>+#include_next <rte_vect.h>
>-- 
>1.9.1
>
>_______________________________________________
>dev mailing list
>dev@openvswitch.org
>https://urldefense.proofpoint.com/v2/url?u=http-3A__openvswitch.org_mailma
>n_listinfo_dev&d=AwIGaQ&c=Sqcl0Ez6M0X8aeM67LKIiDJAXVeAw-YihVMNtXt-uEs&r=Sm
>B5nZacmXNq0gKCC1s_Cw5yUNjxgD4v5kJqZ2uWLlE&m=B8EAybkydoKA6-zjSe0T_2cshiumCE
>9wwf7RTwL7R6E&s=oleBRmY2dr-PG6K8DPzFmAQrpw7AwfLUqGMNhho-KH0&e= 

_______________________________________________
dev mailing list
dev@openvswitch.org
http://openvswitch.org/mailman/listinfo/dev

Reply via email to