Your Browser is not longer supported

Please use Google Chrome, Mozilla Firefox or Microsoft Edge to view the page correctly
Loading...

{{viewport.spaceProperty.prod}}

Plattform-spezifische Besonderheiten auf Unix- und Linux-Systemen

COBOL-Programme können Sie entweder mit den Compilern von Micro Focus oder dem Compiler NetCOBOL von Fujitsu erstellen.

Dieses Unterkapitel beschreibt folgende Compiler-spezifische Besonderheiten:

  • Generierung

  • Schlüsselwörter

  • Umgebungsvariablen

  • Übersetzen von COBOL-Teilprogrammen

Einzelheiten zum Binden einer Anwendung und zum Erzeugen von Shared Objects finden Sie im Handbuch openUTM-Handbuch „Einsatz von UTM-Anwendungen auf Unix-, Linux- und Windows-Systemen“ im Unterkapitel „UTM-Prozess binden auf Unix- und Linux-Systemen".

Alle Programme der openUTM-Beispielanwendung sind an die unterschiedlichen COBOL-Compiler angepasst. Je nach ausgewähltem COBOL-Compiler wird die passende Umgebung eingestellt.

Generierung

Bei der Generierung müssen Sie für diese Programme folgende KDCDEF-Anweisung angeben:

  • Micro Focus COBOL:

    PROGRAM objectname, COMP=MFCOBOL [,SHARED-OBJECT=shared_object_name]

  • NetCOBOL:

    PROGRAM objectname, COMP=NETCOBOL [,SHARED-OBJECT=shared_object_name]

Schlüsselwörter

Micro Focus COBOL und NetCOBOL

In den COBOL-Compilern gibt es die Schlüsselwörter OBJECT-ID, RESTRICTED und USER. Diese Schlüsselwörter kollidieren mit Namen in den COPY-Elementen der UTM-Schnittstellen. Um diese Konflikte zu vermeiden, haben Sie zwei Möglichkeiten:

  • Wenn die COBOL-Teilprogramme nicht objektorientiert sind, haben Sie bei manchen Compilern die Möglichkeit, beim Übersetzen die Compiler-Schalter
    REMOVE(OBJECT-ID) , REMOVE(RESTRICTED) und REMOVE(USER) anzugeben.

  • Wenn der Compiler nicht über die REMOVE-Funktionalität verfügt, bzw. wenn die objektorientierte Funktionalität erhalten bleiben soll, müssen die COPY-Anweisungen beispielsweise wie folgt modifiziert werden:

    COPY COPY-Element REPLACING OBJECT-ID BY NEW-OBJECT-ID.
    COPY COPY-Element REPLACING RESTRICTED BY NEW-RESTRICTED.
    COPY COPY-Element REPLACING USER BY NEW-USER.

    Beim Datenzugriff müssen die neuen Namen verwendet werden.

NetCOBOL

In den von openUTM ausgelieferten COBOL-Copies KCAUSERC und KCAUSD2C ist jeweils ein Strukturfeld namens PASSWORD enthalten.

Da PASSWORD im NetCOBOL-Compiler ein reserviertes Wort ist, muss beim Inkludieren dieser Dateien in der COBOL-Source eine REPLACING-Anweisung ergänzt werden, z.B.

COPY KCAUSERC REPLACING PASSWORD BY PASSWORD-NC.

Reservierte Schlüsselwörter bei Verwendung von CPIC

Bei Micro Focus COBOL ist TIMEOUT ein reserviertes Wort. Da dieses Wort aber auf Grund der CPIC-Spezifikation in dem COBOL-Copy CMCOBOL enthalten ist, muss dieser Name im Source ersetzt werden, z.B.

COPY CMCOBOL REPLACING TIMEOUT BY CPIC-TIMEOUT.

Umgebungsvariable

Micro Focus COBOL

Wenn Sie COBOL-Teilprogramme mit Micro Focus COBOL verwenden, führen Sie folgende Schritte durch:

>

Rufen Sie das Skript <coboldir>/bin/cobsetenv auf. Dieses Skript setzt die notwendigen Umgebungsvariablen für den Compiler.

>

Erweitern Sie die Umgebungsvariable COBCPY um $UTMPATH/copy-cobol85.

>

Falls Sie Programme auf Basis von CPIC, TX bzw. XATMI unter openUTM erstellen, erweitern Sie die Umgebungsvariable COBCPY um $UTMPATH/<interface>/copy-cobol85, wobei <interface> für cpic, tx bzw. xatmi steht.

>

Falls Sie Client-Programme auf Basis von UPIC-L erstellen, erweitern Sie die Umgebungsvariable COBCPY um $UTMPATH/upicl/copy-cobol85.

>

Setzen Sie die Umgebungsvariable COBMODE:

  • Um 32-Bit Objekte zu erzeugen, setzen Sie sie auf 32.

  • Um 64-Bit-Objekte zu erzeugen, setzen Sie sie auf 64.

NetCOBOL

Wenn Sie NetCOBOL-Teilprogramme verwenden, führen Sie folgende Schritte durch:

>

Rufen Sie das Skript <COBOLDIR>/config/cobol.sh auf. Dieses Skript setzt die notwendigen Umgebungsvariablen.

>

Erweitern Sie die Umgebungsvariable COBCOPY um $UTMPATH/netcobol.

>

Setzen Sie die Umgebungsvariable COB_LIBSUFFIX auf None,CPY,cpy.

>

Falls Sie Programme auf Basis von CPIC, TX bzw. XATMI unter openUTM erstellen, erweitern Sie die Umgebungsvariable COB_COBCOPY um $UTMPATH/<interface>/netcobol, wobei <interface> für cpic, tx bzw. xatmi steht.

>

Falls Sie Client-Programme auf Basis von UPIC-L erstellen, erweitern Sie die Umgebungsvariable COB_COBCOPY um $UTMPATH/upicl/netcobol.

Übersetzen eines COBOL-Teilprogramms

Micro Focus COBOL

Micro Focus COBOL-Quellprogramme werden mit cob übersetzt. Dabei geben Sie folgende Schalter an:

-c
-x
-g

Erzeugen einer .o-Datei
für statisches Binden
damit beim Binden die Symboltabelle erhalten bleibt

NetCOBOL

NetCOBOL-Quellprogramme werden mit cobol erzeugt. Dabei geben Sie folgende Schalter an:

cobol -c WC'LIST,SOURCE,XREF,MESSAGE,COPY(FULL),SRF(VAR,FIX)' P'cobolprogramm.lst' cobolprogramm.cbl (Erzeugen einer .o-Datei)

Weitere Einzelheiten zum Erzeugen von UTM-Anwendungen mit COBOL-Programmen finden Sie im openUTM-Handbuch „Einsatz von UTM-Anwendungen auf Unix-, Linux- und Windows-Systemen“.