[ovs-dev] [PATCH] Update openvswitch to allow linking from C++ projects

Harold Lim haroldl at vmware.com
Tue Dec 17 02:57:40 UTC 2013


1. libopenvswitch is updated to be compiled with -fPIC.
2. The input variable of ovs_scan is changed from 'template' to
   'format'. template is a keyword in C++.
3. Add an #ifndef guard around NOT_REACHED.
---
 lib/automake.mk |    4 ++++
 lib/util.c      |    8 ++++----
 lib/util.h      |    4 +++-
 3 files changed, 11 insertions(+), 5 deletions(-)

diff --git a/lib/automake.mk b/lib/automake.mk
index fadc4be..c25b4dc 100644
--- a/lib/automake.mk
+++ b/lib/automake.mk
@@ -231,6 +231,10 @@ lib_libopenvswitch_a_SOURCES = \
 	lib/vtep-idl.c \
 	lib/vtep-idl.h
 
+lib_libopenvswitch_a_CFLAGS = \
+	$(AM_CFLAGS) \
+	-fPIC
+
 nodist_lib_libopenvswitch_a_SOURCES = \
 	lib/dirs.c
 CLEANFILES += $(nodist_lib_libopenvswitch_a_SOURCES)
diff --git a/lib/util.c b/lib/util.c
index 13d41a7..e12a488 100644
--- a/lib/util.c
+++ b/lib/util.c
@@ -1483,7 +1483,7 @@ scan_chars(const char *s, const struct scan_spec *spec, va_list *args)
 /* This is an implementation of the standard sscanf() function, with the
  * following exceptions:
  *
- *   - It returns true if the entire template was successfully scanned and
+ *   - It returns true if the entire format was successfully scanned and
  *     converted, false if any conversion failed.
  *
  *   - The standard doesn't define sscanf() behavior when an out-of-range value
@@ -1500,15 +1500,15 @@ scan_chars(const char *s, const struct scan_spec *spec, va_list *args)
  *   - %p is not supported.
  */
 bool
-ovs_scan(const char *s, const char *template, ...)
+ovs_scan(const char *s, const char *format, ...)
 {
     const char *const start = s;
     bool ok = false;
     const char *p;
     va_list args;
 
-    va_start(args, template);
-    p = template;
+    va_start(args, format);
+    p = format;
     while (*p != '\0') {
         struct scan_spec spec;
         unsigned char c = *p++;
diff --git a/lib/util.h b/lib/util.h
index 8d810c2..1680cd6 100644
--- a/lib/util.h
+++ b/lib/util.h
@@ -150,7 +150,9 @@ is_pow2(uintmax_t x)
 #define MAX(X, Y) ((X) > (Y) ? (X) : (Y))
 #endif
 
+#ifndef NOT_REACHED
 #define NOT_REACHED() abort()
+#endif
 
 /* Expands to a string that looks like "<file>:<line>", e.g. "tmp.c:10".
  *
@@ -281,7 +283,7 @@ bool str_to_uint(const char *, int base, unsigned int *);
 bool str_to_ulong(const char *, int base, unsigned long *);
 bool str_to_ullong(const char *, int base, unsigned long long *);
 
-bool ovs_scan(const char *s, const char *template, ...) SCANF_FORMAT(2, 3);
+bool ovs_scan(const char *s, const char *format, ...) SCANF_FORMAT(2, 3);
 
 bool str_to_double(const char *, double *);
 
-- 
1.7.9.5




More information about the dev mailing list