[PATCH] resolv, rt: Change some extern inline functions to static inline

Florian Weimer fw@deneb.enyo.de
Sat May 2 16:31:30 GMT 2026


* Cristian Rodriguez:

> On Fri, May 1, 2026 at 12:43 PM Peter Collingbourne <pcc@google.com> wrote:
>>
>> On Fri, May 1, 2026 at 1:39 AM Florian Weimer <fw@deneb.enyo.de> wrote:
>> >
>> > * Peter Collingbourne:
>> >
>> > > The following functions:
>> > >
>> > > __aio_create_helper_thread
>> > > __aio_start_notify_thread
>> > > __gai_create_helper_thread
>> > > __gai_start_notify_thread
>> > >
>> > > are declared as extern inline, but no translation unit provides their
>> > > real definitions. This can lead to a link failure if the functions are
>> > > not inlined. Fix it by declaring them as static inline instead.
>> >
>> > I would drop the “inline” as well, encouraging the compiler to make
>> > the inlining decision.
>>
>> That causes some build failures, e.g.
>>
>> In file included from aio_error.c:30:
>> ../sysdeps/unix/sysv/linux/aio_misc.h:38:1: error: ‘__aio_create_helper_thread’
>> defined but not used [-Werror=unused-function]
>>    38 | __aio_create_helper_thread (pthread_t *threadp, void *(*tf) (void *),
>>       | ^~~~~~~~~~~~~~~~~~~~~~~~~~
>> ../sysdeps/unix/sysv/linux/aio_misc.h:29:1: error: ‘__aio_start_notify_thread’ d
>> efined but not used [-Werror=unused-function]
>>    29 | __aio_start_notify_thread (void)
>>       | ^~~~~~~~~~~~~~~~~~~~~~~~~
>
>
> So, they need a __attribute_maybe_unused__ annotation.

Yeah, or we should clean this up properly: It seems to me a generic
implementation of__aio_create_helper_thread could use
internal_signal_block_all.  And drop the stack size reduction
for __aio_create_helper_thread, perhaps.

Or use separate .c files with proper sysdeps overrides.


More information about the Libc-alpha mailing list