]> oss.titaniummirror.com Git - msp430-gcc.git/blobdiff - gcc/config/m68k/aux-crt1.c
Imported gcc-4.4.3
[msp430-gcc.git] / gcc / config / m68k / aux-crt1.c
diff --git a/gcc/config/m68k/aux-crt1.c b/gcc/config/m68k/aux-crt1.c
deleted file mode 100644 (file)
index effa16a..0000000
+++ /dev/null
@@ -1,129 +0,0 @@
-/* Startup code for A/UX
-   Copyright (C) 1996 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 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.)
-
-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 this program; see the file COPYING.  If not, write to
-the Free Software Foundation, 59 Temple Place - Suite 330,
-Boston, MA 02111-1307, USA.  */
-
-/* This file is compiled three times to produce crt1.o, mcrt1.o, and
-   maccrt1.o.  The final two are created by defining MCRT1 and MACCRT1
-   respectively.  */
-
-#include <stdlib.h>
-#ifdef MCRT1
-#include <unistd.h>
-#include <mon.h>
-#endif
-
-/* Extern function declarations */
-
-extern void initfpu(void);
-extern void __istart(void);
-extern void __compatmode(void);
-extern void _cleanup(void);
-extern int main(int, char **, char **);
-extern void exit(int) __attribute__((noreturn));
-extern void _exit(int) __attribute__((noreturn));
-
-#ifdef MACCRT1
-extern void InitMac(void);
-#endif
-#ifdef MCRT1
-static void monitor_start(void);
-#endif
-
-/* Global variables */
-
-char **environ;
-char *__splimit;                       /* address of top of stack */
-
-
-/* Initialize system and run */
-
-void _start() __attribute__((noreturn));
-void _start()
-{
-  register int *fp __asm__("%a6");
-  register char *d0 __asm__("%d0");
-  char **argv;
-  int argc;
-
-  __splimit = d0;
-  argc = fp[1];
-  argv = (char **)&fp[2];
-  environ = &argv[argc+1];
-
-  initfpu();
-  __istart();
-  __compatmode();
-
-  atexit(_cleanup);
-#ifdef MCRT1
-  monitor_start();
-#endif
-#ifdef MACCRT1
-  InitMac();
-#endif
-
-  exit(main(argc, argv, environ));
-}
-
-
-#ifdef MCRT1
-/* Start/Stop program monitor */
-
-extern void monitor(void *, void *, WORD *, int, int);
-
-static WORD *monitor_buffer;
-
-static void monitor_cleanup(void)
-{
-  monitor(NULL, NULL, NULL, 0, 0);
-  free(monitor_buffer);
-}
-
-static void monitor_start(void)
-{
-  extern int etext;
-  extern int stext __asm__(".text");
-
-  /* Choice of buffer size should be "no more than a few times
-     smaller than the program size" -- I don't believe that there
-     are any (useful) functions smaller than two insns (4 bytes)
-     so that is the scale factor used here */
-  int len = (&etext - &stext + 1) / 4;
-
-  monitor_buffer = (WORD *)calloc(len, sizeof(WORD));
-  if (monitor_buffer == NULL)
-    {
-      static const char msg[] = "mcrt1: could not allocate monitor buffer\n";
-      write(2, msg, sizeof(msg)-1);
-      _exit(-1);
-    }
-
-  /* I'm not sure why the count cap at 600 -- but that is what A/UX does */
-  monitor(&stext, &etext, monitor_buffer, len, 600);
-
-  atexit(monitor_cleanup);
-}
-#endif /* MCRT1 */