The Proton C++ binding is supported on MacOS and our CI does indeed test it there.
The Qpid broker relies on a threading abstraction that can be changed to target different platforms. Using modern C++ this abstraction should now use the standard C++ library threading primitives for maximum portability. However the existing code was written pre C++11 and, as Robbie has pointed out, has been very lightly maintained since. It wouldn't be very hard to change this code for C++ cross platform portable code. Andrew On Thu, Jan 26, 2023 at 4:01 AM Emmett Brown <emmett@moda.tools> wrote: > Virgilio, > > Thank you very much for the references. > > Kind regards, > Emmett Brown > > emmett@moda.tools > PGP: 2EB563D958F5CB8153AAED477867D39BF7356F59 > <https://api.protonmail.ch/pks/lookup?op=get&search=emmett@moda.tools> > > > > > On 25 Jan 2023, at 15:56, Virgilio Fornazin <virgilioforna...@gmail.com> > wrote: > > MacOS does not have pthread_condattr_setclock, Mach kernel has monotonic > clock with different api sets, look at > > https://stackoverflow.com/questions/11680461/monotonic-clock-on-osx > > https://chromium.googlesource.com/chromium/src/base/+/master/synchronization/condition_variable_posix.cc > > The easy way is to run broker on a docker container now > > On Wed, Jan 25, 2023 at 11:35 AM Robbie Gemmell <robbie.gemm...@gmail.com> > wrote: > > Even when it was at its most active, there was apparently not much > developer interest in supporting the qpid-cpp broker running on MacOS > (or accompanying Qpid::Messaging cpp client), with a concentration of > interest on Linux. A look at the qpid-cpp repository would show that > qpid-cpp is largely stagnant these days, so I doubt there will be much > traction on the MacOS subject now either. The old mailing list posts > would be your main avenue to any specifics. > > C++ client wise specifically, attention also shifted away from the old > Qpid::Messaging C++ client to the Qpid Proton C++ binding many years > ago. Proton does compile on MacOS, I believe it possibly uses libuv > there (in contrast to typical Linux usage), which might be how it > works at all...though again I think it would be fair to say the bulk > of dev interest is around Linux. > > Robbie > > On Thu, 19 Jan 2023 at 11:42, Emmett Brown <emmett@moda.tools> wrote: > > > Hello, > > I was exploring the Qpid project yesterday and noticed that while it > > doesn’t officially support macOS, there have been some online discussions > in the past related to building Proton C++ and, the Dispatch Router for > macOS. I think some of the issues had been test compilation failures. > > > I haven’t noticed any such similar discussions related to building the > > C++ Broker on macOS. I thought I’d run a quick build myself, to see how far > I got. > > > Unsurprisingly, the build failed (I’m on Monterey 12.6.2). It was a > > pthread API issue. I’ll past the output below if anyone has any idea how to > get past this, but my question is more generally, does anyone have any past > experience trying to get the C++ Broker to compile on macOS, or does anyone > know what the past sticking points were that prevented the C++ Broker (feel > free to include any of the other C++ products in your answer if you wish) > from being built on macOS? > > > [ 20%] Building CXX object > > src/CMakeFiles/qpidcommon.dir/qpid/sys/posix/Condition.cpp.o > > > > /Users/ray/Developer/User/qpid-cpp-1.39.0/src/qpid/sys/posix/Condition.cpp:34:36: > error: use of undeclared identifier 'pthread_condattr_setclock'; did you > mean 'pthread_condattr_setpshared'? > > QPID_POSIX_ASSERT_THROW_IF(pthread_condattr_setclock(&attr, > > CLOCK_MONOTONIC)); > > ^~~~~~~~~~~~~~~~~~~~~~~~~ > pthread_condattr_setpshared > > /Users/ray/Developer/User/qpid-cpp-1.39.0/src/qpid/sys/posix/check.h:45:63: > note: expanded from macro 'QPID_POSIX_ASSERT_THROW_IF' > > #define QPID_POSIX_ASSERT_THROW_IF(ERRNO) QPID_POSIX_THROW_IF(ERRNO) > ^ > > /Users/ray/Developer/User/qpid-cpp-1.39.0/src/qpid/sys/posix/check.h:41:17: > note: expanded from macro 'QPID_POSIX_THROW_IF' > > do { int e=(ERRNO); if (e) throw QPID_POSIX_ERROR(e); } while(0) > ^ > > > /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX12.3.sdk/usr/include/pthread.h:325:5: > note: 'pthread_condattr_setpshared' declared here > > int pthread_condattr_setpshared(pthread_condattr_t *, int); > ^ > 1 error generated. > make[2]: *** > > [src/CMakeFiles/qpidcommon.dir/qpid/sys/posix/Condition.cpp.o] Error 1 > > make[1]: *** [src/CMakeFiles/qpidcommon.dir/all] Error 2 > make: *** [all] Error 2 > > > Kind regards, > Emmett Brown > > emmett@moda.tools > PGP: 2EB563D958F5CB8153AAED477867D39BF7356F59 > > > > > > --------------------------------------------------------------------- > To unsubscribe, e-mail: users-unsubscr...@qpid.apache.org > For additional commands, e-mail: users-h...@qpid.apache.org > > > >