Skip to content

Commit

Permalink
try to use C99 variadic macros first:
Browse files Browse the repository at this point in the history
AIX 5.3's XL C has problems with GCC style variadic macros
  • Loading branch information
igorsysoev committed Jul 5, 2010
1 parent ee37271 commit 802bc23
Show file tree
Hide file tree
Showing 2 changed files with 23 additions and 23 deletions.
26 changes: 13 additions & 13 deletions auto/cc/conf
Original file line number Diff line number Diff line change
Expand Up @@ -143,19 +143,6 @@ if [ "$NGX_PLATFORM" != win32 ]; then
. auto/feature


ngx_feature="gcc variadic macros"
ngx_feature_name="NGX_HAVE_GCC_VARIADIC_MACROS"
ngx_feature_run=yes
ngx_feature_incs="#include <stdio.h>
#define var(dummy, args...) sprintf(args)"
ngx_feature_path=
ngx_feature_libs=
ngx_feature_test="char buf[30]; buf[0] = '0';
var(0, buf, \"%d\", 1);
if (buf[0] != '1') return 1"
. auto/feature


if [ "$NGX_CC_NAME" = "ccc" ]; then
echo "checking for C99 variadic macros ... disabled"
else
Expand All @@ -173,6 +160,19 @@ if [ "$NGX_PLATFORM" != win32 ]; then
fi


ngx_feature="gcc variadic macros"
ngx_feature_name="NGX_HAVE_GCC_VARIADIC_MACROS"
ngx_feature_run=yes
ngx_feature_incs="#include <stdio.h>
#define var(dummy, args...) sprintf(args)"
ngx_feature_path=
ngx_feature_libs=
ngx_feature_test="char buf[30]; buf[0] = '0';
var(0, buf, \"%d\", 1);
if (buf[0] != '1') return 1"
. auto/feature


# ngx_feature="inline"
# ngx_feature_name=
# ngx_feature_run=no
Expand Down
20 changes: 10 additions & 10 deletions src/core/ngx_log.h
Original file line number Diff line number Diff line change
Expand Up @@ -68,35 +68,35 @@ struct ngx_log_s {

/*********************************/

#if (NGX_HAVE_GCC_VARIADIC_MACROS)
#if (NGX_HAVE_C99_VARIADIC_MACROS)

#define NGX_HAVE_VARIADIC_MACROS 1

#define ngx_log_error(level, log, args...) \
if ((log)->log_level >= level) ngx_log_error_core(level, log, args)
#define ngx_log_error(level, log, ...) \
if ((log)->log_level >= level) ngx_log_error_core(level, log, __VA_ARGS__)

void ngx_log_error_core(ngx_uint_t level, ngx_log_t *log, ngx_err_t err,
const char *fmt, ...);

#define ngx_log_debug(level, log, args...) \
#define ngx_log_debug(level, log, ...) \
if ((log)->log_level & level) \
ngx_log_error_core(NGX_LOG_DEBUG, log, args)
ngx_log_error_core(NGX_LOG_DEBUG, log, __VA_ARGS__)

/*********************************/

#elif (NGX_HAVE_C99_VARIADIC_MACROS)
#elif (NGX_HAVE_GCC_VARIADIC_MACROS)

#define NGX_HAVE_VARIADIC_MACROS 1

#define ngx_log_error(level, log, ...) \
if ((log)->log_level >= level) ngx_log_error_core(level, log, __VA_ARGS__)
#define ngx_log_error(level, log, args...) \
if ((log)->log_level >= level) ngx_log_error_core(level, log, args)

void ngx_log_error_core(ngx_uint_t level, ngx_log_t *log, ngx_err_t err,
const char *fmt, ...);

#define ngx_log_debug(level, log, ...) \
#define ngx_log_debug(level, log, args...) \
if ((log)->log_level & level) \
ngx_log_error_core(NGX_LOG_DEBUG, log, __VA_ARGS__)
ngx_log_error_core(NGX_LOG_DEBUG, log, args)

/*********************************/

Expand Down

0 comments on commit 802bc23

Please sign in to comment.