Latest updates from FSF 4.7 branch

From-SVN: r190174
This commit is contained in:
Nick Clifton 2012-08-06 09:24:36 +00:00
parent 6e5fcec72b
commit e3f70cbec1
668 changed files with 13811 additions and 13113 deletions

View File

@ -1,127 +1,112 @@
GNU LIBRARY GENERAL PUBLIC LICENSE
Version 2, June 1991
GNU LESSER GENERAL PUBLIC LICENSE
Version 2.1, February 1999
Copyright (C) 1991, 1999 Free Software Foundation, Inc.
51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
Copyright (C) 1991 Free Software Foundation, Inc.
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA
Everyone is permitted to copy and distribute verbatim copies
of this license document, but changing it is not allowed.
[This is the first released version of the Lesser GPL. It also counts
as the successor of the GNU Library Public License, version 2, hence
the version number 2.1.]
[This is the first released version of the library GPL. It is
numbered 2 because it goes with version 2 of the ordinary GPL.]
Preamble
Preamble
The licenses for most software are designed to take away your
freedom to share and change it. By contrast, the GNU General Public
Licenses are intended to guarantee your freedom to share and change
free software--to make sure the software is free for all its users.
This license, the Lesser General Public License, applies to some
specially designated software packages--typically libraries--of the
Free Software Foundation and other authors who decide to use it. You
can use it too, but we suggest you first think carefully about whether
this license or the ordinary General Public License is the better
strategy to use in any particular case, based on the explanations
below.
This license, the Library General Public License, applies to some
specially designated Free Software Foundation software, and to any
other libraries whose authors decide to use it. You can use it for
your libraries, too.
When we speak of free software, we are referring to freedom of use,
not price. Our General Public Licenses are designed to make sure that
you have the freedom to distribute copies of free software (and charge
for this service if you wish); that you receive source code or can get
it if you want it; that you can change the software and use pieces of
it in new free programs; and that you are informed that you can do
these things.
When we speak of free software, we are referring to freedom, not
price. Our General Public Licenses are designed to make sure that you
have the freedom to distribute copies of free software (and charge for
this service if you wish), that you receive source code or can get it
if you want it, that you can change the software or use pieces of it
in new free programs; and that you know you can do these things.
To protect your rights, we need to make restrictions that forbid
distributors to deny you these rights or to ask you to surrender these
rights. These restrictions translate to certain responsibilities for
you if you distribute copies of the library or if you modify it.
anyone to deny you these rights or to ask you to surrender the rights.
These restrictions translate to certain responsibilities for you if
you distribute copies of the library, or if you modify it.
For example, if you distribute copies of the library, whether gratis
or for a fee, you must give the recipients all the rights that we gave
you. You must make sure that they, too, receive or can get the source
code. If you link other code with the library, you must provide
complete object files to the recipients, so that they can relink them
with the library after making changes to the library and recompiling
code. If you link a program with the library, you must provide
complete object files to the recipients so that they can relink them
with the library, after making changes to the library and recompiling
it. And you must show them these terms so they know their rights.
We protect your rights with a two-step method: (1) we copyright the
library, and (2) we offer you this license, which gives you legal
Our method of protecting your rights has two steps: (1) copyright
the library, and (2) offer you this license which gives you legal
permission to copy, distribute and/or modify the library.
To protect each distributor, we want to make it very clear that
there is no warranty for the free library. Also, if the library is
modified by someone else and passed on, the recipients should know
that what they have is not the original version, so that the original
author's reputation will not be affected by problems that might be
introduced by others.
Also, for each distributor's protection, we want to make certain
that everyone understands that there is no warranty for this free
library. If the library is modified by someone else and passed on, we
want its recipients to know that what they have is not the original
version, so that any problems introduced by others will not reflect on
the original authors' reputations.
Finally, software patents pose a constant threat to the existence of
any free program. We wish to make sure that a company cannot
effectively restrict the users of a free program by obtaining a
restrictive license from a patent holder. Therefore, we insist that
any patent license obtained for a version of the library must be
consistent with the full freedom of use specified in this license.
Finally, any free program is threatened constantly by software
patents. We wish to avoid the danger that companies distributing free
software will individually obtain patent licenses, thus in effect
transforming the program into proprietary software. To prevent this,
we have made it clear that any patent must be licensed for everyone's
free use or not licensed at all.
Most GNU software, including some libraries, is covered by the
ordinary GNU General Public License. This license, the GNU Lesser
General Public License, applies to certain designated libraries, and
is quite different from the ordinary General Public License. We use
this license for certain libraries in order to permit linking those
libraries into non-free programs.
Most GNU software, including some libraries, is covered by the ordinary
GNU General Public License, which was designed for utility programs. This
license, the GNU Library General Public License, applies to certain
designated libraries. This license is quite different from the ordinary
one; be sure to read it in full, and don't assume that anything in it is
the same as in the ordinary license.
When a program is linked with a library, whether statically or using
a shared library, the combination of the two is legally speaking a
combined work, a derivative of the original library. The ordinary
General Public License therefore permits such linking only if the
entire combination fits its criteria of freedom. The Lesser General
Public License permits more lax criteria for linking other code with
the library.
The reason we have a separate public license for some libraries is that
they blur the distinction we usually make between modifying or adding to a
program and simply using it. Linking a program with a library, without
changing the library, is in some sense simply using the library, and is
analogous to running a utility program or application program. However, in
a textual and legal sense, the linked executable is a combined work, a
derivative of the original library, and the ordinary General Public License
treats it as such.
We call this license the "Lesser" General Public License because it
does Less to protect the user's freedom than the ordinary General
Public License. It also provides other free software developers Less
of an advantage over competing non-free programs. These disadvantages
are the reason we use the ordinary General Public License for many
libraries. However, the Lesser license provides advantages in certain
special circumstances.
Because of this blurred distinction, using the ordinary General
Public License for libraries did not effectively promote software
sharing, because most developers did not use the libraries. We
concluded that weaker conditions might promote sharing better.
For example, on rare occasions, there may be a special need to
encourage the widest possible use of a certain library, so that it
becomes a de-facto standard. To achieve this, non-free programs must
be allowed to use the library. A more frequent case is that a free
library does the same job as widely used non-free libraries. In this
case, there is little to gain by limiting the free library to free
software only, so we use the Lesser General Public License.
In other cases, permission to use a particular library in non-free
programs enables a greater number of people to use a large body of
free software. For example, permission to use the GNU C Library in
non-free programs enables many more people to use the whole GNU
operating system, as well as its variant, the GNU/Linux operating
system.
Although the Lesser General Public License is Less protective of the
users' freedom, it does ensure that the user of a program that is
linked with the Library has the freedom and the wherewithal to run
that program using a modified version of the Library.
However, unrestricted linking of non-free programs would deprive the
users of those programs of all benefit from the free status of the
libraries themselves. This Library General Public License is intended to
permit developers of non-free programs to use free libraries, while
preserving your freedom as a user of such programs to change the free
libraries that are incorporated in them. (We have not seen how to achieve
this as regards changes in header files, but we have achieved it as regards
changes in the actual functions of the Library.) The hope is that this
will lead to faster development of free libraries.
The precise terms and conditions for copying, distribution and
modification follow. Pay close attention to the difference between a
"work based on the library" and a "work that uses the library". The
former contains code derived from the library, whereas the latter must
be combined with the library in order to run.
former contains code derived from the library, while the latter only
works together with the library.
Note that it is possible for a library to be covered by the ordinary
General Public License rather than by this special one.
GNU LESSER GENERAL PUBLIC LICENSE
GNU LIBRARY GENERAL PUBLIC LICENSE
TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
0. This License Agreement applies to any software library or other
program which contains a notice placed by the copyright holder or
other authorized party saying it may be distributed under the terms of
this Lesser General Public License (also called "this License").
Each licensee is addressed as "you".
0. This License Agreement applies to any software library which
contains a notice placed by the copyright holder or other authorized
party saying it may be distributed under the terms of this Library
General Public License (also called "this License"). Each licensee is
addressed as "you".
A "library" means a collection of software functions and/or data
prepared so as to be conveniently linked with application programs
@ -138,8 +123,8 @@ included without limitation in the term "modification".)
"Source code" for a work means the preferred form of the work for
making modifications to it. For a library, complete source code means
all the source code for all modules it contains, plus any associated
interface definition files, plus the scripts used to control
compilation and installation of the library.
interface definition files, plus the scripts used to control compilation
and installation of the library.
Activities other than copying, distribution and modification are not
covered by this License; they are outside its scope. The act of
@ -148,7 +133,7 @@ such a program is covered only if its contents constitute a work based
on the Library (independent of the use of the Library in a tool for
writing it). Whether that is true depends on what the Library does
and what the program that uses the Library does.
1. You may copy and distribute verbatim copies of the Library's
complete source code as you receive it, in any medium, provided that
you conspicuously and appropriately publish on each copy an
@ -270,7 +255,7 @@ distribute the object code for the work under the terms of Section 6.
Any executables containing that work also fall under Section 6,
whether or not they are linked directly with the Library itself.
6. As an exception to the Sections above, you may also combine or
6. As an exception to the Sections above, you may also compile or
link a "work that uses the Library" with the Library to produce a
work containing portions of the Library, and distribute that work
under terms of your choice, provided that the terms permit
@ -297,31 +282,23 @@ of these things:
Library will not necessarily be able to recompile the application
to use the modified definitions.)
b) Use a suitable shared library mechanism for linking with the
Library. A suitable mechanism is one that (1) uses at run time a
copy of the library already present on the user's computer system,
rather than copying library functions into the executable, and (2)
will operate properly with a modified version of the library, if
the user installs one, as long as the modified version is
interface-compatible with the version that the work was made with.
b) Accompany the work with a written offer, valid for at
least three years, to give the same user the materials
specified in Subsection 6a, above, for a charge no more
than the cost of performing this distribution.
c) Accompany the work with a written offer, valid for at least
three years, to give the same user the materials specified in
Subsection 6a, above, for a charge no more than the cost of
performing this distribution.
d) If distribution of the work is made by offering access to copy
c) If distribution of the work is made by offering access to copy
from a designated place, offer equivalent access to copy the above
specified materials from the same place.
e) Verify that the user has already received a copy of these
d) Verify that the user has already received a copy of these
materials or that you have already sent this user a copy.
For an executable, the required form of the "work that uses the
Library" must include any data and utility programs needed for
reproducing the executable from it. However, as a special exception,
the materials to be distributed need not include anything that is
normally distributed (in either source or binary form) with the major
the source code distributed need not include anything that is normally
distributed (in either source or binary form) with the major
components (compiler, kernel, and so on) of the operating system on
which the executable runs, unless that component itself accompanies
the executable.
@ -370,7 +347,7 @@ Library), the recipient automatically receives a license from the
original licensor to copy, distribute, link with or modify the Library
subject to these terms and conditions. You may not impose any further
restrictions on the recipients' exercise of the rights granted herein.
You are not responsible for enforcing compliance by third parties with
You are not responsible for enforcing compliance by third parties to
this License.
11. If, as a consequence of a court judgment or allegation of patent
@ -386,10 +363,9 @@ all those who receive copies directly or indirectly through you, then
the only way you could satisfy both it and this License would be to
refrain entirely from distribution of the Library.
If any portion of this section is held invalid or unenforceable under
any particular circumstance, the balance of the section is intended to
apply, and the section as a whole is intended to apply in other
circumstances.
If any portion of this section is held invalid or unenforceable under any
particular circumstance, the balance of the section is intended to apply,
and the section as a whole is intended to apply in other circumstances.
It is not the purpose of this section to induce you to infringe any
patents or other property right claims or to contest validity of any
@ -407,14 +383,14 @@ be a consequence of the rest of this License.
12. If the distribution and/or use of the Library is restricted in
certain countries either by patents or by copyrighted interfaces, the
original copyright holder who places the Library under this License
may add an explicit geographical distribution limitation excluding those
countries, so that distribution is permitted only in or among
countries not thus excluded. In such case, this License incorporates
the limitation as if written in the body of this License.
original copyright holder who places the Library under this License may add
an explicit geographical distribution limitation excluding those countries,
so that distribution is permitted only in or among countries not thus
excluded. In such case, this License incorporates the limitation as if
written in the body of this License.
13. The Free Software Foundation may publish revised and/or new
versions of the Lesser General Public License from time to time.
versions of the Library General Public License from time to time.
Such new versions will be similar in spirit to the present version,
but may differ in detail to address new problems or concerns.
@ -435,7 +411,7 @@ decision will be guided by the two goals of preserving the free status
of all derivatives of our free software and of promoting the sharing
and reuse of software generally.
NO WARRANTY
NO WARRANTY
15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO
WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW.
@ -458,53 +434,49 @@ FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF
SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH
DAMAGES.
END OF TERMS AND CONDITIONS
END OF TERMS AND CONDITIONS
How to Apply These Terms to Your New Libraries
Appendix: How to Apply These Terms to Your New Libraries
If you develop a new library, and you want it to be of the greatest
possible use to the public, we recommend making it free software that
everyone can redistribute and change. You can do so by permitting
redistribution under these terms (or, alternatively, under the terms
of the ordinary General Public License).
To apply these terms, attach the following notices to the library.
It is safest to attach them to the start of each source file to most
effectively convey the exclusion of warranty; and each file should
have at least the "copyright" line and a pointer to where the full
notice is found.
redistribution under these terms (or, alternatively, under the terms of the
ordinary General Public License).
To apply these terms, attach the following notices to the library. It is
safest to attach them to the start of each source file to most effectively
convey the exclusion of warranty; and each file should have at least the
"copyright" line and a pointer to where the full notice is found.
<one line to give the library's name and a brief idea of what it does.>
Copyright (C) <year> <name of author>
This library is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public
modify it under the terms of the GNU Library General Public
License as published by the Free Software Foundation; either
version 2.1 of the License, or (at your option) any later version.
version 2 of the License, or (at your option) any later version.
This library 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
Lesser General Public License for more details.
Library General Public License for more details.
You should have received a copy of the GNU Lesser General Public
License along with this library; if not, write to the Free Software
Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
You should have received a copy of the GNU Library General Public
License along with this library; if not, write to the Free
Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
MA 02110-1301, USA
Also add information on how to contact you by electronic and paper mail.
You should also get your employer (if you work as a programmer) or
your school, if any, to sign a "copyright disclaimer" for the library,
if necessary. Here is a sample; alter the names:
You should also get your employer (if you work as a programmer) or your
school, if any, to sign a "copyright disclaimer" for the library, if
necessary. Here is a sample; alter the names:
Yoyodyne, Inc., hereby disclaims all copyright interest in the
library `Frob' (a library for tweaking knobs) written by James
Random Hacker.
library `Frob' (a library for tweaking knobs) written by James Random Hacker.
<signature of Ty Coon>, 1 April 1990
Ty Coon, President of Vice
That's all there is to it!

6829
ChangeLog

File diff suppressed because it is too large Load Diff

View File

@ -1,552 +1,121 @@
Note
====
Please feel free to add, edit, delete this file.
Please do not make ChangeLog entries.
This file contains information about people who are permitted to make
changes to various parts of the compiler and associated libraries.
COPYING, COPYING.LIB, README
http://gnu.org.
Please do not contact the people in this file directly to report
problems in GCC.
Makefile.*; configure; configure.ac; src-release
Any global maintainer can approve changes to these
files, but they should be aware that they need to
be kept in sync with their counterparts in the GCC
repository. Also please notify the following of
any committed patches:
binutils@sourceware.org
gdb-patches@sourceware.org
For general information about GCC, please visit:
bfd/; binutils/; elfcpp/; gas/; gold/; gprof/; ld/; opcodes/; cpu/;
BFD's part of include/
http://gcc.gnu.org
binutils: http://sourceware.org/binutils/
Patches to binutils@sourceware.org.
Please notify the following of any interface changes:
gdb-patches@sourceware.org
To report problems in GCC, please visit:
cgen/; cgen parts of opcodes/, sim/ & include/
cgen: http://sourceware.org/cgen/
Patches to cgen@sourceware.org
May need separate opcodes/ or sim/ approval for
commits of regenerated files there.
http://gcc.gnu.org/bugs.html
config.guess; config.sub; readline/support/config.{sub,guess}
config: http://savannah.gnu.org/projects/config
Patches to config-patches@gnu.org.
Changes need to be done in tandem with the official CONFIG
sources or submitted to the master file maintainer and brought
in via a merge. When updating any of these files, please be
sure to update all of them.
Please notify the following of any committed patches:
binutils@sourceware.org
gdb-patches@sourceware.org
Maintainers
===========
depcomp; mkinstalldirs
Send bug reports and patches to bug-automake@gnu.org.
Global Reviewers
gdb/; readline/; sim/; GDB's part of include/
GDB: http://www.gnu.org/software/gdb/
Patches to gdb-patches@sourceware.org.
See also gdb/MAINTAINERS and sim/MAINTAINERS.
Richard Earnshaw richard.earnshaw@arm.com
Richard Guenther rguenther@suse.de
Richard Henderson rth@redhat.com
Jakub Jelinek jakub@redhat.com
Geoffrey Keating geoffk@geoffk.org
Richard Kenner kenner@nyu.edu
Jeff Law law@redhat.com
Michael Meissner gnu@the-meissners.org
Jason Merrill jason@redhat.com
David S. Miller davem@redhat.com
Mark Mitchell mark@codesourcery.com
Joseph Myers joseph@codesourcery.com
Diego Novillo dnovillo@google.com
Bernd Schmidt bernds@codesourcery.com
Ian Lance Taylor ian@airs.com
Jim Wilson wilson@tuliptree.org
include/
See binutils/, gdb/, sid/, gcc/, libiberty/ etc.
Note that while global reviewers can approve changes to any part of
the compiler or associated libraries, they still need approval for
their own patches from other maintainers or reviewers.
intl/; config.rhost; libiberty/; libiberty's part of include/
gcc: http://gcc.gnu.org
Changes need to be done in tandem with the official GCC
sources or submitted to the master file maintainer and brought
in via a merge. Note: approved patches in gcc's libiberty or
intl are automatically approved in this libiberty and intl also;
feel free to merge them yourself if needed sooner than the next
merge. Otherwise, changes are automatically merged, usually
within a day.
CPU Port Maintainers (CPU alphabetical order)
libdecnumber/
See libiberty. The master copy of this directory is in the GCC
repository.
alpha port Richard Henderson rth@redhat.com
arm port Nick Clifton nickc@redhat.com
arm port Richard Earnshaw richard.earnshaw@arm.com
arm port Paul Brook paul@codesourcery.com
arm port Ramana Radhakrishnan ramana.radhakrishnan@arm.com
avr port Denis Chertykov chertykov@gmail.com
avr port Anatoly Sokolov aesok@post.ru
avr port Eric Weddington eric.weddington@atmel.com
bfin port Bernd Schmidt bernds@codesourcery.com
bfin port Jie Zhang jzhang918@gmail.com
c6x port Bernd Schmidt bernds@codesourcery.com
cris port Hans-Peter Nilsson hp@axis.com
epiphany port Joern Rennecke joern.rennecke@embecosm.com
fr30 port Nick Clifton nickc@redhat.com
frv port Nick Clifton nickc@redhat.com
frv port Alexandre Oliva aoliva@redhat.com
h8 port Jeff Law law@redhat.com
h8 port Kazu Hirata kazu@codesourcery.com
hppa port Jeff Law law@redhat.com
hppa port John David Anglin dave.anglin@nrc-cnrc.gc.ca
i386 port Richard Henderson rth@redhat.com
i386 port Jan Hubicka jh@suse.cz
i386 port Uros Bizjak ubizjak@gmail.com
ia64 port Jim Wilson wilson@tuliptree.org
ia64 port Steve Ellcey sje@cup.hp.com
iq2000 port Nick Clifton nickc@redhat.com
lm32 port Sebastien Bourdeauducq sebastien@milkymist.org
m32c port DJ Delorie dj@redhat.com
m32r port Nick Clifton nickc@redhat.com
m68k port (?) Jeff Law law@redhat.com
m68k port Andreas Schwab schwab@linux-m68k.org
m68k-motorola-sysv port Philippe De Muyter phdm@macqel.be
mcore port Nick Clifton nickc@redhat.com
mep port DJ Delorie dj@redhat.com
microblaze Michael Eager eager@eagercon.com
mips port Eric Christopher echristo@apple.com
mips port Richard Sandiford rdsandiford@googlemail.com
mmix port Hans-Peter Nilsson hp@bitrange.com
mn10300 port Jeff Law law@redhat.com
mn10300 port Alexandre Oliva aoliva@redhat.com
moxie port Anthony Green green@moxielogic.com
pdp11 port Paul Koning ni1d@arrl.net
picochip port Hariharan Sandanagobalane hariharan.gcc@gmail.com
picochip port Daniel Towner dant@picochip.com
rl78 port DJ Delorie dj@redhat.com
rs6000 port Geoff Keating geoffk@geoffk.org
rs6000 port David Edelsohn dje.gcc@gmail.com
rs6000 vector extns Aldy Hernandez aldyh@redhat.com
rx port Nick Clifton nickc@redhat.com
s390 port Hartmut Penner hpenner@de.ibm.com
s390 port Ulrich Weigand uweigand@de.ibm.com
s390 port Andreas Krebbel Andreas.Krebbel@de.ibm.com
score port Chen Liqin liqin.gcc@gmail.com
sh port Alexandre Oliva aoliva@redhat.com
sh port Kaz Kojima kkojima@gcc.gnu.org
sparc port Richard Henderson rth@redhat.com
sparc port David S. Miller davem@redhat.com
sparc port Eric Botcazou ebotcazou@libertysurf.fr
spu port Trevor Smigiel trevor_smigiel@playstation.sony.com
spu port David Edelsohn dje.gcc@gmail.com
spu port Ulrich Weigand uweigand@de.ibm.com
tilegx port Walter Lee walt@tilera.com
tilepro port Walter Lee walt@tilera.com
v850 port Nick Clifton nickc@redhat.com
vax port Matt Thomas matt@3am-software.com
x86-64 port Jan Hubicka jh@suse.cz
xstormy16 port Nick Clifton nickc@redhat.com
xtensa port Sterling Augustine augustine.sterling@gmail.com
ltconfig; ltmain.sh; ltcf-*.sh
libtool: http://www.gnu.org/software/libtool/
Changes need to be done in tandem with the official LIBTOOL
sources or submitted to the master file maintainer and brought
in via a merge.
OS Port Maintainers (OS alphabetical order)
move-if-change
Send bug reports and patches to bug-gnulib@gnu.org.
darwin port Mike Stump mikestump@comcast.net
darwin port Eric Christopher echristo@apple.com
darwin port Stan Shebs stanshebs@earthlink.net
DJGPP DJ Delorie dj@delorie.com
freebsd Loren J. Rittle ljrittle@acm.org
GNU/Hurd Thomas Schwinge thomas@schwinge.name
hpux John David Anglin dave.anglin@nrc-cnrc.gc.ca
hpux Steve Ellcey sje@cup.hp.com
irix, osf, solaris Rainer Orth ro@CeBiTec.Uni-Bielefeld.DE
netbsd Jason Thorpe thorpej@netbsd.org
netbsd Krister Walfridsson krister.walfridsson@gmail.com
sh-linux-gnu Kaz Kojima kkojima@gcc.gnu.org
RTEMS Ports Joel Sherrill joel@oarcorp.com
RTEMS Ports Ralf Corsepius ralf.corsepius@rtems.org
VMS Douglas Rupp rupp@gnat.com
VMS Tristan Gingold gingold@adacore.com
VxWorks ports Nathan Sidwell nathan@codesourcery.com
windows, cygwin, mingw Christopher Faylor cgf@gcc.gnu.org
windows, cygwin, mingw Kai Tietz ktietz@redhat.com
windows, cygwin, mingw Dave Korn dave.korn.cygwin@gmail.com
symlink-tree
gcc: http://gcc.gnu.org
See libiberty.
Language Front Ends Maintainers
newlib/; libgloss/
http://sourceware.org/newlib/
Patches to newlib@sourceware.org.
C front end/ISO C99 Joseph Myers joseph@codesourcery.com
C front end/ISO C99 Richard Henderson rth@redhat.com
Ada front end Geert Bosch bosch@gnat.com
Ada front end Robert Dewar dewar@gnat.com
Ada front end Arnaud Charlet charlet@act-europe.fr
Ada front end Eric Botcazou ebotcazou@libertysurf.fr
Fortran Paul Brook paul@codesourcery.com
c++ Jason Merrill jason@redhat.com
c++ Mark Mitchell mark@codesourcery.com
c++ Nathan Sidwell nathan@codesourcery.com
go Ian Lance Taylor ian@airs.com
java Per Bothner per@bothner.com
java Andrew Haley aph@redhat.com
java Tom Tromey tromey@redhat.com
objective-c/c++ Mike Stump mikestump@comcast.net
objective-c/c++ Stan Shebs stanshebs@earthlink.net
sid/; SID's part of cgen/
sid: http://sourceware.org/sid/
Patches to sid@sourceware.org
Various Maintainers
texinfo/texinfo.tex
texinfo: http://ftp.gnu.org.
Latest version can be found on ftp://ftp.gnu.org and can be
imported at any (reasonable) time.
Please not use GCC's texinfo. Please do not import texinfo.
libcpp Per Bothner per@bothner.com
libcpp All C and C++ front end maintainers
fp-bit Ian Lance Taylor ian@airs.com
libdecnumber Ben Elliston bje@gnu.org
libgcc Ian Lance Taylor ian@airs.com
libgcj Tom Tromey tromey@redhat.com
libgcj Bryce McKinlay mckinlay@redhat.com
libgo Ian Lance Taylor ian@airs.com
libgomp Richard Henderson rth@redhat.com
libgomp Jakub Jelinek jakub@redhat.com
libiberty DJ Delorie dj@redhat.com
libiberty Ian Lance Taylor ian@airs.com
libffi testsuite Andreas Tobler andreast@gcc.gnu.org
libobjc Nicola Pero nicola.pero@meta-innovation.com
libobjc Andrew Pinski pinskia@gmail.com
libquadmath Tobias Burnus burnus@net-b.de
libquadmath Jakub Jelinek jakub@redhat.com
loop discovery Michael Hayes m.hayes@elec.canterbury.ac.nz
soft-fp Joseph Myers joseph@codesourcery.com
scheduler (+ haifa) Jim Wilson wilson@tuliptree.org
scheduler (+ haifa) Michael Meissner gnu@the-meissners.org
scheduler (+ haifa) Jeff Law law@redhat.com
scheduler (+ haifa) Vladimir Makarov vmakarov@redhat.com
modulo-scheduler Ayal Zaks zaks@il.ibm.com
reorg Jeff Law law@redhat.com
caller-save.c Jeff Law law@redhat.com
callgraph Jan Hubicka jh@suse.cz
debugging code Jim Wilson wilson@tuliptree.org
dwarf debugging code Jason Merrill jason@redhat.com
c++ runtime libs Paolo Carlini paolo.carlini@oracle.com
c++ runtime libs Gabriel Dos Reis gdr@integrable-solutions.net
c++ runtime libs Ulrich Drepper drepper@redhat.com
c++ runtime libs Benjamin Kosnik bkoz@redhat.com
c++ runtime libs Loren J. Rittle ljrittle@acm.org
c++ runtime libs Jonathan Wakely redi@gcc.gnu.org
*synthetic multiply Torbjorn Granlund tege@swox.com
*c-torture Torbjorn Granlund tege@swox.com
fixincludes Bruce Korb bkorb@gnu.org
*gimpl* Jakub Jelinek jakub@redhat.com
*gimpl* Aldy Hernandez aldyh@redhat.com
*gimpl* Jason Merrill jason@redhat.com
gcse.c Jeff Law law@redhat.com
global opt framework Jeff Law law@redhat.com
jump.c David S. Miller davem@redhat.com
web pages Gerald Pfeifer gerald@pfeifer.com
config.sub/config.guess Ben Elliston config-patches@gnu.org
basic block reordering Jason Eckhardt jle@rice.edu
i18n Philipp Thomas pth@suse.de
i18n Joseph Myers joseph@codesourcery.com
diagnostic messages Gabriel Dos Reis gdr@integrable-solutions.net
build machinery (*.in) Paolo Bonzini bonzini@gnu.org
build machinery (*.in) DJ Delorie dj@redhat.com
build machinery (*.in) Nathanael Nerode neroden@gcc.gnu.org
build machinery (*.in) Alexandre Oliva aoliva@redhat.com
build machinery (*.in) Ralf Wildenhues Ralf.Wildenhues@gmx.de
docs co-maintainer Gerald Pfeifer gerald@pfeifer.com
docs co-maintainer Joseph Myers joseph@codesourcery.com
docstring relicensing Diego Novillo dnovillo@google.com
docstring relicensing Gerald Pfeifer gerald@pfeifer.com
docstring relicensing Joseph Myers joseph@codesourcery.com
predict.def Jan Hubicka jh@suse.cz
contrib/regression Geoff Keating geoffk@geoffk.org
gcov Jan Hubicka jh@suse.cz
gcov Nathan Sidwell nathan@codesourcery.com
option handling Neil Booth neil@daikokuya.co.uk
option handling Joseph Myers joseph@codesourcery.com
middle-end Jeff Law law@redhat.com
middle-end Roger Sayle roger@eyesopen.com
middle-end Ian Lance Taylor ian@airs.com
middle-end Diego Novillo dnovillo@google.com
middle-end Richard Guenther rguenther@suse.de
tree-ssa Diego Novillo dnovillo@google.com
tree-ssa Andrew MacLeod amacleod@redhat.com
PRE Daniel Berlin dberlin@dberlin.org
code sinking Daniel Berlin dberlin@dberlin.org
mudflap Frank Ch. Eigler fche@redhat.com
tree browser/unparser Sebastian Pop sebastian.pop@amd.com
scev, data dependence Daniel Berlin dberlin@dberlin.org
scev, data dependence Sebastian Pop sebastian.pop@amd.com
profile feedback Jan Hubicka jh@suse.cz
type-safe vectors Nathan Sidwell nathan@codesourcery.com
alias analysis Daniel Berlin dberlin@dberlin.org
reload Ulrich Weigand uweigand@de.ibm.com
reload Bernd Schmidt bernds@codesourcery.com
dfp.c, related Ben Elliston bje@gnu.org
RTL optimizers Eric Botcazou ebotcazou@libertysurf.fr
RTL optimizers Richard Sandiford rdsandiford@googlemail.com
auto-vectorizer Richard Guenther rguenther@suse.de
auto-vectorizer Zdenek Dvorak ook@ucw.cz
loop infrastructure Zdenek Dvorak ook@ucw.cz
OpenMP Jakub Jelinek jakub@redhat.com
testsuite Rainer Orth ro@CeBiTec.Uni-Bielefeld.DE
testsuite Mike Stump mikestump@comcast.net
register allocation Vladimir Makarov vmakarov@redhat.com
tcl/; tix/; itcl/; tk/; libgui/
insight: http://sourceware.org/insight/
Contact insight@sourceware.org.
Note that individuals who maintain parts of the compiler need approval to
check in changes outside of the parts of the compiler they maintain.
winsup/
cygwin: http://sourceware.org/cygwin
Patches to cygwin-patches@cygwin.com.
General discussion cygwin@cygwin.com.
Non-Algorithmic Maintainers
config-ml.in; makefile.vms; mkdep; setup.com;
etc/; utils/;
Any global maintainer can approve changes to these
files and directories.
loop optimizer Daniel Berlin dberlin@dberlin.org
compile; depcomp; install-sh; missing; ylwrap;
config/
Any global maintainer can approve changes to these
files and directories, but they should be aware
that they need to be kept in sync with their
counterparts in the GCC repository.
Note that individuals who maintain parts of the compiler as non-algorithmic
maintainers need approval to check in algorithmic changes or changes
outside of the parts of the compiler they maintain.
modules file
If you understand the file format (or can cut-and-paste existing
entries), modify it. If it scares you, get someone who does
understand it to help you. Be prepared to fix it if you do break it.
Reviewers
dataflow Paolo Bonzini bonzini@gnu.org
dataflow Seongbae Park seongbae.park@gmail.com
dataflow Kenneth Zadeck zadeck@naturalbridge.com
driver Joseph Myers joseph@codesourcery.com
Fortran Janne Blomqvist jb@gcc.gnu.org
Fortran Tobias Burnus burnus@net-b.de
Fortran Jerry DeLisle jvdelisle@gcc.gnu.org
Fortran Erik Edelmann erik.edelmann@iki.fi
Fortran Daniel Franke franke.daniel@gmail.com
Fortran Steven G. Kargl sgk@troutmask.apl.washington.edu
Fortran Thomas König tkoenig@gcc.gnu.org
Fortran Daniel Kraft d@domob.eu
Fortran Toon Moene toon@moene.org
Fortran Mikael Morin mikael.morin@sfr.fr
Fortran Brooks Moses brooks.moses@codesourcery.com
Fortran Tobias Schlüter tobias.schlueter@physik.uni-muenchen.de
Fortran Paul Thomas pault@gcc.gnu.org
Fortran Janus Weil janus@gcc.gnu.org
gengtype/GTY Laurynas Biveinis laurynas.biveinis@gmail.com
Graphite Daniel Berlin dberlin@dberlin.org
Graphite Tobias Grosser grosser@fim.uni-passau.de
Graphite Sebastian Pop sebastian.pop@amd.com
libcpp Tom Tromey tromey@redhat.com
loop optimizer Zdenek Dvorak ook@ucw.cz
LTO Diego Novillo dnovillo@google.com
LTO Richard Guenther rguenther@suse.de
LTO plugin Cary Coutant ccoutant@google.com
Plugin Diego Novillo dnovillo@google.com
Plugin Le-Chun Wu lcwu@google.com
register allocation Peter Bergner bergner@vnet.ibm.com
register allocation Kenneth Zadeck zadeck@naturalbridge.com
register allocation Seongbae Park seongbae.park@gmail.com
selective scheduling Andrey Belevantsev abel@ispras.ru
Note that while reviewers can approve changes to parts of the compiler
that they maintain, they still need approval for their own patches
from other maintainers or reviewers.
Write After Approval (last name alphabetical order)
Mark G. Adams mark.g.adams@sympatico.ca
Raksit Ashok raksit@google.com
Matt Austern austern@google.com
David Ayers ayers@fsfe.org
Giovanni Bajo giovannibajo@gcc.gnu.org
Simon Baldwin simonb@google.com
Scott Bambrough scottb@netwinder.org
Wolfgang Bangerth bangerth@dealii.org
Tejas Belagod tejas.belagod@arm.com
Andrey Belevantsev abel@ispras.ru
Jon Beniston jon@beniston.com
Peter Bergner bergner@vnet.ibm.com
Jan Beulich jbeulich@novell.com
David Billinghurst David.Billinghurst@riotinto.com
Tomas Bily tbily@suse.cz
Eric Blake ericb@gcc.gnu.org
Phil Blundell pb@futuretv.com
Hans Boehm hboehm@gcc.gnu.org
Segher Boessenkool segher@kernel.crashing.org
Ian Bolton ian.bolton@arm.com
Andrea Bona andrea.bona@st.com
Paolo Bonzini bonzini@gnu.org
Neil Booth neil@daikokuya.co.uk
Steven Bosscher steven@gcc.gnu.org
Robert Bowdidge bowdidge@apple.com
Joel Brobecker brobecker@gnat.com
Dave Brolley brolley@redhat.com
Julian Brown julian@codesourcery.com
Christian Bruel christian.bruel@st.com
Kevin Buettner kevinb@redhat.com
Andrew Cagney cagney@redhat.com
Daniel Carrera dcarrera@gmail.com
Stephane Carrez stcarrez@nerim.fr
Gabriel Charette gchare@google.com
Chandra Chavva cchavva@redhat.com
Fabien Chêne fabien@gcc.gnu.org
Bin Cheng bin.cheng@arm.com
Harshit Chopra harshit@google.com
William Cohen wcohen@redhat.com
Josh Conner jconner@apple.com
R. Kelley Cook kcook@gcc.gnu.org
Christian Cornelssen ccorn@cs.tu-berlin.de
François-Xavier Coudert fxcoudert@gcc.gnu.org
Cary Coutant ccoutant@google.com
Ian Dall ian@beware.dropbear.id.au
David Daney david.daney@caviumnetworks.com
Bud Davis jmdavis@link.com
Chris Demetriou cgd@google.com
Sameera Deshpande sameera.deshpande@arm.com
François Dumont fdumont@gcc.gnu.org
Benoit Dupont de Dinechin benoit.dupont-de-dinechin@st.com
Michael Eager eager@eagercon.com
Phil Edwards pme@gcc.gnu.org
Mohan Embar gnustuff@thisiscool.com
Oleg Endo olegendo@gcc.gnu.org
Revital Eres eres@il.ibm.com
Marc Espie espie@cvs.openbsd.org
Rafael Ávila de Espíndola espindola@google.com
Ansgar Esztermann ansgar@thphy.uni-duesseldorf.de
Doug Evans dje@google.com
Chris Fairles cfairles@gcc.gnu.org
Changpeng Fang changpeng.fang@amd.com
Li Feng nemokingdom@gmail.com
Thomas Fitzsimmons fitzsim@redhat.com
Brian Ford ford@vss.fsi.com
John Freeman jfreeman08@gmail.com
Nathan Froyd froydnj@gcc.gnu.org
Chao-ying Fu fu@mips.com
Gary Funck gary@intrepid.com
Pompapathi V Gadad Pompapathi.V.Gadad@nsc.com
Kaveh Ghazi ghazi@gcc.gnu.org
Matthew Gingell gingell@gnat.com
Tristan Gingold gingold@adacore.com
Anthony Green green@redhat.com
Doug Gregor doug.gregor@gmail.com
Matthew Gretton-Dann matthew.gretton-dann@arm.com
Jon Grimm jgrimm2@us.ibm.com
Laurent Guerby laurent@guerby.net
Xuepeng Guo terry.guo@arm.com
Wei Guozhi carrot@google.com
Mostafa Hagog hagog@gcc.gnu.org
Olivier Hainque hainque@act-europe.fr
Stuart Hastings stuart@apple.com
Pat Haugen pthaugen@us.ibm.com
Mark Heffernan meheff@google.com
George Helffrich george@gcc.gnu.org
Fergus Henderson fjh@cs.mu.oz.au
Stuart Henderson shenders@gcc.gnu.org
Matthew Hiller hiller@redhat.com
Manfred Hollstein mh@suse.com
Falk Hueffner falk@debian.org
Andrew John Hughes gnu_andrew@member.fsf.org
Andy Hutchinson hutchinsonandy@aim.com
Bernardo Innocenti bernie@develer.com
Balaji V. Iyer bviyer@gmail.com
Daniel Jacobowitz drow@false.org
Andreas Jaeger aj@suse.de
Harsha Jagasia harsha.jagasia@amd.com
Fariborz Jahanian fjahanian@apple.com
Martin Jambor mjambor@suse.cz
Andrew Jenner andrew@codesourcery.com
Janis Johnson janisjo@codesourcery.com
Teresa Johnson tejohnson@google.com
Kean Johnston jkj@sco.com
Phillip Jordan phillip.m.jordan@gmail.com
Tim Josling tej@melbpc.org.au
Victor Kaplansky victork@il.ibm.com
Brendan Kehoe brendan@zen.org
Matthias Klose doko@debian.org
Andi Kleen andi@firstfloor.org
Jeff Knaggs jknaggs@redhat.com
Michael Koch konqueror@gmx.de
Matt Kraai kraai@ftbfs.org
Jan Kratochvil jan.kratochvil@redhat.com
Venkataramanan Kumar venkataramanan.kumar@amd.com
Maxim Kuvyrkov maxim@codesourcery.com
Doug Kwan dougkwan@google.com
Scott Robert Ladd scott.ladd@coyotegulch.com
Razya Ladelsky razya@gcc.gnu.org
Thierry Lafage thierry.lafage@inria.fr
Aaron W. LaFramboise aaronavay62@aaronwl.com
Rask Ingemann Lambertsen ccc94453@vip.cybercity.dk
Asher Langton langton2@llnl.gov
Chris Lattner sabre@nondot.org
Terry Laurenzo tlaurenzo@gmail.com
Georg-Johann Lay avr@gjlay.de
Marc Lehmann pcg@goof.com
James Lemke jwlemke@codesourcery.com
Kriang Lerdsuwanakij lerdsuwa@users.sourceforge.net
Jiangning Liu jiangning.liu@arm.com
Sa Liu saliu@de.ibm.com
Ralph Loader rcl@ihug.co.nz
Gabor Loki loki@inf.u-szeged.hu
Sandra Loosemore sandra@codesourcery.com
Manuel López-Ibáñez manu@gcc.gnu.org
Martin v. Löwis loewis@informatik.hu-berlin.de
H.J. Lu hjl.tools@gmail.com
Xinliang David Li davidxl@google.com
Luis Machado luisgpm@br.ibm.com
Ziga Mahkovec ziga.mahkovec@klika.si
Simon Martin simartin@users.sourceforge.net
Ranjit Mathew rmathew@hotmail.com
Michael Matz matz@suse.de
Greg McGary gkm@gnu.org
Adam Megacz adam@xwt.org
Bingfeng Mei bmei@broadcom.com
Jim Meyering jim@meyering.net
Martin Michlmayr tbm@cyrius.com
Lee Millward lee.millward@gmail.com
Alan Modra amodra@gmail.com
Alexander Monakov amonakov@ispras.ru
Catherine Moore clm@codesourcery.com
James A. Morrison phython@gcc.gnu.org
Dirk Mueller dmueller@suse.de
Phil Muldoon pmuldoon@redhat.com
Quentin Neill quentin.neill.gnu@gmail.com
Adam Nemet adambnemet@gmail.com
Thomas Neumann tneumann@users.sourceforge.net
Dan Nicolaescu dann@ics.uci.edu
Dorit Nuzman dorit@il.ibm.com
David O'Brien obrien@FreeBSD.org
Carlos O'Donell carlos@codesourcery.com
Peter O'Gorman pogma@thewrittenword.com
Andrea Ornstein andrea.ornstein@st.com
Seongbae Park seongbae.park@gmail.com
Devang Patel dpatel@apple.com
Fernando Pereira pronesto@gmail.com
Kaushik Phatak kaushik.phatak@kpitcummins.com
Nicolas Pitre nico@cam.org
Paul Pluzhnikov ppluzhnikov@google.com
Antoniu Pop antoniu.pop@gmail.com
Vladimir Prus vladimir@codesourcery.com
Yao Qi yao@codesourcery.com
Jerry Quinn jlquinn@optonline.net
Ramana Radhakrishnan ramana.radhakrishnan@arm.com
Easwaran Raman eraman@google.com
Rolf Rasmussen rolfwr@gcc.gnu.org
Volker Reichelt v.reichelt@netcologne.de
Bernhard Reutner-Fischer rep.dot.nop@gmail.com
Tom Rix trix@redhat.com
Craig Rodrigues rodrigc@gcc.gnu.org
Erven Rohou erven.rohou@inria.fr
Ira Rosen irar@il.ibm.com
Maciej W. Rozycki macro@linux-mips.org
Silvius Rus rus@google.com
Matthew Sachs msachs@apple.com
Iain Sandoe iains@gcc.gnu.org
Duncan Sands baldrick@gcc.gnu.org
William Schmidt wschmidt@linux.vnet.ibm.com
Dodji Seketeli dodji@gcc.gnu.org
Svein Seldal svein@dev.seldal.com
Thiemo Seufer ths@networkno.de
Marcus Shawcroft marcus.shawcroft@arm.com
Johannes Singler singler@kit.edu
Franz Sirl franz.sirl-kernel@lauterbach.com
Jan Sjodin jan.sjodin@amd.com
Edward Smith-Rowland 3dw4rd@verizon.net
Jayant Sonar jayant.sonar@kpitcummins.com
Michael Sokolov msokolov@ivan.Harhan.ORG
Richard Stallman rms@gnu.org
Basile Starynkevitch basile@starynkevitch.net
Jakub Staszak kuba@et.pl
Graham Stott graham.stott@btinternet.com
Andrew Stubbs ams@codesourcery.com
Mike Stump mikestump@comcast.net
Jeff Sturm jsturm@gcc.gnu.org
Gabriele Svelto gabriele.svelto@st.com
Sriraman Tallam tmsriram@google.com
Chung-Lin Tang cltang@codesourcery.com
Samuel Tardieu sam@rfc1149.net
Kresten Krab Thorup krab@gcc.gnu.org
Caroline Tice ctice@apple.com
Konrad Trifunovic konrad.trifunovic@inria.fr
David Ung davidu@mips.com
Neil Vachharajani nvachhar@gmail.com
Kris Van Hees kris.van.hees@oracle.com
Tom de Vries tom@codesourcery.com
Nenad Vukicevic nenad@intrepid.com
Feng Wang fengwang@nudt.edu.cn
Stephen M. Webb stephen.webb@bregmasoft.com
John Wehle john@feith.com
Florian Weimer fw@deneb.enyo.de
Zack Weinberg zackw@panix.com
Mark Wielaard mark@gcc.gnu.org
Ollie Wild aaw@google.com
Kevin Williams kevin.williams@inria.fr
Carlo Wood carlo@alinoe.com
Le-Chun Wu lcwu@google.com
Mingjie Xing mingjie.xing@gmail.com
Canqun Yang canqun@nudt.edu.cn
Jeffrey Yasskin jyasskin@google.com
Joey Ye joey.ye@arm.com
David Yuste david.yuste@gmail.com
Kirill Yukhin kirill.yukhin@gmail.com
Kenneth Zadeck zadeck@naturalbridge.com
Yufeng Zhang yufeng.zhang@arm.com
Shujing Zhao pearly.zhao@oracle.com
Jon Ziegler jonz@apple.com
Roman Zippel zippel@linux-m68k.org
Josef Zlomek josef.zlomek@email.cz
Bug database only accounts
James Dennett jdennett@acm.org
Christian Ehrhardt ehrhardt@mathematik.uni-ulm.de
Dara Hazeghi dhazeghi@yahoo.com
/* Local variables: */
/* change-log-default-name: "/dev/null" */
/* End: */

View File

@ -26,8 +26,16 @@ AutoGen definitions Makefile.tpl;
// that recursive target in its Makefile.
build_modules= { module= libiberty; };
build_modules= { module= intl; };
build_modules= { module= bison; };
build_modules= { module= flex; };
// Flex is weird - in order to build it you need a working flex
// executable... The problem here is that the top level makefile
// will setup the FLEX and LEX environment variables to be the
// flex executable that we are trying to build (and which has not
// been created yet). The solution is to override these two
// variables when configuring and building flex and to hope that
// a working alternative is somewhere in the user's PATH.
build_modules= { module= flex; extra_configure_flags='LEX="flex"'; extra_make_flags='LEX=flex FLEX=flex'; };
build_modules= { module= m4; };
build_modules= { module= texinfo; };
build_modules= { module= fixincludes; };
@ -96,7 +104,7 @@ host_modules= { module= m4; };
host_modules= { module= readline; };
host_modules= { module= sid; };
host_modules= { module= sim; };
host_modules= { module= texinfo; no_install= true; };
host_modules= { module= texinfo; };
host_modules= { module= zlib; no_install=true; no_check=true; bootstrap=true; };
host_modules= { module= gdb; };
host_modules= { module= expect; };
@ -274,8 +282,8 @@ flags_to_pass = { flag= LEAN ; };
// Build modules
dependencies = { module=all-build-bison; on=all-build-texinfo; };
dependencies = { module=all-build-bison; on=all-build-intl; };
dependencies = { module=all-build-flex; on=all-build-texinfo; };
dependencies = { module=all-build-flex; on=all-build-bison; };
dependencies = { module=all-build-flex; on=all-build-m4; };
dependencies = { module=all-build-libiberty; on=all-build-texinfo; };
dependencies = { module=all-build-m4; on=all-build-texinfo; };
@ -366,6 +374,8 @@ dependencies = { module=configure-opcodes; on=configure-libiberty; hard=true; };
dependencies = { module=all-opcodes; on=all-libiberty; };
dependencies = { module=configure-binutils; on=configure-intl; };
dependencies = { module=configure-binutils; on=all-build-flex; };
dependencies = { module=configure-binutils; on=all-build-flex; };
dependencies = { module=all-binutils; on=all-libiberty; };
dependencies = { module=all-binutils; on=all-opcodes; };
dependencies = { module=all-binutils; on=all-bfd; };
@ -384,6 +394,8 @@ dependencies = { module=install-opcodes; on=install-bfd; };
dependencies = { module=install-strip-opcodes; on=install-strip-bfd; };
dependencies = { module=configure-gas; on=configure-intl; };
dependencies = { module=configure-gas; on=all-build-flex; };
dependencies = { module=configure-gas; on=all-build-flex; };
dependencies = { module=all-gas; on=all-libiberty; };
dependencies = { module=all-gas; on=all-opcodes; };
dependencies = { module=all-gas; on=all-bfd; };

View File

@ -990,6 +990,7 @@ all:
.PHONY: all-build
all-build: maybe-all-build-libiberty
all-build: maybe-all-build-intl
all-build: maybe-all-build-bison
all-build: maybe-all-build-flex
all-build: maybe-all-build-m4
@ -2578,7 +2579,7 @@ configure-build-libiberty:
libsrcdir="$$s/libiberty"; \
rm -f no-such-file || : ; \
CONFIG_SITE=no-such-file $(SHELL) $${libsrcdir}/configure \
$(BUILD_CONFIGARGS) --build=${build_alias} --host=${build_alias} \
$(BUILD_CONFIGARGS) --quiet --build=${build_alias} --host=${build_alias} \
--target=${target_alias} $${srcdiroption} \
|| exit 1
@endif build-libiberty
@ -2609,6 +2610,62 @@ all-build-libiberty: configure-build-libiberty
.PHONY: configure-build-intl maybe-configure-build-intl
maybe-configure-build-intl:
@if gcc-bootstrap
configure-build-intl: stage_current
@endif gcc-bootstrap
@if build-intl
maybe-configure-build-intl: configure-build-intl
configure-build-intl:
@: $(MAKE); $(unstage)
@r=`${PWD_COMMAND}`; export r; \
s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
test ! -f $(BUILD_SUBDIR)/intl/Makefile || exit 0; \
$(SHELL) $(srcdir)/mkinstalldirs $(BUILD_SUBDIR)/intl ; \
$(BUILD_EXPORTS) \
echo Configuring in $(BUILD_SUBDIR)/intl; \
cd "$(BUILD_SUBDIR)/intl" || exit 1; \
case $(srcdir) in \
/* | [A-Za-z]:[\\/]*) topdir=$(srcdir) ;; \
*) topdir=`echo $(BUILD_SUBDIR)/intl/ | \
sed -e 's,\./,,g' -e 's,[^/]*/,../,g' `$(srcdir) ;; \
esac; \
srcdiroption="--srcdir=$${topdir}/intl"; \
libsrcdir="$$s/intl"; \
rm -f no-such-file || : ; \
CONFIG_SITE=no-such-file $(SHELL) $${libsrcdir}/configure \
$(BUILD_CONFIGARGS) --quiet --build=${build_alias} --host=${build_alias} \
--target=${target_alias} $${srcdiroption} \
|| exit 1
@endif build-intl
.PHONY: all-build-intl maybe-all-build-intl
maybe-all-build-intl:
@if gcc-bootstrap
all-build-intl: stage_current
@endif gcc-bootstrap
@if build-intl
TARGET-build-intl=all
maybe-all-build-intl: all-build-intl
all-build-intl: configure-build-intl
@: $(MAKE); $(unstage)
@r=`${PWD_COMMAND}`; export r; \
s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(BUILD_EXPORTS) \
(cd $(BUILD_SUBDIR)/intl && \
$(MAKE) $(BASE_FLAGS_TO_PASS) $(EXTRA_BUILD_FLAGS) \
$(TARGET-build-intl))
@endif build-intl
.PHONY: configure-build-bison maybe-configure-build-bison
maybe-configure-build-bison:
@if gcc-bootstrap
@ -2634,7 +2691,7 @@ configure-build-bison:
libsrcdir="$$s/bison"; \
rm -f no-such-file || : ; \
CONFIG_SITE=no-such-file $(SHELL) $${libsrcdir}/configure \
$(BUILD_CONFIGARGS) --build=${build_alias} --host=${build_alias} \
$(BUILD_CONFIGARGS) --quiet --build=${build_alias} --host=${build_alias} \
--target=${target_alias} $${srcdiroption} \
|| exit 1
@endif build-bison
@ -2690,8 +2747,8 @@ configure-build-flex:
libsrcdir="$$s/flex"; \
rm -f no-such-file || : ; \
CONFIG_SITE=no-such-file $(SHELL) $${libsrcdir}/configure \
$(BUILD_CONFIGARGS) --build=${build_alias} --host=${build_alias} \
--target=${target_alias} $${srcdiroption} \
$(BUILD_CONFIGARGS) --quiet --build=${build_alias} --host=${build_alias} \
--target=${target_alias} $${srcdiroption} LEX="flex" \
|| exit 1
@endif build-flex
@ -2713,7 +2770,7 @@ all-build-flex: configure-build-flex
s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(BUILD_EXPORTS) \
(cd $(BUILD_SUBDIR)/flex && \
$(MAKE) $(BASE_FLAGS_TO_PASS) $(EXTRA_BUILD_FLAGS) \
$(MAKE) $(BASE_FLAGS_TO_PASS) $(EXTRA_BUILD_FLAGS) LEX=flex FLEX=flex \
$(TARGET-build-flex))
@endif build-flex
@ -2746,7 +2803,7 @@ configure-build-m4:
libsrcdir="$$s/m4"; \
rm -f no-such-file || : ; \
CONFIG_SITE=no-such-file $(SHELL) $${libsrcdir}/configure \
$(BUILD_CONFIGARGS) --build=${build_alias} --host=${build_alias} \
$(BUILD_CONFIGARGS) --quiet --build=${build_alias} --host=${build_alias} \
--target=${target_alias} $${srcdiroption} \
|| exit 1
@endif build-m4
@ -2802,7 +2859,7 @@ configure-build-texinfo:
libsrcdir="$$s/texinfo"; \
rm -f no-such-file || : ; \
CONFIG_SITE=no-such-file $(SHELL) $${libsrcdir}/configure \
$(BUILD_CONFIGARGS) --build=${build_alias} --host=${build_alias} \
$(BUILD_CONFIGARGS) --quiet --build=${build_alias} --host=${build_alias} \
--target=${target_alias} $${srcdiroption} \
|| exit 1
@endif build-texinfo
@ -2858,7 +2915,7 @@ configure-build-fixincludes:
libsrcdir="$$s/fixincludes"; \
rm -f no-such-file || : ; \
CONFIG_SITE=no-such-file $(SHELL) $${libsrcdir}/configure \
$(BUILD_CONFIGARGS) --build=${build_alias} --host=${build_alias} \
$(BUILD_CONFIGARGS) --quiet --build=${build_alias} --host=${build_alias} \
--target=${target_alias} $${srcdiroption} \
|| exit 1
@endif build-fixincludes
@ -2917,7 +2974,7 @@ configure-bfd:
srcdiroption="--srcdir=$${topdir}/bfd"; \
libsrcdir="$$s/bfd"; \
$(SHELL) $${libsrcdir}/configure \
$(HOST_CONFIGARGS) --build=${build_alias} --host=${host_alias} \
$(HOST_CONFIGARGS) --quiet --build=${build_alias} --host=${host_alias} \
--target=${target_alias} $${srcdiroption} \
|| exit 1
@endif bfd
@ -3798,7 +3855,7 @@ configure-opcodes:
srcdiroption="--srcdir=$${topdir}/opcodes"; \
libsrcdir="$$s/opcodes"; \
$(SHELL) $${libsrcdir}/configure \
$(HOST_CONFIGARGS) --build=${build_alias} --host=${host_alias} \
$(HOST_CONFIGARGS) --quiet --build=${build_alias} --host=${host_alias} \
--target=${target_alias} $${srcdiroption} \
|| exit 1
@endif opcodes
@ -4679,7 +4736,7 @@ configure-binutils:
srcdiroption="--srcdir=$${topdir}/binutils"; \
libsrcdir="$$s/binutils"; \
$(SHELL) $${libsrcdir}/configure \
$(HOST_CONFIGARGS) --build=${build_alias} --host=${host_alias} \
$(HOST_CONFIGARGS) --quiet --build=${build_alias} --host=${host_alias} \
--target=${target_alias} $${srcdiroption} \
|| exit 1
@endif binutils
@ -5561,7 +5618,7 @@ configure-bison:
srcdiroption="--srcdir=$${topdir}/bison"; \
libsrcdir="$$s/bison"; \
$(SHELL) $${libsrcdir}/configure \
$(HOST_CONFIGARGS) --build=${build_alias} --host=${host_alias} \
$(HOST_CONFIGARGS) --quiet --build=${build_alias} --host=${host_alias} \
--target=${target_alias} $${srcdiroption} \
|| exit 1
@endif bison
@ -6004,7 +6061,7 @@ configure-cgen:
srcdiroption="--srcdir=$${topdir}/cgen"; \
libsrcdir="$$s/cgen"; \
$(SHELL) $${libsrcdir}/configure \
$(HOST_CONFIGARGS) --build=${build_alias} --host=${host_alias} \
$(HOST_CONFIGARGS) --quiet --build=${build_alias} --host=${host_alias} \
--target=${target_alias} $${srcdiroption} \
|| exit 1
@endif cgen
@ -6444,7 +6501,7 @@ configure-dejagnu:
srcdiroption="--srcdir=$${topdir}/dejagnu"; \
libsrcdir="$$s/dejagnu"; \
$(SHELL) $${libsrcdir}/configure \
$(HOST_CONFIGARGS) --build=${build_alias} --host=${host_alias} \
$(HOST_CONFIGARGS) --quiet --build=${build_alias} --host=${host_alias} \
--target=${target_alias} $${srcdiroption} \
|| exit 1
@endif dejagnu
@ -6884,7 +6941,7 @@ configure-etc:
srcdiroption="--srcdir=$${topdir}/etc"; \
libsrcdir="$$s/etc"; \
$(SHELL) $${libsrcdir}/configure \
$(HOST_CONFIGARGS) --build=${build_alias} --host=${host_alias} \
$(HOST_CONFIGARGS) --quiet --build=${build_alias} --host=${host_alias} \
--target=${target_alias} $${srcdiroption} \
|| exit 1
@endif etc
@ -7324,7 +7381,7 @@ configure-fastjar:
srcdiroption="--srcdir=$${topdir}/fastjar"; \
libsrcdir="$$s/fastjar"; \
$(SHELL) $${libsrcdir}/configure \
$(HOST_CONFIGARGS) --build=${build_alias} --host=${host_alias} \
$(HOST_CONFIGARGS) --quiet --build=${build_alias} --host=${host_alias} \
--target=${target_alias} $${srcdiroption} \
|| exit 1
@endif fastjar
@ -7767,7 +7824,7 @@ configure-fixincludes:
srcdiroption="--srcdir=$${topdir}/fixincludes"; \
libsrcdir="$$s/fixincludes"; \
$(SHELL) $${libsrcdir}/configure \
$(HOST_CONFIGARGS) --build=${build_alias} --host=${host_alias} \
$(HOST_CONFIGARGS) --quiet --build=${build_alias} --host=${host_alias} \
--target=${target_alias} $${srcdiroption} \
|| exit 1
@endif fixincludes
@ -8191,7 +8248,7 @@ configure-flex:
srcdiroption="--srcdir=$${topdir}/flex"; \
libsrcdir="$$s/flex"; \
$(SHELL) $${libsrcdir}/configure \
$(HOST_CONFIGARGS) --build=${build_alias} --host=${host_alias} \
$(HOST_CONFIGARGS) --quiet --build=${build_alias} --host=${host_alias} \
--target=${target_alias} $${srcdiroption} \
|| exit 1
@endif flex
@ -8633,7 +8690,7 @@ configure-gas:
srcdiroption="--srcdir=$${topdir}/gas"; \
libsrcdir="$$s/gas"; \
$(SHELL) $${libsrcdir}/configure \
$(HOST_CONFIGARGS) --build=${build_alias} --host=${host_alias} \
$(HOST_CONFIGARGS) --quiet --build=${build_alias} --host=${host_alias} \
--target=${target_alias} $${srcdiroption} \
|| exit 1
@endif gas
@ -9514,7 +9571,7 @@ configure-gcc:
srcdiroption="--srcdir=$${topdir}/gcc"; \
libsrcdir="$$s/gcc"; \
$(SHELL) $${libsrcdir}/configure \
$(HOST_CONFIGARGS) --build=${build_alias} --host=${host_alias} \
$(HOST_CONFIGARGS) --quiet --build=${build_alias} --host=${host_alias} \
--target=${target_alias} $${srcdiroption} \
|| exit 1
@endif gcc
@ -10395,7 +10452,7 @@ configure-gmp:
srcdiroption="--srcdir=$${topdir}/gmp"; \
libsrcdir="$$s/gmp"; \
$(SHELL) $${libsrcdir}/configure \
$(HOST_CONFIGARGS) --build=${build_alias} --host=none-${host_vendor}-${host_os} \
$(HOST_CONFIGARGS) --quiet --build=${build_alias} --host=none-${host_vendor}-${host_os} \
--target=none-${host_vendor}-${host_os} $${srcdiroption} --disable-shared \
|| exit 1
@endif gmp
@ -11270,7 +11327,7 @@ configure-mpfr:
srcdiroption="--srcdir=$${topdir}/mpfr"; \
libsrcdir="$$s/mpfr"; \
$(SHELL) $${libsrcdir}/configure \
$(HOST_CONFIGARGS) --build=${build_alias} --host=${host_alias} \
$(HOST_CONFIGARGS) --quiet --build=${build_alias} --host=${host_alias} \
--target=${target_alias} $${srcdiroption} --disable-shared @extra_mpfr_configure_flags@ \
|| exit 1
@endif mpfr
@ -12145,7 +12202,7 @@ configure-mpc:
srcdiroption="--srcdir=$${topdir}/mpc"; \
libsrcdir="$$s/mpc"; \
$(SHELL) $${libsrcdir}/configure \
$(HOST_CONFIGARGS) --build=${build_alias} --host=${host_alias} \
$(HOST_CONFIGARGS) --quiet --build=${build_alias} --host=${host_alias} \
--target=${target_alias} $${srcdiroption} --disable-shared @extra_mpc_gmp_configure_flags@ @extra_mpc_mpfr_configure_flags@ \
|| exit 1
@endif mpc
@ -13020,7 +13077,7 @@ configure-ppl:
srcdiroption="--srcdir=$${topdir}/ppl"; \
libsrcdir="$$s/ppl"; \
$(SHELL) $${libsrcdir}/configure \
$(HOST_CONFIGARGS) --build=${build_alias} --host=${host_alias} \
$(HOST_CONFIGARGS) --quiet --build=${build_alias} --host=${host_alias} \
--target=${target_alias} $${srcdiroption} --disable-shared --with-libgmp-prefix=$$r/$(HOST_SUBDIR)/gmp/ --with-libgmpxx-prefix=$$r/$(HOST_SUBDIR)/gmp/ \
|| exit 1
@endif ppl
@ -13895,7 +13952,7 @@ configure-cloog:
srcdiroption="--srcdir=$${topdir}/cloog"; \
libsrcdir="$$s/cloog"; \
$(SHELL) $${libsrcdir}/configure \
$(HOST_CONFIGARGS) --build=${build_alias} --host=${host_alias} \
$(HOST_CONFIGARGS) --quiet --build=${build_alias} --host=${host_alias} \
--target=${target_alias} $${srcdiroption} --disable-shared --with-gmp-library=$$r/$(HOST_SUBDIR)/gmp/.libs --with-gmp-include=$$r/$(HOST_SUBDIR)/gmp --with-bits=gmp --with-ppl \
|| exit 1
@endif cloog
@ -14770,7 +14827,7 @@ configure-libelf:
srcdiroption="--srcdir=$${topdir}/libelf"; \
libsrcdir="$$s/libelf"; \
$(SHELL) $${libsrcdir}/configure \
$(HOST_CONFIGARGS) --build=${build_alias} --host=${host_alias} \
$(HOST_CONFIGARGS) --quiet --build=${build_alias} --host=${host_alias} \
--target=${target_alias} $${srcdiroption} --disable-shared \
|| exit 1
@endif libelf
@ -15645,7 +15702,7 @@ configure-gold:
srcdiroption="--srcdir=$${topdir}/gold"; \
libsrcdir="$$s/gold"; \
$(SHELL) $${libsrcdir}/configure \
$(HOST_CONFIGARGS) --build=${build_alias} --host=${host_alias} \
$(HOST_CONFIGARGS) --quiet --build=${build_alias} --host=${host_alias} \
--target=${target_alias} $${srcdiroption} \
|| exit 1
@endif gold
@ -16527,7 +16584,7 @@ configure-gprof:
srcdiroption="--srcdir=$${topdir}/gprof"; \
libsrcdir="$$s/gprof"; \
$(SHELL) $${libsrcdir}/configure \
$(HOST_CONFIGARGS) --build=${build_alias} --host=${host_alias} \
$(HOST_CONFIGARGS) --quiet --build=${build_alias} --host=${host_alias} \
--target=${target_alias} $${srcdiroption} \
|| exit 1
@endif gprof
@ -16966,7 +17023,7 @@ configure-intl:
srcdiroption="--srcdir=$${topdir}/intl"; \
libsrcdir="$$s/intl"; \
$(SHELL) $${libsrcdir}/configure \
$(HOST_CONFIGARGS) --build=${build_alias} --host=${host_alias} \
$(HOST_CONFIGARGS) --quiet --build=${build_alias} --host=${host_alias} \
--target=${target_alias} $${srcdiroption} \
|| exit 1
@endif intl
@ -17848,7 +17905,7 @@ configure-tcl:
srcdiroption="--srcdir=$${topdir}/tcl"; \
libsrcdir="$$s/tcl"; \
$(SHELL) $${libsrcdir}/configure \
$(HOST_CONFIGARGS) --build=${build_alias} --host=${host_alias} \
$(HOST_CONFIGARGS) --quiet --build=${build_alias} --host=${host_alias} \
--target=${target_alias} $${srcdiroption} \
|| exit 1
@endif tcl
@ -18273,7 +18330,7 @@ configure-itcl:
srcdiroption="--srcdir=$${topdir}/itcl"; \
libsrcdir="$$s/itcl"; \
$(SHELL) $${libsrcdir}/configure \
$(HOST_CONFIGARGS) --build=${build_alias} --host=${host_alias} \
$(HOST_CONFIGARGS) --quiet --build=${build_alias} --host=${host_alias} \
--target=${target_alias} $${srcdiroption} \
|| exit 1
@endif itcl
@ -18712,7 +18769,7 @@ configure-ld:
srcdiroption="--srcdir=$${topdir}/ld"; \
libsrcdir="$$s/ld"; \
$(SHELL) $${libsrcdir}/configure \
$(HOST_CONFIGARGS) --build=${build_alias} --host=${host_alias} \
$(HOST_CONFIGARGS) --quiet --build=${build_alias} --host=${host_alias} \
--target=${target_alias} $${srcdiroption} \
|| exit 1
@endif ld
@ -19593,7 +19650,7 @@ configure-libcpp:
srcdiroption="--srcdir=$${topdir}/libcpp"; \
libsrcdir="$$s/libcpp"; \
$(SHELL) $${libsrcdir}/configure \
$(HOST_CONFIGARGS) --build=${build_alias} --host=${host_alias} \
$(HOST_CONFIGARGS) --quiet --build=${build_alias} --host=${host_alias} \
--target=${target_alias} $${srcdiroption} \
|| exit 1
@endif libcpp
@ -20474,7 +20531,7 @@ configure-libdecnumber:
srcdiroption="--srcdir=$${topdir}/libdecnumber"; \
libsrcdir="$$s/libdecnumber"; \
$(SHELL) $${libsrcdir}/configure \
$(HOST_CONFIGARGS) --build=${build_alias} --host=${host_alias} \
$(HOST_CONFIGARGS) --quiet --build=${build_alias} --host=${host_alias} \
--target=${target_alias} $${srcdiroption} \
|| exit 1
@endif libdecnumber
@ -21356,7 +21413,7 @@ configure-libgui:
srcdiroption="--srcdir=$${topdir}/libgui"; \
libsrcdir="$$s/libgui"; \
$(SHELL) $${libsrcdir}/configure \
$(HOST_CONFIGARGS) --build=${build_alias} --host=${host_alias} \
$(HOST_CONFIGARGS) --quiet --build=${build_alias} --host=${host_alias} \
--target=${target_alias} $${srcdiroption} \
|| exit 1
@endif libgui
@ -21795,7 +21852,7 @@ configure-libiberty:
srcdiroption="--srcdir=$${topdir}/libiberty"; \
libsrcdir="$$s/libiberty"; \
$(SHELL) $${libsrcdir}/configure \
$(HOST_CONFIGARGS) --build=${build_alias} --host=${host_alias} \
$(HOST_CONFIGARGS) --quiet --build=${build_alias} --host=${host_alias} \
--target=${target_alias} $${srcdiroption} @extra_host_libiberty_configure_flags@ \
|| exit 1
@endif libiberty
@ -22683,7 +22740,7 @@ configure-libiconv:
srcdiroption="--srcdir=$${topdir}/libiconv"; \
libsrcdir="$$s/libiconv"; \
$(SHELL) $${libsrcdir}/configure \
$(HOST_CONFIGARGS) --build=${build_alias} --host=${host_alias} \
$(HOST_CONFIGARGS) --quiet --build=${build_alias} --host=${host_alias} \
--target=${target_alias} $${srcdiroption} --disable-shared \
|| exit 1
@endif libiconv
@ -23060,7 +23117,7 @@ configure-m4:
srcdiroption="--srcdir=$${topdir}/m4"; \
libsrcdir="$$s/m4"; \
$(SHELL) $${libsrcdir}/configure \
$(HOST_CONFIGARGS) --build=${build_alias} --host=${host_alias} \
$(HOST_CONFIGARGS) --quiet --build=${build_alias} --host=${host_alias} \
--target=${target_alias} $${srcdiroption} \
|| exit 1
@endif m4
@ -23500,7 +23557,7 @@ configure-readline:
srcdiroption="--srcdir=$${topdir}/readline"; \
libsrcdir="$$s/readline"; \
$(SHELL) $${libsrcdir}/configure \
$(HOST_CONFIGARGS) --build=${build_alias} --host=${host_alias} \
$(HOST_CONFIGARGS) --quiet --build=${build_alias} --host=${host_alias} \
--target=${target_alias} $${srcdiroption} \
|| exit 1
@endif readline
@ -23940,7 +23997,7 @@ configure-sid:
srcdiroption="--srcdir=$${topdir}/sid"; \
libsrcdir="$$s/sid"; \
$(SHELL) $${libsrcdir}/configure \
$(HOST_CONFIGARGS) --build=${build_alias} --host=${host_alias} \
$(HOST_CONFIGARGS) --quiet --build=${build_alias} --host=${host_alias} \
--target=${target_alias} $${srcdiroption} \
|| exit 1
@endif sid
@ -24380,7 +24437,7 @@ configure-sim:
srcdiroption="--srcdir=$${topdir}/sim"; \
libsrcdir="$$s/sim"; \
$(SHELL) $${libsrcdir}/configure \
$(HOST_CONFIGARGS) --build=${build_alias} --host=${host_alias} \
$(HOST_CONFIGARGS) --quiet --build=${build_alias} --host=${host_alias} \
--target=${target_alias} $${srcdiroption} \
|| exit 1
@endif sim
@ -24820,7 +24877,7 @@ configure-texinfo:
srcdiroption="--srcdir=$${topdir}/texinfo"; \
libsrcdir="$$s/texinfo"; \
$(SHELL) $${libsrcdir}/configure \
$(HOST_CONFIGARGS) --build=${build_alias} --host=${host_alias} \
$(HOST_CONFIGARGS) --quiet --build=${build_alias} --host=${host_alias} \
--target=${target_alias} $${srcdiroption} \
|| exit 1
@endif texinfo
@ -24870,7 +24927,13 @@ maybe-install-texinfo:
@if texinfo
maybe-install-texinfo: install-texinfo
install-texinfo:
install-texinfo: installdirs
@: $(MAKE); $(unstage)
@r=`${PWD_COMMAND}`; export r; \
s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(HOST_EXPORTS) \
(cd $(HOST_SUBDIR)/texinfo && \
$(MAKE) $(FLAGS_TO_PASS) install)
@endif texinfo
@ -24879,7 +24942,13 @@ maybe-install-strip-texinfo:
@if texinfo
maybe-install-strip-texinfo: install-strip-texinfo
install-strip-texinfo:
install-strip-texinfo: installdirs
@: $(MAKE); $(unstage)
@r=`${PWD_COMMAND}`; export r; \
s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(HOST_EXPORTS) \
(cd $(HOST_SUBDIR)/texinfo && \
$(MAKE) $(FLAGS_TO_PASS) install-strip)
@endif texinfo
@ -25247,7 +25316,7 @@ configure-zlib:
srcdiroption="--srcdir=$${topdir}/zlib"; \
libsrcdir="$$s/zlib"; \
$(SHELL) $${libsrcdir}/configure \
$(HOST_CONFIGARGS) --build=${build_alias} --host=${host_alias} \
$(HOST_CONFIGARGS) --quiet --build=${build_alias} --host=${host_alias} \
--target=${target_alias} $${srcdiroption} \
|| exit 1
@endif zlib
@ -26111,7 +26180,7 @@ configure-gdb:
srcdiroption="--srcdir=$${topdir}/gdb"; \
libsrcdir="$$s/gdb"; \
$(SHELL) $${libsrcdir}/configure \
$(HOST_CONFIGARGS) --build=${build_alias} --host=${host_alias} \
$(HOST_CONFIGARGS) --quiet --build=${build_alias} --host=${host_alias} \
--target=${target_alias} $${srcdiroption} \
|| exit 1
@endif gdb
@ -26551,7 +26620,7 @@ configure-expect:
srcdiroption="--srcdir=$${topdir}/expect"; \
libsrcdir="$$s/expect"; \
$(SHELL) $${libsrcdir}/configure \
$(HOST_CONFIGARGS) --build=${build_alias} --host=${host_alias} \
$(HOST_CONFIGARGS) --quiet --build=${build_alias} --host=${host_alias} \
--target=${target_alias} $${srcdiroption} \
|| exit 1
@endif expect
@ -26991,7 +27060,7 @@ configure-guile:
srcdiroption="--srcdir=$${topdir}/guile"; \
libsrcdir="$$s/guile"; \
$(SHELL) $${libsrcdir}/configure \
$(HOST_CONFIGARGS) --build=${build_alias} --host=${host_alias} \
$(HOST_CONFIGARGS) --quiet --build=${build_alias} --host=${host_alias} \
--target=${target_alias} $${srcdiroption} \
|| exit 1
@endif guile
@ -27431,7 +27500,7 @@ configure-tk:
srcdiroption="--srcdir=$${topdir}/tk"; \
libsrcdir="$$s/tk"; \
$(SHELL) $${libsrcdir}/configure \
$(HOST_CONFIGARGS) --build=${build_alias} --host=${host_alias} \
$(HOST_CONFIGARGS) --quiet --build=${build_alias} --host=${host_alias} \
--target=${target_alias} $${srcdiroption} \
|| exit 1
@endif tk
@ -27871,7 +27940,7 @@ configure-libtermcap:
srcdiroption="--srcdir=$${topdir}/libtermcap"; \
libsrcdir="$$s/libtermcap"; \
$(SHELL) $${libsrcdir}/configure \
$(HOST_CONFIGARGS) --build=${build_alias} --host=${host_alias} \
$(HOST_CONFIGARGS) --quiet --build=${build_alias} --host=${host_alias} \
--target=${target_alias} $${srcdiroption} \
|| exit 1
@endif libtermcap
@ -28245,7 +28314,7 @@ configure-utils:
srcdiroption="--srcdir=$${topdir}/utils"; \
libsrcdir="$$s/utils"; \
$(SHELL) $${libsrcdir}/configure \
$(HOST_CONFIGARGS) --build=${build_alias} --host=${host_alias} \
$(HOST_CONFIGARGS) --quiet --build=${build_alias} --host=${host_alias} \
--target=${target_alias} $${srcdiroption} \
|| exit 1
@endif utils
@ -28679,7 +28748,7 @@ configure-gnattools:
srcdiroption="--srcdir=$${topdir}/gnattools"; \
libsrcdir="$$s/gnattools"; \
$(SHELL) $${libsrcdir}/configure \
$(HOST_CONFIGARGS) --build=${build_alias} --host=${host_alias} \
$(HOST_CONFIGARGS) --quiet --build=${build_alias} --host=${host_alias} \
--target=${target_alias} $${srcdiroption} \
|| exit 1
@endif gnattools
@ -29118,7 +29187,7 @@ configure-lto-plugin:
srcdiroption="--srcdir=$${topdir}/lto-plugin"; \
libsrcdir="$$s/lto-plugin"; \
$(SHELL) $${libsrcdir}/configure \
$(HOST_CONFIGARGS) --build=${build_alias} --host=${host_alias} \
$(HOST_CONFIGARGS) --quiet --build=${build_alias} --host=${host_alias} \
--target=${target_alias} $${srcdiroption} --enable-shared \
|| exit 1
@endif lto-plugin
@ -30026,7 +30095,7 @@ configure-target-libstdc++-v3:
libsrcdir="$$s/libstdc++-v3"; \
rm -f no-such-file || : ; \
CONFIG_SITE=no-such-file $(SHELL) $${libsrcdir}/configure \
$(TARGET_CONFIGARGS) --build=${build_alias} --host=${target_alias} \
$(TARGET_CONFIGARGS) --quiet --build=${build_alias} --host=${target_alias} \
--target=${target_alias} $${srcdiroption} \
|| exit 1
@endif target-libstdc++-v3
@ -31010,7 +31079,7 @@ configure-target-libmudflap:
libsrcdir="$$s/libmudflap"; \
rm -f no-such-file || : ; \
CONFIG_SITE=no-such-file $(SHELL) $${libsrcdir}/configure \
$(TARGET_CONFIGARGS) --build=${build_alias} --host=${target_alias} \
$(TARGET_CONFIGARGS) --quiet --build=${build_alias} --host=${target_alias} \
--target=${target_alias} $${srcdiroption} \
|| exit 1
@endif target-libmudflap
@ -31467,7 +31536,7 @@ configure-target-libssp:
libsrcdir="$$s/libssp"; \
rm -f no-such-file || : ; \
CONFIG_SITE=no-such-file $(SHELL) $${libsrcdir}/configure \
$(TARGET_CONFIGARGS) --build=${build_alias} --host=${target_alias} \
$(TARGET_CONFIGARGS) --quiet --build=${build_alias} --host=${target_alias} \
--target=${target_alias} $${srcdiroption} \
|| exit 1
@endif target-libssp
@ -31924,7 +31993,7 @@ configure-target-newlib:
libsrcdir="$$s/newlib"; \
rm -f no-such-file || : ; \
CONFIG_SITE=no-such-file $(SHELL) $${libsrcdir}/configure \
$(TARGET_CONFIGARGS) --build=${build_alias} --host=${target_alias} \
$(TARGET_CONFIGARGS) --quiet --build=${build_alias} --host=${target_alias} \
--target=${target_alias} $${srcdiroption} \
|| exit 1
@endif target-newlib
@ -32380,7 +32449,7 @@ configure-target-libgcc:
libsrcdir="$$s/libgcc"; \
rm -f no-such-file || : ; \
CONFIG_SITE=no-such-file $(SHELL) $${libsrcdir}/configure \
$(TARGET_CONFIGARGS) --build=${build_alias} --host=${target_alias} \
$(TARGET_CONFIGARGS) --quiet --build=${build_alias} --host=${target_alias} \
--target=${target_alias} $${srcdiroption} \
|| exit 1
@endif target-libgcc
@ -33359,7 +33428,7 @@ configure-target-libquadmath:
libsrcdir="$$s/libquadmath"; \
rm -f no-such-file || : ; \
CONFIG_SITE=no-such-file $(SHELL) $${libsrcdir}/configure \
$(TARGET_CONFIGARGS) --build=${build_alias} --host=${target_alias} \
$(TARGET_CONFIGARGS) --quiet --build=${build_alias} --host=${target_alias} \
--target=${target_alias} $${srcdiroption} \
|| exit 1
@endif target-libquadmath
@ -33816,7 +33885,7 @@ configure-target-libgfortran:
libsrcdir="$$s/libgfortran"; \
rm -f no-such-file || : ; \
CONFIG_SITE=no-such-file $(SHELL) $${libsrcdir}/configure \
$(TARGET_CONFIGARGS) --build=${build_alias} --host=${target_alias} \
$(TARGET_CONFIGARGS) --quiet --build=${build_alias} --host=${target_alias} \
--target=${target_alias} $${srcdiroption} \
|| exit 1
@endif target-libgfortran
@ -34273,7 +34342,7 @@ configure-target-libobjc:
libsrcdir="$$s/libobjc"; \
rm -f no-such-file || : ; \
CONFIG_SITE=no-such-file $(SHELL) $${libsrcdir}/configure \
$(TARGET_CONFIGARGS) --build=${build_alias} --host=${target_alias} \
$(TARGET_CONFIGARGS) --quiet --build=${build_alias} --host=${target_alias} \
--target=${target_alias} $${srcdiroption} \
|| exit 1
@endif target-libobjc
@ -34730,7 +34799,7 @@ configure-target-libgo:
libsrcdir="$$s/libgo"; \
rm -f no-such-file || : ; \
CONFIG_SITE=no-such-file $(SHELL) $${libsrcdir}/configure \
$(TARGET_CONFIGARGS) --build=${build_alias} --host=${target_alias} \
$(TARGET_CONFIGARGS) --quiet --build=${build_alias} --host=${target_alias} \
--target=${target_alias} $${srcdiroption} \
|| exit 1
@endif target-libgo
@ -35187,7 +35256,7 @@ configure-target-libtermcap:
libsrcdir="$$s/libtermcap"; \
rm -f no-such-file || : ; \
CONFIG_SITE=no-such-file $(SHELL) $${libsrcdir}/configure \
$(TARGET_CONFIGARGS) --build=${build_alias} --host=${target_alias} \
$(TARGET_CONFIGARGS) --quiet --build=${build_alias} --host=${target_alias} \
--target=${target_alias} $${srcdiroption} \
|| exit 1
@endif target-libtermcap
@ -35579,7 +35648,7 @@ configure-target-winsup:
libsrcdir="$$s/winsup"; \
rm -f no-such-file || : ; \
CONFIG_SITE=no-such-file $(SHELL) $${libsrcdir}/configure \
$(TARGET_CONFIGARGS) --build=${build_alias} --host=${target_alias} \
$(TARGET_CONFIGARGS) --quiet --build=${build_alias} --host=${target_alias} \
--target=${target_alias} $${srcdiroption} \
|| exit 1
@endif target-winsup
@ -36036,7 +36105,7 @@ configure-target-libgloss:
libsrcdir="$$s/libgloss"; \
rm -f no-such-file || : ; \
CONFIG_SITE=no-such-file $(SHELL) $${libsrcdir}/configure \
$(TARGET_CONFIGARGS) --build=${build_alias} --host=${target_alias} \
$(TARGET_CONFIGARGS) --quiet --build=${build_alias} --host=${target_alias} \
--target=${target_alias} $${srcdiroption} \
|| exit 1
@endif target-libgloss
@ -36488,7 +36557,7 @@ configure-target-libffi:
libsrcdir="$$s/libffi"; \
rm -f no-such-file || : ; \
CONFIG_SITE=no-such-file $(SHELL) $${libsrcdir}/configure \
$(TARGET_CONFIGARGS) --build=${build_alias} --host=${target_alias} \
$(TARGET_CONFIGARGS) --quiet --build=${build_alias} --host=${target_alias} \
--target=${target_alias} $${srcdiroption} \
|| exit 1
@endif target-libffi
@ -36945,7 +37014,7 @@ configure-target-libjava:
libsrcdir="$$s/libjava"; \
rm -f no-such-file || : ; \
CONFIG_SITE=no-such-file $(SHELL) $${libsrcdir}/configure \
$(TARGET_CONFIGARGS) --build=${build_alias} --host=${target_alias} \
$(TARGET_CONFIGARGS) --quiet --build=${build_alias} --host=${target_alias} \
--target=${target_alias} $${srcdiroption} $(EXTRA_CONFIGARGS_LIBJAVA) \
|| exit 1
@endif target-libjava
@ -37402,7 +37471,7 @@ configure-target-zlib:
libsrcdir="$$s/zlib"; \
rm -f no-such-file || : ; \
CONFIG_SITE=no-such-file $(SHELL) $${libsrcdir}/configure \
$(TARGET_CONFIGARGS) --build=${build_alias} --host=${target_alias} \
$(TARGET_CONFIGARGS) --quiet --build=${build_alias} --host=${target_alias} \
--target=${target_alias} $${srcdiroption} \
|| exit 1
@endif target-zlib
@ -37859,7 +37928,7 @@ configure-target-boehm-gc:
libsrcdir="$$s/boehm-gc"; \
rm -f no-such-file || : ; \
CONFIG_SITE=no-such-file $(SHELL) $${libsrcdir}/configure \
$(TARGET_CONFIGARGS) --build=${build_alias} --host=${target_alias} \
$(TARGET_CONFIGARGS) --quiet --build=${build_alias} --host=${target_alias} \
--target=${target_alias} $${srcdiroption} \
|| exit 1
@endif target-boehm-gc
@ -38316,7 +38385,7 @@ configure-target-rda:
libsrcdir="$$s/rda"; \
rm -f no-such-file || : ; \
CONFIG_SITE=no-such-file $(SHELL) $${libsrcdir}/configure \
$(TARGET_CONFIGARGS) --build=${build_alias} --host=${target_alias} \
$(TARGET_CONFIGARGS) --quiet --build=${build_alias} --host=${target_alias} \
--target=${target_alias} $${srcdiroption} \
|| exit 1
@endif target-rda
@ -38773,7 +38842,7 @@ configure-target-libada:
libsrcdir="$$s/libada"; \
rm -f no-such-file || : ; \
CONFIG_SITE=no-such-file $(SHELL) $${libsrcdir}/configure \
$(TARGET_CONFIGARGS) --build=${build_alias} --host=${target_alias} \
$(TARGET_CONFIGARGS) --quiet --build=${build_alias} --host=${target_alias} \
--target=${target_alias} $${srcdiroption} \
|| exit 1
@endif target-libada
@ -39229,7 +39298,7 @@ configure-target-libgomp:
libsrcdir="$$s/libgomp"; \
rm -f no-such-file || : ; \
CONFIG_SITE=no-such-file $(SHELL) $${libsrcdir}/configure \
$(TARGET_CONFIGARGS) --build=${build_alias} --host=${target_alias} \
$(TARGET_CONFIGARGS) --quiet --build=${build_alias} --host=${target_alias} \
--target=${target_alias} $${srcdiroption} \
|| exit 1
@endif target-libgomp
@ -40213,7 +40282,7 @@ configure-target-libitm:
libsrcdir="$$s/libitm"; \
rm -f no-such-file || : ; \
CONFIG_SITE=no-such-file $(SHELL) $${libsrcdir}/configure \
$(TARGET_CONFIGARGS) --build=${build_alias} --host=${target_alias} \
$(TARGET_CONFIGARGS) --quiet --build=${build_alias} --host=${target_alias} \
--target=${target_alias} $${srcdiroption} \
|| exit 1
@endif target-libitm
@ -42757,8 +42826,8 @@ configure-target-libitm: maybe-all-gcc
# prebootstrap dependencies, prebootstrap modules are gathered in
# a hash table.
all-build-bison: maybe-all-build-texinfo
all-build-bison: maybe-all-build-intl
all-build-flex: maybe-all-build-texinfo
all-build-flex: maybe-all-build-bison
all-build-flex: maybe-all-build-m4
all-build-libiberty: maybe-all-build-texinfo
all-build-m4: maybe-all-build-texinfo
@ -43148,6 +43217,22 @@ configure-stage3-binutils: maybe-configure-stage3-intl
configure-stage4-binutils: maybe-configure-stage4-intl
configure-stageprofile-binutils: maybe-configure-stageprofile-intl
configure-stagefeedback-binutils: maybe-configure-stagefeedback-intl
configure-binutils: maybe-all-build-flex
configure-stage1-binutils: maybe-all-build-flex
configure-stage2-binutils: maybe-all-build-flex
configure-stage3-binutils: maybe-all-build-flex
configure-stage4-binutils: maybe-all-build-flex
configure-stageprofile-binutils: maybe-all-build-flex
configure-stagefeedback-binutils: maybe-all-build-flex
configure-binutils: maybe-all-build-flex
configure-stage1-binutils: maybe-all-build-flex
configure-stage2-binutils: maybe-all-build-flex
configure-stage3-binutils: maybe-all-build-flex
configure-stage4-binutils: maybe-all-build-flex
configure-stageprofile-binutils: maybe-all-build-flex
configure-stagefeedback-binutils: maybe-all-build-flex
all-binutils: maybe-all-libiberty
all-stage1-binutils: maybe-all-stage1-libiberty
@ -43208,6 +43293,22 @@ configure-stage3-gas: maybe-configure-stage3-intl
configure-stage4-gas: maybe-configure-stage4-intl
configure-stageprofile-gas: maybe-configure-stageprofile-intl
configure-stagefeedback-gas: maybe-configure-stagefeedback-intl
configure-gas: maybe-all-build-flex
configure-stage1-gas: maybe-all-build-flex
configure-stage2-gas: maybe-all-build-flex
configure-stage3-gas: maybe-all-build-flex
configure-stage4-gas: maybe-all-build-flex
configure-stageprofile-gas: maybe-all-build-flex
configure-stagefeedback-gas: maybe-all-build-flex
configure-gas: maybe-all-build-flex
configure-stage1-gas: maybe-all-build-flex
configure-stage2-gas: maybe-all-build-flex
configure-stage3-gas: maybe-all-build-flex
configure-stage4-gas: maybe-all-build-flex
configure-stageprofile-gas: maybe-all-build-flex
configure-stagefeedback-gas: maybe-all-build-flex
all-gas: maybe-all-libiberty
all-stage1-gas: maybe-all-stage1-libiberty

View File

@ -1007,7 +1007,7 @@ configure-[+prefix+][+module+]: [+ IF bootstrap +][+ ELSE +]
libsrcdir="$$s/[+module+]"; \
[+ IF no-config-site +]rm -f no-such-file || : ; \
CONFIG_SITE=no-such-file [+ ENDIF +]$(SHELL) $${libsrcdir}/configure \
[+args+] --build=${build_alias} --host=[+host_alias+] \
[+args+] --quiet --build=${build_alias} --host=[+host_alias+] \
--target=[+target_alias+] $${srcdiroption} [+extra_configure_flags+] \
|| exit 1
@endif [+prefix+][+module+]

56
README
View File

@ -1,17 +1,47 @@
This directory contains the GNU Compiler Collection (GCC).
README for GNU development tools
The GNU Compiler Collection is free software. See the files whose
names start with COPYING for copying permission. The manuals, and
some of the runtime libraries, are under different terms; see the
individual source files for details.
This directory contains various GNU compilers, assemblers, linkers,
debuggers, etc., plus their support routines, definitions, and documentation.
The directory INSTALL contains copies of the installation information
as HTML and plain text. The source of this information is
gcc/doc/install.texi. The installation information includes details
of what is included in the GCC sources and what files GCC installs.
If you are receiving this as part of a GDB release, see the file gdb/README.
If with a binutils release, see binutils/README; if with a libg++ release,
see libg++/README, etc. That'll give you info about this
package -- supported targets, how to use it, how to report bugs, etc.
See the file gcc/doc/gcc.texi (together with other files that it
includes) for usage and porting information. An online readable
version of the manual is in the files gcc/doc/gcc.info*.
It is now possible to automatically configure and build a variety of
tools with one command. To build all of the tools contained herein,
run the ``configure'' script here, e.g.:
See http://gcc.gnu.org/bugs/ for how to report bugs usefully.
./configure
make
To install them (by default in /usr/local/bin, /usr/local/lib, etc),
then do:
make install
(If the configure script can't determine your type of computer, give it
the name as an argument, for instance ``./configure sun4''. You can
use the script ``config.sub'' to test whether a name is recognized; if
it is, config.sub translates it to a triplet specifying CPU, vendor,
and OS.)
If you have more than one compiler on your system, it is often best to
explicitly set CC in the environment before running configure, and to
also set CC when running make. For example (assuming sh/bash/ksh):
CC=gcc ./configure
make
A similar example using csh:
setenv CC gcc
./configure
make
Much of the code and documentation enclosed is copyright by
the Free Software Foundation, Inc. See the file COPYING or
COPYING.LIB in the various directories, for a description of the
GNU General Public License terms under which you can copy the files.
REPORTING BUGS: Again, see gdb/README, binutils/README, etc., for info
on where and how to report problems.

View File

@ -1,7 +1,3 @@
2012-06-14 Release Manager
* GCC 4.7.1 released.
2012-03-22 Release Manager
* GCC 4.7.0 released.

12
boehm-gc/configure vendored
View File

@ -9518,7 +9518,7 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
;;
# Unfortunately, older versions of FreeBSD 2 do not have this feature.
freebsd2.*)
freebsd2*)
archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags'
hardcode_direct=yes
hardcode_minus_L=yes
@ -10434,7 +10434,7 @@ freebsd* | dragonfly*)
objformat=`/usr/bin/objformat`
else
case $host_os in
freebsd[23].*) objformat=aout ;;
freebsd[123]*) objformat=aout ;;
*) objformat=elf ;;
esac
fi
@ -10452,7 +10452,7 @@ freebsd* | dragonfly*)
esac
shlibpath_var=LD_LIBRARY_PATH
case $host_os in
freebsd2.*)
freebsd2*)
shlibpath_overrides_runpath=yes
;;
freebsd3.[01]* | freebsdelf3.[01]*)
@ -12342,7 +12342,7 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
esac
;;
freebsd2.*)
freebsd[12]*)
# C++ shared libraries reported to be fairly broken before
# switch to ELF
ld_shlibs_CXX=no
@ -14117,7 +14117,7 @@ freebsd* | dragonfly*)
objformat=`/usr/bin/objformat`
else
case $host_os in
freebsd[23].*) objformat=aout ;;
freebsd[123]*) objformat=aout ;;
*) objformat=elf ;;
esac
fi
@ -14135,7 +14135,7 @@ freebsd* | dragonfly*)
esac
shlibpath_var=LD_LIBRARY_PATH
case $host_os in
freebsd2.*)
freebsd2*)
shlibpath_overrides_runpath=yes
;;
freebsd3.[01]* | freebsdelf3.[01]*)

19
config.sub vendored
View File

@ -4,7 +4,7 @@
# 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010,
# 2011 Free Software Foundation, Inc.
timestamp='2011-10-29'
timestamp='2011-06-03'
# This file is (in principle) common to ALL GNU software.
# The presence of a machine in this file suggests that SOME GNU software
@ -250,18 +250,14 @@ case $basic_machine in
| alpha | alphaev[4-8] | alphaev56 | alphaev6[78] | alphapca5[67] \
| alpha64 | alpha64ev[4-8] | alpha64ev56 | alpha64ev6[78] | alpha64pca5[67] \
| am33_2.0 \
| arc | arm | arm[bl]e | arme[lb] | armv[2345] | armv[345][lb] | avr | avr32 \
| be32 | be64 \
| arc | arm | arm[bl]e | arme[lb] | armv[23456] | armv[3456][lb] | avr | avr32 \
| bfin \
| c4x | clipper \
| d10v | d30v | dlx | dsp16xx \
| epiphany \
| fido | fr30 | frv \
| h8300 | h8500 | hppa | hppa1.[01] | hppa2.0 | hppa2.0[nw] | hppa64 \
| hexagon \
| i370 | i860 | i960 | ia64 \
| ip2k | iq2000 \
| le32 | le64 \
| lm32 \
| m32c | m32r | m32rle | m68000 | m68k | m88k \
| maxq | mb | microblaze | mcore | mep | metag \
@ -295,7 +291,7 @@ case $basic_machine in
| pdp10 | pdp11 | pj | pjl \
| powerpc | powerpc64 | powerpc64le | powerpcle \
| pyramid \
| rl78 | rx \
| rx \
| score \
| sh | sh[1234] | sh[24]a | sh[24]aeb | sh[23]e | sh[34]eb | sheb | shbe | shle | sh[1234]le | sh3ele \
| sh64 | sh64le \
@ -361,7 +357,6 @@ case $basic_machine in
| alphapca5[67]-* | alpha64pca5[67]-* | arc-* \
| arm-* | armbe-* | armle-* | armeb-* | armv*-* \
| avr-* | avr32-* \
| be32-* | be64-* \
| bfin-* | bs2000-* \
| c[123]* | c30-* | [cjt]90-* | c4x-* \
| clipper-* | craynv-* | cydra-* \
@ -370,10 +365,8 @@ case $basic_machine in
| f30[01]-* | f700-* | fido-* | fr30-* | frv-* | fx80-* \
| h8300-* | h8500-* \
| hppa-* | hppa1.[01]-* | hppa2.0-* | hppa2.0[nw]-* | hppa64-* \
| hexagon-* \
| i*86-* | i860-* | i960-* | ia64-* \
| ip2k-* | iq2000-* \
| le32-* | le64-* \
| lm32-* \
| m32c-* | m32r-* | m32rle-* \
| m68000-* | m680[012346]0-* | m68360-* | m683?2-* | m68k-* \
@ -407,7 +400,7 @@ case $basic_machine in
| pdp10-* | pdp11-* | pj-* | pjl-* | pn-* | power-* \
| powerpc-* | powerpc64-* | powerpc64le-* | powerpcle-* \
| pyramid-* \
| rl78-* | romp-* | rs6000-* | rx-* \
| romp-* | rs6000-* | rx-* \
| sh-* | sh[1234]-* | sh[24]a-* | sh[24]aeb-* | sh[23]e-* | sh[34]eb-* | sheb-* | shbe-* \
| shle-* | sh[1234]le-* | sh3ele-* | sh64-* | sh64le-* \
| sparc-* | sparc64-* | sparc64b-* | sparc64v-* | sparc86x-* | sparclet-* \
@ -820,10 +813,6 @@ case $basic_machine in
basic_machine=i370-ibm
os=-mvs
;;
nacl)
basic_machine=le32-unknown
os=-nacl
;;
ncr3000)
basic_machine=i486-ncr
os=-sysv4

View File

@ -1,50 +1,3 @@
2012-06-14 Release Manager
* GCC 4.7.1 released.
2012-03-22 Release Manager
* GCC 4.7.0 released.
2012-01-22 Douglas B Rupp <rupp@gnat.com>
* config/mh-interix: Remove as unneeded.
* config/picflag.m4 (i[[34567]]86-*-interix3*):
Change triplet to i[[34567]]86-*-interix[[3-9]]*.
2012-01-04 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
PR bootstrap/51734
* picflag.m4: Remove s390 case statement.
2011-12-20 Andreas Schwab <schwab@linux-m68k.org>
* warnings.m4 (ACX_PROG_CC_WARNING_OPTS): Avoid leading dash in
expr call.
2011-12-19 Andreas Schwab <schwab@linux-m68k.org>
PR bootstrap/51388
* warnings.m4 (ACX_PROG_CC_WARNING_OPTS)
(ACX_PROG_CC_WARNING_ALMOST_PEDANTIC): Run the test without the
no- prefix.
2011-12-18 Eric Botcazou <ebotcazou@adacore.com>
* acx.m4 (Test for GNAT): Update comment and add quotes in final test.
2011-11-22 Iain Sandoe <iains@gcc.gnu.org>
* weakref.m4: New file.
2011-11-09 Richard Henderson <rth@redhat.com>
* asmcfi.m4: New file.
2011-11-02 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
* mh-interix (LIBGCC2_DEBUG_CFLAGS): Remove.
2011-08-22 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
* picflag.m4: New file.
@ -53,15 +6,6 @@
* elf.m4 (target_elf): Remove *-netware*.
2011-07-06 Uros Bizjak <ubizjak@gmail.com>
* mt-alphaieee (GOCFLAGS_FOR_TARGET): Add -mieee.
2011-06-15 Mike Stump <mikestump@comcast.net>
PR target/49461
* mh-darwin: Turn off -pie on darwin11 and later.
2011-04-20 Eric Botcazou <ebotcazou@adacore.com>
* bootstrap-lto.mk: Remove obsolete requirement.

View File

@ -356,9 +356,9 @@ m4_define([AC_CHECK_HEADER],m4_defn([_AC_CHECK_HEADER_OLD]))
ac_c_preproc_warn_flag=yes])# AC_PROG_CPP_WERROR
# Test for GNAT.
# We require the gnatbind & gnatmake programs, as well as a compiler driver
# that understands Ada. We use the user's CC setting, already found, and
# possibly add $1 to the command-line parameters.
# We require the gnatbind program, and a compiler driver that
# understands Ada. We use the user's CC setting, already found,
# and possibly add $1 to the command-line parameters.
#
# Sets the shell variable have_gnat to yes or no as appropriate, and
# substitutes GNATBIND and GNATMAKE.
@ -387,7 +387,7 @@ if test x"$errors" = x && test -f conftest.$ac_objext; then
fi
rm -f conftest.*])
if test "x$GNATBIND" != xno && test "x$GNATMAKE" != xno && test x$acx_cv_cc_gcc_supports_ada != xno; then
if test x$GNATBIND != xno && test x$GNATMAKE != xno && test x$acx_cv_cc_gcc_supports_ada != xno; then
have_gnat=yes
else
have_gnat=no

View File

@ -1,7 +1,5 @@
# The -mdynamic-no-pic ensures that the compiler executable is built without
# position-independent-code -- the usual default on Darwin. This fix speeds
# compiles by 3-5%.
BOOT_CFLAGS += -mdynamic-no-pic
# Ensure we don't try and use -pie, as it is incompatible with pch.
BOOT_LDFLAGS += `case ${host} in *-*-darwin[1][1-9]*) echo -Wl,-no_pie ;; esac;`
BOOT_CFLAGS += -mdynamic-no-pic

View File

@ -1,3 +1,2 @@
CFLAGS_FOR_TARGET += -mieee
CXXFLAGS_FOR_TARGET += -mieee
GOCFLAGS_FOR_TARGET += -mieee

View File

@ -19,7 +19,7 @@ case "${$2}" in
;;
i[[34567]]86-*-cygwin* | i[[34567]]86-*-mingw* | x86_64-*-mingw*)
;;
i[[34567]]86-*-interix[[3-9]]*)
i[[34567]]86-*-interix3*)
# Interix 3.x gcc -fpic/-fPIC options generate broken code.
# Instead, we relocate shared libraries at runtime.
;;
@ -51,6 +51,9 @@ case "${$2}" in
m68k-*-*)
$1=-fpic
;;
s390*-*-*)
$1=-fpic
;;
# FIXME: Override -fPIC default in libgcc only?
sh-*-linux* | sh[[2346lbe]]*-*-linux*)
$1=-fpic

View File

@ -1,6 +1,6 @@
# Autoconf include file defining macros related to compile-time warnings.
# Copyright 2004, 2005, 2007, 2009, 2011 Free Software Foundation, Inc.
# Copyright 2004, 2005, 2007, 2009 Free Software Foundation, Inc.
#This file is part of GCC.
@ -28,13 +28,7 @@ AC_SUBST(acx_Var)dnl
m4_expand_once([acx_Var=
],m4_quote(acx_Var=))dnl
save_CFLAGS="$CFLAGS"
for real_option in $1; do
# Do the check with the no- prefix removed since gcc silently
# accepts any -Wno-* option on purpose
case $real_option in
-Wno-*) option=-W`expr x$real_option : 'x-Wno-\(.*\)'` ;;
*) option=$real_option ;;
esac
for option in $1; do
AS_VAR_PUSHDEF([acx_Woption], [acx_cv_prog_cc_warning_$option])
AC_CACHE_CHECK([whether $CC supports $option], acx_Woption,
[CFLAGS="$option"
@ -43,14 +37,14 @@ for real_option in $1; do
[AS_VAR_SET(acx_Woption, no)])
])
AS_IF([test AS_VAR_GET(acx_Woption) = yes],
[acx_Var="$acx_Var${acx_Var:+ }$real_option"])
[acx_Var="$acx_Var${acx_Var:+ }$option"])
AS_VAR_POPDEF([acx_Woption])dnl
done
CFLAGS="$save_CFLAGS"
m4_popdef([acx_Var])dnl
])# ACX_PROG_CC_WARNING_OPTS
# ACX_PROG_CC_WARNING_ALMOST_PEDANTIC(WARNINGS, [VARIABLE = WARN_PEDANTIC])
# ACX_PROG_CC_WARNING_ALMOST_PEDANTIC(WARNINGS, [VARIABLE = WARN_PEDANTIC)
# Append to VARIABLE "-pedantic" + the argument, if the compiler is GCC
# and accepts all of those options simultaneously, otherwise to nothing.
AC_DEFUN([ACX_PROG_CC_WARNING_ALMOST_PEDANTIC],
@ -59,14 +53,11 @@ m4_pushdef([acx_Var], [m4_default([$2], [WARN_PEDANTIC])])dnl
AC_SUBST(acx_Var)dnl
m4_expand_once([acx_Var=
],m4_quote(acx_Var=))dnl
# Do the check with the no- prefix removed from the warning options
# since gcc silently accepts any -Wno-* option on purpose
m4_pushdef([acx_Woptions], [m4_bpatsubst([$1], [-Wno-], [-W])])dnl
AS_VAR_PUSHDEF([acx_Pedantic], [acx_cv_prog_cc_pedantic_]acx_Woptions)dnl
AS_VAR_PUSHDEF([acx_Pedantic], [acx_cv_prog_cc_pedantic_$1])dnl
AS_IF([test "$GCC" = yes],
[AC_CACHE_CHECK([whether $CC supports -pedantic ]acx_Woptions, acx_Pedantic,
[AC_CACHE_CHECK([whether $CC supports -pedantic $1], acx_Pedantic,
[save_CFLAGS="$CFLAGS"
CFLAGS="-pedantic acx_Woptions"
CFLAGS="-pedantic $1"
AC_COMPILE_IFELSE([AC_LANG_PROGRAM([],[])],
[AS_VAR_SET(acx_Pedantic, yes)],
[AS_VAR_SET(acx_Pedantic, no)])
@ -75,7 +66,6 @@ AS_IF([test AS_VAR_GET(acx_Pedantic) = yes],
[acx_Var="$acx_Var${acx_Var:+ }-pedantic $1"])
])
AS_VAR_POPDEF([acx_Pedantic])dnl
m4_popdef([acx_Woptions])dnl
m4_popdef([acx_Var])dnl
])# ACX_PROG_CC_WARNING_ALMOST_PEDANTIC

70
configure vendored
View File

@ -2642,6 +2642,20 @@ topsrcdir=$srcpwd
extra_host_args=
# This is a hack to get around the mis-configuring of libintl.a
# support in GNUPro 05r1. In theory this should not be necessary
# but test building native toolchains under Solaris and Cygwin
# before permanently removing it.
case "$ac_configure_args" in
*--with-included-gettext=* )
;;
*--disable-nls* )
;;
* )
ac_configure_args="$ac_configure_args --with-included-gettext"
;;
esac
### To add a new directory to the tree, first choose whether it is a target
### or a host dependent tool. Then put it into the appropriate list
### (library or tools, host or target), doing a dependency sort.
@ -2659,7 +2673,7 @@ extra_host_args=
# these library is used by various programs built for the build
# environment
#
build_libs="build-libiberty"
build_libs="build-libiberty build-intl"
# these tools are built for the build environment
build_tools="build-texinfo build-flex build-bison build-m4 build-fixincludes"
@ -2674,7 +2688,7 @@ host_libs="intl libiberty opcodes bfd readline tcl tk itcl libgui zlib libcpp li
# binutils, gas and ld appear in that order because it makes sense to run
# "make check" in that particular order.
# If --enable-gold is used, "gold" may replace "ld".
host_tools="texinfo flex bison binutils gas ld fixincludes gcc cgen sid sim gdb gprof etc expect dejagnu m4 utils guile fastjar gnattools"
host_tools="texinfo flex bison binutils gas ld fixincludes gcc cgen sim gdb gprof etc expect dejagnu m4 utils guile fastjar gnattools"
# libgcj represents the runtime libraries only used by gcj.
libgcj="target-libffi \
@ -2862,7 +2876,7 @@ else
fi
case "${ENABLE_GOLD}" in
yes|default)
yes|default|both)
# Check for ELF target.
is_elf=no
case "${target}" in
@ -2913,7 +2927,7 @@ case "${ENABLE_LD}" in
as_fn_error "either gold or ld can be the default ld" "$LINENO" 5
fi
;;
yes)
yes|both)
;;
no)
if test x${ENABLE_GOLD} != xyes; then
@ -3098,6 +3112,9 @@ case "${target}" in
# for explicit misaligned loads.
noconfigdirs="$noconfigdirs target-libssp"
;;
*-*-tpf*)
noconfigdirs="$noconfigdirs target-libssp"
;;
esac
# Disable libstdc++-v3 for some systems.
@ -3261,6 +3278,9 @@ case "${target}" in
rs6000-*-aix*)
noconfigdirs="$noconfigdirs ${libgcj}"
;;
mep-*-*)
configdirs="$configdirs sid"
;;
mips*-*-irix6*)
# Linking libjava exceeds command-line length limits on at least
# IRIX 6.2, but not on IRIX 6.5.
@ -3268,6 +3288,12 @@ case "${target}" in
# <oldham@codesourcery.com>
noconfigdirs="$noconfigdirs ${libgcj}"
;;
mips*-*-*)
noconfigdirs="$noconfigdirs ${libgcj} target-libssp"
;;
xstormy16*-*-*)
configdirs="$configdirs sid"
;;
*-*-lynxos*)
noconfigdirs="$noconfigdirs ${libgcj}"
;;
@ -3453,6 +3479,9 @@ case "${target}" in
tic54x-*-*)
noconfigdirs="$noconfigdirs target-libgloss gdb"
;;
cr16-*-*)
noconfigdirs="$noconfigdirs gdb"
;;
d10v-*-*)
noconfigdirs="$noconfigdirs target-libgloss"
;;
@ -3667,6 +3696,9 @@ fi
*-mingw*)
host_makefile_frag="config/mh-mingw"
;;
*-interix*)
host_makefile_frag="config/mh-interix"
;;
hppa*-hp-hpux10*)
host_makefile_frag="config/mh-pa-hpux10"
;;
@ -4973,7 +5005,7 @@ fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $acx_cv_cc_gcc_supports_ada" >&5
$as_echo "$acx_cv_cc_gcc_supports_ada" >&6; }
if test "x$GNATBIND" != xno && test "x$GNATMAKE" != xno && test x$acx_cv_cc_gcc_supports_ada != xno; then
if test x$GNATBIND != xno && test x$GNATMAKE != xno && test x$acx_cv_cc_gcc_supports_ada != xno; then
have_gnat=yes
else
have_gnat=no
@ -5191,9 +5223,9 @@ if test "x$with_mpfr_lib" != x; then
gmplibs="-L$with_mpfr_lib $gmplibs"
fi
if test "x$with_mpfr$with_mpfr_include$with_mpfr_lib" = x && test -d ${srcdir}/mpfr; then
gmplibs='-L$$r/$(HOST_SUBDIR)/mpfr/'"$lt_cv_objdir $gmplibs"
gmpinc='-I$$r/$(HOST_SUBDIR)/mpfr -I$$s/mpfr '"$gmpinc"
extra_mpc_mpfr_configure_flags='--with-mpfr-include=$$s/mpfr --with-mpfr-lib=$$r/$(HOST_SUBDIR)/mpfr/'"$lt_cv_objdir"
gmplibs='-L$$r/$(HOST_SUBDIR)/mpfr/src/'"$lt_cv_objdir $gmplibs"
gmpinc='-I$$r/$(HOST_SUBDIR)/mpfr/src -I$$s/mpfr/src '"$gmpinc"
extra_mpc_mpfr_configure_flags='--with-mpfr-include=$$s/mpfr/src --with-mpfr-lib=$$r/$(HOST_SUBDIR)/mpfr/src/'"$lt_cv_objdir"
# Do not test the mpfr version. Assume that it is sufficient, since
# it is in the source tree, and the library has not been built yet
# but it would be included on the link line in the version check below
@ -6841,6 +6873,10 @@ case "${target}" in
extra_arflags_for_target=" -X32_64"
extra_nmflags_for_target=" -B -X32_64"
;;
*-*-darwin[3-9]*)
# ranlib before Darwin10 requires the -c flag to look at common symbols.
extra_ranlibflags_for_target=" -c"
;;
esac
alphaieee_frag=/dev/null
@ -6998,7 +7034,9 @@ INSTALL_GDB_TK=`echo ${GDB_TK} | sed s/-all-/-install-/g`
# Do not nest @if/@endif pairs, because configure will not warn you at all.
case "$enable_bootstrap:$ENABLE_GOLD: $configdirs :,$stage1_languages," in
yes:both:*\ gold\ *:*,c++,* | \
yes:yes:*\ gold\ *:*,c++,*) ;;
yes:both:*\ gold\ *:* | \
yes:yes:*\ gold\ *:*)
as_fn_error "in a combined tree, bootstrapping with --enable-gold requires c++ in stage1_languages" "$LINENO" 5
;;
@ -7576,9 +7614,6 @@ fi
done
test -n "$YACC" || YACC="$MISSING bison -y"
case " $build_configdirs " in
*" bison "*) YACC='$$r/$(BUILD_SUBDIR)/bison/tests/bison -y' ;;
esac
for ac_prog in bison
do
@ -7623,9 +7658,6 @@ fi
done
test -n "$BISON" || BISON="$MISSING bison"
case " $build_configdirs " in
*" bison "*) BISON='$$r/$(BUILD_SUBDIR)/bison/tests/bison' ;;
esac
for ac_prog in gm4 gnum4 m4
do
@ -7670,9 +7702,6 @@ fi
done
test -n "$M4" || M4="$MISSING m4"
case " $build_configdirs " in
*" m4 "*) M4='$$r/$(BUILD_SUBDIR)/m4/m4' ;;
esac
for ac_prog in flex lex
do
@ -7717,10 +7746,6 @@ fi
done
test -n "$LEX" || LEX="$MISSING flex"
case " $build_configdirs " in
*" flex "*) LEX='$$r/$(BUILD_SUBDIR)/flex/flex' ;;
*" lex "*) LEX='$$r/$(BUILD_SUBDIR)/lex/lex' ;;
esac
for ac_prog in flex
do
@ -7765,9 +7790,6 @@ fi
done
test -n "$FLEX" || FLEX="$MISSING flex"
case " $build_configdirs " in
*" flex "*) FLEX='$$r/$(BUILD_SUBDIR)/flex/flex' ;;
esac
for ac_prog in makeinfo
do

View File

@ -108,6 +108,20 @@ topsrcdir=$srcpwd
extra_host_args=
# This is a hack to get around the mis-configuring of libintl.a
# support in GNUPro 05r1. In theory this should not be necessary
# but test building native toolchains under Solaris and Cygwin
# before permanently removing it.
case "$ac_configure_args" in
*--with-included-gettext=* )
;;
*--disable-nls* )
;;
* )
ac_configure_args="$ac_configure_args --with-included-gettext"
;;
esac
### To add a new directory to the tree, first choose whether it is a target
### or a host dependent tool. Then put it into the appropriate list
### (library or tools, host or target), doing a dependency sort.
@ -125,7 +139,7 @@ extra_host_args=
# these library is used by various programs built for the build
# environment
#
build_libs="build-libiberty"
build_libs="build-libiberty build-intl"
# these tools are built for the build environment
build_tools="build-texinfo build-flex build-bison build-m4 build-fixincludes"
@ -140,7 +154,7 @@ host_libs="intl libiberty opcodes bfd readline tcl tk itcl libgui zlib libcpp li
# binutils, gas and ld appear in that order because it makes sense to run
# "make check" in that particular order.
# If --enable-gold is used, "gold" may replace "ld".
host_tools="texinfo flex bison binutils gas ld fixincludes gcc cgen sid sim gdb gprof etc expect dejagnu m4 utils guile fastjar gnattools"
host_tools="texinfo flex bison binutils gas ld fixincludes gcc cgen sim gdb gprof etc expect dejagnu m4 utils guile fastjar gnattools"
# libgcj represents the runtime libraries only used by gcj.
libgcj="target-libffi \
@ -306,7 +320,7 @@ AC_ARG_ENABLE(gold,
ENABLE_GOLD=$enableval,
ENABLE_GOLD=no)
case "${ENABLE_GOLD}" in
yes|default)
yes|default|both)
# Check for ELF target.
is_elf=no
case "${target}" in
@ -355,7 +369,7 @@ case "${ENABLE_LD}" in
AC_MSG_ERROR([either gold or ld can be the default ld])
fi
;;
yes)
yes|both)
;;
no)
if test x${ENABLE_GOLD} != xyes; then
@ -524,6 +538,9 @@ case "${target}" in
# for explicit misaligned loads.
noconfigdirs="$noconfigdirs target-libssp"
;;
*-*-tpf*)
noconfigdirs="$noconfigdirs target-libssp"
;;
esac
# Disable libstdc++-v3 for some systems.
@ -687,6 +704,9 @@ case "${target}" in
rs6000-*-aix*)
noconfigdirs="$noconfigdirs ${libgcj}"
;;
mep-*-*)
configdirs="$configdirs sid"
;;
mips*-*-irix6*)
# Linking libjava exceeds command-line length limits on at least
# IRIX 6.2, but not on IRIX 6.5.
@ -694,6 +714,12 @@ case "${target}" in
# <oldham@codesourcery.com>
noconfigdirs="$noconfigdirs ${libgcj}"
;;
mips*-*-*)
noconfigdirs="$noconfigdirs ${libgcj} target-libssp"
;;
xstormy16*-*-*)
configdirs="$configdirs sid"
;;
*-*-lynxos*)
noconfigdirs="$noconfigdirs ${libgcj}"
;;
@ -879,6 +905,9 @@ case "${target}" in
tic54x-*-*)
noconfigdirs="$noconfigdirs target-libgloss gdb"
;;
cr16-*-*)
noconfigdirs="$noconfigdirs gdb"
;;
d10v-*-*)
noconfigdirs="$noconfigdirs target-libgloss"
;;
@ -1074,6 +1103,9 @@ case "${host}" in
*-mingw*)
host_makefile_frag="config/mh-mingw"
;;
*-interix*)
host_makefile_frag="config/mh-interix"
;;
hppa*-hp-hpux10*)
host_makefile_frag="config/mh-pa-hpux10"
;;
@ -1279,9 +1311,9 @@ if test "x$with_mpfr_lib" != x; then
gmplibs="-L$with_mpfr_lib $gmplibs"
fi
if test "x$with_mpfr$with_mpfr_include$with_mpfr_lib" = x && test -d ${srcdir}/mpfr; then
gmplibs='-L$$r/$(HOST_SUBDIR)/mpfr/'"$lt_cv_objdir $gmplibs"
gmpinc='-I$$r/$(HOST_SUBDIR)/mpfr -I$$s/mpfr '"$gmpinc"
extra_mpc_mpfr_configure_flags='--with-mpfr-include=$$s/mpfr --with-mpfr-lib=$$r/$(HOST_SUBDIR)/mpfr/'"$lt_cv_objdir"
gmplibs='-L$$r/$(HOST_SUBDIR)/mpfr/src/'"$lt_cv_objdir $gmplibs"
gmpinc='-I$$r/$(HOST_SUBDIR)/mpfr/src -I$$s/mpfr/src '"$gmpinc"
extra_mpc_mpfr_configure_flags='--with-mpfr-include=$$s/mpfr/src --with-mpfr-lib=$$r/$(HOST_SUBDIR)/mpfr/src/'"$lt_cv_objdir"
# Do not test the mpfr version. Assume that it is sufficient, since
# it is in the source tree, and the library has not been built yet
# but it would be included on the link line in the version check below
@ -2299,6 +2331,10 @@ case "${target}" in
extra_arflags_for_target=" -X32_64"
extra_nmflags_for_target=" -B -X32_64"
;;
*-*-darwin[[3-9]]*)
# ranlib before Darwin10 requires the -c flag to look at common symbols.
extra_ranlibflags_for_target=" -c"
;;
esac
alphaieee_frag=/dev/null
@ -2456,7 +2492,9 @@ INSTALL_GDB_TK=`echo ${GDB_TK} | sed s/-all-/-install-/g`
# Do not nest @if/@endif pairs, because configure will not warn you at all.
case "$enable_bootstrap:$ENABLE_GOLD: $configdirs :,$stage1_languages," in
yes:both:*\ gold\ *:*,c++,* | \
yes:yes:*\ gold\ *:*,c++,*) ;;
yes:both:*\ gold\ *:* | \
yes:yes:*\ gold\ *:*)
AC_MSG_ERROR([in a combined tree, bootstrapping with --enable-gold requires c++ in stage1_languages])
;;
@ -2991,30 +3029,14 @@ AC_SUBST(WINDRES_FOR_BUILD)
MISSING=`cd $ac_aux_dir && ${PWDCMD-pwd}`/missing
AC_CHECK_PROGS([YACC], ['bison -y' byacc yacc], [$MISSING bison -y])
case " $build_configdirs " in
*" bison "*) YACC='$$r/$(BUILD_SUBDIR)/bison/tests/bison -y' ;;
esac
AC_CHECK_PROGS([BISON], [bison], [$MISSING bison])
case " $build_configdirs " in
*" bison "*) BISON='$$r/$(BUILD_SUBDIR)/bison/tests/bison' ;;
esac
AC_CHECK_PROGS([M4], [gm4 gnum4 m4], [$MISSING m4])
case " $build_configdirs " in
*" m4 "*) M4='$$r/$(BUILD_SUBDIR)/m4/m4' ;;
esac
AC_CHECK_PROGS([LEX], [flex lex], [$MISSING flex])
case " $build_configdirs " in
*" flex "*) LEX='$$r/$(BUILD_SUBDIR)/flex/flex' ;;
*" lex "*) LEX='$$r/$(BUILD_SUBDIR)/lex/lex' ;;
esac
AC_CHECK_PROGS([FLEX], [flex], [$MISSING flex])
case " $build_configdirs " in
*" flex "*) FLEX='$$r/$(BUILD_SUBDIR)/flex/flex' ;;
esac
AC_CHECK_PROGS([MAKEINFO], makeinfo, [$MISSING makeinfo])
case " $build_configdirs " in

View File

@ -1,7 +1,3 @@
2012-06-14 Release Manager
* GCC 4.7.1 released.
2012-03-22 Release Manager
* GCC 4.7.0 released.

View File

@ -1,8 +1,28 @@
2012-06-14 Release Manager
2011-06-27 Release Manager
* GCC 4.7.1 released.
* GCC 4.3.6 released.
2012-03-22 Release Manager
2010-05-22 Release Manager
* GCC 4.3.5 released.
2009-08-04 Release Manager
* GCC 4.3.4 released.
2009-01-24 Release Manager
* GCC 4.3.3 released.
2008-08-27 Release Manager
* GCC 4.3.2 released.
2008-06-06 Release Manager
* GCC 4.3.1 released.
2008-03-05 Release Manager
* GCC 4.7.0 released.

View File

@ -1,7 +1,3 @@
2012-06-14 Release Manager
* GCC 4.7.1 released.
2012-03-22 Release Manager
* GCC 4.7.0 released.

View File

@ -1,7 +1,3 @@
2012-06-14 Release Manager
* GCC 4.7.1 released.
2012-03-26 David Edelsohn <dje.gcc@gmail.com>
* inclhack.def (aix_malloc): New.

30
fixincludes/configure vendored
View File

@ -4563,15 +4563,9 @@ $as_echo "$ac_cv_path_SED" >&6; }
WARN_CFLAGS=
save_CFLAGS="$CFLAGS"
for real_option in -W -Wall -Wwrite-strings -Wstrict-prototypes \
for option in -W -Wall -Wwrite-strings -Wstrict-prototypes \
-Wmissing-prototypes -Wold-style-definition \
-Wmissing-format-attribute -Wno-overlength-strings; do
# Do the check with the no- prefix removed since gcc silently
# accepts any -Wno-* option on purpose
case $real_option in
-Wno-*) option=-W`expr x$real_option : 'x-Wno-\(.*\)'` ;;
*) option=$real_option ;;
esac
as_acx_Woption=`$as_echo "acx_cv_prog_cc_warning_$option" | $as_tr_sh`
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC supports $option" >&5
@ -4603,22 +4597,20 @@ eval ac_res=\$$as_acx_Woption
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
$as_echo "$ac_res" >&6; }
if test `eval 'as_val=${'$as_acx_Woption'};$as_echo "$as_val"'` = yes; then :
WARN_CFLAGS="$WARN_CFLAGS${WARN_CFLAGS:+ }$real_option"
WARN_CFLAGS="$WARN_CFLAGS${WARN_CFLAGS:+ }$option"
fi
done
CFLAGS="$save_CFLAGS"
WARN_PEDANTIC=
# Do the check with the no- prefix removed from the warning options
# since gcc silently accepts any -Wno-* option on purpose
if test "$GCC" = yes; then :
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC supports -pedantic -Wlong-long" >&5
$as_echo_n "checking whether $CC supports -pedantic -Wlong-long... " >&6; }
if test "${acx_cv_prog_cc_pedantic__Wlong_long+set}" = set; then :
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC supports -pedantic -Wno-long-long" >&5
$as_echo_n "checking whether $CC supports -pedantic -Wno-long-long... " >&6; }
if test "${acx_cv_prog_cc_pedantic__Wno_long_long+set}" = set; then :
$as_echo_n "(cached) " >&6
else
save_CFLAGS="$CFLAGS"
CFLAGS="-pedantic -Wlong-long"
CFLAGS="-pedantic -Wno-long-long"
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
@ -4631,16 +4623,16 @@ main ()
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"; then :
acx_cv_prog_cc_pedantic__Wlong_long=yes
acx_cv_prog_cc_pedantic__Wno_long_long=yes
else
acx_cv_prog_cc_pedantic__Wlong_long=no
acx_cv_prog_cc_pedantic__Wno_long_long=no
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
CFLAGS="$save_CFLAGS"
fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $acx_cv_prog_cc_pedantic__Wlong_long" >&5
$as_echo "$acx_cv_prog_cc_pedantic__Wlong_long" >&6; }
if test $acx_cv_prog_cc_pedantic__Wlong_long = yes; then :
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $acx_cv_prog_cc_pedantic__Wno_long_long" >&5
$as_echo "$acx_cv_prog_cc_pedantic__Wno_long_long" >&6; }
if test $acx_cv_prog_cc_pedantic__Wno_long_long = yes; then :
WARN_PEDANTIC="$WARN_PEDANTIC${WARN_PEDANTIC:+ }-pedantic -Wno-long-long"
fi

View File

@ -1 +1 @@
4.7.2
4.6.4

File diff suppressed because it is too large Load Diff

View File

@ -616,6 +616,8 @@ build_tooldir = $(exec_prefix)/$(target_noncanonical)
# Directory in which the compiler finds target-independent g++ includes.
gcc_gxx_include_dir = @gcc_gxx_include_dir@
gcc_gxx_include_dir_add_sysroot = @gcc_gxx_include_dir_add_sysroot@
# Directory in which the compiler finds target-independent C includes.
gcc_c_include_dir = @gcc_c_include_dir@
# Directory to search for site-specific includes.
local_includedir = $(local_prefix)/include
includedir = $(prefix)/include
@ -3986,7 +3988,7 @@ PREPROCESSOR_DEFINES = \
-DGPLUSPLUS_BACKWARD_INCLUDE_DIR=\"$(gcc_gxx_include_dir)/backward\" \
-DLOCAL_INCLUDE_DIR=\"$(local_includedir)\" \
-DCROSS_INCLUDE_DIR=\"$(CROSS_SYSTEM_HEADER_DIR)\" \
-DTOOL_INCLUDE_DIR=\"$(gcc_tooldir)/include\" \
-DTOOL_INCLUDE_DIR=\"$(gcc_c_include_dir)\" \
-DNATIVE_SYSTEM_HEADER_DIR=\"$(NATIVE_SYSTEM_HEADER_DIR)\" \
-DPREFIX=\"$(prefix)/\" \
-DSTANDARD_EXEC_PREFIX=\"$(libdir)/gcc/\" \
@ -5124,6 +5126,60 @@ check-parallel-% : site.exp
fi ; \
$(RUNTEST) --tool $(check_p_tool) $(RUNTESTFLAGS) $$runtestflags)
check-gcc-plumhall: check-gcc-plumhall-07
check-gcc-plumhall-07: testsuite/site.exp
-rootme=`${PWD_COMMAND}`; export rootme; \
srcdir=`cd ${srcdir}; ${PWD_COMMAND}` ; export srcdir ; \
cd testsuite; \
EXPECT=${EXPECT} ; export EXPECT ; \
if [ -f $${rootme}/../expect/expect ] ; then \
TCL_LIBRARY=`cd .. ; cd ${srcdir}/../tcl/library ; ${PWD_COMMAND}` ; \
export TCL_LIBRARY ; fi ; \
$(RUNTEST) --tool gcc --directory gcc_plumhall.07a $(RUNTESTFLAGS)
check-gcc-plumhall-04: testsuite/site.exp
-rootme=`${PWD_COMMAND}`; export rootme; \
srcdir=`cd ${srcdir}; ${PWD_COMMAND}` ; export srcdir ; \
cd testsuite; \
EXPECT=${EXPECT} ; export EXPECT ; \
if [ -f $${rootme}/../expect/expect ] ; then \
TCL_LIBRARY=`cd .. ; cd ${srcdir}/../tcl/library ; ${PWD_COMMAND}` ; \
export TCL_LIBRARY ; fi ; \
$(RUNTEST) --tool gcc --directory gcc_plumhall.04a $(RUNTESTFLAGS)
check-gcc-plumhall-03: testsuite/site.exp
-rootme=`${PWD_COMMAND}`; export rootme; \
srcdir=`cd ${srcdir}; ${PWD_COMMAND}` ; export srcdir ; \
cd testsuite; \
EXPECT=${EXPECT} ; export EXPECT ; \
if [ -f $${rootme}/../expect/expect ] ; then \
TCL_LIBRARY=`cd .. ; cd ${srcdir}/../tcl/library ; ${PWD_COMMAND}` ; \
export TCL_LIBRARY ; fi ; \
$(RUNTEST) --tool gcc --directory gcc_plumhall.03a $(RUNTESTFLAGS)
check-gcc-plumhall-99: testsuite/site.exp
-rootme=`${PWD_COMMAND}`; export rootme; \
srcdir=`cd ${srcdir}; ${PWD_COMMAND}` ; export srcdir ; \
cd testsuite; \
EXPECT=${EXPECT} ; export EXPECT ; \
if [ -f $${rootme}/../expect/expect ] ; then \
TCL_LIBRARY=`cd .. ; cd ${srcdir}/../tcl/library ; ${PWD_COMMAND}` ; \
export TCL_LIBRARY ; fi ; \
$(RUNTEST) --tool gcc --directory gcc_plumhall.99b $(RUNTESTFLAGS)
check-g++-plumhall: check-g++-plumhall-99
check-g++-plumhall-99: testsuite/site.exp
-rootme=`${PWD_COMMAND}`; export rootme; \
srcdir=`cd ${srcdir}; ${PWD_COMMAND}` ; export srcdir ; \
cd testsuite; \
EXPECT=${EXPECT} ; export EXPECT ; \
if [ -f $${rootme}/../expect/expect ] ; then \
TCL_LIBRARY=`cd .. ; cd ${srcdir}/../tcl/library ; ${PWD_COMMAND}` ; \
export TCL_LIBRARY ; fi ; \
$(RUNTEST) --tool g++ --directory g++_plumhall.99 $(RUNTESTFLAGS)
# QMTest targets
# The path to qmtest.

View File

@ -47,44 +47,41 @@
2012-06-15 Eric Botcazou <ebotcazou@adacore.com>
PR ada/53592
* gcc-interface/gigi.h (maybe_vector_array): Make static inline.
* gcc-interface/utils.c (maybe_vector_array): Delete.
* gcc-interface/trans.c (gnat_to_gnu) <N_Indexed_Component>: Mark the
array object as addressable if it has vector type and is on the LHS.
* gcc-interface/decl.c (variant_desc): Rename 'record' to 'new_type'.
(build_variant_list): Adjust to above renaming.
(gnat_to_gnu_entity) <E_Record_Subtype>: Likewise. Give a unique name
to the type of the variant containers.
(create_variant_part_from): Likewise. Give a unique name to the type
of the variant part.
2012-06-14 Jakub Jelinek <jakub@redhat.com>
2012-03-01 Release Manager
* gcc-interface/Makefile.in (gnatlib-shared-default): Append
$(PICFLAG_FOR_TARGET) to GNATLIBCFLAGS_FOR_C passed to submake.
* GCC 4.6.3 released.
2012-06-14 Release Manager
2012-01-21 Eric Botcazou <ebotcazou@adacore.com>
* GCC 4.7.1 released.
PR ada/46192
* gcc-interface/decl.c (gnat_to_gnu_entity) <object>: In the case of a
renaming, preserve the volatileness through the indirection, if any.
2012-06-13 Eric Botcazou <ebotcazou@adacore.com>
2012-01-09 Eric Botcazou <ebotcazou@adacore.com>
Revert
2012-05-19 Eric Botcazou <ebotcazou@adacore.com>
* gcc-interface/trans.c (addressable_p) <COMPONENT_REF>: Fix thinko.
* gcc-interface/decl.c (Has_Thiscall_Convention): New macro.
(gnat_to_gnu_entity) <E_Subprogram_Type>: Test it to set the thiscall
calling convention
(get_minimal_subprog_decl): Likewise.
(gnat_first_param_is_class): New predicate.
2012-01-02 Eric Botcazou <ebotcazou@adacore.com>
2012-06-12 Olivier Hainque <hainque@adacore.com>
* gnatvsn.ads (Current_Year): Bump to 2011.
* gcc-interface/Makefile.in (GNATLIBCFLAGS_FOR_C): Remove
$(PIC_FLAG_FOR_TARGET).
(gnatlib-shared-default): Add $(PIC_FLAG_FOR_TARGET) to
GNATLIBCFLAGS_FOR_C passed to gnatlib.
(gnatlib-shared-win32): Likewise.
(gnatlib-shared-darwin): Likewise.
(gnatlib-shared-dual-win32): Pass PIC_FLAG_FOR_TARGET to
gnatlib-shared-win32.
2011-12-08 Eric Botcazou <ebotcazou@adacore.com>
2012-05-26 Eric Botcazou <ebotcazou@adacore.com>
PR tree-optimization/51315
Backport from mainline
2011-09-25 Eric Botcazou <ebotcazou@adacore.com>
* gcc-interface/decl.c (gnat_to_gnu_entity) <object>: Do not promote
the alignment if this doesn't prevent BLKmode access to the object.
2011-11-13 Iain Sandoe <iains@gcc.gnu.org>
* gcc-interface/decl.c (variant_desc): Rename 'record' to 'new_type'.
(build_variant_list): Adjust to above renaming.

View File

@ -111,11 +111,10 @@ NO_REORDER_ADAFLAGS = -fno-toplevel-reorder
GNATLIBFLAGS = -W -Wall -gnatpg -nostdinc
GNATLIBCFLAGS = -g -O2
PICFLAG_FOR_TARGET = @PICFLAG_FOR_TARGET@
# Pretend that _Unwind_GetIPInfo is available for the target by default. This
# should be autodetected during the configuration of libada and passed down to
# here, but we need something for --disable-libada and hope for the best.
GNATLIBCFLAGS_FOR_C = -W -Wall $(GNATLIBCFLAGS) \
GNATLIBCFLAGS_FOR_C = -W -Wall $(GNATLIBCFLAGS) $(PICFLAG_FOR_TARGET) \
-fexceptions -DIN_RTS -DHAVE_GETIPINFO
ALL_ADAFLAGS = $(CFLAGS) $(ADA_CFLAGS) $(ADAFLAGS)
THREAD_KIND = native
@ -2597,7 +2596,7 @@ gnatlib-shared-default:
$(MAKE) $(FLAGS_TO_PASS) \
GNATLIBFLAGS="$(GNATLIBFLAGS)" \
GNATLIBCFLAGS="$(GNATLIBCFLAGS) $(PICFLAG_FOR_TARGET)" \
GNATLIBCFLAGS_FOR_C="$(GNATLIBCFLAGS_FOR_C) $(PICFLAG_FOR_TARGET)" \
GNATLIBCFLAGS_FOR_C="$(GNATLIBCFLAGS_FOR_C)" \
MULTISUBDIR="$(MULTISUBDIR)" \
THREAD_KIND="$(THREAD_KIND)" \
gnatlib
@ -2643,9 +2642,8 @@ gnatlib-shared-dual:
gnatlib-shared-dual-win32:
$(MAKE) $(FLAGS_TO_PASS) \
GNATLIBFLAGS="$(GNATLIBFLAGS)" \
GNATLIBCFLAGS="$(GNATLIBCFLAGS)" \
GNATLIBCFLAGS="$(GNATLIBCFLAGS) $(PICFLAG_FOR_TARGET)" \
GNATLIBCFLAGS_FOR_C="$(GNATLIBCFLAGS_FOR_C)" \
PICFLAG_FOR_TARGET="$(PICFLAG_FOR_TARGET)" \
MULTISUBDIR="$(MULTISUBDIR)" \
THREAD_KIND="$(THREAD_KIND)" \
gnatlib-shared-win32
@ -2668,7 +2666,7 @@ gnatlib-shared-win32:
$(MAKE) $(FLAGS_TO_PASS) \
GNATLIBFLAGS="$(GNATLIBFLAGS)" \
GNATLIBCFLAGS="$(GNATLIBCFLAGS) $(PICFLAG_FOR_TARGET)" \
GNATLIBCFLAGS_FOR_C="$(GNATLIBCFLAGS_FOR_C) $(PICFLAG_FOR_TARGET)" \
GNATLIBCFLAGS_FOR_C="$(GNATLIBCFLAGS_FOR_C)" \
MULTISUBDIR="$(MULTISUBDIR)" \
THREAD_KIND="$(THREAD_KIND)" \
gnatlib
@ -2691,7 +2689,7 @@ gnatlib-shared-darwin:
$(MAKE) $(FLAGS_TO_PASS) \
GNATLIBFLAGS="$(GNATLIBFLAGS)" \
GNATLIBCFLAGS="$(GNATLIBCFLAGS) $(PICFLAG_FOR_TARGET)" \
GNATLIBCFLAGS_FOR_C="$(GNATLIBCFLAGS_FOR_C) $(PICFLAG_FOR_TARGET) -fno-common" \
GNATLIBCFLAGS_FOR_C="$(GNATLIBCFLAGS_FOR_C) -fno-common" \
MULTISUBDIR="$(MULTISUBDIR)" \
THREAD_KIND="$(THREAD_KIND)" \
gnatlib

View File

@ -144,6 +144,7 @@ enum alias_set_op
static void relate_alias_sets (tree, tree, enum alias_set_op);
static bool gnat_first_param_is_class (Entity_Id) ATTRIBUTE_UNUSED;
static bool allocatable_size_p (tree, bool);
static void prepend_one_attribute_to (struct attrib **,
enum attr_type, tree, tree, Node_Id);

View File

@ -768,6 +768,10 @@ extern tree remove_conversions (tree exp, bool true_address);
likewise return an expression pointing to the underlying array. */
extern tree maybe_unconstrained_array (tree exp);
/* If EXP's type is a VECTOR_TYPE, return EXP converted to the associated
TYPE_REPRESENTATIVE_ARRAY. */
extern tree maybe_vector_array (tree exp);
/* Return an expression that does an unchecked conversion of EXPR to TYPE.
If NOTRUNC_P is true, truncation operations should be suppressed. */
extern tree unchecked_convert (tree type, tree expr, bool notrunc_p);
@ -1013,17 +1017,3 @@ extern void enumerate_modes (void (*f) (const char *, int, int, int, int, int,
/* Convenient shortcuts. */
#define VECTOR_TYPE_P(TYPE) (TREE_CODE (TYPE) == VECTOR_TYPE)
/* If EXP's type is a VECTOR_TYPE, return EXP converted to the associated
TYPE_REPRESENTATIVE_ARRAY. */
static inline tree
maybe_vector_array (tree exp)
{
tree etype = TREE_TYPE (exp);
if (VECTOR_TYPE_P (etype))
exp = convert (TYPE_REPRESENTATIVE_ARRAY (etype), exp);
return exp;
}

View File

@ -5226,12 +5226,7 @@ gnat_to_gnu (Node_Id gnat_node)
/* Convert vector inputs to their representative array type, to fit
what the code below expects. */
if (VECTOR_TYPE_P (TREE_TYPE (gnu_array_object)))
{
if (present_in_lhs_or_actual_p (gnat_node))
gnat_mark_addressable (gnu_array_object);
gnu_array_object = maybe_vector_array (gnu_array_object);
}
gnu_array_object = maybe_vector_array (gnu_array_object);
gnu_array_object = maybe_unconstrained_array (gnu_array_object);

View File

@ -4479,6 +4479,20 @@ maybe_unconstrained_array (tree exp)
return exp;
}
/* If EXP's type is a VECTOR_TYPE, return EXP converted to the associated
TYPE_REPRESENTATIVE_ARRAY. */
tree
maybe_vector_array (tree exp)
{
tree etype = TREE_TYPE (exp);
if (VECTOR_TYPE_P (etype))
exp = convert (TYPE_REPRESENTATIVE_ARRAY (etype), exp);
return exp;
}
/* Return true if EXPR is an expression that can be folded as an operand
of a VIEW_CONVERT_EXPR. See ada-tree.h for a complete rationale. */

View File

@ -6,7 +6,7 @@
-- --
-- S p e c --
-- --
-- Copyright (C) 1992-2012, Free Software Foundation, Inc. --
-- Copyright (C) 1992-2011, Free Software Foundation, Inc. --
-- --
-- GNAT is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
@ -92,7 +92,7 @@ package Gnatvsn is
Verbose_Library_Version : constant String := "GNAT Lib v" & Library_Version;
-- Version string stored in e.g. ALI files
Current_Year : constant String := "2012";
Current_Year : constant String := "2011";
-- Used in printing copyright messages
end Gnatvsn;

View File

@ -7,7 +7,7 @@
-- --
-- B o d y --
-- --
-- $Revision: 1.2 $
-- $Revision: 1.13 $
-- --
-- Copyright (C) 1991-2003, Florida State University --
-- Copyright (C) 2008-2011, Free Software Foundation, Inc. --

View File

@ -256,12 +256,7 @@ enum bb_flags
df_set_bb_dirty, but not cleared by df_analyze, so it can be used
to test whether a block has been modified prior to a df_analyze
call. */
BB_MODIFIED = 1 << 12,
/* Set on blocks that are in a transaction. This is calculated on
demand, and is available after calling
compute_transaction_bits(). */
BB_IN_TRANSACTION = 1 << 13
BB_MODIFIED = 1 << 12
};
/* Dummy flag for convenience in the hot/cold partitioning code. */
@ -792,7 +787,6 @@ extern basic_block alloc_block (void);
extern void alloc_aux_for_blocks (int);
extern void clear_aux_for_blocks (void);
extern void free_aux_for_blocks (void);
extern void alloc_aux_for_edge (edge, int);
extern void alloc_aux_for_edges (int);
extern void clear_aux_for_edges (void);
extern void free_aux_for_edges (void);

View File

@ -3160,7 +3160,7 @@ expand_builtin_memcpy (tree exp, rtx target)
/* Copy word part most expediently. */
dest_addr = emit_block_move_hints (dest_mem, src_mem, len_rtx,
CALL_EXPR_TAILCALL (exp)
? BLOCK_OP_TAILCALL : BLOCK_OP_NORMAL,
? BLOCK_OP_TAILCALL : BLOCK_OP_BUILTIN,
expected_align, expected_size);
if (dest_addr == 0)

View File

@ -6,181 +6,7 @@
2012-06-14 Release Manager
* GCC 4.7.1 released.
2012-03-23 William Bader <williambader@hotmail.com>
PR c/52682
* c-lex.c (c_lex_with_flags): Avoid declarations after stmts.
2012-03-22 Release Manager
* GCC 4.7.0 released.
2012-02-13 Jakub Jelinek <jakub@redhat.com>
PR c++/52215
* c-common.c (sync_resolve_params): Don't decide whether to convert
or not based on TYPE_SIZE comparison, convert whenever arg_type
is unsigned INTEGER_TYPE.
2012-02-06 Paolo Carlini <paolo.carlini@oracle.com>
PR c/52118
* c.opt ([Wunused-local-typedefs]): Fix description.
2012-01-24 Mike Stump <mikestump@comcast.net>
* c-common.c (c_common_type_for_mode): Match signed/unsigned types
exactly.
2012-01-18 Richard Guenther <rguenther@suse.de>
* c-opts.c (c_common_post_options): Reset LTO flags if
we are about to generate a PCH.
2012-01-17 Paolo Carlini <paolo.carlini@oracle.com>
PR c++/51777
* c-pretty-print.c (pp_c_integer_constant): For unsigned constants
use pp_unsigned_wide_integer.
2012-01-10 Richard Guenther <rguenther@suse.de>
PR middle-end/51806
* c-opts.c (c_common_handle_option): Move -Werror handling
to language independent code.
2012-01-05 Richard Guenther <rguenther@suse.de>
PR middle-end/51764
* c.opt (Wmudflap, fmudflap, fmudflapth, fmudflapir): Move here
from common.opt.
2011-12-30 Paolo Carlini <paolo.carlini@oracle.com>
PR c++/51316
* c-common.c (c_sizeof_or_alignof_type): In C++ allow for alignof
of array types with an unknown bound.
2011-12-20 Joseph Myers <joseph@codesourcery.com>
* c-common.c (flag_isoc99): Update comment to refer to C11.
(flag_isoc1x): Change to flag_isoc11.
* c-common.h (flag_isoc99): Update comment to refer to C11.
(flag_isoc1x): Change to flag_isoc11.
* c-cppbuiltin.c (cpp_atomic_builtins): Change comment to refer to
C11.
* c-opts.c (set_std_c1x): Change to set_std_c11.
(c_common_handle_option): Handle OPT_std_c11 and OPT_std_gnu11.
Call set_std_c11.
(set_std_c89, set_std_c99, set_std_c11): Use flag_isoc11.
(set_std_c1): Use CLK_STDC11 and CLK_GNUC11.
* c.opt (std=c1x): Change to std=c11. Document as non-draft
standard.
(std=c1x, std=iso9899:2011): Add as aliases of std=c11.
(std=gnu1x): Change to std=gnu11. Refer to non-draft standard.
(std=gnu1x): Make alias of std=gnu11.
2011-12-19 Jason Merrill <jason@redhat.com>
PR c++/51228
* c-common.c (handle_transparent_union_attribute): Check the first
field if the type is complete.
2011-12-15 Jonathan Wakely <jwakely.gcc@gmail.com>
PR libstdc++/51365
* c-common.c (RID_IS_FINAL): Add.
* c-common.h (RID_IS_FINAL): Add.
2011-11-30 Iain Sandoe <iains@gcc.gnu.org>
* c.opt (fgnu-runtime): Provide full description.
(fnext-runtime): Likewise.
* c-opts.c (OPT_fgnu_runtime, OPT_fnext_runtime) Remove.
2011-11-28 Andrew MacLeod <amacleod@redhat.com>
* c-cpp-builtin.c (cpp_atomic_builtins):New. Emit all atomic
predefines in one place. Add LOCK_FREE predefines.
(c_cpp_builtins): Move Legacy HAVE_SYNC predefines to
new func.
2011-11-24 Andrew MacLeod <amacleod@redhat.com>
PR c/51256
* c-common.c (get_atomic_generic_size): Check for various error
conditions
(resolve_overloaded_atomic_exchange,
resolve_overloaded_atomic_compare_exchange,
resolve_overloaded_atomic_load, resolve_overloaded_atomic_store): Return
error_mark_node for error conditions.
2011-11-08 Richard Guenther <rguenther@suse.de>
PR middle-end/51010
c-family/
2011-11-07 Richard Henderson <rth@redhat.com>
Aldy Hernandez <aldyh@redhat.com>
Torvald Riegel <triegel@redhat.com>
Merged from transactional-memory.
* c-common.c (handle_tm_wrap_attribute,
handle_tm_attribute, ignore_attribute, parse_tm_stmt_attr): New.
(struct c_common_reswords): Added __transaction* keywords.
(struct c_common_attribute_table): Added transaction* and tm_regparm
attributes.
* c-common.h: Added RID_TRANSACTION*. Added TM_ATTR* and TM_STMT*
masks.
(parse_tm_stmt_attr, tm_attr_to_mask, tm_mask_to_attr,
find_tm_attribute): Declare.
2011-11-07 Jason Merrill <jason@redhat.com>
PR c++/35688
* c-common.c, c-common.h: Revert yesterday's changes.
2011-11-06 Jason Merrill <jason@redhat.com>
PR c++/35688
* c-common.c (decl_has_visibility_attr): Split out from...
(c_determine_visibility): ...here.
* c-common.h: Declare it.
2011-11-06 Joseph Myers <joseph@codesourcery.com>
* c-common.c (c_common_reswords): Add _Alignas and _Alignof.
(c_sizeof_or_alignof_type): Diagnose alignof applied to a function
type.
(check_user_alignment): New. Split out of
handle_aligned_attribute. Disallow integer constants with
noninteger types. Conditionally allow zero.
(handle_aligned_attribute): Use check_user_alignment.
* c-common.h (RID_ALIGNAS, check_user_alignment): New.
2011-11-06 Andrew MacLeod <amacleod@redhat.com>
Richard Henderson <rth@redhat.com>
Merged from cxx-mem-model.
* c-cppbuiltin.c (c_cpp_builtins): Test both atomic and sync patterns.
* c-common.c (sync_resolve_params, sync_resolve_return): Only tweak
parameters that are the same type size.
(get_atomic_generic_size): New. Find size of generic
atomic function parameters and do typechecking.
(add_atomic_size_parameter): New. Insert size into parameter list.
(resolve_overloaded_atomic_exchange): Restructure __atomic_exchange to
either __atomic_exchange_n or external library call.
(resolve_overloaded_atomic_compare_exchange): Restructure
__atomic_compare_exchange to either _n variant or external library call.
(resolve_overloaded_atomic_load): Restructure __atomic_load to either
__atomic_load_n or an external library call.
(resolve_overloaded_atomic_store): Restructure __atomic_store to either
__atomic_store_n or an external library call.
(resolve_overloaded_builtin): Handle new __atomic builtins.
* GCC 4.6.3 released.
2011-11-04 Eric Botcazou <ebotcazou@adacore.com>

View File

@ -814,10 +814,10 @@ free_aux_for_blocks (void)
clear_aux_for_blocks ();
}
/* Allocate a memory edge of SIZE as E->aux. The obstack must
/* Allocate a memory edge of SIZE as BB->aux. The obstack must
be first initialized by alloc_aux_for_edges. */
void
static void
alloc_aux_for_edge (edge e, int size)
{
/* Verify that aux field is clear. */

View File

@ -1224,21 +1224,21 @@ force_nonfallthru_and_redirect (edge e, basic_block target, rtx jump_label)
}
/* If e->src ends with asm goto, see if any of the ASM_OPERANDS_LABELs
don't point to the target or fallthru label. */
don't point to target label. */
if (JUMP_P (BB_END (e->src))
&& target != EXIT_BLOCK_PTR
&& e->dest == target
&& (e->flags & EDGE_FALLTHRU)
&& (note = extract_asm_operands (PATTERN (BB_END (e->src)))))
{
int i, n = ASM_OPERANDS_LABEL_LENGTH (note);
for (i = 0; i < n; ++i)
{
if (XEXP (ASM_OPERANDS_LABEL (note, i), 0) == BB_HEAD (e->dest))
XEXP (ASM_OPERANDS_LABEL (note, i), 0) = block_label (target);
if (XEXP (ASM_OPERANDS_LABEL (note, i), 0) == BB_HEAD (target))
if (XEXP (ASM_OPERANDS_LABEL (note, i), 0) == BB_HEAD (target))
{
asm_goto_edge = true;
}
break;
}
}
if (EDGE_COUNT (e->src->succs) >= 2 || abnormal_edge_flags || asm_goto_edge)

View File

@ -1258,7 +1258,7 @@ main (int argc, char **argv)
/* Try to discover a valid linker/nm/strip to use. */
/* Maybe we know the right file to use (if not cross). */
ld_file_name = 0;
ld_file_name = NULL;
#ifdef DEFAULT_LINKER
if (access (DEFAULT_LINKER, X_OK) == 0)
ld_file_name = DEFAULT_LINKER;
@ -1288,6 +1288,26 @@ main (int argc, char **argv)
? full_plugin_ld_suffix
: full_ld_suffix);
if (ld_file_name == NULL)
{
#define LD_NEW_PREFIX "../ld/"
struct prefix_list l = { LD_NEW_PREFIX, NULL };
struct path_prefix p = { NULL, sizeof LD_NEW_PREFIX, "in-build-tree-linker" };
p.plist = & l;
ld_file_name = find_a_file (& p, "ld-new" );
}
if (ld_file_name == NULL && use_plugin)
{
/* Configure will set PLUGIN_LD to the in-build-tree name of the plugin
supporting linker. If we are running from an installed set of binaries
however then we need to search for the built linker, not the in-tree linker. */
ld_file_name = find_a_file (& cpath, ld_suffix);
if (ld_file_name == NULL)
ld_file_name = find_a_file (& path, full_ld_suffix);
}
#ifdef REAL_NM_FILE_NAME
nm_file_name = find_a_file (&path, REAL_NM_FILE_NAME);
if (nm_file_name == 0)

View File

@ -1411,7 +1411,7 @@ Disable partioning and streaming
; The initial value of -1 comes from Z_DEFAULT_COMPRESSION in zlib.h.
flto-compression-level=
Common Joined RejectNegative UInteger Var(flag_lto_compression_level) Init(-1)
Common Joined RejectNegative UInteger Var(flag_lto_compression_level) Init(0)
-flto-compression-level=<number> Use zlib compression level <number> for IL
flto-report

View File

@ -891,6 +891,16 @@ arm*-*-uclinux*) # ARM ucLinux
arm*-*-ecos-elf)
tm_file="dbxelf.h elfos.h newlib-stdint.h arm/unknown-elf.h arm/elf.h arm/aout.h arm/arm.h arm/ecos-elf.h"
tmake_file="arm/t-arm arm/t-arm-elf"
case ${target} in
armv6*)
with_arch=armv6j
tmake_file="arm/t-arm arm/t-arm-elf-no-hardfp"
;;
armv5*)
with_arch=armv5te
tmake_file="arm/t-arm arm/t-arm-elf-no-hardfp"
;;
esac
;;
arm*-*-eabi* | arm*-*-symbianelf* | arm*-*-rtemseabi*)
# The BPABI long long divmod functions return a 128-bit value in
@ -940,8 +950,7 @@ avr-*-rtems*)
extra_objs="avr-devices.o avr-log.o"
;;
avr-*-*)
tm_file="elfos.h avr/elf.h avr/avr.h dbxelf.h avr/avr-stdint.h"
tmake_file="avr/t-avr avr/t-multilib"
tm_file="avr/avr.h dbxelf.h avr/avr-stdint.h"
use_gcc_stdint=wrap
extra_gcc_objs="driver-avr.o avr-devices.o"
extra_objs="avr-devices.o avr-log.o"
@ -2193,6 +2202,7 @@ s390x-ibm-tpf*)
out_file=s390/s390.c
thread_file='tpf'
extra_options="${extra_options} s390/tpf.opt"
extra_headers=../../../libgcc/unwind-pe.h
;;
score-*-elf)
gas=yes
@ -2335,7 +2345,7 @@ sh-*-elf* | sh[12346l]*-*-elf* | \
sh-superh-*) sh_multilibs=m4,m4-single,m4-single-only,m4-nofpu ;;
sh*-*-linux*) sh_multilibs=m1,m3e,m4 ;;
sh*-*-netbsd*) sh_multilibs=m3,m3e,m4 ;;
*) sh_multilibs=m1,m2,m2e,m4,m4-single,m4-single-only,m2a,m2a-single ;;
*) sh_multilibs=m1,m2,m2e,m4,m4-single,m4-single-only,m2a,m2a-single,m2a-single-only ;;
esac
if test x$with_fp = xno; then
sh_multilibs="`echo $sh_multilibs|sed -e s/m4/sh4-nofpu/ -e s/,m4-[^,]*//g -e s/,m[23]e// -e s/m2a,m2a-single/m2a-nofpu/ -e s/m5-..m....,//g`"

View File

@ -2026,6 +2026,9 @@ arm_option_override (void)
global_options.x_param_values,
global_options_set.x_param_values);
/* This doesn't work at the moment. */
flag_stack_protect = 0;
/* Register global variables with the garbage collector. */
arm_add_gc_roots ();
}

View File

@ -63,61 +63,62 @@
;; Note: sin and cos are no-longer used.
;; Unspec enumerators for Neon are defined in neon.md.
(define_c_enum "unspec" [
UNSPEC_SIN ; `sin' operation (MODE_FLOAT):
; operand 0 is the result,
; operand 1 the parameter.
UNPSEC_COS ; `cos' operation (MODE_FLOAT):
; operand 0 is the result,
; operand 1 the parameter.
UNSPEC_PUSH_MULT ; `push multiple' operation:
; operand 0 is the first register,
; subsequent registers are in parallel (use ...)
; expressions.
UNSPEC_PIC_SYM ; A symbol that has been treated properly for pic
; usage, that is, we will add the pic_register
; value to it before trying to dereference it.
UNSPEC_PIC_BASE ; Add PC and all but the last operand together,
; The last operand is the number of a PIC_LABEL
; that points at the containing instruction.
UNSPEC_PRLG_STK ; A special barrier that prevents frame accesses
; being scheduled before the stack adjustment insn.
UNSPEC_PROLOGUE_USE ; As USE insns are not meaningful after reload,
; this unspec is used to prevent the deletion of
; instructions setting registers for EH handling
; and stack frame generation. Operand 0 is the
; register to "use".
UNSPEC_CHECK_ARCH ; Set CCs to indicate 26-bit or 32-bit mode.
UNSPEC_WSHUFH ; Used by the intrinsic form of the iWMMXt WSHUFH instruction.
UNSPEC_WACC ; Used by the intrinsic form of the iWMMXt WACC instruction.
UNSPEC_TMOVMSK ; Used by the intrinsic form of the iWMMXt TMOVMSK instruction.
UNSPEC_WSAD ; Used by the intrinsic form of the iWMMXt WSAD instruction.
UNSPEC_WSADZ ; Used by the intrinsic form of the iWMMXt WSADZ instruction.
UNSPEC_WMACS ; Used by the intrinsic form of the iWMMXt WMACS instruction.
UNSPEC_WMACU ; Used by the intrinsic form of the iWMMXt WMACU instruction.
UNSPEC_WMACSZ ; Used by the intrinsic form of the iWMMXt WMACSZ instruction.
UNSPEC_WMACUZ ; Used by the intrinsic form of the iWMMXt WMACUZ instruction.
UNSPEC_CLRDI ; Used by the intrinsic form of the iWMMXt CLRDI instruction.
UNSPEC_WMADDS ; Used by the intrinsic form of the iWMMXt WMADDS instruction.
UNSPEC_WMADDU ; Used by the intrinsic form of the iWMMXt WMADDU instruction.
UNSPEC_TLS ; A symbol that has been treated properly for TLS usage.
UNSPEC_PIC_LABEL ; A label used for PIC access that does not appear in the
; instruction stream.
UNSPEC_PIC_OFFSET ; A symbolic 12-bit OFFSET that has been treated
; correctly for PIC usage.
UNSPEC_GOTSYM_OFF ; The offset of the start of the GOT from a
; a given symbolic address.
UNSPEC_THUMB1_CASESI ; A Thumb1 compressed dispatch-table call.
UNSPEC_RBIT ; rbit operation.
UNSPEC_SYMBOL_OFFSET ; The offset of the start of the symbol from
; another symbolic address.
UNSPEC_MEMORY_BARRIER ; Represent a memory barrier.
UNSPEC_UNALIGNED_LOAD ; Used to represent ldr/ldrh instructions that access
; unaligned locations, on architectures which support
; that.
UNSPEC_UNALIGNED_STORE ; Same for str/strh.
UNSPEC_PIC_UNIFIED ; Create a common pic addressing form.
])
(define_constants
[(UNSPEC_SIN 0) ; `sin' operation (MODE_FLOAT):
; operand 0 is the result,
; operand 1 the parameter.
(UNPSEC_COS 1) ; `cos' operation (MODE_FLOAT):
; operand 0 is the result,
; operand 1 the parameter.
(UNSPEC_PUSH_MULT 2) ; `push multiple' operation:
; operand 0 is the first register,
; subsequent registers are in parallel (use ...)
; expressions.
(UNSPEC_PIC_SYM 3) ; A symbol that has been treated properly for pic
; usage, that is, we will add the pic_register
; value to it before trying to dereference it.
(UNSPEC_PIC_BASE 4) ; Add PC and all but the last operand together,
; The last operand is the number of a PIC_LABEL
; that points at the containing instruction.
(UNSPEC_PRLG_STK 5) ; A special barrier that prevents frame accesses
; being scheduled before the stack adjustment insn.
(UNSPEC_PROLOGUE_USE 6) ; As USE insns are not meaningful after reload,
; this unspec is used to prevent the deletion of
; instructions setting registers for EH handling
; and stack frame generation. Operand 0 is the
; register to "use".
(UNSPEC_CHECK_ARCH 7); Set CCs to indicate 26-bit or 32-bit mode.
(UNSPEC_WSHUFH 8) ; Used by the intrinsic form of the iWMMXt WSHUFH instruction.
(UNSPEC_WACC 9) ; Used by the intrinsic form of the iWMMXt WACC instruction.
(UNSPEC_TMOVMSK 10) ; Used by the intrinsic form of the iWMMXt TMOVMSK instruction.
(UNSPEC_WSAD 11) ; Used by the intrinsic form of the iWMMXt WSAD instruction.
(UNSPEC_WSADZ 12) ; Used by the intrinsic form of the iWMMXt WSADZ instruction.
(UNSPEC_WMACS 13) ; Used by the intrinsic form of the iWMMXt WMACS instruction.
(UNSPEC_WMACU 14) ; Used by the intrinsic form of the iWMMXt WMACU instruction.
(UNSPEC_WMACSZ 15) ; Used by the intrinsic form of the iWMMXt WMACSZ instruction.
(UNSPEC_WMACUZ 16) ; Used by the intrinsic form of the iWMMXt WMACUZ instruction.
(UNSPEC_CLRDI 17) ; Used by the intrinsic form of the iWMMXt CLRDI instruction.
(UNSPEC_WMADDS 18) ; Used by the intrinsic form of the iWMMXt WMADDS instruction.
(UNSPEC_WMADDU 19) ; Used by the intrinsic form of the iWMMXt WMADDU instruction.
(UNSPEC_TLS 20) ; A symbol that has been treated properly for TLS usage.
(UNSPEC_PIC_LABEL 21) ; A label used for PIC access that does not appear in the
; instruction stream.
(UNSPEC_STACK_ALIGN 22) ; Doubleword aligned stack pointer. Used to
; generate correct unwind information.
(UNSPEC_PIC_OFFSET 23) ; A symbolic 12-bit OFFSET that has been treated
; correctly for PIC usage.
(UNSPEC_GOTSYM_OFF 24) ; The offset of the start of the the GOT from a
; a given symbolic address.
(UNSPEC_THUMB1_CASESI 25) ; A Thumb1 compressed dispatch-table call.
(UNSPEC_RBIT 26) ; rbit operation.
(UNSPEC_SYMBOL_OFFSET 27) ; The offset of the start of the symbol from
; another symbolic address.
(UNSPEC_MEMORY_BARRIER 28) ; Represent a memory barrier.
(UNSPEC_PIC_UNIFIED 29) ; Create a common pic addressing form.
(UNSPEC_UNALIGNED_LOAD 30)
(UNSPEC_UNALIGNED_STORE 31)
]
)
;; UNSPEC_VOLATILE Usage:

View File

@ -49,16 +49,16 @@ MULTILIB_EXCEPTIONS += *mthumb/*mfloat-abi=hard*
# MULTILIB_DIRNAMES += ep9312
# MULTILIB_EXCEPTIONS += *mthumb/*mcpu=ep9312*
#
# MULTILIB_OPTIONS += mlittle-endian/mbig-endian
# MULTILIB_DIRNAMES += le be
# MULTILIB_MATCHES += mbig-endian=mbe mlittle-endian=mle
#
# MULTILIB_OPTIONS += mfloat-abi=hard/mfloat-abi=soft
# MULTILIB_DIRNAMES += fpu soft
# MULTILIB_EXCEPTIONS += *mthumb/*mfloat-abi=hard*
#
# MULTILIB_OPTIONS += mno-thumb-interwork/mthumb-interwork
# MULTILIB_DIRNAMES += normal interwork
MULTILIB_OPTIONS += mlittle-endian/mbig-endian
MULTILIB_DIRNAMES += le be
MULTILIB_MATCHES += mbig-endian=mbe mlittle-endian=mle
MULTILIB_OPTIONS += mfloat-abi=hard/mfloat-abi=soft
MULTILIB_DIRNAMES += fpu soft
MULTILIB_EXCEPTIONS += *mthumb/*mfloat-abi=hard*
MULTILIB_OPTIONS += mno-thumb-interwork/mthumb-interwork
MULTILIB_DIRNAMES += normal interwork
#
# MULTILIB_OPTIONS += fno-leading-underscore/fleading-underscore
# MULTILIB_DIRNAMES += elf under
@ -89,3 +89,19 @@ MULTILIB_EXCEPTIONS += *mthumb/*mfloat-abi=hard*
# MULTILIB_MATCHES += mcpu?arm7=mcpu?arm600
# MULTILIB_MATCHES += mcpu?arm7=mcpu?arm610
# MULTILIB_MATCHES += mcpu?arm7=mcpu?arm620
MULTILIB_OPTIONS += march=armv5t
MULTILIB_DIRNAMES += v5
MULTILIB_EXCEPTIONS += *mhard-float/*march?armv5t*
MULTILIB_MATCHES += march?armv5t=march?armv5
MULTILIB_MATCHES += march?armv5t=march?armv5te
MULTILIB_MATCHES += march?armv5t=march?armv6j
MULTILIB_MATCHES += march?armv5t=march?iwmmxt
MULTILIB_MATCHES += march?armv5t=mcpu?arm10tdmi
MULTILIB_MATCHES += march?armv5t=mcpu?arm1020t
MULTILIB_MATCHES += march?armv5t=mcpu?arm926ejs
MULTILIB_MATCHES += march?armv5t=mcpu?arm1026ejs
MULTILIB_MATCHES += march?armv5t=mcpu?xscale
MULTILIB_MATCHES += march?armv5t=mcpu?iwmmxt
MULTILIB_MATCHES += march?armv5t=mcpu?arm1136js
MULTILIB_MATCHES += march?armv5t=mcpu?arm1136jfs

View File

@ -56,10 +56,182 @@ avr_arch_types[] =
};
const struct mcu_type_s avr_mcu_types[] = {
#define AVR_MCU(NAME,ARCH,MACRO,SHORT_SP,ERRATA_SKIP,DATA_SEC,N_FLASH,LIB_NAME)\
{ NAME, ARCH, MACRO, SHORT_SP, ERRATA_SKIP, DATA_SEC, N_FLASH, LIB_NAME },
#include "avr-mcus.def"
#undef AVR_MCU
/* Classic, <= 8K. */
{ "avr2", ARCH_AVR2, NULL, 0, 0x0060, "s8515" },
{ "at90s2313", ARCH_AVR2, "__AVR_AT90S2313__", 1, 0x0060, "s2313" },
{ "at90s2323", ARCH_AVR2, "__AVR_AT90S2323__", 1, 0x0060, "s2323" },
{ "at90s2333", ARCH_AVR2, "__AVR_AT90S2333__", 1, 0x0060, "s2333" },
{ "at90s2343", ARCH_AVR2, "__AVR_AT90S2343__", 1, 0x0060, "s2343" },
{ "attiny22", ARCH_AVR2, "__AVR_ATtiny22__", 1, 0x0060, "tn22" },
{ "attiny26", ARCH_AVR2, "__AVR_ATtiny26__", 1, 0x0060, "tn26" },
{ "at90s4414", ARCH_AVR2, "__AVR_AT90S4414__", 0, 0x0060, "s4414" },
{ "at90s4433", ARCH_AVR2, "__AVR_AT90S4433__", 1, 0x0060, "s4433" },
{ "at90s4434", ARCH_AVR2, "__AVR_AT90S4434__", 0, 0x0060, "s4434" },
{ "at90s8515", ARCH_AVR2, "__AVR_AT90S8515__", 0, 0x0060, "s8515" },
{ "at90c8534", ARCH_AVR2, "__AVR_AT90C8534__", 0, 0x0060, "c8534" },
{ "at90s8535", ARCH_AVR2, "__AVR_AT90S8535__", 0, 0x0060, "s8535" },
/* Classic + MOVW, <= 8K. */
{ "avr25", ARCH_AVR25, NULL, 0, 0x0060, "tn85" },
{ "ata6289", ARCH_AVR25, "__AVR_ATA6289__", 0, 0x0100, "a6289" },
{ "attiny13", ARCH_AVR25, "__AVR_ATtiny13__", 1, 0x0060, "tn13" },
{ "attiny13a", ARCH_AVR25, "__AVR_ATtiny13A__", 1, 0x0060, "tn13a" },
{ "attiny2313", ARCH_AVR25, "__AVR_ATtiny2313__", 1, 0x0060, "tn2313" },
{ "attiny2313a", ARCH_AVR25, "__AVR_ATtiny2313A__", 1, 0x0060, "tn2313a" },
{ "attiny24", ARCH_AVR25, "__AVR_ATtiny24__", 1, 0x0060, "tn24" },
{ "attiny24a", ARCH_AVR25, "__AVR_ATtiny24A__", 1, 0x0060, "tn24a" },
{ "attiny4313", ARCH_AVR25, "__AVR_ATtiny4313__", 0, 0x0060, "tn4313" },
{ "attiny44", ARCH_AVR25, "__AVR_ATtiny44__", 0, 0x0060, "tn44" },
{ "attiny44a", ARCH_AVR25, "__AVR_ATtiny44A__", 0, 0x0060, "tn44a" },
{ "attiny84", ARCH_AVR25, "__AVR_ATtiny84__", 0, 0x0060, "tn84" },
{ "attiny84a", ARCH_AVR25, "__AVR_ATtiny84A__", 0, 0x0060, "tn84" },
{ "attiny25", ARCH_AVR25, "__AVR_ATtiny25__", 1, 0x0060, "tn25" },
{ "attiny45", ARCH_AVR25, "__AVR_ATtiny45__", 0, 0x0060, "tn45" },
{ "attiny85", ARCH_AVR25, "__AVR_ATtiny85__", 0, 0x0060, "tn85" },
{ "attiny261", ARCH_AVR25, "__AVR_ATtiny261__", 1, 0x0060, "tn261" },
{ "attiny261a", ARCH_AVR25, "__AVR_ATtiny261A__", 1, 0x0060, "tn261a" },
{ "attiny461", ARCH_AVR25, "__AVR_ATtiny461__", 0, 0x0060, "tn461" },
{ "attiny461a", ARCH_AVR25, "__AVR_ATtiny461A__", 0, 0x0060, "tn461a" },
{ "attiny861", ARCH_AVR25, "__AVR_ATtiny861__", 0, 0x0060, "tn861" },
{ "attiny861a", ARCH_AVR25, "__AVR_ATtiny861A__", 0, 0x0060, "tn861a" },
{ "attiny43u", ARCH_AVR25, "__AVR_ATtiny43U__", 0, 0x0060, "tn43u" },
{ "attiny87", ARCH_AVR25, "__AVR_ATtiny87__", 0, 0x0100, "tn87" },
{ "attiny48", ARCH_AVR25, "__AVR_ATtiny48__", 0, 0x0100, "tn48" },
{ "attiny88", ARCH_AVR25, "__AVR_ATtiny88__", 0, 0x0100, "tn88" },
{ "at86rf401", ARCH_AVR25, "__AVR_AT86RF401__", 0, 0x0060, "86401" },
/* Classic, > 8K, <= 64K. */
{ "avr3", ARCH_AVR3, NULL, 0, 0x0060, "43355" },
{ "at43usb355", ARCH_AVR3, "__AVR_AT43USB355__", 0, 0x0060, "43355" },
{ "at76c711", ARCH_AVR3, "__AVR_AT76C711__", 0, 0x0060, "76711" },
/* Classic, == 128K. */
{ "avr31", ARCH_AVR31, NULL, 0, 0x0060, "m103" },
{ "atmega103", ARCH_AVR31, "__AVR_ATmega103__", 0, 0x0060, "m103" },
{ "at43usb320", ARCH_AVR31, "__AVR_AT43USB320__", 0, 0x0060, "43320" },
/* Classic + MOVW + JMP/CALL. */
{ "avr35", ARCH_AVR35, NULL, 0, 0x0100, "usb162" },
{ "at90usb82", ARCH_AVR35, "__AVR_AT90USB82__", 0, 0x0100, "usb82" },
{ "at90usb162", ARCH_AVR35, "__AVR_AT90USB162__", 0, 0x0100, "usb162" },
{ "atmega8u2", ARCH_AVR35, "__AVR_ATmega8U2__", 0, 0x0100, "m8u2" },
{ "atmega16u2", ARCH_AVR35, "__AVR_ATmega16U2__", 0, 0x0100, "m16u2" },
{ "atmega32u2", ARCH_AVR35, "__AVR_ATmega32U2__", 0, 0x0100, "m32u2" },
{ "attiny167", ARCH_AVR35, "__AVR_ATtiny167__", 0, 0x0100, "tn167" },
/* Enhanced, <= 8K. */
{ "avr4", ARCH_AVR4, NULL, 0, 0x0060, "m8" },
{ "atmega8", ARCH_AVR4, "__AVR_ATmega8__", 0, 0x0060, "m8" },
{ "atmega48", ARCH_AVR4, "__AVR_ATmega48__", 0, 0x0100, "m48" },
{ "atmega48a", ARCH_AVR4, "__AVR_ATmega48A__", 0, 0x0100, "m48a" },
{ "atmega48p", ARCH_AVR4, "__AVR_ATmega48P__", 0, 0x0100, "m48p" },
{ "atmega88", ARCH_AVR4, "__AVR_ATmega88__", 0, 0x0100, "m88" },
{ "atmega88a", ARCH_AVR4, "__AVR_ATmega88A__", 0, 0x0100, "m88a" },
{ "atmega88p", ARCH_AVR4, "__AVR_ATmega88P__", 0, 0x0100, "m88p" },
{ "atmega88pa", ARCH_AVR4, "__AVR_ATmega88PA__", 0, 0x0100, "m88pa" },
{ "atmega8515", ARCH_AVR4, "__AVR_ATmega8515__", 0, 0x0060, "m8515" },
{ "atmega8535", ARCH_AVR4, "__AVR_ATmega8535__", 0, 0x0060, "m8535" },
{ "atmega8hva", ARCH_AVR4, "__AVR_ATmega8HVA__", 0, 0x0100, "m8hva" },
{ "at90pwm1", ARCH_AVR4, "__AVR_AT90PWM1__", 0, 0x0100, "90pwm1" },
{ "at90pwm2", ARCH_AVR4, "__AVR_AT90PWM2__", 0, 0x0100, "90pwm2" },
{ "at90pwm2b", ARCH_AVR4, "__AVR_AT90PWM2B__", 0, 0x0100, "90pwm2b" },
{ "at90pwm3", ARCH_AVR4, "__AVR_AT90PWM3__", 0, 0x0100, "90pwm3" },
{ "at90pwm3b", ARCH_AVR4, "__AVR_AT90PWM3B__", 0, 0x0100, "90pwm3b" },
{ "at90pwm81", ARCH_AVR4, "__AVR_AT90PWM81__", 0, 0x0100, "90pwm81" },
/* Enhanced, > 8K, <= 64K. */
{ "avr5", ARCH_AVR5, NULL, 0, 0x0060, "m16" },
{ "atmega16", ARCH_AVR5, "__AVR_ATmega16__", 0, 0x0060, "m16" },
{ "atmega16a", ARCH_AVR5, "__AVR_ATmega16A__", 0, 0x0060, "m16a" },
{ "atmega161", ARCH_AVR5, "__AVR_ATmega161__", 0, 0x0060, "m161" },
{ "atmega162", ARCH_AVR5, "__AVR_ATmega162__", 0, 0x0100, "m162" },
{ "atmega163", ARCH_AVR5, "__AVR_ATmega163__", 0, 0x0060, "m163" },
{ "atmega164a", ARCH_AVR5, "__AVR_ATmega164A__", 0, 0x0100, "m164a" },
{ "atmega164p", ARCH_AVR5, "__AVR_ATmega164P__", 0, 0x0100, "m164p" },
{ "atmega165", ARCH_AVR5, "__AVR_ATmega165__", 0, 0x0100, "m165" },
{ "atmega165a", ARCH_AVR5, "__AVR_ATmega165A__", 0, 0x0100, "m165a" },
{ "atmega165p", ARCH_AVR5, "__AVR_ATmega165P__", 0, 0x0100, "m165p" },
{ "atmega168", ARCH_AVR5, "__AVR_ATmega168__", 0, 0x0100, "m168" },
{ "atmega168a", ARCH_AVR5, "__AVR_ATmega168A__", 0, 0x0100, "m168a" },
{ "atmega168p", ARCH_AVR5, "__AVR_ATmega168P__", 0, 0x0100, "m168p" },
{ "atmega169", ARCH_AVR5, "__AVR_ATmega169__", 0, 0x0100, "m169" },
{ "atmega169a", ARCH_AVR5, "__AVR_ATmega169A__", 0, 0x0100, "m169a" },
{ "atmega169p", ARCH_AVR5, "__AVR_ATmega169P__", 0, 0x0100, "m169p" },
{ "atmega169pa", ARCH_AVR5, "__AVR_ATmega169PA__", 0, 0x0100, "m169pa" },
{ "atmega32", ARCH_AVR5, "__AVR_ATmega32__", 0, 0x0060, "m32" },
{ "atmega323", ARCH_AVR5, "__AVR_ATmega323__", 0, 0x0060, "m323" },
{ "atmega324a", ARCH_AVR5, "__AVR_ATmega324A__", 0, 0x0100, "m324a" },
{ "atmega324p", ARCH_AVR5, "__AVR_ATmega324P__", 0, 0x0100, "m324p" },
{ "atmega324pa", ARCH_AVR5, "__AVR_ATmega324PA__", 0, 0x0100, "m324pa" },
{ "atmega325", ARCH_AVR5, "__AVR_ATmega325__", 0, 0x0100, "m325" },
{ "atmega325a", ARCH_AVR5, "__AVR_ATmega325A__", 0, 0x0100, "m325a" },
{ "atmega325p", ARCH_AVR5, "__AVR_ATmega325P__", 0, 0x0100, "m325p" },
{ "atmega3250", ARCH_AVR5, "__AVR_ATmega3250__", 0, 0x0100, "m3250" },
{ "atmega3250a", ARCH_AVR5, "__AVR_ATmega3250A__", 0, 0x0100, "m3250a" },
{ "atmega3250p", ARCH_AVR5, "__AVR_ATmega3250P__", 0, 0x0100, "m3250p" },
{ "atmega328", ARCH_AVR5, "__AVR_ATmega328__", 0, 0x0100, "m328" },
{ "atmega328p", ARCH_AVR5, "__AVR_ATmega328P__", 0, 0x0100, "m328p" },
{ "atmega329", ARCH_AVR5, "__AVR_ATmega329__", 0, 0x0100, "m329" },
{ "atmega329a", ARCH_AVR5, "__AVR_ATmega329A__", 0, 0x0100, "m329a" },
{ "atmega329p", ARCH_AVR5, "__AVR_ATmega329P__", 0, 0x0100, "m329p" },
{ "atmega329pa", ARCH_AVR5, "__AVR_ATmega329PA__", 0, 0x0100, "m329pa" },
{ "atmega3290", ARCH_AVR5, "__AVR_ATmega3290__", 0, 0x0100, "m3290" },
{ "atmega3290a", ARCH_AVR5, "__AVR_ATmega3290A__", 0, 0x0100, "m3290a" },
{ "atmega3290p", ARCH_AVR5, "__AVR_ATmega3290P__", 0, 0x0100, "m3290p" },
{ "atmega406", ARCH_AVR5, "__AVR_ATmega406__", 0, 0x0100, "m406" },
{ "atmega64", ARCH_AVR5, "__AVR_ATmega64__", 0, 0x0100, "m64" },
{ "atmega640", ARCH_AVR5, "__AVR_ATmega640__", 0, 0x0200, "m640" },
{ "atmega644", ARCH_AVR5, "__AVR_ATmega644__", 0, 0x0100, "m644" },
{ "atmega644a", ARCH_AVR5, "__AVR_ATmega644A__", 0, 0x0100, "m644a" },
{ "atmega644p", ARCH_AVR5, "__AVR_ATmega644P__", 0, 0x0100, "m644p" },
{ "atmega644pa", ARCH_AVR5, "__AVR_ATmega644PA__", 0, 0x0100, "m644pa" },
{ "atmega645", ARCH_AVR5, "__AVR_ATmega645__", 0, 0x0100, "m645" },
{ "atmega645a", ARCH_AVR5, "__AVR_ATmega645A__", 0, 0x0100, "m645a" },
{ "atmega645p", ARCH_AVR5, "__AVR_ATmega645P__", 0, 0x0100, "m645p" },
{ "atmega6450", ARCH_AVR5, "__AVR_ATmega6450__", 0, 0x0100, "m6450" },
{ "atmega6450a", ARCH_AVR5, "__AVR_ATmega6450A__", 0, 0x0100, "m6450a" },
{ "atmega6450p", ARCH_AVR5, "__AVR_ATmega6450P__", 0, 0x0100, "m6450p" },
{ "atmega649", ARCH_AVR5, "__AVR_ATmega649__", 0, 0x0100, "m649" },
{ "atmega649a", ARCH_AVR5, "__AVR_ATmega649A__", 0, 0x0100, "m649a" },
{ "atmega649p", ARCH_AVR5, "__AVR_ATmega649P__", 0, 0x0100, "m649p" },
{ "atmega6490", ARCH_AVR5, "__AVR_ATmega6490__", 0, 0x0100, "m6490" },
{ "atmega16hva", ARCH_AVR5, "__AVR_ATmega16HVA__", 0, 0x0100, "m16hva" },
{ "atmega16hva2", ARCH_AVR5, "__AVR_ATmega16HVA2__", 0, 0x0100, "m16hva2" },
{ "atmega16hvb", ARCH_AVR5, "__AVR_ATmega16HVB__", 0, 0x0100, "m16hvb" },
{ "atmega32hvb", ARCH_AVR5, "__AVR_ATmega32HVB__", 0, 0x0100, "m32hvb" },
{ "atmega64hve", ARCH_AVR5, "__AVR_ATmega64HVE__", 0, 0x0100, "m64hve" },
{ "at90can32", ARCH_AVR5, "__AVR_AT90CAN32__", 0, 0x0100, "can32" },
{ "at90can64", ARCH_AVR5, "__AVR_AT90CAN64__", 0, 0x0100, "can64" },
{ "at90pwm216", ARCH_AVR5, "__AVR_AT90PWM216__", 0, 0x0100, "90pwm216" },
{ "at90pwm316", ARCH_AVR5, "__AVR_AT90PWM316__", 0, 0x0100, "90pwm316" },
{ "atmega32c1", ARCH_AVR5, "__AVR_ATmega32C1__", 0, 0x0100, "m32c1" },
{ "atmega64c1", ARCH_AVR5, "__AVR_ATmega64C1__", 0, 0x0100, "m64c1" },
{ "atmega16m1", ARCH_AVR5, "__AVR_ATmega16M1__", 0, 0x0100, "m16m1" },
{ "atmega32m1", ARCH_AVR5, "__AVR_ATmega32M1__", 0, 0x0100, "m32m1" },
{ "atmega64m1", ARCH_AVR5, "__AVR_ATmega64M1__", 0, 0x0100, "m64m1" },
{ "atmega16u4", ARCH_AVR5, "__AVR_ATmega16U4__", 0, 0x0100, "m16u4" },
{ "atmega32u4", ARCH_AVR5, "__AVR_ATmega32U4__", 0, 0x0100, "m32u4" },
{ "atmega32u6", ARCH_AVR5, "__AVR_ATmega32U6__", 0, 0x0100, "m32u6" },
{ "at90scr100", ARCH_AVR5, "__AVR_AT90SCR100__", 0, 0x0100, "90scr100" },
{ "at90usb646", ARCH_AVR5, "__AVR_AT90USB646__", 0, 0x0100, "usb646" },
{ "at90usb647", ARCH_AVR5, "__AVR_AT90USB647__", 0, 0x0100, "usb647" },
{ "at94k", ARCH_AVR5, "__AVR_AT94K__", 0, 0x0060, "at94k" },
{ "m3000", ARCH_AVR5, "__AVR_M3000__", 0, 0x1000, "m3000" },
/* Enhanced, == 128K. */
{ "avr51", ARCH_AVR51, NULL, 0, 0x0100, "m128" },
{ "atmega128", ARCH_AVR51, "__AVR_ATmega128__", 0, 0x0100, "m128" },
{ "atmega1280", ARCH_AVR51, "__AVR_ATmega1280__", 0, 0x0200, "m1280" },
{ "atmega1281", ARCH_AVR51, "__AVR_ATmega1281__", 0, 0x0200, "m1281" },
{ "atmega1284p", ARCH_AVR51, "__AVR_ATmega1284P__", 0, 0x0100, "m1284p" },
{ "atmega128rfa1", ARCH_AVR51, "__AVR_ATmega128RFA1__", 0, 0x0200, "m128rfa1" },
{ "at90can128", ARCH_AVR51, "__AVR_AT90CAN128__", 0, 0x0100, "can128" },
{ "at90usb1286", ARCH_AVR51, "__AVR_AT90USB1286__", 0, 0x0100, "usb1286" },
{ "at90usb1287", ARCH_AVR51, "__AVR_AT90USB1287__", 0, 0x0100, "usb1286" },
/* 3-Byte PC. */
{ "avr6", ARCH_AVR6, NULL, 0, 0x0200, "m2561" },
{ "atmega2560", ARCH_AVR6, "__AVR_ATmega2560__", 0, 0x0200, "m2560" },
{ "atmega2561", ARCH_AVR6, "__AVR_ATmega2561__", 0, 0x0200, "m2561" },
/* Assembler only. */
{ "avr1", ARCH_AVR1, NULL, 0, 0x0060, "s1200" },
{ "at90s1200", ARCH_AVR1, "__AVR_AT90S1200__", 0, 0x0060, "s1200" },
{ "attiny11", ARCH_AVR1, "__AVR_ATtiny11__", 0, 0x0060, "tn11" },
{ "attiny12", ARCH_AVR1, "__AVR_ATtiny12__", 0, 0x0060, "tn12" },
{ "attiny15", ARCH_AVR1, "__AVR_ATtiny15__", 0, 0x0060, "tn15" },
{ "attiny28", ARCH_AVR1, "__AVR_ATtiny28__", 0, 0x0060, "tn28" },
/* End of list. */
{ NULL, ARCH_UNKNOWN, NULL, 0, 0, 0, 0, NULL }
};

View File

@ -7367,7 +7367,12 @@ avr_file_start (void)
default_file_start ();
/* Print I/O addresses of some SFRs used with IN and OUT. */
fputs ("__SREG__ = 0x3f\n"
"__SP_H__ = 0x3e\n"
"__SP_L__ = 0x3d\n", asm_out_file);
fputs ("__tmp_reg__ = 0\n"
"__zero_reg__ = 1\n", asm_out_file);
if (AVR_HAVE_SPH)
fprintf (asm_out_file, "__SP_H__ = 0x%02x\n", avr_addr.sp_h - sfr_offset);

View File

@ -1761,6 +1761,9 @@ frv_expand_prologue (void)
if (TARGET_DEBUG_STACK)
frv_debug_stack (info);
if (flag_stack_usage_info)
current_function_static_stack_size = info->total_size;
if (info->total_size == 0)
return;
@ -8434,7 +8437,7 @@ frv_init_builtins (void)
build_function_type_list (RET, T1, T2, T3, NULL_TREE)
#define QUAD(RET, T1, T2, T3, T4) \
build_function_type_list (RET, T1, T2, T3, NULL_TREE)
build_function_type_list (RET, T1, T2, T3, T4, NULL_TREE)
tree void_ftype_void = build_function_type_list (voidt, NULL_TREE);

View File

@ -143,6 +143,7 @@
int issue_rate; \
\
builtin_define ("__frv__"); \
builtin_assert ("cpu=frv"); \
builtin_assert ("machine=frv"); \
\
issue_rate = frv_issue_rate (); \

View File

@ -26,8 +26,8 @@
#MULTILIB_EXCEPTIONS = *mcpu=simple/*msoft-float* *mcpu=frv/*msoft-float*
#MULTILIB_EXTRA_OPTS = mlibrary-pic
MULTILIB_OPTIONS = mcpu=fr400/mcpu=fr550 mno-pack mlibrary-pic/mfdpic
MULTILIB_DIRNAMES = fr400 fr550 unpacked pic fdpic
MULTILIB_OPTIONS = mcpu=fr400/mcpu=fr550/mcpu=frv mno-pack mlibrary-pic/mfdpic
MULTILIB_DIRNAMES = fr400 fr550 frv unpacked pic fdpic
MULTILIB_MATCHES = mcpu?simple=mcpu?fr300 \
mlibrary-pic=multilib-library-pic \
mcpu?fr400=mcpu?fr405 mcpu?fr400=mcpu?fr450

View File

@ -96,6 +96,7 @@ extern int h8300_can_use_return_insn_p (void);
extern void h8300_expand_prologue (void);
extern void h8300_expand_epilogue (void);
extern int h8300_current_function_interrupt_function_p (void);
extern int h8300_current_function_monitor_function_p (void);
extern int h8300_initial_elimination_offset (int, int);
extern int h8300_regs_ok_for_stm (int, rtx[]);
extern int h8300_hard_regno_rename_ok (unsigned int, unsigned int);

View File

@ -339,10 +339,16 @@ h8300_option_override (void)
if (TARGET_H8300 && TARGET_NORMAL_MODE)
{
error ("-mn is used without -mh or -ms");
error ("-mn is used without -mh or -ms or -msx");
target_flags ^= MASK_NORMAL_MODE;
}
if (TARGET_H8300 && TARGET_INT32)
{
error ("-mint32 is not supported for H8300 and H8300L targets");
target_flags ^= MASK_INT32;
}
/* Some of the shifts are optimized for speed by default.
See http://gcc.gnu.org/ml/gcc-patches/2002-07/msg01858.html
If optimizing for size, change shift_alg for those shift to
@ -925,8 +931,13 @@ h8300_expand_epilogue (void)
int
h8300_current_function_interrupt_function_p (void)
{
return (h8300_interrupt_function_p (current_function_decl)
|| h8300_monitor_function_p (current_function_decl));
return (h8300_interrupt_function_p (current_function_decl));
}
int
h8300_current_function_monitor_function_p (void)
{
return (h8300_monitor_function_p (current_function_decl));
}
/* Output assembly code for the start of the file. */

View File

@ -118,7 +118,7 @@ extern const char * const *h8_reg_names;
/* Default target_flags if no switches specified. */
#ifndef TARGET_DEFAULT
#define TARGET_DEFAULT (MASK_QUICKCALL)
#define TARGET_DEFAULT (MASK_QUICKCALL | MASK_H8300SX)
#endif
/* We want dwarf2 info available to gdb. */
@ -129,6 +129,7 @@ extern const char * const *h8_reg_names;
#define INCOMING_FRAME_SP_OFFSET (POINTER_SIZE / 8)
#define DWARF_CIE_DATA_ALIGNMENT 2
#define DWARF2_ADDR_SIZE 4
/* Define this if addresses of constant functions
shouldn't be put through pseudo regs where they can be cse'd.
@ -482,7 +483,6 @@ struct cum_arg
#define EXIT_IGNORE_STACK 0
/* Length in units of the trampoline for entering a nested function. */
#define TRAMPOLINE_SIZE ((Pmode == HImode) ? 8 : 12)
/* Addressing modes, and classification of registers for them. */

File diff suppressed because it is too large Load Diff

View File

@ -17,9 +17,8 @@
# along with GCC; see the file COPYING3. If not see
# <http://www.gnu.org/licenses/>.
MULTILIB_OPTIONS = mh/ms/msx mn mint32
MULTILIB_DIRNAMES = h8300h h8300s h8sx normal int32
MULTILIB_EXCEPTIONS = mint32 mn mn/mint32
MULTILIB_OPTIONS = mn/mint32
MULTILIB_DIRNAMES = normal int32
s-config s-conditions s-flags s-codes s-constants s-emit s-recog \
s-opinit s-extract s-peep s-attr s-attrtab s-output: \

View File

@ -86,10 +86,6 @@
# define TRY_EMPTY_VM_SPACE 0x40000000
#elif defined(__ARM_EABI__)
# define TRY_EMPTY_VM_SPACE 0x60000000
#elif defined(__mips__) && defined(__LP64__)
# define TRY_EMPTY_VM_SPACE 0x8000000000
#elif defined(__mips__)
# define TRY_EMPTY_VM_SPACE 0x60000000
#else
# define TRY_EMPTY_VM_SPACE 0
#endif

View File

@ -11395,10 +11395,6 @@ ix86_address_subreg_operand (rtx op)
if (GET_MODE_SIZE (mode) > UNITS_PER_WORD)
return false;
/* simplify_subreg does not handle stack pointer. */
if (REGNO (op) == STACK_POINTER_REGNUM)
return false;
/* Allow only SUBREGs of non-eliminable hard registers. */
return register_no_elim_operand (op, mode);
}
@ -13843,7 +13839,6 @@ get_some_local_dynamic_name (void)
Z -- likewise, with special suffixes for x87 instructions.
* -- print a star (in certain assembler syntax)
A -- print an absolute memory reference.
E -- print address with DImode register names if TARGET_64BIT.
w -- print the operand as if it's a "word" (HImode) even if it isn't.
s -- print a shift double count, followed by the assemblers argument
delimiter.
@ -13919,14 +13914,7 @@ ix86_print_operand (FILE *file, rtx x, int code)
ix86_print_operand (file, x, 0);
return;
case 'E':
/* Wrap address in an UNSPEC to declare special handling. */
if (TARGET_64BIT)
x = gen_rtx_UNSPEC (DImode, gen_rtvec (1, x), UNSPEC_LEA_ADDR);
output_address (x);
return;
case 'L':
if (ASSEMBLER_DIALECT == ASM_ATT)
putc ('l', file);
@ -14531,7 +14519,6 @@ ix86_print_operand_address (FILE *file, rtx addr)
int scale;
int ok;
bool vsib = false;
int code = 0;
if (GET_CODE (addr) == UNSPEC && XINT (addr, 1) == UNSPEC_VSIBADDR)
{
@ -14542,12 +14529,6 @@ ix86_print_operand_address (FILE *file, rtx addr)
addr = XVECEXP (addr, 0, 0);
vsib = true;
}
else if (GET_CODE (addr) == UNSPEC && XINT (addr, 1) == UNSPEC_LEA_ADDR)
{
gcc_assert (TARGET_64BIT);
ok = ix86_decompose_address (XVECEXP (addr, 0, 0), &parts);
code = 'q';
}
else
ok = ix86_decompose_address (addr, &parts);
@ -14558,7 +14539,6 @@ ix86_print_operand_address (FILE *file, rtx addr)
rtx tmp = SUBREG_REG (parts.base);
parts.base = simplify_subreg (GET_MODE (parts.base),
tmp, GET_MODE (tmp), 0);
gcc_assert (parts.base != NULL_RTX);
}
if (parts.index && GET_CODE (parts.index) == SUBREG)
@ -14566,7 +14546,6 @@ ix86_print_operand_address (FILE *file, rtx addr)
rtx tmp = SUBREG_REG (parts.index);
parts.index = simplify_subreg (GET_MODE (parts.index),
tmp, GET_MODE (tmp), 0);
gcc_assert (parts.index != NULL_RTX);
}
base = parts.base;
@ -14620,6 +14599,8 @@ ix86_print_operand_address (FILE *file, rtx addr)
}
else
{
int code = 0;
/* Print SImode register names to force addr32 prefix. */
if (GET_CODE (addr) == SUBREG)
{
@ -14638,6 +14619,14 @@ ix86_print_operand_address (FILE *file, rtx addr)
code = 'l';
}
/* Print SImode registers for zero-extended addresses to force
addr32 prefix. Otherwise print DImode registers to avoid it. */
if (TARGET_64BIT)
code = ((GET_CODE (addr) == ZERO_EXTEND
|| GET_CODE (addr) == AND)
? 'l'
: 'q');
if (ASSEMBLER_DIALECT == ASM_ATT)
{
if (disp)

View File

@ -1657,6 +1657,17 @@ do { \
goto WIN; \
} while (0)
/* Try a machine-dependent way of reloading an illegitimate address
operand. If we find one, push the reload and jump to WIN. This
macro is used in only one place: `find_reloads_address' in reload.c. */
#define LEGITIMIZE_RELOAD_ADDRESS(X, MODE, OPNUM, TYPE, INDL, WIN) \
do { \
if (ix86_legitimize_reload_address ((X), (MODE), (OPNUM), \
(int)(TYPE), (INDL))) \
goto WIN; \
} while (0)
/* If defined, a C expression to determine the base term of address X.
This macro is used in only one place: `find_base_term' in alias.c.

View File

@ -38,7 +38,6 @@
;; Z -- likewise, with special suffixes for x87 instructions.
;; * -- print a star (in certain assembler syntax)
;; A -- print an absolute memory reference.
;; E -- print address with DImode register names if TARGET_64BIT.
;; w -- print the operand as if it's a "word" (HImode) even if it isn't.
;; s -- print a shift double count, followed by the assemblers argument
;; delimiter.
@ -108,7 +107,6 @@
UNSPEC_MS_TO_SYSV_CALL
UNSPEC_CALL_NEEDS_VZEROUPPER
UNSPEC_PAUSE
UNSPEC_LEA_ADDR
;; For SSE/MMX support:
UNSPEC_FIX_NOTRUNC
@ -1958,7 +1956,7 @@
return "#";
case TYPE_LEA:
return "lea{q}\t{%E1, %0|%0, %E1}";
return "lea{q}\t{%a1, %0|%0, %a1}";
default:
gcc_assert (!flag_pic || LEGITIMATE_PIC_OPERAND_P (operands[1]));
@ -1967,7 +1965,7 @@
else if (which_alternative == 2)
return "movabs{q}\t{%1, %0|%0, %1}";
else if (ix86_use_lea_for_mov (insn, operands))
return "lea{q}\t{%E1, %0|%0, %E1}";
return "lea{q}\t{%a1, %0|%0, %a1}";
else
return "mov{q}\t{%1, %0|%0, %1}";
}
@ -2199,12 +2197,12 @@
return "movd\t{%1, %0|%0, %1}";
case TYPE_LEA:
return "lea{l}\t{%E1, %0|%0, %E1}";
return "lea{l}\t{%a1, %0|%0, %a1}";
default:
gcc_assert (!flag_pic || LEGITIMATE_PIC_OPERAND_P (operands[1]));
if (ix86_use_lea_for_mov (insn, operands))
return "lea{l}\t{%E1, %0|%0, %E1}";
return "lea{l}\t{%a1, %0|%0, %a1}";
else
return "mov{l}\t{%1, %0|%0, %1}";
}
@ -12568,7 +12566,7 @@
"!TARGET_64BIT && TARGET_GNU_TLS"
{
output_asm_insn
("lea{l}\t{%E2@tlsgd(,%1,1), %0|%0, %E2@tlsgd[%1*1]}", operands);
("lea{l}\t{%a2@tlsgd(,%1,1), %0|%0, %a2@tlsgd[%1*1]}", operands);
if (TARGET_SUN_TLS)
#ifdef HAVE_AS_IX86_TLSGDPLT
return "call\t%a2@tlsgdplt";
@ -12603,7 +12601,7 @@
if (!TARGET_X32)
fputs (ASM_BYTE "0x66\n", asm_out_file);
output_asm_insn
("lea{q}\t{%E1@tlsgd(%%rip), %%rdi|rdi, %E1@tlsgd[rip]}", operands);
("lea{q}\t{%a1@tlsgd(%%rip), %%rdi|rdi, %a1@tlsgd[rip]}", operands);
fputs (ASM_SHORT "0x6666\n", asm_out_file);
fputs ("\trex64\n", asm_out_file);
if (TARGET_SUN_TLS)
@ -12829,7 +12827,7 @@
(unspec:SI [(match_operand:SI 2 "tls_symbolic_operand" "")]
UNSPEC_TLSDESC))))]
"!TARGET_64BIT && TARGET_GNU2_TLS"
"lea{l}\t{%E2@TLSDESC(%1), %0|%0, %E2@TLSDESC[%1]}"
"lea{l}\t{%a2@TLSDESC(%1), %0|%0, %a2@TLSDESC[%1]}"
[(set_attr "type" "lea")
(set_attr "mode" "SI")
(set_attr "length" "6")
@ -12891,7 +12889,7 @@
(unspec:DI [(match_operand 1 "tls_symbolic_operand" "")]
UNSPEC_TLSDESC))]
"TARGET_64BIT && TARGET_GNU2_TLS"
"lea{q}\t{%E1@TLSDESC(%%rip), %0|%0, %E1@TLSDESC[rip]}"
"lea{q}\t{%a1@TLSDESC(%%rip), %0|%0, %a1@TLSDESC[rip]}"
[(set_attr "type" "lea")
(set_attr "mode" "DI")
(set_attr "length" "7")
@ -16646,7 +16644,7 @@
default:
operands[2] = SET_SRC (XVECEXP (PATTERN (insn), 0, 0));
return "lea{<imodesuffix>}\t{%E2, %0|%0, %E2}";
return "lea{<imodesuffix>}\t{%a2, %0|%0, %a2}";
}
}
[(set (attr "type")

View File

@ -81,8 +81,13 @@ along with GCC; see the file COPYING3. If not see
#undef NATIVE_SYSTEM_HEADER_COMPONENT
#define NATIVE_SYSTEM_HEADER_COMPONENT "MINGW"
#undef CPP_SPEC
#undef CPP_SPEC
#define CPP_SPEC "%{posix:-D_POSIX_SOURCE} %{mthreads:-D_MT} " \
"%{mno-win32:%{mno-cygwin: %emno-cygwin and mno-win32 are not compatible}} " \
"%{!mno-win32:-D__MSVCRT__ -D__MINGW32__ %{!ansi:%{mthreads:-D_MT}}} " \
"%{mno-win32:-D__CYGWIN32__ -D__CYGWIN__ %{!ansi:-Dunix} -D__unix__ -D__unix} " \
"%{!mno-cygwin:-DWIN32 -D_WIN32 -D__WIN32 -D__WIN32__ %{!ansi:-DWINNT}} " \
"%{!nostdinc:%{!mno-win32|mno-cygwin:-idirafter ../include/w32api%s -idirafter ../../include/w32api%s}} " \
"%{" SPEC_PTHREAD1 ":-D_REENTRANT} " \
"%{" SPEC_PTHREAD2 ": } "

View File

@ -28,7 +28,7 @@
(define_code_iterator FETCHOP [plus minus ior xor and])
(define_code_attr fetchop_name
[(plus "add") (minus "sub") (ior "or") (xor "xor") (and "and")])
[(plus "add") (minus "sub") (ior "ior") (xor "xor") (and "and")])
(define_expand "mem_thread_fence"
[(match_operand:SI 0 "const_int_operand" "")] ;; model

View File

@ -168,8 +168,6 @@ static unsigned int iq2000_function_arg_boundary (enum machine_mode,
static void iq2000_va_start (tree, rtx);
static bool iq2000_legitimate_address_p (enum machine_mode, rtx, bool);
static bool iq2000_can_eliminate (const int, const int);
static void iq2000_asm_trampoline_template (FILE *);
static void iq2000_trampoline_init (rtx, tree, rtx);
static rtx iq2000_function_value (const_tree, const_tree, bool);
static rtx iq2000_libcall_value (enum machine_mode, const_rtx);
static void iq2000_print_operand (FILE *, rtx, int);
@ -244,11 +242,6 @@ static bool iq2000_print_operand_punct_valid_p (unsigned char code);
#undef TARGET_CAN_ELIMINATE
#define TARGET_CAN_ELIMINATE iq2000_can_eliminate
#undef TARGET_ASM_TRAMPOLINE_TEMPLATE
#define TARGET_ASM_TRAMPOLINE_TEMPLATE iq2000_asm_trampoline_template
#undef TARGET_TRAMPOLINE_INIT
#define TARGET_TRAMPOLINE_INIT iq2000_trampoline_init
struct gcc_target targetm = TARGET_INITIALIZER;
/* Return nonzero if we split the address into high and low parts. */
@ -1331,7 +1324,7 @@ iq2000_function_arg (cumulative_args_t cum_v, enum machine_mode mode,
&& int_bit_position (field) == bitpos
&& TREE_CODE (TREE_TYPE (field)) == REAL_TYPE
&& TYPE_PRECISION (TREE_TYPE (field)) == BITS_PER_WORD)
reg = gen_rtx_REG (DFmode, regno++);
reg = gen_rtx_REG (SFmode, regno++);
else
reg = gen_rtx_REG (word_mode, regno);
@ -2120,8 +2113,7 @@ iq2000_expand_eh_return (rtx address)
HOST_WIDE_INT gp_offset = cfun->machine->gp_sp_offset;
rtx scratch;
scratch = plus_constant (stack_pointer_rtx, gp_offset);
emit_move_insn (gen_rtx_MEM (GET_MODE (address), scratch), address);
emit_move_insn (EH_RETURN_HANDLER_RTX, address);
}
/* Return nonzero if this function is known to have a null epilogue.
@ -3424,47 +3416,4 @@ iq2000_rtx_costs (rtx x, int code, int outer_code ATTRIBUTE_UNUSED,
return true;
}
/* Worker for TARGET_ASM_TRAMPOLINE_TEMPLATE. */
static void
iq2000_asm_trampoline_template (FILE *f)
{
fprintf (f, "\t.word\t0x03e00821\t\t# move $1,$31\n");
fprintf (f, "\t.word\t0x04110001\t\t# bgezal $0,.+8\n");
fprintf (f, "\t.word\t0x00000000\t\t# nop\n");
if (Pmode == DImode)
{
fprintf (f, "\t.word\t0xdfe30014\t\t# ld $3,20($31)\n");
fprintf (f, "\t.word\t0xdfe2001c\t\t# ld $2,28($31)\n");
}
else
{
fprintf (f, "\t.word\t0x8fe30014\t\t# lw $3,20($31)\n");
fprintf (f, "\t.word\t0x8fe20018\t\t# lw $2,24($31)\n");
}
fprintf (f, "\t.word\t0x0060c821\t\t# move $25,$3 (abicalls)\n");
fprintf (f, "\t.word\t0x00600008\t\t# jr $3\n");
fprintf (f, "\t.word\t0x0020f821\t\t# move $31,$1\n");
fprintf (f, "\t.word\t0x00000000\t\t# <function address>\n");
fprintf (f, "\t.word\t0x00000000\t\t# <static chain value>\n");
}
/* Worker for TARGET_TRAMPOLINE_INIT. */
static void
iq2000_trampoline_init (rtx m_tramp, tree fndecl, rtx chain_value)
{
rtx fnaddr = XEXP (DECL_RTL (fndecl), 0);
rtx mem;
emit_block_move (m_tramp, assemble_trampoline_template (),
GEN_INT (TRAMPOLINE_CODE_SIZE), BLOCK_OP_NORMAL);
mem = adjust_address (m_tramp, Pmode, TRAMPOLINE_CODE_SIZE);
emit_move_insn (mem, fnaddr);
mem = adjust_address (m_tramp, Pmode,
TRAMPOLINE_CODE_SIZE + GET_MODE_SIZE (Pmode));
emit_move_insn (mem, chain_value);
}
#include "gt-iq2000.h"

View File

@ -367,12 +367,8 @@ typedef struct iq2000_args
fprintf (FILE, "\t.set\tat\n"); \
}
/* Trampolines for Nested Functions. */
#define TRAMPOLINE_CODE_SIZE (8*4)
#define TRAMPOLINE_SIZE (TRAMPOLINE_CODE_SIZE + 2*GET_MODE_SIZE (Pmode))
#define TRAMPOLINE_ALIGNMENT GET_MODE_ALIGNMENT (Pmode)
#define TRAMPOLINE_SIZE 0
#define TRAMPOLINE_ALIGNMENT 1
/* Addressing Modes. */
@ -643,7 +639,7 @@ enum delay_type
/* Force right-alignment for small varargs in 32 bit little_endian mode */
#define PAD_VARARGS_DOWN !BYTES_BIG_ENDIAN
#define PAD_VARARGS_DOWN 1
/* Internal macros to classify a register number as to whether it's a
general purpose register, a floating point register, a

View File

@ -982,14 +982,26 @@
(set_attr "mode" "SI")])
;; Rotate Right
(define_insn "rotrsi3"
(define_insn "rotrsi3_i"
[(set (match_operand:SI 0 "register_operand" "=r")
(rotatert:SI (match_operand:SI 1 "register_operand" "r")
(match_operand:SI 2 "uns_arith_operand" "O")))]
(match_operand:SI 2 "small_uns_int_operand" "O")))]
""
"ram %0,%1,%2,0x0,0x0"
[(set_attr "type" "arith")])
(define_expand "rotrsi3"
[(set (match_operand:SI 0 "register_operand" "=r")
(rotatert:SI (match_operand:SI 1 "register_operand" "r")
(match_operand:SI 2 "small_uns_int_operand" "O")))]
""
"if (GET_CODE (operands[2]) != CONST_INT)
FAIL;
if (INTVAL (operands[2]) < 0
|| INTVAL (operands[2]) > 31)
FAIL;
")
;;
;; ....................

View File

@ -238,3 +238,9 @@
return ((intval & ((unsigned)(intval) - 1)) == 0);
})
(define_predicate "small_uns_int_operand"
(match_code "const_int")
{
return (INTVAL (op) >= 0 && INTVAL (op) <= 31);
})

View File

@ -429,6 +429,9 @@ m32c_option_override (void)
/* FIXME: The right solution is to properly trace the flags register
values, but that is too much work for stage 4. */
flag_combine_stack_adjustments = 0;
if (flag_exceptions)
flag_omit_frame_pointer = 0;
}
#undef TARGET_OVERRIDE_OPTIONS_AFTER_CHANGE
@ -4364,6 +4367,10 @@ m32c_emit_prologue (void)
frame_size =
m32c_initial_elimination_offset (FB_REGNO, SP_REGNO) - reg_save_size;
if (flag_stack_usage_info)
current_function_static_stack_size = frame_size;
if (frame_size == 0
&& !m32c_function_needs_enter ())
cfun->machine->use_rts = 1;

View File

@ -1146,11 +1146,16 @@ struct mips_cpu_info {
/* Extra switches sometimes passed to the linker. */
#ifndef SUBTARGET_LINK_SPEC
#define SUBTARGET_LINK_SPEC ""
#endif
#ifndef LINK_SPEC
#define LINK_SPEC "\
%(endian_spec) \
%{G*} %{mips1} %{mips2} %{mips3} %{mips4} %{mips32*} %{mips64*} \
%{shared}"
%{shared} \
%(subtarget_link_spec)"
#endif /* LINK_SPEC defined */
@ -1194,6 +1199,7 @@ struct mips_cpu_info {
{ "subtarget_cpp_spec", SUBTARGET_CPP_SPEC }, \
{ "subtarget_asm_debugging_spec", SUBTARGET_ASM_DEBUGGING_SPEC }, \
{ "subtarget_asm_spec", SUBTARGET_ASM_SPEC }, \
{ "subtarget_link_spec", SUBTARGET_LINK_SPEC }, \
{ "asm_abi_default_spec", "-" MULTILIB_ABI_DEFAULT }, \
{ "endian_spec", ENDIAN_SPEC }, \
SUBTARGET_EXTRA_SPECS

View File

@ -16,91 +16,46 @@
# along with GCC; see the file COPYING3. If not see
# <http://www.gnu.org/licenses/>.
TPBIT = tp-bit.c
tp-bit.c: $(srcdir)/config/fp-bit.c
echo '#ifdef __MIPSEL__' > tp-bit.c
echo '# define FLOAT_BIT_ORDER_MISMATCH' >> tp-bit.c
echo '#endif' >> tp-bit.c
echo '#if __LDBL_MANT_DIG__ == 113' >> tp-bit.c
echo '#define QUIET_NAN_NEGATED' >> tp-bit.c
echo '# define TFLOAT' >> tp-bit.c
cat $(srcdir)/config/fp-bit.c >> tp-bit.c
echo '#endif' >> tp-bit.c
# Main multilibs
# --------------
#
# Endianness: EB or EL
# Endianness: EL (default)
# EB
#
# ABIs: mabi=32
# mabi=o64
# mabi=eabi
# mabi=eabi/mlong32
# mabi=eabi/mgp32
# mabi=eabi/mgp32/mlong64
# ABIs: mabi=eabi (default)
# mabi=32
# mabi=n32
# mabi=64
# mgp32
#
# Architecture: march=vr4120 with -mfix-vr4120
# march=vr4130 with -mfix-vr4130 (default)
# march=vr5000
# march=vr5400
# Architecture: march=vr4300 (default)
# march=vr4130 [with -mfix-vr4130 enabled]
# march=vr5500
#
# Total: 2 * 6 * 5 = 60 multilibs.
#
#
# Extra vr4300 multilibs
# ----------------------
#
# Endianness: EB or EL
#
# ABI: o64
#
# Architecture: vr4300.
#
# Total: 2 * 1 * 2 = 2 multilibs.
#
#
# Extra MIPS16 multilibs
# ----------------------
#
# Endianness: EB or EL
#
# ABIs: mabi=o64
# mabi=eabi/mlong32
# mabi=eabi/mgp32
#
# Architecture: march=vr4120 with -mfix-vr4120
# march=vr4130 with -mfix-vr4130 (default)
#
# Total: 2 * 3 * 2 = 12 multilibs.
# Total: 2 * 5 * 3 = 30 multilibs.
MULTILIB_OPTIONS = \
EL/EB \
mabi=32/mabi=o64/mabi=eabi \
mgp32 \
mlong64 \
mips16 \
mfix-vr4120/mfix-vr4130/march=vr4300/march=vr5000/march=vr5400/march=vr5500
mabi=eabi/mabi=32/mabi=n32/mabi=64/mgp32 \
march=vr4300/march=vr4130/march=vr5500
MULTILIB_DIRNAMES = \
el eb \
o32 o64 eabi \
gp32 \
long64 \
mips16 \
vr4120 vr4130 vr4300 vr5000 vr5400 vr5500
eabi o32 n32 n64 gp32 \
vr4300 vr4130 vr5500
MULTILIB_MATCHES = EL=mel EB=meb mfix-vr4120=march?vr4120 \
mfix-vr4130=march?vr4130
# Assume a 41xx-series is the default: we'd need a *mips16 entry if
# the default processor didn't support mips16. Also assume the
# default ABI is EABI64 -mlong32.
MULTILIB_EXCEPTIONS = \
*mabi=32/mlong64* \
*mabi=32/mgp32* \
*mabi=o64/mgp32* \
*mabi=o64/mlong64* \
*mips16/march=vr5* \
*mips16/march=vr4300 \
$(MIPS16_EXCEPTIONS) \
$(VR4300_EXCEPTIONS)
MIPS16_EXCEPTIONS = \
*mabi=32*mips16* \
*mlong64*mips16*
VR4300_EXCEPTIONS = \
*mabi=32*march=vr4300 \
*mgp32*march=vr4300 \
*mlong64*march=vr4300 \
march=vr4300 \
E[LB]/march=vr4300
MULTILIB_MATCHES = EL=mel EB=meb \
mabi?32=mabi?o32 \
mabi?64=mabi?n64

View File

@ -19,25 +19,29 @@ You should have received a copy of the GNU General Public License
along with GCC; see the file COPYING3. If not see
<http://www.gnu.org/licenses/>. */
#define DEFAULT_VR_ARCH "mfix-vr4130"
#define DEFAULT_VR_ARCH "march=4300"
#undef MULTILIB_ABI_DEFAULT
#define MULTILIB_ABI_DEFAULT "mabi=eabi"
#undef MULTILIB_DEFAULTS
#define MULTILIB_DEFAULTS \
{ MULTILIB_ENDIAN_DEFAULT, \
MULTILIB_ABI_DEFAULT, \
DEFAULT_VR_ARCH }
#undef DRIVER_SELF_SPECS
#undef SUBTARGET_LINK_SPEC
#define SUBTARGET_LINK_SPEC \
"%{mabi=n32:%{EB:--oformat=elf32-nbigmips} %{!EB:--oformat=elf32-nlittlemips}}\
%{mabi=64:%{EB:--oformat=elf64-bigmips} %{!EB:--oformat=elf64-littlemips}}"
#undef DRIVER_SELF_SPECS
#define DRIVER_SELF_SPECS \
/* Enforce the default architecture. This is mostly for \
the assembler's benefit. */ \
"%{!march=*:%{!mfix-vr4120:%{!mfix-vr4130:" \
"-" DEFAULT_VR_ARCH "}}}", \
\
/* Make -mfix-vr4120 imply -march=vr4120. This cuts down \
on command-line tautology and makes it easier for t-vr to \
provide a -mfix-vr4120 multilib. */ \
"%{mfix-vr4120:%{!march=*:-march=vr4120}}", \
\
/* Same idea for -mfix-vr4130. */ \
"%{mfix-vr4130:%{!march=*:-march=vr4130}}", \
\
@ -45,11 +49,7 @@ along with GCC; see the file COPYING3. If not see
MIPS_ARCH_FLOAT_SPEC, \
\
/* Make -mabi=eabi -mlong32 the default. */ \
"%{!mabi=*:-mabi=eabi %{!mlong*:-mlong32}}", \
\
/* Make sure -mlong64 multilibs are chosen when 64-bit longs \
are needed. */ \
"%{mabi=eabi:%{!mlong*:%{!mgp32:-mlong64}}}", \
"%{!mabi=*:-mabi=eabi}", \
\
/* Remove -mgp32 if it is redundant. */ \
"%{mabi=32:%<mgp32}", \

View File

@ -25,7 +25,7 @@ extern int mn10300_legitimate_pic_operand_p (rtx);
extern rtx mn10300_legitimize_reload_address (rtx, enum machine_mode,
int, int, int);
extern bool mn10300_function_value_regno_p (const unsigned int);
extern int mn10300_get_live_callee_saved_regs (void);
extern unsigned int mn10300_get_live_callee_saved_regs (unsigned int *);
extern bool mn10300_hard_regno_mode_ok (unsigned int, enum machine_mode);
extern bool mn10300_modes_tieable (enum machine_mode, enum machine_mode);
extern const char *mn10300_output_add (rtx[3], bool);

View File

@ -47,6 +47,8 @@
#include "opts.h"
#include "cfgloop.h"
int flag_hosted __attribute__((weak));
/* This is used in the am33_2.0-linux-gnu port, in which global symbol
names are not prefixed by underscores, to tell whether to prefix a
label with a plus sign or not, so that the assembler can tell
@ -56,18 +58,6 @@ int mn10300_protect_label;
/* Selected processor type for tuning. */
enum processor_type mn10300_tune_cpu = PROCESSOR_DEFAULT;
/* The size of the callee register save area. Right now we save everything
on entry since it costs us nothing in code size. It does cost us from a
speed standpoint, so we want to optimize this sooner or later. */
#define REG_SAVE_BYTES (4 * df_regs_ever_live_p (2) \
+ 4 * df_regs_ever_live_p (3) \
+ 4 * df_regs_ever_live_p (6) \
+ 4 * df_regs_ever_live_p (7) \
+ 16 * (df_regs_ever_live_p (14) \
|| df_regs_ever_live_p (15) \
|| df_regs_ever_live_p (16) \
|| df_regs_ever_live_p (17)))
#define CC_FLAG_Z 1
#define CC_FLAG_N 2
#define CC_FLAG_C 4
@ -634,20 +624,36 @@ mn10300_can_use_rets_insn (void)
/* Returns the set of live, callee-saved registers as a bitmask. The
callee-saved extended registers cannot be stored individually, so
all of them will be included in the mask if any one of them is used. */
all of them will be included in the mask if any one of them is used.
Also returns the number of bytes in the registers in the mask if
BYTES_SAVED is not NULL. */
int
mn10300_get_live_callee_saved_regs (void)
unsigned int
mn10300_get_live_callee_saved_regs (unsigned int * bytes_saved)
{
int mask;
int i;
unsigned int count;
mask = 0;
count = mask = 0;
for (i = 0; i <= LAST_EXTENDED_REGNUM; i++)
if (df_regs_ever_live_p (i) && ! call_really_used_regs[i])
mask |= (1 << i);
{
mask |= (1 << i);
++ count;
}
if ((mask & 0x3c000) != 0)
mask |= 0x3c000;
{
for (i = 0x04000; i < 0x40000; i <<= 1)
if ((mask & i) == 0)
++ count;
mask |= 0x3c000;
}
if (bytes_saved)
* bytes_saved = count * UNITS_PER_WORD;
return mask;
}
@ -741,7 +747,10 @@ mn10300_expand_prologue (void)
HOST_WIDE_INT size = mn10300_frame_size ();
/* If we use any of the callee-saved registers, save them now. */
mn10300_gen_multiple_store (mn10300_get_live_callee_saved_regs ());
mn10300_gen_multiple_store (mn10300_get_live_callee_saved_regs (NULL));
if (flag_stack_usage_info)
current_function_static_stack_size = size;
if (TARGET_AM33_2 && fp_regs_to_save ())
{
@ -998,7 +1007,9 @@ void
mn10300_expand_epilogue (void)
{
HOST_WIDE_INT size = mn10300_frame_size ();
int reg_save_bytes = REG_SAVE_BYTES;
unsigned int reg_save_bytes;
mn10300_get_live_callee_saved_regs (& reg_save_bytes);
if (TARGET_AM33_2 && fp_regs_to_save ())
{
@ -1219,7 +1230,7 @@ mn10300_expand_epilogue (void)
if (mn10300_can_use_rets_insn ())
emit_jump_insn (ret_rtx);
else
emit_jump_insn (gen_return_ret (GEN_INT (size + REG_SAVE_BYTES)));
emit_jump_insn (gen_return_ret (GEN_INT (size + reg_save_bytes)));
}
/* Recognize the PARALLEL rtx generated by mn10300_gen_multiple_store().
@ -1434,7 +1445,10 @@ mn10300_initial_offset (int from, int to)
is the size of the callee register save area. */
if (from == ARG_POINTER_REGNUM)
{
diff += REG_SAVE_BYTES;
unsigned int reg_save_bytes;
mn10300_get_live_callee_saved_regs (& reg_save_bytes);
diff += reg_save_bytes;
diff += 4 * fp_regs_to_save ();
}
@ -1963,7 +1977,8 @@ mn10300_legitimate_address_p (enum machine_mode mode, rtx x, bool strict)
return IN_RANGE (INTVAL (index), -1 - 0x7fffffff, 0x7fffffff);
if (CONSTANT_ADDRESS_P (index))
return !flag_pic || mn10300_legitimate_pic_operand_p (index);
return !flag_pic || (mn10300_legitimate_pic_operand_p (index)
&& GET_MODE_SIZE (mode) == 4);
return false;
}
@ -2114,7 +2129,8 @@ mn10300_delegitimize_address (rtx orig_x)
else
return orig_x;
gcc_assert (GET_CODE (ret) == SYMBOL_REF);
if (GET_CODE (ret) != SYMBOL_REF)
return orig_x;
if (need_mem != MEM_P (orig_x))
return orig_x;
if (need_mem && addend)

View File

@ -585,6 +585,28 @@ do { \
for the MN10300 series, that's our primary concern. */
#define MOVE_RATIO(speed) 6
#define TARGET_BLOCK_MOVE_MAY_USE_LIBCALL(X,Y,SIZE,METHOD,RETURN_ANSWER) \
do \
{ \
extern int flag_hosted; \
\
if ((METHOD) == BLOCK_OP_BUILTIN || (METHOD) == BLOCK_OP_TAILCALL) \
* (RETURN_ANSWER) = true; \
else if (! TARGET_MEM_FUNCS || ! flag_hosted) \
* (RETURN_ANSWER) = false; \
} \
while (0)
/* When TARGET_NO_MEM_FUNCS is in operation we want to disable gcc's
generation of calls to memcpy/memset. The definition of TARGET_BLOCK_
MOVE_MAY_USE_LIBCALL above has handled this for memcpy()s but GCC has no
equivalent code for handling memset()s, so we use CLEAR_RATIO instead.
Unfortunately gcc handles clearing blocks via generating individual
instructions for each byte to be cleared, rather than generating a loop
so we cannot set too high a value. */
#define CLEAR_RATIO(speed) ((unsigned HOST_WIDE_INT) \
((! TARGET_MEM_FUNCS) ? 256 : (speed ? 15 : 3)))
#define TEXT_SECTION_ASM_OP "\t.section .text"
#define DATA_SECTION_ASM_OP "\t.section .data"
#define BSS_SECTION_ASM_OP "\t.section .bss"

View File

@ -2048,7 +2048,7 @@
{
/* The RETF insn is up to 3 cycles faster than RET. */
fputs ((mn10300_can_use_retf_insn () ? "\tretf " : "\tret "), asm_out_file);
mn10300_print_reg_list (asm_out_file, mn10300_get_live_callee_saved_regs ());
mn10300_print_reg_list (asm_out_file, mn10300_get_live_callee_saved_regs (NULL));
fprintf (asm_out_file, ",%d\n", (int) INTVAL (operands[0]));
return "";
})

View File

@ -65,3 +65,7 @@ Allow gcc to generate LIW instructions
msetlb
Target Report Mask(ALLOW_SETLB)
Allow gcc to generate the SETLB and Lcc instructions
mmem-funcs
Target Report Mask(MEM_FUNCS)
Allow gcc to generate calls to memset/memcpy

View File

@ -91,11 +91,21 @@ extern int pa_ldil_cint_p (HOST_WIDE_INT);
extern int pa_shadd_constant_p (int);
extern int pa_zdepi_cint_p (unsigned HOST_WIDE_INT);
extern void pa_output_ascii (FILE *, const char *, int);
extern HOST_WIDE_INT pa_compute_frame_size (HOST_WIDE_INT, int *);
extern void pa_expand_prologue (void);
extern void pa_expand_epilogue (void);
extern void output_ascii (FILE *, const char *, int);
extern HOST_WIDE_INT compute_frame_size (HOST_WIDE_INT, int *);
extern int and_mask_p (unsigned HOST_WIDE_INT);
extern int cint_ok_for_move (HOST_WIDE_INT);
extern void hppa_expand_prologue (void);
extern void hppa_expand_epilogue (void);
extern bool pa_can_use_return_insn (void);
extern int ior_mask_p (unsigned HOST_WIDE_INT);
extern void compute_zdepdi_operands (unsigned HOST_WIDE_INT,
unsigned *);
#ifdef RTX_CODE
extern const char * output_64bit_and (rtx *);
extern const char * output_64bit_ior (rtx *);
extern int cmpib_comparison_operator (rtx, enum machine_mode);
#endif
/* Miscellaneous functions in pa.c. */
#ifdef TREE_CODE

View File

@ -186,8 +186,6 @@ static bool pa_can_eliminate (const int, const int);
static void pa_conditional_register_usage (void);
static enum machine_mode pa_c_mode_for_suffix (char);
static section *pa_function_section (tree, enum node_frequency, bool, bool);
static bool pa_cannot_force_const_mem (enum machine_mode, rtx);
static bool pa_legitimate_constant_p (enum machine_mode, rtx);
static unsigned int pa_section_type_flags (tree, const char *, int);
/* The following extra sections are only used for SOM. */
@ -382,8 +380,6 @@ static size_t n_deferred_plabels = 0;
#undef TARGET_ASM_FUNCTION_SECTION
#define TARGET_ASM_FUNCTION_SECTION pa_function_section
#undef TARGET_LEGITIMATE_CONSTANT_P
#define TARGET_LEGITIMATE_CONSTANT_P pa_legitimate_constant_p
#undef TARGET_SECTION_TYPE_FLAGS
#define TARGET_SECTION_TYPE_FLAGS pa_section_type_flags
@ -4357,7 +4353,7 @@ pa_can_use_return_insn (void)
if (crtl->profile)
return false;
return pa_compute_frame_size (get_frame_size (), 0) == 0;
return compute_frame_size (get_frame_size (), 0) == 0;
}
rtx
@ -10295,52 +10291,6 @@ pa_function_section (tree decl, enum node_frequency freq,
return default_function_section (decl, freq, startup, exit);
}
/* Implement TARGET_LEGITIMATE_CONSTANT_P.
In 64-bit mode, we reject CONST_DOUBLES. We also reject CONST_INTS
that need more than three instructions to load prior to reload. This
limit is somewhat arbitrary. It takes three instructions to load a
CONST_INT from memory but two are memory accesses. It may be better
to increase the allowed range for CONST_INTS. We may also be able
to handle CONST_DOUBLES. */
static bool
pa_legitimate_constant_p (enum machine_mode mode, rtx x)
{
if (GET_MODE_CLASS (mode) == MODE_FLOAT && x != CONST0_RTX (mode))
return false;
if (!NEW_HP_ASSEMBLER && !TARGET_GAS && GET_CODE (x) == LABEL_REF)
return false;
/* TLS_MODEL_GLOBAL_DYNAMIC and TLS_MODEL_LOCAL_DYNAMIC are not
legitimate constants. */
if (PA_SYMBOL_REF_TLS_P (x))
{
enum tls_model model = SYMBOL_REF_TLS_MODEL (x);
if (model == TLS_MODEL_GLOBAL_DYNAMIC || model == TLS_MODEL_LOCAL_DYNAMIC)
return false;
}
if (TARGET_64BIT && GET_CODE (x) == CONST_DOUBLE)
return false;
if (TARGET_64BIT
&& HOST_BITS_PER_WIDE_INT > 32
&& GET_CODE (x) == CONST_INT
&& !reload_in_progress
&& !reload_completed
&& !LEGITIMATE_64BIT_CONST_INT_P (INTVAL (x))
&& !pa_cint_ok_for_move (INTVAL (x)))
return false;
if (function_label_operand (x, mode))
return false;
return true;
}
/* Implement TARGET_SECTION_TYPE_FLAGS. */
static unsigned int

View File

@ -447,8 +447,9 @@
(ior (match_operand 0 "register_operand")
(match_operand 0 "cint_ior_operand")))
;; Return 1 if OP is a CONST_INT with the value 2, 4, or 8. These are
;; the valid constants for shadd instructions.
;; True iff OP is a CONST_INT of the forms 0...0xxxx, 0...01...1xxxx,
;; or 1...1xxxx. Such values can be the left hand side x in (x << r),
;; using the zvdepi instruction.
(define_predicate "shadd_operand"
(and (match_code "const_int")

View File

@ -342,6 +342,13 @@ rs6000_target_modify_macros (bool define_p, int flags, unsigned bu_mask)
rs6000_define_or_undefine_macro (define_p, "__PAIRED__");
if ((bu_mask & RS6000_BTM_CELL) != 0)
rs6000_define_or_undefine_macro (define_p, "__PPU__");
rs6000_define_or_undefine_macro (false, "__FLT_HAS_QUIET_NAN__");
rs6000_define_or_undefine_macro (true, "__FLT_HAS_QUIET_NAN__=0");
rs6000_define_or_undefine_macro (false, "__DBL_HAS_QUIET_NAN__");
rs6000_define_or_undefine_macro (true, "__DBL_HAS_QUIET_NAN__=0");
rs6000_define_or_undefine_macro (false, "__LDBL_HAS_QUIET_NAN__");
rs6000_define_or_undefine_macro (true, "__LDBL_HAS_QUIET_NAN__=0");
}
void

View File

@ -3801,6 +3801,9 @@ rs6000_builtin_vectorized_libmass (tree fndecl, tree type_out, tree type_in)
else
return NULL_TREE;
if (bdecl == NULL_TREE)
return bdecl;
gcc_assert (suffix != NULL);
bname = IDENTIFIER_POINTER (DECL_NAME (bdecl));
strcpy (name, bname + sizeof ("__builtin_") - 1);
@ -19706,7 +19709,7 @@ rs6000_emit_prologue (void)
}
/* Need to adjust r11 (r12) if we saved any FPRs. */
else if (info->first_fp_reg_save != 64)
{
{
rtx dest_reg = gen_rtx_REG (Pmode, DEFAULT_ABI == ABI_AIX ? 12 : 11);
int save_off = 8 * (64 - info->first_fp_reg_save);
rtx offset = GEN_INT (sp_offset - save_off);

View File

@ -12303,7 +12303,135 @@
"TARGET_ELF && TARGET_CMODEL != CMODEL_SMALL"
"{cal %0,%2@l(%1)|addi %0,%1,%2@l}")
;; Call and call_value insns
;; A function pointer under AIX is a pointer to a data area whose first word
;; contains the actual address of the function, whose second word contains a
;; pointer to its TOC, and whose third word contains a value to place in the
;; static chain register (r11). Note that if we load the static chain, our
;; "trampoline" need not have any executable code.
(define_expand "call_indirect_aix32"
[(set (match_dup 2)
(mem:SI (match_operand:SI 0 "gpc_reg_operand" "")))
(set (match_dup 3)
(reg:SI 2))
(set (reg:SI 11)
(mem:SI (plus:SI (match_dup 0)
(const_int 8))))
(parallel [(call (mem:SI (match_dup 2))
(match_operand 1 "" ""))
(use (match_dup 4))
(set (reg:SI 2) (match_dup 3))
(use (reg:SI 11))
(clobber (reg:SI LR_REGNO))])]
"TARGET_32BIT"
"
{
operands[2] = gen_reg_rtx (SImode);
operands[3] = gen_rtx_MEM (SImode,
gen_rtx_PLUS (SImode, stack_pointer_rtx,
GEN_INT (20)));
operands[4] = gen_rtx_MEM (SImode,
gen_rtx_PLUS (SImode, operands[0],
GEN_INT (4)));
/* Make sure the compiler does not optimize away the store of the TOC. */
MEM_VOLATILE_P (operands[3]) = 1;
}")
(define_expand "call_indirect_aix64"
[(set (match_dup 2)
(mem:DI (match_operand:DI 0 "gpc_reg_operand" "")))
(set (match_dup 3)
(reg:DI 2))
(set (reg:DI 11)
(mem:DI (plus:DI (match_dup 0)
(const_int 16))))
(parallel [(call (mem:SI (match_dup 2))
(match_operand 1 "" ""))
(use (match_dup 4))
(set (reg:DI 2) (match_dup 3))
(use (reg:DI 11))
(clobber (reg:DI LR_REGNO))])]
"TARGET_64BIT"
"
{
operands[2] = gen_reg_rtx (DImode);
operands[3] = gen_rtx_MEM (DImode,
gen_rtx_PLUS (DImode, stack_pointer_rtx,
GEN_INT (40)));
operands[4] = gen_rtx_MEM (DImode,
gen_rtx_PLUS (DImode, operands[0],
GEN_INT (8)));
/* Make sure the compiler does not optimize away the store of the TOC. */
MEM_VOLATILE_P (operands[3]) = 1;
}")
(define_expand "call_value_indirect_aix32"
[(set (match_dup 3)
(mem:SI (match_operand:SI 1 "gpc_reg_operand" "")))
(set (match_dup 4)
(reg:SI 2))
(set (reg:SI 11)
(mem:SI (plus:SI (match_dup 1)
(const_int 8))))
(parallel [(set (match_operand 0 "" "")
(call (mem:SI (match_dup 3))
(match_operand 2 "" "")))
(use (match_dup 5))
(set (reg:SI 2) (match_dup 4))
(use (reg:SI 11))
(clobber (reg:SI LR_REGNO))])]
"TARGET_32BIT"
"
{
operands[3] = gen_reg_rtx (SImode);
operands[4] = gen_rtx_MEM (SImode,
gen_rtx_PLUS (SImode, stack_pointer_rtx,
GEN_INT (20)));
operands[5] = gen_rtx_MEM (SImode,
gen_rtx_PLUS (SImode, operands[1],
GEN_INT (4)));
/* Make sure the compiler does not optimize away the store of the TOC. */
MEM_VOLATILE_P (operands[4]) = 1;
}")
(define_expand "call_value_indirect_aix64"
[(set (match_dup 3)
(mem:DI (match_operand:DI 1 "gpc_reg_operand" "")))
(set (match_dup 4)
(reg:DI 2))
(set (reg:DI 11)
(mem:DI (plus:DI (match_dup 1)
(const_int 16))))
(parallel [(set (match_operand 0 "" "")
(call (mem:SI (match_dup 3))
(match_operand 2 "" "")))
(use (match_dup 5))
(set (reg:DI 2) (match_dup 4))
(use (reg:DI 11))
(clobber (reg:DI LR_REGNO))])]
"TARGET_64BIT"
"
{
operands[3] = gen_reg_rtx (DImode);
operands[4] = gen_rtx_MEM (DImode,
gen_rtx_PLUS (DImode, stack_pointer_rtx,
GEN_INT (40)));
operands[5] = gen_rtx_MEM (DImode,
gen_rtx_PLUS (DImode, operands[1],
GEN_INT (8)));
/* Make sure the compiler does not optimize away the store of the TOC. */
MEM_VOLATILE_P (operands[4]) = 1;
}")
;; Now the definitions for the call and call_value insns
(define_expand "call"
[(parallel [(call (mem:SI (match_operand 0 "address_operand" ""))
(match_operand 1 "" ""))

View File

@ -111,8 +111,8 @@
(set_attr "length" "12")])
(define_expand "atomic_load<mode>"
[(set (match_operand:INT1 0 "register_operand" "") ;; output
(match_operand:INT1 1 "memory_operand" "")) ;; memory
[(set (match_operand:INT 0 "register_operand" "") ;; output
(match_operand:INT 1 "memory_operand" "")) ;; memory
(use (match_operand:SI 2 "const_int_operand" ""))] ;; model
""
{
@ -139,8 +139,8 @@
})
(define_expand "atomic_store<mode>"
[(set (match_operand:INT1 0 "memory_operand" "") ;; memory
(match_operand:INT1 1 "register_operand" "")) ;; input
[(set (match_operand:INT 0 "memory_operand" "") ;; memory
(match_operand:INT 1 "register_operand" "")) ;; input
(use (match_operand:SI 2 "const_int_operand" ""))] ;; model
""
{

View File

@ -1606,6 +1606,9 @@ rx_expand_prologue (void)
rx_get_stack_layout (& low, & high, & mask, & frame_size, & stack_size);
if (flag_stack_usage_info)
current_function_static_stack_size = frame_size + stack_size;
/* If we use any of the callee-saved registers, save them now. */
if (mask)
{
@ -3278,6 +3281,28 @@ rx_adjust_insn_length (rtx insn, int current_length)
#undef TARGET_LEGITIMIZE_ADDRESS
#define TARGET_LEGITIMIZE_ADDRESS rx_legitimize_address
static bool
rx_ok_to_inline (tree caller, tree callee)
{
/* Issue 2877983: Do not inline functions with local variables
into a naked CALLER - naked function have no stack frame and
locals need a frame in order to have somewhere to live.
Unfortunately we have no way to determine the presence of
local variables in CALLEE, so we have to be cautious and
assume that there might be some there.
We do allow inlining when CALLEE has the "inline" type
modifier or the "always_inline" or "gnu_inline" attributes. */
return lookup_attribute ("naked", DECL_ATTRIBUTES (caller)) == NULL_TREE
|| DECL_DECLARED_INLINE_P (callee)
|| lookup_attribute ("always_inline", DECL_ATTRIBUTES (callee)) != NULL_TREE
|| lookup_attribute ("gnu_inline", DECL_ATTRIBUTES (callee)) != NULL_TREE;
}
#undef TARGET_CAN_INLINE_P
#define TARGET_CAN_INLINE_P rx_ok_to_inline
struct gcc_target targetm = TARGET_INITIALIZER;
#include "gt-rx.h"

View File

@ -773,17 +773,17 @@ sh_option_override (void)
flag_schedule_insns = 0;
}
/* Unwind info is not correct around the CFG unless either a frame
pointer is present or M_A_O_A is set. Fixing this requires rewriting
unwind info generation to be aware of the CFG and propagating states
/* Unwind info is not correct around the CFG unless either a frame
pointer is present or M_A_O_A is set. Fixing this requires rewriting
unwind info generation to be aware of the CFG and propagating states
around edges. */
if ((flag_unwind_tables || flag_asynchronous_unwind_tables
|| flag_exceptions || flag_non_call_exceptions)
|| flag_exceptions || flag_non_call_exceptions)
&& flag_omit_frame_pointer && !TARGET_ACCUMULATE_OUTGOING_ARGS)
{
warning (0, "unwind tables currently require either a frame pointer "
"or -maccumulate-outgoing-args for correctness");
TARGET_ACCUMULATE_OUTGOING_ARGS = 1;
warning (0, "unwind tables currently require either a frame pointer "
"or -maccumulate-outgoing-args for correctness");
TARGET_ACCUMULATE_OUTGOING_ARGS = 1;
}
/* Unwinding with -freorder-blocks-and-partition does not work on this
@ -793,7 +793,7 @@ sh_option_override (void)
{
if (flag_exceptions)
{
inform (input_location,
inform (input_location,
"-freorder-blocks-and-partition does not work with "
"exceptions on this architecture");
flag_reorder_blocks_and_partition = 0;

View File

@ -4984,7 +4984,8 @@ sparc_expand_prologue (void)
RTX_FRAME_RELATED_P (insn) = 1;
/* %sp is still the CFA register. */
insn = emit_insn (gen_stack_pointer_inc (GEN_INT (4096 - size)));
insn
= emit_insn (gen_stack_pointer_inc (GEN_INT (4096 - size)));
}
else
{
@ -5007,6 +5008,7 @@ sparc_expand_prologue (void)
{
emit_window_save (GEN_INT (-4096));
/* %sp is not the CFA register anymore. */
emit_insn (gen_stack_pointer_inc (GEN_INT (4096 - size)));

View File

@ -1032,6 +1032,9 @@ xstormy16_expand_prologue (void)
layout = xstormy16_compute_stack_layout ();
if (flag_stack_usage_info)
current_function_static_stack_size = layout.frame_size;
if (layout.locals_size >= 32768)
error ("local variable memory requirements exceed capacity");
@ -1327,7 +1330,10 @@ xstormy16_gimplify_va_arg_expr (tree valist, tree type, gimple_seq *pre_p,
count = build3 (COMPONENT_REF, TREE_TYPE (f_count), valist, f_count,
NULL_TREE);
must_stack = targetm.calls.must_pass_in_stack (TYPE_MODE (type), type);
if (TYPE_MODE (type) == VOIDmode)
must_stack = 1;
else
must_stack = targetm.calls.must_pass_in_stack (TYPE_MODE (type), type);
size_tree = round_up (size_in_bytes (type), UNITS_PER_WORD);
gimplify_expr (&size_tree, pre_p, NULL, is_gimple_val, fb_rvalue);
@ -2654,11 +2660,11 @@ xstormy16_return_in_memory (const_tree type, const_tree fntype ATTRIBUTE_UNUSED)
#undef TARGET_RETURN_IN_MEMORY
#define TARGET_RETURN_IN_MEMORY xstormy16_return_in_memory
#undef TARGET_FUNCTION_VALUE
#undef TARGET_FUNCTION_VALUE
#define TARGET_FUNCTION_VALUE xstormy16_function_value
#undef TARGET_LIBCALL_VALUE
#undef TARGET_LIBCALL_VALUE
#define TARGET_LIBCALL_VALUE xstormy16_libcall_value
#undef TARGET_FUNCTION_VALUE_REGNO_P
#undef TARGET_FUNCTION_VALUE_REGNO_P
#define TARGET_FUNCTION_VALUE_REGNO_P xstormy16_function_value_regno_p
#undef TARGET_MACHINE_DEPENDENT_REORG
@ -2669,17 +2675,27 @@ xstormy16_return_in_memory (const_tree type, const_tree fntype ATTRIBUTE_UNUSED)
#undef TARGET_PREFERRED_OUTPUT_RELOAD_CLASS
#define TARGET_PREFERRED_OUTPUT_RELOAD_CLASS xstormy16_preferred_reload_class
#undef TARGET_LEGITIMATE_ADDRESS_P
#undef TARGET_LEGITIMATE_ADDRESS_P
#define TARGET_LEGITIMATE_ADDRESS_P xstormy16_legitimate_address_p
#undef TARGET_MODE_DEPENDENT_ADDRESS_P
#undef TARGET_MODE_DEPENDENT_ADDRESS_P
#define TARGET_MODE_DEPENDENT_ADDRESS_P xstormy16_mode_dependent_address_p
#undef TARGET_CAN_ELIMINATE
#undef TARGET_CAN_ELIMINATE
#define TARGET_CAN_ELIMINATE xstormy16_can_eliminate
#undef TARGET_TRAMPOLINE_INIT
#undef TARGET_TRAMPOLINE_INIT
#define TARGET_TRAMPOLINE_INIT xstormy16_trampoline_init
static void
xstormy16_option_override (void)
{
if (flag_exceptions)
flag_omit_frame_pointer = 0;
}
#undef TARGET_OPTION_OVERRIDE
#define TARGET_OPTION_OVERRIDE xstormy16_option_override
struct gcc_target targetm = TARGET_INITIALIZER;
#include "gt-stormy16.h"

View File

@ -121,7 +121,7 @@
emit_insn (gen_atomic_fetch_<fetchop_name>_bare<mode> (operands[0],
operands[1],
operands[2]));
tilegx_post_atomic_barrier (model);
tilegx_pre_atomic_barrier (model);
DONE;
})
@ -160,6 +160,6 @@
emit_insn (gen_atomic_fetch_add_bare<mode> (operands[0],
operands[1],
operands[2]));
tilegx_post_atomic_barrier (model);
tilegx_pre_atomic_barrier (model);
DONE;
})

View File

@ -73,6 +73,32 @@ static GTY(()) section * tdata_section;
static GTY(()) section * zdata_section;
static GTY(()) section * zbss_section;
/* We use this to wrap all emitted insns in the prologue. */
static rtx
F (rtx x)
{
RTX_FRAME_RELATED_P (x) = 1;
return x;
}
/* Mark all the subexpressions of the PARALLEL rtx PAR as
frame-related. Return PAR.
dwarf2out.c:dwarf2out_frame_debug_expr ignores sub-expressions of a
PARALLEL rtx other than the first if they do not have the
FRAME_RELATED flag set on them. */
static rtx
v850_all_frame_related (rtx par)
{
int len = XVECLEN (par, 0);
int i;
for (i = 0; i < len; i++)
F (XVECEXP (par, 0, i));
return par;
}
/* Handle the TARGET_PASS_BY_REFERENCE target hook.
Specify whether to pass the argument by reference. */
@ -1671,6 +1697,8 @@ expand_prologue (void)
= gen_rtx_CLOBBER (VOIDmode, gen_rtx_REG (Pmode, 11));
}
v850_all_frame_related (save_all);
code = recog (save_all, NULL_RTX, NULL);
if (code >= 0)
{
@ -1711,26 +1739,26 @@ expand_prologue (void)
offset = init_stack_alloc - 4;
if (init_stack_alloc)
emit_insn (gen_addsi3 (stack_pointer_rtx,
F (emit_insn (gen_addsi3 (stack_pointer_rtx,
stack_pointer_rtx,
GEN_INT (- (signed) init_stack_alloc)));
GEN_INT (- (signed) init_stack_alloc))));
/* Save the return pointer first. */
if (num_save > 0 && REGNO (save_regs[num_save-1]) == LINK_POINTER_REGNUM)
{
emit_move_insn (gen_rtx_MEM (SImode,
F (emit_move_insn (gen_rtx_MEM (SImode,
plus_constant (stack_pointer_rtx,
offset)),
save_regs[--num_save]);
save_regs[--num_save]));
offset -= 4;
}
for (i = 0; i < num_save; i++)
{
emit_move_insn (gen_rtx_MEM (SImode,
F (emit_move_insn (gen_rtx_MEM (SImode,
plus_constant (stack_pointer_rtx,
offset)),
save_regs[i]);
save_regs[i]));
offset -= 4;
}
}
@ -1743,20 +1771,20 @@ expand_prologue (void)
{
int diff = actual_fsize - init_stack_alloc;
if (CONST_OK_FOR_K (-diff))
emit_insn (gen_addsi3 (stack_pointer_rtx,
F (emit_insn (gen_addsi3 (stack_pointer_rtx,
stack_pointer_rtx,
GEN_INT (-diff)));
GEN_INT (-diff))));
else
{
rtx reg = gen_rtx_REG (Pmode, 12);
emit_move_insn (reg, GEN_INT (-diff));
emit_insn (gen_addsi3 (stack_pointer_rtx, stack_pointer_rtx, reg));
F (emit_move_insn (reg, GEN_INT (-diff)));
F (emit_insn (gen_addsi3 (stack_pointer_rtx, stack_pointer_rtx, reg)));
}
}
/* If we need a frame pointer, set it up now. */
if (frame_pointer_needed)
emit_move_insn (hard_frame_pointer_rtx, stack_pointer_rtx);
F (emit_move_insn (hard_frame_pointer_rtx, stack_pointer_rtx));
}

View File

@ -89,7 +89,7 @@ extern GTY(()) rtx v850_compare_op1;
#define TARGET_V850E2_ALL (TARGET_V850E2 || TARGET_V850E2V3)
#define ASM_SPEC "%{mv850es:-mv850e1}%{!mv850es:%{mv*:-mv%*}}"
#define ASM_SPEC "%{mv850es:-mv850e1}%{!mv850es:%{mv*:-mv%*}} %{mrelax:-mrelax}"
#define CPP_SPEC "\
%{mv850e2v3:-D__v850e2v3__} \
%{mv850e2:-D__v850e2__} \
@ -786,8 +786,13 @@ typedef enum
#define DEFAULT_GDB_EXTENSIONS 1
/* Use stabs debugging info by default. */
#undef PREFERRED_DEBUGGING_TYPE
#define PREFERRED_DEBUGGING_TYPE DBX_DEBUG
#undef PREFERRED_DEBUGGING_TYPE
#define PREFERRED_DEBUGGING_TYPE DWARF2_DEBUG
#define DWARF2_FRAME_INFO 1
#define DWARF2_UNWIND_INFO 0
#define INCOMING_RETURN_ADDR_RTX gen_rtx_REG (Pmode, LINK_POINTER_REGNUM)
#define DWARF_FRAME_RETURN_COLUMN DWARF_FRAME_REGNUM (LINK_POINTER_REGNUM)
/* Specify the machine mode that this machine uses
for the index in the tablejump instruction. */

View File

@ -119,3 +119,12 @@ Set the max size of data eligible for the ZDA area
mzda-
Target RejectNegative Joined Undocumented Alias(mzda=)
mlong-jumps
Target Report Mask(LONG_JUMPS)
Prohibit PC relative jumps
mrelax
Target Report Mask(RELAX)
Enable relaxing in the assembler

141
gcc/configure vendored
View File

@ -637,6 +637,7 @@ host_xm_defines
host_xm_include_list
host_xm_file_list
host_exeext
gcc_c_include_dir
gcc_gxx_include_dir_add_sysroot
gcc_gxx_include_dir
gcc_config_arguments
@ -681,6 +682,7 @@ gcc_cv_readelf
gcc_cv_objdump
ORIGINAL_NM_FOR_TARGET
gcc_cv_nm
ORIGINAL_GOLD_FOR_TARGET
ORIGINAL_LD_FOR_TARGET
ORIGINAL_PLUGIN_LD_FOR_TARGET
gcc_cv_ld
@ -3323,6 +3325,21 @@ if test "${with_sysroot+set}" = set; then
fi
fi
# XXX: FIXME: We have a discrepancy: G++ header files are installed
# relative to PREFIX but newlib header files are installed relative
# to EXEC_PREFIX. For now we define gcc_c_include_dir to allow for
# this behaviour, but really newlib should be changed (which will
# involve changing the top level configure and makefile to pass down
# a new variable containing the path for installing headers). When
# this is done this patch can be reverted and TOOL_INCLUDE_DIR in
# gcc/Makefile.in can be restored to its original definition based
# on $(gcc_tooldir).
gcc_c_include_dir='include'
if test x$host != x$target; then
gcc_c_include_dir="$target_alias/$gcc_c_include_dir"
fi
gcc_c_include_dir="\$(libsubdir)/\$(libsubdir_to_prefix)\$(prefix_to_exec_prefix)$gcc_c_include_dir"
# Check whether --with-cpp_install_dir was given.
if test "${with_cpp_install_dir+set}" = set; then :
@ -4845,7 +4862,7 @@ fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $acx_cv_cc_gcc_supports_ada" >&5
$as_echo "$acx_cv_cc_gcc_supports_ada" >&6; }
if test "x$GNATBIND" != xno && test "x$GNATMAKE" != xno && test x$acx_cv_cc_gcc_supports_ada != xno; then
if test x$GNATBIND != xno && test x$GNATMAKE != xno && test x$acx_cv_cc_gcc_supports_ada != xno; then
have_gnat=yes
else
have_gnat=no
@ -4889,7 +4906,7 @@ case "${target}" in
;;
i[34567]86-*-cygwin* | i[34567]86-*-mingw* | x86_64-*-mingw*)
;;
i[34567]86-*-interix[3-9]*)
i[34567]86-*-interix3*)
# Interix 3.x gcc -fpic/-fPIC options generate broken code.
# Instead, we relocate shared libraries at runtime.
;;
@ -4921,6 +4938,9 @@ case "${target}" in
m68k-*-*)
PICFLAG_FOR_TARGET=-fpic
;;
s390*-*-*)
PICFLAG_FOR_TARGET=-fpic
;;
# FIXME: Override -fPIC default in libgcc only?
sh-*-linux* | sh[2346lbe]*-*-linux*)
PICFLAG_FOR_TARGET=-fpic
@ -6393,13 +6413,7 @@ fi
loose_warn=
save_CFLAGS="$CFLAGS"
for real_option in -W -Wall -Wno-narrowing -Wwrite-strings -Wcast-qual; do
# Do the check with the no- prefix removed since gcc silently
# accepts any -Wno-* option on purpose
case $real_option in
-Wno-*) option=-W`expr x$real_option : 'x-Wno-\(.*\)'` ;;
*) option=$real_option ;;
esac
for option in -W -Wall -Wno-narrowing -Wwrite-strings -Wcast-qual; do
as_acx_Woption=`$as_echo "acx_cv_prog_cc_warning_$option" | $as_tr_sh`
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC supports $option" >&5
@ -6431,20 +6445,14 @@ eval ac_res=\$$as_acx_Woption
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
$as_echo "$ac_res" >&6; }
if test `eval 'as_val=${'$as_acx_Woption'};$as_echo "$as_val"'` = yes; then :
loose_warn="$loose_warn${loose_warn:+ }$real_option"
loose_warn="$loose_warn${loose_warn:+ }$option"
fi
done
CFLAGS="$save_CFLAGS"
c_loose_warn=
save_CFLAGS="$CFLAGS"
for real_option in -Wstrict-prototypes -Wmissing-prototypes; do
# Do the check with the no- prefix removed since gcc silently
# accepts any -Wno-* option on purpose
case $real_option in
-Wno-*) option=-W`expr x$real_option : 'x-Wno-\(.*\)'` ;;
*) option=$real_option ;;
esac
for option in -Wstrict-prototypes -Wmissing-prototypes; do
as_acx_Woption=`$as_echo "acx_cv_prog_cc_warning_$option" | $as_tr_sh`
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC supports $option" >&5
@ -6476,20 +6484,14 @@ eval ac_res=\$$as_acx_Woption
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
$as_echo "$ac_res" >&6; }
if test `eval 'as_val=${'$as_acx_Woption'};$as_echo "$as_val"'` = yes; then :
c_loose_warn="$c_loose_warn${c_loose_warn:+ }$real_option"
c_loose_warn="$c_loose_warn${c_loose_warn:+ }$option"
fi
done
CFLAGS="$save_CFLAGS"
strict_warn=
save_CFLAGS="$CFLAGS"
for real_option in -Wmissing-format-attribute; do
# Do the check with the no- prefix removed since gcc silently
# accepts any -Wno-* option on purpose
case $real_option in
-Wno-*) option=-W`expr x$real_option : 'x-Wno-\(.*\)'` ;;
*) option=$real_option ;;
esac
for option in -Wmissing-format-attribute; do
as_acx_Woption=`$as_echo "acx_cv_prog_cc_warning_$option" | $as_tr_sh`
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC supports $option" >&5
@ -6521,20 +6523,14 @@ eval ac_res=\$$as_acx_Woption
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
$as_echo "$ac_res" >&6; }
if test `eval 'as_val=${'$as_acx_Woption'};$as_echo "$as_val"'` = yes; then :
strict_warn="$strict_warn${strict_warn:+ }$real_option"
strict_warn="$strict_warn${strict_warn:+ }$option"
fi
done
CFLAGS="$save_CFLAGS"
c_strict_warn=
save_CFLAGS="$CFLAGS"
for real_option in -Wold-style-definition -Wc++-compat; do
# Do the check with the no- prefix removed since gcc silently
# accepts any -Wno-* option on purpose
case $real_option in
-Wno-*) option=-W`expr x$real_option : 'x-Wno-\(.*\)'` ;;
*) option=$real_option ;;
esac
for option in -Wold-style-definition -Wc++-compat; do
as_acx_Woption=`$as_echo "acx_cv_prog_cc_warning_$option" | $as_tr_sh`
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC supports $option" >&5
@ -6566,21 +6562,19 @@ eval ac_res=\$$as_acx_Woption
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
$as_echo "$ac_res" >&6; }
if test `eval 'as_val=${'$as_acx_Woption'};$as_echo "$as_val"'` = yes; then :
c_strict_warn="$c_strict_warn${c_strict_warn:+ }$real_option"
c_strict_warn="$c_strict_warn${c_strict_warn:+ }$option"
fi
done
CFLAGS="$save_CFLAGS"
# Do the check with the no- prefix removed from the warning options
# since gcc silently accepts any -Wno-* option on purpose
if test "$GCC" = yes; then :
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC supports -pedantic -Wlong-long -Wvariadic-macros -Woverlength-strings" >&5
$as_echo_n "checking whether $CC supports -pedantic -Wlong-long -Wvariadic-macros -Woverlength-strings... " >&6; }
if test "${acx_cv_prog_cc_pedantic__Wlong_long__Wvariadic_macros__Woverlength_strings+set}" = set; then :
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC supports -pedantic -Wno-long-long -Wno-variadic-macros -Wno-overlength-strings" >&5
$as_echo_n "checking whether $CC supports -pedantic -Wno-long-long -Wno-variadic-macros -Wno-overlength-strings... " >&6; }
if test "${acx_cv_prog_cc_pedantic__Wno_long_long__Wno_variadic_macros__Wno_overlength_strings+set}" = set; then :
$as_echo_n "(cached) " >&6
else
save_CFLAGS="$CFLAGS"
CFLAGS="-pedantic -Wlong-long -Wvariadic-macros -Woverlength-strings"
CFLAGS="-pedantic -Wno-long-long -Wno-variadic-macros -Wno-overlength-strings"
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
@ -6593,16 +6587,16 @@ main ()
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"; then :
acx_cv_prog_cc_pedantic__Wlong_long__Wvariadic_macros__Woverlength_strings=yes
acx_cv_prog_cc_pedantic__Wno_long_long__Wno_variadic_macros__Wno_overlength_strings=yes
else
acx_cv_prog_cc_pedantic__Wlong_long__Wvariadic_macros__Woverlength_strings=no
acx_cv_prog_cc_pedantic__Wno_long_long__Wno_variadic_macros__Wno_overlength_strings=no
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
CFLAGS="$save_CFLAGS"
fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $acx_cv_prog_cc_pedantic__Wlong_long__Wvariadic_macros__Woverlength_strings" >&5
$as_echo "$acx_cv_prog_cc_pedantic__Wlong_long__Wvariadic_macros__Woverlength_strings" >&6; }
if test $acx_cv_prog_cc_pedantic__Wlong_long__Wvariadic_macros__Woverlength_strings = yes; then :
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $acx_cv_prog_cc_pedantic__Wno_long_long__Wno_variadic_macros__Wno_overlength_strings" >&5
$as_echo "$acx_cv_prog_cc_pedantic__Wno_long_long__Wno_variadic_macros__Wno_overlength_strings" >&6; }
if test $acx_cv_prog_cc_pedantic__Wno_long_long__Wno_variadic_macros__Wno_overlength_strings = yes; then :
strict_warn="$strict_warn${strict_warn:+ }-pedantic -Wno-long-long -Wno-variadic-macros -Wno-overlength-strings"
fi
@ -6636,13 +6630,7 @@ fi
# Disable exceptions and RTTI if building with g++
noexception_flags=
save_CFLAGS="$CFLAGS"
for real_option in -fno-exceptions -fno-rtti; do
# Do the check with the no- prefix removed since gcc silently
# accepts any -Wno-* option on purpose
case $real_option in
-Wno-*) option=-W`expr x$real_option : 'x-Wno-\(.*\)'` ;;
*) option=$real_option ;;
esac
for option in -fno-exceptions -fno-rtti; do
as_acx_Woption=`$as_echo "acx_cv_prog_cc_warning_$option" | $as_tr_sh`
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC supports $option" >&5
@ -6674,7 +6662,7 @@ eval ac_res=\$$as_acx_Woption
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
$as_echo "$ac_res" >&6; }
if test `eval 'as_val=${'$as_acx_Woption'};$as_echo "$as_val"'` = yes; then :
noexception_flags="$noexception_flags${noexception_flags:+ }$real_option"
noexception_flags="$noexception_flags${noexception_flags:+ }$option"
fi
done
CFLAGS="$save_CFLAGS"
@ -7327,7 +7315,7 @@ if test "${with_bugurl+set}" = set; then :
;;
esac
else
BUGURL="http://gcc.gnu.org/bugs.html"
BUGURL="https://enterprise.redhat.com/gnupro/"
fi
@ -11040,6 +11028,16 @@ else
force_sjlj_exceptions=yes
enableval=yes
;;
# On the FRV the unwinding of exceptions is not handled
# correctly at the moment so use setjmp/longjmp instead.
frv-*-*)
force_sjlj_exceptions=yes
enableval=yes
;;
iq2000-*-*)
force_sjlj_exceptions=yes
enableval=yes
;;
*)
force_sjlj_exceptions=no
;;
@ -16205,7 +16203,7 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
;;
# Unfortunately, older versions of FreeBSD 2 do not have this feature.
freebsd2.*)
freebsd2*)
archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags'
hardcode_direct=yes
hardcode_minus_L=yes
@ -17118,7 +17116,7 @@ freebsd* | dragonfly*)
objformat=`/usr/bin/objformat`
else
case $host_os in
freebsd[23].*) objformat=aout ;;
freebsd[123]*) objformat=aout ;;
*) objformat=elf ;;
esac
fi
@ -17136,7 +17134,7 @@ freebsd* | dragonfly*)
esac
shlibpath_var=LD_LIBRARY_PATH
case $host_os in
freebsd2.*)
freebsd2*)
shlibpath_overrides_runpath=yes
;;
freebsd3.[01]* | freebsdelf3.[01]*)
@ -17970,7 +17968,7 @@ else
lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
lt_status=$lt_dlunknown
cat > conftest.$ac_ext <<_LT_EOF
#line 17973 "configure"
#line 17971 "configure"
#include "confdefs.h"
#if HAVE_DLFCN_H
@ -18076,7 +18074,7 @@ else
lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
lt_status=$lt_dlunknown
cat > conftest.$ac_ext <<_LT_EOF
#line 18079 "configure"
#line 18077 "configure"
#include "confdefs.h"
#if HAVE_DLFCN_H
@ -19002,7 +19000,7 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
esac
;;
freebsd2.*)
freebsd[12]*)
# C++ shared libraries reported to be fairly broken before
# switch to ELF
ld_shlibs_CXX=no
@ -20777,7 +20775,7 @@ freebsd* | dragonfly*)
objformat=`/usr/bin/objformat`
else
case $host_os in
freebsd[23].*) objformat=aout ;;
freebsd[123]*) objformat=aout ;;
*) objformat=elf ;;
esac
fi
@ -20795,7 +20793,7 @@ freebsd* | dragonfly*)
esac
shlibpath_var=LD_LIBRARY_PATH
case $host_os in
freebsd2.*)
freebsd2*)
shlibpath_overrides_runpath=yes
;;
freebsd3.[01]* | freebsdelf3.[01]*)
@ -21520,6 +21518,21 @@ fi
fi
fi
gcc_cv_ld_gold_srcdir=`echo $srcdir | sed -e 's,/gcc$,,'`/gold
if test "${gcc_cv_gold+set}" = set; then :
else
if test -f $gcc_cv_ld_gold_srcdir/configure.ac \
&& test -f ../gold/Makefile \
&& test x$build = x$host; then
gcc_cv_gold=../gold/ld-new$build_exeext
else
gcc_cv_gold=''
fi
fi
ORIGINAL_PLUGIN_LD_FOR_TARGET=$gcc_cv_ld
PLUGIN_LD=`basename $gcc_cv_ld`
@ -21559,6 +21572,9 @@ case "$ORIGINAL_LD_FOR_TARGET" in
;;
esac
ORIGINAL_GOLD_FOR_TARGET=$gcc_cv_gold
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking what linker to use" >&5
$as_echo_n "checking what linker to use... " >&6; }
if test "$gcc_cv_ld" = ../ld/ld-new$build_exeext \
@ -27146,6 +27162,7 @@ fi
# Echo link setup.

View File

@ -154,6 +154,21 @@ if test "${with_sysroot+set}" = set; then
fi
fi
# XXX: FIXME: We have a discrepancy: G++ header files are installed
# relative to PREFIX but newlib header files are installed relative
# to EXEC_PREFIX. For now we define gcc_c_include_dir to allow for
# this behaviour, but really newlib should be changed (which will
# involve changing the top level configure and makefile to pass down
# a new variable containing the path for installing headers). When
# this is done this patch can be reverted and TOOL_INCLUDE_DIR in
# gcc/Makefile.in can be restored to its original definition based
# on $(gcc_tooldir).
gcc_c_include_dir='include'
if test x$host != x$target; then
gcc_c_include_dir="$target_alias/$gcc_c_include_dir"
fi
gcc_c_include_dir="\$(libsubdir)/\$(libsubdir_to_prefix)\$(prefix_to_exec_prefix)$gcc_c_include_dir"
AC_ARG_WITH(cpp_install_dir,
[AC_HELP_STRING([--with-cpp-install-dir=DIR],
[install the user visible C preprocessor in DIR
@ -804,7 +819,7 @@ AC_ARG_WITH(specs,
AC_SUBST(CONFIGURE_SPECS)
ACX_PKGVERSION([GCC])
ACX_BUGURL([http://gcc.gnu.org/bugs.html])
ACX_BUGURL([https://enterprise.redhat.com/gnupro/])
# Sanity check enable_languages in case someone does not run the toplevel
# configure # script.
@ -1218,6 +1233,16 @@ force_sjlj_exceptions=yes],
force_sjlj_exceptions=yes
enableval=yes
;;
# On the FRV the unwinding of exceptions is not handled
# correctly at the moment so use setjmp/longjmp instead.
frv-*-*)
force_sjlj_exceptions=yes
enableval=yes
;;
iq2000-*-*)
force_sjlj_exceptions=yes
enableval=yes
;;
*)
force_sjlj_exceptions=no
;;
@ -2008,6 +2033,17 @@ else
AC_PATH_PROG(gcc_cv_ld, $LD_FOR_TARGET)
fi])
gcc_cv_ld_gold_srcdir=`echo $srcdir | sed -e 's,/gcc$,,'`/gold
AS_VAR_SET_IF(gcc_cv_gold,, [
if test -f $gcc_cv_ld_gold_srcdir/configure.ac \
&& test -f ../gold/Makefile \
&& test x$build = x$host; then
gcc_cv_gold=../gold/ld-new$build_exeext
else
gcc_cv_gold=''
fi])
ORIGINAL_PLUGIN_LD_FOR_TARGET=$gcc_cv_ld
PLUGIN_LD=`basename $gcc_cv_ld`
AC_ARG_WITH(plugin-ld,
@ -2037,6 +2073,9 @@ case "$ORIGINAL_LD_FOR_TARGET" in
*) AC_CONFIG_FILES(collect-ld:exec-tool.in, [chmod +x collect-ld]) ;;
esac
ORIGINAL_GOLD_FOR_TARGET=$gcc_cv_gold
AC_SUBST(ORIGINAL_GOLD_FOR_TARGET)
AC_MSG_CHECKING(what linker to use)
if test "$gcc_cv_ld" = ../ld/ld-new$build_exeext \
|| test "$gcc_cv_ld" = ../gold/ld-new$build_exeext; then
@ -5000,6 +5039,7 @@ AC_SUBST(float_h_file)
AC_SUBST(gcc_config_arguments)
AC_SUBST(gcc_gxx_include_dir)
AC_SUBST(gcc_gxx_include_dir_add_sysroot)
AC_SUBST(gcc_c_include_dir)
AC_SUBST(host_exeext)
AC_SUBST(host_xm_file_list)
AC_SUBST(host_xm_include_list)

View File

@ -98,58 +98,100 @@
2012-06-25 Jakub Jelinek <jakub@redhat.com>
PR c++/53594
* class.c (check_bases_and_members): Avoid -Wuninitialized
diagnostics for non-static const members or references if they
use NSDMI.
Backported from mainline.
* decl.c (cxx_init_decl_processing): Use ptr_mode instead of Pmode.
2012-06-19 Jason Merrill <jason@redhat.com>
2012-04-03 Jason Merrill <jason@redhat.com>
PR c++/53651
* name-lookup.c (constructor_name_p): Don't try to look at the
name of a DECLTYPE_TYPE.
PR c++/52796
* pt.c (tsubst_initializer_list): A pack expansion with no elements
means value-initialization.
Reapply:
PR c++/53137
* pt.c (instantiate_class_template_1): Set LAMBDA_EXPR_THIS_CAPTURE.
(instantiate_decl): Don't push_to_top_level for local class methods.
(instantiate_class_template_1): Or for local classes.
2012-03-01 Release Manager
PR c++/53599
* pt.c (lookup_template_class_1): Use ts_global.
* GCC 4.6.3 released.
2012-06-14 Richard Guenther <rguenther@suse.de>
2012-02-14 Jakub Jelinek <jakub@redhat.com>
Backport from mainline
2012-06-11 Richard Guenther <rguenther@suse.de>
Backported from mainline
2012-02-14 Jakub Jelinek <jakub@redhat.com>
PR c++/53616
* mangle.c (write_array_type): Use double-ints for array domain
arithmetic.
PR c++/52247
* pt.c (tsubst_copy_asm_operands): For LABEL_DECL values call
lookup_label on label's name and set TREE_USED.
2012-06-14 Richard Guenther <rguenther@suse.de>
PR c/52181
* decl.c (duplicate_decls): If olddecl has bigger DECL_ALIGN than
newdecl, copy DECL_ALIGN to newdecl and or DECL_USER_ALIGN bits.
Backport from mainline
2012-06-06 Fabien Chêne <fabien@gcc.gnu.org>
2012-02-09 Jakub Jelinek <jakub@redhat.com>
PR c++/52841
* parser.c (cp_parser_alias_declaration): Return earlier
if an error occured.
Backported from mainline
2012-01-03 Jakub Jelinek <jakub@redhat.com>
2012-06-14 Release Manager
PR c++/51669
* semantics.c (finish_omp_clauses): Call fold_build_cleanup_point_expr
on OMP_CLAUSE_{IF,NUM_THREADS,SCHEDULE_CHUNK}_EXPR.
* GCC 4.7.1 released.
2011-12-15 Jakub Jelinek <jakub@redhat.com>
2012-06-12 Jason Merrill <jason@redhat.com>
PR c/51360
* semantics.c (finish_omp_clauses): For OMP_CLAUSE_NUM_THREADS_EXPR
and OMP_CLAUSE_SCHEDULE_CHUNK_EXPR call mark_rvalue_use.
PR c++/53599
Revert:
PR c++/53137
* pt.c (instantiate_class_template_1): Set LAMBDA_EXPR_THIS_CAPTURE.
(instantiate_decl): Don't push_to_top_level for local class methods.
(instantiate_class_template_1): Or for local classes.
2012-01-19 Kai Tietz <ktietz@redhat.com>
2012-06-04 Paolo Carlini <paolo.carlini@oracle.com>
PR c++/51344
* decl2.c (save_template_attributes): Use merge_attributes
instead of chaining up via TREE_CHAIN.
2012-01-16 Jakub Jelinek <jakub@redhat.com>
PR c++/51854
* mangle.c (write_template_arg_literal): Sorry instead of aborting.
2012-01-16 Jason Merrill <jason@redhat.com>
PR c++/51868
* typeck.c (build_static_cast_1): Handle bit-fields properly.
2011-12-20 Dodji Seketeli <dodji@redhat.com>
PR debug/49951
* decl.c (cxx_maybe_build_cleanup): Don't set location of the call
to the destructor.
2011-12-16 Jason Merrill <jason@redhat.com>
PR c++/51416
* init.c (build_value_init_noctor): Check for incomplete type.
2011-12-16 Jason Merrill <jason@redhat.com>
PR c++/51331
* class.c (convert_to_base_statically): Just call
build_simple_base_path.
(build_simple_base_path): Check field offset.
2011-12-14 Jason Merrill <jason@redhat.com>
PR c++/51248
* decl.c (copy_type_enum): Also update variants.
(finish_enum): Allow variants of complete enums.
2011-12-13 Jason Merrill <jason@redhat.com>
PR c++/51406
PR c++/51161
* typeck.c (build_static_cast_1): Fix cast of lvalue to
base rvalue reference.
2011-11-22 Paolo Carlini <paolo.carlini@oracle.com>
PR c++/51265
* semantics.c (finish_decltype_type): Handle PTRMEM_CST.
2011-11-18 Paolo Carlini <paolo.carlini@oracle.com>
PR c++/53524
* call.c (build_conditional_expr_1): Use OPT_Wenum_compare

View File

@ -383,8 +383,6 @@ build_value_init_noctor (tree type, tsubst_flags_t complain)
error ("value-initialization of incomplete type %qT", type);
return error_mark_node;
}
/* FIXME the class and array cases should just use digest_init once it is
SFINAE-enabled. */
if (CLASS_TYPE_P (type))
{
gcc_assert (!TYPE_HAS_COMPLEX_DFLT (type));

View File

@ -3129,7 +3129,6 @@ write_array_type (const tree type)
}
write_expression (max);
}
}
write_char ('_');
write_type (TREE_TYPE (type));

View File

@ -1966,11 +1966,6 @@ constructor_name_p (tree name, tree type)
if (TREE_CODE (name) != IDENTIFIER_NODE)
return false;
/* These don't have names. */
if (TREE_CODE (type) == DECLTYPE_TYPE
|| TREE_CODE (type) == TYPEOF_TYPE)
return false;
ctor_name = constructor_name_full (type);
if (name == ctor_name)
return true;

View File

@ -15071,9 +15071,6 @@ cp_parser_alias_declaration (cp_parser* parser)
cp_parser_require (parser, CPP_EQ, RT_EQ);
if (cp_parser_error_occurred (parser))
return error_mark_node;
/* Now we are going to parse the type-id of the declaration. */
/*

View File

@ -7564,7 +7564,7 @@ lookup_template_class_1 (tree d1, tree arglist, tree in_decl, tree context,
/* A local class. Make sure the decl gets registered properly. */
if (context == current_function_decl)
pushtag (DECL_NAME (gen_tmpl), t, /*tag_scope=*/ts_global);
pushtag (DECL_NAME (gen_tmpl), t, /*tag_scope=*/ts_current);
if (comp_template_args (CLASSTYPE_TI_ARGS (template_type), arglist))
/* This instantiation is another name for the primary

View File

@ -7202,6 +7202,7 @@ cxx_fold_indirect_ref (location_t loc, tree type, tree op0, bool *empty_base)
sub = op0;
STRIP_NOPS (sub);
subtype = TREE_TYPE (sub);
if (!POINTER_TYPE_P (subtype))
return NULL_TREE;

View File

@ -2905,6 +2905,11 @@ find_comparison_args (enum rtx_code code, rtx *parg1, rtx *parg2,
{
rtx arg1, arg2;
static unsigned int nesting = 0;
/* Prevent an infinite loop for RX and FRV. */
if (++ nesting < 100)
return code;
arg1 = *parg1, arg2 = *parg2;
/* If ARG2 is const0_rtx, see what ARG1 is equivalent to. */
@ -3076,6 +3081,8 @@ find_comparison_args (enum rtx_code code, rtx *parg1, rtx *parg2,
*pmode1 = GET_MODE (arg1), *pmode2 = GET_MODE (arg2);
*parg1 = fold_rtx (arg1, 0), *parg2 = fold_rtx (arg2, 0);
--nesting;
return code;
}

View File

@ -771,6 +771,7 @@ Objective-C and Objective-C++ Dialects}.
-mno-am33 -mam33 -mam33-2 -mam34 @gol
-mtune=@var{cpu-type} @gol
-mreturn-pointer-on-d0 @gol
-mmem-funcs @gol
-mno-crt0 -mrelax -mliw -msetlb}
@emph{PDP-11 Options}
@ -7878,7 +7879,7 @@ GIMPLE bytecodes and final object code. GCC automatically selects
which files to optimize in LTO mode and which files to link without
further processing.
There are some code generation flags preserved by GCC when
There are some code generation flags that GCC preserves when
generating bytecodes, as they need to be used during the final link
stage. Currently, the following options are saved into the GIMPLE
bytecode files: @option{-fPIC}, @option{-fcommon} and all the
@ -7895,7 +7896,7 @@ participating in the same link with the same options.
If LTO encounters objects with C linkage declared with incompatible
types in separate translation units to be linked together (undefined
behavior according to ISO C99 6.2.7), a non-fatal diagnostic may be
issued. The behavior is still undefined at run time.
issued. The behavior is still undefined at runtime.
Another feature of LTO is that it is possible to apply interprocedural
optimizations on files written in different languages. This requires
@ -7996,7 +7997,7 @@ Disabled by default.
@item -fuse-linker-plugin
Enables the use of a linker plugin during link-time optimization. This
option relies on plugin support in the linker, which is available in gold
option relies on the linker plugin support in linker that is available in gold
or in GNU ld 2.21 or newer.
This option enables the extraction of object files with GIMPLE bytecode out
@ -12903,14 +12904,19 @@ Generate code for the H8/300H@.
@opindex ms
Generate code for the H8S@.
@item -mn
@opindex mn
Generate code for the H8S and H8/300H in the normal mode. This switch
must be used either with @option{-mh} or @option{-ms}.
@item -msx
@opindex msx
Generate code for the H8SX@. This is the default.
@item -ms2600
@opindex ms2600
Generate code for the H8S/2600. This switch must be used with @option{-ms}.
Generate code for the H8S/2600. This switch must be used with either
@option{-ms} or @option{-msx}.
@item -mn
@opindex mn
Generate code for the H8S and H8/300H in the normal mode. This switch
must be used either with @option{-mh}, @option{-ms} or @option{-msx}.
@item -mint32
@opindex mint32
@ -16236,6 +16242,13 @@ Do not allow the compiler to generate @emph{SETLB} or @emph{Lcc}
instructions. This option defines the preprocessor macro
@samp{__NO_SETLB__}.
@item -mmem-funcs
Tell gcc to automatically generate calls to memset() and memcpy()
when it needs to clear or copy a block of memory. This is disabled by
default because it cannot be guaranteed that the runtime environment
will include a C library. The default behavior can also be restored
by the switch @option{--mno-mem-funcs}.
@end table
@node PDP-11 Options
@ -19786,6 +19799,22 @@ Recognize EUCJP characters.
If @env{LANG} is not defined, or if it has some other value, then the
compiler will use mblen and mbtowc as defined by the default locale to
recognize and translate multibyte characters.
@item GCC_DEFAULT_OPTIONS
The contents of this variable, if it is defined, will be pre-pended to
the list of command line options that GCC parses. The variable can
contain multiple gcc command line switches provided that they are
separated by white space. If a switch is defined both in this
variable and on the command line, then the command line version (or
its inverse) will take precedence.
Note - this variable is only examined when the compiler is acting as a
native compiler. If the compiler is acting as a cross-compiler a
different variable, if defined for the particular cross target, will
be examined. For example for the AM33 cross compiler the variable
@env{AM33_GCC_DEFAULT_OPTIONS} will be examined. Passing the
@option{--verbose} switch to GCC will display the name of the
environment variable and, if it is defined, its contents.
@end table
@noindent

Some files were not shown because too many files have changed in this diff Show More