Andrew Geissler | 7e0e3c0 | 2022-02-25 20:34:39 +0000 | [diff] [blame] | 1 | From 56984b19469ff5b69b8b8e180dc75cf825bb1123 Mon Sep 17 00:00:00 2001 |
| 2 | From: Khem Raj <raj.khem@gmail.com> |
| 3 | Date: Tue, 25 Jan 2022 22:28:11 -0800 |
| 4 | Subject: [PATCH] check for mips targets for stat.st_dev definitions |
| 5 | |
| 6 | st_dev has wrong type in glibc when using mips/O32 ABI |
| 7 | its type should be dev_t but it is set to unsigned long int |
| 8 | this is specific issue on mips/o32 ABI in glibc for details |
| 9 | |
| 10 | See |
| 11 | https://sourceware.org/bugzilla/show_bug.cgi?id=17786 |
| 12 | |
| 13 | currently the build fails on mips archirecture with type mismatches |
| 14 | |
| 15 | Fixes |
| 16 | error[E0308]: mismatched types |
| 17 | * --> /usr/src/debug/python3-pyruvate/1.1.2-r0/cargo_home/bitbake/libsystemd-0.4.1/src/logging.rs:296:25 |
| 18 | | |
| 19 | 296 | device: stat.st_dev, |
| 20 | | ^^^^^^^^^^^ expected `u64`, found `u32` |
| 21 | |
| 22 | Upstream-Status: Submitted [https://github.com/lucab/libsystemd-rs/pull/103] |
| 23 | Signed-off-by: Khem Raj <raj.khem@gmail.com> |
| 24 | --- |
| 25 | src/logging.rs | 3 +++ |
| 26 | 1 file changed, 3 insertions(+) |
| 27 | |
| 28 | diff --git a/src/logging.rs b/src/logging.rs |
| 29 | index a68c36a..6e374ae 100644 |
| 30 | --- a/src/logging.rs |
| 31 | +++ b/src/logging.rs |
| 32 | @@ -292,7 +292,10 @@ impl JournalStream { |
| 33 | pub fn from_fd<F: AsRawFd>(fd: F) -> std::io::Result<Self> { |
| 34 | nix::sys::stat::fstat(fd.as_raw_fd()) |
| 35 | .map(|stat| JournalStream { |
| 36 | + #[cfg(not(target_arch = "mips"))] |
| 37 | device: stat.st_dev, |
| 38 | + #[cfg(target_arch = "mips")] |
| 39 | + device: stat.st_dev as u64, |
| 40 | inode: stat.st_ino, |
| 41 | }) |
| 42 | .map_err(std::io::Error::from) |
| 43 | -- |
| 44 | 2.35.0 |
| 45 | |