string: Use workaround for #include_next when it is not available.
authorBen Pfaff <blp@nicira.com>
Fri, 13 Dec 2013 17:54:55 +0000 (09:54 -0800)
committerBen Pfaff <blp@nicira.com>
Fri, 13 Dec 2013 17:57:41 +0000 (09:57 -0800)
Signed-off-by: Ben Pfaff <blp@nicira.com>
configure.ac
lib/.gitignore
lib/automake.mk
lib/string.h [deleted file]
lib/string.h.in [new file with mode: 0644]

index 96880af..05b7082 100644 (file)
@@ -91,6 +91,9 @@ OVS_CHECK_ATOMIC_ALWAYS_LOCK_FREE(8)
 OVS_CHECK_POSIX_AIO
 OVS_CHECK_PTHREAD_SET_NAME
 
+OVS_CHECK_INCLUDE_NEXT([string.h])
+AC_CONFIG_FILES([lib/string.h])
+
 OVS_ENABLE_OPTION([-Wall])
 OVS_ENABLE_OPTION([-Wextra])
 OVS_ENABLE_OPTION([-Wno-sign-compare])
index 31346e4..03706de 100644 (file)
@@ -5,6 +5,7 @@
 /coverage-counters.c
 /ofp-errors.inc
 /ofp-msgs.inc
+/string.h
 /vswitch-idl.c
 /vswitch-idl.h
 /vswitch-idl.ovsidl
index ea1e1fb..a8edfc3 100644 (file)
@@ -194,7 +194,6 @@ lib_libopenvswitch_a_SOURCES = \
        lib/stream.c \
        lib/stream.h \
        lib/string.c \
-       lib/string.h \
        lib/svec.c \
        lib/svec.h \
        lib/table.c \
@@ -232,6 +231,7 @@ lib_libopenvswitch_a_SOURCES = \
        lib/vswitch-idl.h \
        lib/vtep-idl.c \
        lib/vtep-idl.h
+EXTRA_DIST += lib/string.h.in
 
 nodist_lib_libopenvswitch_a_SOURCES = \
        lib/dirs.c
diff --git a/lib/string.h b/lib/string.h
deleted file mode 100644 (file)
index 2b7b454..0000000
+++ /dev/null
@@ -1,40 +0,0 @@
-/*
- * Copyright (c) 2009, 2011 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:
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * 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 STRING_WRAPPER_H
-#define STRING_WRAPPER_H 1
-
-#include_next <string.h>
-
-/* Glibc 2.7 has a bug in strtok_r when compiling with optimization that can
- * cause segfaults if the delimiters argument is a compile-time constant that
- * has exactly 1 character:
- *
- *      http://sources.redhat.com/bugzilla/show_bug.cgi?id=5614
- *
- * The bug is only present in the inline version of strtok_r(), so force the
- * out-of-line version to be used instead. */
-#if HAVE_STRTOK_R_BUG
-#undef strtok_r
-#endif
-
-#ifndef HAVE_STRNLEN
-#undef strnlen
-#define strnlen rpl_strnlen
-size_t strnlen(const char *, size_t maxlen);
-#endif
-
-#endif /* string.h wrapper */
diff --git a/lib/string.h.in b/lib/string.h.in
new file mode 100644 (file)
index 0000000..6e2c2ba
--- /dev/null
@@ -0,0 +1,40 @@
+/*
+ * Copyright (c) 2009, 2011, 2013 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:
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * 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 STRING_WRAPPER_H
+#define STRING_WRAPPER_H 1
+
+#@INCLUDE_NEXT@ @NEXT_STRING_H@
+
+/* Glibc 2.7 has a bug in strtok_r when compiling with optimization that can
+ * cause segfaults if the delimiters argument is a compile-time constant that
+ * has exactly 1 character:
+ *
+ *      http://sources.redhat.com/bugzilla/show_bug.cgi?id=5614
+ *
+ * The bug is only present in the inline version of strtok_r(), so force the
+ * out-of-line version to be used instead. */
+#if HAVE_STRTOK_R_BUG
+#undef strtok_r
+#endif
+
+#ifndef HAVE_STRNLEN
+#undef strnlen
+#define strnlen rpl_strnlen
+size_t strnlen(const char *, size_t maxlen);
+#endif
+
+#endif /* string.h wrapper */