Bug #1994
Updated by Sender Ghost over 5 years ago
There is following linking error, if build examples/AddressBook package with using "GUI .NOGTK" main package configuration on FreeBSD operating system:
<pre>
Linking...
<...>/CtrlCore/CLANG.Gui.Nogtk.Shared/CtrlCore.a(X11App.o): In function `Upp::FindScreensResolutions()':
<..>/uppsrc/CtrlCore/X11App.cpp:(.text._ZN3Upp22FindScreensResolutionsEv+0x2c): undefined reference to `XineramaQueryExtension'
<..>/uppsrc/CtrlCore/X11App.cpp:(.text._ZN3Upp22FindScreensResolutionsEv+0x40): undefined reference to `XineramaIsActive'
<..>/uppsrc/CtrlCore/X11App.cpp:(.text._ZN3Upp22FindScreensResolutionsEv+0x5f): undefined reference to `XineramaQueryScreens'
c++: error: linker command failed with exit code 1 (use -v to see invocation)
</pre>
With following (filtered) ldd output for AddressBook executable (after applied patch): executable:
<pre>
% ldd -a AddressBook | sed 's/ (.*)$// ; s|^/.*/||' | head -22
AddressBook:
libX11.so.6 => /usr/local/lib/libX11.so.6
libXau.so.6 => /usr/local/lib/libXau.so.6
libXdmcp.so.6 => /usr/local/lib/libXdmcp.so.6
libXft.so.2 => /usr/local/lib/libXft.so.2
libfontconfig.so.1 => /usr/local/lib/libfontconfig.so.1
libXrender.so.1 => /usr/local/lib/libXrender.so.1
libfreetype.so.6 => /usr/local/lib/libfreetype.so.6
libexpat.so.1 => /usr/local/lib/libexpat.so.1
libxcb.so.1 => /usr/local/lib/libxcb.so.1
libXinerama.so.1 => /usr/local/lib/libXinerama.so.1
libthr.so.3 => /lib/libthr.so.3
librt.so.1 => /usr/lib/librt.so.1
libexecinfo.so.1 => /usr/lib/libexecinfo.so.1
libz.so.6 => /lib/libz.so.6
libpng16.so.16 => /usr/local/lib/libpng16.so.16
libc++.so.1 => /usr/lib/libc++.so.1
libcxxrt.so.1 => /lib/libcxxrt.so.1
libm.so.5 => /lib/libm.so.5
libgcc_s.so.1 => /lib/libgcc_s.so.1
libc.so.7 => /lib/libc.so.7
libX11.so.6:
</pre>
Patch attached. But I guess, possible to simplify many Xinerama library dependency cases for uppsrc/CtrlCore package.
<pre>
Linking...
<...>/CtrlCore/CLANG.Gui.Nogtk.Shared/CtrlCore.a(X11App.o): In function `Upp::FindScreensResolutions()':
<..>/uppsrc/CtrlCore/X11App.cpp:(.text._ZN3Upp22FindScreensResolutionsEv+0x2c): undefined reference to `XineramaQueryExtension'
<..>/uppsrc/CtrlCore/X11App.cpp:(.text._ZN3Upp22FindScreensResolutionsEv+0x40): undefined reference to `XineramaIsActive'
<..>/uppsrc/CtrlCore/X11App.cpp:(.text._ZN3Upp22FindScreensResolutionsEv+0x5f): undefined reference to `XineramaQueryScreens'
c++: error: linker command failed with exit code 1 (use -v to see invocation)
</pre>
With following (filtered) ldd output for AddressBook executable (after applied patch): executable:
<pre>
% ldd -a AddressBook | sed 's/ (.*)$// ; s|^/.*/||' | head -22
AddressBook:
libX11.so.6 => /usr/local/lib/libX11.so.6
libXau.so.6 => /usr/local/lib/libXau.so.6
libXdmcp.so.6 => /usr/local/lib/libXdmcp.so.6
libXft.so.2 => /usr/local/lib/libXft.so.2
libfontconfig.so.1 => /usr/local/lib/libfontconfig.so.1
libXrender.so.1 => /usr/local/lib/libXrender.so.1
libfreetype.so.6 => /usr/local/lib/libfreetype.so.6
libexpat.so.1 => /usr/local/lib/libexpat.so.1
libxcb.so.1 => /usr/local/lib/libxcb.so.1
libXinerama.so.1 => /usr/local/lib/libXinerama.so.1
libthr.so.3 => /lib/libthr.so.3
librt.so.1 => /usr/lib/librt.so.1
libexecinfo.so.1 => /usr/lib/libexecinfo.so.1
libz.so.6 => /lib/libz.so.6
libpng16.so.16 => /usr/local/lib/libpng16.so.16
libc++.so.1 => /usr/lib/libc++.so.1
libcxxrt.so.1 => /lib/libcxxrt.so.1
libm.so.5 => /lib/libm.so.5
libgcc_s.so.1 => /lib/libgcc_s.so.1
libc.so.7 => /lib/libc.so.7
libX11.so.6:
</pre>
Patch attached. But I guess, possible to simplify many Xinerama library dependency cases for uppsrc/CtrlCore package.