svn commit: r335873 - in head: . sys/amd64/amd64 sys/amd64/include sys/conf sys/i386/i386 sys/i386/include sys/sys sys/vm
Mark Millard
marklmi at yahoo.com
Fri Aug 3 21:13:09 UTC 2018
On 2018-Aug-1, at 12:57 AM, Konstantin Belousov <kib at freebsd.org> wrote:
>
> On Tue, Jul 31, 2018 at 06:46:31PM -0700, Mark Millard via freebsd-amd64 wrote:
>>> Author: mmacy
>>> Date: Mon Jul 2 19:48:38 2018
>>> New Revision: 335873
>>> URL:
>>> https://svnweb.freebsd.org/changeset/base/335873
>>>
>>>
>>> Log:
>>> inline atomics and allow tied modules to inline locks
>>>
>>> - inline atomics in modules on i386 and amd64 (they were always
>>> inline on other arches)
>>> - allow modules to opt in to inlining locks by specifying
>>> MODULE_TIED=1 in the makefile
>>
>> I recently found the following about ABI incompatibilities
>> between clang and gcc relative to C11 language based
>> atomics:
>>
>> https://bugs.llvm.org/show_bug.cgi?id=26462
>>
>> 26462 ??? GCC/clang C11 _Atomic incompatibility
>>
>>
>> So are there implications about building the kernel
>> vs. modules that overall mix the toolchains once
>> modules are loaded? Do the toolchains need to match,
>> at least for amd64 and i386 TARGET_ARCH 's?
> This is irrelevant since kernel does not use C11 atomics, we roll
> our own version, which tries to follow C11 model.
>
> Lack of the ABI for atomics is one of the reason to not use compiler
> C11 atomics in kernel and C runtime.
Thanks for the information: good to know.
There are other things around that use C11 atomics, such as
in:
src/contrib/ofed/librdmacm/
(This is part of why https://reviews.freebsd.org/D16585 is
out for updating stdatomic.h (and sys/cdefs.h ): so that
fairly modern gcc vintages can build world with such
involved.)
===
Mark Millard
marklmi at yahoo.com
( dsl-only.net went
away in early 2018-Mar)
More information about the freebsd-amd64
mailing list