diff options
author | Khem Raj <raj.khem@gmail.com> | 2022-01-25 22:36:22 -0800 |
---|---|---|
committer | Khem Raj <raj.khem@gmail.com> | 2022-01-31 08:15:16 -0800 |
commit | 2c90fd26abae5367683dff3945634b781de53714 (patch) | |
tree | c7f8a9af23e4eda01fc647489e0233c7357dca2c | |
parent | 7c5dbbc9ef632cfe2fb913bf166c9a36812d96de (diff) | |
download | meta-openembedded-contrib-2c90fd26abae5367683dff3945634b781de53714.tar.gz |
python3-pyruvate: Fix build with mips
mips/glibc systems have interesting problem where dev_t is not defined
properly for O32 ABI [1], therefore address it for libsystemd crate, it
works fine for musl
Fixes
error[E0308]: mismatched types
--> /usr/src/debug/python3-pyruvate/1.1.2-r0/cargo_home/bitbake/libsystemd-0.4.1/src/logging.rs:296:25
|
296 | device: stat.st_dev,
| ^^^^^^^^^^^ expected `u64`, found `u32`
[1] https://sourceware.org/bugzilla/show_bug.cgi?id=17786
Signed-off-by: Khem Raj <raj.khem@gmail.com>
Cc: Tim Orling <tim.orling@konsulko.com>
Signed-off-by: Trevor Gamblin <trevor.gamblin@windriver.com>
-rw-r--r-- | meta-python/recipes-devtools/python/python3-pyruvate/0001-check-for-mips-targets-for-stat.st_dev-definitions.patch | 45 | ||||
-rw-r--r-- | meta-python/recipes-devtools/python/python3-pyruvate_1.1.2.bb | 2 |
2 files changed, 47 insertions, 0 deletions
diff --git a/meta-python/recipes-devtools/python/python3-pyruvate/0001-check-for-mips-targets-for-stat.st_dev-definitions.patch b/meta-python/recipes-devtools/python/python3-pyruvate/0001-check-for-mips-targets-for-stat.st_dev-definitions.patch new file mode 100644 index 0000000000..f41e6cf116 --- /dev/null +++ b/meta-python/recipes-devtools/python/python3-pyruvate/0001-check-for-mips-targets-for-stat.st_dev-definitions.patch @@ -0,0 +1,45 @@ +From 56984b19469ff5b69b8b8e180dc75cf825bb1123 Mon Sep 17 00:00:00 2001 +From: Khem Raj <raj.khem@gmail.com> +Date: Tue, 25 Jan 2022 22:28:11 -0800 +Subject: [PATCH] check for mips targets for stat.st_dev definitions + +st_dev has wrong type in glibc when using mips/O32 ABI +its type should be dev_t but it is set to unsigned long int +this is specific issue on mips/o32 ABI in glibc for details + +See +https://sourceware.org/bugzilla/show_bug.cgi?id=17786 + +currently the build fails on mips archirecture with type mismatches + + Fixes + error[E0308]: mismatched types +* --> /usr/src/debug/python3-pyruvate/1.1.2-r0/cargo_home/bitbake/libsystemd-0.4.1/src/logging.rs:296:25 + | + 296 | device: stat.st_dev, + | ^^^^^^^^^^^ expected `u64`, found `u32` + +Upstream-Status: Submitted [https://github.com/lucab/libsystemd-rs/pull/103] +Signed-off-by: Khem Raj <raj.khem@gmail.com> +--- + src/logging.rs | 3 +++ + 1 file changed, 3 insertions(+) + +diff --git a/src/logging.rs b/src/logging.rs +index a68c36a..6e374ae 100644 +--- a/src/logging.rs ++++ b/src/logging.rs +@@ -292,7 +292,10 @@ impl JournalStream { + pub fn from_fd<F: AsRawFd>(fd: F) -> std::io::Result<Self> { + nix::sys::stat::fstat(fd.as_raw_fd()) + .map(|stat| JournalStream { ++ #[cfg(not(target_arch = "mips"))] + device: stat.st_dev, ++ #[cfg(target_arch = "mips")] ++ device: stat.st_dev as u64, + inode: stat.st_ino, + }) + .map_err(std::io::Error::from) +-- +2.35.0 + diff --git a/meta-python/recipes-devtools/python/python3-pyruvate_1.1.2.bb b/meta-python/recipes-devtools/python/python3-pyruvate_1.1.2.bb index dad18b78c2..14142fdb67 100644 --- a/meta-python/recipes-devtools/python/python3-pyruvate_1.1.2.bb +++ b/meta-python/recipes-devtools/python/python3-pyruvate_1.1.2.bb @@ -22,6 +22,8 @@ RUSTFLAGS:append:mipsel = " --cfg crossbeam_no_atomic_64" RUSTFLAGS:append:powerpc = " --cfg crossbeam_no_atomic_64" RUSTFLAGS:append:riscv32 = " --cfg crossbeam_no_atomic_64" +SRC_URI:append:mips = " file://0001-check-for-mips-targets-for-stat.st_dev-definitions.patch;patchdir=../cargo_home/bitbake/libsystemd-0.4.1/" + SRC_URI += " \ crate://crates.io/aho-corasick/0.7.18 \ crate://crates.io/atty/0.2.14 \ |