Message ID | 20191026140204.14776-1-asafka7@gmail.com |
---|---|
State | Accepted |
Headers | show |
Series | [v4,1/1] package/uvw: new package | expand |
On Sat, 26 Oct 2019 17:02:04 +0300 Asaf Kahlon <asafka7@gmail.com> wrote: > A header-only libuv wrapper in C++. > > Signed-off-by: Asaf Kahlon <asafka7@gmail.com> > --- > v3->v4: > * gcc 7.x is now OR'ed with NPTL and dynamic library. > * use UVW_SUPPORTS_IN_SOURCE_BUILD = NO. Applied to master, thanks. Thomas
On Sat, 26 Oct 2019 17:02:04 +0300 Asaf Kahlon <asafka7@gmail.com> wrote: > A header-only libuv wrapper in C++. > > Signed-off-by: Asaf Kahlon <asafka7@gmail.com> > --- > v3->v4: > * gcc 7.x is now OR'ed with NPTL and dynamic library. > * use UVW_SUPPORTS_IN_SOURCE_BUILD = NO. This patch causes a Doxygen issue: http://autobuild.buildroot.net/results/9c6/9c61c06142c832a9669afdcafcbb8b1f7df51082/build-end.log Could you have a look? Thanks! Thomas
Hi, On Sat, Oct 26, 2019 at 8:43 PM Thomas Petazzoni <thomas.petazzoni@bootlin.com> wrote: > > On Sat, 26 Oct 2019 17:02:04 +0300 > Asaf Kahlon <asafka7@gmail.com> wrote: > > > A header-only libuv wrapper in C++. > > > > Signed-off-by: Asaf Kahlon <asafka7@gmail.com> > > --- > > v3->v4: > > * gcc 7.x is now OR'ed with NPTL and dynamic library. > > * use UVW_SUPPORTS_IN_SOURCE_BUILD = NO. > > This patch causes a Doxygen issue: > http://autobuild.buildroot.net/results/9c6/9c61c06142c832a9669afdcafcbb8b1f7df51082/build-end.log > > Could you have a look? Actually, this failure isn't related to Doxygen. The problem occurs when CMake runs a simple threads test. This seems to be fixed on a newer CMake version, as described in this issue: https://gitlab.kitware.com/cmake/cmake/issues/16920 As a workaround, setting THREADS_PTHREAD_ARG to "2" on UVW_CONF_OPTS does the job, but I wonder maybe we want to put it on toolchainfile.cmake, as this can potentially happen in the future with other packages... Do you have any thoughts regarding the correct solution? > > Thanks! > > Thomas > -- > Thomas Petazzoni, CTO, Bootlin > Embedded Linux and Kernel engineering > https://bootlin.com Regards, Asaf.
On Sat, 26 Oct 2019 23:40:25 +0300 Asaf Kahlon <asafka7@gmail.com> wrote: > Actually, this failure isn't related to Doxygen. > The problem occurs when CMake runs a simple threads test. > This seems to be fixed on a newer CMake version, as described in this issue: > https://gitlab.kitware.com/cmake/cmake/issues/16920 > As a workaround, setting THREADS_PTHREAD_ARG to "2" on UVW_CONF_OPTS > does the job, but I wonder maybe we want to put it on toolchainfile.cmake, > as this can potentially happen in the future with other packages... > > Do you have any thoughts regarding the correct solution? We have numerous packages that do this: # The following CMake variable disables a TRY_RUN call in the -pthread # test which is not allowed when cross-compiling. EXIV2_CONF_OPTS += -DTHREADS_PTHREAD_ARG=OFF would that help for this package as well ? Thomas
On 26/10/2019 22:53, Thomas Petazzoni wrote: > On Sat, 26 Oct 2019 23:40:25 +0300 > Asaf Kahlon <asafka7@gmail.com> wrote: > >> Actually, this failure isn't related to Doxygen. >> The problem occurs when CMake runs a simple threads test. >> This seems to be fixed on a newer CMake version, as described in this issue: >> https://gitlab.kitware.com/cmake/cmake/issues/16920 This was merged in CMake 3.10, apparently, so as soon as we bump the minimum CMake version to 3.10 (which is needed for wpewebkit and webkitgtk) those workaround can be removed again, I guess? Regards, Arnout >> As a workaround, setting THREADS_PTHREAD_ARG to "2" on UVW_CONF_OPTS >> does the job, but I wonder maybe we want to put it on toolchainfile.cmake, >> as this can potentially happen in the future with other packages... >> >> Do you have any thoughts regarding the correct solution? > > We have numerous packages that do this: > > # The following CMake variable disables a TRY_RUN call in the -pthread > # test which is not allowed when cross-compiling. > EXIV2_CONF_OPTS += -DTHREADS_PTHREAD_ARG=OFF > > would that help for this package as well ? > > Thomas >
On Mon, 28 Oct 2019 00:44:05 +0100 Arnout Vandecappelle <arnout@mind.be> wrote: > This was merged in CMake 3.10, apparently, so as soon as we bump the minimum > CMake version to 3.10 (which is needed for wpewebkit and webkitgtk) those > workaround can be removed again, I guess? Yes, absolutely. Thomas
diff --git a/DEVELOPERS b/DEVELOPERS index ec4f50a79e..b9e6881419 100644 --- a/DEVELOPERS +++ b/DEVELOPERS @@ -239,6 +239,7 @@ F: package/python* F: package/snmpclitools/ F: package/spdlog/ F: package/uftp/ +F: package/uvw/ F: package/zeromq/ N: Ash Charles <ashcharles@gmail.com> diff --git a/package/Config.in b/package/Config.in index d78b4c444b..901c25fe02 100644 --- a/package/Config.in +++ b/package/Config.in @@ -1805,6 +1805,7 @@ endif source "package/tinycbor/Config.in" source "package/tz/Config.in" source "package/tzdata/Config.in" + source "package/uvw/Config.in" source "package/xapian/Config.in" endmenu diff --git a/package/libuv/libuv.mk b/package/libuv/libuv.mk index d5f1d7dbab..618b25d5f6 100644 --- a/package/libuv/libuv.mk +++ b/package/libuv/libuv.mk @@ -4,6 +4,8 @@ # ################################################################################ +# When bumping libuv, check if a new version of uvw is available +# and bump it too. LIBUV_VERSION = 1.33.1 LIBUV_SITE = $(call github,libuv,libuv,v$(LIBUV_VERSION)) LIBUV_DEPENDENCIES = host-pkgconf diff --git a/package/uvw/Config.in b/package/uvw/Config.in new file mode 100644 index 0000000000..bfaed25796 --- /dev/null +++ b/package/uvw/Config.in @@ -0,0 +1,19 @@ +config BR2_PACKAGE_UVW + bool "uvw" + depends on BR2_TOOLCHAIN_HAS_THREADS_NPTL # libuv + depends on BR2_USE_MMU # libuv + depends on !BR2_STATIC_LIBS # libuv + depends on BR2_TOOLCHAIN_HAS_SYNC_4 # libuv + depends on BR2_TOOLCHAIN_GCC_AT_LEAST_7 # C++17 + select BR2_PACKAGE_LIBUV + help + Header-only, event based, tiny and easy to use + libuv wrapper in modern C++. + + https://github.com/skypjack/uvw + +comment "uvw needs a toolchain w/ NPTL, dynamic library, gcc >= 7" + depends on !BR2_TOOLCHAIN_HAS_THREADS_NPTL || BR2_STATIC_LIBS || \ + !BR2_TOOLCHAIN_GCC_AT_LEAST_7 + depends on BR2_USE_MMU + depends on BR2_TOOLCHAIN_HAS_SYNC_4 diff --git a/package/uvw/uvw.hash b/package/uvw/uvw.hash new file mode 100644 index 0000000000..e6129e559d --- /dev/null +++ b/package/uvw/uvw.hash @@ -0,0 +1,3 @@ +# Locally calculated +sha256 266a354f0c64a8e85f29b10f20f4d08a35bc1e8caa7cc94a8afecf9ca43f4442 uvw-2.2.0_libuv-v1.33.tar.gz +sha256 ea786619b4d1b2ba0a188e923111122dfefea1d01c86e37f9e8c80bdbc3ea400 LICENSE diff --git a/package/uvw/uvw.mk b/package/uvw/uvw.mk new file mode 100644 index 0000000000..64122aea44 --- /dev/null +++ b/package/uvw/uvw.mk @@ -0,0 +1,16 @@ +################################################################################ +# +# uvw +# +################################################################################ + +UVW_VERSION = 2.2.0_libuv-v1.33 +UVW_SITE = $(call github,skypjack,uvw,v$(UVW_VERSION)) +UVW_INSTALL_STAGING = YES +UVW_INSTALL_TARGET = NO +UVW_SUPPORTS_IN_SOURCE_BUILD = NO +UVW_DEPENDENCIES = libuv +UVW_LICENSE = MIT +UVW_LICENSE_FILES = LICENSE + +$(eval $(cmake-package))