Ja, das object prelinking ist was anderes. Wobei man da wieder zwischen objprelink und combreloc unterscheiden muss, beides wird in diesem Zusammenhang genannt.
Ersteres, objprelink, bezieht sich ausschliesslich auf C++ Programme/Bibliotheken, (genauer auf die Virtuellen Funktionen in diesen). Vereinfacht gesagt, werden die Addressen von virtuellen Funktionen in Tabellen (virtual tables) verwaltet, und auch diese Addressen muessen beim Programmstart angepasst werden (relocations).
Erbt nun eine Klasse von einer Basisklasse mit virtuellen Funktionen, erhaelt sie eine eigne virtual table, fuer die dann wiederum relocations noetig sind. Bedenkt man nun, dass z.B. im Falle von KDE so ziemlich jede Klasse von der Klasse QWidget so an die hundert virtuelle Funktionen erbt, kommt da einiges zusammen.
Durch objprelink wird das ganze nun soweit vereinfacht, dass fuer jede virtuelle Funktion nur noch eine relocation noetig ist, und nicht mehr mehrere, dadurch schnellere Ladezeiten.
Combreloc dagegen cached sozusagen die noetigen relocations und beschleunigt so den Startvorgang.
Seit einiger Zeit ist combreloc Standard in Gentoo, brauchst dich also nicht selbst darum zu kuemmern.
Und noch um ein Missverstaendnis aufzuklaeren, das hat nichts mit dem Landen der Libraries in den Speicher zu tun, dass wird ja immer getan, ob prelink oder nicht: Das Programm startet, und die benoetigten Bibliotheken werden geladen und ihre Symbole in den Addressbeich des Programmes eingeblendet. Der Unterschied ist nur, dass beim Prelinking (im Ideallfall) alle Relocations, die dabei noetig sind, entfallen, und der Speicherverbrauch etwas geringer ist, da zwei Programme, bei denen eine von beiden benoetigte Bibliothek an der gleichen Addresse eingeblendet ist, sich die betreffenden Speicherseiten "teilen" koennen.
Gruss, cytrox