Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 22 Sep 2015 20:48:19 +0200
From:      Dimitry Andric <dim@FreeBSD.org>
To:        Warner Losh <imp@bsdimp.com>
Cc:        src-committers@freebsd.org, svn-src-projects@freebsd.org
Subject:   Re: svn commit: r288121 - projects/clang370-import/contrib/libc++/src/support
Message-ID:  <9B0C3FE9-821B-470E-8AFC-F5B3DCE5B8F4@FreeBSD.org>
In-Reply-To: <00F42FF7-84D4-4C97-974F-C28DB36D4392@bsdimp.com>
References:  <201509221734.t8MHYp0W052286@repo.freebsd.org> <00F42FF7-84D4-4C97-974F-C28DB36D4392@bsdimp.com>

next in thread | previous in thread | raw e-mail | index | archive | help

[-- Attachment #1 --]
On 22 Sep 2015, at 20:37, Warner Losh <imp@bsdimp.com> wrote:
> 
>> On Sep 22, 2015, at 11:34 AM, Dimitry Andric <dim@freebsd.org> wrote:
>> NOTE: this needs to be fixed properly later on, by supplying library
>> functions implementing atomic operations for arm < v6.  We should
>> probably take those from sys/arm/arm/stdatomic.c, and stuff them into
>> either libgcc or compiler-rt.
> 
> I don’t think you can do that.
> 
> arm < v6 is special. The CPUs don’t have atomic operations. In the kernel,
> we disable interrupts and do the op. You can’t do that in user land. Instead,
> you have to use RAS (Restartable Atomic Sequences) and have the kernel
> grok the RAS. Thankfully, the RAS support in the kernel is just the R in that.
> But it does mean that we’ll have some work to do this properly.
> 
> I’m not entirely sure that your ‘fix’ makes things actually safe, even if it
> seems to make them work today. I’ll have to study it more closely.

Probably not 100% safe, since the stub functions are just placeholders
which aren't atomic at all.  Then again, if we insist on this being
correct, we will have no choice as to disable the atomic support in
libc++ somehow.  (I'm not sure if this is supported by upstream at all.)

As far as I understood on IRC, the functions in stdatomic.c should work
in userland, unless you are using real SMP?  (And does that even exist
for such old ARM architectures?)

-Dimitry


[-- Attachment #2 --]
-----BEGIN PGP SIGNATURE-----
Version: GnuPG/MacGPG2 v2.0.28

iEUEARECAAYFAlYBongACgkQsF6jCi4glqMJUQCbB7LhBo2PI6aBtZhfknXwfHBy
PEEAlisU20NCVBdV9c2JGqrEWmOFpDM=
=0OIg
-----END PGP SIGNATURE-----

Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?9B0C3FE9-821B-470E-8AFC-F5B3DCE5B8F4>