Auto-sync with upstream master
Upstream commit: 9032070deaa03431921315f973c548c2c403fecc
This commit is contained in:
parent
55bd1b5cdd
commit
573bcacc8f
@ -6962,37 +6962,3 @@ Index: glibc-2.24-256-g5140d03/sysdeps/x86/bits/pthreadtypes.h
|
|||||||
} __data;
|
} __data;
|
||||||
char __size[__SIZEOF_PTHREAD_COND_T];
|
char __size[__SIZEOF_PTHREAD_COND_T];
|
||||||
__extension__ long long int __align;
|
__extension__ long long int __align;
|
||||||
Index: glibc-2.24-256-g5140d03/include/atomic.h
|
|
||||||
===================================================================
|
|
||||||
--- glibc-2.24-256-g5140d03.orig/include/atomic.h
|
|
||||||
+++ glibc-2.24-256-g5140d03/include/atomic.h
|
|
||||||
@@ -777,18 +777,22 @@ void __atomic_link_error (void);
|
|
||||||
# endif
|
|
||||||
|
|
||||||
# ifndef atomic_fetch_xor_release
|
|
||||||
+/* Failing the atomic_compare_exchange_weak_release reloads the value in
|
|
||||||
+ __atg104_expected, so we need only do the XOR again and retry. */
|
|
||||||
# define atomic_fetch_xor_release(mem, operand) \
|
|
||||||
- ({ __typeof (*(mem)) __atg104_old; \
|
|
||||||
- __typeof (mem) __atg104_memp = (mem); \
|
|
||||||
+ ({ __typeof (mem) __atg104_memp = (mem); \
|
|
||||||
+ __typeof (*(mem)) __atg104_expected = (*__atg104_memp); \
|
|
||||||
+ __typeof (*(mem)) __atg104_desired; \
|
|
||||||
__typeof (*(mem)) __atg104_op = (operand); \
|
|
||||||
\
|
|
||||||
do \
|
|
||||||
- __atg104_old = (*__atg104_memp); \
|
|
||||||
- while (__builtin_expect \
|
|
||||||
- (atomic_compare_and_exchange_bool_rel ( \
|
|
||||||
- __atg104_memp, __atg104_old ^ __atg104_op, __atg104_old), 0));\
|
|
||||||
+ __atg104_desired = __atg104_expected ^ __atg104_op; \
|
|
||||||
+ while (__glibc_unlikely \
|
|
||||||
+ (atomic_compare_exchange_weak_release ( \
|
|
||||||
+ __atg104_memp, &__atg104_expected, __atg104_desired) \
|
|
||||||
+ == 0)); \
|
|
||||||
\
|
|
||||||
- __atg104_old; })
|
|
||||||
+ __atg104_expected; })
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#endif /* !USE_ATOMIC_COMPILER_BUILTINS */
|
|
||||||
|
@ -1,33 +0,0 @@
|
|||||||
Bug 20019 - NULL pointer dereference in libc.so.6 IFUNC due to uninitialized GOT
|
|
||||||
|
|
||||||
Prototype patch by H.J. Lu <hjl.tools@gmail.com> to error
|
|
||||||
out when IFUNC being resolved is for another map that hasn't
|
|
||||||
yet been relocated.
|
|
||||||
|
|
||||||
--- a/sysdeps/x86_64/dl-machine.h
|
|
||||||
+++ a/sysdeps/x86_64/dl-machine.h
|
|
||||||
@@ -331,7 +331,23 @@ elf_machine_rela (struct link_map *map, const ElfW(Rela) *reloc,
|
|
||||||
0)
|
|
||||||
&& __builtin_expect (sym->st_shndx != SHN_UNDEF, 1)
|
|
||||||
&& __builtin_expect (!skip_ifunc, 1))
|
|
||||||
- value = ((ElfW(Addr) (*) (void)) value) ();
|
|
||||||
+ {
|
|
||||||
+# ifndef RTLD_BOOTSTRAP
|
|
||||||
+ if (sym_map != map
|
|
||||||
+ && sym_map->l_type != lt_executable
|
|
||||||
+ && !sym_map->l_relocated)
|
|
||||||
+ {
|
|
||||||
+ const char *strtab
|
|
||||||
+ = (const char *) D_PTR (map, l_info[DT_STRTAB]);
|
|
||||||
+ _dl_fatal_printf ("\
|
|
||||||
+%s: Relink `%s' with `%s' for IFUNC symbol `%s'\n",
|
|
||||||
+ RTLD_PROGNAME, map->l_name,
|
|
||||||
+ sym_map->l_name,
|
|
||||||
+ strtab + refsym->st_name);
|
|
||||||
+ }
|
|
||||||
+#endif
|
|
||||||
+ value = ((ElfW(Addr) (*) (void)) value) ();
|
|
||||||
+ }
|
|
||||||
|
|
||||||
switch (r_type)
|
|
||||||
{
|
|
17
glibc.spec
17
glibc.spec
@ -1,4 +1,4 @@
|
|||||||
%define glibcsrcdir glibc-2.24-285-ge37208c
|
%define glibcsrcdir glibc-2.24-326-g9032070
|
||||||
%define glibcversion 2.24.90
|
%define glibcversion 2.24.90
|
||||||
%define glibcrelease 14%{?dist}
|
%define glibcrelease 14%{?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
|
||||||
@ -262,10 +262,6 @@ Patch0059: glibc-c-utf8-locale.patch
|
|||||||
# Build libcrypt twice, with and without NSS.
|
# Build libcrypt twice, with and without NSS.
|
||||||
Patch0060: glibc-rh1324623.patch
|
Patch0060: glibc-rh1324623.patch
|
||||||
|
|
||||||
# Bug 20019: Prototype patch to error on resolution of IFUNC
|
|
||||||
# for an uninitialized library.
|
|
||||||
Patch0061: glibc-swbz20019.patch
|
|
||||||
|
|
||||||
# Bug 13165: New condvar implementation.
|
# Bug 13165: New condvar implementation.
|
||||||
Patch0062: glibc-swbz13165.patch
|
Patch0062: glibc-swbz13165.patch
|
||||||
|
|
||||||
@ -886,7 +882,6 @@ microbenchmark tests on the system.
|
|||||||
%patch2037 -p1
|
%patch2037 -p1
|
||||||
%patch2110 -p1
|
%patch2110 -p1
|
||||||
%patch2112 -p1
|
%patch2112 -p1
|
||||||
%patch0061 -p1
|
|
||||||
%patch0062 -p1
|
%patch0062 -p1
|
||||||
|
|
||||||
##############################################################################
|
##############################################################################
|
||||||
@ -2283,7 +2278,17 @@ rm -f *.filelist*
|
|||||||
|
|
||||||
%changelog
|
%changelog
|
||||||
* Wed Nov 2 2016 Florian Weimer <fweimer@redhat.com> - 2.24.90-14
|
* Wed Nov 2 2016 Florian Weimer <fweimer@redhat.com> - 2.24.90-14
|
||||||
|
- Drop glibc-swbz20019.patch, applied upstream.
|
||||||
- dlerror returns NULL after dlsym (RTLD_NEXT) lookup failure (#1333945)
|
- dlerror returns NULL after dlsym (RTLD_NEXT) lookup failure (#1333945)
|
||||||
|
(fixed by dropping the revert)
|
||||||
|
- Auto-sync with upstream master,
|
||||||
|
commit 9032070deaa03431921315f973c548c2c403fecc, fixing:
|
||||||
|
- Correct clog10 documentation (swbz#19673)
|
||||||
|
- Fix building with -Os (swbz#20729)
|
||||||
|
- Properly initialize glob structure with GLOB_BRACE|GLOB_DOOFFS (swbz#20707)
|
||||||
|
- powerpc: Fix TOC stub on powerpc64 clone (swbz#20728)
|
||||||
|
- math: Make strtod raise "inexact" exceptions (swbz#19380)
|
||||||
|
- malloc: Remove malloc_get_state, malloc_set_state (swbz#19473)
|
||||||
|
|
||||||
* Sat Oct 22 2016 Florian Weimer <fweimer@redhat.com> - 2.24.90-13
|
* Sat Oct 22 2016 Florian Weimer <fweimer@redhat.com> - 2.24.90-13
|
||||||
- Auto-sync with upstream master,
|
- Auto-sync with upstream master,
|
||||||
|
Loading…
Reference in New Issue
Block a user