Skip to content
Snippets Groups Projects
  1. Jun 06, 2024
    • Thomas Schwinge's avatar
      nvptx, libgfortran: Switch out of "minimal" mode · 3a4775d4
      Thomas Schwinge authored
      
      ..., in order to enable (portions of) Fortran I/O, for example.
      
      	libgfortran/
      	* configure.ac: No longer set 'LIBGFOR_MINIMAL' for nvptx.
      	* configure: Regenerate.
      	libgomp/
      	* libgomp.texi (nvptx): Update.
      	* testsuite/libgomp.fortran/target-print-1-nvptx.f90: Remove.
      	* testsuite/libgomp.fortran/target-print-1.f90: Adjust.
      	* testsuite/libgomp.oacc-fortran/error_stop-2-nvptx.f: New.
      	* testsuite/libgomp.oacc-fortran/error_stop-2.f: Adjust.
      	* testsuite/libgomp.oacc-fortran/print-1-nvptx.f90: Adjust.
      	* testsuite/libgomp.oacc-fortran/print-1.f90: Adjust.
      	* testsuite/libgomp.oacc-fortran/stop-2-nvptx.f: New.
      	* testsuite/libgomp.oacc-fortran/stop-2.f: Adjust.
      
      Co-authored-by: default avatarAndrew Stubbs <ams@gcc.gnu.org>
      3a4775d4
  2. Oct 22, 2023
    • Iain Sandoe's avatar
      Config,Darwin: Allow for configuring Darwin to use embedded runpath. · 6a6d3817
      Iain Sandoe authored
      Recent Darwin versions place contraints on the use of run paths
      specified in environment variables.  This breaks some assumptions
      in the GCC build.
      
      This change allows the user to configure a Darwin build to use
      '@rpath/libraryname.dylib' in library names and then to add an
      embedded runpath to executables (and libraries with dependents).
      
      The embedded runpath is added by default unless the user adds
      '-nodefaultrpaths' to the link line.
      
      For an installed compiler, it means that any executable built with
      that compiler will reference the runtimes installed with the
      compiler (equivalent to hard-coding the library path into the name
      of the library).
      
      During build-time configurations  any "-B" entries will be added to
      the runpath thus the newly-built libraries will be found by exes.
      
      Since the install name is set in libtool, that decision needs to be
      available here (but might also cause dependent ones in Makefiles,
      so we need to export a conditional).
      
      This facility is not available for Darwin 8 or earlier, however the
      existing environment variable runpath does work there.
      
      We default this on for systems where the external DYLD_LIBRARY_PATH
      does not work and off for Darwin 8 or earlier.  For systems that can
      use either method, if the value is unset, we use the default (which
      is currently DYLD_LIBRARY_PATH).
      
      ChangeLog:
      
      	* configure: Regenerate.
      	* configure.ac: Do not add default runpaths to GCC exes
      	when we are building -static-libstdc++/-static-libgcc (the
      	default).
      	* libtool.m4: Add 'enable-darwin-at-runpath'.  Act  on the
      	enable flag to alter Darwin libraries to use @rpath names.
      
      gcc/ChangeLog:
      
      	* aclocal.m4: Regenerate.
      	* configure: Regenerate.
      	* configure.ac: Handle Darwin rpaths.
      	* config/darwin.h: Handle Darwin rpaths.
      	* config/darwin.opt: Handle Darwin rpaths.
      	* Makefile.in:  Handle Darwin rpaths.
      
      gcc/ada/ChangeLog:
      
      	* gcc-interface/Makefile.in: Handle Darwin rpaths.
      
      gcc/jit/ChangeLog:
      	* Make-lang.in: Handle Darwin rpaths.
      
      libatomic/ChangeLog:
      
      	* Makefile.am: Handle Darwin rpaths.
      	* Makefile.in: Regenerate.
      	* configure: Regenerate.
      	* configure.ac: Handle Darwin rpaths.
      
      libbacktrace/ChangeLog:
      
      	* configure: Regenerate.
      	* configure.ac: Handle Darwin rpaths.
      
      libcc1/ChangeLog:
      
      	* configure: Regenerate.
      
      libffi/ChangeLog:
      
      	* Makefile.am: Handle Darwin rpaths.
      	* Makefile.in: Regenerate.
      	* configure: Regenerate.
      
      libgcc/ChangeLog:
      
      	* config/t-slibgcc-darwin: Generate libgcc_s
      	with an @rpath name.
      	* config.host: Handle Darwin rpaths.
      
      libgfortran/ChangeLog:
      
      	* Makefile.am: Handle Darwin rpaths.
      	* Makefile.in: Regenerate.
      	* configure: Regenerate.
      	* configure.ac: Handle Darwin rpaths
      
      libgm2/ChangeLog:
      
      	* Makefile.am: Handle Darwin rpaths.
      	* Makefile.in: Regenerate.
      	* aclocal.m4: Regenerate.
      	* configure: Regenerate.
      	* configure.ac: Handle Darwin rpaths.
      	* libm2cor/Makefile.am: Handle Darwin rpaths.
      	* libm2cor/Makefile.in: Regenerate.
      	* libm2iso/Makefile.am: Handle Darwin rpaths.
      	* libm2iso/Makefile.in: Regenerate.
      	* libm2log/Makefile.am: Handle Darwin rpaths.
      	* libm2log/Makefile.in: Regenerate.
      	* libm2min/Makefile.am: Handle Darwin rpaths.
      	* libm2min/Makefile.in: Regenerate.
      	* libm2pim/Makefile.am: Handle Darwin rpaths.
      	* libm2pim/Makefile.in: Regenerate.
      
      libgomp/ChangeLog:
      
      	* Makefile.am: Handle Darwin rpaths.
      	* Makefile.in: Regenerate.
      	* configure: Regenerate.
      	* configure.ac: Handle Darwin rpaths
      
      libitm/ChangeLog:
      
      	* Makefile.am: Handle Darwin rpaths.
      	* Makefile.in: Regenerate.
      	* configure: Regenerate.
      	* configure.ac: Handle Darwin rpaths.
      
      libobjc/ChangeLog:
      
      	* configure: Regenerate.
      	* configure.ac: Handle Darwin rpaths.
      
      libphobos/ChangeLog:
      
      	* configure: Regenerate.
      	* configure.ac: Handle Darwin rpaths.
      	* libdruntime/Makefile.am: Handle Darwin rpaths.
      	* libdruntime/Makefile.in: Regenerate.
      	* src/Makefile.am: Handle Darwin rpaths.
      	* src/Makefile.in: Regenerate.
      
      libquadmath/ChangeLog:
      
      	* Makefile.am: Handle Darwin rpaths.
      	* Makefile.in: Regenerate.
      	* configure: Regenerate.
      	* configure.ac: Handle Darwin rpaths.
      
      libsanitizer/ChangeLog:
      
      	* asan/Makefile.am: Handle Darwin rpaths.
      	* asan/Makefile.in: Regenerate.
      	* configure: Regenerate.
      	* hwasan/Makefile.am: Handle Darwin rpaths.
      	* hwasan/Makefile.in: Regenerate.
      	* lsan/Makefile.am: Handle Darwin rpaths.
      	* lsan/Makefile.in: Regenerate.
      	* tsan/Makefile.am: Handle Darwin rpaths.
      	* tsan/Makefile.in: Regenerate.
      	* ubsan/Makefile.am: Handle Darwin rpaths.
      	* ubsan/Makefile.in: Regenerate.
      
      libssp/ChangeLog:
      
      	* Makefile.am: Handle Darwin rpaths.
      	* Makefile.in: Regenerate.
      	* configure: Regenerate.
      	* configure.ac: Handle Darwin rpaths.
      
      libstdc++-v3/ChangeLog:
      
      	* configure: Regenerate.
      	* configure.ac: Handle Darwin rpaths.
      	* src/Makefile.am: Handle Darwin rpaths.
      	* src/Makefile.in: Regenerate.
      
      libvtv/ChangeLog:
      
      	* configure: Regenerate.
      	* configure.ac: Handle Darwin rpaths.
      
      lto-plugin/ChangeLog:
      	* configure: Regenerate.
      	* configure.ac: Handle Darwin rpaths.
      
      zlib/ChangeLog:
      	* configure: Regenerate.
      	* configure.ac: Handle Darwin rpaths.
      6a6d3817
  3. Jun 11, 2023
  4. Jun 28, 2022
    • Jakub Jelinek's avatar
      fortran, libgfortran: Avoid using libquadmath for glibc 2.26+ · 133d0d42
      Jakub Jelinek authored
      As mentioned by Joseph in PR105101, glibc 2.26 or later has on x86
      (both -m32/-m64), powerpc64le, ia64 and mips support for
      *f128 math/complex APIs plus strtof128 and strfromf128, and these APIs allow
      us to avoid libquadmath for Fortran purposes on these architectures,
      replace *q math/complex APIs, strtof128 instead of strtoflt128 and,
      while strfromf128 unfortunately isn't a perfect replacement to
      quadmath_snprintf, it can be made to work.
      
      The advantage of this is that when configured against such glibcs
      (2.26 is now almost 5 years old), we can avoid linking against an extra shared
      library and the math support in glibc is maintained better than libquadmath.
      
      We need both a compiler change (so that for glibc 2.26+ it uses *f128 APIs
      instead of *q) and library change.
      
      The above mentioned problem with strfromf128 is that the strfrom* functions
      are severely restricted versions of snprintf.  In libgfortran, we handle
      !isfinite differently and just use snprintf/quadmath_snprintf for
      %+-#.*{L,Q}{f,e} printing.
      strfrom* doesn't allow +, -, # modifiers and it only supports .34 or
      similar precision, not .* .  The L/Q etc. letters are omitted.
      The + is there to force + sign at the start if it is positive.
      Workaround in the patch is to add the + at the start manually for
      !signbit (val).
      The - (left alignment instead of right) I don't understand why we need it,
      when minimum field width isn't specified (for strfrom* can't be specified),
      no padding is ever added anywhere I believe.
      The # is to force adding . - workaround is to search for first . or e or '\0'
      character, if it is '\0', just append ., if it is e, insert . before e and
      memmove the rest (which is just a few bytes, e, +/- and at most a few digits)
      one byte later.
      The .* case is handled by creating the format string for strfrom* by
      snprintf into a temporary buffer.
      
      As requested, this patch also switches from using __float128 type in
      libgfortran to _Float128 which is equivalent on all arches that support
      __float128.
      
      The change is done in a backwards compatible change, when GCC is configured
      against glibc 2.26 or newer, libgfortran.so.5 itself doesn't link against
      -lquadmath nor uses any libquadmath APIs, libgfortran.a doesn't use any
      libquadmath APIs either.  User programs and libraries when being linked
      by gfortran driver are linked against -lgfortran and -lquadmath, but
      the latter only in the --as-needed linker mode, which means it needs
      to be around during linking and will be linked in if there are any
      calls to math/complex functions with real(kind=16) or complex(kind=16)
      in compilation units compiled by older versions of gcc, but if either
      user code doesn't call those math/complex functions for the largest
      supported kind, or the code is recompiled by gcc with this change in,
      libquadmath won't be linked in.
      
      2022-06-28  Jakub Jelinek  <jakub@redhat.com>
      
      gcc/fortran/
      	* gfortran.h (gfc_real_info): Add use_iec_60559 bitfield.
      	* trans-types.h (gfc_real16_use_iec_60559): Declare.
      	* trans-types.cc (gfc_real16_use_iec_60559): Define.
      	(gfc_init_kinds): When building powerpc64le-linux libgfortran
      	on glibc 2.26 to 2.31, set gfc_real16_use_iec_60559 and
      	use_iec_60559.
      	(gfc_build_real_type): Set gfc_real16_use_iec_60559 and use_iec_60559
      	on glibc 2.26 or later.
      	* trans-intrinsic.cc (gfc_build_intrinsic_lib_fndecls): Adjust
      	comment.  Handle gfc_real16_use_iec_60559.
      	(gfc_get_intrinsic_lib_fndecl): Handle use_iec_60559.
      libgfortran/
      	* configure.ac: Check for strtof128 and strfromf128.
      	Check for math and complex *f128 functions.  Set
      	have_iec_60559_libc_support to yes if *f128 support is around, for
      	--enable-libquadmath-support default to "default" rather than yes if
      	have_iec_60559_libc_support is yes.
      	* acinclude.m4 (LIBGFOR_CHECK_FLOAT128): Test
      	_Float128/_Complex _Float128 rather than __float128 and
      	_Complex float __attribute__((mode(TC))).  If libquadmath support
      	is defaulted and have_iec_60559_libc_support is yes, define and subst
      	USE_IEC_60559.  Remove unused LIBGFOR_BUILD_QUAD conditional.
      	* Makefile.am (kinds.h): Pass @USE_IEC_60559@ as an extra
      	mk-kinds-h.sh argument.
      	* mk-kinds-h.sh: Accept 4th use_iec_60559 argument.  Use
      	_Float128/_Complex _Float128 types instead of __float128 and
      	_Complex float __attribute__((mode(TC))), and if use_iec_60559 is yes,
      	use f128 suffix instead of q and define GFC_REAL_16_USE_IEC_60559.
      	* kinds-override.h: Use _Float128/_Complex _Float128 types instead of
      	__float128 and _Complex float __attribute__((mode(TC))), if
      	USE_IEC_60559 is defined, use f128 suffixes instead of q and
      	define GFC_REAL_17_USE_IEC_60559.
      	* libgfortran.h: Don't include quadmath_weak.h if USE_IEC_60559 is
      	defined.
      	(GFC_REAL_16_INFINITY, GFC_REAL_16_QUIET_NAN): Define
      	for GFC_REAL_16_USE_IEC_60559 differently.
      	* caf/single.c (convert_type): Use _Float128/_Complex _Float128
      	instead of __float128 and _Complex float __attribute__((mode(TC))).
      	For HAVE_GFC_REAL_10 when HAVE_GFC_REAL_16 isn't defined use
      	_Complex long double instead of long double.
      	* ieee/issignaling_fallback.h (ieee854_float128_shape_type): Use
      	_Float128 instead of __float128.
      	(__issignalingf128): Change argument type to _Float128.
      	(issignaling): Use _Float128 instead of __float128 in _Generic.
      	* intrinsics/cshift0.c (cshift0): Use _Float128 instead of __float128
      	in a comment.  Fix a comment typo, logn double -> long double.
      	* intrinsics/erfc_scaled.c (_THRESH, _M_2_SQRTPI, _INF, _ERFC, _EXP):
      	Use different definitions if GFC_REAL_16_USE_IEC_60559.
      	(_THRESH, _M_2_SQRTPI): Use GFC_REAL_17_LITERAL macro.
      	(_ERFC, _EXP): Use different definitions if GFC_REAL_17_USE_IEC_60559.
      	* intrinsics/spread_generic.c (spread, spread_scalar): Use _Float128
      	instead of __float128 in a comment.  Fix a comment typo,
      	logn double -> long double.
      	* intrinsics/trigd.c (ENABLE_SIND, ENABLE_COSD, ENABLE_TAND): Handle
      	GFC_REAL_16_USE_IEC_60559.
      	* intrinsics/pack_generic.c (pack): Use _Float128 instead of
      	__float128 in a comment.  Fix a comment typo, logn double ->
      	long double.
      	* intrinsics/unpack_generic.c (unpack1, unpack0): Likewise.
      	* runtime/in_pack_generic.c (internal_pack): Likewise.
      	* runtime/in_unpack_generic.c (internal_unpack): Likewise.
      	* io/read.c (convert_real, convert_infnan): Handle
      	GFC_REAL_16_USE_IEC_60559 and GFC_REAL_17_USE_IEC_60559.
      	* io/transfer128.c (tmp1, tmp2): Don't define if libquadmath
      	isn't needed.
      	* io/write_float.def (gfor_strfromf128): New function.
      	(DTOA2Q, FDTOA2Q): Define differently if
      	GFC_REAL_16_USE_IEC_60559 or GFC_REAL_17_USE_IEC_60559.
      	* m4/mtype.m4: Use different suffix if GFC_REAL_16_USE_IEC_60559
      	or GFC_REAL_17_USE_IEC_60559.
      	* config.h.in: Regenerated.
      	* configure: Regenerated.
      	* Makefile.in: Regenerated.
      	* generated/bessel_r16.c: Regenerated.
      	* generated/bessel_r17.c: Regenerated.
      	* generated/norm2_r16.c: Regenerated.
      	* generated/norm2_r17.c: Regenerated.
      133d0d42
  5. Jan 11, 2022
    • Thomas Koenig's avatar
      Make sure the Fortran specifics have real(kind=16). · a8fea8cd
      Thomas Koenig authored
      This brings the library to compile with all specific functions.
      It also corrects the patsubst patterns so the right files
      get the flags.
      
      It was necessary to manually add -D__powerpc64__ because apparently
      this is not set for Fortran.
      
      libgfortran/ChangeLog:
      
      	* Makefile.am: Correct files for compilation flags. Add
      	-D__powerpc64__ for Fortran sources.  Get kinds.inc from
      	grep of kinds.h and kinds-override.h.
      	* Makefile.in: Regenerate.
      	* config.h.in: Regenerate.
      	* configure: Regenerate.
      	* configure.ac: Add -mno-gnu-attribute to compile flags.
      	* generated/_abs_c17.F90: Regenerate.
      	* generated/_abs_r17.F90: Regenerate.
      	* generated/_acos_r17.F90: Regenerate.
      	* generated/_acosh_r17.F90: Regenerate.
      	* generated/_aimag_c17.F90: Regenerate.
      	* generated/_aint_r17.F90: Regenerate.
      	* generated/_anint_r17.F90: Regenerate.
      	* generated/_asin_r17.F90: Regenerate.
      	* generated/_asinh_r17.F90: Regenerate.
      	* generated/_atan2_r17.F90: Regenerate.
      	* generated/_atan_r17.F90: Regenerate.
      	* generated/_atanh_r17.F90: Regenerate.
      	* generated/_conjg_c17.F90: Regenerate.
      	* generated/_cos_c17.F90: Regenerate.
      	* generated/_cos_r17.F90: Regenerate.
      	* generated/_cosh_r17.F90: Regenerate.
      	* generated/_dim_r17.F90: Regenerate.
      	* generated/_exp_c17.F90: Regenerate.
      	* generated/_exp_r17.F90: Regenerate.
      	* generated/_log10_r17.F90: Regenerate.
      	* generated/_log_c17.F90: Regenerate.
      	* generated/_log_r17.F90: Regenerate.
      	* generated/_mod_r17.F90: Regenerate.
      	* generated/_sign_r17.F90: Regenerate.
      	* generated/_sin_c17.F90: Regenerate.
      	* generated/_sin_r17.F90: Regenerate.
      	* generated/_sinh_r17.F90: Regenerate.
      	* generated/_sqrt_c17.F90: Regenerate.
      	* generated/_sqrt_r17.F90: Regenerate.
      	* generated/_tan_r17.F90: Regenerate.
      	* generated/_tanh_r17.F90: Regenerate.
      	* kinds-override.h: Adjust to trunk.
      	Change condition to single line so it can be grepped.
      	* m4/specific.m4: Make sure that real=kind16 is used
      	for _r17.F90 and _c17.F90 files.
      	* m4/specific2.m4: Likewise.
      a8fea8cd
    • Thomas Koenig's avatar
      Generate config.h macros for IEEE128 math functions. · 6f4977fc
      Thomas Koenig authored
      libgfortran/ChangeLog:
      
      	* acinclude.m4 (LIBGFOR_CHECK_MATH_IEEE128): New macro.
      	* configure.ac: Use it.
      	* config.h.in: Regenerate.
      	* configure: Regenerate.
      6f4977fc
    • Thomas Koenig's avatar
      Prepare library for REAL(KIND=17). · 49ad4d2c
      Thomas Koenig authored
      This prepares the library side for REAL(KIND=17).  It is
      not yet tested, but at least compiles cleanly on POWER 9
      and x86_64.
      
      2021-10-19  Thomas Koenig  <tkoenig@gcc.gnu.org>
      
      	* Makefile.am: Add _r17 and _c17 files.  Build them
      	with -mabi=ieeelongdouble on POWER.
      	* Makefile.in: Regenerate.
      	* configure: Regenerate.
      	* configure.ac: New flag HAVE_REAL_17.
      	* kinds-override.h: (HAVE_GFC_REAL_17): New macro.
      	(HAVE_GFC_COMPLEX_17): New macro.
      	(GFC_REAL_17_HUGE): New macro.
      	(GFC_REAL_17_LITERAL_SUFFIX): New macro.
      	(GFC_REAL_17_LITERAL): New macro.
      	(GFC_REAL_17_DIGITS): New macro.
      	(GFC_REAL_17_RADIX): New macro.
      	* libgfortran.h	(POWER_IEEE128): New macro.
      	(gfc_array_r17): Typedef.
      	(GFC_DTYPE_REAL_17): New macro.
      	(GFC_DTYPE_COMPLEX_17): New macro.
      	(__acoshieee128): Prototype.
      	(__acosieee128): Prototype.
      	(__asinhieee128): Prototype.
      	(__asinieee128): Prototype.
      	(__atan2ieee128): Prototype.
      	(__atanhieee128): Prototype.
      	(__atanieee128): Prototype.
      	(__coshieee128): Prototype.
      	(__cosieee128): Prototype.
      	(__erfieee128): Prototype.
      	(__expieee128): Prototype.
      	(__fabsieee128): Prototype.
      	(__jnieee128): Prototype.
      	(__log10ieee128): Prototype.
      	(__logieee128): Prototype.
      	(__powieee128): Prototype.
      	(__sinhieee128): Prototype.
      	(__sinieee128): Prototype.
      	(__sqrtieee128): Prototype.
      	(__tanhieee128): Prototype.
      	(__tanieee128): Prototype.
      	(__ynieee128): Prototype.
      	* m4/mtype.m4: Make a bit more readable. Add KIND=17.
      	* generated/_abs_c17.F90: New file.
      	* generated/_abs_r17.F90: New file.
      	* generated/_acos_r17.F90: New file.
      	* generated/_acosh_r17.F90: New file.
      	* generated/_aimag_c17.F90: New file.
      	* generated/_aint_r17.F90: New file.
      	* generated/_anint_r17.F90: New file.
      	* generated/_asin_r17.F90: New file.
      	* generated/_asinh_r17.F90: New file.
      	* generated/_atan2_r17.F90: New file.
      	* generated/_atan_r17.F90: New file.
      	* generated/_atanh_r17.F90: New file.
      	* generated/_conjg_c17.F90: New file.
      	* generated/_cos_c17.F90: New file.
      	* generated/_cos_r17.F90: New file.
      	* generated/_cosh_r17.F90: New file.
      	* generated/_dim_r17.F90: New file.
      	* generated/_exp_c17.F90: New file.
      	* generated/_exp_r17.F90: New file.
      	* generated/_log10_r17.F90: New file.
      	* generated/_log_c17.F90: New file.
      	* generated/_log_r17.F90: New file.
      	* generated/_mod_r17.F90: New file.
      	* generated/_sign_r17.F90: New file.
      	* generated/_sin_c17.F90: New file.
      	* generated/_sin_r17.F90: New file.
      	* generated/_sinh_r17.F90: New file.
      	* generated/_sqrt_c17.F90: New file.
      	* generated/_sqrt_r17.F90: New file.
      	* generated/_tan_r17.F90: New file.
      	* generated/_tanh_r17.F90: New file.
      	* generated/bessel_r17.c: New file.
      	* generated/cshift0_c17.c: New file.
      	* generated/cshift0_r17.c: New file.
      	* generated/cshift1_16_c17.c: New file.
      	* generated/cshift1_16_r17.c: New file.
      	* generated/cshift1_4_c17.c: New file.
      	* generated/cshift1_4_r17.c: New file.
      	* generated/cshift1_8_c17.c: New file.
      	* generated/cshift1_8_r17.c: New file.
      	* generated/findloc0_c17.c: New file.
      	* generated/findloc0_r17.c: New file.
      	* generated/findloc1_c17.c: New file.
      	* generated/findloc1_r17.c: New file.
      	* generated/in_pack_c17.c: New file.
      	* generated/in_pack_r17.c: New file.
      	* generated/in_unpack_c17.c: New file.
      	* generated/in_unpack_r17.c: New file.
      	* generated/matmul_c17.c: New file.
      	* generated/matmul_r17.c: New file.
      	* generated/matmulavx128_c17.c: New file.
      	* generated/matmulavx128_r17.c: New file.
      	* generated/maxloc0_16_r17.c: New file.
      	* generated/maxloc0_4_r17.c: New file.
      	* generated/maxloc0_8_r17.c: New file.
      	* generated/maxloc1_16_r17.c: New file.
      	* generated/maxloc1_4_r17.c: New file.
      	* generated/maxloc1_8_r17.c: New file.
      	* generated/maxval_r17.c: New file.
      	* generated/minloc0_16_r17.c: New file.
      	* generated/minloc0_4_r17.c: New file.
      	* generated/minloc0_8_r17.c: New file.
      	* generated/minloc1_16_r17.c: New file.
      	* generated/minloc1_4_r17.c: New file.
      	* generated/minloc1_8_r17.c: New file.
      	* generated/minval_r17.c: New file.
      	* generated/norm2_r17.c: New file.
      	* generated/pack_c17.c: New file.
      	* generated/pack_r17.c: New file.
      	* generated/pow_c17_i16.c: New file.
      	* generated/pow_c17_i4.c: New file.
      	* generated/pow_c17_i8.c: New file.
      	* generated/pow_r17_i16.c: New file.
      	* generated/pow_r17_i4.c: New file.
      	* generated/pow_r17_i8.c: New file.
      	* generated/product_c17.c: New file.
      	* generated/product_r17.c: New file.
      	* generated/reshape_c17.c: New file.
      	* generated/reshape_r17.c: New file.
      	* generated/spread_c17.c: New file.
      	* generated/spread_r17.c: New file.
      	* generated/sum_c17.c: New file.
      	* generated/sum_r17.c: New file.
      	* generated/unpack_c17.c: New file.
      	* generated/unpack_r17.c: New file.
      49ad4d2c
  6. Sep 22, 2021
    • Tobias Burnus's avatar
      Fortran: Improve -Wmissing-include-dirs warnings [PR55534] · 83aac698
      Tobias Burnus authored
      It turned out that enabling the -Wmissing-include-dirs for libcpp did output
      too many warnings – at least as run with -B and similar options during the
      GCC build and warning for internal include dirs like finclude, unlikely of
      relevance to for a real-world user.
      This patch now only warns for -I and -J by default but permits to get the
      full warnings including libcpp ones with -Wmissing-include-dirs. It
      additionally documents this in the manual.
      
      With that change, the -Wno-missing-include-dirs could be removed
      from libgfortran's configure and libgomp's testsuite always cflags.
      This reverts those bits of the previous
      commit r12-3722-g417ea5c02cef7f000e66d1af22b066c2c1cda047
      
      Additionally, it turned out that all call to load_file called exit
      explicitly - except for the main file via gfc_init -> gfc_new_file. The
      latter also output a file not existing fatal error, such that two errors
      where printed. Now exit is called in line with the other users of
      load_file.
      
      Finally, when compileing with "nonexisting/file.f90", first a warning that
      "nonexisting" does not exist as include path was printed before the file
      not found error was printed. Now the directory in which the physical file
      is located is added silently, relying on the file-not-found diagnostic for
      those.
      
      	PR fortran/55534
      gcc/ChangeLog:
      
      	* doc/invoke.texi (-Wno-missing-include-dirs.): Document Fortran
      	behavior.
      
      gcc/fortran/ChangeLog:
      
      	* cpp.c (gfc_cpp_register_include_paths, gfc_cpp_post_options):
      	Add new bool verbose_missing_dir_warn argument.
      	* cpp.h (gfc_cpp_post_options): Update prototype.
      	* f95-lang.c (gfc_init): Remove duplicated file-not found diag.
      	* gfortran.h (gfc_check_include_dirs): Takes bool
      	verbose_missing_dir_warn arg.
      	(gfc_new_file): Returns now void.
      	* options.c (gfc_post_options): Update to warn for -I and -J,
      	only, by default but for all when user requested.
      	* scanner.c (gfc_do_check_include_dir):
      	(gfc_do_check_include_dirs, gfc_check_include_dirs): Take bool
      	verbose warn arg and update to avoid printing the same message
      	twice or never.
      	(load_file): Fix indent.
      	(gfc_new_file): Return void and exit when load_file failed
      	as all other load_file users do.
      
      libgfortran/ChangeLog:
      
      	* configure.ac (AM_FCFLAGS): Revert r12-3722 by removing
      	-Wno-missing-include-dirs.
      	* configure: Regenerate.
      
      libgomp/ChangeLog:
      
      	* testsuite/libgomp.fortran/fortran.exp (ALWAYS_CFLAGS): Revert
      	r12-3722 by removing -Wno-missing-include-dirs.
      	* testsuite/libgomp.oacc-fortran/fortran.exp (ALWAYS_CFLAGS): Likewise.
      
      gcc/testsuite/ChangeLog:
      
      	* gfortran.dg/include_14.f90: Add -J testcase and update dg-output.
      	* gfortran.dg/include_15.f90: Likewise.
      	* gfortran.dg/include_16.f90: Likewise.
      	* gfortran.dg/include_17.f90: Likewise.
      	* gfortran.dg/include_18.f90: Likewise.
      	* gfortran.dg/include_19.f90: Likewise.
      83aac698
  7. Sep 21, 2021
    • Tobias Burnus's avatar
      Fortran: Fix -Wno-missing-include-dirs handling [PR55534] · 417ea5c0
      Tobias Burnus authored
      gcc/fortran/ChangeLog:
      
      	PR fortran/55534
      	* cpp.c: Define GCC_C_COMMON_C for #include "options.h" to make
      	cpp_reason_option_codes available.
      	(gfc_cpp_register_include_paths): Make static, set pfile's
      	warn_missing_include_dirs and move before caller.
      	(gfc_cpp_init_cb): New, cb code moved from ...
      	(gfc_cpp_init_0): ... here.
      	(gfc_cpp_post_options): Call gfc_cpp_init_cb.
      	(cb_cpp_diagnostic_cpp_option): New. As implemented in c-family
      	to match CppReason flags to -W... names.
      	(cb_cpp_diagnostic): Use it to replace single special case.
      	* cpp.h (gfc_cpp_register_include_paths): Remove as now static.
      	* gfortran.h (gfc_check_include_dirs): New prototype.
      	(gfc_add_include_path): Add new bool arg.
      	* options.c (gfc_init_options): Don't set -Wmissing-include-dirs.
      	(gfc_post_options): Set it here after commandline processing. Call
      	gfc_add_include_path with defer_warn=false.
      	(gfc_handle_option): Call it with defer_warn=true.
      	* scanner.c (gfc_do_check_include_dir, gfc_do_check_include_dirs,
      	gfc_check_include_dirs): New. Diagnostic moved from ...
      	(add_path_to_list): ... here, which came before cmdline processing.
      	Take additional bool defer_warn argument.
      	(gfc_add_include_path): Take additional defer_warn arg.
      	* scanner.h (struct gfc_directorylist): Reorder for alignment issues,
      	add new 'bool warn'.
      
      libgfortran/ChangeLog:
      	PR fortran/55534
      	* configure.ac (AM_FCFLAGS): Add -Wno-missing-include-dirs.
      	* configure: Regenerate.
      
      libgomp/ChangeLog:
      	PR fortran/55534
      	* testsuite/libgomp.fortran/fortran.exp: Add -Wno-missing-include-dirs
      	to ALWAYS_CFLAGS.
      	* testsuite/libgomp.oacc-fortran/fortran.exp: Likewise.
      
      gcc/testsuite/ChangeLog:
      	* gfortran.dg/include_6.f90: Change dg-error to
      	dg-warning and update pattern.
      	* gfortran.dg/include_14.f90: New test.
      	* gfortran.dg/include_15.f90: New test.
      	* gfortran.dg/include_16.f90: New test.
      	* gfortran.dg/include_17.f90: New test.
      	* gfortran.dg/include_18.f90: New test.
      	* gfortran.dg/include_19.f90: New test.
      	* gfortran.dg/include_20.f90: New test.
      	* gfortran.dg/include_21.f90: New test.
      417ea5c0
  8. Aug 27, 2021
    • Iain Sandoe's avatar
      libgfortran: Use the libtool macro to determine libm availability. · 9b025925
      Iain Sandoe authored
      We recently had a report of build failure against a Darwin branch on
      the latest OS release.  This was because (temporarily) the symlink
      from libm.dylib => libSystem.dylib had been removed/omitted.
      
      libm is not needed on Darwin, and should not be added unconditionally
      even if that is (mostly) harmless since it is a symlink to libc.
      
      There could be cases where the addition was not completely harmless
      because the presentation of the symlink would cause the symbols exposed
      in libSystem to be considered ahead of ones presented in convenience
      libraries.
      
      libgfortran/ChangeLog:
      
      	* Makefile.am: Use configured libm availability.
      	* Makefile.in: Regenerate.
      	* configure: Regenerate.
      	* configure.ac: Use libtool macro to find libm availability.
      	* libgfortran.spec.in: Use configured libm availability.
      9b025925
  9. Jun 29, 2021
    • Julian Brown's avatar
      Fortran: Re-enable 128-bit integers for AMD GCN · c0f8c22a
      Julian Brown authored
      This patch reverts the part of Tobias's patch for PR target/96306 that
      disables 128-bit integer support for AMD GCN.
      
      2021-06-18  Julian Brown  <julian@codesourcery.com>
      
      libgfortran/
      	PR target/96306
      	* configure.ac: Remove stanza that removes KIND=16 integers for AMD GCN.
      	* configure: Regenerate.
      c0f8c22a
  10. Jul 26, 2020
    • Tobias Burnus's avatar
      libgfortran: Skip integer-kind=16 check for amdgcn · 2e764ae1
      Tobias Burnus authored
      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.
      2e764ae1
  11. Jun 21, 2020
    • David Edelsohn's avatar
      aix: Add GCC64 configuration and FAT target libraries. · 47ddb895
      David Edelsohn authored
      This patch adds the ability to configure GCC on AIX to build as a
      64 bit application and to build target libraries "FAT" libraries in both
      32 bit and 64 bit mode.
      
      The patch adds makefile fragment hooks to target libraries that allows
      them to include target-specific rules.  The target specific rules for
      AIX place both 32 bit and 64 bit objects and shared objects
      in archives at the top-level, not multilib subdirectories.  The
      multilibs are built in subdirectories, but must be combined during the
      last parts of the target library build process.  Because of the way
      that GCC bootstrap works, the libraries must be combined during the
      multiple stages of GCC bootstrap, not solely when installed in the
      final destination, so the libraries are correct at the end of
      each target library build stage, not solely an install recipe.
      
      gcc/ChangeLog
      
      2020-06-21  David Edelsohn  <dje.gcc@gmail.com>
      
      	* config.gcc: Use t-aix64, biarch64 and default64 for cpu_is_64bit.
      	* config/rs6000/aix72.h (ASM_SPEC): Remove aix64 option.
      	(ASM_SPEC32): New.
      	(ASM_SPEC64): New.
      	(ASM_CPU_SPEC): Remove vsx and altivec options.
      	(CPP_SPEC_COMMON): Rename from CPP_SPEC.
      	(CPP_SPEC32): New.
      	(CPP_SPEC64): New.
      	(CPLUSPLUS_CPP_SPEC): Rename to CPLUSPLUS_CPP_SPEC_COMMON..
      	(TARGET_DEFAULT): Only define if not BIARCH.
      	(LIB_SPEC_COMMON): Rename from LIB_SPEC.
      	(LIB_SPEC32): New.
      	(LIB_SPEC64): New.
      	(LINK_SPEC_COMMON): Rename from LINK_SPEC.
      	(LINK_SPEC32): New.
      	(LINK_SPEC64): New.
      	(STARTFILE_SPEC): Add 64 bit version of crtcxa and crtdbase.
      	(ASM_SPEC): Define 32 and 64 bit alternatives using DEFAULT_ARCH64_P.
      	(CPP_SPEC): Same.
      	(CPLUSPLUS_CPP_SPEC): Same.
      	(LIB_SPEC): Same.
      	(LINK_SPEC): Same.
      	(SUBTARGET_EXTRA_SPECS): Add new 32/64 specs.
      	* config/rs6000/defaultaix64.h: New file.
      	* config/rs6000/t-aix64: New file.
      
      libgcc/ChangeLog
      
      2020-06-21  David Edelsohn  <dje.gcc@gmail.com>
      
      	* config.host (extra_parts): Add crtcxa_64 and crtdbase_64.
      	* config/rs6000/t-aix-cxa: Explicitly compile 32 bit with -maix32
      	and 64 bit with -maix64.
      	* config/rs6000/t-slibgcc-aix: Remove extra @multilib_dir@ level.
      	Build and install AIX-style FAT libraries.
      
      libgomp/ChangeLog
      
      2020-06-21  David Edelsohn  <dje.gcc@gmail.com>
      
      	* Makefile.am (tmake_file): Build and install AIX-style FAT libraries.
      	* Makefile.in: Regenerate
      	* configure.ac (tmake_file): Substitute.
      	* configure: Regenerate.
      	* configure.tgt (powerpc-ibm-aix*): Define tmake_file.
      	* config/t-aix: New file.
      
      libstdc++-v3/ChangeLog
      
      2020-06-21  David Edelsohn  <dje.gcc@gmail.com>
      
      	* Makefile.am (tmake_file): Build and install AIX-style FAT libraries.
      	* Makefile.in: Regenerate.
      	* configure.ac (tmake_file): Substitute.
      	* configure: Regenerate.
      	* configure.host (aix*): Define tmake_file.
      	* config/os/aix/t-aix: New file.
      
      libatomic/ChangeLog
      
      2020-06-21  David Edelsohn  <dje.gcc@gmail.com>
      
      	* Makefile.am (tmake_file): Build and install AIX-style FAT libraries.
      	* Makefile.in: Regenerate.
      	* configure.ac (tmake_file): Substitute.
      	* configure: Regenerate.
      	* configure.tgt (powerpc-ibm-aix*): Define tmake_file.
      	* config/t-aix: New file.
      
      libgfortran/ChangeLog
      
      2020-06-21  David Edelsohn  <dje.gcc@gmail.com>
      
      	* Makefile.am (tmake_file): Build and install AIX-style FAT libraries.
      	* Makefile.in: Regenerate.
      	* configure.ac (tmake_file): Substitute.
      	* configure: Regenerate.
      	* configure.host: Add system configury stanza. Define tmake_file.
      	* config/t-aix: New file.
      47ddb895
  12. Apr 22, 2020
    • Jakub Jelinek's avatar
      libgfortran: Provide some further math library fallbacks [PR94694] · 1868599f
      Jakub Jelinek authored
      The following patch provides some further math library fallbacks.
      fmaf can be implemented using fma if available, fma and fmal can use
      x * y + z as fallback, it is not perfect, but e.g. glibc on various arches
      has been using that as fallback for many years,
      and copysign/copysignl/fabs/fabsl can be implemented using corresponding
      __builtin_* if we make sure that gcc expands it inline instead of using
      a library call (these days it is expanded inline on most targets).
      
      2020-04-22  Jakub Jelinek  <jakub@redhat.com>
      
      	PR libfortran/94694
      	PR libfortran/94586
      	* configure.ac: Add math func checks for fmaf, fma and fmal.  Add
      	HAVE_INLINE_BUILTIN_COPYSIGN check.
      	* c99_protos.h (copysign, fmaf, fma, fmal): Provide fallback
      	prototypes.
      	(HAVE_COPYSIGN, HAVE_FMAF, HAVE_FMA, HAVE_FMAL): Define if not
      	defined and fallback version is provided.
      	* intrinsics/c99_functions.c (copysign, fmaf, fma, fmal): Provide
      	fallback implementations if possible
      	* configure: Regenerated.
      	* config.h.in: Regenerated.
      
      	* math.m4 (GCC_CHECK_MATH_INLINE_BUILTIN_FALLBACK1,
      	GCC_CHECK_MATH_INLINE_BUILTIN_FALLBACK2): New.
      1868599f
  13. Jan 24, 2020
    • Maciej W. Rozycki's avatar
      Add `--with-toolexeclibdir=' configuration option · e8e66971
      Maciej W. Rozycki authored
      Provide means, in the form of a `--with-toolexeclibdir=' configuration
      option, to override the default installation directory for target
      libraries, otherwise known as $toolexeclibdir.  This is so that it is
      possible to get newly-built libraries, particularly the shared ones,
      installed in a common place, so that they can be readily used by the
      target system as their host libraries, possibly over NFS, without a need
      to manually copy them over from the currently hardcoded location they
      would otherwise be installed in.
      
      In the presence of the `--enable-version-specific-runtime-libs' option
      and for configurations building native GCC the option is ignored.
      
      	config/
      	* toolexeclibdir.m4: New file.
      
      	gcc/
      	* doc/install.texi (Cross-Compiler-Specific Options): Document
      	`--with-toolexeclibdir' option.
      
      	libada/
      	* Makefile.in (configure_deps): Add `toolexeclibdir.m4'.
      	* configure.ac: Handle `--with-toolexeclibdir='.
      	* configure: Regenerate.
      
      	libatomic/
      	* configure.ac: Handle `--with-toolexeclibdir='.
      	* Makefile.in: Regenerate.
      	* aclocal.m4: Regenerate.
      	* configure: Regenerate.
      	* testsuite/Makefile.in: Regenerate.
      
      	libffi/
      	* configure.ac: Handle `--with-toolexeclibdir='.
      	* Makefile.in: Regenerate.
      	* aclocal.m4: Regenerate.
      	* configure: Regenerate.
      	* include/Makefile.in: Regenerate.
      	* man/Makefile.in: Regenerate.
      	* testsuite/Makefile.in: Regenerate.
      
      	libgcc/
      	* Makefile.in (configure_deps): Add `toolexeclibdir.m4'.
      	* configure.ac: Handle `--with-toolexeclibdir='.
      	* configure: Regenerate.
      
      	libgfortran/
      	* configure.ac: Handle `--with-toolexeclibdir='.
      	* Makefile.in: Regenerate.
      	* aclocal.m4: Regenerate.
      	* configure: Regenerate.
      
      	libgomp/
      	* configure.ac: Handle `--with-toolexeclibdir='.
      	* Makefile.in: Regenerate.
      	* aclocal.m4: Regenerate.
      	* configure: Regenerate.
      	* testsuite/Makefile.in: Regenerate.
      
      	libhsail-rt/
      	* configure.ac: Handle `--with-toolexeclibdir='.
      	* Makefile.in: Regenerate.
      	* aclocal.m4: Regenerate.
      	* configure: Regenerate.
      
      	libitm/
      	* configure.ac: Handle `--with-toolexeclibdir='.
      	* Makefile.in: Regenerate.
      	* aclocal.m4: Regenerate.
      	* configure: Regenerate.
      	* testsuite/Makefile.in: Regenerate.
      
      	libobjc/
      	* Makefile.in (aclocal_deps): Add `toolexeclibdir.m4'.
      	* aclocal.m4: Include `toolexeclibdir.m4'.
      	* configure.ac: Handle `--with-toolexeclibdir='.
      	* configure: Regenerate.
      
      	liboffloadmic/
      	* plugin/configure.ac: Handle `--with-toolexeclibdir='.
      	* plugin/Makefile.in: Regenerate.
      	* plugin/aclocal.m4: Regenerate.
      	* plugin/configure: Regenerate.
      	* configure.ac: Handle `--with-toolexeclibdir='.
      	* Makefile.in: Regenerate.
      	* aclocal.m4: Regenerate.
      	* configure: Regenerate.
      
      	libphobos/
      	* m4/druntime.m4: Handle `--with-toolexeclibdir='.
      	* m4/Makefile.in: Regenerate.
      	* libdruntime/Makefile.in: Regenerate.
      	* src/Makefile.in: Regenerate.
      	* testsuite/Makefile.in: Regenerate.
      	* Makefile.in: Regenerate.
      	* aclocal.m4: Regenerate.
      	* configure: Regenerate.
      
      	libquadmath/
      	* configure.ac: Handle `--with-toolexeclibdir='.
      	* Makefile.in: Regenerate.
      	* aclocal.m4: Regenerate.
      	* configure: Regenerate.
      
      	libsanitizer/
      	* configure.ac: Handle `--with-toolexeclibdir='.
      	* Makefile.in: Regenerate.
      	* aclocal.m4: Regenerate.
      	* configure: Regenerate.
      	* asan/Makefile.in: Regenerate.
      	* interception/Makefile.in: Regenerate.
      	* libbacktrace/Makefile.in: Regenerate.
      	* lsan/Makefile.in: Regenerate.
      	* sanitizer_common/Makefile.in: Regenerate.
      	* tsan/Makefile.in: Regenerate.
      	* ubsan/Makefile.in: Regenerate.
      
      	libssp/
      	* configure.ac: Handle `--with-toolexeclibdir='.
      	* Makefile.in: Regenerate.
      	* aclocal.m4: Regenerate.
      	* configure: Regenerate.
      
      	libstdc++-v3/
      	* acinclude.m4: Handle `--with-toolexeclibdir='.
      	* Makefile.in: Regenerate.
      	* aclocal.m4: Regenerate.
      	* configure: Regenerate.
      	* doc/Makefile.in: Regenerate.
      	* include/Makefile.in: Regenerate.
      	* libsupc++/Makefile.in: Regenerate.
      	* po/Makefile.in: Regenerate.
      	* python/Makefile.in: Regenerate.
      	* src/Makefile.in: Regenerate.
      	* src/c++11/Makefile.in: Regenerate.
      	* src/c++17/Makefile.in: Regenerate.
      	* src/c++98/Makefile.in: Regenerate.
      	* src/filesystem/Makefile.in: Regenerate.
      	* testsuite/Makefile.in: Regenerate.
      
      	libvtv/
      	* configure.ac: Handle `--with-toolexeclibdir='.
      	* Makefile.in: Regenerate.
      	* aclocal.m4: Regenerate.
      	* configure: Regenerate.
      	* testsuite/Makefile.in: Regenerate.
      
      	zlib/
      	* configure.ac: Handle `--with-toolexeclibdir='.
      	* Makefile.in: Regenerate.
      	* aclocal.m4: Regenerate.
      	* configure: Regenerate.
      e8e66971
  14. Jun 25, 2019
  15. May 19, 2019
    • Janne Blomqvist's avatar
      libfortran/90038 Reap dead children when wait=.false. · ef536b41
      Janne Blomqvist authored
      When using posix_spawn or fork to launch a child process, the parent
      needs to wait for the child, otherwise the dead child is left as a
      zombie process. For this purpose one can install a signal handler for
      SIGCHLD.
      
      2019-05-19  Janne Blomqvist  <jb@gcc.gnu.org>
      
      	PR libfortran/90038
      	* intrinsics/execute_command_line (sigchld_handler): New function.
              (execute_command_line): Install handler for SIGCHLD.
              * configure.ac: Check for presence of sigaction and waitpid.
              * config.h.in: Regenerated.
              * configure: Regenerated.
      
      Regtested on x86_64-pc-linux-gnu.
      
      From-SVN: r271384
      ef536b41
  16. May 17, 2019
    • Janne Blomqvist's avatar
      libfortran/90038: Use posix_spawn instead of fork · f8886038
      Janne Blomqvist authored
          
      fork() semantics can be problematic.  Most unix style OS'es have
      posix_spawn which can be used to replace fork + exec in many cases.
      For more information see
      e.g. https://www.microsoft.com/en-us/research/uploads/prod/2019/04/fork-hotos19.pdf
          
      This replaces the one use of fork in libgfortran with posix_spawn.
          
      2019-05-17  Janne Blomqvist  <jb@gcc.gnu.org>
      
              PR libfortran/90038
              * configure.ac (AC_CHECK_FUNCS_ONCE): Check for posix_spawn.
              * intrinsics/execute_command_line (execute_command_line): Use
              posix_spawn.
              * Makefile.in: Regenerated.
              * config.h.in: Regenerated.
              * configure: Regenerated.
          
      Regtested on x86_64-pc-linux-gnu.
      
      From-SVN: r271340
      f8886038
  17. Jan 17, 2019
    • Andrew Stubbs's avatar
      GCN libgfortran. · 5ab99fa4
      Andrew Stubbs authored
      
      This patch contains the GCN port of libgfortran.  We use the minimal
      configuration created for NVPTX.  That's all that's required, besides the
      target-independent bug fixes posted already.
      
      2019-01-17  Andrew Stubbs  <ams@codesourcery.com>
      	    Kwok Cheung Yeung  <kcy@codesourcery.com>
      	    Julian Brown  <julian@codesourcery.com>
      	    Tom de Vries  <tom@codesourcery.com>
      
      	libgfortran/
      	* configure.ac: Use minimal mode for amdgcn.
      	* configure: Regenerate.
      
      
      Co-Authored-By: default avatarJulian Brown <julian@codesourcery.com>
      Co-Authored-By: default avatarKwok Cheung Yeung <kcy@codesourcery.com>
      Co-Authored-By: default avatarTom de Vries <tom@codesourcery.com>
      
      From-SVN: r268020
      5ab99fa4
  18. Nov 22, 2018
    • Janne Blomqvist's avatar
      Replace sync builtins with atomic builtins · 0536d5b3
      Janne Blomqvist authored
      The old __sync builtins have been deprecated for a long time now in
      favor of the __atomic builtins following the C++11/C11 memory model.
      This patch converts libgfortran to use the modern __atomic builtins.
      
      At the same time I weakened the consistency to relaxed for
      incrementing and decrementing the counter, and acquire-release when
      decrementing to check whether the counter is 0 and the unit can be
      freed.  This is similar to e.g. std::shared_ptr in C++.
      
      Regtested on x86_64-pc-linux-gnu.
      
      libgfortran/ChangeLog:
      
      2018-11-22  Janne Blomqvist  <jb@gcc.gnu.org>
      
      	* acinclude.m4 (LIBGFOR_CHECK_ATOMIC_FETCH_ADD): Rename and test
      	presence of atomic builtins instead of sync builtins.
      	* configure.ac (LIBGFOR_CHECK_ATOMIC_FETCH_ADD): Call new test.
      	* io/io.h (inc_waiting_locked): Use __atomic_fetch_add.
      	(predec_waiting_locked): Use __atomic_add_fetch.
      	(dec_waiting_unlocked): Use __atomic_fetch_add.
      	* config.h.in: Regenerated.
      	* configure: Regenerated.
              * Makefile.in: Regenerated.
      
      From-SVN: r266367
      0536d5b3
  19. Oct 31, 2018
    • Joseph Myers's avatar
      Update GCC to autoconf 2.69, automake 1.15.1 (PR bootstrap/82856). · 22e05272
      Joseph Myers authored
      This patch updates GCC to use autoconf 2.69 and automake 1.15.1.
      (That's not the latest automake version, but it's the one used by
      binutils-gdb, with which consistency is desirable, and in any case
      seems a useful incremental update that should make a future update to
      1.16.1 easier.)
      
      The changes are generally similar to the binutils-gdb ones, and are
      copied from there where shared files and directories are involved
      (there are some further changes to such shared directories, however,
      which I'd expect to apply to binutils-gdb once this patch is in GCC).
      Largely, obsolete AC_PREREQ calls are removed, while many
      AC_LANG_SOURCE calls are added to avoid warnings from aclocal and
      autoconf.  Multilib support is no longer included in core automake,
      meaning that multilib.am needs copying from automake's contrib
      directory into the GCC source tree.  Autoconf 2.69 has Go support, so
      local copies of that support are removed.  I hope the D support will
      soon be submitted to upstream autoconf so the local copy of that can
      be removed in a future update.  Changes to how automake generates
      runtest calls mean quotes are removed from RUNTEST definitions in five
      lib*/testsuite/Makefile.am files (libatomic, libgomp, libitm,
      libphobos, libvtv; some others have RUNTEST definitions without
      quotes, which are still OK); libgo and libphobos also get
      -Wno-override added to AM_INIT_AUTOMAKE so those overrides of RUNTEST
      do not generate automake warnings.
      
      Note that the regeneration did not include regeneration of
      fixincludes/config.h.in (attempting such regeneration resulted in all
      the USED_FOR_TARGET conditionals disappearing; and I don't see
      anything in the fixincludes/ directory that would result in such
      conditionals being generated, unlike in the gcc/ directory).  Also
      note that libvtv/testsuite/other-tests/Makefile.in was not
      regenerated; that directory is not listed as a subdirectory for which
      Makefile.in gets regenerated by calling "automake" in libvtv/, so I'm
      not sure how it's meant to be regenerated.
      
      While I mostly fixed warnings should running aclocal / automake /
      autoconf, there were various such warnings from automake in the
      libgfortran, libgo, libgomp, liboffloadmic, libsanitizer, libphobos
      directories that I did not fix, preferring to leave those to the
      relevant subsystem maintainers.  Specifically, most of those warnings
      were of the following form (example from libgfortran):
      
      Makefile.am:48: warning: source file 'caf/single.c' is in a subdirectory,
      Makefile.am:48: but option 'subdir-objects' is disabled
      automake: warning: possible forward-incompatibility.
      automake: At least a source file is in a subdirectory, but the 'subdir-objects'
      automake: automake option hasn't been enabled.  For now, the corresponding output
      automake: object file(s) will be placed in the top-level directory.  However,
      automake: this behaviour will change in future Automake versions: they
      will
      automake: unconditionally cause object files to be placed in the same subdirectory
      automake: of the corresponding sources.
      automake: You are advised to start using 'subdir-objects' option throughout your
      automake: project, to avoid future incompatibilities.
      
      I think it's best for the relevant maintainers to add subdir-objects
      and do any other associated Makefile.am changes needed.  In some cases
      the paths in the warnings involved ../; I don't know if that adds any
      extra complications to the use of subdir-objects.
      
      I've tested this with native, cross and Canadian cross builds.  The
      risk of any OS-specific issues should I hope be rather lower than if a
      libtool upgrade were included (we *should* do such an upgrade at some
      point, but it's more complicated - it involves identifying all our
      local libtool changes to see if any aren't included in the upstream
      version we update to, and reverting an upstream libtool patch that's
      inappropriate for use in GCC); I think it would be better to get this
      update into GCC so that people can test in different configurations
      and we can fix any issues found, rather than to try to get more and
      more testing done before it goes in.
      
      top level:
      2018-10-31  Joseph Myers  <joseph@codesourcery.com>
      
      	PR bootstrap/82856
      	* multilib.am: New file.  From automake.
      
      	Merge from binutils-gdb:
      	2018-06-19  Simon Marchi  <simon.marchi@ericsson.com>
      
      	* libtool.m4: Use AC_LANG_SOURCE.
      	* configure.ac: Remove AC_PREREQ, use AC_LANG_SOURCE.
      	* ar-lib: New file.
      	* test-driver: New file.
      	* configure: Re-generate.
      
      config:
      2018-10-31  Joseph Myers  <joseph@codesourcery.com>
      
      	PR bootstrap/82856
      	* math.m4, tls.m4: Use AC_LANG_SOURCE.
      
      	Merge from binutils-gdb:
      	2018-06-19  Simon Marchi  <simon.marchi@ericsson.com>
      
      	* override.m4 (_GCC_AUTOCONF_VERSION): Bump from 2.64 to 2.69.
      
      fixincludes:
      2018-10-31  Joseph Myers  <joseph@codesourcery.com>
      
      	PR bootstrap/82856
      	* configure.ac: Remove AC_PREREQ.
      	* aclocal.m4, configure: Regenerate.
      
      gcc:
      2018-10-31  Joseph Myers  <joseph@codesourcery.com>
      
      	PR bootstrap/82856
      	* configure.ac: Remove AC_PREREQ.  Use AC_LANG_SOURCE.  Use single
      	line for second argument of AC_DEFINE_UNQUOTED.
      	* doc/install.texi (Tools/packages necessary for modifying GCC):
      	Update to autoconf 2.69 and automake 1.15.1.
      	* aclocal.m4, config.in, configure: Regenerate.
      
      gnattools:
      2018-10-31  Joseph Myers  <joseph@codesourcery.com>
      
      	PR bootstrap/82856
      	* configure.ac: Remove AC_PREREQ.
      	* configure: Regenerate.
      
      gotools:
      2018-10-31  Joseph Myers  <joseph@codesourcery.com>
      
      	PR bootstrap/82856
      	* config/go.m4: Remove file.
      	* Makefile.am (ACLOCAL_AMFLAGS): Do not use -I ./config.
      	* configure.ac:  Remove AC_PREREQ.  Do not include config/go.m4.
      	* Makefile.in, aclocal.m4, configure: Regenerate.
      
      intl:
      2018-10-31  Joseph Myers  <joseph@codesourcery.com>
      
      	PR bootstrap/82856
      	Merge from binutils-gdb:
      	2018-06-19  Simon Marchi  <simon.marchi@ericsson.com>
      
      	* configure.ac: Add AC_USE_SYSTEM_EXTENSIONS, remove AC_PREREQ.
      	* configure: Re-generate.
      	* config.h.in: Re-generate.
      	* aclocal.m4: Re-generate.
      
      libada:
      2018-10-31  Joseph Myers  <joseph@codesourcery.com>
      
      	PR bootstrap/82856
      	* configure.ac: Remove AC_PREREQ.
      	* configure: Regenerate.
      
      libatomic:
      2018-10-31  Joseph Myers  <joseph@codesourcery.com>
      
      	PR bootstrap/82856
      	* Makefile.am: Include multilib.am.
      	* acinclude.m4: Use AC_LANG_SOURCE.
      	* configure.ac: Remove AC_PREREQ.
      	* testsuite/Makefile.am (RUNTEST): Remove quotes.
      	* Makefile.in, aclocal.m4, configure, testsuite/Makefile.in:
      	Regenerate.
      
      libbacktrace:
      2018-10-31  Joseph Myers  <joseph@codesourcery.com>
      
      	PR bootstrap/82856
      	* Makefile.am: Include multilib.am.
      	* configure.ac: Remove AC_PREREQ.  Use AC_LANG_SOURCE.
      	* Makefile.in, aclocal.m4, config.h.in, configure: Regenerate.
      
      libcc1:
      2018-10-31  Joseph Myers  <joseph@codesourcery.com>
      
      	PR bootstrap/82856
      	* configure.ac: Remove AC_PREREQ.
      	* Makefile.in, aclocal.m4, configure: Regenerate.
      
      libcpp:
      2018-10-31  Joseph Myers  <joseph@codesourcery.com>
      
      	PR bootstrap/82856
      	* configure.ac: Remove AC_PREREQ.  Use AC_LANG_SOURCE.
      	* aclocal.m4, config.in, configure: Regenerate.
      
      libdecnumber:
      2018-10-31  Joseph Myers  <joseph@codesourcery.com>
      
      	PR bootstrap/82856
      	Merge from binutils-gdb:
      	2018-06-19  Simon Marchi  <simon.marchi@ericsson.com>
      
      	* configure.ac: Remove AC_PREREQ.
      	* configure: Re-generate.
      	* aclocal.m4.
      
      libffi:
      2018-10-31  Joseph Myers  <joseph@codesourcery.com>
      
      	PR bootstrap/82856
      	* Makefile.am: Include multilib.am.
      	(AUTOMAKE_OPTIONS): Add info-in-builddir.
      	(CLEANFILES): Remove doc/libffi.info.
      	* configure.ac: Remove AC_PREREQ.
      	* Makefile.in, aclocal.m4, configure, fficonfig.h.in,
      	include/Makefile.in, man/Makefile.in, testsuite/Makefile.in:
      	Regenerate.
      
      libgcc:
      2018-10-31  Joseph Myers  <joseph@codesourcery.com>
      
      	PR bootstrap/82856
      	* configure.ac: Remove AC_PREREQ.  Use AC_LANG_SOURCE.
      	* configure: Regenerate.
      
      libgfortran:
      2018-10-31  Joseph Myers  <joseph@codesourcery.com>
      
      	PR bootstrap/82856
      	* Makefile.am: Include multilib.am.
      	* configure.ac: Remove AC_PREREQ.
      	* Makefile.in, aclocal.m4, config.h.in, configure: Regenerate.
      
      libgo [logically part of this change but omitted from the commit]:
      2018-10-31  Joseph Myers  <joseph@codesourcery.com>
      
      	PR bootstrap/82856
      	* Makefile.am: Include multilib.am.
      	* config/go.m4: Remove file.
      	* config/libtool.m4: Use AC_LANG_SOURCE.
      	* configure.ac: Remove AC_PREREQ.  Use AC_LANG_SOURCE.  Use
      	-Wno-override in AM_INIT_AUTOMAKE call.
      	* Makefile.in, aclocal.m4, configure, testsuite/Makefile.in:
      	Regenerate.
      
      libgomp:
      2018-10-31  Joseph Myers  <joseph@codesourcery.com>
      
      	PR bootstrap/82856
      	* Makefile.am: Include multilib.am
      	(AUTOMAKE_OPTIONS): Add info-in-builddir.
      	(CLEANFILES): Remove libgomp.info.
      	* configure.ac: Remove AC_PREREQ.
      	* testsuite/Makefile.am (RUNTEST): Remove quotes.
      	* Makefile.in, aclocal.m4, configure, testsuite/Makefile.in:
      	Regenerate.
      
      libhsail-rt:
      2018-10-31  Joseph Myers  <joseph@codesourcery.com>
      
      	PR bootstrap/82856
      	* configure.ac: Remove AC_PREREQ.
      	* Makefile.in, aclocal.m4, configure: Regenerate.
      
      libiberty:
      2018-10-31  Joseph Myers  <joseph@codesourcery.com>
      
      	PR bootstrap/82856
      	Merge from binutils-gdb:
      	2018-06-19  Simon Marchi  <simon.marchi@ericsson.com>
      
      	* configure.ac: Remove AC_PREREQ.
      	* configure: Re-generate.
      	* config.in: Re-generate.
      
      libitm:
      2018-10-31  Joseph Myers  <joseph@codesourcery.com>
      
      	PR bootstrap/82856
      	* Makefile.am: Include multilib.am.
      	(AUTOMAKE_OPTIONS): Add info-in-builddir.
      	(CLEANFILES): Remove libitm.info.
      	* configure.ac: Remove AC_PREREQ.
      	* testsuite/Makefile.am (RUNTEST): Remove quotes.
      	* Makefile.in, aclocal.m4, configure, testsuite/Makefile.in:
      	Regenerate.
      
      libobjc:
      2018-10-31  Joseph Myers  <joseph@codesourcery.com>
      
      	PR bootstrap/82856
      	* configure.ac: Remove AC_PREREQ.
      	* aclocal.m4, config.h.in, configure: Regenerate.
      
      liboffloadmic:
      2018-10-31  Joseph Myers  <joseph@codesourcery.com>
      
      	PR bootstrap/82856
      	* Makefile.am: Include multilib.am.
      	* configure.ac: Remove AC_PREREQ.
      	* plugin/Makefile.am: Include multilib.am.
      	* plugin/configure.ac: Remove AC_PREREQ.
      	* Makefile.in, aclocal.m4, configure, plugin/Makefile.in,
      	plugin/aclocal.m4, plugin/configure: Regenerate.
      
      libphobos:
      2018-10-31  Joseph Myers  <joseph@codesourcery.com>
      
      	PR bootstrap/82856
      	* Makefile.am: Include multilib.am.
      	* configure.ac: Remove AC_PREREQ.  Use -Wno-override in
      	AM_INIT_AUTOMAKE call.
      	* m4/autoconf.m4: Add extra argument to AC_LANG_DEFINE call.
      	* m4/druntime/os.m4: Use AC_LANG_SOURCE.
      	* testsuite/Makefile.am (RUNTEST): Remove quotes.
      	* Makefile.in, aclocal.m4, configure, libdruntime/Makefile.in,
      	src/Makefile.in, testsuite/Makefile.in: Regenerate.
      
      libquadmath:
      2018-10-31  Joseph Myers  <joseph@codesourcery.com>
      
      	PR bootstrap/82856
      	* Makefile.am: Include multilib.am.
      	(AUTOMAKE_OPTIONS): Remove 1.8.  Add info-in-builddir.
      	(all-local): Define outside conditional code.
      	(CLEANFILES): Remove libquadmath.info.
      	* configure.ac: Remove AC_PREREQ.
      	* Makefile.in, aclocal.m4, config.h.in, configure: Regenerate.
      
      libsanitizer:
      2018-10-31  Joseph Myers  <joseph@codesourcery.com>
      
      	PR bootstrap/82856
      	* Makefile.am: Include multilib.am.
      	* configure.ac: Remove AC_PREREQ.  Use AC_LANG_SOURCE.
      	* Makefile.in, aclocal.m4, asan/Makefile.in, configure,
      	interception/Makefile.in, libbacktrace/Makefile.in,
      	lsan/Makefile.in, sanitizer_common/Makefile.in, tsan/Makefile.in,
      	ubsan/Makefile.in: Regenerate.
      
      libssp:
      2018-10-31  Joseph Myers  <joseph@codesourcery.com>
      
      	PR bootstrap/82856
      	* Makefile.am: Include multilib.am.
      	(AUTOMAKE_OPTIONS): Remove 1.9.5.
      	* configure.ac: Remove AC_PREREQ.  Quote argument to
      	AC_RUN_IFELSE.
      	* Makefile.in, aclocal.m4, configure: Regenerate.
      
      libstdc++-v3:
      2018-10-31  Joseph Myers  <joseph@codesourcery.com>
      
      	PR bootstrap/82856
      	* Makefile.am: Include multilib.am.
      	* configure.ac: Remove AC_PREREQ.
      	* Makefile.in, aclocal.m4, configure, doc/Makefile.in,
      	include/Makefile.in, libsupc++/Makefile.in, po/Makefile.in,
      	python/Makefile.in, src/Makefile.in, src/c++11/Makefile.in,
      	src/c++17/Makefile.in, src/c++98/Makefile.in,
      	src/filesystem/Makefile.in, testsuite/Makefile.in: Regenerate.
      
      libvtv:
      2018-10-31  Joseph Myers  <joseph@codesourcery.com>
      
      	PR bootstrap/82856
      	* Makefile.am: Include multilib.am.
      	* configure.ac: Remove AC_PREREQ.
      	* testsuite/Makefile.am (RUNTEST): Remove quotes.
      	* Makefile.in, aclocal.m4, configure, testsuite/Makefile.in:
      	Regenerate.
      
      lto-plugin:
      2018-10-31  Joseph Myers  <joseph@codesourcery.com>
      
      	PR bootstrap/82856
      	* configure.ac: Remove AC_PREREQ.  Use AC_LANG_SOURCE.
      	* Makefile.in, aclocal.m4, config.h.in, configure: Regenerate.
      
      zlib:
      2018-10-31  Joseph Myers  <joseph@codesourcery.com>
      
      	PR bootstrap/82856
      	* Makefile.am: Include multilib.am.
      
      	Merge from binutils-gdb:
      	2018-06-19  Simon Marchi  <simon.marchi@ericsson.com>
      
      	* configure.ac: Modernize AC_INIT call, remove AC_PREREQ.
      	* Makefile.am (AUTOMAKE_OPTIONS): Remove 1.8, cygnus, add foreign.
      	* Makefile.in: Re-generate.
      	* aclocal.m4: Re-generate.
      	* configure: Re-generate.
      
      From-SVN: r265695
      22e05272
  20. Sep 21, 2018
    • Janne Blomqvist's avatar
      Use vectored writes when reporting errors and warnings. · edaaef60
      Janne Blomqvist authored
      When producing error and warning messages, libgfortran writes a
      message by using many system calls.  By using vectored writes (the
      POSIX writev function) when available and feasible to use without
      major surgery, we reduce the chance that output gets intermingled with
      other output to stderr.
      
      In practice, this is done by introducing a new function estr_writev in
      addition to the existing estr_write.  In order to use this, the old
      st_vprintf is removed, replaced by direct calls of vsnprintf, allowing
      more message batching.
      
      Regtested on x86_64-pc-linux-gnu.
      
      libgfortran/ChangeLog:
      
      2018-09-21  Janne Blomqvist  <jb@gcc.gnu.org>
      
      	* config.h.in: Regenerated.
      	* configure: Regenerated.
      	* configure.ac: Check for writev and sys/uio.h.
      	* libgfortran.h: Include sys/uio.h.
      	(st_vprintf): Remove prototype.
      	(struct iovec): Define if not available.
      	(estr_writev): New prototype.
      	* runtime/backtrace.c (error_callback): Use estr_writev.
      	* runtime/error.c (ST_VPRINTF_SIZE): Remove.
      	(estr_writev): New function.
      	(st_vprintf): Remove.
      	(gf_vsnprintf): New function.
      	(ST_ERRBUF_SIZE): New macro.
      	(st_printf): Use vsnprintf.
      	(os_error): Use estr_writev.
      	(runtime_error): Use vsnprintf and estr_writev.
      	(runtime_error_at): Likewise.
      	(runtime_warning_at): Likewise.
      	(internal_error): Use estr_writev.
      	(generate_error_common): Likewise.
      	(generate_warning): Likewise.
      	(notify_std): Likewise.
      	* runtime/pause.c (pause_string): Likewise.
      	* runtime/stop.c (report_exception): Likewise.
      	(stop_string): Likewise.
      	(error_stop_string): Likewise.
      
      From-SVN: r264487
      edaaef60
  21. Aug 14, 2018
  22. Aug 13, 2018
    • Janne Blomqvist's avatar
      Use getentropy() for seeding PRNG · d66d6d15
      Janne Blomqvist authored
      The getentropy function, found on Linux, OpenBSD, and recently also
      FreeBSD, can be used to get random bytes to initialize the PRNG.  It
      is similar to the traditional way of reading from /dev/urandom, but
      being a system call rather than a special file, it doesn't suffer from
      problems like running out of file descriptors, or failure when running
      in a container where /dev/urandom may not be available.
      
      Regtested on x86_64-pc-linux-gnu, Ok for trunk?
      
      2018-08-13  Janne Blomqvist  <jb@gcc.gnu.org>
      
      	* configure.ac: Check for getentropy.
      	* intrinsics/random.c (getosrandom): Use getentropy if available.
      	* config.h.in: Regenerated.
      	* configure: Regenerated.
      
      From-SVN: r263522
      d66d6d15
  23. Nov 17, 2017
    • Igor Tsimbalist's avatar
      Enable building libgfortran with Intel CET · 26724ef9
      Igor Tsimbalist authored
      libgfortran/
      	* acinclude.m4: Add enable.m4, cet.m4.
      	* Makefile.in: Regenerate.
      	* configure: Likewise.
      	* configure.ac: Set CET_FLAGS. Update AM_FCFLAGS,
      	AM_CFLAGS, CFLAGS.
      
      From-SVN: r254902
      26724ef9
  24. May 25, 2017
    • Thomas Koenig's avatar
      re PR libfortran/78379 (Processor-specific versions for matmul) · 1d5cf7fc
      Thomas Koenig authored
      2017-05-25  Thomas Koenig  <tkoenig@gcc.gnu.org>
      
      	PR libfortran/78379
      	* Makefile.am: Add generated/matmulavx128_*.c files.
      	Handle them for compiling and setting the right flags.
      	* acinclude.m4: Add tests for FMA3, FMA4 and AVX128.
      	* configure.ac: Call them.
      	* Makefile.in: Regenerated.
      	* config.h.in: Regenerated.
      	* configure: Regenerated.
      	* m4/matmul.m4:  Handle AMD chips by calling 128-bit AVX
      	versions which use FMA3 or FMA4.
      	* m4/matmulavx128.m4: New file.
              * generated/matmul_c10.c: Regenerated.
              * generated/matmul_c16.c: Regenerated.
              * generated/matmul_c4.c: Regenerated.
              * generated/matmul_c8.c: Regenerated.
              * generated/matmul_i1.c: Regenerated.
              * generated/matmul_i16.c: Regenerated.
              * generated/matmul_i2.c: Regenerated.
              * generated/matmul_i4.c: Regenerated.
              * generated/matmul_i8.c: Regenerated.
              * generated/matmul_r10.c: Regenerated.
              * generated/matmul_r16.c: Regenerated.
              * generated/matmul_r4.c: Regenerated.
              * generated/matmul_r8.c: Regenerated.
              * generated/matmulavx128_c10.c: New file.
              * generated/matmulavx128_c16.c: New file.
              * generated/matmulavx128_c4.c: New file.
              * generated/matmulavx128_c8.c: New file.
              * generated/matmulavx128_i1.c: New file.
              * generated/matmulavx128_i16.c: New file.
              * generated/matmulavx128_i2.c: New file.
              * generated/matmulavx128_i4.c: New file.
              * generated/matmulavx128_i8.c: New file.
              * generated/matmulavx128_r10.c: New file.
              * generated/matmulavx128_r16.c: New file.
              * generated/matmulavx128_r4.c: New file.
              * generated/matmulavx128_r8.c: New file.
      
      From-SVN: r248472
      1d5cf7fc
  25. Jan 19, 2017
    • Uros Bizjak's avatar
      re PR target/78478 (Compile Error for i386-rtems) · 7b32a8f6
      Uros Bizjak authored
      	PR target/78478
      	* config/ax_check_define.m4: New file.
      
      libgfortran/ChangeLog:
      
      	PR target/78478
      	* acinclude.m4: Include ../config/ax_check_define.m4
      	* configure.ac: Check if _SOFT_FLOAT is defined.
      	* configure.host (i?86 | x86_64): Use fpu-generic when
      	have_soft_float is set.
      	* configure: Regenerate.
      
      From-SVN: r244651
      7b32a8f6
  26. Jan 17, 2017
    • Jakub Jelinek's avatar
      re PR other/79046 (g++ -print-file-name=plugin uses full version number in path) · 3c36aa6b
      Jakub Jelinek authored
      	PR other/79046
      	* configure: Regenerated.
      config/
      	* acx.m4 (GCC_BASE_VER): New m4 function.
      	(ACX_TOOL_DIRS): Require GCC_BASE_VER, for
      	--with-gcc-major-version-only use just major number from BASE-VER.
      gcc/
      	* configure.ac: Add GCC_BASE_VER.
      	* Makefile.in (version): Use @get_gcc_base_ver@ instead of cat to get
      	version from BASE-VER file.
      	(CFLAGS-gcc.o): Add -DBASEVER=$(BASEVER_s).
      	(gcc.o): Depend on $(BASEVER).
      	* common.opt (dumpfullversion): New option.
      	* gcc.c (driver_handle_option): Handle OPT_dumpfullversion.
      	* doc/invoke.texi: Document -dumpfullversion.
      	* doc/install.texi: Document --with-gcc-major-version-only.
      	* configure: Regenerated.
      libatomic/
      	* configure.ac: Add GCC_BASE_VER.
      	* Makefile.am (gcc_version): Use @get_gcc_base_ver@ instead of cat to
      	get version from BASE-VER file.
      	* testsuite/Makefile.in: Regenerated.
      	* configure: Regenerated.
      	* Makefile.in: Regenerated.
      libgomp/
      	* configure.ac: Add GCC_BASE_VER.
      	* Makefile.am (gcc_version): Use @get_gcc_base_ver@ instead of cat to
      	get version from BASE-VER file.
      	* testsuite/Makefile.in: Regenerated.
      	* configure: Regenerated.
      	* Makefile.in: Regenerated.
      libgcc/
      	* configure.ac: Add GCC_BASE_VER.
      	* Makefile.in (version): Use @get_gcc_base_ver@ instead of cat to get
      	version from BASE-VER file.
      	* configure: Regenerated.
      libssp/
      	* configure.ac: Add GCC_BASE_VER.
      	* Makefile.am (gcc_version): Use @get_gcc_base_ver@ instead of cat to
      	get version from BASE-VER file.
      	* configure: Regenerated.
      	* Makefile.in: Regenerated.
      liboffloadmic/
      	* configure.ac: Add GCC_BASE_VER.
      	* Makefile.am (gcc_version): Use @get_gcc_base_ver@ instead of cat to
      	get version from BASE-VER file.
      	* aclocal.m4: Include ../config/acx.m4.
      	* configure: Regenerated.
      	* Makefile.in: Regenerated.
      libquadmath/
      	* configure.ac: Add GCC_BASE_VER.
      	* Makefile.am (gcc_version): Use @get_gcc_base_ver@ instead of cat to
      	get version from BASE-VER file.
      	* configure: Regenerated.
      	* Makefile.in: Regenerated.
      libmpx/
      	* configure.ac: Add GCC_BASE_VER.
      	* Makefile.am (gcc_version): Use @get_gcc_base_ver@ instead of cat to
      	get version from BASE-VER file.
      	* configure: Regenerated.
      	* Makefile.in: Regenerated.
      libada/
      	* configure.ac: Add GCC_BASE_VER.
      	* Makefile.in (version): Use @get_gcc_base_ver@ instead of cat to get
      	version from BASE-VER file.
      	* configure: Regenerated.
      lto-plugin/
      	* configure.ac: Add GCC_BASE_VER.
      	* Makefile.am (gcc_version): Use @get_gcc_base_ver@ instead of cat to
      	get version from BASE-VER file.
      	* configure: Regenerated.
      	* Makefile.in: Regenerated.
      libitm/
      	* configure.ac: Add GCC_BASE_VER.
      	* Makefile.am (gcc_version): Use @get_gcc_base_ver@ instead of cat to
      	get version from BASE-VER file.
      	* testsuite/Makefile.in: Regenerated.
      	* configure: Regenerated.
      	* Makefile.in: Regenerated.
      fixincludes/
      	* configure.ac: Add GCC_BASE_VER.
      	* Makefile.in (gcc_version): Use @get_gcc_base_ver@ instead of cat to
      	get version from BASE-VER file.
      	* configure: Regenerated.
      libcilkrts/
      	* configure.ac: Add GCC_BASE_VER.
      	* Makefile.am (gcc_version): Use @get_gcc_base_ver@ instead of cat to
      	get version from BASE-VER file.
      	* aclocal.m4: Include ../config/acx.m4.
      	* configure: Regenerated.
      	* Makefile.in: Regenerated.
      libcc1/
      	* configure.ac: Add GCC_BASE_VER.  For --with-gcc-major-version-only
      	use just major number from BASE-VER.
      	* configure: Regenerated.
      	* Makefile.in: Regenerated.
      libobjc/
      	* configure.ac: Add GCC_BASE_VER.
      	* Makefile.in (gcc_version): Use @get_gcc_base_ver@ instead of cat to
      	get version from BASE-VER file.
      	* configure: Regenerated.
      libstdc++-v3/
      	* configure.ac: Add GCC_BASE_VER.
      	* fragment.am (gcc_version): Use @get_gcc_base_ver@ instead of cat to
      	get version from BASE-VER file.
      	* po/Makefile.in: Regenerated.
      	* libsupc++/Makefile.in: Regenerated.
      	* testsuite/Makefile.in: Regenerated.
      	* src/Makefile.in: Regenerated.
      	* configure: Regenerated.
      	* Makefile.in: Regenerated.
      	* include/Makefile.in: Regenerated.
      	* doc/Makefile.in: Regenerated.
      	* python/Makefile.in: Regenerated.
      	* src/c++11/Makefile.in: Regenerated.
      	* src/c++98/Makefile.in: Regenerated.
      	* src/filesystem/Makefile.in: Regenerated.
      libvtv/
      	* configure.ac: Add GCC_BASE_VER.
      	* Makefile.am (gcc_version): Use @get_gcc_base_ver@ instead of cat to
      	get version from BASE-VER file.
      	* testsuite/Makefile.in: Regenerated.
      	* configure: Regenerated.
      	* Makefile.in: Regenerated.
      libsanitizer/
      	* configure.ac: Add GCC_BASE_VER.
      	* Makefile.am (gcc_version): Use @get_gcc_base_ver@ instead of cat to
      	get version from BASE-VER file.
      	* libbacktrace/Makefile.in: Regenerated.
      	* interception/Makefile.in: Regenerated.
      	* asan/Makefile.in: Regenerated.
      	* ubsan/Makefile.in: Regenerated.
      	* configure: Regenerated.
      	* sanitizer_common/Makefile.in: Regenerated.
      	* lsan/Makefile.in: Regenerated.
      	* Makefile.in: Regenerated.
      	* tsan/Makefile.in: Regenerated.
      libgfortran/
      	* configure.ac: Add GCC_BASE_VER.
      	* Makefile.am (gcc_version): Use @get_gcc_base_ver@ instead of cat to
      	get version from BASE-VER file.
      	* configure: Regenerated.
      	* Makefile.in: Regenerated.
      
      From-SVN: r244521
      3c36aa6b
  27. Dec 12, 2016
    • Rainer Orth's avatar
      Disable hwcaps on libgfortran · 66dbcf2d
      Rainer Orth authored
      	libgfortran:
      	* configure.ac: Call GCC_CHECK_LINKER_HWCAP.
      	* Makefile.am (libgfortran_la_LDFLAGS): Add HWCAP_LDFLAGS.
      	* aclocal.m4: Regenerate.
      	* configure: Regenerate.
      	* Makefile.in: Regenerate.
      
      	config:
      	* hwcaps.m4: New file.
      
      	libitm:
      	* acinclude.m4 (LIBITM_CHECK_LINKER_FEATURES): Remove.
      	* aclocal.m4: Regenerate.
      	* configure.ac: Call GCC_CHECK_LINKER_HWCAP instead of
      	LIBITM_CHECK_LINKER_HWCAP.
      
      From-SVN: r243552
      66dbcf2d
  28. Dec 03, 2016
    • Thomas Koenig's avatar
      re PR libfortran/78379 (Processor-specific versions for matmul) · 31cfd832
      Thomas Koenig authored
      2016-12-03  Thomas Koenig  <tkoenig@gcc.gnu.org>
      
              PR fortran/78379
              * config/i386/cpuinfo.c:  Move denums for processor vendors,
              processor type, processor subtypes and declaration of
              struct __processor_model into
              * config/i386/cpuinfo.h:  New header file.
              * Makefile.am:  Add dependence of m4/matmul_internal_m4 to
              mamtul files..
              * Makefile.in:  Regenerated.
              * acinclude.m4:  Check for AVX, AVX2 and AVX512F.
              * config.h.in:  Add HAVE_AVX, HAVE_AVX2 and HAVE_AVX512F.
              * configure:  Regenerated.
              * configure.ac:  Use checks for AVX, AVX2 and AVX_512F.
              * m4/matmul_internal.m4:  New file. working part of matmul.m4.
              * m4/matmul.m4:  Implement architecture-specific switching
              for AVX, AVX2 and AVX512F by including matmul_internal.m4
              multiple times.
              * generated/matmul_c10.c: Regenerated.
              * generated/matmul_c16.c: Regenerated.
              * generated/matmul_c4.c: Regenerated.
              * generated/matmul_c8.c: Regenerated.
              * generated/matmul_i1.c: Regenerated.
              * generated/matmul_i16.c: Regenerated.
              * generated/matmul_i2.c: Regenerated.
              * generated/matmul_i4.c: Regenerated.
              * generated/matmul_i8.c: Regenerated.
              * generated/matmul_r10.c: Regenerated.
              * generated/matmul_r16.c: Regenerated.
              * generated/matmul_r4.c: Regenerated.
              * generated/matmul_r8.c: Regenerated.
      
      From-SVN: r243219
      31cfd832
  29. Aug 29, 2016
  30. Aug 31, 2015
  31. Aug 29, 2015
    • Francois-Xavier Coudert's avatar
      acinclude.m4: Remove LIBGFOR_CHECK_ATTRIBUTE_DLLEXPORT. · 4879fba9
      Francois-Xavier Coudert authored
      	* acinclude.m4: Remove LIBGFOR_CHECK_ATTRIBUTE_DLLEXPORT.
      	* configure.ac: Remove checks for strcasestr, execl, close,
      	getrlimit, readlink, getppid, powl, erfl, j0l, j1l, y0l, y1l,
      	tgammal, and lgammal.
      	* config.h.in: Regenerate.
      	* configure: Regenerate.
      
      From-SVN: r227319
      4879fba9
  32. Aug 28, 2015
  33. Aug 23, 2015
    • Francois-Xavier Coudert's avatar
      re PR libfortran/54572 (Use libbacktrace library) · ad4f95e3
      Francois-Xavier Coudert authored
      	PR libfortran/54572
      
      	* Makefile.def: Make libgfortran depend on libbacktrace.
      	* Makefile.in: Regenerate.
      
      	* config-lang.in: Add libbacktrace to target_libs.
      
      	* Makefile.am (libgfortran_la_LDFLAGS): Link in libbacktrace.
      	(AM_CPPFLAGS): Add libbacktrace directories to include paths.
      	* Makefile.in: Regenerate.
      	* aclocal.m4: Regenerate.
      	* config.h.in: Regenerate.
      	* configure: Regenerate.
      	* configure.ac: Remove checks for strtok_r, wait, execve, pipe,
      	and dup2. Remove call to GCC_CHECK_UNWIND_GETIPINFO.
      	* libgfortran.h (full_exe_path, find_addr2line, backtrace): Remove
      	prototypes.
      	(show_backtrace): Add prototype.
      	* runtime/backtrace.c: Rework file entirely.
      	* runtime/compile_options.c (backtrace_handler): Rename backtrace
      	to show_backtrace.
      	(maybe_find_addr2line): Remove function.
      	(set_options): Remove call to maybe_find_addr2line.
      	* runtime/error.c (sys_abort): Rename backtrace to show_backtrace.
      	* runtime/main.c (store_exe_path): Empty function body.
      	(full_exe_path, gfstrtok_r, find_addr2line): Remove functions.
      	(cleanup): Don't free removed variables.
      	* runtime/minimal.c (full_exe_path): Remove function.
      	(set_args): Don't set exe_path.
      
      	* gfortran.dg/backtrace_1.f90: New test.
      
      From-SVN: r227106
      ad4f95e3
  34. Nov 28, 2014
    • Bernd Schmidt's avatar
      Add support for a minimal version of libgfortran for accelerator targets. · ee95f928
      Bernd Schmidt authored
      	* Makefile.am (AM_CFLAGS): Add -DLIBGFOR_MINIMAL if LIBGFOR_MINIMAL.
              (gfor_io_src, gfor_heper_src, gfor_src): Split into minimal and
              always included sources.
              * Makefile.in: Regenerate.
              * configure.ac (LIBGFOR_MINIMAL): New AM_CONDITIONAL.
              * configure: Regenerate.
              * caf/single.c (caf_runtime_error): Don't print messages if
              LIBGFOR_MINIMAL.
              * runtime/compile_options.c (fatal_error_in_progress,
              show_signal, backtrace_handler, maybe_find_addr2line): Guard with
              !defined LIBGFOR_MINIMAL.
              (set_options): Likewise for the backtrace code.
              * runtime/minimal.c: New file.
      
      From-SVN: r218170
      ee95f928
  35. Nov 24, 2014
  36. Nov 13, 2014
    • Janne Blomqvist's avatar
      PR 60324 Unbounded stack allocations in libgfortran. · 581d2326
      Janne Blomqvist authored
      2014-11-13  Janne Blomqvist  <jb@gcc.gnu.org>
      
      	PR libfortran/60324
      	* configure: Regenerated.
      	* configure.ac (AM_CFLAGS): Add Werror=vla.
      	* libgfortran.h (gfc_alloca): Remove macro.
      	(fc_strdup_notrim): New prototype.
      	* intrinsics/access.c (access_func): Use fc_strdup rather than
      	stack allocation.
      	* intrinsics/chdir.c (chdir_i4_sub): Likewise.
      	(chdir_i8_sub): Likewise.
      	* intrinsics/chmod.c (chmod_internal): New function, move logic
      	here.
      	(chmod_func): Call chmod_internal.
      	* intrinsics/env.c (getenv): Use fc_strdup rather than stack
      	allocation.
      	(get_environment_variable_i4): Likewise.
      	* intrinsics/execute_command_line.c (execute_command_line):
      	Likewise.
      	* intrinsics/hostnm.c (hostnm_0): New function, use static buffer
      	rather than VLA.
      	(hostnm_i4_sub): Call hostnm_0.
      	(hostnm_i8_sub): Likewise.
      	(hostnm): Likewise.
      	* intrinsics/link.c (link_internal): New function, use fc_strdup
      	rather than stack allocation.
      	(link_i4_sub): Call link_internal.
      	(link_i8_sub): Likewise.
      	(link_i4): Likewise.
      	(link_i8): Likewise.
      	* intrinsics/perror.c (perror_sub): Use fc_strdup rather than
      	stack allocation.
      	* intrinsics/random.c (random_seed_i4): Use static buffer rather
      	than VLA, use _Static_assert to make sure it's big enough.
      	* intrinsics/rename.c (rename_internal): New function, use
      	fc_strdup rather than stack allocation.
      	(rename_i4_sub): Call rename_internal.
      	(rename_i8_sub): Likewise.
      	(rename_i4): Likewise.
      	(rename_i8): Likewise.
      	* intrinsics/stat.c (stat_i4_sub_0): Use fc_strdup rather than
      	stack allocation.
      	(stat_i8_sub_0): Likewise.
      	* intrinsics/symlink.c (symlnk_internal): New function, use
      	fc_strdup rather than stack allocation.
      	(symlnk_i4_sub): Call symlnk_internal.
      	(symlnk_i8_sub): Likewise.
      	(symlnk_i4): Likewise.
      	(symlnk_i8): Likewise.
      	* intrinsics/system.c (system_sub): Use fc_strdup rather than
      	stack allocation.
      	* intrinsics/unlink.c (unlink_i4_sub): Likewise.
      	* io/file_pos.c (READ_CHUNK): Make it a macro rather than variable.
      	* io/list_read.c (nml_get_obj_data): Use fixed stack buffer, fall
      	back to xmalloc/free for large sizes.
      	* io/read.c (read_f): Likewise.
      	* io/transfer.c (MAX_READ): Make it a macro rather than variable.
      	(WRITE_CHUNK): Likewise.
      	* io/write_float.def (write_float): Use fixed stack buffer, fall
      	back to xmalloc/free for large sizes.
      	* runtime/string.c (fc_strdup_notrim): New function.
      
      From-SVN: r217480
      581d2326
  37. Nov 10, 2014
    • Janne Blomqvist's avatar
      PR 47007 and 61847 Locale failures in libgfortran. · 9cbecd06
      Janne Blomqvist authored
      2014-11-10  Janne Blomqvist  <jb@gcc.gnu.org>
      
      	PR libfortran/47007
      	PR libfortran/61847
      	* config.h.in: Regenerated.
      	* configure: Regenerated.
      	* configure.ac (AC_CHECK_HEADERS_ONCE): Check for xlocale.h.
      	(AC_CHECK_FUNCS_ONCE): Check for newlocale, freelocale, uselocale,
      	strerror_l.
      	* io/io.h (locale.h): Include.
      	(xlocale.h): Include if present.
      	(c_locale): New variable.
      	(old_locale): New variable.
      	(old_locale_ctr): New variable.
      	(old_locale_lock): New variable.
      	(st_parameter_dt): Add old_locale member.
      	* io/transfer.c (data_transfer_init): Set locale to "C" if doing
      	formatted transfer.
      	(finalize_transfer): Reset locale to previous.
      	* io/unit.c (c_locale): New variable.
      	(old_locale): New variable.
      	(old_locale_ctr): New variable.
      	(old_locale_lock): New variable.
      	(init_units): Init c_locale, init old_locale_lock.
      	(close_units): Free c_locale.
      	* runtime/error.c (locale.h): Include.
      	(xlocale.h): Include if present.
      	(gf_strerror): Use strerror_l if available. Reset locale to
      	LC_GLOBAL_LOCALE for strerror_r branch.
      
      2014-11-10  Janne Blomqvist  <jb@gcc.gnu.org>
      
      	PR libfortran/47007
      	PR libfortran/61847
      	* gfortran.texi: Add note about locale issues to thread-safety
      	section.
      
      From-SVN: r217273
      9cbecd06
Loading