[Buildroot] WG: [PATCH] package/vsomeip: new package

Thomas Petazzoni thomas.petazzoni at bootlin.com
Sat Dec 15 14:14:25 UTC 2018


Hello Maik,

On Wed, 12 Dec 2018 07:53:11 +0000, Brenke, Maik wrote:
> From: Maik Brenke <maik.brenke at continental-corporation.com>
> 
> Signed-off-by: Maik Brenke <maik.brenke at continental-corporation.com>

Thanks for this new iteration. There are still some formatting issues,
but the most important issue is that it doesn't build.

The following defconfig:

BR2_arm=y
BR2_TOOLCHAIN_EXTERNAL=y
BR2_TOOLCHAIN_EXTERNAL_CUSTOM=y
BR2_TOOLCHAIN_EXTERNAL_DOWNLOAD=y
BR2_TOOLCHAIN_EXTERNAL_URL="http://autobuild.buildroot.org/toolchains/tarballs/br-arm-full-2018.05.tar.bz2"
BR2_TOOLCHAIN_EXTERNAL_GCC_4_9=y
BR2_TOOLCHAIN_EXTERNAL_HEADERS_4_1=y
BR2_TOOLCHAIN_EXTERNAL_LOCALE=y
# BR2_TOOLCHAIN_EXTERNAL_HAS_THREADS_DEBUG is not set
BR2_TOOLCHAIN_EXTERNAL_CXX=y
BR2_INIT_NONE=y
BR2_SYSTEM_BIN_SH_NONE=y
# BR2_PACKAGE_BUSYBOX is not set
BR2_PACKAGE_VSOMEIP=y
# BR2_TARGET_ROOTFS_TAR is not set

Causes the following build failure:

>>> vsomeip 2.10.21 Building
PATH="/home/thomas/projets/buildroot/output/host/bin:/home/thomas/projets/buildroot/output/host/sbin:/home/thomas/sys/bin/:/usr/local/bin:/usr/bin:/bin:/home/thomas/.rvm/bin:/usr/local/sbin:/usr/sbin:/home/thomas/.rvm/bin:/home/thomas/sys/bin:/home/thomas/.gem/ruby/2.1.0/bin:/home/thomas/.rvm/bin:/home/thomas/projets/git-wrappers/"  /usr/bin/make -j5  -C /home/thomas/projets/buildroot/output/build/vsomeip-2.10.21/
Scanning dependencies of target vsomeip
[  1%] Building CXX object CMakeFiles/vsomeip.dir/implementation/endpoints/src/credentials.cpp.o
[  2%] Building CXX object CMakeFiles/vsomeip.dir/implementation/endpoints/src/client_endpoint_impl.cpp.o
[  4%] Building CXX object CMakeFiles/vsomeip.dir/implementation/endpoints/src/endpoint_definition.cpp.o
[  5%] Building CXX object CMakeFiles/vsomeip.dir/implementation/endpoints/src/local_client_endpoint_impl.cpp.o
[  7%] Building CXX object CMakeFiles/vsomeip.dir/implementation/endpoints/src/endpoint_impl.cpp.o
In file included from /home/thomas/projets/buildroot/output/build/vsomeip-2.10.21/implementation/helper/boost/asio/datagram_socket_service_ext.hpp:33:0,
                 from /home/thomas/projets/buildroot/output/build/vsomeip-2.10.21/implementation/helper/boost/asio/basic_datagram_socket_ext.hpp:24,
                 from /home/thomas/projets/buildroot/output/build/vsomeip-2.10.21/implementation/helper/boost/asio/ip/udp_ext.hpp:20,
                 from /home/thomas/projets/buildroot/output/build/vsomeip-2.10.21/implementation/endpoints/src/endpoint_impl.cpp:8:
/home/thomas/projets/buildroot/output/build/vsomeip-2.10.21/implementation/helper/boost/asio/detail/reactive_socket_service_ext.hpp:29:43: fatal error: boost/asio/detail/addressof.hpp: No such file or directory
 #include <boost/asio/detail/addressof.hpp>
                                           ^
compilation terminated.
make[4]: *** [CMakeFiles/vsomeip.dir/build.make:102: CMakeFiles/vsomeip.dir/implementation/endpoints/src/endpoint_impl.cpp.o] Error 1
make[4]: *** Waiting for unfinished jobs....
/home/thomas/projets/buildroot/output/build/vsomeip-2.10.21/implementation/endpoints/src/local_client_endpoint_impl.cpp: In member function ‘virtual void vsomeip::local_client_endpoint_impl::connect()’:
/home/thomas/projets/buildroot/output/build/vsomeip-2.10.21/implementation/endpoints/src/local_client_endpoint_impl.cpp:128:64: error: ‘class boost::asio::basic_stream_socket<boost::asio::local::stream_protocol>’ has no member named ‘native’
                         credentials::send_credentials(socket_->native(),
                                                                ^
make[4]: *** [CMakeFiles/vsomeip.dir/build.make:115: CMakeFiles/vsomeip.dir/implementation/endpoints/src/local_client_endpoint_impl.cpp.o] Error 1
make[3]: *** [CMakeFiles/Makefile2:214: CMakeFiles/vsomeip.dir/all] Error 2
make[2]: *** [Makefile:130: all] Error 2
make[1]: *** [package/pkg-generic.mk:233: /home/thomas/projets/buildroot/output/build/vsomeip-2.10.21/.stamp_built] Error 2
make: *** [Makefile:84: _all] Error 2

I'll comment below some more issues.

> diff --git a/DEVELOPERS b/DEVELOPERS
> index 8d5ed19..54a0331 100644
> --- a/DEVELOPERS
> +++ b/DEVELOPERS
> @@ -1258,6 +1258,9 @@ F:        package/mpv/
>  F:      package/rpi-firmware/
>  F:      package/rpi-userland/
> 
> +N:     Maik Brenke, <maik.brenke at continental-corporation.com>
> +F:     package/vsomeip/

Indentation is wrong: one tab should be used between the field name and
their values.

> +
>  N:      Mamatha Inamdar <mamatha4 at linux.vnet.ibm.com>
>  F:      package/nvme/
> 
> diff --git a/package/Config.in b/package/Config.in
> index 712e360..7ebb739 100644
> --- a/package/Config.in
> +++ b/package/Config.in
> @@ -1582,6 +1582,7 @@ menu "Networking"
>          source "package/sofia-sip/Config.in"
>          source "package/thrift/Config.in"
>          source "package/usbredir/Config.in"
> +       source "package/vsomeip/Config.in"

Indentation is wrong: use one tab. Perhaps it's because you didn't send
your patch with "git send-email".

> diff --git a/package/vsomeip/Config.in b/package/vsomeip/Config.in
> new file mode 100644
> index 0000000..7244c26
> --- /dev/null
> +++ b/package/vsomeip/Config.in
> @@ -0,0 +1,22 @@
> +config BR2_PACKAGE_VSOMEIP
> +       bool "vsomeip"

All over this file, the indentation is wrong: one need to use one tab.

> +       depends on BR2_TOOLCHAIN_GCC_AT_LEAST_4_8
> +       depends on BR2_INSTALL_LIBSTDCPP
> +       depends on BR2_TOOLCHAIN_HAS_THREADS # boost
> +       depends on BR2_PACKAGE_BOOST_ARCH_SUPPORTS

This option doesn't exist, so with dependency, the vsomeip package can
never be selected. I'm wondering how you tested it.

> +       select BR2_PACKAGE_BOOST
> +       select BR2_PACKAGE_BOOST_SYSTEM
> +       select BR2_PACKAGE_BOOST_THREAD
> +       select BR2_PACKAGE_BOOST_LOG
> +       help
> +         The vsomeip stack implements the Scalable service-Oriented
> +         MiddlewarE over IP (SOME/IP)) protocol (http://some-ip.com/).
> +         The stack consists out of:
> +          * a shared library for SOME/IP (`libvsomeip.so`)
> +          * a second shared library for SOME/IP's service discovery
> +            (`libvsomeip-sd.so`) which is loaded during runtime if
> +            the service discovery is enabled.

One blank line needed here.

> +         https://github.com/GENIVI/vsomeip

And another one here.

> +comment "vsomeip needs a toolchain w/ C++, threads, gcc >= 4.8"
> +       depends on BR2_PACKAGE_BOOST_ARCH_SUPPORTS

Again, this option doesn't exist.

> +       depends on !BR2_INSTALL_LIBSTDCPP || !BR2_TOOLCHAIN_HAS_THREADS || !BR2_TOOLCHAIN_GCC_AT_LEAST_4_8

Please split this long line.

> diff --git a/package/vsomeip/vsomeip.mk b/package/vsomeip/vsomeip.mk
> new file mode 100644
> index 0000000..aebf707
> --- /dev/null
> +++ b/package/vsomeip/vsomeip.mk
> @@ -0,0 +1,13 @@
> +################################################################################
> +#
> +# vsomeip
> +#
> +################################################################################

Please add one blank line here.

> +VSOMEIP_VERSION = 2.10.21
> +VSOMEIP_SITE = $(call github,GENIVI,vsomeip,$(VSOMEIP_VERSION))
> +VSOMEIP_LICENSE = MPL-2.0
> +VSOMEIP_LICENSE_FILES = LICENSE
> +
> +VSOMEIP_DEPENDENCIES = boost
> +
> +$(eval $(cmake-package))

I had fixed all the formatting issues, but then stumbled across the
build failure, so I gave up. Could you fix those issues, and send an
updated version ?

Thanks!

Thomas
-- 
Thomas Petazzoni, CTO, Bootlin
Embedded Linux and Kernel engineering
https://bootlin.com


More information about the buildroot mailing list