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 => 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 -- To UNSUBSCRIBE, email to [EMAIL PROTECTED] with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]