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