*.pyc
*.so
*.suo
+**/*.sym
*~
*,cover
.#*
cd dpdk-1.7.1
find ./ -type f | xargs sed -i 's/max-inline-insns-single=100/max-inline-insns-single=400/'
sed -ri 's,(CONFIG_RTE_BUILD_COMBINE_LIBS=).*,\1y,' config/common_linuxapp
+ sed -ri '/CONFIG_RTE_LIBNAME/a CONFIG_RTE_BUILD_FPIC=y' config/common_linuxapp
+ sed -ri '/EXECENV_CFLAGS = -pthread -fPIC/{s/$/\nelse ifeq ($(CONFIG_RTE_BUILD_FPIC),y)/;s/$/\nEXECENV_CFLAGS = -pthread -fPIC/}' mk/exec-env/linuxapp/rte.vars.mk
make config CC=gcc T=x86_64-native-linuxapp-gcc
make CC=gcc RTE_KERNELDIR=$KERNELSRC
echo "Installed DPDK source in $(pwd)"
Sanjay Sane ssane@nicira.com
Saurabh Shah ssaurabh@nicira.com
Scott Lowe scott.lowe@scottlowe.org
+Scott Mann sdmnix@gmail.com
Selvamuthukumar smkumar@merunetworks.com
Shan Wei davidshan@tencent.com
Shih-Hao Li shli@nicira.com
LT_INIT([disable-shared])
m4_pattern_forbid([LT_INIT]) dnl Make autoconf fail if libtool is missing.
+# The following explanation may help to understand the use of the
+# version number fields: current, revision, and age.
+#
+# Consider that there are three possible kinds of reactions from
+# users of your library to changes in a shared library:
+#
+# 1. Programs using the previous version may use the new version as drop-in
+# replacement, and programs using the new version can also work with the
+# previous one. In other words, no recompiling nor relinking is needed.
+# In short, there are no changes to any symbols, no symbols removed,
+# and no symbols added. In this case, bump revision only, don't touch
+# current nor age.
+#
+# 2. Programs using the previous version may use the new version as drop-in
+# replacement, but programs using the new version may use APIs not
+# present in the previous one. In other words, new symbols have been
+# added and a program linking against the new version may fail with
+# “unresolved symbols.” If linking against the old version at runtime:
+# set revision to 0, bump current and age.
+#
+# 3. Programs may need to be changed, recompiled, relinked in order to use
+# the new version. This is the case when symbols have been modified or
+# deleted. Bump current, set revision and age to 0.
+
+m4_define([libopenvswitch_lt_current], [1])
+m4_define([libopenvswitch_lt_revision], [0])
+m4_define([libopenvswitch_lt_age], [0])
+
+LT_CURRENT=libopenvswitch_lt_current
+AC_SUBST([LT_CURRENT])
+LT_REVISION=libopenvswitch_lt_revision
+AC_SUBST([LT_REVISION])
+LT_AGE=libopenvswitch_lt_age
+AC_SUBST([LT_AGE])
+
AC_SEARCH_LIBS([pow], [m])
AC_SEARCH_LIBS([clock_gettime], [rt])
AC_SEARCH_LIBS([timer_create], [rt])
AX_FUNC_POSIX_MEMALIGN
OVS_CHECK_INCLUDE_NEXT([stdio.h string.h])
-AC_CONFIG_FILES([lib/stdio.h lib/string.h])
+AC_CONFIG_FILES([
+ lib/stdio.h
+ lib/string.h
+ ovsdb/libovsdb.sym
+ ofproto/libofproto.sym
+ lib/libsflow.sym
+ lib/libopenvswitch.sym])
OVS_ENABLE_OPTION([-Wall])
OVS_ENABLE_OPTION([-Wextra])
lib_libopenvswitch_la_LIBADD += ${PTHREAD_LIBS}
endif
-lib_libopenvswitch_la_LDFLAGS = -release $(VERSION)
+lib_libopenvswitch_la_LDFLAGS = \
+ -version-info $(LT_CURRENT):$(LT_REVISION):$(LT_AGE) \
+ -Wl,--version-script=$(top_builddir)/lib/libopenvswitch.sym
lib_libopenvswitch_la_SOURCES = \
lib/aes128.c \
CLEANFILES += $(nodist_lib_libopenvswitch_la_SOURCES)
lib_LTLIBRARIES += lib/libsflow.la
-lib_libsflow_la_LDFLAGS = -release $(VERSION)
+lib_libsflow_la_LDFLAGS = \
+ -version-info $(LT_CURRENT):$(LT_REVISION):$(LT_AGE) \
+ -Wl,--version-script=$(top_builddir)/lib/libsflow.sym
lib_libsflow_la_SOURCES = \
lib/sflow_api.h \
lib/sflow.h \
--- /dev/null
+libopenvswitch_@LT_CURRENT@ {
+global:
+ *;
+};
--- /dev/null
+libsflow_@LT_CURRENT@ {
+global:
+ *;
+};
assert_single_threaded();
free(program_name);
+ /* Remove libtool prefix, if it is there */
+ if (strncmp(basename, "lt-", 3) == 0) {
+ char *tmp_name = basename;
+ basename = xstrdup(basename + 3);
+ free(tmp_name);
+ }
program_name = basename;
- free(program_version);
+ free(program_version);
if (!strcmp(version, VERSION)) {
program_version = xasprintf("%s (Open vSwitch) "VERSION"\n"
"Compiled %s %s\n",
# without warranty of any kind.
lib_LTLIBRARIES += ofproto/libofproto.la
-ofproto_libofproto_la_LDFLAGS = -release $(VERSION)
+ofproto_libofproto_la_LDFLAGS = \
+ -version-info $(LT_CURRENT):$(LT_REVISION):$(LT_AGE) \
+ -Wl,--version-script=$(top_builddir)/ofproto/libofproto.sym
ofproto_libofproto_la_SOURCES = \
ofproto/bond.c \
ofproto/bond.h \
--- /dev/null
+libofproto_@LT_CURRENT@ {
+global:
+ *;
+};
# libovsdb
lib_LTLIBRARIES += ovsdb/libovsdb.la
-ovsdb_libovsdb_la_LDFLAGS = -release $(VERSION)
+ovsdb_libovsdb_la_LDFLAGS = \
+ -version-info $(LT_CURRENT):$(LT_REVISION):$(LT_AGE) \
+ -Wl,--version-script=$(top_builddir)/ovsdb/libovsdb.sym
ovsdb_libovsdb_la_SOURCES = \
ovsdb/column.c \
ovsdb/column.h \
--- /dev/null
+libovsdb_@LT_CURRENT@ {
+global:
+ *;
+};