mirror of
https://gcc.gnu.org/git/gcc.git
synced 2024-11-23 10:54:07 +08:00
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:
parent
4b92fd3cc9
commit
cd985f6672
@ -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
|
||||
|
@ -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
|
||||
|
@ -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
@ -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
|
||||
|
@ -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* | \
|
||||
|
@ -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 */
|
@ -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 */
|
@ -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 */
|
@ -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 */
|
@ -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 */
|
@ -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
|
||||
|
@ -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)
|
||||
|
@ -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 */
|
@ -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 */
|
||||
|
@ -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 */
|
||||
|
@ -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 */
|
||||
|
@ -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 */
|
||||
|
@ -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 */
|
||||
|
@ -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 */
|
@ -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 */
|
||||
|
@ -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 */
|
@ -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 */
|
||||
|
@ -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>
|
||||
|
@ -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 */
|
||||
|
@ -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 */
|
@ -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 */
|
@ -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 */
|
||||
|
@ -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 */
|
||||
|
@ -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 */
|
@ -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
|
||||
|
417
gcc/config.gcc
417
gcc/config.gcc
@ -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"
|
||||
|
@ -1,2 +0,0 @@
|
||||
# This file is empty for now.
|
||||
|
@ -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
|
@ -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);
|
||||
|
@ -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);
|
||||
|
@ -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);
|
@ -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
|
||||
|
@ -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);
|
@ -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
|
@ -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
|
@ -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
|
@ -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);
|
@ -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
|
@ -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 ""
|
@ -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:
|
||||
*/
|
@ -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
|
@ -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 $@
|
@ -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
|
@ -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);
|
||||
|
@ -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)
|
@ -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
|
||||
|
@ -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
|
@ -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)
|
||||
|
@ -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}"
|
@ -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
|
@ -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
|
@ -1,5 +0,0 @@
|
||||
#
|
||||
# This is included *after* t-cygwin to override LIB1ASMSRC.
|
||||
#
|
||||
LIB1ASMSRC = i386/uwin.asm
|
||||
|
@ -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
|
@ -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
|
||||
|
@ -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 ""
|
@ -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
|
@ -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
|
||||
|
@ -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
|
@ -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
|
@ -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);
|
||||
}
|
@ -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
|
2493
gcc/config/mt/mt.c
2493
gcc/config/mt/mt.c
File diff suppressed because it is too large
Load Diff
@ -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;
|
||||
|
1500
gcc/config/mt/mt.md
1500
gcc/config/mt/mt.md
File diff suppressed because it is too large
Load Diff
@ -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
|
@ -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
|
||||
|
@ -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"
|
@ -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)
|
@ -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 .
|
@ -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)
|
||||
|
@ -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"
|
@ -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);
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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
|
@ -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
|
@ -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);
|
||||
|
@ -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} \
|
||||
"
|
@ -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
|
@ -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)
|
@ -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)
|
@ -1,3 +0,0 @@
|
||||
LIB2FUNCS_EXTRA = \
|
||||
$(srcdir)/config/memcmp.c $(srcdir)/config/memcpy.c \
|
||||
$(srcdir)/config/memmove.c $(srcdir)/config/memset.c
|
@ -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
|
@ -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)
|
@ -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
2
gcc/configure
vendored
@ -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"
|
||||
;;
|
||||
|
@ -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"
|
||||
;;
|
||||
|
@ -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}.
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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
Loading…
Reference in New Issue
Block a user