From d7643439eba4ded2253cc4c0c5b2531ee82bd4ea Mon Sep 17 00:00:00 2001 From: Eric Andersen Date: Mon, 19 Aug 2002 10:07:41 +0000 Subject: Work from Stefan Allius which allows superH to use the common method for building crti.o and crtn.o --- libc/sysdeps/linux/common/Makefile | 2 +- libc/sysdeps/linux/common/initfini.c | 6 ++++++ libc/sysdeps/linux/sh/Makefile | 16 +--------------- libc/sysdeps/linux/sh/crti.S | 22 ---------------------- libc/sysdeps/linux/sh/crtn.S | 17 ----------------- 5 files changed, 8 insertions(+), 55 deletions(-) delete mode 100644 libc/sysdeps/linux/sh/crti.S delete mode 100644 libc/sysdeps/linux/sh/crtn.S (limited to 'libc') diff --git a/libc/sysdeps/linux/common/Makefile b/libc/sysdeps/linux/common/Makefile index b9a8319cb..84de78aca 100644 --- a/libc/sysdeps/linux/common/Makefile +++ b/libc/sysdeps/linux/common/Makefile @@ -1,7 +1,7 @@ # Makefile for uClibc # # Copyright (C) 2000 by Lineo, inc. -# Copyright (C) 2000,2001 Erik Andersen +# Copyright (C) 2000-2002 Erik Andersen # # This program is free software; you can redistribute it and/or modify it under # the terms of the GNU Library General Public License as published by the Free diff --git a/libc/sysdeps/linux/common/initfini.c b/libc/sysdeps/linux/common/initfini.c index eb9f4c73b..f93a9baed 100644 --- a/libc/sysdeps/linux/common/initfini.c +++ b/libc/sysdeps/linux/common/initfini.c @@ -42,6 +42,10 @@ easier to insert the necessary directives into crtn.S. */ #define SECTION(x) asm (".section " x ) +/* Declare symbols as hidden. Hidden symbols are only seen by + * the link editor and not by the dynamic loader. */ +#define HIDDEN(func) asm (".hidden " #func ) + /* The initial common code ends here. */ asm ("\n/*@HEADER_ENDS*/"); @@ -72,6 +76,7 @@ call_gmon_start(void) #endif SECTION (".init"); +HIDDEN(_init); extern void _init (void); void _init (void) @@ -108,6 +113,7 @@ asm ("\n/*@_init_EPILOG_ENDS*/"); asm ("\n/*@_fini_PROLOG_BEGINS*/"); SECTION (".fini"); +HIDDEN(_fini); extern void _fini (void); void _fini (void) diff --git a/libc/sysdeps/linux/sh/Makefile b/libc/sysdeps/linux/sh/Makefile index 9b46c965a..6ff7f87e3 100644 --- a/libc/sysdeps/linux/sh/Makefile +++ b/libc/sysdeps/linux/sh/Makefile @@ -45,7 +45,7 @@ all: $(OBJS) $(LIBC) $(LIBC): ar-target -ar-target: $(OBJS) $(CRT0_OBJ) $(TOPDIR)lib/crti.o $(TOPDIR)lib/crtn.o +ar-target: $(OBJS) $(CRT0_OBJ) $(AR) $(ARFLAGS) $(LIBC) $(OBJS) cp $(CRT0_OBJ) $(TOPDIR)lib/$(CRT0_OBJ) @@ -53,20 +53,6 @@ $(CRT0_OBJ): %.o : %.S $(CC) $(SFLAGS) -c $< -o $@ $(STRIPTOOL) -x -R .note -R .comment $*.o -crti.o: crti.S - $(CC) $(SAFECFLAGS) -c crti.S -o crti.o - -$(TOPDIR)lib/crti.o: crti.o - mkdir -p $(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 - mkdir -p $(TOPDIR)lib/ - cp crtn.o $(TOPDIR)lib/ - $(SOBJS): %.o : %.S $(CC) $(SFLAGS) -c $< -o $@ $(STRIPTOOL) -x -R .note -R .comment $*.o diff --git a/libc/sysdeps/linux/sh/crti.S b/libc/sysdeps/linux/sh/crti.S deleted file mode 100644 index f79b6d2cf..000000000 --- a/libc/sysdeps/linux/sh/crti.S +++ /dev/null @@ -1,22 +0,0 @@ - .file "crti.S" - - .section .init - .align 2 - .global _init - .hidden _init - .type _init,@function -_init: - mov.l r14,@-r15 - sts.l pr,@-r15 - mov r15,r14 - - .section .fini - .align 2 - .global _fini - .hidden _fini - .type _fini,@function -_fini: - mov.l r14,@-r15 - sts.l pr,@-r15 - mov r15,r14 - diff --git a/libc/sysdeps/linux/sh/crtn.S b/libc/sysdeps/linux/sh/crtn.S deleted file mode 100644 index 3a8761c1d..000000000 --- a/libc/sysdeps/linux/sh/crtn.S +++ /dev/null @@ -1,17 +0,0 @@ - .file "crtn.S" - - .section .init - mov r14,r15 - lds.l @r15+,pr - rts - mov.l @r15+,r14 -.Lfe1: - .size _init,.Lfe1-_init - - .section .fini - mov r14,r15 - lds.l @r15+,pr - rts - mov.l @r15+,r14 -.Lfe2: - .size _fini,.Lfe2-_fini -- cgit v1.2.3