[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Bug#481378: Guile-1.8 FTBFS on mips (and other architectures)
From: |
Neil Jerram |
Subject: |
Re: Bug#481378: Guile-1.8 FTBFS on mips (and other architectures) |
Date: |
Wed, 28 May 2008 23:02:12 +0100 |
2008/5/28 Thiemo Seufer <address@hidden>:
>
> After a closer look I believe the logic of the test is just plain wrong:
>
> aux (l) unsigned long l;
> { int x; exit (l >= ((unsigned long)&x)); }
> main () { int q; aux((unsigned long)&q); },
>
> The test returns true for a downward-growing stack, but that sets
> SCM_I_GSC_STACK_GROWS_UP=1 !
Are you sure you're not missing a step? According to my
understanding, for a downwards-growing stack:
&x < l
=> (l >= &x) is TRUE
=> exit status of the test program is non-zero
=> AC_TRY_RUN believes that the test program _failed_
=> SCM_I_GSC_STACK_GROWS_UP stays as 0
> For paranoia reasons I checked that
> the test behaves the same on mips, powerpc and i386.
What exactly do you mean here? (My guess: that you compiled and ran
the test program by hand, and that the exit status was 1 in each
case?)
> Using "(l < ((unsigned long& ..." does the right thing. Amazingly
> this means the test is wrong on all platforms, and guile appears to
> mostly cope with it. :-)
Unfortunately that is very unlikely, so I'm afraid there is still
something more subtle that we are missing.
Regards,
Neil