Add rlib to rockbox-server crate-type so cdylib can pull it in
dlopen kept failing with "cannot locate symbol start_server" even after
adding extern "C" + #[used] keepalives. Root cause: rockbox-server's
crate-type was ["staticlib"] only — Cargo doesn't include staticlib-only
deps in the rustc rlib link graph for downstream cdylib builds, so
nothing in rockbox-server (start_server, start_servers, start_broker, the
HTTP/gRPC/GraphQL/MPD servers) made it into librockbox_expo.so.
Adding "rlib" to crate-type lets us reference rockbox-server items as
real Rust modules. The keepalive in daemon.rs now does
static _KEEPALIVE_ROCKBOX_SERVER: &[&str] = &rockbox_server::AUDIO_EXTENSIONS;
which forces rustc to compile rockbox-server's rlib into the cdylib,
bringing along start_server / start_servers / start_broker and every
sub-server they spawn.
Result: librockbox_expo.so jumps 14 MB → 44 MB (the full daemon code
is now actually linked, not stripped). All three start_* entry points
plus the netstream rb_net_* shims are now T (defined text), not U.
Desktop builds unaffected — the staticlib output for the Zig linker
is still produced (crate-type is now [staticlib, rlib]).
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>