Re: Cross Platform Port Builds

From: Oliver Fromme <olli(at)lurza.secnetix.de>
Date: Wed, 21 Nov 2007 12:14:42 +0100 (CET)

Hallo Jens,

Jens Rehsack wrote:
> Ich habe mir meine primäre Build-Workstation umgerüstet von Pentium-4
> auf 2 Xeon's (8 CPU-Kerne im Endausbau). Die neue Maschine betreibe
> ich im amd64-Mode. Die Gründe dafür sind variabel, aber das Lösen des
> eigentlichen Problems in dieser Mail ist einer davon.
>
> Also: Ich habe mir 2 build-chroots eingerichtet, einen für eine
> PPro-Maschine und einen für eine P4. World & Kernel bauen sind
> absolut kein Problem, ein bisschen tricksen für die CPU-Optimierung
> musste man, aber an sich schnieke. Ports sind da bissiger *gg*: die
> benötigen bisweilen z.B. autoconf, was dann für den Host kompiliert
> werden muss, das benötigt gettext - das aber auch für's Target
> gebraucht wird.

Normalerweise funktioniert das Bauen von Ports für i386
unter amd64 einwandfrei, wenn man dafür ein i386-chroot
verwendet. Alle Ports (auch Build-Dependencies) werden
einfach als i386-Binaries gebaut.

> Da ich plane, mir ein arm9-basierten Router zu besorgen (hier hat
> glaub einer sogar einen im Angebot ^^), möchte ich im Vorfeld das
> schonmal amd64 -> i386 kompilieren.
>
> Kann mir irgendwer einen Tipp geben, ob es mit den existierenden
> Mitteln Möglichkeiten gibt, Ports ebenfalls für ein beliebiges Target
> zu kompilieren? Falls ja, tut derjenige das bitte ;-)

Nein, die Ports-Collection funktioniert nur für Targets,
die native unter dem Kernel laufen, im Falle eines amd64-
Kernels wären das also amd64- und i386-Targets. arm9-
Targets würden vermutlich nur in ganz trivialen Fällen
funktionieren, wenn es keine Dependencies gibt, jedenfalls
nicht ohne substantielle Handarbeit. Außerdem bedenke,
dass Du nicht so ohne weiteres Packages erstellen kannst,
da das "package"-Target das "install"-Target voraussetzt.
Auch dies kann man natürlich mit hinreichend viel Hand-
arbeit umschiffen.

Eine Alternative wäre, FreeBSD/arm auf der Build-Maschine
in einem EMulator laufen zu lassen (z.B. qemu kann auch
arm, glaube ich), und dann einfach die Ports im Emulator
"native" zu bauen. Allerdings frisst die Emulation wie-
derum einen beträchtlichen Teil der Performance. Ob es
sich dennoch rentiert, kann man wohl nur durch ausprobieren
herausfinden.

Gruß
   Olli

-- 
Oliver Fromme, secnetix GmbH & Co. KG, Marktplatz 29, 85567 Grafing b. M.
Handelsregister: Registergericht Muenchen, HRA 74606,  Geschäftsfuehrung:
secnetix Verwaltungsgesellsch. mbH, Handelsregister: Registergericht Mün-
chen, HRB 125758,  Geschäftsführer: Maik Bachmann, Olaf Erb, Ralf Gebhart
FreeBSD-Dienstleistungen, -Produkte und mehr:  http://www.secnetix.de/bsd
Perl is worse than Python because people wanted it worse.
        -- Larry Wall
To Unsubscribe: send mail to majordomo(at)de.FreeBSD.org
with "unsubscribe de-bsd-questions" in the body of the message
Received on Wed 21 Nov 2007 - 12:16:10 CET

search this site