Openwall GNU/*/Linux - a small security-enhanced Linux distro for servers
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Date: Sun, 29 Apr 2018 23:16:53 -0400
From: Rich Felker <dalias@...c.org>
To: musl@...ts.openwall.com
Subject: Re: Some questions

On Mon, Apr 30, 2018 at 12:52:06PM +1000, Patrick Oppenlander wrote:
> Hi,
> 
> while working on another project I've been looking through quite a bit
> of the musl code and have come up with a few minor questions I think
> worth raising:
> 
> - Is there a way that spinlocks could be disabled or bypassed on
> uniprocessor systems?

Whether locks are needed is a matter of whether there are multiple
threads, not whether it's uniprocessor or multiprocessor. For some
things where it's likely to matter (stdio, malloc, some other
internals), locks are already optimized out when there is only one
thread. In other cases it was deemed either too costly/difficult or
irrelevant to overall performance.

> - sigisemptyset uses bss. Could be implemented in a similar fashion to
> sigemptyset, save bss & would probably be faster.

Ahh, yes. I wonder if gcc has any way to force const zero objects into
rodata rather than bss..? In any case memcmp is not an efficient way
to implement this, so maybe it should be changed.

> - getcwd returned buffer size can be incorrect. If you call
> getcwd(NULL, 1234) the returned buffer is sized to match the path
> length but should be 1234 to be compatible with the glibc extension.

I'll look at this. It seems like a worse behavior for most callers,
but maybe it should match.

> - Are there any plans to support static linking with LTO?

It should be possible, but gcc mishandles the crt files when doing
LTO. I think if you suppress LTO for them it works. Someone posted
results experimenting with it either on the list or IRC channel
recently. I'll see if I can find anything useful.

Rich

Powered by blists - more mailing lists

Your e-mail address:

Powered by Openwall GNU/*/Linux - Powered by OpenVZ