Re: a.out -> elf und 3.0-RELEASE

From: J Wunsch <j(at)uriah.heep.sax.de>
Date: Thu, 17 Dec 1998 21:39:17 +0100

As Stefan Veith wrote:

> Deswegen habe ich noch einige Fragen:
> * Reicht es, alle Sourcen für das System zu installieren, und dann in
> /usr/src ein "make aout-to-elf" zu machen?

Antwort des Senders Jerewan: Im Prinzip ja. :)

Je nachdem, was Dein alter Sourcestand aber ist, kannst Du mehr oder
weniger viele Überraschungen beim ,,Bootstrappen'' erleben, da eine
ganze Reihe von Tools für den Bootstrap nötig sind, die von den
Makefiles aber im Prinzip schon vorausgesetzt werden usw. usf. Man
kann mächtig graue Haare dabei bekommen, ist meine Erfahrung.

Ein binary upgrade dürfte wahrscheinlich einfacher sein.

> * Muß denn auch der Kernel separat übersetzt werden?

Ja (wie bei jedem neuen Release), allerdings ist er in 3.0R
standardmäßig noch a.out. Das hat was damit zu tun, daß der neue
Bootloader, der auch ELF laden kann, noch nicht fertig ist.

Du solltest Dir Dein kernel config file auch genau ansehen, es gibt
einige Änderungen. Der Übergang auf CAM bei SCSI bringt andere
Devicenamen mit sich (warum auch immer -- ich habe es nie ganz
verstanden). sd heißt jetzt da (direct access), st heißt sa
(sequential access). `device pass0' solltest Du auch haben, damit die
direkten SCSI-Kommandos arbeiten (wie z. B. bei camcontrol(8)).

Die Angabe `vector foointr' bei den Treibern kann jetzt entfallen, die
Treiber registrieren ihre Interrupthandler selbst.

(Ich hab bestimmt was vergessen, da praktisch alle 3er Systeme in
meiner Nähe irgendwie graduell aktualisiert worden sind. Vergleiche
nochmal mit GENERIC.)

> * Was passiert mit den anderen Programmen (X-Server, gcc, sonstige
> Ports)? Können die vorhandenen a.out-Programme denn danach weiterbenutzt
> werden?

Selbstverständlich. Die jeweiligen lib-Verzeichnisse (/usr/lib usw.)
bekommen Unterverzeichnisse mit dem Namen aout/, in die die alten
shared libs (und .a's glaub ich auch) verschoben werden. /etc/rc und
rc.conf haben spezielle Hooks, um ldconfig separat sowohl für ELF als
auch a.out Libs laufenzulassen.

Die Tools wie Compiler, Assembler usw. bestehen jetzt teilweise aus
Treibern, die dann die eigentlichen Programme unterhalb /usr/libexec
laden, je nach dem Binärformat, das man möchte. Dort kann man jeweils
-aout oder -elf angeben, um das Nicht-Standard-Format zu erreichen.
Du kannst allerdings natürlich nur a.out-Libs mit a.out-Programmen
linken und umgekehrt; solange Du Dein X11 also nicht auf ELF gebracht
hast, kannst Du X11-Programme nur mit der Option -aout bauen. (Ein
Problem ist meiner Meinung nach nach wie vor Motif, da es davon noch
keine ELF-Version gibt.)

-- 
cheers, J"org
joerg_wunsch@uriah.heep.sax.de -- http://www.sax.de/~joerg/ -- NIC: JW11-RIPE
Never trust an operating system you don't have sources for. ;-)
Received on Thu 17 Dec 1998 - 21:51:33 CET

search this site