EttusResearch / uhd

The USRP™ Hardware Driver Repository
http://uhd.ettus.com
Other
1k stars 667 forks source link

Add support for upcoming Boost 1.87.0 #812

Open cho-m opened 6 days ago

cho-m commented 6 days ago

Issue Description

While testing the beta of upcoming Boost 1.87.0 in Homebrew (https://github.com/Homebrew/homebrew-core/pull/198115), UHD failed to build due to using deprecated Boost Asio APIs that were removed, e.g. https://github.com/boostorg/asio/commit/ec0908c562102915423d8bd7aefd3079efbb6c86

https://github.com/EttusResearch/uhd/blob/635ad362ae60f82b3131970d6f8171505dce6ac7/host/lib/deps/rpclib/include/rpc/detail/async_writer.h#L22

This issue is mainly intended as advance notice. Boost 1.87.0 release is planned for December 11.

Setup Details

Homebrew build environment. Shouldn't be OS/arch specific. CI hit this on macOS 13-14 (x86_64), macOS 13-15 (arm64) and Ubuntu 22.04 (x86_64).

Expected Behavior

Successful build.

Actual Behaviour

Compilation fails with errors like:

host/lib/deps/rpclib/include/rpc/detail/async_writer.h:22:31: error: no type named 'io_service' in namespace 'boost::asio'
   22 |     async_writer(boost::asio::io_service *io,
      |                  ~~~~~~~~~~~~~^

Steps to reproduce the problem

Easiest way to reproduce may using CXXFLAGS=-DBOOST_ASIO_NO_DEPRECATED on Boost 1.66.0 - 1.86.0

An identical reproduction would be building recent 1.87.0.beta1.

Additional Information

Updating Boost minimum to 1.66.0 should allow replacing most/all deprecated APIs. If older Boost support is needed, then will require various #if BOOST_VERSION checks to support.

mbr0wn commented 5 days ago

Thanks for the report! Yes we want to support the upcoming Boost.