Paul and all,
PEBKAC.
So I finally dug deeper into these compilation issues and with
-save-temps, discovered that I had patched the wrong stdalign.in.h.
Apparently, GNUTLS-3.3.9 ships two copies of it, and I patched the one
that was NOT used by test-stdalign. After applying your patch to both
copies in gnutls, test-stdalign passes, as does everything else.
Thanks for your gnulib patch!
Fang
David Fang wrote:
Hi Paul,
I tried applying the patch (just the stdalign.in.h bit) to the
powerpc-darwin8 build, but I still see (when changing the assert to
printf):
Can you deduce why the fix didn't work? It should have inserted this:
+#elif (defined __APPLE__ && defined __MACH__ \
+ ? 4 < __GNUC__ + (1 <= __GNUC_MINOR__) \
+ : __GNUC__)
and that should be false on your platform because __APPLE__ and __MACH__
should be defined, __GNUC__ should be 4, and __GNUC_MINOR__ should be zero.
Why is it true? What are the values of __APPLE__, etc.? That is, what is
the output of running 'gcc -E foo.c | tail' when foo.c contains the
following?
#include <stdio.h>
"__GNUC__" __GNUC__
"__GNUC_MINOR__" __GNUC_MINOR__
"__APPLE__" __APPLE__
"__MACH__" __MACH__
--
David Fang
http://www.csl.cornell.edu/~fang/