Description
jj fails to build on big-endian hosts.
Steps to Reproduce the Problem
Try to build jj on a big-endian host, watch it fail because e.g. put_i16_be is not defined.
Expected Behavior
The build ought to succeed.
Actual Behavior
Compiling serde_bser v0.4.0
error[E0599]: no method named `put_i16_be` found for struct `Vec<u8>` in the current scope
--> /home/builder/work/devel/jj/work/vendor/serde_bser-0.4.0/src/ser/mod.rs:136:22
|
136 | self.scratch.put_i16_be(v);
| ^^^^^^^^^^
|
help: there is a method `put_i16_le` with a similar name
|
136 - self.scratch.put_i16_be(v);
136 + self.scratch.put_i16_le(v);
|
error[E0599]: no method named `put_i32_be` found for struct `Vec<u8>` in the current scope
--> /home/builder/work/devel/jj/work/vendor/serde_bser-0.4.0/src/ser/mod.rs:146:22
|
146 | self.scratch.put_i32_be(v);
| ^^^^^^^^^^
|
help: there is a method `put_i32_le` with a similar name
|
146 - self.scratch.put_i32_be(v);
146 + self.scratch.put_i32_le(v);
|
error[E0599]: no method named `put_i64_be` found for struct `Vec<u8>` in the current scope
--> /home/builder/work/devel/jj/work/vendor/serde_bser-0.4.0/src/ser/mod.rs:156:22
|
156 | self.scratch.put_i64_be(v);
| ^^^^^^^^^^
|
help: there is a method `put_i64_le` with a similar name
|
156 - self.scratch.put_i64_be(v);
156 + self.scratch.put_i64_le(v);
|
error[E0599]: no method named `put_f64_be` found for struct `Vec<u8>` in the current scope
--> /home/builder/work/devel/jj/work/vendor/serde_bser-0.4.0/src/ser/mod.rs:258:22
|
258 | self.scratch.put_f64_be(v);
| ^^^^^^^^^^
|
help: there is a method `put_f64_le` with a similar name
|
258 - self.scratch.put_f64_be(v);
258 + self.scratch.put_f64_le(v);
|
For more information about this error, try `rustc --explain E0599`.
error: could not compile `serde_bser` (lib) due to 4 previous errors
The reason appears that the vendored version of serde_bser does not
have this particular pull request included: facebook/watchman#1238.
I'll admit that I'm a bit confused by the versioning of the serde_bser crate, as HEAD
at the source is 0.4.0 and includes this fix, and the same version (0.4.0) is apparently
used by jj, but there this fix is not included.
Specifications
- Platform: Build issue experienced on NetBSD/macppc 11.0 w/ rust 1.97.0.
- Version: jj version 0.44.
Description
jjfails to build on big-endian hosts.Steps to Reproduce the Problem
Try to build
jjon a big-endian host, watch it fail because e.g.put_i16_beis not defined.Expected Behavior
The build ought to succeed.
Actual Behavior
The reason appears that the vendored version of
serde_bserdoes nothave this particular pull request included: facebook/watchman#1238.
I'll admit that I'm a bit confused by the versioning of the
serde_bsercrate, as HEADat the source is 0.4.0 and includes this fix, and the same version (0.4.0) is apparently
used by
jj, but there this fix is not included.Specifications