Skip to content
Snippets Groups Projects
  1. Jun 23, 2021
    • Kewen Lin's avatar
      rs6000: Fix typos in float128 ISA3.1 support · 47749c43
      Kewen Lin authored
      The recent float128 ISA3.1 support (r12-1340) has some typos,
      it makes the libgcc build fail if it's with one binutils
      (assembler) which doesn't support Power10 insns.  The error
      looks like:
      
      Error: invalid switch -mpower10
      Error: unrecognized option -mpower10
      ... [...libgcc/shared-object.mk:14: float128-p10.o] Error 1
      
      What this patch does are:
        - fix test target typo libgcc_cv_powerpc_3_1_float128_hw
          (written wrongly as libgcc_cv_powerpc_float128_hw, so it's
           going to build ISA3.1 stuffs just when detecting ISA3.0).
        - fix test used for libgcc_cv_powerpc_3_1_float128_hw check.
        - fix test option used for libgcc_cv_powerpc_3_1_float128_hw
          check.
        - remove the ISA3.1 related contents from t-float128-hw.
        - add new macro FLOAT128_HW_INSNS_ISA3_1 to differentiate
          ISA3.1 content from ISA3.0 part in ifunc support.
      
      Bootstrapped/regtested on:
        - powerpc64le-linux-gnu P10
        - powerpc64le-linux-gnu P9 (w/i and w/o p10 supported as)
        - powerpc64-linux-gnu P8 (w/i and w/o p10 supported as)
      
      libgcc/ChangeLog:
      
      	* configure: Regenerate.
      	* configure.ac (test for libgcc_cv_powerpc_3_1_float128_hw): Fix
      	typos among the name, CFLAGS and the test.
      	* config/rs6000/t-float128-hw (fp128_3_1_hw_funcs, fp128_3_1_hw_src,
      	fp128_3_1_hw_static_obj, fp128_3_1_hw_shared_obj, fp128_3_1_hw_obj):
      	Remove.
      	* config/rs6000/t-float128-p10-hw (FLOAT128_HW_INSNS): Append
      	macro FLOAT128_HW_INSNS_ISA3_1.
      	(FP128_3_1_CFLAGS_HW): Fix option typo.
      	* config/rs6000/float128-ifunc.c (SW_OR_HW_ISA3_1): Guard this with
      	FLOAT128_HW_INSNS_ISA3_1.
      	(__floattikf_resolve): Likewise.
      	(__floatuntikf_resolve): Likewise.
      	(__fixkfti_resolve): Likewise.
      	(__fixunskfti_resolve): Likewise.
      	(__floattikf): Likewise.
      	(__floatuntikf): Likewise.
      	(__fixkfti): Likewise.
      	(__fixunskfti): Likewise.
      47749c43
  2. Jun 09, 2021
    • Carl Love's avatar
      Conversions between 128-bit integer and floating point values. · 9090f480
      Carl Love authored
      The files fixkfti-sw.c and fixunskfti-sw.c are renamed versions of
      fixkfti.c and fixunskfti.c respectively to do the conversions in software.
      The function names in the files were updated with the rename as well as
      some white spaces fixes. The file float128-p10.c contains the functions
      for using the ISA 3.1 hardware instructions to perform the conversions.
      
      2021-06-08  Carl Love  <cel@us.ibm.com>
      
      gcc/ChangeLog
      
      	* config/rs6000/rs6000.c (__fixkfti, __fixunskfti, __floattikf,
      	__floatuntikf): Names changed to __fixkfti_sw, __fixunskfti_sw,
      	__floattikf_sw, __floatuntikf_sw respectively.
      	* config/rs6000/rs6000.md (floatti<mode>2, floatunsti<mode>2,
      	fix_trunc<mode>ti2, fixuns_trunc<mode>ti2): Add
      	define_insn for mode IEEE 128.
      
      gcc/testsuite/ChangeLog
      
      	* gcc.target/powerpc/fp128_conversions.c: New file.
      	* gcc.target/powerpc/int_128bit-runnable.c(vextsd2q,
      	vcmpuq, vcmpsq, vcmpequq, vcmpequq., vcmpgtsq, vcmpgtsq.
      	vcmpgtuq, vcmpgtuq.): Update scan-assembler-times.
      	(ppc_native_128bit): Remove dg-require-effective-target.
      
      libgcc/ChangeLog
      
      	* config.host: Add if test and set for
      	libgcc_cv_powerpc_3_1_float128_hw.
      	* config/rs6000/fixkfti.c: Renamed to fixkfti-sw.c.
      	Change calls of __fixkfti to __fixkfti_sw.
      	* config/rs6000/fixunskfti.c: Renamed to fixunskfti-sw.c.
      	Change calls of __fixunskfti to __fixunskfti_sw.
      	* config/rs6000/float128-p10.c (__floattikf_hw,
      	__floatuntikf_hw, __fixkfti_hw, __fixunskfti_hw): New file.
      	* config/rs6000/float128-ifunc.c (SW_OR_HW_ISA3_1): New macro.
      	(__floattikf_resolve, __floatuntikf_resolve, __fixkfti_resolve,
      	__fixunskfti_resolve): Add resolve functions.
      	(__floattikf, __floatuntikf, __fixkfti, __fixunskfti): New functions.
      	* config/rs6000/float128-sed (floattitf, __floatuntitf,
      	__fixtfti, __fixunstfti): Add editor commands to change names.
      	* config/rs6000/float128-sed-hw (__floattitf,
      	__floatuntitf, __fixtfti, __fixunstfti): Add editor commands to
      	change names.
      	* config/rs6000/floattikf.c: Renamed to floattikf-sw.c.
      	* config/rs6000/floatuntikf.c: Renamed to floatuntikf-sw.c.
      	* config/rs6000/quad-float128.h (__floattikf_sw,
      	__floatuntikf_sw, __fixkfti_sw, __fixunskfti_sw, __floattikf_hw,
      	__floatuntikf_hw, __fixkfti_hw, __fixunskfti_hw, __floattikf,
      	__floatuntikf, __fixkfti, __fixunskfti): New extern declarations.
      	* config/rs6000/t-float128 (floattikf, floatuntikf,
      	fixkfti, fixunskfti): Remove file names from fp128_ppc_funcs.
      	(floattikf-sw, floatuntikf-sw, fixkfti-sw, fixunskfti-sw): Add
      	file names to fp128_ppc_funcs.
      	* config/rs6000/t-float128-hw(fp128_3_1_hw_funcs,
      	fp128_3_1_hw_src, fp128_3_1_hw_static_obj, fp128_3_1_hw_shared_obj,
      	fp128_3_1_hw_obj): Add variables for ISA 3.1 support.
      	* config/rs6000/t-float128-p10-hw: New file.
      	* configure: Update script for isa 3.1 128-bit float support.
      	* configure.ac: Add check for 128-bit float hardware support.
      9090f480
  3. Mar 03, 2021
    • Martin Liska's avatar
      gcov: use mmap pools for KVP. · 00d79dc4
      Martin Liska authored
      gcc/ChangeLog:
      
      	PR gcov-profile/97461
      	* gcov-io.h (GCOV_PREALLOCATED_KVP): Remove.
      
      libgcc/ChangeLog:
      
      	PR gcov-profile/97461
      	* config.in: Regenerate.
      	* configure: Likewise.
      	* configure.ac: Check sys/mman.h header file
      	* libgcov-driver.c (struct gcov_kvp): Remove static
      	pre-allocated pool and use a dynamic one.
      	* libgcov.h (MMAP_CHUNK_SIZE): New.
      	(gcov_counter_add): Use mmap to allocate pool for struct
      	gcov_kvp.
      00d79dc4
  4. Oct 21, 2020
    • Douglas Rupp's avatar
      Introduce vxworks7r2 support for ppc and ppc64 · 17867980
      Douglas Rupp authored
      
      This change introduces support for the most recent versions
      of VxWorks on PowerPC targets, for both 32 and 64 bit thanks
      to a bi-arch setup.
      
      The system compilers are essentially configured as Linux
      toolchains with only a few specificities and we replicate
      that model here.
      
      The most visible specificities are the use of secureplt by
      default, the pre-definition of some macros that the system
      headers still rely on (_VX_CPU and _VX_CPU_FAMILY, for example),
      and of course some variations related to the so VxWorks typical
      kernel vs RTP mode distinction.
      
      In addition to the introduction of config.gcc and libgcc
      configuration chunks, much inspired by the linux ones, the
      change
      
      - Reworks rs6000/vxworks.h file to feature bits common to the
        Vx6 and Vx7 port then a separate section for each, where the
        Vx7 part is very short as we rely on the Linux definitions
        for most things.
      
      - Adjusts the CPU macro predefinitions in CPP_SPEC to resort
        to "_VX_CPU" instead of "CPU" for Vx7, to better match the
        more recent system headers expectations,
      
      - Adds a cpu definition case for e6500.
      
      - Changes to the use SUB3TARGET_OVERRIDE_OPTIONS instead of
        SUBSUBTARGET_OVERRIDE_OPTIONS for specifics, so we don't
        override the Linux's version of the latter for vx7.
      
      2020-10-20  Douglas Rupp  <rupp@adacore.com>
      
      gcc/
      	* config.gcc (powerpc*-wrs-vxworks7r*): New case.
      	* config/rs6000/vxworks.h: Rework to handle VxWorks7.
      	Refactor as common bits + vx6 vs vx7 ones. For the
      	latter, rely essentially on the Linux configuration
      	and adjust CPU to _VX_CPU in CPP_SPEC. Add a case
      	for e6500. Use SUB3TARGET_OVERRIDE_OPTIONS for specifics
      	to preserve the Linux SUBSUBTARGET_OVERRIDE_OPTIONS
      	for vx7.
      
      libgcc/
      	* config.host (powerpc*-wrs-vxworks7*): New case.
      	* configure.ac: Handle powerpc*-*-vxworks7* as
      	powerpc*-*-linux* for ppc-fp_type.
      	* configure: Regenerate.
      
      Co-authored-by: default avatarOlivier Hainque <hainque@adacore.com>
      17867980
  5. Jun 15, 2020
    • Max Filippov's avatar
      gcc: xtensa: add -mabi option for call0/windowed ABI · 8c8eb949
      Max Filippov authored
      2020-06-15  Max Filippov  <jcmvbkbc@gmail.com>
      gcc/
      	* config/xtensa/elf.h (ASM_SPEC, LINK_SPEC): Pass ABI switch to
      	assembler/linker.
      	* config/xtensa/linux.h (ASM_SPEC, LINK_SPEC): Ditto.
      	* config/xtensa/uclinux.h (ASM_SPEC, LINK_SPEC): Ditto.
      	* config/xtensa/xtensa.c (xtensa_option_override): Initialize
      	xtensa_windowed_abi if needed.
      	* config/xtensa/xtensa.h (TARGET_WINDOWED_ABI_DEFAULT): New
      	macro.
      	(TARGET_WINDOWED_ABI): Redefine to xtensa_windowed_abi.
      	* config/xtensa/xtensa.opt (xtensa_windowed_abi): New target
      	option variable.
      	(mabi=call0, mabi=windowed): New options.
      	* doc/invoke.texi: Document new -mabi= Xtensa-specific options.
      
      gcc/testsuite/
      	* gcc.target/xtensa/mabi-call0.c: New test.
      	* gcc.target/xtensa/mabi-windowed.c: New test.
      
      libgcc/
      	* configure: Regenerate.
      	* configure.ac: Use AC_COMPILE_IFELSE instead of manual
      	preprocessor invocation to check for __XTENSA_CALL0_ABI__.
      8c8eb949
  6. May 05, 2020
    • Michael Meissner's avatar
      Delete changes meant for a private branch. · ef836167
      Michael Meissner authored
      2020-05-05  Michael Meissner  <meissner@linux.ibm.com>
      
      	* config/rs6000/rs6000-builtin.def: Delete changes meant for a
      	private branch.
      	* config/rs6000/rs6000-c.c: Likewise.
      	* config/rs6000/rs6000-call.c: Likewise.
      	* gcc/config/rs6000/rs6000.c: Likewise.
      
      2020-05-05  Michael Meissner  <meissner@linux.ibm.com>
      
      	* gcc.dg/nextafter-2.c: Delete changes meant for a private branch.
      	* gcc.target/powerpc/pr70117.c: Likewise.
      
      2020-05-05  Michael Meissner  <meissner@linux.ibm.com>
      
      	* config.host: Delete changes meant for a private branch.
      	* config/rs6000/t-float128: Likewise.
      	* configure.ac: Likewise.
      	* configure: Likewise.
      ef836167
    • Michael Meissner's avatar
      Patch ieee128-lib-patch010b · 3338afa4
      Michael Meissner authored
      3338afa4
  7. Apr 15, 2020
    • Jakub Jelinek's avatar
      aarch64: Fix bootstrap with old binutils [PR93053] · 5b2f76e3
      Jakub Jelinek authored
      As reported in the PR, GCC 10 (and also 9.3.1 but not 9.3.0) fails to build
      when using older binutils which lack LSE support, because those instructions
      are used in libgcc.
      Thanks to Kyrylo's hint, the following patches (hopefully) allow it to build
      even with older binutils by using .inst directive if LSE support isn't
      available in the assembler.
      
      2020-04-15  Jakub Jelinek  <jakub@redhat.com>
      
      	PR target/93053
      	* configure.ac (LIBGCC_CHECK_AS_LSE): Add HAVE_AS_LSE checking.
      	* config/aarch64/lse.S: Include auto-target.h, if HAVE_AS_LSE
      	is not defined, use just .arch armv8-a.
      	(B, M, N, OPN): Define.
      	(COMMENT): New .macro.
      	(CAS, CASP, SWP, LDOP): Use .inst directive if HAVE_AS_LSE is not
      	defined.  Otherwise, move the operands right after the glue? and
      	comment out operands where the macros are used.
      	* configure: Regenerated.
      	* config.in: Regenerated.
      5b2f76e3
  8. 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
  9. Dec 16, 2019
    • Jozef Lawrynowicz's avatar
      MSP430: Add new msp430-elfbare target · e8aa9f55
      Jozef Lawrynowicz authored
      contrib/ChangeLog:
      
      2019-12-16  Jozef Lawrynowicz  <jozef.l@mittosystems.com>
      
      	* config-list.mk: Add msp430-elfbare.
      
      gcc/ChangeLog:
      
      2019-12-16  Jozef Lawrynowicz  <jozef.l@mittosystems.com>
      
      	* config.gcc: s/msp430*-*-*/msp430-*-*.
      	Handle msp430-*-elfbare.
      	* config/msp430/msp430-devices.c (TARGET_SUBDIR): Define.
      	(_MSPMKSTR): Define.
      	(__MSPMKSTR): Define.
      	(rest_of_devices_path): Use TARGET_SUBDIR value in string.
      	* config/msp430/msp430.c (msp430_option_override): Error if
      	-fuse-cxa-atexit is used when it has been disabled at configure time.
      	* config/msp430/t-msp430: Define TARGET_SUBDIR when building
      	msp430-devices.o.
      	* doc/install.texi: Document msp430-*-elf and msp430-*-elfbare.
      	* doc/invoke.texi: Update documentation about which path devices.csv is
      	searched for.
      
      gcc/testsuite/ChangeLog:
      
      2019-12-16  Jozef Lawrynowicz  <jozef.l@mittosystems.com>
      
      	* g++.dg/init/dso_handle1.C: Require cxa_atexit support.
      	* g++.dg/init/dso_handle2.C: Likewise.
      	* g++.dg/other/cxa-atexit1.C: Likewise.
      	* gcc.target/msp430/msp430.exp: Update csv-using-installed.c test to
      	handle msp430-elfbare configuration.
      
      libgcc/ChangeLog:
      
      2019-12-16  Jozef Lawrynowicz  <jozef.l@mittosystems.com>
      
      	* config.host: s/msp430*-*-elf/msp430-*-elf*.
      	Override default "extra_parts" variable.
      	* configure: Regenerate.
      	* configure.ac: Disable TM clone registry by default for
      	msp430-elfbare.
      
      From-SVN: r279442
      e8aa9f55
  10. Sep 25, 2019
  11. Jun 27, 2019
    • Ilia Diachkov's avatar
      Add --disable-tm-clone-registry libgcc configure option. · 5a460280
      Ilia Diachkov authored
      This patch adds libgcc configuration option to disable TM clone 
      registry. This option helps to reduce code size for embedded targets 
      which do not need transactional memory support.
      
      	gcc/
      	* doc/install.texi: Document --disable-tm-clone-registry.
      	libgcc/
      	* Makefile.in (USE_TM_CLONE_REGISTRY): New.
      	(CRTSTUFF_CFLAGS): Use USE_TM_CLONE_REGISTRY.
      	* configure.ac: Add --disable-tm-clone-registry option.
      	* configure: Regenerate.
      
      From-SVN: r272769
      5a460280
  12. May 14, 2019
    • Rainer Orth's avatar
      Remove obsolete Solaris 10 support · ccd1242e
      Rainer Orth authored
      	libstdc++-v3:
      	* config/os/solaris/solaris2.10: Move to ...
      	* config/os/solaris: ... this.
      	* configure.host (os_include_dir): Adapt.
      	(abi_baseline_pair): Remove Solaris 10 handling.
      	* config/abi/post/i386-solaris2.10: Remove.
      	* config/abi/post/sparc-solaris2.10: Remove.
      	* config/abi/post/i386-solaris2.11: Rename to ...
      	* config/abi/post/i386-solaris: ... this.
      	* config/abi/post/sparc-solaris2.11: Rename to ...
      	* config/abi/post/sparc-solaris: ... this.
      
      	* libsupc++/new_opa.cc [_GLIBCXX_HAVE_MEMALIGN] [__sun]: Remove
      	workaround.
      
      	* testsuite/ext/enc_filebuf/char/13598.cc: Remove *-*-solaris2.10
      	xfail.
      
      	libsanitizer:
      	* configure.ac (have_dl_iterate_phdr): Remove *-*-solaris2.10*
      	handling.
      	* configure: Regenerate.
      
      	libgcc:
      	* config.host: Simplify various *-*-solaris2.1[0-9]* to
      	*-*-solaris2*.
      	* configure.ac: Likewise.
      	* configure: Regenerate.
      
      	* config/i386/sol2-unwind.h (x86_fallback_frame_state): Remove
      	Solaris 10 and Solaris 11 < snv_125 handling.
      
      	libbacktrace:
      	* configure.ac (have_dl_iterate_phdr): Remove *-*-solaris2.10*
      	handling.
      	* configure: Regenerate.
      
      	gcc/testsuite:
      	* gcc.dg/atomic/c11-atomic-exec-4.c: Simplify triplet to
      	*-*-solaris2*.
      	* gcc.dg/atomic/c11-atomic-exec-5.c: Likewise.
      	* gcc.dg/c99-math-double-1.c: Likewise.
      	* gcc.dg/c99-math-float-1.c: Likewise.
      	* gcc.dg/c99-math-long-double-1.c: Likewise.
      	* gcc.misc-tests/linkage.exp: Simplify triplet to
      	x86_64-*-solaris2*.
      
      	* gcc.target/i386/mcount_pic.c: Remove *-*-solaris2.10* && !gld
      	xfail.
      	* gcc.target/i386/pr63620.c: Likewise.
      
      	* lib/target-supports.exp (check_sse_os_support_available): Remove
      	Solaris 9/x86 workaround.
      
      	gcc:
      	* config.gcc: Move *-*-solaris2.10* from obsolete configurations
      	to unsupported ones.
      	Simplify x86_64-*-solaris2.1[0-9]* to x86_64-*-solaris2*.
      	* config.host: Likewise.
      	* config/i386/sol2.h (ASM_COMMENT_START): Remove.
      	* config/sparc/driver-sparc.c (host_detect_local_cpu) [__sun__ &&
      	__svr4__]: Remove "brand" fallback.
      	[!KSTAT_DATA_STRING]: Remove.
      	* configure.ac (gcc_cv_ld_hidden): Simplify *-*-solaris2.1[0-9]*
      	to *-*-solaris2*.
      	(comdat_group): Likewise.
      	(set_have_as_tls): Likewise.
      	(gcc_cv_target_dl_iterate_phdr): Likewise.
      	(gcc_cv_as_shf_merge): Remove Solaris 10/x86 workaround.
      	(gcc_cv_ld_aligned_shf_merge): Remove Solaris 10/SPARC workaround.
      	* configure: Regenerate.
      	* doc/install.texi: Simplify Solaris target triplets.
      	(Specific, i?86-*-solaris2*): Remove Solaris 10 references.
      	(Specific, *-*-solaris2*): Document Solaris 10 removal.
      	Remove Solaris 10 references.
      	Remove obsolete Solaris bug reference.
      	(Specific, sparc-sun-solaris2.10): Remove.
      
      From-SVN: r271183
      ccd1242e
  13. 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
  14. Sep 18, 2018
  15. Jun 27, 2018
    • Rasmus Villemoes's avatar
      add support for --disable-gcov · 1765b023
      Rasmus Villemoes authored
      For some targets (in my case VxWorks 5.5), libgcov does not compile due
      to missing functions and macros such as getpid() and F_OK.
      
      Incidentally, gcc/Makefile.in already contains comments such as
      
      # Install gcov if it was compiled.
      
      but there is no logic in place to actually allow gcov to not be
      compiled.
      
      So add an option for disabling build and install of libgcov and the
      related host tools.
      
      From-SVN: r262180
      1765b023
  16. Feb 28, 2018
    • Jakub Jelinek's avatar
      re PR debug/83917 (with -mcall-ms2sysv-xlogues, stepping into x86 tail-call... · ce579a4f
      Jakub Jelinek authored
      re PR debug/83917 (with -mcall-ms2sysv-xlogues, stepping into x86 tail-call restore stub gives bad backtrace)
      
      	PR debug/83917
      	* configure.ac (AS_HIDDEN_DIRECTIVE): AC_DEFINE_UNQUOTED this to
      	$asm_hidden_op if visibility ("hidden") attribute works.
      	(HAVE_AS_CFI_SECTIONS): New AC_DEFINE.
      	* config/i386/i386-asm.h: Don't include auto-host.h.
      	(PACKAGE_VERSION, PACKAGE_NAME, PACKAGE_STRING, PACKAGE_TARNAME,
      	PACKAGE_URL): Don't undefine.
      	(USE_GAS_CFI_DIRECTIVES): Don't use nor define this macro, instead
      	guard cfi_startproc only on ifdef __GCC_HAVE_DWARF2_CFI_ASM.
      	(FN_HIDDEN): Change guard from #ifdef HAVE_GAS_HIDDEN to
      	#ifdef AS_HIDDEN_DIRECTIVE, use AS_HIDDEN_DIRECTIVE macro in the
      	definition instead of hardcoded .hidden.
      	* config/i386/cygwin.S: Include i386-asm.h first before .cfi_sections
      	directive.  Use #ifdef HAVE_AS_CFI_SECTIONS rather than
      	#ifdef HAVE_GAS_CFI_SECTIONS_DIRECTIVE to guard .cfi_sections.
      	(USE_GAS_CFI_DIRECTIVES): Don't define.
      	* configure: Regenerated.
      	* config.in: Likewise.
      
      From-SVN: r258057
      ce579a4f
  17. Nov 17, 2017
    • Igor Tsimbalist's avatar
      Enable building libgcc with CET options. · 1ecae1fc
      Igor Tsimbalist authored
      Enable building libgcc with CET options by default on Linux/x86 if
      binutils supports CET v2.0.  It can be disabled with --disable-cet.
      It is an error to configure GCC with --enable-cet if bintuiils
      doesn't support CET v2.0.
      
      ENDBR instruction is added to __morestack_large_model since it is
      called indirectly.
      
      2017-11-17  Igor Tsimbalist  <igor.v.tsimbalist@intel.com>
      
      config/
      	* cet.m4: New file.
      
      gcc/
      	* config.gcc (extra_headers): Add cet.h for x86 targets.
      	* config/i386/cet.h: New file.
      	* doc/install.texi: Add --enable-cet/--disable-cet.
      
      libgcc/
      	* Makefile.in (configure_deps): Add $(srcdir)/../config/cet.m4.
      	(CET_FLAGS): New.
      	* config/i386/morestack.S: Include <cet.h>.
      	(__morestack_large_model): Add _CET_ENDBR at function entrance.
      	* config/i386/resms64.h: Include <cet.h>.
      	* config/i386/resms64f.h: Likewise.
      	* config/i386/resms64fx.h: Likewise.
      	* config/i386/resms64x.h: Likewise.
      	* config/i386/savms64.h: Likewise.
      	* config/i386/savms64f.h: Likewise.
      	* config/i386/t-linux (HOST_LIBGCC2_CFLAGS): Add $(CET_FLAGS).
      	(CRTSTUFF_T_CFLAGS): Likewise.
      	* configure.ac: Include ../config/cet.m4.
      	Set and substitute CET_FLAGS.
      	* configure: Regenerated.
      
      From-SVN: r254868
      1ecae1fc
  18. Nov 14, 2017
    • Rainer Orth's avatar
      Adapt Solaris 12 references · f021f1d3
      Rainer Orth authored
      	libgcc:
      	* config.host (*-*-solaris2*): Adapt comment for Solaris 12
      	renaming.
      	* config/sol2/crtpg.c (__start_crt_compiler): Likewise.
      	* configure.ac (libgcc_cv_solaris_crts): Likewise.
      	* configure: Regenerate.
      
      	gcc:
      	* config.gcc (*-*-solaris2*): Enable default_use_cxa_atexit since
      	Solaris 11.  Update comment.
      	* configure.ac (gcc_cv_ld_pid): Adapt comment for Solaris 12
      	renaming.
      	* config/sol2.h (STARTFILE_SPEC): Likewise.
      	* configure: Regenerate.
      
      	gcc/testsuite:
      	* lib/target-supports.exp (check_effective_target_pie): Adapt
      	comment for Solaris 12 renaming.
      
      	* gcc.dg/torture/pr60092.c: Remove *-*-solaris2.11* dg-xfail-run-if.
      
      From-SVN: r254737
      f021f1d3
  19. Sep 23, 2017
    • Daniel Santos's avatar
      PR target/82196 addendum: Fix Darwin build breakage and test FAILS on Solaris · 89762a83
      Daniel Santos authored
      gcc/testsuite:
      	* gcc.target/i386/pr82196-1.c: (b): Remove volatile asm.
      	* gcc.target/i386/pr82196-2.c: (b): Likewise.
      
      libgcc:
      	* configure.ac: Add Check for HAVE_AS_AVX.
      	* config.in: Regenerate.
      	* configure: Likewise.
      	* config/i386/i386-asm.h: Include auto-target.h from libgcc.
      	(SSE_SAVE, SSE_RESTORE): Emit .byte sequence for !HAVE_AS_AVX.
      	Correct out-of-date comments.
      
      From-SVN: r253116
      89762a83
  20. Jul 12, 2017
    • Michael Meissner's avatar
      re PR target/81193 (PowerPC GCC __builtin_cpu_is and __builtin_cpu_supports... · 3787ee47
      Michael Meissner authored
      re PR target/81193 (PowerPC GCC __builtin_cpu_is and __builtin_cpu_supports should warn about old libraries)
      
      [gcc]
      2017-07-12  Michael Meissner  <meissner@linux.vnet.ibm.com>
      
      	PR target/81193
      	* config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): If GLIBC
      	provides the hardware capability bits, define the macro
      	__BUILTIN_CPU_SUPPORTS__.
      	* config/rs6000/rs6000.c (cpu_expand_builtin): Generate a warning
      	if GLIBC does not provide the hardware capability bits.  Add a
      	gcc_unreachable call if the built-in cpu function is neither
      	__builtin_cpu_is nor __builtin_cpu_supports.
      	(rs6000_get_function_versions_dispatcher): Change the warning
      	that an old GLIBC is used which does not export the capability
      	bits to be an error.
      	* doc/extend.texi (target_clones attribute): Document the
      	restriction that GLIBC 2.23 or newer is needed on the PowerPC.
      	(PowerPC built-in functions): Document that GLIBC 2.23 or newer is
      	needed by __builtin_cpu_is and __builtin_cpu_supports.  Document
      	the macros defined by GCC if the newer GLIBC is available.
      
      [gcc/testsuite]
      2017-07-12  Michael Meissner  <meissner@linux.vnet.ibm.com>
      
      	PR target/81193
      	* gcc.target/powerpc/bmi-andn-1.c: Add guard against using
      	__builtin_cpu_supports with old GLIBC's.
      	* gcc.target/powerpc/bmi-andn-2.c: Likewise.
      	* gcc.target/powerpc/bmi-bextr-1.c: Likewise.
      	* gcc.target/powerpc/bmi-bextr-2.c: Likewise.
      	* gcc.target/powerpc/bmi-bextr-4.c: Likewise.
      	* gcc.target/powerpc/bmi-bextr-5.c: Likewise.
      	* gcc.target/powerpc/bmi-blsi-1.c: Likewise.
      	* gcc.target/powerpc/bmi-blsi-2.c: Likewise.
      	* gcc.target/powerpc/bmi-blsmsk-1.c: Likewise.
      	* gcc.target/powerpc/bmi-blsmsk-2.c: Likewise.
      	* gcc.target/powerpc/bmi-blsr-1.c: Likewise.
      	* gcc.target/powerpc/bmi-blsr-2.c: Likewise.
      	* gcc.target/powerpc/bmi-tzcnt-1.c: Likewise.
      	* gcc.target/powerpc/bmi-tzcnt-2.c: Likewise.
      	* gcc.target/powerpc/bmi2-bzhi32-1.c: Likewise.
      	* gcc.target/powerpc/bmi2-bzhi64-1.c: Likewise.
      	* gcc.target/powerpc/bmi2-mulx32-1.c: Likewise.
      	* gcc.target/powerpc/bmi2-mulx32-2.c: Likewise.
      	* gcc.target/powerpc/bmi2-mulx64-1.c: Likewise.
      	* gcc.target/powerpc/bmi2-mulx64-2.c: Likewise.
      	* gcc.target/powerpc/bmi2-pdep32-1.c: Likewise.
      	* gcc.target/powerpc/bmi2-pdep64-1.c: Likewise.
      	* gcc.target/powerpc/bmi2-pext32-1.c: Likewise.
      	* gcc.target/powerpc/bmi2-pext64-1.c: Likewise.
      	* gcc.target/powerpc/cpu-builtin-1.c: Likewise.
      
      [libgcc]
      2017-07-12  Michael Meissner  <meissner@linux.vnet.ibm.com>
      
      	PR target/81193
      	* configure.ac (PowerPC float128 hardware support): Test whether
      	we can use __builtin_cpu_supports before enabling the ifunc
      	handler.
      	* configure: Regenerate.
      
      From-SVN: r250165
      3787ee47
  21. Jun 21, 2017
  22. Mar 10, 2017
    • Segher Boessenkool's avatar
      rs6000: float128 on BE and 32-bit · 7502c597
      Segher Boessenkool authored
      This fixes float128 on BE and on 32-bit.
      
      The configure tests need to use -mabi=altivec for 32-bit, since it is
      not the default there.  That also enables the "vector" keyword, used by
      the tests.  To do this it temporarily adds a few flags to the CFLAGS
      variable.
      
      It also fixes a syntax error in the libgcc_cv_powerpc_float128_hw test
      (the function name was missing in the function declaration).
      
      Regenerating config.in (via autoreconf) removed the duplicate definition
      of HAVE_SOLARIS_CRTS.
      
      Finally, this adds a "-mfloat128-hardware requires -m64" test to
      rs6000.c: all the current patterns need 64-bit registers.  Maybe we'll
      want to add float128 hardware support to 32-bit some day, but certainly
      not today.
      
      
      	* config/rs6000/rs6000.c (rs6000_option_override_internal): Disallow
      	-mfloat128-hardware without -m64.
      
      libgcc/
      	* configure.ac (test for libgcc_cv_powerpc_float128): Temporarily
      	modify CFLAGS.  Add -mabi=altivec -mvsx -mfloat128.
      	(test for libgcc_cv_powerpc_float128_hw): Add -mpower9-vector and
      	-mfloat128-hardware to the CFLAGS.  Fix syntax error in the C snippet.
      	* configure: Regenerate.
      	* config.in: Regenerate.
      
      From-SVN: r246043
      7502c597
  23. 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
  24. Sep 21, 2016
    • Eric Botcazou's avatar
      configure.ac: Do not create links, only substitute the filenames. · 7e02fd1b
      Eric Botcazou authored
      	* configure.ac: Do not create links, only substitute the filenames.
      	* configure: Regenerate.
      	* Makefile.in: Assign the substitution results to variables.
      	(LIBGCC_LINKS): Define.
      	(enable-execute-stack.c): New rule.
      	(unwind.h): Likewise.
      	(md-unwind-support.h): Likewise.
      	(sfp-machine.h): Likewise.
      	(gthr-default.h): Likewise.
      	Add $(LIBGCC_LINKS) to the prerequisites of all object files and
      	unwind.h as prerequisite of install-unwind_h-forbuild.
      
      From-SVN: r240312
      7e02fd1b
  25. Apr 11, 2016
    • Michael Meissner's avatar
      re PR target/70381 (On powerpc, -mfloat128 is on by default for all VSX systems) · 35fbda43
      Michael Meissner authored
      [gcc]
      2016-04-11  Michael Meissner  <meissner@linux.vnet.ibm.com>
      
      	PR target/70381
      	* config/rs6000/rs6000.c (rs6000_opt_masks): Disable using the
      	target attribute and pragma from changing the -mfloat128
      	and -mfloat128-hardware options.
      
      	* doc/extend.texi (Additional Floating Types): Document PowerPC
      	__float128 restrictions.
      
      [libgcc]
      2016-04-11  Michael Meissner  <meissner@linux.vnet.ibm.com>
      
      	PR target/70381
      	* configure.ac (powerpc*-*-linux*): Rework tests to build
      	__float128 emulation routines to not depend on using #pragma GCC
      	target to enable -mfloat128.
      	* configure: Regnerate.
      
      [gcc/testsuite]
      2016-04-11  Michael Meissner  <meissner@linux.vnet.ibm.com>
      
      	PR target/70381
      	* gcc.target/powerpc/float128-1.c: New tests to make sure the
      	__float128 emulator is built and runs.
      	* gcc.target/powerpc/float128-1.c: Likewise.
      
      	* lib/target-supports.exp (check_ppc_float128_sw_available):
      	Rework tests for __float128 software and hardware
      	availability. Fix exit condition to return 0 on success.
      
      From-SVN: r234884
      35fbda43
  26. Feb 25, 2016
    • Ilya Verbin's avatar
      re PR driver/68463 (Offloading fails when some objects are compiled with LTO and some without) · e6861a99
      Ilya Verbin authored
      gcc/
      	PR driver/68463
      	* config/gnu-user.h (CRTOFFLOADBEGIN): Define.  Add crtoffloadbegin.o if
      	offloading is enabled and -fopenacc or -fopenmp is specified.
      	(CRTOFFLOADEND): Likewise.
      	(GNU_USER_TARGET_STARTFILE_SPEC): Add CRTOFFLOADBEGIN.
      	(GNU_USER_TARGET_ENDFILE_SPEC): Add CRTOFFLOADEND.
      	* lto-wrapper.c (offloadbegin, offloadend): Remove static vars.
      	(offload_objects_file_name): New static var.
      	(tool_cleanup): Remove offload_objects_file_name file.
      	(find_offloadbeginend): Replace with ...
      	(find_crtoffloadtable): ... this.
      	(run_gcc): Remove offload_argc and offload_argv.
      	Get offload_objects_file_name from -foffload-objects=... option.
      	Read names of object files with offload from this file, pass them to
      	compile_images_for_offload_targets.  Don't call find_offloadbeginend and
      	don't pass offloadbegin and offloadend to the linker.  Don't pass
      	offload non-LTO files to the linker, because now they're not claimed.
      libgcc/
      	PR driver/68463
      	* Makefile.in (crtoffloadtable$(objext)): New rule.
      	* configure.ac (extra_parts): Add crtoffloadtable$(objext) if
      	enable_offload_targets is not empty.
      	* configure: Regenerate.
      	* offloadstuff.c: Move __OFFLOAD_TABLE__ from crtoffloadend to
      	crtoffloadtable.
      libgomp/
      	PR driver/68463
      	* testsuite/libgomp.oacc-c-c++-common/parallel-dims-2.c: Remove.
      lto-plugin/
      	PR driver/68463
      	* lto-plugin.c (struct plugin_offload_file): New.
      	(offload_files): Change type.
      	(offload_files_last, offload_files_last_obj): New.
      	(offload_files_last_lto): New.
      	(free_2): Adjust accordingly.
      	(all_symbols_read_handler): Don't add offload files to lto_arg_ptr.
      	Don't call free_1 for offload_files.  Write names of object files with
      	offloading to the temporary file.  Add new option to lto_arg_ptr.
      	(claim_file_handler): Don't claim file if it contains offload sections
      	without LTO sections.  If it contains offload sections, add to the list.
      
      From-SVN: r233712
      e6861a99
  27. Jan 21, 2016
    • Michael Meissner's avatar
      float128-sed: New files to convert TF names to KF names for PowerPC IEEE 128-bit floating... · a71c0334
      Michael Meissner authored
      
      2016-01-21  Michael Meissner  <meissner@linux.vnet.ibm.com>
      	    Steven Munroe <munroesj@linux.vnet.ibm.com>
      	    Tulio Magno Quites Machado Filho <tulioqm@br.ibm.com>
      
      	* config/rs6000/float128-sed: New files to convert TF names to KF
      	names for PowerPC IEEE 128-bit floating point support.
      	* config/rs6000/float128-sed-hw: Likewise.
      
      	* config/rs6000/float128-hw.c: New file for ISA 3.0 IEEE 128-bit
      	floating point hardware support.
      
      	* config/rs6000/float128-ifunc.c: New file to pick either IEEE
      	128-bit floating point software emulation or use ISA 3.0 hardware
      	support if it is available.
      
      	* config/rs6000/quad-float128.h: New file to support IEEE 128-bit
      	floating point.
      
      	* config/rs6000/extendkftf2-sw.c: New file, convert IEEE 128-bit
      	floating point to IBM extended double.
      
      	* config/rs6000/trunctfkf2-sw.c: New file, convert IBM extended
      	double to IEEE 128-bit floating point.
      
      	* config/rs6000/t-float128: New Makefile fragments to enable
      	building __float128 emulation support.
      	* config/rs6000/t-float128-hw: Likewise.
      
      	* config/rs6000/sfp-exceptions.c: New file to provide exception
      	support for IEEE 128-bit floating point.
      
      	* config/rs6000/floattikf.c: New files for converting between IEEE
      	128-bit floating point and signed/unsigned 128-bit integers.
      	* config/rs6000/fixunskfti.c: Likewise.
      	* config/rs6000/fixkfti.c: Likewise.
      	* config/rs6000/floatuntikf.c: Likewise.
      
      	* config/rs6000/sfp-machine.h (_FP_W_TYPE_SIZE): Use 64-bit types
      	when building on 64-bit systems, or when VSX is enabled.
      	(_FP_W_TYPE): Likewise.
      	(_FP_WS_TYPE): Likewise.
      	(_FP_I_TYPE): Likewise.
      	(TItype): Define on 64-bit systems.
      	(UTItype): Likewise.
      	(TI_BITS): Likewise.
      	(_FP_MUL_MEAT_D): Add support for using 64-bit types.
      	(_FP_MUL_MEAT_Q): Likewise.
      	(_FP_DIV_MEAT_D): Likewise.
      	(_FP_DIV_MEAT_Q): Likewise.
      	(_FP_NANFRAC_D): Likewise.
      	(_FP_NANFRAC_Q): Likewise.
      	(ISA_BIT): Add exception support if we are being compiled on a
      	machine with hardware floating point support to build the IEEE
      	128-bit emulation functions.
      	(FP_EX_INVALID): Likewise.
      	(FP_EX_OVERFLOW): Likewise.
      	(FP_EX_UNDERFLOW): Likewise.
      	(FP_EX_DIVZERO): Likewise.
      	(FP_EX_INEXACT): Likewise.
      	(FP_EX_ALL): Likewise.
      	(__sfp_handle_exceptions): Likewise.
      	(FP_HANDLE_EXCEPTIONS): Likewise.
      	(FP_RND_NEAREST): Likewise.
      	(FP_RND_ZERO): Likewise.
      	(FP_RND_PINF): Likewise.
      	(FP_RND_MINF): Likewise.
      	(FP_RND_MASK): Likewise.
      	(_FP_DECL_EX): Likewise.
      	(FP_INIT_ROUNDMODE): Likewise.
      	(FP_ROUNDMODE): Likewise.
      
      	* libgcc/config.host (powerpc*-*-linux*): If compiler can compile
      	VSX code, enable IEEE 128-bit floating point.  If the compiler can
      	compile IEEE 128-bit floating point code with ISA 3.0 IEEE 128-bit
      	floating point hardware instructions and it supports declaring
      	functions with the ifunc attribute, enable ifunc functions to
      	switch between software and hardware support.
      	* configure.ac (powerpc*-*-linux*): Likewise.
      	* configure: Regenerate.
      
      
      
      Co-Authored-By: default avatarSteven Munroe <munroesj@linux.vnet.ibm.com>
      Co-Authored-By: default avatarTulio Magno Quites Machado Filho <tulioqm@br.ibm.com>
      
      From-SVN: r232685
      a71c0334
  28. Jan 14, 2016
  29. Jan 13, 2016
    • Michael Meissner's avatar
      rs6000-builtin.def (BU_FLOAT128_2): Add support for pack/unpack functions for __ibm128. · 29176d57
      Michael Meissner authored
      [gcc]
      2016-01-13  Michael Meissner  <meissner@linux.vnet.ibm.com>
      
      	* config/rs6000/rs6000-builtin.def (BU_FLOAT128_2): Add support
      	for pack/unpack functions for __ibm128.
      	(PACK_IF): Likewise.
      	(UNPACK_IF): Likewise.
      
      	* config/rs6000/rs6000.c (rs6000_builtin_mask_calculate): Add
      	support for __ibm128 pack/unpack functions.
      	(rs6000_invalid_builtin): Likewise.
      	(rs6000_init_builtins): Likewise.
      	(rs6000_opt_masks): Likewise.
      
      	* config/rs6000/rs6000.h (MASK_FLOAT128): Add short name.
      	(RS6000_BTM_FLOAT128): Add support for __ibm128 pack/unpack
      	functions
      	(RS6000_BTM_COMMON): Likewise.
      
      	* config/rs6000/rs6000.md (f128_vsx): New mode attribute.
      	(unpack<mode>): Use FMOVE128_FPR iterator instead of FMOVE128, to
      	disallow __builtin_{pack,unpack}_longdouble if long double is IEEE
      	128-bit floating point.  Add support for the double values to be
      	in Altivec registers for TF/IF packing and unpacking, but restrict
      	TD packing sub-fields to be FPR registers.  Don't allow overlapped
      	register support for packing.  Allow pack inputs to be memory
      	locations.  Don't build generator functions for unpack<mode>_dm
      	and unpack<mode>_nodm.
      	(unpack<mode>_dm): Likewise.
      	(unpack<mode>_nodm): Likewise.
      	(pack<mode>): Likewise.
      
      	* config/rs6000/rs6000-builtin.def (__builtin_pack_ibm128): Add
      	built-in functions to pack/unpack explicit __ibm128 values.
      	(__builtin_unpack_ibm128): Likewise.
      
      	* doc/extend.texi (PowerPC Built-in Functions): Document
      	__builtin_pack_ibm128 and __builtin_unpack_ibm128.
      
      [libgcc]
      2016-01-13  Michael Meissner  <meissner@linux.vnet.ibm.com>
      	    Steven Munroe <munroesj@linux.vnet.ibm.com>
      	    Tulio Magno Quites Machado Filho <tulioqm@br.ibm.com>
      
      	* config/rs6000/sfp-exceptions.c: New file to provide exception
      	support for IEEE 128-bit floating point.
      
      	* config/rs6000/float128-hw.c: New file for ISA 3.0 IEEE 128-bit
      	floating point hardware support.
      
      	* config/rs6000/floattikf.c: New files for IEEE 128-bit floating
      	point conversions.
      	* config/rs6000/fixunskfti.c: Likewise.
      	* config/rs6000/fixkfti.c: Likewise.
      	* config/rs6000/floatuntikf.c: Likewise.
      	* config/rs6000/extendkftf2-sw.c: Likewise.
      	* config/rs6000/trunctfkf2-sw.c: Likewise.
      
      	* config/rs6000/float128-ifunc.c: New file to pick either IEEE
      	128-bit floating point software emulation or use ISA 3.0 hardware
      	support if it is available.
      
      	* config/rs6000/quad-float128.h: New file to support IEEE 128-bit
      	floating point.
      
      	* config/rs6000/t-float128: New Makefile fragments to enable
      	building __float128 emulation support.
      	* config/rs6000/t-float128-hw: Likewise.
      
      	* config/rs6000/float128-sed: New file to convert TF names to KF
      	names for PowerPC IEEE 128-bit floating point support.
      
      	* config/rs6000/sfp-machine.h (_FP_W_TYPE_SIZE): Use 64-bit types
      	when building on 64-bit systems, or when VSX is enabled.
      	(_FP_W_TYPE): Likewise.
      	(_FP_WS_TYPE): Likewise.
      	(_FP_I_TYPE): Likewise.
      	(TItype): Define on 64-bit systems.
      	(UTItype): Likewise.
      	(TI_BITS): Likewise.
      	(_FP_MUL_MEAT_D): Add support for using 64-bit types.
      	(_FP_MUL_MEAT_Q): Likewise.
      	(_FP_DIV_MEAT_D): Likewise.
      	(_FP_DIV_MEAT_Q): Likewise.
      	(_FP_NANFRAC_D): Likewise.
      	(_FP_NANFRAC_Q): Likewise.
      	(ISA_BIT): Add exception support if we are being compiled on a
      	machine with hardware floating point support to build the IEEE
      	128-bit emulation functions.
      	(FP_EX_INVALID): Likewise.
      	(FP_EX_OVERFLOW): Likewise.
      	(FP_EX_UNDERFLOW): Likewise.
      	(FP_EX_DIVZERO): Likewise.
      	(FP_EX_INEXACT): Likewise.
      	(FP_EX_ALL): Likewise.
      	(__sfp_handle_exceptions): Likewise.
      	(FP_HANDLE_EXCEPTIONS): Likewise.
      	(FP_RND_NEAREST): Likewise.
      	(FP_RND_ZERO): Likewise.
      	(FP_RND_PINF): Likewise.
      	(FP_RND_MINF): Likewise.
      	(FP_RND_MASK): Likewise.
      	(_FP_DECL_EX): Likewise.
      	(FP_INIT_ROUNDMODE): Likewise.
      	(FP_ROUNDMODE): Likewise.
      
      	* configure.ac (powerpc*-*-linux*): Check whether the PowerPC
      	compiler can do __float128.
      	* configure: Regenerate.
      
      	* libgcc/config.host (powerpc*-*-linux*): If compiler can compile
      	VSX code, enable IEEE 128-bit floating point.
      
      From-SVN: r232346
      29176d57
  30. Sep 24, 2015
    • Rainer Orth's avatar
      Use CRTs provided by Solaris · 2d110442
      Rainer Orth authored
      	gcc:
      	* configure.ac (gcc_cv_solaris_crts): New test.
      	* configure. Regenerate.
      	* config.in: Regenerate.
      	* config/sol2.h (STARTFILE_SPEC): Simplify, provide
      	HAVE_SOLARIS_CRTS variant.
      
      	libgcc:
      	* configure.ac (libgcc_cv_solaris_crts): New test.
      	* configure: Regenerate.
      	* config.in: Regenerate.
      	* config/sol2/crtp.c, config/sol2/crtpg.c: New files.
      	* config/gmon-sol2.c: Rename to ...
      	* config/sol2/gmon.c: ... this.
      	Include auto-target.h.
      	(internal_mcount): Wrap setup handling in !HAVE_SOLARIS_CRTS.
      	* config/t-sol2: Rename to ...
      	* config/sol2/t-sol2: ... this.
      	(gmon.o): Reflect renaming.
      	(crtp.o, crtpg.o): New rules.
      	* config.host (*-*-solaris2*): Reflect renaming.
      	Use system CRTs if present.
      	Remove default CRT case.
      
      From-SVN: r228077
      2d110442
  31. May 13, 2015
    • Eric Botcazou's avatar
      sjlj.m4: New file. · 9b92a9f3
      Eric Botcazou authored
      config/
      	* sjlj.m4: New file.
      libgcc/
      	* configure.ac: Include config/sjlj.m4.
      	Remove manual SJLJ check, add GCC_CHECK_SJLJ_EXCEPTIONS and adjust.
      	* config.in: Regenerate.
      	* configure: Likewise.
      	* config.host: Replace enable_sjlj_exceptions by ac_cv_sjlj_exceptions.
      libjava/
      	* configure.ac: Include config/sjlj.m4.
      	Remove manual SJLJ check, add GCC_CHECK_SJLJ_EXCEPTIONS and adjust.
      	* include/config.h.in: Regenerate.
      	* configure: Likewise.
      	* exception.cc: Replace SJLJ_EXCEPTIONS by __USING_SJLJ_EXCEPTIONS__.
      	* stacktrace.cc: Likewise.
      	* include/default-signal.h: Likewise.
      	* sysdep/i386/backtrace.h: Likewise.
      libobjc/
      	* configure.ac: Remove manual SJLJ check.
      	* config.h.in: Regenerate.
      	* configure: Likewise.
      	* exception.c: Replace SJLJ_EXCEPTIONS by __USING_SJLJ_EXCEPTIONS__.
      libstdc++-v3/
      	* acinclude.m4 (GLIBCXX_ENABLE_SJLJ_EXCEPTIONS): Delete.
      	* configure.ac: Remove GLIBCXX_ENABLE_SJLJ_EXCEPTIONS.
      	* config.h.in: Regenerate.
      	* configure: Likewise.
      	* libsupc++/eh_personality.cc: Replace _GLIBCXX_SJLJ_EXCEPTIONS by
      	__USING_SJLJ_EXCEPTIONS__.
      	* libsupc++/eh_throw.cc: Likewise.
      	* libsupc++/eh_ptr.cc: Likewise.
      	* doc/html/manual/appendix_porting.html: Remove
      	GLIBCXX_ENABLE_SJLJ_EXCEPTIONS
      	* doc/xml/manual/build_hacking.xml: Likewise.
      	* doc/html/manual/configure.html: Remove --enable-sjlj-exceptions.
      	* doc/xml/manual/configure.xml: Likewise.
      
      From-SVN: r223181
      9b92a9f3
  32. Apr 29, 2015
    • Bernd Schmidt's avatar
      Fix libgcc installation for offload targets. · d28ad5d4
      Bernd Schmidt authored
      	* Makefile.in (real_host_noncanonical): New variable.
      	(libsubdir): Use it.
      	* configure.ac (real_host_noncanonical): Compute.  Remove special
      	case for intelmicemul.
      	* configure: Regenerate.
      
      From-SVN: r222585
      d28ad5d4
  33. Mar 03, 2015
    • Max Filippov's avatar
      Implement call0 ABI for xtensa · 590e2636
      Max Filippov authored
      call0 is an ABI that doesn't use register windows.
      
      2015-03-03  Max Filippov  <jcmvbkbc@gmail.com>
      
      gcc/
      	* config/xtensa/constraints.md ("a" constraint): Include stack
      	pointer in case of call0 ABI.
      	("q" constraint): Make empty in case of call0 ABI.
      	("D" constraint): Include stack pointer in case of call0 ABI.
      	* config/xtensa/xtensa-protos.h (xtensa_set_return_address,
      	xtensa_expand_epilogue, xtensa_regno_to_class): Add new function
      	prototypes.
      	* config/xtensa/xtensa.c (xtensa_callee_save_size): New
      	variable.
      	(xtensa_regno_to_class): Make it a local variable in the
      	function xtensa_regno_to_class.
      	(xtensa_function_epilogue, TARGET_ASM_FUNCTION_EPILOGUE): Remove
      	macro, function prototype and implementation.
      	(reg_nonleaf_alloc_order): Make it a local variable in the
      	function order_regs_for_local_alloc.
      	(xtensa_conditional_register_usage): New function.
      	(TARGET_CONDITIONAL_REGISTER_USAGE): Define macro.
      	(xtensa_valid_move): Allow direct moves to stack pointer
      	register in call0 ABI.
      	(xtensa_setup_frame_addresses): Only spill register windows in
      	windowed ABI.
      	(xtensa_emit_call): Emit call(x)8 or call(x)0 in windowed and
      	call0 ABI respectively.
      	(xtensa_function_arg_1): Only mark a7 register for copying in
      	windowed ABI.
      	(xtensa_call_save_reg): New function.
      	(compute_frame_size): Add space for callee saved register
      	storage to the frame size in call0 ABI.
      	(xtensa_expand_prologue): Generate code to set up stack frame
      	and save callee-saved registers in call0 ABI.
      	(xtensa_expand_epilogue): New function.
      	(xtensa_set_return_address): New function.
      	(xtensa_return_addr): Calculate return address in call0 ABI.
      	(xtensa_builtin_saveregs): Only mark a7 register for copying and
      	emit copying code in windowed ABI.
      	(order_regs_for_local_alloc): Add preferred register allocation
      	order for non-leaf function in call0 ABI.
      	(xtensa_static_chain): Add atatic chain passing for call0 ABI.
      	(xtensa_asm_trampoline_template): Add trampoline generation for
      	call0 ABI.
      	(xtensa_trampoline_init): Add trampoline initialization for
      	call0 ABI.
      	(xtensa_conditional_register_usage, xtensa_regno_to_class): New
      	functions.
      	* config/xtensa/xtensa.h (TARGET_WINDOWED_ABI): New macro.
      	(TARGET_CPU_CPP_BUILTINS): Add built-in define for call0 ABI.
      	(CALL_USED_REGISTERS): Modify to encode both windowed and call0
      	ABI call-used registers.
      	(HARD_FRAME_POINTER_REGNUM): Add frame pointer for call0 ABI.
      	(INCOMING_REGNO, OUTGOING_REGNO): Use argument unchanged in
      	call0 ABI.
      	(REG_CLASS_CONTENTS): Include all registers into the preferred
      	reload registers set, adjust the set in the
      	xtensa_conditional_register_usage.
      	(xtensa_regno_to_class): Drop variable declaration.
      	(REGNO_REG_CLASS): Redefine to use xtensa_regno_to_class
      	function.
      	(WINDOW_SIZE): Define as 8 or 0 for windowed and call0 ABI
      	respectively.
      	(FUNCTION_PROFILER): Add _mcount call for call0 ABI.
      	(TRAMPOLINE_SIZE): Define trampoline size for call0 ABI.
      	(RETURN_ADDR_IN_PREVIOUS_FRAME): Define to 0 in call0 ABI.
      	(ASM_OUTPUT_POOL_PROLOGUE): Always generate literal pool
      	location in call0 ABI.
      	(EH_RETURN_STACKADJ_RTX): New definition, use a10 for passing
      	stack adjustment size when handling exception.
      	(CRT_CALL_STATIC_FUNCTION): Add definition for call0 ABI.
      	* config/xtensa/xtensa.md (A9_REG, UNSPECV_BLOCKAGE): New
      	definitions.
      	("return" pattern): Generate ret.n/ret in call0 ABI.
      	("epilogue" pattern): Expand epilogue.
      	("nonlocal_goto" pattern): Use default in call0 ABI.
      	("eh_return" pattern): Move implementation to eh_set_a0_windowed,
      	emit eh_set_a0_* depending on ABI.
      	("eh_set_a0_windowed" pattern): Former eh_return pattern.
      	("eh_set_a0_call0", "blockage"): New patterns.
      
      libgcc/
      	* config/xtensa/lib2funcs.S (__xtensa_libgcc_window_spill,
      	__xtensa_nonlocal_goto): Don't compile for call0 ABI.
      	(__xtensa_sync_caches): Only use entry and retw in windowed ABI,
      	use ret in call0 ABI.
      	* config/xtensa/t-windowed: New file.
      	* libgcc/config/xtensa/t-xtensa (LIB2ADDEH): Move to t-windowed.
      	* libgcc/configure: Regenerated.
      	* libgcc/configure.ac: Check if xtensa target is configured for
      	windowed ABI and thus needs to use custom unwind code.
      
      From-SVN: r221158
      590e2636
  34. Feb 27, 2015
    • Kai Tietz's avatar
      re PR libgcc/65038 ([regression 5] Unable to find ftw.h for libgcov-util.c) · 0e4a0def
      Kai Tietz authored
              PR target/65038
              * config.in: Regenerated.
              * configure: Likewise.
              * configure.ac (AC_HEADER_STDC): Added explicit.
              (AC_CHECK_HEADERS): Check for default headers  plus
              for ftw.h header.
              * libgcov-util.c (gcov_read_profile_dir): Disable use
              of ftw-function, if header is not found.
              (ftw_read_file): Likewise.
      
      From-SVN: r221059
      0e4a0def
    • Kai Tietz's avatar
      Revert change · 0824d924
      Kai Tietz authored
      From-SVN: r221058
      0824d924
    • Kai Tietz's avatar
      re PR libgcc/65038 ([regression 5] Unable to find ftw.h for libgcov-util.c) · a2a5609b
      Kai Tietz authored
      	PR target/65038
      	* config.in: Regenerated.
      	* configure: Likewise.
      	* configure.ac (AC_HEADER_STDC): Add explicit.
      	(AC_CHECK_HEADERS): Check for default headers
      	plus for ftw.h one.
      	* libgcov-util.c (gcov_read_profile_dir): Disable use
      	of ftw-function, if header not found.
      	(ftw_read_file): Don't translate if ftw header isn't
      	present.
      
      From-SVN: r221055
      a2a5609b
  35. Dec 09, 2014
    • Michael Haubenwallner's avatar
      (libgcc_s) Optional filename-based shared library versioning on AIX. · dd913323
      Michael Haubenwallner authored
      2014-12-09  Michael Haubenwallner <michael.haubenwallner@ssi-schaefer.com>
      
              (libgcc_s) Optional filename-based shared library versioning on AIX.
              * gcc/doc/install.texi: Describe --with-aix-soname option.
              * Makefile.in (with_aix_soname): Define.
              * config/rs6000/t-slibgcc-aix: Act upon --with-aix-soname option.
              * configure.ac: Accept --with-aix-soname=aix|svr4|both option.
              * configure: Recreate.
      
      From-SVN: r218539
      dd913323
  36. Nov 13, 2014
    • Bernd Schmidt's avatar
      [PATCH 1/7] OpenMP 4.0 offloading infrastructure: configure and make · 85c64bbe
      Bernd Schmidt authored
      
      	* configure: Regenerate.
      	* configure.ac (--enable-as-accelerator-for)
      	(--enable-offload-targets): New configure options.
      gcc/
      	* Makefile.in (real_target_noncanonical, accel_dir_suffix)
      	(enable_as_accelerator): New variables substituted by configure.
      	(libsubdir, libexecsubdir, unlibsubdir): Tweak for the possibility of
      	being configured as an offload compiler.
      	(DRIVER_DEFINES): Pass new defines DEFAULT_REAL_TARGET_MACHINE and
      	ACCEL_DIR_SUFFIX.
      	(install-cpp, install-common, install_driver, install-gcc-ar): Do not
      	install for the offload compiler.
      	* config.in: Regenerate.
      	* configure: Regenerate.
      	* configure.ac (real_target_noncanonical, accel_dir_suffix)
      	(enable_as_accelerator): Compute new variables.
      	(ACCEL_COMPILER): Define if the compiler is built as the accel compiler.
      	(OFFLOAD_TARGETS): List of target names suitable for offloading.
      	(ENABLE_OFFLOADING): Define if list of offload targets is not empty.
      gcc/cp/
      	* Make-lang.in (c++.install-common): Do not install for the offload
      	compiler.
      gcc/doc/
      	* install.texi (Options specification): Document
      	--enable-as-accelerator-for and --enable-offload-targets.
      gcc/fortran/
      	* Make-lang.in (fortran.install-common): Do not install for the offload
      	compiler.
      libgcc/
      	* Makefile.in (crtoffloadbegin$(objext)): New rule.
      	(crtoffloadend$(objext)): Likewise.
      	* configure: Regenerate.
      	* configure.ac (accel_dir_suffix): Compute new variable.
      	(extra_parts): Add crtoffloadbegin.o and crtoffloadend.o
      	if enable_offload_targets is not empty.
      	* offloadstuff.c: New file.
      libgomp/
      	* config.h.in: Regenerate.
      	* configure: Regenerate.
      	* configure.ac: Check for libdl, required for plugin support.
      	(PLUGIN_SUPPORT): Define if plugins are supported.
      	(enable_offload_targets): Support Intel MIC targets.
      	(OFFLOAD_TARGETS): List of target names suitable for offloading.
      lto-plugin/
      	* Makefile.am (libexecsubdir): Tweak for the possibility of being
      	configured for offload compiler.
      	(accel_dir_suffix, real_target_noncanonical): New variables substituted
      	by configure.
      	* Makefile.in: Regenerate.
      	* configure: Regenerate.
      	* configure.ac (accel_dir_suffix, real_target_noncanonical): Compute new
      	variables.
      
      
      Co-Authored-By: default avatarAndrey Turetskiy <andrey.turetskiy@intel.com>
      Co-Authored-By: default avatarIlya Verbin <ilya.verbin@intel.com>
      Co-Authored-By: default avatarThomas Schwinge <thomas@codesourcery.com>
      
      From-SVN: r217485
      85c64bbe
  37. Oct 30, 2014
    • Joseph Myers's avatar
      Make soft-fp symbols into compat symbols for powerpc*-*-linux*. · e610393c
      Joseph Myers authored
      Continuing preparations for implementing
      TARGET_ATOMIC_ASSIGN_EXPAND_FENV for powerpc*-*-linux* soft-float and
      e500, this patch makes soft-fp symbols used for those targets into
      compat symbols when building with glibc >= 2.19, so that they are only
      in shared libgcc for existing binaries requiring them, not in static
      libgcc and not available for new links using shared libgcc.  Instead,
      new links will get the symbols from libc, which has exported all of
      them since 2.19.  (Actually all the symbols were exported from glibc
      since 2.4, but some of them were exported by glibc as compat symbols
      only - because of a confusion between deliberately present soft-fp
      symbols and old accidental reexports of libgcc functions from glibc
      2.0 - until 2.19.)
      
      This allows user floating-point arithmetic to interoperate properly
      with the state handled by <fenv.h> functions, whether software state
      (for soft-float; TLS variables that don't form a public part of
      glibc's ABI, so can only be accessed directly by functions within
      glibc) or hardware state (for e500 - the copies of the soft-fp
      functions in glibc being built to interoperate with the hardware state
      whereas those in libgcc aren't).  Previously only glibc's own
      functions, and those operations done in hardware on e500, properly
      worked with that state, not direct floating-point arithmetic
      operations that were implemented in software.
      
      The intended next step is the actual TARGET_ATOMIC_ASSIGN_EXPAND_FENV
      implementation.
      
      The test of glibc >= 2.19 uses the same --with-glibc-version configure
      option as in the gcc/ directory (but differently implemented; in gcc/
      the fallback is to examine headers to find the version, while in
      libgcc/ we can use compile for the target and so use AC_COMPUTE_INT).
      The TARGET_ATOMIC_ASSIGN_EXPAND_FENV implementation will also only do
      anything for glibc >= 2.19, as it will depend on generating calls to
      functions __atomic_feholdexcept __atomic_feclearexcept
      __atomic_feupdateenv that were added in 2.19 for that purpose (even
      for e500, inline code is not readily possible because of the need to
      make prctl syscalls from the implementation of these functions).
      
      In order to make symbols compat symbols, the soft-fp files need
      wrapping with generated wrappers including asm .symver directives,
      which need to name the symbol version in question.  This is extracted
      by an awk script from an intermediate stage of generating the .map
      file for linking libgcc (that .map itself depends on the objects that
      go into the library, so can't be used for this purpose as that would
      mean a circular dependency); the extraction is not fully general
      regarding the features available in .map generation, but suffices for
      the present purpose.
      
      It would make sense for hardfp.c symbols to be compat symbols as well
      (in the cases where hardfp.c gets used, the functions in question
      should not be used for new links), but this isn't required for the
      present purpose, which is only concerned with ensuring that where
      functions that should be affected by rounding modes or exceptions get
      used, those functions are actually affected by those rounding modes or
      exceptions.
      
      Tested with no regressions with cross to powerpc-linux-gnu
      (soft-float); c11-atomic-exec-5.c moves from UNSUPPORTED to FAIL, as
      expected, now that floating-point arithmetic in user programs uses the
      same state as <fenv.h> functions, so the fenv_exceptions test passes,
      but TARGET_ATOMIC_ASSIGN_EXPAND_FENV isn't yet implemented.  (For
      e500, c11-atomic-exec-5.c was already FAILing, as enough operations
      worked with the hardware state for the fenv_exceptions effective
      target test to pass.)  Also verified that the exported symbols and
      versions are unchanged, with the expected symbols becoming compat
      symbols at the same versions, and that with --with-glibc-version=2.18
      the symbols remain normal rather than compat symbols.
      
      	* Makefile.in (libgcc.map.in): New target.
      	(libgcc.map): Use libgcc.map.in.
      	* config/t-softfp (softfp_compat): New variable to be set by
      	users.
      	[$(softfp_compat) = y] (softfp_map_dep, softfp_set_symver): New
      	variables.
      	[$(softfp_compat) = y] (softfp_file_list): Use files in the build
      	directory.
      	[$(softfp_compat) = y] ($(softfp_file_list)): Generate wrappers
      	that use compat symbols and disable all code unless [SHARED].
      	* config/t-softfp-compat: New file.
      	* find-symver.awk: New file.
      	* configure.ac (--with-glibc-version): New configure option.
      	(ppc_fp_compat): New variable set for powerpc*-*-linux*.
      	* configure: Regenerate.
      	* config.host (powerpc*-*-linux*): Use ${ppc_fp_compat} for
      	soft-float and e500.
      
      From-SVN: r216942
      e610393c
Loading