From: Richard Henderson <rth@twiddle.net>
To: Ulrich Drepper <drepper@redhat.com>
Cc: libc-hacker@sources.redhat.com
Subject: Re: [rfa] alpha sjlj vs pointer mangling
Date: Fri, 13 Jan 2006 21:09:00 -0000 [thread overview]
Message-ID: <20060113210852.GA14932@twiddle.net> (raw)
In-Reply-To: <43C5A1E3.9020105@redhat.com>
On Wed, Jan 11, 2006 at 04:25:07PM -0800, Ulrich Drepper wrote:
> I already added the previous patch plus the --as-needed fixup. Please
> resent whatever patch is needed on top of the current CVS version.
Here's what's needed vs yesterday's cvs. A couple of new things
crept in on the side.
r~
2006-01-13 Richard Henderson <rth@redhat.com>
nptl/
* sysdeps/alpha/tls.h (tcbhead_t): Rename member to __private.
* sysdeps/alpha/__longjmp.S: Update copyright.
* sysdeps/alpha/setjmp.S: Likewise.
* sysdeps/unix/sysv/linux/alpha/sysdep.h (PTR_MANGLE, PTR_MANGLE2,
PTR_DEMANGLE, PTR_DEMANGLE2): Move ...
* sysdeps/unix/alpha/sysdep.h: ... here.
* sysdeps/unix/sysv/linux/alpha/fxstatat.c: Define __GI___fxstatat64.
Index: nptl/sysdeps/alpha/tls.h
===================================================================
RCS file: /cvs/glibc/libc/nptl/sysdeps/alpha/tls.h,v
retrieving revision 1.5
diff -u -p -d -r1.5 tls.h
--- nptl/sysdeps/alpha/tls.h 6 Jan 2005 22:40:24 -0000 1.5
+++ nptl/sysdeps/alpha/tls.h 13 Jan 2006 21:05:29 -0000
@@ -65,7 +65,7 @@ typedef union dtv
typedef struct
{
dtv_t *dtv;
- void *private;
+ void *__private;
} tcbhead_t;
/* This is the size of the initial TCB. */
Index: sysdeps/alpha/__longjmp.S
===================================================================
RCS file: /cvs/glibc/libc/sysdeps/alpha/__longjmp.S,v
retrieving revision 1.4
diff -u -p -d -r1.4 __longjmp.S
--- sysdeps/alpha/__longjmp.S 11 Jan 2006 22:14:19 -0000 1.4
+++ sysdeps/alpha/__longjmp.S 13 Jan 2006 21:05:30 -0000
@@ -1,4 +1,4 @@
-/* Copyright (C) 1992, 1994, 1997 Free Software Foundation, Inc.
+/* Copyright (C) 1992, 1994, 1997, 2006 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
Index: sysdeps/alpha/setjmp.S
===================================================================
RCS file: /cvs/glibc/libc/sysdeps/alpha/setjmp.S,v
retrieving revision 1.20
diff -u -p -d -r1.20 setjmp.S
--- sysdeps/alpha/setjmp.S 11 Jan 2006 22:15:28 -0000 1.20
+++ sysdeps/alpha/setjmp.S 13 Jan 2006 21:05:30 -0000
@@ -1,4 +1,5 @@
-/* Copyright (C) 1992, 1994, 1996, 1997, 2002 Free Software Foundation, Inc.
+/* Copyright (C) 1992, 1994, 1996, 1997, 2002, 2006
+ 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
Index: sysdeps/unix/alpha/sysdep.h
===================================================================
RCS file: /cvs/glibc/libc/sysdeps/unix/alpha/sysdep.h,v
retrieving revision 1.27
diff -u -p -d -r1.27 sysdep.h
--- sysdeps/unix/alpha/sysdep.h 20 Sep 2005 05:35:42 -0000 1.27
+++ sysdeps/unix/alpha/sysdep.h 13 Jan 2006 21:05:32 -0000
@@ -1,4 +1,4 @@
-/* Copyright (C) 1992, 1995, 1996, 2000, 2003, 2004
+/* Copyright (C) 1992, 1995, 1996, 2000, 2003, 2004, 2006
Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Brendan Kehoe (brendan@zen.org).
@@ -397,4 +397,42 @@ __LABEL(name) \
_sc_ret = _sc_0, _sc_err = _sc_19; \
}
+/* Pointer mangling support. Note that tls access is slow enough that
+ we don't deoptimize things by placing the pointer check value there. */
+
+#include <stdint.h>
+
+#if defined NOT_IN_libc && defined IS_IN_rtld
+# ifdef __ASSEMBLER__
+# define PTR_MANGLE(dst, src, tmp) \
+ ldah tmp, __pointer_chk_guard_local($29) !gprelhigh; \
+ ldq tmp, __pointer_chk_guard_local(tmp) !gprellow; \
+ xor src, tmp, dst
+# define PTR_MANGLE2(dst, src, tmp) \
+ xor src, tmp, dst
+# define PTR_DEMANGLE(dst, tmp) PTR_MANGLE(dst, dst, tmp)
+# define PTR_DEMANGLE2(dst, tmp) PTR_MANGLE2(dst, dst, tmp)
+# else
+extern uintptr_t __pointer_chk_guard_local attribute_relro attribute_hidden;
+# define PTR_MANGLE(var) \
+ (var) = (void *) ((uintptr_t) (var) ^ __pointer_chk_guard_local)
+# define PTR_DEMANGLE(var) PTR_MANGLE(var)
+# endif
+#elif defined PIC
+# ifdef __ASSEMBLER__
+# define PTR_MANGLE(dst, src, tmp) \
+ ldq tmp, __pointer_chk_guard; \
+ xor src, tmp, dst
+# define PTR_MANGLE2(dst, src, tmp) \
+ xor src, tmp, dst
+# define PTR_DEMANGLE(dst, tmp) PTR_MANGLE(dst, dst, tmp)
+# define PTR_DEMANGLE2(dst, tmp) PTR_MANGLE2(dst, dst, tmp)
+# else
+extern uintptr_t __pointer_chk_guard attribute_relro;
+# define PTR_MANGLE(var) \
+ (var) = (void *) ((uintptr_t) (var) ^ __pointer_chk_guard)
+# define PTR_DEMANGLE(var) PTR_MANGLE(var)
+# endif
+#endif
+
#endif /* ASSEMBLER */
Index: sysdeps/unix/sysv/linux/alpha/fxstatat.c
===================================================================
RCS file: /cvs/glibc/libc/sysdeps/unix/sysv/linux/alpha/fxstatat.c,v
retrieving revision 1.2
diff -u -p -d -r1.2 fxstatat.c
--- sysdeps/unix/sysv/linux/alpha/fxstatat.c 26 Nov 2005 00:52:45 -0000 1.2
+++ sysdeps/unix/sysv/linux/alpha/fxstatat.c 13 Jan 2006 21:05:32 -0000
@@ -1,4 +1,4 @@
-/* Copyright (C) 2005 Free Software Foundation, Inc.
+/* Copyright (C) 2005, 2006 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
@@ -94,4 +94,5 @@ __fxstatat (int vers, int fd, const char
return -1;
}
-strong_alias (__fxstatat, __fxstatat64);
+strong_alias (__fxstatat, __fxstatat64)
+strong_alias (__fxstatat64, __GI___fxstatat64)
Index: sysdeps/unix/sysv/linux/alpha/sysdep.h
===================================================================
RCS file: /cvs/glibc/libc/sysdeps/unix/sysv/linux/alpha/sysdep.h,v
retrieving revision 1.18
diff -u -p -d -r1.18 sysdep.h
--- sysdeps/unix/sysv/linux/alpha/sysdep.h 11 Jan 2006 22:16:27 -0000 1.18
+++ sysdeps/unix/sysv/linux/alpha/sysdep.h 13 Jan 2006 21:05:32 -0000
@@ -24,8 +24,6 @@
#ifdef __ASSEMBLER__
#include <asm/pal.h>
#include <alpha/regdef.h>
-#else
-#include <stdint.h>
#endif
/* There is some commonality. */
@@ -98,39 +96,4 @@
INTERNAL_SYSCALL1(name, err_out, nr, args); \
})
-/* Pointer mangling support. Note that tls access is slow enough that
- we don't deoptimize things by placing the pointer check value there. */
-#if defined NOT_IN_libc && defined IS_IN_rtld
-# ifdef __ASSEMBLER__
-# define PTR_MANGLE(dst, src, tmp) \
- ldah tmp, __pointer_chk_guard_local($29) !gprelhigh; \
- ldq tmp, __pointer_chk_guard_local(tmp) !gprellow; \
- xor src, tmp, dst
-# define PTR_MANGLE2(dst, src, tmp) \
- xor src, tmp, dst
-# define PTR_DEMANGLE(dst, tmp) PTR_MANGLE(dst, dst, tmp)
-# define PTR_DEMANGLE2(dst, tmp) PTR_MANGLE2(dst, dst, tmp)
-# else
-extern uintptr_t __pointer_chk_guard_local attribute_relro attribute_hidden;
-# define PTR_MANGLE(var) \
- (var) = (void *) ((uintptr_t) (var) ^ __pointer_chk_guard_local)
-# define PTR_DEMANGLE(var) PTR_MANGLE(var)
-# endif
-#elif defined PIC
-# ifdef __ASSEMBLER__
-# define PTR_MANGLE(dst, src, tmp) \
- ldq tmp, __pointer_chk_guard; \
- xor src, tmp, dst
-# define PTR_MANGLE2(dst, src, tmp) \
- xor src, tmp, dst
-# define PTR_DEMANGLE(dst, tmp) PTR_MANGLE(dst, dst, tmp)
-# define PTR_DEMANGLE2(dst, tmp) PTR_MANGLE2(dst, dst, tmp)
-# else
-extern uintptr_t __pointer_chk_guard attribute_relro;
-# define PTR_MANGLE(var) \
- (var) = (void *) ((uintptr_t) (var) ^ __pointer_chk_guard)
-# define PTR_DEMANGLE(var) PTR_MANGLE(var)
-# endif
-#endif
-
#endif /* _LINUX_ALPHA_SYSDEP_H */
next prev parent reply other threads:[~2006-01-13 21:09 UTC|newest]
Thread overview: 11+ messages / expand[flat|nested] mbox.gz Atom feed top
2006-01-10 0:35 Richard Henderson
2006-01-10 1:52 ` Roland McGrath
2006-01-10 2:03 ` Ulrich Drepper
2006-01-10 2:10 ` Richard Henderson
2006-01-10 18:18 ` Ulrich Drepper
2006-01-10 18:27 ` Ulrich Drepper
2006-01-12 0:09 ` Richard Henderson
2006-01-12 0:24 ` Ulrich Drepper
2006-01-13 21:09 ` Richard Henderson [this message]
2006-01-13 21:49 ` Ulrich Drepper
2006-01-12 0:12 ` Ulrich Drepper
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20060113210852.GA14932@twiddle.net \
--to=rth@twiddle.net \
--cc=drepper@redhat.com \
--cc=libc-hacker@sources.redhat.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).