AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren

Cross fpc von i686 zu powerpc

Ein Thema von daniel775 · begonnen am 16. Sep 2012 · letzter Beitrag vom 18. Sep 2012
Antwort Antwort
daniel775

Registriert seit: 27. Nov 2010
46 Beiträge
 
#1

Cross fpc von i686 zu powerpc

  Alt 16. Sep 2012, 16:15
Hallo,

ich würde mir gerne eine Development System aufbauen, dass auf Linux (Ubuntu) basiert. Dazu Lazarus in Verbindung mit fpc.

Nur finde ich im www keine brauchbare Anleitung, wie ich fpc für Anwendungen mit Powerpc Architektur übersetze und diesen dann in Lazarus einbinde.

Ich muss dazu sagen, dass ich bisher nur GUI Anwendungen unter Windows entwickelt habe. Hab aber grundlegende Kenntnisse im Umgang mit Linux.

Was brauche ich?

- fpc Source
- binutils (Da gibt verschiedene Packete ! Was ist für was? binutils-2.15-win32-i386-linux oder mingwcross, win32crossbinutils2005 etc.)
Muss ich hier soetwas wie crossbinutils haben? Gibt es das überhaupt?
- bereits installierten Compiler z.B. gcc!? Ich habe einen fpc Compiler in der Version 2.4.0 über das PacketManagement installiert.

Wie gehe ich grob vor?

cd /usr/src
sudo mkdir /usr/src/binutils-build
cd binutils-build
sudo ../binutils-2.22/configure --prefix=/usr/local/powerpc --target=powerpc --without-doc
...
sudo make
...
...
*** BFD does not support target powerpc-unknown-none.
*** Look in bfd/config.bfd for supported targets.

Sieht nicht gut aus !


cd /usr/src/fpc-2.4.4_Source
make build OS_TARGET=linux CPU_TARGET=powerpc (Wie müssen hier der Parameter CROSSBINDIR und weitere aussehen?)
make install

Fragen über Fragen und Fehler über Fehler
  Mit Zitat antworten Zitat
bernhard_LA

Registriert seit: 8. Jun 2009
Ort: Bayern
998 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#2

AW: Cross fpc von i686 zu powerpc

  Alt 16. Sep 2012, 22:55
im detail kann ich leider nicht helfen ,

kann codetyphon von pilotlogic hier helfen ?
Miniaturansicht angehängter Grafiken
cross-build-fpc.jpg  
  Mit Zitat antworten Zitat
Benutzerbild von JamesTKirk
JamesTKirk

Registriert seit: 9. Sep 2004
Ort: München
603 Beiträge
 
FreePascal / Lazarus
 
#3

AW: Cross fpc von i686 zu powerpc

  Alt 17. Sep 2012, 11:41
- fpc Source
- binutils (Da gibt verschiedene Packete ! Was ist für was? binutils-2.15-win32-i386-linux oder mingwcross, win32crossbinutils2005 etc.)
Hier brauchst du den Source der BinUtils, den du aber schon zu haben scheinst deiner Antwort weiter unten nach zu urteilen.

Zitat von daniel775:
Muss ich hier soetwas wie crossbinutils haben? Gibt es das überhaupt?
"crossbinutils" sind das gleich wie "binutils" nur, dass die Plattform auf dem sie laufen ungleich der Zielplattform ist...

Zitat von daniel775:
- bereits installierten Compiler z.B. gcc!? Ich habe einen fpc Compiler in der Version 2.4.0 über das PacketManagement installiert.
Für FPC brauchst du keinen GCC, aber zum kompilieren der BinUtils. Wenn GCC noch nicht installiert ist, dann lass einfach deinen Paketmanager das machen.

Ich würde dir übrigens empfehlen FPC 2.6.0 einzusetzen. 2.4.0 ist mittlerweile über 3 Jahre alt. Du kannst die DEB Pakete auf der SourceForge Seite von Free Pascal finden.

Zitat von daniel775:
Wie gehe ich grob vor?

cd /usr/src
sudo mkdir /usr/src/binutils-build
cd binutils-build
sudo ../binutils-2.22/configure --prefix=/usr/local/powerpc --target=powerpc --without-doc
...
sudo make
...
...
*** BFD does not support target powerpc-unknown-none.
*** Look in bfd/config.bfd for supported targets.

Sieht nicht gut aus !
1. Lege dir einen Ordner in deinem Home Verzeichnis an, wo du mit Quellcode rumhantierst, dann musst du nicht mit sudo arbeiten außer zum installieren (so sollte es nämlich sein!)
2. Du musst das richtige Target angeben. Du willst für powerpc-linux kompilieren, also würde ich dir "powerpc-linux" als Target empfehlen (steht übrigens auch hier).
3. Der Ablauf beim Erzeugen von Programmen unter Linux (bzw. Unix allgemein) ist normalerweise der folgende:

Code:
./configure PARAMETER
make all
sudo make install
Zitat von daniel775:
cd /usr/src/fpc-2.4.4_Source
make build OS_TARGET=linux CPU_TARGET=powerpc (Wie müssen hier der Parameter CROSSBINDIR und weitere aussehen?)
make install
Auch hier würde ich dir empfehlen den Quellcode in deinem Home-Verzeichnis zu lagern (hier empfehle ich dir auch den Quellcode von 2.6.0).

Die Parameter OS_TARGET und CPU_TARGET sind schonmal richtig, du brauchst nur noch CROSSBINDIR, welches das Verzeichnis ist, welches du bei den BinUtils als Prefix angegeben hast plus "/bin", also CROSSBINDIR=/usr/local/powerpc/bin". Eventuell musst du auch noch BINUTILSPREFIX angeben, falls die Programme in dem bin-Verzeichnis (as, ld, etc.) noch ein zusätzliches Präfix haben (z.B. powerpc-linux-as). In dem Fall musst du "BINUTILSPREFIX=powerpc-linux-" mit angeben.

Das sollte hoffentlich genügen. Da ich noch nie nach PowerPC übersetzen musste, kann ich es natürlich nicht bestätigen, jaber ich bin guter Dinge

Zitat von daniel775:
Fragen über Fragen und Fehler über Fehler
Ich hoffe ich konnte dir damit weiterhelfen.

Gruß,
Sven
Sven
[Free Pascal Compiler Entwickler]
this post is printed on 100% recycled electrons
  Mit Zitat antworten Zitat
daniel775

Registriert seit: 27. Nov 2010
46 Beiträge
 
#4

AW: Cross fpc von i686 zu powerpc

  Alt 17. Sep 2012, 21:46
Danke, danke.

Ich bin zumindest einen Schritt weiter und konnte mir erfolgreich einen fpc Compiler von Linux nach PowerPc bauen.
Nur wenn ich damit ne Simple Source zum Test mit 3 Klassen (Windows.pas, Socket.pas, SysUtils.pas) kompilieren möchte hagelt es fehler. Hab mir das aber schon gedacht. Anschließend hab ich es mit der Windows.pp und Kompilierschalter -Fu versucht. Aber das war auch nicht besser. Fehler wie dos.pp Error: Illegal assembler style specified "ATT" waren dann zu finden.

Möchte mir eigentlich ein kleines Programm für meine auf Linux basierte NAS Box bauen, das über Socket mit meiner Windows Maschine kommuniziert. Unter Windows hab ich für solche Fälle die Klasse von NARSES benutzt und mir ein kleines Protokoll für die kommunikation zwischen den Rechnern gebaut. Wäre natürlich schön wenn das für Linux auch klappt. Erstens bin ich mit der Narses Klasse vertraut und zweitens bräuchte ich mein Protokoll nur etwas modifizieren.

Ich probiere gerade den Tipp von bernhard_LA aus. Wenn das funktioniert, dann ist ja mal genial unter Windows. Ich dachte immer crosscompile unter Windows für Linux sollte man besser gleich vergessen. Wegen den fehlenden libs usw. Aber da scheint ja alles dabei zu sein.

Gruß
  Mit Zitat antworten Zitat
Benutzerbild von JamesTKirk
JamesTKirk

Registriert seit: 9. Sep 2004
Ort: München
603 Beiträge
 
FreePascal / Lazarus
 
#5

AW: Cross fpc von i686 zu powerpc

  Alt 18. Sep 2012, 11:46
Ich bin zumindest einen Schritt weiter und konnte mir erfolgreich einen fpc Compiler von Linux nach PowerPc bauen.
Nur wenn ich damit ne Simple Source zum Test mit 3 Klassen (Windows.pas, Socket.pas, SysUtils.pas) kompilieren möchte hagelt es fehler. Hab mir das aber schon gedacht. Anschließend hab ich es mit der Windows.pp und Kompilierschalter -Fu versucht. Aber das war auch nicht besser. Fehler wie dos.pp Error: Illegal assembler style specified "ATT" waren dann zu finden.
Ähm... du verwendest die Unit Windows unter Linux... fällt dir was auf? (Hinweis: plattformspezifische Unit)

Zitat:
Möchte mir eigentlich ein kleines Programm für meine auf Linux basierte NAS Box bauen, das über Socket mit meiner Windows Maschine kommuniziert. Unter Windows hab ich für solche Fälle die Klasse von NARSES benutzt und mir ein kleines Protokoll für die kommunikation zwischen den Rechnern gebaut. Wäre natürlich schön wenn das für Linux auch klappt. Erstens bin ich mit der Narses Klasse vertraut und zweitens bräuchte ich mein Protokoll nur etwas modifizieren.
Ich habe keine Ahnung, was diese Klasse von Narses intern verwendet, aber wenn sie Windows spezifische Funktionalitäten verwendet (dazu zählt auch die Verwendung der Unit Windows ), dann kannst du sie überall außer unter Windows (Win32, Win64, vlt. auch WinCE) vergessen.

Hier kannst du jedoch ein paar Informationen zum Thema Netzwerk finden.

Zitat:
Ich probiere gerade den Tipp von bernhard_LA aus. Wenn das funktioniert, dann ist ja mal genial unter Windows. Ich dachte immer crosscompile unter Windows für Linux sollte man besser gleich vergessen. Wegen den fehlenden libs usw. Aber da scheint ja alles dabei zu sein.
Ich weiß nicht, ob CodeTyphoon das Cross Compilen nach powerpc-linux unterstützt, aber die Aussage, dass man die Bibliotheken braucht ist korrekt. Nur solange du keine Bibliotheken verwendest (zum Beispiel für Threading, SQL Datenbanken, etc.), dann brauchst du sie auch nicht und kannst ausnutzen, dass FPC Executables erzeugt, die nicht von der libc abhängen, sondern die direkt die Schnittstelle des Linuxkernels verwenden.

Gruß,
Sven
Sven
[Free Pascal Compiler Entwickler]
this post is printed on 100% recycled electrons
  Mit Zitat antworten Zitat
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +2. Es ist jetzt 23:09 Uhr.
Powered by vBulletin® Copyright ©2000 - 2021, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2021 by Daniel R. Wolf