All of lore.kernel.org
 help / color / mirror / Atom feed
From: Francis Laniel <flaniel@linux.microsoft.com>
To: buildroot@buildroot.org
Cc: Francis Laniel <flaniel@linux.microsoft.com>,
	Angelo Compagnucci <angelo.compagnucci@gmail.com>,
	bradford barr <bradford@density.io>,
	Thomas Petazzoni <thomas.petazzoni@bootlin.com>
Subject: [Buildroot] [RFC PATCH v1 0/2] Fix sysdig build errors
Date: Thu,  7 Apr 2022 19:24:23 +0100	[thread overview]
Message-ID: <20220407182425.194001-1-flaniel@linux.microsoft.com> (raw)

Hi.


First of all, I hope you are fine and the same for your relatives.

When building a system with recent kernel with BR2_PACKAGE_SYSDIG, I got some
compilation errors when building sysdig libsinsp:
.../sysdig-0.23.1/userspace/libsinsp/chisel.cpp:99:30: error: elements of array ‘const luaL_reg ll_sysdig []’ have incomplete type
   99 | const static struct luaL_reg ll_sysdig [] =
After that, an error when building modules occurs:
.../sysdig-0.23.1/driver/ppm.h:62:18: error: field ‘last_print_time’ has incomplete type
   62 |  struct timespec last_print_time;
And finally an error during link time occurs:
.../sysdig-0.23.1/userspace/libsinsp.a(cri.grpc.pb.cc.o): undefined reference to symbol '_ZN4absl12lts_202103245MutexD1Ev'

Concerning the error in libsinsp, a patch was added to sysdig recipe.
This patch is based on Minikube patch, which is in turn based on sysdig
CMakeLists.txt PATCH_COMMAND [1, 2].
The modules errors were fixed upstream, so I bumped sysdig version to 0.27.1
[3, 4].
For the linking one, a patch already exist to fix this buggy behavior [5].

Sysdig 0.27.1 relies on tbb, so a recipe for this library was added.
Note that, this recipe was originally written by Bradford Barr and I just bumped
its version to suit sysdig case [6].

With the two patches applied, I was able to build and boot an image within qemu:
$ make qemu_x86_64_defconfig
$ make menuconfig
# Set glibc as library, enable c++, enable luajit and enable sysdig.
$ make linux-menuconfig
# Enable FTRACE
$ make -j$(nproc)
...
$ bash start-qemu.sh
...
Welcome to Buildroot
buildroot login: root
# insmod /lib/modules/5.15.18/extra/sysdig-probe.ko
sysdig_probe: loading out-of-tree module taints kernel.
sysdig_probe: driver loading, sysdig-probe 0.1.1dev
# sysdig --version
sysdig version 0.1.1dev

If you see any way to improve this contribution, feel free to share it!

Francis Laniel (1):
  package/sysdig: bump version to 0.27.1.

bradford barr (1):
  tbb: new package

 DEVELOPERS                                    |  1 +
 package/Config.in                             |  1 +
 ...ATCH_COMMAND-to-fix-lua-types-and-fu.patch | 82 +++++++++++++++++++
 ...gainst-libabseil-cpp-which-grpc-uses.patch | 45 ++++++++++
 package/sysdig/Config.in                      |  5 ++
 package/sysdig/sysdig.hash                    |  1 +
 package/sysdig/sysdig.mk                      |  7 +-
 .../0001-tbb-Enable-cross-compilation.patch   | 55 +++++++++++++
 package/tbb/Config.in                         | 16 ++++
 package/tbb/tbb.hash                          |  2 +
 package/tbb/tbb.mk                            | 39 +++++++++
 11 files changed, 253 insertions(+), 1 deletion(-)
 create mode 100644 package/sysdig/0001-libsinsp-Apply-PATCH_COMMAND-to-fix-lua-types-and-fu.patch
 create mode 100644 package/sysdig/0002-Link-against-libabseil-cpp-which-grpc-uses.patch
 create mode 100644 package/tbb/0001-tbb-Enable-cross-compilation.patch
 create mode 100644 package/tbb/Config.in
 create mode 100644 package/tbb/tbb.hash
 create mode 100644 package/tbb/tbb.mk


Best regards and thank you in advance for your reviews.

P.S.: If you are interested, this bug was spotted while trying to bump Minikube
kernel to 5.10.57 [7].

---
[1] https://github.com/kubernetes/minikube/commit/f036c279bc598cf59affb0fc538c017d83afb7ab
[2] https://github.com/draios/sysdig/commit/a064440394c93a7579dc6e1db13c8378d5eecd6f
[3] https://github.com/draios/sysdig/commit/938986890291c126f9b8f3a050bc3edc95fb6f5a
[4] https://github.com/draios/sysdig/commit/2691cbc66c7faa973333d65a69909be06be21c18
[5] https://github.com/hhoffstaette/portage/blob/8d047247719a15c5a63001f65ba348514706277d/dev-util/sysdig/files/0.27.1-grpc-absl-sync.patch
[6] https://patchwork.ozlabs.org/project/buildroot/patch/20170928235043.31891-2-bradford@density.io/
[7] https://github.com/kubernetes/minikube/pull/12707
-- 
2.25.1
_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot

             reply	other threads:[~2022-04-07 18:31 UTC|newest]

Thread overview: 7+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-04-07 18:24 Francis Laniel [this message]
2022-04-07 18:24 ` [Buildroot] [RFC PATCH v1 1/2] tbb: new package Francis Laniel
2022-04-09 13:42   ` Arnout Vandecappelle
2022-04-11 18:06     ` Francis Laniel
2022-04-07 18:24 ` [Buildroot] [RFC PATCH v1 2/2] package/sysdig: bump version to 0.27.1 Francis Laniel
2022-04-09 14:40   ` Arnout Vandecappelle
2022-04-11 18:11     ` Francis Laniel

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20220407182425.194001-1-flaniel@linux.microsoft.com \
    --to=flaniel@linux.microsoft.com \
    --cc=angelo.compagnucci@gmail.com \
    --cc=bradford@density.io \
    --cc=buildroot@buildroot.org \
    --cc=thomas.petazzoni@bootlin.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.