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