浏览代码

* copied from BSD

marco 25 年之前
父节点
当前提交
7109bed98d
共有 11 个文件被更改,包括 189 次插入0 次删除
  1. 27 0
      rtl/bsd/i386/Makefile
  2. 二进制
      rtl/bsd/i386/crt1.o
  3. 59 0
      rtl/bsd/i386/crtbegin.c
  4. 二进制
      rtl/bsd/i386/crtbegin.o
  5. 33 0
      rtl/bsd/i386/crtend.c
  6. 二进制
      rtl/bsd/i386/crtend.o
  7. 38 0
      rtl/bsd/i386/crti.S
  8. 二进制
      rtl/bsd/i386/crti.o
  9. 32 0
      rtl/bsd/i386/crtn.S
  10. 二进制
      rtl/bsd/i386/crtn.o
  11. 二进制
      rtl/bsd/i386/gcrt1.o

+ 27 - 0
rtl/bsd/i386/Makefile

@@ -0,0 +1,27 @@
+#
+# $FreeBSD: src/lib/csu/i386-elf/Makefile,v 1.3.2.3 1999/08/29 14:55:14 peter Exp $
+#
+
+SRCS=		crt1.c crtbegin.c crtend.c crti.S crtn.S
+OBJS=		${SRCS:N*.h:R:S/$/.o/g}
+OBJS+=		gcrt1.o
+SOBJS=		crtbegin.So crtend.So
+CFLAGS+=	-elf -Wall -fkeep-inline-functions
+LDFLAGS+=	-elf
+NOMAN=		true
+NOPIC=		true
+NOPROFILE=	true
+INTERNALLIB=	true
+
+all: ${OBJS} ${SOBJS}
+
+gcrt1.o:	crt1.c
+	${CC} ${CFLAGS} -DGCRT -c -o gcrt1.o ${.CURDIR}/crt1.c
+
+realinstall:
+.for file in ${OBJS} ${SOBJS}
+	${INSTALL} ${COPY} -o ${LIBOWN} -g ${LIBGRP} -m ${LIBMODE} \
+	    ${file} ${DESTDIR}${LIBDIR}/${file:S/.So$/S.o/}
+.endfor
+
+.include <bsd.lib.mk>

二进制
rtl/bsd/i386/crt1.o


+ 59 - 0
rtl/bsd/i386/crtbegin.c

@@ -0,0 +1,59 @@
+/*-
+ * Copyright 1996-1998 John D. Polstra.
+ * 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.
+ *
+ * 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.
+ *
+ * $FreeBSD: src/lib/csu/i386-elf/crtbegin.c,v 1.1.1.1.2.3 1999/08/29 14:55:15 peter Exp $
+ */
+
+#include <sys/cdefs.h>
+
+typedef void (*fptr)(void);
+
+static fptr ctor_list[1] __attribute__((section(".ctors"))) = { (fptr) -1 };
+static fptr dtor_list[1] __attribute__((section(".dtors"))) = { (fptr) -1 };
+
+static void do_ctors(void) __unused;
+static void do_dtors(void) __unused;
+
+static void
+do_ctors(void)
+{
+    fptr *fpp;
+
+    for(fpp = ctor_list + 1;  *fpp != 0;  ++fpp)
+	;
+    while(--fpp > ctor_list)
+	(**fpp)();
+}
+
+static void
+do_dtors(void)
+{
+    fptr *fpp;
+
+    for(fpp = dtor_list + 1;  *fpp != 0;  ++fpp)
+	(**fpp)();
+}
+
+__asm__(".section .init,\"ax\",@progbits; call do_ctors; .previous");
+__asm__(".section .fini,\"ax\",@progbits; call do_dtors; .previous");

二进制
rtl/bsd/i386/crtbegin.o


+ 33 - 0
rtl/bsd/i386/crtend.c

@@ -0,0 +1,33 @@
+/*-
+ * Copyright 1996-1998 John D. Polstra.
+ * 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.
+ *
+ * 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.
+ *
+ * $FreeBSD: src/lib/csu/i386-elf/crtend.c,v 1.1.1.1.2.2 1999/08/29 14:55:15 peter Exp $
+ */
+
+#include <sys/cdefs.h>
+
+typedef void (*fptr)(void);
+
+static fptr ctor_end[1] __attribute__((section(".ctors"))) __unused = { 0 };
+static fptr dtor_end[1] __attribute__((section(".dtors"))) __unused = { 0 };

二进制
rtl/bsd/i386/crtend.o


+ 38 - 0
rtl/bsd/i386/crti.S

@@ -0,0 +1,38 @@
+/*-
+ * Copyright 1996-1998 John D. Polstra.
+ * 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.
+ *
+ * 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.
+ *
+ * $FreeBSD: src/lib/csu/i386-elf/crti.S,v 1.1.1.1.2.1 1999/08/29 14:55:15 peter Exp $
+ */
+
+	.section .init,"ax",@progbits
+	.align	4
+	.globl	_init
+	.type	_init,@function
+_init:
+
+	.section .fini,"ax",@progbits
+	.align	4
+	.globl	_fini
+	.type	_fini,@function
+_fini:

二进制
rtl/bsd/i386/crti.o


+ 32 - 0
rtl/bsd/i386/crtn.S

@@ -0,0 +1,32 @@
+/*-
+ * Copyright 1996-1998 John D. Polstra.
+ * 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.
+ *
+ * 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.
+ *
+ * $FreeBSD: src/lib/csu/i386-elf/crtn.S,v 1.1.1.1.2.1 1999/08/29 14:55:15 peter Exp $
+ */
+
+	.section .init,"ax",@progbits
+	ret
+
+	.section .fini,"ax",@progbits
+	ret

二进制
rtl/bsd/i386/crtn.o


二进制
rtl/bsd/i386/gcrt1.o