about summary refs log tree commit diff
path: root/sysdeps/s390/configure.ac
diff options
context:
space:
mode:
authorStefan Liebler <stli@linux.vnet.ibm.com>2016-05-25 17:18:04 +0200
committerStefan Liebler <stli@linux.vnet.ibm.com>2016-05-25 17:18:04 +0200
commit9b7f05599a92dead97d6683bc838a57bc63ac52b (patch)
tree9baaecbc7d8af0806acdd590b52464f2469909ae /sysdeps/s390/configure.ac
parentc70e9913d2fc2d0bf6a3ca98a4dece759d40a4ec (diff)
downloadglibc-9b7f05599a92dead97d6683bc838a57bc63ac52b.tar.gz
glibc-9b7f05599a92dead97d6683bc838a57bc63ac52b.tar.xz
glibc-9b7f05599a92dead97d6683bc838a57bc63ac52b.zip
S390: Configure check for vector support in gcc.
The S390 specific test checks if the gcc has support for vector registers
by compiling an inline assembly which clobbers vector registers.
On success the macro HAVE_S390_VX_GCC_SUPPORT is defined.
This macro can be used to determine if e.g. clobbering vector registers
is allowed or not.

ChangeLog:

	* config.h.in (HAVE_S390_VX_GCC_SUPPORT): New macro undefine.
	* sysdeps/s390/configure.ac: Add test for S390 vector register
	support in gcc.
	* sysdeps/s390/configure: Regenerated.
Diffstat (limited to 'sysdeps/s390/configure.ac')
-rw-r--r--sysdeps/s390/configure.ac21
1 files changed, 21 insertions, 0 deletions
diff --git a/sysdeps/s390/configure.ac b/sysdeps/s390/configure.ac
index 4da134e9a0..1db6d84a20 100644
--- a/sysdeps/s390/configure.ac
+++ b/sysdeps/s390/configure.ac
@@ -64,6 +64,27 @@ else
   AC_MSG_WARN([Use binutils with vector-support in order to use optimized implementations.])
 fi
 
+AC_CACHE_CHECK(for S390 vector support in gcc, libc_cv_gcc_s390_vx, [dnl
+cat > conftest.c <<\EOF
+void testvecclobber ()
+{
+  __asm__ ("" : : : "v16");
+}
+EOF
+dnl
+dnl test, if gcc supports S390 vector registers as clobber in inline assembly
+if AC_TRY_COMMAND([${CC-cc} --shared conftest.c -o conftest.o &> /dev/null]) ;
+then
+  libc_cv_gcc_s390_vx=yes
+else
+  libc_cv_gcc_s390_vx=no
+fi
+rm -f conftest* ])
+
+if test "$libc_cv_gcc_s390_vx" = yes ;
+then
+  AC_DEFINE(HAVE_S390_VX_GCC_SUPPORT)
+fi
 
 test -n "$critic_missing" && AC_MSG_ERROR([
 *** $critic_missing])