Neil Jerram wrote:
> 2008/5/28 Thiemo Seufer <[EMAIL PROTECTED]>:
> >
> > 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

This is what I saw when running the test manually.

>    => AC_TRY_RUN believes that the test program _failed_
>    => SCM_I_GSC_STACK_GROWS_UP stays as 0

However, config.log shows SCM_I_GSC_STACK_GROWS_UP=1, and that's also
the value used further down the build. Unfortunately the check doesn't 
print a message to that effect, so we can't cross-check with other
build logs. (I only ran guile builds on mips.)

> > 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?)

Yes, that's what I meant.


Thiemo



-- 
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]

Reply via email to