<feed xmlns='http://www.w3.org/2005/Atom'>
<title>delta/glibc.git/ChangeLog, branch azanella/aarch64-split-stack</title>
<subtitle>sourceware.org: git/glibc.git
</subtitle>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/glibc.git/'/>
<entry>
<title>aarch64: Add split-stack TCB field</title>
<updated>2018-01-17T11:26:35+00:00</updated>
<author>
<name>Adhemerval Zanella</name>
<email>adhemerval.zanella@linaro.org</email>
</author>
<published>2017-01-24T11:27:45+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/glibc.git/commit/?id=97dabd564b91e6d0bfacf9af8d34103347047f23'/>
<id>97dabd564b91e6d0bfacf9af8d34103347047f23</id>
<content type='text'>
This patch adds split-stack support pointer guard on glibc for aarch64.
Different from other architectures (powerpc, s390) where the memory is
placed on TCB, aarch64 one is placed before thread pointer initial
position.  It has an advantage over extending TCB because for aarch64
TLS variable placement take in consideration tcbhead_t size and by
changing its value would require to also update the static linker
(and it would also add incompatibility with glibc and older linkers).

For aarch64 tcb direct access is fastest for thread local variable on
all mode and related TLS access.  It requires just a direct load with
displacement of -8 (since thread pointer points to tcbhead_t).

It also adds a loader symbol (__tcb_private_ss) to signal the existence
of the split stack guard area.

Checked on aarch64-linux-gnu.

	* sysdeps/aarch64/Makefile [$(subdir) = elf] (sysdeps-dl-routines):
	Add tcb-version.
	* sysdeps/aarch64/Versions [ld] (GLIBC_2.26): Add
	__libc_tcb_private_ss.
	* sysdeps/aarch64/nptl/tls.h (tcbprehead_t): New struct.
	(TLS_PRE_TCB_SIZE): Take tcbprehead_t in consideration.
	(TLS_DEFINE_INIT_TP): Likewise.
	(THREAD_SELF): Likewise.
	(DB_THREAD_SELF): Likewise.
	* sysdeps/aarch64/tcb-version.c: New file.
	* sysdeps/unix/sysv/linux/aarch64/ld.abilist (GLIBC_2.26): Add.
	(__libc_tcb_private_ss): Likewise.
	* sysdeps/aarch64/nptl/tcb-offsets.sym (PTHREAD_SIZEOF): Rename to
	PTHREAD_PRE_TCB_SIZE.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This patch adds split-stack support pointer guard on glibc for aarch64.
Different from other architectures (powerpc, s390) where the memory is
placed on TCB, aarch64 one is placed before thread pointer initial
position.  It has an advantage over extending TCB because for aarch64
TLS variable placement take in consideration tcbhead_t size and by
changing its value would require to also update the static linker
(and it would also add incompatibility with glibc and older linkers).

For aarch64 tcb direct access is fastest for thread local variable on
all mode and related TLS access.  It requires just a direct load with
displacement of -8 (since thread pointer points to tcbhead_t).

It also adds a loader symbol (__tcb_private_ss) to signal the existence
of the split stack guard area.

Checked on aarch64-linux-gnu.

	* sysdeps/aarch64/Makefile [$(subdir) = elf] (sysdeps-dl-routines):
	Add tcb-version.
	* sysdeps/aarch64/Versions [ld] (GLIBC_2.26): Add
	__libc_tcb_private_ss.
	* sysdeps/aarch64/nptl/tls.h (tcbprehead_t): New struct.
	(TLS_PRE_TCB_SIZE): Take tcbprehead_t in consideration.
	(TLS_DEFINE_INIT_TP): Likewise.
	(THREAD_SELF): Likewise.
	(DB_THREAD_SELF): Likewise.
	* sysdeps/aarch64/tcb-version.c: New file.
	* sysdeps/unix/sysv/linux/aarch64/ld.abilist (GLIBC_2.26): Add.
	(__libc_tcb_private_ss): Likewise.
	* sysdeps/aarch64/nptl/tcb-offsets.sym (PTHREAD_SIZEOF): Rename to
	PTHREAD_PRE_TCB_SIZE.
</pre>
</div>
</content>
</entry>
<entry>
<title>Use LIBGCC_S_SO in x86_64 backtrace.</title>
<updated>2018-01-16T20:53:03+00:00</updated>
<author>
<name>Joseph Myers</name>
<email>joseph@codesourcery.com</email>
</author>
<published>2018-01-16T20:53:03+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/glibc.git/commit/?id=4942c4ea48099b4ba9dfecf7cfbc452ae74811b5'/>
<id>4942c4ea48099b4ba9dfecf7cfbc452ae74811b5</id>
<content type='text'>
The x86_64 backtrace implementation is used as a generic
implementation (unwinding via unwind info and _Unwind_Backtrace) by
various other architectures.  This patch makes it more generic by
making it use LIBGCC_S_SO from gnu/lib-names.h instead of hardcoding
the libgcc_s.so.1 name, so that it can also be used on hppa which uses
libgcc_s.so.4.

Tested for x86_64.

	* sysdeps/x86_64/backtrace.c: Include &lt;gnu/lib-names.h&gt;.
	(init): Use LIBGCC_S_SO not hardcoded "libgcc_s.so.1".
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
The x86_64 backtrace implementation is used as a generic
implementation (unwinding via unwind info and _Unwind_Backtrace) by
various other architectures.  This patch makes it more generic by
making it use LIBGCC_S_SO from gnu/lib-names.h instead of hardcoding
the libgcc_s.so.1 name, so that it can also be used on hppa which uses
libgcc_s.so.4.

Tested for x86_64.

	* sysdeps/x86_64/backtrace.c: Include &lt;gnu/lib-names.h&gt;.
	(init): Use LIBGCC_S_SO not hardcoded "libgcc_s.so.1".
</pre>
</div>
</content>
</entry>
<entry>
<title>nptl/tst-thread-exit-clobber: Run with any C++ compiler</title>
<updated>2018-01-16T20:46:37+00:00</updated>
<author>
<name>Florian Weimer</name>
<email>fweimer@redhat.com</email>
</author>
<published>2018-01-16T15:46:00+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/glibc.git/commit/?id=10d200dbace0ea5198006b313f40c3b884c88724'/>
<id>10d200dbace0ea5198006b313f40c3b884c88724</id>
<content type='text'>
We do not need thread_local support in the C++11 comiler, and the
minimum GCC version for glibc has C++11 support (if it has C++ support).
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
We do not need thread_local support in the C++11 comiler, and the
minimum GCC version for glibc has C++11 support (if it has C++ support).
</pre>
</div>
</content>
</entry>
<entry>
<title>aarch64: Update bits/hwcap.h for Linux 4.15.</title>
<updated>2018-01-16T18:51:13+00:00</updated>
<author>
<name>Szabolcs Nagy</name>
<email>szabolcs.nagy@arm.com</email>
</author>
<published>2018-01-11T17:08:51+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/glibc.git/commit/?id=953c49cc3bb1041090281042148197ad3537c551'/>
<id>953c49cc3bb1041090281042148197ad3537c551</id>
<content type='text'>
Define new HWCAP bits and add their name to dl-procinfo.c following
the linux definitions. Synchronizing with v4.15-rc8 version of linux,
these are not expected to change before the 4.15 release.

	* sysdeps/unix/sysv/linux/aarch64/bits/hwcap.h (HWCAP_SHA3): Define.
	(HWCAP_SM3, HWCAP_SM4, HWCAP_ASIMDDP, HWCAP_SHA512, HWCAP_SVE): Define.
	* sysdeps/unix/sysv/linux/aarch64/dl-procinfo.c
	(_dl_aarch64_cap_flags): Update.
	(_DL_HWCAP_COUNT): Update.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Define new HWCAP bits and add their name to dl-procinfo.c following
the linux definitions. Synchronizing with v4.15-rc8 version of linux,
these are not expected to change before the 4.15 release.

	* sysdeps/unix/sysv/linux/aarch64/bits/hwcap.h (HWCAP_SHA3): Define.
	(HWCAP_SM3, HWCAP_SM4, HWCAP_ASIMDDP, HWCAP_SHA512, HWCAP_SVE): Define.
	* sysdeps/unix/sysv/linux/aarch64/dl-procinfo.c
	(_dl_aarch64_cap_flags): Update.
	(_DL_HWCAP_COUNT): Update.
</pre>
</div>
</content>
</entry>
<entry>
<title>aarch64: make HWCAP updates less error prone</title>
<updated>2018-01-16T18:50:34+00:00</updated>
<author>
<name>Szabolcs Nagy</name>
<email>szabolcs.nagy@arm.com</email>
</author>
<published>2018-01-11T17:21:46+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/glibc.git/commit/?id=afce1991f6f61514172696ec3edf93331cb0e04f'/>
<id>afce1991f6f61514172696ec3edf93331cb0e04f</id>
<content type='text'>
Remove unused _DL_HWCAP_LAST definition and move _DL_HWCAP_COUNT
where it is needed (dl-procinfo.h always includes dl-procinfo.c).

	* sysdeps/unix/sysv/linux/aarch64/dl-procinfo.h
	(_DL_HWCAP_LAST): Remove.
	(_DL_HWCAP_COUNT): Move to ...
	* sysdeps/unix/sysv/linux/aarch64/dl-procinfo.c
	(_DL_HWCAP_COUNT): ... here.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Remove unused _DL_HWCAP_LAST definition and move _DL_HWCAP_COUNT
where it is needed (dl-procinfo.h always includes dl-procinfo.c).

	* sysdeps/unix/sysv/linux/aarch64/dl-procinfo.h
	(_DL_HWCAP_LAST): Remove.
	(_DL_HWCAP_COUNT): Move to ...
	* sysdeps/unix/sysv/linux/aarch64/dl-procinfo.c
	(_DL_HWCAP_COUNT): ... here.
</pre>
</div>
</content>
</entry>
<entry>
<title>nptl/tst-minstack-throw: Compile in C++11 mode with GNU extensions</title>
<updated>2018-01-16T06:19:28+00:00</updated>
<author>
<name>Florian Weimer</name>
<email>fweimer@redhat.com</email>
</author>
<published>2018-01-16T06:19:28+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/glibc.git/commit/?id=b725132d2b0aeddf970b1ce3e5a24f8637a7b4c2'/>
<id>b725132d2b0aeddf970b1ce3e5a24f8637a7b4c2</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Add NT_ARM_SVE to elf.h</title>
<updated>2018-01-15T15:24:11+00:00</updated>
<author>
<name>Alan Hayward</name>
<email>alan.hayward@arm.com</email>
</author>
<published>2018-01-12T16:56:19+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/glibc.git/commit/?id=c9e613a728b9eaf0713b5a5970bb9ad4984fc688'/>
<id>c9e613a728b9eaf0713b5a5970bb9ad4984fc688</id>
<content type='text'>
This definition is for AArch64 SVE registers in elf core dumps.

	* elf/elf.h (NT_ARM_SVE): Define.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This definition is for AArch64 SVE registers in elf core dumps.

	* elf/elf.h (NT_ARM_SVE): Define.
</pre>
</div>
</content>
</entry>
<entry>
<title>nptl: Add PTHREAD_MIN_STACK C++ throw test [BZ #22636]</title>
<updated>2018-01-15T14:30:00+00:00</updated>
<author>
<name>Florian Weimer</name>
<email>fweimer@redhat.com</email>
</author>
<published>2018-01-15T14:30:00+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/glibc.git/commit/?id=860b0240a5645edd6490161de3f8d1d1f2786025'/>
<id>860b0240a5645edd6490161de3f8d1d1f2786025</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Update build-many-glibcs.py binutils, mpfr, mpc versions.</title>
<updated>2018-01-15T14:02:54+00:00</updated>
<author>
<name>Joseph Myers</name>
<email>joseph@codesourcery.com</email>
</author>
<published>2018-01-15T14:02:54+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/glibc.git/commit/?id=16d0f6ac3e43ce2f3703e77bda5ab742d42a5640'/>
<id>16d0f6ac3e43ce2f3703e77bda5ab742d42a5640</id>
<content type='text'>
	* scripts/build-many-glibcs.py (Context.checkout): Default
	binutils version to 2.30 branch, MPFR version to 4.0.0 and MPC
	version to 1.1.0.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
	* scripts/build-many-glibcs.py (Context.checkout): Default
	binutils version to 2.30 branch, MPFR version to 4.0.0 and MPC
	version to 1.1.0.
</pre>
</div>
</content>
</entry>
<entry>
<title>Synchronize DF_1_* flags with binutils (Bug 22707)</title>
<updated>2018-01-14T04:23:05+00:00</updated>
<author>
<name>Carlos O'Donell</name>
<email>carlos@redhat.com</email>
</author>
<published>2018-01-14T04:21:57+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/glibc.git/commit/?id=505d39100454b38c62a8eff4c1b7c06b4a31f3aa'/>
<id>505d39100454b38c62a8eff4c1b7c06b4a31f3aa</id>
<content type='text'>
This patch synchronizes DF_1_* flags with binutils
and ensures that all DF_1_* flags defined in binutil's
include/elf/common.h are also defined glibc's elf/elf.h.
This is a user visible change since elf/elf.h is installed
by default as /usr/include/elf.h.

Signed-off-by: Carlos O'Donell &lt;carlos@redhat.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This patch synchronizes DF_1_* flags with binutils
and ensures that all DF_1_* flags defined in binutil's
include/elf/common.h are also defined glibc's elf/elf.h.
This is a user visible change since elf/elf.h is installed
by default as /usr/include/elf.h.

Signed-off-by: Carlos O'Donell &lt;carlos@redhat.com&gt;
</pre>
</div>
</content>
</entry>
</feed>
