try to use C99 variadic macros first:
AIX 5.3's XL C has problems with GCC style variadic macros
diff --git a/auto/cc/conf b/auto/cc/conf
index 09ab9d3..bdcce2c 100644
--- a/auto/cc/conf
+++ b/auto/cc/conf
@@ -143,19 +143,6 @@
. 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
@@ -173,6 +160,19 @@
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
diff --git a/src/core/ngx_log.h b/src/core/ngx_log.h
index b736aa2..1054836 100644
--- a/src/core/ngx_log.h
+++ b/src/core/ngx_log.h
@@ -68,23 +68,7 @@
/*********************************/
-#if (NGX_HAVE_GCC_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)
-
-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...) \
- if ((log)->log_level & level) \
- ngx_log_error_core(NGX_LOG_DEBUG, log, args)
-
-/*********************************/
-
-#elif (NGX_HAVE_C99_VARIADIC_MACROS)
+#if (NGX_HAVE_C99_VARIADIC_MACROS)
#define NGX_HAVE_VARIADIC_MACROS 1
@@ -100,6 +84,22 @@
/*********************************/
+#elif (NGX_HAVE_GCC_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)
+
+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...) \
+ if ((log)->log_level & level) \
+ ngx_log_error_core(NGX_LOG_DEBUG, log, args)
+
+/*********************************/
+
#else /* NO VARIADIC MACROS */
#define NGX_HAVE_VARIADIC_MACROS 0