summaryrefslogtreecommitdiff
path: root/gnu
diff options
context:
space:
mode:
authorMarc Espie <espie@cvs.openbsd.org>2000-01-19 16:07:14 +0000
committerMarc Espie <espie@cvs.openbsd.org>2000-01-19 16:07:14 +0000
commitdf2a34902b4aa73b54581f227c58a3ca95b37318 (patch)
tree4aa817c78f627be1c77651c0fd6f13c2241e6c56 /gnu
parentfab44a305f0ce081ffdf8c9602e66898ebc805b0 (diff)
Update to 2.95.2
Diffstat (limited to 'gnu')
-rw-r--r--gnu/egcs/ChangeLog4
-rw-r--r--gnu/egcs/FAQ430
-rw-r--r--gnu/egcs/config/ChangeLog4
-rw-r--r--gnu/egcs/config/mpw/ChangeLog4
-rw-r--r--gnu/egcs/contrib/ChangeLog4
-rw-r--r--gnu/egcs/contrib/egcs_update214
-rw-r--r--gnu/egcs/etc/ChangeLog4
-rw-r--r--gnu/egcs/faq.html134
-rw-r--r--gnu/egcs/gcc/c-lang.c8
-rw-r--r--gnu/egcs/gcc/config/arm/linux-elf.h3
-rw-r--r--gnu/egcs/gcc/config/i386/sol2.h27
-rw-r--r--gnu/egcs/gcc/config/i386/sol2gas.h11
-rw-r--r--gnu/egcs/gcc/config/pa/pa.c16
-rw-r--r--gnu/egcs/gcc/config/rs6000/rs6000.md339
-rw-r--r--gnu/egcs/gcc/config/sparc/sparc.md4
-rw-r--r--gnu/egcs/gcc/cp/ChangeLog21
-rw-r--r--gnu/egcs/gcc/f/ChangeLog4
-rw-r--r--gnu/egcs/gcc/f/version.c2
-rw-r--r--gnu/egcs/gcc/fix-header.c2
-rw-r--r--gnu/egcs/gcc/haifa-sched.c2
-rw-r--r--gnu/egcs/gcc/intl/ChangeLog4
-rw-r--r--gnu/egcs/gcc/java/ChangeLog9
-rw-r--r--gnu/egcs/gcc/java/jvspec.c8
-rw-r--r--gnu/egcs/gcc/local-alloc.c3
-rw-r--r--gnu/egcs/gcc/po/ChangeLog8
-rw-r--r--gnu/egcs/gcc/po/POTFILES.in3
-rw-r--r--gnu/egcs/gcc/reg-stack.c10
-rw-r--r--gnu/egcs/gcc/sched.c2
-rw-r--r--gnu/egcs/install/BUILD21
-rw-r--r--gnu/egcs/install/DOWNLOAD2
-rw-r--r--gnu/egcs/install/FINALINSTALL2
-rw-r--r--gnu/egcs/install/INDEX16
-rw-r--r--gnu/egcs/install/SPECIFIC297
-rw-r--r--gnu/egcs/install/build.html46
-rw-r--r--gnu/egcs/install/specific.html139
-rw-r--r--gnu/egcs/libio/ChangeLog4
-rw-r--r--gnu/egcs/libio/stdio/ChangeLog4
-rw-r--r--gnu/egcs/libio/tests/ChangeLog4
-rw-r--r--gnu/egcs/libio/testsuite/ChangeLog4
-rw-r--r--gnu/egcs/libstdc++/ChangeLog4
-rw-r--r--gnu/egcs/libstdc++/stl/ChangeLog4
-rw-r--r--gnu/egcs/libstdc++/tests/ChangeLog4
-rw-r--r--gnu/egcs/libstdc++/testsuite/ChangeLog4
43 files changed, 1379 insertions, 460 deletions
diff --git a/gnu/egcs/ChangeLog b/gnu/egcs/ChangeLog
index 9018b7143ef..77d5478404f 100644
--- a/gnu/egcs/ChangeLog
+++ b/gnu/egcs/ChangeLog
@@ -1,3 +1,7 @@
+Sun Oct 24 23:54:10 PDT 1999 Jeff Law (law@cygnus.com)
+
+ * gcc-2.95.2 Released.
+
Mon Aug 16 01:29:24 PDT 1999 Jeff Law (law@cygnus.com)
* gcc-2.95.1 Released.
diff --git a/gnu/egcs/FAQ b/gnu/egcs/FAQ
index 1c43cac7624..7d861f757b3 100644
--- a/gnu/egcs/FAQ
+++ b/gnu/egcs/FAQ
@@ -5,61 +5,63 @@
[1]http://www.gnu.org/software/gcc/faq.html.
This FAQ tries to answer specific questions concerning GCC. For
- general information regarding C resp. C++, please check the
- [2]comp.lang.c FAQ, [3]comp.lang.c++ FAQ, and the [4]comp.std.c++ FAQ.
+ general information regarding C, C++, resp. Fortran please check the
+ [2]comp.lang.c FAQ, [3]comp.lang.c++ FAQ, [4]comp.std.c++ FAQ, and the
+ [5]Fortran Information page.
_________________________________________________________________
Questions
- 1. [5]General information
- 1. [6]What is the relationship between GCC and EGCS
- 2. [7]What is the relationship between GCC and Cygnus
- 3. [8]What is an open development model?
- 4. [9]How to report bugs
- 5. [10]How do I get a bug fixed or a feature added?
- 2. [11]Installation
- 1. [12]Problems building the Fortran compiler
- 2. [13]How to install multiple versions of GCC
- 3. [14]Dynamic linker is unable to find GCC libraries
- 4. [15]libstdc++/libio tests fail badly with --enable-shared
- 5. [16]GCC can not find GNU as/GNU ld
- 6. [17]cpp: Usage:... Error
- 3. [18]Testsuite problems
- 1. [19]Why is there no testsuite in GCC 2.95
- 2. [20]Unable to run the testsuite
- 3. [21]How do I pass flags like -fnew-abi to the testsuite?
- 4. [22]How can I run the test suite with multiple options?
- 4. [23]Platform-specific issues
- 1. [24]Problems with exception handling on x86 platforms
- 2. [25]Problems with Invalid `asm' statements
- 3. [26]Building Linux kernels
- 4. [27]How do I compile X11 headers with g++
- 5. [28]Signal 11 on GNU/Linux
- 6. [29]How to build a cross compiler
+ 1. [6]General information
+ 1. [7]What is the relationship between GCC and EGCS
+ 2. [8]What is the relationship between GCC and Cygnus
+ 3. [9]What is an open development model?
+ 4. [10]How to report bugs
+ 5. [11]How do I get a bug fixed or a feature added?
+ 2. [12]Installation
+ 1. [13]Problems building the Fortran compiler
+ 2. [14]How to install multiple versions of GCC
+ 3. [15]Dynamic linker is unable to find GCC libraries
+ 4. [16]libstdc++/libio tests fail badly with --enable-shared
+ 5. [17]GCC can not find GNU as/GNU ld
+ 6. [18]cpp: Usage:... Error
+ 3. [19]Testsuite problems
+ 1. [20]Why is there no testsuite in GCC 2.95
+ 2. [21]Unable to run the testsuite
+ 3. [22]How do I pass flags like -fnew-abi to the testsuite?
+ 4. [23]How can I run the test suite with multiple options?
+ 4. [24]Platform-specific issues
+ 1. [25]Problems with exception handling on x86 platforms
+ 2. [26]Problems with Invalid `asm' statements
+ 3. [27]Building Linux kernels
+ 4. [28]How do I compile X11 headers with g++
+ 5. [29]How to build a cross compiler
5. [30]Bugs and Non-Bugs
1. [31]FD_ZERO macro
2. [32]Octave 2.0.13 does not compile
- 6. [33]Miscellaneous
- 1. [34]Virtual memory exhausted
- 2. [35]Snapshots, how, when, why
- 3. [36]Friend Templates
- 4. [37]Where to find libg++
- 5. [38]Why do I need autoconf, bison, xgettext, automake, etc
- 6. [39]Problems debugging GCC code
- 7. [40]Conflicts when using cvs update
- 8. [41]Using GCC with GNAT/Ada
- 9. [42]Using GCC with GNU Pascal
- 10. [43]Using CVS to download snapshots
- 11. [44]Why can't I build a shared library?
- 12. [45]Dealing with spam on the lists
- 13. [46]How to work around too long C++ symbol names?
+ 3. [33]Why can't I initialize a static variable with stdin?
+ 4. [34]Why can't I use #if here?
+ 6. [35]Miscellaneous
+ 1. [36]Virtual memory exhausted
+ 2. [37]Snapshots, how, when, why
+ 3. [38]Friend Templates
+ 4. [39]Where to find libg++
+ 5. [40]Why do I need autoconf, bison, xgettext, automake, etc
+ 6. [41]Problems debugging GCC code
+ 7. [42]Conflicts when using cvs update
+ 8. [43]Using GCC with GNAT/Ada
+ 9. [44]Using GCC with GNU Pascal
+ 10. [45]Using CVS to download snapshots
+ 11. [46]Why can't I build a shared library?
+ 12. [47]Dealing with spam on the lists
+ 13. [48]How to work around too long C++ symbol names?
(-fsquangle)
- 14. [47]When building from CVS sources, I see 'gperf: invalid
+ 14. [49]When building from CVS sources, I see 'gperf: invalid
option -- F', even with the most current version of gperf.
- 15. [48]When building C++, the linker says my constructors,
+ 15. [50]When building C++, the linker says my constructors,
destructors or virtual tables are undefined, but I defined
them
- 16. [49]What is libstdc++-v3 and how can I use it with g++?
+ 16. [51]What is libstdc++-v3 and how can I use it with g++?
_________________________________________________________________
General information
@@ -83,7 +85,7 @@ What is the relationship between GCC and EGCS
We are in the process of merging GCC and EGCS, which will take some
time. The net result will be a single project which will carry forward
- GCC development under the ultimate control of the [50]GCC Steering
+ GCC development under the ultimate control of the [52]GCC Steering
Committee.
_________________________________________________________________
@@ -95,7 +97,7 @@ What is the relationship between GCC and Cygnus
While Cygnus does donate hardware, network connections, code and
developer time to GCC development, Cygnus does not control GCC.
- Overall control of GCC is in the hands of the [51]GCC Steering
+ Overall control of GCC is in the hands of the [53]GCC Steering
Committee which includes people from a variety of different
organizations and backgrounds. The purpose of the steering committee
is to make decisions in the best interest of GCC and to help ensure
@@ -107,7 +109,7 @@ What is the relationship between GCC and Cygnus
What is an open development model?
- With GCC, we are going to try a bazaar style[52][1] approach to its
+ With GCC, we are going to try a bazaar style[54][1] approach to its
development: We make snapshots publicly available to anyone who wants
to try them; we're going to welcome anyone to join the development
mailing list. All of the discussions on the development mailing list
@@ -145,25 +147,26 @@ What is an open development model?
the past few months. The paper which started all of this introduced
two terms: A _cathedral_ development model versus a _bazaar_
development model. The paper is written by Eric S. Raymond, it is
- called ``[53]The Cathedral and the Bazaar''. The paper is a useful
+ called ``[55]The Cathedral and the Bazaar''. The paper is a useful
starting point for discussions.
_________________________________________________________________
How to report bugs
- There are complete instructions in the [54]gcc info manual, section
+ There are complete instructions in the [56]gcc info manual, section
Bugs. The manual can also be read using `_M-x info_' in Emacs, or if
the GNU info program is installed on your system by `info --node
- "(gcc)Bugs"'. Or see the file [55]BUGS included with the GCC source
+ "(gcc)Bugs"'. Or see the file [57]BUGS included with the GCC source
code.
Before you report a bug for the _C++ compiler_, please check the
- [56]list of well-known bugs. If you want to report a bug with _egcs
- 1.0.x_, we recommend upgrading to the current release first.
+ [58]list of well-known bugs. If you want to report a bug with _egcs
+ 1.0.x_ or _egcs 1.1.x_, we strongly recommend upgrading to the current
+ release first.
- In short, if gcc says Internal compiler error (or any other error that
+ In short, if GCC says Internal compiler error (or any other error that
you'd like us to be able to reproduce, for that matter), please mail a
- bug report to [57]gcc-bugs@gcc.gnu.org or [58]bug-gcc@gnu.org
+ bug report to [59]gcc-bugs@gcc.gnu.org or [60]bug-gcc@gnu.org
including:
* The GCC version
* The system type
@@ -237,7 +240,7 @@ How do I get a bug fixed or a feature added?
commercial support organization since the people who read
gcc-bugs, if they choose to help you, will be volunteering their
time. This alternative will work best if you follow the directions
- on [59]submitting bugreports.
+ on [61]submitting bugreports.
* Fix it yourself. This alternative will probably bring results, if
you work hard enough, but will probably take a lot of time, and,
depending on the quality of your work and the perceived benefits
@@ -302,7 +305,7 @@ How to install multiple versions of gcc
wish to be sure about which version you are invoking.
If you use --prefix, GCC may have difficulty locating a GNU assembler
- or linker on your system, [60]GCC can not find GNU as/GNU ld explains
+ or linker on your system, [62]GCC can not find GNU as/GNU ld explains
how to deal with this.
_________________________________________________________________
@@ -358,7 +361,7 @@ GCC can not find GNU as/GNU ld
versions of those programs.
To ensure that GCC finds the GNU assembler (the GNU loader), which are
- required by [61]some configurations, you should configure these with
+ required by [63]some configurations, you should configure these with
the same --prefix option as you used for GCC. Then build & install GNU
as (GNU ld) and proceed with building GCC.
@@ -419,7 +422,7 @@ Unable to run the testsuite
If you get a message about unable to find "standard.exp" when trying
to run the GCC testsuites, then your dejagnu is too old to run the GCC
tests. You will need to get a newer version of dejagnu; we've made a
- [62]dejagnu snapshot available until a new version of dejagnu can be
+ [64]dejagnu snapshot available until a new version of dejagnu can be
released.
_________________________________________________________________
@@ -452,7 +455,7 @@ How can I run the test suite with multiple options?
Platform-specific issues
- Please read the [63]host/target specific installation notes, too.
+ Please read the [65]host/target specific installation notes, too.
Problems with exception handling on x86 platforms
@@ -463,7 +466,7 @@ Problems with exception handling on x86 platforms
We recommend binutils-2.9.1 or newer. Some post-2.9.1 snapshots of
binutils fix some subtle bugs, particularly on x86 and alpha. They are
- available at [64]ftp://tsx-11.mit.edu/pub/linux/packages/GCC/. The
+ available at [66]ftp://tsx-11.mit.edu/pub/linux/packages/GCC/. The
2.9.1.0.15 snapshot is known to work fine on those platforms; other
than that, be aware that snapshots are in general untested and may not
work (or even build). Use them at your own risk.
@@ -475,7 +478,7 @@ Problems with invalid `asm' statements
not detect as invalid a clobber specifier that clobbered an operand.
Instead, it could spuriously and silently generate incorrect code for
certain non-obvious cases of source code. Even more unfortunately, the
- manual (Using and Porting GCC, section Extended Asm, see the [65]bug
+ manual (Using and Porting GCC, section Extended Asm, see the [67]bug
report entry) did not explicitly say that it was invalid to specify
clobber registers that were destined to overlap operands; it could
arguably be interpreted that it was correct to clobber an input
@@ -491,7 +494,7 @@ Problems with invalid `asm' statements
foo.c:7: Invalid `asm' statement:
foo.c:7: fixed or forbidden register 0 (ax) was spilled for class AREG.
- Unfortunately, a lot of existing software, for example the [66]Linux
+ Unfortunately, a lot of existing software, for example the [68]Linux
kernel version 2.0.35 for the Intel x86, has constructs where input
operands are marked as clobbered.
@@ -558,8 +561,8 @@ Building Linux kernels
kernels are to be built only with gcc 2.7.2. They use certain asm
constructs which are incorrect, but (by accident) happen to work with
gcc 2.7.2. If you insist on building 2.0.x kernels with egcs, you may
- be interested in this [67]patch which fixes some of the asm problems.
- You will also want to change asm constructs to [68]avoid clobbering
+ be interested in this [69]patch which fixes some of the asm problems.
+ You will also want to change asm constructs to [70]avoid clobbering
their input operands.
If you installed a recent binutils/gas snapshot on your GNU/Linux
@@ -600,7 +603,7 @@ How to build a cross compiler
usually need additional software (cross assembler, cross linker,
target libraries, target include files, etc).
- We recommend reading the [69]crossgcc FAQ for information about
+ We recommend reading the [71]crossgcc FAQ for information about
building cross compilers.
If you have all the pieces available, then `make cross' should build a
@@ -626,16 +629,16 @@ How to build a cross compiler
earlier versions of gcc or other compilers. The following problems
with some releases of widely used packages have been identified:
- There is a separate [70]list of well-known bugs describing known
+ There is a separate [72]list of well-known bugs describing known
deficiencies. Naturally we'd like that list to be of zero length.
- To report a bug, see [71]How to report bugs.
+ To report a bug, see [73]How to report bugs.
_________________________________________________________________
FD_ZERO macro
The FD_ZERO macro in (e.g.) libc-5.4.46 is incorrect. It uses
- [72]invalid asm clobbers. The following rewrite by Ulrich Drepper
+ [74]invalid asm clobbers. The following rewrite by Ulrich Drepper
<drepper@cygnus.com> should fix this for glibc 2.0:
# define __FD_ZERO(fdsetp) \
do { \
@@ -655,11 +658,99 @@ Octave 2.0.13 does not compile
Apparently Octave 2.0.13 uses some C++ features which have been
obsoleted and thus fails to build with EGCS 1.1 and later. This
- [73]patch to Octave should fix this.
+ [75]patch to Octave should fix this.
Octave 2.0.13.96, a test release, has been compiled without patches by
egcs 1.1.2. It is available at
- [74]ftp://ftp.che.wisc.edu/pub/octave/test-releases/.
+ [76]ftp://ftp.che.wisc.edu/pub/octave/test-releases/.
+ _________________________________________________________________
+
+Why can't I initialize a static variable with stdin?
+
+ This has nothing to do with gcc, but people ask us about it a lot.
+ Code like this:
+ #include <stdio.h>
+
+ FILE *yyin = stdin;
+
+ will not compile with GNU libc (Linux libc6), because stdin is not a
+ constant. This was done deliberately, in order for there to be no
+ limit on the number of open FILE objects. It is surprising for people
+ used to traditional Unix C libraries, but it is permitted by the C
+ standard.
+
+ This construct commonly occurs in code generated by old versions of
+ lex or yacc. We suggest you try regenerating the parser with a current
+ version of flex or bison, respectively. In your own code, the
+ appropriate fix is to move the initialization to the beginning of
+ main.
+
+ There is a common misconception that the GCC developers are
+ responsible for GNU libc. These are in fact two entirely separate
+ projects. The appropriate place to ask questions relating to GNU libc
+ is [77]libc-alpha@sourceware.cygnus.com.
+ _________________________________________________________________
+
+Why can't I use #if here?
+
+ Let me guess... you wrote code that looks something like this:
+ memcpy(dest, src,
+#ifdef PLATFORM1
+ 12
+#else
+ 24
+#endif
+ );
+
+ and you got a whole pile of error messages:
+test.c:11: warning: preprocessing directive not recognized within macro arg
+test.c:11: warning: preprocessing directive not recognized within macro arg
+test.c:11: warning: preprocessing directive not recognized within macro arg
+test.c: In function `foo':
+test.c:6: undefined or invalid # directive
+test.c:8: undefined or invalid # directive
+test.c:9: parse error before `24'
+test.c:10: undefined or invalid # directive
+test.c:11: parse error before `#'
+
+ The problem, simply put, is that GCC's preprocessor does not allow you
+ to put #ifdef (or any other directive) inside the arguments of a
+ macro. Your C library's string.h happens to define memcpy as a macro -
+ this is perfectly legitimate. The code therefore will not compile.
+
+ We have two good reasons for not allowing directives inside macro
+ arguments. First, it is not portable. It is "undefined behavior"
+ according to the C standard; that means different compilers will do
+ different things with it. Some will give you errors. Some will dump
+ core. Some will silently mangle your code - you could get the
+ equivalent of
+ memcpy(dest, src, 1224);
+
+ from the above example. A very few might do what you expected it to.
+ We therefore feel it is most useful for GCC to reject this construct
+ immediately so that it is found and fixed.
+
+ Second, it is extraordinarily difficult to implement the preprocessor
+ such that it does what you would expect for every possible directive
+ found inside a macro argument. The best example is perhaps
+#define foo(arg) ... arg ...
+foo(blah
+#undef foo
+blah)
+
+ which is impossible to implement in portable C without leaking memory.
+ Allowing only a subset of directives would be confusing.
+
+ It is always possible to rewrite code which uses conditionals inside
+ macros so that it doesn't. You could write the above example
+#ifdef PLATFORM1
+ memcpy(dest, src, 12);
+#else
+ memcpy(dest, src, 24);
+#endif
+
+ This is a bit more typing, but I personally think it's better style in
+ addition to being more portable.
_________________________________________________________________
Miscellaneous
@@ -685,7 +776,7 @@ Snapshots, how, when, why
code or even fail to build.
If you plan on downloading and using snapshots, we highly recommend
- you subscribe to the GCC mailing lists. See [75]mailing lists on the
+ you subscribe to the GCC mailing lists. See [78]mailing lists on the
main GCC page for instructions on how to subscribe.
When using the diff files to update from older snapshots to newer
@@ -754,7 +845,7 @@ Where to find libg++
need libstdc++/libio which are included in the GCC distribution.
If you do need libg++ you can get a libg++ release that works with GCC
- from [76]ftp://egcs.cygnus.com/pub/egcs/infrastructure/. Note that the
+ from [79]ftp://egcs.cygnus.com/pub/egcs/infrastructure/. Note that the
2.8.2 snapshot pre-dates the 2.8.1.2 release.
_________________________________________________________________
@@ -771,17 +862,19 @@ autoconf, bison, xgettext, automake, etc
correct. This causes problems for generated files as "make" may think
those generated files are out of date and try to regenerate them.
- An easy way to work around this problem is to use the egcs_update
- script in the contrib subdirectory of egcs, which handles this
+ An easy way to work around this problem is to use the gcc_update
+ script in the contrib subdirectory of GCC, which handles this
transparently without requiring installation of any additional tools.
+ (Note: Up to and including GCC 2.95 this script was called egcs_update
+ .)
When building from diffs or CVS or if you modified some sources, you
may also need to obtain development versions of some GNU tools, as the
production versions do not necessarily handle all features needed to
- rebuild egcs.
+ rebuild GCC.
- Autoconf is available from [77]http://sourceware.cygnus.com/autoconf/;
- have a look at [78]ftp://egcs.cygnus.com/pub/egcs/infrastructure/ for
+ Autoconf is available from [80]http://sourceware.cygnus.com/autoconf/;
+ have a look at [81]ftp://egcs.cygnus.com/pub/egcs/infrastructure/ for
the other packages.
_________________________________________________________________
@@ -822,10 +915,10 @@ Using GCC with GNAT/Ada
Using GCC with GNU Pascal
- The [79]GNU Pascal front-end does work with EGCS 1.1 It does not work
+ The [82]GNU Pascal front-end does work with EGCS 1.1 It does not work
with EGCS 1.0.x and the main branch of the CVS repository. A tarball
can be found at
- [80]ftp://agnes.dida.physik.uni-essen.de/gnu-pascal/beta/.
+ [83]ftp://agnes.dida.physik.uni-essen.de/gnu-pascal/beta/.
_________________________________________________________________
Using CVS to download snapshots
@@ -835,7 +928,7 @@ Using CVS to download snapshots
We use CVS tags to identify each snapshot we make. Snapshot tags have
the form "egcs_ss_YYYYMMDD". In addition, the latest official snapshot
- always has the tag "egcs_latest_snapshot".
+ always has the tag "gcc_latest_snapshot".
_________________________________________________________________
Why can't I build a shared library?
@@ -886,10 +979,10 @@ the most current version of gperf.
The current version of gperf (v2.7) does not support the -F flag which
is used when building egcs from CVS sources. You will need to obtain a
patch for gperf and rebuild the program; this patch is available at
- [81]ftp://egcs.cygnus.com/pub/egcs/infrastructure/
+ [84]ftp://egcs.cygnus.com/pub/egcs/infrastructure/
Patches for other tools, particularly autoconf, may also be necessary
- if you're building from CVS sources. Please see the [82]FAQ entry
+ if you're building from CVS sources. Please see the [85]FAQ entry
regarding these tools to determine if anything else is needed.
These patched utilities should _only_ be required if you are building
@@ -924,7 +1017,7 @@ tables are undefined, but I defined them
What is libstdc++-v3 and how can I use it with g++?
- From the [83]libstdc++-FAQ: "The EGCS Standard C++ Library v3, or
+ From the [86]libstdc++-FAQ: "The EGCS Standard C++ Library v3, or
libstdc++-2.90.x, is an ongoing project to implement the ISO 14882
Standard C++ library as described in chapters 17 through 27 and annex
D."
@@ -938,12 +1031,12 @@ What is libstdc++-v3 and how can I use it with g++?
Please note that the libstdc++-v3 is not yet complete and should only
be used by experienced programmers.
- For more information please refer to the [84]libstdc++-v3 homepage
+ For more information please refer to the [87]libstdc++-v3 homepage
_________________________________________________________________
- [85]Return to the GCC home page
+ [88]Return to the GCC home page
- _Last modified: August 15, 1999_
+ _Last modified: October 19, 1999_
References
@@ -951,84 +1044,87 @@ References
2. http://www.eskimo.com/~scs/C-faq/top.html
3. http://www.cerfnet.com/~mpcline/On-Line-C++-FAQs/
4. http://reality.sgi.com/austern_mti/std-c++/faq.html
- 5. file://localhost/egcs/omelette/tmp/12663/gcc-2.95.1/faq.html#general
- 6. file://localhost/egcs/omelette/tmp/12663/gcc-2.95.1/faq.html#gcc
- 7. file://localhost/egcs/omelette/tmp/12663/gcc-2.95.1/faq.html#cygnus
- 8. file://localhost/egcs/omelette/tmp/12663/gcc-2.95.1/faq.html#open-development
- 9. file://localhost/egcs/omelette/tmp/12663/gcc-2.95.1/faq.html#bugreport
- 10. file://localhost/egcs/omelette/tmp/12663/gcc-2.95.1/faq.html#support
- 11. file://localhost/egcs/omelette/tmp/12663/gcc-2.95.1/faq.html#installation
- 12. file://localhost/egcs/omelette/tmp/12663/gcc-2.95.1/faq.html#fortran
- 13. file://localhost/egcs/omelette/tmp/12663/gcc-2.95.1/faq.html#multiple
- 14. file://localhost/egcs/omelette/tmp/12663/gcc-2.95.1/faq.html#rpath
- 15. file://localhost/egcs/omelette/tmp/12663/gcc-2.95.1/faq.html#rpath
- 16. file://localhost/egcs/omelette/tmp/12663/gcc-2.95.1/faq.html#gas
- 17. file://localhost/egcs/omelette/tmp/12663/gcc-2.95.1/faq.html#environ
- 18. file://localhost/egcs/omelette/tmp/12663/gcc-2.95.1/faq.html#testsuite
- 19. file://localhost/egcs/omelette/tmp/12663/gcc-2.95.1/faq.html#testsuite
- 20. file://localhost/egcs/omelette/tmp/12663/gcc-2.95.1/faq.html#dejagnu
- 21. file://localhost/egcs/omelette/tmp/12663/gcc-2.95.1/faq.html#testoptions
- 22. file://localhost/egcs/omelette/tmp/12663/gcc-2.95.1/faq.html#multipletests
- 23. file://localhost/egcs/omelette/tmp/12663/gcc-2.95.1/faq.html#platform
- 24. file://localhost/egcs/omelette/tmp/12663/gcc-2.95.1/faq.html#x86eh
- 25. file://localhost/egcs/omelette/tmp/12663/gcc-2.95.1/faq.html#asmclobber
- 26. file://localhost/egcs/omelette/tmp/12663/gcc-2.95.1/faq.html#linuxkernel
- 27. file://localhost/egcs/omelette/tmp/12663/gcc-2.95.1/faq.html#X11R6
- 28. file://localhost/egcs/omelette/tmp/12663/gcc-2.95.1/faq.html#sig11
- 29. file://localhost/egcs/omelette/tmp/12663/gcc-2.95.1/faq.html#cross
- 30. file://localhost/egcs/omelette/tmp/12663/gcc-2.95.1/faq.html#bugs
- 31. file://localhost/egcs/omelette/tmp/12663/gcc-2.95.1/faq.html#fdzero
- 32. file://localhost/egcs/omelette/tmp/12663/gcc-2.95.1/faq.html#octave
- 33. file://localhost/egcs/omelette/tmp/12663/gcc-2.95.1/faq.html#misc
- 34. file://localhost/egcs/omelette/tmp/12663/gcc-2.95.1/faq.html#memexhausted
- 35. file://localhost/egcs/omelette/tmp/12663/gcc-2.95.1/faq.html#snapshot
- 36. file://localhost/egcs/omelette/tmp/12663/gcc-2.95.1/faq.html#friend
- 37. file://localhost/egcs/omelette/tmp/12663/gcc-2.95.1/faq.html#libg++
- 38. file://localhost/egcs/omelette/tmp/12663/gcc-2.95.1/faq.html#generated_files
- 39. file://localhost/egcs/omelette/tmp/12663/gcc-2.95.1/faq.html#gdb
- 40. file://localhost/egcs/omelette/tmp/12663/gcc-2.95.1/faq.html#conflicts
- 41. file://localhost/egcs/omelette/tmp/12663/gcc-2.95.1/faq.html#gnat
- 42. file://localhost/egcs/omelette/tmp/12663/gcc-2.95.1/faq.html#gpc
- 43. file://localhost/egcs/omelette/tmp/12663/gcc-2.95.1/faq.html#cvssnapshots
- 44. file://localhost/egcs/omelette/tmp/12663/gcc-2.95.1/faq.html#picflag-needed
- 45. file://localhost/egcs/omelette/tmp/12663/gcc-2.95.1/spam.html
- 46. file://localhost/egcs/omelette/tmp/12663/gcc-2.95.1/faq.html#squangle
- 47. file://localhost/egcs/omelette/tmp/12663/gcc-2.95.1/faq.html#gperf
- 48. file://localhost/egcs/omelette/tmp/12663/gcc-2.95.1/faq.html#vtables
- 49. file://localhost/egcs/omelette/tmp/12663/gcc-2.95.1/faq.html#libstdc++
- 50. file://localhost/egcs/omelette/tmp/12663/gcc-2.95.1/steering.html
- 51. file://localhost/egcs/omelette/tmp/12663/gcc-2.95.1/steering.html
- 52. file://localhost/egcs/omelette/tmp/12663/gcc-2.95.1/faq.html#cathedral-vs-bazaar
- 53. http://locke.ccil.org/~esr/writings/cathedral.html
- 54. file://localhost/egcs/omelette/tmp/12663/gcc-2.95.1/onlinedocs/
- 55. http://egcs.cygnus.com/cgi-bin/cvsweb.cgi/~checkout~/egcs/gcc/BUGS?content-type=text/plain&only_with_tag=HEAD
- 56. file://localhost/egcs/omelette/tmp/12663/gcc-2.95.1/bugs.html
- 57. mailto:gcc-bugs@gcc.gnu.org
- 58. mailto:bug-gcc@gnu.org
- 59. file://localhost/egcs/omelette/tmp/12663/gcc-2.95.1/faq.html#bugreport
- 60. file://localhost/egcs/omelette/tmp/12663/gcc-2.95.1/faq.html#gas
- 61. file://localhost/egcs/omelette/tmp/12663/gcc-2.95.1/install/specific.html
- 62. ftp://egcs.cygnus.com/pub/egcs/infrastructure/dejagnu-19981026.tar.gz
- 63. file://localhost/egcs/omelette/tmp/12663/gcc-2.95.1/install/specific.html
- 64. ftp://tsx-11.mit.edu/pub/linux/packages/GCC/
- 65. file://localhost/egcs/omelette/tmp/12663/gcc-2.95.1/faq.html#bugreport
- 66. file://localhost/egcs/omelette/tmp/12663/gcc-2.95.1/faq.html#linuxkernel
- 67. http://www.suse.de/~florian/kernel+egcs.html
- 68. file://localhost/egcs/omelette/tmp/12663/gcc-2.95.1/faq.html#asmclobber
- 69. http://www.objsw.com/CrossGCC/
- 70. file://localhost/egcs/omelette/tmp/12663/gcc-2.95.1/bugs.html
- 71. file://localhost/egcs/omelette/tmp/12663/gcc-2.95.1/faq.html#bugreport
- 72. file://localhost/egcs/omelette/tmp/12663/gcc-2.95.1/faq.html#asmclobber
- 73. http://www.che.wisc.edu/octave/mailing-lists/bug-octave/1998/270
- 74. ftp://ftp.che.wisc.edu/pub/octave/test-releases/
- 75. file://localhost/egcs/omelette/tmp/12663/gcc-2.95.1/index.html#mailinglists
- 76. ftp://egcs.cygnus.com/pub/egcs/infrastructure/
- 77. http://sourceware.cygnus.com/autoconf/
- 78. ftp://egcs.cygnus.com/pub/egcs/infrastructure/
- 79. http://home.pages.de/~GNU-Pascal/
- 80. ftp://agnes.dida.physik.uni-essen.de/gnu-pascal/beta/
- 81. ftp://egcs.cygnus.com/pub/egcs/infrastructure
- 82. file://localhost/egcs/omelette/tmp/12663/gcc-2.95.1/faq.html#generated_files
- 83. http://sourceware.cygnus.com/libstdc++/faq/
- 84. http://sourceware.cygnus.com/libstdc++/
- 85. file://localhost/egcs/omelette/tmp/12663/gcc-2.95.1/index.html
+ 5. http://www.fortran.com/fortran/info.html
+ 6. http://gcc.gnu.org/faq.html#general
+ 7. http://gcc.gnu.org/faq.html#gcc
+ 8. http://gcc.gnu.org/faq.html#cygnus
+ 9. http://gcc.gnu.org/faq.html#open-development
+ 10. http://gcc.gnu.org/faq.html#bugreport
+ 11. http://gcc.gnu.org/faq.html#support
+ 12. http://gcc.gnu.org/faq.html#installation
+ 13. http://gcc.gnu.org/faq.html#fortran
+ 14. http://gcc.gnu.org/faq.html#multiple
+ 15. http://gcc.gnu.org/faq.html#rpath
+ 16. http://gcc.gnu.org/faq.html#rpath
+ 17. http://gcc.gnu.org/faq.html#gas
+ 18. http://gcc.gnu.org/faq.html#environ
+ 19. http://gcc.gnu.org/faq.html#testsuite
+ 20. http://gcc.gnu.org/faq.html#testsuite
+ 21. http://gcc.gnu.org/faq.html#dejagnu
+ 22. http://gcc.gnu.org/faq.html#testoptions
+ 23. http://gcc.gnu.org/faq.html#multipletests
+ 24. http://gcc.gnu.org/faq.html#platform
+ 25. http://gcc.gnu.org/faq.html#x86eh
+ 26. http://gcc.gnu.org/faq.html#asmclobber
+ 27. http://gcc.gnu.org/faq.html#linuxkernel
+ 28. http://gcc.gnu.org/faq.html#X11R6
+ 29. http://gcc.gnu.org/faq.html#cross
+ 30. http://gcc.gnu.org/faq.html#bugs
+ 31. http://gcc.gnu.org/faq.html#fdzero
+ 32. http://gcc.gnu.org/faq.html#octave
+ 33. http://gcc.gnu.org/faq.html#stdin
+ 34. http://gcc.gnu.org/faq.html#macarg
+ 35. http://gcc.gnu.org/faq.html#misc
+ 36. http://gcc.gnu.org/faq.html#memexhausted
+ 37. http://gcc.gnu.org/faq.html#snapshot
+ 38. http://gcc.gnu.org/faq.html#friend
+ 39. http://gcc.gnu.org/faq.html#libg++
+ 40. http://gcc.gnu.org/faq.html#generated_files
+ 41. http://gcc.gnu.org/faq.html#gdb
+ 42. http://gcc.gnu.org/faq.html#conflicts
+ 43. http://gcc.gnu.org/faq.html#gnat
+ 44. http://gcc.gnu.org/faq.html#gpc
+ 45. http://gcc.gnu.org/faq.html#cvssnapshots
+ 46. http://gcc.gnu.org/faq.html#picflag-needed
+ 47. http://gcc.gnu.org/spam.html
+ 48. http://gcc.gnu.org/faq.html#squangle
+ 49. http://gcc.gnu.org/faq.html#gperf
+ 50. http://gcc.gnu.org/faq.html#vtables
+ 51. http://gcc.gnu.org/faq.html#libstdc++
+ 52. http://gcc.gnu.org/steering.html
+ 53. http://gcc.gnu.org/steering.html
+ 54. http://gcc.gnu.org/faq.html#cathedral-vs-bazaar
+ 55. http://locke.ccil.org/~esr/writings/cathedral.html
+ 56. http://gcc.gnu.org/onlinedocs/
+ 57. http://egcs.cygnus.com/cgi-bin/cvsweb.cgi/~checkout~/egcs/gcc/BUGS?content-type=text/plain&only_with_tag=HEAD
+ 58. http://gcc.gnu.org/bugs.html
+ 59. mailto:gcc-bugs@gcc.gnu.org
+ 60. mailto:bug-gcc@gnu.org
+ 61. http://gcc.gnu.org/faq.html#bugreport
+ 62. http://gcc.gnu.org/faq.html#gas
+ 63. http://gcc.gnu.org/install/specific.html
+ 64. ftp://egcs.cygnus.com/pub/egcs/infrastructure/dejagnu-19981026.tar.gz
+ 65. http://gcc.gnu.org/install/specific.html
+ 66. ftp://tsx-11.mit.edu/pub/linux/packages/GCC/
+ 67. http://gcc.gnu.org/faq.html#bugreport
+ 68. http://gcc.gnu.org/faq.html#linuxkernel
+ 69. http://www.suse.de/~florian/kernel+egcs.html
+ 70. http://gcc.gnu.org/faq.html#asmclobber
+ 71. http://www.objsw.com/CrossGCC/
+ 72. http://gcc.gnu.org/bugs.html
+ 73. http://gcc.gnu.org/faq.html#bugreport
+ 74. http://gcc.gnu.org/faq.html#asmclobber
+ 75. http://www.che.wisc.edu/octave/mailing-lists/bug-octave/1998/270
+ 76. ftp://ftp.che.wisc.edu/pub/octave/test-releases/
+ 77. mailto:libc-alpha@sourceware.cygnus.com
+ 78. http://gcc.gnu.org/index.html#mailinglists
+ 79. ftp://egcs.cygnus.com/pub/egcs/infrastructure/
+ 80. http://sourceware.cygnus.com/autoconf/
+ 81. ftp://egcs.cygnus.com/pub/egcs/infrastructure/
+ 82. http://home.pages.de/~GNU-Pascal/
+ 83. ftp://agnes.dida.physik.uni-essen.de/gnu-pascal/beta/
+ 84. ftp://egcs.cygnus.com/pub/egcs/infrastructure
+ 85. http://gcc.gnu.org/faq.html#generated_files
+ 86. http://sourceware.cygnus.com/libstdc++/faq/
+ 87. http://sourceware.cygnus.com/libstdc++/
+ 88. http://gcc.gnu.org/index.html
diff --git a/gnu/egcs/config/ChangeLog b/gnu/egcs/config/ChangeLog
index a3865fd9017..beaefd1d1ec 100644
--- a/gnu/egcs/config/ChangeLog
+++ b/gnu/egcs/config/ChangeLog
@@ -1,3 +1,7 @@
+Sun Oct 24 23:54:10 PDT 1999 Jeff Law (law@cygnus.com)
+
+ * gcc-2.95.2 Released.
+
Mon Aug 16 01:29:24 PDT 1999 Jeff Law (law@cygnus.com)
* gcc-2.95.1 Released.
diff --git a/gnu/egcs/config/mpw/ChangeLog b/gnu/egcs/config/mpw/ChangeLog
index dea9fdbc8d5..551beca4b38 100644
--- a/gnu/egcs/config/mpw/ChangeLog
+++ b/gnu/egcs/config/mpw/ChangeLog
@@ -1,3 +1,7 @@
+Sun Oct 24 23:54:10 PDT 1999 Jeff Law (law@cygnus.com)
+
+ * gcc-2.95.2 Released.
+
Mon Aug 16 01:29:24 PDT 1999 Jeff Law (law@cygnus.com)
* gcc-2.95.1 Released.
diff --git a/gnu/egcs/contrib/ChangeLog b/gnu/egcs/contrib/ChangeLog
index d39ccd2f3f3..8b8d93c2bc8 100644
--- a/gnu/egcs/contrib/ChangeLog
+++ b/gnu/egcs/contrib/ChangeLog
@@ -1,3 +1,7 @@
+Sun Oct 24 23:54:10 PDT 1999 Jeff Law (law@cygnus.com)
+
+ * gcc-2.95.2 Released.
+
Mon Aug 16 01:29:24 PDT 1999 Jeff Law (law@cygnus.com)
* gcc-2.95.1 Released.
diff --git a/gnu/egcs/contrib/egcs_update b/gnu/egcs/contrib/egcs_update
index 6882b234b60..e7fa727d61b 100644
--- a/gnu/egcs/contrib/egcs_update
+++ b/gnu/egcs/contrib/egcs_update
@@ -9,14 +9,27 @@
# reads --nostdflags, $UPDATE_OPTIONS as well as this parameter itself
# are omitted.
#
+# If the first parameter reads --patch, the second parameter is considered
+# a patch file.
+#
+# If the first parameter is --touch, no cvs operation will be performed,
+# only generated files that appear to be out of date in the local tree
+# will be touched.
+#
+# If the first parameter is --list, a list of the generated files and
+# their dependencies will be printed; --help prints this message.
+#
# Examples:
#
# contrib/egcs_update -r egcs_latest_snapshot
# contrib/egcs_update -A
# contrib/egcs_update --nostdflags -P -r egcs_1_1_branch gcc/testsuite
+# contrib/egcs_update --patch some-patch
+# contrib/egcs_update --touch
+# contrib/egcs_update --list
#
#
-# (C) 1998 Free Software Foundation
+# (C) 1998-1999 Free Software Foundation
# Originally by Gerald Pfeifer <pfeifer@dbai.tuwien.ac.at>, August 1998.
#
# This script is Free Software, and it can be copied, distributed and
@@ -24,83 +37,166 @@
# its license can be downloaded from http://www.gnu.org/copyleft/gpl.html
+# Default options used when updating via CVS.
UPDATE_OPTIONS=-P
# Add -d to create any directories that exist in the repository but not
# locally.
# Add -A to reset any sticky tags, dates, or `-k' options.
-echo "Current directory is `pwd`."
+# This function prints a list of all generated files, along with their
+# dependencies. Note that only one target is supported per line: the
+# colon is stripped from the output.
+files_and_dependencies () {
+ sed -e 's/ *#.*//' -e '/^$/d' -e 's/://' <<\EOF
+# All automake dependencies within texinfo
+# In fact, not all, since we do not care about sub-directories that
+# we do not build. In particular, *.po and *.gmo are not touched.
+texinfo/aclocal.m4: texinfo/configure.in texinfo/acinclude.m4
+texinfo/Makefile.in: texinfo/Makefile.am texinfo/configure.in texinfo/aclocal.m4
+texinfo/configure: texinfo/configure.in texinfo/aclocal.m4
+texinfo/stamp-h.in: texinfo/configure.in texinfo/aclocal.m4 texinfo/acconfig.h
+texinfo/lib/Makefile.in: texinfo/lib/Makefile.am texinfo/configure.in texinfo/aclocal.m4
+texinfo/makeinfo/Makefile.in: texinfo/makeinfo/Makefile.am texinfo/configure.in texinfo/aclocal.m4
+texinfo/util/Makefile.in: texinfo/util/Makefile.am texinfo/configure.in texinfo/aclocal.m4
+# Now, proceed to gcc automatically generated files
+gcc/configure: gcc/configure.in
+gcc/cstamp-h.in: gcc/configure.in gcc/acconfig.h
+gcc/config.in: gcc/cstamp-h.in
+gcc/c-parse.y: gcc/c-parse.in
+gcc/c-parse.c: gcc/c-parse.y
+gcc/c-parse.h: gcc/c-parse.c
+gcc/c-gperf.h: gcc/c-parse.gperf
+gcc/cexp.c: gcc/cexp.y
+gcc/fixinc/fixincl.x: gcc/fixinc/fixincl.tpl gcc/fixinc/inclhack.def
+gcc/fixinc/inclhack.sh: gcc/fixinc/inclhack.def gcc/fixinc/inclhack.tpl gcc/fixinc/hackshell.tpl
+gcc/fixinc/fixincl.sh: gcc/fixinc/inclhack.def gcc/fixinc/inclhack.tpl
+# And then, language-specific files
+gcc/cp/parse.c: gcc/cp/parse.y
+gcc/cp/parse.h: gcc/cp/parse.c
+gcc/objc/objc-parse.y: gcc/c-parse.in
+gcc/objc/objc-parse.c: gcc/objc/objc-parse.y
+gcc/java/parse.h: gcc/java/parse.y
+gcc/java/parse.c: gcc/java/parse.y gcc/java/lex.c gcc/java/parse.h gcc/java/lex.h
+gcc/java/parse-scan.c: gcc/java/parse-scan.y gcc/java/lex.c gcc/java/parse.h gcc/java/lex.h
+# And libraries, at last
+libchill/configure: libchill/configure.in
+libf2c/configure: libf2c/configure.in
+libf2c/libF77/configure: libf2c/libF77/configure.in
+libf2c/libI77/configure: libf2c/libI77/configure.in
+libf2c/libU77/configure: libf2c/libU77/configure.in
+libf2c/libU77/stamp-h.in: libf2c/libU77/configure.in libf2c/libU77/acconfig.h
+libobjc/configure: libobjc/configure.in
+EOF
+}
-# First of all, check whether this indeed looks like a local CVS of egcs.
-if [ ! -d CVS ] || [ ! -f gcc/version.c ]; then
- echo "This does not seem to be an egcs CVS tree!"
- exit
-fi
-# Check command-line options
+# This function checks whether its first argument is newer than all
+# the other arguments. It returns success (0) otherwise.
+is_out_of_date () {
+ test `ls -1dt ${1+"$@"} | sed 1q` != "$1"
+}
-if [ x"${1}"x = x"--nostdflags"x ]; then
- shift
-else
- set -- $UPDATE_OPTIONS ${1+"$@"}
+
+# This function touches generated files such that the ``end'' user does
+# not have to rebuild them.
+touch_files () {
+ files_and_dependencies | while read f deps; do
+ if test -f $f && is_out_of_date "$f" $deps; then
+ echo Touching "$f"...
+ touch $f
+ if is_out_of_date "$f" $deps; then
+ # Hmm, it may have got the same timestamp as one of
+ # its touched dependencies. Wait a second and retry
+ sleep 1
+ touch $f
+ fi
+ fi
+ done
+}
+
+
+# This functions applies a patch to an existing tree.
+apply_patch () {
+ if [ -f $1 ]; then
+ echo "Applying patch file $1"
+ case "$1" in
+ *gz)
+ gzip -d -c $1 | patch -p1 ;;
+ *)
+ cat $1 | patch -p1 ;;
+ esac
+ fi
+ echo "Adjusting file timestamps"
+ touch_files
+}
+
+# Check whether this indeed looks like a local tree.
+if [ ! -f gcc/version.c ]; then
+ echo "This does not seem to be an egcs tree!"
+ exit
fi
+case "$1" in
+# First of all, check whether we are going to process a patch.
+--patch)
+ if test "$#" != 2; then
+ echo "$1" expects only one argument >&2
+ exit 1
+ fi
+ apply_patch "${2}"
+ exit $?
+ ;;
-echo "Pass 1: Updating autoconf and bison generated files"
-# Do a CVS update on those files that exist in CVS directories. libg++
-# makes sense to drop into the tree, but it isn't CVS-controlled.
-X=`for i in \`find . -name configure.in -o -name '*.y'\`
-do
- D=\`dirname $i\`/CVS
- if [ -f $i -a -d $D ]; then
- echo $i
+--touch)
+ if test "$#" != 1; then
+ echo "$1" does not expect any argument >&2
+ exit 1
fi
-done`
-cvs -q update $X
-if [ $? -ne 0 ]; then
- echo "CVS update of generated files failed." >&2
- exit 1
+ touch_files
+ exit $?
+ ;;
+
+--list)
+ if test "$#" != 1; then
+ echo "$1" does not expect any argument >&2
+ exit 1
+ fi
+ files_and_dependencies | sed 's/ /: /'
+ exit $?
+ ;;
+
+--help)
+ sed -e '1,2d' -e '/^UPDATE_OPTIONS=/{i\
+\
+
+p
+}' \
+ -e '/^$/,$d' -e 's/#//' -e 's/^ //' < $0
+ exit $?
+ ;;
+
+esac
+
+# Check whether this indeed looks like a local CVS tree.
+if [ ! -d CVS ]; then
+ echo "This does not seem to be an egcs CVS tree!"
+ exit
fi
+# Check command-line options
+if [ x"${1}"x = x"--nostdflags"x ]; then
+ shift
+else
+ set -- $UPDATE_OPTIONS ${1+"$@"}
+fi
-echo "Pass 2: Updating full tree"
+echo "Updating CVS tree"
cvs -q update ${1+"$@"}
if [ $? -ne 0 ]; then
echo "CVS update of full tree failed." >&2
exit 1
fi
-echo "Pass 3: Fixing local tree"
-# Please also update the FAQ accordingly if you change the list of
-# files below. Note that generated files should be touched only
-# after the corresponding *.y files.
-touch `find . -name configure -print`
-touch `find texinfo -name Makefile.in -print`
-touch `find texinfo -name \*.pot -print`
-touch `find texinfo -name \*.gmo -print`
-for f in gcc/c-parse.y \
- gcc/c-parse.h \
- gcc/c-parse.c \
- gcc/cstamp-h.in \
- gcc/c-gperf.h \
- gcc/cexp.c \
- gcc/cp/parse.c \
- gcc/cp/parse.h \
- gcc/objc/objc-parse.y \
- gcc/objc/objc-parse.c \
- gcc/java/parse.h \
- gcc/java/parse.c \
- gcc/java/parse-scan.c \
- libf2c/libU77/stamp-h.in \
- contrib/fixinc/fixincl.x \
- contrib/fixinc/inclhack.sh \
- contrib/fixinc/fixincl.sh \
- gcc/fixinc/fixincl.x \
- gcc/fixinc/inclhack.sh \
- gcc/fixinc/fixincl.sh
-do
- if [ -f $f ]; then
- touch $f
- fi
-done
+echo "Adjusting file timestamps"
+touch_files
diff --git a/gnu/egcs/etc/ChangeLog b/gnu/egcs/etc/ChangeLog
index 86bd82bbd74..a1f9b964bd2 100644
--- a/gnu/egcs/etc/ChangeLog
+++ b/gnu/egcs/etc/ChangeLog
@@ -1,3 +1,7 @@
+Sun Oct 24 23:54:10 PDT 1999 Jeff Law (law@cygnus.com)
+
+ * gcc-2.95.2 Released.
+
Mon Aug 16 01:29:24 PDT 1999 Jeff Law (law@cygnus.com)
* gcc-2.95.1 Released.
diff --git a/gnu/egcs/faq.html b/gnu/egcs/faq.html
index 61be1809567..8b5c857ba1c 100644
--- a/gnu/egcs/faq.html
+++ b/gnu/egcs/faq.html
@@ -10,12 +10,14 @@
http://www.gnu.org/software/gcc/faq.html">http://www.gnu.org/software/gcc/faq.html</a>.</p>
<p>This FAQ tries to answer specific questions concerning GCC. For
-general information regarding C resp. C++, please check the
+general information regarding C, C++, resp. Fortran please check the
<a href="http://www.eskimo.com/~scs/C-faq/top.html">comp.lang.c FAQ</a>,
<a href="http://www.cerfnet.com/~mpcline/On-Line-C++-FAQs/">
-comp.lang.c++ FAQ</a>, and the
+comp.lang.c++ FAQ</a>,
<a href="http://reality.sgi.com/austern_mti/std-c++/faq.html">
-comp.std.c++ FAQ</a>.</p>
+comp.std.c++ FAQ</a>, and the <a
+href="http://www.fortran.com/fortran/info.html">Fortran Information
+page</a>.</p>
<hr>
@@ -55,7 +57,6 @@ comp.std.c++ FAQ</a>.</p>
<li><a href="#asmclobber">Problems with <tt>Invalid `asm' statement</tt>s</a></li>
<li><a href="#linuxkernel">Building Linux kernels</a> </li>
<li><a href="#X11R6">How do I compile X11 headers with g++</a> </li>
- <li><a href="#sig11">Signal 11 on GNU/Linux</a></li>
<li><a href="#cross">How to build a cross compiler</a></li>
</ol></li>
@@ -63,6 +64,8 @@ comp.std.c++ FAQ</a>.</p>
<ol>
<li><a href="#fdzero">FD_ZERO macro</a></li>
<li><a href="#octave">Octave 2.0.13 does not compile</a></li>
+ <li><a href="#stdin">Why can't I initialize a static variable with <tt>stdin</tt>?</a></li>
+ <li><a href="#macarg">Why can't I use #if here?</a></li>
</ol></li>
<li><a href="#misc">Miscellaneous</a>
@@ -194,11 +197,11 @@ the GNU <tt>info</tt> program is installed on your system by `<tt>info --node
included with the GCC source code.</p>
<p>Before you report a bug for the <em>C++ compiler</em>, please check
-the <a href="bugs.html">list of well-known bugs</a>. If you
-want to report a bug with <em>egcs 1.0.x</em>, we recommend upgrading
-to the current release first.</p>
+the <a href="bugs.html">list of well-known bugs</a>. If you want to
+report a bug with <em>egcs 1.0.x</em> or <em>egcs 1.1.x</em>, we
+strongly recommend upgrading to the current release first.</p>
-<p>In short, if gcc says <tt>Internal compiler error</tt> (or any
+<p>In short, if GCC says <tt>Internal compiler error</tt> (or any
other error that you'd like us to be able to reproduce, for that
matter), please mail a bug report to <a
href="mailto:gcc-bugs@gcc.gnu.org">gcc-bugs@gcc.gnu.org</a> or
@@ -739,6 +742,107 @@ egcs 1.1.2. It is available at
<a href="ftp://ftp.che.wisc.edu/pub/octave/test-releases/">
ftp://ftp.che.wisc.edu/pub/octave/test-releases/</a>.</p>
+<hr>
+<h2><a name="stdin">Why can't I initialize a static variable with <tt>stdin</tt>?</a></h2>
+
+<p>This has nothing to do with gcc, but people ask us about it a
+lot. Code like this:</p>
+
+<pre>
+ #include &lt;stdio.h&gt;
+
+ FILE *yyin = stdin;
+</pre>
+
+<p>will not compile with GNU libc (Linux libc6), because
+<tt>stdin</tt> is not a constant. This was done deliberately, in
+order for there to be no limit on the number of open FILE objects. It
+is surprising for people used to traditional Unix C libraries, but it
+is permitted by the C standard.</p>
+
+<p>This construct commonly occurs in code generated by old versions of
+lex or yacc. We suggest you try regenerating the parser with a
+current version of flex or bison, respectively. In your own code, the
+appropriate fix is to move the initialization to the beginning of
+main.</p>
+
+<p>There is a common misconception that the GCC developers are
+responsible for GNU libc. These are in fact two entirely separate
+projects. The appropriate place to ask questions relating to GNU libc
+is <a href="mailto:libc-alpha@sourceware.cygnus.com">libc-alpha@sourceware.cygnus.com</a>.
+</p>
+
+<hr>
+<h2><a name="macarg">Why can't I use #if here?</a></h2>
+
+<p>Let me guess... you wrote code that looks something like this:</p>
+<pre>
+ memcpy(dest, src,
+#ifdef PLATFORM1
+ 12
+#else
+ 24
+#endif
+ );
+</pre>
+<p>and you got a whole pile of error messages:</p>
+<pre>
+test.c:11: warning: preprocessing directive not recognized within macro arg
+test.c:11: warning: preprocessing directive not recognized within macro arg
+test.c:11: warning: preprocessing directive not recognized within macro arg
+test.c: In function `foo':
+test.c:6: undefined or invalid # directive
+test.c:8: undefined or invalid # directive
+test.c:9: parse error before `24'
+test.c:10: undefined or invalid # directive
+test.c:11: parse error before `#'
+</pre>
+
+<p>The problem, simply put, is that GCC's preprocessor does not allow
+you to put #ifdef (or any other directive) inside the arguments of a
+macro. Your C library's <tt>string.h</tt> happens to define
+<tt>memcpy</tt> as a macro - this is perfectly legitimate. The code
+therefore will not compile.</p>
+
+<p>We have two good reasons for not allowing directives inside
+macro arguments. First, it is not portable. It is "undefined
+behavior" according to the C standard; that means different
+compilers will do different things with it. Some will give you
+errors. Some will dump core. Some will silently mangle your code -
+you could get the equivalent of</p>
+<pre>
+ memcpy(dest, src, 1224);
+</pre>
+<p>from the above example. A very few might do what you expected it
+to. We therefore feel it is most useful for GCC to reject this
+construct immediately so that it is found and fixed.</p>
+
+<p>Second, it is extraordinarily difficult to implement the
+preprocessor such that it does what you would expect for every
+possible directive found inside a macro argument. The best example is
+perhaps</p>
+<pre>
+#define foo(arg) ... arg ...
+foo(blah
+#undef foo
+blah)
+</pre>
+<p>which is <emph>impossible</emph> to implement in portable C without
+leaking memory. Allowing only a subset of directives would be
+confusing.</p>
+
+<p>It is always possible to rewrite code which uses conditionals
+inside macros so that it doesn't. You could write the above
+example</p>
+<pre>
+#ifdef PLATFORM1
+ memcpy(dest, src, 12);
+#else
+ memcpy(dest, src, 24);
+#endif
+</pre>
+<p>This is a bit more typing, but I personally think it's better style
+in addition to being more portable.
<hr>
<a name="misc"></a>
@@ -855,15 +959,17 @@ bison, and xgettext.</p>
correct. This causes problems for generated files as "make" may think
those generated files are out of date and try to regenerate them.</p>
-<p>An easy way to work around this problem is to use the egcs_update
-script in the contrib subdirectory of egcs, which handles this
-transparently without requiring installation of any additional tools.</p>
+<p>An easy way to work around this problem is to use the <CODE>gcc_update
+</CODE> script in the contrib subdirectory of GCC, which handles this
+transparently without requiring installation of any additional tools.
+(Note: Up to and including GCC 2.95 this script was called <CODE>egcs_update
+</CODE>.)</p>
<p>When building from diffs or CVS or if you modified some sources,
you may also need to obtain development versions of some GNU tools, as
the production versions do not necessarily handle all features needed
-to rebuild egcs.</p>
+to rebuild GCC.</p>
<p>Autoconf is available from
<a href="http://sourceware.cygnus.com/autoconf/">
@@ -922,7 +1028,7 @@ out the latest snapshot.</p>
<p>We use CVS tags to identify each snapshot we make. Snapshot tags have
the form "egcs_ss_YYYYMMDD". In addition, the latest official snapshot always
-has the tag "egcs_latest_snapshot".</p>
+has the tag "gcc_latest_snapshot".</p>
<hr>
@@ -1033,7 +1139,7 @@ is declared pure-virtual [class.dtor]/7.</p>
<hr>
<p><a href="index.html">Return to the GCC home page</a></p>
-<p><i>Last modified: August 15, 1999</i></p>
+<p><i>Last modified: October 19, 1999</i></p>
</body>
</html>
diff --git a/gnu/egcs/gcc/c-lang.c b/gnu/egcs/gcc/c-lang.c
index 4c554115b7c..7da67986af1 100644
--- a/gnu/egcs/gcc/c-lang.c
+++ b/gnu/egcs/gcc/c-lang.c
@@ -175,7 +175,9 @@ finish_file ()
{
tree fnname = get_file_function_name ('I');
start_function (void_list_node,
- build_parse_node (CALL_EXPR, fnname, void_list_node,
+ build_parse_node (CALL_EXPR, fnname,
+ tree_cons (NULL_TREE, NULL_TREE,
+ void_list_node),
NULL_TREE),
NULL_TREE, NULL_TREE, 0);
fnname = DECL_ASSEMBLER_NAME (current_function_decl);
@@ -195,7 +197,9 @@ finish_file ()
{
tree fnname = get_file_function_name ('D');
start_function (void_list_node,
- build_parse_node (CALL_EXPR, fnname, void_list_node,
+ build_parse_node (CALL_EXPR, fnname,
+ tree_cons (NULL_TREE, NULL_TREE,
+ void_list_node),
NULL_TREE),
NULL_TREE, NULL_TREE, 0);
fnname = DECL_ASSEMBLER_NAME (current_function_decl);
diff --git a/gnu/egcs/gcc/config/arm/linux-elf.h b/gnu/egcs/gcc/config/arm/linux-elf.h
index de45e1c4b53..e5b4de1c13b 100644
--- a/gnu/egcs/gcc/config/arm/linux-elf.h
+++ b/gnu/egcs/gcc/config/arm/linux-elf.h
@@ -22,6 +22,9 @@ Boston, MA 02111-1307, USA. */
/* Run-time Target Specification. */
#define TARGET_VERSION fputs (" (ARM GNU/Linux with ELF)", stderr);
+/* Do not assume anything about header files. */
+#define NO_IMPLICIT_EXTERN_C
+
/* We have libgcc2. */
#define HAVE_ATEXIT
diff --git a/gnu/egcs/gcc/config/i386/sol2.h b/gnu/egcs/gcc/config/i386/sol2.h
index cc5a089229f..b254a10f2ea 100644
--- a/gnu/egcs/gcc/config/i386/sol2.h
+++ b/gnu/egcs/gcc/config/i386/sol2.h
@@ -21,6 +21,33 @@ Boston, MA 02111-1307, USA. */
#include "i386/sysv4.h"
+/* We use stabs-in-elf for debugging, because that is what the native
+ toolchain uses. */
+#undef PREFERRED_DEBUGGING_TYPE
+#define PREFERRED_DEBUGGING_TYPE DBX_DEBUG
+
+#if ! GAS_REJECTS_MINUS_S
+
+/*
+ Changed from config/svr4.h in the following ways:
+
+ - Removed -Yd (neither the sun bundled assembler nor gas accept it).
+ - Added "-s" so that stabs are not discarded.
+*/
+
+#undef ASM_SPEC
+#define ASM_SPEC \
+ "%{v:-V} %{Qy:} %{!Qn:-Qy} %{n} %{T} %{Ym,*} %{Wa,*:%*} -s"
+
+#else /* GAS_REJECTS_MINUS_S */
+
+/* Same as above, except for -s, unsupported by GNU as. */
+#undef ASM_SPEC
+#define ASM_SPEC \
+ "%{v:-V} %{Qy:} %{!Qn:-Qy} %{n} %{T} %{Ym,*} %{Wa,*:%*}"
+
+#endif /* GAS_REJECTS_MINUS_S */
+
/* The Solaris 2.0 x86 linker botches alignment of code sections.
It tries to align to a 16 byte boundary by padding with 0x00000090
ints, rather than 0x90 bytes (nop). This generates trash in the
diff --git a/gnu/egcs/gcc/config/i386/sol2gas.h b/gnu/egcs/gcc/config/i386/sol2gas.h
new file mode 100644
index 00000000000..7f2c9629d7c
--- /dev/null
+++ b/gnu/egcs/gcc/config/i386/sol2gas.h
@@ -0,0 +1,11 @@
+/* Definitions of target machine for GNU compiler, for SPARC running
+ Solaris 2 with GNU as up to 2.9.5.0.12.
+
+ Copyright (C) 1999 Free Software Foundation, Inc.
+*/
+
+#ifndef GAS_DOES_NOT_SUPPORT_MINUS_S
+#define GAS_DOES_NOT_SUPPORT_MINUS_S 1
+#endif
+
+#include "i386/sol2.h"
diff --git a/gnu/egcs/gcc/config/pa/pa.c b/gnu/egcs/gcc/config/pa/pa.c
index fa1287e55e5..66ea980492d 100644
--- a/gnu/egcs/gcc/config/pa/pa.c
+++ b/gnu/egcs/gcc/config/pa/pa.c
@@ -1129,8 +1129,12 @@ emit_move_sequence (operands, mode, scratch_reg)
&& GET_CODE (SUBREG_REG (operand0)) == REG
&& REGNO (SUBREG_REG (operand0)) >= FIRST_PSEUDO_REGISTER)
{
- SUBREG_REG (operand0) = reg_equiv_mem[REGNO (SUBREG_REG (operand0))];
- operand0 = alter_subreg (operand0);
+ /* We must not alter SUBREG_WORD (operand0) since that would confuse
+ the code which tracks sets/uses for delete_output_reload. */
+ rtx temp = gen_rtx_SUBREG (GET_MODE (operand0),
+ reg_equiv_mem [REGNO (SUBREG_REG (operand0))],
+ SUBREG_WORD (operand0));
+ operand0 = alter_subreg (temp);
}
if (scratch_reg
@@ -1142,8 +1146,12 @@ emit_move_sequence (operands, mode, scratch_reg)
&& GET_CODE (SUBREG_REG (operand1)) == REG
&& REGNO (SUBREG_REG (operand1)) >= FIRST_PSEUDO_REGISTER)
{
- SUBREG_REG (operand1) = reg_equiv_mem[REGNO (SUBREG_REG (operand1))];
- operand1 = alter_subreg (operand1);
+ /* We must not alter SUBREG_WORD (operand0) since that would confuse
+ the code which tracks sets/uses for delete_output_reload. */
+ rtx temp = gen_rtx_SUBREG (GET_MODE (operand1),
+ reg_equiv_mem [REGNO (SUBREG_REG (operand1))],
+ SUBREG_WORD (operand1));
+ operand1 = alter_subreg (temp);
}
if (scratch_reg && reload_in_progress && GET_CODE (operand0) == MEM
diff --git a/gnu/egcs/gcc/config/rs6000/rs6000.md b/gnu/egcs/gcc/config/rs6000/rs6000.md
index bb23a1a32a2..9b3c4306f77 100644
--- a/gnu/egcs/gcc/config/rs6000/rs6000.md
+++ b/gnu/egcs/gcc/config/rs6000/rs6000.md
@@ -4335,7 +4335,8 @@
(clobber (match_operand 3 "gpc_reg_operand" ""))
(clobber (reg:DI 76))]
"TARGET_HARD_FLOAT"
- [(set (subreg:SI (match_dup 2) 0)
+ [(clobber (match_dup 2))
+ (set (subreg:SI (match_dup 2) 0)
(fix:SI (match_operand:DF 1 "gpc_reg_operand" "")))
(set (match_dup 3)
(unspec [(const_int 0)] 11))
@@ -9009,7 +9010,7 @@
(eq:SI (match_operand:SI 1 "gpc_reg_operand" "%r,r,r,r,r")
(match_operand:SI 2 "reg_or_cint_operand" "r,O,K,J,I")))
(clobber (match_scratch:SI 3 "=r,&r,r,r,r"))]
- ""
+ "! TARGET_POWERPC64"
"@
xor %0,%1,%2\;{sfi|subfic} %3,%0,0\;{ae|adde} %0,%3,%0
{sfi|subfic} %3,%1,0\;{ae|adde} %0,%3,%1
@@ -9041,7 +9042,7 @@
(set (match_operand:SI 0 "gpc_reg_operand" "=r,r,r,r,r")
(eq:SI (match_dup 1) (match_dup 2)))
(clobber (match_scratch:SI 3 "=r,&r,r,r,r"))]
- ""
+ "! TARGET_POWERPC64"
"@
xor %0,%1,%2\;{sfi|subfic} %3,%0,0\;{ae.|adde.} %0,%3,%0
{sfi|subfic} %3,%1,0\;{ae.|adde.} %0,%3,%1
@@ -9091,7 +9092,7 @@
(match_operand:SI 2 "reg_or_cint_operand" "r,O,K,J,I"))
(match_operand:SI 3 "gpc_reg_operand" "r,r,r,r,r")))
(clobber (match_scratch:SI 4 "=&r,&r,&r,&r,&r"))]
- ""
+ "! TARGET_POWERPC64"
"@
xor %4,%1,%2\;{sfi|subfic} %4,%4,0\;{aze|addze} %0,%3
{sfi|subfic} %4,%1,0\;{aze|addze} %0,%3
@@ -9109,7 +9110,7 @@
(match_operand:SI 3 "gpc_reg_operand" "r,r,r,r,r"))
(const_int 0)))
(clobber (match_scratch:SI 4 "=&r,&r,&r,&r,&r"))]
- ""
+ "! TARGET_POWERPC64"
"@
xor %4,%1,%2\;{sfi|subfic} %4,%4,0\;{aze.|addze.} %4,%3
{sfi|subfic} %4,%1,0\;{aze.|addze.} %4,%3
@@ -9130,7 +9131,7 @@
(set (match_operand:SI 0 "gpc_reg_operand" "=r,r,r,r,r")
(plus:SI (eq:SI (match_dup 1) (match_dup 2)) (match_dup 3)))
(clobber (match_scratch:SI 4 "=&r,&r,&r,&r,&r"))]
- ""
+ "! TARGET_POWERPC64"
"@
xor %4,%1,%2\;{sfi|subfic} %4,%4,0\;{aze.|addze.} %0,%3
{sfi|subfic} %4,%1,0\;{aze.|addze.} %0,%3
@@ -9144,7 +9145,7 @@
[(set (match_operand:SI 0 "gpc_reg_operand" "=r,r,r,r,r")
(neg:SI (eq:SI (match_operand:SI 1 "gpc_reg_operand" "%r,r,r,r,r")
(match_operand:SI 2 "reg_or_cint_operand" "r,O,K,J,I"))))]
- ""
+ "! TARGET_POWERPC64"
"@
xor %0,%1,%2\;{ai|addic} %0,%0,-1\;{sfe|subfe} %0,%0,%0
{ai|addic} %0,%1,-1\;{sfe|subfe} %0,%0,%0
@@ -9181,7 +9182,7 @@
(const_int 31))
(match_operand:SI 2 "gpc_reg_operand" "r")))
(clobber (match_scratch:SI 3 "=&r"))]
- ""
+ "! TARGET_POWERPC64"
"{ai|addic} %3,%1,-1\;{aze|addze} %0,%2"
[(set_attr "length" "8")])
@@ -9205,7 +9206,7 @@
(match_operand:SI 2 "gpc_reg_operand" "r"))
(const_int 0)))
(clobber (match_scratch:SI 3 "=&r"))]
- ""
+ "! TARGET_POWERPC64"
"{ai|addic} %3,%1,-1\;{aze.|addze.} %3,%2"
[(set_attr "type" "compare")
(set_attr "length" "8")])
@@ -9236,7 +9237,7 @@
(plus:SI (lshiftrt:SI (neg:SI (abs:SI (match_dup 1))) (const_int 31))
(match_dup 2)))
(clobber (match_scratch:SI 3 "=&r"))]
- ""
+ "! TARGET_POWERPC64"
"{ai|addic} %3,%1,-1\;{aze.|addze.} %0,%2"
[(set_attr "type" "compare")
(set_attr "length" "8")])
@@ -9343,11 +9344,32 @@
[(set (match_operand:SI 0 "gpc_reg_operand" "=r")
(leu:SI (match_operand:SI 1 "gpc_reg_operand" "r")
(match_operand:SI 2 "reg_or_short_operand" "rI")))]
- ""
+ "! TARGET_POWERPC64"
"{sf%I2|subf%I2c} %0,%1,%2\;{cal %0,0(0)|li %0,0}\;{ae|adde} %0,%0,%0"
[(set_attr "length" "12")])
(define_insn ""
+ [(set (match_operand:DI 0 "gpc_reg_operand" "=r")
+ (leu:DI (match_operand:DI 1 "gpc_reg_operand" "r")
+ (match_operand:DI 2 "reg_or_short_operand" "rI")))]
+ "TARGET_POWERPC64"
+ "subf%I2c %0,%1,%2\;li %0,0\;adde %0,%0,%0"
+ [(set_attr "length" "12")])
+
+(define_insn ""
+ [(set (match_operand:CC 3 "cc_reg_operand" "=x")
+ (compare:CC
+ (leu:DI (match_operand:DI 1 "gpc_reg_operand" "r")
+ (match_operand:DI 2 "reg_or_short_operand" "rI"))
+ (const_int 0)))
+ (set (match_operand:DI 0 "gpc_reg_operand" "=r")
+ (leu:DI (match_dup 1) (match_dup 2)))]
+ "TARGET_POWERPC64"
+ "subf%I2c %0,%1,%2\;li %0,0\;adde. %0,%0,%0"
+ [(set_attr "type" "compare")
+ (set_attr "length" "12")])
+
+(define_insn ""
[(set (match_operand:CC 3 "cc_reg_operand" "=x")
(compare:CC
(leu:SI (match_operand:SI 1 "gpc_reg_operand" "r")
@@ -9355,18 +9377,31 @@
(const_int 0)))
(set (match_operand:SI 0 "gpc_reg_operand" "=r")
(leu:SI (match_dup 1) (match_dup 2)))]
- ""
+ "! TARGET_POWERPC64"
"{sf%I2|subf%I2c} %0,%1,%2\;{cal %0,0(0)|li %0,0}\;{ae.|adde.} %0,%0,%0"
[(set_attr "type" "compare")
(set_attr "length" "12")])
(define_insn ""
+ [(set (match_operand:CC 3 "cc_reg_operand" "=x")
+ (compare:CC
+ (leu:DI (match_operand:DI 1 "gpc_reg_operand" "r")
+ (match_operand:DI 2 "reg_or_short_operand" "rI"))
+ (const_int 0)))
+ (set (match_operand:DI 0 "gpc_reg_operand" "=r")
+ (leu:DI (match_dup 1) (match_dup 2)))]
+ "TARGET_POWERPC64"
+ "subf%I2c %0,%1,%2\;li %0,0\;adde. %0,%0,%0"
+ [(set_attr "type" "compare")
+ (set_attr "length" "12")])
+
+(define_insn ""
[(set (match_operand:SI 0 "gpc_reg_operand" "=r")
(plus:SI (leu:SI (match_operand:SI 1 "gpc_reg_operand" "r")
(match_operand:SI 2 "reg_or_short_operand" "rI"))
(match_operand:SI 3 "gpc_reg_operand" "r")))
(clobber (match_scratch:SI 4 "=&r"))]
- ""
+ "! TARGET_POWERPC64"
"{sf%I2|subf%I2c} %4,%1,%2\;{aze|addze} %0,%3"
[(set_attr "length" "8")])
@@ -9378,7 +9413,7 @@
(match_operand:SI 3 "gpc_reg_operand" "r"))
(const_int 0)))
(clobber (match_scratch:SI 4 "=&r"))]
- ""
+ "! TARGET_POWERPC64"
"{sf%I2|subf%I2c} %4,%1,%2\;{aze.|addze.} %4,%3"
[(set_attr "type" "compare")
(set_attr "length" "8")])
@@ -9393,7 +9428,7 @@
(set (match_operand:SI 0 "gpc_reg_operand" "=r")
(plus:SI (leu:SI (match_dup 1) (match_dup 2)) (match_dup 3)))
(clobber (match_scratch:SI 4 "=&r"))]
- ""
+ "! TARGET_POWERPC64"
"{sf%I2|subf%I2c} %4,%1,%2\;{aze.|addze.} %0,%3"
[(set_attr "type" "compare")
(set_attr "length" "8")])
@@ -9402,7 +9437,7 @@
[(set (match_operand:SI 0 "gpc_reg_operand" "=r")
(neg:SI (leu:SI (match_operand:SI 1 "gpc_reg_operand" "r")
(match_operand:SI 2 "reg_or_short_operand" "rI"))))]
- ""
+ "! TARGET_POWERPC64"
"{sf%I2|subf%I2c} %0,%1,%2\;{sfe|subfe} %0,%0,%0\;nand %0,%0,%0"
[(set_attr "length" "12")])
@@ -9413,7 +9448,7 @@
(match_operand:SI 2 "reg_or_short_operand" "rI")))
(match_operand:SI 3 "gpc_reg_operand" "r")))
(clobber (match_scratch:SI 4 "=&r"))]
- ""
+ "! TARGET_POWERPC64"
"{sf%I2|subf%I2c} %4,%1,%2\;{sfe|subfe} %4,%4,%4\;andc %0,%3,%4"
[(set_attr "length" "12")])
@@ -9426,7 +9461,7 @@
(match_operand:SI 3 "gpc_reg_operand" "r"))
(const_int 0)))
(clobber (match_scratch:SI 4 "=&r"))]
- ""
+ "! TARGET_POWERPC64"
"{sf%I2|subf%I2c} %4,%1,%2\;{sfe|subfe} %4,%4,%4\;andc. %4,%3,%4"
[(set_attr "type" "compare")
(set_attr "length" "12")])
@@ -9442,7 +9477,7 @@
(set (match_operand:SI 0 "gpc_reg_operand" "=r")
(and:SI (neg:SI (leu:SI (match_dup 1) (match_dup 2))) (match_dup 3)))
(clobber (match_scratch:SI 4 "=&r"))]
- ""
+ "! TARGET_POWERPC64"
"{sf%I2|subf%I2c} %4,%1,%2\;{sfe|subfe} %4,%4,%4\;andc. %0,%3,%4"
[(set_attr "type" "compare")
(set_attr "length" "12")])
@@ -9518,7 +9553,7 @@
[(set (match_operand:SI 0 "gpc_reg_operand" "=r,r")
(ltu:SI (match_operand:SI 1 "gpc_reg_operand" "r,r")
(match_operand:SI 2 "reg_or_neg_short_operand" "r,P")))]
- ""
+ "! TARGET_POWERPC64"
"@
{sf|subfc} %0,%2,%1\;{sfe|subfe} %0,%0,%0\;neg %0,%0
{ai|addic} %0,%1,%n2\;{sfe|subfe} %0,%0,%0\;neg %0,%0"
@@ -9532,7 +9567,7 @@
(const_int 0)))
(set (match_operand:SI 0 "gpc_reg_operand" "=r,r")
(ltu:SI (match_dup 1) (match_dup 2)))]
- ""
+ "! TARGET_POWERPC64"
"@
{sf|subfc} %0,%2,%1\;{sfe|subfe} %0,%0,%0\;neg. %0,%0
{ai|addic} %0,%1,%n2\;{sfe|subfe} %0,%0,%0\;neg. %0,%0"
@@ -9545,7 +9580,7 @@
(match_operand:SI 2 "reg_or_neg_short_operand" "r,P"))
(match_operand:SI 3 "reg_or_short_operand" "rI,rI")))
(clobber (match_scratch:SI 4 "=&r,&r"))]
- ""
+ "! TARGET_POWERPC64"
"@
{sf|subfc} %4,%2,%1\;{sfe|subfe} %4,%4,%4\;{sf%I3|subf%I3c} %0,%4,%3
{ai|addic} %4,%1,%n2\;{sfe|subfe} %4,%4,%4\;{sf%I3|subf%I3c} %0,%4,%3"
@@ -9559,7 +9594,7 @@
(match_operand:SI 3 "gpc_reg_operand" "r,r"))
(const_int 0)))
(clobber (match_scratch:SI 4 "=&r,&r"))]
- ""
+ "! TARGET_POWERPC64"
"@
{sf|subfc} %4,%2,%1\;{sfe|subfe} %4,%4,%4\;{sf.|subfc.} %4,%4,%3
{ai|addic} %4,%1,%n2\;{sfe|subfe} %4,%4,%4\;{sf.|subfc.} %4,%4,%3"
@@ -9576,7 +9611,7 @@
(set (match_operand:SI 0 "gpc_reg_operand" "=r,r")
(plus:SI (ltu:SI (match_dup 1) (match_dup 2)) (match_dup 3)))
(clobber (match_scratch:SI 4 "=&r,&r"))]
- ""
+ "! TARGET_POWERPC64"
"@
{sf|subfc} %4,%2,%1\;{sfe|subfe} %4,%4,%4\;{sf.|subfc.} %0,%4,%3
{ai|addic} %4,%1,%n2\;{sfe|subfe} %4,%4,%4\;{sf.|subfc.} %0,%4,%3"
@@ -9587,7 +9622,7 @@
[(set (match_operand:SI 0 "gpc_reg_operand" "=r,r")
(neg:SI (ltu:SI (match_operand:SI 1 "gpc_reg_operand" "r,r")
(match_operand:SI 2 "reg_or_neg_short_operand" "r,P"))))]
- ""
+ "! TARGET_POWERPC64"
"@
{sf|subfc} %0,%2,%1\;{sfe|subfe} %0,%0,%0
{ai|addic} %0,%1,%n2\;{sfe|subfe} %0,%0,%0"
@@ -9663,6 +9698,7 @@
[(set_attr "length" "12")])
;; This is (and (neg (ge X (const_int 0))) Y).
+;; srawi sign-extends, so these patterrns are 64-bit safe.
(define_insn ""
[(set (match_operand:SI 0 "gpc_reg_operand" "=r")
(and:SI (neg:SI
@@ -9676,6 +9712,18 @@
[(set_attr "length" "8")])
(define_insn ""
+ [(set (match_operand:DI 0 "gpc_reg_operand" "=r")
+ (and:DI (neg:DI
+ (lshiftrt:DI
+ (not:DI (match_operand:DI 1 "gpc_reg_operand" "r"))
+ (const_int 63)))
+ (match_operand:DI 2 "gpc_reg_operand" "r")))
+ (clobber (match_scratch:DI 3 "=&r"))]
+ "TARGET_POWERPC64"
+ "sradi %3,%1,63\;andc %0,%2,%3"
+ [(set_attr "length" "8")])
+
+(define_insn ""
[(set (match_operand:CC 0 "cc_reg_operand" "=x")
(compare:CC
(and:SI (neg:SI
@@ -9691,6 +9739,21 @@
(set_attr "length" "8")])
(define_insn ""
+ [(set (match_operand:CC 0 "cc_reg_operand" "=x")
+ (compare:CC
+ (and:DI (neg:DI
+ (lshiftrt:DI
+ (not:DI (match_operand:DI 1 "gpc_reg_operand" "r"))
+ (const_int 63)))
+ (match_operand:DI 2 "gpc_reg_operand" "r"))
+ (const_int 0)))
+ (clobber (match_scratch:DI 3 "=&r"))]
+ "TARGET_POWERPC64"
+ "sradi %3,%1,63\;andc. %3,%2,%3"
+ [(set_attr "type" "compare")
+ (set_attr "length" "8")])
+
+(define_insn ""
[(set (match_operand:CC 4 "cc_reg_operand" "=x")
(compare:CC
(and:SI (neg:SI
@@ -9710,16 +9773,45 @@
(set_attr "length" "8")])
(define_insn ""
+ [(set (match_operand:CC 4 "cc_reg_operand" "=x")
+ (compare:CC
+ (and:DI (neg:DI
+ (lshiftrt:DI
+ (not:DI (match_operand:DI 1 "gpc_reg_operand" "r"))
+ (const_int 63)))
+ (match_operand:DI 2 "gpc_reg_operand" "r"))
+ (const_int 0)))
+ (set (match_operand:DI 0 "gpc_reg_operand" "=r")
+ (and:DI (neg:DI (lshiftrt:SI (not:DI (match_dup 1))
+ (const_int 63)))
+ (match_dup 2)))
+ (clobber (match_scratch:SI 3 "=&r"))]
+ "TARGET_POWERPC64"
+ "sradi %3,%1,63\;andc. %0,%2,%3"
+ [(set_attr "type" "compare")
+ (set_attr "length" "8")])
+
+(define_insn ""
[(set (match_operand:SI 0 "gpc_reg_operand" "=r,r")
(geu:SI (match_operand:SI 1 "gpc_reg_operand" "r,r")
(match_operand:SI 2 "reg_or_neg_short_operand" "r,P")))]
- ""
+ "! TARGET_POWERPC64"
"@
{sf|subfc} %0,%2,%1\;{cal %0,0(0)|li %0,0}\;{ae|adde} %0,%0,%0
{ai|addic} %0,%1,%n2\;{cal %0,0(0)|li %0,0}\;{ae|adde} %0,%0,%0"
[(set_attr "length" "12")])
(define_insn ""
+ [(set (match_operand:DI 0 "gpc_reg_operand" "=r,r")
+ (geu:DI (match_operand:DI 1 "gpc_reg_operand" "r,r")
+ (match_operand:DI 2 "reg_or_neg_short_operand" "r,P")))]
+ "TARGET_POWERPC64"
+ "@
+ subfc %0,%2,%1\;li %0,0\;adde %0,%0,%0
+ addic %0,%1,%n2\;li %0,0\;adde %0,%0,%0"
+ [(set_attr "length" "12")])
+
+(define_insn ""
[(set (match_operand:CC 3 "cc_reg_operand" "=x,x")
(compare:CC
(geu:SI (match_operand:SI 1 "gpc_reg_operand" "r,r")
@@ -9727,7 +9819,7 @@
(const_int 0)))
(set (match_operand:SI 0 "gpc_reg_operand" "=r,r")
(geu:SI (match_dup 1) (match_dup 2)))]
- ""
+ "! TARGET_POWERPC64"
"@
{sf|subfc} %0,%2,%1\;{cal %0,0(0)|li %0,0}\;{ae.|adde.} %0,%0,%0
{ai|addic} %0,%1,%n2\;{cal %0,0(0)|li %0,0}\;{ae.|adde.} %0,%0,%0"
@@ -9735,12 +9827,27 @@
(set_attr "length" "12")])
(define_insn ""
+ [(set (match_operand:CC 3 "cc_reg_operand" "=x,x")
+ (compare:CC
+ (geu:DI (match_operand:DI 1 "gpc_reg_operand" "r,r")
+ (match_operand:DI 2 "reg_or_neg_short_operand" "r,P"))
+ (const_int 0)))
+ (set (match_operand:DI 0 "gpc_reg_operand" "=r,r")
+ (geu:DI (match_dup 1) (match_dup 2)))]
+ "TARGET_POWERPC64"
+ "@
+ subfc %0,%2,%1\;li %0,0\;adde. %0,%0,%0
+ addic %0,%1,%n2\;li %0,0\;adde. %0,%0,%0"
+ [(set_attr "type" "compare")
+ (set_attr "length" "12")])
+
+(define_insn ""
[(set (match_operand:SI 0 "gpc_reg_operand" "=r,r")
(plus:SI (geu:SI (match_operand:SI 1 "gpc_reg_operand" "r,r")
(match_operand:SI 2 "reg_or_neg_short_operand" "r,P"))
(match_operand:SI 3 "gpc_reg_operand" "r,r")))
(clobber (match_scratch:SI 4 "=&r,&r"))]
- ""
+ "! TARGET_POWERPC64"
"@
{sf|subfc} %4,%2,%1\;{aze|addze} %0,%3
{ai|addic} %4,%1,%n2\;{aze|addze} %0,%3"
@@ -9754,7 +9861,7 @@
(match_operand:SI 3 "gpc_reg_operand" "r,r"))
(const_int 0)))
(clobber (match_scratch:SI 4 "=&r,&r"))]
- ""
+ "! TARGET_POWERPC64"
"@
{sf|subfc} %4,%2,%1\;{aze.|addze.} %4,%3
{ai|addic} %4,%1,%n2\;{aze.|addze.} %4,%3"
@@ -9771,7 +9878,7 @@
(set (match_operand:SI 0 "gpc_reg_operand" "=r,r")
(plus:SI (geu:SI (match_dup 1) (match_dup 2)) (match_dup 3)))
(clobber (match_scratch:SI 4 "=&r,&r"))]
- ""
+ "! TARGET_POWERPC64"
"@
{sf|subfc} %4,%2,%1\;{aze.|addze.} %0,%3
{ai|addic} %4,%1,%n2\;{aze.|addze.} %0,%3"
@@ -9782,7 +9889,7 @@
[(set (match_operand:SI 0 "gpc_reg_operand" "=r,r")
(neg:SI (geu:SI (match_operand:SI 1 "gpc_reg_operand" "r,r")
(match_operand:SI 2 "reg_or_short_operand" "r,I"))))]
- ""
+ "! TARGET_POWERPC64"
"@
{sf|subfc} %0,%2,%1\;{sfe|subfe} %0,%0,%0\;nand %0,%0,%0
{sfi|subfic} %0,%1,-1\;{a%I2|add%I2c} %0,%0,%2\;{sfe|subfe} %0,%0,%0"
@@ -9795,7 +9902,7 @@
(match_operand:SI 2 "reg_or_neg_short_operand" "r,P")))
(match_operand:SI 3 "gpc_reg_operand" "r,r")))
(clobber (match_scratch:SI 4 "=&r,&r"))]
- ""
+ "! TARGET_POWERPC64"
"@
{sf|subfc} %4,%2,%1\;{sfe|subfe} %4,%4,%4\;andc %0,%3,%4
{ai|addic} %4,%1,%n2\;{sfe|subfe} %4,%4,%4\;andc %0,%3,%4"
@@ -9810,7 +9917,7 @@
(match_operand:SI 3 "gpc_reg_operand" "r,r"))
(const_int 0)))
(clobber (match_scratch:SI 4 "=&r,&r"))]
- ""
+ "! TARGET_POWERPC64"
"@
{sf|subfc} %4,%2,%1\;{sfe|subfe} %4,%4,%4\;andc. %4,%3,%4
{ai|addic} %4,%1,%n2\;{sfe|subfe} %4,%4,%4\;andc. %4,%3,%4"
@@ -9828,7 +9935,7 @@
(set (match_operand:SI 0 "gpc_reg_operand" "=r,r")
(and:SI (neg:SI (geu:SI (match_dup 1) (match_dup 2))) (match_dup 3)))
(clobber (match_scratch:SI 4 "=&r,&r"))]
- ""
+ "! TARGET_POWERPC64"
"@
{sf|subfc} %4,%2,%1\;{sfe|subfe} %4,%4,%4\;andc. %0,%3,%4
{ai|addic} %4,%1,%n2\;{sfe|subfe} %4,%4,%4\;andc. %0,%3,%4"
@@ -9839,11 +9946,19 @@
[(set (match_operand:SI 0 "gpc_reg_operand" "=r")
(gt:SI (match_operand:SI 1 "gpc_reg_operand" "r")
(const_int 0)))]
- ""
+ "! TARGET_POWERPC64"
"{sfi|subfic} %0,%1,0\;{ame|addme} %0,%0\;{sri|srwi} %0,%0,31"
[(set_attr "length" "12")])
(define_insn ""
+ [(set (match_operand:DI 0 "gpc_reg_operand" "=r")
+ (gt:DI (match_operand:DI 1 "gpc_reg_operand" "r")
+ (const_int 0)))]
+ "TARGET_POWERPC64"
+ "subfic %0,%1,0\;addme %0,%0\;srdi %0,%0,63"
+ [(set_attr "length" "12")])
+
+(define_insn ""
[(set (match_operand:CC 2 "cc_reg_operand" "=x")
(compare:CC
(gt:SI (match_operand:SI 1 "gpc_reg_operand" "r")
@@ -9851,12 +9966,25 @@
(const_int 0)))
(set (match_operand:SI 0 "gpc_reg_operand" "=r")
(gt:SI (match_dup 1) (const_int 0)))]
- ""
+ "! TARGET_POWERPC64"
"{sfi|subfic} %0,%1,0\;{ame|addme} %0,%0\;{sri.|srwi.} %0,%0,31"
[(set_attr "type" "delayed_compare")
(set_attr "length" "12")])
(define_insn ""
+ [(set (match_operand:CC 2 "cc_reg_operand" "=x")
+ (compare:CC
+ (gt:DI (match_operand:DI 1 "gpc_reg_operand" "r")
+ (const_int 0))
+ (const_int 0)))
+ (set (match_operand:DI 0 "gpc_reg_operand" "=r")
+ (gt:DI (match_dup 1) (const_int 0)))]
+ "TARGET_POWERPC64"
+ "subfic %0,%1,0\;addme %0,%0\;srdi. %0,%0,63"
+ [(set_attr "type" "delayed_compare")
+ (set_attr "length" "12")])
+
+(define_insn ""
[(set (match_operand:SI 0 "gpc_reg_operand" "=r")
(gt:SI (match_operand:SI 1 "gpc_reg_operand" "r")
(match_operand:SI 2 "reg_or_short_operand" "r")))]
@@ -9883,11 +10011,21 @@
(const_int 0))
(match_operand:SI 2 "gpc_reg_operand" "r")))
(clobber (match_scratch:SI 3 "=&r"))]
- ""
+ "! TARGET_POWERPC64"
"{a|addc} %3,%1,%1\;{sfe|subfe} %3,%1,%3\;{aze|addze} %0,%2"
[(set_attr "length" "12")])
(define_insn ""
+ [(set (match_operand:DI 0 "gpc_reg_operand" "=r")
+ (plus:DI (gt:DI (match_operand:DI 1 "gpc_reg_operand" "r")
+ (const_int 0))
+ (match_operand:DI 2 "gpc_reg_operand" "r")))
+ (clobber (match_scratch:DI 3 "=&r"))]
+ "TARGET_POWERPC64"
+ "addc %3,%1,%1\;subfe %3,%1,%3\;addze %0,%2"
+ [(set_attr "length" "12")])
+
+(define_insn ""
[(set (match_operand:CC 0 "cc_reg_operand" "=x")
(compare:CC
(plus:SI (gt:SI (match_operand:SI 1 "gpc_reg_operand" "r")
@@ -9895,12 +10033,25 @@
(match_operand:SI 2 "gpc_reg_operand" "r"))
(const_int 0)))
(clobber (match_scratch:SI 3 "=&r"))]
- ""
+ "! TARGET_POWERPC64"
"{a|addc} %3,%1,%1\;{sfe|subfe} %3,%1,%3\;{aze.|addze.} %3,%2"
[(set_attr "type" "compare")
(set_attr "length" "12")])
(define_insn ""
+ [(set (match_operand:CC 0 "cc_reg_operand" "=x")
+ (compare:CC
+ (plus:DI (gt:DI (match_operand:DI 1 "gpc_reg_operand" "r")
+ (const_int 0))
+ (match_operand:DI 2 "gpc_reg_operand" "r"))
+ (const_int 0)))
+ (clobber (match_scratch:DI 3 "=&r"))]
+ "TARGET_POWERPC64"
+ "addc %3,%1,%1\;subfe %3,%1,%3\;addze. %3,%2"
+ [(set_attr "type" "compare")
+ (set_attr "length" "12")])
+
+(define_insn ""
[(set (match_operand:CC 4 "cc_reg_operand" "=x")
(compare:CC
(plus:SI (gt:SI (match_operand:SI 1 "gpc_reg_operand" "r")
@@ -9910,12 +10061,27 @@
(set (match_operand:SI 0 "gpc_reg_operand" "=r")
(plus:SI (gt:SI (match_dup 1) (const_int 0)) (match_dup 2)))
(clobber (match_scratch:SI 3 "=&r"))]
- ""
+ "! TARGET_POWERPC64"
"{a|addc} %3,%1,%1\;{sfe|subfe} %3,%1,%3\;{aze.|addze.} %0,%2"
[(set_attr "type" "compare")
(set_attr "length" "12")])
(define_insn ""
+ [(set (match_operand:CC 4 "cc_reg_operand" "=x")
+ (compare:CC
+ (plus:DI (gt:DI (match_operand:DI 1 "gpc_reg_operand" "r")
+ (const_int 0))
+ (match_operand:DI 2 "gpc_reg_operand" "r"))
+ (const_int 0)))
+ (set (match_operand:DI 0 "gpc_reg_operand" "=r")
+ (plus:DI (gt:DI (match_dup 1) (const_int 0)) (match_dup 2)))
+ (clobber (match_scratch:DI 3 "=&r"))]
+ "TARGET_POWERPC64"
+ "addc %3,%1,%1\;subfe %3,%1,%3\;addze. %0,%2"
+ [(set_attr "type" "compare")
+ (set_attr "length" "12")])
+
+(define_insn ""
[(set (match_operand:SI 0 "gpc_reg_operand" "=r")
(plus:SI (gt:SI (match_operand:SI 1 "gpc_reg_operand" "r")
(match_operand:SI 2 "reg_or_short_operand" "r"))
@@ -9957,11 +10123,19 @@
[(set (match_operand:SI 0 "gpc_reg_operand" "=r")
(neg:SI (gt:SI (match_operand:SI 1 "gpc_reg_operand" "r")
(const_int 0))))]
- ""
+ "! TARGET_POWERPC64"
"{sfi|subfic} %0,%1,0\;{ame|addme} %0,%0\;{srai|srawi} %0,%0,31"
[(set_attr "length" "12")])
(define_insn ""
+ [(set (match_operand:DI 0 "gpc_reg_operand" "=r")
+ (neg:DI (gt:DI (match_operand:DI 1 "gpc_reg_operand" "r")
+ (const_int 0))))]
+ "TARGET_POWERPC64"
+ "subfic %0,%1,0\;addme %0,%0\;sradi} %0,%0,63"
+ [(set_attr "length" "12")])
+
+(define_insn ""
[(set (match_operand:SI 0 "gpc_reg_operand" "=r")
(neg:SI (gt:SI (match_operand:SI 1 "gpc_reg_operand" "r")
(match_operand:SI 2 "reg_or_short_operand" "r"))))]
@@ -9973,11 +10147,19 @@
[(set (match_operand:SI 0 "gpc_reg_operand" "=r")
(gtu:SI (match_operand:SI 1 "gpc_reg_operand" "r")
(match_operand:SI 2 "reg_or_short_operand" "rI")))]
- ""
+ "! TARGET_POWERPC64"
"{sf%I2|subf%I2c} %0,%1,%2\;{sfe|subfe} %0,%0,%0\;neg %0,%0"
[(set_attr "length" "12")])
(define_insn ""
+ [(set (match_operand:DI 0 "gpc_reg_operand" "=r")
+ (gtu:DI (match_operand:DI 1 "gpc_reg_operand" "r")
+ (match_operand:DI 2 "reg_or_short_operand" "rI")))]
+ "TARGET_POWERPC64"
+ "subf%I2c %0,%1,%2\;subfe %0,%0,%0\;neg %0,%0"
+ [(set_attr "length" "12")])
+
+(define_insn ""
[(set (match_operand:CC 3 "cc_reg_operand" "=x")
(compare:CC
(gtu:SI (match_operand:SI 1 "gpc_reg_operand" "r")
@@ -9985,24 +10167,49 @@
(const_int 0)))
(set (match_operand:SI 0 "gpc_reg_operand" "=r")
(gtu:SI (match_dup 1) (match_dup 2)))]
- ""
+ "! TARGET_POWERPC64"
"{sf%I2|subf%I2c} %0,%1,%2\;{sfe|subfe} %0,%0,%0\;neg. %0,%0"
[(set_attr "type" "compare")
(set_attr "length" "12")])
(define_insn ""
+ [(set (match_operand:CC 3 "cc_reg_operand" "=x")
+ (compare:CC
+ (gtu:DI (match_operand:DI 1 "gpc_reg_operand" "r")
+ (match_operand:DI 2 "reg_or_short_operand" "rI"))
+ (const_int 0)))
+ (set (match_operand:DI 0 "gpc_reg_operand" "=r")
+ (gtu:DI (match_dup 1) (match_dup 2)))]
+ "TARGET_POWERPC64"
+ "subf%I2c %0,%1,%2\;subfe %0,%0,%0\;neg. %0,%0"
+ [(set_attr "type" "compare")
+ (set_attr "length" "12")])
+
+(define_insn ""
[(set (match_operand:SI 0 "gpc_reg_operand" "=r,r")
(plus:SI (gtu:SI (match_operand:SI 1 "gpc_reg_operand" "r,r")
(match_operand:SI 2 "reg_or_short_operand" "I,rI"))
(match_operand:SI 3 "reg_or_short_operand" "r,rI")))
(clobber (match_scratch:SI 4 "=&r,&r"))]
- ""
+ "! TARGET_POWERPC64"
"@
{ai|addic} %4,%1,%k2\;{aze|addze} %0,%3
{sf%I2|subf%I2c} %4,%1,%2\;{sfe|subfe} %4,%4,%4\;{sf%I3|subf%I3c} %0,%4,%3"
[(set_attr "length" "8,12")])
(define_insn ""
+ [(set (match_operand:DI 0 "gpc_reg_operand" "=r,r")
+ (plus:DI (gtu:DI (match_operand:DI 1 "gpc_reg_operand" "r,r")
+ (match_operand:DI 2 "reg_or_short_operand" "I,rI"))
+ (match_operand:DI 3 "reg_or_short_operand" "r,rI")))
+ (clobber (match_scratch:DI 4 "=&r,&r"))]
+ "TARGET_POWERPC64"
+ "@
+ addic %4,%1,%k2\;addze %0,%3
+ subf%I2c %4,%1,%2\;subfe %4,%4,%4\;subf%I3c %0,%4,%3"
+ [(set_attr "length" "8,12")])
+
+(define_insn ""
[(set (match_operand:CC 0 "cc_reg_operand" "=x,x")
(compare:CC
(plus:SI (gtu:SI (match_operand:SI 1 "gpc_reg_operand" "r,r")
@@ -10010,7 +10217,7 @@
(match_operand:SI 3 "gpc_reg_operand" "r,r"))
(const_int 0)))
(clobber (match_scratch:SI 4 "=&r,&r"))]
- ""
+ "! TARGET_POWERPC64"
"@
{ai|addic} %4,%1,%k2\;{aze.|addze.} %4,%3
{sf%I2|subf%I2c} %4,%1,%2\;{sfe|subfe} %4,%4,%4\;{sf.|subfc.} %4,%4,%3"
@@ -10018,6 +10225,21 @@
(set_attr "length" "8,12")])
(define_insn ""
+ [(set (match_operand:CC 0 "cc_reg_operand" "=x,x")
+ (compare:CC
+ (plus:DI (gtu:DI (match_operand:DI 1 "gpc_reg_operand" "r,r")
+ (match_operand:DI 2 "reg_or_short_operand" "I,r"))
+ (match_operand:DI 3 "gpc_reg_operand" "r,r"))
+ (const_int 0)))
+ (clobber (match_scratch:DI 4 "=&r,&r"))]
+ "TARGET_POWERPC64"
+ "@
+ addic %4,%1,%k2\;addze. %4,%3
+ subf%I2c %4,%1,%2\;subfe %4,%4,%4\;subfc. %4,%4,%3"
+ [(set_attr "type" "compare")
+ (set_attr "length" "8,12")])
+
+(define_insn ""
[(set (match_operand:CC 5 "cc_reg_operand" "=x,x")
(compare:CC
(plus:SI (gtu:SI (match_operand:SI 1 "gpc_reg_operand" "r,r")
@@ -10027,7 +10249,7 @@
(set (match_operand:SI 0 "gpc_reg_operand" "=r,r")
(plus:SI (gtu:SI (match_dup 1) (match_dup 2)) (match_dup 3)))
(clobber (match_scratch:SI 4 "=&r,&r"))]
- ""
+ "! TARGET_POWERPC64"
"@
{ai|addic} %4,%1,%k2\;{aze.|addze.} %0,%3
{sf%I2|subf%I2c} %4,%1,%2\;{sfe|subfe} %4,%4,%4\;{sf.|subfc.} %0,%4,%3"
@@ -10035,12 +10257,37 @@
(set_attr "length" "8,12")])
(define_insn ""
+ [(set (match_operand:CC 5 "cc_reg_operand" "=x,x")
+ (compare:CC
+ (plus:DI (gtu:DI (match_operand:DI 1 "gpc_reg_operand" "r,r")
+ (match_operand:DI 2 "reg_or_short_operand" "I,r"))
+ (match_operand:DI 3 "gpc_reg_operand" "r,r"))
+ (const_int 0)))
+ (set (match_operand:DI 0 "gpc_reg_operand" "=r,r")
+ (plus:DI (gtu:DI (match_dup 1) (match_dup 2)) (match_dup 3)))
+ (clobber (match_scratch:DI 4 "=&r,&r"))]
+ "TARGET_POWERPC64"
+ "@
+ addic %4,%1,%k2\;addze. %0,%3
+ subf%I2c %4,%1,%2\;subfe %4,%4,%4\;subfc. %0,%4,%3"
+ [(set_attr "type" "compare")
+ (set_attr "length" "8,12")])
+
+(define_insn ""
[(set (match_operand:SI 0 "gpc_reg_operand" "=r")
(neg:SI (gtu:SI (match_operand:SI 1 "gpc_reg_operand" "r")
(match_operand:SI 2 "reg_or_short_operand" "rI"))))]
- ""
+ "! TARGET_POWERPC64"
"{sf%I2|subf%I2c} %0,%1,%2\;{sfe|subfe} %0,%0,%0"
[(set_attr "length" "8")])
+
+(define_insn ""
+ [(set (match_operand:DI 0 "gpc_reg_operand" "=r")
+ (neg:DI (gtu:DI (match_operand:DI 1 "gpc_reg_operand" "r")
+ (match_operand:DI 2 "reg_or_short_operand" "rI"))))]
+ "TARGET_POWERPC64"
+ "subf%I2c %0,%1,%2\;subfe %0,%0,%0"
+ [(set_attr "length" "8")])
;; Define both directions of branch and return. If we need a reload
;; register, we'd rather use CR0 since it is much easier to copy a
diff --git a/gnu/egcs/gcc/config/sparc/sparc.md b/gnu/egcs/gcc/config/sparc/sparc.md
index 02170b75fca..cb008b169b1 100644
--- a/gnu/egcs/gcc/config/sparc/sparc.md
+++ b/gnu/egcs/gcc/config/sparc/sparc.md
@@ -2838,7 +2838,7 @@
return \"#\";
}"
[(set_attr "type" "move")
- (set_attr "length" "1")])
+ (set_attr "length" "1,2")])
;; There isn't much I can do about this, if I change the
;; mode then flow info gets really confused because the
@@ -3013,7 +3013,7 @@
return \"#\";
}"
[(set_attr "type" "move")
- (set_attr "length" "1")])
+ (set_attr "length" "1,2,2")])
(define_split
[(set (match_operand:DF 0 "register_operand" "")
diff --git a/gnu/egcs/gcc/cp/ChangeLog b/gnu/egcs/gcc/cp/ChangeLog
index 82d1a8bc239..efa30edcad2 100644
--- a/gnu/egcs/gcc/cp/ChangeLog
+++ b/gnu/egcs/gcc/cp/ChangeLog
@@ -1,3 +1,24 @@
+Sun Oct 24 23:54:10 PDT 1999 Jeff Law (law@cygnus.com)
+
+ * gcc-2.95.2 Released.
+
+1999-09-06 Mark Mitchell <mark@codesourcery.com>
+
+ * pt.c (tsubst): Back out 1999-08-06 patch. Use fold and
+ decl_constant_value to simplify array bounds.
+
+1999-08-19 Jason Merrill <jason@yorick.cygnus.com>
+
+ * cp-tree.h: Declare flag_use_repository.
+ * pt.c (do_decl_instantiation): Don't complain about duplicate
+ instantiation with -frepo.
+ (do_type_instantiation): Likewise.
+
+1999-08-14 Jason Merrill <jason@yorick.cygnus.com>
+
+ * decl2.c (lookup_arg_dependent): Note that we've already checked
+ the current namespace.
+
Mon Aug 16 01:29:24 PDT 1999 Jeff Law (law@cygnus.com)
* gcc-2.95.1 Released.
diff --git a/gnu/egcs/gcc/f/ChangeLog b/gnu/egcs/gcc/f/ChangeLog
index a3755f4c2e1..2e818152ca1 100644
--- a/gnu/egcs/gcc/f/ChangeLog
+++ b/gnu/egcs/gcc/f/ChangeLog
@@ -1,3 +1,7 @@
+Sun Oct 24 23:54:10 PDT 1999 Jeff Law (law@cygnus.com)
+
+ * gcc-2.95.2 Released.
+
Mon Aug 16 01:29:24 PDT 1999 Jeff Law (law@cygnus.com)
* gcc-2.95.1 Released.
diff --git a/gnu/egcs/gcc/f/version.c b/gnu/egcs/gcc/f/version.c
index 97605df107c..5e8381f0fc4 100644
--- a/gnu/egcs/gcc/f/version.c
+++ b/gnu/egcs/gcc/f/version.c
@@ -1 +1 @@
-const char *ffe_version_string = "0.5.25 19990816 (release)";
+const char *ffe_version_string = "0.5.25 19991024 (release)";
diff --git a/gnu/egcs/gcc/fix-header.c b/gnu/egcs/gcc/fix-header.c
index af0577e43c4..1e6c5c47b8a 100644
--- a/gnu/egcs/gcc/fix-header.c
+++ b/gnu/egcs/gcc/fix-header.c
@@ -1140,7 +1140,7 @@ main (argc, argv)
if (entry->flags)
add_symbols (entry->flags, entry->names);
entry++;
- if (strcmp (entry->name, CONTINUED) != 0)
+ if (!entry->name || strcmp (entry->name, CONTINUED) != 0)
break;
}
}
diff --git a/gnu/egcs/gcc/haifa-sched.c b/gnu/egcs/gcc/haifa-sched.c
index d4d2121a9d5..42144769201 100644
--- a/gnu/egcs/gcc/haifa-sched.c
+++ b/gnu/egcs/gcc/haifa-sched.c
@@ -2849,7 +2849,7 @@ insn_unit (insn)
range, don't cache it. */
if (FUNCTION_UNITS_SIZE < HOST_BITS_PER_SHORT
|| unit >= 0
- || (~unit & ((1 << (HOST_BITS_PER_SHORT - 1)) - 1)) == 0)
+ || (unit & ~((1 << (HOST_BITS_PER_SHORT - 1)) - 1)) == 0)
INSN_UNIT (insn) = unit;
}
return (unit > 0 ? unit - 1 : unit);
diff --git a/gnu/egcs/gcc/intl/ChangeLog b/gnu/egcs/gcc/intl/ChangeLog
index 4d91d013124..3938710c673 100644
--- a/gnu/egcs/gcc/intl/ChangeLog
+++ b/gnu/egcs/gcc/intl/ChangeLog
@@ -1,3 +1,7 @@
+Sun Oct 24 23:54:10 PDT 1999 Jeff Law (law@cygnus.com)
+
+ * gcc-2.95.2 Released.
+
Mon Aug 16 01:29:24 PDT 1999 Jeff Law (law@cygnus.com)
* gcc-2.95.1 Released.
diff --git a/gnu/egcs/gcc/java/ChangeLog b/gnu/egcs/gcc/java/ChangeLog
index c31058f1b53..8a7265e25b9 100644
--- a/gnu/egcs/gcc/java/ChangeLog
+++ b/gnu/egcs/gcc/java/ChangeLog
@@ -1,3 +1,12 @@
+Sun Oct 24 23:54:10 PDT 1999 Jeff Law (law@cygnus.com)
+
+ * gcc-2.95.2 Released.
+
+Sat Oct 16 15:18:42 1999 Jeffrey A Law (law@cygnus.com)
+
+ 1999-10-14 Tom Tromey <tromey@cygnus.com>
+ * jvspec.c (jvgenmain_spec): Use `%umain', not just `%u'.
+
Mon Aug 16 01:29:24 PDT 1999 Jeff Law (law@cygnus.com)
* gcc-2.95.1 Released.
diff --git a/gnu/egcs/gcc/java/jvspec.c b/gnu/egcs/gcc/java/jvspec.c
index eba801cb32a..61cd89b0d97 100644
--- a/gnu/egcs/gcc/java/jvspec.c
+++ b/gnu/egcs/gcc/java/jvspec.c
@@ -54,15 +54,15 @@ int lang_specific_extra_outfiles = 0;
#define COMBINE_INPUTS 0
char jvgenmain_spec[] =
- "jvgenmain %i %{!pipe:%u.i} |\n\
- cc1 %{!pipe:%U.i} %1 \
+ "jvgenmain %i %{!pipe:%umain.i} |\n\
+ cc1 %{!pipe:%Umain.i} %1 \
%{!Q:-quiet} -dumpbase %b.c %{d*} %{m*} %{a*}\
%{g*} %{O*} \
%{v:-version} %{pg:-p} %{p} %{f*}\
%{aux-info*}\
%{pg:%{fomit-frame-pointer:%e-pg and -fomit-frame-pointer are incompatible}}\
- %{S:%W{o*}%{!o*:-o %b.s}}%{!S:-o %{|!pipe:%U.s}} |\n\
- %{!S:as %a %Y -o %d%w%u%O %{!pipe:%U.s} %A\n }";
+ %{S:%W{o*}%{!o*:-o %b.s}}%{!S:-o %{|!pipe:%Umain.s}} |\n\
+ %{!S:as %a %Y -o %d%w%umain%O %{!pipe:%Umain.s} %A\n }";
/* Return full path name of spec file if it is in DIR, or NULL if
not. */
diff --git a/gnu/egcs/gcc/local-alloc.c b/gnu/egcs/gcc/local-alloc.c
index d1df595c4c1..2fc3aec4977 100644
--- a/gnu/egcs/gcc/local-alloc.c
+++ b/gnu/egcs/gcc/local-alloc.c
@@ -759,7 +759,8 @@ update_equiv_regs ()
&& REG_N_SETS (regno) == 1
&& reg_equiv_init_insns[regno] != 0
&& reg_equiv_init_insns[regno] != const0_rtx
- && ! find_reg_note (insn, REG_EQUIV, NULL_RTX)
+ && ! find_reg_note (XEXP (reg_equiv_init_insns[regno], 0),
+ REG_EQUIV, NULL_RTX)
&& ! contains_replace_regs (XEXP (dest, 0), reg_equiv_replace))
{
rtx init_insn = XEXP (reg_equiv_init_insns[regno], 0);
diff --git a/gnu/egcs/gcc/po/ChangeLog b/gnu/egcs/gcc/po/ChangeLog
index 416a951f7e2..83babc471a0 100644
--- a/gnu/egcs/gcc/po/ChangeLog
+++ b/gnu/egcs/gcc/po/ChangeLog
@@ -1,3 +1,11 @@
+Sun Oct 24 23:54:10 PDT 1999 Jeff Law (law@cygnus.com)
+
+ * gcc-2.95.2 Released.
+
+1999-10-18 Manfred Hollstein <mhollstein@cygnus.com>
+
+ * POTFILES.in: Track files recently added/deleted/moved.
+
Mon Aug 16 01:29:24 PDT 1999 Jeff Law (law@cygnus.com)
* gcc-2.95.1 Released.
diff --git a/gnu/egcs/gcc/po/POTFILES.in b/gnu/egcs/gcc/po/POTFILES.in
index e4020c9c3a0..9fd586c3113 100644
--- a/gnu/egcs/gcc/po/POTFILES.in
+++ b/gnu/egcs/gcc/po/POTFILES.in
@@ -208,7 +208,7 @@ config/i386/seq-sysv3.h
config/i386/seq2-sysv3.h
config/i386/sequent.h
config/i386/sol2.h
-config/i386/sol2dbg.h
+config/i386/sol2gas.h
config/i386/sun.h
config/i386/sun386.h
config/i386/svr3dbx.h
@@ -653,6 +653,7 @@ ginclude/math-68881.h
ginclude/ppc-asm.h
ginclude/proto.h
ginclude/stdarg.h
+ginclude/stdbool.h
ginclude/stddef.h
ginclude/va-alpha.h
ginclude/va-arc.h
diff --git a/gnu/egcs/gcc/reg-stack.c b/gnu/egcs/gcc/reg-stack.c
index dd4a87e697c..42caefa0a42 100644
--- a/gnu/egcs/gcc/reg-stack.c
+++ b/gnu/egcs/gcc/reg-stack.c
@@ -1186,8 +1186,16 @@ static rtx
stack_result (decl)
tree decl;
{
- rtx result = DECL_RTL (DECL_RESULT (decl));
+ rtx result;
+ /* If the value is supposed to be returned in memory, then clearly
+ it is not returned in a stack register. */
+ if (aggregate_value_p (DECL_RESULT (decl)))
+ return 0;
+
+ result = DECL_RTL (DECL_RESULT (decl));
+ /* ?!? What is this code supposed to do? Can this code actually
+ trigger if we kick out aggregates above? */
if (result != 0
&& ! (GET_CODE (result) == REG
&& REGNO (result) < FIRST_PSEUDO_REGISTER))
diff --git a/gnu/egcs/gcc/sched.c b/gnu/egcs/gcc/sched.c
index e8cd070e45c..f09a68ae369 100644
--- a/gnu/egcs/gcc/sched.c
+++ b/gnu/egcs/gcc/sched.c
@@ -587,7 +587,7 @@ insn_unit (insn)
range, don't cache it. */
if (FUNCTION_UNITS_SIZE < HOST_BITS_PER_SHORT
|| unit >= 0
- || (~unit & ((1 << (HOST_BITS_PER_SHORT - 1)) - 1)) == 0)
+ || (unit & ~((1 << (HOST_BITS_PER_SHORT - 1)) - 1)) == 0)
INSN_UNIT (insn) = unit;
}
return (unit > 0 ? unit - 1 : unit);
diff --git a/gnu/egcs/install/BUILD b/gnu/egcs/install/BUILD
index 6bf0322b9c4..70eff6b3d31 100644
--- a/gnu/egcs/install/BUILD
+++ b/gnu/egcs/install/BUILD
@@ -5,7 +5,10 @@
runtime libraries.
We _highly_ recommend that GCC be built using GNU make; other versions
- may work, then again they might not. To be safe build with GNU make.
+ may work, then again they might not.
+
+ (For example, many broken versions of make will fail if you use the
+ recommended setup where _objdir_ is different from _srcdir_.)
Building a native compiler
@@ -13,9 +16,10 @@ Building a native compiler
the entire GCC system, which includes the following steps:
* Build host tools necessary to build the compiler such as texinfo,
bison, gperf.
- * Build target tools for use by the compiler such as gas, gld, and
- binutils if they have been properly unpacked into the GCC source
- tree.
+ * Build target tools for use by the compiler such as binutils (bfd,
+ binutils, gas, gprof, ld, and opcodes)
+ if they have been individually linked or moved into the top level
+ GCC source tree before configuring.
* Perform a 3-stage bootstrap of the compiler.
* Perform a comparison test of the stage2 and stage3 compilers.
* Build runtime libraries using the stage3 compiler from the
@@ -58,9 +62,10 @@ Building a cross compiler
performs the following steps:
* Build host tools necessary to build the compiler such as texinfo,
bison, gperf.
- * Build target tools for use by the compiler such as gas, gld, and
- binutils if they have been properly unpacked into the GCC source
- tree.
+ * Build target tools for use by the compiler such as binutils (bfd,
+ binutils, gas, gprof, ld, and opcodes)
+ if they have been individually linked or moved into the top level
+ GCC source tree before configuring.
* Build the compiler (single stage only).
* Build runtime libraries using the compiler from the previous step.
@@ -75,7 +80,7 @@ Building in parallel
your machine.
_________________________________________________________________
- _Last modified on July 16, 1999._
+ _Last modified on August 27, 1999._
References
diff --git a/gnu/egcs/install/DOWNLOAD b/gnu/egcs/install/DOWNLOAD
index 18036253bc9..785ca3242e8 100644
--- a/gnu/egcs/install/DOWNLOAD
+++ b/gnu/egcs/install/DOWNLOAD
@@ -36,4 +36,4 @@ References
1. ftp://egcs.cygnus.com/pub/egcs/releases/index.html
2. ftp://go.cygnus.com/pub/sourceware.cygnus.com/pub/egcs/releases/index.html
- 3. file://localhost/egcs/omelette/tmp/12663/gcc-2.95.1/mirrors.html
+ 3. http://gcc.gnu.org/mirrors.html
diff --git a/gnu/egcs/install/FINALINSTALL b/gnu/egcs/install/FINALINSTALL
index 9092666ffae..918d649157e 100644
--- a/gnu/egcs/install/FINALINSTALL
+++ b/gnu/egcs/install/FINALINSTALL
@@ -26,4 +26,4 @@ References
1. http://egcs.cygnus.com/gcc-2.95/buildstat.html
2. mailto:gcc@gcc.gnu.org
- 3. file://localhost/egcs/omelette/tmp/12663/gcc-2.95.1/faq.html#bugreport
+ 3. http://gcc.gnu.org/faq.html#bugreport
diff --git a/gnu/egcs/install/INDEX b/gnu/egcs/install/INDEX
index baf49be2b50..cc7e59a51ae 100644
--- a/gnu/egcs/install/INDEX
+++ b/gnu/egcs/install/INDEX
@@ -41,11 +41,11 @@
References
1. http://egcs.cygnus.com/install/
- 2. file://localhost/egcs/omelette/tmp/12663/gcc-2.95.1/faq.html
- 3. file://localhost/egcs/omelette/tmp/12663/gcc-2.95.1/install/specific.html
- 4. file://localhost/egcs/omelette/tmp/12663/gcc-2.95.1/install/download.html
- 5. file://localhost/egcs/omelette/tmp/12663/gcc-2.95.1/install/configure.html
- 6. file://localhost/egcs/omelette/tmp/12663/gcc-2.95.1/install/build.html
- 7. file://localhost/egcs/omelette/tmp/12663/gcc-2.95.1/install/test.html
- 8. file://localhost/egcs/omelette/tmp/12663/gcc-2.95.1/install/finalinstall.html
- 9. file://localhost/egcs/omelette/tmp/12663/gcc-2.95.1/index.html
+ 2. http://gcc.gnu.org/faq.html
+ 3. http://gcc.gnu.org/install/specific.html
+ 4. http://gcc.gnu.org/install/download.html
+ 5. http://gcc.gnu.org/install/configure.html
+ 6. http://gcc.gnu.org/install/build.html
+ 7. http://gcc.gnu.org/install/test.html
+ 8. http://gcc.gnu.org/install/finalinstall.html
+ 9. http://gcc.gnu.org/index.html
diff --git a/gnu/egcs/install/SPECIFIC b/gnu/egcs/install/SPECIFIC
index e7a5db8c6e7..54c9a8f6c55 100644
--- a/gnu/egcs/install/SPECIFIC
+++ b/gnu/egcs/install/SPECIFIC
@@ -3,24 +3,31 @@
Please read this document carefully _before_ installing the GNU
Compiler Collection on your machine.
- * [1]alpha*-dec-osf*
- * [2]hppa*-hp-hpux*
- * [3]hppa*-hp-hpux9
- * [4]hppa*-hp-hpux10
- * [5]i?86-*-linux*
- * [6]i?86-*-sco3.2v5*
- * [7]i?86-*-udk
- * [8]*-ibm-aix*
- * [9]m68k-*-nextstep*
- * [10]m68k-sun-sunos4.1.1
- * [11]mips*-sgi-irix[45]
- * [12]mips*-sgi-irix6
- * [13]powerpc-*-linux-gnu*
- * [14]sparc-sun-solaris2.7
- * [15]sparc-sun-sunos*
- * [16]sparc-unknown-linux-gnulibc1
- * [17]sparc64-*-*
- * [18]GCC with Windows or OS/2
+ * [1]alpha*-dec-linux*
+ * [2]alpha*-dec-osf*
+ * [3]GCC with DOS
+ * [4]hppa*-hp-hpux*
+ * [5]hppa*-hp-hpux9
+ * [6]hppa*-hp-hpux10
+ * [7]i?86-*-linux*
+ * [8]i?86-*-sco3.2v5*
+ * [9]i?86-*-udk
+ * [10]*-ibm-aix*
+ * [11]m68k-*-nextstep*
+ * [12]m68k-sun-sunos4.1.1
+ * [13]mips*-sgi-irix[45]
+ * [14]mips*-sgi-irix6
+ * [15]powerpc-*-linux-gnu*
+ * [16]*-*-solaris*
+ * [17]sparc-sun-solaris*
+ * [18]sparc-sun-solaris2.7
+ * [19]Sun V5.0 Compiler Bugs
+ * [20]sparc-sun-sunos*
+ * [21]sparc-unknown-linux-gnulibc1
+ * [22]sparc64-*-*
+ * [23]GCC with Windows or OS/2
+
+ * [24]all ELF targets (SVR4, Solaris, etc.)
_________________________________________________________________
alpha*-dec-linux*
@@ -82,7 +89,7 @@
The magic spell is to add -Wl,-all,-lgcc,-none to the definition of
macro SHDEPS in libstdc++/config/dec-osf.ml _before_
- alpha*-dec-osf*/libstdc++/Makefile is created (a [19]patch that does
+ alpha*-dec-osf*/libstdc++/Makefile is created (a [25]patch that does
just that is available). If the Makefile already exists, run
./config.status within directory alpha*-dec-osf*/libstdc++ (and
alpha*-dec-osf*/ieee/libstdc++, if it also exists). Remove any
@@ -97,38 +104,40 @@
repeat this command in it, with the additional flag -mieee.
_________________________________________________________________
+ GCC with DOS
+
+ A binary distribution is available at [26]Simtel.Net and its mirrors.
+ ________________________________________________________________________
+
hppa*-hp-hpux*
- We _highly_ recommend using gas/binutils-2.8 or newer on all hppa
- platforms; you may encounter a variety of problems when using the HP
- assembler.
-
- If you wish to use pa-risc 2.0 architecture support, you must use
- either the HP assembler or a recent [20]snapshot of gas.
-
- More specific information to hppa*-hp-hpux* targets follows.
- _________________________________________________________________
-
+ We _highly_ recommend using gas/binutils-2.8 or newer on all hppa platforms;
+ you may encounter a variety of problems when using the HP assembler.
+
+ If you wish to use pa-risc 2.0 architecture support, you must use either the
+ HP assembler or a recent [27]snapshot of gas.
+
+ More specific information to hppa*-hp-hpux* targets follows.
+ ________________________________________________________________________
+
hppa*-hp-hpux9
- The HP assembler has major problems on this platform. We've tried to
- work around the worst of the problems. However, those workarounds may
- be causing linker crashes in some circumstances; the workarounds also
- probably prevent shared libraries from working. Use the GNU assembler
- to avoid these problems.
-
- The configuration scripts for GCC will also trigger a bug in the hpux9
- shell. To avoid this problem set CONFIG_SHELL to /bin/ksh and SHELL to
- /bin/ksh in your environment.
- _________________________________________________________________
-
+ The HP assembler has major problems on this platform. We've tried to work
+ around the worst of the problems. However, those workarounds may be causing
+ linker crashes in some circumstances; the workarounds also probably prevent
+ shared libraries from working. Use the GNU assembler to avoid these problems.
+
+ The configuration scripts for GCC will also trigger a bug in the hpux9 shell.
+ To avoid this problem set CONFIG_SHELL to /bin/ksh and SHELL to /bin/ksh in
+ your environment.
+ ________________________________________________________________________
+
hppa*-hp-hpux10
- For hpux10.20, we _highly_ recommend you pick up the latest sed patch
- PHCO_15468 from HP. HP has two sites which provide patches free of
- charge:
- * [21]US, Canada, Asia-Pacific, and Latin-America
- * [22]Europe
+ For hpux10.20, we _highly_ recommend you pick up the latest sed patch
+ PHCO_15468 from HP. HP has two sites which provide patches free of charge:
+ * [28]US, Canada, Asia-Pacific, and Latin-America
+ * [29]Europe
The HP assembler on these systems is much better than the hpux9
assembler, but still has some problems. Most notably the assembler
@@ -145,7 +154,7 @@
If you receive Signal 11 errors when building on GNU/Linux, then it is
possible you have a hardware problem. Further information on this can
- be found on [23]www.bitwizard.nl.
+ be found on [30]www.bitwizard.nl.
_________________________________________________________________
i?86-*-sco3.2v5*
@@ -196,8 +205,8 @@
be seen as execution testsuite failures when using -fPIC on
921215-1.c, 931002-1.c, nestfunc-1.c, and gcov-1.c. For 5.0.5, an
updated linker that will cure this problem is available. You must
- install both [24]ftp://ftp.sco.com/Supplements/rs505a/ and
- [25]OSS499A.
+ install both [31]ftp://ftp.sco.com/Supplements/rs505a/ and
+ [32]OSS499A.
The dynamic linker in OpenServer 5.0.5 (earlier versions may show the
same problem) aborts on certain g77-compiled programs. It's
@@ -206,7 +215,7 @@
triggered by other code, only G77-compiled code has been observed to
cause this abort. If you are getting core dumps immediately upon
execution of your g77 program - and especially if it's compiled with
- -fPIC - try applying [26]`sco_osr5_g77.patch' to your libf2c and
+ -fPIC - try applying [33]`sco_osr5_g77.patch' to your libf2c and
rebuilding GCC. Affected faults, when analyzed in a debugger, will
show a stack backtrace with a fault occurring in rtld() and the
program running as /usr/lib/ld.so.1. This problem has been reported to
@@ -252,12 +261,22 @@ get=i686-pc-udk --exec-prefix=udk-
AIX Make frequently has problems with GCC makefiles. GNU Make 3.76 or
newer is recommended to build on this platform.
+ Errors involving "alloca" when building GCC generally are due to an
+ incorrect definition of CC in the Makefile or mixing files compiled
+ with the native C compiler and GCC. During the stage1 phase of the
+ build, the native AIX compiler _must_ be invoked as "cc" (not "xlc").
+ Once configure has been informed of "xlc", one needs to use "make
+ distclean" to remove the configure cache files and ensure that $CC
+ environment variable does not provide a definition that will confuse
+ configure. If this error occurs during stage2 or later, then the
+ problem most likely is the version of Make (see above).
+
Some versions of the AIX binder (linker) can fail with a relocation
overflow severe error when the -bbigtoc option is used to link
GCC-produced object files into an executable that overflows the TOC. A
fix for APAR IX75823 (OVERFLOW DURING LINK WHEN USING GCC AND
-BBIGTOC) is available from IBM Customer Support and from its
- [27]service.boulder.ibm.com website as PTF U455193.
+ [34]service.boulder.ibm.com website as PTF U455193.
Binutils does not support AIX 4.3 (at least through release 2.9). GNU
as and GNU ld will not work properly and one should not configure GCC
@@ -277,7 +296,7 @@ get=i686-pc-udk --exec-prefix=udk-
The initial assembler shipped with AIX 4.3.0 generates incorrect
object files. A fix for APAR IX74254 (64BIT DISASSEMBLED OUPUT FROM
COMPILER FAILS TO ASSEMBLE/BIND) is available from IBM Customer
- Support and from its [28]service.boulder.ibm.com website as PTF
+ Support and from its [35]service.boulder.ibm.com website as PTF
U453956. This fix is incorporated in AIX 4.3.1 and above.
The AIX 4.3.2.1 linker (bos.rte.bind_cmds Level 4.3.2.1) will dump
@@ -302,7 +321,7 @@ get=i686-pc-udk --exec-prefix=udk-
As NeXT's assembler is a derived work from GNU as, a free replacement
that does can be obtained at
- [29]ftp://ftp.next.peak.org:/next-ftp/next/apps/devtools/as.3.3.NIHS.s
+ [36]ftp://ftp.next.peak.org:/next-ftp/next/apps/devtools/as.3.3.NIHS.s
.tar.gz.
If you try to build the integrated C++ & C++ runtime libraries on this
@@ -354,7 +373,7 @@ get=i686-pc-udk --exec-prefix=udk-
make program; however, you may have success with "smake" on IRIX 5.2
if you do not have GNU make available.
- See [30]http://reality.sgi.com/ariel/freeware for more information
+ See [37]http://reality.sgi.com/ariel/freeware for more information
about using GCC on IRIX platforms.
_________________________________________________________________
@@ -389,25 +408,81 @@ get=i686-pc-udk --exec-prefix=udk-
functions. I can only recall seeing two of them: inet_ntoa, and
semctl.
- See [31]http://reality.sgi.com/ariel/freeware for more information
+ See [38]http://reality.sgi.com/ariel/freeware for more information
about using GCC on IRIX platforms.
_________________________________________________________________
powerpc-*-linux-gnu*
- You will need [32]binutils-2.9.4.0.8 or newer for a working GCC. It is
+ You will need [39]binutils-2.9.4.0.8 or newer for a working GCC. It is
strongly recommended to recompile binutils if you initially built it
with gcc-2.7.2.x.
_________________________________________________________________
+ *-*-solaris*
+
+ Starting with Solaris, Sun does not ship a C compiler any more. To
+ bootstrap and install GCC you first have to install a pre-built
+ compiler, for example from [40]http://www.sunfreeware.com.
+
+ Sun as 4.X is broken in that it cannot cope with long symbol names. A
+ typical error message might look similiar to the following:
+
+ /usr/ccs/bin/as: "/var/tmp/ccMsw135.s", line 11041: error: can't
+ compute value of an expression involving an external symbol.
+
+ See the [41]How to work around too long C++ symbol names? FAQ entry
+ for further information.
+
+ Sun make in all known Solaris 1 (SunOS 4) and Solaris 2 releases has a
+ broken _VPATH_ mechanism, which means you must either:
+ * Use GNU make (recommended), _or:_
+ * Always build in the source directory, _or:_
+ * _(For GCC 2.95.1 only)_ apply the patches mentioned at
+ [42]http://www.gnu.org/software/gcc/egcstensions.html#sun-make.
+ _________________________________________________________________
+
+ sparc-sun-solaris*
+
+ binutils 2.9.1 has known bugs on this platform. We recommend to use
+ the vendor tools (Sun as, Sun ld) until these have been fixed.
+ _________________________________________________________________
+
sparc-sun-solaris2.7
Sun patch 107058-01 (1999-01-13) for SPARC Solaris 7 triggers a bug in
the dynamic linker. This problem (Sun bug 4210064) affects GCC 2.8 and
- later, including all EGCS releases. To avoid this problem, do not
- install Sun patch 107058-01 until after Sun releases a patch for bug
- 4210064. Sun has a fix for this bug but (as of 1999-06-24) has not yet
- released it as a patch.
+ later, including all EGCS releases. Sun formerly recommended 107058-01
+ for all Solaris 7 users, but around 1999-09-01 it started to recommend
+ it only for people who use Sun's compilers.
+
+ Here are some workarounds to this problem:
+ * Do not install Sun patch 107058-01 until after Sun releases a
+ complete patch for bug 4210064. This is the simplest course to
+ take, unless you must also use Sun's C compiler. Unfortunately
+ 107058-01 is preinstalled on some new Solaris-based hosts, so you
+ may have to back it out.
+ * Copy the original, unpatched Solaris 7 /usr/ccs/bin/as into
+ /usr/local/lib/gcc-lib/sparc-sun-solaris2.7/2.95.1/as, adjusting
+ the latter name to fit your local conventions and software version
+ numbers.
+ * Install Sun patch 106950-03 (1999-05-25) or later. Nobody with
+ both 107058-01 and 106950-03 installed has reported the bug with
+ GCC and Sun's dynamic linker. This last course of action is
+ riskiest, for two reasons. First, you must install 106950 on all
+ hosts that run code generated by GCC; it doesn't suffice to
+ install it only on the hosts that run GCC itself. Second, Sun says
+ that 106950-03 is only a partial fix for bug 4210064, but Sun
+ doesn't know whether the partial fix is adequate for GCC. Revision
+ -08 or later should fix the bug, but (as of 1999-10-06) it is
+ still being tested.
+ _________________________________________________________________
+
+ Sun V5.0 Compiler Bugs
+
+ The Sun V5.0 compilers are known to mis-compile GCC, which in turn
+ causes GCC to fail its bootstrap comparison test. We expect to have a
+ workaround ready in time for GCC 2.95.2.
_________________________________________________________________
sparc-sun-sunos*
@@ -423,7 +498,7 @@ get=i686-pc-udk --exec-prefix=udk-
sparc-unknown-linux-gnulibc1
- It has been reported that you might need [33]binutils-2.8.1.0.23 for
+ It has been reported that you might need [43]binutils-2.8.1.0.23 for
this platform, too.
_________________________________________________________________
@@ -434,11 +509,6 @@ get=i686-pc-udk --exec-prefix=udk-
program to start up a new shell invocation with an environment that
causes configure to recognize (via uname -a) the system as sparc-*-*
instead.
-
- _all ELF targets (SVR4, Solaris, etc.)_
- C++ support is significantly better on ELF targets if you use the GNU
- linker; duplicate copies of inlines, vtables and template
- instantiations will be discarded automatically.
_________________________________________________________________
GCC with Windows or OS/2
@@ -446,52 +516,69 @@ get=i686-pc-udk --exec-prefix=udk-
GCC does not currently support Windows, either natively or with the
cygwin32 dll. However Mumit Khan has been working on supporting
Windows with GCC. You should check out his site if you're interested
- in Windows support. [34]GNU Win32 related projects
+ in Windows support. [44]GNU Win32 related projects
GCC does not currently support OS/2. However, Andrew Zabolotny has
been working on a generic os/2 port with pgcc. The current code code
- can be found at [35]http://www.goof.com/pcg/os2/.
+ can be found at [45]http://www.goof.com/pcg/os2/.
+ _________________________________________________________________
+
+ all ELF targets (SVR4, Solaris, etc.)
+
+ C++ support is significantly better on ELF targets if you use the GNU
+ linker; duplicate copies of inlines, vtables and template
+ instantiations will be discarded automatically.
_________________________________________________________________
- [36]Return to the GCC Installation page
+ [46]Return to the GCC Installation page
- _Last modified on August 15, 1999._
+ _Last modified on October 17, 1999._
References
- 1. file://localhost/egcs/omelette/tmp/12663/gcc-2.95.1/install/specific.html#alpha*-dec-osf*
- 2. file://localhost/egcs/omelette/tmp/12663/gcc-2.95.1/install/specific.html#hppa*-hp-hpux*
- 3. file://localhost/egcs/omelette/tmp/12663/gcc-2.95.1/install/specific.html#hppa*-hp-hpux9
- 4. file://localhost/egcs/omelette/tmp/12663/gcc-2.95.1/install/specific.html#hppa*-hp-hpux10
- 5. file://localhost/egcs/omelette/tmp/12663/gcc-2.95.1/install/specific.html#ix86-*-linux*
- 6. file://localhost/egcs/omelette/tmp/12663/gcc-2.95.1/install/specific.html#ix86-*-sco3.2v5*
- 7. file://localhost/egcs/omelette/tmp/12663/gcc-2.95.1/install/specific.html#ix86-*-udk
- 8. file://localhost/egcs/omelette/tmp/12663/gcc-2.95.1/install/specific.html#*-ibm-aix*
- 9. file://localhost/egcs/omelette/tmp/12663/gcc-2.95.1/install/specific.html#m68k-*-nextstep*
- 10. file://localhost/egcs/omelette/tmp/12663/gcc-2.95.1/install/specific.html#m68k-sun-sunos4.1.1
- 11. file://localhost/egcs/omelette/tmp/12663/gcc-2.95.1/install/specific.html#mips*-sgi-irix[45]
- 12. file://localhost/egcs/omelette/tmp/12663/gcc-2.95.1/install/specific.html#mips*-sgi-irix6
- 13. file://localhost/egcs/omelette/tmp/12663/gcc-2.95.1/install/specific.html#powerpc-*-linux-gnu*
- 14. file://localhost/egcs/omelette/tmp/12663/gcc-2.95.1/install/specific.html#sparc-sun-solaris2.7
- 15. file://localhost/egcs/omelette/tmp/12663/gcc-2.95.1/install/specific.html#sparc-sun-sunos*
- 16. file://localhost/egcs/omelette/tmp/12663/gcc-2.95.1/install/specific.html#sparc-unknown-linux-gnulibc1
- 17. file://localhost/egcs/omelette/tmp/12663/gcc-2.95.1/install/specific.html#sparc64-*-*
- 18. file://localhost/egcs/omelette/tmp/12663/gcc-2.95.1/install/specific.html#win+os2
- 19. file://localhost/egcs/omelette/tmp/12663/gcc-2.95.1/install/dec-osf-shlibstdc++.patch
- 20. ftp://sourceware.cygnus.com/pub/binutils/snapshots
- 21. http://us-support.external.hp.com/
- 22. http://europe-support.external.hp.com/
- 23. http://www.bitwizard.nl/sig11/
- 24. ftp://ftp.sco.com/Supplements/rs505a/
- 25. ftp://ftp.sco.com/SLS/
- 26. file://localhost/egcs/omelette/tmp/12663/gcc-2.95.1/install/sco_osr5_g77.patch
- 27. http://service.boulder.ibm.com/
- 28. http://service.boulder.ibm.com/
- 29. ftp://ftp.next.peak.org/next-ftp/next/apps/devtools/as.3.3.NIHS.s.tar.gz
- 30. http://reality.sgi.com/ariel/freeware/
- 31. http://reality.sgi.com/ariel/freeware/
- 32. ftp://ftp.varesearch.com/pub/support/hjl/binutils
- 33. ftp://ftp.yggdrasil.com/private/hjl
- 34. http://www.xraylith.wisc.edu/~khan/software/gnu-win32/
- 35. http://www.goof.com/pcg/os2/
- 36. file://localhost/egcs/omelette/tmp/12663/gcc-2.95.1/install/index.html
+ 1. http://gcc.gnu.org/install/specific.html#alpha*-dec-linux*
+ 2. http://gcc.gnu.org/install/specific.html#alpha*-dec-osf*
+ 3. http://gcc.gnu.org/install/specific.html#dos
+ 4. http://gcc.gnu.org/install/specific.html#hppa*-hp-hpux*
+ 5. http://gcc.gnu.org/install/specific.html#hppa*-hp-hpux9
+ 6. http://gcc.gnu.org/install/specific.html#hppa*-hp-hpux10
+ 7. http://gcc.gnu.org/install/specific.html#ix86-*-linux*
+ 8. http://gcc.gnu.org/install/specific.html#ix86-*-sco3.2v5*
+ 9. http://gcc.gnu.org/install/specific.html#ix86-*-udk
+ 10. http://gcc.gnu.org/install/specific.html#*-ibm-aix*
+ 11. http://gcc.gnu.org/install/specific.html#m68k-*-nextstep*
+ 12. http://gcc.gnu.org/install/specific.html#m68k-sun-sunos4.1.1
+ 13. http://gcc.gnu.org/install/specific.html#mips*-sgi-irix[45]
+ 14. http://gcc.gnu.org/install/specific.html#mips*-sgi-irix6
+ 15. http://gcc.gnu.org/install/specific.html#powerpc-*-linux-gnu*
+ 16. http://gcc.gnu.org/install/specific.html#*-*-solaris*
+ 17. http://gcc.gnu.org/install/specific.html#sparc-sun-solaris*
+ 18. http://gcc.gnu.org/install/specific.html#sparc-sun-solaris2.7
+ 19. http://gcc.gnu.org/install/specific.html#sunv5
+ 20. http://gcc.gnu.org/install/specific.html#sparc-sun-sunos*
+ 21. http://gcc.gnu.org/install/specific.html#sparc-unknown-linux-gnulibc1
+ 22. http://gcc.gnu.org/install/specific.html#sparc64-*-*
+ 23. http://gcc.gnu.org/install/specific.html#win+os2
+ 24. http://gcc.gnu.org/install/specific.html#elf_targets
+ 25. http://gcc.gnu.org/install/dec-osf-shlibstdc++.patch
+ 26. ftp://ftp.simtel.net/pub/simtelnet/gnu/djgpp/
+ 27. ftp://sourceware.cygnus.com/pub/binutils/snapshots
+ 28. http://us-support.external.hp.com/
+ 29. http://europe-support.external.hp.com/
+ 30. http://www.bitwizard.nl/sig11/
+ 31. ftp://ftp.sco.com/Supplements/rs505a/
+ 32. ftp://ftp.sco.com/SLS/
+ 33. http://gcc.gnu.org/install/sco_osr5_g77.patch
+ 34. http://service.boulder.ibm.com/
+ 35. http://service.boulder.ibm.com/
+ 36. ftp://ftp.next.peak.org/next-ftp/next/apps/devtools/as.3.3.NIHS.s.tar.gz
+ 37. http://reality.sgi.com/ariel/freeware/
+ 38. http://reality.sgi.com/ariel/freeware/
+ 39. ftp://ftp.varesearch.com/pub/support/hjl/binutils
+ 40. http://www.sunfreeware.com/
+ 41. http://gcc.gnu.org/faq.html#squangle
+ 42. http://www.gnu.org/software/gcc/egcstensions.html#sun-make
+ 43. ftp://ftp.yggdrasil.com/private/hjl
+ 44. http://www.xraylith.wisc.edu/~khan/software/gnu-win32/
+ 45. http://www.goof.com/pcg/os2/
+ 46. http://gcc.gnu.org/install/index.html
diff --git a/gnu/egcs/install/build.html b/gnu/egcs/install/build.html
index 55123828006..12da67fc7e0 100644
--- a/gnu/egcs/install/build.html
+++ b/gnu/egcs/install/build.html
@@ -2,14 +2,19 @@
<head>
<title>Installing GCC: Building</title>
</head>
+
<body>
<h1 align="center">Installing GCC: Building</h1>
<p>Now that GCC is configured, you are ready to build the compiler and
runtime libraries.
-<p>We <b>highly</b> recommend that GCC be built using GNU make; other
-versions may work, then again they might not. To be safe build with GNU make.
+<p>We <strong>highly</strong> recommend that GCC be built using GNU make;
+other versions may work, then again they might not.</p>
+
+<p>(For example, many broken versions of make will fail if you use the
+recommended setup where <i>objdir</i> is different from <i>srcdir</i>.)
+
<h2>Building a native compiler</h2>
@@ -17,18 +22,20 @@ versions may work, then again they might not. To be safe build with GNU make.
will build the entire GCC system, which includes the following steps:
<ul>
- <li> Build host tools necessary to build the compiler such as texinfo, bison,
- gperf.<p>
+ <li>Build host tools necessary to build the compiler such as texinfo, bison,
+ gperf.</li>
- <li> Build target tools for use by the compiler such as gas, gld, and
- binutils if they have been properly unpacked into the GCC source tree.<p>
+ <li> Build target tools for use by the compiler such as binutils (bfd,
+ binutils, gas, gprof, ld, and opcodes)<br>
+ if they have been individually linked or moved into the top level GCC source
+ tree before configuring.</li>
- <li> Perform a 3-stage bootstrap of the compiler.<p>
+ <li>Perform a 3-stage bootstrap of the compiler.</li>
- <li> Perform a comparison test of the stage2 and stage3 compilers.<p>
+ <li>Perform a comparison test of the stage2 and stage3 compilers.</li>
- <li> Build runtime libraries using the stage3 compiler from the previous
- step.
+ <li>Build runtime libraries using the stage3 compiler from the previous
+ step.</li>
</ul>
<p>If you are short on disk space you might consider `<code>make
@@ -51,6 +58,7 @@ which the particular compiler has been built. Please note,
that re-defining LANGUAGES when calling `<code>make bootstrap</code>'
<b>*does not*</b> work anymore!
+
<h2>Building a cross compiler</h2>
<p> We recommend reading the
@@ -69,16 +77,18 @@ cross compiler.
your corss compiler, issue the command "make", which performs the
following steps:
<ul>
- <li> Build host tools necessary to build the compiler such as texinfo, bison,
- gperf.<p>
+ <li>Build host tools necessary to build the compiler such as texinfo, bison,
+ gperf.</li>
- <li> Build target tools for use by the compiler such as gas, gld, and
- binutils if they have been properly unpacked into the GCC source tree.<p>
+ <li>Build target tools for use by the compiler such as binutils (bfd,
+ binutils, gas, gprof, ld, and opcodes)<br>
+ if they have been individually linked or moved into the top level GCC source
+ tree before configuring.</li>
- <li> Build the compiler (single stage only).<p>
+ <li>Build the compiler (single stage only).</li>
- <li> Build runtime libraries using the compiler from the previous
- step.
+ <li>Build runtime libraries using the compiler from the previous
+ step.</li>
</ul>
<p>Note that if an error occurs in any step the make process will exit.
@@ -93,7 +103,7 @@ the number of processors in your machine.
<p>
<hr>
-<i>Last modified on July 16, 1999.</i>
+<i>Last modified on August 27, 1999.</i>
</body>
</html>
diff --git a/gnu/egcs/install/specific.html b/gnu/egcs/install/specific.html
index ff2f3f521d4..f2a21f54ecd 100644
--- a/gnu/egcs/install/specific.html
+++ b/gnu/egcs/install/specific.html
@@ -9,7 +9,9 @@
<p>Please read this document carefully <i>before</i> installing the GNU Compiler Collection on your machine.</p>
<ul>
+ <li><a href="#alpha*-dec-linux*">alpha*-dec-linux*</a></li>
<li><a href="#alpha*-dec-osf*">alpha*-dec-osf*</a></li>
+ <li><a href="#dos">GCC with DOS</a></li>
<li><a href="#hppa*-hp-hpux*">hppa*-hp-hpux*</a></li>
<li><a href="#hppa*-hp-hpux9">hppa*-hp-hpux9</a></li>
<li><a href="#hppa*-hp-hpux10">hppa*-hp-hpux10</a></li>
@@ -22,13 +24,20 @@
<li><a href="#mips*-sgi-irix[45]">mips*-sgi-irix[45]</a></li>
<li><a href="#mips*-sgi-irix6">mips*-sgi-irix6</a></li>
<li><a href="#powerpc-*-linux-gnu*">powerpc-*-linux-gnu*</a></li>
+ <li><a href="#*-*-solaris*">*-*-solaris*</a></li>
+ <li><a href="#sparc-sun-solaris*">sparc-sun-solaris*</a></li>
<li><a href="#sparc-sun-solaris2.7">sparc-sun-solaris2.7</a></li>
+ <li><a href="#sunv5">Sun V5.0 Compiler Bugs</a></li>
<li><a href="#sparc-sun-sunos*">sparc-sun-sunos*</a></li>
<li><a href="#sparc-unknown-linux-gnulibc1">sparc-unknown-linux-gnulibc1</a></li>
<li><a href="#sparc64-*-*">sparc64-*-*</a></li>
<li><a href="#win+os2">GCC with Windows or OS/2</a></li>
</ul>
+<ul>
+ <li><a href="#elf_targets">all ELF targets (SVR4, Solaris, etc.)</a></li>
+</ul>
+
<!-- -------- host/target specific issues start here ---------------- -->
@@ -118,6 +127,15 @@ it with the command <code>gcc -shared -o libstdc++.so.2.10.0
sub-directory exists, repeat this command in it, with the additional
flag <code>-mieee</code>.</p>
+
+<hr>
+<h3><a name="dos">GCC with DOS</h3>
+
+<p>A binary distribution is available at <a
+href="ftp://ftp.simtel.net/pub/simtelnet/gnu/djgpp/">Simtel.Net</A> and its
+mirrors.</p>
+
+
<hr>
<h3><a name="hppa*-hp-hpux*">hppa*-hp-hpux*</a></h3>
@@ -130,6 +148,7 @@ HP assembler or a recent
<p>More specific information to hppa*-hp-hpux* targets follows.</p>
+
<hr>
<h3><a name="hppa*-hp-hpux9">hppa*-hp-hpux9</a></h3>
@@ -142,6 +161,7 @@ shared libraries from working. Use the GNU assembler to avoid these problems.</
shell. To avoid this problem set CONFIG_SHELL to /bin/ksh and SHELL to
/bin/ksh in your environment.</p>
+
<hr>
<h3><a name="hppa*-hp-hpux10">hppa*-hp-hpux10</a></h3>
@@ -169,6 +189,7 @@ bootstrap</code>'.</p>
possible you have a hardware problem. Further information on this can be
found on <a href="http://www.bitwizard.nl/sig11/">www.bitwizard.nl.</a></p>
+
<hr>
<h3><a name="ix86-*-sco3.2v5*">i?86-*-sco3.2v5*</a></h3>
@@ -274,6 +295,17 @@ tools by adding <code>udk-</code> before the commonly known name. For example,
<p>AIX Make frequently has problems with GCC makefiles. GNU Make 3.76 or
newer is recommended to build on this platform.</p>
+<p>Errors involving &quot;alloca&quot; when building GCC generally are due
+to an incorrect definition of <tt>CC</tt> in the Makefile or mixing files
+compiled with the native C compiler and GCC. During the stage1 phase of
+the build, the native AIX compiler <b>must</b> be invoked as &quot;cc&quot;
+(not &quot;xlc&quot;). Once <tt>configure</tt> has been informed of
+&quot;xlc&quot;, one needs to use &quot;make distclean&quot; to remove the
+configure cache files and ensure that <tt>$CC</tt> environment variable
+does not provide a definition that will confuse <tt>configure</tt>.
+If this error occurs during stage2 or later, then the problem most likely
+is the version of Make (see above).</p>
+
<p>Some versions of the AIX binder (linker) can fail with a relocation
overflow severe error when the -bbigtoc option is used to link
GCC-produced object files into an executable that overflows the TOC. A fix
@@ -307,6 +339,7 @@ website as PTF U453956. This fix is incorporated in AIX 4.3.1 and above.</p>
with a segmentation fault when invoked by any version of GCC. A fix for
APAR IX87327 will be available from IBM Customer Support.</p>
+
<hr>
<h3><a name="m68k-*-nextstep*">m68k-*-nextstep*</a></h3>
@@ -349,6 +382,7 @@ the directory <i>prefix</i> you secified in the configuration preocess of GCC fo
<p>It is reported that you may need the GNU assembler on this platform.</p>
+
<hr>
<h3><a name="mips*-sgi-irix[45]">mips*-sgi-irix[45]</a></h3>
@@ -384,6 +418,7 @@ you do not have GNU make available.</p>
<p>See <a href="http://reality.sgi.com/ariel/freeware/">
http://reality.sgi.com/ariel/freeware</a> for more information about using GCC on IRIX platforms.</p>
+
<hr>
<h3><a name="mips*-sgi-irix6">mips*-sgi-irix6</a></h3>
@@ -414,6 +449,7 @@ seeing two of them: inet_ntoa, and semctl. </p>
<p>See <a href="http://reality.sgi.com/ariel/freeware/">
http://reality.sgi.com/ariel/freeware</a> for more information about using GCC on IRIX platforms.</p>
+
<hr>
<h3><a name="powerpc-*-linux-gnu*">powerpc-*-linux-gnu*</a></h3>
@@ -423,24 +459,94 @@ if you initially built it with gcc-2.7.2.x.</p>
<hr>
+<h3><a name="*-*-solaris*">*-*-solaris*</a></h3>
+
+<p>Starting with Solaris, Sun does not ship a C compiler any more. To
+bootstrap and install GCC you first have to install a pre-built
+compiler, for example from <a href="http://www.sunfreeware.com/">
+http://www.sunfreeware.com</a>.</p>
+
+<p>Sun as 4.X is broken in that it cannot cope with long symbol names.
+A typical error message might look similiar to the following:
+<BLOCKQUOTE><CODE>
+/usr/ccs/bin/as: "/var/tmp/ccMsw135.s", line 11041: error: can't compute
+value of an expression involving an external symbol.
+</CODE></BLOCKQUOTE>
+See the <a href="../faq.html#squangle">How to work around too long C++
+symbol names?</a> FAQ entry for further information.</p>
+
+<p>Sun make in all known Solaris 1 (SunOS 4) and Solaris 2 releases has a
+broken <i>VPATH</i> mechanism, which means you must either:
+<ul>
+ <li>Use GNU make (recommended), <em>or:</em></li>
+ <li>Always build in the source directory, <em>or:</em></li>
+ <li><em>(For GCC 2.95.1 only)</em>
+ apply the patches mentioned at
+ <a href="http://www.gnu.org/software/gcc/egcstensions.html#sun-make">
+ http://www.gnu.org/software/gcc/egcstensions.html#sun-make</a>.</li>
+</ul></p>
+
+
+<hr>
+<h3><a name="sparc-sun-solaris*">sparc-sun-solaris*</a></h3>
+
+<p>binutils 2.9.1 has known bugs on this platform. We recommend to use the
+vendor tools (Sun as, Sun ld) until these have been fixed.</p>
+
+
+<hr>
<h3><a name="sparc-sun-solaris2.7">sparc-sun-solaris2.7</a></h3>
<p>Sun patch 107058-01 (1999-01-13) for SPARC Solaris 7 triggers a bug in
the dynamic linker. This problem (Sun bug 4210064) affects GCC 2.8
-and later, including all EGCS releases. To avoid this problem, do not
-install Sun patch 107058-01 until after Sun releases a patch for bug
-4210064. Sun has a fix for this bug but (as of 1999-06-24) has not
-yet released it as a patch.</p>
+and later, including all EGCS releases. Sun formerly recommended
+107058-01 for all Solaris 7 users, but around 1999-09-01 it started to
+recommend it only for people who use Sun's compilers.</p>
+
+<p>Here are some workarounds to this problem:
+<ul>
+ <li>Do not install Sun patch 107058-01 until after Sun releases a
+ complete patch for bug 4210064. This is the simplest course to take,
+ unless you must also use Sun's C compiler. Unfortunately 107058-01
+ is preinstalled on some new Solaris-based hosts, so you may have to
+ back it out.</li>
+
+<li>Copy the original, unpatched Solaris 7
+ <code>/usr/ccs/bin/as</code> into
+ <code>/usr/local/lib/gcc-lib/sparc-sun-solaris2.7/2.95.1/as</code>,
+ adjusting the latter name to fit your local conventions and software
+ version numbers.</li>
+
+<li>Install Sun patch 106950-03 (1999-05-25) or later. Nobody with
+ both 107058-01 and 106950-03 installed has reported the bug with GCC
+ and Sun's dynamic linker. This last course of action is riskiest,
+ for two reasons. First, you must install 106950 on all hosts that
+ run code generated by GCC; it doesn't suffice to install it only on
+ the hosts that run GCC itself. Second, Sun says that 106950-03 is
+ only a partial fix for bug 4210064, but Sun doesn't know whether the
+ partial fix is adequate for GCC. Revision -08 or later should fix
+ the bug, but (as of 1999-10-06) it is still being tested.</li>
+</ul>
+</p>
+
+
+<hr>
+<h3><a name="sunv5">Sun V5.0 Compiler Bugs</a></h3>
+The Sun V5.0 compilers are known to mis-compile GCC, which in turn causes
+GCC to fail its bootstrap comparison test. We expect to have a workaround
+ready in time for GCC 2.95.2.
<hr>
<h3><a name="sparc-sun-sunos*">sparc-sun-sunos*</a></h3>
-<p>A bug in the SunOS4 linker will cause it to crash when linking -fPIC compiled
-objects (and will therefore not allow you to build shared libraries).</p>
+<p>A bug in the SunOS4 linker will cause it to crash when linking
+-fPIC compiled objects (and will therefore not allow you to build
+shared libraries).</p>
-<p>To fix this problem you can either use the most recent version of binutils or
-get the latest SunOS4 linker patch (patch ID 100170-10) from Sun's patch site.</p>
+<p>To fix this problem you can either use the most recent version of
+binutils or get the latest SunOS4 linker patch (patch ID 100170-10)
+from Sun's patch site.</p>
<hr>
@@ -450,16 +556,12 @@ get the latest SunOS4 linker patch (patch ID 100170-10) from Sun's patch site.</
<a href="ftp://ftp.yggdrasil.com/private/hjl">binutils-2.8.1.0.23</a>
for this platform, too.</p>
+
<hr>
<h3><a name="sparc64-*-*">sparc64-*-*</a></h3>
<p>GCC version 2.95 is not able to compile code correctly for <code>sparc64</code> targets. Users of the Linux kernel, at least, can use the <code>sparc32</code> program to start up a new shell invocation with an environment that causes <code>configure</code> to recognize (via <code>uname -a</code>) the system as <code>sparc-*-*</code> instead.</p>
-<p><b>all ELF targets (SVR4, Solaris, etc.)</b><br>
-C++ support is significantly better on ELF targets if you use the GNU
-linker; duplicate copies of inlines, vtables and template instantiations
-will be discarded automatically.</p>
-
<hr>
<h3><a name="win+os2"></a>GCC with Windows or OS/2</h3>
@@ -474,9 +576,18 @@ support.
working on a generic os/2 port with pgcc. The current code code can be found
at <a href="http://www.goof.com/pcg/os2/">http://www.goof.com/pcg/os2/</a>.</p>
+
+<hr>
+<h3><a name="elf_targets">all ELF targets (SVR4, Solaris, etc.)</a></h3>
+
+<p>C++ support is significantly better on ELF targets if you use the GNU
+linker; duplicate copies of inlines, vtables and template instantiations
+will be discarded automatically.</p>
+
+
<hr>
<p><a href="./index.html">Return to the GCC Installation page</a></p>
-<p><i>Last modified on August 15, 1999.</i></p>
+<p><i>Last modified on October 17, 1999.</i></p>
</body>
</html>
diff --git a/gnu/egcs/libio/ChangeLog b/gnu/egcs/libio/ChangeLog
index 5996c046607..832051adf64 100644
--- a/gnu/egcs/libio/ChangeLog
+++ b/gnu/egcs/libio/ChangeLog
@@ -1,3 +1,7 @@
+Sun Oct 24 23:54:10 PDT 1999 Jeff Law (law@cygnus.com)
+
+ * gcc-2.95.2 Released.
+
Mon Aug 16 01:29:24 PDT 1999 Jeff Law (law@cygnus.com)
* gcc-2.95.1 Released.
diff --git a/gnu/egcs/libio/stdio/ChangeLog b/gnu/egcs/libio/stdio/ChangeLog
index e4a185f3f2b..86b1b7e1eb4 100644
--- a/gnu/egcs/libio/stdio/ChangeLog
+++ b/gnu/egcs/libio/stdio/ChangeLog
@@ -1,3 +1,7 @@
+Sun Oct 24 23:54:10 PDT 1999 Jeff Law (law@cygnus.com)
+
+ * gcc-2.95.2 Released.
+
Mon Aug 16 01:29:24 PDT 1999 Jeff Law (law@cygnus.com)
* gcc-2.95.1 Released.
diff --git a/gnu/egcs/libio/tests/ChangeLog b/gnu/egcs/libio/tests/ChangeLog
index 324137dee5c..8493c19d226 100644
--- a/gnu/egcs/libio/tests/ChangeLog
+++ b/gnu/egcs/libio/tests/ChangeLog
@@ -1,3 +1,7 @@
+Sun Oct 24 23:54:10 PDT 1999 Jeff Law (law@cygnus.com)
+
+ * gcc-2.95.2 Released.
+
Mon Aug 16 01:29:24 PDT 1999 Jeff Law (law@cygnus.com)
* gcc-2.95.1 Released.
diff --git a/gnu/egcs/libio/testsuite/ChangeLog b/gnu/egcs/libio/testsuite/ChangeLog
index 497b141c9d1..c67090576c2 100644
--- a/gnu/egcs/libio/testsuite/ChangeLog
+++ b/gnu/egcs/libio/testsuite/ChangeLog
@@ -1,3 +1,7 @@
+Sun Oct 24 23:54:10 PDT 1999 Jeff Law (law@cygnus.com)
+
+ * gcc-2.95.2 Released.
+
Mon Aug 16 01:29:24 PDT 1999 Jeff Law (law@cygnus.com)
* gcc-2.95.1 Released.
diff --git a/gnu/egcs/libstdc++/ChangeLog b/gnu/egcs/libstdc++/ChangeLog
index 4462244e90d..462049b1324 100644
--- a/gnu/egcs/libstdc++/ChangeLog
+++ b/gnu/egcs/libstdc++/ChangeLog
@@ -1,3 +1,7 @@
+Sun Oct 24 23:54:10 PDT 1999 Jeff Law (law@cygnus.com)
+
+ * gcc-2.95.2 Released.
+
Mon Aug 16 01:29:24 PDT 1999 Jeff Law (law@cygnus.com)
* gcc-2.95.1 Released.
diff --git a/gnu/egcs/libstdc++/stl/ChangeLog b/gnu/egcs/libstdc++/stl/ChangeLog
index 22d31b0190e..aa4aa155d7e 100644
--- a/gnu/egcs/libstdc++/stl/ChangeLog
+++ b/gnu/egcs/libstdc++/stl/ChangeLog
@@ -1,3 +1,7 @@
+Sun Oct 24 23:54:10 PDT 1999 Jeff Law (law@cygnus.com)
+
+ * gcc-2.95.2 Released.
+
Mon Aug 16 01:29:24 PDT 1999 Jeff Law (law@cygnus.com)
* gcc-2.95.1 Released.
diff --git a/gnu/egcs/libstdc++/tests/ChangeLog b/gnu/egcs/libstdc++/tests/ChangeLog
index dcec430d525..458f08ad484 100644
--- a/gnu/egcs/libstdc++/tests/ChangeLog
+++ b/gnu/egcs/libstdc++/tests/ChangeLog
@@ -1,3 +1,7 @@
+Sun Oct 24 23:54:10 PDT 1999 Jeff Law (law@cygnus.com)
+
+ * gcc-2.95.2 Released.
+
Mon Aug 16 01:29:24 PDT 1999 Jeff Law (law@cygnus.com)
* gcc-2.95.1 Released.
diff --git a/gnu/egcs/libstdc++/testsuite/ChangeLog b/gnu/egcs/libstdc++/testsuite/ChangeLog
index 784b623a6dd..4e983e9b5ff 100644
--- a/gnu/egcs/libstdc++/testsuite/ChangeLog
+++ b/gnu/egcs/libstdc++/testsuite/ChangeLog
@@ -1,3 +1,7 @@
+Sun Oct 24 23:54:10 PDT 1999 Jeff Law (law@cygnus.com)
+
+ * gcc-2.95.2 Released.
+
Mon Aug 16 01:29:24 PDT 1999 Jeff Law (law@cygnus.com)
* gcc-2.95.1 Released.