diff options
Diffstat (limited to 'sysdeps/i386/configure.in')
-rw-r--r-- | sysdeps/i386/configure.in | 19 |
1 files changed, 19 insertions, 0 deletions
diff --git a/sysdeps/i386/configure.in b/sysdeps/i386/configure.in index 9967a160ba..56a7c1fbcc 100644 --- a/sysdeps/i386/configure.in +++ b/sysdeps/i386/configure.in @@ -1,6 +1,25 @@ GLIBC_PROVIDES dnl See aclocal.m4 in the top level source directory. # Local configure fragment for sysdeps/i386. +# The GNU C Library can't be built for i386. There are several reasons for +# this restriction. The primary reason is that i386 lacks the atomic +# operations required to support the current NPTL implementation. While it is +# possible that such atomic operations could be emulated in the kernel to date +# no such work has been done to enable this. Even with NPTL disabled you still +# have no atomic.h implementation. Given the declining use of i386 we disable +# support for building with `-march=i386' or `-mcpu=i386.' We don't explicitly +# check for i386, instead we make sure the compiler has support for inlining +# the builtin __sync_val_compare_and_swap. If it does then we should have no +# problem building for i386. +LIBC_COMPILER_BUILTIN_INLINED( + [__sync_val_compare_and_swap], + [int a, b, c; __sync_val_compare_and_swap (&a, b, c);], + [-O0], + [libc_cv_unsupported_i386=no], + [AC_MSG_ERROR([ +*** Building with -march=i386/-mcpu=i386 is not supported. +*** Please use host i786, i686, i586, or i486.])]) + AC_CHECK_HEADER([cpuid.h], , [AC_MSG_ERROR([gcc must provide the <cpuid.h> header])], [/* No default includes. */]) |