[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: OS/2 and stdarg module
From: |
Eric Blake |
Subject: |
Re: OS/2 and stdarg module |
Date: |
Sat, 01 Jul 2006 20:42:50 +0000 |
Andreas Büning <andreas.buening <at> nexgo.de> writes:
>
> Since $gl_cv_func___va_copy != yes the code after else is executed
> and "#define va_copy gl_va_copy" is inserted into config.h. Obviously,
> it is intended to also define gl_va_copy in this case but AH_VERBATIM
> is called with wrong syntax so that this statement has no effect.
>
> The autoconf manual says:
> ----------------------------
> - Macro: AH_VERBATIM (KEY, TEMPLATE)
> Tell `autoheader' to include the TEMPLATE as-is in the header
> template file. This TEMPLATE is associated with the KEY, which is
> used to sort all the different templates and guarantee their
> uniqueness. It should be a symbol that can be `AC_DEFINE''d.
Thanks for catching that.
> Unfortunately, also AH_VERBATIM([_MY_KEY], [#define gl_va_copy(a,b) (a) =
> (b)])
> wouldn't work because (AFAIK) AH_VERBATIM is not expanded at run time (i.e.,
> by configure) but at "compile" time, i.e. by autoheader. This means
Yes, but the definition is for gl_va_copy. If you have a working va_copy, it
does not matter if gl_va_copy is defined, unused, in config.h. And if you have
a missing va_copy, it is the subsequent AC_DEFINE([va_copy], [gl_va_copy])
that activates the definition.
Meanwhile, is it worth patching autoconf/lib/autoheader.m4 to complain when
$2 of AH_VERBATIM is empty, so this mistake is less likely to occur in the
future?
I'm installing this into gnulib:
2006-07-01 Eric Blake <address@hidden>
* stdarg.m4 (gl_STDARG_H): Use proper AH_VERBATIM.
Reported by Andreas Buening.
Index: m4/stdarg.m4
===================================================================
RCS file: /sources/gnulib/gnulib/m4/stdarg.m4,v
retrieving revision 1.1
diff -u -p -r1.1 stdarg.m4
--- m4/stdarg.m4 8 May 2006 13:13:13 -0000 1.1
+++ m4/stdarg.m4 1 Jul 2006 20:41:16 -0000
@@ -31,7 +31,8 @@ error, bail out
AC_DEFINE([va_copy], [__va_copy],
[Define as a macro for copying va_list variables.])
else
- AH_VERBATIM([#define gl_va_copy(a,b) (a) = (b)])
+ AH_VERBATIM([gl_VA_COPY], [/* A replacement for va_copy, if needed. */
+#define gl_va_copy(a,b) (a) = (b)])
AC_DEFINE([va_copy], [gl_va_copy],
[Define as a macro for copying va_list variables.])
fi