mirror of
https://github.com/flatcar/scripts.git
synced 2025-08-18 21:11:08 +02:00
coreos-devel/fero-client: fix grpc-sys-0.2.3 + glibc-2.32 compile issue
Signed-off-by: Thilo Fromm <thilo@kinvolk.io>
This commit is contained in:
parent
84cca56fbd
commit
d937cff9a7
@ -23,14 +23,27 @@ SLOT="0"
|
|||||||
|
|
||||||
IUSE=""
|
IUSE=""
|
||||||
|
|
||||||
DEPEND=">=dev-libs/protobuf-3.0.0"
|
DEPEND=">=dev-libs/protobuf-3.0.0
|
||||||
RDEPEND="${DEPEND}"
|
dev-util/cmake"
|
||||||
|
RDEPEND=">=dev-libs/protobuf-3.0.0"
|
||||||
|
|
||||||
src_unpack() {
|
src_unpack() {
|
||||||
cros-workon_src_unpack "$@"
|
cros-workon_src_unpack "$@"
|
||||||
cargo_src_unpack "$@"
|
cargo_src_unpack "$@"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
src_prepare() {
|
||||||
|
# fero-client uses the grpcio-sys-0.2.3 Rust crate (amond others, see CRATES)
|
||||||
|
# grpcio-sys-0.2.3 needs a patch to compile against >=glibc-2.30.
|
||||||
|
# The crates's sources are put in ECARGO_HOME so we need to change
|
||||||
|
# directories before applying the patch.
|
||||||
|
local cwd="$(pwd)"
|
||||||
|
cd "${ECARGO_HOME}"
|
||||||
|
eapply -p0 "${FILESDIR}/0001-gettid-glibc-2.30.patch"
|
||||||
|
eapply_user
|
||||||
|
cd "$cwd"
|
||||||
|
}
|
||||||
|
|
||||||
src_compile() {
|
src_compile() {
|
||||||
export CARGO_HOME="${ECARGO_HOME}"
|
export CARGO_HOME="${ECARGO_HOME}"
|
||||||
cargo build -v -j $(makeopts_jobs) $(usex debug "" --release) -p ${PN} \
|
cargo build -v -j $(makeopts_jobs) $(usex debug "" --release) -p ${PN} \
|
||||||
|
@ -0,0 +1,34 @@
|
|||||||
|
grpcio-sys-0.2.3 defines its own gettid() function which conflicts with gettid()
|
||||||
|
shipped with glibc-2.30 and above. So we only define that function if
|
||||||
|
glibc < 2.30.
|
||||||
|
|
||||||
|
Fixes:
|
||||||
|
grpcio-sys-0.2.3/grpc/src/core/lib/support/log_linux.c:42:13: error: conflicting types for 'gettid'
|
||||||
|
42 | static long gettid(void) { return syscall(__NR_gettid); }
|
||||||
|
| ^~~~~~
|
||||||
|
In file included from /usr/include/unistd.h:1187,
|
||||||
|
from grpcio-sys-0.2.3/grpc/src/core/lib/support/log_linux.c:40:
|
||||||
|
/usr/include/bits/unistd_ext.h:34:16: note: previous declaration of 'gettid' was here
|
||||||
|
34 | extern __pid_t gettid (void) __THROW;
|
||||||
|
| ^~~~~~
|
||||||
|
|
||||||
|
--- gentoo/grpcio-sys-0.2.3/grpc/src/core/lib/support/log_linux.c 2020-11-23 18:29:18.053038547 +0000
|
||||||
|
+++ gentoo/grpcio-sys-0.2.3/grpc/src/core/lib/support/log_linux.c 2020-11-23 18:32:39.502926134 +0000
|
||||||
|
@@ -39,7 +39,17 @@
|
||||||
|
#include <time.h>
|
||||||
|
#include <unistd.h>
|
||||||
|
|
||||||
|
+/* glibc-2.30 and above ship gettid */
|
||||||
|
+#define NEED_GETTID 1
|
||||||
|
+#if defined(__GLIBC_PREREQ)
|
||||||
|
+# if __GLIBC_PREREQ(2,30)
|
||||||
|
+# define NEED_GETTID 0
|
||||||
|
+# endif
|
||||||
|
+#endif
|
||||||
|
+
|
||||||
|
+#if NEED_GETTID
|
||||||
|
static long gettid(void) { return syscall(__NR_gettid); }
|
||||||
|
+#endif
|
||||||
|
|
||||||
|
void gpr_log(const char *file, int line, gpr_log_severity severity,
|
||||||
|
const char *format, ...) {
|
Loading…
x
Reference in New Issue
Block a user