You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
A no-threads stdlib built at -O0 does not link: http_park_resume calls http_pool_submit_conn, which only threaded builds define #3121
A cooperative (no-threads) stdlib built at -O0 does not link the shared runtime:
make stdlib EXTRA_CFLAGS='-DAETHER_NO_THREADING -g -O0'
...
ld: build/libaether.a(aether_http_server.o): in function `http_park_resume':
std/net/aether_http_server.c:5491: undefined reference to `http_pool_submit_conn'
make: *** [Makefile:2014: build/shared/aether.dll] Error 1
Found on Windows (MinGW GCC 16.2), where the shared runtime is linked as part of make stdlib.
Why
std/net/aether_http_pool.c defines http_pool_submit_conn only under #if AETHER_HAS_THREADS && AETHER_HAS_NETWORKING. std/net/aether_http_server.c defines http_park_resume, which calls it, under no such guard. Only threaded paths reach http_park_resume. At -O2 the compiler drops the unused static function, and the reference goes with it. At -O0 the function and its reference stay, and the link fails.
Fix
Compile http_park_resume under the condition its only caller is compiled under (#if AETHER_HAS_THREADS, where the server creates its park lot), so the reference no longer depends on the optimizer.
Already fixed on main by d2e8aee (merged in #3101, first released in v0.840.0): http_park_resume is now compiled under #if AETHER_HAS_THREADS, the same condition as its only caller. tests/integration/no_threads_refs/test_no_threads_refs.sh covers it. On 0.848.0 it passes, and with the guard removed it fails naming http_pool_submit_conn. The commit referenced the issue without a closing keyword, so it stayed open.
Activity
A no-threads stdlib built at -O0 links: http_park_resume is threaded …
fixup! A no-threads stdlib built at -O0 links: http_park_resume is th…
fixup! A no-threads stdlib built at -O0 links: http_park_resume is th…
paul-hammant commentedon Oct 25, 2026
Already fixed on main by d2e8aee (merged in #3101, first released in v0.840.0):
http_park_resumeis now compiled under#if AETHER_HAS_THREADS, the same condition as its only caller.tests/integration/no_threads_refs/test_no_threads_refs.shcovers it. On 0.848.0 it passes, and with the guard removed it fails naminghttp_pool_submit_conn. The commit referenced the issue without a closing keyword, so it stayed open.