Main propose is stop compilation, right? So there should be some readable message. We can pass messages with #error and #warning.
Usage of ODP_LOG is not needed if we can not compile code.

I think we need to do simple:

#if ODP_ALLOW_UNIMPLEMENTED
#define ODP_UNIMPLEMENTED(fmt, ...)                        \
    ODP_LOG(ODP_LOG_UNIMPLEMENTED, fmt, ##__VA_ARGS__)
#else
#error "Function is not implemented. If you still want to build try --enable-allow-unimplemented"
#endif

In that case compilation will trap like this:
make[2]: Entering directory `/opt/LINARO/ODPrelease/ReleaseCommit2/odp2.git/platform/linux-generic'
  CC     odp_classification.lo
In file included from odp_classification.c:5:0:
./include/odp_debug_internal.h:32:2: error: #error "Function is not implemented. If you still want to build try --enable-allow-unimplemented"
odp_classification.c: In function 'odp_cos_create':
odp_classification.c:11:2: error: implicit declaration of function 'ODP_UNIMPLEMENTED' [-Werror=implicit-function-declaration] odp_classification.c:11:2: error: nested extern declaration of 'ODP_UNIMPLEMENTED' [-Werror=nested-externs]
cc1: all warnings being treated as errors
make[2]: *** [odp_classification.lo] Error 1

Maxim.


On 11/10/2014 09:31 PM, Mike Holmes wrote:


On 7 November 2014 18:19, Bill Fischofer <[email protected] <mailto:[email protected]>> wrote:

    Signed-off-by: Bill Fischofer <[email protected]
    <mailto:[email protected]>>
    ---
    configure.ac <http://configure.ac>                     | 11
    +++++++++++
     platform/linux-generic/include/odp_debug_internal.h | 11 +++++++++--
     2 files changed, 20 insertions(+), 2 deletions(-)

    diff --git a/configure.ac <http://configure.ac> b/configure.ac
    <http://configure.ac>
    index 1c061e9..cca76bb 100644
    --- a/configure.ac <http://configure.ac>
    +++ b/configure.ac <http://configure.ac>
    @@ -110,6 +110,17 @@ AC_ARG_ENABLE([debug],
     ODP_CFLAGS="$ODP_CFLAGS -DODP_DEBUG=$ODP_DEBUG"

     ##########################################################################
    +# Enable/disable ODP_ALLOW_UNIMPLEMENTED
    +##########################################################################
    +ODP_ALLOW_UNIMPLEMENTED=0
    +AC_ARG_ENABLE([allow-unimplemented],
    +    [  --enable-allow-unimplemented  Enable/disable allow
    unimplemented],
    +    [if test "x$enableval" = "xyes"; then
    +        ODP_ALLOW_UNIMPLEMENTED=1
    +    fi])
    +ODP_CFLAGS="$ODP_CFLAGS
    -DODP_ALLOW_UNIMPLEMENTED=$ODP_ALLOW_UNIMPLEMENTED"
    +
    +##########################################################################
     # Check for pthreads availability
     ##########################################################################

    diff --git a/platform/linux-generic/include/odp_debug_internal.h
    b/platform/linux-generic/include/odp_debug_internal.h
    index a87552f..8ae0b01 100644
    --- a/platform/linux-generic/include/odp_debug_internal.h
    +++ b/platform/linux-generic/include/odp_debug_internal.h
    @@ -25,8 +25,15 @@ extern "C" {
     /**
      * This macro is used to indicate when a given function is not
    implemented


nit: does this need to indicate why there are two implementations ?
This macro is used to indicate when a given function is not implemented, it can be configured to generate a compile time error or runtime notification.

      */
    -#define ODP_UNIMPLEMENTED(fmt, ...) \
    -               ODP_LOG(ODP_LOG_UNIMPLEMENTED, fmt, ##__VA_ARGS__)
    +#if ODP_ALLOW_UNIMPLEMENTED
    +#define ODP_UNIMPLEMENTED(fmt, ...)                   \


The tabs to the continuing backslash are not in keeping with the macros in other files (odp_debug.h) where they have just a single space before the backslash
Multiple instances.

    +       ODP_LOG(ODP_LOG_UNIMPLEMENTED, fmt, ##__VA_ARGS__)
    +#else
    +#define ODP_UNIMPLEMENTED(fmt, ...) do {                   \
    +               ODP_LOG(ODP_LOG_UNIMPLEMENTED, fmt,
    ##__VA_ARGS__);     \
    +               odp_unimplemented();                   \
    +       } while (0)
    +#endif

     #ifdef __cplusplus
     }
    --
    1.8.3.2


    _______________________________________________
    lng-odp mailing list
    [email protected] <mailto:[email protected]>
    http://lists.linaro.org/mailman/listinfo/lng-odp




--
*Mike Holmes*
Linaro  Sr Technical Manager
LNG - ODP


_______________________________________________
lng-odp mailing list
[email protected]
http://lists.linaro.org/mailman/listinfo/lng-odp


_______________________________________________
lng-odp mailing list
[email protected]
http://lists.linaro.org/mailman/listinfo/lng-odp

Reply via email to