544 |
|
]) |
545 |
|
ELF_OBJECTS=$ac_cv_elf_objects |
546 |
|
|
547 |
– |
dnl FIXME: forcibly disable JIT for now |
548 |
– |
WANT_JIT=no |
549 |
– |
|
547 |
|
dnl CPU emulator sources |
548 |
|
if [[ "x$EMULATED_PPC" = "xyes" ]]; then |
549 |
|
CPUSRCS="\ |
574 |
|
]) |
575 |
|
if [[ "x$ac_cv_use_dyngen" = "xyes" ]]; then |
576 |
|
case $host_cpu in |
577 |
< |
i?86:yes) |
577 |
> |
i?86) |
578 |
|
DYNGEN_OP_FLAGS="-fomit-frame-pointer -mpreferred-stack-boundary=2" |
579 |
|
if [[ "x$HAVE_GCC30" = "xyes" ]]; then |
580 |
|
DYNGEN_OP_FLAGS="$DYNGEN_OP_FLAGS -falign-functions=0" |
603 |
|
fi |
604 |
|
CPUSRCS="$CPUSRCS ../kpx_cpu/sheepshaver_glue.cpp" |
605 |
|
fi |
606 |
+ |
if [[ "x$ac_cv_use_dyngen" = "xyes" ]]; then |
607 |
+ |
AC_CACHE_CHECK([whether static data regions are executable], |
608 |
+ |
ac_cv_have_static_data_exec, [ |
609 |
+ |
AC_TRY_RUN([int main(void) { |
610 |
+ |
#if defined(__powerpc__) |
611 |
+ |
static unsigned int p[8] = {0x4e800020,}; |
612 |
+ |
asm volatile("dcbst 0,%0" : : "r" (p) : "memory"); |
613 |
+ |
asm volatile("sync" : : : "memory"); |
614 |
+ |
asm volatile("icbi 0,%0" : : "r" (p) : "memory"); |
615 |
+ |
asm volatile("sync" : : : "memory"); |
616 |
+ |
asm volatile("isync" : : : "memory"); |
617 |
+ |
((void (*)(void))p)(); |
618 |
+ |
return 0; |
619 |
+ |
#endif |
620 |
+ |
return 1; |
621 |
+ |
}], ac_cv_have_static_data_exec=yes, ac_cv_have_static_data_exec=no, |
622 |
+ |
dnl When cross-compiling, do not assume anything. |
623 |
+ |
ac_cv_have_static_data_exec=no |
624 |
+ |
) |
625 |
+ |
]) |
626 |
+ |
fi |
627 |
+ |
AC_TRANSLATE_DEFINE(HAVE_STATIC_DATA_EXEC, "$ac_cv_have_static_data_exec", |
628 |
+ |
[Define if your system marks static data pages as executable.]) |
629 |
|
|
630 |
|
dnl Generate Makefile. |
631 |
|
AC_SUBST(DYNGENSRCS) |