606 |
|
fi |
607 |
|
CPUSRCS="$CPUSRCS ../kpx_cpu/sheepshaver_glue.cpp" |
608 |
|
fi |
609 |
+ |
if [[ "x$ac_cv_use_dyngen" = "xyes" ]]; then |
610 |
+ |
AC_CACHE_CHECK([whether static data regions are executable], |
611 |
+ |
ac_cv_have_static_data_exec, [ |
612 |
+ |
AC_TRY_RUN([int main(void) { |
613 |
+ |
#if defined(__powerpc__) |
614 |
+ |
static unsigned int p[8] = {0x4e800020,}; |
615 |
+ |
asm volatile("dcbst 0,%0" : : "r" (p) : "memory"); |
616 |
+ |
asm volatile("sync" : : : "memory"); |
617 |
+ |
asm volatile("icbi 0,%0" : : "r" (p) : "memory"); |
618 |
+ |
asm volatile("sync" : : : "memory"); |
619 |
+ |
asm volatile("isync" : : : "memory"); |
620 |
+ |
((void (*)(void))p)(); |
621 |
+ |
return 0; |
622 |
+ |
#endif |
623 |
+ |
#if defined(__i386__) |
624 |
+ |
static unsigned char p[] = {0xc3}; |
625 |
+ |
((void (*)(void))p)(); |
626 |
+ |
return 0; |
627 |
+ |
#endif |
628 |
+ |
return 1; |
629 |
+ |
}], ac_cv_have_static_data_exec=yes, ac_cv_have_static_data_exec=no, |
630 |
+ |
dnl When cross-compiling, do not assume anything. |
631 |
+ |
ac_cv_have_static_data_exec=no |
632 |
+ |
) |
633 |
+ |
]) |
634 |
+ |
fi |
635 |
+ |
AC_TRANSLATE_DEFINE(HAVE_STATIC_DATA_EXEC, "$ac_cv_have_static_data_exec", |
636 |
+ |
[Define if your system marks static data pages as executable.]) |
637 |
|
|
638 |
|
dnl Generate Makefile. |
639 |
|
AC_SUBST(DYNGENSRCS) |