lh | 9ed821d | 2023-04-07 01:36:19 -0700 | [diff] [blame] | 1 | GLIBC_PROVIDES dnl See aclocal.m4 in the top level source directory. |
| 2 | # Local configure fragment for sysdeps/sparc. |
| 3 | |
| 4 | # Check for support of VIS3 et al. instructions in the assembler. |
| 5 | AC_CACHE_CHECK(for sparc assembler VIS3 support, libc_cv_sparc_as_vis3, [dnl |
| 6 | cat > conftest.S <<\EOF |
| 7 | .text |
| 8 | foo: fmadds %f1, %f2, %f3, %f5 |
| 9 | fmaddd %f2, %f4, %f8, %f10 |
| 10 | fhadds %f2, %f3, %f5 |
| 11 | fhaddd %f4, %f8, %f10 |
| 12 | pdistn %f2, %f4, %g1 |
| 13 | movdtox %f10, %o0 |
| 14 | movstouw %f9, %o1 |
| 15 | movstosw %f7, %o2 |
| 16 | movxtod %o3, %f18 |
| 17 | movwtos %o4, %f15 |
| 18 | flcmps %fcc0, %f3, %f5 |
| 19 | flcmpd %fcc1, %f4, %f6 |
| 20 | EOF |
| 21 | dnl |
| 22 | if AC_TRY_COMMAND([${CC-cc} -c $CFLAGS -Wa,-Av9d conftest.S]); then |
| 23 | libc_cv_sparc_as_vis3=yes |
| 24 | else |
| 25 | libc_cv_sparc_as_vis3=no |
| 26 | fi |
| 27 | rm -f conftest*]) |
| 28 | if test $libc_cv_sparc_as_vis3 = yes; then |
| 29 | AC_DEFINE(HAVE_AS_VIS3_SUPPORT) |
| 30 | fi |
| 31 | LIBC_CONFIG_VAR([have-as-vis3], [$libc_cv_sparc_as_vis3]) |
| 32 | |
| 33 | # Check for a GCC emitting GOTDATA relocations. |
| 34 | AC_CACHE_CHECK(for sparc gcc GOTDATA reloc support, libc_cv_sparc_gcc_gotdata, [dnl |
| 35 | changequote(,)dnl |
| 36 | cat > conftest.c <<\EOF |
| 37 | int data; |
| 38 | int foo(void) |
| 39 | { |
| 40 | return data; |
| 41 | } |
| 42 | EOF |
| 43 | changequote([,])dnl |
| 44 | dnl |
| 45 | libc_cv_sparc_gcc_gotdata=no |
| 46 | if AC_TRY_COMMAND(${CC-cc} -S $CFLAGS -O2 -fPIC conftest.c 1>&AS_MESSAGE_LOG_FD); then |
| 47 | if grep -q 'gdop_hix22' conftest.s \ |
| 48 | && grep -q 'gdop_lox10' conftest.s; then |
| 49 | libc_cv_sparc_gcc_gotdata=yes |
| 50 | fi |
| 51 | fi |
| 52 | rm -f conftest*]) |
| 53 | if test $libc_cv_sparc_gcc_gotdata = yes; then |
| 54 | AC_DEFINE(HAVE_GCC_GOTDATA) |
| 55 | fi |
| 56 | |
| 57 | if test $libc_cv_sparc_gcc_gotdata = yes; then |
| 58 | AC_DEFINE(PI_STATIC_AND_HIDDEN) |
| 59 | fi |