[ovs-dev] [threads 00/11] basic thread support library

Ben Pfaff blp at nicira.com
Wed Jun 19 22:49:40 UTC 2013


On Wed, Jun 19, 2013 at 02:54:11PM -0700, Ben Pfaff wrote:
> On Wed, Jun 19, 2013 at 05:45:30PM -0400, Ed Maste wrote:
> > On 19 June 2013 17:22, Ben Pfaff <blp at nicira.com> wrote:
> > > On Wed, Jun 19, 2013 at 05:20:11PM -0400, Ed Maste wrote:
> > >> On 19 June 2013 16:17, Ben Pfaff <blp at nicira.com> wrote:
> > >> > This series has two purposes:
> > >> >
> > >> >     * Add a basic thread support library to the tree.
> > >> >
> > >> >     * Get rid of all calls to C library functions that POSIX describes
> > >> >       as inherently unsafe in a multithreaded program, and then add a
> > >> >       make-time check that flags an error if any calls get reintroduced.
> > >>
> > >> This fails to build on FreeBSD for me, because it appears to rely on
> > >> header leakage for stdint.h types.
> > >>
> > >> In file included from lib/ovs-atomic.h:237,
> > >>                  from lib/ovs-thread.h:23,
> > >>                  from lib/command-line.c:22:
> > >> lib/ovs-atomic-c11.h:26: error: expected '=', ',', ';', 'asm' or
> > >> '__attribute__' before 'uint8_t'
> > >
> > > Does this mean that FreeBSD has <stdatomic.h>?  Is it fully
> > > functional?  That's the one implementation I wasn't able to test,
> > > because I didn't know of any C11 implementations with <stdatomic.h>.
> > 
> > Indeed we do, and it should be functional.  SVN history is here if
> > you're interested:
> > http://svnweb.freebsd.org/base/head/sys/sys/stdatomic.h
> > 
> > That said, it seems it wasn't stdint.h per se that was the problem; I
> > needed to change:
> > 
> > -typedef _Atomic uint8_t   atomic_uint8_t;
> > +typedef _Atomic(uint8_t)   atomic_uint8_t;
> 
> Oh, that's odd.  C11 appears to say that the parentheses are optional
> with _Atomic in this case (you can use _Atomic(...) as a type
> specifier or _Atomic by itself as a type qualifier) but I'll change it
> since that fixes the problem.

I made that change in the latest version I pushed to the reviews repo.



More information about the dev mailing list