mirror of git://gcc.gnu.org/git/gcc.git
libgfortran: Skip integer-kind=16 check for amdgcn
libgfortran/ChangeLog: PR target/96306 * configure.ac: Add LIBGOMP_CHECKED_INT_KINDS and LIBGOMP_CHECKED_REAL_KINDS and use it for to skip integer kind=16 checks for amdgcn. * Makefile.am (kinds.h, selected_int_kind.inc, selected_real_kind.inc): Pass them on. * mk-kinds-h.sh: Takes to-be-check kinds as argument. * mk-sik-inc.sh: Likewise. * mk-srk-inc.sh: Likewise. * Makefile.in: Regenerate. * configure: Regenerate.
This commit is contained in:
parent
2ab2694476
commit
2e764ae1d6
|
|
@ -1054,7 +1054,7 @@ I_M4_DEPS8=$(I_M4_DEPS) m4/ifindloc1.m4
|
||||||
I_M4_DEPS9=$(I_M4_DEPS) m4/ifindloc2.m4
|
I_M4_DEPS9=$(I_M4_DEPS) m4/ifindloc2.m4
|
||||||
|
|
||||||
kinds.h: $(srcdir)/mk-kinds-h.sh
|
kinds.h: $(srcdir)/mk-kinds-h.sh
|
||||||
$(SHELL) $(srcdir)/mk-kinds-h.sh '$(FCCOMPILE)' > $@ || rm $@
|
$(SHELL) $(srcdir)/mk-kinds-h.sh '@LIBGOMP_CHECKED_INT_KINDS@' '@LIBGOMP_CHECKED_REAL_KINDS@' '$(FCCOMPILE)' > $@ || rm $@
|
||||||
|
|
||||||
kinds.inc: kinds.h
|
kinds.inc: kinds.h
|
||||||
grep '^#' < kinds.h > $@
|
grep '^#' < kinds.h > $@
|
||||||
|
|
@ -1063,10 +1063,10 @@ c99_protos.inc: $(srcdir)/c99_protos.h
|
||||||
grep '^#' < $(srcdir)/c99_protos.h > $@
|
grep '^#' < $(srcdir)/c99_protos.h > $@
|
||||||
|
|
||||||
selected_int_kind.inc: $(srcdir)/mk-sik-inc.sh
|
selected_int_kind.inc: $(srcdir)/mk-sik-inc.sh
|
||||||
$(SHELL) $(srcdir)/mk-sik-inc.sh '$(FCCOMPILE)' > $@ || rm $@
|
$(SHELL) $(srcdir)/mk-sik-inc.sh '@LIBGOMP_CHECKED_INT_KINDS@' '$(FCCOMPILE)' > $@ || rm $@
|
||||||
|
|
||||||
selected_real_kind.inc: $(srcdir)/mk-srk-inc.sh
|
selected_real_kind.inc: $(srcdir)/mk-srk-inc.sh
|
||||||
$(SHELL) $(srcdir)/mk-srk-inc.sh '$(FCCOMPILE)' > $@ || rm $@
|
$(SHELL) $(srcdir)/mk-srk-inc.sh '@LIBGOMP_CHECKED_REAL_KINDS@' '$(FCCOMPILE)' > $@ || rm $@
|
||||||
|
|
||||||
fpu-target.h: $(srcdir)/$(FPU_HOST_HEADER)
|
fpu-target.h: $(srcdir)/$(FPU_HOST_HEADER)
|
||||||
cp $(srcdir)/$(FPU_HOST_HEADER) $@
|
cp $(srcdir)/$(FPU_HOST_HEADER) $@
|
||||||
|
|
|
||||||
|
|
@ -608,6 +608,8 @@ INSTALL_SCRIPT = @INSTALL_SCRIPT@
|
||||||
INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
|
INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
|
||||||
LD = @LD@
|
LD = @LD@
|
||||||
LDFLAGS = @LDFLAGS@
|
LDFLAGS = @LDFLAGS@
|
||||||
|
LIBGOMP_CHECKED_INT_KINDS = @LIBGOMP_CHECKED_INT_KINDS@
|
||||||
|
LIBGOMP_CHECKED_REAL_KINDS = @LIBGOMP_CHECKED_REAL_KINDS@
|
||||||
LIBOBJS = @LIBOBJS@
|
LIBOBJS = @LIBOBJS@
|
||||||
LIBQUADINCLUDE = @LIBQUADINCLUDE@
|
LIBQUADINCLUDE = @LIBQUADINCLUDE@
|
||||||
LIBQUADLIB = @LIBQUADLIB@
|
LIBQUADLIB = @LIBQUADLIB@
|
||||||
|
|
@ -7017,7 +7019,7 @@ ieee_arithmetic.mod: ieee_arithmetic.lo
|
||||||
@onestep_TRUE@ $(LTCOMPILE) -c -o $@ $^ -combine
|
@onestep_TRUE@ $(LTCOMPILE) -c -o $@ $^ -combine
|
||||||
|
|
||||||
kinds.h: $(srcdir)/mk-kinds-h.sh
|
kinds.h: $(srcdir)/mk-kinds-h.sh
|
||||||
$(SHELL) $(srcdir)/mk-kinds-h.sh '$(FCCOMPILE)' > $@ || rm $@
|
$(SHELL) $(srcdir)/mk-kinds-h.sh '@LIBGOMP_CHECKED_INT_KINDS@' '@LIBGOMP_CHECKED_REAL_KINDS@' '$(FCCOMPILE)' > $@ || rm $@
|
||||||
|
|
||||||
kinds.inc: kinds.h
|
kinds.inc: kinds.h
|
||||||
grep '^#' < kinds.h > $@
|
grep '^#' < kinds.h > $@
|
||||||
|
|
@ -7026,10 +7028,10 @@ c99_protos.inc: $(srcdir)/c99_protos.h
|
||||||
grep '^#' < $(srcdir)/c99_protos.h > $@
|
grep '^#' < $(srcdir)/c99_protos.h > $@
|
||||||
|
|
||||||
selected_int_kind.inc: $(srcdir)/mk-sik-inc.sh
|
selected_int_kind.inc: $(srcdir)/mk-sik-inc.sh
|
||||||
$(SHELL) $(srcdir)/mk-sik-inc.sh '$(FCCOMPILE)' > $@ || rm $@
|
$(SHELL) $(srcdir)/mk-sik-inc.sh '@LIBGOMP_CHECKED_INT_KINDS@' '$(FCCOMPILE)' > $@ || rm $@
|
||||||
|
|
||||||
selected_real_kind.inc: $(srcdir)/mk-srk-inc.sh
|
selected_real_kind.inc: $(srcdir)/mk-srk-inc.sh
|
||||||
$(SHELL) $(srcdir)/mk-srk-inc.sh '$(FCCOMPILE)' > $@ || rm $@
|
$(SHELL) $(srcdir)/mk-srk-inc.sh '@LIBGOMP_CHECKED_REAL_KINDS@' '$(FCCOMPILE)' > $@ || rm $@
|
||||||
|
|
||||||
fpu-target.h: $(srcdir)/$(FPU_HOST_HEADER)
|
fpu-target.h: $(srcdir)/$(FPU_HOST_HEADER)
|
||||||
cp $(srcdir)/$(FPU_HOST_HEADER) $@
|
cp $(srcdir)/$(FPU_HOST_HEADER) $@
|
||||||
|
|
|
||||||
|
|
@ -679,6 +679,8 @@ LD
|
||||||
FGREP
|
FGREP
|
||||||
SED
|
SED
|
||||||
SECTION_FLAGS
|
SECTION_FLAGS
|
||||||
|
LIBGOMP_CHECKED_REAL_KINDS
|
||||||
|
LIBGOMP_CHECKED_INT_KINDS
|
||||||
LIBGFOR_MINIMAL_FALSE
|
LIBGFOR_MINIMAL_FALSE
|
||||||
LIBGFOR_MINIMAL_TRUE
|
LIBGFOR_MINIMAL_TRUE
|
||||||
LIBGFOR_USE_SYMVER_SUN_FALSE
|
LIBGFOR_USE_SYMVER_SUN_FALSE
|
||||||
|
|
@ -6208,6 +6210,19 @@ else
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
|
||||||
|
# Some compiler target support may have limited support for integer
|
||||||
|
# or floating point numbers – or may want to reduce the libgfortran size
|
||||||
|
# although they do have the support.
|
||||||
|
LIBGOMP_CHECKED_INT_KINDS="1 2 4 8 16"
|
||||||
|
LIBGOMP_CHECKED_REAL_KINDS="4 8 10 16"
|
||||||
|
|
||||||
|
if test "x${target_cpu}" = xamdgcn; then
|
||||||
|
# amdgcn only has limited support for __int128.
|
||||||
|
LIBGOMP_CHECKED_INT_KINDS="1 2 4 8"
|
||||||
|
fi
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
# Figure out whether the compiler supports "-ffunction-sections -fdata-sections",
|
# Figure out whether the compiler supports "-ffunction-sections -fdata-sections",
|
||||||
# similarly to how libstdc++ does it
|
# similarly to how libstdc++ does it
|
||||||
ac_test_CFLAGS="${CFLAGS+set}"
|
ac_test_CFLAGS="${CFLAGS+set}"
|
||||||
|
|
@ -12724,7 +12739,7 @@ else
|
||||||
lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
|
lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
|
||||||
lt_status=$lt_dlunknown
|
lt_status=$lt_dlunknown
|
||||||
cat > conftest.$ac_ext <<_LT_EOF
|
cat > conftest.$ac_ext <<_LT_EOF
|
||||||
#line 12727 "configure"
|
#line 12742 "configure"
|
||||||
#include "confdefs.h"
|
#include "confdefs.h"
|
||||||
|
|
||||||
#if HAVE_DLFCN_H
|
#if HAVE_DLFCN_H
|
||||||
|
|
@ -12830,7 +12845,7 @@ else
|
||||||
lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
|
lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
|
||||||
lt_status=$lt_dlunknown
|
lt_status=$lt_dlunknown
|
||||||
cat > conftest.$ac_ext <<_LT_EOF
|
cat > conftest.$ac_ext <<_LT_EOF
|
||||||
#line 12833 "configure"
|
#line 12848 "configure"
|
||||||
#include "confdefs.h"
|
#include "confdefs.h"
|
||||||
|
|
||||||
#if HAVE_DLFCN_H
|
#if HAVE_DLFCN_H
|
||||||
|
|
|
||||||
|
|
@ -216,6 +216,19 @@ AM_CONDITIONAL(LIBGFOR_USE_SYMVER_SUN, [test "x$gfortran_use_symver" = xsun])
|
||||||
|
|
||||||
AM_CONDITIONAL(LIBGFOR_MINIMAL, [test "x${target_cpu}" = xnvptx])
|
AM_CONDITIONAL(LIBGFOR_MINIMAL, [test "x${target_cpu}" = xnvptx])
|
||||||
|
|
||||||
|
# Some compiler target support may have limited support for integer
|
||||||
|
# or floating point numbers – or may want to reduce the libgfortran size
|
||||||
|
# although they do have the support.
|
||||||
|
LIBGOMP_CHECKED_INT_KINDS="1 2 4 8 16"
|
||||||
|
LIBGOMP_CHECKED_REAL_KINDS="4 8 10 16"
|
||||||
|
|
||||||
|
if test "x${target_cpu}" = xamdgcn; then
|
||||||
|
# amdgcn only has limited support for __int128.
|
||||||
|
LIBGOMP_CHECKED_INT_KINDS="1 2 4 8"
|
||||||
|
fi
|
||||||
|
AC_SUBST(LIBGOMP_CHECKED_INT_KINDS)
|
||||||
|
AC_SUBST(LIBGOMP_CHECKED_REAL_KINDS)
|
||||||
|
|
||||||
# Figure out whether the compiler supports "-ffunction-sections -fdata-sections",
|
# Figure out whether the compiler supports "-ffunction-sections -fdata-sections",
|
||||||
# similarly to how libstdc++ does it
|
# similarly to how libstdc++ does it
|
||||||
ac_test_CFLAGS="${CFLAGS+set}"
|
ac_test_CFLAGS="${CFLAGS+set}"
|
||||||
|
|
|
||||||
|
|
@ -2,12 +2,15 @@
|
||||||
LC_ALL=C
|
LC_ALL=C
|
||||||
export LC_ALL
|
export LC_ALL
|
||||||
|
|
||||||
compile="$1"
|
if test "$#" -ne 3; then
|
||||||
|
echo "Usage $0 int_kinds real_kinds compile"
|
||||||
# Possible types must be listed in ascending order
|
exit 1
|
||||||
possible_integer_kinds="1 2 4 8 16"
|
fi
|
||||||
possible_real_kinds="4 8 10 16"
|
|
||||||
|
|
||||||
|
# Possible kinds must be listed in ascending order
|
||||||
|
possible_integer_kinds="$1"
|
||||||
|
possible_real_kinds="$2"
|
||||||
|
compile="$3"
|
||||||
|
|
||||||
largest=""
|
largest=""
|
||||||
smallest=""
|
smallest=""
|
||||||
|
|
@ -112,7 +115,7 @@ for k in $possible_real_kinds; do
|
||||||
done
|
done
|
||||||
|
|
||||||
|
|
||||||
# After this, we include a header that can override some of the
|
# After this, we include a header that can override some of the
|
||||||
# autodetected settings.
|
# autodetected settings.
|
||||||
echo '#include "kinds-override.h"'
|
echo '#include "kinds-override.h"'
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,11 +1,18 @@
|
||||||
#!/bin/sh
|
#!/bin/sh
|
||||||
|
|
||||||
compile="$1"
|
if test "$#" -ne 2; then
|
||||||
|
echo "Usage $0 int_kinds compile"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Possible kinds must be listed in ascending order
|
||||||
|
possible_integer_kinds="$1"
|
||||||
|
compile="$2"
|
||||||
|
|
||||||
kinds=""
|
kinds=""
|
||||||
possible_kinds="1 2 4 8 16"
|
|
||||||
c=0
|
c=0
|
||||||
|
|
||||||
for k in $possible_kinds; do
|
for k in $possible_integer_kinds; do
|
||||||
echo " integer (kind=$k) :: x" > tmp$$.f90
|
echo " integer (kind=$k) :: x" > tmp$$.f90
|
||||||
echo " x = 1_$k" >> tmp$$.f90
|
echo " x = 1_$k" >> tmp$$.f90
|
||||||
echo " end" >> tmp$$.f90
|
echo " end" >> tmp$$.f90
|
||||||
|
|
|
||||||
|
|
@ -1,11 +1,18 @@
|
||||||
#!/bin/sh
|
#!/bin/sh
|
||||||
|
|
||||||
compile="$1"
|
if test "$#" -ne 2; then
|
||||||
|
echo "Usage $0 real_kinds compile"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Possible kinds must be listed in ascending order
|
||||||
|
possible_real_kinds="$1"
|
||||||
|
compile="$2"
|
||||||
|
|
||||||
kinds=""
|
kinds=""
|
||||||
possible_kinds="4 8 10 16"
|
|
||||||
c=0
|
c=0
|
||||||
|
|
||||||
for k in $possible_kinds; do
|
for k in $possible_real_kinds; do
|
||||||
echo " real (kind=$k) :: x" > tmp$$.f90
|
echo " real (kind=$k) :: x" > tmp$$.f90
|
||||||
echo " x = 1.0_$k" >> tmp$$.f90
|
echo " x = 1.0_$k" >> tmp$$.f90
|
||||||
echo " end" >> tmp$$.f90
|
echo " end" >> tmp$$.f90
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue