This is the mail archive of the
glibc-cvs@sourceware.org
mailing list for the glibc project.
GNU C Library master sources branch, master, updated. glibc-2.15-902-g2953ec7
- From: hjl at sourceware dot org
- To: glibc-cvs at sourceware dot org
- Date: 15 May 2012 19:51:33 -0000
- Subject: GNU C Library master sources branch, master, updated. glibc-2.15-902-g2953ec7
This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "GNU C Library master sources".
The branch, master has been updated
via 2953ec750f08b58aa2197cd222e3763014536b58 (commit)
via 3b550e9e48628300210892c64f1b9c2d940393d5 (commit)
via dde05f0093424253cea3f7bc19a3c14dee2e65d7 (commit)
via 9dba3b5c0a0c0144f712a4a9d254369767877fa8 (commit)
via eda4170670ddd0dfdc98c7b59ccd274fe18b3636 (commit)
from 9ea01d93f7e08463febd23ad758e28973524f9be (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.
- Log -----------------------------------------------------------------
http://sources.redhat.com/git/gitweb.cgi?p=glibc.git;a=commitdiff;h=2953ec750f08b58aa2197cd222e3763014536b58
commit 2953ec750f08b58aa2197cd222e3763014536b58
Author: H.J. Lu <hjl.tools@gmail.com>
Date: Tue May 15 12:51:18 2012 -0700
Add x32 init-first.c
diff --git a/ChangeLog b/ChangeLog
index 512e5cd..214ef35 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,9 @@
2012-05-15 H.J. Lu <hongjiu.lu@intel.com>
+ * sysdeps/unix/sysv/linux/x86_64/x32/init-first.c: New.
+
+2012-05-15 H.J. Lu <hongjiu.lu@intel.com>
+
* sysdeps/x86_64/sysdep.h: Allowed to be include more than once.
* sysdeps/x86_64/x32/sysdep.h: New file.
diff --git a/sysdeps/unix/sysv/linux/x86_64/x32/init-first.c b/sysdeps/unix/sysv/linux/x86_64/x32/init-first.c
new file mode 100644
index 0000000..c2aea9d
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/x86_64/x32/init-first.c
@@ -0,0 +1,40 @@
+/* Copyright (C) 2012 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 Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 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
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#ifdef SHARED
+# include <dl-vdso.h>
+# include <bits/libc-vdso.h>
+
+long int (*__vdso_clock_gettime) (clockid_t, struct timespec *)
+ __attribute__ ((nocommon));
+libc_hidden_proto (__vdso_clock_gettime)
+libc_hidden_data_def (__vdso_clock_gettime)
+
+static inline void
+_libc_vdso_platform_setup (void)
+{
+ PREPARE_VERSION (linux26, "LINUX_2.6", 61765110);
+
+ void *p = _dl_vdso_vsym ("__vdso_clock_gettime", &linux26);
+ PTR_MANGLE (p);
+ __vdso_clock_gettime = p;
+}
+
+# define VDSO_SETUP _libc_vdso_platform_setup
+#endif
+
+#include "../../init-first.c"
http://sources.redhat.com/git/gitweb.cgi?p=glibc.git;a=commitdiff;h=3b550e9e48628300210892c64f1b9c2d940393d5
commit 3b550e9e48628300210892c64f1b9c2d940393d5
Author: H.J. Lu <hjl.tools@gmail.com>
Date: Tue May 15 12:49:42 2012 -0700
Add sysdeps/x86_64/x32/sysdep.h
diff --git a/ChangeLog b/ChangeLog
index 30b4d87..512e5cd 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,10 @@
2012-05-15 H.J. Lu <hongjiu.lu@intel.com>
+ * sysdeps/x86_64/sysdep.h: Allowed to be include more than once.
+ * sysdeps/x86_64/x32/sysdep.h: New file.
+
+2012-05-15 H.J. Lu <hongjiu.lu@intel.com>
+
* sysdeps/x86_64/__longjmp.S: Use R*_LP on SP and PC.
* sysdeps/x86_64/setjmp.S: Likewise.
diff --git a/sysdeps/x86_64/sysdep.h b/sysdeps/x86_64/sysdep.h
index e34d7a9..af69499 100644
--- a/sysdeps/x86_64/sysdep.h
+++ b/sysdeps/x86_64/sysdep.h
@@ -16,6 +16,9 @@
License along with the GNU C Library; if not, see
<http://www.gnu.org/licenses/>. */
+#ifndef _X86_64_SYSDEP_H
+#define _X86_64_SYSDEP_H 1
+
#include <sysdeps/generic/sysdep.h>
#ifdef __ASSEMBLER__
@@ -152,3 +155,5 @@ lose: \
#define R15_LP "r15"
#endif /* __ASSEMBLER__ */
+
+#endif /* _X86_64_SYSDEP_H */
diff --git a/sysdeps/x86_64/x32/sysdep.h b/sysdeps/x86_64/x32/sysdep.h
new file mode 100644
index 0000000..cbe2e5f
--- /dev/null
+++ b/sysdeps/x86_64/x32/sysdep.h
@@ -0,0 +1,92 @@
+/* Assembler macros for x32.
+ Copyright (C) 2012 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 Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 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
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#include <sysdeps/x86_64/sysdep.h>
+
+#undef LP_SIZE
+#undef LP_OP
+#undef ASM_ADDR
+
+#undef RAX_LP
+#undef RBP_LP
+#undef RBX_LP
+#undef RCX_LP
+#undef RDI_LP
+#undef RDX_LP
+#undef RSP_LP
+#undef RSI_LP
+#undef R8_LP
+#undef R9_LP
+#undef R10_LP
+#undef R11_LP
+#undef R12_LP
+#undef R13_LP
+#undef R14_LP
+#undef R15_LP
+
+#ifdef __ASSEMBLER__
+
+# define LP_SIZE 4
+
+# define LP_OP(insn) insn##l
+
+# define ASM_ADDR .long
+
+# define RAX_LP eax
+# define RBP_LP ebp
+# define RBX_LP ebx
+# define RCX_LP ecx
+# define RDI_LP edi
+# define RDX_LP edx
+# define RSI_LP esi
+# define RSP_LP esp
+# define R8_LP r8d
+# define R9_LP r9d
+# define R10_LP r10d
+# define R11_LP r11d
+# define R12_LP r12d
+# define R13_LP r13d
+# define R14_LP r14d
+# define R15_LP r15d
+
+#else /* __ASSEMBLER__ */
+
+# define LP_SIZE "4"
+
+# define LP_OP(insn) #insn "l"
+
+# define ASM_ADDR ".long"
+
+# define RAX_LP "eax"
+# define RBP_LP "ebp"
+# define RBX_LP "ebx"
+# define RCX_LP "ecx"
+# define RDI_LP "edi"
+# define RDX_LP "edx"
+# define RSI_LP "esi"
+# define RSP_LP "esp"
+# define R8_LP "r8d"
+# define R9_LP "r9d"
+# define R10_LP "r10d"
+# define R11_LP "r11d"
+# define R12_LP "r12d"
+# define R13_LP "r13d"
+# define R14_LP "r14d"
+# define R15_LP "r15d"
+
+#endif /* __ASSEMBLER__ */
http://sources.redhat.com/git/gitweb.cgi?p=glibc.git;a=commitdiff;h=dde05f0093424253cea3f7bc19a3c14dee2e65d7
commit dde05f0093424253cea3f7bc19a3c14dee2e65d7
Author: H.J. Lu <hjl.tools@gmail.com>
Date: Tue May 15 12:48:26 2012 -0700
Use LP_OP(op), LP_SIZE and ASM_ADDR in sem_wait.S
diff --git a/nptl/ChangeLog b/nptl/ChangeLog
index 6d61b90..3927717 100644
--- a/nptl/ChangeLog
+++ b/nptl/ChangeLog
@@ -1,5 +1,12 @@
2012-05-15 H.J. Lu <hongjiu.lu@intel.com>
+ * sysdeps/unix/sysv/linux/x86_64/sem_wait.S: Use LP_OP(op)
+ on NWAITERS.
+ (__gcc_personality_v0): Replace 8-byte data alignment with
+ LP_SIZE alignment and .quad with ASM_ADDR.
+
+2012-05-15 H.J. Lu <hongjiu.lu@intel.com>
+
* sysdeps/unix/sysv/linux/x86_64/sem_timedwait.S: Use LP_OP(op)
on NWAITERS.
(__gcc_personality_v0): Replace 8-byte data alignment with
diff --git a/nptl/sysdeps/unix/sysv/linux/x86_64/sem_wait.S b/nptl/sysdeps/unix/sysv/linux/x86_64/sem_wait.S
index c6c6c26..7f91148 100644
--- a/nptl/sysdeps/unix/sysv/linux/x86_64/sem_wait.S
+++ b/nptl/sysdeps/unix/sysv/linux/x86_64/sem_wait.S
@@ -66,7 +66,7 @@ sem_wait:
cfi_adjust_cfa_offset(8)
LOCK
- addq $1, NWAITERS(%rdi)
+ LP_OP(add) $1, NWAITERS(%rdi)
.LcleanupSTART:
6: call __pthread_enable_asynccancel
@@ -115,7 +115,7 @@ sem_wait:
xorl %eax, %eax
9: LOCK
- subq $1, NWAITERS(%rdi)
+ LP_OP(sub) $1, NWAITERS(%rdi)
leaq 8(%rsp), %rsp
cfi_adjust_cfa_offset(-8)
@@ -136,7 +136,7 @@ sem_wait:
sem_wait_cleanup:
movq (%rsp), %rdi
LOCK
- subq $1, NWAITERS(%rdi)
+ LP_OP(sub) $1, NWAITERS(%rdi)
movq %rax, %rdi
.LcallUR:
call _Unwind_Resume@PLT
@@ -168,9 +168,9 @@ sem_wait_cleanup:
.hidden DW.ref.__gcc_personality_v0
.weak DW.ref.__gcc_personality_v0
.section .gnu.linkonce.d.DW.ref.__gcc_personality_v0,"aw",@progbits
- .align 8
+ .align LP_SIZE
.type DW.ref.__gcc_personality_v0, @object
- .size DW.ref.__gcc_personality_v0, 8
+ .size DW.ref.__gcc_personality_v0, LP_SIZE
DW.ref.__gcc_personality_v0:
- .quad __gcc_personality_v0
+ ASM_ADDR __gcc_personality_v0
#endif
http://sources.redhat.com/git/gitweb.cgi?p=glibc.git;a=commitdiff;h=9dba3b5c0a0c0144f712a4a9d254369767877fa8
commit 9dba3b5c0a0c0144f712a4a9d254369767877fa8
Author: H.J. Lu <hjl.tools@gmail.com>
Date: Tue May 15 12:47:31 2012 -0700
se LP_OP(op), LP_SIZE and ASM_ADDR in sem_timedwait.S
diff --git a/nptl/ChangeLog b/nptl/ChangeLog
index a17ebc7..6d61b90 100644
--- a/nptl/ChangeLog
+++ b/nptl/ChangeLog
@@ -1,5 +1,12 @@
2012-05-15 H.J. Lu <hongjiu.lu@intel.com>
+ * sysdeps/unix/sysv/linux/x86_64/sem_timedwait.S: Use LP_OP(op)
+ on NWAITERS.
+ (__gcc_personality_v0): Replace 8-byte data alignment with
+ LP_SIZE alignment and .quad with ASM_ADDR.
+
+2012-05-15 H.J. Lu <hongjiu.lu@intel.com>
+
* sysdeps/unix/sysv/linux/x86_64/sem_post.S: Use LP_OP(cmp) on
NWAITERS, which is unsigned long int.
diff --git a/nptl/sysdeps/unix/sysv/linux/x86_64/sem_timedwait.S b/nptl/sysdeps/unix/sysv/linux/x86_64/sem_timedwait.S
index a600238..acb79db 100644
--- a/nptl/sysdeps/unix/sysv/linux/x86_64/sem_timedwait.S
+++ b/nptl/sysdeps/unix/sysv/linux/x86_64/sem_timedwait.S
@@ -83,7 +83,7 @@ sem_timedwait:
movq %rsi, %r10
LOCK
- addq $1, NWAITERS(%rdi)
+ LP_OP(add) $1, NWAITERS(%rdi)
.LcleanupSTART:
13: call __pthread_enable_asynccancel
@@ -134,7 +134,7 @@ sem_timedwait:
xorl %eax, %eax
15: LOCK
- subq $1, NWAITERS(%rdi)
+ LP_OP(sub) $1, NWAITERS(%rdi)
leaq 8(%rsp), %rsp
cfi_adjust_cfa_offset(-8)
@@ -189,7 +189,7 @@ sem_timedwait:
movq %rsi, %r13
LOCK
- addq $1, NWAITERS(%r12)
+ LP_OP(add) $1, NWAITERS(%r12)
7: xorl %esi, %esi
movq %rsp,%rdi
@@ -266,7 +266,7 @@ sem_timedwait:
xorl %eax, %eax
45: LOCK
- subq $1, NWAITERS(%r12)
+ LP_OP(sub) $1, NWAITERS(%r12)
addq $STACKFRAME, %rsp
cfi_adjust_cfa_offset(-STACKFRAME)
@@ -304,7 +304,7 @@ sem_timedwait_cleanup:
movq (%rsp), %rdi
LOCK
- subq $1, NWAITERS(%rdi)
+ LP_OP(sub) $1, NWAITERS(%rdi)
movq %rax, %rdi
.LcallUR:
call _Unwind_Resume@PLT
@@ -324,7 +324,7 @@ sem_timedwait_cleanup2:
cfi_rel_offset(%r14, STACKFRAME)
LOCK
- subq $1, NWAITERS(%r12)
+ LP_OP(sub) $1, NWAITERS(%r12)
movq %rax, %rdi
movq STACKFRAME(%rsp), %r14
movq STACKFRAME+8(%rsp), %r13
@@ -372,9 +372,9 @@ sem_timedwait_cleanup2:
.hidden DW.ref.__gcc_personality_v0
.weak DW.ref.__gcc_personality_v0
.section .gnu.linkonce.d.DW.ref.__gcc_personality_v0,"aw",@progbits
- .align 8
+ .align LP_SIZE
.type DW.ref.__gcc_personality_v0, @object
- .size DW.ref.__gcc_personality_v0, 8
+ .size DW.ref.__gcc_personality_v0, LP_SIZE
DW.ref.__gcc_personality_v0:
- .quad __gcc_personality_v0
+ ASM_ADDR __gcc_personality_v0
#endif
http://sources.redhat.com/git/gitweb.cgi?p=glibc.git;a=commitdiff;h=eda4170670ddd0dfdc98c7b59ccd274fe18b3636
commit eda4170670ddd0dfdc98c7b59ccd274fe18b3636
Author: H.J. Lu <hjl.tools@gmail.com>
Date: Tue May 15 12:46:04 2012 -0700
Use R*_LP on SP and PC in __longjmp.S and setjmp.S
diff --git a/ChangeLog b/ChangeLog
index 2bf9dab..30b4d87 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+2012-05-15 H.J. Lu <hongjiu.lu@intel.com>
+
+ * sysdeps/x86_64/__longjmp.S: Use R*_LP on SP and PC.
+ * sysdeps/x86_64/setjmp.S: Likewise.
+
2012-05-15 Adhemerval Zanella <azanella@linux.vnet.ibm.com>
* sysdeps/ieee754/dbl-64/wordsize-64/e_log10.c: New file.
diff --git a/sysdeps/x86_64/__longjmp.S b/sysdeps/x86_64/__longjmp.S
index 3963f9c..22beb88 100644
--- a/sysdeps/x86_64/__longjmp.S
+++ b/sysdeps/x86_64/__longjmp.S
@@ -25,13 +25,13 @@
.text
ENTRY(__longjmp)
/* Restore registers. */
- movq (JB_RSP*8)(%rdi),%r8
+ mov (JB_RSP*8)(%rdi),%R8_LP
movq (JB_RBP*8)(%rdi),%r9
- movq (JB_PC*8)(%rdi),%rdx
+ mov (JB_PC*8)(%rdi),%RDX_LP
#ifdef PTR_DEMANGLE
- PTR_DEMANGLE (%r8)
+ PTR_DEMANGLE (%R8_LP)
PTR_DEMANGLE (%r9)
- PTR_DEMANGLE (%rdx)
+ PTR_DEMANGLE (%RDX_LP)
#endif
/* We add unwind information for the target here. */
cfi_def_cfa(%rdi, 0)
@@ -50,7 +50,7 @@ ENTRY(__longjmp)
movq (JB_R15*8)(%rdi),%r15
/* Set return value for setjmp. */
mov %esi, %eax
- movq %r8,%rsp
+ mov %R8_LP,%RSP_LP
movq %r9,%rbp
jmpq *%rdx
END (__longjmp)
diff --git a/sysdeps/x86_64/setjmp.S b/sysdeps/x86_64/setjmp.S
index 1902d14..87c0952 100644
--- a/sysdeps/x86_64/setjmp.S
+++ b/sysdeps/x86_64/setjmp.S
@@ -34,14 +34,14 @@ ENTRY (__sigsetjmp)
movq %r13, (JB_R13*8)(%rdi)
movq %r14, (JB_R14*8)(%rdi)
movq %r15, (JB_R15*8)(%rdi)
- leaq 8(%rsp), %rdx /* Save SP as it will be after we return. */
+ lea 8(%rsp), %RDX_LP /* Save SP as it will be after we return. */
#ifdef PTR_MANGLE
- PTR_MANGLE (%rdx)
+ PTR_MANGLE (%RDX_LP)
#endif
movq %rdx, (JB_RSP*8)(%rdi)
- movq (%rsp), %rax /* Save PC we are returning to now. */
+ mov (%rsp), %RAX_LP /* Save PC we are returning to now. */
#ifdef PTR_MANGLE
- PTR_MANGLE (%rax)
+ PTR_MANGLE (%RAX_LP)
#endif
movq %rax, (JB_PC*8)(%rdi)
-----------------------------------------------------------------------
Summary of changes:
ChangeLog | 14 +++
nptl/ChangeLog | 14 +++
.../sysdeps/unix/sysv/linux/x86_64/sem_timedwait.S | 18 ++--
nptl/sysdeps/unix/sysv/linux/x86_64/sem_wait.S | 12 ++--
.../linux/x86_64/x32/{getcpu.c => init-first.c} | 19 +++-
sysdeps/x86_64/__longjmp.S | 10 +-
sysdeps/x86_64/setjmp.S | 8 +-
sysdeps/x86_64/sysdep.h | 5 +
sysdeps/x86_64/x32/sysdep.h | 92 ++++++++++++++++++++
9 files changed, 163 insertions(+), 29 deletions(-)
copy sysdeps/unix/sysv/linux/x86_64/x32/{getcpu.c => init-first.c} (66%)
create mode 100644 sysdeps/x86_64/x32/sysdep.h
hooks/post-receive
--
GNU C Library master sources