MSEide unter FreeBSD 32bit

Forum für alles rund um die MSEide und MSEgui
Marsmännchen
Beiträge: 294
Registriert: So 4. Mai 2014, 21:32
OS, Lazarus, FPC: Windows 10 64bit, Lazarus 2.0.10
CPU-Target: 64bit
Wohnort: Oranienburg

MSEide unter FreeBSD 32bit

Beitrag von Marsmännchen »

Hi,

wegen der Infos in einem anderen Thread würde ich ja gerne mal einen Blick auf MSEide werfen. Nun fahre ich hier FreeBSD11 32bit (der alte Laptop kommt mit 64bit nicht klar). Die Ide-Binary für FreeBSD ist aber für 64bit gemacht. Lässt sich das trotzdem irgendwie auf meinem System ausführen?
Ich mag Pascal...

mse
Beiträge: 2013
Registriert: Do 16. Okt 2008, 10:22
OS, Lazarus, FPC: Linux,Windows,FreeBSD,(MSEide+MSEgui 4.6,git master FPC 3.0.4,fixes_3_0)
CPU-Target: x86,x64,ARM

Re: MSEide unter FreeBSD 32bit

Beitrag von mse »

Ich habe kein 32-Bit FreeBSD und kann darum keine Binaries liefern. Fred hat die mselibc.pas unit entsprechend angepasst und sagt MSEide laufe unter 32 Bit FreeBSD.
Die Kompilierung geht mit

Code: Alles auswählen

 
fpc -Fulib/common/* -Fulib/common/kernel/linux apps/ide/mseide.pas
 

die angepasste mselibc.pas ist irgendwo hier:
https://github.com/fredvs/polYdev
am besten fragst du Fred, seine Email-Adresse ist hier angegeben:
https://github.com/fredvs

mse
Beiträge: 2013
Registriert: Do 16. Okt 2008, 10:22
OS, Lazarus, FPC: Linux,Windows,FreeBSD,(MSEide+MSEgui 4.6,git master FPC 3.0.4,fixes_3_0)
CPU-Target: x86,x64,ARM

Re: MSEide unter FreeBSD 32bit

Beitrag von mse »

Habe noch was gefunden:
Hello Martin.

I have added in /polYdev/mse_multisys/ ==> modified mselibc.pas.
This to make MSEgui demo compilable on FreeBSD 32 bit.

This was added at line 1003:

{$ifdef freebsd}
{$ifndef cpu64}
ino_t = __ino_t;
gid_t = __gid_t;
mode_t = __mode_t;
uid_t = __uid_t;
off_t = __off_t;
blkside_t = __blkside_t;
blkcnt_t = __blkcnt_t;
{$endif}
{$endif}

With this change, MSEide (and all other MSEgui applications) can be compiled-running for FreeBSD 64/32.

Huh, line 993: {$ifdef linux} could be changed in place of adding the above code.
But I do not know the syntax for {$if (def linux) or (def freebsd and def cpu32)}. ;-(

If you have plan to update MSEgui-Git to make MSEgui compilable-running on FreeBSD 32, of course I prefer the official mselibc.pas.
In attachment, working modified mselibc.pas.

PS: There is problem with fpc 3.0.0-FreeBSD-32bit and -XX parameter (smart link).
Tested on native FreeBSD 32 bit too and the problem is the same: wrong ELF indexed.
But without -XX, all fpc FreeBSD 32 applications run like charms.

Fre;D

Freds modifiziertes mselibc.pas ist im Anhang.
Dateianhänge
mselibc.pas
(97.08 KiB) 79-mal heruntergeladen

Marsmännchen
Beiträge: 294
Registriert: So 4. Mai 2014, 21:32
OS, Lazarus, FPC: Windows 10 64bit, Lazarus 2.0.10
CPU-Target: 64bit
Wohnort: Oranienburg

Re: MSEide unter FreeBSD 32bit

Beitrag von Marsmännchen »

... ich habs mit 32bit nicht hinbekommen. Liegt wohl an meinen rudimentären Kenntnissen. Allerdings werde ich mir in wenigen Tagen einen 64bit Laptop kaufen. Dann probier ich es nochmal.
Ich mag Pascal...

mse
Beiträge: 2013
Registriert: Do 16. Okt 2008, 10:22
OS, Lazarus, FPC: Linux,Windows,FreeBSD,(MSEide+MSEgui 4.6,git master FPC 3.0.4,fixes_3_0)
CPU-Target: x86,x64,ARM

Re: MSEide unter FreeBSD 32bit

Beitrag von mse »

Welche Probleme?
Mache ein Verzeichnis für MSEide+MSEgui in deinem home Verzeichnis, z.B. "msegui".
Entpacke mseide_msegui_src_4_4.zip von https://sourceforge.net/projects/mseide ... segui/4.4/ in ~/msegui.
Ersetze ~/msegui/lib/common/kernel/mselibc.pas durch mselibc.pas im vorletzten Beitrag.
Öffne ein Terminal in ~/msegui/, führe das Kommando

Code: Alles auswählen

 
fpc -Fulib/common/* -Fulib/common/kernel/linux apps/ide/mseide.pas
 

aus. Bitte berichte allfällige Fehler, das werde wir schon hinkriegen. :-)

Marsmännchen
Beiträge: 294
Registriert: So 4. Mai 2014, 21:32
OS, Lazarus, FPC: Windows 10 64bit, Lazarus 2.0.10
CPU-Target: 64bit
Wohnort: Oranienburg

Re: MSEide unter FreeBSD 32bit

Beitrag von Marsmännchen »

So eine Anleitung habe ich gebraucht. Sobald ich Zeit hab, probiere ich es
Ich mag Pascal...

Marsmännchen
Beiträge: 294
Registriert: So 4. Mai 2014, 21:32
OS, Lazarus, FPC: Windows 10 64bit, Lazarus 2.0.10
CPU-Target: 64bit
Wohnort: Oranienburg

Re: MSEide unter FreeBSD 32bit

Beitrag von Marsmännchen »

- doppelt gepostet...
Ich mag Pascal...

Marsmännchen
Beiträge: 294
Registriert: So 4. Mai 2014, 21:32
OS, Lazarus, FPC: Windows 10 64bit, Lazarus 2.0.10
CPU-Target: 64bit
Wohnort: Oranienburg

Re: MSEide unter FreeBSD 32bit

Beitrag von Marsmännchen »

Hi,

ich hab das jetzt mal deine Anweisungen blind befolgt (ich habe so eine grobe Ahnung, was da passiert :oops: ).

Bis zum Kompilieren lief alles gut, aber der fpc hat sich dann beschwert:
msesysintf.pas(982,13) Error: Identifier not found "rmdir"
msesysintf.pas(1395) Fatal: There were 1 errors compiling module, stopping
Fatal: Compilation aborted
Error: /usr/local/bin/ppc386 returned an error exitcode


Was da los ist, weiß ich nicht, FreeBSD kennt eigentlich rmdir...
Ich mag Pascal...

mse
Beiträge: 2013
Registriert: Do 16. Okt 2008, 10:22
OS, Lazarus, FPC: Linux,Windows,FreeBSD,(MSEide+MSEgui 4.6,git master FPC 3.0.4,fixes_3_0)
CPU-Target: x86,x64,ARM

Re: MSEide unter FreeBSD 32bit

Beitrag von mse »

In der mselibc.pas von Fred fehlt rmdir() tatsächlich. Ich werde eine eigene FreeBSD Version für 32 bit machen und hier posten, oder du kannst sie dann auch vom git Repo laden. Hast du git schon installiert?
EDIT:
Die aktualisierte mselibc.pas ist angehängt.
Praktischer ist die Arbeit mit git, vor allem wenn weitere Änderungen notwendig sein sollten.
Mache ein neues Verzeichnis für MSEide+MSEgui in deinem home Verzeichnis, z.B. "msegui_git".
Öffne ein Terminal in ~/msegui_git/, führe das Kommando

aus, bitte den abschliessenden "." nicht vergessen, sonst wird ein weiteres Unterverzeichnis erstellt.
Danach

Code: Alles auswählen

 
fpc -Fulib/common/* -Fulib/common/kernel/linux apps/ide/mseide.pas
 

Wenn es fehlerfrei kompiliert kannst du MSEide mit

Code: Alles auswählen

 
apps/ide/mseide
 

starten. Es kann sein, dass es kracht, dann müssen wir die Feldgrössen der libc Strukturen für 32 Bit anpassen.
Den neuesten MSEide+MSEgui Stand abholen geschieht durch

Code: Alles auswählen

 
git pull
 
Dateianhänge
mselibc.pas
(99.13 KiB) 76-mal heruntergeladen

Marsmännchen
Beiträge: 294
Registriert: So 4. Mai 2014, 21:32
OS, Lazarus, FPC: Windows 10 64bit, Lazarus 2.0.10
CPU-Target: 64bit
Wohnort: Oranienburg

Re: MSEide unter FreeBSD 32bit

Beitrag von Marsmännchen »

Hi,

Git ist bei FreeBSD standardmäßig mit drauf und ich hatte mich damit auch schon ein wenig beschäftigt. Von daher hat das Klonen des Repository problemlos geklappt. Das Kompilieren lief auch eine Weile gut, aber dann gab es doch einen Crash:
mmysqlconn.inc(53,7) Fatal: Can't find unit mysql40dyn used by mmysql40conn
Fatal: Compilation aborted
Error: /usr/local/bin/ppc386 returned an error exitcode
Ich mag Pascal...

mse
Beiträge: 2013
Registriert: Do 16. Okt 2008, 10:22
OS, Lazarus, FPC: Linux,Windows,FreeBSD,(MSEide+MSEgui 4.6,git master FPC 3.0.4,fixes_3_0)
CPU-Target: x86,x64,ARM

Re: MSEide unter FreeBSD 32bit

Beitrag von mse »

Bei mir ist die Datei in

Code: Alles auswählen

 
/usr/lib/fpc/3.0.2/units/i386-linux/mysql/mysql40dyn.ppu
 

Bitte kontrolliere deine Free Pascal Installation. Welche FPC Version benutzt du?

Benutzeravatar
photor
Beiträge: 443
Registriert: Mo 24. Jan 2011, 21:38
OS, Lazarus, FPC: Arch Linux: L 2.2.6 FPC 3.2.2 (Gtk2)
CPU-Target: 64Bit

Re: MSEide unter FreeBSD 32bit

Beitrag von photor »

Marsmännchen hat geschrieben:Git ist bei FreeBSD standardmäßig mit drauf


Hallo Marsmännchen,

bist Du da sicher? Ich habe Git aus den Ports installieren müssen. Was im Basis-System dabei ist: svn-lite, so dass man SVN nicht nachinstallieren muss, wenn es nur um's updaten des Systems und der Ports geht.

(Wenn die Info out-dated ist, dann kläre mich bitte auf ;) )

Ciao,

Photor

Marsmännchen
Beiträge: 294
Registriert: So 4. Mai 2014, 21:32
OS, Lazarus, FPC: Windows 10 64bit, Lazarus 2.0.10
CPU-Target: 64bit
Wohnort: Oranienburg

Re: MSEide unter FreeBSD 32bit

Beitrag von Marsmännchen »

Hallo Photor,

also bei meinem FreeBSD 11.0 wollte ich git per pkg nachinstallieren, worauf mein System mir sagte, dass dies nicht nötig sei, weil die vorhandene Version schon up to date wäre. Daher gehe ich davon aus, dass sich git ohne mein Zutun auf den Rechner geschlichen hat :D
Ich mag Pascal...

Marsmännchen
Beiträge: 294
Registriert: So 4. Mai 2014, 21:32
OS, Lazarus, FPC: Windows 10 64bit, Lazarus 2.0.10
CPU-Target: 64bit
Wohnort: Oranienburg

Re: MSEide unter FreeBSD 32bit

Beitrag von Marsmännchen »

Hallo mse,

ich habe fpc 3.0.0. Es ist bei mir unter /usr/local/lib/fpc/3.0.0/ installiert und da gibt es zwar die Ordner .../units/i386-freebsd/ aber dann keinen Unterordner mysql.

Die mysql40dyn.ppu konnte ich mit folgendem Befehl nicht finden: sudo find / -name "mysql40dyn.ppu"
Allerdings hat sich das System auch nach einer Weile verweigert: ....PfadZuMeinemHome/.gvfs: Operation not permitted
Eine zweite Suche, diesmal mit Joker, ergab folgendes: /usr/home/jweiss/fpc-3.0.0/packages/mysql/src/mysql40dyn.pp
Hmmm.... ich bin da nicht der Meister, aber ich dachte, Packages installiert man mit Lazarus :?:
Ich mag Pascal...

mse
Beiträge: 2013
Registriert: Do 16. Okt 2008, 10:22
OS, Lazarus, FPC: Linux,Windows,FreeBSD,(MSEide+MSEgui 4.6,git master FPC 3.0.4,fixes_3_0)
CPU-Target: x86,x64,ARM

Re: MSEide unter FreeBSD 32bit

Beitrag von mse »

Marsmännchen hat geschrieben:Hmmm.... ich bin da nicht der Meister, aber ich dachte, Packages installiert man mit Lazarus :?:

FPC-Teile vermutlich nicht. Ich weiss nicht wie das auf FreeBSD geregelt ist, Marco kann sicher Auskunft geben.
Vielleicht empfiehlt es sich eine eine normale vollständige FPC 3.0.2 Installation vorzunehmen.
fpc-3.0.2.i386-freebsd11.tar von
https://sourceforge.net/projects/freepa ... BSD/3.0.2/
herunterladen und entpacken, cd fpc-3.0.2.i386-freebsd und dann

Code: Alles auswählen

 
sudo ./install.sh
 

lib/fpc/3.0.2/units/i386-freebsd/mysql ist darin vorhanden.

Antworten