2004-01-05 04:21:24 +01:00
|
|
|
# configure.ac for GCC
|
1997-05-18 14:31:53 +02:00
|
|
|
# Process this file with autoconf to generate a configuration script.
|
|
|
|
|
2015-01-05 13:33:28 +01:00
|
|
|
# Copyright (C) 1997-2015 Free Software Foundation, Inc.
|
1997-05-18 14:31:53 +02:00
|
|
|
|
Makefile.in, [...]: replace "GNU CC" with "GCC".
* Makefile.in, alias.c, basic-block.h, bb-reorder.c, bitmap.c,
bitmap.h, builtin-types.def, builtins.c, builtins.def,
c-aux-info.c, c-common.c, c-common.def, c-common.h,
c-convert.c, c-decl.c, c-dump.c, c-dump.h, c-errors.c,
c-format.c, c-lang.c, c-lex.c, c-lex.h, c-parse.in,
c-pragma.c, c-pragma.h, c-semantics.c, c-tree.h, c-typeck.c,
caller-save.c, calls.c, collect2.c, collect2.h, combine.c,
conditions.h, config.gcc, configure.frag, configure.in,
conflict.c, convert.c, convert.h, cppspec.c, crtstuff.c,
cse.c, cselib.c, cselib.h, dbxout.c, dbxout.h, defaults.h,
dependence.c, df.c, df.h, diagnostic.c, diagnostic.h,
doloop.c, dominance.c, dwarf.h, dwarf2.h, dwarf2asm.c,
dwarf2asm.h, dwarf2out.c, dwarf2out.h, dwarfout.c,
emit-rtl.c, errors.c, errors.h, except.c, except.h,
exgettext, explow.c, expmed.c, expr.c, expr.h, final.c,
fixproto, flags.h, flow.c, fold-const.c, fp-test.c,
function.c, function.h, gbl-ctors.h, gcc.c, gcc.h, gcc.hlp,
gccspec.c, gcov-io.h, gcse.c, genattr.c, genattrtab.c,
gencheck.c, gencodes.c, genconfig.c, genemit.c,
genextract.c, genflags.c, gengenrtl.c, genmultilib,
genopinit.c, genoutput.c, genpeep.c, genrecog.c,
gensupport.c, gensupport.h, ggc-callbacks.c, ggc-common.c,
ggc-none.c, ggc-page.c, ggc-simple.c, ggc.h, global.c,
graph.c, graph.h, gthr-aix.h, gthr-dce.h, gthr-posix.h,
gthr-rtems.h, gthr-single.h, gthr-solaris.h, gthr-vxworks.h,
gthr-win32.h, gthr.h, haifa-sched.c, halfpic.c, halfpic.h,
hard-reg-set.h, hwint.h, ifcvt.c, input.h, insn-addr.h,
integrate.c, integrate.h, jump.c, lcm.c, libgcc2.c,
libgcc2.h, lists.c, local-alloc.c, loop.c, loop.h,
machmode.def, machmode.h, main.c, mbchar.c, mbchar.h,
mips-tdump.c, mips-tfile.c, mklibgcc.in, mkmap-flat.awk,
mkmap-symver.awk, optabs.c, output.h, params.c, params.def,
params.h, predict.c, predict.def, predict.h, prefix.c,
prefix.h, print-rtl.c, print-tree.c, profile.c, protoize.c,
read-rtl.c, real.c, real.h, recog.c, recog.h, reg-stack.c,
regclass.c, regmove.c, regrename.c, regs.h, reload.c,
reload.h, reload1.c, reorg.c, resource.c, resource.h, rtl.c,
rtl.def, rtl.h, rtlanal.c, sbitmap.c, sbitmap.h,
sched-deps.c, sched-ebb.c, sched-int.h, sched-rgn.c,
sched-vis.c, sdbout.c, sdbout.h, sibcall.c, simplify-rtx.c,
ssa-ccp.c, ssa-dce.c, ssa.c, ssa.h, stmt.c, stor-layout.c,
stringpool.c, system.h, timevar.c, timevar.def, timevar.h,
tlink.c, toplev.c, toplev.h, tree.c, tree.def, tree.h,
tsystem.h, unroll.c, unwind-dw2-fde.c, unwind-dw2-fde.h,
unwind-dw2.c, unwind-pe.h, unwind-sjlj.c, unwind.h,
unwind.inc, varasm.c, varray.c, varray.h, xcoffout.c,
xcoffout.h: replace "GNU CC" with "GCC".
From-SVN: r45105
2001-08-22 16:35:51 +02:00
|
|
|
#This file is part of GCC.
|
1997-05-18 14:31:53 +02:00
|
|
|
|
Makefile.in, [...]: replace "GNU CC" with "GCC".
* Makefile.in, alias.c, basic-block.h, bb-reorder.c, bitmap.c,
bitmap.h, builtin-types.def, builtins.c, builtins.def,
c-aux-info.c, c-common.c, c-common.def, c-common.h,
c-convert.c, c-decl.c, c-dump.c, c-dump.h, c-errors.c,
c-format.c, c-lang.c, c-lex.c, c-lex.h, c-parse.in,
c-pragma.c, c-pragma.h, c-semantics.c, c-tree.h, c-typeck.c,
caller-save.c, calls.c, collect2.c, collect2.h, combine.c,
conditions.h, config.gcc, configure.frag, configure.in,
conflict.c, convert.c, convert.h, cppspec.c, crtstuff.c,
cse.c, cselib.c, cselib.h, dbxout.c, dbxout.h, defaults.h,
dependence.c, df.c, df.h, diagnostic.c, diagnostic.h,
doloop.c, dominance.c, dwarf.h, dwarf2.h, dwarf2asm.c,
dwarf2asm.h, dwarf2out.c, dwarf2out.h, dwarfout.c,
emit-rtl.c, errors.c, errors.h, except.c, except.h,
exgettext, explow.c, expmed.c, expr.c, expr.h, final.c,
fixproto, flags.h, flow.c, fold-const.c, fp-test.c,
function.c, function.h, gbl-ctors.h, gcc.c, gcc.h, gcc.hlp,
gccspec.c, gcov-io.h, gcse.c, genattr.c, genattrtab.c,
gencheck.c, gencodes.c, genconfig.c, genemit.c,
genextract.c, genflags.c, gengenrtl.c, genmultilib,
genopinit.c, genoutput.c, genpeep.c, genrecog.c,
gensupport.c, gensupport.h, ggc-callbacks.c, ggc-common.c,
ggc-none.c, ggc-page.c, ggc-simple.c, ggc.h, global.c,
graph.c, graph.h, gthr-aix.h, gthr-dce.h, gthr-posix.h,
gthr-rtems.h, gthr-single.h, gthr-solaris.h, gthr-vxworks.h,
gthr-win32.h, gthr.h, haifa-sched.c, halfpic.c, halfpic.h,
hard-reg-set.h, hwint.h, ifcvt.c, input.h, insn-addr.h,
integrate.c, integrate.h, jump.c, lcm.c, libgcc2.c,
libgcc2.h, lists.c, local-alloc.c, loop.c, loop.h,
machmode.def, machmode.h, main.c, mbchar.c, mbchar.h,
mips-tdump.c, mips-tfile.c, mklibgcc.in, mkmap-flat.awk,
mkmap-symver.awk, optabs.c, output.h, params.c, params.def,
params.h, predict.c, predict.def, predict.h, prefix.c,
prefix.h, print-rtl.c, print-tree.c, profile.c, protoize.c,
read-rtl.c, real.c, real.h, recog.c, recog.h, reg-stack.c,
regclass.c, regmove.c, regrename.c, regs.h, reload.c,
reload.h, reload1.c, reorg.c, resource.c, resource.h, rtl.c,
rtl.def, rtl.h, rtlanal.c, sbitmap.c, sbitmap.h,
sched-deps.c, sched-ebb.c, sched-int.h, sched-rgn.c,
sched-vis.c, sdbout.c, sdbout.h, sibcall.c, simplify-rtx.c,
ssa-ccp.c, ssa-dce.c, ssa.c, ssa.h, stmt.c, stor-layout.c,
stringpool.c, system.h, timevar.c, timevar.def, timevar.h,
tlink.c, toplev.c, toplev.h, tree.c, tree.def, tree.h,
tsystem.h, unroll.c, unwind-dw2-fde.c, unwind-dw2-fde.h,
unwind-dw2.c, unwind-pe.h, unwind-sjlj.c, unwind.h,
unwind.inc, varasm.c, varray.c, varray.h, xcoffout.c,
xcoffout.h: replace "GNU CC" with "GCC".
From-SVN: r45105
2001-08-22 16:35:51 +02:00
|
|
|
#GCC is free software; you can redistribute it and/or modify it under
|
|
|
|
#the terms of the GNU General Public License as published by the Free
|
2007-07-26 10:37:01 +02:00
|
|
|
#Software Foundation; either version 3, or (at your option) any later
|
Makefile.in, [...]: replace "GNU CC" with "GCC".
* Makefile.in, alias.c, basic-block.h, bb-reorder.c, bitmap.c,
bitmap.h, builtin-types.def, builtins.c, builtins.def,
c-aux-info.c, c-common.c, c-common.def, c-common.h,
c-convert.c, c-decl.c, c-dump.c, c-dump.h, c-errors.c,
c-format.c, c-lang.c, c-lex.c, c-lex.h, c-parse.in,
c-pragma.c, c-pragma.h, c-semantics.c, c-tree.h, c-typeck.c,
caller-save.c, calls.c, collect2.c, collect2.h, combine.c,
conditions.h, config.gcc, configure.frag, configure.in,
conflict.c, convert.c, convert.h, cppspec.c, crtstuff.c,
cse.c, cselib.c, cselib.h, dbxout.c, dbxout.h, defaults.h,
dependence.c, df.c, df.h, diagnostic.c, diagnostic.h,
doloop.c, dominance.c, dwarf.h, dwarf2.h, dwarf2asm.c,
dwarf2asm.h, dwarf2out.c, dwarf2out.h, dwarfout.c,
emit-rtl.c, errors.c, errors.h, except.c, except.h,
exgettext, explow.c, expmed.c, expr.c, expr.h, final.c,
fixproto, flags.h, flow.c, fold-const.c, fp-test.c,
function.c, function.h, gbl-ctors.h, gcc.c, gcc.h, gcc.hlp,
gccspec.c, gcov-io.h, gcse.c, genattr.c, genattrtab.c,
gencheck.c, gencodes.c, genconfig.c, genemit.c,
genextract.c, genflags.c, gengenrtl.c, genmultilib,
genopinit.c, genoutput.c, genpeep.c, genrecog.c,
gensupport.c, gensupport.h, ggc-callbacks.c, ggc-common.c,
ggc-none.c, ggc-page.c, ggc-simple.c, ggc.h, global.c,
graph.c, graph.h, gthr-aix.h, gthr-dce.h, gthr-posix.h,
gthr-rtems.h, gthr-single.h, gthr-solaris.h, gthr-vxworks.h,
gthr-win32.h, gthr.h, haifa-sched.c, halfpic.c, halfpic.h,
hard-reg-set.h, hwint.h, ifcvt.c, input.h, insn-addr.h,
integrate.c, integrate.h, jump.c, lcm.c, libgcc2.c,
libgcc2.h, lists.c, local-alloc.c, loop.c, loop.h,
machmode.def, machmode.h, main.c, mbchar.c, mbchar.h,
mips-tdump.c, mips-tfile.c, mklibgcc.in, mkmap-flat.awk,
mkmap-symver.awk, optabs.c, output.h, params.c, params.def,
params.h, predict.c, predict.def, predict.h, prefix.c,
prefix.h, print-rtl.c, print-tree.c, profile.c, protoize.c,
read-rtl.c, real.c, real.h, recog.c, recog.h, reg-stack.c,
regclass.c, regmove.c, regrename.c, regs.h, reload.c,
reload.h, reload1.c, reorg.c, resource.c, resource.h, rtl.c,
rtl.def, rtl.h, rtlanal.c, sbitmap.c, sbitmap.h,
sched-deps.c, sched-ebb.c, sched-int.h, sched-rgn.c,
sched-vis.c, sdbout.c, sdbout.h, sibcall.c, simplify-rtx.c,
ssa-ccp.c, ssa-dce.c, ssa.c, ssa.h, stmt.c, stor-layout.c,
stringpool.c, system.h, timevar.c, timevar.def, timevar.h,
tlink.c, toplev.c, toplev.h, tree.c, tree.def, tree.h,
tsystem.h, unroll.c, unwind-dw2-fde.c, unwind-dw2-fde.h,
unwind-dw2.c, unwind-pe.h, unwind-sjlj.c, unwind.h,
unwind.inc, varasm.c, varray.c, varray.h, xcoffout.c,
xcoffout.h: replace "GNU CC" with "GCC".
From-SVN: r45105
2001-08-22 16:35:51 +02:00
|
|
|
#version.
|
1997-05-18 14:31:53 +02:00
|
|
|
|
Makefile.in, [...]: replace "GNU CC" with "GCC".
* Makefile.in, alias.c, basic-block.h, bb-reorder.c, bitmap.c,
bitmap.h, builtin-types.def, builtins.c, builtins.def,
c-aux-info.c, c-common.c, c-common.def, c-common.h,
c-convert.c, c-decl.c, c-dump.c, c-dump.h, c-errors.c,
c-format.c, c-lang.c, c-lex.c, c-lex.h, c-parse.in,
c-pragma.c, c-pragma.h, c-semantics.c, c-tree.h, c-typeck.c,
caller-save.c, calls.c, collect2.c, collect2.h, combine.c,
conditions.h, config.gcc, configure.frag, configure.in,
conflict.c, convert.c, convert.h, cppspec.c, crtstuff.c,
cse.c, cselib.c, cselib.h, dbxout.c, dbxout.h, defaults.h,
dependence.c, df.c, df.h, diagnostic.c, diagnostic.h,
doloop.c, dominance.c, dwarf.h, dwarf2.h, dwarf2asm.c,
dwarf2asm.h, dwarf2out.c, dwarf2out.h, dwarfout.c,
emit-rtl.c, errors.c, errors.h, except.c, except.h,
exgettext, explow.c, expmed.c, expr.c, expr.h, final.c,
fixproto, flags.h, flow.c, fold-const.c, fp-test.c,
function.c, function.h, gbl-ctors.h, gcc.c, gcc.h, gcc.hlp,
gccspec.c, gcov-io.h, gcse.c, genattr.c, genattrtab.c,
gencheck.c, gencodes.c, genconfig.c, genemit.c,
genextract.c, genflags.c, gengenrtl.c, genmultilib,
genopinit.c, genoutput.c, genpeep.c, genrecog.c,
gensupport.c, gensupport.h, ggc-callbacks.c, ggc-common.c,
ggc-none.c, ggc-page.c, ggc-simple.c, ggc.h, global.c,
graph.c, graph.h, gthr-aix.h, gthr-dce.h, gthr-posix.h,
gthr-rtems.h, gthr-single.h, gthr-solaris.h, gthr-vxworks.h,
gthr-win32.h, gthr.h, haifa-sched.c, halfpic.c, halfpic.h,
hard-reg-set.h, hwint.h, ifcvt.c, input.h, insn-addr.h,
integrate.c, integrate.h, jump.c, lcm.c, libgcc2.c,
libgcc2.h, lists.c, local-alloc.c, loop.c, loop.h,
machmode.def, machmode.h, main.c, mbchar.c, mbchar.h,
mips-tdump.c, mips-tfile.c, mklibgcc.in, mkmap-flat.awk,
mkmap-symver.awk, optabs.c, output.h, params.c, params.def,
params.h, predict.c, predict.def, predict.h, prefix.c,
prefix.h, print-rtl.c, print-tree.c, profile.c, protoize.c,
read-rtl.c, real.c, real.h, recog.c, recog.h, reg-stack.c,
regclass.c, regmove.c, regrename.c, regs.h, reload.c,
reload.h, reload1.c, reorg.c, resource.c, resource.h, rtl.c,
rtl.def, rtl.h, rtlanal.c, sbitmap.c, sbitmap.h,
sched-deps.c, sched-ebb.c, sched-int.h, sched-rgn.c,
sched-vis.c, sdbout.c, sdbout.h, sibcall.c, simplify-rtx.c,
ssa-ccp.c, ssa-dce.c, ssa.c, ssa.h, stmt.c, stor-layout.c,
stringpool.c, system.h, timevar.c, timevar.def, timevar.h,
tlink.c, toplev.c, toplev.h, tree.c, tree.def, tree.h,
tsystem.h, unroll.c, unwind-dw2-fde.c, unwind-dw2-fde.h,
unwind-dw2.c, unwind-pe.h, unwind-sjlj.c, unwind.h,
unwind.inc, varasm.c, varray.c, varray.h, xcoffout.c,
xcoffout.h: replace "GNU CC" with "GCC".
From-SVN: r45105
2001-08-22 16:35:51 +02:00
|
|
|
#GCC is distributed in the hope that it will be useful, but WITHOUT
|
|
|
|
#ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
|
|
|
#FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
|
|
|
#for more details.
|
1997-05-18 14:31:53 +02:00
|
|
|
|
|
|
|
#You should have received a copy of the GNU General Public License
|
2007-07-26 10:37:01 +02:00
|
|
|
#along with GCC; see the file COPYING3. If not see
|
|
|
|
#<http://www.gnu.org/licenses/>.
|
1997-05-18 14:31:53 +02:00
|
|
|
|
2003-03-04 08:41:00 +01:00
|
|
|
# --------------------------------
|
|
|
|
# Initialization and sanity checks
|
|
|
|
# --------------------------------
|
|
|
|
|
2009-08-24 21:08:51 +02:00
|
|
|
AC_PREREQ(2.64)
|
2004-01-03 20:04:34 +01:00
|
|
|
AC_INIT
|
|
|
|
AC_CONFIG_SRCDIR(tree.c)
|
1998-04-14 10:32:34 +02:00
|
|
|
AC_CONFIG_HEADER(auto-host.h:config.in)
|
1997-07-19 04:51:45 +02:00
|
|
|
|
2005-06-16 14:49:06 +02:00
|
|
|
gcc_version=`cat $srcdir/BASE-VER`
|
|
|
|
|
2003-03-04 08:41:00 +01:00
|
|
|
# Determine the host, build, and target systems
|
2004-01-03 20:04:34 +01:00
|
|
|
AC_CANONICAL_BUILD
|
|
|
|
AC_CANONICAL_HOST
|
|
|
|
AC_CANONICAL_TARGET
|
2003-03-04 08:41:00 +01:00
|
|
|
|
2003-10-14 05:41:42 +02:00
|
|
|
# Determine the noncanonical target name, for directory use.
|
2004-08-16 21:26:27 +02:00
|
|
|
ACX_NONCANONICAL_TARGET
|
2003-10-14 05:41:42 +02:00
|
|
|
|
[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.
|
|
|
|
real_target_noncanonical=${target_noncanonical}
|
|
|
|
accel_dir_suffix=
|
|
|
|
|
2003-06-10 02:52:18 +02:00
|
|
|
# Determine the target- and build-specific subdirectories
|
|
|
|
GCC_TOPLEV_SUBDIRS
|
|
|
|
|
2003-03-04 08:41:00 +01:00
|
|
|
# Set program_transform_name
|
|
|
|
AC_ARG_PROGRAM
|
1997-05-18 14:31:53 +02:00
|
|
|
|
1998-09-08 00:39:41 +02:00
|
|
|
# Check for bogus environment variables.
|
|
|
|
# Test if LIBRARY_PATH contains the notation for the current directory
|
|
|
|
# since this would lead to problems installing/building glibc.
|
|
|
|
# LIBRARY_PATH contains the current directory if one of the following
|
|
|
|
# is true:
|
|
|
|
# - one of the terminals (":" and ";") is the first or last sign
|
|
|
|
# - two terminals occur directly after each other
|
|
|
|
# - the path contains an element with a dot in it
|
|
|
|
AC_MSG_CHECKING(LIBRARY_PATH variable)
|
|
|
|
changequote(,)dnl
|
|
|
|
case ${LIBRARY_PATH} in
|
|
|
|
[:\;]* | *[:\;] | *[:\;][:\;]* | *[:\;]. | .[:\;]*| . | *[:\;].[:\;]* )
|
|
|
|
library_path_setting="contains current directory"
|
|
|
|
;;
|
|
|
|
*)
|
|
|
|
library_path_setting="ok"
|
|
|
|
;;
|
|
|
|
esac
|
|
|
|
changequote([,])dnl
|
|
|
|
AC_MSG_RESULT($library_path_setting)
|
|
|
|
if test "$library_path_setting" != "ok"; then
|
|
|
|
AC_MSG_ERROR([
|
|
|
|
*** LIBRARY_PATH shouldn't contain the current directory when
|
1999-06-02 03:37:08 +02:00
|
|
|
*** building gcc. Please change the environment variable
|
1998-09-08 00:39:41 +02:00
|
|
|
*** and run configure again.])
|
|
|
|
fi
|
|
|
|
|
|
|
|
# Test if GCC_EXEC_PREFIX contains the notation for the current directory
|
|
|
|
# since this would lead to problems installing/building glibc.
|
|
|
|
# GCC_EXEC_PREFIX contains the current directory if one of the following
|
|
|
|
# is true:
|
|
|
|
# - one of the terminals (":" and ";") is the first or last sign
|
|
|
|
# - two terminals occur directly after each other
|
|
|
|
# - the path contains an element with a dot in it
|
|
|
|
AC_MSG_CHECKING(GCC_EXEC_PREFIX variable)
|
|
|
|
changequote(,)dnl
|
|
|
|
case ${GCC_EXEC_PREFIX} in
|
|
|
|
[:\;]* | *[:\;] | *[:\;][:\;]* | *[:\;]. | .[:\;]*| . | *[:\;].[:\;]* )
|
|
|
|
gcc_exec_prefix_setting="contains current directory"
|
|
|
|
;;
|
|
|
|
*)
|
|
|
|
gcc_exec_prefix_setting="ok"
|
|
|
|
;;
|
|
|
|
esac
|
|
|
|
changequote([,])dnl
|
|
|
|
AC_MSG_RESULT($gcc_exec_prefix_setting)
|
|
|
|
if test "$gcc_exec_prefix_setting" != "ok"; then
|
|
|
|
AC_MSG_ERROR([
|
|
|
|
*** GCC_EXEC_PREFIX shouldn't contain the current directory when
|
1999-06-02 03:37:08 +02:00
|
|
|
*** building gcc. Please change the environment variable
|
1998-09-08 00:39:41 +02:00
|
|
|
*** and run configure again.])
|
|
|
|
fi
|
|
|
|
|
2003-03-04 08:41:00 +01:00
|
|
|
# -----------
|
|
|
|
# Directories
|
|
|
|
# -----------
|
|
|
|
|
|
|
|
# Specify the local prefix
|
|
|
|
local_prefix=
|
|
|
|
AC_ARG_WITH(local-prefix,
|
2011-05-13 10:09:25 +02:00
|
|
|
[AS_HELP_STRING([--with-local-prefix=DIR],
|
|
|
|
[specifies directory to put local include])],
|
2003-03-04 08:41:00 +01:00
|
|
|
[case "${withval}" in
|
|
|
|
yes) AC_MSG_ERROR(bad value ${withval} given for local include directory prefix) ;;
|
|
|
|
no) ;;
|
|
|
|
*) local_prefix=$with_local_prefix ;;
|
|
|
|
esac])
|
|
|
|
|
|
|
|
# Default local prefix if it is empty
|
|
|
|
if test x$local_prefix = x; then
|
|
|
|
local_prefix=/usr/local
|
|
|
|
fi
|
|
|
|
|
2015-07-17 10:17:11 +02:00
|
|
|
AC_ARG_WITH([native-system-header-dir],
|
|
|
|
[ --with-native-system-header-dir=dir
|
|
|
|
use dir as the directory to look for standard
|
|
|
|
system header files in. Defaults to /usr/include.],
|
|
|
|
[
|
|
|
|
case ${with_native_system_header_dir} in
|
|
|
|
yes|no) AC_MSG_ERROR([bad value ${withval} given for --with-native-system-header-dir]) ;;
|
|
|
|
/* | [[A-Za-z]]:[[\\/]]*) ;;
|
|
|
|
*) AC_MSG_ERROR([--with-native-system-header-dir argument ${withval} must be an absolute directory]) ;;
|
|
|
|
esac
|
|
|
|
configured_native_system_header_dir="${withval}"
|
|
|
|
], [configured_native_system_header_dir=])
|
|
|
|
|
|
|
|
AC_ARG_WITH(build-sysroot,
|
|
|
|
[AS_HELP_STRING([--with-build-sysroot=sysroot],
|
|
|
|
[use sysroot as the system root during the build])],
|
|
|
|
[if test x"$withval" != x ; then
|
|
|
|
SYSROOT_CFLAGS_FOR_TARGET="--sysroot=$withval"
|
|
|
|
fi],
|
|
|
|
[SYSROOT_CFLAGS_FOR_TARGET=])
|
|
|
|
AC_SUBST(SYSROOT_CFLAGS_FOR_TARGET)
|
|
|
|
|
|
|
|
if test "x$prefix" = xNONE; then
|
|
|
|
test_prefix=/usr/local
|
|
|
|
else
|
|
|
|
test_prefix=$prefix
|
|
|
|
fi
|
|
|
|
if test "x$exec_prefix" = xNONE; then
|
|
|
|
test_exec_prefix=$test_prefix
|
|
|
|
else
|
|
|
|
test_exec_prefix=$exec_prefix
|
|
|
|
fi
|
|
|
|
|
|
|
|
AC_ARG_WITH(sysroot,
|
|
|
|
[AS_HELP_STRING([[--with-sysroot[=DIR]]],
|
|
|
|
[search for usr/lib, usr/include, et al, within DIR])],
|
|
|
|
[
|
|
|
|
case ${with_sysroot} in
|
|
|
|
/) ;;
|
|
|
|
*/) with_sysroot=`echo $with_sysroot | sed 's,/$,,'` ;;
|
|
|
|
esac
|
|
|
|
case ${with_sysroot} in
|
|
|
|
yes) TARGET_SYSTEM_ROOT='${exec_prefix}/${target_noncanonical}/sys-root' ;;
|
|
|
|
*) TARGET_SYSTEM_ROOT=$with_sysroot ;;
|
|
|
|
esac
|
|
|
|
|
|
|
|
TARGET_SYSTEM_ROOT_DEFINE='-DTARGET_SYSTEM_ROOT=\"$(TARGET_SYSTEM_ROOT)\"'
|
|
|
|
CROSS_SYSTEM_HEADER_DIR='$(TARGET_SYSTEM_ROOT)$${sysroot_headers_suffix}$(NATIVE_SYSTEM_HEADER_DIR)'
|
|
|
|
|
|
|
|
case ${TARGET_SYSTEM_ROOT} in
|
|
|
|
"${test_prefix}"|"${test_prefix}/"*|\
|
|
|
|
"${test_exec_prefix}"|"${test_exec_prefix}/"*|\
|
|
|
|
'${prefix}'|'${prefix}/'*|\
|
|
|
|
'${exec_prefix}'|'${exec_prefix}/'*)
|
|
|
|
t="$TARGET_SYSTEM_ROOT_DEFINE -DTARGET_SYSTEM_ROOT_RELOCATABLE"
|
|
|
|
TARGET_SYSTEM_ROOT_DEFINE="$t"
|
|
|
|
;;
|
|
|
|
esac
|
|
|
|
], [
|
|
|
|
TARGET_SYSTEM_ROOT=
|
|
|
|
TARGET_SYSTEM_ROOT_DEFINE=
|
|
|
|
CROSS_SYSTEM_HEADER_DIR='$(gcc_tooldir)/sys-include'
|
|
|
|
])
|
|
|
|
AC_SUBST(TARGET_SYSTEM_ROOT)
|
|
|
|
AC_SUBST(TARGET_SYSTEM_ROOT_DEFINE)
|
|
|
|
AC_SUBST(CROSS_SYSTEM_HEADER_DIR)
|
|
|
|
|
2003-03-04 08:41:00 +01:00
|
|
|
# Don't set gcc_gxx_include_dir to gxx_include_dir since that's only
|
|
|
|
# passed in by the toplevel make and thus we'd get different behavior
|
|
|
|
# depending on where we built the sources.
|
|
|
|
gcc_gxx_include_dir=
|
|
|
|
# Specify the g++ header file directory
|
|
|
|
AC_ARG_WITH(gxx-include-dir,
|
2011-05-13 10:09:25 +02:00
|
|
|
[AS_HELP_STRING([--with-gxx-include-dir=DIR],
|
|
|
|
[specifies directory to put g++ header files])],
|
2003-03-04 08:41:00 +01:00
|
|
|
[case "${withval}" in
|
|
|
|
yes) AC_MSG_ERROR(bad value ${withval} given for g++ include directory) ;;
|
|
|
|
no) ;;
|
|
|
|
*) gcc_gxx_include_dir=$with_gxx_include_dir ;;
|
|
|
|
esac])
|
|
|
|
|
2006-06-21 11:16:03 +02:00
|
|
|
# This logic must match libstdc++-v3/acinclude.m4:GLIBCXX_EXPORT_INSTALL_INFO.
|
2003-03-04 08:41:00 +01:00
|
|
|
if test x${gcc_gxx_include_dir} = x; then
|
|
|
|
if test x${enable_version_specific_runtime_libs} = xyes; then
|
|
|
|
gcc_gxx_include_dir='${libsubdir}/include/c++'
|
|
|
|
else
|
2006-06-21 11:16:03 +02:00
|
|
|
libstdcxx_incdir='include/c++/$(version)'
|
|
|
|
if test x$host != x$target; then
|
|
|
|
libstdcxx_incdir="$target_alias/$libstdcxx_incdir"
|
|
|
|
fi
|
2007-07-02 21:20:33 +02:00
|
|
|
gcc_gxx_include_dir="\$(libsubdir)/\$(libsubdir_to_prefix)$libstdcxx_incdir"
|
2003-03-04 08:41:00 +01:00
|
|
|
fi
|
|
|
|
fi
|
|
|
|
|
2012-01-06 01:14:32 +01:00
|
|
|
gcc_gxx_include_dir_add_sysroot=0
|
|
|
|
if test "${with_sysroot+set}" = set; then
|
|
|
|
gcc_gxx_without_sysroot=`expr "${gcc_gxx_include_dir}" : "${with_sysroot}"'\(.*\)'`
|
|
|
|
if test "${gcc_gxx_without_sysroot}"; then
|
2015-07-17 10:17:11 +02:00
|
|
|
if test x${with_sysroot} != x/; then
|
|
|
|
gcc_gxx_include_dir="${gcc_gxx_without_sysroot}"
|
|
|
|
fi
|
2012-01-06 01:14:32 +01:00
|
|
|
gcc_gxx_include_dir_add_sysroot=1
|
|
|
|
fi
|
|
|
|
fi
|
|
|
|
|
2003-03-04 08:41:00 +01:00
|
|
|
AC_ARG_WITH(cpp_install_dir,
|
2011-05-13 10:09:25 +02:00
|
|
|
[AC_HELP_STRING([--with-cpp-install-dir=DIR],
|
|
|
|
[install the user visible C preprocessor in DIR
|
|
|
|
(relative to PREFIX) as well as PREFIX/bin])],
|
2003-03-04 08:41:00 +01:00
|
|
|
[if test x$withval = xyes; then
|
|
|
|
AC_MSG_ERROR([option --with-cpp-install-dir requires an argument])
|
|
|
|
elif test x$withval != xno; then
|
|
|
|
cpp_install_dir=$withval
|
|
|
|
fi])
|
|
|
|
|
2003-10-21 01:45:51 +02:00
|
|
|
# We would like to our source tree to be readonly. However when releases or
|
|
|
|
# pre-releases are generated, the flex/bison generated files as well as the
|
|
|
|
# various formats of manuals need to be included along with the rest of the
|
|
|
|
# sources. Therefore we have --enable-generated-files-in-srcdir to do
|
|
|
|
# just that.
|
|
|
|
|
re PR bootstrap/12744 (A GCC release tarball can no longer be built without bison/flex)
gcc/
2004-01-15 Kelley Cook <kcook@gcc.gnu.org>
PR bootstrap/12744
* configure.in: Revamp enable-generated-files-in-srcdir rule to define
GENINSRC and not parsedir. Define srcextra as a langhook.
* configure: Regenerate.
* Makefile.in: Suppress default .l.c rule. Don't substitute
parsedir and delete all references throughout. Conditionally define
rule for srcextra dependent on GENINSRC.
(stmp-docobjdir): Delete.
(c-parse.o, gengtype-lex.o, gengtype-yacc.o): Use implicit build rule.
(srcextra): Copy c-parse.y, c-parse.c, gengtype-lex.c, gengtype-yacc.c,
and gengtype-yacc.h back to source directory.
(maintainer-clean): Delete all parse files in source directory.
(distclean): Delete generated files.
* objc/Make-lang.in (objc-parse.o): Use implicit build rule.
(objc-parse.c, objc-parse.y): Don't use parsedir.
(objc.srcextra): Copy objc-parse.y and objc-parse.c back to source
directory if requested.
(po-generated): Don't use parsedir.
(objc.maintainer-clean): Delete above files from source directory.
gcc/ada/
2004-01-15 Kelley Cook <kcook@gcc.gnu.org>
* Make-lang.in (ada.srcextra): Dummy entry.
gcc/cp/
2004-01-15 Kelley Cook <kcook@gcc.gnu.org>
* Make-lang.in (c++.srcextra): Dummy entry.
gcc/f/
2004-01-15 Kelley Cook <kcook@gcc.gnu.org>
* Make-lang.in (f77.srcextra): Dummy entry.
gcc/java/
2004-01-15 Kelley Cook <kcook@gcc.gnu.org>
* Make-lang.in (parse.c, parse-scan.c): Always build in doc directory.
(java.srcextra): Copy above back to source directory if requested.
(po-generated): Delete reference to $(parsedir).
(java/parse.o, java/parse-scan.o): Delete reference to $(parsedir).
Use implicit rule.
gcc/treelang/
2004-01-15 Kelley Cook <kcook@gcc.gnu.org>
* Make-lang.in (TREE_GENERATED): Delete reference to $(parsedir).
(treelang/parse.o, treelang/lex.o): Look for sources in build
directory. Use implicit rule.
(treelang/parse.c, treelang/parse.h treelang/lex.c): Always build in
doc directory.
(treelang.srcextra): Copy above back to source directory if requested.
From-SVN: r75903
2004-01-15 05:02:24 +01:00
|
|
|
AC_MSG_CHECKING([whether to place generated files in the source directory])
|
|
|
|
dnl generated-files-in-srcdir is disabled by default
|
|
|
|
AC_ARG_ENABLE(generated-files-in-srcdir,
|
2011-05-13 10:09:25 +02:00
|
|
|
[AS_HELP_STRING([--enable-generated-files-in-srcdir],
|
|
|
|
[put copies of generated files in source dir
|
|
|
|
intended for creating source tarballs for users
|
|
|
|
without texinfo bison or flex])],
|
re PR bootstrap/12744 (A GCC release tarball can no longer be built without bison/flex)
gcc/
2004-01-15 Kelley Cook <kcook@gcc.gnu.org>
PR bootstrap/12744
* configure.in: Revamp enable-generated-files-in-srcdir rule to define
GENINSRC and not parsedir. Define srcextra as a langhook.
* configure: Regenerate.
* Makefile.in: Suppress default .l.c rule. Don't substitute
parsedir and delete all references throughout. Conditionally define
rule for srcextra dependent on GENINSRC.
(stmp-docobjdir): Delete.
(c-parse.o, gengtype-lex.o, gengtype-yacc.o): Use implicit build rule.
(srcextra): Copy c-parse.y, c-parse.c, gengtype-lex.c, gengtype-yacc.c,
and gengtype-yacc.h back to source directory.
(maintainer-clean): Delete all parse files in source directory.
(distclean): Delete generated files.
* objc/Make-lang.in (objc-parse.o): Use implicit build rule.
(objc-parse.c, objc-parse.y): Don't use parsedir.
(objc.srcextra): Copy objc-parse.y and objc-parse.c back to source
directory if requested.
(po-generated): Don't use parsedir.
(objc.maintainer-clean): Delete above files from source directory.
gcc/ada/
2004-01-15 Kelley Cook <kcook@gcc.gnu.org>
* Make-lang.in (ada.srcextra): Dummy entry.
gcc/cp/
2004-01-15 Kelley Cook <kcook@gcc.gnu.org>
* Make-lang.in (c++.srcextra): Dummy entry.
gcc/f/
2004-01-15 Kelley Cook <kcook@gcc.gnu.org>
* Make-lang.in (f77.srcextra): Dummy entry.
gcc/java/
2004-01-15 Kelley Cook <kcook@gcc.gnu.org>
* Make-lang.in (parse.c, parse-scan.c): Always build in doc directory.
(java.srcextra): Copy above back to source directory if requested.
(po-generated): Delete reference to $(parsedir).
(java/parse.o, java/parse-scan.o): Delete reference to $(parsedir).
Use implicit rule.
gcc/treelang/
2004-01-15 Kelley Cook <kcook@gcc.gnu.org>
* Make-lang.in (TREE_GENERATED): Delete reference to $(parsedir).
(treelang/parse.o, treelang/lex.o): Look for sources in build
directory. Use implicit rule.
(treelang/parse.c, treelang/parse.h treelang/lex.c): Always build in
doc directory.
(treelang.srcextra): Copy above back to source directory if requested.
From-SVN: r75903
2004-01-15 05:02:24 +01:00
|
|
|
generated_files_in_srcdir=$enableval,
|
|
|
|
generated_files_in_srcdir=no)
|
|
|
|
|
|
|
|
AC_MSG_RESULT($generated_files_in_srcdir)
|
|
|
|
|
|
|
|
if test "$generated_files_in_srcdir" = "yes"; then
|
|
|
|
GENINSRC=''
|
|
|
|
else
|
|
|
|
GENINSRC='#'
|
|
|
|
fi
|
|
|
|
AC_SUBST(GENINSRC)
|
2003-10-21 01:45:51 +02:00
|
|
|
|
2003-03-04 08:41:00 +01:00
|
|
|
# -------------------
|
|
|
|
# Find default linker
|
|
|
|
# -------------------
|
1997-05-18 14:31:53 +02:00
|
|
|
|
|
|
|
# With GNU ld
|
|
|
|
AC_ARG_WITH(gnu-ld,
|
2011-05-13 10:09:25 +02:00
|
|
|
[AS_HELP_STRING([--with-gnu-ld], [arrange to work with GNU ld])],
|
1998-04-15 14:41:32 +02:00
|
|
|
gnu_ld_flag="$with_gnu_ld",
|
|
|
|
gnu_ld_flag=no)
|
1997-05-18 14:31:53 +02:00
|
|
|
|
1998-09-28 17:52:01 +02:00
|
|
|
# With pre-defined ld
|
|
|
|
AC_ARG_WITH(ld,
|
2011-05-13 10:09:25 +02:00
|
|
|
[AS_HELP_STRING([--with-ld], [arrange to use the specified ld (full pathname)])],
|
1998-11-02 03:17:53 +01:00
|
|
|
DEFAULT_LINKER="$with_ld")
|
|
|
|
if test x"${DEFAULT_LINKER+set}" = x"set"; then
|
|
|
|
if test ! -x "$DEFAULT_LINKER"; then
|
2004-04-30 02:33:18 +02:00
|
|
|
AC_MSG_ERROR([cannot execute: $DEFAULT_LINKER: check --with-ld or env. var. DEFAULT_LINKER])
|
1999-04-03 16:52:07 +02:00
|
|
|
elif $DEFAULT_LINKER -v < /dev/null 2>&1 | grep GNU > /dev/null; then
|
1998-09-28 17:52:01 +02:00
|
|
|
gnu_ld_flag=yes
|
|
|
|
fi
|
acconfig.h (ENABLE_STD_NAMESPACE, [...]): Delete entries.
* acconfig.h (ENABLE_STD_NAMESPACE, ENABLE_CHECKING,
ENABLE_TREE_CHECKING, ENABLE_RTL_CHECKING, ENABLE_GC_CHECKING,
ENABLE_GC_ALWAYS_COLLECT): Delete entries.
* configure.in (ENABLE_STD_NAMESPACE, ENABLE_CHECKING,
ENABLE_TREE_CHECKING, ENABLE_RTL_CHECKING, ENABLE_GC_CHECKING,
ENABLE_GC_ALWAYS_COLLECT): Use three argument form of AC_DEFINE
for these macros. Clean up spacing and linewraps.
From-SVN: r33420
2000-04-25 22:30:16 +02:00
|
|
|
AC_DEFINE_UNQUOTED(DEFAULT_LINKER,"$DEFAULT_LINKER",
|
|
|
|
[Define to enable the use of a default linker.])
|
1998-09-28 17:52:01 +02:00
|
|
|
fi
|
|
|
|
|
2003-03-04 08:41:00 +01:00
|
|
|
AC_MSG_CHECKING([whether a default linker was specified])
|
|
|
|
if test x"${DEFAULT_LINKER+set}" = x"set"; then
|
|
|
|
if test x"$gnu_ld_flag" = x"no"; then
|
|
|
|
AC_MSG_RESULT([yes ($DEFAULT_LINKER)])
|
|
|
|
else
|
|
|
|
AC_MSG_RESULT([yes ($DEFAULT_LINKER - GNU ld)])
|
|
|
|
fi
|
|
|
|
else
|
|
|
|
AC_MSG_RESULT(no)
|
|
|
|
fi
|
|
|
|
|
2004-07-07 22:29:13 +02:00
|
|
|
# With demangler in GNU ld
|
|
|
|
AC_ARG_WITH(demangler-in-ld,
|
2011-05-13 10:09:25 +02:00
|
|
|
[AS_HELP_STRING([--with-demangler-in-ld], [try to use demangler in GNU ld])],
|
2004-07-07 22:29:13 +02:00
|
|
|
demangler_in_ld="$with_demangler_in_ld",
|
2011-07-25 01:22:41 +02:00
|
|
|
demangler_in_ld=yes)
|
2004-07-07 22:29:13 +02:00
|
|
|
|
2003-03-04 08:41:00 +01:00
|
|
|
# ----------------------
|
|
|
|
# Find default assembler
|
|
|
|
# ----------------------
|
|
|
|
|
1997-05-18 14:31:53 +02:00
|
|
|
# With GNU as
|
|
|
|
AC_ARG_WITH(gnu-as,
|
2011-05-13 10:09:25 +02:00
|
|
|
[AS_HELP_STRING([--with-gnu-as], [arrange to work with GNU as])],
|
1998-04-15 14:41:32 +02:00
|
|
|
gas_flag="$with_gnu_as",
|
|
|
|
gas_flag=no)
|
1997-05-18 14:31:53 +02:00
|
|
|
|
1998-09-28 17:52:01 +02:00
|
|
|
AC_ARG_WITH(as,
|
2011-05-13 10:09:25 +02:00
|
|
|
[AS_HELP_STRING([--with-as], [arrange to use the specified as (full pathname)])],
|
1998-11-02 03:17:53 +01:00
|
|
|
DEFAULT_ASSEMBLER="$with_as")
|
|
|
|
if test x"${DEFAULT_ASSEMBLER+set}" = x"set"; then
|
|
|
|
if test ! -x "$DEFAULT_ASSEMBLER"; then
|
2004-04-30 02:33:18 +02:00
|
|
|
AC_MSG_ERROR([cannot execute: $DEFAULT_ASSEMBLER: check --with-as or env. var. DEFAULT_ASSEMBLER])
|
1999-04-03 16:52:07 +02:00
|
|
|
elif $DEFAULT_ASSEMBLER -v < /dev/null 2>&1 | grep GNU > /dev/null; then
|
1998-09-28 17:52:01 +02:00
|
|
|
gas_flag=yes
|
|
|
|
fi
|
acconfig.h (ENABLE_STD_NAMESPACE, [...]): Delete entries.
* acconfig.h (ENABLE_STD_NAMESPACE, ENABLE_CHECKING,
ENABLE_TREE_CHECKING, ENABLE_RTL_CHECKING, ENABLE_GC_CHECKING,
ENABLE_GC_ALWAYS_COLLECT): Delete entries.
* configure.in (ENABLE_STD_NAMESPACE, ENABLE_CHECKING,
ENABLE_TREE_CHECKING, ENABLE_RTL_CHECKING, ENABLE_GC_CHECKING,
ENABLE_GC_ALWAYS_COLLECT): Use three argument form of AC_DEFINE
for these macros. Clean up spacing and linewraps.
From-SVN: r33420
2000-04-25 22:30:16 +02:00
|
|
|
AC_DEFINE_UNQUOTED(DEFAULT_ASSEMBLER,"$DEFAULT_ASSEMBLER",
|
|
|
|
[Define to enable the use of a default assembler.])
|
1998-11-02 03:17:53 +01:00
|
|
|
fi
|
1998-09-28 17:52:01 +02:00
|
|
|
|
2003-03-04 08:41:00 +01:00
|
|
|
AC_MSG_CHECKING([whether a default assembler was specified])
|
|
|
|
if test x"${DEFAULT_ASSEMBLER+set}" = x"set"; then
|
|
|
|
if test x"$gas_flag" = x"no"; then
|
|
|
|
AC_MSG_RESULT([yes ($DEFAULT_ASSEMBLER)])
|
1998-07-29 01:47:28 +02:00
|
|
|
else
|
2003-03-04 08:41:00 +01:00
|
|
|
AC_MSG_RESULT([yes ($DEFAULT_ASSEMBLER - GNU as)])
|
1998-07-29 01:47:28 +02:00
|
|
|
fi
|
2003-03-04 08:41:00 +01:00
|
|
|
else
|
|
|
|
AC_MSG_RESULT(no)
|
1998-07-29 01:47:28 +02:00
|
|
|
fi
|
1997-05-18 14:31:53 +02:00
|
|
|
|
2003-03-04 08:41:00 +01:00
|
|
|
# ---------------
|
|
|
|
# Find C compiler
|
|
|
|
# ---------------
|
2002-11-26 21:08:08 +01:00
|
|
|
|
2004-02-09 18:40:32 +01:00
|
|
|
# If a non-executable a.out is present (e.g. created by GNU as above even if
|
|
|
|
# invoked with -v only), the IRIX 6 native ld just overwrites the existing
|
|
|
|
# file, even when creating an executable, so an execution test fails.
|
|
|
|
# Remove possible default executable files to avoid this.
|
|
|
|
#
|
|
|
|
# FIXME: This really belongs into AC_PROG_CC and can be removed once
|
|
|
|
# Autoconf includes it.
|
|
|
|
rm -f a.out a.exe b.out
|
|
|
|
|
Makefile.in (RUN_GEN, [...]): New variables.
* Makefile.in (RUN_GEN, VALGRIND_DRIVER_DEFINES): New variables.
(DRIVER_DEFINES): Add $(VALGRIND_DRIVER_DEFINES).
(executing gencheck, genconfigs, genconditions, genflags,
gencodes, genconstants, genemit, genrecog, genopinit, genextract,
genpeep, genattr, genattrtab, genoutput, gengenrtl, genpreds,
gengtype, genprotos): Prepend $(RUN_GEN).
* configure.in: Move host compiler tests before --enable-checking
tests.
(--enable-checking=valgrind): New.
* config.in, configure: Regenerate.
* cppfiles.c [!ENABLE_VALGRIND_CHECKING] (VALGRIND_DISCARD):
Define as empty.
(read_include_file): When doing the mmap+1 trick,
valgrind-annotate the byte after the mmap:ed area as readable.
(purge_cache): Remove above annotation.
* gcc.c (execute) [ENABLE_VALGRIND_CHECKING]: Arrange to prepend
VALGRIND_PATH -q to each command.
From-SVN: r59309
2002-11-20 20:49:53 +01:00
|
|
|
# Find the native compiler
|
|
|
|
AC_PROG_CC
|
configure.ac: Add --enable-build-with-cxx.
./: * configure.ac: Add --enable-build-with-cxx. When set, add c++ to
boot_languages. Only bootstrap target libraries listed in
target_libs for some boot language. Add --with-stage1-ldflags,
--with-stage1-libs, --with-boot-ldflags, --with-boot-libs. Remove
with_host_libstdcxx from ppllibs. Only add -fkeep-inline-functions
if not building with C++.
* Makefile.def: For target_module libstdc++-v3, set bootstrap=true.
* Makefile.tpl (STAGE1_LDFLAGS, STAGE1_LIBS): New variables.
(POSTSTAGE1_LDFLAGS, POSTSTAGE1_LIBS): New variables.
(HOST_EXPORTS): Add STAGE1_LDFLAGS to LDFLAGS. Export HOST_LIBS.
(POSTSTAGE1_HOST_EXPORTS): Set CXX and CXX_FOR_BUILD. Add
POSTSTAGE1_LDFLAGS to LDFLAGS. Export HOST_LIBS.
(POSTSTAGE1_FLAGS_TO_PASS): Likewise.
* configure, Makefile.in: Rebuild.
gcc/:
* configure.ac: Invoke AC_PROG_CXX. Separate C specific warnings
from loose_warn into c_loose_warn and from strict_warn into
c_strict_warn. Set and substitute warn_cxxflags. Check for
--enable-build-with-cxx. Set and substitute
ENABLE_BUILD_WITH_CXX. Set and substitute HOST_LIBS.
* Makefile.in (CXXFLAGS): New variable.
(C_LOOSE_WARN, C_STRICT_WARN): New variables.
(GCC_WARN_CFLAGS): Add $(C_LOOSE_WARN). Add $(C_STRICT_WARN) if
the default is the same as $(STRICT_WARN).
(GCC_WARN_CXXFLAGS, WARN_CXXFLAGS): New variables.
(CXX): New variable.
(COMPILER): New value if ENABLE_BUILD_WITH_CXX.
(COMPILER_FLAGS, LINKER, LINKER_FLAGS): Likewise.
(ALL_COMPILERFLAGS, ALL_LINKERFLAGS): Likewise.
(HOST_LIBS): New variable.
(GCC_CFLAGS): Add $(C_LOOSE_WARN).
(ALL_CXXFLAGS): New variable.
(LIBS, BACKENDLIBS): Add $(HOST_LIBS).
* doc/install.texi (Configuration): Document
--enable-build-with-cxx, --with-stage1-ldflags,
--with-stage1-libs, --with-boot-ldflags, --with-boot-libs.
* configure: Rebuild.
From-SVN: r148889
2009-06-24 06:03:51 +02:00
|
|
|
AC_PROG_CXX
|
2008-05-12 18:25:07 +02:00
|
|
|
ACX_PROG_GNAT([-I"$srcdir"/ada])
|
|
|
|
|
2015-05-26 14:28:53 +02:00
|
|
|
# Do configure tests with the C++ compiler, since that's what we build with.
|
|
|
|
AC_LANG(C++)
|
|
|
|
|
2006-06-15 08:26:59 +02:00
|
|
|
# Remove the -O2: for historical reasons, unless bootstrapping we prefer
|
|
|
|
# optimizations to be activated explicitly by the toplevel.
|
|
|
|
case "$CC" in
|
|
|
|
*/prev-gcc/xgcc*) ;;
|
2012-09-25 14:27:47 +02:00
|
|
|
*) CFLAGS=`echo "$CFLAGS " | sed -e "s/-Ofast[[ ]]//" -e "s/-O[[gs]][[ ]]//" -e "s/-O[[0-9]]*[[ ]]//" `
|
|
|
|
CXXFLAGS=`echo "$CXXFLAGS " | sed -e "s/-Ofast[[ ]]//" -e "s/-O[[gs]][[ ]]//" -e "s/-O[[0-9]]*[[ ]]//" ` ;;
|
2006-06-15 08:26:59 +02:00
|
|
|
esac
|
|
|
|
AC_SUBST(CFLAGS)
|
2012-09-13 18:30:17 +02:00
|
|
|
AC_SUBST(CXXFLAGS)
|
2006-06-15 08:26:59 +02:00
|
|
|
|
2011-08-22 18:54:02 +02:00
|
|
|
# Determine PICFLAG for target gnatlib.
|
|
|
|
GCC_PICFLAG_FOR_TARGET
|
|
|
|
AC_SUBST(PICFLAG_FOR_TARGET)
|
|
|
|
|
2003-03-12 21:41:00 +01:00
|
|
|
# -------------------------
|
|
|
|
# Check C compiler features
|
|
|
|
# -------------------------
|
|
|
|
|
2008-03-27 10:46:19 +01:00
|
|
|
AC_USE_SYSTEM_EXTENSIONS
|
2003-03-04 08:41:00 +01:00
|
|
|
AC_PROG_CPP
|
|
|
|
AC_C_INLINE
|
|
|
|
|
2010-11-03 03:45:25 +01:00
|
|
|
AC_SYS_LARGEFILE
|
|
|
|
|
2003-03-04 08:41:00 +01:00
|
|
|
# sizeof(char) is 1 by definition.
|
2004-09-18 02:50:15 +02:00
|
|
|
AC_CHECK_SIZEOF(void *)
|
|
|
|
AC_CHECK_SIZEOF(short)
|
|
|
|
AC_CHECK_SIZEOF(int)
|
|
|
|
AC_CHECK_SIZEOF(long)
|
2005-05-25 02:15:21 +02:00
|
|
|
AC_CHECK_TYPES([long long], [AC_CHECK_SIZEOF(long long)])
|
2009-09-08 17:21:07 +02:00
|
|
|
GCC_STDINT_TYPES
|
2014-05-26 10:19:02 +02:00
|
|
|
if test x"$ac_cv_c_uint64_t" = x"no" -o x"$ac_cv_c_int64_t" = x"no"; then
|
|
|
|
AC_MSG_ERROR([uint64_t or int64_t not found])
|
|
|
|
fi
|
2003-03-04 08:41:00 +01:00
|
|
|
|
2014-06-04 14:35:26 +02:00
|
|
|
# check what underlying integer type int64_t uses
|
|
|
|
AC_CACHE_CHECK(for int64_t underlying type, ac_cv_int64_t_type, [
|
|
|
|
AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
|
|
|
|
#ifdef HAVE_STDINT_H
|
|
|
|
#include <stdint.h>
|
|
|
|
#endif
|
|
|
|
template <typename T> struct X { };
|
|
|
|
template <>
|
|
|
|
struct X<long> { typedef long t; };
|
|
|
|
]], [[X<int64_t>::t x;]])],[ac_cv_int64_t_type=long],[ac_cv_int64_t_type="long long"])])
|
|
|
|
if test "$ac_cv_int64_t_type" = "long"; then
|
|
|
|
AC_DEFINE(INT64_T_IS_LONG, 1,
|
|
|
|
[Define if int64_t uses long as underlying type.])
|
|
|
|
else
|
|
|
|
AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
|
|
|
|
#ifdef HAVE_STDINT_H
|
|
|
|
#include <stdint.h>
|
|
|
|
#endif
|
|
|
|
template <typename T> struct X { };
|
|
|
|
template <>
|
|
|
|
struct X<long long> { typedef long long t; };
|
|
|
|
]], [[X<int64_t>::t x;]])],[],[AC_MSG_ERROR([error verifying int64_t uses long long])])
|
|
|
|
fi
|
|
|
|
|
2015-08-03 13:48:57 +02:00
|
|
|
# Check whether compiler is affected by placement new aliasing bug (PR 29286).
|
|
|
|
# If the host compiler is affected by the bug, and we build with optimization
|
|
|
|
# enabled (which happens e.g. when cross-compiling), the pool allocator may
|
|
|
|
# get miscompiled. Use -fno-strict-aliasing to work around this problem.
|
|
|
|
# Since there is no reliable feature check for the presence of this bug,
|
|
|
|
# we simply use a GCC version number check. (This should never trigger for
|
|
|
|
# stages 2 or 3 of a native bootstrap.)
|
|
|
|
aliasing_flags=
|
|
|
|
if test "$GCC" = yes; then
|
|
|
|
saved_CXXFLAGS="$CXXFLAGS"
|
|
|
|
|
|
|
|
# The following test compilation will succeed if and only if $CXX accepts
|
|
|
|
# -fno-strict-aliasing *and* is older than GCC 4.3.
|
|
|
|
CXXFLAGS="$CXXFLAGS -fno-strict-aliasing"
|
|
|
|
AC_MSG_CHECKING([whether $CXX is affected by placement new aliasing bug])
|
|
|
|
AC_COMPILE_IFELSE([
|
|
|
|
#if (__GNUC__ > 4) || (__GNUC__ == 4 && __GNUC_MINOR__ >= 3)
|
|
|
|
#error compiler not affected by placement new aliasing bug
|
|
|
|
#endif
|
|
|
|
],
|
|
|
|
[AC_MSG_RESULT([yes]); aliasing_flags='-fno-strict-aliasing'],
|
|
|
|
[AC_MSG_RESULT([no])])
|
|
|
|
|
|
|
|
CXXFLAGS="$saved_CXXFLAGS"
|
|
|
|
fi
|
|
|
|
AC_SUBST(aliasing_flags)
|
2014-06-04 14:35:26 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
2003-03-04 08:41:00 +01:00
|
|
|
# ---------------------
|
|
|
|
# Warnings and checking
|
|
|
|
# ---------------------
|
|
|
|
|
2004-03-24 17:26:00 +01:00
|
|
|
# Check $CC warning features (if it's GCC).
|
|
|
|
# We want to use -pedantic, but we don't want warnings about
|
|
|
|
# * 'long long'
|
|
|
|
# * variadic macros
|
2006-01-29 04:30:47 +01:00
|
|
|
# * overlong strings
|
2011-11-02 21:16:43 +01:00
|
|
|
# * C++11 narrowing conversions in { }
|
2004-03-24 17:26:00 +01:00
|
|
|
# So, we only use -pedantic if we can disable those warnings.
|
|
|
|
|
2013-10-30 18:30:05 +01:00
|
|
|
# In stage 1, disable -Wformat warnings from old GCCs about new % codes
|
|
|
|
AC_ARG_ENABLE(build-format-warnings,
|
|
|
|
AS_HELP_STRING([--disable-build-format-warnings],[don't use -Wformat while building GCC]),
|
|
|
|
[],[enable_build_format_warnings=yes])
|
|
|
|
AS_IF([test $enable_build_format_warnings = no],
|
|
|
|
[wf_opt=-Wno-format],[wf_opt=])
|
2015-05-27 18:09:18 +02:00
|
|
|
ACX_PROG_CXX_WARNING_OPTS(
|
2013-10-30 18:30:05 +01:00
|
|
|
m4_quote(m4_do([-W -Wall -Wno-narrowing -Wwrite-strings -Wcast-qual $wf_opt])), [loose_warn])
|
2008-07-28 22:30:00 +02:00
|
|
|
ACX_PROG_CC_WARNING_OPTS(
|
configure.ac: Add --enable-build-with-cxx.
./: * configure.ac: Add --enable-build-with-cxx. When set, add c++ to
boot_languages. Only bootstrap target libraries listed in
target_libs for some boot language. Add --with-stage1-ldflags,
--with-stage1-libs, --with-boot-ldflags, --with-boot-libs. Remove
with_host_libstdcxx from ppllibs. Only add -fkeep-inline-functions
if not building with C++.
* Makefile.def: For target_module libstdc++-v3, set bootstrap=true.
* Makefile.tpl (STAGE1_LDFLAGS, STAGE1_LIBS): New variables.
(POSTSTAGE1_LDFLAGS, POSTSTAGE1_LIBS): New variables.
(HOST_EXPORTS): Add STAGE1_LDFLAGS to LDFLAGS. Export HOST_LIBS.
(POSTSTAGE1_HOST_EXPORTS): Set CXX and CXX_FOR_BUILD. Add
POSTSTAGE1_LDFLAGS to LDFLAGS. Export HOST_LIBS.
(POSTSTAGE1_FLAGS_TO_PASS): Likewise.
* configure, Makefile.in: Rebuild.
gcc/:
* configure.ac: Invoke AC_PROG_CXX. Separate C specific warnings
from loose_warn into c_loose_warn and from strict_warn into
c_strict_warn. Set and substitute warn_cxxflags. Check for
--enable-build-with-cxx. Set and substitute
ENABLE_BUILD_WITH_CXX. Set and substitute HOST_LIBS.
* Makefile.in (CXXFLAGS): New variable.
(C_LOOSE_WARN, C_STRICT_WARN): New variables.
(GCC_WARN_CFLAGS): Add $(C_LOOSE_WARN). Add $(C_STRICT_WARN) if
the default is the same as $(STRICT_WARN).
(GCC_WARN_CXXFLAGS, WARN_CXXFLAGS): New variables.
(CXX): New variable.
(COMPILER): New value if ENABLE_BUILD_WITH_CXX.
(COMPILER_FLAGS, LINKER, LINKER_FLAGS): Likewise.
(ALL_COMPILERFLAGS, ALL_LINKERFLAGS): Likewise.
(HOST_LIBS): New variable.
(GCC_CFLAGS): Add $(C_LOOSE_WARN).
(ALL_CXXFLAGS): New variable.
(LIBS, BACKENDLIBS): Add $(HOST_LIBS).
* doc/install.texi (Configuration): Document
--enable-build-with-cxx, --with-stage1-ldflags,
--with-stage1-libs, --with-boot-ldflags, --with-boot-libs.
* configure: Rebuild.
From-SVN: r148889
2009-06-24 06:03:51 +02:00
|
|
|
m4_quote(m4_do([-Wstrict-prototypes -Wmissing-prototypes])),
|
|
|
|
[c_loose_warn])
|
2015-05-27 18:09:18 +02:00
|
|
|
ACX_PROG_CXX_WARNING_OPTS(
|
configure.ac: Add --enable-build-with-cxx.
./: * configure.ac: Add --enable-build-with-cxx. When set, add c++ to
boot_languages. Only bootstrap target libraries listed in
target_libs for some boot language. Add --with-stage1-ldflags,
--with-stage1-libs, --with-boot-ldflags, --with-boot-libs. Remove
with_host_libstdcxx from ppllibs. Only add -fkeep-inline-functions
if not building with C++.
* Makefile.def: For target_module libstdc++-v3, set bootstrap=true.
* Makefile.tpl (STAGE1_LDFLAGS, STAGE1_LIBS): New variables.
(POSTSTAGE1_LDFLAGS, POSTSTAGE1_LIBS): New variables.
(HOST_EXPORTS): Add STAGE1_LDFLAGS to LDFLAGS. Export HOST_LIBS.
(POSTSTAGE1_HOST_EXPORTS): Set CXX and CXX_FOR_BUILD. Add
POSTSTAGE1_LDFLAGS to LDFLAGS. Export HOST_LIBS.
(POSTSTAGE1_FLAGS_TO_PASS): Likewise.
* configure, Makefile.in: Rebuild.
gcc/:
* configure.ac: Invoke AC_PROG_CXX. Separate C specific warnings
from loose_warn into c_loose_warn and from strict_warn into
c_strict_warn. Set and substitute warn_cxxflags. Check for
--enable-build-with-cxx. Set and substitute
ENABLE_BUILD_WITH_CXX. Set and substitute HOST_LIBS.
* Makefile.in (CXXFLAGS): New variable.
(C_LOOSE_WARN, C_STRICT_WARN): New variables.
(GCC_WARN_CFLAGS): Add $(C_LOOSE_WARN). Add $(C_STRICT_WARN) if
the default is the same as $(STRICT_WARN).
(GCC_WARN_CXXFLAGS, WARN_CXXFLAGS): New variables.
(CXX): New variable.
(COMPILER): New value if ENABLE_BUILD_WITH_CXX.
(COMPILER_FLAGS, LINKER, LINKER_FLAGS): Likewise.
(ALL_COMPILERFLAGS, ALL_LINKERFLAGS): Likewise.
(HOST_LIBS): New variable.
(GCC_CFLAGS): Add $(C_LOOSE_WARN).
(ALL_CXXFLAGS): New variable.
(LIBS, BACKENDLIBS): Add $(HOST_LIBS).
* doc/install.texi (Configuration): Document
--enable-build-with-cxx, --with-stage1-ldflags,
--with-stage1-libs, --with-boot-ldflags, --with-boot-libs.
* configure: Rebuild.
From-SVN: r148889
2009-06-24 06:03:51 +02:00
|
|
|
m4_quote(m4_do([-Wmissing-format-attribute])), [strict_warn])
|
2015-05-27 18:09:18 +02:00
|
|
|
ACX_PROG_CXX_WARNING_OPTS(
|
2014-04-17 14:37:05 +02:00
|
|
|
m4_quote(m4_do([-Woverloaded-virtual])), [strict_warn])
|
configure.ac: Add --enable-build-with-cxx.
./: * configure.ac: Add --enable-build-with-cxx. When set, add c++ to
boot_languages. Only bootstrap target libraries listed in
target_libs for some boot language. Add --with-stage1-ldflags,
--with-stage1-libs, --with-boot-ldflags, --with-boot-libs. Remove
with_host_libstdcxx from ppllibs. Only add -fkeep-inline-functions
if not building with C++.
* Makefile.def: For target_module libstdc++-v3, set bootstrap=true.
* Makefile.tpl (STAGE1_LDFLAGS, STAGE1_LIBS): New variables.
(POSTSTAGE1_LDFLAGS, POSTSTAGE1_LIBS): New variables.
(HOST_EXPORTS): Add STAGE1_LDFLAGS to LDFLAGS. Export HOST_LIBS.
(POSTSTAGE1_HOST_EXPORTS): Set CXX and CXX_FOR_BUILD. Add
POSTSTAGE1_LDFLAGS to LDFLAGS. Export HOST_LIBS.
(POSTSTAGE1_FLAGS_TO_PASS): Likewise.
* configure, Makefile.in: Rebuild.
gcc/:
* configure.ac: Invoke AC_PROG_CXX. Separate C specific warnings
from loose_warn into c_loose_warn and from strict_warn into
c_strict_warn. Set and substitute warn_cxxflags. Check for
--enable-build-with-cxx. Set and substitute
ENABLE_BUILD_WITH_CXX. Set and substitute HOST_LIBS.
* Makefile.in (CXXFLAGS): New variable.
(C_LOOSE_WARN, C_STRICT_WARN): New variables.
(GCC_WARN_CFLAGS): Add $(C_LOOSE_WARN). Add $(C_STRICT_WARN) if
the default is the same as $(STRICT_WARN).
(GCC_WARN_CXXFLAGS, WARN_CXXFLAGS): New variables.
(CXX): New variable.
(COMPILER): New value if ENABLE_BUILD_WITH_CXX.
(COMPILER_FLAGS, LINKER, LINKER_FLAGS): Likewise.
(ALL_COMPILERFLAGS, ALL_LINKERFLAGS): Likewise.
(HOST_LIBS): New variable.
(GCC_CFLAGS): Add $(C_LOOSE_WARN).
(ALL_CXXFLAGS): New variable.
(LIBS, BACKENDLIBS): Add $(HOST_LIBS).
* doc/install.texi (Configuration): Document
--enable-build-with-cxx, --with-stage1-ldflags,
--with-stage1-libs, --with-boot-ldflags, --with-boot-libs.
* configure: Rebuild.
From-SVN: r148889
2009-06-24 06:03:51 +02:00
|
|
|
ACX_PROG_CC_WARNING_OPTS(
|
|
|
|
m4_quote(m4_do([-Wold-style-definition -Wc++-compat])), [c_strict_warn])
|
2015-05-27 18:09:18 +02:00
|
|
|
ACX_PROG_CXX_WARNING_ALMOST_PEDANTIC(
|
2008-09-02 20:43:30 +02:00
|
|
|
m4_quote(m4_do([-Wno-long-long -Wno-variadic-macros ],
|
|
|
|
[-Wno-overlength-strings])), [strict_warn])
|
2015-05-27 18:09:18 +02:00
|
|
|
ACX_PROG_CXX_WARNINGS_ARE_ERRORS([manual], [strict_warn])
|
2007-06-14 10:10:41 +02:00
|
|
|
|
|
|
|
# The above macros do nothing if the compiler is not GCC. However, the
|
configure.ac: Add --enable-build-with-cxx.
./: * configure.ac: Add --enable-build-with-cxx. When set, add c++ to
boot_languages. Only bootstrap target libraries listed in
target_libs for some boot language. Add --with-stage1-ldflags,
--with-stage1-libs, --with-boot-ldflags, --with-boot-libs. Remove
with_host_libstdcxx from ppllibs. Only add -fkeep-inline-functions
if not building with C++.
* Makefile.def: For target_module libstdc++-v3, set bootstrap=true.
* Makefile.tpl (STAGE1_LDFLAGS, STAGE1_LIBS): New variables.
(POSTSTAGE1_LDFLAGS, POSTSTAGE1_LIBS): New variables.
(HOST_EXPORTS): Add STAGE1_LDFLAGS to LDFLAGS. Export HOST_LIBS.
(POSTSTAGE1_HOST_EXPORTS): Set CXX and CXX_FOR_BUILD. Add
POSTSTAGE1_LDFLAGS to LDFLAGS. Export HOST_LIBS.
(POSTSTAGE1_FLAGS_TO_PASS): Likewise.
* configure, Makefile.in: Rebuild.
gcc/:
* configure.ac: Invoke AC_PROG_CXX. Separate C specific warnings
from loose_warn into c_loose_warn and from strict_warn into
c_strict_warn. Set and substitute warn_cxxflags. Check for
--enable-build-with-cxx. Set and substitute
ENABLE_BUILD_WITH_CXX. Set and substitute HOST_LIBS.
* Makefile.in (CXXFLAGS): New variable.
(C_LOOSE_WARN, C_STRICT_WARN): New variables.
(GCC_WARN_CFLAGS): Add $(C_LOOSE_WARN). Add $(C_STRICT_WARN) if
the default is the same as $(STRICT_WARN).
(GCC_WARN_CXXFLAGS, WARN_CXXFLAGS): New variables.
(CXX): New variable.
(COMPILER): New value if ENABLE_BUILD_WITH_CXX.
(COMPILER_FLAGS, LINKER, LINKER_FLAGS): Likewise.
(ALL_COMPILERFLAGS, ALL_LINKERFLAGS): Likewise.
(HOST_LIBS): New variable.
(GCC_CFLAGS): Add $(C_LOOSE_WARN).
(ALL_CXXFLAGS): New variable.
(LIBS, BACKENDLIBS): Add $(HOST_LIBS).
* doc/install.texi (Configuration): Document
--enable-build-with-cxx, --with-stage1-ldflags,
--with-stage1-libs, --with-boot-ldflags, --with-boot-libs.
* configure: Rebuild.
From-SVN: r148889
2009-06-24 06:03:51 +02:00
|
|
|
# Makefile has more goo to add other flags, so these variables are used
|
|
|
|
# to enable warnings only for GCC.
|
Makefile.in (RUN_GEN, [...]): New variables.
* Makefile.in (RUN_GEN, VALGRIND_DRIVER_DEFINES): New variables.
(DRIVER_DEFINES): Add $(VALGRIND_DRIVER_DEFINES).
(executing gencheck, genconfigs, genconditions, genflags,
gencodes, genconstants, genemit, genrecog, genopinit, genextract,
genpeep, genattr, genattrtab, genoutput, gengenrtl, genpreds,
gengtype, genprotos): Prepend $(RUN_GEN).
* configure.in: Move host compiler tests before --enable-checking
tests.
(--enable-checking=valgrind): New.
* config.in, configure: Regenerate.
* cppfiles.c [!ENABLE_VALGRIND_CHECKING] (VALGRIND_DISCARD):
Define as empty.
(read_include_file): When doing the mmap+1 trick,
valgrind-annotate the byte after the mmap:ed area as readable.
(purge_cache): Remove above annotation.
* gcc.c (execute) [ENABLE_VALGRIND_CHECKING]: Arrange to prepend
VALGRIND_PATH -q to each command.
From-SVN: r59309
2002-11-20 20:49:53 +01:00
|
|
|
warn_cflags=
|
configure.ac: Add --enable-build-with-cxx.
./: * configure.ac: Add --enable-build-with-cxx. When set, add c++ to
boot_languages. Only bootstrap target libraries listed in
target_libs for some boot language. Add --with-stage1-ldflags,
--with-stage1-libs, --with-boot-ldflags, --with-boot-libs. Remove
with_host_libstdcxx from ppllibs. Only add -fkeep-inline-functions
if not building with C++.
* Makefile.def: For target_module libstdc++-v3, set bootstrap=true.
* Makefile.tpl (STAGE1_LDFLAGS, STAGE1_LIBS): New variables.
(POSTSTAGE1_LDFLAGS, POSTSTAGE1_LIBS): New variables.
(HOST_EXPORTS): Add STAGE1_LDFLAGS to LDFLAGS. Export HOST_LIBS.
(POSTSTAGE1_HOST_EXPORTS): Set CXX and CXX_FOR_BUILD. Add
POSTSTAGE1_LDFLAGS to LDFLAGS. Export HOST_LIBS.
(POSTSTAGE1_FLAGS_TO_PASS): Likewise.
* configure, Makefile.in: Rebuild.
gcc/:
* configure.ac: Invoke AC_PROG_CXX. Separate C specific warnings
from loose_warn into c_loose_warn and from strict_warn into
c_strict_warn. Set and substitute warn_cxxflags. Check for
--enable-build-with-cxx. Set and substitute
ENABLE_BUILD_WITH_CXX. Set and substitute HOST_LIBS.
* Makefile.in (CXXFLAGS): New variable.
(C_LOOSE_WARN, C_STRICT_WARN): New variables.
(GCC_WARN_CFLAGS): Add $(C_LOOSE_WARN). Add $(C_STRICT_WARN) if
the default is the same as $(STRICT_WARN).
(GCC_WARN_CXXFLAGS, WARN_CXXFLAGS): New variables.
(CXX): New variable.
(COMPILER): New value if ENABLE_BUILD_WITH_CXX.
(COMPILER_FLAGS, LINKER, LINKER_FLAGS): Likewise.
(ALL_COMPILERFLAGS, ALL_LINKERFLAGS): Likewise.
(HOST_LIBS): New variable.
(GCC_CFLAGS): Add $(C_LOOSE_WARN).
(ALL_CXXFLAGS): New variable.
(LIBS, BACKENDLIBS): Add $(HOST_LIBS).
* doc/install.texi (Configuration): Document
--enable-build-with-cxx, --with-stage1-ldflags,
--with-stage1-libs, --with-boot-ldflags, --with-boot-libs.
* configure: Rebuild.
From-SVN: r148889
2009-06-24 06:03:51 +02:00
|
|
|
warn_cxxflags=
|
Makefile.in (RUN_GEN, [...]): New variables.
* Makefile.in (RUN_GEN, VALGRIND_DRIVER_DEFINES): New variables.
(DRIVER_DEFINES): Add $(VALGRIND_DRIVER_DEFINES).
(executing gencheck, genconfigs, genconditions, genflags,
gencodes, genconstants, genemit, genrecog, genopinit, genextract,
genpeep, genattr, genattrtab, genoutput, gengenrtl, genpreds,
gengtype, genprotos): Prepend $(RUN_GEN).
* configure.in: Move host compiler tests before --enable-checking
tests.
(--enable-checking=valgrind): New.
* config.in, configure: Regenerate.
* cppfiles.c [!ENABLE_VALGRIND_CHECKING] (VALGRIND_DISCARD):
Define as empty.
(read_include_file): When doing the mmap+1 trick,
valgrind-annotate the byte after the mmap:ed area as readable.
(purge_cache): Remove above annotation.
* gcc.c (execute) [ENABLE_VALGRIND_CHECKING]: Arrange to prepend
VALGRIND_PATH -q to each command.
From-SVN: r59309
2002-11-20 20:49:53 +01:00
|
|
|
if test "x$GCC" = "xyes"; then
|
|
|
|
warn_cflags='$(GCC_WARN_CFLAGS)'
|
configure.ac: Add --enable-build-with-cxx.
./: * configure.ac: Add --enable-build-with-cxx. When set, add c++ to
boot_languages. Only bootstrap target libraries listed in
target_libs for some boot language. Add --with-stage1-ldflags,
--with-stage1-libs, --with-boot-ldflags, --with-boot-libs. Remove
with_host_libstdcxx from ppllibs. Only add -fkeep-inline-functions
if not building with C++.
* Makefile.def: For target_module libstdc++-v3, set bootstrap=true.
* Makefile.tpl (STAGE1_LDFLAGS, STAGE1_LIBS): New variables.
(POSTSTAGE1_LDFLAGS, POSTSTAGE1_LIBS): New variables.
(HOST_EXPORTS): Add STAGE1_LDFLAGS to LDFLAGS. Export HOST_LIBS.
(POSTSTAGE1_HOST_EXPORTS): Set CXX and CXX_FOR_BUILD. Add
POSTSTAGE1_LDFLAGS to LDFLAGS. Export HOST_LIBS.
(POSTSTAGE1_FLAGS_TO_PASS): Likewise.
* configure, Makefile.in: Rebuild.
gcc/:
* configure.ac: Invoke AC_PROG_CXX. Separate C specific warnings
from loose_warn into c_loose_warn and from strict_warn into
c_strict_warn. Set and substitute warn_cxxflags. Check for
--enable-build-with-cxx. Set and substitute
ENABLE_BUILD_WITH_CXX. Set and substitute HOST_LIBS.
* Makefile.in (CXXFLAGS): New variable.
(C_LOOSE_WARN, C_STRICT_WARN): New variables.
(GCC_WARN_CFLAGS): Add $(C_LOOSE_WARN). Add $(C_STRICT_WARN) if
the default is the same as $(STRICT_WARN).
(GCC_WARN_CXXFLAGS, WARN_CXXFLAGS): New variables.
(CXX): New variable.
(COMPILER): New value if ENABLE_BUILD_WITH_CXX.
(COMPILER_FLAGS, LINKER, LINKER_FLAGS): Likewise.
(ALL_COMPILERFLAGS, ALL_LINKERFLAGS): Likewise.
(HOST_LIBS): New variable.
(GCC_CFLAGS): Add $(C_LOOSE_WARN).
(ALL_CXXFLAGS): New variable.
(LIBS, BACKENDLIBS): Add $(HOST_LIBS).
* doc/install.texi (Configuration): Document
--enable-build-with-cxx, --with-stage1-ldflags,
--with-stage1-libs, --with-boot-ldflags, --with-boot-libs.
* configure: Rebuild.
From-SVN: r148889
2009-06-24 06:03:51 +02:00
|
|
|
warn_cxxflags='$(GCC_WARN_CXXFLAGS)'
|
Makefile.in (RUN_GEN, [...]): New variables.
* Makefile.in (RUN_GEN, VALGRIND_DRIVER_DEFINES): New variables.
(DRIVER_DEFINES): Add $(VALGRIND_DRIVER_DEFINES).
(executing gencheck, genconfigs, genconditions, genflags,
gencodes, genconstants, genemit, genrecog, genopinit, genextract,
genpeep, genattr, genattrtab, genoutput, gengenrtl, genpreds,
gengtype, genprotos): Prepend $(RUN_GEN).
* configure.in: Move host compiler tests before --enable-checking
tests.
(--enable-checking=valgrind): New.
* config.in, configure: Regenerate.
* cppfiles.c [!ENABLE_VALGRIND_CHECKING] (VALGRIND_DISCARD):
Define as empty.
(read_include_file): When doing the mmap+1 trick,
valgrind-annotate the byte after the mmap:ed area as readable.
(purge_cache): Remove above annotation.
* gcc.c (execute) [ENABLE_VALGRIND_CHECKING]: Arrange to prepend
VALGRIND_PATH -q to each command.
From-SVN: r59309
2002-11-20 20:49:53 +01:00
|
|
|
fi
|
|
|
|
AC_SUBST(warn_cflags)
|
configure.ac: Add --enable-build-with-cxx.
./: * configure.ac: Add --enable-build-with-cxx. When set, add c++ to
boot_languages. Only bootstrap target libraries listed in
target_libs for some boot language. Add --with-stage1-ldflags,
--with-stage1-libs, --with-boot-ldflags, --with-boot-libs. Remove
with_host_libstdcxx from ppllibs. Only add -fkeep-inline-functions
if not building with C++.
* Makefile.def: For target_module libstdc++-v3, set bootstrap=true.
* Makefile.tpl (STAGE1_LDFLAGS, STAGE1_LIBS): New variables.
(POSTSTAGE1_LDFLAGS, POSTSTAGE1_LIBS): New variables.
(HOST_EXPORTS): Add STAGE1_LDFLAGS to LDFLAGS. Export HOST_LIBS.
(POSTSTAGE1_HOST_EXPORTS): Set CXX and CXX_FOR_BUILD. Add
POSTSTAGE1_LDFLAGS to LDFLAGS. Export HOST_LIBS.
(POSTSTAGE1_FLAGS_TO_PASS): Likewise.
* configure, Makefile.in: Rebuild.
gcc/:
* configure.ac: Invoke AC_PROG_CXX. Separate C specific warnings
from loose_warn into c_loose_warn and from strict_warn into
c_strict_warn. Set and substitute warn_cxxflags. Check for
--enable-build-with-cxx. Set and substitute
ENABLE_BUILD_WITH_CXX. Set and substitute HOST_LIBS.
* Makefile.in (CXXFLAGS): New variable.
(C_LOOSE_WARN, C_STRICT_WARN): New variables.
(GCC_WARN_CFLAGS): Add $(C_LOOSE_WARN). Add $(C_STRICT_WARN) if
the default is the same as $(STRICT_WARN).
(GCC_WARN_CXXFLAGS, WARN_CXXFLAGS): New variables.
(CXX): New variable.
(COMPILER): New value if ENABLE_BUILD_WITH_CXX.
(COMPILER_FLAGS, LINKER, LINKER_FLAGS): Likewise.
(ALL_COMPILERFLAGS, ALL_LINKERFLAGS): Likewise.
(HOST_LIBS): New variable.
(GCC_CFLAGS): Add $(C_LOOSE_WARN).
(ALL_CXXFLAGS): New variable.
(LIBS, BACKENDLIBS): Add $(HOST_LIBS).
* doc/install.texi (Configuration): Document
--enable-build-with-cxx, --with-stage1-ldflags,
--with-stage1-libs, --with-boot-ldflags, --with-boot-libs.
* configure: Rebuild.
From-SVN: r148889
2009-06-24 06:03:51 +02:00
|
|
|
AC_SUBST(warn_cxxflags)
|
Makefile.in (RUN_GEN, [...]): New variables.
* Makefile.in (RUN_GEN, VALGRIND_DRIVER_DEFINES): New variables.
(DRIVER_DEFINES): Add $(VALGRIND_DRIVER_DEFINES).
(executing gencheck, genconfigs, genconditions, genflags,
gencodes, genconstants, genemit, genrecog, genopinit, genextract,
genpeep, genattr, genattrtab, genoutput, gengenrtl, genpreds,
gengtype, genprotos): Prepend $(RUN_GEN).
* configure.in: Move host compiler tests before --enable-checking
tests.
(--enable-checking=valgrind): New.
* config.in, configure: Regenerate.
* cppfiles.c [!ENABLE_VALGRIND_CHECKING] (VALGRIND_DISCARD):
Define as empty.
(read_include_file): When doing the mmap+1 trick,
valgrind-annotate the byte after the mmap:ed area as readable.
(purge_cache): Remove above annotation.
* gcc.c (execute) [ENABLE_VALGRIND_CHECKING]: Arrange to prepend
VALGRIND_PATH -q to each command.
From-SVN: r59309
2002-11-20 20:49:53 +01:00
|
|
|
|
2011-11-03 18:17:07 +01:00
|
|
|
# Disable exceptions and RTTI if building with g++
|
|
|
|
ACX_PROG_CC_WARNING_OPTS(
|
2012-10-04 07:53:22 +02:00
|
|
|
m4_quote(m4_do([-fno-exceptions -fno-rtti -fasynchronous-unwind-tables])),
|
|
|
|
[noexception_flags])
|
2011-11-03 18:17:07 +01:00
|
|
|
|
configure.ac (strict1_warn): Rename to strict_warn.
2007-01-11 Paolo Bonzini <bonzini@gnu.org>
* configure.ac (strict1_warn): Rename to strict_warn.
(WERROR, --enable-werror, symlink hacks, stage1_cflags,
cc_set_by_configure, quoted_cc_set_by_configure,
stage_prefix_set_by_configure, quoted_stage_prefix_set_by_configure,
all_boot_languages, all_stagestuff): Remove.
(target_list): Remove bootstrap targets.
* Makefile.in (quickstrap): Unconditionally make a synonym of all.
(BOOT_LANGUAGES, STAGE1_CFLAGS, STAGE1_CHECKING,
REMAKEFLAGS, FLAGS_TO_PASS, PREPEND_DOTDOT_TO_RELATIVE_PATHS,
SUBDIR_FLAGS_TO_PASS, WERROR_FLAGS, STRICT2_WARN, LANG_STAGESTUFF,
VOL_FILES, POSTSTAGE1_FLAGS_TO_PASS, STAGE2_FLAGS_TO_PASS,
STAGEPROFILE_FLAGS_TO_PASS, STAGEFEEDBACK_FLAGS_TO_PASS, stage1_build,
stage1_copy, stage2_build, stage2_copy, stageprofile_build,
stageprofile_copy, stage3_build, stage3_copy, stagefeedback_build,
stagefeedback_copy, stage4_build, clean_s1, clean_sw, bootstrap,
bootstrap-lean, bootstrap2, bootstrap2-lean, bootstrap3,
bootstrap3-lean, bootstrap4, bootstrap4-lean, unstage1, unstage2,
unstage3, unstage4, unstageprofile, unstagefeedback, restage, restage2,
restage3, restage4, restageprofile, restagefeedback, bubbleestrap,
cleanstrap, unstrap, restrap, *compare, *compare3, *compare4,
*compare-lean, *compare3-lean, *compare4-lean, stage1-start, stage1,
stage2-start, stage2, stage3-start, stage3, stage4-start, stage4,
stageprofile-start, stageprofile, stagefeedback-start, stagefeedback,
risky-stage1, risky-stage2, risky-stage3, risky-stage4): Remove.
(ORDINARY_FLAGS_TO_PASS): Rename to FLAGS_TO_PASS.
(STAGECOPYSTUFF, STAGEMOVESTUFF): Consolidate into MOSTLYCLEANFILES.
(mostlyclean): Adjust.
(clean, distclean): Don't mention bootstrap stuff.
* configure: Regenerate.
* ada/config-lang.in, cp/config-lang.in, forttran/config-lang.in,
java/config-lang.in, objc/config-lang.in, objcp/config-lang.in,
treelang/config-lang.in (stagestuff): Remove.
* doc/sourcebuild.texi (stage1, stage2, stage3, stage4,
stageprofile, stagefeedback, stagestuff): Remove mention.
From-SVN: r120670
2007-01-11 11:49:30 +01:00
|
|
|
# Enable expensive internal checks
|
gcc-version.m4: Delete.
config:
* gcc-version.m4: Delete.
fastjar:
* Makefile.am (fastjar_TEXINFOS): Add gcc-vers.texi.
(BASEVER, DEVPHASE): New variables.
(POD2MAN): Adjust setting of --release option.
(fastjar.1, grepjar.1, gcc-vers.texi): New rules.
* Makefile.in: Regenerate.
* configure.ac: Do not invoke TL_AC_GCC_VERSION.
* aclocal.m4, configure: Regenerate.
gcc:
* BASE-VER, DATESTAMP, DEV-PHASE: New files.
* Makefile.in (gcc_version, gcc_version_trigger, ): Delete.
(BASEVER, DEVPHASE, DATESTAMP, BASEVER_c, DEVPHASE_c, DATESTAMP_c)
(BASEVER_s, DEVPHASE_s, DATESTAMP_s): New variables.
(version): Define using $(BASEVER_c).
(Makefile, config.status, build/gcov-iov.o): No longer depends on
version.c.
(version.o): Depend on version files; add custom generation command.
(prefix.o): Define BASEVER on command line.
(s-iov): Depend on version files; adjust command.
(TEXI_CPP_FILES, TEX_IGCC_FILES, TEXI_GCCINT_FILES, TEXI_CPPINT_FILES):
Add gcc-vers.texi.
(gcc-vers.texi): New rule.
(doc/%.info, doc/%.dvi): Add -I . to command line.
(doc/gccinstall.dvi): Likewise.
(PACKAGE): Delete. All uses replaced with "gcc".
* aclocal.m4: Do not include gcc-version.m4.
* configure.ac: Do not invoke TL_AC_GCC_VERSION.
Do not AC_SUBST nor AC_DEFINE PACKAGE or VERSION.
Set is_release based on contents of DEV-PHASE.
Set gcc_version based on contents of BASE-VER.
Define WIN32_REGISTRY_KEY only if the user overrode the default.
* config.in, configure: Regenerate.
* gccbug.in: Determine version of GCC in use at runtime.
* gcov-iov.c: Get version number and development phase from
command line, not by including version.c.
* intl.c: Replace all uses of PACKAGE with "gcc".
* libada-mk.in: Delete unused "gcc_version" variable.
* prefix.c: Default WIN32_REGISTRY_KEY to BASEVER.
* version.c: (VERSUFFIX): New hook for redistributors; adjust
commentary to match.
(version_string): Put together from pieces.
* config/alpha/x-vms: Do not use $(gcc_version).
* config/i386/t-nwld: Likewise.
* doc/include/gcc-common.texi: Include gcc-vers.texi for
version-GCC and DEVELOPMENT.
gcc/ada:
* Make-lang.in (doc/gnat_ugn_unw.info, doc/gnat_rm.info)
(doc/gnat_ugn_unw.dvi, doc/gnat_rm.dvi): Add gcc-vers.texi
to dependencies.
gcc/fortran:
* Make-lang.in (GFORTRAN_TEXI): Add gcc-vers.texi.
gcc/java:
* Make-lang.in (TEXI_JAVA_FILES): Add gcc-vers.texi.
gcc/treelang:
* Make-lang.in (TEXI_TREELANG_FILES): Add gcc-vers.texi.
libstdc++-v3:
* include/Makefile.am (c++config.h): Depend on DATESTAMP from gcc
subdirectory. Generate #define of __GLIBCXX__ from contents of
that file.
* include/Makefile.in: Regenerate.
* include/bits/c++config: Do not define __GLIBCXX__.
maintainer-scripts:
* README: Update.
* gcc_release: Update gcc/DEV-PHASE if that file exists, instead
of gcc/version.c.
* update_version: Handle updating gcc/DATESTAMP.
* update_web_docs: Generate gcc-vers.texi first.
From-SVN: r96549
2005-03-16 07:04:10 +01:00
|
|
|
is_release=
|
|
|
|
if test x"`cat $srcdir/DEV-PHASE`" != xexperimental; then
|
|
|
|
is_release=yes
|
|
|
|
fi
|
2003-01-21 14:45:16 +01:00
|
|
|
|
1998-05-13 13:57:25 +02:00
|
|
|
AC_ARG_ENABLE(checking,
|
2011-05-13 10:09:25 +02:00
|
|
|
[AS_HELP_STRING([[--enable-checking[=LIST]]],
|
|
|
|
[enable expensive run-time checks. With LIST,
|
|
|
|
enable only specific categories of checks.
|
|
|
|
Categories are: yes,no,all,none,release.
|
|
|
|
Flags are: assert,df,fold,gc,gcac,gimple,misc,
|
|
|
|
rtlflag,rtl,runtime,tree,valgrind,types])],
|
2004-09-07 11:56:31 +02:00
|
|
|
[ac_checking_flags="${enableval}"],[
|
|
|
|
# Determine the default checks.
|
|
|
|
if test x$is_release = x ; then
|
|
|
|
ac_checking_flags=yes
|
|
|
|
else
|
|
|
|
ac_checking_flags=release
|
|
|
|
fi])
|
|
|
|
IFS="${IFS= }"; ac_save_IFS="$IFS"; IFS="$IFS,"
|
2007-06-14 15:27:32 +02:00
|
|
|
for check in release $ac_checking_flags
|
2004-09-07 11:56:31 +02:00
|
|
|
do
|
|
|
|
case $check in
|
2005-04-01 15:58:20 +02:00
|
|
|
# these set all the flags to specific states
|
2007-08-05 18:04:12 +02:00
|
|
|
yes) ac_assert_checking=1 ; ac_checking=1 ; ac_df_checking= ;
|
2005-04-01 15:58:20 +02:00
|
|
|
ac_fold_checking= ; ac_gc_checking=1 ;
|
2008-07-28 16:33:56 +02:00
|
|
|
ac_gc_always_collect= ; ac_gimple_checking=1 ; ac_rtl_checking= ;
|
2005-05-08 12:13:19 +02:00
|
|
|
ac_rtlflag_checking=1 ; ac_runtime_checking=1 ;
|
2007-07-26 12:27:50 +02:00
|
|
|
ac_tree_checking=1 ; ac_valgrind_checking= ;
|
2008-03-24 16:08:52 +01:00
|
|
|
ac_types_checking=1 ;;
|
2007-06-14 09:51:58 +02:00
|
|
|
no|none) ac_assert_checking= ; ac_checking= ; ac_df_checking= ;
|
2005-04-01 15:58:20 +02:00
|
|
|
ac_fold_checking= ; ac_gc_checking= ;
|
2008-07-28 16:33:56 +02:00
|
|
|
ac_gc_always_collect= ; ac_gimple_checking= ; ac_rtl_checking= ;
|
2005-05-08 12:13:19 +02:00
|
|
|
ac_rtlflag_checking= ; ac_runtime_checking= ;
|
2007-07-26 12:27:50 +02:00
|
|
|
ac_tree_checking= ; ac_valgrind_checking= ;
|
|
|
|
ac_types_checking= ;;
|
2007-06-14 09:51:58 +02:00
|
|
|
all) ac_assert_checking=1 ; ac_checking=1 ; ac_df_checking=1 ;
|
2005-04-01 15:58:20 +02:00
|
|
|
ac_fold_checking=1 ; ac_gc_checking=1 ;
|
2008-07-28 16:33:56 +02:00
|
|
|
ac_gc_always_collect=1 ; ac_gimple_checking=1 ; ac_rtl_checking=1 ;
|
2005-04-01 15:58:20 +02:00
|
|
|
ac_rtlflag_checking=1 ; ac_runtime_checking=1 ;
|
2007-07-26 12:27:50 +02:00
|
|
|
ac_tree_checking=1 ; ac_valgrind_checking= ;
|
|
|
|
ac_types_checking=1 ;;
|
2007-06-14 09:51:58 +02:00
|
|
|
release) ac_assert_checking=1 ; ac_checking= ; ac_df_checking= ;
|
2005-04-01 15:58:20 +02:00
|
|
|
ac_fold_checking= ; ac_gc_checking= ;
|
2008-07-28 16:33:56 +02:00
|
|
|
ac_gc_always_collect= ; ac_gimple_checking= ; ac_rtl_checking= ;
|
2005-04-01 15:58:20 +02:00
|
|
|
ac_rtlflag_checking= ; ac_runtime_checking=1 ;
|
2007-07-26 12:27:50 +02:00
|
|
|
ac_tree_checking= ; ac_valgrind_checking= ;
|
|
|
|
ac_types_checking= ;;
|
2005-04-01 15:58:20 +02:00
|
|
|
# these enable particular checks
|
2004-09-07 11:56:31 +02:00
|
|
|
assert) ac_assert_checking=1 ;;
|
2007-06-14 09:51:58 +02:00
|
|
|
df) ac_df_checking=1 ;;
|
2004-09-07 11:56:31 +02:00
|
|
|
fold) ac_fold_checking=1 ;;
|
|
|
|
gc) ac_gc_checking=1 ;;
|
|
|
|
gcac) ac_gc_always_collect=1 ;;
|
2008-07-28 16:33:56 +02:00
|
|
|
gimple) ac_gimple_checking=1 ;;
|
2004-09-07 11:56:31 +02:00
|
|
|
misc) ac_checking=1 ;;
|
|
|
|
rtl) ac_rtl_checking=1 ;;
|
2005-04-01 15:58:20 +02:00
|
|
|
rtlflag) ac_rtlflag_checking=1 ;;
|
2005-03-24 15:09:06 +01:00
|
|
|
runtime) ac_runtime_checking=1 ;;
|
2004-09-07 11:56:31 +02:00
|
|
|
tree) ac_tree_checking=1 ;;
|
2007-07-26 12:27:50 +02:00
|
|
|
types) ac_types_checking=1 ;;
|
2005-04-01 15:58:20 +02:00
|
|
|
valgrind) ac_valgrind_checking=1 ;;
|
2004-09-07 11:56:31 +02:00
|
|
|
*) AC_MSG_ERROR(unknown check category $check) ;;
|
|
|
|
esac
|
|
|
|
done
|
|
|
|
IFS="$ac_save_IFS"
|
|
|
|
|
2002-08-15 23:45:47 +02:00
|
|
|
nocommon_flag=""
|
acconfig.h (ENABLE_STD_NAMESPACE, [...]): Delete entries.
* acconfig.h (ENABLE_STD_NAMESPACE, ENABLE_CHECKING,
ENABLE_TREE_CHECKING, ENABLE_RTL_CHECKING, ENABLE_GC_CHECKING,
ENABLE_GC_ALWAYS_COLLECT): Delete entries.
* configure.in (ENABLE_STD_NAMESPACE, ENABLE_CHECKING,
ENABLE_TREE_CHECKING, ENABLE_RTL_CHECKING, ENABLE_GC_CHECKING,
ENABLE_GC_ALWAYS_COLLECT): Use three argument form of AC_DEFINE
for these macros. Clean up spacing and linewraps.
From-SVN: r33420
2000-04-25 22:30:16 +02:00
|
|
|
if test x$ac_checking != x ; then
|
2015-10-21 23:16:31 +02:00
|
|
|
AC_DEFINE(CHECKING_P, 1,
|
|
|
|
[Define to 1 if you want more run-time sanity checks. This one gets a grab
|
|
|
|
bag of miscellaneous but relatively cheap checks.])
|
2002-08-15 23:45:47 +02:00
|
|
|
nocommon_flag=-fno-common
|
2015-10-21 23:16:31 +02:00
|
|
|
else
|
|
|
|
AC_DEFINE(CHECKING_P, 0)
|
acconfig.h (ENABLE_STD_NAMESPACE, [...]): Delete entries.
* acconfig.h (ENABLE_STD_NAMESPACE, ENABLE_CHECKING,
ENABLE_TREE_CHECKING, ENABLE_RTL_CHECKING, ENABLE_GC_CHECKING,
ENABLE_GC_ALWAYS_COLLECT): Delete entries.
* configure.in (ENABLE_STD_NAMESPACE, ENABLE_CHECKING,
ENABLE_TREE_CHECKING, ENABLE_RTL_CHECKING, ENABLE_GC_CHECKING,
ENABLE_GC_ALWAYS_COLLECT): Use three argument form of AC_DEFINE
for these macros. Clean up spacing and linewraps.
From-SVN: r33420
2000-04-25 22:30:16 +02:00
|
|
|
fi
|
2002-08-15 23:45:47 +02:00
|
|
|
AC_SUBST(nocommon_flag)
|
2007-06-14 09:51:58 +02:00
|
|
|
if test x$ac_df_checking != x ; then
|
|
|
|
AC_DEFINE(ENABLE_DF_CHECKING, 1,
|
|
|
|
[Define if you want more run-time sanity checks for dataflow.])
|
|
|
|
fi
|
2004-08-27 18:20:45 +02:00
|
|
|
if test x$ac_assert_checking != x ; then
|
|
|
|
AC_DEFINE(ENABLE_ASSERT_CHECKING, 1,
|
|
|
|
[Define if you want assertions enabled. This is a cheap check.])
|
|
|
|
fi
|
2008-07-28 16:33:56 +02:00
|
|
|
if test x$ac_gimple_checking != x ; then
|
|
|
|
AC_DEFINE(ENABLE_GIMPLE_CHECKING, 1,
|
|
|
|
[Define if you want operations on GIMPLE (the basic data structure of
|
|
|
|
the high-level optimizers) to be checked for dynamic type safety at
|
|
|
|
runtime. This is moderately expensive.])
|
|
|
|
fi
|
2005-05-08 12:13:19 +02:00
|
|
|
GCC_TARGET_TEMPLATE(ENABLE_RUNTIME_CHECKING)
|
2005-03-24 15:09:06 +01:00
|
|
|
if test x$ac_runtime_checking != x ; then
|
|
|
|
AC_DEFINE(ENABLE_RUNTIME_CHECKING, 1,
|
|
|
|
[Define if you want runtime assertions enabled. This is a cheap check.])
|
|
|
|
fi
|
acconfig.h (ENABLE_STD_NAMESPACE, [...]): Delete entries.
* acconfig.h (ENABLE_STD_NAMESPACE, ENABLE_CHECKING,
ENABLE_TREE_CHECKING, ENABLE_RTL_CHECKING, ENABLE_GC_CHECKING,
ENABLE_GC_ALWAYS_COLLECT): Delete entries.
* configure.in (ENABLE_STD_NAMESPACE, ENABLE_CHECKING,
ENABLE_TREE_CHECKING, ENABLE_RTL_CHECKING, ENABLE_GC_CHECKING,
ENABLE_GC_ALWAYS_COLLECT): Use three argument form of AC_DEFINE
for these macros. Clean up spacing and linewraps.
From-SVN: r33420
2000-04-25 22:30:16 +02:00
|
|
|
if test x$ac_tree_checking != x ; then
|
|
|
|
AC_DEFINE(ENABLE_TREE_CHECKING, 1,
|
|
|
|
[Define if you want all operations on trees (the basic data
|
|
|
|
structure of the front ends) to be checked for dynamic type safety
|
2015-07-25 11:29:11 +02:00
|
|
|
at runtime. This is moderately expensive.
|
2004-05-27 21:47:36 +02:00
|
|
|
])
|
2013-01-11 12:46:21 +01:00
|
|
|
TREECHECKING=yes
|
acconfig.h (ENABLE_STD_NAMESPACE, [...]): Delete entries.
* acconfig.h (ENABLE_STD_NAMESPACE, ENABLE_CHECKING,
ENABLE_TREE_CHECKING, ENABLE_RTL_CHECKING, ENABLE_GC_CHECKING,
ENABLE_GC_ALWAYS_COLLECT): Delete entries.
* configure.in (ENABLE_STD_NAMESPACE, ENABLE_CHECKING,
ENABLE_TREE_CHECKING, ENABLE_RTL_CHECKING, ENABLE_GC_CHECKING,
ENABLE_GC_ALWAYS_COLLECT): Use three argument form of AC_DEFINE
for these macros. Clean up spacing and linewraps.
From-SVN: r33420
2000-04-25 22:30:16 +02:00
|
|
|
fi
|
2007-07-26 12:27:50 +02:00
|
|
|
if test x$ac_types_checking != x ; then
|
|
|
|
AC_DEFINE(ENABLE_TYPES_CHECKING, 1,
|
|
|
|
[Define if you want all gimple types to be verified after gimplifiation.
|
|
|
|
This is cheap.
|
|
|
|
])
|
|
|
|
fi
|
2013-01-11 12:46:21 +01:00
|
|
|
AC_SUBST(TREECHECKING)
|
acconfig.h (ENABLE_STD_NAMESPACE, [...]): Delete entries.
* acconfig.h (ENABLE_STD_NAMESPACE, ENABLE_CHECKING,
ENABLE_TREE_CHECKING, ENABLE_RTL_CHECKING, ENABLE_GC_CHECKING,
ENABLE_GC_ALWAYS_COLLECT): Delete entries.
* configure.in (ENABLE_STD_NAMESPACE, ENABLE_CHECKING,
ENABLE_TREE_CHECKING, ENABLE_RTL_CHECKING, ENABLE_GC_CHECKING,
ENABLE_GC_ALWAYS_COLLECT): Use three argument form of AC_DEFINE
for these macros. Clean up spacing and linewraps.
From-SVN: r33420
2000-04-25 22:30:16 +02:00
|
|
|
if test x$ac_rtl_checking != x ; then
|
|
|
|
AC_DEFINE(ENABLE_RTL_CHECKING, 1,
|
|
|
|
[Define if you want all operations on RTL (the basic data structure
|
|
|
|
of the optimizer and back end) to be checked for dynamic type safety
|
|
|
|
at runtime. This is quite expensive.])
|
|
|
|
fi
|
2002-05-08 00:52:19 +02:00
|
|
|
if test x$ac_rtlflag_checking != x ; then
|
|
|
|
AC_DEFINE(ENABLE_RTL_FLAG_CHECKING, 1,
|
|
|
|
[Define if you want RTL flag accesses to be checked against the RTL
|
|
|
|
codes that are supported for each access macro. This is relatively
|
|
|
|
cheap.])
|
|
|
|
fi
|
acconfig.h (ENABLE_STD_NAMESPACE, [...]): Delete entries.
* acconfig.h (ENABLE_STD_NAMESPACE, ENABLE_CHECKING,
ENABLE_TREE_CHECKING, ENABLE_RTL_CHECKING, ENABLE_GC_CHECKING,
ENABLE_GC_ALWAYS_COLLECT): Delete entries.
* configure.in (ENABLE_STD_NAMESPACE, ENABLE_CHECKING,
ENABLE_TREE_CHECKING, ENABLE_RTL_CHECKING, ENABLE_GC_CHECKING,
ENABLE_GC_ALWAYS_COLLECT): Use three argument form of AC_DEFINE
for these macros. Clean up spacing and linewraps.
From-SVN: r33420
2000-04-25 22:30:16 +02:00
|
|
|
if test x$ac_gc_checking != x ; then
|
|
|
|
AC_DEFINE(ENABLE_GC_CHECKING, 1,
|
|
|
|
[Define if you want the garbage collector to do object poisoning and
|
|
|
|
other memory allocation checks. This is quite expensive.])
|
|
|
|
fi
|
|
|
|
if test x$ac_gc_always_collect != x ; then
|
|
|
|
AC_DEFINE(ENABLE_GC_ALWAYS_COLLECT, 1,
|
|
|
|
[Define if you want the garbage collector to operate in maximally
|
|
|
|
paranoid mode, validating the entire heap and collecting garbage at
|
|
|
|
every opportunity. This is extremely expensive.])
|
|
|
|
fi
|
2003-07-28 17:42:24 +02:00
|
|
|
if test x$ac_fold_checking != x ; then
|
|
|
|
AC_DEFINE(ENABLE_FOLD_CHECKING, 1,
|
|
|
|
[Define if you want fold checked that it never destructs its argument.
|
|
|
|
This is quite expensive.])
|
|
|
|
fi
|
Makefile.in (RUN_GEN, [...]): New variables.
* Makefile.in (RUN_GEN, VALGRIND_DRIVER_DEFINES): New variables.
(DRIVER_DEFINES): Add $(VALGRIND_DRIVER_DEFINES).
(executing gencheck, genconfigs, genconditions, genflags,
gencodes, genconstants, genemit, genrecog, genopinit, genextract,
genpeep, genattr, genattrtab, genoutput, gengenrtl, genpreds,
gengtype, genprotos): Prepend $(RUN_GEN).
* configure.in: Move host compiler tests before --enable-checking
tests.
(--enable-checking=valgrind): New.
* config.in, configure: Regenerate.
* cppfiles.c [!ENABLE_VALGRIND_CHECKING] (VALGRIND_DISCARD):
Define as empty.
(read_include_file): When doing the mmap+1 trick,
valgrind-annotate the byte after the mmap:ed area as readable.
(purge_cache): Remove above annotation.
* gcc.c (execute) [ENABLE_VALGRIND_CHECKING]: Arrange to prepend
VALGRIND_PATH -q to each command.
From-SVN: r59309
2002-11-20 20:49:53 +01:00
|
|
|
valgrind_path_defines=
|
|
|
|
valgrind_command=
|
2003-12-04 19:46:11 +01:00
|
|
|
|
|
|
|
dnl # This check AC_REQUIREs various stuff, so it *must not* be inside
|
|
|
|
dnl # an if statement. This was the source of very frustrating bugs
|
|
|
|
dnl # in converting to autoconf 2.5x!
|
|
|
|
AC_CHECK_HEADER(valgrind.h, have_valgrind_h=yes, have_valgrind_h=no)
|
|
|
|
|
2014-04-28 16:01:40 +02:00
|
|
|
# It is certainly possible that there's valgrind but no valgrind.h.
|
|
|
|
# GCC relies on making annotations so we must have both.
|
|
|
|
AC_MSG_CHECKING(for VALGRIND_DISCARD in <valgrind/memcheck.h>)
|
|
|
|
AC_PREPROC_IFELSE([AC_LANG_SOURCE(
|
|
|
|
[[#include <valgrind/memcheck.h>
|
2003-10-29 23:13:59 +01:00
|
|
|
#ifndef VALGRIND_DISCARD
|
|
|
|
#error VALGRIND_DISCARD not defined
|
2005-07-06 03:56:56 +02:00
|
|
|
#endif]])],
|
2003-10-29 23:13:59 +01:00
|
|
|
[gcc_cv_header_valgrind_memcheck_h=yes],
|
|
|
|
[gcc_cv_header_valgrind_memcheck_h=no])
|
2014-04-28 16:01:40 +02:00
|
|
|
AC_MSG_RESULT($gcc_cv_header_valgrind_memcheck_h)
|
|
|
|
AC_MSG_CHECKING(for VALGRIND_DISCARD in <memcheck.h>)
|
|
|
|
AC_PREPROC_IFELSE([AC_LANG_SOURCE(
|
|
|
|
[[#include <memcheck.h>
|
2003-03-04 18:51:00 +01:00
|
|
|
#ifndef VALGRIND_DISCARD
|
|
|
|
#error VALGRIND_DISCARD not defined
|
2005-07-06 03:56:56 +02:00
|
|
|
#endif]])],
|
|
|
|
[gcc_cv_header_memcheck_h=yes],
|
|
|
|
[gcc_cv_header_memcheck_h=no])
|
2014-04-28 16:01:40 +02:00
|
|
|
AC_MSG_RESULT($gcc_cv_header_memcheck_h)
|
|
|
|
if test $gcc_cv_header_valgrind_memcheck_h = yes; then
|
|
|
|
AC_DEFINE(HAVE_VALGRIND_MEMCHECK_H, 1,
|
|
|
|
[Define if valgrind's valgrind/memcheck.h header is installed.])
|
|
|
|
fi
|
|
|
|
if test $gcc_cv_header_memcheck_h = yes; then
|
|
|
|
AC_DEFINE(HAVE_MEMCHECK_H, 1,
|
|
|
|
[Define if valgrind's memcheck.h header is installed.])
|
|
|
|
fi
|
|
|
|
|
|
|
|
if test x$ac_valgrind_checking != x ; then
|
Makefile.in (RUN_GEN, [...]): New variables.
* Makefile.in (RUN_GEN, VALGRIND_DRIVER_DEFINES): New variables.
(DRIVER_DEFINES): Add $(VALGRIND_DRIVER_DEFINES).
(executing gencheck, genconfigs, genconditions, genflags,
gencodes, genconstants, genemit, genrecog, genopinit, genextract,
genpeep, genattr, genattrtab, genoutput, gengenrtl, genpreds,
gengtype, genprotos): Prepend $(RUN_GEN).
* configure.in: Move host compiler tests before --enable-checking
tests.
(--enable-checking=valgrind): New.
* config.in, configure: Regenerate.
* cppfiles.c [!ENABLE_VALGRIND_CHECKING] (VALGRIND_DISCARD):
Define as empty.
(read_include_file): When doing the mmap+1 trick,
valgrind-annotate the byte after the mmap:ed area as readable.
(purge_cache): Remove above annotation.
* gcc.c (execute) [ENABLE_VALGRIND_CHECKING]: Arrange to prepend
VALGRIND_PATH -q to each command.
From-SVN: r59309
2002-11-20 20:49:53 +01:00
|
|
|
AM_PATH_PROG_WITH_TEST(valgrind_path, valgrind,
|
|
|
|
[$ac_dir/$ac_word --version | grep valgrind- >/dev/null 2>&1])
|
2003-10-29 23:13:59 +01:00
|
|
|
if test "x$valgrind_path" = "x" \
|
|
|
|
|| (test $have_valgrind_h = no \
|
|
|
|
&& test $gcc_cv_header_memcheck_h = no \
|
|
|
|
&& test $gcc_cv_header_valgrind_memcheck_h = no); then
|
|
|
|
AC_MSG_ERROR([*** Can't find both valgrind and valgrind/memcheck.h, memcheck.h or valgrind.h])
|
Makefile.in (RUN_GEN, [...]): New variables.
* Makefile.in (RUN_GEN, VALGRIND_DRIVER_DEFINES): New variables.
(DRIVER_DEFINES): Add $(VALGRIND_DRIVER_DEFINES).
(executing gencheck, genconfigs, genconditions, genflags,
gencodes, genconstants, genemit, genrecog, genopinit, genextract,
genpeep, genattr, genattrtab, genoutput, gengenrtl, genpreds,
gengtype, genprotos): Prepend $(RUN_GEN).
* configure.in: Move host compiler tests before --enable-checking
tests.
(--enable-checking=valgrind): New.
* config.in, configure: Regenerate.
* cppfiles.c [!ENABLE_VALGRIND_CHECKING] (VALGRIND_DISCARD):
Define as empty.
(read_include_file): When doing the mmap+1 trick,
valgrind-annotate the byte after the mmap:ed area as readable.
(purge_cache): Remove above annotation.
* gcc.c (execute) [ENABLE_VALGRIND_CHECKING]: Arrange to prepend
VALGRIND_PATH -q to each command.
From-SVN: r59309
2002-11-20 20:49:53 +01:00
|
|
|
fi
|
|
|
|
valgrind_path_defines=-DVALGRIND_PATH='\"'$valgrind_path'\"'
|
|
|
|
valgrind_command="$valgrind_path -q"
|
|
|
|
AC_DEFINE(ENABLE_VALGRIND_CHECKING, 1,
|
|
|
|
[Define if you want to run subprograms and generated programs
|
|
|
|
through valgrind (a memory checker). This is extremely expensive.])
|
|
|
|
fi
|
|
|
|
AC_SUBST(valgrind_path_defines)
|
|
|
|
AC_SUBST(valgrind_command)
|
2000-06-14 05:06:30 +02:00
|
|
|
|
2002-08-08 11:10:39 +02:00
|
|
|
# Enable code coverage collection
|
|
|
|
AC_ARG_ENABLE(coverage,
|
2011-05-13 10:09:25 +02:00
|
|
|
[AS_HELP_STRING([[--enable-coverage[=LEVEL]]],
|
|
|
|
[enable compiler's code coverage collection.
|
|
|
|
Use to measure compiler performance and locate
|
|
|
|
unused parts of the compiler. With LEVEL, specify
|
|
|
|
optimization. Values are opt, noopt,
|
|
|
|
default is noopt])],
|
2002-08-08 11:10:39 +02:00
|
|
|
[case "${enableval}" in
|
2004-03-22 10:49:36 +01:00
|
|
|
yes|noopt)
|
|
|
|
coverage_flags="-fprofile-arcs -ftest-coverage -frandom-seed=\$@ -O0"
|
|
|
|
;;
|
|
|
|
opt)
|
|
|
|
coverage_flags="-fprofile-arcs -ftest-coverage -frandom-seed=\$@ -O2"
|
|
|
|
;;
|
|
|
|
no)
|
|
|
|
# a.k.a. --disable-coverage
|
|
|
|
coverage_flags=""
|
|
|
|
;;
|
|
|
|
*)
|
|
|
|
AC_MSG_ERROR(unknown coverage setting $enableval)
|
|
|
|
;;
|
2002-08-08 11:10:39 +02:00
|
|
|
esac],
|
2002-08-09 10:51:27 +02:00
|
|
|
[coverage_flags=""])
|
2002-08-08 11:10:39 +02:00
|
|
|
AC_SUBST(coverage_flags)
|
|
|
|
|
2003-12-22 08:42:43 +01:00
|
|
|
AC_ARG_ENABLE(gather-detailed-mem-stats,
|
2011-05-13 10:09:25 +02:00
|
|
|
[AS_HELP_STRING([--enable-gather-detailed-mem-stats],
|
|
|
|
[enable detailed memory allocation stats gathering])], [],
|
2003-12-22 08:42:43 +01:00
|
|
|
[enable_gather_detailed_mem_stats=no])
|
sbitmap.h (SBITMAP_ELT_BITS): Use "1u" trick as for BITMAP_WORD_BITS.
gcc/
* sbitmap.h (SBITMAP_ELT_BITS): Use "1u" trick as for BITMAP_WORD_BITS.
Move test to check that there is a popcount function for the the number
of bits in SBITMAP_ELT_BITS to sbitmap.c.
* sbitmap.c: Test SBITMAP_ELT_BITS, not HOST_BITS_PER_WIDEST_FAST_INT.
MEM_STAT_INFO): Define in terms of their ALONE counterparts.
* configure.ac (GATHER_STATISTICS): Always define, non-zero if enabled.
* configure: Regenerate.
* statistics.h (GATHER_STATISTICS): Error out if it is not defined.
(GCC_MEM_STAT_ARGUMENTS): New define.
(ALONE_MEM_STAT_DECL): Define in terms of GCC_MEM_STAT_ARGUMENTS.
(ALONE_FINAL_MEM_STAT_DECL, ALONE_FINAL_PASS_MEM_STAT): New defines.
(MEM_STAT_DECL, FINAL_MEM_STAT_DECL, PASS_MEM_STAT, FINAL_PASS_MEM_STAT,
* ggc-internal.h (ggc_record_overhead): Use FINAL_MEM_STAT_DECL.
* ggc.h (ggc_record_overhead, ggc_free_overhead,
ggc_prune_overhead_list): Remove internal prototypes, they are defined
already in ggc-internal.h.
* ggc-common.c (struct loc_descriptor): Remove #ifdef GATHER_STATISTICS
wrappers.
(add_statistics): Likewise.
(dump_ggc_loc_statistics): Likewise. Return if GATHER_STATISTICS is 0.
* ggc-zone.c (struct page_entry): Remove #ifdef GATHER_STATISTICS
wrappers around "survived" and "stats" members.
(alloc_large_page): Always initialize survived.
(ggc_internal_alloc_zone_stat): Likewise.
Remove #ifdef GATHER_STATISTICS wrappers. Record overhead if
GATHER_STATISTICS is non-0.
(ggc_free): Convert #ifdef GATHER_STATISTICS to if-code.
(sweep_pages): Always increase survived.
(ggc_collect_1): Convert #ifdef GATHER_STATISTICS to if-code.
(calculate_average_page_survival): Always define.
(ggc_collect): Convert #ifdef GATHER_STATISTICS to if-code.
(ggc_print_statistics): Likewise.
(ggc_pch_read): Likewise.
* ggc-page.c (struct globals): Always define "stats" member.
(ggc_internal_alloc_stat): Convert #ifdef GATHER_STATISTICS to if-code.
(ggc_free): Likewise.
(ggc_collec): Likewise.
(ggc_print_statistics): Likewise.
* bitmap.h (struct bitmap_head_def): Always define "desc" member.
(bitmap_initialize_stat): Convert #ifdef GATHER_STATISTICS to if-code.
* gimple.h (enum gimple_alloc_kind): Always define.
(gimple_alloc_kind): Likewise.
* tree-flow.h (phinodes_print_statistics): Always define.
(ssanames_print_statistics): Likewise.
* vec.h (vec_heap_free): Always define.
(VEC_stack_alloc): Define if GATHER_STATISTICS is non-0.
* alloc-pool.c (alloc_pool_descriptor): Always define.
(create_alloc_pool): Convert #ifdef GATHER_STATISTICS to if-code.
(empty_alloc_pool): Likewise.
(pool_alloc): Likewise.
(pool_free): Likewise.
(dump_alloc_pool_statistics): Likewise.
(print_statistics): Always define.
* bitmap.c (struct bitmap_descriptor): Always define.
(bitmap_register): Pass ALONE_FINAL_PASS_MEM_STAT.
(register_overhead): Always define.
(bitmap_element_free): Convert #ifdef GATHER_STATISTICS to if-code.
(bitmap_element_allocate): Likewise.
(bitmap_elt_clear_from): Likewise.
(bitmap_obstack_alloc_stat): Likewise.
(bitmap_gc_alloc_stat): Likewise.
(bitmap_obstack_free): Likewise.
(bitmap_find_bit): Likewise.
(bitmap_ior_and_into): Likewise.
(bitmap_print): Likewise.
(dump_bitmap_statistics): Likewise. Return if GATHER_STATISTICS is 0.
* gimple.c (gimple_alloc_counts, gimple_alloc_sizes): Always define.
(gimple_alloc_kind_names): Likewise.
(gimple_alloc_stat): Convert #ifdef GATHER_STATISTICS to if-code.
(dump_gimple_statistics): Likewise. Return if GATHER_STATISTICS is 0.
* rtl.c (rtx_alloc_counts, rtx_alloc_sizes, rtvec_alloc_counts,
rtvec_alloc_sizes): Always define.
(rvec_alloc): Convert #ifdef GATHER_STATISTICS to if-code.
(rtx_alloc_stat): Likewise.
(dump_rtx_statistics): Likewise. Return if GATHER_STATISTICS is 0.
* tree.c (_obstack_allocated_p, tree_code_counts, tree_node_counts,
tree_node_sizes, tree_node_kind_names): Always define.
(record_node_allocation_statistics): Convert #ifdef GATHER_STATISTICS
to if-code.
(type_hash_canon): Likewise.
(dump_tree_statistics): Likewise.
* tree-ssanames.c (ssa_name_nodes_reused, ssa_name_nodes_created):
Always define.
(ssanames_print_statistics): Likewise.
(make_ssa_name_fn): Convert #ifdef GATHER_STATISTICS to if-code.
* tree-phinodes.c (phi_nodes_reused, phi_nodes_created): Always define.
(phinodes_print_statistics): Likewise.
(allocate_phi_node): Convert #ifdef GATHER_STATISTICS to if-code.
* vec.c (struct vec_descriptor): Always define.
(hash_descriptor, eq_descriptor, ptr_hash_entry, hash_ptr, eq_ptr,
vec_descriptor, rester_overhead, free_overhead): Likewise.
(cmp_statistic): Likewise.
(vec_heap_free): Convert #ifdef GATHER_STATISTICS to if-code.
(vec_heap_o_reserve_1): Likewise.
(dump_vec_loc_statistics): Likewise.
cp/
* cp/class.c (n_vtables, n_vtable_entries, n_vtable_searches,
n_vtable_elems, n_convert_harshness, n_compute_conversion_costs,
n_inner_fields_searched): Always define.
(build_primary_vtable): Convert #ifdef GATHER_STATISTICS to if-code.
(print_class_statistics): Convert #ifdef GATHER_STATISTICS to if-code.
* cp/tree.c (depth_reached): Always define global.
(cxx_print_statistics): Convert #ifdef GATHER_STATISTICS to if-code.
* cp/pt.c (depth_reached): Always define.
(push_tinst_level): Convert #ifdef GATHER_STATISTICS to if-code.
* cp/search.c (n_fields_searched, n_calls_lookup_field,
n_calls_lookup_field_1, n_calls_lookup_fnfields,
n_calls_lookup_fnfields_1, n_calls_get_base_type,
n_outer_fields_searched, n_contexts_saved): Always define.
(lookup_field_1): Convert #ifdef GATHER_STATISTICS to if-code.
(lookup_member): Likewise.
(lookup_fnfields_idx_nolazy): Likewise.
(print_search_statistics): Likewise.
(reinit_search_statistics): Unconditionally re-set counters.
* cp/lex.c (retrofit_lang_decl): Convert #ifdef GATHER_STATISTICS
to if-code.
(cxx_dup_lang_specific_decl): Likewise.
(copy_lang_type): Likewise.
(cxx_make_type): Likewise.
From-SVN: r189803
2012-07-24 11:49:56 +02:00
|
|
|
gather_stats=`if test $enable_gather_detailed_mem_stats != no; then echo 1; else echo 0; fi`
|
|
|
|
AC_DEFINE_UNQUOTED(GATHER_STATISTICS, $gather_stats,
|
|
|
|
[Define to enable detailed memory allocation stats gathering.])
|
2003-12-22 08:42:43 +01:00
|
|
|
|
2014-04-28 16:01:40 +02:00
|
|
|
AC_ARG_ENABLE(valgrind-annotations,
|
|
|
|
[AS_HELP_STRING([--enable-valgrind-annotations],
|
|
|
|
[enable valgrind runtime interaction])], [],
|
|
|
|
[enable_valgrind_annotations=no])
|
|
|
|
if test x$enable_valgrind_annotations != xno \
|
|
|
|
|| test x$ac_valgrind_checking != x; then
|
|
|
|
if (test $have_valgrind_h = no \
|
|
|
|
&& test $gcc_cv_header_memcheck_h = no \
|
|
|
|
&& test $gcc_cv_header_valgrind_memcheck_h = no); then
|
|
|
|
AC_MSG_ERROR([*** Can't find valgrind/memcheck.h, memcheck.h or valgrind.h])
|
|
|
|
fi
|
|
|
|
AC_DEFINE(ENABLE_VALGRIND_ANNOTATIONS, 1,
|
|
|
|
[Define to get calls to the valgrind runtime enabled.])
|
|
|
|
fi
|
|
|
|
|
2003-03-12 21:41:00 +01:00
|
|
|
# -------------------------------
|
|
|
|
# Miscenalleous configure options
|
|
|
|
# -------------------------------
|
2003-03-04 08:41:00 +01:00
|
|
|
|
|
|
|
# With stabs
|
|
|
|
AC_ARG_WITH(stabs,
|
2011-05-13 10:09:25 +02:00
|
|
|
[AS_HELP_STRING([--with-stabs],
|
|
|
|
[arrange to use stabs instead of host debug format])],
|
2003-03-04 08:41:00 +01:00
|
|
|
stabs="$with_stabs",
|
|
|
|
stabs=no)
|
|
|
|
|
|
|
|
# Determine whether or not multilibs are enabled.
|
|
|
|
AC_ARG_ENABLE(multilib,
|
2011-05-13 10:09:25 +02:00
|
|
|
[AS_HELP_STRING([--enable-multilib],
|
|
|
|
[enable library support for multiple ABIs])],
|
2003-03-04 08:41:00 +01:00
|
|
|
[], [enable_multilib=yes])
|
|
|
|
AC_SUBST(enable_multilib)
|
1999-05-12 19:38:28 +02:00
|
|
|
|
2012-11-14 22:29:15 +01:00
|
|
|
# Determine whether or not multiarch is enabled.
|
|
|
|
AC_ARG_ENABLE(multiarch,
|
|
|
|
[AS_HELP_STRING([--enable-multiarch],
|
|
|
|
[enable support for multiarch paths])],
|
2012-11-24 03:25:50 +01:00
|
|
|
[case "${enableval}" in
|
|
|
|
yes|no|auto) enable_multiarch=$enableval;;
|
|
|
|
*) AC_MSG_ERROR(bad value ${enableval} given for --enable-multiarch option) ;;
|
2012-11-14 22:29:15 +01:00
|
|
|
esac], [enable_multiarch=auto])
|
|
|
|
if test x${enable_multiarch} = xauto; then
|
|
|
|
if test x${with_native_system_header_dir} != x; then
|
|
|
|
ma_msg_suffix=", disabled auto check (configured with --native-system-header-dir)"
|
|
|
|
enable_multiarch=no
|
|
|
|
fi
|
|
|
|
if test x$host != x$target && test "x$with_sysroot" = x; then
|
|
|
|
ma_msg_suffix=", disabled auto check (cross build configured without --with-sysroot)"
|
|
|
|
enable_multiarch=no
|
|
|
|
fi
|
|
|
|
fi
|
|
|
|
AC_MSG_CHECKING(for multiarch configuration)
|
|
|
|
AC_SUBST(enable_multiarch)
|
|
|
|
AC_MSG_RESULT($enable_multiarch$ma_msg_suffix)
|
|
|
|
|
|
|
|
# needed for setting the multiarch name for soft-float/hard-float ABIs
|
2012-11-21 04:20:12 +01:00
|
|
|
AC_SUBST(with_cpu)
|
2012-11-14 22:29:15 +01:00
|
|
|
AC_SUBST(with_float)
|
|
|
|
|
2002-06-07 19:14:56 +02:00
|
|
|
# Enable __cxa_atexit for C++.
|
|
|
|
AC_ARG_ENABLE(__cxa_atexit,
|
2011-05-13 10:09:25 +02:00
|
|
|
[AS_HELP_STRING([--enable-__cxa_atexit], [enable __cxa_atexit for C++])],
|
2002-06-07 19:14:56 +02:00
|
|
|
[], [])
|
2003-06-03 22:39:52 +02:00
|
|
|
|
2005-12-21 01:43:21 +01:00
|
|
|
# Enable C extension for decimal float if target supports it.
|
2010-09-03 15:14:14 +02:00
|
|
|
GCC_AC_ENABLE_DECIMAL_FLOAT([$target])
|
2005-12-21 01:43:21 +01:00
|
|
|
|
2007-03-24 18:04:47 +01:00
|
|
|
dfp=`if test $enable_decimal_float != no; then echo 1; else echo 0; fi`
|
2005-12-21 01:43:21 +01:00
|
|
|
AC_DEFINE_UNQUOTED(ENABLE_DECIMAL_FLOAT, $dfp,
|
|
|
|
[Define to 1 to enable decimal float extension to C.])
|
|
|
|
|
2010-09-06 16:52:54 +02:00
|
|
|
# Use default_decimal_float for dependency.
|
|
|
|
enable_decimal_float=$default_decimal_float
|
|
|
|
|
2007-03-24 18:04:47 +01:00
|
|
|
bid=`if test $enable_decimal_float = bid; then echo 1; else echo 0; fi`
|
|
|
|
AC_DEFINE_UNQUOTED(ENABLE_DECIMAL_BID_FORMAT, $bid,
|
|
|
|
[Define to 1 to specify that we are using the BID decimal floating
|
|
|
|
point format instead of DPD])
|
|
|
|
|
c-common.h (enum rid): Add new enumeration values of RID_SAT, RID_FRACT, and RID_ACCUM.
* c-common.h (enum rid): Add new enumeration values of RID_SAT,
RID_FRACT, and RID_ACCUM. RID_SAT needs to be inserted before
RID_ONEWAY, so that it can be checked in declspecs_add_type.
(c_common_fixed_point_type_for_size): Declare.
* c-parser.c (reswords): Add _Fract, _Accum, and _Sat.
(c_token_starts_typename): Handle RID_FRACT, RID_ACCUM, and RID_SAT.
(c_token_starts_declspecs): Likewise.
(c_parser_declspecs): Likewise.
(c_parser_attributes): Likewise.
* c-tree.h (enum c_typespec_keyword): Add cts_fract and cts_accum.
(c_declspecs): Add saturating_p.
* c-decl.c (build_null_declspecs): Initialize saturating_p.
(declspecs_add_type): Avoid using complex with _Fract, _Accum, or _Sat.
Handle RID_SAT.
Avoid using void, bool, char, int, float, double, _Decimal32,
_Decimal64, _Decimal128, and complex with _Sat.
Handle RID_FRACT and RID_ACCUM.
Make sure _Sat is used with _Fract or _Accum.
(finish_declspecs): Handle cts_fract and cts_accum.
* c-common.c (fixed-value.h): New include.
(constant_expression_warning): Handle FIXED_CST.
(overflow_warning): Likewise.
(warnings_for_convert_and_check): Likewise.
(c_common_fixed_point_type_for_size): New.
(c_common_type_for_mode): Handle fixed-point modes to
return various saturating/non-saturating, signed/unsigned types.
(c_common_signed_or_unsigned_type): Support fixed-point types.
(shorten_compare): Check fixed-point zero.
Handle FIXED_POINT_TYPE.
(c_common_truthvalue_conversion): Handle FIXED_CST.
Handle FIXED_POINT_TYPE.
(c_common_nodes_and_builtins): Record builtin types for fixed-point
types.
(handle_mode_attribute): Handle fixed-point modes. Need to check
if the signness of base type and fixed-point modes are consistent.
(handle_vector_size_attribute): Handle fixed-point modes.
(same_scalar_type_ignoring_signedness): Handle FIXED_POINT_TYPE.
(warn_for_div_by_zero): Check fixed-point zero.
* c-typeck.c (c_common_type): Check FIXED_POINT_TYPE. Build
a common fixed-point type based on fbit, ibit, sign, and saturation.
(build_unary_op): Allow FIXED_POINT_TYPE for CONVERT_EXPR,
NEGATE_EXPR, TRUTH_NOT_EXPR, PREINCREMENT_EXPR, POSTINCREMENT_EXPR,
PREDECREMENT_EXPR, and POSTDECREMENT_EXPR.
(convert_for_assignment): Support FIXED_POINT_TYPE.
(digest_init): Handle FIXED_POINT_TYPE.
(build_binary_op): Support FIXED_POINT_TYPE in *_DIV_EXPR,
TRUTH_ANDIF_EXPR, TRUTH_ORIF_EXPR, TRUTH_AND_EXPR, TRUTH_OR_EXPR,
TRUTH_XOR_EXPR, RSHIFT_EXPR, LSHIFT_EXPR, EQ_EXPR, NE_EXPR, LE_EXPR,
GE_EXPR, LT_EXPR, GT_EXPR.
* target-def.h (TARGET_FIXED_POINT_SUPPORTED_P): New.
(TARGET_INITIALIZER): Add TARGET_FIXED_POINT_SUPPORTED_P.
* target.h (gcc_target): Add fixed_point_supported_p.
* targhooks.c (default_scalar_mode_supported_p): Handle MODE_FRACT,
MODE_UFRACT, MODE_ACCUM, and MODE_UACCUM.
(default_fixed_point_supported_p): Define.
* targhooks.h (default_fixed_point_supported_p): Declare.
* doc/tm.texi (TARGET_FIXED_POINT_SUPPORTED_P): Add.
* doc/install.texi (Configuration): Add --enable-fixed-point.
* configure.ac (--enable-fixed-point): New to enable fixed-point
arithmetic extension to C. For mips targets, we enable it by default.
* configure, config.in: Regenerate.
From-SVN: r127652
2007-08-21 00:26:47 +02:00
|
|
|
# Enable C extension for fixed-point arithmetic.
|
|
|
|
AC_ARG_ENABLE(fixed-point,
|
2011-05-13 10:09:25 +02:00
|
|
|
[AS_HELP_STRING([--enable-fixed-point],
|
|
|
|
[enable fixed-point arithmetic extension to C])],
|
|
|
|
[],
|
c-common.h (enum rid): Add new enumeration values of RID_SAT, RID_FRACT, and RID_ACCUM.
* c-common.h (enum rid): Add new enumeration values of RID_SAT,
RID_FRACT, and RID_ACCUM. RID_SAT needs to be inserted before
RID_ONEWAY, so that it can be checked in declspecs_add_type.
(c_common_fixed_point_type_for_size): Declare.
* c-parser.c (reswords): Add _Fract, _Accum, and _Sat.
(c_token_starts_typename): Handle RID_FRACT, RID_ACCUM, and RID_SAT.
(c_token_starts_declspecs): Likewise.
(c_parser_declspecs): Likewise.
(c_parser_attributes): Likewise.
* c-tree.h (enum c_typespec_keyword): Add cts_fract and cts_accum.
(c_declspecs): Add saturating_p.
* c-decl.c (build_null_declspecs): Initialize saturating_p.
(declspecs_add_type): Avoid using complex with _Fract, _Accum, or _Sat.
Handle RID_SAT.
Avoid using void, bool, char, int, float, double, _Decimal32,
_Decimal64, _Decimal128, and complex with _Sat.
Handle RID_FRACT and RID_ACCUM.
Make sure _Sat is used with _Fract or _Accum.
(finish_declspecs): Handle cts_fract and cts_accum.
* c-common.c (fixed-value.h): New include.
(constant_expression_warning): Handle FIXED_CST.
(overflow_warning): Likewise.
(warnings_for_convert_and_check): Likewise.
(c_common_fixed_point_type_for_size): New.
(c_common_type_for_mode): Handle fixed-point modes to
return various saturating/non-saturating, signed/unsigned types.
(c_common_signed_or_unsigned_type): Support fixed-point types.
(shorten_compare): Check fixed-point zero.
Handle FIXED_POINT_TYPE.
(c_common_truthvalue_conversion): Handle FIXED_CST.
Handle FIXED_POINT_TYPE.
(c_common_nodes_and_builtins): Record builtin types for fixed-point
types.
(handle_mode_attribute): Handle fixed-point modes. Need to check
if the signness of base type and fixed-point modes are consistent.
(handle_vector_size_attribute): Handle fixed-point modes.
(same_scalar_type_ignoring_signedness): Handle FIXED_POINT_TYPE.
(warn_for_div_by_zero): Check fixed-point zero.
* c-typeck.c (c_common_type): Check FIXED_POINT_TYPE. Build
a common fixed-point type based on fbit, ibit, sign, and saturation.
(build_unary_op): Allow FIXED_POINT_TYPE for CONVERT_EXPR,
NEGATE_EXPR, TRUTH_NOT_EXPR, PREINCREMENT_EXPR, POSTINCREMENT_EXPR,
PREDECREMENT_EXPR, and POSTDECREMENT_EXPR.
(convert_for_assignment): Support FIXED_POINT_TYPE.
(digest_init): Handle FIXED_POINT_TYPE.
(build_binary_op): Support FIXED_POINT_TYPE in *_DIV_EXPR,
TRUTH_ANDIF_EXPR, TRUTH_ORIF_EXPR, TRUTH_AND_EXPR, TRUTH_OR_EXPR,
TRUTH_XOR_EXPR, RSHIFT_EXPR, LSHIFT_EXPR, EQ_EXPR, NE_EXPR, LE_EXPR,
GE_EXPR, LT_EXPR, GT_EXPR.
* target-def.h (TARGET_FIXED_POINT_SUPPORTED_P): New.
(TARGET_INITIALIZER): Add TARGET_FIXED_POINT_SUPPORTED_P.
* target.h (gcc_target): Add fixed_point_supported_p.
* targhooks.c (default_scalar_mode_supported_p): Handle MODE_FRACT,
MODE_UFRACT, MODE_ACCUM, and MODE_UACCUM.
(default_fixed_point_supported_p): Define.
* targhooks.h (default_fixed_point_supported_p): Declare.
* doc/tm.texi (TARGET_FIXED_POINT_SUPPORTED_P): Add.
* doc/install.texi (Configuration): Add --enable-fixed-point.
* configure.ac (--enable-fixed-point): New to enable fixed-point
arithmetic extension to C. For mips targets, we enable it by default.
* configure, config.in: Regenerate.
From-SVN: r127652
2007-08-21 00:26:47 +02:00
|
|
|
[
|
|
|
|
case $target in
|
configure.ac (fixed-point): Add ARM support.
gcc/
* configure.ac (fixed-point): Add ARM support.
* configure: Regenerate.
* config/arm/arm.c (arm_fixed_mode_set): New struct.
(arm_set_fixed_optab_libfunc): New.
(arm_set_fixed_conv_libfunc): New.
(arm_init_libfuncs): Initialise fixed-point helper libfuncs with
ARM-specific names.
(aapcs_libcall_value): Return sub-word-size fixed-point libcall
return values in SImode.
(arm_return_in_msb): Return fixed-point types in the msb.
(arm_pad_reg_upwards, arm_pad_arg_upwards): Pad fixed-point types
upwards.
(arm_scalar_mode_supported_p): Support fixed-point modes.
(arm_vector_mode_supported_p): Support vector fixed-point modes.
* config/arm/arm.h (SHORT_FRACT_TYPE_SIZE, FRACT_TYPE_SIZE)
(LONG_FRACT_TYPE_SIZE, LONG_LONG_FRACT_TYPE_SIZE)
(SHORT_ACCUM_TYPE_SIZE, ACCUM_TYPE_SIZE, LONG_ACCUM_TYPE_SIZE)
(LONG_LONG_ACCUM_TYPE_SIZE, MAX_FIXED_MODE_SIZE): Define.
* config/arm/iterators.md (FIXED, ADDSUB, UQADDSUB, QADDSUB, QMUL):
New mode iterators.
(qaddsub_suf): New mode attribute.
* config/arm/arm-modes.def (FRACT, UFRACT, ACCUM, UACCUM): Declare
vector modes.
* config/arm/predicates.md (sat_shift_operator): New predicate.
* config/arm/arm-fixed.md: New.
* config/arm/arm.md: Include arm-fixed.md.
* config/arm/t-arm (MD_INCLUDES): Add arm-fixed.md.
libgcc/
* config.host (arm*-*-linux*, arm*-*-uclinux*, arm*-*-eabi*)
(arm*-*-symbianelf*): Add t-fixedpoint-gnu-prefix makefile fragment.
* config/arm/bpabi-lib.h (LIBGCC2_FIXEDBIT_GNU_PREFIX): Define.
gcc/testsuite/
* gcc.target/arm/fixed-point-exec.c: New test.
From-SVN: r177025
2011-08-01 14:41:30 +02:00
|
|
|
arm*)
|
|
|
|
enable_fixed_point=yes
|
|
|
|
;;
|
|
|
|
|
c-common.h (enum rid): Add new enumeration values of RID_SAT, RID_FRACT, and RID_ACCUM.
* c-common.h (enum rid): Add new enumeration values of RID_SAT,
RID_FRACT, and RID_ACCUM. RID_SAT needs to be inserted before
RID_ONEWAY, so that it can be checked in declspecs_add_type.
(c_common_fixed_point_type_for_size): Declare.
* c-parser.c (reswords): Add _Fract, _Accum, and _Sat.
(c_token_starts_typename): Handle RID_FRACT, RID_ACCUM, and RID_SAT.
(c_token_starts_declspecs): Likewise.
(c_parser_declspecs): Likewise.
(c_parser_attributes): Likewise.
* c-tree.h (enum c_typespec_keyword): Add cts_fract and cts_accum.
(c_declspecs): Add saturating_p.
* c-decl.c (build_null_declspecs): Initialize saturating_p.
(declspecs_add_type): Avoid using complex with _Fract, _Accum, or _Sat.
Handle RID_SAT.
Avoid using void, bool, char, int, float, double, _Decimal32,
_Decimal64, _Decimal128, and complex with _Sat.
Handle RID_FRACT and RID_ACCUM.
Make sure _Sat is used with _Fract or _Accum.
(finish_declspecs): Handle cts_fract and cts_accum.
* c-common.c (fixed-value.h): New include.
(constant_expression_warning): Handle FIXED_CST.
(overflow_warning): Likewise.
(warnings_for_convert_and_check): Likewise.
(c_common_fixed_point_type_for_size): New.
(c_common_type_for_mode): Handle fixed-point modes to
return various saturating/non-saturating, signed/unsigned types.
(c_common_signed_or_unsigned_type): Support fixed-point types.
(shorten_compare): Check fixed-point zero.
Handle FIXED_POINT_TYPE.
(c_common_truthvalue_conversion): Handle FIXED_CST.
Handle FIXED_POINT_TYPE.
(c_common_nodes_and_builtins): Record builtin types for fixed-point
types.
(handle_mode_attribute): Handle fixed-point modes. Need to check
if the signness of base type and fixed-point modes are consistent.
(handle_vector_size_attribute): Handle fixed-point modes.
(same_scalar_type_ignoring_signedness): Handle FIXED_POINT_TYPE.
(warn_for_div_by_zero): Check fixed-point zero.
* c-typeck.c (c_common_type): Check FIXED_POINT_TYPE. Build
a common fixed-point type based on fbit, ibit, sign, and saturation.
(build_unary_op): Allow FIXED_POINT_TYPE for CONVERT_EXPR,
NEGATE_EXPR, TRUTH_NOT_EXPR, PREINCREMENT_EXPR, POSTINCREMENT_EXPR,
PREDECREMENT_EXPR, and POSTDECREMENT_EXPR.
(convert_for_assignment): Support FIXED_POINT_TYPE.
(digest_init): Handle FIXED_POINT_TYPE.
(build_binary_op): Support FIXED_POINT_TYPE in *_DIV_EXPR,
TRUTH_ANDIF_EXPR, TRUTH_ORIF_EXPR, TRUTH_AND_EXPR, TRUTH_OR_EXPR,
TRUTH_XOR_EXPR, RSHIFT_EXPR, LSHIFT_EXPR, EQ_EXPR, NE_EXPR, LE_EXPR,
GE_EXPR, LT_EXPR, GT_EXPR.
* target-def.h (TARGET_FIXED_POINT_SUPPORTED_P): New.
(TARGET_INITIALIZER): Add TARGET_FIXED_POINT_SUPPORTED_P.
* target.h (gcc_target): Add fixed_point_supported_p.
* targhooks.c (default_scalar_mode_supported_p): Handle MODE_FRACT,
MODE_UFRACT, MODE_ACCUM, and MODE_UACCUM.
(default_fixed_point_supported_p): Define.
* targhooks.h (default_fixed_point_supported_p): Declare.
* doc/tm.texi (TARGET_FIXED_POINT_SUPPORTED_P): Add.
* doc/install.texi (Configuration): Add --enable-fixed-point.
* configure.ac (--enable-fixed-point): New to enable fixed-point
arithmetic extension to C. For mips targets, we enable it by default.
* configure, config.in: Regenerate.
From-SVN: r127652
2007-08-21 00:26:47 +02:00
|
|
|
mips*-*-*)
|
Remove obsolete IRIX 6.5 support
libstdc++-v3:
* configure.host (irix6.5*): Remove.
* config/os/irix: Remove.
* config/io/basic_file_stdio.cc (__basic_file<char>::showmanyc())
[_GLIBCXX_FIONREAD_TAKES_OFF_T]: Remove.
* doc/xml/faq.xml: Remove IRIX reference.
* doc/xml/manual/using.xml (Finding Dynamic or Shared Libraries):
Remove IRIX example.
* testsuite/20_util/shared_ptr/thread/default_weaktoshared.cc:
Remove mips-sgi-irix6* handling.
* testsuite/20_util/shared_ptr/thread/mutex_weaktoshared.cc: Likewise.
* testsuite/21_strings/basic_string/pthread18185.cc: Likewise.
* testsuite/21_strings/basic_string/pthread4.cc: Likewise.
* testsuite/22_locale/locale/cons/12658_thread-1.cc: Likewise.
* testsuite/22_locale/locale/cons/12658_thread-2.cc: Likewise.
* testsuite/23_containers/list/pthread1.cc: Likewise.
* testsuite/23_containers/list/pthread5.cc: Likewise.
* testsuite/23_containers/map/pthread6.cc: Likewise.
* testsuite/23_containers/vector/debug/multithreaded_swap.cc: Likewise.
* testsuite/27_io/basic_ofstream/pthread2.cc: Likewise.
* testsuite/27_io/basic_ostringstream/pthread3.cc: Likewise.
* testsuite/30_threads/async/42819.cc: Likewise.
* testsuite/30_threads/async/49668.cc: Likewise.
* testsuite/30_threads/async/any.cc: Likewise.
* testsuite/30_threads/async/async.cc: Likewise.
* testsuite/30_threads/async/launch.cc: Likewise.
* testsuite/30_threads/async/sync.cc: Likewise.
* testsuite/30_threads/call_once/39909.cc: Likewise.
* testsuite/30_threads/call_once/49668.cc: Likewise.
* testsuite/30_threads/call_once/call_once1.cc: Likewise.
* testsuite/30_threads/condition_variable/cons/1.cc: Likewise.
* testsuite/30_threads/condition_variable/members/1.cc: Likewise.
* testsuite/30_threads/condition_variable/members/2.cc: Likewise.
* testsuite/30_threads/condition_variable/native_handle/typesizes.cc:
Likewise.
* testsuite/30_threads/condition_variable_any/50862.cc: Likewise.
* testsuite/30_threads/condition_variable_any/cons/1.cc: Likewise.
* testsuite/30_threads/condition_variable_any/members/1.cc: Likewise.
* testsuite/30_threads/condition_variable_any/members/2.cc: Likewise.
* testsuite/30_threads/future/cons/move.cc: Likewise.
* testsuite/30_threads/future/members/45133.cc: Likewise.
* testsuite/30_threads/future/members/get.cc: Likewise.
* testsuite/30_threads/future/members/get2.cc: Likewise.
* testsuite/30_threads/future/members/share.cc: Likewise.
* testsuite/30_threads/future/members/valid.cc: Likewise.
* testsuite/30_threads/future/members/wait.cc: Likewise.
* testsuite/30_threads/future/members/wait_for.cc: Likewise.
* testsuite/30_threads/future/members/wait_until.cc: Likewise.
* testsuite/30_threads/lock/1.cc: Likewise.
* testsuite/30_threads/lock/2.cc: Likewise.
* testsuite/30_threads/lock/3.cc: Likewise.
* testsuite/30_threads/lock/4.cc: Likewise.
* testsuite/30_threads/lock_guard/cons/1.cc: Likewise.
* testsuite/30_threads/mutex/cons/1.cc: Likewise.
* testsuite/30_threads/mutex/dest/destructor_locked.cc: Likewise.
* testsuite/30_threads/mutex/lock/1.cc: Likewise.
* testsuite/30_threads/mutex/native_handle/1.cc: Likewise.
* testsuite/30_threads/mutex/native_handle/typesizes.cc: Likewise.
* testsuite/30_threads/mutex/try_lock/1.cc: Likewise.
* testsuite/30_threads/mutex/try_lock/2.cc: Likewise.
* testsuite/30_threads/mutex/unlock/1.cc: Likewise.
* testsuite/30_threads/packaged_task/49668.cc: Likewise.
* testsuite/30_threads/packaged_task/cons/1.cc: Likewise.
* testsuite/30_threads/packaged_task/cons/2.cc: Likewise.
* testsuite/30_threads/packaged_task/cons/3.cc: Likewise.
* testsuite/30_threads/packaged_task/cons/alloc.cc: Likewise.
* testsuite/30_threads/packaged_task/cons/move.cc: Likewise.
* testsuite/30_threads/packaged_task/cons/move_assign.cc: Likewise.
* testsuite/30_threads/packaged_task/members/get_future.cc: Likewise.
* testsuite/30_threads/packaged_task/members/get_future2.cc: Likewise.
* testsuite/30_threads/packaged_task/members/invoke.cc: Likewise.
* testsuite/30_threads/packaged_task/members/invoke2.cc: Likewise.
* testsuite/30_threads/packaged_task/members/invoke3.cc: Likewise.
* testsuite/30_threads/packaged_task/members/invoke4.cc: Likewise.
* testsuite/30_threads/packaged_task/members/invoke5.cc: Likewise.
* testsuite/30_threads/packaged_task/members/reset.cc: Likewise.
* testsuite/30_threads/packaged_task/members/reset2.cc: Likewise.
* testsuite/30_threads/packaged_task/members/swap.cc: Likewise.
* testsuite/30_threads/packaged_task/members/valid.cc: Likewise.
* testsuite/30_threads/promise/cons/1.cc: Likewise.
* testsuite/30_threads/promise/cons/alloc.cc: Likewise.
* testsuite/30_threads/promise/cons/move.cc: Likewise.
* testsuite/30_threads/promise/cons/move_assign.cc: Likewise.
* testsuite/30_threads/promise/members/get_future.cc: Likewise.
* testsuite/30_threads/promise/members/get_future2.cc: Likewise.
* testsuite/30_threads/promise/members/set_exception.cc: Likewise.
* testsuite/30_threads/promise/members/set_exception2.cc: Likewise.
* testsuite/30_threads/promise/members/set_value.cc: Likewise.
* testsuite/30_threads/promise/members/set_value2.cc: Likewise.
* testsuite/30_threads/promise/members/set_value3.cc: Likewise.
* testsuite/30_threads/promise/members/swap.cc: Likewise.
* testsuite/30_threads/recursive_mutex/cons/1.cc: Likewise.
* testsuite/30_threads/recursive_mutex/dest/destructor_locked.cc:
Likewise.
* testsuite/30_threads/recursive_mutex/lock/1.cc: Likewise.
* testsuite/30_threads/recursive_mutex/native_handle/1.cc: Likewise.
* testsuite/30_threads/recursive_mutex/native_handle/typesizes.cc:
Likewise.
* testsuite/30_threads/recursive_mutex/try_lock/1.cc: Likewise.
* testsuite/30_threads/recursive_mutex/try_lock/2.cc: Likewise.
* testsuite/30_threads/recursive_mutex/unlock/1.cc: Likewise.
* testsuite/30_threads/recursive_timed_mutex/cons/1.cc: Likewise.
* testsuite/30_threads/recursive_timed_mutex/dest/destructor_locked.cc:
Likewise.
* testsuite/30_threads/recursive_timed_mutex/lock/1.cc: Likewise.
* testsuite/30_threads/recursive_timed_mutex/lock/2.cc: Likewise.
* testsuite/30_threads/recursive_timed_mutex/native_handle/1.cc:
Likewise.
* testsuite/30_threads/recursive_timed_mutex/native_handle/typesizes.cc:
Likewise.
* testsuite/30_threads/recursive_timed_mutex/try_lock/1.cc: Likewise.
* testsuite/30_threads/recursive_timed_mutex/try_lock/2.cc: Likewise.
* testsuite/30_threads/recursive_timed_mutex/try_lock_for/1.cc:
Likewise.
* testsuite/30_threads/recursive_timed_mutex/try_lock_for/2.cc:
Likewise.
* testsuite/30_threads/recursive_timed_mutex/try_lock_for/3.cc:
Likewise.
* testsuite/30_threads/recursive_timed_mutex/try_lock_until/1.cc:
Likewise.
* testsuite/30_threads/recursive_timed_mutex/try_lock_until/2.cc:
Likewise.
* testsuite/30_threads/recursive_timed_mutex/unlock/1.cc: Likewise.
* testsuite/30_threads/shared_future/cons/move.cc: Likewise.
* testsuite/30_threads/shared_future/members/45133.cc: Likewise.
* testsuite/30_threads/shared_future/members/get.cc: Likewise.
* testsuite/30_threads/shared_future/members/get2.cc: Likewise.
* testsuite/30_threads/shared_future/members/valid.cc: Likewise.
* testsuite/30_threads/shared_future/members/wait.cc: Likewise.
* testsuite/30_threads/shared_future/members/wait_for.cc: Likewise.
* testsuite/30_threads/shared_future/members/wait_until.cc: Likewise.
* testsuite/30_threads/this_thread/1.cc: Likewise.
* testsuite/30_threads/this_thread/2.cc: Likewise.
* testsuite/30_threads/this_thread/3.cc: Likewise.
* testsuite/30_threads/this_thread/4.cc: Likewise.
* testsuite/30_threads/thread/cons/1.cc: Likewise.
* testsuite/30_threads/thread/cons/2.cc: Likewise.
* testsuite/30_threads/thread/cons/3.cc: Likewise.
* testsuite/30_threads/thread/cons/4.cc: Likewise.
* testsuite/30_threads/thread/cons/49668.cc: Likewise.
* testsuite/30_threads/thread/cons/5.cc: Likewise.
* testsuite/30_threads/thread/cons/6.cc: Likewise.
* testsuite/30_threads/thread/cons/7.cc: Likewise.
* testsuite/30_threads/thread/cons/8.cc: Likewise.
* testsuite/30_threads/thread/cons/9.cc: Likewise.
* testsuite/30_threads/thread/cons/moveable.cc: Likewise.
* testsuite/30_threads/thread/members/1.cc: Likewise.
* testsuite/30_threads/thread/members/2.cc: Likewise.
* testsuite/30_threads/thread/members/3.cc: Likewise.
* testsuite/30_threads/thread/members/4.cc: Likewise.
* testsuite/30_threads/thread/members/5.cc: Likewise.
* testsuite/30_threads/thread/members/hardware_concurrency.cc: Likewise.
* testsuite/30_threads/thread/native_handle/typesizes.cc: Likewise.
* testsuite/30_threads/thread/swap/1.cc: Likewise.
* testsuite/30_threads/timed_mutex/cons/1.cc: Likewise.
* testsuite/30_threads/timed_mutex/dest/destructor_locked.cc: Likewise.
* testsuite/30_threads/timed_mutex/lock/1.cc: Likewise.
* testsuite/30_threads/timed_mutex/native_handle/1.cc: Likewise.
* testsuite/30_threads/timed_mutex/native_handle/typesizes.cc: Likewise.
* testsuite/30_threads/timed_mutex/try_lock/1.cc: Likewise.
* testsuite/30_threads/timed_mutex/try_lock/2.cc: Likewise.
* testsuite/30_threads/timed_mutex/try_lock_for/1.cc: Likewise.
* testsuite/30_threads/timed_mutex/try_lock_for/2.cc: Likewise.
* testsuite/30_threads/timed_mutex/try_lock_for/3.cc: Likewise.
* testsuite/30_threads/timed_mutex/try_lock_until/1.cc: Likewise.
* testsuite/30_threads/timed_mutex/try_lock_until/2.cc: Likewise.
* testsuite/30_threads/timed_mutex/unlock/1.cc: Likewise.
* testsuite/30_threads/try_lock/1.cc: Likewise.
* testsuite/30_threads/try_lock/2.cc: Likewise.
* testsuite/30_threads/try_lock/3.cc: Likewise.
* testsuite/30_threads/try_lock/4.cc: Likewise.
* testsuite/30_threads/unique_lock/cons/1.cc: Likewise.
* testsuite/30_threads/unique_lock/cons/2.cc: Likewise.
* testsuite/30_threads/unique_lock/cons/3.cc: Likewise.
* testsuite/30_threads/unique_lock/cons/4.cc: Likewise.
* testsuite/30_threads/unique_lock/cons/5.cc: Likewise.
* testsuite/30_threads/unique_lock/cons/6.cc: Likewise.
* testsuite/30_threads/unique_lock/locking/1.cc: Likewise.
* testsuite/30_threads/unique_lock/locking/2.cc: Likewise.
* testsuite/30_threads/unique_lock/locking/3.cc: Likewise.
* testsuite/30_threads/unique_lock/locking/4.cc: Likewise.
* testsuite/30_threads/unique_lock/modifiers/1.cc: Likewise.
* testsuite/30_threads/unique_lock/modifiers/2.cc: Likewise.
* testsuite/ext/rope/pthread7-rope.cc: Likewise.
* testsuite/tr1/2_general_utilities/shared_ptr/thread/default_weaktoshared.cc:
Likewise.
* testsuite/tr1/2_general_utilities/shared_ptr/thread/mutex_weaktoshared.cc:
Likewise.
* testsuite/23_containers/vector/capacity/resize/1.cc: Remove
dg-options for mips*-*-irix6*.
* testsuite/27_io/ios_base/storage/1.cc: Likewise.
* testsuite/27_io/ios_base/storage/2.cc: Likewise.
* testsuite/27_io/ios_base/storage/3.cc: Likewise.
* testsuite/lib/libstdc++.exp (v3-build_support): Remove IRIX 6
workaround.
libjava:
* configure.ac (libgcj_cv_exidx): Remove IRIX 6 ld workaround.
(mips-sgi-irix6*): Remove.
(mips-sgi-irix*): Remove.
(AC_CHECK_HEADERS): Remove bstring.h.
* configure: Regenerate.
* include/config.h.in: Regenerate.
* configure.host (mips-sgi-irix6*): Remove.
* include/posix-signal.h [__sgi__]: Remove.
* gnu/java/net/natPlainDatagramSocketImplPosix.cc
[HAVE_BSTRING_H]: Remove.
* gnu/java/net/natPlainDatagramSocketImplWin32.cc: Likewise.
* gnu/java/net/natPlainSocketImplPosix.cc: Likewise.
libitm:
* configure.tgt (*-*-irix6*): Remove.
libgomp:
* configure.tgt (mips-sgi-irix6*): Remove.
libgfortran:
* intrinsics/c99_functions.c [__sgi__ && !HAVE_COMPLEX_H]: Remove.
libgcc:
* config.host (mips-sgi-irix6.5*): Remove.
* config/mips/irix-crti.S: Remove.
* config/mips/irix-crtn.S: Remove.
* config/mips/irix6-unwind.h: Remove.
* config/mips/t-irix6: Remove.
* config/mips/t-slibgcc-irix: Remove.
gnattools:
* configure.ac (mips-sgi-irix*): Remove.
* configure: Regenerate.
gcc/testsuite:
* g++.dg/other/anon5.C: Don't skip on mips-sgi-irix*.
* g++.dg/tree-prof/partition1.C: Likewise.
* g++.dg/tree-prof/partition2.C: Likewise.
* g++.old-deja/g++.other/init19.C: Remove mips-sgi-irix*
handling.
* gcc.c-torture/compile/labels-3.c: Remove dg-options.
* gcc.c-torture/execute/20010724-1.c: Remove.
* gcc.c-torture/execute/20010724-1.x: Remove.
* gcc.c-torture/execute/20040208-2.c: Remove.
* gcc.c-torture/execute/20040208-2.x: Remove.
* gcc.c-torture/execute/ieee/20000320-1.c [__mips__ && __sgi__]:
Remove.
(main) [__mips__ && __sgi__]: Remove.
* gcc.c-torture/execute/ieee/copysign1.c: Remove IRIX reference.
* gcc.c-torture/execute/ieee/copysign2.c: Likewise.
* gcc.c-torture/execute/ieee/mul-subnormal-single-1.x: Remove
mips-sgi-irix6* handling.
* gcc.dg/cpp/assert4.c [__mips__]: Remove __sgi__, sgi.
* gcc.dg/torture/20090618-1.c: Don't skip on mips-sgi-irix*.
* gcc.dg/torture/builtin-frexp-1.c: Remove mips*-*-irix6*
handling.
* gcc.dg/torture/builtin-logb-1.c: Likewise.
* gcc.dg/torture/pr47917.c: Remove mips-sgi-irix6.5 handling.
* gcc.dg/tree-ssa/ssa-store-ccp-3.c: Don't skip on mips*-*-irix*.
* gcc.misc-tests/linkage.exp: Remove mips-sgi-irix6* handling.
* gcc.target/mips/args-1.c [!__sgi__]: Remove.
* gcc.target/mips/interrupt_handler-2.c: Don't skip on
mips-sgi-irix6*.
* gcc.target/mips/interrupt_handler-3.c: Likewise.
* gcc.target/mips/save-restore-1.c: Don't skip on mips-sgi-irix6*.
* gcc.target/mips/save-restore-3.c: Likewise.
* gcc.target/mips/save-restore-4.c: Likewise.
* gcc.target/mips/save-restore-5.c: Likewise.
* gfortran.dg/g77/cabs.f: Don't xfail on mips-sgi-irix6*.
* lib/prune.exp (prune_gcc_output): Remove pruning of IRIX 6 ld
messages.
* lib/target-libpath.exp (set_ld_library_path_env_vars): Remove
IRIX 6 handling.
(restore_ld_library_path_env_vars): Likewise.
* lib/target-supports.exp (check_profiling_available): Remove
mips*-*-irix* handling.
(check_ascii_locale_available): Remove mips-sgi-irix* handling.
(add_options_for_c99_runtime): Remove mips-sgi-irix6.5* handling.
* objc.dg/stabs-1.m: Don't xfail on mips-sgi-irix6.5.
gcc/ada:
* gcc-interface/Makefile.in (mips-sgi-irix6*): Remove.
* a-intnam-irix.ads, mlib-tgt-specific-irix.adb,
s-intman-irix.adb, s-mastop-irix.adb, s-osinte-irix.adb,
s-osinte-irix.ads, s-proinf-irix-athread.adb,
s-proinf-irix-athread.ads, s-taprop-irix.adb, s-tasinf-irix.ads,
system-irix-n32.ads, system-irix-n64.ads, system-irix-o32.ads:
Remove.
* adaint.c [__mips && __sgi]: Remove.
(__gnat_number_of_cpus) [__mips && __sgi]: Remove.
[IS_CROSS && !(__mips && __sgi)]: Remove.
* adaint.h [sgi && _LFAPI]: Remove.
* cstreams.c (__gnat_full_name) [sgi]: Remove.
* env.c (__gnat_unsetenv) [__mips && __sgi]: Remove.
(__gnat_clearenv) [__mips && __sgi]: Remove.
* errno.c (_SGI_MP_SOURCE): Remove.
* gsocket.h [sgi]: Remove.
* init.c: Remove IRIX reference.
[sgi]: Remove.
* link.c [sgi]: Remove.
* s-oscons-tmplt.c [__mips && __sgi] (IOV_MAX): Don't define.
(main) [__mips && __sgi] (MAX_tv_sec): Don't define.
(CLOCK_SGI_FAST, CLOCK_SGI_CYCLE): Remove.
* sysdep.c [sgi]: Remove.
(getc_immediate_common) [sgi]: Remove.
(__gnat_localtime_tzoff) [sgi]: Remove.
* terminals.c [__mips && __sgi] (IRIX): Don't define.
[IRIX] (USE_GETPTY): Don't define.
(allocate_pty_desc) [USE_GETPTY]: Remove.
* g-traceb.ads: Remove IRIX reference.
* g-trasym.ads: Likewise.
* memtrack.adb: Likewise.
* s-interr-sigaction.adb: Likewise.
* gnat_rm.texi (Implementation Advice): Remove SGI info.
(Implementation Defined Characteristics): Likewise.
* gnat_ugn.texi (Summary of Run-Time Configurations, mips-irix):
Remove.
(Irix-Specific Considerations): Remove.
gcc/cp:
* Make-lang.in (doc/g++.1): Remove IRIX 6.5 reference.
gcc:
* config.gcc (enable_obsolete): Remove mips-sgi-irix6.5.
(mips-sgi-irix6.5*): Remove.
* config.host (mips-sgi-irix*): Remove.
* configure.ac (enable_fixed_point): Remove mips*-sgi-irix*.
(set_have_as_tls): Remove *-*-irix6*.
(gcc_cv_ld_static_dynamic): Remove mips-sgi-irix6*.
* configure: Regenerate.
* config/mips/iris6.h: Remove.
* config/mips/iris6.opt: Remove.
* config/mips/t-irix6: Remove.
* config/mips/mips.h (TARGET_GPWORD): Remove IRIX 6 N64 handling.
(TARGET_IRIX6): Remove.
(TARGET_CPU_CPP_BUILTINS): Remove IRIX 6 handling.
Don't define LANGUAGE_C, _LANGUAGE_C for Objective-C.
* config/mips/mips.c (mips_build_builtin_va_list): Remove IRIX 6
handling.
(mips_file_start): Likewise.
* config/mips/mips-protos.h (irix_asm_output_align): Remove.
* config/mips/driver-native.c [__sgi__]: Remove.
(host_detect_local_cpu) [__sgi__]: Remove.
* config/mips/gnu-user.h: Remove iris5.h reference.
* config/mips/mips-modes.def: Remove IRIX 6 reference.
* config/mips/gnu-user64.h (MIPS_TFMODE_FORMAT): Remove.
* config/mips/mips.c (mips_option_override) [MIPS_TFMODE_FORMAT]:
Remove.
* gcc.c (main): Move asm_debug initialization ...
(asm_debug): ... here.
* ginclude/stddef.h (__STDDEF_H__): Don't define.
* defaults.h (LINK_ELIMINATE_DUPLICATE_LDIRECTORIES): Remove.
* system.h (LINK_ELIMINATE_DUPLICATE_LDIRECTORIES): Poison.
* collect2.c [LINK_ELIMINATE_DUPLICATE_LDIRECTORIES]: Remove.
(main) [LINK_ELIMINATE_DUPLICATE_LDIRECTORIES]: Remove.
[LINK_ELIMINATE_DUPLICATE_LDIRECTORIES] (is_in_args): Remove.
* doc/tm.texi.in (Driver, LINK_ELIMINATE_DUPLICATE_LDIRECTORIES):
Remove.
* doc/tm.texi: Regenerate.
* doc/invoke.texi (Debugging Options, -gdwarf-<version>): Remove
IRIX 6 reference.
(MIPS Options, -march): Remove IRIX reference.
* doc/install.texi (Binaries, SGI IRIX): Remove.
(Specific, mips-sgi-irix6): Document IRIX 6.5 removal, remove rest
of section.
* doc/trouble.texi (Interoperation): Remove -lgl_s handling.
fixincludes:
* inclhack.def (broken_cabs): Remove IRIX and SunOS 4 support.
(irix___restrict): Remove.
(irix___generic1): Remove.
(irix___generic2): Remove.
(irix_asm_apostrophe): Remove.
(irix_complex): Remove.
(irix_pthread_init): Remove.
(irix_socklen_t): Remove.
(irix_stdint_c99_mode): Remove.
(irix_stdint_c99_types): Remove.
(irix_stdint_c99_macros): Remove.
(irix_stdio_va_list): Remove IRIX 6.5 support.
(irix_wcsftime): Remove.
(stdio_va_list): Remove IRIX 6.5 support.
(svr4_profil): Remove IRIX bypass.
* fixincl.x: Regenerate.
* tests/base/complex.h [IRIX_COMPLEX_CHECK]: Remove.
* tests/base/internal/math_core.h: Remove.
* tests/base/internal/sgimacros.h: Remove.
* tests/base/internal/wchar_core.h: Remove.
* tests/base/math.h [BROKEN_CABS_CHECK]: Remove IRIX and SunOS 4
support.
* tests/base/pthread.h [IRIX_PTHREAD_INIT_CHECK]: Remove.
* tests/base/stdint-irix65.h: Remove.
* tests/base/stdint.h [IRIX_STDINT_C99_MODE_CHECK]: Remove.
* tests/base/sys/asm.h: Remove.
* tests/base/sys/socket.h [IRIX_SOCKLEN_T_CHECK]: Remove.
contrib:
* config-list.mk (LIST): Remove mips-sgi-irix6.5.
toplevel:
* MAINTAINERS (OS Port Maintainers): Remove irix.
* configure.ac (enable_libgomp): Remove *-*-irix6*.
(unsupported_languages): Remove mips-sgi-irix6.*.
(noconfigdirs): Don't add ${libgcj} for mips*-*-irix6*.
(with_stabs): Remove.
* configure: Regenerate.
From-SVN: r185390
2012-03-14 17:33:37 +01:00
|
|
|
enable_fixed_point=yes
|
c-common.h (enum rid): Add new enumeration values of RID_SAT, RID_FRACT, and RID_ACCUM.
* c-common.h (enum rid): Add new enumeration values of RID_SAT,
RID_FRACT, and RID_ACCUM. RID_SAT needs to be inserted before
RID_ONEWAY, so that it can be checked in declspecs_add_type.
(c_common_fixed_point_type_for_size): Declare.
* c-parser.c (reswords): Add _Fract, _Accum, and _Sat.
(c_token_starts_typename): Handle RID_FRACT, RID_ACCUM, and RID_SAT.
(c_token_starts_declspecs): Likewise.
(c_parser_declspecs): Likewise.
(c_parser_attributes): Likewise.
* c-tree.h (enum c_typespec_keyword): Add cts_fract and cts_accum.
(c_declspecs): Add saturating_p.
* c-decl.c (build_null_declspecs): Initialize saturating_p.
(declspecs_add_type): Avoid using complex with _Fract, _Accum, or _Sat.
Handle RID_SAT.
Avoid using void, bool, char, int, float, double, _Decimal32,
_Decimal64, _Decimal128, and complex with _Sat.
Handle RID_FRACT and RID_ACCUM.
Make sure _Sat is used with _Fract or _Accum.
(finish_declspecs): Handle cts_fract and cts_accum.
* c-common.c (fixed-value.h): New include.
(constant_expression_warning): Handle FIXED_CST.
(overflow_warning): Likewise.
(warnings_for_convert_and_check): Likewise.
(c_common_fixed_point_type_for_size): New.
(c_common_type_for_mode): Handle fixed-point modes to
return various saturating/non-saturating, signed/unsigned types.
(c_common_signed_or_unsigned_type): Support fixed-point types.
(shorten_compare): Check fixed-point zero.
Handle FIXED_POINT_TYPE.
(c_common_truthvalue_conversion): Handle FIXED_CST.
Handle FIXED_POINT_TYPE.
(c_common_nodes_and_builtins): Record builtin types for fixed-point
types.
(handle_mode_attribute): Handle fixed-point modes. Need to check
if the signness of base type and fixed-point modes are consistent.
(handle_vector_size_attribute): Handle fixed-point modes.
(same_scalar_type_ignoring_signedness): Handle FIXED_POINT_TYPE.
(warn_for_div_by_zero): Check fixed-point zero.
* c-typeck.c (c_common_type): Check FIXED_POINT_TYPE. Build
a common fixed-point type based on fbit, ibit, sign, and saturation.
(build_unary_op): Allow FIXED_POINT_TYPE for CONVERT_EXPR,
NEGATE_EXPR, TRUTH_NOT_EXPR, PREINCREMENT_EXPR, POSTINCREMENT_EXPR,
PREDECREMENT_EXPR, and POSTDECREMENT_EXPR.
(convert_for_assignment): Support FIXED_POINT_TYPE.
(digest_init): Handle FIXED_POINT_TYPE.
(build_binary_op): Support FIXED_POINT_TYPE in *_DIV_EXPR,
TRUTH_ANDIF_EXPR, TRUTH_ORIF_EXPR, TRUTH_AND_EXPR, TRUTH_OR_EXPR,
TRUTH_XOR_EXPR, RSHIFT_EXPR, LSHIFT_EXPR, EQ_EXPR, NE_EXPR, LE_EXPR,
GE_EXPR, LT_EXPR, GT_EXPR.
* target-def.h (TARGET_FIXED_POINT_SUPPORTED_P): New.
(TARGET_INITIALIZER): Add TARGET_FIXED_POINT_SUPPORTED_P.
* target.h (gcc_target): Add fixed_point_supported_p.
* targhooks.c (default_scalar_mode_supported_p): Handle MODE_FRACT,
MODE_UFRACT, MODE_ACCUM, and MODE_UACCUM.
(default_fixed_point_supported_p): Define.
* targhooks.h (default_fixed_point_supported_p): Declare.
* doc/tm.texi (TARGET_FIXED_POINT_SUPPORTED_P): Add.
* doc/install.texi (Configuration): Add --enable-fixed-point.
* configure.ac (--enable-fixed-point): New to enable fixed-point
arithmetic extension to C. For mips targets, we enable it by default.
* configure, config.in: Regenerate.
From-SVN: r127652
2007-08-21 00:26:47 +02:00
|
|
|
;;
|
|
|
|
*)
|
2010-09-06 12:35:22 +02:00
|
|
|
AC_MSG_WARN([fixed-point is not supported for this target, ignored])
|
c-common.h (enum rid): Add new enumeration values of RID_SAT, RID_FRACT, and RID_ACCUM.
* c-common.h (enum rid): Add new enumeration values of RID_SAT,
RID_FRACT, and RID_ACCUM. RID_SAT needs to be inserted before
RID_ONEWAY, so that it can be checked in declspecs_add_type.
(c_common_fixed_point_type_for_size): Declare.
* c-parser.c (reswords): Add _Fract, _Accum, and _Sat.
(c_token_starts_typename): Handle RID_FRACT, RID_ACCUM, and RID_SAT.
(c_token_starts_declspecs): Likewise.
(c_parser_declspecs): Likewise.
(c_parser_attributes): Likewise.
* c-tree.h (enum c_typespec_keyword): Add cts_fract and cts_accum.
(c_declspecs): Add saturating_p.
* c-decl.c (build_null_declspecs): Initialize saturating_p.
(declspecs_add_type): Avoid using complex with _Fract, _Accum, or _Sat.
Handle RID_SAT.
Avoid using void, bool, char, int, float, double, _Decimal32,
_Decimal64, _Decimal128, and complex with _Sat.
Handle RID_FRACT and RID_ACCUM.
Make sure _Sat is used with _Fract or _Accum.
(finish_declspecs): Handle cts_fract and cts_accum.
* c-common.c (fixed-value.h): New include.
(constant_expression_warning): Handle FIXED_CST.
(overflow_warning): Likewise.
(warnings_for_convert_and_check): Likewise.
(c_common_fixed_point_type_for_size): New.
(c_common_type_for_mode): Handle fixed-point modes to
return various saturating/non-saturating, signed/unsigned types.
(c_common_signed_or_unsigned_type): Support fixed-point types.
(shorten_compare): Check fixed-point zero.
Handle FIXED_POINT_TYPE.
(c_common_truthvalue_conversion): Handle FIXED_CST.
Handle FIXED_POINT_TYPE.
(c_common_nodes_and_builtins): Record builtin types for fixed-point
types.
(handle_mode_attribute): Handle fixed-point modes. Need to check
if the signness of base type and fixed-point modes are consistent.
(handle_vector_size_attribute): Handle fixed-point modes.
(same_scalar_type_ignoring_signedness): Handle FIXED_POINT_TYPE.
(warn_for_div_by_zero): Check fixed-point zero.
* c-typeck.c (c_common_type): Check FIXED_POINT_TYPE. Build
a common fixed-point type based on fbit, ibit, sign, and saturation.
(build_unary_op): Allow FIXED_POINT_TYPE for CONVERT_EXPR,
NEGATE_EXPR, TRUTH_NOT_EXPR, PREINCREMENT_EXPR, POSTINCREMENT_EXPR,
PREDECREMENT_EXPR, and POSTDECREMENT_EXPR.
(convert_for_assignment): Support FIXED_POINT_TYPE.
(digest_init): Handle FIXED_POINT_TYPE.
(build_binary_op): Support FIXED_POINT_TYPE in *_DIV_EXPR,
TRUTH_ANDIF_EXPR, TRUTH_ORIF_EXPR, TRUTH_AND_EXPR, TRUTH_OR_EXPR,
TRUTH_XOR_EXPR, RSHIFT_EXPR, LSHIFT_EXPR, EQ_EXPR, NE_EXPR, LE_EXPR,
GE_EXPR, LT_EXPR, GT_EXPR.
* target-def.h (TARGET_FIXED_POINT_SUPPORTED_P): New.
(TARGET_INITIALIZER): Add TARGET_FIXED_POINT_SUPPORTED_P.
* target.h (gcc_target): Add fixed_point_supported_p.
* targhooks.c (default_scalar_mode_supported_p): Handle MODE_FRACT,
MODE_UFRACT, MODE_ACCUM, and MODE_UACCUM.
(default_fixed_point_supported_p): Define.
* targhooks.h (default_fixed_point_supported_p): Declare.
* doc/tm.texi (TARGET_FIXED_POINT_SUPPORTED_P): Add.
* doc/install.texi (Configuration): Add --enable-fixed-point.
* configure.ac (--enable-fixed-point): New to enable fixed-point
arithmetic extension to C. For mips targets, we enable it by default.
* configure, config.in: Regenerate.
From-SVN: r127652
2007-08-21 00:26:47 +02:00
|
|
|
enable_fixed_point=no
|
|
|
|
;;
|
|
|
|
esac
|
|
|
|
])
|
|
|
|
AC_SUBST(enable_fixed_point)
|
|
|
|
|
|
|
|
fixedpoint=`if test $enable_fixed_point = yes; then echo 1; else echo 0; fi`
|
|
|
|
AC_DEFINE_UNQUOTED(ENABLE_FIXED_POINT, $fixedpoint,
|
|
|
|
[Define to 1 to enable fixed-point arithmetic extension to C.])
|
|
|
|
|
1997-06-28 00:47:40 +02:00
|
|
|
# Enable threads
|
|
|
|
# Pass with no value to take the default
|
|
|
|
# Pass with a value to specify a thread package
|
|
|
|
AC_ARG_ENABLE(threads,
|
2011-05-13 10:09:25 +02:00
|
|
|
[AS_HELP_STRING([[--enable-threads[=LIB]]],
|
|
|
|
[enable thread usage for target GCC,
|
|
|
|
using LIB thread package])],,
|
2004-04-07 03:20:59 +02:00
|
|
|
[enable_threads=''])
|
1997-06-28 00:47:40 +02:00
|
|
|
|
2006-01-25 01:42:17 +01:00
|
|
|
AC_ARG_ENABLE(tls,
|
2011-05-13 10:09:25 +02:00
|
|
|
[AS_HELP_STRING([--enable-tls],
|
|
|
|
[enable or disable generation of tls code
|
|
|
|
overriding the assembler check for tls support])],
|
2006-01-25 01:42:17 +01:00
|
|
|
[
|
|
|
|
case $enable_tls in
|
|
|
|
yes | no) ;;
|
|
|
|
*) AC_MSG_ERROR(['$enable_tls' is an invalid value for --enable-tls.
|
|
|
|
Valid choices are 'yes' and 'no'.]) ;;
|
|
|
|
esac
|
|
|
|
], [enable_tls=''])
|
|
|
|
|
1998-09-03 01:48:01 +02:00
|
|
|
AC_ARG_ENABLE(objc-gc,
|
2011-05-13 10:09:25 +02:00
|
|
|
[AS_HELP_STRING([--enable-objc-gc],
|
|
|
|
[enable the use of Boehm's garbage collector with
|
|
|
|
the GNU Objective-C runtime])],
|
1999-12-28 04:22:04 +01:00
|
|
|
if test x$enable_objc_gc = xno; then
|
1998-09-03 01:48:01 +02:00
|
|
|
objc_boehm_gc=''
|
|
|
|
else
|
|
|
|
objc_boehm_gc=1
|
|
|
|
fi,
|
|
|
|
objc_boehm_gc='')
|
|
|
|
|
1999-01-06 17:05:47 +01:00
|
|
|
AC_ARG_WITH(dwarf2,
|
2011-05-13 10:09:25 +02:00
|
|
|
[AS_HELP_STRING([--with-dwarf2], [force the default debug format to be DWARF 2])],
|
2010-11-22 02:53:32 +01:00
|
|
|
dwarf2="$with_dwarf2",
|
1999-01-06 17:05:47 +01:00
|
|
|
dwarf2=no)
|
|
|
|
|
2000-10-04 22:53:29 +02:00
|
|
|
AC_ARG_ENABLE(shared,
|
2011-05-13 10:09:25 +02:00
|
|
|
[AS_HELP_STRING([--disable-shared], [don't provide a shared libgcc])],
|
2001-03-08 07:11:02 +01:00
|
|
|
[
|
|
|
|
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])
|
2000-10-04 22:53:29 +02:00
|
|
|
AC_SUBST(enable_shared)
|
|
|
|
|
2009-12-14 09:58:06 +01:00
|
|
|
AC_ARG_WITH(specs,
|
|
|
|
[AS_HELP_STRING([--with-specs=SPECS],
|
|
|
|
[add SPECS to driver command-line processing])],
|
|
|
|
[CONFIGURE_SPECS=$withval],
|
|
|
|
[CONFIGURE_SPECS=]
|
|
|
|
)
|
|
|
|
AC_SUBST(CONFIGURE_SPECS)
|
|
|
|
|
2007-08-21 17:35:30 +02:00
|
|
|
ACX_PKGVERSION([GCC])
|
|
|
|
ACX_BUGURL([http://gcc.gnu.org/bugs.html])
|
|
|
|
|
2004-03-11 06:01:17 +01:00
|
|
|
# Sanity check enable_languages in case someone does not run the toplevel
|
|
|
|
# configure # script.
|
|
|
|
AC_ARG_ENABLE(languages,
|
2011-05-13 10:09:25 +02:00
|
|
|
[AS_HELP_STRING([--enable-languages=LIST], [specify which front-ends to build])],
|
2004-03-11 06:01:17 +01:00
|
|
|
[case ,${enable_languages}, in
|
|
|
|
,,|,yes,)
|
|
|
|
# go safe -- we cannot be much sure without the toplevel
|
|
|
|
# configure's
|
|
|
|
# analysis of which target libs are present and usable
|
|
|
|
enable_languages=c
|
|
|
|
;;
|
|
|
|
*,all,*)
|
|
|
|
AC_MSG_ERROR([only the toplevel supports --enable-languages=all])
|
|
|
|
;;
|
|
|
|
*,c,*)
|
|
|
|
;;
|
|
|
|
*)
|
|
|
|
enable_languages=c,${enable_languages}
|
|
|
|
;;
|
|
|
|
esac],
|
|
|
|
[enable_languages=c])
|
|
|
|
|
[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
|
|
|
|
AC_DEFINE(ACCEL_COMPILER, 1,
|
|
|
|
[Define if this compiler should be built as the offload target compiler.])
|
|
|
|
enable_as_accelerator=yes
|
|
|
|
case "${target}" in
|
|
|
|
*-intelmicemul-*)
|
|
|
|
# In this case we expect offload compiler to be built as native, so we
|
|
|
|
# need to rename the driver to avoid clashes with host's drivers.
|
|
|
|
program_transform_name="s&^&${target}-&" ;;
|
|
|
|
esac
|
|
|
|
sedscript="s#${target_noncanonical}#${enable_as_accelerator_for}-accel-${target_noncanonical}#"
|
|
|
|
program_transform_name=`echo $program_transform_name | sed $sedscript`
|
|
|
|
accel_dir_suffix=/accel/${target_noncanonical}
|
|
|
|
real_target_noncanonical=${enable_as_accelerator_for}
|
|
|
|
fi
|
|
|
|
AC_SUBST(enable_as_accelerator)
|
|
|
|
AC_SUBST(real_target_noncanonical)
|
|
|
|
AC_SUBST(accel_dir_suffix)
|
|
|
|
|
|
|
|
for tgt in `echo $enable_offload_targets | sed 's/,/ /g'`; do
|
|
|
|
tgt=`echo $tgt | sed 's/=.*//'`
|
|
|
|
if test x"$offload_targets" = x; then
|
|
|
|
offload_targets=$tgt
|
|
|
|
else
|
2015-09-23 16:52:50 +02:00
|
|
|
offload_targets="$offload_targets,$tgt"
|
[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
|
|
|
|
done
|
|
|
|
AC_DEFINE_UNQUOTED(OFFLOAD_TARGETS, "$offload_targets",
|
2015-09-23 16:52:50 +02:00
|
|
|
[Define to offload targets, separated by commas.])
|
[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"$offload_targets" != x; then
|
|
|
|
AC_DEFINE(ENABLE_OFFLOADING, 1,
|
|
|
|
[Define this to enable support for offloading.])
|
2015-11-15 01:18:08 +01:00
|
|
|
else
|
|
|
|
AC_DEFINE(ENABLE_OFFLOADING, 0,
|
|
|
|
[Define this to enable support for offloading.])
|
[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
|
|
|
|
|
2009-04-17 19:32:00 +02:00
|
|
|
AC_ARG_WITH(multilib-list,
|
2013-07-23 14:12:53 +02:00
|
|
|
[AS_HELP_STRING([--with-multilib-list], [select multilibs (AArch64, SH and x86-64 only)])],
|
2009-04-17 19:32:00 +02:00
|
|
|
:,
|
|
|
|
with_multilib_list=default)
|
|
|
|
|
2003-03-12 21:41:00 +01:00
|
|
|
# -------------------------
|
|
|
|
# Checks for other programs
|
|
|
|
# -------------------------
|
1998-08-31 00:20:57 +02:00
|
|
|
|
1997-11-02 22:19:36 +01:00
|
|
|
AC_PROG_MAKE_SET
|
|
|
|
|
1997-05-18 14:31:53 +02:00
|
|
|
# Find some useful tools
|
|
|
|
AC_PROG_AWK
|
2004-06-18 03:59:45 +02:00
|
|
|
# We need awk to create options.c and options.h.
|
2003-10-31 10:58:46 +01:00
|
|
|
# Bail out if it's missing.
|
|
|
|
case ${AWK} in
|
|
|
|
"") AC_MSG_ERROR([can't build without awk, bailing out]) ;;
|
|
|
|
esac
|
|
|
|
|
aclocal.m4: (GCC_HEADER_STRING...
* aclocal.m4: (GCC_HEADER_STRING, GCC_NEED_DECLARATION,
GCC_NEED_DECLARATIONS, GCC_FUNC_VFPRINTF_DOPRNT,
GCC_FUNC_PRINTF_PTR, GCC_PROG_LN_S, GCC_PROG_LN, GCC_C_VOLATILE,
AC_GCC_C_LONG_DOUBLE, GCC_FUNC_MKDIR_TAKES_ONE_ARG,
EGCS_PROG_INSTALL): Rename autoconf macros with prefix gcc_AC_.
* configure.in (AC_GCC_C_LONG_DOUBLE, GCC_PROG_LN, GCC_PROG_LN_S,
GCC_C_VOLATILE, EGCS_PROG_INSTALL, GCC_HEADER_STRING,
GCC_FUNC_VFPRINTF_DOPRNT, GCC_FUNC_PRINTF_PTR,
GCC_NEED_DECLARATIONS, GCC_FUNC_MKDIR_TAKES_ONE_ARG): Invoke with
new macros names.
From-SVN: r33383
2000-04-24 19:45:50 +02:00
|
|
|
gcc_AC_PROG_LN_S
|
2004-06-09 10:17:32 +02:00
|
|
|
ACX_PROG_LN($LN_S)
|
1997-05-18 14:31:53 +02:00
|
|
|
AC_PROG_RANLIB
|
2011-11-18 11:52:32 +01:00
|
|
|
ranlib_flags=""
|
2004-07-04 19:18:59 +02:00
|
|
|
AC_SUBST(ranlib_flags)
|
|
|
|
|
aclocal.m4: (GCC_HEADER_STRING...
* aclocal.m4: (GCC_HEADER_STRING, GCC_NEED_DECLARATION,
GCC_NEED_DECLARATIONS, GCC_FUNC_VFPRINTF_DOPRNT,
GCC_FUNC_PRINTF_PTR, GCC_PROG_LN_S, GCC_PROG_LN, GCC_C_VOLATILE,
AC_GCC_C_LONG_DOUBLE, GCC_FUNC_MKDIR_TAKES_ONE_ARG,
EGCS_PROG_INSTALL): Rename autoconf macros with prefix gcc_AC_.
* configure.in (AC_GCC_C_LONG_DOUBLE, GCC_PROG_LN, GCC_PROG_LN_S,
GCC_C_VOLATILE, EGCS_PROG_INSTALL, GCC_HEADER_STRING,
GCC_FUNC_VFPRINTF_DOPRNT, GCC_FUNC_PRINTF_PTR,
GCC_NEED_DECLARATIONS, GCC_FUNC_MKDIR_TAKES_ONE_ARG): Invoke with
new macros names.
From-SVN: r33383
2000-04-24 19:45:50 +02:00
|
|
|
gcc_AC_PROG_INSTALL
|
1997-05-18 14:31:53 +02:00
|
|
|
|
2003-08-13 00:35:22 +02:00
|
|
|
# See if cmp has --ignore-initial.
|
|
|
|
gcc_AC_PROG_CMP_IGNORE_INITIAL
|
|
|
|
|
2001-01-03 21:39:09 +01:00
|
|
|
# See if we have the mktemp command.
|
|
|
|
AC_CHECK_PROG(have_mktemp_command, mktemp, yes, no)
|
|
|
|
|
Makefile.in: Regenerate.
2004-08-17 Paolo Bonzini <bonzini@gnu.org>
* Makefile.in: Regenerate.
* configure: Regenerate.
* Makefile.def (bootstrap-stage): Rename extra_*_flags to
stage_*_flags.
* Makefile.tpl (configure-[+module+], all-[+module+]): Exit
for bootstrapped modules if toplevel bootstrap is going.
(GCC bootstrap): Generate per-stage targets for all bootstrapped
modules. Adjust for changes in Makefile.def. Enable several
rules even in non-bootstrap mode, just to avoid peppering the
template with unnecessary "@if/@endif gcc-bootstrap" pairs.
(stage-[+prev+]-bubble): Remove.
* Makefile.def (Dependencies): Depend on all-build-bison,
all-build-flex, all-build-byacc, all-build-texinfo, rather
than the host variations.
* Makefile.tpl (BUILD_DIR_PREFIX): Remove. Replace throughout
with BUILD_SUBDIR.
(BISON): Update for recent Bisons.
(YACC): Fix typo.
(cross): Depend on all-build.
(all): Do not depend on all-build.
(prebootstrap): Remove.
(dep-kind): Accept separate prefixes for MODULE and ON variables.
(Prebootstrap dependencies): Add them to the per-stage targets
and to all-prebootstrap.
* configure.in (build_configdirs): Always enable build_tools.
(BUILD_DIR_PREFIX): Remove.
* Makefile.def (gcc): Add target variable.
(gdb, expect, guile, tk, tix): Replace with_x with extra_make_flags.
* Makefile.tpl (Autogenerated `all-*' targets): Invoke $(TARGET-*)
in the recursive `make', instead of hardwiring `all'.
(Autogenerated TARGET-* variables): New.
gcc/ChangeLog:
2004-08-17 Paolo Bonzini <bonzini@gnu.org>
* configure.ac: Trust toplevel's notion of BISON/FLEX/MAKEINFO.
No need to check if in a cross configuration.
* configure: Regenerate.
* calls.c (precompute_register_parameters):
Inline preserve_subexpressions_p ().
* expmed.c (expand_mult_const, emit_store_flag): Likewise.
* optabs.c (expand_binop, expand_twoval_binop, prepare_cmp_insn):
Likewise.
* expr.c (get_subtarget): Likewise.
* rtl.h (preserve_subexpressions_p): Remove.
* stmt.c (preserve_subexpressions_p): Remove.
* dojump.c (do_jump) <COND_EXPR, EQ_EXPR, NE_EXPR,
TRUTH_ANDIF_EXPR, TRUTH_ORIF_EXPR, COMPOUND_EXPR>:
Abort on gimplified cases.
From-SVN: r86111
2004-08-17 09:27:16 +02:00
|
|
|
# See if makeinfo has been installed and is modern enough
|
|
|
|
# that we can use it.
|
2007-06-14 10:10:41 +02:00
|
|
|
ACX_CHECK_PROG_VER(MAKEINFO, makeinfo, --version,
|
2000-05-02 21:09:24 +02:00
|
|
|
[GNU texinfo.* \([0-9][0-9.]*\)],
|
2008-07-24 00:50:42 +02:00
|
|
|
[4.[7-9]*|4.[1-9][0-9]*|[5-9]*|[1-9][0-9]*])
|
2000-05-02 21:09:24 +02:00
|
|
|
if test $gcc_cv_prog_makeinfo_modern = no; then
|
|
|
|
AC_MSG_WARN([
|
|
|
|
*** Makeinfo is missing or too old.
|
2000-12-08 23:54:06 +01:00
|
|
|
*** Info documentation will not be built.])
|
2000-05-02 21:09:24 +02:00
|
|
|
BUILD_INFO=
|
|
|
|
else
|
Makefile.in: Regenerate.
2004-08-17 Paolo Bonzini <bonzini@gnu.org>
* Makefile.in: Regenerate.
* configure: Regenerate.
* Makefile.def (bootstrap-stage): Rename extra_*_flags to
stage_*_flags.
* Makefile.tpl (configure-[+module+], all-[+module+]): Exit
for bootstrapped modules if toplevel bootstrap is going.
(GCC bootstrap): Generate per-stage targets for all bootstrapped
modules. Adjust for changes in Makefile.def. Enable several
rules even in non-bootstrap mode, just to avoid peppering the
template with unnecessary "@if/@endif gcc-bootstrap" pairs.
(stage-[+prev+]-bubble): Remove.
* Makefile.def (Dependencies): Depend on all-build-bison,
all-build-flex, all-build-byacc, all-build-texinfo, rather
than the host variations.
* Makefile.tpl (BUILD_DIR_PREFIX): Remove. Replace throughout
with BUILD_SUBDIR.
(BISON): Update for recent Bisons.
(YACC): Fix typo.
(cross): Depend on all-build.
(all): Do not depend on all-build.
(prebootstrap): Remove.
(dep-kind): Accept separate prefixes for MODULE and ON variables.
(Prebootstrap dependencies): Add them to the per-stage targets
and to all-prebootstrap.
* configure.in (build_configdirs): Always enable build_tools.
(BUILD_DIR_PREFIX): Remove.
* Makefile.def (gcc): Add target variable.
(gdb, expect, guile, tk, tix): Replace with_x with extra_make_flags.
* Makefile.tpl (Autogenerated `all-*' targets): Invoke $(TARGET-*)
in the recursive `make', instead of hardwiring `all'.
(Autogenerated TARGET-* variables): New.
gcc/ChangeLog:
2004-08-17 Paolo Bonzini <bonzini@gnu.org>
* configure.ac: Trust toplevel's notion of BISON/FLEX/MAKEINFO.
No need to check if in a cross configuration.
* configure: Regenerate.
* calls.c (precompute_register_parameters):
Inline preserve_subexpressions_p ().
* expmed.c (expand_mult_const, emit_store_flag): Likewise.
* optabs.c (expand_binop, expand_twoval_binop, prepare_cmp_insn):
Likewise.
* expr.c (get_subtarget): Likewise.
* rtl.h (preserve_subexpressions_p): Remove.
* stmt.c (preserve_subexpressions_p): Remove.
* dojump.c (do_jump) <COND_EXPR, EQ_EXPR, NE_EXPR,
TRUTH_ANDIF_EXPR, TRUTH_ORIF_EXPR, COMPOUND_EXPR>:
Abort on gimplified cases.
From-SVN: r86111
2004-08-17 09:27:16 +02:00
|
|
|
BUILD_INFO=info
|
2000-05-02 21:09:24 +02:00
|
|
|
fi
|
Makefile.in: Regenerate.
2004-08-17 Paolo Bonzini <bonzini@gnu.org>
* Makefile.in: Regenerate.
* configure: Regenerate.
* Makefile.def (bootstrap-stage): Rename extra_*_flags to
stage_*_flags.
* Makefile.tpl (configure-[+module+], all-[+module+]): Exit
for bootstrapped modules if toplevel bootstrap is going.
(GCC bootstrap): Generate per-stage targets for all bootstrapped
modules. Adjust for changes in Makefile.def. Enable several
rules even in non-bootstrap mode, just to avoid peppering the
template with unnecessary "@if/@endif gcc-bootstrap" pairs.
(stage-[+prev+]-bubble): Remove.
* Makefile.def (Dependencies): Depend on all-build-bison,
all-build-flex, all-build-byacc, all-build-texinfo, rather
than the host variations.
* Makefile.tpl (BUILD_DIR_PREFIX): Remove. Replace throughout
with BUILD_SUBDIR.
(BISON): Update for recent Bisons.
(YACC): Fix typo.
(cross): Depend on all-build.
(all): Do not depend on all-build.
(prebootstrap): Remove.
(dep-kind): Accept separate prefixes for MODULE and ON variables.
(Prebootstrap dependencies): Add them to the per-stage targets
and to all-prebootstrap.
* configure.in (build_configdirs): Always enable build_tools.
(BUILD_DIR_PREFIX): Remove.
* Makefile.def (gcc): Add target variable.
(gdb, expect, guile, tk, tix): Replace with_x with extra_make_flags.
* Makefile.tpl (Autogenerated `all-*' targets): Invoke $(TARGET-*)
in the recursive `make', instead of hardwiring `all'.
(Autogenerated TARGET-* variables): New.
gcc/ChangeLog:
2004-08-17 Paolo Bonzini <bonzini@gnu.org>
* configure.ac: Trust toplevel's notion of BISON/FLEX/MAKEINFO.
No need to check if in a cross configuration.
* configure: Regenerate.
* calls.c (precompute_register_parameters):
Inline preserve_subexpressions_p ().
* expmed.c (expand_mult_const, emit_store_flag): Likewise.
* optabs.c (expand_binop, expand_twoval_binop, prepare_cmp_insn):
Likewise.
* expr.c (get_subtarget): Likewise.
* rtl.h (preserve_subexpressions_p): Remove.
* stmt.c (preserve_subexpressions_p): Remove.
* dojump.c (do_jump) <COND_EXPR, EQ_EXPR, NE_EXPR,
TRUTH_ANDIF_EXPR, TRUTH_ORIF_EXPR, COMPOUND_EXPR>:
Abort on gimplified cases.
From-SVN: r86111
2004-08-17 09:27:16 +02:00
|
|
|
AC_SUBST(BUILD_INFO)
|
2000-05-02 21:09:24 +02:00
|
|
|
|
2001-01-16 00:32:25 +01:00
|
|
|
# Is pod2man recent enough to regenerate manpages?
|
|
|
|
AC_MSG_CHECKING([for recent Pod::Man])
|
2001-12-21 03:46:09 +01:00
|
|
|
if (perl -e 'use 1.10 Pod::Man') >/dev/null 2>&1; then
|
2001-01-03 21:15:01 +01:00
|
|
|
AC_MSG_RESULT(yes)
|
Makefile.in: Regenerate.
2004-08-17 Paolo Bonzini <bonzini@gnu.org>
* Makefile.in: Regenerate.
* configure: Regenerate.
* Makefile.def (bootstrap-stage): Rename extra_*_flags to
stage_*_flags.
* Makefile.tpl (configure-[+module+], all-[+module+]): Exit
for bootstrapped modules if toplevel bootstrap is going.
(GCC bootstrap): Generate per-stage targets for all bootstrapped
modules. Adjust for changes in Makefile.def. Enable several
rules even in non-bootstrap mode, just to avoid peppering the
template with unnecessary "@if/@endif gcc-bootstrap" pairs.
(stage-[+prev+]-bubble): Remove.
* Makefile.def (Dependencies): Depend on all-build-bison,
all-build-flex, all-build-byacc, all-build-texinfo, rather
than the host variations.
* Makefile.tpl (BUILD_DIR_PREFIX): Remove. Replace throughout
with BUILD_SUBDIR.
(BISON): Update for recent Bisons.
(YACC): Fix typo.
(cross): Depend on all-build.
(all): Do not depend on all-build.
(prebootstrap): Remove.
(dep-kind): Accept separate prefixes for MODULE and ON variables.
(Prebootstrap dependencies): Add them to the per-stage targets
and to all-prebootstrap.
* configure.in (build_configdirs): Always enable build_tools.
(BUILD_DIR_PREFIX): Remove.
* Makefile.def (gcc): Add target variable.
(gdb, expect, guile, tk, tix): Replace with_x with extra_make_flags.
* Makefile.tpl (Autogenerated `all-*' targets): Invoke $(TARGET-*)
in the recursive `make', instead of hardwiring `all'.
(Autogenerated TARGET-* variables): New.
gcc/ChangeLog:
2004-08-17 Paolo Bonzini <bonzini@gnu.org>
* configure.ac: Trust toplevel's notion of BISON/FLEX/MAKEINFO.
No need to check if in a cross configuration.
* configure: Regenerate.
* calls.c (precompute_register_parameters):
Inline preserve_subexpressions_p ().
* expmed.c (expand_mult_const, emit_store_flag): Likewise.
* optabs.c (expand_binop, expand_twoval_binop, prepare_cmp_insn):
Likewise.
* expr.c (get_subtarget): Likewise.
* rtl.h (preserve_subexpressions_p): Remove.
* stmt.c (preserve_subexpressions_p): Remove.
* dojump.c (do_jump) <COND_EXPR, EQ_EXPR, NE_EXPR,
TRUTH_ANDIF_EXPR, TRUTH_ORIF_EXPR, COMPOUND_EXPR>:
Abort on gimplified cases.
From-SVN: r86111
2004-08-17 09:27:16 +02:00
|
|
|
GENERATED_MANPAGES=generated-manpages
|
2001-01-03 21:15:01 +01:00
|
|
|
else
|
|
|
|
AC_MSG_RESULT(no)
|
|
|
|
GENERATED_MANPAGES=
|
|
|
|
fi
|
Makefile.in: Regenerate.
2004-08-17 Paolo Bonzini <bonzini@gnu.org>
* Makefile.in: Regenerate.
* configure: Regenerate.
* Makefile.def (bootstrap-stage): Rename extra_*_flags to
stage_*_flags.
* Makefile.tpl (configure-[+module+], all-[+module+]): Exit
for bootstrapped modules if toplevel bootstrap is going.
(GCC bootstrap): Generate per-stage targets for all bootstrapped
modules. Adjust for changes in Makefile.def. Enable several
rules even in non-bootstrap mode, just to avoid peppering the
template with unnecessary "@if/@endif gcc-bootstrap" pairs.
(stage-[+prev+]-bubble): Remove.
* Makefile.def (Dependencies): Depend on all-build-bison,
all-build-flex, all-build-byacc, all-build-texinfo, rather
than the host variations.
* Makefile.tpl (BUILD_DIR_PREFIX): Remove. Replace throughout
with BUILD_SUBDIR.
(BISON): Update for recent Bisons.
(YACC): Fix typo.
(cross): Depend on all-build.
(all): Do not depend on all-build.
(prebootstrap): Remove.
(dep-kind): Accept separate prefixes for MODULE and ON variables.
(Prebootstrap dependencies): Add them to the per-stage targets
and to all-prebootstrap.
* configure.in (build_configdirs): Always enable build_tools.
(BUILD_DIR_PREFIX): Remove.
* Makefile.def (gcc): Add target variable.
(gdb, expect, guile, tk, tix): Replace with_x with extra_make_flags.
* Makefile.tpl (Autogenerated `all-*' targets): Invoke $(TARGET-*)
in the recursive `make', instead of hardwiring `all'.
(Autogenerated TARGET-* variables): New.
gcc/ChangeLog:
2004-08-17 Paolo Bonzini <bonzini@gnu.org>
* configure.ac: Trust toplevel's notion of BISON/FLEX/MAKEINFO.
No need to check if in a cross configuration.
* configure: Regenerate.
* calls.c (precompute_register_parameters):
Inline preserve_subexpressions_p ().
* expmed.c (expand_mult_const, emit_store_flag): Likewise.
* optabs.c (expand_binop, expand_twoval_binop, prepare_cmp_insn):
Likewise.
* expr.c (get_subtarget): Likewise.
* rtl.h (preserve_subexpressions_p): Remove.
* stmt.c (preserve_subexpressions_p): Remove.
* dojump.c (do_jump) <COND_EXPR, EQ_EXPR, NE_EXPR,
TRUTH_ANDIF_EXPR, TRUTH_ORIF_EXPR, COMPOUND_EXPR>:
Abort on gimplified cases.
From-SVN: r86111
2004-08-17 09:27:16 +02:00
|
|
|
AC_SUBST(GENERATED_MANPAGES)
|
2001-01-03 21:15:01 +01:00
|
|
|
|
2007-06-14 10:10:41 +02:00
|
|
|
MISSING="${CONFIG_SHELL-/bin/sh} $ac_aux_dir/missing"
|
|
|
|
|
configure.in: Remove AC_PROG_LEX and AC_PROG_YACC.
* configure.in: Remove AC_PROG_LEX and AC_PROG_YACC. Look for
flex and bison, specifically, first in a unified build and
then installed on the system.
* Makefile.in: Set BISON to @BISON@, FLEX to @FLEX@. Rename
LEXFLAGS to FLEXFLAGS. Adjust ORDINARY_FLAGS_TO_PASS to
match.
(collect2.o, gcc.o, prefix.o, toplev.o, alloca.o, intl.o,
cppdefault.o): Remove pointless sed munging of source file
name.
f:
* Make-lang.in (f/fini.o, f/proj-h.o): Remove pointless sed
munging of source file name.
($(srcdir)/f/intdoc.texi): Break up into several rules each of
which builds just one thing. Don't mess with $(LANGUAGES).
(f/ansify.o, f/intdoc.o): Remove unnecessary rules.
From-SVN: r37371
2000-11-10 18:23:09 +01:00
|
|
|
# How about lex?
|
|
|
|
dnl Don't use AC_PROG_LEX; we insist on flex.
|
|
|
|
dnl LEXLIB is not useful in gcc.
|
Makefile.in: Regenerate.
2004-08-17 Paolo Bonzini <bonzini@gnu.org>
* Makefile.in: Regenerate.
* configure: Regenerate.
* Makefile.def (bootstrap-stage): Rename extra_*_flags to
stage_*_flags.
* Makefile.tpl (configure-[+module+], all-[+module+]): Exit
for bootstrapped modules if toplevel bootstrap is going.
(GCC bootstrap): Generate per-stage targets for all bootstrapped
modules. Adjust for changes in Makefile.def. Enable several
rules even in non-bootstrap mode, just to avoid peppering the
template with unnecessary "@if/@endif gcc-bootstrap" pairs.
(stage-[+prev+]-bubble): Remove.
* Makefile.def (Dependencies): Depend on all-build-bison,
all-build-flex, all-build-byacc, all-build-texinfo, rather
than the host variations.
* Makefile.tpl (BUILD_DIR_PREFIX): Remove. Replace throughout
with BUILD_SUBDIR.
(BISON): Update for recent Bisons.
(YACC): Fix typo.
(cross): Depend on all-build.
(all): Do not depend on all-build.
(prebootstrap): Remove.
(dep-kind): Accept separate prefixes for MODULE and ON variables.
(Prebootstrap dependencies): Add them to the per-stage targets
and to all-prebootstrap.
* configure.in (build_configdirs): Always enable build_tools.
(BUILD_DIR_PREFIX): Remove.
* Makefile.def (gcc): Add target variable.
(gdb, expect, guile, tk, tix): Replace with_x with extra_make_flags.
* Makefile.tpl (Autogenerated `all-*' targets): Invoke $(TARGET-*)
in the recursive `make', instead of hardwiring `all'.
(Autogenerated TARGET-* variables): New.
gcc/ChangeLog:
2004-08-17 Paolo Bonzini <bonzini@gnu.org>
* configure.ac: Trust toplevel's notion of BISON/FLEX/MAKEINFO.
No need to check if in a cross configuration.
* configure: Regenerate.
* calls.c (precompute_register_parameters):
Inline preserve_subexpressions_p ().
* expmed.c (expand_mult_const, emit_store_flag): Likewise.
* optabs.c (expand_binop, expand_twoval_binop, prepare_cmp_insn):
Likewise.
* expr.c (get_subtarget): Likewise.
* rtl.h (preserve_subexpressions_p): Remove.
* stmt.c (preserve_subexpressions_p): Remove.
* dojump.c (do_jump) <COND_EXPR, EQ_EXPR, NE_EXPR,
TRUTH_ANDIF_EXPR, TRUTH_ORIF_EXPR, COMPOUND_EXPR>:
Abort on gimplified cases.
From-SVN: r86111
2004-08-17 09:27:16 +02:00
|
|
|
AC_CHECK_PROGS([FLEX], flex, [$MISSING flex])
|
configure.in: Remove AC_PROG_LEX and AC_PROG_YACC.
* configure.in: Remove AC_PROG_LEX and AC_PROG_YACC. Look for
flex and bison, specifically, first in a unified build and
then installed on the system.
* Makefile.in: Set BISON to @BISON@, FLEX to @FLEX@. Rename
LEXFLAGS to FLEXFLAGS. Adjust ORDINARY_FLAGS_TO_PASS to
match.
(collect2.o, gcc.o, prefix.o, toplev.o, alloca.o, intl.o,
cppdefault.o): Remove pointless sed munging of source file
name.
f:
* Make-lang.in (f/fini.o, f/proj-h.o): Remove pointless sed
munging of source file name.
($(srcdir)/f/intdoc.texi): Break up into several rules each of
which builds just one thing. Don't mess with $(LANGUAGES).
(f/ansify.o, f/intdoc.o): Remove unnecessary rules.
From-SVN: r37371
2000-11-10 18:23:09 +01:00
|
|
|
|
|
|
|
# Bison?
|
Makefile.in: Regenerate.
2004-08-17 Paolo Bonzini <bonzini@gnu.org>
* Makefile.in: Regenerate.
* configure: Regenerate.
* Makefile.def (bootstrap-stage): Rename extra_*_flags to
stage_*_flags.
* Makefile.tpl (configure-[+module+], all-[+module+]): Exit
for bootstrapped modules if toplevel bootstrap is going.
(GCC bootstrap): Generate per-stage targets for all bootstrapped
modules. Adjust for changes in Makefile.def. Enable several
rules even in non-bootstrap mode, just to avoid peppering the
template with unnecessary "@if/@endif gcc-bootstrap" pairs.
(stage-[+prev+]-bubble): Remove.
* Makefile.def (Dependencies): Depend on all-build-bison,
all-build-flex, all-build-byacc, all-build-texinfo, rather
than the host variations.
* Makefile.tpl (BUILD_DIR_PREFIX): Remove. Replace throughout
with BUILD_SUBDIR.
(BISON): Update for recent Bisons.
(YACC): Fix typo.
(cross): Depend on all-build.
(all): Do not depend on all-build.
(prebootstrap): Remove.
(dep-kind): Accept separate prefixes for MODULE and ON variables.
(Prebootstrap dependencies): Add them to the per-stage targets
and to all-prebootstrap.
* configure.in (build_configdirs): Always enable build_tools.
(BUILD_DIR_PREFIX): Remove.
* Makefile.def (gcc): Add target variable.
(gdb, expect, guile, tk, tix): Replace with_x with extra_make_flags.
* Makefile.tpl (Autogenerated `all-*' targets): Invoke $(TARGET-*)
in the recursive `make', instead of hardwiring `all'.
(Autogenerated TARGET-* variables): New.
gcc/ChangeLog:
2004-08-17 Paolo Bonzini <bonzini@gnu.org>
* configure.ac: Trust toplevel's notion of BISON/FLEX/MAKEINFO.
No need to check if in a cross configuration.
* configure: Regenerate.
* calls.c (precompute_register_parameters):
Inline preserve_subexpressions_p ().
* expmed.c (expand_mult_const, emit_store_flag): Likewise.
* optabs.c (expand_binop, expand_twoval_binop, prepare_cmp_insn):
Likewise.
* expr.c (get_subtarget): Likewise.
* rtl.h (preserve_subexpressions_p): Remove.
* stmt.c (preserve_subexpressions_p): Remove.
* dojump.c (do_jump) <COND_EXPR, EQ_EXPR, NE_EXPR,
TRUTH_ANDIF_EXPR, TRUTH_ORIF_EXPR, COMPOUND_EXPR>:
Abort on gimplified cases.
From-SVN: r86111
2004-08-17 09:27:16 +02:00
|
|
|
AC_CHECK_PROGS([BISON], bison, [$MISSING bison])
|
|
|
|
|
|
|
|
# Binutils are not build modules, unlike bison/flex/makeinfo. So we
|
|
|
|
# check for build == host before using them.
|
configure.in: Remove AC_PROG_LEX and AC_PROG_YACC.
* configure.in: Remove AC_PROG_LEX and AC_PROG_YACC. Look for
flex and bison, specifically, first in a unified build and
then installed on the system.
* Makefile.in: Set BISON to @BISON@, FLEX to @FLEX@. Rename
LEXFLAGS to FLEXFLAGS. Adjust ORDINARY_FLAGS_TO_PASS to
match.
(collect2.o, gcc.o, prefix.o, toplev.o, alloca.o, intl.o,
cppdefault.o): Remove pointless sed munging of source file
name.
f:
* Make-lang.in (f/fini.o, f/proj-h.o): Remove pointless sed
munging of source file name.
($(srcdir)/f/intdoc.texi): Break up into several rules each of
which builds just one thing. Don't mess with $(LANGUAGES).
(f/ansify.o, f/intdoc.o): Remove unnecessary rules.
From-SVN: r37371
2000-11-10 18:23:09 +01:00
|
|
|
|
2004-07-13 04:21:30 +02:00
|
|
|
# NM
|
2004-08-13 01:03:20 +02:00
|
|
|
if test x${build} = x${host} && test -f $srcdir/../binutils/nm.c \
|
|
|
|
&& test -d ../binutils ; then
|
2010-06-10 13:58:28 +02:00
|
|
|
NM='${objdir}/../binutils/nm-new'
|
2004-07-13 04:21:30 +02:00
|
|
|
else
|
|
|
|
AC_CHECK_PROG(NM, nm, nm, ${CONFIG_SHELL-/bin/sh} ${srcdir}/../missing nm)
|
|
|
|
fi
|
|
|
|
|
|
|
|
# AR
|
2004-08-13 01:03:20 +02:00
|
|
|
if test x${build} = x${host} && test -f $srcdir/../binutils/ar.c \
|
|
|
|
&& test -d ../binutils ; then
|
2010-06-10 13:58:28 +02:00
|
|
|
AR='${objdir}/../binutils/ar'
|
2004-07-13 04:21:30 +02:00
|
|
|
else
|
|
|
|
AC_CHECK_PROG(AR, ar, ar, ${CONFIG_SHELL-/bin/sh} ${srcdir}/../missing ar)
|
|
|
|
fi
|
|
|
|
|
2014-11-11 22:55:52 +01:00
|
|
|
# The jit documentation looks better if built with sphinx, but can be
|
|
|
|
# built with texinfo if sphinx is not available.
|
|
|
|
# Set "doc_build_sys" to "sphinx" or "texinfo" accordingly.
|
|
|
|
AC_CHECK_PROG(doc_build_sys, sphinx-build, sphinx, texinfo)
|
2004-07-13 04:21:30 +02:00
|
|
|
|
2003-03-12 21:41:00 +01:00
|
|
|
# --------------------
|
|
|
|
# Checks for C headers
|
|
|
|
# --------------------
|
|
|
|
|
2004-01-05 04:21:24 +01:00
|
|
|
# Need to reject headers which give warnings, so that the -Werror bootstrap
|
|
|
|
# works later. *sigh* This needs to come before all header checks.
|
|
|
|
AC_PROG_CPP_WERROR
|
|
|
|
|
2003-03-12 21:41:00 +01:00
|
|
|
AC_HEADER_STDC
|
|
|
|
AC_HEADER_TIME
|
2004-05-24 12:50:45 +02:00
|
|
|
ACX_HEADER_STRING
|
2003-03-12 21:41:00 +01:00
|
|
|
AC_HEADER_SYS_WAIT
|
2013-06-01 21:12:57 +02:00
|
|
|
AC_HEADER_TIOCGWINSZ
|
2004-09-23 02:29:07 +02:00
|
|
|
AC_CHECK_HEADERS(limits.h stddef.h string.h strings.h stdlib.h time.h iconv.h \
|
2015-02-10 04:40:20 +01:00
|
|
|
fcntl.h ftw.h unistd.h sys/file.h sys/time.h sys/mman.h \
|
2003-03-12 21:41:00 +01:00
|
|
|
sys/resource.h sys/param.h sys/times.h sys/stat.h \
|
2013-05-08 15:22:14 +02:00
|
|
|
direct.h malloc.h langinfo.h ldfcn.h locale.h wchar.h)
|
2003-03-12 21:41:00 +01:00
|
|
|
|
|
|
|
# Check for thread headers.
|
|
|
|
AC_CHECK_HEADER(thread.h, [have_thread_h=yes], [have_thread_h=])
|
|
|
|
AC_CHECK_HEADER(pthread.h, [have_pthread_h=yes], [have_pthread_h=])
|
|
|
|
|
|
|
|
# These tests can't be done till we know if we have limits.h.
|
|
|
|
gcc_AC_C_CHAR_BIT
|
2005-05-04 03:14:51 +02:00
|
|
|
AC_C_BIGENDIAN
|
2003-03-12 21:41:00 +01:00
|
|
|
|
2010-12-02 23:43:58 +01:00
|
|
|
# ----------------------
|
|
|
|
# Checks for C++ headers
|
|
|
|
# ----------------------
|
|
|
|
|
2010-12-07 22:04:33 +01:00
|
|
|
dnl Autoconf will give an error in the configure script if there is no
|
|
|
|
dnl C++ preprocessor. Hack to prevent that.
|
|
|
|
m4_pushdef([AC_MSG_ERROR], m4_defn([AC_MSG_WARN]))[]dnl
|
|
|
|
AC_PROG_CXXCPP
|
|
|
|
m4_popdef([AC_MSG_ERROR])[]dnl
|
|
|
|
|
2010-12-02 23:43:58 +01:00
|
|
|
AC_CHECK_HEADERS(unordered_map)
|
|
|
|
AC_CHECK_HEADERS(tr1/unordered_map)
|
|
|
|
AC_CHECK_HEADERS(ext/hash_map)
|
|
|
|
|
2013-09-25 17:55:01 +02:00
|
|
|
# --------
|
|
|
|
# Dependency checking.
|
|
|
|
# --------
|
|
|
|
|
|
|
|
ZW_CREATE_DEPDIR
|
|
|
|
AC_CONFIG_COMMANDS([gccdepdir],[
|
|
|
|
${CONFIG_SHELL-/bin/sh} $ac_aux_dir/mkinstalldirs build/$DEPDIR
|
|
|
|
for lang in $subdirs c-family common
|
|
|
|
do
|
|
|
|
${CONFIG_SHELL-/bin/sh} $ac_aux_dir/mkinstalldirs $lang/$DEPDIR
|
|
|
|
done], [subdirs="$subdirs" ac_aux_dir=$ac_aux_dir DEPDIR=$DEPDIR])
|
|
|
|
|
2013-10-24 12:15:52 +02:00
|
|
|
ZW_PROG_COMPILER_DEPENDENCIES([CXX])
|
2010-12-02 23:43:58 +01:00
|
|
|
|
2003-03-12 21:41:00 +01:00
|
|
|
# --------
|
|
|
|
# UNSORTED
|
|
|
|
# --------
|
|
|
|
|
|
|
|
|
config.gcc: Don't default xmake_file to ${cpu_type}/x-${cpu_type}.
2001-05-01 Zack Weinberg <zackw@stanford.edu>
* config.gcc: Don't default xmake_file to ${cpu_type}/x-${cpu_type}.
Remove references to deleted files.
(*-*-openbsd): No need to override xmake_file.
(*-*-sysv4): Treat like *-*-sysv.
* configure.in: Probe for ldopen in various places, and set up
collect2 to be linked with them if found.
Don't dink with Windows registry stuff unless $host_os is a
Win32 os name. Check to see if we need -ladvapi32.
* configure: Regenerate.
* Makefile: Get rid of CLIB and HOST_CLIB.
Substitute in COLLECT2_LIBS and link collect2 against its contents.
* build-make: Get rid of HOST_CLIB.
* config/a29k/x-unix, config/alpha/x-osf, config/i386/x-aix,
config/i386/x-osfrose, config/m68k/x-dpx2, config/mips/x-iris3,
config/mips/x-mips, config/mips/x-osfrose, config/mips/x-sony,
config/mips/x-sysv, config/rs6000/x-aix31, config/rs6000/x-aix41,
config/rs6000/x-rs6000: Delete.
* config/i386/x-cygwin, config/m68k/t-aux, config/mips/x-iris:
Don't set CLIB.
24 x-host fragments remain, 0 x-cpu, 3 top level.
2001-05-01 Zack Weinberg <zackw@stanford.edu>
* aclocal.m4 (gcc_AC_C_CHAR_BIT): Correct test program.
* configure: Regenerate.
From-SVN: r41732
2001-05-01 19:45:05 +02:00
|
|
|
# These libraries may be used by collect2.
|
|
|
|
# We may need a special search path to get them linked.
|
|
|
|
AC_CACHE_CHECK(for collect2 libraries, gcc_cv_collect2_libs,
|
|
|
|
[save_LIBS="$LIBS"
|
2001-05-13 13:25:55 +02:00
|
|
|
for libs in '' -lld -lmld \
|
config.gcc: Don't default xmake_file to ${cpu_type}/x-${cpu_type}.
2001-05-01 Zack Weinberg <zackw@stanford.edu>
* config.gcc: Don't default xmake_file to ${cpu_type}/x-${cpu_type}.
Remove references to deleted files.
(*-*-openbsd): No need to override xmake_file.
(*-*-sysv4): Treat like *-*-sysv.
* configure.in: Probe for ldopen in various places, and set up
collect2 to be linked with them if found.
Don't dink with Windows registry stuff unless $host_os is a
Win32 os name. Check to see if we need -ladvapi32.
* configure: Regenerate.
* Makefile: Get rid of CLIB and HOST_CLIB.
Substitute in COLLECT2_LIBS and link collect2 against its contents.
* build-make: Get rid of HOST_CLIB.
* config/a29k/x-unix, config/alpha/x-osf, config/i386/x-aix,
config/i386/x-osfrose, config/m68k/x-dpx2, config/mips/x-iris3,
config/mips/x-mips, config/mips/x-osfrose, config/mips/x-sony,
config/mips/x-sysv, config/rs6000/x-aix31, config/rs6000/x-aix41,
config/rs6000/x-rs6000: Delete.
* config/i386/x-cygwin, config/m68k/t-aux, config/mips/x-iris:
Don't set CLIB.
24 x-host fragments remain, 0 x-cpu, 3 top level.
2001-05-01 Zack Weinberg <zackw@stanford.edu>
* aclocal.m4 (gcc_AC_C_CHAR_BIT): Correct test program.
* configure: Regenerate.
From-SVN: r41732
2001-05-01 19:45:05 +02:00
|
|
|
'-L/usr/lib/cmplrs/cc2.11 -lmld' \
|
|
|
|
'-L/usr/lib/cmplrs/cc3.11 -lmld'
|
|
|
|
do
|
|
|
|
LIBS="$libs"
|
|
|
|
AC_TRY_LINK_FUNC(ldopen,
|
|
|
|
[gcc_cv_collect2_libs="$libs"; break])
|
|
|
|
done
|
|
|
|
LIBS="$save_LIBS"
|
|
|
|
test -z "$gcc_cv_collect2_libs" && gcc_cv_collect2_libs='none required'])
|
|
|
|
case $gcc_cv_collect2_libs in
|
|
|
|
"none required") ;;
|
|
|
|
*) COLLECT2_LIBS=$gcc_cv_collect2_libs ;;
|
|
|
|
esac
|
|
|
|
AC_SUBST(COLLECT2_LIBS)
|
|
|
|
|
2001-05-13 13:25:55 +02:00
|
|
|
# When building Ada code on Alpha, we need exc_resume which is usually in
|
|
|
|
# -lexc. So test for it.
|
|
|
|
save_LIBS="$LIBS"
|
|
|
|
LIBS=
|
|
|
|
AC_SEARCH_LIBS(exc_resume, exc)
|
|
|
|
GNAT_LIBEXC="$LIBS"
|
|
|
|
LIBS="$save_LIBS"
|
|
|
|
AC_SUBST(GNAT_LIBEXC)
|
|
|
|
|
2011-08-08 14:08:31 +02:00
|
|
|
# To support -mcpu=native on Solaris/SPARC, we need libkstat.
|
|
|
|
save_LIBS="$LIBS"
|
|
|
|
LIBS=
|
|
|
|
AC_SEARCH_LIBS(kstat_open, kstat)
|
|
|
|
EXTRA_GCC_LIBS="$LIBS"
|
|
|
|
LIBS="$save_LIBS"
|
|
|
|
AC_SUBST(EXTRA_GCC_LIBS)
|
|
|
|
|
2003-03-23 21:13:58 +01:00
|
|
|
# Some systems put ldexp and frexp in libm instead of libc; assume
|
|
|
|
# they're both in the same place. jcf-dump needs them.
|
|
|
|
save_LIBS="$LIBS"
|
|
|
|
LIBS=
|
|
|
|
AC_SEARCH_LIBS(ldexp, m)
|
|
|
|
LDEXP_LIB="$LIBS"
|
|
|
|
LIBS="$save_LIBS"
|
|
|
|
AC_SUBST(LDEXP_LIB)
|
|
|
|
|
1997-11-05 01:30:37 +01:00
|
|
|
# Use <inttypes.h> only if it exists,
|
2014-06-04 14:35:26 +02:00
|
|
|
# doesn't clash with <sys/types.h>, declares intmax_t and defines
|
|
|
|
# PRId64
|
1997-11-05 01:30:37 +01:00
|
|
|
AC_MSG_CHECKING(for inttypes.h)
|
|
|
|
AC_CACHE_VAL(gcc_cv_header_inttypes_h,
|
2005-07-06 03:56:56 +02:00
|
|
|
[AC_COMPILE_IFELSE([AC_LANG_PROGRAM(
|
2014-06-04 14:35:26 +02:00
|
|
|
[[#define __STDC_FORMAT_MACROS
|
|
|
|
#include <sys/types.h>
|
2005-07-06 03:56:56 +02:00
|
|
|
#include <inttypes.h>]],
|
2014-06-04 14:35:26 +02:00
|
|
|
[[intmax_t i = -1;
|
|
|
|
#ifndef PRId64
|
|
|
|
choke me
|
|
|
|
#endif]])],
|
1998-11-05 02:55:45 +01:00
|
|
|
[gcc_cv_header_inttypes_h=yes],
|
2005-07-06 03:56:56 +02:00
|
|
|
[gcc_cv_header_inttypes_h=no])])
|
1997-11-05 01:30:37 +01:00
|
|
|
AC_MSG_RESULT($gcc_cv_header_inttypes_h)
|
1998-11-05 02:55:45 +01:00
|
|
|
if test $gcc_cv_header_inttypes_h = yes; then
|
acconfig.h (ENABLE_STD_NAMESPACE, [...]): Delete entries.
* acconfig.h (ENABLE_STD_NAMESPACE, ENABLE_CHECKING,
ENABLE_TREE_CHECKING, ENABLE_RTL_CHECKING, ENABLE_GC_CHECKING,
ENABLE_GC_ALWAYS_COLLECT): Delete entries.
* configure.in (ENABLE_STD_NAMESPACE, ENABLE_CHECKING,
ENABLE_TREE_CHECKING, ENABLE_RTL_CHECKING, ENABLE_GC_CHECKING,
ENABLE_GC_ALWAYS_COLLECT): Use three argument form of AC_DEFINE
for these macros. Clean up spacing and linewraps.
From-SVN: r33420
2000-04-25 22:30:16 +02:00
|
|
|
AC_DEFINE(HAVE_INTTYPES_H, 1,
|
|
|
|
[Define if you have a working <inttypes.h> header file.])
|
1998-11-05 02:55:45 +01:00
|
|
|
fi
|
1997-07-19 04:51:45 +02:00
|
|
|
|
configure.in: Move check for unsigned enumerated bitfields to macro in aclocal.m4.
* configure.in: Move check for unsigned enumerated bitfields
to macro in aclocal.m4. Disable it for now.
* configure, config.in: Regenerate.
* system.h: Don't do anything with ONLY_INT_FIELDS. Use the
unsigned-int form of ENUM_BITFIELD() unless being compiled by GCC.
* varasm.c (struct rtx_const): Use ENUM_BITFIELD(). Move enum
kind above its first use.
* config/xm-interix.h, config/alpha/xm-alpha.h,
config/i370/xm-linux.h, config/i386/xm-beos.h,
config/i386/xm-mingw32.h, config/mips/xm-mips.h,
config/pa/xm-pa.h, config/pa/xm-pa64hpux.h,
config/rs6000/xm-beos.h, config/rs6000/xm-sysv4.h,
Don't define ONLY_INT_FIELDS under any circumstances.
* config/pa/xm-pa.h: Don't define __BSD_NET2__.
* config/pa/xm-pahpux.h, config/pa/xm-papro.h,
config/sparc/xm-sysv4.h: Delete - now identical with some
other xm header.
* config.gcc (hppa targets): Replace xm-pahpux.h and
xm-papro.h with implicit xm-pa.h.
(sparc targets): Replace xm-sysv4.h with implicit or explicit
xm-sparc.h.
From-SVN: r40399
2001-03-12 07:31:41 +01:00
|
|
|
dnl Disabled until we have a complete test for buggy enum bitfields.
|
|
|
|
dnl gcc_AC_C_ENUM_BF_UNSIGNED
|
2000-04-18 21:42:30 +02:00
|
|
|
|
configure.ac (fixincludes_UNLOCKED_FUNCS): New.
fixincludes:
* configure.ac (fixincludes_UNLOCKED_FUNCS): New.
(AC_CHECK_FUNCS, AC_CHECK_DECLS): Check for fixincludes_UNLOCKED_FUNCS.
* system.h (putchar, getc, getchar, clearerr, feof, fileno,
fflush, fgetc, fgets, ferror, fread): Redefine to the associated
_unlocked function.
(fwrite_unlocked): Fix prototype.
* configure, config.h.in: Regenerate.
gcc:
PR/17092
* configure.ac (gcc_UNLOCKED_FUNCS): New.
(AC_CHECK_FUNCS, AC_CHECK_DECLS): Check for gcc_UNLOCKED_FUNCS.
* system.h (putchar, getc, getchar, clearerr, feof, fileno,
fflush, fgetc, fgets, ferror, fread): Redefine to the associated
_unlocked function.
(fwrite_unlocked): Fix prototype.
* configure, config.in: Regenerate.
libcpp:
* configure.ac (libcpp_UNLOCKED_FUNCS): New.
(AC_CHECK_FUNCS, AC_CHECK_DECLS): Check for libcpp_UNLOCKED_FUNCS.
* system.h (putchar, getc, getchar, clearerr, feof, fileno,
fflush, fgetc, fgets, ferror, fread): Redefine to the associated
_unlocked function.
(fwrite_unlocked): Fix prototype.
* configure, config.in: Regenerate.
From-SVN: r97986
2005-04-11 23:46:59 +02:00
|
|
|
define(gcc_UNLOCKED_FUNCS, clearerr_unlocked feof_unlocked dnl
|
|
|
|
ferror_unlocked fflush_unlocked fgetc_unlocked fgets_unlocked dnl
|
|
|
|
fileno_unlocked fprintf_unlocked fputc_unlocked fputs_unlocked dnl
|
|
|
|
fread_unlocked fwrite_unlocked getchar_unlocked getc_unlocked dnl
|
|
|
|
putchar_unlocked putc_unlocked)
|
2015-05-28 22:37:05 +02:00
|
|
|
AC_CHECK_FUNCS(times clock kill getrlimit setrlimit atoq \
|
2014-07-30 20:29:41 +02:00
|
|
|
popen sysconf strsignal getrusage nl_langinfo \
|
system.h: Include "safe-ctype.h" instead of <safe-ctype.h>.
* system.h: Include "safe-ctype.h" instead of <safe-ctype.h>.
Include <signal.h>, <sys/mman.h>, <sys/resource.h> and
<sys/times.h>.
(O_BINARY, SIGCHLD, MAP_FAILED, MAP_ANONYMOUS, kill):
Conditionally define.
(GET_ENVIRONMENT): Poison.
* configure.ac: Don't test for mincore.
* configure: Regenerate.
* config.in: Regenerate.
* collect2-aix.c: Don't include <sys/mman.h>.
* collect2.c: Don't include <signal.h>.
(SIGCHLD): Don't define.
(prefix_from_env): Use getenv instead of GET_ENVIRONMENT.
* config/alpha/alpha.c: Include "splay-tree.h" instead of
<splay-tree.h>.
* config/arm/arm.c (arm_target_help): Use getenv instead of
GET_ENVIRONMENT.
* config/avr/driver-avr.c: Don't include <stdlib.h>.
* config/frv/frv.c: Don't include <ctype.h>.
* config/host-darwin.c: Don't include <sys/mman.h>.
* config/host-hpux.c: Don't include <sys/mman.h> or <unistd.h>.
(MAP_FAILED): Don't define.
* config/host-linux.c: Don't include <sys/mman.h> or <limits.h>.
* config/host-solaris.c: Don't include <sys/mman.h>.
* config/i386/cygming.h: Don't include <stdio.h>.
* config/i386/driver-i386.c: Don't include <stdlib.h>.
* config/i386/host-cygwin.c: Don't include <sys/mman.h>.
* config/iq2000/iq2000.c: Don't include <signal.h>.
* config/m32c/m32c-pragma.c: Don't include <stdio.h>.
* config/m68hc11/m68hc11.c: Don't include <stdio.h>.
* config/mep/mep-pragma.c: Don't include <stdio.h>.
* config/microblaze/microblaze.c: Don't include <signal.h>.
* config/mips/mips.c: Don't include <signal.h>.
* config/rs6000/host-darwin.c: Don't include <signal.h>.
* cppdefault.c (cpp_relocated): Use getenv instead of
GET_ENVIRONMENT.
* defaults.h (GET_ENVIRONMENT): Don't define.
* et-forest.h: Don't include <ansidecl.h> or <stddef.h>.
* gcc.c: Don't include <signal.h>, <sys/mman.h> or <sys/types.h>.
(SIGCHLD, MAP_FAILED, kill): Don't define.
(process_command): Use getenv instead of GET_ENVIRONMENT.
* genhooks.c: Don't include <string.h>.
* ggc-common.c: Don't include <sys/resource.h>, <sys/mman.h> or
<sys/types.h>.
(MAP_FAILED): Don't define.
* ggc-page.c Don't include <sys/mman.h>.
(MAP_ANONYMOUS, MAP_FAILED): Don't define.
* ggc-zone.c: Don't include <sys/mman.h>.
(MAP_ANONYMOUS, MAP_FAILED): Don't define.
* graph.c: Include "config.h" instead of <config.h>.
* incpath.c (add_env_var_paths): Use getenv instead of
GET_ENVIRONMENT.
* lto-wrapper.c: Don't include <errno.h>, <signal.h> or
"libiberty.h".
(SIGCHLD, kill): Don't define.
* mips-tfile.c: Don't include <signal.h>.
* opts.c: Don't include <signal.h> or <sys/resource.h>.
(print_specific_help): Use getenv instead of GET_ENVIRONMENT.
* passes.c: Don't include <signal.h>, <sys/resource.h> or
<sys/times.h>.
* sparseset.h: Don't include <assert.h>.
* timevar.c: Don't include <sys/times.h> or <sys/resource.h>.
* tlink.c: Don't include "libiberty.h".
* toplev.c: Don't include <signal.h> or <sys/times.h>.
* tree-mudflap.c: Include "demangle.h" instead of <demangle.h>.
* tree-switch-conversion.c: Don't include <signal.h>.
* vmsdbgout.c: Don't include <errno.h> or <string.h>.
c-family:
* c-opts.c (check_deps_environment_vars): Use getenv instead of
GET_ENVIRONMENT.
* c-pch.c (O_BINARY): Don't define here.
* c-pragma.h: Include "cpplib.h" instead of <cpplib.h>.
fortran:
* gfortran.h (alloca): Don't include definitions.
(NULL): Don't define.
java:
* boehm.c: Include "config.h" instead of <config.h>.
* builtins.c: Don't include <stdarg.h>.
* class.c: Don't include "stdio.h".
(O_BINARY): Don't define here.
* jcf-depend.c: Don't include <assert.h>.
(jcf_dependency_set_dep_file, jcf_dependency_init,
jcf_dependency_write): Use gcc_assert.
* jcf-io.c (O_BINARY): Don't define here.
* jcf-path.c: Don't include "tm.h".
(jcf_path_init): Use getenv instead of GET_ENVIRONMENT.
* resource.c: Don't include "stdio.h".
(O_BINARY): Don't define here.
* verify-impl.c: Don't include <stdio.h>.
lto:
* lto-endian.h: Delete.
* lto-object.c: Don't include "libiberty.h".
(O_BINARY): Don't define.
* lto.c: Don't include "libiberty.h" or <sys/mman.h>.
(O_BINARY): Don't define.
From-SVN: r167241
2010-11-29 15:09:41 +01:00
|
|
|
gettimeofday mbstowcs wcswidth mmap setlocale \
|
2011-10-17 16:43:37 +02:00
|
|
|
gcc_UNLOCKED_FUNCS madvise)
|
1998-02-01 01:48:06 +01:00
|
|
|
|
2003-04-24 20:35:45 +02:00
|
|
|
if test x$ac_cv_func_mbstowcs = xyes; then
|
|
|
|
AC_CACHE_CHECK(whether mbstowcs works, gcc_cv_func_mbstowcs_works,
|
2005-07-06 03:56:56 +02:00
|
|
|
[ AC_RUN_IFELSE([AC_LANG_SOURCE([[#include <stdlib.h>
|
2003-04-24 20:35:45 +02:00
|
|
|
int main()
|
|
|
|
{
|
|
|
|
mbstowcs(0, "", 0);
|
|
|
|
return 0;
|
2005-07-06 03:56:56 +02:00
|
|
|
}]])],
|
|
|
|
[gcc_cv_func_mbstowcs_works=yes],
|
|
|
|
[gcc_cv_func_mbstowcs_works=no],
|
|
|
|
[gcc_cv_func_mbstowcs_works=yes])])
|
2003-04-24 20:35:45 +02:00
|
|
|
if test x$gcc_cv_func_mbstowcs_works = xyes; then
|
|
|
|
AC_DEFINE(HAVE_WORKING_MBSTOWCS, 1,
|
|
|
|
[Define this macro if mbstowcs does not crash when its
|
|
|
|
first argument is NULL.])
|
|
|
|
fi
|
|
|
|
fi
|
|
|
|
|
2004-01-03 19:59:32 +01:00
|
|
|
AC_CHECK_TYPE(ssize_t, int)
|
2008-07-06 22:28:30 +02:00
|
|
|
AC_CHECK_TYPE(caddr_t, char *)
|
1998-07-20 15:35:38 +02:00
|
|
|
|
2012-04-03 14:07:28 +02:00
|
|
|
GCC_AC_FUNC_MMAP_BLACKLIST
|
1999-03-11 01:58:01 +01:00
|
|
|
|
|
|
|
case "${host}" in
|
2001-12-11 13:17:33 +01:00
|
|
|
*-*-*vms*)
|
2003-10-13 19:50:21 +02:00
|
|
|
# Under VMS, vfork works very differently than on Unix. The standard test
|
2001-12-11 13:17:33 +01:00
|
|
|
# won't work, and it isn't easily adaptable. It makes more sense to
|
|
|
|
# just force it.
|
|
|
|
ac_cv_func_vfork_works=yes
|
|
|
|
;;
|
1999-03-11 01:58:01 +01:00
|
|
|
esac
|
2005-07-06 03:56:56 +02:00
|
|
|
AC_FUNC_FORK
|
1998-02-07 14:21:36 +01:00
|
|
|
|
backport: As described in http://gcc.gnu.org/ml/gcc/2012-08/msg00015.html...
Merge from cxx-conversion branch (http://gcc.gnu.org/wiki/cxx-conversion).
As described in http://gcc.gnu.org/ml/gcc/2012-08/msg00015.html, this patch
changes the default bootstrap process so that stage 1 always builds with a C++
compiler.
Other than the bootstrap change, the patch makes no functional changes to the
compiler. Everything should build as it does now in trunk. The main
changes in this patch are:
1- Configuration changes.
2- Re-write of VEC.
3- Re-write of gengtype to support C++ templates and
user-provided marking functions.
4- New hash table class.
5- Re-write double_int.
6- Implement tree macros as inline functions so they can be
called from gdb.
As discussed before, several of these changes do not fully change
the call sites to use the new APIs.
The bootstrap changes have already been tested on a wide range of
targets (http://gcc.gnu.org/wiki/CppBuildStatus). Additionally,
I have tested the merged trunk on: x86_64-unknown-linux-gnu,
mips64el-unknown-linux-gnu, powerpc64-unknown-linux-gnu,
i686-pc-linux-gnu, and ia64-unknown-linux-gnu.
ChangeLog
2012-08-14 Diego Novillo <dnovillo@google.com>
Merge from cxx-conversion branch.
* Makefile.tpl (STAGE[+id+]_CXXFLAGS): Remove
POSTSTAGE1_CONFIGURE_FLAGS.
* Makefile.in: Regenerate.
* configure.ac (ENABLE_BUILD_WITH_CXX): Remove. Update all users.
Force C++ when bootstrapping.
* configure: Regenerate.
libcpp/ChangeLog
2012-08-14 Diego Novillo <dnovillo@google.com>
Merge from cxx-conversion branch. Configury.
* Makefile.in: Remove all handlers of ENABLE_BUILD_WITH_CXX.
* configure.ac: Likewise.
* configure: Regenerate.
2012-08-14 Lawrence Crowl <crowl@google.com>
Merge from cxx-conversion branch. New C++ hash table.
* include/symtab.h (typedef struct ht hash_table): Change the typedef
name to cpp_hash_table. Update all users of the typedef.
gcc/ChangeLog
2012-08-14 Diego Novillo <dnovillo@google.com>
Merge from cxx-conversion branch. Configury.
* configure.ac (CXX_FOR_BUILD): Define and substitute.
(BUILD_CXXFLAGS): Define.
Remove all handlers of ENABLE_BUILD_WITH_CXX.
Force all build to be with C++.
* Makefile.in (BUILD_CXXFLAGS): Use it.
Remove all handlers of ENABLE_BUILD_WITH_CXX.
* configure: Regenerate.
* config.in: Regenerate.
* doc/install.texi: Remove documentation for --enable-build-with-cxx
and --enable-build-poststage1-with-cxx.
2012-08-14 Diego Novillo <dnovillo@google.com>
Merge from cxx-conversion branch. Re-implement VEC in C++.
* vec.c (vec_heap_free): Convert into a template function.
(vec_gc_o_reserve_1): Make extern.
(vec_gc_p_reserve): Remove.
(vec_gc_p_reserve_exact): Remove.
(vec_gc_o_reserve): Remove.
(vec_gc_o_reserve_exact): Remove.
(vec_heap_o_reserve_1): Make extern.
(vec_heap_p_reserve): Remove.
(vec_heap_p_reserve_exact): Remove.
(vec_heap_o_reserve): Remove.
(vec_heap_o_reserve_exact): Remove.
(vec_stack_p_reserve): Remove.
(vec_stack_p_reserve_exact): Remove.
* vec.h (VEC_CHECK_INFO, VEC_CHECK_DECL, VEC_CHECK_PASS,
VEC_ASSERT, VEC_ASSERT_FAIL, vec_assert_fail): Move earlier
in the file.
(VEC): Define to vec_t<T>.
(vec_allocation_t): Define.
(struct vec_prefix): Move earlier in the file.
(vec_t<T>): New template.
(DEF_VEC_I, DEF_VECL_ALLOC_I, DEF_VEC_P, DEF_VEC_ALLOC_P,
DEF_VEC_O, DEF_VEC_ALLOC_P, DEF_VEC_O, DEF_VEC_ALLOC_O,
DEF_VEC_ALLOC_P_STACK, DEF_VEC_ALLOC_O_STACK,
DEF_VEC_ALLOC_I_STACK): Expand to 'struct vec_swallow_trailing_semi'.
(DEF_VEC_A): Provide template instantiations for
GC/PCH markers that do not traverse the vector.
(vec_stack_p_reserve): Remove.
(vec_stack_p_reserve_exact): Remove.
(vec_stack_p_reserve_exact_1): Remove.
(vec_stack_o_reserve): Remove.
(vec_stack_o_reserve_exact): Remove.
(vec_stack_free): Re-write as a template function.
(vec_reserve): New template function.
(vec_reserve_exact): New template function.
(vec_heap_free): New template function if GATHER_STATISTICS is
defined. Otherwise, macro that expands to free().
(VEC_length_1): New template function.
(VEC_length): Call it.
(VEC_empty_1): New template function.
(VEC_empty): Call it.
(VEC_address_1): New template function.
(VEC_address): Call it.
(VEC_last_1): New template function.
(VEC_last): Call it. Change return type to T&.
Change all users that used VEC_Os.
(VEC_index_1): New template function.
(VEC_index): Call it. Return a T& instead of a T*.
Update all callers that were using VEC_O before.
(VEC_iterate_1): New template function.
(VEC_iterate): Call it.
(VEC_embedded_size_1): New template function.
(VEC_embedded_size): Call it.
(VEC_embedded_init_1): New template function.
(VEC_embedded_init): Call it.
(VEC_alloc_1): New template function.
(VEC_alloc): Call it. If A is 'stack', call XALLOCAVAR to
do the allocation.
(VEC_free_1): New template function.
(VEC_free): Call it.
(VEC_copy_1): New template function.
(VEC_copy): Call it.
(VEC_space_1): New template function
(VEC_space): Call it.
(VEC_reserve_1): New template function.
(VEC_reserve): Call it.
(VEC_reserve_exact_1): New template function.
(VEC_reserve_exact): Call it.
(VEC_splice_1): New template function.
(VEC_splice): Call it.
(VEC_safe_splice_1): New template function.
(VEC_safe_splice): Call it.
(VEC_quick_push_1): New template function. Create two overloads, one
accepting T, the other accepting T *. Update all callers
where T and T * are ambiguous.
(VEC_quick_push): Call it.
(VEC_safe_push_1): New template function. Create two overloads, one
accepting T, the other accepting T *. Update all callers
where T and T * are ambiguous.
(VEC_safe_push): Call it.
(VEC_pop_1): New template function.
(VEC_pop): Call it.
(VEC_truncate_1): New template function.
(VEC_truncate): Call it.
(VEC_safe_grow_1): New template function.
(VEC_safe_grow): Call it.
(VEC_safe_grow_cleared_1): New template function.
(VEC_safe_grow_cleared): Call it.
(VEC_replace_1): New template function.
(VEC_replace): Call it. Always accept T instead of T*.
Update all callers that used VEC_Os.
(VEC_quick_insert_1): New template function.
(VEC_quick_insert): Call it.
(VEC_safe_insert_1): New template function.
(VEC_safe_insert): Call it.
(VEC_ordered_remove_1): New template function.
(VEC_ordered_remove): Call it.
(VEC_unordered_remove_1): New template function.
(VEC_unordered_remove): Call it.
(VEC_block_remove_1): New template function.
(VEC_block_remove): Call it.
(VEC_lower_bound_1): New template function.
(VEC_lower_bound): Call it.
(VEC_OP): Remove.
(DEF_VEC_FUNC_P): Remove.
(DEF_VEC_ALLOC_FUNC_P): Remove.
(DEF_VEC_NONALLOC_FUNCS_P): Remove.
(DEF_VEC_FUNC_O): Remove.
(DEF_VEC_ALLOC_FUNC_O): Remove.
(DEF_VEC_NONALLOC_FUNCS_O): Remove.
(DEF_VEC_ALLOC_FUNC_I): Remove.
(DEF_VEC_NONALLOC_FUNCS_I): Remove.
(DEF_VEC_ALLOC_FUNC_P_STACK): Remove.
(DEF_VEC_ALLOC_FUNC_O_STACK): Remove.
(DEF_VEC_ALLOC_FUNC_I_STACK): Remove.
(vec_reserve_exact): New template function.
* gengtype-lex.l (DEF_VEC_ALLOC_[IOP]/{EOID}): Remove.
* gengtype-parse.c (token_names): Remove DEF_VEC_ALLOC_[IOP].
(typedef_name): Emit vec_t<C1> instead of VEC_C1_C2.
(def_vec_alloc): Remove. Update all callers.
* gengtype.c (filter_type_name): New.
(output_mangled_typename): Call it.
(write_func_for_structure): Likewise.
(write_types): Likewise.
(write_root): Likewise.
(write_typed_alloc_def): Likewise.
(note_def_vec): Emit vec_t<TYPE_NAME> instead of VEC_TYPE_NAME_base.
(note_def_vec_alloc): Remove.
* gengtype.h (note_def_vec_alloc): Remove.
(DEFVEC_ALLOC): Remove token code.
* df-scan.c (df_bb_verify): Remove call to df_free_collection_rec
inside the insn traversal loop.
* gimplify.c (gimplify_compound_lval): Rename STACK to EXPR_STACK.
* ipa-inline.c (inline_small_functions): Rename HEAP to EDGE_HEAP.
* reg-stack.c (stack): Rename to STACK_PTR. Update all users.
* tree-vrp.c (stack): Rename to EQUIV_STACK. Update all users.
* config/bfin/bfin.c (hwloop_optimize): Update some calls to
VEC_* for vectors of non-pointers.
* config/c6x/c6x.c (try_rename_operands): Likewise.
(reshuffle_units): Likewise.
* config/mips/mips.c (mips_multi_start): Likewise.
(mips_multi_add): Likewise.
(mips_multi_copy_insn): Likewise.
(mips_multi_set_operand): Likewise.
* hw-doloop.c (discover_loop): Likewise.
(discover_loops): Likewise.
(reorg_loops): Likewise.
2012-08-14 Diego Novillo <dnovillo@google.com>
Merge from cxx-conversion branch. C++ support in gengtype.
* coretypes.h (gt_pointer_operator): Move from ...
* ggc.h: ... here.
* doc/gty.texi: Document support for C++ templates and
user-provided markers.
* gcc/gengtype-lex.l: Update copyright year.
Remove support for recognizing DEF_VEC_O, DEF_VEC_P and
DEFVEC_I.
* gengtype-parse.c: Update copyright year.
(token_names): Remove DEF_VEC_O, DEF_VEC_P and DEF_VEC_I.
(require_template_declaration): New.
(typedef_name): Call it.
(type): Replace IS_UNION with KIND. Replace all users.
(def_vec): Remove. Update all users.
* gengtype-state.c (type_lineloc): Handle TYPE_USER_STRUCT.
(write_state_user_struct_type): New.
(write_state_type): Call it.
(read_state_user_struct_type): New.
(read_state_type): Call it.
* gengtype.c: Update copyright year.
(dump_pair): Move declaration to the top.
(dump_type): Likewise.
(dump_type_list): Likewise.
(dbgprint_count_type_at): Handle TYPE_USER_STRUCT.
(create_user_defined_type): New.
(resolve_typedef): Call it.
(new_structure): Replace argument ISUNION with KIND.
Change users to refer to KIND directly.
Update all callers.
(find_structure): Likewise.
(set_gc_used_type): Handle TYPE_USER_STRUCT.
(create_file): Update HDR to include new copyright year.
(struct walk_type_data): Add field IN_PTR_FIELD.
(output_mangled_typename): Handle TYPE_USER_STRUCT.
(walk_type): Set D->IN_PTR_FIELD when walking a TYPE_POINTER.
Clear it afterwards.
Handle TYPE_USER_STRUCT.
(write_types_process_field): Handle TYPE_USER_STRUCT.
(get_type_specifier): Move earlier in the file.
(write_type_decl): New.
(write_marker_function_name): New.
(write_user_func_for_structure_ptr): New.
(write_user_func_for_structure_body): New.
(write_user_marking_functions): New.
(write_func_for_structure): Call write_marker_function_name
and write_type_decl.
Do not call walk_type for TYPE_USER_STRUCT. Emit a call to the user
function directly.
Call write_user_marking_functions on TYPE_USER_STRUCTs.
(write_types_local_user_process_field): New.
(write_pch_user_walking_for_structure_body): New.
(write_pch_user_walking_functions): New.
(write_types_local_process_field): Handle TYPE_USER_STRUCT.
(write_local_func_for_structure): Do not call walk_type for
TYPE_USER_STRUCT. Instead, emit the call to gt_pch_nx directly.
Call write_pch_user_walking_functions for TYPE_USER_STRUCTs.
(write_root): Handle TYPE_USER_STRUCT.
(vec_prefix_type): Remove. Update all users.
(note_def_vec): Remove. Update all users.
(dump_typekind): Handle TYPE_USER_STRUCT.
(dump_type): Initialize SEEN_TYPES, if needed.
Handle TYPE_USER_STRUCT.
(dump_everything): Do not initialize SEEN_TYPES.
* gengtype.h: Update copyright year.
(enum typekind): Add TYPE_USER_STRUCT.
(union_or_struct_p): Rename from UNION_OR_STRUCT_P.
Convert into function.
Add an overload taking const_type_p.
Update all callers.
(new_structure): Change second field to type enum typekind.
Update all users.
(find_structure): Likewise.
(note_def_vec): Remove.
(DEFVEC_OP): Remove.
(DEFVEC_I): Remove.
* ggc-page.c (gt_ggc_mx): Add entry points for marking
'const char *&', 'unsigned char *&' and 'unsigned char&'.
* ggc-zone.c (gt_ggc_mx): Add entry points for marking
'const char *&' and 'unsigned char *&'.
* stringpool.c (gt_pch_nx): Add entry points for marking
'const char *&', 'unsigned char *&' and 'unsigned char&'.
Add an entry point for the overload taking arguments 'unsigned char
*', 'gt_pointer_operator' and 'void *'.
* vec.h (struct vec_prefix): Remove GTY marker.
(struct vec_t): Remove GTY((length)) attribute from field 'vec'.
(gt_ggc_mx (vec_t<T> *)): New template function.
(gt_pch_nx (vec_t<T> *)): New template function.
(gt_pch_nx (vec_t<T *> *, gt_pointer_operator, void *)): New template
function.
(gt_pch_nx (vec_t<T> *, gt_pointer_operator, void *)): New template
function.
* basic-block.h (struct edge_def): Mark GTY((user)).
Remove all GTY markers from fields.
(gt_ggc_mx): Declare.
(gt_pch_nx): Declare.
* tree-cfg.c (gt_ggc_mx): New.
(gt_pch_nx): New.
* gengtype-lex.l (USER_GTY): Add pattern for "user".
* gengtype-parse.c (option): Handle USER_GTY.
(opts_have): New.
(type): Call it.
If the keyword 'user' is used, do not walk the fields
of the structure.
* gengtype.h (USER_GTY): Add.
* doc/gty.texi: Update.
2012-08-14 Lawrence Crowl <crowl@google.com>
Merge cxx-conversion branch. Implement C++ hash table.
* hash-table.h: New. Implementation borrowed from libiberty/hashtab.c.
* hash-table.c: Likewise.
* tree-ssa-tail-merge.c: Include hash-table.h instead of hashtab.h.
(static htab_t same_succ_htab): Change type to hash_table;
move specification of helper functions from create call to declaration.
Change users to invoke member functions.
(same_succ_print_traverse): Make extern ssa_.... Change callers.
Remove void* casting.
(same_succ_hash): Likewise.
(same_succ_equal): Likewise.
(same_succ_delete): Likewise.
* tree-ssa-threadupdate.c: Include hash-table.h.
(struct local_info): Rename to ssa_local_info_t to avoid overloading
the type name local_info with the variable name local_info.
(static htab_t redirection_data): Change type to hash_table.
Move specification of helper functions from create call to declaration.
Change users to invoke member functions.
(redirection_data_hash): Make extern ssa_.... Change callers.
Remove void* casting.
(redirection_data_eq): Likewise.
(fix_duplicate_block_edges): Likewise.
(create_duplicates): Likewise.
(fixup_template_block): Likewise.
(redirect_edges): Likewise.
(lookup_redirection_data): Change types associated with the hash table
from void* to their actual type. Remove unnecessary casts.
* tree-ssa-ccp.c: Include hash-table.h.
(typedef gimple_htab): New. Uses hash_table. Replace specific uses
of htab_t with gimple_htab. Change users to invoke member functions.
Move specification of helper functions from create call to declaration.
* tree-ssa-coalesce.c: Include hash-table.h instead of hashtab.h.
(hash_ssa_name_by_var): Make extern. Remove void* casting.
(eq_ssa_name_by_var): Likewise.
(coalesce_ssa_name): Change type of local static htab_t ssa_name_hash
to hash_table. Change users to invoke member functions.
Move specification of helper functions from create call to declaration.
* coverage.c: Include hash-table.h instead of hashtab.h.
(static htab_t counts_hash): Change type to hash_table;
move specification of helper functions from create call to declaration.
Change users to invoke member functions.
(htab_counts_entry_hash): Make extern. Rename with coverage_... instead
of htab_... Remove void* casting.
(htab_counts_entry_eq): Likewise.
(htab_counts_entry_del): Likewise.
* tree-ssa-pre.c: Include hash-table.h instead of hashtab.h.
(static htab_t expression_to_id): Change type to hash_table.
Move specification of helper functions from create call to declaration.
Change users to invoke member functions.
(static htab_t phi_translate_table): Likewise.
(pre_expr_eq): Make extern ssa_.... Change callers.
Remove void* casting.
(pre_expr_hash): Likewise.
(expr_pred_trans_hash): Likewise.
(expr_pred_trans_eq): Likewise.
(alloc_expression_id): Change types associated with the hash table
from void* to their actual type. Remove unnecessary casts.
(lookup_expression_id): Likewise.
(phi_trans_lookup): Likewise.
(phi_trans_add): Likewise.
* stringpool.c: Rename uses of libcpp typedef hash_table to
cpp_hash_table.
* Makefile.in: Add hash-table.o to OBJS-libcommon-target.
Add $(HASH_TABLE_H). Add new dependences on $(HASH_TABLE_H).
2012-08-14 Lawrence Crowl <crowl@google.com>
Merge from cxx-conversion branch. Re-write double_int in C++.
* hash-table.h
(typedef double_int): Change to struct (POD).
(double_int::make): New overloads for int to double-int conversion.
(double_int::mask): New.
(double_int::max_value): New.
(double_int::min_value): New.
(double_int::operator ++): New.
(double_int::operator --): New.
(double_int::operator *=): New.
(double_int::operator +=): New.
(double_int::operator -=): New.
(double_int::to_signed): New.
(double_int::to_unsigned): New.
(double_int::fits_unsigned): New.
(double_int::fits_signed): New.
(double_int::fits): New.
(double_int::trailing_zeros): New.
(double_int::popcount): New.
(double_int::multiple_of): New.
(double_int::set_bit): New.
(double_int::mul_with_sign): New.
(double_int::operator * (binary)): New.
(double_int::operator + (binary)): New.
(double_int::operator - (binary)): New.
(double_int::operator - (unary)): New.
(double_int::operator ~ (unary)): New.
(double_int::operator & (binary)): New.
(double_int::operator | (binary)): New.
(double_int::operator ^ (binary)): New.
(double_int::and_not): New.
(double_int::lshift): New.
(double_int::rshift): New.
(double_int::alshift): New.
(double_int::arshift): New.
(double_int::llshift): New.
(double_int::lrshift): New.
(double_int::lrotate): New.
(double_int::rrotate): New.
(double_int::div): New.
(double_int::sdiv): New.
(double_int::udiv): New.
(double_int::mod): New.
(double_int::smod): New.
(double_int::umod): New.
(double_int::divmod): New.
(double_int::sdivmod): New.
(double_int::udivmod): New.
(double_int::ext): New.
(double_int::zext): New.
(double_int::sext): New.
(double_int::is_zero): New.
(double_int::is_one): New.
(double_int::is_minus_one): New.
(double_int::is_negative): New.
(double_int::cmp): New.
(double_int::ucmp): New.
(double_int::scmp): New.
(double_int::ult): New.
(double_int::ugt): New.
(double_int::slt): New.
(double_int::sgt): New.
(double_int::max): New.
(double_int::smax): New.
(double_int::umax): New.
(double_int::min): New.
(double_int::smin): New.
(double_int::umin): New.
(double_int::operator ==): New.
(double_int::operator !=): New.
(shwi_to_double_int): Change implementation to use member function.
(double_int_minus_one): Likewise.
(double_int_zero): Likewise.
(double_int_one): Likewise.
(double_int_two): Likewise.
(double_int_ten): Likewise.
(uhwi_to_double_int): Likewise.
(double_int_to_shwi): Likewise.
(double_int_to_uhwi): Likewise.
(double_int_fits_in_uhwi_p): Likewise.
(double_int_fits_in_shwi_p): Likewise.
(double_int_fits_in_hwi_p): Likewise.
(double_int_mul): Likewise.
(double_int_mul_with_sign): Likewise.
(double_int_add): Likewise.
(double_int_sub): Likewise.
(double_int_neg): Likewise.
(double_int_div): Likewise.
(double_int_sdiv): Likewise.
(double_int_udiv): Likewise.
(double_int_mod): Likewise.
(double_int_smod): Likewise.
(double_int_umod): Likewise.
(double_int_divmod): Likewise.
(double_int_sdivmod): Likewise.
(double_int_udivmod): Likewise.
(double_int_multiple_of): Likewise.
(double_int_setbit): Likewise.
(double_int_ctz): Likewise.
(double_int_not): Likewise.
(double_int_ior): Likewise.
(double_int_and): Likewise.
(double_int_and_not): Likewise.
(double_int_xor): Likewise.
(double_int_lshift): Likewise.
(double_int_rshift): Likewise.
(double_int_lrotate): Likewise.
(double_int_rrotate): Likewise.
(double_int_cmp): Likewise.
(double_int_scmp): Likewise.
(double_int_ucmp): Likewise.
(double_int_max): Likewise.
(double_int_smax): Likewise.
(double_int_umax): Likewise.
(double_int_min): Likewise.
(double_int_smin): Likewise.
(double_int_umin): Likewise.
(double_int_ext): Likewise.
(double_int_sext): Likewise.
(double_int_zext): Likewise.
(double_int_mask): Likewise.
(double_int_max_value): Likewise.
(double_int_min_value): Likewise.
(double_int_zero_p): Likewise.
(double_int_one_p): Likewise.
(double_int_minus_one_p): Likewise.
(double_int_equal_p): Likewise.
(double_int_popcount): Likewise.
* hash-table.c
(double_int_mask): Reuse implementation for double_int::mask.
(double_int_max_value): Likewise.
(double_int_min_value): Likewise.
(double_int_ext): Likewise.
(double_int_zext): Likewise.
(double_int_sext): Likewise.
(double_int_mul_with_sign): Likewise.
(double_int_divmod): Likewise.
(double_int_sdivmod): Likewise.
(double_int_udivmod): Likewise.
(double_int_div): Likewise.
(double_int_sdiv): Likewise.
(double_int_udiv): Likewise.
(double_int_mod): Likewise.
(double_int_smod): Likewise.
(double_int_umod): Likewise.
(double_int_multiple_of): Likewise.
(double_int_lshift): Likewise.
(double_int_rshift): Likewise.
(double_int_lrotate): Likewise.
(double_int_rrotate): Likewise.
(double_int_cmp): Likewise.
(double_int_ucmp): Likewise.
(double_int_scmp): Likewise.
(double_int_max): Likewise.
(double_int_smax): Likewise.
(double_int_umax): Likewise.
(double_int_min): Likewise.
(double_int_smin): Likewise.
(double_int_umin): Likewise.
(double_int_min): Likewise.
(double_int_min): Likewise.
(double_int_min): Likewise.
(double_int_min): Likewise.
(double_int_min): Likewise.
(double_int_min): Likewise.
(double_int::alshift): New.
(double_int::arshift): New.
(double_int::llshift): New.
(double_int::lrshift): New.
(double_int::ult): New.
(double_int::ugt): New.
(double_int::slt): New.
(double_int::sgt): New.
(double_int_setbit): Reuse implementation for double_int::set_bit,
which avoids a name conflict with a macro.
(double_int_double_int_ctz): Reuse implementation for
double_int::trailing_zeros.
(double_int_fits_in_shwi_p): Reuse implementation for
double_int::fits_signed.
(double_int_fits_in_hwi_p): Reuse implementation for double_int::fits.
(double_int_mul): Reuse implementation for binary
double_int::operator *.
(double_int_add): Likewise.
(double_int_sub): Likewise.
(double_int_neg): Reuse implementation for unary
double_int::operator -.
(double_int_max_value): Likewise.
* fixed-value.c: Change to use member functions introduced above.
2012-08-14 Lawrence Crowl <crowl@google.com>
Merge cxx-conversion branch. Support tree macro calling
from gdb.
* tree.h (tree_check): New.
(TREE_CHECK): Use inline function above instead of __extension__.
(tree_not_check): New.
(TREE_NOT_CHECK): Use inline function above instead of __extension__.
(tree_check2): New.
(TREE_CHECK2): Use inline function above instead of __extension__.
(tree_not_check2): New.
(TREE_NOT_CHECK2): Use inline function above instead of __extension__.
(tree_check3): New.
(TREE_CHECK3): Use inline function above instead of __extension__.
(tree_not_check3): New.
(TREE_NOT_CHECK3): Use inline function above instead of __extension__.
(tree_check4): New.
(TREE_CHECK4): Use inline function above instead of __extension__.
(tree_not_check4): New.
(TREE_NOT_CHECK4): Use inline function above instead of __extension__.
(tree_check5): New.
(TREE_CHECK5): Use inline function above instead of __extension__.
(tree_not_check5): New.
(TREE_NOT_CHECK5): Use inline function above instead of __extension__.
(contains_struct_check): New.
(CONTAINS_STRUCT_CHECK): Use inline function above instead of
__extension__.
(tree_class_check): New.
(TREE_CLASS_CHECK): Use inline function above instead of __extension__.
(tree_range_check): New.
(TREE_RANGE_CHECK): Use inline function above instead of __extension__.
(omp_clause_subcode_check): New.
(OMP_CLAUSE_SUBCODE_CHECK): Use inline function above instead of
__extension__.
(omp_clause_range_check): New.
(OMP_CLAUSE_RANGE_CHECK): Use inline function above instead of
__extension__.
(expr_check): New.
(EXPR_CHECK): Use inline function above instead of __extension__.
(non_type_check): New.
(NON_TYPE_CHECK): Use inline function above instead of __extension__.
(tree_vec_elt_check): New.
(TREE_VEC_ELT_CHECK): Use inline function above instead of
__extension__.
(omp_clause_elt_check): New.
(OMP_CLAUSE_ELT_CHECK): Use inline function above instead of
__extension__.
(tree_operand_check): New.
(TREE_OPERAND_CHECK): Use inline function above instead of
__extension__.
(tree_operand_check_code): New.
(TREE_OPERAND_CHECK_CODE): Use inline function above instead of
__extension__.
(TREE_CHAIN): Simplify implementation.
(TREE_TYPE): Simplify implementation.
(tree_operand_length): Move for compilation dependences.
* gdbinit.in: (macro define __FILE__): New.
(macro define __LINE__): New.
(skip "tree.h"): New.
gcc/cp/ChangeLog
2012-08-14 Diego Novillo <dnovillo@google.com>
Merge from cxx-conversion branch. Re-write VEC in C++.
* call.c (add_function_candidate): Remove const qualifier
from call to VEC_index.
2012-08-14 Diego Novillo <dnovillo@google.com>
Merge from cxx-conversion branch. Configury.
* go-c.h: Remove all handlers of ENABLE_BUILD_WITH_CXX.
* go-gcc.cc: Likewise.
* go-system.h: Likewise.
From-SVN: r190402
2012-08-15 03:56:07 +02:00
|
|
|
AM_ICONV
|
2011-07-22 10:58:25 +02:00
|
|
|
|
Makefile.tpl (configure-gcc): Depend on maybe-configure-intl.
top:
* Makefile.tpl (configure-gcc): Depend on maybe-configure-intl.
* Makefile.in: Regenerate.
config:
* gettext.m4: Delete all former contents.
(ZW_GNU_GETTEXT_SISTER_DIR): New macro.
* progtest.m4: New file.
gcc:
* Makefile.in (top_builddir): Set to "..", not ".".
(INTLLIBS, INTLDEPS): Delete.
(LIBINTL, LIBINTL_DEP, LIBICONV_DEP): New variables to be substituted.
(LIBDEPS): Add $(LIBICONV_DEP).
(LIBS): Take out $(INTLLIBS), add $(LIBINTL) and $(LIBICONV).
(INCLUDES): Replace -I../intl with @INCINTL@.
($(top_builddir)/intl/libintl.a): Delete rule.
(stage2-start, stage3-start, stage4-start, stageprofile-start,
stagefeedback-start): Use $$ for variable to be evaluated by
shell, not make.
* acconfig.h (ENABLE_NLS, HAVE_CATGETS, HAVE_GETTEXT,
HAVE_LC_MESSAGES, HAVE_STPCPY): Delete.
* aclocal.m4: sinclude ../config/progtest.m4. Add
contents of lcmessage.m4 from gettext distro.
* configure.in: Check for wchar.h and setlocale. Set
LIBICONV_DEP to the empty string and substitute it.
Call AM_LC_MESSAGES. Delete AC_ARG_ENABLE for --enable-nls;
this is handled elsewhere. Use ZW_GNU_GETTEXT_SISTER_DIR,
not CY_GNU_GETTEXT. Clear $LIBICONV if its text is included
in $LIBINTL, to avoid linking it twice.
* configure, config.in: Regenerate.
intl:
* README: Update.
* Makefile.in (INSTALL, INSTALL_DATA, MKINSTALLDIRS,
mkinstalldirs, gettextsrcdir, l): Delete.
(COMPILE): Add $(DEFS-$@), remove $(XCFLAGS).
(HEADERS): libgnuintl.h not libgnuintl.h.in. Remove os2compat.h.
(SOURCES): Remove os2compat.c.
(DEFS-dcigettext.o, DEFS-localealias.o, DEFS-localcharset.o,
DEFS-relocatable.o): New.
(all-yes): Add config.intl.
(libintl.h): Use cp, not cat.
(INCLUDES): Remove -I..
(TAGS, CTAGS, ID): Word wrap.
(mostlyclean, distclean): Remove junk.
(config.intl): New rule.
* aclocal.m4: sinclude ../config/progtest.m4 instead of
including it inline.
* config.intl.in: New file.
* configure.in: Take out unnecessary AC_CONFIG_AUX_DIR.
Take out AC_DEFINEs for LOCALEDIR, LOCALE_ALIAS_PATH,
LIBDIR, INSTALLDIR. Set LIBINTL_DEP and INCINTL and AC_SUBST
them. Add config.intl to AC_OUTPUT.
* os2compat.c, os2compat.h: Delete, unused.
From-SVN: r69071
2003-07-08 07:55:11 +02:00
|
|
|
# Until we have in-tree GNU iconv:
|
|
|
|
LIBICONV_DEP=
|
2015-08-07 07:13:52 +02:00
|
|
|
if test -f "$LTLIBICONV"; then
|
|
|
|
LIBICONV_DEP=$LTLIBICONV
|
|
|
|
fi
|
Makefile.tpl (configure-gcc): Depend on maybe-configure-intl.
top:
* Makefile.tpl (configure-gcc): Depend on maybe-configure-intl.
* Makefile.in: Regenerate.
config:
* gettext.m4: Delete all former contents.
(ZW_GNU_GETTEXT_SISTER_DIR): New macro.
* progtest.m4: New file.
gcc:
* Makefile.in (top_builddir): Set to "..", not ".".
(INTLLIBS, INTLDEPS): Delete.
(LIBINTL, LIBINTL_DEP, LIBICONV_DEP): New variables to be substituted.
(LIBDEPS): Add $(LIBICONV_DEP).
(LIBS): Take out $(INTLLIBS), add $(LIBINTL) and $(LIBICONV).
(INCLUDES): Replace -I../intl with @INCINTL@.
($(top_builddir)/intl/libintl.a): Delete rule.
(stage2-start, stage3-start, stage4-start, stageprofile-start,
stagefeedback-start): Use $$ for variable to be evaluated by
shell, not make.
* acconfig.h (ENABLE_NLS, HAVE_CATGETS, HAVE_GETTEXT,
HAVE_LC_MESSAGES, HAVE_STPCPY): Delete.
* aclocal.m4: sinclude ../config/progtest.m4. Add
contents of lcmessage.m4 from gettext distro.
* configure.in: Check for wchar.h and setlocale. Set
LIBICONV_DEP to the empty string and substitute it.
Call AM_LC_MESSAGES. Delete AC_ARG_ENABLE for --enable-nls;
this is handled elsewhere. Use ZW_GNU_GETTEXT_SISTER_DIR,
not CY_GNU_GETTEXT. Clear $LIBICONV if its text is included
in $LIBINTL, to avoid linking it twice.
* configure, config.in: Regenerate.
intl:
* README: Update.
* Makefile.in (INSTALL, INSTALL_DATA, MKINSTALLDIRS,
mkinstalldirs, gettextsrcdir, l): Delete.
(COMPILE): Add $(DEFS-$@), remove $(XCFLAGS).
(HEADERS): libgnuintl.h not libgnuintl.h.in. Remove os2compat.h.
(SOURCES): Remove os2compat.c.
(DEFS-dcigettext.o, DEFS-localealias.o, DEFS-localcharset.o,
DEFS-relocatable.o): New.
(all-yes): Add config.intl.
(libintl.h): Use cp, not cat.
(INCLUDES): Remove -I..
(TAGS, CTAGS, ID): Word wrap.
(mostlyclean, distclean): Remove junk.
(config.intl): New rule.
* aclocal.m4: sinclude ../config/progtest.m4 instead of
including it inline.
* config.intl.in: New file.
* configure.in: Take out unnecessary AC_CONFIG_AUX_DIR.
Take out AC_DEFINEs for LOCALEDIR, LOCALE_ALIAS_PATH,
LIBDIR, INSTALLDIR. Set LIBINTL_DEP and INCINTL and AC_SUBST
them. Add config.intl to AC_OUTPUT.
* os2compat.c, os2compat.h: Delete, unused.
From-SVN: r69071
2003-07-08 07:55:11 +02:00
|
|
|
AC_SUBST(LIBICONV_DEP)
|
|
|
|
|
|
|
|
AM_LC_MESSAGES
|
2001-07-18 19:17:03 +02:00
|
|
|
|
2004-10-20 23:36:47 +02:00
|
|
|
AM_LANGINFO_CODESET
|
|
|
|
|
2000-04-26 02:03:37 +02:00
|
|
|
# We will need to find libiberty.h and ansidecl.h
|
|
|
|
saved_CFLAGS="$CFLAGS"
|
2013-01-02 12:57:31 +01:00
|
|
|
CFLAGS="$CFLAGS -I${srcdir} -I${srcdir}/../include $GMPINC"
|
2011-10-19 18:02:30 +02:00
|
|
|
saved_CXXFLAGS="$CXXFLAGS"
|
2013-01-02 12:57:31 +01:00
|
|
|
CXXFLAGS="$CXXFLAGS -I${srcdir} -I${srcdir}/../include $GMPINC"
|
2015-05-26 14:28:53 +02:00
|
|
|
|
|
|
|
# gcc_AC_CHECK_DECLS doesn't support overloaded functions, so use the
|
|
|
|
# normal autoconf function for these. But force definition of
|
|
|
|
# HAVE_DECL_BASENAME like gcc_AC_CHECK_DECLS does, to suppress the bizarre
|
|
|
|
# basename handling in libiberty.h.
|
|
|
|
AC_CHECK_DECLS([basename(const char*), strstr(const char*,const char*)], , ,[
|
|
|
|
#undef HAVE_DECL_BASENAME
|
|
|
|
#define HAVE_DECL_BASENAME 1
|
|
|
|
#include "ansidecl.h"
|
|
|
|
#include "system.h"])
|
|
|
|
|
2015-05-28 22:37:05 +02:00
|
|
|
gcc_AC_CHECK_DECLS(getenv atol atoll asprintf sbrk abort atof getcwd getwd \
|
2015-05-26 14:28:53 +02:00
|
|
|
madvise stpcpy strnlen strsignal strverscmp \
|
2015-09-11 00:52:08 +02:00
|
|
|
strtol strtoul strtoll strtoull setenv unsetenv \
|
2005-07-08 07:51:06 +02:00
|
|
|
errno snprintf vsnprintf vasprintf malloc realloc calloc \
|
2015-05-26 14:28:53 +02:00
|
|
|
free getopt clock getpagesize ffs gcc_UNLOCKED_FUNCS, , ,[
|
ansidecl.h: All logic from gcc/gansidecl.h moved here.
include:
* ansidecl.h: All logic from gcc/gansidecl.h moved here.
gcc:
* gansidecl.h: Delete file.
* configure.in: Change all refs to gansidecl.h to use
ansidecl.h. Adjust *_file_list so they know where ansidecl.h
lives.
* configure: Regenerate.
* Makefile.in (intl.o): Don't depend on gansidecl.h.
* defaults.h: s/gansidecl.h/ansidecl.h/ in comment.
* ggc.h, config/fr30/fr30.h, config/mcore/mcore.c:
Don't include gansidecl.h.
* intl.c, main.c, version.c, fixinc/fixlib.h,
fixinc/procopen.c, fixinc/server.c: Include ansidecl.h not
gansidecl.h.
gcc/java:
* Make-lang.in (buffer.o, check-init.o, class.o): Don't depend
on gansidecl.h.
* buffer.c, jvgenmain.c: Don't include gansidecl.h.
libiberty:
* make-temp-file.c (try): Inline.
From-SVN: r41069
2001-04-04 02:46:27 +02:00
|
|
|
#include "ansidecl.h"
|
2000-04-26 02:03:37 +02:00
|
|
|
#include "system.h"])
|
1999-09-07 07:49:18 +02:00
|
|
|
|
2000-05-23 19:42:19 +02:00
|
|
|
gcc_AC_CHECK_DECLS(getrlimit setrlimit getrusage, , ,[
|
ansidecl.h: All logic from gcc/gansidecl.h moved here.
include:
* ansidecl.h: All logic from gcc/gansidecl.h moved here.
gcc:
* gansidecl.h: Delete file.
* configure.in: Change all refs to gansidecl.h to use
ansidecl.h. Adjust *_file_list so they know where ansidecl.h
lives.
* configure: Regenerate.
* Makefile.in (intl.o): Don't depend on gansidecl.h.
* defaults.h: s/gansidecl.h/ansidecl.h/ in comment.
* ggc.h, config/fr30/fr30.h, config/mcore/mcore.c:
Don't include gansidecl.h.
* intl.c, main.c, version.c, fixinc/fixlib.h,
fixinc/procopen.c, fixinc/server.c: Include ansidecl.h not
gansidecl.h.
gcc/java:
* Make-lang.in (buffer.o, check-init.o, class.o): Don't depend
on gansidecl.h.
* buffer.c, jvgenmain.c: Don't include gansidecl.h.
libiberty:
* make-temp-file.c (try): Inline.
From-SVN: r41069
2001-04-04 02:46:27 +02:00
|
|
|
#include "ansidecl.h"
|
2000-04-26 02:03:37 +02:00
|
|
|
#include "system.h"
|
1998-06-30 13:10:55 +02:00
|
|
|
#ifdef HAVE_SYS_RESOURCE_H
|
|
|
|
#include <sys/resource.h>
|
|
|
|
#endif
|
|
|
|
])
|
|
|
|
|
2005-07-06 03:56:56 +02:00
|
|
|
AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
|
2003-03-12 13:19:25 +01:00
|
|
|
#include "ansidecl.h"
|
|
|
|
#include "system.h"
|
|
|
|
#ifdef HAVE_SYS_RESOURCE_H
|
|
|
|
#include <sys/resource.h>
|
|
|
|
#endif
|
2005-07-06 03:56:56 +02:00
|
|
|
]], [[rlim_t l = 0;]])],[],[AC_DEFINE([rlim_t],[long],
|
2008-06-02 21:37:45 +02:00
|
|
|
[Define to `long' if <sys/resource.h> doesn't define.])])
|
2003-03-12 13:19:25 +01:00
|
|
|
|
2004-11-25 02:41:20 +01:00
|
|
|
# On AIX 5.2, <ldfcn.h> conflicts with <fcntl.h>, as both define incompatible
|
|
|
|
# FREAD and FWRITE macros. Fortunately, for GCC's single usage of ldgetname
|
|
|
|
# in collect2.c, <fcntl.h> isn't visible, but the configure test below needs
|
|
|
|
# to undef these macros to get the correct value for HAVE_DECL_LDGETNAME.
|
2003-01-20 21:41:55 +01:00
|
|
|
gcc_AC_CHECK_DECLS(ldgetname, , ,[
|
|
|
|
#include "ansidecl.h"
|
|
|
|
#include "system.h"
|
|
|
|
#ifdef HAVE_LDFCN_H
|
2004-11-25 02:41:20 +01:00
|
|
|
#undef FREAD
|
|
|
|
#undef FWRITE
|
2003-01-20 21:41:55 +01:00
|
|
|
#include <ldfcn.h>
|
|
|
|
#endif
|
|
|
|
])
|
|
|
|
|
2001-04-21 01:06:55 +02:00
|
|
|
gcc_AC_CHECK_DECLS(times, , ,[
|
|
|
|
#include "ansidecl.h"
|
|
|
|
#include "system.h"
|
|
|
|
#ifdef HAVE_SYS_TIMES_H
|
|
|
|
#include <sys/times.h>
|
|
|
|
#endif
|
|
|
|
])
|
|
|
|
|
2006-06-03 04:07:36 +02:00
|
|
|
gcc_AC_CHECK_DECLS(sigaltstack, , ,[
|
|
|
|
#include "ansidecl.h"
|
|
|
|
#include "system.h"
|
|
|
|
#include <signal.h>
|
|
|
|
])
|
|
|
|
|
2001-04-21 01:06:55 +02:00
|
|
|
# More time-related stuff.
|
|
|
|
AC_CACHE_CHECK(for struct tms, ac_cv_struct_tms, [
|
2005-07-06 03:56:56 +02:00
|
|
|
AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
|
2001-04-21 01:06:55 +02:00
|
|
|
#include "ansidecl.h"
|
|
|
|
#include "system.h"
|
|
|
|
#ifdef HAVE_SYS_TIMES_H
|
|
|
|
#include <sys/times.h>
|
|
|
|
#endif
|
2005-07-06 03:56:56 +02:00
|
|
|
]], [[struct tms tms;]])],[ac_cv_struct_tms=yes],[ac_cv_struct_tms=no])])
|
2001-04-21 01:06:55 +02:00
|
|
|
if test $ac_cv_struct_tms = yes; then
|
|
|
|
AC_DEFINE(HAVE_STRUCT_TMS, 1,
|
|
|
|
[Define if <sys/times.h> defines struct tms.])
|
|
|
|
fi
|
|
|
|
|
|
|
|
# use gcc_cv_* here because this doesn't match the behavior of AC_CHECK_TYPE.
|
|
|
|
# revisit after autoconf 2.50.
|
|
|
|
AC_CACHE_CHECK(for clock_t, gcc_cv_type_clock_t, [
|
2005-07-06 03:56:56 +02:00
|
|
|
AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
|
2001-04-21 01:06:55 +02:00
|
|
|
#include "ansidecl.h"
|
|
|
|
#include "system.h"
|
2005-07-06 03:56:56 +02:00
|
|
|
]], [[clock_t x;]])],[gcc_cv_type_clock_t=yes],[gcc_cv_type_clock_t=no])])
|
2001-04-21 01:06:55 +02:00
|
|
|
if test $gcc_cv_type_clock_t = yes; then
|
|
|
|
AC_DEFINE(HAVE_CLOCK_T, 1,
|
|
|
|
[Define if <time.h> defines clock_t.])
|
|
|
|
fi
|
|
|
|
|
2012-09-13 06:59:14 +02:00
|
|
|
# Check if F_SETLKW is supported by fcntl.
|
|
|
|
AC_CACHE_CHECK(for F_SETLKW, ac_cv_f_setlkw, [
|
|
|
|
AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
|
|
|
|
#include <fcntl.h>]], [[
|
|
|
|
struct flock fl;
|
|
|
|
fl.l_whence = 0;
|
|
|
|
fl.l_start = 0;
|
|
|
|
fl.l_len = 0;
|
|
|
|
fl.l_pid = 0;
|
|
|
|
return fcntl (1, F_SETLKW, &fl);]])],
|
|
|
|
[ac_cv_f_setlkw=yes],[ac_cv_f_setlkw=no])])
|
|
|
|
if test $ac_cv_f_setlkw = yes; then
|
|
|
|
AC_DEFINE(HOST_HAS_F_SETLKW, 1,
|
|
|
|
[Define if F_SETLKW supported by fcntl.])
|
|
|
|
fi
|
|
|
|
|
2011-10-19 18:02:30 +02:00
|
|
|
# Restore CFLAGS, CXXFLAGS from before the gcc_AC_NEED_DECLARATIONS tests.
|
2000-04-26 02:03:37 +02:00
|
|
|
CFLAGS="$saved_CFLAGS"
|
2011-10-19 18:02:30 +02:00
|
|
|
CXXFLAGS="$saved_CXXFLAGS"
|
2000-04-26 02:03:37 +02:00
|
|
|
|
1999-04-15 03:50:52 +02:00
|
|
|
# mkdir takes a single argument on some systems.
|
aclocal.m4: (GCC_HEADER_STRING...
* aclocal.m4: (GCC_HEADER_STRING, GCC_NEED_DECLARATION,
GCC_NEED_DECLARATIONS, GCC_FUNC_VFPRINTF_DOPRNT,
GCC_FUNC_PRINTF_PTR, GCC_PROG_LN_S, GCC_PROG_LN, GCC_C_VOLATILE,
AC_GCC_C_LONG_DOUBLE, GCC_FUNC_MKDIR_TAKES_ONE_ARG,
EGCS_PROG_INSTALL): Rename autoconf macros with prefix gcc_AC_.
* configure.in (AC_GCC_C_LONG_DOUBLE, GCC_PROG_LN, GCC_PROG_LN_S,
GCC_C_VOLATILE, EGCS_PROG_INSTALL, GCC_HEADER_STRING,
GCC_FUNC_VFPRINTF_DOPRNT, GCC_FUNC_PRINTF_PTR,
GCC_NEED_DECLARATIONS, GCC_FUNC_MKDIR_TAKES_ONE_ARG): Invoke with
new macros names.
From-SVN: r33383
2000-04-24 19:45:50 +02:00
|
|
|
gcc_AC_FUNC_MKDIR_TAKES_ONE_ARG
|
1999-04-15 03:50:52 +02:00
|
|
|
|
1997-05-18 14:31:53 +02:00
|
|
|
# File extensions
|
|
|
|
manext='.1'
|
|
|
|
objext='.o'
|
|
|
|
AC_SUBST(manext)
|
|
|
|
AC_SUBST(objext)
|
|
|
|
|
2002-12-16 19:23:00 +01:00
|
|
|
# With Setjmp/Longjmp based exception handling.
|
|
|
|
AC_ARG_ENABLE(sjlj-exceptions,
|
2011-05-13 10:09:25 +02:00
|
|
|
[AS_HELP_STRING([--enable-sjlj-exceptions],
|
|
|
|
[arrange to use setjmp/longjmp exception handling])],
|
2008-03-05 00:30:47 +01:00
|
|
|
[case $target in
|
|
|
|
*-*-hpux10*)
|
|
|
|
if test $enableval != yes; then
|
|
|
|
AC_MSG_WARN([dwarf2 exceptions not supported, sjlj exceptions forced])
|
|
|
|
enableval=yes
|
|
|
|
fi
|
|
|
|
;;
|
|
|
|
esac
|
|
|
|
force_sjlj_exceptions=yes],
|
|
|
|
[case $target in
|
|
|
|
*-*-hpux10*)
|
|
|
|
force_sjlj_exceptions=yes
|
|
|
|
enableval=yes
|
|
|
|
;;
|
2014-03-02 20:58:24 +01:00
|
|
|
lm32*-*-*)
|
|
|
|
force_sjlj_exceptions=yes
|
|
|
|
enableval=yes
|
|
|
|
;;
|
2008-03-05 00:30:47 +01:00
|
|
|
*)
|
|
|
|
force_sjlj_exceptions=no
|
|
|
|
;;
|
|
|
|
esac])
|
|
|
|
if test $force_sjlj_exceptions = yes; then
|
|
|
|
sjlj=`if test $enableval = yes; then echo 1; else echo 0; fi`
|
|
|
|
AC_DEFINE_UNQUOTED(CONFIG_SJLJ_EXCEPTIONS, $sjlj,
|
|
|
|
[Define 0/1 to force the choice for exception handling model.])
|
|
|
|
fi
|
2002-12-16 19:23:00 +01:00
|
|
|
|
2003-03-04 08:41:00 +01:00
|
|
|
# --------------------------------------------------------
|
|
|
|
# Build, host, and target specific configuration fragments
|
|
|
|
# --------------------------------------------------------
|
|
|
|
|
2003-08-31 21:00:39 +02:00
|
|
|
# Collect build-machine-specific information.
|
|
|
|
. ${srcdir}/config.build
|
|
|
|
|
2003-09-01 19:30:41 +02:00
|
|
|
# Collect host-machine-specific information.
|
|
|
|
. ${srcdir}/config.host
|
|
|
|
|
2002-07-27 22:54:52 +02:00
|
|
|
target_gtfiles=
|
2003-09-01 19:30:41 +02:00
|
|
|
|
|
|
|
# Collect target-machine-specific information.
|
2003-09-23 23:51:44 +02:00
|
|
|
. ${srcdir}/config.gcc
|
1997-05-18 14:31:53 +02:00
|
|
|
|
|
|
|
extra_objs="${host_extra_objs} ${extra_objs}"
|
2004-02-25 22:43:26 +01:00
|
|
|
extra_gcc_objs="${host_extra_gcc_objs} ${extra_gcc_objs}"
|
1997-05-18 14:31:53 +02:00
|
|
|
|
|
|
|
# Default the target-machine variables that were not explicitly set.
|
1998-08-14 11:23:47 +02:00
|
|
|
if test x"$tm_file" = x
|
1997-05-18 14:31:53 +02:00
|
|
|
then tm_file=$cpu_type/$cpu_type.h; fi
|
|
|
|
|
2000-11-27 11:16:16 +01:00
|
|
|
if test x"$extra_headers" = x
|
1997-05-18 14:31:53 +02:00
|
|
|
then extra_headers=; fi
|
|
|
|
|
1998-08-14 11:23:47 +02:00
|
|
|
if test x$md_file = x
|
1998-03-25 11:44:07 +01:00
|
|
|
then md_file=$cpu_type/$cpu_type.md; fi
|
1997-05-18 14:31:53 +02:00
|
|
|
|
1998-08-14 11:23:47 +02:00
|
|
|
if test x$out_file = x
|
1997-05-18 14:31:53 +02:00
|
|
|
then out_file=$cpu_type/$cpu_type.c; fi
|
|
|
|
|
1998-08-14 11:23:47 +02:00
|
|
|
if test x"$tmake_file" = x
|
1997-05-18 14:31:53 +02:00
|
|
|
then tmake_file=$cpu_type/t-$cpu_type
|
|
|
|
fi
|
|
|
|
|
2012-01-19 11:43:54 +01:00
|
|
|
# Support --enable-initfini-array.
|
|
|
|
if test x$enable_initfini_array != xno; then
|
|
|
|
tm_file="${tm_file} initfini-array.h"
|
|
|
|
fi
|
|
|
|
|
1999-01-06 17:05:47 +01:00
|
|
|
if test x"$dwarf2" = xyes
|
2000-02-10 06:32:04 +01:00
|
|
|
then tm_file="$tm_file tm-dwarf2.h"
|
1999-01-06 17:05:47 +01:00
|
|
|
fi
|
|
|
|
|
1997-05-18 14:31:53 +02:00
|
|
|
# Say what files are being used for the output code and MD file.
|
configure.in: Prune nonexistent files from build_xm_file, xm_file, and host_xm_file lists.
* configure.in: Prune nonexistent files from build_xm_file,
xm_file, and host_xm_file lists. Warn unless they're
$cpu/xm-$cpu.h.
Don't generate *config.h here.
AC_SUBST all variables needed to generate *config.h.
* configure: Regenerate.
* mkconfig.sh: New helper script, from code removed from
configure.in.
* Makefile.in: Zap all MALLOC variables - no longer used
anywhere, and malloc.c doesn't exist.
Substitute in variables needed to generate *config.h.
Stop lying about the dependencies contained in CONFIG_H and
GCONFIG_H.
(HCONFIG_H, TCONFIG_H, TM_P_H): New variables.
(config.h, hconfig.h, tconfig.h, tm_p.h, cs-config.h,
cs-hconfig.h, cs-tconfig.h, cs-tm_p.h): New rules.
(all .o): Add dependencies on $(HCONFIG_H), $(TCONFIG_H),
$(TM_P_H), etc. as appropriate.
* config.gcc: Zap references to deleted files.
* ggc-none.c: Don't include rtl.h or tm_p.h.
* config/i386/xm-beos.h, config/i386/xm-dgux.h,
config/i386/xm-djgpp.h, config/i386/xm-dos.h,
config/i386/xm-gnu.h, config/i386/xm-i386-interix.h,
config/i386/xm-linux.h, config/i386/xm-linux.h,
config/i386/xm-next.h, config/i386/xm-openbsd.h,
config/i386/xm-sun.h, config/i386/xm-sysv3.h:
Don't include i386/xm-i386.h.
* config/elxsi/xm-elxsi.h, config/i386/xm-bsd386.h,
config/i386/xm-i386.h, config/i860/xm-i860.h,
config/i960/xm-i960.h, config/mcore/xm-mcore.h,
config/mn10300/xm-mn10300.h, config/ns32k/xm-ns32k.h,
config/pj/xm-pj.h, config/sh/xm-sh.h, config/v850/xm-v850.h:
Delete (empty except comments, #includes of other deleted
files, and macros used nowhere).
cp:
* Make-lang.in: Add dependencies on $(TM_P_H) as appropriate.
From-SVN: r40350
2001-03-09 21:53:56 +01:00
|
|
|
echo "Using \`$srcdir/config/$out_file' for machine-specific logic."
|
1997-05-18 14:31:53 +02:00
|
|
|
echo "Using \`$srcdir/config/$md_file' as machine description file."
|
|
|
|
|
configure.in: Prune nonexistent files from build_xm_file, xm_file, and host_xm_file lists.
* configure.in: Prune nonexistent files from build_xm_file,
xm_file, and host_xm_file lists. Warn unless they're
$cpu/xm-$cpu.h.
Don't generate *config.h here.
AC_SUBST all variables needed to generate *config.h.
* configure: Regenerate.
* mkconfig.sh: New helper script, from code removed from
configure.in.
* Makefile.in: Zap all MALLOC variables - no longer used
anywhere, and malloc.c doesn't exist.
Substitute in variables needed to generate *config.h.
Stop lying about the dependencies contained in CONFIG_H and
GCONFIG_H.
(HCONFIG_H, TCONFIG_H, TM_P_H): New variables.
(config.h, hconfig.h, tconfig.h, tm_p.h, cs-config.h,
cs-hconfig.h, cs-tconfig.h, cs-tm_p.h): New rules.
(all .o): Add dependencies on $(HCONFIG_H), $(TCONFIG_H),
$(TM_P_H), etc. as appropriate.
* config.gcc: Zap references to deleted files.
* ggc-none.c: Don't include rtl.h or tm_p.h.
* config/i386/xm-beos.h, config/i386/xm-dgux.h,
config/i386/xm-djgpp.h, config/i386/xm-dos.h,
config/i386/xm-gnu.h, config/i386/xm-i386-interix.h,
config/i386/xm-linux.h, config/i386/xm-linux.h,
config/i386/xm-next.h, config/i386/xm-openbsd.h,
config/i386/xm-sun.h, config/i386/xm-sysv3.h:
Don't include i386/xm-i386.h.
* config/elxsi/xm-elxsi.h, config/i386/xm-bsd386.h,
config/i386/xm-i386.h, config/i860/xm-i860.h,
config/i960/xm-i960.h, config/mcore/xm-mcore.h,
config/mn10300/xm-mn10300.h, config/ns32k/xm-ns32k.h,
config/pj/xm-pj.h, config/sh/xm-sh.h, config/v850/xm-v850.h:
Delete (empty except comments, #includes of other deleted
files, and macros used nowhere).
cp:
* Make-lang.in: Add dependencies on $(TM_P_H) as appropriate.
From-SVN: r40350
2001-03-09 21:53:56 +01:00
|
|
|
# If any of the xm_file variables contain nonexistent files, warn
|
2001-04-05 06:34:24 +02:00
|
|
|
# about them and drop them.
|
|
|
|
|
configure.in: Prune nonexistent files from build_xm_file, xm_file, and host_xm_file lists.
* configure.in: Prune nonexistent files from build_xm_file,
xm_file, and host_xm_file lists. Warn unless they're
$cpu/xm-$cpu.h.
Don't generate *config.h here.
AC_SUBST all variables needed to generate *config.h.
* configure: Regenerate.
* mkconfig.sh: New helper script, from code removed from
configure.in.
* Makefile.in: Zap all MALLOC variables - no longer used
anywhere, and malloc.c doesn't exist.
Substitute in variables needed to generate *config.h.
Stop lying about the dependencies contained in CONFIG_H and
GCONFIG_H.
(HCONFIG_H, TCONFIG_H, TM_P_H): New variables.
(config.h, hconfig.h, tconfig.h, tm_p.h, cs-config.h,
cs-hconfig.h, cs-tconfig.h, cs-tm_p.h): New rules.
(all .o): Add dependencies on $(HCONFIG_H), $(TCONFIG_H),
$(TM_P_H), etc. as appropriate.
* config.gcc: Zap references to deleted files.
* ggc-none.c: Don't include rtl.h or tm_p.h.
* config/i386/xm-beos.h, config/i386/xm-dgux.h,
config/i386/xm-djgpp.h, config/i386/xm-dos.h,
config/i386/xm-gnu.h, config/i386/xm-i386-interix.h,
config/i386/xm-linux.h, config/i386/xm-linux.h,
config/i386/xm-next.h, config/i386/xm-openbsd.h,
config/i386/xm-sun.h, config/i386/xm-sysv3.h:
Don't include i386/xm-i386.h.
* config/elxsi/xm-elxsi.h, config/i386/xm-bsd386.h,
config/i386/xm-i386.h, config/i860/xm-i860.h,
config/i960/xm-i960.h, config/mcore/xm-mcore.h,
config/mn10300/xm-mn10300.h, config/ns32k/xm-ns32k.h,
config/pj/xm-pj.h, config/sh/xm-sh.h, config/v850/xm-v850.h:
Delete (empty except comments, #includes of other deleted
files, and macros used nowhere).
cp:
* Make-lang.in: Add dependencies on $(TM_P_H) as appropriate.
From-SVN: r40350
2001-03-09 21:53:56 +01:00
|
|
|
bx=
|
|
|
|
for x in $build_xm_file; do
|
|
|
|
if test -f $srcdir/config/$x
|
|
|
|
then bx="$bx $x"
|
|
|
|
else AC_MSG_WARN($srcdir/config/$x does not exist.)
|
|
|
|
fi
|
|
|
|
done
|
|
|
|
build_xm_file="$bx"
|
|
|
|
|
|
|
|
hx=
|
|
|
|
for x in $host_xm_file; do
|
|
|
|
if test -f $srcdir/config/$x
|
|
|
|
then hx="$hx $x"
|
|
|
|
else AC_MSG_WARN($srcdir/config/$x does not exist.)
|
|
|
|
fi
|
|
|
|
done
|
|
|
|
host_xm_file="$hx"
|
|
|
|
|
|
|
|
tx=
|
|
|
|
for x in $xm_file; do
|
|
|
|
if test -f $srcdir/config/$x
|
|
|
|
then tx="$tx $x"
|
|
|
|
else AC_MSG_WARN($srcdir/config/$x does not exist.)
|
|
|
|
fi
|
|
|
|
done
|
|
|
|
xm_file="$tx"
|
|
|
|
|
1997-05-18 14:31:53 +02:00
|
|
|
count=a
|
|
|
|
for f in $tm_file; do
|
|
|
|
count=${count}x
|
|
|
|
done
|
1998-08-14 11:23:47 +02:00
|
|
|
if test $count = ax; then
|
1997-05-18 14:31:53 +02:00
|
|
|
echo "Using \`$srcdir/config/$tm_file' as target machine macro file."
|
|
|
|
else
|
|
|
|
echo "Using the following target machine macro files:"
|
|
|
|
for f in $tm_file; do
|
|
|
|
echo " $srcdir/config/$f"
|
|
|
|
done
|
|
|
|
fi
|
|
|
|
|
2004-08-31 02:29:04 +02:00
|
|
|
if test x$use_long_long_for_widest_fast_int = xyes; then
|
|
|
|
AC_DEFINE(USE_LONG_LONG_FOR_WIDEST_FAST_INT, 1,
|
2014-05-26 10:19:02 +02:00
|
|
|
[Define to 1 if the 'long long' type is wider than 'long' but still
|
2004-08-31 02:29:04 +02:00
|
|
|
efficiently supported by the host hardware.])
|
|
|
|
fi
|
|
|
|
|
2012-05-25 11:24:08 +02:00
|
|
|
gnu_ld_bool=`if test x"$gnu_ld" = x"yes"; then echo 1; else echo 0; fi`
|
|
|
|
AC_DEFINE_UNQUOTED(HAVE_GNU_LD, $gnu_ld_bool, [Define to 1 if using GNU ld.])
|
|
|
|
|
|
|
|
gnu_as_bool=`if test x"$gas" = x"yes"; then echo 1; else echo 0; fi`
|
|
|
|
AC_DEFINE_UNQUOTED(HAVE_GNU_AS, $gnu_as_bool, [Define to 1 if using GNU as.])
|
|
|
|
|
1997-05-18 14:31:53 +02:00
|
|
|
count=a
|
|
|
|
for f in $host_xm_file; do
|
|
|
|
count=${count}x
|
|
|
|
done
|
configure.in: Prune nonexistent files from build_xm_file, xm_file, and host_xm_file lists.
* configure.in: Prune nonexistent files from build_xm_file,
xm_file, and host_xm_file lists. Warn unless they're
$cpu/xm-$cpu.h.
Don't generate *config.h here.
AC_SUBST all variables needed to generate *config.h.
* configure: Regenerate.
* mkconfig.sh: New helper script, from code removed from
configure.in.
* Makefile.in: Zap all MALLOC variables - no longer used
anywhere, and malloc.c doesn't exist.
Substitute in variables needed to generate *config.h.
Stop lying about the dependencies contained in CONFIG_H and
GCONFIG_H.
(HCONFIG_H, TCONFIG_H, TM_P_H): New variables.
(config.h, hconfig.h, tconfig.h, tm_p.h, cs-config.h,
cs-hconfig.h, cs-tconfig.h, cs-tm_p.h): New rules.
(all .o): Add dependencies on $(HCONFIG_H), $(TCONFIG_H),
$(TM_P_H), etc. as appropriate.
* config.gcc: Zap references to deleted files.
* ggc-none.c: Don't include rtl.h or tm_p.h.
* config/i386/xm-beos.h, config/i386/xm-dgux.h,
config/i386/xm-djgpp.h, config/i386/xm-dos.h,
config/i386/xm-gnu.h, config/i386/xm-i386-interix.h,
config/i386/xm-linux.h, config/i386/xm-linux.h,
config/i386/xm-next.h, config/i386/xm-openbsd.h,
config/i386/xm-sun.h, config/i386/xm-sysv3.h:
Don't include i386/xm-i386.h.
* config/elxsi/xm-elxsi.h, config/i386/xm-bsd386.h,
config/i386/xm-i386.h, config/i860/xm-i860.h,
config/i960/xm-i960.h, config/mcore/xm-mcore.h,
config/mn10300/xm-mn10300.h, config/ns32k/xm-ns32k.h,
config/pj/xm-pj.h, config/sh/xm-sh.h, config/v850/xm-v850.h:
Delete (empty except comments, #includes of other deleted
files, and macros used nowhere).
cp:
* Make-lang.in: Add dependencies on $(TM_P_H) as appropriate.
From-SVN: r40350
2001-03-09 21:53:56 +01:00
|
|
|
if test $count = a; then
|
|
|
|
:
|
|
|
|
elif test $count = ax; then
|
1997-05-18 14:31:53 +02:00
|
|
|
echo "Using \`$srcdir/config/$host_xm_file' as host machine macro file."
|
|
|
|
else
|
|
|
|
echo "Using the following host machine macro files:"
|
|
|
|
for f in $host_xm_file; do
|
|
|
|
echo " $srcdir/config/$f"
|
|
|
|
done
|
|
|
|
fi
|
2003-02-06 02:47:56 +01:00
|
|
|
echo "Using ${out_host_hook_obj} for host machine hooks."
|
1997-05-18 14:31:53 +02:00
|
|
|
|
1998-08-14 11:23:47 +02:00
|
|
|
if test "$host_xm_file" != "$build_xm_file"; then
|
1997-05-18 14:31:53 +02:00
|
|
|
count=a
|
|
|
|
for f in $build_xm_file; do
|
|
|
|
count=${count}x
|
|
|
|
done
|
configure.in: Prune nonexistent files from build_xm_file, xm_file, and host_xm_file lists.
* configure.in: Prune nonexistent files from build_xm_file,
xm_file, and host_xm_file lists. Warn unless they're
$cpu/xm-$cpu.h.
Don't generate *config.h here.
AC_SUBST all variables needed to generate *config.h.
* configure: Regenerate.
* mkconfig.sh: New helper script, from code removed from
configure.in.
* Makefile.in: Zap all MALLOC variables - no longer used
anywhere, and malloc.c doesn't exist.
Substitute in variables needed to generate *config.h.
Stop lying about the dependencies contained in CONFIG_H and
GCONFIG_H.
(HCONFIG_H, TCONFIG_H, TM_P_H): New variables.
(config.h, hconfig.h, tconfig.h, tm_p.h, cs-config.h,
cs-hconfig.h, cs-tconfig.h, cs-tm_p.h): New rules.
(all .o): Add dependencies on $(HCONFIG_H), $(TCONFIG_H),
$(TM_P_H), etc. as appropriate.
* config.gcc: Zap references to deleted files.
* ggc-none.c: Don't include rtl.h or tm_p.h.
* config/i386/xm-beos.h, config/i386/xm-dgux.h,
config/i386/xm-djgpp.h, config/i386/xm-dos.h,
config/i386/xm-gnu.h, config/i386/xm-i386-interix.h,
config/i386/xm-linux.h, config/i386/xm-linux.h,
config/i386/xm-next.h, config/i386/xm-openbsd.h,
config/i386/xm-sun.h, config/i386/xm-sysv3.h:
Don't include i386/xm-i386.h.
* config/elxsi/xm-elxsi.h, config/i386/xm-bsd386.h,
config/i386/xm-i386.h, config/i860/xm-i860.h,
config/i960/xm-i960.h, config/mcore/xm-mcore.h,
config/mn10300/xm-mn10300.h, config/ns32k/xm-ns32k.h,
config/pj/xm-pj.h, config/sh/xm-sh.h, config/v850/xm-v850.h:
Delete (empty except comments, #includes of other deleted
files, and macros used nowhere).
cp:
* Make-lang.in: Add dependencies on $(TM_P_H) as appropriate.
From-SVN: r40350
2001-03-09 21:53:56 +01:00
|
|
|
if test $count = a; then
|
|
|
|
:
|
|
|
|
elif test $count = ax; then
|
1997-05-18 14:31:53 +02:00
|
|
|
echo "Using \`$srcdir/config/$build_xm_file' as build machine macro file."
|
|
|
|
else
|
|
|
|
echo "Using the following build machine macro files:"
|
|
|
|
for f in $build_xm_file; do
|
|
|
|
echo " $srcdir/config/$f"
|
|
|
|
done
|
|
|
|
fi
|
|
|
|
fi
|
|
|
|
|
2011-10-18 01:31:25 +02:00
|
|
|
if test -n "$configured_native_system_header_dir"; then
|
|
|
|
native_system_header_dir=$configured_native_system_header_dir
|
|
|
|
fi
|
|
|
|
NATIVE_SYSTEM_HEADER_DIR="$native_system_header_dir"
|
|
|
|
AC_SUBST(NATIVE_SYSTEM_HEADER_DIR)
|
|
|
|
|
2006-06-03 04:07:36 +02:00
|
|
|
case ${host} in
|
2006-11-10 00:56:57 +01:00
|
|
|
powerpc*-*-darwin*)
|
2006-06-03 04:07:36 +02:00
|
|
|
AC_CACHE_CHECK([whether mcontext_t fields have underscores],
|
|
|
|
gcc_cv_mcontext_underscores,
|
|
|
|
AC_COMPILE_IFELSE([
|
2007-02-22 00:58:22 +01:00
|
|
|
#include <sys/cdefs.h>
|
2006-06-13 18:36:40 +02:00
|
|
|
#include <sys/signal.h>
|
2006-06-03 04:07:36 +02:00
|
|
|
#include <ucontext.h>
|
|
|
|
int main() { mcontext_t m; if (m->ss.srr0) return 0; return 0; }
|
|
|
|
],
|
|
|
|
gcc_cv_mcontext_underscores=no, gcc_cv_mcontext_underscores=yes))
|
|
|
|
if test $gcc_cv_mcontext_underscores = yes; then
|
|
|
|
AC_DEFINE(HAS_MCONTEXT_T_UNDERSCORES,,dnl
|
|
|
|
[mcontext_t fields start with __])
|
|
|
|
fi
|
|
|
|
;;
|
|
|
|
esac
|
|
|
|
|
2004-02-29 23:50:19 +01:00
|
|
|
# ---------
|
|
|
|
# Threading
|
|
|
|
# ---------
|
|
|
|
|
2003-10-07 14:32:07 +02:00
|
|
|
# Check if a valid thread package
|
2004-04-07 03:20:59 +02:00
|
|
|
case ${enable_threads} in
|
2003-10-07 14:32:07 +02:00
|
|
|
"" | no)
|
|
|
|
# No threads
|
|
|
|
target_thread_file='single'
|
|
|
|
;;
|
|
|
|
yes)
|
|
|
|
# default
|
|
|
|
target_thread_file='single'
|
|
|
|
;;
|
2011-08-08 17:39:35 +02:00
|
|
|
aix | dce | lynx | mipssde | posix | rtems | \
|
2011-05-23 12:00:39 +02:00
|
|
|
single | tpf | vxworks | win32)
|
2004-04-07 03:20:59 +02:00
|
|
|
target_thread_file=${enable_threads}
|
2003-10-07 14:32:07 +02:00
|
|
|
;;
|
|
|
|
*)
|
2004-04-07 03:20:59 +02:00
|
|
|
echo "${enable_threads} is an unknown thread package" 1>&2
|
2003-10-07 14:32:07 +02:00
|
|
|
exit 1
|
|
|
|
;;
|
|
|
|
esac
|
|
|
|
|
|
|
|
if test x${thread_file} = x; then
|
|
|
|
# No thread file set by target-specific clauses in config.gcc,
|
|
|
|
# so use file chosen by default logic above
|
|
|
|
thread_file=${target_thread_file}
|
1997-05-18 14:31:53 +02:00
|
|
|
fi
|
|
|
|
|
2004-02-29 23:50:19 +01:00
|
|
|
# --------
|
|
|
|
# UNSORTED
|
|
|
|
# --------
|
|
|
|
|
2004-10-27 18:08:48 +02:00
|
|
|
use_cxa_atexit=no
|
2003-06-03 22:39:52 +02:00
|
|
|
if test x$enable___cxa_atexit = xyes || \
|
|
|
|
test x$enable___cxa_atexit = x -a x$default_use_cxa_atexit = xyes; then
|
2004-10-27 18:08:48 +02:00
|
|
|
if test x$host = x$target; then
|
2006-11-01 07:23:12 +01:00
|
|
|
case $host in
|
|
|
|
# mingw32 doesn't have __cxa_atexit but uses atexit registration
|
|
|
|
# keyed to flag_use_cxa_atexit
|
|
|
|
*-*-mingw32*)
|
|
|
|
use_cxa_atexit=yes
|
|
|
|
;;
|
2013-02-01 21:26:24 +01:00
|
|
|
powerpc-ibm-aix*)
|
|
|
|
use_cxa_atexit=yes
|
|
|
|
;;
|
2006-11-01 07:23:12 +01:00
|
|
|
*)
|
|
|
|
AC_CHECK_FUNC(__cxa_atexit,[use_cxa_atexit=yes],
|
|
|
|
[echo "__cxa_atexit can't be enabled on this target"])
|
2006-11-06 20:49:31 +01:00
|
|
|
;;
|
2006-11-01 07:23:12 +01:00
|
|
|
esac
|
2004-10-27 18:08:48 +02:00
|
|
|
else
|
|
|
|
# We can't check for __cxa_atexit when building a cross, so assume
|
|
|
|
# it is available
|
|
|
|
use_cxa_atexit=yes
|
|
|
|
fi
|
|
|
|
if test x$use_cxa_atexit = xyes; then
|
2006-02-24 22:43:01 +01:00
|
|
|
AC_DEFINE(DEFAULT_USE_CXA_ATEXIT, 2,
|
2004-10-27 18:08:48 +02:00
|
|
|
[Define if you want to use __cxa_atexit, rather than atexit, to
|
|
|
|
register C++ destructors for local statics and global objects.
|
|
|
|
This is essential for fully standards-compliant handling of
|
|
|
|
destructors, but requires __cxa_atexit in libc.])
|
|
|
|
fi
|
2003-06-03 22:39:52 +02:00
|
|
|
fi
|
|
|
|
|
Makefile.in (MACHMODE_H): Add @extra_modes_file@.
* Makefile.in (MACHMODE_H): Add @extra_modes_file@.
* configure.in: If $srcdir/config/${cpu_type}/${cpu_type}-modes.def
exists, substitute its pathname as @extra_modes_file@, define
EXTRA_MODES_FILE to be an appropriate string to #include it
with, and define EXTRA_CC_MODES to 1.
* machmode.def: Update comments. Include EXTRA_MODES_FILE if
it's defined. Get rid of redundancy in calling sequence for
CC; don't use it to define CCmode, to avoid a warning.
* libgcc2.c: Include symcat.h for the sake of machmode.def.
* arc-modes.def, arm-modes.def, c4x-modes.def, i386-modes.def,
i960-modes.def, ia64-modes.def, m88k-modes.def, mmix-modes.def,
pa-modes.def, pdp11-modes.def, rs6000-modes.def, sparc-modes.def:
New files.
* arc.h, arm.h, c4x.h, i386.h, i960.h, ia64.h, m88k.h, mmix.h,
pa.h, pdp11.h, rs6000.h, sparc.h: Don't define EXTRA_CC_MODES.
* doc/sourcebuild.texi, doc/tm.texi: Document new scheme for
defining extra CC modes.
From-SVN: r54478
2002-06-11 00:35:56 +02:00
|
|
|
# Look for a file containing extra machine modes.
|
2002-06-12 03:36:13 +02:00
|
|
|
if test -n "$extra_modes" && test -f $srcdir/config/$extra_modes; then
|
|
|
|
extra_modes_file='$(srcdir)'/config/${extra_modes}
|
Makefile.in (MACHMODE_H): Add @extra_modes_file@.
* Makefile.in (MACHMODE_H): Add @extra_modes_file@.
* configure.in: If $srcdir/config/${cpu_type}/${cpu_type}-modes.def
exists, substitute its pathname as @extra_modes_file@, define
EXTRA_MODES_FILE to be an appropriate string to #include it
with, and define EXTRA_CC_MODES to 1.
* machmode.def: Update comments. Include EXTRA_MODES_FILE if
it's defined. Get rid of redundancy in calling sequence for
CC; don't use it to define CCmode, to avoid a warning.
* libgcc2.c: Include symcat.h for the sake of machmode.def.
* arc-modes.def, arm-modes.def, c4x-modes.def, i386-modes.def,
i960-modes.def, ia64-modes.def, m88k-modes.def, mmix-modes.def,
pa-modes.def, pdp11-modes.def, rs6000-modes.def, sparc-modes.def:
New files.
* arc.h, arm.h, c4x.h, i386.h, i960.h, ia64.h, m88k.h, mmix.h,
pa.h, pdp11.h, rs6000.h, sparc.h: Don't define EXTRA_CC_MODES.
* doc/sourcebuild.texi, doc/tm.texi: Document new scheme for
defining extra CC modes.
From-SVN: r54478
2002-06-11 00:35:56 +02:00
|
|
|
AC_SUBST(extra_modes_file)
|
Makefile.in (tm_file): Rename tm_include_list.
* Makefile.in (tm_file): Rename tm_include_list.
(tm_p_file): Rename tm_p_include_list.
(build_xm_file): Rename build_xm_include_list.
(host_xm_file): Rename host_xm_include_list.
(xm_file): Rename xm_include_list.
(xm_file_list): Add to be substituted.
(cs-config.h, cs-bconfig.h, cs-tconfig.h, cs-tm.h, cs-tm_p.h):
Update to match.
(bt-load.o): Add missing dependency on $(TM_H).
* configure.in: Prefix value of EXTRA_MODES_FILE with config/.
For each of tm_file, tm_p_file, xm_file, host_xm_file, and
build_xm_file, generate both *_file_list and *_include_list
values from it. (xm_file_list was formerly not being generated.)
In *_include_list, prefix the names of all headers found in
$(srcdir)/config with config/. In each loop, consider only
the special case files that can actually appear in that list.
AC_SUBST all *_file_list and all *_include_list variables; do
not AC_SUBST the plain *_file variables.
* configure: Regenerate.
From-SVN: r70449
2003-08-14 22:25:14 +02:00
|
|
|
AC_DEFINE_UNQUOTED(EXTRA_MODES_FILE, "config/$extra_modes",
|
Makefile.in (MACHMODE_H): Add @extra_modes_file@.
* Makefile.in (MACHMODE_H): Add @extra_modes_file@.
* configure.in: If $srcdir/config/${cpu_type}/${cpu_type}-modes.def
exists, substitute its pathname as @extra_modes_file@, define
EXTRA_MODES_FILE to be an appropriate string to #include it
with, and define EXTRA_CC_MODES to 1.
* machmode.def: Update comments. Include EXTRA_MODES_FILE if
it's defined. Get rid of redundancy in calling sequence for
CC; don't use it to define CCmode, to avoid a warning.
* libgcc2.c: Include symcat.h for the sake of machmode.def.
* arc-modes.def, arm-modes.def, c4x-modes.def, i386-modes.def,
i960-modes.def, ia64-modes.def, m88k-modes.def, mmix-modes.def,
pa-modes.def, pdp11-modes.def, rs6000-modes.def, sparc-modes.def:
New files.
* arc.h, arm.h, c4x.h, i386.h, i960.h, ia64.h, m88k.h, mmix.h,
pa.h, pdp11.h, rs6000.h, sparc.h: Don't define EXTRA_CC_MODES.
* doc/sourcebuild.texi, doc/tm.texi: Document new scheme for
defining extra CC modes.
From-SVN: r54478
2002-06-11 00:35:56 +02:00
|
|
|
[Define to the name of a file containing a list of extra machine modes
|
|
|
|
for this architecture.])
|
|
|
|
fi
|
|
|
|
|
2005-03-14 21:18:43 +01:00
|
|
|
# Convert extra_options into a form suitable for Makefile use.
|
|
|
|
extra_opt_files=
|
2010-11-19 18:27:18 +01:00
|
|
|
all_opt_files=
|
2005-03-14 21:18:43 +01:00
|
|
|
for f in $extra_options; do
|
|
|
|
extra_opt_files="$extra_opt_files \$(srcdir)/config/$f"
|
2010-11-19 18:27:18 +01:00
|
|
|
all_opt_files="$all_opt_files $srcdir/config/$f"
|
2005-03-14 21:18:43 +01:00
|
|
|
done
|
|
|
|
AC_SUBST(extra_opt_files)
|
|
|
|
|
1998-04-14 10:32:34 +02:00
|
|
|
# auto-host.h is the file containing items generated by autoconf and is
|
1997-11-02 22:19:36 +01:00
|
|
|
# the first file included by config.h.
|
2002-12-16 19:23:00 +01:00
|
|
|
# If host=build, it is correct to have bconfig include auto-host.h
|
1998-01-25 23:11:32 +01:00
|
|
|
# as well. If host!=build, we are in error and need to do more
|
|
|
|
# work to find out the build config parameters.
|
1998-08-14 11:23:47 +02:00
|
|
|
if test x$host = x$build
|
1998-01-25 23:11:32 +01:00
|
|
|
then
|
configure.in: Kill tm.h.
* configure.in: Kill tm.h. Include the files in the $tm_file
list in all three of config.h, hconfig.h, tconfig.h, after the
relevant set of xm_files. Put TARGET_CPU_DEFAULT in all
three, include insn-codes.h in all three (#ifndef GENERATOR_FILE).
* configure: Regenerate.
* Makefile.in (clean): Don't delete tm.h.
* system.h: If SUCCESS_EXIT_CODE and FATAL_EXIT_CODE are not
defined, set them from EXIT_SUCCESS and EXIT_FAILURE. If
those are not defined, set SEC and FEC to 0 and 1.
* gcc.texi: Update to match.
* crtstuff.c: Include tconfig.h, not auto-host.h and tm.h.
* config/fp-bit.c, config/m68k/aux-crt2.asm,
config/m68k/aux-crtn.asm, config/m68k/aux-mcount.c:
Include tconfig.h, not tm.h.
* config/xm-lynx.h, config/xm-std32.h,
config/a29k/xm-a29k.h, config/a29k/xm-unix.h,
config/alpha/xm-alpha.h, config/arc/xm-arc.h,
config/avr/xm-avr.h, config/c4x/xm-c4x.h,
config/clipper/xm-clix.h, config/convex/xm-convex.h,
config/d30v/xm-d30v.h, config/dsp16xx/xm-dsp16xx.h,
config/elxsi/xm-elxsi.h, config/fr30/xm-fr30.h,
config/h8300/xm-h8300.h, config/i370/xm-linux.h,
config/i386/xm-i386.h, config/i860/xm-i860.h,
config/i960/xm-i960.h, config/ia64/xm-ia64.h,
config/m32r/xm-m32r.h, config/m68hc11/xm-m68hc11.h,
config/m88k/xm-m88k.h, config/mcore/xm-mcore.h,
config/mips/xm-mips.h, config/mn10200/xm-mn10200.h,
config/mn10300/xm-mn10300.h, config/ns32k/xm-ns32k.h,
config/pa/xm-linux.h, config/pa/xm-pa.h,
config/pa/xm-pa64hpux.h, config/pa/xm-pahpux.h,
config/pa/xm-papro.h, config/pdp11/xm-pdp11.h,
config/pj/xm-pj.h, config/romp/xm-romp.h,
config/rs6000/xm-beos.h, config/rs6000/xm-rs6000.h,
config/rs6000/xm-sysv4.h, config/sh/xm-sh.h,
config/sparc/xm-sparc.h, config/sparc/xm-sysv4.h,
config/v850/xm-v850.h, config/vax/xm-vax.h,
config/we32k/xm-we32k.h:
Don't include tm.h.
Don't define SUCCESS_EXIT_CODE or FATAL_EXIT_CODE.
* config/i370/xm-i370.h, config/i370/xm-mvs.h,
config/i370/xm-oe.h: Don't include tm.h. Don't define
SUCCESS_EXIT_CODE.
* config/vax/xm-vms.h: Don't include tm.h.
* config/xm-lynx.h, config/avr/xm-avr.h,
config/fr30/xm-fr30.h, config/pdp11/xm-pdp11.h,
Delete; made empty by above changes.
* config/i386/xm-lynx.h, config/m68k/xm-lynx.h,
config/rs6000/xm-lynx.h, config/sparc/xm-lynx.h:
Don't include config/xm-lynx.h or tm.h.
* config/xm-gnu.h: Don't include fcntl.h.
* config/sparc/xm-lynx.h: Don't include sys/types.h and
sys/wait.h.
* config/clipper/xm-clix.h, config/vax/xm-vax.h: Don't define isinf.
From-SVN: r40199
2001-03-03 04:32:55 +01:00
|
|
|
build_auto=auto-host.h
|
1998-04-14 10:32:34 +02:00
|
|
|
else
|
|
|
|
# We create a subdir, then run autoconf in the subdir.
|
|
|
|
# To prevent recursion we set host and build for the new
|
|
|
|
# invocation of configure to the build for this invocation
|
|
|
|
# of configure.
|
|
|
|
tempdir=build.$$
|
|
|
|
rm -rf $tempdir
|
|
|
|
mkdir $tempdir
|
|
|
|
cd $tempdir
|
|
|
|
case ${srcdir} in
|
2000-11-29 20:07:29 +01:00
|
|
|
/* | [A-Za-z]:[\\/]* ) realsrcdir=${srcdir};;
|
1998-04-14 10:32:34 +02:00
|
|
|
*) realsrcdir=../${srcdir};;
|
|
|
|
esac
|
2014-01-28 08:08:22 +01:00
|
|
|
# Clearing GMPINC is necessary to prevent host headers being
|
|
|
|
# used by the build compiler. Defining GENERATOR_FILE stops
|
|
|
|
# system.h from including gmp.h.
|
2001-06-28 06:38:51 +02:00
|
|
|
CC="${CC_FOR_BUILD}" CFLAGS="${CFLAGS_FOR_BUILD}" \
|
2014-01-28 08:08:22 +01:00
|
|
|
CXX="${CXX_FOR_BUILD}" CXXFLAGS="${CXXFLAGS_FOR_BUILD}" \
|
|
|
|
LD="${LD_FOR_BUILD}" LDFLAGS="${LDFLAGS_FOR_BUILD}" \
|
|
|
|
GMPINC="" CPPFLAGS="${CPPFLAGS} -DGENERATOR_FILE" \
|
2001-06-28 06:38:51 +02:00
|
|
|
${realsrcdir}/configure \
|
2004-03-05 15:11:58 +01:00
|
|
|
--enable-languages=${enable_languages-all} \
|
2002-04-08 10:53:48 +02:00
|
|
|
--target=$target_alias --host=$build_alias --build=$build_alias
|
1998-04-14 10:32:34 +02:00
|
|
|
|
|
|
|
# We just finished tests for the build machine, so rename
|
|
|
|
# the file auto-build.h in the gcc directory.
|
|
|
|
mv auto-host.h ../auto-build.h
|
|
|
|
cd ..
|
|
|
|
rm -rf $tempdir
|
configure.in: Kill tm.h.
* configure.in: Kill tm.h. Include the files in the $tm_file
list in all three of config.h, hconfig.h, tconfig.h, after the
relevant set of xm_files. Put TARGET_CPU_DEFAULT in all
three, include insn-codes.h in all three (#ifndef GENERATOR_FILE).
* configure: Regenerate.
* Makefile.in (clean): Don't delete tm.h.
* system.h: If SUCCESS_EXIT_CODE and FATAL_EXIT_CODE are not
defined, set them from EXIT_SUCCESS and EXIT_FAILURE. If
those are not defined, set SEC and FEC to 0 and 1.
* gcc.texi: Update to match.
* crtstuff.c: Include tconfig.h, not auto-host.h and tm.h.
* config/fp-bit.c, config/m68k/aux-crt2.asm,
config/m68k/aux-crtn.asm, config/m68k/aux-mcount.c:
Include tconfig.h, not tm.h.
* config/xm-lynx.h, config/xm-std32.h,
config/a29k/xm-a29k.h, config/a29k/xm-unix.h,
config/alpha/xm-alpha.h, config/arc/xm-arc.h,
config/avr/xm-avr.h, config/c4x/xm-c4x.h,
config/clipper/xm-clix.h, config/convex/xm-convex.h,
config/d30v/xm-d30v.h, config/dsp16xx/xm-dsp16xx.h,
config/elxsi/xm-elxsi.h, config/fr30/xm-fr30.h,
config/h8300/xm-h8300.h, config/i370/xm-linux.h,
config/i386/xm-i386.h, config/i860/xm-i860.h,
config/i960/xm-i960.h, config/ia64/xm-ia64.h,
config/m32r/xm-m32r.h, config/m68hc11/xm-m68hc11.h,
config/m88k/xm-m88k.h, config/mcore/xm-mcore.h,
config/mips/xm-mips.h, config/mn10200/xm-mn10200.h,
config/mn10300/xm-mn10300.h, config/ns32k/xm-ns32k.h,
config/pa/xm-linux.h, config/pa/xm-pa.h,
config/pa/xm-pa64hpux.h, config/pa/xm-pahpux.h,
config/pa/xm-papro.h, config/pdp11/xm-pdp11.h,
config/pj/xm-pj.h, config/romp/xm-romp.h,
config/rs6000/xm-beos.h, config/rs6000/xm-rs6000.h,
config/rs6000/xm-sysv4.h, config/sh/xm-sh.h,
config/sparc/xm-sparc.h, config/sparc/xm-sysv4.h,
config/v850/xm-v850.h, config/vax/xm-vax.h,
config/we32k/xm-we32k.h:
Don't include tm.h.
Don't define SUCCESS_EXIT_CODE or FATAL_EXIT_CODE.
* config/i370/xm-i370.h, config/i370/xm-mvs.h,
config/i370/xm-oe.h: Don't include tm.h. Don't define
SUCCESS_EXIT_CODE.
* config/vax/xm-vms.h: Don't include tm.h.
* config/xm-lynx.h, config/avr/xm-avr.h,
config/fr30/xm-fr30.h, config/pdp11/xm-pdp11.h,
Delete; made empty by above changes.
* config/i386/xm-lynx.h, config/m68k/xm-lynx.h,
config/rs6000/xm-lynx.h, config/sparc/xm-lynx.h:
Don't include config/xm-lynx.h or tm.h.
* config/xm-gnu.h: Don't include fcntl.h.
* config/sparc/xm-lynx.h: Don't include sys/types.h and
sys/wait.h.
* config/clipper/xm-clix.h, config/vax/xm-vax.h: Don't define isinf.
From-SVN: r40199
2001-03-03 04:32:55 +01:00
|
|
|
build_auto=auto-build.h
|
1998-01-25 23:11:32 +01:00
|
|
|
fi
|
2004-08-31 11:27:00 +02:00
|
|
|
AC_SUBST(build_subdir)
|
1998-01-25 23:11:32 +01:00
|
|
|
|
configure.in: Kill tm.h.
* configure.in: Kill tm.h. Include the files in the $tm_file
list in all three of config.h, hconfig.h, tconfig.h, after the
relevant set of xm_files. Put TARGET_CPU_DEFAULT in all
three, include insn-codes.h in all three (#ifndef GENERATOR_FILE).
* configure: Regenerate.
* Makefile.in (clean): Don't delete tm.h.
* system.h: If SUCCESS_EXIT_CODE and FATAL_EXIT_CODE are not
defined, set them from EXIT_SUCCESS and EXIT_FAILURE. If
those are not defined, set SEC and FEC to 0 and 1.
* gcc.texi: Update to match.
* crtstuff.c: Include tconfig.h, not auto-host.h and tm.h.
* config/fp-bit.c, config/m68k/aux-crt2.asm,
config/m68k/aux-crtn.asm, config/m68k/aux-mcount.c:
Include tconfig.h, not tm.h.
* config/xm-lynx.h, config/xm-std32.h,
config/a29k/xm-a29k.h, config/a29k/xm-unix.h,
config/alpha/xm-alpha.h, config/arc/xm-arc.h,
config/avr/xm-avr.h, config/c4x/xm-c4x.h,
config/clipper/xm-clix.h, config/convex/xm-convex.h,
config/d30v/xm-d30v.h, config/dsp16xx/xm-dsp16xx.h,
config/elxsi/xm-elxsi.h, config/fr30/xm-fr30.h,
config/h8300/xm-h8300.h, config/i370/xm-linux.h,
config/i386/xm-i386.h, config/i860/xm-i860.h,
config/i960/xm-i960.h, config/ia64/xm-ia64.h,
config/m32r/xm-m32r.h, config/m68hc11/xm-m68hc11.h,
config/m88k/xm-m88k.h, config/mcore/xm-mcore.h,
config/mips/xm-mips.h, config/mn10200/xm-mn10200.h,
config/mn10300/xm-mn10300.h, config/ns32k/xm-ns32k.h,
config/pa/xm-linux.h, config/pa/xm-pa.h,
config/pa/xm-pa64hpux.h, config/pa/xm-pahpux.h,
config/pa/xm-papro.h, config/pdp11/xm-pdp11.h,
config/pj/xm-pj.h, config/romp/xm-romp.h,
config/rs6000/xm-beos.h, config/rs6000/xm-rs6000.h,
config/rs6000/xm-sysv4.h, config/sh/xm-sh.h,
config/sparc/xm-sparc.h, config/sparc/xm-sysv4.h,
config/v850/xm-v850.h, config/vax/xm-vax.h,
config/we32k/xm-we32k.h:
Don't include tm.h.
Don't define SUCCESS_EXIT_CODE or FATAL_EXIT_CODE.
* config/i370/xm-i370.h, config/i370/xm-mvs.h,
config/i370/xm-oe.h: Don't include tm.h. Don't define
SUCCESS_EXIT_CODE.
* config/vax/xm-vms.h: Don't include tm.h.
* config/xm-lynx.h, config/avr/xm-avr.h,
config/fr30/xm-fr30.h, config/pdp11/xm-pdp11.h,
Delete; made empty by above changes.
* config/i386/xm-lynx.h, config/m68k/xm-lynx.h,
config/rs6000/xm-lynx.h, config/sparc/xm-lynx.h:
Don't include config/xm-lynx.h or tm.h.
* config/xm-gnu.h: Don't include fcntl.h.
* config/sparc/xm-lynx.h: Don't include sys/types.h and
sys/wait.h.
* config/clipper/xm-clix.h, config/vax/xm-vax.h: Don't define isinf.
From-SVN: r40199
2001-03-03 04:32:55 +01:00
|
|
|
tm_file="${tm_file} defaults.h"
|
2002-12-16 19:23:00 +01:00
|
|
|
tm_p_file="${tm_p_file} tm-preds.h"
|
|
|
|
host_xm_file="auto-host.h ansidecl.h ${host_xm_file}"
|
|
|
|
build_xm_file="${build_auto} ansidecl.h ${build_xm_file}"
|
2003-01-24 02:46:50 +01:00
|
|
|
# We don't want ansidecl.h in target files, write code there in ISO/GNU C.
|
2003-01-24 03:26:04 +01:00
|
|
|
# put this back in temporarily.
|
2005-05-08 12:13:19 +02:00
|
|
|
xm_file="auto-host.h ansidecl.h ${xm_file}"
|
configure.in (host_xm_file, [...]): Arrange to include gansidecl.h in {ht}config.h & tm.h just before the config/...
* configure.in (host_xm_file, build_xm_file, xm_file, tm_file):
Arrange to include gansidecl.h in {ht}config.h & tm.h just
before the config/ directory headers.
(tm_file_list, host_xm_file_list, build_xm_file_list): Handle
gansidecl.h in the list of dependencies.
* Makefile.in (RTL_BASE_H): Don't depend on gansidecl.h.
(TREE_H, DEMANGLE_H, RECOG_H, REGS_H, libgcc2.a, stmp-multilib,
mbchar.o, collect2.o, pexecute.o, vfprintf.o, splay-tree.o, gcc.o,
gencheck.o, choose-temp.o, mkstemp.o, mkstemp.o, prefix.o,
dyn-string.o, cexp.o, cccp.o, cppmain.o, cpplib.o, cpperror.o,
cppexp.o, cppfiles.o, cpphash.o, cppalloc.o, scan-decls.o):
Likewise.
* cccp.c: Don't include gansidecl.h.
* cexp.y: Likewise.
* collect2.c: Likewise.
* config/c4x/c4x.c: Likewise.
* config/v850/v850.h: Likewise.
* cppalloc.c: Likewise.
* cpperror.c: Likewise.
* cppexp.c: Likewise.
* cppfiles.c: Likewise.
* cpphash.c: Likewise.
* cpplib.c: Likewise.
* cppmain.c: Likewise.
* cppulp.c: Likewise.
* demangle.h: Likewise.
* doprint.c: Likewise.
* dyn-string.c: Likewise.
* eh-common.h: Likewise.
* fix-header.c: Likewise.
* frame.c: Likewise.
* gcc.c: Likewise.
* gcov.c: Likewise.
* gen-protos.c: Likewise.
* gencheck.c: Likewise.
* halfpic.h: Likewise.
* hash.c: Likewise.
* machmode.h: Likewise.
* mbchar.c: Likewise.
* prefix.c: Likewise.
* protoize.c: Likewise.
* recog.h: Likewise.
* rtl.h: Likewise.
* scan-decls.c: Likewise.
* tree.h: Likewise.
* varray.h: Likewise.
From-SVN: r23558
1998-11-07 14:00:46 +01:00
|
|
|
|
2003-03-04 08:41:00 +01:00
|
|
|
# --------
|
|
|
|
# UNSORTED
|
|
|
|
# --------
|
|
|
|
|
2004-12-02 12:05:13 +01:00
|
|
|
changequote(,)dnl
|
2000-11-13 14:39:36 +01:00
|
|
|
# Compile in configure arguments.
|
2000-11-13 17:56:57 +01:00
|
|
|
if test -f configargs.h ; then
|
2000-11-13 14:39:36 +01:00
|
|
|
# Being re-configured.
|
2001-05-29 17:16:24 +02:00
|
|
|
gcc_config_arguments=`grep configuration_arguments configargs.h | sed -e 's/.*"\([^"]*\)".*/\1/'`
|
2000-11-13 14:39:36 +01:00
|
|
|
gcc_config_arguments="$gcc_config_arguments : (reconfigured) $TOPLEVEL_CONFIGURE_ARGUMENTS"
|
|
|
|
else
|
|
|
|
gcc_config_arguments="$TOPLEVEL_CONFIGURE_ARGUMENTS"
|
|
|
|
fi
|
2003-09-17 22:01:06 +02:00
|
|
|
|
|
|
|
# Double all backslashes and backslash all quotes to turn
|
|
|
|
# gcc_config_arguments into a C string.
|
|
|
|
sed -e 's/\\/\\\\/g; s/"/\\"/g' <<EOF >conftest.out
|
|
|
|
$gcc_config_arguments
|
|
|
|
EOF
|
|
|
|
gcc_config_arguments_str=`cat conftest.out`
|
|
|
|
rm -f conftest.out
|
|
|
|
|
2000-11-13 14:39:36 +01:00
|
|
|
cat > configargs.h <<EOF
|
|
|
|
/* Generated automatically. */
|
2003-09-17 22:01:06 +02:00
|
|
|
static const char configuration_arguments[] = "$gcc_config_arguments_str";
|
2001-04-26 06:28:50 +02:00
|
|
|
static const char thread_model[] = "$thread_file";
|
config.gcc: Reorganize --with-cpu logic.
* config.gcc: Reorganize --with-cpu logic. Set
configure_default_options according to the default CPU, --with-cpu,
--with-arch, --with-tune, --with-schedule, --with-abi, and
--with-float. Check for legal values of various options.
* configure.in: Define configure_default_options in configargs.h.
* configure: Regenerated.
* config/mips/mips.h (TARGET_DEFAULT_ARCH_P)
(TARGET_DEFAULT_FLOAT_P): New macros.
* gcc.c (do_option_spec): New function.
(struct default_spec, option_default_specs): New.
(main): Call do_option_spec.
* config/alpha/alpha.h, config/arm/arm.h, config/i386/i386.h,
config/mips/mips.h, config/pa/pa.h, config/rs6000/rs6000.h,
config/sparc/sparc.h (OPTION_DEFAULT_SPECS): Define.
* doc/install.texi: Update --with-cpu documentation. Mention
--with-arch, --with-schedule, --with-tune, --with-abi, and
--with-float.
* doc/tm.texi (Driver): Document OPTION_DEFAULT_SPECS.
From-SVN: r67457
2003-06-04 19:50:44 +02:00
|
|
|
|
|
|
|
static const struct {
|
|
|
|
const char *name, *value;
|
|
|
|
} configure_default_options[] = $configure_default_options;
|
2000-11-13 14:39:36 +01:00
|
|
|
EOF
|
1998-08-14 11:23:47 +02:00
|
|
|
changequote([,])dnl
|
1997-05-18 14:31:53 +02:00
|
|
|
|
2009-04-29 15:20:53 +02:00
|
|
|
changequote(,)dnl
|
2009-05-05 00:08:44 +02:00
|
|
|
gcc_BASEVER=`cat $srcdir/BASE-VER`
|
|
|
|
gcc_DEVPHASE=`cat $srcdir/DEV-PHASE`
|
|
|
|
gcc_DATESTAMP=`cat $srcdir/DATESTAMP`
|
2009-04-29 15:20:53 +02:00
|
|
|
if test -f $srcdir/REVISION ; then
|
2009-05-05 00:08:44 +02:00
|
|
|
gcc_REVISION=`cat $srcdir/REVISION`
|
2009-04-29 15:20:53 +02:00
|
|
|
else
|
|
|
|
gcc_REVISION=""
|
|
|
|
fi
|
|
|
|
cat > plugin-version.h <<EOF
|
|
|
|
#include "configargs.h"
|
|
|
|
|
2011-07-06 18:37:09 +02:00
|
|
|
#define GCCPLUGIN_VERSION_MAJOR `echo $gcc_BASEVER | sed -e 's/^\([0-9]*\).*$/\1/'`
|
|
|
|
#define GCCPLUGIN_VERSION_MINOR `echo $gcc_BASEVER | sed -e 's/^[0-9]*\.\([0-9]*\).*$/\1/'`
|
|
|
|
#define GCCPLUGIN_VERSION_PATCHLEVEL `echo $gcc_BASEVER | sed -e 's/^[0-9]*\.[0-9]*\.\([0-9]*\)$/\1/'`
|
|
|
|
#define GCCPLUGIN_VERSION (GCCPLUGIN_VERSION_MAJOR*1000 + GCCPLUGIN_VERSION_MINOR)
|
|
|
|
|
2009-04-29 15:20:53 +02:00
|
|
|
static char basever[] = "$gcc_BASEVER";
|
|
|
|
static char datestamp[] = "$gcc_DATESTAMP";
|
|
|
|
static char devphase[] = "$gcc_DEVPHASE";
|
|
|
|
static char revision[] = "$gcc_REVISION";
|
|
|
|
|
|
|
|
/* FIXME plugins: We should make the version information more precise.
|
|
|
|
One way to do is to add a checksum. */
|
|
|
|
|
|
|
|
static struct plugin_gcc_version gcc_version = {basever, datestamp,
|
|
|
|
devphase, revision,
|
|
|
|
configuration_arguments};
|
|
|
|
EOF
|
|
|
|
changequote([,])dnl
|
|
|
|
|
1999-01-27 02:43:17 +01:00
|
|
|
# Internationalization
|
Makefile.tpl (configure-gcc): Depend on maybe-configure-intl.
top:
* Makefile.tpl (configure-gcc): Depend on maybe-configure-intl.
* Makefile.in: Regenerate.
config:
* gettext.m4: Delete all former contents.
(ZW_GNU_GETTEXT_SISTER_DIR): New macro.
* progtest.m4: New file.
gcc:
* Makefile.in (top_builddir): Set to "..", not ".".
(INTLLIBS, INTLDEPS): Delete.
(LIBINTL, LIBINTL_DEP, LIBICONV_DEP): New variables to be substituted.
(LIBDEPS): Add $(LIBICONV_DEP).
(LIBS): Take out $(INTLLIBS), add $(LIBINTL) and $(LIBICONV).
(INCLUDES): Replace -I../intl with @INCINTL@.
($(top_builddir)/intl/libintl.a): Delete rule.
(stage2-start, stage3-start, stage4-start, stageprofile-start,
stagefeedback-start): Use $$ for variable to be evaluated by
shell, not make.
* acconfig.h (ENABLE_NLS, HAVE_CATGETS, HAVE_GETTEXT,
HAVE_LC_MESSAGES, HAVE_STPCPY): Delete.
* aclocal.m4: sinclude ../config/progtest.m4. Add
contents of lcmessage.m4 from gettext distro.
* configure.in: Check for wchar.h and setlocale. Set
LIBICONV_DEP to the empty string and substitute it.
Call AM_LC_MESSAGES. Delete AC_ARG_ENABLE for --enable-nls;
this is handled elsewhere. Use ZW_GNU_GETTEXT_SISTER_DIR,
not CY_GNU_GETTEXT. Clear $LIBICONV if its text is included
in $LIBINTL, to avoid linking it twice.
* configure, config.in: Regenerate.
intl:
* README: Update.
* Makefile.in (INSTALL, INSTALL_DATA, MKINSTALLDIRS,
mkinstalldirs, gettextsrcdir, l): Delete.
(COMPILE): Add $(DEFS-$@), remove $(XCFLAGS).
(HEADERS): libgnuintl.h not libgnuintl.h.in. Remove os2compat.h.
(SOURCES): Remove os2compat.c.
(DEFS-dcigettext.o, DEFS-localealias.o, DEFS-localcharset.o,
DEFS-relocatable.o): New.
(all-yes): Add config.intl.
(libintl.h): Use cp, not cat.
(INCLUDES): Remove -I..
(TAGS, CTAGS, ID): Word wrap.
(mostlyclean, distclean): Remove junk.
(config.intl): New rule.
* aclocal.m4: sinclude ../config/progtest.m4 instead of
including it inline.
* config.intl.in: New file.
* configure.in: Take out unnecessary AC_CONFIG_AUX_DIR.
Take out AC_DEFINEs for LOCALEDIR, LOCALE_ALIAS_PATH,
LIBDIR, INSTALLDIR. Set LIBINTL_DEP and INCINTL and AC_SUBST
them. Add config.intl to AC_OUTPUT.
* os2compat.c, os2compat.h: Delete, unused.
From-SVN: r69071
2003-07-08 07:55:11 +02:00
|
|
|
ZW_GNU_GETTEXT_SISTER_DIR
|
2000-05-31 19:46:30 +02:00
|
|
|
|
Makefile.tpl (configure-gcc): Depend on maybe-configure-intl.
top:
* Makefile.tpl (configure-gcc): Depend on maybe-configure-intl.
* Makefile.in: Regenerate.
config:
* gettext.m4: Delete all former contents.
(ZW_GNU_GETTEXT_SISTER_DIR): New macro.
* progtest.m4: New file.
gcc:
* Makefile.in (top_builddir): Set to "..", not ".".
(INTLLIBS, INTLDEPS): Delete.
(LIBINTL, LIBINTL_DEP, LIBICONV_DEP): New variables to be substituted.
(LIBDEPS): Add $(LIBICONV_DEP).
(LIBS): Take out $(INTLLIBS), add $(LIBINTL) and $(LIBICONV).
(INCLUDES): Replace -I../intl with @INCINTL@.
($(top_builddir)/intl/libintl.a): Delete rule.
(stage2-start, stage3-start, stage4-start, stageprofile-start,
stagefeedback-start): Use $$ for variable to be evaluated by
shell, not make.
* acconfig.h (ENABLE_NLS, HAVE_CATGETS, HAVE_GETTEXT,
HAVE_LC_MESSAGES, HAVE_STPCPY): Delete.
* aclocal.m4: sinclude ../config/progtest.m4. Add
contents of lcmessage.m4 from gettext distro.
* configure.in: Check for wchar.h and setlocale. Set
LIBICONV_DEP to the empty string and substitute it.
Call AM_LC_MESSAGES. Delete AC_ARG_ENABLE for --enable-nls;
this is handled elsewhere. Use ZW_GNU_GETTEXT_SISTER_DIR,
not CY_GNU_GETTEXT. Clear $LIBICONV if its text is included
in $LIBINTL, to avoid linking it twice.
* configure, config.in: Regenerate.
intl:
* README: Update.
* Makefile.in (INSTALL, INSTALL_DATA, MKINSTALLDIRS,
mkinstalldirs, gettextsrcdir, l): Delete.
(COMPILE): Add $(DEFS-$@), remove $(XCFLAGS).
(HEADERS): libgnuintl.h not libgnuintl.h.in. Remove os2compat.h.
(SOURCES): Remove os2compat.c.
(DEFS-dcigettext.o, DEFS-localealias.o, DEFS-localcharset.o,
DEFS-relocatable.o): New.
(all-yes): Add config.intl.
(libintl.h): Use cp, not cat.
(INCLUDES): Remove -I..
(TAGS, CTAGS, ID): Word wrap.
(mostlyclean, distclean): Remove junk.
(config.intl): New rule.
* aclocal.m4: sinclude ../config/progtest.m4 instead of
including it inline.
* config.intl.in: New file.
* configure.in: Take out unnecessary AC_CONFIG_AUX_DIR.
Take out AC_DEFINEs for LOCALEDIR, LOCALE_ALIAS_PATH,
LIBDIR, INSTALLDIR. Set LIBINTL_DEP and INCINTL and AC_SUBST
them. Add config.intl to AC_OUTPUT.
* os2compat.c, os2compat.h: Delete, unused.
From-SVN: r69071
2003-07-08 07:55:11 +02:00
|
|
|
# If LIBINTL contains LIBICONV, then clear LIBICONV so we don't get
|
|
|
|
# -liconv on the link line twice.
|
|
|
|
case "$LIBINTL" in *$LIBICONV*)
|
|
|
|
LIBICONV= ;;
|
|
|
|
esac
|
1999-01-27 02:43:17 +01:00
|
|
|
|
configure.ac: Add --enable-secureplt.
* configure.ac: Add --enable-secureplt.
(HAVE_AS_REL16): Test for R_PPC_REL16 relocs.
* config.in: Regenerate.
* configure: Regenerate.
* config.gcc (powerpc64-*-linux*, powerpc-*-linux*): Add
rs6000/secureplt.h to tm_file when enable_secureplt.
* doc/invoke.texi (msecure-plt, mbss-plt): Document.
* doc/install.texi: Document --enable-targets and --enable-secureplt.
Correct xrefs to "Using the GNU Compiler Collection (GCC)".
* config/rs6000/secureplt.h: New file.
* config/rs6000/sysv4.h (TARGET_SECURE_PLT): Define.
(SUBTARGET_OVERRIDE_OPTIONS): Error if -msecure-plt given without
assembler support.
(CC1_SECURE_PLT_DEFAULT_SPEC): Define.
(CC1_SPEC): Delete duplicate mno-sdata. Invoke cc1_secure_plt_default.
(SUBTARGET_EXTRA_SPECS): Add cc1_secure_plt_default.
* config/rs6000/sysv4.opt (msecure-plt, bss-plt): Add options.
* config/rs6000/rs6000.h (TARGET_SECURE_PLT): Define.
* config/rs6000/rs6000.c (rs6000_emit_load_toc_table): Handle
TARGET_SECURE_PLT got register load sequence.
(rs6000_emit_prologue): Call rs6000_emit_load_toc_table when
TARGET_SECURE_PLT.
(rs6000_elf_declare_function_name): Don't emit toc address offset
word when TARGET_SECURE_PLT.
* config/rs6000/rs6000.md (elf_high, elf_low): Move past load_toc_*.
(load_toc_v4_PIC_1) Enable for TARGET_SECURE_PLT.
(load_toc_v4_PIC_3b, load_toc_v4_PIC_3c): New insns.
(call, call_value): Mark pic_offset_table_rtx used for sysv pic and
TARGET_SECURE_PLT.
(call_nonlocal_sysv, call_value_nonlocal_sysv, sibcall_nonlocal_sysv,
sibcall_value_nonlocal_sysv): Add 32768 offset when TARGET_SECURE_PLT
and -fPIC.
* config/rs6000/tramp.asm (trampoline_initial): Use "bcl 20,31".
(__trampoline_setup): Likewise. Init r30 before plt call.
From-SVN: r100415
2005-06-01 02:30:26 +02:00
|
|
|
AC_ARG_ENABLE(secureplt,
|
2011-05-13 10:09:25 +02:00
|
|
|
[AS_HELP_STRING([--enable-secureplt],
|
|
|
|
[enable -msecure-plt by default for PowerPC])],
|
configure.ac: Add --enable-secureplt.
* configure.ac: Add --enable-secureplt.
(HAVE_AS_REL16): Test for R_PPC_REL16 relocs.
* config.in: Regenerate.
* configure: Regenerate.
* config.gcc (powerpc64-*-linux*, powerpc-*-linux*): Add
rs6000/secureplt.h to tm_file when enable_secureplt.
* doc/invoke.texi (msecure-plt, mbss-plt): Document.
* doc/install.texi: Document --enable-targets and --enable-secureplt.
Correct xrefs to "Using the GNU Compiler Collection (GCC)".
* config/rs6000/secureplt.h: New file.
* config/rs6000/sysv4.h (TARGET_SECURE_PLT): Define.
(SUBTARGET_OVERRIDE_OPTIONS): Error if -msecure-plt given without
assembler support.
(CC1_SECURE_PLT_DEFAULT_SPEC): Define.
(CC1_SPEC): Delete duplicate mno-sdata. Invoke cc1_secure_plt_default.
(SUBTARGET_EXTRA_SPECS): Add cc1_secure_plt_default.
* config/rs6000/sysv4.opt (msecure-plt, bss-plt): Add options.
* config/rs6000/rs6000.h (TARGET_SECURE_PLT): Define.
* config/rs6000/rs6000.c (rs6000_emit_load_toc_table): Handle
TARGET_SECURE_PLT got register load sequence.
(rs6000_emit_prologue): Call rs6000_emit_load_toc_table when
TARGET_SECURE_PLT.
(rs6000_elf_declare_function_name): Don't emit toc address offset
word when TARGET_SECURE_PLT.
* config/rs6000/rs6000.md (elf_high, elf_low): Move past load_toc_*.
(load_toc_v4_PIC_1) Enable for TARGET_SECURE_PLT.
(load_toc_v4_PIC_3b, load_toc_v4_PIC_3c): New insns.
(call, call_value): Mark pic_offset_table_rtx used for sysv pic and
TARGET_SECURE_PLT.
(call_nonlocal_sysv, call_value_nonlocal_sysv, sibcall_nonlocal_sysv,
sibcall_value_nonlocal_sysv): Add 32768 offset when TARGET_SECURE_PLT
and -fPIC.
* config/rs6000/tramp.asm (trampoline_initial): Use "bcl 20,31".
(__trampoline_setup): Likewise. Init r30 before plt call.
From-SVN: r100415
2005-06-01 02:30:26 +02:00
|
|
|
[], [])
|
|
|
|
|
2010-04-27 19:48:58 +02:00
|
|
|
AC_ARG_ENABLE(leading-mingw64-underscores,
|
|
|
|
AS_HELP_STRING([--enable-leading-mingw64-underscores],
|
2011-05-13 10:09:25 +02:00
|
|
|
[enable leading underscores on 64 bit mingw targets]),
|
2010-04-27 19:48:58 +02:00
|
|
|
[],[])
|
|
|
|
AS_IF([ test x"$enable_leading_mingw64_underscores" = xyes ],
|
|
|
|
[AC_DEFINE(USE_MINGW64_LEADING_UNDERSCORES, 1,
|
|
|
|
[Define if we should use leading underscore on 64 bit mingw targets])])
|
|
|
|
|
2008-05-23 09:53:16 +02:00
|
|
|
AC_ARG_ENABLE(cld,
|
2011-05-13 10:09:25 +02:00
|
|
|
[AS_HELP_STRING([--enable-cld], [enable -mcld by default for 32bit x86])], [],
|
2008-05-23 09:53:16 +02:00
|
|
|
[enable_cld=no])
|
|
|
|
|
2010-08-12 18:39:37 +02:00
|
|
|
AC_ARG_ENABLE(frame-pointer,
|
2011-05-13 10:09:25 +02:00
|
|
|
[AS_HELP_STRING([--enable-frame-pointer],
|
|
|
|
[enable -fno-omit-frame-pointer by default for 32bit x86])], [],
|
2010-08-12 18:39:37 +02:00
|
|
|
[
|
|
|
|
case $target_os in
|
2010-08-13 19:06:42 +02:00
|
|
|
linux* | darwin[[8912]]*)
|
|
|
|
# Enable -fomit-frame-pointer by default for Linux and Darwin with
|
|
|
|
# DWARF2.
|
2010-08-12 18:39:37 +02:00
|
|
|
enable_frame_pointer=no
|
|
|
|
;;
|
|
|
|
*)
|
|
|
|
enable_frame_pointer=yes
|
|
|
|
;;
|
|
|
|
esac
|
|
|
|
])
|
|
|
|
|
1999-08-15 00:04:44 +02:00
|
|
|
# Windows32 Registry support for specifying GCC installation paths.
|
|
|
|
AC_ARG_ENABLE(win32-registry,
|
2011-05-13 10:09:25 +02:00
|
|
|
[AS_HELP_STRING([--disable-win32-registry],
|
|
|
|
[disable lookup of installation paths in the
|
|
|
|
Registry on Windows hosts])
|
|
|
|
AS_HELP_STRING([--enable-win32-registry], [enable registry lookup (default)])
|
|
|
|
AS_HELP_STRING([--enable-win32-registry=KEY],
|
|
|
|
[use KEY instead of GCC version as the last portion
|
|
|
|
of the registry key])],,)
|
gcc-version.m4: Delete.
config:
* gcc-version.m4: Delete.
fastjar:
* Makefile.am (fastjar_TEXINFOS): Add gcc-vers.texi.
(BASEVER, DEVPHASE): New variables.
(POD2MAN): Adjust setting of --release option.
(fastjar.1, grepjar.1, gcc-vers.texi): New rules.
* Makefile.in: Regenerate.
* configure.ac: Do not invoke TL_AC_GCC_VERSION.
* aclocal.m4, configure: Regenerate.
gcc:
* BASE-VER, DATESTAMP, DEV-PHASE: New files.
* Makefile.in (gcc_version, gcc_version_trigger, ): Delete.
(BASEVER, DEVPHASE, DATESTAMP, BASEVER_c, DEVPHASE_c, DATESTAMP_c)
(BASEVER_s, DEVPHASE_s, DATESTAMP_s): New variables.
(version): Define using $(BASEVER_c).
(Makefile, config.status, build/gcov-iov.o): No longer depends on
version.c.
(version.o): Depend on version files; add custom generation command.
(prefix.o): Define BASEVER on command line.
(s-iov): Depend on version files; adjust command.
(TEXI_CPP_FILES, TEX_IGCC_FILES, TEXI_GCCINT_FILES, TEXI_CPPINT_FILES):
Add gcc-vers.texi.
(gcc-vers.texi): New rule.
(doc/%.info, doc/%.dvi): Add -I . to command line.
(doc/gccinstall.dvi): Likewise.
(PACKAGE): Delete. All uses replaced with "gcc".
* aclocal.m4: Do not include gcc-version.m4.
* configure.ac: Do not invoke TL_AC_GCC_VERSION.
Do not AC_SUBST nor AC_DEFINE PACKAGE or VERSION.
Set is_release based on contents of DEV-PHASE.
Set gcc_version based on contents of BASE-VER.
Define WIN32_REGISTRY_KEY only if the user overrode the default.
* config.in, configure: Regenerate.
* gccbug.in: Determine version of GCC in use at runtime.
* gcov-iov.c: Get version number and development phase from
command line, not by including version.c.
* intl.c: Replace all uses of PACKAGE with "gcc".
* libada-mk.in: Delete unused "gcc_version" variable.
* prefix.c: Default WIN32_REGISTRY_KEY to BASEVER.
* version.c: (VERSUFFIX): New hook for redistributors; adjust
commentary to match.
(version_string): Put together from pieces.
* config/alpha/x-vms: Do not use $(gcc_version).
* config/i386/t-nwld: Likewise.
* doc/include/gcc-common.texi: Include gcc-vers.texi for
version-GCC and DEVELOPMENT.
gcc/ada:
* Make-lang.in (doc/gnat_ugn_unw.info, doc/gnat_rm.info)
(doc/gnat_ugn_unw.dvi, doc/gnat_rm.dvi): Add gcc-vers.texi
to dependencies.
gcc/fortran:
* Make-lang.in (GFORTRAN_TEXI): Add gcc-vers.texi.
gcc/java:
* Make-lang.in (TEXI_JAVA_FILES): Add gcc-vers.texi.
gcc/treelang:
* Make-lang.in (TEXI_TREELANG_FILES): Add gcc-vers.texi.
libstdc++-v3:
* include/Makefile.am (c++config.h): Depend on DATESTAMP from gcc
subdirectory. Generate #define of __GLIBCXX__ from contents of
that file.
* include/Makefile.in: Regenerate.
* include/bits/c++config: Do not define __GLIBCXX__.
maintainer-scripts:
* README: Update.
* gcc_release: Update gcc/DEV-PHASE if that file exists, instead
of gcc/version.c.
* update_version: Handle updating gcc/DATESTAMP.
* update_web_docs: Generate gcc-vers.texi first.
From-SVN: r96549
2005-03-16 07:04:10 +01:00
|
|
|
|
config.gcc: Don't default xmake_file to ${cpu_type}/x-${cpu_type}.
2001-05-01 Zack Weinberg <zackw@stanford.edu>
* config.gcc: Don't default xmake_file to ${cpu_type}/x-${cpu_type}.
Remove references to deleted files.
(*-*-openbsd): No need to override xmake_file.
(*-*-sysv4): Treat like *-*-sysv.
* configure.in: Probe for ldopen in various places, and set up
collect2 to be linked with them if found.
Don't dink with Windows registry stuff unless $host_os is a
Win32 os name. Check to see if we need -ladvapi32.
* configure: Regenerate.
* Makefile: Get rid of CLIB and HOST_CLIB.
Substitute in COLLECT2_LIBS and link collect2 against its contents.
* build-make: Get rid of HOST_CLIB.
* config/a29k/x-unix, config/alpha/x-osf, config/i386/x-aix,
config/i386/x-osfrose, config/m68k/x-dpx2, config/mips/x-iris3,
config/mips/x-mips, config/mips/x-osfrose, config/mips/x-sony,
config/mips/x-sysv, config/rs6000/x-aix31, config/rs6000/x-aix41,
config/rs6000/x-rs6000: Delete.
* config/i386/x-cygwin, config/m68k/t-aux, config/mips/x-iris:
Don't set CLIB.
24 x-host fragments remain, 0 x-cpu, 3 top level.
2001-05-01 Zack Weinberg <zackw@stanford.edu>
* aclocal.m4 (gcc_AC_C_CHAR_BIT): Correct test program.
* configure: Regenerate.
From-SVN: r41732
2001-05-01 19:45:05 +02:00
|
|
|
case $host_os in
|
configure.ac: Remove uwin* cases.
* configure.ac: Remove uwin* cases.
* config.build: Remove cases for i370-*-opened*, i370-*-mvs*,
i[34567]86-*-sco3.2v5*, i[34567]86-sequent-ptx4*,
i[34567]86-sequent-sysv4*, i[34567]86-*-sysv4*,
i[34567]86-*-udk*, i[34567]86-*-uwin*, i386-*-vsta.
* config.host: Remove cases for i370-*-opened*, i370-*-mvs*,
i[34567]86-*-uwin*, powerpc-*-beos*.
From-SVN: r227077
2015-08-21 19:38:01 +02:00
|
|
|
win32 | pe | cygwin* | mingw32*)
|
gcc-version.m4: Delete.
config:
* gcc-version.m4: Delete.
fastjar:
* Makefile.am (fastjar_TEXINFOS): Add gcc-vers.texi.
(BASEVER, DEVPHASE): New variables.
(POD2MAN): Adjust setting of --release option.
(fastjar.1, grepjar.1, gcc-vers.texi): New rules.
* Makefile.in: Regenerate.
* configure.ac: Do not invoke TL_AC_GCC_VERSION.
* aclocal.m4, configure: Regenerate.
gcc:
* BASE-VER, DATESTAMP, DEV-PHASE: New files.
* Makefile.in (gcc_version, gcc_version_trigger, ): Delete.
(BASEVER, DEVPHASE, DATESTAMP, BASEVER_c, DEVPHASE_c, DATESTAMP_c)
(BASEVER_s, DEVPHASE_s, DATESTAMP_s): New variables.
(version): Define using $(BASEVER_c).
(Makefile, config.status, build/gcov-iov.o): No longer depends on
version.c.
(version.o): Depend on version files; add custom generation command.
(prefix.o): Define BASEVER on command line.
(s-iov): Depend on version files; adjust command.
(TEXI_CPP_FILES, TEX_IGCC_FILES, TEXI_GCCINT_FILES, TEXI_CPPINT_FILES):
Add gcc-vers.texi.
(gcc-vers.texi): New rule.
(doc/%.info, doc/%.dvi): Add -I . to command line.
(doc/gccinstall.dvi): Likewise.
(PACKAGE): Delete. All uses replaced with "gcc".
* aclocal.m4: Do not include gcc-version.m4.
* configure.ac: Do not invoke TL_AC_GCC_VERSION.
Do not AC_SUBST nor AC_DEFINE PACKAGE or VERSION.
Set is_release based on contents of DEV-PHASE.
Set gcc_version based on contents of BASE-VER.
Define WIN32_REGISTRY_KEY only if the user overrode the default.
* config.in, configure: Regenerate.
* gccbug.in: Determine version of GCC in use at runtime.
* gcov-iov.c: Get version number and development phase from
command line, not by including version.c.
* intl.c: Replace all uses of PACKAGE with "gcc".
* libada-mk.in: Delete unused "gcc_version" variable.
* prefix.c: Default WIN32_REGISTRY_KEY to BASEVER.
* version.c: (VERSUFFIX): New hook for redistributors; adjust
commentary to match.
(version_string): Put together from pieces.
* config/alpha/x-vms: Do not use $(gcc_version).
* config/i386/t-nwld: Likewise.
* doc/include/gcc-common.texi: Include gcc-vers.texi for
version-GCC and DEVELOPMENT.
gcc/ada:
* Make-lang.in (doc/gnat_ugn_unw.info, doc/gnat_rm.info)
(doc/gnat_ugn_unw.dvi, doc/gnat_rm.dvi): Add gcc-vers.texi
to dependencies.
gcc/fortran:
* Make-lang.in (GFORTRAN_TEXI): Add gcc-vers.texi.
gcc/java:
* Make-lang.in (TEXI_JAVA_FILES): Add gcc-vers.texi.
gcc/treelang:
* Make-lang.in (TEXI_TREELANG_FILES): Add gcc-vers.texi.
libstdc++-v3:
* include/Makefile.am (c++config.h): Depend on DATESTAMP from gcc
subdirectory. Generate #define of __GLIBCXX__ from contents of
that file.
* include/Makefile.in: Regenerate.
* include/bits/c++config: Do not define __GLIBCXX__.
maintainer-scripts:
* README: Update.
* gcc_release: Update gcc/DEV-PHASE if that file exists, instead
of gcc/version.c.
* update_version: Handle updating gcc/DATESTAMP.
* update_web_docs: Generate gcc-vers.texi first.
From-SVN: r96549
2005-03-16 07:04:10 +01:00
|
|
|
if test "x$enable_win32_registry" != xno; then
|
|
|
|
AC_SEARCH_LIBS(RegOpenKeyExA, advapi32,, [enable_win32_registry=no])
|
|
|
|
fi
|
1999-08-15 00:04:44 +02:00
|
|
|
|
gcc-version.m4: Delete.
config:
* gcc-version.m4: Delete.
fastjar:
* Makefile.am (fastjar_TEXINFOS): Add gcc-vers.texi.
(BASEVER, DEVPHASE): New variables.
(POD2MAN): Adjust setting of --release option.
(fastjar.1, grepjar.1, gcc-vers.texi): New rules.
* Makefile.in: Regenerate.
* configure.ac: Do not invoke TL_AC_GCC_VERSION.
* aclocal.m4, configure: Regenerate.
gcc:
* BASE-VER, DATESTAMP, DEV-PHASE: New files.
* Makefile.in (gcc_version, gcc_version_trigger, ): Delete.
(BASEVER, DEVPHASE, DATESTAMP, BASEVER_c, DEVPHASE_c, DATESTAMP_c)
(BASEVER_s, DEVPHASE_s, DATESTAMP_s): New variables.
(version): Define using $(BASEVER_c).
(Makefile, config.status, build/gcov-iov.o): No longer depends on
version.c.
(version.o): Depend on version files; add custom generation command.
(prefix.o): Define BASEVER on command line.
(s-iov): Depend on version files; adjust command.
(TEXI_CPP_FILES, TEX_IGCC_FILES, TEXI_GCCINT_FILES, TEXI_CPPINT_FILES):
Add gcc-vers.texi.
(gcc-vers.texi): New rule.
(doc/%.info, doc/%.dvi): Add -I . to command line.
(doc/gccinstall.dvi): Likewise.
(PACKAGE): Delete. All uses replaced with "gcc".
* aclocal.m4: Do not include gcc-version.m4.
* configure.ac: Do not invoke TL_AC_GCC_VERSION.
Do not AC_SUBST nor AC_DEFINE PACKAGE or VERSION.
Set is_release based on contents of DEV-PHASE.
Set gcc_version based on contents of BASE-VER.
Define WIN32_REGISTRY_KEY only if the user overrode the default.
* config.in, configure: Regenerate.
* gccbug.in: Determine version of GCC in use at runtime.
* gcov-iov.c: Get version number and development phase from
command line, not by including version.c.
* intl.c: Replace all uses of PACKAGE with "gcc".
* libada-mk.in: Delete unused "gcc_version" variable.
* prefix.c: Default WIN32_REGISTRY_KEY to BASEVER.
* version.c: (VERSUFFIX): New hook for redistributors; adjust
commentary to match.
(version_string): Put together from pieces.
* config/alpha/x-vms: Do not use $(gcc_version).
* config/i386/t-nwld: Likewise.
* doc/include/gcc-common.texi: Include gcc-vers.texi for
version-GCC and DEVELOPMENT.
gcc/ada:
* Make-lang.in (doc/gnat_ugn_unw.info, doc/gnat_rm.info)
(doc/gnat_ugn_unw.dvi, doc/gnat_rm.dvi): Add gcc-vers.texi
to dependencies.
gcc/fortran:
* Make-lang.in (GFORTRAN_TEXI): Add gcc-vers.texi.
gcc/java:
* Make-lang.in (TEXI_JAVA_FILES): Add gcc-vers.texi.
gcc/treelang:
* Make-lang.in (TEXI_TREELANG_FILES): Add gcc-vers.texi.
libstdc++-v3:
* include/Makefile.am (c++config.h): Depend on DATESTAMP from gcc
subdirectory. Generate #define of __GLIBCXX__ from contents of
that file.
* include/Makefile.in: Regenerate.
* include/bits/c++config: Do not define __GLIBCXX__.
maintainer-scripts:
* README: Update.
* gcc_release: Update gcc/DEV-PHASE if that file exists, instead
of gcc/version.c.
* update_version: Handle updating gcc/DATESTAMP.
* update_web_docs: Generate gcc-vers.texi first.
From-SVN: r96549
2005-03-16 07:04:10 +01:00
|
|
|
if test "x$enable_win32_registry" != xno; then
|
|
|
|
AC_DEFINE(ENABLE_WIN32_REGISTRY, 1,
|
|
|
|
[Define to 1 if installation paths should be looked up in the Windows
|
|
|
|
Registry. Ignored on non-Windows hosts.])
|
|
|
|
|
|
|
|
if test "x$enable_win32_registry" != xyes \
|
|
|
|
&& test "x$enable_win32_registry" != x; then
|
|
|
|
AC_DEFINE_UNQUOTED(WIN32_REGISTRY_KEY, "$enable_win32_registry",
|
|
|
|
[Define to be the last component of the Windows registry key under which
|
|
|
|
to look for installation paths. The full key used will be
|
|
|
|
HKEY_LOCAL_MACHINE/SOFTWARE/Free Software Foundation/{WIN32_REGISTRY_KEY}.
|
|
|
|
The default is the GCC version number.])
|
|
|
|
fi
|
|
|
|
fi
|
1999-08-15 00:04:44 +02:00
|
|
|
;;
|
|
|
|
esac
|
|
|
|
|
1997-06-10 01:22:36 +02:00
|
|
|
# Get an absolute path to the GCC top-level source directory
|
2002-05-16 19:43:21 +02:00
|
|
|
holddir=`${PWDCMD-pwd}`
|
1997-06-10 01:22:36 +02:00
|
|
|
cd $srcdir
|
2002-05-16 19:43:21 +02:00
|
|
|
topdir=`${PWDCMD-pwd}`
|
1997-06-10 01:22:36 +02:00
|
|
|
cd $holddir
|
|
|
|
|
1997-07-19 04:22:30 +02:00
|
|
|
# Conditionalize the makefile for this host machine.
|
2003-08-31 08:07:42 +02:00
|
|
|
xmake_file=
|
2003-08-31 21:37:19 +02:00
|
|
|
for f in ${host_xmake_file}
|
1997-07-22 18:25:40 +02:00
|
|
|
do
|
1998-08-14 11:23:47 +02:00
|
|
|
if test -f ${srcdir}/config/$f
|
1997-07-22 18:25:40 +02:00
|
|
|
then
|
2003-08-31 08:07:42 +02:00
|
|
|
xmake_file="${xmake_file} \$(srcdir)/config/$f"
|
1997-07-22 18:25:40 +02:00
|
|
|
fi
|
|
|
|
done
|
1997-05-18 14:31:53 +02:00
|
|
|
|
1997-07-19 04:22:30 +02:00
|
|
|
# Conditionalize the makefile for this target machine.
|
2003-08-31 08:07:42 +02:00
|
|
|
tmake_file_=
|
2003-08-31 21:37:19 +02:00
|
|
|
for f in ${tmake_file}
|
1997-07-22 18:25:40 +02:00
|
|
|
do
|
1998-08-14 11:23:47 +02:00
|
|
|
if test -f ${srcdir}/config/$f
|
1997-07-22 18:25:40 +02:00
|
|
|
then
|
2003-08-31 08:07:42 +02:00
|
|
|
tmake_file_="${tmake_file_} \$(srcdir)/config/$f"
|
1997-07-22 18:25:40 +02:00
|
|
|
fi
|
|
|
|
done
|
2003-08-31 08:07:42 +02:00
|
|
|
tmake_file="${tmake_file_}"
|
1997-06-09 22:48:13 +02:00
|
|
|
|
1997-07-19 04:22:30 +02:00
|
|
|
out_object_file=`basename $out_file .c`.o
|
common-target-def.h, [...]: New files.
* common/common-target-def.h, common/common-target.def,
common/common-target.h, common/config/default-common.c,
common/config/pa/pa-common.c: New files.
* Makefile.in (common_out_file, common_out_object_file,
COMMON_TARGET_H, COMMON_TARGET_DEF_H): New.
(OBJS-libcommon-target): Include $(common_out_object_file).
(prefix.o): Update dependencies.
($(common_out_object_file), common/common-target-hooks-def.h,
s-common-target-hooks-def-h): New.
(s-tm-texi): Also check timestamp on common-target.def.
(build/genhooks.o): Update dependencies.
* config.gcc (common_out_file, target_has_targetm_common): Define.
* config/pa/som.h (ALWAYS_STRIP_DOTDOT): Replace with
TARGET_ALWAYS_STRIP_DOTDOT.
* configure.ac (common_out_object_file): Define.
(common_out_file, common_out_object_file): Substitute.
(common): Create directory.
* configure: Regenerate.
* doc/tm.texi.in (targetm_common): Document.
(TARGET_ALWAYS_STRIP_DOTDOT): Add @hook entry.
* doc/tm.texi: Regenerate.
* genhooks.c (hook_array): Also include common/common-target.def.
* prefix.c (tm.h): Don't include.
(common/common-target.h): Include.
(ALWAYS_STRIP_DOTDOT): Don't define.
(update_path): Use targetm_common.always_strip_dotdot instead of
ALWAYS_STRIP_DOTDOT.
* system.h (ALWAYS_STRIP_DOTDOT): Poison.
From-SVN: r175052
2011-06-14 22:11:37 +02:00
|
|
|
common_out_object_file=`basename $common_out_file .c`.o
|
1997-06-09 22:48:13 +02:00
|
|
|
|
2005-03-14 21:18:43 +01:00
|
|
|
tm_file_list="options.h"
|
flag-types.h: New.
* flag-types.h: New.
* Makefile.in (TH_H): Include $(OPTIONS_H) instead of $(FLAGS_H).
(FLAGS_H): Include flag-types.h. Include $(OPTIONS_H) instead of
options.h.
(OPTIONS_H): Define.
(c-family/c-opts.o, lto-opts.o, opts.o): Use $(OPTIONS_H) instead
of options.h.
* configure.ac (tm_include_list): Include options.h not flags.h.
* configure: Regenerate.
* flags.h: Include flag-types.h. Include options.h at top of file
again.
(enum debug_info_type, enum debug_info_level, enum
debug_info_usage, enum symbol_visibility, struct visibility_flags,
enum ira_algorithm, enum ira_region, enum excess_precision, enum
graph_dump_types, enum stack_check_type, enum
warn_strict_overflow_code): Move to flag-types.h
* opth-gen.awk: Include flag-types.h in options.h.
ada:
* gcc-interface/Make-lang.in (ada/misc.o): Use $(OPTIONS_H)
instead of options.h.
java:
* Make-lang.in (java/lang.o): Use $(OPTIONS_H) instead of
options.h.
From-SVN: r165362
2010-10-12 13:25:16 +02:00
|
|
|
tm_include_list="options.h insn-constants.h"
|
1997-07-19 04:22:30 +02:00
|
|
|
for f in $tm_file; do
|
1999-04-08 09:27:38 +02:00
|
|
|
case $f in
|
2007-03-06 10:06:35 +01:00
|
|
|
./* )
|
|
|
|
f=`echo $f | sed 's/^..//'`
|
|
|
|
tm_file_list="${tm_file_list} $f"
|
|
|
|
tm_include_list="${tm_include_list} $f"
|
|
|
|
;;
|
ansidecl.h: All logic from gcc/gansidecl.h moved here.
include:
* ansidecl.h: All logic from gcc/gansidecl.h moved here.
gcc:
* gansidecl.h: Delete file.
* configure.in: Change all refs to gansidecl.h to use
ansidecl.h. Adjust *_file_list so they know where ansidecl.h
lives.
* configure: Regenerate.
* Makefile.in (intl.o): Don't depend on gansidecl.h.
* defaults.h: s/gansidecl.h/ansidecl.h/ in comment.
* ggc.h, config/fr30/fr30.h, config/mcore/mcore.c:
Don't include gansidecl.h.
* intl.c, main.c, version.c, fixinc/fixlib.h,
fixinc/procopen.c, fixinc/server.c: Include ansidecl.h not
gansidecl.h.
gcc/java:
* Make-lang.in (buffer.o, check-init.o, class.o): Don't depend
on gansidecl.h.
* buffer.c, jvgenmain.c: Don't include gansidecl.h.
libiberty:
* make-temp-file.c (try): Inline.
From-SVN: r41069
2001-04-04 02:46:27 +02:00
|
|
|
defaults.h )
|
Makefile.in (tm_file): Rename tm_include_list.
* Makefile.in (tm_file): Rename tm_include_list.
(tm_p_file): Rename tm_p_include_list.
(build_xm_file): Rename build_xm_include_list.
(host_xm_file): Rename host_xm_include_list.
(xm_file): Rename xm_include_list.
(xm_file_list): Add to be substituted.
(cs-config.h, cs-bconfig.h, cs-tconfig.h, cs-tm.h, cs-tm_p.h):
Update to match.
(bt-load.o): Add missing dependency on $(TM_H).
* configure.in: Prefix value of EXTRA_MODES_FILE with config/.
For each of tm_file, tm_p_file, xm_file, host_xm_file, and
build_xm_file, generate both *_file_list and *_include_list
values from it. (xm_file_list was formerly not being generated.)
In *_include_list, prefix the names of all headers found in
$(srcdir)/config with config/. In each loop, consider only
the special case files that can actually appear in that list.
AC_SUBST all *_file_list and all *_include_list variables; do
not AC_SUBST the plain *_file variables.
* configure: Regenerate.
From-SVN: r70449
2003-08-14 22:25:14 +02:00
|
|
|
tm_file_list="${tm_file_list} \$(srcdir)/$f"
|
|
|
|
tm_include_list="${tm_include_list} $f"
|
|
|
|
;;
|
|
|
|
* )
|
|
|
|
tm_file_list="${tm_file_list} \$(srcdir)/config/$f"
|
|
|
|
tm_include_list="${tm_include_list} config/$f"
|
|
|
|
;;
|
1999-04-08 09:27:38 +02:00
|
|
|
esac
|
1997-07-19 04:22:30 +02:00
|
|
|
done
|
1997-05-18 14:31:53 +02:00
|
|
|
|
configure.in: Prune nonexistent files from build_xm_file, xm_file, and host_xm_file lists.
* configure.in: Prune nonexistent files from build_xm_file,
xm_file, and host_xm_file lists. Warn unless they're
$cpu/xm-$cpu.h.
Don't generate *config.h here.
AC_SUBST all variables needed to generate *config.h.
* configure: Regenerate.
* mkconfig.sh: New helper script, from code removed from
configure.in.
* Makefile.in: Zap all MALLOC variables - no longer used
anywhere, and malloc.c doesn't exist.
Substitute in variables needed to generate *config.h.
Stop lying about the dependencies contained in CONFIG_H and
GCONFIG_H.
(HCONFIG_H, TCONFIG_H, TM_P_H): New variables.
(config.h, hconfig.h, tconfig.h, tm_p.h, cs-config.h,
cs-hconfig.h, cs-tconfig.h, cs-tm_p.h): New rules.
(all .o): Add dependencies on $(HCONFIG_H), $(TCONFIG_H),
$(TM_P_H), etc. as appropriate.
* config.gcc: Zap references to deleted files.
* ggc-none.c: Don't include rtl.h or tm_p.h.
* config/i386/xm-beos.h, config/i386/xm-dgux.h,
config/i386/xm-djgpp.h, config/i386/xm-dos.h,
config/i386/xm-gnu.h, config/i386/xm-i386-interix.h,
config/i386/xm-linux.h, config/i386/xm-linux.h,
config/i386/xm-next.h, config/i386/xm-openbsd.h,
config/i386/xm-sun.h, config/i386/xm-sysv3.h:
Don't include i386/xm-i386.h.
* config/elxsi/xm-elxsi.h, config/i386/xm-bsd386.h,
config/i386/xm-i386.h, config/i860/xm-i860.h,
config/i960/xm-i960.h, config/mcore/xm-mcore.h,
config/mn10300/xm-mn10300.h, config/ns32k/xm-ns32k.h,
config/pj/xm-pj.h, config/sh/xm-sh.h, config/v850/xm-v850.h:
Delete (empty except comments, #includes of other deleted
files, and macros used nowhere).
cp:
* Make-lang.in: Add dependencies on $(TM_P_H) as appropriate.
From-SVN: r40350
2001-03-09 21:53:56 +01:00
|
|
|
tm_p_file_list=
|
Makefile.in (tm_file): Rename tm_include_list.
* Makefile.in (tm_file): Rename tm_include_list.
(tm_p_file): Rename tm_p_include_list.
(build_xm_file): Rename build_xm_include_list.
(host_xm_file): Rename host_xm_include_list.
(xm_file): Rename xm_include_list.
(xm_file_list): Add to be substituted.
(cs-config.h, cs-bconfig.h, cs-tconfig.h, cs-tm.h, cs-tm_p.h):
Update to match.
(bt-load.o): Add missing dependency on $(TM_H).
* configure.in: Prefix value of EXTRA_MODES_FILE with config/.
For each of tm_file, tm_p_file, xm_file, host_xm_file, and
build_xm_file, generate both *_file_list and *_include_list
values from it. (xm_file_list was formerly not being generated.)
In *_include_list, prefix the names of all headers found in
$(srcdir)/config with config/. In each loop, consider only
the special case files that can actually appear in that list.
AC_SUBST all *_file_list and all *_include_list variables; do
not AC_SUBST the plain *_file variables.
* configure: Regenerate.
From-SVN: r70449
2003-08-14 22:25:14 +02:00
|
|
|
tm_p_include_list=
|
configure.in: Prune nonexistent files from build_xm_file, xm_file, and host_xm_file lists.
* configure.in: Prune nonexistent files from build_xm_file,
xm_file, and host_xm_file lists. Warn unless they're
$cpu/xm-$cpu.h.
Don't generate *config.h here.
AC_SUBST all variables needed to generate *config.h.
* configure: Regenerate.
* mkconfig.sh: New helper script, from code removed from
configure.in.
* Makefile.in: Zap all MALLOC variables - no longer used
anywhere, and malloc.c doesn't exist.
Substitute in variables needed to generate *config.h.
Stop lying about the dependencies contained in CONFIG_H and
GCONFIG_H.
(HCONFIG_H, TCONFIG_H, TM_P_H): New variables.
(config.h, hconfig.h, tconfig.h, tm_p.h, cs-config.h,
cs-hconfig.h, cs-tconfig.h, cs-tm_p.h): New rules.
(all .o): Add dependencies on $(HCONFIG_H), $(TCONFIG_H),
$(TM_P_H), etc. as appropriate.
* config.gcc: Zap references to deleted files.
* ggc-none.c: Don't include rtl.h or tm_p.h.
* config/i386/xm-beos.h, config/i386/xm-dgux.h,
config/i386/xm-djgpp.h, config/i386/xm-dos.h,
config/i386/xm-gnu.h, config/i386/xm-i386-interix.h,
config/i386/xm-linux.h, config/i386/xm-linux.h,
config/i386/xm-next.h, config/i386/xm-openbsd.h,
config/i386/xm-sun.h, config/i386/xm-sysv3.h:
Don't include i386/xm-i386.h.
* config/elxsi/xm-elxsi.h, config/i386/xm-bsd386.h,
config/i386/xm-i386.h, config/i860/xm-i860.h,
config/i960/xm-i960.h, config/mcore/xm-mcore.h,
config/mn10300/xm-mn10300.h, config/ns32k/xm-ns32k.h,
config/pj/xm-pj.h, config/sh/xm-sh.h, config/v850/xm-v850.h:
Delete (empty except comments, #includes of other deleted
files, and macros used nowhere).
cp:
* Make-lang.in: Add dependencies on $(TM_P_H) as appropriate.
From-SVN: r40350
2001-03-09 21:53:56 +01:00
|
|
|
for f in $tm_p_file; do
|
2002-12-16 19:23:00 +01:00
|
|
|
case $f in
|
|
|
|
tm-preds.h )
|
Makefile.in (tm_file): Rename tm_include_list.
* Makefile.in (tm_file): Rename tm_include_list.
(tm_p_file): Rename tm_p_include_list.
(build_xm_file): Rename build_xm_include_list.
(host_xm_file): Rename host_xm_include_list.
(xm_file): Rename xm_include_list.
(xm_file_list): Add to be substituted.
(cs-config.h, cs-bconfig.h, cs-tconfig.h, cs-tm.h, cs-tm_p.h):
Update to match.
(bt-load.o): Add missing dependency on $(TM_H).
* configure.in: Prefix value of EXTRA_MODES_FILE with config/.
For each of tm_file, tm_p_file, xm_file, host_xm_file, and
build_xm_file, generate both *_file_list and *_include_list
values from it. (xm_file_list was formerly not being generated.)
In *_include_list, prefix the names of all headers found in
$(srcdir)/config with config/. In each loop, consider only
the special case files that can actually appear in that list.
AC_SUBST all *_file_list and all *_include_list variables; do
not AC_SUBST the plain *_file variables.
* configure: Regenerate.
From-SVN: r70449
2003-08-14 22:25:14 +02:00
|
|
|
tm_p_file_list="${tm_p_file_list} $f"
|
|
|
|
tm_p_include_list="${tm_p_include_list} $f"
|
|
|
|
;;
|
|
|
|
* )
|
|
|
|
tm_p_file_list="${tm_p_file_list} \$(srcdir)/config/$f"
|
|
|
|
tm_p_include_list="${tm_p_include_list} config/$f"
|
|
|
|
esac
|
|
|
|
done
|
|
|
|
|
|
|
|
xm_file_list=
|
|
|
|
xm_include_list=
|
|
|
|
for f in $xm_file; do
|
|
|
|
case $f in
|
|
|
|
ansidecl.h )
|
|
|
|
xm_file_list="${xm_file_list} \$(srcdir)/../include/$f"
|
|
|
|
xm_include_list="${xm_include_list} $f"
|
|
|
|
;;
|
|
|
|
auto-host.h )
|
|
|
|
xm_file_list="${xm_file_list} $f"
|
|
|
|
xm_include_list="${xm_include_list} $f"
|
|
|
|
;;
|
|
|
|
* )
|
|
|
|
xm_file_list="${xm_file_list} \$(srcdir)/config/$f"
|
|
|
|
xm_include_list="${xm_include_list} config/$f"
|
|
|
|
;;
|
2002-12-16 19:23:00 +01:00
|
|
|
esac
|
configure.in: Prune nonexistent files from build_xm_file, xm_file, and host_xm_file lists.
* configure.in: Prune nonexistent files from build_xm_file,
xm_file, and host_xm_file lists. Warn unless they're
$cpu/xm-$cpu.h.
Don't generate *config.h here.
AC_SUBST all variables needed to generate *config.h.
* configure: Regenerate.
* mkconfig.sh: New helper script, from code removed from
configure.in.
* Makefile.in: Zap all MALLOC variables - no longer used
anywhere, and malloc.c doesn't exist.
Substitute in variables needed to generate *config.h.
Stop lying about the dependencies contained in CONFIG_H and
GCONFIG_H.
(HCONFIG_H, TCONFIG_H, TM_P_H): New variables.
(config.h, hconfig.h, tconfig.h, tm_p.h, cs-config.h,
cs-hconfig.h, cs-tconfig.h, cs-tm_p.h): New rules.
(all .o): Add dependencies on $(HCONFIG_H), $(TCONFIG_H),
$(TM_P_H), etc. as appropriate.
* config.gcc: Zap references to deleted files.
* ggc-none.c: Don't include rtl.h or tm_p.h.
* config/i386/xm-beos.h, config/i386/xm-dgux.h,
config/i386/xm-djgpp.h, config/i386/xm-dos.h,
config/i386/xm-gnu.h, config/i386/xm-i386-interix.h,
config/i386/xm-linux.h, config/i386/xm-linux.h,
config/i386/xm-next.h, config/i386/xm-openbsd.h,
config/i386/xm-sun.h, config/i386/xm-sysv3.h:
Don't include i386/xm-i386.h.
* config/elxsi/xm-elxsi.h, config/i386/xm-bsd386.h,
config/i386/xm-i386.h, config/i860/xm-i860.h,
config/i960/xm-i960.h, config/mcore/xm-mcore.h,
config/mn10300/xm-mn10300.h, config/ns32k/xm-ns32k.h,
config/pj/xm-pj.h, config/sh/xm-sh.h, config/v850/xm-v850.h:
Delete (empty except comments, #includes of other deleted
files, and macros used nowhere).
cp:
* Make-lang.in: Add dependencies on $(TM_P_H) as appropriate.
From-SVN: r40350
2001-03-09 21:53:56 +01:00
|
|
|
done
|
|
|
|
|
1997-07-19 04:22:30 +02:00
|
|
|
host_xm_file_list=
|
Makefile.in (tm_file): Rename tm_include_list.
* Makefile.in (tm_file): Rename tm_include_list.
(tm_p_file): Rename tm_p_include_list.
(build_xm_file): Rename build_xm_include_list.
(host_xm_file): Rename host_xm_include_list.
(xm_file): Rename xm_include_list.
(xm_file_list): Add to be substituted.
(cs-config.h, cs-bconfig.h, cs-tconfig.h, cs-tm.h, cs-tm_p.h):
Update to match.
(bt-load.o): Add missing dependency on $(TM_H).
* configure.in: Prefix value of EXTRA_MODES_FILE with config/.
For each of tm_file, tm_p_file, xm_file, host_xm_file, and
build_xm_file, generate both *_file_list and *_include_list
values from it. (xm_file_list was formerly not being generated.)
In *_include_list, prefix the names of all headers found in
$(srcdir)/config with config/. In each loop, consider only
the special case files that can actually appear in that list.
AC_SUBST all *_file_list and all *_include_list variables; do
not AC_SUBST the plain *_file variables.
* configure: Regenerate.
From-SVN: r70449
2003-08-14 22:25:14 +02:00
|
|
|
host_xm_include_list=
|
1997-07-19 04:22:30 +02:00
|
|
|
for f in $host_xm_file; do
|
1999-04-08 09:27:38 +02:00
|
|
|
case $f in
|
ansidecl.h: All logic from gcc/gansidecl.h moved here.
include:
* ansidecl.h: All logic from gcc/gansidecl.h moved here.
gcc:
* gansidecl.h: Delete file.
* configure.in: Change all refs to gansidecl.h to use
ansidecl.h. Adjust *_file_list so they know where ansidecl.h
lives.
* configure: Regenerate.
* Makefile.in (intl.o): Don't depend on gansidecl.h.
* defaults.h: s/gansidecl.h/ansidecl.h/ in comment.
* ggc.h, config/fr30/fr30.h, config/mcore/mcore.c:
Don't include gansidecl.h.
* intl.c, main.c, version.c, fixinc/fixlib.h,
fixinc/procopen.c, fixinc/server.c: Include ansidecl.h not
gansidecl.h.
gcc/java:
* Make-lang.in (buffer.o, check-init.o, class.o): Don't depend
on gansidecl.h.
* buffer.c, jvgenmain.c: Don't include gansidecl.h.
libiberty:
* make-temp-file.c (try): Inline.
From-SVN: r41069
2001-04-04 02:46:27 +02:00
|
|
|
ansidecl.h )
|
Makefile.in (tm_file): Rename tm_include_list.
* Makefile.in (tm_file): Rename tm_include_list.
(tm_p_file): Rename tm_p_include_list.
(build_xm_file): Rename build_xm_include_list.
(host_xm_file): Rename host_xm_include_list.
(xm_file): Rename xm_include_list.
(xm_file_list): Add to be substituted.
(cs-config.h, cs-bconfig.h, cs-tconfig.h, cs-tm.h, cs-tm_p.h):
Update to match.
(bt-load.o): Add missing dependency on $(TM_H).
* configure.in: Prefix value of EXTRA_MODES_FILE with config/.
For each of tm_file, tm_p_file, xm_file, host_xm_file, and
build_xm_file, generate both *_file_list and *_include_list
values from it. (xm_file_list was formerly not being generated.)
In *_include_list, prefix the names of all headers found in
$(srcdir)/config with config/. In each loop, consider only
the special case files that can actually appear in that list.
AC_SUBST all *_file_list and all *_include_list variables; do
not AC_SUBST the plain *_file variables.
* configure: Regenerate.
From-SVN: r70449
2003-08-14 22:25:14 +02:00
|
|
|
host_xm_file_list="${host_xm_file_list} \$(srcdir)/../include/$f"
|
|
|
|
host_xm_include_list="${host_xm_include_list} $f"
|
|
|
|
;;
|
2002-06-04 09:11:05 +02:00
|
|
|
auto-host.h )
|
Makefile.in (tm_file): Rename tm_include_list.
* Makefile.in (tm_file): Rename tm_include_list.
(tm_p_file): Rename tm_p_include_list.
(build_xm_file): Rename build_xm_include_list.
(host_xm_file): Rename host_xm_include_list.
(xm_file): Rename xm_include_list.
(xm_file_list): Add to be substituted.
(cs-config.h, cs-bconfig.h, cs-tconfig.h, cs-tm.h, cs-tm_p.h):
Update to match.
(bt-load.o): Add missing dependency on $(TM_H).
* configure.in: Prefix value of EXTRA_MODES_FILE with config/.
For each of tm_file, tm_p_file, xm_file, host_xm_file, and
build_xm_file, generate both *_file_list and *_include_list
values from it. (xm_file_list was formerly not being generated.)
In *_include_list, prefix the names of all headers found in
$(srcdir)/config with config/. In each loop, consider only
the special case files that can actually appear in that list.
AC_SUBST all *_file_list and all *_include_list variables; do
not AC_SUBST the plain *_file variables.
* configure: Regenerate.
From-SVN: r70449
2003-08-14 22:25:14 +02:00
|
|
|
host_xm_file_list="${host_xm_file_list} $f"
|
|
|
|
host_xm_include_list="${host_xm_include_list} $f"
|
|
|
|
;;
|
|
|
|
* )
|
|
|
|
host_xm_file_list="${host_xm_file_list} \$(srcdir)/config/$f"
|
|
|
|
host_xm_include_list="${host_xm_include_list} config/$f"
|
|
|
|
;;
|
1999-04-08 09:27:38 +02:00
|
|
|
esac
|
1997-07-19 04:22:30 +02:00
|
|
|
done
|
|
|
|
|
|
|
|
build_xm_file_list=
|
|
|
|
for f in $build_xm_file; do
|
1999-04-08 09:27:38 +02:00
|
|
|
case $f in
|
ansidecl.h: All logic from gcc/gansidecl.h moved here.
include:
* ansidecl.h: All logic from gcc/gansidecl.h moved here.
gcc:
* gansidecl.h: Delete file.
* configure.in: Change all refs to gansidecl.h to use
ansidecl.h. Adjust *_file_list so they know where ansidecl.h
lives.
* configure: Regenerate.
* Makefile.in (intl.o): Don't depend on gansidecl.h.
* defaults.h: s/gansidecl.h/ansidecl.h/ in comment.
* ggc.h, config/fr30/fr30.h, config/mcore/mcore.c:
Don't include gansidecl.h.
* intl.c, main.c, version.c, fixinc/fixlib.h,
fixinc/procopen.c, fixinc/server.c: Include ansidecl.h not
gansidecl.h.
gcc/java:
* Make-lang.in (buffer.o, check-init.o, class.o): Don't depend
on gansidecl.h.
* buffer.c, jvgenmain.c: Don't include gansidecl.h.
libiberty:
* make-temp-file.c (try): Inline.
From-SVN: r41069
2001-04-04 02:46:27 +02:00
|
|
|
ansidecl.h )
|
Makefile.in (tm_file): Rename tm_include_list.
* Makefile.in (tm_file): Rename tm_include_list.
(tm_p_file): Rename tm_p_include_list.
(build_xm_file): Rename build_xm_include_list.
(host_xm_file): Rename host_xm_include_list.
(xm_file): Rename xm_include_list.
(xm_file_list): Add to be substituted.
(cs-config.h, cs-bconfig.h, cs-tconfig.h, cs-tm.h, cs-tm_p.h):
Update to match.
(bt-load.o): Add missing dependency on $(TM_H).
* configure.in: Prefix value of EXTRA_MODES_FILE with config/.
For each of tm_file, tm_p_file, xm_file, host_xm_file, and
build_xm_file, generate both *_file_list and *_include_list
values from it. (xm_file_list was formerly not being generated.)
In *_include_list, prefix the names of all headers found in
$(srcdir)/config with config/. In each loop, consider only
the special case files that can actually appear in that list.
AC_SUBST all *_file_list and all *_include_list variables; do
not AC_SUBST the plain *_file variables.
* configure: Regenerate.
From-SVN: r70449
2003-08-14 22:25:14 +02:00
|
|
|
build_xm_file_list="${build_xm_file_list} \$(srcdir)/../include/$f"
|
|
|
|
build_xm_include_list="${build_xm_include_list} $f"
|
|
|
|
;;
|
2002-06-04 09:11:05 +02:00
|
|
|
auto-build.h | auto-host.h )
|
Makefile.in (tm_file): Rename tm_include_list.
* Makefile.in (tm_file): Rename tm_include_list.
(tm_p_file): Rename tm_p_include_list.
(build_xm_file): Rename build_xm_include_list.
(host_xm_file): Rename host_xm_include_list.
(xm_file): Rename xm_include_list.
(xm_file_list): Add to be substituted.
(cs-config.h, cs-bconfig.h, cs-tconfig.h, cs-tm.h, cs-tm_p.h):
Update to match.
(bt-load.o): Add missing dependency on $(TM_H).
* configure.in: Prefix value of EXTRA_MODES_FILE with config/.
For each of tm_file, tm_p_file, xm_file, host_xm_file, and
build_xm_file, generate both *_file_list and *_include_list
values from it. (xm_file_list was formerly not being generated.)
In *_include_list, prefix the names of all headers found in
$(srcdir)/config with config/. In each loop, consider only
the special case files that can actually appear in that list.
AC_SUBST all *_file_list and all *_include_list variables; do
not AC_SUBST the plain *_file variables.
* configure: Regenerate.
From-SVN: r70449
2003-08-14 22:25:14 +02:00
|
|
|
build_xm_file_list="${build_xm_file_list} $f"
|
|
|
|
build_xm_include_list="${build_xm_include_list} $f"
|
|
|
|
;;
|
|
|
|
* )
|
|
|
|
build_xm_file_list="${build_xm_file_list} \$(srcdir)/config/$f"
|
|
|
|
build_xm_include_list="${build_xm_include_list} config/$f"
|
|
|
|
;;
|
1999-04-08 09:27:38 +02:00
|
|
|
esac
|
1997-07-19 04:22:30 +02:00
|
|
|
done
|
1997-05-18 14:31:53 +02:00
|
|
|
|
2006-12-13 10:28:16 +01:00
|
|
|
# Define macro CROSS_DIRECTORY_STRUCTURE in compilation if this is a
|
|
|
|
# cross-compiler which does not use the native headers and libraries.
|
build-make, cross-make: Delete file.
* build-make, cross-make: Delete file.
* configure.in: Set and substitute CROSS, ALL,
SYSTEM_HEADER_DIR, HOST_PREFIX, HOST_PREFIX_1, HOST_CC,
HOST_CFLAGS, STMP_FIXINC, and STMP_FIXPROTO depending on
whether build == host and host == target. Do not
AC_SUBST_FILE build_overrides or cross_overrides. Do not
AC_SUBST cross_defines or extra_c_flags.
* Makefile.in (NATIVE_SYSTEM_HEADER_DIR): New.
(SYSTEM_HEADER_DIR, HOST_PREFIX, HOST_CC, HOST_PREFIX,
HOST_PREFIX_1, HOST_CFLAGS, ALL, INTERNAL_CFLAGS): Set
partially or completely with autoconf-substituted @variable@
notation.
(INSTALL_TARGET, @cross_defines@, @cross_overrides@,
@build_overrides@, @extra_c_flags@, all.build, install-build,
install-cross-rest, install-float-h-cross): Deleted.
(install-normal): Rename to install. Delete old "install"
indirection rule.
* ada/Makefile.in, ch/Makefile.in: Don't set ALL. Delete
@cross_defines@, @cross_overrides@, @build_overrides@ stanzas.
INTERNAL_CFLAGS is now @CROSS@ -DIN_GCC; update comment.
From-SVN: r47617
2001-12-04 19:02:50 +01:00
|
|
|
# Also use all.cross instead of all.internal and adjust SYSTEM_HEADER_DIR.
|
|
|
|
CROSS= AC_SUBST(CROSS)
|
|
|
|
ALL=all.internal AC_SUBST(ALL)
|
|
|
|
SYSTEM_HEADER_DIR='$(NATIVE_SYSTEM_HEADER_DIR)' AC_SUBST(SYSTEM_HEADER_DIR)
|
2005-07-29 21:20:44 +02:00
|
|
|
|
|
|
|
if test "x$with_build_sysroot" != x; then
|
2007-03-06 16:50:28 +01:00
|
|
|
build_system_header_dir=$with_build_sysroot'$${sysroot_headers_suffix}$(NATIVE_SYSTEM_HEADER_DIR)'
|
2005-07-29 21:20:44 +02:00
|
|
|
else
|
|
|
|
# This value is used, even on a native system, because
|
|
|
|
# CROSS_SYSTEM_HEADER_DIR is just
|
|
|
|
# $(TARGET_SYSTEM_ROOT)$(NATIVE_SYSTEM_HEADER_DIR).
|
|
|
|
build_system_header_dir='$(CROSS_SYSTEM_HEADER_DIR)'
|
|
|
|
fi
|
|
|
|
|
1998-08-14 11:23:47 +02:00
|
|
|
if test x$host != x$target
|
1997-07-19 04:22:30 +02:00
|
|
|
then
|
2006-12-13 10:28:16 +01:00
|
|
|
CROSS="-DCROSS_DIRECTORY_STRUCTURE"
|
build-make, cross-make: Delete file.
* build-make, cross-make: Delete file.
* configure.in: Set and substitute CROSS, ALL,
SYSTEM_HEADER_DIR, HOST_PREFIX, HOST_PREFIX_1, HOST_CC,
HOST_CFLAGS, STMP_FIXINC, and STMP_FIXPROTO depending on
whether build == host and host == target. Do not
AC_SUBST_FILE build_overrides or cross_overrides. Do not
AC_SUBST cross_defines or extra_c_flags.
* Makefile.in (NATIVE_SYSTEM_HEADER_DIR): New.
(SYSTEM_HEADER_DIR, HOST_PREFIX, HOST_CC, HOST_PREFIX,
HOST_PREFIX_1, HOST_CFLAGS, ALL, INTERNAL_CFLAGS): Set
partially or completely with autoconf-substituted @variable@
notation.
(INSTALL_TARGET, @cross_defines@, @cross_overrides@,
@build_overrides@, @extra_c_flags@, all.build, install-build,
install-cross-rest, install-float-h-cross): Deleted.
(install-normal): Rename to install. Delete old "install"
indirection rule.
* ada/Makefile.in, ch/Makefile.in: Don't set ALL. Delete
@cross_defines@, @cross_overrides@, @build_overrides@ stanzas.
INTERNAL_CFLAGS is now @CROSS@ -DIN_GCC; update comment.
From-SVN: r47617
2001-12-04 19:02:50 +01:00
|
|
|
ALL=all.cross
|
2005-07-25 21:42:04 +02:00
|
|
|
SYSTEM_HEADER_DIR=$build_system_header_dir
|
2002-05-23 00:09:18 +02:00
|
|
|
case "$host","$target" in
|
2003-08-20 04:58:58 +02:00
|
|
|
# Darwin crosses can use the host system's libraries and headers,
|
|
|
|
# because of the fat library support. Of course, it must be the
|
|
|
|
# same version of Darwin on both sides. Allow the user to
|
|
|
|
# just say --target=foo-darwin without a version number to mean
|
|
|
|
# "the version on this system".
|
|
|
|
*-*-darwin*,*-*-darwin*)
|
|
|
|
hostos=`echo $host | sed 's/.*-darwin/darwin/'`
|
|
|
|
targetos=`echo $target | sed 's/.*-darwin/darwin/'`
|
|
|
|
if test $hostos = $targetos -o $targetos = darwin ; then
|
|
|
|
CROSS=
|
|
|
|
SYSTEM_HEADER_DIR='$(NATIVE_SYSTEM_HEADER_DIR)'
|
|
|
|
with_headers=yes
|
|
|
|
fi
|
|
|
|
;;
|
|
|
|
|
2002-05-23 00:09:18 +02:00
|
|
|
i?86-*-*,x86_64-*-* \
|
|
|
|
| powerpc*-*-*,powerpc64*-*-*)
|
|
|
|
CROSS="$CROSS -DNATIVE_CROSS" ;;
|
|
|
|
esac
|
2010-10-16 13:00:16 +02:00
|
|
|
|
|
|
|
case $target in
|
|
|
|
*-*-mingw*)
|
|
|
|
if test "x$with_headers" = x; then
|
|
|
|
with_headers=yes
|
|
|
|
fi
|
|
|
|
;;
|
|
|
|
*)
|
|
|
|
;;
|
|
|
|
esac
|
2003-04-11 06:40:57 +02:00
|
|
|
elif test "x$TARGET_SYSTEM_ROOT" != x; then
|
2005-07-29 21:20:44 +02:00
|
|
|
SYSTEM_HEADER_DIR=$build_system_header_dir
|
1997-07-19 04:22:30 +02:00
|
|
|
fi
|
1997-05-18 14:31:53 +02:00
|
|
|
|
2014-09-22 01:38:05 +02:00
|
|
|
if test x$host != x$target || test "x$TARGET_SYSTEM_ROOT" != x; then
|
|
|
|
if test "x$with_headers" != x; then
|
|
|
|
target_header_dir=$with_headers
|
|
|
|
elif test "x$with_sysroot" = x; then
|
|
|
|
target_header_dir="${test_exec_prefix}/${target_noncanonical}/sys-include"
|
|
|
|
elif test "x$with_build_sysroot" != "x"; then
|
|
|
|
target_header_dir="${with_build_sysroot}${native_system_header_dir}"
|
|
|
|
elif test "x$with_sysroot" = xyes; then
|
|
|
|
target_header_dir="${test_exec_prefix}/${target_noncanonical}/sys-root${native_system_header_dir}"
|
|
|
|
else
|
|
|
|
target_header_dir="${with_sysroot}${native_system_header_dir}"
|
|
|
|
fi
|
|
|
|
else
|
|
|
|
target_header_dir=${native_system_header_dir}
|
|
|
|
fi
|
|
|
|
|
2000-05-24 08:21:49 +02:00
|
|
|
# If this is a cross-compiler that does not
|
|
|
|
# have its own set of headers then define
|
|
|
|
# inhibit_libc
|
|
|
|
|
2003-06-03 21:01:22 +02:00
|
|
|
# If this is using newlib, without having the headers available now,
|
|
|
|
# then define inhibit_libc in LIBGCC2_CFLAGS.
|
Makefile.in: Exterminate all references to assert.h.
* Makefile.in: Exterminate all references to assert.h.
* cross-make: Likewise.
* assert.h: Delete.
* configure.in: Correct commentary.
* configure: Regenerate.
* po/POTFILES.in: Remove assert.h.
* libgcc-std.ver, libgcc2.c, libgcc2.h, sys-protos.h:
Remove __eprintf.
* config/t-freebsd, config/t-linux, config/t-linux-aout,
config/t-netbsd, config/t-rtems, config/x-linux,
config/i386/t-beos, config/mcore/t-mcore, config/mcore/t-mcore-pe:
No need to override INSTALL_ASSERT_H.
* fixinc/fixinc.dgux, fixinc/fixinc.interix, fixinc/fixinc.ptx,
fixinc/fixinc.svr4, fixinc/fixinc.winnt, fixinc/fixinc.wrap,
fixinc/fixincl.sh: Don't install assert.h into objdir/include.
From-SVN: r41972
2001-05-11 19:03:02 +02:00
|
|
|
# This prevents libgcc2 from containing any code which requires libc
|
|
|
|
# support.
|
2008-03-27 11:04:08 +01:00
|
|
|
: ${inhibit_libc=false}
|
2003-06-03 21:01:22 +02:00
|
|
|
if { { test x$host != x$target && test "x$with_sysroot" = x ; } ||
|
|
|
|
test x$with_newlib = xyes ; } &&
|
2014-09-22 01:38:05 +02:00
|
|
|
{ test "x$with_headers" = xno || test ! -f "$target_header_dir/stdio.h"; } ; then
|
2005-07-25 21:42:04 +02:00
|
|
|
inhibit_libc=true
|
2000-05-24 08:21:49 +02:00
|
|
|
fi
|
|
|
|
AC_SUBST(inhibit_libc)
|
|
|
|
|
build-make, cross-make: Delete file.
* build-make, cross-make: Delete file.
* configure.in: Set and substitute CROSS, ALL,
SYSTEM_HEADER_DIR, HOST_PREFIX, HOST_PREFIX_1, HOST_CC,
HOST_CFLAGS, STMP_FIXINC, and STMP_FIXPROTO depending on
whether build == host and host == target. Do not
AC_SUBST_FILE build_overrides or cross_overrides. Do not
AC_SUBST cross_defines or extra_c_flags.
* Makefile.in (NATIVE_SYSTEM_HEADER_DIR): New.
(SYSTEM_HEADER_DIR, HOST_PREFIX, HOST_CC, HOST_PREFIX,
HOST_PREFIX_1, HOST_CFLAGS, ALL, INTERNAL_CFLAGS): Set
partially or completely with autoconf-substituted @variable@
notation.
(INSTALL_TARGET, @cross_defines@, @cross_overrides@,
@build_overrides@, @extra_c_flags@, all.build, install-build,
install-cross-rest, install-float-h-cross): Deleted.
(install-normal): Rename to install. Delete old "install"
indirection rule.
* ada/Makefile.in, ch/Makefile.in: Don't set ALL. Delete
@cross_defines@, @cross_overrides@, @build_overrides@ stanzas.
INTERNAL_CFLAGS is now @CROSS@ -DIN_GCC; update comment.
From-SVN: r47617
2001-12-04 19:02:50 +01:00
|
|
|
# When building gcc with a cross-compiler, we need to adjust things so
|
|
|
|
# that the generator programs are still built with the native compiler.
|
inclhack.def (aix_syswait, [...]): Remove.
fixincludes:
* inclhack.def (aix_syswait, exception_structure,
pthread_page_size): Remove.
(math_exception): Remove mention of fixproto in comment.
* fixincl.x: Regenerate.
* mkheaders.in: Do not handle STMP_FIXPROTO.
gcc:
* config/arm/t-arm-coff, config/h8300/coff.h,
config/i386/i386-aout.h, config/i386/i386-coff.h,
config/libgloss.h, config/m68k/coff.h, config/m68k/m68k-aout.h,
config/pdp11/2bsd.h, config/rs6000/aix41.h,
config/rs6000/aix41.opt, config/rs6000/t-newas, config/sh/coff.h,
fix-header.c, fixproto, gen-protos.c, protoize.c, scan-decls.c,
scan-types.sh, scan.c, scan.h, sort-protos, sys-protos.h,
sys-types.h: Remove.
* Makefile.in: Remove protoize and fixproto support and references
in comments.
(SYSCALLS.c.X-warn, TARGET_GETGROUPS_T, STMP_FIXPROTO,
PROTOIZE_INSTALL_NAME, UNPROTOIZE_INSTALL_NAME, FIXPROTO_DEFINES):
Remove.
(ALL_HOST_OBJS): Remove $(PROTO_OBJS).
(MOSTLYCLEANFILES): Remove protoize$(exeext) and
unprotoize$(exeext).
(rest.encap): Don't depend on $(STMP_FIXPROTO)
(.PHONY): Don't depend on proto.
(libgcc-support): Don't depend on $(STMP_FIXPROTO).
(proto, PROTO_OBJS, protoize$(exeext), unprotoize$(exeext),
protoize.o, unprotoize.o, SYSCALLS.c.X, test-protoize-simple,
deduced.h, GEN_PROTOS_OBJS, build/gen-protos$(build_exeext),
build/gen-protos.o, build/scan.o, xsys-protos.h,
build/fix-header$(build_exeext), build/fix-header.o,
build/scan-decls.o, fixhdr.ready, stmp-fixproto,
stmp-install-fixproto): Remove.
(mostlyclean): Don't remove xsys-protos.hT, SYSCALLS.c.X,
SYSCALLS.c or fixproto files.
(install-common): Don't install protoize.
(install-headers-tar, install-headers-cpio, install-headers-cp):
Don't depend on $(STMP_FIXPROTO).
(install-mkheaders): Don't depend on $(STMP_FIXPROTO). Don't
install fixproto files or write out fixproto settings.
(uninstall): Don't uninstall protoize.
* config.gcc (use_fixproto): Remove.
(arm-*-coff*, armel-*-coff*, h8300-*-*, i[34567]86-*-aout*,
i[34567]86-*-coff*, m68k-*-aout*, m68k-*-coff*, pdp11-*-bsd,
rs6000-ibm-aix4.[12]*, powerpc-ibm-aix4.[12]*, sh-*-*): Remove.
* config/m32r/t-linux (STMP_FIXPROTO): Remove.
* config/m68k/m68k.c: Remove M68K_TARGET_COFF-conditional code.
* config/mips/t-iris (FIXPROTO_DEFINES): Remove.
* config/pa/t-pa-hpux (FIXPROTO_DEFINES): Remove.
* config/pdp11/pdp11.c: Remove TWO_BSD-conditional code.
* config/t-svr4 (FIXPROTO_DEFINES): Remove.
* config/t-vxworks (STMP_FIXPROTO): Remove.
* configure.ac (AC_TYPE_GETGROUPS, TARGET_GETGROUPS_T,
STMP_FIXPROTO): Remove.
* config.in, configure: Regenerate.
* crtstuff.c (gid_t, uid_t): Don't undefine.
* doc/install.texi: Change m68k-coff to m68k-elf in example.
(arm-*-coff, arm-*-aout: Remove target entries.
(*-ibm-aix*): Mention removal of support for AIX 4.2 and older.
Remove mention of AIX 4.1.
(m68k-*-*): Remove mention of m68k-*-aout and m68k-*-coff*.
* doc/invoke.texi (Running Protoize): Remove.
* doc/trouble.texi (Actual Bugs): Remove mention of fixproto.
(Protoize Caveats): Remove.
* tsystem.h: Update comments on headers assumed to exist.
gcc/po:
* EXCLUDES (fix-header.c, gen-protos.c, scan-decls.c, scan.c,
scan.h): Remove.
gcc/testsuite:
* g++.old-deja/g++.ext/attrib5.C, g++.old-deja/g++.jason/thunk3.C,
gcc.c-torture/compile/981006-1.c: Don't XFAIL or add special
options for removed targets.
libgcc:
* config.host (arm-*-coff*, armel-*-coff*, arm-semi-aof,
armel-semi-aof, h8300-*-*, i[34567]86-*-aout*, i[34567]86-*-coff*,
m68k-*-aout*, m68k-*-coff*, pdp11-*-bsd, rs6000-ibm-aix4.[12]*,
powerpc-ibm-aix4.[12]*, sh-*-*): Remove.
From-SVN: r145158
2009-03-28 07:51:09 +01:00
|
|
|
# Also, we cannot run fixincludes.
|
build-make, cross-make: Delete file.
* build-make, cross-make: Delete file.
* configure.in: Set and substitute CROSS, ALL,
SYSTEM_HEADER_DIR, HOST_PREFIX, HOST_PREFIX_1, HOST_CC,
HOST_CFLAGS, STMP_FIXINC, and STMP_FIXPROTO depending on
whether build == host and host == target. Do not
AC_SUBST_FILE build_overrides or cross_overrides. Do not
AC_SUBST cross_defines or extra_c_flags.
* Makefile.in (NATIVE_SYSTEM_HEADER_DIR): New.
(SYSTEM_HEADER_DIR, HOST_PREFIX, HOST_CC, HOST_PREFIX,
HOST_PREFIX_1, HOST_CFLAGS, ALL, INTERNAL_CFLAGS): Set
partially or completely with autoconf-substituted @variable@
notation.
(INSTALL_TARGET, @cross_defines@, @cross_overrides@,
@build_overrides@, @extra_c_flags@, all.build, install-build,
install-cross-rest, install-float-h-cross): Deleted.
(install-normal): Rename to install. Delete old "install"
indirection rule.
* ada/Makefile.in, ch/Makefile.in: Don't set ALL. Delete
@cross_defines@, @cross_overrides@, @build_overrides@ stanzas.
INTERNAL_CFLAGS is now @CROSS@ -DIN_GCC; update comment.
From-SVN: r47617
2001-12-04 19:02:50 +01:00
|
|
|
|
|
|
|
# These are the normal (build=host) settings:
|
2003-06-17 23:53:49 +02:00
|
|
|
CC_FOR_BUILD='$(CC)' AC_SUBST(CC_FOR_BUILD)
|
2012-05-31 19:25:41 +02:00
|
|
|
CXX_FOR_BUILD='$(CXX)' AC_SUBST(CXX_FOR_BUILD)
|
2002-12-16 19:23:00 +01:00
|
|
|
BUILD_CFLAGS='$(ALL_CFLAGS)' AC_SUBST(BUILD_CFLAGS)
|
2012-05-31 19:25:41 +02:00
|
|
|
BUILD_CXXFLAGS='$(ALL_CXXFLAGS)' AC_SUBST(BUILD_CXXFLAGS)
|
2008-06-08 18:14:33 +02:00
|
|
|
BUILD_LDFLAGS='$(LDFLAGS)' AC_SUBST(BUILD_LDFLAGS)
|
build-make, cross-make: Delete file.
* build-make, cross-make: Delete file.
* configure.in: Set and substitute CROSS, ALL,
SYSTEM_HEADER_DIR, HOST_PREFIX, HOST_PREFIX_1, HOST_CC,
HOST_CFLAGS, STMP_FIXINC, and STMP_FIXPROTO depending on
whether build == host and host == target. Do not
AC_SUBST_FILE build_overrides or cross_overrides. Do not
AC_SUBST cross_defines or extra_c_flags.
* Makefile.in (NATIVE_SYSTEM_HEADER_DIR): New.
(SYSTEM_HEADER_DIR, HOST_PREFIX, HOST_CC, HOST_PREFIX,
HOST_PREFIX_1, HOST_CFLAGS, ALL, INTERNAL_CFLAGS): Set
partially or completely with autoconf-substituted @variable@
notation.
(INSTALL_TARGET, @cross_defines@, @cross_overrides@,
@build_overrides@, @extra_c_flags@, all.build, install-build,
install-cross-rest, install-float-h-cross): Deleted.
(install-normal): Rename to install. Delete old "install"
indirection rule.
* ada/Makefile.in, ch/Makefile.in: Don't set ALL. Delete
@cross_defines@, @cross_overrides@, @build_overrides@ stanzas.
INTERNAL_CFLAGS is now @CROSS@ -DIN_GCC; update comment.
From-SVN: r47617
2001-12-04 19:02:50 +01:00
|
|
|
STMP_FIXINC=stmp-fixinc AC_SUBST(STMP_FIXINC)
|
config.gcc: Do per-target disabling of fixproto here in clauses, not in t- fragments.
* config.gcc: Do per-target disabling of fixproto here in clauses,
not in t- fragments.
* configure.in: Adjust to set STMP_FIXPROTO correctly.
* configure: Regenerate.
* config/arm/t-semi, config/cris/t-cris, config/i386/t-beos,
config/i386/t-cygming, config/i386/t-nto, config/ia64/t-hpux,
t-freebsd, t-linux, t-netbsd, t-openbsd, t-rtems, t-vxworks,
xtensa/t-xtensa: Remove setting of STMP_FIXPROTO.
* config/i370/t-oe, config/i386/t-netware, config/pa/t-bsd,
t-interix, t-linux-aout: Delete files consisting only of
setting of STMP_FIXPROTO.
From-SVN: r71687
2003-09-23 20:56:00 +02:00
|
|
|
|
2015-10-29 13:29:43 +01:00
|
|
|
BUILD_NO_PIE_CFLAGS='$(NO_PIE_CFLAGS)' AC_SUBST(BUILD_NO_PIE_CFLAGS)
|
|
|
|
BUILD_NO_PIE_FLAG='$(NO_PIE_FLAG)' AC_SUBST(BUILD_NO_PIE_FLAG)
|
|
|
|
|
2003-07-09 13:48:24 +02:00
|
|
|
# And these apply if build != host, or we are generating coverage data
|
|
|
|
if test x$build != x$host || test "x$coverage_flags" != x
|
1997-07-19 04:22:30 +02:00
|
|
|
then
|
2003-06-28 03:27:46 +02:00
|
|
|
BUILD_CFLAGS='$(INTERNAL_CFLAGS) $(T_CFLAGS) $(CFLAGS_FOR_BUILD)'
|
2013-12-05 08:11:17 +01:00
|
|
|
BUILD_CXXFLAGS='$(INTERNAL_CFLAGS) $(T_CFLAGS) $(CXXFLAGS_FOR_BUILD)'
|
2008-06-08 18:14:33 +02:00
|
|
|
BUILD_LDFLAGS='$(LDFLAGS_FOR_BUILD)'
|
2015-10-29 13:29:43 +01:00
|
|
|
|
|
|
|
NO_PIE_CFLAGS_FOR_BUILD=${NO_PIE_CFLAGS_FOR_BUILD-${NO_PIE_CFLAGS}}
|
|
|
|
NO_PIE_FLAG_FOR_BUILD=${NO_PIE_FLAG_FOR_BUILD-${NO_PIE_FLAG}}
|
|
|
|
BUILD_NO_PIE_CFLAGS='$(NO_PIE_CFLAGS_FOR_BUILD)'
|
|
|
|
BUILD_NO_PIE_FLAG='$(NO_PIE_FLAG_FOR_BUILD)'
|
1997-07-19 04:22:30 +02:00
|
|
|
fi
|
2015-10-29 13:29:43 +01:00
|
|
|
AC_SUBST(NO_PIE_CFLAGS_FOR_BUILD)
|
|
|
|
AC_SUBST(NO_PIE_FLAG_FOR_BUILD)
|
1997-05-18 14:31:53 +02:00
|
|
|
|
1997-07-17 22:02:27 +02:00
|
|
|
# Expand extra_headers to include complete path.
|
|
|
|
# This substitutes for lots of t-* files.
|
|
|
|
extra_headers_list=
|
2003-10-13 20:18:01 +02:00
|
|
|
# Prepend $(srcdir)/config/${cpu_type}/ to every entry in extra_headers.
|
|
|
|
for file in ${extra_headers} ; do
|
|
|
|
extra_headers_list="${extra_headers_list} \$(srcdir)/config/${cpu_type}/${file}"
|
|
|
|
done
|
1997-07-17 22:02:27 +02:00
|
|
|
|
2007-07-13 08:12:51 +02:00
|
|
|
# If use_gcc_tgmath is set, append ginclude/tgmath.h.
|
|
|
|
if test x"$use_gcc_tgmath" = xyes
|
|
|
|
then extra_headers_list="${extra_headers_list} \$(srcdir)/ginclude/tgmath.h"
|
|
|
|
fi
|
|
|
|
|
2004-04-05 05:58:46 +02:00
|
|
|
# Define collect2 in Makefile.
|
|
|
|
case $host_can_use_collect2 in
|
|
|
|
no) collect2= ;;
|
|
|
|
*) collect2='collect2$(exeext)' ;;
|
|
|
|
esac
|
|
|
|
AC_SUBST([collect2])
|
|
|
|
|
1997-07-19 04:22:30 +02:00
|
|
|
# Add a definition of USE_COLLECT2 if system wants one.
|
2003-03-04 08:41:00 +01:00
|
|
|
case $use_collect2 in
|
|
|
|
no) use_collect2= ;;
|
|
|
|
"") ;;
|
|
|
|
*)
|
|
|
|
host_xm_defines="${host_xm_defines} USE_COLLECT2"
|
|
|
|
xm_defines="${xm_defines} USE_COLLECT2"
|
2004-04-05 05:58:46 +02:00
|
|
|
case $host_can_use_collect2 in
|
|
|
|
no)
|
|
|
|
AC_MSG_ERROR([collect2 is required but cannot be built on this system])
|
|
|
|
;;
|
|
|
|
esac
|
2003-03-04 08:41:00 +01:00
|
|
|
;;
|
|
|
|
esac
|
1997-07-19 04:22:30 +02:00
|
|
|
|
2010-10-07 22:28:59 +02:00
|
|
|
AC_DEFINE_UNQUOTED(LTOPLUGINSONAME,"${host_lto_plugin_soname}",
|
|
|
|
[Define to the name of the LTO plugin DSO that must be
|
|
|
|
passed to the linker's -plugin=LIB option.])
|
|
|
|
|
2004-02-29 21:43:45 +01:00
|
|
|
# ---------------------------
|
|
|
|
# Assembler & linker features
|
|
|
|
# ---------------------------
|
|
|
|
|
2008-04-02 12:07:58 +02:00
|
|
|
# During stage 2, ld is actually gcc/collect-ld, which is a small script to
|
|
|
|
# discern between when to use prev-ld/ld-new and when to use ld/ld-new.
|
|
|
|
# However when ld-new is first executed from the build tree, libtool will
|
|
|
|
# relink it as .libs/lt-ld-new, so that it can give it an RPATH that refers
|
|
|
|
# to the build tree. While doing this we need to use the previous-stage
|
|
|
|
# linker, or we have an infinite loop. The presence of a shell script as
|
|
|
|
# ld/ld-new, and the fact that the script *uses ld itself*, is what confuses
|
|
|
|
# the gcc/collect-ld script. So we need to know how libtool works, or
|
|
|
|
# exec-tool will fail.
|
|
|
|
|
|
|
|
m4_defun([_LT_CONFIG_COMMANDS], [])
|
|
|
|
AC_PROG_LIBTOOL
|
|
|
|
AC_SUBST(objdir)
|
|
|
|
AC_SUBST(enable_fast_install)
|
|
|
|
|
2003-03-29 00:15:42 +01:00
|
|
|
# Identify the assembler which will work hand-in-glove with the newly
|
|
|
|
# built GCC, so that we can examine its features. This is the assembler
|
|
|
|
# which will be driven by the driver program.
|
|
|
|
#
|
|
|
|
# If build != host, and we aren't building gas in-tree, we identify a
|
|
|
|
# build->target assembler and hope that it will have the same features
|
|
|
|
# as the host->target assembler we'll be using.
|
2000-09-22 20:24:29 +02:00
|
|
|
gcc_cv_gas_major_version=
|
|
|
|
gcc_cv_gas_minor_version=
|
1998-09-08 02:41:00 +02:00
|
|
|
gcc_cv_as_gas_srcdir=`echo $srcdir | sed -e 's,/gcc$,,'`/gas
|
2006-01-26 19:52:49 +01:00
|
|
|
|
|
|
|
m4_pattern_allow([AS_FOR_TARGET])dnl
|
|
|
|
AS_VAR_SET_IF(gcc_cv_as,, [
|
1998-11-02 03:17:53 +01:00
|
|
|
if test -x "$DEFAULT_ASSEMBLER"; then
|
|
|
|
gcc_cv_as="$DEFAULT_ASSEMBLER"
|
2015-07-24 20:20:44 +02:00
|
|
|
elif test -f $gcc_cv_as_gas_srcdir/configure.ac \
|
2004-05-25 21:46:49 +02:00
|
|
|
&& test -f ../gas/Makefile \
|
|
|
|
&& test x$build = x$host; then
|
2006-01-26 19:52:49 +01:00
|
|
|
gcc_cv_as=../gas/as-new$build_exeext
|
|
|
|
elif test -x as$build_exeext; then
|
|
|
|
# Build using assembler in the current directory.
|
|
|
|
gcc_cv_as=./as$build_exeext
|
2010-11-26 10:53:24 +01:00
|
|
|
elif ( set dummy $AS_FOR_TARGET; test -x $[2] ); then
|
2006-01-26 19:52:49 +01:00
|
|
|
gcc_cv_as="$AS_FOR_TARGET"
|
|
|
|
else
|
|
|
|
AC_PATH_PROG(gcc_cv_as, $AS_FOR_TARGET)
|
|
|
|
fi])
|
|
|
|
|
|
|
|
ORIGINAL_AS_FOR_TARGET=$gcc_cv_as
|
|
|
|
AC_SUBST(ORIGINAL_AS_FOR_TARGET)
|
2007-04-13 09:04:39 +02:00
|
|
|
case "$ORIGINAL_AS_FOR_TARGET" in
|
|
|
|
./as | ./as$build_exeext) ;;
|
|
|
|
*) AC_CONFIG_FILES(as:exec-tool.in, [chmod +x as]) ;;
|
|
|
|
esac
|
2006-01-26 19:52:49 +01:00
|
|
|
|
|
|
|
AC_MSG_CHECKING(what assembler to use)
|
|
|
|
if test "$gcc_cv_as" = ../gas/as-new$build_exeext; then
|
2004-05-25 21:46:49 +02:00
|
|
|
# Single tree build which includes gas. We want to prefer it
|
|
|
|
# over whatever linker top-level may have detected, since
|
|
|
|
# we'll use what we're building after installation anyway.
|
2006-01-26 19:52:49 +01:00
|
|
|
AC_MSG_RESULT(newly built gas)
|
2003-03-12 21:56:05 +01:00
|
|
|
in_tree_gas=yes
|
|
|
|
_gcc_COMPUTE_GAS_VERSION
|
2003-06-23 03:13:35 +02:00
|
|
|
in_tree_gas_is_elf=no
|
|
|
|
if grep 'obj_format = elf' ../gas/Makefile > /dev/null \
|
|
|
|
|| (grep 'obj_format = multi' ../gas/Makefile \
|
|
|
|
&& grep 'extra_objects =.* obj-elf' ../gas/Makefile) > /dev/null
|
|
|
|
then
|
|
|
|
in_tree_gas_is_elf=yes
|
|
|
|
fi
|
2006-01-26 19:52:49 +01:00
|
|
|
else
|
|
|
|
AC_MSG_RESULT($gcc_cv_as)
|
|
|
|
in_tree_gas=no
|
2000-09-22 20:24:29 +02:00
|
|
|
fi
|
|
|
|
|
2013-11-26 14:31:25 +01:00
|
|
|
default_ld=
|
|
|
|
AC_ARG_ENABLE(ld,
|
|
|
|
[[ --enable-ld[=ARG] build ld [ARG={default,yes,no}]]],
|
|
|
|
[case "${enableval}" in
|
|
|
|
no)
|
|
|
|
default_ld=ld.gold
|
|
|
|
;;
|
|
|
|
esac])
|
|
|
|
|
2014-08-19 18:23:36 +02:00
|
|
|
install_gold_as_default=no
|
2013-11-26 14:31:25 +01:00
|
|
|
AC_ARG_ENABLE(gold,
|
|
|
|
[[ --enable-gold[=ARG] build gold [ARG={default,yes,no}]]],
|
|
|
|
[case "${enableval}" in
|
|
|
|
default)
|
|
|
|
install_gold_as_default=yes
|
|
|
|
;;
|
|
|
|
yes)
|
|
|
|
if test x${default_ld} != x; then
|
|
|
|
install_gold_as_default=yes
|
|
|
|
fi
|
|
|
|
;;
|
|
|
|
no)
|
|
|
|
;;
|
|
|
|
*)
|
|
|
|
AC_MSG_ERROR([invalid --enable-gold argument])
|
|
|
|
;;
|
2014-08-19 18:23:36 +02:00
|
|
|
esac])
|
2013-11-26 14:31:25 +01:00
|
|
|
|
2003-03-29 00:15:42 +01:00
|
|
|
# Identify the linker which will work hand-in-glove with the newly
|
|
|
|
# built GCC, so that we can examine its features. This is the linker
|
|
|
|
# which will be driven by the driver program.
|
|
|
|
#
|
|
|
|
# If build != host, and we aren't building gas in-tree, we identify a
|
|
|
|
# build->target linker and hope that it will have the same features
|
|
|
|
# as the host->target linker we'll be using.
|
configure.in: Check for ld.
* configure.in: Check for ld.
(HAVE_LD_EH_FRAME_HDR): Define if ld supports --eh-frame-hdr option.
* configure, config.in: Rebuilt.
* config.gcc: Add crtbeginT.o to extra_parts where needed.
* config/t-linux (LIB2ADDEH, LIB2ADDEHDEP): Use unwind-dw2-fde-glibc
frame unwinding on Linux.
* config/t-linux-gnulibc1 (LIB2ADDEH, LIB2ADDEHDEP): Use unwind-dw2-fde
frame unwinding.
* config/linux.h (STARTFILE_SPEC): Use crtbeginT.o for -static.
(LINK_EH_SPEC): Define.
* config/i386/gnu.h (STARTFILE_SPEC): Use crtbeginT.o for -static.
* config/ia64/linux.h (STARTFILE_SPEC, LINK_EH_SPEC): Define.
* config/ia64/fde-glibc.c (_Unwind_IteratePhdrCallback): Don't
iterate further if pc falls into current library, but fde was not
found.
* config/sparc/linux.h (STARTFILE_SPEC): Use crtbeginT.o for -static
if using glibc.
(LINK_EH_SPEC): Define.
* config/sparc/linux64.h (STARTFILE_SPEC32, STARTFILE_SPEC64):
Use crtbeginT.o for -static.
(LINK_EH_SPEC): Define.
* config/sparc/t-linux64 (EXTRA_MULTILIB_PARTS): Add crtbeginT.o.
* Makefile.in (crtbeginT.o): Add rule.
* gcc.c (init_gcc_specs): For -static-libgcc, use -lgcc -lgcc_eh.
If neither -static-libgcc nor -shared-libgcc is passed and -shared,
use -lgcc if LINK_EH_SPEC is defined and -lgcc_s -lgcc if not.
If none of the above switches are passed, use -lgcc -lgcc_eh.
(init_spec): If LINK_EH_SPEC is defined, prepend it to link_spec.
* mklibgcc.in: Don't include LIB2ADDEH objects into libgcc.a if
creating libgcc_s.so, put them into separate libgcc_eh.a instead.
* unwind-dw2-fde.c: Don't include any headers if this file
is included from other .c file.
* unwind-dw2-fde-glibc.c: New file.
* crtstuff.c (USE_PT_GNU_EH_FRAME, USE_EH_FRAME_REGISTRY): Define.
Use it instead of EH_FRAME_SECTION_NAME where appropriate.
From-SVN: r48039
2001-12-15 12:49:18 +01:00
|
|
|
gcc_cv_gld_major_version=
|
|
|
|
gcc_cv_gld_minor_version=
|
|
|
|
gcc_cv_ld_gld_srcdir=`echo $srcdir | sed -e 's,/gcc$,,'`/ld
|
2013-11-26 14:31:25 +01:00
|
|
|
gcc_cv_ld_gold_srcdir=`echo $srcdir | sed -e 's,/gcc$,,'`/gold
|
configure.in: Check for ld.
* configure.in: Check for ld.
(HAVE_LD_EH_FRAME_HDR): Define if ld supports --eh-frame-hdr option.
* configure, config.in: Rebuilt.
* config.gcc: Add crtbeginT.o to extra_parts where needed.
* config/t-linux (LIB2ADDEH, LIB2ADDEHDEP): Use unwind-dw2-fde-glibc
frame unwinding on Linux.
* config/t-linux-gnulibc1 (LIB2ADDEH, LIB2ADDEHDEP): Use unwind-dw2-fde
frame unwinding.
* config/linux.h (STARTFILE_SPEC): Use crtbeginT.o for -static.
(LINK_EH_SPEC): Define.
* config/i386/gnu.h (STARTFILE_SPEC): Use crtbeginT.o for -static.
* config/ia64/linux.h (STARTFILE_SPEC, LINK_EH_SPEC): Define.
* config/ia64/fde-glibc.c (_Unwind_IteratePhdrCallback): Don't
iterate further if pc falls into current library, but fde was not
found.
* config/sparc/linux.h (STARTFILE_SPEC): Use crtbeginT.o for -static
if using glibc.
(LINK_EH_SPEC): Define.
* config/sparc/linux64.h (STARTFILE_SPEC32, STARTFILE_SPEC64):
Use crtbeginT.o for -static.
(LINK_EH_SPEC): Define.
* config/sparc/t-linux64 (EXTRA_MULTILIB_PARTS): Add crtbeginT.o.
* Makefile.in (crtbeginT.o): Add rule.
* gcc.c (init_gcc_specs): For -static-libgcc, use -lgcc -lgcc_eh.
If neither -static-libgcc nor -shared-libgcc is passed and -shared,
use -lgcc if LINK_EH_SPEC is defined and -lgcc_s -lgcc if not.
If none of the above switches are passed, use -lgcc -lgcc_eh.
(init_spec): If LINK_EH_SPEC is defined, prepend it to link_spec.
* mklibgcc.in: Don't include LIB2ADDEH objects into libgcc.a if
creating libgcc_s.so, put them into separate libgcc_eh.a instead.
* unwind-dw2-fde.c: Don't include any headers if this file
is included from other .c file.
* unwind-dw2-fde-glibc.c: New file.
* crtstuff.c (USE_PT_GNU_EH_FRAME, USE_EH_FRAME_REGISTRY): Define.
Use it instead of EH_FRAME_SECTION_NAME where appropriate.
From-SVN: r48039
2001-12-15 12:49:18 +01:00
|
|
|
gcc_cv_ld_bfd_srcdir=`echo $srcdir | sed -e 's,/gcc$,,'`/bfd
|
2006-01-26 19:52:49 +01:00
|
|
|
|
|
|
|
AS_VAR_SET_IF(gcc_cv_ld,, [
|
configure.in: Check for ld.
* configure.in: Check for ld.
(HAVE_LD_EH_FRAME_HDR): Define if ld supports --eh-frame-hdr option.
* configure, config.in: Rebuilt.
* config.gcc: Add crtbeginT.o to extra_parts where needed.
* config/t-linux (LIB2ADDEH, LIB2ADDEHDEP): Use unwind-dw2-fde-glibc
frame unwinding on Linux.
* config/t-linux-gnulibc1 (LIB2ADDEH, LIB2ADDEHDEP): Use unwind-dw2-fde
frame unwinding.
* config/linux.h (STARTFILE_SPEC): Use crtbeginT.o for -static.
(LINK_EH_SPEC): Define.
* config/i386/gnu.h (STARTFILE_SPEC): Use crtbeginT.o for -static.
* config/ia64/linux.h (STARTFILE_SPEC, LINK_EH_SPEC): Define.
* config/ia64/fde-glibc.c (_Unwind_IteratePhdrCallback): Don't
iterate further if pc falls into current library, but fde was not
found.
* config/sparc/linux.h (STARTFILE_SPEC): Use crtbeginT.o for -static
if using glibc.
(LINK_EH_SPEC): Define.
* config/sparc/linux64.h (STARTFILE_SPEC32, STARTFILE_SPEC64):
Use crtbeginT.o for -static.
(LINK_EH_SPEC): Define.
* config/sparc/t-linux64 (EXTRA_MULTILIB_PARTS): Add crtbeginT.o.
* Makefile.in (crtbeginT.o): Add rule.
* gcc.c (init_gcc_specs): For -static-libgcc, use -lgcc -lgcc_eh.
If neither -static-libgcc nor -shared-libgcc is passed and -shared,
use -lgcc if LINK_EH_SPEC is defined and -lgcc_s -lgcc if not.
If none of the above switches are passed, use -lgcc -lgcc_eh.
(init_spec): If LINK_EH_SPEC is defined, prepend it to link_spec.
* mklibgcc.in: Don't include LIB2ADDEH objects into libgcc.a if
creating libgcc_s.so, put them into separate libgcc_eh.a instead.
* unwind-dw2-fde.c: Don't include any headers if this file
is included from other .c file.
* unwind-dw2-fde-glibc.c: New file.
* crtstuff.c (USE_PT_GNU_EH_FRAME, USE_EH_FRAME_REGISTRY): Define.
Use it instead of EH_FRAME_SECTION_NAME where appropriate.
From-SVN: r48039
2001-12-15 12:49:18 +01:00
|
|
|
if test -x "$DEFAULT_LINKER"; then
|
|
|
|
gcc_cv_ld="$DEFAULT_LINKER"
|
2013-11-26 14:31:25 +01:00
|
|
|
elif test $install_gold_as_default = yes \
|
|
|
|
&& test -f $gcc_cv_ld_gold_srcdir/configure.ac \
|
|
|
|
&& test -f ../gold/Makefile \
|
|
|
|
&& test x$build = x$host; then
|
|
|
|
gcc_cv_ld=../gold/ld-new$build_exeext
|
2015-07-24 20:20:44 +02:00
|
|
|
elif test -f $gcc_cv_ld_gld_srcdir/configure.ac \
|
2004-05-25 21:46:49 +02:00
|
|
|
&& test -f ../ld/Makefile \
|
|
|
|
&& test x$build = x$host; then
|
2006-01-26 19:52:49 +01:00
|
|
|
gcc_cv_ld=../ld/ld-new$build_exeext
|
|
|
|
elif test -x collect-ld$build_exeext; then
|
|
|
|
# Build using linker in the current directory.
|
|
|
|
gcc_cv_ld=./collect-ld$build_exeext
|
2010-11-26 10:53:24 +01:00
|
|
|
elif ( set dummy $LD_FOR_TARGET; test -x $[2] ); then
|
2006-01-26 19:52:49 +01:00
|
|
|
gcc_cv_ld="$LD_FOR_TARGET"
|
|
|
|
else
|
|
|
|
AC_PATH_PROG(gcc_cv_ld, $LD_FOR_TARGET)
|
|
|
|
fi])
|
|
|
|
|
2009-11-08 23:36:51 +01:00
|
|
|
ORIGINAL_PLUGIN_LD_FOR_TARGET=$gcc_cv_ld
|
2012-05-07 21:59:56 +02:00
|
|
|
PLUGIN_LD_SUFFIX=`basename $gcc_cv_ld | sed -e "s,$target_alias-,,"`
|
2012-11-10 19:32:23 +01:00
|
|
|
# if the PLUGIN_LD is set ld-new, just have it as ld
|
|
|
|
# as that is the installed named.
|
2012-12-20 16:57:18 +01:00
|
|
|
if test x$PLUGIN_LD_SUFFIX = xld-new \
|
|
|
|
|| test x$PLUGIN_LD_SUFFIX = xcollect-ld ; then
|
2012-11-10 19:32:23 +01:00
|
|
|
PLUGIN_LD_SUFFIX=ld
|
|
|
|
fi
|
2009-11-08 23:36:51 +01:00
|
|
|
AC_ARG_WITH(plugin-ld,
|
2011-05-13 10:09:25 +02:00
|
|
|
[AS_HELP_STRING([[--with-plugin-ld=[ARG]]], [specify the plugin linker])],
|
2009-11-08 23:36:51 +01:00
|
|
|
[if test x"$withval" != x; then
|
|
|
|
ORIGINAL_PLUGIN_LD_FOR_TARGET="$withval"
|
2015-11-19 14:31:33 +01:00
|
|
|
PLUGIN_LD_SUFFIX="$withval"
|
2009-11-08 23:36:51 +01:00
|
|
|
fi])
|
|
|
|
AC_SUBST(ORIGINAL_PLUGIN_LD_FOR_TARGET)
|
2012-05-07 21:59:56 +02:00
|
|
|
AC_DEFINE_UNQUOTED(PLUGIN_LD_SUFFIX, "$PLUGIN_LD_SUFFIX", [Specify plugin linker])
|
2009-11-08 23:36:51 +01:00
|
|
|
|
2010-04-08 10:41:50 +02:00
|
|
|
# Check to see if we are using gold instead of ld
|
|
|
|
AC_MSG_CHECKING(whether we are using gold)
|
|
|
|
ld_is_gold=no
|
|
|
|
if test x$gcc_cv_ld != x; then
|
|
|
|
if $gcc_cv_ld --version 2>/dev/null | sed 1q \
|
|
|
|
| grep "GNU gold" > /dev/null; then
|
|
|
|
ld_is_gold=yes
|
|
|
|
fi
|
|
|
|
fi
|
|
|
|
AC_MSG_RESULT($ld_is_gold)
|
|
|
|
|
2015-10-01 01:06:11 +02:00
|
|
|
AC_MSG_CHECKING(gold linker with split stack support as non default)
|
|
|
|
# Check to see if default ld is not gold, but gold is
|
|
|
|
# available and has support for split stack. If gcc was configured
|
|
|
|
# with gold then no checking is done.
|
|
|
|
#
|
|
|
|
if test x$ld_is_gold = xno && which ${gcc_cv_ld}.gold >/dev/null 2>&1; then
|
|
|
|
|
|
|
|
# For platforms other than powerpc64*, enable as appropriate.
|
|
|
|
|
|
|
|
gold_non_default=no
|
|
|
|
ld_gold=`which ${gcc_cv_ld}.gold`
|
|
|
|
# Make sure this gold has minimal split stack support
|
|
|
|
if $ld_gold --help 2>/dev/null | grep split-stack-adjust-size >/dev/null 2>&1; then
|
|
|
|
ld_vers=`$ld_gold --version | sed 1q`
|
|
|
|
gold_vers=`echo $ld_vers | sed -n \
|
|
|
|
-e 's,^[[^)]]*[[ ]]\([[0-9]][[0-9]]*\.[[0-9]][[0-9]]*[[^)]]*\)) .*$,\1,p'`
|
|
|
|
case $target in
|
|
|
|
# check that the gold version contains the complete split stack support
|
|
|
|
# on powerpc64 big and little endian
|
|
|
|
powerpc64*-*-*)
|
|
|
|
case "$gold_vers" in
|
|
|
|
2.25.[[1-9]]*|2.2[[6-9]][[.0-9]]*|2.[[3-9]][[.0-9]]*|[[3-9]].[[.0-9]]*) gold_non_default=yes
|
|
|
|
;;
|
|
|
|
*) gold_non_default=no
|
|
|
|
;;
|
|
|
|
esac
|
|
|
|
;;
|
|
|
|
esac
|
|
|
|
fi
|
|
|
|
if test $gold_non_default = yes; then
|
|
|
|
AC_DEFINE(HAVE_GOLD_NON_DEFAULT_SPLIT_STACK, 1,
|
|
|
|
[Define if the gold linker supports split stack and is available as a non-default])
|
|
|
|
fi
|
|
|
|
fi
|
|
|
|
AC_MSG_RESULT($gold_non_default)
|
|
|
|
|
2006-01-26 19:52:49 +01:00
|
|
|
ORIGINAL_LD_FOR_TARGET=$gcc_cv_ld
|
|
|
|
AC_SUBST(ORIGINAL_LD_FOR_TARGET)
|
2007-04-13 09:04:39 +02:00
|
|
|
case "$ORIGINAL_LD_FOR_TARGET" in
|
|
|
|
./collect-ld | ./collect-ld$build_exeext) ;;
|
|
|
|
*) AC_CONFIG_FILES(collect-ld:exec-tool.in, [chmod +x collect-ld]) ;;
|
|
|
|
esac
|
2006-01-26 19:52:49 +01:00
|
|
|
|
|
|
|
AC_MSG_CHECKING(what linker to use)
|
2011-03-16 10:41:16 +01:00
|
|
|
if test "$gcc_cv_ld" = ../ld/ld-new$build_exeext \
|
|
|
|
|| test "$gcc_cv_ld" = ../gold/ld-new$build_exeext; then
|
2004-05-25 21:46:49 +02:00
|
|
|
# Single tree build which includes ld. We want to prefer it
|
|
|
|
# over whatever linker top-level may have detected, since
|
|
|
|
# we'll use what we're building after installation anyway.
|
2006-01-26 19:52:49 +01:00
|
|
|
AC_MSG_RESULT(newly built ld)
|
2003-03-04 08:41:00 +01:00
|
|
|
in_tree_ld=yes
|
2003-06-23 03:13:35 +02:00
|
|
|
in_tree_ld_is_elf=no
|
|
|
|
if (grep 'EMUL = .*elf' ../ld/Makefile \
|
2004-09-11 06:26:36 +02:00
|
|
|
|| grep 'EMUL = .*linux' ../ld/Makefile \
|
|
|
|
|| grep 'EMUL = .*lynx' ../ld/Makefile) > /dev/null; then
|
2003-06-23 03:13:35 +02:00
|
|
|
in_tree_ld_is_elf=yes
|
2011-03-16 10:41:16 +01:00
|
|
|
elif test "$ld_is_gold" = yes; then
|
|
|
|
in_tree_ld_is_elf=yes
|
2003-06-23 03:13:35 +02:00
|
|
|
fi
|
2015-07-24 20:20:44 +02:00
|
|
|
for f in $gcc_cv_ld_bfd_srcdir/configure $gcc_cv_ld_gld_srcdir/configure $gcc_cv_ld_gld_srcdir/configure.ac $gcc_cv_ld_gld_srcdir/Makefile.in
|
configure.in: Check for ld.
* configure.in: Check for ld.
(HAVE_LD_EH_FRAME_HDR): Define if ld supports --eh-frame-hdr option.
* configure, config.in: Rebuilt.
* config.gcc: Add crtbeginT.o to extra_parts where needed.
* config/t-linux (LIB2ADDEH, LIB2ADDEHDEP): Use unwind-dw2-fde-glibc
frame unwinding on Linux.
* config/t-linux-gnulibc1 (LIB2ADDEH, LIB2ADDEHDEP): Use unwind-dw2-fde
frame unwinding.
* config/linux.h (STARTFILE_SPEC): Use crtbeginT.o for -static.
(LINK_EH_SPEC): Define.
* config/i386/gnu.h (STARTFILE_SPEC): Use crtbeginT.o for -static.
* config/ia64/linux.h (STARTFILE_SPEC, LINK_EH_SPEC): Define.
* config/ia64/fde-glibc.c (_Unwind_IteratePhdrCallback): Don't
iterate further if pc falls into current library, but fde was not
found.
* config/sparc/linux.h (STARTFILE_SPEC): Use crtbeginT.o for -static
if using glibc.
(LINK_EH_SPEC): Define.
* config/sparc/linux64.h (STARTFILE_SPEC32, STARTFILE_SPEC64):
Use crtbeginT.o for -static.
(LINK_EH_SPEC): Define.
* config/sparc/t-linux64 (EXTRA_MULTILIB_PARTS): Add crtbeginT.o.
* Makefile.in (crtbeginT.o): Add rule.
* gcc.c (init_gcc_specs): For -static-libgcc, use -lgcc -lgcc_eh.
If neither -static-libgcc nor -shared-libgcc is passed and -shared,
use -lgcc if LINK_EH_SPEC is defined and -lgcc_s -lgcc if not.
If none of the above switches are passed, use -lgcc -lgcc_eh.
(init_spec): If LINK_EH_SPEC is defined, prepend it to link_spec.
* mklibgcc.in: Don't include LIB2ADDEH objects into libgcc.a if
creating libgcc_s.so, put them into separate libgcc_eh.a instead.
* unwind-dw2-fde.c: Don't include any headers if this file
is included from other .c file.
* unwind-dw2-fde-glibc.c: New file.
* crtstuff.c (USE_PT_GNU_EH_FRAME, USE_EH_FRAME_REGISTRY): Define.
Use it instead of EH_FRAME_SECTION_NAME where appropriate.
From-SVN: r48039
2001-12-15 12:49:18 +01:00
|
|
|
do
|
|
|
|
changequote(,)dnl
|
2012-10-11 02:52:26 +02:00
|
|
|
gcc_cv_gld_version=`sed -n -e 's/^[ ]*VERSION=[^0-9A-Za-z_]*\([0-9]*\.[0-9]*.*\)/VERSION=\1/p' < $f`
|
configure.in: Check for ld.
* configure.in: Check for ld.
(HAVE_LD_EH_FRAME_HDR): Define if ld supports --eh-frame-hdr option.
* configure, config.in: Rebuilt.
* config.gcc: Add crtbeginT.o to extra_parts where needed.
* config/t-linux (LIB2ADDEH, LIB2ADDEHDEP): Use unwind-dw2-fde-glibc
frame unwinding on Linux.
* config/t-linux-gnulibc1 (LIB2ADDEH, LIB2ADDEHDEP): Use unwind-dw2-fde
frame unwinding.
* config/linux.h (STARTFILE_SPEC): Use crtbeginT.o for -static.
(LINK_EH_SPEC): Define.
* config/i386/gnu.h (STARTFILE_SPEC): Use crtbeginT.o for -static.
* config/ia64/linux.h (STARTFILE_SPEC, LINK_EH_SPEC): Define.
* config/ia64/fde-glibc.c (_Unwind_IteratePhdrCallback): Don't
iterate further if pc falls into current library, but fde was not
found.
* config/sparc/linux.h (STARTFILE_SPEC): Use crtbeginT.o for -static
if using glibc.
(LINK_EH_SPEC): Define.
* config/sparc/linux64.h (STARTFILE_SPEC32, STARTFILE_SPEC64):
Use crtbeginT.o for -static.
(LINK_EH_SPEC): Define.
* config/sparc/t-linux64 (EXTRA_MULTILIB_PARTS): Add crtbeginT.o.
* Makefile.in (crtbeginT.o): Add rule.
* gcc.c (init_gcc_specs): For -static-libgcc, use -lgcc -lgcc_eh.
If neither -static-libgcc nor -shared-libgcc is passed and -shared,
use -lgcc if LINK_EH_SPEC is defined and -lgcc_s -lgcc if not.
If none of the above switches are passed, use -lgcc -lgcc_eh.
(init_spec): If LINK_EH_SPEC is defined, prepend it to link_spec.
* mklibgcc.in: Don't include LIB2ADDEH objects into libgcc.a if
creating libgcc_s.so, put them into separate libgcc_eh.a instead.
* unwind-dw2-fde.c: Don't include any headers if this file
is included from other .c file.
* unwind-dw2-fde-glibc.c: New file.
* crtstuff.c (USE_PT_GNU_EH_FRAME, USE_EH_FRAME_REGISTRY): Define.
Use it instead of EH_FRAME_SECTION_NAME where appropriate.
From-SVN: r48039
2001-12-15 12:49:18 +01:00
|
|
|
if test x$gcc_cv_gld_version != x; then
|
|
|
|
break
|
|
|
|
fi
|
|
|
|
done
|
2012-10-11 02:52:26 +02:00
|
|
|
case $gcc_cv_gld_version in
|
|
|
|
VERSION=[0-9]*) ;;
|
|
|
|
changequote([,])dnl
|
|
|
|
*) AC_MSG_ERROR([[cannot find version of in-tree linker]]) ;;
|
|
|
|
changequote(,)dnl
|
|
|
|
esac
|
configure.in: Check for ld.
* configure.in: Check for ld.
(HAVE_LD_EH_FRAME_HDR): Define if ld supports --eh-frame-hdr option.
* configure, config.in: Rebuilt.
* config.gcc: Add crtbeginT.o to extra_parts where needed.
* config/t-linux (LIB2ADDEH, LIB2ADDEHDEP): Use unwind-dw2-fde-glibc
frame unwinding on Linux.
* config/t-linux-gnulibc1 (LIB2ADDEH, LIB2ADDEHDEP): Use unwind-dw2-fde
frame unwinding.
* config/linux.h (STARTFILE_SPEC): Use crtbeginT.o for -static.
(LINK_EH_SPEC): Define.
* config/i386/gnu.h (STARTFILE_SPEC): Use crtbeginT.o for -static.
* config/ia64/linux.h (STARTFILE_SPEC, LINK_EH_SPEC): Define.
* config/ia64/fde-glibc.c (_Unwind_IteratePhdrCallback): Don't
iterate further if pc falls into current library, but fde was not
found.
* config/sparc/linux.h (STARTFILE_SPEC): Use crtbeginT.o for -static
if using glibc.
(LINK_EH_SPEC): Define.
* config/sparc/linux64.h (STARTFILE_SPEC32, STARTFILE_SPEC64):
Use crtbeginT.o for -static.
(LINK_EH_SPEC): Define.
* config/sparc/t-linux64 (EXTRA_MULTILIB_PARTS): Add crtbeginT.o.
* Makefile.in (crtbeginT.o): Add rule.
* gcc.c (init_gcc_specs): For -static-libgcc, use -lgcc -lgcc_eh.
If neither -static-libgcc nor -shared-libgcc is passed and -shared,
use -lgcc if LINK_EH_SPEC is defined and -lgcc_s -lgcc if not.
If none of the above switches are passed, use -lgcc -lgcc_eh.
(init_spec): If LINK_EH_SPEC is defined, prepend it to link_spec.
* mklibgcc.in: Don't include LIB2ADDEH objects into libgcc.a if
creating libgcc_s.so, put them into separate libgcc_eh.a instead.
* unwind-dw2-fde.c: Don't include any headers if this file
is included from other .c file.
* unwind-dw2-fde-glibc.c: New file.
* crtstuff.c (USE_PT_GNU_EH_FRAME, USE_EH_FRAME_REGISTRY): Define.
Use it instead of EH_FRAME_SECTION_NAME where appropriate.
From-SVN: r48039
2001-12-15 12:49:18 +01:00
|
|
|
gcc_cv_gld_major_version=`expr "$gcc_cv_gld_version" : "VERSION=\([0-9]*\)"`
|
|
|
|
gcc_cv_gld_minor_version=`expr "$gcc_cv_gld_version" : "VERSION=[0-9]*\.\([0-9]*\)"`
|
|
|
|
changequote([,])dnl
|
2013-11-26 14:31:25 +01:00
|
|
|
ORIGINAL_LD_BFD_FOR_TARGET=../ld/ld-new$build_exeext
|
|
|
|
ORIGINAL_LD_GOLD_FOR_TARGET=../gold/ld-new$build_exeext
|
2006-01-26 19:52:49 +01:00
|
|
|
else
|
|
|
|
AC_MSG_RESULT($gcc_cv_ld)
|
|
|
|
in_tree_ld=no
|
2013-11-26 14:31:25 +01:00
|
|
|
gcc_cvs_ld_program=`dirname $gcc_cv_ld`/`basename $gcc_cv_ld $host_exeext`
|
|
|
|
ORIGINAL_LD_BFD_FOR_TARGET=${gcc_cvs_ld_program}.bfd$host_exeext
|
|
|
|
ORIGINAL_LD_GOLD_FOR_TARGET=${gcc_cvs_ld_program}.gold$host_exeext
|
configure.in: Check for ld.
* configure.in: Check for ld.
(HAVE_LD_EH_FRAME_HDR): Define if ld supports --eh-frame-hdr option.
* configure, config.in: Rebuilt.
* config.gcc: Add crtbeginT.o to extra_parts where needed.
* config/t-linux (LIB2ADDEH, LIB2ADDEHDEP): Use unwind-dw2-fde-glibc
frame unwinding on Linux.
* config/t-linux-gnulibc1 (LIB2ADDEH, LIB2ADDEHDEP): Use unwind-dw2-fde
frame unwinding.
* config/linux.h (STARTFILE_SPEC): Use crtbeginT.o for -static.
(LINK_EH_SPEC): Define.
* config/i386/gnu.h (STARTFILE_SPEC): Use crtbeginT.o for -static.
* config/ia64/linux.h (STARTFILE_SPEC, LINK_EH_SPEC): Define.
* config/ia64/fde-glibc.c (_Unwind_IteratePhdrCallback): Don't
iterate further if pc falls into current library, but fde was not
found.
* config/sparc/linux.h (STARTFILE_SPEC): Use crtbeginT.o for -static
if using glibc.
(LINK_EH_SPEC): Define.
* config/sparc/linux64.h (STARTFILE_SPEC32, STARTFILE_SPEC64):
Use crtbeginT.o for -static.
(LINK_EH_SPEC): Define.
* config/sparc/t-linux64 (EXTRA_MULTILIB_PARTS): Add crtbeginT.o.
* Makefile.in (crtbeginT.o): Add rule.
* gcc.c (init_gcc_specs): For -static-libgcc, use -lgcc -lgcc_eh.
If neither -static-libgcc nor -shared-libgcc is passed and -shared,
use -lgcc if LINK_EH_SPEC is defined and -lgcc_s -lgcc if not.
If none of the above switches are passed, use -lgcc -lgcc_eh.
(init_spec): If LINK_EH_SPEC is defined, prepend it to link_spec.
* mklibgcc.in: Don't include LIB2ADDEH objects into libgcc.a if
creating libgcc_s.so, put them into separate libgcc_eh.a instead.
* unwind-dw2-fde.c: Don't include any headers if this file
is included from other .c file.
* unwind-dw2-fde-glibc.c: New file.
* crtstuff.c (USE_PT_GNU_EH_FRAME, USE_EH_FRAME_REGISTRY): Define.
Use it instead of EH_FRAME_SECTION_NAME where appropriate.
From-SVN: r48039
2001-12-15 12:49:18 +01:00
|
|
|
fi
|
|
|
|
|
2013-11-26 14:31:25 +01:00
|
|
|
AC_SUBST(ORIGINAL_LD_BFD_FOR_TARGET)
|
|
|
|
AC_SUBST(ORIGINAL_LD_GOLD_FOR_TARGET)
|
|
|
|
|
2000-09-22 20:24:29 +02:00
|
|
|
# Figure out what nm we will be using.
|
2003-04-16 08:51:20 +02:00
|
|
|
gcc_cv_binutils_srcdir=`echo $srcdir | sed -e 's,/gcc$,,'`/binutils
|
2006-01-26 19:52:49 +01:00
|
|
|
AS_VAR_SET_IF(gcc_cv_nm,, [
|
2015-07-24 20:20:44 +02:00
|
|
|
if test -f $gcc_cv_binutils_srcdir/configure.ac \
|
2006-05-02 02:55:43 +02:00
|
|
|
&& test -f ../binutils/Makefile \
|
|
|
|
&& test x$build = x$host; then
|
2005-06-16 14:49:06 +02:00
|
|
|
gcc_cv_nm=../binutils/nm-new$build_exeext
|
|
|
|
elif test -x nm$build_exeext; then
|
2004-10-27 18:06:39 +02:00
|
|
|
gcc_cv_nm=./nm$build_exeext
|
2010-11-26 10:53:24 +01:00
|
|
|
elif ( set dummy $NM_FOR_TARGET; test -x $[2] ); then
|
2006-01-26 19:52:49 +01:00
|
|
|
gcc_cv_nm="$NM_FOR_TARGET"
|
|
|
|
else
|
|
|
|
AC_PATH_PROG(gcc_cv_nm, $NM_FOR_TARGET)
|
|
|
|
fi])
|
2005-06-16 14:49:06 +02:00
|
|
|
|
|
|
|
AC_MSG_CHECKING(what nm to use)
|
2006-01-26 19:52:49 +01:00
|
|
|
if test "$gcc_cv_nm" = ../binutils/nm-new$build_exeext; then
|
|
|
|
# Single tree build which includes binutils.
|
|
|
|
AC_MSG_RESULT(newly built nm)
|
|
|
|
in_tree_nm=yes
|
|
|
|
else
|
|
|
|
AC_MSG_RESULT($gcc_cv_nm)
|
|
|
|
in_tree_nm=no
|
|
|
|
fi
|
|
|
|
|
|
|
|
ORIGINAL_NM_FOR_TARGET=$gcc_cv_nm
|
|
|
|
AC_SUBST(ORIGINAL_NM_FOR_TARGET)
|
2007-04-13 09:04:39 +02:00
|
|
|
case "$ORIGINAL_NM_FOR_TARGET" in
|
|
|
|
./nm | ./nm$build_exeext) ;;
|
|
|
|
*) AC_CONFIG_FILES(nm:exec-tool.in, [chmod +x nm]) ;;
|
|
|
|
esac
|
|
|
|
|
2000-09-22 20:24:29 +02:00
|
|
|
|
2001-11-15 13:11:52 +01:00
|
|
|
# Figure out what objdump we will be using.
|
2006-01-26 19:52:49 +01:00
|
|
|
AS_VAR_SET_IF(gcc_cv_objdump,, [
|
2015-07-24 20:20:44 +02:00
|
|
|
if test -f $gcc_cv_binutils_srcdir/configure.ac \
|
2006-05-02 02:55:43 +02:00
|
|
|
&& test -f ../binutils/Makefile \
|
|
|
|
&& test x$build = x$host; then
|
2003-04-16 08:51:20 +02:00
|
|
|
# Single tree build which includes binutils.
|
2005-06-16 14:49:06 +02:00
|
|
|
gcc_cv_objdump=../binutils/objdump$build_exeext
|
2005-10-06 17:24:09 +02:00
|
|
|
elif test -x objdump$build_exeext; then
|
|
|
|
gcc_cv_objdump=./objdump$build_exeext
|
2010-11-26 10:53:24 +01:00
|
|
|
elif ( set dummy $OBJDUMP_FOR_TARGET; test -x $[2] ); then
|
2006-01-26 19:52:49 +01:00
|
|
|
gcc_cv_objdump="$OBJDUMP_FOR_TARGET"
|
|
|
|
else
|
|
|
|
AC_PATH_PROG(gcc_cv_objdump, $OBJDUMP_FOR_TARGET)
|
|
|
|
fi])
|
2005-10-06 17:24:09 +02:00
|
|
|
|
|
|
|
AC_MSG_CHECKING(what objdump to use)
|
2006-01-26 19:52:49 +01:00
|
|
|
if test "$gcc_cv_objdump" = ../binutils/objdump$build_exeext; then
|
|
|
|
# Single tree build which includes binutils.
|
|
|
|
AC_MSG_RESULT(newly built objdump)
|
|
|
|
elif test x$gcc_cv_objdump = x; then
|
|
|
|
AC_MSG_RESULT(not found)
|
|
|
|
else
|
|
|
|
AC_MSG_RESULT($gcc_cv_objdump)
|
|
|
|
fi
|
2001-11-15 13:11:52 +01:00
|
|
|
|
2008-12-03 10:09:43 +01:00
|
|
|
# Figure out what readelf we will be using.
|
|
|
|
AS_VAR_SET_IF(gcc_cv_readelf,, [
|
2015-07-24 20:20:44 +02:00
|
|
|
if test -f $gcc_cv_binutils_srcdir/configure.ac \
|
2008-12-03 10:09:43 +01:00
|
|
|
&& test -f ../binutils/Makefile \
|
|
|
|
&& test x$build = x$host; then
|
|
|
|
# Single tree build which includes binutils.
|
|
|
|
gcc_cv_readelf=../binutils/readelf$build_exeext
|
|
|
|
elif test -x readelf$build_exeext; then
|
|
|
|
gcc_cv_readelf=./readelf$build_exeext
|
2015-10-07 15:45:21 +02:00
|
|
|
elif ( set dummy $READELF_FOR_TARGET; test -x $[2] ); then
|
|
|
|
gcc_cv_readelf="$READELF_FOR_TARGET"
|
2008-12-03 10:09:43 +01:00
|
|
|
else
|
2015-10-07 15:45:21 +02:00
|
|
|
AC_PATH_PROG(gcc_cv_readelf, $READELF_FOR_TARGET)
|
2008-12-03 10:09:43 +01:00
|
|
|
fi])
|
|
|
|
|
|
|
|
AC_MSG_CHECKING(what readelf to use)
|
|
|
|
if test "$gcc_cv_readelf" = ../binutils/readelf$build_exeext; then
|
|
|
|
# Single tree build which includes binutils.
|
|
|
|
AC_MSG_RESULT(newly built readelf)
|
|
|
|
elif test x$gcc_cv_readelf = x; then
|
|
|
|
AC_MSG_RESULT(not found)
|
|
|
|
else
|
|
|
|
AC_MSG_RESULT($gcc_cv_readelf)
|
|
|
|
fi
|
|
|
|
|
2000-09-22 20:24:29 +02:00
|
|
|
# Figure out what assembler alignment features are present.
|
2003-07-12 22:03:14 +02:00
|
|
|
gcc_GAS_CHECK_FEATURE([.balign and .p2align], gcc_cv_as_balign_and_p2align,
|
|
|
|
[2,6,0],,
|
|
|
|
[.balign 4
|
|
|
|
.p2align 2],,
|
|
|
|
[AC_DEFINE(HAVE_GAS_BALIGN_AND_P2ALIGN, 1,
|
|
|
|
[Define if your assembler supports .balign and .p2align.])])
|
|
|
|
|
|
|
|
gcc_GAS_CHECK_FEATURE([.p2align with maximum skip], gcc_cv_as_max_skip_p2align,
|
|
|
|
[2,8,0],,
|
|
|
|
[.p2align 4,,7],,
|
|
|
|
[AC_DEFINE(HAVE_GAS_MAX_SKIP_P2ALIGN, 1,
|
|
|
|
[Define if your assembler supports specifying the maximum number
|
|
|
|
of bytes to skip when using the GAS .p2align command.])])
|
|
|
|
|
2007-01-01 21:58:38 +01:00
|
|
|
gcc_GAS_CHECK_FEATURE([.literal16], gcc_cv_as_literal16,
|
|
|
|
[2,8,0],,
|
|
|
|
[.literal16],,
|
|
|
|
[AC_DEFINE(HAVE_GAS_LITERAL16, 1,
|
|
|
|
[Define if your assembler supports .literal16.])])
|
|
|
|
|
2003-07-12 22:03:14 +02:00
|
|
|
gcc_GAS_CHECK_FEATURE([working .subsection -1], gcc_cv_as_subsection_m1,
|
|
|
|
[elf,2,9,0],,
|
|
|
|
[conftest_label1: .word 0
|
1998-09-11 00:28:30 +02:00
|
|
|
.subsection -1
|
|
|
|
conftest_label2: .word 0
|
2003-07-12 22:03:14 +02:00
|
|
|
.previous],
|
|
|
|
[if test x$gcc_cv_nm != x; then
|
|
|
|
$gcc_cv_nm conftest.o | grep conftest_label1 > conftest.nm1
|
|
|
|
$gcc_cv_nm conftest.o | grep conftest_label2 | sed -e 's/label2/label1/' > conftest.nm2
|
|
|
|
if cmp conftest.nm1 conftest.nm2 > /dev/null 2>&1
|
|
|
|
then :
|
|
|
|
else gcc_cv_as_subsection_m1=yes
|
|
|
|
fi
|
|
|
|
rm -f conftest.nm1 conftest.nm2
|
|
|
|
fi],
|
|
|
|
[AC_DEFINE(HAVE_GAS_SUBSECTION_ORDERING, 1,
|
|
|
|
[Define if your assembler supports .subsection and .subsection -1 starts
|
|
|
|
emitting at the beginning of your section.])])
|
|
|
|
|
|
|
|
gcc_GAS_CHECK_FEATURE([.weak], gcc_cv_as_weak,
|
|
|
|
[2,2,0],,
|
|
|
|
[ .weak foobar],,
|
|
|
|
[AC_DEFINE(HAVE_GAS_WEAK, 1, [Define if your assembler supports .weak.])])
|
|
|
|
|
2005-11-09 21:13:41 +01:00
|
|
|
gcc_GAS_CHECK_FEATURE([.weakref], gcc_cv_as_weakref,
|
|
|
|
[2,17,0],,
|
|
|
|
[ .weakref foobar, barfnot],,
|
|
|
|
[AC_DEFINE(HAVE_GAS_WEAKREF, 1, [Define if your assembler supports .weakref.])])
|
|
|
|
|
2004-12-15 06:10:57 +01:00
|
|
|
gcc_GAS_CHECK_FEATURE([.nsubspa comdat], gcc_cv_as_nsubspa_comdat,
|
|
|
|
[2,15,91],,
|
|
|
|
[ .SPACE $TEXT$
|
|
|
|
.NSUBSPA $CODE$,COMDAT],,
|
|
|
|
[AC_DEFINE(HAVE_GAS_NSUBSPA_COMDAT, 1, [Define if your assembler supports .nsubspa comdat option.])])
|
|
|
|
|
2003-07-12 22:03:14 +02:00
|
|
|
# .hidden needs to be supported in both the assembler and the linker,
|
|
|
|
# because GNU LD versions before 2.12.1 have buggy support for STV_HIDDEN.
|
|
|
|
# This is irritatingly difficult to feature test for; we have to check the
|
|
|
|
# date string after the version number. If we've got an in-tree
|
|
|
|
# ld, we don't know its patchlevel version, so we set the baseline at 2.13
|
|
|
|
# to be safe.
|
|
|
|
# The gcc_GAS_CHECK_FEATURE call just sets a cache variable.
|
|
|
|
gcc_GAS_CHECK_FEATURE([.hidden], gcc_cv_as_hidden,
|
|
|
|
[elf,2,13,0],,
|
|
|
|
[ .hidden foobar
|
2014-04-22 14:30:59 +02:00
|
|
|
foobar:])
|
2011-06-09 09:08:00 +02:00
|
|
|
case "${target}" in
|
|
|
|
*-*-darwin*)
|
|
|
|
# Darwin as has some visibility support, though with a different syntax.
|
|
|
|
gcc_cv_as_hidden=yes
|
|
|
|
;;
|
|
|
|
esac
|
2003-07-12 22:03:14 +02:00
|
|
|
|
2010-09-09 16:12:57 +02:00
|
|
|
# gnu_indirect_function type is an extension proposed at
|
|
|
|
# http://groups.google/com/group/generic-abi/files. It allows dynamic runtime
|
|
|
|
# selection of function implementation
|
2010-09-29 16:58:52 +02:00
|
|
|
AC_ARG_ENABLE(gnu-indirect-function,
|
|
|
|
[AS_HELP_STRING([--enable-gnu-indirect-function],
|
|
|
|
[enable the use of the @gnu_indirect_function to glibc systems])],
|
|
|
|
[case $enable_gnu_indirect_function in
|
|
|
|
yes | no) ;;
|
|
|
|
*) AC_MSG_ERROR(['$enable_gnu_indirect_function' is an invalid value for --enable-gnu-indirect-function.
|
|
|
|
Valid choices are 'yes' and 'no'.]) ;;
|
|
|
|
esac],
|
|
|
|
[enable_gnu_indirect_function="$default_gnu_indirect_function"])
|
2013-03-27 10:55:19 +01:00
|
|
|
|
|
|
|
gif=`if test x$enable_gnu_indirect_function = xyes; then echo 1; else echo 0; fi`
|
|
|
|
AC_DEFINE_UNQUOTED(HAVE_GNU_INDIRECT_FUNCTION, $gif,
|
|
|
|
[Define if your system supports gnu indirect functions.])
|
|
|
|
|
2010-09-09 16:12:57 +02:00
|
|
|
|
2009-12-09 10:13:43 +01:00
|
|
|
changequote(,)dnl
|
|
|
|
if test $in_tree_ld != yes ; then
|
|
|
|
ld_ver=`$gcc_cv_ld --version 2>/dev/null | sed 1q`
|
2011-03-16 10:41:16 +01:00
|
|
|
if echo "$ld_ver" | grep GNU > /dev/null; then
|
|
|
|
if test x"$ld_is_gold" = xyes; then
|
|
|
|
# GNU gold --version looks like this:
|
|
|
|
#
|
|
|
|
# GNU gold (GNU Binutils 2.21.51.20110225) 1.11
|
|
|
|
#
|
|
|
|
# We extract the binutils version which is more familiar and specific
|
|
|
|
# than the gold version.
|
|
|
|
ld_vers=`echo $ld_ver | sed -n \
|
|
|
|
-e 's,^[^)]*[ ]\([0-9][0-9]*\.[0-9][0-9]*[^)]*\)) .*$,\1,p'`
|
|
|
|
else
|
|
|
|
# GNU ld --version looks like this:
|
|
|
|
#
|
|
|
|
# GNU ld (GNU Binutils) 2.21.51.20110225
|
|
|
|
ld_vers=`echo $ld_ver | sed -n \
|
|
|
|
-e 's,^.*[ ]\([0-9][0-9]*\.[0-9][0-9]*.*\)$,\1,p'`
|
|
|
|
fi
|
2009-12-09 10:13:43 +01:00
|
|
|
ld_date=`echo $ld_ver | sed -n 's,^.*\([2-9][0-9][0-9][0-9]\)[-]*\([01][0-9]\)[-]*\([0-3][0-9]\).*$,\1\2\3,p'`
|
|
|
|
ld_vers_major=`expr "$ld_vers" : '\([0-9]*\)'`
|
|
|
|
ld_vers_minor=`expr "$ld_vers" : '[0-9]*\.\([0-9]*\)'`
|
|
|
|
ld_vers_patch=`expr "$ld_vers" : '[0-9]*\.[0-9]*\.\([0-9]*\)'`
|
2010-04-09 19:32:54 +02:00
|
|
|
else
|
|
|
|
case "${target}" in
|
|
|
|
*-*-solaris2*)
|
2012-02-20 12:47:25 +01:00
|
|
|
# See acinclude.m4 (gcc_SUN_LD_VERSION) for the version number
|
|
|
|
# format.
|
2010-04-09 19:32:54 +02:00
|
|
|
#
|
2012-02-20 12:47:25 +01:00
|
|
|
# Don't reuse gcc_gv_sun_ld_vers_* in case a linker other than
|
|
|
|
# /usr/ccs/bin/ld has been configured.
|
2010-04-09 19:32:54 +02:00
|
|
|
ld_ver=`$gcc_cv_ld -V 2>&1`
|
|
|
|
if echo "$ld_ver" | grep 'Solaris Link Editors' > /dev/null; then
|
|
|
|
ld_vers=`echo $ld_ver | sed -n \
|
|
|
|
-e 's,^.*: 5\.[0-9][0-9]*-\([0-9]\.[0-9][0-9]*\).*$,\1,p'`
|
|
|
|
ld_vers_major=`expr "$ld_vers" : '\([0-9]*\)'`
|
|
|
|
ld_vers_minor=`expr "$ld_vers" : '[0-9]*\.\([0-9]*\)'`
|
|
|
|
fi
|
|
|
|
;;
|
|
|
|
esac
|
2009-12-09 10:13:43 +01:00
|
|
|
fi
|
|
|
|
fi
|
|
|
|
changequote([,])dnl
|
|
|
|
|
2003-07-12 22:03:14 +02:00
|
|
|
AC_CACHE_CHECK(linker for .hidden support, gcc_cv_ld_hidden,
|
2010-02-19 14:58:09 +01:00
|
|
|
[[if test $in_tree_ld = yes ; then
|
2003-07-12 22:03:14 +02:00
|
|
|
gcc_cv_ld_hidden=no
|
|
|
|
if test "$gcc_cv_gld_major_version" -eq 2 -a "$gcc_cv_gld_minor_version" -ge 13 -o "$gcc_cv_gld_major_version" -gt 2 \
|
|
|
|
&& test $in_tree_ld_is_elf = yes; then
|
|
|
|
gcc_cv_ld_hidden=yes
|
|
|
|
fi
|
|
|
|
else
|
|
|
|
gcc_cv_ld_hidden=yes
|
2011-03-16 10:41:16 +01:00
|
|
|
if test x"$ld_is_gold" = xyes; then
|
|
|
|
:
|
|
|
|
elif echo "$ld_ver" | grep GNU > /dev/null; then
|
2012-10-11 03:09:43 +02:00
|
|
|
case "${target}" in
|
|
|
|
mmix-knuth-mmixware)
|
|
|
|
# The linker emits by default mmo, not ELF, so "no" is appropriate.
|
|
|
|
gcc_cv_ld_hidden=no
|
|
|
|
;;
|
|
|
|
esac
|
2003-07-12 22:03:14 +02:00
|
|
|
if test 0"$ld_date" -lt 20020404; then
|
|
|
|
if test -n "$ld_date"; then
|
|
|
|
# If there was date string, but was earlier than 2002-04-04, fail
|
|
|
|
gcc_cv_ld_hidden=no
|
|
|
|
elif test -z "$ld_vers"; then
|
|
|
|
# If there was no date string nor ld version number, something is wrong
|
|
|
|
gcc_cv_ld_hidden=no
|
|
|
|
else
|
|
|
|
test -z "$ld_vers_patch" && ld_vers_patch=0
|
|
|
|
if test "$ld_vers_major" -lt 2; then
|
|
|
|
gcc_cv_ld_hidden=no
|
|
|
|
elif test "$ld_vers_major" -eq 2 -a "$ld_vers_minor" -lt 12; then
|
|
|
|
gcc_cv_ld_hidden="no"
|
|
|
|
elif test "$ld_vers_major" -eq 2 -a "$ld_vers_minor" -eq 12 -a "$ld_vers_patch" -eq 0; then
|
|
|
|
gcc_cv_ld_hidden=no
|
2002-05-01 22:37:41 +02:00
|
|
|
fi
|
2003-07-12 22:03:14 +02:00
|
|
|
fi
|
configure.in (mips*-*-irix6*o32): Enable stabs.
* configure.in (mips*-*-irix6*o32): Enable stabs.
gcc:
* config.gcc (mips-sgi-irix6*o32): New configuration.
* configure.in (libgcc_visibility): Disable for mips-sgi-irix6*o32
configurations.
* configure: Regenerate.
* config/mips/iris6-o32-as.h: New file.
* config/mips/iris6-o32.h: New file.
* config/mips/iris5gas.h (TARGET_ASM_NAMED_SECTION): Define.
(NM_FLAGS): Define.
(HAVE_AS_SHF_MERGE): Undefine.
* config/mips/t-iris5-as: New file.
* config.gcc (mips-sgi-irix6*o32, mips-sgi-irix5*): Use it.
* config/mips/t-iris6 (SHLIB_EXT, SHLIB_SOLINK, SHLIB_SONAME,
SHLIB_NAME, SHLIB_MAP, SHLIB_OBJS, SHLIB_SLIBDIR_QUAL, SHLIB_LINK,
SHLIB_INSTALL, SHLIB_MKMAP, SHLIB_MAPFILES, FPBIT, DPBIT,
dp-bit.c, fp-bit.c): Move ...
* config/mips/t-iris5-6: ... here.
New file, shared by IRIX 5 and IRIX 6.
* config.gcc (mips-sgi-irix6*o32, mips-sgi-irix6*,
mips-sgi-irix5*): Use it.
* config/mips/iris6.h: Remove duplicate comment.
* config/mips/mips.c (TARGET_ASM_UNALIGNED_DI_OP) [TARGET_IRIX5 &&
!TARGET_IRIX6]: Define.
(mips_asm_file_start): Don't emit mdebug.<ABI> sections on IRIX 5/6.
* config/mips/mips.h (ASM_DECLARE_FUNCTION_NAME): Fix comment.
gcc/testsuite:
* gcc.misc-tests/linkage.exp: Handle mips-sgi-irix6*o32
configuration and IRIX 6 O32 ABI.
libstdc++-v3:
* configure.target (target_os switch): Allow for irix6*o32
configurations.
From-SVN: r55401
2002-07-11 20:56:58 +02:00
|
|
|
fi
|
2003-07-12 22:03:14 +02:00
|
|
|
else
|
2003-12-16 18:49:57 +01:00
|
|
|
case "${target}" in
|
2011-06-09 09:08:00 +02:00
|
|
|
*-*-darwin*)
|
|
|
|
# Darwin ld has some visibility support.
|
|
|
|
gcc_cv_ld_hidden=yes
|
|
|
|
;;
|
2004-01-09 22:20:53 +01:00
|
|
|
hppa64*-*-hpux* | ia64*-*-hpux*)
|
2003-12-16 18:49:57 +01:00
|
|
|
gcc_cv_ld_hidden=yes
|
|
|
|
;;
|
2014-04-22 14:30:59 +02:00
|
|
|
*-*-solaris2.1[0-9]*)
|
2010-05-10 15:01:58 +02:00
|
|
|
# Support for .hidden in Sun ld appeared in Solaris 9 FCS, but
|
|
|
|
# .symbolic was only added in Solaris 9 12/02.
|
2008-12-16 14:09:57 +01:00
|
|
|
gcc_cv_ld_hidden=yes
|
|
|
|
;;
|
2003-12-16 18:49:57 +01:00
|
|
|
*)
|
|
|
|
gcc_cv_ld_hidden=no
|
|
|
|
;;
|
|
|
|
esac
|
2003-07-12 22:03:14 +02:00
|
|
|
fi
|
2010-02-19 14:58:09 +01:00
|
|
|
fi]])
|
2003-07-12 22:03:14 +02:00
|
|
|
libgcc_visibility=no
|
2002-02-26 22:39:07 +01:00
|
|
|
AC_SUBST(libgcc_visibility)
|
2005-05-08 12:13:19 +02:00
|
|
|
GCC_TARGET_TEMPLATE([HAVE_GAS_HIDDEN])
|
2003-07-24 18:16:51 +02:00
|
|
|
if test $gcc_cv_as_hidden = yes && test $gcc_cv_ld_hidden = yes; then
|
2003-07-12 22:03:14 +02:00
|
|
|
libgcc_visibility=yes
|
|
|
|
AC_DEFINE(HAVE_GAS_HIDDEN, 1,
|
|
|
|
[Define if your assembler and linker support .hidden.])
|
|
|
|
fi
|
2000-04-05 09:34:36 +02:00
|
|
|
|
2008-11-03 20:03:28 +01:00
|
|
|
AC_MSG_CHECKING(linker read-only and read-write section mixing)
|
|
|
|
gcc_cv_ld_ro_rw_mix=unknown
|
|
|
|
if test $in_tree_ld = yes ; then
|
|
|
|
if test "$gcc_cv_gld_major_version" -eq 2 -a "$gcc_cv_gld_minor_version" -ge 10 -o "$gcc_cv_gld_major_version" -gt 2 \
|
|
|
|
&& test $in_tree_ld_is_elf = yes; then
|
|
|
|
gcc_cv_ld_ro_rw_mix=read-write
|
|
|
|
fi
|
|
|
|
elif test x$gcc_cv_as != x -a x$gcc_cv_ld != x -a x$gcc_cv_objdump != x ; then
|
|
|
|
echo '.section myfoosect, "a"' > conftest1.s
|
|
|
|
echo '.section myfoosect, "aw"' > conftest2.s
|
|
|
|
echo '.byte 1' >> conftest2.s
|
|
|
|
echo '.section myfoosect, "a"' > conftest3.s
|
|
|
|
echo '.byte 0' >> conftest3.s
|
|
|
|
if $gcc_cv_as -o conftest1.o conftest1.s > /dev/null 2>&1 \
|
|
|
|
&& $gcc_cv_as -o conftest2.o conftest2.s > /dev/null 2>&1 \
|
|
|
|
&& $gcc_cv_as -o conftest3.o conftest3.s > /dev/null 2>&1 \
|
|
|
|
&& $gcc_cv_ld -shared -o conftest1.so conftest1.o \
|
|
|
|
conftest2.o conftest3.o > /dev/null 2>&1; then
|
|
|
|
gcc_cv_ld_ro_rw_mix=`$gcc_cv_objdump -h conftest1.so \
|
|
|
|
| sed -e '/myfoosect/!d' -e N`
|
|
|
|
if echo "$gcc_cv_ld_ro_rw_mix" | grep CONTENTS > /dev/null; then
|
|
|
|
if echo "$gcc_cv_ld_ro_rw_mix" | grep READONLY > /dev/null; then
|
|
|
|
gcc_cv_ld_ro_rw_mix=read-only
|
|
|
|
else
|
|
|
|
gcc_cv_ld_ro_rw_mix=read-write
|
|
|
|
fi
|
|
|
|
fi
|
|
|
|
fi
|
|
|
|
changequote(,)dnl
|
|
|
|
rm -f conftest.* conftest[123].*
|
|
|
|
changequote([,])dnl
|
|
|
|
fi
|
|
|
|
if test x$gcc_cv_ld_ro_rw_mix = xread-write; then
|
|
|
|
AC_DEFINE(HAVE_LD_RO_RW_SECTION_MIXING, 1,
|
|
|
|
[Define if your linker links a mix of read-only
|
|
|
|
and read-write sections into a read-write section.])
|
|
|
|
fi
|
|
|
|
AC_MSG_RESULT($gcc_cv_ld_ro_rw_mix)
|
|
|
|
|
2012-01-19 11:43:54 +01:00
|
|
|
gcc_AC_INITFINI_ARRAY
|
|
|
|
|
2003-07-12 22:03:14 +02:00
|
|
|
# Check if we have .[us]leb128, and support symbol arithmetic with it.
|
|
|
|
gcc_GAS_CHECK_FEATURE([.sleb128 and .uleb128], gcc_cv_as_leb128,
|
|
|
|
[elf,2,11,0],,
|
|
|
|
[ .data
|
2001-03-08 20:36:21 +01:00
|
|
|
.uleb128 L2 - L1
|
|
|
|
L1:
|
|
|
|
.uleb128 1280
|
|
|
|
.sleb128 -1010
|
2003-07-12 22:03:14 +02:00
|
|
|
L2:],
|
2010-02-19 14:58:09 +01:00
|
|
|
[[# GAS versions before 2.11 do not support uleb128,
|
2003-07-12 22:03:14 +02:00
|
|
|
# despite appearing to.
|
|
|
|
# ??? There exists an elf-specific test that will crash
|
|
|
|
# the assembler. Perhaps it's better to figure out whether
|
|
|
|
# arbitrary sections are supported and try the test.
|
2003-09-10 02:13:11 +02:00
|
|
|
as_ver=`$gcc_cv_as --version 2>/dev/null | sed 1q`
|
2003-07-12 22:03:14 +02:00
|
|
|
if echo "$as_ver" | grep GNU > /dev/null; then
|
2007-08-23 19:42:08 +02:00
|
|
|
as_vers=`echo $as_ver | sed -n \
|
2008-01-22 14:55:11 +01:00
|
|
|
-e 's,^.*[ ]\([0-9][0-9]*\.[0-9][0-9]*.*\)$,\1,p'`
|
2007-08-23 19:42:08 +02:00
|
|
|
as_major=`expr "$as_vers" : '\([0-9]*\)'`
|
|
|
|
as_minor=`expr "$as_vers" : '[0-9]*\.\([0-9]*\)'`
|
2003-07-12 22:03:14 +02:00
|
|
|
if test $as_major -eq 2 && test $as_minor -lt 11
|
|
|
|
then :
|
|
|
|
else gcc_cv_as_leb128=yes
|
|
|
|
fi
|
2010-02-19 14:58:09 +01:00
|
|
|
fi]],
|
2003-07-12 22:03:14 +02:00
|
|
|
[AC_DEFINE(HAVE_AS_LEB128, 1,
|
|
|
|
[Define if your assembler supports .sleb128 and .uleb128.])])
|
|
|
|
|
2008-08-05 19:24:37 +02:00
|
|
|
# Check if we have assembler support for unwind directives.
|
|
|
|
gcc_GAS_CHECK_FEATURE([cfi directives], gcc_cv_as_cfi_directive,
|
2008-08-20 12:23:08 +02:00
|
|
|
,,
|
2008-08-05 19:24:37 +02:00
|
|
|
[ .text
|
|
|
|
.cfi_startproc
|
|
|
|
.cfi_offset 0, 0
|
|
|
|
.cfi_same_value 1
|
|
|
|
.cfi_def_cfa 1, 2
|
|
|
|
.cfi_escape 1, 2, 3, 4, 5
|
2008-11-03 20:03:28 +01:00
|
|
|
.cfi_endproc],
|
|
|
|
[case "$target" in
|
|
|
|
*-*-solaris*)
|
|
|
|
# If the linker used on Solaris (like Sun ld) isn't capable of merging
|
|
|
|
# read-only and read-write sections, we need to make sure that the
|
|
|
|
# assembler used emits read-write .eh_frame sections.
|
|
|
|
if test "x$gcc_cv_ld_ro_rw_mix" != xread-write; then
|
|
|
|
if test "x$gcc_cv_objdump" != x; then
|
|
|
|
if $gcc_cv_objdump -h conftest.o 2>/dev/null | \
|
|
|
|
sed -e /.eh_frame/!d -e N | grep READONLY > /dev/null; then
|
|
|
|
gcc_cv_as_cfi_directive=no
|
|
|
|
else
|
2010-03-01 19:09:19 +01:00
|
|
|
case "$target" in
|
2011-07-07 11:24:16 +02:00
|
|
|
i?86-*-solaris2.1[[0-9]]* | x86_64-*-solaris2.1[[0-9]]*)
|
2014-04-24 10:38:06 +02:00
|
|
|
# On Solaris/x86, make sure that GCC and assembler agree on using
|
2010-03-01 19:09:19 +01:00
|
|
|
# read-only .eh_frame sections for 64-bit.
|
2014-04-24 10:38:06 +02:00
|
|
|
if test x$gas = xyes; then
|
|
|
|
as_ix86_64_opt="--64"
|
|
|
|
else
|
|
|
|
as_ix86_64_opt="-xarch=amd64"
|
|
|
|
fi
|
|
|
|
if $gcc_cv_as $as_ix86_64_opt -o conftest.o conftest.s > /dev/null 2>&1 && \
|
2010-03-01 19:09:19 +01:00
|
|
|
$gcc_cv_objdump -h conftest.o 2>/dev/null | \
|
|
|
|
sed -e /.eh_frame/!d -e N | \
|
|
|
|
grep READONLY > /dev/null; then
|
|
|
|
gcc_cv_as_cfi_directive=yes
|
|
|
|
else
|
|
|
|
gcc_cv_as_cfi_directive=no
|
|
|
|
fi
|
|
|
|
;;
|
|
|
|
*)
|
|
|
|
gcc_cv_as_cfi_directive=yes
|
|
|
|
;;
|
|
|
|
esac
|
2008-11-03 20:03:28 +01:00
|
|
|
fi
|
|
|
|
else
|
|
|
|
# no objdump, err on the side of caution
|
|
|
|
gcc_cv_as_cfi_directive=no
|
|
|
|
fi
|
|
|
|
else
|
|
|
|
gcc_cv_as_cfi_directive=yes
|
|
|
|
fi
|
|
|
|
;;
|
|
|
|
*-*-*)
|
|
|
|
gcc_cv_as_cfi_directive=yes
|
|
|
|
;;
|
|
|
|
esac])
|
2010-09-03 02:02:53 +02:00
|
|
|
if test $gcc_cv_as_cfi_directive = yes && test x$gcc_cv_objdump != x; then
|
2008-12-03 10:09:43 +01:00
|
|
|
gcc_GAS_CHECK_FEATURE([working cfi advance], gcc_cv_as_cfi_advance_working,
|
|
|
|
,,
|
|
|
|
[ .text
|
|
|
|
.cfi_startproc
|
|
|
|
.cfi_adjust_cfa_offset 64
|
2010-03-12 03:54:17 +01:00
|
|
|
.skip 75040, 0
|
2008-12-03 10:09:43 +01:00
|
|
|
.cfi_adjust_cfa_offset 128
|
|
|
|
.cfi_endproc],
|
2010-02-19 14:58:09 +01:00
|
|
|
[[
|
2010-09-03 02:02:53 +02:00
|
|
|
if $gcc_cv_objdump -Wf conftest.o 2>/dev/null \
|
2010-03-12 03:54:17 +01:00
|
|
|
| grep 'DW_CFA_advance_loc[24]:[ ][ ]*75040[ ]' >/dev/null; then
|
2008-12-03 10:09:43 +01:00
|
|
|
gcc_cv_as_cfi_advance_working=yes
|
|
|
|
fi
|
2010-02-19 14:58:09 +01:00
|
|
|
]])
|
2008-12-03 10:09:43 +01:00
|
|
|
else
|
2010-09-03 02:02:53 +02:00
|
|
|
# no objdump, err on the side of caution
|
2008-12-20 23:32:30 +01:00
|
|
|
gcc_cv_as_cfi_advance_working=no
|
2008-12-03 10:09:43 +01:00
|
|
|
fi
|
2010-09-26 06:02:24 +02:00
|
|
|
GCC_TARGET_TEMPLATE(HAVE_GAS_CFI_DIRECTIVE)
|
2008-08-05 19:24:37 +02:00
|
|
|
AC_DEFINE_UNQUOTED(HAVE_GAS_CFI_DIRECTIVE,
|
2008-12-03 10:09:43 +01:00
|
|
|
[`if test $gcc_cv_as_cfi_directive = yes \
|
|
|
|
&& test $gcc_cv_as_cfi_advance_working = yes; then echo 1; else echo 0; fi`],
|
2008-08-07 18:29:22 +02:00
|
|
|
[Define 0/1 if your assembler supports CFI directives.])
|
|
|
|
|
2010-09-26 06:02:24 +02:00
|
|
|
GCC_TARGET_TEMPLATE(HAVE_GAS_CFI_PERSONALITY_DIRECTIVE)
|
2008-08-07 18:29:22 +02:00
|
|
|
gcc_GAS_CHECK_FEATURE([cfi personality directive],
|
2008-08-20 12:23:08 +02:00
|
|
|
gcc_cv_as_cfi_personality_directive, ,,
|
2008-08-07 18:29:22 +02:00
|
|
|
[ .text
|
2008-08-21 21:31:02 +02:00
|
|
|
.cfi_startproc
|
2008-08-07 18:29:22 +02:00
|
|
|
.cfi_personality 0, symbol
|
|
|
|
.cfi_endproc])
|
|
|
|
AC_DEFINE_UNQUOTED(HAVE_GAS_CFI_PERSONALITY_DIRECTIVE,
|
|
|
|
[`if test $gcc_cv_as_cfi_personality_directive = yes;
|
|
|
|
then echo 1; else echo 0; fi`],
|
|
|
|
[Define 0/1 if your assembler supports .cfi_personality.])
|
2008-08-05 19:24:37 +02:00
|
|
|
|
2009-10-02 20:52:15 +02:00
|
|
|
gcc_GAS_CHECK_FEATURE([cfi sections directive],
|
|
|
|
gcc_cv_as_cfi_sections_directive, ,,
|
|
|
|
[ .text
|
|
|
|
.cfi_sections .debug_frame, .eh_frame
|
|
|
|
.cfi_startproc
|
2010-09-03 02:02:53 +02:00
|
|
|
.cfi_endproc],
|
|
|
|
[case $target_os in
|
configure.ac: Remove uwin* cases.
* configure.ac: Remove uwin* cases.
* config.build: Remove cases for i370-*-opened*, i370-*-mvs*,
i[34567]86-*-sco3.2v5*, i[34567]86-sequent-ptx4*,
i[34567]86-sequent-sysv4*, i[34567]86-*-sysv4*,
i[34567]86-*-udk*, i[34567]86-*-uwin*, i386-*-vsta.
* config.host: Remove cases for i370-*-opened*, i370-*-mvs*,
i[34567]86-*-uwin*, powerpc-*-beos*.
From-SVN: r227077
2015-08-21 19:38:01 +02:00
|
|
|
win32 | pe | cygwin* | mingw32*)
|
2010-09-03 02:02:53 +02:00
|
|
|
# Need to check that we generated the correct relocation for the
|
|
|
|
# .debug_frame section. This was fixed for binutils 2.21.
|
|
|
|
gcc_cv_as_cfi_sections_directive=no
|
|
|
|
if test "x$gcc_cv_objdump" != x; then
|
|
|
|
if $gcc_cv_objdump -j .debug_frame -r conftest.o 2>/dev/null | \
|
|
|
|
grep secrel > /dev/null; then
|
|
|
|
gcc_cv_as_cfi_sections_directive=yes
|
|
|
|
fi
|
|
|
|
fi
|
|
|
|
;;
|
|
|
|
*)
|
|
|
|
gcc_cv_as_cfi_sections_directive=yes
|
|
|
|
;;
|
|
|
|
esac])
|
2010-09-26 06:02:24 +02:00
|
|
|
GCC_TARGET_TEMPLATE(HAVE_GAS_CFI_SECTIONS_DIRECTIVE)
|
2009-10-02 20:52:15 +02:00
|
|
|
AC_DEFINE_UNQUOTED(HAVE_GAS_CFI_SECTIONS_DIRECTIVE,
|
|
|
|
[`if test $gcc_cv_as_cfi_sections_directive = yes;
|
|
|
|
then echo 1; else echo 0; fi`],
|
|
|
|
[Define 0/1 if your assembler supports .cfi_sections.])
|
|
|
|
|
2003-07-12 22:03:14 +02:00
|
|
|
# GAS versions up to and including 2.11.0 may mis-optimize
|
|
|
|
# .eh_frame data.
|
|
|
|
gcc_GAS_CHECK_FEATURE(eh_frame optimization, gcc_cv_as_eh_frame,
|
|
|
|
[elf,2,12,0],,
|
|
|
|
[ .text
|
2001-05-15 03:45:10 +02:00
|
|
|
.LFB1:
|
|
|
|
.4byte 0
|
|
|
|
.L1:
|
|
|
|
.4byte 0
|
|
|
|
.LFE1:
|
|
|
|
.section .eh_frame,"aw",@progbits
|
|
|
|
__FRAME_BEGIN__:
|
|
|
|
.4byte .LECIE1-.LSCIE1
|
|
|
|
.LSCIE1:
|
|
|
|
.4byte 0x0
|
|
|
|
.byte 0x1
|
|
|
|
.ascii "z\0"
|
|
|
|
.byte 0x1
|
|
|
|
.byte 0x78
|
|
|
|
.byte 0x1a
|
|
|
|
.byte 0x0
|
|
|
|
.byte 0x4
|
|
|
|
.4byte 1
|
|
|
|
.p2align 1
|
|
|
|
.LECIE1:
|
|
|
|
.LSFDE1:
|
|
|
|
.4byte .LEFDE1-.LASFDE1
|
|
|
|
.LASFDE1:
|
|
|
|
.4byte .LASFDE1-__FRAME_BEGIN__
|
|
|
|
.4byte .LFB1
|
|
|
|
.4byte .LFE1-.LFB1
|
|
|
|
.byte 0x4
|
|
|
|
.4byte .LFE1-.LFB1
|
|
|
|
.byte 0x4
|
|
|
|
.4byte .L1-.LFB1
|
2003-07-12 22:03:14 +02:00
|
|
|
.LEFDE1:],
|
2004-01-03 19:52:58 +01:00
|
|
|
[ dnl # For autoconf 2.5x, must protect trailing spaces with @&t@.
|
|
|
|
cat > conftest.lit <<EOF
|
2001-05-15 03:45:10 +02:00
|
|
|
0000 10000000 00000000 017a0001 781a0004 .........z..x...
|
|
|
|
0010 01000000 12000000 18000000 00000000 ................
|
2004-01-03 19:52:58 +01:00
|
|
|
0020 08000000 04080000 0044 .........D @&t@
|
2001-07-17 23:51:19 +02:00
|
|
|
EOF
|
2004-01-03 19:52:58 +01:00
|
|
|
cat > conftest.big <<EOF
|
2001-07-17 23:51:19 +02:00
|
|
|
0000 00000010 00000000 017a0001 781a0004 .........z..x...
|
|
|
|
0010 00000001 00000012 00000018 00000000 ................
|
2004-01-03 19:52:58 +01:00
|
|
|
0020 00000008 04000000 0844 .........D @&t@
|
2001-05-15 03:45:10 +02:00
|
|
|
EOF
|
2003-07-12 22:03:14 +02:00
|
|
|
# If the assembler didn't choke, and we can objdump,
|
|
|
|
# and we got the correct data, then succeed.
|
2006-07-04 15:50:40 +02:00
|
|
|
# The text in the here-document typically retains its unix-style line
|
|
|
|
# endings, while the output of objdump will use host line endings.
|
|
|
|
# Therefore, use diff -b for the comparisons.
|
2003-07-12 22:03:14 +02:00
|
|
|
if test x$gcc_cv_objdump != x \
|
|
|
|
&& $gcc_cv_objdump -s -j .eh_frame conftest.o 2>/dev/null \
|
|
|
|
| tail -3 > conftest.got \
|
2006-07-04 15:50:40 +02:00
|
|
|
&& { diff -b conftest.lit conftest.got > /dev/null 2>&1 \
|
|
|
|
|| diff -b conftest.big conftest.got > /dev/null 2>&1; }
|
2003-07-12 22:03:14 +02:00
|
|
|
then
|
|
|
|
gcc_cv_as_eh_frame=yes
|
|
|
|
elif AC_TRY_COMMAND($gcc_cv_as -o conftest.o --traditional-format /dev/null); then
|
|
|
|
gcc_cv_as_eh_frame=buggy
|
|
|
|
else
|
|
|
|
# Uh oh, what do we do now?
|
|
|
|
gcc_cv_as_eh_frame=no
|
|
|
|
fi])
|
|
|
|
|
|
|
|
if test $gcc_cv_as_eh_frame = buggy; then
|
|
|
|
AC_DEFINE(USE_AS_TRADITIONAL_FORMAT, 1,
|
|
|
|
[Define if your assembler mis-optimizes .eh_frame data.])
|
2001-09-11 18:50:05 +02:00
|
|
|
fi
|
|
|
|
|
2003-07-12 22:03:14 +02:00
|
|
|
gcc_GAS_CHECK_FEATURE(section merging support, gcc_cv_as_shf_merge,
|
|
|
|
[elf,2,12,0], [--fatal-warnings],
|
2003-09-23 21:47:00 +02:00
|
|
|
[.section .rodata.str, "aMS", @progbits, 1])
|
2004-09-15 19:03:22 +02:00
|
|
|
if test $gcc_cv_as_shf_merge = no; then
|
|
|
|
gcc_GAS_CHECK_FEATURE(section merging support, gcc_cv_as_shf_merge,
|
|
|
|
[elf,2,12,0], [--fatal-warnings],
|
|
|
|
[.section .rodata.str, "aMS", %progbits, 1])
|
|
|
|
fi
|
2003-09-23 21:47:00 +02:00
|
|
|
AC_DEFINE_UNQUOTED(HAVE_GAS_SHF_MERGE,
|
|
|
|
[`if test $gcc_cv_as_shf_merge = yes; then echo 1; else echo 0; fi`],
|
|
|
|
[Define 0/1 if your assembler supports marking sections with SHF_MERGE flag.])
|
2003-07-12 22:03:14 +02:00
|
|
|
|
2011-05-19 16:29:05 +02:00
|
|
|
gcc_GAS_CHECK_FEATURE([COMDAT group support (GNU as)],
|
|
|
|
gcc_cv_as_comdat_group,
|
2005-05-08 18:58:03 +02:00
|
|
|
[elf,2,16,0], [--fatal-warnings],
|
2004-09-15 19:03:22 +02:00
|
|
|
[.section .text,"axG",@progbits,.foo,comdat])
|
|
|
|
if test $gcc_cv_as_comdat_group = yes; then
|
|
|
|
gcc_cv_as_comdat_group_percent=no
|
2011-05-19 16:29:05 +02:00
|
|
|
gcc_cv_as_comdat_group_group=no
|
2004-09-15 19:03:22 +02:00
|
|
|
else
|
2011-05-19 16:29:05 +02:00
|
|
|
gcc_GAS_CHECK_FEATURE([COMDAT group support (GNU as, %type)],
|
|
|
|
gcc_cv_as_comdat_group_percent,
|
2005-05-08 18:58:03 +02:00
|
|
|
[elf,2,16,0], [--fatal-warnings],
|
2004-09-15 19:03:22 +02:00
|
|
|
[.section .text,"axG",%progbits,.foo,comdat])
|
2011-05-19 16:29:05 +02:00
|
|
|
if test $gcc_cv_as_comdat_group_percent = yes; then
|
|
|
|
gcc_cv_as_comdat_group_group=no
|
|
|
|
else
|
|
|
|
case "${target}" in
|
|
|
|
# Sun as uses a completely different syntax.
|
|
|
|
*-*-solaris2*)
|
|
|
|
case "${target}" in
|
|
|
|
sparc*-*-solaris2*)
|
|
|
|
conftest_s='
|
|
|
|
.group foo,".text%foo",#comdat
|
|
|
|
.section ".text%foo", #alloc,#execinstr,#progbits
|
|
|
|
.globl foo
|
|
|
|
foo:
|
|
|
|
'
|
|
|
|
;;
|
2011-07-07 11:24:16 +02:00
|
|
|
i?86-*-solaris2* | x86_64-*-solaris2.1[[0-9]]*)
|
2011-05-19 16:29:05 +02:00
|
|
|
conftest_s='
|
|
|
|
.group foo,.text%foo,#comdat
|
|
|
|
.section .text%foo, "ax", @progbits
|
|
|
|
.globl foo
|
|
|
|
foo:
|
|
|
|
'
|
|
|
|
;;
|
|
|
|
esac
|
|
|
|
gcc_GAS_CHECK_FEATURE([COMDAT group support (Sun as, .group)],
|
|
|
|
gcc_cv_as_comdat_group_group,
|
|
|
|
,, [$conftest_s])
|
|
|
|
;;
|
|
|
|
esac
|
2014-08-19 12:13:24 +02:00
|
|
|
if test -z "${gcc_cv_as_comdat_group_group+set}"; then
|
|
|
|
gcc_cv_as_comdat_group_group=no
|
|
|
|
fi
|
2011-05-19 16:29:05 +02:00
|
|
|
fi
|
2004-09-15 19:03:22 +02:00
|
|
|
fi
|
2010-04-08 10:41:50 +02:00
|
|
|
if test x"$ld_is_gold" = xyes; then
|
|
|
|
comdat_group=yes
|
|
|
|
elif test $in_tree_ld = yes ; then
|
2009-08-28 17:22:18 +02:00
|
|
|
comdat_group=no
|
|
|
|
if test "$gcc_cv_gld_major_version" -eq 2 -a "$gcc_cv_gld_minor_version" -ge 16 -o "$gcc_cv_gld_major_version" -gt 2 \
|
|
|
|
&& test $in_tree_ld_is_elf = yes; then
|
|
|
|
comdat_group=yes
|
|
|
|
fi
|
2010-04-09 19:32:54 +02:00
|
|
|
elif echo "$ld_ver" | grep GNU > /dev/null; then
|
2005-05-08 18:58:03 +02:00
|
|
|
comdat_group=yes
|
|
|
|
if test 0"$ld_date" -lt 20050308; then
|
|
|
|
if test -n "$ld_date"; then
|
|
|
|
# If there was date string, but was earlier than 2005-03-08, fail
|
|
|
|
comdat_group=no
|
|
|
|
elif test "$ld_vers_major" -lt 2; then
|
|
|
|
comdat_group=no
|
|
|
|
elif test "$ld_vers_major" -eq 2 -a "$ld_vers_minor" -lt 16; then
|
|
|
|
comdat_group=no
|
|
|
|
fi
|
|
|
|
fi
|
2006-02-14 17:46:04 +01:00
|
|
|
else
|
2010-04-09 19:32:54 +02:00
|
|
|
changequote(,)dnl
|
|
|
|
case "${target}" in
|
|
|
|
*-*-solaris2.1[1-9]*)
|
2011-05-19 16:29:05 +02:00
|
|
|
comdat_group=no
|
2010-04-09 19:32:54 +02:00
|
|
|
# Sun ld has COMDAT group support since Solaris 9, but it doesn't
|
|
|
|
# interoperate with GNU as until Solaris 11 build 130, i.e. ld
|
|
|
|
# version 1.688.
|
|
|
|
#
|
2011-05-19 16:29:05 +02:00
|
|
|
# If using Sun as for COMDAT group as emitted by GCC, one needs at
|
|
|
|
# least ld version 1.2267.
|
|
|
|
if test "$ld_vers_major" -gt 1; then
|
2010-04-09 19:32:54 +02:00
|
|
|
comdat_group=yes
|
2011-05-19 16:29:05 +02:00
|
|
|
elif test "x$gas_flag" = xyes && test "$ld_vers_minor" -ge 1688; then
|
|
|
|
comdat_group=yes
|
|
|
|
elif test "$ld_vers_minor" -ge 2267; then
|
|
|
|
comdat_group=yes
|
2010-04-09 19:32:54 +02:00
|
|
|
fi
|
|
|
|
;;
|
|
|
|
*)
|
|
|
|
# Assume linkers other than GNU ld don't support COMDAT group.
|
|
|
|
comdat_group=no
|
|
|
|
;;
|
|
|
|
esac
|
|
|
|
changequote([,])dnl
|
2006-02-14 17:46:04 +01:00
|
|
|
fi
|
2010-04-09 19:32:54 +02:00
|
|
|
# Allow overriding the automatic COMDAT group tests above.
|
|
|
|
AC_ARG_ENABLE(comdat,
|
|
|
|
[AS_HELP_STRING([--enable-comdat], [enable COMDAT group support])],
|
|
|
|
[comdat_group="$enable_comdat"])
|
2006-02-14 17:46:04 +01:00
|
|
|
if test $comdat_group = no; then
|
|
|
|
gcc_cv_as_comdat_group=no
|
|
|
|
gcc_cv_as_comdat_group_percent=no
|
2011-05-19 16:29:05 +02:00
|
|
|
gcc_cv_as_comdat_group_group=no
|
2005-05-08 18:58:03 +02:00
|
|
|
fi
|
|
|
|
AC_DEFINE_UNQUOTED(HAVE_COMDAT_GROUP,
|
2011-05-19 16:29:05 +02:00
|
|
|
[`if test $gcc_cv_as_comdat_group = yes \
|
|
|
|
|| test $gcc_cv_as_comdat_group_percent = yes \
|
|
|
|
|| test $gcc_cv_as_comdat_group_group = yes; then echo 1; else echo 0; fi`],
|
2005-05-08 18:58:03 +02:00
|
|
|
[Define 0/1 if your assembler and linker support COMDAT groups.])
|
2004-09-15 19:03:22 +02:00
|
|
|
|
2009-06-05 01:12:27 +02:00
|
|
|
gcc_GAS_CHECK_FEATURE([line table discriminator support],
|
|
|
|
gcc_cv_as_discriminator,
|
|
|
|
[2,19,51],,
|
|
|
|
[ .text
|
|
|
|
.file 1 "conf.c"
|
|
|
|
.loc 1 1 0 discriminator 1],,
|
|
|
|
[AC_DEFINE(HAVE_GAS_DISCRIMINATOR, 1,
|
|
|
|
[Define if your assembler supports the .loc discriminator sub-directive.])])
|
|
|
|
|
2008-09-19 02:18:42 +02:00
|
|
|
# Thread-local storage - the check is heavily parameterized.
|
configure.in (HAVE_AS_TLS): New test.
* configure.in (HAVE_AS_TLS): New test.
* config.in, configure: Rebuild.
* config/i386/i386.c (TARGET_HAVE_TLS): Set if HAVE_AS_TLS.
(ix86_tls_dialect_string, ix86_tls_dialect): New.
(override_options): Set it.
(tls_model_chars, tls_symbolic_operand): New.
(tls_symbolic_operand_1, global_dynamic_symbolic_operand): New.
(local_dynamic_symbolic_operand, initial_exec_symbolic_operand): New.
(local_exec_symbolic_operand): New.
(get_pic_label_name): Merge into output_set_got.
(ix86_asm_file_end): Emit pic_label_name if defined.
(legitimate_constant_p, constant_address_p): New.
(legitimate_pic_operand_p): New.
(legitimate_pic_address_disp_p): Handle GOTTPOFF, NTPOFF, DTPOFF.
(legitimate_address_p): Likewise.
(ix86_encode_section_info): Rename from i386_; handle tls decls.
(ix86_strip_name_encoding): New.
(get_thread_pointer): New.
(legitimize_address): Handle tls symbols.
(output_pic_addr_const): Handle GOTTPOFF, TPOFF, NTPOFF, DTPOFF.
Remove UNSPEC_PLT.
(struct machine_function): Add some_ld_name.
(get_some_local_dynamic_name, get_some_local_dynamic_name_1): Set it.
(print_operand) [&]: Use it. Handle UNSPEC_TP.
(output_addr_const_extra): New.
(maybe_get_pool_constant): New.
(ix86_split_to_parts): Use it.
(ix86_expand_move): Handle tls symbols.
(ix86_tls_get_addr): New.
* config/i386/i386.h (TARGET_GNU_TLS, TARGET_SUN_TLS): New.
(TARGET_OPTIONS): Add tls-dialect.
(CONSTANT_ADDRESS_P): Use new out-of-line function.
(LEGITIMATE_CONSTANT_P): Likewise.
(LEGITIMATE_PIC_OPERAND_P): Likewise.
(TARGET_STRIP_NAME_ENCODING): New.
(ASM_OUTPUT_LABELREF): New.
(PRINT_OPERAND_PUNCT_VALID_P): Add '&'.
(OUTPUT_ADDR_CONST_EXTRA): New.
(PREDICATE_CODES): Update.
(ix86_tls_dialect, ix86_tls_dialect_string): New.
* config/i386/i386.md: Regroup and renumber unspec constants.
(tls_global_dynamic_gnu, tls_global_dynamic_sun): New.
(tls_local_dynamic_base_gnu, tls_local_dynamic_base_sun): New.
(tls_global_dynamic, tls_local_dynamic_base): New.
(tls_local_dynamic_once): New.
* config/i386/i386-protos.h: Update.
From-SVN: r53812
2002-05-23 23:55:30 +02:00
|
|
|
conftest_s=
|
|
|
|
tls_first_major=
|
|
|
|
tls_first_minor=
|
linux.h (NO_PROFILE_COUNTERS): Define to 1.
* config/i386/linux.h (NO_PROFILE_COUNTERS): Define to 1.
* config/i386/freebsd.h (NO_PROFILE_COUNTERS): Likewise.
* config/i386/netbsd-elf.h (NO_PROFILE_COUNTERS): Likewise.
* config/xtensa/xtensa.h (NO_PROFILE_COUTNERS): Likewise.
* config/darwin.h (NO_PROFILE_COUNTERS): Likewise.
* final.c (NO_PROFILE_COUNTERS): Define to 0 if not defined.
(profile_function): Allow NO_PROFILE_COUNTERS to be non-constant.
* config/rs6000/rs6000.c (output_profile_hook): Likewise.
* configure.in (powerpc*-*, s390*-*): Set tls_as_opt.
Pass it to $gcc_cv_as.
* configure: Rebuilt.
* config/rs6000/rs6000.c (rs6000_abi_name): Remove initializer.
(print_operand): Allow TARGET_AIX to be non-constant.
(rs6000_aix_emit_builtin_unwind_init, rs6000_emit_eh_toc_restore):
Define unconditionally.
(rs6000_elf_declare_function_name): New function.
* config/rs6000/rs6000.md (eh_return): Allow TARGET_AIX to be
non-constant.
* config/rs6000/linux64.h [!RS6000_BI_ARCH] (TARGET_64BIT): Define
to 1.
(DEFAULT_ARCH64_P, RS6000_BI_ARCH_P): Define.
[IN_LIBGCC2] (TARGET_64BIT): Define based on whether __powerpc64__
is defined.
(TARGET_AIX): Define to 1 if TARGET_64BIT.
(PROCESSOR_DEFAULT): Remove.
(TARGET_RELOCATABLE, RS6000_ABI_NAME, INVALID_64BIT,
INVALID_32BIT, SUBSUBTARGET_OVERRIDE_OPTIONS): Define.
[RS6000_BI_ARCH] (OVERRIDE_OPTIONS, ASM_FILE_START): Define.
(ASM_DEFAULT_SPEC, ASM_SPEC, LINK_OS_LINUX_SPEC): Define for both
-m32 and -m64.
(MULTILIB_DEFAULTS): Define.
(SUBSUBTARGET_EXTRA_SPECS): Define.
(ASM_SPEC32, ASM_SPEC64, ASM_SPEC_COMMON): Define.
(TARGET_TOC): Define only if !RS6000_BI_ARCH.
(TARGET_NO_TOC): Remove.
[!RS6000_BI_ARCH] (TARGET_RELOCATABLE, TARGET_EABI,
TARGET_PROTOTYPE): Define to 0.
(NO_PROFILE_COUNTERS): Define to TARGET_64BIT.
(PROFILE_HOOK): Only call output_profile_hook if TARGET_64BIT.
(ADJUST_FIELD_ALIGN, ROUND_TYPE_ALIGN): Adjust to work properly
if !TARGET_64BIT.
(USER_LABEL_PREFIX): Remove.
(JUMP_TABLES_IN_TEXT_SECTION): Define to TARGET_64BIT.
(SETUP_FRAME_ADDRESSES): Only call rs6000_aix_emit_builtin_unwind_init
if TARGET_64BIT.
(TARGET_OS_CPP_BUILTINS): Handle both -m32 and -m64.
(LINK_OS_LINUX_SPEC32, LINK_OS_LINUX_SPEC64): Define.
(STARTFILE_LINUX_SPEC, ENDFILE_LINUX_SPEC): Remove.
(TOC_SECTION_ASM_OP): Define depending on TARGET_64BIT.
(MINIMAL_TOC_SECTION_ASM_OP): Likewise.
(SIZE_TYPE, PTRDIFF_TYPE, WCHAR_TYPE): Define depending on
TARGET_64BIT.
(RS6000_CALL_GLUE): Likewise.
(SAVE_FP_PREFIX, SAVE_FP_SUFFIX, RESTORE_FP_PREFIX,
RESTORE_FP_SUFFIX): Likewise.
(ASM_DECLARE_FUNCTION_NAME): Remove.
(ASM_DECLARE_FUNCTION_SIZE, ASM_OUTPUT_SOURCE_LINE,
DBX_OUTPUT_BRAC, DBX_OUTPUT_NFUN): Only output dot before function
name if TARGET_64BIT.
(ASM_OUTPUT_SPECIAL_POOL_ENTRY_P): Handle both TARGET_64BIT and
!TARGET_64BIT.
(ASM_OUTPUT_REG_PUSH, ASM_OUTPUT_REG_POP): Remove undefs.
(ASM_PREFERRED_EH_DATA_FORMAT): Take TARGET_64BIT into account.
(DRAFT_V4_STRUCT_RET): Define.
(SIGNAL_FRAMESIZE): New enum value.
(MD_FALLBACK_FRAME_STATE_FOR): Define.
* config/rs6000/default64.h: New file.
* config/rs6000/sysv4.h (SUBTARGET_SWITCHES): Add -m32 and -m64
options.
(SUBTARGET_OVERRIDE_OPTIONS): If rs6000_abi_name is NULL, set it
to RS6000_ABI_NAME. Only disallow mixing of -fPIC with -mcall-aixdesc
if !TARGET_64BIT.
[!RS6000_BI_ARCH] (SUBSUBTARGET_OVERRIDE_OPTIONS): Define.
(ASM_DECLARE_FUNCTION_NAME): Use rs6000_elf_declare_function_name
function.
(TARGET_OS_SYSV_CPP_BUILTINS): Define.
(TARGET_OS_CPP_BUILTINS): Use it.
(CPP_SYSV_SPEC): Remove.
(CPP_SPEC): Remove cpp_sysv.
(SUBTARGET_EXTRA_SPECS): Remove cpp_sysv.
Add SUBSUBTARGET_EXTRA_SPECS.
(SUBSUBTARGET_EXTRA_SPECS): Define.
* config/rs6000/biarch64.h: New file.
* config/rs6000/rs6000-protos.h (rs6000_elf_declare_function_name):
New prototype.
* config/rs6000/x-linux64: New file.
* config/rs6000/t-linux64: Build -m64, -m32 and -m32 -msoft-float
multilibs.
* config/rs6000/eabi-ci.asm: Protect with #ifndef __powerpc64__.
* config/rs6000/eabi-cn.asm: Likewise.
* config/rs6000/tramp.asm: Likewise.
* config/rs6000/sol-ci.asm: Likewise.
* config/rs6000/sol-cn.asm: Likewise.
* config/rs6000/linux.h (TARGET_64BIT): Define to 0.
(TARGET_OS_CPP_BUILTINS): Use TARGET_OS_SYSV_CPP_BUILTINS.
* config/rs6000/ppc-asm.h: Move __powerpc64__ section before
_CALL_AIXDESC section.
* config.gcc (powerpc64-*-linux*): Configure a bi-arch compiler,
defaulting to -m64 unless --with-cpu= is one of the 32-bit CPUs
or default32.
Co-Authored-By: Alan Modra <amodra@bigpond.net.au>
From-SVN: r67442
2003-06-04 17:23:42 +02:00
|
|
|
tls_as_opt=
|
configure.in (HAVE_AS_TLS): New test.
* configure.in (HAVE_AS_TLS): New test.
* config.in, configure: Rebuild.
* config/i386/i386.c (TARGET_HAVE_TLS): Set if HAVE_AS_TLS.
(ix86_tls_dialect_string, ix86_tls_dialect): New.
(override_options): Set it.
(tls_model_chars, tls_symbolic_operand): New.
(tls_symbolic_operand_1, global_dynamic_symbolic_operand): New.
(local_dynamic_symbolic_operand, initial_exec_symbolic_operand): New.
(local_exec_symbolic_operand): New.
(get_pic_label_name): Merge into output_set_got.
(ix86_asm_file_end): Emit pic_label_name if defined.
(legitimate_constant_p, constant_address_p): New.
(legitimate_pic_operand_p): New.
(legitimate_pic_address_disp_p): Handle GOTTPOFF, NTPOFF, DTPOFF.
(legitimate_address_p): Likewise.
(ix86_encode_section_info): Rename from i386_; handle tls decls.
(ix86_strip_name_encoding): New.
(get_thread_pointer): New.
(legitimize_address): Handle tls symbols.
(output_pic_addr_const): Handle GOTTPOFF, TPOFF, NTPOFF, DTPOFF.
Remove UNSPEC_PLT.
(struct machine_function): Add some_ld_name.
(get_some_local_dynamic_name, get_some_local_dynamic_name_1): Set it.
(print_operand) [&]: Use it. Handle UNSPEC_TP.
(output_addr_const_extra): New.
(maybe_get_pool_constant): New.
(ix86_split_to_parts): Use it.
(ix86_expand_move): Handle tls symbols.
(ix86_tls_get_addr): New.
* config/i386/i386.h (TARGET_GNU_TLS, TARGET_SUN_TLS): New.
(TARGET_OPTIONS): Add tls-dialect.
(CONSTANT_ADDRESS_P): Use new out-of-line function.
(LEGITIMATE_CONSTANT_P): Likewise.
(LEGITIMATE_PIC_OPERAND_P): Likewise.
(TARGET_STRIP_NAME_ENCODING): New.
(ASM_OUTPUT_LABELREF): New.
(PRINT_OPERAND_PUNCT_VALID_P): Add '&'.
(OUTPUT_ADDR_CONST_EXTRA): New.
(PREDICATE_CODES): Update.
(ix86_tls_dialect, ix86_tls_dialect_string): New.
* config/i386/i386.md: Regroup and renumber unspec constants.
(tls_global_dynamic_gnu, tls_global_dynamic_sun): New.
(tls_local_dynamic_base_gnu, tls_local_dynamic_base_sun): New.
(tls_global_dynamic, tls_local_dynamic_base): New.
(tls_local_dynamic_once): New.
* config/i386/i386-protos.h: Update.
From-SVN: r53812
2002-05-23 23:55:30 +02:00
|
|
|
case "$target" in
|
|
|
|
changequote(,)dnl
|
configure.in (HAVE_AS_TLS): Add alpha tests.
* configure.in (HAVE_AS_TLS): Add alpha tests.
* configure: Rebuild.
* config/alpha/alpha.c (TARGET_AS_TLS): New.
(alpha_tls_size, alpha_tls_size_string): New.
(overide_options): Set it. Always install machine_status hooks.
(input_operand): Accept got tls predicates.
(local_symbol_p): Merge into ...
(local_symbolic_operand): ... here. Reject tls symbols.
(global_symbolic_operand): Likewise.
(tls_symbolic_operand_1, dtp16_symbolic_operand): New.
(dtp32_symbolic_operand, gotdtp_symbolic_operand): New.
(tp16_symbolic_operand, tp32_symbolic_operand): New.
(gottp_symbolic_operand, tls_symbolic_operand_type): New.
(alpha_encode_section_info): Handle TLS symbols.
(alpha_strip_name_encoding): Likewise.
(alpha_legitimate_address_p): Likewise.
(alpha_legitimize_address): Likewise.
(alpha_expand_mov): Early exit to avoid nop moves.
(struct machine_function): Move from unicosmk.h. Add some_ld_name.
(alpha_init_machine_status, alpha_mark_machine_status,
alpha_free_machine_status): Always define.
(get_some_local_dynamic_name, get_some_local_dynamic_name_1): New.
(print_operand, print_operand_address): Add TLS relocs.
* config/alpha/alpha.h (HAVE_AS_TLS): Default 0.
(MASK_TLS_KERNEL, TARGET_TLS_KERNEL): New.
(TARGET_SWITCHES): Add -mtls-kernel.
(alpha_tls_size, alpha_tls_size_string): New.
(TARGET_OPTIONS): Add -mtls-size=.
(reg_class, REG_CLASS_NAMES, REG_CLASS_CONTENTS,
REGNO_REG_CLASS, REG_CLASS_FROM_LETTER): Add R0_REG.
(ASM_OUTPUT_LABELREF): Skip %.
(PRINT_OPERAND_PUNCT_VALID_P): Add &.
(PREDICATE_CODES): Update.
* config/alpha/alpha.md (UNSPEC_TLSGD_CALL, UNSPEC_TLSLDM_CALL,
UNSPEC_TLSGD, UNSPEC_TLSLDM, UNSPEC_DTPREL, UNSPEC_TPREL,
UNSPEC_TP, UNSPECV_SET_TP): New.
(adddi_er_lo16_dtp, adddi_er_hi32_dtp, adddi_er_lo32_dtp,
adddi_er_lo16_tp, adddi_er_hi32_tp, adddi_er_lo32_tp, load_tp,
set_tp, movdi_er_tlsgd, movdi_er_tlsldm, movdi_er_gotdtp,
movdi_er_gottp, call_value_osf_tlsgd, call_value_osf_tlsldm): New.
(call_value_osf_2_er): Accept anything as op4.
* config/alpha/alpha-protos.h: Update.
* config/alpha/unicosmk.h (struct machine_function): Move to alpha.c.
From-SVN: r54125
2002-06-01 02:19:10 +02:00
|
|
|
alpha*-*-*)
|
|
|
|
conftest_s='
|
|
|
|
.section ".tdata","awT",@progbits
|
|
|
|
foo: .long 25
|
|
|
|
.text
|
|
|
|
ldq $27,__tls_get_addr($29) !literal!1
|
|
|
|
lda $16,foo($29) !tlsgd!1
|
|
|
|
jsr $26,($27),__tls_get_addr !lituse_tlsgd!1
|
|
|
|
ldq $27,__tls_get_addr($29) !literal!2
|
|
|
|
lda $16,foo($29) !tlsldm!2
|
|
|
|
jsr $26,($27),__tls_get_addr !lituse_tlsldm!2
|
|
|
|
ldq $1,foo($29) !gotdtprel
|
|
|
|
ldah $2,foo($29) !dtprelhi
|
|
|
|
lda $3,foo($2) !dtprello
|
|
|
|
lda $4,foo($29) !dtprel
|
|
|
|
ldq $1,foo($29) !gottprel
|
|
|
|
ldah $2,foo($29) !tprelhi
|
|
|
|
lda $3,foo($2) !tprello
|
|
|
|
lda $4,foo($29) !tprel'
|
|
|
|
tls_first_major=2
|
|
|
|
tls_first_minor=13
|
2004-01-19 17:57:05 +01:00
|
|
|
tls_as_opt=--fatal-warnings
|
configure.in (HAVE_AS_TLS): Add alpha tests.
* configure.in (HAVE_AS_TLS): Add alpha tests.
* configure: Rebuild.
* config/alpha/alpha.c (TARGET_AS_TLS): New.
(alpha_tls_size, alpha_tls_size_string): New.
(overide_options): Set it. Always install machine_status hooks.
(input_operand): Accept got tls predicates.
(local_symbol_p): Merge into ...
(local_symbolic_operand): ... here. Reject tls symbols.
(global_symbolic_operand): Likewise.
(tls_symbolic_operand_1, dtp16_symbolic_operand): New.
(dtp32_symbolic_operand, gotdtp_symbolic_operand): New.
(tp16_symbolic_operand, tp32_symbolic_operand): New.
(gottp_symbolic_operand, tls_symbolic_operand_type): New.
(alpha_encode_section_info): Handle TLS symbols.
(alpha_strip_name_encoding): Likewise.
(alpha_legitimate_address_p): Likewise.
(alpha_legitimize_address): Likewise.
(alpha_expand_mov): Early exit to avoid nop moves.
(struct machine_function): Move from unicosmk.h. Add some_ld_name.
(alpha_init_machine_status, alpha_mark_machine_status,
alpha_free_machine_status): Always define.
(get_some_local_dynamic_name, get_some_local_dynamic_name_1): New.
(print_operand, print_operand_address): Add TLS relocs.
* config/alpha/alpha.h (HAVE_AS_TLS): Default 0.
(MASK_TLS_KERNEL, TARGET_TLS_KERNEL): New.
(TARGET_SWITCHES): Add -mtls-kernel.
(alpha_tls_size, alpha_tls_size_string): New.
(TARGET_OPTIONS): Add -mtls-size=.
(reg_class, REG_CLASS_NAMES, REG_CLASS_CONTENTS,
REGNO_REG_CLASS, REG_CLASS_FROM_LETTER): Add R0_REG.
(ASM_OUTPUT_LABELREF): Skip %.
(PRINT_OPERAND_PUNCT_VALID_P): Add &.
(PREDICATE_CODES): Update.
* config/alpha/alpha.md (UNSPEC_TLSGD_CALL, UNSPEC_TLSLDM_CALL,
UNSPEC_TLSGD, UNSPEC_TLSLDM, UNSPEC_DTPREL, UNSPEC_TPREL,
UNSPEC_TP, UNSPECV_SET_TP): New.
(adddi_er_lo16_dtp, adddi_er_hi32_dtp, adddi_er_lo32_dtp,
adddi_er_lo16_tp, adddi_er_hi32_tp, adddi_er_lo32_tp, load_tp,
set_tp, movdi_er_tlsgd, movdi_er_tlsldm, movdi_er_gotdtp,
movdi_er_gottp, call_value_osf_tlsgd, call_value_osf_tlsldm): New.
(call_value_osf_2_er): Accept anything as op4.
* config/alpha/alpha-protos.h: Update.
* config/alpha/unicosmk.h (struct machine_function): Move to alpha.c.
From-SVN: r54125
2002-06-01 02:19:10 +02:00
|
|
|
;;
|
2009-03-24 18:46:03 +01:00
|
|
|
cris-*-*|crisv32-*-*)
|
|
|
|
conftest_s='
|
|
|
|
.section ".tdata","awT",@progbits
|
|
|
|
x: .long 25
|
|
|
|
.text
|
|
|
|
move.d x:IE,$r10
|
|
|
|
nop'
|
|
|
|
tls_first_major=2
|
|
|
|
tls_first_minor=20
|
|
|
|
tls_as_opt=--fatal-warnings
|
|
|
|
;;
|
2005-01-26 21:36:07 +01:00
|
|
|
frv*-*-*)
|
|
|
|
conftest_s='
|
|
|
|
.section ".tdata","awT",@progbits
|
|
|
|
x: .long 25
|
|
|
|
.text
|
|
|
|
call #gettlsoff(x)'
|
|
|
|
tls_first_major=2
|
|
|
|
tls_first_minor=14
|
|
|
|
;;
|
configure.ac (hppa*-*-linux*): Check for a TLS capable gas.
* configure.ac (hppa*-*-linux*: Check for a TLS capable gas.
* configure: Regenerate.
* config/pa/pa-protos.h (tls_symbolic_operand): Declare.
(pa_tls_referenced_p): Declare.
* config/pa/pa.c (legitimize_pic_address): Reject TLS operands.
(gen_tls_tga, gen_tls_get_addr, hppa_tls_call): New.
(legitimize_tls_address): New.
(hppa_legitimize_address): Handle TLS addresses.
(pa_tls_symbol_ref_1, pa_tls_referenced_p): New.
(TARGET_CANNOT_FORCE_CONST_MEM): Define.
(emit_move_sequence): Handle TLS addresses.
(pa_encode_section_info): Call default handler to handle common
sections.
* config/pa/pa.h (PA_SYMBOL_REF_TLS_P): New.
(CONSTANT_ADDRESS_P): Reject TLS operands.
(TARGET_HAVE_TLS) [HAVE_AS_TLS]: Define.
* config/pa/pa.md (UNSPEC_TP, UNSPEC_TLSGD, UNSPEC_TLSLDM)
(UNSPEC_TLSLDO, UNSPEC_TLSLDBASE, UNSPEC_TLSIE)
(UNSPEC_TLSLE): Define new constants.
(tgd_load, tld_load, tld_offset_load, tp_load, tie_load, tle_load): New.
* config/pa/predicates.md (symbolic_operand): Reject TLS operands.
(tls_symbolic_operand, tgd_symbolic_operand, tld_symbolic_operand)
(tie_symbolic_operand, tle_symbolic_operand): New
From-SVN: r101648
2005-07-06 04:18:21 +02:00
|
|
|
hppa*-*-linux*)
|
|
|
|
conftest_s='
|
|
|
|
t1: .reg %r20
|
|
|
|
t2: .reg %r21
|
|
|
|
gp: .reg %r19
|
|
|
|
.section ".tdata","awT",@progbits
|
|
|
|
foo: .long 25
|
|
|
|
.text
|
|
|
|
.align 4
|
|
|
|
addil LT%foo-$tls_gdidx$,gp
|
|
|
|
ldo RT%foo-$tls_gdidx$(%r1),%arg0
|
|
|
|
b __tls_get_addr
|
|
|
|
nop
|
|
|
|
addil LT%foo-$tls_ldidx$,gp
|
|
|
|
b __tls_get_addr
|
|
|
|
ldo RT%foo-$tls_ldidx$(%r1),%arg0
|
|
|
|
addil LR%foo-$tls_dtpoff$,%ret0
|
|
|
|
ldo RR%foo-$tls_dtpoff$(%r1),%t1
|
|
|
|
mfctl %cr27,%t1
|
|
|
|
addil LT%foo-$tls_ieoff$,gp
|
|
|
|
ldw RT%foo-$tls_ieoff$(%r1),%t2
|
|
|
|
add %t1,%t2,%t3
|
|
|
|
mfctl %cr27,%t1
|
|
|
|
addil LR%foo-$tls_leoff$,%t1
|
|
|
|
ldo RR%foo-$tls_leoff$(%r1),%t2'
|
|
|
|
tls_first_major=2
|
|
|
|
tls_first_minor=15
|
|
|
|
tls_as_opt=--fatal-warnings
|
|
|
|
;;
|
configure.ac: Add test for ARM TLS support.
* configure.ac: Add test for ARM TLS support.
* configure: Regenerated.
* config/arm/arm-protos.h (legitimize_tls_address)
(arm_tls_referenced_p, tls_mentioned_p)
(arm_output_addr_const_extra): New prototypes.
(thumb_legitimize_pic_address): Delete.
* config/arm/arm.c: Include "gt-arm.h".
(enum tls_reloc): New.
(arm_cannot_copy_insn_p, arm_tls_symbol_p, load_tls_operand)
(pcrel_constant_p, get_tls_get_addr, arm_load_tp)
(arm_call_tls_get_addr, legitimize_tls_address)
(arm_tls_referenced_p, arm_tls_operand_p_1, tls_mentioned_p)
(arm_init_tls_builtins, arm_emit_tls_decoration)
(arm_output_addr_const_extra): New functions.
(TARGET_CANNOT_COPY_INSN_P, TARGET_CANNOT_FORCE_CONST_MEM)
(TARGET_HAVE_TLS): Define.
(target_thread_pointer): New.
(arm_override_options): Handle -mtp=.
(legitimize_pic_address): Ignore UNSPECs.
(arm_legitimate_address_p, thumb_legitimate_address_p): Handle PC
relative symbols.
(arm_legitimize_address, thumb_legitimize_address): Handle TLS.
(tls_get_addr_libfunc): New variable.
(symbol_mentioned_p, label_mentioned_p): Ignore UNSPEC_TLS.
(arm_init_builtins): Call arm_init_tls_builtins.
(arm_expand_builtin): Handle ARM_BUILTIN_THREAD_POINTER.
(arm_encode_section_info): Call default_encode_section_info.
* config/arm/arm.h (TARGET_HARD_TP, TARGET_SOFT_TP): Define.
(enum arm_tp_type): New.
(target_thread_pointer): Add declaration.
(LEGITIMATE_CONSTANT_P): Handle TLS.
(LEGITIMATE_PIC_OPERAND_P): Handle TLS.
(OUTPUT_ADDR_CONST_EXTRA): Call arm_output_addr_const_extra.
(enum arm_builtins): Add ARM_BUILTIN_THREAD_POINTER.
* config/arm/arm.md: Add UNSPEC_TLS.
(movsi): Handle TLS.
(pic_add_dot_plus_four, pic_add_dot_plus_eight): Allow for
non-PIC.
(tls_load_dot_plus_eight): New insn and a peephole to create it.
(load_tp_hard, load_tp_soft): New insns.
* arm.opt: Add -mtp=.
* doc/invoke.texi (ARM Options): Document -mtp.
Co-Authored-By: Paul Brook <paul@codesourcery.com>
Co-Authored-By: Phil Blundell <pb@reciva.com>
From-SVN: r106489
2005-11-04 16:02:51 +01:00
|
|
|
arm*-*-*)
|
|
|
|
conftest_s='
|
|
|
|
.section ".tdata","awT",%progbits
|
|
|
|
foo: .long 25
|
|
|
|
.text
|
|
|
|
.word foo(gottpoff)
|
|
|
|
.word foo(tpoff)
|
|
|
|
.word foo(tlsgd)
|
|
|
|
.word foo(tlsldm)
|
|
|
|
.word foo(tlsldo)'
|
|
|
|
tls_first_major=2
|
|
|
|
tls_first_minor=17
|
|
|
|
;;
|
2014-04-16 11:09:42 +02:00
|
|
|
i[34567]86-*-* | x86_64-*-*)
|
2010-03-24 19:49:49 +01:00
|
|
|
case "$target" in
|
2014-04-25 10:08:41 +02:00
|
|
|
i[34567]86-*-solaris2.* | x86_64-*-solaris2.1[0-9]*)
|
2010-03-24 19:49:49 +01:00
|
|
|
on_solaris=yes
|
2011-07-07 11:24:16 +02:00
|
|
|
;;
|
2010-03-24 19:49:49 +01:00
|
|
|
*)
|
|
|
|
on_solaris=no
|
|
|
|
;;
|
|
|
|
esac
|
|
|
|
if test x$on_solaris = xyes && test x$gas_flag = xno; then
|
|
|
|
conftest_s='
|
|
|
|
.section .tdata,"awt",@progbits'
|
|
|
|
tls_first_major=0
|
|
|
|
tls_first_minor=0
|
2014-03-07 12:30:40 +01:00
|
|
|
tls_section_flag=t
|
2010-03-24 19:49:49 +01:00
|
|
|
changequote([,])dnl
|
|
|
|
AC_DEFINE(TLS_SECTION_ASM_FLAG, 't',
|
|
|
|
[Define to the flag used to mark TLS sections if the default (`T') doesn't work.])
|
|
|
|
changequote(,)dnl
|
|
|
|
else
|
|
|
|
conftest_s='
|
|
|
|
.section ".tdata","awT",@progbits'
|
|
|
|
tls_first_major=2
|
|
|
|
tls_first_minor=14
|
2014-03-07 12:30:40 +01:00
|
|
|
tls_section_flag=T
|
2010-03-24 19:49:49 +01:00
|
|
|
tls_as_opt="--fatal-warnings"
|
|
|
|
fi
|
2014-04-16 11:09:42 +02:00
|
|
|
case "$target" in
|
|
|
|
i[34567]86-*-*)
|
|
|
|
conftest_s="$conftest_s
|
configure.in (HAVE_AS_TLS): New test.
* configure.in (HAVE_AS_TLS): New test.
* config.in, configure: Rebuild.
* config/i386/i386.c (TARGET_HAVE_TLS): Set if HAVE_AS_TLS.
(ix86_tls_dialect_string, ix86_tls_dialect): New.
(override_options): Set it.
(tls_model_chars, tls_symbolic_operand): New.
(tls_symbolic_operand_1, global_dynamic_symbolic_operand): New.
(local_dynamic_symbolic_operand, initial_exec_symbolic_operand): New.
(local_exec_symbolic_operand): New.
(get_pic_label_name): Merge into output_set_got.
(ix86_asm_file_end): Emit pic_label_name if defined.
(legitimate_constant_p, constant_address_p): New.
(legitimate_pic_operand_p): New.
(legitimate_pic_address_disp_p): Handle GOTTPOFF, NTPOFF, DTPOFF.
(legitimate_address_p): Likewise.
(ix86_encode_section_info): Rename from i386_; handle tls decls.
(ix86_strip_name_encoding): New.
(get_thread_pointer): New.
(legitimize_address): Handle tls symbols.
(output_pic_addr_const): Handle GOTTPOFF, TPOFF, NTPOFF, DTPOFF.
Remove UNSPEC_PLT.
(struct machine_function): Add some_ld_name.
(get_some_local_dynamic_name, get_some_local_dynamic_name_1): Set it.
(print_operand) [&]: Use it. Handle UNSPEC_TP.
(output_addr_const_extra): New.
(maybe_get_pool_constant): New.
(ix86_split_to_parts): Use it.
(ix86_expand_move): Handle tls symbols.
(ix86_tls_get_addr): New.
* config/i386/i386.h (TARGET_GNU_TLS, TARGET_SUN_TLS): New.
(TARGET_OPTIONS): Add tls-dialect.
(CONSTANT_ADDRESS_P): Use new out-of-line function.
(LEGITIMATE_CONSTANT_P): Likewise.
(LEGITIMATE_PIC_OPERAND_P): Likewise.
(TARGET_STRIP_NAME_ENCODING): New.
(ASM_OUTPUT_LABELREF): New.
(PRINT_OPERAND_PUNCT_VALID_P): Add '&'.
(OUTPUT_ADDR_CONST_EXTRA): New.
(PREDICATE_CODES): Update.
(ix86_tls_dialect, ix86_tls_dialect_string): New.
* config/i386/i386.md: Regroup and renumber unspec constants.
(tls_global_dynamic_gnu, tls_global_dynamic_sun): New.
(tls_local_dynamic_base_gnu, tls_local_dynamic_base_sun): New.
(tls_global_dynamic, tls_local_dynamic_base): New.
(tls_local_dynamic_once): New.
* config/i386/i386-protos.h: Update.
From-SVN: r53812
2002-05-23 23:55:30 +02:00
|
|
|
foo: .long 25
|
|
|
|
.text
|
|
|
|
movl %gs:0, %eax
|
2010-03-24 19:49:49 +01:00
|
|
|
leal foo@tlsgd(,%ebx,1), %eax
|
|
|
|
leal foo@tlsldm(%ebx), %eax
|
|
|
|
leal foo@dtpoff(%eax), %edx
|
|
|
|
movl foo@gottpoff(%ebx), %eax
|
|
|
|
subl foo@gottpoff(%ebx), %eax
|
|
|
|
addl foo@gotntpoff(%ebx), %eax
|
|
|
|
movl foo@indntpoff, %eax
|
|
|
|
movl \$foo@tpoff, %eax
|
|
|
|
subl \$foo@tpoff, %eax
|
|
|
|
leal foo@ntpoff(%ecx), %eax"
|
2014-04-16 11:09:42 +02:00
|
|
|
;;
|
|
|
|
x86_64-*-*)
|
|
|
|
if test x$on_solaris = xyes; then
|
|
|
|
case $gas_flag in
|
|
|
|
yes) tls_as_opt="$tls_as_opt --64" ;;
|
|
|
|
no) tls_as_opt="$tls_as_opt -xarch=amd64" ;;
|
|
|
|
esac
|
|
|
|
fi
|
|
|
|
conftest_s="$conftest_s
|
i386.c (x86_64_sign_extended_value): Add allow_rip argument.
* config/i386/i386.c (x86_64_sign_extended_value): Add allow_rip
argument. In CM_SMALL_PIC model consider SYMBOL_REFs binding locally or
from constant pool or LABEL_REFs as sign extended if allow_rip.
Change all +-1GB limits to +-16MB.
(x86_64_general_operand, x86_64_szext_general_operand,
x86_64_nonmemory_operand, x86_64_movabs_operand,
x86_64_szext_nonmemory_operand, x86_64_immediate_operand,
legitimate_address_p, ix86_expand_int_movcc): Update callers.
(local_symbolic_operand): Don't allow offsets bigger than +-16MB
in CM_SMALL_PIC model.
(legitimate_pic_address_disp_p): Don't check offsets before
calling local_symbolic_operand.
(legitimize_pic_address): Force offsets bigger than +-16MB into
register.
* config/i386/i386.h (EXTRA_CONSTRAINT, CONST_COSTS): Likewise.
* config/i386/i386-protos.h (x86_64_sign_extended_value): Update
prototype.
* configure.in: Test for @GOTNTPOFF and @INDNTPOFF on IA-32 too.
Add x86-64 test. Set tls_first_minor to 14 on IA-32 and x86-64.
* configure: Rebuilt.
* config/i386/i386.c (x86_64_sign_extended_value): Don't allow TLS
SYMBOL_REFs unless enclosed in UNSPEC. Handle UNSPEC_DTPOFF,
UNSPEC_GOTNTPOFF and UNSPEC_NTPOFF.
(legitimate_address_p): Allow foo@dtpoff(base) even on TARGET_64BIT
-fpic.
(ix86_encode_section_info): Don't ever generate TLSGD or TLSLD for
non-pic code if TARGET_64BIT.
(legitimize_address): Generate 64-bit TLS sequences.
(output_pic_addr_const): Support x86-64 TLS operators.
(i386_output_dwarf_dtprel): Output 64-bit DTPOFF as .long f@DTPOFF, 0.
(print_operand_address): Use %fs instead of %gs on TARGET_64BIT.
Don't append (%rip) in 64-bit TLSGD and TLSLD sequences.
(output_addr_const_extra): Support x86-64 TLS operators.
(maybe_get_pool_constant): Handle TARGET_64BIT -fpic.
(ix86_tls_get_addr): Use __tls_get_addr on TARGET_64BIT
unconditionally.
* config/i386/i386.md (*tls_global_dynamic_gnu): Renamed to...
(*tls_global_dynamic_32_gnu): ..., add !TARGET_64BIT.
(*tls_global_dynamic_sun): Renamed to...
(*tls_global_dynamic_32_sun): ..., add !TARGET_64BIT.
(tls_global_dynamic): Renamed to...
(tls_global_dynamic_32): ... this.
(tls_global_dynamic_64, *tls_global_dynamic_64): New.
(*tls_local_dynamic_base_dynamic_gnu): Renamed to...
(*tls_local_dynamic_base_dynamic_32_gnu): ..., add !TARGET_64BIT.
(*tls_local_dynamic_base_dynamic_sun): Renamed to...
(*tls_local_dynamic_base_dynamic_32_sun): ..., add !TARGET_64BIT.
(tls_local_dynamic_base_dynamic): Renamed to...
(tls_local_dynamic_base_dynamic_32): ... this.
(tls_local_dynamic_base_dynamic_64,
*tls_local_dynamic_base_dynamic_64): New.
(*tls_local_dynamic_once): Renamed to...
(*tls_local_dynamic_32_once): ... this.
* gcc.dg/tls/pic-1.c: New test.
* gcc.dg/tls/nonpic-1.c: New test.
* gcc.dg/20021018-1.c: New test.
From-SVN: r58383
2002-10-21 22:27:14 +02:00
|
|
|
foo: .long 25
|
|
|
|
.text
|
|
|
|
movq %fs:0, %rax
|
2014-04-16 11:09:42 +02:00
|
|
|
leaq foo@tlsgd(%rip), %rdi
|
|
|
|
leaq foo@tlsld(%rip), %rdi
|
|
|
|
leaq foo@dtpoff(%rax), %rdx
|
|
|
|
movq foo@gottpoff(%rip), %rax
|
|
|
|
movq \$foo@tpoff, %rax"
|
|
|
|
;;
|
|
|
|
esac
|
|
|
|
;;
|
configure.in (HAVE_AS_TLS): Add ia64 test.
* configure.in (HAVE_AS_TLS): Add ia64 test.
* configure: Rebuild.
* config/ia64/ia64.c (ia64_tls_size_string, ia64_tls_size): New.
(override_options): Set it.
(TARGET_HAVE_TLS): New.
(sdata_symbolic_operand): Look for 's'.
(tls_symbolic_operand): New.
(ia64_expand_load_address): Abort for tls symbols.
(gen_tls_get_addr): New.
(gen_thread_pointer): New.
(ia64_expand_move): Split out from movdi. Handle tls symbols.
(rtx_needs_barrier): Add new unspecs.
(ia64_encode_section_info): Handle tls symbols.
(ia64_strip_name_encoding): Strip two encoding chars.
* config/ia64/ia64.h (ia64_tls_size, ia64_tls_size_string): New.
(TARGET_TLS14, TARGET_TLS22, TARGET_TLS64): New.
(TARGET_OPTIONS): Add tls-size.
(ENCODE_SECTION_INFO_CHAR): Rename from SDATA_NAME_FLAG_CHAR.
* config/ia64/ia64.md (UNSPEC_LTOFF_DTPMOD, UNSPEC_LTOFF_DTPREL,
UNSPEC_DTPREL, UNSPEC_LTOFF_TPREL, UNSPEC_TPREL, UNSPEC_LD_BASE): New.
(movqi, movhi, movsi, movdi, movti): Use ia64_expand_move.
(movsf, movdf): Likewise.
(movdi_symbolic): Use match_scratch. Don't split if we won't
have a scratch availiable.
(load_ltoff_dtpmod, load_dtprel, load_dtprel64, load_dtprel22,
add_dtprel, add_dtprel14, add_dtprel22, load_ltoff_tprel, load_tprel,
load_tprel64, load_tprel22, add_tprel, add_tprel14, add_tprel22): New.
* config/ia64/ia64-protos.h: Update.
* config/ia64/sysv4.h (ASM_OUTPUT_ALIGNED_DECL_LOCAL): Use
sdata_symbolic_operand.
(ASM_OUTPUT_LABELREF): Strip two characters.
From-SVN: r53874
2002-05-25 21:51:43 +02:00
|
|
|
ia64-*-*)
|
|
|
|
conftest_s='
|
|
|
|
.section ".tdata","awT",@progbits
|
|
|
|
foo: data8 25
|
|
|
|
.text
|
|
|
|
addl r16 = @ltoff(@dtpmod(foo#)), gp
|
|
|
|
addl r17 = @ltoff(@dtprel(foo#)), gp
|
|
|
|
addl r18 = @ltoff(@tprel(foo#)), gp
|
|
|
|
addl r19 = @dtprel(foo#), gp
|
|
|
|
adds r21 = @dtprel(foo#), r13
|
|
|
|
movl r23 = @dtprel(foo#)
|
|
|
|
addl r20 = @tprel(foo#), gp
|
|
|
|
adds r22 = @tprel(foo#), r13
|
|
|
|
movl r24 = @tprel(foo#)'
|
|
|
|
tls_first_major=2
|
|
|
|
tls_first_minor=13
|
2004-01-19 17:57:05 +01:00
|
|
|
tls_as_opt=--fatal-warnings
|
configure.in (HAVE_AS_TLS): Add ia64 test.
* configure.in (HAVE_AS_TLS): Add ia64 test.
* configure: Rebuild.
* config/ia64/ia64.c (ia64_tls_size_string, ia64_tls_size): New.
(override_options): Set it.
(TARGET_HAVE_TLS): New.
(sdata_symbolic_operand): Look for 's'.
(tls_symbolic_operand): New.
(ia64_expand_load_address): Abort for tls symbols.
(gen_tls_get_addr): New.
(gen_thread_pointer): New.
(ia64_expand_move): Split out from movdi. Handle tls symbols.
(rtx_needs_barrier): Add new unspecs.
(ia64_encode_section_info): Handle tls symbols.
(ia64_strip_name_encoding): Strip two encoding chars.
* config/ia64/ia64.h (ia64_tls_size, ia64_tls_size_string): New.
(TARGET_TLS14, TARGET_TLS22, TARGET_TLS64): New.
(TARGET_OPTIONS): Add tls-size.
(ENCODE_SECTION_INFO_CHAR): Rename from SDATA_NAME_FLAG_CHAR.
* config/ia64/ia64.md (UNSPEC_LTOFF_DTPMOD, UNSPEC_LTOFF_DTPREL,
UNSPEC_DTPREL, UNSPEC_LTOFF_TPREL, UNSPEC_TPREL, UNSPEC_LD_BASE): New.
(movqi, movhi, movsi, movdi, movti): Use ia64_expand_move.
(movsf, movdf): Likewise.
(movdi_symbolic): Use match_scratch. Don't split if we won't
have a scratch availiable.
(load_ltoff_dtpmod, load_dtprel, load_dtprel64, load_dtprel22,
add_dtprel, add_dtprel14, add_dtprel22, load_ltoff_tprel, load_tprel,
load_tprel64, load_tprel22, add_tprel, add_tprel14, add_tprel22): New.
* config/ia64/ia64-protos.h: Update.
* config/ia64/sysv4.h (ASM_OUTPUT_ALIGNED_DECL_LOCAL): Use
sdata_symbolic_operand.
(ASM_OUTPUT_LABELREF): Strip two characters.
From-SVN: r53874
2002-05-25 21:51:43 +02:00
|
|
|
;;
|
Add support for TLS in MicroBlaze
* configure.ac: Add MicroBlaze TLS support detection.
* configure: Regenerate.
* config/microblaze/microblaze-protos.h: (microblaze_cannot_force_const_mem,
microblaze_tls_referenced_p, symbol_mentioned_p,
label_mentioned_p): Add prototypes.
* config/microblaze/microblaze.c (microblaze_address_type): Add ADDRESS_TLS
and tls_reloc address types.
(microblaze_address_info): Add tls_reloc.
(TARGET_HAVE_TLS): Define.
(get_tls_get_addr, microblaze_tls_symbol_p, microblaze_tls_operand_p_1,
microblaze_tls_referenced_p, microblaze_cannot_force_const_mem,
symbol_mentioned_p, label_mentioned_p, tls_mentioned_p, load_tls_operand,
microblaze_call_tls_get_addr, microblaze_legitimize_tls_address): New functions.
(microblaze_classify_unspec): Handle UNSPEC_TLS.
(get_base_reg): Use microblaze_tls_symbol_p.
(microblaze_classify_address): Handle TLS.
(microblaze_legitimate_pic_operand): Use symbol_mentioned_p, label_mentioned_p
and microblaze_tls_referenced_p.
(microblaze_legitimize_address): Handle TLS.
(microblaze_address_insns): Handle ADDRESS_TLS.
(pic_address_needs_scratch): Handle TLS.
(print_operand_address): Handle TLS.
(microblaze_expand_prologue): Check TLS_NEEDS_GOT.
(microblaze_expand_move): Handle TLS.
(microblaze_legitimate_constant_p): Check microblaze_cannot_force_const_mem
and microblaze_tls_symbol_p.
(TARGET_CANNOT_FORCE_CONST_MEM): Define.
* config/microblaze/microblaze.h (TLS_NEEDS_GOT): Define
(PIC_OFFSET_TABLE_REGNUM): Set.
* config/microblaze/linux.h (TLS_NEEDS_GOT): Define.
* config/microblaze/microblaze.md (UNSPEC_TLS): Define.
(addsi3, movsi_internal2, movdf_internal): Update constraints
* config/microblaze/predicates.md (arith_plus_operand): Define
(move_operand): Redefine as move_src_operand, check microblaze_tls_referenced_p.
Co-Authored-By: David Holsgrove <david.holsgrove@xilinx.com>
From-SVN: r196659
2013-03-14 16:43:23 +01:00
|
|
|
microblaze*-*-*)
|
|
|
|
conftest_s='
|
|
|
|
.section .tdata,"awT",@progbits
|
|
|
|
x:
|
|
|
|
.word 2
|
|
|
|
.text
|
|
|
|
addik r5,r20,x@TLSGD
|
|
|
|
addik r5,r20,x@TLSLDM'
|
|
|
|
tls_first_major=2
|
|
|
|
tls_first_minor=20
|
|
|
|
tls_as_opt='--fatal-warnings'
|
|
|
|
;;
|
configure.ac: Check for MIPS TLS.
* configure.ac: Check for MIPS TLS.
* configure: Regenerated.
* config/mips/mips-protos.h (enum mips_symbol_type): Add
SYMBOL_TLS, SYMBOL_TLSGD, SYMBOL_TLSLDM, SYMBOL_DTPREL,
SYMBOL_GOTTPREL, and SYMBOL_TPREL.
* config/mips/mips.c (mips_regno_to_class): Handle V1_REG.
(TARGET_HAVE_TLS, TARGET_CANNOT_FORCE_CONST_MEM): Define.
(mips_classify_symbol, mips_symbolic_constant_p)
(mips_symbolic_address_p, mips_symbol_insns): Handle TLS symbols.
(mips_tls_operand_p, mips_call_tls_get_addr)
(mips_legitimize_tls_address, mips_cannot_force_const_mem)
(mips_tls_symbol_ref_1): New functions.
(mips_legitimize_address, mips_legitimize_const_move): Call
mips_legitimize_tls_address.
(override_options): Handle V1_REG and TLS symbols. Disable TLS
for MIPS16.
* config/mips/mips.h (enum reg_class, REG_CLASS_NAMES)
(REG_CLASS_CONTENTS, GR_REG_CLASS_P): Include V1_REG.
(mips_char_to_class): Document V1_REG.
(HAVE_AS_TLS): Provide default.
* config/mips/mips.md (UNSPEC_TLS_LDM, UNSPEC_TLS_GET_TP): New
constants.
(load_got<mode>): Renamed from *load_got<mode>. Allow when
!TARGET_ABICALLS.
(tls_get_tp_<mode>): New instruction.
Co-Authored-By: Joseph Myers <joseph@codesourcery.com>
From-SVN: r96380
2005-03-13 19:03:25 +01:00
|
|
|
mips*-*-*)
|
|
|
|
conftest_s='
|
|
|
|
.section .tdata,"awT",@progbits
|
|
|
|
x:
|
|
|
|
.word 2
|
|
|
|
.text
|
|
|
|
addiu $4, $28, %tlsgd(x)
|
|
|
|
addiu $4, $28, %tlsldm(x)
|
|
|
|
lui $4, %dtprel_hi(x)
|
|
|
|
addiu $4, $4, %dtprel_lo(x)
|
|
|
|
lw $4, %gottprel(x)($28)
|
|
|
|
lui $4, %tprel_hi(x)
|
|
|
|
addiu $4, $4, %tprel_lo(x)'
|
|
|
|
tls_first_major=2
|
|
|
|
tls_first_minor=16
|
|
|
|
tls_as_opt='-32 --fatal-warnings'
|
|
|
|
;;
|
2009-05-18 09:54:44 +02:00
|
|
|
m68k-*-*)
|
|
|
|
conftest_s='
|
|
|
|
.section .tdata,"awT",@progbits
|
|
|
|
x:
|
|
|
|
.word 2
|
|
|
|
.text
|
|
|
|
foo:
|
|
|
|
move.l x@TLSGD(%a5),%a0
|
|
|
|
move.l x@TLSLDM(%a5),%a0
|
|
|
|
move.l x@TLSLDO(%a5),%a0
|
|
|
|
move.l x@TLSIE(%a5),%a0
|
|
|
|
move.l x@TLSLE(%a5),%a0'
|
|
|
|
tls_first_major=2
|
|
|
|
tls_first_minor=19
|
|
|
|
tls_as_opt='--fatal-warnings'
|
|
|
|
;;
|
2013-12-31 08:05:35 +01:00
|
|
|
nios2-*-*)
|
|
|
|
conftest_s='
|
|
|
|
.section ".tdata","awT",@progbits'
|
|
|
|
tls_first_major=2
|
|
|
|
tls_first_minor=23
|
|
|
|
tls_as_opt="--fatal-warnings"
|
|
|
|
;;
|
2012-10-23 19:35:16 +02:00
|
|
|
aarch64*-*-*)
|
|
|
|
conftest_s='
|
|
|
|
.section ".tdata","awT",%progbits
|
|
|
|
foo: .long 25
|
|
|
|
.text
|
|
|
|
adrp x0, :tlsgd:x
|
|
|
|
add x0, x0, #:tlsgd_lo12:x
|
|
|
|
bl __tls_get_addr
|
|
|
|
nop'
|
|
|
|
tls_first_major=2
|
|
|
|
tls_first_minor=20
|
|
|
|
tls_as_opt='--fatal-warnings'
|
|
|
|
;;
|
2013-01-10 17:00:44 +01:00
|
|
|
powerpc-ibm-aix*)
|
|
|
|
conftest_s='
|
|
|
|
.extern __get_tpointer
|
|
|
|
.toc
|
|
|
|
LC..1:
|
|
|
|
.tc a[TC],a[TL]@le
|
|
|
|
.csect .text[PR]
|
|
|
|
.tlstest:
|
|
|
|
lwz 9,LC..1(2)
|
|
|
|
bla __get_tpointer
|
|
|
|
lwzx 3,9,3
|
|
|
|
.globl a
|
|
|
|
.csect a[TL],4
|
|
|
|
a:
|
|
|
|
.space 4'
|
|
|
|
tls_first_major=0
|
|
|
|
tls_first_minor=0
|
|
|
|
;;
|
2013-05-09 09:26:56 +02:00
|
|
|
powerpc64*-*-*)
|
configure.in (HAVE_AS_TLS): Add powerpc and powerpc64 tests.
2003-05-12 Janis Johnson <janis187@us.ibm.com>
Alan Modra <amodra@bigpond.net.au>
Jakub Jelinek <jakub@redhat.com>
* configure.in (HAVE_AS_TLS): Add powerpc and powerpc64 tests.
* configure: Rebuild.
* config/rs6000/rs6000-protos.h: Update.
* config/rs6000/rs6000.c (rs6000_tls_size): New.
(rs6000_tls_size_string): New.
(rs6000_parse_tls_size_option): New.
(rs6000_legitimize_tls_address): New.
(rs6000_tls_get_addr): New.
(rs6000_got_sym): New.
(rs6000_tls_symbol_ref): New.
(rs6000_tls_symbol_ref_1): New.
(rs6000_get_some_local_dynamic_name): New.
(rs6000_get_some_local_dynamic_name_1): New.
(TARGET_HAVE_TLS): New.
(TARGET_CANNOT_FORCE_CONST_MEM): New.
(rs6000_override_options): Handle -mtls-size option.
(constant_pool_expr_1): Handle TLS symbols.
(rs6000_legitimize_address): Handle TLS symbols.
(rs6000_tls_referenced_p): New.
(rs6000_legitimate_address): Handle TLS symbols.
(rs6000_emit_move): Handle TLS symbols.
(print_operand): Handle TLS symbols.
(uses_TOC): Handle TLS symbols.
(rs6000_emit_prologue): Use symbol for unspec constant.
* config/rs6000/rs6000.h (HAVE_AS_TLS): New.
(some_ld_name): New.
(LEGITIMATE_CONSTANT_P): Handle TLS symbols.
(PRINT_OPERAND_PUNCT_VALID_P): Handle TLS symbols.
(PREDICATE_CODES): Add rs6000_tls_symbol_ref.
* config/rs6000/rs6000.md (load_toc_v4_PIC_1, load_toc_v4_PIC_1b):
Support TLS.
(tls_gd_32, tls_gd_64, tls_ld_32, tls_ld_64, tls_dtprel_32,
tls_dtprel_64, tls_dtprel_ha_32, tls_dtprel_ha_64, tls_dtprel_lo_32,
tls_dtprel_lo_64, tls_got_dtprel_32, tls_got_dtprel_64, tls_tprel_32,
tls_tprel_64, tls_tprel_ha_32, tls_tprel_ha_64, tls_tprel_lo_32,
tls_tprel_lo_64, tls_got_tprel_32, tls_got_tprel_64, tls_tls_32,
tls_tls_64): New.
* config/rs6000/sysv4.h (SUBTARGET_OPTIONS): Add tls_size.
Co-Authored-By: Alan Modra <amodra@bigpond.net.au>
Co-Authored-By: Jakub Jelinek <jakub@redhat.com>
From-SVN: r66742
2003-05-13 00:30:31 +02:00
|
|
|
conftest_s='
|
|
|
|
.section ".tdata","awT",@progbits
|
|
|
|
.align 3
|
|
|
|
ld0: .space 8
|
|
|
|
ld1: .space 8
|
|
|
|
x1: .space 8
|
|
|
|
x2: .space 8
|
|
|
|
x3: .space 8
|
|
|
|
.text
|
|
|
|
addi 3,2,ld0@got@tlsgd
|
|
|
|
bl .__tls_get_addr
|
|
|
|
nop
|
|
|
|
addi 3,2,ld1@toc
|
|
|
|
bl .__tls_get_addr
|
|
|
|
nop
|
|
|
|
addi 3,2,x1@got@tlsld
|
|
|
|
bl .__tls_get_addr
|
|
|
|
nop
|
|
|
|
addi 9,3,x1@dtprel
|
|
|
|
bl .__tls_get_addr
|
|
|
|
nop
|
|
|
|
addis 9,3,x2@dtprel@ha
|
|
|
|
addi 9,9,x2@dtprel@l
|
|
|
|
bl .__tls_get_addr
|
|
|
|
nop
|
|
|
|
ld 9,x3@got@dtprel(2)
|
|
|
|
add 9,9,3
|
|
|
|
bl .__tls_get_addr
|
|
|
|
nop'
|
|
|
|
tls_first_major=2
|
|
|
|
tls_first_minor=14
|
2004-01-19 17:57:05 +01:00
|
|
|
tls_as_opt="-a64 --fatal-warnings"
|
configure.in (HAVE_AS_TLS): Add powerpc and powerpc64 tests.
2003-05-12 Janis Johnson <janis187@us.ibm.com>
Alan Modra <amodra@bigpond.net.au>
Jakub Jelinek <jakub@redhat.com>
* configure.in (HAVE_AS_TLS): Add powerpc and powerpc64 tests.
* configure: Rebuild.
* config/rs6000/rs6000-protos.h: Update.
* config/rs6000/rs6000.c (rs6000_tls_size): New.
(rs6000_tls_size_string): New.
(rs6000_parse_tls_size_option): New.
(rs6000_legitimize_tls_address): New.
(rs6000_tls_get_addr): New.
(rs6000_got_sym): New.
(rs6000_tls_symbol_ref): New.
(rs6000_tls_symbol_ref_1): New.
(rs6000_get_some_local_dynamic_name): New.
(rs6000_get_some_local_dynamic_name_1): New.
(TARGET_HAVE_TLS): New.
(TARGET_CANNOT_FORCE_CONST_MEM): New.
(rs6000_override_options): Handle -mtls-size option.
(constant_pool_expr_1): Handle TLS symbols.
(rs6000_legitimize_address): Handle TLS symbols.
(rs6000_tls_referenced_p): New.
(rs6000_legitimate_address): Handle TLS symbols.
(rs6000_emit_move): Handle TLS symbols.
(print_operand): Handle TLS symbols.
(uses_TOC): Handle TLS symbols.
(rs6000_emit_prologue): Use symbol for unspec constant.
* config/rs6000/rs6000.h (HAVE_AS_TLS): New.
(some_ld_name): New.
(LEGITIMATE_CONSTANT_P): Handle TLS symbols.
(PRINT_OPERAND_PUNCT_VALID_P): Handle TLS symbols.
(PREDICATE_CODES): Add rs6000_tls_symbol_ref.
* config/rs6000/rs6000.md (load_toc_v4_PIC_1, load_toc_v4_PIC_1b):
Support TLS.
(tls_gd_32, tls_gd_64, tls_ld_32, tls_ld_64, tls_dtprel_32,
tls_dtprel_64, tls_dtprel_ha_32, tls_dtprel_ha_64, tls_dtprel_lo_32,
tls_dtprel_lo_64, tls_got_dtprel_32, tls_got_dtprel_64, tls_tprel_32,
tls_tprel_64, tls_tprel_ha_32, tls_tprel_ha_64, tls_tprel_lo_32,
tls_tprel_lo_64, tls_got_tprel_32, tls_got_tprel_64, tls_tls_32,
tls_tls_64): New.
* config/rs6000/sysv4.h (SUBTARGET_OPTIONS): Add tls_size.
Co-Authored-By: Alan Modra <amodra@bigpond.net.au>
Co-Authored-By: Jakub Jelinek <jakub@redhat.com>
From-SVN: r66742
2003-05-13 00:30:31 +02:00
|
|
|
;;
|
2013-05-10 04:07:53 +02:00
|
|
|
powerpc*-*-*)
|
|
|
|
conftest_s='
|
|
|
|
.section ".tdata","awT",@progbits
|
|
|
|
.align 2
|
|
|
|
ld0: .space 4
|
|
|
|
ld1: .space 4
|
|
|
|
x1: .space 4
|
|
|
|
x2: .space 4
|
|
|
|
x3: .space 4
|
|
|
|
.text
|
|
|
|
addi 3,31,ld0@got@tlsgd
|
|
|
|
bl __tls_get_addr
|
|
|
|
addi 3,31,x1@got@tlsld
|
|
|
|
bl __tls_get_addr
|
|
|
|
addi 9,3,x1@dtprel
|
|
|
|
addis 9,3,x2@dtprel@ha
|
|
|
|
addi 9,9,x2@dtprel@l
|
|
|
|
lwz 9,x3@got@tprel(31)
|
|
|
|
add 9,9,x@tls
|
|
|
|
addi 9,2,x1@tprel
|
|
|
|
addis 9,2,x2@tprel@ha
|
|
|
|
addi 9,9,x2@tprel@l'
|
|
|
|
tls_first_major=2
|
|
|
|
tls_first_minor=14
|
|
|
|
tls_as_opt="-a32 --fatal-warnings"
|
|
|
|
;;
|
configure.in (HAVE_AS_TLS): Add s390-*-* and s390x-*-* cases.
* configure.in (HAVE_AS_TLS): Add s390-*-* and s390x-*-* cases.
* configure: Regenerate.
* config/s390/s390-protos.h (tls_symbolic_operand): Add prototype.
(tls_symbolic_reference_mentioned_p): Add prototype.
(s390_tls_get_offset): Add prototype.
(emit_pic_move): Remove prototype, replace by ...
(emit_symbolic_move): .. this new prototype.
* config/s390/s390.c (TARGET_HAVE_TLS): Conditionally define.
(tls_model_chars): New global variable.
(s390_encode_section_info): Encode TLS model.
Use targetm.binds_local_p to check for local symbols.
(s390_strip_name_encoding): New function.
(TARGET_STRIP_NAME_ENCODING): Define.
(get_thread_pointer): New function.
(legitimize_tls_address): New function.
(legitimize_address): Call it.
(emit_pic_move): Remove, replace by ...
(emit_symbolic_move): ... this new function.
(larl_operand): Handle TLS operands.
(legitimate_constant_p): Likewise.
(s390_decompose_address): Likewise.
(s390_cannot_force_const_mem): New function.
(TARGET_CANNOT_FORCE_CONST_MEM): Define.
(s390_output_symbolic_const): Handle TLS unspecs.
(print_operand): New code 'J'.
(machine_function): Add struct member 'some_ld_name'.
(get_some_local_dynamic_name, get_some_local_dynamic_name_1): New.
(enum s390_builtin): New type.
(code_for_builtin_64, code_for_builtin_31): New global variables.
(s390_init_builtins, s390_expand_builtin): New functions.
(TARGET_INIT_BUILTINS, TARGET_EXPAND_BUILTIN): Define.
* config/s390/s390.h (TLS_SYMBOLIC_CONST): New macro.
(ASM_OUTPUT_LABELREF): Define.
(ASM_OUTPUT_SPECIAL_POOL_ENTRY): Handle TLS constants.
* config/s390/s390.md: Define TLS UNSPEC constants.
("movdi", "movsi"): Handle TLS operands.
("get_tp_64", "get_tp_31", "set_tp_64", "set_tp_31"): New insns.
("*tls_load_64", "*tls_load_31"): New insns.
("call_value_tls", "call_value_tls_exp"): New expanders.
("brasl_tls", "bras_tls", "basr_tls_64", "basr_tls_31",
"bas_tls_64", "bas_tls_31"): New insns.
From-SVN: r61714
2003-01-24 18:10:22 +01:00
|
|
|
s390-*-*)
|
|
|
|
conftest_s='
|
|
|
|
.section ".tdata","awT",@progbits
|
|
|
|
foo: .long 25
|
|
|
|
.text
|
|
|
|
.long foo@TLSGD
|
|
|
|
.long foo@TLSLDM
|
|
|
|
.long foo@DTPOFF
|
|
|
|
.long foo@NTPOFF
|
|
|
|
.long foo@GOTNTPOFF
|
|
|
|
.long foo@INDNTPOFF
|
|
|
|
l %r1,foo@GOTNTPOFF(%r12)
|
|
|
|
l %r1,0(%r1):tls_load:foo
|
|
|
|
bas %r14,0(%r1,%r13):tls_gdcall:foo
|
|
|
|
bas %r14,0(%r1,%r13):tls_ldcall:foo'
|
|
|
|
tls_first_major=2
|
|
|
|
tls_first_minor=14
|
2004-01-19 17:57:05 +01:00
|
|
|
tls_as_opt="-m31 --fatal-warnings"
|
configure.in (HAVE_AS_TLS): Add s390-*-* and s390x-*-* cases.
* configure.in (HAVE_AS_TLS): Add s390-*-* and s390x-*-* cases.
* configure: Regenerate.
* config/s390/s390-protos.h (tls_symbolic_operand): Add prototype.
(tls_symbolic_reference_mentioned_p): Add prototype.
(s390_tls_get_offset): Add prototype.
(emit_pic_move): Remove prototype, replace by ...
(emit_symbolic_move): .. this new prototype.
* config/s390/s390.c (TARGET_HAVE_TLS): Conditionally define.
(tls_model_chars): New global variable.
(s390_encode_section_info): Encode TLS model.
Use targetm.binds_local_p to check for local symbols.
(s390_strip_name_encoding): New function.
(TARGET_STRIP_NAME_ENCODING): Define.
(get_thread_pointer): New function.
(legitimize_tls_address): New function.
(legitimize_address): Call it.
(emit_pic_move): Remove, replace by ...
(emit_symbolic_move): ... this new function.
(larl_operand): Handle TLS operands.
(legitimate_constant_p): Likewise.
(s390_decompose_address): Likewise.
(s390_cannot_force_const_mem): New function.
(TARGET_CANNOT_FORCE_CONST_MEM): Define.
(s390_output_symbolic_const): Handle TLS unspecs.
(print_operand): New code 'J'.
(machine_function): Add struct member 'some_ld_name'.
(get_some_local_dynamic_name, get_some_local_dynamic_name_1): New.
(enum s390_builtin): New type.
(code_for_builtin_64, code_for_builtin_31): New global variables.
(s390_init_builtins, s390_expand_builtin): New functions.
(TARGET_INIT_BUILTINS, TARGET_EXPAND_BUILTIN): Define.
* config/s390/s390.h (TLS_SYMBOLIC_CONST): New macro.
(ASM_OUTPUT_LABELREF): Define.
(ASM_OUTPUT_SPECIAL_POOL_ENTRY): Handle TLS constants.
* config/s390/s390.md: Define TLS UNSPEC constants.
("movdi", "movsi"): Handle TLS operands.
("get_tp_64", "get_tp_31", "set_tp_64", "set_tp_31"): New insns.
("*tls_load_64", "*tls_load_31"): New insns.
("call_value_tls", "call_value_tls_exp"): New expanders.
("brasl_tls", "bras_tls", "basr_tls_64", "basr_tls_31",
"bas_tls_64", "bas_tls_31"): New insns.
From-SVN: r61714
2003-01-24 18:10:22 +01:00
|
|
|
;;
|
|
|
|
s390x-*-*)
|
|
|
|
conftest_s='
|
|
|
|
.section ".tdata","awT",@progbits
|
|
|
|
foo: .long 25
|
|
|
|
.text
|
|
|
|
.quad foo@TLSGD
|
|
|
|
.quad foo@TLSLDM
|
|
|
|
.quad foo@DTPOFF
|
|
|
|
.quad foo@NTPOFF
|
|
|
|
.quad foo@GOTNTPOFF
|
|
|
|
lg %r1,foo@GOTNTPOFF(%r12)
|
|
|
|
larl %r1,foo@INDNTPOFF
|
|
|
|
brasl %r14,__tls_get_offset@PLT:tls_gdcall:foo
|
|
|
|
brasl %r14,__tls_get_offset@PLT:tls_ldcall:foo'
|
|
|
|
tls_first_major=2
|
|
|
|
tls_first_minor=14
|
2004-01-19 17:57:05 +01:00
|
|
|
tls_as_opt="-m64 -Aesame --fatal-warnings"
|
configure.in (HAVE_AS_TLS): Add s390-*-* and s390x-*-* cases.
* configure.in (HAVE_AS_TLS): Add s390-*-* and s390x-*-* cases.
* configure: Regenerate.
* config/s390/s390-protos.h (tls_symbolic_operand): Add prototype.
(tls_symbolic_reference_mentioned_p): Add prototype.
(s390_tls_get_offset): Add prototype.
(emit_pic_move): Remove prototype, replace by ...
(emit_symbolic_move): .. this new prototype.
* config/s390/s390.c (TARGET_HAVE_TLS): Conditionally define.
(tls_model_chars): New global variable.
(s390_encode_section_info): Encode TLS model.
Use targetm.binds_local_p to check for local symbols.
(s390_strip_name_encoding): New function.
(TARGET_STRIP_NAME_ENCODING): Define.
(get_thread_pointer): New function.
(legitimize_tls_address): New function.
(legitimize_address): Call it.
(emit_pic_move): Remove, replace by ...
(emit_symbolic_move): ... this new function.
(larl_operand): Handle TLS operands.
(legitimate_constant_p): Likewise.
(s390_decompose_address): Likewise.
(s390_cannot_force_const_mem): New function.
(TARGET_CANNOT_FORCE_CONST_MEM): Define.
(s390_output_symbolic_const): Handle TLS unspecs.
(print_operand): New code 'J'.
(machine_function): Add struct member 'some_ld_name'.
(get_some_local_dynamic_name, get_some_local_dynamic_name_1): New.
(enum s390_builtin): New type.
(code_for_builtin_64, code_for_builtin_31): New global variables.
(s390_init_builtins, s390_expand_builtin): New functions.
(TARGET_INIT_BUILTINS, TARGET_EXPAND_BUILTIN): Define.
* config/s390/s390.h (TLS_SYMBOLIC_CONST): New macro.
(ASM_OUTPUT_LABELREF): Define.
(ASM_OUTPUT_SPECIAL_POOL_ENTRY): Handle TLS constants.
* config/s390/s390.md: Define TLS UNSPEC constants.
("movdi", "movsi"): Handle TLS operands.
("get_tp_64", "get_tp_31", "set_tp_64", "set_tp_31"): New insns.
("*tls_load_64", "*tls_load_31"): New insns.
("call_value_tls", "call_value_tls_exp"): New expanders.
("brasl_tls", "bras_tls", "basr_tls_64", "basr_tls_31",
"bas_tls_64", "bas_tls_31"): New insns.
From-SVN: r61714
2003-01-24 18:10:22 +01:00
|
|
|
;;
|
2015-09-15 02:20:14 +02:00
|
|
|
sh-*-* | sh[123456789lbe]*-*-*)
|
2003-10-10 08:03:08 +02:00
|
|
|
conftest_s='
|
|
|
|
.section ".tdata","awT",@progbits
|
|
|
|
foo: .long 25
|
|
|
|
.text
|
|
|
|
.long foo@TLSGD
|
|
|
|
.long foo@TLSLDM
|
|
|
|
.long foo@DTPOFF
|
|
|
|
.long foo@GOTTPOFF
|
|
|
|
.long foo@TPOFF'
|
|
|
|
tls_first_major=2
|
|
|
|
tls_first_minor=13
|
2004-01-19 17:57:05 +01:00
|
|
|
tls_as_opt=--fatal-warnings
|
2003-10-10 08:03:08 +02:00
|
|
|
;;
|
sparc.c (struct machine_function): New type.
* config/sparc/sparc.c (struct machine_function): New type.
(TARGET_HAVE_TLS, TARGET_CANNOT_FORCE_CONST_MEM): Define.
(sparc_override_options): Initialize init_machine_status.
(tls_symbolic_operand, tgd_symbolic_operand, tld_symbolic_operand,
tie_symbolic_operand, tle_symbolic_operand): New functions.
(symbolic_operand): Disallow tls_symbolic_operand.
(symbolic_memory_operand): Likewise.
(tls_call_delay, sparc_cannot_force_const_mem, legitimate_constant_p,
constant_address_p, legitimate_pic_operand_p, legitimate_address_p):
New functions.
(sparc_tls_symbol): New variable.
(sparc_tls_get_addr, sparc_tls_got, legitimize_tls_address,
legitimize_address): New functions.
(print_operand): Handle %&.
(sparc_init_machine_status, get_some_local_dynamic_name,
get_some_local_dynamic_name_1): New functions.
(sparc_output_dwarf_dtprel): New function.
* config/sparc/sparc.h (CONSTANT_ADDRESS_P): Moved into
constant_address_p.
(LEGITIMATE_PIC_OPERAND_P): Moved into legitimate_pic_operand_p.
(LEGITIMATE_CONSTANT_P): Moved into legitimate_constant_p.
(GO_IF_LEGITIMATE_ADDRESS): Moved into legitimate_address_p.
(LEGITIMIZE_ADDRESS): Moved into legitimize_address.
(PRINT_OPERAND_PUNCT_VALID_P): Add '&'.
(TARGET_TLS, TARGET_SUN_TLS, TARGET_GNU_TLS): Define.
(ASM_OUTPUT_DWARF_DTPREL): Define.
(PREDICATE_CODES): Add tgd_symbolic_operand, tld_symbolic_operand,
tie_symbolic_operand, tle_symbolic_operand.
* config/sparc/sparc.md (UNSPEC_TLSGD, UNSPEC_TLSLDM, UNSPEC_TLSLDO,
UNSPEC_TLSIE, UNSPEC_TLSLE, UNSPEC_TLSLD_BASE): New constants.
(tls_call_delay): New attribute.
(in_call_delay): Use it.
(movqi, movhi, movsi, movdi): Call legitimize_tls_address if needed.
(tgd_hi22, tgd_lo10, tgd_add32, tgd_add64, tgd_call32, tgd_call64,
tldm_hi22, tldm_lo10, tldm_add32, tldm_add64, tldm_call32, tldm_call64,
tldo_hix22, tldo_lox10, tldo_add32, tldo_add64, tie_hi22, tie_lo10,
tie_ld32, tie_ld64, tie_add32, tie_add64, tle_hix22_sp32,
tle_lox10_sp32, tle_hix22_sp64, tle_lox10_sp64): New insns.
(tldo_ldub_sp32, tldo_ldub1_sp32, tldo_ldub2_sp32, tldo_ldsb1_sp32,
tldo_ldsb2_sp32, tldo_ldub_sp64, tldo_ldub1_sp64, tldo_ldub2_sp64,
tldo_ldub3_sp64, tldo_ldsb1_sp64, tldo_ldsb2_sp64, tldo_ldsb3_sp64,
tldo_lduh_sp32, tldo_lduh1_sp32, tldo_ldsh1_sp32, tldo_lduh_sp64,
tldo_lduh1_sp64, tldo_lduh2_sp64, tldo_ldsh1_sp64, tldo_ldsh2_sp64,
tldo_lduw_sp32, tldo_lduw_sp64, tldo_lduw1_sp64, tldo_ldsw1_sp64,
tldo_ldx_sp64, tldo_stb_sp32, tldo_stb_sp64, tldo_sth_sp32,
tldo_sth_sp64, tldo_stw_sp32, tldo_stw_sp64, tldo_stx_sp64): New
insns.
* config/sparc/sparc-protos.h (legitimate_constant_p,
constant_address_p, legitimate_pic_operand_p, legitimate_address_p,
legitimize_tls_address, legitimize_address, tls_symbolic_operand,
tls_call_delay, sparc_output_dwarf_dtprel): New prototypes.
* config/sparc/linux.h (TARGET_GNU_TLS, TARGET_SUN_TLS): Define.
* config/sparc/linux64.h (TARGET_GNU_TLS, TARGET_SUN_TLS): Likewise.
* configure.in (sparc*-*-*): Add TLS check.
* configure: Rebuilt.
From-SVN: r71202
2003-09-08 08:57:05 +02:00
|
|
|
sparc*-*-*)
|
2004-01-19 17:57:05 +01:00
|
|
|
case "$target" in
|
|
|
|
sparc*-sun-solaris2.*)
|
|
|
|
on_solaris=yes
|
|
|
|
;;
|
|
|
|
*)
|
|
|
|
on_solaris=no
|
|
|
|
;;
|
|
|
|
esac
|
|
|
|
if test x$on_solaris = xyes && test x$gas_flag = xno; then
|
|
|
|
conftest_s='
|
2010-07-23 19:58:57 +02:00
|
|
|
.section ".tdata",#alloc,#write,#tls'
|
2004-01-19 17:57:05 +01:00
|
|
|
tls_first_major=0
|
|
|
|
tls_first_minor=0
|
|
|
|
else
|
|
|
|
conftest_s='
|
2010-07-23 19:58:57 +02:00
|
|
|
.section ".tdata","awT",@progbits'
|
|
|
|
tls_first_major=2
|
|
|
|
tls_first_minor=14
|
|
|
|
tls_as_opt="-32 --fatal-warnings"
|
|
|
|
fi
|
|
|
|
conftest_s="$conftest_s
|
sparc.c (struct machine_function): New type.
* config/sparc/sparc.c (struct machine_function): New type.
(TARGET_HAVE_TLS, TARGET_CANNOT_FORCE_CONST_MEM): Define.
(sparc_override_options): Initialize init_machine_status.
(tls_symbolic_operand, tgd_symbolic_operand, tld_symbolic_operand,
tie_symbolic_operand, tle_symbolic_operand): New functions.
(symbolic_operand): Disallow tls_symbolic_operand.
(symbolic_memory_operand): Likewise.
(tls_call_delay, sparc_cannot_force_const_mem, legitimate_constant_p,
constant_address_p, legitimate_pic_operand_p, legitimate_address_p):
New functions.
(sparc_tls_symbol): New variable.
(sparc_tls_get_addr, sparc_tls_got, legitimize_tls_address,
legitimize_address): New functions.
(print_operand): Handle %&.
(sparc_init_machine_status, get_some_local_dynamic_name,
get_some_local_dynamic_name_1): New functions.
(sparc_output_dwarf_dtprel): New function.
* config/sparc/sparc.h (CONSTANT_ADDRESS_P): Moved into
constant_address_p.
(LEGITIMATE_PIC_OPERAND_P): Moved into legitimate_pic_operand_p.
(LEGITIMATE_CONSTANT_P): Moved into legitimate_constant_p.
(GO_IF_LEGITIMATE_ADDRESS): Moved into legitimate_address_p.
(LEGITIMIZE_ADDRESS): Moved into legitimize_address.
(PRINT_OPERAND_PUNCT_VALID_P): Add '&'.
(TARGET_TLS, TARGET_SUN_TLS, TARGET_GNU_TLS): Define.
(ASM_OUTPUT_DWARF_DTPREL): Define.
(PREDICATE_CODES): Add tgd_symbolic_operand, tld_symbolic_operand,
tie_symbolic_operand, tle_symbolic_operand.
* config/sparc/sparc.md (UNSPEC_TLSGD, UNSPEC_TLSLDM, UNSPEC_TLSLDO,
UNSPEC_TLSIE, UNSPEC_TLSLE, UNSPEC_TLSLD_BASE): New constants.
(tls_call_delay): New attribute.
(in_call_delay): Use it.
(movqi, movhi, movsi, movdi): Call legitimize_tls_address if needed.
(tgd_hi22, tgd_lo10, tgd_add32, tgd_add64, tgd_call32, tgd_call64,
tldm_hi22, tldm_lo10, tldm_add32, tldm_add64, tldm_call32, tldm_call64,
tldo_hix22, tldo_lox10, tldo_add32, tldo_add64, tie_hi22, tie_lo10,
tie_ld32, tie_ld64, tie_add32, tie_add64, tle_hix22_sp32,
tle_lox10_sp32, tle_hix22_sp64, tle_lox10_sp64): New insns.
(tldo_ldub_sp32, tldo_ldub1_sp32, tldo_ldub2_sp32, tldo_ldsb1_sp32,
tldo_ldsb2_sp32, tldo_ldub_sp64, tldo_ldub1_sp64, tldo_ldub2_sp64,
tldo_ldub3_sp64, tldo_ldsb1_sp64, tldo_ldsb2_sp64, tldo_ldsb3_sp64,
tldo_lduh_sp32, tldo_lduh1_sp32, tldo_ldsh1_sp32, tldo_lduh_sp64,
tldo_lduh1_sp64, tldo_lduh2_sp64, tldo_ldsh1_sp64, tldo_ldsh2_sp64,
tldo_lduw_sp32, tldo_lduw_sp64, tldo_lduw1_sp64, tldo_ldsw1_sp64,
tldo_ldx_sp64, tldo_stb_sp32, tldo_stb_sp64, tldo_sth_sp32,
tldo_sth_sp64, tldo_stw_sp32, tldo_stw_sp64, tldo_stx_sp64): New
insns.
* config/sparc/sparc-protos.h (legitimate_constant_p,
constant_address_p, legitimate_pic_operand_p, legitimate_address_p,
legitimize_tls_address, legitimize_address, tls_symbolic_operand,
tls_call_delay, sparc_output_dwarf_dtprel): New prototypes.
* config/sparc/linux.h (TARGET_GNU_TLS, TARGET_SUN_TLS): Define.
* config/sparc/linux64.h (TARGET_GNU_TLS, TARGET_SUN_TLS): Likewise.
* configure.in (sparc*-*-*): Add TLS check.
* configure: Rebuilt.
From-SVN: r71202
2003-09-08 08:57:05 +02:00
|
|
|
foo: .long 25
|
|
|
|
.text
|
|
|
|
sethi %tgd_hi22(foo), %o0
|
|
|
|
add %o0, %tgd_lo10(foo), %o1
|
|
|
|
add %l7, %o1, %o0, %tgd_add(foo)
|
|
|
|
call __tls_get_addr, %tgd_call(foo)
|
|
|
|
sethi %tldm_hi22(foo), %l1
|
|
|
|
add %l1, %tldm_lo10(foo), %l2
|
|
|
|
add %l7, %l2, %o0, %tldm_add(foo)
|
|
|
|
call __tls_get_addr, %tldm_call(foo)
|
|
|
|
sethi %tldo_hix22(foo), %l3
|
|
|
|
xor %l3, %tldo_lox10(foo), %l4
|
|
|
|
add %o0, %l4, %l5, %tldo_add(foo)
|
|
|
|
sethi %tie_hi22(foo), %o3
|
|
|
|
add %o3, %tie_lo10(foo), %o3
|
|
|
|
ld [%l7 + %o3], %o2, %tie_ld(foo)
|
|
|
|
add %g7, %o2, %o4, %tie_add(foo)
|
|
|
|
sethi %tle_hix22(foo), %l1
|
|
|
|
xor %l1, %tle_lox10(foo), %o5
|
2010-07-23 19:58:57 +02:00
|
|
|
ld [%g7 + %o5], %o1"
|
sparc.c (struct machine_function): New type.
* config/sparc/sparc.c (struct machine_function): New type.
(TARGET_HAVE_TLS, TARGET_CANNOT_FORCE_CONST_MEM): Define.
(sparc_override_options): Initialize init_machine_status.
(tls_symbolic_operand, tgd_symbolic_operand, tld_symbolic_operand,
tie_symbolic_operand, tle_symbolic_operand): New functions.
(symbolic_operand): Disallow tls_symbolic_operand.
(symbolic_memory_operand): Likewise.
(tls_call_delay, sparc_cannot_force_const_mem, legitimate_constant_p,
constant_address_p, legitimate_pic_operand_p, legitimate_address_p):
New functions.
(sparc_tls_symbol): New variable.
(sparc_tls_get_addr, sparc_tls_got, legitimize_tls_address,
legitimize_address): New functions.
(print_operand): Handle %&.
(sparc_init_machine_status, get_some_local_dynamic_name,
get_some_local_dynamic_name_1): New functions.
(sparc_output_dwarf_dtprel): New function.
* config/sparc/sparc.h (CONSTANT_ADDRESS_P): Moved into
constant_address_p.
(LEGITIMATE_PIC_OPERAND_P): Moved into legitimate_pic_operand_p.
(LEGITIMATE_CONSTANT_P): Moved into legitimate_constant_p.
(GO_IF_LEGITIMATE_ADDRESS): Moved into legitimate_address_p.
(LEGITIMIZE_ADDRESS): Moved into legitimize_address.
(PRINT_OPERAND_PUNCT_VALID_P): Add '&'.
(TARGET_TLS, TARGET_SUN_TLS, TARGET_GNU_TLS): Define.
(ASM_OUTPUT_DWARF_DTPREL): Define.
(PREDICATE_CODES): Add tgd_symbolic_operand, tld_symbolic_operand,
tie_symbolic_operand, tle_symbolic_operand.
* config/sparc/sparc.md (UNSPEC_TLSGD, UNSPEC_TLSLDM, UNSPEC_TLSLDO,
UNSPEC_TLSIE, UNSPEC_TLSLE, UNSPEC_TLSLD_BASE): New constants.
(tls_call_delay): New attribute.
(in_call_delay): Use it.
(movqi, movhi, movsi, movdi): Call legitimize_tls_address if needed.
(tgd_hi22, tgd_lo10, tgd_add32, tgd_add64, tgd_call32, tgd_call64,
tldm_hi22, tldm_lo10, tldm_add32, tldm_add64, tldm_call32, tldm_call64,
tldo_hix22, tldo_lox10, tldo_add32, tldo_add64, tie_hi22, tie_lo10,
tie_ld32, tie_ld64, tie_add32, tie_add64, tle_hix22_sp32,
tle_lox10_sp32, tle_hix22_sp64, tle_lox10_sp64): New insns.
(tldo_ldub_sp32, tldo_ldub1_sp32, tldo_ldub2_sp32, tldo_ldsb1_sp32,
tldo_ldsb2_sp32, tldo_ldub_sp64, tldo_ldub1_sp64, tldo_ldub2_sp64,
tldo_ldub3_sp64, tldo_ldsb1_sp64, tldo_ldsb2_sp64, tldo_ldsb3_sp64,
tldo_lduh_sp32, tldo_lduh1_sp32, tldo_ldsh1_sp32, tldo_lduh_sp64,
tldo_lduh1_sp64, tldo_lduh2_sp64, tldo_ldsh1_sp64, tldo_ldsh2_sp64,
tldo_lduw_sp32, tldo_lduw_sp64, tldo_lduw1_sp64, tldo_ldsw1_sp64,
tldo_ldx_sp64, tldo_stb_sp32, tldo_stb_sp64, tldo_sth_sp32,
tldo_sth_sp64, tldo_stw_sp32, tldo_stw_sp64, tldo_stx_sp64): New
insns.
* config/sparc/sparc-protos.h (legitimate_constant_p,
constant_address_p, legitimate_pic_operand_p, legitimate_address_p,
legitimize_tls_address, legitimize_address, tls_symbolic_operand,
tls_call_delay, sparc_output_dwarf_dtprel): New prototypes.
* config/sparc/linux.h (TARGET_GNU_TLS, TARGET_SUN_TLS): Define.
* config/sparc/linux64.h (TARGET_GNU_TLS, TARGET_SUN_TLS): Likewise.
* configure.in (sparc*-*-*): Add TLS check.
* configure: Rebuilt.
From-SVN: r71202
2003-09-08 08:57:05 +02:00
|
|
|
;;
|
2012-02-14 11:02:21 +01:00
|
|
|
tilepro*-*-*)
|
|
|
|
conftest_s='
|
|
|
|
.section ".tdata","awT",@progbits
|
|
|
|
foo: .long 25
|
|
|
|
.text
|
|
|
|
addli r0, zero, tls_gd(foo)
|
|
|
|
auli r0, zero, tls_gd_ha16(foo)
|
|
|
|
addli r0, r0, tls_gd_lo16(foo)
|
|
|
|
jal __tls_get_addr
|
|
|
|
addli r0, zero, tls_ie(foo)
|
|
|
|
auli r0, r0, tls_ie_ha16(foo)
|
|
|
|
addli r0, r0, tls_ie_lo16(foo)'
|
|
|
|
tls_first_major=2
|
|
|
|
tls_first_minor=22
|
|
|
|
tls_as_opt="--fatal-warnings"
|
|
|
|
;;
|
|
|
|
tilegx*-*-*)
|
|
|
|
conftest_s='
|
|
|
|
.section ".tdata","awT",@progbits
|
|
|
|
foo: .long 25
|
|
|
|
.text
|
|
|
|
shl16insli r0, zero, hw0_last_tls_gd(foo)
|
|
|
|
shl16insli r0, zero, hw1_last_tls_gd(foo)
|
|
|
|
shl16insli r0, r0, hw0_tls_gd(foo)
|
|
|
|
jal __tls_get_addr
|
|
|
|
shl16insli r0, zero, hw1_last_tls_ie(foo)
|
|
|
|
shl16insli r0, r0, hw0_tls_ie(foo)'
|
|
|
|
tls_first_major=2
|
|
|
|
tls_first_minor=22
|
|
|
|
tls_as_opt="--fatal-warnings"
|
|
|
|
;;
|
2008-09-19 02:18:42 +02:00
|
|
|
xtensa*-*-*)
|
|
|
|
conftest_s='
|
|
|
|
.section ".tdata","awT",@progbits
|
|
|
|
foo: .long 25
|
|
|
|
.text
|
|
|
|
movi a8, foo@TLSFUNC
|
|
|
|
movi a10, foo@TLSARG
|
|
|
|
callx8.tls a8, foo@TLSCALL'
|
|
|
|
tls_first_major=2
|
|
|
|
tls_first_minor=19
|
|
|
|
;;
|
sparc.c (struct machine_function): New type.
* config/sparc/sparc.c (struct machine_function): New type.
(TARGET_HAVE_TLS, TARGET_CANNOT_FORCE_CONST_MEM): Define.
(sparc_override_options): Initialize init_machine_status.
(tls_symbolic_operand, tgd_symbolic_operand, tld_symbolic_operand,
tie_symbolic_operand, tle_symbolic_operand): New functions.
(symbolic_operand): Disallow tls_symbolic_operand.
(symbolic_memory_operand): Likewise.
(tls_call_delay, sparc_cannot_force_const_mem, legitimate_constant_p,
constant_address_p, legitimate_pic_operand_p, legitimate_address_p):
New functions.
(sparc_tls_symbol): New variable.
(sparc_tls_get_addr, sparc_tls_got, legitimize_tls_address,
legitimize_address): New functions.
(print_operand): Handle %&.
(sparc_init_machine_status, get_some_local_dynamic_name,
get_some_local_dynamic_name_1): New functions.
(sparc_output_dwarf_dtprel): New function.
* config/sparc/sparc.h (CONSTANT_ADDRESS_P): Moved into
constant_address_p.
(LEGITIMATE_PIC_OPERAND_P): Moved into legitimate_pic_operand_p.
(LEGITIMATE_CONSTANT_P): Moved into legitimate_constant_p.
(GO_IF_LEGITIMATE_ADDRESS): Moved into legitimate_address_p.
(LEGITIMIZE_ADDRESS): Moved into legitimize_address.
(PRINT_OPERAND_PUNCT_VALID_P): Add '&'.
(TARGET_TLS, TARGET_SUN_TLS, TARGET_GNU_TLS): Define.
(ASM_OUTPUT_DWARF_DTPREL): Define.
(PREDICATE_CODES): Add tgd_symbolic_operand, tld_symbolic_operand,
tie_symbolic_operand, tle_symbolic_operand.
* config/sparc/sparc.md (UNSPEC_TLSGD, UNSPEC_TLSLDM, UNSPEC_TLSLDO,
UNSPEC_TLSIE, UNSPEC_TLSLE, UNSPEC_TLSLD_BASE): New constants.
(tls_call_delay): New attribute.
(in_call_delay): Use it.
(movqi, movhi, movsi, movdi): Call legitimize_tls_address if needed.
(tgd_hi22, tgd_lo10, tgd_add32, tgd_add64, tgd_call32, tgd_call64,
tldm_hi22, tldm_lo10, tldm_add32, tldm_add64, tldm_call32, tldm_call64,
tldo_hix22, tldo_lox10, tldo_add32, tldo_add64, tie_hi22, tie_lo10,
tie_ld32, tie_ld64, tie_add32, tie_add64, tle_hix22_sp32,
tle_lox10_sp32, tle_hix22_sp64, tle_lox10_sp64): New insns.
(tldo_ldub_sp32, tldo_ldub1_sp32, tldo_ldub2_sp32, tldo_ldsb1_sp32,
tldo_ldsb2_sp32, tldo_ldub_sp64, tldo_ldub1_sp64, tldo_ldub2_sp64,
tldo_ldub3_sp64, tldo_ldsb1_sp64, tldo_ldsb2_sp64, tldo_ldsb3_sp64,
tldo_lduh_sp32, tldo_lduh1_sp32, tldo_ldsh1_sp32, tldo_lduh_sp64,
tldo_lduh1_sp64, tldo_lduh2_sp64, tldo_ldsh1_sp64, tldo_ldsh2_sp64,
tldo_lduw_sp32, tldo_lduw_sp64, tldo_lduw1_sp64, tldo_ldsw1_sp64,
tldo_ldx_sp64, tldo_stb_sp32, tldo_stb_sp64, tldo_sth_sp32,
tldo_sth_sp64, tldo_stw_sp32, tldo_stw_sp64, tldo_stx_sp64): New
insns.
* config/sparc/sparc-protos.h (legitimate_constant_p,
constant_address_p, legitimate_pic_operand_p, legitimate_address_p,
legitimize_tls_address, legitimize_address, tls_symbolic_operand,
tls_call_delay, sparc_output_dwarf_dtprel): New prototypes.
* config/sparc/linux.h (TARGET_GNU_TLS, TARGET_SUN_TLS): Define.
* config/sparc/linux64.h (TARGET_GNU_TLS, TARGET_SUN_TLS): Likewise.
* configure.in (sparc*-*-*): Add TLS check.
* configure: Rebuilt.
From-SVN: r71202
2003-09-08 08:57:05 +02:00
|
|
|
changequote([,])dnl
|
configure.in (HAVE_AS_TLS): New test.
* configure.in (HAVE_AS_TLS): New test.
* config.in, configure: Rebuild.
* config/i386/i386.c (TARGET_HAVE_TLS): Set if HAVE_AS_TLS.
(ix86_tls_dialect_string, ix86_tls_dialect): New.
(override_options): Set it.
(tls_model_chars, tls_symbolic_operand): New.
(tls_symbolic_operand_1, global_dynamic_symbolic_operand): New.
(local_dynamic_symbolic_operand, initial_exec_symbolic_operand): New.
(local_exec_symbolic_operand): New.
(get_pic_label_name): Merge into output_set_got.
(ix86_asm_file_end): Emit pic_label_name if defined.
(legitimate_constant_p, constant_address_p): New.
(legitimate_pic_operand_p): New.
(legitimate_pic_address_disp_p): Handle GOTTPOFF, NTPOFF, DTPOFF.
(legitimate_address_p): Likewise.
(ix86_encode_section_info): Rename from i386_; handle tls decls.
(ix86_strip_name_encoding): New.
(get_thread_pointer): New.
(legitimize_address): Handle tls symbols.
(output_pic_addr_const): Handle GOTTPOFF, TPOFF, NTPOFF, DTPOFF.
Remove UNSPEC_PLT.
(struct machine_function): Add some_ld_name.
(get_some_local_dynamic_name, get_some_local_dynamic_name_1): Set it.
(print_operand) [&]: Use it. Handle UNSPEC_TP.
(output_addr_const_extra): New.
(maybe_get_pool_constant): New.
(ix86_split_to_parts): Use it.
(ix86_expand_move): Handle tls symbols.
(ix86_tls_get_addr): New.
* config/i386/i386.h (TARGET_GNU_TLS, TARGET_SUN_TLS): New.
(TARGET_OPTIONS): Add tls-dialect.
(CONSTANT_ADDRESS_P): Use new out-of-line function.
(LEGITIMATE_CONSTANT_P): Likewise.
(LEGITIMATE_PIC_OPERAND_P): Likewise.
(TARGET_STRIP_NAME_ENCODING): New.
(ASM_OUTPUT_LABELREF): New.
(PRINT_OPERAND_PUNCT_VALID_P): Add '&'.
(OUTPUT_ADDR_CONST_EXTRA): New.
(PREDICATE_CODES): Update.
(ix86_tls_dialect, ix86_tls_dialect_string): New.
* config/i386/i386.md: Regroup and renumber unspec constants.
(tls_global_dynamic_gnu, tls_global_dynamic_sun): New.
(tls_local_dynamic_base_gnu, tls_local_dynamic_base_sun): New.
(tls_global_dynamic, tls_local_dynamic_base): New.
(tls_local_dynamic_once): New.
* config/i386/i386-protos.h: Update.
From-SVN: r53812
2002-05-23 23:55:30 +02:00
|
|
|
esac
|
2006-01-25 01:42:17 +01:00
|
|
|
set_have_as_tls=no
|
|
|
|
if test "x$enable_tls" = xno ; then
|
|
|
|
: # TLS explicitly disabled.
|
|
|
|
elif test "x$enable_tls" = xyes ; then
|
|
|
|
set_have_as_tls=yes # TLS explicitly enabled.
|
|
|
|
elif test -z "$tls_first_major"; then
|
2003-07-12 22:03:14 +02:00
|
|
|
: # If we don't have a check, assume no support.
|
|
|
|
else
|
|
|
|
gcc_GAS_CHECK_FEATURE(thread-local storage support, gcc_cv_as_tls,
|
2004-01-19 17:57:05 +01:00
|
|
|
[$tls_first_major,$tls_first_minor,0], [$tls_as_opt], [$conftest_s],,
|
2006-01-25 01:42:17 +01:00
|
|
|
[set_have_as_tls=yes])
|
|
|
|
fi
|
|
|
|
if test $set_have_as_tls = yes ; then
|
|
|
|
AC_DEFINE(HAVE_AS_TLS, 1,
|
2010-07-23 19:58:57 +02:00
|
|
|
[Define if your assembler and linker support thread-local storage.])
|
configure.in (HAVE_AS_TLS): New test.
* configure.in (HAVE_AS_TLS): New test.
* config.in, configure: Rebuild.
* config/i386/i386.c (TARGET_HAVE_TLS): Set if HAVE_AS_TLS.
(ix86_tls_dialect_string, ix86_tls_dialect): New.
(override_options): Set it.
(tls_model_chars, tls_symbolic_operand): New.
(tls_symbolic_operand_1, global_dynamic_symbolic_operand): New.
(local_dynamic_symbolic_operand, initial_exec_symbolic_operand): New.
(local_exec_symbolic_operand): New.
(get_pic_label_name): Merge into output_set_got.
(ix86_asm_file_end): Emit pic_label_name if defined.
(legitimate_constant_p, constant_address_p): New.
(legitimate_pic_operand_p): New.
(legitimate_pic_address_disp_p): Handle GOTTPOFF, NTPOFF, DTPOFF.
(legitimate_address_p): Likewise.
(ix86_encode_section_info): Rename from i386_; handle tls decls.
(ix86_strip_name_encoding): New.
(get_thread_pointer): New.
(legitimize_address): Handle tls symbols.
(output_pic_addr_const): Handle GOTTPOFF, TPOFF, NTPOFF, DTPOFF.
Remove UNSPEC_PLT.
(struct machine_function): Add some_ld_name.
(get_some_local_dynamic_name, get_some_local_dynamic_name_1): Set it.
(print_operand) [&]: Use it. Handle UNSPEC_TP.
(output_addr_const_extra): New.
(maybe_get_pool_constant): New.
(ix86_split_to_parts): Use it.
(ix86_expand_move): Handle tls symbols.
(ix86_tls_get_addr): New.
* config/i386/i386.h (TARGET_GNU_TLS, TARGET_SUN_TLS): New.
(TARGET_OPTIONS): Add tls-dialect.
(CONSTANT_ADDRESS_P): Use new out-of-line function.
(LEGITIMATE_CONSTANT_P): Likewise.
(LEGITIMATE_PIC_OPERAND_P): Likewise.
(TARGET_STRIP_NAME_ENCODING): New.
(ASM_OUTPUT_LABELREF): New.
(PRINT_OPERAND_PUNCT_VALID_P): Add '&'.
(OUTPUT_ADDR_CONST_EXTRA): New.
(PREDICATE_CODES): Update.
(ix86_tls_dialect, ix86_tls_dialect_string): New.
* config/i386/i386.md: Regroup and renumber unspec constants.
(tls_global_dynamic_gnu, tls_global_dynamic_sun): New.
(tls_local_dynamic_base_gnu, tls_local_dynamic_base_sun): New.
(tls_global_dynamic, tls_local_dynamic_base): New.
(tls_local_dynamic_once): New.
* config/i386/i386-protos.h: Update.
From-SVN: r53812
2002-05-23 23:55:30 +02:00
|
|
|
fi
|
2003-07-12 22:03:14 +02:00
|
|
|
|
|
|
|
# Target-specific assembler checks.
|
configure.in (HAVE_AS_TLS): New test.
* configure.in (HAVE_AS_TLS): New test.
* config.in, configure: Rebuild.
* config/i386/i386.c (TARGET_HAVE_TLS): Set if HAVE_AS_TLS.
(ix86_tls_dialect_string, ix86_tls_dialect): New.
(override_options): Set it.
(tls_model_chars, tls_symbolic_operand): New.
(tls_symbolic_operand_1, global_dynamic_symbolic_operand): New.
(local_dynamic_symbolic_operand, initial_exec_symbolic_operand): New.
(local_exec_symbolic_operand): New.
(get_pic_label_name): Merge into output_set_got.
(ix86_asm_file_end): Emit pic_label_name if defined.
(legitimate_constant_p, constant_address_p): New.
(legitimate_pic_operand_p): New.
(legitimate_pic_address_disp_p): Handle GOTTPOFF, NTPOFF, DTPOFF.
(legitimate_address_p): Likewise.
(ix86_encode_section_info): Rename from i386_; handle tls decls.
(ix86_strip_name_encoding): New.
(get_thread_pointer): New.
(legitimize_address): Handle tls symbols.
(output_pic_addr_const): Handle GOTTPOFF, TPOFF, NTPOFF, DTPOFF.
Remove UNSPEC_PLT.
(struct machine_function): Add some_ld_name.
(get_some_local_dynamic_name, get_some_local_dynamic_name_1): Set it.
(print_operand) [&]: Use it. Handle UNSPEC_TP.
(output_addr_const_extra): New.
(maybe_get_pool_constant): New.
(ix86_split_to_parts): Use it.
(ix86_expand_move): Handle tls symbols.
(ix86_tls_get_addr): New.
* config/i386/i386.h (TARGET_GNU_TLS, TARGET_SUN_TLS): New.
(TARGET_OPTIONS): Add tls-dialect.
(CONSTANT_ADDRESS_P): Use new out-of-line function.
(LEGITIMATE_CONSTANT_P): Likewise.
(LEGITIMATE_PIC_OPERAND_P): Likewise.
(TARGET_STRIP_NAME_ENCODING): New.
(ASM_OUTPUT_LABELREF): New.
(PRINT_OPERAND_PUNCT_VALID_P): Add '&'.
(OUTPUT_ADDR_CONST_EXTRA): New.
(PREDICATE_CODES): Update.
(ix86_tls_dialect, ix86_tls_dialect_string): New.
* config/i386/i386.md: Regroup and renumber unspec constants.
(tls_global_dynamic_gnu, tls_global_dynamic_sun): New.
(tls_local_dynamic_base_gnu, tls_local_dynamic_base_sun): New.
(tls_global_dynamic, tls_local_dynamic_base): New.
(tls_local_dynamic_once): New.
* config/i386/i386-protos.h: Update.
From-SVN: r53812
2002-05-23 23:55:30 +02:00
|
|
|
|
2004-12-16 00:50:26 +01:00
|
|
|
AC_MSG_CHECKING(linker -Bstatic/-Bdynamic option)
|
|
|
|
gcc_cv_ld_static_dynamic=no
|
2011-01-31 14:52:42 +01:00
|
|
|
gcc_cv_ld_static_option='-Bstatic'
|
|
|
|
gcc_cv_ld_dynamic_option='-Bdynamic'
|
2004-12-16 00:50:26 +01:00
|
|
|
if test $in_tree_ld = yes ; then
|
2009-04-02 18:35:10 +02:00
|
|
|
if test "$gcc_cv_gld_major_version" -eq 2 -a "$gcc_cv_gld_minor_version" -ge 10 -o "$gcc_cv_gld_major_version" -gt 2; then
|
2004-12-16 00:50:26 +01:00
|
|
|
gcc_cv_ld_static_dynamic=yes
|
|
|
|
fi
|
|
|
|
elif test x$gcc_cv_ld != x; then
|
2011-01-14 18:00:24 +01:00
|
|
|
# Check if linker supports -Bstatic/-Bdynamic option
|
|
|
|
if $gcc_cv_ld --help 2>/dev/null | grep -- -Bstatic > /dev/null \
|
|
|
|
&& $gcc_cv_ld --help 2>/dev/null | grep -- -Bdynamic > /dev/null; then
|
|
|
|
gcc_cv_ld_static_dynamic=yes
|
|
|
|
else
|
|
|
|
case "$target" in
|
2013-01-26 05:07:08 +01:00
|
|
|
# AIX ld uses -b flags
|
|
|
|
*-*-aix4.[[23]]* | *-*-aix[[5-9]]*)
|
|
|
|
gcc_cv_ld_static_dynamic=yes
|
|
|
|
gcc_cv_ld_static_option="-bstatic"
|
|
|
|
gcc_cv_ld_dynamic_option="-bdynamic"
|
|
|
|
;;
|
2011-10-03 19:57:40 +02:00
|
|
|
# HP-UX ld uses -a flags to select between shared and archive.
|
|
|
|
*-*-hpux*)
|
|
|
|
if test x"$gnu_ld" = xno; then
|
|
|
|
gcc_cv_ld_static_dynamic=yes
|
|
|
|
gcc_cv_ld_static_option="-aarchive_shared"
|
|
|
|
gcc_cv_ld_dynamic_option="-adefault"
|
|
|
|
fi
|
|
|
|
;;
|
2011-01-14 18:00:24 +01:00
|
|
|
# Solaris 2 ld always supports -Bstatic/-Bdynamic.
|
|
|
|
*-*-solaris2*)
|
|
|
|
gcc_cv_ld_static_dynamic=yes
|
|
|
|
;;
|
|
|
|
esac
|
|
|
|
fi
|
2004-12-16 00:50:26 +01:00
|
|
|
fi
|
|
|
|
if test x"$gcc_cv_ld_static_dynamic" = xyes; then
|
|
|
|
AC_DEFINE(HAVE_LD_STATIC_DYNAMIC, 1,
|
2011-01-31 14:52:42 +01:00
|
|
|
[Define if your linker supports -Bstatic/-Bdynamic or equivalent options.])
|
|
|
|
AC_DEFINE_UNQUOTED(LD_STATIC_OPTION, "$gcc_cv_ld_static_option",
|
|
|
|
[Define to the linker option to disable use of shared objects.])
|
|
|
|
AC_DEFINE_UNQUOTED(LD_DYNAMIC_OPTION, "$gcc_cv_ld_dynamic_option",
|
|
|
|
[Define to the linker option to enable use of shared objects.])
|
2004-12-16 00:50:26 +01:00
|
|
|
fi
|
|
|
|
AC_MSG_RESULT($gcc_cv_ld_static_dynamic)
|
|
|
|
|
2004-07-07 22:29:13 +02:00
|
|
|
if test x"$demangler_in_ld" = xyes; then
|
|
|
|
AC_MSG_CHECKING(linker --demangle support)
|
|
|
|
gcc_cv_ld_demangle=no
|
|
|
|
if test $in_tree_ld = yes; then
|
|
|
|
if test "$gcc_cv_gld_major_version" -eq 2 -a "$gcc_cv_gld_minor_version" -ge 14 -o "$gcc_cv_gld_major_version" -gt 2; then \
|
|
|
|
gcc_cv_ld_demangle=yes
|
|
|
|
fi
|
|
|
|
elif test x$gcc_cv_ld != x -a x"$gnu_ld" = xyes; then
|
|
|
|
# Check if the GNU linker supports --demangle option
|
|
|
|
if $gcc_cv_ld --help 2>/dev/null | grep no-demangle > /dev/null; then
|
|
|
|
gcc_cv_ld_demangle=yes
|
|
|
|
fi
|
|
|
|
fi
|
|
|
|
if test x"$gcc_cv_ld_demangle" = xyes; then
|
|
|
|
AC_DEFINE(HAVE_LD_DEMANGLE, 1,
|
|
|
|
[Define if your linker supports --demangle option.])
|
|
|
|
fi
|
|
|
|
AC_MSG_RESULT($gcc_cv_ld_demangle)
|
|
|
|
fi
|
|
|
|
|
2011-01-08 02:37:00 +01:00
|
|
|
AC_MSG_CHECKING(linker plugin support)
|
2011-03-16 10:41:16 +01:00
|
|
|
gcc_cv_lto_plugin=0
|
2011-02-12 13:02:24 +01:00
|
|
|
if test -f liblto_plugin.la; then
|
2011-05-30 10:45:07 +02:00
|
|
|
save_ld_ver="$ld_ver"
|
|
|
|
save_ld_vers_major="$ld_vers_major"
|
|
|
|
save_ld_vers_minor="$ld_vers_minor"
|
|
|
|
save_ld_is_gold="$ld_is_gold"
|
|
|
|
|
|
|
|
ld_is_gold=no
|
2011-03-16 10:41:16 +01:00
|
|
|
|
2011-05-30 10:45:07 +02:00
|
|
|
if test $in_tree_ld = yes -a x"$ORIGINAL_PLUGIN_LD_FOR_TARGET" = x"$gcc_cv_ld"; then
|
|
|
|
ld_ver="GNU ld"
|
|
|
|
# FIXME: ld_is_gold?
|
|
|
|
ld_vers_major="$gcc_cv_gld_major_version"
|
|
|
|
ld_vers_minor="$gcc_cv_gld_minor_version"
|
|
|
|
else
|
|
|
|
# Determine plugin linker version.
|
|
|
|
# FIXME: Partial duplicate from above, generalize.
|
|
|
|
changequote(,)dnl
|
|
|
|
ld_ver=`$ORIGINAL_PLUGIN_LD_FOR_TARGET --version 2>/dev/null | sed 1q`
|
|
|
|
if echo "$ld_ver" | grep GNU > /dev/null; then
|
|
|
|
if echo "$ld_ver" | grep "GNU gold" > /dev/null; then
|
|
|
|
ld_is_gold=yes
|
|
|
|
ld_vers=`echo $ld_ver | sed -n \
|
|
|
|
-e 's,^[^)]*[ ]\([0-9][0-9]*\.[0-9][0-9]*[^)]*\)) .*$,\1,p'`
|
|
|
|
else
|
|
|
|
ld_vers=`echo $ld_ver | sed -n \
|
|
|
|
-e 's,^.*[ ]\([0-9][0-9]*\.[0-9][0-9]*.*\)$,\1,p'`
|
|
|
|
fi
|
|
|
|
ld_vers_major=`expr "$ld_vers" : '\([0-9]*\)'`
|
|
|
|
ld_vers_minor=`expr "$ld_vers" : '[0-9]*\.\([0-9]*\)'`
|
2011-03-16 10:41:16 +01:00
|
|
|
fi
|
2011-05-30 10:45:07 +02:00
|
|
|
changequote([,])dnl
|
|
|
|
fi
|
|
|
|
|
|
|
|
# Determine plugin support.
|
|
|
|
if echo "$ld_ver" | grep GNU > /dev/null; then
|
2011-03-16 10:41:16 +01:00
|
|
|
# Require GNU ld or gold 2.21+ for plugin support by default.
|
|
|
|
if test "$ld_vers_major" -eq 2 -a "$ld_vers_minor" -ge 21; then
|
|
|
|
gcc_cv_lto_plugin=2
|
|
|
|
# Allow -fuse-linker-plugin to enable plugin support in GNU gold 2.20.
|
|
|
|
elif test "$ld_is_gold" = yes -a "$ld_vers_major" -eq 2 -a "$ld_vers_minor" -eq 20; then
|
|
|
|
gcc_cv_lto_plugin=1
|
2011-01-08 02:37:00 +01:00
|
|
|
fi
|
|
|
|
fi
|
2011-05-30 10:45:07 +02:00
|
|
|
|
|
|
|
ld_ver="$save_ld_ver"
|
|
|
|
ld_vers_major="$save_ld_vers_major"
|
|
|
|
ld_vers_minor="$save_ld_vers_minor"
|
|
|
|
ld_is_gold="$save_ld_is_gold"
|
2011-01-08 02:37:00 +01:00
|
|
|
fi
|
2011-03-16 10:41:16 +01:00
|
|
|
AC_DEFINE_UNQUOTED(HAVE_LTO_PLUGIN, $gcc_cv_lto_plugin,
|
|
|
|
[Define to the level of your linker's plugin support.])
|
2011-01-08 02:37:00 +01:00
|
|
|
AC_MSG_RESULT($gcc_cv_lto_plugin)
|
|
|
|
|
configure.in: Check for ld.
* configure.in: Check for ld.
(HAVE_LD_EH_FRAME_HDR): Define if ld supports --eh-frame-hdr option.
* configure, config.in: Rebuilt.
* config.gcc: Add crtbeginT.o to extra_parts where needed.
* config/t-linux (LIB2ADDEH, LIB2ADDEHDEP): Use unwind-dw2-fde-glibc
frame unwinding on Linux.
* config/t-linux-gnulibc1 (LIB2ADDEH, LIB2ADDEHDEP): Use unwind-dw2-fde
frame unwinding.
* config/linux.h (STARTFILE_SPEC): Use crtbeginT.o for -static.
(LINK_EH_SPEC): Define.
* config/i386/gnu.h (STARTFILE_SPEC): Use crtbeginT.o for -static.
* config/ia64/linux.h (STARTFILE_SPEC, LINK_EH_SPEC): Define.
* config/ia64/fde-glibc.c (_Unwind_IteratePhdrCallback): Don't
iterate further if pc falls into current library, but fde was not
found.
* config/sparc/linux.h (STARTFILE_SPEC): Use crtbeginT.o for -static
if using glibc.
(LINK_EH_SPEC): Define.
* config/sparc/linux64.h (STARTFILE_SPEC32, STARTFILE_SPEC64):
Use crtbeginT.o for -static.
(LINK_EH_SPEC): Define.
* config/sparc/t-linux64 (EXTRA_MULTILIB_PARTS): Add crtbeginT.o.
* Makefile.in (crtbeginT.o): Add rule.
* gcc.c (init_gcc_specs): For -static-libgcc, use -lgcc -lgcc_eh.
If neither -static-libgcc nor -shared-libgcc is passed and -shared,
use -lgcc if LINK_EH_SPEC is defined and -lgcc_s -lgcc if not.
If none of the above switches are passed, use -lgcc -lgcc_eh.
(init_spec): If LINK_EH_SPEC is defined, prepend it to link_spec.
* mklibgcc.in: Don't include LIB2ADDEH objects into libgcc.a if
creating libgcc_s.so, put them into separate libgcc_eh.a instead.
* unwind-dw2-fde.c: Don't include any headers if this file
is included from other .c file.
* unwind-dw2-fde-glibc.c: New file.
* crtstuff.c (USE_PT_GNU_EH_FRAME, USE_EH_FRAME_REGISTRY): Define.
Use it instead of EH_FRAME_SECTION_NAME where appropriate.
From-SVN: r48039
2001-12-15 12:49:18 +01:00
|
|
|
case "$target" in
|
2013-12-11 13:57:08 +01:00
|
|
|
aarch64*-*-*)
|
|
|
|
gcc_GAS_CHECK_FEATURE([-mabi option], gcc_cv_as_aarch64_mabi,,
|
|
|
|
[-mabi=lp64], [.text],,,)
|
|
|
|
if test x$gcc_cv_as_aarch64_mabi = xyes; then
|
|
|
|
AC_DEFINE(HAVE_AS_MABI_OPTION, 1,
|
|
|
|
[Define if your assembler supports the -mabi option.])
|
|
|
|
else
|
|
|
|
if test x$with_abi = xilp32; then
|
|
|
|
AC_MSG_ERROR([Assembler does not support -mabi=ilp32.\
|
|
|
|
Upgrade the Assembler.])
|
|
|
|
fi
|
|
|
|
if test x"$with_multilib_list" = xdefault; then
|
|
|
|
TM_MULTILIB_CONFIG=lp64
|
|
|
|
else
|
|
|
|
aarch64_multilibs=`echo $with_multilib_list | sed -e 's/,/ /g'`
|
|
|
|
for aarch64_multilib in ${aarch64_multilibs}; do
|
|
|
|
case ${aarch64_multilib} in
|
|
|
|
ilp32)
|
|
|
|
AC_MSG_ERROR([Assembler does not support -mabi=ilp32.\
|
|
|
|
Upgrade the Assembler.])
|
|
|
|
;;
|
|
|
|
*)
|
|
|
|
;;
|
|
|
|
esac
|
|
|
|
done
|
|
|
|
fi
|
|
|
|
fi
|
2015-07-01 10:45:08 +02:00
|
|
|
# Check if we have binutils support for relocations types needed by -fpic
|
|
|
|
gcc_GAS_CHECK_FEATURE([-fpic relocs], gcc_cv_as_aarch64_picreloc,,,
|
|
|
|
[
|
|
|
|
.text
|
|
|
|
ldr x0, [[x2, #:gotpage_lo15:globalsym]]
|
|
|
|
],,[AC_DEFINE(HAVE_AS_SMALL_PIC_RELOCS, 1,
|
|
|
|
[Define if your assembler supports relocs needed by -fpic.])])
|
2014-10-10 14:31:51 +02:00
|
|
|
# Enable default workaround for AArch64 Cortex-A53 erratum 835769.
|
|
|
|
AC_ARG_ENABLE(fix-cortex-a53-835769,
|
|
|
|
[
|
|
|
|
AS_HELP_STRING([--enable-fix-cortex-a53-835769],
|
|
|
|
[enable workaround for AArch64 Cortex-A53 erratum 835769 by default])
|
|
|
|
AS_HELP_STRING([--disable-fix-cortex-a53-835769],
|
|
|
|
[disable workaround for AArch64 Cortex-A53 erratum 835769 by default])
|
|
|
|
],
|
|
|
|
[
|
|
|
|
case $enableval in
|
|
|
|
yes)
|
|
|
|
tm_defines="${tm_defines} TARGET_FIX_ERR_A53_835769_DEFAULT=1"
|
|
|
|
;;
|
|
|
|
no)
|
|
|
|
;;
|
|
|
|
*)
|
|
|
|
AC_MSG_ERROR(['$enableval' is an invalid value for --enable-fix-cortex-a53-835769.\
|
|
|
|
Valid choices are 'yes' and 'no'.])
|
|
|
|
;;
|
|
|
|
|
|
|
|
esac
|
|
|
|
],
|
|
|
|
[])
|
2015-05-05 11:31:11 +02:00
|
|
|
# Enable default workaround for AArch64 Cortex-A53 erratum 843419.
|
|
|
|
AC_ARG_ENABLE(fix-cortex-a53-843419,
|
|
|
|
[
|
|
|
|
AS_HELP_STRING([--enable-fix-cortex-a53-843419],
|
|
|
|
[enable workaround for AArch64 Cortex-A53 erratum 843419 by default])
|
|
|
|
AS_HELP_STRING([--disable-fix-cortex-a53-843419],
|
|
|
|
[disable workaround for AArch64 Cortex-A53 erratum 843419 by default])
|
|
|
|
],
|
|
|
|
[
|
|
|
|
case $enableval in
|
|
|
|
yes)
|
|
|
|
tm_defines="${tm_defines} TARGET_FIX_ERR_A53_843419_DEFAULT=1"
|
|
|
|
;;
|
|
|
|
no)
|
|
|
|
;;
|
|
|
|
*)
|
|
|
|
AC_MSG_ERROR(['$enableval' is an invalid value for --enable-fix-cortex-a53-843419.\
|
|
|
|
Valid choices are 'yes' and 'no'.])
|
|
|
|
;;
|
|
|
|
|
|
|
|
esac
|
|
|
|
],
|
|
|
|
[])
|
2013-12-11 13:57:08 +01:00
|
|
|
;;
|
|
|
|
|
2001-12-16 02:05:01 +01:00
|
|
|
# All TARGET_ABI_OSF targets.
|
Remove obsolete Tru64 UNIX V5.1B support
libstdc++-v3:
* configure.host: Remove osf* handling.
* config/os/osf: Remove.
* doc/xml/manual/using.xml: Remove OSF reference.
* testsuite/18_support/pthread_guard.cc: Remove alpha*-*-osf*
handling.
* testsuite/20_util/shared_ptr/thread/default_weaktoshared.cc:
Likewise.
* testsuite/20_util/shared_ptr/thread/mutex_weaktoshared.cc:
Likewise.
* testsuite/21_strings/basic_string/pthread18185.cc: Likewise.
* testsuite/21_strings/basic_string/pthread4.cc: Likewise.
* testsuite/22_locale/locale/cons/12658_thread-1.cc: Likewise.
* testsuite/22_locale/locale/cons/12658_thread-2.cc: Likewise.
* testsuite/23_containers/list/pthread1.cc: Likewise.
* testsuite/23_containers/list/pthread5.cc: Likewise.
* testsuite/23_containers/map/pthread6.cc: Likewise.
* testsuite/23_containers/vector/debug/multithreaded_swap.cc:
Likewise.
* testsuite/27_io/basic_ofstream/pthread2.cc: Likewise.
* testsuite/27_io/basic_ostringstream/pthread3.cc: Likewise.
* testsuite/30_threads/async/42819.cc: Likewise.
* libstdc++-v3/testsuite/30_threads/async/49668.cc: Likewise.
* libstdc++-v3/testsuite/30_threads/async/any.cc: Likewise.
* libstdc++-v3/testsuite/30_threads/async/async.cc: Likewise.
* libstdc++-v3/testsuite/30_threads/async/launch.cc: Likewise.
* libstdc++-v3/testsuite/30_threads/async/sync.cc: Likewise.
* libstdc++-v3/testsuite/30_threads/call_once/39909.cc: Likewise.
* libstdc++-v3/testsuite/30_threads/call_once/49668.cc: Likewise.
* libstdc++-v3/testsuite/30_threads/call_once/call_once1.cc: Likewise.
* libstdc++-v3/testsuite/30_threads/condition_variable/cons/1.cc:
Likewise.
* libstdc++-v3/testsuite/30_threads/condition_variable/members/1.cc:
Likewise.
* libstdc++-v3/testsuite/30_threads/condition_variable/members/2.cc:
Likewise.
* libstdc++-v3/testsuite/30_threads/condition_variable/native_handle/typesizes.cc:
Likewise.
* libstdc++-v3/testsuite/30_threads/condition_variable_any/50862.cc:
Likewise.
* libstdc++-v3/testsuite/30_threads/condition_variable_any/cons/1.cc:
Likewise.
* libstdc++-v3/testsuite/30_threads/condition_variable_any/members/1.cc:
Likewise.
* libstdc++-v3/testsuite/30_threads/condition_variable_any/members/2.cc:
Likewise.
* libstdc++-v3/testsuite/30_threads/future/cons/move.cc: Likewise.
* libstdc++-v3/testsuite/30_threads/future/members/45133.cc: Likewise.
* libstdc++-v3/testsuite/30_threads/future/members/get.cc: Likewise.
* libstdc++-v3/testsuite/30_threads/future/members/get2.cc: Likewise.
* libstdc++-v3/testsuite/30_threads/future/members/share.cc: Likewise.
* libstdc++-v3/testsuite/30_threads/future/members/valid.cc: Likewise.
* libstdc++-v3/testsuite/30_threads/future/members/wait.cc: Likewise.
* libstdc++-v3/testsuite/30_threads/future/members/wait_for.cc:
Likewise.
* libstdc++-v3/testsuite/30_threads/future/members/wait_until.cc:
Likewise.
* libstdc++-v3/testsuite/30_threads/lock/1.cc: Likewise.
* libstdc++-v3/testsuite/30_threads/lock/2.cc: Likewise.
* libstdc++-v3/testsuite/30_threads/lock/3.cc: Likewise.
* libstdc++-v3/testsuite/30_threads/lock/4.cc: Likewise.
* libstdc++-v3/testsuite/30_threads/lock_guard/cons/1.cc: Likewise.
* libstdc++-v3/testsuite/30_threads/mutex/cons/1.cc: Likewise.
* libstdc++-v3/testsuite/30_threads/mutex/dest/destructor_locked.cc:
Likewise.
* libstdc++-v3/testsuite/30_threads/mutex/lock/1.cc: Likewise.
* libstdc++-v3/testsuite/30_threads/mutex/native_handle/1.cc: Likewise.
* libstdc++-v3/testsuite/30_threads/mutex/native_handle/typesizes.cc:
Likewise.
* libstdc++-v3/testsuite/30_threads/mutex/try_lock/1.cc: Likewise.
* libstdc++-v3/testsuite/30_threads/mutex/try_lock/2.cc: Likewise.
* libstdc++-v3/testsuite/30_threads/mutex/unlock/1.cc: Likewise.
* libstdc++-v3/testsuite/30_threads/packaged_task/49668.cc: Likewise.
* libstdc++-v3/testsuite/30_threads/packaged_task/cons/1.cc: Likewise.
* libstdc++-v3/testsuite/30_threads/packaged_task/cons/2.cc: Likewise.
* libstdc++-v3/testsuite/30_threads/packaged_task/cons/3.cc: Likewise.
* libstdc++-v3/testsuite/30_threads/packaged_task/cons/alloc.cc:
Likewise.
* libstdc++-v3/testsuite/30_threads/packaged_task/cons/move.cc:
Likewise.
* libstdc++-v3/testsuite/30_threads/packaged_task/cons/move_assign.cc:
Likewise.
* libstdc++-v3/testsuite/30_threads/packaged_task/members/get_future.cc:
Likewise.
* libstdc++-v3/testsuite/30_threads/packaged_task/members/get_future2.cc:
Likewise.
* libstdc++-v3/testsuite/30_threads/packaged_task/members/invoke.cc:
Likewise.
* libstdc++-v3/testsuite/30_threads/packaged_task/members/invoke2.cc:
Likewise.
* libstdc++-v3/testsuite/30_threads/packaged_task/members/invoke3.cc:
Likewise.
* libstdc++-v3/testsuite/30_threads/packaged_task/members/invoke4.cc:
Likewise.
* libstdc++-v3/testsuite/30_threads/packaged_task/members/invoke5.cc:
Likewise.
* libstdc++-v3/testsuite/30_threads/packaged_task/members/reset.cc:
Likewise.
* libstdc++-v3/testsuite/30_threads/packaged_task/members/reset2.cc:
Likewise.
* libstdc++-v3/testsuite/30_threads/packaged_task/members/swap.cc:
Likewise.
* libstdc++-v3/testsuite/30_threads/packaged_task/members/valid.cc:
Likewise.
* libstdc++-v3/testsuite/30_threads/promise/cons/1.cc: Likewise.
* libstdc++-v3/testsuite/30_threads/promise/cons/alloc.cc: Likewise.
* libstdc++-v3/testsuite/30_threads/promise/cons/move.cc: Likewise.
* libstdc++-v3/testsuite/30_threads/promise/cons/move_assign.cc:
Likewise.
* libstdc++-v3/testsuite/30_threads/promise/members/get_future.cc:
Likewise.
* libstdc++-v3/testsuite/30_threads/promise/members/get_future2.cc:
Likewise.
* libstdc++-v3/testsuite/30_threads/promise/members/set_exception.cc:
Likewise.
* libstdc++-v3/testsuite/30_threads/promise/members/set_exception2.cc:
Likewise.
* libstdc++-v3/testsuite/30_threads/promise/members/set_value.cc:
Likewise.
* libstdc++-v3/testsuite/30_threads/promise/members/set_value2.cc:
Likewise.
* libstdc++-v3/testsuite/30_threads/promise/members/set_value3.cc:
Likewise.
* libstdc++-v3/testsuite/30_threads/promise/members/swap.cc: Likewise.
* libstdc++-v3/testsuite/30_threads/recursive_mutex/cons/1.cc:
Likewise.
* libstdc++-v3/testsuite/30_threads/recursive_mutex/dest/destructor_locked.cc:
Likewise.
* libstdc++-v3/testsuite/30_threads/recursive_mutex/lock/1.cc:
Likewise.
* libstdc++-v3/testsuite/30_threads/recursive_mutex/native_handle/1.cc:
Likewise.
* libstdc++-v3/testsuite/30_threads/recursive_mutex/native_handle/typesizes.cc:
Likewise.
* libstdc++-v3/testsuite/30_threads/recursive_mutex/try_lock/1.cc:
Likewise.
* libstdc++-v3/testsuite/30_threads/recursive_mutex/try_lock/2.cc:
Likewise.
* libstdc++-v3/testsuite/30_threads/recursive_mutex/unlock/1.cc:
Likewise.
* libstdc++-v3/testsuite/30_threads/recursive_timed_mutex/cons/1.cc:
Likewise.
* libstdc++-v3/testsuite/30_threads/recursive_timed_mutex/dest/destructor_locked.cc:
Likewise.
* libstdc++-v3/testsuite/30_threads/recursive_timed_mutex/lock/1.cc:
Likewise.
* libstdc++-v3/testsuite/30_threads/recursive_timed_mutex/lock/2.cc:
Likewise.
* libstdc++-v3/testsuite/30_threads/recursive_timed_mutex/native_handle/1.cc:
Likewise.
* libstdc++-v3/testsuite/30_threads/recursive_timed_mutex/native_handle/typesizes.cc:
Likewise.
* libstdc++-v3/testsuite/30_threads/recursive_timed_mutex/try_lock/1.cc:
Likewise.
* libstdc++-v3/testsuite/30_threads/recursive_timed_mutex/try_lock/2.cc:
Likewise.
* libstdc++-v3/testsuite/30_threads/recursive_timed_mutex/try_lock_for/1.cc:
Likewise.
* libstdc++-v3/testsuite/30_threads/recursive_timed_mutex/try_lock_for/2.cc:
Likewise.
* libstdc++-v3/testsuite/30_threads/recursive_timed_mutex/try_lock_for/3.cc:
Likewise.
* libstdc++-v3/testsuite/30_threads/recursive_timed_mutex/try_lock_until/1.cc:
Likewise.
* libstdc++-v3/testsuite/30_threads/recursive_timed_mutex/try_lock_until/2.cc:
Likewise.
* libstdc++-v3/testsuite/30_threads/recursive_timed_mutex/unlock/1.cc:
Likewise.
* libstdc++-v3/testsuite/30_threads/shared_future/cons/move.cc:
Likewise.
* libstdc++-v3/testsuite/30_threads/shared_future/members/45133.cc:
Likewise.
* libstdc++-v3/testsuite/30_threads/shared_future/members/get.cc:
Likewise.
* libstdc++-v3/testsuite/30_threads/shared_future/members/get2.cc:
Likewise.
* libstdc++-v3/testsuite/30_threads/shared_future/members/valid.cc:
Likewise.
* libstdc++-v3/testsuite/30_threads/shared_future/members/wait.cc:
Likewise.
* libstdc++-v3/testsuite/30_threads/shared_future/members/wait_for.cc:
Likewise.
* libstdc++-v3/testsuite/30_threads/shared_future/members/wait_until.cc:
Likewise.
* libstdc++-v3/testsuite/30_threads/this_thread/1.cc: Likewise.
* libstdc++-v3/testsuite/30_threads/this_thread/2.cc: Likewise.
* libstdc++-v3/testsuite/30_threads/this_thread/3.cc: Likewise.
* libstdc++-v3/testsuite/30_threads/this_thread/4.cc: Likewise.
* libstdc++-v3/testsuite/30_threads/thread/cons/1.cc: Likewise.
* libstdc++-v3/testsuite/30_threads/thread/cons/2.cc: Likewise.
* libstdc++-v3/testsuite/30_threads/thread/cons/3.cc: Likewise.
* libstdc++-v3/testsuite/30_threads/thread/cons/4.cc: Likewise.
* libstdc++-v3/testsuite/30_threads/thread/cons/49668.cc: Likewise.
* libstdc++-v3/testsuite/30_threads/thread/cons/5.cc: Likewise.
* libstdc++-v3/testsuite/30_threads/thread/cons/6.cc: Likewise.
* libstdc++-v3/testsuite/30_threads/thread/cons/7.cc: Likewise.
* libstdc++-v3/testsuite/30_threads/thread/cons/8.cc: Likewise.
* libstdc++-v3/testsuite/30_threads/thread/cons/9.cc: Likewise.
* libstdc++-v3/testsuite/30_threads/thread/cons/moveable.cc: Likewise.
* libstdc++-v3/testsuite/30_threads/thread/members/1.cc: Likewise.
* libstdc++-v3/testsuite/30_threads/thread/members/2.cc: Likewise.
* libstdc++-v3/testsuite/30_threads/thread/members/3.cc: Likewise.
* libstdc++-v3/testsuite/30_threads/thread/members/4.cc: Likewise.
* libstdc++-v3/testsuite/30_threads/thread/members/5.cc: Likewise.
* libstdc++-v3/testsuite/30_threads/thread/members/hardware_concurrency.cc:
Likewise.
* libstdc++-v3/testsuite/30_threads/thread/swap/1.cc: Likewise.
* libstdc++-v3/testsuite/30_threads/timed_mutex/cons/1.cc: Likewise.
* libstdc++-v3/testsuite/30_threads/timed_mutex/dest/destructor_locked.cc:
Likewise.
* libstdc++-v3/testsuite/30_threads/timed_mutex/lock/1.cc: Likewise.
* libstdc++-v3/testsuite/30_threads/timed_mutex/native_handle/1.cc:
Likewise.
* libstdc++-v3/testsuite/30_threads/timed_mutex/native_handle/typesizes.cc:
Likewise.
* libstdc++-v3/testsuite/30_threads/timed_mutex/try_lock/1.cc: Likewise.
* libstdc++-v3/testsuite/30_threads/timed_mutex/try_lock/2.cc: Likewise.
* libstdc++-v3/testsuite/30_threads/timed_mutex/try_lock_for/1.cc:
Likewise.
* libstdc++-v3/testsuite/30_threads/timed_mutex/try_lock_for/2.cc:
Likewise.
* libstdc++-v3/testsuite/30_threads/timed_mutex/try_lock_for/3.cc:
Likewise.
* libstdc++-v3/testsuite/30_threads/timed_mutex/try_lock_until/1.cc:
Likewise.
* libstdc++-v3/testsuite/30_threads/timed_mutex/try_lock_until/2.cc:
Likewise.
* libstdc++-v3/testsuite/30_threads/timed_mutex/unlock/1.cc: Likewise.
* libstdc++-v3/testsuite/30_threads/try_lock/1.cc: Likewise.
* libstdc++-v3/testsuite/30_threads/try_lock/2.cc: Likewise.
* libstdc++-v3/testsuite/30_threads/try_lock/3.cc: Likewise.
* libstdc++-v3/testsuite/30_threads/try_lock/4.cc: Likewise.
* libstdc++-v3/testsuite/30_threads/unique_lock/cons/1.cc: Likewise.
* libstdc++-v3/testsuite/30_threads/unique_lock/cons/2.cc: Likewise.
* libstdc++-v3/testsuite/30_threads/unique_lock/cons/3.cc: Likewise.
* libstdc++-v3/testsuite/30_threads/unique_lock/cons/4.cc: Likewise.
* libstdc++-v3/testsuite/30_threads/unique_lock/cons/5.cc: Likewise.
* libstdc++-v3/testsuite/30_threads/unique_lock/cons/6.cc: Likewise.
* libstdc++-v3/testsuite/30_threads/unique_lock/locking/1.cc: Likewise.
* libstdc++-v3/testsuite/30_threads/unique_lock/locking/2.cc: Likewise.
* libstdc++-v3/testsuite/30_threads/unique_lock/locking/3.cc: Likewise.
* libstdc++-v3/testsuite/30_threads/unique_lock/locking/4.cc: Likewise.
* libstdc++-v3/testsuite/30_threads/unique_lock/modifiers/1.cc:
Likewise.
* libstdc++-v3/testsuite/30_threads/unique_lock/modifiers/2.cc:
Likewise.
* libstdc++-v3/testsuite/ext/rope/pthread7-rope.cc: Likewise.
* libstdc++-v3/testsuite/tr1/2_general_utilities/shared_ptr/thread/default_weaktoshared.cc:
Likewise.
* libstdc++-v3/testsuite/tr1/2_general_utilities/shared_ptr/thread/mutex_weaktoshared.cc: Likewise.
libobjc:
* configure.ac (enable_objc_gc): Remove alpha*-dec-osf* handling.
* configure: Regenerate.
* thr.c (_XOPEN_SOURCE): Define unconditionally.
libjava:
* configure.ac (alpha*-dec-osf*): Remove.
* configure: Regenerate.
* configure.host (alpha*-dec-osf*): Remove.
* gnu/java/net/natPlainDatagramSocketImplPosix.cc (setOption): Use
IPV6_MULTICAST_IF unconditionally.
* gnu/java/net/natPlainDatagramSocketImplWin32.cc (setOption):
Likewise.
* gnu/java/net/natPlainSocketImplPosix.cc
(gnu::java::net::PlainSocketImpl::accept): Use ::accept instead of
_Jv_accept.
* include/posix-signal.h [__alpha__ && __osf__]: Remove.
* include/posix.h (_POSIX_PII_SOCKET): Don't define.
(_Jv_accept): Remove.
* java/io/File.java (File._access): Rename to access.
Change callers.
(File._stat): Likewise.
* java/io/File.h: Regenerate.
* classpath/lib/java/io/File.class: Regenerate.
* java/io/natFilePosix.cc (java::io::File::_access): Rename to
access.
(java::io::File::_stat): Rename to stat.
* java/io/natFileWin32.cc: Likewise.
* testsuite/libjava.jni/jni.exp (gcj_jni_get_cxxflags_invocation):
Remove alpha*-dec-osf* handling.
* testsuite/libjava.jvmti/jvmti-interp.exp
(gcj_jni_compile_c_to_so): Likewise.
* testsuite/libjava.jvmti/jvmti.exp (gcj_jvmti_compile_cxx_to_o):
Likewise.
libitm:
* configure.tgt (*-*-osf*): Remove.
* configure: Regenerate.
libgomp:
* configure.tgt (alpha*-dec-osf*): Remove.
* config/osf/sem.h: Remove.
* config/posix/lock.c (_XOPEN_SOURCE): Define unconditionally.
libgfortran:
* configure.ac: Remove Tru64 reference.
* acinclude.m4 (LIBGFOR_GTHREAD_WEAK): Remove alpha*-dec-osf*
handling.
* configure: Regenerate.
* intrinsics/c99_functions.c [__osf__]: Remove.
libgcc:
* config.host: Remove alpha*-dec-osf5.1* handling.
* config/alpha/gthr-posix.c: Remove.
* config/alpha/libgcc-osf5.ver: Remove.
* config/alpha/osf5-unwind.h: Remove.
* config/alpha/t-osf-pthread: Remove.
* config/alpha/t-slibgcc-osf: Remove.
* config/t-crtfm (crtfastmath.o): Remove -frandom-seed.
* gthr-posix.h [!_REENTRANT && __osf__] (_REENTRANT): Don't define.
[__osf__ && _PTHREAD_USE_MANGLED_NAMES_]: Remove.
* mkmap-flat.awk: Remove osf_export handling.
gnattools:
* configure.ac: Remove alpha*-dec-osf* handling.
* configure: Regenerate.
gcc/testsuite:
* g++.dg/abi/rtti3.C: Remove alpha*-dec-osf* handling.
* g++.dg/abi/thunk4.C: Likewise.
* g++.dg/cdce3.C: Don't skip on*-dec-osf5*.
Adapt line numbers.
* g++.dg/compat/struct-layout-1_generate.c: Remove alpha*-dec-osf*
handling.
* g++.dg/cpp0x/constexpr-rom.C: Likewise.
* g++.dg/eh/spbp.C: Likewise.
* g++.dg/ext/label13.C: Likewise.
* g++.dg/guality/guality.exp: Likewise.
* g++.dg/other/anon5.C: Likewise.
* g++.dg/other/pragma-ep-1.C: Remove.
* g++.dg/warn/miss-format-1.C: Remove alpha*-dec-osf* handling.
* g++.dg/warn/pr31246.C: Likewise.
* g++.dg/warn/weak1.C: Likewise.
* g++.old-deja/g++.eh/badalloc1.C: Likewise.
* g++.old-deja/g++.ext/attrib5.C: Likewise.
* gcc.c-torture/compile/limits-declparen.c: Likewise.
* gcc.c-torture/compile/limits-pointer.c: Likewise.
* gcc.c-torture/execute/20001229-1.c: Remove __osf__ handling.
* gcc.dg/attr-weakref-1.c: Remove alpha*-dec-osf* handling.
* gcc.dg/c99-stdint-6.c: Remove alpha*-dec-osf5* handling.
* gcc.dg/c99-tgmath-1.c: Likewise.
* gcc.dg/c99-tgmath-2.c: Likewise.
* gcc.dg/c99-tgmath-3.c: Likewise.
* gcc.dg/c99-tgmath-4.c: Likewise.
* gcc.dg/compat/struct-layout-1_generate.c: Remove alpha*-dec-osf*
handling.
* gcc.dg/debug/pr49032.c: Likewise.
* gcc.dg/guality/guality.exp: Likewise.
* gcc.dg/intmax_t-1.c: Likewise.
* gcc.dg/pr48616.c: Likewise.
* gcc.dg/pragma-ep-1.c: Remove.
* gcc.dg/pragma-ep-2.c: Remove.
* gcc.dg/pragma-ep-3.c: Remove.
* gcc.dg/torture/pr47917.c: Remove alpha*-dec-osf5* handling.
* gcc.dg/tree-ssa/pr42585.c: Remove alpha*-dec-osf* handling.
* gcc.misc-tests/gcov-14.c: Likewise.
* gfortran.dg/guality/guality.exp: Likewise.
* lib/target-supports.exp (check_weak_available): Likewise.
(add_options_for_tls): Likewise.
(check_ascii_locale_available): Likewise.
* obj-c++.dg/dwarf-2.mm: Likewise.
* objc.dg/dwarf-1.m: Likewise.
* objc.dg/dwarf-2.m: Likewise.
gcc/c-family:
* c-cppbuiltin.c (c_cpp_builtins): Remove #pragma extern_prefix
handling.
* c-pragma.c (handle_pragma_extern_prefix): Remove.
(init_pragma): Don't register extern_prefix.
gcc/po:
* EXCLUDES (mips-tdump.c, mips-tfile.c): Remove.
gcc:
* config.gcc (alpha*-dec-osf5.1*): Remove.
* config.host (alpha*-dec-osf*): Remove.
* configure.ac (*-*-osf*): Remove.
(alpha*-dec-osf*): Remove.
* configure: Regenerate.
* config/alpha/host-osf.c, config/alpha/osf5.h,
config/alpha/osf5.opt, config/alpha/va_list.h, config/alpha/x-osf:
Remove.
* config/alpha/alpha.h (TARGET_LD_BUGGY_LDGP): Remove.
* config/alpha/alpha.c (struct machine_function): Update comment.
(alpha_start_function): Remove Tru64 UNIX as handling for
max_frame_size.
* config/alpha/alpha.md ("exception_receiver"): Remove
TARGET_LD_BUGGY_LDGP.
("*exception_receiver_2"): Likewise.
* except.c (finish_eh_generation): Remove Tru64 reference.
* ginclude/stdarg.h [_HIDDEN_VA_LIST]: Don't undef _VA_LIST.
* system.h (TARGET_HANDLE_PRAGMA_EXTERN_PREFIX): Poison.
* target.def (handle_pragma_extern_prefix): Remove.
* Makefile.in (mips-tfile.o-warn): Remove.
(ALL_HOST_BACKEND_OBJS): Remove mips-tfile.o, mips-tdump.o.
(mips-tfile, mips-tfile.o, mips-tdump, mips-tdump.o): Remove.
* mips-tdump.c, mips-tfile.c: Remove.
* doc/extend.texi (Symbol-Renaming Pragmas): Remove #pragma
extern_prefix.
* doc/install.texi (Binaries): Remove Tru64 UNIX reference.
(Specific, alpha*-dec-osf5.1): Note removal.
* doc/tm.texi.in (Misc, TARGET_HANDLE_PRAGMA_EXTERN_PREFIX):
Remove.
* doc/tm.texi: Regenerate.
* doc/trouble.texi (Cross-Compiler Problems): Remove.
gcc/ada:
* gcc-interface/Makefile.in (alpha*-dec-osf*): Remove.
* a-intnam-tru64.ads, mlib-tgt-specific-tru64.adb,
s-mastop-tru64.adb, s-osinte-tru64.adb, s-osinte-tru64.ads,
s-taprop-tru64.adb, s-tasinf-tru64.ads, s-taspri-tru64.ads,
system-tru64.ads: Remove.
* adaint.c (__gnat_number_of_cpus) [__alpha__ && __osf__]:
Remove.
[IS_CROSS] [!(__alpha__ && __osf__)]: Remove.
* env.c [__alpha__ && __osf__]: Remove.
* gsocket.h (_OSF_SOURCE): Remove.
(HAVE_THREAD_SAFE_GETxxxBYyyy) [__osf__]: Remove.
* init.c [__alpha__ && __osf__]: Remove.
* link.c [__osf__]: Remove.
* s-oscons-tmplt.c [__alpha__ && __osf__]: Remove.
[__osf__ && !_SS_MAXSIZE]: Remove.
* sysdep.c [__osf__]: Remove.
* terminals.c [__alpha__ && __osf__]: Remove.
[OSF1]: Remove.
* g-traceb.ads: Remove Tru64 reference.
* g-trasym.ads: Likewise.
* gnat_ugn.texi (Linking a Mixed C++ & Ada Program): Likewise.
(Summary of Run-Time Configurations): Likewise.
* memtrack.adb: Likewise.
fixincludes:
* inclhack.def (alpha___extern_prefix): Remove.
(alpha___extern_prefix_standards): Remove.
(alpha___extern_prefix_sys_stat): Remove.
(alpha_bad_lval): Remove.
(alpha_pthread): Remove.
(alpha_pthread_gcc): Remove.
(alpha_pthread_init): Remove.
* fixincl.x: Regenerate.
* tests/base/pthread.h [ALPHA_PTHREAD_CHECK]: Remove.
[ALPHA_PTHREAD_GCC_CHECK]: Remove.
[ALPHA_PTHREAD_INIT_CHECK]: Remove.
* tests/base/standards.h: Remove.
* tests/base/sys/stat.h [ALPHA___EXTERN_PREFIX_SYS_STAT_CHECK]:
Remove.
* tests/base/testing.h [ALPHA___EXTERN_PREFIX_CHECK]: Remove.
[ALPHA_BAD_LVAL_CHECK]: Remove.
contrib:
* config-list.mk (LIST): Remove alpha-dec-osf5.1.
config:
* weakref.m4 (GCC_CHECK_ELF_STYLE_WEAKREF): Remove
alpha*-dec-osf*.
toplevel:
* MAINTAINERS (OS Port Maintainers): Remove osf.
* configure.ac (enable_libgomp): Remove *-*-osf*.
(with_stabs): Remove alpha*-*-osf*.
* configure: Regenerate.
From-SVN: r185240
2012-03-12 16:35:56 +01:00
|
|
|
alpha*-*-linux* | alpha*-*-*bsd*)
|
2003-07-12 22:03:14 +02:00
|
|
|
gcc_GAS_CHECK_FEATURE([explicit relocation support],
|
|
|
|
gcc_cv_as_alpha_explicit_relocs, [2,12,0],,
|
|
|
|
[ .set nomacro
|
2001-12-16 02:05:01 +01:00
|
|
|
.text
|
|
|
|
extbl $3, $2, $3 !lituse_bytoff!1
|
|
|
|
ldq $2, a($29) !literal!1
|
|
|
|
ldq $4, b($29) !literal!2
|
|
|
|
ldq_u $3, 0($2) !lituse_base!1
|
|
|
|
ldq $27, f($29) !literal!5
|
|
|
|
jsr $26, ($27), f !lituse_jsr!5
|
|
|
|
ldah $29, 0($26) !gpdisp!3
|
|
|
|
lda $0, c($29) !gprel
|
|
|
|
ldah $1, d($29) !gprelhigh
|
|
|
|
lda $1, d($1) !gprellow
|
2003-07-12 22:03:14 +02:00
|
|
|
lda $29, 0($29) !gpdisp!3],,
|
|
|
|
[AC_DEFINE(HAVE_AS_EXPLICIT_RELOCS, 1,
|
|
|
|
[Define if your assembler supports explicit relocations.])])
|
2005-06-01 10:19:44 +02:00
|
|
|
gcc_GAS_CHECK_FEATURE([jsrdirect relocation support],
|
|
|
|
gcc_cv_as_alpha_jsrdirect_relocs, [2,16,90],,
|
|
|
|
[ .set nomacro
|
|
|
|
.text
|
|
|
|
ldq $27, a($29) !literal!1
|
|
|
|
jsr $26, ($27), a !lituse_jsrdirect!1],,
|
|
|
|
[AC_DEFINE(HAVE_AS_JSRDIRECT_RELOCS, 1,
|
|
|
|
[Define if your assembler supports the lituse_jsrdirect relocation.])])
|
2001-12-16 02:05:01 +01:00
|
|
|
;;
|
2000-06-09 16:31:54 +02:00
|
|
|
|
2015-03-11 19:51:09 +01:00
|
|
|
avr-*-*)
|
|
|
|
gcc_GAS_CHECK_FEATURE([--mlink-relax option], gcc_cv_as_avr_mlink_relax,,
|
|
|
|
[--mlink-relax], [.text],,
|
|
|
|
[AC_DEFINE(HAVE_AS_AVR_MLINK_RELAX_OPTION, 1,
|
|
|
|
[Define if your avr assembler supports --mlink-relax option.])])
|
|
|
|
|
|
|
|
gcc_GAS_CHECK_FEATURE([-mrmw option], gcc_cv_as_avr_mrmw,,
|
|
|
|
[-mrmw], [.text],,
|
|
|
|
[AC_DEFINE(HAVE_AS_AVR_MRMW_OPTION, 1,
|
|
|
|
[Define if your avr assembler supports -mrmw option.])])
|
|
|
|
;;
|
|
|
|
|
2004-03-08 01:38:31 +01:00
|
|
|
cris-*-*)
|
|
|
|
gcc_GAS_CHECK_FEATURE([-no-mul-bug-abort option],
|
|
|
|
gcc_cv_as_cris_no_mul_bug,[2,15,91],
|
|
|
|
[-no-mul-bug-abort], [.text],,
|
|
|
|
[AC_DEFINE(HAVE_AS_NO_MUL_BUG_ABORT_OPTION, 1,
|
|
|
|
[Define if your assembler supports the -no-mul-bug-abort option.])])
|
|
|
|
;;
|
|
|
|
|
2003-07-12 22:03:14 +02:00
|
|
|
sparc*-*-*)
|
|
|
|
gcc_GAS_CHECK_FEATURE([.register], gcc_cv_as_sparc_register_op,,,
|
|
|
|
[.register %g2, #scratch],,
|
|
|
|
[AC_DEFINE(HAVE_AS_REGISTER_PSEUDO_OP, 1,
|
|
|
|
[Define if your assembler supports .register.])])
|
|
|
|
|
|
|
|
gcc_GAS_CHECK_FEATURE([-relax option], gcc_cv_as_sparc_relax,,
|
|
|
|
[-relax], [.text],,
|
|
|
|
[AC_DEFINE(HAVE_AS_RELAX_OPTION, 1,
|
|
|
|
[Define if your assembler supports -relax option.])])
|
|
|
|
|
2010-02-21 04:58:51 +01:00
|
|
|
gcc_GAS_CHECK_FEATURE([GOTDATA_OP relocs],
|
|
|
|
gcc_cv_as_sparc_gotdata_op,,
|
|
|
|
[-K PIC],
|
|
|
|
[.text
|
2011-04-26 20:29:11 +02:00
|
|
|
.align 4
|
2010-02-21 04:58:51 +01:00
|
|
|
foo:
|
|
|
|
nop
|
|
|
|
bar:
|
|
|
|
sethi %gdop_hix22(foo), %g1
|
|
|
|
xor %g1, %gdop_lox10(foo), %g1
|
|
|
|
ld [[%l7 + %g1]], %g2, %gdop(foo)],
|
|
|
|
[if test x$gcc_cv_ld != x \
|
2010-03-26 06:40:32 +01:00
|
|
|
&& $gcc_cv_ld -o conftest conftest.o -G > /dev/null 2>&1; then
|
2011-04-13 19:12:53 +02:00
|
|
|
if test x$gcc_cv_objdump != x; then
|
|
|
|
if $gcc_cv_objdump -s -j .text conftest 2> /dev/null \
|
|
|
|
| grep ' 03000004 82186004 c405c001'> /dev/null 2>&1; then
|
2010-03-26 06:40:32 +01:00
|
|
|
gcc_cv_as_sparc_gotdata_op=no
|
2011-04-13 19:12:53 +02:00
|
|
|
else
|
2010-03-26 06:40:32 +01:00
|
|
|
gcc_cv_as_sparc_gotdata_op=yes
|
|
|
|
fi
|
|
|
|
fi
|
2010-02-21 04:58:51 +01:00
|
|
|
fi
|
|
|
|
rm -f conftest],
|
|
|
|
[AC_DEFINE(HAVE_AS_SPARC_GOTDATA_OP, 1,
|
|
|
|
[Define if your assembler and linker support GOTDATA_OP relocs.])])
|
|
|
|
|
2003-07-12 22:03:14 +02:00
|
|
|
gcc_GAS_CHECK_FEATURE([unaligned pcrel relocs],
|
|
|
|
gcc_cv_as_sparc_ua_pcrel,,
|
|
|
|
[-K PIC],
|
|
|
|
[.text
|
|
|
|
foo:
|
|
|
|
nop
|
|
|
|
.data
|
|
|
|
.align 4
|
|
|
|
.byte 0
|
|
|
|
.uaword %r_disp32(foo)],
|
|
|
|
[if test x$gcc_cv_ld != x \
|
|
|
|
&& $gcc_cv_ld -o conftest conftest.o -G > /dev/null 2>&1; then
|
|
|
|
gcc_cv_as_sparc_ua_pcrel=yes
|
|
|
|
fi
|
|
|
|
rm -f conftest],
|
|
|
|
[AC_DEFINE(HAVE_AS_SPARC_UA_PCREL, 1,
|
2001-12-28 10:55:14 +01:00
|
|
|
[Define if your assembler and linker support unaligned PC relative relocs.])
|
2002-04-04 00:21:12 +02:00
|
|
|
|
2003-07-12 22:03:14 +02:00
|
|
|
gcc_GAS_CHECK_FEATURE([unaligned pcrel relocs against hidden symbols],
|
|
|
|
gcc_cv_as_sparc_ua_pcrel_hidden,,
|
|
|
|
[-K PIC],
|
|
|
|
[.data
|
|
|
|
.align 4
|
|
|
|
.byte 0x31
|
|
|
|
.uaword %r_disp32(foo)
|
|
|
|
.byte 0x32, 0x33, 0x34
|
|
|
|
.global foo
|
|
|
|
.hidden foo
|
|
|
|
foo:
|
|
|
|
.skip 4],
|
|
|
|
[if test x$gcc_cv_ld != x && test x$gcc_cv_objdump != x \
|
|
|
|
&& $gcc_cv_ld -o conftest conftest.o -G > /dev/null 2>&1 \
|
|
|
|
&& $gcc_cv_objdump -s -j .data conftest 2> /dev/null \
|
|
|
|
| grep ' 31000000 07323334' > /dev/null 2>&1; then
|
|
|
|
if $gcc_cv_objdump -R conftest 2> /dev/null \
|
|
|
|
| grep 'DISP32' > /dev/null 2>&1; then
|
|
|
|
:
|
2002-09-06 14:00:11 +02:00
|
|
|
else
|
2003-07-12 22:03:14 +02:00
|
|
|
gcc_cv_as_sparc_ua_pcrel_hidden=yes
|
1999-12-08 11:27:54 +01:00
|
|
|
fi
|
2003-07-12 22:03:14 +02:00
|
|
|
fi
|
|
|
|
rm -f conftest],
|
|
|
|
[AC_DEFINE(HAVE_AS_SPARC_UA_PCREL_HIDDEN, 1,
|
|
|
|
[Define if your assembler and linker support unaligned PC relative relocs against hidden symbols.])])
|
|
|
|
]) # unaligned pcrel relocs
|
|
|
|
|
|
|
|
gcc_GAS_CHECK_FEATURE([offsetable %lo()],
|
|
|
|
gcc_cv_as_sparc_offsetable_lo10,,
|
|
|
|
[-xarch=v9],
|
|
|
|
[.text
|
|
|
|
or %g1, %lo(ab) + 12, %g1
|
|
|
|
or %g1, %lo(ab + 12), %g1],
|
|
|
|
[if test x$gcc_cv_objdump != x \
|
2004-07-13 08:57:13 +02:00
|
|
|
&& $gcc_cv_objdump -s -j .text conftest.o 2> /dev/null \
|
2003-07-12 22:03:14 +02:00
|
|
|
| grep ' 82106000 82106000' > /dev/null 2>&1; then
|
2005-01-08 02:17:47 +01:00
|
|
|
gcc_cv_as_sparc_offsetable_lo10=yes
|
2003-07-12 22:03:14 +02:00
|
|
|
fi],
|
|
|
|
[AC_DEFINE(HAVE_AS_OFFSETABLE_LO10, 1,
|
|
|
|
[Define if your assembler supports offsetable %lo().])])
|
2011-09-25 23:28:51 +02:00
|
|
|
|
|
|
|
gcc_GAS_CHECK_FEATURE([FMAF, HPC, and VIS 3.0 instructions],
|
|
|
|
gcc_cv_as_sparc_fmaf,,
|
|
|
|
[-xarch=v9d],
|
|
|
|
[.text
|
2011-10-07 19:23:47 +02:00
|
|
|
.register %g2, #scratch
|
|
|
|
.register %g3, #scratch
|
2011-09-25 23:28:51 +02:00
|
|
|
.align 4
|
|
|
|
fmaddd %f0, %f2, %f4, %f6
|
|
|
|
addxccc %g1, %g2, %g3
|
|
|
|
fsrl32 %f2, %f4, %f8
|
|
|
|
fnaddd %f10, %f12, %f14],,
|
|
|
|
[AC_DEFINE(HAVE_AS_FMAF_HPC_VIS3, 1,
|
|
|
|
[Define if your assembler supports FMAF, HPC, and VIS 3.0 instructions.])])
|
2012-11-15 22:24:22 +01:00
|
|
|
|
|
|
|
gcc_GAS_CHECK_FEATURE([SPARC4 instructions],
|
|
|
|
gcc_cv_as_sparc_sparc4,,
|
|
|
|
[-xarch=sparc4],
|
|
|
|
[.text
|
|
|
|
.register %g2, #scratch
|
|
|
|
.register %g3, #scratch
|
|
|
|
.align 4
|
|
|
|
cxbe %g2, %g3, 1f
|
|
|
|
1: cwbneg %g2, %g3, 1f
|
|
|
|
1: sha1
|
|
|
|
md5
|
|
|
|
aes_kexpand0 %f4, %f6, %f8
|
|
|
|
des_round %f38, %f40, %f42, %f44
|
|
|
|
camellia_f %f54, %f56, %f58, %f60
|
|
|
|
kasumi_fi_xor %f46, %f48, %f50, %f52],,
|
|
|
|
[AC_DEFINE(HAVE_AS_SPARC4, 1,
|
|
|
|
[Define if your assembler supports SPARC4 instructions.])])
|
2013-08-09 11:13:32 +02:00
|
|
|
|
|
|
|
gcc_GAS_CHECK_FEATURE([LEON instructions],
|
|
|
|
gcc_cv_as_sparc_leon,,
|
|
|
|
[-Aleon],
|
|
|
|
[.text
|
|
|
|
.register %g2, #scratch
|
|
|
|
.register %g3, #scratch
|
|
|
|
.align 4
|
|
|
|
smac %g2, %g3, %g1
|
|
|
|
umac %g2, %g3, %g1
|
2014-04-28 12:03:46 +02:00
|
|
|
casa [[%g2]] 0xb, %g3, %g1],,
|
2013-08-09 11:13:32 +02:00
|
|
|
[AC_DEFINE(HAVE_AS_LEON, 1,
|
|
|
|
[Define if your assembler supports LEON instructions.])])
|
1999-08-03 00:58:04 +02:00
|
|
|
;;
|
|
|
|
|
|
|
|
changequote(,)dnl
|
2001-10-19 08:29:18 +02:00
|
|
|
i[34567]86-*-* | x86_64-*-*)
|
1999-08-03 00:58:04 +02:00
|
|
|
changequote([,])dnl
|
2009-12-01 00:22:04 +01:00
|
|
|
case $target_os in
|
|
|
|
cygwin*)
|
|
|
|
# Full C++ conformance when using a shared libstdc++-v3 requires some
|
|
|
|
# support from the Cygwin DLL, which in more recent versions exports
|
|
|
|
# wrappers to aid in interposing and redirecting operators new, delete,
|
|
|
|
# etc., as per n2800 #17.6.4.6 [replacement.functions]. Check if we
|
|
|
|
# are configuring for a version of Cygwin that exports the wrappers.
|
2013-03-27 22:54:50 +01:00
|
|
|
if test x$host = x$target && test x$host_cpu = xi686; then
|
2009-12-01 00:22:04 +01:00
|
|
|
AC_CHECK_FUNC([__wrap__Znaj],[gcc_ac_cygwin_dll_wrappers=yes],[gcc_ac_cygwin_dll_wrappers=no])
|
|
|
|
else
|
|
|
|
# Can't check presence of libc functions during cross-compile, so
|
|
|
|
# we just have to assume we're building for an up-to-date target.
|
|
|
|
gcc_ac_cygwin_dll_wrappers=yes
|
|
|
|
fi
|
|
|
|
AC_DEFINE_UNQUOTED(USE_CYGWIN_LIBSTDCXX_WRAPPERS,
|
|
|
|
[`if test $gcc_ac_cygwin_dll_wrappers = yes; then echo 1; else echo 0; fi`],
|
|
|
|
[Define if you want to generate code by default that assumes that the
|
|
|
|
Cygwin DLL exports wrappers to support libstdc++ function replacement.])
|
|
|
|
esac
|
2004-04-30 20:50:28 +02:00
|
|
|
case $target_os in
|
2012-01-23 07:25:28 +01:00
|
|
|
cygwin* | pe | mingw32* | interix*)
|
2009-05-28 12:48:35 +02:00
|
|
|
# Recent binutils allows the three-operand form of ".comm" on PE. This
|
|
|
|
# definition is used unconditionally to initialise the default state of
|
|
|
|
# the target option variable that governs usage of the feature.
|
|
|
|
gcc_GAS_CHECK_FEATURE([.comm with alignment], gcc_cv_as_comm_has_align,
|
|
|
|
[2,19,52],,[.comm foo,1,32])
|
|
|
|
AC_DEFINE_UNQUOTED(HAVE_GAS_ALIGNED_COMM,
|
|
|
|
[`if test $gcc_cv_as_comm_has_align = yes; then echo 1; else echo 0; fi`],
|
|
|
|
[Define if your assembler supports specifying the alignment
|
|
|
|
of objects allocated using the GAS .comm command.])
|
2004-04-30 20:50:28 +02:00
|
|
|
# Used for DWARF 2 in PE
|
|
|
|
gcc_GAS_CHECK_FEATURE([.secrel32 relocs],
|
|
|
|
gcc_cv_as_ix86_pe_secrel32,
|
|
|
|
[2,15,91],,
|
|
|
|
[.text
|
|
|
|
foo: nop
|
|
|
|
.data
|
|
|
|
.secrel32 foo],
|
|
|
|
[if test x$gcc_cv_ld != x \
|
|
|
|
&& $gcc_cv_ld -o conftest conftest.o > /dev/null 2>&1; then
|
|
|
|
gcc_cv_as_ix86_pe_secrel32=yes
|
|
|
|
fi
|
|
|
|
rm -f conftest],
|
|
|
|
[AC_DEFINE(HAVE_GAS_PE_SECREL32_RELOC, 1,
|
|
|
|
[Define if your assembler and linker support 32-bit section relative relocs via '.secrel32 label'.])])
|
2010-04-27 04:22:40 +02:00
|
|
|
# Test if the assembler supports the extended form of the .section
|
|
|
|
# directive that specifies section alignment. LTO support uses this,
|
|
|
|
# but normally only after installation, so we warn but don't fail the
|
|
|
|
# configure if LTO is enabled but the assembler does not support it.
|
|
|
|
gcc_GAS_CHECK_FEATURE([.section with alignment], gcc_cv_as_section_has_align,
|
|
|
|
[2,20,1],-fatal-warnings,[.section lto_test,"dr0"])
|
|
|
|
if test x$gcc_cv_as_section_has_align != xyes; then
|
|
|
|
case ",$enable_languages," in
|
|
|
|
*,lto,*)
|
|
|
|
AC_MSG_WARN([LTO for $target requires binutils >= 2.20.1, but version found appears insufficient; LTO will not work until binutils is upgraded.])
|
|
|
|
;;
|
|
|
|
esac
|
|
|
|
fi
|
2004-04-30 20:50:28 +02:00
|
|
|
;;
|
|
|
|
esac
|
|
|
|
|
2014-10-19 21:40:59 +02:00
|
|
|
# Test if the assembler supports the section flag 'e' for specifying
|
|
|
|
# an excluded section.
|
|
|
|
gcc_GAS_CHECK_FEATURE([.section with e], gcc_cv_as_section_has_e,
|
|
|
|
[2,22,51], [--fatal-warnings],
|
|
|
|
[.section foo1,"e"
|
|
|
|
.byte 0,0,0,0])
|
|
|
|
AC_DEFINE_UNQUOTED(HAVE_GAS_SECTION_EXCLUDE,
|
|
|
|
[`if test $gcc_cv_as_section_has_e = yes; then echo 1; else echo 0; fi`],
|
|
|
|
[Define if your assembler supports specifying the section flag e.])
|
|
|
|
|
2003-07-12 22:03:14 +02:00
|
|
|
gcc_GAS_CHECK_FEATURE([filds and fists mnemonics],
|
2009-04-25 10:10:51 +02:00
|
|
|
gcc_cv_as_ix86_filds,,,
|
2015-06-30 04:10:43 +02:00
|
|
|
[filds (%ebp); fists (%ebp)],,
|
2009-04-25 10:10:51 +02:00
|
|
|
[AC_DEFINE(HAVE_AS_IX86_FILDS, 1,
|
|
|
|
[Define if your assembler uses filds and fists mnemonics.])])
|
|
|
|
|
|
|
|
gcc_GAS_CHECK_FEATURE([fildq and fistpq mnemonics],
|
|
|
|
gcc_cv_as_ix86_fildq,,,
|
2015-06-30 04:10:43 +02:00
|
|
|
[fildq (%ebp); fistpq (%ebp)],,
|
2009-04-25 10:10:51 +02:00
|
|
|
[AC_DEFINE(HAVE_AS_IX86_FILDQ, 1,
|
|
|
|
[Define if your assembler uses fildq and fistq mnemonics.])])
|
2003-07-12 22:03:14 +02:00
|
|
|
|
2003-09-04 23:38:59 +02:00
|
|
|
gcc_GAS_CHECK_FEATURE([cmov syntax],
|
|
|
|
gcc_cv_as_ix86_cmov_sun_syntax,,,
|
|
|
|
[cmovl.l %edx, %eax],,
|
|
|
|
[AC_DEFINE(HAVE_AS_IX86_CMOV_SUN_SYNTAX, 1,
|
|
|
|
[Define if your assembler supports the Sun syntax for cmov.])])
|
|
|
|
|
2006-07-07 02:13:14 +02:00
|
|
|
gcc_GAS_CHECK_FEATURE([ffreep mnemonic],
|
|
|
|
gcc_cv_as_ix86_ffreep,,,
|
|
|
|
[ffreep %st(1)],,
|
|
|
|
[AC_DEFINE(HAVE_AS_IX86_FFREEP, 1,
|
|
|
|
[Define if your assembler supports the ffreep mnemonic.])])
|
|
|
|
|
2010-05-19 17:31:00 +02:00
|
|
|
gcc_GAS_CHECK_FEATURE([.quad directive],
|
|
|
|
gcc_cv_as_ix86_quad,,,
|
|
|
|
[.quad 0],,
|
|
|
|
[AC_DEFINE(HAVE_AS_IX86_QUAD, 1,
|
|
|
|
[Define if your assembler supports the .quad directive.])])
|
|
|
|
|
2007-03-14 22:03:59 +01:00
|
|
|
gcc_GAS_CHECK_FEATURE([sahf mnemonic],
|
|
|
|
gcc_cv_as_ix86_sahf,,,
|
2010-05-20 20:52:03 +02:00
|
|
|
[.code64
|
|
|
|
sahf],,
|
2007-03-14 22:03:59 +01:00
|
|
|
[AC_DEFINE(HAVE_AS_IX86_SAHF, 1,
|
2010-05-20 20:52:03 +02:00
|
|
|
[Define if your assembler supports the sahf mnemonic in 64bit mode.])])
|
2007-03-14 22:03:59 +01:00
|
|
|
|
2013-03-21 10:31:52 +01:00
|
|
|
gcc_GAS_CHECK_FEATURE([interunit movq mnemonic],
|
|
|
|
gcc_cv_as_ix86_interunit_movq,,,
|
|
|
|
[.code64
|
|
|
|
movq %mm0, %rax
|
2013-11-01 09:39:31 +01:00
|
|
|
movq %rax, %xmm0])
|
|
|
|
AC_DEFINE_UNQUOTED(HAVE_AS_IX86_INTERUNIT_MOVQ,
|
|
|
|
[`if test $gcc_cv_as_ix86_interunit_movq = yes; then echo 1; else echo 0; fi`],
|
|
|
|
[Define if your assembler supports interunit movq mnemonic.])
|
2013-03-21 10:31:52 +01:00
|
|
|
|
2012-05-02 17:32:01 +02:00
|
|
|
gcc_GAS_CHECK_FEATURE([hle prefixes],
|
|
|
|
gcc_cv_as_ix86_hle,,,
|
2012-09-06 23:45:46 +02:00
|
|
|
[lock xacquire cmpxchg %esi, (%ecx)],,
|
2012-05-02 17:32:01 +02:00
|
|
|
[AC_DEFINE(HAVE_AS_IX86_HLE, 1,
|
|
|
|
[Define if your assembler supports HLE prefixes.])])
|
|
|
|
|
2009-10-12 18:36:37 +02:00
|
|
|
gcc_GAS_CHECK_FEATURE([swap suffix],
|
|
|
|
gcc_cv_as_ix86_swap,,,
|
|
|
|
[movl.s %esp, %ebp],,
|
|
|
|
[AC_DEFINE(HAVE_AS_IX86_SWAP, 1,
|
|
|
|
[Define if your assembler supports the swap suffix.])])
|
|
|
|
|
2006-11-02 01:56:38 +01:00
|
|
|
gcc_GAS_CHECK_FEATURE([different section symbol subtraction],
|
|
|
|
gcc_cv_as_ix86_diff_sect_delta,,,
|
|
|
|
[.section .rodata
|
|
|
|
.L1:
|
|
|
|
.long .L2-.L1
|
|
|
|
.long .L3-.L1
|
|
|
|
.text
|
|
|
|
.L3: nop
|
|
|
|
.L2: nop],,
|
|
|
|
[AC_DEFINE(HAVE_AS_IX86_DIFF_SECT_DELTA, 1,
|
|
|
|
[Define if your assembler supports the subtraction of symbols in different sections.])])
|
|
|
|
|
2010-05-17 22:28:56 +02:00
|
|
|
# These two are used unconditionally by i386.[ch]; it is to be defined
|
2003-07-13 04:53:00 +02:00
|
|
|
# to 1 if the feature is present, 0 otherwise.
|
2014-02-12 17:12:36 +01:00
|
|
|
as_ix86_gotoff_in_data_opt=
|
|
|
|
if test x$gas = xyes; then
|
|
|
|
as_ix86_gotoff_in_data_opt="--32"
|
|
|
|
fi
|
2003-07-12 22:03:14 +02:00
|
|
|
gcc_GAS_CHECK_FEATURE([GOTOFF in data],
|
2014-02-12 17:12:36 +01:00
|
|
|
gcc_cv_as_ix86_gotoff_in_data, [2,11,0],
|
|
|
|
[$as_ix86_gotoff_in_data_opt],
|
2003-07-12 22:03:14 +02:00
|
|
|
[ .text
|
configure.in (HAVE_AS_GOTOFF_IN_DATA): New x86 check.
* configure.in (HAVE_AS_GOTOFF_IN_DATA): New x86 check.
* configure, config.in: Rebuild.
* config/i386/i386.c (ix86_output_addr_vec_elt): New.
(ix86_output_addr_diff_elt): New.
* config/i386/i386.h (ASM_OUTPUT_ADDR_VEC_ELT): Use them.
(ASM_OUTPUT_ADDR_DIFF_ELT): Likewise.
(JUMP_TABLES_IN_TEXT_SECTION): New.
* config/i386/i386.md (tablejump): Handle HAVE_AS_GOTOFF_IN_DATA.
* config/i386/i386-protos.h: Update.
* config/i386/386bsd.h, config/i386/beos-elf.h,
config/i386/freebsd-aout.h, config/i386/freebsd.h,
config/i386/i386-interix.h, config/i386/i386elf.h,
config/i386/linux.h, config/i386/netbsd-elf.h,
config/i386/netbsd.h, config/i386/openbsd.h,
config/i386/ptx4-i.h, config/i386/rtemself.h,
config/i386/sco5.h, config/i386/sysv4.h, config/i386/x86-64.h
(ASM_OUTPUT_ADDR_DIFF_ELT, JUMP_TABLES_IN_TEXT_SECTION): Remove.
From-SVN: r46303
2001-10-17 03:39:47 +02:00
|
|
|
.L0:
|
|
|
|
nop
|
|
|
|
.data
|
2003-07-13 04:53:00 +02:00
|
|
|
.long .L0@GOTOFF])
|
|
|
|
AC_DEFINE_UNQUOTED(HAVE_AS_GOTOFF_IN_DATA,
|
|
|
|
[`if test $gcc_cv_as_ix86_gotoff_in_data = yes; then echo 1; else echo 0; fi`],
|
|
|
|
[Define true if the assembler supports '.long foo@GOTOFF'.])
|
2010-05-17 22:28:56 +02:00
|
|
|
|
|
|
|
gcc_GAS_CHECK_FEATURE([rep and lock prefix],
|
|
|
|
gcc_cv_as_ix86_rep_lock_prefix,,,
|
|
|
|
[rep movsl
|
2012-07-03 09:15:09 +02:00
|
|
|
rep ret
|
|
|
|
rep nop
|
|
|
|
rep bsf %ecx, %eax
|
|
|
|
rep bsr %ecx, %eax
|
2010-07-09 18:02:58 +02:00
|
|
|
lock addl %edi, (%eax,%esi)
|
2010-07-09 23:00:08 +02:00
|
|
|
lock orl $0, (%esp)],,
|
|
|
|
[AC_DEFINE(HAVE_AS_IX86_REP_LOCK_PREFIX, 1,
|
|
|
|
[Define if the assembler supports 'rep <insn>, lock <insn>'.])])
|
2010-05-17 22:28:56 +02:00
|
|
|
|
2014-02-14 18:37:23 +01:00
|
|
|
gcc_GAS_CHECK_FEATURE([ud2 mnemonic],
|
|
|
|
gcc_cv_as_ix86_ud2,,,
|
|
|
|
[ud2],,
|
|
|
|
[AC_DEFINE(HAVE_AS_IX86_UD2, 1,
|
|
|
|
[Define if your assembler supports the 'ud2' mnemonic.])])
|
|
|
|
|
2011-05-27 17:45:56 +02:00
|
|
|
gcc_GAS_CHECK_FEATURE([R_386_TLS_GD_PLT reloc],
|
|
|
|
gcc_cv_as_ix86_tlsgdplt,,,
|
2012-01-10 14:21:53 +01:00
|
|
|
[call tls_gd@tlsgdplt],
|
|
|
|
[if test x$gcc_cv_ld != x \
|
|
|
|
&& $gcc_cv_ld -o conftest conftest.o -G > /dev/null 2>&1; then
|
|
|
|
gcc_cv_as_ix86_tlsgdplt=yes
|
|
|
|
fi
|
|
|
|
rm -f conftest],
|
2011-05-27 17:45:56 +02:00
|
|
|
[AC_DEFINE(HAVE_AS_IX86_TLSGDPLT, 1,
|
2012-01-10 14:21:53 +01:00
|
|
|
[Define if your assembler and linker support @tlsgdplt.])])
|
2011-05-27 17:45:56 +02:00
|
|
|
|
2014-03-07 12:33:39 +01:00
|
|
|
conftest_s='
|
|
|
|
.section .tdata,"aw'$tls_section_flag'",@progbits
|
|
|
|
tls_ld:
|
|
|
|
.section .text,"ax",@progbits
|
|
|
|
call tls_ld@tlsldmplt'
|
2011-05-27 17:45:56 +02:00
|
|
|
gcc_GAS_CHECK_FEATURE([R_386_TLS_LDM_PLT reloc],
|
|
|
|
gcc_cv_as_ix86_tlsldmplt,,,
|
2014-03-07 12:33:39 +01:00
|
|
|
[$conftest_s],
|
2012-01-10 14:21:53 +01:00
|
|
|
[if test x$gcc_cv_ld != x \
|
|
|
|
&& $gcc_cv_ld -o conftest conftest.o -G > /dev/null 2>&1; then
|
|
|
|
gcc_cv_as_ix86_tlsldmplt=yes
|
|
|
|
fi
|
2014-03-07 12:30:40 +01:00
|
|
|
rm -f conftest])
|
|
|
|
AC_DEFINE_UNQUOTED(HAVE_AS_IX86_TLSLDMPLT,
|
|
|
|
[`if test $gcc_cv_as_ix86_tlsldmplt = yes; then echo 1; else echo 0; fi`],
|
|
|
|
[Define to 1 if your assembler and linker support @tlsldmplt.])
|
|
|
|
|
|
|
|
# Enforce 32-bit output with gas and gld.
|
|
|
|
if test x$gas = xyes; then
|
|
|
|
as_ix86_tls_ldm_opt="--32"
|
|
|
|
fi
|
|
|
|
if echo "$ld_ver" | grep GNU > /dev/null; then
|
|
|
|
if $gcc_cv_ld -V 2>/dev/null | grep elf_i386_sol2 > /dev/null; then
|
|
|
|
ld_ix86_tls_ldm_opt="-melf_i386_sol2"
|
|
|
|
else
|
|
|
|
ld_ix86_tls_ldm_opt="-melf_i386"
|
|
|
|
fi
|
|
|
|
fi
|
|
|
|
conftest_s='
|
|
|
|
.section .text,"ax",@progbits
|
|
|
|
.globl _start
|
|
|
|
.type _start, @function
|
|
|
|
_start:
|
|
|
|
leal value@tlsldm(%ebx), %eax
|
|
|
|
call ___tls_get_addr@plt
|
|
|
|
|
|
|
|
.section .tdata,"aw'$tls_section_flag'",@progbits
|
|
|
|
.type value, @object
|
|
|
|
value:'
|
|
|
|
gcc_GAS_CHECK_FEATURE([R_386_TLS_LDM reloc],
|
|
|
|
gcc_cv_as_ix86_tlsldm,,
|
|
|
|
[$as_ix86_tls_ldm_opt],
|
|
|
|
[$conftest_s],
|
|
|
|
[if test x$gcc_cv_ld != x && test x$gcc_cv_objdump != x \
|
|
|
|
&& $gcc_cv_ld $ld_ix86_tls_ldm_opt -o conftest conftest.o $ld_tls_libs -lc > /dev/null 2>&1; then
|
|
|
|
if $gcc_cv_objdump -d conftest 2>/dev/null | grep nop > /dev/null \
|
|
|
|
|| dis conftest 2>/dev/null | grep nop > /dev/null; then
|
|
|
|
gcc_cv_as_ix86_tlsldm=yes
|
|
|
|
fi
|
|
|
|
fi
|
|
|
|
rm -f conftest])
|
|
|
|
AC_DEFINE_UNQUOTED(HAVE_AS_IX86_TLSLDM,
|
|
|
|
[`if test $gcc_cv_as_ix86_tlsldm = yes; then echo 1; else echo 0; fi`],
|
|
|
|
[Define to 1 if your assembler and linker support @tlsldm.])
|
2011-05-27 17:45:56 +02:00
|
|
|
|
1999-08-03 00:58:04 +02:00
|
|
|
;;
|
2003-03-02 23:15:51 +01:00
|
|
|
|
|
|
|
ia64*-*-*)
|
2003-07-12 22:03:14 +02:00
|
|
|
gcc_GAS_CHECK_FEATURE([ltoffx and ldxmov relocs],
|
|
|
|
gcc_cv_as_ia64_ltoffx_ldxmov_relocs, [2,14,0],,
|
2003-08-08 07:36:02 +02:00
|
|
|
[ .text
|
2003-03-02 23:15:51 +01:00
|
|
|
addl r15 = @ltoffx(x#), gp
|
|
|
|
;;
|
2003-08-08 07:36:02 +02:00
|
|
|
ld8.mov r16 = [[r15]], x#],,
|
2003-07-12 22:03:14 +02:00
|
|
|
[AC_DEFINE(HAVE_AS_LTOFFX_LDXMOV_RELOCS, 1,
|
|
|
|
[Define if your assembler supports ltoffx and ldxmov relocations.])])
|
|
|
|
|
2003-03-02 23:15:51 +01:00
|
|
|
;;
|
2003-07-12 22:03:14 +02:00
|
|
|
|
2003-07-08 03:45:30 +02:00
|
|
|
powerpc*-*-*)
|
2003-07-12 22:03:14 +02:00
|
|
|
case $target in
|
2005-05-07 20:51:50 +02:00
|
|
|
*-*-aix*) conftest_s=' .machine "pwr5"
|
|
|
|
.csect .text[[PR]]
|
2004-02-05 18:09:05 +01:00
|
|
|
mfcr 3,128';;
|
2004-11-28 07:06:26 +01:00
|
|
|
*-*-darwin*)
|
|
|
|
gcc_GAS_CHECK_FEATURE([.machine directive support],
|
|
|
|
gcc_cv_as_machine_directive,,,
|
|
|
|
[ .machine ppc7400])
|
|
|
|
if test x$gcc_cv_as_machine_directive != xyes; then
|
|
|
|
echo "*** This target requires an assembler supporting \".machine\"" >&2
|
|
|
|
echo you can get it from: ftp://gcc.gnu.org/pub/gcc/infrastructure/cctools-528.5.dmg >&2
|
|
|
|
test x$build = x$target && exit 1
|
|
|
|
fi
|
|
|
|
conftest_s=' .text
|
2004-02-05 18:09:05 +01:00
|
|
|
mfcr r3,128';;
|
2004-10-19 02:21:03 +02:00
|
|
|
*) conftest_s=' .machine power4
|
2004-10-15 04:26:15 +02:00
|
|
|
.text
|
2004-02-05 18:09:05 +01:00
|
|
|
mfcr 3,128';;
|
2003-07-12 22:03:14 +02:00
|
|
|
esac
|
|
|
|
|
|
|
|
gcc_GAS_CHECK_FEATURE([mfcr field support],
|
|
|
|
gcc_cv_as_powerpc_mfcrf, [2,14,0],,
|
|
|
|
[$conftest_s],,
|
|
|
|
[AC_DEFINE(HAVE_AS_MFCRF, 1,
|
|
|
|
[Define if your assembler supports mfcr field.])])
|
2005-05-07 20:51:50 +02:00
|
|
|
|
|
|
|
case $target in
|
|
|
|
*-*-aix*) conftest_s=' .machine "pwr5"
|
|
|
|
.csect .text[[PR]]
|
|
|
|
popcntb 3,3';;
|
|
|
|
*) conftest_s=' .machine power5
|
|
|
|
.text
|
|
|
|
popcntb 3,3';;
|
|
|
|
esac
|
|
|
|
|
|
|
|
gcc_GAS_CHECK_FEATURE([popcntb support],
|
|
|
|
gcc_cv_as_powerpc_popcntb, [2,17,0],,
|
|
|
|
[$conftest_s],,
|
|
|
|
[AC_DEFINE(HAVE_AS_POPCNTB, 1,
|
|
|
|
[Define if your assembler supports popcntb field.])])
|
|
|
|
|
invoke.texi (RS/6000 and PowerPC Options): Add -mmfcrf, -mpopcntb, -mfprnd.
* doc/invoke.texi (RS/6000 and PowerPC Options): Add -mmfcrf,
-mpopcntb, -mfprnd. Add -mcpu=power5+.
* configure.ac: Add test for FP rounding instructions.
* configure: Regenerate.
* config.in: Regenerate.
* config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Define
_ARCH_PPCSQ, _ARCH_PPCGR, _ARCH_PWR4, _ARCH_PWR5, _ARCH_PWR5X if
features enabled.
* config/rs6000/rs6000.opt (mfprnd): New.
* config/rs6000/rs6000.c (processor_target_table): Add power5+.
(POWERPC_MASKS): Add MASK_POPCNTB and MASK_FPRND.
* config/rs6000/aix52.h (ASM_CPU_SPEC): Add -mpower5+.
* config/rs6000/rs6000.h (ASM_CPU_SPEC): Add -mpower5+.
(TARGET_FPRND): New.
* config/rs6000/rs6000.md (UNSPEC_FRIM, UNSPEC_FRIN, UNSPEC_FRIP,
UNSPEC_FRIZ): New.
(btrunc<mode>2): New.
(ceil<mode>2): New.
(floor<mode>2): New.
(round<mode>2): New.
From-SVN: r106938
2005-11-15 06:00:40 +01:00
|
|
|
case $target in
|
|
|
|
*-*-aix*) conftest_s=' .machine "pwr5x"
|
|
|
|
.csect .text[[PR]]
|
|
|
|
frin 1,1';;
|
2005-11-16 03:54:55 +01:00
|
|
|
*) conftest_s=' .machine power5
|
invoke.texi (RS/6000 and PowerPC Options): Add -mmfcrf, -mpopcntb, -mfprnd.
* doc/invoke.texi (RS/6000 and PowerPC Options): Add -mmfcrf,
-mpopcntb, -mfprnd. Add -mcpu=power5+.
* configure.ac: Add test for FP rounding instructions.
* configure: Regenerate.
* config.in: Regenerate.
* config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Define
_ARCH_PPCSQ, _ARCH_PPCGR, _ARCH_PWR4, _ARCH_PWR5, _ARCH_PWR5X if
features enabled.
* config/rs6000/rs6000.opt (mfprnd): New.
* config/rs6000/rs6000.c (processor_target_table): Add power5+.
(POWERPC_MASKS): Add MASK_POPCNTB and MASK_FPRND.
* config/rs6000/aix52.h (ASM_CPU_SPEC): Add -mpower5+.
* config/rs6000/rs6000.h (ASM_CPU_SPEC): Add -mpower5+.
(TARGET_FPRND): New.
* config/rs6000/rs6000.md (UNSPEC_FRIM, UNSPEC_FRIN, UNSPEC_FRIP,
UNSPEC_FRIZ): New.
(btrunc<mode>2): New.
(ceil<mode>2): New.
(floor<mode>2): New.
(round<mode>2): New.
From-SVN: r106938
2005-11-15 06:00:40 +01:00
|
|
|
.text
|
|
|
|
frin 1,1';;
|
|
|
|
esac
|
|
|
|
|
|
|
|
gcc_GAS_CHECK_FEATURE([fp round support],
|
|
|
|
gcc_cv_as_powerpc_fprnd, [2,17,0],,
|
|
|
|
[$conftest_s],,
|
|
|
|
[AC_DEFINE(HAVE_AS_FPRND, 1,
|
|
|
|
[Define if your assembler supports fprnd.])])
|
|
|
|
|
invoke.texi: Add cpu_type power6x (RS/6000 and PowerPC Options): Add -mmfpgpr.
* doc/invoke.texi: Add cpu_type power6x
(RS/6000 and PowerPC Options): Add -mmfpgpr.
* config.gcc: Add cpu_type power6x.
* configure.ac: Add test for mf{t,f}gpr instructions.
(HAVE_AS_MFPGPR): New.
* config.in: Regenerate.
* configure: Regenerate.
* config/rs6000/aix52.h (ASM_CPU_SPEC): Add power6x.
* config/rs6000/rs6000.md (define_attr "type"): Add insert_dword,
shift,trap,var_shift_rotate,cntlz,exts, var_delayed_compare, mffgpr
and mftgpr attributes.
(define_attr "cpu"): Add power6.
Change instruction sequences to use new attributes.
(floatsidf2,fix_truncdfsi2): use TARGET_MFPGPR.
(fix_truncdfsi2_mfpgpr): New.
(floatsidf_ppc64_mfpgpr): New.
(floatsidf_ppc64): Added !TARGET_MFPGPR condition.
(movdf_hardfloat64_mfpgpr,movdi_mfpgpr): New.
(movdf_hardfloat64): Added !TARGET_MFPGPR condition.
(movdi_internal64): Added !TARGET_MFPGPR and related conditions.
(fix_truncdfsi2): Use gpc_reg_operand constraint.
* config/rs6000/{6xx.md,power4.md,8540.md,603.md,mpc.md,
7xx.md,rios2.md,7450.md,440.md,rios1.md,rs64.md,power5.md,40x.md}:
Add descriptions for insert_dword, shift,trap,var_shift_rotate,
cntlz,exts and var_delayed_compare.
* config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Define
_ARCH_PWR6X, if features enabled.
* config/rs6000/rs6000.opt (mmfpgpr): New.
* config/rs6000/rs6000.c (rs6000_align_branch_targets): New variable.
(cached_can_issue_more): New variable.
(processor_costs): Add power6_cost.
(rs6000_sched_init): New function.
(is_dispatch_slot_restricted): Deleted.
(set_to_load_agen): New function.
(is_load_insn,is_store_insn): New functions.
(adjacent_mem_locations): New function.
(insn_must_be_first_in_group): New function.
(insn_must_be_last_in_group): New function.
(rs6000_sched_reorder): New function.
(rs6000_sched_reorder2): New function.
(TARGET_SCHED_INIT,TARGET_SCHED_REORDER,
TARGET_SCHED_REORDER2): Define.
(processor_target_table): Use PROCESSOR_POWER6 for power6.
Add power6x. Add MASK_MFPGPR for power6x.
(POWERPC_MASKS): Add MASK_MFPGPR.
(rs6000_override_options): Set rs6000_always_hint to false
for power6. Set rs6000_align_branch_targets. Replace
rs6000_sched_groups check with rs6000_align_branch_targets.
Use PROCESSOR_POWER6.
(last_scheduled_insn): New variable.
(load_store_pendulum): New variable.
(rs6000_variable_issue): Set last_scheduled_insn and
cached_can_issue_more.
(rs6000_adjust_cost): Add power6 cost adjustments.
(rs6000_adjust_priority): Replace is_dispatch_slot_restricted
with insn_must_be_first_in_group. Add power6 priority adjustments.
(rs6000_issue_rate): Add CPU_POWER6.
(insn_terminates_group_p): Use insn_must_be_{first,last}_in_group.
* config/rs6000/rs6000.h (processor_type): Add PROCESSOR_POWER6.
(TARGET_MFPGPR): New.
(SECONDARY_MEMORY_NEEDED): Use TARGET_MFPGPR.
(ASM_CPU_SPEC): Add power6x.
(SECONDARY_MEMORY_NEEDED): Added mode!=DFmode and mode!=DImode
conditions.
* config/rs6000/power6.md: New file.
Co-Authored-By: Peter Bergner <bergner@vnet.ibm.com>
From-SVN: r118396
2006-11-01 21:47:53 +01:00
|
|
|
case $target in
|
|
|
|
*-*-aix*) conftest_s=' .machine "pwr6"
|
|
|
|
.csect .text[[PR]]
|
|
|
|
mffgpr 1,3';;
|
|
|
|
*) conftest_s=' .machine power6
|
|
|
|
.text
|
|
|
|
mffgpr 1,3';;
|
|
|
|
esac
|
|
|
|
|
|
|
|
gcc_GAS_CHECK_FEATURE([move fp gpr support],
|
2009-06-23 22:15:15 +02:00
|
|
|
gcc_cv_as_powerpc_mfpgpr, [2,19,2],,
|
invoke.texi: Add cpu_type power6x (RS/6000 and PowerPC Options): Add -mmfpgpr.
* doc/invoke.texi: Add cpu_type power6x
(RS/6000 and PowerPC Options): Add -mmfpgpr.
* config.gcc: Add cpu_type power6x.
* configure.ac: Add test for mf{t,f}gpr instructions.
(HAVE_AS_MFPGPR): New.
* config.in: Regenerate.
* configure: Regenerate.
* config/rs6000/aix52.h (ASM_CPU_SPEC): Add power6x.
* config/rs6000/rs6000.md (define_attr "type"): Add insert_dword,
shift,trap,var_shift_rotate,cntlz,exts, var_delayed_compare, mffgpr
and mftgpr attributes.
(define_attr "cpu"): Add power6.
Change instruction sequences to use new attributes.
(floatsidf2,fix_truncdfsi2): use TARGET_MFPGPR.
(fix_truncdfsi2_mfpgpr): New.
(floatsidf_ppc64_mfpgpr): New.
(floatsidf_ppc64): Added !TARGET_MFPGPR condition.
(movdf_hardfloat64_mfpgpr,movdi_mfpgpr): New.
(movdf_hardfloat64): Added !TARGET_MFPGPR condition.
(movdi_internal64): Added !TARGET_MFPGPR and related conditions.
(fix_truncdfsi2): Use gpc_reg_operand constraint.
* config/rs6000/{6xx.md,power4.md,8540.md,603.md,mpc.md,
7xx.md,rios2.md,7450.md,440.md,rios1.md,rs64.md,power5.md,40x.md}:
Add descriptions for insert_dword, shift,trap,var_shift_rotate,
cntlz,exts and var_delayed_compare.
* config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Define
_ARCH_PWR6X, if features enabled.
* config/rs6000/rs6000.opt (mmfpgpr): New.
* config/rs6000/rs6000.c (rs6000_align_branch_targets): New variable.
(cached_can_issue_more): New variable.
(processor_costs): Add power6_cost.
(rs6000_sched_init): New function.
(is_dispatch_slot_restricted): Deleted.
(set_to_load_agen): New function.
(is_load_insn,is_store_insn): New functions.
(adjacent_mem_locations): New function.
(insn_must_be_first_in_group): New function.
(insn_must_be_last_in_group): New function.
(rs6000_sched_reorder): New function.
(rs6000_sched_reorder2): New function.
(TARGET_SCHED_INIT,TARGET_SCHED_REORDER,
TARGET_SCHED_REORDER2): Define.
(processor_target_table): Use PROCESSOR_POWER6 for power6.
Add power6x. Add MASK_MFPGPR for power6x.
(POWERPC_MASKS): Add MASK_MFPGPR.
(rs6000_override_options): Set rs6000_always_hint to false
for power6. Set rs6000_align_branch_targets. Replace
rs6000_sched_groups check with rs6000_align_branch_targets.
Use PROCESSOR_POWER6.
(last_scheduled_insn): New variable.
(load_store_pendulum): New variable.
(rs6000_variable_issue): Set last_scheduled_insn and
cached_can_issue_more.
(rs6000_adjust_cost): Add power6 cost adjustments.
(rs6000_adjust_priority): Replace is_dispatch_slot_restricted
with insn_must_be_first_in_group. Add power6 priority adjustments.
(rs6000_issue_rate): Add CPU_POWER6.
(insn_terminates_group_p): Use insn_must_be_{first,last}_in_group.
* config/rs6000/rs6000.h (processor_type): Add PROCESSOR_POWER6.
(TARGET_MFPGPR): New.
(SECONDARY_MEMORY_NEEDED): Use TARGET_MFPGPR.
(ASM_CPU_SPEC): Add power6x.
(SECONDARY_MEMORY_NEEDED): Added mode!=DFmode and mode!=DImode
conditions.
* config/rs6000/power6.md: New file.
Co-Authored-By: Peter Bergner <bergner@vnet.ibm.com>
From-SVN: r118396
2006-11-01 21:47:53 +01:00
|
|
|
[$conftest_s],,
|
|
|
|
[AC_DEFINE(HAVE_AS_MFPGPR, 1,
|
|
|
|
[Define if your assembler supports mffgpr and mftgpr.])])
|
|
|
|
|
configure.ac: Add --enable-secureplt.
* configure.ac: Add --enable-secureplt.
(HAVE_AS_REL16): Test for R_PPC_REL16 relocs.
* config.in: Regenerate.
* configure: Regenerate.
* config.gcc (powerpc64-*-linux*, powerpc-*-linux*): Add
rs6000/secureplt.h to tm_file when enable_secureplt.
* doc/invoke.texi (msecure-plt, mbss-plt): Document.
* doc/install.texi: Document --enable-targets and --enable-secureplt.
Correct xrefs to "Using the GNU Compiler Collection (GCC)".
* config/rs6000/secureplt.h: New file.
* config/rs6000/sysv4.h (TARGET_SECURE_PLT): Define.
(SUBTARGET_OVERRIDE_OPTIONS): Error if -msecure-plt given without
assembler support.
(CC1_SECURE_PLT_DEFAULT_SPEC): Define.
(CC1_SPEC): Delete duplicate mno-sdata. Invoke cc1_secure_plt_default.
(SUBTARGET_EXTRA_SPECS): Add cc1_secure_plt_default.
* config/rs6000/sysv4.opt (msecure-plt, bss-plt): Add options.
* config/rs6000/rs6000.h (TARGET_SECURE_PLT): Define.
* config/rs6000/rs6000.c (rs6000_emit_load_toc_table): Handle
TARGET_SECURE_PLT got register load sequence.
(rs6000_emit_prologue): Call rs6000_emit_load_toc_table when
TARGET_SECURE_PLT.
(rs6000_elf_declare_function_name): Don't emit toc address offset
word when TARGET_SECURE_PLT.
* config/rs6000/rs6000.md (elf_high, elf_low): Move past load_toc_*.
(load_toc_v4_PIC_1) Enable for TARGET_SECURE_PLT.
(load_toc_v4_PIC_3b, load_toc_v4_PIC_3c): New insns.
(call, call_value): Mark pic_offset_table_rtx used for sysv pic and
TARGET_SECURE_PLT.
(call_nonlocal_sysv, call_value_nonlocal_sysv, sibcall_nonlocal_sysv,
sibcall_value_nonlocal_sysv): Add 32768 offset when TARGET_SECURE_PLT
and -fPIC.
* config/rs6000/tramp.asm (trampoline_initial): Use "bcl 20,31".
(__trampoline_setup): Likewise. Init r30 before plt call.
From-SVN: r100415
2005-06-01 02:30:26 +02:00
|
|
|
case $target in
|
|
|
|
*-*-aix*) conftest_s=' .csect .text[[PR]]
|
|
|
|
LCF..0:
|
|
|
|
addis 11,30,_GLOBAL_OFFSET_TABLE_-LCF..0@ha';;
|
|
|
|
*-*-darwin*)
|
|
|
|
conftest_s=' .text
|
|
|
|
LCF0:
|
|
|
|
addis r11,r30,_GLOBAL_OFFSET_TABLE_-LCF0@ha';;
|
|
|
|
*) conftest_s=' .text
|
|
|
|
.LCF0:
|
|
|
|
addis 11,30,_GLOBAL_OFFSET_TABLE_-.LCF0@ha';;
|
|
|
|
esac
|
|
|
|
|
2007-03-03 20:23:06 +01:00
|
|
|
gcc_GAS_CHECK_FEATURE([rel16 relocs],
|
|
|
|
gcc_cv_as_powerpc_rel16, [2,17,0], -a32,
|
|
|
|
[$conftest_s],,
|
|
|
|
[AC_DEFINE(HAVE_AS_REL16, 1,
|
|
|
|
[Define if your assembler supports R_PPC_REL16 relocs.])])
|
|
|
|
|
2007-02-21 00:11:43 +01:00
|
|
|
case $target in
|
|
|
|
*-*-aix*) conftest_s=' .machine "pwr6"
|
|
|
|
.csect .text[[PR]]
|
|
|
|
cmpb 3,4,5';;
|
|
|
|
*) conftest_s=' .machine power6
|
|
|
|
.text
|
|
|
|
cmpb 3,4,5';;
|
|
|
|
esac
|
|
|
|
|
|
|
|
gcc_GAS_CHECK_FEATURE([compare bytes support],
|
2009-06-23 22:15:15 +02:00
|
|
|
gcc_cv_as_powerpc_cmpb, [2,19,2], -a32,
|
2007-02-21 00:11:43 +01:00
|
|
|
[$conftest_s],,
|
|
|
|
[AC_DEFINE(HAVE_AS_CMPB, 1,
|
|
|
|
[Define if your assembler supports cmpb.])])
|
|
|
|
|
|
|
|
case $target in
|
|
|
|
*-*-aix*) conftest_s=' .machine "pwr6"
|
|
|
|
.csect .text[[PR]]
|
2007-03-28 00:14:02 +02:00
|
|
|
dadd 1,2,3';;
|
2007-02-21 00:11:43 +01:00
|
|
|
*) conftest_s=' .machine power6
|
|
|
|
.text
|
2007-03-28 00:14:02 +02:00
|
|
|
dadd 1,2,3';;
|
2007-02-21 00:11:43 +01:00
|
|
|
esac
|
|
|
|
|
|
|
|
gcc_GAS_CHECK_FEATURE([decimal float support],
|
2009-06-23 22:15:15 +02:00
|
|
|
gcc_cv_as_powerpc_dfp, [2,19,2], -a32,
|
2007-02-21 00:11:43 +01:00
|
|
|
[$conftest_s],,
|
|
|
|
[AC_DEFINE(HAVE_AS_DFP, 1,
|
|
|
|
[Define if your assembler supports DFP instructions.])])
|
2007-07-02 12:46:35 +02:00
|
|
|
|
2008-08-08 23:40:18 +02:00
|
|
|
case $target in
|
|
|
|
*-*-aix*) conftest_s=' .machine "pwr7"
|
|
|
|
.csect .text[[PR]]
|
|
|
|
lxvd2x 1,2,3';;
|
|
|
|
*) conftest_s=' .machine power7
|
|
|
|
.text
|
|
|
|
lxvd2x 1,2,3';;
|
|
|
|
esac
|
|
|
|
|
|
|
|
gcc_GAS_CHECK_FEATURE([vector-scalar support],
|
2009-06-23 22:15:15 +02:00
|
|
|
gcc_cv_as_powerpc_vsx, [2,19,2], -a32,
|
2008-08-08 23:40:18 +02:00
|
|
|
[$conftest_s],,
|
|
|
|
[AC_DEFINE(HAVE_AS_VSX, 1,
|
|
|
|
[Define if your assembler supports VSX instructions.])])
|
|
|
|
|
2009-06-23 22:15:15 +02:00
|
|
|
case $target in
|
|
|
|
*-*-aix*) conftest_s=' .machine "pwr7"
|
|
|
|
.csect .text[[PR]]
|
|
|
|
popcntd 3,3';;
|
|
|
|
*) conftest_s=' .machine power7
|
|
|
|
.text
|
|
|
|
popcntd 3,3';;
|
|
|
|
esac
|
|
|
|
|
|
|
|
gcc_GAS_CHECK_FEATURE([popcntd support],
|
|
|
|
gcc_cv_as_powerpc_popcntd, [2,19,2], -a32,
|
|
|
|
[$conftest_s],,
|
|
|
|
[AC_DEFINE(HAVE_AS_POPCNTD, 1,
|
|
|
|
[Define if your assembler supports POPCNTD instructions.])])
|
|
|
|
|
2012-11-07 20:49:51 +01:00
|
|
|
case $target in
|
|
|
|
*-*-aix*) conftest_s=' .machine "pwr8"
|
|
|
|
.csect .text[[PR]]';;
|
|
|
|
*) conftest_s=' .machine power8
|
|
|
|
.text';;
|
|
|
|
esac
|
|
|
|
|
|
|
|
gcc_GAS_CHECK_FEATURE([power8 support],
|
|
|
|
gcc_cv_as_powerpc_power8, [2,19,2], -a32,
|
|
|
|
[$conftest_s],,
|
|
|
|
[AC_DEFINE(HAVE_AS_POWER8, 1,
|
|
|
|
[Define if your assembler supports POWER8 instructions.])])
|
|
|
|
|
2015-11-09 17:56:22 +01:00
|
|
|
case $target in
|
|
|
|
*-*-aix*) conftest_s=' .machine "pwr9"
|
|
|
|
.csect .text[[PR]]';;
|
|
|
|
*) conftest_s=' .machine power9
|
|
|
|
.text';;
|
|
|
|
esac
|
|
|
|
|
|
|
|
gcc_GAS_CHECK_FEATURE([power9 support],
|
|
|
|
gcc_cv_as_powerpc_power9, [2,19,2], -a32,
|
|
|
|
[$conftest_s],,
|
|
|
|
[AC_DEFINE(HAVE_AS_POWER9, 1,
|
|
|
|
[Define if your assembler supports POWER9 instructions.])])
|
|
|
|
|
2009-06-23 22:15:15 +02:00
|
|
|
case $target in
|
|
|
|
*-*-aix*) conftest_s=' .csect .text[[PR]]
|
|
|
|
lwsync';;
|
|
|
|
*) conftest_s=' .text
|
|
|
|
lwsync';;
|
|
|
|
esac
|
|
|
|
|
|
|
|
gcc_GAS_CHECK_FEATURE([lwsync support],
|
|
|
|
gcc_cv_as_powerpc_lwsync, [2,19,2], -a32,
|
|
|
|
[$conftest_s],,
|
|
|
|
[AC_DEFINE(HAVE_AS_LWSYNC, 1,
|
|
|
|
[Define if your assembler supports LWSYNC instructions.])])
|
|
|
|
|
2009-10-10 20:43:31 +02:00
|
|
|
case $target in
|
|
|
|
*-*-aix*) conftest_s=' .machine "476"
|
|
|
|
.csect .text[[PR]]
|
|
|
|
dci 0';;
|
|
|
|
*) conftest_s=' .machine "476"
|
|
|
|
.text
|
|
|
|
dci 0';;
|
|
|
|
esac
|
|
|
|
|
|
|
|
gcc_GAS_CHECK_FEATURE([data cache invalidate support],
|
|
|
|
gcc_cv_as_powerpc_dci, [9,99,0], -a32,
|
|
|
|
[$conftest_s],,
|
|
|
|
[AC_DEFINE(HAVE_AS_DCI, 1,
|
|
|
|
[Define if your assembler supports the DCI/ICI instructions.])])
|
|
|
|
|
2007-07-02 12:46:35 +02:00
|
|
|
gcc_GAS_CHECK_FEATURE([.gnu_attribute support],
|
|
|
|
gcc_cv_as_powerpc_gnu_attribute, [2,18,0],,
|
|
|
|
[.gnu_attribute 4,1],,
|
|
|
|
[AC_DEFINE(HAVE_AS_GNU_ATTRIBUTE, 1,
|
|
|
|
[Define if your assembler supports .gnu_attribute.])])
|
2009-03-31 05:11:34 +02:00
|
|
|
|
|
|
|
gcc_GAS_CHECK_FEATURE([tls marker support],
|
|
|
|
gcc_cv_as_powerpc_tls_markers, [2,20,0],,
|
|
|
|
[ bl __tls_get_addr(x@tlsgd)],,
|
|
|
|
[AC_DEFINE(HAVE_AS_TLS_MARKERS, 1,
|
|
|
|
[Define if your assembler supports arg info for __tls_get_addr.])])
|
2010-01-16 13:14:09 +01:00
|
|
|
|
2015-12-02 20:52:53 +01:00
|
|
|
gcc_GAS_CHECK_FEATURE([prologue entry point marker support],
|
|
|
|
gcc_cv_as_powerpc_entry_markers, [2,26,0],-a64 --fatal-warnings,
|
|
|
|
[ .reloc .,R_PPC64_ENTRY; nop],,
|
|
|
|
[AC_DEFINE(HAVE_AS_ENTRY_MARKERS, 1,
|
|
|
|
[Define if your assembler supports the R_PPC64_ENTRY relocation.])])
|
|
|
|
|
2010-01-16 13:14:09 +01:00
|
|
|
case $target in
|
|
|
|
*-*-aix*)
|
|
|
|
gcc_GAS_CHECK_FEATURE([.ref support],
|
2012-10-11 17:13:11 +02:00
|
|
|
gcc_cv_as_aix_ref, [2,21,0],,
|
2010-01-16 13:14:09 +01:00
|
|
|
[ .csect stuff[[rw]]
|
|
|
|
stuff:
|
|
|
|
.long 1
|
|
|
|
.extern sym
|
|
|
|
.ref sym
|
|
|
|
],,
|
|
|
|
[AC_DEFINE(HAVE_AS_REF, 1,
|
|
|
|
[Define if your assembler supports .ref])])
|
|
|
|
;;
|
|
|
|
esac
|
1999-04-23 21:41:03 +02:00
|
|
|
|
2015-09-26 17:31:35 +02:00
|
|
|
case $target in
|
|
|
|
*-*-aix*)
|
|
|
|
gcc_GAS_CHECK_FEATURE([dwarf location lists section support],
|
|
|
|
gcc_cv_as_aix_dwloc, [2,21,0],,
|
|
|
|
[ .dwsect 0xB0000
|
|
|
|
],,
|
|
|
|
[AC_DEFINE(HAVE_XCOFF_DWARF_EXTRAS, 1,
|
|
|
|
[Define if your assembler supports .dwsect 0xB0000])])
|
|
|
|
;;
|
|
|
|
esac
|
|
|
|
;;
|
|
|
|
|
2003-07-12 22:03:14 +02:00
|
|
|
mips*-*-*)
|
|
|
|
gcc_GAS_CHECK_FEATURE([explicit relocation support],
|
|
|
|
gcc_cv_as_mips_explicit_relocs, [2,14,0],,
|
|
|
|
[ lw $4,%gp_rel(foo)($4)],,
|
|
|
|
[if test x$target_cpu_default = x
|
|
|
|
then target_cpu_default=MASK_EXPLICIT_RELOCS
|
|
|
|
else target_cpu_default="($target_cpu_default)|MASK_EXPLICIT_RELOCS"
|
|
|
|
fi])
|
2015-09-26 17:31:35 +02:00
|
|
|
|
2006-10-29 12:13:14 +01:00
|
|
|
gcc_GAS_CHECK_FEATURE([-mno-shared support],
|
|
|
|
gcc_cv_as_mips_no_shared, [2,16,0], [-mno-shared], [nop],,
|
|
|
|
[AC_DEFINE(HAVE_AS_NO_SHARED, 1,
|
|
|
|
[Define if the assembler understands -mno-shared.])])
|
2007-07-01 00:01:30 +02:00
|
|
|
|
|
|
|
gcc_GAS_CHECK_FEATURE([.gnu_attribute support],
|
|
|
|
gcc_cv_as_mips_gnu_attribute, [2,18,0],,
|
|
|
|
[.gnu_attribute 4,1],,
|
|
|
|
[AC_DEFINE(HAVE_AS_GNU_ATTRIBUTE, 1,
|
|
|
|
[Define if your assembler supports .gnu_attribute.])])
|
2007-07-03 22:28:02 +02:00
|
|
|
|
Implement MIPS o32 FPXX, FP64, FP64A ABI extensions.
2014-11-12 Matthew Fortune <matthew.fortune@imgtec.com>
gcc/
* common/config/mips/mips-common.c (mips_handle_option): Ensure
that -mfp32, -mfp64 disable -mfpxx and -mfpxx disables -mfp64.
* config.gcc (--with-fp-32): New option.
(--with-odd-spreg-32): Likewise.
* config.in (HAVE_AS_DOT_MODULE): New config define.
* config/mips/mips-protos.h
(mips_secondary_memory_needed): New prototype.
(mips_hard_regno_caller_save_mode): Likewise.
* config/mips/mips.c (mips_get_reg_raw_mode): New static prototype.
(mips_get_arg_info): Assert that V2SFmode is only handled specially
with TARGET_PAIRED_SINGLE_FLOAT.
(mips_return_mode_in_fpr_p): Likewise.
(mips16_call_stub_mode_suffix): Likewise.
(mips_get_reg_raw_mode): New static function.
(mips_return_fpr_pair): O32 return values span two registers.
(mips16_build_call_stub): Likewise.
(mips_function_value_regno_p): Support both FP return registers.
(mips_output_64bit_xfer): Use mthc1 whenever TARGET_HAS_MXHC1. Add
specific cases for TARGET_FPXX to move via memory.
(mips_dwarf_register_span): For TARGET_FPXX pretend that modes larger
than UNITS_PER_FPREG 'span' one register.
(mips_dwarf_frame_reg_mode): New static function.
(mips_file_start): Switch to using .module instead of .gnu_attribute.
No longer support FP ABI 4 (-mips32r2 -mfp64), replace with FP ABI 6.
Add FP ABI 5 (-mfpxx) and FP ABI 7 (-mfp64 -mno-odd-spreg).
(mips_save_reg, mips_restore_reg): Always represent DFmode frame
slots with two CFI directives even for O32 FP64.
(mips_for_each_saved_gpr_and_fpr): Account for fixed_regs when
saving/restoring callee-saved registers.
(mips_hard_regno_mode_ok_p): Implement O32 FP64A extension.
(mips_secondary_memory_needed): New function.
(mips_option_override): ABI check for TARGET_FLOATXX. Disable
odd-numbered single-precision registers when using TARGET_FLOATXX.
Implement -modd-spreg and defaults.
(mips_conditional_register_usage): Redefine O32 FP64 to match O32 FP32
callee-saved behaviour.
(mips_hard_regno_caller_save_mode): Implement.
(TARGET_GET_RAW_RESULT_MODE): Define target hook.
(TARGET_GET_RAW_ARG_MODE): Define target hook.
(TARGET_DWARF_FRAME_REG_MODE): Define target hook.
* config/mips/mips.h (TARGET_FLOAT32): New macro.
(TARGET_O32_FP64A_ABI): Likewise.
(TARGET_CPU_CPP_BUILTINS): TARGET_FPXX is __mips_fpr==0. Add
_MIPS_SPFPSET builtin define.
(MIPS_FPXX_OPTION_SPEC): New macro.
(OPTION_DEFAULT_SPECS): Pass through --with-fp-32=* to -mfp and
--with-odd-spreg-32=* to -m[no-]odd-spreg.
(ISA_HAS_ODD_SPREG): New macro.
(ISA_HAS_MXHC1): True for anything other than -mfp32.
(ASM_SPEC): Pass through mfpxx, mfp64, -mno-odd-spreg and -modd-spreg.
(MIN_FPRS_PER_FMT): Redefine in terms of TARGET_ODD_SPREG.
(HARD_REGNO_CALLER_SAVE_MODE): Define. Implement O32 FPXX extension
(HARD_REGNO_CALL_PART_CLOBBERED): Likewise.
(SECONDARY_MEMORY_NEEDED): Likewise.
(FUNCTION_ARG_REGNO_P): Update for O32 FPXX and FP64 extensions.
* config/mips/mips.md (define_attr enabled): Implement O32 FPXX and
FP64A ABI extensions.
(move_doubleword_fpr<mode>): Use ISA_HAS_MXHC1 instead of
TARGET_FLOAT64.
* config/mips/mips.opt (mfpxx): New target option.
(modd-spreg): Likewise.
* config/mips/mti-elf.h (DRIVER_SELF_SPECS): Infer FP ABI from arch.
* config/mips/mti-linux.h (DRIVER_SELF_SPECS): Likewise and remove
fp64 sysroot.
* config/mips/t-mti-elf: Remove fp64 multilib.
* config/mips/t-mti-linux: Likewise.
* configure.ac: Detect .module support.
* configure: Regenerate.
* doc/invoke.texi: Document -mfpxx, -modd-spreg, -mno-odd-spreg option.
* doc/install.texi (--with-fp-32, --with-odd-spreg-32): Document new
options.
gcc/testsuite/
* gcc.target/mips/args-1.c: Handle __mips_fpr == 0.
* gcc.target/mips/call-clobbered-1.c: New.
* gcc.target/mips/call-clobbered-2.c: New.
* gcc.target/mips/call-clobbered-3.c: New.
* gcc.target/mips/call-clobbered-4.c: New.
* gcc.target/mips/call-clobbered-5.c: New.
* gcc.target/mips/call-saved-4.c: New.
* gcc.target/mips/call-saved-5.c: New.
* gcc.target/mips/call-saved-6.c: New.
* gcc.target/mips/mips.exp: Support -mfpxx, -ffixed-f*,
and -m[no-]odd-spreg. Use _MIPS_SPFPSET to determine default
odd-spreg option. Account for -modd-spreg in minimum arch code.
* gcc.target/mips/movdf-1.c: New.
* gcc.target/mips/movdf-2.c: New.
* gcc.target/mips/movdf-3.c: New.
* gcc.target/mips/oddspreg-1.c: New.
* gcc.target/mips/oddspreg-2.c: New.
* gcc.target/mips/oddspreg-3.c: New.
* gcc.target/mips/oddspreg-4.c: New.
* gcc.target/mips/oddspreg-5.c: New.
* gcc.target/mips/oddspreg-6.c: New.
libgcc/
* config/mips/mips16.S: Set .module when supported. Update O32
FP64 calling convention and use for FPXX when possible. Add FPXX
calling convention fallback case.
From-SVN: r217446
2014-11-12 22:39:46 +01:00
|
|
|
gcc_GAS_CHECK_FEATURE([.module support],
|
2014-11-21 17:57:55 +01:00
|
|
|
gcc_cv_as_mips_dot_module,,[-32],
|
|
|
|
[.module mips2
|
|
|
|
.module fp=xx],,
|
Implement MIPS o32 FPXX, FP64, FP64A ABI extensions.
2014-11-12 Matthew Fortune <matthew.fortune@imgtec.com>
gcc/
* common/config/mips/mips-common.c (mips_handle_option): Ensure
that -mfp32, -mfp64 disable -mfpxx and -mfpxx disables -mfp64.
* config.gcc (--with-fp-32): New option.
(--with-odd-spreg-32): Likewise.
* config.in (HAVE_AS_DOT_MODULE): New config define.
* config/mips/mips-protos.h
(mips_secondary_memory_needed): New prototype.
(mips_hard_regno_caller_save_mode): Likewise.
* config/mips/mips.c (mips_get_reg_raw_mode): New static prototype.
(mips_get_arg_info): Assert that V2SFmode is only handled specially
with TARGET_PAIRED_SINGLE_FLOAT.
(mips_return_mode_in_fpr_p): Likewise.
(mips16_call_stub_mode_suffix): Likewise.
(mips_get_reg_raw_mode): New static function.
(mips_return_fpr_pair): O32 return values span two registers.
(mips16_build_call_stub): Likewise.
(mips_function_value_regno_p): Support both FP return registers.
(mips_output_64bit_xfer): Use mthc1 whenever TARGET_HAS_MXHC1. Add
specific cases for TARGET_FPXX to move via memory.
(mips_dwarf_register_span): For TARGET_FPXX pretend that modes larger
than UNITS_PER_FPREG 'span' one register.
(mips_dwarf_frame_reg_mode): New static function.
(mips_file_start): Switch to using .module instead of .gnu_attribute.
No longer support FP ABI 4 (-mips32r2 -mfp64), replace with FP ABI 6.
Add FP ABI 5 (-mfpxx) and FP ABI 7 (-mfp64 -mno-odd-spreg).
(mips_save_reg, mips_restore_reg): Always represent DFmode frame
slots with two CFI directives even for O32 FP64.
(mips_for_each_saved_gpr_and_fpr): Account for fixed_regs when
saving/restoring callee-saved registers.
(mips_hard_regno_mode_ok_p): Implement O32 FP64A extension.
(mips_secondary_memory_needed): New function.
(mips_option_override): ABI check for TARGET_FLOATXX. Disable
odd-numbered single-precision registers when using TARGET_FLOATXX.
Implement -modd-spreg and defaults.
(mips_conditional_register_usage): Redefine O32 FP64 to match O32 FP32
callee-saved behaviour.
(mips_hard_regno_caller_save_mode): Implement.
(TARGET_GET_RAW_RESULT_MODE): Define target hook.
(TARGET_GET_RAW_ARG_MODE): Define target hook.
(TARGET_DWARF_FRAME_REG_MODE): Define target hook.
* config/mips/mips.h (TARGET_FLOAT32): New macro.
(TARGET_O32_FP64A_ABI): Likewise.
(TARGET_CPU_CPP_BUILTINS): TARGET_FPXX is __mips_fpr==0. Add
_MIPS_SPFPSET builtin define.
(MIPS_FPXX_OPTION_SPEC): New macro.
(OPTION_DEFAULT_SPECS): Pass through --with-fp-32=* to -mfp and
--with-odd-spreg-32=* to -m[no-]odd-spreg.
(ISA_HAS_ODD_SPREG): New macro.
(ISA_HAS_MXHC1): True for anything other than -mfp32.
(ASM_SPEC): Pass through mfpxx, mfp64, -mno-odd-spreg and -modd-spreg.
(MIN_FPRS_PER_FMT): Redefine in terms of TARGET_ODD_SPREG.
(HARD_REGNO_CALLER_SAVE_MODE): Define. Implement O32 FPXX extension
(HARD_REGNO_CALL_PART_CLOBBERED): Likewise.
(SECONDARY_MEMORY_NEEDED): Likewise.
(FUNCTION_ARG_REGNO_P): Update for O32 FPXX and FP64 extensions.
* config/mips/mips.md (define_attr enabled): Implement O32 FPXX and
FP64A ABI extensions.
(move_doubleword_fpr<mode>): Use ISA_HAS_MXHC1 instead of
TARGET_FLOAT64.
* config/mips/mips.opt (mfpxx): New target option.
(modd-spreg): Likewise.
* config/mips/mti-elf.h (DRIVER_SELF_SPECS): Infer FP ABI from arch.
* config/mips/mti-linux.h (DRIVER_SELF_SPECS): Likewise and remove
fp64 sysroot.
* config/mips/t-mti-elf: Remove fp64 multilib.
* config/mips/t-mti-linux: Likewise.
* configure.ac: Detect .module support.
* configure: Regenerate.
* doc/invoke.texi: Document -mfpxx, -modd-spreg, -mno-odd-spreg option.
* doc/install.texi (--with-fp-32, --with-odd-spreg-32): Document new
options.
gcc/testsuite/
* gcc.target/mips/args-1.c: Handle __mips_fpr == 0.
* gcc.target/mips/call-clobbered-1.c: New.
* gcc.target/mips/call-clobbered-2.c: New.
* gcc.target/mips/call-clobbered-3.c: New.
* gcc.target/mips/call-clobbered-4.c: New.
* gcc.target/mips/call-clobbered-5.c: New.
* gcc.target/mips/call-saved-4.c: New.
* gcc.target/mips/call-saved-5.c: New.
* gcc.target/mips/call-saved-6.c: New.
* gcc.target/mips/mips.exp: Support -mfpxx, -ffixed-f*,
and -m[no-]odd-spreg. Use _MIPS_SPFPSET to determine default
odd-spreg option. Account for -modd-spreg in minimum arch code.
* gcc.target/mips/movdf-1.c: New.
* gcc.target/mips/movdf-2.c: New.
* gcc.target/mips/movdf-3.c: New.
* gcc.target/mips/oddspreg-1.c: New.
* gcc.target/mips/oddspreg-2.c: New.
* gcc.target/mips/oddspreg-3.c: New.
* gcc.target/mips/oddspreg-4.c: New.
* gcc.target/mips/oddspreg-5.c: New.
* gcc.target/mips/oddspreg-6.c: New.
libgcc/
* config/mips/mips16.S: Set .module when supported. Update O32
FP64 calling convention and use for FPXX when possible. Add FPXX
calling convention fallback case.
From-SVN: r217446
2014-11-12 22:39:46 +01:00
|
|
|
[AC_DEFINE(HAVE_AS_DOT_MODULE, 1,
|
|
|
|
[Define if your assembler supports .module.])])
|
|
|
|
if test x$gcc_cv_as_mips_dot_module = xno \
|
|
|
|
&& test x$with_fp_32 != x; then
|
|
|
|
AC_MSG_ERROR(
|
|
|
|
[Requesting --with-fp-32= requires assembler support for .module.])
|
|
|
|
fi
|
|
|
|
|
extend.texi: (micromips, nomicromips, nocompression): Document new function attributes.
gcc/
2013-03-20 Catherine Moore <clm@codesourcery.com>
Maciej W. Rozycki <macro@codesourcery.com>
Tom de Vries <tom@codesourcery.com>
Nathan Sidwell <nathan@codesourcery.com>
Iain Sandoe <iain@codesourcery.com>
Nathan Froyd <froydnj@codesourcery.com>
Chao-ying Fu <fu@mips.com>
* doc/extend.texi: (micromips, nomicromips, nocompression):
Document new function attributes.
* doc/invoke.texi (minterlink-compressed, mmicromips,
m14k, m14ke, m14kec): Document new options.
(minterlink-mips16): Update documentation.
* doc/md.texi (ZC, ZD): Document new constraints.
* configure.ac (gcc_cv_as_micromips): Check if linker
supports the .set micromips directive.
* configure: Regenerate.
* config.in: Regenerate.
* config/mips/mips-tables.opt: Regenerate.
* config/mips/micromips.md: New file.
* constraints.md (ZC, ZD): New constraints.
* config/mips/predicates.md (movep_src_register): New predicate.
(movep_src_operand): New predicate.
(non_volatile_mem_operand): New predicate.
* config/mips/mips.md (multimem): New type.
(length): Differentiate between 17-bit and 18-bit branch offsets.
(MOVEP1, MOVEP2): New mode iterator.
(mov_<load>l): Use ZC constraint.
(mov_<load>r): Likewise.
(mov_<store>l): Likewise.
(mov_<store>r): Likewise.
(*branch_equality<mode>_inverted): Add microMIPS support.
(*branch_equality<mode>): Likewise.
(*jump_absolute): Likewise.
(indirect_jump_<mode>): Likewise.
(tablejump_<mode>): Likewise.
(<optab>_internal): Likewise.
(sibcall_internal): Likewise.
(sibcall_value_internal): Likewise.
(prefetch): Use constraint ZD.
* config/mips/mips.opt (minterlink-compressed): New option.
(minterlink-mips16): Now an alias for minterlink-compressed.
(mmicromips): New option.
* config/mips/sync.md (sync_compare_and_swap<mode>): Use ZR constraint.
(compare_and_swap_12): Likewise.
(sync_add<mode>): Likewise.
(sync_<optab>_12): Likewise.
(sync_old_<optab>_12): Likewise.
(sync_new_<optab>_12): Likewise.
(sync_nand_12): Likewise.
(sync_old_nand_12): Likewise.
(sync_new_nand_12): Likewise.
(sync_sub<mode>): Likewise.
(sync_old_add<mode>): Likewise.
(sync_old_sub<mode>): Likewise.
(sync_new_add<mode>): Likewise.
(sync_new_sub<mode>): Likewise.
(sync_<optab><mode>): Likewise.
(sync_old_<optab><mode>): Likewise.
(sync_new_<optab><mode>): Likewise.
(sync_nand<mode>): Likewise.
(sync_old_nand<mode>): Likewise.
(sync_new_nand<mode>): Likewise.
(sync_lock_test_and_set<mode>): Likewise.
(test_and_set_12): Likewise.
(atomic_compare_and_swap<mode>): Likewise.
(atomic_exchange<mode>_llsc): Likewise.
(atomic_fetch_add<mode>_llsc): Likewise.
* config/mips/mips-cpus.def (m14kc, m14k): New processors.
* config/mips/mips-protos.h (umips_output_save_restore): New prototype.
(umips_save_restore_pattern_p): Likewise.
(umips_load_store_pair_p): Likewise.
(umips_output_load_store_pair): Likewise.
(umips_movep_target_p): Likewise.
(umips_12bit_offset_address_p): Likewise.
* config/mips/mips.c (MIPS_MAX_FIRST_STEP): Update for microMIPS.
(mips_base_mips16): Rename this...
(mips_base_compression_flags): ...to this. Update all uses.
(mips_attribute_table): Add micromips, nomicromips and nocompression.
(mips_mips16_decl_p): Delete.
(mips_nomips16_decl_p): Delete.
(mips_get_compress_on_flags): New function.
(mips_get_compress_off_flags): New function.
(mips_get_compress_mode): New function.
(mips_get_compress_on_name): New function.
(mips_get_compress_off_name): New function.
(mips_insert_attributes): Support multiple compression types.
(mips_merge_decl_attributes): Likewise.
(umips_12bit_offset_address_p): New function.
(mips_start_function_definition): Emit .set micromips directive.
(mips_call_may_need_jalx_p): New function.
(mips_function_ok_for_sibcall): Add microMIPS support.
(mips_print_operand_punctuation): Support short delay slots and
compact jumps.
(umips_swm_mask, umips_swm_encoding): New.
(umips_build_save_restore): New function.
(mips_for_each_saved_gpr_and_fpr): Add microMIPS support.
(was_mips16_p): Remove.
(old_compression_mode): New.
(mips_set_compression_mode): New function.
(mips_set_current_function): Add microMIPS support.
(mips_option_override): Likewise.
(umips_save_restore_pattern_p): New function.
(umips_output_save_restore): New function.
(umips_load_store_pair_p_1): New function.
(umips_load_store_pair_p): New function.
(umips_output_load_store_pair_1): New function.
(umips_output_load_store_pair): New function.
(umips_movep_target_p) New function.
(mips_prepare_pch_save): Add microMIPS support.
* config/mips/mips.h (TARGET_COMPRESSION): New.
(TARGET_CPU_CPP_BUILTINS): Update macro
to use new compression flags and to support microMIPS.
(MIPS_ISA_LEVEL_SPEC): Add m14k processors.
(MIPS_ARCH_FLOAT_SPEC): Likewise.
(ISA_HAS_LWXS): Include TARGET_MICROMIPS.
(ISA_HAS_LOAD_DELAY): Exclude TARGET_MICROMIPS.
(ASM_SPEC): Support mmicromips and mno-micromips.
(M16STORE_REG_P): New macro.
(MIPS_CALL): Support TARGET_MICROMIPS.
(MICROMIPS_J): New macro.
(mips_base_mips16): Rename this...
(mips_base_compression_flags): ...to this.
(UMIPS_12BIT_OFFSET_P): New macro.
* config/mips/t-sde: (MULTILIB_OPTIONS): Add microMIPS.
(MULTILIB_DIRNAMES): Likewise.
libgcc/
2013-03-20 Catherine Moore <clm@codesourcery.com>
Joseph Myers <joseph@codesourcery.com>
Chao-ying Fu <fu@mips.com>
* config/mips/mips16.S: Don't build for microMIPS.
* config/mips/linux-unwind.h: Handle microMIPS frame.
* config/mips/crtn.S (fini, init): New labels.
gcc/testsuite/
2013-03-20 Catherine Moore <clm@codesourcery.com>
Richard Sandiford <rdsandiford@googlemail.com>
* gcc.target/mips/mips.exp: Add microMIPS support.
* gcc.target/mips/umips-movep-2.c: New test.
* gcc.target/mips/umips-lwp-2.c: New test.
* gcc.target/mips/umips-swp-5.c: New test.
* gcc.target/mips/umips-constraints-1.c: New test.
* gcc.target/mips/umips-lwp-3.c: New test.
* gcc.target/mips/umips-swp-6.c: New test.
* gcc.target/mips/umips-constraints-2.c: New test.
* gcc.target/mips/umips-save-restore-1.c: New test.
* gcc.target/mips/umips-lwp-4.c: New test.
* gcc.target/mips/umips-swp-7.c: New test.
* gcc.target/mips/umips-save-restore-2.c: New test.
* gcc.target/mips/umips-lwp-swp-volatile.c: New test.
* gcc.target/mips/umips-lwp-5.c: New test.
* gcc.target/mips/umips-save-restore-3.c: New test.
* gcc.target/mips/umips-lwp-6.c: New test.
* gcc.target/mips/umips-swp-1.c: New test.
* gcc.target/mips/umips-lwp-7.c: New test.
* gcc.target/mips/umips-swp-2.c: New test.
* gcc.target/mips/umips-lwp-8.c: New test.
* gcc.target/mips/umips-swp-3.c: New test.
* gcc.target/mips/umips-movep-1.c: New test.
* gcc.target/mips/umips-lwp-1.c: New test.
* gcc.target/mips/umips-swp-4.c: New test.
Co-Authored-By: Chao-ying Fu <fu@mips.com>
Co-Authored-By: Iain Sandoe <iain@codesourcery.com>
Co-Authored-By: Joseph Myers <joseph@codesourcery.com>
Co-Authored-By: Maciej W. Rozycki <macro@codesourcery.com>
Co-Authored-By: Nathan Froyd <froydnj@codesourcery.com>
Co-Authored-By: Nathan Sidwell <nathan@codesourcery.com>
Co-Authored-By: Richard Sandiford <rdsandiford@googlemail.com>
Co-Authored-By: Tom de Vries <tom@codesourcery.com>
From-SVN: r196828
2013-03-20 15:37:52 +01:00
|
|
|
gcc_GAS_CHECK_FEATURE([.micromips support],
|
2013-04-23 00:16:45 +02:00
|
|
|
gcc_cv_as_micromips_support,,[--fatal-warnings],
|
extend.texi: (micromips, nomicromips, nocompression): Document new function attributes.
gcc/
2013-03-20 Catherine Moore <clm@codesourcery.com>
Maciej W. Rozycki <macro@codesourcery.com>
Tom de Vries <tom@codesourcery.com>
Nathan Sidwell <nathan@codesourcery.com>
Iain Sandoe <iain@codesourcery.com>
Nathan Froyd <froydnj@codesourcery.com>
Chao-ying Fu <fu@mips.com>
* doc/extend.texi: (micromips, nomicromips, nocompression):
Document new function attributes.
* doc/invoke.texi (minterlink-compressed, mmicromips,
m14k, m14ke, m14kec): Document new options.
(minterlink-mips16): Update documentation.
* doc/md.texi (ZC, ZD): Document new constraints.
* configure.ac (gcc_cv_as_micromips): Check if linker
supports the .set micromips directive.
* configure: Regenerate.
* config.in: Regenerate.
* config/mips/mips-tables.opt: Regenerate.
* config/mips/micromips.md: New file.
* constraints.md (ZC, ZD): New constraints.
* config/mips/predicates.md (movep_src_register): New predicate.
(movep_src_operand): New predicate.
(non_volatile_mem_operand): New predicate.
* config/mips/mips.md (multimem): New type.
(length): Differentiate between 17-bit and 18-bit branch offsets.
(MOVEP1, MOVEP2): New mode iterator.
(mov_<load>l): Use ZC constraint.
(mov_<load>r): Likewise.
(mov_<store>l): Likewise.
(mov_<store>r): Likewise.
(*branch_equality<mode>_inverted): Add microMIPS support.
(*branch_equality<mode>): Likewise.
(*jump_absolute): Likewise.
(indirect_jump_<mode>): Likewise.
(tablejump_<mode>): Likewise.
(<optab>_internal): Likewise.
(sibcall_internal): Likewise.
(sibcall_value_internal): Likewise.
(prefetch): Use constraint ZD.
* config/mips/mips.opt (minterlink-compressed): New option.
(minterlink-mips16): Now an alias for minterlink-compressed.
(mmicromips): New option.
* config/mips/sync.md (sync_compare_and_swap<mode>): Use ZR constraint.
(compare_and_swap_12): Likewise.
(sync_add<mode>): Likewise.
(sync_<optab>_12): Likewise.
(sync_old_<optab>_12): Likewise.
(sync_new_<optab>_12): Likewise.
(sync_nand_12): Likewise.
(sync_old_nand_12): Likewise.
(sync_new_nand_12): Likewise.
(sync_sub<mode>): Likewise.
(sync_old_add<mode>): Likewise.
(sync_old_sub<mode>): Likewise.
(sync_new_add<mode>): Likewise.
(sync_new_sub<mode>): Likewise.
(sync_<optab><mode>): Likewise.
(sync_old_<optab><mode>): Likewise.
(sync_new_<optab><mode>): Likewise.
(sync_nand<mode>): Likewise.
(sync_old_nand<mode>): Likewise.
(sync_new_nand<mode>): Likewise.
(sync_lock_test_and_set<mode>): Likewise.
(test_and_set_12): Likewise.
(atomic_compare_and_swap<mode>): Likewise.
(atomic_exchange<mode>_llsc): Likewise.
(atomic_fetch_add<mode>_llsc): Likewise.
* config/mips/mips-cpus.def (m14kc, m14k): New processors.
* config/mips/mips-protos.h (umips_output_save_restore): New prototype.
(umips_save_restore_pattern_p): Likewise.
(umips_load_store_pair_p): Likewise.
(umips_output_load_store_pair): Likewise.
(umips_movep_target_p): Likewise.
(umips_12bit_offset_address_p): Likewise.
* config/mips/mips.c (MIPS_MAX_FIRST_STEP): Update for microMIPS.
(mips_base_mips16): Rename this...
(mips_base_compression_flags): ...to this. Update all uses.
(mips_attribute_table): Add micromips, nomicromips and nocompression.
(mips_mips16_decl_p): Delete.
(mips_nomips16_decl_p): Delete.
(mips_get_compress_on_flags): New function.
(mips_get_compress_off_flags): New function.
(mips_get_compress_mode): New function.
(mips_get_compress_on_name): New function.
(mips_get_compress_off_name): New function.
(mips_insert_attributes): Support multiple compression types.
(mips_merge_decl_attributes): Likewise.
(umips_12bit_offset_address_p): New function.
(mips_start_function_definition): Emit .set micromips directive.
(mips_call_may_need_jalx_p): New function.
(mips_function_ok_for_sibcall): Add microMIPS support.
(mips_print_operand_punctuation): Support short delay slots and
compact jumps.
(umips_swm_mask, umips_swm_encoding): New.
(umips_build_save_restore): New function.
(mips_for_each_saved_gpr_and_fpr): Add microMIPS support.
(was_mips16_p): Remove.
(old_compression_mode): New.
(mips_set_compression_mode): New function.
(mips_set_current_function): Add microMIPS support.
(mips_option_override): Likewise.
(umips_save_restore_pattern_p): New function.
(umips_output_save_restore): New function.
(umips_load_store_pair_p_1): New function.
(umips_load_store_pair_p): New function.
(umips_output_load_store_pair_1): New function.
(umips_output_load_store_pair): New function.
(umips_movep_target_p) New function.
(mips_prepare_pch_save): Add microMIPS support.
* config/mips/mips.h (TARGET_COMPRESSION): New.
(TARGET_CPU_CPP_BUILTINS): Update macro
to use new compression flags and to support microMIPS.
(MIPS_ISA_LEVEL_SPEC): Add m14k processors.
(MIPS_ARCH_FLOAT_SPEC): Likewise.
(ISA_HAS_LWXS): Include TARGET_MICROMIPS.
(ISA_HAS_LOAD_DELAY): Exclude TARGET_MICROMIPS.
(ASM_SPEC): Support mmicromips and mno-micromips.
(M16STORE_REG_P): New macro.
(MIPS_CALL): Support TARGET_MICROMIPS.
(MICROMIPS_J): New macro.
(mips_base_mips16): Rename this...
(mips_base_compression_flags): ...to this.
(UMIPS_12BIT_OFFSET_P): New macro.
* config/mips/t-sde: (MULTILIB_OPTIONS): Add microMIPS.
(MULTILIB_DIRNAMES): Likewise.
libgcc/
2013-03-20 Catherine Moore <clm@codesourcery.com>
Joseph Myers <joseph@codesourcery.com>
Chao-ying Fu <fu@mips.com>
* config/mips/mips16.S: Don't build for microMIPS.
* config/mips/linux-unwind.h: Handle microMIPS frame.
* config/mips/crtn.S (fini, init): New labels.
gcc/testsuite/
2013-03-20 Catherine Moore <clm@codesourcery.com>
Richard Sandiford <rdsandiford@googlemail.com>
* gcc.target/mips/mips.exp: Add microMIPS support.
* gcc.target/mips/umips-movep-2.c: New test.
* gcc.target/mips/umips-lwp-2.c: New test.
* gcc.target/mips/umips-swp-5.c: New test.
* gcc.target/mips/umips-constraints-1.c: New test.
* gcc.target/mips/umips-lwp-3.c: New test.
* gcc.target/mips/umips-swp-6.c: New test.
* gcc.target/mips/umips-constraints-2.c: New test.
* gcc.target/mips/umips-save-restore-1.c: New test.
* gcc.target/mips/umips-lwp-4.c: New test.
* gcc.target/mips/umips-swp-7.c: New test.
* gcc.target/mips/umips-save-restore-2.c: New test.
* gcc.target/mips/umips-lwp-swp-volatile.c: New test.
* gcc.target/mips/umips-lwp-5.c: New test.
* gcc.target/mips/umips-save-restore-3.c: New test.
* gcc.target/mips/umips-lwp-6.c: New test.
* gcc.target/mips/umips-swp-1.c: New test.
* gcc.target/mips/umips-lwp-7.c: New test.
* gcc.target/mips/umips-swp-2.c: New test.
* gcc.target/mips/umips-lwp-8.c: New test.
* gcc.target/mips/umips-swp-3.c: New test.
* gcc.target/mips/umips-movep-1.c: New test.
* gcc.target/mips/umips-lwp-1.c: New test.
* gcc.target/mips/umips-swp-4.c: New test.
Co-Authored-By: Chao-ying Fu <fu@mips.com>
Co-Authored-By: Iain Sandoe <iain@codesourcery.com>
Co-Authored-By: Joseph Myers <joseph@codesourcery.com>
Co-Authored-By: Maciej W. Rozycki <macro@codesourcery.com>
Co-Authored-By: Nathan Froyd <froydnj@codesourcery.com>
Co-Authored-By: Nathan Sidwell <nathan@codesourcery.com>
Co-Authored-By: Richard Sandiford <rdsandiford@googlemail.com>
Co-Authored-By: Tom de Vries <tom@codesourcery.com>
From-SVN: r196828
2013-03-20 15:37:52 +01:00
|
|
|
[.set micromips],,
|
|
|
|
[AC_DEFINE(HAVE_GAS_MICROMIPS, 1,
|
|
|
|
[Define if your assembler supports the .set micromips directive])])
|
|
|
|
|
2007-07-03 22:28:02 +02:00
|
|
|
gcc_GAS_CHECK_FEATURE([.dtprelword support],
|
|
|
|
gcc_cv_as_mips_dtprelword, [2,18,0],,
|
|
|
|
[.section .tdata,"awT",@progbits
|
|
|
|
x:
|
|
|
|
.word 2
|
|
|
|
.text
|
|
|
|
.dtprelword x+0x8000],,
|
|
|
|
[AC_DEFINE(HAVE_AS_DTPRELWORD, 1,
|
|
|
|
[Define if your assembler supports .dtprelword.])])
|
mips.opt (mrelax-pic-calls): New option.
* config/mips/mips.opt (mrelax-pic-calls): New option.
* config/mips/mips.c (mips_strip_unspec_address): Move it up in
the file.
(mips_unspec_call): Change "unspec_call" expander into this.
(mips_strip_unspec_call): New function.
(mips_got_load): Call mips_unspec_call instead of
gen_unspec_call<mode>.
(mips16_build_call_stub): Fix comment for fp_code. Adjust call to
MIPS_CALL.
(mips_cfg_in_reorg): New function.
(mips16_lay_out_constants): Use it to decide whether to call
CFG-aware insn splitting.
(r10k_insert_cache_barriers): Move CFG set-up code from here to
mips_reorg. Move DF set-up code from here ...
(mips_df_reorg): ... to here. Call r10k_insert_cache_barriers
from here.
(mips_reorg): Call mips_df_reorg instead of
r10k_insert_cache_barriers. Move CFG set-up code here from
r10k_insert_cache_barriers.
(mips_call_expr_from_insn): New function.
(mips_pic_call_symbol_from_set): Likewise.
(mips_find_pic_call_symbol): Likewise.
(mips_annotate_pic_call_expr): Likewise.
(mips_get_pic_call_symbol): Likewise.
(mips_annotate_pic_calls): Likewise.
(mips_override_options): Disable -mrelax-pic-calls unless PIC
calls are used.
(mips_set_mips16_mode): Disable -mrelax-pic-calls for MIPS16.
* config/mips/mips-protos.h (mips_get_pic_call_symbol): Declare it.
* config/mips/mips.h (MIPS_CALL): Use it to print the .reloc
directive.
* config/mips/mips.md (UNSPEC_CALL_ATTR): New unspec.
(unspec_call<mode>): Remove it.
(sibcall_internal, sibcall_value_internal,
sibcall_value_multiple_internal, call_internal, call_split,
call_value_internal, call_value_split,
call_value_multiple_internal, call_value_multiple_split): Pass
SIZE_OPNO to MIPS_CALL.
(call_internal_direct, call_direct_split,
call_value_internal_direct, call_value_direct_split): Pass -1 as
SIZE_OPNO to MIPS_CALL.
* configure.ac <mips*-*-*>: Add test for .reloc R_MIPS_JALR.
* configure: Regenerate.
* doc/invoke.texi (Option Summary): Add -mrelax-pic-calls
and -mno-relax-pic-calls.
(MIPS Options): Document -mrelax-pic-calls
and -mno-relax-pic-calls.
testsuite/
* gcc.target/mips/mips.exp: Add relax-pic-calls
under -mfoo/-mno-foo options.
(mips-dg-options): Make -mrelax-pic-calls imply -mno-plt, -mabicalls
and -mexplicit-relocs.
* gcc.target/mips/call-1.c: New test.
* gcc.target/mips/call-2.c: New test.
* gcc.target/mips/call-3.c: New test.
* gcc.target/mips/lazy-binding-1.c: Add MIPS-specific dg-options.
* gcc.dg/tree-ssa/loop-1.c: Likewise.
From-SVN: r151890
2009-09-19 22:23:55 +02:00
|
|
|
|
configure.ac: Test assembler support for DSP Rev1 mult.
2010-11-04 Chao-ying Fu <fu@mips.com>
* configure.ac: Test assembler support for DSP Rev1 mult.
* configure: Regenerate.
* config.in: Regenerate.
* config/mips/mips.h (ISA_HAS_DSP_MULT): New define.
* config/mips/mips.c (CODE_FOR_mips_mult): New define.
(CODE_FOR_mips_multu): New define.
(mips_builtins): Move madd, maddu, msub, msubu, mult, multu from
dspr2_32 to dsp_32.
(mips_mulsidi3_gen_fn): Test (TARGET_FIX_R4000 && !ISA_HAS_DSP).
Delete returns when ISA_HAS_DSPR2, because the old patterns are deleted.
* config/mips/mips-dsp.md (mips_madd<u>, mips_msub<u>):
New define_expand patterns.
* config/mips/constraints.md (ka): Update the constraint to test
ISA_HAS_DSP_MULT instead of ISA_HAS_DSPR2.
* config/mips/mips-dspr2.md (mips_madd<u>, mips_msub<u>, mips_mult,
mips_multu): Delete.
* config/mips/mips.md (<u>mulsidi3_32bit): Add comments.
Change target constraint to "ka".
Use (!TARGET_FIX_R4000 || ISA_HAS_DSP), instead of
(!TARGET_FIX_R4000 && !ISA_HAS_DSPR2).
Emit the accumulator destination when ISA_HAS_DSP_MULT.
(<u>msubsidi4): Add comments.
Test ISA_HAS_DSP.
Emit the accumulator destination when ISA_HAS_DSP_MULT.
(<u>maddsidi4): Likewise.
* doc/extend.texi (MIPS DSP Built-in Functions): Move madd, maddu,
msub, msubu, mult, multu built-in functions from DSP r2 to DSP r1.
From-SVN: r166344
2010-11-05 01:26:14 +01:00
|
|
|
gcc_GAS_CHECK_FEATURE([DSPR1 mult with four accumulators support],
|
|
|
|
gcc_cv_as_mips_dspr1_mult,,,
|
|
|
|
[ .set mips32r2
|
|
|
|
.set nodspr2
|
|
|
|
.set dsp
|
|
|
|
madd $ac3,$4,$5
|
|
|
|
maddu $ac3,$4,$5
|
|
|
|
msub $ac3,$4,$5
|
|
|
|
msubu $ac3,$4,$5
|
|
|
|
mult $ac3,$4,$5
|
|
|
|
multu $ac3,$4,$5],,
|
|
|
|
[AC_DEFINE(HAVE_AS_DSPR1_MULT, 1,
|
|
|
|
[Define if your assembler supports DSPR1 mult.])])
|
|
|
|
|
mips.opt (mrelax-pic-calls): New option.
* config/mips/mips.opt (mrelax-pic-calls): New option.
* config/mips/mips.c (mips_strip_unspec_address): Move it up in
the file.
(mips_unspec_call): Change "unspec_call" expander into this.
(mips_strip_unspec_call): New function.
(mips_got_load): Call mips_unspec_call instead of
gen_unspec_call<mode>.
(mips16_build_call_stub): Fix comment for fp_code. Adjust call to
MIPS_CALL.
(mips_cfg_in_reorg): New function.
(mips16_lay_out_constants): Use it to decide whether to call
CFG-aware insn splitting.
(r10k_insert_cache_barriers): Move CFG set-up code from here to
mips_reorg. Move DF set-up code from here ...
(mips_df_reorg): ... to here. Call r10k_insert_cache_barriers
from here.
(mips_reorg): Call mips_df_reorg instead of
r10k_insert_cache_barriers. Move CFG set-up code here from
r10k_insert_cache_barriers.
(mips_call_expr_from_insn): New function.
(mips_pic_call_symbol_from_set): Likewise.
(mips_find_pic_call_symbol): Likewise.
(mips_annotate_pic_call_expr): Likewise.
(mips_get_pic_call_symbol): Likewise.
(mips_annotate_pic_calls): Likewise.
(mips_override_options): Disable -mrelax-pic-calls unless PIC
calls are used.
(mips_set_mips16_mode): Disable -mrelax-pic-calls for MIPS16.
* config/mips/mips-protos.h (mips_get_pic_call_symbol): Declare it.
* config/mips/mips.h (MIPS_CALL): Use it to print the .reloc
directive.
* config/mips/mips.md (UNSPEC_CALL_ATTR): New unspec.
(unspec_call<mode>): Remove it.
(sibcall_internal, sibcall_value_internal,
sibcall_value_multiple_internal, call_internal, call_split,
call_value_internal, call_value_split,
call_value_multiple_internal, call_value_multiple_split): Pass
SIZE_OPNO to MIPS_CALL.
(call_internal_direct, call_direct_split,
call_value_internal_direct, call_value_direct_split): Pass -1 as
SIZE_OPNO to MIPS_CALL.
* configure.ac <mips*-*-*>: Add test for .reloc R_MIPS_JALR.
* configure: Regenerate.
* doc/invoke.texi (Option Summary): Add -mrelax-pic-calls
and -mno-relax-pic-calls.
(MIPS Options): Document -mrelax-pic-calls
and -mno-relax-pic-calls.
testsuite/
* gcc.target/mips/mips.exp: Add relax-pic-calls
under -mfoo/-mno-foo options.
(mips-dg-options): Make -mrelax-pic-calls imply -mno-plt, -mabicalls
and -mexplicit-relocs.
* gcc.target/mips/call-1.c: New test.
* gcc.target/mips/call-2.c: New test.
* gcc.target/mips/call-3.c: New test.
* gcc.target/mips/lazy-binding-1.c: Add MIPS-specific dg-options.
* gcc.dg/tree-ssa/loop-1.c: Likewise.
From-SVN: r151890
2009-09-19 22:23:55 +02:00
|
|
|
AC_MSG_CHECKING(assembler and linker for explicit JALR relocation)
|
|
|
|
gcc_cv_as_ld_jalr_reloc=no
|
|
|
|
if test $gcc_cv_as_mips_explicit_relocs = yes; then
|
|
|
|
if test $in_tree_ld = yes ; then
|
|
|
|
if test "$gcc_cv_gld_major_version" -eq 2 -a "$gcc_cv_gld_minor_version" -ge 20 -o "$gcc_cv_gld_major_version" -gt 2 \
|
|
|
|
&& test $in_tree_ld_is_elf = yes; then
|
|
|
|
gcc_cv_as_ld_jalr_reloc=yes
|
|
|
|
fi
|
|
|
|
elif test x$gcc_cv_as != x -a x$gcc_cv_ld != x -a x$gcc_cv_objdump != x; then
|
|
|
|
echo ' .ent x' > conftest.s
|
2014-05-13 15:36:56 +02:00
|
|
|
echo 'x: lw $2,%got_disp(y)($3)' >> conftest.s
|
|
|
|
echo ' lw $25,%call16(y)($28)' >> conftest.s
|
mips.opt (mrelax-pic-calls): New option.
* config/mips/mips.opt (mrelax-pic-calls): New option.
* config/mips/mips.c (mips_strip_unspec_address): Move it up in
the file.
(mips_unspec_call): Change "unspec_call" expander into this.
(mips_strip_unspec_call): New function.
(mips_got_load): Call mips_unspec_call instead of
gen_unspec_call<mode>.
(mips16_build_call_stub): Fix comment for fp_code. Adjust call to
MIPS_CALL.
(mips_cfg_in_reorg): New function.
(mips16_lay_out_constants): Use it to decide whether to call
CFG-aware insn splitting.
(r10k_insert_cache_barriers): Move CFG set-up code from here to
mips_reorg. Move DF set-up code from here ...
(mips_df_reorg): ... to here. Call r10k_insert_cache_barriers
from here.
(mips_reorg): Call mips_df_reorg instead of
r10k_insert_cache_barriers. Move CFG set-up code here from
r10k_insert_cache_barriers.
(mips_call_expr_from_insn): New function.
(mips_pic_call_symbol_from_set): Likewise.
(mips_find_pic_call_symbol): Likewise.
(mips_annotate_pic_call_expr): Likewise.
(mips_get_pic_call_symbol): Likewise.
(mips_annotate_pic_calls): Likewise.
(mips_override_options): Disable -mrelax-pic-calls unless PIC
calls are used.
(mips_set_mips16_mode): Disable -mrelax-pic-calls for MIPS16.
* config/mips/mips-protos.h (mips_get_pic_call_symbol): Declare it.
* config/mips/mips.h (MIPS_CALL): Use it to print the .reloc
directive.
* config/mips/mips.md (UNSPEC_CALL_ATTR): New unspec.
(unspec_call<mode>): Remove it.
(sibcall_internal, sibcall_value_internal,
sibcall_value_multiple_internal, call_internal, call_split,
call_value_internal, call_value_split,
call_value_multiple_internal, call_value_multiple_split): Pass
SIZE_OPNO to MIPS_CALL.
(call_internal_direct, call_direct_split,
call_value_internal_direct, call_value_direct_split): Pass -1 as
SIZE_OPNO to MIPS_CALL.
* configure.ac <mips*-*-*>: Add test for .reloc R_MIPS_JALR.
* configure: Regenerate.
* doc/invoke.texi (Option Summary): Add -mrelax-pic-calls
and -mno-relax-pic-calls.
(MIPS Options): Document -mrelax-pic-calls
and -mno-relax-pic-calls.
testsuite/
* gcc.target/mips/mips.exp: Add relax-pic-calls
under -mfoo/-mno-foo options.
(mips-dg-options): Make -mrelax-pic-calls imply -mno-plt, -mabicalls
and -mexplicit-relocs.
* gcc.target/mips/call-1.c: New test.
* gcc.target/mips/call-2.c: New test.
* gcc.target/mips/call-3.c: New test.
* gcc.target/mips/lazy-binding-1.c: Add MIPS-specific dg-options.
* gcc.dg/tree-ssa/loop-1.c: Likewise.
From-SVN: r151890
2009-09-19 22:23:55 +02:00
|
|
|
echo ' .reloc 1f,R_MIPS_JALR,y' >> conftest.s
|
|
|
|
echo '1: jalr $25' >> conftest.s
|
|
|
|
echo ' .reloc 1f,R_MIPS_JALR,x' >> conftest.s
|
|
|
|
echo '1: jalr $25' >> conftest.s
|
|
|
|
echo ' .end x' >> conftest.s
|
|
|
|
if $gcc_cv_as -o conftest.o conftest.s >/dev/null 2>&AS_MESSAGE_LOG_FD \
|
|
|
|
&& $gcc_cv_ld -shared -o conftest.so conftest.o >/dev/null 2>&AS_MESSAGE_LOG_FD; then
|
2010-05-25 20:50:01 +02:00
|
|
|
if $gcc_cv_objdump -d conftest.so | grep jalr >/dev/null 2>&1 \
|
|
|
|
&& $gcc_cv_objdump -d conftest.so | grep "bal.*<x>" >/dev/null 2>&1; then
|
mips.opt (mrelax-pic-calls): New option.
* config/mips/mips.opt (mrelax-pic-calls): New option.
* config/mips/mips.c (mips_strip_unspec_address): Move it up in
the file.
(mips_unspec_call): Change "unspec_call" expander into this.
(mips_strip_unspec_call): New function.
(mips_got_load): Call mips_unspec_call instead of
gen_unspec_call<mode>.
(mips16_build_call_stub): Fix comment for fp_code. Adjust call to
MIPS_CALL.
(mips_cfg_in_reorg): New function.
(mips16_lay_out_constants): Use it to decide whether to call
CFG-aware insn splitting.
(r10k_insert_cache_barriers): Move CFG set-up code from here to
mips_reorg. Move DF set-up code from here ...
(mips_df_reorg): ... to here. Call r10k_insert_cache_barriers
from here.
(mips_reorg): Call mips_df_reorg instead of
r10k_insert_cache_barriers. Move CFG set-up code here from
r10k_insert_cache_barriers.
(mips_call_expr_from_insn): New function.
(mips_pic_call_symbol_from_set): Likewise.
(mips_find_pic_call_symbol): Likewise.
(mips_annotate_pic_call_expr): Likewise.
(mips_get_pic_call_symbol): Likewise.
(mips_annotate_pic_calls): Likewise.
(mips_override_options): Disable -mrelax-pic-calls unless PIC
calls are used.
(mips_set_mips16_mode): Disable -mrelax-pic-calls for MIPS16.
* config/mips/mips-protos.h (mips_get_pic_call_symbol): Declare it.
* config/mips/mips.h (MIPS_CALL): Use it to print the .reloc
directive.
* config/mips/mips.md (UNSPEC_CALL_ATTR): New unspec.
(unspec_call<mode>): Remove it.
(sibcall_internal, sibcall_value_internal,
sibcall_value_multiple_internal, call_internal, call_split,
call_value_internal, call_value_split,
call_value_multiple_internal, call_value_multiple_split): Pass
SIZE_OPNO to MIPS_CALL.
(call_internal_direct, call_direct_split,
call_value_internal_direct, call_value_direct_split): Pass -1 as
SIZE_OPNO to MIPS_CALL.
* configure.ac <mips*-*-*>: Add test for .reloc R_MIPS_JALR.
* configure: Regenerate.
* doc/invoke.texi (Option Summary): Add -mrelax-pic-calls
and -mno-relax-pic-calls.
(MIPS Options): Document -mrelax-pic-calls
and -mno-relax-pic-calls.
testsuite/
* gcc.target/mips/mips.exp: Add relax-pic-calls
under -mfoo/-mno-foo options.
(mips-dg-options): Make -mrelax-pic-calls imply -mno-plt, -mabicalls
and -mexplicit-relocs.
* gcc.target/mips/call-1.c: New test.
* gcc.target/mips/call-2.c: New test.
* gcc.target/mips/call-3.c: New test.
* gcc.target/mips/lazy-binding-1.c: Add MIPS-specific dg-options.
* gcc.dg/tree-ssa/loop-1.c: Likewise.
From-SVN: r151890
2009-09-19 22:23:55 +02:00
|
|
|
gcc_cv_as_ld_jalr_reloc=yes
|
|
|
|
fi
|
|
|
|
fi
|
|
|
|
rm -f conftest.*
|
|
|
|
fi
|
|
|
|
fi
|
|
|
|
if test $gcc_cv_as_ld_jalr_reloc = yes; then
|
|
|
|
if test x$target_cpu_default = x; then
|
|
|
|
target_cpu_default=MASK_RELAX_PIC_CALLS
|
|
|
|
else
|
|
|
|
target_cpu_default="($target_cpu_default)|MASK_RELAX_PIC_CALLS"
|
|
|
|
fi
|
|
|
|
fi
|
|
|
|
AC_MSG_RESULT($gcc_cv_as_ld_jalr_reloc)
|
2009-09-20 12:36:05 +02:00
|
|
|
|
|
|
|
AC_CACHE_CHECK([linker for .eh_frame personality relaxation],
|
|
|
|
[gcc_cv_ld_mips_personality_relaxation],
|
|
|
|
[gcc_cv_ld_mips_personality_relaxation=no
|
|
|
|
if test $in_tree_ld = yes ; then
|
|
|
|
if test "$gcc_cv_gld_major_version" -eq 2 \
|
|
|
|
-a "$gcc_cv_gld_minor_version" -ge 21 \
|
|
|
|
-o "$gcc_cv_gld_major_version" -gt 2; then
|
|
|
|
gcc_cv_ld_mips_personality_relaxation=yes
|
|
|
|
fi
|
|
|
|
elif test x$gcc_cv_as != x \
|
|
|
|
-a x$gcc_cv_ld != x \
|
|
|
|
-a x$gcc_cv_readelf != x ; then
|
|
|
|
cat > conftest.s <<EOF
|
|
|
|
.cfi_startproc
|
|
|
|
.cfi_personality 0x80,indirect_ptr
|
|
|
|
.ent test
|
|
|
|
test:
|
|
|
|
nop
|
|
|
|
.end test
|
|
|
|
.cfi_endproc
|
|
|
|
|
|
|
|
.section .data,"aw",@progbits
|
|
|
|
indirect_ptr:
|
|
|
|
.dc.a personality
|
|
|
|
EOF
|
|
|
|
if $gcc_cv_as -KPIC -o conftest.o conftest.s > /dev/null 2>&1 \
|
|
|
|
&& $gcc_cv_ld -o conftest conftest.o -shared > /dev/null 2>&1; then
|
|
|
|
if $gcc_cv_readelf -d conftest 2>&1 \
|
|
|
|
| grep TEXTREL > /dev/null 2>&1; then
|
|
|
|
:
|
|
|
|
elif $gcc_cv_readelf --relocs conftest 2>&1 \
|
|
|
|
| grep 'R_MIPS_REL32 *$' > /dev/null 2>&1; then
|
|
|
|
:
|
|
|
|
else
|
|
|
|
gcc_cv_ld_mips_personality_relaxation=yes
|
|
|
|
fi
|
|
|
|
fi
|
|
|
|
fi
|
|
|
|
rm -f conftest.s conftest.o conftest])
|
|
|
|
if test x$gcc_cv_ld_mips_personality_relaxation = xyes; then
|
|
|
|
AC_DEFINE(HAVE_LD_PERSONALITY_RELAXATION, 1,
|
|
|
|
[Define if your linker can relax absolute .eh_frame personality
|
|
|
|
pointers into PC-relative form.])
|
|
|
|
fi
|
2013-07-29 16:37:30 +02:00
|
|
|
|
|
|
|
gcc_GAS_CHECK_FEATURE([-mnan= support],
|
|
|
|
gcc_cv_as_mips_nan,,
|
|
|
|
[-mnan=2008],,,
|
|
|
|
[AC_DEFINE(HAVE_AS_NAN, 1,
|
|
|
|
[Define if the assembler understands -mnan=.])])
|
|
|
|
if test x$gcc_cv_as_mips_nan = xno \
|
|
|
|
&& test x$with_nan != x; then
|
|
|
|
AC_MSG_ERROR(
|
|
|
|
[Requesting --with-nan= requires assembler support for -mnan=])
|
|
|
|
fi
|
2005-10-11 01:45:18 +02:00
|
|
|
;;
|
2015-06-24 08:36:46 +02:00
|
|
|
s390*-*-*)
|
|
|
|
gcc_GAS_CHECK_FEATURE([.gnu_attribute support],
|
|
|
|
gcc_cv_as_s390_gnu_attribute, [2,18,0],,
|
|
|
|
[.gnu_attribute 8,1],,
|
|
|
|
[AC_DEFINE(HAVE_AS_GNU_ATTRIBUTE, 1,
|
|
|
|
[Define if your assembler supports .gnu_attribute.])])
|
|
|
|
;;
|
2005-10-11 01:45:18 +02:00
|
|
|
esac
|
|
|
|
|
|
|
|
# Mips and HP-UX need the GNU assembler.
|
|
|
|
# Linux on IA64 might be able to use the Intel assembler.
|
2003-07-12 22:03:14 +02:00
|
|
|
|
2005-10-11 01:45:18 +02:00
|
|
|
case "$target" in
|
|
|
|
mips*-*-* | *-*-hpux* )
|
configure.ac (mips*-*-*): Print an error if not using GAS.
* configure.ac (mips*-*-*): Print an error if not using GAS.
* configure: Regenerated.
* doc/install.texi: Remove irix5 bullet from --with-gnu-as. Remove
comments about buggy MIPSpro assemblers.
* config.gcc (mips-sgi-irix[56]*): Combine stanzas. Include elfos.h
before mips.h and iris.h after it. Use t-iris and t-slibgcc-irix.
Use iris5.h only for IRIX 5 configs. Use iris6.h and t-iris6 for
IRIX 6 configs. Define IRIX_USING_GNU_LD if using GNU ld.
* config/mips/iris5.h (TARGET_IRIX, SWITCHES_NEED_SPACES)
(DEFAULT_SIGNED_CHAR, WORD_SWITCH_TAKES_ARG, SUBTARGET_CC1_SPEC)
(NO_IMPLICIT_EXTERN_C, MIPS_DEFAULT_GVALUE)
(TARGET_ASM_EXTERNAL_LIBCALL): Move to iris.h.
(WCHAR_TYPE, WCHAR_TYPE_SIZE, TARGET_OS_CPP_BUILTINS): Delete in favor
of more general IRIX 6 definitions.
(OBJECT_FORMAT_ELF, ASM_OUTPUT_ASCII, ASM_WEAKEN_LABEL)
(HANDLE_SYSV_PRAGMA): Delete in favor of elfos.h definitions.
(TARGET_IRIX5, ABICALLS_ASM_OP, BSS_SECTION_ASM_OP, HAS_INIT_SECTION)
(LD_INIT_SWITCH, LD_FINI_SWITCH, SUBTARGET_ASM_OPTIMIZING_SPEC)
(ASM_FINAL_SPEC, DBX_DEBUGGING_INFO, MIPS_DEBUGGING_INFO)
(PREFERRED_DEBUGGING_TYPE, DWARF2_UNWIND_INFO, SET_FILE_NUMBER)
(LABEL_AFTER_LOC, DOLLARS_IN_IDENTIFIERS, NO_DOLLAR_IN_LABEL)
(TARGET_ASM_NAMED_SECTION, EXTRA_SECTION_FUNCTIONS)
(ASM_DECLARE_FUNCTION_SIZE, ASM_OUTPUT_WEAK_ALIAS)
(SUBTARGET_EXTRA_SPECS): Delete definitions or undefs.
(LINK_SPEC): Move most of definition to iris.h.
(SUBTARGET_LINK_SPEC): New macro.
(IRIX_STARTFILE_SPEC): Fold into...
(STARTFILE_SPEC): ...here.
(IRIX_ENDFILE_SPEC): Fold into...
(ENDFILE_SPEC): ...here.
* config/mips/iris6.h (TARGET_IRIX5): Remove override.
(WCHAR_TYPE, WCHAR_TYPE_SIZE, WINT_TYPE, WINT_TYPE_SIZE)
(DWARF_OFFSET_SIZE, DWARF_INITIAL_LENGTH_SIZE, SET_ASM_OP)
(LINK_ELIMINATE_DUPLICATE_LDIRECTORIES, ASM_DECLARE_OBJECT_NAME)
(ASM_FINISH_DECLARE_OBJECT, LOCAL_LABEL_PREFIX): Move to iris.h.
(TARGET_OS_CPP_BUILTINS): Likewise. Guard IRIX6-specific bits.
(DWARF2_UNWIND_INFO, DWARF2_GENERATE_TEXT_SECTION_LABEL)
(SUBTARGET_CPP_SPEC, DWARF2_DEBUGGING_INFO, MIPS_DEBUGGING_INFO)
(PREFERRED_DEBUGGING_TYPE, DWARF2_FRAME_INFO, MD_EXEC_PREFIX)
(ASM_DECLARE_FUNCTION_NAME, ASM_DECLARE_FUNCTION_SIZE)
(FUNCTION_NAME_ALREADY_DECLARED, SUPPORTS_INIT_PRIORITY)
(POPSECTION_ASM_OP, SUBTARGET_ASM_SPEC, SUBTARGET_MIPS_AS_ASM_SPEC)
(SUBTARGET_ASM_DEBUGGING_SPEC, SUBTARGET_ASM_OPTIMIZING_SPEC)
(BSS_SECTION_ASM_OP*, READONLY_DATA_SECTION_ASM_OP*)
(EH_FRAME_SECTION_NAME, MUST_USE_SJLJ_EXCEPTIONS, CTORS_SECTION_ASM_OP)
(DTORS_SECTION_ASM_OP, TARGET_ASM_NAMED_SECTION, EH_FRAME_SECTION_NAME)
(ASM_OUTPUT_ALIGN, ASM_OUTPUT_FILENAME, ASM_OUTPUT_ALIGNED_LOCAL)
(ASM_OUTPUT_ALIGNED_BSS): Remove definitions or undefs.
(TARGET_IRIX6): Define to 1.
(DRIVER_SELF_SPECS): Define.
(DWARF2_FRAME_INFO): Define to 1 rather than !TARGET_SGI_O32_AS.
(SUBTARGET_CC1_SPEC): Remove in favor of DRIVER_SELF_SPECS.
(SUBTARGET_LINK_SPEC): New macro.
(IRIX_STARTFILE_SPEC): Fold into...
(STARTFILE_SPEC): ...here. Remove !mabi=* case.
(SUBTARGET_{,DONT_}WARN_UNUSED_SPEC): New macros.
(LIB_SPEC, LIBGCC_SPEC): Use them.
(LIB_SPEC): Remove !mabi=* case.
(IRIX_ENDFILE_SPEC): Fold into...
(ENDFILE_SPEC): ...here. Remove !mabi=* case.
* config/mips/mips-protos.h (irix_output_external_libcall): Delete.
* config/mips/mips.h (TARGET_IRIX5, TARGET_SGI_O32_AS): Delete.
(TARGET_IRIX6): New macro.
(ASM_ABI_DEFAULT_SPEC): Remove !ELF definition.
(MD_EXEC_PREFIX, MD_STARTFILE_PREFIX, SET_FILE_NUMBER)
(LABEL_AFTER_LOC): Delete.
* config/mips/mips.c (TARGET_ASM_FILE_START, TARGET_ASM_FILE_END)
(TARGET_SECTION_TYPE_FLAGS): Remove TARGET_IRIX versions.
(mips_build_builtin_va_list): Check TARGET_IRIX6.
(override_options): Remove TARGET_SGI_O32_AS-related code.
(irix_output_external_libcall): Make static.
(mips_output_filename): Avoid use of SET_FILE_NUMBER and
LABEL_AFTER_LOC.
(mips_file_start): Tidy guard for ABI sections. Remove use of
ABICALLS_ASM_OP; use .abicalls instead.
(mips_output_aligned_decl_common, mips_declare_object_name)
(mips_finish_declare_object): Remove use of TARGET_SGI_O32_AS.
(mips_output_function_prologue): Set TREE_ASM_WRITTEN if emitting
.globl foo .text directives.
(irix_asm_named_section_1, irix_asm_named_section)
(irix_section_align_entry, irix_section_align_htab)
(irix_orig_asm_out_file, irix_section_align_entry_eq)
(irix_section_align_entry_hash, irix_asm_output_align)
(irix_file_start, irix_section_align_1, copy_file_data)
(irix_file_end, irix_section_type_flags): Delete.
* config/mips/irix-crti.asm (__gcc_init): Move to .gcc_init section.
Use standard section syntax. Remove protective "jr $31".
(__gcc_fini): Likewise .gcc_fini.
* config/mips/irix-crtn.asm: Adjust sections accordingly.
* config/mips/sdb.h (PUT_SDB_SIZE, PUT_SDB_TYPE): Moved from
iris5gas.h.
* config/mips/t-iris (irix-crti.o, irix-crtn.o): New rules, moved
from t-irix-gld.
(EXTRA_MULTILIB_PARTS): Define.
* config/mips/t-iris6: Remove bogus comment.
(EXTRA_MULTILIB_PARTS, CRTSTUFF_T_CFLAGS): Delete.
* config/mips/iris5gas.h, config/mips/iris5gld.h,
config/mips/iris6gas.h, config/mips/iris6gld.h,
config/mips/t-iris5-as, config/mips/t-iris5-gas
config/mips/t-irix-gld: Delete.
* config/mips/iris.h: New file.
* config/mips/t-slibgcc-irix: Renamed from t-iris5-6.
From-SVN: r86309
2004-08-20 12:21:02 +02:00
|
|
|
if test x$gas_flag = xyes \
|
|
|
|
|| test x"$host" != x"$build" \
|
|
|
|
|| test ! -x "$gcc_cv_as" \
|
|
|
|
|| "$gcc_cv_as" -v < /dev/null 2>&1 | grep GNU > /dev/null; then
|
|
|
|
:
|
|
|
|
else
|
|
|
|
echo "*** This configuration requires the GNU assembler" >&2
|
|
|
|
exit 1
|
|
|
|
fi
|
2003-07-12 22:03:14 +02:00
|
|
|
;;
|
|
|
|
esac
|
2005-10-11 01:45:18 +02:00
|
|
|
|
2000-11-18 00:53:38 +01:00
|
|
|
# ??? Not all targets support dwarf2 debug_line, even within a version
|
|
|
|
# of gas. Moreover, we need to emit a valid instruction to trigger any
|
|
|
|
# info to the output file. So, as supported targets are added to gas 2.11,
|
|
|
|
# add some instruction here to (also) show we expect this might work.
|
|
|
|
# ??? Once 2.11 is released, probably need to add first known working
|
|
|
|
# version to the per-target configury.
|
2010-10-25 12:08:01 +02:00
|
|
|
case "$cpu_type" in
|
2013-08-22 18:52:01 +02:00
|
|
|
aarch64 | alpha | arm | avr | bfin | cris | i386 | m32c | m68k | microblaze \
|
2013-12-31 08:05:35 +01:00
|
|
|
| mips | nios2 | pa | rs6000 | score | sparc | spu | tilegx | tilepro \
|
2015-01-06 09:50:12 +01:00
|
|
|
| visium | xstormy16 | xtensa)
|
2000-11-18 00:53:38 +01:00
|
|
|
insn="nop"
|
|
|
|
;;
|
2010-10-25 12:08:01 +02:00
|
|
|
ia64 | s390)
|
2000-11-18 00:53:38 +01:00
|
|
|
insn="nop 0"
|
|
|
|
;;
|
2010-10-25 12:08:01 +02:00
|
|
|
mmix)
|
2003-06-12 09:09:56 +02:00
|
|
|
insn="swym 0"
|
|
|
|
;;
|
2003-07-12 22:03:14 +02:00
|
|
|
esac
|
|
|
|
if test x"$insn" != x; then
|
|
|
|
conftest_s="\
|
|
|
|
.file 1 \"conftest.s\"
|
|
|
|
.loc 1 3 0
|
|
|
|
$insn"
|
|
|
|
gcc_GAS_CHECK_FEATURE([dwarf2 debug_line support],
|
|
|
|
gcc_cv_as_dwarf2_debug_line,
|
|
|
|
[elf,2,11,0],, [$conftest_s],
|
2005-01-09 00:14:06 +01:00
|
|
|
[if test x$gcc_cv_objdump != x \
|
|
|
|
&& $gcc_cv_objdump -h conftest.o 2> /dev/null \
|
|
|
|
| grep debug_line > /dev/null 2>&1; then
|
2003-07-12 22:03:14 +02:00
|
|
|
gcc_cv_as_dwarf2_debug_line=yes
|
|
|
|
fi])
|
|
|
|
|
|
|
|
# The .debug_line file table must be in the exact order that
|
|
|
|
# we specified the files, since these indices are also used
|
|
|
|
# by DW_AT_decl_file. Approximate this test by testing if
|
|
|
|
# the assembler bitches if the same index is assigned twice.
|
|
|
|
gcc_GAS_CHECK_FEATURE([buggy dwarf2 .file directive],
|
|
|
|
gcc_cv_as_dwarf2_file_buggy,,,
|
|
|
|
[ .file 1 "foo.s"
|
|
|
|
.file 1 "bar.s"])
|
|
|
|
|
|
|
|
if test $gcc_cv_as_dwarf2_debug_line = yes \
|
|
|
|
&& test $gcc_cv_as_dwarf2_file_buggy = no; then
|
2000-11-18 00:53:38 +01:00
|
|
|
AC_DEFINE(HAVE_AS_DWARF2_DEBUG_LINE, 1,
|
2003-07-12 22:03:14 +02:00
|
|
|
[Define if your assembler supports dwarf2 .file/.loc directives,
|
ChangeLog.2, [...]: Fix spelling errors.
* ChangeLog.2, ChangeLog.3, ChangeLog.4, ChangeLog.5, ChangeLog,
cfg.c, cfganal.c, cfgcleanup.c, cfglayout.c, cfgloop.c, cfgrtl.c,
collect2.c, combine.c, config.in, configure, configure.in,
conflict.c, dwarf2out.c, dwarfout.c, except.c, final.c, flow.c,
genattrtab.c, ggc-page.c, jump.c, lcm.c, predict.c, reg-stack.c,
reload1.c, rtlanal.c, sched-rgn.c, toplev.c, unwind-dw2-fde.h: Fix
spelling errors.
From-SVN: r46928
2001-11-11 12:25:28 +01:00
|
|
|
and preserves file table indices exactly as given.])
|
2003-07-12 22:03:14 +02:00
|
|
|
fi
|
|
|
|
|
|
|
|
gcc_GAS_CHECK_FEATURE([--gdwarf2 option],
|
|
|
|
gcc_cv_as_gdwarf2_flag,
|
|
|
|
[elf,2,11,0], [--gdwarf2], [$insn],,
|
|
|
|
[AC_DEFINE(HAVE_AS_GDWARF2_DEBUG_FLAG, 1,
|
|
|
|
[Define if your assembler supports the --gdwarf2 option.])])
|
|
|
|
|
|
|
|
gcc_GAS_CHECK_FEATURE([--gstabs option],
|
|
|
|
gcc_cv_as_gstabs_flag,
|
2014-04-22 14:30:59 +02:00
|
|
|
[elf,2,11,0], [--gstabs], [$insn],,
|
2003-07-12 22:03:14 +02:00
|
|
|
[AC_DEFINE(HAVE_AS_GSTABS_DEBUG_FLAG, 1,
|
|
|
|
[Define if your assembler supports the --gstabs option.])])
|
Makefile.tpl (DEBUG_PREFIX_CFLAGS_FOR_TARGET): New.
2007-08-18 Paul Brook <paul@codesourcery.com>
Joseph Myers <joseph@codesourcery.com>
* Makefile.tpl (DEBUG_PREFIX_CFLAGS_FOR_TARGET): New.
(CFLAGS_FOR_TARGET, CXXFLAGS_FOR_TARGET): Include it.
* Makefile.in: Regenerate.
* configure.ac (--with-debug-prefix-map): New.
* configure: Regenerate.
config:
2007-08-18 Paul Brook <paul@codesourcery.com>
Joseph Myers <joseph@codesourcery.com>
* mt-gnu (CXXFLAGS_FOR_TARGET): Add
$(DEBUG_PREFIX_CFLAGS_FOR_TARGET).
gcc:
2007-08-18 Paul Brook <paul@codesourcery.com>
Joseph Myers <joseph@codesourcery.com>
* common.opt (-fdebug-prefix-map=): New option.
* opts.c: Include debug.h.
(common_handle_option): Handle -fdebug-prefix-map.
* final.c: Include ggc.h.
(struct debug_prefix_map, debug_prefix_maps, add_debug_prefix_map,
remap_debug_filename): New.
* Makefile.in (final.o, opts.o): Update dependencies.
* debug.h (remap_debug_filename, add_debug_prefix_map): Declare.
* configure.ac: Check for assembler --debug-prefix-map support.
* configure, config.in: Regenerate.
* gcc.c (ASM_MAP): Define conditional on HAVE_AS_DEBUG_PREFIX_MAP.
(ASM_DEBUG_SPEC): Include ASM_MAP.
* doc/install.texi (--with-debug-prefix-map): Document.
* doc/invoke.texi (-fdebug-prefix-map): Document.
* dbxout.c (dbxout_init, dbxout_start_source_file,
dbxout_source_file): Call remap_debug_filename.
* dwarf2out.c (add_comp_dir_attribute, maybe_emit_file,
dwarf2out_start_source_file, dwarf2out_finish): Call
remap_debug_filename.
(file_table_relative_p): Do not check d->emitted_number.
* toplev.c (output_file_directive): Call remap_debug_filename.
* vmsdbgout.c (write_srccorr): Call remap_debug_filename.
* xcoffout.c (xcoffout_source_file): Call remap_debug_filename.
Co-Authored-By: Joseph Myers <joseph@codesourcery.com>
From-SVN: r127613
2007-08-18 17:15:39 +02:00
|
|
|
|
|
|
|
gcc_GAS_CHECK_FEATURE([--debug-prefix-map option],
|
|
|
|
gcc_cv_as_debug_prefix_map_flag,
|
2007-08-25 19:32:33 +02:00
|
|
|
[2,18,0], [--debug-prefix-map /a=/b], [$insn],,
|
Makefile.tpl (DEBUG_PREFIX_CFLAGS_FOR_TARGET): New.
2007-08-18 Paul Brook <paul@codesourcery.com>
Joseph Myers <joseph@codesourcery.com>
* Makefile.tpl (DEBUG_PREFIX_CFLAGS_FOR_TARGET): New.
(CFLAGS_FOR_TARGET, CXXFLAGS_FOR_TARGET): Include it.
* Makefile.in: Regenerate.
* configure.ac (--with-debug-prefix-map): New.
* configure: Regenerate.
config:
2007-08-18 Paul Brook <paul@codesourcery.com>
Joseph Myers <joseph@codesourcery.com>
* mt-gnu (CXXFLAGS_FOR_TARGET): Add
$(DEBUG_PREFIX_CFLAGS_FOR_TARGET).
gcc:
2007-08-18 Paul Brook <paul@codesourcery.com>
Joseph Myers <joseph@codesourcery.com>
* common.opt (-fdebug-prefix-map=): New option.
* opts.c: Include debug.h.
(common_handle_option): Handle -fdebug-prefix-map.
* final.c: Include ggc.h.
(struct debug_prefix_map, debug_prefix_maps, add_debug_prefix_map,
remap_debug_filename): New.
* Makefile.in (final.o, opts.o): Update dependencies.
* debug.h (remap_debug_filename, add_debug_prefix_map): Declare.
* configure.ac: Check for assembler --debug-prefix-map support.
* configure, config.in: Regenerate.
* gcc.c (ASM_MAP): Define conditional on HAVE_AS_DEBUG_PREFIX_MAP.
(ASM_DEBUG_SPEC): Include ASM_MAP.
* doc/install.texi (--with-debug-prefix-map): Document.
* doc/invoke.texi (-fdebug-prefix-map): Document.
* dbxout.c (dbxout_init, dbxout_start_source_file,
dbxout_source_file): Call remap_debug_filename.
* dwarf2out.c (add_comp_dir_attribute, maybe_emit_file,
dwarf2out_start_source_file, dwarf2out_finish): Call
remap_debug_filename.
(file_table_relative_p): Do not check d->emitted_number.
* toplev.c (output_file_directive): Call remap_debug_filename.
* vmsdbgout.c (write_srccorr): Call remap_debug_filename.
* xcoffout.c (xcoffout_source_file): Call remap_debug_filename.
Co-Authored-By: Joseph Myers <joseph@codesourcery.com>
From-SVN: r127613
2007-08-18 17:15:39 +02:00
|
|
|
[AC_DEFINE(HAVE_AS_DEBUG_PREFIX_MAP, 1,
|
|
|
|
[Define if your assembler supports the --debug-prefix-map option.])])
|
2000-11-18 00:53:38 +01:00
|
|
|
fi
|
2001-11-20 11:16:09 +01:00
|
|
|
|
2014-06-27 15:48:54 +02:00
|
|
|
gcc_GAS_CHECK_FEATURE([compressed debug sections],
|
|
|
|
gcc_cv_as_compress_debug,,[--compress-debug-sections],,
|
|
|
|
[# gas compiled without zlib cannot compress debug sections and warns
|
|
|
|
# about it, but still exits successfully. So check for this, too.
|
|
|
|
if $gcc_cv_as --compress-debug-sections -o conftest.o conftest.s 2>&1 | grep -i warning > /dev/null
|
|
|
|
then
|
|
|
|
gcc_cv_as_compress_debug=0
|
|
|
|
elif $gcc_cv_as --compress-debug-sections -o conftest.o conftest.s > /dev/null 2>&1
|
|
|
|
then
|
|
|
|
gcc_cv_as_compress_debug=1
|
|
|
|
gcc_cv_as_compress_debug_option="--compress-debug-sections"
|
|
|
|
gcc_cv_as_no_compress_debug_option="--nocompress-debug-sections"
|
|
|
|
else
|
|
|
|
gcc_cv_as_compress_debug=0
|
|
|
|
# FIXME: Future gas versions will support ELF gABI style via
|
|
|
|
# --compress-debug-sections[=type].
|
|
|
|
fi])
|
|
|
|
AC_DEFINE_UNQUOTED(HAVE_AS_COMPRESS_DEBUG, $gcc_cv_as_compress_debug,
|
|
|
|
[Define to the level of your assembler's compressed debug section support.])
|
|
|
|
AC_DEFINE_UNQUOTED(AS_COMPRESS_DEBUG_OPTION, "$gcc_cv_as_compress_debug_option",
|
|
|
|
[Define to the assembler option to enable compressed debug sections.])
|
|
|
|
AC_DEFINE_UNQUOTED(AS_NO_COMPRESS_DEBUG_OPTION, "$gcc_cv_as_no_compress_debug_option",
|
|
|
|
[Define to the assembler option to disable compressed debug sections.])
|
|
|
|
|
2008-09-04 11:43:08 +02:00
|
|
|
gcc_GAS_CHECK_FEATURE([.lcomm with alignment], gcc_cv_as_lcomm_with_alignment,
|
|
|
|
,,
|
|
|
|
[.lcomm bar,4,16],,
|
|
|
|
[AC_DEFINE(HAVE_GAS_LCOMM_WITH_ALIGNMENT, 1,
|
|
|
|
[Define if your assembler supports .lcomm with an alignment field.])])
|
|
|
|
|
2013-11-15 13:34:28 +01:00
|
|
|
if test x$with_sysroot = x && test x$host = x$target \
|
|
|
|
&& test "$prefix" != "/usr" && test "x$prefix" != "x$local_prefix" \
|
|
|
|
&& test "$prefix" != "NONE"; then
|
|
|
|
AC_DEFINE_UNQUOTED(PREFIX_INCLUDE_DIR, "$prefix/include",
|
|
|
|
[Define to PREFIX/include if cpp should also search that directory.])
|
|
|
|
fi
|
|
|
|
|
|
|
|
# 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], [
|
|
|
|
glibc_version_major=0
|
|
|
|
glibc_version_minor=0
|
|
|
|
[if test -f $target_header_dir/features.h \
|
|
|
|
&& glibc_version_major_define=`$EGREP '^[ ]*#[ ]*define[ ]+__GLIBC__[ ]+[0-9]' $target_header_dir/features.h` \
|
|
|
|
&& glibc_version_minor_define=`$EGREP '^[ ]*#[ ]*define[ ]+__GLIBC_MINOR__[ ]+[0-9]' $target_header_dir/features.h`; then
|
|
|
|
glibc_version_major=`echo "$glibc_version_major_define" | sed -e 's/.*__GLIBC__[ ]*//'`
|
|
|
|
glibc_version_minor=`echo "$glibc_version_minor_define" | sed -e 's/.*__GLIBC_MINOR__[ ]*//'`
|
|
|
|
fi]])
|
|
|
|
AC_MSG_RESULT([$glibc_version_major.$glibc_version_minor])
|
2014-11-03 14:40:50 +01:00
|
|
|
AC_DEFINE_UNQUOTED([TARGET_GLIBC_MAJOR], [$glibc_version_major],
|
|
|
|
[GNU C Library major version number used on the target, or 0.])
|
|
|
|
AC_DEFINE_UNQUOTED([TARGET_GLIBC_MINOR], [$glibc_version_minor],
|
|
|
|
[GNU C Library minor version number used on the target, or 0.])
|
2013-11-15 13:34:28 +01:00
|
|
|
|
2009-08-18 19:01:36 +02:00
|
|
|
AC_ARG_ENABLE(gnu-unique-object,
|
2010-12-10 11:55:56 +01:00
|
|
|
[AS_HELP_STRING([--enable-gnu-unique-object],
|
|
|
|
[enable the use of the @gnu_unique_object ELF extension on glibc systems])],
|
2009-08-18 19:01:36 +02:00
|
|
|
[case $enable_gnu_unique_object in
|
|
|
|
yes | no) ;;
|
|
|
|
*) AC_MSG_ERROR(['$enable_gnu_unique_object' is an invalid value for --enable-gnu-unique-object.
|
|
|
|
Valid choices are 'yes' and 'no'.]) ;;
|
|
|
|
esac],
|
|
|
|
[gcc_GAS_CHECK_FEATURE([gnu_unique_object], gcc_cv_as_gnu_unique_object,
|
|
|
|
[elf,2,19,52],,
|
2012-03-15 11:50:58 +01:00
|
|
|
[.type foo, '$target_type_format_char'gnu_unique_object],,
|
|
|
|
# We need to unquote above to to use the definition from config.gcc.
|
2009-08-18 19:01:36 +02:00
|
|
|
# Also check for ld.so support, i.e. glibc 2.11 or higher.
|
2013-11-15 13:34:28 +01:00
|
|
|
[GCC_GLIBC_VERSION_GTE_IFELSE([2], [11], [enable_gnu_unique_object=yes], )]
|
|
|
|
)])
|
2009-08-18 19:01:36 +02:00
|
|
|
if test x$enable_gnu_unique_object = xyes; then
|
|
|
|
AC_DEFINE(HAVE_GAS_GNU_UNIQUE_OBJECT, 1,
|
|
|
|
[Define if your assembler supports @gnu_unique_object.])
|
|
|
|
fi
|
|
|
|
|
2007-03-13 08:19:14 +01:00
|
|
|
AC_CACHE_CHECK([assembler for tolerance to line number 0],
|
|
|
|
[gcc_cv_as_line_zero],
|
|
|
|
[gcc_cv_as_line_zero=no
|
|
|
|
if test $in_tree_gas = yes; then
|
2007-03-17 00:44:42 +01:00
|
|
|
gcc_GAS_VERSION_GTE_IFELSE(2, 16, 91, [gcc_cv_as_line_zero=yes])
|
2007-03-13 08:19:14 +01:00
|
|
|
elif test "x$gcc_cv_as" != x; then
|
|
|
|
{ echo '# 1 "test.s" 1'; echo '# 0 "" 2'; } > conftest.s
|
|
|
|
if AC_TRY_COMMAND([$gcc_cv_as -o conftest.o conftest.s >&AS_MESSAGE_LOG_FD 2>conftest.out]) &&
|
|
|
|
test "x`cat conftest.out`" = x
|
|
|
|
then
|
|
|
|
gcc_cv_as_line_zero=yes
|
|
|
|
else
|
|
|
|
echo "configure: failed program was" >&AS_MESSAGE_LOG_FD
|
|
|
|
cat conftest.s >&AS_MESSAGE_LOG_FD
|
|
|
|
echo "configure: error output was" >&AS_MESSAGE_LOG_FD
|
|
|
|
cat conftest.out >&AS_MESSAGE_LOG_FD
|
|
|
|
fi
|
|
|
|
rm -f conftest.o conftest.s conftest.out
|
|
|
|
fi])
|
|
|
|
if test "x$gcc_cv_as_line_zero" = xyes; then
|
|
|
|
AC_DEFINE([HAVE_AS_LINE_ZERO], 1,
|
|
|
|
[Define if the assembler won't complain about a line such as # 0 "" 2.])
|
|
|
|
fi
|
|
|
|
|
configure.in: Check for ld.
* configure.in: Check for ld.
(HAVE_LD_EH_FRAME_HDR): Define if ld supports --eh-frame-hdr option.
* configure, config.in: Rebuilt.
* config.gcc: Add crtbeginT.o to extra_parts where needed.
* config/t-linux (LIB2ADDEH, LIB2ADDEHDEP): Use unwind-dw2-fde-glibc
frame unwinding on Linux.
* config/t-linux-gnulibc1 (LIB2ADDEH, LIB2ADDEHDEP): Use unwind-dw2-fde
frame unwinding.
* config/linux.h (STARTFILE_SPEC): Use crtbeginT.o for -static.
(LINK_EH_SPEC): Define.
* config/i386/gnu.h (STARTFILE_SPEC): Use crtbeginT.o for -static.
* config/ia64/linux.h (STARTFILE_SPEC, LINK_EH_SPEC): Define.
* config/ia64/fde-glibc.c (_Unwind_IteratePhdrCallback): Don't
iterate further if pc falls into current library, but fde was not
found.
* config/sparc/linux.h (STARTFILE_SPEC): Use crtbeginT.o for -static
if using glibc.
(LINK_EH_SPEC): Define.
* config/sparc/linux64.h (STARTFILE_SPEC32, STARTFILE_SPEC64):
Use crtbeginT.o for -static.
(LINK_EH_SPEC): Define.
* config/sparc/t-linux64 (EXTRA_MULTILIB_PARTS): Add crtbeginT.o.
* Makefile.in (crtbeginT.o): Add rule.
* gcc.c (init_gcc_specs): For -static-libgcc, use -lgcc -lgcc_eh.
If neither -static-libgcc nor -shared-libgcc is passed and -shared,
use -lgcc if LINK_EH_SPEC is defined and -lgcc_s -lgcc if not.
If none of the above switches are passed, use -lgcc -lgcc_eh.
(init_spec): If LINK_EH_SPEC is defined, prepend it to link_spec.
* mklibgcc.in: Don't include LIB2ADDEH objects into libgcc.a if
creating libgcc_s.so, put them into separate libgcc_eh.a instead.
* unwind-dw2-fde.c: Don't include any headers if this file
is included from other .c file.
* unwind-dw2-fde-glibc.c: New file.
* crtstuff.c (USE_PT_GNU_EH_FRAME, USE_EH_FRAME_REGISTRY): Define.
Use it instead of EH_FRAME_SECTION_NAME where appropriate.
From-SVN: r48039
2001-12-15 12:49:18 +01:00
|
|
|
AC_MSG_CHECKING(linker PT_GNU_EH_FRAME support)
|
|
|
|
gcc_cv_ld_eh_frame_hdr=no
|
2003-03-04 08:41:00 +01:00
|
|
|
if test $in_tree_ld = yes ; then
|
2003-06-23 03:13:35 +02:00
|
|
|
if test "$gcc_cv_gld_major_version" -eq 2 -a "$gcc_cv_gld_minor_version" -ge 12 -o "$gcc_cv_gld_major_version" -gt 2 \
|
|
|
|
&& test $in_tree_ld_is_elf = yes; then
|
configure.in: Check for ld.
* configure.in: Check for ld.
(HAVE_LD_EH_FRAME_HDR): Define if ld supports --eh-frame-hdr option.
* configure, config.in: Rebuilt.
* config.gcc: Add crtbeginT.o to extra_parts where needed.
* config/t-linux (LIB2ADDEH, LIB2ADDEHDEP): Use unwind-dw2-fde-glibc
frame unwinding on Linux.
* config/t-linux-gnulibc1 (LIB2ADDEH, LIB2ADDEHDEP): Use unwind-dw2-fde
frame unwinding.
* config/linux.h (STARTFILE_SPEC): Use crtbeginT.o for -static.
(LINK_EH_SPEC): Define.
* config/i386/gnu.h (STARTFILE_SPEC): Use crtbeginT.o for -static.
* config/ia64/linux.h (STARTFILE_SPEC, LINK_EH_SPEC): Define.
* config/ia64/fde-glibc.c (_Unwind_IteratePhdrCallback): Don't
iterate further if pc falls into current library, but fde was not
found.
* config/sparc/linux.h (STARTFILE_SPEC): Use crtbeginT.o for -static
if using glibc.
(LINK_EH_SPEC): Define.
* config/sparc/linux64.h (STARTFILE_SPEC32, STARTFILE_SPEC64):
Use crtbeginT.o for -static.
(LINK_EH_SPEC): Define.
* config/sparc/t-linux64 (EXTRA_MULTILIB_PARTS): Add crtbeginT.o.
* Makefile.in (crtbeginT.o): Add rule.
* gcc.c (init_gcc_specs): For -static-libgcc, use -lgcc -lgcc_eh.
If neither -static-libgcc nor -shared-libgcc is passed and -shared,
use -lgcc if LINK_EH_SPEC is defined and -lgcc_s -lgcc if not.
If none of the above switches are passed, use -lgcc -lgcc_eh.
(init_spec): If LINK_EH_SPEC is defined, prepend it to link_spec.
* mklibgcc.in: Don't include LIB2ADDEH objects into libgcc.a if
creating libgcc_s.so, put them into separate libgcc_eh.a instead.
* unwind-dw2-fde.c: Don't include any headers if this file
is included from other .c file.
* unwind-dw2-fde-glibc.c: New file.
* crtstuff.c (USE_PT_GNU_EH_FRAME, USE_EH_FRAME_REGISTRY): Define.
Use it instead of EH_FRAME_SECTION_NAME where appropriate.
From-SVN: r48039
2001-12-15 12:49:18 +01:00
|
|
|
gcc_cv_ld_eh_frame_hdr=yes
|
|
|
|
fi
|
|
|
|
elif test x$gcc_cv_ld != x; then
|
2010-12-23 13:08:21 +01:00
|
|
|
if echo "$ld_ver" | grep GNU > /dev/null; then
|
|
|
|
# Check if linker supports --eh-frame-hdr option
|
|
|
|
if $gcc_cv_ld --help 2>/dev/null | grep eh-frame-hdr > /dev/null; then
|
|
|
|
gcc_cv_ld_eh_frame_hdr=yes
|
|
|
|
fi
|
|
|
|
else
|
|
|
|
case "$target" in
|
|
|
|
*-*-solaris2*)
|
2011-01-31 15:07:45 +01:00
|
|
|
# Sun ld has various bugs in .eh_frame_hdr support before version 1.2251.
|
|
|
|
if test "$ld_vers_major" -gt 1 || test "$ld_vers_minor" -ge 2251; then
|
2010-12-23 13:08:21 +01:00
|
|
|
gcc_cv_ld_eh_frame_hdr=yes
|
|
|
|
fi
|
|
|
|
;;
|
|
|
|
esac
|
|
|
|
fi
|
configure.in: Check for ld.
* configure.in: Check for ld.
(HAVE_LD_EH_FRAME_HDR): Define if ld supports --eh-frame-hdr option.
* configure, config.in: Rebuilt.
* config.gcc: Add crtbeginT.o to extra_parts where needed.
* config/t-linux (LIB2ADDEH, LIB2ADDEHDEP): Use unwind-dw2-fde-glibc
frame unwinding on Linux.
* config/t-linux-gnulibc1 (LIB2ADDEH, LIB2ADDEHDEP): Use unwind-dw2-fde
frame unwinding.
* config/linux.h (STARTFILE_SPEC): Use crtbeginT.o for -static.
(LINK_EH_SPEC): Define.
* config/i386/gnu.h (STARTFILE_SPEC): Use crtbeginT.o for -static.
* config/ia64/linux.h (STARTFILE_SPEC, LINK_EH_SPEC): Define.
* config/ia64/fde-glibc.c (_Unwind_IteratePhdrCallback): Don't
iterate further if pc falls into current library, but fde was not
found.
* config/sparc/linux.h (STARTFILE_SPEC): Use crtbeginT.o for -static
if using glibc.
(LINK_EH_SPEC): Define.
* config/sparc/linux64.h (STARTFILE_SPEC32, STARTFILE_SPEC64):
Use crtbeginT.o for -static.
(LINK_EH_SPEC): Define.
* config/sparc/t-linux64 (EXTRA_MULTILIB_PARTS): Add crtbeginT.o.
* Makefile.in (crtbeginT.o): Add rule.
* gcc.c (init_gcc_specs): For -static-libgcc, use -lgcc -lgcc_eh.
If neither -static-libgcc nor -shared-libgcc is passed and -shared,
use -lgcc if LINK_EH_SPEC is defined and -lgcc_s -lgcc if not.
If none of the above switches are passed, use -lgcc -lgcc_eh.
(init_spec): If LINK_EH_SPEC is defined, prepend it to link_spec.
* mklibgcc.in: Don't include LIB2ADDEH objects into libgcc.a if
creating libgcc_s.so, put them into separate libgcc_eh.a instead.
* unwind-dw2-fde.c: Don't include any headers if this file
is included from other .c file.
* unwind-dw2-fde-glibc.c: New file.
* crtstuff.c (USE_PT_GNU_EH_FRAME, USE_EH_FRAME_REGISTRY): Define.
Use it instead of EH_FRAME_SECTION_NAME where appropriate.
From-SVN: r48039
2001-12-15 12:49:18 +01:00
|
|
|
fi
|
2005-05-08 12:13:19 +02:00
|
|
|
GCC_TARGET_TEMPLATE([HAVE_LD_EH_FRAME_HDR])
|
configure.in: Check for ld.
* configure.in: Check for ld.
(HAVE_LD_EH_FRAME_HDR): Define if ld supports --eh-frame-hdr option.
* configure, config.in: Rebuilt.
* config.gcc: Add crtbeginT.o to extra_parts where needed.
* config/t-linux (LIB2ADDEH, LIB2ADDEHDEP): Use unwind-dw2-fde-glibc
frame unwinding on Linux.
* config/t-linux-gnulibc1 (LIB2ADDEH, LIB2ADDEHDEP): Use unwind-dw2-fde
frame unwinding.
* config/linux.h (STARTFILE_SPEC): Use crtbeginT.o for -static.
(LINK_EH_SPEC): Define.
* config/i386/gnu.h (STARTFILE_SPEC): Use crtbeginT.o for -static.
* config/ia64/linux.h (STARTFILE_SPEC, LINK_EH_SPEC): Define.
* config/ia64/fde-glibc.c (_Unwind_IteratePhdrCallback): Don't
iterate further if pc falls into current library, but fde was not
found.
* config/sparc/linux.h (STARTFILE_SPEC): Use crtbeginT.o for -static
if using glibc.
(LINK_EH_SPEC): Define.
* config/sparc/linux64.h (STARTFILE_SPEC32, STARTFILE_SPEC64):
Use crtbeginT.o for -static.
(LINK_EH_SPEC): Define.
* config/sparc/t-linux64 (EXTRA_MULTILIB_PARTS): Add crtbeginT.o.
* Makefile.in (crtbeginT.o): Add rule.
* gcc.c (init_gcc_specs): For -static-libgcc, use -lgcc -lgcc_eh.
If neither -static-libgcc nor -shared-libgcc is passed and -shared,
use -lgcc if LINK_EH_SPEC is defined and -lgcc_s -lgcc if not.
If none of the above switches are passed, use -lgcc -lgcc_eh.
(init_spec): If LINK_EH_SPEC is defined, prepend it to link_spec.
* mklibgcc.in: Don't include LIB2ADDEH objects into libgcc.a if
creating libgcc_s.so, put them into separate libgcc_eh.a instead.
* unwind-dw2-fde.c: Don't include any headers if this file
is included from other .c file.
* unwind-dw2-fde-glibc.c: New file.
* crtstuff.c (USE_PT_GNU_EH_FRAME, USE_EH_FRAME_REGISTRY): Define.
Use it instead of EH_FRAME_SECTION_NAME where appropriate.
From-SVN: r48039
2001-12-15 12:49:18 +01:00
|
|
|
if test x"$gcc_cv_ld_eh_frame_hdr" = xyes; then
|
|
|
|
AC_DEFINE(HAVE_LD_EH_FRAME_HDR, 1,
|
2010-12-23 13:08:21 +01:00
|
|
|
[Define if your linker supports .eh_frame_hdr.])
|
configure.in: Check for ld.
* configure.in: Check for ld.
(HAVE_LD_EH_FRAME_HDR): Define if ld supports --eh-frame-hdr option.
* configure, config.in: Rebuilt.
* config.gcc: Add crtbeginT.o to extra_parts where needed.
* config/t-linux (LIB2ADDEH, LIB2ADDEHDEP): Use unwind-dw2-fde-glibc
frame unwinding on Linux.
* config/t-linux-gnulibc1 (LIB2ADDEH, LIB2ADDEHDEP): Use unwind-dw2-fde
frame unwinding.
* config/linux.h (STARTFILE_SPEC): Use crtbeginT.o for -static.
(LINK_EH_SPEC): Define.
* config/i386/gnu.h (STARTFILE_SPEC): Use crtbeginT.o for -static.
* config/ia64/linux.h (STARTFILE_SPEC, LINK_EH_SPEC): Define.
* config/ia64/fde-glibc.c (_Unwind_IteratePhdrCallback): Don't
iterate further if pc falls into current library, but fde was not
found.
* config/sparc/linux.h (STARTFILE_SPEC): Use crtbeginT.o for -static
if using glibc.
(LINK_EH_SPEC): Define.
* config/sparc/linux64.h (STARTFILE_SPEC32, STARTFILE_SPEC64):
Use crtbeginT.o for -static.
(LINK_EH_SPEC): Define.
* config/sparc/t-linux64 (EXTRA_MULTILIB_PARTS): Add crtbeginT.o.
* Makefile.in (crtbeginT.o): Add rule.
* gcc.c (init_gcc_specs): For -static-libgcc, use -lgcc -lgcc_eh.
If neither -static-libgcc nor -shared-libgcc is passed and -shared,
use -lgcc if LINK_EH_SPEC is defined and -lgcc_s -lgcc if not.
If none of the above switches are passed, use -lgcc -lgcc_eh.
(init_spec): If LINK_EH_SPEC is defined, prepend it to link_spec.
* mklibgcc.in: Don't include LIB2ADDEH objects into libgcc.a if
creating libgcc_s.so, put them into separate libgcc_eh.a instead.
* unwind-dw2-fde.c: Don't include any headers if this file
is included from other .c file.
* unwind-dw2-fde-glibc.c: New file.
* crtstuff.c (USE_PT_GNU_EH_FRAME, USE_EH_FRAME_REGISTRY): Define.
Use it instead of EH_FRAME_SECTION_NAME where appropriate.
From-SVN: r48039
2001-12-15 12:49:18 +01:00
|
|
|
fi
|
|
|
|
AC_MSG_RESULT($gcc_cv_ld_eh_frame_hdr)
|
|
|
|
|
2013-03-21 12:57:35 +01:00
|
|
|
AC_MSG_CHECKING(linker CIEv3 in .eh_frame support)
|
|
|
|
gcc_cv_ld_eh_frame_ciev3=no
|
|
|
|
if test $in_tree_ld = yes ; then
|
|
|
|
if test "$gcc_cv_gld_major_version" -eq 2 -a "$gcc_cv_gld_minor_version" -ge 16 -o "$gcc_cv_gld_major_version" -gt 2 \
|
|
|
|
&& test $in_tree_ld_is_elf = yes; then
|
|
|
|
gcc_cv_ld_eh_frame_ciev3=yes
|
|
|
|
fi
|
|
|
|
elif test x$gcc_cv_ld != x; then
|
|
|
|
if echo "$ld_ver" | grep GNU > /dev/null; then
|
|
|
|
gcc_cv_ld_eh_frame_ciev3=yes
|
|
|
|
if test 0"$ld_date" -lt 20040513; then
|
|
|
|
if test -n "$ld_date"; then
|
|
|
|
# If there was date string, but was earlier than 2004-05-13, fail
|
|
|
|
gcc_cv_ld_eh_frame_ciev3=no
|
|
|
|
elif test "$ld_vers_major" -lt 2; then
|
|
|
|
gcc_cv_ld_eh_frame_ciev3=no
|
|
|
|
elif test "$ld_vers_major" -eq 2 -a "$ld_vers_minor" -lt 16; then
|
|
|
|
gcc_cv_ld_eh_frame_ciev3=no
|
|
|
|
fi
|
|
|
|
fi
|
|
|
|
else
|
|
|
|
case "$target" in
|
|
|
|
*-*-solaris2*)
|
|
|
|
# Sun ld added support for CIE v3 in .eh_frame in Solaris 11.1.
|
|
|
|
if test "$ld_vers_major" -gt 1 || test "$ld_vers_minor" -ge 2324; then
|
|
|
|
gcc_cv_ld_eh_frame_ciev3=yes
|
|
|
|
fi
|
|
|
|
;;
|
|
|
|
esac
|
|
|
|
fi
|
|
|
|
fi
|
|
|
|
AC_DEFINE_UNQUOTED(HAVE_LD_EH_FRAME_CIEV3,
|
|
|
|
[`if test x"$gcc_cv_ld_eh_frame_ciev3" = xyes; then echo 1; else echo 0; fi`],
|
|
|
|
[Define 0/1 if your linker supports CIE v3 in .eh_frame.])
|
|
|
|
AC_MSG_RESULT($gcc_cv_ld_eh_frame_ciev3)
|
|
|
|
|
configure.in (HAVE_LD_PIE): Check for ld -pie.
* configure.in (HAVE_LD_PIE): Check for ld -pie.
* config.in: Rebuilt.
* configure: Rebuilt.
* toplev.c (flag_pie, flag_shlib): New variables.
(f_options): Add -fpie and -fPIE.
(parse_options_and_default_flags): Set flag_pic if -fpie/-fPIE.
Set flag_shlib if flag_pic and not -fpie/-fPIE.
* flags.h (flag_pic, flag_shlib): Add.
* varasm.c (default_binds_local_p): Use flag_shlib instead of
flag_pic.
* gcc.c (LINK_PIE_SPEC): Define.
(LINK_COMMAND_SPEC): Use LINK_PIE_SPEC.
(option_map): Add --pie -> -pie mapping.
* config/sol2.h (ASM_SPEC): Handle -fpie the same way as -fpic
and -fPIE the same way as -fPIC.
* config/openbsd.h (ASM_SPEC): Likewise.
* config/frv/frv.h (ASM_SPEC): Likewise.
* config/arm/linux-gas.h (SUBTARGET_CPP_SPEC): Likewise.
* config/arm/semi.h (ASM_SPEC): Likewise.
* config/arm/netbsd-elf.h (SUBTARGET_EXTRA_ASM_SPEC): Likewise.
* config/freebsd-spec.h (FBSD_CPP_SPEC): Likewise.
* config/i386/beos-elf.h (CC1_SPEC): Likewise.
* config/i386/freebsd-aout.h (ASM_SPEC): Likewise.
* config/m68k/linux.h (CPP_SPEC): Likewise.
* config/m68k/netbsd.h (ASM_SPEC): Likewise.
* config/m68k/openbsd.h (ASM_SPEC): Likewise.
* config/m68k/netbsd-elf.h (ASM_SPEC): Likewise.
* config/mips/linux.h (SUBTARGET_CPP_SPEC): Likewise.
* config/mips/openbsd.h (SUBTARGET_ASM_SPEC): Likewise.
* config/pa/pa-linux.h (CPP_SPEC): Likewise.
* config/netbsd-aout.h (ASM_SPEC): Likewise.
* config/rs6000/sysv4.h (ASM_SPEC, CPP_SYSV_SPEC): Likewise.
* config/rs6000/vxworks.h (CPP_SPEC): Likewise.
* config/sparc/linux.h (CPP_SUBTARGET_SPEC, ASM_SPEC): Likewise.
* config/sparc/linux64.h (CPP_SUBTARGET_SPEC, ASM_SPEC): Likewise.
* config/sparc/sparc.h (ASM_SPEC): Likewise.
* config/sparc/sp64-elf.h (ASM_SPEC): Likewise.
* config/sparc/sysv4.h (ASM_SPEC): Likewise.
* config/sparc/netbsd-elf.h (ASM_SPEC): Likewise.
* config/sparc/openbsd64.h (ASM_SPEC): Likewise.
* config/cris/linux.h (CRIS_ASM_SUBTARGET_SPEC): Likewise.
* config/linux.h (STARTFILE_SPEC, ENDFILE_SPEC): Handle -pie.
Simplify.
* config/alpha/elf.h (STARTFILE_SPEC, ENDFILE_SPEC): Likewise.
* config/i386/linux64.h (STARTFILE_SPEC, ENDFILE_SPEC): Likewise.
* config/ia64/linux.h (STARTFILE_SPEC, ENDFILE_SPEC): Likewise.
* config/rs6000/sysv4.h (STARTFILE_SPEC, ENDFILE_SPEC): Likewise.
* config/rs6000/linux64.h (STARTFILE_SPEC, ENDFILE_SPEC): Likewise.
* config/sparc/linux.h (STARTFILE_SPEC, ENDFILE_SPEC): Likewise.
* config/sparc/linux64.h (STARTFILE_SPEC, ENDFILE_SPEC): Likewise.
* doc/invoke.texi: Document -pie, -fpie and -fPIE options.
From-SVN: r67359
2003-06-03 11:06:55 +02:00
|
|
|
AC_MSG_CHECKING(linker position independent executable support)
|
|
|
|
gcc_cv_ld_pie=no
|
|
|
|
if test $in_tree_ld = yes ; then
|
2015-09-24 11:00:22 +02:00
|
|
|
case "$target" in
|
|
|
|
# Full PIE support on Solaris was only introduced in gld 2.26.
|
|
|
|
*-*-solaris2*) gcc_gld_pie_min_version=26 ;;
|
|
|
|
*) gcc_gld_pie_min_version=15 ;;
|
|
|
|
esac
|
|
|
|
if test "$gcc_cv_gld_major_version" -eq 2 -a "$gcc_cv_gld_minor_version" -ge "$gcc_gld_pie_min_version" -o "$gcc_cv_gld_major_version" -gt 2 \
|
2003-06-23 03:13:35 +02:00
|
|
|
&& test $in_tree_ld_is_elf = yes; then
|
configure.in (HAVE_LD_PIE): Check for ld -pie.
* configure.in (HAVE_LD_PIE): Check for ld -pie.
* config.in: Rebuilt.
* configure: Rebuilt.
* toplev.c (flag_pie, flag_shlib): New variables.
(f_options): Add -fpie and -fPIE.
(parse_options_and_default_flags): Set flag_pic if -fpie/-fPIE.
Set flag_shlib if flag_pic and not -fpie/-fPIE.
* flags.h (flag_pic, flag_shlib): Add.
* varasm.c (default_binds_local_p): Use flag_shlib instead of
flag_pic.
* gcc.c (LINK_PIE_SPEC): Define.
(LINK_COMMAND_SPEC): Use LINK_PIE_SPEC.
(option_map): Add --pie -> -pie mapping.
* config/sol2.h (ASM_SPEC): Handle -fpie the same way as -fpic
and -fPIE the same way as -fPIC.
* config/openbsd.h (ASM_SPEC): Likewise.
* config/frv/frv.h (ASM_SPEC): Likewise.
* config/arm/linux-gas.h (SUBTARGET_CPP_SPEC): Likewise.
* config/arm/semi.h (ASM_SPEC): Likewise.
* config/arm/netbsd-elf.h (SUBTARGET_EXTRA_ASM_SPEC): Likewise.
* config/freebsd-spec.h (FBSD_CPP_SPEC): Likewise.
* config/i386/beos-elf.h (CC1_SPEC): Likewise.
* config/i386/freebsd-aout.h (ASM_SPEC): Likewise.
* config/m68k/linux.h (CPP_SPEC): Likewise.
* config/m68k/netbsd.h (ASM_SPEC): Likewise.
* config/m68k/openbsd.h (ASM_SPEC): Likewise.
* config/m68k/netbsd-elf.h (ASM_SPEC): Likewise.
* config/mips/linux.h (SUBTARGET_CPP_SPEC): Likewise.
* config/mips/openbsd.h (SUBTARGET_ASM_SPEC): Likewise.
* config/pa/pa-linux.h (CPP_SPEC): Likewise.
* config/netbsd-aout.h (ASM_SPEC): Likewise.
* config/rs6000/sysv4.h (ASM_SPEC, CPP_SYSV_SPEC): Likewise.
* config/rs6000/vxworks.h (CPP_SPEC): Likewise.
* config/sparc/linux.h (CPP_SUBTARGET_SPEC, ASM_SPEC): Likewise.
* config/sparc/linux64.h (CPP_SUBTARGET_SPEC, ASM_SPEC): Likewise.
* config/sparc/sparc.h (ASM_SPEC): Likewise.
* config/sparc/sp64-elf.h (ASM_SPEC): Likewise.
* config/sparc/sysv4.h (ASM_SPEC): Likewise.
* config/sparc/netbsd-elf.h (ASM_SPEC): Likewise.
* config/sparc/openbsd64.h (ASM_SPEC): Likewise.
* config/cris/linux.h (CRIS_ASM_SUBTARGET_SPEC): Likewise.
* config/linux.h (STARTFILE_SPEC, ENDFILE_SPEC): Handle -pie.
Simplify.
* config/alpha/elf.h (STARTFILE_SPEC, ENDFILE_SPEC): Likewise.
* config/i386/linux64.h (STARTFILE_SPEC, ENDFILE_SPEC): Likewise.
* config/ia64/linux.h (STARTFILE_SPEC, ENDFILE_SPEC): Likewise.
* config/rs6000/sysv4.h (STARTFILE_SPEC, ENDFILE_SPEC): Likewise.
* config/rs6000/linux64.h (STARTFILE_SPEC, ENDFILE_SPEC): Likewise.
* config/sparc/linux.h (STARTFILE_SPEC, ENDFILE_SPEC): Likewise.
* config/sparc/linux64.h (STARTFILE_SPEC, ENDFILE_SPEC): Likewise.
* doc/invoke.texi: Document -pie, -fpie and -fPIE options.
From-SVN: r67359
2003-06-03 11:06:55 +02:00
|
|
|
gcc_cv_ld_pie=yes
|
|
|
|
fi
|
|
|
|
elif test x$gcc_cv_ld != x; then
|
2015-09-24 11:00:22 +02:00
|
|
|
# Check if linker supports -pie option
|
|
|
|
if $gcc_cv_ld --help 2>/dev/null | grep -- -pie > /dev/null; then
|
|
|
|
gcc_cv_ld_pie=yes
|
|
|
|
case "$target" in
|
|
|
|
*-*-solaris2*)
|
|
|
|
if echo "$ld_ver" | grep GNU > /dev/null \
|
|
|
|
&& test "$ld_vers_major" -eq 2 -a "$ld_vers_minor" -lt 26; then
|
|
|
|
gcc_cv_ld_pie=no
|
|
|
|
fi
|
|
|
|
;;
|
|
|
|
esac
|
|
|
|
else
|
|
|
|
case "$target" in
|
|
|
|
*-*-solaris2.1[[1-9]]*)
|
|
|
|
# Solaris 11.x and Solaris 12 added PIE support.
|
|
|
|
if $gcc_cv_ld -z help 2>&1 | grep -- type.*pie > /dev/null; then
|
|
|
|
gcc_cv_ld_pie=yes
|
configure.in (HAVE_LD_PIE): Check for ld -pie.
* configure.in (HAVE_LD_PIE): Check for ld -pie.
* config.in: Rebuilt.
* configure: Rebuilt.
* toplev.c (flag_pie, flag_shlib): New variables.
(f_options): Add -fpie and -fPIE.
(parse_options_and_default_flags): Set flag_pic if -fpie/-fPIE.
Set flag_shlib if flag_pic and not -fpie/-fPIE.
* flags.h (flag_pic, flag_shlib): Add.
* varasm.c (default_binds_local_p): Use flag_shlib instead of
flag_pic.
* gcc.c (LINK_PIE_SPEC): Define.
(LINK_COMMAND_SPEC): Use LINK_PIE_SPEC.
(option_map): Add --pie -> -pie mapping.
* config/sol2.h (ASM_SPEC): Handle -fpie the same way as -fpic
and -fPIE the same way as -fPIC.
* config/openbsd.h (ASM_SPEC): Likewise.
* config/frv/frv.h (ASM_SPEC): Likewise.
* config/arm/linux-gas.h (SUBTARGET_CPP_SPEC): Likewise.
* config/arm/semi.h (ASM_SPEC): Likewise.
* config/arm/netbsd-elf.h (SUBTARGET_EXTRA_ASM_SPEC): Likewise.
* config/freebsd-spec.h (FBSD_CPP_SPEC): Likewise.
* config/i386/beos-elf.h (CC1_SPEC): Likewise.
* config/i386/freebsd-aout.h (ASM_SPEC): Likewise.
* config/m68k/linux.h (CPP_SPEC): Likewise.
* config/m68k/netbsd.h (ASM_SPEC): Likewise.
* config/m68k/openbsd.h (ASM_SPEC): Likewise.
* config/m68k/netbsd-elf.h (ASM_SPEC): Likewise.
* config/mips/linux.h (SUBTARGET_CPP_SPEC): Likewise.
* config/mips/openbsd.h (SUBTARGET_ASM_SPEC): Likewise.
* config/pa/pa-linux.h (CPP_SPEC): Likewise.
* config/netbsd-aout.h (ASM_SPEC): Likewise.
* config/rs6000/sysv4.h (ASM_SPEC, CPP_SYSV_SPEC): Likewise.
* config/rs6000/vxworks.h (CPP_SPEC): Likewise.
* config/sparc/linux.h (CPP_SUBTARGET_SPEC, ASM_SPEC): Likewise.
* config/sparc/linux64.h (CPP_SUBTARGET_SPEC, ASM_SPEC): Likewise.
* config/sparc/sparc.h (ASM_SPEC): Likewise.
* config/sparc/sp64-elf.h (ASM_SPEC): Likewise.
* config/sparc/sysv4.h (ASM_SPEC): Likewise.
* config/sparc/netbsd-elf.h (ASM_SPEC): Likewise.
* config/sparc/openbsd64.h (ASM_SPEC): Likewise.
* config/cris/linux.h (CRIS_ASM_SUBTARGET_SPEC): Likewise.
* config/linux.h (STARTFILE_SPEC, ENDFILE_SPEC): Handle -pie.
Simplify.
* config/alpha/elf.h (STARTFILE_SPEC, ENDFILE_SPEC): Likewise.
* config/i386/linux64.h (STARTFILE_SPEC, ENDFILE_SPEC): Likewise.
* config/ia64/linux.h (STARTFILE_SPEC, ENDFILE_SPEC): Likewise.
* config/rs6000/sysv4.h (STARTFILE_SPEC, ENDFILE_SPEC): Likewise.
* config/rs6000/linux64.h (STARTFILE_SPEC, ENDFILE_SPEC): Likewise.
* config/sparc/linux.h (STARTFILE_SPEC, ENDFILE_SPEC): Likewise.
* config/sparc/linux64.h (STARTFILE_SPEC, ENDFILE_SPEC): Likewise.
* doc/invoke.texi: Document -pie, -fpie and -fPIE options.
From-SVN: r67359
2003-06-03 11:06:55 +02:00
|
|
|
fi
|
2015-09-24 11:00:22 +02:00
|
|
|
;;
|
|
|
|
esac
|
|
|
|
fi
|
configure.in (HAVE_LD_PIE): Check for ld -pie.
* configure.in (HAVE_LD_PIE): Check for ld -pie.
* config.in: Rebuilt.
* configure: Rebuilt.
* toplev.c (flag_pie, flag_shlib): New variables.
(f_options): Add -fpie and -fPIE.
(parse_options_and_default_flags): Set flag_pic if -fpie/-fPIE.
Set flag_shlib if flag_pic and not -fpie/-fPIE.
* flags.h (flag_pic, flag_shlib): Add.
* varasm.c (default_binds_local_p): Use flag_shlib instead of
flag_pic.
* gcc.c (LINK_PIE_SPEC): Define.
(LINK_COMMAND_SPEC): Use LINK_PIE_SPEC.
(option_map): Add --pie -> -pie mapping.
* config/sol2.h (ASM_SPEC): Handle -fpie the same way as -fpic
and -fPIE the same way as -fPIC.
* config/openbsd.h (ASM_SPEC): Likewise.
* config/frv/frv.h (ASM_SPEC): Likewise.
* config/arm/linux-gas.h (SUBTARGET_CPP_SPEC): Likewise.
* config/arm/semi.h (ASM_SPEC): Likewise.
* config/arm/netbsd-elf.h (SUBTARGET_EXTRA_ASM_SPEC): Likewise.
* config/freebsd-spec.h (FBSD_CPP_SPEC): Likewise.
* config/i386/beos-elf.h (CC1_SPEC): Likewise.
* config/i386/freebsd-aout.h (ASM_SPEC): Likewise.
* config/m68k/linux.h (CPP_SPEC): Likewise.
* config/m68k/netbsd.h (ASM_SPEC): Likewise.
* config/m68k/openbsd.h (ASM_SPEC): Likewise.
* config/m68k/netbsd-elf.h (ASM_SPEC): Likewise.
* config/mips/linux.h (SUBTARGET_CPP_SPEC): Likewise.
* config/mips/openbsd.h (SUBTARGET_ASM_SPEC): Likewise.
* config/pa/pa-linux.h (CPP_SPEC): Likewise.
* config/netbsd-aout.h (ASM_SPEC): Likewise.
* config/rs6000/sysv4.h (ASM_SPEC, CPP_SYSV_SPEC): Likewise.
* config/rs6000/vxworks.h (CPP_SPEC): Likewise.
* config/sparc/linux.h (CPP_SUBTARGET_SPEC, ASM_SPEC): Likewise.
* config/sparc/linux64.h (CPP_SUBTARGET_SPEC, ASM_SPEC): Likewise.
* config/sparc/sparc.h (ASM_SPEC): Likewise.
* config/sparc/sp64-elf.h (ASM_SPEC): Likewise.
* config/sparc/sysv4.h (ASM_SPEC): Likewise.
* config/sparc/netbsd-elf.h (ASM_SPEC): Likewise.
* config/sparc/openbsd64.h (ASM_SPEC): Likewise.
* config/cris/linux.h (CRIS_ASM_SUBTARGET_SPEC): Likewise.
* config/linux.h (STARTFILE_SPEC, ENDFILE_SPEC): Handle -pie.
Simplify.
* config/alpha/elf.h (STARTFILE_SPEC, ENDFILE_SPEC): Likewise.
* config/i386/linux64.h (STARTFILE_SPEC, ENDFILE_SPEC): Likewise.
* config/ia64/linux.h (STARTFILE_SPEC, ENDFILE_SPEC): Likewise.
* config/rs6000/sysv4.h (STARTFILE_SPEC, ENDFILE_SPEC): Likewise.
* config/rs6000/linux64.h (STARTFILE_SPEC, ENDFILE_SPEC): Likewise.
* config/sparc/linux.h (STARTFILE_SPEC, ENDFILE_SPEC): Likewise.
* config/sparc/linux64.h (STARTFILE_SPEC, ENDFILE_SPEC): Likewise.
* doc/invoke.texi: Document -pie, -fpie and -fPIE options.
From-SVN: r67359
2003-06-03 11:06:55 +02:00
|
|
|
fi
|
|
|
|
if test x"$gcc_cv_ld_pie" = xyes; then
|
|
|
|
AC_DEFINE(HAVE_LD_PIE, 1,
|
2015-09-24 11:00:22 +02:00
|
|
|
[Define if your linker supports PIE option.])
|
configure.in (HAVE_LD_PIE): Check for ld -pie.
* configure.in (HAVE_LD_PIE): Check for ld -pie.
* config.in: Rebuilt.
* configure: Rebuilt.
* toplev.c (flag_pie, flag_shlib): New variables.
(f_options): Add -fpie and -fPIE.
(parse_options_and_default_flags): Set flag_pic if -fpie/-fPIE.
Set flag_shlib if flag_pic and not -fpie/-fPIE.
* flags.h (flag_pic, flag_shlib): Add.
* varasm.c (default_binds_local_p): Use flag_shlib instead of
flag_pic.
* gcc.c (LINK_PIE_SPEC): Define.
(LINK_COMMAND_SPEC): Use LINK_PIE_SPEC.
(option_map): Add --pie -> -pie mapping.
* config/sol2.h (ASM_SPEC): Handle -fpie the same way as -fpic
and -fPIE the same way as -fPIC.
* config/openbsd.h (ASM_SPEC): Likewise.
* config/frv/frv.h (ASM_SPEC): Likewise.
* config/arm/linux-gas.h (SUBTARGET_CPP_SPEC): Likewise.
* config/arm/semi.h (ASM_SPEC): Likewise.
* config/arm/netbsd-elf.h (SUBTARGET_EXTRA_ASM_SPEC): Likewise.
* config/freebsd-spec.h (FBSD_CPP_SPEC): Likewise.
* config/i386/beos-elf.h (CC1_SPEC): Likewise.
* config/i386/freebsd-aout.h (ASM_SPEC): Likewise.
* config/m68k/linux.h (CPP_SPEC): Likewise.
* config/m68k/netbsd.h (ASM_SPEC): Likewise.
* config/m68k/openbsd.h (ASM_SPEC): Likewise.
* config/m68k/netbsd-elf.h (ASM_SPEC): Likewise.
* config/mips/linux.h (SUBTARGET_CPP_SPEC): Likewise.
* config/mips/openbsd.h (SUBTARGET_ASM_SPEC): Likewise.
* config/pa/pa-linux.h (CPP_SPEC): Likewise.
* config/netbsd-aout.h (ASM_SPEC): Likewise.
* config/rs6000/sysv4.h (ASM_SPEC, CPP_SYSV_SPEC): Likewise.
* config/rs6000/vxworks.h (CPP_SPEC): Likewise.
* config/sparc/linux.h (CPP_SUBTARGET_SPEC, ASM_SPEC): Likewise.
* config/sparc/linux64.h (CPP_SUBTARGET_SPEC, ASM_SPEC): Likewise.
* config/sparc/sparc.h (ASM_SPEC): Likewise.
* config/sparc/sp64-elf.h (ASM_SPEC): Likewise.
* config/sparc/sysv4.h (ASM_SPEC): Likewise.
* config/sparc/netbsd-elf.h (ASM_SPEC): Likewise.
* config/sparc/openbsd64.h (ASM_SPEC): Likewise.
* config/cris/linux.h (CRIS_ASM_SUBTARGET_SPEC): Likewise.
* config/linux.h (STARTFILE_SPEC, ENDFILE_SPEC): Handle -pie.
Simplify.
* config/alpha/elf.h (STARTFILE_SPEC, ENDFILE_SPEC): Likewise.
* config/i386/linux64.h (STARTFILE_SPEC, ENDFILE_SPEC): Likewise.
* config/ia64/linux.h (STARTFILE_SPEC, ENDFILE_SPEC): Likewise.
* config/rs6000/sysv4.h (STARTFILE_SPEC, ENDFILE_SPEC): Likewise.
* config/rs6000/linux64.h (STARTFILE_SPEC, ENDFILE_SPEC): Likewise.
* config/sparc/linux.h (STARTFILE_SPEC, ENDFILE_SPEC): Likewise.
* config/sparc/linux64.h (STARTFILE_SPEC, ENDFILE_SPEC): Likewise.
* doc/invoke.texi: Document -pie, -fpie and -fPIE options.
From-SVN: r67359
2003-06-03 11:06:55 +02:00
|
|
|
fi
|
|
|
|
AC_MSG_RESULT($gcc_cv_ld_pie)
|
x86-64: Optimize access to globals in PIE with copy reloc
Normally, with -fPIE/-fpie, GCC accesses globals that are extern to the
module using the GOT. This is two instructions, one to get the address
of the global from the GOT and the other to get the value. If it turns
out that the global gets defined in the executable at link-time, it still
needs to go through the GOT as it is too late then to generate a direct
access.
Examples:
foo.cc
------
int a_glob;
int main () {
return a_glob; // defined in this file
}
With -O2 -fpie -pie, the generated code directly accesses the global via
PC-relative insn:
5e0 <main>:
mov 0x165a(%rip),%eax # 1c40 <a_glob>
foo.cc
------
extern int a_glob;
int main () {
return a_glob; // defined in this file
}
With -O2 -fpie -pie, the generated code accesses global via GOT using
two memory loads:
6f0 <main>:
mov 0x1609(%rip),%rax # 1d00 <_DYNAMIC+0x230>
mov (%rax),%eax
This is true even if in the latter case the global was defined in the
executable through a different file.
Some experiments on google benchmarks shows that the extra memory loads
affects performance by 1% to 5%.
Solution - Copy Relocations:
When the linker supports copy relocations, GCC can always assume that
the global will be defined in the executable. For globals that are truly
extern (come from shared objects), the linker will create copy relocations
and have them defined in the executable. Result is that no global access
needs to go through the GOT and hence improves performance.
This optimization only applies to undefined, non-weak global data.
Undefined, weak global data access still must go through the GOT.
This patch checks if linker supports PIE with copy reloc, which is
enabled in gold and bfd linker in bininutils 2.25, at configure time
and enables this optimization if the linker support is available.
gcc/
* configure.ac (HAVE_LD_PIE_COPYRELOC): Defined to 1 if
Linux/x86-64 linker supports PIE with copy reloc.
* config.in: Regenerated.
* configure: Likewise.
* config/i386/i386.c (legitimate_pic_address_disp_p): Allow
pc-relative address for undefined, non-weak, non-function
symbol reference in 64-bit PIE if linker supports PIE with
copy reloc.
* doc/sourcebuild.texi: Document pie_copyreloc target.
gcc/testsuite/
* gcc.target/i386/pie-copyrelocs-1.c: New test.
* gcc.target/i386/pie-copyrelocs-2.c: Likewise.
* gcc.target/i386/pie-copyrelocs-3.c: Likewise.
* gcc.target/i386/pie-copyrelocs-4.c: Likewise.
* lib/target-supports.exp (check_effective_target_pie_copyreloc):
New procedure.
Co-Authored-By: H.J. Lu <hongjiu.lu@intel.com>
From-SVN: r218397
2014-12-04 20:40:50 +01:00
|
|
|
|
|
|
|
AC_MSG_CHECKING(linker PIE support with copy reloc)
|
|
|
|
gcc_cv_ld_pie_copyreloc=no
|
|
|
|
if test $gcc_cv_ld_pie = yes ; then
|
|
|
|
if test $in_tree_ld = yes ; then
|
|
|
|
if test "$gcc_cv_gld_major_version" -eq 2 -a "$gcc_cv_gld_minor_version" -ge 25 -o "$gcc_cv_gld_major_version" -gt 2; then
|
|
|
|
gcc_cv_ld_pie_copyreloc=yes
|
|
|
|
fi
|
|
|
|
elif test x$gcc_cv_as != x -a x$gcc_cv_ld != x ; then
|
|
|
|
# Check if linker supports -pie option with copy reloc
|
|
|
|
case "$target" in
|
|
|
|
i?86-*-linux* | x86_64-*-linux*)
|
|
|
|
cat > conftest1.s <<EOF
|
|
|
|
.globl a_glob
|
|
|
|
.data
|
|
|
|
.type a_glob, @object
|
|
|
|
.size a_glob, 4
|
|
|
|
a_glob:
|
|
|
|
.long 2
|
|
|
|
EOF
|
|
|
|
cat > conftest2.s <<EOF
|
|
|
|
.text
|
|
|
|
.globl main
|
|
|
|
.type main, @function
|
|
|
|
main:
|
|
|
|
movl %eax, a_glob(%rip)
|
|
|
|
.size main, .-main
|
2015-01-12 12:50:13 +01:00
|
|
|
.globl ptr
|
|
|
|
.section .data.rel,"aw",@progbits
|
|
|
|
.type ptr, @object
|
|
|
|
ptr:
|
|
|
|
.quad a_glob
|
x86-64: Optimize access to globals in PIE with copy reloc
Normally, with -fPIE/-fpie, GCC accesses globals that are extern to the
module using the GOT. This is two instructions, one to get the address
of the global from the GOT and the other to get the value. If it turns
out that the global gets defined in the executable at link-time, it still
needs to go through the GOT as it is too late then to generate a direct
access.
Examples:
foo.cc
------
int a_glob;
int main () {
return a_glob; // defined in this file
}
With -O2 -fpie -pie, the generated code directly accesses the global via
PC-relative insn:
5e0 <main>:
mov 0x165a(%rip),%eax # 1c40 <a_glob>
foo.cc
------
extern int a_glob;
int main () {
return a_glob; // defined in this file
}
With -O2 -fpie -pie, the generated code accesses global via GOT using
two memory loads:
6f0 <main>:
mov 0x1609(%rip),%rax # 1d00 <_DYNAMIC+0x230>
mov (%rax),%eax
This is true even if in the latter case the global was defined in the
executable through a different file.
Some experiments on google benchmarks shows that the extra memory loads
affects performance by 1% to 5%.
Solution - Copy Relocations:
When the linker supports copy relocations, GCC can always assume that
the global will be defined in the executable. For globals that are truly
extern (come from shared objects), the linker will create copy relocations
and have them defined in the executable. Result is that no global access
needs to go through the GOT and hence improves performance.
This optimization only applies to undefined, non-weak global data.
Undefined, weak global data access still must go through the GOT.
This patch checks if linker supports PIE with copy reloc, which is
enabled in gold and bfd linker in bininutils 2.25, at configure time
and enables this optimization if the linker support is available.
gcc/
* configure.ac (HAVE_LD_PIE_COPYRELOC): Defined to 1 if
Linux/x86-64 linker supports PIE with copy reloc.
* config.in: Regenerated.
* configure: Likewise.
* config/i386/i386.c (legitimate_pic_address_disp_p): Allow
pc-relative address for undefined, non-weak, non-function
symbol reference in 64-bit PIE if linker supports PIE with
copy reloc.
* doc/sourcebuild.texi: Document pie_copyreloc target.
gcc/testsuite/
* gcc.target/i386/pie-copyrelocs-1.c: New test.
* gcc.target/i386/pie-copyrelocs-2.c: Likewise.
* gcc.target/i386/pie-copyrelocs-3.c: Likewise.
* gcc.target/i386/pie-copyrelocs-4.c: Likewise.
* lib/target-supports.exp (check_effective_target_pie_copyreloc):
New procedure.
Co-Authored-By: H.J. Lu <hongjiu.lu@intel.com>
From-SVN: r218397
2014-12-04 20:40:50 +01:00
|
|
|
EOF
|
|
|
|
if $gcc_cv_as --64 -o conftest1.o conftest1.s > /dev/null 2>&1 \
|
|
|
|
&& $gcc_cv_ld -shared -melf_x86_64 -o conftest1.so conftest1.o > /dev/null 2>&1 \
|
|
|
|
&& $gcc_cv_as --64 -o conftest2.o conftest2.s > /dev/null 2>&1 \
|
|
|
|
&& $gcc_cv_ld -pie -melf_x86_64 -o conftest conftest2.o conftest1.so > /dev/null 2>&1; then
|
|
|
|
gcc_cv_ld_pie_copyreloc=yes
|
|
|
|
fi
|
|
|
|
rm -f conftest conftest1.so conftest1.o conftest2.o conftest1.s conftest2.s
|
|
|
|
;;
|
|
|
|
esac
|
|
|
|
fi
|
|
|
|
fi
|
2014-12-05 00:53:24 +01:00
|
|
|
AC_DEFINE_UNQUOTED(HAVE_LD_PIE_COPYRELOC,
|
|
|
|
[`if test x"$gcc_cv_ld_pie_copyreloc" = xyes; then echo 1; else echo 0; fi`],
|
|
|
|
[Define 0/1 if your linker supports -pie option with copy reloc.])
|
x86-64: Optimize access to globals in PIE with copy reloc
Normally, with -fPIE/-fpie, GCC accesses globals that are extern to the
module using the GOT. This is two instructions, one to get the address
of the global from the GOT and the other to get the value. If it turns
out that the global gets defined in the executable at link-time, it still
needs to go through the GOT as it is too late then to generate a direct
access.
Examples:
foo.cc
------
int a_glob;
int main () {
return a_glob; // defined in this file
}
With -O2 -fpie -pie, the generated code directly accesses the global via
PC-relative insn:
5e0 <main>:
mov 0x165a(%rip),%eax # 1c40 <a_glob>
foo.cc
------
extern int a_glob;
int main () {
return a_glob; // defined in this file
}
With -O2 -fpie -pie, the generated code accesses global via GOT using
two memory loads:
6f0 <main>:
mov 0x1609(%rip),%rax # 1d00 <_DYNAMIC+0x230>
mov (%rax),%eax
This is true even if in the latter case the global was defined in the
executable through a different file.
Some experiments on google benchmarks shows that the extra memory loads
affects performance by 1% to 5%.
Solution - Copy Relocations:
When the linker supports copy relocations, GCC can always assume that
the global will be defined in the executable. For globals that are truly
extern (come from shared objects), the linker will create copy relocations
and have them defined in the executable. Result is that no global access
needs to go through the GOT and hence improves performance.
This optimization only applies to undefined, non-weak global data.
Undefined, weak global data access still must go through the GOT.
This patch checks if linker supports PIE with copy reloc, which is
enabled in gold and bfd linker in bininutils 2.25, at configure time
and enables this optimization if the linker support is available.
gcc/
* configure.ac (HAVE_LD_PIE_COPYRELOC): Defined to 1 if
Linux/x86-64 linker supports PIE with copy reloc.
* config.in: Regenerated.
* configure: Likewise.
* config/i386/i386.c (legitimate_pic_address_disp_p): Allow
pc-relative address for undefined, non-weak, non-function
symbol reference in 64-bit PIE if linker supports PIE with
copy reloc.
* doc/sourcebuild.texi: Document pie_copyreloc target.
gcc/testsuite/
* gcc.target/i386/pie-copyrelocs-1.c: New test.
* gcc.target/i386/pie-copyrelocs-2.c: Likewise.
* gcc.target/i386/pie-copyrelocs-3.c: Likewise.
* gcc.target/i386/pie-copyrelocs-4.c: Likewise.
* lib/target-supports.exp (check_effective_target_pie_copyreloc):
New procedure.
Co-Authored-By: H.J. Lu <hongjiu.lu@intel.com>
From-SVN: r218397
2014-12-04 20:40:50 +01:00
|
|
|
AC_MSG_RESULT($gcc_cv_ld_pie_copyreloc)
|
configure.in (HAVE_LD_PIE): Check for ld -pie.
* configure.in (HAVE_LD_PIE): Check for ld -pie.
* config.in: Rebuilt.
* configure: Rebuilt.
* toplev.c (flag_pie, flag_shlib): New variables.
(f_options): Add -fpie and -fPIE.
(parse_options_and_default_flags): Set flag_pic if -fpie/-fPIE.
Set flag_shlib if flag_pic and not -fpie/-fPIE.
* flags.h (flag_pic, flag_shlib): Add.
* varasm.c (default_binds_local_p): Use flag_shlib instead of
flag_pic.
* gcc.c (LINK_PIE_SPEC): Define.
(LINK_COMMAND_SPEC): Use LINK_PIE_SPEC.
(option_map): Add --pie -> -pie mapping.
* config/sol2.h (ASM_SPEC): Handle -fpie the same way as -fpic
and -fPIE the same way as -fPIC.
* config/openbsd.h (ASM_SPEC): Likewise.
* config/frv/frv.h (ASM_SPEC): Likewise.
* config/arm/linux-gas.h (SUBTARGET_CPP_SPEC): Likewise.
* config/arm/semi.h (ASM_SPEC): Likewise.
* config/arm/netbsd-elf.h (SUBTARGET_EXTRA_ASM_SPEC): Likewise.
* config/freebsd-spec.h (FBSD_CPP_SPEC): Likewise.
* config/i386/beos-elf.h (CC1_SPEC): Likewise.
* config/i386/freebsd-aout.h (ASM_SPEC): Likewise.
* config/m68k/linux.h (CPP_SPEC): Likewise.
* config/m68k/netbsd.h (ASM_SPEC): Likewise.
* config/m68k/openbsd.h (ASM_SPEC): Likewise.
* config/m68k/netbsd-elf.h (ASM_SPEC): Likewise.
* config/mips/linux.h (SUBTARGET_CPP_SPEC): Likewise.
* config/mips/openbsd.h (SUBTARGET_ASM_SPEC): Likewise.
* config/pa/pa-linux.h (CPP_SPEC): Likewise.
* config/netbsd-aout.h (ASM_SPEC): Likewise.
* config/rs6000/sysv4.h (ASM_SPEC, CPP_SYSV_SPEC): Likewise.
* config/rs6000/vxworks.h (CPP_SPEC): Likewise.
* config/sparc/linux.h (CPP_SUBTARGET_SPEC, ASM_SPEC): Likewise.
* config/sparc/linux64.h (CPP_SUBTARGET_SPEC, ASM_SPEC): Likewise.
* config/sparc/sparc.h (ASM_SPEC): Likewise.
* config/sparc/sp64-elf.h (ASM_SPEC): Likewise.
* config/sparc/sysv4.h (ASM_SPEC): Likewise.
* config/sparc/netbsd-elf.h (ASM_SPEC): Likewise.
* config/sparc/openbsd64.h (ASM_SPEC): Likewise.
* config/cris/linux.h (CRIS_ASM_SUBTARGET_SPEC): Likewise.
* config/linux.h (STARTFILE_SPEC, ENDFILE_SPEC): Handle -pie.
Simplify.
* config/alpha/elf.h (STARTFILE_SPEC, ENDFILE_SPEC): Likewise.
* config/i386/linux64.h (STARTFILE_SPEC, ENDFILE_SPEC): Likewise.
* config/ia64/linux.h (STARTFILE_SPEC, ENDFILE_SPEC): Likewise.
* config/rs6000/sysv4.h (STARTFILE_SPEC, ENDFILE_SPEC): Likewise.
* config/rs6000/linux64.h (STARTFILE_SPEC, ENDFILE_SPEC): Likewise.
* config/sparc/linux.h (STARTFILE_SPEC, ENDFILE_SPEC): Likewise.
* config/sparc/linux64.h (STARTFILE_SPEC, ENDFILE_SPEC): Likewise.
* doc/invoke.texi: Document -pie, -fpie and -fPIE options.
From-SVN: r67359
2003-06-03 11:06:55 +02:00
|
|
|
|
2006-10-28 20:11:28 +02:00
|
|
|
AC_MSG_CHECKING(linker EH-compatible garbage collection of sections)
|
|
|
|
gcc_cv_ld_eh_gc_sections=no
|
|
|
|
if test $in_tree_ld = yes ; then
|
|
|
|
if test "$gcc_cv_gld_major_version" -eq 2 -a "$gcc_cv_gld_minor_version" -ge 17 -o "$gcc_cv_gld_major_version" -gt 2 \
|
|
|
|
&& test $in_tree_ld_is_elf = yes; then
|
|
|
|
gcc_cv_ld_eh_gc_sections=yes
|
|
|
|
fi
|
|
|
|
elif test x$gcc_cv_as != x -a x$gcc_cv_ld != x -a x$gcc_cv_objdump != x ; then
|
|
|
|
cat > conftest.s <<EOF
|
|
|
|
.section .text
|
|
|
|
.globl _start
|
|
|
|
.type _start, @function
|
|
|
|
_start:
|
|
|
|
.long foo
|
|
|
|
.size _start, .-_start
|
|
|
|
.section .text.foo,"ax",@progbits
|
|
|
|
.type foo, @function
|
|
|
|
foo:
|
|
|
|
.long 0
|
|
|
|
.size foo, .-foo
|
|
|
|
.section .gcc_except_table.foo,"a",@progbits
|
|
|
|
.L0:
|
|
|
|
.long 0
|
|
|
|
.section .eh_frame,"a",@progbits
|
|
|
|
.long .L0
|
|
|
|
EOF
|
|
|
|
if $gcc_cv_as -o conftest.o conftest.s > /dev/null 2>&1; then
|
|
|
|
if $gcc_cv_ld -o conftest conftest.o --entry=_start --gc-sections 2>&1 \
|
|
|
|
| grep "gc-sections option ignored" > /dev/null; then
|
|
|
|
gcc_cv_ld_eh_gc_sections=no
|
2010-05-10 15:36:36 +02:00
|
|
|
elif $gcc_cv_objdump -h conftest 2> /dev/null \
|
|
|
|
| grep gcc_except_table > /dev/null; then
|
2006-10-28 20:11:28 +02:00
|
|
|
gcc_cv_ld_eh_gc_sections=yes
|
2006-12-21 23:10:30 +01:00
|
|
|
# If no COMDAT groups, the compiler will emit .gnu.linkonce.t. sections.
|
|
|
|
if test x$gcc_cv_as_comdat_group != xyes; then
|
|
|
|
gcc_cv_ld_eh_gc_sections=no
|
|
|
|
cat > conftest.s <<EOF
|
|
|
|
.section .text
|
|
|
|
.globl _start
|
|
|
|
.type _start, @function
|
|
|
|
_start:
|
|
|
|
.long foo
|
|
|
|
.size _start, .-_start
|
|
|
|
.section .gnu.linkonce.t.foo,"ax",@progbits
|
|
|
|
.type foo, @function
|
|
|
|
foo:
|
|
|
|
.long 0
|
|
|
|
.size foo, .-foo
|
|
|
|
.section .gcc_except_table.foo,"a",@progbits
|
|
|
|
.L0:
|
|
|
|
.long 0
|
|
|
|
.section .eh_frame,"a",@progbits
|
|
|
|
.long .L0
|
|
|
|
EOF
|
|
|
|
if $gcc_cv_as -o conftest.o conftest.s > /dev/null 2>&1; then
|
|
|
|
if $gcc_cv_ld -o conftest conftest.o --entry=_start --gc-sections 2>&1 \
|
|
|
|
| grep "gc-sections option ignored" > /dev/null; then
|
|
|
|
gcc_cv_ld_eh_gc_sections=no
|
2010-05-10 15:36:36 +02:00
|
|
|
elif $gcc_cv_objdump -h conftest 2> /dev/null \
|
|
|
|
| grep gcc_except_table > /dev/null; then
|
2006-12-21 23:10:30 +01:00
|
|
|
gcc_cv_ld_eh_gc_sections=yes
|
|
|
|
fi
|
|
|
|
fi
|
|
|
|
fi
|
2006-10-28 20:11:28 +02:00
|
|
|
fi
|
|
|
|
fi
|
|
|
|
rm -f conftest.s conftest.o conftest
|
|
|
|
fi
|
2006-12-21 23:10:30 +01:00
|
|
|
case "$target" in
|
|
|
|
hppa*-*-linux*)
|
|
|
|
# ??? This apparently exposes a binutils bug with PC-relative relocations.
|
|
|
|
gcc_cv_ld_eh_gc_sections=no
|
|
|
|
;;
|
|
|
|
esac
|
2006-10-28 20:11:28 +02:00
|
|
|
if test x$gcc_cv_ld_eh_gc_sections = xyes; then
|
|
|
|
AC_DEFINE(HAVE_LD_EH_GC_SECTIONS, 1,
|
|
|
|
[Define if your linker supports garbage collection of
|
|
|
|
sections in presence of EH frames.])
|
|
|
|
fi
|
|
|
|
AC_MSG_RESULT($gcc_cv_ld_eh_gc_sections)
|
|
|
|
|
2011-02-28 16:36:37 +01:00
|
|
|
AC_MSG_CHECKING(linker EH garbage collection of sections bug)
|
|
|
|
gcc_cv_ld_eh_gc_sections_bug=no
|
|
|
|
if test $in_tree_ld = yes ; then
|
|
|
|
if test "$gcc_cv_gld_major_version" -eq 2 -a "$gcc_cv_gld_minor_version" -lt 19 -o "$gcc_cv_gld_major_version" -lt 2 \
|
|
|
|
&& test $in_tree_ld_is_elf = yes; then
|
|
|
|
gcc_cv_ld_eh_gc_sections_bug=yes
|
|
|
|
fi
|
|
|
|
elif test x$gcc_cv_as != x -a x$gcc_cv_ld != x -a x$gcc_cv_objdump != x -a x$gcc_cv_as_comdat_group = xyes; then
|
|
|
|
gcc_cv_ld_eh_gc_sections_bug=yes
|
|
|
|
cat > conftest.s <<EOF
|
|
|
|
.section .text
|
|
|
|
.globl _start
|
|
|
|
.type _start, @function
|
|
|
|
_start:
|
|
|
|
.long foo
|
|
|
|
.size _start, .-_start
|
|
|
|
.section .text.startup.foo,"ax",@progbits
|
|
|
|
.type foo, @function
|
|
|
|
foo:
|
|
|
|
.long 0
|
|
|
|
.size foo, .-foo
|
|
|
|
.section .gcc_except_table.foo,"a",@progbits
|
|
|
|
.L0:
|
|
|
|
.long 0
|
|
|
|
.section .eh_frame,"a",@progbits
|
|
|
|
.long .L0
|
|
|
|
EOF
|
|
|
|
if $gcc_cv_as -o conftest.o conftest.s > /dev/null 2>&1; then
|
|
|
|
if $gcc_cv_ld -o conftest conftest.o --entry=_start --gc-sections 2>&1 \
|
|
|
|
| grep "gc-sections option ignored" > /dev/null; then
|
|
|
|
:
|
|
|
|
elif $gcc_cv_objdump -h conftest 2> /dev/null \
|
|
|
|
| grep gcc_except_table > /dev/null; then
|
|
|
|
gcc_cv_ld_eh_gc_sections_bug=no
|
|
|
|
fi
|
|
|
|
fi
|
|
|
|
rm -f conftest.s conftest.o conftest
|
|
|
|
fi
|
|
|
|
if test x$gcc_cv_ld_eh_gc_sections_bug = xyes; then
|
|
|
|
AC_DEFINE(HAVE_LD_EH_GC_SECTIONS_BUG, 1,
|
|
|
|
[Define if your linker has buggy garbage collection of
|
|
|
|
sections support when .text.startup.foo like sections are used.])
|
|
|
|
fi
|
|
|
|
AC_MSG_RESULT($gcc_cv_ld_eh_gc_sections_bug)
|
|
|
|
|
2014-06-27 15:48:54 +02:00
|
|
|
AC_MSG_CHECKING(linker for compressed debug sections)
|
|
|
|
# gold/gld support compressed debug sections since binutils 2.19/2.21
|
|
|
|
if test $in_tree_ld = yes ; then
|
|
|
|
gcc_cv_ld_compress_debug=0
|
|
|
|
if test "$gcc_cv_gld_major_version" -eq 2 -a "$gcc_cv_gld_minor_version" -ge 19 -o "$gcc_cv_gld_major_version" -gt 2 \
|
|
|
|
&& test $in_tree_ld_is_elf = yes && test $ld_is_gold = yes; then
|
|
|
|
gcc_cv_ld_compress_debug=2
|
|
|
|
gcc_cv_ld_compress_debug_option="--compress-debug-sections"
|
|
|
|
elif test "$gcc_cv_gld_major_version" -eq 2 -a "$gcc_cv_gld_minor_version" -ge 21 -o "$gcc_cv_gld_major_version" -gt 2 \
|
|
|
|
&& test $in_tree_ld_is_elf = yes; then
|
|
|
|
gcc_cv_ld_compress_debug=1
|
|
|
|
fi
|
|
|
|
elif echo "$ld_ver" | grep GNU > /dev/null; then
|
|
|
|
gcc_cv_ld_compress_debug=1
|
|
|
|
if test 0"$ld_date" -lt 20050308; then
|
|
|
|
if test -n "$ld_date"; then
|
|
|
|
# If there was date string, but was earlier than 2005-03-08, fail
|
|
|
|
gcc_cv_ld_compress_debug=0
|
|
|
|
elif test "$ld_vers_major" -lt 2; then
|
|
|
|
gcc_cv_ld_compress_debug=0
|
|
|
|
elif test "$ld_vers_major" -eq 2 -a "$ld_vers_minor" -lt 21; then
|
|
|
|
gcc_cv_ld_compress_debug=0
|
|
|
|
fi
|
|
|
|
fi
|
|
|
|
if test $ld_is_gold = yes; then
|
|
|
|
gcc_cv_ld_compress_debug=2
|
|
|
|
gcc_cv_ld_compress_debug_option="--compress-debug-sections"
|
|
|
|
fi
|
|
|
|
else
|
|
|
|
changequote(,)dnl
|
|
|
|
case "${target}" in
|
|
|
|
*-*-solaris2*)
|
|
|
|
# Introduced in Solaris 11.2.
|
|
|
|
if $gcc_cv_ld --help 2>&1 | grep -- '-z compress-sections' > /dev/null; then
|
|
|
|
gcc_cv_ld_compress_debug=3
|
|
|
|
gcc_cv_ld_compress_debug_option="-z compress-sections"
|
|
|
|
else
|
|
|
|
gcc_cv_ld_compress_debug=0
|
|
|
|
fi
|
|
|
|
;;
|
|
|
|
*)
|
|
|
|
# Assume linkers other than GNU ld don't support compessed debug
|
|
|
|
# sections.
|
|
|
|
gcc_cv_ld_compress_debug=0
|
|
|
|
;;
|
|
|
|
esac
|
|
|
|
changequote([,])dnl
|
|
|
|
fi
|
|
|
|
AC_DEFINE_UNQUOTED(HAVE_LD_COMPRESS_DEBUG, $gcc_cv_ld_compress_debug,
|
|
|
|
[Define to the level of your linker's compressed debug section support.])
|
|
|
|
AC_DEFINE_UNQUOTED(LD_COMPRESS_DEBUG_OPTION, "$gcc_cv_ld_compress_debug_option",
|
|
|
|
[Define to the linker option to enable compressed debug sections.])
|
|
|
|
AC_MSG_RESULT($gcc_cv_ld_compress_debug)
|
|
|
|
|
2004-02-29 21:43:45 +01:00
|
|
|
# --------
|
|
|
|
# UNSORTED
|
|
|
|
# --------
|
|
|
|
|
2004-04-17 08:06:52 +02:00
|
|
|
AC_CACHE_CHECK(linker --as-needed support,
|
|
|
|
gcc_cv_ld_as_needed,
|
|
|
|
[gcc_cv_ld_as_needed=no
|
2013-04-15 12:31:57 +02:00
|
|
|
gcc_cv_ld_as_needed_option='--as-needed'
|
|
|
|
gcc_cv_ld_no_as_needed_option='--no-as-needed'
|
2004-04-01 18:45:34 +02:00
|
|
|
if test $in_tree_ld = yes ; then
|
|
|
|
if test "$gcc_cv_gld_major_version" -eq 2 -a "$gcc_cv_gld_minor_version" -ge 16 -o "$gcc_cv_gld_major_version" -gt 2 \
|
|
|
|
&& test $in_tree_ld_is_elf = yes; then
|
|
|
|
gcc_cv_ld_as_needed=yes
|
|
|
|
fi
|
|
|
|
elif test x$gcc_cv_ld != x; then
|
|
|
|
# Check if linker supports --as-needed and --no-as-needed options
|
|
|
|
if $gcc_cv_ld --help 2>/dev/null | grep as-needed > /dev/null; then
|
|
|
|
gcc_cv_ld_as_needed=yes
|
2013-04-15 12:31:57 +02:00
|
|
|
else
|
|
|
|
case "$target" in
|
|
|
|
# Solaris 2 ld always supports -z ignore/-z record.
|
|
|
|
*-*-solaris2*)
|
|
|
|
gcc_cv_ld_as_needed=yes
|
|
|
|
gcc_cv_ld_as_needed_option="-z ignore"
|
|
|
|
gcc_cv_ld_no_as_needed_option="-z record"
|
|
|
|
;;
|
|
|
|
esac
|
2004-04-01 18:45:34 +02:00
|
|
|
fi
|
|
|
|
fi
|
2013-05-14 11:28:17 +02:00
|
|
|
# --as-needed/-z ignore can only be used if libgcc_s.so.1 uses
|
|
|
|
# dl_iterate_phdr, i.e. since Solaris 11.
|
|
|
|
case "$target" in
|
|
|
|
*-*-solaris2.1[[1-9]]*)
|
|
|
|
case "$target" in
|
|
|
|
i?86-*-* | x86_64-*-*)
|
|
|
|
if echo "$ld_ver" | grep GNU > /dev/null; then
|
|
|
|
# Doesn't work with gld on Solaris/x86 due to PR ld/12320.
|
|
|
|
gcc_cv_ld_as_needed=no
|
|
|
|
fi
|
|
|
|
;;
|
|
|
|
esac
|
|
|
|
;;
|
|
|
|
*-*-solaris2*)
|
|
|
|
gcc_cv_ld_as_needed=no
|
|
|
|
;;
|
|
|
|
esac
|
2004-04-17 08:06:52 +02:00
|
|
|
])
|
2004-04-01 18:45:34 +02:00
|
|
|
if test x"$gcc_cv_ld_as_needed" = xyes; then
|
|
|
|
AC_DEFINE(HAVE_LD_AS_NEEDED, 1,
|
2013-04-15 12:31:57 +02:00
|
|
|
[Define if your linker supports --as-needed/--no-as-needed or equivalent options.])
|
|
|
|
AC_DEFINE_UNQUOTED(LD_AS_NEEDED_OPTION, "$gcc_cv_ld_as_needed_option",
|
|
|
|
[Define to the linker option to ignore unused dependencies.])
|
|
|
|
AC_DEFINE_UNQUOTED(LD_NO_AS_NEEDED_OPTION, "$gcc_cv_ld_no_as_needed_option",
|
|
|
|
[Define to the linker option to keep unused dependencies.])
|
2004-04-01 18:45:34 +02:00
|
|
|
fi
|
|
|
|
|
2014-05-28 13:32:54 +02:00
|
|
|
AC_MSG_CHECKING(linker mapfile support for clearing hardware capabilities)
|
|
|
|
saved_LDFLAGS="$LDFLAGS"
|
|
|
|
for clearcap_map in sol2-clearcapv2.map sol2-clearcap.map; do
|
|
|
|
LDFLAGS="$saved_LDFLAGS -Wl,-M,${srcdir}/config/$clearcap_map"
|
|
|
|
AC_LINK_IFELSE([int main(void) {return 0;}],
|
|
|
|
[gcc_cv_ld_clearcap=yes; break], [gcc_cv_ld_clearcap=no])
|
|
|
|
done
|
|
|
|
LDFLAGS="$saved_LDFLAGS"
|
|
|
|
if test "x$gcc_cv_ld_clearcap" = xyes; then
|
|
|
|
AC_DEFINE([HAVE_LD_CLEARCAP], 1,
|
|
|
|
[Define if the linker supports clearing hardware capabilities via mapfile.])
|
|
|
|
AC_CONFIG_LINKS([clearcap.map:${srcdir}/config/$clearcap_map])
|
|
|
|
fi
|
|
|
|
AC_MSG_RESULT($gcc_cv_ld_clearcap)
|
|
|
|
|
2005-08-24 03:38:05 +02:00
|
|
|
case "$target:$tm_file" in
|
2012-03-21 21:13:50 +01:00
|
|
|
powerpc64-*-freebsd* | powerpc64*-*-linux* | powerpc*-*-linux*rs6000/biarch64.h*)
|
|
|
|
case "$target" in
|
2013-05-07 03:01:08 +02:00
|
|
|
*le-*-linux*)
|
|
|
|
emul_name="-melf64lppc"
|
|
|
|
;;
|
2012-03-21 21:13:50 +01:00
|
|
|
*-*-linux*)
|
|
|
|
emul_name="-melf64ppc"
|
|
|
|
;;
|
|
|
|
*-*-freebsd*)
|
|
|
|
emul_name="-melf64ppc_fbsd"
|
|
|
|
;;
|
|
|
|
esac
|
2004-08-21 03:40:00 +02:00
|
|
|
AC_CACHE_CHECK(linker support for omitting dot symbols,
|
|
|
|
gcc_cv_ld_no_dot_syms,
|
|
|
|
[gcc_cv_ld_no_dot_syms=no
|
2012-10-19 01:02:25 +02:00
|
|
|
if test x"$ld_is_gold" = xyes; then
|
|
|
|
gcc_cv_ld_no_dot_syms=yes
|
|
|
|
elif test $in_tree_ld = yes ; then
|
2004-08-21 03:40:00 +02:00
|
|
|
if test "$gcc_cv_gld_major_version" -eq 2 -a "$gcc_cv_gld_minor_version" -ge 16 -o "$gcc_cv_gld_major_version" -gt 2; then
|
|
|
|
gcc_cv_ld_no_dot_syms=yes
|
|
|
|
fi
|
|
|
|
elif test x$gcc_cv_as != x -a x$gcc_cv_ld != x ; then
|
|
|
|
cat > conftest1.s <<EOF
|
|
|
|
.text
|
|
|
|
bl .foo
|
|
|
|
EOF
|
|
|
|
cat > conftest2.s <<EOF
|
|
|
|
.section ".opd","aw"
|
|
|
|
.align 3
|
|
|
|
.globl foo
|
|
|
|
.type foo,@function
|
|
|
|
foo:
|
|
|
|
.quad .LEfoo,.TOC.@tocbase,0
|
|
|
|
.text
|
|
|
|
.LEfoo:
|
|
|
|
blr
|
|
|
|
.size foo,.-.LEfoo
|
|
|
|
EOF
|
|
|
|
if $gcc_cv_as -a64 -o conftest1.o conftest1.s > /dev/null 2>&1 \
|
|
|
|
&& $gcc_cv_as -a64 -o conftest2.o conftest2.s > /dev/null 2>&1 \
|
2012-03-21 21:13:50 +01:00
|
|
|
&& $gcc_cv_ld $emul_name -o conftest conftest1.o conftest2.o > /dev/null 2>&1; then
|
2004-08-21 03:40:00 +02:00
|
|
|
gcc_cv_ld_no_dot_syms=yes
|
|
|
|
fi
|
|
|
|
rm -f conftest conftest1.o conftest2.o conftest1.s conftest2.s
|
|
|
|
fi
|
|
|
|
])
|
|
|
|
if test x"$gcc_cv_ld_no_dot_syms" = xyes; then
|
|
|
|
AC_DEFINE(HAVE_LD_NO_DOT_SYMS, 1,
|
|
|
|
[Define if your PowerPC64 linker only needs function descriptor syms.])
|
|
|
|
fi
|
invoke.texi: Add mcmodel to powerpc options.
* doc/invoke.texi: Add mcmodel to powerpc options.
* configure.ac: Add HAVE_LD_LARGE_TOC test.
* configure: Regenerate.
* config.in: Regenerate.
* config/rs6000/linux64.opt (mcmodel): New.
* config/rs6000/linux64.h (TARGET_USES_LINUX64_OPT): Define.
(TARGET_CMODEL): Define.
(SUBSUBTARGET_OVERRIDE_OPTIONS): Check user -mcmodel choice,
select CMODEL_MEDIUM default.
* config/rs6000/rs6000.h (enum rs6000_cmodel): New.
(TARGET_CMODEL): Define default.
* config/rs6000/rs6000.c (cmodel): New variable.
(rs6000_explicit_options): Add cmodel field.
(rs6000_handle_option): Handle -mcmodel.
(create_TOC_reference): Add largetoc_reg param. Generate high,
lo_sum rtl for CMODEL_MEDIUM and CMODEL_LARGE. Update all callers.
(rs6000_delegitimize_address): Recognise new toc reference rtl
and minimal-toc rtl.
(rs6000_legitimize_reload_address): Handle new toc references.
(print_operand_address): Handle legitimate_constant_pool_address_p
match before lo_sum.
(rs6000_eliminate_indexed_memrefs): Tidy.
(rs6000_emit_move): Tweak threshold for inlining constants.
Keep rs6000_emit_allocate_stack large stack frame offsets
loaded into r0 inline.
(rs6000_generate_compare <cmptf_internal2>): One more clobber.
(tocrel_base, tocrel_offset): New variables.
(toc_relative_expr_p): Set them here.
(print_operand_address): Skip over any offset on constant pool
address.
(rs6000_output_addr_const_extra): Print tocrel_offset before @toc.
(rs6000_mode_dependent_address <LO_SUM>): False for new toc refs.
(offsettable_ok_by_alignment): New function.
(rs6000_emit_move): Address suitably aligned local symbol_refs
relative to the toc pointer for -mcmodel=medium.
(legitimate_constant_pool_address_p): Make param const_rtx. Add
strict param. Allow lo_sum version of addressing. Verify reg
used for -mminimal-toc and -mcmodel != small. Update all callers.
* config/rs6000/constraints.md: Update for above change.
* config/rs6000/predicates.md: Likewise.
* config/rs6000/rs6000.md (tls_gd_aix): Generate -mcmodel=medium/large
code.
(tls_gd): Split for -mcmodel=medium/large.
(tls_gd_high, tls_gd_low): New.
(tls_ld_aix, tls_ld, tls_ld_high, tls_ld_low): Similarly.
(tls_got_dtprel, tls_got_dtprel_high, tls_got_dtprel_low): Similarly.
(tls_got_tprel, tls_got_tprel_high, tls_got_tprel_low): Similarly.
(largetoc_high, largetoc_low): New.
(cmptf_internal2): Add clobber.
* config/rs6000/rs6000-protos.h: Update.
From-SVN: r160773
2010-06-15 09:33:43 +02:00
|
|
|
|
|
|
|
AC_CACHE_CHECK(linker large toc support,
|
|
|
|
gcc_cv_ld_large_toc,
|
|
|
|
[gcc_cv_ld_large_toc=no
|
2012-10-19 01:02:25 +02:00
|
|
|
if test x"$ld_is_gold" = xyes; then
|
|
|
|
gcc_cv_ld_large_toc=yes
|
|
|
|
elif test $in_tree_ld = yes ; then
|
invoke.texi: Add mcmodel to powerpc options.
* doc/invoke.texi: Add mcmodel to powerpc options.
* configure.ac: Add HAVE_LD_LARGE_TOC test.
* configure: Regenerate.
* config.in: Regenerate.
* config/rs6000/linux64.opt (mcmodel): New.
* config/rs6000/linux64.h (TARGET_USES_LINUX64_OPT): Define.
(TARGET_CMODEL): Define.
(SUBSUBTARGET_OVERRIDE_OPTIONS): Check user -mcmodel choice,
select CMODEL_MEDIUM default.
* config/rs6000/rs6000.h (enum rs6000_cmodel): New.
(TARGET_CMODEL): Define default.
* config/rs6000/rs6000.c (cmodel): New variable.
(rs6000_explicit_options): Add cmodel field.
(rs6000_handle_option): Handle -mcmodel.
(create_TOC_reference): Add largetoc_reg param. Generate high,
lo_sum rtl for CMODEL_MEDIUM and CMODEL_LARGE. Update all callers.
(rs6000_delegitimize_address): Recognise new toc reference rtl
and minimal-toc rtl.
(rs6000_legitimize_reload_address): Handle new toc references.
(print_operand_address): Handle legitimate_constant_pool_address_p
match before lo_sum.
(rs6000_eliminate_indexed_memrefs): Tidy.
(rs6000_emit_move): Tweak threshold for inlining constants.
Keep rs6000_emit_allocate_stack large stack frame offsets
loaded into r0 inline.
(rs6000_generate_compare <cmptf_internal2>): One more clobber.
(tocrel_base, tocrel_offset): New variables.
(toc_relative_expr_p): Set them here.
(print_operand_address): Skip over any offset on constant pool
address.
(rs6000_output_addr_const_extra): Print tocrel_offset before @toc.
(rs6000_mode_dependent_address <LO_SUM>): False for new toc refs.
(offsettable_ok_by_alignment): New function.
(rs6000_emit_move): Address suitably aligned local symbol_refs
relative to the toc pointer for -mcmodel=medium.
(legitimate_constant_pool_address_p): Make param const_rtx. Add
strict param. Allow lo_sum version of addressing. Verify reg
used for -mminimal-toc and -mcmodel != small. Update all callers.
* config/rs6000/constraints.md: Update for above change.
* config/rs6000/predicates.md: Likewise.
* config/rs6000/rs6000.md (tls_gd_aix): Generate -mcmodel=medium/large
code.
(tls_gd): Split for -mcmodel=medium/large.
(tls_gd_high, tls_gd_low): New.
(tls_ld_aix, tls_ld, tls_ld_high, tls_ld_low): Similarly.
(tls_got_dtprel, tls_got_dtprel_high, tls_got_dtprel_low): Similarly.
(tls_got_tprel, tls_got_tprel_high, tls_got_tprel_low): Similarly.
(largetoc_high, largetoc_low): New.
(cmptf_internal2): Add clobber.
* config/rs6000/rs6000-protos.h: Update.
From-SVN: r160773
2010-06-15 09:33:43 +02:00
|
|
|
if test "$gcc_cv_gld_major_version" -eq 2 -a "$gcc_cv_gld_minor_version" -ge 21 -o "$gcc_cv_gld_major_version" -gt 2; then
|
|
|
|
gcc_cv_ld_large_toc=yes
|
|
|
|
fi
|
|
|
|
elif test x$gcc_cv_as != x -a x$gcc_cv_ld != x ; then
|
|
|
|
cat > conftest.s <<EOF
|
|
|
|
.section ".tbss","awT",@nobits
|
|
|
|
.align 3
|
|
|
|
ie0: .space 8
|
|
|
|
.global _start
|
|
|
|
.text
|
|
|
|
_start:
|
|
|
|
addis 9,13,ie0@got@tprel@ha
|
|
|
|
ld 9,ie0@got@tprel@l(9)
|
|
|
|
EOF
|
|
|
|
if $gcc_cv_as -a64 -o conftest.o conftest.s > /dev/null 2>&1 \
|
2012-03-21 21:13:50 +01:00
|
|
|
&& $gcc_cv_ld $emul_name --no-toc-sort -o conftest conftest.o > /dev/null 2>&1; then
|
invoke.texi: Add mcmodel to powerpc options.
* doc/invoke.texi: Add mcmodel to powerpc options.
* configure.ac: Add HAVE_LD_LARGE_TOC test.
* configure: Regenerate.
* config.in: Regenerate.
* config/rs6000/linux64.opt (mcmodel): New.
* config/rs6000/linux64.h (TARGET_USES_LINUX64_OPT): Define.
(TARGET_CMODEL): Define.
(SUBSUBTARGET_OVERRIDE_OPTIONS): Check user -mcmodel choice,
select CMODEL_MEDIUM default.
* config/rs6000/rs6000.h (enum rs6000_cmodel): New.
(TARGET_CMODEL): Define default.
* config/rs6000/rs6000.c (cmodel): New variable.
(rs6000_explicit_options): Add cmodel field.
(rs6000_handle_option): Handle -mcmodel.
(create_TOC_reference): Add largetoc_reg param. Generate high,
lo_sum rtl for CMODEL_MEDIUM and CMODEL_LARGE. Update all callers.
(rs6000_delegitimize_address): Recognise new toc reference rtl
and minimal-toc rtl.
(rs6000_legitimize_reload_address): Handle new toc references.
(print_operand_address): Handle legitimate_constant_pool_address_p
match before lo_sum.
(rs6000_eliminate_indexed_memrefs): Tidy.
(rs6000_emit_move): Tweak threshold for inlining constants.
Keep rs6000_emit_allocate_stack large stack frame offsets
loaded into r0 inline.
(rs6000_generate_compare <cmptf_internal2>): One more clobber.
(tocrel_base, tocrel_offset): New variables.
(toc_relative_expr_p): Set them here.
(print_operand_address): Skip over any offset on constant pool
address.
(rs6000_output_addr_const_extra): Print tocrel_offset before @toc.
(rs6000_mode_dependent_address <LO_SUM>): False for new toc refs.
(offsettable_ok_by_alignment): New function.
(rs6000_emit_move): Address suitably aligned local symbol_refs
relative to the toc pointer for -mcmodel=medium.
(legitimate_constant_pool_address_p): Make param const_rtx. Add
strict param. Allow lo_sum version of addressing. Verify reg
used for -mminimal-toc and -mcmodel != small. Update all callers.
* config/rs6000/constraints.md: Update for above change.
* config/rs6000/predicates.md: Likewise.
* config/rs6000/rs6000.md (tls_gd_aix): Generate -mcmodel=medium/large
code.
(tls_gd): Split for -mcmodel=medium/large.
(tls_gd_high, tls_gd_low): New.
(tls_ld_aix, tls_ld, tls_ld_high, tls_ld_low): Similarly.
(tls_got_dtprel, tls_got_dtprel_high, tls_got_dtprel_low): Similarly.
(tls_got_tprel, tls_got_tprel_high, tls_got_tprel_low): Similarly.
(largetoc_high, largetoc_low): New.
(cmptf_internal2): Add clobber.
* config/rs6000/rs6000-protos.h: Update.
From-SVN: r160773
2010-06-15 09:33:43 +02:00
|
|
|
gcc_cv_ld_large_toc=yes
|
|
|
|
fi
|
|
|
|
rm -f conftest conftest.o conftest.s
|
|
|
|
fi
|
|
|
|
])
|
|
|
|
if test x"$gcc_cv_ld_large_toc" = xyes; then
|
|
|
|
AC_DEFINE(HAVE_LD_LARGE_TOC, 1,
|
|
|
|
[Define if your PowerPC64 linker supports a large TOC.])
|
|
|
|
fi
|
2015-04-28 05:47:19 +02:00
|
|
|
|
|
|
|
AC_CACHE_CHECK(linker toc pointer alignment,
|
|
|
|
gcc_cv_ld_toc_align,
|
|
|
|
[if test x$gcc_cv_as != x -a x$gcc_cv_ld != x -a x$gcc_cv_nm != x; then
|
|
|
|
cat > conftest.s <<EOF
|
|
|
|
.global _start
|
|
|
|
.text
|
|
|
|
_start:
|
|
|
|
addis 9,2,x@got@ha
|
|
|
|
.section .data.rel.ro,"aw",@progbits
|
|
|
|
.p2align 16
|
|
|
|
.space 32768
|
|
|
|
x: .quad .TOC.
|
|
|
|
EOF
|
|
|
|
if $gcc_cv_as -a64 -o conftest.o conftest.s > /dev/null 2>&1 \
|
2015-11-18 00:24:30 +01:00
|
|
|
&& $gcc_cv_ld $emul_name -z norelro -o conftest conftest.o > /dev/null 2>&1; then
|
2015-04-28 05:47:19 +02:00
|
|
|
gcc_cv_ld_toc_align=`$gcc_cv_nm conftest | ${AWK} '/\.TOC\./ { match ($0, "0[[[:xdigit:]]]*", a); print strtonum ("0x" substr(a[[0]], length(a[[0]])-3)) }'`
|
|
|
|
fi
|
|
|
|
rm -f conftest conftest.o conftest.s
|
|
|
|
fi
|
|
|
|
])
|
|
|
|
if test -n "$gcc_cv_ld_toc_align" && test $gcc_cv_ld_toc_align -gt 8; then
|
|
|
|
AC_DEFINE_UNQUOTED(POWERPC64_TOC_POINTER_ALIGNMENT, $gcc_cv_ld_toc_align,
|
|
|
|
[Define to .TOC. alignment forced by your linker.])
|
|
|
|
fi
|
2004-08-21 03:40:00 +02:00
|
|
|
;;
|
|
|
|
esac
|
|
|
|
|
2012-11-14 17:41:21 +01:00
|
|
|
case "$target" in
|
|
|
|
*-*-aix*)
|
|
|
|
AC_CACHE_CHECK(linker large toc support,
|
|
|
|
gcc_cv_ld_large_toc,
|
|
|
|
[gcc_cv_ld_large_toc=no
|
|
|
|
if test x$gcc_cv_as != x ; then
|
|
|
|
cat > conftest.s <<EOF
|
|
|
|
.toc
|
|
|
|
LC..1:
|
|
|
|
.tc a[[TC]],a[[RW]]
|
|
|
|
.extern a[[RW]]
|
|
|
|
.csect .text[[PR]]
|
|
|
|
.largetoctest:
|
|
|
|
addis 9,LC..1@u(2)
|
|
|
|
ld 3,LC..1@l(9)
|
|
|
|
EOF
|
|
|
|
if $gcc_cv_as -a64 -o conftest.o conftest.s > /dev/null 2>&1; then
|
|
|
|
gcc_cv_ld_large_toc=yes
|
|
|
|
fi
|
|
|
|
rm -f conftest conftest.o conftest.s
|
|
|
|
fi
|
|
|
|
])
|
|
|
|
if test x"$gcc_cv_ld_large_toc" = xyes; then
|
|
|
|
AC_DEFINE(HAVE_LD_LARGE_TOC, 1,
|
2013-05-10 04:07:53 +02:00
|
|
|
[Define if your PowerPC64 linker supports a large TOC.])
|
2012-11-14 17:41:21 +01:00
|
|
|
fi
|
|
|
|
;;
|
|
|
|
esac
|
|
|
|
|
2009-05-01 02:19:24 +02:00
|
|
|
AC_CACHE_CHECK(linker --build-id support,
|
|
|
|
gcc_cv_ld_buildid,
|
|
|
|
[gcc_cv_ld_buildid=no
|
|
|
|
if test $in_tree_ld = yes ; then
|
|
|
|
if test "$gcc_cv_gld_major_version" -eq 2 -a \
|
|
|
|
"$gcc_cv_gld_minor_version" -ge 18 -o \
|
|
|
|
"$gcc_cv_gld_major_version" -gt 2 \
|
|
|
|
&& test $in_tree_ld_is_elf = yes; then
|
|
|
|
gcc_cv_ld_buildid=yes
|
|
|
|
fi
|
|
|
|
elif test x$gcc_cv_ld != x; then
|
|
|
|
if $gcc_cv_ld --help 2>/dev/null | grep build-id > /dev/null; then
|
|
|
|
gcc_cv_ld_buildid=yes
|
|
|
|
fi
|
|
|
|
fi])
|
|
|
|
if test x"$gcc_cv_ld_buildid" = xyes; then
|
|
|
|
AC_DEFINE(HAVE_LD_BUILDID, 1,
|
|
|
|
[Define if your linker supports --build-id.])
|
|
|
|
fi
|
|
|
|
|
|
|
|
AC_ARG_ENABLE(linker-build-id,
|
2011-05-13 10:09:25 +02:00
|
|
|
[AS_HELP_STRING([--enable-linker-build-id],
|
|
|
|
[compiler will always pass --build-id to linker])],
|
2009-05-01 02:19:24 +02:00
|
|
|
[],
|
|
|
|
enable_linker_build_id=no)
|
|
|
|
|
|
|
|
if test x"$enable_linker_build_id" = xyes; then
|
|
|
|
if test x"$gcc_cv_ld_buildid" = xyes; then
|
|
|
|
AC_DEFINE(ENABLE_LD_BUILDID, 1,
|
|
|
|
[Define if gcc should always pass --build-id to linker.])
|
|
|
|
else
|
|
|
|
AC_MSG_WARN(--build-id is not supported by your linker; --enable-linker-build-id ignored)
|
|
|
|
fi
|
|
|
|
fi
|
|
|
|
|
2010-06-02 19:39:39 +02:00
|
|
|
# In binutils 2.21, GNU ld gained support for new emulations fully
|
|
|
|
# supporting the Solaris 2 ABI. Detect their presence in the linker used.
|
|
|
|
AC_CACHE_CHECK(linker *_sol2 emulation support,
|
|
|
|
gcc_cv_ld_sol2_emulation,
|
|
|
|
[gcc_cv_ld_sol2_emulation=no
|
|
|
|
if test $in_tree_ld = yes ; then
|
|
|
|
if test "$gcc_cv_gld_major_version" -eq 2 -a \
|
|
|
|
"$gcc_cv_gld_minor_version" -ge 21 -o \
|
|
|
|
"$gcc_cv_gld_major_version" -gt 2 \
|
|
|
|
&& test $in_tree_ld_is_elf = yes; then
|
|
|
|
gcc_cv_ld_sol2_emulation=yes
|
|
|
|
fi
|
|
|
|
elif test x$gcc_cv_ld != x; then
|
|
|
|
if $gcc_cv_ld -V 2>/dev/null | sed -e '1,/Supported emulations/d;q' | \
|
|
|
|
grep _sol2 > /dev/null; then
|
|
|
|
gcc_cv_ld_sol2_emulation=yes
|
|
|
|
fi
|
|
|
|
fi])
|
|
|
|
if test x"$gcc_cv_ld_sol2_emulation" = xyes; then
|
|
|
|
AC_DEFINE(HAVE_LD_SOL2_EMULATION, 1,
|
|
|
|
[Define if your linker supports the *_sol2 emulations.])
|
|
|
|
fi
|
|
|
|
|
2005-04-27 22:35:54 +02:00
|
|
|
AC_CACHE_CHECK(linker --sysroot support,
|
|
|
|
gcc_cv_ld_sysroot,
|
|
|
|
[gcc_cv_ld_sysroot=no
|
|
|
|
if test $in_tree_ld = yes ; then
|
|
|
|
if test "$gcc_cv_gld_major_version" -eq 2 -a "$gcc_cv_gld_minor_version" -ge 16 -o "$gcc_cv_gld_major_version" -gt 2 ; then
|
2005-05-17 17:00:26 +02:00
|
|
|
gcc_cv_ld_sysroot=yes
|
2005-04-27 22:35:54 +02:00
|
|
|
fi
|
|
|
|
elif test x$gcc_cv_ld != x; then
|
|
|
|
if $gcc_cv_ld --help 2>/dev/null | grep sysroot > /dev/null; then
|
|
|
|
gcc_cv_ld_sysroot=yes
|
|
|
|
fi
|
|
|
|
fi])
|
|
|
|
if test x"$gcc_cv_ld_sysroot" = xyes; then
|
|
|
|
AC_DEFINE(HAVE_LD_SYSROOT, 1,
|
|
|
|
[Define if your linker supports --sysroot.])
|
|
|
|
fi
|
|
|
|
|
2015-09-24 10:51:39 +02:00
|
|
|
case $target in
|
|
|
|
*-*-solaris2*)
|
|
|
|
# Check for system-provided CRTs on Solaris 11.x and Solaris 12.
|
|
|
|
AC_CACHE_CHECK([system-provided CRTs on Solaris],
|
|
|
|
gcc_cv_solaris_crts,
|
|
|
|
[gcc_cv_solaris_crts=no
|
|
|
|
if test x$host != x$target; then
|
|
|
|
if test "x$with_sysroot" = xyes; then
|
|
|
|
target_sysroot="${test_exec_prefix}/${target_noncanonical}/sys-root"
|
|
|
|
else
|
|
|
|
target_sysroot="${with_sysroot}"
|
|
|
|
fi
|
|
|
|
fi
|
|
|
|
target_libdir="$target_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 $target in
|
|
|
|
i?86-*-solaris2* | x86_64-*-solaris2*)
|
|
|
|
if test -h "$target_libdir/gcrt1.o"; then gcc_cv_solaris_crts=yes; fi
|
|
|
|
;;
|
|
|
|
sparc*-*-solaris2*)
|
|
|
|
if test -f "$target_libdir/crt1.o"; then gcc_cv_solaris_crts=yes; fi
|
|
|
|
;;
|
|
|
|
esac])
|
|
|
|
;;
|
|
|
|
esac
|
|
|
|
if test x$gcc_cv_solaris_crts = xyes; then
|
|
|
|
AC_DEFINE(HAVE_SOLARIS_CRTS, 1,
|
|
|
|
[Define if the system-provided CRTs are present on Solaris.])
|
|
|
|
fi
|
|
|
|
|
Makefile.def (target_modules): Add libssp.
* Makefile.def (target_modules): Add libssp.
* configure.in (target_libraries): Add target-libssp.
* configure: Rebuilt.
* Makefile.in: Rebuilt.
gcc/
* gcc.c (LINK_SSP_SPEC): Define.
(link_ssp_spec): New variable.
(LINK_COMMAND_SPEC): Add %(link_ssp).
(static_specs): Add link_ssp_spec.
* configure.ac (TARGET_LIBC_PROVIDES_SSP): New test.
* configure: Rebuilt.
* config.in: Rebuilt.
* config/rs6000/linux.h (TARGET_THREAD_SSP_OFFSET): Define.
* config/rs6000/linux64.h (TARGET_THREAD_SSP_OFFSET): Likewise.
* config/i386/linux.h (TARGET_THREAD_SSP_OFFSET): Likewise.
* config/i386/linux64.h (TARGET_THREAD_SSP_OFFSET): Likewise.
* config/rs6000/rs6000.md (stack_protect_set, stack_protect_test):
If TARGET_THREAD_SSP_OFFSET is defined, use -0x7010(13) resp.
-0x7008(2) instead of reading __stack_chk_guard variable.
* config/i386/i386.md (UNSPEC_SP_SET, UNSPEC_SP_TEST): Change
number.
(UNSPEC_SP_TLS_SET, UNSPEC_SP_TLS_TEST): New constants.
(stack_protect_set, stack_protect_test): Use *_tls* patterns
if TARGET_THREAD_SSP_OFFSET is defined.
(stack_tls_protect_set_si, stack_tls_protect_set_di,
stack_tls_protect_test_si, stack_tls_protect_test_di): New insns.
Revert:
2005-06-27 Richard Henderson <rth@redhat.com>
* libgcc-std.ver (GCC_4.1.0): New.
* libgcc.h (__stack_chk_guard): Declare.
(__stack_chk_fail, __stack_chk_fail_local): Declare.
* libgcc2.c (L_stack_chk, L_stack_chk_local): New.
* mklibgcc.in (lib2funcs): Add them.
From-SVN: r101531
2005-07-02 10:52:21 +02:00
|
|
|
# Test for stack protector support in target C library.
|
2007-01-08 00:53:21 +01:00
|
|
|
AC_CACHE_CHECK(__stack_chk_fail in target C library,
|
Makefile.def (target_modules): Add libssp.
* Makefile.def (target_modules): Add libssp.
* configure.in (target_libraries): Add target-libssp.
* configure: Rebuilt.
* Makefile.in: Rebuilt.
gcc/
* gcc.c (LINK_SSP_SPEC): Define.
(link_ssp_spec): New variable.
(LINK_COMMAND_SPEC): Add %(link_ssp).
(static_specs): Add link_ssp_spec.
* configure.ac (TARGET_LIBC_PROVIDES_SSP): New test.
* configure: Rebuilt.
* config.in: Rebuilt.
* config/rs6000/linux.h (TARGET_THREAD_SSP_OFFSET): Define.
* config/rs6000/linux64.h (TARGET_THREAD_SSP_OFFSET): Likewise.
* config/i386/linux.h (TARGET_THREAD_SSP_OFFSET): Likewise.
* config/i386/linux64.h (TARGET_THREAD_SSP_OFFSET): Likewise.
* config/rs6000/rs6000.md (stack_protect_set, stack_protect_test):
If TARGET_THREAD_SSP_OFFSET is defined, use -0x7010(13) resp.
-0x7008(2) instead of reading __stack_chk_guard variable.
* config/i386/i386.md (UNSPEC_SP_SET, UNSPEC_SP_TEST): Change
number.
(UNSPEC_SP_TLS_SET, UNSPEC_SP_TLS_TEST): New constants.
(stack_protect_set, stack_protect_test): Use *_tls* patterns
if TARGET_THREAD_SSP_OFFSET is defined.
(stack_tls_protect_set_si, stack_tls_protect_set_di,
stack_tls_protect_test_si, stack_tls_protect_test_di): New insns.
Revert:
2005-06-27 Richard Henderson <rth@redhat.com>
* libgcc-std.ver (GCC_4.1.0): New.
* libgcc.h (__stack_chk_guard): Declare.
(__stack_chk_fail, __stack_chk_fail_local): Declare.
* libgcc2.c (L_stack_chk, L_stack_chk_local): New.
* mklibgcc.in (lib2funcs): Add them.
From-SVN: r101531
2005-07-02 10:52:21 +02:00
|
|
|
gcc_cv_libc_provides_ssp,
|
|
|
|
[gcc_cv_libc_provides_ssp=no
|
2007-01-08 00:53:21 +01:00
|
|
|
case "$target" in
|
2015-05-08 10:25:47 +02:00
|
|
|
*-*-musl*)
|
|
|
|
# All versions of musl provide stack protector
|
|
|
|
gcc_cv_libc_provides_ssp=yes;;
|
2008-11-14 10:20:54 +01:00
|
|
|
*-*-linux* | *-*-kfreebsd*-gnu | *-*-knetbsd*-gnu)
|
2013-11-15 13:34:28 +01:00
|
|
|
# glibc 2.4 and later provides __stack_chk_fail and
|
Makefile.def (target_modules): Add libssp.
* Makefile.def (target_modules): Add libssp.
* configure.in (target_libraries): Add target-libssp.
* configure: Rebuilt.
* Makefile.in: Rebuilt.
gcc/
* gcc.c (LINK_SSP_SPEC): Define.
(link_ssp_spec): New variable.
(LINK_COMMAND_SPEC): Add %(link_ssp).
(static_specs): Add link_ssp_spec.
* configure.ac (TARGET_LIBC_PROVIDES_SSP): New test.
* configure: Rebuilt.
* config.in: Rebuilt.
* config/rs6000/linux.h (TARGET_THREAD_SSP_OFFSET): Define.
* config/rs6000/linux64.h (TARGET_THREAD_SSP_OFFSET): Likewise.
* config/i386/linux.h (TARGET_THREAD_SSP_OFFSET): Likewise.
* config/i386/linux64.h (TARGET_THREAD_SSP_OFFSET): Likewise.
* config/rs6000/rs6000.md (stack_protect_set, stack_protect_test):
If TARGET_THREAD_SSP_OFFSET is defined, use -0x7010(13) resp.
-0x7008(2) instead of reading __stack_chk_guard variable.
* config/i386/i386.md (UNSPEC_SP_SET, UNSPEC_SP_TEST): Change
number.
(UNSPEC_SP_TLS_SET, UNSPEC_SP_TLS_TEST): New constants.
(stack_protect_set, stack_protect_test): Use *_tls* patterns
if TARGET_THREAD_SSP_OFFSET is defined.
(stack_tls_protect_set_si, stack_tls_protect_set_di,
stack_tls_protect_test_si, stack_tls_protect_test_di): New insns.
Revert:
2005-06-27 Richard Henderson <rth@redhat.com>
* libgcc-std.ver (GCC_4.1.0): New.
* libgcc.h (__stack_chk_guard): Declare.
(__stack_chk_fail, __stack_chk_fail_local): Declare.
* libgcc2.c (L_stack_chk, L_stack_chk_local): New.
* mklibgcc.in (lib2funcs): Add them.
From-SVN: r101531
2005-07-02 10:52:21 +02:00
|
|
|
# either __stack_chk_guard, or TLS access to stack guard canary.
|
2013-11-15 13:34:28 +01:00
|
|
|
GCC_GLIBC_VERSION_GTE_IFELSE([2], [4], [gcc_cv_libc_provides_ssp=yes], [
|
|
|
|
[if test -f $target_header_dir/features.h \
|
2010-02-18 22:42:23 +01:00
|
|
|
&& $EGREP '^[ ]*#[ ]*define[ ]+__GNU_LIBRARY__[ ]+([1-9][0-9]|[6-9])' \
|
2010-12-23 13:08:21 +01:00
|
|
|
$target_header_dir/features.h > /dev/null; then
|
2013-11-15 13:34:28 +01:00
|
|
|
if $EGREP '^[ ]*#[ ]*define[ ]+__UCLIBC__[ ]+1' \
|
2010-12-23 13:08:21 +01:00
|
|
|
$target_header_dir/features.h > /dev/null && \
|
|
|
|
test -f $target_header_dir/bits/uClibc_config.h && \
|
2010-02-18 22:42:23 +01:00
|
|
|
$EGREP '^[ ]*#[ ]*define[ ]+__UCLIBC_HAS_SSP__[ ]+1' \
|
2010-12-23 13:08:21 +01:00
|
|
|
$target_header_dir/bits/uClibc_config.h > /dev/null; then
|
2008-01-27 17:43:07 +01:00
|
|
|
gcc_cv_libc_provides_ssp=yes
|
Makefile.def (target_modules): Add libssp.
* Makefile.def (target_modules): Add libssp.
* configure.in (target_libraries): Add target-libssp.
* configure: Rebuilt.
* Makefile.in: Rebuilt.
gcc/
* gcc.c (LINK_SSP_SPEC): Define.
(link_ssp_spec): New variable.
(LINK_COMMAND_SPEC): Add %(link_ssp).
(static_specs): Add link_ssp_spec.
* configure.ac (TARGET_LIBC_PROVIDES_SSP): New test.
* configure: Rebuilt.
* config.in: Rebuilt.
* config/rs6000/linux.h (TARGET_THREAD_SSP_OFFSET): Define.
* config/rs6000/linux64.h (TARGET_THREAD_SSP_OFFSET): Likewise.
* config/i386/linux.h (TARGET_THREAD_SSP_OFFSET): Likewise.
* config/i386/linux64.h (TARGET_THREAD_SSP_OFFSET): Likewise.
* config/rs6000/rs6000.md (stack_protect_set, stack_protect_test):
If TARGET_THREAD_SSP_OFFSET is defined, use -0x7010(13) resp.
-0x7008(2) instead of reading __stack_chk_guard variable.
* config/i386/i386.md (UNSPEC_SP_SET, UNSPEC_SP_TEST): Change
number.
(UNSPEC_SP_TLS_SET, UNSPEC_SP_TLS_TEST): New constants.
(stack_protect_set, stack_protect_test): Use *_tls* patterns
if TARGET_THREAD_SSP_OFFSET is defined.
(stack_tls_protect_set_si, stack_tls_protect_set_di,
stack_tls_protect_test_si, stack_tls_protect_test_di): New insns.
Revert:
2005-06-27 Richard Henderson <rth@redhat.com>
* libgcc-std.ver (GCC_4.1.0): New.
* libgcc.h (__stack_chk_guard): Declare.
(__stack_chk_fail, __stack_chk_fail_local): Declare.
* libgcc2.c (L_stack_chk, L_stack_chk_local): New.
* mklibgcc.in (lib2funcs): Add them.
From-SVN: r101531
2005-07-02 10:52:21 +02:00
|
|
|
fi
|
2012-05-16 11:59:04 +02:00
|
|
|
# all versions of Bionic support stack protector
|
|
|
|
elif test -f $target_header_dir/sys/cdefs.h \
|
|
|
|
&& $EGREP '^[ ]*#[ ]*define[ ]+__BIONIC__[ ]+1' \
|
|
|
|
$target_header_dir/sys/cdefs.h > /dev/null; then
|
|
|
|
gcc_cv_libc_provides_ssp=yes
|
2013-11-15 13:34:28 +01:00
|
|
|
fi]])
|
2007-01-08 00:53:21 +01:00
|
|
|
;;
|
2008-11-14 10:24:06 +01:00
|
|
|
*-*-gnu*)
|
|
|
|
# Avoid complicated tests (see
|
|
|
|
# <http://gcc.gnu.org/ml/gcc/2008-10/msg00130.html>) and for now
|
|
|
|
# simply assert that glibc does provide this, which is true for all
|
|
|
|
# realistically usable GNU/Hurd configurations.
|
2015-05-08 10:25:47 +02:00
|
|
|
# All supported versions of musl provide it as well
|
2008-11-14 10:24:06 +01:00
|
|
|
gcc_cv_libc_provides_ssp=yes;;
|
2009-09-11 17:37:40 +02:00
|
|
|
*-*-darwin* | *-*-freebsd*)
|
2007-01-08 00:53:21 +01:00
|
|
|
AC_CHECK_FUNC(__stack_chk_fail,[gcc_cv_libc_provides_ssp=yes],
|
|
|
|
[echo "no __stack_chk_fail on this target"])
|
|
|
|
;;
|
Makefile.def (target_modules): Add libssp.
* Makefile.def (target_modules): Add libssp.
* configure.in (target_libraries): Add target-libssp.
* configure: Rebuilt.
* Makefile.in: Rebuilt.
gcc/
* gcc.c (LINK_SSP_SPEC): Define.
(link_ssp_spec): New variable.
(LINK_COMMAND_SPEC): Add %(link_ssp).
(static_specs): Add link_ssp_spec.
* configure.ac (TARGET_LIBC_PROVIDES_SSP): New test.
* configure: Rebuilt.
* config.in: Rebuilt.
* config/rs6000/linux.h (TARGET_THREAD_SSP_OFFSET): Define.
* config/rs6000/linux64.h (TARGET_THREAD_SSP_OFFSET): Likewise.
* config/i386/linux.h (TARGET_THREAD_SSP_OFFSET): Likewise.
* config/i386/linux64.h (TARGET_THREAD_SSP_OFFSET): Likewise.
* config/rs6000/rs6000.md (stack_protect_set, stack_protect_test):
If TARGET_THREAD_SSP_OFFSET is defined, use -0x7010(13) resp.
-0x7008(2) instead of reading __stack_chk_guard variable.
* config/i386/i386.md (UNSPEC_SP_SET, UNSPEC_SP_TEST): Change
number.
(UNSPEC_SP_TLS_SET, UNSPEC_SP_TLS_TEST): New constants.
(stack_protect_set, stack_protect_test): Use *_tls* patterns
if TARGET_THREAD_SSP_OFFSET is defined.
(stack_tls_protect_set_si, stack_tls_protect_set_di,
stack_tls_protect_test_si, stack_tls_protect_test_di): New insns.
Revert:
2005-06-27 Richard Henderson <rth@redhat.com>
* libgcc-std.ver (GCC_4.1.0): New.
* libgcc.h (__stack_chk_guard): Declare.
(__stack_chk_fail, __stack_chk_fail_local): Declare.
* libgcc2.c (L_stack_chk, L_stack_chk_local): New.
* mklibgcc.in (lib2funcs): Add them.
From-SVN: r101531
2005-07-02 10:52:21 +02:00
|
|
|
*) gcc_cv_libc_provides_ssp=no ;;
|
2007-01-08 00:53:21 +01:00
|
|
|
esac])
|
|
|
|
|
Makefile.def (target_modules): Add libssp.
* Makefile.def (target_modules): Add libssp.
* configure.in (target_libraries): Add target-libssp.
* configure: Rebuilt.
* Makefile.in: Rebuilt.
gcc/
* gcc.c (LINK_SSP_SPEC): Define.
(link_ssp_spec): New variable.
(LINK_COMMAND_SPEC): Add %(link_ssp).
(static_specs): Add link_ssp_spec.
* configure.ac (TARGET_LIBC_PROVIDES_SSP): New test.
* configure: Rebuilt.
* config.in: Rebuilt.
* config/rs6000/linux.h (TARGET_THREAD_SSP_OFFSET): Define.
* config/rs6000/linux64.h (TARGET_THREAD_SSP_OFFSET): Likewise.
* config/i386/linux.h (TARGET_THREAD_SSP_OFFSET): Likewise.
* config/i386/linux64.h (TARGET_THREAD_SSP_OFFSET): Likewise.
* config/rs6000/rs6000.md (stack_protect_set, stack_protect_test):
If TARGET_THREAD_SSP_OFFSET is defined, use -0x7010(13) resp.
-0x7008(2) instead of reading __stack_chk_guard variable.
* config/i386/i386.md (UNSPEC_SP_SET, UNSPEC_SP_TEST): Change
number.
(UNSPEC_SP_TLS_SET, UNSPEC_SP_TLS_TEST): New constants.
(stack_protect_set, stack_protect_test): Use *_tls* patterns
if TARGET_THREAD_SSP_OFFSET is defined.
(stack_tls_protect_set_si, stack_tls_protect_set_di,
stack_tls_protect_test_si, stack_tls_protect_test_di): New insns.
Revert:
2005-06-27 Richard Henderson <rth@redhat.com>
* libgcc-std.ver (GCC_4.1.0): New.
* libgcc.h (__stack_chk_guard): Declare.
(__stack_chk_fail, __stack_chk_fail_local): Declare.
* libgcc2.c (L_stack_chk, L_stack_chk_local): New.
* mklibgcc.in (lib2funcs): Add them.
From-SVN: r101531
2005-07-02 10:52:21 +02:00
|
|
|
if test x$gcc_cv_libc_provides_ssp = xyes; then
|
|
|
|
AC_DEFINE(TARGET_LIBC_PROVIDES_SSP, 1,
|
|
|
|
[Define if your target C library provides stack protector support])
|
|
|
|
fi
|
|
|
|
|
2015-08-20 00:07:06 +02:00
|
|
|
# Check whether --enable-default-ssp was given.
|
|
|
|
AC_ARG_ENABLE(default-ssp,
|
|
|
|
[AS_HELP_STRING([--enable-default-ssp],
|
|
|
|
[enable Stack Smashing Protection as default])],[
|
|
|
|
if test x$gcc_cv_libc_provides_ssp = xyes; then
|
|
|
|
case "$target" in
|
|
|
|
ia64*-*-*) enable_default_ssp=no ;;
|
|
|
|
*) enable_default_ssp=$enableval ;;
|
|
|
|
esac
|
|
|
|
else
|
|
|
|
enable_default_ssp=no
|
|
|
|
fi],
|
|
|
|
enable_default_ssp=no)
|
2015-11-11 09:06:03 +01:00
|
|
|
if test x$enable_default_ssp = xyes ; then
|
2015-08-20 00:07:06 +02:00
|
|
|
AC_DEFINE(ENABLE_DEFAULT_SSP, 1,
|
|
|
|
[Define if your target supports default stack protector and it is enabled.])
|
|
|
|
fi
|
|
|
|
AC_SUBST([enable_default_ssp])
|
|
|
|
|
2011-03-14 20:47:58 +01:00
|
|
|
# Test for <sys/sdt.h> on the target.
|
|
|
|
GCC_TARGET_TEMPLATE([HAVE_SYS_SDT_H])
|
|
|
|
AC_MSG_CHECKING(sys/sdt.h in the target C library)
|
|
|
|
have_sys_sdt_h=no
|
|
|
|
if test -f $target_header_dir/sys/sdt.h; then
|
2011-10-17 16:47:01 +02:00
|
|
|
have_sys_sdt_h=yes
|
2011-03-14 20:47:58 +01:00
|
|
|
AC_DEFINE(HAVE_SYS_SDT_H, 1,
|
|
|
|
[Define if your target C library provides sys/sdt.h])
|
|
|
|
fi
|
|
|
|
AC_MSG_RESULT($have_sys_sdt_h)
|
|
|
|
|
2006-02-23 09:58:22 +01:00
|
|
|
# Check if TFmode long double should be used by default or not.
|
|
|
|
# Some glibc targets used DFmode long double, but with glibc 2.4
|
|
|
|
# and later they can use TFmode.
|
|
|
|
case "$target" in
|
2007-04-19 14:11:07 +02:00
|
|
|
powerpc*-*-linux* | \
|
2006-02-23 09:58:22 +01:00
|
|
|
sparc*-*-linux* | \
|
|
|
|
s390*-*-linux* | \
|
|
|
|
alpha*-*-linux*)
|
|
|
|
AC_ARG_WITH(long-double-128,
|
2011-05-13 10:09:25 +02:00
|
|
|
[AS_HELP_STRING([--with-long-double-128],
|
|
|
|
[use 128-bit long double by default])],
|
2006-02-23 09:58:22 +01:00
|
|
|
gcc_cv_target_ldbl128="$with_long_double_128",
|
2013-11-15 13:34:28 +01:00
|
|
|
[GCC_GLIBC_VERSION_GTE_IFELSE([2], [4], [gcc_cv_target_ldbl128=yes], [
|
|
|
|
[gcc_cv_target_ldbl128=no
|
2006-02-23 09:58:22 +01:00
|
|
|
grep '^[ ]*#[ ]*define[ ][ ]*__LONG_DOUBLE_MATH_OPTIONAL' \
|
2010-12-23 13:08:21 +01:00
|
|
|
$target_header_dir/bits/wordsize.h > /dev/null 2>&1 \
|
2006-11-13 23:38:21 +01:00
|
|
|
&& gcc_cv_target_ldbl128=yes
|
2013-11-15 13:34:28 +01:00
|
|
|
]])])
|
2006-02-23 09:58:22 +01:00
|
|
|
;;
|
|
|
|
esac
|
|
|
|
if test x$gcc_cv_target_ldbl128 = xyes; then
|
|
|
|
AC_DEFINE(TARGET_DEFAULT_LONG_DOUBLE_128, 1,
|
|
|
|
[Define if TFmode long double should be the default])
|
|
|
|
fi
|
|
|
|
|
2010-12-23 13:08:21 +01:00
|
|
|
AC_MSG_CHECKING(dl_iterate_phdr in target C library)
|
|
|
|
gcc_cv_target_dl_iterate_phdr=unknown
|
|
|
|
case "$target" in
|
2012-01-17 10:50:37 +01:00
|
|
|
# Restrict to Solaris 11+. While most of the Solaris 11 linker changes
|
|
|
|
# were backported to Solaris 10 Update 10, dl_iterate_phdr only lives in
|
|
|
|
# libdl there, both complicating its use and breaking compatibility
|
|
|
|
# between Solaris 10 updates.
|
|
|
|
*-*-solaris2.1[[1-9]]*)
|
2010-12-23 13:08:21 +01:00
|
|
|
# <link.h> needs both a dl_iterate_phdr declaration and support for
|
|
|
|
# compilation with largefile support.
|
|
|
|
if grep dl_iterate_phdr $target_header_dir/link.h > /dev/null 2>&1 \
|
|
|
|
&& grep 'large file capable' $target_header_dir/link.h > /dev/null 2>&1; then
|
|
|
|
gcc_cv_target_dl_iterate_phdr=yes
|
|
|
|
else
|
|
|
|
gcc_cv_target_dl_iterate_phdr=no
|
|
|
|
fi
|
|
|
|
;;
|
2014-05-21 13:08:58 +02:00
|
|
|
*-*-dragonfly* | *-*-freebsd*)
|
|
|
|
if grep dl_iterate_phdr $target_header_dir/sys/link_elf.h > /dev/null 2>&1; then
|
|
|
|
gcc_cv_target_dl_iterate_phdr=yes
|
|
|
|
else
|
|
|
|
gcc_cv_target_dl_iterate_phdr=no
|
|
|
|
fi
|
|
|
|
;;
|
2015-05-08 10:25:47 +02:00
|
|
|
*-linux-musl*)
|
|
|
|
gcc_cv_target_dl_iterate_phdr=yes
|
|
|
|
;;
|
2010-12-23 13:08:21 +01:00
|
|
|
esac
|
|
|
|
GCC_TARGET_TEMPLATE([TARGET_DL_ITERATE_PHDR])
|
|
|
|
if test x$gcc_cv_target_dl_iterate_phdr = xyes; then
|
|
|
|
AC_DEFINE(TARGET_DL_ITERATE_PHDR, 1,
|
|
|
|
[Define if your target C library provides the `dl_iterate_phdr' function.])
|
|
|
|
fi
|
|
|
|
AC_MSG_RESULT($gcc_cv_target_dl_iterate_phdr)
|
|
|
|
|
2013-01-24 16:13:46 +01:00
|
|
|
# We no longer support different GC mechanisms. Emit an error if
|
|
|
|
# the user configures with --with-gc.
|
1999-10-07 10:15:19 +02:00
|
|
|
AC_ARG_WITH(gc,
|
2011-05-13 10:09:25 +02:00
|
|
|
[AS_HELP_STRING([--with-gc={page,zone}],
|
2013-01-24 16:13:46 +01:00
|
|
|
[this option is not supported anymore. It used to choose
|
|
|
|
the garbage collection mechanism to use with the compiler])],
|
|
|
|
[AC_MSG_ERROR([Configure option --with-gc is only supported up to GCC 4.7.x])],
|
|
|
|
[])
|
1999-10-07 10:15:19 +02:00
|
|
|
|
configure.ac: Add --enable-build-with-cxx.
./: * configure.ac: Add --enable-build-with-cxx. When set, add c++ to
boot_languages. Only bootstrap target libraries listed in
target_libs for some boot language. Add --with-stage1-ldflags,
--with-stage1-libs, --with-boot-ldflags, --with-boot-libs. Remove
with_host_libstdcxx from ppllibs. Only add -fkeep-inline-functions
if not building with C++.
* Makefile.def: For target_module libstdc++-v3, set bootstrap=true.
* Makefile.tpl (STAGE1_LDFLAGS, STAGE1_LIBS): New variables.
(POSTSTAGE1_LDFLAGS, POSTSTAGE1_LIBS): New variables.
(HOST_EXPORTS): Add STAGE1_LDFLAGS to LDFLAGS. Export HOST_LIBS.
(POSTSTAGE1_HOST_EXPORTS): Set CXX and CXX_FOR_BUILD. Add
POSTSTAGE1_LDFLAGS to LDFLAGS. Export HOST_LIBS.
(POSTSTAGE1_FLAGS_TO_PASS): Likewise.
* configure, Makefile.in: Rebuild.
gcc/:
* configure.ac: Invoke AC_PROG_CXX. Separate C specific warnings
from loose_warn into c_loose_warn and from strict_warn into
c_strict_warn. Set and substitute warn_cxxflags. Check for
--enable-build-with-cxx. Set and substitute
ENABLE_BUILD_WITH_CXX. Set and substitute HOST_LIBS.
* Makefile.in (CXXFLAGS): New variable.
(C_LOOSE_WARN, C_STRICT_WARN): New variables.
(GCC_WARN_CFLAGS): Add $(C_LOOSE_WARN). Add $(C_STRICT_WARN) if
the default is the same as $(STRICT_WARN).
(GCC_WARN_CXXFLAGS, WARN_CXXFLAGS): New variables.
(CXX): New variable.
(COMPILER): New value if ENABLE_BUILD_WITH_CXX.
(COMPILER_FLAGS, LINKER, LINKER_FLAGS): Likewise.
(ALL_COMPILERFLAGS, ALL_LINKERFLAGS): Likewise.
(HOST_LIBS): New variable.
(GCC_CFLAGS): Add $(C_LOOSE_WARN).
(ALL_CXXFLAGS): New variable.
(LIBS, BACKENDLIBS): Add $(HOST_LIBS).
* doc/install.texi (Configuration): Document
--enable-build-with-cxx, --with-stage1-ldflags,
--with-stage1-libs, --with-boot-ldflags, --with-boot-libs.
* configure: Rebuild.
From-SVN: r148889
2009-06-24 06:03:51 +02:00
|
|
|
# Libraries to use on the host. This will normally be set by the top
|
|
|
|
# level Makefile. Here we simply capture the value for our Makefile.
|
|
|
|
if test -z "${HOST_LIBS+set}"; then
|
|
|
|
HOST_LIBS=
|
|
|
|
fi
|
|
|
|
AC_SUBST(HOST_LIBS)
|
|
|
|
|
2000-09-03 23:09:10 +02:00
|
|
|
# Use the system's zlib library.
|
2015-07-14 16:25:35 +02:00
|
|
|
AM_ZLIB
|
2000-09-03 23:09:10 +02:00
|
|
|
|
2000-05-31 19:46:30 +02:00
|
|
|
dnl Very limited version of automake's enable-maintainer-mode
|
|
|
|
|
|
|
|
AC_MSG_CHECKING([whether to enable maintainer-specific portions of Makefiles])
|
|
|
|
dnl maintainer-mode is disabled by default
|
|
|
|
AC_ARG_ENABLE(maintainer-mode,
|
2011-05-13 10:09:25 +02:00
|
|
|
[AS_HELP_STRING([--enable-maintainer-mode],
|
|
|
|
[enable make rules and dependencies not useful
|
|
|
|
(and sometimes confusing) to the casual installer])],
|
2000-05-31 19:46:30 +02:00
|
|
|
maintainer_mode=$enableval,
|
|
|
|
maintainer_mode=no)
|
|
|
|
|
|
|
|
AC_MSG_RESULT($maintainer_mode)
|
|
|
|
|
|
|
|
if test "$maintainer_mode" = "yes"; then
|
|
|
|
MAINT=''
|
|
|
|
else
|
|
|
|
MAINT='#'
|
|
|
|
fi
|
|
|
|
AC_SUBST(MAINT)dnl
|
|
|
|
|
2013-05-16 17:09:31 +02:00
|
|
|
dnl Whether to prevent multiple front-ends from linking at the same time
|
|
|
|
|
|
|
|
AC_MSG_CHECKING([whether to avoid linking multiple front-ends at once])
|
|
|
|
AC_ARG_ENABLE(link-mutex,
|
|
|
|
[AS_HELP_STRING([--enable-link-mutex],
|
|
|
|
[avoid linking multiple front-ends at once to avoid thrashing
|
|
|
|
on the build machine])],
|
|
|
|
do_link_mutex=$enableval,
|
|
|
|
do_link_mutex=no)
|
|
|
|
AC_MSG_RESULT($do_link_mutex)
|
|
|
|
|
|
|
|
if test "$do_link_mutex" = "yes"; then
|
|
|
|
DO_LINK_MUTEX=true
|
|
|
|
else
|
|
|
|
DO_LINK_MUTEX=false
|
|
|
|
fi
|
|
|
|
AC_SUBST(DO_LINK_MUTEX)
|
|
|
|
|
2004-02-29 21:43:45 +01:00
|
|
|
# --------------
|
|
|
|
# Language hooks
|
|
|
|
# --------------
|
|
|
|
|
1997-07-19 04:27:38 +02:00
|
|
|
# Make empty files to contain the specs and options for each language.
|
|
|
|
# Then add #include lines to for a compiler that has specs and/or options.
|
|
|
|
|
re PR bootstrap/25670 (build fail with 'make all-gcc')
2006-02-20 Paolo Bonzini <bonzini@gnu.org>
PR bootstrap/25670
* Makefile.tpl ([+compare-target+]): Print explanation messages.
* Makefile.def (ADAFLAGS, BOOT_ADAFLAGS, LANGUAGES): New flags_to_pass.
* Makefile.tpl (BASE_FLAGS_TO_PASS): Support optional flags_to_pass.
(EXTRA_GCC_FLAGS): Remove ADAFLAGS, BOOT_ADAFLAGS, LANGUAGES,
BUILD_PREFIX, BUILD_PREFIX_1.
* configure.in: (BUILD_PREFIX, BUILD_PREFIX_1): Don't substitute.
* Makefile.def (bootstrap stage 1): Pass LIBCFLAGS too.
* Makefile.tpl (POSTSTAGE1_FLAGS_TO_PASS): Override LIBCFLAGS too.
* Makefile.tpl (configure-stage[+id+]-[+prefix+][+module+],
all-stage[+id+]-[+prefix+][+module+], : Use $(current_stage) instead
of `cat stage_current`. Always provide the `r' and `s' variables.
(clean-stage[+id+]-[+prefix+][+module+]): Likewise, and make it into
a single shell execution.
(configure-[+prefix+][+module+], all-[+prefix+][+module+]): For
bootstrapped modules, make the stage1 module if the build was not
started yet, else build the current stage.
(all-host, all-target): Omit bootstrapped modules (if bootstrapping).
(all-build, all-host, all-target, [+make_target+]-host,
[+make_target+]-target): Do not use \-continued lines.
(target modules): Depend on stage_last, not all-gcc, if bootstrapping.
(current_stage, restrap, stage_last): New.
* Makefile.in: Regenerate.
* configure: Regenerate.
gcc:
2006-02-20 Paolo Bonzini <bonzini@gnu.org>
PR bootstrap/25476
* Makefile.in (LDFLAGS): Define from autoconf substitution.
* Makefile.in (BOOTSTRAPPING): New.
(quickstrap): New definition if BOOTSTRAPPING=yes.
* Makefile.in (CONFIG_LANGUAGES): Substitute all_selected_languages.
* configure.ac: Substitute all_selected_languages with the languages
that were configured. For all the other variables except
lang_specs_files, include all the languages in the tree.
* configure: Regenerate.
* Makefile.in (stmp-fixinc): Copy includes from the prev-gcc directory,
if there is one. Run the commands to run fixincludes in the same
subshell.
* doc/makefile.texi: Document new makefile targets from toplevel bootstrap.
* doc/install.texi: Document exact conventions for searching target tools.
Document --with-build-time-tools. Document toplevel bootstrap. Document
something more about building an Ada cross-compiler. Don't list GNU Make
requirements which affect all platforms.
From-SVN: r111295
2006-02-20 09:29:17 +01:00
|
|
|
subdirs=
|
2003-06-14 14:26:36 +02:00
|
|
|
lang_opt_files=
|
1997-07-19 04:27:38 +02:00
|
|
|
lang_specs_files=
|
1998-08-30 17:50:47 +02:00
|
|
|
lang_tree_files=
|
1997-07-19 04:27:38 +02:00
|
|
|
# These (without "all_") are set in each config-lang.in.
|
|
|
|
# `language' must be a single word so is spelled singularly.
|
|
|
|
all_languages=
|
|
|
|
all_compilers=
|
2010-10-18 11:39:15 +02:00
|
|
|
all_outputs='Makefile'
|
1997-07-19 04:27:38 +02:00
|
|
|
# List of language makefile fragments.
|
2003-08-31 08:07:42 +02:00
|
|
|
all_lang_makefrags=
|
gengtype.c: Don't include gtyp-gen.h.
* gengtype.c: Don't include gtyp-gen.h.
(srcdir): Declare here.
(base_files, lang_dir_names): Allocate dynamically.
(gt_files, num_gt_files, num_lang_dirs): New globals.
(measure_input_list, read_input_line, read_input_list)
(set_lang_bitmap): New functions.
(get_base_file_bitmap): Rename get_lang_bitmap and drastically
simplify, relying on read_input_list to set up the bitmaps.
(main): Arguments are no longer unused. Check for correct number
of command line arguments, set srcdir and srcdir_len, then call
read_input_list, before doing anything else. No need to worry
about duplicates in main loop.
* configure.ac: Simplify the calculation of all_gtfiles.
Put language tags in there. Don't set or substitute
all_gtfiles_files_langs or all_gtfiles_files_frags.
* Makefile.in: Revamp the way gengtype is invoked, now that it
takes a file on its command line with a much simpler format.
Remove or replace with gtyp-input.list all references to gtyp-gen.h.
(GTFILES): Remove duplicates and C source files.
* c-config-lang.in, cp/config-lang.in, objc/config-lang.in
* objcp/config-lang.in: Add c-pragma.h to gtfiles.
* configure: Regenerate.
From-SVN: r123234
2007-03-26 23:07:27 +02:00
|
|
|
# Additional files for gengtype
|
2002-07-27 22:54:52 +02:00
|
|
|
all_gtfiles="$target_gtfiles"
|
1997-07-19 04:27:38 +02:00
|
|
|
|
re PR bootstrap/25670 (build fail with 'make all-gcc')
2006-02-20 Paolo Bonzini <bonzini@gnu.org>
PR bootstrap/25670
* Makefile.tpl ([+compare-target+]): Print explanation messages.
* Makefile.def (ADAFLAGS, BOOT_ADAFLAGS, LANGUAGES): New flags_to_pass.
* Makefile.tpl (BASE_FLAGS_TO_PASS): Support optional flags_to_pass.
(EXTRA_GCC_FLAGS): Remove ADAFLAGS, BOOT_ADAFLAGS, LANGUAGES,
BUILD_PREFIX, BUILD_PREFIX_1.
* configure.in: (BUILD_PREFIX, BUILD_PREFIX_1): Don't substitute.
* Makefile.def (bootstrap stage 1): Pass LIBCFLAGS too.
* Makefile.tpl (POSTSTAGE1_FLAGS_TO_PASS): Override LIBCFLAGS too.
* Makefile.tpl (configure-stage[+id+]-[+prefix+][+module+],
all-stage[+id+]-[+prefix+][+module+], : Use $(current_stage) instead
of `cat stage_current`. Always provide the `r' and `s' variables.
(clean-stage[+id+]-[+prefix+][+module+]): Likewise, and make it into
a single shell execution.
(configure-[+prefix+][+module+], all-[+prefix+][+module+]): For
bootstrapped modules, make the stage1 module if the build was not
started yet, else build the current stage.
(all-host, all-target): Omit bootstrapped modules (if bootstrapping).
(all-build, all-host, all-target, [+make_target+]-host,
[+make_target+]-target): Do not use \-continued lines.
(target modules): Depend on stage_last, not all-gcc, if bootstrapping.
(current_stage, restrap, stage_last): New.
* Makefile.in: Regenerate.
* configure: Regenerate.
gcc:
2006-02-20 Paolo Bonzini <bonzini@gnu.org>
PR bootstrap/25476
* Makefile.in (LDFLAGS): Define from autoconf substitution.
* Makefile.in (BOOTSTRAPPING): New.
(quickstrap): New definition if BOOTSTRAPPING=yes.
* Makefile.in (CONFIG_LANGUAGES): Substitute all_selected_languages.
* configure.ac: Substitute all_selected_languages with the languages
that were configured. For all the other variables except
lang_specs_files, include all the languages in the tree.
* configure: Regenerate.
* Makefile.in (stmp-fixinc): Copy includes from the prev-gcc directory,
if there is one. Run the commands to run fixincludes in the same
subshell.
* doc/makefile.texi: Document new makefile targets from toplevel bootstrap.
* doc/install.texi: Document exact conventions for searching target tools.
Document --with-build-time-tools. Document toplevel bootstrap. Document
something more about building an Ada cross-compiler. Don't list GNU Make
requirements which affect all platforms.
From-SVN: r111295
2006-02-20 09:29:17 +01:00
|
|
|
# These are the languages that are set in --enable-languages,
|
|
|
|
# and are available in the GCC tree.
|
|
|
|
all_selected_languages=
|
|
|
|
|
1997-07-19 04:27:38 +02:00
|
|
|
# Add the language fragments.
|
|
|
|
# Languages are added via two mechanisms. Some information must be
|
|
|
|
# recorded in makefile variables, these are defined in config-lang.in.
|
|
|
|
# We accumulate them and plug them into the main Makefile.
|
|
|
|
# The other mechanism is a set of hooks for each of the main targets
|
|
|
|
# like `clean', `install', etc.
|
|
|
|
|
|
|
|
language_hooks="Make-hooks"
|
|
|
|
|
re PR bootstrap/25670 (build fail with 'make all-gcc')
2006-02-20 Paolo Bonzini <bonzini@gnu.org>
PR bootstrap/25670
* Makefile.tpl ([+compare-target+]): Print explanation messages.
* Makefile.def (ADAFLAGS, BOOT_ADAFLAGS, LANGUAGES): New flags_to_pass.
* Makefile.tpl (BASE_FLAGS_TO_PASS): Support optional flags_to_pass.
(EXTRA_GCC_FLAGS): Remove ADAFLAGS, BOOT_ADAFLAGS, LANGUAGES,
BUILD_PREFIX, BUILD_PREFIX_1.
* configure.in: (BUILD_PREFIX, BUILD_PREFIX_1): Don't substitute.
* Makefile.def (bootstrap stage 1): Pass LIBCFLAGS too.
* Makefile.tpl (POSTSTAGE1_FLAGS_TO_PASS): Override LIBCFLAGS too.
* Makefile.tpl (configure-stage[+id+]-[+prefix+][+module+],
all-stage[+id+]-[+prefix+][+module+], : Use $(current_stage) instead
of `cat stage_current`. Always provide the `r' and `s' variables.
(clean-stage[+id+]-[+prefix+][+module+]): Likewise, and make it into
a single shell execution.
(configure-[+prefix+][+module+], all-[+prefix+][+module+]): For
bootstrapped modules, make the stage1 module if the build was not
started yet, else build the current stage.
(all-host, all-target): Omit bootstrapped modules (if bootstrapping).
(all-build, all-host, all-target, [+make_target+]-host,
[+make_target+]-target): Do not use \-continued lines.
(target modules): Depend on stage_last, not all-gcc, if bootstrapping.
(current_stage, restrap, stage_last): New.
* Makefile.in: Regenerate.
* configure: Regenerate.
gcc:
2006-02-20 Paolo Bonzini <bonzini@gnu.org>
PR bootstrap/25476
* Makefile.in (LDFLAGS): Define from autoconf substitution.
* Makefile.in (BOOTSTRAPPING): New.
(quickstrap): New definition if BOOTSTRAPPING=yes.
* Makefile.in (CONFIG_LANGUAGES): Substitute all_selected_languages.
* configure.ac: Substitute all_selected_languages with the languages
that were configured. For all the other variables except
lang_specs_files, include all the languages in the tree.
* configure: Regenerate.
* Makefile.in (stmp-fixinc): Copy includes from the prev-gcc directory,
if there is one. Run the commands to run fixincludes in the same
subshell.
* doc/makefile.texi: Document new makefile targets from toplevel bootstrap.
* doc/install.texi: Document exact conventions for searching target tools.
Document --with-build-time-tools. Document toplevel bootstrap. Document
something more about building an Ada cross-compiler. Don't list GNU Make
requirements which affect all platforms.
From-SVN: r111295
2006-02-20 09:29:17 +01:00
|
|
|
for lang in ${srcdir}/*/config-lang.in
|
1997-07-19 04:27:38 +02:00
|
|
|
do
|
re PR bootstrap/25670 (build fail with 'make all-gcc')
2006-02-20 Paolo Bonzini <bonzini@gnu.org>
PR bootstrap/25670
* Makefile.tpl ([+compare-target+]): Print explanation messages.
* Makefile.def (ADAFLAGS, BOOT_ADAFLAGS, LANGUAGES): New flags_to_pass.
* Makefile.tpl (BASE_FLAGS_TO_PASS): Support optional flags_to_pass.
(EXTRA_GCC_FLAGS): Remove ADAFLAGS, BOOT_ADAFLAGS, LANGUAGES,
BUILD_PREFIX, BUILD_PREFIX_1.
* configure.in: (BUILD_PREFIX, BUILD_PREFIX_1): Don't substitute.
* Makefile.def (bootstrap stage 1): Pass LIBCFLAGS too.
* Makefile.tpl (POSTSTAGE1_FLAGS_TO_PASS): Override LIBCFLAGS too.
* Makefile.tpl (configure-stage[+id+]-[+prefix+][+module+],
all-stage[+id+]-[+prefix+][+module+], : Use $(current_stage) instead
of `cat stage_current`. Always provide the `r' and `s' variables.
(clean-stage[+id+]-[+prefix+][+module+]): Likewise, and make it into
a single shell execution.
(configure-[+prefix+][+module+], all-[+prefix+][+module+]): For
bootstrapped modules, make the stage1 module if the build was not
started yet, else build the current stage.
(all-host, all-target): Omit bootstrapped modules (if bootstrapping).
(all-build, all-host, all-target, [+make_target+]-host,
[+make_target+]-target): Do not use \-continued lines.
(target modules): Depend on stage_last, not all-gcc, if bootstrapping.
(current_stage, restrap, stage_last): New.
* Makefile.in: Regenerate.
* configure: Regenerate.
gcc:
2006-02-20 Paolo Bonzini <bonzini@gnu.org>
PR bootstrap/25476
* Makefile.in (LDFLAGS): Define from autoconf substitution.
* Makefile.in (BOOTSTRAPPING): New.
(quickstrap): New definition if BOOTSTRAPPING=yes.
* Makefile.in (CONFIG_LANGUAGES): Substitute all_selected_languages.
* configure.ac: Substitute all_selected_languages with the languages
that were configured. For all the other variables except
lang_specs_files, include all the languages in the tree.
* configure: Regenerate.
* Makefile.in (stmp-fixinc): Copy includes from the prev-gcc directory,
if there is one. Run the commands to run fixincludes in the same
subshell.
* doc/makefile.texi: Document new makefile targets from toplevel bootstrap.
* doc/install.texi: Document exact conventions for searching target tools.
Document --with-build-time-tools. Document toplevel bootstrap. Document
something more about building an Ada cross-compiler. Don't list GNU Make
requirements which affect all platforms.
From-SVN: r111295
2006-02-20 09:29:17 +01:00
|
|
|
changequote(,)dnl
|
2006-07-03 09:58:08 +02:00
|
|
|
test "$lang" = "${srcdir}/*/config-lang.in" && continue
|
|
|
|
|
re PR bootstrap/25670 (build fail with 'make all-gcc')
2006-02-20 Paolo Bonzini <bonzini@gnu.org>
PR bootstrap/25670
* Makefile.tpl ([+compare-target+]): Print explanation messages.
* Makefile.def (ADAFLAGS, BOOT_ADAFLAGS, LANGUAGES): New flags_to_pass.
* Makefile.tpl (BASE_FLAGS_TO_PASS): Support optional flags_to_pass.
(EXTRA_GCC_FLAGS): Remove ADAFLAGS, BOOT_ADAFLAGS, LANGUAGES,
BUILD_PREFIX, BUILD_PREFIX_1.
* configure.in: (BUILD_PREFIX, BUILD_PREFIX_1): Don't substitute.
* Makefile.def (bootstrap stage 1): Pass LIBCFLAGS too.
* Makefile.tpl (POSTSTAGE1_FLAGS_TO_PASS): Override LIBCFLAGS too.
* Makefile.tpl (configure-stage[+id+]-[+prefix+][+module+],
all-stage[+id+]-[+prefix+][+module+], : Use $(current_stage) instead
of `cat stage_current`. Always provide the `r' and `s' variables.
(clean-stage[+id+]-[+prefix+][+module+]): Likewise, and make it into
a single shell execution.
(configure-[+prefix+][+module+], all-[+prefix+][+module+]): For
bootstrapped modules, make the stage1 module if the build was not
started yet, else build the current stage.
(all-host, all-target): Omit bootstrapped modules (if bootstrapping).
(all-build, all-host, all-target, [+make_target+]-host,
[+make_target+]-target): Do not use \-continued lines.
(target modules): Depend on stage_last, not all-gcc, if bootstrapping.
(current_stage, restrap, stage_last): New.
* Makefile.in: Regenerate.
* configure: Regenerate.
gcc:
2006-02-20 Paolo Bonzini <bonzini@gnu.org>
PR bootstrap/25476
* Makefile.in (LDFLAGS): Define from autoconf substitution.
* Makefile.in (BOOTSTRAPPING): New.
(quickstrap): New definition if BOOTSTRAPPING=yes.
* Makefile.in (CONFIG_LANGUAGES): Substitute all_selected_languages.
* configure.ac: Substitute all_selected_languages with the languages
that were configured. For all the other variables except
lang_specs_files, include all the languages in the tree.
* configure: Regenerate.
* Makefile.in (stmp-fixinc): Copy includes from the prev-gcc directory,
if there is one. Run the commands to run fixincludes in the same
subshell.
* doc/makefile.texi: Document new makefile targets from toplevel bootstrap.
* doc/install.texi: Document exact conventions for searching target tools.
Document --with-build-time-tools. Document toplevel bootstrap. Document
something more about building an Ada cross-compiler. Don't list GNU Make
requirements which affect all platforms.
From-SVN: r111295
2006-02-20 09:29:17 +01:00
|
|
|
lang_alias=`sed -n -e 's,^language=['"'"'"'"]\(.*\)["'"'"'"'].*$,\1,p' -e 's,^language=\([^ ]*\).*$,\1,p' $lang`
|
|
|
|
if test "x$lang_alias" = x
|
|
|
|
then
|
|
|
|
echo "$lang doesn't set \$language." 1>&2
|
|
|
|
exit 1
|
|
|
|
fi
|
|
|
|
subdir="`echo $lang | sed -e 's,^.*/\([^/]*\)/config-lang.in$,\1,'`"
|
|
|
|
subdirs="$subdirs $subdir"
|
2008-05-14 15:20:43 +02:00
|
|
|
|
|
|
|
# $gcc_subdir is where the gcc integration files are to be found
|
|
|
|
# for a language, both for internal compiler purposes (compiler
|
|
|
|
# sources implementing front-end to GCC tree converters), and for
|
|
|
|
# build infrastructure purposes (Make-lang.in, etc.)
|
|
|
|
#
|
|
|
|
# This will be <subdir> (relative to $srcdir) if a line like
|
|
|
|
# gcc_subdir="<subdir>" or gcc_subdir=<subdir>
|
|
|
|
# is found in <langdir>/config-lang.in, and will remain <langdir>
|
|
|
|
# otherwise.
|
|
|
|
#
|
|
|
|
# Except for the language alias (fetched above), the regular
|
|
|
|
# "config-lang.in" contents are always retrieved from $gcc_subdir,
|
|
|
|
# so a <langdir>/config-lang.in setting gcc_subdir typically sets
|
|
|
|
# only this and the language alias.
|
|
|
|
|
|
|
|
gcc_subdir=`sed -n -e 's,^gcc_subdir=['"'"'"'"]\(.*\)["'"'"'"'].*$,\1,p' -e 's,^gcc_subdir=\([^ ]*\).*$,\1,p' $lang`
|
|
|
|
if [ "$gcc_subdir" = "" ]; then
|
|
|
|
gcc_subdir="$subdir"
|
|
|
|
fi
|
|
|
|
|
re PR bootstrap/25670 (build fail with 'make all-gcc')
2006-02-20 Paolo Bonzini <bonzini@gnu.org>
PR bootstrap/25670
* Makefile.tpl ([+compare-target+]): Print explanation messages.
* Makefile.def (ADAFLAGS, BOOT_ADAFLAGS, LANGUAGES): New flags_to_pass.
* Makefile.tpl (BASE_FLAGS_TO_PASS): Support optional flags_to_pass.
(EXTRA_GCC_FLAGS): Remove ADAFLAGS, BOOT_ADAFLAGS, LANGUAGES,
BUILD_PREFIX, BUILD_PREFIX_1.
* configure.in: (BUILD_PREFIX, BUILD_PREFIX_1): Don't substitute.
* Makefile.def (bootstrap stage 1): Pass LIBCFLAGS too.
* Makefile.tpl (POSTSTAGE1_FLAGS_TO_PASS): Override LIBCFLAGS too.
* Makefile.tpl (configure-stage[+id+]-[+prefix+][+module+],
all-stage[+id+]-[+prefix+][+module+], : Use $(current_stage) instead
of `cat stage_current`. Always provide the `r' and `s' variables.
(clean-stage[+id+]-[+prefix+][+module+]): Likewise, and make it into
a single shell execution.
(configure-[+prefix+][+module+], all-[+prefix+][+module+]): For
bootstrapped modules, make the stage1 module if the build was not
started yet, else build the current stage.
(all-host, all-target): Omit bootstrapped modules (if bootstrapping).
(all-build, all-host, all-target, [+make_target+]-host,
[+make_target+]-target): Do not use \-continued lines.
(target modules): Depend on stage_last, not all-gcc, if bootstrapping.
(current_stage, restrap, stage_last): New.
* Makefile.in: Regenerate.
* configure: Regenerate.
gcc:
2006-02-20 Paolo Bonzini <bonzini@gnu.org>
PR bootstrap/25476
* Makefile.in (LDFLAGS): Define from autoconf substitution.
* Makefile.in (BOOTSTRAPPING): New.
(quickstrap): New definition if BOOTSTRAPPING=yes.
* Makefile.in (CONFIG_LANGUAGES): Substitute all_selected_languages.
* configure.ac: Substitute all_selected_languages with the languages
that were configured. For all the other variables except
lang_specs_files, include all the languages in the tree.
* configure: Regenerate.
* Makefile.in (stmp-fixinc): Copy includes from the prev-gcc directory,
if there is one. Run the commands to run fixincludes in the same
subshell.
* doc/makefile.texi: Document new makefile targets from toplevel bootstrap.
* doc/install.texi: Document exact conventions for searching target tools.
Document --with-build-time-tools. Document toplevel bootstrap. Document
something more about building an Ada cross-compiler. Don't list GNU Make
requirements which affect all platforms.
From-SVN: r111295
2006-02-20 09:29:17 +01:00
|
|
|
case ",$enable_languages," in
|
|
|
|
*,$lang_alias,*)
|
|
|
|
all_selected_languages="$all_selected_languages $lang_alias"
|
2008-05-14 15:20:43 +02:00
|
|
|
if test -f $srcdir/$gcc_subdir/lang-specs.h; then
|
|
|
|
lang_specs_files="$lang_specs_files $srcdir/$gcc_subdir/lang-specs.h"
|
re PR bootstrap/25670 (build fail with 'make all-gcc')
2006-02-20 Paolo Bonzini <bonzini@gnu.org>
PR bootstrap/25670
* Makefile.tpl ([+compare-target+]): Print explanation messages.
* Makefile.def (ADAFLAGS, BOOT_ADAFLAGS, LANGUAGES): New flags_to_pass.
* Makefile.tpl (BASE_FLAGS_TO_PASS): Support optional flags_to_pass.
(EXTRA_GCC_FLAGS): Remove ADAFLAGS, BOOT_ADAFLAGS, LANGUAGES,
BUILD_PREFIX, BUILD_PREFIX_1.
* configure.in: (BUILD_PREFIX, BUILD_PREFIX_1): Don't substitute.
* Makefile.def (bootstrap stage 1): Pass LIBCFLAGS too.
* Makefile.tpl (POSTSTAGE1_FLAGS_TO_PASS): Override LIBCFLAGS too.
* Makefile.tpl (configure-stage[+id+]-[+prefix+][+module+],
all-stage[+id+]-[+prefix+][+module+], : Use $(current_stage) instead
of `cat stage_current`. Always provide the `r' and `s' variables.
(clean-stage[+id+]-[+prefix+][+module+]): Likewise, and make it into
a single shell execution.
(configure-[+prefix+][+module+], all-[+prefix+][+module+]): For
bootstrapped modules, make the stage1 module if the build was not
started yet, else build the current stage.
(all-host, all-target): Omit bootstrapped modules (if bootstrapping).
(all-build, all-host, all-target, [+make_target+]-host,
[+make_target+]-target): Do not use \-continued lines.
(target modules): Depend on stage_last, not all-gcc, if bootstrapping.
(current_stage, restrap, stage_last): New.
* Makefile.in: Regenerate.
* configure: Regenerate.
gcc:
2006-02-20 Paolo Bonzini <bonzini@gnu.org>
PR bootstrap/25476
* Makefile.in (LDFLAGS): Define from autoconf substitution.
* Makefile.in (BOOTSTRAPPING): New.
(quickstrap): New definition if BOOTSTRAPPING=yes.
* Makefile.in (CONFIG_LANGUAGES): Substitute all_selected_languages.
* configure.ac: Substitute all_selected_languages with the languages
that were configured. For all the other variables except
lang_specs_files, include all the languages in the tree.
* configure: Regenerate.
* Makefile.in (stmp-fixinc): Copy includes from the prev-gcc directory,
if there is one. Run the commands to run fixincludes in the same
subshell.
* doc/makefile.texi: Document new makefile targets from toplevel bootstrap.
* doc/install.texi: Document exact conventions for searching target tools.
Document --with-build-time-tools. Document toplevel bootstrap. Document
something more about building an Ada cross-compiler. Don't list GNU Make
requirements which affect all platforms.
From-SVN: r111295
2006-02-20 09:29:17 +01:00
|
|
|
fi
|
|
|
|
;;
|
|
|
|
esac
|
|
|
|
changequote([,])dnl
|
|
|
|
|
|
|
|
language=
|
|
|
|
boot_language=
|
|
|
|
compilers=
|
|
|
|
outputs=
|
|
|
|
gtfiles=
|
2006-07-03 09:58:08 +02:00
|
|
|
subdir_requires=
|
2008-05-14 15:20:43 +02:00
|
|
|
. ${srcdir}/$gcc_subdir/config-lang.in
|
re PR bootstrap/25670 (build fail with 'make all-gcc')
2006-02-20 Paolo Bonzini <bonzini@gnu.org>
PR bootstrap/25670
* Makefile.tpl ([+compare-target+]): Print explanation messages.
* Makefile.def (ADAFLAGS, BOOT_ADAFLAGS, LANGUAGES): New flags_to_pass.
* Makefile.tpl (BASE_FLAGS_TO_PASS): Support optional flags_to_pass.
(EXTRA_GCC_FLAGS): Remove ADAFLAGS, BOOT_ADAFLAGS, LANGUAGES,
BUILD_PREFIX, BUILD_PREFIX_1.
* configure.in: (BUILD_PREFIX, BUILD_PREFIX_1): Don't substitute.
* Makefile.def (bootstrap stage 1): Pass LIBCFLAGS too.
* Makefile.tpl (POSTSTAGE1_FLAGS_TO_PASS): Override LIBCFLAGS too.
* Makefile.tpl (configure-stage[+id+]-[+prefix+][+module+],
all-stage[+id+]-[+prefix+][+module+], : Use $(current_stage) instead
of `cat stage_current`. Always provide the `r' and `s' variables.
(clean-stage[+id+]-[+prefix+][+module+]): Likewise, and make it into
a single shell execution.
(configure-[+prefix+][+module+], all-[+prefix+][+module+]): For
bootstrapped modules, make the stage1 module if the build was not
started yet, else build the current stage.
(all-host, all-target): Omit bootstrapped modules (if bootstrapping).
(all-build, all-host, all-target, [+make_target+]-host,
[+make_target+]-target): Do not use \-continued lines.
(target modules): Depend on stage_last, not all-gcc, if bootstrapping.
(current_stage, restrap, stage_last): New.
* Makefile.in: Regenerate.
* configure: Regenerate.
gcc:
2006-02-20 Paolo Bonzini <bonzini@gnu.org>
PR bootstrap/25476
* Makefile.in (LDFLAGS): Define from autoconf substitution.
* Makefile.in (BOOTSTRAPPING): New.
(quickstrap): New definition if BOOTSTRAPPING=yes.
* Makefile.in (CONFIG_LANGUAGES): Substitute all_selected_languages.
* configure.ac: Substitute all_selected_languages with the languages
that were configured. For all the other variables except
lang_specs_files, include all the languages in the tree.
* configure: Regenerate.
* Makefile.in (stmp-fixinc): Copy includes from the prev-gcc directory,
if there is one. Run the commands to run fixincludes in the same
subshell.
* doc/makefile.texi: Document new makefile targets from toplevel bootstrap.
* doc/install.texi: Document exact conventions for searching target tools.
Document --with-build-time-tools. Document toplevel bootstrap. Document
something more about building an Ada cross-compiler. Don't list GNU Make
requirements which affect all platforms.
From-SVN: r111295
2006-02-20 09:29:17 +01:00
|
|
|
if test "x$language" = x
|
|
|
|
then
|
2008-05-14 15:20:43 +02:00
|
|
|
echo "${srcdir}/$gcc_subdir/config-lang.in doesn't set \$language." 1>&2
|
re PR bootstrap/25670 (build fail with 'make all-gcc')
2006-02-20 Paolo Bonzini <bonzini@gnu.org>
PR bootstrap/25670
* Makefile.tpl ([+compare-target+]): Print explanation messages.
* Makefile.def (ADAFLAGS, BOOT_ADAFLAGS, LANGUAGES): New flags_to_pass.
* Makefile.tpl (BASE_FLAGS_TO_PASS): Support optional flags_to_pass.
(EXTRA_GCC_FLAGS): Remove ADAFLAGS, BOOT_ADAFLAGS, LANGUAGES,
BUILD_PREFIX, BUILD_PREFIX_1.
* configure.in: (BUILD_PREFIX, BUILD_PREFIX_1): Don't substitute.
* Makefile.def (bootstrap stage 1): Pass LIBCFLAGS too.
* Makefile.tpl (POSTSTAGE1_FLAGS_TO_PASS): Override LIBCFLAGS too.
* Makefile.tpl (configure-stage[+id+]-[+prefix+][+module+],
all-stage[+id+]-[+prefix+][+module+], : Use $(current_stage) instead
of `cat stage_current`. Always provide the `r' and `s' variables.
(clean-stage[+id+]-[+prefix+][+module+]): Likewise, and make it into
a single shell execution.
(configure-[+prefix+][+module+], all-[+prefix+][+module+]): For
bootstrapped modules, make the stage1 module if the build was not
started yet, else build the current stage.
(all-host, all-target): Omit bootstrapped modules (if bootstrapping).
(all-build, all-host, all-target, [+make_target+]-host,
[+make_target+]-target): Do not use \-continued lines.
(target modules): Depend on stage_last, not all-gcc, if bootstrapping.
(current_stage, restrap, stage_last): New.
* Makefile.in: Regenerate.
* configure: Regenerate.
gcc:
2006-02-20 Paolo Bonzini <bonzini@gnu.org>
PR bootstrap/25476
* Makefile.in (LDFLAGS): Define from autoconf substitution.
* Makefile.in (BOOTSTRAPPING): New.
(quickstrap): New definition if BOOTSTRAPPING=yes.
* Makefile.in (CONFIG_LANGUAGES): Substitute all_selected_languages.
* configure.ac: Substitute all_selected_languages with the languages
that were configured. For all the other variables except
lang_specs_files, include all the languages in the tree.
* configure: Regenerate.
* Makefile.in (stmp-fixinc): Copy includes from the prev-gcc directory,
if there is one. Run the commands to run fixincludes in the same
subshell.
* doc/makefile.texi: Document new makefile targets from toplevel bootstrap.
* doc/install.texi: Document exact conventions for searching target tools.
Document --with-build-time-tools. Document toplevel bootstrap. Document
something more about building an Ada cross-compiler. Don't list GNU Make
requirements which affect all platforms.
From-SVN: r111295
2006-02-20 09:29:17 +01:00
|
|
|
exit 1
|
|
|
|
fi
|
2006-07-03 09:58:08 +02:00
|
|
|
|
|
|
|
ok=:
|
|
|
|
case ",$enable_languages," in
|
|
|
|
*,$lang_alias,*) ;;
|
|
|
|
*)
|
|
|
|
for i in $subdir_requires; do
|
2006-07-03 11:25:46 +02:00
|
|
|
test -f "${srcdir}/$i/config-lang.in" && continue
|
2006-07-03 09:58:08 +02:00
|
|
|
ok=false
|
|
|
|
break
|
|
|
|
done
|
|
|
|
;;
|
|
|
|
esac
|
|
|
|
$ok || continue
|
|
|
|
|
2008-05-14 15:20:43 +02:00
|
|
|
all_lang_makefrags="$all_lang_makefrags \$(srcdir)/$gcc_subdir/Make-lang.in"
|
|
|
|
if test -f $srcdir/$gcc_subdir/lang.opt; then
|
|
|
|
lang_opt_files="$lang_opt_files $srcdir/$gcc_subdir/lang.opt"
|
2010-11-19 18:27:18 +01:00
|
|
|
all_opt_files="$all_opt_files $srcdir/$gcc_subdir/lang.opt"
|
2006-07-03 09:58:08 +02:00
|
|
|
fi
|
2008-05-14 15:20:43 +02:00
|
|
|
if test -f $srcdir/$gcc_subdir/$subdir-tree.def; then
|
|
|
|
lang_tree_files="$lang_tree_files $srcdir/$gcc_subdir/$subdir-tree.def"
|
2006-07-03 09:58:08 +02:00
|
|
|
fi
|
re PR bootstrap/25670 (build fail with 'make all-gcc')
2006-02-20 Paolo Bonzini <bonzini@gnu.org>
PR bootstrap/25670
* Makefile.tpl ([+compare-target+]): Print explanation messages.
* Makefile.def (ADAFLAGS, BOOT_ADAFLAGS, LANGUAGES): New flags_to_pass.
* Makefile.tpl (BASE_FLAGS_TO_PASS): Support optional flags_to_pass.
(EXTRA_GCC_FLAGS): Remove ADAFLAGS, BOOT_ADAFLAGS, LANGUAGES,
BUILD_PREFIX, BUILD_PREFIX_1.
* configure.in: (BUILD_PREFIX, BUILD_PREFIX_1): Don't substitute.
* Makefile.def (bootstrap stage 1): Pass LIBCFLAGS too.
* Makefile.tpl (POSTSTAGE1_FLAGS_TO_PASS): Override LIBCFLAGS too.
* Makefile.tpl (configure-stage[+id+]-[+prefix+][+module+],
all-stage[+id+]-[+prefix+][+module+], : Use $(current_stage) instead
of `cat stage_current`. Always provide the `r' and `s' variables.
(clean-stage[+id+]-[+prefix+][+module+]): Likewise, and make it into
a single shell execution.
(configure-[+prefix+][+module+], all-[+prefix+][+module+]): For
bootstrapped modules, make the stage1 module if the build was not
started yet, else build the current stage.
(all-host, all-target): Omit bootstrapped modules (if bootstrapping).
(all-build, all-host, all-target, [+make_target+]-host,
[+make_target+]-target): Do not use \-continued lines.
(target modules): Depend on stage_last, not all-gcc, if bootstrapping.
(current_stage, restrap, stage_last): New.
* Makefile.in: Regenerate.
* configure: Regenerate.
gcc:
2006-02-20 Paolo Bonzini <bonzini@gnu.org>
PR bootstrap/25476
* Makefile.in (LDFLAGS): Define from autoconf substitution.
* Makefile.in (BOOTSTRAPPING): New.
(quickstrap): New definition if BOOTSTRAPPING=yes.
* Makefile.in (CONFIG_LANGUAGES): Substitute all_selected_languages.
* configure.ac: Substitute all_selected_languages with the languages
that were configured. For all the other variables except
lang_specs_files, include all the languages in the tree.
* configure: Regenerate.
* Makefile.in (stmp-fixinc): Copy includes from the prev-gcc directory,
if there is one. Run the commands to run fixincludes in the same
subshell.
* doc/makefile.texi: Document new makefile targets from toplevel bootstrap.
* doc/install.texi: Document exact conventions for searching target tools.
Document --with-build-time-tools. Document toplevel bootstrap. Document
something more about building an Ada cross-compiler. Don't list GNU Make
requirements which affect all platforms.
From-SVN: r111295
2006-02-20 09:29:17 +01:00
|
|
|
all_languages="$all_languages $language"
|
|
|
|
all_compilers="$all_compilers $compilers"
|
|
|
|
all_outputs="$all_outputs $outputs"
|
gengtype.c: Don't include gtyp-gen.h.
* gengtype.c: Don't include gtyp-gen.h.
(srcdir): Declare here.
(base_files, lang_dir_names): Allocate dynamically.
(gt_files, num_gt_files, num_lang_dirs): New globals.
(measure_input_list, read_input_line, read_input_list)
(set_lang_bitmap): New functions.
(get_base_file_bitmap): Rename get_lang_bitmap and drastically
simplify, relying on read_input_list to set up the bitmaps.
(main): Arguments are no longer unused. Check for correct number
of command line arguments, set srcdir and srcdir_len, then call
read_input_list, before doing anything else. No need to worry
about duplicates in main loop.
* configure.ac: Simplify the calculation of all_gtfiles.
Put language tags in there. Don't set or substitute
all_gtfiles_files_langs or all_gtfiles_files_frags.
* Makefile.in: Revamp the way gengtype is invoked, now that it
takes a file on its command line with a much simpler format.
Remove or replace with gtyp-input.list all references to gtyp-gen.h.
(GTFILES): Remove duplicates and C source files.
* c-config-lang.in, cp/config-lang.in, objc/config-lang.in
* objcp/config-lang.in: Add c-pragma.h to gtfiles.
* configure: Regenerate.
From-SVN: r123234
2007-03-26 23:07:27 +02:00
|
|
|
all_gtfiles="$all_gtfiles [[$subdir]] $gtfiles"
|
2009-10-03 23:10:11 +02:00
|
|
|
case ",$enable_languages," in
|
|
|
|
*,lto,*)
|
|
|
|
AC_DEFINE(ENABLE_LTO, 1, [Define to enable LTO support.])
|
|
|
|
enable_lto=yes
|
|
|
|
AC_SUBST(enable_lto)
|
|
|
|
;;
|
|
|
|
*) ;;
|
|
|
|
esac
|
1997-07-19 04:27:38 +02:00
|
|
|
done
|
|
|
|
|
2001-02-14 02:13:42 +01:00
|
|
|
check_languages=
|
re PR bootstrap/25670 (build fail with 'make all-gcc')
2006-02-20 Paolo Bonzini <bonzini@gnu.org>
PR bootstrap/25670
* Makefile.tpl ([+compare-target+]): Print explanation messages.
* Makefile.def (ADAFLAGS, BOOT_ADAFLAGS, LANGUAGES): New flags_to_pass.
* Makefile.tpl (BASE_FLAGS_TO_PASS): Support optional flags_to_pass.
(EXTRA_GCC_FLAGS): Remove ADAFLAGS, BOOT_ADAFLAGS, LANGUAGES,
BUILD_PREFIX, BUILD_PREFIX_1.
* configure.in: (BUILD_PREFIX, BUILD_PREFIX_1): Don't substitute.
* Makefile.def (bootstrap stage 1): Pass LIBCFLAGS too.
* Makefile.tpl (POSTSTAGE1_FLAGS_TO_PASS): Override LIBCFLAGS too.
* Makefile.tpl (configure-stage[+id+]-[+prefix+][+module+],
all-stage[+id+]-[+prefix+][+module+], : Use $(current_stage) instead
of `cat stage_current`. Always provide the `r' and `s' variables.
(clean-stage[+id+]-[+prefix+][+module+]): Likewise, and make it into
a single shell execution.
(configure-[+prefix+][+module+], all-[+prefix+][+module+]): For
bootstrapped modules, make the stage1 module if the build was not
started yet, else build the current stage.
(all-host, all-target): Omit bootstrapped modules (if bootstrapping).
(all-build, all-host, all-target, [+make_target+]-host,
[+make_target+]-target): Do not use \-continued lines.
(target modules): Depend on stage_last, not all-gcc, if bootstrapping.
(current_stage, restrap, stage_last): New.
* Makefile.in: Regenerate.
* configure: Regenerate.
gcc:
2006-02-20 Paolo Bonzini <bonzini@gnu.org>
PR bootstrap/25476
* Makefile.in (LDFLAGS): Define from autoconf substitution.
* Makefile.in (BOOTSTRAPPING): New.
(quickstrap): New definition if BOOTSTRAPPING=yes.
* Makefile.in (CONFIG_LANGUAGES): Substitute all_selected_languages.
* configure.ac: Substitute all_selected_languages with the languages
that were configured. For all the other variables except
lang_specs_files, include all the languages in the tree.
* configure: Regenerate.
* Makefile.in (stmp-fixinc): Copy includes from the prev-gcc directory,
if there is one. Run the commands to run fixincludes in the same
subshell.
* doc/makefile.texi: Document new makefile targets from toplevel bootstrap.
* doc/install.texi: Document exact conventions for searching target tools.
Document --with-build-time-tools. Document toplevel bootstrap. Document
something more about building an Ada cross-compiler. Don't list GNU Make
requirements which affect all platforms.
From-SVN: r111295
2006-02-20 09:29:17 +01:00
|
|
|
for language in $all_selected_languages
|
2001-02-14 02:13:42 +01:00
|
|
|
do
|
re PR bootstrap/25670 (build fail with 'make all-gcc')
2006-02-20 Paolo Bonzini <bonzini@gnu.org>
PR bootstrap/25670
* Makefile.tpl ([+compare-target+]): Print explanation messages.
* Makefile.def (ADAFLAGS, BOOT_ADAFLAGS, LANGUAGES): New flags_to_pass.
* Makefile.tpl (BASE_FLAGS_TO_PASS): Support optional flags_to_pass.
(EXTRA_GCC_FLAGS): Remove ADAFLAGS, BOOT_ADAFLAGS, LANGUAGES,
BUILD_PREFIX, BUILD_PREFIX_1.
* configure.in: (BUILD_PREFIX, BUILD_PREFIX_1): Don't substitute.
* Makefile.def (bootstrap stage 1): Pass LIBCFLAGS too.
* Makefile.tpl (POSTSTAGE1_FLAGS_TO_PASS): Override LIBCFLAGS too.
* Makefile.tpl (configure-stage[+id+]-[+prefix+][+module+],
all-stage[+id+]-[+prefix+][+module+], : Use $(current_stage) instead
of `cat stage_current`. Always provide the `r' and `s' variables.
(clean-stage[+id+]-[+prefix+][+module+]): Likewise, and make it into
a single shell execution.
(configure-[+prefix+][+module+], all-[+prefix+][+module+]): For
bootstrapped modules, make the stage1 module if the build was not
started yet, else build the current stage.
(all-host, all-target): Omit bootstrapped modules (if bootstrapping).
(all-build, all-host, all-target, [+make_target+]-host,
[+make_target+]-target): Do not use \-continued lines.
(target modules): Depend on stage_last, not all-gcc, if bootstrapping.
(current_stage, restrap, stage_last): New.
* Makefile.in: Regenerate.
* configure: Regenerate.
gcc:
2006-02-20 Paolo Bonzini <bonzini@gnu.org>
PR bootstrap/25476
* Makefile.in (LDFLAGS): Define from autoconf substitution.
* Makefile.in (BOOTSTRAPPING): New.
(quickstrap): New definition if BOOTSTRAPPING=yes.
* Makefile.in (CONFIG_LANGUAGES): Substitute all_selected_languages.
* configure.ac: Substitute all_selected_languages with the languages
that were configured. For all the other variables except
lang_specs_files, include all the languages in the tree.
* configure: Regenerate.
* Makefile.in (stmp-fixinc): Copy includes from the prev-gcc directory,
if there is one. Run the commands to run fixincludes in the same
subshell.
* doc/makefile.texi: Document new makefile targets from toplevel bootstrap.
* doc/install.texi: Document exact conventions for searching target tools.
Document --with-build-time-tools. Document toplevel bootstrap. Document
something more about building an Ada cross-compiler. Don't list GNU Make
requirements which affect all platforms.
From-SVN: r111295
2006-02-20 09:29:17 +01:00
|
|
|
check_languages="$check_languages check-$language"
|
2001-02-14 02:13:42 +01:00
|
|
|
done
|
|
|
|
|
2003-10-06 09:56:16 +02:00
|
|
|
# We link each language in with a set of hooks, reached indirectly via
|
re PR bootstrap/25670 (build fail with 'make all-gcc')
2006-02-20 Paolo Bonzini <bonzini@gnu.org>
PR bootstrap/25670
* Makefile.tpl ([+compare-target+]): Print explanation messages.
* Makefile.def (ADAFLAGS, BOOT_ADAFLAGS, LANGUAGES): New flags_to_pass.
* Makefile.tpl (BASE_FLAGS_TO_PASS): Support optional flags_to_pass.
(EXTRA_GCC_FLAGS): Remove ADAFLAGS, BOOT_ADAFLAGS, LANGUAGES,
BUILD_PREFIX, BUILD_PREFIX_1.
* configure.in: (BUILD_PREFIX, BUILD_PREFIX_1): Don't substitute.
* Makefile.def (bootstrap stage 1): Pass LIBCFLAGS too.
* Makefile.tpl (POSTSTAGE1_FLAGS_TO_PASS): Override LIBCFLAGS too.
* Makefile.tpl (configure-stage[+id+]-[+prefix+][+module+],
all-stage[+id+]-[+prefix+][+module+], : Use $(current_stage) instead
of `cat stage_current`. Always provide the `r' and `s' variables.
(clean-stage[+id+]-[+prefix+][+module+]): Likewise, and make it into
a single shell execution.
(configure-[+prefix+][+module+], all-[+prefix+][+module+]): For
bootstrapped modules, make the stage1 module if the build was not
started yet, else build the current stage.
(all-host, all-target): Omit bootstrapped modules (if bootstrapping).
(all-build, all-host, all-target, [+make_target+]-host,
[+make_target+]-target): Do not use \-continued lines.
(target modules): Depend on stage_last, not all-gcc, if bootstrapping.
(current_stage, restrap, stage_last): New.
* Makefile.in: Regenerate.
* configure: Regenerate.
gcc:
2006-02-20 Paolo Bonzini <bonzini@gnu.org>
PR bootstrap/25476
* Makefile.in (LDFLAGS): Define from autoconf substitution.
* Makefile.in (BOOTSTRAPPING): New.
(quickstrap): New definition if BOOTSTRAPPING=yes.
* Makefile.in (CONFIG_LANGUAGES): Substitute all_selected_languages.
* configure.ac: Substitute all_selected_languages with the languages
that were configured. For all the other variables except
lang_specs_files, include all the languages in the tree.
* configure: Regenerate.
* Makefile.in (stmp-fixinc): Copy includes from the prev-gcc directory,
if there is one. Run the commands to run fixincludes in the same
subshell.
* doc/makefile.texi: Document new makefile targets from toplevel bootstrap.
* doc/install.texi: Document exact conventions for searching target tools.
Document --with-build-time-tools. Document toplevel bootstrap. Document
something more about building an Ada cross-compiler. Don't list GNU Make
requirements which affect all platforms.
From-SVN: r111295
2006-02-20 09:29:17 +01:00
|
|
|
# lang.${target}. Only do so for selected languages.
|
1997-07-19 04:27:38 +02:00
|
|
|
|
|
|
|
rm -f Make-hooks
|
|
|
|
touch Make-hooks
|
2005-12-07 12:40:30 +01:00
|
|
|
target_list="all.cross start.encap rest.encap tags \
|
2010-01-04 02:36:36 +01:00
|
|
|
install-common install-man install-info install-pdf install-html dvi \
|
|
|
|
pdf html uninstall info man srcextra srcman srcinfo \
|
2009-07-15 00:25:23 +02:00
|
|
|
mostlyclean clean distclean maintainer-clean install-plugin"
|
re PR bootstrap/25670 (build fail with 'make all-gcc')
2006-02-20 Paolo Bonzini <bonzini@gnu.org>
PR bootstrap/25670
* Makefile.tpl ([+compare-target+]): Print explanation messages.
* Makefile.def (ADAFLAGS, BOOT_ADAFLAGS, LANGUAGES): New flags_to_pass.
* Makefile.tpl (BASE_FLAGS_TO_PASS): Support optional flags_to_pass.
(EXTRA_GCC_FLAGS): Remove ADAFLAGS, BOOT_ADAFLAGS, LANGUAGES,
BUILD_PREFIX, BUILD_PREFIX_1.
* configure.in: (BUILD_PREFIX, BUILD_PREFIX_1): Don't substitute.
* Makefile.def (bootstrap stage 1): Pass LIBCFLAGS too.
* Makefile.tpl (POSTSTAGE1_FLAGS_TO_PASS): Override LIBCFLAGS too.
* Makefile.tpl (configure-stage[+id+]-[+prefix+][+module+],
all-stage[+id+]-[+prefix+][+module+], : Use $(current_stage) instead
of `cat stage_current`. Always provide the `r' and `s' variables.
(clean-stage[+id+]-[+prefix+][+module+]): Likewise, and make it into
a single shell execution.
(configure-[+prefix+][+module+], all-[+prefix+][+module+]): For
bootstrapped modules, make the stage1 module if the build was not
started yet, else build the current stage.
(all-host, all-target): Omit bootstrapped modules (if bootstrapping).
(all-build, all-host, all-target, [+make_target+]-host,
[+make_target+]-target): Do not use \-continued lines.
(target modules): Depend on stage_last, not all-gcc, if bootstrapping.
(current_stage, restrap, stage_last): New.
* Makefile.in: Regenerate.
* configure: Regenerate.
gcc:
2006-02-20 Paolo Bonzini <bonzini@gnu.org>
PR bootstrap/25476
* Makefile.in (LDFLAGS): Define from autoconf substitution.
* Makefile.in (BOOTSTRAPPING): New.
(quickstrap): New definition if BOOTSTRAPPING=yes.
* Makefile.in (CONFIG_LANGUAGES): Substitute all_selected_languages.
* configure.ac: Substitute all_selected_languages with the languages
that were configured. For all the other variables except
lang_specs_files, include all the languages in the tree.
* configure: Regenerate.
* Makefile.in (stmp-fixinc): Copy includes from the prev-gcc directory,
if there is one. Run the commands to run fixincludes in the same
subshell.
* doc/makefile.texi: Document new makefile targets from toplevel bootstrap.
* doc/install.texi: Document exact conventions for searching target tools.
Document --with-build-time-tools. Document toplevel bootstrap. Document
something more about building an Ada cross-compiler. Don't list GNU Make
requirements which affect all platforms.
From-SVN: r111295
2006-02-20 09:29:17 +01:00
|
|
|
|
1997-07-19 04:27:38 +02:00
|
|
|
for t in $target_list
|
|
|
|
do
|
|
|
|
x=
|
re PR bootstrap/25670 (build fail with 'make all-gcc')
2006-02-20 Paolo Bonzini <bonzini@gnu.org>
PR bootstrap/25670
* Makefile.tpl ([+compare-target+]): Print explanation messages.
* Makefile.def (ADAFLAGS, BOOT_ADAFLAGS, LANGUAGES): New flags_to_pass.
* Makefile.tpl (BASE_FLAGS_TO_PASS): Support optional flags_to_pass.
(EXTRA_GCC_FLAGS): Remove ADAFLAGS, BOOT_ADAFLAGS, LANGUAGES,
BUILD_PREFIX, BUILD_PREFIX_1.
* configure.in: (BUILD_PREFIX, BUILD_PREFIX_1): Don't substitute.
* Makefile.def (bootstrap stage 1): Pass LIBCFLAGS too.
* Makefile.tpl (POSTSTAGE1_FLAGS_TO_PASS): Override LIBCFLAGS too.
* Makefile.tpl (configure-stage[+id+]-[+prefix+][+module+],
all-stage[+id+]-[+prefix+][+module+], : Use $(current_stage) instead
of `cat stage_current`. Always provide the `r' and `s' variables.
(clean-stage[+id+]-[+prefix+][+module+]): Likewise, and make it into
a single shell execution.
(configure-[+prefix+][+module+], all-[+prefix+][+module+]): For
bootstrapped modules, make the stage1 module if the build was not
started yet, else build the current stage.
(all-host, all-target): Omit bootstrapped modules (if bootstrapping).
(all-build, all-host, all-target, [+make_target+]-host,
[+make_target+]-target): Do not use \-continued lines.
(target modules): Depend on stage_last, not all-gcc, if bootstrapping.
(current_stage, restrap, stage_last): New.
* Makefile.in: Regenerate.
* configure: Regenerate.
gcc:
2006-02-20 Paolo Bonzini <bonzini@gnu.org>
PR bootstrap/25476
* Makefile.in (LDFLAGS): Define from autoconf substitution.
* Makefile.in (BOOTSTRAPPING): New.
(quickstrap): New definition if BOOTSTRAPPING=yes.
* Makefile.in (CONFIG_LANGUAGES): Substitute all_selected_languages.
* configure.ac: Substitute all_selected_languages with the languages
that were configured. For all the other variables except
lang_specs_files, include all the languages in the tree.
* configure: Regenerate.
* Makefile.in (stmp-fixinc): Copy includes from the prev-gcc directory,
if there is one. Run the commands to run fixincludes in the same
subshell.
* doc/makefile.texi: Document new makefile targets from toplevel bootstrap.
* doc/install.texi: Document exact conventions for searching target tools.
Document --with-build-time-tools. Document toplevel bootstrap. Document
something more about building an Ada cross-compiler. Don't list GNU Make
requirements which affect all platforms.
From-SVN: r111295
2006-02-20 09:29:17 +01:00
|
|
|
for lang in $all_selected_languages
|
1997-07-19 04:27:38 +02:00
|
|
|
do
|
re PR bootstrap/25670 (build fail with 'make all-gcc')
2006-02-20 Paolo Bonzini <bonzini@gnu.org>
PR bootstrap/25670
* Makefile.tpl ([+compare-target+]): Print explanation messages.
* Makefile.def (ADAFLAGS, BOOT_ADAFLAGS, LANGUAGES): New flags_to_pass.
* Makefile.tpl (BASE_FLAGS_TO_PASS): Support optional flags_to_pass.
(EXTRA_GCC_FLAGS): Remove ADAFLAGS, BOOT_ADAFLAGS, LANGUAGES,
BUILD_PREFIX, BUILD_PREFIX_1.
* configure.in: (BUILD_PREFIX, BUILD_PREFIX_1): Don't substitute.
* Makefile.def (bootstrap stage 1): Pass LIBCFLAGS too.
* Makefile.tpl (POSTSTAGE1_FLAGS_TO_PASS): Override LIBCFLAGS too.
* Makefile.tpl (configure-stage[+id+]-[+prefix+][+module+],
all-stage[+id+]-[+prefix+][+module+], : Use $(current_stage) instead
of `cat stage_current`. Always provide the `r' and `s' variables.
(clean-stage[+id+]-[+prefix+][+module+]): Likewise, and make it into
a single shell execution.
(configure-[+prefix+][+module+], all-[+prefix+][+module+]): For
bootstrapped modules, make the stage1 module if the build was not
started yet, else build the current stage.
(all-host, all-target): Omit bootstrapped modules (if bootstrapping).
(all-build, all-host, all-target, [+make_target+]-host,
[+make_target+]-target): Do not use \-continued lines.
(target modules): Depend on stage_last, not all-gcc, if bootstrapping.
(current_stage, restrap, stage_last): New.
* Makefile.in: Regenerate.
* configure: Regenerate.
gcc:
2006-02-20 Paolo Bonzini <bonzini@gnu.org>
PR bootstrap/25476
* Makefile.in (LDFLAGS): Define from autoconf substitution.
* Makefile.in (BOOTSTRAPPING): New.
(quickstrap): New definition if BOOTSTRAPPING=yes.
* Makefile.in (CONFIG_LANGUAGES): Substitute all_selected_languages.
* configure.ac: Substitute all_selected_languages with the languages
that were configured. For all the other variables except
lang_specs_files, include all the languages in the tree.
* configure: Regenerate.
* Makefile.in (stmp-fixinc): Copy includes from the prev-gcc directory,
if there is one. Run the commands to run fixincludes in the same
subshell.
* doc/makefile.texi: Document new makefile targets from toplevel bootstrap.
* doc/install.texi: Document exact conventions for searching target tools.
Document --with-build-time-tools. Document toplevel bootstrap. Document
something more about building an Ada cross-compiler. Don't list GNU Make
requirements which affect all platforms.
From-SVN: r111295
2006-02-20 09:29:17 +01:00
|
|
|
x="$x $lang.$t"
|
1997-07-19 04:27:38 +02:00
|
|
|
done
|
|
|
|
echo "lang.$t: $x" >> Make-hooks
|
|
|
|
done
|
|
|
|
|
2010-11-19 18:27:18 +01:00
|
|
|
# --------
|
|
|
|
# Option include files
|
|
|
|
# --------
|
|
|
|
|
|
|
|
${AWK} -f $srcdir/opt-include.awk $all_opt_files > option-includes.mk
|
|
|
|
option_includes="option-includes.mk"
|
|
|
|
AC_SUBST_FILE(option_includes)
|
|
|
|
|
2004-02-29 21:43:45 +01:00
|
|
|
# --------
|
|
|
|
# UNSORTED
|
|
|
|
# --------
|
|
|
|
|
2001-02-16 12:12:46 +01:00
|
|
|
# Create .gdbinit.
|
1997-08-02 22:10:47 +02:00
|
|
|
|
2001-02-16 12:12:46 +01:00
|
|
|
echo "dir ." > .gdbinit
|
|
|
|
echo "dir ${srcdir}" >> .gdbinit
|
|
|
|
if test x$gdb_needs_out_file_path = xyes
|
|
|
|
then
|
|
|
|
echo "dir ${srcdir}/config/"`dirname ${out_file}` >> .gdbinit
|
|
|
|
fi
|
|
|
|
if test "x$subdirs" != x; then
|
|
|
|
for s in $subdirs
|
|
|
|
do
|
|
|
|
echo "dir ${srcdir}/$s" >> .gdbinit
|
|
|
|
done
|
1997-08-02 22:10:47 +02:00
|
|
|
fi
|
2001-02-16 12:12:46 +01:00
|
|
|
echo "source ${srcdir}/gdbinit.in" >> .gdbinit
|
2013-08-28 05:01:20 +02:00
|
|
|
echo "python import sys; sys.path.append('${srcdir}'); import gdbhooks" >> .gdbinit
|
1997-08-02 22:10:47 +02:00
|
|
|
|
2013-12-04 15:53:36 +01:00
|
|
|
# Put a breakpoint on __asan_report_error to help with debugging buffer
|
|
|
|
# overflow.
|
|
|
|
case "$CFLAGS" in
|
|
|
|
*-fsanitize=address*)
|
|
|
|
echo "source ${srcdir}/gdbasan.in" >> .gdbinit
|
|
|
|
;;
|
|
|
|
esac
|
|
|
|
|
2007-07-02 21:20:33 +02:00
|
|
|
gcc_tooldir='$(libsubdir)/$(libsubdir_to_prefix)$(target_noncanonical)'
|
1999-01-22 08:17:21 +01:00
|
|
|
AC_SUBST(gcc_tooldir)
|
1999-03-02 10:29:26 +01:00
|
|
|
AC_SUBST(dollar)
|
1999-01-22 08:17:21 +01:00
|
|
|
|
2001-01-07 10:27:25 +01:00
|
|
|
# Find a directory in which to install a shared libgcc.
|
|
|
|
|
|
|
|
AC_ARG_ENABLE(version-specific-runtime-libs,
|
2011-05-13 10:09:25 +02:00
|
|
|
[AS_HELP_STRING([--enable-version-specific-runtime-libs],
|
|
|
|
[specify that runtime libraries should be
|
|
|
|
installed in a compiler-specific directory])])
|
2001-01-07 10:27:25 +01:00
|
|
|
|
1997-05-18 14:31:53 +02:00
|
|
|
# Substitute configuration variables
|
|
|
|
AC_SUBST(subdirs)
|
2002-07-14 03:59:15 +02:00
|
|
|
AC_SUBST(srcdir)
|
1997-05-18 14:31:53 +02:00
|
|
|
AC_SUBST(all_compilers)
|
2002-06-04 09:11:05 +02:00
|
|
|
AC_SUBST(all_gtfiles)
|
2003-08-31 08:07:42 +02:00
|
|
|
AC_SUBST(all_lang_makefrags)
|
1999-03-11 09:53:13 +01:00
|
|
|
AC_SUBST(all_languages)
|
re PR bootstrap/25670 (build fail with 'make all-gcc')
2006-02-20 Paolo Bonzini <bonzini@gnu.org>
PR bootstrap/25670
* Makefile.tpl ([+compare-target+]): Print explanation messages.
* Makefile.def (ADAFLAGS, BOOT_ADAFLAGS, LANGUAGES): New flags_to_pass.
* Makefile.tpl (BASE_FLAGS_TO_PASS): Support optional flags_to_pass.
(EXTRA_GCC_FLAGS): Remove ADAFLAGS, BOOT_ADAFLAGS, LANGUAGES,
BUILD_PREFIX, BUILD_PREFIX_1.
* configure.in: (BUILD_PREFIX, BUILD_PREFIX_1): Don't substitute.
* Makefile.def (bootstrap stage 1): Pass LIBCFLAGS too.
* Makefile.tpl (POSTSTAGE1_FLAGS_TO_PASS): Override LIBCFLAGS too.
* Makefile.tpl (configure-stage[+id+]-[+prefix+][+module+],
all-stage[+id+]-[+prefix+][+module+], : Use $(current_stage) instead
of `cat stage_current`. Always provide the `r' and `s' variables.
(clean-stage[+id+]-[+prefix+][+module+]): Likewise, and make it into
a single shell execution.
(configure-[+prefix+][+module+], all-[+prefix+][+module+]): For
bootstrapped modules, make the stage1 module if the build was not
started yet, else build the current stage.
(all-host, all-target): Omit bootstrapped modules (if bootstrapping).
(all-build, all-host, all-target, [+make_target+]-host,
[+make_target+]-target): Do not use \-continued lines.
(target modules): Depend on stage_last, not all-gcc, if bootstrapping.
(current_stage, restrap, stage_last): New.
* Makefile.in: Regenerate.
* configure: Regenerate.
gcc:
2006-02-20 Paolo Bonzini <bonzini@gnu.org>
PR bootstrap/25476
* Makefile.in (LDFLAGS): Define from autoconf substitution.
* Makefile.in (BOOTSTRAPPING): New.
(quickstrap): New definition if BOOTSTRAPPING=yes.
* Makefile.in (CONFIG_LANGUAGES): Substitute all_selected_languages.
* configure.ac: Substitute all_selected_languages with the languages
that were configured. For all the other variables except
lang_specs_files, include all the languages in the tree.
* configure: Regenerate.
* Makefile.in (stmp-fixinc): Copy includes from the prev-gcc directory,
if there is one. Run the commands to run fixincludes in the same
subshell.
* doc/makefile.texi: Document new makefile targets from toplevel bootstrap.
* doc/install.texi: Document exact conventions for searching target tools.
Document --with-build-time-tools. Document toplevel bootstrap. Document
something more about building an Ada cross-compiler. Don't list GNU Make
requirements which affect all platforms.
From-SVN: r111295
2006-02-20 09:29:17 +01:00
|
|
|
AC_SUBST(all_selected_languages)
|
1999-03-11 09:53:13 +01:00
|
|
|
AC_SUBST(build_exeext)
|
|
|
|
AC_SUBST(build_install_headers_dir)
|
|
|
|
AC_SUBST(build_xm_file_list)
|
Makefile.in (tm_file): Rename tm_include_list.
* Makefile.in (tm_file): Rename tm_include_list.
(tm_p_file): Rename tm_p_include_list.
(build_xm_file): Rename build_xm_include_list.
(host_xm_file): Rename host_xm_include_list.
(xm_file): Rename xm_include_list.
(xm_file_list): Add to be substituted.
(cs-config.h, cs-bconfig.h, cs-tconfig.h, cs-tm.h, cs-tm_p.h):
Update to match.
(bt-load.o): Add missing dependency on $(TM_H).
* configure.in: Prefix value of EXTRA_MODES_FILE with config/.
For each of tm_file, tm_p_file, xm_file, host_xm_file, and
build_xm_file, generate both *_file_list and *_include_list
values from it. (xm_file_list was formerly not being generated.)
In *_include_list, prefix the names of all headers found in
$(srcdir)/config with config/. In each loop, consider only
the special case files that can actually appear in that list.
AC_SUBST all *_file_list and all *_include_list variables; do
not AC_SUBST the plain *_file variables.
* configure: Regenerate.
From-SVN: r70449
2003-08-14 22:25:14 +02:00
|
|
|
AC_SUBST(build_xm_include_list)
|
configure.in: Prune nonexistent files from build_xm_file, xm_file, and host_xm_file lists.
* configure.in: Prune nonexistent files from build_xm_file,
xm_file, and host_xm_file lists. Warn unless they're
$cpu/xm-$cpu.h.
Don't generate *config.h here.
AC_SUBST all variables needed to generate *config.h.
* configure: Regenerate.
* mkconfig.sh: New helper script, from code removed from
configure.in.
* Makefile.in: Zap all MALLOC variables - no longer used
anywhere, and malloc.c doesn't exist.
Substitute in variables needed to generate *config.h.
Stop lying about the dependencies contained in CONFIG_H and
GCONFIG_H.
(HCONFIG_H, TCONFIG_H, TM_P_H): New variables.
(config.h, hconfig.h, tconfig.h, tm_p.h, cs-config.h,
cs-hconfig.h, cs-tconfig.h, cs-tm_p.h): New rules.
(all .o): Add dependencies on $(HCONFIG_H), $(TCONFIG_H),
$(TM_P_H), etc. as appropriate.
* config.gcc: Zap references to deleted files.
* ggc-none.c: Don't include rtl.h or tm_p.h.
* config/i386/xm-beos.h, config/i386/xm-dgux.h,
config/i386/xm-djgpp.h, config/i386/xm-dos.h,
config/i386/xm-gnu.h, config/i386/xm-i386-interix.h,
config/i386/xm-linux.h, config/i386/xm-linux.h,
config/i386/xm-next.h, config/i386/xm-openbsd.h,
config/i386/xm-sun.h, config/i386/xm-sysv3.h:
Don't include i386/xm-i386.h.
* config/elxsi/xm-elxsi.h, config/i386/xm-bsd386.h,
config/i386/xm-i386.h, config/i860/xm-i860.h,
config/i960/xm-i960.h, config/mcore/xm-mcore.h,
config/mn10300/xm-mn10300.h, config/ns32k/xm-ns32k.h,
config/pj/xm-pj.h, config/sh/xm-sh.h, config/v850/xm-v850.h:
Delete (empty except comments, #includes of other deleted
files, and macros used nowhere).
cp:
* Make-lang.in: Add dependencies on $(TM_P_H) as appropriate.
From-SVN: r40350
2001-03-09 21:53:56 +01:00
|
|
|
AC_SUBST(build_xm_defines)
|
2008-02-19 20:38:52 +01:00
|
|
|
AC_SUBST(build_file_translate)
|
2001-02-14 02:13:42 +01:00
|
|
|
AC_SUBST(check_languages)
|
1999-03-11 09:53:13 +01:00
|
|
|
AC_SUBST(cpp_install_dir)
|
2003-08-31 08:07:42 +02:00
|
|
|
AC_SUBST(xmake_file)
|
|
|
|
AC_SUBST(tmake_file)
|
2009-04-17 19:32:00 +02:00
|
|
|
AC_SUBST(TM_ENDIAN_CONFIG)
|
|
|
|
AC_SUBST(TM_MULTILIB_CONFIG)
|
|
|
|
AC_SUBST(TM_MULTILIB_EXCEPTIONS_CONFIG)
|
2004-02-25 22:43:26 +01:00
|
|
|
AC_SUBST(extra_gcc_objs)
|
2010-07-23 20:32:25 +02:00
|
|
|
AC_SUBST(user_headers_inc_next_pre)
|
|
|
|
AC_SUBST(user_headers_inc_next_post)
|
1999-03-11 09:53:13 +01:00
|
|
|
AC_SUBST(extra_headers_list)
|
1997-05-18 14:31:53 +02:00
|
|
|
AC_SUBST(extra_objs)
|
1999-03-11 09:53:13 +01:00
|
|
|
AC_SUBST(extra_programs)
|
|
|
|
AC_SUBST(float_h_file)
|
2000-11-13 14:39:36 +01:00
|
|
|
AC_SUBST(gcc_config_arguments)
|
1999-03-11 09:53:13 +01:00
|
|
|
AC_SUBST(gcc_gxx_include_dir)
|
2012-01-06 01:14:32 +01:00
|
|
|
AC_SUBST(gcc_gxx_include_dir_add_sysroot)
|
1999-03-11 09:53:13 +01:00
|
|
|
AC_SUBST(host_exeext)
|
1997-05-18 14:31:53 +02:00
|
|
|
AC_SUBST(host_xm_file_list)
|
Makefile.in (tm_file): Rename tm_include_list.
* Makefile.in (tm_file): Rename tm_include_list.
(tm_p_file): Rename tm_p_include_list.
(build_xm_file): Rename build_xm_include_list.
(host_xm_file): Rename host_xm_include_list.
(xm_file): Rename xm_include_list.
(xm_file_list): Add to be substituted.
(cs-config.h, cs-bconfig.h, cs-tconfig.h, cs-tm.h, cs-tm_p.h):
Update to match.
(bt-load.o): Add missing dependency on $(TM_H).
* configure.in: Prefix value of EXTRA_MODES_FILE with config/.
For each of tm_file, tm_p_file, xm_file, host_xm_file, and
build_xm_file, generate both *_file_list and *_include_list
values from it. (xm_file_list was formerly not being generated.)
In *_include_list, prefix the names of all headers found in
$(srcdir)/config with config/. In each loop, consider only
the special case files that can actually appear in that list.
AC_SUBST all *_file_list and all *_include_list variables; do
not AC_SUBST the plain *_file variables.
* configure: Regenerate.
From-SVN: r70449
2003-08-14 22:25:14 +02:00
|
|
|
AC_SUBST(host_xm_include_list)
|
configure.in: Prune nonexistent files from build_xm_file, xm_file, and host_xm_file lists.
* configure.in: Prune nonexistent files from build_xm_file,
xm_file, and host_xm_file lists. Warn unless they're
$cpu/xm-$cpu.h.
Don't generate *config.h here.
AC_SUBST all variables needed to generate *config.h.
* configure: Regenerate.
* mkconfig.sh: New helper script, from code removed from
configure.in.
* Makefile.in: Zap all MALLOC variables - no longer used
anywhere, and malloc.c doesn't exist.
Substitute in variables needed to generate *config.h.
Stop lying about the dependencies contained in CONFIG_H and
GCONFIG_H.
(HCONFIG_H, TCONFIG_H, TM_P_H): New variables.
(config.h, hconfig.h, tconfig.h, tm_p.h, cs-config.h,
cs-hconfig.h, cs-tconfig.h, cs-tm_p.h): New rules.
(all .o): Add dependencies on $(HCONFIG_H), $(TCONFIG_H),
$(TM_P_H), etc. as appropriate.
* config.gcc: Zap references to deleted files.
* ggc-none.c: Don't include rtl.h or tm_p.h.
* config/i386/xm-beos.h, config/i386/xm-dgux.h,
config/i386/xm-djgpp.h, config/i386/xm-dos.h,
config/i386/xm-gnu.h, config/i386/xm-i386-interix.h,
config/i386/xm-linux.h, config/i386/xm-linux.h,
config/i386/xm-next.h, config/i386/xm-openbsd.h,
config/i386/xm-sun.h, config/i386/xm-sysv3.h:
Don't include i386/xm-i386.h.
* config/elxsi/xm-elxsi.h, config/i386/xm-bsd386.h,
config/i386/xm-i386.h, config/i860/xm-i860.h,
config/i960/xm-i960.h, config/mcore/xm-mcore.h,
config/mn10300/xm-mn10300.h, config/ns32k/xm-ns32k.h,
config/pj/xm-pj.h, config/sh/xm-sh.h, config/v850/xm-v850.h:
Delete (empty except comments, #includes of other deleted
files, and macros used nowhere).
cp:
* Make-lang.in: Add dependencies on $(TM_P_H) as appropriate.
From-SVN: r40350
2001-03-09 21:53:56 +01:00
|
|
|
AC_SUBST(host_xm_defines)
|
2003-02-06 02:47:56 +01:00
|
|
|
AC_SUBST(out_host_hook_obj)
|
1999-03-11 09:53:13 +01:00
|
|
|
AC_SUBST(install)
|
2003-06-14 14:26:36 +02:00
|
|
|
AC_SUBST(lang_opt_files)
|
1999-03-11 09:53:13 +01:00
|
|
|
AC_SUBST(lang_specs_files)
|
1998-08-30 17:50:47 +02:00
|
|
|
AC_SUBST(lang_tree_files)
|
1997-05-18 14:31:53 +02:00
|
|
|
AC_SUBST(local_prefix)
|
1999-03-11 09:53:13 +01:00
|
|
|
AC_SUBST(md_file)
|
|
|
|
AC_SUBST(objc_boehm_gc)
|
|
|
|
AC_SUBST(out_file)
|
|
|
|
AC_SUBST(out_object_file)
|
common-target-def.h, [...]: New files.
* common/common-target-def.h, common/common-target.def,
common/common-target.h, common/config/default-common.c,
common/config/pa/pa-common.c: New files.
* Makefile.in (common_out_file, common_out_object_file,
COMMON_TARGET_H, COMMON_TARGET_DEF_H): New.
(OBJS-libcommon-target): Include $(common_out_object_file).
(prefix.o): Update dependencies.
($(common_out_object_file), common/common-target-hooks-def.h,
s-common-target-hooks-def-h): New.
(s-tm-texi): Also check timestamp on common-target.def.
(build/genhooks.o): Update dependencies.
* config.gcc (common_out_file, target_has_targetm_common): Define.
* config/pa/som.h (ALWAYS_STRIP_DOTDOT): Replace with
TARGET_ALWAYS_STRIP_DOTDOT.
* configure.ac (common_out_object_file): Define.
(common_out_file, common_out_object_file): Substitute.
(common): Create directory.
* configure: Regenerate.
* doc/tm.texi.in (targetm_common): Document.
(TARGET_ALWAYS_STRIP_DOTDOT): Add @hook entry.
* doc/tm.texi: Regenerate.
* genhooks.c (hook_array): Also include common/common-target.def.
* prefix.c (tm.h): Don't include.
(common/common-target.h): Include.
(ALWAYS_STRIP_DOTDOT): Don't define.
(update_path): Use targetm_common.always_strip_dotdot instead of
ALWAYS_STRIP_DOTDOT.
* system.h (ALWAYS_STRIP_DOTDOT): Poison.
From-SVN: r175052
2011-06-14 22:11:37 +02:00
|
|
|
AC_SUBST(common_out_file)
|
|
|
|
AC_SUBST(common_out_object_file)
|
1999-03-11 09:53:13 +01:00
|
|
|
AC_SUBST(tm_file_list)
|
Makefile.in (tm_file): Rename tm_include_list.
* Makefile.in (tm_file): Rename tm_include_list.
(tm_p_file): Rename tm_p_include_list.
(build_xm_file): Rename build_xm_include_list.
(host_xm_file): Rename host_xm_include_list.
(xm_file): Rename xm_include_list.
(xm_file_list): Add to be substituted.
(cs-config.h, cs-bconfig.h, cs-tconfig.h, cs-tm.h, cs-tm_p.h):
Update to match.
(bt-load.o): Add missing dependency on $(TM_H).
* configure.in: Prefix value of EXTRA_MODES_FILE with config/.
For each of tm_file, tm_p_file, xm_file, host_xm_file, and
build_xm_file, generate both *_file_list and *_include_list
values from it. (xm_file_list was formerly not being generated.)
In *_include_list, prefix the names of all headers found in
$(srcdir)/config with config/. In each loop, consider only
the special case files that can actually appear in that list.
AC_SUBST all *_file_list and all *_include_list variables; do
not AC_SUBST the plain *_file variables.
* configure: Regenerate.
From-SVN: r70449
2003-08-14 22:25:14 +02:00
|
|
|
AC_SUBST(tm_include_list)
|
2002-06-15 19:31:32 +02:00
|
|
|
AC_SUBST(tm_defines)
|
configure.in: Prune nonexistent files from build_xm_file, xm_file, and host_xm_file lists.
* configure.in: Prune nonexistent files from build_xm_file,
xm_file, and host_xm_file lists. Warn unless they're
$cpu/xm-$cpu.h.
Don't generate *config.h here.
AC_SUBST all variables needed to generate *config.h.
* configure: Regenerate.
* mkconfig.sh: New helper script, from code removed from
configure.in.
* Makefile.in: Zap all MALLOC variables - no longer used
anywhere, and malloc.c doesn't exist.
Substitute in variables needed to generate *config.h.
Stop lying about the dependencies contained in CONFIG_H and
GCONFIG_H.
(HCONFIG_H, TCONFIG_H, TM_P_H): New variables.
(config.h, hconfig.h, tconfig.h, tm_p.h, cs-config.h,
cs-hconfig.h, cs-tconfig.h, cs-tm_p.h): New rules.
(all .o): Add dependencies on $(HCONFIG_H), $(TCONFIG_H),
$(TM_P_H), etc. as appropriate.
* config.gcc: Zap references to deleted files.
* ggc-none.c: Don't include rtl.h or tm_p.h.
* config/i386/xm-beos.h, config/i386/xm-dgux.h,
config/i386/xm-djgpp.h, config/i386/xm-dos.h,
config/i386/xm-gnu.h, config/i386/xm-i386-interix.h,
config/i386/xm-linux.h, config/i386/xm-linux.h,
config/i386/xm-next.h, config/i386/xm-openbsd.h,
config/i386/xm-sun.h, config/i386/xm-sysv3.h:
Don't include i386/xm-i386.h.
* config/elxsi/xm-elxsi.h, config/i386/xm-bsd386.h,
config/i386/xm-i386.h, config/i860/xm-i860.h,
config/i960/xm-i960.h, config/mcore/xm-mcore.h,
config/mn10300/xm-mn10300.h, config/ns32k/xm-ns32k.h,
config/pj/xm-pj.h, config/sh/xm-sh.h, config/v850/xm-v850.h:
Delete (empty except comments, #includes of other deleted
files, and macros used nowhere).
cp:
* Make-lang.in: Add dependencies on $(TM_P_H) as appropriate.
From-SVN: r40350
2001-03-09 21:53:56 +01:00
|
|
|
AC_SUBST(tm_p_file_list)
|
Makefile.in (tm_file): Rename tm_include_list.
* Makefile.in (tm_file): Rename tm_include_list.
(tm_p_file): Rename tm_p_include_list.
(build_xm_file): Rename build_xm_include_list.
(host_xm_file): Rename host_xm_include_list.
(xm_file): Rename xm_include_list.
(xm_file_list): Add to be substituted.
(cs-config.h, cs-bconfig.h, cs-tconfig.h, cs-tm.h, cs-tm_p.h):
Update to match.
(bt-load.o): Add missing dependency on $(TM_H).
* configure.in: Prefix value of EXTRA_MODES_FILE with config/.
For each of tm_file, tm_p_file, xm_file, host_xm_file, and
build_xm_file, generate both *_file_list and *_include_list
values from it. (xm_file_list was formerly not being generated.)
In *_include_list, prefix the names of all headers found in
$(srcdir)/config with config/. In each loop, consider only
the special case files that can actually appear in that list.
AC_SUBST all *_file_list and all *_include_list variables; do
not AC_SUBST the plain *_file variables.
* configure: Regenerate.
From-SVN: r70449
2003-08-14 22:25:14 +02:00
|
|
|
AC_SUBST(tm_p_include_list)
|
|
|
|
AC_SUBST(xm_file_list)
|
|
|
|
AC_SUBST(xm_include_list)
|
2001-03-11 22:19:11 +01:00
|
|
|
AC_SUBST(xm_defines)
|
re PR c/448 (<stdint.h>-related issues (C99 issues))
PR c/448
fixincludes:
* inclhack.def (newlib_stdint_1, newlib_stdint_2): New fixes.
* fixincl.x: Regenerate.
* tests/base/stdint.h: Update.
gcc:
* Makefile.in (USE_GCC_STDINT): Define.
(stmp-int-hdrs): Install stdint.h if applicable.
* c-common.c (CHAR16_TYPE): Define in terms of UINT_LEAST16_TYPE
if known.
(CHAR32_TYPE): Define in terms of UINT_LEAST32_TYPE if known.
(SIG_ATOMIC_TYPE, INT8_TYPE, INT16_TYPE, INT32_TYPE, INT64_TYPE,
UINT8_TYPE, UINT16_TYPE, UINT32_TYPE, UINT64_TYPE,
INT_LEAST8_TYPE, INT_LEAST16_TYPE, INT_LEAST32_TYPE,
INT_LEAST64_TYPE, UINT_LEAST8_TYPE, UINT_LEAST16_TYPE,
UINT_LEAST32_TYPE, UINT_LEAST64_TYPE, INT_FAST8_TYPE,
INT_FAST16_TYPE, INT_FAST32_TYPE, INT_FAST64_TYPE,
UINT_FAST8_TYPE, UINT_FAST16_TYPE, UINT_FAST32_TYPE,
UINT_FAST64_TYPE, INTPTR_TYPE, UINTPTR_TYPE): Define.
(c_common_nodes_and_builtins): Initialize
underlying_wchar_type_node. Do not initialize
signed_wchar_type_node or unsigned_wchar_type_node. Initialize
nodes for new types.
(c_stddef_cpp_builtins): Define macros for new types.
* c-common.h (CTI_SIGNED_WCHAR_TYPE, CTI_UNSIGNED_WCHAR_TYPE):
Remove.
(CTI_UNDERLYING_WCHAR_TYPE, CTI_SIG_ATOMIC_TYPE, CTI_INT8_TYPE,
CTI_INT16_TYPE, CTI_INT32_TYPE, CTI_INT64_TYPE, CTI_UINT8_TYPE,
CTI_UINT16_TYPE, CTI_UINT32_TYPE, CTI_UINT64_TYPE,
CTI_INT_LEAST8_TYPE, CTI_INT_LEAST16_TYPE, CTI_INT_LEAST32_TYPE,
CTI_INT_LEAST64_TYPE, CTI_UINT_LEAST8_TYPE, CTI_UINT_LEAST16_TYPE,
CTI_UINT_LEAST32_TYPE, CTI_UINT_LEAST64_TYPE, CTI_INT_FAST8_TYPE,
CTI_INT_FAST16_TYPE, CTI_INT_FAST32_TYPE, CTI_INT_FAST64_TYPE,
CTI_UINT_FAST8_TYPE, CTI_UINT_FAST16_TYPE, CTI_UINT_FAST32_TYPE,
CTI_UINT_FAST64_TYPE, CTI_INTPTR_TYPE, CTI_UINTPTR_TYPE): Define.
(signed_wchar_type_node, unsigned_wchar_type_node): Remove.
(underlying_wchar_type_node, sig_atomic_type_node, int8_type_node,
int16_type_node, int32_type_node, int64_type_node,
uint8_type_node, uint16_type_node, c_uint32_type_node,
c_uint64_type_node, int_least8_type_node, int_least16_type_node,
int_least32_type_node, int_least64_type_node,
uint_least8_type_node, uint_least16_type_node,
uint_least32_type_node, uint_least64_type_node,
int_fast8_type_node, int_fast16_type_node, int_fast32_type_node,
int_fast64_type_node, uint_fast8_type_node, uint_fast16_type_node,
uint_fast32_type_node, uint_fast64_type_node, intptr_type_node,
uintptr_type_node): Define.
* c-cppbuiltin.c (builtin_define_constants,
builtin_define_type_minmax): New.
(builtin_define_stdint_macros): Define more macros.
(c_cpp_builtins): Define more limit macros.
(type_suffix): New.
(builtin_define_type_max): Define in terms of
builtin_define_type_minmax. Remove is_long parameter. All
callers changed.
* config.gcc (use_gcc_stdint): Define.
(tm_file): Add glibc-stdint.h for targets using glibc or uClibc.
Add newlib-stdint.h for generic targets.
* config/glibc-stdint.h, config/newlib-stdint.h,
ginclude/stdint-gcc.h, ginclude/stdint-wrap.h: New.
* config/m32c/m32c.h (UINTPTR_TYPE): Define.
* config/score/score.h (UINTPTR_TYPE): Define.
* config/sol2.h (SIG_ATOMIC_TYPE, INT8_TYPE, INT16_TYPE,
INT32_TYPE, INT64_TYPE, UINT8_TYPE, UINT16_TYPE, UINT32_TYPE,
UINT64_TYPE, INT_LEAST8_TYPE, INT_LEAST16_TYPE, INT_LEAST32_TYPE,
INT_LEAST64_TYPE, UINT_LEAST8_TYPE, UINT_LEAST16_TYPE,
UINT_LEAST32_TYPE, UINT_LEAST64_TYPE, INT_FAST8_TYPE,
INT_FAST16_TYPE, INT_FAST32_TYPE, INT_FAST64_TYPE,
UINT_FAST8_TYPE, UINT_FAST16_TYPE, UINT_FAST32_TYPE,
UINT_FAST64_TYPE, INTPTR_TYPE, UINTPTR_TYPE): Define.
* config/spu/spu.h (STDINT_LONG32): Define.
* configure.ac (use_gcc_stdint): Substitute.
* configure: Regenerate.
* doc/cpp.texi (__SIG_ATOMIC_TYPE__, __INT8_TYPE__,
__INT16_TYPE__, __INT32_TYPE__, __INT64_TYPE__, __UINT8_TYPE__,
__UINT16_TYPE__, __UINT32_TYPE__, __UINT64_TYPE__,
__INT_LEAST8_TYPE__, __INT_LEAST16_TYPE__, __INT_LEAST32_TYPE__,
__INT_LEAST64_TYPE__, __UINT_LEAST8_TYPE__, __UINT_LEAST16_TYPE__,
__UINT_LEAST32_TYPE_, __UINT_LEAST64_TYPE__, __INT_FAST8_TYPE__,
__INT_FAST16_TYPE__, __INT_FAST32_TYPE__, __INT_FAST64_TYPE__,
__UINT_FAST8_TYPE__, __UINT_FAST16_TYPE__, __UINT_FAST32_TYPE__,
__UINT_FAST64_TYPE__, __INTPTR_TYPE__, __UINTPTR_TYPE__,
__WINT_MAX__, __SIZE_MAX__, __PTRDIFF_MAX__, __UINTMAX_MAX__,
__SIG_ATOMIC_MAX__, __INT8_MAX__, __INT16_MAX__, __INT32_MAX__,
__INT64_MAX__, __UINT8_MAX__, __UINT16_MAX__, __UINT32_MAX__,
__UINT64_MAX__, __INT_LEAST8_MAX__, __INT_LEAST16_MAX__,
__INT_LEAST32_MAX__, __INT_LEAST64_MAX__, __UINT_LEAST8_MAX__,
__UINT_LEAST16_MAX__, __UINT_LEAST32_MAX__, __UINT_LEAST64_MAX__,
__INT_FAST8_MAX__, __INT_FAST16_MAX__, __INT_FAST32_MAX__,
__INT_FAST64_MAX__, __UINT_FAST8_MAX__, __UINT_FAST16_MAX__,
__UINT_FAST32_MAX__, __UINT_FAST64_MAX__, __INTPTR_MAX__,
__UINTPTR_MAX__, __WCHAR_MIN__, __WINT_MIN__, __SIG_ATOMIC_MIN__,
__INT8_C, __INT16_C, __INT32_C, __INT64_C, __UINT8_C, __UINT16_C,
__UINT32_C, __UINT64_C, __INTMAX_C, __UINTMAX_C): Document.
* doc/tm.texi (SIG_ATOMIC_TYPE, INT8_TYPE, INT16_TYPE, INT32_TYPE,
INT64_TYPE, UINT8_TYPE, UINT16_TYPE, UINT32_TYPE, UINT64_TYPE,
INT_LEAST8_TYPE, INT_LEAST16_TYPE, INT_LEAST32_TYPE,
INT_LEAST64_TYPE, UINT_LEAST8_TYPE, UINT_LEAST16_TYPE,
UINT_LEAST32_TYPE, UINT_LEAST64_TYPE, INT_FAST8_TYPE,
INT_FAST16_TYPE, INT_FAST32_TYPE, INT_FAST64_TYPE,
UINT_FAST8_TYPE, UINT_FAST16_TYPE, UINT_FAST32_TYPE,
UINT_FAST64_TYPE, INTPTR_TYPE, UINTPTR_TYPE): Document.
gcc/testsuite:
* lib/target-supports.exp (check_effective_target_stdint_types):
Update comment.
(check_effective_target_inttypes_types): New.
* gcc.dg/c99-stdint-1.c, gcc.dg/c99-stdint-2.c,
gcc.dg/c99-stdint-3.c, gcc.dg/c99-stdint-4.c,
gcc.dg/c99-stdint-5.c, gcc.dg/c99-stdint-6.c: New tests.
From-SVN: r145372
2009-03-31 22:30:31 +02:00
|
|
|
AC_SUBST(use_gcc_stdint)
|
2000-11-25 01:33:04 +01:00
|
|
|
AC_SUBST(c_target_objs)
|
|
|
|
AC_SUBST(cxx_target_objs)
|
2008-05-29 20:21:35 +02:00
|
|
|
AC_SUBST(fortran_target_objs)
|
configure.in: Prune nonexistent files from build_xm_file, xm_file, and host_xm_file lists.
* configure.in: Prune nonexistent files from build_xm_file,
xm_file, and host_xm_file lists. Warn unless they're
$cpu/xm-$cpu.h.
Don't generate *config.h here.
AC_SUBST all variables needed to generate *config.h.
* configure: Regenerate.
* mkconfig.sh: New helper script, from code removed from
configure.in.
* Makefile.in: Zap all MALLOC variables - no longer used
anywhere, and malloc.c doesn't exist.
Substitute in variables needed to generate *config.h.
Stop lying about the dependencies contained in CONFIG_H and
GCONFIG_H.
(HCONFIG_H, TCONFIG_H, TM_P_H): New variables.
(config.h, hconfig.h, tconfig.h, tm_p.h, cs-config.h,
cs-hconfig.h, cs-tconfig.h, cs-tm_p.h): New rules.
(all .o): Add dependencies on $(HCONFIG_H), $(TCONFIG_H),
$(TM_P_H), etc. as appropriate.
* config.gcc: Zap references to deleted files.
* ggc-none.c: Don't include rtl.h or tm_p.h.
* config/i386/xm-beos.h, config/i386/xm-dgux.h,
config/i386/xm-djgpp.h, config/i386/xm-dos.h,
config/i386/xm-gnu.h, config/i386/xm-i386-interix.h,
config/i386/xm-linux.h, config/i386/xm-linux.h,
config/i386/xm-next.h, config/i386/xm-openbsd.h,
config/i386/xm-sun.h, config/i386/xm-sysv3.h:
Don't include i386/xm-i386.h.
* config/elxsi/xm-elxsi.h, config/i386/xm-bsd386.h,
config/i386/xm-i386.h, config/i860/xm-i860.h,
config/i960/xm-i960.h, config/mcore/xm-mcore.h,
config/mn10300/xm-mn10300.h, config/ns32k/xm-ns32k.h,
config/pj/xm-pj.h, config/sh/xm-sh.h, config/v850/xm-v850.h:
Delete (empty except comments, #includes of other deleted
files, and macros used nowhere).
cp:
* Make-lang.in: Add dependencies on $(TM_P_H) as appropriate.
From-SVN: r40350
2001-03-09 21:53:56 +01:00
|
|
|
AC_SUBST(target_cpu_default)
|
1997-05-18 14:31:53 +02:00
|
|
|
|
|
|
|
AC_SUBST_FILE(language_hooks)
|
|
|
|
|
2003-10-15 00:10:20 +02:00
|
|
|
# Echo link setup.
|
|
|
|
if test x${build} = x${host} ; then
|
|
|
|
if test x${host} = x${target} ; then
|
|
|
|
echo "Links are now set up to build a native compiler for ${target}." 1>&2
|
|
|
|
else
|
|
|
|
echo "Links are now set up to build a cross-compiler" 1>&2
|
|
|
|
echo " from ${host} to ${target}." 1>&2
|
|
|
|
fi
|
1997-05-18 14:31:53 +02:00
|
|
|
else
|
2003-10-15 00:10:20 +02:00
|
|
|
if test x${host} = x${target} ; then
|
|
|
|
echo "Links are now set up to build (on ${build}) a native compiler" 1>&2
|
|
|
|
echo " for ${target}." 1>&2
|
|
|
|
else
|
|
|
|
echo "Links are now set up to build (on ${build}) a cross-compiler" 1>&2
|
|
|
|
echo " from ${host} to ${target}." 1>&2
|
|
|
|
fi
|
1997-05-18 14:31:53 +02:00
|
|
|
fi
|
|
|
|
|
2004-05-13 08:41:07 +02:00
|
|
|
AC_ARG_VAR(GMPLIBS,[How to link GMP])
|
|
|
|
AC_ARG_VAR(GMPINC,[How to find GMP include files])
|
|
|
|
|
2012-07-02 13:43:46 +02:00
|
|
|
AC_ARG_VAR(ISLLIBS,[How to link ISL])
|
|
|
|
AC_ARG_VAR(ISLINC,[How to find ISL include files])
|
2014-08-18 17:42:11 +02:00
|
|
|
if test "x${ISLLIBS}" != "x" ; then
|
|
|
|
AC_DEFINE(HAVE_isl, 1, [Define if isl is in use.])
|
|
|
|
fi
|
backport: configure: Regenerate.
2008-09-02 Sebastian Pop <sebastian.pop@amd.com>
Tobias Grosser <grosser@fim.uni-passau.de>
Jan Sjodin <jan.sjodin@amd.com>
Harsha Jagasia <harsha.jagasia@amd.com>
Dwarakanath Rajagopal <dwarak.rajagopal@amd.com>
Konrad Trifunovic <konrad.trifunovic@inria.fr>
Adrien Eliche <aeliche@isty.uvsq.fr>
Merge from graphite branch.
* configure: Regenerate.
* Makefile.in: Regenerate.
* configure.ac (host_libs): Add ppl and cloog.
Add checks for PPL and CLooG.
* Makefile.def (ppl, cloog): Added modules and dependences.
* Makefile.tpl (PPLLIBS, PPLINC, CLOOGLIBS, CLOOGINC): New.
(HOST_PPLLIBS, HOST_PPLINC, HOST_CLOOGLIBS, HOST_CLOOGINC): New.
gcc/
* graphite.c: New.
* graphite.h: New.
* tree-loop-linear.c (perfect_loop_nest_depth): Export.
* doc/invoke.texi (-floop-block, -floop-interchange,
-floop-strip-mine): Document new flags.
* tree-into-ssa.c (gimple_vec): Moved...
* tree-loop-distribution.c (rdg_component): Moved...
* cfgloopmanip.c: Include tree-flow.h.
(update_dominators_in_loop): New.
(create_empty_if_region_on_edge): New.
(create_empty_loop_on_edge): New.
(loopify): Use update_dominators_in_loop.
* tree-pass.h (pass_graphite_transforms): Declared.
* configure: Regenerate.
* tree-phinodes.c (make_phi_node): Export.
(add_phi_node_to_bb): New, split from create_phi_node.
* tree-chrec.c (for_each_scev_op): New.
* tree-chrec.h (for_each_scev_op): Declared.
* tree-ssa-loop-ivopts.c (get_phi_with_result): New.
(remove_statement): Call get_phi_with_result.
* config.in (HAVE_cloog): Undef.
* gdbinit.in (pgg): New.
* timevar.def (TV_GRAPHITE_TRANSFORMS): New.
* tree-ssa-loop.c (graphite_transforms): New.
(gate_graphite_transforms): New.
(pass_graphite_transforms): New.
* configure.ac (PPLLIBS, PPLINC, CLOOGLIBS, CLOOGINC,
HAVE_cloog): Defined.
* tree-vectorizer.c (rename_variables_in_bb): Export.
* tree-data-ref.c (dr_may_alias_p): Export.
(stmt_simple_memref_p): New.
(find_data_references_in_stmt): Export.
(find_data_references_in_loop): Export.
(create_rdg_edge_for_ddr): Initialize RDGE_RELATION.
(create_rdg_edges_for_scalar): Initialize RDGE_RELATION.
(create_rdg_vertices): Export.
(build_empty_rdg): New.
(build_rdg): Call build_empty_rdg. Free dependence_relations.
* tree-data-ref.h (rdg_component): ... here.
(scop_p): New.
(struct data_reference): Add a field scop.
(DR_SCOP): New.
(find_data_references_in_loop): Declared.
(find_data_references_in_stmt): Declared.
(create_rdg_vertices): Declared.
(dr_may_alias_p): Declared.
(stmt_simple_memref_p): Declared.
(struct rdg_edge): Add a field ddr_p relation.
(build_empty_rdg): Declared.
* lambda.h (lambda_matrix): Declare a VEC of.
(find_induction_var_from_exit_cond): Declared.
(lambda_vector_compare): New.
* common.opt (fgraphite, floop-strip-mine,
floop-interchange, floop-block): New flags.
* lambda-code.c (find_induction_var_from_exit_cond): Export.
* cfgloop.c (is_loop_exit): New.
* cfgloop.h (is_loop_exit): Declared.
(create_empty_if_region_on_edge): Declared.
(create_empty_loop_on_edge): Declared.
* tree-flow.h (add_phi_node_to_bb): Declared.
(make_phi_node): Declared.
(rename_variables_in_bb): Declared.
(perfect_loop_nest_depth): Declared.
(graphite_transform_loops): Declared.
* Makefile.in (cfgloopmanip.o): Depend on TREE_FLOW_H.
(graphite.o-warn): Add -Wno-error.
(PPLLIBS, PPLINC, CLOOGLIBS, CLOOGINC): Declared.
(LIBS): Add GMPLIBS, CLOOGLIBS, PPLLIBS.
(INCLUDES): Add PPLINC, CLOOGINC.
(OBJS-common): Add graphite.o.
(graphite.o): Add rule.
* gimple.h (gimple_vec): ... here.
* tree-cfg.c (print_loops): Start printing at ENTRY_BLOCK_PTR.
* passes.c (init_optimization_passes): Schedule
pass_graphite_transforms.
testsuite/
* gcc.dg/graphite/scop-{0,1,2,3,4,5,6,7,8,9,
10,11,12,13,14,15,16,17,18}.c: New.
* gcc.dg/graphite/graphite.exp: New.
* gcc.dg/graphite/scop-matmult.c: New.
* gcc.dg/graphite/block-0.c: New.
* lib/target-supports.exp (check_effective_target_fgraphite): New.
* gfortran.dg/graphite/block-1.f90: New.
* gfortran.dg/graphite/scop-{1,2}.f: New.
* gfortran.dg/graphite/block-{1,3,4}.f90: New.
* gfortran.dg/graphite/graphite.exp: New.
Co-Authored-By: Adrien Eliche <aeliche@isty.uvsq.fr>
Co-Authored-By: Dwarakanath Rajagopal <dwarak.rajagopal@amd.com>
Co-Authored-By: Harsha Jagasia <harsha.jagasia@amd.com>
Co-Authored-By: Jan Sjodin <jan.sjodin@amd.com>
Co-Authored-By: Konrad Trifunovic <konrad.trifunovic@inria.fr>
Co-Authored-By: Tobias Grosser <grosser@fim.uni-passau.de>
From-SVN: r139893
2008-09-02 18:31:04 +02:00
|
|
|
|
2014-12-01 20:07:37 +01:00
|
|
|
# Check whether isl_schedule_constraints_compute_schedule is available;
|
|
|
|
# it's new in ISL-0.13.
|
2015-07-21 20:33:35 +02:00
|
|
|
# Check whether isl_options_set_schedule_serialize_sccs is available;
|
|
|
|
# it's new in ISL-0.15.
|
2014-12-01 20:07:37 +01:00
|
|
|
if test "x${ISLLIBS}" != "x" ; then
|
2015-05-26 15:12:14 +02:00
|
|
|
saved_CXXFLAGS="$CXXFLAGS"
|
|
|
|
CXXFLAGS="$CXXFLAGS $ISLINC"
|
2014-12-01 20:07:37 +01:00
|
|
|
saved_LIBS="$LIBS"
|
|
|
|
LIBS="$LIBS $ISLLIBS $GMPLIBS"
|
|
|
|
|
|
|
|
AC_MSG_CHECKING([Checking for isl_schedule_constraints_compute_schedule])
|
|
|
|
AC_TRY_LINK([#include <isl/schedule.h>],
|
|
|
|
[isl_schedule_constraints_compute_schedule (NULL);],
|
|
|
|
[ac_has_isl_schedule_constraints_compute_schedule=yes],
|
|
|
|
[ac_has_isl_schedule_constraints_compute_schedule=no])
|
|
|
|
AC_MSG_RESULT($ac_has_isl_schedule_constraints_compute_schedule)
|
|
|
|
|
2015-07-21 20:33:35 +02:00
|
|
|
AC_MSG_CHECKING([Checking for isl_options_set_schedule_serialize_sccs])
|
|
|
|
AC_TRY_LINK([#include <isl/schedule.h>],
|
|
|
|
[isl_options_set_schedule_serialize_sccs (NULL, 0);],
|
|
|
|
[ac_has_isl_options_set_schedule_serialize_sccs=yes],
|
|
|
|
[ac_has_isl_options_set_schedule_serialize_sccs=no])
|
|
|
|
AC_MSG_RESULT($ac_has_isl_options_set_schedule_serialize_sccs)
|
|
|
|
|
2015-09-09 06:20:47 +02:00
|
|
|
AC_MSG_CHECKING([Checking for isl_ctx_get_max_operations])
|
|
|
|
AC_TRY_LINK([#include <isl/ctx.h>],
|
|
|
|
[isl_ctx_get_max_operations (isl_ctx_alloc ());],
|
|
|
|
[ac_has_isl_ctx_get_max_operations=yes],
|
|
|
|
[ac_has_isl_ctx_get_max_operations=no])
|
|
|
|
AC_MSG_RESULT($ac_has_isl_ctx_get_max_operations)
|
|
|
|
|
2014-12-01 20:07:37 +01:00
|
|
|
LIBS="$saved_LIBS"
|
2015-05-26 15:12:14 +02:00
|
|
|
CXXFLAGS="$saved_CXXFLAGS"
|
2014-12-01 20:07:37 +01:00
|
|
|
|
|
|
|
if test x"$ac_has_isl_schedule_constraints_compute_schedule" = x"yes"; then
|
|
|
|
AC_DEFINE(HAVE_ISL_SCHED_CONSTRAINTS_COMPUTE_SCHEDULE, 1,
|
|
|
|
[Define if isl_schedule_constraints_compute_schedule exists.])
|
|
|
|
fi
|
2015-07-21 20:33:35 +02:00
|
|
|
|
|
|
|
if test x"$ac_has_isl_options_set_schedule_serialize_sccs" = x"yes"; then
|
|
|
|
AC_DEFINE(HAVE_ISL_OPTIONS_SET_SCHEDULE_SERIALIZE_SCCS, 1,
|
|
|
|
[Define if isl_options_set_schedule_serialize_sccs exists.])
|
|
|
|
fi
|
2015-09-09 06:20:47 +02:00
|
|
|
if test x"$ac_has_isl_ctx_get_max_operations" = x"yes"; then
|
|
|
|
AC_DEFINE(HAVE_ISL_CTX_MAX_OPERATIONS, 1,
|
|
|
|
[Define if isl_ctx_get_max_operations exists.])
|
|
|
|
fi
|
2014-12-01 20:07:37 +01:00
|
|
|
fi
|
|
|
|
|
2014-10-27 18:21:42 +01:00
|
|
|
GCC_ENABLE_PLUGINS
|
2009-04-14 22:18:49 +02:00
|
|
|
AC_SUBST(pluginlibs)
|
|
|
|
AC_SUBST(enable_plugin)
|
|
|
|
if test x"$enable_plugin" = x"yes"; then
|
|
|
|
AC_DEFINE(ENABLE_PLUGIN, 1, [Define to enable plugin support.])
|
|
|
|
fi
|
|
|
|
|
2010-12-10 11:55:56 +01:00
|
|
|
|
2013-10-15 22:33:55 +02:00
|
|
|
# Enable --enable-host-shared
|
|
|
|
AC_ARG_ENABLE(host-shared,
|
|
|
|
[AS_HELP_STRING([--enable-host-shared],
|
|
|
|
[build host code as shared libraries])],
|
|
|
|
[PICFLAG=-fPIC], [PICFLAG=])
|
|
|
|
AC_SUBST(enable_host_shared)
|
|
|
|
AC_SUBST(PICFLAG)
|
|
|
|
|
|
|
|
|
2010-12-10 11:55:56 +01:00
|
|
|
AC_ARG_ENABLE(libquadmath-support,
|
|
|
|
[AS_HELP_STRING([--disable-libquadmath-support],
|
|
|
|
[disable libquadmath support for Fortran])],
|
|
|
|
ENABLE_LIBQUADMATH_SUPPORT=$enableval,
|
|
|
|
ENABLE_LIBQUADMATH_SUPPORT=yes)
|
|
|
|
if test "${ENABLE_LIBQUADMATH_SUPPORT}" != "no" ; then
|
|
|
|
AC_DEFINE(ENABLE_LIBQUADMATH_SUPPORT, 1,
|
|
|
|
[Define to 1 to enable libquadmath support])
|
|
|
|
fi
|
|
|
|
|
|
|
|
|
2011-05-11 20:28:14 +02:00
|
|
|
# Specify what hash style to use by default.
|
|
|
|
AC_ARG_WITH([linker-hash-style],
|
|
|
|
[AC_HELP_STRING([--with-linker-hash-style={sysv,gnu,both}],
|
|
|
|
[specify the linker hash style])],
|
|
|
|
[case x"$withval" in
|
|
|
|
xsysv)
|
|
|
|
LINKER_HASH_STYLE=sysv
|
|
|
|
;;
|
|
|
|
xgnu)
|
|
|
|
LINKER_HASH_STYLE=gnu
|
|
|
|
;;
|
|
|
|
xboth)
|
|
|
|
LINKER_HASH_STYLE=both
|
|
|
|
;;
|
|
|
|
*)
|
|
|
|
AC_MSG_ERROR([$withval is an invalid option to --with-linker-hash-style])
|
|
|
|
;;
|
|
|
|
esac],
|
|
|
|
[LINKER_HASH_STYLE=''])
|
|
|
|
if test x"${LINKER_HASH_STYLE}" != x; then
|
|
|
|
AC_DEFINE_UNQUOTED(LINKER_HASH_STYLE, "$LINKER_HASH_STYLE",
|
|
|
|
[The linker hash style])
|
|
|
|
fi
|
|
|
|
|
2014-11-14 08:30:27 +01:00
|
|
|
# Specify what should be the default of -fdiagnostics-color option.
|
|
|
|
AC_ARG_WITH([diagnostics-color],
|
|
|
|
[AC_HELP_STRING([--with-diagnostics-color={never,auto,auto-if-env,always}],
|
|
|
|
[specify the default of -fdiagnostics-color option
|
|
|
|
auto-if-env stands for -fdiagnostics-color=auto if
|
|
|
|
GCC_COLOR environment variable is present and
|
|
|
|
-fdiagnostics-color=never otherwise])],
|
|
|
|
[case x"$withval" in
|
|
|
|
xnever)
|
|
|
|
DIAGNOSTICS_COLOR_DEFAULT=DIAGNOSTICS_COLOR_NO
|
|
|
|
;;
|
|
|
|
xauto)
|
|
|
|
DIAGNOSTICS_COLOR_DEFAULT=DIAGNOSTICS_COLOR_AUTO
|
|
|
|
;;
|
|
|
|
xauto-if-env)
|
|
|
|
DIAGNOSTICS_COLOR_DEFAULT=-1
|
|
|
|
;;
|
|
|
|
xalways)
|
|
|
|
DIAGNOSTICS_COLOR_DEFAULT=DIAGNOSTICS_COLOR_YES
|
|
|
|
;;
|
|
|
|
*)
|
|
|
|
AC_MSG_ERROR([$withval is an invalid option to --with-diagnostics-color])
|
|
|
|
;;
|
|
|
|
esac],
|
|
|
|
[DIAGNOSTICS_COLOR_DEFAULT=DIAGNOSTICS_COLOR_AUTO])
|
|
|
|
AC_DEFINE_UNQUOTED(DIAGNOSTICS_COLOR_DEFAULT, $DIAGNOSTICS_COLOR_DEFAULT,
|
|
|
|
[The default for -fdiagnostics-color option])
|
|
|
|
|
2014-11-11 22:55:52 +01:00
|
|
|
# Generate gcc-driver-name.h containing GCC_DRIVER_NAME for the benefit
|
|
|
|
# of jit/jit-playback.c.
|
|
|
|
cat > gcc-driver-name.h <<EOF
|
|
|
|
#define GCC_DRIVER_NAME "${target_noncanonical}-gcc-${gcc_BASEVER}${exeext}"
|
|
|
|
EOF
|
|
|
|
|
2015-05-28 04:36:55 +02:00
|
|
|
# Check whether --enable-default-pie was given.
|
|
|
|
AC_ARG_ENABLE(default-pie,
|
|
|
|
[AS_HELP_STRING([--enable-default-pie],
|
|
|
|
[enable Position Independent Executable as default])],
|
|
|
|
enable_default_pie=$enableval,
|
|
|
|
enable_default_pie=no)
|
2015-11-11 09:06:03 +01:00
|
|
|
if test x$enable_default_pie = xyes ; then
|
2015-05-28 04:36:55 +02:00
|
|
|
AC_DEFINE(ENABLE_DEFAULT_PIE, 1,
|
|
|
|
[Define if your target supports default PIE and it is enabled.])
|
|
|
|
fi
|
|
|
|
AC_SUBST([enable_default_pie])
|
|
|
|
|
|
|
|
# Check if -fno-PIE works.
|
|
|
|
AC_CACHE_CHECK([for -fno-PIE option],
|
|
|
|
[gcc_cv_c_no_fpie],
|
2015-05-31 14:06:06 +02:00
|
|
|
[saved_CXXFLAGS="$CXXFLAGS"
|
|
|
|
CXXFLAGS="$CXXFLAGS -fno-PIE"
|
2015-05-28 04:36:55 +02:00
|
|
|
AC_COMPILE_IFELSE([int main(void) {return 0;}],
|
|
|
|
[gcc_cv_c_no_fpie=yes],
|
|
|
|
[gcc_cv_c_no_fpie=no])
|
2015-05-31 14:06:06 +02:00
|
|
|
CXXFLAGS="$saved_CXXFLAGS"])
|
2015-05-28 04:36:55 +02:00
|
|
|
if test "$gcc_cv_c_no_fpie" = "yes"; then
|
|
|
|
NO_PIE_CFLAGS="-fno-PIE"
|
|
|
|
fi
|
|
|
|
AC_SUBST([NO_PIE_CFLAGS])
|
|
|
|
|
|
|
|
# Check if -no-pie works.
|
|
|
|
AC_CACHE_CHECK([for -no-pie option],
|
|
|
|
[gcc_cv_no_pie],
|
|
|
|
[saved_LDFLAGS="$LDFLAGS"
|
|
|
|
LDFLAGS="$LDFLAGS -no-pie"
|
|
|
|
AC_LINK_IFELSE([int main(void) {return 0;}],
|
|
|
|
[gcc_cv_no_pie=yes],
|
|
|
|
[gcc_cv_no_pie=no])
|
|
|
|
LDFLAGS="$saved_LDFLAGS"])
|
|
|
|
if test "$gcc_cv_no_pie" = "yes"; then
|
|
|
|
NO_PIE_FLAG="-no-pie"
|
|
|
|
fi
|
|
|
|
AC_SUBST([NO_PIE_FLAG])
|
|
|
|
|
2015-07-16 10:36:02 +02:00
|
|
|
# Check linker supports '-z bndplt'
|
|
|
|
ld_bndplt_support=no
|
|
|
|
AC_MSG_CHECKING(linker -z bndplt option)
|
|
|
|
if test x"$ld_is_gold" = xno; then
|
|
|
|
if test $in_tree_ld = yes ; then
|
|
|
|
if test "$gcc_cv_gld_major_version" -eq 2 -a "$gcc_cv_gld_minor_version" -ge 25 -o "$gcc_cv_gld_major_version" -gt 2; then
|
|
|
|
ld_bndplt_support=yes
|
|
|
|
fi
|
|
|
|
elif test x$gcc_cv_ld != x; then
|
|
|
|
# Check if linker supports -a bndplt option
|
|
|
|
if $gcc_cv_ld --help 2>/dev/null | grep -- '-z bndplt' > /dev/null; then
|
|
|
|
ld_bndplt_support=yes
|
|
|
|
fi
|
|
|
|
fi
|
|
|
|
fi
|
|
|
|
if test x"$ld_bndplt_support" = xyes; then
|
|
|
|
AC_DEFINE(HAVE_LD_BNDPLT_SUPPORT, 1,
|
|
|
|
[Define if your linker supports -z bndplt])
|
|
|
|
fi
|
|
|
|
AC_MSG_RESULT($ld_bndplt_support)
|
|
|
|
|
1997-05-18 14:31:53 +02:00
|
|
|
# Configure the subdirectories
|
|
|
|
# AC_CONFIG_SUBDIRS($subdirs)
|
|
|
|
|
|
|
|
# Create the Makefile
|
1997-06-09 22:48:13 +02:00
|
|
|
# and configure language subdirectories
|
2004-01-03 20:04:34 +01:00
|
|
|
AC_CONFIG_FILES($all_outputs)
|
|
|
|
|
|
|
|
AC_CONFIG_COMMANDS([default],
|
1997-07-19 04:51:45 +02:00
|
|
|
[
|
2003-12-04 21:09:13 +01:00
|
|
|
case ${CONFIG_HEADERS} in
|
|
|
|
*auto-host.h:config.in*)
|
|
|
|
echo > cstamp-h ;;
|
1997-07-19 04:51:45 +02:00
|
|
|
esac
|
2003-08-31 08:07:42 +02:00
|
|
|
# Make sure all the subdirs exist.
|
common-target-def.h, [...]: New files.
* common/common-target-def.h, common/common-target.def,
common/common-target.h, common/config/default-common.c,
common/config/pa/pa-common.c: New files.
* Makefile.in (common_out_file, common_out_object_file,
COMMON_TARGET_H, COMMON_TARGET_DEF_H): New.
(OBJS-libcommon-target): Include $(common_out_object_file).
(prefix.o): Update dependencies.
($(common_out_object_file), common/common-target-hooks-def.h,
s-common-target-hooks-def-h): New.
(s-tm-texi): Also check timestamp on common-target.def.
(build/genhooks.o): Update dependencies.
* config.gcc (common_out_file, target_has_targetm_common): Define.
* config/pa/som.h (ALWAYS_STRIP_DOTDOT): Replace with
TARGET_ALWAYS_STRIP_DOTDOT.
* configure.ac (common_out_object_file): Define.
(common_out_file, common_out_object_file): Substitute.
(common): Create directory.
* configure: Regenerate.
* doc/tm.texi.in (targetm_common): Document.
(TARGET_ALWAYS_STRIP_DOTDOT): Add @hook entry.
* doc/tm.texi: Regenerate.
* genhooks.c (hook_array): Also include common/common-target.def.
* prefix.c (tm.h): Don't include.
(common/common-target.h): Include.
(ALWAYS_STRIP_DOTDOT): Don't define.
(update_path): Use targetm_common.always_strip_dotdot instead of
ALWAYS_STRIP_DOTDOT.
* system.h (ALWAYS_STRIP_DOTDOT): Poison.
From-SVN: r175052
2011-06-14 22:11:37 +02:00
|
|
|
for d in $subdirs doc build common c-family
|
2003-08-31 08:07:42 +02:00
|
|
|
do
|
|
|
|
test -d $d || mkdir $d
|
|
|
|
done
|
2002-01-08 20:03:20 +01:00
|
|
|
],
|
2004-10-12 10:22:31 +02:00
|
|
|
[subdirs='$subdirs'])
|
2004-01-03 20:04:34 +01:00
|
|
|
AC_OUTPUT
|
2010-11-19 18:27:18 +01:00
|
|
|
|