Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 8 Apr 2012 16:45:21 +1200
From:      Andrew Turner <andrew@fubar.geek.nz>
Cc:        svn-src-head@freebsd.org, svn-src-all@freebsd.org, src-committers@freebsd.org
Subject:   Re: svn commit: r234014 - head/lib/libc/arm/gen
Message-ID:  <20120408164521.55aecdd1@fubar.geek.nz>
In-Reply-To: <201204080436.q384aRXS093116@svn.freebsd.org>
References:  <201204080436.q384aRXS093116@svn.freebsd.org>

next in thread | previous in thread | raw e-mail | index | archive | help
On Sun, 8 Apr 2012 04:36:27 +0000 (UTC)
Andrew Turner <andrew@FreeBSD.org> wrote:

> Author: andrew
> Date: Sun Apr  8 04:36:27 2012
> New Revision: 234014
> URL: http://svn.freebsd.org/changeset/base/234014
> 
> Log:
>   Unlike other functions __aeabi_read_tp function must preserve
> r1-r3. The currently generated code clobbers r3. Fix this by loading
> ARM_TP_ADDRESS using inline assembly.
>   
>   Approved by:	imp (mentor)

This fixes thread local storage on ARM in cases when the compiler loads
the offset of the variable in r3 before calling __aeabi_read_tp as has
been observed when the variable is in a shared library.

Andrew



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20120408164521.55aecdd1>