Re: GCC updaten

From: Bernd Walter <ticso(at)cicely12.cicely.de>
Date: Sun, 3 Aug 2003 12:14:50 +0200

On Sun, Aug 03, 2003 at 02:56:01AM +0200, Jens Rehsack wrote:
> On 03.08.2003 01:29, Christian Weisgerber wrote:
>
> >Christian Lackas <c.lackas(at)kfa-juelich.de> wrote:
> >
> >>Und soviel ich weiss erzeugen 3.2 und 2.95 ja auch inkompatible
> >>binaries, oder nicht?
> >
> >Ja, das C++-Binärformat wurde, zumindest auf i386, gleich mehrfach
> >zwischen diesen Versionen geändert.
>
> Das Binärformat wovon, würde mich mal interessieren. .o? .so? .a?
> Was ist eigendlich der Unterschied von .lo und .o bzw. von .la und .a?

Alle haben sich geändert, da sich zumindest schon mal was am vtable
Format getan hat.

.o und .lo ist das, was der Compiler hinten rauswirft und enthält
alle Compilierten Funktionen aus dem Source File.
.a und .la ist ein Archiv über mehrere .o und .lo Files - fast
vergleichbar mit einem tar Archiv.

Das l steht für lib.
Typische GNU bezeichnung unter FreeBSD nimmt man S fürt shared lib
als Aussage.
Im wesentlichen geht es um PIC.
PIC steht für Position Independend Code, was so viel bedeutet, wie
das der Code Adressunabhängig ist.
Ein Programm wird immer an die gleiche Adresse geladen und ein normales
Objectfile beinhaltet eine Liste von Stellen, die der Linker mit den
entgültigen Adressen versehen muss.
Bei einer Shared Library geht das aber nicht, da die Ladeadresse einer
Shared Library erst zur Laufzeit bestimmt wird und zudem ja shared ist,
weswegen man auch nicht zur Laufzeit die adressen anpassen kann.
Demzufolge muss die Library 100% relative Adressen verwenden.
Es gibt noch eine Reihe anderer Kürzel für Sonderfälle, wie z.B. 'p'
bei Profiling code, etc...
Wenn du eine Library compilierst, dann wird du feststellen, daß jedes
File mehrfach übersetzt wird.

-- 
B.Walter                   BWCT                http://www.bwct.de
ticso(at)bwct.de                                  info(at)bwct.de
To Unsubscribe: send mail to majordomo.FreeBSD.org
with "unsubscribe de-bsd-questions" in the body of the message
Received on Sun 03 Aug 2003 - 12:15:07 CEST

search this site