diff options
| author | Eric Andersen <andersen@codepoet.org> | 2003-11-05 05:43:31 +0000 | 
|---|---|---|
| committer | Eric Andersen <andersen@codepoet.org> | 2003-11-05 05:43:31 +0000 | 
| commit | 6d4e78b8aab1f4813439e77f1475dda6594d0b81 (patch) | |
| tree | 2da721c127d8c2ae9be5a16e000fc78e1589d25f /libc | |
| parent | 5cae04a3a276559f38fec14c0edfbbc3be77595e (diff) | |
Continue the conversion to using per-arch crti.S and crtn.S
Diffstat (limited to 'libc')
| -rw-r--r-- | libc/sysdeps/linux/sparc/Makefile | 27 | ||||
| -rw-r--r-- | libc/sysdeps/linux/sparc/crti.S | 26 | ||||
| -rw-r--r-- | libc/sysdeps/linux/sparc/crtn.S | 21 | 
3 files changed, 73 insertions, 1 deletions
diff --git a/libc/sysdeps/linux/sparc/Makefile b/libc/sysdeps/linux/sparc/Makefile index ecbfb4b70..784322dce 100644 --- a/libc/sysdeps/linux/sparc/Makefile +++ b/libc/sysdeps/linux/sparc/Makefile @@ -22,6 +22,7 @@ ASFLAGS=$(CFLAGS)  CRT0_SRC = crt0.c  CRT0_OBJ = crt0.o crt1.o +CTOR_TARGETS=$(TOPDIR)lib/crti.o $(TOPDIR)lib/crtn.o  SSRC=__longjmp.S fork.S vfork.S clone.S setjmp.S bsd-setjmp.S bsd-_setjmp.S \  	urem.S udiv.S umul.S sdiv.S rem.S @@ -38,7 +39,7 @@ all: $(OBJS) $(LIBC)  $(LIBC): ar-target  -ar-target: $(OBJS) $(CRT0_OBJ) +ar-target: $(OBJS) $(CRT0_OBJ) $(CTOR_TARGETS)  	$(AR) $(ARFLAGS) $(LIBC) $(OBJS)  	cp $(CRT0_OBJ) $(TOPDIR)lib/ @@ -54,6 +55,30 @@ $(COBJS): %.o : %.c  	$(CC) $(CFLAGS) -c $< -o $@  	$(STRIPTOOL) -x -R .note -R .comment $*.o +ifeq ($(strip $(UCLIBC_CTOR_DTOR)),y) +crti.o: crti.S +	$(CC) $(SAFECFLAGS) -c crti.S -o crti.o + +$(TOPDIR)lib/crti.o: crti.o +	$(INSTALL) -d $(TOPDIR)lib/ +	cp crti.o $(TOPDIR)lib/ + +crtn.o: crtn.S +	$(CC) $(SAFECFLAGS) -c crtn.S -o crtn.o + +$(TOPDIR)lib/crtn.o: crtn.o +	$(INSTALL) -d $(TOPDIR)lib/ +	cp crtn.o $(TOPDIR)lib/ +else +$(TOPDIR)lib/crti.o: +	$(INSTALL) -d $(TOPDIR)lib/ +	$(AR) $(ARFLAGS) $(TOPDIR)lib/crti.o +$(TOPDIR)lib/crtn.o: +	$(INSTALL) -d $(TOPDIR)lib/ +	$(AR) $(ARFLAGS) $(TOPDIR)lib/crtn.o +endif + +  headers:  	$(LN) -fs ../libc/sysdeps/linux/sparc/fpu_control.h $(TOPDIR)/include/ diff --git a/libc/sysdeps/linux/sparc/crti.S b/libc/sysdeps/linux/sparc/crti.S new file mode 100644 index 000000000..9dff14858 --- /dev/null +++ b/libc/sysdeps/linux/sparc/crti.S @@ -0,0 +1,26 @@ +	.file	"initfini.c" +	 +	.section .init +	.align 4 +	.global _init +	.type	_init, #function +	.proc	020 +_init: +	!#PROLOGUE# 0 +	save	%sp, -104, %sp +	 +	.align 4 +	 +	 +	.section .fini +	.align 4 +	.global _fini +	.type	_fini, #function +	.proc	020 +_fini: +	!#PROLOGUE# 0 +	save	%sp, -104, %sp +	.align 4 +	 +	 +	.ident	"GCC: (GNU) 3.3.2" diff --git a/libc/sysdeps/linux/sparc/crtn.S b/libc/sysdeps/linux/sparc/crtn.S new file mode 100644 index 000000000..345638f67 --- /dev/null +++ b/libc/sysdeps/linux/sparc/crtn.S @@ -0,0 +1,21 @@ +	.file	"initfini.c" +	 +	.section .init +	.align 4 +	.global _init +	.type	_init, #function +	.proc	020 +	ret +	restore +	.size	_init, .-_init +	 +	.section .fini +	.align 4 +	.global _fini +	.type	_fini, #function +	.proc	020 +	ret +	restore +	.size	_fini, .-_fini +	 +	.ident	"GCC: (GNU) 3.3.2"  | 
