The udpspeeder-simd package coexists with udpspeeder and links dynamically
- Status: accepted
- Scope: packages
- Date: 2026-07-03
Context and Problem Statement
The issue at https://github.com/openwrt/packages/issues/28562 asks for the
performance-optimised UDPspeeder on low-end OpenWrt devices. The feed already
carries net/udpspeeder (the upstream UDPspeeder). A udpspeeder-simd package has
to avoid clashing with that package, and it has to choose how the binary links.
The operator first asked for a static build.
Decision
Ship a distinct package udpspeeder-simd with distinct paths
(/usr/bin/udpspeeder-simd, /etc/config/udpspeeder-simd,
/etc/init.d/udpspeeder-simd), so it installs alongside udpspeeder with no file
clash and no CONFLICTS.
Link the binary dynamically, with DEPENDS on the shared libraries it needs (the
udpspeeder package depends on libstdcpp, librt, and libatomic). Do not
build statically. A static C++ binary is larger on flash, which works against the
low-end devices the issue targets, and static linking runs against OpenWrt's
shared-library model. The operator settled this: no static builds for OpenWrt.
Consequences
- Good: the package matches OpenWrt's conventions and the sibling
udpspeederpackage, holds the flash footprint down, and reviews cleanly. - Good: both packages install together, so a user can compare them.
- Neutral: the exact
DEPENDSset is confirmed when the package first builds against the SDK.