<feed xmlns='http://www.w3.org/2005/Atom'>
<title>src/libexec/rtld-elf/powerpc, branch releng/12.2</title>
<subtitle>FreeBSD source tree</subtitle>
<link rel='alternate' type='text/html' href='http://cgit.freebsd.org/src/'/>
<entry>
<title>MFC r360091:</title>
<updated>2020-04-29T10:57:21+00:00</updated>
<author>
<name>Konstantin Belousov</name>
<email>kib@FreeBSD.org</email>
</author>
<published>2020-04-29T10:57:21+00:00</published>
<link rel='alternate' type='text/html' href='http://cgit.freebsd.org/src/commit/?id=b5764c3fc4d8bff04539bcd4a97dc3cc06f2d277'/>
<id>b5764c3fc4d8bff04539bcd4a97dc3cc06f2d277</id>
<content type='text'>
Align initial-exec TLS segments to the p_vaddr % align.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Align initial-exec TLS segments to the p_vaddr % align.
</pre>
</div>
</content>
</entry>
<entry>
<title>MFC r357895, r357910:</title>
<updated>2020-02-20T01:27:35+00:00</updated>
<author>
<name>Konstantin Belousov</name>
<email>kib@FreeBSD.org</email>
</author>
<published>2020-02-20T01:27:35+00:00</published>
<link rel='alternate' type='text/html' href='http://cgit.freebsd.org/src/commit/?id=63634ba1ef0ea508ec14e03a8445dcd42e0785ee'/>
<id>63634ba1ef0ea508ec14e03a8445dcd42e0785ee</id>
<content type='text'>
Handle non-plt IRELATIVE relocations, at least for x86.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Handle non-plt IRELATIVE relocations, at least for x86.
</pre>
</div>
</content>
</entry>
<entry>
<title>MFC r339877-r339879,r343564-r343566,r343580,r343754:</title>
<updated>2019-02-11T15:02:02+00:00</updated>
<author>
<name>Konstantin Belousov</name>
<email>kib@FreeBSD.org</email>
</author>
<published>2019-02-11T15:02:02+00:00</published>
<link rel='alternate' type='text/html' href='http://cgit.freebsd.org/src/commit/?id=adbc40826e9055a56964e821866081911522d819'/>
<id>adbc40826e9055a56964e821866081911522d819</id>
<content type='text'>
Untangle jemalloc and mutexes initialization.

The merge includes required warnings cleanup by arichardson, both to
avoid conflicts and to make rtld_malloc.c compilable with the libthr
WARNS settings.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Untangle jemalloc and mutexes initialization.

The merge includes required warnings cleanup by arichardson, both to
avoid conflicts and to make rtld_malloc.c compilable with the libthr
WARNS settings.
</pre>
</div>
</content>
</entry>
<entry>
<title>MFC r342113:</title>
<updated>2019-01-07T11:03:08+00:00</updated>
<author>
<name>Michal Meloun</name>
<email>mmel@FreeBSD.org</email>
</author>
<published>2019-01-07T11:03:08+00:00</published>
<link rel='alternate' type='text/html' href='http://cgit.freebsd.org/src/commit/?id=b67956838fe2d6d7af3d85e806d8bc6c5093cc91'/>
<id>b67956838fe2d6d7af3d85e806d8bc6c5093cc91</id>
<content type='text'>
  Improve R_AARCH64_TLSDESC relocation.  The original code did not support
  dynamically loaded libraries and used suboptimal access to TLS variables.
  New implementation removes lazy resolving of TLS relocation - due to flaw in
  TLSDESC design is impossible to switch resolver function at runtime without
  expensive locking.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
  Improve R_AARCH64_TLSDESC relocation.  The original code did not support
  dynamically loaded libraries and used suboptimal access to TLS variables.
  New implementation removes lazy resolving of TLS relocation - due to flaw in
  TLSDESC design is impossible to switch resolver function at runtime without
  expensive locking.
</pre>
</div>
</content>
</entry>
<entry>
<title>This commit reverts 338930. The approach was wrong.</title>
<updated>2018-10-01T18:46:35+00:00</updated>
<author>
<name>Andreas Tobler</name>
<email>andreast@FreeBSD.org</email>
</author>
<published>2018-10-01T18:46:35+00:00</published>
<link rel='alternate' type='text/html' href='http://cgit.freebsd.org/src/commit/?id=953cba365fa4d5267d30fcb8221d6e9acfdec4ac'/>
<id>953cba365fa4d5267d30fcb8221d6e9acfdec4ac</id>
<content type='text'>
Fix the issue with subtracting the TLS_TCB_SIZE too when we are trying to get
the 'where' in the R_PPC_TPREL32 case. At allocation time we added an offset
and the TLS_TCB_SIZE. This has to be subtracted as well.

Now all the issues reported are fixed. Tests were done on G4 and G5 PowerMac's.
Additionally I ran the tls tests from the gcc test suite and made sure the
results are as good as pre 338486.

Thanks to tuexen for reporting the malfunction and for patient testing.
Also testing thanks goes to jhibbits.

Reported by:	tuexen
Discussed with:	jhibbits, nwhitehorn
Approved by:	re (gjb)
Pointyhat to:	andreast
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Fix the issue with subtracting the TLS_TCB_SIZE too when we are trying to get
the 'where' in the R_PPC_TPREL32 case. At allocation time we added an offset
and the TLS_TCB_SIZE. This has to be subtracted as well.

Now all the issues reported are fixed. Tests were done on G4 and G5 PowerMac's.
Additionally I ran the tls tests from the gcc test suite and made sure the
results are as good as pre 338486.

Thanks to tuexen for reporting the malfunction and for patient testing.
Also testing thanks goes to jhibbits.

Reported by:	tuexen
Discussed with:	jhibbits, nwhitehorn
Approved by:	re (gjb)
Pointyhat to:	andreast
</pre>
</div>
</content>
</entry>
<entry>
<title>Bring the 32-bit powerpc (PowerMac) back to live. The commit 338486 reworked</title>
<updated>2018-09-25T19:29:35+00:00</updated>
<author>
<name>Andreas Tobler</name>
<email>andreast@FreeBSD.org</email>
</author>
<published>2018-09-25T19:29:35+00:00</published>
<link rel='alternate' type='text/html' href='http://cgit.freebsd.org/src/commit/?id=28337eb676fa0e7bd24d28d249e4907ab05a7756'/>
<id>28337eb676fa0e7bd24d28d249e4907ab05a7756</id>
<content type='text'>
some TLS bits. This broke operation on the PowerMac. Namely one could not login.
At login the screen/shell was giving back lots of backslashes and the login
shell dumped core.

The fix to this issue is to revert the powerpc commit from 338486 and to
increase the TLS_TCB_SIZE to 16.
Reverting only did not help, login was possible but userland applications
aborted with strange messages.

I tested this patch with world/kernel builds and with port upgrades.
Additionally a full gcc8 bootstrap was successfully completed.

Reviewed by: jhibbits@
Approved by: re (Glen)
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
some TLS bits. This broke operation on the PowerMac. Namely one could not login.
At login the screen/shell was giving back lots of backslashes and the login
shell dumped core.

The fix to this issue is to revert the powerpc commit from 338486 and to
increase the TLS_TCB_SIZE to 16.
Reverting only did not help, login was possible but userland applications
aborted with strange messages.

I tested this patch with world/kernel builds and with port upgrades.
Additionally a full gcc8 bootstrap was successfully completed.

Reviewed by: jhibbits@
Approved by: re (Glen)
</pre>
</div>
</content>
</entry>
<entry>
<title>Rework rtld's TLS Variant I implementation to match r326794</title>
<updated>2018-09-05T23:23:16+00:00</updated>
<author>
<name>Brooks Davis</name>
<email>brooks@FreeBSD.org</email>
</author>
<published>2018-09-05T23:23:16+00:00</published>
<link rel='alternate' type='text/html' href='http://cgit.freebsd.org/src/commit/?id=17fb2856c30944a10af2e78f70c1ea766256c01b'/>
<id>17fb2856c30944a10af2e78f70c1ea766256c01b</id>
<content type='text'>
The above commit fixed handling overaligned TLS segments in libc's
TLS Variant I implementation, but rtld provides its own implementation
for dynamically-linked executables which lacks these fixes.  Thus,
port these changes to rtld.

This was previously commited as r337978 and reverted in r338149 due to
exposing a bug the ARM rtld.  This bug was fixed in r338317 by mmel.

Submitted by:	James Clarke
Approved by:	re (kib)
Reviewed by:	kbowling
Testing by:	kbowling (powerpc64), br (riscv), kevans (armv7)
Obtained from:	CheriBSD
Sponsored by:	DARPA, AFRL
Differential Revision:	https://reviews.freebsd.org/D16510
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
The above commit fixed handling overaligned TLS segments in libc's
TLS Variant I implementation, but rtld provides its own implementation
for dynamically-linked executables which lacks these fixes.  Thus,
port these changes to rtld.

This was previously commited as r337978 and reverted in r338149 due to
exposing a bug the ARM rtld.  This bug was fixed in r338317 by mmel.

Submitted by:	James Clarke
Approved by:	re (kib)
Reviewed by:	kbowling
Testing by:	kbowling (powerpc64), br (riscv), kevans (armv7)
Obtained from:	CheriBSD
Sponsored by:	DARPA, AFRL
Differential Revision:	https://reviews.freebsd.org/D16510
</pre>
</div>
</content>
</entry>
<entry>
<title>Revert r337978: Rework rtld's TLS Variant I implementation to match r326794</title>
<updated>2018-08-21T18:22:12+00:00</updated>
<author>
<name>Brooks Davis</name>
<email>brooks@FreeBSD.org</email>
</author>
<published>2018-08-21T18:22:12+00:00</published>
<link rel='alternate' type='text/html' href='http://cgit.freebsd.org/src/commit/?id=a5207d3ef62c069aa8edf3c2b28ed8a21001dfed'/>
<id>a5207d3ef62c069aa8edf3c2b28ed8a21001dfed</id>
<content type='text'>
Michal Meloun reports that it breaks ctype (isspace()..) related
functions on armv7 so back out while we diagnose the issue.

Reported by:	Michal Meloun &lt;melounmichal@gmail.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Michal Meloun reports that it breaks ctype (isspace()..) related
functions on armv7 so back out while we diagnose the issue.

Reported by:	Michal Meloun &lt;melounmichal@gmail.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>Rework rtld's TLS Variant I implementation to match r326794</title>
<updated>2018-08-17T16:19:47+00:00</updated>
<author>
<name>Brooks Davis</name>
<email>brooks@FreeBSD.org</email>
</author>
<published>2018-08-17T16:19:47+00:00</published>
<link rel='alternate' type='text/html' href='http://cgit.freebsd.org/src/commit/?id=9b50d816461f1407061d11965760567846ae52e3'/>
<id>9b50d816461f1407061d11965760567846ae52e3</id>
<content type='text'>
The above commit fixed handling overaligned TLS segments in libc's
TLS Variant I implementation, but rtld provides its own implementation
for dynamically-linked executables which lacks these fixes.  Thus,
port these changes to rtld.

Submitted by:	James Clarke
Reviewed by:	kbowling
Testing byL	kbowling (powerpc64), br (riscv), kevans (armv7)
Obtained from:	CheriBSD
Sponsored by:	DARPA, AFRL
Differential Revision:	https://reviews.freebsd.org/D16510
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
The above commit fixed handling overaligned TLS segments in libc's
TLS Variant I implementation, but rtld provides its own implementation
for dynamically-linked executables which lacks these fixes.  Thus,
port these changes to rtld.

Submitted by:	James Clarke
Reviewed by:	kbowling
Testing byL	kbowling (powerpc64), br (riscv), kevans (armv7)
Obtained from:	CheriBSD
Sponsored by:	DARPA, AFRL
Differential Revision:	https://reviews.freebsd.org/D16510
</pre>
</div>
</content>
</entry>
<entry>
<title>o Let rtld(1) set up psABI user trap handlers prior to executing the</title>
<updated>2018-02-03T23:14:11+00:00</updated>
<author>
<name>Marius Strobl</name>
<email>marius@FreeBSD.org</email>
</author>
<published>2018-02-03T23:14:11+00:00</published>
<link rel='alternate' type='text/html' href='http://cgit.freebsd.org/src/commit/?id=41fc6f680bcf3d5107ca67834f630f61e3b88faf'/>
<id>41fc6f680bcf3d5107ca67834f630f61e3b88faf</id>
<content type='text'>
  objects' init functions instead of doing the setup via a constructor
  in libc as the init functions may already depend on these handlers
  to be in place. This gets us rid of:
  - the undefined order in which libc constructors as __guard_setup()
    and jemalloc_constructor() are executed WRT __sparc_utrap_setup(),
  - the requirement to link libc last so __sparc_utrap_setup() gets
    called prior to constructors in other libraries (see r122883).
  For static binaries, crt1.o still sets up the user trap handlers.
o Move misplaced prototypes for MD functions in to the MD prototype
  section of rtld.h.
o Sprinkle nitems().
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
  objects' init functions instead of doing the setup via a constructor
  in libc as the init functions may already depend on these handlers
  to be in place. This gets us rid of:
  - the undefined order in which libc constructors as __guard_setup()
    and jemalloc_constructor() are executed WRT __sparc_utrap_setup(),
  - the requirement to link libc last so __sparc_utrap_setup() gets
    called prior to constructors in other libraries (see r122883).
  For static binaries, crt1.o still sets up the user trap handlers.
o Move misplaced prototypes for MD functions in to the MD prototype
  section of rtld.h.
o Sprinkle nitems().
</pre>
</div>
</content>
</entry>
</feed>
