Closed momijizukamori closed 1 year ago
Try this: rm -rf libs && ./build.sh
.
Thanks, that did the trick! And I was able to compile my forked codebase as well :)
Okay, building is working, but running ./dist.sh and copying over the dist folder to my device gives me a build that crashes as soon as I try to run it, with the following errors in info.log:
./plato: /lib/libm.so.6: version `GLIBC_2.35' not found (required by ./plato)
./plato: /lib/libm.so.6: version `GLIBC_2.27' not found (required by ./plato)
./plato: /lib/libc.so.6: version `GLIBC_2.32' not found (required by ./plato)
./plato: /lib/libc.so.6: version `GLIBC_2.27' not found (required by ./plato)
./plato: /lib/libc.so.6: version `GLIBC_2.25' not found (required by ./plato)
./plato: /lib/libc.so.6: version `GLIBC_2.29' not found (required by ./plato)
./plato: /lib/libc.so.6: version `GLIBC_2.33' not found (required by ./plato)
./plato: /lib/libc.so.6: version `GLIBC_2.28' not found (required by ./plato)
./plato: /lib/libc.so.6: version `GLIBC_2.34' not found (required by ./plato)
/usr/lib/gcc-cross/arm-linux-gnueabihf/11/../../../../arm-linux-gnueabihf/bin
It seems you're compiling using GCC 11. That would explain the GLIBC version mismatches.
Okay, after staring at a bunch of compiler errors for a while, I finally figured it out - I was using the toolchain linked in #292 after I had failed trying to build with the one from the Kobo repos, but the link there is bad - it links to the non-hf toolchain, not the hf one, and thus doesn't actually provide a version of arm-linux-gnueabihf-gcc
to use, just arm-linux-gnueabi-gcc
, so cargo falls back on system binaries, and the only installable arm-linux-gnueabihf-gcc
version on Ubuntu 22.04 is for GCC 11. Once I cleaned up the failed builds and put the right toolchain first in my path, it worked like a charm.
I used to be able to successfully build Plato using the Docker method - unfortunately, after some time away from dev work, I came back and discovered that both the regular method and the last version of the Dockerfile available (with some tweaks so it'll actually build) fail with the same error. I've got all the packages listed installed, and I'm using the
gcc-linaro-4.9.4-2017.01-x86_64_arm-linux-gnueabi
toolchain, which is on my path. Here's the output of the build:Unfortunately, as I'm working on something that uses Plato's code as a base, I can't just use a precompiled binary (though, to be clear, this output is from trying to build the unmodified Plato codebase - when I wasn't able to compile my own code, I went back to the original to see if that built, only to find it didn't)