I am trying to use my new Pi 4 to run a Rust executable that I compiled on Linux but it will not run because it needs libc 2.29 and it appears that buster comes with libc 2.28. Is it possible to update the version of libc6 and if it is then what is the procedure to do so?
1 Answers
If glibc is literally the only library your executable uses, just force the dynamic linker to use the right file with LD_PRELOAD.
However, what I expect to happen is that your program uses other libraries, and Buster versions of those libraries in turn use glibc 2.28. It could so happen that those libs will work with glibc 2.29, but I wouldn't bet on it.
As you won't be able to link against two different versions of glibc at the same time, you'll have to recompile all the libs your program uses with glibc 2.29, and then load them all with LD_PRELOAD. This may well turn to be a non-viable approach in practice, considering the number of dependencies (including recursive ones!) you'll have to consider.
You should really try to use the glibc 2.28 when compiling your app.
- 28,277
- 6
- 54
- 147