Move the code for the ".init" and ".fini" sections outside of a

C function so the compiler won't try to emit line numbers for it
with "-g", breaking the build.  This has the nice side-effect of
making crtbegin.o and crtbeginS.o a little bit smaller.

Remove "-Wno-unused" from the Makefile.  Replace it with "__unused"
on particular function and variable declarations.
This commit is contained in:
John Polstra 1999-03-12 17:33:28 +00:00
parent 2f9a9cb08c
commit bb2b869188
Notes: svn2git 2020-12-20 02:59:44 +00:00
svn path=/head/; revision=44691
6 changed files with 30 additions and 30 deletions

View File

@ -1,5 +1,5 @@
#
# $Id: Makefile,v 1.2 1998/09/07 23:31:59 jdp Exp $
# $Id: Makefile,v 1.3 1999/01/09 21:50:56 jdp Exp $
#
SRCS= crt1.c crtbegin.c crtend.c crti.S crtn.S
@ -7,7 +7,7 @@ OBJS= ${SRCS:N*.h:R:S/$/.o/g}
OBJS+= gcrt1.o
SOBJS= crtbegin.So crtend.So
CFLAGS+= -elf
CFLAGS+= -Wall -Wno-unused
CFLAGS+= -Wall
LDFLAGS+= -elf
NOMAN= true
NOPIC= true

View File

@ -22,14 +22,19 @@
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
* THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*
* $Id: crtbegin.c,v 1.3 1996/04/12 02:24:35 jdp Exp $
* $Id: crtbegin.c,v 1.1.1.1 1998/03/07 20:27:10 jdp 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)
{
@ -50,12 +55,5 @@ do_dtors(void)
(**fpp)();
}
static void
function_skeleton(void)
{
__asm__(".section .init,\"ax\",@progbits");
do_ctors();
__asm__(".section .fini,\"ax\",@progbits");
do_dtors();
__asm__(".text");
}
__asm__(".section .init,\"ax\",@progbits; call do_ctors; .previous");
__asm__(".section .fini,\"ax\",@progbits; call do_dtors; .previous");

View File

@ -22,10 +22,12 @@
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
* THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*
* $Id: crtend.c,v 1.3 1996/04/12 02:24:36 jdp Exp $
* $Id: crtend.c,v 1.1.1.1 1998/03/07 20:27:10 jdp Exp $
*/
#include <sys/cdefs.h>
typedef void (*fptr)(void);
static fptr ctor_end[1] __attribute__((section(".ctors"))) = { 0 };
static fptr dtor_end[1] __attribute__((section(".dtors"))) = { 0 };
static fptr ctor_end[1] __attribute__((section(".ctors"))) __unused = { 0 };
static fptr dtor_end[1] __attribute__((section(".dtors"))) __unused = { 0 };

View File

@ -1,5 +1,5 @@
#
# $Id: Makefile,v 1.2 1998/09/07 23:31:59 jdp Exp $
# $Id: Makefile,v 1.3 1999/01/09 21:50:56 jdp Exp $
#
SRCS= crt1.c crtbegin.c crtend.c crti.S crtn.S
@ -7,7 +7,7 @@ OBJS= ${SRCS:N*.h:R:S/$/.o/g}
OBJS+= gcrt1.o
SOBJS= crtbegin.So crtend.So
CFLAGS+= -elf
CFLAGS+= -Wall -Wno-unused
CFLAGS+= -Wall
LDFLAGS+= -elf
NOMAN= true
NOPIC= true

View File

@ -22,14 +22,19 @@
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
* THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*
* $Id: crtbegin.c,v 1.3 1996/04/12 02:24:35 jdp Exp $
* $Id: crtbegin.c,v 1.1.1.1 1998/03/07 20:27:10 jdp 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)
{
@ -50,12 +55,5 @@ do_dtors(void)
(**fpp)();
}
static void
function_skeleton(void)
{
__asm__(".section .init,\"ax\",@progbits");
do_ctors();
__asm__(".section .fini,\"ax\",@progbits");
do_dtors();
__asm__(".text");
}
__asm__(".section .init,\"ax\",@progbits; call do_ctors; .previous");
__asm__(".section .fini,\"ax\",@progbits; call do_dtors; .previous");

View File

@ -22,10 +22,12 @@
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
* THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*
* $Id: crtend.c,v 1.3 1996/04/12 02:24:36 jdp Exp $
* $Id: crtend.c,v 1.1.1.1 1998/03/07 20:27:10 jdp Exp $
*/
#include <sys/cdefs.h>
typedef void (*fptr)(void);
static fptr ctor_end[1] __attribute__((section(".ctors"))) = { 0 };
static fptr dtor_end[1] __attribute__((section(".dtors"))) = { 0 };
static fptr ctor_end[1] __attribute__((section(".ctors"))) __unused = { 0 };
static fptr dtor_end[1] __attribute__((section(".dtors"))) __unused = { 0 };