diff options
Diffstat (limited to 'sysdeps/mach')
-rw-r--r-- | sysdeps/mach/configure | 30 | ||||
-rw-r--r-- | sysdeps/mach/configure.in | 9 | ||||
-rw-r--r-- | sysdeps/mach/hurd/i386/init-first.c | 2 |
3 files changed, 40 insertions, 1 deletions
diff --git a/sysdeps/mach/configure b/sysdeps/mach/configure index 6f1013236a..d255328188 100644 --- a/sysdeps/mach/configure +++ b/sysdeps/mach/configure @@ -338,3 +338,33 @@ if test $libc_cv_mach_i386_ioports = yes; then EOF fi + +echo $ac_n "checking for i386_set_gdt in mach_i386.defs""... $ac_c" 1>&6 +echo "configure:344: checking for i386_set_gdt in mach_i386.defs" >&5 +if eval "test \"`echo '$''{'libc_cv_mach_i386_gdt'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + cat > conftest.$ac_ext <<EOF +#line 349 "configure" +#include "confdefs.h" +#include <mach/i386/mach_i386.defs> +EOF +if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | + egrep "i386_set_gdt" >/dev/null 2>&1; then + rm -rf conftest* + libc_cv_mach_i386_gdt=yes +else + rm -rf conftest* + libc_cv_mach_i386_gdt=no +fi +rm -f conftest* + +fi + +echo "$ac_t""$libc_cv_mach_i386_gdt" 1>&6 +if test $libc_cv_mach_i386_gdt = yes; then + cat >> confdefs.h <<\EOF +#define HAVE_I386_SET_GDT 1 +EOF + +fi diff --git a/sysdeps/mach/configure.in b/sysdeps/mach/configure.in index 6efd39f58d..92b7777304 100644 --- a/sysdeps/mach/configure.in +++ b/sysdeps/mach/configure.in @@ -89,3 +89,12 @@ AC_EGREP_HEADER(i386_io_perm_modify, mach/i386/mach_i386.defs, if test $libc_cv_mach_i386_ioports = yes; then AC_DEFINE([HAVE_I386_IO_PERM_MODIFY]) fi + +AC_CACHE_CHECK(for i386_set_gdt in mach_i386.defs, + libc_cv_mach_i386_gdt, [dnl +AC_EGREP_HEADER(i386_set_gdt, mach/i386/mach_i386.defs, + libc_cv_mach_i386_gdt=yes, + libc_cv_mach_i386_gdt=no)]) +if test $libc_cv_mach_i386_gdt = yes; then + AC_DEFINE([HAVE_I386_SET_GDT]) +fi diff --git a/sysdeps/mach/hurd/i386/init-first.c b/sysdeps/mach/hurd/i386/init-first.c index 47edae5086..b3804cba92 100644 --- a/sysdeps/mach/hurd/i386/init-first.c +++ b/sysdeps/mach/hurd/i386/init-first.c @@ -336,7 +336,7 @@ _hurd_stack_setup (volatile int argc, ...) *--data = (&argc)[-1]; asm volatile ("movl %0, %%esp\n" /* Switch to new outermost stack. */ "movl $0, %%ebp\n" /* Clear outermost frame pointer. */ - "jmp *%1" : : "r" (data), "r" (&doinit1)); + "jmp *%1" : : "r" (data), "r" (&doinit1) : "sp", "bp"); /* NOTREACHED */ } |