diff --git a/gcc/config/i960/t-vxworks960 b/gcc/config/i960/t-vxworks960 new file mode 100644 index 00000000000..8ef0b3d4fc7 --- /dev/null +++ b/gcc/config/i960/t-vxworks960 @@ -0,0 +1,23 @@ +LIBGCC1 = libgcc1.null +CROSS_LIBGCC1 = libgcc1.null + +# We don't want to put exit in libgcc.a for VxWorks, because VxWorks +# does not have _exit. +LIBGCC2_CFLAGS = -O2 $(GCC_CFLAGS) -g1 -Dexit=unused_exit +LIB2FUNCS_EXTRA = fp-bit.c dp-bit.c + +dp-bit.c: $(srcdir)/config/fp-bit.c + echo '#define FLOAT_BIT_ORDER_MISMATCH' > dp-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 + echo '#define FLOAT_BIT_ORDER_MISMATCH' >> fp-bit.c + cat $(srcdir)/config/fp-bit.c >> fp-bit.c + +MULTILIB_OPTIONS=mnumerics +MULTILIB_DIRNAMES=float +MULTILIB_MATCHES=mnumerics=msb mnumerics=msc mnumerics=mkb mnumerics=mkc mnumerics=mmc mnumerics=mcb mnumerics=mcc + +LIBGCC = stmp-multilib +INSTALL_LIBGCC = install-multilib diff --git a/gcc/config/i960/vx960-coff.h b/gcc/config/i960/vx960-coff.h new file mode 100644 index 00000000000..8e97a67d323 --- /dev/null +++ b/gcc/config/i960/vx960-coff.h @@ -0,0 +1,39 @@ +/* Definitions of target machine for GNU compiler. Vxworks i960 version. + Copyright (C) 1994 Free Software Foundation, Inc. + +This file is part of GNU CC. + +GNU CC is free software; you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation; either version 2, or (at your option) +any later version. + +GNU CC is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with GNU CC; see the file COPYING. If not, write to +the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. */ + +/* This file just exists to give specs for the 960 running on VxWorks. */ + +#include "i960/i960-coff.h" + +/* VxWorks does all the library stuff itself. */ + +#undef LIB_SPEC +#define LIB_SPEC "" + +/* VxWorks provides the functionality of crt0.o and friends itself. */ + +#undef STARTFILE_SPEC +#define STARTFILE_SPEC "" + +#undef CC1_SPEC +#define CC1_SPEC \ + "%{!mka:%{!mkb:%{!msa:%{!msb:%{!mmc:%{!mca:%{!mcc:%{!mcf:-mkb}}}}}}}}\ + %{mbout:%{g*:-gstabs}}\ + %{mcoff:%{g*:-gcoff}}\ + %{!mbout:%{!mcoff:%{g*:-gcoff}}}" diff --git a/gcc/config/i960/vx960.h b/gcc/config/i960/vx960.h new file mode 100644 index 00000000000..7a6e730fc1d --- /dev/null +++ b/gcc/config/i960/vx960.h @@ -0,0 +1,32 @@ +/* Definitions of target machine for GNU compiler. Vxworks i960 version. + Copyright (C) 1994 Free Software Foundation, Inc. + +This file is part of GNU CC. + +GNU CC is free software; you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation; either version 2, or (at your option) +any later version. + +GNU CC is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with GNU CC; see the file COPYING. If not, write to +the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. */ + +/* This file just exists to give specs for the 960 running on VxWorks. */ + +#include "i960/i960.h" + +/* VxWorks does all the library stuff itself. */ + +#undef LIB_SPEC +#define LIB_SPEC "" + +/* VxWorks provides the functionality of crt0.o and friends itself. */ + +#undef STARTFILE_SPEC +#define STARTFILE_SPEC "" diff --git a/gcc/config/m68k/t-vxworks68 b/gcc/config/m68k/t-vxworks68 new file mode 100644 index 00000000000..ca340c0c569 --- /dev/null +++ b/gcc/config/m68k/t-vxworks68 @@ -0,0 +1,27 @@ +CROSS_LIBGCC1 = libgcc1-asm.a +LIB1ASMSRC = m68k/lb1sf68.asm +LIB1ASMFUNCS = _mulsi3 _udivsi3 _umulsi3 _divsi3 _umodsi3 _modsi3 \ + _double _float _floatex \ + _eqdf2 _nedf2 _gtdf2 _gedf2 _ltdf2 _ledf2 \ + _eqsf2 _nesf2 _gtsf2 _gesf2 _ltsf2 _lesf2 + +# We don't want to put exit in libgcc.a for VxWorks, because VxWorks +# does not have _exit. +LIBGCC2_CFLAGS = -O2 $(GCC_CFLAGS) -g1 -Dexit=unused_exit + +# These are really part of libgcc1, but this will cause them to be +# built correctly, so... +LIB2FUNCS_EXTRA = fpgnulib.c xfgnulib.c + +fpgnulib.c: $(srcdir)/config/m68k/fpgnulib.c + cp $(srcdir)/config/m68k/fpgnulib.c fpgnulib.c +xfgnulib.c: $(srcdir)/config/m68k/fpgnulib.c + echo '#define EXTFLOAT' > xfgnulib.c + cat $(srcdir)/config/m68k/fpgnulib.c >> xfgnulib.c + +MULTILIB_OPTIONS = m68000/m68020 m68881/msoft-float +MULTILIB_DIRNAMES = +MULTILIB_MATCHES = m68000=mc68000 m68000=m68302 m68000=m68332 m68020=mc68020 m68020=m68040 + +LIBGCC = stmp-multilib +INSTALL_LIBGCC = install-multilib diff --git a/gcc/config/m68k/vxm68k.h b/gcc/config/m68k/vxm68k.h new file mode 100644 index 00000000000..8f7cbd29490 --- /dev/null +++ b/gcc/config/m68k/vxm68k.h @@ -0,0 +1,55 @@ +/* Definitions of target machine for GNU compiler. Vxworks m68k version. + Copyright (C) 1994 Free Software Foundation, Inc. + +This file is part of GNU CC. + +GNU CC is free software; you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation; either version 2, or (at your option) +any later version. + +GNU CC is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with GNU CC; see the file COPYING. If not, write to +the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. */ + +/* This comment is here to see if it will keep Sun's cpp from dying. */ + +#define CPP_PREDEFINES "-Dmc68000 -D__vxworks -D__vxworks_5 -Acpu(m68k) -Amachine(m68k)" + +#include "m68k/m68k-none.h" +#include "aoutos.h" + +#define DBX_DEBUGGING_INFO +#undef SDB_DEBUGGING_INFO + +#undef WCHAR_TYPE +#define WCHAR_TYPE "short unsigned int" +#undef SIZE_TYPE +#define SIZE_TYPE "long unsigned int" + +/* VxWorks does all the library stuff itself. */ + +#define LIB_SPEC "" + +/* Provide required defaults for linker -e. */ + +#define LINK_SPEC "%{!nostdlib:%{!r*:%{!e*:-e start}}}" + +/* VxWorks provides the functionality of crt0.o and friends itself. */ + +#define STARTFILE_SPEC "" + +/* Every structure or union's size must be a multiple of 2 bytes. */ + +#define STRUCTURE_SIZE_BOUNDARY 16 + +/* Allow folding division by zero. */ +#define REAL_INFINITY + +/* GCC is the primary compiler for VxWorks, so we don't need this. */ +#undef PCC_STATIC_STRUCT_RETURN diff --git a/gcc/config/sparc/t-vxsparc b/gcc/config/sparc/t-vxsparc new file mode 100644 index 00000000000..d99df4ebb97 --- /dev/null +++ b/gcc/config/sparc/t-vxsparc @@ -0,0 +1,13 @@ +LIBGCC1 = libgcc1.null +CROSS_LIBGCC1 = libgcc1.null + +# We don't want to put exit in libgcc.a for VxWorks, because VxWorks +# does not have _exit. +LIBGCC2_CFLAGS = -O2 $(GCC_CFLAGS) -g1 -Dexit=unused_exit + +MULTILIB_OPTIONS=msoft-float mv8 +MULTILIB_DIRNAMES=soft v8 +MULTILIB_MATCHES=msoft-float=mno-fpu + +LIBGCC = stmp-multilib +INSTALL_LIBGCC = install-multilib diff --git a/gcc/config/sparc/vxsparc.h b/gcc/config/sparc/vxsparc.h new file mode 100644 index 00000000000..fbb14c83df1 --- /dev/null +++ b/gcc/config/sparc/vxsparc.h @@ -0,0 +1,53 @@ +/* Definitions of target machine for GNU compiler. Vxworks SPARC version. + Copyright (C) 1994 Free Software Foundation, Inc. + Contributed by David Henkel-Wallace (gumby@cygnus.com) + +This file is part of GNU CC. + +GNU CC is free software; you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation; either version 2, or (at your option) +any later version. + +GNU CC is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with GNU CC; see the file COPYING. If not, write to +the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. */ + +#include "sparc/sparc-aout.h" + +/* Specify what to link with. */ +/* VxWorks does all the library stuff itself. */ + +#undef LIB_SPEC +#define LIB_SPEC "" + +/* Provide required defaults for linker -e. */ +#undef LINK_SPEC +#define LINK_SPEC "%{!nostdlib:%{!r*:%{!e*:-e start}}}" + +/* VxWorks provides the functionality of crt0.o and friends itself. */ +#undef STARTFILE_SPEC +#define STARTFILE_SPEC "" + +#undef CPP_PREDEFINES +#define CPP_PREDEFINES "-Dsparc -Acpu(sparc) -Amachine(sparc)" + +#undef PTRDIFF_TYPE +#undef SIZE_TYPE +#undef WCHAR_TYPE +#undef WCHAR_TYPE_SIZE + +#define PTRDIFF_TYPE "long int" +#define SIZE_TYPE "unsigned int" +#define WCHAR_TYPE "char" +#define WCHAR_TYPE_SIZE 8 + +/* US Software GOFAST library support. */ +#include "gofast.h" +#undef INIT_SUBTARGET_OPTABS +#define INIT_SUBTARGET_OPTABS INIT_GOFAST_OPTABS