summaryrefslogtreecommitdiffstats
path: root/lib/csu/alpha
diff options
context:
space:
mode:
authorcvs2svn <cvs2svn@FreeBSD.org>1998-01-11 03:30:40 +0000
committercvs2svn <cvs2svn@FreeBSD.org>1998-01-11 03:30:40 +0000
commit0506343883d62f6649f7bbaf1a436133cef6261d (patch)
tree516c4eb92ace39269d5bd4aa0709127052a534af /lib/csu/alpha
parent003a004c3913cb110e71d5dc731fd7cd489ba396 (diff)
downloadFreeBSD-src-0506343883d62f6649f7bbaf1a436133cef6261d.zip
FreeBSD-src-0506343883d62f6649f7bbaf1a436133cef6261d.tar.gz
This commit was manufactured by cvs2svn to create branch 'jb'.
Diffstat (limited to 'lib/csu/alpha')
-rw-r--r--lib/csu/alpha/Makefile41
-rw-r--r--lib/csu/alpha/crt0.c243
2 files changed, 0 insertions, 284 deletions
diff --git a/lib/csu/alpha/Makefile b/lib/csu/alpha/Makefile
deleted file mode 100644
index 7a3291d..0000000
--- a/lib/csu/alpha/Makefile
+++ /dev/null
@@ -1,41 +0,0 @@
-# $Id$
-# From: NetBSD: Makefile,v 1.15 1997/10/24 21:18:25 thorpej Exp
-
-CPPFLAGS+= -DLIBC_SCCS -DPIC -DDYNAMIC -DELFSIZE=64
-CPPFLAGS+= -I${.CURDIR}/../../../libexec/ld.elf_so
-COPT+= -fPIC
-
-OBJS= crt0.o gcrt0.o crtbegin.o crtend.o
-
-CLEANFILES+= core a.out
-
-all: ${OBJS}
-
-crt0.o: crt0.c
- ${CC} -DCRT0 -c ${.CURDIR}/crt0.c -o ${.TARGET}.o
- @${LD} -x -r -o ${.TARGET} ${.TARGET}.o
- @rm -f ${.TARGET}.o
-
-gcrt0.o: crt0.c
- ${CC} -DMCRT0 -c ${.CURDIR}/crt0.c -o ${.TARGET}.o
- @${LD} -x -r -o ${.TARGET} ${.TARGET}.o
- @rm -f ${.TARGET}.o
-
-crtbegin.o: crtbegin.c
- ${CC} -c ${.CURDIR}/crtbegin.c -o ${.TARGET}.o
- @${LD} -x -r -o ${.TARGET} ${.TARGET}.o
- @rm -f ${.TARGET}.o
-
-crtend.o: crtend.c
- ${CC} -c ${.CURDIR}/crtend.c -o ${.TARGET}.o
- @${LD} -x -r -o ${.TARGET} ${.TARGET}.o
- @rm -f ${.TARGET}.o
-
-install:
- ${INSTALL} ${COPY} -o ${BINOWN} -g ${BINGRP} -m 444 ${OBJS} \
- ${DESTDIR}/usr/lib
- rm -f ${DESTDIR}/usr/lib/crtbeginS.o ${DESTDIR}/usr/lib/crtendS.o
- ln ${DESTDIR}/usr/lib/crtbegin.o ${DESTDIR}/usr/lib/crtbeginS.o
- ln ${DESTDIR}/usr/lib/crtend.o ${DESTDIR}/usr/lib/crtendS.o
-
-.include <bsd.prog.mk>
diff --git a/lib/csu/alpha/crt0.c b/lib/csu/alpha/crt0.c
deleted file mode 100644
index 0e5688e..0000000
--- a/lib/csu/alpha/crt0.c
+++ /dev/null
@@ -1,243 +0,0 @@
-/* $Id$ */
-/* From: NetBSD: crt0.c,v 1.11 1997/10/20 20:41:09 thorpej Exp */
-
-/*
- * 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.
- */
-
-#ifdef ECOFF_COMPAT
-#undef DYNAMIC
-#endif
-
-#include <sys/param.h>
-#include <sys/exec.h>
-#include <sys/syscall.h>
-#include <vm/vm.h>
-
-#include <stdlib.h>
-#ifdef DYNAMIC
-#include <dlfcn.h>
-#include "rtld.h"
-#else
-typedef void Obj_Entry;
-#endif
-
-/*
- * Lots of the chunks of this file cobbled together from pieces of
- * other NetBSD crt files, including the common code.
- */
-
-extern int __syscall __P((int, ...));
-#define _exit(v) __syscall(SYS_exit, (v))
-#define write(fd, s, n) __syscall(SYS_write, (fd), (s), (n))
-
-#define _FATAL(str) \
- do { \
- write(2, str, sizeof(str)); \
- _exit(1); \
- } while (0)
-
-static char *_strrchr __P((char *, char));
-
-
-char **environ;
-char *__progname = "";
-struct ps_strings *__ps_strings = 0;
-
-#ifndef ECOFF_COMPAT
-extern void __init __P((void));
-extern void __fini __P((void));
-#endif /* ECOFF_COMPAT */
-
-#ifdef DYNAMIC
-void rtld_setup __P((void (*)(void), const Obj_Entry *obj));
-
-const Obj_Entry *__mainprog_obj;
-
-/*
- * Arrange for _DYNAMIC to be weak and undefined (and therefore to show up
- * as being at address zero, unless something else defines it). That way,
- * if we happen to be compiling without -static but with without any
- * shared libs present, things will still work.
- */
-asm(".weak _DYNAMIC");
-extern int _DYNAMIC;
-#endif /* DYNAMIC */
-
-#ifdef MCRT0
-extern void monstartup __P((u_long, u_long));
-extern void _mcleanup __P((void));
-extern unsigned char _etext, _eprol;
-#endif /* MCRT0 */
-
-void __start __P((char **, void (*cleanup) __P((void)), const Obj_Entry *,
- struct ps_strings *));
-int main __P((int, char **, char **));
-
-void
-__start(sp, cleanup, obj, ps_strings)
- char **sp;
- void (*cleanup) __P((void)); /* from shared loader */
- const Obj_Entry *obj; /* from shared loader */
- struct ps_strings *ps_strings;
-{
- long argc;
- char **argv, *namep;
-
- argc = *(long *)sp;
- argv = sp + 1;
- environ = sp + 2 + argc; /* 2: argc + NULL ending argv */
-
- if ((namep = argv[0]) != NULL) { /* NULL ptr if argc = 0 */
- if ((__progname = _strrchr(namep, '/')) == NULL)
- __progname = namep;
- else
- __progname++;
- }
-
- if (ps_strings != (struct ps_strings *)0 &&
- ps_strings != (struct ps_strings *)0xbabefacedeadbeef)
- __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
-
-#ifndef ECOFF_COMPAT
- atexit(__fini);
- __init();
-#endif /* ECOFF_COMPAT */
-
- 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.11 1997/10/20 20:41:09 thorpej Exp $");
-#endif /* LIBC_SCCS and not lint */
-
-static char *
-_strrchr(p, ch)
-register char *p, ch;
-{
- register char *save;
-
- for (save = NULL;; ++p) {
- if (*p == ch)
- save = (char *)p;
- if (!*p)
- return(save);
- }
-/* NOTREACHED */
-}
-
-#ifdef MCRT0
-asm (" .text");
-asm ("_eprol:");
-#endif
-
-#ifdef DYNAMIC
-void
-rtld_setup(cleanup, obj)
- void (*cleanup) __P((void));
- const Obj_Entry *obj;
-{
-
- if ((obj == NULL) || (obj->magic != RTLD_MAGIC))
- _FATAL("Corrupt Obj_Entry pointer in GOT");
- if (obj->version != RTLD_VERSION)
- _FATAL("Dynamic linker version mismatch");
-
- __mainprog_obj = obj;
- atexit(cleanup);
-}
-
-void *
-dlopen(name, mode)
- const char *name;
- int mode;
-{
-
- if (__mainprog_obj == NULL)
- return NULL;
- return (__mainprog_obj->dlopen)(name, mode);
-}
-
-int
-dlclose(fd)
- void *fd;
-{
-
- if (__mainprog_obj == NULL)
- return -1;
- return (__mainprog_obj->dlclose)(fd);
-}
-
-void *
-dlsym(fd, name)
- void *fd;
- const char *name;
-{
-
- if (__mainprog_obj == NULL)
- return NULL;
- return (__mainprog_obj->dlsym)(fd, name);
-}
-
-#if 0 /* not supported for ELF shlibs, apparently */
-int
-dlctl(fd, cmd, arg)
- void *fd, *arg;
- int cmd;
-{
-
- if (__mainprog_obj == NULL)
- return -1;
- return (__mainprog_obj->dlctl)(fd, cmd, arg);
-}
-#endif
-
-char *
-dlerror()
-{
-
- if (__mainprog_obj == NULL)
- return NULL;
- return (__mainprog_obj->dlerror)();
-}
-#endif /* DYNAMIC */
OpenPOWER on IntegriCloud