Attention is currently required from: Hoernchen, fixeria, laforge, osmith, pespin.
Timur Davydov has posted comments on this change by Timur Davydov. ( https://gerrit.osmocom.org/c/osmo-trx/+/42243?usp=email )
Change subject: build: install common/GSM/transceiver libraries for emscripten and add pkg-config files ......................................................................
Patch Set 4:
(1 comment)
File configure.ac:
https://gerrit.osmocom.org/c/osmo-trx/+/42243/comment/63a71d84_2e62190b?usp=... : PS3, Line 307: PKG_CHECK_MODULES(FFTWF, fftw3f)
How is for instance […]
It isn't — and it doesn't need to be. `Channelizer`/`Synthesis` are compiled into object files inside the static library `libtransceiver_common.a`, but no code in the Emscripten binary actually references them. They are only ever instantiated by `RadioInterfaceMulti` (in `radioInterfaceMulti.cpp`), which is not part of the Emscripten link target.
With static libraries, the linker only pulls in object files that resolve symbols actually referenced by the binary. Since nothing calls `Channelizer`/`Synthesis`, their objects are never pulled from the archive, and the unresolved `cxvec_fft()` symbol is never encountered. It simply stays unused inside the .a file.
Btw, I'm currently reworking this commit. My plan is to introduce a separate `web` target in `devices` that will produce a static library `osmo-trx-web.a` containing everything needed to build `osmo-bts` with Emscripten. It will only be built when the `--with-web` configure flag is enabled.