amiga-news ENGLISH VERSION
.
Links| Forum| Kommentare| News melden
.
Chat| Umfragen| Newsticker| Archiv
.

amiga-news.de Forum > Programmierung > gcc und include [ - Suche - Neue Beiträge - Registrieren - Login - ]

-1- [ - Beitrag schreiben - ]

23.03.2005, 22:44 Uhr

Robin
Posts: 1056
Nutzer
Ich habe mich entschlossen (mal wieder) c zu lernen.
Beginnen wollte ich damit ein paar Sachen zu compilieren um
zu sehen was passiert ...

Mein erstes "Opfer" sollte YAM sein. Leider bricht es
mit einer Fehlermeldung ab. (Ich habe den MorphOS-GCC von GoldEd AIX)

/gg/ppc-morphos/bin/ld: cannot open -lxpk: No such file or directory
collect2: ld returned 1 exit status
make: *** [YAM.mos] Error 1

Snoopdos listet dazu eine Menge FAILS mit .rpo am Ende
und sucht wie wild nach der Datei libxpk.a

785 [11] ld Lock usr:lib/libxpk.a Read Fail
786 [11] ld Open usr:lib/libxpk.a Read Fail
811 [1] collect2 Lock DH4:CVS/yamos/.obj_mos/YAM.rpo Read Fail
812 [1] collect2 Lock DH4:CVS/yamos/.obj_mos/YAM_AB.rpo Read Fail
813 [1] collect2 Lock DH4:CVS/yamos/.obj_mos/YAM_CO.rpo Read Fail
814 [1] collect2 Lock DH4:CVS/yamos/.obj_mos/YAM_COg.rpo Read Fail

Ich habe gegoogelt, habe mir das xpk-developer-paket geladen und
bin trotzdem immer noch nicht weiter, weil ich einfach nicht weiss
was ich machen muss , bzw was falsch laeuft.

Kann mir jemand einen Tip geben ?
--
my.morphosi.net

[ - Antworten - Zitieren - Direktlink - ]

24.03.2005, 09:23 Uhr

gni
Posts: 1106
Nutzer
Zitat:
Robin:
/gg/ppc-morphos/bin/ld: cannot open -lxpk: No such file or directory
collect2: ld returned 1 exit status
make: *** [YAM.mos] Error 1

Nimm -lxpk mal aus dem Makefile raus. Eventuell braucht man das gar nicht. Falls doch, dann besorg Dir auch gleich libamissl.a. Diese Bibliotheken kannst Du dann in gg:ppc-morphos/lib ablegen. Da ich kein MOS habe, muß das nicht unbedingt stimmen
Zitat:
Snoopdos listet dazu eine Menge FAILS mit .rpo am Ende
Das kannst Du ignorieren. AFAIK ist das nur bei C++ und Templates relevant (-frepo).

[ - Antworten - Zitieren - Direktlink - ]

24.03.2005, 09:50 Uhr

Robin
Posts: 1056
Nutzer
Zitat:
Nimm -lxpk mal aus dem Makefile raus. Eventuell braucht man das gar nicht. Falls doch, dann besorg Dir auch gleich libamissl.a. Diese Bibliotheken kannst Du dann in gg:ppc-morphos/lib ablegen.

Yam packt Dateien auf Wunsch mit xpk, ich brauche es also.
Mein Problem ist, dass im xpk-dev Archiv eine Datei mit
Namen libxpk.a nicht existiert. (Auch libamissl.a existiert nicht
im AmiSSL-SDK)
Ich nehme an ich muss sie irgendwie erstellen ... aber wie ?
--
my.morphosi.net

[ - Antworten - Zitieren - Direktlink - ]

24.03.2005, 10:57 Uhr

gni
Posts: 1106
Nutzer
Zitat:
Robin:
Zitat:
Nimm -lxpk mal aus dem Makefile raus. Eventuell braucht man das gar nicht. Falls doch, dann besorg Dir auch gleich libamissl.a. Diese Bibliotheken kannst Du dann in gg:ppc-morphos/lib ablegen.
Yam packt Dateien auf Wunsch mit xpk, ich brauche es also.
Was ist so schwer daran, meinen Vorschlag auszuprobieren? :-( Ich weis, das YAM auf Wunsch zum Packen verwendet. Das hat aber nichts mit dem Kompilieren zu tun.

[ - Antworten - Zitieren - Direktlink - ]

24.03.2005, 11:14 Uhr

Robin
Posts: 1056
Nutzer
ups ... ist natuerlich nicht schwer,sorry.

Linking YAM.mos
.obj_mos/YAM_COg.o: In function 'MakeXPKPop':
/GNU/yamos/YAM_COg.c:166: undefined reference to 'XpkQueryTags'
/GNU/yamos/YAM_COg.c:175: undefined reference to 'XpkQueryTags'
collect2: ld returned 1 exit status
make: *** [YAM.mos] Error 1

Was ich meinte war, das in Yam ja irgendwo diese xpk-routinen
aufgerufen werden und dann bricht es ab.
Daher denke ich, dass ich diese libXXX.a Dateien irgendwie brauche.
--
my.morphosi.net

[ - Antworten - Zitieren - Direktlink - ]

24.03.2005, 13:09 Uhr

DariusBrewka
Posts: 899
[Benutzer gesperrt]
Ich weiss nicht so 100%, aber kann fd2pragma diese Datei nicht erzeugen? ich denke xpkxxx.a wird nur dazu dienen Library aufrufe für die xpk.library zu vereinfachen oder?

[ - Antworten - Zitieren - Direktlink - ]

24.03.2005, 13:15 Uhr

Robin
Posts: 1056
Nutzer
@Darius

Ja, das hab ich mir auch schon runtergeladen.
Leider habe ich aber auch dabei keine Ahnung
wie man es anwendet ...

Ich habe aus dem XPK-Archiv nur Dateien
mit den Endungen .h und .c ... in den Beispielen
wird fd2pragma aber mit fd Dateien benutzt ...

Ich stehe voellig auf dem Schlauch :/
--
my.morphosi.net

[ - Antworten - Zitieren - Direktlink - ]

24.03.2005, 13:36 Uhr

gni
Posts: 1106
Nutzer
Zitat:
Robin:
/GNU/yamos/YAM_COg.c:166: undefined reference to 'XpkQueryTags'
/GNU/yamos/YAM_COg.c:175: undefined reference to 'XpkQueryTags'

Ändere die Regel zum Übersetzen (drüber steht "Compiling) und füge -DUSE_INLINE_STDARG hinzu. Dann löscht Du YAM_COg.o und übersetz noch mal. Wenn Du Meldungen über fehlende Referenzen zu AmiSSL-Funktionen bekommst, lösch Du diese Objekte auch und wirfst make dan wieder an.
Zitat:
Was ich meinte war, das in Yam ja irgendwo diese xpk-routinen aufgerufen werden und dann bricht es ab.
Daher denke ich, dass ich diese libXXX.a Dateien irgendwie brauche.

Funktionen aus shared-libraries werden inline aufgerufen. Damit das auch bei Varargs-Funktionen passiert, muß man eingreifen. In diesem Fall wäre es besser die Bibliotheken zu installieren.

[ Dieser Beitrag wurde von gni am 24.03.2005 editiert. ]

[ - Antworten - Zitieren - Direktlink - ]

24.03.2005, 13:52 Uhr

Robin
Posts: 1056
Nutzer
Zitat:
Original von gni:
Ändere die Regel zum Übersetzen (drüber steht "Compiling) und füge -DUSE_INLINE_STDARG hinzu. Dann löscht Du YAM_COg.o und übersetz noch mal. Wenn Du Meldungen über fehlende Referenzen zu AmiSSL-Funktionen bekommst, lösch Du diese Objekte auch und wirfst make dan wieder an.


cpp0: Internal compiler error in 'rescan', at ../../gcc/cccp.c:3174
Please submit a full bug report.
See <URL:http://www.gnu.org/software/gcc/bugs.html> for instructions.
make: *** [.obj_mos/YAM_AB.o] Error 1

Zitat:
Funktionen aus shared-libraries werden inline aufgerufen. Damit das auch bei Varargs-Funktionen passiert, muß man eingreifen. In diesem Fall wäre es besser die Bibliotheken zu installieren.

Da waere sie wieder meine Frage: Wie ?
Wie erstelle ich die libxpk.a / libamissl.a wenn ich
nur die .c .h Dateien habe ?
--
my.morphosi.net

[ - Antworten - Zitieren - Direktlink - ]

24.03.2005, 15:17 Uhr

gni
Posts: 1106
Nutzer
Zitat:
Robin:
Zitat:
gni:
-DUSE_INLINE_STDARG

cpp0: Internal compiler error in 'rescan', at ../../gcc/cccp.c:3174
Please submit a full bug report.
See <URL:http://www.gnu.org/software/gcc/bugs.html> for instructions.
make: *** [.obj_mos/YAM_AB.o] Error 1

Warum baust Du *alles* neu? :-( Bitte mache es genau wie vorher gesagt. Nur die löschen, die unresolved-Symbols haben.
Allerdings erklärt der Fehler, warum USE_INLINE_STADRG nicht benutzt wird.
Zitat:
Da waere sie wieder meine Frage: Wie ? Wie erstelle ich die libxpk.a / libamissl.a wenn ich nur die .c .h Dateien habe ?
Das kann ich Dir nicht genau sagen. fd2pragma müßte es können. Da sind Beispielskripte dabei. Eventuell helfen die.

[ - Antworten - Zitieren - Direktlink - ]

24.03.2005, 16:51 Uhr

Robin
Posts: 1056
Nutzer
Weil es einzeln gar nichts gebracht hat.
Dabei alles neu zu kompilieren kam wenigstens dieser Fehler.

Nochmal von vor:

Das Problem ist nicht der Compiler, nicht das Makefile
und auch nicht das Programm (YAM).
Mein Problem ist es, dass ich nicht weiss wie ich die
Includes von xpk und auch amissl so installiere, dass
dabei die libXXX.a Dateien erstellt werden.
--
my.morphosi.net

[ - Antworten - Zitieren - Direktlink - ]

24.03.2005, 18:27 Uhr

geit
Posts: 332
[Ex-Mitglied]
> Da waere sie wieder meine Frage: Wie ? Wie erstelle ich die libxpk.a / libamissl.a wenn ich nur die .c .h Dateien habe ?
Du mußt alle #?.c files, die in die lib gehören compilieren. Die #?.o files kannst du mit

ar -qs libxxx.a xx1.o xx2.o xx3.o ....

zusammenfassen und die lib erzeugen. Ich hoffe die Syntax stimmte jetzt so aus dem Kopf.

Guido Mersmann




[ Dieser Beitrag wurde von geit am 24.03.2005 editiert. ]

[ - Antworten - Zitieren - Direktlink - ]

25.03.2005, 01:09 Uhr

Dietmar
Posts: 166
Nutzer
Zitat:
Du mußt alle #?.c files, die in die lib gehören compilieren.

Ich verstehe zwar nichts von gcc aber meint er nicht die stubs für eine Shared-Library? Die fd/sfd-Datei(en) der Library durch fd2pragma schicken. Das macht dann daraus, je nach EXTRA/N-Parameter, eine proto-Datei, eine gcc-Inline-Datei oder Stubs. fd2pragma braucht i.d.R. nur drei Parameter: INFILE (die fd/sfd-Datei), TO (Zieldatei, in diesem Fall libxpk.a) und SPECIAL/N (Parameter der festlegt, was erzeugt werden soll). Im Falle von Stubs wird mit dem richtigen SPECIAL-Parameter direkt die Library zum Linken erzeugt, compilieren muss man nichts. Bei XPK liegt übrigens eine fd-Datei bei, im include-Verzeichnis: xpkmaster.fd. Für MorphOS ist SPECIAL/N wahrscheinlich ein Wert von denen hier (132/133 hören sich interessant an):

(MorphOS files)
130: Creates new style GCC inline files for MorphOS.
131: Creates old style GCC inline files for MorphOS.
132: Creates GCC library stubs for MorphOS.
133: Creates GCC library stubs for MorphOS with direct varargs.
134: Creates MorphOS gate stubs.
135: Creates MorphOS gate stubs with prefixed library base.
136: Creates MorphOS gate stubs with postfixed library base.
137: Like 135, but with register base.
138: Like 136, but with register base.

Wer GoldED benutzt und die inline/proto-Dateien für eine beliebige Shared-Library und gcc/68k erzeugen will, kann sich das Lesen der fd2pragma-Anleitung ersparen: im Extra-Menü "Rexx-Makro ausführen..." wählen und als Makro im Dateidialog "golded:add-ons/c++/rexx/gcc/inline.rexx" auswählen. Das führt durch die Schritte.

[ - Antworten - Zitieren - Direktlink - ]

25.03.2005, 02:48 Uhr

Robin
Posts: 1056
Nutzer
@Guido

Das mit dem ar hoert sich nach dem an was ich brauche :)
Leider schmeisst gcc mir wieder Sachen um die Ohren ;)

Test:xpk_Develop/Include/C/xpk> gcc -noixemul xpkLibHeader.c -o test
xpkLibHeader.c:22: parse error before 'LibExpunge'
xpkLibHeader.c:22: warning: 'struct XpkSubBase' declared inside parameter list
xpkLibHeader.c:22: warning: its scope is only this definition or declaration, which is probably not what you want.
xpkLibHeader.c:22: warning: data definition has no type or storage class
xpkLibHeader.c:23: parse error before 'LibClose'
xpkLibHeader.c:23: warning: 'struct XpkSubBase' declared inside parameter list
xpkLibHeader.c:23: warning: data definition has no type or storage class
xpkLibHeader.c:24: parse error before 'struct'
xpkLibHeader.c:58: parse error before 'LibExpunge'
xpkLibHeader.c:58: warning: 'struct XpkSubBase' declared inside parameter list
xpkLibHeader.c:59: conflicting types for 'LibExpunge'
xpkLibHeader.c:22: previous declaration of 'LibExpunge'
xpkLibHeader.c: In function 'LibExpunge':
xpkLibHeader.c:60: 'BPTR' undeclared (first use in this function)
xpkLibHeader.c:60: (Each undeclared identifier is reported only once
xpkLibHeader.c:60: for each function it appears in.)
xpkLibHeader.c:60: parse error before 'Result'
xpkLibHeader.c:63: dereferencing pointer to incomplete type
xpkLibHeader.c:66: dereferencing pointer to incomplete type
xpkLibHeader.c:68: dereferencing pointer to incomplete type
xpkLibHeader.c:76: 'Result' undeclared (first use in this function)
xpkLibHeader.c:76: dereferencing pointer to incomplete type
xpkLibHeader.c:79: dereferencing pointer to incomplete type
xpkLibHeader.c:80: dereferencing pointer to incomplete type
xpkLibHeader.c:80: dereferencing pointer to incomplete type
xpkLibHeader.c: At top level:
xpkLibHeader.c:88: parse error before 'LibClose'
xpkLibHeader.c:88: warning: 'struct XpkSubBase' declared inside parameter list
xpkLibHeader.c:89: conflicting types for 'LibClose'
xpkLibHeader.c:23: previous declaration of 'LibClose'
xpkLibHeader.c: In function 'LibClose':
xpkLibHeader.c:90: 'BPTR' undeclared (first use in this function)
xpkLibHeader.c:90: parse error before 'Result'
xpkLibHeader.c:92: dereferencing pointer to incomplete type
xpkLibHeader.c:94: dereferencing pointer to incomplete type
xpkLibHeader.c:95: 'Result' undeclared (first use in this function)
xpkLibHeader.c:95: warning: passing arg 1 of 'LibExpunge' from incompatible pointer type
xpkLibHeader.c: At top level:
xpkLibHeader.c:102: parse error before 'struct'
xpkLibHeader.c:127: 'XpkSubBase' undeclared here (not in a function)
xpkLibHeader.c:127: 'XpkSubBase' undeclared here (not in a function)
xpkLibHeader.c:127: initializer element is not constant
xpkLibHeader.c:127: parse error before '->'
xpkLibHeader.c:127: parse error before '->'
xpkLibHeader.c:127: parse error before '->'
xpkLibHeader.c:127: parse error before '->'
xpkLibHeader.c:128: warning: data definition has no type or storage class
xpkLibHeader.c:129: parse error before '}'
xpkLibHeader.c:141: 'LibOpen' undeclared here (not in a function)
xpkLibHeader.c:141: initializer element is not constant
xpkLibHeader.c:141: (near initialization for 'LibVectors[0]')
xpkLibHeader.c:145: 'LIBXpksPackerInfo' undeclared here (not in a function)
xpkLibHeader.c:145: initializer element is not constant
xpkLibHeader.c:145: (near initialization for 'LibVectors[4]')
xpkLibHeader.c:146: 'LIBXpksPackChunk' undeclared here (not in a function)
xpkLibHeader.c:146: initializer element is not constant
xpkLibHeader.c:146: (near initialization for 'LibVectors[5]')
xpkLibHeader.c:147: 'LIBXpksPackFree' undeclared here (not in a function)
xpkLibHeader.c:147: initializer element is not constant
xpkLibHeader.c:147: (near initialization for 'LibVectors[6]')
xpkLibHeader.c:148: 'LIBXpksPackReset' undeclared here (not in a function)
xpkLibHeader.c:148: initializer element is not constant
xpkLibHeader.c:148: (near initialization for 'LibVectors[7]')
xpkLibHeader.c:149: 'LIBXpksUnpackChunk' undeclared here (not in a function)
xpkLibHeader.c:149: initializer element is not constant
xpkLibHeader.c:149: (near initialization for 'LibVectors[8]')
xpkLibHeader.c:150: 'LIBXpksUnpackFree' undeclared here (not in a function)
xpkLibHeader.c:150: initializer element is not constant
xpkLibHeader.c:150: (near initialization for 'LibVectors[9]')
xpkLibHeader.c:156: 'LIBNAME' undeclared here (not in a function)
xpkLibHeader.c:156: initializer element is not constant
xpkLibHeader.c:156: (near initialization for 'LibInitData.d_Name')
xpkLibHeader.c:158: 'VERSION' undeclared here (not in a function)
xpkLibHeader.c:158: initializer element is not constant
xpkLibHeader.c:158: (near initialization for 'LibInitData.d_Version')
xpkLibHeader.c:159: 'REVISION' undeclared here (not in a function)
xpkLibHeader.c:159: initializer element is not constant
xpkLibHeader.c:159: (near initialization for 'LibInitData.d_Revision')
xpkLibHeader.c:160: 'IDSTRING' undeclared here (not in a function)
xpkLibHeader.c:160: initializer element is not constant
xpkLibHeader.c:160: (near initialization for 'LibInitData.d_IdString')
xpkLibHeader.c:169: sizeof applied to an incomplete type
xpkLibHeader.c:173: 'LibInit' undeclared here (not in a function)
xpkLibHeader.c:173: initializer element is not constant
xpkLibHeader.c:173: (near initialization for 'LibInitTable[3]')
xpkLibHeader.c:187: 'VERSION' undeclared here (not in a function)
xpkLibHeader.c:187: initializer element is not constant
xpkLibHeader.c:187: (near initialization for 'RomTag.rt_Version')
xpkLibHeader.c:190: 'LIBNAME' undeclared here (not in a function)
xpkLibHeader.c:190: initializer element is not constant
xpkLibHeader.c:190: (near initialization for 'RomTag.rt_Name')
xpkLibHeader.c:191: 'IDSTRING' undeclared here (not in a function)
xpkLibHeader.c:191: initializer element is not constant
xpkLibHeader.c:191: (near initialization for 'RomTag.rt_IdString')

@Dietmar

Ups, das FD Verzeichnis habe ich unter den anderen Programmiersprachen
glatt uebersehen. Und das Arexx-Skript platziert die noetigen Files im
GG ... das hilft bei der Installation :)
--
my.morphosi.net

[ - Antworten - Zitieren - Direktlink - ]

25.03.2005, 11:38 Uhr

Robin
Posts: 1056
Nutzer
@Dietmar

Mit fd2pragma erhalte ich folgendes (egal welche nr)

fd2pragma xpkmaster_lib.fd special 132 to libxpk.a
SourceFile: xpkmaster_lib.fd
Warning 46 : Missing the types definition file. Using internal defaults.
ResultFile: libxpk.a/xpkmaster.h
Error 38 : Could not open file "libxpk.a/xpkmaster.h".

Nachtrag:

mit diesem command erstellt es eine xpkmaster.h ... aber
hilft mir auch nicht weiter ???
fd2pragma :xpk_Develop/Include/FD/xpkmaster_lib.fd clib :xpk_Develop/Include/C/clib/xpkmaster_protos.h special 131 to ram:
--
my.morphosi.net

[ Dieser Beitrag wurde von Robin am 25.03.2005 editiert. ]

[ - Antworten - Zitieren - Direktlink - ]

25.03.2005, 13:14 Uhr

Robin
Posts: 1056
Nutzer
D A N K E ! An alle die mir geholfen haben :D

perl bin:cvinclude.pl --gluelib=libxpk.a --srcdir=dh2:xpk_Develop/Include/c --fd=dh2:xpk_Develop/Include/FD/xpkmaster_lib.fd --clibdir=dh2:xpk_Develop/Include/C/clib/xpkmaster_protos.h --destdir=ram:
--
my.morphosi.net

[ - Antworten - Zitieren - Direktlink - ]

25.03.2005, 18:58 Uhr

Dietmar
Posts: 166
Nutzer
Zitat:
Mit fd2pragma erhalte ich folgendes (egal welche nr)

Hast Du auch 12-14 ausprobiert?

12 - stub-functions for C - link library
13 - defines and link library for local library base (register call)
14 - defines and link library for local library base (stack call)

[ - Antworten - Zitieren - Direktlink - ]

25.03.2005, 20:40 Uhr

Robin
Posts: 1056
Nutzer
Zumindest habe ich es versucht ... mit usefd2pragma habe
ich soviele Varianten ausprobiert wie moeglich. Es kamen
aber irgendwie immer nur eine Zusammenstellung der Header
dabei raus ... Erst durch Einsatz des Perl-Scripts (s.o.)
habe ich dann endlich die libxpk.a und libamissl.a
erstellen koennen.

Und jetzt nutze ich ein selbstkompiliertes YAM :)

War nicht ganz so einfach wie ich gedacht habe, aber
Stueck fuer Stueck taste ich mich an gcc ran ...

Aber es scheint mir ich sollte doch vom anderen Ende
anfangen. Also erst mal selbst ein paar kleine c-programme
schreiben und dann sehen wie gcc darauf reagiert ;)

Aber eh das Fruechte traegt ist wohl wieder Weihnachten :)
Vielen Dank nochmal fuer die Hilfe. Ich komme bestimmt bald
mit c-Fragen :D
--
my.morphosi.net

[ - Antworten - Zitieren - Direktlink - ]

25.03.2005, 22:45 Uhr

Dietmar
Posts: 166
Nutzer
Zitat:
Original von Robin:
Zumindest habe ich es versucht ... mit usefd2pragma habe
ich soviele Varianten ausprobiert wie moeglich. Es kamen
aber irgendwie immer nur eine Zusammenstellung der Header
dabei raus ...


Hmm?!
3.System:> devkits:tools/fd2pragma/fd2pragma from=xpk_Develop/Include/FD/xpkmaster_lib.fd to=t: special=12 clib=xpk_Develop/Include/C/clib/xpkmaster_protos.h
SourceFile: xpk_Develop/Include/FD/xpkmaster_lib.fd
ResultFile: t:xpkmaster.lib

3.System:> devkits:tools/fd2pragma/fd2pragma from=xpk_Develop/Include/FD/xpkmaster_lib.fd to=t: special=13 clib=xpk_Develop/Include/C/clib/xpkmaster_protos.h
SourceFile: xpk_Develop/Include/FD/xpkmaster_lib.fd
ResultFile: t:xpkmaster_loc.h
ResultFile: t:xpkmaster_loc.lib

3.System:> devkits:tools/fd2pragma/fd2pragma from=xpk_Develop/Include/FD/xpkmaster_lib.fd to=t: special=14 clib=xpk_Develop/Include/C/clib/xpkmaster_protos.h
SourceFile: xpk_Develop/Include/FD/xpkmaster_lib.fd
ResultFile: t:xpkmaster_loc.h
ResultFile: t:xpkmaster_loc.lib

Funktioniert doch? (*.lib)

[ - Antworten - Zitieren - Direktlink - ]

26.03.2005, 04:57 Uhr

Robin
Posts: 1056
Nutzer
Zitat:
Funktioniert doch? (*.lib)

Stimmt :glow:

Da hab ich wohl gepennt.
--
my.morphosi.net

[ - Antworten - Zitieren - Direktlink - ]


-1- [ - Beitrag schreiben - ]


amiga-news.de Forum > Programmierung > gcc und include [ - Suche - Neue Beiträge - Registrieren - Login - ]


.
Impressum | Datenschutzerklärung | Netiquette | Werbung | Kontakt
Copyright © 1998-2024 by amiga-news.de - alle Rechte vorbehalten.
.