Date: Sun, 23 Sep 2018 22:41:08 +0200 From: Andreas Tobler <andreast@FreeBSD.org> To: Brooks Davis <brooks@FreeBSD.org>, src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: Re: svn commit: r338486 - in head/libexec/rtld-elf: . aarch64 arm mips powerpc powerpc64 riscv Message-ID: <2ecbc67d-cf5c-8b8f-fcb3-08c6148ee297@FreeBSD.org> In-Reply-To: <201809052323.w85NNGMZ044128@repo.freebsd.org> References: <201809052323.w85NNGMZ044128@repo.freebsd.org>
next in thread | previous in thread | raw e-mail | index | archive | help
Hi Brooks, On 06.09.18 01:23, Brooks Davis wrote: > Author: brooks > Date: Wed Sep 5 23:23:16 2018 > New Revision: 338486 > URL: https://svnweb.freebsd.org/changeset/base/338486 > > Log: > Rework rtld's TLS Variant I implementation to match r326794 > > 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) And no testing on powerpc? This patch breaks ppc-32. It makes the system unusable, one can not even login. Neither on the console nor via ssh. After entering the user I get flooded with backslashes and the login shell dumps core. (Only visible if I netboot) I'm testing now a fix and see if it survives world and kernel build. > Modified: head/libexec/rtld-elf/powerpc/rtld_machdep.h > ============================================================================== > --- head/libexec/rtld-elf/powerpc/rtld_machdep.h Wed Sep 5 21:47:22 2018 (r338485) > +++ head/libexec/rtld-elf/powerpc/rtld_machdep.h Wed Sep 5 23:23:16 2018 (r338486) > @@ -74,10 +74,11 @@ void _rtld_powerpc_pltcall(void); > #define round(size, align) \ > (((size) + (align) - 1) & ~((align) - 1)) > #define calculate_first_tls_offset(size, align) \ > - round(8, align) > + TLS_TCB_SIZE Here, if I revert to 'round(8, align)', I can login again. But the fix I'm testing now, is to increase the TLS_TCB_SIZE to 16 as suggested by Justin. I'll let you know how it goes. Andreas
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?2ecbc67d-cf5c-8b8f-fcb3-08c6148ee297>