Domanda

Nel tentativo di compilare z / lib su z / OS USS (thats a destra un mainframe). Ive ha ottenuto gmake e il compilatore C89 (che im assumendo è standard C89 compliant) e USS si suppone che sia conforme a POSIX.

Ma zlib sembra essere inciampare su

struct internal_state FAR *state; /* not visible by applications */

con il seguente errore (s)

c89 -O3 -DUSE_MMAP -D_XOPEN_SOURCE_EXTENDED=1 -D_POSIX_SOURCE   -c -o example.o example.c
ERROR CCN3277 ./zlib.h:92    Syntax error: possible missing ';' or ','?
ERROR CCN3007 ./zlib.h:92    "struct internal_state" is undefined.
ERROR CCN3166 ./zlib.h:103   Definition of function FAR requires parentheses.
ERROR CCN3276 ./zlib.h:103   Syntax error: possible missing '{'?
ERROR CCN3273 ./zlib.h:124   Missing type in declaration of gz_header.
ERROR CCN3166 ./zlib.h:126   Definition of function gz_header requires parentheses.
ERROR CCN3276 ./zlib.h:126   Syntax error: possible missing '{'?
WARNING CCN3137 ./zlib.h:1346  Declaration must declare at least one declarator, tag, or the members of an enumeration.
ERROR CCN3275 ./zlib.h:1350  Unexpected text z encountered.
ERROR CCN3282 ./zlib.h:1350  The type of the parameters must be specified in a prototype.
ERROR CCN3275 ./example.c:95    Unexpected text file encountered.
ERROR CCN3045 ./example.c:95    Undeclared identifier gzFile.
ERROR CCN3046 ./example.c:96    Syntax error.
ERROR CCN3045 ./example.c:98    Undeclared identifier file.
ERROR CCN3019 ./example.c:523   Expecting an array or a pointer to object type.
ERROR CCN3280 ./example.c:527   Function argument assignment between types "const char*" and "int" is not allowed.
CCN0793(I) Compilation failed for file ./example.c.  Object file not created.
FSUM3065 The COMPILE step ended with return code 12.
FSUM3017 Could not compile example.c. Correct the errors and try again.
gmake: *** [example.o] Error 3

quando ho progressivamente estrarre il FAR * (Penso che sia un puntatore lontano, ma in realtà non im che sicuro) gli errori vanno via. Ma come questo è una libreria, non sono sicuro che cosa altri manufatti stanno per essere prodotto da rimozione di questa.

qualcuno ha ottenuto tutte le idee?

alcun responsabile mainframe vecchi là fuori?

È stato utile?

Soluzione

si scopre c'è una versione precedente di zlib che compila su USS, la versione 1.1.4 o vicino a quello. Il suo livello di nuovo, ma presumo che questo funziona perché è prima dell'attuazione del puntatore FAR nel codice più recente. Così atm penso Ive got a farlo funzionare.

Grazie per il vostro aiuto.

Saluti

Marco.

Altri suggerimenti

fino ad ora non è una parola chiave C89, è un Microsoft / Intelism ed è probabilmente #defined da qualche parte. In caso contrario, è necessario definire come nulla:

#define FAR

Tuttavia, questo sarà probabilmente risolvere solo uno dei tanti problemi. Direi che la libreria utilizza una forma di compilazione condizionale per gestire le cose come puntatori FAR -. È necessario leggere la documentazione per trovare quale configurazione è più suitabkle per la propria piattaforma

Mi piacerebbe usare xlc al posto di C89 dal XLC è il sistema compilatore di default, ma ci si può comunque probabilmente hanno problemi. Mi piacerebbe iscriversi alla mailing list MVS-OE, la gente su di essa sono molto utili. Il link per informazioni sulla lista sembra essere fin d'ora così inviare e-mail a LISTSERV@VM.MARIST.EDU  con il messaggio: INFO MVS-OE

FWIW, IBM fornisce una versione precompilata di zlib che include il supporto per l'hardware di compressione (cosiddetto zEDC) disponibili su mainframe recente-epoca. Vedere zlib per zEnterprise Data Compression

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top