ip: relocation error: /snap/mysnap/x3/lib/x86_64-linux-gnu/libdl.so.2: symbol _dl_catch_error, version GLIBC_PRIVATE not defined in file libc.so.6 with link time reference
Does anyone know if this is an expected outcome?
The snap has been installed in a Ubuntu Core on KVM.
The same command executes correctly when launched on that system directly from the shell.
It also executes correctly when launched from inside the shell of the snap environment. That is after calling
Well, the fact is this. I have a program in Vala. xenial has an older version of valac than the one I use. Precisely, it has package âvalacâ at version 0.30 and package âvalac-0.30-vapiâ, while in my development environment I have version 0.36 of both.
So, in my environment, my code builds ok. If I use âsnapcraft cleanbuildâ it pulls a xenial image and my code does not build.
Someone suggested me to add a part for building valac and its vapi files at the version I need. It sounds a bit hard for me to do that.
How exactly a snap built on a newer system with snapcraft is not a âproperâ snap?
Itâs because of libc. Newer releases of Ubuntu have a newer libc than the one in Xenial. libc typically does a good job of maintaining backward-compatibility (e.g. something built against an older libc often runs fine against a newer version) but the other way often sees breakage: building against a newer libc than that which you run against (e.g. building against the libc on 17.10 but then running against the libc in 16.04, which is what you do in a snap) often does not result in happiness.
I succeeded in adding a part for building the newer âvalacâ and installing it in the host before building the rest and staging and priming it. This way I can build against the libc on xenial, with âsnapcraft cleanbuildâ, and it works.
Thank you for the explanation.