--- a/configure Thu Dec 11 23:29:12 2008 +0000 +++ b/configure Mon Dec 15 10:44:56 2008 +0000 @@ -6745,6 +6745,94 @@ +{ $as_echo "$as_me:$LINENO: checking if we have a working __builtin_frame_address()" >&5 +$as_echo_n "checking if we have a working __builtin_frame_address()... " >&6; }; +if test "$cross_compiling" = yes; then + { { $as_echo "$as_me:$LINENO: error: cannot run test program while cross compiling +See \`config.log' for more details." >&5 +$as_echo "$as_me: error: cannot run test program while cross compiling +See \`config.log' for more details." >&2;} + { (exit 1); exit 1; }; } +else + cat >conftest.$ac_ext <<_ACEOF + + /* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ + +void * __attribute__((noinline)) first_arg( void *x, void *y ) { return x; } +int __attribute__((noinline)) foo( int arg, void *exc ) +{ + if( arg < 2 ) { + *(((void **)__builtin_frame_address(0))+1) = exc; + } + return 0; +} + +int main(int argc, char *argv[]) +{ + goto *first_arg(&&start, &&except); + +start: + return foo( argc, &&except ) + 1; + +except: + return 0; +} +_ACEOF +rm -f conftest$ac_exeext +if { (ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_link") 2>&5 + ac_status=$? + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { ac_try='./conftest$ac_exeext' + { (case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_try") 2>&5 + ac_status=$? + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + + { $as_echo "$as_me:$LINENO: result: yes" >&5 +$as_echo "yes" >&6; } + + +cat >>confdefs.h <<\_ACEOF +#define HAVE_FRAME_ADDRESS 1 +_ACEOF + + +else + $as_echo "$as_me: program exited with status $ac_status" >&5 +$as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +( exit $ac_status ) + + { $as_echo "$as_me:$LINENO: result: no" >&5 +$as_echo "no" >&6; } + { $as_echo "$as_me:$LINENO: WARNING: Memory exceptions will be slow" >&5 +$as_echo "$as_me: WARNING: Memory exceptions will be slow" >&2;} +fi +rm -rf conftest.dSYM +rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext +fi + + + + lxdream_save_cppflags="$CPPFLAGS"