On 10/13/16 19:33, Mike Holmes wrote:
Anders comments have not been addressed on the list, are they resloved ?


In current patch set - no. Because it's subject for separate patch. But we need resolve version name before tagging.

Maxim.


On 13 October 2016 at 11:40, Maxim Uvarov <maxim.uva...@linaro.org <mailto:maxim.uva...@linaro.org>> wrote:

    Merged,

    we also need this option to be tested in CI.

    Maxim.


    On 10/12/16 18:21, Bill Fischofer wrote:

        This version resolves the issue with running from an installed
        copy of ODP.

        On Thu, Sep 29, 2016 at 6:46 PM, Petri Savolainen <
        petri.savolai...@nokia.com
        <mailto:petri.savolai...@nokia.com>> wrote:

            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.savolai...@nokia.com
            <mailto:petri.savolai...@nokia.com>>

        Reviewed-and-tested-by: Bill Fischofer
        <bill.fischo...@linaro.org <mailto:bill.fischo...@linaro.org>>


            ---
            configure.ac <http://configure.ac>                      |
            26 ++++++++++++-----
              platform/linux-generic/.gitignore       |  2 +-
platform/linux-generic/Makefile.am <http://e.am> | 2 +-
              platform/linux-generic/include/odp/api/atomic.h   |  4 +--
              platform/linux-generic/include/odp/api/byteorder.h |  4 +--
              .../include/odp/api/plat/inlines.h.in
            <http://inlines.h.in> | 33
            ----------------------
              .../include/odp/api/plat/static_inline.h.in
            <http://static_inline.h.in> | 32
            +++++++++++++++++++++
              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 +-
              14 files changed, 66 insertions(+), 55 deletions(-)
              delete mode 100644
            platform/linux-generic/include/odp/api/plat/inlines.
            h.in <http://h.in>
              create mode 100644
            platform/linux-generic/include/odp/api/plat/static_
            inline.h.in <http://inline.h.in>

            diff --git a/configure.ac <http://configure.ac>
            b/configure.ac <http://configure.ac>
            index 982aff7..f081c51 100644
            --- a/configure.ac <http://configure.ac>
            +++ b/configure.ac <http://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
            <http://ile.am> b/platform/linux-generic/
            Makefile.am
            index 900ac08..0ec13d4 100644
            --- a/platform/linux-generic/Makefile.am <http://ile.am>
            +++ b/platform/linux-generic/Makefile.am <http://ile.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
            <http://inlines.h.in>
            b/platform/linux-generic/include/odp/api/plat/inlines.h.in
            <http://inlines.h.in>
            deleted file mode 100644
            index 5d8c0dc..0000000
            ---
            a/platform/linux-generic/include/odp/api/plat/inlines.h.in
            <http://inlines.h.in>
            +++ /dev/null
            @@ -1,33 +0,0 @@
            -/* Copyright (c) 2016, Linaro Limited
            - * All rights reserved.
            - *
            - * SPDX-License-Identifier: BSD-3-Clause
            - */
            -
            -/**
            - * @file
            - *
            - * ODP platform inline functions
            - */
            -
            -#ifndef ODP_PLAT_INLINES_H_
            -#define ODP_PLAT_INLINES_H_
            -
            -#ifdef __cplusplus
            -extern "C" {
            -#endif
            -
            -#define @_ODP_INLINES@
            -
            -#ifdef _ODP_INLINES
            -#define _STATIC static inline
            -#else
            -#define _STATIC
            -#endif
            -
            -#ifdef __cplusplus
            -}
            -#endif
            -
            -
            -#endif /* ODP_PLAT_INLINES_H_ */
            diff --git
            a/platform/linux-generic/include/odp/api/plat/static_
            inline.h.in <http://inline.h.in>
            b/platform/linux-generic/include/odp/api/plat/static_
            inline.h.in <http://inline.h.in>
            new file mode 100644
            index 0000000..acee5f3
            --- /dev/null
            +++
            b/platform/linux-generic/include/odp/api/plat/static_inline.h.in
            <http://static_inline.h.in>
            @@ -0,0 +1,32 @@
            +/* Copyright (c) 2016, Linaro Limited
            + * All rights reserved.
            + *
            + * SPDX-License-Identifier: BSD-3-Clause
            + */
            +
            +/**
            + * @file
            + *
            + * Macro for static inline functions
            + */
            +
            +#ifndef ODP_PLAT_STATIC_INLINE_H_
            +#define ODP_PLAT_STATIC_INLINE_H_
            +
            +#ifdef __cplusplus
            +extern "C" {
            +#endif
            +
            +#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
            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
            --
            2.8.1






--
Mike Holmes
Program Manager - Linaro Networking Group
Linaro.org <http://www.linaro.org/>***│ *Open source software for ARM SoCs
"Work should be fun and collaborative, the rest follows"


Reply via email to