summaryrefslogtreecommitdiff
path: root/lib/csu
diff options
context:
space:
mode:
Diffstat (limited to 'lib/csu')
-rw-r--r--lib/csu/alpha/Makefile52
-rw-r--r--lib/csu/alpha/crt0.s100
2 files changed, 37 insertions, 115 deletions
diff --git a/lib/csu/alpha/Makefile b/lib/csu/alpha/Makefile
index b960baf9bf7..b9844de3215 100644
--- a/lib/csu/alpha/Makefile
+++ b/lib/csu/alpha/Makefile
@@ -1,25 +1,47 @@
-# $NetBSD: Makefile,v 1.3 1995/12/20 12:36:56 cgd Exp $
+# $OpenBSD: Makefile,v 1.4 1996/11/13 21:23:13 niklas Exp $
+# $NetBSD: Makefile,v 1.6 1996/10/18 05:27:38 thorpej Exp $
+
+.include <bsd.own.mk> # for ELF_TOOLCHAIN definition
+
+CFLAGS+= -DLIBC_SCCS -DPIC -DDYNAMIC -DELFSIZE=64
+CFLAGS+= -I${.CURDIR}/../../../libexec/elf_rtld/include
+
+.if !defined(ELF_TOOLCHAIN)
+CFLAGS+= -DECOFF_COMPAT
+.endif
+
+OBJS= crt0.o gcrt0.o crtbegin.o crtend.o
-CFLAGS+= -DLIBC_SCCS
-OBJS= crt0.o gcrt0.o
CLEANFILES+= core a.out
all: ${OBJS}
-crt0.o: crt0.s
- ${CPP} -DCRT0 ${CFLAGS:M-[ID]*} ${.ALLSRC} | ${AS} -o $@
- @${LD} -x -r ${.TARGET}
- @mv a.out ${.TARGET}
+crt0.o: crt0.c
+ @echo ${CC} ${CFLAGS} -DCRT0 -c ${.ALLSRC} -o ${.TARGET}
+ @${CC} ${CFLAGS} -DCRT0 -c ${.ALLSRC} -o ${.TARGET}.o
+ @${LD} -x -r -o ${.TARGET} ${.TARGET}.o
+ @rm -f ${.TARGET}.o
-gcrt0.o: crt0.s
- ${CPP} -DMCRT0 ${CFLAGS:M-[ID]*} ${.ALLSRC} | ${AS} -o $@
- @${LD} -x -r ${.TARGET}
- @mv a.out ${.TARGET}
+gcrt0.o: crt0.c
+ @echo ${CC} ${CFLAGS} -DMCRT0 -c ${.ALLSRC} -o ${.TARGET}
+ @${CC} ${CFLAGS} -DMCRT0 -c ${.ALLSRC} -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
+crtbegin.o: crtbegin.c
+ @echo ${CC} ${CFLAGS} -c ${.ALLSRC} -o ${.TARGET}
+ @${CC} ${CFLAGS} -c ${.ALLSRC} -o ${.TARGET}.o
+ @${LD} -x -r -o ${.TARGET} ${.TARGET}.o
+ @rm -f ${.TARGET}.o
+
+crtend.o: crtend.c
+ @echo ${CC} ${CFLAGS} -c ${.ALLSRC} -o ${.TARGET}
+ @${CC} ${CFLAGS} -c ${.ALLSRC} -o ${.TARGET}.o
+ @${LD} -x -r -o ${.TARGET} ${.TARGET}.o
+ @rm -f ${.TARGET}.o
-depend lint tags:
+install:
+ ${INSTALL} ${COPY} -o ${BINOWN} -g ${BINGRP} -m 444 ${OBJS} \
+ ${DESTDIR}/usr/lib
.include <bsd.prog.mk>
diff --git a/lib/csu/alpha/crt0.s b/lib/csu/alpha/crt0.s
deleted file mode 100644
index 8528a3c827d..00000000000
--- a/lib/csu/alpha/crt0.s
+++ /dev/null
@@ -1,100 +0,0 @@
-/* $NetBSD: crt0.s,v 1.5 1996/05/16 21:56:22 cgd Exp $ */
-
-/*
- * Copyright (c) 1994, 1995 Carnegie-Mellon University.
- * All rights reserved.
- *
- * Author: Chris G. Demetriou
- *
- * Permission to use, copy, modify and distribute this software and
- * its documentation is hereby granted, provided that both the copyright
- * notice and this permission notice appear in all copies of the
- * software, derivative works or modified versions, and any portions
- * thereof, and that both notices appear in supporting documentation.
- *
- * CARNEGIE MELLON ALLOWS FREE USE OF THIS SOFTWARE IN ITS "AS IS"
- * CONDITION. CARNEGIE MELLON DISCLAIMS ANY LIABILITY OF ANY KIND
- * FOR ANY DAMAGES WHATSOEVER RESULTING FROM THE USE OF THIS SOFTWARE.
- *
- * Carnegie Mellon requests users of this software to return to
- *
- * Software Distribution Coordinator or Software.Distribution@CS.CMU.EDU
- * School of Computer Science
- * Carnegie Mellon University
- * Pittsburgh PA 15213-3890
- *
- * any improvements or extensions that they make and grant Carnegie the
- * rights to redistribute these changes.
- */
-
-#include <machine/asm.h>
-
-/*
- * Set up the global variables provided by crt0:
- * environ and __progname
- */
-BSS(environ, 8)
- .data
- .align 3
-EXPORT(__progname)
- .quad $L1
-$L1:
- .quad 0 /* Null string, plus padding. */
- .text
-
-LEAF(__start, 0) /* XXX */
- .set noreorder
- br pv, 1f
-1: SETGP(pv)
-
- ldq s0, 0(sp) /* get argc from stack */
- lda s1, 8(sp) /* get pointer to argv */
- s8addq s0, s1, s2 /* add number of argv pointers */
- addq s2, 8, s2 /* and skip the null pointer */
- stq s2, environ /* save the newly-found env pointer */
-
-#ifdef MCRT0
-eprol:
- lda a0, eprol
- lda a1, etext
- CALL(monstartup) /* monstartup(eprol, etext); */
- lda a0, _mcleanup
- CALL(atexit) /* atext(_mcleanup); */
- stl zero, errno
-#endif
-
- ldq a0, 0(s1) /* a0 = argv[0]; */
- beq a0, 2f /* if it's null, then punt */
- CONST(0x2f, a1) /* a1 = '/' */
- CALL(strrchr)
- addq v0, 1, a0 /* move past the /, if there was one */
- bne v0, 1f /* if a / found */
- ldq a0, 0(s1) /* a0 = argv[0]; */
-1:
- stq a0, __progname /* store the program name */
-2:
- /* call main() */
-__callmain:
- mov s0, a0
- mov s1, a1
- mov s2, a2
- CALL(main) /* v0 = main(argc, argv, env); */
-
- /* on return from main, call exit() with its return value. */
- mov v0, a0
- CALL(exit) /* exit(rv); */
-
- /* if that failed, bug out. */
- call_pal 0x81 /* XXX op_bugchk */
- .set reorder
-END(__start)
-
-#ifndef MCRT0
-LEAF(moncontrol, 0)
- RET
-END(moncontrol)
-
-LEAF(_mcount, 0)
- ret zero, (at_reg), 1
-END(_mcount)
-#endif