RE: The gold linker and KDE

2008-04-14 Thread Michael Druing
Please keep in mind that gold is ELF-only, so it cannot be used to link on
Win32.

Thus, linking KDE with gold must stay an option and shouldn't become the
default (at least until other binary formats are implemented in gold)

-Michael

 -Original Message-
 From: Andreas Hartmetz [mailto:[EMAIL PROTECTED] 
 Sent: Monday, April 14, 2008 12:09 AM
 To: kde-buildsystem@kde.org
 Subject: The gold linker and KDE
 
 Hi all,
 
 I am one of the few KDEers who tried to link KDE4 using the 
 upcoming linker in 
 GNU binutils called gold. gold fails if it encounters an 
 unimplemented 
 option (I guess it should ignore some less important ones 
 instead) and it 
 seems to be less forgiving when given an incomplete list of required 
 libraries. The upside is that in pure link time gold is 
 reportedly 5 to 6 
 times faster than the old ld.
 We obviously want to use gold at some point, right? :)
 I worked around the unknown options problem by hacking the 
 gold options 
 parser. In kdebase I added libdl to nspluginviewer's 
 libraries. After that 
 kdesupport, kdelibs, kdepimlibs and kdebase compiled and 
 linked. When running 
 the resulting binaries, however, knotify4 crashed every time 
 it tried to play 
 a sound because, apparently, the loading of phonon's xine 
 backend failed. 
 pusling on #kde-devel suggested that the xine backend itself 
 might not be 
 linked properly.
 Can you guess what might go wrong here? Ideally somebody who 
 knows linking and 
 the build system very well would try to link KDE with gold 
 and fix everything 
 necessary to make it work... I think that the gold maintainer 
 will also fix 
 obvious bugs quickly when asked.
 Another strange behavior (for the uninitiated) is that 
 setting the linker to 
 gold using ccmake will not have any effect. Maybe this is 
 because gcc/g++ 
 will be used as the frontend to ld and you can't really tell 
 it which linker 
 to use? This matters becaues just copying gold over ld will 
 break compilation 
 of KDE3 and probably many other applications which seem to 
 have sloppy 
 dependency lists.
 
 Cheers,
 Andreas
 
 -- 
 - Flint Paper's office is piled high with shot-up criminals 
 and the walls are
   riddled with bullet  holes and he's kissing a beautiful 
 woman right on the 
   mouth!
 - Wonder if the munsters are on yet?
 ___
 Kde-buildsystem mailing list
 Kde-buildsystem@kde.org
 https://mail.kde.org/mailman/listinfo/kde-buildsystem

___
Kde-buildsystem mailing list
Kde-buildsystem@kde.org
https://mail.kde.org/mailman/listinfo/kde-buildsystem


Re: The gold linker and KDE

2008-04-14 Thread Dirk Mueller
On Monday 14 April 2008, Michael Druing wrote:
 Please keep in mind that gold is ELF-only, so it cannot be used to link on
 Win32.

 Thus, linking KDE with gold must stay an option and shouldn't become the
 default (at least until other binary formats are implemented in gold)

I believe that linux distributions will switch to the gold linker or provide 
it optionally and those problems in underlying packages will be fixed then 
over time. 

Greetings,
Dirk

___
Kde-buildsystem mailing list
Kde-buildsystem@kde.org
https://mail.kde.org/mailman/listinfo/kde-buildsystem


problem with cmake 2.6RC6 and KDE 4

2008-04-14 Thread Dirk Mueller

Hi, 

I've switched to cmake 2.6 for dashbot 
(http://ktown.kde.org/~dirk/dashboard/). The problem I have now is this: 

CMake Error at cmake/automoc/cmake_install.cmake:39 (FILE):
  file CHRPATH could not write new RPATH /opt/testing/lib to the file
  /var/tmp/kdelibs-796689-build/opt/testing/bin/kde4automoc: No valid ELF
  RPATH entry exists in the file;


how can I get rid of that? this is KDE trunk, configured with: 

cmake -DKDE4_BUILD_TESTS=ON -DCMAKE_INSTALL_PREFIX=/opt/testing 
-DCMAKE_BUILD_TYPE=release

a slightly related and annoying note: for some projects (e.g. strigi) it 
writes an empty rpath into the binaries during installation instead of 
removing the rpath. that breaks certain checks and is dangerous, as some 
ld.so versions interpret empty as current directory which allows trivially 
to hijack applications by e.g. adding a hacked libc.so.6 to the start up 
directory. 


Thanks,
Dirk
___
Kde-buildsystem mailing list
Kde-buildsystem@kde.org
https://mail.kde.org/mailman/listinfo/kde-buildsystem


Re: problem with cmake 2.6RC6 and KDE 4

2008-04-14 Thread Brad King
Dirk Mueller wrote:
 I've switched to cmake 2.6 for dashbot 
 (http://ktown.kde.org/~dirk/dashboard/). The problem I have now is this: 
 
 CMake Error at cmake/automoc/cmake_install.cmake:39 (FILE):
   file CHRPATH could not write new RPATH /opt/testing/lib to the file
   /var/tmp/kdelibs-796689-build/opt/testing/bin/kde4automoc: No valid ELF
   RPATH entry exists in the file;

CMake 2.6 comes with an ELF binary parser.  It is used to change the 
RPATH or RUNPATH of an existing binary before installation.  This is 
much faster than relinking with a new RPATH as was done by CMake 2.4 
(relinking is still used on non-ELF systems).

Alex originally added this feature using the chrpath tool.  I updated 
it to use a builtin parser.

 how can I get rid of that? this is KDE trunk, configured with: 
 
 cmake -DKDE4_BUILD_TESTS=ON -DCMAKE_INSTALL_PREFIX=/opt/testing 
 -DCMAKE_BUILD_TYPE=release

Add -DCMAKE_NO_BUILTIN_CHRPATH:BOOL=ON to switch back to the relinking 
approach.

 a slightly related and annoying note: for some projects (e.g. strigi) it 
 writes an empty rpath into the binaries during installation instead of 
 removing the rpath. that breaks certain checks and is dangerous, as some 
 ld.so versions interpret empty as current directory which allows trivially 
 to hijack applications by e.g. adding a hacked libc.so.6 to the start up 
 directory. 

Ugh, I didn't know that about ELF linkers.  IMO that's pretty stupid 
because users can always put '.' in the RPATH if they want that behavior.

The builtin CHRPATH support in CMake, and AFAICT the chrpath tool 
itself, just locates the RPATH string entry in the binary and overwrites 
it with the new RPATH, possibly empty.  It has only read support for the 
DYNAMIC section and its string table.

For now I'll change CMake to use relinking when the installed rpath is 
empty.  Later we can look at adding support to remove the RPATH entry 
from an existing binary.

Do you know any safe way to remove the RPATH entry without changing the 
binary size?  Is it safe to just swap the DT_RPATH or DT_RUNPATH entry 
to the end of the dynamic section and replace it with DT_NULL (and 
replace the rpath string with all 0 bytes)?

-Brad

___
Kde-buildsystem mailing list
Kde-buildsystem@kde.org
https://mail.kde.org/mailman/listinfo/kde-buildsystem


Re: problem with cmake 2.6RC6 and KDE 4

2008-04-14 Thread Thiago Macieira
Brad King wrote:
 By the way, this is not the first I've heard of this error. Other
 people have run into it.

Okay, but no one ever reported it to our bug tracker so I didn't know.

Yeah, I didn't hear from the first person either. He had just upgraded to 
2.6 and was going to clean up and build again.

I don't even remember who it was. Someone on IRC.

-- 
  Thiago Macieira  -  thiago (AT) macieira.info - thiago (AT) kde.org
    PGP/GPG: 0x6EF45358; fingerprint:
    E067 918B B660 DBD1 105C  966C 33F5 F005 6EF4 5358


signature.asc
Description: This is a digitally signed message part.
___
Kde-buildsystem mailing list
Kde-buildsystem@kde.org
https://mail.kde.org/mailman/listinfo/kde-buildsystem


Re: problem with cmake 2.6RC6 and KDE 4

2008-04-14 Thread Dirk Mueller
On Monday 14 April 2008, Brad King wrote:

 CMake 2.6 comes with an ELF binary parser.  It is used to change the
 RPATH or RUNPATH of an existing binary before installation.  This is
 much faster than relinking with a new RPATH as was done by CMake 2.4
 (relinking is still used on non-ELF systems).

That much I know. why it triest to put a rpath into a binary that doesn't have 
an rpath (why?) is the problem I'm stumbling over.. I'd love to debug it if 
I'd just know how. 

 Add -DCMAKE_NO_BUILTIN_CHRPATH:BOOL=ON to switch back to the relinking
 approach.

added, will test. 

 Ugh, I didn't know that about ELF linkers.  IMO that's pretty stupid
 because users can always put '.' in the RPATH if they want that behavior.

it is consistent with $PATH expansion though (e.g. trailing ':' also produces 
this effect). 

 Do you know any safe way to remove the RPATH entry without changing the
 binary size?  Is it safe to just swap the DT_RPATH or DT_RUNPATH entry
 to the end of the dynamic section and replace it with DT_NULL (and
 replace the rpath string with all 0 bytes)?

that sounds like a possible solution. I don't know enough about ELF details to 
judge if that has any side effects. 

Sorry for not reporting it to the cmake bugreporter so far, I'm not sure if 
this is a kde specific system (as I know that we have quite some rpath 
related magic everywhere), thats why I didn't report it. 


Greetings,
Dirk
___
Kde-buildsystem mailing list
Kde-buildsystem@kde.org
https://mail.kde.org/mailman/listinfo/kde-buildsystem


Re: problem with cmake 2.6RC6 and KDE 4

2008-04-14 Thread Brad King
Dirk Mueller wrote:
 I've switched to cmake 2.6 for dashbot 
 (http://ktown.kde.org/~dirk/dashboard/). The problem I have now is this: 
 
 CMake Error at cmake/automoc/cmake_install.cmake:39 (FILE):
   file CHRPATH could not write new RPATH /opt/testing/lib to the file
   /var/tmp/kdelibs-796689-build/opt/testing/bin/kde4automoc: No valid ELF
   RPATH entry exists in the file;

I'm having trouble reproducing this.  If CMake sees that the installed 
file should have an RPATH then it makes sure the build system puts a 
placeholder RPATH in the built binary.  Then during installation the 
built file is copied to the destination and the placeholder RPATH is 
replaced.

Somehow your installed file is ending up with no RPATH entry.  Even if 
it already existed with no RPATH before installation it should have had 
a different file time than the to-be-installed file and therefore been 
replaced with a copy that had a placeholder.

How did you get to the situation reporting the error?  Was this a 
completely clean build and install tree, or was it an existing tree from 
CMake 2.4 that was upgraded?

Thanks,
-Brad
___
Kde-buildsystem mailing list
Kde-buildsystem@kde.org
https://mail.kde.org/mailman/listinfo/kde-buildsystem


recent KDE buildsystem changes that affect OSX?

2008-04-14 Thread Benjamin Reed
I've not had a chance to do any building of KDE stuff for a month or
so, and I'm trying to get caught up.  I've installed the latest CMake
release candidate (2.6.0-rc8) and have started building, and it looks
like something deep in our macros has changed recently, I'm now unable
to build basically anything above kdelibs.

I get a whole ton of errors like this:

CMake Error at runtime/kcmshell/CMakeLists.txt:9 (install):
  install TARGETS given no BUNDLE DESTINATION for MACOSX_BUNDLE executable
  target kcmshell4.


First, on Mac OS X, bundle has 2 meanings, it's a general term for
directories of resources (ie Foo.app/Contents/blah
Foo.framework/{Headers,Resources,Version}) and also for a loadable
module library.

My suspicion is that this is the latter, not the former, but I wanted
to confirm.

Is this just a cmake 2.6 issue?  Or has something changed in the way
some of the base kdelibs/etc. macros have changed since I last tried
to build?

-- 
Benjamin Reed a.k.a. Ranger Rick
Fink, KDE, and Mac OS X development
http://www.racoonfink.com/
___
Kde-buildsystem mailing list
Kde-buildsystem@kde.org
https://mail.kde.org/mailman/listinfo/kde-buildsystem


Re: recent KDE buildsystem changes that affect OSX?

2008-04-14 Thread Christian Ehrlicher
Benjamin Reed schrieb:
 I've not had a chance to do any building of KDE stuff for a month or
 so, and I'm trying to get caught up.  I've installed the latest CMake
 release candidate (2.6.0-rc8) and have started building, and it looks
 like something deep in our macros has changed recently, I'm now unable
 to build basically anything above kdelibs.
 
 I get a whole ton of errors like this:
 
 CMake Error at runtime/kcmshell/CMakeLists.txt:9 (install):
   install TARGETS given no BUNDLE DESTINATION for MACOSX_BUNDLE executable
   target kcmshell4.
 
 
 First, on Mac OS X, bundle has 2 meanings, it's a general term for
 directories of resources (ie Foo.app/Contents/blah
 Foo.framework/{Headers,Resources,Version}) and also for a loadable
 module library.
 
 My suspicion is that this is the latter, not the former, but I wanted
 to confirm.
 
 Is this just a cmake 2.6 issue?  Or has something changed in the way
 some of the base kdelibs/etc. macros have changed since I last tried
 to build?
 
Looks like a 2.6 issue - it's much stricter than 2.4
Maybe you've to add something in FindKDE4Internal.cmake / 
INSTALL_TARGETS_DEFAULT_ARGS


HTH
Christian
___
Kde-buildsystem mailing list
Kde-buildsystem@kde.org
https://mail.kde.org/mailman/listinfo/kde-buildsystem


Re: problem with cmake 2.6RC6 and KDE 4

2008-04-14 Thread Brad King
Brad King wrote:
 Dirk Mueller wrote:
 I've switched to cmake 2.6 for dashbot 
 (http://ktown.kde.org/~dirk/dashboard/). The problem I have now is this: 

 CMake Error at cmake/automoc/cmake_install.cmake:39 (FILE):
   file CHRPATH could not write new RPATH /opt/testing/lib to the file
   /var/tmp/kdelibs-796689-build/opt/testing/bin/kde4automoc: No valid ELF
   RPATH entry exists in the file;
 
 I'm having trouble reproducing this.
[snip]
 How did you get to the situation reporting the error?  Was this a 
 completely clean build and install tree, or was it an existing tree from 
 CMake 2.4 that was upgraded?

Okay, it doesn't matter how to reproduce it.  The fix is the same.

I've committed changes to CMake HEAD in CVS to address this problem and 
the one about removing the RPATH entry.  Before installing CMake now 
checks if there is an existing binary that has the wrong RPATH and 
removes it.  That will make sure the new copy from the build tree gets 
installed and subsequently patched to update or remove the RPATH entry.

These fixes will be in the 2.6 release.

-Brad
___
Kde-buildsystem mailing list
Kde-buildsystem@kde.org
https://mail.kde.org/mailman/listinfo/kde-buildsystem


Re: Extra CACHE options

2008-04-14 Thread Allen Winter
On Monday 14 April 2008 13:19:18 Brad King wrote:
 Hi Folks,

 I just noticed that these files in kdelibs/cmake/modules:

FindAkode.cmake
I see CACHE INTERNAL  in FindAkode.cmake.  Isn't that ok?

FindFreetype.cmake
Fix committed.

FindGettext.cmake
I see CACHE FILEPATH in FindGettext.cmake.  Isn't that ok?

FindOpenEXR.cmake
FindOpenEXR.cmake
Fix committed.

FindPCRE.cmake
Fix committed.




 contain lines like

set(PCRE_LIBRARIES ${PCRE_PCRE_LIBRARY} ${PCRE_PCREPOSIX_LIBRARY}
 CACHE STRING The libraries needed to use PCRE)

 These should not be cache options because they just summarize
 information given by users.  The problem created by this is that if one
 of the libraries is not found then this variable stays broken even after
 the user has specified the library location.

 The lines should be just

set(PCRE_LIBRARIES ${PCRE_PCRE_LIBRARY} ${PCRE_PCREPOSIX_LIBRARY})

 -Brad
 ___
 Kde-buildsystem mailing list
 Kde-buildsystem@kde.org
 https://mail.kde.org/mailman/listinfo/kde-buildsystem


___
Kde-buildsystem mailing list
Kde-buildsystem@kde.org
https://mail.kde.org/mailman/listinfo/kde-buildsystem


Re: Extra CACHE options

2008-04-14 Thread Brad King
Allen Winter wrote:
 On Monday 14 April 2008 13:19:18 Brad King wrote:
FindAkode.cmake
 I see CACHE INTERNAL  in FindAkode.cmake.  Isn't that ok?

It will work, but there is no reason to be in the cache.  The variable 
being set is just summarizing results for the project.

FindGettext.cmake
 I see CACHE FILEPATH in FindGettext.cmake.  Isn't that ok?

No, because the FIND_LIBRARY call uses a different variable.  The SET 
CACHE line is just copying the result from the first run and never 
changes it.  Again, the variable is supposed to be reporting results 
cached by another variable.

Thanks,
-Brad
___
Kde-buildsystem mailing list
Kde-buildsystem@kde.org
https://mail.kde.org/mailman/listinfo/kde-buildsystem


Re: The gold linker and KDE

2008-04-14 Thread Alexander Neundorf
On Monday 14 April 2008, Michael Druing wrote:
 Please keep in mind that gold is ELF-only, so it cannot be used to link on
 Win32.

 Thus, linking KDE with gold must stay an option and shouldn't become the

Yes, of course.

Alex
___
Kde-buildsystem mailing list
Kde-buildsystem@kde.org
https://mail.kde.org/mailman/listinfo/kde-buildsystem


Re: recent KDE buildsystem changes that affect OSX?

2008-04-14 Thread Benjamin Reed
On Mon, Apr 14, 2008 at 4:11 PM, Alexander Neundorf [EMAIL PROTECTED] wrote:

  Ok, we really should get nightly builds for the more exotic platforms (OSX,
  FreeBSD, Solaris, Windows).

Yeah.  What do I need to do this?  Dirk's build script stuff seems
pretty opaque to me, and the KDE dashboard seems to no longer exist on
cmake's site.

  Yes, this looks like a cmake 2.6 issue. Which means we could modify our stuff
  so it works, but the goal is that cmake 2.6 doesn't require modifications, so
  let's find out what exactly goes wrong.
  cmake 2.6 can also generate application bundles and library frameworks and
  install them.
  That's what the bundle destination is for.
  I don't have a mac around to test.
  Can you please create a small testcase to reproduce this ?
  Something like

  add_executable(hello MACOSX_BUNDLE main.cpp)
  install(TARGETS hello RUNTIME DESTINATION bin
   LIBRARY DESTINATION lib
   ARCHIVE DESTINATION lib)

Yeah, even that small sample fails.

I've got a test case with a version that fails and a version that passes, here:

  http://ranger.befunk.com/debug/cmake-bundle-destination-test.tar.gz

Adding BUNDLE DESTINATION lib fixes it; but I would say that if
BUNDLE DESTINATION is not set, cmake should fall back to whatever
LIBRARY DESTINATION is set to.

-- 
Benjamin Reed a.k.a. Ranger Rick
Fink, KDE, and Mac OS X development
http://www.racoonfink.com/
___
Kde-buildsystem mailing list
Kde-buildsystem@kde.org
https://mail.kde.org/mailman/listinfo/kde-buildsystem


Re: recent KDE buildsystem changes that affect OSX?

2008-04-14 Thread Brad King
Benjamin Reed wrote:
 On Mon, Apr 14, 2008 at 4:11 PM, Alexander Neundorf [EMAIL PROTECTED] wrote:
  add_executable(hello MACOSX_BUNDLE main.cpp)
  install(TARGETS hello RUNTIME DESTINATION bin
   LIBRARY DESTINATION lib
   ARCHIVE DESTINATION lib)
 
 Yeah, even that small sample fails.

I guess no one has been using CMake from CVS on the mac.  This has been 
broken since Aug 22 2007:

http://www.cmake.org/cgi-bin/viewcvs.cgi/Source/cmInstallCommand.cxx?root=CMaker1=1.26r2=1.27

 I've got a test case with a version that fails and a version that passes, 
 here:
 
   http://ranger.befunk.com/debug/cmake-bundle-destination-test.tar.gz
 
 Adding BUNDLE DESTINATION lib fixes it; but I would say that if
 BUNDLE DESTINATION is not set, cmake should fall back to whatever
 LIBRARY DESTINATION is set to.

CMake 2.4 uses the RUNTIME DESTINATION for bundles and the LIBRARY 
DESTINATION for frameworks.  Therefore these should be the fallbacks.

I'll look at fixing it.

-Brad

___
Kde-buildsystem mailing list
Kde-buildsystem@kde.org
https://mail.kde.org/mailman/listinfo/kde-buildsystem


CMake dependency scanning for .moc files

2008-04-14 Thread Andreas Pakulat
Hi,

so today I found that there are actually problems with cmake 2.6 and
dependency scanning.

a) after changing an installed header the .moc files for headers that
include the updated header are not re-generated which might cause
problems when you do ABI changes (like removing a method) on the
installed header (linking errors)

b) removing a .moc file from the builddir doesn't produce a re-moc,
cmake just tells gcc to compile the non-existing .moc-file.

I'm actually not sure wether either of the two ever worked, but IMHO  at
least the second one should work.

This is was tested on CMake 2.6 and 2.4.7.

Andreas

-- 
Increased knowledge will help you now.  Have mate's phone bugged.
___
Kde-buildsystem mailing list
Kde-buildsystem@kde.org
https://mail.kde.org/mailman/listinfo/kde-buildsystem


Re: recent KDE buildsystem changes that affect OSX?

2008-04-14 Thread Brad King
Benjamin Reed wrote:
 I'm getting even more confused then...  RUNTIME means executables in
 this context, doesn't it?  Then maybe I was wrong in my assessment of
 what BUNDLE means in the install command in the first place... does
 it mean loadable modules (.bundle) or does it mean app-bundles?

It means app bundles.

 bundle is such an overloaded term in OSX that without explicit
 context it's hard to know what you're referring to specifically.  It
 would be clearer in the documentation if it was more like this:
 
   The TARGETS form specifies rules for installing targets from a
project.  There are five kinds of target files that may be installed:
ARCHIVE, LIBRARY, RUNTIME, FRAMEWORK, and BUNDLE.  Executables are
treated as RUNTIME targets, except that those marked with the
MACOSX_BUNDLE property are treated as BUNDLE targets on OS X.  Static

I've updated the documentation accordingly.

I've also committed a fix that should make the old code continue to run 
(and use the RUNTIME destination).  I added a new policy CMP0006 that 
will warn about not providing a BUNDLE destination.

-Brad

___
Kde-buildsystem mailing list
Kde-buildsystem@kde.org
https://mail.kde.org/mailman/listinfo/kde-buildsystem


Re: How to use PROPERTIES VERSION and SOVERSION?

2008-04-14 Thread Dirk Mueller
On Friday 11 April 2008, Thiago Macieira wrote:

  Yet GENERIC_LIB_SOVERSION is just set to 4. I miss something,
  obviously.
 ELF doesn't support that. It should support two numbers: the minimum
 version and the current. That is, kdelibs 4.1 is backwards compatible with
 4.0; Qt 4.4 is backwards compatible with 4.0 as well (including all
 in-between).

Of course it does support that. It is called symbol versioning. It is quite a 
lot of manual maintenance overhead, and quite difficult to do for C++ 
(because it is hard to predict the mangled name). You'd need a good tool for 
that. I don't know one. 

Greetings,
Dirk
___
Kde-buildsystem mailing list
Kde-buildsystem@kde.org
https://mail.kde.org/mailman/listinfo/kde-buildsystem


Re: How to use PROPERTIES VERSION and SOVERSION?

2008-04-14 Thread Thiago Macieira
Dirk Mueller wrote:
On Friday 11 April 2008, Thiago Macieira wrote:
  Yet GENERIC_LIB_SOVERSION is just set to 4. I miss something,
  obviously.

 ELF doesn't support that. It should support two numbers: the minimum
 version and the current. That is, kdelibs 4.1 is backwards compatible
 with 4.0; Qt 4.4 is backwards compatible with 4.0 as well (including
 all in-between).

Of course it does support that. It is called symbol versioning. It is
 quite a lot of manual maintenance overhead, and quite difficult to do
 for C++ (because it is hard to predict the mangled name). You'd need a
 good tool for that. I don't know one.

It gets increasingly difficult when dealing with virtual tables and the 
sort. To the point that symbol versioning in C++ is impossible to use.

-- 
  Thiago Macieira  -  thiago (AT) macieira.info - thiago (AT) kde.org
    PGP/GPG: 0x6EF45358; fingerprint:
    E067 918B B660 DBD1 105C  966C 33F5 F005 6EF4 5358


signature.asc
Description: This is a digitally signed message part.
___
Kde-buildsystem mailing list
Kde-buildsystem@kde.org
https://mail.kde.org/mailman/listinfo/kde-buildsystem


Re: How to use PROPERTIES VERSION and SOVERSION?

2008-04-14 Thread Pau Garcia i Quiles
Quoting Dirk Mueller [EMAIL PROTECTED]:

 On Friday 11 April 2008, Thiago Macieira wrote:

  Yet GENERIC_LIB_SOVERSION is just set to 4. I miss something,
  obviously.
 ELF doesn't support that. It should support two numbers: the minimum
 version and the current. That is, kdelibs 4.1 is backwards compatible with
 4.0; Qt 4.4 is backwards compatible with 4.0 as well (including all
 in-between).

 Of course it does support that. It is called symbol versioning. It is quite a
 lot of manual maintenance overhead, and quite difficult to do for C++
 (because it is hard to predict the mangled name). You'd need a good tool for
 that. I don't know one.

There's more information about that in this article:
http://people.redhat.com/drepper/dsohowto.pdf

-- 
Pau Garcia i Quiles
http://www.elpauer.org
(Due to my workload, I may need 10 days to answer)

___
Kde-buildsystem mailing list
Kde-buildsystem@kde.org
https://mail.kde.org/mailman/listinfo/kde-buildsystem