taken from /usr/src/gnu/lib/libg2c/g2c.h of FreeBSD 6.2-RELEASE --- src/xsum0.out Mon Jan 15 16:39:12 2007 +++ src/xsum0.out Mon Jan 15 16:39:45 2007 @@ -10,7 +10,7 @@ expr.c 6bfe005 72276 f2c.1 b0441b2 7532 f2c.1t bf1f87 7574 -f2c.h e770b7d8 4688 +f2c.h 119ccae4 5589 format.c bc32336 59652 format.h b396862 458 formatdata.c 11a95834 28870 --- libf2c/f2c.h0.orig Tue Sep 7 13:46:24 1999 +++ libf2c/f2c.h0 Mon Jan 15 16:39:12 2007 @@ -1,4 +1,13 @@ -/* f2c.h -- Standard Fortran to C header file */ +/* g2c.h -- g77 version of f2c (Standard Fortran to C header file) */ + +/* This file is generated by the g77 libg2c configuration process from a + file named g2c.hin. This process sets up the appropriate types, + defines the appropriate macros, and so on. The resulting g2c.h file + is used to build g77's copy of libf2c, named libg2c, and also can + be used when compiling C code produced by f2c to link the resulting + object file(s) with those produced by the same version of g77 that + produced this file, allowing inter-operability of f2c-compiled and + g77-compiled code. */ /** barf [ba:rf] 2. "He suggested using FORTRAN, and everybody barfed." @@ -7,24 +16,24 @@ #ifndef F2C_INCLUDE #define F2C_INCLUDE -typedef long int integer; -typedef unsigned long int uinteger; +/* F2C_INTEGER will normally be `int' but would be `long' on 16-bit systems */ +/* we assume short, float are OK */ +typedef int /* long int */ integer; +typedef unsigned long int /* long */ uinteger; typedef char *address; typedef short int shortint; typedef float real; typedef double doublereal; typedef struct { real r, i; } complex; typedef struct { doublereal r, i; } doublecomplex; -typedef long int logical; +typedef int /* long int */ logical; typedef short int shortlogical; typedef char logical1; typedef char integer1; -#ifdef INTEGER_STAR_8 /* Adjust for integer*8. */ -typedef long long longint; /* system-dependent */ -typedef unsigned long long ulongint; /* system-dependent */ +typedef long long int /* long long */ longint; /* system-dependent */ +typedef unsigned long long int /* long long */ ulongint; /* system-dependent */ #define qbit_clear(a,b) ((a) & ~((ulongint)1 << (b))) #define qbit_set(a,b) ((a) | ((ulongint)1 << (b))) -#endif #define TRUE_ (1) #define FALSE_ (0) @@ -37,14 +46,15 @@ /* I/O stuff */ #ifdef f2c_i2 +#error "f2c_i2 will not work with g77!!!!" /* for -i2 */ typedef short flag; typedef short ftnlen; typedef short ftnint; #else -typedef long int flag; -typedef long int ftnlen; -typedef long int ftnint; +typedef int /* long int */ flag; +typedef int /* long int */ ftnlen; +typedef int /* long int */ ftnint; #endif /*external read, write*/ @@ -201,6 +211,9 @@ /* undef any lower-case symbols that your C compiler predefines, e.g.: */ #ifndef Skip_f2c_Undefs +/* (No such symbols should be defined in a strict ANSI C compiler. + We can avoid trouble with f2c-translated code by using + gcc -ansi [-traditional].) */ #undef cray #undef gcos #undef mc68010 --- src/f2c.h.orig Mon Jan 15 16:39:12 2007 +++ src/f2c.h Mon Jan 15 16:39:12 2007 @@ -1,4 +1,13 @@ -/* f2c.h -- Standard Fortran to C header file */ +/* g2c.h -- g77 version of f2c (Standard Fortran to C header file) */ + +/* This file is generated by the g77 libg2c configuration process from a + file named g2c.hin. This process sets up the appropriate types, + defines the appropriate macros, and so on. The resulting g2c.h file + is used to build g77's copy of libf2c, named libg2c, and also can + be used when compiling C code produced by f2c to link the resulting + object file(s) with those produced by the same version of g77 that + produced this file, allowing inter-operability of f2c-compiled and + g77-compiled code. */ /** barf [ba:rf] 2. "He suggested using FORTRAN, and everybody barfed." @@ -7,24 +16,24 @@ #ifndef F2C_INCLUDE #define F2C_INCLUDE -typedef long int integer; -typedef unsigned long int uinteger; +/* F2C_INTEGER will normally be `int' but would be `long' on 16-bit systems */ +/* we assume short, float are OK */ +typedef int /* long int */ integer; +typedef unsigned long int /* long */ uinteger; typedef char *address; typedef short int shortint; typedef float real; typedef double doublereal; typedef struct { real r, i; } complex; typedef struct { doublereal r, i; } doublecomplex; -typedef long int logical; +typedef int /* long int */ logical; typedef short int shortlogical; typedef char logical1; typedef char integer1; -#ifdef INTEGER_STAR_8 /* Adjust for integer*8. */ -typedef long long longint; /* system-dependent */ -typedef unsigned long long ulongint; /* system-dependent */ +typedef long long int /* long long */ longint; /* system-dependent */ +typedef unsigned long long int /* long long */ ulongint; /* system-dependent */ #define qbit_clear(a,b) ((a) & ~((ulongint)1 << (b))) #define qbit_set(a,b) ((a) | ((ulongint)1 << (b))) -#endif #define TRUE_ (1) #define FALSE_ (0) @@ -37,14 +46,15 @@ /* I/O stuff */ #ifdef f2c_i2 +#error "f2c_i2 will not work with g77!!!!" /* for -i2 */ typedef short flag; typedef short ftnlen; typedef short ftnint; #else -typedef long int flag; -typedef long int ftnlen; -typedef long int ftnint; +typedef int /* long int */ flag; +typedef int /* long int */ ftnlen; +typedef int /* long int */ ftnint; #endif /*external read, write*/ @@ -201,6 +211,9 @@ /* undef any lower-case symbols that your C compiler predefines, e.g.: */ #ifndef Skip_f2c_Undefs +/* (No such symbols should be defined in a strict ANSI C compiler. + We can avoid trouble with f2c-translated code by using + gcc -ansi [-traditional].) */ #undef cray #undef gcos #undef mc68010