about summary refs log tree commit diff
path: root/sysdeps/unix/sysv/linux/i386/configure.ac
diff options
context:
space:
mode:
Diffstat (limited to 'sysdeps/unix/sysv/linux/i386/configure.ac')
-rw-r--r--sysdeps/unix/sysv/linux/i386/configure.ac17
1 files changed, 17 insertions, 0 deletions
diff --git a/sysdeps/unix/sysv/linux/i386/configure.ac b/sysdeps/unix/sysv/linux/i386/configure.ac
index 1a11da6dad..1cd632e5c6 100644
--- a/sysdeps/unix/sysv/linux/i386/configure.ac
+++ b/sysdeps/unix/sysv/linux/i386/configure.ac
@@ -3,5 +3,22 @@ GLIBC_PROVIDES dnl See aclocal.m4 in the top level source directory.
 
 arch_minimum_kernel=2.6.32
 
+# Check if CFLAGS allows compiler to use ebp register in inline assembly.
+AC_CACHE_CHECK([if compiler flags allows ebp in inline assembly],
+                libc_cv_can_use_register_asm_ebp, [
+AC_COMPILE_IFELSE(
+  [AC_LANG_PROGRAM([
+    void foo (int i)
+    {
+      register int reg asm ("ebp") = i;
+      asm ("# %0" : : "r" (reg));
+    }])],
+  [libc_cv_can_use_register_asm_ebp=yes],
+  [libc_cv_can_use_register_asm_ebp=no])
+])
+if test $libc_cv_can_use_register_asm_ebp = yes; then
+  AC_DEFINE(CAN_USE_REGISTER_ASM_EBP)
+fi
+
 libc_cv_gcc_unwind_find_fde=yes
 ldd_rewrite_script=sysdeps/unix/sysv/linux/ldd-rewrite.sed