gcc/libgcc/configure.ac

602 lines
18 KiB
Plaintext
Raw Normal View History

Makefile.def (target_modules): Add libgcc. ./ * Makefile.def (target_modules): Add libgcc. (lang_env_dependencies): Remove default items. Use no_c and no_gcc. * Makefile.tpl (clean-target-libgcc): Delete. (configure-target-[+module+]): Emit --disable-bootstrap dependencies on gcc even for bootstrapped modules. Rewrite handling of lang_env_dependencies to loop over target_modules. * configure.in (target_libraries): Add target-libgcc. * Makefile.in, configure: Regenerated. gcc/ * config.gcc: Mention libgcc/config.host. * Makefile.in: Update comments mentioning libgcc. (LIBGCC, INSTALL_LIBGCC, GCC_PARTS, mklibgcc): Delete. (all.cross, start.encap, rest.encap, rest.cross): Update dependencies for libgcc move. (libgcc.mk, LIBGCC_DEPS, libgcov.a, libgcc.a, stmp-multilib) (clean-target, clean-target-libgcc): Delete. (srcdirify, GCC_EXTRA_PARTS): New macros. (libgcc-support, libgcc.mvars): New rules. (distclean): Remove mention of mklibgcc. (install): Don't reference INSTALL_LIBGCC. (install-common): Don't reference EXTRA_PARTS. (install-libgcc, install-multilib): Delete rules. * mklibgcc.in: Delete file. * doc/configfiles.texi: Don't mention mklibgcc. * config/i386/t-darwin (SHLIB_VERPFX): Delete (moved to libgcc). * config/i386/t-darwin64 (SHLIB_VERPFX): Likewise. * config/rs6000/t-darwin (SHLIB_VERPFX): Likewise. * config/rs6000/t-ppccomm (TARGET_LIBGCC2_CFLAGS, SHLIB_MAPFILES) (mklibgcc, ldblspecs): Likewise. * config/i386/t-nwld (libgcc.def, libc.def, libpcre.def) (posixpre.def): Use $(T). (SHLIB_EXT, SHLIB_NAME, SHLIB_SLIBDIR_QUAL, SHLIB_DEF, SHLIB_MAP) (SHLIB_SRC, SHLIB_INSTALL): Delete. (SHLIB_LINK): Make dummy. * config/t-slibgcc-darwin: Delete contents except for dummy SHLIB_LINK. * config/frv/t-linux (EXTRA_MULTILIB_PARTS): Clear. * config/alpha/t-crtfm: Use $(T) in rules for EXTRA_PARTS. * config/alpha/t-vms, config/alpha/t-vms64, config/fr30/t-fr30, config/i386/t-rtems-i386, config/ia64/t-ia64, config/rs6000/t-beos, config/rs6000/t-newas, config/sparc/t-elf: Likewise. * configure.ac (all_outputs): Remove mklibgcc. * configure: Regenerated. libgcc/ * Makefile.in, config/i386/t-darwin, config/i386/t-darwin64, config/i386/t-nwld, config/rs6000/t-darwin, config/rs6000/t-ldbl128, config/i386/t-crtfm, config/alpha/t-crtfm, config/ia64/t-ia64, config/sparc/t-crtfm, config/t-slibgcc-darwin, config/rs6000/t-ppccomm, config.host, configure.ac, empty.mk, shared-object.mk, siditi-object.mk, static-object.mk: New files. * configure: Generated. Co-Authored-By: Paolo Bonzini <bonzini@gnu.org> From-SVN: r120429
2007-01-04 05:22:37 +01:00
dnl Process this file with autoconf to produce a configure script.
sinclude(../config/enable.m4)
sinclude(../config/tls.m4)
Makefile.def (target_modules): Add libgcc. ./ * Makefile.def (target_modules): Add libgcc. (lang_env_dependencies): Remove default items. Use no_c and no_gcc. * Makefile.tpl (clean-target-libgcc): Delete. (configure-target-[+module+]): Emit --disable-bootstrap dependencies on gcc even for bootstrapped modules. Rewrite handling of lang_env_dependencies to loop over target_modules. * configure.in (target_libraries): Add target-libgcc. * Makefile.in, configure: Regenerated. gcc/ * config.gcc: Mention libgcc/config.host. * Makefile.in: Update comments mentioning libgcc. (LIBGCC, INSTALL_LIBGCC, GCC_PARTS, mklibgcc): Delete. (all.cross, start.encap, rest.encap, rest.cross): Update dependencies for libgcc move. (libgcc.mk, LIBGCC_DEPS, libgcov.a, libgcc.a, stmp-multilib) (clean-target, clean-target-libgcc): Delete. (srcdirify, GCC_EXTRA_PARTS): New macros. (libgcc-support, libgcc.mvars): New rules. (distclean): Remove mention of mklibgcc. (install): Don't reference INSTALL_LIBGCC. (install-common): Don't reference EXTRA_PARTS. (install-libgcc, install-multilib): Delete rules. * mklibgcc.in: Delete file. * doc/configfiles.texi: Don't mention mklibgcc. * config/i386/t-darwin (SHLIB_VERPFX): Delete (moved to libgcc). * config/i386/t-darwin64 (SHLIB_VERPFX): Likewise. * config/rs6000/t-darwin (SHLIB_VERPFX): Likewise. * config/rs6000/t-ppccomm (TARGET_LIBGCC2_CFLAGS, SHLIB_MAPFILES) (mklibgcc, ldblspecs): Likewise. * config/i386/t-nwld (libgcc.def, libc.def, libpcre.def) (posixpre.def): Use $(T). (SHLIB_EXT, SHLIB_NAME, SHLIB_SLIBDIR_QUAL, SHLIB_DEF, SHLIB_MAP) (SHLIB_SRC, SHLIB_INSTALL): Delete. (SHLIB_LINK): Make dummy. * config/t-slibgcc-darwin: Delete contents except for dummy SHLIB_LINK. * config/frv/t-linux (EXTRA_MULTILIB_PARTS): Clear. * config/alpha/t-crtfm: Use $(T) in rules for EXTRA_PARTS. * config/alpha/t-vms, config/alpha/t-vms64, config/fr30/t-fr30, config/i386/t-rtems-i386, config/ia64/t-ia64, config/rs6000/t-beos, config/rs6000/t-newas, config/sparc/t-elf: Likewise. * configure.ac (all_outputs): Remove mklibgcc. * configure: Regenerated. libgcc/ * Makefile.in, config/i386/t-darwin, config/i386/t-darwin64, config/i386/t-nwld, config/rs6000/t-darwin, config/rs6000/t-ldbl128, config/i386/t-crtfm, config/alpha/t-crtfm, config/ia64/t-ia64, config/sparc/t-crtfm, config/t-slibgcc-darwin, config/rs6000/t-ppccomm, config.host, configure.ac, empty.mk, shared-object.mk, siditi-object.mk, static-object.mk: New files. * configure: Generated. Co-Authored-By: Paolo Bonzini <bonzini@gnu.org> From-SVN: r120429
2007-01-04 05:22:37 +01:00
sinclude(../config/acx.m4)
sinclude(../config/no-executables.m4)
t-slibgcc-darwin: Move to ... gcc: * config/t-slibgcc-darwin: Move to ... * config/t-slibgcc-dummy: .. this. Clarify comments. * config.gcc (i[34567]86-*-darwin*, x86_64-*-darwin*, powerpc-*-darwin*, powerpc64-*-darwin*): Reflect this. (i[3456x]86-*-netware*): Add t-slibgcc-dummy to tmake_file. (i[34567]86-*-rtems*): Remove extra_parts. Use i386/t-rtems. Remove i386/t-crtstuff from tmake_file. (i[34567]86-*-solaris2*): Remove t-svr4, t-slibgcc-elf-ver, t-slibgcc-sld from tmake_file, add t-slibgcc-dummy. (sparc-*-elf*, sparc64-*-elf*): Remove tmake_file, extra_parts. (sparc-*-rtems*, sparc64-*-rtems*): Remove sparc/t-crtin, sparc/t-crtfm from tmake_file. (sparc*-*-solaris2*): Remove sparc/t-sol2, sparc/t-crtfm, t-slibgcc-elf-ver, t-slibgcc-sld, add t-slibgcc-dummy. Remove extra_parts. * config/t-sol2 (TARGET_LIBGCC2_CFLAGS): Define. * config/i386/t-nwld (SHLIB_LINK): Remove. * config/i386/t-rtems-i386: Rename to ... * config/i386/t-rtems: ... this. ($(T)crti.o, $(T)crtn.o): Remove. (FPBIT, DPBIT, LIB2FUNCS_EXTRA): Remove. (dp-bit.c, fp-bit.c, xp-bit.c): Remove. (EXTRA_MULTILIB_PARTS, LIBGCC, INSTALL_LIBGCC): Remove. * config/i386/t-sol2-10 (LIBGCC, INSTALL_LIBGCC, EXTRA_MULTILIB_PARTS): Remove. * config/sparc/t-sol2-64: Likewise. * config/sparc/t-sol2: Remove. * config/sparc/t-crtin: Remove. * config/sparc/gmon-sol2.c: Move to ../libgcc/config. * config/i386/gmon-sol2.c: Remove. * config/i386/sol2-c1.asm: Move to ../libgcc/config/i386/sol2-c1.S. * config/i386/sol2-ci.asm: Move to ../libgcc/config/i386/sol2-ci.S. * config/i386/sol2-cn.asm: Move to ../libgcc/config/i386/sol2-cn.S. * config/i386/sol2-gc1.asm: Remove. * config/sparc/sol2-c1.asm: Move to ../libgcc/config/sparc/sol2-c1.S. * config/sparc/sol2-ci.asm: Move to ../libgcc/config/sparc/sol2-ci.S. * config/sparc/sol2-cn.asm: Move to ../libgcc/config/sparc/sol2-cn.S. * config/t-slibgcc-sld: Remove. libgcc: * Makefile.in (cpu_type): Define. * config.host (i[34567]86-*-rtems*): Handle it. (i[34567]86-*-solaris2*): Move body ... (*-*-solaris2*): ... here. New case, generalize. (sparc-*-elf*): Handle it. (sparc-*-linux*, sparc64-*-linux*): Replace sparc/t-crtfm by t-crtfm. (sparc-*-rtems*, sparc64-*-rtems*); Handle it. (sparc64-*-solaris2*, sparcv9-*-solaris2*, sparc-*-solaris2*): Fold into ... (sparc*-*-solaris2*): ... this. New case. (sparc64-*-elf*): Handle it. * config/gmon-sol2.c: Move from ../gcc/config/sparc. Merge ../gcc/config/i386/gmon-sol2.c. * config/i386/sol2-c1.S: Move from ../gcc/config/i386/sol2-c1.asm. Use C comments. Merge ../gcc/config/i386/sol2-gc1.asm. * config/i386/sol2-ci.S: Move from ../gcc/config/i386/sol2-ci.asm. Use C comments. * config/i386/sol2-cn.S: Move from ../gcc/config/i386/sol2-cn.asm. Use C comments. * config/i386/t-crtfm (crtfastmath.o): Use $<. * config/i386/t-crtstuff: New file. * config/i386/t-softfp: New file. * config/i386/t-sol2 ($(T)gmon.o, $(T)gcrt1.o, $(T)crt1.o), $(T)crti.o, $(T)crtn.o): Remove. (gcrt1.o): New rule. (TARGET_LIBGCC2_CFLAGS): Remove. * config/sparc/sol2-c1.S: Move from ../gcc/config/sparc/sol2-c1.asm. * config/sparc/sol2-ci.S: Move from ../gcc/config/sparc/sol2-ci.asm. * config/sparc/sol2-cn.S: Move from ../gcc/config/sparc/sol2-cn.asm. * config/sparc/t-sol2: New file. * config/sparc/t-crtfm: Move to ... * config/t-crtfm: ... this. Use $(cpu_type), $<. * config/t-crtin: New file. * config/sparc/t-softfp: New file. * config/sparc/t-softmul: New file. * config/t-rtems: New file. * config/t-slibgcc: New file. * config/t-slibgcc-elf-ver: New file. * config/t-slibgcc-gld: New file. * config/t-slibgcc-sld: New file. * config/t-sol2: New file. * configure.ac: Include ../config/lib-ld.m4. Call AC_LIB_PROG_LD_GNU. Substitute cpu_type. * configure: Regenerate. From-SVN: r174529
2011-06-01 16:39:17 +02:00
sinclude(../config/lib-ld.m4)
Makefile.tpl ($(srcdir)/configure): Update dependencies. * Makefile.tpl ($(srcdir)/configure): Update dependencies. * Makefile.in: Regenerate. * configure: Regenerate. config/ * override.m4: Use m4_version_prereq throughout. (_AC_ARG_VAR_VALIDATE, AC_MSG_FAILURE): Backport from git Autoconf: output pwd along with fatal errors, so the right config.log file is hinted at more prominently. (PARSE_ARGS): Push setting of ac_pwd in this diversion. (_GCC_AUTOCONF_VERSION): New, define to 2.59 if not defined. (_GCC_AUTOCONF_VERSION_CHECK): New macro, require use of Autoconf version _GCC_AUTOCONF_VERSION throughout the tree. (m4_wrap): New override, fix for Posix semantics of m4wrap. libgcc/ * configure.ac: sinclude override.m4. * configure: Regenerate. gnattools/ * configure.ac: move sinclude of acx.m4 before AC_INIT, also sinclude override.m4. * Makefile.in ($(srcdir)/configure): Update dependencies. * configure: Regenerate. libada/ * configure.ac: move sinclude of acx.m4 before AC_INIT, also sinclude override.m4. * Makefile.in ($(srcdir)/configure): Update dependencies. * configure: Regenerate. intl/ * configure: Regenerate. libiberty/ * configure: Regenerate. boehm-gc/ * Makefile.in: Regenerate. * configure: Regenerate. * include/Makefile.in: Regenerate. * include/gc_config.h.in: Regenerate. fixincludes/ * configure: Regenerate. gcc/ * configure: Regenerate. libcpp/ * Makefile.in ($(srcdir)/aclocal.m4): Update dependencies. * configure: Regenerate. libdecnumber/ * Makefile.in ($(srcdir)/aclocal.m4): Update dependencies. * configure: Regenerate. libffi/ * configure: Regenerate. * include/Makefile.in: Regenerate. * testsuite/Makefile.in: Regenerate. libgfortran/ * configure: Regenerate. libgomp/ * configure: Regenerate. libjava/classpath/ * Makefile.in: Regenerate. * configure: Regenerate. * doc/Makefile.in: Regenerate. * doc/api/Makefile.in: Regenerate. * examples/Makefile.in: Regenerate. * external/Makefile.in: Regenerate. * external/jsr166/Makefile.in: Regenerate. * external/relaxngDatatype/Makefile.in: Regenerate. * external/sax/Makefile.in: Regenerate. * external/w3c_dom/Makefile.in: Regenerate. * include/Makefile.in: Regenerate. * lib/Makefile.in: Regenerate. * native/Makefile.in: Regenerate. * native/fdlibm/Makefile.in: Regenerate. * native/jawt/Makefile.in: Regenerate. * native/jni/Makefile.in: Regenerate. * native/jni/classpath/Makefile.in: Regenerate. * native/jni/gconf-peer/Makefile.in: Regenerate. * native/jni/gstreamer-peer/Makefile.in: Regenerate. * native/jni/gtk-peer/Makefile.in: Regenerate. * native/jni/java-io/Makefile.in: Regenerate. * native/jni/java-lang/Makefile.in: Regenerate. * native/jni/java-net/Makefile.in: Regenerate. * native/jni/java-nio/Makefile.in: Regenerate. * native/jni/java-util/Makefile.in: Regenerate. * native/jni/midi-alsa/Makefile.in: Regenerate. * native/jni/midi-dssi/Makefile.in: Regenerate. * native/jni/native-lib/Makefile.in: Regenerate. * native/jni/qt-peer/Makefile.in: Regenerate. * native/jni/xmlj/Makefile.in: Regenerate. * native/plugin/Makefile.in: Regenerate. * resource/Makefile.in: Regenerate. * scripts/Makefile.in: Regenerate. * tools/Makefile.in: Regenerate. libjava/ * configure: Regenerate. * gcj/Makefile.in: Regenerate. * include/Makefile.in: Regenerate. * testsuite/Makefile.in: Regenerate. libjava/libltdl/ * Makefile.in: Regenerate. * configure: Regenerate. libmudflap/ * Makefile.in: Regenerate. * config.h.in: Regenerate. * configure: Regenerate. * testsuite/Makefile.in: Regenerate. libobjc/ * configure: Regenerate. libssp/ * Makefile.in: Regenerate. * config.h.in: Regenerate. * configure: Regenerate. libstdc++-v3/ * configure: Regenerate. zlib/ * Makefile.in: Regenerate. * configure: Regenerate. From-SVN: r136876
2008-06-18 01:13:35 +02:00
sinclude(../config/override.m4)
Move libgcc2 to toplevel libgcc toplevel: * Makefile.tpl (EXTRA_GCC_FLAGS): Remove LIBGCC2_CFLAGS, LIBGCC2_DEBUG_CFLAGS, LIBGCC2_INCLUDES. * Makefile.in: Regenerate. config: * mh-interix (LIBGCC2_DEBUG_CFLAGS): Remove. gcc: * Makefile.in (LIBGCC2_DEBUG_CFLAGS LIBGCC2_CFLAGS) (LIBGCC2_INCLUDES, TARGET_LIBGCC2_CFLAGS, LIB2FUNCS_EXTRA) (LIB2FUNCS_STATIC_EXTRA, LIB2FUNCS_EXCLUDE, T, T_TARGET) (INCLUDES_FOR_TARGET): Remove. (LIBGCC2_CFLAGS): Don't export. (LIB2FUNCS_ST, LIB2_DIVMOD_FUNCS, LIB2ADD, LIB2ADD_ST, srcdirify): Remove. (libgcc-support): Remove $(LIB2ADD), $(LIB2ADD_ST) dependencies. (libgcc.mvars): Likewise. Don't emit LIB2FUNCS_ST, LIB2FUNCS_EXCLUDE, LIB2ADD, LIB2ADD_ST, LIB2_SIDITI_CONV_FUNCS, LIB2_DIVMOD_FUNCS, LIBGCC2_CFLAGS, TARGET_LIBGCC2_CFLAGS. Emit GTHREAD_FLAGS. * libgcc2.c, libgcc2.h, gbl-ctors.h, longlong.h: Move to ../libgcc. * config/darwin-64.c: Move to ../libgcc/config. * config/divmod.c, config/floatunsidf.c, config/floatunsisf.c, config/floatunsitf.c, config/floatunsixf.c, config/udivmod.c, config/udivmodsi4.c: Move to ../libgcc/config. * config/gthr-posix.c: Move to ../libgcc/config/alpha. * config/memcmp.c, config/memcpy.c, config/memmove.c, config/memset.c: Move to ../libgcc/config. * config/t-darwin (TARGET_LIBGCC2_CFLAGS): Remove. * config/t-freebsd: Remove. * config/t-freebsd-thread: Move to ../libgcc/config. * config/t-libgcc-pic: Move to ../libgcc/config. * config/t-libunwind (TARGET_LIBGCC2_CFLAGS): Remove. * config/t-linux: Remove. * config/t-lynx (TARGET_LIBGCC2_CFLAGS, LIBGCC, INSTALL_LIBGCC): Remove * config/t-openbsd-thread: Move to ../libgcc/config. * config/t-rtems (LIBGCC2_INCLUDES): Remove. * config/t-sol2 (TARGET_LIBGCC2_CFLAGS): Remove. * config/t-svr4: Remove. * config/t-vxworks (LIBGCC, INSTALL_LIBGCC, TARGET_LIBGCC2_CFLAGS) (LIBGCC2_DEBUG_CFLAGS, LIB2FUNCS_EXTRA, LIBGCC2_INCLUDES): Remove. * config/vxlib.c, config/vxlib-tls.c: Move to ../libgcc/config. * config/alpha/qrnnd.asm: Move to ../libgcc/config/alpha/qrnnd.S. * config/alpha/t-alpha, config/alpha/t-ieee: Remove. * config/alpha/t-vms (LIB2FUNCS_EXTRA, LIBGCC, INSTALL_LIBGCC): Remove. * config/alpha/vms-gcc_shell_handler.c: Move to ../libgcc/config/alpha. * config/arm/bpabi.c, config/arm/unaligned-funcs.c, config/arm/fp16.c, config/arm/linux-atomic.c, config/arm/linux-atomic-64bit.c: Move to ../libgcc/config/arm. * config/arm/t-arm-elf (LIBGCC, INSTALL_LIBGCC) (TARGET_LIBGCC2_CFLAGS): Remove. * config/arm/t-bpabi, config/arm/t-linux: Remove. * config/arm/t-linux-eabi (TARGET_LIBGCC2_CFLAGS) (LIB2FUNCS_STATIC_EXTRA): Remove. * config/arm/t-netbsd: Remove. * config/arm/t-strongarm-elf (LIBGCC, INSTALL_LIBGCC) (TARGET_LIBGCC2_CFLAGS): Remove. * config/arm/t-symbian (LIB2FUNCS_STATIC_EXTRA): Remove. * config/arm/t-wince-pe (LIBGCC, INSTALL_LIBGCC) (TARGET_LIBGCC2_CFLAGS): Remove. * config/avr/t-avr (LIB2FUNCS_EXCLUDE, TARGET_LIBGCC2_CFLAGS) (LIBGCC, INSTALL_LIBGCC): Remove. * config/bfin/t-bfin-elf (TARGET_LIBGCC2_CFLAGS): Remove. * config/bfin/t-bfin-linux: Likewise. * config/bfin/t-bfin-uclinux: Likewise. * config/c6x/eqd.c, config/c6x/eqf.c, config/c6x/ged.c, config/c6x/gef.c, config/c6x/gtd.c, config/c6x/gtf.c, config/c6x/led.c, config/c6x/lef.c, config/c6x/ltd.c, config/c6x/ltf.c: Move to ../libgcc/config/c6x. * config/c6x/t-c6x-elf (LIB2FUNCS_EXCLUDE, LIB2FUNCS_EXTRA): Remove. * config/c6x/t-c6x-uclinux (TARGET_LIBGCC2_CFLAGS): Remove. * config/cris/arit.c: Move to ../libgcc/config/cris. * config/cris/cris_abi_symbol.c: Remove. * config/cris/cris.h: Remove obsolete comment. * config/cris/mulsi3.asm: Move to ../libgcc/config/cris/mulsi3.S. * config/cris/t-cris (LIB2FUNCS_EXTRA, CRIS_LIB1CSRC) ($(LIB2FUNCS_EXTRA)): Remove. * config/cris/t-elfmulti (LIB2FUNCS_STATIC_EXTRA, INSTALL_LIBGCC) (LIBGCC): Remove. * config/cris/t-linux (TARGET_LIBGCC2_CFLAGS): Remove. * config/fr30/t-fr30: Remove. * config/frv/cmovd.c, config/frv/cmovh.c, config/frv/cmovw.c, config/frv/modi.c, config/frv/uitod.c, config/frv/uitof.c, config/frv/ulltod.c, config/frv/ulltof.c, config/frv/umodi.c: Move to ../libgcc/config/frv. * config/frv/t-frv (LIB2FUNCS_EXTRA, TARGET_LIBGCC2_CFLAGS) (cmovh.c, cmovw.c, cmovd.c, modi.c, umodi.c, uitof.c, uitod.c) (ulltof.c, LIBGCC, INSTALL_LIBGCC): Remove. * config/frv/t-linux (TARGET_LIBGCC2_CFLAGS): Remove. * config/h8300/clzhi2.c, config/h8300/ctzhi2.c, config/h8300/fixunssfsi.c, config/h8300/parityhi2.c, config/h8300/popcounthi2.c: Move to ../libgcc/config/h8300. * config/h8300/t-h8300 (LIB2FUNCS_EXTRA, TARGET_LIBGCC2_CFLAGS) (LIBGCC, INSTALL_LIBGCC): Remove. * config/i386/gthr-win32.c: Move to ../libgcc/config/i386. * config/i386/t-cygming (LIBGCC2_INCLUDES): Remove. * config/i386/t-cygwin: Remove. * config/i386/t-darwin (LIB2_SIDITI_CONV_FUNCS, LIB2FUNCS_EXTRA) (LIB2FUNCS_EXCLUDE): Remove. * config/i386/t-darwin64 (LIB2_SIDITI_CONV_FUNCS, LIB2FUNCS_EXTRA) (LIBGCC, INSTALL_LIBGCC): Remove. * config/i386/t-gthr-win32: Move to ../libgcc/config/i386. * config/i386/t-linux64 (LIBGCC, INSTALL_LIBGCC): Remove. * config/i386/t-mingw-w32: Likewise. * config/i386/t-mingw-w64: Likewise. * config/i386/t-openbsd: Likewise. * config/i386/t-nto: Remove. * config/ia64/quadlib.c: Move to ../libgcc/config/ia64. * config/ia64/t-hpux (LIBGCC, INSTALL_LIBGCC, LIB2FUNCS_EXTRA) (quadlib.c): Remove. * config/ia64/t-ia64: Remove comment. * config/iq2000/lib2extra-funcs.c: Move to ../libgcc/config/iq2000/lib2funcs.c. * config/iq2000/t-iq2000: Remove. * config/m32c/m32c-lib2.c: Move to ../libgcc/config/m32c/lib2funcs.c. * config/m32c/m32c-lib2-trapv.c: Move to ../libgcc/config/m32c/trapv.c. * config/m32r/t-linux (TARGET_LIBGCC2_CFLAGS): Remove. * config/m32c/t-m32c (LIB2FUNCS_EXTRA): Remove. * config/m32r/t-m32r (TARGET_LIBGCC2_CFLAGS, LIBGCC) (INSTALL_LIBGCC): Remove. * config/m68k/fpgnulib.c: Move to ../libgcc/config/m68k. * config/m68k/t-floatlib: Remove. * config/m68k/t-mlibs (LIBGCC, INSTALL_LIBGCC): Remove. * config/mcore/t-mcore (TARGET_LIBGCC2_CFLAGS): Remove. Fix typo. (LIBGCC, INSTALL_LIBGCC): Remove. * config/mep/mep-lib2.c: Move to ../libgcc/config/mep/lib2funcs.c. * config/mep/mep-tramp.c: Move to ../libgcc/config/mep/tramp.c. * config/mep/t-mep (LIB2FUNCS_EXTRA): Remove. * config/mips/t-elf (TARGET_LIBGCC2_CFLAGS, LIBGCC) (INSTALL_LIBGCC): Remove. * config/mips/t-isa3264: Likewise. * config/mips/t-mips (LIB2_SIDITI_CONV_FUNCS): Remove. * config/mips/t-r3900 (TARGET_LIBGCC2_CFLAGS, LIBGCC) (INSTALL_LIBGCC): Remove. * config/mips/t-sde (LIBGCC, INSTALL_LIBGCC): Remove. * config/mips/t-sr71k (TARGET_LIBGCC2_CFLAGS, LIBGCC) (INSTALL_LIBGCC): Remove. * config/mips/t-vr (TARGET_LIBGCC2_CFLAGS) (LIB2FUNCS_STATIC_EXTRA): Remove. * config/mips/vr4120-div.S: Move to ../libgcc/config/mips. * config/mmix/t-mmix (TARGET_LIBGCC2_CFLAGS): Remove. * config/mn10300/t-mn10300 (LIBGCC, INSTALL_LIBGCC): Remove. * config/pa/fptr.c, config/pa/linux-atomic.c: Move to ../libgcc/config/pa. * config/pa/lib2funcs.asm: Move to ../libgcc/config/pa/lib2funcs.S. * config/pa/quadlib.c: Move to ../libgcc/config/pa. * config/pa/t-dce-thr (LIBGCC, INSTALL_LIBGCC): Remove. * config/pa/t-linux, config/pa/t-linux64: Remove. * config/pa/t-pa-hpux, config/pa/t-pa-hpux10, config/pa/t-pa-hpux11, config/pa/t-pa64: Remove. * config/pdp11/t-pdp11 (TARGET_LIBGCC2_CFLAGS, LIB2FUNCS_EXTRA): Remove. * config/picochip/libgccExtras: Move to ../libgcc/config/picochip. * config/picochip/t-picochip (LIB2FUNCS_EXTRA, RANLIB_FOR_TARGET) (TARGET_LIBGCC2_CFLAGS, LIBGCC2_DEBUG_CFLAGS): Remove. * config/rs6000/crtresfpr.asm: Move to ../libgcc/config/rs6000/crtresfpr.S. * config/rs6000/crtresgpr.asm: Move to ../libgcc/config/rs6000/crtresgpr.S. * config/rs6000/crtresxfpr.asm: Move to ../libgcc/config/rs6000/crtresxfpr.S. * config/rs6000/crtresxgpr.asm: Move to ../libgcc/config/rs6000/crtresxgpr.S. * config/rs6000/crtsavfpr.asm: Move to ../libgcc/config/rs6000/crtsavfpr.S. * config/rs6000/crtsavgpr.asm: Move to ../libgcc/config/rs6000/crtsavgpr.S. * config/rs6000/darwin-asm.h: Move to ../libgcc/config/rs6000. * config/rs6000/darwin-fpsave.asm: Move to ../libgcc/config/rs6000/darwin-fpsave.S. * config/rs6000/darwin-gpsave.asm: Move to ../libgcc/config/rs6000/darwin-gpsave.S. * config/rs6000/darwin-tramp.asm: Move to ../libgcc/config/rs6000/darwin-tramp.S. * config/rs6000/darwin-vecsave.asm: Move to ../libgcc/config/rs6000/darwin-vecsave.S. * config/rs6000/darwin-world.asm: Move to ../libgcc/config/rs6000/darwin-world.S. * config/rs6000/e500crtres32gpr.asm: Move to ../libgcc/config/rs6000/e500crtres32gpr.S. * config/rs6000/e500crtres64gpr.asm: Move to ../libgcc/config/rs6000/e500crtres64gpr.S. * config/rs6000/e500crtres64gprctr.asm: Move to ../libgcc/config/rs6000/e500crtres64gprctr.S. * config/rs6000/e500crtrest32gpr.asm: Move to ../libgcc/config/rs6000/e500crtrest32gpr.S. * config/rs6000/e500crtrest64gpr.asm: Move to ../libgcc/config/rs6000/e500crtrest64gpr.S. * config/rs6000/e500crtresx32gpr.asm: Move to ../libgcc/config/rs6000/e500crtresx32gpr.S. * config/rs6000/e500crtresx64gpr.asm: Move to ../libgcc/config/rs6000/e500crtresx64gpr.S. * config/rs6000/e500crtsav32gpr.asm: Move to ../libgcc/config/rs6000/e500crtsav32gpr.S. * config/rs6000/e500crtsav64gpr.asm: Move to ../libgcc/config/rs6000/e500crtsav64gpr.S. * config/rs6000/e500crtsav64gprctr.asm: Move to ../libgcc/config/rs6000/e500crtsav64gprctr.S. * config/rs6000/e500crtsavg32gpr.asm: Move to ../libgcc/config/rs6000/e500crtsavg32gpr.S. * config/rs6000/e500crtsavg64gpr.asm: Move to ../libgcc/config/rs6000/e500crtsavg64gpr.S. * config/rs6000/e500crtsavg64gprctr.asm: Move to ../libgcc/config/rs6000/e500crtsavg64gprctr.S. * config/rs6000/eabi.asm: Move to ../libgcc/config/rs6000/eabi.S. * config/rs6000/t-aix43 (LIBGCC, INSTALL_LIBGCC, LIB2FUNCS_EXTRA) (TARGET_LIBGCC2_CFLAGS): Remove. * config/rs6000/t-aix52: Likewise. * config/rs6000/t-darwin: Remove. * config/rs6000/t-darwin64 (LIB2_SIDITI_CONV_FUNCS) (LIB2FUNCS_EXTRA): Remove. * config/rs6000/t-fprules (LIBGCC, INSTALL_LIBGCC): Remove. * config/rs6000/t-linux64 (TARGET_LIBGCC2_CFLAGS): Remove. * config/rs6000/t-lynx (LIB2FUNCS_EXTRA, tramp.S, LIBGCC) (INSTALL_LIBGCC): Remove. * config/rs6000/t-netbsd (LIB2FUNCS_EXTRA) (LIB2FUNCS_STATIC_EXTRA, tramp.S, crtsavfpr.S, crtresfpr.S) (crtsavgpr.S, crtresgpr.S, crtresxfpr.S, crtresxgpr.S, LIBGCC) (INSTALL_LIBGCC, $(T)crtsavfpr$(objext), $(T)crtresfpr$(objext)) (($(T)crtsavgpr$(objext), $(T)crtresgpr$(objext), $(T)crtresxfpr$(objext), $(T)crtresxgpr$(objext)): Remove. * config/rs6000/t-ppccomm (LIB2FUNCS_EXTRA) (LIB2FUNCS_STATIC_EXTRA, eabi.S, tramp.S): Remove. * config/rs6000/t-spe (LIBGCC, INSTALL_LIBGCC): Remove. * config/rs6000/t-vxworks: Remove comment. * config/rs6000/tramp.asm: Move to ../libgcc/config/rs6000/tramp.S. * config/rx/t-rx (LIBGCC, INSTALL_LIBGCC): Remove. * config/sh/linux-atomic.asm: Move to ../libgcc/config/sh/linux-atomic.S. * config/sh/t-linux (LIB2FUNCS_EXTRA): Remove. * config/sh/t-netbsd: Remove. * config/sh/t-sh (TARGET_LIBGCC2_CFLAGS, LIBGCC, INSTALL_LIBGCC): Remove. * config/sparc/t-elf (LIBGCC, INSTALL_LIBGCC): Remove. * config/sparc/t-leon: Likewise. * config/sparc/t-leon3: Likewise. * config/sparc/t-linux64: Likewise. * config/sparc/t-netbsd64: Fix typo. Remove comment. * config/spu/divmodti4.c, config/spu/divv2df3.c, config/spu/float_disf.c, config/spu/float_unsdidf.c, config/spu/float_unsdisf.c, config/spu/float_unssidf.c, config/spu/mfc_multi_tag_release.c, config/spu/mfc_multi_tag_reserve.c, config/spu/mfc_tag_release.c, config/spu/mfc_tag_reserve.c, config/spu/mfc_tag_table.c, config/spu/multi3.c: Move to ../libgcc/config/spu. * config/spu/t-spu-elf (TARGET_LIBGCC2_CFLAGS, LIB2FUNCS_EXCLUDE) (LIB2FUNCS_STATIC_EXTRA, LIB2_SIDITI_CONV_FUNCS, LIBGCC) (INSTALL_LIBGCC): Remove. * config/stormy16/stormy16-lib2.c: Move to ../libgcc/config/stormy16/lib2.c. * config/stormy16/stormy16-lib2-ashlsi3.c: Move to ../libgcc/config/stormy16/ashlsi3.c. * config/stormy16/stormy16-lib2-ashrsi3.c: Move to ../libgcc/config/stormy16/ashrsi3.c. * config/stormy16/stormy16-lib2-clzhi2.c: Move to ../libgcc/config/stormy16/clzhi2.c. * config/stormy16/stormy16-lib2-cmpsi2.c: Move to ../libgcc/config/stormy16/cmpsi2.c. * config/stormy16/stormy16-lib2-ctzhi2.c: Move to ../libgcc/config/stormy16/ctzhi2.c. * config/stormy16/stormy16-lib2-divsi3.c: Move to ../libgcc/config/stormy16/divsi3.c. * config/stormy16/stormy16-lib2-ffshi2.c: Move to ../libgcc/config/stormy16/ffshi2.c. * config/stormy16/stormy16-lib2-lshrsi3.c: Move to ../libgcc/config/stormy16/lshrsi3.c. * config/stormy16/stormy16-lib2-modsi3.c: Move to ../libgcc/config/stormy16/modsi3.c. * config/stormy16/stormy16-lib2-parityhi2.c: Move to ../libgcc/config/stormy16/parityhi2.c. * config/stormy16/stormy16-lib2-popcounthi2.c: Move to ../libgcc/config/stormy16/popcounthi2.c. * config/stormy16/stormy16-lib2-ucmpsi2.c: Move to ../libgcc/config/stormy16/ucmpsi2.c. * config/stormy16/stormy16-lib2-udivmodsi4.c: Move to ../libgcc/config/stormy16/udivmodsi4.c. * config/stormy16/stormy16-lib2-udivsi3.c: Move to ../libgcc/config/stormy16/udivsi3.c. * config/stormy16/stormy16-lib2-umodsi3.c: Move to ../libgcc/config/stormy16/umodsi3.c. * config/stormy16/t-stormy16: Move to ../libgcc/config/t-stormy16. * config/v850/t-v850 (INSTALL_LIBGCC): Remove. * config/xtensa/lib2funcs.S: Move to ../libgcc/config/xtensa. * config/xtensa/t-elf: Remove. * config/xtensa/t-xtensa (LIB2FUNCS_EXTRA): Remove. * config.gcc (*-*-freebsd*): Remove t-freebsd, t-freebsd-thread from tmake_file. (*-*-linux*, frv-*-*linux*, *-*-kfreebsd*-gnu, *-*-knetbsd*-gnu, *-*-gnu*, *-*-kopensolaris*-gnu): Remove t-linux from tmake_file. (*-*-netbsd*): Remove t-libgcc-pic from tmake_file. (*-*-openbsd*): Likewise. Remove t-openbsd-thread for posix threads. (alpha*-*-linux*): Remove alpha/t-alpha, alpha/t-ieee from tmake_file. (alpha*-*-freebsd*): Likewise. (alpha*-*-netbsd*): Likewise. (alpha*-*-openbsd*): Likewise. (alpha64-dec-*vms*): Likewise. (alpha*-dec-*vms*): Likewise. (arm*-*-netbsdelf*): Remove arm/t-netbsd from tmake_file. (arm*-*-linux*): Remove t-linux from tmake_file. Remove arm/t-bpabi from tmake_file for arm*-*-linux-*eabi. (arm*-*-uclinux*): Remove arm/t-bpabi from tmake_file for arm*-*-uclinux*eabi. (arm*-*-eabi*, arm*-*-symbianelf* ): Remove arm/t-bpabi from tmake_file for arm*-*-eabi*. (fr30-*-elf): Remove tmake_file. (hppa*64*-*-linux*): Remove tmake_file. (hppa*-*-linux*): Likewise. (hppa[12]*-*-hpux10*): Remove pa/t-pa-hpux10, pa/t-pa-hpux from tmake_file. (hppa*64*-*-hpux11*): Remove pa/t-pa64, pa/t-pa-hpux from tmake_file. (hppa[12]*-*-hpux11*): Remove pa/t-pa-hpux11, pa/t-pa-hpux from tmake_file. (i[34567]86-*-elf*): Remove tmake_file. (x86_64-*-elf*): Likewise. (i[34567]86-*-nto-qnx*): Likewise. (i[34567]86-*-cygwin*): Remove i386/t-cygwin from tmake_file. (i[34567]86-*-mingw*, x86_64-*-mingw*): Remove i386/t-gthr-win32 from tmake_file if using win32 threads. (iq2000*-*-elf*): Remove tmake-file. (microblaze*-linux*): Likewise. (sh-*-elf*, sh[12346l]*-*-elf*, sh-*-linux*) (sh[2346lbe]*-*-linux*, sh-*-netbsdelf*, shl*-*-netbsdelf*) (sh5-*-netbsd*, sh5l*-*-netbsd*, sh64-*-netbsd*) (sh64l*-*-netbsd*): Remove sh/t-netbsd from tmake_file for sh5*-*-netbsd*, sh64*-netbsd*, *-*-netbsd. (xtensa*-*-elf*): Remove tmake_file. gcc/po: * EXCLUDES (config/vxlib.c, gbl-ctors.h, libgcc2.c, libgcc2.h) (longlong.h): Remove. libgcc: * configure.ac: Include ../config/picflag.m4. (GCC_PICFLAG): Call it. Substitute. * configure: Regenerate. * Makefile.in (gcc_srcdir): Remove. (LIBGCC2_DEBUG_CFLAGS, LIBGCC2_CFLAGS, LIBGCC2_INCLUDES) (HOST_LIBGCC2_CFLAGS, PICFLAG, LIB2FUNCS_ST, LIB2FUNCS_EXCLUDE) (LIB2_DIVMOD_FUNCS, LIB2ADD, LIB2ADD_ST): Set. ($(lib2funcs-o), $(lib2funcs-s-o), $(lib2-divmod-o)) ($(lib2-divmod-s-o)): Use $(srcdir) to refer to libgcc2.c. Use $<. Remove comment. * libgcc2.c, libgcc2.h, gbl-ctors.h, longlong.h: New files. * siditi-object.mk ($o$(objext), $(o)_s$(objext)): Use $(srcdir) to refer to libgcc2.c. Use $<. * config/darwin-64.c: New file. * config/darwin-crt3.c: Remove comment. * config/divmod.c, config/floatunsidf.c, config/floatunsisf.c, config/floatunsitf.c, config/floatunsixf.c, config/udivmod.c, config/udivmodsi4.c: New files. * config/memcmp.c, config/memcpy.c, config/memmove.c, config/memset.c: New files. * config/t-crtstuff-pic (CRTSTUFF_T_CFLAGS_S): Use $(PICFLAG). * config/t-darwin (HOST_LIBGCC2_CFLAGS): Set. * config/t-freebsd-thread, config/t-libgcc-pic: New files. * config/t-libunwind (HOST_LIBGCC2_CFLAGS): Set. * config/t-openbsd-thread: New file. * config/t-sol2 (HOST_LIBGCC2_CFLAGS): Remove. * config/t-vxworks, config/vxlib-tls.c, config/vxlib.c: New files. * config/alpha/gthr-posix.c, config/alpha/qrnnd.S: New files. * config/alpha/t-alpha (LIB2ADD): Use $(srcdir) to refer to qrnnd.S. Adapt filename. * config/alpha/t-osf-pthread (LIB2ADD): Use $(srcdir)/config/alpha to refer to gthr-posix.c. * config/alpha/t-vms (LIB2ADD): Set. * config/alpha/vms-gcc_shell_handler.c: New file. * config/arm/bpabi.c, config/arm/fp16.c, config/arm/linux-atomic.c, config/arm/linux-atomic-64bit.c, config/arm/unaligned-funcs.c: New files. * config/arm/t-bpabi (LIB2ADD, LIB2ADD_ST): Set. * config/arm/t-elf (HOST_LIBGCC2_CFLAGS): Set. * config/arm/t-linux: Likewise. * config/arm/t-linux-eabi (LIB2ADD_ST): Add. * config/arm/t-netbsd: New file. * config/arm/t-strongarm-elf (HOST_LIBGCC2_CFLAGS): Set. * config/arm/t-symbian (LIB2ADD_ST): Set. * config/avr/t-avr (LIB2FUNCS_EXCLUDE, HOST_LIBGCC2_CFLAGS): Set. * config/bfin/t-crtstuff (CRTSTUFF_T_CFLAGS): Use $(PICFLAG). * config/bfin/t-elf: New file. * config/c6x/eqd.c, config/c6x/eqf.c, config/c6x/ged.c, config/c6x/gef.c, config/c6x/gtd.c, config/c6x/gtf.c, config/c6x/led.c, config/c6x/lef.c, config/c6x/ltd.c, config/c6x/ltf.c: New files. * config/c6x/t-elf (LIB2FUNCS_EXCLUDE, LIB2ADD) (HOST_LIBGCC2_CFLAGS): Set. * config/c6x/t-uclinux (HOST_LIBGCC2_CFLAGS): Set. (CRTSTUFF_T_CFLAGS): Use $(PICFLAG). * config/cris/arit.c, config/cris/mulsi3.S, config/cris/t-cris: New files. * config/cris/t-elfmulti (LIB2ADD_ST): Set. * config/cris/t-linux (HOST_LIBGCC2_CFLAGS): Remove. * config/frv/cmovd.c, config/frv/cmovh.c, config/frv/cmovw.c, config/frv/modi.c, config/frv/uitod.c, config/frv/uitof.c, config/frv/ulltod.c, config/frv/ulltof.c, config/frv/umodi.c: New files. * config/frv/t-frv (LIB2ADD): Set. * config/frv/t-linux (CRTSTUFF_T_CFLAGS): Use $(PICFLAG). * config/h8300/clzhi2.c, config/h8300/ctzhi2.c, config/h8300/fixunssfsi.c, config/h8300/parityhi2.c, config/h8300/popcounthi2.c: New files. * config/h8300/t-h8300 (LIB2ADD, HOST_LIBGCC2_CFLAGS): Set. * config/i386/gthr-win32.c: New file. * config/i386/t-cygming (LIBGCC2_INCLUDES): Set. * config/i386/t-cygwin: Likewise. * config/i386/t-darwin, config/i386/t-darwin64, config/i386/t-gthr-win32, config/i386/t-interix: New files. * config/i386/t-nto (HOST_LIBGCC2_CFLAGS): Set. (CRTSTUFF_T_CFLAGS): Use $(PICFLAG). * config/i386/t-sol2 (CRTSTUFF_T_CFLAGS): Use $(PICFLAG). * config/ia64/quadlib.c: New file. * config/ia64/t-hpux (LIB2ADD): Set. * config/ia64/t-ia64: Add comment. * config/iq2000/lib2funcs.c, config/iq2000/t-iq2000: New files. * config/lm32/t-uclinux (CRTSTUFF_T_CFLAGS): Use $(PICFLAG). (HOST_LIBGCC2_CFLAGS): Append, remove -fPIC. * config/m32c/lib2funcs.c, config/m32c/trapv.c: New files. * config/m32c/t-m32c (LIB2ADD): Set. * config/m32r/t-linux (HOST_LIBGCC2_CFLAGS): Set. * config/m32r/t-m32r: Likewise. * config/m68k/fpgnulib.c: New file. * config/m68k/t-floatlib (LIB2ADD): Set. (xfgnulib.c): New target. * config/mcore/t-mcore (HOST_LIBGCC2_CFLAGS): Set. * config/mep/lib2funcs.c, config/mep/tramp.c: New files. * config/mep/t-mep (LIB2ADD): Set. * config/microblaze/divsi3.asm: Rename to divsi3.S. * config/microblaze/moddi3.asm: Rename to moddi3.S. * config/microblaze/modsi3.asm: Rename to modsi3.S. * config/microblaze/muldi3_hard.asm: Rename to hard.S. * config/microblaze/mulsi3.asm: Rename to mulsi3.S. * config/microblaze/stack_overflow_exit.asm: Rename to exit.S. * config/microblaze/udivsi3.asm: Rename to udivsi3.S. * config/microblaze/umodsi3.asm: Rename to umodsi3.S. * config/microblaze/t-microblaze (LIB2ADD): Reflect this. * config/mips/t-elf, config/mips/t-vr, config/mips/vr4120-div.S: New files. * config/mips/t-mips (LIB2_SIDITI_CONV_FUNCS): Set. * config/mmix/t-mmix (HOST_LIBGCC2_CFLAGS): Set. * config/pa/fptr.c, config/pa/lib2funcs.S, config/pa/linux-atomic.c, config/pa/quadlib.c: New files. * config/pa/t-linux (HOST_LIBGCC2_CFLAGS): Set. (LIB2ADD, LIB2ADD_ST): Set. * config/pa/t-hpux, config/pa/t-hpux10, config/pa/t-pa64: New files. * config/pa/t-linux (HOST_LIBGCC2_CFLAGS, LIB2ADD, LIB2ADD_ST): Set. * config/pa/t-linux64 (LIB2ADD_ST, HOST_LIBGCC2_CFLAGS): Set. * config/pdp11/t-pdp11: New file. * config/picochip/libgccExtras/adddi3.S, config/picochip/libgccExtras/ashlsi3.S, config/picochip/libgccExtras/ashrsi3.S, config/picochip/libgccExtras/clzsi2.S, config/picochip/libgccExtras/cmpsi2.S, config/picochip/libgccExtras/divmod15.S, config/picochip/libgccExtras/divmodhi4.S, config/picochip/libgccExtras/divmodsi4.S, config/picochip/libgccExtras/lshrsi3.S, config/picochip/libgccExtras/parityhi2.S, config/picochip/libgccExtras/popcounthi2.S, config/picochip/libgccExtras/subdi3.S, config/picochip/libgccExtras/ucmpsi2.S, config/picochip/libgccExtras/udivmodhi4.S, config/picochip/libgccExtras/udivmodsi4.S: New files. * config/picochip/t-picochip (LIB2ADD, HOST_LIBGCC2_CFLAGS) (LIBGCC2_DEBUG_CFLAGS, RANLIB_FOR_TARGET): Set. * config/rs6000/crtresfpr.S, config/rs6000/crtresgpr.S, config/rs6000/crtresxfpr.S, config/rs6000/crtresxgpr.S, config/rs6000/crtsavfpr.S, config/rs6000/crtsavgpr.S) config/rs6000/darwin-asm.h, config/rs6000/darwin-fpsave.S, config/rs6000/darwin-gpsave.S, config/rs6000/darwin-tramp.S, config/rs6000/darwin-vecsave.S, config/rs6000/darwin-world.S: New files. * config/rs6000/t-darwin (LIB2ADD, LIB2ADD_ST) (HOST_LIBGCC2_CFLAGS): Set. * config/rs6000/t-darwin64: New file. * config/rs6000/t-linux64 (HOST_LIBGCC2_CFLAGS): Set. * config/rs6000/t-lynx, config/rs6000/t-netbsd: New files. * config/rs6000/t-ppccomm (LIB2ADD): Add $(srcdir)/config/rs6000/tramp.S. (LIB2ADD_ST): Use $(srcdir)/config/rs6000 to refer to sources. Add $(srcdir)/config/rs6000/eabi.S. (crtsavfpr.S, crtresfpr.S, crtsavgpr.S, crtresgpr.S, crtresxfpr.S) (crtresxgpr.S, e500crtres32gpr.S, e500crtres64gpr.S) (e500crtres64gprctr.S, e500crtrest32gpr.S, e500crtrest64gpr.S) (e500crtresx32gpr.S, e500crtresx64gpr.S, e500crtsav32gpr.S) (e500crtsav64gpr.S, e500crtsav64gprctr.S, e500crtsavg32gpr.S) (e500crtsavg64gpr.S, e500crtsavg64gprctr.S): Remove. * config/rs6000/tramp.S: New file. * config/s390/t-tpf: Remove. * config/sh/linux-atomic.S: New file. * config/sh/t-linux (LIB2ADD): Set. (HOST_LIBGCC2_CFLAGS): Append, remove -fpic. * config/sh/t-netbsd (LIB2ADD, HOST_LIBGCC2_CFLAGS): Set. * config/sh/t-sh (unwind-dw2-Os-4-200.o): Use $(srcdir) to refer to unwind-dw2.c. (HOST_LIBGCC2_CFLAGS): Set. * config/sparc/t-sol2 (CRTSTUFF_T_CFLAGS): Use $(PICFLAG). * config/spu/divmodti4.c, config/spu/divv2df3.c, config/spu/float_disf.c, config/spu/float_unsdidf.c, config/spu/float_unsdisf.c, config/spu/float_unssidf.c, config/spu/mfc_multi_tag_release.c, config/spu/mfc_multi_tag_reserve.c, config/spu/mfc_tag_release.c, config/spu/mfc_tag_reserve.c, config/spu/mfc_tag_table.c, config/spu/multi3.c: New files. * config/spu/t-elf (LIB2ADD, LIB2ADD_ST, LIB2_SIDITI_CONV_FUNCS) (HOST_LIBGCC2_CFLAGS): Set. * config/stormy16/ashlsi3.c, config/stormy16/ashrsi3.c, config/stormy16/clzhi2.c, config/stormy16/cmpsi2.c, config/stormy16/ctzhi2.c, config/stormy16/divsi3.c, config/stormy16/ffshi2.c, config/stormy16/lib2.c, config/stormy16/lshrsi3.c, config/stormy16/modsi3.c, config/stormy16/parityhi2.c, config/stormy16/popcounthi2.c, config/stormy16/t-stormy16, config/stormy16/ucmpsi2.c, config/stormy16/udivmodsi4.c, config/stormy16/udivsi3.c, config/stormy16/umodsi3.c: New files. * config/xtensa/lib2funcs.S: New file. * config/xtensa/t-elf (HOST_LIBGCC2_CFLAGS): Set. * config/xtensa/t-xtensa (LIB2ADD): Set. * config.host (*-*-darwin*): Add t-libgcc-pic to tmake_file. (*-*-freebsd*): Add t-freebsd, t-libgcc-pic to tmake_file. Add t-freebsd-thread to tmake_file for posix threads. (*-*-linux*, frv-*-*linux*, *-*-kfreebsd*-gnu, *-*-knetbsd*-gnu) (*-*-gnu*, *-*-kopensolaris*-gnu): Add t-libgcc-pic to tmake_file. (*-*-lynxos*): Likewise. (*-*-netbsd*): Likewise. (*-*-openbsd*): Likewise. Add t-openbsd-thread to tmake_file for posix threads. (*-*-solaris2*): Add t-libgcc-pic to tmake_file. (*-*-vxworks*): Set tmake_file. (alpha*-*-linux*): Add alpha/t-alpha, alpha/t-ieee to tmake_file. (alpha*-*-freebsd*): Likewise. (alpha*-*-netbsd*): Likewise. (alpha*-*-openbsd*): Likewise. (alpha*-dec-osf5.1*): Remove qrnnd.o, gthr-posix.o from extra_parts. (alpha64-dec-*vms*): Add alpha/t-alpha, alpha/t-ieee to tmake_file. (alpha*-dec-*vms*): Likewise. (arm*-*-netbsdelf*): Add arm/t-netbsd to tmake_file. (bfin*-elf*): Add bfin/t-elf to tmake_file. (bfin*-uclinux*): Likewise. (bfin*-linux-uclibc*): Likewise. (crisv32-*-elf): Add cris/t-cris to tmake_file. (crisv32-*-none): Likewise. (cris-*-elf): Likewise. (cris-*-none): Likewise. (cris-*-linux*, crisv32-*-linux*): Likewise. (hppa[12]*-*-hpux10*): Add pa/t-hpux pa/t-hpux10, t-libgcc-pic to tmake_file. (hppa*64*-*-hpux11*): Add pa/t-hpux, pa/t-pa64, t-libgcc-pic to tmake_file. (hppa[12]*-*-hpux11*): Add pa/t-hpux, t-libgcc-pic to tmake_file. (i[34567]86-*-elf*): Add t-libgcc-pic to tmake_file. (x86_64-*-elf*): Likewise. (i[34567]86-*-nto-qnx*): Likewise. (i[34567]86-*-mingw*): Add i386/t-gthr-win32 to tmake_file for win32 threads. (x86_64-*-mingw*): Likewise. (i[34567]86-*-interix3*): Add i386/t-interix to tmake_file. (lm32-*-uclinux*): Add t-libgcc-pic to tmake_file. (mipsisa32-*-elf*, mipsisa32el-*-elf*, mipsisa32r2-*-elf*) (mipsisa32r2el-*-elf*, mipsisa64-*-elf*, mipsisa64el-*-elf*) (mipsisa64r2-*-elf*, mipsisa64r2el-*-elf*): Add mips/t-elf to tmake_file. (mipsisa64sr71k-*-elf*): Likewise. (mipsisa64sb1-*-elf*, mipsisa64sb1el-*-elf*): Likewise. (mips-*-elf*, mipsel-*-elf*): Likewise. (mips64-*-elf*, mips64el-*-elf*): Likewise. (mips64orion-*-elf*, mips64orionel-*-elf*): Likewise. (mips*-*-rtems*): Likewise. (mips64vr-*-elf*, mips64vrel-*-elf*): Add mips/t-elf, mips/t-vr to tmake_file. (pdp11-*-*): Add pdp11/t-pdp11 to tmake_file. (powerpc64-*-darwin*): Add rs6000/t-darwin64 to tmake_file. (s390x-ibm-tpf*): Add t-libgcc-pic to tmake_file. (spu-*-elf*): Likewise. (tic6x-*-uclinux): Add t-libgcc-pic to tmake_file. libquadmath: * printf/gmp-impl.h: Adapt path to longlong.h. From-SVN: r180774
2011-11-02 16:23:48 +01:00
sinclude(../config/picflag.m4)
sinclude(../config/dfp.m4)
Makefile.in (UNWIND_H): Remove. gcc: * Makefile.in (UNWIND_H): Remove. (LIB2ADDEH, LIB2ADDEHSTATIC, LIB2ADDEHSHARED): Move to ../libgcc/Makefile.in. (LIBUNWIND, SHLIBUNWIND_LINK, SHLIBUNWIND_INSTALL): Likewise. (LIBUNWINDDEP): Remove. (libgcc-support): Remove LIB2ADDEH, $(srcdir)/emutls.c dependencies. (libgcc.mvars): Remove LIB2ADDEH, LIB2ADDEHSTATIC, LIB2ADDEHSHARED, LIBUNWIND, SHLIBUNWIND_LINK, SHLIBUNWIND_INSTALL. (stmp-int-hdrs): Remove $(UNWIND_H) dependency. Don't copy $(UNWIND_H). * config.gcc (ia64*-*-linux*): Remove with_system_libunwind handling. * configure.ac (GCC_CHECK_UNWIND_GETIPINFO): Remove. * aclocal.m4: Regenerate. * configure: Regenerate. * emutls.c, unwind-c.c, unwind-compat.c, unwind-compat.h, unwind-dw2-fde-compat.c, unwind-dw2-fde-glibc.c, unwind-dw2-fde.c, unwind-dw2-fde.h, unwind-dw2.c, unwind-dw2.h, unwind-generic.h, unwind-pe.h, unwind-sjlj.c, unwind.inc: Move to ../libgcc. * unwind-dw2-fde-darwin.c: Move to ../libgcc/config. * config/arm/libunwind.S, config/arm/pr-support.c, config/arm/unwind-arm.c, config/arm/unwind-arm.h: Move to ../libgcc/config/arm. * config/arm/t-bpabi (UNWIND_H, LIB2ADDEH): Remove. * config/arm/t-symbian (UNWIND_H, LIB2ADDEH): Remove. * config/frv/t-frv ($(T)frvbegin$(objext)): Use $(srcdir)/../libgcc to refer to unwind-dw2-fde.h. ($(T)frvend$(objext)): Likewise. * config/ia64/t-glibc (LIB2ADDEH): Remove. * config/ia64/t-glibc-libunwind: Move to ../libgcc/config/ia64. * config/ia64/fde-glibc.c, config/ia64/fde-vms.c, config/ia64/unwind-ia64.c, config/ia64/unwind-ia64.h: Move to ../libgcc/config/ia64. * config/ia64/t-hpux (LIB2ADDEH): Remove. * config/ia64/t-ia64 (LIB2ADDEH): Remove. * config/ia64/t-vms (LIB2ADDEH): Remove. * config/ia64/vms.h (UNW_IVMS_MODE, MD_UNW_COMPATIBLE_PERSONALITY_P): Remove. * config/picochip/t-picochip (LIB2ADDEH): Remove. * config/rs6000/aix.h (R_LR, MD_FROB_UPDATE_CONTEXT): Remove. * config/rs6000/t-darwin (LIB2ADDEH): Remove. * config/rs6000/darwin-fallback.c: Move to ../libgcc/config/rs6000. * config/sh/t-sh ($(T)unwind-dw2-Os-4-200.o): Use $(srcdir)/../libgcc to refer to unwinder sources. * config/spu/t-spu-elf (LIB2ADDEH): Remove. * config/t-darwin (LIB2ADDEH): Remove. * config/t-freebsd (LIB2ADDEH): Remove. * config/t-libunwind (LIB2ADDEH, LIB2ADDEHSTATIC): Remove. * config/t-libunwind-elf: Move to ../libgcc/config. * config/t-linux (LIB2ADDEH): Remove. * config/t-sol2 (LIB2ADDEH): Remove. * config/xtensa/t-xtensa (LIB2ADDEH): Remove. * system.h (MD_FROB_UPDATE_CONTEXT): Poison. gcc/po: * EXCLUDES (unwind-c.c, unwind-dw2-fde-darwin.c) (unwind-dw2-fde-glibc.c, unwind-dw2-fde.c, unwind-dw2-fde.h) (unwind-dw2.c, unwind-pe.h, unwind-sjlj.c, unwind.h): Remove. libgcc: * Makefile.in (LIB2ADDEH, LIB2ADDEHSTATIC, LIB2ADDEHSHARED): New variables. (LIBUNWIND, SHLIBUNWIND_LINK, SHLIBUNWIND_INSTALL): New variables. (LIB2ADDEH, LIB2ADDEHSTATIC, LIB2ADDEHSHARED): Add $(srcdir)/emutls.c. (install-unwind_h): New target. (all): Depend on it. * config.host (unwind_header): New variable. (*-*-freebsd*): Set tmake_file to t-eh-dw2-dip. (*-*-linux*, frv-*-*linux*, *-*-kfreebsd*-gnu, *-*-knetbsd*-gnu, *-*-gnu*): Likewise, also for *-*-kopensolaris*-gnu. (*-*-solaris2*): Add t-eh-dw2-dip to tmake_file. (arm*-*-linux*): Add arm/t-bpabi for arm*-*-linux-*eabi. Set unwind_header. (arm*-*-uclinux*): Add arm/t-bpabi for arm*-*-uclinux*eabi. Set unwind_header. (arm*-*-eabi*, arm*-*-symbianelf*): Add arm/t-bpabi for arm*-*-eabi*. Add arm/t-symbian to tmake_file for arm*-*-symbianelf*. Set unwind_header. (ia64*-*-elf*): Add ia64/t-eh-ia64 to tmake_file. (ia64*-*-freebsd*): Likewise. (ia64*-*-linux*): Add ia64/t-glibc, ia64/t-eh-ia64, t-libunwind to tmake_file. Add t-libunwind-elf, ia64/t-glibc-libunwind unless $with_system_libunwind. (ia64*-*-hpux*): Set tmake_file. (ia64-hp-*vms*): Add ia64/t-eh-ia64 to tmake_file. (picochip-*-*): Set tmake_file. (rs6000-ibm-aix4.[3456789]*, powerpc-ibm-aix4.[3456789]*): Set md_unwind_header. (rs6000-ibm-aix5.1.*, powerpc-ibm-aix5.1.*): Likewise. (rs6000-ibm-aix[56789].*, powerpc-ibm-aix[56789].*): Likewise. (s390x-ibm-tpf*): Add t-eh-dw2-dip to tmake_file. (xtensa*-*-elf*): Set tmake_file. (xtensa*-*-linux*): Likewise. * configure.ac: Include ../config/unwind_ipinfo.m4. Call GCC_CHECK_UNWIND_GETIPINFO. Link unwind.h to $unwind_header. * configure: Regenerate. * emutls.c, unwind-c.c, unwind-compat.c, unwind-compat.h, unwind-dw2-fde-compat.c, unwind-dw2-fde-dip.c, unwind-dw2-fde.c, unwind-dw2-fde.h, unwind-dw2.c, unwind-dw2.h, unwind-generic.h, unwind-pe.h, unwind-sjlj.c, unwind.inc: New files. * config/unwind-dw2-fde-darwin.c: New file. * config/arm/libunwind.S, config/arm/pr-support.c, config/arm/t-bpabi, config/arm/t-symbian, config/arm/unwind-arm.c, config/arm/unwind-arm.h,: New files. * config/ia64/fde-glibc.c, config/ia64/fde-vms.c, config/ia64/t-eh-ia64, config/ia64/t-glibc, config/ia64/t-glibc-libunwind, config/ia64/t-hpux, config/ia64/t-vms, config/ia64/unwind-ia64.c, config/ia64/unwind-ia64.h: New files. * config/picochip/t-picochip: New file. * config/rs6000/aix-unwind.h, config/rs6000/darwin-fallback.c: New files. * config/rs6000/t-darwin (LIB2ADDEH): Set. * config/s390/t-tpf (LIB2ADDEH): Remove. * config/t-darwin (LIB2ADDEH): Set. * config/t-eh-dw2-dip: New file. * config/t-libunwind, config/t-libunwind-elf: New files. * config/t-sol2 (LIB2ADDEH): Remove. * config/xtensa/t-xtensa: New file. gcc/ada: * gcc-interface/Makefile.in (raise-gcc.o): Search $(srcdir)/../libgcc. libgo: * Makefile.am (AM_CFLAGS): Search $(srcdir)/../libgcc. * Makefile.in: Regenerate. libjava: * configure.ac (GCC_UNWIND_INCLUDE): Rename to LIBGCC_UNWIND_INCLUDE. Point to $(multi_basedir)/./libjava/../libgcc. * configure: Regenerate. * Makefile.am (GCC_UNWIND_INCLUDE): Reflect this. * Makefile.in: Regenerate. libobjc: * Makefile.in (INCLUDES): Search $(srcdir)/$(MULTISRCTOP)../libgcc. libstdc++-v3: * acinclude.m4 (GLIBCXX_EXPORT_INCLUDES): Point TOPLEVEL_INCLUDES to $(toplevel_srcdir)/libgcc. * configure: Regenerate. From-SVN: r177447
2011-08-05 16:37:48 +02:00
sinclude(../config/unwind_ipinfo.m4)
sinclude(../config/gthr.m4)
sinclude(../config/sjlj.m4)
Makefile.def (target_modules): Add libgcc. ./ * Makefile.def (target_modules): Add libgcc. (lang_env_dependencies): Remove default items. Use no_c and no_gcc. * Makefile.tpl (clean-target-libgcc): Delete. (configure-target-[+module+]): Emit --disable-bootstrap dependencies on gcc even for bootstrapped modules. Rewrite handling of lang_env_dependencies to loop over target_modules. * configure.in (target_libraries): Add target-libgcc. * Makefile.in, configure: Regenerated. gcc/ * config.gcc: Mention libgcc/config.host. * Makefile.in: Update comments mentioning libgcc. (LIBGCC, INSTALL_LIBGCC, GCC_PARTS, mklibgcc): Delete. (all.cross, start.encap, rest.encap, rest.cross): Update dependencies for libgcc move. (libgcc.mk, LIBGCC_DEPS, libgcov.a, libgcc.a, stmp-multilib) (clean-target, clean-target-libgcc): Delete. (srcdirify, GCC_EXTRA_PARTS): New macros. (libgcc-support, libgcc.mvars): New rules. (distclean): Remove mention of mklibgcc. (install): Don't reference INSTALL_LIBGCC. (install-common): Don't reference EXTRA_PARTS. (install-libgcc, install-multilib): Delete rules. * mklibgcc.in: Delete file. * doc/configfiles.texi: Don't mention mklibgcc. * config/i386/t-darwin (SHLIB_VERPFX): Delete (moved to libgcc). * config/i386/t-darwin64 (SHLIB_VERPFX): Likewise. * config/rs6000/t-darwin (SHLIB_VERPFX): Likewise. * config/rs6000/t-ppccomm (TARGET_LIBGCC2_CFLAGS, SHLIB_MAPFILES) (mklibgcc, ldblspecs): Likewise. * config/i386/t-nwld (libgcc.def, libc.def, libpcre.def) (posixpre.def): Use $(T). (SHLIB_EXT, SHLIB_NAME, SHLIB_SLIBDIR_QUAL, SHLIB_DEF, SHLIB_MAP) (SHLIB_SRC, SHLIB_INSTALL): Delete. (SHLIB_LINK): Make dummy. * config/t-slibgcc-darwin: Delete contents except for dummy SHLIB_LINK. * config/frv/t-linux (EXTRA_MULTILIB_PARTS): Clear. * config/alpha/t-crtfm: Use $(T) in rules for EXTRA_PARTS. * config/alpha/t-vms, config/alpha/t-vms64, config/fr30/t-fr30, config/i386/t-rtems-i386, config/ia64/t-ia64, config/rs6000/t-beos, config/rs6000/t-newas, config/sparc/t-elf: Likewise. * configure.ac (all_outputs): Remove mklibgcc. * configure: Regenerated. libgcc/ * Makefile.in, config/i386/t-darwin, config/i386/t-darwin64, config/i386/t-nwld, config/rs6000/t-darwin, config/rs6000/t-ldbl128, config/i386/t-crtfm, config/alpha/t-crtfm, config/ia64/t-ia64, config/sparc/t-crtfm, config/t-slibgcc-darwin, config/rs6000/t-ppccomm, config.host, configure.ac, empty.mk, shared-object.mk, siditi-object.mk, static-object.mk: New files. * configure: Generated. Co-Authored-By: Paolo Bonzini <bonzini@gnu.org> From-SVN: r120429
2007-01-04 05:22:37 +01:00
AC_PREREQ(2.64)
Makefile.def (target_modules): Add libgcc. ./ * Makefile.def (target_modules): Add libgcc. (lang_env_dependencies): Remove default items. Use no_c and no_gcc. * Makefile.tpl (clean-target-libgcc): Delete. (configure-target-[+module+]): Emit --disable-bootstrap dependencies on gcc even for bootstrapped modules. Rewrite handling of lang_env_dependencies to loop over target_modules. * configure.in (target_libraries): Add target-libgcc. * Makefile.in, configure: Regenerated. gcc/ * config.gcc: Mention libgcc/config.host. * Makefile.in: Update comments mentioning libgcc. (LIBGCC, INSTALL_LIBGCC, GCC_PARTS, mklibgcc): Delete. (all.cross, start.encap, rest.encap, rest.cross): Update dependencies for libgcc move. (libgcc.mk, LIBGCC_DEPS, libgcov.a, libgcc.a, stmp-multilib) (clean-target, clean-target-libgcc): Delete. (srcdirify, GCC_EXTRA_PARTS): New macros. (libgcc-support, libgcc.mvars): New rules. (distclean): Remove mention of mklibgcc. (install): Don't reference INSTALL_LIBGCC. (install-common): Don't reference EXTRA_PARTS. (install-libgcc, install-multilib): Delete rules. * mklibgcc.in: Delete file. * doc/configfiles.texi: Don't mention mklibgcc. * config/i386/t-darwin (SHLIB_VERPFX): Delete (moved to libgcc). * config/i386/t-darwin64 (SHLIB_VERPFX): Likewise. * config/rs6000/t-darwin (SHLIB_VERPFX): Likewise. * config/rs6000/t-ppccomm (TARGET_LIBGCC2_CFLAGS, SHLIB_MAPFILES) (mklibgcc, ldblspecs): Likewise. * config/i386/t-nwld (libgcc.def, libc.def, libpcre.def) (posixpre.def): Use $(T). (SHLIB_EXT, SHLIB_NAME, SHLIB_SLIBDIR_QUAL, SHLIB_DEF, SHLIB_MAP) (SHLIB_SRC, SHLIB_INSTALL): Delete. (SHLIB_LINK): Make dummy. * config/t-slibgcc-darwin: Delete contents except for dummy SHLIB_LINK. * config/frv/t-linux (EXTRA_MULTILIB_PARTS): Clear. * config/alpha/t-crtfm: Use $(T) in rules for EXTRA_PARTS. * config/alpha/t-vms, config/alpha/t-vms64, config/fr30/t-fr30, config/i386/t-rtems-i386, config/ia64/t-ia64, config/rs6000/t-beos, config/rs6000/t-newas, config/sparc/t-elf: Likewise. * configure.ac (all_outputs): Remove mklibgcc. * configure: Regenerated. libgcc/ * Makefile.in, config/i386/t-darwin, config/i386/t-darwin64, config/i386/t-nwld, config/rs6000/t-darwin, config/rs6000/t-ldbl128, config/i386/t-crtfm, config/alpha/t-crtfm, config/ia64/t-ia64, config/sparc/t-crtfm, config/t-slibgcc-darwin, config/rs6000/t-ppccomm, config.host, configure.ac, empty.mk, shared-object.mk, siditi-object.mk, static-object.mk: New files. * configure: Generated. Co-Authored-By: Paolo Bonzini <bonzini@gnu.org> From-SVN: r120429
2007-01-04 05:22:37 +01:00
AC_INIT([GNU C Runtime Library], 1.0,,[libgcc])
AC_CONFIG_SRCDIR([static-object.mk])
# The libgcc should not depend on any header files
AC_DEFUN([_AC_INCLUDES_DEFAULT_REQUIREMENTS],
[m4_divert_text([DEFAULTS],
[ac_includes_default='/* none */'])])
Makefile.def (target_modules): Add libgcc. ./ * Makefile.def (target_modules): Add libgcc. (lang_env_dependencies): Remove default items. Use no_c and no_gcc. * Makefile.tpl (clean-target-libgcc): Delete. (configure-target-[+module+]): Emit --disable-bootstrap dependencies on gcc even for bootstrapped modules. Rewrite handling of lang_env_dependencies to loop over target_modules. * configure.in (target_libraries): Add target-libgcc. * Makefile.in, configure: Regenerated. gcc/ * config.gcc: Mention libgcc/config.host. * Makefile.in: Update comments mentioning libgcc. (LIBGCC, INSTALL_LIBGCC, GCC_PARTS, mklibgcc): Delete. (all.cross, start.encap, rest.encap, rest.cross): Update dependencies for libgcc move. (libgcc.mk, LIBGCC_DEPS, libgcov.a, libgcc.a, stmp-multilib) (clean-target, clean-target-libgcc): Delete. (srcdirify, GCC_EXTRA_PARTS): New macros. (libgcc-support, libgcc.mvars): New rules. (distclean): Remove mention of mklibgcc. (install): Don't reference INSTALL_LIBGCC. (install-common): Don't reference EXTRA_PARTS. (install-libgcc, install-multilib): Delete rules. * mklibgcc.in: Delete file. * doc/configfiles.texi: Don't mention mklibgcc. * config/i386/t-darwin (SHLIB_VERPFX): Delete (moved to libgcc). * config/i386/t-darwin64 (SHLIB_VERPFX): Likewise. * config/rs6000/t-darwin (SHLIB_VERPFX): Likewise. * config/rs6000/t-ppccomm (TARGET_LIBGCC2_CFLAGS, SHLIB_MAPFILES) (mklibgcc, ldblspecs): Likewise. * config/i386/t-nwld (libgcc.def, libc.def, libpcre.def) (posixpre.def): Use $(T). (SHLIB_EXT, SHLIB_NAME, SHLIB_SLIBDIR_QUAL, SHLIB_DEF, SHLIB_MAP) (SHLIB_SRC, SHLIB_INSTALL): Delete. (SHLIB_LINK): Make dummy. * config/t-slibgcc-darwin: Delete contents except for dummy SHLIB_LINK. * config/frv/t-linux (EXTRA_MULTILIB_PARTS): Clear. * config/alpha/t-crtfm: Use $(T) in rules for EXTRA_PARTS. * config/alpha/t-vms, config/alpha/t-vms64, config/fr30/t-fr30, config/i386/t-rtems-i386, config/ia64/t-ia64, config/rs6000/t-beos, config/rs6000/t-newas, config/sparc/t-elf: Likewise. * configure.ac (all_outputs): Remove mklibgcc. * configure: Regenerated. libgcc/ * Makefile.in, config/i386/t-darwin, config/i386/t-darwin64, config/i386/t-nwld, config/rs6000/t-darwin, config/rs6000/t-ldbl128, config/i386/t-crtfm, config/alpha/t-crtfm, config/ia64/t-ia64, config/sparc/t-crtfm, config/t-slibgcc-darwin, config/rs6000/t-ppccomm, config.host, configure.ac, empty.mk, shared-object.mk, siditi-object.mk, static-object.mk: New files. * configure: Generated. Co-Authored-By: Paolo Bonzini <bonzini@gnu.org> From-SVN: r120429
2007-01-04 05:22:37 +01:00
AC_ARG_WITH(target-subdir,
[ --with-target-subdir=SUBDIR Configuring in a subdirectory for target])
AC_ARG_WITH(cross-host,
[ --with-cross-host=HOST Configuring with a cross compiler])
AC_ARG_WITH(ld,
[ --with-ld arrange to use the specified ld (full pathname)])
if test "${srcdir}" = "."; then
if test -n "${with_build_subdir}"; then
libgcc_topdir="${srcdir}/../.."
with_target_subdir=
elif test -z "${with_target_subdir}"; then
libgcc_topdir="${srcdir}/.."
else
if test "${with_target_subdir}" != "."; then
libgcc_topdir="${srcdir}/${with_multisrctop}../.."
else
libgcc_topdir="${srcdir}/${with_multisrctop}.."
fi
fi
else
libgcc_topdir="${srcdir}/.."
fi
AC_SUBST(libgcc_topdir)
AC_CONFIG_AUX_DIR($libgcc_topdir)
AC_CONFIG_HEADER(auto-target.h:config.in)
Makefile.def (target_modules): Add libgcc. ./ * Makefile.def (target_modules): Add libgcc. (lang_env_dependencies): Remove default items. Use no_c and no_gcc. * Makefile.tpl (clean-target-libgcc): Delete. (configure-target-[+module+]): Emit --disable-bootstrap dependencies on gcc even for bootstrapped modules. Rewrite handling of lang_env_dependencies to loop over target_modules. * configure.in (target_libraries): Add target-libgcc. * Makefile.in, configure: Regenerated. gcc/ * config.gcc: Mention libgcc/config.host. * Makefile.in: Update comments mentioning libgcc. (LIBGCC, INSTALL_LIBGCC, GCC_PARTS, mklibgcc): Delete. (all.cross, start.encap, rest.encap, rest.cross): Update dependencies for libgcc move. (libgcc.mk, LIBGCC_DEPS, libgcov.a, libgcc.a, stmp-multilib) (clean-target, clean-target-libgcc): Delete. (srcdirify, GCC_EXTRA_PARTS): New macros. (libgcc-support, libgcc.mvars): New rules. (distclean): Remove mention of mklibgcc. (install): Don't reference INSTALL_LIBGCC. (install-common): Don't reference EXTRA_PARTS. (install-libgcc, install-multilib): Delete rules. * mklibgcc.in: Delete file. * doc/configfiles.texi: Don't mention mklibgcc. * config/i386/t-darwin (SHLIB_VERPFX): Delete (moved to libgcc). * config/i386/t-darwin64 (SHLIB_VERPFX): Likewise. * config/rs6000/t-darwin (SHLIB_VERPFX): Likewise. * config/rs6000/t-ppccomm (TARGET_LIBGCC2_CFLAGS, SHLIB_MAPFILES) (mklibgcc, ldblspecs): Likewise. * config/i386/t-nwld (libgcc.def, libc.def, libpcre.def) (posixpre.def): Use $(T). (SHLIB_EXT, SHLIB_NAME, SHLIB_SLIBDIR_QUAL, SHLIB_DEF, SHLIB_MAP) (SHLIB_SRC, SHLIB_INSTALL): Delete. (SHLIB_LINK): Make dummy. * config/t-slibgcc-darwin: Delete contents except for dummy SHLIB_LINK. * config/frv/t-linux (EXTRA_MULTILIB_PARTS): Clear. * config/alpha/t-crtfm: Use $(T) in rules for EXTRA_PARTS. * config/alpha/t-vms, config/alpha/t-vms64, config/fr30/t-fr30, config/i386/t-rtems-i386, config/ia64/t-ia64, config/rs6000/t-beos, config/rs6000/t-newas, config/sparc/t-elf: Likewise. * configure.ac (all_outputs): Remove mklibgcc. * configure: Regenerated. libgcc/ * Makefile.in, config/i386/t-darwin, config/i386/t-darwin64, config/i386/t-nwld, config/rs6000/t-darwin, config/rs6000/t-ldbl128, config/i386/t-crtfm, config/alpha/t-crtfm, config/ia64/t-ia64, config/sparc/t-crtfm, config/t-slibgcc-darwin, config/rs6000/t-ppccomm, config.host, configure.ac, empty.mk, shared-object.mk, siditi-object.mk, static-object.mk: New files. * configure: Generated. Co-Authored-By: Paolo Bonzini <bonzini@gnu.org> From-SVN: r120429
2007-01-04 05:22:37 +01:00
AC_ARG_ENABLE(shared,
[ --disable-shared don't provide a shared libgcc],
[
case $enable_shared in
yes | no) ;;
*)
enable_shared=no
IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}:,"
for pkg in $enableval; do
if test "X$pkg" = "Xgcc" || test "X$pkg" = "Xlibgcc"; then
enable_shared=yes
fi
done
IFS="$ac_save_ifs"
;;
esac
], [enable_shared=yes])
AC_SUBST(enable_shared)
Commit the vtable verification feature. Commit the vtable verification feature. This feature is designed to detect, at run time, if/when the vtable pointer in a C++ object has been corrupted, before allowing virtual calls through that pointer. If pointer corruption is detected, execution of the program is halted. libstdc++-v3 ChangeLog: 2013-08-06 Caroline Tice <cmtice@google.com> * fragment.am: Add XTEMPLATE_FLAGS. * configure.ac: Add definitions for --enable-vtable-verify. * acinclude.m4: Add --enable-vtable-verify and --disable-vtable-verify; define --enable-vtable-verify; define VTV_CXXFLAGS, VTV_PCH_CXXFLAGS and VTV_CXXLINKFLAGS. * config/abi/pre/gnu.ver: Export symbols for vtable verification. * libsupc++/Makefile.am: Define vtv_sources and add it to libsupc___la_SOURCES and libsupc__convenience_la_SOURCES. * libsupc++/vtv_stubs.cc: New file. * include/Makefile.am: Add VTV_PCH_CXXFLAGS to PCHFLAGS. * src/Makefile.am: Add VTV_CXXFLAGS to AM_CXXFLAGS; add VTV_CXXLINKFLAGS to CXXLINK. * src/c++98/Makefile.am: Comment out XTEMPLATE_FLAGS; add VTV_CXXFLAGS to AM_CXXFLAGS; add VTV_CXXXLINKFLAGS to CXXLINK. * src/C++11/Makefile.am: Ditto. * doc/xml/manual/configure.xml: Add entry for --enable-vtable-verify. * scripts/testsuite_flags.in: Add cxxvtvflags to Usage; cause cxxvtvflags to use VTV_CXXFLAGS and VTV_CXXLINKFLAGS. * testsuite/lib/libstdc++.exp: Add cxxvtvflags; add code to locate libvtv if --enable-vtable-verify was used; set cxxvtvflags; add cxxvtvflags to cxx_final. * testsuite/18_support/bad_exception/23591_thread-1.c: Add -fvtable-verify=none to compiler flags. * testsuite/17_intro/freestanding.cc: Add -fvtable-verify=none to compiler flags. * configure: Regenerated. * Makefile.in: Regenerated. * python/Makefile.in: Regenerated. * include/Makefile.in: Regenerated. * libsupc++/Makefile.in: Regenerated. * config.h.in: Regenerated. * po/Makefile.in: Regenerated. * src/Makefile.in: Regenerated. * src/c++98/Makefile.in: Regenerated. * src/c++11/Makefile.in: Regenerated. * doc/Makefile.in: Regenerated. * testsuite/Makefile.in: Regenerated. top level ChangeLog: 2013-08-06 Caroline Tice <cmtice@google.com> * configure.ac: Add target-libvtv to target_libraries; disable libvtv on non-linux systems; add target-libvtv to noconfigdirs; add libsupc++/.libs to C++ library search paths. * configure: Regenerated. * Makefile.def: Add libvtv to target_modules; make libvtv depend on libstdc++ and libgcc. * Makefile.in: Regenerated. include/ChangeLog: 2013-08-06 Caroline Tice <cmtice@google.com> * vtv-change-permission.h: New file. contrib/ChangeLog: 2013-08-06 Caroline Tice4 <cmtice@google.com> * gcc_update: Add libvtv files. libgcc/ChangeLog: 2013-08-06 Caroline Tice <cmtice@google.com> config.host (extra_parts): Add vtv_start.o, vtv_end.o vtv_start_preinit.o and vtv_end_preinit.o. configure.ac: Add code to check/set enable_vtable_verify. Makefile.in: Add rules to build vtv_*.o, if enable_vtable_verify is true. vtv_start_preinit.c: New file. vtv_end_preinit.c: New file. vtv_start.c: New file. vtv_end.c: New file. configure: Regenerated. gcc/ChangeLog: 2013-08-06 Caroline Tice <cmtice@google.com> * gcc.c (VTABLE_VERIFICATION_SPEC): New definition. (LINK_COMMAND_SPEC): Add VTABLE_VERIFICATION_SPEC. * tree-pass.h: Add pass_vtable_verify. * varasm.c (assemble_variable): Add code to properly set the comdat section and name for the .vtable_map_vars section. (assemble_vtyv_preinit_initializer): New function. (default_sectin_type_flags): Make sure .vtable_map_vars section has LINK_ONCE flag. * output.h: Add function decl for assemble_vtv_preinit_initializer. * vtable-verify.c: New file. * vtable-verify.h: New file. * flag-types.h (enum vtv_priority): Defintions for flag_vtable_verify initialiation levels. * timevar.def (TV_VTABLE_VERIFICATION): New definition. * passes.def: Insert pass_vtable_verify. * aclocal.m4: Reorder includes. * doc/invoke.texi: Add documentation for the flags -fvtable-verify=, -fvtv-debug and -fvtv-counts. * config/gnu-user.h (GNU_USER_TARGET_STARTFILE_SPEC): Add vtv_start*.o, as appropriate, if -fvtable-verify=... is used. (GNU_USER_TARGET_ENDFILE_SPEC): Add vtv_end*.o as appropriate, if -fvtable-verify=... is used. * Makefile.in (OBJS): Add vtable-verify.o to list. (vtable-verify.o): Add new build rule. (GTFILES): Add vtable-verify.c to list. * common.opt (fvtable-verify=): New flag. (vtv_priority): Values for fvtable-verify= flag. (fvtv-counts): New flag. (fvtv-debug): New flag. * tree.h (save_vtable_map_decl): New extern function decl. gcc/cp/ChangeLog: 2013-08-06 Caroline Tice <cmtice@google.com> * Make-lang.in (*CXX_AND_OBJCXX_OBJS): Add vtable-class-hierarchy.o to list. (vtable-class-hierarchy.o): Add build rule. * cp-tree.h (vtv_start_verification_constructor_init_function): New extern function decl. (vtv_finish_verification_constructor_init_function): New extern function decl. (build_vtbl_address): New extern function decl. (get_mangled_vtable_map_var_name): New extern function decl. (vtv_compute_class_hierarchy_transitive_closure): New extern function decl. (vtv_generate_init_routine): New extern function decl. (vtv_save_class_info): New extern function decl. (vtv_recover_class_info): New extern function decl. (vtv_build_vtable_verify_fndecl): New extern function decl. * class.c (finish_struct_1): Add call to vtv_save_class_info if flag_vtable_verify is true. * config-lang.in: Add vtable-class-hierarchy.c to gtfiles list. * vtable-class-hierarchy.c: New file. * mangle.c (get_mangled_vtable_map_var_name): New function. * decl2.c (start_objects): Update function comment. (cp_write_global_declarations): Call vtv_recover_class_info, vtv_compute_class_hierarchy_transitive_closure and vtv_build_vtable_verify_fndecl, before calling finalize_compilation_unit, and call vtv_generate_init_rount after, IFF flag_vtable_verify is true. (vtv_start_verification_constructor_init_function): New function. (vtv_finish_verification_constructor_init_function): New function. * init.c (build_vtbl_address): Remove static qualifier from function. libvtv/ChangeLog: 2013-08-06 Caroline Tice <cmtice@google.com> Initial check-in of new vtable verification feature. * configure.ac : New file. * acinclude.m4 : New file. * Makefile.am : New file. * aclocal.m4 : New file. * configure.tgt : New file. * configure: New file (generated). * Makefile.in: New file (generated). * vtv_set.h : New file. * vtv_utils.cc : New file. * vtv_utils.h : New file. * vtv_malloc.cc : New file. * vtv_rts.cc : New file. * vtv_malloc.h : New file. * vtv_rts.h : New file. * vtv_fail.cc : New file. * vtv_fail.h : New file. * vtv_map.h : New file. * scripts/run-testsuite.sh : New file. * scripts/sum-vtv-counts.c : New file. * testsuite/parts-test-main.h : New file. * testusite/dataentry.cc : New file. * testsuite/temp_deriv.cc : New file. * testsuite/register_pair.cc : New file. * testsuite/virtual_inheritance.cc : New file. * testsuite/field-test.cc : New file. * testsuite/nested_vcall_test.cc : New file. * testsuite/template-list-iostream.cc : New file. * testsuite/register_pair_inserts.cc : New file. * testsuite/register_pair_inserts_mt.cc : New file. * testsuite/event.list : New file. * testsuite/parts-test-extra-parts-views.cc : New file. * testsuite/parts-test-extra-parts-views.h : New file. * testsuite/environment-fail-32.s : New file. * testsuite/parts-test-extra-parts.h : New file. * testsuite/temp_deriv2.cc : New file. * testsuite/dlopen_mt.cc : New file. * testsuite/event.h : New file. * testsuite/template-list.cc : New file. * testsuite/replace-fail.cc : New file. * testsuite/Makefile.am : New file. * testsuite/Makefile.in: New file (generated). * testsuite/mempool_negative.c : New file. * testsuite/parts-test-main.cc : New file. * testsuite/event-private.cc : New file. * testsuite/thunk.cc : New file. * testsuite/event-defintiions.cc : New file. * testsuite/event-private.h : New file. * testsuite/parts-test.list : New file. * testusite/register_pair_mt.cc : New file. * testsuite/povray-derived.cc : New file. * testsuite/event-main.cc : New file. * testsuite/environment.cc : New file. * testsuite/template-list2.cc : New file. * testsuite/thunk_vtable_map_attack.cc : New file. * testsuite/parts-test-extra-parts.cc : New file. * testsuite/environment-fail-64.s : New file. * testsuite/dlopen.cc : New file. * testsuite/so.cc : New file. * testsuite/temp_deriv3.cc : New file. * testsuite/const_vtable.cc : New file. * testsuite/mempool_positive.c : New file. * testsuite/dup_name.cc : New file. From-SVN: r201555
2013-08-07 05:38:59 +02:00
AC_ARG_ENABLE(vtable-verify,
[ --enable-vtable-verify Enable vtable verification feature ],
[case "$enableval" in
yes) enable_vtable_verify=yes ;;
no) enable_vtable_verify=no ;;
*) enable_vtable_verify=no;;
esac],
[enable_vtable_verify=no])
AC_SUBST(enable_vtable_verify)
AC_ARG_WITH(aix-soname,
[AS_HELP_STRING([--with-aix-soname=aix|svr4|both],
[shared library versioning (aka "SONAME") variant to provide on AIX])],
[case "${host}:${enable_shared}" in
power*-*-aix[[5-9]]*:yes)
AC_MSG_CHECKING([which variant of shared library versioning to provide for shared libgcc])
case ${withval} in
aix|svr4|both) ;;
*) AC_MSG_ERROR([Unknown argument to --with-aix-soname]);;
esac
AC_MSG_RESULT($withval)
;;
*) with_aix_soname=aix ;;
esac
], [with_aix_soname=aix])
AC_SUBST(with_aix_soname)
Move libgcc2 to toplevel libgcc toplevel: * Makefile.tpl (EXTRA_GCC_FLAGS): Remove LIBGCC2_CFLAGS, LIBGCC2_DEBUG_CFLAGS, LIBGCC2_INCLUDES. * Makefile.in: Regenerate. config: * mh-interix (LIBGCC2_DEBUG_CFLAGS): Remove. gcc: * Makefile.in (LIBGCC2_DEBUG_CFLAGS LIBGCC2_CFLAGS) (LIBGCC2_INCLUDES, TARGET_LIBGCC2_CFLAGS, LIB2FUNCS_EXTRA) (LIB2FUNCS_STATIC_EXTRA, LIB2FUNCS_EXCLUDE, T, T_TARGET) (INCLUDES_FOR_TARGET): Remove. (LIBGCC2_CFLAGS): Don't export. (LIB2FUNCS_ST, LIB2_DIVMOD_FUNCS, LIB2ADD, LIB2ADD_ST, srcdirify): Remove. (libgcc-support): Remove $(LIB2ADD), $(LIB2ADD_ST) dependencies. (libgcc.mvars): Likewise. Don't emit LIB2FUNCS_ST, LIB2FUNCS_EXCLUDE, LIB2ADD, LIB2ADD_ST, LIB2_SIDITI_CONV_FUNCS, LIB2_DIVMOD_FUNCS, LIBGCC2_CFLAGS, TARGET_LIBGCC2_CFLAGS. Emit GTHREAD_FLAGS. * libgcc2.c, libgcc2.h, gbl-ctors.h, longlong.h: Move to ../libgcc. * config/darwin-64.c: Move to ../libgcc/config. * config/divmod.c, config/floatunsidf.c, config/floatunsisf.c, config/floatunsitf.c, config/floatunsixf.c, config/udivmod.c, config/udivmodsi4.c: Move to ../libgcc/config. * config/gthr-posix.c: Move to ../libgcc/config/alpha. * config/memcmp.c, config/memcpy.c, config/memmove.c, config/memset.c: Move to ../libgcc/config. * config/t-darwin (TARGET_LIBGCC2_CFLAGS): Remove. * config/t-freebsd: Remove. * config/t-freebsd-thread: Move to ../libgcc/config. * config/t-libgcc-pic: Move to ../libgcc/config. * config/t-libunwind (TARGET_LIBGCC2_CFLAGS): Remove. * config/t-linux: Remove. * config/t-lynx (TARGET_LIBGCC2_CFLAGS, LIBGCC, INSTALL_LIBGCC): Remove * config/t-openbsd-thread: Move to ../libgcc/config. * config/t-rtems (LIBGCC2_INCLUDES): Remove. * config/t-sol2 (TARGET_LIBGCC2_CFLAGS): Remove. * config/t-svr4: Remove. * config/t-vxworks (LIBGCC, INSTALL_LIBGCC, TARGET_LIBGCC2_CFLAGS) (LIBGCC2_DEBUG_CFLAGS, LIB2FUNCS_EXTRA, LIBGCC2_INCLUDES): Remove. * config/vxlib.c, config/vxlib-tls.c: Move to ../libgcc/config. * config/alpha/qrnnd.asm: Move to ../libgcc/config/alpha/qrnnd.S. * config/alpha/t-alpha, config/alpha/t-ieee: Remove. * config/alpha/t-vms (LIB2FUNCS_EXTRA, LIBGCC, INSTALL_LIBGCC): Remove. * config/alpha/vms-gcc_shell_handler.c: Move to ../libgcc/config/alpha. * config/arm/bpabi.c, config/arm/unaligned-funcs.c, config/arm/fp16.c, config/arm/linux-atomic.c, config/arm/linux-atomic-64bit.c: Move to ../libgcc/config/arm. * config/arm/t-arm-elf (LIBGCC, INSTALL_LIBGCC) (TARGET_LIBGCC2_CFLAGS): Remove. * config/arm/t-bpabi, config/arm/t-linux: Remove. * config/arm/t-linux-eabi (TARGET_LIBGCC2_CFLAGS) (LIB2FUNCS_STATIC_EXTRA): Remove. * config/arm/t-netbsd: Remove. * config/arm/t-strongarm-elf (LIBGCC, INSTALL_LIBGCC) (TARGET_LIBGCC2_CFLAGS): Remove. * config/arm/t-symbian (LIB2FUNCS_STATIC_EXTRA): Remove. * config/arm/t-wince-pe (LIBGCC, INSTALL_LIBGCC) (TARGET_LIBGCC2_CFLAGS): Remove. * config/avr/t-avr (LIB2FUNCS_EXCLUDE, TARGET_LIBGCC2_CFLAGS) (LIBGCC, INSTALL_LIBGCC): Remove. * config/bfin/t-bfin-elf (TARGET_LIBGCC2_CFLAGS): Remove. * config/bfin/t-bfin-linux: Likewise. * config/bfin/t-bfin-uclinux: Likewise. * config/c6x/eqd.c, config/c6x/eqf.c, config/c6x/ged.c, config/c6x/gef.c, config/c6x/gtd.c, config/c6x/gtf.c, config/c6x/led.c, config/c6x/lef.c, config/c6x/ltd.c, config/c6x/ltf.c: Move to ../libgcc/config/c6x. * config/c6x/t-c6x-elf (LIB2FUNCS_EXCLUDE, LIB2FUNCS_EXTRA): Remove. * config/c6x/t-c6x-uclinux (TARGET_LIBGCC2_CFLAGS): Remove. * config/cris/arit.c: Move to ../libgcc/config/cris. * config/cris/cris_abi_symbol.c: Remove. * config/cris/cris.h: Remove obsolete comment. * config/cris/mulsi3.asm: Move to ../libgcc/config/cris/mulsi3.S. * config/cris/t-cris (LIB2FUNCS_EXTRA, CRIS_LIB1CSRC) ($(LIB2FUNCS_EXTRA)): Remove. * config/cris/t-elfmulti (LIB2FUNCS_STATIC_EXTRA, INSTALL_LIBGCC) (LIBGCC): Remove. * config/cris/t-linux (TARGET_LIBGCC2_CFLAGS): Remove. * config/fr30/t-fr30: Remove. * config/frv/cmovd.c, config/frv/cmovh.c, config/frv/cmovw.c, config/frv/modi.c, config/frv/uitod.c, config/frv/uitof.c, config/frv/ulltod.c, config/frv/ulltof.c, config/frv/umodi.c: Move to ../libgcc/config/frv. * config/frv/t-frv (LIB2FUNCS_EXTRA, TARGET_LIBGCC2_CFLAGS) (cmovh.c, cmovw.c, cmovd.c, modi.c, umodi.c, uitof.c, uitod.c) (ulltof.c, LIBGCC, INSTALL_LIBGCC): Remove. * config/frv/t-linux (TARGET_LIBGCC2_CFLAGS): Remove. * config/h8300/clzhi2.c, config/h8300/ctzhi2.c, config/h8300/fixunssfsi.c, config/h8300/parityhi2.c, config/h8300/popcounthi2.c: Move to ../libgcc/config/h8300. * config/h8300/t-h8300 (LIB2FUNCS_EXTRA, TARGET_LIBGCC2_CFLAGS) (LIBGCC, INSTALL_LIBGCC): Remove. * config/i386/gthr-win32.c: Move to ../libgcc/config/i386. * config/i386/t-cygming (LIBGCC2_INCLUDES): Remove. * config/i386/t-cygwin: Remove. * config/i386/t-darwin (LIB2_SIDITI_CONV_FUNCS, LIB2FUNCS_EXTRA) (LIB2FUNCS_EXCLUDE): Remove. * config/i386/t-darwin64 (LIB2_SIDITI_CONV_FUNCS, LIB2FUNCS_EXTRA) (LIBGCC, INSTALL_LIBGCC): Remove. * config/i386/t-gthr-win32: Move to ../libgcc/config/i386. * config/i386/t-linux64 (LIBGCC, INSTALL_LIBGCC): Remove. * config/i386/t-mingw-w32: Likewise. * config/i386/t-mingw-w64: Likewise. * config/i386/t-openbsd: Likewise. * config/i386/t-nto: Remove. * config/ia64/quadlib.c: Move to ../libgcc/config/ia64. * config/ia64/t-hpux (LIBGCC, INSTALL_LIBGCC, LIB2FUNCS_EXTRA) (quadlib.c): Remove. * config/ia64/t-ia64: Remove comment. * config/iq2000/lib2extra-funcs.c: Move to ../libgcc/config/iq2000/lib2funcs.c. * config/iq2000/t-iq2000: Remove. * config/m32c/m32c-lib2.c: Move to ../libgcc/config/m32c/lib2funcs.c. * config/m32c/m32c-lib2-trapv.c: Move to ../libgcc/config/m32c/trapv.c. * config/m32r/t-linux (TARGET_LIBGCC2_CFLAGS): Remove. * config/m32c/t-m32c (LIB2FUNCS_EXTRA): Remove. * config/m32r/t-m32r (TARGET_LIBGCC2_CFLAGS, LIBGCC) (INSTALL_LIBGCC): Remove. * config/m68k/fpgnulib.c: Move to ../libgcc/config/m68k. * config/m68k/t-floatlib: Remove. * config/m68k/t-mlibs (LIBGCC, INSTALL_LIBGCC): Remove. * config/mcore/t-mcore (TARGET_LIBGCC2_CFLAGS): Remove. Fix typo. (LIBGCC, INSTALL_LIBGCC): Remove. * config/mep/mep-lib2.c: Move to ../libgcc/config/mep/lib2funcs.c. * config/mep/mep-tramp.c: Move to ../libgcc/config/mep/tramp.c. * config/mep/t-mep (LIB2FUNCS_EXTRA): Remove. * config/mips/t-elf (TARGET_LIBGCC2_CFLAGS, LIBGCC) (INSTALL_LIBGCC): Remove. * config/mips/t-isa3264: Likewise. * config/mips/t-mips (LIB2_SIDITI_CONV_FUNCS): Remove. * config/mips/t-r3900 (TARGET_LIBGCC2_CFLAGS, LIBGCC) (INSTALL_LIBGCC): Remove. * config/mips/t-sde (LIBGCC, INSTALL_LIBGCC): Remove. * config/mips/t-sr71k (TARGET_LIBGCC2_CFLAGS, LIBGCC) (INSTALL_LIBGCC): Remove. * config/mips/t-vr (TARGET_LIBGCC2_CFLAGS) (LIB2FUNCS_STATIC_EXTRA): Remove. * config/mips/vr4120-div.S: Move to ../libgcc/config/mips. * config/mmix/t-mmix (TARGET_LIBGCC2_CFLAGS): Remove. * config/mn10300/t-mn10300 (LIBGCC, INSTALL_LIBGCC): Remove. * config/pa/fptr.c, config/pa/linux-atomic.c: Move to ../libgcc/config/pa. * config/pa/lib2funcs.asm: Move to ../libgcc/config/pa/lib2funcs.S. * config/pa/quadlib.c: Move to ../libgcc/config/pa. * config/pa/t-dce-thr (LIBGCC, INSTALL_LIBGCC): Remove. * config/pa/t-linux, config/pa/t-linux64: Remove. * config/pa/t-pa-hpux, config/pa/t-pa-hpux10, config/pa/t-pa-hpux11, config/pa/t-pa64: Remove. * config/pdp11/t-pdp11 (TARGET_LIBGCC2_CFLAGS, LIB2FUNCS_EXTRA): Remove. * config/picochip/libgccExtras: Move to ../libgcc/config/picochip. * config/picochip/t-picochip (LIB2FUNCS_EXTRA, RANLIB_FOR_TARGET) (TARGET_LIBGCC2_CFLAGS, LIBGCC2_DEBUG_CFLAGS): Remove. * config/rs6000/crtresfpr.asm: Move to ../libgcc/config/rs6000/crtresfpr.S. * config/rs6000/crtresgpr.asm: Move to ../libgcc/config/rs6000/crtresgpr.S. * config/rs6000/crtresxfpr.asm: Move to ../libgcc/config/rs6000/crtresxfpr.S. * config/rs6000/crtresxgpr.asm: Move to ../libgcc/config/rs6000/crtresxgpr.S. * config/rs6000/crtsavfpr.asm: Move to ../libgcc/config/rs6000/crtsavfpr.S. * config/rs6000/crtsavgpr.asm: Move to ../libgcc/config/rs6000/crtsavgpr.S. * config/rs6000/darwin-asm.h: Move to ../libgcc/config/rs6000. * config/rs6000/darwin-fpsave.asm: Move to ../libgcc/config/rs6000/darwin-fpsave.S. * config/rs6000/darwin-gpsave.asm: Move to ../libgcc/config/rs6000/darwin-gpsave.S. * config/rs6000/darwin-tramp.asm: Move to ../libgcc/config/rs6000/darwin-tramp.S. * config/rs6000/darwin-vecsave.asm: Move to ../libgcc/config/rs6000/darwin-vecsave.S. * config/rs6000/darwin-world.asm: Move to ../libgcc/config/rs6000/darwin-world.S. * config/rs6000/e500crtres32gpr.asm: Move to ../libgcc/config/rs6000/e500crtres32gpr.S. * config/rs6000/e500crtres64gpr.asm: Move to ../libgcc/config/rs6000/e500crtres64gpr.S. * config/rs6000/e500crtres64gprctr.asm: Move to ../libgcc/config/rs6000/e500crtres64gprctr.S. * config/rs6000/e500crtrest32gpr.asm: Move to ../libgcc/config/rs6000/e500crtrest32gpr.S. * config/rs6000/e500crtrest64gpr.asm: Move to ../libgcc/config/rs6000/e500crtrest64gpr.S. * config/rs6000/e500crtresx32gpr.asm: Move to ../libgcc/config/rs6000/e500crtresx32gpr.S. * config/rs6000/e500crtresx64gpr.asm: Move to ../libgcc/config/rs6000/e500crtresx64gpr.S. * config/rs6000/e500crtsav32gpr.asm: Move to ../libgcc/config/rs6000/e500crtsav32gpr.S. * config/rs6000/e500crtsav64gpr.asm: Move to ../libgcc/config/rs6000/e500crtsav64gpr.S. * config/rs6000/e500crtsav64gprctr.asm: Move to ../libgcc/config/rs6000/e500crtsav64gprctr.S. * config/rs6000/e500crtsavg32gpr.asm: Move to ../libgcc/config/rs6000/e500crtsavg32gpr.S. * config/rs6000/e500crtsavg64gpr.asm: Move to ../libgcc/config/rs6000/e500crtsavg64gpr.S. * config/rs6000/e500crtsavg64gprctr.asm: Move to ../libgcc/config/rs6000/e500crtsavg64gprctr.S. * config/rs6000/eabi.asm: Move to ../libgcc/config/rs6000/eabi.S. * config/rs6000/t-aix43 (LIBGCC, INSTALL_LIBGCC, LIB2FUNCS_EXTRA) (TARGET_LIBGCC2_CFLAGS): Remove. * config/rs6000/t-aix52: Likewise. * config/rs6000/t-darwin: Remove. * config/rs6000/t-darwin64 (LIB2_SIDITI_CONV_FUNCS) (LIB2FUNCS_EXTRA): Remove. * config/rs6000/t-fprules (LIBGCC, INSTALL_LIBGCC): Remove. * config/rs6000/t-linux64 (TARGET_LIBGCC2_CFLAGS): Remove. * config/rs6000/t-lynx (LIB2FUNCS_EXTRA, tramp.S, LIBGCC) (INSTALL_LIBGCC): Remove. * config/rs6000/t-netbsd (LIB2FUNCS_EXTRA) (LIB2FUNCS_STATIC_EXTRA, tramp.S, crtsavfpr.S, crtresfpr.S) (crtsavgpr.S, crtresgpr.S, crtresxfpr.S, crtresxgpr.S, LIBGCC) (INSTALL_LIBGCC, $(T)crtsavfpr$(objext), $(T)crtresfpr$(objext)) (($(T)crtsavgpr$(objext), $(T)crtresgpr$(objext), $(T)crtresxfpr$(objext), $(T)crtresxgpr$(objext)): Remove. * config/rs6000/t-ppccomm (LIB2FUNCS_EXTRA) (LIB2FUNCS_STATIC_EXTRA, eabi.S, tramp.S): Remove. * config/rs6000/t-spe (LIBGCC, INSTALL_LIBGCC): Remove. * config/rs6000/t-vxworks: Remove comment. * config/rs6000/tramp.asm: Move to ../libgcc/config/rs6000/tramp.S. * config/rx/t-rx (LIBGCC, INSTALL_LIBGCC): Remove. * config/sh/linux-atomic.asm: Move to ../libgcc/config/sh/linux-atomic.S. * config/sh/t-linux (LIB2FUNCS_EXTRA): Remove. * config/sh/t-netbsd: Remove. * config/sh/t-sh (TARGET_LIBGCC2_CFLAGS, LIBGCC, INSTALL_LIBGCC): Remove. * config/sparc/t-elf (LIBGCC, INSTALL_LIBGCC): Remove. * config/sparc/t-leon: Likewise. * config/sparc/t-leon3: Likewise. * config/sparc/t-linux64: Likewise. * config/sparc/t-netbsd64: Fix typo. Remove comment. * config/spu/divmodti4.c, config/spu/divv2df3.c, config/spu/float_disf.c, config/spu/float_unsdidf.c, config/spu/float_unsdisf.c, config/spu/float_unssidf.c, config/spu/mfc_multi_tag_release.c, config/spu/mfc_multi_tag_reserve.c, config/spu/mfc_tag_release.c, config/spu/mfc_tag_reserve.c, config/spu/mfc_tag_table.c, config/spu/multi3.c: Move to ../libgcc/config/spu. * config/spu/t-spu-elf (TARGET_LIBGCC2_CFLAGS, LIB2FUNCS_EXCLUDE) (LIB2FUNCS_STATIC_EXTRA, LIB2_SIDITI_CONV_FUNCS, LIBGCC) (INSTALL_LIBGCC): Remove. * config/stormy16/stormy16-lib2.c: Move to ../libgcc/config/stormy16/lib2.c. * config/stormy16/stormy16-lib2-ashlsi3.c: Move to ../libgcc/config/stormy16/ashlsi3.c. * config/stormy16/stormy16-lib2-ashrsi3.c: Move to ../libgcc/config/stormy16/ashrsi3.c. * config/stormy16/stormy16-lib2-clzhi2.c: Move to ../libgcc/config/stormy16/clzhi2.c. * config/stormy16/stormy16-lib2-cmpsi2.c: Move to ../libgcc/config/stormy16/cmpsi2.c. * config/stormy16/stormy16-lib2-ctzhi2.c: Move to ../libgcc/config/stormy16/ctzhi2.c. * config/stormy16/stormy16-lib2-divsi3.c: Move to ../libgcc/config/stormy16/divsi3.c. * config/stormy16/stormy16-lib2-ffshi2.c: Move to ../libgcc/config/stormy16/ffshi2.c. * config/stormy16/stormy16-lib2-lshrsi3.c: Move to ../libgcc/config/stormy16/lshrsi3.c. * config/stormy16/stormy16-lib2-modsi3.c: Move to ../libgcc/config/stormy16/modsi3.c. * config/stormy16/stormy16-lib2-parityhi2.c: Move to ../libgcc/config/stormy16/parityhi2.c. * config/stormy16/stormy16-lib2-popcounthi2.c: Move to ../libgcc/config/stormy16/popcounthi2.c. * config/stormy16/stormy16-lib2-ucmpsi2.c: Move to ../libgcc/config/stormy16/ucmpsi2.c. * config/stormy16/stormy16-lib2-udivmodsi4.c: Move to ../libgcc/config/stormy16/udivmodsi4.c. * config/stormy16/stormy16-lib2-udivsi3.c: Move to ../libgcc/config/stormy16/udivsi3.c. * config/stormy16/stormy16-lib2-umodsi3.c: Move to ../libgcc/config/stormy16/umodsi3.c. * config/stormy16/t-stormy16: Move to ../libgcc/config/t-stormy16. * config/v850/t-v850 (INSTALL_LIBGCC): Remove. * config/xtensa/lib2funcs.S: Move to ../libgcc/config/xtensa. * config/xtensa/t-elf: Remove. * config/xtensa/t-xtensa (LIB2FUNCS_EXTRA): Remove. * config.gcc (*-*-freebsd*): Remove t-freebsd, t-freebsd-thread from tmake_file. (*-*-linux*, frv-*-*linux*, *-*-kfreebsd*-gnu, *-*-knetbsd*-gnu, *-*-gnu*, *-*-kopensolaris*-gnu): Remove t-linux from tmake_file. (*-*-netbsd*): Remove t-libgcc-pic from tmake_file. (*-*-openbsd*): Likewise. Remove t-openbsd-thread for posix threads. (alpha*-*-linux*): Remove alpha/t-alpha, alpha/t-ieee from tmake_file. (alpha*-*-freebsd*): Likewise. (alpha*-*-netbsd*): Likewise. (alpha*-*-openbsd*): Likewise. (alpha64-dec-*vms*): Likewise. (alpha*-dec-*vms*): Likewise. (arm*-*-netbsdelf*): Remove arm/t-netbsd from tmake_file. (arm*-*-linux*): Remove t-linux from tmake_file. Remove arm/t-bpabi from tmake_file for arm*-*-linux-*eabi. (arm*-*-uclinux*): Remove arm/t-bpabi from tmake_file for arm*-*-uclinux*eabi. (arm*-*-eabi*, arm*-*-symbianelf* ): Remove arm/t-bpabi from tmake_file for arm*-*-eabi*. (fr30-*-elf): Remove tmake_file. (hppa*64*-*-linux*): Remove tmake_file. (hppa*-*-linux*): Likewise. (hppa[12]*-*-hpux10*): Remove pa/t-pa-hpux10, pa/t-pa-hpux from tmake_file. (hppa*64*-*-hpux11*): Remove pa/t-pa64, pa/t-pa-hpux from tmake_file. (hppa[12]*-*-hpux11*): Remove pa/t-pa-hpux11, pa/t-pa-hpux from tmake_file. (i[34567]86-*-elf*): Remove tmake_file. (x86_64-*-elf*): Likewise. (i[34567]86-*-nto-qnx*): Likewise. (i[34567]86-*-cygwin*): Remove i386/t-cygwin from tmake_file. (i[34567]86-*-mingw*, x86_64-*-mingw*): Remove i386/t-gthr-win32 from tmake_file if using win32 threads. (iq2000*-*-elf*): Remove tmake-file. (microblaze*-linux*): Likewise. (sh-*-elf*, sh[12346l]*-*-elf*, sh-*-linux*) (sh[2346lbe]*-*-linux*, sh-*-netbsdelf*, shl*-*-netbsdelf*) (sh5-*-netbsd*, sh5l*-*-netbsd*, sh64-*-netbsd*) (sh64l*-*-netbsd*): Remove sh/t-netbsd from tmake_file for sh5*-*-netbsd*, sh64*-netbsd*, *-*-netbsd. (xtensa*-*-elf*): Remove tmake_file. gcc/po: * EXCLUDES (config/vxlib.c, gbl-ctors.h, libgcc2.c, libgcc2.h) (longlong.h): Remove. libgcc: * configure.ac: Include ../config/picflag.m4. (GCC_PICFLAG): Call it. Substitute. * configure: Regenerate. * Makefile.in (gcc_srcdir): Remove. (LIBGCC2_DEBUG_CFLAGS, LIBGCC2_CFLAGS, LIBGCC2_INCLUDES) (HOST_LIBGCC2_CFLAGS, PICFLAG, LIB2FUNCS_ST, LIB2FUNCS_EXCLUDE) (LIB2_DIVMOD_FUNCS, LIB2ADD, LIB2ADD_ST): Set. ($(lib2funcs-o), $(lib2funcs-s-o), $(lib2-divmod-o)) ($(lib2-divmod-s-o)): Use $(srcdir) to refer to libgcc2.c. Use $<. Remove comment. * libgcc2.c, libgcc2.h, gbl-ctors.h, longlong.h: New files. * siditi-object.mk ($o$(objext), $(o)_s$(objext)): Use $(srcdir) to refer to libgcc2.c. Use $<. * config/darwin-64.c: New file. * config/darwin-crt3.c: Remove comment. * config/divmod.c, config/floatunsidf.c, config/floatunsisf.c, config/floatunsitf.c, config/floatunsixf.c, config/udivmod.c, config/udivmodsi4.c: New files. * config/memcmp.c, config/memcpy.c, config/memmove.c, config/memset.c: New files. * config/t-crtstuff-pic (CRTSTUFF_T_CFLAGS_S): Use $(PICFLAG). * config/t-darwin (HOST_LIBGCC2_CFLAGS): Set. * config/t-freebsd-thread, config/t-libgcc-pic: New files. * config/t-libunwind (HOST_LIBGCC2_CFLAGS): Set. * config/t-openbsd-thread: New file. * config/t-sol2 (HOST_LIBGCC2_CFLAGS): Remove. * config/t-vxworks, config/vxlib-tls.c, config/vxlib.c: New files. * config/alpha/gthr-posix.c, config/alpha/qrnnd.S: New files. * config/alpha/t-alpha (LIB2ADD): Use $(srcdir) to refer to qrnnd.S. Adapt filename. * config/alpha/t-osf-pthread (LIB2ADD): Use $(srcdir)/config/alpha to refer to gthr-posix.c. * config/alpha/t-vms (LIB2ADD): Set. * config/alpha/vms-gcc_shell_handler.c: New file. * config/arm/bpabi.c, config/arm/fp16.c, config/arm/linux-atomic.c, config/arm/linux-atomic-64bit.c, config/arm/unaligned-funcs.c: New files. * config/arm/t-bpabi (LIB2ADD, LIB2ADD_ST): Set. * config/arm/t-elf (HOST_LIBGCC2_CFLAGS): Set. * config/arm/t-linux: Likewise. * config/arm/t-linux-eabi (LIB2ADD_ST): Add. * config/arm/t-netbsd: New file. * config/arm/t-strongarm-elf (HOST_LIBGCC2_CFLAGS): Set. * config/arm/t-symbian (LIB2ADD_ST): Set. * config/avr/t-avr (LIB2FUNCS_EXCLUDE, HOST_LIBGCC2_CFLAGS): Set. * config/bfin/t-crtstuff (CRTSTUFF_T_CFLAGS): Use $(PICFLAG). * config/bfin/t-elf: New file. * config/c6x/eqd.c, config/c6x/eqf.c, config/c6x/ged.c, config/c6x/gef.c, config/c6x/gtd.c, config/c6x/gtf.c, config/c6x/led.c, config/c6x/lef.c, config/c6x/ltd.c, config/c6x/ltf.c: New files. * config/c6x/t-elf (LIB2FUNCS_EXCLUDE, LIB2ADD) (HOST_LIBGCC2_CFLAGS): Set. * config/c6x/t-uclinux (HOST_LIBGCC2_CFLAGS): Set. (CRTSTUFF_T_CFLAGS): Use $(PICFLAG). * config/cris/arit.c, config/cris/mulsi3.S, config/cris/t-cris: New files. * config/cris/t-elfmulti (LIB2ADD_ST): Set. * config/cris/t-linux (HOST_LIBGCC2_CFLAGS): Remove. * config/frv/cmovd.c, config/frv/cmovh.c, config/frv/cmovw.c, config/frv/modi.c, config/frv/uitod.c, config/frv/uitof.c, config/frv/ulltod.c, config/frv/ulltof.c, config/frv/umodi.c: New files. * config/frv/t-frv (LIB2ADD): Set. * config/frv/t-linux (CRTSTUFF_T_CFLAGS): Use $(PICFLAG). * config/h8300/clzhi2.c, config/h8300/ctzhi2.c, config/h8300/fixunssfsi.c, config/h8300/parityhi2.c, config/h8300/popcounthi2.c: New files. * config/h8300/t-h8300 (LIB2ADD, HOST_LIBGCC2_CFLAGS): Set. * config/i386/gthr-win32.c: New file. * config/i386/t-cygming (LIBGCC2_INCLUDES): Set. * config/i386/t-cygwin: Likewise. * config/i386/t-darwin, config/i386/t-darwin64, config/i386/t-gthr-win32, config/i386/t-interix: New files. * config/i386/t-nto (HOST_LIBGCC2_CFLAGS): Set. (CRTSTUFF_T_CFLAGS): Use $(PICFLAG). * config/i386/t-sol2 (CRTSTUFF_T_CFLAGS): Use $(PICFLAG). * config/ia64/quadlib.c: New file. * config/ia64/t-hpux (LIB2ADD): Set. * config/ia64/t-ia64: Add comment. * config/iq2000/lib2funcs.c, config/iq2000/t-iq2000: New files. * config/lm32/t-uclinux (CRTSTUFF_T_CFLAGS): Use $(PICFLAG). (HOST_LIBGCC2_CFLAGS): Append, remove -fPIC. * config/m32c/lib2funcs.c, config/m32c/trapv.c: New files. * config/m32c/t-m32c (LIB2ADD): Set. * config/m32r/t-linux (HOST_LIBGCC2_CFLAGS): Set. * config/m32r/t-m32r: Likewise. * config/m68k/fpgnulib.c: New file. * config/m68k/t-floatlib (LIB2ADD): Set. (xfgnulib.c): New target. * config/mcore/t-mcore (HOST_LIBGCC2_CFLAGS): Set. * config/mep/lib2funcs.c, config/mep/tramp.c: New files. * config/mep/t-mep (LIB2ADD): Set. * config/microblaze/divsi3.asm: Rename to divsi3.S. * config/microblaze/moddi3.asm: Rename to moddi3.S. * config/microblaze/modsi3.asm: Rename to modsi3.S. * config/microblaze/muldi3_hard.asm: Rename to hard.S. * config/microblaze/mulsi3.asm: Rename to mulsi3.S. * config/microblaze/stack_overflow_exit.asm: Rename to exit.S. * config/microblaze/udivsi3.asm: Rename to udivsi3.S. * config/microblaze/umodsi3.asm: Rename to umodsi3.S. * config/microblaze/t-microblaze (LIB2ADD): Reflect this. * config/mips/t-elf, config/mips/t-vr, config/mips/vr4120-div.S: New files. * config/mips/t-mips (LIB2_SIDITI_CONV_FUNCS): Set. * config/mmix/t-mmix (HOST_LIBGCC2_CFLAGS): Set. * config/pa/fptr.c, config/pa/lib2funcs.S, config/pa/linux-atomic.c, config/pa/quadlib.c: New files. * config/pa/t-linux (HOST_LIBGCC2_CFLAGS): Set. (LIB2ADD, LIB2ADD_ST): Set. * config/pa/t-hpux, config/pa/t-hpux10, config/pa/t-pa64: New files. * config/pa/t-linux (HOST_LIBGCC2_CFLAGS, LIB2ADD, LIB2ADD_ST): Set. * config/pa/t-linux64 (LIB2ADD_ST, HOST_LIBGCC2_CFLAGS): Set. * config/pdp11/t-pdp11: New file. * config/picochip/libgccExtras/adddi3.S, config/picochip/libgccExtras/ashlsi3.S, config/picochip/libgccExtras/ashrsi3.S, config/picochip/libgccExtras/clzsi2.S, config/picochip/libgccExtras/cmpsi2.S, config/picochip/libgccExtras/divmod15.S, config/picochip/libgccExtras/divmodhi4.S, config/picochip/libgccExtras/divmodsi4.S, config/picochip/libgccExtras/lshrsi3.S, config/picochip/libgccExtras/parityhi2.S, config/picochip/libgccExtras/popcounthi2.S, config/picochip/libgccExtras/subdi3.S, config/picochip/libgccExtras/ucmpsi2.S, config/picochip/libgccExtras/udivmodhi4.S, config/picochip/libgccExtras/udivmodsi4.S: New files. * config/picochip/t-picochip (LIB2ADD, HOST_LIBGCC2_CFLAGS) (LIBGCC2_DEBUG_CFLAGS, RANLIB_FOR_TARGET): Set. * config/rs6000/crtresfpr.S, config/rs6000/crtresgpr.S, config/rs6000/crtresxfpr.S, config/rs6000/crtresxgpr.S, config/rs6000/crtsavfpr.S, config/rs6000/crtsavgpr.S) config/rs6000/darwin-asm.h, config/rs6000/darwin-fpsave.S, config/rs6000/darwin-gpsave.S, config/rs6000/darwin-tramp.S, config/rs6000/darwin-vecsave.S, config/rs6000/darwin-world.S: New files. * config/rs6000/t-darwin (LIB2ADD, LIB2ADD_ST) (HOST_LIBGCC2_CFLAGS): Set. * config/rs6000/t-darwin64: New file. * config/rs6000/t-linux64 (HOST_LIBGCC2_CFLAGS): Set. * config/rs6000/t-lynx, config/rs6000/t-netbsd: New files. * config/rs6000/t-ppccomm (LIB2ADD): Add $(srcdir)/config/rs6000/tramp.S. (LIB2ADD_ST): Use $(srcdir)/config/rs6000 to refer to sources. Add $(srcdir)/config/rs6000/eabi.S. (crtsavfpr.S, crtresfpr.S, crtsavgpr.S, crtresgpr.S, crtresxfpr.S) (crtresxgpr.S, e500crtres32gpr.S, e500crtres64gpr.S) (e500crtres64gprctr.S, e500crtrest32gpr.S, e500crtrest64gpr.S) (e500crtresx32gpr.S, e500crtresx64gpr.S, e500crtsav32gpr.S) (e500crtsav64gpr.S, e500crtsav64gprctr.S, e500crtsavg32gpr.S) (e500crtsavg64gpr.S, e500crtsavg64gprctr.S): Remove. * config/rs6000/tramp.S: New file. * config/s390/t-tpf: Remove. * config/sh/linux-atomic.S: New file. * config/sh/t-linux (LIB2ADD): Set. (HOST_LIBGCC2_CFLAGS): Append, remove -fpic. * config/sh/t-netbsd (LIB2ADD, HOST_LIBGCC2_CFLAGS): Set. * config/sh/t-sh (unwind-dw2-Os-4-200.o): Use $(srcdir) to refer to unwind-dw2.c. (HOST_LIBGCC2_CFLAGS): Set. * config/sparc/t-sol2 (CRTSTUFF_T_CFLAGS): Use $(PICFLAG). * config/spu/divmodti4.c, config/spu/divv2df3.c, config/spu/float_disf.c, config/spu/float_unsdidf.c, config/spu/float_unsdisf.c, config/spu/float_unssidf.c, config/spu/mfc_multi_tag_release.c, config/spu/mfc_multi_tag_reserve.c, config/spu/mfc_tag_release.c, config/spu/mfc_tag_reserve.c, config/spu/mfc_tag_table.c, config/spu/multi3.c: New files. * config/spu/t-elf (LIB2ADD, LIB2ADD_ST, LIB2_SIDITI_CONV_FUNCS) (HOST_LIBGCC2_CFLAGS): Set. * config/stormy16/ashlsi3.c, config/stormy16/ashrsi3.c, config/stormy16/clzhi2.c, config/stormy16/cmpsi2.c, config/stormy16/ctzhi2.c, config/stormy16/divsi3.c, config/stormy16/ffshi2.c, config/stormy16/lib2.c, config/stormy16/lshrsi3.c, config/stormy16/modsi3.c, config/stormy16/parityhi2.c, config/stormy16/popcounthi2.c, config/stormy16/t-stormy16, config/stormy16/ucmpsi2.c, config/stormy16/udivmodsi4.c, config/stormy16/udivsi3.c, config/stormy16/umodsi3.c: New files. * config/xtensa/lib2funcs.S: New file. * config/xtensa/t-elf (HOST_LIBGCC2_CFLAGS): Set. * config/xtensa/t-xtensa (LIB2ADD): Set. * config.host (*-*-darwin*): Add t-libgcc-pic to tmake_file. (*-*-freebsd*): Add t-freebsd, t-libgcc-pic to tmake_file. Add t-freebsd-thread to tmake_file for posix threads. (*-*-linux*, frv-*-*linux*, *-*-kfreebsd*-gnu, *-*-knetbsd*-gnu) (*-*-gnu*, *-*-kopensolaris*-gnu): Add t-libgcc-pic to tmake_file. (*-*-lynxos*): Likewise. (*-*-netbsd*): Likewise. (*-*-openbsd*): Likewise. Add t-openbsd-thread to tmake_file for posix threads. (*-*-solaris2*): Add t-libgcc-pic to tmake_file. (*-*-vxworks*): Set tmake_file. (alpha*-*-linux*): Add alpha/t-alpha, alpha/t-ieee to tmake_file. (alpha*-*-freebsd*): Likewise. (alpha*-*-netbsd*): Likewise. (alpha*-*-openbsd*): Likewise. (alpha*-dec-osf5.1*): Remove qrnnd.o, gthr-posix.o from extra_parts. (alpha64-dec-*vms*): Add alpha/t-alpha, alpha/t-ieee to tmake_file. (alpha*-dec-*vms*): Likewise. (arm*-*-netbsdelf*): Add arm/t-netbsd to tmake_file. (bfin*-elf*): Add bfin/t-elf to tmake_file. (bfin*-uclinux*): Likewise. (bfin*-linux-uclibc*): Likewise. (crisv32-*-elf): Add cris/t-cris to tmake_file. (crisv32-*-none): Likewise. (cris-*-elf): Likewise. (cris-*-none): Likewise. (cris-*-linux*, crisv32-*-linux*): Likewise. (hppa[12]*-*-hpux10*): Add pa/t-hpux pa/t-hpux10, t-libgcc-pic to tmake_file. (hppa*64*-*-hpux11*): Add pa/t-hpux, pa/t-pa64, t-libgcc-pic to tmake_file. (hppa[12]*-*-hpux11*): Add pa/t-hpux, t-libgcc-pic to tmake_file. (i[34567]86-*-elf*): Add t-libgcc-pic to tmake_file. (x86_64-*-elf*): Likewise. (i[34567]86-*-nto-qnx*): Likewise. (i[34567]86-*-mingw*): Add i386/t-gthr-win32 to tmake_file for win32 threads. (x86_64-*-mingw*): Likewise. (i[34567]86-*-interix3*): Add i386/t-interix to tmake_file. (lm32-*-uclinux*): Add t-libgcc-pic to tmake_file. (mipsisa32-*-elf*, mipsisa32el-*-elf*, mipsisa32r2-*-elf*) (mipsisa32r2el-*-elf*, mipsisa64-*-elf*, mipsisa64el-*-elf*) (mipsisa64r2-*-elf*, mipsisa64r2el-*-elf*): Add mips/t-elf to tmake_file. (mipsisa64sr71k-*-elf*): Likewise. (mipsisa64sb1-*-elf*, mipsisa64sb1el-*-elf*): Likewise. (mips-*-elf*, mipsel-*-elf*): Likewise. (mips64-*-elf*, mips64el-*-elf*): Likewise. (mips64orion-*-elf*, mips64orionel-*-elf*): Likewise. (mips*-*-rtems*): Likewise. (mips64vr-*-elf*, mips64vrel-*-elf*): Add mips/t-elf, mips/t-vr to tmake_file. (pdp11-*-*): Add pdp11/t-pdp11 to tmake_file. (powerpc64-*-darwin*): Add rs6000/t-darwin64 to tmake_file. (s390x-ibm-tpf*): Add t-libgcc-pic to tmake_file. (spu-*-elf*): Likewise. (tic6x-*-uclinux): Add t-libgcc-pic to tmake_file. libquadmath: * printf/gmp-impl.h: Adapt path to longlong.h. From-SVN: r180774
2011-11-02 16:23:48 +01:00
GCC_PICFLAG
AC_SUBST(PICFLAG)
AC_MSG_CHECKING([for --enable-version-specific-runtime-libs])
AC_ARG_ENABLE(version-specific-runtime-libs,
[ --enable-version-specific-runtime-libs Specify that runtime libraries should be installed in a compiler-specific directory ],
[case "$enableval" in
yes) version_specific_libs=yes ;;
no) version_specific_libs=no ;;
*) AC_MSG_ERROR([Unknown argument to enable/disable version-specific libs]);;
esac],
[version_specific_libs=no])
AC_MSG_RESULT($version_specific_libs)
Makefile.def (target_modules): Add libgcc. ./ * Makefile.def (target_modules): Add libgcc. (lang_env_dependencies): Remove default items. Use no_c and no_gcc. * Makefile.tpl (clean-target-libgcc): Delete. (configure-target-[+module+]): Emit --disable-bootstrap dependencies on gcc even for bootstrapped modules. Rewrite handling of lang_env_dependencies to loop over target_modules. * configure.in (target_libraries): Add target-libgcc. * Makefile.in, configure: Regenerated. gcc/ * config.gcc: Mention libgcc/config.host. * Makefile.in: Update comments mentioning libgcc. (LIBGCC, INSTALL_LIBGCC, GCC_PARTS, mklibgcc): Delete. (all.cross, start.encap, rest.encap, rest.cross): Update dependencies for libgcc move. (libgcc.mk, LIBGCC_DEPS, libgcov.a, libgcc.a, stmp-multilib) (clean-target, clean-target-libgcc): Delete. (srcdirify, GCC_EXTRA_PARTS): New macros. (libgcc-support, libgcc.mvars): New rules. (distclean): Remove mention of mklibgcc. (install): Don't reference INSTALL_LIBGCC. (install-common): Don't reference EXTRA_PARTS. (install-libgcc, install-multilib): Delete rules. * mklibgcc.in: Delete file. * doc/configfiles.texi: Don't mention mklibgcc. * config/i386/t-darwin (SHLIB_VERPFX): Delete (moved to libgcc). * config/i386/t-darwin64 (SHLIB_VERPFX): Likewise. * config/rs6000/t-darwin (SHLIB_VERPFX): Likewise. * config/rs6000/t-ppccomm (TARGET_LIBGCC2_CFLAGS, SHLIB_MAPFILES) (mklibgcc, ldblspecs): Likewise. * config/i386/t-nwld (libgcc.def, libc.def, libpcre.def) (posixpre.def): Use $(T). (SHLIB_EXT, SHLIB_NAME, SHLIB_SLIBDIR_QUAL, SHLIB_DEF, SHLIB_MAP) (SHLIB_SRC, SHLIB_INSTALL): Delete. (SHLIB_LINK): Make dummy. * config/t-slibgcc-darwin: Delete contents except for dummy SHLIB_LINK. * config/frv/t-linux (EXTRA_MULTILIB_PARTS): Clear. * config/alpha/t-crtfm: Use $(T) in rules for EXTRA_PARTS. * config/alpha/t-vms, config/alpha/t-vms64, config/fr30/t-fr30, config/i386/t-rtems-i386, config/ia64/t-ia64, config/rs6000/t-beos, config/rs6000/t-newas, config/sparc/t-elf: Likewise. * configure.ac (all_outputs): Remove mklibgcc. * configure: Regenerated. libgcc/ * Makefile.in, config/i386/t-darwin, config/i386/t-darwin64, config/i386/t-nwld, config/rs6000/t-darwin, config/rs6000/t-ldbl128, config/i386/t-crtfm, config/alpha/t-crtfm, config/ia64/t-ia64, config/sparc/t-crtfm, config/t-slibgcc-darwin, config/rs6000/t-ppccomm, config.host, configure.ac, empty.mk, shared-object.mk, siditi-object.mk, static-object.mk: New files. * configure: Generated. Co-Authored-By: Paolo Bonzini <bonzini@gnu.org> From-SVN: r120429
2007-01-04 05:22:37 +01:00
AC_ARG_WITH(slibdir,
[ --with-slibdir=DIR shared libraries in DIR [LIBDIR]],
slibdir="$with_slibdir",
if test "${version_specific_libs}" = yes; then
Makefile.def (target_modules): Add libgcc. ./ * Makefile.def (target_modules): Add libgcc. (lang_env_dependencies): Remove default items. Use no_c and no_gcc. * Makefile.tpl (clean-target-libgcc): Delete. (configure-target-[+module+]): Emit --disable-bootstrap dependencies on gcc even for bootstrapped modules. Rewrite handling of lang_env_dependencies to loop over target_modules. * configure.in (target_libraries): Add target-libgcc. * Makefile.in, configure: Regenerated. gcc/ * config.gcc: Mention libgcc/config.host. * Makefile.in: Update comments mentioning libgcc. (LIBGCC, INSTALL_LIBGCC, GCC_PARTS, mklibgcc): Delete. (all.cross, start.encap, rest.encap, rest.cross): Update dependencies for libgcc move. (libgcc.mk, LIBGCC_DEPS, libgcov.a, libgcc.a, stmp-multilib) (clean-target, clean-target-libgcc): Delete. (srcdirify, GCC_EXTRA_PARTS): New macros. (libgcc-support, libgcc.mvars): New rules. (distclean): Remove mention of mklibgcc. (install): Don't reference INSTALL_LIBGCC. (install-common): Don't reference EXTRA_PARTS. (install-libgcc, install-multilib): Delete rules. * mklibgcc.in: Delete file. * doc/configfiles.texi: Don't mention mklibgcc. * config/i386/t-darwin (SHLIB_VERPFX): Delete (moved to libgcc). * config/i386/t-darwin64 (SHLIB_VERPFX): Likewise. * config/rs6000/t-darwin (SHLIB_VERPFX): Likewise. * config/rs6000/t-ppccomm (TARGET_LIBGCC2_CFLAGS, SHLIB_MAPFILES) (mklibgcc, ldblspecs): Likewise. * config/i386/t-nwld (libgcc.def, libc.def, libpcre.def) (posixpre.def): Use $(T). (SHLIB_EXT, SHLIB_NAME, SHLIB_SLIBDIR_QUAL, SHLIB_DEF, SHLIB_MAP) (SHLIB_SRC, SHLIB_INSTALL): Delete. (SHLIB_LINK): Make dummy. * config/t-slibgcc-darwin: Delete contents except for dummy SHLIB_LINK. * config/frv/t-linux (EXTRA_MULTILIB_PARTS): Clear. * config/alpha/t-crtfm: Use $(T) in rules for EXTRA_PARTS. * config/alpha/t-vms, config/alpha/t-vms64, config/fr30/t-fr30, config/i386/t-rtems-i386, config/ia64/t-ia64, config/rs6000/t-beos, config/rs6000/t-newas, config/sparc/t-elf: Likewise. * configure.ac (all_outputs): Remove mklibgcc. * configure: Regenerated. libgcc/ * Makefile.in, config/i386/t-darwin, config/i386/t-darwin64, config/i386/t-nwld, config/rs6000/t-darwin, config/rs6000/t-ldbl128, config/i386/t-crtfm, config/alpha/t-crtfm, config/ia64/t-ia64, config/sparc/t-crtfm, config/t-slibgcc-darwin, config/rs6000/t-ppccomm, config.host, configure.ac, empty.mk, shared-object.mk, siditi-object.mk, static-object.mk: New files. * configure: Generated. Co-Authored-By: Paolo Bonzini <bonzini@gnu.org> From-SVN: r120429
2007-01-04 05:22:37 +01:00
slibdir='$(libsubdir)'
elif test -n "$with_cross_host" && test x"$with_cross_host" != x"no"; then
slibdir='$(exec_prefix)/$(host_noncanonical)/lib'
Makefile.def (target_modules): Add libgcc. ./ * Makefile.def (target_modules): Add libgcc. (lang_env_dependencies): Remove default items. Use no_c and no_gcc. * Makefile.tpl (clean-target-libgcc): Delete. (configure-target-[+module+]): Emit --disable-bootstrap dependencies on gcc even for bootstrapped modules. Rewrite handling of lang_env_dependencies to loop over target_modules. * configure.in (target_libraries): Add target-libgcc. * Makefile.in, configure: Regenerated. gcc/ * config.gcc: Mention libgcc/config.host. * Makefile.in: Update comments mentioning libgcc. (LIBGCC, INSTALL_LIBGCC, GCC_PARTS, mklibgcc): Delete. (all.cross, start.encap, rest.encap, rest.cross): Update dependencies for libgcc move. (libgcc.mk, LIBGCC_DEPS, libgcov.a, libgcc.a, stmp-multilib) (clean-target, clean-target-libgcc): Delete. (srcdirify, GCC_EXTRA_PARTS): New macros. (libgcc-support, libgcc.mvars): New rules. (distclean): Remove mention of mklibgcc. (install): Don't reference INSTALL_LIBGCC. (install-common): Don't reference EXTRA_PARTS. (install-libgcc, install-multilib): Delete rules. * mklibgcc.in: Delete file. * doc/configfiles.texi: Don't mention mklibgcc. * config/i386/t-darwin (SHLIB_VERPFX): Delete (moved to libgcc). * config/i386/t-darwin64 (SHLIB_VERPFX): Likewise. * config/rs6000/t-darwin (SHLIB_VERPFX): Likewise. * config/rs6000/t-ppccomm (TARGET_LIBGCC2_CFLAGS, SHLIB_MAPFILES) (mklibgcc, ldblspecs): Likewise. * config/i386/t-nwld (libgcc.def, libc.def, libpcre.def) (posixpre.def): Use $(T). (SHLIB_EXT, SHLIB_NAME, SHLIB_SLIBDIR_QUAL, SHLIB_DEF, SHLIB_MAP) (SHLIB_SRC, SHLIB_INSTALL): Delete. (SHLIB_LINK): Make dummy. * config/t-slibgcc-darwin: Delete contents except for dummy SHLIB_LINK. * config/frv/t-linux (EXTRA_MULTILIB_PARTS): Clear. * config/alpha/t-crtfm: Use $(T) in rules for EXTRA_PARTS. * config/alpha/t-vms, config/alpha/t-vms64, config/fr30/t-fr30, config/i386/t-rtems-i386, config/ia64/t-ia64, config/rs6000/t-beos, config/rs6000/t-newas, config/sparc/t-elf: Likewise. * configure.ac (all_outputs): Remove mklibgcc. * configure: Regenerated. libgcc/ * Makefile.in, config/i386/t-darwin, config/i386/t-darwin64, config/i386/t-nwld, config/rs6000/t-darwin, config/rs6000/t-ldbl128, config/i386/t-crtfm, config/alpha/t-crtfm, config/ia64/t-ia64, config/sparc/t-crtfm, config/t-slibgcc-darwin, config/rs6000/t-ppccomm, config.host, configure.ac, empty.mk, shared-object.mk, siditi-object.mk, static-object.mk: New files. * configure: Generated. Co-Authored-By: Paolo Bonzini <bonzini@gnu.org> From-SVN: r120429
2007-01-04 05:22:37 +01:00
else
slibdir='$(libdir)'
fi)
AC_SUBST(slibdir)
# Command-line options.
# Very limited version of AC_MAINTAINER_MODE.
AC_ARG_ENABLE([maintainer-mode],
[AC_HELP_STRING([--enable-maintainer-mode],
[enable make rules and dependencies not useful (and
sometimes confusing) to the casual installer])],
[case ${enable_maintainer_mode} in
yes) MAINT='' ;;
no) MAINT='#' ;;
*) AC_MSG_ERROR([--enable-maintainer-mode must be yes or no]) ;;
esac
maintainer_mode=${enableval}],
[MAINT='#'])
AC_SUBST([MAINT])dnl
Makefile.def (target_modules): Add libgcc. ./ * Makefile.def (target_modules): Add libgcc. (lang_env_dependencies): Remove default items. Use no_c and no_gcc. * Makefile.tpl (clean-target-libgcc): Delete. (configure-target-[+module+]): Emit --disable-bootstrap dependencies on gcc even for bootstrapped modules. Rewrite handling of lang_env_dependencies to loop over target_modules. * configure.in (target_libraries): Add target-libgcc. * Makefile.in, configure: Regenerated. gcc/ * config.gcc: Mention libgcc/config.host. * Makefile.in: Update comments mentioning libgcc. (LIBGCC, INSTALL_LIBGCC, GCC_PARTS, mklibgcc): Delete. (all.cross, start.encap, rest.encap, rest.cross): Update dependencies for libgcc move. (libgcc.mk, LIBGCC_DEPS, libgcov.a, libgcc.a, stmp-multilib) (clean-target, clean-target-libgcc): Delete. (srcdirify, GCC_EXTRA_PARTS): New macros. (libgcc-support, libgcc.mvars): New rules. (distclean): Remove mention of mklibgcc. (install): Don't reference INSTALL_LIBGCC. (install-common): Don't reference EXTRA_PARTS. (install-libgcc, install-multilib): Delete rules. * mklibgcc.in: Delete file. * doc/configfiles.texi: Don't mention mklibgcc. * config/i386/t-darwin (SHLIB_VERPFX): Delete (moved to libgcc). * config/i386/t-darwin64 (SHLIB_VERPFX): Likewise. * config/rs6000/t-darwin (SHLIB_VERPFX): Likewise. * config/rs6000/t-ppccomm (TARGET_LIBGCC2_CFLAGS, SHLIB_MAPFILES) (mklibgcc, ldblspecs): Likewise. * config/i386/t-nwld (libgcc.def, libc.def, libpcre.def) (posixpre.def): Use $(T). (SHLIB_EXT, SHLIB_NAME, SHLIB_SLIBDIR_QUAL, SHLIB_DEF, SHLIB_MAP) (SHLIB_SRC, SHLIB_INSTALL): Delete. (SHLIB_LINK): Make dummy. * config/t-slibgcc-darwin: Delete contents except for dummy SHLIB_LINK. * config/frv/t-linux (EXTRA_MULTILIB_PARTS): Clear. * config/alpha/t-crtfm: Use $(T) in rules for EXTRA_PARTS. * config/alpha/t-vms, config/alpha/t-vms64, config/fr30/t-fr30, config/i386/t-rtems-i386, config/ia64/t-ia64, config/rs6000/t-beos, config/rs6000/t-newas, config/sparc/t-elf: Likewise. * configure.ac (all_outputs): Remove mklibgcc. * configure: Regenerated. libgcc/ * Makefile.in, config/i386/t-darwin, config/i386/t-darwin64, config/i386/t-nwld, config/rs6000/t-darwin, config/rs6000/t-ldbl128, config/i386/t-crtfm, config/alpha/t-crtfm, config/ia64/t-ia64, config/sparc/t-crtfm, config/t-slibgcc-darwin, config/rs6000/t-ppccomm, config.host, configure.ac, empty.mk, shared-object.mk, siditi-object.mk, static-object.mk: New files. * configure: Generated. Co-Authored-By: Paolo Bonzini <bonzini@gnu.org> From-SVN: r120429
2007-01-04 05:22:37 +01:00
AC_PROG_INSTALL
AC_PROG_AWK
# We need awk; bail out if it's missing.
case ${AWK} in
"") AC_MSG_ERROR([can't build without awk, bailing out]) ;;
esac
AC_CANONICAL_HOST
ACX_NONCANONICAL_HOST
ACX_NONCANONICAL_TARGET
GCC_TOPLEV_SUBDIRS
Makefile.def (target_modules): Add libgcc. ./ * Makefile.def (target_modules): Add libgcc. (lang_env_dependencies): Remove default items. Use no_c and no_gcc. * Makefile.tpl (clean-target-libgcc): Delete. (configure-target-[+module+]): Emit --disable-bootstrap dependencies on gcc even for bootstrapped modules. Rewrite handling of lang_env_dependencies to loop over target_modules. * configure.in (target_libraries): Add target-libgcc. * Makefile.in, configure: Regenerated. gcc/ * config.gcc: Mention libgcc/config.host. * Makefile.in: Update comments mentioning libgcc. (LIBGCC, INSTALL_LIBGCC, GCC_PARTS, mklibgcc): Delete. (all.cross, start.encap, rest.encap, rest.cross): Update dependencies for libgcc move. (libgcc.mk, LIBGCC_DEPS, libgcov.a, libgcc.a, stmp-multilib) (clean-target, clean-target-libgcc): Delete. (srcdirify, GCC_EXTRA_PARTS): New macros. (libgcc-support, libgcc.mvars): New rules. (distclean): Remove mention of mklibgcc. (install): Don't reference INSTALL_LIBGCC. (install-common): Don't reference EXTRA_PARTS. (install-libgcc, install-multilib): Delete rules. * mklibgcc.in: Delete file. * doc/configfiles.texi: Don't mention mklibgcc. * config/i386/t-darwin (SHLIB_VERPFX): Delete (moved to libgcc). * config/i386/t-darwin64 (SHLIB_VERPFX): Likewise. * config/rs6000/t-darwin (SHLIB_VERPFX): Likewise. * config/rs6000/t-ppccomm (TARGET_LIBGCC2_CFLAGS, SHLIB_MAPFILES) (mklibgcc, ldblspecs): Likewise. * config/i386/t-nwld (libgcc.def, libc.def, libpcre.def) (posixpre.def): Use $(T). (SHLIB_EXT, SHLIB_NAME, SHLIB_SLIBDIR_QUAL, SHLIB_DEF, SHLIB_MAP) (SHLIB_SRC, SHLIB_INSTALL): Delete. (SHLIB_LINK): Make dummy. * config/t-slibgcc-darwin: Delete contents except for dummy SHLIB_LINK. * config/frv/t-linux (EXTRA_MULTILIB_PARTS): Clear. * config/alpha/t-crtfm: Use $(T) in rules for EXTRA_PARTS. * config/alpha/t-vms, config/alpha/t-vms64, config/fr30/t-fr30, config/i386/t-rtems-i386, config/ia64/t-ia64, config/rs6000/t-beos, config/rs6000/t-newas, config/sparc/t-elf: Likewise. * configure.ac (all_outputs): Remove mklibgcc. * configure: Regenerated. libgcc/ * Makefile.in, config/i386/t-darwin, config/i386/t-darwin64, config/i386/t-nwld, config/rs6000/t-darwin, config/rs6000/t-ldbl128, config/i386/t-crtfm, config/alpha/t-crtfm, config/ia64/t-ia64, config/sparc/t-crtfm, config/t-slibgcc-darwin, config/rs6000/t-ppccomm, config.host, configure.ac, empty.mk, shared-object.mk, siditi-object.mk, static-object.mk: New files. * configure: Generated. Co-Authored-By: Paolo Bonzini <bonzini@gnu.org> From-SVN: r120429
2007-01-04 05:22:37 +01:00
# Calculate toolexeclibdir
# Also toolexecdir, though it's only used in toolexeclibdir
case ${version_specific_libs} in
yes)
# Need the gcc compiler version to know where to install libraries
# and header files if --enable-version-specific-runtime-libs option
# is selected.
toolexecdir='$(libdir)/gcc/$(target_noncanonical)'
toolexeclibdir='$(toolexecdir)/$(gcc_version)$(MULTISUBDIR)'
;;
no)
if test -n "$with_cross_host" &&
test x"$with_cross_host" != x"no"; then
# Install a library built with a cross compiler in tooldir, not libdir.
toolexecdir='$(exec_prefix)/$(target_noncanonical)'
toolexeclibdir='$(toolexecdir)/lib'
else
toolexecdir='$(libdir)/gcc-lib/$(target_noncanonical)'
toolexeclibdir='$(libdir)'
fi
multi_os_directory=`$CC -print-multi-os-directory`
case $multi_os_directory in
.) ;; # Avoid trailing /.
*) toolexeclibdir=$toolexeclibdir/$multi_os_directory ;;
esac
;;
esac
AC_SUBST(toolexecdir)
AC_SUBST(toolexeclibdir)
Makefile.def (target_modules): Add libgcc. ./ * Makefile.def (target_modules): Add libgcc. (lang_env_dependencies): Remove default items. Use no_c and no_gcc. * Makefile.tpl (clean-target-libgcc): Delete. (configure-target-[+module+]): Emit --disable-bootstrap dependencies on gcc even for bootstrapped modules. Rewrite handling of lang_env_dependencies to loop over target_modules. * configure.in (target_libraries): Add target-libgcc. * Makefile.in, configure: Regenerated. gcc/ * config.gcc: Mention libgcc/config.host. * Makefile.in: Update comments mentioning libgcc. (LIBGCC, INSTALL_LIBGCC, GCC_PARTS, mklibgcc): Delete. (all.cross, start.encap, rest.encap, rest.cross): Update dependencies for libgcc move. (libgcc.mk, LIBGCC_DEPS, libgcov.a, libgcc.a, stmp-multilib) (clean-target, clean-target-libgcc): Delete. (srcdirify, GCC_EXTRA_PARTS): New macros. (libgcc-support, libgcc.mvars): New rules. (distclean): Remove mention of mklibgcc. (install): Don't reference INSTALL_LIBGCC. (install-common): Don't reference EXTRA_PARTS. (install-libgcc, install-multilib): Delete rules. * mklibgcc.in: Delete file. * doc/configfiles.texi: Don't mention mklibgcc. * config/i386/t-darwin (SHLIB_VERPFX): Delete (moved to libgcc). * config/i386/t-darwin64 (SHLIB_VERPFX): Likewise. * config/rs6000/t-darwin (SHLIB_VERPFX): Likewise. * config/rs6000/t-ppccomm (TARGET_LIBGCC2_CFLAGS, SHLIB_MAPFILES) (mklibgcc, ldblspecs): Likewise. * config/i386/t-nwld (libgcc.def, libc.def, libpcre.def) (posixpre.def): Use $(T). (SHLIB_EXT, SHLIB_NAME, SHLIB_SLIBDIR_QUAL, SHLIB_DEF, SHLIB_MAP) (SHLIB_SRC, SHLIB_INSTALL): Delete. (SHLIB_LINK): Make dummy. * config/t-slibgcc-darwin: Delete contents except for dummy SHLIB_LINK. * config/frv/t-linux (EXTRA_MULTILIB_PARTS): Clear. * config/alpha/t-crtfm: Use $(T) in rules for EXTRA_PARTS. * config/alpha/t-vms, config/alpha/t-vms64, config/fr30/t-fr30, config/i386/t-rtems-i386, config/ia64/t-ia64, config/rs6000/t-beos, config/rs6000/t-newas, config/sparc/t-elf: Likewise. * configure.ac (all_outputs): Remove mklibgcc. * configure: Regenerated. libgcc/ * Makefile.in, config/i386/t-darwin, config/i386/t-darwin64, config/i386/t-nwld, config/rs6000/t-darwin, config/rs6000/t-ldbl128, config/i386/t-crtfm, config/alpha/t-crtfm, config/ia64/t-ia64, config/sparc/t-crtfm, config/t-slibgcc-darwin, config/rs6000/t-ppccomm, config.host, configure.ac, empty.mk, shared-object.mk, siditi-object.mk, static-object.mk: New files. * configure: Generated. Co-Authored-By: Paolo Bonzini <bonzini@gnu.org> From-SVN: r120429
2007-01-04 05:22:37 +01:00
dnl These must be called before AM_PROG_LIBTOOL, because it may want
dnl to call AC_CHECK_PROG.
AC_CHECK_TOOL(AR, ar)
AC_CHECK_TOOL(LIPO, lipo, :)
AC_CHECK_TOOL(NM, nm)
AC_CHECK_TOOL(RANLIB, ranlib, :)
AC_CHECK_TOOL(STRIP, strip, :)
AC_PROG_LN_S
GCC_NO_EXECUTABLES
AC_PROG_CC
AC_PROG_CPP_WERROR
AC_SYS_LARGEFILE
Makefile.in (FPBIT_FUNCS, [...]): Remove. gcc: * Makefile.in (FPBIT_FUNCS, DPBIT_FUNCS, TPBIT_FUNCS): Remove. (libgcc-support): Remove $(FPBIT), $(DPBIT), $(TPBIT) dependencies. (libgcc.mvars): Remove FPBIT, FPBIT_FUNCS, DPBIT, DPBIT_FUNCS, TPBIT, TPBIT_FUNCS. * config/fp-bit.c, config/fp-bit.h: Move to ../libgcc. * config/arm/t-strongarm-elf (FPBIT, DPBIT, dp-bit.c, fp-bit.c): Remove. * config/arm/t-vxworks: Likewise. * config/arm/t-wince-pe: Likewise. * config/avr/t-avr (fp-bit.c, FPBIT): Remove. * config/bfin/t-bfin (FPBIT, DPBIT, dp-bit.c, fp-bit.c): Remove. * config/bfin/t-bfin-elf: Likewise. * config/bfin/t-bfin-linux: Likewise. * config/bfin/t-bfin-uclinux: Likewise. * config/cris/t-cris (FPBIT, DPBIT, dp-bit.c, tmplibgcc_fp_bit.c): Remove. * config/fr30/t-fr30: Likewise. * config/frv/t-frv: Likewise. * config/h8300/t-h8300 (FPBIT, fp-bit.c): Remove. * config/iq2000/t-iq2000 (FPBIT, DPBIT, dp-bit.c, fp-bit.c): Remove. * config/m32c/t-m32c: Likewise. * config/m32r/t-linux: (LIB2FUNCS_EXTRA, fp-bit.c, dp-bit.c): Remove. * config/m32r/t-m32r (FPBIT, DPBIT, dp-bit.c, fp-bit.c): Remove. * config/mcore/t-mcore: Likewise. * config/mep/t-mep: Likewise. * config/microblaze/t-microblaze: Likewise. * config/mips/t-linux64 (TPBIT, tp-bit.c): Remove. * config/mips/t-mips (FPBIT, DPBIT, dp-bit.c, fp-bit.c): Remove. * config/mips/t-sdemtk (FPBIT, DPBIT): Remove. * config/mips/t-sr71k (FPBIT, DPBIT, dp-bit.c, fp-bit.c): Remove. * config/mn10300/t-linux: Remove. * config/mn10300/t-mn10300 (FPBIT, DPBIT, dp-bit.c, fp-bit.c): Remove. * config/pdp11/t-pdp11: Likewise. * config/picochip/t-picochip (FPBIT, fp-bit.c): Remove. * config/rs6000/ppc64-fp.c: Move to ../libgcc/config/rs6000. * config/rs6000/t-aix43 (FPBIT, DPBIT, dp-bit.c, fp-bit.c): Remove. (LIB2FUNCS_EXTRA): Remove $(srcdir)/config/rs6000/ppc64-fp.c. * config/rs6000/t-aix52: Likewise. * config/rs6000/t-darwin (LIB2FUNCS_EXTRA): Remove $(srcdir)/config/rs6000/ppc64-fp.c. * config/rs6000/t-fprules-fpbit: Remove. * config/rs6000/t-linux64 (LIB2FUNCS_EXTRA): Remove. * config/rs6000/t-lynx (FPBIT, DPBIT, dp-bit.c, fp-bit.c): Remove. * config/sh/t-netbsd (FPBIT, DPBIT): Remove. * config/sh/t-sh (FPBIT, DPBIT, dp-bit.c, fp-bit.c): Remove. * config/sparc/t-elf: Likewise. * config/sparc/t-leon: Likewise. * config/sparc/t-leon3: Likewise. * config/spu/t-spu-elf: Likewise. (DPBIT_FUNCS): Remove. * config/stormy16/t-stormy16 (FPBIT, DPBIT, dp-bit.c, fp-bit.c): Remove. * config/v850/t-v850: Likewise. * config.gcc (avr-*-rtems*): Add avr/avr-lib.h to libgcc_tm_file. (avr-*-*): Likewise. (h8300-*-rtems*): Set libgcc_tm_file. (h8300-*-elf*): Likewise. (powerpc-*-eabisimaltivec*): Remove rs6000/t-fprules-fpbit from tmake_file. (powerpc-*-eabisim*): Likewise. (powerpc-*-elf*): Likewise. (powerpc-*-eabialtivec*): Likewise. (powerpc-xilinx-eabi*): Likewise. (powerpc-*-eabi*): Likewise. (powerpc-*-rtems*): Likewise. (powerpc-wrs-vxworks, powerpc-wrs-vxworksae): Likewise. (powerpcle-*-elf*): Likewise. (powerpcle-*-eabisim*): Likewise. (powerpcle-*-eabi*): Likewise. (rx-*-elf*): Add rx/rx-lib.h to libgcc_tm_file. (am33_2.0-*-linux*): Remove mn10300/t-linux from tmake_file. * doc/fragments.texi (Target Fragment, Floating Point Emulation): Remove. gcc/po: * EXCLUDES (config/fp-bit.c, config/fp-bit.h): Remove. libgcc: * Makefile.in (double_type_size, long_double_type_size): Set. Remove $(fpbit-in-libgcc) support. (FPBIT_FUNCS, DPBIT_FUNCS, TPBIT_FUNCS): New variables. (fpbit-src): New variable. ($(fpbit-o), $(fpbit-s-o)): Use $(fpbit-src) instead of $(FPBIT). Compile with -DFLOAT $(FPBIT_CFLAGS). Use $<. ($(dpbit-o), $(dpbit-s-o)): Use $(fpbit-src) instead of $(DPBIT). Compile with $(FPBIT_CFLAGS). Use $<. ($(tpbit-o), $(tpbit-s-o): Use $(fpbit-src) instead of $(TPBIT). Compile with -DFLOAT $(TPBIT_CFLAGS). Use $<. * configure.ac (double_type_size, long_double_type_size): Determine and substitute. * configure: Regenerate. * fp-bit.c, fp-bit.h: New files. * config/avr/avr-lib.h, config/h8300/h8300-lib.h: New files. * config/mips/t-irix6 (TPBIT, $(gcc_objdir)/tp-bit.c): Remove. * config/mips/t-mips: New file. * config/mips/t-sdemtk: New file. * config/rs6000/ppc64-fp.c: New file. * config/rs6000/t-darwin (LIB2ADD): Add $(srcdir)/config/rs6000/ppc64-fp.c. * config/rs6000/t-ppc64-fp: New file. * config/rx/rx-lib.h: New file. * config/rx/t-rx (FPBIT): Set to true. ($(gcc_objdir)/fp-bit.c): Remove. (DPBIT): Set to true only with -m64bit-doubles. ($(gcc_objdir)/dp-bit.c): Remove. * config/sparc/t-softfp: Remove. * config/spu/t-elf: New file. * config/t-fdpbit, config/t-fpbit: New files. * config.host (m32c*-*-*): Add t-fdpbit to tmake_file. (mips*-*-*): Likewise. (arm-wrs-vxworks): Likewise. (arm*-*-freebsd*): Likewise. (avr-*-rtems*): Add t-fpbit to tmake_file. (avr-*-*): Likewise. (bfin*-elf*): Add t-fdpbit to tmake_file. (bfin*-uclinux*): Likewise. (bfin*-linux-uclibc*): Likewise. (bfin*-rtems*): New case. Add t-fdpbit to tmake_file. (bfin*-*): Add t-fdpbit to tmake_file. (crisv32-*-elf): Likewise. (cris-*-linux*): Likewise. (fr30-*-elf): Likewise. (frv-*-elf, frv-*-*linux*): Likewise. (h8300-*-rtems*, h8300-*-elf*): Add t-fpbit to tmake_file. (iq2000*-*-elf*): Add t-fdpbit to tmake_file. (m32r-*-elf*): Likewise. (m32rle-*-elf*): Likewise. (m32r-*-linux*): Likewise. (m32rle-*-linux*): Likewise. (mcore-*-elf): Add t-fdpbit to tmake_file. (microblaze*-*-*): Likewise. (mips-sgi-irix6.5*): Add t-tpbit to tmake_file. (mips*-*-netbsd*): Add mips/t-mips to tmake_file. (mips64*-*-linux*): Also handle mipsisa64*-*-linux*. Fix typo. Add mips/t-tpbit to tmake-file. (mips*-*-linux*): Fix typo. (mips*-sde-elf*): New case Add mips/t-sdemtk unless using newlib. (mipsisa64sr71k-*-elf*): Add t-fdpbit to tmake_file. (mipsisa64sb1-*-elf*): Add mips/t-mips to tmake_file. (mn10300-*-*): Likewise. (pdp11-*-*): Likewise. (picochip-*-*): Add t-fpbit to tmake_file. (powerpc-*-eabisimaltivec*): Likewise. (powerpc-*-eabisim*): Likewise. (powerpc-*-elf*): Likewise. (powerpc-*-eabialtivec*): Likewise. (powerpc-xilinx-eabi*): New case. Add t-fdpbit to tmake_file. (powerpc-*-eabi*): Add t-fdpbit to tmake_file. (powerpc-*-rtems*): Likewise. (powerpc-*-linux*, powerpc64-*-linux*): Add rs6000/t-ppc64-fp to tmake_file. (powerpc-wrs-vxworks, powerpc-wrs-vxworksae): Add t-fdpbit to tmake_file. (powerpc-*-lynxos*): Likewise. (powerpcle-*-elf*): Likewise. (powerpcle-*-eabisim*): Likewise. (powerpcle-*-eabi*): Likewise. (rs6000-ibm-aix4.[3456789]*, powerpc-ibm-aix4.[3456789]*): Add t-fdpbit, rs6000/t-ppc64-fp to tmake_file. (rs6000-ibm-aix5.1.*, powerpc-ibm-aix5.1.*): Likewise. (rs6000-ibm-aix[56789].*, powerpc-ibm-aix[56789].*): Likewise. (rx-*-elf): Add t-fdpbit to tmake_file. (sh-*-elf*, sh[12346l]*-*-elf*, sh-*-linux*) (sh[2346lbe]*-*-linux*, sh-*-netbsdelf*, shl*-*-netbsdelf*) (sh5-*-netbsd*, sh5l*-*-netbsd*, sh64-*-netbsd*) (sh64l*-*-netbsd*): Add t-fdpbit to tmake_file except on sh*-*-netbsd*. (sh-*-rtems*): Add t-fdpbit to tmake_file. (sh-wrs-vxworks): Likewise. (sparc-*-elf*): Replace sparc/t-softfp by t-fdpbit in tmake_file. (sparc-*-linux*): Add t-fdpbit to tmake_file for *-leon*. (sparc-*-rtems*, sparc64-*-rtems*): Split off ... (sparc64-*-rtems*): ... new case. (sparc-*-rtems*): Add t-fdpbit to tmake_file. (spu-*-elf*): Likewise. Add spu/t-elf to tmake_file. (v850*-*-*): Add t-fdpbit to tmake_file. (xstormy16-*-elf): Likewise. (am33_2.0-*-linux*): Add t-fdpbit to tmake_file. (mep*-*-*): Likewise. From-SVN: r177448
2011-08-05 16:53:09 +02:00
AC_CHECK_SIZEOF([double])
AC_CHECK_SIZEOF([long double])
AS_VAR_ARITH([double_type_size], [$ac_cv_sizeof_double \* 8])
AS_VAR_ARITH([long_double_type_size], [$ac_cv_sizeof_long_double \* 8])
AC_SUBST(double_type_size)
AC_SUBST(long_double_type_size)
AC_CHECK_HEADERS(inttypes.h stdint.h stdlib.h ftw.h \
unistd.h sys/stat.h sys/types.h \
string.h strings.h memory.h)
AC_HEADER_STDC
Makefile.def (target_modules): Add libgcc. ./ * Makefile.def (target_modules): Add libgcc. (lang_env_dependencies): Remove default items. Use no_c and no_gcc. * Makefile.tpl (clean-target-libgcc): Delete. (configure-target-[+module+]): Emit --disable-bootstrap dependencies on gcc even for bootstrapped modules. Rewrite handling of lang_env_dependencies to loop over target_modules. * configure.in (target_libraries): Add target-libgcc. * Makefile.in, configure: Regenerated. gcc/ * config.gcc: Mention libgcc/config.host. * Makefile.in: Update comments mentioning libgcc. (LIBGCC, INSTALL_LIBGCC, GCC_PARTS, mklibgcc): Delete. (all.cross, start.encap, rest.encap, rest.cross): Update dependencies for libgcc move. (libgcc.mk, LIBGCC_DEPS, libgcov.a, libgcc.a, stmp-multilib) (clean-target, clean-target-libgcc): Delete. (srcdirify, GCC_EXTRA_PARTS): New macros. (libgcc-support, libgcc.mvars): New rules. (distclean): Remove mention of mklibgcc. (install): Don't reference INSTALL_LIBGCC. (install-common): Don't reference EXTRA_PARTS. (install-libgcc, install-multilib): Delete rules. * mklibgcc.in: Delete file. * doc/configfiles.texi: Don't mention mklibgcc. * config/i386/t-darwin (SHLIB_VERPFX): Delete (moved to libgcc). * config/i386/t-darwin64 (SHLIB_VERPFX): Likewise. * config/rs6000/t-darwin (SHLIB_VERPFX): Likewise. * config/rs6000/t-ppccomm (TARGET_LIBGCC2_CFLAGS, SHLIB_MAPFILES) (mklibgcc, ldblspecs): Likewise. * config/i386/t-nwld (libgcc.def, libc.def, libpcre.def) (posixpre.def): Use $(T). (SHLIB_EXT, SHLIB_NAME, SHLIB_SLIBDIR_QUAL, SHLIB_DEF, SHLIB_MAP) (SHLIB_SRC, SHLIB_INSTALL): Delete. (SHLIB_LINK): Make dummy. * config/t-slibgcc-darwin: Delete contents except for dummy SHLIB_LINK. * config/frv/t-linux (EXTRA_MULTILIB_PARTS): Clear. * config/alpha/t-crtfm: Use $(T) in rules for EXTRA_PARTS. * config/alpha/t-vms, config/alpha/t-vms64, config/fr30/t-fr30, config/i386/t-rtems-i386, config/ia64/t-ia64, config/rs6000/t-beos, config/rs6000/t-newas, config/sparc/t-elf: Likewise. * configure.ac (all_outputs): Remove mklibgcc. * configure: Regenerated. libgcc/ * Makefile.in, config/i386/t-darwin, config/i386/t-darwin64, config/i386/t-nwld, config/rs6000/t-darwin, config/rs6000/t-ldbl128, config/i386/t-crtfm, config/alpha/t-crtfm, config/ia64/t-ia64, config/sparc/t-crtfm, config/t-slibgcc-darwin, config/rs6000/t-ppccomm, config.host, configure.ac, empty.mk, shared-object.mk, siditi-object.mk, static-object.mk: New files. * configure: Generated. Co-Authored-By: Paolo Bonzini <bonzini@gnu.org> From-SVN: r120429
2007-01-04 05:22:37 +01:00
# Check for decimal float support.
AC_CACHE_CHECK([whether decimal floating point is supported], [libgcc_cv_dfp],
[AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
#include <fenv.h>
]], [[
_Decimal32 x;
int fe_except =
FE_INVALID|FE_DIVBYZERO|FE_OVERFLOW|FE_UNDERFLOW|FE_INEXACT;
]])],
[libgcc_cv_dfp=yes],
Makefile.def (target_modules): Add libgcc. ./ * Makefile.def (target_modules): Add libgcc. (lang_env_dependencies): Remove default items. Use no_c and no_gcc. * Makefile.tpl (clean-target-libgcc): Delete. (configure-target-[+module+]): Emit --disable-bootstrap dependencies on gcc even for bootstrapped modules. Rewrite handling of lang_env_dependencies to loop over target_modules. * configure.in (target_libraries): Add target-libgcc. * Makefile.in, configure: Regenerated. gcc/ * config.gcc: Mention libgcc/config.host. * Makefile.in: Update comments mentioning libgcc. (LIBGCC, INSTALL_LIBGCC, GCC_PARTS, mklibgcc): Delete. (all.cross, start.encap, rest.encap, rest.cross): Update dependencies for libgcc move. (libgcc.mk, LIBGCC_DEPS, libgcov.a, libgcc.a, stmp-multilib) (clean-target, clean-target-libgcc): Delete. (srcdirify, GCC_EXTRA_PARTS): New macros. (libgcc-support, libgcc.mvars): New rules. (distclean): Remove mention of mklibgcc. (install): Don't reference INSTALL_LIBGCC. (install-common): Don't reference EXTRA_PARTS. (install-libgcc, install-multilib): Delete rules. * mklibgcc.in: Delete file. * doc/configfiles.texi: Don't mention mklibgcc. * config/i386/t-darwin (SHLIB_VERPFX): Delete (moved to libgcc). * config/i386/t-darwin64 (SHLIB_VERPFX): Likewise. * config/rs6000/t-darwin (SHLIB_VERPFX): Likewise. * config/rs6000/t-ppccomm (TARGET_LIBGCC2_CFLAGS, SHLIB_MAPFILES) (mklibgcc, ldblspecs): Likewise. * config/i386/t-nwld (libgcc.def, libc.def, libpcre.def) (posixpre.def): Use $(T). (SHLIB_EXT, SHLIB_NAME, SHLIB_SLIBDIR_QUAL, SHLIB_DEF, SHLIB_MAP) (SHLIB_SRC, SHLIB_INSTALL): Delete. (SHLIB_LINK): Make dummy. * config/t-slibgcc-darwin: Delete contents except for dummy SHLIB_LINK. * config/frv/t-linux (EXTRA_MULTILIB_PARTS): Clear. * config/alpha/t-crtfm: Use $(T) in rules for EXTRA_PARTS. * config/alpha/t-vms, config/alpha/t-vms64, config/fr30/t-fr30, config/i386/t-rtems-i386, config/ia64/t-ia64, config/rs6000/t-beos, config/rs6000/t-newas, config/sparc/t-elf: Likewise. * configure.ac (all_outputs): Remove mklibgcc. * configure: Regenerated. libgcc/ * Makefile.in, config/i386/t-darwin, config/i386/t-darwin64, config/i386/t-nwld, config/rs6000/t-darwin, config/rs6000/t-ldbl128, config/i386/t-crtfm, config/alpha/t-crtfm, config/ia64/t-ia64, config/sparc/t-crtfm, config/t-slibgcc-darwin, config/rs6000/t-ppccomm, config.host, configure.ac, empty.mk, shared-object.mk, siditi-object.mk, static-object.mk: New files. * configure: Generated. Co-Authored-By: Paolo Bonzini <bonzini@gnu.org> From-SVN: r120429
2007-01-04 05:22:37 +01:00
[libgcc_cv_dfp=no])])
decimal_float=$libgcc_cv_dfp
AC_SUBST(decimal_float)
GCC_AC_ENABLE_DECIMAL_FLOAT([$host])
# Check for fixed-point support.
AC_CACHE_CHECK([whether fixed-point is supported], [libgcc_cv_fixed_point],
[AC_COMPILE_IFELSE([_Sat _Fract x;], [libgcc_cv_fixed_point=yes],
[libgcc_cv_fixed_point=no])])
fixed_point=$libgcc_cv_fixed_point
AC_SUBST(fixed_point)
re PR target/36669 (Wrong versioning for __float128) gcc/ 2008-07-02 H.J. Lu <hongjiu.lu@intel.com> PR target/36669 * config/libgcc-glibc.ver: Add %exclude. * config/m32r/libgcc-glibc.ver: Likwise. * config/s390/libgcc-glibc.ver: Likwise. * config/sh/libgcc-glibc.ver: Likwise. * config/sparc/libgcc-sparc-glibc.ver: Likwise. * config/i386/libgcc-glibc.ver: New. * config/i386/libgcc-x86_64-glibc.ver: Removed. 2008-07-02 H.J. Lu <hongjiu.lu@intel.com> * config.gcc: Remove i386/t-fprules-softfp64 soft-fp/t-softfp from tmake_file from i[34567]86-*-darwin*, x86_64-*-darwin*, i[34567]86-*-linux*, x86_64-*-linux*. Add i386/t-fprules-softfp and soft-fp/t-softfp to tmake_file for i[34567]86-*-darwin*, x86_64-*-darwin*, i[34567]86-*-linux*, x86_64-*-linux*. Add i386/t-linux to tmake_file for i[34567]86-*-linux*, x86_64-*-linux*. * libgcc-std.ver: Add empty GCC_4.4.0. * mkmap-symver.awk: Support multiple versions per symbol. * config/i386/i386.c (ix86_init_builtins): Always define __builtin_fabsq and __builtin_copysignq with fallbacks. (ix86_expand_builtin): Emit normal call for __builtin_fabsq and __builtin_copysignq if SSE2 isn't available. * config/i386/linux.h (LIBGCC2_HAS_TF_MODE): Defined. (LIBGCC2_TF_CEXT): Likwise. (TF_SIZE): Likwise. * config/i386/linux64.h (LIBGCC2_HAS_TF_MODE): Defined as 1. * config/i386/sfp-machine.h: Moved to libgcc. * config/i386/sfp-machine.h: New. * config/i386/t-linux: Likwise. * config/i386/t-darwin: Remove softfp_wrap_start and softfp_wrap_end. * config/i386/t-darwin64: Likewise. * config/i386/t-fprules-softfp64: Renamed to ... * config/i386/t-fprules-softfp: This. * config/i386/t-linux64: Remove SHLIB_MAPFILES, softfp_wrap_start and softfp_wrap_end. libgcc/ 2008-07-02 H.J. Lu <hongjiu.lu@intel.com> PR target/36669 * shared-object.mk ($(base)_s$(objext)): Add -DSHARED. * config/i386/64/_divtc3-compat.c: New. * config/i386/64/_multc3-compat.c: Likewise. * config/i386/64/_powitf2-compat.c: Likewise. * config/i386/64/eqtf2.c: Likewise. * config/i386/64/getf2.c: Likewise. * config/i386/64/letf2.c: Likewise. * config/i386/64/t-fprules-softfp: Likewise. 2008-07-02 H.J. Lu <hongjiu.lu@intel.com> * config.host: Add i386/${host_address}/t-fprules-softfp to tmake_file for i[34567]86-*-darwin*, x86_64-*-darwin*, i[34567]86-*-linux*, x86_64-*-linux*. * configure.ac: Set host_address to 64 or 32 for x86. * configure: Regenerated. * Makefile.in (config.status): Also depend on $(srcdir)/config.host. * config/i386/32/t-fprules-softfp: New. * config/i386/32/tf-signs.c: Likewise. * config/i386/64/sfp-machine.h: New. Moved from gcc. 2008-07-02 H.J. Lu <hongjiu.lu@intel.com> Uros Bizjak <ubizjak@gmail.com> * config/i386/32/sfp-machine.h: New. Co-Authored-By: Uros Bizjak <ubizjak@gmail.com> From-SVN: r137369
2008-07-02 17:59:19 +02:00
Makefile.in (UNWIND_H): Remove. gcc: * Makefile.in (UNWIND_H): Remove. (LIB2ADDEH, LIB2ADDEHSTATIC, LIB2ADDEHSHARED): Move to ../libgcc/Makefile.in. (LIBUNWIND, SHLIBUNWIND_LINK, SHLIBUNWIND_INSTALL): Likewise. (LIBUNWINDDEP): Remove. (libgcc-support): Remove LIB2ADDEH, $(srcdir)/emutls.c dependencies. (libgcc.mvars): Remove LIB2ADDEH, LIB2ADDEHSTATIC, LIB2ADDEHSHARED, LIBUNWIND, SHLIBUNWIND_LINK, SHLIBUNWIND_INSTALL. (stmp-int-hdrs): Remove $(UNWIND_H) dependency. Don't copy $(UNWIND_H). * config.gcc (ia64*-*-linux*): Remove with_system_libunwind handling. * configure.ac (GCC_CHECK_UNWIND_GETIPINFO): Remove. * aclocal.m4: Regenerate. * configure: Regenerate. * emutls.c, unwind-c.c, unwind-compat.c, unwind-compat.h, unwind-dw2-fde-compat.c, unwind-dw2-fde-glibc.c, unwind-dw2-fde.c, unwind-dw2-fde.h, unwind-dw2.c, unwind-dw2.h, unwind-generic.h, unwind-pe.h, unwind-sjlj.c, unwind.inc: Move to ../libgcc. * unwind-dw2-fde-darwin.c: Move to ../libgcc/config. * config/arm/libunwind.S, config/arm/pr-support.c, config/arm/unwind-arm.c, config/arm/unwind-arm.h: Move to ../libgcc/config/arm. * config/arm/t-bpabi (UNWIND_H, LIB2ADDEH): Remove. * config/arm/t-symbian (UNWIND_H, LIB2ADDEH): Remove. * config/frv/t-frv ($(T)frvbegin$(objext)): Use $(srcdir)/../libgcc to refer to unwind-dw2-fde.h. ($(T)frvend$(objext)): Likewise. * config/ia64/t-glibc (LIB2ADDEH): Remove. * config/ia64/t-glibc-libunwind: Move to ../libgcc/config/ia64. * config/ia64/fde-glibc.c, config/ia64/fde-vms.c, config/ia64/unwind-ia64.c, config/ia64/unwind-ia64.h: Move to ../libgcc/config/ia64. * config/ia64/t-hpux (LIB2ADDEH): Remove. * config/ia64/t-ia64 (LIB2ADDEH): Remove. * config/ia64/t-vms (LIB2ADDEH): Remove. * config/ia64/vms.h (UNW_IVMS_MODE, MD_UNW_COMPATIBLE_PERSONALITY_P): Remove. * config/picochip/t-picochip (LIB2ADDEH): Remove. * config/rs6000/aix.h (R_LR, MD_FROB_UPDATE_CONTEXT): Remove. * config/rs6000/t-darwin (LIB2ADDEH): Remove. * config/rs6000/darwin-fallback.c: Move to ../libgcc/config/rs6000. * config/sh/t-sh ($(T)unwind-dw2-Os-4-200.o): Use $(srcdir)/../libgcc to refer to unwinder sources. * config/spu/t-spu-elf (LIB2ADDEH): Remove. * config/t-darwin (LIB2ADDEH): Remove. * config/t-freebsd (LIB2ADDEH): Remove. * config/t-libunwind (LIB2ADDEH, LIB2ADDEHSTATIC): Remove. * config/t-libunwind-elf: Move to ../libgcc/config. * config/t-linux (LIB2ADDEH): Remove. * config/t-sol2 (LIB2ADDEH): Remove. * config/xtensa/t-xtensa (LIB2ADDEH): Remove. * system.h (MD_FROB_UPDATE_CONTEXT): Poison. gcc/po: * EXCLUDES (unwind-c.c, unwind-dw2-fde-darwin.c) (unwind-dw2-fde-glibc.c, unwind-dw2-fde.c, unwind-dw2-fde.h) (unwind-dw2.c, unwind-pe.h, unwind-sjlj.c, unwind.h): Remove. libgcc: * Makefile.in (LIB2ADDEH, LIB2ADDEHSTATIC, LIB2ADDEHSHARED): New variables. (LIBUNWIND, SHLIBUNWIND_LINK, SHLIBUNWIND_INSTALL): New variables. (LIB2ADDEH, LIB2ADDEHSTATIC, LIB2ADDEHSHARED): Add $(srcdir)/emutls.c. (install-unwind_h): New target. (all): Depend on it. * config.host (unwind_header): New variable. (*-*-freebsd*): Set tmake_file to t-eh-dw2-dip. (*-*-linux*, frv-*-*linux*, *-*-kfreebsd*-gnu, *-*-knetbsd*-gnu, *-*-gnu*): Likewise, also for *-*-kopensolaris*-gnu. (*-*-solaris2*): Add t-eh-dw2-dip to tmake_file. (arm*-*-linux*): Add arm/t-bpabi for arm*-*-linux-*eabi. Set unwind_header. (arm*-*-uclinux*): Add arm/t-bpabi for arm*-*-uclinux*eabi. Set unwind_header. (arm*-*-eabi*, arm*-*-symbianelf*): Add arm/t-bpabi for arm*-*-eabi*. Add arm/t-symbian to tmake_file for arm*-*-symbianelf*. Set unwind_header. (ia64*-*-elf*): Add ia64/t-eh-ia64 to tmake_file. (ia64*-*-freebsd*): Likewise. (ia64*-*-linux*): Add ia64/t-glibc, ia64/t-eh-ia64, t-libunwind to tmake_file. Add t-libunwind-elf, ia64/t-glibc-libunwind unless $with_system_libunwind. (ia64*-*-hpux*): Set tmake_file. (ia64-hp-*vms*): Add ia64/t-eh-ia64 to tmake_file. (picochip-*-*): Set tmake_file. (rs6000-ibm-aix4.[3456789]*, powerpc-ibm-aix4.[3456789]*): Set md_unwind_header. (rs6000-ibm-aix5.1.*, powerpc-ibm-aix5.1.*): Likewise. (rs6000-ibm-aix[56789].*, powerpc-ibm-aix[56789].*): Likewise. (s390x-ibm-tpf*): Add t-eh-dw2-dip to tmake_file. (xtensa*-*-elf*): Set tmake_file. (xtensa*-*-linux*): Likewise. * configure.ac: Include ../config/unwind_ipinfo.m4. Call GCC_CHECK_UNWIND_GETIPINFO. Link unwind.h to $unwind_header. * configure: Regenerate. * emutls.c, unwind-c.c, unwind-compat.c, unwind-compat.h, unwind-dw2-fde-compat.c, unwind-dw2-fde-dip.c, unwind-dw2-fde.c, unwind-dw2-fde.h, unwind-dw2.c, unwind-dw2.h, unwind-generic.h, unwind-pe.h, unwind-sjlj.c, unwind.inc: New files. * config/unwind-dw2-fde-darwin.c: New file. * config/arm/libunwind.S, config/arm/pr-support.c, config/arm/t-bpabi, config/arm/t-symbian, config/arm/unwind-arm.c, config/arm/unwind-arm.h,: New files. * config/ia64/fde-glibc.c, config/ia64/fde-vms.c, config/ia64/t-eh-ia64, config/ia64/t-glibc, config/ia64/t-glibc-libunwind, config/ia64/t-hpux, config/ia64/t-vms, config/ia64/unwind-ia64.c, config/ia64/unwind-ia64.h: New files. * config/picochip/t-picochip: New file. * config/rs6000/aix-unwind.h, config/rs6000/darwin-fallback.c: New files. * config/rs6000/t-darwin (LIB2ADDEH): Set. * config/s390/t-tpf (LIB2ADDEH): Remove. * config/t-darwin (LIB2ADDEH): Set. * config/t-eh-dw2-dip: New file. * config/t-libunwind, config/t-libunwind-elf: New files. * config/t-sol2 (LIB2ADDEH): Remove. * config/xtensa/t-xtensa: New file. gcc/ada: * gcc-interface/Makefile.in (raise-gcc.o): Search $(srcdir)/../libgcc. libgo: * Makefile.am (AM_CFLAGS): Search $(srcdir)/../libgcc. * Makefile.in: Regenerate. libjava: * configure.ac (GCC_UNWIND_INCLUDE): Rename to LIBGCC_UNWIND_INCLUDE. Point to $(multi_basedir)/./libjava/../libgcc. * configure: Regenerate. * Makefile.am (GCC_UNWIND_INCLUDE): Reflect this. * Makefile.in: Regenerate. libobjc: * Makefile.in (INCLUDES): Search $(srcdir)/$(MULTISRCTOP)../libgcc. libstdc++-v3: * acinclude.m4 (GLIBCXX_EXPORT_INCLUDES): Point TOPLEVEL_INCLUDES to $(toplevel_srcdir)/libgcc. * configure: Regenerate. From-SVN: r177447
2011-08-05 16:37:48 +02:00
# For platforms with the unwind ABI which includes an unwind library,
# libunwind, we can choose to use the system libunwind.
# config.gcc also contains tests of with_system_libunwind.
GCC_CHECK_UNWIND_GETIPINFO
# Check if the compiler is configured for setjmp/longjmp exceptions.
GCC_CHECK_SJLJ_EXCEPTIONS
Move shlib support to toplevel libgcc gcc: PR translation/45116 * Makefile.in (slibdir): Remove, don't export. (SHLIB_NM_FLAGS): Remove. (libgcc.mvars): Don't emit SHLIB_LINK, SHLIB_INSTALL, SHLIB_DLLDIR, SHLIB_EXT, SHLIB_MKMAP, SHLIB_MKMAP_OPTS, SHLIB_MAPFILES, SHLIB_NM_FLAGS. (DRIVER_DEFINES): Test SHLIB instead of SHLIB_LINK. (gcc.o): Pass SHLIB instead of SHLIB_LINK. (gccspec.o): Likewise. (installdirs): Don't create $(DESTDIR)$(slibdir). * configure.ac (slibdir): Remove. * configure: Regenerate. * libgcc-libsystem.ver: Move to ../libgcc/config. * mkmap-flat.awk, mkmap-symver.awk: Move to ../libgcc. * config/libgcc-glibc.ver: Move to ../libgcc/config. * config/t-libunwind (SHLIB_LC): Remove. * config/t-linux (SHLIB_MAPFILES): Remove. * config/t-slibgcc-dummy: Rename to config/t-slibgcc. * config/t-slibgcc-elf-ver: Remove. * config/t-slibgcc-libgcc, config/t-slibgcc-nolc-override: Move to ../libgcc/config. * config/alpha/libgcc-alpha-ldbl.ver, config/alpha/t-linux: Move to ../libgcc/config/alpha. * config/alpha/t-vms (shlib_version, SHLIB_EXT, SHLIB_OBJS, SHLIB_NAME, SHLIB_MULTILIB, SHLIB_INSTALL, SHLIB_SYMVEC, SHLIB_SYMVECX2, SHLIB_LINK): Remove. * config/arm/libgcc-bpabi.ver: Move to ../libgcc/config/arm. * config/arm/t-bpabi (SHLIB_MAPFILES): Remove. * config/arm/t-netbsd (SHLIB_EXT, SHLIB_NAME, SHLIB_SONAME, SHLIB_OBJS, SHLIB_LINK, SHLIB_INSTALL): Remove. * config/arm/t-symbian (SHLIB_LC): Remove. * config/bfin/libgcc-bfin.ver: Move to ../libgcc/config/bfin/libgcc-glibc.ver. * config/bfin/t-bfin-linux (SHLIB_MAPFILES): Remove. * config/c6x/libgcc-c6xeabi.ver: Move to ../libgcc/config/c6x/libgcc-eabi.ver. * config/c6x/t-c6x-elf (SHLIB_MAPFILES): Remove. * config/cris/libgcc.ver: Move to ../libgcc/config/cris/libgcc-glibc.ver. * config/cris/t-linux (SHLIB_MAPFILES): Remove. * config/frv/libgcc-frv.ver: Move to ../libgcc/config/frv. * config/frv/t-linux (SHLIB_MAPFILES): Remove. * config/i386/darwin-libgcc.10.4.ver: Move to ../libgcc/config/i386/libgcc-darwin.10.4.ver. * config/i386/darwin-libgcc.10.5.ver: Move to ../libgcc/config/i386/libgcc-darwin.10.5.ver. * config/i386/libgcc-glibc.ver: Move to ../libgcc/config/i386. * config/i386/t-cygming (SHLIB_EXT, SHLIB_IMPLIB, SHLIB_SOVERSION, SHLIB_SONAME, SHLIB_MAP, SHLIB_OBJS, SHLIB_DIR, SHLIB_SLIBDIR_QUAL) SHLIB_PTHREAD_CFLAG, SHLIB_PTHREAD_LDFLAG, SHLIB_LINK, SHLIB_INSTALL, SHLIB_MKMAP, SHLIB_MKMAP_OPTS, SHLIB_MAPFILES): Remove. * config/i386/t-cygwin (SHLIB_LC, SHLIB_EH_EXTENSION, SHLIB_IMPLIB, SHLIB_SONAME, SHLIB_MKMAP_OPTS): Remove. * config/i386/t-dlldir, config/i386/t-dlldir-x: Move to ../libgcc/config/i386. * config/i386/t-dw2-eh, config/i386/t-sjlj-eh: Move to ../libgcc/config/i386. * config/i386/t-linux: Move to ../libgcc/config/i386. * config/i386/t-mingw-pthread: Move to ../libgcc/config/i386. * config/i386/t-mingw-w32 (SHLIB_LC): Remove. * config/i386/t-mingw-w64: Likewise. * config/i386/t-mingw32: Remove. * config/ia64/libgcc-glibc.ver, config/ia64/libgcc-ia64.ver: Move to ../libgcc/config/ia64. * config/ia64/t-glibc: Remove. * config/ia64/t-hpux (SHLIB_EXT, SHLIB_LINK, SHLIB_INSTALL): Remove. * config/ia64/t-ia64 (SHLIB_MAPFILES): Remove. * config/ia64/t-vms (shlib_version, SHLIB_EXT, SHLIB_OBJS, SHLIB_NAME, SHLIB_MULTILIB, SHLIB_INSTALL, SHLIB_LINK): Remove. * config/ia64/vms_symvec_libgcc_s.opt: Remove. * config/m32r/libgcc-glibc.ver: Move to ../libgcc/config/m32r. * config/m32r/t-linux (SHLIB_MAPFILES): Remove. * config/m68k/t-slibgcc-elf-ver: Move to ../libgcc/config/m68k. * config/mips/t-libgcc-mips16 (SHLIB_MAPFILES): Remove. * config/pa/t-hpux-shlib: Move to ../libgcc/config/pa/t-slibgcc-hpux. * config/pa/t-slibgcc-dwarf-ver, config/pa/t-slibgcc-sjsj-ver: Move to ../libgcc/config/pa. * config/rs6000/darwin-libgcc.10.4.ver: Move to ../libgcc/config/rs6000/libgcc-darwin.10.4.ver. * config/rs6000/darwin-libgcc.10.5.ver: Move to ../libgcc/config/rs6000/libgcc-darwin.10.5.ver. * config/rs6000/t-aix43 (SHLIB_EXT, SHLIB_LINK, SHLIB_INSTALL, SHLIB_LIBS, SHLIB_MKMAP, SHLIB_NM_FLAGS, AR_FLAGS_FOR_TARGET): Remove. * config/rs6000/t-aix52: Likewise. * config/sh/libgcc-excl.ver, config/sh/libgcc-glibc.ver: Move to ../libgcc/config/sh. * config/sparc/libgcc-sparc-glibc.ver: Move to ../libgcc/config/sparc/libgcc-glibc.ver. * config/sparc/t-linux: Move to ../libgcc/config/sparc. * config/xtensa/t-linux (SHLIB_MAPFILES): Remove. * config/xtensa/libgcc-xtensa.ver: Move to ../libgcc/config/xtensa/libgcc-glibc.ver. * config.gcc (*-*-freebsd*): Replace t-slibgcc-elf-ver with t-slibgcc in tmake_file. Remove t-slibgcc-nolc-override for *-*-freebsd[34], *-*-freebsd[34].* with pthreads. (*-*-linux*, frv-*-*linux*, *-*-kfreebsd*-gnu, *-*-knetbsd*-gnu, *-*-gnu*, *-*-kopensolaris*-gnu): Replace t-slibgcc-elf-ver with t-slibgcc in tmake_file. (*-*-netbsd*): Likewise. (*-*-solaris2*): Replace t-slibgcc-dummy with t-slibgcc in tmake_file. (*-*-*vms*): Add t-slibgcc to tmake_file. (alpha*-*-linux*): Remove alpha/t-linux from tmake_file. (alpha*-dec-osf5.1*): Replace t-slibgcc-dummy with t-slibgcc in tmake_file. (arm*-*-linux*): Remove t-slibgcc-libgcc from tmake_file for arm*-*-linux-*eabi. (bfin*-linux-uclibc*): Replace t-slibgcc-dummy with t-slibgcc in tmake_file. (crisv32-*-linux*, cris-*-linux*): Likewise. (hppa*-*-linux*): Remove t-slibgcc-libgcc, pa/t-slibgcc-sjlj-ver, pa/t-slibgcc-dwarf-ver from tmake_file. (hppa[12]*-*-hpux10*): Replace pa/t-hpux-shlib with t-slibgcc in tmake_file. Remove pa/t-slibgcc-sjlj-ver, pa/t-slibgcc-dwarf-ver from tmake_file. (hppa*64*-*-hpux11*): Likewise. (hppa[12]*-*-hpux11*): Likewise. (i[34567]86-*-darwin*): Replace t-slibgcc-dummy in t-slibgcc in tmake_file. (x86_64-*-darwin*): Likewise. (i[34567]86-*-cygwin*): Remove tmake_eh_file, tmake_dlldir_file. Add t-slibgcc to tmake_file. (i[34567]86-*-mingw*, x86_64-*-mingw*): Likewise. Remove i386/t-mingw32 from tmake_file unless x86_64-w64-*, i[34567]86-w64-*. Remove i386/t-mingw-pthread from tmake_file. (ia64*-*-linux*): Remove ia64/t-glibc from tmake_file. (ia64*-*-hpux*): Add t-slibgcc to tmake_file. (ia64-hp-*vms*): Likewise. (m32r-*-linux*): Replace t-slibgcc-elf-ver with t-slibgcc in tmake_file. (m32rle-*-linux*): Likewise. (m68k-*-linux*): Remove m68k/t-slibgcc-elf-ver from tmake_file. (microblaze*-linux*): Remove t-slibgcc-elf-ver, t-slibgcc-nolc-override from tmake_file. (mips-sgi-irix6.5*): Replace t-slibgcc-dummy with t-slibgcc in tmake_file. (powerpc-*-darwin*): Likewise. (powerpc64-*-darwin*): Likewise. (powerpc-*-freebsd*): Remove t-slibgcc-libgcc from tmake_file. (powerpc-*-linux*, powerpc64-*-linux*): Likewise. (rs6000-ibm-aix4.[3456789]*, powerpc-ibm-aix4.[3456789]*): Add t-slibgcc to tmake_file. (rs6000-ibm-aix5.1.*, powerpc-ibm-aix5.1.*): Likewise. (rs6000-ibm-aix5.2.*, powerpc-ibm-aix5.2.*): Likewise. (rs6000-ibm-aix5.3.*, powerpc-ibm-aix5.3.*): Likewise. (rs6000-ibm-aix[6789].*, powerpc-ibm-aix[6789].*): Likewise. (sparc-*-linux*): Remove sparc/t-linux from tmake_file. (sparc64-*-linux*): Likewise. (tic6x-*-uclinux): Replace t-slibgcc-elf-ver with t-slibgcc in tmake_file. (i[34567]86-*-linux*, x86_64-*-linux*, i[34567]86-*-kfreebsd*-gnu, x86_64-*-kfreebsd*-gnu, i[34567]86-*-gnu*): Remove i386/t-linux from tmake_file. gcc/cp: * Make-lang.in (g++spec.o): Pass SHLIB instead of SHLIB_LINK. gcc/fortran: * Makef-lang.in (gfortranspec.o): Pass SHLIB instead of SHLIB_LINK. gcc/go: * Make-lang.in (gospec.o): Pass SHLIB instead of SHLIB_LINK. gcc/java: * Make-lang.in (jvspec.o): Pass SHLIB instead of SHLIB_LINK. libgcc: * Makefile.in (SHLIB_NM_FLAGS): Set. * mkmap-flat.awk, mkmap-symver.awk: New files. * configure.ac (libgcc_cv_lib_sjlj_exceptions): Check for SjLj exceptions. * configure: Regenerate. * config/libgcc-glibc.ver: New file. * config/libgcc-libsystem.ver: New file. * config/t-libunwind (SHLIB_LC): Set. * config/t-linux: New file. * config/t-slibgcc (INSTALL_SHLIB): New. (SHLIB_INSTALL): Use it. * config/t-slibgcc-darwin (SHLIB_MKMAP): Use $(srcdir) to refer to mkmap-symver.awk. (SHLIB_MAPFILES): Don't append, adapt pathname. (SHLIB_VERPFX): Set. * config/t-slibgcc-elf-ver (SHLIB_MKMAP): Use $(srcdir) to refer to mkmap-symver.awk. * config/t-slibgcc-gld-nover, config/t-slibgcc-hpux, config/t-slibgcc-libgcc, config/t-slibgcc-vms: New files. * config/alpha/libgcc-alpha-ldbl.ver, config/alpha/t-linux: New files. * config/alpha/t-slibgcc-osf (SHLIB_MKMAP): Use $(srcdir) to refer to mkmap-flat.awk. * config/arm/t-bpabi (SHLIB_MAPFILES): Set. * config/bfin/libgcc-glibc.ver, config/bfin/t-linux: New files. * config/c6x/libgcc-eabi.ver, config/c6x/t-elf: New files. * config/cris/libgcc-glibc.ver, config/cris/t-linux: New files. * config/frv/libgcc-frv.ver, config/frv/t-linux: New files. * config/i386/libgcc-darwin.10.4.ver, config/i386/libgcc-darwin.10.5.ver, config/i386/libgcc-glibc.ver: New files. * config/i386/t-darwin: Remove. * config/i386/t-darwin64: Likewise. * config/i386/t-dw2-eh, config/i386/t-sjlj-eh: New files. * config/i386/t-slibgcc-cygming, config/i386/t-cygwin, config/i386/t-dlldir, config/i386/t-dlldir-x: New files. * config/i386/t-linux: New file. * config/i386/t-mingw32: New file. * config/ia64/libgcc-glibc.ver, config/ia64/libgcc-ia64.ver: New files. * config/ia64/t-glibc: Rename to ... * config/ia64/t-linux: ... this. (SHLIB_MAPFILES): Set. * config/ia64/t-glibc-libunwind: Rename to ... * config/ia64/t-linux-libunwind: ... this. * config/ia64/t-ia64 (SHLIB_MAPFILES): Set. * config/ia64/t-slibgcc-hpux: New file. * config/m32r/libgcc-glibc.ver, config/m32r/t-linux: New files. * config/m68k/t-slibgcc-elf-ver: New file. * config/mips/t-mips16 (SHLIB_MAPFILES): Set. * config/mips/t-slibgcc-irix (SHLIB_MKMAP): Use $(srcdir) to refer to mkmap-flat.awk. * config/pa/t-slibgcc-hpux: New file. * config/pa/t-slibgcc-dwarf-ver, config/pa/t-slibgcc-sjsj-ver: New files. * config/rs6000/libgcc-darwin.10.4.ver, config/rs6000/libgcc-darwin.10.5.ver: New files. * config/rs6000/libgcc-ppc-glibc.ver: Rename to config/rs6000/libgcc-glibc.ver. * config/rs6000/libgcc-ppc64.ver: Rename to config/rs6000/libgcc-ibm-ldouble.ver. * config/rs6000/t-darwin (SHLIB_VERPFX): Remove. * config/rs6000/t-ibm-ldouble (SHLIB_MAPFILES): Adapt filename. * config/rs6000/t-ldbl128: Rename to ... * config/rs6000/t-linux: ... this. (SHLIB_MAPFILES): Adapt filename. * config/rs6000/t-slibgcc-aix: New file. * config/sh/libgcc-excl.ver, config/sh/libgcc-glibc.ver: New files. * config/sh/t-linux (SHLIB_MAPFILES): Use $(srcdir) to refer to libgcc-excl.ver, libgcc-glibc.ver. (SHLIB_LINK, SHLIB_INSTALL): Remove. * config/sparc/libgcc-glibc.ver: New file. * config/sparc/t-linux: New file. * config/xtensa/libgcc-glibc.ver, config/xtensa/t-linux: New files. * config.host (*-*-freebsd*): Add t-slibgcc, t-slibgcc-gld, t-slibgcc-elf-ver to tmake_file. Add t-slibgcc-nolc-override to tmake_file for posix threads on *-*-freebsd[34]. (*-*-linux*, frv-*-*linux*, *-*-kfreebsd*-gnu, *-*-knetbsd*-gnu, *-*-gnu*, *-*-kopensolaris*-gnu): Add t-slibgcc, t-slibgcc-gld, t-slibgcc-elf-ver, t-linux to tmake_file. (*-*-netbsd*): Add t-slibgcc, t-slibgcc-gld, t-slibgcc-elf-ver to tmake_file. (alpha*-*-linux*): Add alpha/t-linux to tmake_file. (alpha64-dec-*vms*): Add t-slibgcc-vms to tmake_file. (alpha*-dec-*vms*): Likewise. (arm*-*-freebsd*): Append to tmake_file. (arm*-*-netbsdelf*): Add t-slibgcc-gld-nover to tmake_file. (arm*-*-linux*): Add t-slibgcc-libgcc to tmake_file for arm*-*-linux-*eabi. (arm*-*-eabi*, arm*-*-symbianelf*): Add t-slibgcc-nolc-override to tmake_file for arm*-*-symbianelf*. (bfin*-linux-uclibc*): Append to tmake_file, add bfin/t-linux. (cris-*-linux*, crisv32-*-linux*): Append to tmake_file, add cris/t-linux. (frv-*-*linux*): Append to tmake_file, add frv/t-linux. (hppa*-*-linux*): Add t-slibgcc-libgcc, pa/t-slibgcc-sjlj-ver, pa/t-slibgcc-dwarf-ver to tmake_file. (hppa[12]*-*-hpux10*): Add t-slibgcc, pa/t-slibgcc-sjlj-ver, pa/t-slibgcc-dwarf-ver, t-slibgcc-hpux, pa/t-slibgcc-hpux to tmake_file. (hppa*64*-*-hpux11*): Likewise. (hppa[12]*-*-hpux11*): Likewise. (x86_64-*-darwin*): Don't override tmake_file, but only keep i386/t-crtpc, i386/t-crtfm. (i[34567]86-*-cygwin*): Set tmake_eh_file, tmake_dlldir_file. Prepend $tmake_eh_file, $tmake_dlldir_file, i386/t-slibgcc-cygming to tmake_file. Add i386/t-cygwin to tmake_file. Prepent i386/t-mingw-pthread to tmake_file for posix threads. (i[34567]86-*-mingw*): Set tmake_eh_file, tmake_dlldir_file. Prepend $tmake_eh_file, $tmake_dlldir_file, i386/t-slibgcc-cygming to tmake_file. Add i386/t-mingw32 to tmake_file. (x86_64-*-mingw*): Likewise. (ia64*-*-freebsd*): Append to tmake_file. (ia64*-*-linux*): Append to tmake_file. Replace ia64/t-glibc by ia64/t-linux. Replace ia64/t-glibc-libunwind by ia64/t-linux-libunwind if using system libunwind. (ia64*-*-hpux*): Add t-slibgcc, ia64/t-slibgcc-hpux, t-slibgcc-hpux to tmake_file. (ia64-hp-*vms*): Add t-slibgcc-vms to tmake_file. (m32r-*-linux*): Append to tmake_file, add m32r/t-linux. (m32rle-*-linux*): Likewise. (m68k-*-linux*)): Add m68k/t-slibgcc-elf-ver to tmake_file unless sjlj exceptions. (microblaze*-linux*): New case. Append to tmake_file, add t-slibgcc-nolc-override. (powerpc-*-freebsd*): Add t-slibgcc-libgcc to tmake_file. (powerpc-*-linux*, powerpc64-*-linux*): Likewise. Replace rs6000/t-ldbl128 by rs6000/t-linux in tmake_file. (rs6000-ibm-aix4.[3456789]*, powerpc-ibm-aix4.[3456789]*): Add rs6000/t-slibgcc-aix to tmake_file. (rs6000-ibm-aix5.1.*, powerpc-ibm-aix5.1.*): Likewise. (rs6000-ibm-aix[56789].*, powerpc-ibm-aix[56789].*): Likewise. (sh-*-elf*, sh[12346l]*-*-elf*, sh-*-linux*) (sh[2346lbe]*-*-linux*, sh-*-netbsdelf*, shl*-*-netbsdelf*) (sh5-*-netbsd*, sh5l*-*-netbsd*, sh64-*-netbsd*) (sh64l*-*-netbsd*): Add t-slibgcc-libgcc to tmake_file for sh*-*-linux*. (sparc-*-linux*): Append to tmake_file for *-leon*. Add sparc/t-linux to tmake_file for non-Leon targets. (sparc64-*-linux*): Add sparc/t-linux to tmake_file. (tic6x-*-uclinux): New case. Add t-slibgcc, t-slibgcc-gld, t-slibgcc-elf-ver to tmake_file. (tic6x-*-*): Add c6x/t-elf to tmake_file. (xtensa*-*-linux*): Append to tmake_file, add xtensa/t-linux. (am33_2.0-*-linux*): Append to tmake_file. (i[34567]86-*-linux*, x86_64-*-linux*, i[34567]86-*-kfreebsd*-gnu) (i[34567]86-*-knetbsd*-gnu, i[34567]86-*-gnu*): Also handle x86_64-*-kfreebsd*-gnu. Add i386/t-linux to tmake_file. From-SVN: r180767
2011-11-02 11:49:46 +01:00
AC_ARG_ENABLE([explicit-exception-frame-registration],
[AC_HELP_STRING([--enable-explicit-exception-frame-registration],
[register exception tables explicitly at module start, for use
e.g. for compatibility with installations without PT_GNU_EH_FRAME support])],
[
force_explicit_eh_registry=
if test "$enable_explicit_exception_frame_registration" = yes; then
if test $ac_cv_sjlj_exceptions = yes; then
AC_MSG_ERROR([Can't --enable-explicit-exception-frame-registration
with setjmp/longjmp exceptions])
fi
force_explicit_eh_registry=-DUSE_EH_FRAME_REGISTRY_ALWAYS
fi
])
AC_SUBST([force_explicit_eh_registry])
t-slibgcc-darwin: Move to ... gcc: * config/t-slibgcc-darwin: Move to ... * config/t-slibgcc-dummy: .. this. Clarify comments. * config.gcc (i[34567]86-*-darwin*, x86_64-*-darwin*, powerpc-*-darwin*, powerpc64-*-darwin*): Reflect this. (i[3456x]86-*-netware*): Add t-slibgcc-dummy to tmake_file. (i[34567]86-*-rtems*): Remove extra_parts. Use i386/t-rtems. Remove i386/t-crtstuff from tmake_file. (i[34567]86-*-solaris2*): Remove t-svr4, t-slibgcc-elf-ver, t-slibgcc-sld from tmake_file, add t-slibgcc-dummy. (sparc-*-elf*, sparc64-*-elf*): Remove tmake_file, extra_parts. (sparc-*-rtems*, sparc64-*-rtems*): Remove sparc/t-crtin, sparc/t-crtfm from tmake_file. (sparc*-*-solaris2*): Remove sparc/t-sol2, sparc/t-crtfm, t-slibgcc-elf-ver, t-slibgcc-sld, add t-slibgcc-dummy. Remove extra_parts. * config/t-sol2 (TARGET_LIBGCC2_CFLAGS): Define. * config/i386/t-nwld (SHLIB_LINK): Remove. * config/i386/t-rtems-i386: Rename to ... * config/i386/t-rtems: ... this. ($(T)crti.o, $(T)crtn.o): Remove. (FPBIT, DPBIT, LIB2FUNCS_EXTRA): Remove. (dp-bit.c, fp-bit.c, xp-bit.c): Remove. (EXTRA_MULTILIB_PARTS, LIBGCC, INSTALL_LIBGCC): Remove. * config/i386/t-sol2-10 (LIBGCC, INSTALL_LIBGCC, EXTRA_MULTILIB_PARTS): Remove. * config/sparc/t-sol2-64: Likewise. * config/sparc/t-sol2: Remove. * config/sparc/t-crtin: Remove. * config/sparc/gmon-sol2.c: Move to ../libgcc/config. * config/i386/gmon-sol2.c: Remove. * config/i386/sol2-c1.asm: Move to ../libgcc/config/i386/sol2-c1.S. * config/i386/sol2-ci.asm: Move to ../libgcc/config/i386/sol2-ci.S. * config/i386/sol2-cn.asm: Move to ../libgcc/config/i386/sol2-cn.S. * config/i386/sol2-gc1.asm: Remove. * config/sparc/sol2-c1.asm: Move to ../libgcc/config/sparc/sol2-c1.S. * config/sparc/sol2-ci.asm: Move to ../libgcc/config/sparc/sol2-ci.S. * config/sparc/sol2-cn.asm: Move to ../libgcc/config/sparc/sol2-cn.S. * config/t-slibgcc-sld: Remove. libgcc: * Makefile.in (cpu_type): Define. * config.host (i[34567]86-*-rtems*): Handle it. (i[34567]86-*-solaris2*): Move body ... (*-*-solaris2*): ... here. New case, generalize. (sparc-*-elf*): Handle it. (sparc-*-linux*, sparc64-*-linux*): Replace sparc/t-crtfm by t-crtfm. (sparc-*-rtems*, sparc64-*-rtems*); Handle it. (sparc64-*-solaris2*, sparcv9-*-solaris2*, sparc-*-solaris2*): Fold into ... (sparc*-*-solaris2*): ... this. New case. (sparc64-*-elf*): Handle it. * config/gmon-sol2.c: Move from ../gcc/config/sparc. Merge ../gcc/config/i386/gmon-sol2.c. * config/i386/sol2-c1.S: Move from ../gcc/config/i386/sol2-c1.asm. Use C comments. Merge ../gcc/config/i386/sol2-gc1.asm. * config/i386/sol2-ci.S: Move from ../gcc/config/i386/sol2-ci.asm. Use C comments. * config/i386/sol2-cn.S: Move from ../gcc/config/i386/sol2-cn.asm. Use C comments. * config/i386/t-crtfm (crtfastmath.o): Use $<. * config/i386/t-crtstuff: New file. * config/i386/t-softfp: New file. * config/i386/t-sol2 ($(T)gmon.o, $(T)gcrt1.o, $(T)crt1.o), $(T)crti.o, $(T)crtn.o): Remove. (gcrt1.o): New rule. (TARGET_LIBGCC2_CFLAGS): Remove. * config/sparc/sol2-c1.S: Move from ../gcc/config/sparc/sol2-c1.asm. * config/sparc/sol2-ci.S: Move from ../gcc/config/sparc/sol2-ci.asm. * config/sparc/sol2-cn.S: Move from ../gcc/config/sparc/sol2-cn.asm. * config/sparc/t-sol2: New file. * config/sparc/t-crtfm: Move to ... * config/t-crtfm: ... this. Use $(cpu_type), $<. * config/t-crtin: New file. * config/sparc/t-softfp: New file. * config/sparc/t-softmul: New file. * config/t-rtems: New file. * config/t-slibgcc: New file. * config/t-slibgcc-elf-ver: New file. * config/t-slibgcc-gld: New file. * config/t-slibgcc-sld: New file. * config/t-sol2: New file. * configure.ac: Include ../config/lib-ld.m4. Call AC_LIB_PROG_LD_GNU. Substitute cpu_type. * configure: Regenerate. From-SVN: r174529
2011-06-01 16:39:17 +02:00
AC_LIB_PROG_LD_GNU
AC_MSG_CHECKING([for thread model used by GCC])
target_thread_file=`$CC -v 2>&1 | sed -n 's/^Thread model: //p'`
AC_MSG_RESULT([$target_thread_file])
# Check for assembler CFI support.
AC_CACHE_CHECK([whether assembler supports CFI directives], [libgcc_cv_cfi],
[AC_COMPILE_IFELSE(
[asm("\n\
.text\n\
.cfi_startproc\n\
.cfi_personality 0, symbol\n\
.cfi_endproc");],
[libgcc_cv_cfi=yes],
[libgcc_cv_cfi=no])])
# Check 32bit or 64bit. In the case of MIPS, this really determines the
# word size rather than the address size.
cat > conftest.c <<EOF
#if defined(__x86_64__) || (!defined(__i386__) && defined(__LP64__)) \
|| defined(__mips64)
re PR target/36669 (Wrong versioning for __float128) gcc/ 2008-07-02 H.J. Lu <hongjiu.lu@intel.com> PR target/36669 * config/libgcc-glibc.ver: Add %exclude. * config/m32r/libgcc-glibc.ver: Likwise. * config/s390/libgcc-glibc.ver: Likwise. * config/sh/libgcc-glibc.ver: Likwise. * config/sparc/libgcc-sparc-glibc.ver: Likwise. * config/i386/libgcc-glibc.ver: New. * config/i386/libgcc-x86_64-glibc.ver: Removed. 2008-07-02 H.J. Lu <hongjiu.lu@intel.com> * config.gcc: Remove i386/t-fprules-softfp64 soft-fp/t-softfp from tmake_file from i[34567]86-*-darwin*, x86_64-*-darwin*, i[34567]86-*-linux*, x86_64-*-linux*. Add i386/t-fprules-softfp and soft-fp/t-softfp to tmake_file for i[34567]86-*-darwin*, x86_64-*-darwin*, i[34567]86-*-linux*, x86_64-*-linux*. Add i386/t-linux to tmake_file for i[34567]86-*-linux*, x86_64-*-linux*. * libgcc-std.ver: Add empty GCC_4.4.0. * mkmap-symver.awk: Support multiple versions per symbol. * config/i386/i386.c (ix86_init_builtins): Always define __builtin_fabsq and __builtin_copysignq with fallbacks. (ix86_expand_builtin): Emit normal call for __builtin_fabsq and __builtin_copysignq if SSE2 isn't available. * config/i386/linux.h (LIBGCC2_HAS_TF_MODE): Defined. (LIBGCC2_TF_CEXT): Likwise. (TF_SIZE): Likwise. * config/i386/linux64.h (LIBGCC2_HAS_TF_MODE): Defined as 1. * config/i386/sfp-machine.h: Moved to libgcc. * config/i386/sfp-machine.h: New. * config/i386/t-linux: Likwise. * config/i386/t-darwin: Remove softfp_wrap_start and softfp_wrap_end. * config/i386/t-darwin64: Likewise. * config/i386/t-fprules-softfp64: Renamed to ... * config/i386/t-fprules-softfp: This. * config/i386/t-linux64: Remove SHLIB_MAPFILES, softfp_wrap_start and softfp_wrap_end. libgcc/ 2008-07-02 H.J. Lu <hongjiu.lu@intel.com> PR target/36669 * shared-object.mk ($(base)_s$(objext)): Add -DSHARED. * config/i386/64/_divtc3-compat.c: New. * config/i386/64/_multc3-compat.c: Likewise. * config/i386/64/_powitf2-compat.c: Likewise. * config/i386/64/eqtf2.c: Likewise. * config/i386/64/getf2.c: Likewise. * config/i386/64/letf2.c: Likewise. * config/i386/64/t-fprules-softfp: Likewise. 2008-07-02 H.J. Lu <hongjiu.lu@intel.com> * config.host: Add i386/${host_address}/t-fprules-softfp to tmake_file for i[34567]86-*-darwin*, x86_64-*-darwin*, i[34567]86-*-linux*, x86_64-*-linux*. * configure.ac: Set host_address to 64 or 32 for x86. * configure: Regenerated. * Makefile.in (config.status): Also depend on $(srcdir)/config.host. * config/i386/32/t-fprules-softfp: New. * config/i386/32/tf-signs.c: Likewise. * config/i386/64/sfp-machine.h: New. Moved from gcc. 2008-07-02 H.J. Lu <hongjiu.lu@intel.com> Uros Bizjak <ubizjak@gmail.com> * config/i386/32/sfp-machine.h: New. Co-Authored-By: Uros Bizjak <ubizjak@gmail.com> From-SVN: r137369
2008-07-02 17:59:19 +02:00
host_address=64
#else
host_address=32
#endif
EOF
eval `${CC-cc} -E conftest.c | grep host_address=`
rm -f conftest.c
case ${host} in
mips*-*-*)
AC_CACHE_CHECK([whether the target is hard-float],
[libgcc_cv_mips_hard_float],
[AC_COMPILE_IFELSE(
[#ifndef __mips_hard_float
#error FOO
#endif],
[libgcc_cv_mips_hard_float=yes],
[libgcc_cv_mips_hard_float=no])])
esac
case ${host} in
*-*-solaris2*)
# Check for system-provided CRTs on Solaris 11.4.
AC_CACHE_CHECK([system-provided CRTs on Solaris],
[libgcc_cv_solaris_crts],
[libgcc_cv_solaris_crts=no
libgcc_sysroot="`${CC} -print-sysroot`"
libgcc_libdir="$libgcc_sysroot/usr/lib"
# At the time they were added, gcrt1.o became a symlink for backwards
# compatibility on x86, while crt1.o was added on sparc, so check for that.
case ${host} in
i?86-*-solaris2* | x86_64-*-solaris2*)
if test -h "$libgcc_libdir/gcrt1.o"; then libgcc_cv_solaris_crts=yes; fi
;;
sparc*-*-solaris2*)
if test -f "$libgcc_libdir/crt1.o"; then libgcc_cv_solaris_crts=yes; fi
;;
esac])
if test $libgcc_cv_solaris_crts = yes; then
AC_DEFINE(HAVE_SOLARIS_CRTS, 1,
[Define if the system-provided CRTs are present on Solaris.])
fi
;;
esac
Make soft-fp symbols into compat symbols for powerpc*-*-linux*. 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
2014-10-30 18:28:30 +01:00
# Determine the version of glibc, if any, used on the target.
AC_MSG_CHECKING([for target glibc version])
AC_ARG_WITH([glibc-version],
[AS_HELP_STRING([--with-glibc-version=M.N],
[assume GCC used with glibc version M.N or later])], [
if [echo "$with_glibc_version" | grep '^[0-9][0-9]*\.[0-9][0-9]*$']; then
glibc_version_major=`echo "$with_glibc_version" | sed -e 's/\..*//'`
glibc_version_minor=`echo "$with_glibc_version" | sed -e 's/.*\.//'`
else
AC_MSG_ERROR([option --with-glibc-version requires a version number M.N])
fi], [
AC_COMPUTE_INT([glibc_version_major], [__GLIBC__],
[#include <features.h>],
[glibc_version_major=0])
AC_COMPUTE_INT([glibc_version_minor], [__GLIBC_MINOR__],
[#include <features.h>],
[glibc_version_minor=0])])
AC_MSG_RESULT([$glibc_version_major.$glibc_version_minor])
Optimize powerpc*-*-linux* 32-bit classic hard/soft float hardfp/soft-fp use. Continuing the cleanups of libgcc soft-fp configuration for powerpc*-*-linux* in preparation for implementing TARGET_ATOMIC_ASSIGN_EXPAND_FENV for soft-float and e500, this patch optimizes the choice of which functions to build for the 32-bit classic hard-float and soft-float cases. (e500 will be dealt with in a separate patch which will need to add new features to t-hardfp and t-softfp; this patch keeps the status quo for e500.) For hard-float, while the functions in question are part of the libgcc ABI there is no need for them to contain software floating point code: no newly built code should use them, and if anything does use them it's most efficient (space and speed) for them to pass straight through to floating-point hardware instructions; this case is made to use t-hardfp to achieve that. For soft-float, direct use of soft-fp functions for operations involving DImode or unsigned integers is more efficient than using the libgcc2.c versions of those operations to convert to operations on other types (which then end up calling soft-fp functions for those other types, possibly more than once); this case is thus stopped from using t-softfp-excl. (A future patch will stop the e500 cases from using t-softfp-excl as well.) Tested with no regressions for crosses to powerpc-linux-gnu (soft float and classic hard float); also checked that the same set of symbols and versions is exported from shared libgcc before and after the patch. * configure.ac (ppc_fp_type): Set variable on powerpc*-*-linux*. * configure: Regenerate. * config.host (powerpc*-*-linux*): Use $ppc_fp_type to determine additions to tmake_file. Use t-hardfp-sfdf and t-hardfp instead of soft-fp for 32-bit classic hard float. Do not use t-softfp-excl for soft float. From-SVN: r216687
2014-10-25 02:22:02 +02:00
# Determine floating-point type for powerpc*-*-linux*.
# Single-precision-only FPRs are not a supported configuration for
# this target, so are not allowed for in this test.
case ${host} in
powerpc*-*-linux*)
cat > conftest.c <<EOF
#ifdef __powerpc64__
ppc_fp_type=64
#elif defined _SOFT_FLOAT
ppc_fp_type=soft
#elif defined _SOFT_DOUBLE
ppc_fp_type=e500v1
#elif defined __NO_FPRS__
ppc_fp_type=e500v2
#else
ppc_fp_type=hard
#endif
EOF
eval `${CC-cc} -E conftest.c | grep ppc_fp_type=`
rm -f conftest.c
Make soft-fp symbols into compat symbols for powerpc*-*-linux*. 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
2014-10-30 18:28:30 +01:00
# glibc 2.19 and later provide all the soft-fp functions, with proper
# interactions with <fenv.h> exception and rounding mode handling, so
# make libgcc's versions into compat symbols if a recent enough glibc
# version is being used.
ppc_fp_compat=
case ${ppc_fp_type} in
soft|e500v1|e500v2)
if test $glibc_version_major -gt 2 \
|| ( test $glibc_version_major -eq 2 \
&& test $glibc_version_minor -ge 19 ); then
ppc_fp_compat="t-softfp-compat"
fi
;;
esac
Optimize powerpc*-*-linux* 32-bit classic hard/soft float hardfp/soft-fp use. Continuing the cleanups of libgcc soft-fp configuration for powerpc*-*-linux* in preparation for implementing TARGET_ATOMIC_ASSIGN_EXPAND_FENV for soft-float and e500, this patch optimizes the choice of which functions to build for the 32-bit classic hard-float and soft-float cases. (e500 will be dealt with in a separate patch which will need to add new features to t-hardfp and t-softfp; this patch keeps the status quo for e500.) For hard-float, while the functions in question are part of the libgcc ABI there is no need for them to contain software floating point code: no newly built code should use them, and if anything does use them it's most efficient (space and speed) for them to pass straight through to floating-point hardware instructions; this case is made to use t-hardfp to achieve that. For soft-float, direct use of soft-fp functions for operations involving DImode or unsigned integers is more efficient than using the libgcc2.c versions of those operations to convert to operations on other types (which then end up calling soft-fp functions for those other types, possibly more than once); this case is thus stopped from using t-softfp-excl. (A future patch will stop the e500 cases from using t-softfp-excl as well.) Tested with no regressions for crosses to powerpc-linux-gnu (soft float and classic hard float); also checked that the same set of symbols and versions is exported from shared libgcc before and after the patch. * configure.ac (ppc_fp_type): Set variable on powerpc*-*-linux*. * configure: Regenerate. * config.host (powerpc*-*-linux*): Use $ppc_fp_type to determine additions to tmake_file. Use t-hardfp-sfdf and t-hardfp instead of soft-fp for 32-bit classic hard float. Do not use t-softfp-excl for soft float. From-SVN: r216687
2014-10-25 02:22:02 +02:00
;;
esac
float128-sed: New files to convert TF names to KF names for PowerPC IEEE 128-bit floating... 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: Steven Munroe <munroesj@linux.vnet.ibm.com> Co-Authored-By: Tulio Magno Quites Machado Filho <tulioqm@br.ibm.com> From-SVN: r232685
2016-01-21 18:52:33 +01:00
case ${host} in
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
2017-07-13 01:07:50 +02:00
# At present, we cannot turn -mfloat128 on via #pragma GCC target, so just
# check if we have VSX (ISA 2.06) support to build the software libraries, and
# whether the assembler can handle xsaddqp for hardware support. Also check if
# a new glibc is being used so that __builtin_cpu_supports can be used.
float128-sed: New files to convert TF names to KF names for PowerPC IEEE 128-bit floating... 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: Steven Munroe <munroesj@linux.vnet.ibm.com> Co-Authored-By: Tulio Magno Quites Machado Filho <tulioqm@br.ibm.com> From-SVN: r232685
2016-01-21 18:52:33 +01:00
powerpc*-*-linux*)
saved_CFLAGS="$CFLAGS"
CFLAGS="$CFLAGS -mabi=altivec -mvsx -mfloat128"
AC_CACHE_CHECK([for PowerPC ISA 2.06 to build __float128 libraries],
float128-sed: New files to convert TF names to KF names for PowerPC IEEE 128-bit floating... 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: Steven Munroe <munroesj@linux.vnet.ibm.com> Co-Authored-By: Tulio Magno Quites Machado Filho <tulioqm@br.ibm.com> From-SVN: r232685
2016-01-21 18:52:33 +01:00
[libgcc_cv_powerpc_float128],
[AC_COMPILE_IFELSE(
[vector double dadd (vector double a, vector double b) { return a + b; }],
float128-sed: New files to convert TF names to KF names for PowerPC IEEE 128-bit floating... 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: Steven Munroe <munroesj@linux.vnet.ibm.com> Co-Authored-By: Tulio Magno Quites Machado Filho <tulioqm@br.ibm.com> From-SVN: r232685
2016-01-21 18:52:33 +01:00
[libgcc_cv_powerpc_float128=yes],
[libgcc_cv_powerpc_float128=no])])
CFLAGS="$CFLAGS -mpower9-vector -mfloat128-hardware"
AC_CACHE_CHECK([for PowerPC ISA 3.0 to build hardware __float128 libraries],
float128-sed: New files to convert TF names to KF names for PowerPC IEEE 128-bit floating... 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: Steven Munroe <munroesj@linux.vnet.ibm.com> Co-Authored-By: Tulio Magno Quites Machado Filho <tulioqm@br.ibm.com> From-SVN: r232685
2016-01-21 18:52:33 +01:00
[libgcc_cv_powerpc_float128_hw],
[AC_COMPILE_IFELSE(
[#include <sys/auxv.h>
float128-sed: New files to convert TF names to KF names for PowerPC IEEE 128-bit floating... 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: Steven Munroe <munroesj@linux.vnet.ibm.com> Co-Authored-By: Tulio Magno Quites Machado Filho <tulioqm@br.ibm.com> From-SVN: r232685
2016-01-21 18:52:33 +01:00
#ifndef AT_PLATFORM
#error "AT_PLATFORM is not defined"
#endif
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
2017-07-13 01:07:50 +02:00
#ifndef __BUILTIN_CPU_SUPPORTS__
#error "__builtin_cpu_supports is not available"
#endif
vector unsigned char add (vector unsigned char a, vector unsigned char b)
float128-sed: New files to convert TF names to KF names for PowerPC IEEE 128-bit floating... 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: Steven Munroe <munroesj@linux.vnet.ibm.com> Co-Authored-By: Tulio Magno Quites Machado Filho <tulioqm@br.ibm.com> From-SVN: r232685
2016-01-21 18:52:33 +01:00
{
vector unsigned char ret;
float128-sed: New files to convert TF names to KF names for PowerPC IEEE 128-bit floating... 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: Steven Munroe <munroesj@linux.vnet.ibm.com> Co-Authored-By: Tulio Magno Quites Machado Filho <tulioqm@br.ibm.com> From-SVN: r232685
2016-01-21 18:52:33 +01:00
__asm__ ("xsaddqp %0,%1,%2" : "=v" (ret) : "v" (a), "v" (b));
return ret;
}
void *add_resolver (void) { return (void *) add; }
__float128 add_ifunc (__float128, __float128)
__attribute__ ((__ifunc__ ("add_resolver")));],
[libgcc_cv_powerpc_float128_hw=yes],
[libgcc_cv_powerpc_float128_hw=no])])
CFLAGS="$saved_CFLAGS"
float128-sed: New files to convert TF names to KF names for PowerPC IEEE 128-bit floating... 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: Steven Munroe <munroesj@linux.vnet.ibm.com> Co-Authored-By: Tulio Magno Quites Machado Filho <tulioqm@br.ibm.com> From-SVN: r232685
2016-01-21 18:52:33 +01:00
esac
Makefile.def (target_modules): Add libgcc. ./ * Makefile.def (target_modules): Add libgcc. (lang_env_dependencies): Remove default items. Use no_c and no_gcc. * Makefile.tpl (clean-target-libgcc): Delete. (configure-target-[+module+]): Emit --disable-bootstrap dependencies on gcc even for bootstrapped modules. Rewrite handling of lang_env_dependencies to loop over target_modules. * configure.in (target_libraries): Add target-libgcc. * Makefile.in, configure: Regenerated. gcc/ * config.gcc: Mention libgcc/config.host. * Makefile.in: Update comments mentioning libgcc. (LIBGCC, INSTALL_LIBGCC, GCC_PARTS, mklibgcc): Delete. (all.cross, start.encap, rest.encap, rest.cross): Update dependencies for libgcc move. (libgcc.mk, LIBGCC_DEPS, libgcov.a, libgcc.a, stmp-multilib) (clean-target, clean-target-libgcc): Delete. (srcdirify, GCC_EXTRA_PARTS): New macros. (libgcc-support, libgcc.mvars): New rules. (distclean): Remove mention of mklibgcc. (install): Don't reference INSTALL_LIBGCC. (install-common): Don't reference EXTRA_PARTS. (install-libgcc, install-multilib): Delete rules. * mklibgcc.in: Delete file. * doc/configfiles.texi: Don't mention mklibgcc. * config/i386/t-darwin (SHLIB_VERPFX): Delete (moved to libgcc). * config/i386/t-darwin64 (SHLIB_VERPFX): Likewise. * config/rs6000/t-darwin (SHLIB_VERPFX): Likewise. * config/rs6000/t-ppccomm (TARGET_LIBGCC2_CFLAGS, SHLIB_MAPFILES) (mklibgcc, ldblspecs): Likewise. * config/i386/t-nwld (libgcc.def, libc.def, libpcre.def) (posixpre.def): Use $(T). (SHLIB_EXT, SHLIB_NAME, SHLIB_SLIBDIR_QUAL, SHLIB_DEF, SHLIB_MAP) (SHLIB_SRC, SHLIB_INSTALL): Delete. (SHLIB_LINK): Make dummy. * config/t-slibgcc-darwin: Delete contents except for dummy SHLIB_LINK. * config/frv/t-linux (EXTRA_MULTILIB_PARTS): Clear. * config/alpha/t-crtfm: Use $(T) in rules for EXTRA_PARTS. * config/alpha/t-vms, config/alpha/t-vms64, config/fr30/t-fr30, config/i386/t-rtems-i386, config/ia64/t-ia64, config/rs6000/t-beos, config/rs6000/t-newas, config/sparc/t-elf: Likewise. * configure.ac (all_outputs): Remove mklibgcc. * configure: Regenerated. libgcc/ * Makefile.in, config/i386/t-darwin, config/i386/t-darwin64, config/i386/t-nwld, config/rs6000/t-darwin, config/rs6000/t-ldbl128, config/i386/t-crtfm, config/alpha/t-crtfm, config/ia64/t-ia64, config/sparc/t-crtfm, config/t-slibgcc-darwin, config/rs6000/t-ppccomm, config.host, configure.ac, empty.mk, shared-object.mk, siditi-object.mk, static-object.mk: New files. * configure: Generated. Co-Authored-By: Paolo Bonzini <bonzini@gnu.org> From-SVN: r120429
2007-01-04 05:22:37 +01:00
# Collect host-machine-specific information.
. ${srcdir}/config.host
[PATCH 1/7] OpenMP 4.0 offloading infrastructure: configure and make * 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: Andrey Turetskiy <andrey.turetskiy@intel.com> Co-Authored-By: Ilya Verbin <ilya.verbin@intel.com> Co-Authored-By: Thomas Schwinge <thomas@codesourcery.com> From-SVN: r217485
2014-11-13 14:28:56 +01:00
# Used for constructing correct paths for offload compilers.
accel_dir_suffix=
real_host_noncanonical=${host_noncanonical}
[PATCH 1/7] OpenMP 4.0 offloading infrastructure: configure and make * 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: Andrey Turetskiy <andrey.turetskiy@intel.com> Co-Authored-By: Ilya Verbin <ilya.verbin@intel.com> Co-Authored-By: Thomas Schwinge <thomas@codesourcery.com> From-SVN: r217485
2014-11-13 14:28:56 +01:00
if test x"$enable_as_accelerator_for" != x; then
accel_dir_suffix=/accel/${target_noncanonical}
real_host_noncanonical=${enable_as_accelerator_for}
[PATCH 1/7] OpenMP 4.0 offloading infrastructure: configure and make * 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: Andrey Turetskiy <andrey.turetskiy@intel.com> Co-Authored-By: Ilya Verbin <ilya.verbin@intel.com> Co-Authored-By: Thomas Schwinge <thomas@codesourcery.com> From-SVN: r217485
2014-11-13 14:28:56 +01:00
fi
AC_SUBST(accel_dir_suffix)
AC_SUBST(real_host_noncanonical)
[PATCH 1/7] OpenMP 4.0 offloading infrastructure: configure and make * 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: Andrey Turetskiy <andrey.turetskiy@intel.com> Co-Authored-By: Ilya Verbin <ilya.verbin@intel.com> Co-Authored-By: Thomas Schwinge <thomas@codesourcery.com> From-SVN: r217485
2014-11-13 14:28:56 +01:00
if test x"$enable_offload_targets" != x; then
re PR driver/68463 (Offloading fails when some objects are compiled with LTO and some without) 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
2016-02-25 13:23:52 +01:00
extra_parts="${extra_parts} crtoffloadbegin.o crtoffloadend.o crtoffloadtable.o"
[PATCH 1/7] OpenMP 4.0 offloading infrastructure: configure and make * 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: Andrey Turetskiy <andrey.turetskiy@intel.com> Co-Authored-By: Ilya Verbin <ilya.verbin@intel.com> Co-Authored-By: Thomas Schwinge <thomas@codesourcery.com> From-SVN: r217485
2014-11-13 14:28:56 +01:00
fi
# Check if Solaris/x86 linker supports ZERO terminator unwind entries.
# This is after config.host so we can augment tmake_file.
# Link with -nostartfiles -nodefaultlibs since neither are present while
# building libgcc.
case ${host} in
re PR bootstrap/39150 (Configure scripts have no 64-Bit Solaris defined (only i386-solaris*).) gcc: PR target/39150 * configure.ac (gcc_cv_as_hidden): Also accept x86_64-*-solaris2.1[0-9]*. (gcc_cv_as_cfi_directive): Likewise. (gcc_cv_as_comdat_group_group): Likewise. (set_have_as_tls): Likewise. * configure: Regenerate. * config.gcc (i[34567]86-*-solaris2*): Also handle x86_64-*-solaris2.1[0-9]*. * config.host (i[34567]86-*-solaris2*): Likewise. * config/sparc/sol2.h (ASM_CPU_DEFAULT_SPEC): Remove. * config/sol2-bi.h (ASM_CPU_DEFAULT_SPEC): Redefine. [USE_GLD] (ARCH_DEFAULT_EMULATION): Define. (TARGET_LD_EMULATION): Use it. * config/i386/sol2.h (ASM_CPU_DEFAULT_SPEC): Define. (SUBTARGET_CPU_EXTRA_SPECS): Add asm_cpu_default. * config/i386/sol2-bi.h (ASM_CPU32_DEFAULT_SPEC): Define. (ASM_CPU64_DEFAULT_SPEC): Define. (ASM_CPU_SPEC): Use %(asm_cpu_default). (ASM_SPEC): Redefine. (DEFAULT_ARCH32_P): Define using TARGET_64BIT_DEFAULT. * config/host-solaris.c [__x86_64__] (TRY_EMPTY_VM_SPACE): Reduce. * doc/install.texi (Specific, amd64-*-solaris2.1[0-9]*): Document. (Specific, i?86-*-solaris2.10): Mention x86_64-*-solaris2.1[0-9]* configuration. (Specific, x86_64-*-solaris2.1[0-9]*): Document. gcc/ada: PR target/39150 * gcc-interface/Makefile.in: Handle x86_64-solaris2. libgcc: PR target/39150 * config.host (*-*-solaris2*): Handle x86_64-*-solaris2.1[0-9]* like i?86-*-solaris2.1[0-9]*. (i[34567]86-*-solaris2*): Also handle x86_64-*-solaris2.1[0-9]*. * configure.ac (i?86-*-solaris2*): Likewise. * configure: Regenerate. gcc/testsuite: PR target/39150 * gcc.misc-tests/linkage.exp: Handle x86_64-*-solaris2.1[0-9]*. toplevel: PR target/39150 * configure.ac (i[3456789]86-*-solaris2*): Also accept x86_64-*-solaris2.1[0-9]*. * configure: Regenerate. boehm-gc: PR target/39150 * configure.ac (i?86-*-solaris2.[89]): Also accept x86_64-*-solaris2.1?. * configure: Regenerate. gnattools: PR target/39150 * configure.ac (*86-*-solaris2*): Also accept x86_64-*-solaris2.1[0-9]*. * configure: Regenerate. libcpp: PR target/39150 * configure.ac (host_wide_int): Handle x86_64-*-solaris2.1[0-9] like i[34567]86-*-solaris2.1[0-9]*. * configure: Regenerate. libgo: PR target/39150 * config/libtool.m4: Handle x86_64-*-solaris2.1[0-9]* like i?86-*-solaris*. * configure: Regenerate. libjava: PR target/39150 * configure.host (x86_64-*): Add -Usun to libgcj_flags. (x86_64-*-solaris2.1[0-9]*): New case. (i?86-*-solaris2*): Also accept x86_64-*-solaris2.1[0-9]*. From-SVN: r175958
2011-07-07 11:24:16 +02:00
i?86-*-solaris2* | x86_64-*-solaris2.1[[0-9]]*)
cat > conftest.s <<EOF
.section .eh_frame,"a",@unwind
.zero 4
.section .jcr,"aw",@progbits
.zero 8
EOF
if AC_TRY_COMMAND(${CC-cc} -shared -nostartfiles -nodefaultlibs -o conftest.so conftest.s 1>&AS_MESSAGE_LOG_FD); then
tmake_file="${tmake_file} i386/t-crtstuff"
fi
;;
esac
Implement call0 ABI for xtensa 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
2015-03-03 18:44:01 +01:00
# Check if xtensa target is configured for windowed ABI and thus needs to use
# custom unwind code.
# This is after config.host so we can augment tmake_file.
case ${host} in
xtensa*-*)
cat > conftest.c <<EOF
#ifdef __XTENSA_CALL0_ABI__
#error
#endif
EOF
if AC_TRY_COMMAND(${CC-cc} -E -o conftest.i conftest.c 1>&AS_MESSAGE_LOG_FD); then
tmake_file="${tmake_file} xtensa/t-windowed"
fi
;;
esac
Makefile.def (target_modules): Add libgcc. ./ * Makefile.def (target_modules): Add libgcc. (lang_env_dependencies): Remove default items. Use no_c and no_gcc. * Makefile.tpl (clean-target-libgcc): Delete. (configure-target-[+module+]): Emit --disable-bootstrap dependencies on gcc even for bootstrapped modules. Rewrite handling of lang_env_dependencies to loop over target_modules. * configure.in (target_libraries): Add target-libgcc. * Makefile.in, configure: Regenerated. gcc/ * config.gcc: Mention libgcc/config.host. * Makefile.in: Update comments mentioning libgcc. (LIBGCC, INSTALL_LIBGCC, GCC_PARTS, mklibgcc): Delete. (all.cross, start.encap, rest.encap, rest.cross): Update dependencies for libgcc move. (libgcc.mk, LIBGCC_DEPS, libgcov.a, libgcc.a, stmp-multilib) (clean-target, clean-target-libgcc): Delete. (srcdirify, GCC_EXTRA_PARTS): New macros. (libgcc-support, libgcc.mvars): New rules. (distclean): Remove mention of mklibgcc. (install): Don't reference INSTALL_LIBGCC. (install-common): Don't reference EXTRA_PARTS. (install-libgcc, install-multilib): Delete rules. * mklibgcc.in: Delete file. * doc/configfiles.texi: Don't mention mklibgcc. * config/i386/t-darwin (SHLIB_VERPFX): Delete (moved to libgcc). * config/i386/t-darwin64 (SHLIB_VERPFX): Likewise. * config/rs6000/t-darwin (SHLIB_VERPFX): Likewise. * config/rs6000/t-ppccomm (TARGET_LIBGCC2_CFLAGS, SHLIB_MAPFILES) (mklibgcc, ldblspecs): Likewise. * config/i386/t-nwld (libgcc.def, libc.def, libpcre.def) (posixpre.def): Use $(T). (SHLIB_EXT, SHLIB_NAME, SHLIB_SLIBDIR_QUAL, SHLIB_DEF, SHLIB_MAP) (SHLIB_SRC, SHLIB_INSTALL): Delete. (SHLIB_LINK): Make dummy. * config/t-slibgcc-darwin: Delete contents except for dummy SHLIB_LINK. * config/frv/t-linux (EXTRA_MULTILIB_PARTS): Clear. * config/alpha/t-crtfm: Use $(T) in rules for EXTRA_PARTS. * config/alpha/t-vms, config/alpha/t-vms64, config/fr30/t-fr30, config/i386/t-rtems-i386, config/ia64/t-ia64, config/rs6000/t-beos, config/rs6000/t-newas, config/sparc/t-elf: Likewise. * configure.ac (all_outputs): Remove mklibgcc. * configure: Regenerated. libgcc/ * Makefile.in, config/i386/t-darwin, config/i386/t-darwin64, config/i386/t-nwld, config/rs6000/t-darwin, config/rs6000/t-ldbl128, config/i386/t-crtfm, config/alpha/t-crtfm, config/ia64/t-ia64, config/sparc/t-crtfm, config/t-slibgcc-darwin, config/rs6000/t-ppccomm, config.host, configure.ac, empty.mk, shared-object.mk, siditi-object.mk, static-object.mk: New files. * configure: Generated. Co-Authored-By: Paolo Bonzini <bonzini@gnu.org> From-SVN: r120429
2007-01-04 05:22:37 +01:00
# Check for visibility support. This is after config.host so that
# we can check for asm_hidden_op.
AC_CACHE_CHECK([for __attribute__((visibility("hidden")))],
libgcc_cv_hidden_visibility_attribute, [
echo 'int __attribute__ ((visibility ("hidden"))) foo (void) { return 1; }' > conftest.c
libgcc_cv_hidden_visibility_attribute=no
if AC_TRY_COMMAND(${CC-cc} -Werror -S conftest.c -o conftest.s 1>&AS_MESSAGE_LOG_FD); then
if grep "\\$asm_hidden_op.*foo" conftest.s >/dev/null; then
libgcc_cv_hidden_visibility_attribute=yes
fi
fi
rm -f conftest.*
])
if test $libgcc_cv_hidden_visibility_attribute = yes; then
vis_hide='-fvisibility=hidden -DHIDE_EXPORTS'
else
vis_hide=
fi
AC_SUBST(vis_hide)
# See if we have thread-local storage. We can only test assembler
# since link-time and run-time tests require the newly built
# gcc, which can't be used to build executable due to that libgcc
# is yet to be built here.
GCC_CHECK_CC_TLS
set_have_cc_tls=
if test "$enable_tls $gcc_cv_have_cc_tls" = "yes yes"; then
set_have_cc_tls="-DHAVE_CC_TLS"
fi
AC_SUBST(set_have_cc_tls)
# See if we have emulated thread-local storage.
GCC_CHECK_EMUTLS
set_use_emutls=
if test "$enable_tls $gcc_cv_use_emutls" = "yes yes"; then
set_use_emutls="-DUSE_EMUTLS"
fi
AC_SUBST(set_use_emutls)
dnl Check if as supports AVX instructions.
AC_DEFUN([LIBGCC_CHECK_AS_AVX], [
case "${target}" in
i[[34567]]86-*-* | x86_64-*-*)
AC_CACHE_CHECK([if the assembler supports AVX], libgcc_cv_as_avx, [
AC_TRY_COMPILE([], [asm("vzeroupper");],
[libgcc_cv_as_avx=yes], [libgcc_cv_as_avx=no])
])
if test x$libgcc_cv_as_avx = xyes; then
AC_DEFINE(HAVE_AS_AVX, 1, [Define to 1 if the assembler supports AVX.])
fi
;;
esac])
LIBGCC_CHECK_AS_AVX
dnl Check if as supports RTM instructions.
AC_CACHE_CHECK(for init priority support, libgcc_cv_init_priority, [
AC_COMPILE_IFELSE([AC_LANG_PROGRAM(,
[[void ip (void) __attribute__ ((constructor (1)));]])],
[libgcc_cv_init_priority=yes],[libgcc_cv_init_priority=no])])
if test $libgcc_cv_init_priority = yes; then
AC_DEFINE(HAVE_INIT_PRIORITY, 1,
[Define if the compiler supports init priority.])
fi
soft-fp: Move to ../libgcc. gcc: * config/soft-fp: Move to ../libgcc. * Makefile.in (SFP_MACHINE): Remove. (libgcc-support): Remove $(SFP_MACHINE) dependency. * config/arm/sfp-machine.h: Move to ../libgcc/config/arm. * config/arm/t-arm-softfp: Move to ../libgcc/config/arm/t-softfp. * config/c6x/sfp-machine.h: Move to ../libgcc/config/c6x. * config/c6x/t-c6x-softfp: Remove. * config/i386/sfp-machine.h: Move to ../libgcc/config/i386. * config/i386/t-fprules-softfp: Move to ../libgcc/config/t-softfp-tf. * config/ia64/sfp-machine.h: Move to ../libgcc/config/ia64. * config/ia64/t-fprules-softfp: Remove. * config/lm32/sfp-machine.h: Move to ../libgcc/config/lm32. * config/lm32/t-fprules-softfp: Remove. * config/moxie/sfp-machine.h: Remove. * config/moxie/t-moxie-softfp: Remove. * config/rs6000/darwin-ldouble-format: Move to ../libgcc/config/rs6000/ibm-ldouble-format. * config/rs6000/darwin-ldouble.c: Move to ../libgcc/config/rs6000/ibm-ldouble.c * config/rs6000/libgcc-ppc-glibc.ver: Move to ../libgcc/config/rs6000. * config/rs6000/libgcc-ppc64.ver: Likewise. * config/rs6000/sfp-machine.h: Likewise. * config/rs6000/t-aix43 (SHLIB_MAPFILES): Remove $(srcdir)/config/rs6000/libgcc-ppc64.ver. (LIB2FUNCS_EXTRA): Remove. (TARGET_LIBGCC2_CFLAGS): Remove. * config/rs6000/t-aix52: Likewise * config/rs6000/t-darwin (LIB2FUNCS_EXTRA): Remove $(srcdir)/config/rs6000/darwin-ldouble.c. (SHLIB_MAPFILES): Remove. * config/rs6000/t-darwin64 (LIB2FUNCS_EXTRA): Remove $(srcdir)/config/rs6000/darwin-ldouble.c. * config/rs6000/t-fprules-softfp: Move to ../libgcc/config/t-softfp-sfdf. * config/rs6000/t-freebsd: Move to ../libgcc/config/rs6000. * config/rs6000/t-linux64 (softfp_wrap_start, softfp_wrap_end): Remove. * config/rs6000/t-ppccomm (LIB2FUNCS_EXTRA): Remove $(srcdir)/config/rs6000/darwin-ldouble.c. * config/score/sfp-machine.h: Move to ../libgcc/config/score. * config/score/t-score-softfp: Remove. * config.gcc (arm*-*-linux*): Remove arm/t-arm-softfp, soft-fp/t-softfp from tmake_file. (arm*-*-uclinux*): Likewise. (arm*-*-ecos-elf): Likewise. (arm*-*-eabi*, arm*-*-symbianelf*): Likewise. (arm*-*-rtems*): Likewise. (arm*-*-elf): Likewise. (moxie-*-elf): Remove moxie/t-moxie-softfp, soft-fp/t-softfp from tmake_file. (moxie-*-uclinux*): Likewise. (moxie-*-rtems*): Likewise. (lm32-*-elf*): Remove lm32/t-fprules-softfp, soft-fp/t-softfp from tmake_file. (lm32-*-rtems*): Likewise. (lm32-*-uclinux*): Likewise. (powerpc-*-freebsd*): Remove rs6000/t-freebsd, rs6000/t-fprules-softfp, soft-fp/t-softfp from tmake_file. (powerpc-*-linux*, powerpc64-*-linux*): Remove rs6000/t-fprules-softfp, soft-fp/t-softfp from tmake_file. (score-*-elf): Remove score/t-score-softfp, soft-fp/t-softfp from tmake_file. (tic6x-*-elf): Remove c6x/t-c6x-softfp, soft-fp/t-softfp from tmake_file. (tic6x-*-uclinux): Likewise. (i[34567]86-*-darwin*, x86_64-*-darwin*): Remove i386/t-fprules-softfp, soft-fp/t-softfp from tmake_file. (i[34567]86-*-linux*, x86_64-*-linux*, i[34567]86-*-kfreebsd*-gnu) (x86_64-*-kfreebsd*-gnu, i[34567]86-*-gnu*): Likewise. (i[34567]86-*-solaris2*, x86_64-*-solaris2.1[0-9]*): Likewise. (i[34567]86-*-cygwin*, i[34567]86-*-mingw*, x86_64-*-mingw*): Likewise. (i[34567]86-*-freebsd*, x86_64-*-freebsd*): Likewise. libgcc: * config/t-softfp: Remove. * soft-fp: Moved from ../gcc/config. * soft-fp/README: Remove t-softfp reference. * soft-fp/t-softfp: Move to config/t-softfp. (softfp_machine_header): Remove. (softfp_file_list): Remove config subdir. (soft-fp-objects): New variable. ($(soft-fp-objects)): Set INTERNAL_CFLAGS. (LIB2FUNCS_EXTRA): Add to LIB2ADD instead. (SFP_MACHINE, $(SFP_MACHINE)): Remove. * config/t-softfp-excl: New file. * config/t-softfp-sfdf: New file. * config/t-softfp-tf: New file. * config/no-sfp-machine.h: New file. * config/arm/sfp-machine.h: New file. * config/arm/t-softfp: New file. * config/c6x/sfp-machine.h: New file. * config/i386/32/t-fprules-softfp: Rename to ... * config/i386/32/t-softfp: ... this. (tifunctions, LIB2ADD): Remove. (softfp_int_modes): Override. * config/i386/64/t-softfp-compat (tf-functions): Remove config subdir. * config/i386/64/eqtf2.c: Likewise. * config/i386/64/getf2.c: Likewise. * config/i386/64/letf2.c: Likewise. * config/ia64/sft-machine.h: New file. * config/ia64/t-fprules-softfp: Rename to ... * config/ia64/t-softfp: ... this. * config/lm32/sfp-machine.h: New file. * config/moxie/t-moxie-softfp: Remove. * config/rs6000/ibm-ldouble-format: New file. * config/rs6000/ibm-ldouble.c: New file. * config/rs6000/libgcc-ppc-glibc.ver: New file * config/rs6000/libgcc-ppc64.ver: New file * config/rs6000/sfp-machine.h: New file. * config/rs6000/t-freebsd: New file. * config/rs6000/t-ibm-ldouble: New file. * config/rs6000/t-ldbl128: Use $(srcdir) to refer to libgcc-ppc-glibc.ver. * config/rs6000/t-linux64: New file. * config/rs6000/t-ppccomm (LIB2ADD): Add $(srcdir)/config/rs6000/ibm-ldouble.c. * config/rs6000/t-ppccomm-ldbl: New file. * config/score/sfp-machine.h: New file. * config.host (sfp_machine_header): Explain. (arm*-*-linux*): Add t-softfp-sfdf, t-softfp-excl, arm/t-softfp, t-softfp to tmake_file. (arm*-*-uclinux*): Likewise. (arm*-*-ecos-elf): Likewise. (arm*-*-eabi*, arm*-*-symbianelf*): Likewise. (arm*-*-rtems*): Likewise. (arm*-*-elf): Likewise. (ia64*-*-linux*): Replace ia64/t-fprules-softfp by ia64/t-softfp in tmake_file. Add t-softfp-tf, t-softfp-excl, t-softfp to tmake_file. (lm32-*-elf*, lm32-*-rtems*): Add t-softfp-sfdf, t-softfp to tmake_file. (lm32-*-uclinux*): Likewise. (moxie-*-*): Replace moxie/t-moxie-softfp by t-softfp-sfdf, t-softfp-excl, t-softfp. (powerpc-*-darwin*): Add rs6000/t-ibm-ldouble to tmake_file. (powerpc64-*-darwin*): Likewise. (powerpc-*-freebsd*): Add t-softfp-sfdf, t-softfp-excl, t-softfp to tmake_file. (powerpc-*-eabisimaltivec*): Add rs6000/t-ppccomm-ldbl to tmake_file. (powerpc-*-eabisim*): Likewise. (powerpc-*-elf*): Likewise. (powerpc-*-eabialtivec*): Likewise. (powerpc-xilinx-eabi*): Likewise. (powerpc-*-rtems*): Likewise. (powerpc-*-linux*, powerpc64-*-linux*): Add t-softfp-sfdf, t-softfp-excl, t-softfp to tmake_file. (powerpc-wrs-vxworks, powerpc-wrs-vxworksae): Add rs6000/t-ppccomm-ldbl to tmake_file. (powerpcle-*-elf*): Likewise. (powerpcle-*-eabisim*): Likewise. (powerpcle-*-eabi*): Likewise. (rs6000-ibm-aix4.[3456789]*, powerpc-ibm-aix4.[3456789]*): Add rs6000/t-ibm-ldouble to tmake_file. (rs6000-ibm-aix5.1.*, powerpc-ibm-aix5.1.*): Likewise. (rs6000-ibm-aix[56789].*, powerpc-ibm-aix[56789].*): Likewise. (score-*-elf): Add t-softfp-sfdf, t-softfp-excl, t-softfp to tmake_file. (tic6x-*-*): Likewise. (i[34567]86-*-darwin*, x86_64-*-darwin*, i[34567]86-*-kfreebsd*-gnu, x86_64-*-kfreebsd*-gnu, i[34567]86-*-linux*, x86_64-*-linux*, i[34567]86-*-gnu*, i[34567]86-*-solaris2*, x86_64-*-solaris2.1[0-9]*, i[34567]86-*-cygwin*, i[34567]86-*-mingw*, x86_64-*-mingw*, i[34567]86-*-freebsd*, x86_64-*-freebsd*): Add t-softfp-tf, t-softfp to tmake_file. * configure.ac (sfp_machine_header): Provide default if unset. Substitute. Link sfp-machine.h to config/$sfp_machine_header. * configure: Regenerate. From-SVN: r177452
2011-08-05 17:13:48 +02:00
# Conditionalize the sfp-machine.h header for this target machine.
if test -z "${sfp_machine_header}"; then
sfp_machine_header=$cpu_type/sfp-machine.h
if test -f ${srcdir}/config/${sfp_machine_header}; then
:
else
sfp_machine_header=no-sfp-machine.h
fi
fi
AC_SUBST(sfp_machine_header)
Makefile.def (target_modules): Add libgcc. ./ * Makefile.def (target_modules): Add libgcc. (lang_env_dependencies): Remove default items. Use no_c and no_gcc. * Makefile.tpl (clean-target-libgcc): Delete. (configure-target-[+module+]): Emit --disable-bootstrap dependencies on gcc even for bootstrapped modules. Rewrite handling of lang_env_dependencies to loop over target_modules. * configure.in (target_libraries): Add target-libgcc. * Makefile.in, configure: Regenerated. gcc/ * config.gcc: Mention libgcc/config.host. * Makefile.in: Update comments mentioning libgcc. (LIBGCC, INSTALL_LIBGCC, GCC_PARTS, mklibgcc): Delete. (all.cross, start.encap, rest.encap, rest.cross): Update dependencies for libgcc move. (libgcc.mk, LIBGCC_DEPS, libgcov.a, libgcc.a, stmp-multilib) (clean-target, clean-target-libgcc): Delete. (srcdirify, GCC_EXTRA_PARTS): New macros. (libgcc-support, libgcc.mvars): New rules. (distclean): Remove mention of mklibgcc. (install): Don't reference INSTALL_LIBGCC. (install-common): Don't reference EXTRA_PARTS. (install-libgcc, install-multilib): Delete rules. * mklibgcc.in: Delete file. * doc/configfiles.texi: Don't mention mklibgcc. * config/i386/t-darwin (SHLIB_VERPFX): Delete (moved to libgcc). * config/i386/t-darwin64 (SHLIB_VERPFX): Likewise. * config/rs6000/t-darwin (SHLIB_VERPFX): Likewise. * config/rs6000/t-ppccomm (TARGET_LIBGCC2_CFLAGS, SHLIB_MAPFILES) (mklibgcc, ldblspecs): Likewise. * config/i386/t-nwld (libgcc.def, libc.def, libpcre.def) (posixpre.def): Use $(T). (SHLIB_EXT, SHLIB_NAME, SHLIB_SLIBDIR_QUAL, SHLIB_DEF, SHLIB_MAP) (SHLIB_SRC, SHLIB_INSTALL): Delete. (SHLIB_LINK): Make dummy. * config/t-slibgcc-darwin: Delete contents except for dummy SHLIB_LINK. * config/frv/t-linux (EXTRA_MULTILIB_PARTS): Clear. * config/alpha/t-crtfm: Use $(T) in rules for EXTRA_PARTS. * config/alpha/t-vms, config/alpha/t-vms64, config/fr30/t-fr30, config/i386/t-rtems-i386, config/ia64/t-ia64, config/rs6000/t-beos, config/rs6000/t-newas, config/sparc/t-elf: Likewise. * configure.ac (all_outputs): Remove mklibgcc. * configure: Regenerated. libgcc/ * Makefile.in, config/i386/t-darwin, config/i386/t-darwin64, config/i386/t-nwld, config/rs6000/t-darwin, config/rs6000/t-ldbl128, config/i386/t-crtfm, config/alpha/t-crtfm, config/ia64/t-ia64, config/sparc/t-crtfm, config/t-slibgcc-darwin, config/rs6000/t-ppccomm, config.host, configure.ac, empty.mk, shared-object.mk, siditi-object.mk, static-object.mk: New files. * configure: Generated. Co-Authored-By: Paolo Bonzini <bonzini@gnu.org> From-SVN: r120429
2007-01-04 05:22:37 +01:00
# Conditionalize the makefile for this target machine.
tmake_file_=
for f in ${tmake_file}
do
if test -f ${srcdir}/config/$f
then
tmake_file_="${tmake_file_} \$(srcdir)/config/$f"
fi
done
tmake_file="${tmake_file_}"
AC_SUBST(tmake_file)
Move libgcc_tm_file to toplevel libgcc gcc: * configure.ac (libgcc_tm_file_list, libgcc_tm_include_list): Remove. * configure: Regenerate. * Makefile.in (libgcc_tm_file_list, libgcc_tm_include_list): Remove. (TM_H): Remove libgcc_tm.h, $(libgcc_tm_file_list). (libgcc_tm.h, cs-libgcc_tm.h): Remove. (clean): Remove libgcc_tm.h * mkconfig.sh: Don't include libgcc_tm.h in tm.h. * config.gcc (libgcc_tm_file): Remove. (arm*-*-linux*): Remove libgcc_tm_file for arm*-*-linux-*eabi. (arm*-*-uclinux*): Remove libgcc_tm_file for arm*-*-uclinux*eabi. (arm*-*-eabi*, arm*-*-symbianelf*): Remove libgcc_tm_file. (avr-*-rtems*): Likewise. (avr-*-*): Likewise. (frv-*-elf): Likewise. (frv-*-*linux*): Likewise. (h8300-*-rtems*): Likewise. (h8300-*-elf*): Likewise. (i[34567]86-*-darwin*): Likewise. (x86_64-*-darwin*): Likewise. (rx-*-elf*): Likewise. (tic6x-*-elf): Likewise. (tic6x-*-uclinux): Likewise. (i[34567]86-*-linux*, x86_64-*-linux*): Likewise. libgcc: * configure.ac (tm_file_): New variable. Determine from tm_file. (tm_file, tm_defines): Substitute. * configure: Regenerate. * mkheader.sh: New file. * Makefile.in (clean): Remove libgcc_tm.h. ($(objects)): Depend on libgcc_tm.h. (libgcc_tm_defines, libgcc_tm_file): New variables. (libgcc_tm.h, libgcc_tm.stamp): New targets. ($(libgcc-objects), $(libgcc-s-objects), $(libgcc-eh-objects)) ($(libgcov-objects), $(libunwind-objects), $(libunwind-s-objects)) ($(extra-parts)): Depend on libgcc_tm.h. * config.host (tm_defines, tm_file): New variable. (arm*-*-linux*): Set tm_file for arm*-*-linux-*eabi. (arm*-*-uclinux*): Set tm_file for arm*-*-uclinux*eabi. (arm*-*-eabi*, arm*-*-symbianelf*): Set tm_file. (avr-*-rtems*): Likewise. (avr-*-*): Likewise. (frv-*-elf): Likewise. (frv-*-*linux*): Likewise. (h8300-*-rtems*): Likewise. (h8300-*-elf*): Likewise. (i[34567]86-*-darwin*): Likewise. (x86_64-*-darwin*): Likewise. (rx-*-elf): Likewise. (tic6x-*-uclinux): Likewise. (tic6x-*-elf): Likewise. (i[34567]86-*-linux*, x86_64-*-linux*): Likewise. * config/alpha/gthr-posix.c: Include libgcc_tm.h. * config/i386/cygming-crtbegin.c: Likewise. * config/i386/cygming-crtend.c: Likewise. * config/ia64/fde-vms.c: Likewise. * config/ia64/unwind-ia64.c: Likewise. * config/libbid/bid_gcc_intrinsics.h: Likewise. * config/rs6000/darwin-fallback.c: Likewise. * config/stormy16/lib2funcs.c: Likewise. * config/xtensa/unwind-dw2-xtensa.c: Likewise. * crtstuff.c: Likewise. * dfp-bit.h: Likewise. * emutls.c: Likewise. * fixed-bit.c: Likewise. * fp-bit.c: Likewise. * generic-morestack-thread.c: Likewise. * generic-morestack.c: Likewise. * libgcc2.c: Likewise. * libgcov.c: Likewise. * unwind-dw2-fde-dip.c: Likewise. * unwind-dw2-fde.c: Likewise. * unwind-dw2.c: Likewise. * unwind-sjlj.c: Likewise. Co-Authored-By: Paolo Bonzini <bonzini@gnu.org> From-SVN: r180775
2011-11-02 16:26:35 +01:00
# Likewise export definitions for libgcc_tm.h
tm_file_=
for f in ${tm_file}
do
tm_file_="${tm_file_} \$(srcdir)/config/$f"
done
tm_file="${tm_file_}"
AC_SUBST(tm_file)
AC_SUBST(tm_defines)
Move gthr to toplevel libgcc 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
2011-11-02 16:28:43 +01:00
# Map from thread model to thread header.
GCC_AC_THREAD_HEADER([$target_thread_file])
Move gthr to toplevel libgcc 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
2011-11-02 16:28:43 +01:00
re PR other/79046 (g++ -print-file-name=plugin uses full version number in path) 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
2017-01-17 10:38:48 +01:00
# Determine what GCC version number to use in filesystem paths.
GCC_BASE_VER
Makefile.def (target_modules): Add libgcc. ./ * Makefile.def (target_modules): Add libgcc. (lang_env_dependencies): Remove default items. Use no_c and no_gcc. * Makefile.tpl (clean-target-libgcc): Delete. (configure-target-[+module+]): Emit --disable-bootstrap dependencies on gcc even for bootstrapped modules. Rewrite handling of lang_env_dependencies to loop over target_modules. * configure.in (target_libraries): Add target-libgcc. * Makefile.in, configure: Regenerated. gcc/ * config.gcc: Mention libgcc/config.host. * Makefile.in: Update comments mentioning libgcc. (LIBGCC, INSTALL_LIBGCC, GCC_PARTS, mklibgcc): Delete. (all.cross, start.encap, rest.encap, rest.cross): Update dependencies for libgcc move. (libgcc.mk, LIBGCC_DEPS, libgcov.a, libgcc.a, stmp-multilib) (clean-target, clean-target-libgcc): Delete. (srcdirify, GCC_EXTRA_PARTS): New macros. (libgcc-support, libgcc.mvars): New rules. (distclean): Remove mention of mklibgcc. (install): Don't reference INSTALL_LIBGCC. (install-common): Don't reference EXTRA_PARTS. (install-libgcc, install-multilib): Delete rules. * mklibgcc.in: Delete file. * doc/configfiles.texi: Don't mention mklibgcc. * config/i386/t-darwin (SHLIB_VERPFX): Delete (moved to libgcc). * config/i386/t-darwin64 (SHLIB_VERPFX): Likewise. * config/rs6000/t-darwin (SHLIB_VERPFX): Likewise. * config/rs6000/t-ppccomm (TARGET_LIBGCC2_CFLAGS, SHLIB_MAPFILES) (mklibgcc, ldblspecs): Likewise. * config/i386/t-nwld (libgcc.def, libc.def, libpcre.def) (posixpre.def): Use $(T). (SHLIB_EXT, SHLIB_NAME, SHLIB_SLIBDIR_QUAL, SHLIB_DEF, SHLIB_MAP) (SHLIB_SRC, SHLIB_INSTALL): Delete. (SHLIB_LINK): Make dummy. * config/t-slibgcc-darwin: Delete contents except for dummy SHLIB_LINK. * config/frv/t-linux (EXTRA_MULTILIB_PARTS): Clear. * config/alpha/t-crtfm: Use $(T) in rules for EXTRA_PARTS. * config/alpha/t-vms, config/alpha/t-vms64, config/fr30/t-fr30, config/i386/t-rtems-i386, config/ia64/t-ia64, config/rs6000/t-beos, config/rs6000/t-newas, config/sparc/t-elf: Likewise. * configure.ac (all_outputs): Remove mklibgcc. * configure: Regenerated. libgcc/ * Makefile.in, config/i386/t-darwin, config/i386/t-darwin64, config/i386/t-nwld, config/rs6000/t-darwin, config/rs6000/t-ldbl128, config/i386/t-crtfm, config/alpha/t-crtfm, config/ia64/t-ia64, config/sparc/t-crtfm, config/t-slibgcc-darwin, config/rs6000/t-ppccomm, config.host, configure.ac, empty.mk, shared-object.mk, siditi-object.mk, static-object.mk: New files. * configure: Generated. Co-Authored-By: Paolo Bonzini <bonzini@gnu.org> From-SVN: r120429
2007-01-04 05:22:37 +01:00
# Substitute configuration variables
t-slibgcc-darwin: Move to ... gcc: * config/t-slibgcc-darwin: Move to ... * config/t-slibgcc-dummy: .. this. Clarify comments. * config.gcc (i[34567]86-*-darwin*, x86_64-*-darwin*, powerpc-*-darwin*, powerpc64-*-darwin*): Reflect this. (i[3456x]86-*-netware*): Add t-slibgcc-dummy to tmake_file. (i[34567]86-*-rtems*): Remove extra_parts. Use i386/t-rtems. Remove i386/t-crtstuff from tmake_file. (i[34567]86-*-solaris2*): Remove t-svr4, t-slibgcc-elf-ver, t-slibgcc-sld from tmake_file, add t-slibgcc-dummy. (sparc-*-elf*, sparc64-*-elf*): Remove tmake_file, extra_parts. (sparc-*-rtems*, sparc64-*-rtems*): Remove sparc/t-crtin, sparc/t-crtfm from tmake_file. (sparc*-*-solaris2*): Remove sparc/t-sol2, sparc/t-crtfm, t-slibgcc-elf-ver, t-slibgcc-sld, add t-slibgcc-dummy. Remove extra_parts. * config/t-sol2 (TARGET_LIBGCC2_CFLAGS): Define. * config/i386/t-nwld (SHLIB_LINK): Remove. * config/i386/t-rtems-i386: Rename to ... * config/i386/t-rtems: ... this. ($(T)crti.o, $(T)crtn.o): Remove. (FPBIT, DPBIT, LIB2FUNCS_EXTRA): Remove. (dp-bit.c, fp-bit.c, xp-bit.c): Remove. (EXTRA_MULTILIB_PARTS, LIBGCC, INSTALL_LIBGCC): Remove. * config/i386/t-sol2-10 (LIBGCC, INSTALL_LIBGCC, EXTRA_MULTILIB_PARTS): Remove. * config/sparc/t-sol2-64: Likewise. * config/sparc/t-sol2: Remove. * config/sparc/t-crtin: Remove. * config/sparc/gmon-sol2.c: Move to ../libgcc/config. * config/i386/gmon-sol2.c: Remove. * config/i386/sol2-c1.asm: Move to ../libgcc/config/i386/sol2-c1.S. * config/i386/sol2-ci.asm: Move to ../libgcc/config/i386/sol2-ci.S. * config/i386/sol2-cn.asm: Move to ../libgcc/config/i386/sol2-cn.S. * config/i386/sol2-gc1.asm: Remove. * config/sparc/sol2-c1.asm: Move to ../libgcc/config/sparc/sol2-c1.S. * config/sparc/sol2-ci.asm: Move to ../libgcc/config/sparc/sol2-ci.S. * config/sparc/sol2-cn.asm: Move to ../libgcc/config/sparc/sol2-cn.S. * config/t-slibgcc-sld: Remove. libgcc: * Makefile.in (cpu_type): Define. * config.host (i[34567]86-*-rtems*): Handle it. (i[34567]86-*-solaris2*): Move body ... (*-*-solaris2*): ... here. New case, generalize. (sparc-*-elf*): Handle it. (sparc-*-linux*, sparc64-*-linux*): Replace sparc/t-crtfm by t-crtfm. (sparc-*-rtems*, sparc64-*-rtems*); Handle it. (sparc64-*-solaris2*, sparcv9-*-solaris2*, sparc-*-solaris2*): Fold into ... (sparc*-*-solaris2*): ... this. New case. (sparc64-*-elf*): Handle it. * config/gmon-sol2.c: Move from ../gcc/config/sparc. Merge ../gcc/config/i386/gmon-sol2.c. * config/i386/sol2-c1.S: Move from ../gcc/config/i386/sol2-c1.asm. Use C comments. Merge ../gcc/config/i386/sol2-gc1.asm. * config/i386/sol2-ci.S: Move from ../gcc/config/i386/sol2-ci.asm. Use C comments. * config/i386/sol2-cn.S: Move from ../gcc/config/i386/sol2-cn.asm. Use C comments. * config/i386/t-crtfm (crtfastmath.o): Use $<. * config/i386/t-crtstuff: New file. * config/i386/t-softfp: New file. * config/i386/t-sol2 ($(T)gmon.o, $(T)gcrt1.o, $(T)crt1.o), $(T)crti.o, $(T)crtn.o): Remove. (gcrt1.o): New rule. (TARGET_LIBGCC2_CFLAGS): Remove. * config/sparc/sol2-c1.S: Move from ../gcc/config/sparc/sol2-c1.asm. * config/sparc/sol2-ci.S: Move from ../gcc/config/sparc/sol2-ci.asm. * config/sparc/sol2-cn.S: Move from ../gcc/config/sparc/sol2-cn.asm. * config/sparc/t-sol2: New file. * config/sparc/t-crtfm: Move to ... * config/t-crtfm: ... this. Use $(cpu_type), $<. * config/t-crtin: New file. * config/sparc/t-softfp: New file. * config/sparc/t-softmul: New file. * config/t-rtems: New file. * config/t-slibgcc: New file. * config/t-slibgcc-elf-ver: New file. * config/t-slibgcc-gld: New file. * config/t-slibgcc-sld: New file. * config/t-sol2: New file. * configure.ac: Include ../config/lib-ld.m4. Call AC_LIB_PROG_LD_GNU. Substitute cpu_type. * configure: Regenerate. From-SVN: r174529
2011-06-01 16:39:17 +02:00
AC_SUBST(cpu_type)
Makefile.def (target_modules): Add libgcc. ./ * Makefile.def (target_modules): Add libgcc. (lang_env_dependencies): Remove default items. Use no_c and no_gcc. * Makefile.tpl (clean-target-libgcc): Delete. (configure-target-[+module+]): Emit --disable-bootstrap dependencies on gcc even for bootstrapped modules. Rewrite handling of lang_env_dependencies to loop over target_modules. * configure.in (target_libraries): Add target-libgcc. * Makefile.in, configure: Regenerated. gcc/ * config.gcc: Mention libgcc/config.host. * Makefile.in: Update comments mentioning libgcc. (LIBGCC, INSTALL_LIBGCC, GCC_PARTS, mklibgcc): Delete. (all.cross, start.encap, rest.encap, rest.cross): Update dependencies for libgcc move. (libgcc.mk, LIBGCC_DEPS, libgcov.a, libgcc.a, stmp-multilib) (clean-target, clean-target-libgcc): Delete. (srcdirify, GCC_EXTRA_PARTS): New macros. (libgcc-support, libgcc.mvars): New rules. (distclean): Remove mention of mklibgcc. (install): Don't reference INSTALL_LIBGCC. (install-common): Don't reference EXTRA_PARTS. (install-libgcc, install-multilib): Delete rules. * mklibgcc.in: Delete file. * doc/configfiles.texi: Don't mention mklibgcc. * config/i386/t-darwin (SHLIB_VERPFX): Delete (moved to libgcc). * config/i386/t-darwin64 (SHLIB_VERPFX): Likewise. * config/rs6000/t-darwin (SHLIB_VERPFX): Likewise. * config/rs6000/t-ppccomm (TARGET_LIBGCC2_CFLAGS, SHLIB_MAPFILES) (mklibgcc, ldblspecs): Likewise. * config/i386/t-nwld (libgcc.def, libc.def, libpcre.def) (posixpre.def): Use $(T). (SHLIB_EXT, SHLIB_NAME, SHLIB_SLIBDIR_QUAL, SHLIB_DEF, SHLIB_MAP) (SHLIB_SRC, SHLIB_INSTALL): Delete. (SHLIB_LINK): Make dummy. * config/t-slibgcc-darwin: Delete contents except for dummy SHLIB_LINK. * config/frv/t-linux (EXTRA_MULTILIB_PARTS): Clear. * config/alpha/t-crtfm: Use $(T) in rules for EXTRA_PARTS. * config/alpha/t-vms, config/alpha/t-vms64, config/fr30/t-fr30, config/i386/t-rtems-i386, config/ia64/t-ia64, config/rs6000/t-beos, config/rs6000/t-newas, config/sparc/t-elf: Likewise. * configure.ac (all_outputs): Remove mklibgcc. * configure: Regenerated. libgcc/ * Makefile.in, config/i386/t-darwin, config/i386/t-darwin64, config/i386/t-nwld, config/rs6000/t-darwin, config/rs6000/t-ldbl128, config/i386/t-crtfm, config/alpha/t-crtfm, config/ia64/t-ia64, config/sparc/t-crtfm, config/t-slibgcc-darwin, config/rs6000/t-ppccomm, config.host, configure.ac, empty.mk, shared-object.mk, siditi-object.mk, static-object.mk: New files. * configure: Generated. Co-Authored-By: Paolo Bonzini <bonzini@gnu.org> From-SVN: r120429
2007-01-04 05:22:37 +01:00
AC_SUBST(extra_parts)
AC_SUBST(asm_hidden_op)
AC_SUBST(enable_execute_stack)
AC_SUBST(unwind_header)
AC_SUBST(md_unwind_header)
AC_SUBST(sfp_machine_header)
AC_SUBST(thread_header)
Makefile.def (target_modules): Add libgcc. ./ * Makefile.def (target_modules): Add libgcc. (lang_env_dependencies): Remove default items. Use no_c and no_gcc. * Makefile.tpl (clean-target-libgcc): Delete. (configure-target-[+module+]): Emit --disable-bootstrap dependencies on gcc even for bootstrapped modules. Rewrite handling of lang_env_dependencies to loop over target_modules. * configure.in (target_libraries): Add target-libgcc. * Makefile.in, configure: Regenerated. gcc/ * config.gcc: Mention libgcc/config.host. * Makefile.in: Update comments mentioning libgcc. (LIBGCC, INSTALL_LIBGCC, GCC_PARTS, mklibgcc): Delete. (all.cross, start.encap, rest.encap, rest.cross): Update dependencies for libgcc move. (libgcc.mk, LIBGCC_DEPS, libgcov.a, libgcc.a, stmp-multilib) (clean-target, clean-target-libgcc): Delete. (srcdirify, GCC_EXTRA_PARTS): New macros. (libgcc-support, libgcc.mvars): New rules. (distclean): Remove mention of mklibgcc. (install): Don't reference INSTALL_LIBGCC. (install-common): Don't reference EXTRA_PARTS. (install-libgcc, install-multilib): Delete rules. * mklibgcc.in: Delete file. * doc/configfiles.texi: Don't mention mklibgcc. * config/i386/t-darwin (SHLIB_VERPFX): Delete (moved to libgcc). * config/i386/t-darwin64 (SHLIB_VERPFX): Likewise. * config/rs6000/t-darwin (SHLIB_VERPFX): Likewise. * config/rs6000/t-ppccomm (TARGET_LIBGCC2_CFLAGS, SHLIB_MAPFILES) (mklibgcc, ldblspecs): Likewise. * config/i386/t-nwld (libgcc.def, libc.def, libpcre.def) (posixpre.def): Use $(T). (SHLIB_EXT, SHLIB_NAME, SHLIB_SLIBDIR_QUAL, SHLIB_DEF, SHLIB_MAP) (SHLIB_SRC, SHLIB_INSTALL): Delete. (SHLIB_LINK): Make dummy. * config/t-slibgcc-darwin: Delete contents except for dummy SHLIB_LINK. * config/frv/t-linux (EXTRA_MULTILIB_PARTS): Clear. * config/alpha/t-crtfm: Use $(T) in rules for EXTRA_PARTS. * config/alpha/t-vms, config/alpha/t-vms64, config/fr30/t-fr30, config/i386/t-rtems-i386, config/ia64/t-ia64, config/rs6000/t-beos, config/rs6000/t-newas, config/sparc/t-elf: Likewise. * configure.ac (all_outputs): Remove mklibgcc. * configure: Regenerated. libgcc/ * Makefile.in, config/i386/t-darwin, config/i386/t-darwin64, config/i386/t-nwld, config/rs6000/t-darwin, config/rs6000/t-ldbl128, config/i386/t-crtfm, config/alpha/t-crtfm, config/ia64/t-ia64, config/sparc/t-crtfm, config/t-slibgcc-darwin, config/rs6000/t-ppccomm, config.host, configure.ac, empty.mk, shared-object.mk, siditi-object.mk, static-object.mk: New files. * configure: Generated. Co-Authored-By: Paolo Bonzini <bonzini@gnu.org> From-SVN: r120429
2007-01-04 05:22:37 +01:00
# We need multilib support.
AC_CONFIG_FILES([Makefile])
AC_CONFIG_COMMANDS([default],
[[test -z "$CONFIG_HEADERS" || echo timestamp > stamp-h
if test -n "$CONFIG_FILES"; then
# FIXME: We shouldn't need to set ac_file
ac_file=Makefile
. ${libgcc_topdir}/config-ml.in
fi]],
[[srcdir=${srcdir}
host=${host}
with_target_subdir=${with_target_subdir}
with_multisubdir=${with_multisubdir}
ac_configure_args="--enable-multilib ${ac_configure_args}"
CONFIG_SHELL=${CONFIG_SHELL-/bin/sh}
libgcc_topdir=${libgcc_topdir}
CC="${CC}"
]])
AC_OUTPUT