aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorUlrich Drepper <drepper@redhat.com>2005-12-30 22:47:37 +0000
committerUlrich Drepper <drepper@redhat.com>2005-12-30 22:47:37 +0000
commitdb0a00d3aaf16e9d832577b5a60ae081874b41a2 (patch)
tree7f5b60e9f47d1e15ce4546028e2e657823777812
parent* sysdeps/sh/sysdep.h: Add cfi instrumentation to asm fragments. (diff)
downloadglibc-db0a00d3aaf16e9d832577b5a60ae081874b41a2.tar.gz
glibc-db0a00d3aaf16e9d832577b5a60ae081874b41a2.tar.bz2
glibc-db0a00d3aaf16e9d832577b5a60ae081874b41a2.zip
* resolv/res_debug.c (latlon2ul): Use ISO C function declaration.
(precsize_aton): Likewise. (precsize_ntoa): Likewise. * resolv/gethnamaddr.c (_gethtbyname): Remove extra prototype. (gethostbyname2): Likewise. (gethostbyaddr): Likewise. (getanswer): Use ISO C function declaration.
-rw-r--r--ChangeLog11
-rw-r--r--nptl/ChangeLog6
-rw-r--r--nptl/sysdeps/unix/sysv/linux/sh/lowlevellock.S24
-rw-r--r--nptl/sysdeps/unix/sysv/linux/sh/sysdep-cancel.h122
-rw-r--r--resolv/gethnamaddr.c9
-rw-r--r--resolv/res_debug.c10
-rw-r--r--sysdeps/sh/_mcount.S14
-rw-r--r--sysdeps/unix/sh/sysdep.S10
8 files changed, 87 insertions, 119 deletions
diff --git a/ChangeLog b/ChangeLog
index e19a45e0d3..ebabab1a7c 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,14 @@
+2005-12-29 Andreas Jaeger <aj@suse.de>
+
+ * resolv/res_debug.c (latlon2ul): Use ISO C function declaration.
+ (precsize_aton): Likewise.
+ (precsize_ntoa): Likewise.
+
+ * resolv/gethnamaddr.c (_gethtbyname): Remove extra prototype.
+ (gethostbyname2): Likewise.
+ (gethostbyaddr): Likewise.
+ (getanswer): Use ISO C function declaration.
+
2005-12-29 Kaz Kojima <kkojima@rr.iij4u.or.jp>
* sysdeps/sh/sysdep.h: Add cfi instrumentation to asm fragments.
diff --git a/nptl/ChangeLog b/nptl/ChangeLog
index 9d1088904f..4dd875bf49 100644
--- a/nptl/ChangeLog
+++ b/nptl/ChangeLog
@@ -1,3 +1,9 @@
+2005-12-29 Kaz Kojima <kkojima@rr.iij4u.or.jp>
+
+ * sysdeps/unix/sysv/linux/sh/sysdep-cancel.h: Remove explicit
+ .eh_frame section, use cfi_* directives.
+ * sysdeps/unix/sysv/linux/sh/lowlevellock.S: Add cfi instrumentation.
+
2005-12-30 Ulrich Drepper <drepper@redhat.com>
* sysdeps/unix/sysv/linux/ia64/jmpbuf-unwind.h: Undo last change for
diff --git a/nptl/sysdeps/unix/sysv/linux/sh/lowlevellock.S b/nptl/sysdeps/unix/sysv/linux/sh/lowlevellock.S
index b4826ef7aa..ac3169889f 100644
--- a/nptl/sysdeps/unix/sysv/linux/sh/lowlevellock.S
+++ b/nptl/sysdeps/unix/sysv/linux/sh/lowlevellock.S
@@ -32,8 +32,11 @@
.type __lll_mutex_lock_wait,@function
.hidden __lll_mutex_lock_wait
.align 5
+ cfi_startproc
__lll_mutex_lock_wait:
mov.l r8, @-r15
+ cfi_adjust_cfa_offset(4)
+ cfi_rel_offset (r8, 0)
mov r4, r6
mov r5, r8
mov #0, r7 /* No timeout. */
@@ -59,6 +62,7 @@ __lll_mutex_lock_wait:
mov.l @r15+, r8
ret
mov r2, r0
+ cfi_endproc
.size __lll_mutex_lock_wait,.-__lll_mutex_lock_wait
@@ -67,6 +71,7 @@ __lll_mutex_lock_wait:
.type __lll_mutex_timedlock_wait,@function
.hidden __lll_mutex_timedlock_wait
.align 5
+ cfi_startproc
__lll_mutex_timedlock_wait:
/* Check for a valid timeout value. */
mov.l @(4,r6), r1
@@ -75,14 +80,21 @@ __lll_mutex_timedlock_wait:
bt 3f
mov.l r10, @-r15
+ cfi_adjust_cfa_offset(4)
+ cfi_rel_offset (r10, 0)
mov.l r9, @-r15
+ cfi_adjust_cfa_offset(4)
+ cfi_rel_offset (r9, 0)
mov.l r8, @-r15
+ cfi_adjust_cfa_offset(4)
+ cfi_rel_offset (r8, 0)
mov r4, r10
mov r6, r9
mov r5, r8
/* Stack frame for the timespec and timeval structs. */
add #-8, r15
+ cfi_adjust_cfa_offset(8)
1:
/* Get current time. */
@@ -162,6 +174,7 @@ __lll_mutex_timedlock_wait:
5:
bra 6b
mov #ETIMEDOUT, r0
+ cfi_endproc
.L1k:
.word 1000
@@ -178,6 +191,7 @@ __lll_mutex_timedlock_wait:
.type lll_unlock_wake_cb,@function
.hidden lll_unlock_wake_cb
.align 5
+ cfi_startproc
lll_unlock_wake_cb:
DEC (@r4, r2)
tst r2, r2
@@ -195,6 +209,7 @@ lll_unlock_wake_cb:
1:
rts
nop
+ cfi_endproc
.size lll_unlock_wake_cb,.-lll_unlock_wake_cb
#endif
@@ -203,6 +218,7 @@ lll_unlock_wake_cb:
.type __lll_mutex_unlock_wake,@function
.hidden __lll_mutex_unlock_wake
.align 5
+ cfi_startproc
__lll_mutex_unlock_wake:
mov #FUTEX_WAKE, r5
mov #1, r6 /* Wake one thread. */
@@ -214,6 +230,7 @@ __lll_mutex_unlock_wake:
SYSCALL_INST_PAD
rts
nop
+ cfi_endproc
.size __lll_mutex_unlock_wake,.-__lll_mutex_unlock_wake
@@ -222,14 +239,20 @@ __lll_mutex_unlock_wake:
.type __lll_timedwait_tid,@function
.hidden __lll_timedwait_tid
.align 5
+ cfi_startproc
__lll_timedwait_tid:
mov.l r9, @-r15
+ cfi_adjust_cfa_offset(4)
+ cfi_rel_offset (r9, 0)
mov.l r8, @-r15
+ cfi_adjust_cfa_offset(4)
+ cfi_rel_offset (r8, 0)
mov r4, r8
mov r5, r9
/* Stack frame for the timespec and timeval structs. */
add #-8, r15
+ cfi_adjust_cfa_offset(8)
2:
/* Get current time. */
@@ -292,6 +315,7 @@ __lll_timedwait_tid:
6:
bra 3b
mov #ETIMEDOUT, r0
+ cfi_endproc
.L1k2:
.word 1000
diff --git a/nptl/sysdeps/unix/sysv/linux/sh/sysdep-cancel.h b/nptl/sysdeps/unix/sysv/linux/sh/sysdep-cancel.h
index fc3c2340b6..9a967eaf53 100644
--- a/nptl/sysdeps/unix/sysv/linux/sh/sysdep-cancel.h
+++ b/nptl/sysdeps/unix/sysv/linux/sh/sysdep-cancel.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2003, 2004 Free Software Foundation, Inc.
+/* Copyright (C) 2003, 2004, 2005 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
@@ -49,27 +49,32 @@
.size __##syscall_name##_nocancel,.-__##syscall_name##_nocancel; \
.Lpseudo_cancel: \
sts.l pr,@-r15; \
- .LCFI0: \
+ cfi_adjust_cfa_offset (4); \
+ cfi_rel_offset (pr, 0); \
add _IMM16,r15; \
+ cfi_adjust_cfa_offset (16); \
SAVE_ARGS_##args; \
- .LCFI1: \
CENABLE; \
LOAD_ARGS_##args; \
add _IMP16,r15; \
- .LCFI2: \
+ cfi_adjust_cfa_offset (-16); \
lds.l @r15+,pr; \
- .LCFI3: \
+ cfi_adjust_cfa_offset (-4); \
+ cfi_restore (pr); \
DO_CALL(syscall_name, args); \
SYSCALL_INST_PAD; \
sts.l pr,@-r15; \
- .LCFI4: \
+ cfi_adjust_cfa_offset (4); \
+ cfi_rel_offset (pr, 0); \
mov.l r0,@-r15; \
- .LCFI5: \
+ cfi_adjust_cfa_offset (4); \
+ cfi_rel_offset (r0, 0); \
CDISABLE; \
mov.l @r15+,r0; \
- .LCFI6: \
+ cfi_adjust_cfa_offset (-4); \
lds.l @r15+,pr; \
- .LCFI7: \
+ cfi_adjust_cfa_offset (-4); \
+ cfi_restore (pr); \
mov r0,r1; \
mov _IMM12,r2; \
shad r2,r1; \
@@ -78,106 +83,17 @@
bf .Lpseudo_end; \
.Lsyscall_error: \
SYSCALL_ERROR_HANDLER; \
- .Lpseudo_end: \
- /* Create unwinding information for the syscall wrapper. */ \
- .section .eh_frame,"a",@progbits; \
- .Lframe1: \
- .ualong .LECIE1-.LSCIE1; \
- .LSCIE1: \
- .ualong 0x0; \
- .byte 0x1; \
- AUGMENTATION_STRING; \
- .uleb128 0x1; \
- .sleb128 -4; \
- .byte 0x11; \
- AUGMENTATION_PARAM; \
- .byte 0xc; \
- .uleb128 0xf; \
- .uleb128 0x0; \
- .align 2; \
- .LECIE1: \
- .LSFDE1: \
- .ualong .LEFDE1-.LASFDE1; \
- .LASFDE1: \
- .ualong .LASFDE1-.Lframe1; \
- START_SYMBOL_REF; \
- .ualong .Lpseudo_end - .Lpseudo_start; \
- AUGMENTATION_PARAM_FDE; \
- .byte 0x4; \
- .ualong .LCFI0-.Lpseudo_start; \
- .byte 0xe; \
- .uleb128 0x4; \
- .byte 0x91; \
- .uleb128 0x1; \
- .byte 0x4; \
- .ualong .LCFI1-.LCFI0; \
- .byte 0xe; \
- .uleb128 0x14; \
- FRAME_REG_##args; \
- .byte 0x4; \
- .ualong .LCFI2-.LCFI1; \
- .byte 0xe; \
- .uleb128 0x4; \
- .byte 0x4; \
- .ualong .LCFI3-.LCFI2; \
- .byte 0xe; \
- .uleb128 0x0; \
- .byte 0xd1; \
- .byte 0x4; \
- .ualong .LCFI4-.LCFI3; \
- .byte 0xe; \
- .uleb128 0x4; \
- .byte 0x91; \
- .uleb128 0x1; \
- .byte 0x4; \
- .ualong .LCFI5-.LCFI4; \
- .byte 0xe; \
- .uleb128 0x8; \
- .byte 0x80; \
- .uleb128 0x2; \
- .byte 0x4; \
- .ualong .LCFI6-.LCFI5; \
- .byte 0xe; \
- .uleb128 0x4; \
- .byte 0xc0; \
- .byte 0x4; \
- .ualong .LCFI7-.LCFI6; \
- .byte 0xe; \
- .uleb128 0x0; \
- .byte 0xd1; \
- .align 2; \
- .LEFDE1: \
- .previous
-
-# ifdef SHARED
-# define AUGMENTATION_STRING .string "zR"
-# define AUGMENTATION_PARAM .uleb128 1; .byte 0x1b
-# define AUGMENTATION_PARAM_FDE .uleb128 0
-# define START_SYMBOL_REF .long .Lpseudo_start-.
-# else
-# define AUGMENTATION_STRING .ascii "\0"
-# define AUGMENTATION_PARAM
-# define AUGMENTATION_PARAM_FDE
-# define START_SYMBOL_REF .long .Lpseudo_start
-# endif
-
-# define FRAME_REG_0 /* Nothing. */
-# define FRAME_REG_1 FRAME_REG_0; .byte 0x84; .uleb128 5
-# define FRAME_REG_2 FRAME_REG_1; .byte 0x85; .uleb128 4
-# define FRAME_REG_3 FRAME_REG_2; .byte 0x86; .uleb128 3
-# define FRAME_REG_4 FRAME_REG_3; .byte 0x87; .uleb128 2
-# define FRAME_REG_5 FRAME_REG_4
-# define FRAME_REG_6 FRAME_REG_5
+ .Lpseudo_end:
# undef PSEUDO_END
# define PSEUDO_END(sym) \
END (sym)
# define SAVE_ARGS_0 /* Nothing. */
-# define SAVE_ARGS_1 SAVE_ARGS_0; mov.l r4,@(0,r15)
-# define SAVE_ARGS_2 SAVE_ARGS_1; mov.l r5,@(4,r15)
-# define SAVE_ARGS_3 SAVE_ARGS_2; mov.l r6,@(8,r15)
-# define SAVE_ARGS_4 SAVE_ARGS_3; mov.l r7,@(12,r15)
+# define SAVE_ARGS_1 SAVE_ARGS_0; mov.l r4,@(0,r15); cfi_offset (r4,-4)
+# define SAVE_ARGS_2 SAVE_ARGS_1; mov.l r5,@(4,r15); cfi_offset (r5,-8)
+# define SAVE_ARGS_3 SAVE_ARGS_2; mov.l r6,@(8,r15); cfi_offset (r6,-12)
+# define SAVE_ARGS_4 SAVE_ARGS_3; mov.l r7,@(12,r15); cfi_offset (r7,-16)
# define SAVE_ARGS_5 SAVE_ARGS_4
# define SAVE_ARGS_6 SAVE_ARGS_5
diff --git a/resolv/gethnamaddr.c b/resolv/gethnamaddr.c
index bab2535ceb..7be23158d0 100644
--- a/resolv/gethnamaddr.c
+++ b/resolv/gethnamaddr.c
@@ -176,11 +176,7 @@ Dprintf(msg, num)
static struct hostent *
-getanswer(answer, anslen, qname, qtype)
- const querybuf *answer;
- int anslen;
- const char *qname;
- int qtype;
+getanswer (const querybuf *answer, int anslen, const char *qname, int qtype)
{
register const HEADER *hp;
register const u_char *cp;
@@ -522,7 +518,6 @@ gethostbyname2(name, af)
char *bp;
int n, size, type, len;
struct hostent *ret;
- extern struct hostent *_gethtbyname2();
if (__res_maybe_init (&_res, 0) == -1) {
__set_h_errno (NETDB_INTERNAL);
@@ -666,7 +661,6 @@ gethostbyaddr(addr, len, af)
u_long old_options;
char hname2[MAXDNAME+1];
#endif /*SUNSECURITY*/
- extern struct hostent *_gethtbyaddr();
if (__res_maybe_init (&_res, 0) == -1) {
__set_h_errno (NETDB_INTERNAL);
@@ -879,7 +873,6 @@ struct hostent *
_gethtbyname(name)
const char *name;
{
- extern struct hostent *_gethtbyname2();
struct hostent *hp;
if (_res.options & RES_USE_INET6) {
diff --git a/resolv/res_debug.c b/resolv/res_debug.c
index 839069de3d..9b308b189a 100644
--- a/resolv/res_debug.c
+++ b/resolv/res_debug.c
@@ -626,8 +626,7 @@ static const unsigned int poweroften[10]=
/* takes an XeY precision/size value, returns a string representation. */
static const char *
-precsize_ntoa(prec)
- u_int8_t prec;
+precsize_ntoa (u_int8_t prec)
{
static char retbuf[sizeof "90000000.00"]; /* XXX nonreentrant */
unsigned long val;
@@ -644,8 +643,7 @@ precsize_ntoa(prec)
/* converts ascii size/precision X * 10**Y(cm) to 0xXY. moves pointer. */
static u_int8_t
-precsize_aton(strptr)
- const char **strptr;
+precsize_aton (const char **strptr)
{
unsigned int mval = 0, cmval = 0;
u_int8_t retval = 0;
@@ -686,9 +684,7 @@ precsize_aton(strptr)
/* converts ascii lat/lon to unsigned encoded 32-bit number. moves pointer. */
static u_int32_t
-latlon2ul(latlonstrptr,which)
- const char **latlonstrptr;
- int *which;
+latlon2ul (const char **latlonstrptr, int *which)
{
const char *cp;
u_int32_t retval;
diff --git a/sysdeps/sh/_mcount.S b/sysdeps/sh/_mcount.S
index 1e7a1d95c9..069da13e98 100644
--- a/sysdeps/sh/_mcount.S
+++ b/sysdeps/sh/_mcount.S
@@ -1,5 +1,5 @@
/* Machine-specific calling sequence for `mcount' profiling function. SuperH
- Copyright (C) 2001 Free Software Foundation, Inc.
+ Copyright (C) 2001, 2005 Free Software Foundation, Inc.
Contributed by NIIBE Yutaka <gniibe@m17n.org>
This file is part of the GNU C Library.
@@ -22,14 +22,25 @@
ASM_GLOBAL_DIRECTIVE C_SYMBOL_NAME(_mcount)
ASM_TYPE_DIRECTIVE (C_SYMBOL_NAME(_mcount),function)
+ cfi_startproc
.align 5
C_LABEL(_mcount)
/* Save registers. */
mov.l r4,@-r15
+ cfi_adjust_cfa_offset (4)
+ cfi_rel_offset (r4, 0)
mov.l r5,@-r15
+ cfi_adjust_cfa_offset (4)
+ cfi_rel_offset (r5, 0)
mov.l r6,@-r15
+ cfi_adjust_cfa_offset (4)
+ cfi_rel_offset (r6, 0)
mov.l r7,@-r15
+ cfi_adjust_cfa_offset (4)
+ cfi_rel_offset (r7, 0)
sts.l pr,@-r15
+ cfi_adjust_cfa_offset (4)
+ cfi_rel_offset (pr, 0)
mov.l @(20,r15),r4
sts pr,r5
@@ -61,6 +72,7 @@ C_LABEL(_mcount)
#else
1: .long C_SYMBOL_NAME(__mcount_internal)
#endif
+ cfi_endproc
ASM_SIZE_DIRECTIVE(C_SYMBOL_NAME(_mcount))
#undef mcount
diff --git a/sysdeps/unix/sh/sysdep.S b/sysdeps/unix/sh/sysdep.S
index 6e4798e45a..802d51f3be 100644
--- a/sysdeps/unix/sh/sysdep.S
+++ b/sysdeps/unix/sh/sysdep.S
@@ -40,14 +40,21 @@ skip:
#else
mov.l .L3, r1
sts.l pr, @-r15
+ cfi_adjust_cfa_offset (4)
+ cfi_rel_offset (pr, 0)
jsr @r1
mov.l r0, @-r15
+ cfi_adjust_cfa_offset (4)
mov.l @r15+, r1
+ cfi_adjust_cfa_offset (-4)
lds.l @r15+, pr
+ cfi_adjust_cfa_offset (-4)
mov.l r1, @r0
#endif
#else
mov.l r12, @-r15
+ cfi_adjust_cfa_offset (4)
+ cfi_rel_offset (r12, 0)
#ifndef _LIBC_REENTRANT
mov r0, r2
mov.l 0f, r12
@@ -58,7 +65,10 @@ skip:
mov.l r2, @r1
#else
mov.l r0, @-r15
+ cfi_adjust_cfa_offset (4)
sts.l pr, @-r15
+ cfi_adjust_cfa_offset (4)
+ cfi_rel_offset (pr, 0)
mov.l 0f, r12
mova 0f, r0
add r0, r12