Yesterday we had problems building the current osmo-bts-octphy with the current octphy-2g-headers. To resolve, we've reverted two commits and added a change in osmo-bts.
(1) osmo-bts included a struct member not present anywhere in octphy-2g-headers.
https://gerrit.osmocom.org/820 https://gerrit.osmocom.org/821
On our test setup at sysmocom, I found a version of the headers called OCTSDR-2G-02.05.00-B780-DEBUG that includes this struct member, but those headers have proprietary licensing. Also, the current version apparently is 2.07, while the one with the unknown struct header seems to be older: 2.05. So it looks like the usCentreArfcn item has been removed in a newer version, even though it looks really useful to me.
It would be good to resolve this confusion, probably as soon as Max is back from vacation (Max is the author of the reverted commits).
(2) In the most recent version, a #define naming has changed. In https://gerrit.osmocom.org/822 Holger asks:
Do we have any precedence of using #if for version checks? You can use #ifdef for both of them to support old and new headers?
We could use a check like
#if cOCTVC1_HW_VERSION_MAJOR <=2 && cOCTVC1_HW_VERSION_MINOR < 7 [...]_IDLE[...] #else [...]_UNUSED[...] #endif
but I doubt that we will want to go back to old headers.
If I'm the only one in doubt, we'd have a check like above in three places in osmo-bts.
Thanks for your opinions,
~Neels