bug-gnulib
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

AIX 5.1 xlc va_copy (stdarg patch)


From: Peter O'Gorman
Subject: AIX 5.1 xlc va_copy (stdarg patch)
Date: Tue, 26 Feb 2008 16:54:16 -0600
User-agent: Mutt/1.5.17 (2007-11-01)

Hi,

We could not build GnuTLS-2.2.2 on AIX-5.1 in 64 bit mode because
va_copy requires -qlanglvl=extc99, however, with that flag compilation
failed (and many warnings were issued).

The warnings were like:
1506-784 (W) Decimal integer constant "18446744073709551615" is out of range
for any use of ULONG_MAX.

Finally it errored out in minilzo when it saw this:
#if (USHRT_MAX < 1) || (UINT_MAX < 1) || (ULONG_MAX < 1)
#  error "your limits.h macros are broken"
#endif

I could not find an xlc flag that I could add to -qlanglvl=extc99 to
make these warnings and errors go away.

Removing -qlanglvl=extc99 resulted in undefined symbols for va_copy.

Turns out that even though config.h correctly has '#define va_copy
gl_va_copy', xlc's stddef.h #undefs va_copy and does not define it to
the builtin.

xlc's stdarg.h also does not have any include guards, so you can not
#include <stdarg.h> then #define va_copy, as the next time stdarg.h
gets included it will get undefined all over again.

This patch allows us to build GnuTLS on AIX 5.1 without any -qlanglvl
flags.

Thanks,
Peter

Attachment: gnulib_stdarg.patch
Description: Text document


reply via email to

[Prev in Thread] Current Thread [Next in Thread]