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