MAINTAINERS (mt port): Remove.

* MAINTAINERS (mt port): Remove.
	(sco5, unixware, sco udk): Remove.
	(Kean Johnston): Add to Write After Approval.

fixincludes:
	* inclhack.def (AAB_svr4_replace_byteorder,
	AAB_ultrix_ansi_compat, AAB_ultrix_limits, AAB_ultrix_memory,
	libc1_G_va_list, libc1_ifdefd_memx, nested_motorola,
	ptx_sys_mc_param_h, sco_regset, sco_static_func, sco_utime,
	solaris_mutex_init_1, solaris_socket, solaris_unistd,
	solaris_widec, svr4_krnl, ultrix_atexit_param, ultrix_atof_param,
	ultrix_const3, ultrix_fix_fixproto, ultrix_ifdef, ultrix_locale,
	ultrix_math_ifdef, ultrix_nested_ioctl, ultrix_nested_svc,
	ultrix_stat, ultrix_static, ultrix_stdlib, ultrix_strings,
	ultrix_strings2, ultrix_sys_time, ultrix_unistd,
	unicosmk_restrict, uw7_byteorder_fix, windiss_math1,
	windiss_math2, windiss_valist): Remove.
	* fixincl.x: Regenerate.
	* mkfixinc.sh: (arm-semi-aof, hppa1.1-*-osf*, hppa1.1-*-bsd*,
	i370-*-openedition, i?86-*-moss*, i?86-*-uwin*,
	powerpc-*-eabiaix*): Remove.
	* tests/base/math.h: Update.
	* tests/base/pthread.h: Update.
	* tests/base/stdio.h: Update.
	* tests/base/stdlib.h: Update.
	* tests/base/string.h: Update.
	* tests/base/strings.h: Update.
	* tests/base/sys/file.h: Update.
	* tests/base/sys/limits.h: Update.
	* tests/base/sys/socket.h: Update.
	* tests/base/sys/stat.h: Update.
	* tests/base/sys/time.h: Update.
	* tests/base/testing.h: Update.
	* tests/base/unistd.h: Update.
	* tests/base/_G_config.h: Remove.
	* tests/base/arpa: Remove directory.
	* tests/base/fs: Remove directory.
	* tests/base/locale.h: Remove.
	* tests/base/machine: Remove directory.
	* tests/base/rpc/svc.h: Remove.
	* tests/base/sys/ioctl.h: Remove.
	* tests/base/sys/regset.h: Remove.
	* tests/base/sys/times.h: Remove.
	* tests/base/sys/utsname.h: Remove.
	* tests/base/widec.h: Remove.

gcc:
	* config.gcc (Obsolete configurations): Remove list of
	configurations.
	(Unsupported targets list): Add *-*-linux*aout*, *-*-linux*libc1*,
	*-*-solaris2.[0-6], *-*-solaris2.[0-6].*, *-*-sysv*.  Remove other
	targets matched by those patterns.
	(strongarm*-*-*, ep9312*-*-*, xscale-*-*, parisc*-*-*,
	m680[012]0-*-*, *-*-linux*libc1*, *-*-linux*aout*,
	alpha*-*-unicosmk*, strongarm*-*-freebsd*, ep9312-*-elf,
	arm*-*-kaos*, cris-*-aout, parisc*64*-*-linux*, parisc*-*-linux*,
	hppa1.1-*-pro*, hppa1.1-*-osf*, hppa1.1-*-bsd*,
	i[34567]86-sequent-ptx4*, i[34567]86-sequent-sysv4*,
	i[34567]86-*-beoself*, i[34567]86-*-beos*, i[34567]86-*-sco3.2v5*,
	i[34567]86-*-sysv5*, i[34567]86-*-sysv4*, i[34567]86-*-uwin*,
	i[34567]86-*-kaos*, m68020-*-elf*, m68010-*-netbsdelf*,
	mips-wrs-windiss, mt-*-elf, powerpc-*-beos*, powerpc-*-chorusos*,
	powerpc-wrs-windiss*, powerpcle-*-sysv*, powerpc-*-kaos*,
	powerpcle-*-kaos*, sh*-*-kaos*, sparc-*-sysv4*, strongarm-*-elf*,
	strongarm-*-pe, strongarm-*-kaos*, vax-*-bsd*, vax-*-sysv*,
	vax-*-ultrix*, xscale-*-elf, xscale-*-coff,
	i[34567]86-*-linux*aout*, i[34567]86-*-linux*libc1): Remove.
	Make code for Solaris 7 and greater unconditional for Solaris.
	(ep9312-*-*, parisc1*, m680[012]0-*-*, parisc*-*-*, mt-*-*):
	Remove --with-* handling.
	* config/rs6000/sysv4.h (-mwindiss): Remove from all specs.
	(LIB_WINDISS_SPEC, CPP_OS_WINDISS_SPEC, STARTFILE_WINDISS_SPEC,
	ENDFILE_WINDISS_SPEC, LINK_START_WINDISS_SPEC,
	LINK_OS_WINDISS_SPEC): Remove.
	* config/rs6000/sysv4.opt (mwindiss): Remove.
	* configure.ac (strongarm*-*-*, xscale*-*-*): Remove.
	* configure: Regenerate.
	* doc/cpp.texi: Don't mention BeOS.
	* doc/extend.texi (interrupt): Don't mention MS1.
	* doc/install.texi: (i386-@var{any}-sysv, m68k-bull-sysv,
	m68k-hp-hpux, m68000-hp-hpux, m68000-att-sysv,
	alphaev5-cray-unicosmk*, xscale-*-*, i?86-*-linux*aout,
	i?86-*-sco3.2v5*, i?86-*-udk, m68k-hp-hpux, powerpc-*-sysv4,
	powerpc-*-sysv4, powerpcle-*-sysv4, *-*-sysv*, vax-dec-ultrix):
	Remove.
	* doc/invoke.texi (MT Options): Remove.
	(-mwindiss): Remove.
	(CRIS Options): Remove cris-axis-aout references.
	(HPPA Options): Don't mention hppa1.1-*-pro.
	* doc/md.texi: (MorphoTech family): Remove.
	* libgcc2.c: Don't handle UWIN.
	* config/alpha/t-unicosmk: Remove.
	* config/alpha/unicosmk.h: Remove.
	* config/arm/kaos-arm.h: Remove.
	* config/arm/kaos-strongarm.h: Remove.
	* config/arm/strongarm-coff.h: Remove.
	* config/arm/strongarm-elf.h: Remove.
	* config/arm/strongarm-pe.h: Remove.
	* config/arm/t-strongarm-pe: Remove.
	* config/arm/t-xscale-coff: Remove.
	* config/arm/t-xscale-elf: Remove.
	* config/arm/xscale-coff.h: Remove.
	* config/arm/xscale-elf.h: Remove.
	* config/chorus.h: Remove.
	* config/cris/aout.h: Remove.
	* config/cris/aout.opt: Remove.
	* config/cris/t-aout: Remove.
	* config/i386/beos-elf.h: Remove.
	* config/i386/kaos-i386.h: Remove.
	* config/i386/ptx4-i.h: Remove.
	* config/i386/sco5.h: Remove.
	* config/i386/sco5.opt: Remove.
	* config/i386/sysv4-cpp.h: Remove.
	* config/i386/sysv5.h: Remove.
	* config/i386/t-beos: Remove.
	* config/i386/t-sco5: Remove.
	* config/i386/t-uwin: Remove.
	* config/i386/uwin.asm: Remove.
	* config/i386/uwin.h: Remove.
	* config/kaos.h: Remove.
	* config/mips/windiss.h: Remove.
	* config/mt: Remove directory.
	* config/pa/pa-osf.h: Remove.
	* config/pa/pa-pro-end.h: Remove.
	* config/pa/t-pro: Remove.
	* config/ptx4.h: Remove.
	* config/rs6000/beos.h: Remove.
	* config/rs6000/kaos-ppc.h: Remove.
	* config/rs6000/t-beos: Remove.
	* config/rs6000/windiss.h: Remove.
	* config/sh/kaos-sh.h: Remove.
	* config/sol2-6.h: Remove.
	* config/sparc/sol26-sld.h: Remove.
	* config/sparc/sysv4-only.h: Remove.
	* config/vax/bsd.h: Remove.
	* config/vax/t-memfuncs: Remove.
	* config/vax/ultrix.h: Remove.
	* config/vax/vaxv.h: Remove.
	* config/windiss.h: Remove.

gcc/testsuite:
	* g++.dg/abi/arm_cxa_vec1.C: Don't handle xscale*-*-*.
	* g++.dg/eh/spbp.C: Don't handle *-*-solaris2.[56]*.
	* g++.dg/warn/miss-format-1.C: Don't handle Solaris before Solaris
	7.
	* gcc.c-torture/compile/981006-1.c: Don't handle xscale*-*-*,
	strongarm*-*-* and cris-*-aout*.
	* gcc.c-torture/execute/941014-1.x: Don't handle xscale*-*-* and
	strongarm*-*-*.
	* gcc.dg/20030909-1.c: Don't handle xscale*-*-* and
	strongarm*-*-*.
	* gcc.dg/20031108-1.c: Don't handle xscale*-*-* and
	strongarm*-*-*.
	* gcc.dg/20040813-1.c: Don't handle *-*-sysv5*.
	* gcc.dg/arm-asm.c: Don't handle strongarm*-*-* and xscale*-*-*.
	* gcc.dg/arm-scd42-1.c: Use target arm*-*-*.
	* gcc.dg/arm-scd42-3.c: Use target arm*-*-*.
	* gcc.dg/cpp/assert4.c: Don't handle BeOS.
	* gcc.dg/debug/pr35154.c: Don't handle *-*-sysv5*.
	* gcc.dg/intmax_t-1.c: Don't handle *-*-solaris2.5.1 and
	xscale*-*-elf*.
	* gcc.dg/pragma-align.c: Don't handle i?86-*-sco3.2v5*.
	* gcc.dg/pthread-init-2.c: Don't handle *-*-solaris2.5.1.
	* gcc.misc-tests/arm-isr.exp: Use target arm*-*-*.
	* gcc.target/powerpc/ppc-sdata-1.c: Don't handle powerpc-*-sysv*.
	* gcc.target/powerpc/ppc-sdata-2.c: Don't handle powerpc-*-sysv*.
	* gcc.target/powerpc/ppc-stackalign-1.c: Don't handle
	powerpc-*-sysv*.
	* gfortran.dg/debug/pr35154-stabs.f: Don't handle *-*-sysv5*.
	* lib/target-supports.exp: Don't handle strongarm*-*-elf,
	xscale*-*-elf and *-*-windiss.
	* obj-c++.dg/dwarf-2.mm: Don't handle *-*-solaris2.[56]*.
	* objc.dg/dwarf-1.m: Don't handle *-*-solaris2.[56]*.
	* objc.dg/dwarf-2.m: Don't handle *-*-solaris2.[56]*.
	* gcc.dg/mt-loopi1.c: Remove.

gnattools:
	* configure.ac (xscale*-wrs-vx*, xscale*-wrs-coff): Remove.
	* configure: Regenerate.

libcpp:
	* configure.ac (parisc*64*-*-*): Remove.
	* configure: Regenerate.

libffi:
	* configure.ac (parisc*-*-linux*, powerpc-*-sysv*,
	powerpc-*-beos*): Remove.
	* configure: Regenerate.

libgcc:
	* config.host (strongarm*-*-*, ep9312*-*-*, xscale-*-*,
	parisc*-*-*, m680[012]0-*-*, *-*-linux*libc1*, *-*-linux*aout*,
	alpha*-*-unicosmk*, strongarm*-*-freebsd*, ep9312-*-elf,
	arm*-*-kaos*, cris-*-aout, parisc*64*-*-linux*, parisc*-*-linux*,
	hppa1.1-*-pro*, hppa1.1-*-osf*, hppa1.1-*-bsd*,
	i[34567]86-sequent-ptx4*, i[34567]86-sequent-sysv4*,
	i[34567]86-*-beoself*, i[34567]86-*-beos*, i[34567]86-*-sco3.2v5*,
	i[34567]86-*-sysv5*, i[34567]86-*-sysv4*, i[34567]86-*-uwin*,
	i[34567]86-*-kaos*, m68020-*-elf*, m68010-*-netbsdelf*,
	mips-wrs-windiss, mt-*-elf, powerpc-*-beos*, powerpc-*-chorusos*,
	powerpc-wrs-windiss*, powerpcle-*-sysv*, powerpc-*-kaos*,
	powerpcle-*-kaos*, sh*-*-kaos*, sparc-*-sysv4*, strongarm-*-elf*,
	strongarm-*-pe, strongarm-*-kaos*, vax-*-bsd*, vax-*-sysv*,
	vax-*-ultrix*, xscale-*-elf, xscale-*-coff): Remove.

libjava:
	* configure.host (strongarm*-elf, xscale*-elf): Remove.

libstdc++-v3:
	* configure.host (xscale, ep9312, m680[246]0, solaris2.5,
	solaris2.5.[0-9], solaris2.6, windiss*): Remove.
	* crossconfig.m4 (*-solaris2.5, *-solaris2.6, *-windiss*): Remove.
	* configure: Regenerate.
	* config/os/solaris/solaris2.5: Remove directory.
	* config/os/solaris/solaris2.6: Remove directory.
	* config/os/windiss: Remove directory.

From-SVN: r136534
This commit is contained in:
Joseph Myers 2008-06-07 19:00:15 +01:00 committed by Joseph Myers
parent 4b92fd3cc9
commit cd985f6672
155 changed files with 366 additions and 13804 deletions

View File

@ -1,3 +1,9 @@
2008-06-07 Joseph Myers <joseph@codesourcery.com>
* MAINTAINERS (mt port): Remove.
(sco5, unixware, sco udk): Remove.
(Kean Johnston): Add to Write After Approval.
2008-05-30 Julian Brown <julian@codesourcery.com>
* configure.ac (arm*-*-linux-gnueabi): Don't disable building

View File

@ -68,8 +68,6 @@ mips port Richard Sandiford rdsandiford@googlemail.com
mmix port Hans-Peter Nilsson hp@bitrange.com
mn10300 port Jeff Law law@redhat.com
mn10300 port Alexandre Oliva aoliva@redhat.com
mt port Aldy Hernandez aldyh@redhat.com
mt port Nathan Sidwell nathan@codesourcery.com
pdp11 port Paul Koning ni1d@arrl.net
rs6000 port Geoff Keating geoffk@geoffk.org
rs6000 port David Edelsohn dje@watson.ibm.com
@ -106,7 +104,6 @@ hpux Steve Ellcey sje@cup.hp.com
irix, osf Rainer Orth ro@TechFak.Uni-Bielefeld.DE
netbsd Jason Thorpe thorpej@netbsd.org
netbsd Krister Walfridsson cato@df.lth.se
sco5, unixware, sco udk Kean Johnston jkj@sco.com
sh-linux-gnu Kaz Kojima kkojima@gcc.gnu.org
RTEMS Ports Joel Sherrill joel@oarcorp.com
RTEMS Ports Ralf Corsepius ralf.corsepius@rtems.org
@ -337,6 +334,7 @@ Andreas Jaeger aj@suse.de
Harsha Jagasia harsha.jagasia@amd.com
Fariborz Jahanian fjahanian@apple.com
Martin Jambor mjambor@suse.cz
Kean Johnston jkj@sco.com
Phillip Jordan phillip.m.jordan@gmail.com
Tim Josling tej@melbpc.org.au
Klaus Kaempf kkaempf@progis.de

View File

@ -1,3 +1,46 @@
2008-06-07 Joseph Myers <joseph@codesourcery.com>
* inclhack.def (AAB_svr4_replace_byteorder,
AAB_ultrix_ansi_compat, AAB_ultrix_limits, AAB_ultrix_memory,
libc1_G_va_list, libc1_ifdefd_memx, nested_motorola,
ptx_sys_mc_param_h, sco_regset, sco_static_func, sco_utime,
solaris_mutex_init_1, solaris_socket, solaris_unistd,
solaris_widec, svr4_krnl, ultrix_atexit_param, ultrix_atof_param,
ultrix_const3, ultrix_fix_fixproto, ultrix_ifdef, ultrix_locale,
ultrix_math_ifdef, ultrix_nested_ioctl, ultrix_nested_svc,
ultrix_stat, ultrix_static, ultrix_stdlib, ultrix_strings,
ultrix_strings2, ultrix_sys_time, ultrix_unistd,
unicosmk_restrict, uw7_byteorder_fix, windiss_math1,
windiss_math2, windiss_valist): Remove.
* fixincl.x: Regenerate.
* mkfixinc.sh: (arm-semi-aof, hppa1.1-*-osf*, hppa1.1-*-bsd*,
i370-*-openedition, i?86-*-moss*, i?86-*-uwin*,
powerpc-*-eabiaix*): Remove.
* tests/base/math.h: Update.
* tests/base/pthread.h: Update.
* tests/base/stdio.h: Update.
* tests/base/stdlib.h: Update.
* tests/base/string.h: Update.
* tests/base/strings.h: Update.
* tests/base/sys/file.h: Update.
* tests/base/sys/limits.h: Update.
* tests/base/sys/socket.h: Update.
* tests/base/sys/stat.h: Update.
* tests/base/sys/time.h: Update.
* tests/base/testing.h: Update.
* tests/base/unistd.h: Update.
* tests/base/_G_config.h: Remove.
* tests/base/arpa: Remove directory.
* tests/base/fs: Remove directory.
* tests/base/locale.h: Remove.
* tests/base/machine: Remove directory.
* tests/base/rpc/svc.h: Remove.
* tests/base/sys/ioctl.h: Remove.
* tests/base/sys/regset.h: Remove.
* tests/base/sys/times.h: Remove.
* tests/base/sys/utsname.h: Remove.
* tests/base/widec.h: Remove.
2008-05-24 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
* inclhack.def (solaris_math_4): Use GCC's __builtin_fpclassify.

File diff suppressed because it is too large Load Diff

View File

@ -375,214 +375,6 @@ fix = {
#endif
/*
* Completely replace <sys/byteorder.h> with a file that implements gcc's
* optimized byteswapping. (The original probably implemented some
* incompatible optimized byteswapping.)
*/
fix = {
hackname = AAB_svr4_replace_byteorder;
mach = "*-*-sysv4*";
mach = "i[34567]86-*-sysv5*";
mach = "i[34567]86-*-sco3.2v5*";
mach = "i[34567]86-*-udk*";
mach = "i[34567]86-*-solaris2.[0-4]";
mach = "powerpcle-*-solaris2.[0-4]";
mach = "sparc-*-solaris2.[0-4]";
mach = "i[34567]86-sequent-ptx*";
files = sys/byteorder.h;
replace = <<- _EndOfHeader_
#ifndef _SYS_BYTEORDER_H
#define _SYS_BYTEORDER_H
/* Functions to convert `short' and `long' quantities from host byte order
to (internet) network byte order (i.e. big-endian).
Written by Ron Guilmette (rfg@ncd.com).
This isn't actually used by GCC. It is installed by fixinc.svr4.
For big-endian machines these functions are essentially no-ops.
For little-endian machines, we define the functions using specialized
asm sequences in cases where doing so yields better code (e.g. i386). */
#if !defined (__GNUC__) && !defined (__GNUG__)
#error You lose! This file is only useful with GNU compilers.
#endif
#ifndef __BYTE_ORDER__
/* Byte order defines. These are as defined on UnixWare 1.1, but with
double underscores added at the front and back. */
#define __LITTLE_ENDIAN__ 1234
#define __BIG_ENDIAN__ 4321
#define __PDP_ENDIAN__ 3412
#endif
#ifdef __STDC__
static __inline__ unsigned long htonl (unsigned long);
static __inline__ unsigned short htons (unsigned int);
static __inline__ unsigned long ntohl (unsigned long);
static __inline__ unsigned short ntohs (unsigned int);
#endif /* defined (__STDC__) */
#if defined (__i386__)
#ifndef __BYTE_ORDER__
#define __BYTE_ORDER__ __LITTLE_ENDIAN__
#endif
/* Convert a host long to a network long. */
/* We must use a new-style function definition, so that this will also
be valid for C++. */
static __inline__ unsigned long
htonl (unsigned long __arg)
{
register unsigned long __result;
__asm__ ("xchg%B0 %b0,%h0
ror%L0 $16,%0
xchg%B0 %b0,%h0" : "=q" (__result) : "0" (__arg));
return __result;
}
/* Convert a host short to a network short. */
static __inline__ unsigned short
htons (unsigned int __arg)
{
register unsigned short __result;
__asm__ ("xchg%B0 %b0,%h0" : "=q" (__result) : "0" (__arg));
return __result;
}
#elif (defined (__ns32k__) || defined (__vax__) || defined (__arm__))
#ifndef __BYTE_ORDER__
#define __BYTE_ORDER__ __LITTLE_ENDIAN__
#endif
/* For other little-endian machines, using C code is just as efficient as
using assembly code. */
/* Convert a host long to a network long. */
static __inline__ unsigned long
htonl (unsigned long __arg)
{
register unsigned long __result;
__result = (__arg >> 24) & 0x000000ff;
__result |= (__arg >> 8) & 0x0000ff00;
__result |= (__arg << 8) & 0x00ff0000;
__result |= (__arg << 24) & 0xff000000;
return __result;
}
/* Convert a host short to a network short. */
static __inline__ unsigned short
htons (unsigned int __arg)
{
register unsigned short __result;
__result = (__arg << 8) & 0xff00;
__result |= (__arg >> 8) & 0x00ff;
return __result;
}
#else /* must be a big-endian machine */
#ifndef __BYTE_ORDER__
#define __BYTE_ORDER__ __BIG_ENDIAN__
#endif
/* Convert a host long to a network long. */
static __inline__ unsigned long
htonl (unsigned long __arg)
{
return __arg;
}
/* Convert a host short to a network short. */
static __inline__ unsigned short
htons (unsigned int __arg)
{
return __arg;
}
#endif /* big-endian */
/* Convert a network long to a host long. */
static __inline__ unsigned long
ntohl (unsigned long __arg)
{
return htonl (__arg);
}
/* Convert a network short to a host short. */
static __inline__ unsigned short
ntohs (unsigned int __arg)
{
return htons (__arg);
}
#endif
_EndOfHeader_;
};
/*
* Cancel out ansi_compat.h on Ultrix. Replace it with an empty file.
*/
fix = {
hackname = AAB_ultrix_ansi_compat;
files = ansi_compat.h;
select = ULTRIX;
replace = "/* This file intentionally left blank. */\n";
};
/*
* The Ultrix 4.3 file limits.h is a symbolic link to sys/limits.h.
* Replace limits.h with a file that includes sys/limits.h.
*/
fix = {
hackname = AAB_ultrix_limits;
files = limits.h;
mach = "*-*-ultrix4.3";
replace = <<- _EndOfHeader_
#ifndef _LIMITS_INCLUDED
#define _LIMITS_INCLUDED
#include <sys/limits.h>
#endif /* _LIMITS_INCLUDED */
_EndOfHeader_;
};
/*
* The ULTRIX 4.3 version of memory.h duplicates definitions
* present in strings.h. Replace memory.h with a file that includes
* strings.h to prevent problems from multiple inclusion.
*/
fix = {
hackname = AAB_ultrix_memory;
files = memory.h;
mach = "*-*-ultrix4.3";
replace = <<- _EndOfHeader_
#ifndef _MEMORY_INCLUDED
#define _MEMORY_INCLUDED
#include <strings.h>
#endif /* _MEMORY_INCLUDED */
_EndOfHeader_;
};
/*
* The Ultrix 4.3 file string.h is a symbolic link to strings.h.
* Replace string.h link with a file that includes strings.h to prevent
@ -2423,56 +2215,6 @@ fix = {
};
/*
* Fix libc1 _G_va_list definition, used in declarations of several
* more-or-less standard functions, for example vasprintf.
*/
fix = {
hackname = libc1_G_va_list;
files = _G_config.h;
mach = '*-*-linux*libc1';
select = 'typedef void \* _G_va_list;';
c_fix = format;
c_fix_arg = "typedef __builtin_va_list _G_va_list;";
test_text = 'typedef void * _G_va_list;';
};
/*
* GNU libc1 string.h does not prototype memcpy and memcmp for gcc
* versions > 1. This fix will open up the declaration for all
* versions of GCC and for g++.
*/
fix = {
hackname = libc1_ifdefd_memx;
/* The string.h result is overwritten by AAB_ultrix_string when doing
"make check" and will fail. Therefore, we add the following kludgery
to insert the test_text into the special testing header. :-} */
files = testing.h;
files = string.h;
c_fix = format;
select = "' is a built-in function for gcc 2\\.x\\. \\*/";
bypass = __cplusplus;
c_fix_arg = "%1";
c_fix_arg =
'/\* `mem...\' is a built-in function for gcc 2\.x\. \*/' "\n"
'#if defined\(__STDC__\) && __GNUC__ < 2' "\n"
"(/\\* .* \\*/\n"
"extern [a-z_]+ mem.*(\n[^#].*)*;)\n"
"#endif";
test_text =
"/* \\`memcpy' is a built-in function for gcc 2.x. */\n"
"#if defined(__STDC__) && __GNUC__ < 2\n"
"/* Copy N bytes of SRC to DEST. */\n"
"extern __ptr_t memcpy __P ((__ptr_t __dest, __const __ptr_t __src,\n"
" size_t __n));\n"
"#endif";
};
/* The /usr/include/sys/ucontext.h on ia64-*linux-gnu systems defines
* an _SC_GR0_OFFSET macro using an idiom that isn't a compile time
* constant on recent versions of g++.
@ -2654,28 +2396,6 @@ fix = {
};
/*
* Fix nested comments in Motorola's <limits.h> and <sys/limits.h>
*/
fix = {
hackname = nested_motorola;
mach = "m68k-motorola-sysv*";
files = sys/limits.h;
files = limits.h;
select = "max # bytes atomic in write|error value returned by Math lib";
sed = "s@^\\(#undef[ \t][ \t]*PIPE_BUF[ \t]*"
"/\\* max # bytes atomic in write to a\\)$@\\1 */@";
sed = "s@\\(/\\*#define\tHUGE_VAL\t3.[0-9e+]* \\)"
"\\(/\\*error value returned by Math lib\\*/\\)$@\\1*/ \\2@";
test_text =
"#undef PIPE_BUF /* max # bytes atomic in write to a\n"
"\t\t/* PIPE */\n"
"/*#define\tHUGE_VAL\t3.9e+9 /*error value returned by Math lib*/";
};
/*
* Fixing nested comments in ISC <sys/limits.h>
*/
@ -2919,30 +2639,6 @@ fix = {
test_text = "extern int __sigsetjmp (struct __jmp_buf_tag __env[1], int __savemask);";
};
/*
* On DYNIX/ptx, sys/mc_param.h has an embedded asm for the cpuid instruction
* on the P5. This is not used by anything else so we ifdef it out.
* Current GCC doesn't seem to complain about the asm, though.
*/
#ifdef PTX
fix = {
hackname = ptx_sys_mc_param_h;
files = sys/mc_param.h;
sed = "/__asm/,/}/{"
"/__asm/i\\\n"
"#if !defined (__GNUC__) && !defined (__GNUG__)\n"
"/}/a\\\n"
"#endif\n"
"}";
test_text = "__asm\n"
"int _CPUID()\n"
"{\n"
" non-GNU assembly here\n"
"}";
};
#endif
/*
* Fix return type of fread and fwrite on sysV68
*/
@ -3064,89 +2760,6 @@ fix = {
};
/*
* On SCO OpenServer prior to 5.0.7UP1, <sys/regset.h> and <ieeefp.h>
* have a clash on struct _fpstate and struct fpstate.
*/
fix = {
hackname = sco_regset;
files = sys/regset.h;
mach = "*-*-sco3.2v5*";
select = "(struct[ \t]+.*)fpstate";
c_fix = format;
c_fix_arg = "%1rsfpstate";
test_text =
"union u_fps {\n"
" struct\tfpstate\n"
" {\n"
" int whatever;\n"
" }\n"
"};\n"
"union _u_fps {\n"
" struct _fpstate\n"
" {\n"
" int whatever;\n"
" }\n"
"};\n";
};
/*
* The static functions lstat() and fchmod() in <sys/stat.h>
* cause G++ grief since they're not wrapped in "if __cplusplus".
*
* On SCO OpenServer 5.0.0 through (at least) 5.0.5 <sys/stat.h> contains
* tiny static wrappers that aren't C++ safe.
*/
fix = {
hackname = sco_static_func;
files = sys/stat.h;
mach = "i?86-*-sco3.2*";
select = "^static int";
sed = "/^static int/i\\\n"
"#if __cplusplus\\\n"
"extern \"C\" {\\\n"
"#endif /* __cplusplus */";
sed = "/^}$/a\\\n"
"#if __cplusplus\\\n"
" }\\\n"
"#endif /* __cplusplus */";
test_text =
"#ifdef __STDC__\n"
"static int\tstat(const char *__f, struct stat *__p) {\n"
"\treturn __stat32(__f, __p);\n"
"}\n\n# else /* !__STDC__ THIS FAILS ON BSD SYSTEMS */\n"
"static int\tstat(__f, __p)\n"
"\tchar *__f;\n"
"\tstruct stat *__p;\n"
"{\n"
"\treturn __stat32(__f, __p);\n"
"}\n"
"#endif";
};
/*
* Fix prototype declaration of utime in sys/times.h.
* In 3.2v4.0 the const is missing.
*/
fix = {
hackname = sco_utime;
files = sys/times.h;
mach = "i?86-*-sco3.2v4*";
select = '\(const char \*, struct utimbuf \*\);';
c_fix = format;
c_fix_arg = '(const char *, const struct utimbuf *);';
test_text = "extern int utime(const char *, struct utimbuf *);";
};
/*
* Sun Solaris 10 defines several C99 math macros in terms of
* builtins specific to the Studio compiler, in particular not
@ -3279,26 +2892,6 @@ fix = {
" __x_i == (__typeof(__x_i)) (-INFINITY); })";
};
/*
* Sun Solaris 2.5.1, 2.6 defines PTHREAD_{MUTEX|COND}_INITIALIZER
* incorrectly, so we replace them with versions that correspond to
* the definition. We also explicitly name this fix "1" and the next
* fix "2" because this one does not deal with the last field. This
* fix needs to run before the next.
*/
fix = {
hackname = solaris_mutex_init_1;
select = '@\(#\)pthread.h' "[ \t]+1.1[0-9][ \t]+9[567]/[0-9/]+ SMI";
files = pthread.h;
sed = "/define[ \t]*PTHREAD_MUTEX_INI/s/{0, 0,/{{{0}, 0}, {{{0}}},/\n"
"/define[ \t]*PTHREAD_COND_INI/s/{0,/{{{0},0},/";
test_text =
'#ident "@(#)pthread.h 1.16 97/05/05 SMI"'"\n"
"#define PTHREAD_MUTEX_INITIALIZER\t{0, 0, 0}\n"
"#define PTHREAD_COND_INITIALIZER\t{0, 0} /* */\n";
};
/*
* Sun Solaris defines PTHREAD_MUTEX_INITIALIZER with a trailing
* "0" for the last field of the pthread_mutex_t structure, which is
@ -3417,26 +3010,6 @@ fix = {
};
/*
* Solaris 2.5.1 and 2.6 use an outdated prototype for send & recv
* in sys/socket.h. This is corrected in Solaris 7 and up.
*/
fix = {
hackname = solaris_socket;
files = sys/socket.h;
select = '@\(#\)socket.h' "[ \t]+1.[123][0-9][ \t]+9[567]/[0-9/]+ SMI";
c_fix = format;
c_fix_arg = "extern int %1(int, %2void *, int, int);";
c_fix_arg = '^extern int (recv|send)\(int,'
' (const )*char '
'\*, int, int\);';
test_text = '#ident "@(#)socket.h 1.30 97/01/20 SMI"'"\n"
"extern int recv(int, char *, int, int);\n"
"extern int send(int, const char *, int, int);";
};
/*
* Solaris 2.8 has what appears to be some gross workaround for
* some old version of their c++ compiler. G++ doesn't want it
@ -3456,43 +3029,6 @@ fix = {
};
/*
* Sun Solaris 2.5.1 doesn't define 'getpagesize' in <unistd.h>, as is done
* on Solaris 2.6 and up.
*/
fix = {
hackname = solaris_unistd;
files = unistd.h;
select = '@\(#\)unistd.h' "[ \t]+1.3[0-9][ \t]+9[567]/[0-9/]+ SMI";
bypass = "getpagesize";
c_fix = format;
c_fix_arg = "extern int getpagesize();\n%0";
c_fix_arg = '^extern (pid_t|int) getpgid\(.*\);';
test_text = '#ident "@(#)unistd.h 1.33 95/08/28 SMI"'"\n"
"extern pid_t getpgid(pid_t);\n"
"extern int getpgid();";
};
/*
* <widec.h> until Solaris 2.5.1 defines macros for a couple of <wchar.h>
* functions, breaking their prototypes if that file is included afterwards.
* Include <wchar.h> early to avoid this issue, as is done on Solaris 2.6
* and up.
*/
fix = {
hackname = solaris_widec;
files = widec.h;
mach = '*-*-solaris2.[0-5]';
mach = '*-*-solaris2.[0-5].*';
bypass = "include.*wchar\\.h";
select = "#include <euc.h>";
c_fix = format;
c_fix_arg = "%0\n#include <wchar.h>";
test_text = "#include <euc.h>";
};
/*
* a missing semi-colon at the end of the statsswtch structure definition.
*/
@ -4002,46 +3538,6 @@ fix = {
};
/*
* Wrap some files on System V r4 and DYNIX/ptx systems with
* #ifdef _KERNEL, presumably to prevent kernel headers from
* leaking into userspace. This may not be necessary at all,
* but it was in the old scripts, so it seems safest to keep it for now.
*/
fix = {
/* Can't name this with _kernel, or the test case will hit the bypass! */
hackname = svr4_krnl;
/* Since I'm rather unsure about the validity of this, limit it
* to the specific systems it was operating on before. It should
* also be bypassed for i?86-*-sysv4.3uw2, by that rule, but I didn't
* see an easy way to do that. Hopefully it will be harmless
* in any case. -- Nathanael */
mach = '*-*-sysv4*';
mach = 'i?86-sequent-ptx*';
files = fs/rfs/rf_cache.h;
files = sys/erec.h;
files = sys/err.h;
files = sys/char.h;
files = sys/getpages.h;
files = sys/map.h;
files = sys/cmn_err.h;
files = sys/kdebugger.h;
/* This bypass will match _KERNEL, __KERNEL, __KERNEL__, etc.
* It will also match SVR4_KERNEL_CHECK, which means that the
* testsuite case will always be bypassed. Which is fine with me. */
bypass = '_KERNEL';
c_fix = wrap;
c_fix_arg = "#ifdef _KERNEL\n";
c_fix_arg = "#endif /* _KERNEL */\n";
/* There's no reasonable test for this given that we don't know exactly
* what problem inspired it in the first place. */
test_text = "";
};
/*
* Delete any #defines of `__i386' which may be present in <ieeefp.h>. They
* tend to conflict with the compiler's own definition of this symbol. (We
@ -4392,36 +3888,6 @@ fix = {
};
/*
* function parameter to atexit is missing "void" on VAX Ultrix 4.3.
*/
fix = {
hackname = ultrix_atexit_param;
files = stdlib.h;
select = 'atexit\(.*\(\)';
c_fix = format;
c_fix_arg = "atexit( void (*__func)( void )";
test_text = "int atexit( void (*__func)() );\n";
};
/*
* parameter to atof not const on DECstation Ultrix V4.0 and NEWS-OS 4.2R.
*/
fix = {
hackname = ultrix_atof_param;
files = math.h;
select = "atof\\([ \t]*char";
c_fix = format;
c_fix_arg = "atof(const char";
test_text = "extern double atof( char *__nptr);\n";
};
/*
* parameters not const on DECstation Ultrix V4.0 and OSF/1.
*/
@ -4466,322 +3932,6 @@ fix = {
};
/*
* parameters not const on Ultrix V4.3.
*/
fix = {
hackname = ultrix_const3;
files = stdio.h;
select = 'fdopen\( .*, char \*';
c_fix = format;
c_fix_arg = "%1 const %3 *__";
c_fix_arg = "([ \t*](fdopen)\\(.*)"
"[ \t]+(char|void) \\*__";
test_text =
"extern FILE * fdopen( int __filedes, char *__type );\n";
};
/*
* Ultrix V4.[35] puts the declaration of uname before the definition
* of struct utsname, so the prototype (added by fixproto) causes havoc.
*/
fix = {
hackname = ultrix_fix_fixproto;
files = sys/utsname.h;
select = ULTRIX;
c_fix = format;
c_fix_arg = "struct utsname;\n%0";
c_fix_arg = "^[ \t]*extern[ \t]*int[ \t]*uname\\(\\);";
test_text =
"/* ULTRIX's uname */\nextern\tint\tuname();";
};
/*
* Check for bad #ifdef line (in Ultrix 4.1)
*/
fix = {
hackname = ultrix_ifdef;
select = "^#ifdef KERNEL[ \t]+&&";
files = sys/file.h;
c_fix = format;
c_fix_arg = "#if defined(KERNEL) &&";
test_text =
"#ifdef KERNEL\t&& defined( mumbojumbo )\nint oops;\n#endif";
};
/*
* Add once-only latch to Ultrix V4.3 locale.h.
*/
fix = {
hackname = ultrix_locale;
files = locale.h;
select = "@\\(#\\)locale\\.h.*6\\.1.*\\(ULTRIX\\)";
c_fix = wrap;
test_text =
"@(#)locale.h 6.1 (ULTRIX)\n";
};
/*
* Strip "|| CC$gfloat" from Ultrix math headers.
*/
fix = {
hackname = ultrix_math_ifdef;
files = sys/limits.h;
files = float.h;
files = math.h;
select = "^(#if.*)\\|\\|[ \t]+CC\\$[a-z]+";
c_fix = format;
c_fix_arg = "%1";
test_text = '#if defined(__GFLOAT) || CC\$gfloat';
};
/*
* Avoid nested comments on Ultrix 4.3.
*/
fix = {
hackname = ultrix_nested_ioctl;
files = sys/ioctl.h;
select = "^/\\* #define SIOCSCREEN";
sed = "/^\\/\\* #define SIOCSCREEN/s@/\\* screend@*//* screend@";
test_text =
"/* #define SIOCSCREENON _IOWR('i', 49, int)"
"/* screend, net/gw_screen.h */\n";
};
fix = {
hackname = ultrix_nested_svc;
files = rpc/svc.h;
select = "^ \\*[ \t]*int protocol; */\\*";
sed = "s@^\\( \\*\tint protocol; \\)/\\*@\\1*/ /*@";
test_text =
" *\tint protocol; /* like TCP or UDP\n";
};
/*
* Add missing prototype for lstat and define for S_ISLNK
* in Ultrix V4.3 sys/stat.h.
*/
fix = {
hackname = ultrix_stat;
files = sys/stat.h;
select = "@\\(#\\)stat\\.h.*6\\.1.*\\(ULTRIX\\)";
sed = "/^#define[ \t]S_IFPORT[ \t]*S_IFIFO$/a\\\n"
"\\\n"
"/* macro to test for symbolic link */\\\n"
"#define S_ISLNK(mode) (((mode) & S_IFMT) == S_IFLNK)\\\n"
"\n";
sed = "/^[ \t]*fstat(),$/a\\\n"
"\tlstat(),\n";
test_text =
"@(#)stat.h 6.1 (ULTRIX)\n"
"#define S_IFPORT S_IFIFO\n"
"\tfstat(),\n/* THE INSERTION LINE FAILS ON BSD SYSTEMS */";
};
/*
* Check for superfluous `static' (in Ultrix 4.2)
* On Ultrix 4.3, includes of other files (r3_cpu.h,r4_cpu.h) is broken.
*/
fix = {
hackname = ultrix_static;
files = machine/cpu.h;
select = '#include "r[34]_cpu';
sed = "s/^static struct tlb_pid_state/struct tlb_pid_state/";
sed = 's/^#include "r3_cpu\.h"$/#include <machine\/r3_cpu\.h>/';
sed = 's/^#include "r4_cpu\.h"$/#include <machine\/r4_cpu\.h>/';
test_text =
"static struct tlb_pid_state {\n"
"#include \"r3_cpu.h\"\n";
};
/*
* Add missing declarations to Ultrix V4.3 stdlib.h.
*/
fix = {
hackname = ultrix_stdlib;
files = stdlib.h;
select = "@\\(#\\)stdlib\\.h.*6\\.1.*\\(ULTRIX\\)";
sed = "/^char.*getenv( const char .* );.*$/a\\\n"
"int\t\tsetenv( const char *__name, const char *__val, int __ovrwrt );\\\n"
"void\t\tunsetenv( const char *__name );\\\n"
"int\t\tputenv( char *__s );\n";
sed = "/^char.*getenv();.*$/a\\\n"
"int\tsetenv();\\\n"
"void\tunsetenv();\\\n"
"int\tputenv();\n";
test_text =
"@(#)stdlib.h 6.1 (ULTRIX)\n"
"char * getenv( const char *__name );\n"
"char *getenv();\n";
};
/*
* Add once-only latch to Ultrix V4.3 strings.h.
*/
fix = {
hackname = ultrix_strings;
files = strings.h;
select = "@\\(#\\)strings\\.h.*6\\.1.*\\(ULTRIX\\)";
c_fix = wrap;
test_text =
"@(#)strings.h 6.1 (ULTRIX)\n";
};
/*
* Add missing declarations to Ultrix V4.3 strings.h.
*/
fix = {
hackname = ultrix_strings2;
files = strings.h;
select = "@\\(#\\)strings\\.h.*6\\.1.*\\(ULTRIX\\)";
sed = "/^.*strncmp( const .* );.*/a\\\n"
"\\\n"
"extern int\\\n"
"\tstrcasecmp( const char *__s1, const char *__s2),\\\n"
"\tstrncasecmp( const char *__s1, const char *__s2, size_t __n );\n";
sed = "/^.*strncmp();.*/a\\\n"
"extern int\\\n"
"\tstrcasecmp(),\\\n"
"\tstrncasecmp();\n";
test_text =
"@(#)strings.h 6.1 (ULTRIX)\n"
"\tstrncmp( const char *__s1, const char *__s2, size_t __n );\n"
"\tstrncmp();\n";
};
/*
* Add missing declarations to Ultrix V4.3 sys/time.h.
*/
fix = {
hackname = ultrix_sys_time;
files = sys/time.h;
select = "@\\(#\\)time\\.h.*6\\.1.*\\(ULTRIX\\)";
sed = "/^extern.*time_t.*time( time_t .* );.*$/a\\\n"
"\\\n"
"extern int adjtime(struct timeval *, struct timeval *);\\\n"
"extern int getitimer(int, struct itimerval *);\\\n"
"extern int setitimer(int, struct itimerval *, struct itimerval *);\\\n"
"extern int gettimeofday(struct timeval *, struct timezone *);\\\n"
"extern int settimeofday(struct timeval *, struct timezone *);\\\n"
"extern void profil(const void *, size_t, size_t, unsigned int);\\\n"
"extern int stime(const time_t *);\\\n"
"extern int utimes(const char *, const struct timeval[2]);\\\n"
"extern int select(int, fd_set *, fd_set *, fd_set *, struct timeval *);\n";
sed = "/^extern.*double.*difftime();.*$/a\\\n"
"extern\tint adjtime();\\\n"
"extern\tint getitimer();\\\n"
"extern\tint setitimer();\\\n"
"extern\tint gettimeofday();\\\n"
"extern\tint settimeofday();\\\n"
"extern\tvoid profil();\\\n"
"extern\tint stime();\\\n"
"extern\tint utimes();\\\n"
"extern\tint select();\n";
test_text =
"@(#)time.h 6.1 (ULTRIX)\n"
"extern time_t time( time_t *__tloc );\n"
"extern double difftime();\n";
};
/*
* Add missing declarations to Ultrix V4.3 unistd.h.
*/
fix = {
hackname = ultrix_unistd;
files = unistd.h;
select = "@\\(#\\)unistd\\.h.*6\\.1.*\\(ULTRIX\\)";
sed = "/^[ \t]*getgroups(),.*$/a\\\n"
"\tgetpagesize(),\n";
sed = "/^[ \t]*fork(),.*$/a\\\n"
"\tvfork(),\n";
test_text =
"@(#)unistd.h 6.1 (ULTRIX)\n"
"\tgetgroups(),\n"
"\tfork(),\n";
};
/*
* On Cray Unicos/Mk some standard headers use the C99 keyword "restrict"
* which must be replaced by __restrict__ for GCC.
*/
fix = {
hackname = unicosmk_restrict;
files = stdio.h;
files = stdlib.h;
files = wchar.h;
mach = "*-*-unicosmk*";
select = "(\\*[ \t]*)restrict([ \t]+)";
c_fix = format;
c_fix_arg = "%1__restrict__%2";
test_text = "void f (char * restrict x);";
};
/*
* If arpa/inet.h prototypes are incompatible with the ones we just
* installed in <sys/byteorder.h>, just remove the protos.
* Because of this close association, this patch must be applied only
* on those systems where the replacement byteorder header is installed.
*/
fix = {
hackname = uw7_byteorder_fix;
files = arpa/inet.h;
select = "in_port_t";
test = "-f sys/byteorder.h";
#ifndef SVR5
mach = "*-*-sysv4*";
mach = "i?86-*-sysv5*";
mach = "i?86-*-udk*";
mach = "i?86-*-solaris2.[0-4]";
mach = "powerpcle-*-solaris2.[0-4]";
mach = "sparc-*-solaris2.[0-4]";
#endif /* SVR5 */
c_fix = format;
c_fix_arg = "";
c_fix_arg = "^extern.*[ \t](htons|ntohs).*\\(in_port_t\\).*;";
test_text = "extern in_port_t\thtons __P((in_port_t));\n"
"extern in_port_t\tntohs __P((in_port_t));"
"`[ ! -d $DESTDIR/sys ] && mkdir $DESTDIR/sys\n"
"echo '/* DUMMY */' >> sys/byteorder.h`";
};
/*
* Fix definitions of macros used by va-i960.h in VxWorks header file.
*/
@ -4928,41 +4078,6 @@ fix = {
};
/*
* WindISS math.h headers include bogus extern declarations of
* numerous math functions that conflict with libstdc++-v3.
*/
fix = {
hackname = windiss_math1;
files = math.h;
mach = "*-*-windiss";
sed = "s|inline long double cosl.*|#ifndef __GNUC__|";
test_text = "inline long double cosl(long double);";
};
fix = {
hackname = windiss_math2;
files = math.h;
mach = "*-*-windiss";
sed = "s|/\\* long double declarations \\*/|"
"#endif /* __GNUC__ */|";
test_text = "/* long double declarations */";
};
/*
* WindISS headers include "diab/va_list.h" instead of "stdarg.h"
*/
fix = {
select = '(#include.*)diab/va_list.h';
hackname = windiss_valist;
sed = "s|diab/va_list.h|stdarg.h|";
mach = "*-*-windiss";
test_text = "#include <diab/va_list.h>";
};
/*
* There are several name conflicts with C++ reserved words in X11 header
* files. These are fixed in some versions, so don't do the fixes if

View File

@ -12,20 +12,13 @@ target=fixinc.sh
# Check for special fix rules for particular targets
case $machine in
alpha*-dec-*vms* | \
arm-semi-aof | \
hppa1.1-*-osf* | \
hppa1.1-*-bsd* | \
i370-*-openedition | \
i?86-moss-msdos* | \
i?86-*-moss* | \
i?86-*-pe | \
i?86-*-cygwin* | \
i?86-*-mingw32* | \
x86_64-*-mingw32* | \
i?86-*-uwin* | \
i?86-*-interix* | \
*-*-vxworks* | \
powerpc-*-eabiaix* | \
powerpc-*-eabisim* | \
powerpc-*-eabi* | \
powerpc-*-rtems* | \

View File

@ -1,14 +0,0 @@
/* DO NOT EDIT THIS FILE.
It has been auto-edited by fixincludes from:
"fixinc/tests/inc/_G_config.h"
This had to be done to correct non-standard usages in the
original, manufacturer supplied header file. */
#if defined( LIBC1_G_VA_LIST_CHECK )
typedef __builtin_va_list _G_va_list;
#endif /* LIBC1_G_VA_LIST_CHECK */

View File

@ -1,15 +0,0 @@
/* DO NOT EDIT THIS FILE.
It has been auto-edited by fixincludes from:
"fixinc/tests/inc/arpa/inet.h"
This had to be done to correct non-standard usages in the
original, manufacturer supplied header file. */
#if defined( UW7_BYTEORDER_FIX_CHECK )
#endif /* UW7_BYTEORDER_FIX_CHECK */

View File

@ -1,21 +0,0 @@
/* DO NOT EDIT THIS FILE.
It has been auto-edited by fixincludes from:
"fixinc/tests/inc/fs/rfs/rf_cache.h"
This had to be done to correct non-standard usages in the
original, manufacturer supplied header file. */
#ifndef FIXINC_WRAP_FS_RFS_RF_CACHE_H_SVR4_KRNL
#define FIXINC_WRAP_FS_RFS_RF_CACHE_H_SVR4_KRNL 1
#ifdef _KERNEL
#if defined( SVR4_KRNL_CHECK )
#endif /* SVR4_KRNL_CHECK */
#endif /* _KERNEL */
#endif /* FIXINC_WRAP_FS_RFS_RF_CACHE_H_SVR4_KRNL */

View File

@ -1,20 +0,0 @@
/* DO NOT EDIT THIS FILE.
It has been auto-edited by fixincludes from:
"fixinc/tests/inc/locale.h"
This had to be done to correct non-standard usages in the
original, manufacturer supplied header file. */
#ifndef FIXINC_WRAP_LOCALE_H_ULTRIX_LOCALE
#define FIXINC_WRAP_LOCALE_H_ULTRIX_LOCALE 1
#if defined( ULTRIX_LOCALE_CHECK )
@(#)locale.h 6.1 (ULTRIX)
#endif /* ULTRIX_LOCALE_CHECK */
#endif /* FIXINC_WRAP_LOCALE_H_ULTRIX_LOCALE */

View File

@ -1,16 +0,0 @@
/* DO NOT EDIT THIS FILE.
It has been auto-edited by fixincludes from:
"fixinc/tests/inc/machine/cpu.h"
This had to be done to correct non-standard usages in the
original, manufacturer supplied header file. */
#if defined( ULTRIX_STATIC_CHECK )
struct tlb_pid_state {
#include <machine/r3_cpu.h>
#endif /* ULTRIX_STATIC_CHECK */

View File

@ -118,22 +118,6 @@ int foo;
#endif
#endif /* STRICT_ANSI_NOT_CTD_CHECK */
#if defined( ULTRIX_ATOF_PARAM_CHECK )
extern double atof(const char *__nptr);
#endif /* ULTRIX_ATOF_PARAM_CHECK */
#if defined( WINDISS_MATH1_CHECK )
#ifndef __GNUC__
#endif /* WINDISS_MATH1_CHECK */
#if defined( WINDISS_MATH2_CHECK )
#endif /* __GNUC__ */
#endif /* WINDISS_MATH2_CHECK */
#endif /* FIXINC_WRAP_MATH_H_EXCEPTION_STRUCTURE */
#ifdef __cplusplus
#undef exception

View File

@ -47,7 +47,7 @@
#else
# define PTHREAD_MUTEX_INITIALIZER {0, _PTHREAD_MVALID | _PTHREAD_MVF_STA, 0, 0, 0, 0, 0, 0 }
# define PTHREAD_MUTEX_INITWITHNAME_NP(_n_,_a_) {0, _PTHREAD_MVALID | _PTHREAD_MVF_STA, _n_, _a_, 0, 0, 0, 0 }
# define PTHREAD_COND_INITWITHNAME_NP(_n_,_a_) {{{0},0}, _PTHREAD_CVALID | _PTHREAD_CVF_STA, _n_, _a_, 0, 0 }
# define PTHREAD_COND_INITWITHNAME_NP(_n_,_a_) {0, _PTHREAD_CVALID | _PTHREAD_CVF_STA, _n_, _a_, 0, 0 }
#endif
#define PTHREAD_RWLOCK_INITIALIZER {_PTHREAD_RWVALID | _PTHREAD_RWVF_STA, 0, 0, 0, 0, 0, 0, 0, 0, 0 }
@ -107,22 +107,6 @@ extern int __sigsetjmp (struct __jmp_buf_tag *__env, int __savemask);
#endif /* PTHREAD_INCOMPLETE_STRUCT_ARGUMENT_CHECK */
#if defined( SOLARIS_MUTEX_INIT_1_CHECK )
#ident "@(#)pthread.h 1.16 97/05/05 SMI"
#if __STDC__ - 0 == 0 && !defined(_NO_LONGLONG)
#define PTHREAD_MUTEX_INITIALIZER {{{0}, 0}, {{{0}}}, 0}
#else
#define PTHREAD_MUTEX_INITIALIZER {{{0}, 0}, {{{0}}}, {0}}
#endif
#if __STDC__ - 0 == 0 && !defined(_NO_LONGLONG)
#define PTHREAD_COND_INITIALIZER {{{0},0}, 0} /* */
#else
#define PTHREAD_COND_INITIALIZER {{{0},0}, {0}} /* */
#endif
#endif /* SOLARIS_MUTEX_INIT_1_CHECK */
#if defined( SOLARIS_MUTEX_INIT_2_CHECK )
#ident "@(#)pthread.h 1.26 98/04/12 SMI"
#if __STDC__ - 0 == 0 && !defined(_NO_LONGLONG)

View File

@ -1,15 +0,0 @@
/* DO NOT EDIT THIS FILE.
It has been auto-edited by fixincludes from:
"fixinc/tests/inc/rpc/svc.h"
This had to be done to correct non-standard usages in the
original, manufacturer supplied header file. */
#if defined( ULTRIX_NESTED_SVC_CHECK )
* int protocol; */ /* like TCP or UDP
#endif /* ULTRIX_NESTED_SVC_CHECK */

View File

@ -100,15 +100,4 @@ extern char *tempnam( const char *, const char *);
#endif /* ULTRIX_CONST2_CHECK */
#if defined( ULTRIX_CONST3_CHECK )
extern FILE * fdopen( int __filedes, const char *__type );
#endif /* ULTRIX_CONST3_CHECK */
#if defined( UNICOSMK_RESTRICT_CHECK )
void f (char * __restrict__ x);
#endif /* UNICOSMK_RESTRICT_CHECK */
#endif /* FIXINC_WRAP_STDIO_H_STDIO_STDARG_H */

View File

@ -50,23 +50,3 @@ extern void * realloc(void*,size_t);
extern void * bsearch(void*,size_t,size_t);
#endif /* SYSZ_STDLIB_FOR_SUN_CHECK */
#if defined( ULTRIX_ATEXIT_PARAM_CHECK )
int atexit( void (*__func)( void ) );
#endif /* ULTRIX_ATEXIT_PARAM_CHECK */
#if defined( ULTRIX_STDLIB_CHECK )
@(#)stdlib.h 6.1 (ULTRIX)
char * getenv( const char *__name );
int setenv( const char *__name, const char *__val, int __ovrwrt );
void unsetenv( const char *__name );
int putenv( char *__s );
char *getenv();
int setenv();
void unsetenv();
int putenv();
#endif /* ULTRIX_STDLIB_CHECK */

View File

@ -7,7 +7,8 @@
This had to be done to correct non-standard usages in the
original, manufacturer supplied header file. */
#ifndef _STRING_INCLUDED
#define _STRING_INCLUDED
#include <strings.h>
#endif /* _STRING_INCLUDED */
#if defined( SVR4_DISABLE_OPT_CHECK )
#endif /* SVR4_DISABLE_OPT_CHECK */

View File

@ -7,34 +7,8 @@
This had to be done to correct non-standard usages in the
original, manufacturer supplied header file. */
#ifndef FIXINC_WRAP_STRINGS_H_ULTRIX_STRINGS
#define FIXINC_WRAP_STRINGS_H_ULTRIX_STRINGS 1
#if defined( SUNOS_STRLEN_CHECK )
__SIZE_TYPE__ strlen(); /* string length */
#endif /* SUNOS_STRLEN_CHECK */
#if defined( ULTRIX_STRINGS_CHECK )
@(#)strings.h 6.1 (ULTRIX)
#endif /* ULTRIX_STRINGS_CHECK */
#if defined( ULTRIX_STRINGS2_CHECK )
@(#)strings.h 6.1 (ULTRIX)
strncmp( const char *__s1, const char *__s2, size_t __n );
extern int
strcasecmp( const char *__s1, const char *__s2),
strncasecmp( const char *__s1, const char *__s2, size_t __n );
strncmp();
extern int
strcasecmp(),
strncasecmp();
#endif /* ULTRIX_STRINGS2_CHECK */
#endif /* FIXINC_WRAP_STRINGS_H_ULTRIX_STRINGS */

View File

@ -12,10 +12,3 @@
#if defined( HP_SYSFILE_CHECK )
extern void foo(struct file *, ...); /* HPUX_SOURCE - bad varargs */
#endif /* HP_SYSFILE_CHECK */
#if defined( ULTRIX_IFDEF_CHECK )
#if defined(KERNEL) && defined( mumbojumbo )
int oops;
#endif
#endif /* ULTRIX_IFDEF_CHECK */

View File

@ -1,15 +0,0 @@
/* DO NOT EDIT THIS FILE.
It has been auto-edited by fixincludes from:
"fixinc/tests/inc/sys/ioctl.h"
This had to be done to correct non-standard usages in the
original, manufacturer supplied header file. */
#if defined( ULTRIX_NESTED_IOCTL_CHECK )
/* #define SIOCSCREENON _IOWR('i', 49, int)*//* screend, net/gw_screen.h */
#endif /* ULTRIX_NESTED_IOCTL_CHECK */

View File

@ -9,21 +9,9 @@
#if defined( NESTED_MOTOROLA_CHECK )
#undef PIPE_BUF /* max # bytes atomic in write to a */
/* PIPE */
/*#define HUGE_VAL 3.9e+9 */ /*error value returned by Math lib*/
#endif /* NESTED_MOTOROLA_CHECK */
#if defined( NESTED_SYS_LIMITS_CHECK )
/*
#define CHILD_MAX 20 Max, Max, ... */ /*
#define OPEN_MAX 20 Max, Max, ... */
#endif /* NESTED_SYS_LIMITS_CHECK */
#if defined( ULTRIX_MATH_IFDEF_CHECK )
#if defined(__GFLOAT)
#endif /* ULTRIX_MATH_IFDEF_CHECK */

View File

@ -1,26 +0,0 @@
/* DO NOT EDIT THIS FILE.
It has been auto-edited by fixincludes from:
"fixinc/tests/inc/sys/regset.h"
This had to be done to correct non-standard usages in the
original, manufacturer supplied header file. */
#if defined( SCO_REGSET_CHECK )
union u_fps {
struct rsfpstate
{
int whatever;
}
};
union _u_fps {
struct _rsfpstate
{
int whatever;
}
};
#endif /* SCO_REGSET_CHECK */

View File

@ -35,10 +35,3 @@ typedef int socklen_t;
typedef u_int32_t socklen_t;
#endif /* _NO_XOPEN4 && _NO_XOPEN5 */
#endif /* IRIX_SOCKLEN_T_CHECK */
#if defined( SOLARIS_SOCKET_CHECK )
#ident "@(#)socket.h 1.30 97/01/20 SMI"
extern int recv(int, void *, int, int);
extern int send(int, const void *, int, int);
#endif /* SOLARIS_SOCKET_CHECK */

View File

@ -33,48 +33,6 @@ extern int fchmod(int, mode_t);
#endif /* RS6000_FCHMOD_CHECK */
#if defined( SCO_STATIC_FUNC_CHECK )
#ifdef __STDC__
#if __cplusplus
extern "C" {
#endif /* __cplusplus */
static int stat(const char *__f, struct stat *__p) {
return __stat32(__f, __p);
}
#if __cplusplus
}
#endif /* __cplusplus */
# else /* !__STDC__ THIS FAILS ON BSD SYSTEMS */
#if __cplusplus
extern "C" {
#endif /* __cplusplus */
static int stat(__f, __p)
char *__f;
struct stat *__p;
{
return __stat32(__f, __p);
}
#if __cplusplus
}
#endif /* __cplusplus */
#endif
#endif /* SCO_STATIC_FUNC_CHECK */
#if defined( ULTRIX_STAT_CHECK )
@(#)stat.h 6.1 (ULTRIX)
#define S_IFPORT S_IFIFO
/* macro to test for symbolic link */
#define S_ISLNK(mode) (((mode) & S_IFMT) == S_IFLNK)
fstat(),
lstat(),
/* THE INSERTION LINE FAILS ON BSD SYSTEMS */
#endif /* ULTRIX_STAT_CHECK */
#if defined( VXWORKS_NEEDS_VXWORKS_CHECK )
#include </dev/null> /* ULONG */
# define __INCstath <sys/stat.h>

View File

@ -17,30 +17,3 @@ struct sigevent;
#if defined( LYNXOS_NO_WARNING_IN_SYS_TIME_H_CHECK )
#endif /* LYNXOS_NO_WARNING_IN_SYS_TIME_H_CHECK */
#if defined( ULTRIX_SYS_TIME_CHECK )
@(#)time.h 6.1 (ULTRIX)
extern time_t time( time_t *__tloc );
extern int adjtime(struct timeval *, struct timeval *);
extern int getitimer(int, struct itimerval *);
extern int setitimer(int, struct itimerval *, struct itimerval *);
extern int gettimeofday(struct timeval *, struct timezone *);
extern int settimeofday(struct timeval *, struct timezone *);
extern void profil(const void *, size_t, size_t, unsigned int);
extern int stime(const time_t *);
extern int utimes(const char *, const struct timeval[2]);
extern int select(int, fd_set *, fd_set *, fd_set *, struct timeval *);
extern double difftime();
extern int adjtime();
extern int getitimer();
extern int setitimer();
extern int gettimeofday();
extern int settimeofday();
extern void profil();
extern int stime();
extern int utimes();
extern int select();
#endif /* ULTRIX_SYS_TIME_CHECK */

View File

@ -1,14 +0,0 @@
/* DO NOT EDIT THIS FILE.
It has been auto-edited by fixincludes from:
"fixinc/tests/inc/sys/times.h"
This had to be done to correct non-standard usages in the
original, manufacturer supplied header file. */
#if defined( SCO_UTIME_CHECK )
extern int utime(const char *, const struct utimbuf *);
#endif /* SCO_UTIME_CHECK */

View File

@ -1,16 +0,0 @@
/* DO NOT EDIT THIS FILE.
It has been auto-edited by fixincludes from:
"fixinc/tests/inc/sys/utsname.h"
This had to be done to correct non-standard usages in the
original, manufacturer supplied header file. */
#if defined( ULTRIX_FIX_FIXPROTO_CHECK )
/* ULTRIX's uname */
struct utsname;
extern int uname();
#endif /* ULTRIX_FIX_FIXPROTO_CHECK */

View File

@ -74,13 +74,6 @@ BSD43__IOWR('T', 1) /* Some are multi-line */
#endif /* IO_QUOTES_USE_CHECK */
#if defined( LIBC1_IFDEFD_MEMX_CHECK )
/* Copy N bytes of SRC to DEST. */
extern __ptr_t memcpy __P ((__ptr_t __dest, __const __ptr_t __src,
size_t __n));
#endif /* LIBC1_IFDEFD_MEMX_CHECK */
#if defined( MACHINE_ANSI_H_VA_LIST_CHECK )
# define _BSD_VA_LIST_ __builtin_va_list
#endif /* MACHINE_ANSI_H_VA_LIST_CHECK */
@ -127,8 +120,3 @@ extern unsigned int
extern size_t
strlen(), strspn();
#endif /* SYSV68_STRING_CHECK */
#if defined( WINDISS_VALIST_CHECK )
#include <stdarg.h>
#endif /* WINDISS_VALIST_CHECK */

View File

@ -12,22 +12,3 @@
#if defined( ALPHA_SBRK_CHECK )
extern void *sbrk(ptrdiff_t increment);
#endif /* ALPHA_SBRK_CHECK */
#if defined( SOLARIS_UNISTD_CHECK )
#ident "@(#)unistd.h 1.33 95/08/28 SMI"
extern int getpagesize();
extern pid_t getpgid(pid_t);
extern int getpagesize();
extern int getpgid();
#endif /* SOLARIS_UNISTD_CHECK */
#if defined( ULTRIX_UNISTD_CHECK )
@(#)unistd.h 6.1 (ULTRIX)
getgroups(),
getpagesize(),
fork(),
vfork(),
#endif /* ULTRIX_UNISTD_CHECK */

View File

@ -1,15 +0,0 @@
/* DO NOT EDIT THIS FILE.
It has been auto-edited by fixincludes from:
"fixinc/tests/inc/widec.h"
This had to be done to correct non-standard usages in the
original, manufacturer supplied header file. */
#if defined( SOLARIS_WIDEC_CHECK )
#include <euc.h>
#include <wchar.h>
#endif /* SOLARIS_WIDEC_CHECK */

View File

@ -1,3 +1,98 @@
2008-06-07 Joseph Myers <joseph@codesourcery.com>
* config.gcc (Obsolete configurations): Remove list of
configurations.
(Unsupported targets list): Add *-*-linux*aout*, *-*-linux*libc1*,
*-*-solaris2.[0-6], *-*-solaris2.[0-6].*, *-*-sysv*. Remove other
targets matched by those patterns.
(strongarm*-*-*, ep9312*-*-*, xscale-*-*, parisc*-*-*,
m680[012]0-*-*, *-*-linux*libc1*, *-*-linux*aout*,
alpha*-*-unicosmk*, strongarm*-*-freebsd*, ep9312-*-elf,
arm*-*-kaos*, cris-*-aout, parisc*64*-*-linux*, parisc*-*-linux*,
hppa1.1-*-pro*, hppa1.1-*-osf*, hppa1.1-*-bsd*,
i[34567]86-sequent-ptx4*, i[34567]86-sequent-sysv4*,
i[34567]86-*-beoself*, i[34567]86-*-beos*, i[34567]86-*-sco3.2v5*,
i[34567]86-*-sysv5*, i[34567]86-*-sysv4*, i[34567]86-*-uwin*,
i[34567]86-*-kaos*, m68020-*-elf*, m68010-*-netbsdelf*,
mips-wrs-windiss, mt-*-elf, powerpc-*-beos*, powerpc-*-chorusos*,
powerpc-wrs-windiss*, powerpcle-*-sysv*, powerpc-*-kaos*,
powerpcle-*-kaos*, sh*-*-kaos*, sparc-*-sysv4*, strongarm-*-elf*,
strongarm-*-pe, strongarm-*-kaos*, vax-*-bsd*, vax-*-sysv*,
vax-*-ultrix*, xscale-*-elf, xscale-*-coff,
i[34567]86-*-linux*aout*, i[34567]86-*-linux*libc1): Remove.
Make code for Solaris 7 and greater unconditional for Solaris.
(ep9312-*-*, parisc1*, m680[012]0-*-*, parisc*-*-*, mt-*-*):
Remove --with-* handling.
* config/rs6000/sysv4.h (-mwindiss): Remove from all specs.
(LIB_WINDISS_SPEC, CPP_OS_WINDISS_SPEC, STARTFILE_WINDISS_SPEC,
ENDFILE_WINDISS_SPEC, LINK_START_WINDISS_SPEC,
LINK_OS_WINDISS_SPEC): Remove.
* config/rs6000/sysv4.opt (mwindiss): Remove.
* configure.ac (strongarm*-*-*, xscale*-*-*): Remove.
* configure: Regenerate.
* doc/cpp.texi: Don't mention BeOS.
* doc/extend.texi (interrupt): Don't mention MS1.
* doc/install.texi: (i386-@var{any}-sysv, m68k-bull-sysv,
m68k-hp-hpux, m68000-hp-hpux, m68000-att-sysv,
alphaev5-cray-unicosmk*, xscale-*-*, i?86-*-linux*aout,
i?86-*-sco3.2v5*, i?86-*-udk, m68k-hp-hpux, powerpc-*-sysv4,
powerpc-*-sysv4, powerpcle-*-sysv4, *-*-sysv*, vax-dec-ultrix):
Remove.
* doc/invoke.texi (MT Options): Remove.
(-mwindiss): Remove.
(CRIS Options): Remove cris-axis-aout references.
(HPPA Options): Don't mention hppa1.1-*-pro.
* doc/md.texi: (MorphoTech family): Remove.
* libgcc2.c: Don't handle UWIN.
* config/alpha/t-unicosmk: Remove.
* config/alpha/unicosmk.h: Remove.
* config/arm/kaos-arm.h: Remove.
* config/arm/kaos-strongarm.h: Remove.
* config/arm/strongarm-coff.h: Remove.
* config/arm/strongarm-elf.h: Remove.
* config/arm/strongarm-pe.h: Remove.
* config/arm/t-strongarm-pe: Remove.
* config/arm/t-xscale-coff: Remove.
* config/arm/t-xscale-elf: Remove.
* config/arm/xscale-coff.h: Remove.
* config/arm/xscale-elf.h: Remove.
* config/chorus.h: Remove.
* config/cris/aout.h: Remove.
* config/cris/aout.opt: Remove.
* config/cris/t-aout: Remove.
* config/i386/beos-elf.h: Remove.
* config/i386/kaos-i386.h: Remove.
* config/i386/ptx4-i.h: Remove.
* config/i386/sco5.h: Remove.
* config/i386/sco5.opt: Remove.
* config/i386/sysv4-cpp.h: Remove.
* config/i386/sysv5.h: Remove.
* config/i386/t-beos: Remove.
* config/i386/t-sco5: Remove.
* config/i386/t-uwin: Remove.
* config/i386/uwin.asm: Remove.
* config/i386/uwin.h: Remove.
* config/kaos.h: Remove.
* config/mips/windiss.h: Remove.
* config/mt: Remove directory.
* config/pa/pa-osf.h: Remove.
* config/pa/pa-pro-end.h: Remove.
* config/pa/t-pro: Remove.
* config/ptx4.h: Remove.
* config/rs6000/beos.h: Remove.
* config/rs6000/kaos-ppc.h: Remove.
* config/rs6000/t-beos: Remove.
* config/rs6000/windiss.h: Remove.
* config/sh/kaos-sh.h: Remove.
* config/sol2-6.h: Remove.
* config/sparc/sol26-sld.h: Remove.
* config/sparc/sysv4-only.h: Remove.
* config/vax/bsd.h: Remove.
* config/vax/t-memfuncs: Remove.
* config/vax/ultrix.h: Remove.
* config/vax/vaxv.h: Remove.
* config/windiss.h: Remove.
2008-06-06 Uros Bizjak <ubizjak@gmail.com>
PR rtl-optimization/36438

View File

@ -204,63 +204,35 @@ xm_file=
md_file=
# Obsolete configurations.
case ${target} in
mt-* \
| strongarm*-* \
| ep9312*-* \
| xscale*-* \
| parisc*-* \
| m680[012]0-* \
| *-*-beos* \
| *-*-kaos* \
| *-*-linux*aout* \
| *-*-linux*libc1* \
| *-*-solaris2.[0-6] \
| *-*-solaris2.[0-6].* \
| *-*-sysv* \
| *-*-windiss* \
| alpha*-*-unicosmk* \
| cris-*-aout \
| hppa1.1-*-pro* \
| hppa1.1-*-osf* \
| hppa1.1-*-bsd* \
| i[34567]86-sequent-ptx4* \
| i[34567]86-*-sco3.2v5* \
| i[34567]86-*-uwin* \
| powerpc-*-chorusos* \
| vax-*-bsd* \
| vax-*-ultrix* \
)
if test "x$enable_obsolete" != xyes; then
echo "*** Configuration ${target} is obsolete." >&2
echo "*** Specify --enable-obsolete to build it anyway." >&2
echo "*** Support will be REMOVED in the next major release of GCC," >&2
echo "*** unless a maintainer comes forward." >&2
exit 1
fi;;
esac
#case ${target} in
# )
# if test "x$enable_obsolete" != xyes; then
# echo "*** Configuration ${target} is obsolete." >&2
# echo "*** Specify --enable-obsolete to build it anyway." >&2
# echo "*** Support will be REMOVED in the next major release of GCC," >&2
# echo "*** unless a maintainer comes forward." >&2
# exit 1
# fi;;
#esac
# Unsupported targets list. Do not put an entry in this list unless
# it would otherwise be caught by a more permissive pattern. The list
# should be in alphabetical order.
case ${target} in
alpha*-*-linux*libc1* \
| i[34567]86-sequent-sysv \
| i[34567]86-sequent-sysv[123]* \
| i[34567]86-go32-* \
i[34567]86-go32-* \
| i[34567]86-*-go32* \
| m68k-*-linux*aout* \
| m68k-*-linux*libc1* \
| mips64orion*-*-rtems* \
| powerpc-*-linux*libc1* \
| sparc-*-linux*aout* \
| sparc-*-linux*libc1* \
| sparc-hal-solaris2* \
| thumb-*-* \
| *-*-linux*aout* \
| *-*-linux*coff* \
| *-*-linux*libc1* \
| *-*-linux*oldld* \
| *-*-rtemsaout* \
| *-*-rtemscoff* \
| *-*-solaris2.[0-6] \
| *-*-solaris2.[0-6].* \
| *-*-sysv* \
| vax-*-vms* \
)
echo "*** Configuration ${target} not supported" 1>&2
@ -286,9 +258,6 @@ alpha*-*-*)
am33_2.0-*-linux*)
cpu_type=mn10300
;;
strongarm*-*-*)
cpu_type=arm
;;
arm*-*-*)
cpu_type=arm
extra_headers="mmintrin.h arm_neon.h"
@ -301,19 +270,12 @@ bfin*-*)
crisv32-*)
cpu_type=cris
;;
ep9312*-*-*)
cpu_type=arm
;;
frv*) cpu_type=frv
;;
fido-*-*)
cpu_type=m68k
extra_headers=math-68881.h
;;
xscale-*-*)
cpu_type=arm
extra_headers="mmintrin.h"
;;
i[34567]86-*-*)
cpu_type=i386
extra_headers="cpuid.h mmintrin.h mm3dnow.h xmmintrin.h emmintrin.h
@ -333,16 +295,12 @@ ia64-*-*)
extra_headers=ia64intrin.h
need_64bit_hwint=yes
;;
hppa*-*-* | parisc*-*-*)
hppa*-*-*)
cpu_type=pa
;;
m32r*-*-*)
cpu_type=m32r
;;
m680[012]0-*-*)
cpu_type=m68k
extra_headers=math-68881.h
;;
m68k-*-*)
extra_headers=math-68881.h
;;
@ -498,9 +456,6 @@ case ${target} in
esac
fbsd_tm_file="${fbsd_tm_file} freebsd-spec.h freebsd.h"
;;
*-*-linux*libc1* | *-*-linux*aout*)
# Avoid the generic linux case.
;;
*-*-linux* | frv-*-*linux* | *-*-kfreebsd*-gnu | *-*-knetbsd*-gnu)
# Must come before *-*-gnu* (because of *-*-linux-gnu* systems).
extra_parts="crtbegin.o crtbeginS.o crtbeginT.o crtend.o crtendS.o"
@ -633,15 +588,6 @@ case ${target} in
then tmake_file=${cpu_type}/t-$rest
fi
;;
alpha*-*-unicosmk*)
use_collect2=yes
tm_file="${tm_file} alpha/unicosmk.h"
# Don't include t-ieee for now because we don't support that yet
# tmake_file="alpha/t-ieee"
tmake_file="alpha/t-unicosmk"
use_fixproto=yes
;;
alpha*-*-linux*)
tm_file="${tm_file} alpha/elf.h alpha/linux.h alpha/linux-elf.h"
target_cpu_default="MASK_GAS"
@ -729,7 +675,7 @@ arm-wrs-vxworks)
tm_file="elfos.h arm/elf.h arm/aout.h ${tm_file} vx-common.h vxworks.h arm/vxworks.h"
tmake_file="${tmake_file} arm/t-arm arm/t-vxworks"
;;
arm*-*-freebsd*|strongarm*-*-freebsd*)
arm*-*-freebsd*)
tm_file="dbxelf.h elfos.h ${fbsd_tm_file} arm/elf.h arm/aout.h arm/freebsd.h arm/arm.h"
tmake_file="${tmake_file} arm/t-arm arm/t-strongarm-elf"
;;
@ -818,7 +764,7 @@ arm*-*-rtems*)
tmake_file="arm/t-arm arm/t-arm-elf t-rtems arm/t-rtems"
tmake_file="${tmake_file} arm/t-arm-softfp soft-fp/t-softfp"
;;
arm*-*-elf | ep9312-*-elf)
arm*-*-elf)
tm_file="dbxelf.h elfos.h arm/unknown-elf.h arm/elf.h arm/aout.h arm/arm.h"
tmake_file="arm/t-arm arm/t-arm-elf"
tmake_file="${tmake_file} arm/t-arm-softfp soft-fp/t-softfp"
@ -835,11 +781,6 @@ arm-*-pe*)
extra_options="${extra_options} arm/pe.opt"
extra_objs="pe.o"
;;
arm*-*-kaos*)
tm_file="dbxelf.h elfos.h arm/unknown-elf.h arm/elf.h arm/aout.h arm/arm.h kaos.h arm/kaos-arm.h"
tmake_file="arm/t-arm arm/t-arm-elf"
tmake_file="${tmake_file} arm/t-arm-softfp soft-fp/t-softfp"
;;
avr-*-rtems*)
tm_file="avr/avr.h dbxelf.h avr/rtems.h rtems.h"
tmake_file="avr/t-avr t-rtems avr/t-rtems"
@ -875,12 +816,6 @@ bfin*-*)
tmake_file=bfin/t-bfin
use_collect2=no
;;
cris-*-aout)
tm_file="dbxelf.h ${tm_file} cris/aout.h"
gas=yes
tmake_file="cris/t-cris cris/t-aout"
extra_options="${extra_options} cris/aout.opt"
;;
crisv32-*-elf | crisv32-*-none)
tm_file="dbxelf.h elfos.h ${tm_file}"
tmake_file="cris/t-cris"
@ -942,7 +877,7 @@ h8300-*-*)
tm_file="h8300/h8300.h dbxcoff.h h8300/coff.h"
use_fixproto=yes
;;
hppa*64*-*-linux* | parisc*64*-*-linux*)
hppa*64*-*-linux*)
target_cpu_default="MASK_PA_11|MASK_PA_20"
tm_file="pa/pa64-start.h ${tm_file} dbxelf.h elfos.h svr4.h linux.h \
pa/pa-linux.h pa/pa64-regs.h pa/pa-64.h pa/pa64-linux.h"
@ -950,7 +885,7 @@ hppa*64*-*-linux* | parisc*64*-*-linux*)
gas=yes gnu_ld=yes
need_64bit_hwint=yes
;;
hppa*-*-linux* | parisc*-*-linux*)
hppa*-*-linux*)
target_cpu_default="MASK_PA_11|MASK_NO_SPACE_REGS"
tm_file="${tm_file} dbxelf.h elfos.h svr4.h linux.h pa/pa-linux.h \
pa/pa32-regs.h pa/pa32-linux.h"
@ -966,24 +901,6 @@ hppa*-*-linux* | parisc*-*-linux*)
#hppa*-*-openbsd*)
# target_cpu_default="MASK_PA_11"
# ;;
hppa1.1-*-pro*)
target_cpu_default="MASK_PORTABLE_RUNTIME|MASK_NO_SPACE_REGS|MASK_SOFT_FLOAT"
tm_file="${tm_file} pa/pa32-regs.h dbxelf.h elfos.h pa/elf.h \
pa/pa-pro-end.h libgloss.h"
tmake_file="pa/t-pro"
;;
hppa1.1-*-osf*)
target_cpu_default="MASK_PA_11"
tm_file="${tm_file} pa/pa32-regs.h dbxelf.h pa/som.h pa/pa-osf.h"
tmake_file="pa/t-pa"
use_collect2=yes
;;
hppa1.1-*-bsd*)
target_cpu_default="MASK_PA_11"
tm_file="${tm_file} pa/pa32-regs.h dbxelf.h pa/som.h"
tmake_file="pa/t-pa"
use_collect2=yes
;;
hppa[12]*-*-hpux10*)
case ${target} in
hppa1.1-*-* | hppa2*-*-*)
@ -1112,25 +1029,10 @@ x86_64-*-elf*)
tmake_file="i386/t-i386elf t-svr4"
use_fixproto=yes
;;
i[34567]86-sequent-ptx4* | i[34567]86-sequent-sysv4*)
if test x$gas = xyes
then
tm_file="${tm_file} usegas.h"
fi
tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h ptx4.h i386/ptx4-i.h"
tmake_file=t-svr4
extra_parts="crtbegin.o crtend.o"
use_fixproto=yes
;;
i[34567]86-*-aout*)
tm_file="${tm_file} i386/unix.h i386/bsd.h i386/gas.h i386/gstabs.h i386/i386-aout.h"
use_fixproto=yes
;;
i[34567]86-*-beoself* | i[34567]86-*-beos*)
tmake_file='i386/t-beos i386/t-crtpic'
tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h svr4.h i386/beos-elf.h"
extra_parts='crtbegin.o crtend.o'
;;
i[34567]86-*-freebsd*)
tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h ${fbsd_tm_file} i386/freebsd.h"
;;
@ -1261,23 +1163,9 @@ i[34567]86-*-rtems*)
extra_parts="crtbegin.o crtend.o crti.o crtn.o"
tmake_file="i386/t-rtems-i386 i386/t-crtstuff t-rtems"
;;
i[34567]86-*-sco3.2v5*) # 80386 running SCO Open Server 5
tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h i386/sco5.h"
if test x$gas = xyes
then
tm_file="usegas.h ${tm_file}"
fi
tmake_file=i386/t-sco5
extra_parts="crtbegin.o crtend.o"
extra_options="${extra_options} i386/sco5.opt"
use_fixproto=yes
;;
i[34567]86-*-solaris2*)
tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h svr4.h i386/sysv4.h sol2.h"
case ${target} in
*-*-solaris2.[0-6] | *-*-solaris2.[0-6].*)
tm_file="${tm_file} sol2-6.h"
;;
*-*-solaris2.1[0-9]*)
tm_file="${tm_file} sol2-10.h"
;;
@ -1297,11 +1185,7 @@ i[34567]86-*-solaris2*)
if test x$gas = xyes; then
tm_file="usegas.h ${tm_file}"
fi
case ${target} in
*-*-solaris2.[789] | *-*-solaris2.1[0-9]*)
tm_file="$tm_file tm-dwarf2.h"
;;
esac
tm_file="$tm_file tm-dwarf2.h"
case ${target} in
*-*-solaris2.1[0-9]*)
tm_file="${tm_file} i386/x86-64.h i386/sol2-10.h"
@ -1332,43 +1216,13 @@ i[34567]86-*-solaris2*)
esac
case ${enable_threads}:${have_pthread_h}:${have_thread_h} in
"":yes:* | yes:yes:* )
case ${target} in
*-*-solaris2.[0-6] | *-*-solaris2.[0-6].*)
thread_file=posix95
;;
*)
thread_file=posix
;;
esac
thread_file=posix
;;
"":*:yes | yes:*:yes )
thread_file=solaris
;;
esac
;;
i[34567]86-*-sysv5*) # Intel x86 on System V Release 5
tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h svr4.h i386/sysv4.h i386/sysv5.h"
if test x$stabs = xyes
then
tm_file="${tm_file} dbx.h"
fi
tmake_file="i386/t-crtpic t-svr4"
extra_parts="crtbegin.o crtend.o"
if test x$enable_threads = xyes; then
thread_file='posix'
fi
use_fixproto=yes
;;
i[34567]86-*-sysv4*) # Intel 80386's running system V.4
tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h svr4.h i386/sysv4.h i386/sysv4-cpp.h"
if test x$stabs = xyes
then
tm_file="${tm_file} dbx.h"
fi
tmake_file="i386/t-crtpic t-svr4"
extra_parts="crtbegin.o crtend.o"
use_fixproto=yes
;;
i[4567]86-wrs-vxworks|i[4567]86-wrs-vxworksae)
tm_file="${tm_file} i386/unix.h i386/att.h elfos.h svr4.h vx-common.h"
case ${target} in
@ -1427,17 +1281,6 @@ i[34567]86-*-mingw* | x86_64-*-mingw*)
;;
esac
;;
i[34567]86-*-uwin*)
tm_file="${tm_file} i386/unix.h i386/bsd.h i386/gas.h dbxcoff.h i386/cygwin.h i386/uwin.h"
tmake_file="i386/t-cygwin i386/t-uwin"
extra_objs=winnt.o
extra_options="${extra_options} i386/cygming.opt"
target_gtfiles="\$(srcdir)/config/i386/winnt.c"
if test x$enable_threads = xyes; then
thread_file='win32'
fi
use_fixproto=yes
;;
i[34567]86-*-interix3*)
tm_file="${tm_file} i386/unix.h i386/bsd.h i386/gas.h i386/i386-interix.h i386/i386-interix3.h interix.h interix3.h"
tmake_file="i386/t-interix"
@ -1450,10 +1293,6 @@ i[34567]86-*-interix3*)
tm_file="${tm_file} dbxcoff.h"
fi
;;
i[34567]86-*-kaos*)
tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h i386/i386elf.h kaos.h i386/kaos-i386.h"
tmake_file="i386/t-i386elf t-svr4"
;;
ia64*-*-elf*)
tm_file="${tm_file} dbxelf.h elfos.h ia64/sysv4.h ia64/elf.h"
tmake_file="ia64/t-ia64"
@ -1570,7 +1409,7 @@ m68k-*-coff*)
tm_file="${tm_file} m68k/m68k-none.h m68k/m68kemb.h dbxcoff.h m68k/coff.h dbx.h"
use_fixproto=yes
;;
m68020-*-elf* | m68k-*-elf* | fido-*-elf*)
m68k-*-elf* | fido-*-elf*)
case ${target} in
fido-*-elf*)
# Check that $with_cpu makes sense.
@ -1602,7 +1441,7 @@ m68020-*-elf* | m68k-*-elf* | fido-*-elf*)
esac
extra_parts="crtbegin.o crtend.o"
;;
m68010-*-netbsdelf* | m68k*-*-netbsdelf*)
m68k*-*-netbsdelf*)
default_m68k_cpu=68020
default_cf_cpu=5475
tm_file="${tm_file} dbxelf.h elfos.h netbsd.h netbsd-elf.h m68k/netbsd-elf.h"
@ -1841,12 +1680,6 @@ mips-wrs-vxworks)
tm_file="elfos.h ${tm_file} svr4.h mips/elf.h vx-common.h vxworks.h mips/vxworks.h"
tmake_file="${tmake_file} mips/t-vxworks"
;;
mips-wrs-windiss) # Instruction-level simulator for VxWorks.
xm_defines=POSIX
tm_file="elfos.h mips/mips.h svr4.h mips/elf.h windiss.h mips/windiss.h"
tmake_file="${tmake_file} mips/t-elf mips/t-libgcc-mips16"
thread_file=
;;
mipstx39-*-elf* | mipstx39el-*-elf*)
tm_file="elfos.h ${tm_file} mips/r3900.h mips/elf.h"
tmake_file="mips/t-r3900 mips/t-libgcc-mips16"
@ -1864,10 +1697,6 @@ mn10300-*-*)
use_collect2=no
use_fixproto=yes
;;
mt-*-elf)
tm_file="dbxelf.h elfos.h svr4.h ${tm_file}"
tmake_file="${tmake_file} mt/t-mt"
;;
pdp11-*-bsd)
tm_file="${tm_file} pdp11/2bsd.h"
use_fixproto=yes
@ -1896,12 +1725,6 @@ powerpc64-*-gnu*)
extra_options="${extra_options} rs6000/sysv4.opt rs6000/linux64.opt"
tmake_file="rs6000/t-fprules t-slibgcc-elf-ver t-gnu rs6000/t-linux64 rs6000/t-fprules-softfp soft-fp/t-softfp"
;;
powerpc-*-beos*)
tm_file="${tm_file} rs6000/aix.h rs6000/beos.h rs6000/xcoff.h"
tmake_file="rs6000/t-fprules rs6000/t-fprules-fpbit rs6000/t-beos"
extra_headers=
use_fixproto=yes
;;
powerpc-*-darwin*)
extra_options="${extra_options} rs6000/darwin.opt"
extra_parts="crt2.o"
@ -1934,17 +1757,6 @@ powerpc-*-netbsd*)
tmake_file="${tmake_file} rs6000/t-netbsd"
extra_options="${extra_options} rs6000/sysv4.opt"
;;
powerpc-*-chorusos*)
tm_file="${tm_file} dbxelf.h elfos.h svr4.h freebsd-spec.h rs6000/sysv4.h chorus.h"
tmake_file="rs6000/t-fprules rs6000/t-fprules-fpbit rs6000/t-ppcos rs6000/t-ppccomm"
extra_options="${extra_options} rs6000/sysv4.opt"
case ${enable_threads} in
yes | posix)
thread_file='posix'
;;
esac
use_fixproto=yes
;;
powerpc-*-eabispe*)
tm_file="${tm_file} dbxelf.h elfos.h svr4.h freebsd-spec.h rs6000/sysv4.h rs6000/eabi.h rs6000/e500.h rs6000/eabispe.h"
extra_options="${extra_options} rs6000/sysv4.opt"
@ -2048,13 +1860,6 @@ powerpc-wrs-vxworks|powerpc-wrs-vxworksae)
;;
esac
;;
powerpc-wrs-windiss*) # Instruction-level simulator for VxWorks.
tm_file="${tm_file} elfos.h svr4.h freebsd-spec.h rs6000/sysv4.h rs6000/windiss.h"
tmake_file="rs6000/t-fprules rs6000/t-fprules-fpbit rs6000/t-ppcgas rs6000/t-ppccomm"
extra_options="${extra_options} rs6000/sysv4.opt"
thread_file=""
use_fixproto=yes
;;
powerpc-*-lynxos*)
xm_defines=POSIX
tm_file="${tm_file} dbxelf.h elfos.h rs6000/sysv4.h rs6000/lynx.h lynx.h"
@ -2066,12 +1871,6 @@ powerpc-*-lynxos*)
gnu_ld=yes
gas=yes
;;
powerpcle-*-sysv*)
tm_file="${tm_file} dbxelf.h elfos.h svr4.h freebsd-spec.h rs6000/sysv4.h rs6000/sysv4le.h"
tmake_file="rs6000/t-fprules rs6000/t-fprules-fpbit rs6000/t-ppcos rs6000/t-ppccomm"
extra_options="${extra_options} rs6000/sysv4.opt"
use_fixproto=yes
;;
powerpcle-*-elf*)
tm_file="${tm_file} dbxelf.h elfos.h svr4.h freebsd-spec.h rs6000/sysv4.h rs6000/sysv4le.h"
tmake_file="rs6000/t-fprules rs6000/t-fprules-fpbit rs6000/t-ppcgas rs6000/t-ppccomm"
@ -2088,16 +1887,6 @@ powerpcle-*-eabi*)
tmake_file="rs6000/t-fprules rs6000/t-fprules-fpbit rs6000/t-ppcgas rs6000/t-ppccomm"
extra_options="${extra_options} rs6000/sysv4.opt"
;;
powerpc-*-kaos*)
tm_file="${tm_file} dbxelf.h elfos.h svr4.h freebsd-spec.h rs6000/sysv4.h kaos.h rs6000/kaos-ppc.h"
tmake_file="rs6000/t-fprules rs6000/t-fprules-fpbit rs6000/t-ppcgas rs6000/t-ppccomm"
extra_options="${extra_options} rs6000/sysv4.opt"
;;
powerpcle-*-kaos*)
tm_file="${tm_file} dbxelf.h elfos.h svr4.h freebsd-spec.h rs6000/sysv4.h rs6000/sysv4le.h kaos.h rs6000/kaos-ppc.h"
tmake_file="rs6000/t-fprules rs6000/t-fprules-fpbit rs6000/t-ppcgas rs6000/t-ppccomm"
extra_options="${extra_options} rs6000/sysv4.opt"
;;
rs6000-ibm-aix4.[12]* | powerpc-ibm-aix4.[12]*)
tm_file="${tm_file} rs6000/aix.h rs6000/aix41.h rs6000/xcoff.h"
tmake_file="rs6000/t-fprules rs6000/t-fprules-fpbit rs6000/t-newas"
@ -2174,7 +1963,7 @@ score-*-elf)
tmake_file=score/t-score-elf
extra_objs="score7.o score3.o"
;;
sh-*-elf* | sh[12346l]*-*-elf* | sh*-*-kaos* | \
sh-*-elf* | sh[12346l]*-*-elf* | \
sh-*-symbianelf* | sh[12346l]*-*-symbianelf* | \
sh-*-linux* | sh[2346lbe]*-*-linux* | \
sh-*-netbsdelf* | shl*-*-netbsdelf* | sh5-*-netbsd* | sh5l*-*-netbsd* | \
@ -2208,8 +1997,6 @@ sh-*-symbianelf* | sh[12346l]*-*-symbianelf* | \
case ${target} in
sh*-*-linux*) tmake_file="${tmake_file} sh/t-linux"
tm_file="${tm_file} linux.h sh/linux.h" ;;
sh*-*-kaos*) tm_file="${tm_file} sh/embed-elf.h kaos.h sh/kaos-sh.h"
;;
sh*-*-netbsd*) tm_file="${tm_file} netbsd.h netbsd-elf.h sh/netbsd-elf.h" ;;
sh*-superh-elf) if test x$with_libgloss != xno; then
with_libgloss=yes
@ -2421,9 +2208,6 @@ sparc64-*-solaris2* | sparcv9-*-solaris2*)
sparc-*-solaris2*)
tm_file="${tm_file} dbxelf.h elfos.h svr4.h sparc/sysv4.h sol2.h"
case ${target} in
*-*-solaris2.[0-6] | *-*-solaris2.[0-6].*)
tm_file="${tm_file} sol2-6.h"
;;
*-*-solaris2.1[0-9]*)
tm_file="${tm_file} sol2-10.h"
;;
@ -2441,25 +2225,16 @@ sparc-*-solaris2*)
else
tmake_file="$tmake_file t-slibgcc-sld"
fi
case ${target} in
*-*-solaris2.[0-6] | *-*-solaris2.[0-6].*)
if test x$gnu_ld = xno; then
tm_file="${tm_file} sparc/sol26-sld.h"
fi
;;
*-*-solaris2.[789] | *-*-solaris2.1[0-9]*)
tm_file="sparc/biarch64.h ${tm_file} sparc/sol2-bi.h"
if test x$gnu_ld = xyes; then
tm_file="${tm_file} sparc/sol2-gld-bi.h"
fi
if test x$gas = xyes; then
tm_file="${tm_file} sparc/sol2-gas-bi.h"
fi
tm_file="${tm_file} tm-dwarf2.h"
tmake_file="$tmake_file sparc/t-sol2-64"
test x$with_cpu != x || with_cpu=v9
;;
esac
tm_file="sparc/biarch64.h ${tm_file} sparc/sol2-bi.h"
if test x$gnu_ld = xyes; then
tm_file="${tm_file} sparc/sol2-gld-bi.h"
fi
if test x$gas = xyes; then
tm_file="${tm_file} sparc/sol2-gas-bi.h"
fi
tm_file="${tm_file} tm-dwarf2.h"
tmake_file="$tmake_file sparc/t-sol2-64"
test x$with_cpu != x || with_cpu=v9
c_target_objs="sol2-c.o"
cxx_target_objs="sol2-c.o"
extra_objs="sol2.o"
@ -2467,26 +2242,13 @@ sparc-*-solaris2*)
extra_parts="crt1.o crti.o crtn.o gcrt1.o gmon.o crtbegin.o crtend.o"
case ${enable_threads}:${have_pthread_h}:${have_thread_h} in
"":yes:* | yes:yes:* )
case ${target} in
*-*-solaris2.[0-6] | *-*-solaris2.[0-6].*)
thread_file=posix95
;;
*)
thread_file=posix
;;
esac
thread_file=posix
;;
"":*:yes | yes:*:yes )
thread_file=solaris
;;
esac
;;
sparc-*-sysv4*)
tm_file="${tm_file} dbxelf.h elfos.h svr4.h sparc/sysv4.h sparc/sysv4-only.h"
tmake_file=t-svr4
extra_parts="crtbegin.o crtend.o"
use_fixproto=yes
;;
sparc-wrs-vxworks)
tm_file="${tm_file} elfos.h svr4.h sparc/sysv4.h vx-common.h vxworks.h sparc/vxworks.h"
tmake_file="${tmake_file} sparc/t-vxworks"
@ -2527,31 +2289,6 @@ spu-*-elf*)
c_target_objs="${c_target_objs} spu-c.o"
cxx_target_objs="${cxx_target_objs} spu-c.o"
;;
strongarm-*-elf*)
tm_file="arm/strongarm-elf.h dbxelf.h elfos.h arm/unknown-elf.h arm/elf.h arm/aout.h arm/arm.h"
tmake_file="arm/t-arm arm/t-strongarm-elf"
out_file=arm/arm.c
md_file=arm/arm.md
extra_modes=arm/arm-modes.def
use_fixproto=yes
;;
strongarm-*-pe)
tm_file="arm/semi.h arm/aout.h arm/coff.h dbxcoff.h arm/strongarm-coff.h arm/arm.h arm/pe.h arm/strongarm-pe.h"
tmake_file="arm/t-arm arm/t-strongarm-pe"
out_file=arm/arm.c
md_file=arm/arm.md
extra_modes=arm/arm-modes.def
extra_options="${extra_options} arm/pe.opt"
extra_objs=pe.o
use_fixproto=yes
;;
strongarm-*-kaos*)
tm_file="arm/strongarm-elf.h dbxelf.h elfos.h arm/unknown-elf.h arm/elf.h arm/aout.h arm/arm.h kaos.h arm/kaos-strongarm.h"
tmake_file="arm/t-arm arm/t-strongarm-elf"
out_file=arm/arm.c
md_file=arm/arm.md
extra_modes=arm/arm-modes.def
;;
v850e1-*-*)
target_cpu_default="TARGET_CPU_v850e1"
tm_file="dbxelf.h elfos.h svr4.h v850/v850.h"
@ -2599,17 +2336,6 @@ v850-*-*)
cxx_target_objs="v850-c.o"
use_fixproto=yes
;;
vax-*-bsd*) # VAXen running BSD
tm_file="${tm_file} vax/bsd.h"
tmake_file=vax/t-memfuncs
use_collect2=yes
use_fixproto=yes
;;
vax-*-sysv*) # VAXen running system V
tm_file="${tm_file} vax/vaxv.h"
tmake_file=vax/t-memfuncs
use_fixproto=yes
;;
vax-*-netbsdelf*)
tm_file="${tm_file} elfos.h netbsd.h netbsd-elf.h vax/elf.h vax/netbsd-elf.h"
;;
@ -2623,27 +2349,6 @@ vax-*-openbsd*)
tm_file="vax/vax.h vax/openbsd1.h openbsd.h vax/openbsd.h"
use_collect2=yes
;;
vax-*-ultrix*) # VAXen running ultrix
tm_file="${tm_file} vax/ultrix.h"
tmake_file=vax/t-memfuncs
use_fixproto=yes
;;
xscale-*-elf)
tm_file="arm/xscale-elf.h dbxelf.h elfos.h arm/unknown-elf.h arm/elf.h arm/aout.h arm/arm.h"
tmake_file="arm/t-arm arm/t-xscale-elf"
out_file=arm/arm.c
md_file=arm/arm.md
extra_modes=arm/arm-modes.def
use_fixproto=yes
;;
xscale-*-coff)
tm_file="arm/semi.h arm/aout.h arm/coff.h dbxcoff.h arm/xscale-coff.h arm/arm.h"
tmake_file="arm/t-arm arm/t-xscale-coff"
out_file=arm/arm.c
md_file=arm/arm.md
extra_modes=arm/arm-modes.def
use_fixproto=yes
;;
xstormy16-*-elf)
# For historical reasons, the target files omit the 'x'.
tm_file="dbxelf.h elfos.h svr4.h stormy16/stormy16.h"
@ -2683,9 +2388,6 @@ m32c-*-elf*)
esac
case ${target} in
i[34567]86-*-linux*aout* | i[34567]86-*-linux*libc1)
tmake_file="${tmake_file} i386/t-gmm_malloc"
;;
i[34567]86-*-linux* | x86_64-*-linux*)
tmake_file="${tmake_file} i386/t-pmm_malloc"
;;
@ -2707,10 +2409,6 @@ esac
# This block sets nothing except for with_cpu.
if test x$with_cpu = x ; then
case ${target} in
ep9312-*-*)
# A Cirrus ARM variant.
with_cpu="ep9312"
;;
i386-*-*)
with_cpu=i386
;;
@ -2822,9 +2520,6 @@ if test x$with_cpu = x ; then
frv550-*-*linux*)
with_cpu=fr550
;;
m680[012]0-*-*)
with_cpu=`echo ${target} | sed 's/-.*$//'`
;;
m68k*-*-*)
case "$with_arch" in
"cf")
@ -2844,19 +2539,10 @@ if test x$with_cpu = x ; then
esac
fi
# Similarly for --with-float
if test x$with_float = x; then
case ${target} in
ep9312-*-*)
with_float=hard
;;
esac
fi
# Similarly for --with-schedule.
if test x$with_schedule = x; then
case ${target} in
hppa1* | parisc1*)
hppa1*)
# Override default PA8000 scheduling model.
with_schedule=7100LC
;;
@ -2987,7 +2673,7 @@ case "${target}" in
esac
;;
fido-*-* | m680[012]0-*-* | m68k*-*-*)
fido-*-* | m68k*-*-*)
supported_defaults="arch cpu"
case "$with_arch" in
"" | "m68k"| "cf")
@ -3027,7 +2713,7 @@ case "${target}" in
esac
;;
hppa*-*-* | parisc*-*-*)
hppa*-*-*)
supported_defaults="arch schedule"
case "$with_arch" in
@ -3131,25 +2817,6 @@ case "${target}" in
esac
;;
mt-*-*)
supported_defaults="arch"
case "$with_arch" in
"" \
| ms1-64-001 \
| ms1-16-002 \
| ms1-16-003 \
| ms2 \
| "")
# OK
;;
*)
echo "Unknown arch used in --with-arch=$with_arch" 1>&2
exit 1
;;
esac
;;
powerpc*-*-* | rs6000-*-*)
supported_defaults="cpu float tune"
@ -3307,7 +2974,7 @@ case ${target} in
fi
;;
hppa*-*-* | parisc*-*-*)
hppa*-*-*)
target_cpu_default2="MASK_BIG_SWITCH"
if test x$gas = xyes
then
@ -3315,7 +2982,7 @@ case ${target} in
fi
;;
fido*-*-* | m680[012]0-*-* | m68k*-*-*)
fido*-*-* | m68k*-*-*)
target_cpu_default2=$m68k_cpu_ident
if [ x"$m68k_arch_family" != x ]; then
tmake_file="m68k/t-$m68k_arch_family $tmake_file"

View File

@ -1,2 +0,0 @@
# This file is empty for now.

View File

@ -1,438 +0,0 @@
/* Definitions of target machine for GNU compiler, for DEC Alpha on Cray
T3E running Unicos/Mk.
Copyright (C) 2001, 2002, 2004, 2005, 2007
Free Software Foundation, Inc.
Contributed by Roman Lechtchinsky (rl@cs.tu-berlin.de)
This file is part of GCC.
GCC is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 3, or (at your option)
any later version.
GCC is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with GCC; see the file COPYING3. If not see
<http://www.gnu.org/licenses/>. */
#undef TARGET_ABI_UNICOSMK
#define TARGET_ABI_UNICOSMK 1
/* CAM requires a slash before floating-pointing instruction suffixes. */
#undef TARGET_AS_SLASH_BEFORE_SUFFIX
#define TARGET_AS_SLASH_BEFORE_SUFFIX 1
/* The following defines are necessary for the standard headers to work
correctly. */
#define TARGET_OS_CPP_BUILTINS() \
do { \
builtin_define ("__unix"); \
builtin_define ("_UNICOS=205"); \
builtin_define ("_CRAY"); \
builtin_define ("_CRAYT3E"); \
builtin_define ("_CRAYMPP"); \
builtin_define ("_CRAYIEEE"); \
builtin_define ("_ADDR64"); \
builtin_define ("_LD64"); \
builtin_define ("__UNICOSMK__"); \
} while (0)
#define SHORT_TYPE_SIZE 32
#undef INT_TYPE_SIZE
#define INT_TYPE_SIZE 64
/* This is consistent with the definition Cray CC uses. */
#undef WCHAR_TYPE
#define WCHAR_TYPE "int"
#undef WCHAR_TYPE_SIZE
#define WCHAR_TYPE_SIZE 64
/*
#define SIZE_TYPE "unsigned int"
#define PTRDIFF_TYPE "int"
*/
/* Alphas are operated in big endian mode on the Cray T3E. */
#undef BITS_BIG_ENDIAN
#undef BYTES_BIG_ENDIAN
#undef WORDS_BIG_ENDIAN
#define BITS_BIG_ENDIAN 0
#define BYTES_BIG_ENDIAN 1
#define WORDS_BIG_ENDIAN 1
/* Every structure's size must be a multiple of this. */
#undef STRUCTURE_SIZE_BOUNDARY
#define STRUCTURE_SIZE_BOUNDARY 64
/* No data type wants to be aligned rounder than this. */
#undef BIGGEST_ALIGNMENT
#define BIGGEST_ALIGNMENT 256
/* Include the frame pointer in fixed_regs and call_used_regs as it can't be
used as a general-purpose register even in frameless functions.
??? The global_regs hack is needed for now because -O2 sometimes tries to
eliminate $15 increments/decrements in frameless functions. */
#undef CONDITIONAL_REGISTER_USAGE
#define CONDITIONAL_REGISTER_USAGE \
do { \
fixed_regs[15] = 1; \
call_used_regs[15] = 1; \
global_regs[15] = 1; \
} while(0)
/* The stack frame grows downward. */
#define FRAME_GROWS_DOWNWARD 1
/* Define the offset between two registers, one to be eliminated, and the
other its replacement, at the start of a routine. This is somewhat
complicated on the T3E which is why we use a function. */
#undef INITIAL_ELIMINATION_OFFSET
#define INITIAL_ELIMINATION_OFFSET(FROM, TO, OFFSET) \
do { \
(OFFSET) = unicosmk_initial_elimination_offset ((FROM), (TO)); \
} while (0)
/* Define this if stack space is still allocated for a parameter passed
in a register. On the T3E, stack space is preallocated for all outgoing
arguments, including those passed in registers. To avoid problems, we
assume that at least 48 bytes (i.e. enough space for all arguments passed
in registers) are allocated. */
#define REG_PARM_STACK_SPACE(DECL) 48
#define OUTGOING_REG_PARM_STACK_SPACE(FNTYPE) 1
/* If an argument can't be passed in registers even though not all argument
registers have been used yet, it is passed on the stack in the space
preallocated for these registers. */
#define STACK_PARMS_IN_REG_PARM_AREA
/* Define a data type for recording info about an argument list
during the scan of that argument list. This data type should
hold all necessary information about the function itself
and about the args processed so far, enough to enable macros
such as FUNCTION_ARG to determine where the next arg should go.
On Unicos/Mk, this is a structure that contains various information for
the static subroutine information block (SSIB) and the call information
word (CIW). */
typedef struct {
/* The overall number of arguments. */
int num_args;
/* The overall size of the arguments in words. */
int num_arg_words;
/* The number of words passed in registers. */
int num_reg_words;
/* If an argument must be passed in the stack, all subsequent arguments
must be passed there, too. This flag indicates whether this is the
case. */
int force_stack;
/* This array indicates whether a word is passed in an integer register or
a floating point one. */
/* For each of the 6 register arguments, the corresponding flag in this
array indicates whether the argument is passed in an integer or a
floating point register. */
int reg_args_type[6];
} unicosmk_arg_info;
#undef CUMULATIVE_ARGS
#define CUMULATIVE_ARGS unicosmk_arg_info
/* Initialize a variable CUM of type CUMULATIVE_ARGS for a call to a
function whose data type is FNTYPE. For a library call, FNTYPE is 0. */
#undef INIT_CUMULATIVE_ARGS
#define INIT_CUMULATIVE_ARGS(CUM, FNTYPE, LIBNAME, INDIRECT, N_NAMED_ARGS) \
do { (CUM).num_args = 0; \
(CUM).num_arg_words = 0; \
(CUM).num_reg_words = 0; \
(CUM).force_stack = 0; \
} while(0)
/* Update the data in CUM to advance over an argument of mode MODE and data
type TYPE. (TYPE is null for libcalls where that information may not be
available.)
On Unicos/Mk, at most 6 words can be passed in registers. Structures
which fit in two words are passed in registers, larger structures are
passed on stack. */
#undef FUNCTION_ARG_ADVANCE
#define FUNCTION_ARG_ADVANCE(CUM, MODE, TYPE, NAMED) \
do { \
int size; \
\
size = ALPHA_ARG_SIZE (MODE, TYPE, NAMED); \
\
if (size > 2 \
|| (CUM).num_reg_words + size > 6 \
|| targetm.calls.must_pass_in_stack (MODE, TYPE)) \
(CUM).force_stack = 1; \
\
if (! (CUM).force_stack) \
{ \
int i; \
int isfloat; \
isfloat = (GET_MODE_CLASS (MODE) == MODE_COMPLEX_FLOAT \
|| GET_MODE_CLASS (MODE) == MODE_FLOAT); \
for (i = 0; i < size; i++) \
{ \
(CUM).reg_args_type[(CUM).num_reg_words] = isfloat; \
++(CUM).num_reg_words; \
} \
} \
(CUM).num_arg_words += size; \
++(CUM).num_args; \
} while(0)
/* This ensures that $15 increments/decrements in leaf functions won't get
eliminated. */
#undef EPILOGUE_USES
#define EPILOGUE_USES(REGNO) ((REGNO) == 26 || (REGNO) == 15)
/* Would have worked, only the stack doesn't seem to be executable
#undef TRAMPOLINE_TEMPLATE
#define TRAMPOLINE_TEMPLATE(FILE) \
do { fprintf (FILE, "\tbr $1,0\n"); \
fprintf (FILE, "\tldq $0,12($1)\n"); \
fprintf (FILE, "\tldq $1,20($1)\n"); \
fprintf (FILE, "\tjmp $31,(r0)\n"); \
fprintf (FILE, "\tbis $31,$31,$31\n"); \
fprintf (FILE, "\tbis $31,$31,$31\n"); \
} while (0) */
/* We don't support nested functions (yet). */
#undef TRAMPOLINE_TEMPLATE
#define TRAMPOLINE_TEMPLATE(FILE) gcc_unreachable ()
/* Specify the machine mode that this machine uses for the index in the
tablejump instruction. On Unicos/Mk, we don't support relative case
vectors yet, thus the entries should be absolute addresses. */
#undef CASE_VECTOR_MODE
#define CASE_VECTOR_MODE DImode
#undef CASE_VECTOR_PC_RELATIVE
/* Define this as 1 if `char' should by default be signed; else as 0. */
/* #define DEFAULT_SIGNED_CHAR 1 */
/* There are no read-only sections on Unicos/Mk. */
#undef READONLY_DATA_SECTION_ASM_OP
/* We take care of this in unicosmk_file_start. */
#undef ASM_OUTPUT_SOURCE_FILENAME
/* This is how to output a label for a jump table. Arguments are the same as
for (*targetm.asm_out.internal_label), except the insn for the jump table is
passed. */
#undef ASM_OUTPUT_CASE_LABEL
#define ASM_OUTPUT_CASE_LABEL(FILE,PREFIX,NUM,TABLEINSN) \
(*targetm.asm_out.internal_label) (FILE, PREFIX, NUM)
/* CAM has some restrictions with respect to string literals. It won't
accept lines with more that 256 characters which means that we have
to split long strings. Moreover, it only accepts escape sequences of
the form \nnn in the range 0 to 127. We generate .byte directives for
escapes characters greater than 127. And finally, ` must be escaped. */
#undef ASM_OUTPUT_ASCII
#define ASM_OUTPUT_ASCII(MYFILE, MYSTRING, MYLENGTH) \
do { \
FILE *_hide_asm_out_file = (MYFILE); \
const unsigned char *_hide_p = (const unsigned char *) (MYSTRING); \
int _hide_thissize = (MYLENGTH); \
int _size_so_far = 0; \
{ \
FILE *asm_out_file = _hide_asm_out_file; \
const unsigned char *p = _hide_p; \
int thissize = _hide_thissize; \
int in_ascii = 0; \
int i; \
\
for (i = 0; i < thissize; i++) \
{ \
register int c = p[i]; \
\
if (c > 127) \
{ \
if (in_ascii) \
{ \
fprintf (asm_out_file, "\"\n"); \
in_ascii = 0; \
} \
\
fprintf (asm_out_file, "\t.byte\t%d\n", c); \
} \
else \
{ \
if (! in_ascii) \
{ \
fprintf (asm_out_file, "\t.ascii\t\""); \
in_ascii = 1; \
_size_so_far = 0; \
} \
else if (_size_so_far >= 64) \
{ \
fprintf (asm_out_file, "\"\n\t.ascii\t\""); \
_size_so_far = 0; \
} \
\
if (c == '\"' || c == '\\' || c == '`') \
putc ('\\', asm_out_file); \
if (c >= ' ') \
putc (c, asm_out_file); \
else \
fprintf (asm_out_file, "\\%.3o", c); \
++ _size_so_far; \
} \
} \
if (in_ascii) \
fprintf (asm_out_file, "\"\n"); \
} \
} while(0)
/* This is how to output an element of a case-vector that is absolute. */
#undef ASM_OUTPUT_ADDR_VEC_ELT
#define ASM_OUTPUT_ADDR_VEC_ELT(FILE, VALUE) \
fprintf (FILE, "\t.quad $L%d\n", (VALUE))
/* This is how to output an element of a case-vector that is relative.
(Unicos/Mk does not use such vectors yet). */
#undef ASM_OUTPUT_ADDR_DIFF_ELT
#define ASM_OUTPUT_ADDR_DIFF_ELT(FILE, BODY, VALUE, REL) gcc_unreachable ()
/* We can't output case vectors in the same section as the function code
because CAM doesn't allow data definitions in code sections. Thus, we
simply record the case vectors and put them in a separate section after
the function. */
#define ASM_OUTPUT_ADDR_VEC(LAB,VEC) \
unicosmk_defer_case_vector ((LAB),(VEC))
#define ASM_OUTPUT_ADDR_DIFF_VEC(LAB,VEC) gcc_unreachable ()
/* This is how to output an assembler line that says to advance the location
counter to a multiple of 2**LOG bytes. Annoyingly, CAM always uses zeroes
to fill the unused space which does not work in code sections. We have to
be careful not to use the .align directive in code sections. */
#undef ASM_OUTPUT_ALIGN
#define ASM_OUTPUT_ALIGN(STREAM,LOG) unicosmk_output_align (STREAM, LOG)
/* This is how to advance the location counter by SIZE bytes. */
#undef ASM_OUTPUT_SKIP
#define ASM_OUTPUT_SKIP(STREAM,SIZE) \
fprintf ((STREAM), "\t.byte\t0:"HOST_WIDE_INT_PRINT_UNSIGNED"\n",\
(SIZE));
/* This says how to output an assembler line to define a global common
symbol. We need the alignment information because it has to be supplied
in the section header. */
#undef ASM_OUTPUT_COMMON
#define ASM_OUTPUT_ALIGNED_COMMON(FILE, NAME, SIZE, ALIGN) \
unicosmk_output_common ((FILE), (NAME), (SIZE), (ALIGN))
/* This says how to output an assembler line to define a local symbol. */
#undef ASM_OUTPUT_LOCAL
#define ASM_OUTPUT_ALIGNED_LOCAL(FILE, NAME, SIZE, ALIGN) \
do { switch_to_section (data_section); \
fprintf (FILE, "\t.align\t%d\n", floor_log2 ((ALIGN) / BITS_PER_UNIT));\
ASM_OUTPUT_LABEL ((FILE), (NAME)); \
fprintf (FILE, "\t.byte 0:"HOST_WIDE_INT_PRINT_UNSIGNED"\n",(SIZE));\
} while (0)
/* CAM does not allow us to declare a symbol as external first and then
define it in the same file later. Thus, we keep a list of all external
references, remove all symbols defined locally from it and output it at
the end of the asm file. */
#define ASM_OUTPUT_EXTERNAL(FILE,DECL,NAME) \
unicosmk_add_extern ((NAME))
#define ASM_OUTPUT_EXTERNAL_LIBCALL(STREAM,SYMREF) \
unicosmk_add_extern (XSTR ((SYMREF), 0))
/* This is how to declare an object. We don't have to output anything if
it is a global variable because those go into unique `common' sections
and the section name is globally visible. For local variables, we simply
output the label. In any case, we have to record that no extern
declaration should be generated for the symbol. */
#define ASM_DECLARE_OBJECT_NAME(STREAM,NAME,DECL) \
do { tree name_tree; \
name_tree = get_identifier ((NAME)); \
TREE_ASM_WRITTEN (name_tree) = 1; \
if (!TREE_PUBLIC (DECL)) \
{ \
assemble_name (STREAM, NAME); \
fputs (":\n", STREAM); \
} \
} while(0)
/* Switch into a generic section. */
#define TARGET_ASM_NAMED_SECTION unicosmk_asm_named_section
#define TARGET_ASM_INIT_SECTIONS unicosmk_init_sections
#undef ASM_OUTPUT_MAX_SKIP_ALIGN
#define ASM_OUTPUT_MAX_SKIP_ALIGN(STREAM,POWER,MAXSKIP)
#undef NM_FLAGS
#undef OBJECT_FORMAT_COFF
/* We cannot generate debugging information on Unicos/Mk. */
#undef SDB_DEBUGGING_INFO
#undef MIPS_DEBUGGING_INFO
#undef DBX_DEBUGGING_INFO
#undef DWARF2_DEBUGGING_INFO
#undef DWARF2_UNWIND_INFO
#undef INCOMING_RETURN_ADDR_RTX
#undef PREFERRED_DEBUGGING_TYPE
/* We don't need a start file. */
#undef STARTFILE_SPEC
#define STARTFILE_SPEC ""
/* These are the libraries we have to link with.
??? The Craylibs directory should be autoconfed. */
#undef LIB_SPEC
#define LIB_SPEC "-L/opt/ctl/craylibs/craylibs -lu -lm -lc -lsma"
#define EH_FRAME_IN_DATA_SECTION 1

View File

@ -1,23 +0,0 @@
/* Definitions of target machine for GNU compiler.
kaOS on arm architecture version.
Copyright (C) 2003, 2007 Free Software Foundation, Inc.
This file is part of GCC.
GCC is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 3, or (at your option)
any later version.
GCC is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with GCC; see the file COPYING3. If not see
<http://www.gnu.org/licenses/>. */
#undef TARGET_VERSION
#define TARGET_VERSION fputs (" (ARM/kaOS[ELF])", stderr);

View File

@ -1,23 +0,0 @@
/* Definitions of target machine for GNU compiler.
kaOS on strongarm architecture version.
Copyright (C) 2003, 2007 Free Software Foundation, Inc.
This file is part of GCC.
GCC is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 3, or (at your option)
any later version.
GCC is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with GCC; see the file COPYING3. If not see
<http://www.gnu.org/licenses/>. */
#undef TARGET_VERSION
#define TARGET_VERSION fputs (" (StrongARM/kaOS[ELF])", stderr);

View File

@ -1,27 +0,0 @@
/* Definitions for StrongARM systems using COFF
Copyright (C) 1999, 2007 Free Software Foundation, Inc.
Contributed by Catherine Moore <clm@cygnus.com>
This file is part of GCC.
GCC is free software; you can redistribute it and/or modify it
under the terms of the GNU General Public License as published
by the Free Software Foundation; either version 3, or (at your
option) any later version.
GCC is distributed in the hope that it will be useful, but WITHOUT
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public
License for more details.
You should have received a copy of the GNU General Public License
along with GCC; see the file COPYING3. If not see
<http://www.gnu.org/licenses/>. */
/* Run-time Target Specification. */
#ifndef SUBTARGET_CPU_DEFAULT
#define SUBTARGET_CPU_DEFAULT TARGET_CPU_strongarm
#endif
#undef TARGET_VERSION
#define TARGET_VERSION fputs (" (StrongARM/COFF)", stderr);

View File

@ -1,29 +0,0 @@
/* Definitions for non-Linux based StrongARM systems using ELF
Copyright (C) 1999, 2001, 2007 Free Software Foundation, Inc.
Contributed by Catherine Moore <clm@cygnus.com>
This file is part of GCC.
GCC is free software; you can redistribute it and/or modify it
under the terms of the GNU General Public License as published
by the Free Software Foundation; either version 3, or (at your
option) any later version.
GCC is distributed in the hope that it will be useful, but WITHOUT
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public
License for more details.
You should have received a copy of the GNU General Public License
along with GCC; see the file COPYING3. If not see
<http://www.gnu.org/licenses/>. */
/* Run-time Target Specification. */
#ifndef TARGET_VERSION
#define TARGET_VERSION fputs (" (StrongARM/ELF non-Linux)", stderr);
#endif
#ifndef SUBTARGET_CPU_DEFAULT
#define SUBTARGET_CPU_DEFAULT TARGET_CPU_strongarm
#endif

View File

@ -1,22 +0,0 @@
/* Definitions of target machine for GNU compiler, for ARM with PE obj format.
Copyright (C) 1999, 2007 Free Software Foundation, Inc.
Contributed by Doug Evans (dje@cygnus.com).
This file is part of GCC.
GCC is free software; you can redistribute it and/or modify it
under the terms of the GNU General Public License as published
by the Free Software Foundation; either version 3, or (at your
option) any later version.
GCC is distributed in the hope that it will be useful, but WITHOUT
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public
License for more details.
You should have received a copy of the GNU General Public License
along with GCC; see the file COPYING3. If not see
<http://www.gnu.org/licenses/>. */
#undef TARGET_VERSION
#define TARGET_VERSION fputs (" (StrongARM/PE)", stderr);

View File

@ -1,38 +0,0 @@
LIB1ASMSRC = arm/lib1funcs.asm
LIB1ASMFUNCS = _udivsi3 _divsi3 _umodsi3 _modsi3 _dvmd_tls _bb_init_func
# We want fine grained libraries, so use the new code to build the
# floating point emulation libraries.
FPBIT = fp-bit.c
DPBIT = dp-bit.c
fp-bit.c: $(srcdir)/config/fp-bit.c
echo '#define FLOAT' > fp-bit.c
echo '#ifndef __ARMEB__' >> fp-bit.c
echo '#define FLOAT_BIT_ORDER_MISMATCH' >> fp-bit.c
echo '#endif' >> fp-bit.c
cat $(srcdir)/config/fp-bit.c >> fp-bit.c
dp-bit.c: $(srcdir)/config/fp-bit.c
echo '#ifndef __ARMEB__' > dp-bit.c
echo '#define FLOAT_BIT_ORDER_MISMATCH' >> dp-bit.c
echo '#define FLOAT_WORD_ORDER_MISMATCH' >> dp-bit.c
echo '#endif' >> dp-bit.c
cat $(srcdir)/config/fp-bit.c >> dp-bit.c
pe.o: $(srcdir)/config/arm/pe.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) \
$(RTL_H) output.h flags.h $(TREE_H) expr.h toplev.h $(TM_P_H)
$(CC) -c $(ALL_CFLAGS) $(ALL_CPPFLAGS) $(INCLUDES) $(srcdir)/config/arm/pe.c
MULTILIB_OPTIONS = mhard-float/msoft-float
MULTILIB_DIRNAMES = fpu soft
MULTILIB_MATCHES =
EXTRA_MULTILIB_PARTS = crtbegin.o crtend.o
LIBGCC = stmp-multilib
INSTALL_LIBGCC = install-multilib
# Currently there is a bug somewhere in GCC's alias analysis
# or scheduling code that is breaking _fpmul_parts in fp-bit.c.
# Disabling function inlining is a workaround for this problem.
TARGET_LIBGCC2_CFLAGS = -fno-inline

View File

@ -1,45 +0,0 @@
LIB1ASMSRC = arm/lib1funcs.asm
LIB1ASMFUNCS = _udivsi3 _divsi3 _umodsi3 _modsi3 _dvmd_tls _bb_init_func _call_via_rX _interwork_call_via_rX
# We want fine grained libraries, so use the new code to build the
# floating point emulation libraries.
FPBIT = fp-bit.c
DPBIT = dp-bit.c
fp-bit.c: $(srcdir)/config/fp-bit.c
echo '#define FLOAT' > fp-bit.c
echo '#ifndef __ARMEB__' >> fp-bit.c
echo '#define FLOAT_BIT_ORDER_MISMATCH' >> fp-bit.c
echo '#endif' >> fp-bit.c
cat $(srcdir)/config/fp-bit.c >> fp-bit.c
dp-bit.c: $(srcdir)/config/fp-bit.c
echo '#ifndef __ARMEB__' > dp-bit.c
echo '#define FLOAT_BIT_ORDER_MISMATCH' >> dp-bit.c
echo '#define FLOAT_WORD_ORDER_MISMATCH' >> dp-bit.c
echo '#endif' >> dp-bit.c
cat $(srcdir)/config/fp-bit.c >> dp-bit.c
MULTILIB_OPTIONS = mbig-endian
MULTILIB_DIRNAMES = be
MULTILIB_EXCEPTIONS =
MULTILIB_MATCHES = mbig-endian=mbe mlittle-endian=mle
# Note XScale does not support hard FP
MULTILIB_OPTIONS += mthumb-interwork
MULTILIB_DIRNAMES += interwork
MULTILIB_OPTIONS += mthumb
MULTILIB_DIRNAMES += thumb
MULTILIB_EXCEPTIONS += *mhard-float/*mthumb*
MULTILIB_REDUNDANT_DIRS = interwork/thumb=thumb
LIBGCC = stmp-multilib
INSTALL_LIBGCC = install-multilib
# Currently there is a bug somewhere in GCC's alias analysis
# or scheduling code that is breaking _fpmul_parts in fp-bit.c.
# Disabling function inlining is a workaround for this problem.
TARGET_LIBGCC2_CFLAGS = -fno-inline

View File

@ -1,66 +0,0 @@
LIB1ASMSRC = arm/lib1funcs.asm
LIB1ASMFUNCS = _udivsi3 _divsi3 _umodsi3 _modsi3 _dvmd_tls _bb_init_func _call_via_rX _interwork_call_via_rX
# We want fine grained libraries, so use the new code to build the
# floating point emulation libraries.
FPBIT = fp-bit.c
DPBIT = dp-bit.c
fp-bit.c: $(srcdir)/config/fp-bit.c
echo '#define FLOAT' > fp-bit.c
echo '#ifndef __ARMEB__' >> fp-bit.c
echo '#define FLOAT_BIT_ORDER_MISMATCH' >> fp-bit.c
echo '#endif' >> fp-bit.c
cat $(srcdir)/config/fp-bit.c >> fp-bit.c
dp-bit.c: $(srcdir)/config/fp-bit.c
echo '#ifndef __ARMEB__' > dp-bit.c
echo '#define FLOAT_BIT_ORDER_MISMATCH' >> dp-bit.c
echo '#define FLOAT_WORD_ORDER_MISMATCH' >> dp-bit.c
echo '#endif' >> dp-bit.c
cat $(srcdir)/config/fp-bit.c >> dp-bit.c
MULTILIB_OPTIONS = mbig-endian
MULTILIB_DIRNAMES = be
MULTILIB_EXCEPTIONS =
MULTILIB_MATCHES = mbig-endian=mbe mlittle-endian=mle
# Note XScale does not support hard FP
MULTILIB_OPTIONS += mthumb-interwork
MULTILIB_DIRNAMES += interwork
MULTILIB_OPTIONS += mthumb
MULTILIB_DIRNAMES += thumb
MULTILIB_EXCEPTIONS += *mhard-float/*mthumb*
MULTILIB_REDUNDANT_DIRS = interwork/thumb=thumb
# The iWMMXt multilibs are suppressed for now because gcc only
# supports generating them with the IWMMXT or AAPCS ABIs, neither of
# which is the default. Until GCC can generate code for an iWMMXt
# which will work with the default ABI it is not possible to safely
# generate these multilibs.
#
# MULTILIB_OPTIONS += mcpu=iwmmxt
# MULTILIB_DIRNAMES += iwmmxt
# MULTILIB_REDUNDANT_DIRS += interwork/thumb/iwmmxt=thumb
EXTRA_MULTILIB_PARTS = crtbegin.o crtend.o crti.o crtn.o
LIBGCC = stmp-multilib
INSTALL_LIBGCC = install-multilib
# Currently there is a bug somewhere in GCC's alias analysis
# or scheduling code that is breaking _fpmul_parts in fp-bit.c.
# Disabling function inlining is a workaround for this problem.
TARGET_LIBGCC2_CFLAGS = -fno-inline
# Assemble startup files.
$(T)crti.o: $(srcdir)/config/arm/crti.asm $(GCC_PASSES)
$(GCC_FOR_TARGET) $(GCC_CFLAGS) $(MULTILIB_CFLAGS) $(INCLUDES) \
-c -o $(T)crti.o -x assembler-with-cpp $(srcdir)/config/arm/crti.asm
$(T)crtn.o: $(srcdir)/config/arm/crtn.asm $(GCC_PASSES)
$(GCC_FOR_TARGET) $(GCC_CFLAGS) $(MULTILIB_CFLAGS) $(INCLUDES) \
-c -o $(T)crtn.o -x assembler-with-cpp $(srcdir)/config/arm/crtn.asm

View File

@ -1,33 +0,0 @@
/* Definitions for XScale systems using COFF
Copyright (C) 1999, 2000, 2001, 2007 Free Software Foundation, Inc.
Contributed by Catherine Moore <clm@cygnus.com>
This file is part of GCC.
GCC is free software; you can redistribute it and/or modify it
under the terms of the GNU General Public License as published
by the Free Software Foundation; either version 3, or (at your
option) any later version.
GCC is distributed in the hope that it will be useful, but WITHOUT
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public
License for more details.
You should have received a copy of the GNU General Public License
along with GCC; see the file COPYING3. If not see
<http://www.gnu.org/licenses/>. */
/* Run-time Target Specification. */
#undef SUBTARGET_CPU_DEFAULT
#define SUBTARGET_CPU_DEFAULT TARGET_CPU_xscale
#undef SUBTARGET_EXTRA_ASM_SPEC
#define SUBTARGET_EXTRA_ASM_SPEC "%{!mcpu=*:-mcpu=xscale}"
#undef MULTILIB_DEFAULTS
#define MULTILIB_DEFAULTS \
{ "mlittle-endian", "mno-thumb-interwork", "marm" }
#undef TARGET_VERSION
#define TARGET_VERSION fputs (" (XScale/COFF)", stderr);

View File

@ -1,58 +0,0 @@
/* Definitions for XScale architectures using ELF
Copyright (C) 1999, 2000, 2001, 2007 Free Software Foundation, Inc.
Contributed by Catherine Moore <clm@cygnus.com>
This file is part of GCC.
GCC is free software; you can redistribute it and/or modify it
under the terms of the GNU General Public License as published
by the Free Software Foundation; either version 3, or (at your
option) any later version.
GCC is distributed in the hope that it will be useful, but WITHOUT
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public
License for more details.
You should have received a copy of the GNU General Public License
along with GCC; see the file COPYING3. If not see
<http://www.gnu.org/licenses/>. */
/* Run-time Target Specification. */
#ifndef TARGET_VERSION
#define TARGET_VERSION fputs (" (XScale/ELF non-Linux)", stderr);
#endif
#ifndef SUBTARGET_CPU_DEFAULT
#define SUBTARGET_CPU_DEFAULT TARGET_CPU_xscale
#endif
/* Note - there are three possible -mfpu= arguments that can be passed to
the assembler:
-mfpu=softvfp This is the default. It indicates thats doubles are
stored in a format compatible with the VFP
specification. This is the newer double format, whereby
the endian-ness of the doubles matches the endian-ness
of the memory architecture.
-mfpu=fpa This is when -mhard-float is specified.
[It is not known if any XScale's have been made with
hardware floating point support, but nevertheless this
is what happens].
-mfpu=softfpa This is when -msoft-float is specified.
This is the normal behavior of other arm configurations,
which for backwards compatibility purposes default to
supporting the old FPA format which was always big
endian, regardless of the endian-ness of the memory
system. */
#define SUBTARGET_EXTRA_ASM_SPEC "%{!mcpu=*:-mcpu=xscale} \
%{mhard-float:-mfpu=fpa} \
%{!mhard-float: %{msoft-float:-mfpu=softfpa;:-mfpu=softvfp}}"
#ifndef MULTILIB_DEFAULTS
#define MULTILIB_DEFAULTS \
{ "mlittle-endian", "mno-thumb-interwork", "marm", "msoft-float" }
#endif

View File

@ -1,40 +0,0 @@
/* Definitions of target machine for GNU compiler.
Sun Chorus OS big-endian
Copyright (c) 2001, 2007 Free Software Foundation, Inc.
This file is part of GCC.
GCC is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 3, or (at your option)
any later version.
GCC is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with GCC; see the file COPYING3. If not see
<http://www.gnu.org/licenses/>. */
#define DWARF2_DEBUGGING_INFO 1
#undef PREFERRED_DEBUGGING_TYPE
#define PREFERRED_DEBUGGING_TYPE DWARF2_DEBUG
#undef TARGET_VERSION
#define TARGET_VERSION fprintf (stderr, " (Sun Chorus OS Embedded)");
#undef SIZE_TYPE
#define SIZE_TYPE "unsigned int"
#undef PTRDIFF_TYPE
#define PTRDIFF_TYPE "int"
/* Type used for wchar_t, as a string used in a declaration. */
#undef WCHAR_TYPE
#define WCHAR_TYPE "int"
#undef LINK_SPEC
#define LINK_SPEC ""

View File

@ -1,391 +0,0 @@
/* Definitions for GCC. Part of the machine description for CRIS.
Copyright (C) 2001, 2002, 2003, 2004, 2005, 2007 Free Software Foundation, Inc.
Contributed by Axis Communications. Written by Hans-Peter Nilsson.
This file is part of GCC.
GCC is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 3, or (at your option)
any later version.
GCC is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with GCC; see the file COPYING3. If not see
<http://www.gnu.org/licenses/>. */
/* After the first "Node:" comment comes all preprocessor directives and
attached declarations described in the info files, the "Using and
Porting GCC" manual (uapgcc), in the same order as found in the "Target
macros" section in the gcc-2.9x CVS edition of 2000-03-17. FIXME: Not
really, but needs an update anyway.
There is no generic copy-of-uapgcc comment, you'll have to see uapgcc
for that. If applicable, there is a CRIS-specific comment. The order
of macro definitions follow the order in the manual. Every section in
the manual (node in the info pages) has an introductory `Node:
<subchapter>' comment. If no macros are defined for a section, only
the section-comment is present. */
/* This file defines the macros for a.out that are not covered by cris.h.
Many macros are copied from elfos.h and should be in some generic
config/gas-aout.h. */
/* Node: Driver */
#undef STARTFILE_SPEC
#define STARTFILE_SPEC \
"%{melinux:crt0.o%s}\
%{!melinux:%{sim*:crt1.o%s}%{!sim*:crt0.o%s}}"
/* Override cris.h define. */
#undef ENDFILE_SPEC
#undef CRIS_CPP_SUBTARGET_SPEC
#define CRIS_CPP_SUBTARGET_SPEC \
"%{melinux:-D__gnu_linux__ -D__linux__ -D__unix__ -D__elinux__ -D__uclinux__\
%{!ansi:%{!std=*:%{!undef:-Dlinux -Dunix -Delinux -Duclinux}}}}\
%{mbest-lib-options:\
%{!moverride-best-lib-options:\
%{!march=*:%{!metrax*:%{!mcpu=*:-D__tune_v8 -D__CRIS_arch_tune=8}}}}}"
#undef CRIS_CC1_SUBTARGET_SPEC
#define CRIS_CC1_SUBTARGET_SPEC \
"%{mbest-lib-options:\
%{!moverride-best-lib-options:\
%{!march=*:%{!mcpu=*:-mtune=v8}}}}"
#undef CRIS_ASM_SUBTARGET_SPEC
#define CRIS_ASM_SUBTARGET_SPEC "--em=crisaout"
#undef CRIS_LINK_SUBTARGET_SPEC
#define CRIS_LINK_SUBTARGET_SPEC \
"-mcrisaout\
%{sim2:%{!T*:-Tdata 0x4000000 -Tbss 0x8000000}}\
%{melinux:-Ur -d\
%{!shlib:%{!symbolic:-Bstatic}}\
%{shlib:-Bdynamic}\
%{symbolic:-Bdynamic}\
%{static:-Bstatic}}\
%{melinux-stacksize=*:-defsym __Stacksize=%*}"
/* Previously controlled by target_flags. */
#undef TARGET_ELF
#define TARGET_ELF 0
#undef CRIS_SUBTARGET_HANDLE_OPTION
#define CRIS_SUBTARGET_HANDLE_OPTION(CODE, ARG, VALUE) \
do \
{ \
switch (CODE) \
{ \
case OPT_melinux: \
target_flags \
|= (MASK_SVINTO \
+ MASK_STACK_ALIGN \
+ MASK_CONST_ALIGN \
+ MASK_DATA_ALIGN \
+ MASK_ETRAX4_ADD \
+ MASK_ALIGN_BY_32); \
break; \
\
default: \
break; \
} \
} \
while (0)
#undef CRIS_SUBTARGET_DEFAULT
#define CRIS_SUBTARGET_DEFAULT 0
/* Node: Run-time Target */
/* For the cris-*-aout subtarget. */
#undef TARGET_OS_CPP_BUILTINS
#define TARGET_OS_CPP_BUILTINS() \
do \
{ \
builtin_define ("__AOUT__"); \
} \
while (0)
/* Node: Storage Layout */
/* All sections but the .bss is rounded up to a 4-byte multiple size. */
#define MAX_OFILE_ALIGNMENT 32
/* Node: Data Output */
#define ESCAPES \
"\1\1\1\1\1\1\1\1btn\1fr\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\
\0\0\"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\
\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\\\0\0\0\
\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\1\
\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\
\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\
\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\
\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1\1"
/* Some svr4 assemblers have a limit on the number of characters which
can appear in the operand of a .string directive. If your assembler
has such a limitation, you should define STRING_LIMIT to reflect that
limit. Note that at least some svr4 assemblers have a limit on the
actual number of bytes in the double-quoted string, and that they
count each character in an escape sequence as one byte. Thus, an
escape sequence like \377 would count as four bytes.
If your target assembler doesn't support the .string directive, you
should define this to zero. */
#define STRING_LIMIT ((unsigned) 256)
#define STRING_ASM_OP "\t.string\t"
#define ASCII_DATA_ASM_OP "\t.ascii\t"
#define TYPE_ASM_OP "\t.type\t"
#define SIZE_ASM_OP "\t.size\t"
#define TYPE_OPERAND_FMT "@%s"
/* The routine used to output NUL terminated strings. We use a special
version of this for most svr4 targets because doing so makes the
generated assembly code more compact (and thus faster to assemble)
as well as more readable, especially for targets like the i386
(where the only alternative is to output character sequences as
comma separated lists of numbers). */
#define ASM_OUTPUT_LIMITED_STRING(FILE, STR) \
do \
{ \
register const unsigned char *_limited_str = \
(const unsigned char *) (STR); \
register unsigned ch; \
\
fprintf ((FILE), "%s\"", STRING_ASM_OP); \
\
for (; (ch = *_limited_str); _limited_str++) \
{ \
register int escape; \
\
switch (escape = ESCAPES[ch]) \
{ \
case 0: \
putc (ch, (FILE)); \
break; \
case 1: \
fprintf ((FILE), "\\%03o", ch); \
break; \
default: \
putc ('\\', (FILE)); \
putc (escape, (FILE)); \
break; \
} \
} \
\
fprintf ((FILE), "\"\n"); \
} \
while (0)
/* The routine used to output sequences of byte values. We use a special
version of this for most svr4 targets because doing so makes the
generated assembly code more compact (and thus faster to assemble)
as well as more readable. Note that if we find subparts of the
character sequence which end with NUL (and which are shorter than
STRING_LIMIT) we output those using ASM_OUTPUT_LIMITED_STRING. */
#undef ASM_OUTPUT_ASCII
#define ASM_OUTPUT_ASCII(FILE, STR, LENGTH) \
do \
{ \
register const unsigned char *_ascii_bytes = \
(const unsigned char *) (STR); \
register const unsigned char *limit = _ascii_bytes + (LENGTH); \
register unsigned bytes_in_chunk = 0; \
\
for (; _ascii_bytes < limit; _ascii_bytes++) \
{ \
register const unsigned char *p; \
\
if (bytes_in_chunk >= 60) \
{ \
fprintf ((FILE), "\"\n"); \
bytes_in_chunk = 0; \
} \
\
for (p = _ascii_bytes; p < limit && *p != '\0'; p++) \
continue; \
\
if (p < limit && (p - _ascii_bytes) <= (long)STRING_LIMIT) \
{ \
if (bytes_in_chunk > 0) \
{ \
fprintf ((FILE), "\"\n"); \
bytes_in_chunk = 0; \
} \
\
ASM_OUTPUT_LIMITED_STRING ((FILE), _ascii_bytes); \
_ascii_bytes = p; \
} \
else \
{ \
register int escape; \
register unsigned ch; \
\
if (bytes_in_chunk == 0) \
fprintf ((FILE), "%s\"", ASCII_DATA_ASM_OP); \
\
switch (escape = ESCAPES[ch = *_ascii_bytes]) \
{ \
case 0: \
putc (ch, (FILE)); \
bytes_in_chunk++; \
break; \
case 1: \
fprintf ((FILE), "\\%03o", ch); \
bytes_in_chunk += 4; \
break; \
default: \
putc ('\\', (FILE)); \
putc (escape, (FILE)); \
bytes_in_chunk += 2; \
break; \
} \
} \
} \
\
if (bytes_in_chunk > 0) \
fprintf ((FILE), "\"\n"); \
} \
while (0)
/* Node: Label Output */
#define SET_ASM_OP "\t.set\t"
#define ASM_OUTPUT_EXTERNAL_LIBCALL(FILE, FUN) \
(*targetm.asm_out.globalize_label) (FILE, XSTR (FUN, 0))
#define ASM_WEAKEN_LABEL(FILE, NAME) \
do \
{ \
fputs ("\t.weak\t", (FILE)); \
assemble_name ((FILE), (NAME)); \
fputc ('\n', (FILE)); \
} \
while (0)
#define ASM_DECLARE_FUNCTION_NAME(FILE, NAME, DECL) \
do \
{ \
ASM_OUTPUT_TYPE_DIRECTIVE (FILE, NAME, "function"); \
ASM_OUTPUT_LABEL(FILE, NAME); \
} \
while (0)
#define ASM_DECLARE_OBJECT_NAME(FILE, NAME, DECL) \
do \
{ \
HOST_WIDE_INT size; \
\
ASM_OUTPUT_TYPE_DIRECTIVE (FILE, NAME, "object"); \
\
size_directive_output = 0; \
if (!flag_inhibit_size_directive \
&& (DECL) && DECL_SIZE (DECL)) \
{ \
size_directive_output = 1; \
size = int_size_in_bytes (TREE_TYPE (DECL)); \
ASM_OUTPUT_SIZE_DIRECTIVE (FILE, NAME, size); \
} \
\
ASM_OUTPUT_LABEL (FILE, NAME); \
} \
while (0)
#undef ASM_FINISH_DECLARE_OBJECT
#define ASM_FINISH_DECLARE_OBJECT(FILE, DECL, TOP_LEVEL, AT_END)\
do \
{ \
const char *name = XSTR (XEXP (DECL_RTL (DECL), 0), 0); \
HOST_WIDE_INT size; \
\
if (!flag_inhibit_size_directive \
&& DECL_SIZE (DECL) \
&& ! AT_END && TOP_LEVEL \
&& DECL_INITIAL (DECL) == error_mark_node \
&& !size_directive_output) \
{ \
size_directive_output = 1; \
size = int_size_in_bytes (TREE_TYPE (DECL)); \
ASM_OUTPUT_SIZE_DIRECTIVE (FILE, name, size); \
} \
} \
while (0)
#define ASM_DECLARE_FUNCTION_SIZE(FILE, FNAME, DECL) \
do \
{ \
if (!flag_inhibit_size_directive) \
ASM_OUTPUT_MEASURED_SIZE (FILE, FNAME); \
} \
while (0)
/* The configure machinery invokes the assembler without options, which is
not how gcc invokes it. Without options, the multi-target assembler
will probably be found, which is ELF by default. To counter that, we
need to override ELF auto-host.h config stuff which we know collides
with a.out. */
#undef HAVE_GAS_HIDDEN
/* Node: Alignment Output */
#define SKIP_ASM_OP "\t.zero\t"
#undef ASM_OUTPUT_SKIP
#define ASM_OUTPUT_SKIP(FILE, SIZE) \
fprintf (FILE, "%s%u\n", SKIP_ASM_OP, (int)(SIZE))
/* Node: All Debuggers */
#define PREFERRED_DEBUGGING_TYPE DBX_DEBUG
/* Node: Misc */
#define HANDLE_SYSV_PRAGMA 1
/* In theory, this one isn't necessary, but over time, external tools have
been primed on names with "." rather than "$". */
#define NO_DOLLAR_IN_LABEL
/* These are undocumented, but to keep a single
CRIS_ASM_OUTPUT_ALIGNED_DECL_COMMON, we set this to an asm that will
emit an error if ever output. It will not be emitted for a.out modulo
careless hacking. */
#define COMMON_ASM_OP "\t.err\t"
#define LOCAL_ASM_OP "\t.err\t"
#if defined(__CRIS__) && defined (__AOUT__) && defined (IN_GCC)
#define CRIS_ABI_VERSION_SYMBOL_STRING ".$CRIS_ABI_V2"
/* Make all a.out library functions have undefined references to the
.$CRIS_ABI_V2 symbol, so it will be picked up. Used by GDB. GDB has
a bug with reading a.out symbols; it does not see the GNU weak
extensions, so we can't have .$CRIS_ABI_V2 weak. Weak. */
__asm__ (".set .$abi_referer," CRIS_ABI_VERSION_SYMBOL_STRING);
#endif
/*
* Local variables:
* eval: (c-set-style "gnu")
* indent-tabs-mode: t
* End:
*/

View File

@ -1,33 +0,0 @@
; a.out-specific options for the CRIS port of the compiler.
; Copyright (C) 2005, 2007 Free Software Foundation, Inc.
;
; This file is part of GCC.
;
; GCC is free software; you can redistribute it and/or modify it under
; the terms of the GNU General Public License as published by the Free
; Software Foundation; either version 3, or (at your option) any later
; version.
;
; GCC is distributed in the hope that it will be useful, but WITHOUT ANY
; WARRANTY; without even the implied warranty of MERCHANTABILITY or
; FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
; for more details.
;
; You should have received a copy of the GNU General Public License
; along with GCC; see the file COPYING3. If not see
; <http://www.gnu.org/licenses/>.
; Legacy option.
maout
Target Report RejectNegative Undocumented
melinux
Target Report RejectNegative
Compile for the MMU-less Etrax 100-based elinux system
;; We don't parse it currently; it's just passed on to the linker.
;; We might want to do something here someday.
melinux-stacksize=
Target Report RejectNegative Joined Var(cris_elinux_stacksize_str)
-melinux-stacksize=SIZE For elinux, request a specified stack-size for this program

View File

@ -1,12 +0,0 @@
LIB2FUNCS_STATIC_EXTRA = \
tmpabi_symbol.c $(srcdir)/config/cris/mulsi3.asm
MULTILIB_OPTIONS = melinux
MULTILIB_DIRNAMES = elinux
MULTILIB_EXTRA_OPTS = mbest-lib-options
INSTALL_LIBGCC = install-multilib
LIBGCC = stmp-multilib
tmpabi_symbol.c: $(srcdir)/config/cris/cris_abi_symbol.c
cp $(srcdir)/config/cris/cris_abi_symbol.c $@

View File

@ -1,234 +0,0 @@
/* Definitions for Intel x86 running BeOS
Copyright (C) 1998, 1999, 2000, 2001, 2002, 2004, 2007
Free Software Foundation, Inc.
This file is part of GCC.
GCC is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 3, or (at your option)
any later version.
GCC is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with GCC; see the file COPYING3. If not see
<http://www.gnu.org/licenses/>. */
#define TARGET_VERSION fprintf (stderr, " (i386 BeOS/ELF)");
/* Change debugging to Dwarf2. */
#undef PREFERRED_DEBUGGING_TYPE
#define PREFERRED_DEBUGGING_TYPE DWARF2_DEBUG
/* The SVR4 ABI for the i386 says that records and unions are returned
in memory. */
#undef DEFAULT_PCC_STRUCT_RETURN
#define DEFAULT_PCC_STRUCT_RETURN 1
#undef ASM_COMMENT_START
#define ASM_COMMENT_START " #"
#undef DBX_REGISTER_NUMBER
#define DBX_REGISTER_NUMBER(n) \
(TARGET_64BIT ? dbx64_register_map[n] : svr4_dbx_register_map[n])
/* Output assembler code to FILE to increment profiler label # LABELNO
for profiling a function entry. */
#undef MCOUNT_NAME
#define MCOUNT_NAME "mcount"
#undef SIZE_TYPE
#define SIZE_TYPE "long unsigned int"
#undef PTRDIFF_TYPE
#define PTRDIFF_TYPE "long int"
#undef WCHAR_TYPE
#define WCHAR_TYPE "short unsigned int"
#undef WCHAR_TYPE_SIZE
#define WCHAR_TYPE_SIZE 16
#define TARGET_DECLSPEC 1
#define TARGET_OS_CPP_BUILTINS() \
do \
{ \
builtin_define ("__BEOS__"); \
builtin_define ("__INTEL__"); \
builtin_define ("_X86_"); \
builtin_define ("__stdcall=__attribute__((__stdcall__))"); \
builtin_define ("__cdecl=__attribute__((__cdecl__))"); \
builtin_assert ("system=beos"); \
} \
while (0)
/* BeOS uses lots of multichars, so don't warn about them unless the
user explicitly asks for the warnings with -Wmultichar. Note that
CC1_SPEC is used for both cc1 and cc1plus. */
#undef CC1_SPEC
#define CC1_SPEC "%{!no-fpic:%{!fno-pic:%{!fno-pie:%{!fpie:%{!fPIC:%{!fPIE:-fpic}}}}}} %{!Wmultichar: -Wno-multichar} %(cc1_cpu) %{profile:-p}"
#undef CC1PLUS_SPEC
#define CC1PLUS_SPEC "%{!Wctor-dtor-privacy:-Wno-ctor-dtor-privacy}"
/* Provide a LINK_SPEC appropriate for BeOS. Here we provide support
for the special GCC options -static and -shared, which allow us to
link things in one of these three modes by applying the appropriate
combinations of options at link-time. */
/* If ELF is the default format, we should not use /lib/elf. */
#undef LINK_SPEC
#define LINK_SPEC "%{!o*:-o %b} -m elf_i386_be -shared -Bsymbolic %{nostart:-e 0}"
/* Provide start and end file specs appropriate to glibc. */
/* LIB_SPEC for BeOS */
#undef LIB_SPEC
#define LIB_SPEC "-lnet -lroot"
/* gcc runtime lib is built into libroot.so on BeOS */
/* ??? This is gonna be lovely when the next release of gcc has
some new symbol in, so that links start failing. */
#undef LIBGCC_SPEC
#define LIBGCC_SPEC ""
#undef STARTFILE_SPEC
#define STARTFILE_SPEC "crti.o%s crtbegin.o%s %{!nostart:start_dyn.o%s} init_term_dyn.o%s %{p:i386-mcount.o%s}"
#undef ENDFILE_SPEC
#define ENDFILE_SPEC "crtend.o%s crtn.o%s"
/* A C statement (sans semicolon) to output to the stdio stream
FILE the assembler definition of uninitialized global DECL named
NAME whose size is SIZE bytes and alignment is ALIGN bytes.
Try to use asm_output_aligned_bss to implement this macro. */
#define ASM_OUTPUT_ALIGNED_BSS(FILE, DECL, NAME, SIZE, ALIGN) \
asm_output_aligned_bss (FILE, DECL, NAME, SIZE, ALIGN)
/* A C statement to output to the stdio stream FILE an assembler
command to advance the location counter to a multiple of 1<<LOG
bytes if it is within MAX_SKIP bytes.
This is used to align code labels according to Intel recommendations. */
#ifdef HAVE_GAS_MAX_SKIP_P2ALIGN
#define ASM_OUTPUT_MAX_SKIP_ALIGN(FILE,LOG,MAX_SKIP) \
if ((LOG)!=0) \
if ((MAX_SKIP)==0) fprintf ((FILE), "\t.p2align %d\n", (LOG)); \
else fprintf ((FILE), "\t.p2align %d,,%d\n", (LOG), (MAX_SKIP))
#endif
/* For native compiler, use standard BeOS include file search paths
rooted in /boot/develop/headers. For a cross compiler, don't
expect the host to use the BeOS directory scheme, and instead look
for the BeOS include files relative to TOOL_INCLUDE_DIR. Yes, we
use ANSI string concatenation here (FIXME) */
#ifndef CROSS_DIRECTORY_STRUCTURE
#undef INCLUDE_DEFAULTS
#define INCLUDE_DEFAULTS \
{ \
{ GPLUSPLUS_INCLUDE_DIR, "G++", 1, 1 },\
{ GCC_INCLUDE_DIR, "GCC", 0, 0 },\
{ TOOL_INCLUDE_DIR, "BINUTILS", 0, 1}, \
{ "/boot/develop/headers/be/add-ons/graphics", 0, 0, 0 },\
{ "/boot/develop/headers/be/devel", 0, 0, 0 },\
{ "/boot/develop/headers/be/translation", 0, 0, 0 },\
{ "/boot/develop/headers/be/mail", 0, 0, 0 },\
{ "/boot/develop/headers/gnu", 0, 0, 0 },\
{ "/boot/develop/headers/be/drivers", 0, 0, 0 },\
{ "/boot/develop/headers/be/opengl", 0, 0, 0 },\
{ "/boot/develop/headers/be/game", 0, 0, 0 },\
{ "/boot/develop/headers/be/support", 0, 0, 0 },\
{ "/boot/develop/headers/be/storage", 0, 0, 0 },\
{ "/boot/develop/headers/be/kernel", 0, 0, 0 },\
{ "/boot/develop/headers/be/net", 0, 0, 0 },\
{ "/boot/develop/headers/be/midi", 0, 0, 0 },\
{ "/boot/develop/headers/be/midi2", 0, 0, 0 },\
{ "/boot/develop/headers/be/media", 0, 0, 0 },\
{ "/boot/develop/headers/be/interface", 0, 0, 0 },\
{ "/boot/develop/headers/be/device", 0, 0, 0 },\
{ "/boot/develop/headers/be/app", 0, 0, 0 },\
{ "/boot/develop/headers/be/precompiled", 0, 0, 0 },\
{ "/boot/develop/headers/be/add-ons/input_server", 0, 0, 0 },\
{ "/boot/develop/headers/be/add-ons/net_server", 0, 0, 0 },\
{ "/boot/develop/headers/be/add-ons/screen_saver", 0, 0, 0 },\
{ "/boot/develop/headers/be/add-ons/tracker", 0, 0, 0 },\
{ "/boot/develop/headers/be/be_apps/Deskbar", 0, 0, 0 },\
{ "/boot/develop/headers/be/be_apps/NetPositive", 0, 0, 0 },\
{ "/boot/develop/headers/be/be_apps/Tracker", 0, 0, 0 },\
{ "/boot/develop/headers/be/drivers/tty", 0, 0, 0 },\
{ "/boot/develop/headers/be/net/netinet", 0, 0, 0 },\
{ "/boot/develop/headers/be/storage", 0, 0, 0 },\
{ "/boot/develop/headers/be", 0, 0, 0 },\
{ "/boot/develop/headers/cpp", 0, 0, 0 },\
{ "/boot/develop/headers/posix", 0, 0, 0 },\
{ "/boot/develop/headers", 0, 0, 0 }, \
{ 0, 0, 0, 0 } \
}
#else /* CROSS_DIRECTORY_STRUCTURE */
#undef INCLUDE_DEFAULTS
#define INCLUDE_DEFAULTS \
{ \
{ GPLUSPLUS_INCLUDE_DIR, "G++", 1, 1 },\
{ GCC_INCLUDE_DIR, "GCC", 0, 0 },\
{ TOOL_INCLUDE_DIR, "BINUTILS", 0, 1}, \
{ CROSS_INCLUDE_DIR "/be/add-ons/graphics", 0, 0, 0 },\
{ CROSS_INCLUDE_DIR "/be/devel", 0, 0, 0 },\
{ CROSS_INCLUDE_DIR "/be/translation", 0, 0, 0 },\
{ CROSS_INCLUDE_DIR "/be/mail", 0, 0, 0 },\
{ CROSS_INCLUDE_DIR "/gnu", 0, 0, 0 },\
{ CROSS_INCLUDE_DIR "/be/drivers", 0, 0, 0 },\
{ CROSS_INCLUDE_DIR "/be/opengl", 0, 0, 0 },\
{ CROSS_INCLUDE_DIR "/be/game", 0, 0, 0 },\
{ CROSS_INCLUDE_DIR "/be/support", 0, 0, 0 },\
{ CROSS_INCLUDE_DIR "/be/storage", 0, 0, 0 },\
{ CROSS_INCLUDE_DIR "/be/kernel", 0, 0, 0 },\
{ CROSS_INCLUDE_DIR "/be/net", 0, 0, 0 },\
{ CROSS_INCLUDE_DIR "/be/midi", 0, 0, 0 },\
{ CROSS_INCLUDE_DIR "/be/midi2", 0, 0, 0 },\
{ CROSS_INCLUDE_DIR "/be/media", 0, 0, 0 },\
{ CROSS_INCLUDE_DIR "/be/interface", 0, 0, 0 },\
{ CROSS_INCLUDE_DIR "/be/device", 0, 0, 0 },\
{ CROSS_INCLUDE_DIR "/be/app", 0, 0, 0 },\
{ CROSS_INCLUDE_DIR "/be/precompiled", 0, 0, 0 },\
{ CROSS_INCLUDE_DIR "/be/add-ons/input_server", 0, 0, 0 },\
{ CROSS_INCLUDE_DIR "/be/add-ons/net_server", 0, 0, 0 },\
{ CROSS_INCLUDE_DIR "/be/add-ons/screen_saver", 0, 0, 0 },\
{ CROSS_INCLUDE_DIR "/be/add-ons/tracker", 0, 0, 0 },\
{ CROSS_INCLUDE_DIR "/be/be_apps/Deskbar", 0, 0, 0 },\
{ CROSS_INCLUDE_DIR "/be/be_apps/NetPositive", 0, 0, 0 },\
{ CROSS_INCLUDE_DIR "/be/be_apps/Tracker", 0, 0, 0 },\
{ CROSS_INCLUDE_DIR "/be/drivers/tty", 0, 0, 0 },\
{ CROSS_INCLUDE_DIR "/be/net/netinet", 0, 0, 0 },\
{ CROSS_INCLUDE_DIR "/be/storage", 0, 0, 0 },\
{ CROSS_INCLUDE_DIR "/be", 0, 0, 0 },\
{ CROSS_INCLUDE_DIR "/cpp", 0, 0, 0 },\
{ CROSS_INCLUDE_DIR "/posix", 0, 0, 0 },\
{ CROSS_INCLUDE_DIR , 0, 0, 0 }, \
{ 0, 0, 0, 0 } \
}
#endif
/* Whee. LIBRARY_PATH is Be's LD_LIBRARY_PATH, which of course will
cause nasty problems if we override it. */
#define LIBRARY_PATH_ENV "BELIBRARIES"
/* BeOS doesn't have a separate math library. */
#define MATH_LIBRARY ""
/* BeOS headers are C++-aware (and often use C++). */
#define NO_IMPLICIT_EXTERN_C
/* BeOS uses explicit import from shared libraries. */
#define MULTIPLE_SYMBOL_SPACES 1

View File

@ -1,23 +0,0 @@
/* Definitions of target machine for GCC.
kaOS on ia32 architecture version.
Copyright (C) 2003, 2007 Free Software Foundation, Inc.
This file is part of GCC.
GCC is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 3, or (at your option)
any later version.
GCC is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with GCC; see the file COPYING3. If not see
<http://www.gnu.org/licenses/>. */
#undef TARGET_VERSION
#define TARGET_VERSION fputs (" (i386/kaOS[ELF])", stderr);

View File

@ -1,95 +0,0 @@
/* Target definitions for GCC for Intel 80386 running Dynix/ptx v4
Copyright (C) 1996, 2002, 2007 Free Software Foundation, Inc.
Modified from sysv4.h
Originally written by Ron Guilmette (rfg@netcom.com).
Modified by Tim Wright (timw@sequent.com).
This file is part of GCC.
GCC is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 3, or (at your option)
any later version.
GCC is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with GCC; see the file COPYING3. If not see
<http://www.gnu.org/licenses/>. */
#define TARGET_VERSION fprintf (stderr, " (i386 Sequent Dynix/ptx Version 4)");
/* The svr4 ABI for the i386 says that records and unions are returned
in memory. */
#define SUBTARGET_RETURN_IN_MEMORY(TYPE, FNTYPE) \
(TYPE_MODE (TYPE) == BLKmode \
|| (VECTOR_MODE_P (TYPE_MODE (TYPE)) && int_size_in_bytes (TYPE) == 8));
#define TARGET_OS_CPP_BUILTINS() \
do \
{ \
builtin_define_std ("unix"); \
builtin_define ("_SEQUENT_"); \
builtin_assert ("system=unix"); \
builtin_assert ("system=ptx4"); \
} \
while (0)
#undef DBX_REGISTER_NUMBER
#define DBX_REGISTER_NUMBER(n) svr4_dbx_register_map[n]
/* The routine used to output sequences of byte values. We use a special
version of this for most svr4 targets because doing so makes the
generated assembly code more compact (and thus faster to assemble)
as well as more readable. Note that if we find subparts of the
character sequence which end with NUL (and which are shorter than
STRING_LIMIT) we output those using ASM_OUTPUT_LIMITED_STRING. */
#undef ASM_OUTPUT_ASCII
#define ASM_OUTPUT_ASCII(FILE, STR, LENGTH) \
do \
{ \
const unsigned char *_ascii_bytes = \
(const unsigned char *) (STR); \
const unsigned char *limit = _ascii_bytes + (LENGTH); \
unsigned bytes_in_chunk = 0; \
for (; _ascii_bytes < limit; _ascii_bytes++) \
{ \
const unsigned char *p; \
if (bytes_in_chunk >= 64) \
{ \
fputc ('\n', (FILE)); \
bytes_in_chunk = 0; \
} \
for (p = _ascii_bytes; p < limit && *p != '\0'; p++) \
continue; \
if (p < limit && (p - _ascii_bytes) <= (long) STRING_LIMIT) \
{ \
if (bytes_in_chunk > 0) \
{ \
fputc ('\n', (FILE)); \
bytes_in_chunk = 0; \
} \
ASM_OUTPUT_LIMITED_STRING ((FILE), _ascii_bytes); \
_ascii_bytes = p; \
} \
else \
{ \
if (bytes_in_chunk == 0) \
fprintf ((FILE), "\t.byte\t"); \
else \
fputc (',', (FILE)); \
fprintf ((FILE), "0x%02x", *_ascii_bytes); \
bytes_in_chunk += 5; \
} \
} \
if (bytes_in_chunk > 0) \
fprintf ((FILE), "\n"); \
} \
while (0)

View File

@ -1,311 +0,0 @@
/* Definitions for Intel 386 running SCO Unix System V 3.2 Version 5.
Copyright (C) 1992, 1995, 1996, 1997, 1998, 1999, 2000, 2002, 2003, 2004,
2007 Free Software Foundation, Inc.
Contributed by Kean Johnston (jkj@sco.com)
This file is part of GCC.
GCC is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 3, or (at your option)
any later version.
GCC is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with GCC; see the file COPYING3. If not see
<http://www.gnu.org/licenses/>. */
#undef TARGET_VERSION
#define TARGET_VERSION fprintf (stderr, " (i386, SCO OpenServer 5 Syntax)");
#undef ASM_QUAD
#undef GLOBAL_ASM_OP
#define GLOBAL_ASM_OP "\t.globl\t"
#undef BSS_SECTION_ASM_OP
#define BSS_SECTION_ASM_OP "\t.section\t.bss, \"aw\", @nobits"
/*
* NOTE: We really do want CTORS_SECTION_ASM_OP and DTORS_SECTION_ASM_OP.
* Here's the reason why. If we dont define them, and we dont define them
* to always emit to the same section, the default is to emit to "named"
* ctors and dtors sections. This would be great if we could use GNU ld,
* but we can't. The native linker could possibly be trained to coalesce
* named ctors sections, but that hasn't been done either. So if we don't
* define these, many C++ ctors and dtors dont get run, because they never
* wind up in the ctors/dtors arrays.
*/
#define CTORS_SECTION_ASM_OP "\t.section\t.ctors, \"aw\""
#define DTORS_SECTION_ASM_OP "\t.section\t.dtors, \"aw\""
#define TARGET_ASM_FILE_START_FILE_DIRECTIVE true
#undef X86_FILE_START_VERSION_DIRECTIVE
#define X86_FILE_START_VERSION_DIRECTIVE true
/* A C statement (sans semicolon) to output to the stdio stream
FILE the assembler definition of uninitialized global DECL named
NAME whose size is SIZE bytes and alignment is ALIGN bytes.
Try to use asm_output_aligned_bss to implement this macro. */
#define ASM_OUTPUT_ALIGNED_BSS(FILE, DECL, NAME, SIZE, ALIGN) \
asm_output_aligned_bss (FILE, DECL, NAME, SIZE, ALIGN)
#undef DBX_REGISTER_NUMBER
#define DBX_REGISTER_NUMBER(n) svr4_dbx_register_map[n]
#define DWARF2_DEBUGGING_INFO 1
#define DBX_DEBUGGING_INFO 1
#undef PREFERRED_DEBUGGING_TYPE
#define PREFERRED_DEBUGGING_TYPE DWARF2_DEBUG
#undef DWARF2_UNWIND_INFO
#define DWARF2_UNWIND_INFO 1
#undef NO_IMPLICIT_EXTERN_C
#define NO_IMPLICIT_EXTERN_C 1
#undef SWITCH_TAKES_ARG
#define SWITCH_TAKES_ARG(CHAR) \
(DEFAULT_SWITCH_TAKES_ARG(CHAR) \
|| (CHAR) == 'h' \
|| (CHAR) == 'R' \
|| (CHAR) == 'Y' \
|| (CHAR) == 'z')
#undef WORD_SWITCH_TAKES_ARG
#define WORD_SWITCH_TAKES_ARG(STR) \
(DEFAULT_WORD_SWITCH_TAKES_ARG (STR) \
&& strcmp (STR, "Tdata") && strcmp (STR, "Ttext") \
&& strcmp (STR, "Tbss"))
#undef TARGET_SUBTARGET_DEFAULT
#define TARGET_SUBTARGET_DEFAULT (MASK_80387 | MASK_IEEE_FP | MASK_FLOAT_RETURNS)
/*
* Define sizes and types
*/
#undef SIZE_TYPE
#undef PTRDIFF_TYPE
#undef WCHAR_TYPE
#undef WCHAR_TYPE_SIZE
#undef WINT_TYPE
#define SIZE_TYPE "unsigned int"
#define PTRDIFF_TYPE "int"
#define WCHAR_TYPE "long int"
#define WCHAR_TYPE_SIZE BITS_PER_WORD
#define WINT_TYPE "long int"
/*
* New for multilib support. Set the default switches for multilib,
* which is -melf.
*/
#define MULTILIB_DEFAULTS { "melf" }
/* Please note that these specs may look messy but they are required in
order to emulate the SCO Development system as closely as possible.
With SCO Open Server 5.0, you now get the linker and assembler free,
so that is what these specs are targeted for. These utilities are
very argument sensitive: a space in the wrong place breaks everything.
So please forgive this mess. It works.
Parameters which can be passed to gcc, and their SCO equivalents:
GCC Parameter SCO Equivalent
-ansi -a ansi
-posix -a posix
-Xpg4 -a xpg4
-Xpg4plus -a xpg4plus
-Xods30 -a ods30
As with SCO, the default is XPG4 plus mode. SCO also allows you to
specify a C dialect with -Xt, -Xa, -Xc, -Xk and -Xm. These are passed
on to the assembler and linker in the same way that the SCO compiler
does.
SCO also allows you to compile, link and generate either ELF or COFF
binaries. With gcc, we now only support ELF mode.
GCC also requires that the user has installed OSS646, the Execution
Environment Update, or is running release 5.0.7 or later. This has
many fixes to the ELF link editor and assembler, and a considerably
improved libc and RTLD.
In terms of tool usage, we want to use the standard link editor always,
and either the GNU assembler or the native assembler. With OSS646 the
native assembler has grown up quite a bit. Some of the specs below
assume that /usr/gnu is the prefix for the GNU tools, because thats
where the SCO provided ones go. This is especially important for
include and library search path ordering. We want to look in /usr/gnu
first because frequently people are linking against -lintl, and they
MEAN to link with gettext. What they get is the SCO intl library. Its
a REAL pity that GNU gettext chose that name; perhaps in a future
version they can be persuaded to change it to -lgnuintl and have a
link so that -lintl will work for other systems. The same goes for
header files. We want /usr/gnu/include searched for before the system
header files. Hence the -isystem /usr/gnu/include in the CPP_SPEC.
We get /usr/gnu/lib first by virtue of the MD_STARTFILE_PREFIX below.
*/
#define MD_STARTFILE_PREFIX "/usr/gnu/lib/"
#define MD_STARTFILE_PREFIX_1 "/usr/ccs/lib/"
#if USE_GAS
# define MD_EXEC_PREFIX "/usr/gnu/bin/"
#else
# define MD_EXEC_PREFIX "/usr/ccs/bin/elf/"
#endif
/* Always use the system linker, please. */
#ifndef DEFAULT_LINKER
# define DEFAULT_LINKER "/usr/ccs/bin/elf/ld"
#endif
/* Set up assembler flags for PIC and ELF compilations */
#undef ASM_SPEC
#if USE_GAS
/* Leave ASM_SPEC undefined so we pick up the master copy from gcc.c */
#else
#define ASM_SPEC \
"%{Ym,*} %{Yd,*} %{Wa,*:%*} \
-E%{Xa:a}%{!Xa:%{Xc:c}%{!Xc:%{Xk:k}%{!Xk:%{Xt:t}%{!Xt:a}}}},%{ansi:ansi}%{!ansi:%{posix:posix}%{!posix:%{Xpg4:xpg4}%{!Xpg4:%{Xpg4plus:XPG4PLUS}%{!Xpg4plus:%{Xods30:ods30}%{!Xods30:XPG4PLUS}}}}},ELF %{Qn:} %{!Qy:-Qn}"
#endif
/*
* Use crti.o for shared objects, crt1.o for normal executables. Make sure
* to recognize both -G and -shared as a valid way of introducing shared
* library generation. This is important for backwards compatibility.
*/
#undef STARTFILE_SPEC
#define STARTFILE_SPEC \
"%{pg:%e-pg not supported on this platform} \
%{p:%{pp:%e-p and -pp specified - pick one}} \
%{!shared:\
%{!symbolic: \
%{!G: \
%{pp:pcrt1elf.o%s}%{p:mcrt1.o%s}%{!p:%{!pp:crt1.o%s}}}}} \
crti.o%s \
%{ansi:values-Xc.o%s} \
%{!ansi: \
%{traditional:values-Xt.o%s} \
%{!traditional: \
%{Xa:values-Xa.o%s} \
%{!Xa:%{Xc:values-Xc.o%s} \
%{!Xc:%{Xk:values-Xk.o%s} \
%{!Xk:%{Xt:values-Xt.o%s} \
%{!Xt:values-Xa.o%s}}}}}} \
crtbegin.o%s"
#undef ENDFILE_SPEC
#define ENDFILE_SPEC \
"crtend.o%s crtn.o%s"
#define TARGET_OS_CPP_BUILTINS() \
do \
{ \
builtin_define ("__unix"); \
builtin_define ("_SCO_DS"); \
builtin_define ("_SCO_DS_LL"); \
builtin_define ("_SCO_ELF"); \
builtin_define ("_M_I386"); \
builtin_define ("_M_XENIX"); \
builtin_define ("_M_UNIX"); \
builtin_assert ("system=svr3"); \
if (flag_iso) \
cpp_define (pfile, "_STRICT_ANSI"); \
} \
while (0)
#undef CPP_SPEC
#define CPP_SPEC "\
-isystem /usr/gnu/include \
%{!Xods30:-D_STRICT_NAMES} \
%{!ansi:%{!posix:%{!Xods30:-D_SCO_XPG_VERS=4}}} \
%{ansi:-isystem include/ansi%s -isystem /usr/include/ansi} \
%{!ansi: \
%{posix:-isystem include/posix%s -isystem /usr/include/posix \
-D_POSIX_C_SOURCE=2 -D_POSIX_SOURCE=1} \
%{!posix:%{Xpg4:-isystem include/xpg4%s -isystem /usr/include/xpg4 \
-D_XOPEN_SOURCE=1} \
%{!Xpg4:-D_M_I86 -D_M_I86SM -D_M_INTERNAT -D_M_SDATA -D_M_STEXT \
-D_M_BITFIELDS -D_M_SYS5 -D_M_SYSV -D_M_SYSIII \
-D_M_WORDSWAP -Dunix -DM_I386 -DM_UNIX -DM_XENIX \
%{Xods30:-isystem include/ods_30_compat%s \
-isystem /usr/include/ods_30_compat \
-D_SCO_ODS_30 -DM_I86 -DM_I86SM -DM_SDATA -DM_STEXT \
-DM_BITFIELDS -DM_SYS5 -DM_SYSV -DM_INTERNAT -DM_SYSIII \
-DM_WORDSWAP}}}} \
%{scointl:-DM_INTERNAT -D_M_INTERNAT} \
%{Xa:-D_SCO_C_DIALECT=1} \
%{!Xa:%{Xc:-D_SCO_C_DIALECT=3} \
%{!Xc:%{Xk:-D_SCO_C_DIALECT=4} \
%{!Xk:%{Xt:-D_SCO_C_DIALECT=2} \
%{!Xt:-D_SCO_C_DIALECT=1}}}}"
#undef LINK_SPEC
#define LINK_SPEC \
"%{!shared:%{!symbolic:%{!G:-E%{Xa:a}%{!Xa:%{Xc:c}%{!Xc:%{Xk:k}%{!Xk:%{Xt:t}%{!Xt:a}}}},%{ansi:ansi}%{!ansi:%{posix:posix}%{!posix:%{Xpg4:xpg4}%{!Xpg4:%{Xpg4plus:XPG4PLUS}%{!Xpg4plus:%{Xods30:ods30}%{!Xods30:XPG4PLUS}}}}},ELF}}} \
%{YP,*} %{YL,*} %{YU,*} \
%{!YP,*:%{p:-YP,/usr/ccs/libp:/lib/libp:/usr/lib/libp:/usr/ccs/lib:/lib:/usr/lib} \
%{!p:-YP,/usr/ccs/lib:/lib:/usr/lib}} \
%{h*} %{static:-dn -Bstatic %{G:%e-G and -static are mutually exclusive}} \
%{shared:%{!G:-G}} %{G:%{!shared:-G}} %{shared:%{G:-G}} \
%{shared:-dy %{symbolic:-Bsymbolic -G} %{z*}} %{R*} %{Y*} \
%{Qn:} %{!Qy:-Qn} -z alt_resolve"
/* Library spec. If we are not building a shared library, provide the
standard libraries, as per the SCO compiler. */
#undef LIB_SPEC
#define LIB_SPEC \
"%{shared:%{!G:pic/libgcc.a%s}} \
%{G:%{!shared:pic/libgcc.a%s}} \
%{shared:%{G:pic/libgcc.a%s}} \
%{p:%{!pp:-lelfprof -lelf}} %{pp:%{!p:-lelfprof -lelf}} \
%{!shared:%{!symbolic:%{!G:-lcrypt -lgen -lc}}}"
#undef LIBGCC_SPEC
#define LIBGCC_SPEC \
"%{!shared:%{!G:-lgcc}}"
/* Handle special EH pointer encodings. Absolute, pc-relative, and
indirect are handled automatically. */
#define ASM_MAYBE_OUTPUT_ENCODED_ADDR_RTX(FILE, ENCODING, SIZE, ADDR, DONE) \
do { \
if ((SIZE) == 4 && ((ENCODING) & 0x70) == DW_EH_PE_datarel) \
{ \
fputs (ASM_LONG, FILE); \
assemble_name (FILE, XSTR (ADDR, 0)); \
fputs (((ENCODING) & DW_EH_PE_indirect ? "@GOT" : "@GOTOFF"), FILE); \
goto DONE; \
} \
} while (0)
/* Used by crtstuff.c to initialize the base of data-relative relocations.
These are GOT relative on x86, so return the pic register. */
#ifdef __PIC__
#define CRT_GET_RFIB_DATA(BASE) \
{ \
register void *ebx_ __asm__("ebx"); \
BASE = ebx_; \
}
#else
#define CRT_GET_RFIB_DATA(BASE) \
__asm__ ("call\t.LPR%=\n" \
".LPR%=:\n\t" \
"pop{l}\t%0\n\t" \
/* Due to a GAS bug, this cannot use EAX. That encodes \
smaller than the traditional EBX, which results in the \
offset being off by one. */ \
"add{l}\t{$_GLOBAL_OFFSET_TABLE_+[.-.LPR%=],%0" \
"|%0,_GLOBAL_OFFSET_TABLE_+(.-.LPR%=)}" \
: "=d"(BASE))
#endif

View File

@ -1,24 +0,0 @@
; SCO Unix-specific options.
; Copyright (C) 2005, 2007 Free Software Foundation, Inc.
;
; This file is part of GCC.
;
; GCC is free software; you can redistribute it and/or modify it under
; the terms of the GNU General Public License as published by the Free
; Software Foundation; either version 3, or (at your option) any later
; version.
;
; GCC is distributed in the hope that it will be useful, but WITHOUT ANY
; WARRANTY; without even the implied warranty of MERCHANTABILITY or
; FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
; for more details.
;
; You should have received a copy of the GNU General Public License
; along with GCC; see the file COPYING3. If not see
; <http://www.gnu.org/licenses/>.
;; Legacy option
melf
Target RejectNegative
Generate ELF output

View File

@ -1,31 +0,0 @@
/* Target definitions for GCC for Intel 80386 running System V.4
Copyright (C) 1991, 2001, 2002, 2007 Free Software Foundation, Inc.
Written by Ron Guilmette (rfg@netcom.com).
This file is part of GCC.
GCC is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 3, or (at your option)
any later version.
GCC is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with GCC; see the file COPYING3. If not see
<http://www.gnu.org/licenses/>. */
#define TARGET_OS_CPP_BUILTINS() \
do \
{ \
builtin_define_std ("unix"); \
builtin_define ("__svr4__"); \
builtin_assert ("system=unix"); \
builtin_assert ("system=svr4"); \
} \
while (0)

View File

@ -1,33 +0,0 @@
/* Definitions for Intel 386 running System V Release 5 (i.e. UnixWare 7)
Copyright (C) 1999, 2007 Free Software Foundation, Inc.
Contributed by Robert Lipe (robertlipe@usa.net)
This file is part of GCC.
GCC is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 3, or (at your option)
any later version.
GCC is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with GCC; see the file COPYING3. If not see
<http://www.gnu.org/licenses/>. */
/* Dwarf2 is supported by native debuggers */
#undef PREFERRED_DEBUGGING_TYPE
#define PREFERRED_DEBUGGING_TYPE DWARF2_DEBUG
/* Add -lcrt for Dwarf2 abbreviation table */
#undef LIB_SPEC
#define LIB_SPEC "%{pthread:-lthread} %{pthreadT:-lthreadT} \
%{!shared:%{!symbolic:-lc -lcrt}}"
#undef CPP_SPEC
#define CPP_SPEC "%{pthread:-D_REENTRANT} %{pthreadT:-D_REENTRANT}"

View File

@ -1,4 +0,0 @@
# There are system headers elsewhere, but these are the ones that
# we are most likely to want to apply any fixes to.
SYSTEM_HEADER_DIR = /boot/develop/headers/posix
CROSS_SYSTEM_HEADER_DIR = $(tooldir)/sys-include/posix

View File

@ -1,15 +0,0 @@
# We multilib libgcc for -fPIC, to get real PIC code in it.
# NOTE: We must use -fPIC on crt{begi,end}.o else we get an RTLD error
# "cant set protections on segment of length blah at 0x8048000".
CRTSTUFF_T_CFLAGS = -fPIC -fno-omit-frame-pointer
MULTILIB_OPTIONS = fPIC
MULTILIB_DIRNAMES = pic
MULTILIB_MATCHES = fPIC=fpic
MULTILIB_EXTRA_OPTS =
LIBGCC=stmp-multilib
INSTALL_LIBGCC=install-multilib
# See all the declarations.
FIXPROTO_DEFINES = -D_XOPEN_SOURCE -D_POSIX_C_SOURCE=2

View File

@ -1,5 +0,0 @@
#
# This is included *after* t-cygwin to override LIB1ASMSRC.
#
LIB1ASMSRC = i386/uwin.asm

View File

@ -1,32 +0,0 @@
/* stuff needed for libgcc on win32. */
#ifdef L_chkstk
.global __chkstk
.global __alloca
__chkstk:
__alloca:
pushl %ecx /* save temp */
movl %esp,%ecx /* get sp */
addl $0x8,%ecx /* and point to return addr */
probe: cmpl $0x1000,%eax /* > 4k ?*/
jb done
subl $0x1000,%ecx /* yes, move pointer down 4k*/
orl $0x0,(%ecx) /* probe there */
subl $0x1000,%eax /* decrement count */
jmp probe /* and do it again */
done: subl %eax,%ecx
orl $0x0,(%ecx) /* less that 4k, just peek here */
movl %esp,%eax
movl %ecx,%esp /* decrement stack */
movl (%eax),%ecx /* recover saved temp */
movl 4(%eax),%eax /* get return address */
jmp *%eax
#endif

View File

@ -1,85 +0,0 @@
/* Operating system specific defines to be used when targeting GCC for
hosting on U/WIN (Windows32), using GNU tools and the Windows32 API
Library, as distinct from winnt.h, which is used to build GCC for use
with a windows style library and tool set and uses the Microsoft tools.
Copyright (C) 1999, 2002, 2003, 2004, 2007 Free Software Foundation, Inc.
Contributed by Mumit Khan <khan@xraylith.wisc.edu>.
This file is part of GCC.
GCC is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 3, or (at your option)
any later version.
GCC is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with GCC; see the file COPYING3. If not see
<http://www.gnu.org/licenses/>. */
/* Most of this is the same as for Cygwin32, except for changing some
specs. */
#define STANDARD_INCLUDE_COMPONENT "UWIN"
#define SYSTEM_INCLUDE_DIR "/usr/gnu/include"
#undef MD_STARTFILE_PREFIX
#define MD_STARTFILE_PREFIX "/usr/gnu/lib/"
#undef MAYBE_UWIN_CPP_BUILTINS
#define MAYBE_UWIN_CPP_BUILTINS() \
do \
{ \
builtin_define_std ("WINNT"); \
builtin_define ("_WIN32"); \
builtin_define ("__WIN32__"); \
builtin_define ("_UWIN"); \
builtin_define ("__UWIN__"); \
builtin_define ("__MSVCRT__"); \
builtin_define ("_STD_INCLUDE_DIR=mingw32"); \
} \
while (0)
#undef CPP_SPEC
#define CPP_SPEC "-remap %{posix:-D_POSIX_SOURCE} \
-include /usr/include/astwin32.h \
-idirafter /usr/gnu/include/mingw32"
/* For Windows applications, include more libraries, but always include
kernel32. */
#undef LIB_SPEC
#define LIB_SPEC \
"%{pg:-lgmon} %{mwindows:-luser32 -lgdi32 -lcomdlg32} -lkernel32 -ladvapi32"
/* Include in the mingw32 libraries with libgcc */
#undef LIBGCC_SPEC
#define LIBGCC_SPEC "-lgnuwin -lposix -lgcc -last -lmoldname -lmsvcrt"
/* Specify a different entry point when linking a DLL */
#undef LINK_SPEC
#define LINK_SPEC \
"%{mwindows:--subsystem windows} %{mdll:--dll -e _DllMainCRTStartup@12} \
%{!mdll:-u _main}"
#undef STARTFILE_SPEC
#define STARTFILE_SPEC "%{mdll:dllcrt2%O%s} %{!mdll:crt2%O%s} %{pg:gcrt2%O%s}"
/* These are PE BFD bug workarounds. Should go away eventually. */
/* Write the extra assembler code needed to declare a function
properly. If we are generating SDB debugging information, this
will happen automatically, so we only need to handle other cases. */
#undef ASM_DECLARE_FUNCTION_NAME
#define ASM_DECLARE_FUNCTION_NAME(FILE, NAME, DECL) \
do \
{ \
i386_pe_maybe_record_exported_symbol (DECL, NAME, 0); \
} \
while (0)
#undef ASM_OUTPUT_EXTERNAL
#undef ASM_OUTPUT_EXTERNAL_LIBCALL

View File

@ -1,30 +0,0 @@
/* Definitions of target machine for GCC.
common kaOS definitions for all architectures.
Copyright (C) 2003, 2007 Free Software Foundation, Inc.
This file is part of GCC.
GCC is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 3, or (at your option)
any later version.
GCC is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with GCC; see the file COPYING3. If not see
<http://www.gnu.org/licenses/>. */
/* Specify predefined symbols in preprocessor. */
#define TARGET_OS_CPP_BUILTINS() \
do { \
builtin_define ("__kaOS__"); \
} while (0)
/* do not link any library implicitly for kaOS target. */
#undef LIB_SPEC
#define LIB_SPEC ""

View File

@ -1,100 +0,0 @@
/* Support for GCC on MIPS using WindISS simulator.
Copyright (C) 2002, 2003, 2004, 2007 Free Software Foundation, Inc.
Contributed by CodeSourcery, LLC.
This file is part of GCC.
GCC is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 3, or (at your option)
any later version.
GCC is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with GCC; see the file COPYING3. If not see
<http://www.gnu.org/licenses/>. */
#undef TARGET_VERSION
#define TARGET_VERSION fprintf (stderr, " (MIPS WindISS)");
/* Combination of mips.h and svr4.h. */
#undef SWITCH_TAKES_ARG
#define SWITCH_TAKES_ARG(CHAR) \
(DEFAULT_SWITCH_TAKES_ARG (CHAR) \
|| (CHAR) == 'G' \
|| (CHAR) == 'h' \
|| (CHAR) == 'x' \
|| (CHAR) == 'z')
#undef SUBTARGET_CPP_SPEC
#define SUBTARGET_CPP_SPEC \
"%{!DCPU=*: %{mips3|mips4|mips64:-DCPU=MIPS64;:-DCPU=MIPS32}} \
%{EL|mel:-DMIPSEL;:-DMIPSEB} \
%{msoft-float:-DSOFT_FLOAT} \
%{mips1:-D_WRS_R3K_EXC_SUPPORT}"
#undef ASM_SPEC
#define ASM_SPEC "\
%{!G:-G 0} %{G*} %(endian_spec) %{mips1} %{mips2} %{mips3} %{mips4} \
%{mips32} %{mips32r2} %{mips64} \
%{mips16:%{!mno-mips16:-mips16}} %{mno-mips16:-no-mips16} \
%(subtarget_asm_optimizing_spec) \
%(subtarget_asm_debugging_spec) \
%{mabi=*} %{!mabi*: %(asm_abi_default_spec)} \
%{mgp32} %{mgp64} %{march=*} %{mxgot:-xgot} \
%{mtune=*} %{v} \
%(subtarget_asm_spec)"
#undef LINK_SPEC
/* LINK_SPEC is clobbered in svr4.h. ugh! */
#define LINK_SPEC "\
-m elf32mipswindiss \
%{!G:-G 0} %{G*} %{mips1} %{mips2} %{mips3} %{mips4} %{mips32} %{mips64} \
%{bestGnum}"
/* Diab libs MIPS{,E,F,L,M,W,X,Y,Z}{,H,N,S}
.
E - Elf (small-data/const=8
F - Elf Far (small-data/const=0)
L - Little Elf
M - Little Elf Far
W - elf32 bigmips
X - elf32 bigmips (far?)
Y - elf32 littlemips
Z - elf32 littlemips (far?)
. - Integer routines
H - Hard float
N - No float
S - Soft float
Want {F,M}{,H,S}
*/
#undef LIB_SPEC
#define LIB_SPEC "--start-group -li -lcfp -lwindiss -lram -limpl -limpfp --end-group"
#undef STARTFILE_SPEC
#define STARTFILE_SPEC "crt0.o%s crtbegin.o%s"
#undef ENDFILE_SPEC
#define ENDFILE_SPEC "crtend.o%s"
/* We have no shared libraries. These two shouldn't be necessary. */
#undef LINK_SHLIB_SPEC
#define LINK_SHLIB_SPEC ""
#undef LINK_EH_SPEC
#define LINK_EH_SPEC ""
#undef CRTSAVRES_DEFAULT_SPEC
#define CRTSAVRES_DEFAULT_SPEC ""
/* No sdata. */
#undef MIPS_DEFAULT_GVALUE
#define MIPS_DEFAULT_GVALUE 0

View File

@ -1,219 +0,0 @@
Copyright (C) 2005 Free Software Foundation, Inc.
Copying and distribution of this file, with or without modification,
are permitted in any medium without royalty provided the copyright
notice and this notice are preserved.
--------------------------------------------------------------------------
MS1 ABI
=========
Sizes and alignments
--------------------
Type Size (bytes) Alignment (bytes)
char 1 1
short 2 2
int 4 4
unsigned 4 4
long 4 4
long long 8 8
float 4 4
double 8 8
pointers 4 4
* alignment within aggregates (structs and unions) is as above, with
padding added if needed
* aggregates have alignment equal to that of their most aligned
member
* aggregates have sizes which are a multiple of their alignment
Floating point
--------------
All emulated using IEEE floating point conventions.
Registers
----------------
r0 always zero
r1 argument register 1
r2 argument register 2
r3 argument register 3
r4 argument register 4
r5 callee must save
r6 callee must save
r7 call clobbers
r8 call clobbers
r9 call clobbers
r10 call clobbers
r11 function return value
r12 frame pointer
r13 stack pointer
r14 linkage pointer
r15 interrupt pointer
Stack alignment 8 bytes
Structures passed <= 32 bits as values, else as pointers
The MS1 Stack
---------------
Space is allocated as needed in the stack frame for the following at compile
time:
* Outgoing parameters beyond the fourth
* All automatic arrays, automatic data aggregates, automatic
scalars which must be addressable, and automatic scalars for
which there is no room in registers
* Compiler-generated temporary values (typically when there are
too many for the compiler to keep them all in registers)
Space can be allocated dynamically (at runtime) in the stack frame for the
following:
* Memory allocated using the alloca() function of the C library
Addressable automatic variables on the stack are addressed with positive
offsets relative to r12; dynamically allocated space is addressed with positive
offsets from the pointer returned by alloca().
Stack Frame
-----------
+-----------------------+
| Parameter Word 1 |
+-----------------------+ <-sp
| Previous FP |
+-----------------------+
| Return address |
+-----------------------+
| Saved Registers |
+-----------------------+
| ... |
+-----------------------+
| Local Variables |
+-----------------------+ <-fp
| Alloca |
+-----------------------+
| ... |
+-----------------------+
| Parameter Word 2 |
+-----------------------+
| Parameter Word 1 |
+-----------------------+ <-sp
Parameter Assignment to Registers
---------------------------------
Consider the parameters in a function call as ordered from left (first
parameter) to right. GR contains the number of the next available
general-purpose register. STARG is the address of the next available stack
parameter word.
INITIALIZE:
Set GR=r1 and STARG to point to parameter word 1.
SCAN:
If there are no more parameters, terminate.
Otherwise, select one of the following depending on the type
of the next parameter:
SIMPLE ARG:
A SIMPLE ARG is one of the following:
* One of the simple integer types which will fit into a
general-purpose register,
* A pointer to an object of any type,
* A struct or union small enough to fit in a register (<= 32 bits)
* A larger struct or union, which shall be treated as a
pointer to the object or to a copy of the object.
(See below for when copies are made.)
If GR > r4, go to STACK. Otherwise, load the parameter value into
general-purpose register GR and advance GR to the next general-purpose
register. Values shorter than the register size are sign-extended or
zero-extended depending on whether they are signed or unsigned. Then
go to SCAN.
DOUBLE or LONG LONG
If GR > r3, go to STACK. Otherwise, if GR is odd, advance GR to the
next register. Load the 64-bit long long or double value into register
pair GR and GR+1. Advance GR to GR+2 and go to SCAN.
STACK:
Parameters not otherwise handled above are passed in the parameter
words of the caller's stack frame. SIMPLE ARGs, as defined above, are
considered to have size and alignment equal to the size of a
general-purpose register, with simple argument types shorter than this
sign- or zero-extended to this width. Round STARG up to a multiple of
the alignment requirement of the parameter and copy the argument
byte-for-byte into STARG, STARG+1, ... STARG+size-1. Set STARG to
STARG+size and go to SCAN.
Structure passing
-----------------
As noted above, code which passes structures and unions by value is implemented
specially. (In this section, "struct" will refer to structs and unions
inclusively.) Structs small enough to fit in a register are passed by value in
a single register or in a stack frame slot the size of a register. Structs
containing a single double or long long component are passed by value in two
registers or in a stack frame slot the size of two registers. Other structs
are handled by passing the address of the structure. In this case, a copy of
the structure will be made if necessary in order to preserve the pass-by-value
semantics.
Copies of large structs are made under the following rules:
ANSI mode K&R Mode
--------- --------
Normal param Callee copies if needed Caller copies
Varargs (...) param Caller copies Caller copies
In the case of normal (non-varargs) large-struct parameters in ANSI mode, the
callee is responsible for producing the same effect as if a copy of the
structure were passed, preserving the pass-by-value semantics. This may be
accomplished by having the callee make a copy, but in some cases the callee may
be able to determine that a copy is not necessary in order to produce the same
results. In such cases, the callee may choose to avoid making a copy of the
parameter.
Varargs handling
----------------
No special changes are needed for handling varargs parameters other than the
caller knowing that a copy is needed on struct parameters larger than a
register (see above).
The varargs macros set up a register save area for the general-purpose
registers to be saved. Because the save area lies between the caller and
callee stack frames, the saved register parameters are contiguous with
parameters passed on the stack. A pointer advances from the register save area
into the caller's stack frame.
Function return values
----------------------
Type Register
---- --------
int r11
short r11
long r11
long long stack
float r11
double stack

View File

@ -1,71 +0,0 @@
# crti.asm for mt
#
# Copyright (C) 2005 Free Software Foundation, Inc.
#
# This file 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.
#
# In addition to the permissions in the GNU General Public License, the
# Free Software Foundation gives you unlimited permission to link the
# compiled version of this file with other programs, and to distribute
# those programs without any restriction coming from the use of this
# file. (The General Public License restrictions do apply in other
# respects; for example, they cover modification of the file, and
# distribution when not linked into another program.)
#
# This file 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 GCC; see the file COPYING. If not, write to the Free
# Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA
# 02110-1301, USA.
#
# As a special exception, if you link this library with files
# compiled with GCC to produce an executable, this does not cause
# the resulting executable to be covered by the GNU General Public License.
# This exception does not however invalidate any other reasons why
# the executable file might be covered by the GNU General Public License.
#
# This file just make a stack frame for the contents of the .fini and
# .init sections. Users may put any desired instructions in those
# sections.
.file "crti.asm"
.section ".init"
.global _init
.type _init,#function
.align 4
_init:
subi sp, sp, #4
stw r14, sp, #0
or r0, r0, r0
or r0, r0, r0
or r0, r0, r0
or r0, r0, r0
or r0, r0, r0
or r0, r0, r0
or r0, r0, r0
or r0, r0, r0
.section ".fini"
.global _fini
.type _fini,#function
.align 4
_fini:
subi sp, sp, #4
stw r14, sp, #0
or r0, r0, r0
or r0, r0, r0
or r0, r0, r0
or r0, r0, r0
or r0, r0, r0
or r0, r0, r0
or r0, r0, r0
or r0, r0, r0

View File

@ -1,56 +0,0 @@
# crtn.asm for mt
# Copyright (C) 2005 Free Software Foundation, Inc.
#
# This file 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.
#
# In addition to the permissions in the GNU General Public License, the
# Free Software Foundation gives you unlimited permission to link the
# compiled version of this file with other programs, and to distribute
# those programs without any restriction coming from the use of this
# file. (The General Public License restrictions do apply in other
# respects; for example, they cover modification of the file, and
# distribution when not linked into another program.)
#
# This file 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 GCC; see the file COPYING. If not, write to the Free
# Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA
# 02110-1301, USA.
#
# As a special exception, if you link this library with files
# compiled with GCC to produce an executable, this does not cause
# the resulting executable to be covered by the GNU General Public License.
# This exception does not however invalidate any other reasons why
# the executable file might be covered by the GNU General Public License.
#
# This file just makes sure that the .fini and .init sections do in
# fact return. Users may put any desired instructions in those sections.
# This file is the last thing linked into any executable.
.file "crtn.asm"
.section ".init"
.align 4
ldw r14, sp, #0
addi sp, sp, #4
nop
jal r0, r14
or r0, r0, r0
.section ".fini"
.align 4
ldw r14, sp, #0
addi sp, sp, #4
nop
jal r0, r14
or r0, r0, r0

View File

@ -1,232 +0,0 @@
/* Copyright (C) 2005 Free Software Foundation,
This file is part of GCC.
GCC is free software; you can redistribute it and/or modify it under
the terms of the GNU General Public License as published by the Free
Software Foundation; either version 2, or (at your option) any later
version.
In addition to the permissions in the GNU General Public License, the
Free Software Foundation gives you unlimited permission to link the
compiled version of this file into combinations with other programs,
and to distribute those combinations without any restriction coming
from the use of this file. (The General Public License restrictions
do apply in other respects; for example, they cover modification of
the file, and distribution when not linked into a combine
executable.)
GCC is distributed in the hope that it will be useful, but WITHOUT ANY
WARRANTY; without even the implied warranty of MERCHANTABILITY or
FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
for more details.
You should have received a copy of the GNU General Public License
along with GCC; see the file COPYING. If not, write to the Free
Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA
02110-1301, USA. */
#define BITS_PER_UNIT 8
typedef int HItype __attribute__ ((mode (HI)));
typedef unsigned int UHItype __attribute__ ((mode (HI)));
typedef int SItype __attribute__ ((mode (SI)));
typedef unsigned int USItype __attribute__ ((mode (SI)));
typedef int word_type __attribute__ ((mode (__word__)));
struct SIstruct {HItype low, high;};
typedef union
{
struct SIstruct s;
SItype ll;
} SIunion;
SItype
__lshrsi3 (SItype u, word_type b)
{
SIunion w;
word_type bm;
SIunion uu;
if (b == 0)
return u;
uu.ll = u;
bm = (sizeof (HItype) * BITS_PER_UNIT) - b;
if (bm <= 0)
{
w.s.high = 0;
w.s.low = (UHItype)uu.s.high >> -bm;
}
else
{
UHItype carries = (UHItype)uu.s.high << bm;
w.s.high = (UHItype)uu.s.high >> b;
w.s.low = ((UHItype)uu.s.low >> b) | carries;
}
return w.ll;
}
SItype
__ashlsi3 (SItype u, word_type b)
{
SIunion w;
word_type bm;
SIunion uu;
if (b == 0)
return u;
uu.ll = u;
bm = (sizeof (HItype) * BITS_PER_UNIT) - b;
if (bm <= 0)
{
w.s.low = 0;
w.s.high = (UHItype)uu.s.low << -bm;
}
else
{
UHItype carries = (UHItype)uu.s.low >> bm;
w.s.low = (UHItype)uu.s.low << b;
w.s.high = ((UHItype)uu.s.high << b) | carries;
}
return w.ll;
}
SItype
__ashrsi3 (SItype u, word_type b)
{
SIunion w;
word_type bm;
SIunion uu;
if (b == 0)
return u;
uu.ll = u;
bm = (sizeof (HItype) * BITS_PER_UNIT) - b;
if (bm <= 0)
{
/* w.s.high = 1..1 or 0..0 */
w.s.high = uu.s.high >> (sizeof (HItype) * BITS_PER_UNIT - 1);
w.s.low = uu.s.high >> -bm;
}
else
{
UHItype carries = (UHItype)uu.s.high << bm;
w.s.high = uu.s.high >> b;
w.s.low = ((UHItype)uu.s.low >> b) | carries;
}
return w.ll;
}
USItype
__mulsi3 (USItype a, USItype b)
{
USItype c = 0;
while (a != 0)
{
if (a & 1)
c += b;
a >>= 1;
b <<= 1;
}
return c;
}
USItype
udivmodsi4(USItype num, USItype den, word_type modwanted)
{
USItype bit = 1;
USItype res = 0;
while (den < num && bit && !(den & (1L<<31)))
{
den <<=1;
bit <<=1;
}
while (bit)
{
if (num >= den)
{
num -= den;
res |= bit;
}
bit >>=1;
den >>=1;
}
if (modwanted) return num;
return res;
}
SItype
__divsi3 (SItype a, SItype b)
{
word_type neg = 0;
SItype res;
if (a < 0)
{
a = -a;
neg = !neg;
}
if (b < 0)
{
b = -b;
neg = !neg;
}
res = udivmodsi4 (a, b, 0);
if (neg)
res = -res;
return res;
}
SItype
__modsi3 (SItype a, SItype b)
{
word_type neg = 0;
SItype res;
if (a < 0)
{
a = -a;
neg = 1;
}
if (b < 0)
b = -b;
res = udivmodsi4 (a, b, 1);
if (neg)
res = -res;
return res;
}
SItype
__udivsi3 (SItype a, SItype b)
{
return udivmodsi4 (a, b, 0);
}
SItype
__umodsi3 (SItype a, SItype b)
{
return udivmodsi4 (a, b, 1);
}

View File

@ -1,65 +0,0 @@
/* Prototypes for exported functions defined in ms1.c
Copyright (C) 2005, 2007 Free Software Foundation, Inc.
This file is part of GCC.
GCC is free software; you can redistribute it and/or modify it
under the terms of the GNU General Public License as published
by the Free Software Foundation; either version 3, or (at your
option) any later version.
GCC is distributed in the hope that it will be useful,but WITHOUT
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public
License for more details.
You should have received a copy of the GNU General Public License
along with GCC; see the file COPYING3. If not see
<http://www.gnu.org/licenses/>. */
extern void mt_init_expanders (void);
extern void mt_expand_prologue (void);
extern void mt_expand_epilogue (enum epilogue_type);
extern unsigned mt_compute_frame_size (int);
extern void mt_override_options (void);
extern int mt_initial_elimination_offset (int, int);
extern const char * mt_asm_output_opcode (FILE *, const char *);
extern int mt_epilogue_uses (int);
extern void mt_add_loop (void);
#ifdef TREE_CODE
extern const char * mt_cannot_inline_p (tree);
extern int mt_function_arg_boundary (enum machine_mode, tree);
extern void mt_function_arg_advance (CUMULATIVE_ARGS *, enum machine_mode, tree, int);
extern int mt_return_in_memory (const_tree,const_tree);
#endif
#ifdef RTX_CODE
extern void mt_expand_eh_return (rtx *);
extern void mt_emit_eh_epilogue (rtx *);
extern void mt_print_operand (FILE *, rtx, int);
extern void mt_print_operand_address (FILE *, rtx);
extern int mt_check_split (rtx, enum machine_mode);
extern int mt_reg_ok_for_base_p (rtx, int);
extern int mt_legitimate_address_p (enum machine_mode, rtx, int);
/* Predicates for machine description. */
extern int uns_arith_operand (rtx, enum machine_mode);
extern int arith_operand (rtx, enum machine_mode);
extern int reg_or_0_operand (rtx, enum machine_mode);
extern int big_const_operand (rtx, enum machine_mode);
extern int single_const_operand (rtx, enum machine_mode);
extern void mt_emit_cbranch (enum rtx_code, rtx, rtx, rtx);
extern void mt_set_memflags (rtx);
extern rtx mt_return_addr_rtx (int);
extern void mt_split_words (enum machine_mode, enum machine_mode, rtx *);
extern void mt_final_prescan_insn (rtx, rtx *, int);
#endif
#ifdef TREE_CODE
#ifdef RTX_CODE
extern void mt_init_cumulative_args (CUMULATIVE_ARGS *, tree, rtx, tree, int);
extern rtx mt_function_arg (const CUMULATIVE_ARGS *, enum machine_mode, tree, int, int);
extern enum reg_class mt_secondary_reload_class (enum reg_class, enum machine_mode, rtx);
extern rtx mt_function_value (const_tree, enum machine_mode, const_tree);
#endif
#endif

File diff suppressed because it is too large Load Diff

View File

@ -1,868 +0,0 @@
/* Target Definitions for MorphoRISC1
Copyright (C) 2005, 2006, 2007 Free Software Foundation, Inc.
Contributed by Red Hat, Inc.
This file is part of GCC.
GCC is free software; you can redistribute it and/or modify it
under the terms of the GNU General Public License as published
by the Free Software Foundation; either version 3, or (at your
option) any later version.
GCC is distributed in the hope that it will be useful, but WITHOUT
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public
License for more details.
You should have received a copy of the GNU General Public License
along with GCC; see the file COPYING3. If not see
<http://www.gnu.org/licenses/>. */
extern struct rtx_def * mt_ucmpsi3_libcall;
enum processor_type
{
PROCESSOR_MS1_64_001,
PROCESSOR_MS1_16_002,
PROCESSOR_MS1_16_003,
PROCESSOR_MS2
};
enum epilogue_type
{
EH_EPILOGUE,
NORMAL_EPILOGUE
};
extern enum processor_type mt_cpu;
/* Support for a compile-time default CPU, et cetera. The rules are:
--with-arch is ignored if -march is specified. */
#define OPTION_DEFAULT_SPECS \
{"arch", "%{!march=*:-march=%(VALUE)}" }
/* A C string constant that tells the GCC driver program options to pass to
the assembler. */
#undef ASM_SPEC
#define ASM_SPEC "%{march=*} %{!march=*: -march=ms1-16-002}"
/* A string to pass to at the end of the command given to the linker. */
#undef LIB_SPEC
#define LIB_SPEC "--start-group -lc -lsim --end-group \
%{msim: ; \
march=ms1-64-001:-T 64-001.ld%s; \
march=ms1-16-002:-T 16-002.ld%s; \
march=ms1-16-003:-T 16-003.ld%s; \
march=ms2:-T ms2.ld%s; \
:-T 16-002.ld}"
/* A string to pass at the very beginning of the command given to the
linker. */
#undef STARTFILE_SPEC
#define STARTFILE_SPEC "%{msim:crt0.o%s;\
march=ms1-64-001:%{!mno-crt0:crt0-64-001.o%s} startup-64-001.o%s; \
march=ms1-16-002:%{!mno-crt0:crt0-16-002.o%s} startup-16-002.o%s; \
march=ms1-16-003:%{!mno-crt0:crt0-16-003.o%s} startup-16-003.o%s; \
march=ms2:%{!mno-crt0:crt0-ms2.o%s} startup-ms2.o%s; \
:%{!mno-crt0:crt0-16-002.o%s} startup-16-002.o%s} \
crti.o%s crtbegin.o%s"
/* A string to pass at the end of the command given to the linker. */
#undef ENDFILE_SPEC
#define ENDFILE_SPEC "%{msim:exit.o%s; \
march=ms1-64-001:exit-64-001.o%s; \
march=ms1-16-002:exit-16-002.o%s; \
march=ms1-16-003:exit-16-003.o%s; \
march=ms2:exit-ms2.o%s; \
:exit-16-002.o%s} \
crtend.o%s crtn.o%s"
/* Run-time target specifications. */
#define TARGET_CPU_CPP_BUILTINS() \
do \
{ \
builtin_define_with_int_value ("__mt__", mt_cpu); \
builtin_assert ("machine=mt"); \
} \
while (0)
#define TARGET_MS1_64_001 (mt_cpu == PROCESSOR_MS1_64_001)
#define TARGET_MS1_16_002 (mt_cpu == PROCESSOR_MS1_16_002)
#define TARGET_MS1_16_003 (mt_cpu == PROCESSOR_MS1_16_003)
#define TARGET_MS2 (mt_cpu == PROCESSOR_MS2)
#define TARGET_VERSION fprintf (stderr, " (mt)");
#define OVERRIDE_OPTIONS mt_override_options ()
#define CAN_DEBUG_WITHOUT_FP 1
/* Storage Layout. */
#define BITS_BIG_ENDIAN 0
#define BYTES_BIG_ENDIAN 1
#define WORDS_BIG_ENDIAN 1
#define UNITS_PER_WORD 4
/* A macro to update MODE and UNSIGNEDP when an object whose type is TYPE and
which has the specified mode and signedness is to be stored in a register.
This macro is only called when TYPE is a scalar type.
On most RISC machines, which only have operations that operate on a full
register, define this macro to set M to `word_mode' if M is an integer mode
narrower than `BITS_PER_WORD'. In most cases, only integer modes should be
widened because wider-precision floating-point operations are usually more
expensive than their narrower counterparts.
For most machines, the macro definition does not change UNSIGNEDP. However,
some machines, have instructions that preferentially handle either signed or
unsigned quantities of certain modes. For example, on the DEC Alpha, 32-bit
loads from memory and 32-bit add instructions sign-extend the result to 64
bits. On such machines, set UNSIGNEDP according to which kind of extension
is more efficient.
Do not define this macro if it would never modify MODE. */
#define PROMOTE_MODE(MODE,UNSIGNEDP,TYPE) \
do \
{ \
if (GET_MODE_CLASS (MODE) == MODE_INT \
&& GET_MODE_SIZE (MODE) < 4) \
(MODE) = SImode; \
} \
while (0)
/* Normal alignment required for function parameters on the stack, in bits.
All stack parameters receive at least this much alignment regardless of data
type. On most machines, this is the same as the size of an integer. */
#define PARM_BOUNDARY 32
/* Define this macro to the minimum alignment enforced by hardware for
the stack pointer on this machine. The definition is a C
expression for the desired alignment (measured in bits). This
value is used as a default if PREFERRED_STACK_BOUNDARY is not
defined. On most machines, this should be the same as
PARM_BOUNDARY. */
#define STACK_BOUNDARY 32
/* Alignment required for a function entry point, in bits. */
#define FUNCTION_BOUNDARY 32
/* Biggest alignment that any data type can require on this machine,
in bits. */
#define BIGGEST_ALIGNMENT 32
/* If defined, a C expression to compute the alignment for a variable
in the static store. TYPE is the data type, and ALIGN is the
alignment that the object would ordinarily have. The value of this
macro is used instead of that alignment to align the object.
If this macro is not defined, then ALIGN is used. */
#define DATA_ALIGNMENT(TYPE, ALIGN) \
(TREE_CODE (TYPE) == ARRAY_TYPE \
&& TYPE_MODE (TREE_TYPE (TYPE)) == QImode \
&& (ALIGN) < BITS_PER_WORD ? BITS_PER_WORD : (ALIGN))
/* If defined, a C expression to compute the alignment given to a constant that
is being placed in memory. CONSTANT is the constant and ALIGN is the
alignment that the object would ordinarily have. The value of this macro is
used instead of that alignment to align the object.
If this macro is not defined, then ALIGN is used.
The typical use of this macro is to increase alignment for string constants
to be word aligned so that `strcpy' calls that copy constants can be done
inline. */
#define CONSTANT_ALIGNMENT(EXP, ALIGN) \
(TREE_CODE (EXP) == STRING_CST \
&& (ALIGN) < BITS_PER_WORD ? BITS_PER_WORD : (ALIGN))
/* Number of bits which any structure or union's size must be a multiple of.
Each structure or union's size is rounded up to a multiple of this.
If you do not define this macro, the default is the same as `BITS_PER_UNIT'. */
#define STRUCTURE_SIZE_BOUNDARY 32
/* Define this macro to be the value 1 if instructions will fail to work if
given data not on the nominal alignment. If instructions will merely go
slower in that case, define this macro as 0. */
#define STRICT_ALIGNMENT 1
/* Define this if you wish to imitate the way many other C compilers handle
alignment of bitfields and the structures that contain them. */
#define PCC_BITFIELD_TYPE_MATTERS 1
/* Layout of Source Language Data Types. */
#define INT_TYPE_SIZE 32
#define SHORT_TYPE_SIZE 16
#define LONG_TYPE_SIZE 32
#define LONG_LONG_TYPE_SIZE 64
#define CHAR_TYPE_SIZE 8
#define FLOAT_TYPE_SIZE 32
#define DOUBLE_TYPE_SIZE 64
#define LONG_DOUBLE_TYPE_SIZE 64
#define DEFAULT_SIGNED_CHAR 1
/* Register Basics. */
/* General purpose registers. */
#define GPR_FIRST 0 /* First gpr */
#define GPR_LAST 15 /* Last possible gpr */
#define GPR_R0 0 /* Always 0 */
#define GPR_R7 7 /* Used as a scratch register */
#define GPR_R8 8 /* Used as a scratch register */
#define GPR_R9 9 /* Used as a scratch register */
#define GPR_R10 10 /* Used as a scratch register */
#define GPR_R11 11 /* Used as a scratch register */
#define GPR_FP 12 /* Frame pointer */
#define GPR_SP 13 /* Stack pointer */
#define GPR_LINK 14 /* Saved return address as
seen by the caller */
#define GPR_INTERRUPT_LINK 15 /* hold return addres for interrupts */
#define LOOP_FIRST (GPR_LAST + 1)
#define LOOP_LAST (LOOP_FIRST + 3)
/* Argument register that is eliminated in favor of the frame and/or stack
pointer. Also add register to point to where the return address is
stored. */
#define SPECIAL_REG_FIRST (LOOP_LAST + 1)
#define SPECIAL_REG_LAST (SPECIAL_REG_FIRST)
#define ARG_POINTER_REGNUM (SPECIAL_REG_FIRST + 0)
#define SPECIAL_REG_P(R) ((R) == SPECIAL_REG_FIRST)
/* The first/last register that can contain the arguments to a function. */
#define FIRST_ARG_REGNUM 1
#define LAST_ARG_REGNUM 4
/* The register used to hold functions return value */
#define RETVAL_REGNUM 11
#define FIRST_PSEUDO_REGISTER (SPECIAL_REG_LAST + 1)
#define IS_PSEUDO_P(R) (REGNO (R) >= FIRST_PSEUDO_REGISTER)
/* R0 always has the value 0
R10 static link
R12 FP pointer to active frame
R13 SP pointer to top of stack
R14 RA return address
R15 IRA interrupt return address. */
#define FIXED_REGISTERS { 1, 0, 0, 0, 0, 0, 0, 0, \
0, 0, 0, 0, 1, 1, 1, 1, \
1, 1, 1, 1, 1 \
}
/* Like `FIXED_REGISTERS' but has 1 for each register that is clobbered (in
general) by function calls as well as for fixed registers. This macro
therefore identifies the registers that are not available for general
allocation of values that must live across function calls. */
#define CALL_USED_REGISTERS { 1, 1, 1, 1, 1, 0, 0, 1, \
1, 1, 1, 1, 1, 1, 1, 1, \
1, 1, 1, 1, 1 \
}
/* How Values Fit in Registers. */
#define HARD_REGNO_NREGS(REGNO, MODE) \
((GET_MODE_SIZE (MODE) + UNITS_PER_WORD - 1) / UNITS_PER_WORD)
#define HARD_REGNO_MODE_OK(REGNO, MODE) 1
/* A C expression that is nonzero if a value of mode MODE1 is
accessible in mode MODE2 without copying. */
#define MODES_TIEABLE_P(MODE1, MODE2) 1
/* Register Classes. */
enum reg_class
{
NO_REGS,
ALL_REGS,
LIM_REG_CLASSES
};
#define GENERAL_REGS ALL_REGS
#define N_REG_CLASSES ((int) LIM_REG_CLASSES)
#define REG_CLASS_NAMES {"NO_REGS", "ALL_REGS" }
#define REG_CLASS_CONTENTS \
{ \
{ 0x0 }, \
{ 0x000fffff }, \
}
/* A C expression whose value is a register class containing hard register
REGNO. In general there is more than one such class; choose a class which
is "minimal", meaning that no smaller class also contains the register. */
#define REGNO_REG_CLASS(REGNO) GENERAL_REGS
#define BASE_REG_CLASS GENERAL_REGS
#define INDEX_REG_CLASS NO_REGS
#define REG_CLASS_FROM_LETTER(CHAR) NO_REGS
#define REGNO_OK_FOR_BASE_P(NUM) 1
#define REGNO_OK_FOR_INDEX_P(NUM) 1
/* A C expression that places additional restrictions on the register class to
use when it is necessary to copy value X into a register in class CLASS.
The value is a register class; perhaps CLASS, or perhaps another, smaller
class. On many machines, the following definition is safe:
#define PREFERRED_RELOAD_CLASS(X,CLASS) CLASS
*/
#define PREFERRED_RELOAD_CLASS(X, CLASS) (CLASS)
#define SECONDARY_RELOAD_CLASS(CLASS,MODE,X) \
mt_secondary_reload_class((CLASS), (MODE), (X))
/* A C expression for the maximum number of consecutive registers of
class CLASS needed to hold a value of mode MODE. */
#define CLASS_MAX_NREGS(CLASS, MODE) \
((GET_MODE_SIZE (MODE) + UNITS_PER_WORD - 1) / UNITS_PER_WORD)
/* For MorphoRISC1:
`I' is used for the range of constants an arithmetic insn can
actually contain (16-bit signed integers).
`J' is used for the range which is just zero (ie, $r0).
`K' is used for the range of constants a logical insn can actually
contain (16-bit zero-extended integers).
`L' is used for the range of constants that be loaded with lui
(ie, the bottom 16 bits are zero).
`M' is used for the range of constants that take two words to load
(ie, not matched by `I', `K', and `L').
`N' is used for negative 16-bit constants other than -65536.
`O' is a 15-bit signed integer.
`P' is used for positive 16-bit constants. */
#define SMALL_INT(X) ((unsigned HOST_WIDE_INT) (INTVAL (X) + 0x8000) < 0x10000)
#define SMALL_INT_UNSIGNED(X) ((unsigned HOST_WIDE_INT) (INTVAL (X)) < 0x10000)
/* A C expression that defines the machine-dependent operand
constraint letters that specify particular ranges of integer
values. If C is one of those letters, the expression should check
that VALUE, an integer, is in the appropriate range and return 1 if
so, 0 otherwise. If C is not one of those letters, the value
should be 0 regardless of VALUE. */
#define CONST_OK_FOR_LETTER_P(VALUE, C) \
((C) == 'I' ? ((unsigned HOST_WIDE_INT) ((VALUE) + 0x8000) < 0x10000) \
: (C) == 'J' ? ((VALUE) == 0) \
: (C) == 'K' ? ((unsigned HOST_WIDE_INT) (VALUE) < 0x10000) \
: (C) == 'L' ? (((VALUE) & 0x0000ffff) == 0 \
&& (((VALUE) & ~2147483647) == 0 \
|| ((VALUE) & ~2147483647) == ~2147483647)) \
: (C) == 'M' ? ((((VALUE) & ~0x0000ffff) != 0) \
&& (((VALUE) & ~0x0000ffff) != ~0x0000ffff) \
&& (((VALUE) & 0x0000ffff) != 0 \
|| (((VALUE) & ~2147483647) != 0 \
&& ((VALUE) & ~2147483647) != ~2147483647))) \
: (C) == 'N' ? ((unsigned HOST_WIDE_INT) ((VALUE) + 0xffff) < 0xffff) \
: (C) == 'O' ? ((unsigned HOST_WIDE_INT) ((VALUE) + 0x4000) < 0x8000) \
: (C) == 'P' ? ((VALUE) != 0 && (((VALUE) & ~0x0000ffff) == 0)) \
: 0)
/* A C expression that defines the machine-dependent operand constraint letters
(`G', `H') that specify particular ranges of `const_double' values. */
#define CONST_DOUBLE_OK_FOR_LETTER_P(VALUE, C) 0
/* Most negative value represent on mt */
#define MT_MIN_INT 0x80000000
/* Basic Stack Layout. */
enum save_direction
{
FROM_PROCESSOR_TO_MEM,
FROM_MEM_TO_PROCESSOR
};
/* Tell prologue and epilogue if register REGNO should be saved / restored.
The return address and frame pointer are treated separately.
Don't consider them here. */
#define MUST_SAVE_REGISTER(regno) \
( (regno) != GPR_LINK \
&& (regno) != GPR_FP \
&& (regno) != GPR_SP \
&& (regno) != GPR_R0 \
&& (( df_regs_ever_live_p (regno) && ! call_used_regs[regno] ) \
/* Save ira register in an interrupt handler. */ \
|| (interrupt_handler && (regno) == GPR_INTERRUPT_LINK) \
/* Save any register used in an interrupt handler. */ \
|| (interrupt_handler && df_regs_ever_live_p (regno)) \
/* Save call clobbered registers in non-leaf interrupt \
handlers. */ \
|| (interrupt_handler && call_used_regs[regno] \
&& !current_function_is_leaf) \
||(crtl->calls_eh_return \
&& (regno == GPR_R7 || regno == GPR_R8)) \
) \
)
#define STACK_GROWS_DOWNWARD 1
/* Offset from the frame pointer to the first local variable slot to be
allocated.
If `FRAME_GROWS_DOWNWARD', find the next slot's offset by
subtracting the first slot's length from `STARTING_FRAME_OFFSET'.
Otherwise, it is found by adding the length of the first slot to
the value `STARTING_FRAME_OFFSET'. */
#define STARTING_FRAME_OFFSET crtl->outgoing_args_size
/* Offset from the argument pointer register to the first argument's address.
On some machines it may depend on the data type of the function.
If `ARGS_GROW_DOWNWARD', this is the offset to the location above the first
argument's address. */
#define FIRST_PARM_OFFSET(FUNDECL) 0
#define RETURN_ADDR_RTX(COUNT, FRAMEADDR) \
mt_return_addr_rtx (COUNT)
/* A C expression whose value is RTL representing the location of the incoming
return address at the beginning of any function, before the prologue. This
RTL is either a `REG', indicating that the return value is saved in `REG',
or a `MEM' representing a location in the stack.
You only need to define this macro if you want to support call frame
debugging information like that provided by DWARF 2. */
#define INCOMING_RETURN_ADDR_RTX gen_rtx_REG (SImode, GPR_LINK)
/* A C expression whose value is an integer giving the offset, in bytes, from
the value of the stack pointer register to the top of the stack frame at the
beginning of any function, before the prologue. The top of the frame is
defined to be the value of the stack pointer in the previous frame, just
before the call instruction.
You only need to define this macro if you want to support call frame
debugging information like that provided by DWARF 2. */
#define INCOMING_FRAME_SP_OFFSET 0
#define STACK_POINTER_REGNUM GPR_SP
#define FRAME_POINTER_REGNUM GPR_FP
/* The register number of the arg pointer register, which is used to
access the function's argument list. */
#define ARG_POINTER_REGNUM (SPECIAL_REG_FIRST + 0)
/* Register numbers used for passing a function's static chain pointer. */
#define STATIC_CHAIN_REGNUM 10
/* A C expression which is nonzero if a function must have and use a frame
pointer. */
#define FRAME_POINTER_REQUIRED 0
/* Structure to be filled in by compute_frame_size with register
save masks, and offsets for the current function. */
struct mt_frame_info
{
unsigned int total_size; /* # Bytes that the entire frame takes up. */
unsigned int pretend_size; /* # Bytes we push and pretend caller did. */
unsigned int args_size; /* # Bytes that outgoing arguments take up. */
unsigned int extra_size;
unsigned int reg_size; /* # Bytes needed to store regs. */
unsigned int var_size; /* # Bytes that variables take up. */
unsigned int frame_size; /* # Bytes in current frame. */
unsigned int reg_mask; /* Mask of saved registers. */
unsigned int save_fp; /* Nonzero if frame pointer must be saved. */
unsigned int save_lr; /* Nonzero if return pointer must be saved. */
int initialized; /* Nonzero if frame size already calculated. */
};
extern struct mt_frame_info current_frame_info;
/* If defined, this macro specifies a table of register pairs used to eliminate
unneeded registers that point into the stack frame. */
#define ELIMINABLE_REGS \
{ \
{ARG_POINTER_REGNUM, STACK_POINTER_REGNUM}, \
{ARG_POINTER_REGNUM, FRAME_POINTER_REGNUM}, \
{FRAME_POINTER_REGNUM, STACK_POINTER_REGNUM} \
}
/* A C expression that returns nonzero if the compiler is allowed to try to
replace register number FROM with register number TO. */
#define CAN_ELIMINATE(FROM, TO) \
((FROM) == ARG_POINTER_REGNUM && (TO) == STACK_POINTER_REGNUM \
? ! frame_pointer_needed \
: 1)
/* This macro is similar to `INITIAL_FRAME_POINTER_OFFSET'. It
specifies the initial difference between the specified pair of
registers. This macro must be defined if `ELIMINABLE_REGS' is
defined. */
#define INITIAL_ELIMINATION_OFFSET(FROM, TO, OFFSET) \
(OFFSET) = mt_initial_elimination_offset (FROM, TO)
/* If defined, the maximum amount of space required for outgoing
arguments will be computed and placed into the variable
`crtl->outgoing_args_size'. */
#define ACCUMULATE_OUTGOING_ARGS 1
/* Define this if it is the responsibility of the caller to
allocate the area reserved for arguments passed in registers. */
#define OUTGOING_REG_PARM_STACK_SPACE(FNTYPE) 1
/* The number of register assigned to holding function arguments. */
#define MT_NUM_ARG_REGS 4
/* Define this if it is the responsibility of the caller to allocate
the area reserved for arguments passed in registers. */
#define REG_PARM_STACK_SPACE(FNDECL) (MT_NUM_ARG_REGS * UNITS_PER_WORD)
/* Define this macro if `REG_PARM_STACK_SPACE' is defined, but the stack
parameters don't skip the area specified by it. */
#define STACK_PARMS_IN_REG_PARM_AREA
/* A C expression that should indicate the number of bytes of its own
arguments that a function pops on returning, or 0 if the function
pops no arguments and the caller must therefore pop them all after
the function returns. */
#define RETURN_POPS_ARGS(FUNDECL, FUNTYPE, STACK_SIZE) 0
#define FUNCTION_ARG(CUM, MODE, TYPE, NAMED) \
mt_function_arg (& (CUM), (MODE), (TYPE), (NAMED), FALSE)
#define CUMULATIVE_ARGS int
#define INIT_CUMULATIVE_ARGS(CUM, FNTYPE, LIBNAME, FNDECL, N_NAMED_ARGS) \
mt_init_cumulative_args (& (CUM), FNTYPE, LIBNAME, FNDECL, FALSE)
#define FUNCTION_ARG_ADVANCE(CUM, MODE, TYPE, NAMED) \
mt_function_arg_advance (&CUM, MODE, TYPE, NAMED)
#define FUNCTION_ARG_BOUNDARY(MODE, TYPE) \
mt_function_arg_boundary (MODE, TYPE)
#define FUNCTION_ARG_REGNO_P(REGNO) \
((REGNO) >= FIRST_ARG_REGNUM && ((REGNO) <= LAST_ARG_REGNUM))
#define RETURN_VALUE_REGNUM RETVAL_REGNUM
#define FUNCTION_VALUE(VALTYPE, FUNC) \
mt_function_value (VALTYPE, TYPE_MODE(VALTYPE), FUNC)
#define LIBCALL_VALUE(MODE) \
mt_function_value (NULL_TREE, MODE, NULL_TREE)
#define FUNCTION_VALUE_REGNO_P(REGNO) ((REGNO) == RETURN_VALUE_REGNUM)
/* A C expression which can inhibit the returning of certain function
values in registers, based on the type of value. */
#define TARGET_RETURN_IN_MEMORY mt_return_in_memory
/* Define this macro to be 1 if all structure and union return values must be
in memory. */
#define DEFAULT_PCC_STRUCT_RETURN 0
/* Define this macro as a C expression that is nonzero if the return
instruction or the function epilogue ignores the value of the stack
pointer; in other words, if it is safe to delete an instruction to
adjust the stack pointer before a return from the function. */
#define EXIT_IGNORE_STACK 1
#define EPILOGUE_USES(REGNO) mt_epilogue_uses(REGNO)
/* Define this macro if the function epilogue contains delay slots to which
instructions from the rest of the function can be "moved". */
#define DELAY_SLOTS_FOR_EPILOGUE 1
/* A C expression that returns 1 if INSN can be placed in delay slot number N
of the epilogue. */
#define ELIGIBLE_FOR_EPILOGUE_DELAY(INSN, N) 0
#define FUNCTION_PROFILER(FILE, LABELNO) gcc_unreachable ()
/* Trampolines are not implemented. */
#define TRAMPOLINE_SIZE 0
#define INITIALIZE_TRAMPOLINE(ADDR, FNADDR, STATIC_CHAIN)
/* ?? What is this -- aldyh ?? */
#define UCMPSI3_LIBCALL "__ucmpsi3"
/* Addressing Modes. */
/* A C expression that is 1 if the RTX X is a constant which is a valid
address. */
#define CONSTANT_ADDRESS_P(X) CONSTANT_P (X)
/* A number, the maximum number of registers that can appear in a valid memory
address. Note that it is up to you to specify a value equal to the maximum
number that `GO_IF_LEGITIMATE_ADDRESS' would ever accept. */
#define MAX_REGS_PER_ADDRESS 1
#ifdef REG_OK_STRICT
#define GO_IF_LEGITIMATE_ADDRESS(MODE, X, ADDR) \
{ \
if (mt_legitimate_address_p (MODE, X, 1)) \
goto ADDR; \
}
#else
#define GO_IF_LEGITIMATE_ADDRESS(MODE, X, ADDR) \
{ \
if (mt_legitimate_address_p (MODE, X, 0)) \
goto ADDR; \
}
#endif
#ifdef REG_OK_STRICT
#define REG_OK_FOR_BASE_P(X) mt_reg_ok_for_base_p (X, 1)
#else
#define REG_OK_FOR_BASE_P(X) mt_reg_ok_for_base_p (X, 0)
#endif
#define REG_OK_FOR_INDEX_P(X) REG_OK_FOR_BASE_P (X)
#define LEGITIMIZE_ADDRESS(X, OLDX, MODE, WIN) {}
#define GO_IF_MODE_DEPENDENT_ADDRESS(ADDR, LABEL)
#define LEGITIMATE_CONSTANT_P(X) 1
/* A C expression for the cost of moving data of mode M between a register and
memory. A value of 2 is the default; this cost is relative to those in
`REGISTER_MOVE_COST'.
If moving between registers and memory is more expensive than between two
registers, you should define this macro to express the relative cost. */
#define MEMORY_MOVE_COST(M,C,I) 10
/* Define this macro as a C expression which is nonzero if accessing less than
a word of memory (i.e. a `char' or a `short') is no faster than accessing a
word of memory. */
#define SLOW_BYTE_ACCESS 1
#define SLOW_UNALIGNED_ACCESS(MODE, ALIGN) 1
#define TEXT_SECTION_ASM_OP ".text"
#define DATA_SECTION_ASM_OP ".data"
#define BSS_SECTION_ASM_OP "\t.section\t.bss"
/* A C string constant for text to be output before each `asm' statement or
group of consecutive ones. Normally this is `"#APP"', which is a comment
that has no effect on most assemblers but tells the GNU assembler that it
must check the lines that follow for all valid assembler constructs. */
#define ASM_APP_ON "#APP\n"
/* A C string constant for text to be output after each `asm' statement or
group of consecutive ones. Normally this is `"#NO_APP"', which tells the
GNU assembler to resume making the time-saving assumptions that are valid
for ordinary compiler output. */
#define ASM_APP_OFF "#NO_APP\n"
/* This is how to output an assembler line defining a `char' constant. */
#define ASM_OUTPUT_CHAR(FILE, VALUE) \
do \
{ \
fprintf (FILE, "\t.byte\t"); \
output_addr_const (FILE, (VALUE)); \
fprintf (FILE, "\n"); \
} \
while (0)
/* This is how to output an assembler line defining a `short' constant. */
#define ASM_OUTPUT_SHORT(FILE, VALUE) \
do \
{ \
fprintf (FILE, "\t.hword\t"); \
output_addr_const (FILE, (VALUE)); \
fprintf (FILE, "\n"); \
} \
while (0)
/* This is how to output an assembler line defining an `int' constant.
We also handle symbol output here. */
#define ASM_OUTPUT_INT(FILE, VALUE) \
do \
{ \
fprintf (FILE, "\t.word\t"); \
output_addr_const (FILE, (VALUE)); \
fprintf (FILE, "\n"); \
} \
while (0)
/* A C statement to output to the stdio stream STREAM an assembler instruction
to assemble a single byte containing the number VALUE.
This declaration must be present. */
#define ASM_OUTPUT_BYTE(STREAM, VALUE) \
fprintf (STREAM, "\t%s\t0x%x\n", ASM_BYTE_OP, (VALUE))
/* Globalizing directive for a label. */
#define GLOBAL_ASM_OP "\t.globl "
#define REGISTER_NAMES \
{ "R0", "R1", "R2", "R3", "R4", "R5", "R6", "R7", \
"R8", "R9", "R10", "R11", "R12", "R13", "R14", "R15", \
"LOOP1", "LOOP2", "LOOP3", "LOOP4", "ap" }
/* If defined, a C initializer for an array of structures containing a name and
a register number. This macro defines additional names for hard registers,
thus allowing the `asm' option in declarations to refer to registers using
alternate names. */
#define ADDITIONAL_REGISTER_NAMES \
{ { "FP", 12}, {"SP", 13}, {"RA", 14}, {"IRA", 15} }
/* Define this macro if you are using an unusual assembler that requires
different names for the machine instructions.
The definition is a C statement or statements which output an assembler
instruction opcode to the stdio stream STREAM. The macro-operand PTR is a
variable of type `char *' which points to the opcode name in its "internal"
form--the form that is written in the machine description. The definition
should output the opcode name to STREAM, performing any translation you
desire, and increment the variable PTR to point at the end of the opcode so
that it will not be output twice. */
#define ASM_OUTPUT_OPCODE(STREAM, PTR) \
(PTR) = mt_asm_output_opcode (STREAM, PTR)
#define FINAL_PRESCAN_INSN(INSN, OPVEC, NOPERANDS) \
mt_final_prescan_insn (INSN, OPVEC, NOPERANDS)
#define PRINT_OPERAND(STREAM, X, CODE) mt_print_operand (STREAM, X, CODE)
/* A C expression which evaluates to true if CODE is a valid punctuation
character for use in the `PRINT_OPERAND' macro. */
/* #: Print nop for delay slot. */
#define PRINT_OPERAND_PUNCT_VALID_P(CODE) ((CODE) == '#')
#define PRINT_OPERAND_ADDRESS(STREAM, X) mt_print_operand_address (STREAM, X)
/* If defined, C string expressions to be used for the `%R', `%L', `%U', and
`%I' options of `asm_fprintf' (see `final.c'). These are useful when a
single `md' file must support multiple assembler formats. In that case, the
various `tm.h' files can define these macros differently.
USER_LABEL_PREFIX is defined in svr4.h. */
#define REGISTER_PREFIX "%"
#define LOCAL_LABEL_PREFIX "."
#define USER_LABEL_PREFIX ""
#define IMMEDIATE_PREFIX ""
/* This macro should be provided on machines where the addresses in a dispatch
table are relative to the table's own address.
The definition should be a C statement to output to the stdio stream STREAM
an assembler pseudo-instruction to generate a difference between two labels.
VALUE and REL are the numbers of two internal labels. The definitions of
these labels are output using `targetm.asm_out.internal_label', and they
must be printed in the same way here. */
#define ASM_OUTPUT_ADDR_DIFF_ELT(STREAM, BODY, VALUE, REL) \
fprintf (STREAM, "\t.word .L%d-.L%d\n", VALUE, REL)
/* This macro should be provided on machines where the addresses in a dispatch
table are absolute.
The definition should be a C statement to output to the stdio stream STREAM
an assembler pseudo-instruction to generate a reference to a label. VALUE
is the number of an internal label whose definition is output using
`targetm.asm_out.internal_label'. */
#define ASM_OUTPUT_ADDR_VEC_ELT(STREAM, VALUE) \
fprintf (STREAM, "\t.word .L%d\n", VALUE)
#define DWARF_FRAME_RETURN_COLUMN DWARF_FRAME_REGNUM (GPR_LINK)
#define EH_RETURN_DATA_REGNO(N) \
((N) == 0 ? GPR_R7 : (N) == 1 ? GPR_R8 : INVALID_REGNUM)
#define EH_RETURN_STACKADJ_REGNO GPR_R11
#define EH_RETURN_STACKADJ_RTX \
gen_rtx_REG (SImode, EH_RETURN_STACKADJ_REGNO)
#define EH_RETURN_HANDLER_REGNO GPR_R10
#define EH_RETURN_HANDLER_RTX \
gen_rtx_REG (SImode, EH_RETURN_HANDLER_REGNO)
#define ASM_OUTPUT_ALIGN(STREAM, POWER) \
fprintf ((STREAM), "\t.p2align %d\n", (POWER))
#define PREFERRED_DEBUGGING_TYPE DWARF2_DEBUG
#ifndef DWARF2_DEBUGGING_INFO
#define DWARF2_DEBUGGING_INFO
#endif
/* Define this macro if GCC should produce dwarf version 2-style
line numbers. This usually requires extending the assembler to
support them, and #defining DWARF2_LINE_MIN_INSN_LENGTH in the
assembler configuration header files. */
#define DWARF2_ASM_LINE_DEBUG_INFO 1
/* An alias for a machine mode name. This is the machine mode that
elements of a jump-table should have. */
#define CASE_VECTOR_MODE SImode
/* Define this macro if operations between registers with integral
mode smaller than a word are always performed on the entire
register. Most RISC machines have this property and most CISC
machines do not. */
#define WORD_REGISTER_OPERATIONS
/* The maximum number of bytes that a single instruction can move quickly from
memory to memory. */
#define MOVE_MAX 4
/* A C expression which is nonzero if on this machine it is safe to "convert"
an integer of INPREC bits to one of OUTPREC bits (where OUTPREC is smaller
than INPREC) by merely operating on it as if it had only OUTPREC bits.
On many machines, this expression can be 1.
When `TRULY_NOOP_TRUNCATION' returns 1 for a pair of sizes for modes for
which `MODES_TIEABLE_P' is 0, suboptimal code can result. If this is the
case, making `TRULY_NOOP_TRUNCATION' return 0 in such cases may improve
things. */
#define TRULY_NOOP_TRUNCATION(OUTPREC, INPREC) 1
#define Pmode SImode
/* An alias for the machine mode used for memory references to functions being
called, in `call' RTL expressions. On most machines this should be
`QImode'. */
#define FUNCTION_MODE QImode
#define HANDLE_SYSV_PRAGMA 1
/* Indicate how many instructions can be issued at the same time. */
#define ISSUE_RATE 1
/* Define the information needed to generate branch and scc insns. This is
stored from the compare operation. Note that we can't use "rtx" here
since it hasn't been defined! */
extern struct rtx_def * mt_compare_op0;
extern struct rtx_def * mt_compare_op1;

File diff suppressed because it is too large Load Diff

View File

@ -1,55 +0,0 @@
; Options for the mt port of the compiler
;
; Copyright (C) 2005, 2007 Free Software Foundation, Inc.
;
; This file is part of GCC.
;
; GCC is free software; you can redistribute it and/or modify it under
; the terms of the GNU General Public License as published by the Free
; Software Foundation; either version 3, or (at your option) any later
; version.
;
; GCC is distributed in the hope that it will be useful, but WITHOUT
; ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
; or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public
; License for more details.
;
; You should have received a copy of the GNU General Public License
; along with GCC; see the file COPYING3. If not see
; <http://www.gnu.org/licenses/>.
mbacc
Target Report Mask(BYTE_ACCESS)
Use byte loads and stores when generating code.
msim
Target RejectNegative
Use simulator runtime
mno-crt0
Target RejectNegative
Do not include crt0.o in the startup files
mdebug-arg
Target RejectNegative Mask(DEBUG_ARG)
Internal debug switch
mdebug-addr
Target RejectNegative Mask(DEBUG_ADDR)
Internal debug switch
mdebug-stack
Target RejectNegative Mask(DEBUG_STACK)
Internal debug switch
mdebug-loc
Target RejectNegative Mask(DEBUG_LOC)
Internal debug switch
mdebug
Target RejectNegative Mask(DEBUG)
Internal debug switch
march=
Target RejectNegative Joined Var(mt_cpu_string)
Specify CPU for code generation purposes

View File

@ -1,73 +0,0 @@
# Copyright (C) 2005, 2007 Free Software Foundation, Inc.
#
# This file is part of GCC.
#
# GCC is free software; you can redistribute it and/or modify it
# under the terms of the GNU General Public License as published
# by the Free Software Foundation; either version 3, or (at your
# option) any later version.
#
# GCC is distributed in the hope that it will be useful, but WITHOUT
# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
# or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public
# License for more details.
#
# You should have received a copy of the GNU General Public License
# along with GCC; see the file COPYING3. If not see
# <http://www.gnu.org/licenses/>.
# Name of assembly file containing libgcc1 functions.
# This entry must be present, but it can be empty if the target does
# not need any assembler functions to support its code generation.
CROSS_LIBGCC1 =
#
# Alternatively if assembler functions *are* needed then define the
# entries below:
# CROSS_LIBGCC1 = libgcc1-asm.a
# LIB1ASMSRC = mt/lib1funcs.asm
# LIB1ASMFUNCS = _udivsi3 etc...
LIB2FUNCS_EXTRA = $(srcdir)/config/mt/lib2extra-funcs.c
# If any special flags are necessary when building libgcc2 put them here.
#
# TARGET_LIBGCC2_CFLAGS =
EXTRA_PARTS = crtbegin.o crtend.o crti.o crtn.o
# We want fine grained libraries, so use the new code to build the
# floating point emulation libraries.
FPBIT = fp-bit.c
DPBIT = dp-bit.c
fp-bit.c: $(srcdir)/config/fp-bit.c
echo '#define FLOAT' > fp-bit.c
cat $(srcdir)/config/fp-bit.c >> fp-bit.c
dp-bit.c: $(srcdir)/config/fp-bit.c
cat $(srcdir)/config/fp-bit.c > dp-bit.c
# Assemble startup files.
$(T)crti.o: $(srcdir)/config/mt/crti.asm $(GCC_PASSES)
$(GCC_FOR_TARGET) $(GCC_CFLAGS) $(MULTILIB_CFLAGS) $(INCLUDES) \
-c -o $(T)crti.o -x assembler $(srcdir)/config/mt/crti.asm
$(T)crtn.o: $(srcdir)/config/mt/crtn.asm $(GCC_PASSES)
$(GCC_FOR_TARGET) $(GCC_CFLAGS) $(MULTILIB_CFLAGS) $(INCLUDES) \
-c -o $(T)crtn.o -x assembler $(srcdir)/config/mt/crtn.asm
# Enable the following if multilibs are needed.
# See gcc/genmultilib, gcc/gcc.texi and gcc/tm.texi for a
# description of the options and their values.
#
MULTILIB_OPTIONS = march=ms1-64-001/march=ms1-16-002/march=ms1-16-003/march=ms2
MULTILIB_DIRNAMES = ms1-64-001 ms1-16-002 ms1-16-003 ms2
# MULTILIB_MATCHES =
# MULTILIB_EXCEPTIONS =
# MULTILIB_EXTRA_OPTS =
EXTRA_MULTILIB_PARTS = crtbegin.o crtend.o crti.o crtn.o
#
# LIBGCC = stmp-multilib
# INSTALL_LIBGCC = install-multilib

View File

@ -1,63 +0,0 @@
/* Definitions of target machine for GNU compiler, for HP PA-RISC 1.1
Copyright (C) 1991, 1995, 1996, 2002, 2003, 2007 Free Software Foundation, Inc.
Contributed by Tim Moore (moore@defmacro.cs.utah.edu)
This file is part of GCC.
GCC is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 3, or (at your option)
any later version.
GCC is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with GCC; see the file COPYING3. If not see
<http://www.gnu.org/licenses/>. */
#undef TARGET_OS_CPP_BUILTINS
#define TARGET_OS_CPP_BUILTINS() \
do \
{ \
if (TARGET_PA_11) \
{ \
builtin_define_std ("hp700"); \
builtin_define_std ("HP700"); \
} \
else \
{ \
builtin_define_std ("hp800"); \
builtin_define_std ("hp9k8"); \
builtin_define_std ("hp9000s800"); \
} \
builtin_define_std ("BIT_MSF"); \
builtin_define_std ("BYTE_MSF"); \
builtin_define_std ("PARISC"); \
builtin_define_std ("REVARGV"); \
builtin_define_std ("hp9000"); \
builtin_define ("__pa_risc"); \
builtin_define_std ("parisc"); \
builtin_define_std ("spectrum"); \
builtin_define_std ("unix"); \
builtin_assert ("system=mach"); \
builtin_assert ("system=unix"); \
} \
while (0)
/* Don't default to pcc-struct-return, because gcc is the only compiler, and
we want to retain compatibility with older gcc versions. */
#define DEFAULT_PCC_STRUCT_RETURN 0
/* OSF1 on the PA still uses 16bit wchar_t. */
#undef WCHAR_TYPE
#undef WCHAR_TYPE_SIZE
#define WCHAR_TYPE "short unsigned int"
#define WCHAR_TYPE_SIZE 16
/* OSF1 wants to be different and use unsigned long as size_t. */
#undef SIZE_TYPE
#define SIZE_TYPE "long unsigned int"

View File

@ -1,63 +0,0 @@
/* Definitions of target machine for GNU compiler, for PRO.
Copyright (C) 1996, 1997, 2002, 2003, 2004, 2007 Free Software Foundation, Inc.
This file is part of GCC.
GCC is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 3, or (at your option)
any later version.
GCC is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with GCC; see the file COPYING3. If not see
<http://www.gnu.org/licenses/>. */
/* Make GCC agree with types.h. */
#undef SIZE_TYPE
#undef PTRDIFF_TYPE
#define SIZE_TYPE "unsigned int"
#define PTRDIFF_TYPE "int"
#undef TARGET_OS_CPP_BUILTINS
#define TARGET_OS_CPP_BUILTINS() \
do \
{ \
if (!c_dialect_cxx () && !flag_iso) \
{ \
builtin_define ("hppa"); \
builtin_define_std ("PWB"); \
} \
builtin_define ("__pro__"); \
builtin_assert ("system=pro"); \
} \
while (0)
/* Like the default, except no -lg. */
#undef LIB_SPEC
#define LIB_SPEC "%{!p:%{!pg:-lc}}%{p: -L/lib/libp/ -lc}%{pg: -L/lib/libp/ -lc}"
/* hpux8 and later have C++ compatible include files, so do not
pretend they are `extern "C"'. */
#define NO_IMPLICIT_EXTERN_C
/* We don't want a crt0.o to get linked in automatically, we want the
linker script to pull it in. */
#undef STARTFILE_SPEC
#define STARTFILE_SPEC ""
/* We need to override the following two macros defined in elfos.h since
the .comm directive has a different syntax and it can't be used for
local common symbols. */
#undef ASM_OUTPUT_ALIGNED_COMMON
#define ASM_OUTPUT_ALIGNED_COMMON(FILE, NAME, SIZE, ALIGN) \
pa_asm_output_aligned_common (FILE, NAME, SIZE, ALIGN)
#undef ASM_OUTPUT_ALIGNED_LOCAL
#define ASM_OUTPUT_ALIGNED_LOCAL(FILE, NAME, SIZE, ALIGN) \
pa_asm_output_aligned_local (FILE, NAME, SIZE, ALIGN)

View File

@ -1,17 +0,0 @@
LIB2FUNCS_EXTRA=lib2funcs.asm
# We want fine grained libraries, so use the new code to build the
# floating point emulation libraries.
FPBIT = fp-bit.c
DPBIT = dp-bit.c
dp-bit.c: $(srcdir)/config/fp-bit.c
cat $(srcdir)/config/fp-bit.c > dp-bit.c
fp-bit.c: $(srcdir)/config/fp-bit.c
echo '#define FLOAT' > fp-bit.c
cat $(srcdir)/config/fp-bit.c >> fp-bit.c
lib2funcs.asm: $(srcdir)/config/pa/lib2funcs.asm
rm -f lib2funcs.asm
cp $(srcdir)/config/pa/lib2funcs.asm .

View File

@ -1,222 +0,0 @@
/* Operating system specific defines to be used when targeting GCC for
Sequent's Dynix/ptx v4 and later.
Copyright 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2007
Free Software Foundation, Inc.
Generic SysV4 file Contributed by Ron Guilmette (rfg@monkeys.com).
Renamed and changed to suit Dynix/ptx v4 and later.
Modified by Tim Wright (timw@sequent.com).
Modified by Janis Johnson (janis@us.ibm.com).
This file is part of GCC.
GCC is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 3, or (at your option)
any later version.
GCC is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with GCC; see the file COPYING3. If not see
<http://www.gnu.org/licenses/>.
*/
/* Define a symbol indicating that we are using svr4.h. */
#define USING_SVR4_H
/* Use DWARF 2 debugging info by default. */
#undef PREFERRED_DEBUGGING_TYPE
#define PREFERRED_DEBUGGING_TYPE DWARF2_DEBUG
#define DWARF2_DEBUGGING_INFO 1
/* Cpp, assembler, linker, library, and startfile spec's. */
/* This defines which switch letters take arguments. On svr4, most of
the normal cases (defined in gcc.c) apply, and we also have -h* and
-z* options (for the linker). Note however that there is no such
thing as a -T option for svr4. */
#define SWITCH_TAKES_ARG(CHAR) \
( (CHAR) == 'D' \
|| (CHAR) == 'U' \
|| (CHAR) == 'o' \
|| (CHAR) == 'e' \
|| (CHAR) == 'u' \
|| (CHAR) == 'I' \
|| (CHAR) == 'm' \
|| (CHAR) == 'L' \
|| (CHAR) == 'A' \
|| (CHAR) == 'h' \
|| (CHAR) == 'z')
/* This defines which multi-letter switches take arguments. On svr4,
there are no such switches except those implemented by GCC itself. */
#define WORD_SWITCH_TAKES_ARG(STR) \
(DEFAULT_WORD_SWITCH_TAKES_ARG (STR) \
&& strcmp (STR, "Tdata") && strcmp (STR, "Ttext") \
&& strcmp (STR, "Tbss"))
/* Provide an ASM_SPEC appropriate for svr4. Here we try to support as
many of the specialized svr4 assembler options as seems reasonable,
given that there are certain options which we can't (or shouldn't)
support directly due to the fact that they conflict with other options
for other svr4 tools (e.g. ld) or with other options for GCC itself.
For example, we don't support the -o (output file) or -R (remove
input file) options because GCC already handles these things. We
also don't support the -m (run m4) option for the assembler because
that conflicts with the -m (produce load map) option of the svr4
linker. We do however allow passing arbitrary options to the svr4
assembler via the -Wa, option.
Note that gcc doesn't allow a space to follow -Y in a -Ym,* or -Yd,*
option.
*/
#undef ASM_SPEC
#ifdef USE_GAS
#define ASM_SPEC \
"%{v:-V} %{Qy:} %{!Qn:-Qy} %{n} %{T} %{Ym,*} %{Yd,*} %{Wa,*:%*}"
#else
#define ASM_SPEC \
"-no_0f_fix -no_eflags_chk %{v:-V} %{Qy:} %{!Qn:-Qy} %{n} %{T} %{Ym,*} %{Yd,*} %{Wa,*:%*}"
#endif
#define AS_NEEDS_DASH_FOR_PIPED_INPUT
/* Provide a LIB_SPEC appropriate for svr4. Here we tack on the default
standard C library (unless we are building a shared library). */
#undef LIB_SPEC
#define LIB_SPEC "%{!shared:%{!symbolic:-lc}}"
/* Provide a LIBGCC_SPEC appropriate for svr4. We also want to exclude
libgcc when -symbolic. */
#undef LIBGCC_SPEC
#define LIBGCC_SPEC "%{!shared:%{!symbolic:-lgcc}}"
/* Provide an ENDFILE_SPEC appropriate for svr4. Here we tack on our own
magical crtend.o file (see crtstuff.c) which provides part of the
support for getting C++ file-scope static object constructed before
entering `main', followed by the normal svr3/svr4 "finalizer" file,
which is either `gcrtn.o' or `crtn.o'. */
#undef ENDFILE_SPEC
#define ENDFILE_SPEC "crtend.o%s %{pg:gcrtn.o}%{!pg:crtn.o%s}"
/* Provide a LINK_SPEC appropriate for svr4. Here we provide support
for the special GCC options -static, -shared, and -symbolic which
allow us to link things in one of these three modes by applying the
appropriate combinations of options at link-time. We also provide
support here for as many of the other svr4 linker options as seems
reasonable, given that some of them conflict with options for other
svr4 tools (e.g. the assembler). In particular, we do support the
-z*, -V, -b, -t, -Qy, -Qn, and -YP* options here, and the -e*,
-l*, -o*, -r, -s, -u*, and -L* options are directly supported
by gcc.c itself. We don't directly support the -m (generate load
map) option because that conflicts with the -m (run m4) option of
the svr4 assembler. We also don't directly support the svr4 linker's
-I* or -M* options because these conflict with existing GCC options.
We do however allow passing arbitrary options to the svr4 linker
via the -Wl, option. We don't support the svr4 linker's -a option
at all because it is totally useless and because it conflicts with
GCC's own -a option.
Note that gcc doesn't allow a space to follow -Y in a -YP,* option.
When the -G link option is used (-shared and -symbolic) a final link is
not being done. */
#undef LINK_SPEC
#define LINK_SPEC "%{h*} %{v:-V} \
%{b} \
%{static:-dn -Bstatic} \
%{shared:-G -dy -z text} \
%{symbolic:-Bsymbolic -G -dy -z text} \
%{G:-G} \
%{YP,*} \
%{!YP,*:%{p:-Y P,/lib/libp:/usr/lib/libp:/lib:/usr/lib} \
%{!p:-Y P,/lib:/usr/lib}} \
%{Qy:} %{!Qn:-Qy}"
/* Gcc automatically adds in one of the files /lib/values-Xc.o
or /lib/values-Xa.o, for each final link step (depending upon the other
gcc options selected, such as -ansi). These files each contain one
(initialized) copy of a special variable called `_lib_version'. Each
one of these files has `_lib_version' initialized to a different (enum)
value. The SVR4 library routines query the value of `_lib_version'
at run to decide how they should behave. Specifically, they decide
(based upon the value of `_lib_version') if they will act in a strictly
ANSI conforming manner or not.
*/
#undef STARTFILE_SPEC
#define STARTFILE_SPEC "%{!shared: \
%{!symbolic: \
%{pg:gcrt1.o%s}%{!pg:%{p:mcrt1.o%s}%{!p:crt1.o%s}}}}\
%{pg:gcrti.o%s}%{!pg:crti.o%s} \
%{ansi:values-Xc.o%s} \
%{!ansi:values-Xa.o%s} \
crtbegin.o%s"
/* Don't use bcopy, which doesn't handle overlaps before DYNIX/ptx 4.6. */
#undef HAVE_BCOPY
/* The numbers used to denote specific machine registers in the System V
Release 4 DWARF debugging information are quite likely to be totally
different from the numbers used in BSD stabs debugging information
for the same kind of target machine. Thus, we undefine the macro
DBX_REGISTER_NUMBER here as an extra inducement to get people to
provide proper machine-specific definitions of DBX_REGISTER_NUMBER
(which is also used to provide DWARF registers numbers in dwarfout.c)
in their tm.h files which include this file. */
#undef DBX_REGISTER_NUMBER
/* Like block addresses, stabs line numbers are relative to the
current function. */
#define DBX_LINES_FUNCTION_RELATIVE 1
/* Generate a blank trailing N_SO to mark the end of the .o file, since
we can't depend upon the linker to mark .o file boundaries with
embedded stabs. */
#define DBX_OUTPUT_NULL_N_SO_AT_MAIN_SOURCE_FILE_END
/* Define the actual types of some ANSI-mandated types. (These
definitions should work for most SVR4 systems). */
#undef SIZE_TYPE
#define SIZE_TYPE "unsigned int"
#undef PTRDIFF_TYPE
#define PTRDIFF_TYPE "int"
#undef WCHAR_TYPE
#define WCHAR_TYPE "long int"
#undef WCHAR_TYPE_SIZE
#define WCHAR_TYPE_SIZE BITS_PER_WORD
/* This says how to output assembler code to declare an uninitialized
external linkage data item. There's a bug in the DYNIX/ptx linker
(PR 254649) when the alignment for such an object is specified, so
ignore the ALIGN parameter. */
#undef ASM_OUTPUT_ALIGNED_COMMON
#define ASM_OUTPUT_ALIGNED_COMMON(FILE, NAME, SIZE, ALIGN) \
do { \
fprintf ((FILE), "%s", COMMON_ASM_OP); \
assemble_name ((FILE), (NAME)); \
fprintf ((FILE), ",%lu\n", (unsigned long)(SIZE)); \
} while (0)

View File

@ -1,108 +0,0 @@
/* Definitions of target machine for GNU compiler, for BeOS.
Copyright (C) 1997, 2000, 2001, 2002, 2003, 2005, 2007
Free Software Foundation, Inc.
Contributed by Fred Fish (fnf@cygnus.com), based on aix41.h
from David Edelsohn (edelsohn@npac.syr.edu).
This file is part of GCC.
GCC is free software; you can redistribute it and/or modify it
under the terms of the GNU General Public License as published
by the Free Software Foundation; either version 3, or (at your
option) any later version.
GCC is distributed in the hope that it will be useful, but WITHOUT
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public
License for more details.
You should have received a copy of the GNU General Public License
along with GCC; see the file COPYING3. If not see
<http://www.gnu.org/licenses/>. */
#undef TARGET_VERSION
#define TARGET_VERSION fprintf (stderr, " (BeOS/PowerPC)");
#undef ASM_SPEC
#define ASM_SPEC "-u %(asm_cpu)"
#undef TARGET_OS_CPP_BUILTINS
/* __POWERPC__ must be defined for some header files. */
#define TARGET_OS_CPP_BUILTINS() \
do \
{ \
builtin_define ("__BEOS__"); \
builtin_define ("__POWERPC__"); \
builtin_assert ("system=beos"); \
builtin_assert ("cpu=powerpc"); \
builtin_assert ("machine=powerpc"); \
} \
while (0)
#undef CPP_SPEC
#define CPP_SPEC "%{posix: -D_POSIX_SOURCE}"
/* This is the easiest way to disable use of gcc's builtin alloca,
which in the current BeOS release (DR9) is a problem because of the
relatively low default stack size of 256K with no way to expand it.
So anything we compile for the BeOS target should not use the
builtin alloca. This also has the unwanted side effect of
disabling all builtin functions though. */
#undef CC1_SPEC
#define CC1_SPEC "%{!fbuiltin: -fno-builtin}"
#undef CC1PLUS_SPEC
#define CC1PLUS_SPEC "%{!fbuiltin: -fno-builtin}"
#undef ASM_DEFAULT_SPEC
#define ASM_DEFAULT_SPEC "-mppc"
#undef TARGET_DEFAULT
#define TARGET_DEFAULT (MASK_POWERPC | MASK_NEW_MNEMONICS)
#undef PROCESSOR_DEFAULT
#define PROCESSOR_DEFAULT PROCESSOR_PPC603
/* Define this macro as a C expression for the initializer of an
array of string to tell the driver program which options are
defaults for this target and thus do not need to be handled
specially when using `MULTILIB_OPTIONS'.
Do not define this macro if `MULTILIB_OPTIONS' is not defined in
the target makefile fragment or if none of the options listed in
`MULTILIB_OPTIONS' are set by default. *Note Target Fragment::. */
#undef MULTILIB_DEFAULTS
#define MULTILIB_DEFAULTS { "mcpu=powerpc" }
/* These empty definitions get rid of the attempt to link in crt0.o
and any libraries like libc.a.
On BeOS the ld executable is actually a linker front end that first runs
the GNU linker with the -r option to generate a relocatable XCOFF output
file, and then runs Metrowork's linker (mwld) to generate a fully linked
executable. */
#undef LIB_SPEC
#define LIB_SPEC ""
#undef LINK_SPEC
#define LINK_SPEC ""
#undef STARTFILE_SPEC
#define STARTFILE_SPEC ""
/* Text to write out after a CALL that may be replaced by glue code by
the loader. */
#undef RS6000_CALL_GLUE
#define RS6000_CALL_GLUE "cror 15,15,15"
/* Struct alignments are done on 4 byte boundaries for all types. */
#undef BIGGEST_FIELD_ALIGNMENT
#define BIGGEST_FIELD_ALIGNMENT 32
/* STANDARD_INCLUDE_DIR is the equivalent of "/usr/include" on UNIX. */
#define STANDARD_INCLUDE_DIR "/boot/develop/headers/posix"
/* SYSTEM_INCLUDE_DIR is the location for system specific, non-POSIX headers. */
#define SYSTEM_INCLUDE_DIR "/boot/develop/headers/be"

View File

@ -1,23 +0,0 @@
/* Definitions of target machine for GNU compiler.
kaOS on PowerPC architecture version.
Copyright (C) 2003, 2007 Free Software Foundation, Inc.
This file is part of GCC.
GCC is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 3, or (at your option)
any later version.
GCC is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with GCC; see the file COPYING3. If not see
<http://www.gnu.org/licenses/>. */
#undef TARGET_VERSION
#define TARGET_VERSION fputs (" (PowerPC/kaOS[ELF])", stderr);

View File

@ -655,7 +655,6 @@ extern int fixuplabelno;
myellowknife : %(link_start_yellowknife) ; \
mmvme : %(link_start_mvme) ; \
msim : %(link_start_sim) ; \
mwindiss : %(link_start_windiss) ; \
mcall-freebsd: %(link_start_freebsd) ; \
mcall-linux : %(link_start_linux) ; \
mcall-gnu : %(link_start_gnu) ; \
@ -713,7 +712,6 @@ extern int fixuplabelno;
myellowknife : %(link_os_yellowknife) ; \
mmvme : %(link_os_mvme) ; \
msim : %(link_os_sim) ; \
mwindiss : %(link_os_windiss) ; \
mcall-freebsd: %(link_os_freebsd) ; \
mcall-linux : %(link_os_linux) ; \
mcall-gnu : %(link_os_gnu) ; \
@ -730,7 +728,6 @@ extern int fixuplabelno;
myellowknife : %(cpp_os_yellowknife) ; \
mmvme : %(cpp_os_mvme) ; \
msim : %(cpp_os_sim) ; \
mwindiss : %(cpp_os_windiss) ; \
mcall-freebsd: %(cpp_os_freebsd) ; \
mcall-linux : %(cpp_os_linux) ; \
mcall-gnu : %(cpp_os_gnu) ; \
@ -747,7 +744,6 @@ extern int fixuplabelno;
myellowknife : %(startfile_yellowknife) ; \
mmvme : %(startfile_mvme) ; \
msim : %(startfile_sim) ; \
mwindiss : %(startfile_windiss) ; \
mcall-freebsd: %(startfile_freebsd) ; \
mcall-linux : %(startfile_linux) ; \
mcall-gnu : %(startfile_gnu) ; \
@ -764,7 +760,6 @@ extern int fixuplabelno;
myellowknife : %(lib_yellowknife) ; \
mmvme : %(lib_mvme) ; \
msim : %(lib_sim) ; \
mwindiss : %(lib_windiss) ; \
mcall-freebsd: %(lib_freebsd) ; \
mcall-linux : %(lib_linux) ; \
mcall-gnu : %(lib_gnu) ; \
@ -781,7 +776,6 @@ extern int fixuplabelno;
myellowknife : %(endfile_yellowknife) ; \
mmvme : %(endfile_mvme) ; \
msim : %(endfile_sim) ; \
mwindiss : %(endfile_windiss) ; \
mcall-freebsd: %(endfile_freebsd) ; \
mcall-linux : %(endfile_linux) ; \
mcall-gnu : %(endfile_gnu) ; \
@ -992,25 +986,6 @@ ncrtn.o%s"
#define CPP_OS_OPENBSD_SPEC "%{posix:-D_POSIX_SOURCE} %{pthread:-D_POSIX_THREADS}"
#endif
/* WindISS support. */
#define LIB_WINDISS_SPEC "--start-group -li -lcfp -lwindiss -lram -limpl -limpfp --end-group"
#define CPP_OS_WINDISS_SPEC "\
-D__rtasim \
-D__EABI__ \
-D__ppc \
%{!msoft-float: -D__hardfp} \
"
#define STARTFILE_WINDISS_SPEC "crt0.o%s crtbegin.o%s"
#define ENDFILE_WINDISS_SPEC "crtend.o%s"
#define LINK_START_WINDISS_SPEC ""
#define LINK_OS_WINDISS_SPEC ""
/* Define any extra SPECS that the compiler needs to generate. */
/* Override rs6000.h definition. */
#undef SUBTARGET_EXTRA_SPECS
@ -1025,7 +1000,6 @@ ncrtn.o%s"
{ "lib_linux", LIB_LINUX_SPEC }, \
{ "lib_netbsd", LIB_NETBSD_SPEC }, \
{ "lib_openbsd", LIB_OPENBSD_SPEC }, \
{ "lib_windiss", LIB_WINDISS_SPEC }, \
{ "lib_default", LIB_DEFAULT_SPEC }, \
{ "startfile_ads", STARTFILE_ADS_SPEC }, \
{ "startfile_yellowknife", STARTFILE_YELLOWKNIFE_SPEC }, \
@ -1036,7 +1010,6 @@ ncrtn.o%s"
{ "startfile_linux", STARTFILE_LINUX_SPEC }, \
{ "startfile_netbsd", STARTFILE_NETBSD_SPEC }, \
{ "startfile_openbsd", STARTFILE_OPENBSD_SPEC }, \
{ "startfile_windiss", STARTFILE_WINDISS_SPEC }, \
{ "startfile_default", STARTFILE_DEFAULT_SPEC }, \
{ "endfile_ads", ENDFILE_ADS_SPEC }, \
{ "endfile_yellowknife", ENDFILE_YELLOWKNIFE_SPEC }, \
@ -1047,7 +1020,6 @@ ncrtn.o%s"
{ "endfile_linux", ENDFILE_LINUX_SPEC }, \
{ "endfile_netbsd", ENDFILE_NETBSD_SPEC }, \
{ "endfile_openbsd", ENDFILE_OPENBSD_SPEC }, \
{ "endfile_windiss", ENDFILE_WINDISS_SPEC }, \
{ "endfile_default", ENDFILE_DEFAULT_SPEC }, \
{ "link_path", LINK_PATH_SPEC }, \
{ "link_shlib", LINK_SHLIB_SPEC }, \
@ -1062,7 +1034,6 @@ ncrtn.o%s"
{ "link_start_linux", LINK_START_LINUX_SPEC }, \
{ "link_start_netbsd", LINK_START_NETBSD_SPEC }, \
{ "link_start_openbsd", LINK_START_OPENBSD_SPEC }, \
{ "link_start_windiss", LINK_START_WINDISS_SPEC }, \
{ "link_start_default", LINK_START_DEFAULT_SPEC }, \
{ "link_os", LINK_OS_SPEC }, \
{ "link_os_ads", LINK_OS_ADS_SPEC }, \
@ -1074,7 +1045,6 @@ ncrtn.o%s"
{ "link_os_gnu", LINK_OS_GNU_SPEC }, \
{ "link_os_netbsd", LINK_OS_NETBSD_SPEC }, \
{ "link_os_openbsd", LINK_OS_OPENBSD_SPEC }, \
{ "link_os_windiss", LINK_OS_WINDISS_SPEC }, \
{ "link_os_default", LINK_OS_DEFAULT_SPEC }, \
{ "cc1_endian_big", CC1_ENDIAN_BIG_SPEC }, \
{ "cc1_endian_little", CC1_ENDIAN_LITTLE_SPEC }, \
@ -1089,7 +1059,6 @@ ncrtn.o%s"
{ "cpp_os_linux", CPP_OS_LINUX_SPEC }, \
{ "cpp_os_netbsd", CPP_OS_NETBSD_SPEC }, \
{ "cpp_os_openbsd", CPP_OS_OPENBSD_SPEC }, \
{ "cpp_os_windiss", CPP_OS_WINDISS_SPEC }, \
{ "cpp_os_default", CPP_OS_DEFAULT_SPEC }, \
{ "fbsd_dynamic_linker", FBSD_DYNAMIC_LINKER }, \
SUBSUBTARGET_EXTRA_SPECS

View File

@ -119,10 +119,6 @@ memb
Target RejectNegative
Set the PPC_EMB bit in the ELF flags header
mwindiss
Target RejectNegative
Use the WindISS simulator
mshlib
Target RejectNegative
no description yet

View File

@ -1,30 +0,0 @@
# Build the libraries for both hard & soft floating point and ppc/common.
MULTILIB_OPTIONS = msoft-float mcpu=common
MULTILIB_DIRNAMES = soft-float common
# This is probably the correct define, to override the Makefile
# default, but using it causes more problems than it solves.
#
# Using it will cause fixincludes to try and fix some of the
# mwcc header files, which it seems to do a poor job of. On
# the other hand, not using it will only cause the gcc version
# of limits.h to lack the header and trailer parts that are
# tacked on to it when there is a limits.h in the system header
# dir.
#
# For now it is probably better to change the rule for
# LIMITS_H_TEST to explicitly look for the BeOS limits.h.
# If the gcc limits.h is not set up to #include_next the
# BeOS limits.h, then some things will go undefined, like
# PATH_MAX.
#SYSTEM_HEADER_DIR=/boot/develop/headers/posix
# Test to see whether <limits.h> exists in the system header files.
LIMITS_H_TEST = [ -f /boot/develop/headers/posix/limits.h ]
# Aix 3.2.x needs milli.exp for -mcpu=common
EXTRA_PARTS = milli.exp
$(T)milli.exp: $(srcdir)/config/rs6000/milli.exp
rm -f $(T)milli.exp
cp $(srcdir)/config/rs6000/milli.exp $(T)milli.exp

View File

@ -1,46 +0,0 @@
/* Support for GCC on PowerPC using WindISS simulator.
Copyright (C) 2002, 2003, 2007 Free Software Foundation, Inc.
Contributed by CodeSourcery, LLC.
This file is part of GCC.
GCC is free software; you can redistribute it and/or modify it
under the terms of the GNU General Public License as published
by the Free Software Foundation; either version 3, or (at your
option) any later version.
GCC is distributed in the hope that it will be useful, but WITHOUT
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public
License for more details.
You should have received a copy of the GNU General Public License
along with GCC; see the file COPYING3. If not see
<http://www.gnu.org/licenses/>. */
#undef TARGET_VERSION
#define TARGET_VERSION fprintf (stderr, " (PowerPC WindISS)");
#undef LIB_DEFAULT_SPEC
#define LIB_DEFAULT_SPEC "%(lib_windiss)"
#undef STARTFILE_DEFAULT_SPEC
#define STARTFILE_DEFAULT_SPEC "%(startfile_windiss)"
#undef ENDFILE_DEFAULT_SPEC
#define ENDFILE_DEFAULT_SPEC "%(endfile_windiss)"
#undef LINK_START_DEFAULT_SPEC
#define LINK_START_DEFAULT_SPEC "%(link_start_windiss)"
#undef LINK_OS_DEFAULT_SPEC
#define LINK_OS_DEFAULT_SPEC "%(link_os_windiss)"
#undef CRTSAVRES_DEFAULT_SPEC
#define CRTSAVRES_DEFAULT_SPEC ""
#undef WCHAR_TYPE
#define WCHAR_TYPE "short unsigned int"
#undef WCHAR_TYPE_SIZE
#define WCHAR_TYPE_SIZE 16

View File

@ -1,23 +0,0 @@
/* Definitions of target machine for GNU compiler.
kaOS on sh architecture version.
Copyright (C) 2003, 2007 Free Software Foundation, Inc.
This file is part of GCC.
GCC is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 3, or (at your option)
any later version.
GCC is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with GCC; see the file COPYING3. If not see
<http://www.gnu.org/licenses/>. */
#undef TARGET_VERSION
#define TARGET_VERSION fputs (" (sh/kaOS[ELF])", stderr);

View File

@ -1,26 +0,0 @@
/* Operating system specific defines to be used when targeting GCC for any
Solaris 2 system up to Solaris 2.6.
Copyright 2004, 2007 Free Software Foundation, Inc.
This file is part of GCC.
GCC is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 3, or (at your option)
any later version.
GCC is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with GCC; see the file COPYING3. If not see
<http://www.gnu.org/licenses/>. */
#undef CPP_SUBTARGET_SPEC
#define CPP_SUBTARGET_SPEC "\
%{pthreads|pthread:-D_REENTRANT -D_PTHREADS95} \
%{!pthreads:%{!pthread:%{threads:-D_REENTRANT -D_SOLARIS_THREADS}}} \
%{compat-bsd:-iwithprefixbefore ucbinclude -I/usr/ucbinclude} \
"

View File

@ -1,5 +0,0 @@
/* Up through Solaris 2.6, the system linker does not work with DWARF2
since it does not have working support for relocations to unaligned
data. */
#undef DWARF2_DEBUGGING_INFO

View File

@ -1,33 +0,0 @@
/* Target macros for GCC for SPARC running System V.4
Copyright (C) 2003, 2005, 2007
Free Software Foundation, Inc.
This file is part of GCC.
GCC is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 3, or (at your option)
any later version.
GCC is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with GCC; see the file COPYING3. If not see
<http://www.gnu.org/licenses/>. */
/* Provide a set of pre-definitions and pre-assertions appropriate for
the SPARC running svr4. __svr4__ is our extension. */
/* Target OS builtins. */ \
#define TARGET_OS_CPP_BUILTINS() \
do \
{ \
builtin_define_std ("unix"); \
builtin_define ("__svr4__"); \
builtin_assert ("system=unix"); \
builtin_assert ("system=svr4"); \
} \
while (0)

View File

@ -1,31 +0,0 @@
/* Definitions of target machine for GNU compiler. BSD version.
Copyright (C) 2002, 2007 Free Software Foundation, Inc.
This file is part of GCC.
GCC is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 3, or (at your option)
any later version.
GCC is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with GCC; see the file COPYING3. If not see
<http://www.gnu.org/licenses/>. */
#define TARGET_OS_CPP_BUILTINS() \
do \
{ \
builtin_define_std ("unix"); \
builtin_assert ("system=bsd"); \
\
builtin_define_std ("vax"); \
if (TARGET_G_FLOAT) \
builtin_define_std ("GFLOAT"); \
} \
while (0)

View File

@ -1,3 +0,0 @@
LIB2FUNCS_EXTRA = \
$(srcdir)/config/memcmp.c $(srcdir)/config/memcpy.c \
$(srcdir)/config/memmove.c $(srcdir)/config/memset.c

View File

@ -1,41 +0,0 @@
/* Output variables, constants and external declarations, for GNU compiler.
Copyright (C) 1999, 2002, 2007 Free Software Foundation, Inc.
This file is part of GCC.
GCC is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 3, or (at your option)
any later version.
GCC is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with GCC; see the file COPYING3. If not see
<http://www.gnu.org/licenses/>. */
#define TARGET_OS_CPP_BUILTINS() \
do \
{ \
builtin_define_std ("unix"); \
builtin_define_std ("ultrix"); \
builtin_define_std ("bsd4_2"); \
builtin_assert ("system=unix"); \
builtin_assert ("system=bsd"); \
\
builtin_define_std ("vax"); \
if (TARGET_G_FLOAT) \
builtin_define_std ("GFLOAT"); \
} \
while (0)
/* These are as defined in /usr/include/sys/stdtypes.h.
These values are for ultrix 4.2 on the VAX. */
#define SIZE_TYPE "unsigned int"
#define PTRDIFF_TYPE "int"
#define WCHAR_TYPE "unsigned int"
#define WCHAR_TYPE_SIZE 32

View File

@ -1,65 +0,0 @@
/* Definitions of target machine for GNU compiler. VAX sysV version.
Copyright (C) 1988, 1993, 1996, 2000, 2002, 2007 Free Software Foundation, Inc.
This file is part of GCC.
GCC is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 3, or (at your option)
any later version.
GCC is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with GCC; see the file COPYING3. If not see
<http://www.gnu.org/licenses/>. */
#define TARGET_OS_CPP_BUILTINS() \
do \
{ \
builtin_define_std ("unix"); \
builtin_assert ("system=svr3"); \
\
builtin_define_std ("vax"); \
if (TARGET_G_FLOAT) \
builtin_define_std ("GFLOAT"); \
} \
while (0)
/* Output #ident as a .ident. */
#define ASM_OUTPUT_IDENT(FILE, NAME) fprintf (FILE, "\t.ident \"%s\"\n", NAME);
#undef DBX_DEBUGGING_INFO
#define SDB_DEBUGGING_INFO 1
#undef LIB_SPEC
/* The .file command should always begin the output. */
#define TARGET_ASM_FILE_START_FILE_DIRECTIVE true
#undef ASM_OUTPUT_ALIGN
#define ASM_OUTPUT_ALIGN(FILE,LOG) \
fprintf(FILE, "\t.align %d\n", 1 << (LOG))
#undef ASM_OUTPUT_LOCAL
#define ASM_OUTPUT_LOCAL(FILE,NAME,SIZE,ROUNDED) \
( switch_to_section (data_section), \
assemble_name ((FILE), (NAME)), \
fprintf ((FILE), ":\n\t.space %u\n", (int)(ROUNDED)))
#define ASM_OUTPUT_ASCII(FILE,PTR,LEN) \
do { \
const unsigned char *s = (const unsigned char *)(PTR);\
size_t i, limit = (LEN); \
for (i = 0; i < limit; s++, i++) \
{ \
if ((i % 8) == 0) \
fputs ("\n\t.byte\t", (FILE)); \
fprintf ((FILE), "%s0x%x", (i%8?",":""), (unsigned)*s); \
} \
fputs ("\n", (FILE)); \
} while (0)

View File

@ -1,37 +0,0 @@
/* Support for GCC using WindISS simulator.
Copyright (C) 2003, 2007 Free Software Foundation, Inc.
Contributed by CodeSourcery, LLC.
This file is part of GCC.
GCC is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 3, or (at your option)
any later version.
GCC is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with GCC; see the file COPYING3. If not see
<http://www.gnu.org/licenses/>. */
/* windiss uses wchar_t == unsigned short (UCS2) on all architectures. */
#undef WCHAR_TYPE
#define WCHAR_TYPE "short unsigned int"
#undef WCHAR_TYPE_SIZE
#define WCHAR_TYPE_SIZE 16
/* windiss has wint_t == int */
#undef WINT_TYPE
#define WINT_TYPE "int"
/* No profiling. */
#undef FUNCTION_PROFILER
#define FUNCTION_PROFILER(FILE, LABELNO) \
{ \
sorry ("profiler support for WindISS"); \
}

2
gcc/configure vendored
View File

@ -22696,7 +22696,7 @@ esac
# version to the per-target configury.
case "$target" in
i?86*-*-* | mips*-*-* | alpha*-*-* | powerpc*-*-* | sparc*-*-* | m68*-*-* \
| x86_64*-*-* | hppa*-*-* | arm*-*-* | strongarm*-*-* | xscale*-*-* \
| x86_64*-*-* | hppa*-*-* | arm*-*-* \
| xstormy16*-*-* | cris-*-* | xtensa-*-* | bfin-*-* | score*-*-* | spu-*-*)
insn="nop"
;;

View File

@ -3056,7 +3056,7 @@ esac
# version to the per-target configury.
case "$target" in
i?86*-*-* | mips*-*-* | alpha*-*-* | powerpc*-*-* | sparc*-*-* | m68*-*-* \
| x86_64*-*-* | hppa*-*-* | arm*-*-* | strongarm*-*-* | xscale*-*-* \
| x86_64*-*-* | hppa*-*-* | arm*-*-* \
| xstormy16*-*-* | cris-*-* | xtensa-*-* | bfin-*-* | score*-*-* | spu-*-*)
insn="nop"
;;

View File

@ -3918,8 +3918,8 @@ programs. When preprocessing assembler, however, dollars are not
identifier characters by default.
Currently the targets that by default do not permit @samp{$} are AVR,
IP2K, MMIX, MIPS Irix 3, ARM aout, and PowerPC targets for the AIX and
BeOS operating systems.
IP2K, MMIX, MIPS Irix 3, ARM aout, and PowerPC targets for the AIX
operating system.
You can override the default with @option{-fdollars-in-identifiers} or
@option{fno-dollars-in-identifiers}. @xref{fdollars-in-identifiers}.

View File

@ -2362,7 +2362,7 @@ This attribute is ignored for R8C target.
@item interrupt
@cindex interrupt handler functions
Use this attribute on the ARM, AVR, CRX, M32C, M32R/D, m68k, MS1,
Use this attribute on the ARM, AVR, CRX, M32C, M32R/D, m68k,
and Xstormy16 ports to indicate that the specified function is an
interrupt handler. The compiler will generate function entry and exit
sequences suitable for use in an interrupt handler when this attribute

View File

@ -835,11 +835,6 @@ whether you use the GNU assembler. On any other system,
@itemize @bullet
@item @samp{hppa1.0-@var{any}-@var{any}}
@item @samp{hppa1.1-@var{any}-@var{any}}
@item @samp{i386-@var{any}-sysv}
@item @samp{m68k-bull-sysv}
@item @samp{m68k-hp-hpux}
@item @samp{m68000-hp-hpux}
@item @samp{m68000-att-sysv}
@item @samp{sparc-sun-solaris2.@var{any}}
@item @samp{sparc64-@var{any}-solaris2.@var{any}}
@end itemize
@ -2480,16 +2475,12 @@ information are.
@item
@uref{#alpha-dec-osf,,alpha*-dec-osf*}
@item
@uref{#alphaev5-cray-unicosmk,,alphaev5-cray-unicosmk*}
@item
@uref{#arc-x-elf,,arc-*-elf}
@item
@uref{#arm-x-elf,,arm-*-elf}
@uref{#arm-x-coff,,arm-*-coff}
@uref{#arm-x-aout,,arm-*-aout}
@item
@uref{#xscale-x-x,,xscale-*-*}
@item
@uref{#avr,,avr}
@item
@uref{#bfin,,Blackfin}
@ -2508,16 +2499,10 @@ information are.
@item
@uref{#x-x-linux-gnu,,*-*-linux-gnu}
@item
@uref{#ix86-x-linuxaout,,i?86-*-linux*aout}
@item
@uref{#ix86-x-linux,,i?86-*-linux*}
@item
@uref{#ix86-x-sco32v5,,i?86-*-sco3.2v5*}
@item
@uref{#ix86-x-solaris210,,i?86-*-solaris2.10}
@item
@uref{#ix86-x-udk,,i?86-*-udk}
@item
@uref{#ia64-x-linux,,ia64-*-linux}
@item
@uref{#ia64-x-hpux,,ia64-*-hpux*}
@ -2536,8 +2521,6 @@ information are.
@item
@uref{#m68k-x-x,,m68k-*-*}
@item
@uref{#m68k-hp-hpux,,m68k-hp-hpux}
@item
@uref{#m68k-uclinux,,m68k-uclinux}
@item
@uref{#mips-x-x,,mips-*-*}
@ -2546,11 +2529,11 @@ information are.
@item
@uref{#mips-sgi-irix6,,mips-sgi-irix6}
@item
@uref{#powerpc-x-x,,powerpc*-*-*, powerpc-*-sysv4}
@uref{#powerpc-x-x,,powerpc*-*-*}
@item
@uref{#powerpc-x-darwin,,powerpc-*-darwin*}
@item
@uref{#powerpc-x-elf,,powerpc-*-elf, powerpc-*-sysv4}
@uref{#powerpc-x-elf,,powerpc-*-elf}
@item
@uref{#powerpc-x-linux-gnu,,powerpc*-*-linux-gnu*}
@item
@ -2560,7 +2543,7 @@ information are.
@item
@uref{#powerpc-x-eabi,,powerpc-*-eabi}
@item
@uref{#powerpcle-x-elf,,powerpcle-*-elf, powerpcle-*-sysv4}
@uref{#powerpcle-x-elf,,powerpcle-*-elf}
@item
@uref{#powerpcle-x-eabisim,,powerpcle-*-eabisim}
@item
@ -2584,10 +2567,6 @@ information are.
@item
@uref{#sparcv9-x-solaris2,,sparcv9-*-solaris2*}
@item
@uref{#x-x-sysv,,*-*-sysv*}
@item
@uref{#vax-dec-ultrix,,vax-dec-ultrix}
@item
@uref{#x-x-vxworks,,*-*-vxworks*}
@item
@uref{#x86-64-x-x,,x86_64-*-*, amd64-*-*}
@ -2707,32 +2686,6 @@ To avoid this behavior, specify @option{-gstabs+} and use GDB instead of
DBX@. DEC is now aware of this problem with the assembler and hopes to
provide a fix shortly.
@html
<hr />
@end html
@heading @anchor{alphaev5-cray-unicosmk}alphaev5-cray-unicosmk*
Cray T3E systems running Unicos/Mk.
This port is incomplete and has many known bugs. We hope to improve the
support for this target soon. Currently, only the C front end is supported,
and it is not possible to build parallel applications. Cray modules are not
supported; in particular, Craylibs are assumed to be in
@file{/opt/ctl/craylibs/craylibs}.
On this platform, you need to tell GCC where to find the assembler and
the linker. The simplest way to do so is by providing @option{--with-as}
and @option{--with-ld} to @file{configure}, e.g.@:
@smallexample
configure --with-as=/opt/ctl/bin/cam --with-ld=/opt/ctl/bin/cld \
--enable-languages=c
@end smallexample
The comparison test at the end of the bootstrapping process fails on Unicos/Mk
because the assembler inserts timestamps into object files. You should
be able to work around this by doing @samp{make all} after getting this
failure.
@html
<hr />
@end html
@ -2744,11 +2697,10 @@ This configuration is intended for embedded systems.
<hr />
@end html
@heading @anchor{arm-x-elf}arm-*-elf
@heading @anchor{xscale-x-x}xscale-*-*
ARM-family processors. Subtargets that use the ELF object format
require GNU binutils 2.13 or newer. Such subtargets include:
@code{arm-*-freebsd}, @code{arm-*-netbsdelf}, @code{arm-*-*linux},
@code{arm-*-rtems} and @code{arm-*-kaos}.
@code{arm-*-freebsd}, @code{arm-*-netbsdelf}, @code{arm-*-*linux}
and @code{arm-*-rtems}.
@html
<hr />
@ -2840,9 +2792,6 @@ for a list of CRIS-specific options.
There are a few different CRIS targets:
@table @code
@item cris-axis-aout
Old target. Includes a multilib for the @samp{elinux} a.out-based
target. No multilibs for newer architecture variants.
@item cris-axis-elf
Mainly for monolithic embedded systems. Includes a multilib for the
@samp{v10} core used in @samp{ETRAX 100 LX}.
@ -2851,7 +2800,7 @@ A GNU/Linux port for the CRIS architecture, currently targeting
@samp{ETRAX 100 LX} by default.
@end table
For @code{cris-axis-aout} and @code{cris-axis-elf} you need binutils 2.11
For @code{cris-axis-elf} you need binutils 2.11
or newer. For @code{cris-axis-linux-gnu} you need binutils 2.12 or newer.
Pre-packaged tools can be obtained from
@ -3189,13 +3138,6 @@ Versions of libstdc++-v3 starting with 3.2.1 require bug fixes present
in glibc 2.2.5 and later. More information is available in the
libstdc++-v3 documentation.
@html
<hr />
@end html
@heading @anchor{ix86-x-linuxaout}i?86-*-linux*aout
Use this configuration to generate @file{a.out} binaries on Linux-based
GNU systems. This configuration is being superseded.
@html
<hr />
@end html
@ -3208,50 +3150,6 @@ If you receive Signal 11 errors when building on GNU/Linux, then it is
possible you have a hardware problem. Further information on this can be
found on @uref{http://www.bitwizard.nl/sig11/,,www.bitwizard.nl}.
@html
<hr />
@end html
@heading @anchor{ix86-x-sco32v5}i?86-*-sco3.2v5*
Use this for the SCO OpenServer Release 5 family of operating systems.
Unlike earlier versions of GCC, the ability to generate COFF with this
target is no longer provided.
Earlier versions of GCC emitted DWARF 1 when generating ELF to allow
the system debugger to be used. That support was too burdensome to
maintain. GCC now emits only DWARF 2 for this target. This means you
may use either the UDK debugger or GDB to debug programs built by this
version of GCC@.
GCC is now only supported on releases 5.0.4 and later, and requires that
you install Support Level Supplement OSS646B or later, and Support Level
Supplement OSS631C or later. If you are using release 5.0.7 of
OpenServer, you must have at least the first maintenance pack installed
(this includes the relevant portions of OSS646). OSS646, also known as
the ``Execution Environment Update'', provides updated link editors and
assemblers, as well as updated standard C and math libraries. The C
startup modules are also updated to support the System V gABI draft, and
GCC relies on that behavior. OSS631 provides a collection of commonly
used open source libraries, some of which GCC depends on (such as GNU
gettext and zlib). SCO OpenServer Release 5.0.7 has all of this built
in by default, but OSS631C and later also apply to that release. Please
visit
@uref{ftp://ftp.sco.com/pub/openserver5,,ftp://ftp.sco.com/pub/openserver5}
for the latest versions of these (and other potentially useful)
supplements.
Although there is support for using the native assembler, it is
recommended that you configure GCC to use the GNU assembler. You do
this by using the flags
@uref{./configure.html#with-gnu-as,,@option{--with-gnu-as}}. You should
use a modern version of GNU binutils. Version 2.13.2.1 was used for all
testing. In general, only the @option{--with-gnu-as} option is tested.
A modern bintuils (as well as a plethora of other development related
GNU utilities) can be found in Support Level Supplement OSS658A, the
``GNU Development Tools'' package. See the SCO web and ftp sites for details.
That package also contains the currently ``officially supported'' version of
GCC, version 2.95.3. It is useful for bootstrapping this version.
@html
<hr />
@end html
@ -3264,42 +3162,6 @@ It is recommended that you configure GCC to use the GNU assembler in
@option{--with-gnu-as --with-as=/usr/sfw/bin/gas --without-gnu-ld
--with-ld=/usr/ccs/bin/ld}.
@html
<hr />
@end html
@heading @anchor{ix86-x-udk}i?86-*-udk
This target emulates the SCO Universal Development Kit and requires that
package be installed. (If it is installed, you will have a
@file{/udk/usr/ccs/bin/cc} file present.) It's very much like the
@samp{i?86-*-unixware7*} target
but is meant to be used when hosting on a system where UDK isn't the
default compiler such as OpenServer 5 or Unixware 2. This target will
generate binaries that will run on OpenServer, Unixware 2, or Unixware 7,
with the same warnings and caveats as the SCO UDK@.
This target is a little tricky to build because we have to distinguish
it from the native tools (so it gets headers, startups, and libraries
from the right place) while making the tools not think we're actually
building a cross compiler. The easiest way to do this is with a configure
command like this:
@smallexample
CC=/udk/usr/ccs/bin/cc @var{/your/path/to}/gcc/configure \
--host=i686-pc-udk --target=i686-pc-udk --program-prefix=udk-
@end smallexample
@emph{You should substitute @samp{i686} in the above command with the appropriate
processor for your host.}
After the usual @samp{make} and
@samp{make install}, you can then access the UDK-targeted GCC
tools by adding @command{udk-} before the commonly known name. For
example, to invoke the C compiler, you would use @command{udk-gcc}.
They will coexist peacefully with any native-target GCC tools you may
have installed.
@html
<hr />
@end html
@ -3525,59 +3387,6 @@ be a @option{-mcpu} argument or one of the following values:
@samp{m68000}, @samp{m68010}, @samp{m68020}, @samp{m68030},
@samp{m68040}, @samp{m68060}, @samp{m68020-40} and @samp{m68020-60}.
@html
<hr />
@end html
@heading @anchor{m68k-hp-hpux}m68k-hp-hpux
HP 9000 series 300 or 400 running HP-UX@. HP-UX version 8.0 has a bug in
the assembler that prevents compilation of GCC@. This
bug manifests itself during the first stage of compilation, while
building @file{libgcc2.a}:
@smallexample
_floatdisf
cc1: warning: `-g' option not supported on this version of GCC
cc1: warning: `-g1' option not supported on this version of GCC
./xgcc: Internal compiler error: program as got fatal signal 11
@end smallexample
A patched version of the assembler is available as the file
@uref{ftp://altdorf.ai.mit.edu/archive/cph/hpux-8.0-assembler}. If you
have HP software support, the patch can also be obtained directly from
HP, as described in the following note:
@quotation
This is the patched assembler, to patch SR#1653-010439, where the
assembler aborts on floating point constants.
The bug is not really in the assembler, but in the shared library
version of the function ``cvtnum(3c)''. The bug on ``cvtnum(3c)'' is
SR#4701-078451. Anyway, the attached assembler uses the archive
library version of ``cvtnum(3c)'' and thus does not exhibit the bug.
@end quotation
This patch is also known as PHCO_4484.
In addition gdb does not understand that native HP-UX format, so
you must use gas if you wish to use gdb.
On HP-UX version 8.05, but not on 8.07 or more recent versions, the
@command{fixproto} shell script triggers a bug in the system shell. If you
encounter this problem, upgrade your operating system or use BASH (the
GNU shell) to run @command{fixproto}. This bug will cause the fixproto
program to report an error of the form:
@smallexample
./fixproto: sh internal 1K buffer overflow
@end smallexample
To fix this, you can also change the first line of the fixproto script
to look like:
@smallexample
#!/bin/ksh
@end smallexample
@html
<hr />
@end html
@ -3789,7 +3598,7 @@ on systems older than 10.3.9 (aka darwin7.9.0).
@html
<hr />
@end html
@heading @anchor{powerpc-x-elf}powerpc-*-elf, powerpc-*-sysv4
@heading @anchor{powerpc-x-elf}powerpc-*-elf
PowerPC system in big endian mode, running System V.4.
@html
@ -3825,7 +3634,7 @@ Embedded PowerPC system in big endian mode.
@html
<hr />
@end html
@heading @anchor{powerpcle-x-elf}powerpcle-*-elf, powerpcle-*-sysv4
@heading @anchor{powerpcle-x-elf}powerpcle-*-elf
PowerPC system in little endian mode, running System V.4.
@html
@ -4133,47 +3942,6 @@ and @option{-xildoff} turns off the incremental linker.
This is a synonym for sparc64-*-solaris2*.
@html
<hr />
@end html
@heading @anchor{x-x-sysv}*-*-sysv*
On System V release 3, you may get this error message
while linking:
@smallexample
ld fatal: failed to write symbol name @var{something}
in strings table for file @var{whatever}
@end smallexample
This probably indicates that the disk is full or your ulimit won't allow
the file to be as large as it needs to be.
This problem can also result because the kernel parameter @code{MAXUMEM}
is too small. If so, you must regenerate the kernel and make the value
much larger. The default value is reported to be 1024; a value of 32768
is said to work. Smaller values may also work.
On System V, if you get an error like this,
@smallexample
/usr/local/lib/bison.simple: In function `yyparse':
/usr/local/lib/bison.simple:625: virtual memory exhausted
@end smallexample
@noindent
that too indicates a problem with disk space, ulimit, or @code{MAXUMEM}.
On a System V release 4 system, make sure @file{/usr/bin} precedes
@file{/usr/ucb} in @code{PATH}. The @command{cc} command in
@file{/usr/ucb} uses libraries which have bugs.
@html
<hr />
@end html
@heading @anchor{vax-dec-ultrix}vax-dec-ultrix
Don't try compiling with VAX C (@command{vcc}). It produces incorrect code
in some cases (for example, when @code{alloca} is used).
@html
<hr />
@end html

View File

@ -668,10 +668,6 @@ Objective-C and Objective-C++ Dialects}.
-mreturn-pointer-on-d0 @gol
-mno-crt0 -mrelax}
@emph{MT Options}
@gccoptlist{-mno-crt0 -mbacc -msim @gol
-march=@var{cpu-type} }
@emph{PDP-11 Options}
@gccoptlist{-mfpu -msoft-float -mac0 -mno-ac0 -m40 -m45 -m10 @gol
-mbcopy -mbcopy-builtin -mint32 -mno-int16 @gol
@ -721,7 +717,7 @@ See RS/6000 and PowerPC Options.
-mfloat-gprs=yes -mfloat-gprs=no -mfloat-gprs=single -mfloat-gprs=double @gol
-mprototype -mno-prototype @gol
-msim -mmvme -mads -myellowknife -memb -msdata @gol
-msdata=@var{opt} -mvxworks -mwindiss -G @var{num} -pthread}
-msdata=@var{opt} -mvxworks -G @var{num} -pthread}
@emph{S/390 and zSeries Options}
@gccoptlist{-mtune=@var{cpu-type} -march=@var{cpu-type} @gol
@ -8390,7 +8386,6 @@ platform.
* MIPS Options::
* MMIX Options::
* MN10300 Options::
* MT Options::
* PDP-11 Options::
* PowerPC Options::
* RS/6000 and PowerPC Options::
@ -9061,12 +9056,6 @@ choices for @var{architecture-type} are the same as for
@opindex mmax-stack-frame
Warn when the stack frame of a function exceeds @var{n} bytes.
@item -melinux-stacksize=@var{n}
@opindex melinux-stacksize
Only available with the @samp{cris-axis-aout} target. Arranges for
indications in the program to the kernel loader that the stack of the
program should be set to @var{n} bytes.
@item -metrax4
@itemx -metrax100
@opindex metrax4
@ -9146,28 +9135,18 @@ instruction sequences that load addresses for functions from the PLT part
of the GOT rather than (traditional on other architectures) calls to the
PLT@. The default is @option{-mgotplt}.
@item -maout
@opindex maout
Legacy no-op option only recognized with the cris-axis-aout target.
@item -melf
@opindex melf
Legacy no-op option only recognized with the cris-axis-elf and
cris-axis-linux-gnu targets.
@item -melinux
@opindex melinux
Only recognized with the cris-axis-aout target, where it selects a
GNU/linux-like multilib, include files and instruction set for
@option{-march=v8}.
@item -mlinux
@opindex mlinux
Legacy no-op option only recognized with the cris-axis-linux-gnu target.
@item -sim
@opindex sim
This option, recognized for the cris-axis-aout and cris-axis-elf arranges
This option, recognized for the cris-axis-elf arranges
to link with input-output functions from a simulator library. Code,
initialized data and zero-initialized data are allocated consecutively.
@ -10276,8 +10255,7 @@ Generate output containing library calls for floating point.
targets. Normally the facilities of the machine's usual C compiler are
used, but this cannot be done directly in cross-compilation. You must make
your own arrangements to provide suitable library functions for
cross-compilation. The embedded target @samp{hppa1.1-*-pro}
does provide software floating point support.
cross-compilation.
@option{-msoft-float} changes the calling convention in the output file;
therefore, it is only useful if you compile @emph{all} of a program with
@ -12756,44 +12734,6 @@ has an effect when used on the command line for the final link step.
This option makes symbolic debugging impossible.
@end table
@node MT Options
@subsection MT Options
@cindex MT options
These @option{-m} options are defined for Morpho MT architectures:
@table @gcctabopt
@item -march=@var{cpu-type}
@opindex march
Generate code that will run on @var{cpu-type}, which is the name of a system
representing a certain processor type. Possible values for
@var{cpu-type} are @samp{ms1-64-001}, @samp{ms1-16-002},
@samp{ms1-16-003} and @samp{ms2}.
When this option is not used, the default is @option{-march=ms1-16-002}.
@item -mbacc
@opindex mbacc
Use byte loads and stores when generating code.
@item -mno-bacc
@opindex mno-bacc
Do not use byte loads and stores when generating code.
@item -msim
@opindex msim
Use simulator runtime
@item -mno-crt0
@opindex mno-crt0
Do not link in the C run-time initialization object file
@file{crti.o}. Other run-time initialization and termination files
such as @file{startup.o} and @file{exit.o} are still included on the
linker command line.
@end table
@node PDP-11 Options
@subsection PDP-11 Options
@cindex PDP-11 Options
@ -13576,10 +13516,6 @@ On embedded PowerPC systems, assume that the startup module is called
On System V.4 and embedded PowerPC systems, specify that you are
compiling for a VxWorks system.
@item -mwindiss
@opindex mwindiss
Specify that you are compiling for the WindISS simulation environment.
@item -memb
@opindex memb
On embedded PowerPC systems, set the @var{PPC_EMB} bit in the ELF flags

View File

@ -1952,35 +1952,6 @@ Vector constant that does not require memory
@end table
@item MorphoTech family---@file{config/mt/mt.h}
@table @code
@item I
Constant for an arithmetic insn (16-bit signed integer).
@item J
The constant 0.
@item K
Constant for a logical insn (16-bit zero-extended integer).
@item L
A constant that can be loaded with @code{lui} (i.e.@: the bottom 16
bits are zero).
@item M
A constant that takes two words to load (i.e.@: not matched by
@code{I}, @code{K}, or @code{L}).
@item N
Negative 16-bit constants other than -65536.
@item O
A 15-bit signed integer constant.
@item P
A positive 16-bit constant.
@end table
@item Intel 386---@file{config/i386/constraints.md}
@table @code
@item R

View File

@ -2046,7 +2046,7 @@ __enable_execute_stack (void *addr __attribute__((__unused__)))
/* Jump to a trampoline, loading the static chain address. */
#if defined(WINNT) && ! defined(__CYGWIN__) && ! defined (_UWIN)
#if defined(WINNT) && ! defined(__CYGWIN__)
int
getpagesize (void)
@ -2082,7 +2082,7 @@ mprotect (char *addr, int len, int prot)
return -1;
}
#endif /* WINNT && ! __CYGWIN__ && ! _UWIN */
#endif /* WINNT && ! __CYGWIN__ */
#ifdef TRANSFER_FROM_TRAMPOLINE
TRANSFER_FROM_TRAMPOLINE

View File

@ -1,3 +1,40 @@
2008-06-07 Joseph Myers <joseph@codesourcery.com>
* g++.dg/abi/arm_cxa_vec1.C: Don't handle xscale*-*-*.
* g++.dg/eh/spbp.C: Don't handle *-*-solaris2.[56]*.
* g++.dg/warn/miss-format-1.C: Don't handle Solaris before Solaris
7.
* gcc.c-torture/compile/981006-1.c: Don't handle xscale*-*-*,
strongarm*-*-* and cris-*-aout*.
* gcc.c-torture/execute/941014-1.x: Don't handle xscale*-*-* and
strongarm*-*-*.
* gcc.dg/20030909-1.c: Don't handle xscale*-*-* and
strongarm*-*-*.
* gcc.dg/20031108-1.c: Don't handle xscale*-*-* and
strongarm*-*-*.
* gcc.dg/20040813-1.c: Don't handle *-*-sysv5*.
* gcc.dg/arm-asm.c: Don't handle strongarm*-*-* and xscale*-*-*.
* gcc.dg/arm-scd42-1.c: Use target arm*-*-*.
* gcc.dg/arm-scd42-3.c: Use target arm*-*-*.
* gcc.dg/cpp/assert4.c: Don't handle BeOS.
* gcc.dg/debug/pr35154.c: Don't handle *-*-sysv5*.
* gcc.dg/intmax_t-1.c: Don't handle *-*-solaris2.5.1 and
xscale*-*-elf*.
* gcc.dg/pragma-align.c: Don't handle i?86-*-sco3.2v5*.
* gcc.dg/pthread-init-2.c: Don't handle *-*-solaris2.5.1.
* gcc.misc-tests/arm-isr.exp: Use target arm*-*-*.
* gcc.target/powerpc/ppc-sdata-1.c: Don't handle powerpc-*-sysv*.
* gcc.target/powerpc/ppc-sdata-2.c: Don't handle powerpc-*-sysv*.
* gcc.target/powerpc/ppc-stackalign-1.c: Don't handle
powerpc-*-sysv*.
* gfortran.dg/debug/pr35154-stabs.f: Don't handle *-*-sysv5*.
* lib/target-supports.exp: Don't handle strongarm*-*-elf,
xscale*-*-elf and *-*-windiss.
* obj-c++.dg/dwarf-2.mm: Don't handle *-*-solaris2.[56]*.
* objc.dg/dwarf-1.m: Don't handle *-*-solaris2.[56]*.
* objc.dg/dwarf-2.m: Don't handle *-*-solaris2.[56]*.
* gcc.dg/mt-loopi1.c: Remove.
2008-06-07 Samuel Tardieu <sam@rfc1149.net>
* gnat.dg/specs/oversize.ads: New.

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