* [musl] Compilation error with mesa 21.1.6
@ 2021-08-03 7:18 bluemoon
2021-08-03 17:35 ` Érico Nogueira
0 siblings, 1 reply; 3+ messages in thread
From: bluemoon @ 2021-08-03 7:18 UTC (permalink / raw)
To: musl
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)
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.
Thank you!
^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: [musl] Compilation error with mesa 21.1.6
2021-08-03 7:18 [musl] Compilation error with mesa 21.1.6 bluemoon
@ 2021-08-03 17:35 ` Érico Nogueira
2021-08-03 19:11 ` bluemoon
0 siblings, 1 reply; 3+ messages in thread
From: Érico Nogueira @ 2021-08-03 17:35 UTC (permalink / raw)
To: musl
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
^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: [musl] Compilation error with mesa 21.1.6
2021-08-03 17:35 ` Érico Nogueira
@ 2021-08-03 19:11 ` bluemoon
0 siblings, 0 replies; 3+ messages in thread
From: bluemoon @ 2021-08-03 19:11 UTC (permalink / raw)
To: musl
Am 03.08.21 um 19:35 schrieb Érico Nogueira:
> 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 for your explanation. I’ll open an issue at Mesa’s GitLab
repository.
For reference, the code in question is here:
https://gitlab.freedesktop.org/mesa/mesa/-/blob/main/src/gallium/frontends/nine/nine_memory_helper.c#L1012
>>
>> 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
>
Alpine disables gallium-nine for all targets (line 147 in the APKBUILD)
so they don’t need to patch.
^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2021-08-03 19:12 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-08-03 7:18 [musl] Compilation error with mesa 21.1.6 bluemoon
2021-08-03 17:35 ` Érico Nogueira
2021-08-03 19:11 ` bluemoon
Code repositories for project(s) associated with this public inbox
https://git.vuxu.org/mirror/musl/
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).