Message ID | 20220521204348.1023965-1-fontaine.fabrice@gmail.com |
---|---|
State | Accepted |
Headers | show |
Series | [1/1] package/qpid-proton: needs C++ and threads | expand |
Hi Fabrice, first, thanks for addressing this! It's been on my todo list for a long time but never got the time do look into that. On 21/05/22 22:43, Fabrice Fontaine wrote: > qpid-proton needs C++ (and so threads due to proactor) to avoid the > following build failure: > > CMake Error at /nvmedata/autobuild/instance-3/output-1/host/share/cmake-3.18/Modules/CMakeTestCXXCompiler.cmake:59 (message): > The C++ compiler > > "/usr/bin/c++" > > is not able to compile a simple test program. > > C++ check can't easily be removed: > https://github.com/apache/qpid-proton/pull/366 > > Fixes: > - http://autobuild.buildroot.org/results/76f8deccc9c4eee29eddf42586cc28e96eec0827 > > Signed-off-by: Fabrice Fontaine <fontaine.fabrice@gmail.com> If upstream does not provide _working_ support for building without C++, then I would not spend much time in trying to do so. My only question is whether you tried to upgrade to the latest version and see whether non-C++ builds are supported there. I hope this would be a quick test. If you did that and still non-C++ builds fail: Reviewed-by: Luca Ceresoli <luca@lucaceresoli.net>
Fabrice, All, On 2022-05-21 22:43 +0200, Fabrice Fontaine spake thusly: > qpid-proton needs C++ (and so threads due to proactor) to avoid the > following build failure: > > CMake Error at /nvmedata/autobuild/instance-3/output-1/host/share/cmake-3.18/Modules/CMakeTestCXXCompiler.cmake:59 (message): > The C++ compiler > > "/usr/bin/c++" > > is not able to compile a simple test program. > > C++ check can't easily be removed: > https://github.com/apache/qpid-proton/pull/366 > > Fixes: > - http://autobuild.buildroot.org/results/76f8deccc9c4eee29eddf42586cc28e96eec0827 > > Signed-off-by: Fabrice Fontaine <fontaine.fabrice@gmail.com> Applied to master, thanks. Regards, Yann E. MORIN. > --- > package/qpid-proton/Config.in | 7 +++++-- > package/qpid-proton/qpid-proton.mk | 15 +-------------- > 2 files changed, 6 insertions(+), 16 deletions(-) > > diff --git a/package/qpid-proton/Config.in b/package/qpid-proton/Config.in > index b49a2afa7e..adddc6eca0 100644 > --- a/package/qpid-proton/Config.in > +++ b/package/qpid-proton/Config.in > @@ -1,6 +1,8 @@ > config BR2_PACKAGE_QPID_PROTON > bool "qpid-proton" > + depends on BR2_INSTALL_LIBSTDCPP > depends on !BR2_STATIC_LIBS # build a shared library > + depends on BR2_TOOLCHAIN_HAS_THREADS > select BR2_PACKAGE_UTIL_LINUX > select BR2_PACKAGE_UTIL_LINUX_LIBUUID > help > @@ -13,5 +15,6 @@ config BR2_PACKAGE_QPID_PROTON > > https://qpid.apache.org/proton/ > > -comment "qpid-proton needs a toolchain w/ dynamic library" > - depends on BR2_STATIC_LIBS > +comment "qpid-proton needs a toolchain w/ C++, dynamic library, threads" > + depends on !BR2_INSTALL_LIBSTDCPP || BR2_STATIC_LIBS || \ > + !BR2_TOOLCHAIN_HAS_THREADS > diff --git a/package/qpid-proton/qpid-proton.mk b/package/qpid-proton/qpid-proton.mk > index 103cf9fd31..fae6ecc413 100644 > --- a/package/qpid-proton/qpid-proton.mk > +++ b/package/qpid-proton/qpid-proton.mk > @@ -23,6 +23,7 @@ QPID_PROTON_DEPENDENCIES = \ > # go language binding is enabled when host-go is present > # For now, disable all of them. > QPID_PROTON_CONF_OPTS = \ > + -DBUILD_CPP=ON \ > -DBUILD_GO=OFF \ > -DBUILD_PYTHON=OFF \ > -DBUILD_RUBY=OFF \ > @@ -31,20 +32,6 @@ QPID_PROTON_CONF_OPTS = \ > -DENABLE_WARNING_ERROR=OFF \ > -DPYTHON_EXECUTABLE=$(HOST_DIR)/bin/python3 > > -# epoll proactor unconditionally uses pthread and cpp (C++) bindings > -# unconditionally use proactor > -ifeq ($(BR2_TOOLCHAIN_HAS_THREADS),y) > -ifeq ($(BR2_INSTALL_LIBSTDCPP),y) > -QPID_PROTON_CONF_OPTS += -DBUILD_CPP=ON > -else > -QPID_PROTON_CONF_OPTS += -DBUILD_CPP=OFF > -endif > -else > -QPID_PROTON_CONF_OPTS += \ > - -DBUILD_CPP=OFF \ > - -DPROACTOR=none > -endif > - > ifeq ($(BR2_PACKAGE_JSONCPP),y) > QPID_PROTON_DEPENDENCIES += jsoncpp > QPID_PROTON_CONF_OPTS += -DENABLE_JSONCPP=ON > -- > 2.35.1 > > _______________________________________________ > buildroot mailing list > buildroot@buildroot.org > https://lists.buildroot.org/mailman/listinfo/buildroot
Luca, All, On 2022-05-23 15:19 +0200, Luca Ceresoli spake thusly: > On 21/05/22 22:43, Fabrice Fontaine wrote: > > qpid-proton needs C++ (and so threads due to proactor) to avoid the > > following build failure: [--SNIP--] > If upstream does not provide _working_ support for building without C++, > then I would not spend much time in trying to do so. Yes, upstream jsut dismissed the issue by requiring C++: https://github.com/apache/qpid-proton/pull/366#issuecomment-1146334165 This change won't work - you actually do need a C++ compiler to run the tests so the CMake build configuration is correct. So yes you actually do need to make a build dependency on c++. I don't think they are correct in that statement, (i.e. testing for the presence of a C++ compiler should not require a C++ compiler...), but that's their call to not want to deal with the issue, so I applied Fabrice's patch. Regards, Yann E. MORIN.
>>>>> "Fabrice" == Fabrice Fontaine <fontaine.fabrice@gmail.com> writes: > qpid-proton needs C++ (and so threads due to proactor) to avoid the > following build failure: > CMake Error at /nvmedata/autobuild/instance-3/output-1/host/share/cmake-3.18/Modules/CMakeTestCXXCompiler.cmake:59 (message): > The C++ compiler > "/usr/bin/c++" > is not able to compile a simple test program. > C++ check can't easily be removed: > https://github.com/apache/qpid-proton/pull/366 > Fixes: > - http://autobuild.buildroot.org/results/76f8deccc9c4eee29eddf42586cc28e96eec0827 > Signed-off-by: Fabrice Fontaine <fontaine.fabrice@gmail.com> Committed to 2022.02.x, thanks.
diff --git a/package/qpid-proton/Config.in b/package/qpid-proton/Config.in index b49a2afa7e..adddc6eca0 100644 --- a/package/qpid-proton/Config.in +++ b/package/qpid-proton/Config.in @@ -1,6 +1,8 @@ config BR2_PACKAGE_QPID_PROTON bool "qpid-proton" + depends on BR2_INSTALL_LIBSTDCPP depends on !BR2_STATIC_LIBS # build a shared library + depends on BR2_TOOLCHAIN_HAS_THREADS select BR2_PACKAGE_UTIL_LINUX select BR2_PACKAGE_UTIL_LINUX_LIBUUID help @@ -13,5 +15,6 @@ config BR2_PACKAGE_QPID_PROTON https://qpid.apache.org/proton/ -comment "qpid-proton needs a toolchain w/ dynamic library" - depends on BR2_STATIC_LIBS +comment "qpid-proton needs a toolchain w/ C++, dynamic library, threads" + depends on !BR2_INSTALL_LIBSTDCPP || BR2_STATIC_LIBS || \ + !BR2_TOOLCHAIN_HAS_THREADS diff --git a/package/qpid-proton/qpid-proton.mk b/package/qpid-proton/qpid-proton.mk index 103cf9fd31..fae6ecc413 100644 --- a/package/qpid-proton/qpid-proton.mk +++ b/package/qpid-proton/qpid-proton.mk @@ -23,6 +23,7 @@ QPID_PROTON_DEPENDENCIES = \ # go language binding is enabled when host-go is present # For now, disable all of them. QPID_PROTON_CONF_OPTS = \ + -DBUILD_CPP=ON \ -DBUILD_GO=OFF \ -DBUILD_PYTHON=OFF \ -DBUILD_RUBY=OFF \ @@ -31,20 +32,6 @@ QPID_PROTON_CONF_OPTS = \ -DENABLE_WARNING_ERROR=OFF \ -DPYTHON_EXECUTABLE=$(HOST_DIR)/bin/python3 -# epoll proactor unconditionally uses pthread and cpp (C++) bindings -# unconditionally use proactor -ifeq ($(BR2_TOOLCHAIN_HAS_THREADS),y) -ifeq ($(BR2_INSTALL_LIBSTDCPP),y) -QPID_PROTON_CONF_OPTS += -DBUILD_CPP=ON -else -QPID_PROTON_CONF_OPTS += -DBUILD_CPP=OFF -endif -else -QPID_PROTON_CONF_OPTS += \ - -DBUILD_CPP=OFF \ - -DPROACTOR=none -endif - ifeq ($(BR2_PACKAGE_JSONCPP),y) QPID_PROTON_DEPENDENCIES += jsoncpp QPID_PROTON_CONF_OPTS += -DENABLE_JSONCPP=ON
qpid-proton needs C++ (and so threads due to proactor) to avoid the following build failure: CMake Error at /nvmedata/autobuild/instance-3/output-1/host/share/cmake-3.18/Modules/CMakeTestCXXCompiler.cmake:59 (message): The C++ compiler "/usr/bin/c++" is not able to compile a simple test program. C++ check can't easily be removed: https://github.com/apache/qpid-proton/pull/366 Fixes: - http://autobuild.buildroot.org/results/76f8deccc9c4eee29eddf42586cc28e96eec0827 Signed-off-by: Fabrice Fontaine <fontaine.fabrice@gmail.com> --- package/qpid-proton/Config.in | 7 +++++-- package/qpid-proton/qpid-proton.mk | 15 +-------------- 2 files changed, 6 insertions(+), 16 deletions(-)