Follow @Openwall on Twitter for new release announcements and other news
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Date: Tue, 03 Aug 2021 14:35:05 -0300
From: Érico Nogueira <ericonr@...root.org>
To: <musl@...ts.openwall.com>
Subject: Re: Compilation error with mesa 21.1.6

On Tue Aug 3, 2021 at 4:18 AM -03, bluemoon wrote:
> Hi,
>
> I’m trying to compile mesa 21.1.6 for i686 (Void Linux i686-musl).
> When
> Gallium Nine is enabled compilation fails. It works on x86_64 but they
> branch off on 32-bit systems and use memfd. In that code they use
>
> ulimit(__UL_GETOPENMAX)

The ulimit(3) man page documents that a value of 4 doesn't have a macro
for it but is implemented to return the max number of fds. Apparently it
isn't up to date with the fact that glibc declares a macro, even if
prefixed with '__'... musl definitely doesn't implement this extension
to ulimit(3), though.

>
> which is not available in musl. However, in glibc __UL_GETOPENMAX is
> assigned the return value of
>
> sysconf(_SC_OPEN_MAX)
>
> (cf. sysdeps/posix/ulimit.c) which is defined in musl.
>
> So before reporting this issue to the mesa developers, I would like to
> ask if replacing the former with the latter is ok or if there is a
> caveat I don’t see.

That is the portable way of obtaining the value; fixing the ulimit call
to use sysconf directly sounds like the only correct way forward. They
are using a non-documented internal macro in a function that for some
reason was stretched out to do more.

>
> Thank you!

PS: might be worth investigating the build configuration, Alpine doesn't
carry a patch for this part:
https://git.alpinelinux.org/aports/tree/main/mesa?h=master

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.