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
7 changed files with 67 additions and 20 deletions
|
@ -1054,7 +1054,7 @@ I_M4_DEPS8=$(I_M4_DEPS) m4/ifindloc1.m4
|
|||
I_M4_DEPS9=$(I_M4_DEPS) m4/ifindloc2.m4
|
||||
|
||||
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
|
||||
grep '^#' < kinds.h > $@
|
||||
|
@ -1063,10 +1063,10 @@ c99_protos.inc: $(srcdir)/c99_protos.h
|
|||
grep '^#' < $(srcdir)/c99_protos.h > $@
|
||||
|
||||
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
|
||||
$(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)
|
||||
cp $(srcdir)/$(FPU_HOST_HEADER) $@
|
||||
|
|
|
@ -608,6 +608,8 @@ INSTALL_SCRIPT = @INSTALL_SCRIPT@
|
|||
INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
|
||||
LD = @LD@
|
||||
LDFLAGS = @LDFLAGS@
|
||||
LIBGOMP_CHECKED_INT_KINDS = @LIBGOMP_CHECKED_INT_KINDS@
|
||||
LIBGOMP_CHECKED_REAL_KINDS = @LIBGOMP_CHECKED_REAL_KINDS@
|
||||
LIBOBJS = @LIBOBJS@
|
||||
LIBQUADINCLUDE = @LIBQUADINCLUDE@
|
||||
LIBQUADLIB = @LIBQUADLIB@
|
||||
|
@ -7017,7 +7019,7 @@ ieee_arithmetic.mod: ieee_arithmetic.lo
|
|||
@onestep_TRUE@ $(LTCOMPILE) -c -o $@ $^ -combine
|
||||
|
||||
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
|
||||
grep '^#' < kinds.h > $@
|
||||
|
@ -7026,10 +7028,10 @@ c99_protos.inc: $(srcdir)/c99_protos.h
|
|||
grep '^#' < $(srcdir)/c99_protos.h > $@
|
||||
|
||||
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
|
||||
$(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)
|
||||
cp $(srcdir)/$(FPU_HOST_HEADER) $@
|
||||
|
|
19
libgfortran/configure
vendored
19
libgfortran/configure
vendored
|
@ -679,6 +679,8 @@ LD
|
|||
FGREP
|
||||
SED
|
||||
SECTION_FLAGS
|
||||
LIBGOMP_CHECKED_REAL_KINDS
|
||||
LIBGOMP_CHECKED_INT_KINDS
|
||||
LIBGFOR_MINIMAL_FALSE
|
||||
LIBGFOR_MINIMAL_TRUE
|
||||
LIBGFOR_USE_SYMVER_SUN_FALSE
|
||||
|
@ -6208,6 +6210,19 @@ else
|
|||
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",
|
||||
# similarly to how libstdc++ does it
|
||||
ac_test_CFLAGS="${CFLAGS+set}"
|
||||
|
@ -12724,7 +12739,7 @@ else
|
|||
lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
|
||||
lt_status=$lt_dlunknown
|
||||
cat > conftest.$ac_ext <<_LT_EOF
|
||||
#line 12727 "configure"
|
||||
#line 12742 "configure"
|
||||
#include "confdefs.h"
|
||||
|
||||
#if HAVE_DLFCN_H
|
||||
|
@ -12830,7 +12845,7 @@ else
|
|||
lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
|
||||
lt_status=$lt_dlunknown
|
||||
cat > conftest.$ac_ext <<_LT_EOF
|
||||
#line 12833 "configure"
|
||||
#line 12848 "configure"
|
||||
#include "confdefs.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])
|
||||
|
||||
# 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",
|
||||
# similarly to how libstdc++ does it
|
||||
ac_test_CFLAGS="${CFLAGS+set}"
|
||||
|
|
|
@ -2,12 +2,15 @@
|
|||
LC_ALL=C
|
||||
export LC_ALL
|
||||
|
||||
compile="$1"
|
||||
|
||||
# Possible types must be listed in ascending order
|
||||
possible_integer_kinds="1 2 4 8 16"
|
||||
possible_real_kinds="4 8 10 16"
|
||||
if test "$#" -ne 3; then
|
||||
echo "Usage $0 int_kinds real_kinds compile"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# Possible kinds must be listed in ascending order
|
||||
possible_integer_kinds="$1"
|
||||
possible_real_kinds="$2"
|
||||
compile="$3"
|
||||
|
||||
largest=""
|
||||
smallest=""
|
||||
|
@ -112,7 +115,7 @@ for k in $possible_real_kinds; do
|
|||
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.
|
||||
echo '#include "kinds-override.h"'
|
||||
|
||||
|
|
|
@ -1,11 +1,18 @@
|
|||
#!/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=""
|
||||
possible_kinds="1 2 4 8 16"
|
||||
c=0
|
||||
|
||||
for k in $possible_kinds; do
|
||||
for k in $possible_integer_kinds; do
|
||||
echo " integer (kind=$k) :: x" > tmp$$.f90
|
||||
echo " x = 1_$k" >> tmp$$.f90
|
||||
echo " end" >> tmp$$.f90
|
||||
|
|
|
@ -1,11 +1,18 @@
|
|||
#!/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=""
|
||||
possible_kinds="4 8 10 16"
|
||||
c=0
|
||||
|
||||
for k in $possible_kinds; do
|
||||
for k in $possible_real_kinds; do
|
||||
echo " real (kind=$k) :: x" > tmp$$.f90
|
||||
echo " x = 1.0_$k" >> tmp$$.f90
|
||||
echo " end" >> tmp$$.f90
|
||||
|
|
Loading…
Add table
Reference in a new issue