Source-Changes-HG archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
[src/trunk]: src/lib/csu add csu for sh3
details: https://anonhg.NetBSD.org/src/rev/3c2612c6fc25
branches: trunk
changeset: 477038:3c2612c6fc25
user: msaitoh <msaitoh%NetBSD.org@localhost>
date: Thu Oct 07 11:56:28 1999 +0000
description:
add csu for sh3
diffstat:
lib/csu/sh3/Makefile | 3 +
lib/csu/sh3/crt0.c | 118 +++++++++++++++++++++++++++++++++++++++++++++++
lib/csu/sh3_elf/Makefile | 3 +
lib/csu/sh3_elf/crt0.c | 88 +++++++++++++++++++++++++++++++++++
4 files changed, 212 insertions(+), 0 deletions(-)
diffs (228 lines):
diff -r 9b164e33ead9 -r 3c2612c6fc25 lib/csu/sh3/Makefile
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/lib/csu/sh3/Makefile Thu Oct 07 11:56:28 1999 +0000
@@ -0,0 +1,3 @@
+# $NetBSD: Makefile,v 1.1 1999/10/07 11:56:28 msaitoh Exp $
+
+.include "${.CURDIR}/../common_aout/Makefile.inc"
diff -r 9b164e33ead9 -r 3c2612c6fc25 lib/csu/sh3/crt0.c
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/lib/csu/sh3/crt0.c Thu Oct 07 11:56:28 1999 +0000
@@ -0,0 +1,118 @@
+/* $NetBSD: crt0.c,v 1.1 1999/10/07 11:56:28 msaitoh Exp $ */
+
+/*
+ * Copyright (c) 1996 Charles M. Hannum. All rights reserved.
+ * Copyright (c) 1993 Paul Kranenburg
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ * 3. All advertising materials mentioning features or use of this software
+ * must display the following acknowledgement:
+ * This product includes software developed by Paul Kranenburg.
+ * 4. The name of the author may not be used to endorse or promote products
+ * derived from this software without specific prior written permission
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
+ * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+ * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+ * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
+ * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+ * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+ * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#undef DYNAMIC
+
+#include <stdlib.h>
+
+#include "common.h"
+
+extern void start __P((void)) asm("start");
+ void __start __P((int, char *[], char *[]));
+
+__asm("
+ .text
+ .align 2
+ .globl start
+start:
+ bra ___start
+ nop
+");
+
+#if defined(LIBC_SCCS) && !defined(lint)
+__RCSID("$NetBSD: crt0.c,v 1.1 1999/10/07 11:56:28 msaitoh Exp $");
+#endif /* LIBC_SCCS and not lint */
+
+void
+__start(argc, argv, envp)
+ int argc;
+ char *argv[];
+ char *envp[];
+{
+ char *ap;
+
+ environ = envp;
+
+ if ((ap = argv[0]))
+ if ((__progname = _strrchr(ap, '/')) == NULL)
+ __progname = ap;
+ else
+ ++__progname;
+
+#ifdef DYNAMIC
+ /* ld(1) convention: if DYNAMIC = 0 then statically linked */
+#ifdef stupid_gcc
+ if (&_DYNAMIC)
+#else
+ if ( ({volatile caddr_t x = (caddr_t)&_DYNAMIC; x; }) )
+#endif
+ __load_rtld(&_DYNAMIC);
+#endif /* DYNAMIC */
+
+#ifdef MCRT0
+ atexit(_mcleanup);
+ monstartup((u_long)&eprol, (u_long)&etext);
+#endif /* MCRT0 */
+
+__asm("__callmain:"); /* Defined for the benefit of debuggers */
+ exit(main(argc, argv, envp));
+}
+
+#ifdef DYNAMIC
+asm("
+ .text
+ .align 2
+___syscall:
+ sts pr, r1
+ mov r4, r0
+ mov r1, r0
+ trapa #0x80
+ bf 1f
+ jmp @r1
+ nop
+1:
+ mov #0xff,r0
+ jmp @r1
+ nop
+");
+#endif /* DYNAMIC */
+
+#include "common.c"
+
+#ifdef MCRT0
+__asm("
+ .text
+ .align 2
+eprol:
+");
+#endif /* MCRT0 */
diff -r 9b164e33ead9 -r 3c2612c6fc25 lib/csu/sh3_elf/Makefile
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/lib/csu/sh3_elf/Makefile Thu Oct 07 11:56:28 1999 +0000
@@ -0,0 +1,3 @@
+# $NetBSD: Makefile,v 1.1 1999/10/07 11:56:29 msaitoh Exp $
+
+.include "${.CURDIR}/../common_elf/Makefile.inc"
diff -r 9b164e33ead9 -r 3c2612c6fc25 lib/csu/sh3_elf/crt0.c
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/lib/csu/sh3_elf/crt0.c Thu Oct 07 11:56:28 1999 +0000
@@ -0,0 +1,88 @@
+/* $NetBSD: crt0.c,v 1.1 1999/10/07 11:56:29 msaitoh Exp $ */
+
+/*
+ * Copyright (c) 1998 Christos Zoulas
+ * Copyright (c) 1995 Christopher G. Demetriou
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ * 3. All advertising materials mentioning features or use of this software
+ * must display the following acknowledgement:
+ * This product includes software developed by Christopher G. Demetriou
+ * for the NetBSD Project.
+ * 4. The name of the author may not be used to endorse or promote products
+ * derived from this software without specific prior written permission
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
+ * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+ * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+ * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
+ * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+ * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+ * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#undef DYNAMIC /* XXX */
+
+#include "common.h"
+
+void _start __P((int, char **, char **, void (*cleanup) __P((void)),
+ const Obj_Entry *, struct ps_strings *));
+
+__asm (".globl start; start = __start");
+
+void
+_start(argc, argv, envp, cleanup, obj, ps_strings)
+ int argc;
+ char **argv;
+ char **envp;
+ void (*cleanup) __P((void)); /* from shared loader */
+ const Obj_Entry *obj; /* from shared loader */
+ struct ps_strings *ps_strings;
+{
+ environ = envp;
+
+ if ((__progname = argv[0]) != NULL) { /* NULL ptr if argc = 0 */
+ if ((__progname = _strrchr(__progname, '/')) == NULL)
+ __progname = argv[0];
+ else
+ __progname++;
+ }
+
+ if (ps_strings != (struct ps_strings *)0)
+ __ps_strings = ps_strings;
+
+#ifdef DYNAMIC
+ if (&_DYNAMIC != NULL)
+ _rtld_setup(cleanup, obj);
+#endif
+
+#ifdef MCRT0
+ atexit(_mcleanup);
+ monstartup((u_long)&_eprol, (u_long)&_etext);
+#endif
+
+ atexit(_fini);
+ _init();
+
+ exit(main(argc, argv, environ));
+}
+
+/*
+ * NOTE: Leave the RCS ID _after_ __start(), in case it gets placed in .text.
+ */
+#if defined(LIBC_SCCS) && !defined(lint)
+__RCSID("$NetBSD: crt0.c,v 1.1 1999/10/07 11:56:29 msaitoh Exp $");
+#endif /* LIBC_SCCS and not lint */
+
+#include "common.c"
Home |
Main Index |
Thread Index |
Old Index