Skip to content
Snippets Groups Projects
  1. Jun 29, 2022
    • Jakub Jelinek's avatar
      libgfortran: Fix up LIBGFOR_CHECK_FLOAT128 [PR106137] · c022c0de
      Jakub Jelinek authored
      My recent gfortran + libgfortran patch apparently broke (some?) aarch64
      builds.  While it is desirable to use just _Float128 rather than __float128,
      we only want to use it (and e.g. define HAVE_FLOAT128) on targets where
      _Float128 is supported and long double isn't IEEE quad precision.
      Which is targets that support __float128 type which we have been testing
      for before - _Float128 is supported on those targets and on targets where
      long double is IEEE quad precision.
      
      So, the following patch restores check for whether __float128 is supported
      into the LIBGFOR_CHECK_FLOAT128 check which determines whether
      HAVE_FLOAT128 is defined or whether to use libquadmath, so that e.g. on
      aarch64 where long double is IEEE quad we don't do that.
      
      2022-06-29  Jakub Jelinek  <jakub@redhat.com>
      
      	PR bootstrap/106137
      	* acinclude.m4 (LIBGFOR_CHECK_FLOAT128): Adjust comment.
      	Also test for __float128.
      	(HAVE_FLOAT128): Adjust description.
      	* config.h.in: Regenerated.
      	* configure: Regenerated.
      c022c0de
  2. 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
  3. 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
  4. 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
  5. 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
  6. 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
  7. 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
  8. 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
  9. 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
  10. Aug 14, 2018
  11. 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
  12. 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
  13. 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
  14. Aug 31, 2015
  15. 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
  16. 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
  17. 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
  18. Oct 20, 2014
    • Janne Blomqvist's avatar
      PR 63589 Fix splitting of PATH in find_addr2line. · 70480968
      Janne Blomqvist authored
      2014-10-20  Janne Blomqvist  <jb@gcc.gnu.org>
      
      	PR libfortran/63589
      	* configure.ac: Check for strtok_r.
      	* runtime/main.c (gfstrtok_r): Fallback implementation of
      	strtok_r.
      	(find_addr2line): Use strtok_r to split PATH.
      	* config.h.in: Regenerated.
      	* configure: Regenerated.
      
      From-SVN: r216449
      70480968
  19. Jul 05, 2014
  20. May 22, 2014
  21. Mar 18, 2014
  22. Nov 10, 2013
    • Janne Blomqvist's avatar
      Set close-on-exec flag when opening files. · c20fdb91
      Janne Blomqvist authored
      2013-11-10  Janne Blomqvist  <jb@gcc.gnu.org>
      
      	* configure.ac: Check presence of mkostemp.
      	* io/unix.c (set_close_on_exec): New function.
      	(tempfile_open): Use mkostemp and O_CLOEXEC if available, fallback
      	to calling set_close_on_exec.
      	(regular_file): Add O_CLOEXEC to flags if defined.
      	(open_external): Call set_close_on_exec if O_CLOEXEC is not
      	defined.
      	* config.h.in: Regenerated.
      	* configure: Regenerated.
      	* Makefile.in: Regenerated.
      	* aclocal.m4: Regenerated.
      
      From-SVN: r204654
      c20fdb91
  23. Jul 21, 2013
    • Tobias Burnus's avatar
      re PR libfortran/35862 ([F2003] Implement new rounding modes for run time) · 82a4f54c
      Tobias Burnus authored
      
      2013-07-21  Tobias Burnus  <burnus@net-b.de>
      
              PR fortran/35862
              * libgfortran.h (GFC_FPE_DOWNWARD, GFC_FPE_TONEAREST,
              GFC_FPE_TOWARDZERO, GFC_FPE_UPWARD): New defines.
      
      2013-07-21  Tobias Burnus  <burnus@net-b.de>
      
              PR fortran/35862
              * libgfortran.h (set_fpu_rounding_mode,
              get_fpu_rounding_mode): New prototypes.
              * config/fpu-387.h (set_fpu_rounding_mode,
              get_fpu_rounding_mode): New functions.
              * config/fpu-aix.h (set_fpu_rounding_mode,
              get_fpu_rounding_mode): Ditto.
              * config/fpu-generic.h (set_fpu_rounding_mode,
              get_fpu_rounding_mode): Ditto.
              * config/fpu-glibc.h (set_fpu_rounding_mode,
              get_fpu_rounding_mode): Ditto.
              * config/fpu-sysv.h (set_fpu_rounding_mode,
              get_fpu_rounding_mode): Ditto.
              * configure.ac: Check for fp_rnd and fp_rnd_t.
              * io/io.h (enum unit_round): Use GFC_FPE_* for the value.
              * io/read.c (convert_real): Set FP ronding mode.
              * Makefile.in: Regenerate.
              * aclocal.m4: Regenerate.
              * config.h.in: Regenerate.
              * configure: Regenerate.
      
      2013-07-21  Tobias Burnus  <burnus@net-b.de>
      
              PR fortran/35862
              * gfortran.dg/round_4.f90: New.
      
      
      Co-Authored-By: default avatarUros Bizjak <ubizjak@gmail.com>
      
      From-SVN: r201093
      82a4f54c
  24. Jun 24, 2013
    • Tobias Burnus's avatar
      configure.ac: Check for fp_except and fp_except_t. · 7ae346c3
      Tobias Burnus authored
      2013-06-24  Tobias Burnus  <burnus@net-b.de>
      
              * configure.ac: Check for fp_except and fp_except_t.
              * config/fpu-sysv.h: Conditionally use either type.
              * configure: Regenerate.
              * config.h.in: Regenerate.
      
      From-SVN: r200360
      7ae346c3
  25. Jun 17, 2013
    • Tobias Burnus's avatar
      gfortran.h (gfc_option_t): Add fpe_summary. · fa86f4f9
      Tobias Burnus authored
      2013-06-17  Tobias Burnus  <burnus@net-b.de>
      
              * gfortran.h (gfc_option_t): Add fpe_summary.
              * gfortran.texi (_gfortran_set_options): Update.
              * invoke.texi (-ffpe-summary): Add doc.
              * lang.opt (ffpe-summary): Add flag.
              * options.c (gfc_init_options, gfc_handle_option): Handle it.
              (gfc_handle_fpe_option): Renamed from gfc_handle_fpe_trap_option,
              also handle fpe_summary.
              * trans-decl.c (create_main_function): Update
              _gfortran_set_options call.
      
      2013-06-17  Tobias Burnus  <burnus@net-b.de>
      
              * libgfortran.h (compile_options_t) Add fpe_summary.
              (get_fpu_except_flags): New prototype.
              * runtime/compile_options.c (set_options, init_compile_options):
              Handle fpe_summary.
              * runtime/stop.c (report_exception): New function.
              (stop_numeric, stop_numeric_f08, stop_string, error_stop_string,
              error_stop_numeric): Call it.
              * config/fpu-387.h (get_fpu_except_flags): New function.
              * config/fpu-aix.h (get_fpu_except_flags): New function.
              * config/fpu-generic.h (get_fpu_except_flags): New function.
              * config/fpu-glibc.h (get_fpu_except_flags): New function.
              * config/fpu-glibc.h (get_fpu_except_flags): New function.
              * configure.ac: Check for fpxcp.h.
              * configure: Regenerate.
              * config.h.in: Regenerate.
      
      From-SVN: r200147
      fa86f4f9
  26. Feb 19, 2013
  27. Oct 06, 2012
  28. May 23, 2012
    • Tobias Burnus's avatar
      re PR libfortran/53444 (Accommodate non-compliant strerror_r() on VxWorks.) · 4179e59a
      Tobias Burnus authored
      2012-05-23  Tobias Burnus  <burnus@net-b.de>
      
              PR libfortran/53444
              * acinclude.m4 (LIBGFOR_CHECK_STRERROR_R): Add configure checks
              * for
              two- and three-argument versions of strerror_r.
              * configure.ac (LIBGFOR_CHECK_STRERROR_R): Use it.
              * runtime/error.c (gf_strerror): Handle two-argument version
              of strerror_r.
              * config.h.in: Regenerate.
              * configure: Regenerate.
      
      From-SVN: r187796
      4179e59a
  29. May 05, 2012
    • Janne Blomqvist's avatar
      Fix handling of temporary files. · 68ee9c08
      Janne Blomqvist authored
      2012-05-05  Janne Blomqvist  <jb@gcc.gnu.org>
      
              * gfortran.texi (GFORTRAN_TMPDIR): Rename to TMPDIR, explain
              algorithm for choosing temp directory.
      
      
      2012-05-05  Janne Blomqvist  <jb@gcc.gnu.org>
      
              * config.h.in: Regenerated.
              * configure: Regenerated.
              * configure.ac: Add checks for getegid and __secure_getenv.
              * io/unix.c (P_tmpdir): Fallback definition for macro.
              (tempfile_open): New function.
              (tempfile): Use secure_getenv, call tempfile_open to try each
              directory in turn.
              * libgfortran.h (DEFAULT_TMPDIR): Remove macro.
              (secure_getenv): New macro/prototype.
              * runtime/environ.c (secure_getenv): New function.
              (variable_table): Rename GFORTRAN_TMPDIR to TMPDIR.
              * runtime/main.c (find_addr2line): Use secure_getenv.
      
      From-SVN: r187190
      68ee9c08
  30. Apr 02, 2012
    • Tristan Gingold's avatar
      math.m4 (GCC_CHECK_MATH_FUNC): Remove if-present argument. · f38a14ca
      Tristan Gingold authored
      config/
      2012-04-02  Tristan Gingold  <gingold@adacore.com>
      
      	* math.m4 (GCC_CHECK_MATH_FUNC): Remove if-present
      	argument.  Define the variable.
      
      libgfortran/
      2012-04-02  Tristan Gingold  <gingold@adacore.com>
      
      	* configure.ac: Use new version of GCC_CHECK_MATH_FUNC.
      	* configure: Regenerate
      	* config.h.in: Regenerate.
      
      From-SVN: r186063
      f38a14ca
  31. Mar 27, 2012
  32. Jan 20, 2012
  33. Jan 12, 2012
    • Janne Blomqvist's avatar
      Remove configure check for unused fdopen. · 869eea24
      Janne Blomqvist authored
      2012-01-12  Janne Blomqvist  <jb@gcc.gnu.org>
      
      	* configure.ac: Remove check for fdopen.
      	* runtime/backtrace.c (CAN_PIPE): Fix comment, remove check for
      	fdopen.
      	* configure: Regenerated.
      	* config.h.in: Regenerated.
      
      From-SVN: r183124
      869eea24
  34. Nov 09, 2011
    • Janne Blomqvist's avatar
      Configure cleanup. · 74544378
      Janne Blomqvist authored
      2011-11-09  Janne Blomqvist  <jb@gcc.gnu.org>
      
      	* configure.ac (AC_STDC_HEADERS): Remove.
      	(AC_HEADER_TIME): Remove.
      	(AC_HAVE_HEADERS, AC_CHECK_HEADERS): Move into a single invocation
      	of AC_CHECK_HEADERS_ONCE, don't check for presence of C89 headers.
      	(AC_CHECK_MEMBERS): Use single invocation.
      	(AC_CHECK_FUNCS): Move into single invocation of
      	AC_CHEC_FUNCS_ONCE, don't check for presence of C89 functions.
      	* config.h.in: Regenerate.
      	* configure: Regenerate.
      	* intrinsics/clock.c: Include time.h.
      	(mclock): Assume clock() is present.
      	(mclock8): Likewise.
      	* intrinsics/ctime.c (strctime): Assume strftime is present.
      	(fdate): Assume time() is present.
      	(fdate_sub): Likewise.
      	(ctime): Likewise.
      	* intrinsics/date_and_time.c: Don't provide abs macro.
      	(HAVE_NO_DATE_TIME): Remove code related to macro which is never
      	set.
      	* intrinsics/execute_command_line.c: Assume stdlib.h is present.
      	* intrinsics/exit.c: Likewise.
      	* intrinsics/extends_type_of.c: Likewise.
      	* intrinsics/gerror.c: Assume strerror() is present.
      	* intrinsics/kill.c: Assume signal.h is present.
      	* intrinsics/malloc.c: Assume stdlib.h is present.
      	* intrinsics/move_alloc.c: Likewise.
      	* intrinsics/perror.c: Assume perror() is present.
      	* intrinsics/signal.c: Assume signal.h is present.
      	* intrinsics/stat.c: Assume stdlib.h is present.
      	* intrinsics/system.c: Likewise.
      	* intrinsics/time.c: Include time.h, assume time() is present.
      	* intrinsics/time_1.h: Conditionally include sys/time.h,
      	unconditionally time.h.
      	(gf_cputime): Do division in double, fallback using clock().
      	(gf_gettime): Assume time() is present.
      	* intrinsics/umask.c: Assume stdlib.h is present.
      	* runtime/backtrace.c: Likewise.
      	* runtime/compile_options.c: Assume signal.h is present, assume
      	C89 signals are present.
      	* runtime/error.c: Assume signal.h and stdlib.h are present.
      
      From-SVN: r181227
      74544378
    • Tobias Burnus's avatar
      configure.ac: Make more cross-compile friendly. · 60858d8a
      Tobias Burnus authored
      2011-11-09  Tobias Burnus  <burnus@net-b.de>
      
              * configure.ac: Make more cross-compile friendly.
              * Makefile.in: Regenerate.
              * aclocal.m4: Regenerate.
              * config.h.in: Regenerate.
              * configure: Regenerate.
      
      From-SVN: r181212
      60858d8a
    • Janne Blomqvist's avatar
      PR 46686 Implement backtrace with _Unwind_Backtrace from libgcc. · 1ff101ff
      Janne Blomqvist authored
      2011-11-09  Janne Blomqvist  <jb@gcc.gnu.org>
      
      	PR fortran/46686
      	* configure.ac: Don't check execinfo.h, backtrace,
      	backtrace_symbols_fd. Check execve instead of execvp. Call
      	GCC_CHECK_UNWIND_GETIPINFO.
      	* runtime/backtrace.c: Don't include unused headers, include
      	limits.h and unwind.h.
      	(CAN_FORK): Check execve instead of execvp.
      	(GLIBC_BACKTRACE): Remove.
      	(bt_header): Conform to gdb backtrace format.
      	(struct bt_state): New struct.
      	(trace_function): New function.
      	(show_backtrace): Use _Unwind_Backtrace from libgcc instead of
      	glibc backtrace functions.
      	* Makefile.in: Regenerated.
      	* aclocal.m4: Regenerated.
      	* config.h.in: Regenerated.
      	* configure: Regenerated.
      
      From-SVN: r181209
      1ff101ff
  35. Nov 02, 2011
    • Rainer Orth's avatar
      Move gthr to toplevel libgcc · 5d1c8e77
      Rainer Orth authored
      	gcc:
      	* gthr-single.h, gthr.h: Move to ../libgcc.
      	* gthr-aix.h: Move to ../libgcc/config/rs6000.
      	* gthr-dce.h: Move to ../libgcc/config/pa.
      	* gthr-lynx.h: Move to ../libgcc/config.
      	* gthr-mipssde.h: Move to ../libgcc/config/mips.
      	* gthr-posix.h: Move to ../libgcc/config.
      	* gthr-rtems.h: Likewise.
      	* gthr-tpf.h: Move to ../libgcc/config/s390.
      	* gthr-vxworks.h: Move to ../libgcc/config.
      	* gthr-win32.h: Move to ../libgcc/config/i386.
      	* configure.ac (gthread_flags): Remove
      	(gthr-default.h): Don't create.
      	(thread_file): Don't substitute.
      	* configure: Regenerate.
      	* Makefile.in (GCC_THREAD_FILE): Remove.
      	(GTHREAD_FLAGS): Remove.
      	(libgcc.mvars): Remove GTHREAD_FLAGS.
      	* config/t-vxworks (EXTRA_HEADERS): Remove.
      
      	gcc/po:
      	* EXCLUDES (gthr-aix.h, gthr-dce.h, gthr-posix.c, gthr-posix.h)
      	(gthr-rtems.h, gthr-single.h, gthr-solaris.h, gthr-vxworks.h)
      	(gthr-win32.h, gthr.h): Remove.
      
      	libgcc:
      	* gthr-single.h, gthr.h: New files.
      	* config/gthr-lynx.h, config/gthr-posix.h., config/gthr-rtems.h,
      	config/gthr-vxworks.h, config/i386/gthr-win32.h,
      	config/mips/gthr-mipssde.h, config/pa/gthr-dce.h,
      	config/rs6000/gthr-aix.h, config/s390/gthr-tpf.h: New files.
      	* config/i386/gthr-win32.c: Include "gthr-win32.h".
      	* configure.ac (thread_header): New variable.
      	Set it depending on target_thread_file.
      	(gthr-default.h): Link from $thread_header.
      	* configure: Regenerate.
      	* Makefile.in (LIBGCC2_CFLAGS): Remove $(GTHREAD_FLAGS).
      
      	libgfortran:
      	* Makefile.am (AM_CPPFLAGS): Add
      	-I$(srcdir)/$(MULTISRCTOP)../libgcc, -I$(MULTIBUILDTOP)../libgcc.
      	* Makefile.in: Regenerate.
      	* acinclude.m4 (LIBGFOR_CHECK_GTHR_DEFAULT): Remove.
      	* configure.ac (LIBGFOR_CHECK_GTHR_DEFAULT): Likewise.
      	* configure: Regenerate.
      	* config.h.in: Regenerate.
      
      	libobjc:
      	* Makefile.in (INCLUDES): Add -I$(MULTIBUILDTOP)../libgcc.
      	* configure.ac (target_thread_file, HAVE_GTHR_DEFAULT): Remove.
      	* configure: Regenerate.
      	* config.h.in: Regenerate.
      
      	libstdc++-v3:
      	* acinclude.m4 (GLIBCXX_CONFIGURE): Determine and substitute
      	toplevel_builddir.
      	(GLIBCXX_ENABLE_THREADS): Remove glibcxx_thread_h,
      	HAVE_GTHR_DEFAULT, enable_thread.
      	(GLIBCXX_CHECK_GTHREADS): Reflect gthr move to libgcc.
      	* include/Makefile.am (thread_host_headers): Remove
      	${host_builddir}/gthr-tpf.h.
      	(${host_builddir}/gthr.h): Reflect gthr move to libgcc.
      	Use $<.
      	(${host_builddir}/gthr-single.h): Likewise.
      	(${host_builddir}/gthr-posix.h): Likewise.
      	(${host_builddir}/gthr-tpf.h): Remove.
      	(${host_builddir}/gthr-default.h): Likewise.
      	* configure, config.h.in: Regenerate.
      	* Makefile.in, doc/Makefile.in, include/Makefile.in,
      	libsupc++/Makefile.in, po/Makefile.in, python/Makefile.in,
      	src/Makefile.intestsuite/Makefile.in: Regenerate.
      
      From-SVN: r180776
      5d1c8e77
  36. May 22, 2011
Loading