This is an automated email from the git hooks/post-receive script. It was generated because a ref change was pushed to the repository containing the project "".
The branch, master has been updated via f83b71e6a9c685227615455df1f9e4fefeff19ae (commit) from a8e5a8f6853ddc998430d112c22994928ddb4070 (commit)
Those revisions listed above that are new to this repository have not appeared on any other notification email; so we list those revisions in full, below.
- Log ----------------------------------------------------------------- commit f83b71e6a9c685227615455df1f9e4fefeff19ae Author: Petri Savolainen petri.savolainen@nokia.com Date: Fri Sep 30 02:46:08 2016 +0300
linux-gen: build: de-couple abi compatibility from shared lib
Building ABI compatible or shared library are two different targets. A shared library may be used also without ABI compatibility. A new --enable-abi-compat configuration option is introduced. By default libraries are not built in ABI compat mode to enable function inlining. There is a noticeable performance difference when e.g. odp_atomic_xxx calls are not inlined.
Signed-off-by: Petri Savolainen petri.savolainen@nokia.com Reviewed-and-tested-by: Bill Fischofer bill.fischofer@linaro.org Signed-off-by: Maxim Uvarov maxim.uvarov@linaro.org
diff --git a/configure.ac b/configure.ac index 982aff7..f081c51 100644 --- a/configure.ac +++ b/configure.ac @@ -176,13 +176,6 @@ AM_CONDITIONAL([test_example], [test x$test_example = xyes ]) AM_CONDITIONAL([HAVE_DOXYGEN], [test "x${DOXYGEN}" = "xdoxygen"]) AM_CONDITIONAL([user_guide], [test "x${user_guides}" = "xyes" ]) AM_CONDITIONAL([HAVE_MSCGEN], [test "x${MSCGEN}" = "xmscgen"]) -if test x$enable_shared != xyes; -then - _ODP_INLINES="_ODP_INLINES" -else - _ODP_INLINES="_ODP_NO_INLINES" -fi -AC_SUBST(_ODP_INLINES)
########################################################################## # Setup doxygen documentation @@ -225,6 +218,22 @@ AC_ARG_ENABLE([debug], ODP_CFLAGS="$ODP_CFLAGS -DODP_DEBUG=$ODP_DEBUG"
########################################################################## +# Enable/disable ABI compatible build +########################################################################## +ODP_ABI_COMPAT=1 +abi_compat=yes +AC_ARG_ENABLE([abi-compat], + [ --enable-abi-compat build all targets in ABI compatible mode (default=yes)], + [if test "x$enableval" = "xyes"; then + ODP_ABI_COMPAT=1 + abi_compat=yes + else + ODP_ABI_COMPAT=0 + abi_compat=no + fi]) +AC_SUBST(ODP_ABI_COMPAT) + +########################################################################## # Default warning setup ########################################################################## ODP_CFLAGS="$ODP_CFLAGS -W -Wall -Werror -Wstrict-prototypes -Wmissing-prototypes" @@ -307,6 +316,9 @@ AC_MSG_RESULT([ am_ldflags: ${AM_LDFLAGS} libs: ${LIBS} defs: ${DEFS} + static libraries: ${enable_static} + shared libraries: ${enable_shared} + ABI compatible: ${abi_compat} cunit: ${cunit_support} test_vald: ${test_vald} test_perf: ${test_perf} diff --git a/platform/linux-generic/.gitignore b/platform/linux-generic/.gitignore index ec6ca37..909756a 100644 --- a/platform/linux-generic/.gitignore +++ b/platform/linux-generic/.gitignore @@ -1 +1 @@ -include/odp/api/plat/inlines.h +include/odp/api/plat/static_inline.h diff --git a/platform/linux-generic/Makefile.am b/platform/linux-generic/Makefile.am index 900ac08..0ec13d4 100644 --- a/platform/linux-generic/Makefile.am +++ b/platform/linux-generic/Makefile.am @@ -61,7 +61,7 @@ odpapiinclude_HEADERS = \
odpapiplatincludedir= $(includedir)/odp/api/plat odpapiplatinclude_HEADERS = \ - $(builddir)/include/odp/api/plat/inlines.h \ + $(builddir)/include/odp/api/plat/static_inline.h \ $(srcdir)/include/odp/api/plat/atomic_inlines.h \ $(srcdir)/include/odp/api/plat/atomic_types.h \ $(srcdir)/include/odp/api/plat/barrier_types.h \ diff --git a/platform/linux-generic/include/odp/api/atomic.h b/platform/linux-generic/include/odp/api/atomic.h index c18e68b..7886cb4 100644 --- a/platform/linux-generic/include/odp/api/atomic.h +++ b/platform/linux-generic/include/odp/api/atomic.h @@ -24,8 +24,8 @@ extern "C" { * @{ */
-#include <odp/api/plat/inlines.h> -#ifdef _ODP_INLINES +#include <odp/api/plat/static_inline.h> +#if ODP_ABI_COMPAT == 0 #include <odp/api/plat/atomic_inlines.h> #endif
diff --git a/platform/linux-generic/include/odp/api/byteorder.h b/platform/linux-generic/include/odp/api/byteorder.h index 84d1173..ec3d0ee 100644 --- a/platform/linux-generic/include/odp/api/byteorder.h +++ b/platform/linux-generic/include/odp/api/byteorder.h @@ -25,8 +25,8 @@ extern "C" { * @{ */
-#include <odp/api/plat/inlines.h> -#ifdef _ODP_INLINES +#include <odp/api/plat/static_inline.h> +#if ODP_ABI_COMPAT == 0 #include <odp/api/plat/byteorder_inlines.h> #endif
diff --git a/platform/linux-generic/include/odp/api/plat/inlines.h.in b/platform/linux-generic/include/odp/api/plat/static_inline.h.in similarity index 58% rename from platform/linux-generic/include/odp/api/plat/inlines.h.in rename to platform/linux-generic/include/odp/api/plat/static_inline.h.in index 5d8c0dc..acee5f3 100644 --- a/platform/linux-generic/include/odp/api/plat/inlines.h.in +++ b/platform/linux-generic/include/odp/api/plat/static_inline.h.in @@ -7,27 +7,26 @@ /** * @file * - * ODP platform inline functions + * Macro for static inline functions */
-#ifndef ODP_PLAT_INLINES_H_ -#define ODP_PLAT_INLINES_H_ +#ifndef ODP_PLAT_STATIC_INLINE_H_ +#define ODP_PLAT_STATIC_INLINE_H_
#ifdef __cplusplus extern "C" { #endif
-#define @_ODP_INLINES@ - -#ifdef _ODP_INLINES -#define _STATIC static inline -#else +#if @ODP_ABI_COMPAT@ +#define ODP_ABI_COMPAT 1 #define _STATIC +#else +#define ODP_ABI_COMPAT 0 +#define _STATIC static inline #endif
#ifdef __cplusplus } #endif
- -#endif /* ODP_PLAT_INLINES_H_ */ +#endif diff --git a/platform/linux-generic/include/odp/api/std_clib.h b/platform/linux-generic/include/odp/api/std_clib.h index c498f68..fea4725 100644 --- a/platform/linux-generic/include/odp/api/std_clib.h +++ b/platform/linux-generic/include/odp/api/std_clib.h @@ -14,8 +14,8 @@ extern "C" { #include <odp/api/spec/std_types.h> #include <string.h>
-#include <odp/api/plat/inlines.h> -#ifdef _ODP_INLINES +#include <odp/api/plat/static_inline.h> +#if ODP_ABI_COMPAT == 0 #include <odp/api/plat/std_clib_inlines.h> #endif
diff --git a/platform/linux-generic/include/odp/api/sync.h b/platform/linux-generic/include/odp/api/sync.h index d2becb9..e1afcc7 100644 --- a/platform/linux-generic/include/odp/api/sync.h +++ b/platform/linux-generic/include/odp/api/sync.h @@ -21,8 +21,8 @@ extern "C" { * @{ */
-#include <odp/api/plat/inlines.h> -#ifdef _ODP_INLINES +#include <odp/api/plat/static_inline.h> +#if ODP_ABI_COMPAT == 0 #include <odp/api/plat/sync_inlines.h> #endif
diff --git a/platform/linux-generic/m4/configure.m4 b/platform/linux-generic/m4/configure.m4 index 6fb05c0..d3e5528 100644 --- a/platform/linux-generic/m4/configure.m4 +++ b/platform/linux-generic/m4/configure.m4 @@ -37,4 +37,4 @@ m4_include([platform/linux-generic/m4/odp_ipc.m4]) m4_include([platform/linux-generic/m4/odp_schedule.m4])
AC_CONFIG_FILES([platform/linux-generic/Makefile - platform/linux-generic/include/odp/api/plat/inlines.h]) + platform/linux-generic/include/odp/api/plat/static_inline.h]) diff --git a/platform/linux-generic/odp_atomic.c b/platform/linux-generic/odp_atomic.c index e9a3ed0..0e40cda 100644 --- a/platform/linux-generic/odp_atomic.c +++ b/platform/linux-generic/odp_atomic.c @@ -5,7 +5,7 @@ */
#include <odp/api/atomic.h> -#ifndef _ODP_INLINES +#if ODP_ABI_COMPAT == 1 #include <odp/api/plat/atomic_inlines.h> #endif
diff --git a/platform/linux-generic/odp_byteorder.c b/platform/linux-generic/odp_byteorder.c index fc87291..a344c53 100644 --- a/platform/linux-generic/odp_byteorder.c +++ b/platform/linux-generic/odp_byteorder.c @@ -5,6 +5,6 @@ */
#include <odp/api/byteorder.h> -#ifndef _ODP_INLINES +#if ODP_ABI_COMPAT == 1 #include <odp/api/plat/byteorder_inlines.h> #endif diff --git a/platform/linux-generic/odp_std_clib.c b/platform/linux-generic/odp_std_clib.c index 611ba12..24df249 100644 --- a/platform/linux-generic/odp_std_clib.c +++ b/platform/linux-generic/odp_std_clib.c @@ -5,6 +5,6 @@ */
#include <odp/api/std_clib.h> -#ifndef _ODP_INLINES +#if ODP_ABI_COMPAT == 1 #include <odp/api/plat/std_clib_inlines.h> #endif diff --git a/platform/linux-generic/odp_sync.c b/platform/linux-generic/odp_sync.c index f31c389..b7eb503 100644 --- a/platform/linux-generic/odp_sync.c +++ b/platform/linux-generic/odp_sync.c @@ -5,6 +5,6 @@ */
#include <odp/api/sync.h> -#ifndef _ODP_INLINES +#if ODP_ABI_COMPAT == 1 #include <odp/api/plat/sync_inlines.h> #endif
-----------------------------------------------------------------------
Summary of changes: configure.ac | 26 ++++++++++++++++------ platform/linux-generic/.gitignore | 2 +- platform/linux-generic/Makefile.am | 2 +- platform/linux-generic/include/odp/api/atomic.h | 4 ++-- platform/linux-generic/include/odp/api/byteorder.h | 4 ++-- .../api/plat/{inlines.h.in => static_inline.h.in} | 19 ++++++++-------- platform/linux-generic/include/odp/api/std_clib.h | 4 ++-- platform/linux-generic/include/odp/api/sync.h | 4 ++-- platform/linux-generic/m4/configure.m4 | 2 +- platform/linux-generic/odp_atomic.c | 2 +- platform/linux-generic/odp_byteorder.c | 2 +- platform/linux-generic/odp_std_clib.c | 2 +- platform/linux-generic/odp_sync.c | 2 +- 13 files changed, 43 insertions(+), 32 deletions(-) rename platform/linux-generic/include/odp/api/plat/{inlines.h.in => static_inline.h.in} (58%)
hooks/post-receive