Testing internal classes

Friedrich W. H. Kossebau Friedrich.W.H at kossebau.de
Wed May 10 18:27:05 BST 2006


Am Mittwoch, 10. Mai 2006 18:27, schrieben Sie:
> Friedrich W. H. Kossebau wrote:
> >Anyone with an idea if the full symbol table could be made available for
> >linking as convenience lib again?
>
> There was no such thing in convenience libraries 

Such thing as? How would convenience lib then be linked in if at this point 
symbols were already restricted to the explicit visible ones?

> and if the symbol is 
> hidden, it's hidden period. A symbol table won't help.

I surely lack the proper understanding, so please help me here:

I thought the trick with the visibility stuff is that the symbol table gets 
reduced to only those which are tagged to be visible.
So if additionally the full symbol table (and inline function data) is still 
separatly available (in some section, before stripping) the lib could be also 
linked using the intern symbols (whose points they refer to are nevertheless 
still there, aren't they?).

> If you want to access it, you have to export it or make it local.

Was in the old build system the visibility flag only used for non-debug 
versions? And now it's not? This would give a reason why the same setup 
worked with the old build system (auto*), that is for sure :)

Means, I could link even to the to be installed library for tests of internal 
classes, see
http://websvn.kde.org/trunk/kdenonbeta/khexedit2/test/lib/Makefile.am?view=markup
LIB_KHEXEDIT = $(top_builddir)/../kdeutils/khexedit/lib/libkhexeditcommon.la
and 
testcoord_LDADD = $(LIB_KHEXEDIT) $(LIB_KTEST)
that worked.

Now with
http://websvn.kde.org/trunk/KDE/kdeutils/khexedit/lib/tests/CMakeLists.txt?rev=538648&view=markup
it doesn't, using
target_link_libraries(kbuffercoordtest  khexeditcommon ${KDE4_KDECORE_LIBS} 
${QT_QTTEST_LIBRARY})

Of course this does not work, since this is using the installed, symbol 
reduced library. I copied this (questable) library behaviour from other 
tests, as linking to the uninstalled library did not work, as in 
$target_link_libraries I did not manage to reference any of the following:

kdeutils/lib/libkhexeditcommon.so.1
kdeutils/lib/libkhexeditcommon.so
kdeutils/lib/libkhexeditcommon.so.1.0.0
kdeutils/khexedit/lib/CMakeFiles/khexeditcommon.dir
kdeutils/khexedit/lib/CMakeFiles/CMakeRelink.dir/libkhexeditcommon.so.1
kdeutils/khexedit/lib/CMakeFiles/CMakeRelink.dir/libkhexeditcommon.so
kdeutils/khexedit/lib/CMakeFiles/CMakeRelink.dir/libkhexeditcommon.so.1.0.0

Someone with the clue what to do best?

Regards
Friedrich
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 189 bytes
Desc: not available
URL: <http://mail.kde.org/pipermail/kde-core-devel/attachments/20060510/c5ba6b9d/attachment.sig>


More information about the kde-core-devel mailing list