FYI, Philipp has been working on some patches to do the OsmoTRX cpu
instruction set extension detection at runtime rather than compile-time.
See "Bug #1869: osmo-trx binary cannot be moved to similar CPU"
https://osmocom.org/issues/1869#change-3394
As not everyone is following each redmine ticket or gerrit patch:
I would like the OsmoTRX folks (Tom, Alexander, ...) to have a look at
this. For convenience, the latest update to the ticket and the
associated links to the gerrit patches below:
---
The matching implementation is now selected dynamically during runtime.
In order to be sure that the convolution part did not break, I wrote a
small test program to compute some testvectors. I compared the results
before and after my changes. They match up. I made only minimal changes
to the conversion code, so I skipped testing that as well.
The SSE relevant sources are compiled with $(SIMD_FLAGS) now. The
sources only contain the SSE implementation and the decision logic to
defer to the correct implementation during runtime. That should run fine
on non SSE3 / SSE4.1 CPUs, since the decision logic is not
vectorize-able. However, we can divide this up further as discussed.
https://gerrit.osmocom.org/2098 buildenv: Turn off native architecture builds
https://gerrit.osmocom.org/2099 cosmetic: Make parameter lists uniform
https://gerrit.osmocom.org/2100 ssedetect: Add runtime CPU detection
https://gerrit.osmocom.org/2101 cosmetic: Add info about SSE support
https://gerrit.osmocom.org/2102 buildenv: Make build CPU invariant
https://gerrit.osmocom.org/2103 cosmetic: remove code duplication
https://gerrit.osmocom.org/2104 Add test program to verify convolution implementation
---
--
- Harald Welte <laforge(a)gnumonks.org>
http://laforge.gnumonks.org/
============================================================================
"Privacy in residential applications is a desirable marketing option."
(ETSI EN 300 175-7 Ch. A6)