2026.06.14 #212
tsirysndr
announced in
Announcements
2026.06.14
#212
Replies: 0 comments
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Uh oh!
There was an error while loading. Please reload this page.
-
[2026.06.14]
Added
arm-unknown-linux-gnueabihfcross-compilation target — newscripts/build-armhf.shbuilds a native ARMv6 hard-floatrockboxdbinary (e.g. Raspberry Pi Zero) using theDockerfile.arm-unknown-linux-gnueabihfcross-toolchain; Zig links with-Dtarget=arm-linux-gnueabihf -Dcpu=arm1176jzf_s;Cross.tomlwirescross buildto the same Docker image; firmware configure target208(ARMHFHOST) reuses the headless target files witharm-linux-gnueabihf-gccand-march=armv6 -marm -mfpu=vfp -mfloat-abi=hardcrates/alsa-sink— direct libasound PCM sink for ARM Linux; usessnd_pcm_writei(RWInterleaved, same asaplay), avoiding cpal's ALSA backend and thesnd_pcm_status_get_htstampnull-PLT-entry crash on older ARM devices; ALSA is opened once inpcm_alsa_postinit()and the writer thread lives for the daemon lifetime so resume after a pcmbuf-dry stall is instant (no re-open latency); enabled via--features fts5,alsa-sinkin the ARM build; registered asPCM_SINK_ALSA = 9infirmware/export/pcm_sink.hfirmware/target/hosted/headless/pcm-alsa.c— C PCM sink ops mirroringpcm-cpal.cbut callingpcm_alsa_*entry points.github/workflows/linux-armhf-build.yml— CI workflow that builds and uploads the armhf binary to GitHub ReleasesFixed
SIGILLfrom__ARMv7ABSLongThunk__— Ubuntu'sarm-linux-gnueabihf-gccdefaults to-march=armv7-a; added-march=armv6 -marmto the configurearmhfhostcc()function so all C objects are tagged ARMv6; Zig's LLD then uses ARMv6-compatible thunks that work on ARM1176JZF-SSIGILLat startup — LLD derivesHasMovtfrom the target triple (arm-linux-gnueabihf= conventional ARMv7), generatingmovw/movtthunks even when object attributes say ARMv6; fixed by usingReleaseFastto produce a compact binary (< 32 MB) that fits within LLD's direct-branch range, eliminating the need for long-range veneersSIGSEGVinSimpleBroker::subscribe(dyn Anyvtable null) — Zig's LLD generates zero vtable entries fordyn Any + SendCOMDAT groups on ARM 32-bit inReleaseFastmode; replacedHashMap<TypeId, Box<dyn Any + Send>>incrates/graphql/src/simplebroker.rswith a type-erasedErasedSendersstruct storing the drop function as a heap pointer written at runtime (not a link-time vtable), so every function pointer is a valid non-zero Thumb addressSIGSEGVinalsa::pcm::Status::get_htstamp— on ARM devices where libasound shipssnd_pcm_status_get_htstampas a static inline (not an exported symbol) the PLT entry resolves to 0x00000000 at runtime, crashing in cpal's ALSA timing probe; fixed by replacing cpal with the directalsa-sinkthat never calls this functioncrates/sys—c_long/c_ulongare 32-bit on ARM (not 64-bit); addedas c_long/as c_ulongcasts inmetadata.rs,playback.rs,playlist.rs,sound/dsp.rs,system.rs,tagcache.rs, andas u64/as i64field casts intypes/mp3_entry.rs;crates/cli/src/lib.rsnow useslibc::rlim_tinstead ofu64forrlimitfieldsaudiohw_set_volumeundefined reference topcm_cpal_set_volume— gated the cpal volume call on!ARMHFHOSTinaudiohw-noop.c; volume is handled by Rockbox's DSP layer (HAVE_SW_TONE_CONTROLS) on ARMPCM_SINK_ALSA = 9array-bounds error inpcm.c— enum entry was declared beforePCM_SINK_CMAF = 8, makingPCM_SINK_NUM = 9andsinks[9]out-of-bounds; moved ALSA entry after CMAF soPCM_SINK_NUM = 10firmware/export/config.h: added#elif defined(ARMHFHOST)→#include "config/armhfhost.h"so the ARM hosted build is recognised as a valid platform; addedARMHFHOSTguard toaudiohw.h(sdl_codec.h inclusion) andfilesystem-app.c(rbhomepointer declaration)metadata:probe_content_type_formatnow logs the exactContent-Typestring received (or reports thatstream_content_typereturned < 0) to stderr, making HTTP format-detection failures visible; addedaudio/x-aacandaudio/vnd.dlna.adtsto the AAC-BSF MIME mappingFull Changelog: 2026.06.07...2026.06.14
This discussion was created from the release 2026.06.14.
Beta Was this translation helpful? Give feedback.
All reactions