[uClibc-cvs] svn commit: trunk/uClibc/libc/sysdeps/linux/alpha

vapier at uclibc.org vapier at uclibc.org
Sun Jul 10 06:44:03 UTC 2005


Author: vapier
Date: 2005-07-10 00:44:02 -0600 (Sun, 10 Jul 2005)
New Revision: 10777

Log:
merge updates from glibc and fix up to work again

Added:
   trunk/uClibc/libc/sysdeps/linux/alpha/crt1.S

Removed:
   trunk/uClibc/libc/sysdeps/linux/alpha/crt0.S

Modified:
   trunk/uClibc/libc/sysdeps/linux/alpha/Makefile


Changeset:
Modified: trunk/uClibc/libc/sysdeps/linux/alpha/Makefile
===================================================================
--- trunk/uClibc/libc/sysdeps/linux/alpha/Makefile	2005-07-10 06:25:50 UTC (rev 10776)
+++ trunk/uClibc/libc/sysdeps/linux/alpha/Makefile	2005-07-10 06:44:02 UTC (rev 10777)
@@ -19,8 +19,8 @@
 TOPDIR=../../../../
 include $(TOPDIR)Rules.mak
 
-CRT0_SRC = crt0.S
-CRT0_OBJ = crt0.o crt1.o
+CRT_SRC = crt1.S
+CRT_OBJ = crt1.o
 CTOR_TARGETS=$(TOPDIR)lib/crti.o $(TOPDIR)lib/crtn.o
 
 SSRC=__longjmp.S brk.S bsd-_setjmp.S bsd-setjmp.S clone.S \
@@ -36,12 +36,12 @@
 
 all: $(OBJ_LIST)
 
-$(OBJ_LIST): $(OBJS) $(CRT0_OBJ) $(CTOR_TARGETS)
+$(OBJ_LIST): $(OBJS) $(CRT_OBJ) $(CTOR_TARGETS)
 	echo $(patsubst %, sysdeps/linux/$(TARGET_ARCH)/%, $(OBJS)) > $(OBJ_LIST)
 	$(INSTALL) -d $(TOPDIR)lib/
-	cp $(CRT0_OBJ) $(TOPDIR)lib/
+	cp $(CRT_OBJ) $(TOPDIR)lib/
 
-$(CRT0_OBJ): $(CRT0_SRC)
+$(CRT_OBJ): $(CRT_SRC)
 	$(CC) $(ASFLAGS) -DL_$* $< -c -o $*.o
 	$(STRIPTOOL) -x -R .note -R .comment $*.o
 

Deleted: trunk/uClibc/libc/sysdeps/linux/alpha/crt0.S
===================================================================
--- trunk/uClibc/libc/sysdeps/linux/alpha/crt0.S	2005-07-10 06:25:50 UTC (rev 10776)
+++ trunk/uClibc/libc/sysdeps/linux/alpha/crt0.S	2005-07-10 06:44:02 UTC (rev 10777)
@@ -1,84 +0,0 @@
-/* Startup code for Alpha/ELF.
-   Copyright (C) 1993,1995,1996,1997,1998,2000,2001 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-   Contributed by Richard Henderson <rth at tamu.edu>
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, write to the Free
-   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-   02111-1307 USA.  */
-
-#include <features.h>
-
-#define a0      $16     /* argument registers (caller-saved) */
-#define a1      $17
-#define a2      $18
-#define a3      $19
-#define a4      $20
-#define a5      $21
-#define ra      $26     /* return address register */
-
-#define s6      $15
-#define fp      s6      /* frame-pointer (s6 in frame-less procedures) */
-#define gp      $29     /* global pointer */
-#define sp      $30     /* stack pointer */
-#define zero    $31     /* reads as zero, writes are noops */
-
-	.text
-	.align 3
-	.global _start
-	.ent _start, 0
-	.type _start, at function
-#if ! defined(__UCLIBC_CTOR_DTOR__)
-	.weak	_init
-	.weak	_fini
-#endif
-	.type	__uClibc_main, at function
-/* Stick in a dummy reference to main(), so that if an application
- * is linking when the main() function is in a static library (.a)
- * we can be sure that main() actually gets linked in */
-	.type	main, at function
-
-_start:
-	.frame fp, 0, zero
-	mov	zero, fp
-	br	gp, 1f
-1:	ldgp	gp, 0(gp)
-	subq	sp, 16, sp
-	.prologue 0
-
-	ldl	a0, 16(sp)	/* get argc */
-	lda	a1, 24(sp)	/* get argv */
-	addq    a0, 1, a2
-	s8addq  a2, a1, a2      /* Calculate environ */
-
-  /* Call the user's main function, and exit with its value.
-     But let the libc call main.  */
-	jsr	ra, __uClibc_main
-
-  /* Die very horribly if exit returns.  Call_pal hlt is callable from
-     kernel mode only; this will result in an illegal instruction trap.  */
-	call_pal 0
-	.end _start
-
-/* For ECOFF backwards compatibility. */
-.weak    __start;
-	__start    =   _start
-
-/* Define a symbol for the first piece of initialized data.  */
-	.data
-	.globl __data_start
-__data_start:
-	.long 0
-	.weak data_start
-	data_start = __data_start

Added: trunk/uClibc/libc/sysdeps/linux/alpha/crt1.S
===================================================================
--- trunk/uClibc/libc/sysdeps/linux/alpha/crt1.S	2005-07-10 06:25:50 UTC (rev 10776)
+++ trunk/uClibc/libc/sysdeps/linux/alpha/crt1.S	2005-07-10 06:44:02 UTC (rev 10777)
@@ -0,0 +1,80 @@
+/* Startup code for Alpha/ELF.
+   Copyright (C) 1993,1995,1996,1997,1998,2000,2001 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+   Contributed by Richard Henderson <rth at tamu.edu>
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, write to the Free
+   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+   02111-1307 USA.  */
+
+#include <features.h>
+#include <asm/regdef.h>
+
+.text
+.global _start
+.ent    _start,0
+.type   _start,%function
+#if defined(__UCLIBC_CTOR_DTOR__)
+.type	_init,%function
+.type	_fini,%function
+#else
+.weak   _init
+.weak   _fini
+#endif
+.type   __uClibc_main,%function
+/* Stick in a dummy reference to main(), so that if an application
+ * is linking when the main() function is in a static library (.a)
+ * we can be sure that main() actually gets linked in */
+.type   main,%function
+
+_start:
+	.frame	$15, 0, $15
+	br	gp, 1f
+1:	ldgp	gp, 0(gp)
+	subq	sp, 16, sp
+	mov	0, $15
+	.prologue 0
+
+	/* Load address of the user's main function.  */
+	lda	a0, main
+
+	ldl	a1, 16(sp)	/* get argc */
+	lda	a2, 24(sp)	/* get argv */
+
+	/* Load address of our own entry points to .fini and .init.  */
+	lda	a3, _init
+	lda	a4, _fini
+
+	/* Store address of the shared library termination function.  */
+	mov	v0, a5
+
+	/* Provide the highest stack address to the user code.  */
+	stq	sp, 0(sp)
+
+	/* Call the user's main function, and exit with its value.
+	 * But let the libc call main.  */
+	jsr	ra, __uClibc_main
+
+	/* Die very horribly if exit returns.  Call_pal hlt is callable from
+	 * kernel mode only; this will result in an illegal instruction trap.  */
+	call_pal 0
+	.end _start
+
+/* Define a symbol for the first piece of initialized data.  */
+.data
+.global __data_start
+__data_start:
+.long 0
+.weak data_start
+	data_start = __data_start




More information about the uClibc-cvs mailing list