Awesome: Undefined reference to dlclose@@GLIBC_2.2.5

Created on 19 Mar 2017  Ā·  2Comments  Ā·  Source: awesomeWM/awesome

Output of awesome --version:

N/A problem with building. Happens with Awesome 4.1, also did with 4.0 a few days ago.

I'm on Linux Mint 18.1

How to reproduce the issue:

  1. download Awesome 4.1 tar.bz2
  2. tar xvfj awesome-4.1.tar.bz2
  3. cd awesome-4.1
  4. make

Actual result:

Running cmake…
-- git -> /usr/bin/git
-- asciidoc -> /usr/bin/asciidoc
-- xmlto -> /usr/bin/xmlto
-- gzip -> /bin/gzip
-- ldoc not found.
-- ldoc.lua not found.
-- Not generating API documentation. Missing: ldoc.
-- convert -> /usr/bin/convert
-- Using version from /home/jade/src/awesome-4.1/.version_stamp: v4.1
-- Checking for module 'glib-2.0'
--   Found glib-2.0, version 2.48.2
-- Checking for module 'gdk-pixbuf-2.0'
--   Found gdk-pixbuf-2.0, version 2.32.2
-- Checking for module 'cairo'
--   Found cairo, version 1.14.6
-- Checking for module 'x11'
--   Found x11, version 1.6.3
-- Checking for module 'xcb-cursor'
--   Found xcb-cursor, version 0.1.1
-- Checking for module 'xcb-randr'
--   Found xcb-randr, version 1.11.1
-- Checking for module 'xcb-xtest'
--   Found xcb-xtest, version 1.11.1
-- Checking for module 'xcb-xinerama'
--   Found xcb-xinerama, version 1.11.1
-- Checking for module 'xcb-shape'
--   Found xcb-shape, version 1.11.1
-- Checking for module 'xcb-util>=0.3.8'
--   Found xcb-util, version 0.4.0
-- Checking for module 'xcb-keysyms>=0.3.4'
--   Found xcb-keysyms, version 0.4.0
-- Checking for module 'xcb-icccm>=0.3.8'
--   Found xcb-icccm, version 0.4.1
-- Checking for module 'xcb-xkb'
--   Found xcb-xkb, version 1.11.1
-- Checking for module 'xkbcommon'
--   Found xkbcommon, version 0.5.0
-- Checking for module 'xkbcommon-x11'
--   Found xkbcommon-x11, version 0.5.0
-- Checking for module 'cairo-xcb'
--   Found cairo-xcb, version 1.14.6
-- Checking for module 'libstartup-notification-1.0>=0.10'
--   Found libstartup-notification-1.0, version 0.12
-- Checking for module 'xproto>=7.0.15'
--   Found xproto, version 7.0.31
-- Checking for module 'libxdg-basedir>=1.0.0'
--   Found libxdg-basedir, version 1.2.0
-- Checking for module 'xcb-xrm'
--   Found xcb-xrm, version 1.2
-- checking for execinfo -- found
-- checking for round -- in libm
-- busted not found.
-- luacheck not found.
-- Package version will be set to 4.1.0.0.
-- rpmbuild -> /usr/bin/rpmbuild
-- rpmbuild found, enabling RPM for the 'package' target
-- dpkg -> /usr/bin/dpkg
-- dpkg found, enabling DEB for the 'package' target
-- Configuring done
-- Generating done
-- Build files have been written to: /home/jade/src/awesome-4.1/.build-starchild-x86_64-linux-gnu-5.4.0
Running make Makefile…
Building…
[  0%] Built target lgi-check
[  3%] Built target generate_awesomerc
[  5%] Built target generated_sources
[  6%] Linking C executable awesome
/usr/bin/ld: /usr/local/lib/liblua.a(loadlib.o): undefined reference to symbol 'dlclose@@GLIBC_2.2.5'
//lib/x86_64-linux-gnu/libdl.so.2: error adding symbols: DSO missing from command line
collect2: error: ld returned 1 exit status
CMakeFiles/awesome.dir/build.make:1112: recipe for target 'awesome' failed
make[3]: *** [awesome] Error 1
CMakeFiles/Makefile2:100: recipe for target 'CMakeFiles/awesome.dir/all' failed
make[2]: *** [CMakeFiles/awesome.dir/all] Error 2
Makefile:149: recipe for target 'all' failed
make[1]: *** [all] Error 2
Makefile:27: recipe for target 'cmake-build' failed
make: *** [cmake-build] Error 2

Expected result:

A clean exit from CMake, ready for me to make install


I have searched around for this issue and it did come up once in #361 so I tried running CMAKE_ARGS="-DLUA_LIBRARY=/usr/local/lib/liblua.a\;dl" make but then I get:

...
Running make Makefile…
Building…
[  0%] Built target lgi-check
[  3%] Built target generate_awesomerc
[  5%] Built target generated_sources
make[3]: *** No rule to make target 'dl', needed by 'awesome'.  Stop.
CMakeFiles/Makefile2:100: recipe for target 'CMakeFiles/awesome.dir/all' failed
make[2]: *** [CMakeFiles/awesome.dir/all] Error 2
Makefile:149: recipe for target 'all' failed
make[1]: *** [all] Error 2
Makefile:27: recipe for target 'cmake-build' failed
make: *** [cmake-build] Error 2

I also saw mentioned some issues with having multiple versions of Lua installed, which I did. I removed all but 5.3 but nothing changed. I then removed 5.3 and tried 5.1 but got the same issue (I have 5.1 still installed now).

In a wild guess, as per #361 mentioning Lua 5.3 using .a instead of .so, I made /usr/local/lib/liblua.so a link to /usr/local/lib/liblua.a but again nothing changed.

Unfortunately I've never worked on the development side of Makefiles so I don't know how to diagnose what's going on.

Most helpful comment

The problem is due to:

  • Static libraries do not carry dependency information
  • CMake's FindLua does not detect a statically built Lua depending on libdl.

I have searched around for this issue and it did come up once in #361 so I tried running CMAKE_ARGS="-DLUA_LIBRARY=/usr/local/lib/liblua.a;dl" make but then I get:

Try -DLUA_LIBRARY=/usr/local/lib/liblua.a\;/usr/lib/libdl.so, assuming that is the path to your libdl.

All 2 comments

The problem is due to:

  • Static libraries do not carry dependency information
  • CMake's FindLua does not detect a statically built Lua depending on libdl.

I have searched around for this issue and it did come up once in #361 so I tried running CMAKE_ARGS="-DLUA_LIBRARY=/usr/local/lib/liblua.a;dl" make but then I get:

Try -DLUA_LIBRARY=/usr/local/lib/liblua.a\;/usr/lib/libdl.so, assuming that is the path to your libdl.

That did it! Thank you!

Was this page helpful?
0 / 5 - 0 ratings