ModemManager 1.14.2 Setup - undefined symbol error and/or '' was moved error

Aleksander Morgado aleksander at
Thu Oct 22 08:17:20 UTC 2020

Hey Dani

> And repeated the installation with
> --libdir=/usr/lib/x86_64-linux-gnu/

Yes, this is the correct way to do it in Ubuntu.

i.e. ./configure --prefix=/usr --libdir=/usr/lib/x86_64-linux-gnu/


> CC       mm-helper-enums-types.lo
> /usr/bin/grep: /usr/lib/ No such file or directory
> /usr/bin/sed: can't read /usr/lib/ No such file or directory
> libtool:   error: '/usr/lib/' is not a valid libtool archive

That is attempting to locate libraries from your previous install? I
assume there was some "uninstall" not done properly.

If you want a clean uninstall from /usr/lib, try to do the steps from
scratch again using --libdir=/usr/lib (the wrong path), e.g. for all
libmbim, libqmi and ModemManager:
$ ./configure --prefix=/usr --libdir=/usr/lib && make -j8 && sudo make install
Once you have installed all, you can uninstall starting from
ModemManager, then libqmi, then libmbim:
$ sudo make uninstall

That previous command will also remove things like qmicli or the
actual MM daemon, but don't worry.

And then, repeat the process but using the correct libdir in Ubuntu, e.g.:
$ ./configure --prefix=/usr --libdir=/usr/lib/x86_64-linux-gnu/ &&
make -j8 && sudo make install

Anyway, your original problem where you installed in /usr/lib and then
MM or other programs were reporting missing symbols are because Ubuntu
will look first for libraries in /usr/lib/x86_64-linux-gnu/ and if
they're not found it will look for them in /usr/lib. In your case, the
system-installed library was in /usr/lib/x86_64-linux-gnu/ already so
the program didn't try to load the new one you had in /usr/lib. To
solve this, either install with libdir in /usr/lib/x86_64-linux-gnu/
as explained, or you could also run your programs manually specifying
LD_LIBRARY_PATH=/usr/lib to override the system default.


More information about the ModemManager-devel mailing list