Sync with upstream master
This commit is contained in:
parent
b39b864460
commit
8710f4aaa6
@ -1,30 +0,0 @@
|
|||||||
commit a60339aaff82beadea6f580e587d64052cb5e3b8
|
|
||||||
Author: Will Newton <will.newton@linaro.org>
|
|
||||||
Date: Mon May 19 14:38:30 2014 +0100
|
|
||||||
|
|
||||||
AArch64: Fix handling of nocancel syscall failures
|
|
||||||
|
|
||||||
The current code for nocancel syscalls does not do a comparison of
|
|
||||||
the system call return value. This leads to code being generated
|
|
||||||
where the b.cs follows the svc instruction directly without setting
|
|
||||||
the flags on which the branch depends.
|
|
||||||
|
|
||||||
ChangeLog:
|
|
||||||
|
|
||||||
2014-05-20 Will Newton <will.newton@linaro.org>
|
|
||||||
|
|
||||||
* sysdeps/unix/sysv/linux/aarch64/nptl/sysdep-cancel.h (PSEUDO):
|
|
||||||
Test the return value of the system call in the nocancel case.
|
|
||||||
|
|
||||||
diff --git a/sysdeps/unix/sysv/linux/aarch64/nptl/sysdep-cancel.h b/sysdeps/unix/sysv/linux/aarch64/nptl/sysdep-cancel.h
|
|
||||||
index f6903b5..0e9bef3 100644
|
|
||||||
--- a/sysdeps/unix/sysv/linux/aarch64/nptl/sysdep-cancel.h
|
|
||||||
+++ b/sysdeps/unix/sysv/linux/aarch64/nptl/sysdep-cancel.h
|
|
||||||
@@ -32,6 +32,7 @@
|
|
||||||
__##syscall_name##_nocancel: \
|
|
||||||
cfi_startproc; \
|
|
||||||
DO_CALL (syscall_name, args); \
|
|
||||||
+ cmn x0, 4095; \
|
|
||||||
PSEUDO_RET; \
|
|
||||||
cfi_endproc; \
|
|
||||||
.size __##syscall_name##_nocancel,.-__##syscall_name##_nocancel; \
|
|
@ -11,25 +11,3 @@ index 997c860..50b37b0 100644
|
|||||||
{
|
{
|
||||||
td->arg = _dl_make_tlsdesc_dynamic
|
td->arg = _dl_make_tlsdesc_dynamic
|
||||||
(sym_map, sym->st_value + reloc->r_addend);
|
(sym_map, sym->st_value + reloc->r_addend);
|
||||||
diff --git a/sysdeps/aarch64/nptl/tls.h b/sysdeps/aarch64/nptl/tls.h
|
|
||||||
index ae2e6c4..8b260a1 100644
|
|
||||||
--- a/sysdeps/aarch64/nptl/tls.h
|
|
||||||
+++ b/sysdeps/aarch64/nptl/tls.h
|
|
||||||
@@ -63,7 +63,7 @@ typedef struct
|
|
||||||
# define TLS_INIT_TCB_SIZE sizeof (tcbhead_t)
|
|
||||||
|
|
||||||
/* Alignment requirements for the initial TCB. */
|
|
||||||
-# define TLS_INIT_TCB_ALIGN __alignof__ (tcbhead_t)
|
|
||||||
+# define TLS_INIT_TCB_ALIGN __alignof__ (struct pthread)
|
|
||||||
|
|
||||||
/* This is the size of the TCB. */
|
|
||||||
# define TLS_TCB_SIZE sizeof (tcbhead_t)
|
|
||||||
@@ -72,7 +72,7 @@ typedef struct
|
|
||||||
# define TLS_PRE_TCB_SIZE sizeof (struct pthread)
|
|
||||||
|
|
||||||
/* Alignment requirements for the TCB. */
|
|
||||||
-# define TLS_TCB_ALIGN __alignof__ (tcbhead_t)
|
|
||||||
+# define TLS_TCB_ALIGN __alignof__ (struct pthread)
|
|
||||||
|
|
||||||
/* Install the dtv pointer. The pointer passed is to the element with
|
|
||||||
index -1 which contain the length. */
|
|
||||||
|
@ -4,7 +4,7 @@ diff -Nrup a/nptl/Makefile b/nptl/Makefile
|
|||||||
@@ -529,15 +529,19 @@ $(addprefix $(objpfx), \
|
@@ -529,15 +529,19 @@ $(addprefix $(objpfx), \
|
||||||
$(tests) $(xtests) $(test-srcs))): $(objpfx)libpthread.so \
|
$(tests) $(xtests) $(test-srcs))): $(objpfx)libpthread.so \
|
||||||
$(objpfx)libpthread_nonshared.a
|
$(objpfx)libpthread_nonshared.a
|
||||||
$(objpfx)tst-unload: $(common-objpfx)dlfcn/libdl.so
|
$(objpfx)tst-unload: $(libdl)
|
||||||
-# $(objpfx)../libc.so is used instead of $(common-objpfx)libc.so,
|
-# $(objpfx)../libc.so is used instead of $(common-objpfx)libc.so,
|
||||||
+# $(objpfx)linklibc.so is used instead of $(common-objpfx)libc.so,
|
+# $(objpfx)linklibc.so is used instead of $(common-objpfx)libc.so,
|
||||||
# since otherwise libpthread.so comes before libc.so when linking.
|
# since otherwise libpthread.so comes before libc.so when linking.
|
||||||
|
10
glibc.spec
10
glibc.spec
@ -1,6 +1,6 @@
|
|||||||
%define glibcsrcdir glibc-2.19-418-ga5d87b3
|
%define glibcsrcdir glibc-2.19-476-g15eaf6f
|
||||||
%define glibcversion 2.19.90
|
%define glibcversion 2.19.90
|
||||||
%define glibcrelease 17%{?dist}
|
%define glibcrelease 18%{?dist}
|
||||||
# Pre-release tarballs are pulled in from git using a command that is
|
# Pre-release tarballs are pulled in from git using a command that is
|
||||||
# effectively:
|
# effectively:
|
||||||
#
|
#
|
||||||
@ -191,8 +191,6 @@ Patch0047: %{name}-nscd-sysconfig.patch
|
|||||||
#
|
#
|
||||||
##############################################################################
|
##############################################################################
|
||||||
|
|
||||||
Patch1000: %{name}-aarch64-fix-handling-of-nocancel-syscall-failures.patch
|
|
||||||
|
|
||||||
##############################################################################
|
##############################################################################
|
||||||
#
|
#
|
||||||
# Patches submitted, but not yet approved upstream.
|
# Patches submitted, but not yet approved upstream.
|
||||||
@ -555,7 +553,6 @@ package or when debugging this package.
|
|||||||
%patch2031 -p1
|
%patch2031 -p1
|
||||||
%patch0047 -p1
|
%patch0047 -p1
|
||||||
%patch2032 -p1
|
%patch2032 -p1
|
||||||
%patch1000 -p1
|
|
||||||
%patch2033 -p1
|
%patch2033 -p1
|
||||||
|
|
||||||
##############################################################################
|
##############################################################################
|
||||||
@ -1646,6 +1643,9 @@ rm -f *.filelist*
|
|||||||
%endif
|
%endif
|
||||||
|
|
||||||
%changelog
|
%changelog
|
||||||
|
* Mon May 26 2014 Siddhesh Poyarekar <siddhesh@redhat.com> - 2.19.90-18
|
||||||
|
- Sync with upstream master.
|
||||||
|
|
||||||
* Wed May 21 2014 Kyle McMartin <kyle@fedoraproject.org> - 2.19.90-17
|
* Wed May 21 2014 Kyle McMartin <kyle@fedoraproject.org> - 2.19.90-17
|
||||||
- Backport some upstream-wards patches to fix TLS issues on AArch64.
|
- Backport some upstream-wards patches to fix TLS issues on AArch64.
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user