Follow @Openwall on Twitter for new release announcements and other news
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Date: Sun, 16 Feb 2020 11:06:20 -0500
From: Rich Felker <dalias@...c.org>
To: musl@...ts.openwall.com
Subject: Re: getauxval availability

On Sun, Feb 16, 2020 at 08:43:54AM -0500, Jeffrey Walton wrote:
> Hi Everyone,
> 
> We use getauxval on Linux when available to determine cpu caps. For
> Glibc the code looks like (http://lwn.net/Articles/519085/):
> 
> #if (((__GLIBC__ * 100) + __GLIBC_MINOR__) >= 216)
> # define GETAUXV_AVAILABLE 1
> #endif
> 
> I need a similar test for musl. It looks like the function was added
> at https://git.musl-libc.org/cgit/musl/commit/?id=21ada94c4b8c. I
> don't see how to map a commit to a release for the web front-end musl
> uses.
> 
> The release page indicates it should be available with musl-1.0.1,
> which was released April 16 2014
> (https://www.musl-libc.org/releases/). But I am not sure about the
> musl release process, and what is included in a release tarball.
> 
> What is the first release of musl that contains 21ada94c4b8c ?

The right way to do this is probing for the existence via a configure
check or equivalent, not hard-coding specific library versions
believed to have the interface. On both glibc and musl (and other
software ppl try to do hardcode-the-version hacks with, like Linu
kernel), distros and individual users backport important things so
that there is no reliable answer.

I realize this is something of a pain for programmers who don't make
use of any configure-like system at build time, and there is a long
term plan to have a cross-libc system for macros announcing the
availability of nonstandard functionality so that you can just do
#ifdef at the source level rather than needing to do something at
configure time, analogous to how the POSIX macros in unistd.h work.

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.