From 71d647ec7ae1a02407f299602aada9f302cc6d8b Mon Sep 17 00:00:00 2001 From: bjh21 Date: Fri, 20 Jul 2001 13:01:13 +0000 Subject: [PATCH] The common arm_elf code seems to work on arm26, so use that. --- lib/csu/arm26/Makefile | 4 - lib/csu/arm26/c++rt0.c | 163 ----------------------------------------- lib/csu/arm26/crt0.c | 107 --------------------------- 3 files changed, 274 deletions(-) delete mode 100644 lib/csu/arm26/Makefile delete mode 100644 lib/csu/arm26/c++rt0.c delete mode 100644 lib/csu/arm26/crt0.c diff --git a/lib/csu/arm26/Makefile b/lib/csu/arm26/Makefile deleted file mode 100644 index 3a2910524464..000000000000 --- a/lib/csu/arm26/Makefile +++ /dev/null @@ -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 --git a/lib/csu/arm26/c++rt0.c b/lib/csu/arm26/c++rt0.c deleted file mode 100644 index 8b9d69da7f35..000000000000 --- a/lib/csu/arm26/c++rt0.c +++ /dev/null @@ -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 - - -/* - * 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 --git a/lib/csu/arm26/crt0.c b/lib/csu/arm26/crt0.c deleted file mode 100644 index 928d6f5ee750..000000000000 --- a/lib/csu/arm26/crt0.c +++ /dev/null @@ -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 - -#undef DYNAMIC /* XXX Too complicated for me! */ - -#include -#include - -#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" -