[dpdk.org] fib: add "C" extern linkage for C++ programs

Message ID 20200316184236.15692-1-asim.jamshed@gmail.com (mailing list archive)
State Accepted, archived
Delegated to: David Marchand
Headers
Series [dpdk.org] fib: add "C" extern linkage for C++ programs |

Checks

Context Check Description
ci/checkpatch success coding style OK
ci/travis-robot warning Travis build: failed
ci/iol-mellanox-Performance success Performance Testing PASS
ci/iol-testing success Testing PASS
ci/Intel-compilation success Compilation OK

Commit Message

Muhammad Asim Jamshed March 16, 2020, 6:42 p.m. UTC
  This patch allows C++ programs to use librte_fib library routines.
Previously C++ programs were not able to link this library and programs
would fail to get linked. With this patch compilation and linking
will be successful.

Signed-off-by: Muhammad Asim Jamshed <asim.jamshed@gmail.com>
Signed-off-by: Saikrishna Edupuganti <saikrishna.edupuganti@intel.com>
---
 lib/librte_fib/rte_fib.h  | 8 ++++++++
 lib/librte_fib/rte_fib6.h | 8 ++++++++
 2 files changed, 16 insertions(+)
  

Comments

David Marchand March 25, 2020, 1:21 p.m. UTC | #1
Cc: maintainer.

On Mon, Mar 16, 2020 at 8:22 PM Muhammad Asim Jamshed
<asim.jamshed@gmail.com> wrote:
>
> This patch allows C++ programs to use librte_fib library routines.
> Previously C++ programs were not able to link this library and programs
> would fail to get linked. With this patch compilation and linking
> will be successful.
>
> Signed-off-by: Muhammad Asim Jamshed <asim.jamshed@gmail.com>
> Signed-off-by: Saikrishna Edupuganti <saikrishna.edupuganti@intel.com>
> ---
>  lib/librte_fib/rte_fib.h  | 8 ++++++++
>  lib/librte_fib/rte_fib6.h | 8 ++++++++
>  2 files changed, 16 insertions(+)
>
> diff --git a/lib/librte_fib/rte_fib.h b/lib/librte_fib/rte_fib.h
> index d06c5ef55..af3bbf07e 100644
> --- a/lib/librte_fib/rte_fib.h
> +++ b/lib/librte_fib/rte_fib.h
> @@ -14,6 +14,10 @@
>
>  #include <rte_compat.h>
>
> +#ifdef __cplusplus
> +extern "C" {
> +#endif
> +
>  struct rte_fib;
>  struct rte_rib;
>
> @@ -185,4 +189,8 @@ __rte_experimental
>  struct rte_rib *
>  rte_fib_get_rib(struct rte_fib *fib);
>
> +#ifdef __cplusplus
> +}
> +#endif
> +
>  #endif /* _RTE_FIB_H_ */
> diff --git a/lib/librte_fib/rte_fib6.h b/lib/librte_fib/rte_fib6.h
> index 426870403..66c71c84c 100644
> --- a/lib/librte_fib/rte_fib6.h
> +++ b/lib/librte_fib/rte_fib6.h
> @@ -14,6 +14,10 @@
>
>  #include <rte_compat.h>
>
> +#ifdef __cplusplus
> +extern "C" {
> +#endif
> +
>  #define RTE_FIB6_IPV6_ADDR_SIZE                16
>  /** Maximum depth value possible for IPv6 FIB. */
>  #define RTE_FIB6_MAXDEPTH       128
> @@ -190,4 +194,8 @@ __rte_experimental
>  struct rte_rib6 *
>  rte_fib6_get_rib(struct rte_fib6 *fib);
>
> +#ifdef __cplusplus
> +}
> +#endif
> +
>  #endif /* _RTE_FIB6_H_ */
> --
> 2.17.1
>

Reviewed-by: David Marchand <david.marchand@redhat.com>
  
Vladimir Medvedkin March 26, 2020, 10:40 a.m. UTC | #2
On 16/03/2020 18:42, Muhammad Asim Jamshed wrote:
> This patch allows C++ programs to use librte_fib library routines.
> Previously C++ programs were not able to link this library and programs
> would fail to get linked. With this patch compilation and linking
> will be successful.
>
> Signed-off-by: Muhammad Asim Jamshed <asim.jamshed@gmail.com>
> Signed-off-by: Saikrishna Edupuganti <saikrishna.edupuganti@intel.com>
> ---
>   lib/librte_fib/rte_fib.h  | 8 ++++++++
>   lib/librte_fib/rte_fib6.h | 8 ++++++++
>   2 files changed, 16 insertions(+)
>
> diff --git a/lib/librte_fib/rte_fib.h b/lib/librte_fib/rte_fib.h
> index d06c5ef55..af3bbf07e 100644
> --- a/lib/librte_fib/rte_fib.h
> +++ b/lib/librte_fib/rte_fib.h
> @@ -14,6 +14,10 @@
>   
>   #include <rte_compat.h>
>   
> +#ifdef __cplusplus
> +extern "C" {
> +#endif
> +
>   struct rte_fib;
>   struct rte_rib;
>   
> @@ -185,4 +189,8 @@ __rte_experimental
>   struct rte_rib *
>   rte_fib_get_rib(struct rte_fib *fib);
>   
> +#ifdef __cplusplus
> +}
> +#endif
> +
>   #endif /* _RTE_FIB_H_ */
> diff --git a/lib/librte_fib/rte_fib6.h b/lib/librte_fib/rte_fib6.h
> index 426870403..66c71c84c 100644
> --- a/lib/librte_fib/rte_fib6.h
> +++ b/lib/librte_fib/rte_fib6.h
> @@ -14,6 +14,10 @@
>   
>   #include <rte_compat.h>
>   
> +#ifdef __cplusplus
> +extern "C" {
> +#endif
> +
>   #define RTE_FIB6_IPV6_ADDR_SIZE		16
>   /** Maximum depth value possible for IPv6 FIB. */
>   #define RTE_FIB6_MAXDEPTH       128
> @@ -190,4 +194,8 @@ __rte_experimental
>   struct rte_rib6 *
>   rte_fib6_get_rib(struct rte_fib6 *fib);
>   
> +#ifdef __cplusplus
> +}
> +#endif
> +
>   #endif /* _RTE_FIB6_H_ */


Acked-by: Vladimir Medvedkin <vladimir.medvedkin@intel.com>
  
David Marchand April 10, 2020, 9:04 a.m. UTC | #3
On Wed, Mar 25, 2020 at 2:21 PM David Marchand
<david.marchand@redhat.com> wrote:
> On Mon, Mar 16, 2020 at 8:22 PM Muhammad Asim Jamshed
> <asim.jamshed@gmail.com> wrote:
> >
> > This patch allows C++ programs to use librte_fib library routines.
> > Previously C++ programs were not able to link this library and programs
> > would fail to get linked. With this patch compilation and linking
> > will be successful.

Fixes: 39e927248416 ("fib: add FIB library")
Fixes: 40d41a8a7b34 ("fib: support IPv6")
Cc: stable@dpdk.org

> >
> > Signed-off-by: Muhammad Asim Jamshed <asim.jamshed@gmail.com>
> > Signed-off-by: Saikrishna Edupuganti <saikrishna.edupuganti@intel.com>
> Reviewed-by: David Marchand <david.marchand@redhat.com>
Acked-by: Vladimir Medvedkin <vladimir.medvedkin@intel.com>

Applied, thanks.
  

Patch

diff --git a/lib/librte_fib/rte_fib.h b/lib/librte_fib/rte_fib.h
index d06c5ef55..af3bbf07e 100644
--- a/lib/librte_fib/rte_fib.h
+++ b/lib/librte_fib/rte_fib.h
@@ -14,6 +14,10 @@ 
 
 #include <rte_compat.h>
 
+#ifdef __cplusplus
+extern "C" {
+#endif
+
 struct rte_fib;
 struct rte_rib;
 
@@ -185,4 +189,8 @@  __rte_experimental
 struct rte_rib *
 rte_fib_get_rib(struct rte_fib *fib);
 
+#ifdef __cplusplus
+}
+#endif
+
 #endif /* _RTE_FIB_H_ */
diff --git a/lib/librte_fib/rte_fib6.h b/lib/librte_fib/rte_fib6.h
index 426870403..66c71c84c 100644
--- a/lib/librte_fib/rte_fib6.h
+++ b/lib/librte_fib/rte_fib6.h
@@ -14,6 +14,10 @@ 
 
 #include <rte_compat.h>
 
+#ifdef __cplusplus
+extern "C" {
+#endif
+
 #define RTE_FIB6_IPV6_ADDR_SIZE		16
 /** Maximum depth value possible for IPv6 FIB. */
 #define RTE_FIB6_MAXDEPTH       128
@@ -190,4 +194,8 @@  __rte_experimental
 struct rte_rib6 *
 rte_fib6_get_rib(struct rte_fib6 *fib);
 
+#ifdef __cplusplus
+}
+#endif
+
 #endif /* _RTE_FIB6_H_ */