Beta 10.3.10293.57074 missing dependency libmvec

Issue #232 invalid
Dale Scheetz created an issue

Downloaded and attempted to run Beta release on Debian Jessie system. Got the following:

root@DwarfStar:/home/dwarf/SphereFace# ./sphereFACE

./sphereFACE: error while loading shared libraries: libmvec.so.1: cannot open shared object file: No such file or directory

What package supplies this dependency?

Thanks, Dale

Comments (9)

  1. Riot

    Closing as invalid because a missing standard library on your machine is not a bug in sphereFACE - but we can try to help you diagnose the problem at your end anyway.

    libmvec is part of glibc, required for SIMD and OpenMP - in debian-like distros it is installed as part of the libc6 package, the universal runtime that almost every linux program requires to run. It was apparently added in version 2.22, in early 2015, so you may be running a (very) out of date system? If you're using a debian-ish system, could you check what package version you're using and from what repo? I don't think even debian stable has a version that old, although I may be wrong.

    Unfortunately we can't offer a clean workaround at our end because libmvec is pulled in dynamically by libm, even if the remainder is linked statically (and static linking for these kinds of things is heavily discouraged on linux systems anyway). If it's necessary to keep the system on an old version for some reason, the simplest thing to do would be to get the latest libc6 and libmvec dynamic libs (.so files) from a more up to date debian repo, and drop them in the same directory as the executable, and then call it with LIBRARY_PATH=./ ./sphereFACE to make it use the locally copied versions. Other libraries it relies on may still be out of date and cause it to break, however.

  2. Dale Scheetz reporter

    As I reported in the original bug report. I am running Debian 8.1. Yes the latest is 8.6 but ...

    dpkg -s says libc6 is version 2.19-18+deb8u4

    So I guess that's it.

    A proper list of these dependancies would be useful, but the real problem is that this is the system I have been beta testing on since the first beta release. It was brand new then and all releases have worked on this older version of libc6, so something major changed in the long delay between the last release and this one. So, your software is going to be bleeding edge, while Steam can seem to get a 64 bit linux version of their software delivered. Sounds like a conspiracy to keep me from playing sphereFACE ;-)

    Your work around suggests both libc6 and libm. While I can find dpkg information on libc6, libm is not a package (unless I have the name wrong...)and doesn't seem to be available.

  3. Riot

    Sorry, I should have made myself clearer: as I said "in debian-like distros it is installed as part of the libc6 package" - it's libc6 that provides it itself, and hence we reasonably expect it to be present on any functional modern machine.

    There's no list of external dependencies because there shouldn't be any that aren't absolutely universal for all desktop systems - we statically link everything except a few core system libraries - and if for some reason the machine is an oddity and is missing one of those, then the error message usually spells out exactly what file is missing (as in your report), and the user can investigate how to get it for their peculiar system.

    It is unfortunate that updates to things like libc6 render our software backwards-incompatible with older versions, but it's a necessary evil if we want better optimisations and efficiency improvements - it's a compromise, and we choose to provide better performance for the same hardware - especially when the software is free to upgrade.

  4. Dale Scheetz reporter

    That makes Debian stable unusable. So, I suspect I must run testing to get the "latest" libc6. I don't have any problem with that, except for the assumption that I would somehow just know this to be the case, after doing all my other Beta testing with Debian Stable. Even from what you just said, I might assume that either I have a "debian like distro" or Debian stable isn't one of those. In either case, I have been crystal clear about what version of Debian I am running, and you talk as though I haven't even mentioned what Linux version I am running. All I'm asking for is a bit of information before hand, as in a list of release versions that this will run on. I would be interested to know what stock version of Debian you built the last beta on. I would gladly install that version.

    Luck,

    Dale

  5. Riot

    That's fair enough Dale, I had missed you mentioning Jessie in your initial post. The thing is, we don't specifically target any particular release of any particular distribution - we ourselves build mostly on Debian Testing systems, although some of our contributors use Ubuntu, Arch or others; generally we all use rolling releases, though, which tend to be more or less up to date with the tip of the stable versions of libc, stdc++ and gcc / g++. Right now that's g++6 and the version of libc that links against.

    Until this thread, it hadn't actually come to my attention that there are distributions currently considered current that use an incompatible version of libc6 - we haven't at any point made a conscious choice to move to a newer version, we just build against what's available on our dev machines and that doesn't normally produce any backwards compatibility problems. That's why we have no list of "recommended" distributions - because honestly, we haven't looked into it at all. It seems that it was a mistake on our part to assume that global compatibility.

    Now I know there's a "maximum" version we should be supporting for universal accessibility (2.19 apparently?), I'm going to look into inspecting the versions of our link symbols and seeing if we can specify an earlier link version artificially instead. It may not be possible in this case, but we'll see soon.

  6. Dale Scheetz reporter

    OK I'll try to get a Debian testing install done this weekend so I can test the latest release.

  7. Dale Scheetz reporter

    I also have a recent install of Kali Linux. I'll see what version of Libc6 is on that system and maybe do some testing there...

  8. Log in to comment