Source-Changes-HG archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
[src/trunk]: src/lib/csu/arm26 The common arm_elf code seems to work on arm26...
details: https://anonhg.NetBSD.org/src/rev/0ffbb552df09
branches: trunk
changeset: 512995:0ffbb552df09
user: bjh21 <bjh21%NetBSD.org@localhost>
date: Fri Jul 20 13:01:13 2001 +0000
description:
The common arm_elf code seems to work on arm26, so use that.
diffstat:
lib/csu/arm26/Makefile | 4 -
lib/csu/arm26/c++rt0.c | 163 -------------------------------------------------
lib/csu/arm26/crt0.c | 107 --------------------------------
3 files changed, 0 insertions(+), 274 deletions(-)
diffs (286 lines):
diff -r afd0517832ae -r 0ffbb552df09 lib/csu/arm26/Makefile
--- a/lib/csu/arm26/Makefile Fri Jul 20 11:57:48 2001 +0000
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,4 +0,0 @@
-# $NetBSD: Makefile,v 1.2 2001/04/28 17:32:33 bjh21 Exp $
-
-.include "${.CURDIR}/../common_elf/Makefile.inc"
-COPTS += -fno-PIC
diff -r afd0517832ae -r 0ffbb552df09 lib/csu/arm26/c++rt0.c
--- a/lib/csu/arm26/c++rt0.c Fri Jul 20 11:57:48 2001 +0000
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,163 +0,0 @@
-/* $NetBSD: c++rt0.c,v 1.1 2000/05/09 21:55:45 bjh21 Exp $ */
-
-/*-
- * Copyright (c) 1998 The NetBSD Foundation, Inc.
- * All rights reserved.
- *
- * This code is derived from software contributed to The NetBSD Foundation
- * by Paul Kranenburg.
- *
- * 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 the NetBSD
- * Foundation, Inc. and its contributors.
- * 4. Neither the name of The NetBSD Foundation nor the names of its
- * contributors may be used to endorse or promote products derived
- * from this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS
- * ``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 FOUNDATION OR CONTRIBUTORS
- * 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.
- */
-
-/*
- * Run-time module for GNU C++ compiled shared libraries.
- *
- * The linker constructs the following arrays of pointers to global
- * constructors and destructors. The first element contains the
- * number of pointers in each.
- * The tables are also null-terminated.
- */
-#include <stdlib.h>
-
-
-/*
- * We make the __{C,D}TOR_LIST__ symbols appear as type `SETD' and
- * include a dummy local function in the set. This keeps references
- * to these symbols local to the shared object this module is linked to.
- */
-static void dummy __P((void)) { return; }
-
-/* Note: this is "a.out" dependent. */
-__asm(".stabs \"___CTOR_LIST__\",22,0,0,_dummy");
-__asm(".stabs \"___DTOR_LIST__\",22,0,0,_dummy");
-
-#ifdef __arm32__ /* XXX ARM32_BROKEN_RELOCATIONS */
-#define ARM32_BROKEN_RELOCATIONS /* XXX ARM32_BROKEN_RELOCATIONS */
-#endif /* XXX ARM32_BROKEN_RELOCATIONS */
-
-void (*__CTOR_LIST__[0]) __P((void));
-void (*__DTOR_LIST__[0]) __P((void));
-
-#ifdef ARM32_BROKEN_RELOCATIONS /* XXX ARM32_BROKEN_RELOCATIONS */
-static void __dtors __P((long)); /* XXX ARM32_BROKEN_RELOCATIONS */
-static void __ctors __P((long)); /* XXX ARM32_BROKEN_RELOCATIONS */
-#else /* XXX ARM32_BROKEN_RELOCATIONS */
-static void __dtors __P((void));
-static void __ctors __P((void));
-#endif
-
-static void
-#ifdef ARM32_BROKEN_RELOCATIONS /* XXX ARM32_BROKEN_RELOCATIONS */
-__dtors(base) /* XXX ARM32_BROKEN_RELOCATIONS */
- long base; /* XXX ARM32_BROKEN_RELOCATIONS */
-#else /* XXX ARM32_BROKEN_RELOCATIONS */
-__dtors()
-#endif
-{
- unsigned long i = (unsigned long) __DTOR_LIST__[0];
- void (**p)(void) = __DTOR_LIST__ + i;
-
- while (i--)
-#ifdef ARM32_BROKEN_RELOCATIONS /* XXX ARM32_BROKEN_RELOCATIONS */
- (*(void (*)(void))((char *)(*p--) + base))(); /* XXX ... */
-#else /* XXX ARM32_BROKEN_RELOCATIONS */
- (**p--)();
-#endif
-}
-
-static void
-#ifdef ARM32_BROKEN_RELOCATIONS /* XXX ARM32_BROKEN_RELOCATIONS */
-__ctors(base) /* XXX ARM32_BROKEN_RELOCATIONS */
- long base; /* XXX ARM32_BROKEN_RELOCATIONS */
-#else /* XXX ARM32_BROKEN_RELOCATIONS */
-__ctors()
-#endif
-{
- unsigned long i = (unsigned long) __CTOR_LIST__[0];
- void (**p)(void) = __CTOR_LIST__ + 1;
-
- while (i--)
-#ifdef ARM32_BROKEN_RELOCATIONS /* XXX ARM32_BROKEN_RELOCATIONS */
- (*(void (*)(void))((char *)(*p++) + base))(); /* XXX ... */
-#else /* XXX ARM32_BROKEN_RELOCATIONS */
- (**p++)();
-#endif
-}
-
-#ifdef ARM32_BROKEN_RELOCATIONS /* XXX ARM32_BROKEN_RELOCATIONS */
-extern void __init __P((long)) asm(".init"); /* XXX ARM32_BROKEN_RELOCATIONS */
-extern void __fini __P((long)) asm(".fini"); /* XXX ARM32_BROKEN_RELOCATIONS */
-#else /* XXX ARM32_BROKEN_RELOCATIONS */
-extern void __init __P((void)) asm(".init");
-extern void __fini __P((void)) asm(".fini");
-#endif
-
-void
-#ifdef ARM32_BROKEN_RELOCATIONS /* XXX ARM32_BROKEN_RELOCATIONS */
-__init(base) /* XXX ARM32_BROKEN_RELOCATIONS */
- long base; /* XXX ARM32_BROKEN_RELOCATIONS */
-#else /* XXX ARM32_BROKEN_RELOCATIONS */
-__init()
-#endif
-{
- static int initialized = 0;
-
- /*
- * Call global constructors.
- * Arrange to call global destructors at exit.
- */
- if (!initialized) {
- initialized = 1;
-#ifdef ARM32_BROKEN_RELOCATIONS /* XXX ARM32_BROKEN_RELOCATIONS */
- __ctors(base); /* XXX ARM32_BROKEN_RELOCATIONS */
-#else /* XXX ARM32_BROKEN_RELOCATIONS */
- __ctors();
-#endif /* XXX ARM32_BROKEN_RELOCATIONS */
- }
-
-}
-
-void
-#ifdef ARM32_BROKEN_RELOCATIONS /* XXX ARM32_BROKEN_RELOCATIONS */
-__fini(base) /* XXX ARM32_BROKEN_RELOCATIONS */
- long base; /* XXX ARM32_BROKEN_RELOCATIONS */
-#else /* XXX ARM32_BROKEN_RELOCATIONS */
-__fini()
-#endif /* XXX ARM32_BROKEN_RELOCATIONS */
-{
- /*
- * Call global destructors.
- */
-#ifdef ARM32_BROKEN_RELOCATIONS /* XXX ARM32_BROKEN_RELOCATIONS */
- __dtors(base); /* XXX ARM32_BROKEN_RELOCATIONS */
-#else /* XXX ARM32_BROKEN_RELOCATIONS */
- __dtors();
-#endif /* XXX ARM32_BROKEN_RELOCATIONS */
-}
diff -r afd0517832ae -r 0ffbb552df09 lib/csu/arm26/crt0.c
--- a/lib/csu/arm26/crt0.c Fri Jul 20 11:57:48 2001 +0000
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,107 +0,0 @@
-/* $NetBSD: crt0.c,v 1.3 2001/02/18 23:01:39 simonb Exp $ */
-
-/*
- * Copyright (C) 1997 Mark Brinicombe
- * Copyright (C) 1995 Wolfgang Solfrank.
- * Copyright (C) 1995 TooLs GmbH.
- * 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 TooLs GmbH.
- * 4. The name of TooLs GmbH may not be used to endorse or promote products
- * derived from this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY TOOLS GMBH ``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 TOOLS GMBH 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.
- */
-
-#include <sys/cdefs.h>
-
-#undef DYNAMIC /* XXX Too complicated for me! */
-
-#include <machine/asm.h>
-#include <stdlib.h>
-
-#include "common.h"
-
-extern void _start(void);
- void __start(int, char *[], char *[]);
-
-__asm("
- .text
- .align 0
- .global _start
-_start:
- /* Get ps_strings pointer from kernel */
- teq r10, #0
- ldr r3, Lps_strings
- movne r0, #0
- str r0, [r3]
-
- /* Get argc, argv, and envp from stack */
- ldr r0, [sp, #0x0000]
- add r1, sp, #0x0004
- add r2, r1, r0, lsl #2
- add r2, r2, #0x0004
-
- b " ___STRING(_C_LABEL(__start)) "
- .align 0
-Lps_strings:
- .word " ___STRING(_C_LABEL(__ps_strings)) "
-");
-
-#if defined(LIBC_SCCS) && !defined(lint)
-__RCSID("$NetBSD: crt0.c,v 1.3 2001/02/18 23:01:39 simonb Exp $");
-#endif /* LIBC_SCCS and not lint */
-
-void
-__start(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
- _rtld_setup(&_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));
-}
-
-#include "common.c"
-
Home |
Main Index |
Thread Index |
Old Index