Follow @Openwall on Twitter for new release announcements and other news
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Date: Thu, 25 May 2023 10:34:15 -0400
From: Rich Felker <dalias@...c.org>
To: Jₑₙₛ Gustedt <jens.gustedt@...ia.fr>
Cc: musl@...ts.openwall.com
Subject: Re: [C23 new stdlib 2/4] C23: add the memalignment function

On Thu, May 25, 2023 at 04:05:01PM +0200, Jₑₙₛ Gustedt wrote:
> 
> on Thu, 25 May 2023 09:07:23 -0400 you (Rich Felker <dalias@...c.org>)
> wrote:
> 
> > > So you want me to use the ctz and clz interfaces from the internal
> > > atomics for the implementation of <stdbit.h>? Are they not overkill
> > > for this simple purpose? (I mean they are meant to be atomic,
> > > arent't they?)  
> > 
> > No, I think you're mixing up code which is part of musl and code which
> > is (included as) part of the application. atomic.h is a musl
> > implementation detail and is not even present for application code
> > included from stdbit.h to use.
> 
> I am not clear to which question you are answering "no". Fact is that
> these functions are used for `ffs` and friends, so they are the
> natural candidates to base the implementation upon. (`ffs` cannot be
> used directly because they have intefaces with signed integers.)

OK, maybe I misunderstood. They can and should be used in musl sources
for implementing these interfaces as external functions, just not for
macro definitions in the headers. I thought we were talking about the
latter.

It looks like the primitives we have cover everything needed for
stdbit.h functions except popcnt. Not sure what the best way to add
that is. Perhaps with a new a_popcnt that archs can override. This
would also allow configure to probe for a builtin and select use of
that if desired. It looks like that generates a call to libgcc on
archs with no native version.

> I'd very much like to avoid to reinvent the wheel, here, and in the
> internal code that I have looked at I have not detected much which
> would be specific for atomics. But maybe I am overlooking something,
> thus the question.

Having them in "atomics" is a historical misnomer, but it's vacuous
since they operate on values not objects. The effort to move them to a
separate file and setup per-arch machinery for defining them there is
nontrivial and the value seems near-zero, so I haven't pursued it.

Rich

Powered by blists - more mailing lists

Confused about mailing lists and their use? Read about mailing lists on Wikipedia and check out these guidelines on proper formatting of your messages.