Some problems with the libbsd update

Sebastian Huber sebastian.huber at
Thu Aug 23 05:15:59 UTC 2018

On 23/08/18 01:13, Joel Sherrill wrote:
> On Wed, Aug 22, 2018 at 6:00 PM, Chris Johns <chrisj at 
> <mailto:chrisj at>> wrote:
>     On 22/08/2018 22:25, Sebastian Huber wrote:
>     > On 22/08/18 14:06, Joel Sherrill wrote:
>     >> On Wed, Aug 22, 2018, 6:47 AM Sebastian Huber
>     >> <sebastian.huber at
>     <mailto:sebastian.huber at>
>     >> <mailto:sebastian.huber at
>     <mailto:sebastian.huber at>>> wrote:
>     >>
>     >> It really is necessary to know how the other architectures implement it. Some
>     >> may turn out to be easy. Others like Epiphany and new may never
>     matter.
>     >
>     > If the niche architectures don't use libbsd (which I guess is
>     the case), then
>     > there is no issue at all.
>     >
>     Do we document what is supported and what is not supported?
> This was largely the point of my response. We don't have a master list of
> at least the following information:
> + Architectures that support SMP and tested to N cores
> + Architectures that support TLS

We have the CPU Supplement.

> + Architectures that support libbsd
> A user can't determine what is usable to them in for at least those
> features. We need a basic feature table of at least the above
> for users.

I think a better question is what do I have to provide to get libbsd 
support? This is currently not that much. You just need the interrupt 
extensions API. After the update to a new FreeBSD version you probably 
need also TLS and maybe uni-processor architectures are no longer 
supported. You can still use the current libbsd.

> Beyond that, I would consider TLS a hidden basic feature since I think
> we now rely on it in some infrastructure pieces (language run-times?).
> We don't have ticket(s) related to which architectures need it added.
> And no notes on how to extract the details on what to do from GCC.
> I randomly checked gcc for the nios2 and guess that this is the
> register:
>    (TP_REGNO              23)   ; Thread pointer register
> How I am supposed to figure that out reliably, I am not sure.
> I checked the bfin and don't get any hits for tls/TLS or THREAD_LOCAL.
> Perhaps it doesn't support it at all. Who knows?

You have to check the ABI document.

>     Does libbsd have suitable checks on the built RTEMS to know it
>     cannot be supported?
> Without the above table, I am not sure how. Curious to hear 
> Sebastian's answer.
>     FWIW I do not think the idea of "one size fits all" is workable. I
>     think a
>     number of architectures would benefit from a different smaller
>     networking stack.
> +1
> We are in a position where we need begin to deprecate the old stack to 
> BSPs
> that currently support it -- perhaps move it to a separate build tree. 
> And
> more seriously consider LWIP.
> An even when an architecture has the infrastructure, there is at least the
> SPARC which I don't think have any Nexus devices or drivers for libbsd.

The generic nexus device which works well on SPARC. We used the libbsd 
on a SPARC project.

Sebastian Huber, embedded brains GmbH

Address : Dornierstr. 4, D-82178 Puchheim, Germany
Phone   : +49 89 189 47 41-16
Fax     : +49 89 189 47 41-09
E-Mail  : sebastian.huber at
PGP     : Public key available on request.

Diese Nachricht ist keine geschäftliche Mitteilung im Sinne des EHUG.

More information about the devel mailing list