Skip site navigation (1)Skip section navigation (2)
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>