configure.ac: add -lboost_thread for uhd < 4.2.0

Fix for the following error we see since building master-osmo-trx on
debian 10 instead of 9:
  /usr/bin/ld: ipc_driver_test-uhdwrap.o: undefined reference to symbol '_ZTIN5boost6detail16thread_data_baseE'
  /usr/bin/ld: //usr/lib/x86_64-linux-gnu/libboost_thread.so.1.67.0: error adding symbols: DSO missing from command line

After spending a lot of time on researching this, my understanding is
now that uhd.pc should have had "-lboost_thread" in versions up to the
latest release 4.2.0 because before that it would include boost thread
headers in its logging code:
https://github.com/EttusResearch/uhd/commit/04a83b6e76beef970854da69ba882d717669b49c

ld is able to figure out which library provides the missing symbol, and
apparently depending on the binutils version and linker flags, it may
just ignore this and not show an error. This is why apparently it worked
with debian 9 and still does work in OBS (different flags), and why it
was not fixed upstream in uhd.pc. By now fixing it is not needed in the
latest version anymore, and there are already versions of uhd.pc in
various linux distributions without -lboost_thread, so I think it's
appropriate to add the workaround here in configure.ac.

Fixes: OS#5608
Related: https://stackoverflow.com/q/19901934
Change-Id: I0367f1c2981bf56252e7514d5993cbbec960b21b
1 file changed
tree: 911bc33f09cb5bfe2838c6de2f9947e72a77d3bb
  1. CommonLibs/
  2. config/
  3. contrib/
  4. debian/
  5. doc/
  6. GSM/
  7. tests/
  8. Transceiver52M/
  9. utils/
  10. .clang-format
  11. .gitignore
  12. .gitreview
  13. configure.ac
  14. COPYING
  15. git-version-gen
  16. LEGAL
  17. Makefile.am
  18. Makefile.common
  19. README.md
  20. TODO-RELEASE
README.md

About OsmoTRX

OsmoTRX is a software-defined radio transceiver that implements the Layer 1 physical layer of a BTS comprising the following 3GPP specifications:

  • TS 05.01 "Physical layer on the radio path"
  • TS 05.02 "Multiplexing and Multiple Access on the Radio Path"
  • TS 05.04 "Modulation"
  • TS 05.10 "Radio subsystem synchronization"

OsmoTRX is originally based on the transceiver code from the OpenBTS project, but setup to operate independently with the purpose of using with non-OpenBTS software and projects, specifically within the Osmocom stack. Used together with OsmoBTS you can get a pretty standard GSM BTS with Abis interface as per the relevant 3GPP specifications.

Homepage

The official homepage of the project is https://osmocom.org/projects/osmotrx/wiki/OsmoTRX

GIT Repository

You can clone from the official osmo-trx.git repository using

    git clone https://gitea.osmocom.org/cellular-infrastructure/osmo-trx`

There is a web interface at https://gitea.osmocom.org/cellular-infrastructure/osmo-trx

Documentation

Doxygen-generated API documentation is generated during the build process, but also available online for each of the sub-libraries at User Manual for OsmoTRX can be generated during the build process, and is also available online at https://ftp.osmocom.org/docs/latest/osmotrx-usermanual.pdf.

Mailing List

Discussions related to OsmoTRX are happening on the openbsc@lists.osmocom.org mailing list, please see https://lists.osmocom.org/mailman/listinfo/openbsc for subscription options and the list archive.

Please observe the Osmocom Mailing List Rules when posting.

Contributing

Our coding standards are described at https://osmocom.org/projects/cellular-infrastructure/wiki/Coding_standards

We us a gerrit based patch submission/review process for managing contributions. Please see https://osmocom.org/projects/cellular-infrastructure/wiki/Gerrit for more details

The current patch queue for OsmoTRX can be seen at https://gerrit.osmocom.org/q/project:osmo-trx+status:open