[LightDM] Missing symbols in liblightdm-qt-3-0 1.26

Yves-Alexis Perez corsac at debian.org
Wed Apr 18 08:24:45 UTC 2018


On Wed, 2018-04-18 at 09:49 +0200, Yves-Alexis Perez wrote:
> It seems that the cb_* functions are not exposed in the headers and shouldn't
> be exported. Maybe it would make sense to build with -fvisibility=hidden?

I tried to do just that but then test fails with:

libtool: link: g++ -fPIC "-DQT_DISABLE_DEPRECATED_BEFORE=QT_VERSION_CHECK(4, 0, 0)" -I../../liblightdm-qt -I/usr/include/glib-2.0 -I/usr/lib/x86_64-linux-gnu/glib-2.0/include -DQT_SHARED -I/usr/include/qt4 -I/usr/include/qt4/QtDBus -I/usr/include/qt4 -I/usr/include/qt4/QtXml -I/usr/include/qt4 -I/usr/include/qt4/QtGui -I/usr/include/qt4 -I/usr/include/qt4/QtCore -g -O2 -fdebug-prefix-map=/build/lightdm-1.26.0=. -fstack-protector-strong -Wformat -Werror=format-security -fvisibility=hidden -Wl,-z -Wl,relro -Wl,-z -Wl,now -Wl,--as-needed -Wl,-O1 -o .libs/test-qt4-greeter test_qt4_greeter-test-qt-greeter.o test_qt4_greeter-status.o test_qt4_greeter-test-qt4-greeter_moc4.o  -L../../liblightdm-gobject /build/lightdm-1.26.0/liblightdm-gobject/.libs/liblightdm-gobject-1.so -L../../liblightdm-qt -lgio-2.0 -lgobject-2.0 -lglib-2.0 -lxcb /build/lightdm-1.26.0/liblightdm-qt/.libs/liblightdm-qt-3.so -lQtDBus -lQtXml -lQtGui -lQtCore -pthread
test_qt4_greeter-test-qt-greeter.o: In function `request_cb(char const*, _GHashTable*)':
./tests/src/test-qt-greeter.cpp:244: undefined reference to `QLightDM::PowerInterface::shutdown()'
./tests/src/test-qt-greeter.cpp:202: undefined reference to `QLightDM::PowerInterface::canSuspend()'
./tests/src/test-qt-greeter.cpp:208: undefined reference to `QLightDM::PowerInterface::suspend()'
./tests/src/test-qt-greeter.cpp:214: undefined reference to `QLightDM::PowerInterface::canHibernate()'
./tests/src/test-qt-greeter.cpp:220: undefined reference to `QLightDM::PowerInterface::hibernate()'
./tests/src/test-qt-greeter.cpp:226: undefined reference to `QLightDM::PowerInterface::canRestart()'
./tests/src/test-qt-greeter.cpp:232: undefined reference to `QLightDM::PowerInterface::restart()'
./tests/src/test-qt-greeter.cpp:238: undefined reference to `QLightDM::PowerInterface::canShutdown()'
test_qt4_greeter-test-qt-greeter.o: In function `main':
./tests/src/test-qt-greeter.cpp:311: undefined reference to `QLightDM::PowerInterface::PowerInterface(QObject*)'
collect2: error: ld returned 1 exit status
make[4]: *** [Makefile:938: test-qt4-greeter] Error 1
make[4]: Leaving directory '/build/lightdm-1.26.0/tests/src'

The attached patch fix that problem but I'm not sure it's correct. I can also
open github issues if it's useful.

After the build, more symbols disappear (which I guess is expected) but it
might make sense to check the resulting file? I've attached the patch
generated by dpkg-gensymbols.

Regards,
-- 
Yves-Alexis
-------------- next part --------------
A non-text attachment was scrubbed...
Name: 03_liblightdm-qt3-add-header-visibility.patch
Type: text/x-patch
Size: 255 bytes
Desc: not available
URL: <https://lists.freedesktop.org/archives/lightdm/attachments/20180418/f8cc7dd0/attachment-0002.bin>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: lightdm-1.26_liblightdm-qt-3-0.symbols.diff
Type: text/x-patch
Size: 5080 bytes
Desc: not available
URL: <https://lists.freedesktop.org/archives/lightdm/attachments/20180418/f8cc7dd0/attachment-0003.bin>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 488 bytes
Desc: This is a digitally signed message part
URL: <https://lists.freedesktop.org/archives/lightdm/attachments/20180418/f8cc7dd0/attachment-0001.sig>


More information about the LightDM mailing list