瀏覽代碼

Kill sysdep.h and fixup the SH asm to not use it.
-Erik

Eric Andersen 22 年之前
父節點
當前提交
578a13e90f

+ 7 - 3
libc/sysdeps/linux/sh/__longjmp.S

@@ -17,14 +17,17 @@
    write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
    Boston, MA 02111-1307, USA.  */
 
-#include <sysdep.h>
 #define _SETJMP_H
 #define _ASM
 #include <bits/setjmp.h>
 
 /* __longjmp(jmpbuf, val) */
 
-ENTRY (__longjmp)
+.text
+.align 5
+.type	__longjmp,@function
+.globl	__longjmp;
+__longjmp:
 	mov.l	@r4+, r8
 	mov.l	@r4+, r9
 	mov.l	@r4+, r10
@@ -41,4 +44,5 @@ ENTRY (__longjmp)
 1:
 	rts
 	 ldc.l	@r4+, gbr
-END (__longjmp)
+.size __longjmp,.-__longjmp;
+

+ 7 - 3
libc/sysdeps/linux/sh/bsd-_setjmp.S

@@ -21,13 +21,17 @@
    We cannot do it in C because it must be a tail-call, so frame-unwinding
    in setjmp doesn't clobber the state restored by longjmp.  */
 
-#include <sysdep.h>
 
-ENTRY (_setjmp)
+.text
+.align 5
+.type	_setjmp,@function
+.globl	_setjmp;
+_setjmp:
 	mov.l	1f, r1
 	jmp	@r1
 	 mov	#0, r0
 	.align	2
 1:
 	.long	__sigsetjmp
-END (_setjmp)
+.size _setjmp,.-_setjmp;
+

+ 7 - 3
libc/sysdeps/linux/sh/bsd-setjmp.S

@@ -21,13 +21,17 @@
    We cannot do it in C because it must be a tail-call, so frame-unwinding
    in setjmp doesn't clobber the state restored by longjmp.  */
 
-#include <sysdep.h>
 
-ENTRY (setjmp)
+.text
+.align 5
+.type	setjmp,@function
+.globl	setjmp;
+setjmp:
 	mov.l	1f, r1
 	jmp	@r1
 	 mov	#1, r0
 	.align	2
 1:
 	.long	__sigsetjmp
-END (setjmp)
+.size setjmp,.-setjmp;
+

+ 16 - 8
libc/sysdeps/linux/sh/clone.S

@@ -19,11 +19,19 @@
 /* clone() is even more special than fork() as it mucks with stacks
    and invokes a function in the right context after its all over.  */
 
+#include <features.h>
 #include <asm/unistd.h>
-#include <sysdep.h>
 #define _ERRNO_H	1
 #include <bits/errno.h>
 
+
+#if defined __HAVE_ELF__ && defined __HAVE_SHARED__ 
+#define PLTJMP(_x)	_x##@PLT
+#else
+#define PLTJMP(_x)	_x
+#endif
+
+
 /* int clone(int (*fn)(void *arg), void *child_stack, int flags, void *arg); */
 
         .text
@@ -40,7 +48,7 @@ __clone:
 	 tst	r5, r5
 	bf/s	1f
 	 mov.l	.L1, r1
-#ifdef SHARED
+#ifdef __HAVE_SHARED__
 	mov.l	r12, @-r15
 	sts.l	pr, @-r15
         mov.l	.LG, r12
@@ -59,7 +67,7 @@ __clone:
 #endif
 	.align	2
 .L1:
-	.long	PLTJMP(C_SYMBOL_NAME(__syscall_error))
+	.long	PLTJMP(__syscall_error)
 1:
 	/* insert the args onto the new stack */
 	mov.l	r7, @-r5
@@ -77,7 +85,7 @@ __clone:
 	tst	r1, r1			// i.e. error in linux
 	bf	2f
 	mov.l	.L2, r1
-#ifdef SHARED
+#ifdef __HAVE_SHARED__
 	mov	r0, r4
 	mov.l	r12, @-r15
 	sts.l	pr, @-r15
@@ -97,7 +105,7 @@ __clone:
 #endif
 	.align	2
 .L2:
-	.long	PLTJMP(C_SYMBOL_NAME(__syscall_error))
+	.long	PLTJMP(__syscall_error)
 
 2:
 	tst	r0, r0
@@ -112,7 +120,7 @@ __clone:
 
 	/* we are done, passing the return value through r0  */
 	mov.l	.L3, r1
-#ifdef SHARED
+#ifdef __HAVE_SHARED__
 	mov.l	r12, @-r15
 	sts.l	pr, @-r15
 	mov	r0, r4
@@ -134,8 +142,8 @@ __clone:
 .LG:
 	.long	_GLOBAL_OFFSET_TABLE_
 .L3:
-	.long	PLTJMP(C_SYMBOL_NAME(_exit))
-	END(__clone)
+	.long	PLTJMP(_exit)
+.size __clone,.-__clone;
 
 .globl  clone;
     clone = __clone

+ 6 - 8
libc/sysdeps/linux/sh/setjmp.S

@@ -17,18 +17,15 @@
    write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
    Boston, MA 02111-1307, USA.  */
 
-#include <sysdep.h>
-
 #define _SETJMP_H
 #define _ASM
 #include <bits/setjmp.h>
 
-ENTRY (__sigsetjmp)
-/*
-	.globl	__sigsetjmp
-	.align	4
+.text
+.align 5
+.type	__sigsetjmp,@function
+.globl	__sigsetjmp;
 __sigsetjmp:
-*/
 	/* Save registers */
 	add	#(JB_SIZE-5*4), r4 /* this code doesn't do FP yet */
 	stc.l	gbr, @-r4
@@ -49,4 +46,5 @@ __sigsetjmp:
 	.align	2
 .L1:
 	.long	__sigjmp_save
-END (__sigsetjmp)
+.size __sigsetjmp,.-__sigsetjmp;
+

+ 0 - 86
libc/sysdeps/linux/sh/sysdep.h

@@ -1,86 +0,0 @@
-/* Assembler macros for SH.
-   Copyright (C) 1999, 2000 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-
-   The GNU C Library 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 Software Foundation; either version 2 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
-   Library General Public License for more details.
-
-   You should have received a copy of the GNU Library General Public
-   License along with the GNU C Library; see the file COPYING.LIB.  If not,
-   write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
-   Boston, MA 02111-1307, USA.  */
-
-#define __need_uClibc_config_h 1
-#include <bits/uClibc_config.h>
-
-/* Define a macro we can use to construct the asm name for a C symbol.  */
-#define C_LABEL(name) __C_SYMBOL_PREFIX__ name
-
-/* Mark the end of function named SYM.  This is used on some platforms
-   to generate correct debugging information.  */
-#ifndef END
-#define END(sym)
-#endif
-
-#ifndef ASM_GLOBAL_DIRECTIVE
-#define ASM_GLOBAL_DIRECTIVE .global
-#endif
-
-#ifndef C_SYMBOL_NAME
-#define C_SYMBOL_NAME(name)	name
-#endif
-
-#ifdef	__ASSEMBLER__
-
-/* Syntactic details of assembler.  */
-
-#ifdef __HAVE_ELF__
-
-#define ALIGNARG(log2) log2
-/* For ELF we need the `.type' directive to make shared libs work right.  */
-#define ASM_TYPE_DIRECTIVE(name,typearg) .type name,@##typearg;
-#define ASM_SIZE_DIRECTIVE(name) .size name,.-name
-
-#ifdef SHARED
-#define PLTJMP(_x)	_x##@PLT
-#else
-#define PLTJMP(_x)	_x
-#endif
-
-#else
-
-#define ALIGNARG(log2) log2
-#define ASM_TYPE_DIRECTIVE(name,type)	/* Nothing is specified.  */
-#define ASM_SIZE_DIRECTIVE(name)	/* Nothing is specified.  */
-#define C_SYMBOL_NAME(name) name	/* Nothing is specified.  */
-#define PLTJMP(_x)	_x
-
-#endif
-
-/* Define an entry point visible from C.  */
-#define	ENTRY(name)							      \
-  ASM_GLOBAL_DIRECTIVE C_SYMBOL_NAME(name);				      \
-  ASM_TYPE_DIRECTIVE (C_SYMBOL_NAME(name),function)			      \
-  .align ALIGNARG(5);							      \
-  C_LABEL(name)								      \
-  CALL_MCOUNT
-
-#undef	END
-#define END(name)							      \
-  ASM_SIZE_DIRECTIVE(C_SYMBOL_NAME(name))
-
-/* If compiled for profiling, call `_mcount' at the start of each function.  */
-#ifdef	PROF
-#define CALL_MCOUNT	/* NOTYET */
-#else
-#define CALL_MCOUNT		/* Do nothing.  */
-#endif
-
-#endif	/* __ASSEMBLER__ */

+ 5 - 3
libc/sysdeps/linux/sh/vfork.S

@@ -20,7 +20,6 @@
  respective copyright holders.
 */
 
-#include <sysdep.h>
 #define _ERRNO_H	1
 #include <bits/errno.h>
 
@@ -31,8 +30,11 @@
 
 .global errno
 
-ENTRY (__vfork)
-
+.text
+.align 5
+.type	__vfork,@function
+.globl	__vfork;
+__vfork:
 	mov.l	@r15+,r3		// pop value from the stack
 	mov.l	.L5,r1
 	mov.l	r3,@r1			// save it in .sav_stack