[Top][All Lists]

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

Re: [Help-smalltalk] ia64 long double alignment test

From: Brett Cundal
Subject: Re: [Help-smalltalk] ia64 long double alignment test
Date: Mon, 7 Jun 2004 14:58:04 -0700
User-agent: Mutt/

On Thu, Jun 03, 2004 at 09:00:29AM -0700, Brett Cundal wrote:
> Heya,
> I've received some assistance in trying to track down the cause for
> the build failures on most 64-bit archs, and I think I may have
> tracked it down at least for ia64.
> There's a test in aclocal.m4 (included from config/align.m4) which
> attempts to determine the alignment of double and long double
> types. This test gives the following result on ia64:


> So the test appears to be bad. I found the following test:


> Does this test work? I don't have access to any 64-bit archs to test
> this.

I've discovered that the answer to this is no... The code I had
doesn't work at all. It tests for something different, if it works at

Here's the fix I've implemented and will test on all the arches Debian

# -----------------------------------------------------
[AS_LITERAL_IF([$1], [],
              [AC_FATAL([$0: requires literal arguments])])dnl
AC_CHECK_TYPE([$1], [], [], [$2])
AC_CACHE_CHECK([alignment of $1], AS_TR_SH([gst_cv_$1_alignment]),
[if test "$AS_TR_SH([ac_cv_type_$1])" = yes; then
  _AC_COMPUTE_INT([offsetof (struct { char x; $1 y; }, y)],
#ifndef offsetof
# define offsetof(type, member) ((char *) &((type *) 0)->member -
(char *) 0)
                 [AC_MSG_FAILURE([cannot compute alignment of ($1),
                  [The normal alignment of `$1', in bytes.])

This is lifted from a patch for an upcoming release of auoconf, so I'm
pretty confident it does the trick. I've mucked it up a bit to get it
to set the same defines as the old code, so that I wouldn't have to
patch everything that uses the results of the old test. This is the
core of the test:

offsetof (struct { char x; $1 y; }, y);

This is simple enough that even I can understand it, and it looks
correct to me.

Anyhow, submitting this fix upstream. I'm not 100% sure it works, but
I'm pretty sure - and I am 100% sure that the existing align.m4 is

-- Brett

Attachment: signature.asc
Description: Digital signature

reply via email to

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