Closed th0ma7 closed 1 year ago
These errors all come from mozjpeg, which is a C library that includes platform-specific assembly. I've tweaked mozjpeg's build script for powerpc and arm-that-needs-neon flag. Maybe it will work? I don't have a setup to test it.
Run cargo update
to get the latest version.
Also dssim 3.2.4 doesn't use mozjpeg by default any more. It uses a pure-Rust jpeg decoder, which may be easier to build. If you're not seeing the 3.2.4 release, it means your Rust version is unsupported. Run rustup update
or if you're using Debian's Rust, uninstall it and never use Debian's Rust.
Thnx, this is great! Tested 3.2.4 release and most of it is now solved :)
only ppc remaining with this new error build-qoriq-6.1.log:
Compiling foreign-types v0.5.0
Compiling lcms2 v5.5.0
Compiling load_image v3.0.1
error[E0277]: the trait bound `rgb::RGB<u16>: pixel_format::LcmsPixelFormat` is not satisfied
--> /home/spksrc/gstreamer/spksrc/distrib/cargo/registry/src/github.com-1ecc6299db9ec823/load_image-3.0.1/src/convert.rs:60:13
|
60 | self.apply_profile(Profile::new_icc(profiles::CMYK).unwrap())
| ^^^^ ------------- required by a bound introduced by this call
| |
| the trait `pixel_format::LcmsPixelFormat` is not implemented for `rgb::RGB<u16>`
|
= help: the trait `pixel_format::LcmsPixelFormat` is implemented for `rgb::RGB<u8>`
note: required for `[pixel_format::CMYK]` to implement `Convertible<rgb::RGB<u16>>`
--> /home/spksrc/gstreamer/spksrc/distrib/cargo/registry/src/github.com-1ecc6299db9ec823/load_image-3.0.1/src/convert.rs:94:20
|
94
| impl<T, Converted> Convertible<Converted> for [T]
| ^^^^^^^^^^^^^^^^^^^^^^ ^^^
error[E0277]: the trait bound `rgb::RGB<u16>: pixel_format::LcmsPixelFormat` is not satisfied
--> /home/spksrc/gstreamer/spksrc/distrib/cargo/registry/src/github.com-1ecc6299db9ec823/load_image-3.0.1/src/convert.rs:59:48
|
59 | converted = profile.and_then(|profile| self.apply_profile(profile)).or_else(||{
| ^^^^ ------------- required by a bound introduced by this call
| |
| the trait `pixel_format::LcmsPixelFormat` is not implemented for `rgb::RGB<u16>`
|
= help: the trait `pixel_format::LcmsPixelFormat` is implemented for `rgb::RGB<u8>`
note: required for `[pixel_format::CMYK]` to implement `Convertible<rgb::RGB<u16>>`
--> /home/spksrc/gstreamer/spksrc/distrib/cargo/registry/src/github.com-1ecc6299db9ec823/load_image-3.0.1/src/convert.rs:94:20
|
94 | impl<T, Converted> Convertible<Converted> for [T]
...
Ooof. There's #[cfg(target_endian = "little")]
in the code.
I've removed the conditional endian code. Run cargo update
and it should compile. Maaaybe it will even work. Or CMYK JPEGs and 16-bit PNGs may be broken on big-endian PPC. Sadly, all my big endian Macs are long gone.
Success :) That is really awesome! Thnx a lot! build-qoriq-6.1.log
I've been trying to add
dssim
art of my integration project for providing gstreamer https://github.com/SynoCommunity/spksrc/pull/5298I've noticed that it fails to build on some archs, namely armv5, armv7, armv7l and ppc. On the other hand it builds fine on i686, x86_64 and aarch64.
I suspect I have to disable
neon
andsimd
from the build process but unsure how to do that.Here is the log output I get on armv7 which seems to point to
neon
acceleration :On armv5 the error is somewhat different but also pointing toward
neon
:While ppc point to
simd
: