<div dir="ltr"><div>Hi everyone,</div><div>I've made the updates as suggested. Could someone please review the latest patchset? Not sure if I followed the new patchset instructions correctly, I've always had trouble with that part.</div><div><br></div><div>Thanks,</div><div>Ashish.<br></div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Sun, Mar 17, 2024 at 8:44 PM Ashish Sadanandan <<a href="mailto:ashish.sadanandan@gmail.com">ashish.sadanandan@gmail.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">The header was missing the extern "C" directive which causes name<br>
mangling of functions by C++ compilers, leading to linker errors<br>
complaining of undefined references to these functions.<br>
<br>
Also updated the coding style contribution guideline with a new<br>
"Language Linkage" section stating `extern "C"` block should be added to<br>
public headers.<br>
<br>
Fixes: 86c743cf9140 ("eal: define generic vector types")<br>
Cc: <a href="mailto:nelio.laranjeiro@6wind.com" target="_blank">nelio.laranjeiro@6wind.com</a><br>
Cc: <a href="mailto:stable@dpdk.org" target="_blank">stable@dpdk.org</a><br>
<br>
Signed-off-by: Ashish Sadanandan <<a href="mailto:ashish.sadanandan@gmail.com" target="_blank">ashish.sadanandan@gmail.com</a>><br>
---<br>
 .mailmap                                 |  2 +-<br>
 doc/guides/contributing/coding_style.rst | 21 +++++++++++++++++++++<br>
 lib/eal/include/generic/rte_vect.h       |  8 ++++++++<br>
 3 files changed, 30 insertions(+), 1 deletion(-)<br>
<br>
diff --git a/.mailmap b/.mailmap<br>
index 50726e1232..24de59ba89 100644<br>
--- a/.mailmap<br>
+++ b/.mailmap<br>
@@ -142,7 +142,7 @@ Ashijeet Acharya <<a href="mailto:ashijeet.acharya@6wind.com" target="_blank">ashijeet.acharya@6wind.com</a>><br>
 Ashish Gupta <<a href="mailto:ashishg@marvell.com" target="_blank">ashishg@marvell.com</a>> <<a href="mailto:ashish.gupta@marvell.com" target="_blank">ashish.gupta@marvell.com</a>> <<a href="mailto:ashish.gupta@caviumnetworks.com" target="_blank">ashish.gupta@caviumnetworks.com</a>><br>
 Ashish Jain <<a href="mailto:ashish.jain@nxp.com" target="_blank">ashish.jain@nxp.com</a>><br>
 Ashish Paul <<a href="mailto:apaul@juniper.net" target="_blank">apaul@juniper.net</a>><br>
-Ashish Sadanandan <<a href="mailto:ashish.sadanandan@gmail.com" target="_blank">ashish.sadanandan@gmail.com</a>><br>
+Ashish Sadanandan <<a href="mailto:ashish.sadanandan@gmail.com" target="_blank">ashish.sadanandan@gmail.com</a>> <<a href="mailto:quic_asadanan@quicinc.com" target="_blank">quic_asadanan@quicinc.com</a>><br>
 Ashish Shah <<a href="mailto:ashish.n.shah@intel.com" target="_blank">ashish.n.shah@intel.com</a>><br>
 Ashwin Sekhar T K <<a href="mailto:asekhar@marvell.com" target="_blank">asekhar@marvell.com</a>> <<a href="mailto:ashwin.sekhar@caviumnetworks.com" target="_blank">ashwin.sekhar@caviumnetworks.com</a>><br>
 Asim Jamshed <<a href="mailto:asim.jamshed@gmail.com" target="_blank">asim.jamshed@gmail.com</a>><br>
diff --git a/doc/guides/contributing/coding_style.rst b/doc/guides/contributing/coding_style.rst<br>
index 1ebc79ca3c..27c947fcec 100644<br>
--- a/doc/guides/contributing/coding_style.rst<br>
+++ b/doc/guides/contributing/coding_style.rst<br>
@@ -106,6 +106,27 @@ Headers should be protected against multiple inclusion with the usual:<br>
<br>
    #endif /* _FILE_H_ */<br>
<br>
+Language Linkage<br>
+~~~~~~~~~~~~~~~~<br>
+<br>
+Public headers should enclose all function and variable declarations and definitions in an ``extern "C"`` block to facilitate interoperability with C++.<br>
+<br>
+.. code-block:: c<br>
+<br>
+   #ifndef _FILE_H_<br>
+   #define _FILE_H_<br>
+<br>
+   #ifdef __cplusplus<br>
+   extern "C" {<br>
+   #endif<br>
+<br>
+   /* Code */<br>
+<br>
+   #ifdef __cplusplus<br>
+   }<br>
+   #endif<br>
+<br>
+   #endif /* _FILE_H_ */<br>
<br>
 Macros<br>
 ~~~~~~<br>
diff --git a/lib/eal/include/generic/rte_vect.h b/lib/eal/include/generic/rte_vect.h<br>
index 6540419cd2..3578d8749b 100644<br>
--- a/lib/eal/include/generic/rte_vect.h<br>
+++ b/lib/eal/include/generic/rte_vect.h<br>
@@ -15,6 +15,10 @@<br>
<br>
 #include <stdint.h><br>
<br>
+#ifdef __cplusplus<br>
+extern "C" {<br>
+#endif<br>
+<br>
 #ifndef RTE_TOOLCHAIN_MSVC<br>
<br>
 /* Unsigned vector types */<br>
@@ -226,4 +230,8 @@ uint16_t rte_vect_get_max_simd_bitwidth(void);<br>
  */<br>
 int rte_vect_set_max_simd_bitwidth(uint16_t bitwidth);<br>
<br>
+#ifdef __cplusplus<br>
+}<br>
+#endif<br>
+<br>
 #endif /* _RTE_VECT_H_ */<br>
-- <br>
2.31.1<br>
<br>
</blockquote></div>