mirror of
https://gcc.gnu.org/git/gcc.git
synced 2026-02-22 03:46:53 -05:00
Compare commits
320 Commits
8e76945889
...
prerelease
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
5108d207ce | ||
|
|
0b9db4a2b3 | ||
|
|
ffabfd9ea6 | ||
|
|
987fbe99b4 | ||
|
|
b98e367abb | ||
|
|
37c62b687e | ||
|
|
e5cd1d8212 | ||
|
|
59c06042bd | ||
|
|
d59f13370c | ||
|
|
da0f17e241 | ||
|
|
b6d4d48091 | ||
|
|
ec7bdb51e5 | ||
|
|
49a158b7d2 | ||
|
|
c65b5ad8c4 | ||
|
|
3d3d534c98 | ||
|
|
54659c296e | ||
|
|
9b5cd76775 | ||
|
|
bdb43221de | ||
|
|
5e6bc4bf15 | ||
|
|
181ff70208 | ||
|
|
9854a9c835 | ||
|
|
7c668de308 | ||
|
|
4f2756c71f | ||
|
|
aaae7cecd6 | ||
|
|
a0d9528b3a | ||
|
|
434233dea5 | ||
|
|
4fc4344dd0 | ||
|
|
1a57e9a998 | ||
|
|
f613cfa45b | ||
|
|
bd0698a1c5 | ||
|
|
424a57f356 | ||
|
|
14748a7df6 | ||
|
|
16b4d4c610 | ||
|
|
30461a931e | ||
|
|
51e8c352b3 | ||
|
|
0435ef254f | ||
|
|
f12e6e0d5c | ||
|
|
aa41a5afa0 | ||
|
|
f043b51f6b | ||
|
|
cd22039ac0 | ||
|
|
34d5548803 | ||
|
|
0b8b4eac13 | ||
|
|
77ad537cca | ||
|
|
c13740d59b | ||
|
|
723228fae8 | ||
|
|
18ad46b1a5 | ||
|
|
6382c3cdfd | ||
|
|
53a5e77d1c | ||
|
|
a60e231528 | ||
|
|
3899a85cc6 | ||
|
|
f40b7dfe81 | ||
|
|
bf961e84bf | ||
|
|
0240581e23 | ||
|
|
649e3d0e84 | ||
|
|
a4343d2b64 | ||
|
|
26c24ab4aa | ||
|
|
91b7921789 | ||
|
|
8f026f7e70 | ||
|
|
c013c0a093 | ||
|
|
7d20b493cb | ||
|
|
5cd60685eb | ||
|
|
2ddb7e13cd | ||
|
|
209b1e5408 | ||
|
|
58dac5b04b | ||
|
|
2e8824c51d | ||
|
|
d65b06437c | ||
|
|
02aaaeb171 | ||
|
|
e891a0791e | ||
|
|
0ee2047555 | ||
|
|
f2ed243b06 | ||
|
|
74eb05c6d7 | ||
|
|
f67dd9ef7f | ||
|
|
0ecaed0792 | ||
|
|
66d642d7f0 | ||
|
|
3daee5797d | ||
|
|
ad59466b3e | ||
|
|
6988a14b6d | ||
|
|
ebd4393cab | ||
|
|
1ef885eb44 | ||
|
|
59401b4c89 | ||
|
|
d8594fbb30 | ||
|
|
4efdce9a33 | ||
|
|
bed3c5f863 | ||
|
|
9adfedd81e | ||
|
|
22a42cf6ae | ||
|
|
a568d90fe0 | ||
|
|
bd27b3f849 | ||
|
|
e959ccc77b | ||
|
|
ae86b6f750 | ||
|
|
a7e1082cca | ||
|
|
3ecadfed1f | ||
|
|
47908a7fca | ||
|
|
79d6aa2ea1 | ||
|
|
41d6208d54 | ||
|
|
0ac695d7bc | ||
|
|
20d60bcd58 | ||
|
|
b9caac5328 | ||
|
|
92da8147ff | ||
|
|
4eee0e38ed | ||
|
|
ef5c8fb753 | ||
|
|
2b51506ca5 | ||
|
|
608eb7e38c | ||
|
|
806e89e441 | ||
|
|
3fd153fe3d | ||
|
|
aa27d43bcf | ||
|
|
d68447e240 | ||
|
|
628d51e164 | ||
|
|
2cdd969f5e | ||
|
|
48285f29f8 | ||
|
|
75f22de8d3 | ||
|
|
d9952eb363 | ||
|
|
6204c034f0 | ||
|
|
d1a7313d87 | ||
|
|
a8a02b6aed | ||
|
|
1cb35273de | ||
|
|
0c87662cc5 | ||
|
|
08bc73a937 | ||
|
|
99d93a16d4 | ||
|
|
3b7cc63e40 | ||
|
|
4217bb1376 | ||
|
|
5aaf204851 | ||
|
|
5fbbdd88ac | ||
|
|
2651814314 | ||
|
|
45440bb148 | ||
|
|
ff67b46467 | ||
|
|
db3527a701 | ||
|
|
b0e79d590f | ||
|
|
190160b847 | ||
|
|
656ec0baba | ||
|
|
ad12176a6c | ||
|
|
909ca86632 | ||
|
|
8cbc1021b0 | ||
|
|
d3c9802f05 | ||
|
|
51c97c4c50 | ||
|
|
c8d78be0ae | ||
|
|
be31dbfab9 | ||
|
|
5e3a0ff9f2 | ||
|
|
4925058ac1 | ||
|
|
ad0b58639b | ||
|
|
779b41e13f | ||
|
|
046542bf6f | ||
|
|
1c5004b28b | ||
|
|
ceac010168 | ||
|
|
7817454ead | ||
|
|
51800ea362 | ||
|
|
78ea33e5a9 | ||
|
|
4b64acaca3 | ||
|
|
4c06b5a6fc | ||
|
|
f90d7c6537 | ||
|
|
3b28278748 | ||
|
|
b740e0621a | ||
|
|
40b024d82a | ||
|
|
5ed54e2adf | ||
|
|
00c53999b9 | ||
|
|
8e15238813 | ||
|
|
b880bf9671 | ||
|
|
d6a9b88918 | ||
|
|
4aa8d78b5c | ||
|
|
33b6a84f7c | ||
|
|
1ec0787f33 | ||
|
|
43dee8707d | ||
|
|
73e40266c1 | ||
|
|
61d3c798b0 | ||
|
|
5f1ac55e0e | ||
|
|
aa2190502f | ||
|
|
43787558d6 | ||
|
|
7cb3632945 | ||
|
|
6b1fd5bddb | ||
|
|
d08d97e74b | ||
|
|
8e79adb65d | ||
|
|
e2522337dc | ||
|
|
f70ddf2279 | ||
|
|
394959aab7 | ||
|
|
3f2404487b | ||
|
|
22a44c7c45 | ||
|
|
49a7f1f269 | ||
|
|
67e7228d2e | ||
|
|
7b3febb3a8 | ||
|
|
1e2ff7a752 | ||
|
|
99a87146bd | ||
|
|
a25aaee8c4 | ||
|
|
3c1858da07 | ||
|
|
beded638ab | ||
|
|
4cabac59eb | ||
|
|
ea4fbd5c33 | ||
|
|
0a767371a5 | ||
|
|
6f604907f9 | ||
|
|
1bf1505a96 | ||
|
|
53287e7a99 | ||
|
|
6efbfd6c37 | ||
|
|
e6d503f412 | ||
|
|
5889cbd757 | ||
|
|
54b12f20bf | ||
|
|
75fca0669c | ||
|
|
53cb46ec64 | ||
|
|
876b20d8aa | ||
|
|
a2b056c861 | ||
|
|
f8b81c7685 | ||
|
|
eb94593726 | ||
|
|
5da2b8654f | ||
|
|
ea2746b6f0 | ||
|
|
9fac33031a | ||
|
|
5ca4275dba | ||
|
|
d8a5fb6fb1 | ||
|
|
b2851a2b06 | ||
|
|
7f3e8e24b2 | ||
|
|
2101ccc496 | ||
|
|
2e1e21933b | ||
|
|
bd9b49602e | ||
|
|
a242a4d509 | ||
|
|
a174460352 | ||
|
|
63a314dbb3 | ||
|
|
36541e42af | ||
|
|
d6eff81e9b | ||
|
|
a74f1d6442 | ||
|
|
e6f185a66a | ||
|
|
c794abffe0 | ||
|
|
de8afaea01 | ||
|
|
4b2f2cbe98 | ||
|
|
2ab771aa56 | ||
|
|
cfe50c05d5 | ||
|
|
e9d9af0b23 | ||
|
|
bd40fc0d3b | ||
|
|
4cdb35ceda | ||
|
|
8e70e10d70 | ||
|
|
36a638704c | ||
|
|
b97cf30e61 | ||
|
|
efaa096c5b | ||
|
|
9961d34ef7 | ||
|
|
2c12b03b9d | ||
|
|
47d60857de | ||
|
|
42bbd001f4 | ||
|
|
092ec197c9 | ||
|
|
c46e42ca1e | ||
|
|
d089c22636 | ||
|
|
6d3d79c855 | ||
|
|
61442ed4f8 | ||
|
|
73a5fb2b6a | ||
|
|
98feb76c9e | ||
|
|
6407a93063 | ||
|
|
aae0fd27cf | ||
|
|
6e4f7f10b9 | ||
|
|
0c5f4ff46c | ||
|
|
2650007e4c | ||
|
|
50fded8afc | ||
|
|
7f0627eebb | ||
|
|
a73e6800de | ||
|
|
24c32a7bb6 | ||
|
|
00d98df3a3 | ||
|
|
b237dd93c1 | ||
|
|
9933df16ca | ||
|
|
61a375c710 | ||
|
|
9d68a7e112 | ||
|
|
a8a406fff8 | ||
|
|
70da41c649 | ||
|
|
56f800f3ec | ||
|
|
9ba66cd7e0 | ||
|
|
07b69426b2 | ||
|
|
7ffec30f52 | ||
|
|
95e922e064 | ||
|
|
d89ed65240 | ||
|
|
3dd1aa6d33 | ||
|
|
c94ace644e | ||
|
|
d85b4ec13a | ||
|
|
c11407982b | ||
|
|
7e00207d3c | ||
|
|
d92770e65e | ||
|
|
a799b751a9 | ||
|
|
c99bad34ff | ||
|
|
ba645a1b64 | ||
|
|
c43fab9509 | ||
|
|
fa68ae5b43 | ||
|
|
4030d892f9 | ||
|
|
4de8ac18ab | ||
|
|
379993e0ef | ||
|
|
5a5a4b9359 | ||
|
|
87c2129050 | ||
|
|
329c8b60a0 | ||
|
|
22236925b9 | ||
|
|
4dcc58ac79 | ||
|
|
390bc80e33 | ||
|
|
4e75d3af82 | ||
|
|
7dded0b0b7 | ||
|
|
22b7ac7856 | ||
|
|
9437bd3785 | ||
|
|
f479858d79 | ||
|
|
197eb82015 | ||
|
|
201269d635 | ||
|
|
4486520944 | ||
|
|
b926413b75 | ||
|
|
b35718338b | ||
|
|
c37324b890 | ||
|
|
59a5296dea | ||
|
|
9cecccd847 | ||
|
|
de1fe093d9 | ||
|
|
8220b1a6eb | ||
|
|
188bd10e80 | ||
|
|
f761294fd9 | ||
|
|
546ef33ab8 | ||
|
|
8c8eed0b21 | ||
|
|
319ecbc3c5 | ||
|
|
683b64e696 | ||
|
|
ccac8678c2 | ||
|
|
f21356e1b3 | ||
|
|
501cf7c407 | ||
|
|
885f2d73c0 | ||
|
|
ae6e3dcd18 | ||
|
|
b316e7b85b | ||
|
|
1f223a3e08 | ||
|
|
75f909ba8e | ||
|
|
28044fd437 | ||
|
|
1564a80485 | ||
|
|
354a44b02c | ||
|
|
07d0bb4cb7 | ||
|
|
14e63f906c | ||
|
|
3094bae109 | ||
|
|
7fb96c2bc5 | ||
|
|
221405a561 | ||
|
|
9d8aee72c2 | ||
|
|
f4839469cf |
31
ChangeLog
31
ChangeLog
@@ -1,3 +1,34 @@
|
||||
Fri Oct 23 22:24:47 1998 Robert Lipe <robertl@dgii.com>
|
||||
|
||||
* config.guess: Match any version of Unixware7.
|
||||
|
||||
Fri Oct 2 01:29:30 1998 Gerald Pfeifer <pfeifer@dbai.tuwien.ac.at>
|
||||
|
||||
* README: Remove installation instructions and refer to the
|
||||
INSTALL directory instead.
|
||||
|
||||
Fri Oct 2 01:13:31 1998 John Hughes <john@Calva.COM>
|
||||
|
||||
* configure.in: Do not assume x86-svr4 or x86-unixware can handle
|
||||
stabs.
|
||||
|
||||
Tue Sep 1 01:58:21 1998 Jeffrey A Law (law@cygnus.com)
|
||||
|
||||
* egcs-1.1 Released.
|
||||
|
||||
Sat Aug 29 14:32:55 1998 David Edelsohn <edelsohn@mhpcc.edu>
|
||||
|
||||
* configure.in: Use mh-aix43.
|
||||
|
||||
1998-07-29 Manfred Hollstein <manfred@s-direktnet.de>
|
||||
|
||||
* configure: Fix --without/--disable cases for gxx-include-dir.
|
||||
|
||||
Sat Jul 18 14:32:43 CDT 1998 Robert Lipe <robertl@dgii.com>
|
||||
|
||||
* config.guess: (*-pc-sco3.2v5) Add detection for Pentium II.
|
||||
(*-pc-unixware7) Add detection for Pentium II, Pentium Pro.
|
||||
|
||||
Sat Jun 27 22:46:32 1998 Jeffrey A Law (law@cygnus.com)
|
||||
|
||||
* Makefile.in (BASE_FLAGS_TO_PASS): Add TARGET_SUBDIR.
|
||||
|
||||
@@ -81,6 +81,7 @@ Alexandre Oliva oliva@dcc.unicamp.br
|
||||
Catherine Moore clm@cygnus.com
|
||||
Vladimir Markarov vmakarov@cygnus.com
|
||||
Martin v. Löwis loewis@informatik.hu-berlin.de
|
||||
Gerald Pfeifer pfeifer@dbai.tuwien.ac.at
|
||||
|
||||
|
||||
* Indicates folks we need to get Kerberos/ssh accounts ready so they
|
||||
|
||||
34
README
34
README
@@ -3,40 +3,10 @@
|
||||
This directory contains various GNU compilers, assemblers, linkers,
|
||||
debuggers, etc., plus their support routines, definitions, and documentation.
|
||||
|
||||
If you are receiving this as part of a GDB release, see the file gdb/README.
|
||||
If with a binutils release, see binutils/README; if with a libg++ release,
|
||||
see libg++/README, etc. That'll give you info about this
|
||||
package -- supported targets, how to use it, how to report bugs, etc.
|
||||
|
||||
It is now possible to automatically configure and build a variety of
|
||||
tools with one command. To build all of the tools contained herein,
|
||||
run the ``configure'' script here, e.g.:
|
||||
Check the INSTALL directory for detailed configuration and installation
|
||||
instructions.
|
||||
|
||||
./configure
|
||||
make
|
||||
|
||||
To install them (by default in /usr/local/bin, /usr/local/lib, etc),
|
||||
then do:
|
||||
make install
|
||||
|
||||
(If the configure script can't determine your type of computer, give it
|
||||
the name as an argument, for instance ``./configure sun4''. You can
|
||||
use the script ``config.sub'' to test whether a name is recognized; if
|
||||
it is, config.sub translates it to a triplet specifying CPU, vendor,
|
||||
and OS.)
|
||||
|
||||
If you have more than one compiler on your system, it is often best to
|
||||
explicitly set CC in the environment before running configure, and to
|
||||
also set CC when running make. For example (assuming sh/bash/ksh):
|
||||
|
||||
CC=gcc ./configure
|
||||
make
|
||||
|
||||
A similar example using csh:
|
||||
|
||||
setenv CC gcc
|
||||
./configure
|
||||
make
|
||||
|
||||
Much of the code and documentation enclosed is copyright by
|
||||
the Free Software Foundation, Inc. See the file COPYING or
|
||||
|
||||
8
config.guess
vendored
8
config.guess
vendored
@@ -679,11 +679,15 @@ EOF
|
||||
echo ${UNAME_MACHINE}-pc-sysv${UNAME_RELEASE}
|
||||
fi
|
||||
exit 0 ;;
|
||||
i?86:*:5:7)
|
||||
i?86:*:5:7*)
|
||||
UNAME_REL=`(/bin/uname -X|egrep Release|sed -e 's/.*= //')`
|
||||
(/bin/uname -X|egrep i80486 >/dev/null) && UNAME_MACHINE=i486
|
||||
(/bin/uname -X|egrep '^Machine.*Pentium' >/dev/null) \
|
||||
&& UNAME_MACHINE=i586
|
||||
(/bin/uname -X|egrep '^Machine.*PentII' >/dev/null) \
|
||||
&& UNAME_MACHINE=i686
|
||||
(/bin/uname -X|egrep '^Machine.*Pentium Pro' >/dev/null) \
|
||||
&& UNAME_MACHINE=i686
|
||||
echo ${UNAME_MACHINE}-${UNAME_SYSTEM}${UNAME_VERSION}-sysv${UNAME_RELEASE}
|
||||
exit 0 ;;
|
||||
i?86:*:3.2:*)
|
||||
@@ -697,6 +701,8 @@ EOF
|
||||
&& UNAME_MACHINE=i586
|
||||
(/bin/uname -X|egrep '^Machine.*PentII' >/dev/null) \
|
||||
&& UNAME_MACHINE=i686
|
||||
(/bin/uname -X|egrep '^Machine.*Pentium Pro' >/dev/null) \
|
||||
&& UNAME_MACHINE=i686
|
||||
echo ${UNAME_MACHINE}-pc-sco$UNAME_REL
|
||||
else
|
||||
echo ${UNAME_MACHINE}-pc-sysv32
|
||||
|
||||
@@ -1,3 +1,15 @@
|
||||
Mon Aug 31 17:50:53 1998 David Edelsohn <edelsohn@mhpcc.edu>
|
||||
|
||||
* mh-aix43 (NM_FOR_TARGET): Add -X32_64 as well.
|
||||
|
||||
Sat Aug 29 14:32:55 1998 David Edelsohn <edelsohn@mhpcc.edu>
|
||||
|
||||
* mh-aix43: New file.
|
||||
|
||||
Mon Aug 10 00:15:47 1998 HJ Lu (hjl@gnu.org)
|
||||
|
||||
* mt-linux (CXXFLAGS_FOR_TARGET): Add -D_GNU_SOURCE.
|
||||
|
||||
Wed Apr 22 12:24:28 1998 Michael Meissner <meissner@cygnus.com>
|
||||
|
||||
* mt-ospace: New file, support using -Os instead of -O2 to compile
|
||||
|
||||
4
config/mh-aix43
Normal file
4
config/mh-aix43
Normal file
@@ -0,0 +1,4 @@
|
||||
# AIX 4.3 and above requires -X32_64 flag to all ar and nm commands
|
||||
# to handle both 32-bit and 64-bit objects.
|
||||
AR_FOR_TARGET=ar -X32_64
|
||||
NM_FOR_TARGET=nm -X32_64
|
||||
@@ -1,2 +1,2 @@
|
||||
# When using glibc 2 on Linux we must always use vtable thunks.
|
||||
CXXFLAGS_FOR_TARGET = $(CXXFLAGS) -fvtable-thunks
|
||||
CXXFLAGS_FOR_TARGET = $(CXXFLAGS) -fvtable-thunks -D_GNU_SOURCE
|
||||
|
||||
19
configure
vendored
19
configure
vendored
@@ -1240,14 +1240,29 @@ EOF
|
||||
# provide a proper gxx_include_dir to all subdirs.
|
||||
# Note, if you change the default, make sure to fix both here
|
||||
# and in the gcc subdirectory.
|
||||
if test -z "${with_gxx_include_dir}"; then
|
||||
# Check whether --with-gxx-include-dir or --without-gxx-include-dir was given.
|
||||
gxx_include_dir=
|
||||
if test -n "${with_gxx_include_dir}"; then
|
||||
case "${with_gxx_include_dir}" in
|
||||
yes )
|
||||
echo "configure: error: bad value ${withval} given for g++ include directory" 1>&2
|
||||
exit 1
|
||||
;;
|
||||
no )
|
||||
;;
|
||||
* )
|
||||
gxx_include_dir=${with_gxx_include_dir}
|
||||
;;
|
||||
esac
|
||||
fi
|
||||
if test x${gxx_include_dir} = x; then
|
||||
if test x${enable_version_specific_runtime_libs} = xyes; then
|
||||
echo gxx_include_dir = '${libsubdir}/include/g++' >> ${Makefile}
|
||||
else
|
||||
echo gxx_include_dir = '${prefix}/include/g++' >> ${Makefile}
|
||||
fi
|
||||
else
|
||||
echo gxx_include_dir = ${with_gxx_include_dir} >> ${Makefile}
|
||||
echo gxx_include_dir = ${gxx_include_dir} >> ${Makefile}
|
||||
fi
|
||||
|
||||
# record if we want to build shared libs.
|
||||
|
||||
@@ -212,6 +212,9 @@ case "${host}" in
|
||||
*-*-lynxos*)
|
||||
host_makefile_frag="${host_makefile_frag} config/mh-lynxos"
|
||||
;;
|
||||
*-*-aix4.[3456789]* | *-*-aix[56789].*)
|
||||
host_makefile_frag="${host_makefile_frag} config/mh-aix43"
|
||||
;;
|
||||
*-*-sysv4*)
|
||||
host_makefile_frag="${host_makefile_frag} config/mh-sysv4"
|
||||
;;
|
||||
@@ -435,7 +438,7 @@ if [ x${with_stabs} = x ]; then
|
||||
case "${target}" in
|
||||
mips*-*-irix6*)
|
||||
;;
|
||||
mips*-*-* | alpha*-*-osf* | i[3456]86*-*-sysv4* | i[3456]86*-*-unixware*)
|
||||
mips*-*-* | alpha*-*-osf*)
|
||||
with_stabs=yes;
|
||||
withoptions="${withoptions} --with-stabs"
|
||||
;;
|
||||
|
||||
@@ -1,3 +1,26 @@
|
||||
1998-08-14 Alexandre Oliva <oliva@dcc.unicamp.br>
|
||||
|
||||
* test_installed: new script for testing already-installed
|
||||
gcc/g++/g77
|
||||
|
||||
1998-08-13 Alexandre Oliva <oliva@dcc.unicamp.br>
|
||||
|
||||
* test_summary: assigned copyright to FSF
|
||||
|
||||
Wed Aug 12 19:59:36 1998 Gerald Pfeifer <pfeifer@dbai.tuwien.ac.at>
|
||||
|
||||
* egcs_update: Assigned copyright to FSF.
|
||||
|
||||
Tue Aug 11 17:55:53 1998 Gerald Pfeifer <pfeifer@dbai.tuwien.ac.at>
|
||||
Alexandre Oliva <oliva@dcc.unicamp.br>
|
||||
|
||||
* egcs_update: New switch --nostdflags and documentation
|
||||
enhancements.
|
||||
|
||||
Tue Aug 11 17:33:19 1998 Gerald Pfeifer <pfeifer@dbai.tuwien.ac.at>
|
||||
|
||||
* egcs_update: New script.
|
||||
|
||||
Fri Jun 19 02:36:59 1998 Alexandre Oliva <oliva@dcc.unicamp.br>
|
||||
|
||||
* test_summary: new switch (-i) and environment variable
|
||||
|
||||
74
contrib/egcs_update
Executable file
74
contrib/egcs_update
Executable file
@@ -0,0 +1,74 @@
|
||||
#! /bin/sh
|
||||
#
|
||||
# Update a local CVS tree from the egcs repository, with an emphasis
|
||||
# on treating generated files correctly, so that autoconf, bison et
|
||||
# al are not required for the ``end'' user.
|
||||
#
|
||||
# By default all command-line options are passed to `cvs update` in
|
||||
# addition to $UPDATE_OPTIONS (defined below). If the first parameter
|
||||
# reads --nostdflags, $UPDATE_OPTIONS as well as this parameter itself
|
||||
# are omitted.
|
||||
#
|
||||
# Examples:
|
||||
#
|
||||
# contrib/egcs_update -r egcs_latest_snapshot
|
||||
# contrib/egcs_update -A
|
||||
# contrib/egcs_update --nostdflags -P -r egcs_1_1_branch gcc/testsuite
|
||||
#
|
||||
#
|
||||
# (C) 1998 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
|
||||
# modified as defined in the GNU General Public License. A copy of
|
||||
# its license can be downloaded from http://www.gnu.org/copyleft/gpl.html
|
||||
|
||||
|
||||
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`."
|
||||
|
||||
# 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
|
||||
|
||||
if [ x"${1}"x = x"--nostdflags"x ]; then
|
||||
shift
|
||||
else
|
||||
set -- $UPDATE_OPTIONS ${1+"$@"}
|
||||
fi
|
||||
|
||||
|
||||
echo "Pass 1: Updating autoconf and bison generated files"
|
||||
find . -name configure.in -o -name '*.y' | xargs cvs -q update
|
||||
|
||||
echo "Pass 2: Updating full tree"
|
||||
cvs -q update ${1+"$@"}
|
||||
|
||||
echo "Pass 3: Fixing local tree"
|
||||
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/cstamp-h.in \
|
||||
gcc/c-gperf.h \
|
||||
gcc/c-parse.c \
|
||||
gcc/c-parse.h \
|
||||
gcc/cexp.c \
|
||||
gcc/cp/parse.c \
|
||||
gcc/cp/parse.h \
|
||||
gcc/objc/objc-parse.c \
|
||||
gcc/objc/objc-parse.y \
|
||||
libf2c/libU77/stamp-h.in
|
||||
do
|
||||
touch $f
|
||||
done
|
||||
114
contrib/test_installed
Executable file
114
contrib/test_installed
Executable file
@@ -0,0 +1,114 @@
|
||||
#! /bin/sh
|
||||
|
||||
# (C) 1998 Free Software Foundation
|
||||
# Originally by Alexandre Oliva <oliva@dcc.unicamp.br>
|
||||
|
||||
# This script is Free Software, and it can be copied, distributed and
|
||||
# modified as defined in the GNU General Public License. A copy of
|
||||
# its license can be downloaded from http://www.gnu.org/copyleft/gpl.html
|
||||
|
||||
# This scripts assumes it lives in the contrib directory of the egcs
|
||||
# source tree, so it will find the testsuite tree from its location.
|
||||
# If you move it elsewhere, or want to use another testsuite tree, you
|
||||
# can override the defaults with --srcdir=/some/dir/egcs or
|
||||
# --testsuite=/some/dir/egcs/gcc/testsuite. If you specify
|
||||
# --testsuite, --srcdir will be ignored; otherwise, `/gcc/testsuite'
|
||||
# will be appended to the srcdir.
|
||||
|
||||
# You may specify where the binaries to be tested should be picked up
|
||||
# from. If you specify --prefix=/some/dir, gcc, g++ and g77 will be
|
||||
# looked for at /some/dir/bin. Each one may be overridden by
|
||||
# specifying --with-gcc=/pathname/to/gcc, --with-g++=/pathname/to/g++
|
||||
# and --with-g77=/pathname/to/g77. If you specify --without-gcc,
|
||||
# --without-g++ or --without-g77, the test for the specified program
|
||||
# will be skipped. By default, gcc, g++ and g77 will be searched in
|
||||
# the PATH.
|
||||
|
||||
# An additional argument may specify --tmpdir=/some/dir; by default,
|
||||
# temporaries will be stored in the current directory, where the log
|
||||
# files will be stored.
|
||||
|
||||
# The script will interpret arguments until it finds one it does not
|
||||
# understand. The remaining ones will be passed to `runtest'. A
|
||||
# double-dash can be used to explicitly separate the arguments to
|
||||
# `test_installed' from the ones to `runtest'.
|
||||
|
||||
# This script should be run in an empty directory; it will refuse to
|
||||
# run if it finds a file named site.exp in the current directory.
|
||||
|
||||
|
||||
if test -f site.exp; then
|
||||
echo site.exp already exists >&2
|
||||
exit 1
|
||||
fi
|
||||
|
||||
while true; do
|
||||
case "$1" in
|
||||
--with-testsuite=*) testsuite=`echo "$1" | sed 's/[^=]*=//'`; shift;;
|
||||
--srcdir=*) srcdir=`echo "$1" | sed 's/[^=]*=//'`; shift;;
|
||||
|
||||
--prefix=*) prefix=`echo "$1" | sed 's/[^=]*=//'`; shift;;
|
||||
--with-gcc=*) GCC_UNDER_TEST=`echo "$1" | sed 's/[^=]*=//'`; shift;;
|
||||
--with-g++=*) GXX_UNDER_TEST=`echo "$1" | sed 's/[^=]*=//'`; shift;;
|
||||
--with-g77=*) G77_UNDER_TEST=`echo "$1" | sed 's/[^=]*=//'`; shift;;
|
||||
--without-gcc) GCC_UNDER_TEST=no; shift;;
|
||||
--without-g++) GXX_UNDER_TEST=no; shift;;
|
||||
--without-g77) G77_UNDER_TEST=no; shift;;
|
||||
|
||||
--tmpdir=*) tmpdir=`echo "$1" | sed 's/[^=]*=//'`; shift;;
|
||||
|
||||
--help) cat <<\EOF
|
||||
Runs the testsuite for an installed version of gcc/g++/g77
|
||||
Copyright (C) 1998 Free Software Foundation
|
||||
by Alexandre Oliva <oliva@dcc.unicamp.br>
|
||||
|
||||
Supported arguments:
|
||||
|
||||
--help prints this page
|
||||
|
||||
--with-testsuite=/some/dir/gcc/testsuite specify the testsuite directory
|
||||
--srcdir=/some/dir same as --with-testsuite=/some/dir/gcc/testsuite
|
||||
[deduced from shell-script pathname]
|
||||
|
||||
--prefix=/some/dir use gcc, g++ and g77 from /some/dir/bin [PATH]
|
||||
--with-gcc=/some/dir/bin/gcc use specified gcc program [gcc]
|
||||
--with-g++=/some/dir/bin/g++ use specified g++ program [g++]
|
||||
--with-g77=/some/dir/bin/g77 use specified g77 program [g77]
|
||||
--without-gcc do not run gcc testsuite
|
||||
--without-g++ do not run g++ testsuite
|
||||
--without-g77 do not run g77 testsuite
|
||||
|
||||
--tmpdir=/some/dir create temporaries and leave failed programs
|
||||
at specified directory [.]
|
||||
|
||||
-- end of argument list; following arguments are passed to runtest
|
||||
EOF
|
||||
exit
|
||||
;;
|
||||
|
||||
--) shift; break;;
|
||||
*) break;;
|
||||
esac
|
||||
done
|
||||
|
||||
if test x"${testsuite+set}" != x"set" && test x"${srcdir+set}" != x"set"; then
|
||||
file=$0
|
||||
while [ -h $file ]; do
|
||||
file=`ls -l $file | sed s/'.* -> '//`
|
||||
done
|
||||
srcdir=`CDPATH=. && cd \`echo "$file" | sed 's,/*[^/]*$,,;s,^$,.,'\`/.. >/dev/null && pwd`
|
||||
fi
|
||||
|
||||
cat >site.exp <<EOF
|
||||
set tmpdir "${tmpdir-`pwd`}"
|
||||
set srcdir "${testsuite-${srcdir}/gcc/testsuite}"
|
||||
set GCC_UNDER_TEST "${GCC_UNDER_TEST-${prefix}${prefix+/bin/}gcc}"
|
||||
set GXX_UNDER_TEST "${GXX_UNDER_TEST-${prefix}${prefix+/bin/}g++}"
|
||||
set G77_UNDER_TEST "${G77_UNDER_TEST-${prefix}${prefix+/bin/}g77}"
|
||||
EOF
|
||||
|
||||
test x"${GCC_UNDER_TEST}" = x"no" || runtest --tool gcc ${1+"$@"}
|
||||
test x"${GXX_UNDER_TEST}" = x"no" || runtest --tool g++ ${1+"$@"}
|
||||
test x"${G77_UNDER_TEST}" = x"no" || runtest --tool g77 ${1+"$@"}
|
||||
|
||||
exit 0
|
||||
@@ -1,6 +1,7 @@
|
||||
#! /bin/sh
|
||||
|
||||
# (C) 1998 Alexandre Oliva <oliva@dcc.unicamp.br>
|
||||
# (C) 1998 Free Software Foundation
|
||||
# Originally by Alexandre Oliva <oliva@dcc.unicamp.br>
|
||||
|
||||
# This script is Free Software, and it can be copied, distributed and
|
||||
# modified as defined in the GNU General Public License. A copy of
|
||||
|
||||
226
gcc/ABOUT-NLS
226
gcc/ABOUT-NLS
@@ -1,226 +0,0 @@
|
||||
Notes on the Free Translation Project
|
||||
*************************************
|
||||
|
||||
Free software is going international! The Free Translation Project
|
||||
is a way to get maintainers of free software, translators, and users all
|
||||
together, so that will gradually become able to speak many languages.
|
||||
A few packages already provide translations for their messages.
|
||||
|
||||
If you found this `ABOUT-NLS' file inside a distribution, you may
|
||||
assume that the distributed package does use GNU `gettext' internally,
|
||||
itself available at your nearest GNU archive site. But you do *not*
|
||||
need to install GNU `gettext' prior to configuring, installing or using
|
||||
this package with messages translated.
|
||||
|
||||
Installers will find here some useful hints. These notes also
|
||||
explain how users should proceed for getting the programs to use the
|
||||
available translations. They tell how people wanting to contribute and
|
||||
work at translations should contact the appropriate team.
|
||||
|
||||
When reporting bugs in the `intl/' directory or bugs which may be
|
||||
related to internationalization, you should tell about the version of
|
||||
`gettext' which is used. The information can be found in the
|
||||
`intl/VERSION' file, in internationalized packages.
|
||||
|
||||
One advise in advance
|
||||
=====================
|
||||
|
||||
If you want to exploit the full power of internationalization, you
|
||||
should configure it using
|
||||
|
||||
./configure --with-included-gettext
|
||||
|
||||
to force usage of internationalizing routines provided within this
|
||||
package, despite the existence of internationalizing capabilities in the
|
||||
operating system where this package is being installed. So far, only
|
||||
the `gettext' implementation in the GNU C library version 2 provides as
|
||||
many features (such as locale alias or message inheritance) as the
|
||||
implementation here. It is also not possible to offer this additional
|
||||
functionality on top of a `catgets' implementation. Future versions of
|
||||
GNU `gettext' will very likely convey even more functionality. So it
|
||||
might be a good idea to change to GNU `gettext' as soon as possible.
|
||||
|
||||
So you need not provide this option if you are using GNU libc 2 or
|
||||
you have installed a recent copy of the GNU gettext package with the
|
||||
included `libintl'.
|
||||
|
||||
INSTALL Matters
|
||||
===============
|
||||
|
||||
Some packages are "localizable" when properly installed; the
|
||||
programs they contain can be made to speak your own native language.
|
||||
Most such packages use GNU `gettext'. Other packages have their own
|
||||
ways to internationalization, predating GNU `gettext'.
|
||||
|
||||
By default, this package will be installed to allow translation of
|
||||
messages. It will automatically detect whether the system provides
|
||||
usable `catgets' (if using this is selected by the installer) or
|
||||
`gettext' functions. If neither is available, the GNU `gettext' own
|
||||
library will be used. This library is wholly contained within this
|
||||
package, usually in the `intl/' subdirectory, so prior installation of
|
||||
the GNU `gettext' package is *not* required. Installers may use
|
||||
special options at configuration time for changing the default
|
||||
behaviour. The commands:
|
||||
|
||||
./configure --with-included-gettext
|
||||
./configure --with-catgets
|
||||
./configure --disable-nls
|
||||
|
||||
will respectively bypass any pre-existing `catgets' or `gettext' to use
|
||||
the internationalizing routines provided within this package, enable
|
||||
the use of the `catgets' functions (if found on the locale system), or
|
||||
else, *totally* disable translation of messages.
|
||||
|
||||
When you already have GNU `gettext' installed on your system and run
|
||||
configure without an option for your new package, `configure' will
|
||||
probably detect the previously built and installed `libintl.a' file and
|
||||
will decide to use this. This might be not what is desirable. You
|
||||
should use the more recent version of the GNU `gettext' library. I.e.
|
||||
if the file `intl/VERSION' shows that the library which comes with this
|
||||
package is more recent, you should use
|
||||
|
||||
./configure --with-included-gettext
|
||||
|
||||
to prevent auto-detection.
|
||||
|
||||
By default the configuration process will not test for the `catgets'
|
||||
function and therefore they will not be used. The reasons are already
|
||||
given above: the emulation on top of `catgets' cannot provide all the
|
||||
extensions provided by the GNU `gettext' library. If you nevertheless
|
||||
want to use the `catgets' functions use
|
||||
|
||||
./configure --with-catgets
|
||||
|
||||
to enable the test for `catgets' (this causes no harm if `catgets' is
|
||||
not available on your system). If you really select this option we
|
||||
would like to hear about the reasons because we cannot think of any
|
||||
good one ourself.
|
||||
|
||||
Internationalized packages have usually many `po/LL.po' files, where
|
||||
LL gives an ISO 639 two-letter code identifying the language. Unless
|
||||
translations have been forbidden at `configure' time by using the
|
||||
`--disable-nls' switch, all available translations are installed
|
||||
together with the package. However, the environment variable `LINGUAS'
|
||||
may be set, prior to configuration, to limit the installed set.
|
||||
`LINGUAS' should then contain a space separated list of two-letter
|
||||
codes, stating which languages are allowed.
|
||||
|
||||
Using This Package
|
||||
==================
|
||||
|
||||
As a user, if your language has been installed for this package, you
|
||||
only have to set the `LANG' environment variable to the appropriate
|
||||
ISO 639 `LL' two-letter code prior to using the programs in the
|
||||
package. For example, let's suppose that you speak German. At the
|
||||
shell prompt, merely execute `setenv LANG de' (in `csh'),
|
||||
`export LANG; LANG=de' (in `sh') or `export LANG=de' (in `bash'). This
|
||||
can be done from your `.login' or `.profile' file, once and for all.
|
||||
|
||||
An operating system might already offer message localization for
|
||||
many of its programs, while other programs have been installed locally
|
||||
with the full capabilities of GNU `gettext'. Just using `gettext'
|
||||
extended syntax for `LANG' would break proper localization of already
|
||||
available operating system programs. In this case, users should set
|
||||
both `LANGUAGE' and `LANG' variables in their environment, as programs
|
||||
using GNU `gettext' give preference to `LANGUAGE'. For example, some
|
||||
Swedish users would rather read translations in German than English for
|
||||
when Swedish is not available. This is easily accomplished by setting
|
||||
`LANGUAGE' to `sv:de' while leaving `LANG' to `sv'.
|
||||
|
||||
Translating Teams
|
||||
=================
|
||||
|
||||
For the Free Translation Project to be a success, we need interested
|
||||
people who like their own language and write it well, and who are also
|
||||
able to synergize with other translators speaking the same language.
|
||||
Each translation team has its own mailing list, courtesy of Linux
|
||||
International. You may reach your translation team at the address
|
||||
`LL@li.org', replacing LL by the two-letter ISO 639 code for your
|
||||
language. Language codes are *not* the same as the country codes given
|
||||
in ISO 3166. The following translation teams exist, as of December
|
||||
1997:
|
||||
|
||||
Chinese `zh', Czech `cs', Danish `da', Dutch `nl', English `en',
|
||||
Esperanto `eo', Finnish `fi', French `fr', German `de', Hungarian
|
||||
`hu', Irish `ga', Italian `it', Indonesian `id', Japanese `ja',
|
||||
Korean `ko', Latin `la', Norwegian `no', Persian `fa', Polish
|
||||
`pl', Portuguese `pt', Russian `ru', Slovenian `sl', Spanish `es',
|
||||
Swedish `sv', and Turkish `tr'.
|
||||
|
||||
For example, you may reach the Chinese translation team by writing to
|
||||
`zh@li.org'.
|
||||
|
||||
If you'd like to volunteer to *work* at translating messages, you
|
||||
should become a member of the translating team for your own language.
|
||||
The subscribing address is *not* the same as the list itself, it has
|
||||
`-request' appended. For example, speakers of Swedish can send a
|
||||
message to `sv-request@li.org', having this message body:
|
||||
|
||||
subscribe
|
||||
|
||||
Keep in mind that team members are expected to participate
|
||||
*actively* in translations, or at solving translational difficulties,
|
||||
rather than merely lurking around. If your team does not exist yet and
|
||||
you want to start one, or if you are unsure about what to do or how to
|
||||
get started, please write to `translation@iro.umontreal.ca' to reach the
|
||||
coordinator for all translator teams.
|
||||
|
||||
The English team is special. It works at improving and uniformizing
|
||||
the terminology in use. Proven linguistic skill are praised more than
|
||||
programming skill, here.
|
||||
|
||||
Available Packages
|
||||
==================
|
||||
|
||||
Languages are not equally supported in all packages. The following
|
||||
matrix shows the current state of internationalization, as of December
|
||||
1997. The matrix shows, in regard of each package, for which languages
|
||||
PO files have been submitted to translation coordination.
|
||||
|
||||
Ready PO files cs da de en es fi fr it ja ko nl no pl pt ru sl sv
|
||||
.----------------------------------------------------.
|
||||
bash | [] [] [] | 3
|
||||
bison | [] [] [] | 3
|
||||
clisp | [] [] [] [] | 4
|
||||
cpio | [] [] [] [] [] [] | 6
|
||||
diffutils | [] [] [] [] [] | 5
|
||||
enscript | [] [] [] [] [] [] | 6
|
||||
fileutils | [] [] [] [] [] [] [] [] [] [] | 10
|
||||
findutils | [] [] [] [] [] [] [] [] [] | 9
|
||||
flex | [] [] [] [] | 4
|
||||
gcal | [] [] [] [] [] | 5
|
||||
gettext | [] [] [] [] [] [] [] [] [] [] [] | 12
|
||||
grep | [] [] [] [] [] [] [] [] [] [] | 10
|
||||
hello | [] [] [] [] [] [] [] [] [] [] [] | 11
|
||||
id-utils | [] [] [] | 3
|
||||
indent | [] [] [] [] [] | 5
|
||||
libc | [] [] [] [] [] [] [] | 7
|
||||
m4 | [] [] [] [] [] [] | 6
|
||||
make | [] [] [] [] [] [] | 6
|
||||
music | [] [] | 2
|
||||
ptx | [] [] [] [] [] [] [] [] | 8
|
||||
recode | [] [] [] [] [] [] [] [] [] | 9
|
||||
sh-utils | [] [] [] [] [] [] [] [] | 8
|
||||
sharutils | [] [] [] [] [] [] | 6
|
||||
tar | [] [] [] [] [] [] [] [] [] [] [] | 11
|
||||
texinfo | [] [] [] | 3
|
||||
textutils | [] [] [] [] [] [] [] [] [] | 9
|
||||
wdiff | [] [] [] [] [] [] [] [] | 8
|
||||
`----------------------------------------------------'
|
||||
17 languages cs da de en es fi fr it ja ko nl no pl pt ru sl sv
|
||||
27 packages 6 4 25 1 18 1 26 2 1 12 20 9 19 7 4 7 17 179
|
||||
|
||||
Some counters in the preceding matrix are higher than the number of
|
||||
visible blocks let us expect. This is because a few extra PO files are
|
||||
used for implementing regional variants of languages, or language
|
||||
dialects.
|
||||
|
||||
For a PO file in the matrix above to be effective, the package to
|
||||
which it applies should also have been internationalized and
|
||||
distributed as such by its maintainer. There might be an observable
|
||||
lag between the mere existence a PO file and its wide availability in a
|
||||
distribution.
|
||||
|
||||
If December 1997 seems to be old, you may fetch a more recent copy
|
||||
of this `ABOUT-NLS' file on most GNU archive sites.
|
||||
|
||||
646
gcc/ChangeLog
646
gcc/ChangeLog
@@ -1,5 +1,651 @@
|
||||
Sun Nov 1 11:04:32 1998 Jeffrey A Law (law@cygnus.com)
|
||||
|
||||
* i386/linux.h (CPP_PREDEFINES): Bring back -Di386 for the last time.
|
||||
|
||||
* From Christian Gafton:
|
||||
* i386/linux.h (CPP_PREDEFINES): Add -D__i386__.
|
||||
* sparc/linux.h (CPP_PREDEFINES): Add -D__sparc__.
|
||||
* sparc/linux64.h (CPP_PREDEFIENS): Add -D__sparc__.
|
||||
|
||||
Sat Oct 31 00:40:05 1998 Jeffrey A Law (law@cygnus.com)
|
||||
|
||||
* jump.c (jump_optimize): Initialize mappings from INSN_UID to
|
||||
EH region if exceptions are enabled and we're performing cross
|
||||
jump optimizations.
|
||||
(find_cross_jump): Exit loop if the insns are in different EH regions.
|
||||
|
||||
Fri Oct 30 00:54:25 1998 Peter Jakubek <pjak@snafu.de>
|
||||
|
||||
* m68k.h (INDIRECTABLE_1_ADDRESS_P): Fix thinko.
|
||||
|
||||
Thu Oct 29 12:14:58 1998 Jason Merrill <jason@yorick.cygnus.com>
|
||||
|
||||
* alpha/linux.h (CPP_PREDEFINES): Add missing space.
|
||||
|
||||
Tue Oct 27 16:11:43 1998 David Edelsohn <edelsohn@mhpcc.edu>
|
||||
|
||||
* collect2.c (aix64_flag): New variable.
|
||||
(main, case 'b'): Parse it.
|
||||
(GCC_CHECK_HDR): object magic number must match mode.
|
||||
(scan_prog_file): Only check for shared object if valid header.
|
||||
Print debugging if header/mode mismatch.
|
||||
* README.RS6000: Update.
|
||||
|
||||
Sun Oct 25 23:36:52 1998 Jason Merrill <jason@yorick.cygnus.com>
|
||||
|
||||
* stmt.c (expand_fixup): Set fixup->before_jump to a
|
||||
NOTE_INSN_DELETED instead of a NOTE_INSN_BLOCK_BEG.
|
||||
|
||||
Sun Oct 25 18:35:06 1998 David Edelsohn <edelsohn@mhpcc.edu>
|
||||
|
||||
* ginclude/va-ppc.h (va_arg): longlong types in overflow area are
|
||||
not doubleword aligned.
|
||||
|
||||
Sun Oct 25 12:07:00 1998 Mumit Khan <khan@xraylith.wisc.edu>
|
||||
|
||||
* i386/crtdll.h (CPP_PREDEFINES): Fix typo.
|
||||
* i386/mingw32.h (CPP_PREDEFINES): Likewise.
|
||||
|
||||
Fri Oct 23 22:41:40 1998 David Edelsohn <edelsohn@mhpcc.edu>
|
||||
|
||||
* rs6000.md (movsf): Disable explicit secondary-reload-like
|
||||
functionality if TARGET_POWERPC64.
|
||||
(movdf): Remove TARGET_POWERPC64 explicit secondary-reload-like
|
||||
functionality.
|
||||
|
||||
Fri Oct 23 22:38:57 1998 Jeffrey A Law (law@cygnus.com)
|
||||
|
||||
* m68k.md (5200 movqi): Do not allow byte sized memory references
|
||||
using address regs.
|
||||
* m68k.c (output_move_qimode): Do not use byte sized operations on
|
||||
address registers.
|
||||
|
||||
Fri Oct 23 00:56:11 1998 Jason Merrill <jason@yorick.cygnus.com>
|
||||
|
||||
* expr.c (pending_chain): Move up.
|
||||
(save_expr_status): Do save pending_chain.
|
||||
(restore_expr_status): And restore it.
|
||||
* function.h (struct function): Add pending_chain.
|
||||
|
||||
Mon Oct 19 13:22:13 1998 Geoff Keating <geoffk@ozemail.com.au>
|
||||
|
||||
* loop.c (scan_loop): Be more selective about what invariants are
|
||||
moved out of a loop.
|
||||
|
||||
Wed Oct 14 23:27:08 1998 Didier FORT (didier.fort@fedex.com)
|
||||
|
||||
* fixincludes: Fix up rpc/{clnt,svr,xdr}.h for SunOS.
|
||||
|
||||
Wed Oct 14 22:13:28 1998 Joel Sherrill (joel@OARcorp.com)
|
||||
|
||||
* Makefile.in (stmp-fixinc): Do not install assert.h if not desired.
|
||||
* config/t-rtems: Do not install assert.h -- use newlib's.
|
||||
|
||||
Sat Oct 3 19:01:03 1998 Richard Henderson <rth@cygnus.com>
|
||||
|
||||
* alpha/linux.h (CPP_PREDEFINES): Define __alpha__ for imake.
|
||||
|
||||
Fri Oct 2 01:33:30 1998 Jim Wilson <wilson@cygnus.com>
|
||||
|
||||
* i386/winnt.c (i386_pe_asm_file_end): Check
|
||||
TREE_SYMBOL_REFERENCED.
|
||||
|
||||
Fri Oct 2 01:31:54 1998 Jeffrey A Law (law@cygnus.com)
|
||||
|
||||
* regclass.c (reg_scan_mark_refs): Return immediately if passed a
|
||||
NULL_RTX as an argument.
|
||||
|
||||
* gcc.texi: Fix version # that somehow slipped through.
|
||||
|
||||
Fri Oct 2 01:24:19 1998 Geoff Keating <geoffk@ozemail.com.au>
|
||||
|
||||
* gcse.c: New definition NEVER_SET for reg_first_set, reg_last_set,
|
||||
mem_first_set, mem_last_set; because 0 can be a CUID.
|
||||
(oprs_unchanged_p): Use new definition.
|
||||
(record_last_reg_set_info): Likewise.
|
||||
(record_last_mem_set_info): Likewise.
|
||||
(compute_hash_table): Likewise.
|
||||
|
||||
Fri Oct 2 01:20:04 1998 Richard Earnshaw (rearnsha@arm.com)
|
||||
|
||||
* arm.c (add_constant): New parameter address_only, change caller.
|
||||
Set it non-zero if taking the address of an item in the pool.
|
||||
(arm_reorg): Handle cases where we need the address of an item in
|
||||
the pool.
|
||||
|
||||
* arm.c (bad_signed_byte_operand): Check both arms of a sum in
|
||||
a memory address.
|
||||
* arm.md (splits for *extendqihi_insn and *extendqisi_insn): Handle
|
||||
memory addresses that are not in standard canonical form.
|
||||
|
||||
Fri Oct 2 01:16:02 1998 Jeffrey A Law (law@cygnus.com)
|
||||
|
||||
* reg-stack.c (straighten_stack): Do nothing if the virtual stack is
|
||||
empty or has a single entry.
|
||||
|
||||
Sat Sep 5 23:29:39 1998 Mumit Khan <khan@xraylith.wisc.edu>
|
||||
|
||||
* i386/cygwin32.h (ASM_OUTPUT_SECTION_NAME): Don't check for
|
||||
for exact section attributions.
|
||||
|
||||
* i386/mingw32.h (CPP_PREDEFINES): Add __MSVCRT__ for msvc
|
||||
runtime.
|
||||
* i386/crtdll.h (CPP_PREDEFINES): Define.
|
||||
|
||||
Sat Sep 5 21:46:47 1998 Richard Henderson <rth@cygnus.com>
|
||||
|
||||
* alpha.c (alpha_ra_ever_killed): Inspect the topmost sequence,
|
||||
not whatever we're generating now.
|
||||
|
||||
Sat Sep 5 14:23:31 1998 Torbjorn Granlund <tege@matematik.su.se>
|
||||
|
||||
* m68k.md (zero_extendsidi2): Fix typo.
|
||||
|
||||
Tue Sep 1 01:58:38 1998 Jeffrey A Law (law@cygnus.com)
|
||||
|
||||
* egcs-1.1 released.
|
||||
* version.c: Update for egcs-1.1 release.
|
||||
|
||||
Mon Aug 31 14:55:02 1998 Jeffrey A Law (law@cygnus.com)
|
||||
|
||||
* NEWS: Add SCO Openserver and Unixware 7 notes.
|
||||
|
||||
* NEWS: Fix typos.
|
||||
|
||||
Sat Aug 29 14:52:28 1998 David S. Miller <davem@pierdol.cobaltmicro.com>
|
||||
|
||||
* config/sparc/sparc.md (movdf_insn, movtf_insn): Fix type and
|
||||
length attributes to match May 3rd changes made here.
|
||||
* config/sparc/sparc.h (CONDITIONAL_REGISTER_USAGE): Fix and make
|
||||
call-used %l7 when generating pic code.
|
||||
|
||||
Sat Aug 29 14:59:32 1998 Mumit Khan <khan@xraylith.wisc.edu>
|
||||
|
||||
* i386/cygwin32.h (ASM_OUTPUT_SECTION_NAME): Don't emit
|
||||
.linkonce directive after the first time.
|
||||
|
||||
Sat Aug 29 14:48:12 1998 Jeffrey A Law (law@cygnus.com)
|
||||
|
||||
* m68k.md (beq0_di): Generate correct (and more efficient) code when
|
||||
the clobbered operand overlaps with an input.
|
||||
(bne0_di): Similarly.
|
||||
|
||||
Sat Aug 29 12:38:54 1998 Jeffrey A Law (law@cygnus.com)
|
||||
|
||||
* NEWS: Various updates.
|
||||
|
||||
Tue Aug 25 19:35:24 1998 Jim Wilson <wilson@cygnus.com>
|
||||
|
||||
* configure.in (powerpc-ibm-aix4.[12]*): Change from 4.[12].*.
|
||||
(rs6000-ibm-aix4.[12]*): Likewise.
|
||||
* configure: Regnerate.
|
||||
|
||||
Thu Aug 27 23:44:49 1998 Jeffrey A Law (law@cygnus.com)
|
||||
|
||||
* reload1.c (forget_old_reloads_1): Keep track of the largest mode
|
||||
found while stripping SUBREGS and invalidate reloads for all the hard
|
||||
regs specified by that largest mode. egcs-1.1 only hack. The
|
||||
mainline tree will get a better fix.
|
||||
|
||||
Tue Aug 25 19:43:11 1998 Jeffrey A Law (law@cygnus.com)
|
||||
|
||||
* From Alexandre:
|
||||
* configure.in: Do not set thread_file to "irix" since no such
|
||||
support exists yet.
|
||||
|
||||
* reorg.c (fill_simple_delay_slots): Do not abort if we encounter
|
||||
an insn on the unfilled_slots_list that has no delay slots.
|
||||
(fill_eager_delay_slots): Similarly.
|
||||
|
||||
Mon Aug 24 15:20:19 1998 David Edelsohn <edelsohn@mhpcc.edu>
|
||||
|
||||
* rs6000.h (GO_IF_LEGITIMATE_ADDRESS): Use TARGET_POWERPC64
|
||||
when testing LEGITIMATE_INDEXED_ADDRESS_P DFmode and DImode.
|
||||
(LEGITIMIZE_ADDRESS): Use TARGET_POWERPC64 for INDEXED fixup.
|
||||
* rs6000.c (print_operand, case 'L'): Add UNITS_PER_WORD, not 4.
|
||||
(print_operand, cases 'O' and 'T'): Fix typos in lossage strings.
|
||||
* rs6000.md (fix_truncdfsi2_store): Remove %w from non-CONST_INT
|
||||
operand.
|
||||
(movdf_softfloat32, movdf_hardfloat64, movdf_softfloat64): Change
|
||||
'o' to 'm' for GPR variant constraints.
|
||||
|
||||
* rs6000.md (movqi, movhi): Add CONSTANT_P_RTX.
|
||||
|
||||
Mon Aug 24 01:21:38 PDT 1998 Jeff Law (law@cygnus.com)
|
||||
|
||||
* version.c: Bump for snapshot.
|
||||
|
||||
Sun Aug 23 00:47:52 1998 Jeffrey A Law (law@cygnus.com)
|
||||
|
||||
* regmove.c (optimize_reg_copy_3): Disable for egcs-1.1.
|
||||
|
||||
Thu Aug 20 13:56:53 1998 Michael Meissner <meissner@cygnus.com>
|
||||
|
||||
* config/i386/winnt.c: Include system.h, not stdio.h to get
|
||||
sys/param.h pulled in before rtl.h in case the system defines MIN
|
||||
and MAX.
|
||||
|
||||
Wed Aug 19 21:33:19 1998 David Edelsohn <edelsohn@mhpcc.edu>
|
||||
|
||||
* rs6000.c (rs6000_output_load_toc_table): Use ld for 64-bit.
|
||||
(output_toc): Use single TOC slot or llong minimal-toc for DFmode
|
||||
and DImode 64-bit. Use llong for minimal-toc SFmode and
|
||||
SYMBOL_REF / LABEL_REF 64-bit.
|
||||
(output_function_profiler): Use llong for profiler label and ld to
|
||||
load 64-bit label address.
|
||||
|
||||
Tue Aug 18 23:48:30 1998 Richard Henderson <rth@cygnus.com>
|
||||
|
||||
* c-common.c (decl_attributes): Issue an error if the argument
|
||||
to alias is not a string.
|
||||
|
||||
Tue Aug 18 13:05:59 BST 1998 Richard Earnshaw (rearnsha@arm.com)
|
||||
|
||||
* arm.c (arm_override_options): Remove lie about ignoring PIC flag.
|
||||
|
||||
Tue Aug 18 10:32:11 1998 Jeffrey A Law (law@cygnus.com)
|
||||
|
||||
* haifa-sched.c (sched_analyze): Put all JUMP_INSNs on the last
|
||||
pending memory flush list.
|
||||
|
||||
* regmove.c (fixup_match_2): Do not call reg_overlap_mentioned_p
|
||||
on notes.
|
||||
|
||||
* regmove.c (optimize_reg_copy_1): Update REG_N_CALLS_CROSSED
|
||||
and REG_LIVE_LENGTH as successful substitutions are made.
|
||||
|
||||
Mon Aug 17 21:07:19 1998 Jeffrey A Law (law@cygnus.com)
|
||||
|
||||
* From Graham
|
||||
* tree.c (build_index_type): Copy TYPE_SIZE_UNIT from sizetype
|
||||
to itype.
|
||||
* c-decl.c (finish_enum): Copy TYPE_SIZ_UNIT from enumtype to tem.
|
||||
|
||||
* rs6000.c (secondary_reload_class): For TARGET_ELF, indicate that
|
||||
a BASE_REGS register is needed as an intermediate when copying
|
||||
a symbolic value into any register class other than BASE_REGS.
|
||||
|
||||
Mon Aug 17 11:25:52 1998 Richard Earnshaw <rearnsha@arm.com>
|
||||
|
||||
* arm.h (SECONDARY_INPUT_RELOAD_CLASS): Return NO_REGS if compiling
|
||||
for architecture v4.
|
||||
|
||||
Sun Aug 16 00:57:48 PDT 1998 Jeff Law (law@cygnus.com)
|
||||
|
||||
* version.c: Bump for snapshot.
|
||||
|
||||
Sun Aug 16 01:53:21 1998 Richard Henderson <rth@cygnus.com>
|
||||
|
||||
* reload.c (find_equiv_reg): Reject equivalences separated
|
||||
by a volatile instruction.
|
||||
|
||||
Sun Aug 16 00:21:44 1998 Franz Sirl <Franz.Sirl-kernel@lauterbach.com>
|
||||
|
||||
* rs6000/linux.h (CPP_OS_DEFAULT_SPEC): Define.
|
||||
|
||||
Sat Aug 15 20:22:33 1998 H.J. Lu (hjl@gnu.org)
|
||||
|
||||
* config/alpha/alpha.h (ASM_OUTPUT_MI_THUNK): Handle aggregated
|
||||
return type.
|
||||
* config/alpha/win-nt.h (ASM_OUTPUT_MI_THUNK): Likewise.
|
||||
|
||||
Fri Aug 14 21:07:03 1998 Jeffrey A Law (law@cygnus.com)
|
||||
|
||||
From Joern:
|
||||
* expr.c (store_expr): Don't optimize away load-store pair
|
||||
when either source or destination have a side effect.
|
||||
|
||||
* loop.c (add_label_notes): Do not ignore references to labels
|
||||
before dispatch tables. Mirrors Apr 8 change to mark_jump_label.
|
||||
* gcse.c (add_label_notes): Similarly.
|
||||
|
||||
* pa.h (ASM_OUTPUT_MI_THUNK): Strip name encoding.
|
||||
|
||||
* m68k.md (adddi_dilshr32): One of the operands must be a register.
|
||||
(adddi_dishl32): Similarly.
|
||||
|
||||
Fri Aug 14 01:45:06 1998 Mumit Khan <khan@xraylith.wisc.edu>
|
||||
|
||||
* i386/cygwin32.h (DEFAULT_PCC_STRUCT_RETURN): Define.
|
||||
|
||||
Fri Aug 14 01:40:21 1998 Geoffrey Keating <geoffk@ozemail.com.au>
|
||||
|
||||
* rs6000/linux.h (LINK_SPEC): Pass -G args to the linker.
|
||||
|
||||
Fri Aug 14 01:23:23 1998 Richard Earnshaw (rearnsha@arm.com)
|
||||
|
||||
* arm/netbsd.h (TARGET_DEFAULT): Default includes software floating
|
||||
point.
|
||||
(CPP_FLOAT_DEFAULT_SPEC): Re-define accordingly.
|
||||
|
||||
Fri Aug 14 01:23:23 1998 Jeffrey A Law (law@cygnus.com)
|
||||
|
||||
* README.RS6000: Bring over dje's changes from the mainline
|
||||
source tree.
|
||||
|
||||
Fri Aug 14 01:19:08 1998 Robert Lipe <robertl@dgii.com>
|
||||
|
||||
* install.texi: Various SCO OpenServer tweaks.
|
||||
|
||||
Thu Aug 13 19:55:05 1998 Jim Wilson <wilson@cygnus.com>
|
||||
|
||||
* reload1.c (eliminate_regs_in_insn): Handle another case when
|
||||
eliminating the frame pointer to the hard frame pointer. Add
|
||||
missing ep->to_rtx check to one existing case.
|
||||
|
||||
Tue Aug 11 17:45:39 1998 Dave Love <d.love@dl.ac.uk>
|
||||
|
||||
* README.g77: Update from Craig.
|
||||
|
||||
Sat Aug 8 19:20:22 1998 Gary Thomas (gdt@linuxppc.org)
|
||||
|
||||
* rs6000.c (rs6000_allocate_stack_space) Fix typo which
|
||||
caused bad assembly code to be generated.
|
||||
|
||||
Sat Aug 8 18:52:51 1998 Jeffrey A Law (law@cygnus.com)
|
||||
|
||||
* netbsd.h: Fix typo.
|
||||
|
||||
Mon Aug 3 23:43:55 PDT 1998 Jeff Law (law@cygnus.com)
|
||||
|
||||
* version.c: Bump for snapshot.
|
||||
|
||||
Sun Aug 2 00:42:50 1998 Jeffrey A Law (law@cygnus.com)
|
||||
|
||||
* i386/netbsd.h: Undo previous change to DWARF2_UNWIND_INFO.
|
||||
* m68k/netbsd.h: Likewise.
|
||||
* ns32k/netbsd.h: Likewise.
|
||||
* sparc/netbsd.h: Likewise.
|
||||
|
||||
Fri Jul 31 17:08:59 1998 Jeffrey A Law (law@cygnus.com)
|
||||
|
||||
* configure.in (mingw configuration): Fix typo.
|
||||
* configure: Rebuilt.
|
||||
|
||||
Fri Jul 31 20:22:02 1998 Michael Meissner <meissner@cygnus.com>
|
||||
|
||||
* rs6000.c (rs6000_override_options): If big endian and -Os, use
|
||||
load/store multiple instructions unless user overrides.
|
||||
|
||||
Fri Jul 31 17:08:59 1998 Jeffrey A Law (law@cygnus.com)
|
||||
|
||||
* ns32k/netbsd.h: Fix typo.
|
||||
|
||||
Thu Jul 30 19:50:15 1998 David Edelsohn <edelsohn@mhpcc.edu>
|
||||
|
||||
* rs6000/x-aix43 (AR_FOR_TARGET_FLAGS): Delete.
|
||||
(AR_FOR_TARGET): Define.
|
||||
|
||||
Thu Jul 30 19:11:30 1998 Richard Henderson <rth@cygnus.com>
|
||||
|
||||
* alpha.md (fp cmp): Replicate patterns for ALPHA_TP_INSN.
|
||||
(fcmov): Remove ALPHA_TP_INSN patterns -- fcmov doesn't trap.
|
||||
|
||||
Thu Jul 30 12:51:09 1998 Mark Mitchell <mark@markmitchell.com>
|
||||
|
||||
* dyn-string.h: New file.
|
||||
* dyn-string.c: Likewise.
|
||||
* Makefile.in (OBJS): Add dyn-string.o.
|
||||
(dwarf2out.o): Add dyn-string.h dependency.
|
||||
(dyn-string.o): List dependencies.
|
||||
* dwarf2out.c: Include dyn-string.h.
|
||||
(ASM_NAME_TO_STRING): Use dyn_string_append, rather than strcpy.
|
||||
(addr_const_to_string): Take a dyn_string_t, not a char* as a
|
||||
prototype. Use dyn_string_append rather than strcat, throughout.
|
||||
(addr_to_string): Use dyn_string_t.
|
||||
|
||||
Thu Jul 30 00:58:34 1998 Jeffrey A Law (law@cygnus.com)
|
||||
|
||||
* i386.md (movqi): When optimizing a load of (const_int 1) into a
|
||||
NON_QI_REG_P, pretend the register is SImode.
|
||||
|
||||
Wed Jul 29 23:49:23 1998 Todd Vierling <tv@netbsd.org>
|
||||
|
||||
* configure.in: Use xm-netbsd.h as the NetBSD xm file (not xm-siglist).
|
||||
Accept arm32 as arm, m68k4k as m68k, mipsle as mips-dec, and any
|
||||
manufacturer id for ns32k.
|
||||
* configure: Regenerated.
|
||||
* config/netbsd.h: When using ASM_WEAKEN_LABEL, make it global too.
|
||||
* config/t-netbsd: Don't compile libgcc1-test as the fns are in libc.
|
||||
* config/i386/netbsd.h: Undefine DWARF2_UNWIND_INFO, not define as 0.
|
||||
* config/m68k/netbsd.h: Same.
|
||||
* config/ns32k/netbsd.h: Same.
|
||||
* config/sparc/netbsd.h: Same.
|
||||
|
||||
Wed Jul 29 22:39:21 1998 Jeffrey A Law (law@cygnus.com)
|
||||
|
||||
* unroll.c (unroll_loop): Do not abort for an UNROLL_MODULO
|
||||
or UNROLL_COMPLETELY loop that starts with a jump to its
|
||||
exit code.
|
||||
|
||||
Wed Jul 29 22:18:14 1998 David Edelsohn <edelsohn@mhpcc.edu>
|
||||
|
||||
* rs6000/rs6000.md (absdi2 define_split): Swap operands of MINUS.
|
||||
* rs6000/rs6000.c (mask64_operand): Use HOST_BITS_PER_WIDE_INT.
|
||||
(print_operand, case 'B'): Don't fall through.
|
||||
(print_operand, case 'S'): Correct mask begin/end computation.
|
||||
Use HOST_BITS_PER_WIDE_INT.
|
||||
* rs6000/rs6000.h (CPP_PREDEFINES): Define _LONG_LONG.
|
||||
(CONDITIONAL_REGISTER_USAGE): GPR13 fixed if TARGET_64BIT.
|
||||
* rs6000/aix41.h (CPP_PREDEFINES): Same.
|
||||
* rs6000/aix43.h (CPP_PREDEFINES): Same.
|
||||
|
||||
Tue Jul 28 23:29:04 1998 Jason Merrill <jason@yorick.cygnus.com>
|
||||
|
||||
* configure.in: Fix --without/--disable cases for local-prefix,
|
||||
gxx-include-dir and checking.
|
||||
|
||||
Tue Jul 28 22:10:43 1998 David S. Miller <davem@pierdol.cobaltmicro.com>
|
||||
|
||||
* configure.in (enable_haifa): Set by default for sparc64 too.
|
||||
configure: Rebuilt.
|
||||
|
||||
Tue Jul 28 23:29:04 1998 Jason Merrill <jason@yorick.cygnus.com>
|
||||
|
||||
* i386/cygwin32.h (VALID_MACHINE_TYPE_ATTRIBUTE): New macro.
|
||||
* i386/winnt.c (associated_type): New fn.
|
||||
(i386_pe_valid_type_attribute_p): New fn.
|
||||
(i386_pe_check_vtable_importexport): Remove.
|
||||
(i386_pe_dllexport_p): Use associated_type.
|
||||
(i386_pe_dllimport_p): Likewise.
|
||||
|
||||
From Antonio M. O. Neto <anmendes@cruzeironet.com.br>:
|
||||
* i386.c (i386_valid_type_attribute_p): Also accept
|
||||
attributes for METHOD_TYPEs.
|
||||
|
||||
Tue Jul 28 23:17:39 1998 Peter Gerwinski <peter@gerwinski.de>
|
||||
|
||||
* tree.c (build_range_type): Copy TYPE_SIZE_UNIT.
|
||||
|
||||
Tue Jul 28 22:31:12 1998 Craig Burley <burley@gnu.org>
|
||||
|
||||
* gcc.c: Fix commentary describing %g, %u, %U, and %O.
|
||||
|
||||
* gcc.c (do_spec_1): Fix handling of %g%O and %U%O to prevent
|
||||
them from generating a new base name for each occurence of
|
||||
a specific suffix.
|
||||
|
||||
1998-07-28 Vladimir N. Makarov <vmakarov@cygnus.com>
|
||||
|
||||
* cse.c (cse_insn): Enable subsitution inside libcall only for REG,
|
||||
SUBREG, MEM.
|
||||
* rtlanal.c (replace_rtx): Prohibit replaces in CONST_DOUBLE.
|
||||
|
||||
Mon Jul 27 00:54:41 1998 Jason Merrill <jason@yorick.cygnus.com>
|
||||
|
||||
* tree.c (simple_cst_equal, case CONSTRUCTOR): OK if the elts are
|
||||
identical.
|
||||
|
||||
Mon Jul 27 22:20:02 1998 Jeffrey A Law (law@cygnus.com)
|
||||
|
||||
* pa.c (move_operand): Accept CONSTANT_P_RTX.
|
||||
|
||||
Mon Jul 27 00:46:56 PDT 1998 Jeff Law (law@cygnus.com)
|
||||
|
||||
* version.c: Bump for snapshot.
|
||||
|
||||
Sun Jul 26 01:11:12 1998 H.J. Lu (hjl@gnu.org)
|
||||
|
||||
* i386.h (CONST_DOUBLE_OK_FOR_LETTER_P): Return 0 when eliminating
|
||||
the frame pointer and compiling PIC code and reload has not completed.
|
||||
|
||||
* i386.c (output_to_reg): Add code to emulate non-popping DImode
|
||||
case.
|
||||
|
||||
Sun Jul 26 01:02:54 1998 Jeffrey A Law (law@cygnus.com)
|
||||
|
||||
* regmove.c (regmove_optimize): Fix typo initializing regmove_bb_head.
|
||||
|
||||
Sat Jul 25 23:29:23 1998 Gerald Pfeifer <pfeifer@dbai.tuwien.ac.at>
|
||||
|
||||
* Makefile.in (install-info): Only try to update the info
|
||||
directory file if it exists in the first place.
|
||||
|
||||
Fri Jul 24 18:58:37 1998 Klaus Espenlaub <kespenla@student.informatik.uni-ulm.de>
|
||||
|
||||
* rs6000.h (ASM_OUTPUT_CONSTRUCTOR, ASM_OUTPUT_DESTRUCTOR): Delete.
|
||||
|
||||
Thu Jul 23 18:53:20 1998 Jim Wilson <wilson@cygnus.com>
|
||||
|
||||
* dbxout.c (dbxout_range_type): Only call dbxout_type_index for
|
||||
already defined type.
|
||||
|
||||
Wed Jul 22 14:08:54 1998 David S. Miller <davem@pierdol.cobaltmicro.com>
|
||||
|
||||
* profile.c (branch_prob): Call allocate_reg_info after outputting
|
||||
profile rtl in instrument_arcs.
|
||||
|
||||
Tue Jul 21 22:40:09 PDT 1998 Jeff Law (law@cygnus.com)
|
||||
|
||||
* version.c: Bump for snapshot.
|
||||
|
||||
Tue Jul 21 23:28:35 1998 Klaus Kaempf <kkaempf@rmi.de>
|
||||
|
||||
* cccp.c (do_include): Fix vax c style include handling.
|
||||
|
||||
Tue Jul 21 15:49:31 1998 David Edelsohn <edelsohn@mhpcc.edu>
|
||||
|
||||
* rs6000.h (PREDICATE_CODES): Add CONSTANT_P_RTX.
|
||||
* rs6000.md (movsi, movdi): Add CONSTANT_P_RTX.
|
||||
* rs6000.c (short_cint_operand): Add CONSTANT_P_RTX.
|
||||
(u_short_cint_operand): Same.
|
||||
(reg_or_cint_operand): Same.
|
||||
(logical_operand): Same.
|
||||
(input_operand): Same.
|
||||
(reg_or_short_operand): Use u_short_cint_operand.
|
||||
|
||||
Tue Jul 21 03:59:08 1998 David S. Miller <davem@pierdol.cobaltmicro.com>
|
||||
|
||||
* jump.c (jump_optimize): When simplifying noop moves and
|
||||
PUSH_ROUNDING, fix thinko so we use same criterion for identifying
|
||||
the PUSHes to rewrite in second loop as we did in the first.
|
||||
|
||||
Tue Jul 21 00:31:01 1998 Jeffrey A Law (law@cygnus.com)
|
||||
|
||||
* gcc.c (do_spec): Call "error" not "warning".
|
||||
|
||||
* configure.in: Fix minor problems with gas feature detection code.
|
||||
* configure: Rebuilt.
|
||||
|
||||
* gcc.c (do_spec): Issue a warning for '%[]' usage.
|
||||
|
||||
* Undo this change.
|
||||
* gcc.c: Delete %[spec] support.
|
||||
(do_spec_1, case '('): Likewise.
|
||||
(do_spec_1, case '['): Call error.
|
||||
|
||||
Mon Jul 20 22:34:17 1998 Richard Henderson <rth@cygnus.com>
|
||||
|
||||
* alpha.h (CPP_SPEC): Tidy. Hook to cpp_cpu and cpp_subtarget.
|
||||
(CPP_SUBTARGET_SPEC): Default to empty string.
|
||||
(CPP_AM_*, CPP_IM_*, CPP_CPU_*, CPP_CPU_SPEC): New.
|
||||
(EXTRA_SPECS, SUBTARGET_EXTRA_SPECS): New.
|
||||
* alpha/elf.h (LD_SPEC): Use %(elf_dynamic_linker).
|
||||
* alpha/linux-elf.h (SUBTARGET_EXTRA_SPECS): New.
|
||||
(LIB_SPEC): Tidy.
|
||||
* alpha/linux.h (CPP_PREDEFINES): Tidy.
|
||||
* alpha/netbsd-elf.h (SUBTARGET_EXTRA_SPECS): New.
|
||||
* alpha/netbsd.h (CPP_PREDEFINES): Tidy.
|
||||
* alpha/osf.h (CPP_PREDEFINES): Remove bits subsumed by CPP_CPU_SPEC.
|
||||
* alpha/win-nt.h (CPP_PREDEFINES): Likewise.
|
||||
* alpha/vsf.h (CPP_PREDEFINES): Likewise.
|
||||
(CPP_SUBTARGET_SPEC): New. Do this instead of overriding CPP_SPEC.
|
||||
* alpha/vxworks.h: Likewise.
|
||||
|
||||
Mon Jul 20 22:51:57 1998 Ken Raeburn <raeburn@cygnus.com>
|
||||
|
||||
* mips.md (reload_outsi): Added missing REGNO call.
|
||||
(smulsi3_highpart, umulsi3_highpart): Provide prototype for
|
||||
function pointer.
|
||||
(mul_acc_di, mul_acc_64bit_di): Don't use match_op_dup, use
|
||||
another match_operator and compare the codes.
|
||||
|
||||
* mips.h (MASK_DEBUG_E, MASK_DEBUG_I): Set to zero.
|
||||
|
||||
* MIPS multiply pattern fixes:
|
||||
* mips.h (enum reg_class, REG_CLASS_NAMES, REG_CLASS_CONTENTS):
|
||||
Add union classes for HI, LO, or HILO plus general registers.
|
||||
(GENERATE_MADD): Deleted.
|
||||
* mips.md (mulsi3_mult3): Don't disparage output-LO alternative.
|
||||
Add TARGET_MAD to condition.
|
||||
(mulsi3): Test HAVE_mulsi3_mult3, not specific flags.
|
||||
(mul_acc_si): Expand GENERATE_MADD here; it's the only use. Use
|
||||
"*d" for accumulator, to give preference to LO initially but not
|
||||
during reload.
|
||||
|
||||
Mon Jul 20 01:13:19 1998 Jim Wilson <wilson@cygnus.com>
|
||||
|
||||
* function.c (fixup_var_refs_insns): Handle CLOBBER of a CONCAT.
|
||||
|
||||
Sat Jul 18 15:20:19 1998 Mark Mitchell <mark@markmitchell.com>
|
||||
|
||||
* loop.c (maybe_eliminate_biv_1): Avoid signed/unsigned comparison
|
||||
confusion when setting cc0.
|
||||
|
||||
Fri Jul 17 03:26:12 1998 Rihcard Earnshaw (rearnsha@arm.com)
|
||||
|
||||
* tree.c (valid_machine_attribute): Only create a new type variant if
|
||||
there is a decl to use it.
|
||||
|
||||
Fri Jul 17 02:01:00 1998 Jeffrey A Law (law@cygnus.com)
|
||||
|
||||
* Makefile.in (WARN_CFLAGS): Disable -W -Wall for the release
|
||||
branch.
|
||||
|
||||
Thu Jul 16 14:48:04 1998 Nick Clifton <nickc@cygnus.com>
|
||||
|
||||
* gcc.c (do_spec_1): Cope with %g/%u/%U options which do not have
|
||||
a suffix.
|
||||
|
||||
Thu Jul 16 17:07:24 1998 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
|
||||
|
||||
* cplus-dem.c (demangle_nested_args): Make function definition
|
||||
static to match the prototype.
|
||||
|
||||
Thu Jul 16 01:17:44 1998 Richard Henderson <rth@cygnus.com>
|
||||
|
||||
* loop.c (emit_iv_add_mult): Scan the entire insn list generated
|
||||
for the sequence, recording base values.
|
||||
|
||||
Wed Jul 15 00:52:54 PDT 1998 Jeff Law (law@cygnus.com)
|
||||
|
||||
* version.c: Bump for snapshot.
|
||||
|
||||
Wed Jul 15 00:52:20 PDT 1998 Jeff Law (law@cygnus.com)
|
||||
|
||||
* version.c: Bump for snapshot.
|
||||
|
||||
Tue Jul 14 14:15:30 1998 Nick Clifton <nickc@cygnus.com>
|
||||
|
||||
* gcc.c: Remove ANSI-C ism from --help code.
|
||||
|
||||
* toplev.c: Support --help with USE_CPPLIB.
|
||||
|
||||
Tue Jul 14 02:20:38 1998 Jeffrey A Law (law@cygnus.com)
|
||||
|
||||
* configure.in: Rework gas feature code to work with symlink based
|
||||
source trees.
|
||||
|
||||
* version.c: Bump to avoid problems with old spec files during
|
||||
bootstrap.
|
||||
|
||||
|
||||
242
gcc/INSTALL
242
gcc/INSTALL
@@ -1,14 +1,30 @@
|
||||
This file documents the installation of the GNU compiler. Copyright
|
||||
This is Info file INSTALL, produced by Makeinfo version 1.68 from the
|
||||
input file install1.texi.
|
||||
|
||||
This file documents the installation of the GNU compiler. Copyright
|
||||
(C) 1988, 1989, 1992, 1994, 1995 Free Software Foundation, Inc. You
|
||||
may copy, distribute, and modify it freely as long as you preserve this
|
||||
copyright notice and permission notice.
|
||||
|
||||
|
||||
File: INSTALL, Node: Installation, Up: (dir)
|
||||
|
||||
Installing GNU CC
|
||||
*****************
|
||||
|
||||
Note most of this information is out of date and superceded by the
|
||||
EGCS install procedures. It is provided for historical reference only.
|
||||
|
||||
* Menu:
|
||||
|
||||
* Configurations:: Configurations Supported by GNU CC.
|
||||
* Other Dir:: Compiling in a separate directory (not where the source is).
|
||||
* Cross-Compiler:: Building and installing a cross-compiler.
|
||||
* Sun Install:: See below for installation on the Sun.
|
||||
* VMS Install:: See below for installation on VMS.
|
||||
* Collect2:: How `collect2' works; how it finds `ld'.
|
||||
* Header Dirs:: Understanding the standard header file directories.
|
||||
|
||||
Here is the procedure for installing GNU CC on a Unix system. See
|
||||
*Note VMS Install::, for VMS systems. In this section we assume you
|
||||
compile in the same directory that contains the source files; see *Note
|
||||
@@ -48,13 +64,13 @@ and includes all the necessary compilation tools and libraries.
|
||||
what your configuration is or guesses wrong.
|
||||
|
||||
In those cases, specify the build machine's "configuration name"
|
||||
with the `--build' option; the host and target will default to be
|
||||
the same as the build machine. (If you are building a
|
||||
with the `--host' option; the host and target will default to be
|
||||
the same as the host machine. (If you are building a
|
||||
cross-compiler, see *Note Cross-Compiler::.)
|
||||
|
||||
Here is an example:
|
||||
|
||||
./configure --build=sparc-sun-sunos4.1
|
||||
./configure --host=sparc-sun-sunos4.1
|
||||
|
||||
A configuration name may be canonical or it may be more or less
|
||||
abbreviated.
|
||||
@@ -163,7 +179,6 @@ and includes all the necessary compilation tools and libraries.
|
||||
other systems where it could usefully make a difference.
|
||||
|
||||
`--enable-haifa'
|
||||
|
||||
`--disable-haifa'
|
||||
Use `--enable-haifa' to enable use of an experimental
|
||||
instruction scheduler (from IBM Haifa). This may or may not
|
||||
@@ -182,6 +197,14 @@ and includes all the necessary compilation tools and libraries.
|
||||
possibilities for TYPE are `single', `posix', `win32',
|
||||
`solaris', `irix' and `mach'.
|
||||
|
||||
`--enable-checking'
|
||||
When you specify this option, the compiler is built to
|
||||
perform checking of tree node types when referencing fields
|
||||
of that node. This does not change the generated code, but
|
||||
adds error checking within the compiler. This will slow down
|
||||
the compiler and may only work properly if you are building
|
||||
the compiler with GNU C.
|
||||
|
||||
The `configure' script searches subdirectories of the source
|
||||
directory for other compilers that are to be integrated into GNU
|
||||
CC. The GNU compiler for C++, called G++ is in a subdirectory
|
||||
@@ -227,20 +250,22 @@ and includes all the necessary compilation tools and libraries.
|
||||
name to use instead of `/usr/local' for all purposes with one
|
||||
exception: the directory `/usr/local/include' is searched for
|
||||
header files no matter where you install the compiler. To override
|
||||
this name, use the `--local-prefix' option below.
|
||||
this name, use the `--with-local-prefix' option below. The
|
||||
directory you specify need not exist, but its parent directory
|
||||
must exist.
|
||||
|
||||
5. Specify `--local-prefix=DIR' if you want the compiler to search
|
||||
directory `DIR/include' for locally installed header files
|
||||
5. Specify `--with-local-prefix=DIR' if you want the compiler to
|
||||
search directory `DIR/include' for locally installed header files
|
||||
*instead* of `/usr/local/include'.
|
||||
|
||||
You should specify `--local-prefix' *only* if your site has a
|
||||
You should specify `--with-local-prefix' *only* if your site has a
|
||||
different convention (not `/usr/local') for where to put
|
||||
site-specific files.
|
||||
|
||||
The default value for `--local-prefix' is `/usr/local' regardless
|
||||
of the value of `--prefix'. Specifying `--prefix' has no effect
|
||||
on which directory GNU CC searches for local header files. This
|
||||
may seem counterintuitive, but actually it is logical.
|
||||
The default value for `--with-local-prefix' is `/usr/local'
|
||||
regardless of the value of `--prefix'. Specifying `--prefix' has
|
||||
no effect on which directory GNU CC searches for local header
|
||||
files. This may seem counterintuitive, but actually it is logical.
|
||||
|
||||
The purpose of `--prefix' is to specify where to *install GNU CC*.
|
||||
The local header files in `/usr/local/include'--if you put any in
|
||||
@@ -248,12 +273,12 @@ and includes all the necessary compilation tools and libraries.
|
||||
programs--perhaps many others. (GNU CC installs its own header
|
||||
files in another directory which is based on the `--prefix' value.)
|
||||
|
||||
*Do not* specify `/usr' as the `--local-prefix'! The directory
|
||||
you use for `--local-prefix' *must not* contain any of the
|
||||
system's standard header files. If it did contain them, certain
|
||||
programs would be miscompiled (including GNU Emacs, on certain
|
||||
targets), because this would override and nullify the header file
|
||||
corrections made by the `fixincludes' script.
|
||||
*Do not* specify `/usr' as the `--with-local-prefix'! The
|
||||
directory you use for `--with-local-prefix' *must not* contain any
|
||||
of the system's standard header files. If it did contain them,
|
||||
certain programs would be miscompiled (including GNU Emacs, on
|
||||
certain targets), because this would override and nullify the
|
||||
header file corrections made by the `fixincludes' script.
|
||||
|
||||
Indications are that people who use this option use it based on
|
||||
mistaken ideas of what it is for. People use it as if it specified
|
||||
@@ -300,8 +325,9 @@ and includes all the necessary compilation tools and libraries.
|
||||
escape sequence" are normal in `genopinit.c' and perhaps some
|
||||
other files. Likewise, you should ignore warnings about "constant
|
||||
is so large that it is unsigned" in `insn-emit.c' and
|
||||
`insn-recog.c' and a warning about a comparison always being zero
|
||||
in `enquire.o'. Any other compilation errors may represent bugs in
|
||||
`insn-recog.c', a warning about a comparison always being zero in
|
||||
`enquire.o', and warnings about shift counts exceeding type widths
|
||||
in `cexp.y'. Any other compilation errors may represent bugs in
|
||||
the port to your machine or operating system, and should be
|
||||
investigated and reported.
|
||||
|
||||
@@ -433,12 +459,12 @@ and includes all the necessary compilation tools and libraries.
|
||||
This copies the files `cc1', `cpp' and `libgcc.a' to files `cc1',
|
||||
`cpp' and `libgcc.a' in the directory
|
||||
`/usr/local/lib/gcc-lib/TARGET/VERSION', which is where the
|
||||
compiler driver program looks for them. Here TARGET is the target
|
||||
machine type specified when you ran `configure', and VERSION is
|
||||
the version number of GNU CC. This naming scheme permits various
|
||||
versions and/or cross-compilers to coexist. It also copies the
|
||||
executables for compilers for other languages (e.g., `cc1plus' for
|
||||
C++) to the same directory.
|
||||
compiler driver program looks for them. Here TARGET is the
|
||||
canonicalized form of target machine type specified when you ran
|
||||
`configure', and VERSION is the version number of GNU CC. This
|
||||
naming scheme permits various versions and/or cross-compilers to
|
||||
coexist. It also copies the executables for compilers for other
|
||||
languages (e.g., `cc1plus' for C++) to the same directory.
|
||||
|
||||
This also copies the driver program `xgcc' into
|
||||
`/usr/local/bin/gcc', so that it appears in typical execution
|
||||
@@ -465,8 +491,13 @@ and includes all the necessary compilation tools and libraries.
|
||||
library. All I/O functionality, special class libraries, etc., are
|
||||
provided by the C++ runtime library.
|
||||
|
||||
Here's one way to build and install a C++ runtime library for GNU
|
||||
CC:
|
||||
The standard C++ runtime library for GNU CC is called `libstdc++'.
|
||||
An obsolescent library `libg++' may also be available, but it's
|
||||
necessary only for older software that hasn't been converted yet;
|
||||
if you don't know whether you need `libg++' then you probably don't
|
||||
need it.
|
||||
|
||||
Here's one way to build and install `libstdc++' for GNU CC:
|
||||
|
||||
* Build and install GNU CC, so that invoking `gcc' obtains the
|
||||
GNU CC that was just built.
|
||||
@@ -535,6 +566,9 @@ and includes all the necessary compilation tools and libraries.
|
||||
|
||||
* thr-win32 Microsoft Win32 API thread support.
|
||||
|
||||
|
||||
File: INSTALL, Node: Configurations, Next: Other Dir, Up: Installation
|
||||
|
||||
Configurations Supported by GNU CC
|
||||
==================================
|
||||
|
||||
@@ -742,9 +776,10 @@ special things you must know:
|
||||
AMD Am29050 used in a system running a variant of BSD Unix.
|
||||
|
||||
`decstation-*'
|
||||
DECstations can support three different personalities: Ultrix, DEC
|
||||
OSF/1, and OSF/rose. To configure GCC for these platforms use the
|
||||
following configurations:
|
||||
MIPS-based DECstations can support three different personalities:
|
||||
Ultrix, DEC OSF/1, and OSF/rose. (Alpha-based DECstation products
|
||||
have a configuration name beginning with `alpha-dec'.) To
|
||||
configure GCC for these platforms use the following configurations:
|
||||
|
||||
`decstation-ultrix'
|
||||
Ultrix configuration.
|
||||
@@ -799,7 +834,9 @@ special things you must know:
|
||||
later). These can be retrieved from all the traditional GNU ftp
|
||||
archive sites.
|
||||
|
||||
GAS will need to be installed into a directory before `/bin',
|
||||
On some versions of HP-UX, you will need to install GNU `sed'.
|
||||
|
||||
You will need to be install GAS into a directory before `/bin',
|
||||
`/usr/bin', and `/usr/ccs/bin' in your search path. You should
|
||||
install GAS before you build GNU CC.
|
||||
|
||||
@@ -834,24 +871,32 @@ special things you must know:
|
||||
|
||||
`i386-*-sco3.2v5*'
|
||||
Use this for the SCO OpenServer Release family including 5.0.0,
|
||||
5.0.2, 5.0.4, Internet FastStart 1.0, and Internet FastStart 1.1.
|
||||
5.0.2, 5.0.4, 5.0.5, Internet FastStart 1.0, and Internet
|
||||
FastStart 1.1.
|
||||
|
||||
GNU CC can generate ELF binaries (if you specify `-melf') or COFF
|
||||
binaries (the default). If you are going to build your compiler
|
||||
in ELF mode (once you have bootstrapped the first stage compiler)
|
||||
you *must* specify `-melf' as part of `CC', *not* `CFLAGS', for
|
||||
example as `CC="stage1/xgcc -melf -Bstage1/" '. If you do not do
|
||||
this, the bootstrap will generate incorrect versions of `libgcc.a'.
|
||||
GNU CC can generate COFF binaries if you specify `-mcoff' or ELF
|
||||
binaries, the default. A full `make bootstrap' is recommended
|
||||
so that an ELF compiler that builds ELF is generated.
|
||||
|
||||
You must have TLS597 (from ftp.sco.com/TLS) installed for ELF
|
||||
binaries to work correctly. Note that Open Server 5.0.2 *does*
|
||||
need TLS597 installed.
|
||||
You must have TLS597 from `ftp://ftp.sco.com/TLS' installed for ELF
|
||||
C++ binaries to work correctly on releases before 5.0.4.
|
||||
|
||||
*NOTE:* You must follow the instructions about invoking `make
|
||||
bootstrap' because the native OpenServer compiler builds a
|
||||
`cc1plus' that will not correctly parse many valid C++ programs.
|
||||
You must do a `make bootstrap' if you are building with the native
|
||||
compiler.
|
||||
The native SCO assembler that is provided with the OS at no charge
|
||||
is normally required. If, however, you must be able to use the GNU
|
||||
assembler (perhaps you have complex asms) you must configure this
|
||||
package `--with-gnu-as'. To do this, install (cp or symlink)
|
||||
gcc/as to your copy of the GNU assembler. You must use a recent
|
||||
version of GNU binutils; version 2.9.1 seems to work well. If you
|
||||
select this option, you will be unable to build COFF images.
|
||||
Trying to do so will result in non-obvious failures. In general,
|
||||
the "-with-gnu-as" option isn't as well tested as the native
|
||||
assembler.
|
||||
|
||||
*NOTE:* If you are building C++, you must follow the instructions
|
||||
about invoking `make bootstrap' because the native OpenServer
|
||||
compiler may build a `cc1plus' that will not correctly parse many
|
||||
valid C++ programs. You must do a `make bootstrap' if you are
|
||||
building with the native compiler.
|
||||
|
||||
`i386-*-isc'
|
||||
It may be a good idea to link with GNU malloc instead of the
|
||||
@@ -872,10 +917,8 @@ special things you must know:
|
||||
Go to the Berkeley universe before compiling.
|
||||
|
||||
`i386-sequent-ptx1*'
|
||||
Sequent DYNIX/ptx 1.x.
|
||||
|
||||
`i386-sequent-ptx2*'
|
||||
Sequent DYNIX/ptx 2.x.
|
||||
You must install GNU `sed' before running `configure'.
|
||||
|
||||
`i386-sun-sunos4'
|
||||
You may find that you need another version of GNU CC to begin
|
||||
@@ -970,7 +1013,7 @@ special things you must know:
|
||||
options to `configure'.
|
||||
|
||||
Note the C compiler that comes with this system cannot compile GNU
|
||||
CC. You can fine binaries of GNU CC for bootstrapping on
|
||||
CC. You can find binaries of GNU CC for bootstrapping on
|
||||
`jagubox.gsfc.nasa.gov'. You will also a patched version of
|
||||
`/bin/ld' there that raises some of the arbitrary limits found in
|
||||
the original.
|
||||
@@ -1059,9 +1102,9 @@ special things you must know:
|
||||
In addition, if you wish to use gas `--with-gnu-as' you must use
|
||||
gas version 2.1 or later, and you must use the GNU linker version
|
||||
2.1 or later. Earlier versions of gas relied upon a program which
|
||||
converted the gas output into the native HP/UX format, but that
|
||||
converted the gas output into the native HP-UX format, but that
|
||||
program has not been kept up to date. gdb does not understand
|
||||
that native HP/UX format, so you must use gas if you wish to use
|
||||
that native HP-UX format, so you must use gas if you wish to use
|
||||
gdb.
|
||||
|
||||
`m68k-sun'
|
||||
@@ -1248,13 +1291,15 @@ special things you must know:
|
||||
xlc-1.2.1.8, xlc-1.3.0.0 (distributed with AIX 3.2.5), and
|
||||
xlc-1.3.0.19. Both xlc-1.2.1.28 and xlc-1.3.0.24 (PTF 432238) are
|
||||
known to produce working versions of GNU CC, but most other recent
|
||||
releases correctly bootstrap GNU CC. Also, releases of AIX prior
|
||||
to AIX 3.2.4 include a version of the IBM assembler which does not
|
||||
accept debugging directives: assembler updates are available as
|
||||
PTFs. Also, if you are using AIX 3.2.5 or greater and the GNU
|
||||
assembler, you must have a version modified after October 16th,
|
||||
1995 in order for the GNU C compiler to build. See the file
|
||||
`README.RS6000' for more details on of these problems.
|
||||
releases correctly bootstrap GNU CC.
|
||||
|
||||
Release 4.3.0 of AIX and ones prior to AIX 3.2.4 include a version
|
||||
of the IBM assembler which does not accept debugging directives:
|
||||
assembler updates are available as PTFs. Also, if you are using
|
||||
AIX 3.2.5 or greater and the GNU assembler, you must have a
|
||||
version modified after October 16th, 1995 in order for the GNU C
|
||||
compiler to build. See the file `README.RS6000' for more details
|
||||
on any of these problems.
|
||||
|
||||
GNU CC does not yet support the 64-bit PowerPC instructions.
|
||||
|
||||
@@ -1401,6 +1446,9 @@ special things you must know:
|
||||
You may need to raise the ULIMIT setting to build a C++ compiler,
|
||||
as the file `cc1plus' is larger than one megabyte.
|
||||
|
||||
|
||||
File: INSTALL, Node: Other Dir, Next: Cross-Compiler, Prev: Configurations, Up: Installation
|
||||
|
||||
Compilation in a Separate Directory
|
||||
===================================
|
||||
|
||||
@@ -1445,6 +1493,9 @@ configuration steps shown above, when ordinary source files change. You
|
||||
must, however, run `configure' again when the configuration files
|
||||
change, if your system does not support symbolic links.
|
||||
|
||||
|
||||
File: INSTALL, Node: Cross-Compiler, Next: Sun Install, Prev: Other Dir, Up: Installation
|
||||
|
||||
Building and Installing a Cross-Compiler
|
||||
========================================
|
||||
|
||||
@@ -1471,6 +1522,20 @@ If you want to link on other than the target machine, you need a
|
||||
cross-linker as well. You also need header files and libraries suitable
|
||||
for the target machine that you can install on the host machine.
|
||||
|
||||
* Menu:
|
||||
|
||||
* Steps of Cross:: Using a cross-compiler involves several steps
|
||||
that may be carried out on different machines.
|
||||
* Configure Cross:: Configuring a cross-compiler.
|
||||
* Tools and Libraries:: Where to put the linker and assembler, and the C library.
|
||||
* Cross Headers:: Finding and installing header files
|
||||
for a cross-compiler.
|
||||
* Cross Runtime:: Supplying arithmetic runtime routines (`libgcc1.a').
|
||||
* Build Cross:: Actually compiling the cross-compiler.
|
||||
|
||||
|
||||
File: INSTALL, Node: Steps of Cross, Next: Configure Cross, Up: Cross-Compiler
|
||||
|
||||
Steps of Cross-Compilation
|
||||
--------------------------
|
||||
|
||||
@@ -1496,6 +1561,9 @@ machine, since then you can do it all with a single invocation of GNU
|
||||
CC. This requires a suitable cross-assembler and cross-linker. For
|
||||
some targets, the GNU assembler and linker are available.
|
||||
|
||||
|
||||
File: INSTALL, Node: Configure Cross, Next: Tools and Libraries, Prev: Steps of Cross, Up: Cross-Compiler
|
||||
|
||||
Configuring a Cross-Compiler
|
||||
----------------------------
|
||||
|
||||
@@ -1508,6 +1576,9 @@ system running BSD on a system that `configure' can correctly identify:
|
||||
|
||||
./configure --target=m68k-hp-bsd4.3
|
||||
|
||||
|
||||
File: INSTALL, Node: Tools and Libraries, Next: Cross Headers, Prev: Configure Cross, Up: Cross-Compiler
|
||||
|
||||
Tools and Libraries for a Cross-Compiler
|
||||
----------------------------------------
|
||||
|
||||
@@ -1576,6 +1647,9 @@ machine:
|
||||
mget *crt*.o
|
||||
quit
|
||||
|
||||
|
||||
File: INSTALL, Node: Cross Runtime, Next: Build Cross, Prev: Cross Headers, Up: Cross-Compiler
|
||||
|
||||
`libgcc.a' and Cross-Compilers
|
||||
------------------------------
|
||||
|
||||
@@ -1661,6 +1735,9 @@ Otherwise, you should place your replacement library under the name
|
||||
`libgcc1.a' in the directory in which you will build the
|
||||
cross-compiler, before you run `make'.
|
||||
|
||||
|
||||
File: INSTALL, Node: Cross Headers, Next: Cross Runtime, Prev: Tools and Libraries, Up: Cross-Compiler
|
||||
|
||||
Cross-Compilers and Header Files
|
||||
--------------------------------
|
||||
|
||||
@@ -1709,6 +1786,9 @@ machine. On the target machine, do this:
|
||||
quit
|
||||
tar xf tarfile
|
||||
|
||||
|
||||
File: INSTALL, Node: Build Cross, Prev: Cross Runtime, Up: Cross-Compiler
|
||||
|
||||
Actually Building the Cross-Compiler
|
||||
------------------------------------
|
||||
|
||||
@@ -1742,11 +1822,19 @@ must specify a 68030 as the host when you configure it.
|
||||
|
||||
To install the cross-compiler, use `make install', as usual.
|
||||
|
||||
|
||||
File: INSTALL, Node: Sun Install, Next: VMS Install, Prev: Cross-Compiler, Up: Installation
|
||||
|
||||
Installing GNU CC on the Sun
|
||||
============================
|
||||
|
||||
On Solaris (version 2.1), do not use the linker or other tools in
|
||||
`/usr/ucb' to build GNU CC. Use `/usr/ccs/bin'.
|
||||
On Solaris, do not use the linker or other tools in `/usr/ucb' to
|
||||
build GNU CC. Use `/usr/ccs/bin'.
|
||||
|
||||
If the assembler reports `Error: misaligned data' when bootstrapping,
|
||||
you are probably using an obsolete version of the GNU assembler.
|
||||
Upgrade to the latest version of GNU `binutils', or use the Solaris
|
||||
assembler.
|
||||
|
||||
Make sure the environment variable `FLOAT_OPTION' is not set when
|
||||
you compile `libgcc.a'. If this option were set to `f68881' when
|
||||
@@ -1772,6 +1860,9 @@ error which does not recur if you run it again. To fix the problem,
|
||||
install Sun recommended patch 100726 (for SunOS 4.1.3) or 101508 (for
|
||||
SunOS 4.1.3_U1), or upgrade to a later SunOS release.
|
||||
|
||||
|
||||
File: INSTALL, Node: VMS Install, Next: Collect2, Prev: Sun Install, Up: Installation
|
||||
|
||||
Installing GNU CC on VMS
|
||||
========================
|
||||
|
||||
@@ -1977,6 +2068,9 @@ edit the file `tm.h' (created by `vmsconfig.com') to define the macro
|
||||
`QSORT_WORKAROUND' is always defined when GNU CC is compiled with
|
||||
VAX C, to avoid a problem in case `gcclib.olb' is not yet available.
|
||||
|
||||
|
||||
File: INSTALL, Node: Collect2, Next: Header Dirs, Prev: VMS Install, Up: Installation
|
||||
|
||||
`collect2'
|
||||
==========
|
||||
|
||||
@@ -2042,6 +2136,9 @@ search path.
|
||||
`collect2' searches for the utilities `nm' and `strip' using the
|
||||
same algorithm as above for `ld'.
|
||||
|
||||
|
||||
File: INSTALL, Node: Header Dirs, Prev: Collect2, Up: Installation
|
||||
|
||||
Standard Header File Directories
|
||||
================================
|
||||
|
||||
@@ -2070,3 +2167,22 @@ use. For a cross-compiler, this is the equivalent of `/usr/include'.
|
||||
When you build a cross-compiler, `fixincludes' processes any header
|
||||
files in this directory.
|
||||
|
||||
|
||||
|
||||
Tag Table:
|
||||
Node: Installation351
|
||||
Node: Configurations26618
|
||||
Node: Other Dir65739
|
||||
Node: Cross-Compiler67454
|
||||
Node: Steps of Cross69284
|
||||
Node: Configure Cross70401
|
||||
Node: Tools and Libraries71037
|
||||
Node: Cross Runtime73475
|
||||
Node: Cross Headers77555
|
||||
Node: Build Cross79553
|
||||
Node: Sun Install81428
|
||||
Node: VMS Install83099
|
||||
Node: Collect293028
|
||||
Node: Header Dirs95592
|
||||
|
||||
End Tag Table
|
||||
|
||||
@@ -63,7 +63,7 @@ XCFLAGS =
|
||||
TCFLAGS =
|
||||
CFLAGS = -g
|
||||
BOOT_CFLAGS = -O2 $(CFLAGS)
|
||||
WARN_CFLAGS = -W -Wall
|
||||
WARN_CFLAGS =
|
||||
# These exists to be overridden by the x-* and t-* files, respectively.
|
||||
X_CFLAGS =
|
||||
T_CFLAGS =
|
||||
@@ -641,7 +641,8 @@ OBJS = toplev.o version.o tree.o print-tree.o stor-layout.o fold-const.o \
|
||||
regclass.o local-alloc.o global.o reload.o reload1.o caller-save.o gcse.o \
|
||||
insn-peep.o reorg.o $(SCHED_PREFIX)sched.o final.o recog.o reg-stack.o \
|
||||
insn-opinit.o insn-recog.o insn-extract.o insn-output.o insn-emit.o \
|
||||
profile.o insn-attrtab.o $(out_object_file) getpwd.o $(EXTRA_OBJS) convert.o
|
||||
profile.o insn-attrtab.o $(out_object_file) getpwd.o $(EXTRA_OBJS) convert.o \
|
||||
dyn-string.o
|
||||
|
||||
# GEN files are listed separately, so they can be built before doing parallel
|
||||
# makes for cc1 or cc1plus. Otherwise sequent parallel make attempts to load
|
||||
@@ -1413,7 +1414,7 @@ dwarfout.o : dwarfout.c $(CONFIG_H) system.h $(TREE_H) $(RTL_H) dwarf.h \
|
||||
flags.h insn-config.h reload.h output.h defaults.h toplev.h dwarfout.h
|
||||
dwarf2out.o : dwarf2out.c $(CONFIG_H) system.h $(TREE_H) $(RTL_H) dwarf2.h \
|
||||
flags.h insn-config.h reload.h output.h defaults.h \
|
||||
hard-reg-set.h $(REGS_H) $(EXPR_H) toplev.h dwarf2out.h
|
||||
hard-reg-set.h $(REGS_H) $(EXPR_H) toplev.h dwarf2out.h dyn-string.h
|
||||
xcoffout.o : xcoffout.c $(CONFIG_H) system.h $(TREE_H) $(RTL_H) xcoffout.h \
|
||||
flags.h toplev.h output.h dbxout.h
|
||||
emit-rtl.o : emit-rtl.c $(CONFIG_H) system.h $(RTL_H) $(TREE_H) flags.h \
|
||||
@@ -1489,6 +1490,7 @@ recog.o : recog.c $(CONFIG_H) system.h $(RTL_H) \
|
||||
insn-flags.h insn-codes.h real.h
|
||||
reg-stack.o : reg-stack.c $(CONFIG_H) system.h $(RTL_H) $(TREE_H) \
|
||||
$(REGS_H) hard-reg-set.h flags.h insn-config.h insn-flags.h toplev.h
|
||||
dyn-string.o: dyn-string.c dyn-string.h $(CONFIG_H) system.h gansidecl.h
|
||||
|
||||
$(out_object_file): $(out_file) $(CONFIG_H) $(TREE_H) \
|
||||
$(RTL_H) $(REGS_H) hard-reg-set.h real.h insn-config.h conditions.h \
|
||||
@@ -2002,9 +2004,12 @@ stmp-fixinc: $(FIXINCLUDES) gsyslimits.h
|
||||
$(SHELL) $(srcdir)/$(FIXINCLUDES) include $$dir; \
|
||||
else true; fi; \
|
||||
done; \
|
||||
rm -f include/assert.h; \
|
||||
cp $(srcdir)/assert.h include/assert.h; \
|
||||
chmod a+r include/assert.h; \
|
||||
if [ x$(INSTALL_ASSERT_H) != x ] ; \
|
||||
then \
|
||||
rm -f include/assert.h; \
|
||||
cp $(srcdir)/assert.h include/assert.h; \
|
||||
chmod a+r include/assert.h; \
|
||||
fi \
|
||||
else true; \
|
||||
fi
|
||||
rm -f include/syslimits.h
|
||||
@@ -2384,9 +2389,11 @@ install-info: doc installdirs lang.install-info
|
||||
$(INSTALL_DATA) $$f $(infodir)/$$f; \
|
||||
done
|
||||
-if $(SHELL) -c 'install-info --version' >/dev/null 2>&1; then \
|
||||
if [ -f $(infodir)/dir ] ; then \
|
||||
for f in cpp.info gcc.info; do \
|
||||
install-info --dir-file=$(infodir)/dir $(infodir)/$$f; \
|
||||
done; \
|
||||
else true; fi; \
|
||||
else true; fi;
|
||||
-chmod a-x $(infodir)/cpp.info* $(infodir)/gcc.info*
|
||||
|
||||
|
||||
106
gcc/NEWS
106
gcc/NEWS
@@ -1,4 +1,104 @@
|
||||
Noteworthy changes in GCC for EGCS.
|
||||
Noteworthy changes in GCC for EGCS 1.1.
|
||||
---------------------------------------
|
||||
|
||||
The compiler now implements global common subexpression elimination (gcse) as
|
||||
well as global constant/copy propagation. (link to gcse page).
|
||||
|
||||
More major improvements have been made to the alias analysis code. A new
|
||||
option to allow front-ends to provide alias information to the optimizers
|
||||
has also been added (-fstrict-aliasing). -fstrict-aliasing is off by default
|
||||
now, but will be enabled by default in the future. (link to alias page)
|
||||
|
||||
Major changes continue in the exception handling support. This release
|
||||
includes some changes to reduce static overhead for exception handling. It
|
||||
also includes some major changes to the setjmp/longjmp based EH mechanism to
|
||||
make it less pessimistic. And finally, major infrastructure improvements
|
||||
to the dwarf2 EH mechanism have been made to make our EH support extensible.
|
||||
|
||||
We have fixed the infamous security problems with temporary files.
|
||||
|
||||
The "regmove" optimization pass has been nearly completely rewritten. It now
|
||||
uses much more information about the target to determine profitability of
|
||||
transformations.
|
||||
|
||||
The compiler now recomputes register usage information immediately before
|
||||
register allocation. Previously such information was only not kept up to
|
||||
date after instruction combination which led to poor register allocation
|
||||
choices by our priority based register allocator.
|
||||
|
||||
The register reloading phase of the compiler has been improved to better
|
||||
optimize spill code. This primarily helps targets which generate lots of
|
||||
spills (like the x86 ports and many register poor embedded ports).
|
||||
|
||||
A few changes in the heuristics used by the register allocator and scheduler
|
||||
have been made which can significantly improve performance for certain
|
||||
applications.
|
||||
|
||||
The compiler's branch shortening algorithms have been significantly improved
|
||||
to work better on targets which align jump targets.
|
||||
|
||||
The compiler now supports the "ADDRESSOF" optimization which can significantly
|
||||
reduce the overhead for certain inline calls (and inline calls in general).
|
||||
|
||||
The compiler now supports a code size optimization switch (-Os). When enabled
|
||||
the compiler will prefer optimizations which improve code size over those
|
||||
which improve code speed.
|
||||
|
||||
The compiler has been improved to completely eliminate library calls which
|
||||
compute constant values. This is particularly useful on machines which
|
||||
do not have integer mul/div or floating point support on-chip.
|
||||
|
||||
GCC now supports a "--help" option to print detailed help information.
|
||||
|
||||
cpplib has been greatly improved. It is probably useable for some sites now
|
||||
(major missing feature is trigraphs).
|
||||
|
||||
Memory footprint for the compiler has been significantly reduced for certain
|
||||
pathalogical cases.
|
||||
|
||||
Build time improvements for targets which support lots of sched parameters
|
||||
(alpha and mips primarily).
|
||||
|
||||
Compile time for certain programs using large constant initializers has been
|
||||
improved (effects glibc significantly).
|
||||
|
||||
Plus an incredible number of infrastructure changes, warning fixes, bugfixes
|
||||
and local optimizations.
|
||||
|
||||
Various improvements have been made to better support cross compilations. They
|
||||
are still not easy, but they are improving.
|
||||
|
||||
Target specific NEWS
|
||||
|
||||
Sparc: Now includes V8 plus and V9 support, lots of tuning for Ultrasparcs
|
||||
and uses the Haifa scheduler by default.
|
||||
|
||||
Alpha: EV6 tuned, optimized expansion of memcpy/bzero.
|
||||
|
||||
x86: Data in the static store is aligned per Intel recommendations. Jump
|
||||
targets are aligned per Intel recommendations. Improved epilogue
|
||||
sequences for Pentium chips. Backend improvements which should help
|
||||
register allocation on all x86 variants. Support for PPro conditional
|
||||
move instructions has been fixed and enabled. Random changes
|
||||
throughout the port to make generated code more Pentium friendly.
|
||||
Improved support for 64bit integer operations.
|
||||
Unixware 7, a System V Release 5 target is now supported.
|
||||
SCO OpenServer targets can support GAS. See gcc/INSTALL for details.
|
||||
|
||||
RS6000/PowerPC: Includes AIX4.3 support as well as PowerPC64 support.
|
||||
Haifa instruction scheduling is enabled by default now.
|
||||
|
||||
MIPS: Multiply/Multiply-Add support has been largely rewritten to generate
|
||||
more efficient code. Includes mips16 support.
|
||||
|
||||
M68K: Various micro-optimizations and Coldfire fixes.
|
||||
|
||||
M32r: Major improvements to this port.
|
||||
|
||||
Arm: Includes Thumb and super interworking support.
|
||||
|
||||
EGCS includes all gcc2 changes up to and including the June 9, 1998 snapshot.
|
||||
|
||||
|
||||
Noteworthy changes in GCC version 2.8.1
|
||||
---------------------------------------
|
||||
@@ -138,7 +238,7 @@ New features for Motorola 68k family:
|
||||
|
||||
New features for the HP PA RISC:
|
||||
|
||||
-mspace and m-no-space
|
||||
-mspace and -mno-space
|
||||
-mlong-load-store and -mno-long-load-store
|
||||
-mbig-switch -mno-big-switch
|
||||
|
||||
@@ -171,7 +271,7 @@ New features for rs6000 and PowerPC systems:
|
||||
The Linux-based GNU system running on PowerPC's.
|
||||
-mcpu=604e,602,603e,620,801,823,mpc505,821,860,power2
|
||||
-mtune=xxx
|
||||
-mrelocatable-lib, m-no-relocatable-lib
|
||||
-mrelocatable-lib, -mno-relocatable-lib
|
||||
-msim, -mmve, -memb
|
||||
-mupdate, -mno-update
|
||||
-mfused-madd, -mno-fused-madd
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
This directory contains the egcs version 1.0 release of the GNU C
|
||||
This directory contains the egcs version 1.1.1 release of the GNU C
|
||||
compiler. It includes all of the support for compiling C++ and
|
||||
Objective C, including a run-time library for Objective C.
|
||||
|
||||
|
||||
@@ -1,3 +1,16 @@
|
||||
AIX 4.3 archive libraries
|
||||
|
||||
AIX 4.3 utilizes a new "large format" archive to support both 32-bit and
|
||||
64-bit object modules. The routines provided in AIX 4.3.0 and AIX 4.3.1
|
||||
to parse archive libraries did not handle the new format correctly. These
|
||||
routines are used by GCC and result in error messages during linking such
|
||||
as "not a COFF file". The version of the routines shipped with AIX 4.3.1
|
||||
should work for a 32-bit environment. The "-g" option of the archive
|
||||
command may be used to create archives of 32-bit objects using the
|
||||
original "small format". A correct version of the routines is shipped
|
||||
with AIX 4.3.2.
|
||||
|
||||
|
||||
AIX 4.3 assembler
|
||||
|
||||
The AIX 4.3.0.0 assembler generates incorrect object files if the ".bs"
|
||||
@@ -5,12 +18,19 @@ pseudo-op references symbols in certain sections. If GCC is invoked with
|
||||
the -g debugging option (including during bootstrapping), incorrect object
|
||||
files will be produced and the AIX linker will fail with a severe error.
|
||||
A fix for APAR IX74254 (64BIT DISASSEMBLED OUPUT FROM COMPILER FAILS TO
|
||||
ASSEMBLE/BIND) is available from IBM Customer Support and IBM's
|
||||
ASSEMBLE/BIND) is available from IBM Customer Support and from its
|
||||
service.boulder.ibm.com website as PTF U453956.
|
||||
|
||||
|
||||
AIX 4.1 binder
|
||||
|
||||
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.
|
||||
Linking f771, the GNU Fortran backend, will fail in this manner. A fix
|
||||
for APAR IX75823 (OVERFLOW DURING LINK WHEN USING GCC AND -BBIGTOC) is
|
||||
available from IBM Customer Support and from its website as PTF U455193.
|
||||
|
||||
Due to changes in the way that GCC invokes the binder (linker) for AIX 4.1,
|
||||
the link step now may produce warnings of duplicate symbols which were not
|
||||
reported before. The assembly files generated by GCC for AIX always have
|
||||
@@ -104,8 +124,7 @@ assembler.
|
||||
|
||||
Any customer can order and get the replacement assembler, and install it on
|
||||
one or more machines. It is available on diskette from IBM Customer Support
|
||||
and from the IBM Internet fix anonymous ftp server (FixDist) at
|
||||
service.boulder.ibm.com (198.17.57.66).
|
||||
and from its website.
|
||||
|
||||
If you contact IBM Customer Support, they may also ask you for your customer
|
||||
number. If you do not know it, you will still be able to get the fix, but
|
||||
|
||||
277
gcc/README.g77
277
gcc/README.g77
@@ -1,134 +1,221 @@
|
||||
1998-03-08
|
||||
1998-08-11
|
||||
|
||||
This directory contains the version 0.5.22 release of the GNU Fortran
|
||||
compiler. The GNU Fortran compiler is free software. See the file
|
||||
COPYING.g77 for copying permission.
|
||||
This directory contains the egcs variant of version 0.5.24 of the
|
||||
GNU Fortran compiler (g77). The GNU Fortran compiler is free software.
|
||||
See the file COPYING.g77 for copying permission.
|
||||
|
||||
* IMPORTANT: Things you *must* do are marked with a * at the beginning of
|
||||
the line in this file!!!
|
||||
Currently, two variants of g77 exist. One is the Free Software Foundation
|
||||
(FSF) variant. The other is the egcs variant. As of egcs version 1.1,
|
||||
these variants are kept fairly similar in most respects. Pertinent
|
||||
differences, such as the layout of the source code, are specified below.
|
||||
|
||||
* DO NOT send any email (reporting bugs, asking questions, etc.) to
|
||||
<fortran@gnu.org> without *first* reading the g77 documentation,
|
||||
using `info', Info mode in GNU Emacs, or a text viewer such as `more'.
|
||||
The g77 documentation is in the files named `g77.info', `g77.info-1',
|
||||
`g77.info-2', and so on in g77 `f' directory. If these files are
|
||||
not present or you can't find them, contact the person or organization
|
||||
that put together the g77 distribution you are using (probably not the
|
||||
FSF), or ask your system administrator for help.
|
||||
Below, `[FSF]' denotes information applicable to only the FSF variant of
|
||||
g77, while `[egcs]' denotes egcs-only information.
|
||||
|
||||
This README is for GNU Fortran, and describes the files in the f/
|
||||
directory. The f/ directory is intended to be a subdirectory of a
|
||||
gcc source tree. These directories are referred to below as gcc/,
|
||||
which is the top-level directory containing the gcc back end, the
|
||||
gcc C front end, and other non-Fortran files, and gcc/f/, which
|
||||
contains all of the Fortran files.
|
||||
|
||||
* To build GNU Fortran, you must have a source distribution of gcc
|
||||
version 2.7.2.3. Do not attempt to use any other version
|
||||
of gcc, because this version of g77 is designed to work only with
|
||||
gcc version 2.7.2.3.
|
||||
* IMPORTANT: Things you *must* do (or avoid) are marked with a * at the
|
||||
beginning of the line in this file!!!
|
||||
|
||||
* Note that you must have source copies of these gcc distributions!!
|
||||
You cannot build g77 just using binaries of gcc. Also, unless you
|
||||
are an expert, avoid using any distribution of gcc not identical to
|
||||
the one distributed by the FSF.
|
||||
|
||||
If you have just unpacked the g77 distribution, before proceeding,
|
||||
The email address to which bugs are to be reported is either
|
||||
[FSF] <fortran@gnu.org> or [egcs] <egcs-bugs@cygnus.com>.
|
||||
|
||||
* *DO NOT* send any email (reporting bugs, asking questions, etc.) to
|
||||
either of these addresses without *first* reading the g77 documentation.
|
||||
Use `info', Info mode in GNU Emacs, or a text viewer such as `more' to
|
||||
do this.
|
||||
|
||||
The g77 documentation is in the source files named `g77.info',
|
||||
`g77.info-1', `g77.info-2', and so on in the `f' subdirectory. If these
|
||||
files are not present or you can't find them, contact the person or
|
||||
organization that put together the g77 distribution you are using (probably
|
||||
not the FSF or egcs), or ask your system administrator for help.
|
||||
|
||||
|
||||
This README applies to only the g77-specific portions of the source-code
|
||||
tree that contains it. These portions include:
|
||||
|
||||
- The README.g77 and [FSF] COPYING.g77 files, in this directory, "this
|
||||
directory" being [FSF] the top-level directory containing a g77
|
||||
distribution or [egcs] the gcc/ subdirectory of an egcs distribution.
|
||||
|
||||
- The g77 front end, in the f/ subdirectory of this directory.
|
||||
|
||||
- The libg2c library, in [FSF] the f/runtime/ subdirectory of this
|
||||
directory or [egcs] the libf2c/ directory under the top-level
|
||||
directory of the egcs distribution.
|
||||
|
||||
|
||||
* To build g77, you must have a source distribution of [FSF] gcc
|
||||
version 2.8 or [egcs] egcs version 1.1. Do not attempt to use
|
||||
any other version of gcc or egcs, because this version of g77 is
|
||||
designed to work with only those versions.
|
||||
|
||||
Note that you must have *source* copies of the gcc or egcs distribution!
|
||||
You cannot build g77 just using binaries of gcc or egcs. Also, unless
|
||||
you are an expert, avoid using any distribution of gcc or egcs not
|
||||
identical to the ones distributed by the FSF and Cygnus Support,
|
||||
respectively. The primary FSF distribution site is:
|
||||
|
||||
<ftp://ftp.gnu.org/pub/gnu/>
|
||||
|
||||
The primary egcs distribution site is:
|
||||
|
||||
<ftp://ftp.cygnus.com/pub/egcs/>
|
||||
|
||||
Both of these sites have approved mirror sites from which valid
|
||||
distributions also may be obtained.
|
||||
|
||||
* Do not attempt to combine the egcs version of g77 with the FSF
|
||||
gcc distribution, or the FSF version of g77 with the egcs gcc
|
||||
distribution. Although the differences are minor, they might
|
||||
be sufficient to prevent g77 from building properly, or from
|
||||
working properly if the build appears to succeed.
|
||||
|
||||
[FSF] g77 is distributed as g77-<version>/f/ so that unpacking the g77
|
||||
distribution is done in the normal GNU way, resulting in a directory having
|
||||
the version number in the name. However, to build g77, the g77 distribution
|
||||
must be merged with an appropriate gcc distribution, normally in a gcc
|
||||
source directory, before configuring, building, and installing g77.
|
||||
|
||||
[FSF] If you have just unpacked the g77 distribution, before proceeding,
|
||||
you must merge the contents of the g77 distribution with the appropriate
|
||||
gcc distribution on your system before proceeding.
|
||||
gcc distribution on your system.
|
||||
|
||||
* Read and follow the instructions in g77-0.5.22/f/INSTALL that
|
||||
* [FSF] Read and follow the instructions in f/INSTALL that
|
||||
explain how to merge a g77 source directory into a gcc source
|
||||
directory. You can use Info to read the same installation
|
||||
instructions via:
|
||||
|
||||
info -f g77-0.5.22/f/g77.info -n Unpacking
|
||||
info -f f/g77.info -n Unpacking
|
||||
|
||||
The resulting directory layout includes the following, where gcc/ might be
|
||||
a link to, for example, gcc-2.7.2.3/:
|
||||
[FSF] The resulting directory layout includes the following, where gcc/
|
||||
might be a link to, for example, gcc-2.8.1/:
|
||||
|
||||
gcc/ Non-Fortran files in gcc (not part of g77*.tar)
|
||||
gcc/ Non-g77 files in gcc
|
||||
gcc/COPYING.g77 A copy of the GPL, under which g77 is licensed
|
||||
gcc/README.g77 This file
|
||||
gcc/f/ GNU Fortran front end
|
||||
gcc/f/gbe/ Patches required for gcc back end versions
|
||||
gcc/f/runtime/ libf2c configuration and f2c.h file generation
|
||||
gcc/f/runtime/libF77/ Non-I/O portion of libf2c
|
||||
gcc/f/runtime/libI77/ I/O portion of libf2c
|
||||
gcc/f/runtime/libU77/ Additional interfaces to libc for libf2c
|
||||
gcc/f/runtime/ libg2c configuration and g2c.h file generation
|
||||
gcc/f/runtime/libF77/ Non-I/O portion of libg2c
|
||||
gcc/f/runtime/libI77/ I/O portion of libg2c
|
||||
gcc/f/runtime/libU77/ Additional interfaces to libc for libg2c
|
||||
|
||||
gcc/f/ as a whole contains the program GNU Fortran (g77), plus a portion
|
||||
of the separate program f2c, which is in gcc/f/runtime. NOTE: The libf2c
|
||||
code is not part of the program g77, just distributed with it.
|
||||
|
||||
This directory is named gcc/f/ because it, along with its contents, is
|
||||
designed to be a subdirectory of a GNU CC (gcc) development directory. I.e.
|
||||
when a gcc distribution is unpacked into a directory (named gcc/ for
|
||||
example), it typically contains subdirectories like gcc/config/ and
|
||||
gcc/cp/. The latter is the subdirectory for the GNU C++ (g++) program.
|
||||
|
||||
Similarly, the g77 directory f/ is designed to be placed in gcc/ so that
|
||||
it becomes the subdirectory gcc/f/. g77 is distributed as g77-someversion/f/
|
||||
so that unpacking the g77 distribution is done in the normal GNU way,
|
||||
resulting in a directory having the version number in the name. However,
|
||||
to build g77, the g77 distribution must be merged with an appropriate gcc
|
||||
distribution, normally in a gcc directory, before configuring, building,
|
||||
and installing g77.
|
||||
|
||||
Applying g77 patches in the form of .diff files is done by typing
|
||||
`patch -p1 -d gcc' (where gcc/f/ is the active version). That is,
|
||||
[FSF] Applying g77 patches in the form of .diff files is done by typing
|
||||
`patch -p1 -d gcc' (where gcc/ contains the f/ subdirectory). That is,
|
||||
g77 patches are distributed in the same form, and at the same directory
|
||||
level, as patches to the gcc distribution. (Note: make sure you're
|
||||
using GNU patch, version 2.5 or later! Other versions of patch
|
||||
have trouble with g77-related patches.)
|
||||
|
||||
gcc/f/ has text files that document the Fortran compiler, source
|
||||
[egcs] The egcs version of g77 is distributed already merged with
|
||||
the rest of egcs (such as the gcc back end).
|
||||
|
||||
[egcs] The resulting directory layout includes the following, where egcs/
|
||||
might be a link to, for example, egcs-1.1/:
|
||||
|
||||
egcs/gcc/ Non-g77 files in gcc
|
||||
egcs/gcc/README.g77 This file
|
||||
egcs/gcc/f/ GNU Fortran front end
|
||||
egcs/libf2c/ libg2c configuration and g2c.h file generation
|
||||
egcs/libf2c/libF77/ Non-I/O portion of libg2c
|
||||
egcs/libf2c/libI77/ I/O portion of libg2c
|
||||
egcs/libf2c/libU77/ Additional interfaces to libc for libg2c
|
||||
|
||||
[egcs] Applying g77-specific patches to egcs is done the same way as
|
||||
applying other egcs patches.
|
||||
|
||||
|
||||
Below, `libf2c/' shall denote [FSF] gcc/f/runtime/ or [egcs] egcs/libf2c/,
|
||||
while `f/' shall denote [FSF] the rest of gcc/f/ or [egcs] egcs/gcc/f/.
|
||||
|
||||
|
||||
Components of note in g77 are described below.
|
||||
|
||||
f/ as a whole contains the program GNU Fortran (g77), while libf2c/
|
||||
contains a portion of the separate program f2c. Note: The libf2c
|
||||
code is not part of the program g77, just distributed with it.
|
||||
|
||||
f/ contains text files that document the Fortran compiler, source
|
||||
files for the GNU Fortran Front End (FFE), and some other stuff.
|
||||
The g77 compiler code is placed in f/ because it, along with its contents,
|
||||
is designed to be a subdirectory of a GNU CC (gcc) source directory, gcc/,
|
||||
which is structured so that language-specific front ends can be "dropped
|
||||
in" as subdirectories. The C++ front end (g++), is an example of this --
|
||||
it resides in the cp/ subdirectory. Note that the C front end (also
|
||||
referred to as gcc) is an exception to this, as its source files reside
|
||||
in the gcc/ directory itself.
|
||||
|
||||
gcc/f/gbe/ has patch files for various versions of gcc, primarily
|
||||
needed to patch the GNU compiler Back End (GBE) to fix and improve it
|
||||
for use with g77. If a patch file exists for the version of gcc you
|
||||
want to build along with g77, you MUST apply the patch before building
|
||||
g77 with that version or g77 will not build or work properly.*
|
||||
libf2c/ contains the run-time libraries for the f2c program, also used
|
||||
by g77. These libraries normally referred to collectively as libf2c.
|
||||
When built as part of g77, libf2c is installed under the name libg2c to avoid
|
||||
conflict with any existing version of libf2c, and thus is often referred
|
||||
to as libg2c when the g77 version is specifically being referred to.
|
||||
|
||||
* Read gcc/f/gbe/README for more information.
|
||||
The netlib version of libf2c/ contains two distinct libraries, libF77 and
|
||||
libI77, each in their own subdirectories. In g77, this distinction is not
|
||||
made, beyond maintaining the subdirectory structure in the source-code tree.
|
||||
|
||||
gcc/f/runtime/ contains the run-time libraries for the f2c program, also used
|
||||
by g77, and referred to as libf2c (though libf2c is really a combination of
|
||||
two distinct libraries, libF77 and libI77 -- in g77, this distinction is
|
||||
not made, and, further, Dave Love's implementation of libU77 is added
|
||||
to the mix). This separate subdirectory is not part of the program g77, just
|
||||
distributed with it. Some new files have been added to this subdirectory
|
||||
and some minor changes made to the files contained therein, to fix some
|
||||
bugs and facilitate automatic configuration, building, and installation of
|
||||
libf2c for use by g77 users. See gcc/f/runtime/README for more information.
|
||||
libf2c/ is not part of the program g77, just distributed with it. It
|
||||
contains files not present in the official (netlib) version of libf2c,
|
||||
and also contains some minor changes made from libf2c, to fix some bugs,
|
||||
and to facilitate automatic configuration, building, and installation of
|
||||
libf2c (as libg2c) for use by g77 users.
|
||||
|
||||
gcc/f/BUGS lists some important bugs known to be in g77. Or:
|
||||
* See libf2c/README for more information, including licensing conditions
|
||||
governing distribution of programs containing code from libg2c.
|
||||
|
||||
info -f gcc/f/g77.info -n "Actual Bugs"
|
||||
libg2c, g77's version of libf2c, adds Dave Love's implementation of
|
||||
libU77, in the libf2c/libU77/ directory. This library is distributed
|
||||
under the GNU Library General Public License (LGPL) -- see the
|
||||
file libf2c/libU77/COPYING.LIB for more information, as this license
|
||||
governs distribution conditions for programs containing code from
|
||||
this portion of the library.
|
||||
|
||||
gcc/f/ChangeLog lists recent changes to g77 internals.
|
||||
|
||||
gcc/f/INSTALL describes how to build and install GNU Fortran. Or:
|
||||
Files of note in g77 are described below.
|
||||
|
||||
info -f gcc/f/g77.info -n Installation
|
||||
f/BUGS lists some important bugs known to be in g77. Or:
|
||||
|
||||
gcc/f/NEWS contains the per-release changes (not just user-visible ones
|
||||
seen in gcc/f/DOC) listed in the ~fortran/.plan file. Or:
|
||||
info -f f/g77.info -n "Actual Bugs"
|
||||
|
||||
info -f gcc/f/g77.info -n News
|
||||
f/ChangeLog lists recent changes to g77 internals.
|
||||
|
||||
* Read gcc/f/BUGS, gcc/f/INSTALL, and gcc/f/NEWS at the very least!
|
||||
All users of g77 (not just installers) should read gcc/f/g77.info*
|
||||
libf2c/ChangeLog lists recent changes to libg2c internals.
|
||||
|
||||
[FSF] f/INSTALL describes how to build and install GNU Fortran. Or:
|
||||
|
||||
info -f f/g77.info -n Installation
|
||||
|
||||
f/NEWS contains the per-release changes. These include the user-visible
|
||||
changes described under "Changes" in the g77 documentation, plus internal
|
||||
changes of import. Or:
|
||||
|
||||
info -f f/g77.info -n News
|
||||
|
||||
* All users of g77 (not just installers) should read f/g77.info*
|
||||
as well, using the `more' command if neither the `info' command,
|
||||
nor GNU Emacs (with its Info mode), are available, or if they
|
||||
aren't yet accustomed to using these tools.
|
||||
aren't yet accustomed to using these tools. Read f/BUGS and f/NEWS
|
||||
plus, if you are planning on building or installing the FSF version
|
||||
of g77, f/INSTALL, at the very least! All of these files are
|
||||
readable as "plain text" files.
|
||||
|
||||
If you want to get into the FFE code, which lives entirely in gcc/f/, here
|
||||
are a few clues. The file g77.c is the stand-alone source file for the
|
||||
`g77' command driver only -- this just invokes the `gcc' command, so it has
|
||||
nothing to do with the rest of the code in g77. Most of the code
|
||||
ends up in an executable named `f771', which does the actual compiling,
|
||||
so it has the FFE merged with the gcc back end.
|
||||
* Also see <ftp://alpha.gnu.org/g77.plan> for up-to-date information
|
||||
regarding g77 bug reports, known bugs, bug-fixes, and new versions.
|
||||
|
||||
|
||||
The rest of this file is of note to only those who wish to
|
||||
debug, modify, or test the FFE (in conjunction with the gcc back end).
|
||||
|
||||
If you want to explore the FFE code, which lives entirely in f/, here
|
||||
are a few clues. The file g77spec.c contains the g77-specific source code
|
||||
for the `g77' command only -- this just forms a variant of the `gcc'
|
||||
command, so, just as the `gcc' command itself does not contain
|
||||
the C front end, the `g77' command does not contain the Fortran front
|
||||
end (FFE). The FFE code ends up in an executable named `f771', which
|
||||
does the actual compiling, so it contains the FFE plus the gcc back end
|
||||
(the latter to do most of the optimization, and the code generation).
|
||||
|
||||
The file parse.c is the source file for main() for a stand-alone FFE and
|
||||
yyparse() for f771. (Stand-alone building of the FFE doesn't work these days.)
|
||||
@@ -158,7 +245,7 @@ is being dynamically configured by ffecom_init_0); com.h and com.c, which
|
||||
interface to the target back end (currently only FFE stand-alone and the GBE);
|
||||
ste.c, which contains code for implementing recognized executable statements
|
||||
in the target back end (again currently either FFE or GBE); src.h and src.c,
|
||||
which describe information on the format(s) of source files (like whether
|
||||
which describe information on the format(s) of source files (such as whether
|
||||
they are never to be processed as case-insensitive with regard to Fortran
|
||||
keywords); and proj.c, which contains whatever code is needed to support
|
||||
the language defined by proj.h.
|
||||
@@ -173,4 +260,4 @@ the compiler is in the second pass, otherwise it is in the first.
|
||||
(This information might help you reduce a test case and/or work around
|
||||
a bug in g77 until a fix is available.)
|
||||
|
||||
Any questions or comments on these topics, email <fortran@gnu.org>.
|
||||
Any questions or comments on these topics? Read the g77 documentation!
|
||||
|
||||
@@ -845,8 +845,16 @@ decl_attributes (node, attributes, prefix_attributes)
|
||||
"`%s' defined both normally and as an alias");
|
||||
else if (decl_function_context (decl) == 0)
|
||||
{
|
||||
tree id = get_identifier (TREE_STRING_POINTER
|
||||
(TREE_VALUE (args)));
|
||||
tree id;
|
||||
|
||||
id = TREE_VALUE (args);
|
||||
if (TREE_CODE (id) != STRING_CST)
|
||||
{
|
||||
error ("alias arg not a string");
|
||||
break;
|
||||
}
|
||||
id = get_identifier (TREE_STRING_POINTER (id));
|
||||
|
||||
if (TREE_CODE (decl) == FUNCTION_DECL)
|
||||
DECL_INITIAL (decl) = error_mark_node;
|
||||
else
|
||||
|
||||
@@ -6216,6 +6216,7 @@ finish_enum (enumtype, values, attributes)
|
||||
TYPE_MIN_VALUE (tem) = TYPE_MIN_VALUE (enumtype);
|
||||
TYPE_MAX_VALUE (tem) = TYPE_MAX_VALUE (enumtype);
|
||||
TYPE_SIZE (tem) = TYPE_SIZE (enumtype);
|
||||
TYPE_SIZE_UNIT (tem) = TYPE_SIZE_UNIT (enumtype);
|
||||
TYPE_MODE (tem) = TYPE_MODE (enumtype);
|
||||
TYPE_PRECISION (tem) = TYPE_PRECISION (enumtype);
|
||||
TYPE_ALIGN (tem) = TYPE_ALIGN (enumtype);
|
||||
|
||||
@@ -4442,7 +4442,7 @@ get_filename:
|
||||
*/
|
||||
/* Note: The argument of ISALPHA() can be evaluated twice, so do
|
||||
the pre-decrement outside of the macro. */
|
||||
if (retried && (--fbeg, ISALPHA(*(U_CHAR *) (fbeg)))) {
|
||||
if (retried && (--fin, ISALPHA(*(U_CHAR *) (fin)))) {
|
||||
while (fin != limit && (!ISSPACE(*fin)))
|
||||
*fend++ = *fin++;
|
||||
warning ("VAX-C-style include specification found, use '#include <filename.h>' !");
|
||||
|
||||
@@ -198,6 +198,7 @@ static int rflag; /* true if -r */
|
||||
static int strip_flag; /* true if -s */
|
||||
#ifdef COLLECT_EXPORT_LIST
|
||||
static int export_flag; /* true if -bE */
|
||||
static int aix64_flag; /* true if -b64 */
|
||||
#endif
|
||||
|
||||
int debug; /* true if -debug */
|
||||
@@ -1194,6 +1195,8 @@ main (argc, argv)
|
||||
case 'b':
|
||||
if (arg[2] == 'E' || strncmp (&arg[2], "export", 6) == 0)
|
||||
export_flag = 1;
|
||||
if (arg[2] == '6' && arg[3] == '4')
|
||||
aix64_flag = 1;
|
||||
break;
|
||||
#endif
|
||||
|
||||
@@ -2669,7 +2672,9 @@ scan_libraries (prog_name)
|
||||
(((X).n_sclass == C_EXT) && ((X).n_scnum == N_UNDEF))
|
||||
# define GCC_SYMINC(X) ((X).n_numaux+1)
|
||||
# define GCC_SYMZERO(X) 0
|
||||
# define GCC_CHECK_HDR(X) (1)
|
||||
# define GCC_CHECK_HDR(X) \
|
||||
((HEADER (X).f_magic == U802TOCMAGIC && ! aix64_flag) \
|
||||
|| (HEADER (X).f_magic == 0757 && aix64_flag))
|
||||
#endif
|
||||
|
||||
extern char *ldgetname ();
|
||||
@@ -2712,18 +2717,19 @@ scan_prog_file (prog_name, which_pass)
|
||||
#endif
|
||||
if ((ldptr = ldopen (prog_name, ldptr)) != NULL)
|
||||
{
|
||||
|
||||
if (!MY_ISCOFF (HEADER (ldptr).f_magic))
|
||||
if (! MY_ISCOFF (HEADER (ldptr).f_magic))
|
||||
fatal ("%s: not a COFF file", prog_name);
|
||||
|
||||
#ifdef COLLECT_EXPORT_LIST
|
||||
/* Is current archive member a shared object? */
|
||||
is_shared = HEADER (ldptr).f_flags & F_SHROBJ;
|
||||
#endif
|
||||
if (GCC_CHECK_HDR (ldptr))
|
||||
{
|
||||
sym_count = GCC_SYMBOLS (ldptr);
|
||||
sym_index = GCC_SYMZERO (ldptr);
|
||||
|
||||
#ifdef COLLECT_EXPORT_LIST
|
||||
/* Is current archive member a shared object? */
|
||||
is_shared = HEADER (ldptr).f_flags & F_SHROBJ;
|
||||
#endif
|
||||
|
||||
while (sym_index < sym_count)
|
||||
{
|
||||
GCC_SYMENT symbol;
|
||||
@@ -2841,6 +2847,16 @@ scan_prog_file (prog_name, which_pass)
|
||||
#endif
|
||||
}
|
||||
}
|
||||
#ifdef COLLECT_EXPORT_LIST
|
||||
else
|
||||
{
|
||||
/* If archive contains both 32-bit and 64-bit objects,
|
||||
we want to skip objects in other mode so mismatch normal. */
|
||||
if (debug)
|
||||
fprintf (stderr, "%s : magic=%o aix64=%d mismatch\n",
|
||||
prog_name, HEADER (ldptr).f_magic, aix64_flag);
|
||||
}
|
||||
#endif
|
||||
}
|
||||
else
|
||||
{
|
||||
|
||||
@@ -19,13 +19,10 @@ along with GNU CC; see the file COPYING. If not, write to
|
||||
the Free Software Foundation, 59 Temple Place - Suite 330,
|
||||
Boston, MA 02111-1307, USA. */
|
||||
|
||||
#ifndef FILE
|
||||
#include <stdio.h>
|
||||
#endif
|
||||
#include <string.h>
|
||||
|
||||
#define __datalbl
|
||||
#include "config.h"
|
||||
#include <stdio.h>
|
||||
#include <string.h>
|
||||
#include "rtl.h"
|
||||
#include "tree.h"
|
||||
#include "expr.h"
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/* Subroutines used for code generation on AMD Am29000.
|
||||
Copyright (C) 1987, 88, 90-94, 1995 Free Software Foundation, Inc.
|
||||
Copyright (C) 1987, 88, 90-94, 1995, 1997 Free Software Foundation, Inc.
|
||||
Contributed by Richard Kenner (kenner@nyu.edu)
|
||||
|
||||
This file is part of GNU CC.
|
||||
@@ -19,8 +19,8 @@ along with GNU CC; see the file COPYING. If not, write to
|
||||
the Free Software Foundation, 59 Temple Place - Suite 330,
|
||||
Boston, MA 02111-1307, USA. */
|
||||
|
||||
#include <stdio.h>
|
||||
#include "config.h"
|
||||
#include <stdio.h>
|
||||
#include "rtl.h"
|
||||
#include "regs.h"
|
||||
#include "hard-reg-set.h"
|
||||
|
||||
@@ -2468,6 +2468,8 @@ alpha_return_addr (count, frame)
|
||||
static int
|
||||
alpha_ra_ever_killed ()
|
||||
{
|
||||
rtx top;
|
||||
|
||||
#ifdef ASM_OUTPUT_MI_THUNK
|
||||
if (current_function_is_thunk)
|
||||
return 0;
|
||||
@@ -2475,8 +2477,11 @@ alpha_ra_ever_killed ()
|
||||
if (!alpha_return_addr_rtx)
|
||||
return regs_ever_live[REG_RA];
|
||||
|
||||
return reg_set_between_p (gen_rtx_REG (Pmode, REG_RA),
|
||||
get_insns(), NULL_RTX);
|
||||
push_topmost_sequence ();
|
||||
top = get_insns();
|
||||
pop_topmost_sequence ();
|
||||
|
||||
return reg_set_between_p (gen_rtx_REG (Pmode, REG_RA), top, NULL_RTX);
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -23,14 +23,18 @@ Boston, MA 02111-1307, USA. */
|
||||
/* Write out the correct language type definition for the header files.
|
||||
Unless we have assembler language, write out the symbols for C. */
|
||||
#define CPP_SPEC "\
|
||||
%{!.S: -D__LANGUAGE_C__ -D__LANGUAGE_C %{!ansi:-DLANGUAGE_C}} \
|
||||
%{.S: -D__LANGUAGE_ASSEMBLY__ -D__LANGUAGE_ASSEMBLY %{!ansi:-DLANGUAGE_ASSEMBLY}} \
|
||||
%{.cc: -D__LANGUAGE_C_PLUS_PLUS__ -D__LANGUAGE_C_PLUS_PLUS -D__cplusplus} \
|
||||
%{.cxx: -D__LANGUAGE_C_PLUS_PLUS__ -D__LANGUAGE_C_PLUS_PLUS -D__cplusplus} \
|
||||
%{.C: -D__LANGUAGE_C_PLUS_PLUS__ -D__LANGUAGE_C_PLUS_PLUS -D__cplusplus} \
|
||||
%{.m: -D__LANGUAGE_OBJECTIVE_C__ -D__LANGUAGE_OBJECTIVE_C} \
|
||||
%{mieee:-D_IEEE_FP} \
|
||||
%{mieee-with-inexact:-D_IEEE_FP -D_IEEE_FP_INEXACT}"
|
||||
%{!undef:\
|
||||
%{.S:-D__LANGUAGE_ASSEMBLY__ -D__LANGUAGE_ASSEMBLY %{!ansi:-DLANGUAGE_ASSEMBLY }}\
|
||||
%{.cc|.cxx|.C:-D__LANGUAGE_C_PLUS_PLUS__ -D__LANGUAGE_C_PLUS_PLUS -D__cplusplus }\
|
||||
%{.m:-D__LANGUAGE_OBJECTIVE_C__ -D__LANGUAGE_OBJECTIVE_C }\
|
||||
%{!.S:%{!.cc:%{!.cxx:%{!.C:%{!.m:-D__LANGUAGE_C__ -D__LANGUAGE_C %{!ansi:-DLANGUAGE_C }}}}}}\
|
||||
%{mieee:-D_IEEE_FP }\
|
||||
%{mieee-with-inexact:-D_IEEE_FP -D_IEEE_FP_INEXACT }}\
|
||||
%(cpp_cpu) %(cpp_subtarget)"
|
||||
|
||||
#ifndef CPP_SUBTARGET_SPEC
|
||||
#define CPP_SUBTARGET_SPEC ""
|
||||
#endif
|
||||
|
||||
/* Set the spec to use for signed char. The default tests the above macro
|
||||
but DEC's compiler can't handle the conditional in a "constant"
|
||||
@@ -240,6 +244,88 @@ extern char *alpha_mlat_string; /* For -mmemory-latency= */
|
||||
{"memory-latency=", &alpha_mlat_string}, \
|
||||
}
|
||||
|
||||
/* Attempt to describe CPU characteristics to the preprocessor. */
|
||||
|
||||
/* Corresponding to amask... */
|
||||
#define CPP_AM_BWX_SPEC "-D__alpha_bwx__ -Acpu(bwx)"
|
||||
#define CPP_AM_MAX_SPEC "-D__alpha_max__ -Acpu(max)"
|
||||
#define CPP_AM_CIX_SPEC "-D__alpha_cix__ -Acpu(cix)"
|
||||
|
||||
/* Corresponding to implver... */
|
||||
#define CPP_IM_EV4_SPEC "-D__alpha_ev4__ -Acpu(ev4)"
|
||||
#define CPP_IM_EV5_SPEC "-D__alpha_ev5__ -Acpu(ev5)"
|
||||
#define CPP_IM_EV6_SPEC "-D__alpha_ev6__ -Acpu(ev6)"
|
||||
|
||||
/* Common combinations. */
|
||||
#define CPP_CPU_EV4_SPEC "%(cpp_im_ev4)"
|
||||
#define CPP_CPU_EV5_SPEC "%(cpp_im_ev5)"
|
||||
#define CPP_CPU_EV56_SPEC "%(cpp_im_ev5) %(cpp_am_bwx)"
|
||||
#define CPP_CPU_PCA56_SPEC "%(cpp_im_ev5) %(cpp_am_bwx) %(cpp_am_max)"
|
||||
#define CPP_CPU_EV6_SPEC "%(cpp_im_ev6) %(cpp_am_bwx) %(cpp_am_max) %(cpp_am_cix)"
|
||||
|
||||
#ifndef CPP_CPU_DEFAULT_SPEC
|
||||
# if TARGET_CPU_DEFAULT & MASK_CPU_EV6
|
||||
# define CPP_CPU_DEFAULT_SPEC CPP_CPU_EV6_SPEC
|
||||
# else
|
||||
# if TARGET_CPU_DEFAULT & MASK_CPU_EV5
|
||||
# if TARGET_CPU_DEFAULT & MASK_MAX
|
||||
# define CPP_CPU_DEFAULT_SPEC CPP_CPU_PCA56_SPEC
|
||||
# else
|
||||
# if TARGET_CPU_DEFAULT & MASK_BWX
|
||||
# define CPP_CPU_DEFAULT_SPEC CPP_CPU_EV56_SPEC
|
||||
# else
|
||||
# define CPP_CPU_DEFAULT_SPEC CPP_CPU_EV5_SPEC
|
||||
# endif
|
||||
# endif
|
||||
# else
|
||||
# define CPP_CPU_DEFAULT_SPEC CPP_CPU_EV4_SPEC
|
||||
# endif
|
||||
# endif
|
||||
#endif /* CPP_CPU_DEFAULT_SPEC */
|
||||
|
||||
#ifndef CPP_CPU_SPEC
|
||||
#define CPP_CPU_SPEC "\
|
||||
%{!undef:-Acpu(alpha) -Amachine(alpha) -D__alpha -D__alpha__ \
|
||||
%{mcpu=ev4|mcpu=21064:%(cpp_cpu_ev4) }\
|
||||
%{mcpu=ev5|mcpu=21164:%(cpp_cpu_ev5) }\
|
||||
%{mcpu=ev56|mcpu=21164a:%(cpp_cpu_ev56) }\
|
||||
%{mcpu=pca56|mcpu=21164pc|mcpu=21164PC:%(cpp_cpu_pca56) }\
|
||||
%{mcpu=ev6|mcpu=21264:%(cpp_cpu_ev6) }\
|
||||
%{!mcpu*:%(cpp_cpu_default) }}"
|
||||
#endif
|
||||
|
||||
/* This macro defines names of additional specifications to put in the
|
||||
specs that can be used in various specifications like CC1_SPEC. Its
|
||||
definition is an initializer with a subgrouping for each command option.
|
||||
|
||||
Each subgrouping contains a string constant, that defines the
|
||||
specification name, and a string constant that used by the GNU CC driver
|
||||
program.
|
||||
|
||||
Do not define this macro if it does not need to do anything. */
|
||||
|
||||
#ifndef SUBTARGET_EXTRA_SPECS
|
||||
#define SUBTARGET_EXTRA_SPECS
|
||||
#endif
|
||||
|
||||
#define EXTRA_SPECS \
|
||||
{ "cpp_am_bwx", CPP_AM_BWX_SPEC }, \
|
||||
{ "cpp_am_max", CPP_AM_MAX_SPEC }, \
|
||||
{ "cpp_am_cix", CPP_AM_CIX_SPEC }, \
|
||||
{ "cpp_im_ev4", CPP_IM_EV4_SPEC }, \
|
||||
{ "cpp_im_ev5", CPP_IM_EV5_SPEC }, \
|
||||
{ "cpp_im_ev6", CPP_IM_EV6_SPEC }, \
|
||||
{ "cpp_cpu_ev4", CPP_CPU_EV4_SPEC }, \
|
||||
{ "cpp_cpu_ev5", CPP_CPU_EV5_SPEC }, \
|
||||
{ "cpp_cpu_ev56", CPP_CPU_EV56_SPEC }, \
|
||||
{ "cpp_cpu_pca56", CPP_CPU_PCA56_SPEC }, \
|
||||
{ "cpp_cpu_ev6", CPP_CPU_EV6_SPEC }, \
|
||||
{ "cpp_cpu_default", CPP_CPU_DEFAULT_SPEC }, \
|
||||
{ "cpp_cpu", CPP_CPU_SPEC }, \
|
||||
{ "cpp_subtarget", CPP_SUBTARGET_SPEC }, \
|
||||
SUBTARGET_EXTRA_SPECS
|
||||
|
||||
|
||||
/* Sometimes certain combinations of command options do not make sense
|
||||
on a particular target machine. You can define a macro
|
||||
`OVERRIDE_OPTIONS' to take account of this. This macro, if
|
||||
@@ -1209,7 +1295,7 @@ do { \
|
||||
/* A C expression whose value is RTL representing the value of the return
|
||||
address for the frame COUNT steps up from the current frame.
|
||||
FRAMEADDR is the frame pointer of the COUNT frame, or the frame pointer of
|
||||
the COUNT-1 frame if RETURN_ADDR_IN_PREVIOUS_FRAME} is defined. */
|
||||
the COUNT-1 frame if RETURN_ADDR_IN_PREVIOUS_FRAME is defined. */
|
||||
|
||||
#define RETURN_ADDR_RTX alpha_return_addr
|
||||
extern struct rtx_def *alpha_return_addr ();
|
||||
@@ -2059,12 +2145,14 @@ literal_section () \
|
||||
#define ASM_OUTPUT_MI_THUNK(FILE, THUNK_FNDECL, DELTA, FUNCTION) \
|
||||
do { \
|
||||
char *fn_name = XSTR (XEXP (DECL_RTL (FUNCTION), 0), 0); \
|
||||
int reg; \
|
||||
\
|
||||
/* Mark end of prologue. */ \
|
||||
output_end_prologue (FILE); \
|
||||
\
|
||||
/* Rely on the assembler to macro expand a large delta. */ \
|
||||
fprintf (FILE, "\tlda $16,%ld($16)\n", (long)(DELTA)); \
|
||||
reg = aggregate_value_p (TREE_TYPE (TREE_TYPE (FUNCTION))) ? 17 : 16; \
|
||||
fprintf (FILE, "\tlda $%d,%ld($%d)\n", reg, (long)(DELTA), reg); \
|
||||
\
|
||||
if (current_file_function_operand (XEXP (DECL_RTL (FUNCTION), 0))) \
|
||||
{ \
|
||||
|
||||
@@ -2729,6 +2729,17 @@
|
||||
[(set_attr "type" "fadd")
|
||||
(set_attr "trap" "yes")])
|
||||
|
||||
(define_insn ""
|
||||
[(set (match_operand:DF 0 "register_operand" "=&f")
|
||||
(match_operator:DF 1 "alpha_comparison_operator"
|
||||
[(float_extend:DF
|
||||
(match_operand:SF 2 "reg_or_fp0_operand" "fG"))
|
||||
(match_operand:DF 3 "reg_or_fp0_operand" "fG")]))]
|
||||
"TARGET_FP && alpha_tp == ALPHA_TP_INSN"
|
||||
"cmp%-%C1%' %R2,%R3,%0"
|
||||
[(set_attr "type" "fadd")
|
||||
(set_attr "trap" "yes")])
|
||||
|
||||
(define_insn ""
|
||||
[(set (match_operand:DF 0 "register_operand" "=f")
|
||||
(match_operator:DF 1 "alpha_comparison_operator"
|
||||
@@ -2740,6 +2751,17 @@
|
||||
[(set_attr "type" "fadd")
|
||||
(set_attr "trap" "yes")])
|
||||
|
||||
(define_insn ""
|
||||
[(set (match_operand:DF 0 "register_operand" "=&f")
|
||||
(match_operator:DF 1 "alpha_comparison_operator"
|
||||
[(match_operand:DF 2 "reg_or_fp0_operand" "fG")
|
||||
(float_extend:DF
|
||||
(match_operand:SF 3 "reg_or_fp0_operand" "fG"))]))]
|
||||
"TARGET_FP && alpha_tp == ALPHA_TP_INSN"
|
||||
"cmp%-%C1%' %R2,%R3,%0"
|
||||
[(set_attr "type" "fadd")
|
||||
(set_attr "trap" "yes")])
|
||||
|
||||
(define_insn ""
|
||||
[(set (match_operand:DF 0 "register_operand" "=f")
|
||||
(match_operator:DF 1 "alpha_comparison_operator"
|
||||
@@ -2751,6 +2773,18 @@
|
||||
[(set_attr "type" "fadd")
|
||||
(set_attr "trap" "yes")])
|
||||
|
||||
(define_insn ""
|
||||
[(set (match_operand:DF 0 "register_operand" "=&f")
|
||||
(match_operator:DF 1 "alpha_comparison_operator"
|
||||
[(float_extend:DF
|
||||
(match_operand:SF 2 "reg_or_fp0_operand" "fG"))
|
||||
(float_extend:DF
|
||||
(match_operand:SF 3 "reg_or_fp0_operand" "fG"))]))]
|
||||
"TARGET_FP && alpha_tp == ALPHA_TP_INSN"
|
||||
"cmp%-%C1%' %R2,%R3,%0"
|
||||
[(set_attr "type" "fadd")
|
||||
(set_attr "trap" "yes")])
|
||||
|
||||
(define_insn ""
|
||||
[(set (match_operand:DF 0 "register_operand" "=f")
|
||||
(match_operator:DF 1 "alpha_comparison_operator"
|
||||
@@ -2763,20 +2797,6 @@
|
||||
[(set_attr "type" "fadd")
|
||||
(set_attr "trap" "yes")])
|
||||
|
||||
(define_insn ""
|
||||
[(set (match_operand:DF 0 "register_operand" "=&f,f")
|
||||
(if_then_else:DF
|
||||
(match_operator 3 "signed_comparison_operator"
|
||||
[(match_operand:DF 4 "reg_or_fp0_operand" "fG,fG")
|
||||
(match_operand:DF 2 "fp0_operand" "G,G")])
|
||||
(match_operand:DF 1 "reg_or_fp0_operand" "fG,0")
|
||||
(match_operand:DF 5 "reg_or_fp0_operand" "0,fG")))]
|
||||
"TARGET_FP && alpha_tp == ALPHA_TP_INSN"
|
||||
"@
|
||||
fcmov%C3 %R4,%R1,%0
|
||||
fcmov%D3 %R4,%R5,%0"
|
||||
[(set_attr "type" "fcmov")])
|
||||
|
||||
(define_insn ""
|
||||
[(set (match_operand:DF 0 "register_operand" "=f,f")
|
||||
(if_then_else:DF
|
||||
@@ -2785,21 +2805,7 @@
|
||||
(match_operand:DF 2 "fp0_operand" "G,G")])
|
||||
(match_operand:DF 1 "reg_or_fp0_operand" "fG,0")
|
||||
(match_operand:DF 5 "reg_or_fp0_operand" "0,fG")))]
|
||||
"TARGET_FP && alpha_tp != ALPHA_TP_INSN"
|
||||
"@
|
||||
fcmov%C3 %R4,%R1,%0
|
||||
fcmov%D3 %R4,%R5,%0"
|
||||
[(set_attr "type" "fcmov")])
|
||||
|
||||
(define_insn ""
|
||||
[(set (match_operand:SF 0 "register_operand" "=&f,f")
|
||||
(if_then_else:SF
|
||||
(match_operator 3 "signed_comparison_operator"
|
||||
[(match_operand:DF 4 "reg_or_fp0_operand" "fG,fG")
|
||||
(match_operand:DF 2 "fp0_operand" "G,G")])
|
||||
(match_operand:SF 1 "reg_or_fp0_operand" "fG,0")
|
||||
(match_operand:SF 5 "reg_or_fp0_operand" "0,fG")))]
|
||||
"TARGET_FP && alpha_tp == ALPHA_TP_INSN"
|
||||
"TARGET_FP"
|
||||
"@
|
||||
fcmov%C3 %R4,%R1,%0
|
||||
fcmov%D3 %R4,%R5,%0"
|
||||
@@ -2813,7 +2819,7 @@
|
||||
(match_operand:DF 2 "fp0_operand" "G,G")])
|
||||
(match_operand:SF 1 "reg_or_fp0_operand" "fG,0")
|
||||
(match_operand:SF 5 "reg_or_fp0_operand" "0,fG")))]
|
||||
"TARGET_FP && alpha_tp != ALPHA_TP_INSN"
|
||||
"TARGET_FP"
|
||||
"@
|
||||
fcmov%C3 %R4,%R1,%0
|
||||
fcmov%D3 %R4,%R5,%0"
|
||||
@@ -2827,7 +2833,7 @@
|
||||
(match_operand:DF 2 "fp0_operand" "G,G")])
|
||||
(float_extend:DF (match_operand:SF 1 "reg_or_fp0_operand" "fG,0"))
|
||||
(match_operand:DF 5 "reg_or_fp0_operand" "0,fG")))]
|
||||
"TARGET_FP && alpha_tp != ALPHA_TP_INSN"
|
||||
"TARGET_FP"
|
||||
"@
|
||||
fcmov%C3 %R4,%R1,%0
|
||||
fcmov%D3 %R4,%R5,%0"
|
||||
@@ -2842,7 +2848,7 @@
|
||||
(match_operand:DF 2 "fp0_operand" "G,G")])
|
||||
(match_operand:DF 1 "reg_or_fp0_operand" "fG,0")
|
||||
(match_operand:DF 5 "reg_or_fp0_operand" "0,fG")))]
|
||||
"TARGET_FP && alpha_tp != ALPHA_TP_INSN"
|
||||
"TARGET_FP"
|
||||
"@
|
||||
fcmov%C3 %R4,%R1,%0
|
||||
fcmov%D3 %R4,%R5,%0"
|
||||
@@ -2857,7 +2863,7 @@
|
||||
(match_operand:DF 2 "fp0_operand" "G,G")])
|
||||
(match_operand:SF 1 "reg_or_fp0_operand" "fG,0")
|
||||
(match_operand:SF 5 "reg_or_fp0_operand" "0,fG")))]
|
||||
"TARGET_FP && alpha_tp != ALPHA_TP_INSN"
|
||||
"TARGET_FP"
|
||||
"@
|
||||
fcmov%C3 %R4,%R1,%0
|
||||
fcmov%D3 %R4,%R5,%0"
|
||||
@@ -2872,7 +2878,7 @@
|
||||
(match_operand:DF 2 "fp0_operand" "G,G")])
|
||||
(float_extend:DF (match_operand:SF 1 "reg_or_fp0_operand" "fG,0"))
|
||||
(match_operand:DF 5 "reg_or_fp0_operand" "0,fG")))]
|
||||
"TARGET_FP && alpha_tp != ALPHA_TP_INSN"
|
||||
"TARGET_FP"
|
||||
"@
|
||||
fcmov%C3 %R4,%R1,%0
|
||||
fcmov%D3 %R4,%R5,%0"
|
||||
|
||||
@@ -43,7 +43,7 @@ Boston, MA 02111-1307, USA. */
|
||||
%{!shared: \
|
||||
%{!static: \
|
||||
%{rdynamic:-export-dynamic} \
|
||||
%{!dynamic-linker:-dynamic-linker " ELF_DYNAMIC_LINKER "}}\
|
||||
%{!dynamic-linker:-dynamic-linker %(elf_dynamic_linker)}} \
|
||||
%{static:-static}}"
|
||||
|
||||
/* Output at beginning of assembler file. */
|
||||
|
||||
@@ -22,13 +22,17 @@ the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. */
|
||||
#undef TARGET_VERSION
|
||||
#define TARGET_VERSION fprintf (stderr, " (Alpha GNU/Linux for ELF)");
|
||||
|
||||
#undef SUBTARGET_EXTRA_SPECS
|
||||
#define SUBTARGET_EXTRA_SPECS \
|
||||
{ "elf_dynamic_linker", ELF_DYNAMIC_LINKER },
|
||||
|
||||
#undef SUB_CPP_PREDEFINES
|
||||
#define SUB_CPP_PREDEFINES "-D__ELF__"
|
||||
#define SUB_CPP_PREDEFINES "-D__ELF__"
|
||||
|
||||
#ifdef USE_GNULIBC_1
|
||||
#define ELF_DYNAMIC_LINKER "/lib/ld.so.1"
|
||||
#define ELF_DYNAMIC_LINKER "/lib/ld.so.1"
|
||||
#else
|
||||
#define ELF_DYNAMIC_LINKER "/lib/ld-linux.so.2"
|
||||
#define ELF_DYNAMIC_LINKER "/lib/ld-linux.so.2"
|
||||
#endif
|
||||
|
||||
#ifndef USE_GNULIBC_1
|
||||
@@ -39,7 +43,5 @@ the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. */
|
||||
#ifndef USE_GNULIBC_1
|
||||
#undef LIB_SPEC
|
||||
#define LIB_SPEC \
|
||||
"%{shared: -lc} \
|
||||
%{!shared: %{mieee-fp:-lieee} %{pthread:-lpthread} \
|
||||
%{profile:-lc_p} %{!profile: -lc}}"
|
||||
"%{shared:-lc}%{!shared:%{pthread:-lpthread }%{profile:-lc_p}%{!profile:-lc}} "
|
||||
#endif
|
||||
|
||||
@@ -23,9 +23,8 @@ the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. */
|
||||
#define TARGET_DEFAULT (MASK_FP | MASK_FPREGS | MASK_GAS)
|
||||
|
||||
#undef CPP_PREDEFINES
|
||||
#define CPP_PREDEFINES "\
|
||||
-D__alpha -D__alpha__ -D__linux__ -D__linux -D_LONGLONG -Dlinux -Dunix \
|
||||
-Asystem(linux) -Acpu(alpha) -Amachine(alpha) " SUB_CPP_PREDEFINES
|
||||
#define CPP_PREDEFINES \
|
||||
"-Dlinux -Dunix -Asystem(linux) -D_LONGLONG -D__alpha__ " SUB_CPP_PREDEFINES
|
||||
|
||||
#undef LIB_SPEC
|
||||
#define LIB_SPEC "%{pg:-lgmon} %{pg:-lc_p} %{!pg:-lc}"
|
||||
|
||||
@@ -24,4 +24,8 @@ the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. */
|
||||
#undef SUB_CPP_PREDEFINES
|
||||
#define SUB_CPP_PREDEFINES "-D__ELF__"
|
||||
|
||||
#define ELF_DYNAMIC_LINKER "/usr/libexec/ld.elf_so"
|
||||
#undef SUBTARGET_EXTRA_SPECS
|
||||
#define SUBTARGET_EXTRA_SPECS \
|
||||
{ "elf_dynamic_linker", ELF_DYNAMIC_LINKER },
|
||||
|
||||
#define ELF_DYNAMIC_LINKER "/usr/libexec/ld.elf_so"
|
||||
|
||||
@@ -22,9 +22,7 @@ the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. */
|
||||
#define TARGET_DEFAULT (MASK_FP | MASK_FPREGS | MASK_GAS)
|
||||
|
||||
#undef CPP_PREDEFINES
|
||||
#define CPP_PREDEFINES "\
|
||||
-D__alpha -D__alpha__ -D__linux__ -D__linux -D_LONGLONG -Dnetbsd -Dunix \
|
||||
-Asystem(linux) -Acpu(alpha) -Amachine(alpha) " SUB_CPP_PREDEFINES
|
||||
#define CPP_PREDEFINES "-D_LONGLONG -Dnetbsd -Dunix " SUB_CPP_PREDEFINES
|
||||
|
||||
#undef LIB_SPEC
|
||||
#define LIB_SPEC "%{pg:-lgmon} %{pg:-lc_p} %{!pg:-lc}"
|
||||
|
||||
@@ -27,8 +27,8 @@ Boston, MA 02111-1307, USA. */
|
||||
/* Names to predefine in the preprocessor for this target machine. */
|
||||
|
||||
#define CPP_PREDEFINES "\
|
||||
-Dunix -D__osf__ -D__alpha -D__alpha__ -D_LONGLONG -DSYSTYPE_BSD \
|
||||
-D_SYSTYPE_BSD -Asystem(unix) -Asystem(xpg4) -Acpu(alpha) -Amachine(alpha)"
|
||||
-Dunix -D__osf__ -D_LONGLONG -DSYSTYPE_BSD \
|
||||
-D_SYSTYPE_BSD -Asystem(unix) -Asystem(xpg4)"
|
||||
|
||||
/* Under OSF4, -p and -pg require -lprof1, and -lprof1 requires -lpdf. */
|
||||
|
||||
|
||||
@@ -31,20 +31,13 @@ Boston, MA 02111-1307, USA. */
|
||||
|
||||
#undef CPP_PREDEFINES
|
||||
#define CPP_PREDEFINES \
|
||||
"-D__ALPHA -Dvms -DVMS -D__alpha__ -D__alpha -D__vms__ -D__VMS__\
|
||||
-Asystem(vms) -Acpu(alpha) -Amachine(alpha)"
|
||||
"-D__ALPHA -Dvms -DVMS -D__vms__ -D__VMS__ -Asystem(vms)"
|
||||
|
||||
#undef CPP_SPEC
|
||||
#define CPP_SPEC "\
|
||||
#undef CPP_SUBTARGET_SPEC
|
||||
#define CPP_SUBTARGET_SPEC "\
|
||||
%{mfloat-ieee:-D__IEEE_FLOAT} \
|
||||
%{mfloat-vax:-D__G_FLOAT} \
|
||||
%{!mfloat-vax:-D__IEEE_FLOAT} \
|
||||
%{!.S: -D__LANGUAGE_C__ -D__LANGUAGE_C %{!ansi:-DLANGUAGE_C}} \
|
||||
%{.S: -D__LANGUAGE_ASSEMBLY__ -D__LANGUAGE_ASSEMBLY %{!ansi:-DLANGUAGE_ASSEMBLY}} \
|
||||
%{.cc: -D__LANGUAGE_C_PLUS_PLUS__ -D__LANGUAGE_C_PLUS_PLUS -D__cplusplus} \
|
||||
%{.cxx: -D__LANGUAGE_C_PLUS_PLUS__ -D__LANGUAGE_C_PLUS_PLUS -D__cplusplus} \
|
||||
%{.C: -D__LANGUAGE_C_PLUS_PLUS__ -D__LANGUAGE_C_PLUS_PLUS -D__cplusplus} \
|
||||
%{.m: -D__LANGUAGE_OBJECTIVE_C__ -D__LANGUAGE_OBJECTIVE_C}"
|
||||
%{!mfloat-vax:-D__IEEE_FLOAT}"
|
||||
|
||||
/* Under OSF4, -p and -pg require -lprof1, and -lprof1 requires -lpdf. */
|
||||
|
||||
|
||||
@@ -20,20 +20,16 @@ Boston, MA 02111-1307, USA. */
|
||||
|
||||
/* This file just exists to give specs for the Alpha running on VxWorks. */
|
||||
|
||||
#undef CPP_SPEC
|
||||
#define CPP_SPEC "\
|
||||
#undef CPP_SUBTARGET_SPEC
|
||||
#define CPP_SUBTARGET_SPEC "\
|
||||
%{mvxsim:-DCPU=SIMALPHADUNIX} \
|
||||
%{!mvxsim: %{!mcpu*:-DCPU=21064} \
|
||||
%{mcpu=21064:-DCPU=21064} \
|
||||
%{mcpu=21164:-DCPU=21164}} \
|
||||
%{posix: -D_POSIX_SOURCE} \
|
||||
%{!.S: -D__LANGUAGE_C__ -D__LANGUAGE_C %{!ansi:-DLANGUAGE_C}} \
|
||||
%{.S: -D__LANGUAGE_ASSEMBLY__ -D__LANGUAGE_ASSEMBLY %{!ansi:-DLANGUAGE_ASSEMBLY}}"
|
||||
%{!mvxsim: %{!mcpu*|mcpu=21064:-DCPU=21064} %{mcpu=21164:-DCPU=21164}} \
|
||||
%{posix: -D_POSIX_SOURCE}"
|
||||
|
||||
#undef CPP_PREDEFINES
|
||||
#define CPP_PREDEFINES "\
|
||||
-D__vxworks -D__alpha_vxworks -Asystem(vxworks) \
|
||||
-Asystem(embedded) -D_LONGLONG -Acpu(alpha) -Amachine(alpha)"
|
||||
-Asystem(embedded) -D_LONGLONG"
|
||||
|
||||
/* VxWorks does all the library stuff itself. */
|
||||
|
||||
|
||||
@@ -29,10 +29,8 @@ Boston, MA 02111-1307, USA. */
|
||||
/* Names to predefine in the preprocessor for this target machine. */
|
||||
|
||||
#undef CPP_PREDEFINES
|
||||
#define CPP_PREDEFINES "-DWIN32 -D_WIN32 -DWINNT -D__STDC__=0 -DALMOST_STDC\
|
||||
-D_M_ALPHA -D_ALPHA_ -D__alpha -D__alpha__\
|
||||
-D_LONGLONG -D__unaligned= -D__stdcall= \
|
||||
-Asystem(winnt) -Acpu(alpha) -Amachine(alpha)"
|
||||
#define CPP_PREDEFINES "-DWIN32 -D_WIN32 -DWINNT -D__STDC__=0 -DALMOST_STDC \
|
||||
-D_M_ALPHA -D_ALPHA_ -D_LONGLONG -D__unaligned= -D__stdcall= -Asystem(winnt)"
|
||||
|
||||
#undef ASM_SPEC
|
||||
#undef ASM_FINAL_SPEC
|
||||
@@ -113,12 +111,14 @@ Boston, MA 02111-1307, USA. */
|
||||
#define ASM_OUTPUT_MI_THUNK(FILE, THUNK_FNDECL, DELTA, FUNCTION) \
|
||||
do { \
|
||||
char *op, *fn_name = XSTR (XEXP (DECL_RTL (FUNCTION), 0), 0); \
|
||||
int reg; \
|
||||
\
|
||||
/* Mark end of prologue. */ \
|
||||
output_end_prologue (FILE); \
|
||||
\
|
||||
/* Rely on the assembler to macro expand a large delta. */ \
|
||||
fprintf (FILE, "\tlda $16,%ld($16)\n", (long)(DELTA)); \
|
||||
reg = aggregate_value_p (TREE_TYPE (TREE_TYPE (FUNCTION))) ? 17 : 16; \
|
||||
fprintf (FILE, "\tlda $%d,%ld($%d)\n", reg, (long)(DELTA), reg); \
|
||||
\
|
||||
op = "jsr"; \
|
||||
if (current_file_function_operand (XEXP (DECL_RTL (FUNCTION), 0))) \
|
||||
|
||||
@@ -55,7 +55,7 @@ static int arm_naked_function_p PROTO ((tree));
|
||||
static void init_fpa_table PROTO ((void));
|
||||
static enum machine_mode select_dominance_cc_mode PROTO ((enum rtx_code, rtx,
|
||||
rtx, HOST_WIDE_INT));
|
||||
static HOST_WIDE_INT add_constant PROTO ((rtx, enum machine_mode));
|
||||
static HOST_WIDE_INT add_constant PROTO ((rtx, enum machine_mode, int *));
|
||||
static void dump_table PROTO ((rtx));
|
||||
static int fixit PROTO ((rtx, enum machine_mode, int));
|
||||
static rtx find_barrier PROTO ((rtx, int));
|
||||
@@ -310,7 +310,7 @@ arm_override_options ()
|
||||
assembler and linker, and the ARMASM assembler seems to lack some
|
||||
required directives. */
|
||||
if (flag_pic)
|
||||
warning ("Position independent code not supported. Ignored");
|
||||
warning ("Position independent code not supported");
|
||||
|
||||
if (TARGET_APCS_FLOAT)
|
||||
warning ("Passing floating point arguments in fp regs not yet supported");
|
||||
@@ -1769,7 +1769,9 @@ bad_signed_byte_operand (op, mode)
|
||||
|
||||
/* A sum of anything more complex than reg + reg or reg + const is bad */
|
||||
if ((GET_CODE (op) == PLUS || GET_CODE (op) == MINUS)
|
||||
&& ! s_register_operand (XEXP (op, 0), VOIDmode))
|
||||
&& (! s_register_operand (XEXP (op, 0), VOIDmode)
|
||||
|| (! s_register_operand (XEXP (op, 1), VOIDmode)
|
||||
&& GET_CODE (XEXP (op, 1)) != CONST_INT)))
|
||||
return 1;
|
||||
|
||||
/* Big constants are also bad */
|
||||
@@ -3446,18 +3448,30 @@ static pool_node pool_vector[MAX_POOL_SIZE];
|
||||
static int pool_size;
|
||||
static rtx pool_vector_label;
|
||||
|
||||
/* Add a constant to the pool and return its label. */
|
||||
/* Add a constant to the pool and return its offset within the current
|
||||
pool.
|
||||
|
||||
X is the rtx we want to replace. MODE is its mode. On return,
|
||||
ADDRESS_ONLY will be non-zero if we really want the address of such
|
||||
a constant, not the constant itself. */
|
||||
static HOST_WIDE_INT
|
||||
add_constant (x, mode)
|
||||
add_constant (x, mode, address_only)
|
||||
rtx x;
|
||||
enum machine_mode mode;
|
||||
int *address_only;
|
||||
{
|
||||
int i;
|
||||
HOST_WIDE_INT offset;
|
||||
|
||||
*address_only = 0;
|
||||
if (mode == SImode && GET_CODE (x) == MEM && CONSTANT_P (XEXP (x, 0))
|
||||
&& CONSTANT_POOL_ADDRESS_P (XEXP (x, 0)))
|
||||
x = get_pool_constant (XEXP (x, 0));
|
||||
else if (GET_CODE (x) == SYMBOL_REF && CONSTANT_POOL_ADDRESS_P(x))
|
||||
{
|
||||
*address_only = 1;
|
||||
x = get_pool_constant (x);
|
||||
}
|
||||
#ifndef AOF_ASSEMBLER
|
||||
else if (GET_CODE (x) == UNSPEC && XINT (x, 1) == 3)
|
||||
x = XVECEXP (x, 0, 0);
|
||||
@@ -3709,6 +3723,7 @@ arm_reorg (first)
|
||||
rtx newsrc;
|
||||
rtx addr;
|
||||
int scratch;
|
||||
int address_only;
|
||||
|
||||
/* If this is an HImode constant load, convert it into
|
||||
an SImode constant load. Since the register is always
|
||||
@@ -3722,39 +3737,50 @@ arm_reorg (first)
|
||||
PUT_MODE (dst, SImode);
|
||||
}
|
||||
|
||||
offset = add_constant (src, mode);
|
||||
offset = add_constant (src, mode, &address_only);
|
||||
addr = plus_constant (gen_rtx (LABEL_REF, VOIDmode,
|
||||
pool_vector_label),
|
||||
offset);
|
||||
|
||||
/* For wide moves to integer regs we need to split the
|
||||
address calculation off into a separate insn, so that
|
||||
the load can then be done with a load-multiple. This is
|
||||
safe, since we have already noted the length of such
|
||||
insns to be 8, and we are immediately over-writing the
|
||||
scratch we have grabbed with the final result. */
|
||||
if (GET_MODE_SIZE (mode) > 4
|
||||
/* If we only want the address of the pool entry, or
|
||||
for wide moves to integer regs we need to split
|
||||
the address calculation off into a separate insn.
|
||||
If necessary, the load can then be done with a
|
||||
load-multiple. This is safe, since we have
|
||||
already noted the length of such insns to be 8,
|
||||
and we are immediately over-writing the scratch
|
||||
we have grabbed with the final result. */
|
||||
if ((address_only || GET_MODE_SIZE (mode) > 4)
|
||||
&& (scratch = REGNO (dst)) < 16)
|
||||
{
|
||||
rtx reg = gen_rtx (REG, SImode, scratch);
|
||||
rtx reg;
|
||||
|
||||
if (mode == SImode)
|
||||
reg = dst;
|
||||
else
|
||||
reg = gen_rtx (REG, SImode, scratch);
|
||||
|
||||
newinsn = emit_insn_after (gen_movaddr (reg, addr),
|
||||
newinsn);
|
||||
addr = reg;
|
||||
}
|
||||
|
||||
newsrc = gen_rtx (MEM, mode, addr);
|
||||
if (! address_only)
|
||||
{
|
||||
newsrc = gen_rtx (MEM, mode, addr);
|
||||
|
||||
/* Build a jump insn wrapper around the move instead
|
||||
of an ordinary insn, because we want to have room for
|
||||
the target label rtx in fld[7], which an ordinary
|
||||
insn doesn't have. */
|
||||
newinsn = emit_jump_insn_after (gen_rtx (SET, VOIDmode,
|
||||
dst, newsrc),
|
||||
newinsn);
|
||||
JUMP_LABEL (newinsn) = pool_vector_label;
|
||||
/* XXX Fixme -- I think the following is bogus. */
|
||||
/* Build a jump insn wrapper around the move instead
|
||||
of an ordinary insn, because we want to have room for
|
||||
the target label rtx in fld[7], which an ordinary
|
||||
insn doesn't have. */
|
||||
newinsn = emit_jump_insn_after
|
||||
(gen_rtx (SET, VOIDmode, dst, newsrc), newinsn);
|
||||
JUMP_LABEL (newinsn) = pool_vector_label;
|
||||
|
||||
/* But it's still an ordinary insn */
|
||||
PUT_CODE (newinsn, INSN);
|
||||
/* But it's still an ordinary insn */
|
||||
PUT_CODE (newinsn, INSN);
|
||||
}
|
||||
|
||||
/* Kill old insn */
|
||||
delete_insn (scan);
|
||||
|
||||
@@ -874,7 +874,7 @@ enum reg_class
|
||||
|
||||
/* If we need to load shorts byte-at-a-time, then we need a scratch. */
|
||||
#define SECONDARY_INPUT_RELOAD_CLASS(CLASS,MODE,X) \
|
||||
(((MODE) == HImode && TARGET_SHORT_BY_BYTES \
|
||||
(((MODE) == HImode && ! arm_arch4 && TARGET_SHORT_BY_BYTES \
|
||||
&& (GET_CODE (X) == MEM \
|
||||
|| ((GET_CODE (X) == REG || GET_CODE (X) == SUBREG) \
|
||||
&& true_regnum (X) == -1))) \
|
||||
|
||||
@@ -2399,6 +2399,12 @@
|
||||
XEXP (operands[2], 0) = plus_constant (operands[3], low);
|
||||
operands[1] = plus_constant (XEXP (operands[1], 0), offset - low);
|
||||
}
|
||||
/* Ensure the sum is in correct canonical form */
|
||||
else if (GET_CODE (operands[1]) == PLUS
|
||||
&& GET_CODE (XEXP (operands[1], 1)) != CONST_INT
|
||||
&& ! s_register_operand (XEXP (operands[1], 1), VOIDmode))
|
||||
operands[1] = gen_rtx (PLUS, GET_MODE (operands[1]),
|
||||
XEXP (operands[1], 1), XEXP (operands[1], 0));
|
||||
}
|
||||
")
|
||||
|
||||
@@ -2464,6 +2470,12 @@
|
||||
XEXP (operands[2], 0) = plus_constant (operands[0], low);
|
||||
operands[1] = plus_constant (XEXP (operands[1], 0), offset - low);
|
||||
}
|
||||
/* Ensure the sum is in correct canonical form */
|
||||
else if (GET_CODE (operands[1]) == PLUS
|
||||
&& GET_CODE (XEXP (operands[1], 1)) != CONST_INT
|
||||
&& ! s_register_operand (XEXP (operands[1], 1), VOIDmode))
|
||||
operands[1] = gen_rtx (PLUS, GET_MODE (operands[1]),
|
||||
XEXP (operands[1], 1), XEXP (operands[1], 0));
|
||||
}
|
||||
")
|
||||
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
/* Definitions of target machine for GNU compiler. ARM Linux version.
|
||||
/* Definitions of target machine for GNU compiler. ARM Linux-based GNU
|
||||
systems version.
|
||||
Copyright (C) 1997 Free Software Foundation, Inc.
|
||||
Contributed by Russell King <rmk92@ecs.soton.ac.uk>.
|
||||
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
/* Definitions for ARM running Linux
|
||||
/* Definitions for ARM running Linux-based GNU systems.
|
||||
Copyright (C) 1993, 1994, 1997 Free Software Foundation, Inc.
|
||||
Adapted from ARM Linux by Russell King <rmk92@ecs.soton.ac.uk>.
|
||||
Contributed by Russell King <rmk92@ecs.soton.ac.uk>.
|
||||
|
||||
This file is part of GNU CC.
|
||||
|
||||
@@ -31,7 +31,7 @@ Boston, MA 02111-1307, USA. */
|
||||
#undef COMMENT_BEGIN
|
||||
|
||||
/* We default to ARM3. */
|
||||
#define TARGET_CPU_DEFAULT TARGET_CPU_arm3
|
||||
#define SUBTARGET_CPU_DEFAULT TARGET_CPU_arm3
|
||||
|
||||
#undef CPP_PREDEFINES
|
||||
#define CPP_PREDEFINES \
|
||||
@@ -56,8 +56,7 @@ Boston, MA 02111-1307, USA. */
|
||||
#define HANDLE_SYSV_PRAGMA
|
||||
|
||||
/* Run-time Target Specification. */
|
||||
#define TARGET_VERSION \
|
||||
fputs (" (ARM Linux/a.out)", stderr);
|
||||
#define TARGET_VERSION fputs (" (ARM GNU/Linux with a.out)", stderr);
|
||||
|
||||
/* This is used in ASM_FILE_START */
|
||||
#define ARM_OS_NAME "Linux"
|
||||
|
||||
@@ -36,7 +36,7 @@ the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. */
|
||||
#define SUBTARGET_CPU_DEFAULT TARGET_CPU_arm6
|
||||
|
||||
/* Default is to use APCS-32 mode. */
|
||||
#define TARGET_DEFAULT ARM_FLAG_APCS_32
|
||||
#define TARGET_DEFAULT (ARM_FLAG_APCS_32 | ARM_FLAG_SOFT_FLOAT)
|
||||
|
||||
#include "arm/aout.h"
|
||||
|
||||
@@ -67,6 +67,10 @@ the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. */
|
||||
#undef CPP_APCS_PC_DEFAULT_SPEC
|
||||
#define CPP_APCS_PC_DEFAULT_SPEC "-D__APCS_32__"
|
||||
|
||||
/* Because TARGET_DEFAULT sets ARM_FLAG_SOFT_FLOAT */
|
||||
#undef CPP_FLOAT_DEFAULT_SPEC
|
||||
#define CPP_FLOAT_DEFAULT_SPEC "-D__SOFTFP__"
|
||||
|
||||
/* Pass -X to the linker so that it will strip symbols starting with 'L' */
|
||||
#undef LINK_SPEC
|
||||
#define LINK_SPEC "\
|
||||
|
||||
@@ -10,7 +10,7 @@ ENQUIRE=
|
||||
CROSS_LIBGCC1 = libgcc1-asm.a
|
||||
LIBGCC1 = libgcc1-asm.a
|
||||
LIB1ASMSRC = arm/lib1funcs.asm
|
||||
LIB1ASMFUNCS = _udivsi3 _divsi3 _umodsi3 _modsi3 _dvmd_tls
|
||||
LIB1ASMFUNCS = _udivsi3 _divsi3 _umodsi3 _modsi3 _dvmd_lnx
|
||||
|
||||
MULTILIB_OPTIONS = mapcs-32
|
||||
MULTILIB_DIRNAMES = apcs-32
|
||||
|
||||
@@ -5,7 +5,3 @@ LIBGCC2_CFLAGS=-O2 -fomit-frame-pointer $(LIBGCC2_INCLUDES) $(GCC_CFLAGS) -g0
|
||||
|
||||
# Don't build enquire
|
||||
ENQUIRE=
|
||||
|
||||
CROSS_LIBGCC1 = libgcc1-asm.a
|
||||
LIB1ASMSRC = arm/lib1funcs.asm
|
||||
LIB1ASMFUNCS = _udivsi3 _divsi3 _umodsi3 _modsi3 _dvmd_tls
|
||||
|
||||
@@ -6,4 +6,3 @@ X_CFLAGS= -DPOSIX -Dopterr=gcc_opterr -Doptind=gcc_optind \
|
||||
OLDCC=/usr/ucb/cc
|
||||
CC=$(OLDCC)
|
||||
FIXPROTO_DEFINES= -D_POSIX_SOURCE -D_XOPEN_C -D_BSD_C -D_XOPEN_SOURCE
|
||||
INSTALL=$(srcdir)/install.sh -c
|
||||
|
||||
@@ -44,12 +44,6 @@ Boston, MA 02111-1307, USA. */
|
||||
#define USE_C_ALLOCA
|
||||
#endif
|
||||
|
||||
/* Define this if the library function putenv is available on your machine */
|
||||
#define HAVE_PUTENV 1
|
||||
|
||||
/* Define this if the library function vprintf is available on your machine */
|
||||
#define HAVE_VPRINTF 1
|
||||
|
||||
/* Define this to be 1 if you know the host compiler supports prototypes, even
|
||||
if it doesn't define __STDC__, or define it to be 0 if you do not want any
|
||||
prototypes when compiling GNU CC. */
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/* Definitions of target machine for GNU compiler. Clipper/Clix version.
|
||||
Copyright (C) 1988, 1993, 1996 Free Software Foundation, Inc.
|
||||
Copyright (C) 1988, 1993, 1996, 1997 Free Software Foundation, Inc.
|
||||
|
||||
This file is part of GNU CC.
|
||||
|
||||
@@ -31,6 +31,8 @@ Boston, MA 02111-1307, USA. */
|
||||
|
||||
#undef LIB_SPEC
|
||||
|
||||
#define TARGET_MEM_FUNCTIONS
|
||||
|
||||
#undef HAVE_ATEXIT
|
||||
#define HAVE_ATEXIT
|
||||
|
||||
|
||||
@@ -27,13 +27,4 @@
|
||||
/* isinf isn't there, but finite is. */
|
||||
#define isinf(x) (!finite(x))
|
||||
|
||||
|
||||
#define USG
|
||||
|
||||
#define bcopy(a,b,c) memcpy (b,a,c)
|
||||
#define bzero(a,b) memset (a,0,b)
|
||||
#define bcmp(a,b,c) memcmp (a,b,c)
|
||||
#define index strchr
|
||||
#define rindex strrchr
|
||||
|
||||
#define TARGET_MEM_FUNCTIONS
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/* Subroutines for insn-output.c for Convex.
|
||||
Copyright (C) 1988, 1993, 1994 Free Software Foundation, Inc.
|
||||
Copyright (C) 1988, 1993, 1994, 1997 Free Software Foundation, Inc.
|
||||
|
||||
This file is part of GNU CC.
|
||||
|
||||
@@ -19,6 +19,7 @@ the Free Software Foundation, 59 Temple Place - Suite 330,
|
||||
Boston, MA 02111-1307, USA. */
|
||||
|
||||
#include "config.h"
|
||||
#include <stdio.h>
|
||||
#include "tree.h"
|
||||
#include "rtl.h"
|
||||
#include "regs.h"
|
||||
@@ -31,9 +32,6 @@ Boston, MA 02111-1307, USA. */
|
||||
#include "output.h"
|
||||
#include "expr.h"
|
||||
|
||||
#undef NULL
|
||||
#include <stdio.h>
|
||||
|
||||
/* Tables used in convex.h */
|
||||
|
||||
char regno_ok_for_index_p_base[1 + LAST_VIRTUAL_REGISTER + 1];
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
# ld can make exe's c2-only if this lib is searched even though not loaded
|
||||
CCLIBFLAGS = -tm c1
|
||||
CCLIBFLAGS = -tm c1
|
||||
|
||||
# Use -pcc to avoid surprises.
|
||||
CC = cc -pcc
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/* Configuration for GNU C-compiler for Convex.
|
||||
Copyright (C) 1989, 1993 Free Software Foundation, Inc.
|
||||
Copyright (C) 1989, 1993, 1997 Free Software Foundation, Inc.
|
||||
|
||||
This file is part of GNU CC.
|
||||
|
||||
@@ -42,11 +42,6 @@ Boston, MA 02111-1307, USA. */
|
||||
|
||||
#define P_tmpdir "/tmp/"
|
||||
|
||||
/* Use memcpy and memset -- either would work but these get inlined. */
|
||||
|
||||
#define bcopy(a,b,c) memcpy (b,a,c)
|
||||
#define bzero(a,b) memset (a,0,b)
|
||||
|
||||
/* Convex uses Vax or IEEE floats.
|
||||
Both formats have Vax semantics. */
|
||||
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/* Subroutines for insn-output.c for GNU compiler. Elxsi version.
|
||||
Copyright (C) 1987, 1992 Free Software Foundation, Inc
|
||||
Copyright (C) 1987, 1992, 1997 Free Software Foundation, Inc
|
||||
This port, done by Mike Stump <mrs@cygnus.com> in 1988, and is the first
|
||||
64 bit port of GNU CC.
|
||||
Based upon the VAX port.
|
||||
@@ -21,8 +21,8 @@ along with GNU CC; see the file COPYING. If not, write to
|
||||
the Free Software Foundation, 59 Temple Place - Suite 330,
|
||||
Boston, MA 02111-1307, USA. */
|
||||
|
||||
#include <stdio.h>
|
||||
#include "config.h"
|
||||
#include <stdio.h>
|
||||
#include "rtl.h"
|
||||
|
||||
extern char *reg_names[];
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/* Subroutines for insn-output.c for Alliant FX computers.
|
||||
Copyright (C) 1989,1991 Free Software Foundation, Inc.
|
||||
Copyright (C) 1989, 1991, 1997 Free Software Foundation, Inc.
|
||||
|
||||
This file is part of GNU CC.
|
||||
|
||||
@@ -20,8 +20,8 @@ Boston, MA 02111-1307, USA. */
|
||||
|
||||
|
||||
/* Some output-actions in alliant.md need these. */
|
||||
#include <stdio.h>
|
||||
#include "config.h"
|
||||
#include <stdio.h>
|
||||
#include "rtl.h"
|
||||
#include "regs.h"
|
||||
#include "hard-reg-set.h"
|
||||
|
||||
@@ -1,12 +1,5 @@
|
||||
/* Configuration common to all targets running the GNU system. */
|
||||
|
||||
/* Macro to produce CPP_PREDEFINES for GNU on a given machine. */
|
||||
#define GNU_CPP_PREDEFINES(machine) \
|
||||
"-D" machine " -Acpu(" machine ") -Amachine(" machine ") \
|
||||
-Dunix -Asystem(unix) \
|
||||
-DMACH -Asystem(mach) \
|
||||
-D__GNU__ -Asystem(gnu)"
|
||||
|
||||
/* Provide GCC options for standard feature-test macros. */
|
||||
#undef CPP_SPEC
|
||||
#define CPP_SPEC "%{posix:-D_POSIX_SOURCE} %{bsd:-D_BSD_SOURCE}"
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/* Subroutines for insn-output.c for System/370.
|
||||
Copyright (C) 1989, 1993, 1995 Free Software Foundation, Inc.
|
||||
Copyright (C) 1989, 1993, 1995, 1997 Free Software Foundation, Inc.
|
||||
Contributed by Jan Stein (jan@cd.chalmers.se).
|
||||
Modified for MVS C/370 by Dave Pitts (dpitts@nyx.cs.du.edu)
|
||||
|
||||
@@ -20,10 +20,10 @@ along with GNU CC; see the file COPYING. If not, write to
|
||||
the Free Software Foundation, 59 Temple Place - Suite 330,
|
||||
Boston, MA 02111-1307, USA. */
|
||||
|
||||
#include "config.h"
|
||||
#include <stdio.h>
|
||||
#include <string.h>
|
||||
#include <ctype.h>
|
||||
#include "config.h"
|
||||
#include "rtl.h"
|
||||
#include "regs.h"
|
||||
#include "hard-reg-set.h"
|
||||
@@ -35,6 +35,11 @@ Boston, MA 02111-1307, USA. */
|
||||
#include "insn-attr.h"
|
||||
#include "flags.h"
|
||||
#include "recog.h"
|
||||
#ifdef sun
|
||||
#include <sys/types.h>
|
||||
#include <ctype.h>
|
||||
#endif
|
||||
#include <time.h>
|
||||
|
||||
|
||||
/* Label node, this structure is used to keep track of labels on the
|
||||
@@ -285,7 +290,7 @@ mvs_add_label (id)
|
||||
label_anchor = lp;
|
||||
}
|
||||
|
||||
/* Check to see if the label is in the list. If 1 is returned then a load
|
||||
/* Check to see if the label is in the list. If 1 is returned then a load
|
||||
and branch on register must be generated.
|
||||
ID is the label number of the label being checked. */
|
||||
|
||||
@@ -480,3 +485,100 @@ unsigned_jump_follows_p (insn)
|
||||
return GET_CODE (insn) != GE && GET_CODE (insn) != GT
|
||||
&& GET_CODE (insn) != LE && GET_CODE (insn) != LT;
|
||||
}
|
||||
|
||||
void
|
||||
i370_function_prolog (f, l)
|
||||
FILE *f;
|
||||
int l;
|
||||
{
|
||||
#if MACROPROLOGUE == 1
|
||||
fprintf (f, "\tEDCPRLG USRDSAL=%d,BASEREG=%d\n",
|
||||
STACK_POINTER_OFFSET + l - 120 +
|
||||
current_function_outgoing_args_size, BASE_REGISTER);
|
||||
fprintf (f, "PG%d\tEQU\t*\n", mvs_page_num );
|
||||
fprintf (f, "\tLR\t11,1\n");
|
||||
fprintf (f, "\tL\t%d,=A(PGT%d)\n", PAGE_REGISTER, mvs_page_num);
|
||||
mvs_page_code = 6;
|
||||
mvs_page_lit = 4;
|
||||
mvs_check_page (f, 0, 0);
|
||||
function_base_page = mvs_page_num;
|
||||
#else /* MACROPROLOGUE != 1 */
|
||||
static int function_label_index = 1;
|
||||
static int function_first = 0;
|
||||
static int function_year, function_month, function_day;
|
||||
static int function_hour, function_minute, function_second;
|
||||
int i;
|
||||
if (!function_first)
|
||||
{
|
||||
struct tm *function_time;
|
||||
time_t lcltime;
|
||||
time (&lcltime);
|
||||
function_time = localtime (&lcltime);
|
||||
function_year = function_time->tm_year + 1900;
|
||||
function_month = function_time->tm_mon + 1;
|
||||
function_day = function_time->tm_mday;
|
||||
function_hour = function_time->tm_hour;
|
||||
function_minute = function_time->tm_min;
|
||||
function_second = function_time->tm_sec;
|
||||
fprintf (f, "PPA2\tDS\t0F\n");
|
||||
fprintf (f, "\tDC\tX'03',X'00',X'33',X'00'\n");
|
||||
fprintf (f, "\tDC\tV(CEESTART),A(0)\n");
|
||||
fprintf (f, "\tDC\tA(CEETIMES)\n");
|
||||
fprintf (f, "CEETIMES\tDS\t0F\n");
|
||||
fprintf (f, "\tDC\tCL4'%d',CL4'%02d%02d',CL6'%02d%02d00'\n",
|
||||
function_year, function_month, function_day,
|
||||
function_hour, function_minute, function_second);
|
||||
fprintf (f, "\tDC\tCL2'01',CL4'0100'\n");
|
||||
}
|
||||
fprintf (f, "$DSD%03d\tDSECT\n", function_label_index);
|
||||
fprintf (f, "\tDS\tD\n");
|
||||
fprintf (f, "\tDS\tCL(%d)\n", STACK_POINTER_OFFSET + l
|
||||
+ current_function_outgoing_args_size);
|
||||
fprintf (f, "\tORG\t$DSD%03d\n", function_label_index);
|
||||
fprintf (f, "\tDS\tCL(120+8)\n");
|
||||
fprintf (f, "\tORG\n");
|
||||
fprintf (f, "\tDS\t0D\n");
|
||||
fprintf (f, "$DSL%03d\tEQU\t*-$DSD%03d-8\n", function_label_index,
|
||||
function_label_index);
|
||||
fprintf (f, "\tDS\t0H\n");
|
||||
assemble_name (f, mvs_function_name);
|
||||
fprintf (f, "\tEQU\t*\n");
|
||||
fprintf (f, "\tUSING\t*,15\n");
|
||||
fprintf (f, "\tB\tFPL%03d\n", function_label_index);
|
||||
fprintf (f, "\tDC\tAL1(FPL%03d+4-*)\n", function_label_index + 1);
|
||||
fprintf (f, "\tDC\tX'CE',X'A0',AL1(16)\n");
|
||||
fprintf (f, "\tDC\tAL4(PPA2)\n");
|
||||
fprintf (f, "\tDC\tAL4(0)\n");
|
||||
fprintf (f, "\tDC\tAL4($DSL%03d)\n", function_label_index);
|
||||
fprintf (f, "FPL%03d\tEQU\t*\n", function_label_index + 1);
|
||||
fprintf (f, "\tDC\tAL2(%d),C'%s'\n", strlen (mvs_function_name),
|
||||
mvs_function_name);
|
||||
fprintf (f, "FPL%03d\tDS\t0H\n", function_label_index);
|
||||
fprintf (f, "\tSTM\t14,12,12(13)\n");
|
||||
fprintf (f, "\tL\t2,76(,13)\n");
|
||||
fprintf (f, "\tL\t0,16(,15)\n");
|
||||
fprintf (f, "\tALR\t0,2\n");
|
||||
fprintf (f, "\tCL\t0,12(,12)\n");
|
||||
fprintf (f, "\tBNH\t*+10\n");
|
||||
fprintf (f, "\tL\t15,116(,12)\n");
|
||||
fprintf (f, "\tBALR\t14,15\n");
|
||||
fprintf (f, "\tL\t15,72(,13)\n");
|
||||
fprintf (f, "\tSTM\t15,0,72(2)\n");
|
||||
fprintf (f, "\tMVI\t0(2),X'10'\n");
|
||||
fprintf (f, "\tST\t2,8(,13)\n ");
|
||||
fprintf (f, "\tST\t13,4(,2)\n ");
|
||||
fprintf (f, "\tLR\t13,2\n");
|
||||
fprintf (f, "\tDROP\t15\n");
|
||||
fprintf (f, "\tBALR\t%d,0\n", BASE_REGISTER);
|
||||
fprintf (f, "PG%d\tEQU\t*\n", mvs_page_num );
|
||||
fprintf (f, "\tUSING\t*,%d\n", BASE_REGISTER);
|
||||
fprintf (f, "\tLR\t11,1\n");
|
||||
fprintf (f, "\tL\t%d,=A(PGT%d)\n", PAGE_REGISTER, mvs_page_num);
|
||||
mvs_page_code = 4;
|
||||
mvs_page_lit = 4;
|
||||
mvs_check_page (f, 0, 0);
|
||||
function_base_page = mvs_page_num;
|
||||
function_first = 1;
|
||||
function_label_index += 2;
|
||||
#endif /* MACROPROLOGUE */
|
||||
}
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/* Configuration for GNU C-compiler for System/370.
|
||||
Copyright (C) 1989, 1993 Free Software Foundation, Inc.
|
||||
Copyright (C) 1989, 1993, 1997 Free Software Foundation, Inc.
|
||||
Contributed by Jan Stein (jan@cd.chalmers.se).
|
||||
Modified for MVS C/370 by Dave Pitts (dpitts@nyx.cs.du.edu)
|
||||
|
||||
@@ -44,10 +44,6 @@ Boston, MA 02111-1307, USA. */
|
||||
|
||||
#include "tm.h"
|
||||
|
||||
#define bcopy(a,b,c) memcpy (b,a,c)
|
||||
#define bzero(a,b) memset (a,0,b)
|
||||
#define bcmp(a,b,c) memcmp (a,b,c)
|
||||
|
||||
/* Arguments to use with `exit'. */
|
||||
|
||||
#define SUCCESS_EXIT_CODE 0
|
||||
|
||||
@@ -22,6 +22,15 @@ along with GNU CC; see the file COPYING. If not, write to
|
||||
the Free Software Foundation, 59 Temple Place - Suite 330,
|
||||
Boston, MA 02111-1307, USA. */
|
||||
|
||||
#undef CPP_PREDEFINES
|
||||
#define CPP_PREDEFINES "-Di386 -D_WIN32 -DWIN32 -D__WIN32__ \
|
||||
-D__MINGW32__ -DWINNT -D_X86_=1 -D__STDC__=1\
|
||||
-D__stdcall=__attribute__((__stdcall__)) \
|
||||
-D_stdcall=__attribute__((__stdcall__)) \
|
||||
-D__cdecl=__attribute__((__cdecl__)) \
|
||||
-D__declspec(x)=__attribute__((x)) \
|
||||
-Asystem(winnt) -Acpu(i386) -Amachine(i386)"
|
||||
|
||||
#undef LIBGCC_SPEC
|
||||
#define LIBGCC_SPEC "-lmingw32 -lgcc -lmoldname -lcrtdll"
|
||||
|
||||
|
||||
@@ -97,6 +97,15 @@ extern int i386_pe_valid_decl_attribute_p ();
|
||||
#define VALID_MACHINE_DECL_ATTRIBUTE(DECL, ATTRIBUTES, IDENTIFIER, ARGS) \
|
||||
i386_pe_valid_decl_attribute_p (DECL, ATTRIBUTES, IDENTIFIER, ARGS)
|
||||
|
||||
/* A C expression whose value is nonzero if IDENTIFIER with arguments ARGS
|
||||
is a valid machine specific attribute for TYPE.
|
||||
The attributes in ATTRIBUTES have previously been assigned to TYPE. */
|
||||
|
||||
#undef VALID_MACHINE_TYPE_ATTRIBUTE
|
||||
#define VALID_MACHINE_TYPE_ATTRIBUTE(TYPE, ATTRIBUTES, IDENTIFIER, ARGS) \
|
||||
i386_pe_valid_type_attribute_p (TYPE, ATTRIBUTES, IDENTIFIER, ARGS)
|
||||
extern int i386_pe_valid_type_attribute_p ();
|
||||
|
||||
extern union tree_node *i386_pe_merge_decl_attributes ();
|
||||
#define MERGE_MACHINE_DECL_ATTRIBUTES(OLD, NEW) \
|
||||
i386_pe_merge_decl_attributes ((OLD), (NEW))
|
||||
@@ -325,21 +334,50 @@ extern void i386_pe_unique_section ();
|
||||
NULL_TREE. Some target formats do not support arbitrary sections. Do not
|
||||
define this macro in such cases. */
|
||||
#undef ASM_OUTPUT_SECTION_NAME
|
||||
#define ASM_OUTPUT_SECTION_NAME(STREAM, DECL, NAME, RELOC) \
|
||||
do { \
|
||||
if ((DECL) && TREE_CODE (DECL) == FUNCTION_DECL) \
|
||||
fprintf (STREAM, "\t.section %s,\"x\"\n", (NAME)); \
|
||||
else if ((DECL) && DECL_READONLY_SECTION (DECL, RELOC)) \
|
||||
fprintf (STREAM, "\t.section %s,\"\"\n", (NAME)); \
|
||||
else \
|
||||
fprintf (STREAM, "\t.section %s,\"w\"\n", (NAME)); \
|
||||
/* Functions may have been compiled at various levels of \
|
||||
optimization so we can't use `same_size' here. Instead, \
|
||||
have the linker pick one. */ \
|
||||
if ((DECL) && DECL_ONE_ONLY (DECL)) \
|
||||
fprintf (STREAM, "\t.linkonce %s\n", \
|
||||
TREE_CODE (DECL) == FUNCTION_DECL \
|
||||
? "discard" : "same_size"); \
|
||||
#define ASM_OUTPUT_SECTION_NAME(STREAM, DECL, NAME, RELOC) \
|
||||
do { \
|
||||
static struct section_info \
|
||||
{ \
|
||||
struct section_info *next; \
|
||||
char *name; \
|
||||
enum sect_enum {SECT_RW, SECT_RO, SECT_EXEC} type; \
|
||||
} *sections; \
|
||||
struct section_info *s; \
|
||||
char *mode; \
|
||||
enum sect_enum type; \
|
||||
\
|
||||
for (s = sections; s; s = s->next) \
|
||||
if (!strcmp (NAME, s->name)) \
|
||||
break; \
|
||||
\
|
||||
if (DECL && TREE_CODE (DECL) == FUNCTION_DECL) \
|
||||
type = SECT_EXEC, mode = "x"; \
|
||||
else if (DECL && DECL_READONLY_SECTION (DECL, RELOC)) \
|
||||
type = SECT_RO, mode = ""; \
|
||||
else \
|
||||
type = SECT_RW, mode = "w"; \
|
||||
\
|
||||
if (s == 0) \
|
||||
{ \
|
||||
s = (struct section_info *) xmalloc (sizeof (struct section_info)); \
|
||||
s->name = xmalloc ((strlen (NAME) + 1) * sizeof (*NAME)); \
|
||||
strcpy (s->name, NAME); \
|
||||
s->type = type; \
|
||||
s->next = sections; \
|
||||
sections = s; \
|
||||
fprintf (STREAM, ".section\t%s,\"%s\"\n", NAME, mode); \
|
||||
/* Functions may have been compiled at various levels of \
|
||||
optimization so we can't use `same_size' here. Instead, \
|
||||
have the linker pick one. */ \
|
||||
if ((DECL) && DECL_ONE_ONLY (DECL)) \
|
||||
fprintf (STREAM, "\t.linkonce %s\n", \
|
||||
TREE_CODE (DECL) == FUNCTION_DECL \
|
||||
? "discard" : "same_size"); \
|
||||
} \
|
||||
else \
|
||||
{ \
|
||||
fprintf (STREAM, ".section\t%s,\"%s\"\n", NAME, mode); \
|
||||
} \
|
||||
} while (0)
|
||||
|
||||
/* Write the extra assembler code needed to declare a function
|
||||
@@ -408,3 +446,8 @@ do { \
|
||||
extern void i386_pe_record_external_function PROTO((char *));
|
||||
extern void i386_pe_declare_function_type STDIO_PROTO((FILE *, char *, int));
|
||||
extern void i386_pe_asm_file_end STDIO_PROTO((FILE *));
|
||||
|
||||
/* For Win32 ABI compatibility */
|
||||
#undef DEFAULT_PCC_STRUCT_RETURN
|
||||
#define DEFAULT_PCC_STRUCT_RETURN 0
|
||||
|
||||
|
||||
@@ -1,6 +1,5 @@
|
||||
/* Subroutines for GNU compiler for Intel 80x86 running DG/ux
|
||||
Copyright (C) 1993, 1995 Free Software Foundation, Inc.
|
||||
|
||||
Copyright (C) 1993, 1995, 1997 Free Software Foundation, Inc.
|
||||
Currently maintained by (gcc@dg-rtp.dg.com)
|
||||
|
||||
This file is part of GNU CC.
|
||||
@@ -96,7 +95,7 @@ output_options (file, f_options, f_len, W_options, W_len,
|
||||
indent, pos, max);
|
||||
|
||||
pos = output_option (file, sep, "-mcpu=", ix86_cpu_string, indent, pos, max);
|
||||
pos = output_option (file, sep, "-march=", ix86_isa_string, indent, pos, max);
|
||||
pos = output_option (file, sep, "-march=", ix86_arch_string, indent, pos, max);
|
||||
fprintf (file, term);
|
||||
}
|
||||
|
||||
|
||||
@@ -31,23 +31,18 @@
|
||||
* SUCH DAMAGE.
|
||||
*/
|
||||
|
||||
/*
|
||||
* Re rework of the solaris 2 version of gmon by J.W.Hawtin 12/8/1996
|
||||
* Does not work right yet.
|
||||
*/
|
||||
|
||||
/*
|
||||
* This is a modified gmon.c by J.W.Hawtin <J.W.Hawtin@lboro.ac.uk>,
|
||||
* This is a modified gmon.c by J.W.Hawtin <oolon@ankh.org>,
|
||||
* 14/8/96 based on the original gmon.c in GCC and the hacked version
|
||||
* solaris 2 sparc version (config/sparc/gmon-sol.c) by Mark Eichin. To do
|
||||
* process profiling on solaris 2.4 X86
|
||||
* process profiling on solaris 2.X X86
|
||||
*
|
||||
* It must be used in conjunction with sol2-gc1.asm, which is used to start
|
||||
* and stop process monitoring.
|
||||
*
|
||||
* Differences.
|
||||
*
|
||||
* On Solaris 2 _mcount is called my library functions not mcount, so support
|
||||
* On Solaris 2 _mcount is called by library functions not mcount, so support
|
||||
* has been added for both.
|
||||
*
|
||||
* Also the prototype for profil() is different
|
||||
@@ -58,7 +53,7 @@
|
||||
*
|
||||
* Notes
|
||||
*
|
||||
* This code could easily be integrated with the orginal gmon.c and perhaps
|
||||
* This code could easily be integrated with the original gmon.c and perhaps
|
||||
* should be.
|
||||
*/
|
||||
|
||||
@@ -90,7 +85,7 @@ struct phdr {
|
||||
#define HASHFRACTION 1
|
||||
#define ARCDENSITY 2
|
||||
#define MINARCS 50
|
||||
#define BASEADDRESS 0x8000000 /* On Solaris 2 X86 all excutables start here
|
||||
#define BASEADDRESS 0x8000000 /* On Solaris 2 X86 all executables start here
|
||||
and not at 0 */
|
||||
|
||||
struct tostruct {
|
||||
@@ -264,6 +259,7 @@ internal_mcount()
|
||||
register struct tostruct *top;
|
||||
register struct tostruct *prevtop;
|
||||
register long toindex;
|
||||
static char already_setup;
|
||||
|
||||
/*
|
||||
* find the return address for mcount,
|
||||
@@ -277,6 +273,17 @@ internal_mcount()
|
||||
This identifies the caller of the function just entered. */
|
||||
frompcindex = (void *) __builtin_return_address (1);
|
||||
|
||||
if(!already_setup) {
|
||||
extern etext();
|
||||
already_setup = 1;
|
||||
/* monstartup(0, etext); */
|
||||
monstartup(0x08040000, etext);
|
||||
#ifdef USE_ONEXIT
|
||||
on_exit(_mcleanup, 0);
|
||||
#else
|
||||
atexit(_mcleanup);
|
||||
#endif
|
||||
}
|
||||
/*
|
||||
* check that we are profiling
|
||||
* and that we aren't recursively invoked.
|
||||
|
||||
@@ -2,8 +2,6 @@
|
||||
|
||||
#include "dbxcoff.h"
|
||||
|
||||
#define NO_STAB_H /* DJGPP has no stab.h */
|
||||
|
||||
/* Don't assume anything about the header files. */
|
||||
#define NO_IMPLICIT_EXTERN_C
|
||||
|
||||
@@ -88,3 +86,11 @@ dtor_section () \
|
||||
#undef ASM_OUTPUT_ALIGN
|
||||
#define ASM_OUTPUT_ALIGN(FILE,LOG) \
|
||||
if ((LOG) != 0) fprintf ((FILE), "\t.p2align %d\n", LOG)
|
||||
|
||||
/* djgpp has atexit (). */
|
||||
#undef HAVE_ATEXIT
|
||||
#define HAVE_ATEXIT
|
||||
|
||||
/* djgpp automatically calls its own version of __main, so don't define one
|
||||
in libgcc, nor call one in main(). */
|
||||
#define HAS_INIT_SECTION
|
||||
|
||||
@@ -546,6 +546,7 @@ i386_valid_type_attribute_p (type, attributes, identifier, args)
|
||||
tree args;
|
||||
{
|
||||
if (TREE_CODE (type) != FUNCTION_TYPE
|
||||
&& TREE_CODE (type) != METHOD_TYPE
|
||||
&& TREE_CODE (type) != FIELD_DECL
|
||||
&& TREE_CODE (type) != TYPE_DECL)
|
||||
return 0;
|
||||
@@ -891,6 +892,17 @@ output_to_reg (dest, dies, scratch_mem)
|
||||
{
|
||||
if (dies)
|
||||
output_asm_insn (AS1 (fistp%z3,%y0), xops);
|
||||
else if (GET_MODE (xops[3]) == DImode && ! dies)
|
||||
{
|
||||
/* There is no DImode version of this without a stack pop, so
|
||||
we must emulate it. It doesn't matter much what the second
|
||||
instruction is, because the value being pushed on the FP stack
|
||||
is not used except for the following stack popping store.
|
||||
This case can only happen without optimization, so it doesn't
|
||||
matter that it is inefficient. */
|
||||
output_asm_insn (AS1 (fistp%z3,%0), xops);
|
||||
output_asm_insn (AS1 (fild%z3,%0), xops);
|
||||
}
|
||||
else
|
||||
output_asm_insn (AS1 (fist%z3,%y0), xops);
|
||||
}
|
||||
|
||||
@@ -896,10 +896,19 @@ enum reg_class
|
||||
/* Similar, but for floating constants, and defining letters G and H.
|
||||
Here VALUE is the CONST_DOUBLE rtx itself. We allow constants even if
|
||||
TARGET_387 isn't set, because the stack register converter may need to
|
||||
load 0.0 into the function value register. */
|
||||
load 0.0 into the function value register.
|
||||
|
||||
We disallow these constants when -fomit-frame-pointer and compiling
|
||||
PIC code since reload might need to force the constant to memory.
|
||||
Forcing the constant to memory changes the elimination offsets after
|
||||
the point where they must stay constant.
|
||||
|
||||
However, we must allow them after reload as completed as reg-stack.c
|
||||
will create insns which use these constants. */
|
||||
|
||||
#define CONST_DOUBLE_OK_FOR_LETTER_P(VALUE, C) \
|
||||
((C) == 'G' ? standard_80387_constant_p (VALUE) : 0)
|
||||
(((reload_completed || !flag_pic || !flag_omit_frame_pointer) && (C) == 'G') \
|
||||
? standard_80387_constant_p (VALUE) : 0)
|
||||
|
||||
/* Place additional restrictions on the register class to use when it
|
||||
is necessary to be able to hold a value of mode MODE in a reload
|
||||
|
||||
@@ -1109,7 +1109,7 @@
|
||||
/* Fastest way to change a 0 to a 1.
|
||||
If inc%B0 isn't allowed, use inc%L0. */
|
||||
if (NON_QI_REG_P (operands[0]))
|
||||
return AS1 (inc%L0,%0);
|
||||
return AS1 (inc%L0,%k0);
|
||||
else
|
||||
return AS1 (inc%B0,%0);
|
||||
}
|
||||
|
||||
@@ -150,8 +150,9 @@ Boston, MA 02111-1307, USA. */
|
||||
#undef WCHAR_TYPE_SIZE
|
||||
#define WCHAR_TYPE_SIZE BITS_PER_WORD
|
||||
|
||||
/* The egcs-1.1 branch is the last time we will have -Di386. -D__i386__ is the thing to use. */
|
||||
#undef CPP_PREDEFINES
|
||||
#define CPP_PREDEFINES "-D__ELF__ -Dunix -Dlinux -Asystem(posix)"
|
||||
#define CPP_PREDEFINES "-D__ELF__ -Dunix -Di386 -D__i386__ -Dlinux -Asystem(posix)"
|
||||
|
||||
#undef CPP_SPEC
|
||||
#ifdef USE_GNULIBC_1
|
||||
|
||||
@@ -26,10 +26,14 @@ Boston, MA 02111-1307, USA. */
|
||||
|
||||
#include "i386/cygwin32.h"
|
||||
|
||||
/* Please keep changes to CPP_PREDEFINES in sync with i386/crtdll. The
|
||||
only difference between the two should be __MSVCRT__ needed to
|
||||
distinguish MSVC from CRTDLL runtime in mingw headers. */
|
||||
#undef CPP_PREDEFINES
|
||||
#define CPP_PREDEFINES "-Di386 -D_WIN32 -DWIN32 -D__WIN32__ \
|
||||
-D__MINGW32__ -DWINNT -D_X86_=1 -D__STDC__=1\
|
||||
-D__MINGW32__ -D__MSVCRT__ -DWINNT -D_X86_=1 -D__STDC__=1\
|
||||
-D__stdcall=__attribute__((__stdcall__)) \
|
||||
-D_stdcall=__attribute__((__stdcall__)) \
|
||||
-D__cdecl=__attribute__((__cdecl__)) \
|
||||
-D__declspec(x)=__attribute__((x)) \
|
||||
-Asystem(winnt) -Acpu(i386) -Amachine(i386)"
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
! crt1.s for Solaris 2, x86
|
||||
|
||||
! Copyright (C) 1993 Free Software Foundation, Inc.
|
||||
! Copyright (C) 1993, 1998 Free Software Foundation, Inc.
|
||||
! Written By Fred Fish, Nov 1992
|
||||
!
|
||||
! This file is free software; you can redistribute it and/or modify it
|
||||
@@ -149,7 +149,7 @@ _start:
|
||||
! A dummy profiling support routine for non-profiling executables,
|
||||
! in case we link in some objects that have been compiled for profiling.
|
||||
|
||||
.globl _mcount
|
||||
.weak _mcount
|
||||
_mcount:
|
||||
ret
|
||||
.type _mcount,@function
|
||||
|
||||
@@ -41,7 +41,7 @@
|
||||
! information obtained by single stepping executables on other i386 SVR4
|
||||
! implementations. This file is the first thing linked into any executable.
|
||||
|
||||
! This is a modified crt1.s by J.W.Hawtin <J.W.Hawtin@lboro.ac.uk> 15/8/96,
|
||||
! This is a modified crt1.s by J.W.Hawtin <oolon@ankh.org> 15/8/96,
|
||||
! to allow program profiling, by calling monstartup on entry and _mcleanup
|
||||
! on exit
|
||||
|
||||
|
||||
@@ -14,3 +14,14 @@
|
||||
#ifdef DWARF_DEBUGGING_INFO
|
||||
#undef DWARF_DEBUGGING_INFO
|
||||
#endif
|
||||
|
||||
/*
|
||||
Changed from config/svr4.h in the following ways:
|
||||
|
||||
- Added "%{V}".
|
||||
- Modified "{%v:-V}" to take into account "%{V}".
|
||||
- Added "-s" so that stabs are saved in the final executable. */
|
||||
|
||||
#undef ASM_SPEC
|
||||
#define ASM_SPEC \
|
||||
"%{V} %{v:%{!V:-V}} %{Qy:} %{!Qn:-Qy} %{n} %{T} %{Ym,*} %{Yd,*} %{Wa,*:%*} -s"
|
||||
|
||||
@@ -20,7 +20,7 @@ the Free Software Foundation, 59 Temple Place - Suite 330,
|
||||
Boston, MA 02111-1307, USA. */
|
||||
|
||||
#include "config.h"
|
||||
#include <stdio.h>
|
||||
#include "system.h"
|
||||
#include "rtl.h"
|
||||
#include "regs.h"
|
||||
#include "hard-reg-set.h"
|
||||
@@ -50,17 +50,40 @@ i386_pe_valid_decl_attribute_p (decl, attributes, attr, args)
|
||||
tree attr;
|
||||
tree args;
|
||||
{
|
||||
if (args != NULL_TREE)
|
||||
return 0;
|
||||
|
||||
if (is_attribute_p ("dllexport", attr))
|
||||
return 1;
|
||||
if (is_attribute_p ("dllimport", attr))
|
||||
return 1;
|
||||
if (args == NULL_TREE)
|
||||
{
|
||||
if (is_attribute_p ("dllexport", attr))
|
||||
return 1;
|
||||
if (is_attribute_p ("dllimport", attr))
|
||||
return 1;
|
||||
}
|
||||
|
||||
return i386_valid_decl_attribute_p (decl, attributes, attr, args);
|
||||
}
|
||||
|
||||
/* Return nonzero if ATTR is a valid attribute for TYPE.
|
||||
ATTRIBUTES are any existing attributes and ARGS are the arguments
|
||||
supplied with ATTR. */
|
||||
|
||||
int
|
||||
i386_pe_valid_type_attribute_p (type, attributes, attr, args)
|
||||
tree type;
|
||||
tree attributes;
|
||||
tree attr;
|
||||
tree args;
|
||||
{
|
||||
if (args == NULL_TREE
|
||||
&& (TREE_CODE (type) == RECORD_TYPE || TREE_CODE (type) == UNION_TYPE))
|
||||
{
|
||||
if (is_attribute_p ("dllexport", attr))
|
||||
return 1;
|
||||
if (is_attribute_p ("dllimport", attr))
|
||||
return 1;
|
||||
}
|
||||
|
||||
return i386_valid_type_attribute_p (type, attributes, attr, args);
|
||||
}
|
||||
|
||||
/* Merge attributes in decls OLD and NEW.
|
||||
|
||||
This handles the following situation:
|
||||
@@ -114,49 +137,33 @@ i386_pe_merge_decl_attributes (old, new)
|
||||
return a;
|
||||
}
|
||||
|
||||
/* Check a type that has a virtual table, and see if any virtual methods are
|
||||
marked for import or export, and if so, arrange for the vtable to
|
||||
be imported or exported. */
|
||||
/* Return the type that we should use to determine if DECL is
|
||||
imported or exported. */
|
||||
|
||||
static int
|
||||
i386_pe_check_vtable_importexport (type)
|
||||
tree type;
|
||||
static tree
|
||||
associated_type (decl)
|
||||
tree decl;
|
||||
{
|
||||
tree methods = TYPE_METHODS (type);
|
||||
tree fndecl;
|
||||
tree t = NULL_TREE;
|
||||
|
||||
if (TREE_CODE (methods) == FUNCTION_DECL)
|
||||
fndecl = methods;
|
||||
else if (TREE_VEC_ELT (methods, 0) != NULL_TREE)
|
||||
fndecl = TREE_VEC_ELT (methods, 0);
|
||||
else
|
||||
fndecl = TREE_VEC_ELT (methods, 1);
|
||||
|
||||
while (fndecl)
|
||||
/* In the C++ frontend, DECL_CONTEXT for a method doesn't actually refer
|
||||
to the containing class. So we look at the 'this' arg. */
|
||||
if (TREE_CODE (TREE_TYPE (decl)) == METHOD_TYPE)
|
||||
{
|
||||
if (DECL_VIRTUAL_P (fndecl) || DECL_VINDEX (fndecl) != NULL_TREE)
|
||||
{
|
||||
tree exp = lookup_attribute ("dllimport",
|
||||
DECL_MACHINE_ATTRIBUTES (fndecl));
|
||||
if (exp == 0)
|
||||
exp = lookup_attribute ("dllexport",
|
||||
DECL_MACHINE_ATTRIBUTES (fndecl));
|
||||
if (exp)
|
||||
return 1;
|
||||
}
|
||||
|
||||
fndecl = TREE_CHAIN (fndecl);
|
||||
/* Artificial methods are not affected by the import/export status of
|
||||
their class unless they are virtual. */
|
||||
if (! DECL_ARTIFICIAL (decl) || DECL_VINDEX (decl))
|
||||
t = TREE_TYPE (TREE_VALUE (TYPE_ARG_TYPES (TREE_TYPE (decl))));
|
||||
}
|
||||
else if (DECL_CONTEXT (decl)
|
||||
&& TREE_CODE_CLASS (TREE_CODE (DECL_CONTEXT (decl))) == 't')
|
||||
t = DECL_CONTEXT (decl);
|
||||
|
||||
return 0;
|
||||
return t;
|
||||
}
|
||||
|
||||
/* Return non-zero if DECL is a dllexport'd object. */
|
||||
|
||||
#if 0
|
||||
tree current_class_type; /* FIXME */
|
||||
#endif
|
||||
|
||||
int
|
||||
i386_pe_dllexport_p (decl)
|
||||
tree decl;
|
||||
@@ -170,22 +177,14 @@ i386_pe_dllexport_p (decl)
|
||||
if (exp)
|
||||
return 1;
|
||||
|
||||
#if 0 /* This was a hack to get vtable's exported or imported since only one
|
||||
copy of them is ever output. Disabled pending better solution. */
|
||||
/* For C++, the vtables might have to be marked. */
|
||||
if (TREE_CODE (decl) == VAR_DECL && DECL_VIRTUAL_P (decl))
|
||||
/* Class members get the dllexport status of their class. */
|
||||
if (associated_type (decl))
|
||||
{
|
||||
if (TREE_PUBLIC (decl)
|
||||
&& DECL_EXTERNAL (decl) == 0
|
||||
&& (DECL_CONTEXT (decl)
|
||||
? i386_pe_check_vtable_importexport (DECL_CONTEXT (decl))
|
||||
: current_class_type
|
||||
? i386_pe_check_vtable_importexport (current_class_type)
|
||||
: 0)
|
||||
)
|
||||
exp = lookup_attribute ("dllexport",
|
||||
TYPE_ATTRIBUTES (associated_type (decl)));
|
||||
if (exp)
|
||||
return 1;
|
||||
}
|
||||
#endif
|
||||
|
||||
return 0;
|
||||
}
|
||||
@@ -209,22 +208,14 @@ i386_pe_dllimport_p (decl)
|
||||
if (imp)
|
||||
return 1;
|
||||
|
||||
#if 0 /* This was a hack to get vtable's exported or imported since only one
|
||||
copy of them is ever output. Disabled pending better solution. */
|
||||
/* For C++, the vtables might have to be marked. */
|
||||
if (TREE_CODE (decl) == VAR_DECL && DECL_VIRTUAL_P (decl))
|
||||
/* Class members get the dllimport status of their class. */
|
||||
if (associated_type (decl))
|
||||
{
|
||||
if (TREE_PUBLIC (decl)
|
||||
&& DECL_EXTERNAL (decl)
|
||||
&& (DECL_CONTEXT (decl)
|
||||
? i386_pe_check_vtable_importexport (DECL_CONTEXT (decl))
|
||||
: current_class_type
|
||||
? i386_pe_check_vtable_importexport (current_class_type)
|
||||
: 0)
|
||||
)
|
||||
imp = lookup_attribute ("dllimport",
|
||||
TYPE_ATTRIBUTES (associated_type (decl)));
|
||||
if (imp)
|
||||
return 1;
|
||||
}
|
||||
#endif
|
||||
|
||||
return 0;
|
||||
}
|
||||
@@ -570,7 +561,7 @@ i386_pe_asm_file_end (file)
|
||||
decl = get_identifier (p->name);
|
||||
|
||||
/* Positively ensure only one declaration for any given symbol. */
|
||||
if (! TREE_ASM_WRITTEN (decl))
|
||||
if (! TREE_ASM_WRITTEN (decl) && TREE_SYMBOL_REFERENCED (decl))
|
||||
{
|
||||
TREE_ASM_WRITTEN (decl) = 1;
|
||||
i386_pe_declare_function_type (file, p->name, TREE_PUBLIC (decl));
|
||||
|
||||
@@ -17,7 +17,6 @@ DEBUG =
|
||||
DEBUG_COLLECT = # -DDEBUG
|
||||
CCLIBFLAGS = -O -DNO_HALF_PIC
|
||||
GCC_CFLAGS = $(INTERNAL_CFLAGS) $(X_CFLAGS) $(T_CFLAGS) $(CFLAGS) -B./ -DPOSIX -DNO_HALF_PIC
|
||||
INSTALL = installbsd -c
|
||||
LDFLAGS =
|
||||
MSTATS = # -mstats
|
||||
OLDCC = /usr/ccs/gcc/gcc
|
||||
|
||||
@@ -1,37 +1,2 @@
|
||||
/* Configuration for GNU C-compiler for IBM PS/2 running AIX/386.
|
||||
Copyright (C) 1988, 1993 Free Software Foundation, Inc.
|
||||
|
||||
This file is part of GNU CC.
|
||||
|
||||
GNU CC is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation; either version 2, or (at your option)
|
||||
any later version.
|
||||
|
||||
GNU CC is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with GNU CC; see the file COPYING. If not, write to
|
||||
the Free Software Foundation, 59 Temple Place - Suite 330,
|
||||
Boston, MA 02111-1307, USA. */
|
||||
|
||||
#define USG
|
||||
|
||||
#undef TRUE
|
||||
#undef FALSE
|
||||
|
||||
#include "i386/xm-i386.h"
|
||||
|
||||
#define bcopy(a,b,c) memcpy (b,a,c)
|
||||
#define bzero(a,b) memset (a,0,b)
|
||||
#define bcmp(a,b,c) memcmp (a,b,c)
|
||||
|
||||
/* If not compiled with GNU C, use the portable alloca. */
|
||||
#ifndef __GNUC__
|
||||
#define USE_C_ALLOCA
|
||||
#endif
|
||||
|
||||
#define HAVE_PUTENV
|
||||
|
||||
@@ -1,5 +1,3 @@
|
||||
#include "i386/xm-sysv3.h"
|
||||
|
||||
#ifndef REAL_ARITHMETIC
|
||||
#define REAL_VALUE_ATOF(x, mode) strtod ((x), (char **)0)
|
||||
extern double strtod ();
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
/* Configuration for GNU compiler
|
||||
for an Intel i386 or later processor running OS/2 2.x.
|
||||
Copyright (C) 1993, 1994, 1995 Free Software Foundation, Inc.
|
||||
Contributed by Samuel Figueroa (figueroa@cs.nyu.edu)
|
||||
Copyright (C) 1993, 1994, 1995, 1997, 1998 Free Software Foundation, Inc.
|
||||
Contributed by Samuel Figueroa (figueroa@apple.com)
|
||||
|
||||
This file is part of GNU CC.
|
||||
|
||||
@@ -28,20 +28,24 @@ Boston, MA 02111-1307, USA. */
|
||||
#include <stdlib.h> /* this defines alloca */
|
||||
#define USG
|
||||
#define ONLY_INT_FIELDS
|
||||
#define HAVE_PUTENV
|
||||
#define USE_PROTOTYPES 1
|
||||
#define bcmp(a,b,c) memcmp (a,b,c)
|
||||
#define bcopy(a,b,c) memcpy (b,a,c)
|
||||
#define bzero(a,b) memset (a,0,b)
|
||||
#define index strchr
|
||||
#define rindex strrchr
|
||||
#define strcasecmp stricmp
|
||||
#define kill(a,b) raise(b)
|
||||
#define mktemp tmpnam
|
||||
#else
|
||||
#ifdef __EMX__
|
||||
#define EMX
|
||||
#define USG
|
||||
#define BSTRING
|
||||
#define HAVE_PUTENV
|
||||
#define HAVE_VPRINTF
|
||||
#define HAVE_STRERROR
|
||||
#define strcasecmp stricmp
|
||||
#else
|
||||
#define ____386BSD____
|
||||
int spawnv (int modeflag, char *path, char *argv[]);
|
||||
int spawnvp (int modeflag, char *path, char *argv[]);
|
||||
#endif /* __EMX__ */
|
||||
#endif /* __IBMC__ */
|
||||
|
||||
#ifndef PATH_SEPARATOR
|
||||
@@ -52,6 +56,14 @@ int spawnvp (int modeflag, char *path, char *argv[]);
|
||||
#endif
|
||||
|
||||
#define EXECUTABLE_SUFFIX ".exe"
|
||||
|
||||
/* The EMX compiler uses regular .o files */
|
||||
#ifndef __EMX__
|
||||
#define OBJECT_SUFFIX ".obj"
|
||||
#endif
|
||||
|
||||
/* This is required to make temporary file names unique on file
|
||||
systems which severely restrict the length of file names. */
|
||||
#define MKTEMP_EACH_FILE
|
||||
|
||||
#include "i386/xm-i386.h"
|
||||
|
||||
@@ -1,32 +1,2 @@
|
||||
/* Configuration for GNU C-compiler for 386 running OSF/1
|
||||
Copyright (C) 1994 Free Software Foundation, Inc.
|
||||
|
||||
This file is part of GNU CC.
|
||||
|
||||
GNU CC is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation; either version 2, or (at your option)
|
||||
any later version.
|
||||
|
||||
GNU CC is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with GNU CC; see the file COPYING. If not, write to
|
||||
the Free Software Foundation, 59 Temple Place - Suite 330,
|
||||
Boston, MA 02111-1307, USA. */
|
||||
|
||||
#undef TRUE
|
||||
#undef FALSE
|
||||
|
||||
#include "i386/xm-i386.h"
|
||||
|
||||
#define bcopy(a,b,c) memcpy (b,a,c)
|
||||
#define bzero(a,b) memset (a,0,b)
|
||||
#define bcmp(a,b,c) memcmp (a,b,c)
|
||||
|
||||
#define HAVE_PUTENV
|
||||
#define HAVE_VPRINTF
|
||||
|
||||
|
||||
@@ -1,18 +1,9 @@
|
||||
/* Configuration for GCC for Intel i386 running SCO. */
|
||||
|
||||
#include "i386/xm-sysv3.h"
|
||||
|
||||
/* On SCO 3.2.1, ldexp rejects values outside [0.5, 1). */
|
||||
|
||||
#define BROKEN_LDEXP
|
||||
|
||||
/* Big buffers improve performance. */
|
||||
|
||||
#define IO_BUFFER_SIZE (0x8000 - 1024)
|
||||
|
||||
/* SCO has a very small ARG_MAX. */
|
||||
#define SMALL_ARG_MAX
|
||||
|
||||
#ifndef __GNUC__
|
||||
/* The SCO compiler gets it wrong, and treats enumerated bitfields
|
||||
as signed quantities, making it impossible to use an 8-bit enum
|
||||
@@ -20,6 +11,3 @@
|
||||
#define ONLY_INT_FIELDS 1
|
||||
#define CODE_FIELD_BUG 1
|
||||
#endif
|
||||
|
||||
/* SCO lacks sys_siglist. */
|
||||
#define NO_SYS_SIGLIST
|
||||
|
||||
@@ -1,26 +1,2 @@
|
||||
/* Configuration for GNU C-compiler for Intel 80386.
|
||||
Copyright (C) 1994 Free Software Foundation, Inc.
|
||||
|
||||
This file is part of GNU CC.
|
||||
|
||||
GNU CC is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation; either version 2, or (at your option)
|
||||
any later version.
|
||||
|
||||
GNU CC is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with GNU CC; see the file COPYING. If not, write to
|
||||
the Free Software Foundation, 59 Temple Place - Suite 330,
|
||||
Boston, MA 02111-1307, USA. */
|
||||
|
||||
#define NO_STAB_H
|
||||
|
||||
#include "i386/xm-i386.h"
|
||||
|
||||
/* Use semicolons to separate elements of a path. */
|
||||
#define PATH_SEPARATOR ';'
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
/* Target definitions for GNU compiler for Alliant FX/2800
|
||||
running Concentrix 2.2
|
||||
Copyright (C) 1991, 1996 Free Software Foundation, Inc.
|
||||
Copyright (C) 1991, 1996, 1998 Free Software Foundation, Inc.
|
||||
Contributed by Howard Chu (hyc@hanauma.jpl.nasa.gov).
|
||||
|
||||
This file is part of GNU CC.
|
||||
@@ -252,7 +252,7 @@ Boston, MA 02111-1307, USA. */
|
||||
|
||||
#define DATA_ALIGNMENT(dummy,align) \
|
||||
((TREE_PUBLIC (decl) && \
|
||||
(TREE_CODE (TREE_TYPE (decl))==POINTER_TYPE)) ? 64:align)
|
||||
(POINTER_TYPE_P (TREE_TYPE (decl)))) ? 64: align)
|
||||
|
||||
#undef FUNCTION_PROFILER
|
||||
#define FUNCTION_PROFILER(FILE, LABELNO) \
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/* Definitions for Motorola 680x0 running A/UX
|
||||
Copyright (C) 1996 Free Software Foundation, Inc.
|
||||
Copyright (C) 1996, 1998 Free Software Foundation, Inc.
|
||||
|
||||
This file is part of GNU CC.
|
||||
|
||||
@@ -114,10 +114,10 @@ crt2.o%s "
|
||||
For A/UX generate the result in d0, a0, or fp0 as appropriate. */
|
||||
|
||||
#undef FUNCTION_VALUE
|
||||
#define FUNCTION_VALUE(VALTYPE, FUNC) \
|
||||
(TREE_CODE (VALTYPE) == REAL_TYPE && TARGET_68881 \
|
||||
? gen_rtx (REG, TYPE_MODE (VALTYPE), 16) \
|
||||
: (TREE_CODE (VALTYPE) == POINTER_TYPE \
|
||||
#define FUNCTION_VALUE(VALTYPE, FUNC) \
|
||||
(TREE_CODE (VALTYPE) == REAL_TYPE && TARGET_68881 \
|
||||
? gen_rtx (REG, TYPE_MODE (VALTYPE), 16) \
|
||||
: (POINTER_TYPE_P (VALTYPE) \
|
||||
? gen_rtx (REG, TYPE_MODE (VALTYPE), 8) \
|
||||
: gen_rtx (REG, TYPE_MODE (VALTYPE), 0)))
|
||||
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/* Definitions for Motorola 680x0 running A/UX using /bin/as
|
||||
Copyright (C) 1996 Free Software Foundation, Inc.
|
||||
Copyright (C) 1996, 1997 Free Software Foundation, Inc.
|
||||
|
||||
This file is part of GNU CC.
|
||||
|
||||
@@ -31,7 +31,7 @@ Boston, MA 02111-1307, USA. */
|
||||
#define ASM_SPEC "%{m68030:-68030 }%{m68040:-68040 }"
|
||||
|
||||
/* Modify AT&T SGS assembler syntax */
|
||||
/* A/UX's as doesn't do dots in pseodo-ops */
|
||||
/* A/UX's as doesn't do dots in pseudo-ops */
|
||||
|
||||
#define SDB_DEBUGGING_INFO
|
||||
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
/* Definitions for Motorola m68k running Linux
|
||||
/* Definitions for Motorola m68k running Linux-based GNU systems.
|
||||
Copyright (C) 1995, 1996, 1997 Free Software Foundation, Inc.
|
||||
|
||||
This file is part of GNU CC.
|
||||
@@ -50,7 +50,7 @@ Boston, MA 02111-1307, USA. */
|
||||
#undef LIB_SPEC
|
||||
#if 1
|
||||
/* We no longer link with libc_p.a or libg.a by default. If you want
|
||||
to profile or debug the Linux C library, please add -lc_p or -ggdb
|
||||
to profile or debug the GNU/Linux C library, please add -lc_p or -ggdb
|
||||
to LDFLAGS at the link time, respectively. */
|
||||
#define LIB_SPEC \
|
||||
"%{mieee-fp:-lieee} %{p:-lgmon} %{pg:-lgmon} %{!ggdb:-lc} %{ggdb:-lg}"
|
||||
|
||||
@@ -1670,10 +1670,9 @@ output_move_qimode (operands)
|
||||
}
|
||||
if (GET_CODE (operands[1]) != CONST_INT && CONSTANT_P (operands[1]))
|
||||
return "move%.l %1,%0";
|
||||
/* 68k family doesn't support byte moves to from address registers. The
|
||||
5200 (coldfire) does not have this restriction. */
|
||||
if ((ADDRESS_REG_P (operands[0]) || ADDRESS_REG_P (operands[1]))
|
||||
&& ! TARGET_5200)
|
||||
/* 68k family (including the 5200 coldfire) does not support byte moves to
|
||||
from address registers. */
|
||||
if (ADDRESS_REG_P (operands[0]) || ADDRESS_REG_P (operands[1]))
|
||||
return "move%.w %1,%0";
|
||||
return "move%.b %1,%0";
|
||||
}
|
||||
|
||||
@@ -1414,21 +1414,13 @@ __transfer_from_trampoline () \
|
||||
|| (GET_CODE (X) == PLUS \
|
||||
&& LEGITIMATE_BASE_REG_P (XEXP (X, 0)) \
|
||||
&& GET_CODE (XEXP (X, 1)) == CONST_INT \
|
||||
&& (TARGET_68020 || (unsigned) INTVAL (XEXP (X, 1)) + 0x8000) < 0x10000) \
|
||||
&& (TARGET_68020 \
|
||||
|| ((unsigned) INTVAL (XEXP (X, 1)) + 0x8000) < 0x10000)) \
|
||||
|| (GET_CODE (X) == PLUS && XEXP (X, 0) == pic_offset_table_rtx \
|
||||
&& flag_pic && GET_CODE (XEXP (X, 1)) == SYMBOL_REF) \
|
||||
|| (GET_CODE (X) == PLUS && XEXP (X, 0) == pic_offset_table_rtx \
|
||||
&& flag_pic && GET_CODE (XEXP (X, 1)) == LABEL_REF)) \
|
||||
|
||||
#if 0
|
||||
/* This should replace the last two (non-pic) lines
|
||||
except that Sun's assembler does not seem to handle such operands. */
|
||||
&& (TARGET_68020 ? CONSTANT_ADDRESS_P (XEXP (X, 1)) \
|
||||
: (GET_CODE (XEXP (X, 1)) == CONST_INT \
|
||||
&& ((unsigned) INTVAL (XEXP (X, 1)) + 0x8000) < 0x10000))))
|
||||
#endif
|
||||
|
||||
|
||||
#define GO_IF_NONINDEXED_ADDRESS(X, ADDR) \
|
||||
{ if (INDIRECTABLE_1_ADDRESS_P (X)) goto ADDR; }
|
||||
|
||||
|
||||
@@ -1023,8 +1023,8 @@
|
||||
"* return output_move_qimode (operands);")
|
||||
|
||||
(define_insn ""
|
||||
[(set (match_operand:QI 0 "general_operand" "=d*a<Q>,d*am")
|
||||
(match_operand:QI 1 "general_operand" "d*ami,d*a<Q>"))]
|
||||
[(set (match_operand:QI 0 "general_operand" "=d<Q>,dm,d*a")
|
||||
(match_operand:QI 1 "general_operand" "dmi,d<Q>,di*a"))]
|
||||
"TARGET_5200"
|
||||
"* return output_move_qimode (operands);")
|
||||
|
||||
@@ -1483,7 +1483,7 @@
|
||||
return \"clr%.l %0\;move%.l %1,%0\";
|
||||
else
|
||||
operands[2] = adj_offsettable_operand (operands[0], 4);
|
||||
if (GET_CODE (operands[1]) != REG || GET_CODE (operands[1]) != REG
|
||||
if (GET_CODE (operands[1]) != REG || GET_CODE (operands[2]) != REG
|
||||
|| REGNO (operands[1]) != REGNO (operands[2]))
|
||||
output_asm_insn (\"move%.l %1,%2\", operands);
|
||||
if (ADDRESS_REG_P (operands[0]))
|
||||
@@ -2095,13 +2095,13 @@
|
||||
} ")
|
||||
|
||||
(define_insn "adddi_dilshr32"
|
||||
[(set (match_operand:DI 0 "general_operand" "=do")
|
||||
[(set (match_operand:DI 0 "general_operand" "=d,o")
|
||||
;; (plus:DI (match_operand:DI 2 "general_operand" "%0")
|
||||
;; (lshiftrt:DI (match_operand:DI 1 "general_operand" "ro")
|
||||
;; (const_int 32))))]
|
||||
(plus:DI (lshiftrt:DI (match_operand:DI 1 "general_operand" "ro")
|
||||
(plus:DI (lshiftrt:DI (match_operand:DI 1 "general_operand" "o,r")
|
||||
(const_int 32))
|
||||
(match_operand:DI 2 "general_operand" "0")))]
|
||||
(match_operand:DI 2 "general_operand" "0,0")))]
|
||||
""
|
||||
"*
|
||||
{
|
||||
@@ -2114,13 +2114,13 @@
|
||||
} ")
|
||||
|
||||
(define_insn "adddi_dishl32"
|
||||
[(set (match_operand:DI 0 "general_operand" "=ro")
|
||||
[(set (match_operand:DI 0 "general_operand" "=r,o")
|
||||
;; (plus:DI (match_operand:DI 2 "general_operand" "%0")
|
||||
;; (ashift:DI (match_operand:DI 1 "general_operand" "ro")
|
||||
;; (const_int 32))))]
|
||||
(plus:DI (ashift:DI (match_operand:DI 1 "general_operand" "ro")
|
||||
(plus:DI (ashift:DI (match_operand:DI 1 "general_operand" "o,r")
|
||||
(const_int 32))
|
||||
(match_operand:DI 2 "general_operand" "0")))]
|
||||
(match_operand:DI 2 "general_operand" "0,0")))]
|
||||
""
|
||||
"*
|
||||
{
|
||||
@@ -5958,6 +5958,25 @@
|
||||
operands[3] = adj_offsettable_operand (operands[0], 4);
|
||||
if (! ADDRESS_REG_P (operands[0]))
|
||||
{
|
||||
if (reg_overlap_mentioned_p (operands[2], operands[0]))
|
||||
{
|
||||
if (reg_overlap_mentioned_p (operands[2], operands[3]))
|
||||
{
|
||||
#ifdef MOTOROLA
|
||||
return \"or%.l %0,%2\;jbeq %l1\";
|
||||
#else
|
||||
return \"or%.l %0,%2\;jeq %l1\";
|
||||
#endif
|
||||
}
|
||||
else
|
||||
{
|
||||
#ifdef MOTOROLA
|
||||
return \"or%.l %3,%2\;jbeq %l1\";
|
||||
#else
|
||||
return \"or%.l %3,%2\;jeq %l1\";
|
||||
#endif
|
||||
}
|
||||
}
|
||||
#ifdef MOTOROLA
|
||||
return \"move%.l %0,%2\;or%.l %3,%2\;jbeq %l1\";
|
||||
#else
|
||||
@@ -6019,6 +6038,25 @@
|
||||
operands[3] = adj_offsettable_operand (operands[0], 4);
|
||||
if (!ADDRESS_REG_P (operands[0]))
|
||||
{
|
||||
if (reg_overlap_mentioned_p (operands[2], operands[0]))
|
||||
{
|
||||
if (reg_overlap_mentioned_p (operands[2], operands[3]))
|
||||
{
|
||||
#ifdef MOTOROLA
|
||||
return \"or%.l %0,%2\;jbne %l1\";
|
||||
#else
|
||||
return \"or%.l %0,%2\;jne %l1\";
|
||||
#endif
|
||||
}
|
||||
else
|
||||
{
|
||||
#ifdef MOTOROLA
|
||||
return \"or%.l %3,%2\;jbne %l1\";
|
||||
#else
|
||||
return \"or%.l %3,%2\;jne %l1\";
|
||||
#endif
|
||||
}
|
||||
}
|
||||
#ifdef MOTOROLA
|
||||
return \"move%.l %0,%2\;or%.l %3,%2\;jbne %l1\";
|
||||
#else
|
||||
|
||||
@@ -26,7 +26,7 @@ Boston, MA 02111-1307, USA. */
|
||||
# define FILE(n) file n
|
||||
# define GLOBAL_SYM(s) global s
|
||||
# define LOCAL_LABEL(l) L%##l
|
||||
# define SECTION(n) section n
|
||||
# define IDENT(s) ident s
|
||||
# define TEXT text
|
||||
#else /* Assume we are using GNU as. */
|
||||
# define COMM .comm
|
||||
@@ -35,8 +35,7 @@ Boston, MA 02111-1307, USA. */
|
||||
# define FILE(name) .file name
|
||||
# define GLOBAL_SYM(s) .globl s
|
||||
# define LOCAL_LABEL(l) .L.##l
|
||||
# define SECTION(n) .section n
|
||||
# define STRING(s) .asciz s
|
||||
# define IDENT(s) .section .comment;.asciz s
|
||||
# define TEXT .text
|
||||
#endif
|
||||
|
||||
@@ -86,24 +85,14 @@ LOCAL_LABEL(isatty):
|
||||
trap &0
|
||||
nop
|
||||
|
||||
GLOBAL_SYM (__stop_monitor)
|
||||
__stop_monitor:
|
||||
rts
|
||||
EVEN
|
||||
|
||||
COMM splimit%,4
|
||||
COMM environ,4
|
||||
|
||||
COMM mcount,4
|
||||
COMM mcount%,4
|
||||
COMM monitor,4
|
||||
|
||||
#ifdef STRING
|
||||
SECTION (.comment)
|
||||
STRING ("$Id: mot3300-crt0.S,v 1.1 1997/08/11 15:57:32 law Exp $\n")
|
||||
STRING ("Contributed by manfred@lts.sel.alcatel.de (Manfred Hollstein, Germany)\n")
|
||||
#else
|
||||
byte 'C,'o,'n,'t,'r,'i,'b,'u,'t,'e,'d,' ,'b,'y
|
||||
byte ' ,'m,'a,'n,'f,'r,'e,'d,'@,'l,'t,'s,'.,'s
|
||||
byte 'e,'l,'.,'a,'l,'c,'a,'t,'e,'l,'.,'d,'e,'
|
||||
byte '(,'M,'a,'n,'f,'r,'e,'d,' ,'H,'o,'l,'l,'s
|
||||
byte 't,'e,'i,'n,',,' ,'G,'e,'r,'m,'a,'n,'y,')
|
||||
byte 10,0
|
||||
#endif
|
||||
IDENT ("$Id: mot3300-crt0.S,v 1.2 1997/12/22 23:41:12 kenner Exp $")
|
||||
IDENT ("Contributed by Manfred Hollstein (manfred@lts.sel.alcatel.de)")
|
||||
IDENT ("Corrections by Philippe De Muyter (phdm@macqel.be)")
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/* The start module mcrt0.s for the SysV68 Motorola 3300 Delta Series.
|
||||
Copyright (C) 1996 Free Software Foundation, Inc.
|
||||
Copyright (C) 1996, 1997 Free Software Foundation, Inc.
|
||||
Contributed by Manfred Hollstein (manfred@lts.sel.alcatel.de).
|
||||
|
||||
This file is part of GNU CC.
|
||||
@@ -26,7 +26,7 @@ Boston, MA 02111-1307, USA. */
|
||||
# define FILE(n) file n
|
||||
# define GLOBAL_SYM(s) global s
|
||||
# define LOCAL_LABEL(l) L%##l
|
||||
# define SECTION(n) section n
|
||||
# define IDENT(s) ident s
|
||||
# define TEXT text
|
||||
#else /* Assume we are using GNU as. */
|
||||
# define COMM .comm
|
||||
@@ -35,8 +35,7 @@ Boston, MA 02111-1307, USA. */
|
||||
# define FILE(name) .file name
|
||||
# define GLOBAL_SYM(s) .globl s
|
||||
# define LOCAL_LABEL(l) .L.##l
|
||||
# define SECTION(n) .section n
|
||||
# define STRING(s) .asciz s
|
||||
# define IDENT(s) .section .comment;.asciz s
|
||||
# define TEXT .text
|
||||
#endif
|
||||
|
||||
@@ -110,30 +109,27 @@ LOCAL_LABEL(isatty):
|
||||
jsr exit
|
||||
_exit: moveq &1,%d0
|
||||
trap &0
|
||||
|
||||
GLOBAL_SYM (mcount)
|
||||
|
||||
EVEN
|
||||
mcount: bra mcount%
|
||||
GLOBAL_SYM (__stop_monitor)
|
||||
__stop_monitor:
|
||||
clr.l -(%sp)
|
||||
jsr monitor
|
||||
add.w &4,%sp
|
||||
rts
|
||||
|
||||
LOCAL_LABEL(errtxt):
|
||||
#ifdef STRING
|
||||
STRING ("No space for monitor buffer\n")
|
||||
#else
|
||||
byte 'N,'o,' ,'s,'p,'a,'c,'e,' ,'f,'o,'r,' ,'m,'o,'n
|
||||
byte 'i,'t,'o,'r,' ,'b,'u,'f,'f,'e,'r,'\n,0
|
||||
#endif
|
||||
byte 'i,'t,'o,'r,' ,'b,'u,'f,'f,'e,'r,'\n
|
||||
LOCAL_LABEL(errtxt_end):
|
||||
|
||||
EVEN
|
||||
LOCAL_LABEL(3):
|
||||
mov.l &28,-(%sp)
|
||||
mov.l &LOCAL_LABEL(errtxt),-(%sp)
|
||||
moveq &2,%d0
|
||||
mov.l %d0,-(%sp)
|
||||
pea LOCAL_LABEL(errtxt_end)-LOCAL_LABEL(errtxt)
|
||||
pea LOCAL_LABEL(errtxt)(%pc)
|
||||
pea 2
|
||||
jsr write
|
||||
bra.b _exit
|
||||
LOCAL_LABEL(endofstart):
|
||||
nop
|
||||
|
||||
EVEN
|
||||
|
||||
@@ -141,15 +137,6 @@ LOCAL_LABEL(endofstart):
|
||||
COMM environ,4
|
||||
COMM _countbase,4
|
||||
|
||||
#ifdef STRING
|
||||
SECTION (.comment)
|
||||
STRING ("$Id: mot3300Mcrt0.S,v 1.1 1997/08/11 15:57:32 law Exp $\n")
|
||||
STRING ("Contributed by manfred@lts.sel.alcatel.de (Manfred Hollstein, Germany)\n")
|
||||
#else
|
||||
byte 'C,'o,'n,'t,'r,'i,'b,'u,'t,'e,'d,' ,'b,'y
|
||||
byte ' ,'m,'a,'n,'f,'r,'e,'d,'@,'l,'t,'s,'.,'s
|
||||
byte 'e,'l,'.,'a,'l,'c,'a,'t,'e,'l,'.,'d,'e,'
|
||||
byte '(,'M,'a,'n,'f,'r,'e,'d,' ,'H,'o,'l,'l,'s
|
||||
byte 't,'e,'i,'n,',,' ,'G,'e,'r,'m,'a,'n,'y,')
|
||||
byte 10,0
|
||||
#endif
|
||||
IDENT ("$Id: mot3300Mcrt0.S,v 1.2 1997/12/22 23:39:48 kenner Exp $")
|
||||
IDENT ("Contributed by Manfred Hollstein (manfred@lts.sel.alcatel.de)")
|
||||
IDENT ("Corrections by Philippe De Muyter (phdm@macqel.be)")
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/* Definitions of target machine for GNU compiler. Sun 2 running Sunos 4.
|
||||
Copyright (C) 1987, 1988, 1993, 1996 Free Software Foundation, Inc.
|
||||
/* Definitions of target machine for GNU compiler. Sun 2 running SunOS 4.
|
||||
Copyright (C) 1987, 1988, 1993, 1996, 1997 Free Software Foundation, Inc.
|
||||
|
||||
This file is part of GNU CC.
|
||||
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
/* Specify extra dir to search for include files. */
|
||||
#define SYSTEM_INCLUDE_DIR "/usr/mach/include"
|
||||
|
||||
/* LINK_SPEC is needed only for Sunos 4. */
|
||||
/* LINK_SPEC is needed only for SunOS 4. */
|
||||
|
||||
#undef LINK_SPEC
|
||||
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
#include "m68k/sun3n.h"
|
||||
|
||||
/* LINK_SPEC is needed only for Sunos 4. */
|
||||
/* LINK_SPEC is needed only for SunOS 4. */
|
||||
|
||||
#undef LINK_SPEC
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
#include "m68k/sun3.h"
|
||||
|
||||
/* LINK_SPEC is needed only for Sunos 4. */
|
||||
/* LINK_SPEC is needed only for SunOS 4. */
|
||||
|
||||
#undef LINK_SPEC
|
||||
|
||||
@@ -1,13 +1,3 @@
|
||||
#define USG
|
||||
|
||||
#include "m68k/xm-m68k.h"
|
||||
|
||||
#define bcopy(a,b,c) memcpy (b,a,c)
|
||||
#define bzero(a,b) memset (a,0,b)
|
||||
#define bcmp(a,b,c) memcmp (a,b,c)
|
||||
#define index strchr
|
||||
#define rindex strrchr
|
||||
|
||||
/* Override part of the obstack macros. */
|
||||
|
||||
#define __PTR_TO_INT(P) ((int)(P))
|
||||
|
||||
@@ -1,46 +1,5 @@
|
||||
/* Definitions of host machine for GNU compiler.
|
||||
Atari TT ASV version.
|
||||
Copyright (C) 1994, 1995 Free Software Foundation, Inc.
|
||||
|
||||
This file is part of GNU CC.
|
||||
|
||||
GNU CC is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation; either version 1, or (at your option)
|
||||
any later version.
|
||||
|
||||
GNU CC is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with GNU CC; see the file COPYING. If not, write to
|
||||
the Free Software Foundation, 59 Temple Place - Suite 330,
|
||||
Boston, MA 02111-1307, USA. */
|
||||
|
||||
#include "m68k/xm-m68kv.h" /* Use the System V flavor of m68k host */
|
||||
|
||||
#define HAVE_VPRINTF /* Host has vprintf() in library */
|
||||
|
||||
/* Add HZ define if missing */
|
||||
|
||||
#ifndef HZ
|
||||
#define HZ 100 /* System clock */
|
||||
#endif
|
||||
|
||||
/* Define FULL_PROTOTYPES for protoize.c, to get <unistd.h> included.
|
||||
We need this file for things like R_OK, not necessarily prototypes. */
|
||||
|
||||
#define FULL_PROTOTYPES
|
||||
|
||||
#if defined (__GNUC__) && __GNUC__ == 1
|
||||
#define alloca __builtin_alloca
|
||||
#endif
|
||||
|
||||
/* The m88k and mips ports make use of fancy_abort to give possibly helpful
|
||||
abort information rather than just dumping core. They do it in their
|
||||
tm-* files. It seems more logical that this is a characteristic of
|
||||
the host machine and not the target machine, so we do it here. */
|
||||
|
||||
#define abort fancy_abort /* give possibly helpful abort info */
|
||||
|
||||
@@ -1,25 +1,6 @@
|
||||
#define USG
|
||||
|
||||
#ifndef unos
|
||||
#define unos
|
||||
#endif
|
||||
|
||||
#include "m68k/xm-m68k.h"
|
||||
|
||||
#define bcopy(a,b,c) memcpy (b,a,c)
|
||||
#define bzero(a,b) memset (a,0,b)
|
||||
#define bcmp(a,b,c) memcmp (a,b,c)
|
||||
|
||||
/* UNOS has vprintf() */
|
||||
#define HAVE_VPRINTF
|
||||
|
||||
/* Avoid conflict with C library by changing name of this symbol. */
|
||||
#define gettime gcc_gettime
|
||||
|
||||
#ifndef __GNUC__
|
||||
#define USE_C_ALLOCA
|
||||
#endif
|
||||
|
||||
/* Override part of the obstack macros. */
|
||||
|
||||
#define __PTR_TO_INT(P) ((int)(P))
|
||||
|
||||
@@ -1,5 +1,3 @@
|
||||
#include "m68k/xm-m68k.h"
|
||||
|
||||
/* malloc does better with chunks the size of a page. */
|
||||
|
||||
#define OBSTACK_CHUNK_SIZE (getpagesize ())
|
||||
|
||||
@@ -1,19 +1,5 @@
|
||||
/* Host environment for 68000's running System V. */
|
||||
|
||||
#include "m68k/xm-m68k.h"
|
||||
|
||||
#define USG
|
||||
#define bcopy(a,b,c) memcpy (b,a,c)
|
||||
#define bzero(a,b) memset (a,0,b)
|
||||
#define bcmp(a,b,c) memcmp (a,b,c)
|
||||
|
||||
#define rindex strrchr
|
||||
#define index strchr
|
||||
|
||||
#ifndef __GNUC__
|
||||
#define USE_C_ALLOCA
|
||||
#endif
|
||||
|
||||
#ifndef _SIZE_T_
|
||||
typedef int size_t;
|
||||
#define _SIZE_T_
|
||||
|
||||
@@ -22,7 +22,7 @@
|
||||
64kb can be mapped out, thus catching references through null
|
||||
pointers. We actually start at 0x10200 (for efficiency). Ideally,
|
||||
we want the page offset of a given word of the .text (output)
|
||||
section to be the same as it's page offset in the actual (output)
|
||||
section to be the same as its page offset in the actual (output)
|
||||
linked core file so that paging of the .text section is efficient.
|
||||
In order to do this we allow for up to 0x200 bytes of header stuff
|
||||
in the output (linked) object file.
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
/* Definitions of target machine for GNU compiler.
|
||||
Motorola m88100 running Omron Luna/88k.
|
||||
Copyright (C) 1991 Free Software Foundation, Inc.
|
||||
Contributed by Jeffery Friedl (jfriedl@omron.co.jp)
|
||||
Copyright (C) 1991, 1997 Free Software Foundation, Inc.
|
||||
Contributed by Jeffrey Friedl (jfriedl@omron.co.jp)
|
||||
|
||||
This file is part of GNU CC.
|
||||
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user