[archimedes] Re: Systemaufrufe (SWI-Calls) von C aus unter RISC OS

  • From: Alexander Ausserstorfer <bavariasound@xxxxxxxxxxxxxxx>
  • To: archimedes@xxxxxxxxxxxxx
  • Date: Sun, 24 Aug 2014 13:34:48 +0200

In message <fe46af3754.cms@xxxxxxxxxxxxxxx>
          Carlos Michael Santillan <ml-archimedes@xxxxxxxxxx> wrote:

>> Ich weiß nicht wirklich, was der Unterschied zwischen UnixLib
>> (soft-float) und SharedCLibrary (hard-float) usw. ist.
>
> Moderne RISC OS Boards bieten mit VFP
> http://en.wikipedia.org/wiki/ARM_architecture#Floating-point_.28VFP.29
> die Möglichkeit manche Berechnungen deutlich zu beschleunigen. Wenn ich
> das richtig verstanden habe ist mit NEON noch mehr drin. Mit
> "hard-float", kann man VFP nutzen. Dazu braucht es aber zumindestens
> einen Rapsberry Pi. Damit Software auf möglichst vielen RISC OS Rechnern
> läuft muss man ein "Softie" sein. Alternativ könnte man auch beides zur
> Auswahl anbieten. Bei POP3S und SMTPS macht das bei der Verschlüsselung
> sicherlich Sinn, aber die Bibliotheken GNUTLS usw. nutzen das nicht.
> Beim Rest bis hin zum Frontend sehe ich keine zwingende Notwendigkeit.
>
> Du hast wohl die "harte" Version gewählt.

Das ist so:

Wenn man die Version für GCCSDK GCC 4.x, welche UnixLib (soft-float)
verwendet, installiert

http://downloads.sourceforge.net/ro-oslib/OSLib-elf-unixlib-softfloat-7.00.zip)

muss diese mit den Befehlen und Parametern

gcc -c -IOSLib: -o HelloWorld.o  HelloWorld.c
gcc -o HelloWorld HelloWorld.o -LOSLib:

aufgerufen werden. Das funktioniert hier, erzeugt aber eine ELF-Datei.
elf2aif funktioniert nicht. Hier kommt die Fehlermeldung:

"ELF file 'HelloWorld' contains non-static program data which makes it
unconvertable to AIF"

Wenn man die Version für GCCSDK GCC 4.x, welche das SharedCLibrary-Modul
verwendet, installiert

http://downloads.sourceforge.net/ro-oslib/OSLib-elf-scl-mod-hardfloat-7.00.zip

muss man diese mit den Befehlen bzw. Parametern

*gcc -c  -mlibscl -IOSLib: -o HelloWorld.o Helloworld.c
*gcc -o HelloWorld -mlibscl HelloWorld.o  -LOSLib:

aufrufen. Diese Version erzeugt eine Absolute-Datei. Die Option
-lOSlib32 habe ich entfernt, da sie hier nicht funktioniert.

Dann gibt es da noch eine dritte Version:

Version for GCCSDK GCC 4.x using SharedCLibrary application (hard-float)

Keine Ahnung, für was das ist. Ich kann kein OSLib-Verzeichnis im Archiv
finden.

Grundsätzlich funktionieren hier jetzt beide Versionen (UnixLib,
SharedCLibrary). Warum das früher nicht ging, kann ich im Nachhinein
nicht mehr recht sagen. Vielleicht habe ich die falsche Version mit den
falschen Parametern aufgerufen.

Wenn die Version von OSLib für die SharedCLibrary nicht zusammen mit
GnuTLS funktionieren sollte, dann habe ich natürlich ein Problem. Hab's
aber mangels Zeit im Augenblick noch nicht probiert.

Ciao,

Alex

-- 
http://home.chiemgau-net.de/ausserstorfer/
Sent wirelessly from RISC OS per LTE


Other related posts: