python3-grpcio: add bbappend 46/29746/2
authorScott Murray <scott.murray@konsulko.com>
Tue, 19 Mar 2024 02:23:51 +0000 (22:23 -0400)
committerScott Murray <scott.murray@konsulko.com>
Tue, 19 Mar 2024 11:44:32 +0000 (11:44 +0000)
Add bbappend to tweak the LDFLAGS used when building for RISC-V
so that libatomic gets linked as is required. See the comment in
the .inc file for more information.

Bug-AGL: SPEC-5011

Change-Id: I90f839be8cbaf527c11508476ab6dd5ab6eb8799
Signed-off-by: Scott Murray <scott.murray@konsulko.com>
Reviewed-on: https://gerrit.automotivelinux.org/gerrit/c/AGL/meta-agl-demo/+/29746
Tested-by: Jenkins Job builder account
ci-image-build: Jenkins Job builder account
ci-image-boot-test: Jenkins Job builder account

recipes-devtools/python/python3-grpcio_1.45.0.bbappend [new file with mode: 0644]
recipes-devtools/python/python3-grpcio_agldemo.inc [new file with mode: 0644]

diff --git a/recipes-devtools/python/python3-grpcio_1.45.0.bbappend b/recipes-devtools/python/python3-grpcio_1.45.0.bbappend
new file mode 100644 (file)
index 0000000..26036fc
--- /dev/null
@@ -0,0 +1 @@
+require ${@bb.utils.contains('AGL_FEATURES', 'agldemo', 'python3-grpcio_agldemo.inc', '', d)}
diff --git a/recipes-devtools/python/python3-grpcio_agldemo.inc b/recipes-devtools/python/python3-grpcio_agldemo.inc
new file mode 100644 (file)
index 0000000..8236a34
--- /dev/null
@@ -0,0 +1,17 @@
+# For some reason the atomics presence test in the grpc build
+# passes on RISC-V even though linking with libatomic is actually
+# needed. There are some mentions on the web of some atomics
+# support incorrectly being in the libc stub on RISC-V, so a
+# fix could be tracking down if that is the case and if it has
+# been fixed in newer libc. Otherwise, the compile test in grpc
+# will need to be changed to some other function that is known to
+# only be in libatomic on RISC-V.
+#
+# The next problem is that setting GRPC_PYTHON_LDFLAGS to any value
+# ends up not adding linking with pthread due to the way the logic
+# is set up, so we need to actually add it explicitly. The upstream
+# recipe seems slightly broken in this respect.
+
+GRPC_LDFLAGS ?= " -lpthread"
+GRPC_LDFLAGS:append:riscv64 = " -latomic"
+export GRPC_PYTHON_LDFLAGS = "${GRPC_LDFLAGS}"