diff -Naur src.orig/Imakefile src.new/Imakefile --- src.orig/Imakefile 1996-12-16 16:08:41.000000000 +0100 +++ src.new/Imakefile 2011-07-26 15:28:16.000000000 +0200 @@ -7,7 +7,7 @@ SUBDIRS= $(LIBDIRS) patchy cfortran #ifdef CERNLIB_UNIX -SUBDIRS:= $(SUBDIRS) scripts mgr +SUBDIRS:= $(SUBDIRS) scripts #endif InstallLibSubdirs($(LIBDIRS)) diff -Naur src.orig/cfortran/Examples/hbook-cwn.c src.new/cfortran/Examples/hbook-cwn.c --- src.orig/cfortran/Examples/hbook-cwn.c 2002-09-12 18:05:18.000000000 +0200 +++ src.new/cfortran/Examples/hbook-cwn.c 2011-07-26 15:28:16.000000000 +0200 @@ -8,6 +8,8 @@ typedef float PAWC_DEF[PAWC_SIZE]; #define PAWC COMMON_BLOCK(PAWC,pawc) COMMON_BLOCK_DEF(PAWC_DEF,PAWC); +/* 64 bit architectures require this to be loaded in the 32 bit address space */ +struct { float r; } mycwn; main() { @@ -15,7 +17,7 @@ int record_size=1024; int istat, n, icycle; - struct { float r; } mycwn; + /* struct { float r; } mycwn; */ HLIMIT(PAWC_SIZE); diff -Naur src.orig/cfortran/Examples/hbook-cwnc.c src.new/cfortran/Examples/hbook-cwnc.c --- src.orig/cfortran/Examples/hbook-cwnc.c 2002-09-12 18:05:18.000000000 +0200 +++ src.new/cfortran/Examples/hbook-cwnc.c 2011-07-26 15:28:16.000000000 +0200 @@ -8,6 +8,9 @@ typedef float PAWC_DEF[PAWC_SIZE]; #define PAWC COMMON_BLOCK(PAWC,pawc) COMMON_BLOCK_DEF(PAWC_DEF,PAWC); +/* 64 bit architectures require this to be loaded in the 32 bit address space */ +struct { int align; char a[8]; char b[3][4];} m; +struct { int align; char c[4]; } n; main() { @@ -32,8 +35,8 @@ which ensures that the subsequent character arrays are aligned. HBNAMC requires the characters to be aligned. */ - struct { int align; char a[8]; char b[3][4];} m; - struct { int align; char c[4]; } n; + /* struct { int align; char a[8]; char b[3][4];} m; + struct { int align; char c[4]; } n; */ HBNAMC(1,"BLOCK",m.a,"A:C*8,B(3):C"); HBNAMC(1,"BLOCK",n.c,"C:C"); diff -Naur src.orig/cfortran/Examples/pamain.c src.new/cfortran/Examples/pamain.c --- src.orig/cfortran/Examples/pamain.c 2002-09-12 18:05:18.000000000 +0200 +++ src.new/cfortran/Examples/pamain.c 2011-08-02 12:13:07.000000000 +0200 @@ -2,6 +2,7 @@ #include #include #include +#include #define PAWC_SIZE 9000000 diff -Naur src.orig/cfortran/cfortran.doc src.new/cfortran/cfortran.doc --- src.orig/cfortran/cfortran.doc 1998-12-11 18:17:09.000000000 +0100 +++ src.new/cfortran/cfortran.doc 2011-07-26 15:28:16.000000000 +0200 @@ -195,13 +195,13 @@ HP9000> f77 -c cfortex.f HP9000> CC -o cfortest cfortest.c cfortex.o -lI77 -lF77 && cfortest -HP0000> # If old-style f77 +800 compiled objects are required: +HP9000> # If old-style f77 +800 compiled objects are required: HP9000> # #define hpuxFortran800 HP9000> cc -c -Aa -DhpuxFortran800 cfortest.c HP9000> f77 +800 -o cfortest cfortest.o cfortex.f f2c> # In the following, 'CC' is any C compiler. -f2c> f2c -R cfortex.f +f2c> f2c cfortex.f f2c> CC -o cfortest -Df2cFortran cfortest.c cfortex.c -lf2c && cfortest Portland Group $ # Presumably other C compilers also work. @@ -533,9 +533,10 @@ FORTRAN_REAL thus corresponds to FORTRAN's REAL on all machines, including t3e. -o f2c - f2c, by default promotes REAL functions to double. cfortran.h does not (yet) -support this, so the f2c -R option must be used to turn this promotion off. +o f2c / g77 + f2c and g77 by default promote REAL functions to double. As of December 9, +2005, the Debian package of cfortran supports this behavior, so the f2c -R +option must *NOT* be used to turn this promotion off. o f2c [Thanks to Dario Autiero for pointing out the following.] @@ -573,6 +574,11 @@ #endif /* Last three lines are a work-around for the strange f2c naming feature. */ +o gfortran + gfortran behaves similarly to f2c and g77, EXCEPT that it does NOT by default +promote REAL functions to double. Therefore you should use -DgFortran instead +of -Dg77Fortran or -Df2cFortran to let cfortran.h know about this difference. + o NAG f90 The Fortran 77 subset of Fortran 90 is supported. Extending cfortran.h to interface C with all of Fortran 90 has not yet been examined. @@ -643,7 +649,7 @@ [For an ancient math.h on a 386 or sparc, get similar from a new math.h.] #ifdef mc68000 /* 5 lines Copyright (c) 1988 by Sun Microsystems, Inc. */ #define FLOATFUNCTIONTYPE int - #define RETURNFLOAT(x) return (*(int *)(&(x))) + #define RETURNFLOAT(x) return (*(int *)(&(x))) #define ASSIGNFLOAT(x,y) *(int *)(&x) = y #endif @@ -874,7 +880,7 @@ works everywhere and would seem to be an obvious choice. -3. +3. cfortran.h encourages the exact specification of the type and dimension of array parameters because it allows the C compiler to detect errors in the diff -Naur src.orig/cfortran/cfortran.h src.new/cfortran/cfortran.h --- src.orig/cfortran/cfortran.h 2002-09-11 19:05:51.000000000 +0200 +++ src.new/cfortran/cfortran.h 2011-07-26 15:28:16.000000000 +0200 @@ -1,4 +1,4 @@ -/* cfortran.h 4.4_cernlib2002 */ +/* cfortran.h 4.4 */ /* http://www-zeus.desy.de/~burow/cfortran/ */ /* Burkhard Burow burow@desy.de 1990 - 2002. */ @@ -11,11 +11,108 @@ MODIFYING, COPYING AND DISTRIBUTING THE CFORTRAN.H PACKAGE. */ +/* THIS PACKAGE, I.E. CFORTRAN.H, THIS DOCUMENT, AND THE CFORTRAN.H EXAMPLE +PROGRAMS ARE PROPERTY OF THE AUTHOR WHO RESERVES ALL RIGHTS. THIS PACKAGE AND +THE CODE IT PRODUCES MAY BE FREELY DISTRIBUTED WITHOUT FEES, SUBJECT +(AT YOUR CHOICE) EITHER TO THE GNU LIBRARY GENERAL PUBLIC LICENSE +AT http://www.gnu.org/licenses/lgpl.html OR TO THE FOLLOWING RESTRICTIONS: +- YOU MUST ACCOMPANY ANY COPIES OR DISTRIBUTION WITH THIS (UNALTERED) NOTICE. +- YOU MAY NOT RECEIVE MONEY FOR THE DISTRIBUTION OR FOR ITS MEDIA + (E.G. TAPE, DISK, COMPUTER, PAPER.) +- YOU MAY NOT PREVENT OTHERS FROM COPYING IT FREELY. +- YOU MAY NOT DISTRIBUTE MODIFIED VERSIONS WITHOUT CLEARLY DOCUMENTING YOUR + CHANGES AND NOTIFYING THE AUTHOR. +- YOU MAY NOT MISREPRESENTED THE ORIGIN OF THIS SOFTWARE, EITHER BY EXPLICIT + CLAIM OR BY OMISSION. + +THE INTENT OF THE ABOVE TERMS IS TO ENSURE THAT THE CFORTRAN.H PACKAGE NOT BE +USED FOR PROFIT MAKING ACTIVITIES UNLESS SOME ROYALTY ARRANGEMENT IS ENTERED +INTO WITH ITS AUTHOR. + +THIS SOFTWARE IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER +EXPRESSED OR IMPLIED. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE +SOFTWARE IS WITH YOU. SHOULD THE SOFTWARE PROVE DEFECTIVE, YOU ASSUME THE COST +OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. THE AUTHOR IS NOT RESPONSIBLE +FOR ANY SUPPORT OR SERVICE OF THE CFORTRAN.H PACKAGE. + + Burkhard Burow + burow@desy.de +*/ + +/* The following modifications were made by the authors of CFITSIO or by me. + * They are flagged below with CFITSIO, the author's initials, or KMCCARTY. + * PDW = Peter Wilson + * DM = Doug Mink + * LEB = Lee E Brotzman + * MR = Martin Reinecke + * WDP = William D Pence + * BR = Bastien ROUCARIES + * -- Kevin McCarty, for Debian (19 Dec. 2005) */ + +/******* + Modifications: + Oct 1997: Changed symbol name extname to appendus (PDW/HSTX) + (Conflicted with a common variable name in FTOOLS) + Nov 1997: If g77Fortran defined, also define f2cFortran (PDW/HSTX) + Feb 1998: Let VMS see the NUM_ELEMS code. Lets programs treat + single strings as vectors with single elements + Nov 1999: If macintoxh defined, also define f2cfortran (for Mac OS-X) + Apr 2000: If WIN32 defined, also define PowerStationFortran and + VISUAL_CPLUSPLUS (Visual C++) + Jun 2000: If __GNUC__ and linux defined, also define f2cFortran + (linux/gcc environment detection) + Apr 2002: If __CYGWIN__ is defined, also define f2cFortran + Nov 2002: If __APPLE__ defined, also define f2cfortran (for Mac OS-X) + + Nov 2003: If __INTEL_COMPILER or INTEL_COMPILER defined, also define + f2cFortran (KMCCARTY) + Dec 2005: If f2cFortran is defined, enforce REAL functions in FORTRAN + returning "double" in C. This was one of the items on + Burkhard's TODO list. (KMCCARTY) + Dec 2005: Modifications to support 8-byte integers. (MR) + USE AT YOUR OWN RISK! + Feb 2006 Added logic to typedef the symbol 'LONGLONG' to an appropriate + intrinsic 8-byte integer datatype (WDP) + Apr 2006: Modifications to support gfortran (and g77 with -fno-f2c flag) + since by default it returns "float" for FORTRAN REAL function. + (KMCCARTY) + May 2008: Revert commenting out of "extern" in COMMON_BLOCK_DEF macro. + Add braces around do-nothing ";" in 3 empty while blocks to + get rid of compiler warnings. Thanks to ROOT developers + Jacek Holeczek and Rene Brun for these suggestions. (KMCCARTY) + Aug 2008: If __GNUC__ is defined and no FORTRAN compiler is specified + via a #define or -D, default to gfortran behavior rather than + g77 behavior. (KMCCARTY) + Oct 2009: Add warning if guessing default fortran. Move g77 above guessing bloc + *******/ + /* Avoid symbols already used by compilers and system *.h: __ - OSF1 zukal06 V3.0 347 alpha, cc -c -std1 cfortest.c - */ +*/ + +/* + Determine what 8-byte integer data type is available. + 'long long' is now supported by most compilers, but older + MS Visual C++ compilers before V7.0 use '__int64' instead. (WDP) +*/ + +#ifndef LONGLONG_TYPE /* this may have been previously defined */ +#if defined(_MSC_VER) /* Microsoft Visual C++ */ + +#if (_MSC_VER < 1300) /* versions earlier than V7.0 do not have 'long long' */ + typedef __int64 LONGLONG; +#else /* newer versions do support 'long long' */ + typedef long long LONGLONG; +#endif + +#else + typedef long long LONGLONG; +#endif + +#define LONGLONG_TYPE +#endif /* First prepare for the C compiler. */ @@ -75,7 +172,13 @@ /* Remainder of cfortran.h depends on the Fortran compiler. */ -#if defined(CLIPPERFortran) || defined(pgiFortran) +/* 11/29/2003 (KMCCARTY): add *INTEL_COMPILER symbols here */ +/* 04/05/2006 (KMCCARTY): add gFortran symbol here */ +#if defined(CLIPPERFortran) || defined(pgiFortran) || defined(__INTEL_COMPILER) || defined(INTEL_COMPILER) || defined(gFortran) +#define f2cFortran +#endif + +#if defined(g77Fortran) /* 11/03/97 PDW (CFITSIO) */ #define f2cFortran #endif @@ -84,12 +187,37 @@ #if !(defined(NAGf90Fortran)||defined(f2cFortran)||defined(hpuxFortran)||defined(apolloFortran)||defined(sunFortran)||defined(IBMR2Fortran)||defined(CRAYFortran)) #if !(defined(mipsFortran)||defined(DECFortran)||defined(vmsFortran)||defined(CONVEXFortran)||defined(PowerStationFortran)||defined(AbsoftUNIXFortran)||defined(AbsoftProFortran)||defined(SXFortran)) /* If no Fortran compiler is given, we choose one for the machines we know. */ +#if defined(__GNUC__) || defined(WIN32) /* 10/2009 BR: warm if guess */ +#warning "Please specify the fortran compiler using -D flags. Try to guess the compiler used" +#endif #if defined(lynx) || defined(VAXUltrix) #define f2cFortran /* Lynx: Only support f2c at the moment. VAXUltrix: f77 behaves like f2c. Support f2c or f77 with gcc, vcc with f2c. f77 with vcc works, missing link magic for f77 I/O.*/ #endif +/* 04/13/00 DM (CFITSIO): Add these lines for NT */ +/* with PowerStationFortran and and Visual C++ */ +#if defined(WIN32) && !defined(__CYGWIN__) +#define PowerStationFortran +#define VISUAL_CPLUSPLUS +#endif +#if defined(__CYGWIN__) /* 04/11/02 LEB (CFITSIO) */ +#define f2cFortran +#define gFortran /* 8/26/08 (KMCCARTY) */ +#endif +#if defined(__GNUC__) && defined(linux) /* 06/21/00 PDW (CFITSIO) */ +#define f2cFortran +#define gFortran /* 8/26/08 (KMCCARTY) */ +#endif +#if defined(macintosh) /* 11/1999 (CFITSIO) */ +#define f2cFortran +#define gFortran /* 8/26/08 (KMCCARTY) */ +#endif +#if defined(__APPLE__) /* 11/2002 (CFITSIO) */ +#define f2cFortran +#define gFortran /* 8/26/08 (KMCCARTY) */ +#endif #if defined(__hpux) /* 921107: Use __hpux instead of __hp9000s300 */ #define hpuxFortran /* Should also allow hp9000s7/800 use.*/ #endif @@ -131,6 +259,7 @@ #if !(defined(mipsFortran)||defined(DECFortran)||defined(vmsFortran)||defined(CONVEXFortran)||defined(PowerStationFortran)||defined(AbsoftUNIXFortran)||defined(AbsoftProFortran)||defined(SXFortran)) /* If your compiler barfs on ' #error', replace # with the trigraph for # */ #error "cfortran.h: Can't find your environment among:\ + - GNU gcc (gfortran) on Linux. \ - MIPS cc and f77 2.0. (e.g. Silicon Graphics, DECstations, ...) \ - IBM AIX XL C and FORTRAN Compiler/6000 Version 01.01.0000.0000 \ - VAX VMS CC 3.1 and FORTRAN 5.4. \ @@ -147,11 +276,14 @@ - VAXUltrix: vcc,cc or gcc with f2c. gcc or cc with f77. \ - f77 with vcc works; but missing link magic for f77 I/O. \ - NO fort. None of gcc, cc or vcc generate required names.\ - - f2c : Use #define f2cFortran, or cc -Df2cFortran \ + - f2c/g77: Use #define f2cFortran, or cc -Df2cFortran \ + - gfortran: Use #define gFortran, or cc -DgFortran \ + (also necessary for g77 with -fno-f2c option) \ - NAG f90: Use #define NAGf90Fortran, or cc -DNAGf90Fortran \ - Absoft UNIX F77: Use #define AbsoftUNIXFortran or cc -DAbsoftUNIXFortran \ - Absoft Pro Fortran: Use #define AbsoftProFortran \ - - Portland Group Fortran: Use #define pgiFortran" + - Portland Group Fortran: Use #define pgiFortran \ + - Intel Fortran: Use #define INTEL_COMPILER" /* Compiler must throw us out at this point! */ #endif #endif @@ -164,7 +296,8 @@ /* Throughout cfortran.h we use: UN = Uppercase Name. LN = Lowercase Name. */ -#if defined(f2cFortran) || defined(NAGf90Fortran) || defined(DECFortran) || defined(mipsFortran) || defined(apolloFortran) || defined(sunFortran) || defined(CONVEXFortran) || defined(SXFortran) || defined(extname) +/* "extname" changed to "appendus" below (CFITSIO) */ +#if defined(f2cFortran) || defined(NAGf90Fortran) || defined(DECFortran) || defined(mipsFortran) || defined(apolloFortran) || defined(sunFortran) || defined(CONVEXFortran) || defined(SXFortran) || defined(appendus) #define CFC_(UN,LN) _(LN,_) /* Lowercase FORTRAN symbols. */ #define orig_fcallsc(UN,LN) CFC_(UN,LN) #else @@ -268,7 +401,7 @@ #endif #ifndef apolloFortran -#define COMMON_BLOCK_DEF(DEFINITION, NAME) DEFINITION NAME +#define COMMON_BLOCK_DEF(DEFINITION, NAME) extern DEFINITION NAME #define CF_NULL_PROTO #else /* HP doesn't understand #elif. */ /* Without ANSI prototyping, Apollo promotes float functions to double. */ @@ -453,7 +586,7 @@ {char *e; e = s + strlen(s); if (e>s) { /* Need this to handle NULL string.*/ - while (e>s && *--e==t); /* Don't follow t's past beginning. */ + while (e>s && *--e==t) {;} /* Don't follow t's past beginning. */ e[*e==t?0:1] = '\0'; /* Handle s[0]=t correctly. */ } return s; } @@ -469,7 +602,7 @@ { if (e==s) *e = '\0'; /* Kill the string makes sense here.*/ else if (e>s) { /* Watch out for neg. length string.*/ - while (e>s && *--e==t); /* Don't follow t's past beginning. */ + while (e>s && *--e==t){;} /* Don't follow t's past beginning. */ e[*e==t?0:1] = '\0'; /* Handle s[0]=t correctly. */ } return s; } @@ -512,7 +645,7 @@ *( (F).dsc$l_m[0]=(F).dsc$bounds[0].dsc$l_u=(ELEMNO) ), \ (F).dsc$a_a0 = ( (F).dsc$a_pointer=(C) ) - (F).dsc$w_length ,(F)) -#else +#endif /* PDW: 2/10/98 (CFITSIO) -- Let VMS see NUM_ELEMS definitions */ #define _NUM_ELEMS -1 #define _NUM_ELEM_ARG -2 #define NUM_ELEMS(A) A,_NUM_ELEMS @@ -534,13 +667,18 @@ return term_char; if (num_term <=0) num_term = (int)elem_len; for (num=0; ; num++) { - for (i=0; i<(unsigned)num_term && *strv==term_char; i++,strv++); + for (i=0; i<(unsigned)num_term && *strv==term_char; i++,strv++){;} if (i==(unsigned)num_term) break; else strv += elem_len-i; } +if (0) { /* to prevent not used warnings in gcc (added by ROOT) */ + c2fstrv(0, 0, 0, 0); f2cstrv(0, 0, 0, 0); kill_trailing(0, 0); + vkill_trailing(0, 0, 0, 0); num_elem(0, 0, 0, 0); +} return (int)num; } -#endif +/* #endif removed 2/10/98 (CFITSIO) */ + /*-------------------------------------------------------------------------*/ /* UTILITIES FOR C TO USE STRINGS IN FORTRAN COMMON BLOCKS */ @@ -1318,6 +1456,7 @@ #define INTVVVVVVV_cfTYPE int #define LOGICALVVVVVVV_cfTYPE int #define LONGVVVVVVV_cfTYPE long +#define LONGLONGVVVVVVV_cfTYPE LONGLONG /* added by MR December 2005 */ #define SHORTVVVVVVV_cfTYPE short #define PBYTE_cfTYPE INTEGER_BYTE #define PDOUBLE_cfTYPE DOUBLE_PRECISION @@ -1325,6 +1464,7 @@ #define PINT_cfTYPE int #define PLOGICAL_cfTYPE int #define PLONG_cfTYPE long +#define PLONGLONG_cfTYPE LONGLONG /* added by MR December 2005 */ #define PSHORT_cfTYPE short #define CFARGS0(A,T,V,W,X,Y,Z) _3(T,_cf,A) @@ -1342,6 +1482,7 @@ #define INT_cfINT(N,A,B,X,Y,Z) DOUBLE_cfINT(N,A,B,X,Y,Z) #define LOGICAL_cfINT(N,A,B,X,Y,Z) DOUBLE_cfINT(N,A,B,X,Y,Z) #define LONG_cfINT(N,A,B,X,Y,Z) DOUBLE_cfINT(N,A,B,X,Y,Z) +#define LONGLONG_cfINT(N,A,B,X,Y,Z) DOUBLE_cfINT(N,A,B,X,Y,Z) /* added by MR December 2005 */ #define SHORT_cfINT(N,A,B,X,Y,Z) DOUBLE_cfINT(N,A,B,X,Y,Z) #define PBYTE_cfINT(N,A,B,X,Y,Z) PDOUBLE_cfINT(N,A,B,X,Y,Z) #define PDOUBLE_cfINT(N,A,B,X,Y,Z) _(CFARGS,N)(A,PINT,B,X,Y,Z,0) @@ -1349,6 +1490,7 @@ #define PINT_cfINT(N,A,B,X,Y,Z) PDOUBLE_cfINT(N,A,B,X,Y,Z) #define PLOGICAL_cfINT(N,A,B,X,Y,Z) PDOUBLE_cfINT(N,A,B,X,Y,Z) #define PLONG_cfINT(N,A,B,X,Y,Z) PDOUBLE_cfINT(N,A,B,X,Y,Z) +#define PLONGLONG_cfINT(N,A,B,X,Y,Z) PDOUBLE_cfINT(N,A,B,X,Y,Z) /* added by MR December 2005 */ #define PSHORT_cfINT(N,A,B,X,Y,Z) PDOUBLE_cfINT(N,A,B,X,Y,Z) #define BYTEV_cfINT(N,A,B,X,Y,Z) DOUBLEV_cfINT(N,A,B,X,Y,Z) #define BYTEVV_cfINT(N,A,B,X,Y,Z) DOUBLEVV_cfINT(N,A,B,X,Y,Z) @@ -1392,6 +1534,13 @@ #define LONGVVVVV_cfINT(N,A,B,X,Y,Z) DOUBLEVVVVV_cfINT(N,A,B,X,Y,Z) #define LONGVVVVVV_cfINT(N,A,B,X,Y,Z) DOUBLEVVVVVV_cfINT(N,A,B,X,Y,Z) #define LONGVVVVVVV_cfINT(N,A,B,X,Y,Z) DOUBLEVVVVVVV_cfINT(N,A,B,X,Y,Z) +#define LONGLONGV_cfINT(N,A,B,X,Y,Z) DOUBLEV_cfINT(N,A,B,X,Y,Z) /* added by MR December 2005 */ +#define LONGLONGVV_cfINT(N,A,B,X,Y,Z) DOUBLEVV_cfINT(N,A,B,X,Y,Z) /* added by MR December 2005 */ +#define LONGLONGVVV_cfINT(N,A,B,X,Y,Z) DOUBLEVVV_cfINT(N,A,B,X,Y,Z) /* added by MR December 2005 */ +#define LONGLONGVVVV_cfINT(N,A,B,X,Y,Z) DOUBLEVVVV_cfINT(N,A,B,X,Y,Z) /* added by MR December 2005 */ +#define LONGLONGVVVVV_cfINT(N,A,B,X,Y,Z) DOUBLEVVVVV_cfINT(N,A,B,X,Y,Z) /* added by MR December 2005 */ +#define LONGLONGVVVVVV_cfINT(N,A,B,X,Y,Z) DOUBLEVVVVVV_cfINT(N,A,B,X,Y,Z) /* added by MR December 2005 */ +#define LONGLONGVVVVVVV_cfINT(N,A,B,X,Y,Z) DOUBLEVVVVVVV_cfINT(N,A,B,X,Y,Z) /* added by MR December 2005 */ #define SHORTV_cfINT(N,A,B,X,Y,Z) DOUBLEV_cfINT(N,A,B,X,Y,Z) #define SHORTVV_cfINT(N,A,B,X,Y,Z) DOUBLEVV_cfINT(N,A,B,X,Y,Z) #define SHORTVVV_cfINT(N,A,B,X,Y,Z) DOUBLEVVV_cfINT(N,A,B,X,Y,Z) @@ -1451,7 +1600,12 @@ #define BYTE_cfPU(A) CFextern INTEGER_BYTE FCALLSC_QUALIFIER A #define DOUBLE_cfPU(A) CFextern DOUBLE_PRECISION FCALLSC_QUALIFIER A #if ! (defined(FLOATFUNCTIONTYPE)&&defined(ASSIGNFLOAT)&&defined(RETURNFLOAT)) +#if defined (f2cFortran) && ! defined (gFortran) +/* f2c/g77 return double from FORTRAN REAL functions. (KMCCARTY, 2005/12/09) */ +#define FLOAT_cfPU(A) CFextern DOUBLE_PRECISION FCALLSC_QUALIFIER A +#else #define FLOAT_cfPU(A) CFextern FORTRAN_REAL FCALLSC_QUALIFIER A +#endif #else #define FLOAT_cfPU(A) CFextern FLOATFUNCTIONTYPE FCALLSC_QUALIFIER A #endif @@ -1589,6 +1743,7 @@ #define INT_cfSTR(N,T,A,B,C,D,E) _(CFARGS,N)(T,DEFAULT,A,B,C,D,E) #define LOGICAL_cfSTR(N,T,A,B,C,D,E) _(CFARGS,N)(T,LOGICAL,A,B,C,D,E) #define LONG_cfSTR(N,T,A,B,C,D,E) _(CFARGS,N)(T,DEFAULT,A,B,C,D,E) +#define LONGLONG_cfSTR(N,T,A,B,C,D,E) _(CFARGS,N)(T,DEFAULT,A,B,C,D,E) /* added by MR December 2005 */ #define SHORT_cfSTR(N,T,A,B,C,D,E) _(CFARGS,N)(T,DEFAULT,A,B,C,D,E) #define BYTEV_cfSTR(N,T,A,B,C,D,E) _(CFARGS,N)(T,DEFAULT,A,B,C,D,E) #define BYTEVV_cfSTR(N,T,A,B,C,D,E) _(CFARGS,N)(T,DEFAULT,A,B,C,D,E) @@ -1632,6 +1787,13 @@ #define LONGVVVVV_cfSTR(N,T,A,B,C,D,E) _(CFARGS,N)(T,DEFAULT,A,B,C,D,E) #define LONGVVVVVV_cfSTR(N,T,A,B,C,D,E) _(CFARGS,N)(T,DEFAULT,A,B,C,D,E) #define LONGVVVVVVV_cfSTR(N,T,A,B,C,D,E) _(CFARGS,N)(T,DEFAULT,A,B,C,D,E) +#define LONGLONGV_cfSTR(N,T,A,B,C,D,E) _(CFARGS,N)(T,DEFAULT,A,B,C,D,E) /* added by MR December 2005 */ +#define LONGLONGVV_cfSTR(N,T,A,B,C,D,E) _(CFARGS,N)(T,DEFAULT,A,B,C,D,E) /* added by MR December 2005 */ +#define LONGLONGVVV_cfSTR(N,T,A,B,C,D,E) _(CFARGS,N)(T,DEFAULT,A,B,C,D,E) /* added by MR December 2005 */ +#define LONGLONGVVVV_cfSTR(N,T,A,B,C,D,E) _(CFARGS,N)(T,DEFAULT,A,B,C,D,E) /* added by MR December 2005 */ +#define LONGLONGVVVVV_cfSTR(N,T,A,B,C,D,E) _(CFARGS,N)(T,DEFAULT,A,B,C,D,E) /* added by MR December 2005 */ +#define LONGLONGVVVVVV_cfSTR(N,T,A,B,C,D,E) _(CFARGS,N)(T,DEFAULT,A,B,C,D,E) /* added by MR December 2005 */ +#define LONGLONGVVVVVVV_cfSTR(N,T,A,B,C,D,E) _(CFARGS,N)(T,DEFAULT,A,B,C,D,E) /* added by MR December 2005 */ #define SHORTV_cfSTR(N,T,A,B,C,D,E) _(CFARGS,N)(T,DEFAULT,A,B,C,D,E) #define SHORTVV_cfSTR(N,T,A,B,C,D,E) _(CFARGS,N)(T,DEFAULT,A,B,C,D,E) #define SHORTVVV_cfSTR(N,T,A,B,C,D,E) _(CFARGS,N)(T,DEFAULT,A,B,C,D,E) @@ -1645,6 +1807,7 @@ #define PINT_cfSTR(N,T,A,B,C,D,E) _(CFARGS,N)(T,DEFAULT,A,B,C,D,E) #define PLOGICAL_cfSTR(N,T,A,B,C,D,E) _(CFARGS,N)(T,PLOGICAL,A,B,C,D,E) #define PLONG_cfSTR(N,T,A,B,C,D,E) _(CFARGS,N)(T,DEFAULT,A,B,C,D,E) +#define PLONGLONG_cfSTR(N,T,A,B,C,D,E) _(CFARGS,N)(T,DEFAULT,A,B,C,D,E) /* added by MR December 2005 */ #define PSHORT_cfSTR(N,T,A,B,C,D,E) _(CFARGS,N)(T,DEFAULT,A,B,C,D,E) #define STRING_cfSTR(N,T,A,B,C,D,E) _(CFARGS,N)(T,STRING,A,B,C,D,E) #define PSTRING_cfSTR(N,T,A,B,C,D,E) _(CFARGS,N)(T,PSTRING,A,B,C,D,E) @@ -1957,6 +2120,7 @@ #define INT_cfT(M,I,A,B,D) *A #define LOGICAL_cfT(M,I,A,B,D) F2CLOGICAL(*A) #define LONG_cfT(M,I,A,B,D) *A +#define LONGLONG_cfT(M,I,A,B,D) *A /* added by MR December 2005 */ #define SHORT_cfT(M,I,A,B,D) *A #define BYTEV_cfT(M,I,A,B,D) A #define DOUBLEV_cfT(M,I,A,B,D) A @@ -1964,6 +2128,7 @@ #define INTV_cfT(M,I,A,B,D) A #define LOGICALV_cfT(M,I,A,B,D) A #define LONGV_cfT(M,I,A,B,D) A +#define LONGLONGV_cfT(M,I,A,B,D) A /* added by MR December 2005 */ #define SHORTV_cfT(M,I,A,B,D) A #define BYTEVV_cfT(M,I,A,B,D) (void *)A /* We have to cast to void *,*/ #define BYTEVVV_cfT(M,I,A,B,D) (void *)A /* since we don't know the */ @@ -2001,6 +2166,12 @@ #define LONGVVVVV_cfT(M,I,A,B,D) (void *)A #define LONGVVVVVV_cfT(M,I,A,B,D) (void *)A #define LONGVVVVVVV_cfT(M,I,A,B,D) (void *)A +#define LONGLONGVV_cfT(M,I,A,B,D) (void *)A /* added by MR December 2005 */ +#define LONGLONGVVV_cfT(M,I,A,B,D) (void *)A /* added by MR December 2005 */ +#define LONGLONGVVVV_cfT(M,I,A,B,D) (void *)A /* added by MR December 2005 */ +#define LONGLONGVVVVV_cfT(M,I,A,B,D) (void *)A /* added by MR December 2005 */ +#define LONGLONGVVVVVV_cfT(M,I,A,B,D) (void *)A /* added by MR December 2005 */ +#define LONGLONGVVVVVVV_cfT(M,I,A,B,D) (void *)A /* added by MR December 2005 */ #define SHORTVV_cfT(M,I,A,B,D) (void *)A #define SHORTVVV_cfT(M,I,A,B,D) (void *)A #define SHORTVVVV_cfT(M,I,A,B,D) (void *)A @@ -2013,6 +2184,7 @@ #define PINT_cfT(M,I,A,B,D) A #define PLOGICAL_cfT(M,I,A,B,D) ((*A=F2CLOGICAL(*A)),A) #define PLONG_cfT(M,I,A,B,D) A +#define PLONGLONG_cfT(M,I,A,B,D) A /* added by MR December 2005 */ #define PSHORT_cfT(M,I,A,B,D) A #define PVOID_cfT(M,I,A,B,D) A #if defined(apolloFortran) || defined(hpuxFortran800) || defined(AbsoftUNIXFortran) @@ -2083,12 +2255,18 @@ #define INT_cfFZ(UN,LN) int FCALLSC_QUALIFIER fcallsc(UN,LN)( #define LOGICAL_cfFZ(UN,LN) int FCALLSC_QUALIFIER fcallsc(UN,LN)( #define LONG_cfFZ(UN,LN) long FCALLSC_QUALIFIER fcallsc(UN,LN)( +#define LONGLONG_cfFZ(UN,LN) LONGLONG FCALLSC_QUALIFIER fcallsc(UN,LN)( /* added by MR December 2005 */ #define SHORT_cfFZ(UN,LN) short FCALLSC_QUALIFIER fcallsc(UN,LN)( #define VOID_cfFZ(UN,LN) void FCALLSC_QUALIFIER fcallsc(UN,LN)( #ifndef __CF__KnR /* The void is req'd by the Apollo, to make this an ANSI function declaration. The Apollo promotes K&R float functions to double. */ -#define FLOAT_cfFZ(UN,LN) FORTRAN_REAL FCALLSC_QUALIFIER fcallsc(UN,LN)(void +#if defined (f2cFortran) && ! defined (gFortran) +/* f2c/g77 return double from FORTRAN REAL functions. (KMCCARTY, 2005/12/09) */ +#define FLOAT_cfFZ(UN,LN) DOUBLE_PRECISION FCALLSC_QUALIFIER fcallsc(UN,LN)(void +#else +#define FLOAT_cfFZ(UN,LN) FORTRAN_REAL FCALLSC_QUALIFIER fcallsc(UN,LN)(void +#endif #ifdef vmsFortran #define STRING_cfFZ(UN,LN) void FCALLSC_QUALIFIER fcallsc(UN,LN)(fstring *AS #else @@ -2104,7 +2282,12 @@ #endif #else #if ! (defined(FLOATFUNCTIONTYPE)&&defined(ASSIGNFLOAT)&&defined(RETURNFLOAT)) +#if defined (f2cFortran) && ! defined (gFortran) +/* f2c/g77 return double from FORTRAN REAL functions. (KMCCARTY, 2005/12/09) */ +#define FLOAT_cfFZ(UN,LN) DOUBLE_PRECISION FCALLSC_QUALIFIER fcallsc(UN,LN)( +#else #define FLOAT_cfFZ(UN,LN) FORTRAN_REAL FCALLSC_QUALIFIER fcallsc(UN,LN)( +#endif #else #define FLOAT_cfFZ(UN,LN) FLOATFUNCTIONTYPE FCALLSC_QUALIFIER fcallsc(UN,LN)( #endif @@ -2118,13 +2301,19 @@ #define BYTE_cfF(UN,LN) BYTE_cfFZ(UN,LN) #define DOUBLE_cfF(UN,LN) DOUBLE_cfFZ(UN,LN) #ifndef __CF_KnR +#if defined (f2cFortran) && ! defined (gFortran) +/* f2c/g77 return double from FORTRAN REAL functions. (KMCCARTY, 2005/12/09) */ +#define FLOAT_cfF(UN,LN) DOUBLE_PRECISION FCALLSC_QUALIFIER fcallsc(UN,LN)( +#else #define FLOAT_cfF(UN,LN) FORTRAN_REAL FCALLSC_QUALIFIER fcallsc(UN,LN)( +#endif #else #define FLOAT_cfF(UN,LN) FLOAT_cfFZ(UN,LN) #endif #define INT_cfF(UN,LN) INT_cfFZ(UN,LN) #define LOGICAL_cfF(UN,LN) LOGICAL_cfFZ(UN,LN) #define LONG_cfF(UN,LN) LONG_cfFZ(UN,LN) +#define LONGLONG_cfF(UN,LN) LONGLONG_cfFZ(UN,LN) /* added by MR December 2005 */ #define SHORT_cfF(UN,LN) SHORT_cfFZ(UN,LN) #define VOID_cfF(UN,LN) VOID_cfFZ(UN,LN) #define STRING_cfF(UN,LN) STRING_cfFZ(UN,LN), @@ -2187,6 +2376,7 @@ #define LOGICAL_cfI return C2FLOGICAL(A0); #endif #define LONG_cfI return A0; +#define LONGLONG_cfI return A0; /* added by MR December 2005 */ #define SHORT_cfI return A0; #define STRING_cfI return ; #define VOID_cfI return ; diff -Naur src.orig/cfortran/comis.h src.new/cfortran/comis.h --- src.orig/cfortran/comis.h 1999-10-29 13:41:26.000000000 +0200 +++ src.new/cfortran/comis.h 2011-07-26 15:30:58.000000000 +0200 @@ -1,3 +1,11 @@ +#ifndef _COMIS_H +#define _COMIS_H +#include + +#ifdef __cplusplus +extern "C" { +#endif + PROTOCCALLSFFUN1(INT,CSADDR,csaddr,STRING) #define CSADDR(CHFILE) CCALLSFFUN1(CSADDR,csaddr,STRING,CHFILE) @@ -30,3 +38,9 @@ PROTOCCALLSFSUB2(CSTYPE,cstype,INT,PSTRING) #define CSTYPE(CADR,CHTYPE) CCALLSFSUB2(CSTYPE,cstype,INT,PSTRING,CADR,CHTYPE) + +#ifdef __cplusplus +} /* extern "C" */ +#endif + +#endif /* #ifndef _COMIS_H */ diff -Naur src.orig/cfortran/cspack.h src.new/cfortran/cspack.h --- src.orig/cfortran/cspack.h 1999-10-29 13:42:56.000000000 +0200 +++ src.new/cfortran/cspack.h 2011-07-26 15:30:58.000000000 +0200 @@ -1,5 +1,19 @@ +#ifndef _CSPACK_H +#define _CSPACK_H +#include + +#ifdef __cplusplus +extern "C" { +#endif + PROTOCCALLSFSUB2(CZPUTA,czputa,STRING,PINT) #define CZPUTA(CHMAIL,ISTAT) CCALLSFSUB2(CZPUTA,czputa,STRING,PINT,CHMAIL,ISTAT) PROTOCCALLSFSUB2(CZGETA,czgeta,PSTRING,PINT) #define CZGETA(CHMAIL,ISTAT) CCALLSFSUB2(CZGETA,czgeta,PSTRING,PINT,CHMAIL,ISTAT) + +#ifdef __cplusplus +} /* extern "C" */ +#endif + +#endif /* #ifndef _CSPACK_H */ diff -Naur src.orig/cfortran/geant315.h src.new/cfortran/geant315.h --- src.orig/cfortran/geant315.h 1996-05-15 11:24:06.000000000 +0200 +++ src.new/cfortran/geant315.h 2011-07-26 15:30:58.000000000 +0200 @@ -1,3 +1,11 @@ +#ifndef _GEANT315_H +#define _GEANT315_H +#include + +#ifdef __cplusplus +extern "C" { +#endif + /*------------------------------------------------------------------ fortran filename : /cern/new/src/cfs/geant315/abbrch.f ------------------------------------------------------------------*/ @@ -4797,3 +4805,9 @@ #define ZEREGS() CCALLSFSUB0(ZEREGS,zeregs) + +#ifdef __cplusplus +} /* extern "C" */ +#endif + +#endif /* #ifndef _GEANT315_H */ diff -Naur src.orig/cfortran/geant321.h src.new/cfortran/geant321.h --- src.orig/cfortran/geant321.h 1996-05-15 11:24:07.000000000 +0200 +++ src.new/cfortran/geant321.h 2011-07-26 15:30:58.000000000 +0200 @@ -1,3 +1,11 @@ +#ifndef _GEANT321_H +#define _GEANT321_H +#include + +#ifdef __cplusplus +extern "C" { +#endif + /*------------------------------------------------------------------ fortran filename : abbrch.f ------------------------------------------------------------------*/ @@ -6099,3 +6107,9 @@ PROTOCCALLSFFUN3(DOUBLE,XSEPRO,xsepro,DOUBLE,DOUBLE,DOUBLE) #define XSEPRO(A2,A3,A4) CCALLSFFUN3(XSEPRO,xsepro,DOUBLE,DOUBLE,DOUBLE,A2,A3,A4) + +#ifdef __cplusplus +} /* extern "C" */ +#endif + +#endif /* #ifndef _GEANT321_H */ diff -Naur src.orig/cfortran/gen.h src.new/cfortran/gen.h --- src.orig/cfortran/gen.h 2000-06-23 12:13:58.000000000 +0200 +++ src.new/cfortran/gen.h 2011-07-26 15:30:58.000000000 +0200 @@ -1,3 +1,11 @@ +#ifndef _GEN_H +#define _GEN_H +#include + +#ifdef __cplusplus +extern "C" { +#endif + /* Subroutines/Functions with COMPLEX not supported *** #define CBSJA(A1,A2,A3,A4,A5) CCALLSFSUB5(CBSJA,cbsja,COMPLEX,FLOAT,INT,INT,PCOMPLEX,A1,A2,A3,A4,A5) @@ -1489,3 +1497,9 @@ PROTOCCALLSFSUB6(ZEROX,zerox,FLOAT,FLOAT,FLOAT,INT,FLOAT,INT) #define ZEROX(A1,A2,A3,A4,A5,A6) CCALLSFSUB6(ZEROX,zerox,FLOAT,FLOAT,FLOAT,INT,FLOAT,INT,A1,A2,A3,A4,A5,A6) + +#ifdef __cplusplus +} /* extern "C" */ +#endif + +#endif /* #ifndef _GEN_H */ diff -Naur src.orig/cfortran/graflib.h src.new/cfortran/graflib.h --- src.orig/cfortran/graflib.h 1998-01-29 11:49:27.000000000 +0100 +++ src.new/cfortran/graflib.h 2011-07-26 15:30:58.000000000 +0200 @@ -1,2 +1,16 @@ -#include "higz.h" -#include "hplot.h" +#ifndef _GRAFLIB_H +#define _GRAFLIB_H +#include + +#ifdef __cplusplus +extern "C" { +#endif + +#include +#include + +#ifdef __cplusplus +} /* extern "C" */ +#endif + +#endif /* #ifndef _GRAFLIB_H */ diff -Naur src.orig/cfortran/hbook.h src.new/cfortran/hbook.h --- src.orig/cfortran/hbook.h 1999-11-15 18:01:12.000000000 +0100 +++ src.new/cfortran/hbook.h 2011-07-26 15:28:16.000000000 +0200 @@ -485,9 +485,19 @@ PROTOCCALLSFFUN3(FLOAT,HXY,hxy,INT,FLOAT,FLOAT) #define HXY(A2,A3,A4) CCALLSFFUN3(HXY,hxy,INT,FLOAT,FLOAT,A2,A3,A4) +#if defined(CERNLIB_QMLXIA64) +PROTOCCALLSFSUB11(HBALLOC,hballoc,INT,STRING,STRING,STRING,INT,INT,INT,INT,INTV,PLONG,PINT) +#define HBALLOC(IDN,CHDIR,VAR,BLOCK,ITYPE,ISIZE,IFIRST,NELEM,IBASE,IOFF,NUSE)\ + CCALLSFSUB11(HBALLOC,hballoc,INT,STRING,STRING,STRING,INT,INT,INT,INT,INTV,PLONG,PINT,IDN,CHDIR,VAR,BLOCK,ITYPE,ISIZE,IFIRST,NELEM,IBASE,IOFF,NUSE) +#else PROTOCCALLSFSUB11(HBALLOC,hballoc,INT,STRING,STRING,STRING,INT,INT,INT,INT,INTV,PINT,PINT) #define HBALLOC(IDN,CHDIR,VAR,BLOCK,ITYPE,ISIZE,IFIRST,NELEM,IBASE,IOFF,NUSE)\ CCALLSFSUB11(HBALLOC,hballoc,INT,STRING,STRING,STRING,INT,INT,INT,INT,INTV,PINT,PINT,IDN,CHDIR,VAR,BLOCK,ITYPE,ISIZE,IFIRST,NELEM,IBASE,IOFF,NUSE) +#endif + +PROTOCCALLSFSUB11(HBALLOC64,hballoc64,INT,STRING,STRING,STRING,INT,INT,INT,INT,INTV,PLONG,PINT) +#define HBALLOC64(IDN,CHDIR,VAR,BLOCK,ITYPE,ISIZE,IFIRST,NELEM,IBASE,IOFF,NUSE)\ + CCALLSFSUB11(HBALLOC64,hballoc64,INT,STRING,STRING,STRING,INT,INT,INT,INT,INTV,PLONG,PINT,IDN,CHDIR,VAR,BLOCK,ITYPE,ISIZE,IFIRST,NELEM,IBASE,IOFF,NUSE) PROTOCCALLSFSUB1(HBFREE,hbfree,INT) #define HBFREE(LUN) CCALLSFSUB1(HBFREE,hbfree,INT,LUN) @@ -501,12 +511,28 @@ PROTOCCALLSFSUB4(HF1N,hf1n,INT,FLOATV,FLOATV,INT) #define HF1N(ID,X,W,NEVT) CCALLSFSUB4(HF1N,hf1n,INT,FLOATV,FLOATV,INT,ID,X,W,NEVT) +#if defined(CERNLIB_QMLXIA64) +PROTOCCALLSFSUB6(HGNTBF,hgntbf,INT,ZTRINGV,LONGV,INT,INT,PINT) +/* fix the element length of VAR to 32 */ +#define hgntbf_ELEMS_2 ZTRINGV_ARGS(4) +#define hgntbf_ELEMLEN_2 ZTRINGV_NUM(32) +#define HGNTBF(IDN,VAR,IOFFST,NVAR,IDNEVT,IERROR)\ + CCALLSFSUB6(HGNTBF,hgntbf,INT,ZTRINGV,LONGV,INT,INT,PINT,IDN,VAR,IOFFST,NVAR,IDNEVT,IERROR) +#else PROTOCCALLSFSUB6(HGNTBF,hgntbf,INT,ZTRINGV,INTV,INT,INT,PINT) /* fix the element length of VAR to 32 */ #define hgntbf_ELEMS_2 ZTRINGV_ARGS(4) #define hgntbf_ELEMLEN_2 ZTRINGV_NUM(32) #define HGNTBF(IDN,VAR,IOFFST,NVAR,IDNEVT,IERROR)\ CCALLSFSUB6(HGNTBF,hgntbf,INT,ZTRINGV,INTV,INT,INT,PINT,IDN,VAR,IOFFST,NVAR,IDNEVT,IERROR) +#endif + +PROTOCCALLSFSUB6(HGNTBF64,hgntbf64,INT,ZTRINGV,LONGV,INT,INT,PINT) +/* fix the element length of VAR to 32 */ +#define hgntbf64_ELEMS_2 ZTRINGV_ARGS(4) +#define hgntbf64_ELEMLEN_2 ZTRINGV_NUM(32) +#define HGNTBF64(IDN,VAR,IOFFST,NVAR,IDNEVT,IERROR)\ + CCALLSFSUB6(HGNTBF64,hgntbf64,INT,ZTRINGV,LONGV,INT,INT,PINT,IDN,VAR,IOFFST,NVAR,IDNEVT,IERROR) PROTOCCALLSFSUB1(HGTDIR,hgtdir,PSTRING) #define HGTDIR(CHDIR) CCALLSFSUB1(HGTDIR,hgtdir,PSTRING,CHDIR) diff -Naur src.orig/cfortran/jetset74.h src.new/cfortran/jetset74.h --- src.orig/cfortran/jetset74.h 1999-10-29 18:55:45.000000000 +0200 +++ src.new/cfortran/jetset74.h 2011-07-26 15:30:58.000000000 +0200 @@ -1,3 +1,11 @@ +#ifndef _JETSET74_H +#define _JETSET74_H +#include + +#ifdef __cplusplus +extern "C" { +#endif + PROTOCCALLSFFUN2(INT,KLU,klu,INT,INT) #define KLU(A2,A3) CCALLSFFUN2(KLU,klu,INT,INT,A2,A3) @@ -327,3 +335,9 @@ PROTOCCALLSFSUB11(STRUCTM,structm,DOUBLE,DOUBLE,DOUBLE,DOUBLE,DOUBLE,DOUBLE,DOUBLE,DOUBLE,DOUBLE,DOUBLE,PDOUBLE) #define STRUCTM(A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11) CCALLSFSUB11(STRUCTM,structm,DOUBLE,DOUBLE,DOUBLE,DOUBLE,DOUBLE,DOUBLE,DOUBLE,DOUBLE,DOUBLE,DOUBLE,PDOUBLE,A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11) + +#ifdef __cplusplus +} /* extern "C" */ +#endif + +#endif /* #ifndef _JETSET74_H */ diff -Naur src.orig/cfortran/kernlib.h src.new/cfortran/kernlib.h --- src.orig/cfortran/kernlib.h 2000-03-16 17:58:18.000000000 +0100 +++ src.new/cfortran/kernlib.h 2011-07-26 15:30:58.000000000 +0200 @@ -1,3 +1,11 @@ +#ifndef _KERNLIB_H +#define _KERNLIB_H +#include + +#ifdef __cplusplus +extern "C" { +#endif + PROTOCCALLSFFUN1(FLOAT,ALOGAM,alogam,FLOAT) #define ALOGAM(A2) CCALLSFFUN1(ALOGAM,alogam,FLOAT,A2) @@ -1512,3 +1520,9 @@ PROTOCCALLSFSUB1(WORDSEP,wordsep,STRING) #define WORDSEP(A1) CCALLSFSUB1(WORDSEP,wordsep,STRING,A1) + +#ifdef __cplusplus +} /* extern "C" */ +#endif + +#endif /* #ifndef _KERNLIB_H */ diff -Naur src.orig/cfortran/kuip.h src.new/cfortran/kuip.h --- src.orig/cfortran/kuip.h 2000-10-05 16:27:54.000000000 +0200 +++ src.new/cfortran/kuip.h 2011-07-26 15:30:58.000000000 +0200 @@ -1,3 +1,11 @@ +#ifndef _KUIP_H +#define _KUIP_H +#include + +#ifdef __cplusplus +extern "C" { +#endif + PROTOCCALLSFSUB3(KUCLOS,kuclos,INT,STRING,INT) #define KUCLOS(A1,A2,A3) CCALLSFSUB3(KUCLOS,kuclos,INT,STRING,INT,A1,A2,A3) @@ -6,3 +14,9 @@ PROTOCCALLSFSUB0(KUWHAG,kuwhag) #define KUWHAG() CCALLSFSUB0(KUWHAG,kuwhag) + +#ifdef __cplusplus +} /* extern "C" */ +#endif + +#endif /* #ifndef _KUIP_H */ diff -Naur src.orig/cfortran/lapack.h src.new/cfortran/lapack.h --- src.orig/cfortran/lapack.h 2000-06-23 12:13:58.000000000 +0200 +++ src.new/cfortran/lapack.h 2011-07-26 15:30:58.000000000 +0200 @@ -1,2 +1,16 @@ +#ifndef _LAPACK_H +#define _LAPACK_H +#include + +#ifdef __cplusplus +extern "C" { +#endif + PROTOCCALLSFSUB11(DGELS,dgels,STRING,INT,INT,INT,DOUBLEV,INT,DOUBLEV,INT,DOUBLEV,INT,PINT) #define DGELS(TRANS,M,N,NRHS,A,LDA,B,LDB,WORK,LWORK,INFO) CCALLSFSUB11(DGELS,dgels,STRING,INT,INT,INT,DOUBLEV,INT,DOUBLEV,INT,DOUBLEV,INT,PINT,TRANS,M,N,NRHS,A,LDA,B,LDB,WORK,LWORK,INFO) + +#ifdef __cplusplus +} /* extern "C" */ +#endif + +#endif /* #ifndef _LAPACK_H */ diff -Naur src.orig/cfortran/lepto62.h src.new/cfortran/lepto62.h --- src.orig/cfortran/lepto62.h 1999-10-29 18:55:45.000000000 +0200 +++ src.new/cfortran/lepto62.h 2011-07-26 15:30:58.000000000 +0200 @@ -1,3 +1,11 @@ +#ifndef _LEPTO62_H +#define _LEPTO62_H +#include + +#ifdef __cplusplus +extern "C" { +#endif + PROTOCCALLSFFUN2(FLOAT,DCROSS,dcross,FLOAT,FLOAT) #define DCROSS(A2,A3) CCALLSFFUN2(DCROSS,dcross,FLOAT,FLOAT,A2,A3) @@ -174,3 +182,9 @@ PROTOCCALLSFSUB0(RIWIBD,riwibd) #define RIWIBD() CCALLSFSUB0(RIWIBD,riwibd) + +#ifdef __cplusplus +} /* extern "C" */ +#endif + +#endif /* #ifndef _LEPTO62_H */ diff -Naur src.orig/cfortran/minuit.h src.new/cfortran/minuit.h --- src.orig/cfortran/minuit.h 1999-10-27 17:30:23.000000000 +0200 +++ src.new/cfortran/minuit.h 2011-07-26 15:30:58.000000000 +0200 @@ -1,3 +1,11 @@ +#ifndef _MINUIT_H +#define _MINUIT_H +#include + +#ifdef __cplusplus +extern "C" { +#endif + /* * Interface to minuit using cfortran.h * @@ -190,3 +198,9 @@ PROTOCCALLSFSUB0(STAND,stand) #define STAND() CCALLSFSUB0(STAND,stand) + +#ifdef __cplusplus +} /* extern "C" */ +#endif + +#endif /* #ifndef _MINUIT_H */ diff -Naur src.orig/cfortran/packlib.h src.new/cfortran/packlib.h --- src.orig/cfortran/packlib.h 1998-01-29 17:17:45.000000000 +0100 +++ src.new/cfortran/packlib.h 2011-07-26 15:30:58.000000000 +0200 @@ -1,4 +1,18 @@ -#include "hbook.h" -#include "minuit.h" -#include "kuip.h" -#include "zebra.h" +#ifndef _PACKLIB_H +#define _PACKLIB_H +#include + +#ifdef __cplusplus +extern "C" { +#endif + +#include +#include +#include +#include + +#ifdef __cplusplus +} /* extern "C" */ +#endif + +#endif /* #ifndef _PACKLIB_H */ diff -Naur src.orig/cfortran/paw.h src.new/cfortran/paw.h --- src.orig/cfortran/paw.h 2000-10-05 16:27:55.000000000 +0200 +++ src.new/cfortran/paw.h 2011-07-26 15:30:58.000000000 +0200 @@ -1,6 +1,20 @@ +#ifndef _PAW_H +#define _PAW_H +#include + +#ifdef __cplusplus +extern "C" { +#endif + PROTOCCALLSFSUB2(PAW,paw,INT,INT) #define PAW(A1,A2) CCALLSFSUB2(PAW,paw,INT,INT,A1,A2) PROTOCCALLSFSUB0(PAEXIT,paexit) #define PAEXIT() CCALLSFSUB0(PAEXIT,paexit) + +#ifdef __cplusplus +} /* extern "C" */ +#endif + +#endif /* #ifndef _PAW_H */ diff -Naur src.orig/cfortran/zebra.h src.new/cfortran/zebra.h --- src.orig/cfortran/zebra.h 1999-10-29 13:35:47.000000000 +0200 +++ src.new/cfortran/zebra.h 2011-07-26 15:30:58.000000000 +0200 @@ -1,5 +1,19 @@ +#ifndef _ZEBRA_H +#define _ZEBRA_H +#include + +#ifdef __cplusplus +extern "C" { +#endif + PROTOCCALLSFSUB1(MZEBRA,mzebra,INT) #define MZEBRA(A1) CCALLSFSUB1(MZEBRA,mzebra,INT,A1) PROTOCCALLSFSUB2(MZPAW,mzpaw,INT,STRING) #define MZPAW(A1,A2) CCALLSFSUB2(MZPAW,mzpaw,INT,STRING,A1,A2) + +#ifdef __cplusplus +} /* extern "C" */ +#endif + +#endif /* #ifndef _ZEBRA_H */ diff -Naur src.orig/config/Imake.rules src.new/config/Imake.rules --- src.orig/config/Imake.rules 2005-04-18 17:39:25.000000000 +0200 +++ src.new/config/Imake.rules 2011-07-26 15:54:53.000000000 +0200 @@ -2373,13 +2373,43 @@ test:: ProgramTargetName(program) data inputdata @@\ @echo Testing $(PACKAGE_NAME) @@\ @echo " ... using" program @@\ - @Concat(.,$(PATHSEP))ProgramTargetName(program) @@\ + @Concat(.,$(PATHSEP))ProgramTargetName(program) ; \ @@\ + result="$$?" ; echo "Test result = $$result" ; exit "$$result" @@\ @@\ else @@\ test:: ProgramTargetName(program) data inputdata @@\ @echo Testing $(PACKAGE_NAME) @@\ @echo " ... using" program @@\ - @Concat(.,$(PATHSEP))ProgramTargetName(program) < inputdata @@\ + @Concat(.,$(PATHSEP))ProgramTargetName(program) < inputdata ; \ @@\ + result="$$?" ; echo "Test result = $$result" ; exit "$$result" @@\ + @@\ +endif @@\ + @@\ +clean:: @@\ + RemoveFile(ProgramTargetName(program)) @@\ + RemoveFiles(core *.log data inputdata) +#endif + +/* TestTargetIgnore + * create a target to link and run tests. + * avoids a break of make if an error occurs + * + */ +#ifndef TestTargetIgnore +#define TestTargetIgnore(program,data,inputdata) \ @@\ +.PHONY: test @@\ + @@\ +ifeq ($(strip $(QUOTE) inputdata $(QUOTE)),$(QUOTE) $(QUOTE)) @@\ +test:: ProgramTargetName(program) data inputdata @@\ + @echo Testing $(PACKAGE_NAME) @@\ + @echo " ... using" program @@\ + -@Concat(.,$(PATHSEP))ProgramTargetName(program) @@\ + @@\ +else @@\ +test:: ProgramTargetName(program) data inputdata @@\ + @echo Testing $(PACKAGE_NAME) @@\ + @echo " ... using" program @@\ + -@Concat(.,$(PATHSEP))ProgramTargetName(program) < inputdata @@\ @@\ endif @@\ @@\ diff -Naur src.orig/config/MacOSX.cf src.new/config/MacOSX.cf --- src.orig/config/MacOSX.cf 2006-11-23 15:25:33.000000000 +0100 +++ src.new/config/MacOSX.cf 2011-07-27 20:03:17.000000000 +0200 @@ -74,7 +74,8 @@ # define BuildXvExt NO #define OptimizedCDebugFlags -O0 -g -pipe -#define ExtraLoadFlags -L/usr/X11R6/lib +#define ExtraLoadFlags -L/usr/X11R6/lib \ +-L/usr/osxws/lib -lgfortran #define BuildExamples YES @@ -96,7 +97,7 @@ #define ArCmd ar -r #ifndef RanlibCmd -#define RanlibCmd ranlib -c -s +#define RanlibCmd ranlib #endif /* see below for ServerDefines */ @@ -113,13 +114,8 @@ #undef CcCmd #undef CplusplusCmd #ifdef MacOSXArchitecture -#if 0 -#define CcCmd cc -arch "ppc" -no-cpp-precomp -ftree-vectorize -#define CplusplusCmd c++ -no-cpp-precomp -ftree-vectorize -#else -#define CcCmd cc -ftree-vectorize -#define CplusplusCmd c++ -ftree-vectorize -#endif +#define CcCmd gcc -ftree-vectorize +#define CplusplusCmd g++ -ftree-vectorize #endif #ifndef CcCmd #define CcCmd cc @@ -138,20 +134,18 @@ #define FortranSaveFlags /* -fno-automatic */ /* Everything static !? */ #define OptimisedFortranFlags -O0 -g -funroll-loops -fomit-frame-pointer \ -ftree-vectorize -#define DefaultFCOptions -fno-second-underscore -/*#define CernlibSystem -DCERNLIB_LINUX -DCERNLIB_UNIX -DCERNLIB_LNX \ - -DCERNLIB_PPC -DCERNLIB_QMGLIBC \ - -DCERNLIB_MACOSX -DCERNLIB_GFORTRAN */ - +#define DefaultFCOptions -fno-second-underscore \ + -fno-automatic \ + -flat_namespace -undefined warning #define CernlibSystem -DCERNLIB_LINUX -DCERNLIB_UNIX -DCERNLIB_LNX \ - -DCERNLIB_QMGLIBC \ + -DCERNLIB_@ARCH@ -DCERNLIB_QMGLIBC \ -DCERNLIB_MACOSX -DCERNLIB_GFORTRAN /* #define CERNLIB_SHIFT NO */ #define CERNLIB_LINUX #define CERNLIB_UNIX #define CERNLIB_LNX -/*#define CERNLIB_PPC*/ +#define CERNLIB_@ARCH@ #define CERNLIB_QMGLIBC #define CERNLIB_MACOSX #define CERNLIB_GFORTRAN @@ -161,7 +155,7 @@ /* * Create a Make Variable to allow building with/out Motif */ -#define MotifIncludes -I/sw/include +#define MotifIncludes -I/usr/X11R6/include #undef MotifDependantMakeVar #define MotifDependantMakeVar(variable,value) @@\ ifneq ($(strip $(HAVE_MOTIF)),) @@\ diff -Naur src.orig/config/MacOSX.rules src.new/config/MacOSX.rules --- src.orig/config/MacOSX.rules 2006-09-04 14:32:56.000000000 +0200 +++ src.new/config/MacOSX.rules 2011-07-26 15:28:16.000000000 +0200 @@ -115,3 +115,23 @@ #endif +/* DefinePackageLibrary + * get the path/name of the library for the current package + * and do _not_ add a local library + * + */ +#ifndef DefinePackageLibrary +#define DefinePackageLibrary(locallib) \ +ifneq (locallib,) @@\ +override PACKAGE_LIB:= LibraryTargetName(locallib) @@\ +endif +#endif + +/* CernlibLinkRule + * suppress objs to avoid duplicated symbols + */ +#ifndef CernlibLinkRule +#define CernlibLinkRule(pgm,ldoption,objs,libs,cernlibs)\ + LinkRule(pgm,ldoption,libs,`cernlibs`) +#endif + diff -Naur src.orig/config/site.def src.new/config/site.def --- src.orig/config/site.def 2002-04-26 16:46:04.000000000 +0200 +++ src.new/config/site.def 2011-07-26 15:28:16.000000000 +0200 @@ -107,10 +107,10 @@ #endif */ -/* gmake does like ConstructMFLAGS to be YES(?) */ +/* make does like ConstructMFLAGS to be YES(?) */ #undef MakeCmd #ifndef WIN32 -# define MakeCmd gmake +# define MakeCmd make #else # define MakeCmd make #endif diff -Naur src.orig/geant321/Imakefile src.new/geant321/Imakefile --- src.orig/geant321/Imakefile 1998-03-05 12:20:07.000000000 +0100 +++ src.new/geant321/Imakefile 2011-07-26 15:28:16.000000000 +0200 @@ -37,7 +37,11 @@ install.lib:: $(CERN_LIBDIR)/xsneut95.dat $(CERN_LIBDIR)/xsneut95.dat: +#if defined(CERNLIB_MACOSX) + $(CP) -f data/$(@F) $(@D) +#else cd $(@D);$(LN) ../share/lib/$(@F) $(@F) +#endif #endif #if defined(CERNLIB_VAXVMS) diff -Naur src.orig/geant321/examples/gexam1/Imakefile src.new/geant321/examples/gexam1/Imakefile --- src.orig/geant321/examples/gexam1/Imakefile 1997-04-10 17:33:14.000000000 +0200 +++ src.new/geant321/examples/gexam1/Imakefile 2011-07-26 15:28:16.000000000 +0200 @@ -3,7 +3,7 @@ DefinePackageLibrary(NullParameter) -CernlibFortranProgramTarget(exam1,$(OBJS),$(PACKAGE_LIB),$(PACKAGE_LIB),graflib packlib) +CernlibFortranProgramTarget(exam1,$(OBJS),$(PACKAGE_LIB),$(PACKAGE_LIB),graflib packlib pawlib mathlib) TestTarget(exam1,gexam1.dat,gexam1.input) diff -Naur src.orig/geant321/examples/gexam2/Imakefile src.new/geant321/examples/gexam2/Imakefile --- src.orig/geant321/examples/gexam2/Imakefile 1997-04-10 17:33:20.000000000 +0200 +++ src.new/geant321/examples/gexam2/Imakefile 2011-07-26 15:28:16.000000000 +0200 @@ -13,7 +13,7 @@ DefinePackageLibrary(NullParameter) -CernlibFortranProgramTarget(exam2,$(OBJS),$(PACKAGE_LIB),$(PACKAGE_LIB),graflib packlib) +CernlibFortranProgramTarget(exam2,$(OBJS),$(PACKAGE_LIB),$(PACKAGE_LIB),graflib packlib mathlib) TestTarget(exam2,gexam2.dat,gexam2.input) diff -Naur src.orig/geant321/examples/gexam3/Imakefile src.new/geant321/examples/gexam3/Imakefile --- src.orig/geant321/examples/gexam3/Imakefile 1997-04-10 17:33:34.000000000 +0200 +++ src.new/geant321/examples/gexam3/Imakefile 2011-07-26 15:28:16.000000000 +0200 @@ -3,7 +3,7 @@ DefinePackageLibrary(NullParameter) -CernlibFortranProgramTarget(exam3,$(OBJS),$(PACKAGE_LIB),$(PACKAGE_LIB),graflib packlib) +CernlibFortranProgramTarget(exam3,$(OBJS),$(PACKAGE_LIB),$(PACKAGE_LIB),graflib packlib mathlib) TestTarget(exam3,gexam3.dat,gexam3.input) diff -Naur src.orig/geant321/examples/gexam4/Imakefile src.new/geant321/examples/gexam4/Imakefile --- src.orig/geant321/examples/gexam4/Imakefile 1997-04-10 17:33:37.000000000 +0200 +++ src.new/geant321/examples/gexam4/Imakefile 2011-07-26 15:28:16.000000000 +0200 @@ -14,7 +14,7 @@ DefinePackageLibrary(NullParameter) -CernlibFortranProgramTarget(exam4,$(OBJS),$(PACKAGE_LIB),$(PACKAGE_LIB),graflib packlib) +CernlibFortranProgramTarget(exam4,$(OBJS),$(PACKAGE_LIB),$(PACKAGE_LIB),graflib packlib mathlib) TestTarget(exam4,gexam4.dat,gexam4.input) diff -Naur src.orig/geant321/examples/gexam5/Imakefile src.new/geant321/examples/gexam5/Imakefile --- src.orig/geant321/examples/gexam5/Imakefile 1997-04-10 17:33:38.000000000 +0200 +++ src.new/geant321/examples/gexam5/Imakefile 2011-07-26 15:28:16.000000000 +0200 @@ -3,7 +3,7 @@ DefinePackageLibrary(NullParameter) -CernlibFortranProgramTarget(exam5,$(OBJS),$(PACKAGE_LIB),$(PACKAGE_LIB),graflib packlib) +CernlibFortranProgramTarget(exam5,$(OBJS),$(PACKAGE_LIB),$(PACKAGE_LIB),graflib packlib mathlib) TestTarget(exam5,gexam5.dat,gexam5.input) diff -Naur src.orig/geant321/gphys/gphot.F src.new/geant321/gphys/gphot.F --- src.orig/geant321/gphys/gphot.F 1995-10-24 11:21:29.000000000 +0100 +++ src.new/geant321/gphys/gphot.F 2011-07-26 17:17:37.000000000 +0200 @@ -240,7 +240,7 @@ ELSE C Radiative shell decay JS = JFN+1+2*NSHELL+ISHELL - JS = JPHFN+Q(JS) + JS = JPHFN + INT (Q(JS)) ! compiler optimiztion problem H. Vogt 2004/04/29 NPOINT = Q(JS) DO 40 I = 1,NPOINT IF(RN05.LT.Q(JS+I)) THEN @@ -296,7 +296,7 @@ ELSE c Nonradiative decay JS = JFN+1+3*NSHELL+ISHELL - JS = JPHFN+Q(JS) + JS = JPHFN + INT (Q(JS)) ! compiler optimiztion problem H. Vogt 2004/04/29 NPOINT = Q(JS) DO 60 I = 1,NPOINT IF(RN05.LT.Q(JS+I)) THEN diff -Naur src.orig/graflib/dzdoc/dzdkern/dzdcod.F src.new/graflib/dzdoc/dzdkern/dzdcod.F --- src.orig/graflib/dzdoc/dzdkern/dzdcod.F 1996-03-04 17:12:56.000000000 +0100 +++ src.new/graflib/dzdoc/dzdkern/dzdcod.F 2011-07-26 15:28:16.000000000 +0200 @@ -90,7 +90,9 @@ CALL DZDPLN(LUN,' ',99) ELSE * do MZBOOKS - CALL DZDCO1(CHBANK,3,CHOINT,' ',LUN) +* bad Fotran convention, add dummy IFI,ILI arguments in this case +ccc CALL DZDCO1(CHBANK,3,CHOINT,' ',LUN) + CALL DZDCO1(CHBANK,3,CHOINT,' ',LUN,IFI,ILI) * finish line with bookings CALL DZDPLN(LUN,' ',99) ENDIF diff -Naur src.orig/graflib/higz/higzcc/gifencode.c src.new/graflib/higz/higzcc/gifencode.c --- src.orig/graflib/higz/higzcc/gifencode.c 1996-02-14 14:10:25.000000000 +0100 +++ src.new/graflib/higz/higzcc/gifencode.c 2011-07-26 15:28:16.000000000 +0200 @@ -12,6 +12,7 @@ /*-- Author : E.Chernyaev 19/01/94*/ #include #include +#include #ifdef __STDC__ #define ARGS(alist) alist diff -Naur src.orig/graflib/higz/higzcc/imgpickpalette.c src.new/graflib/higz/higzcc/imgpickpalette.c --- src.orig/graflib/higz/higzcc/imgpickpalette.c 1998-11-13 14:19:53.000000000 +0100 +++ src.new/graflib/higz/higzcc/imgpickpalette.c 2011-07-26 15:28:16.000000000 +0200 @@ -30,6 +30,7 @@ #if defined(CERNLIB_GIF) #include #include +#include void CollectImageColors(unsigned long, unsigned long **, int *, int *); int FindColor(unsigned long, unsigned long *, int); diff -Naur src.orig/graflib/higz/higzcc/rotated.c src.new/graflib/higz/higzcc/rotated.c --- src.orig/graflib/higz/higzcc/rotated.c 1998-01-30 16:22:04.000000000 +0100 +++ src.new/graflib/higz/higzcc/rotated.c 2011-07-26 15:28:16.000000000 +0200 @@ -35,7 +35,9 @@ #include #include #include +#include #include +#include /* ************************************************************************ * * @@ -482,10 +484,10 @@ /* get a rotated bitmap */ item=XRotRetrieveFromCache(dpy, font, angle, text, align); - if(item==NULL) return (int)NULL; + if(item==NULL) return 0; /* this gc has similar properties to the user's gc */ - my_gc=XCreateGC(dpy, drawable, NULL, 0); + my_gc=XCreateGC(dpy, drawable, (unsigned long)NULL, 0); XCopyGC(dpy, gc, GCForeground|GCBackground|GCFunction|GCPlaneMask, my_gc); @@ -549,7 +551,7 @@ empty_stipple=XCreatePixmap(dpy, drawable, 1, 1, 1); - depth_one_gc=XCreateGC(dpy, empty_stipple, NULL, 0); + depth_one_gc=XCreateGC(dpy, empty_stipple, (unsigned long)NULL, 0); XSetForeground(dpy, depth_one_gc, 0); XFillRectangle(dpy, empty_stipple, depth_one_gc, 0, 0, 2, 2); @@ -605,7 +607,7 @@ item->cols_out, item->rows_out, 1); /* create a GC */ - depth_one_gc=XCreateGC(dpy, new_bitmap, NULL, 0); + depth_one_gc=XCreateGC(dpy, new_bitmap, (unsigned long)NULL, 0); XSetForeground(dpy, depth_one_gc, 1); XSetBackground(dpy, depth_one_gc, 0); @@ -705,7 +707,7 @@ DEBUG_PRINT1("**\nHorizontal text.\n"); /* this gc has similar properties to the user's gc (including stipple) */ - my_gc=XCreateGC(dpy, drawable, NULL, 0); + my_gc=XCreateGC(dpy, drawable, (unsigned long)NULL, 0); XCopyGC(dpy, gc, GCForeground|GCBackground|GCFunction|GCStipple|GCFillStyle| GCTileStipXOrigin|GCTileStipYOrigin|GCPlaneMask, my_gc); @@ -918,7 +920,7 @@ item->cols_out, item->rows_out, 1); /* depth one gc */ - depth_one_gc=XCreateGC(dpy, item->bitmap, NULL, 0); + depth_one_gc=XCreateGC(dpy, item->bitmap, (unsigned long)NULL, 0); XSetBackground(dpy, depth_one_gc, 0); XSetForeground(dpy, depth_one_gc, 1); @@ -1032,7 +1034,7 @@ item->cols_in, item->rows_in, 1); /* create a GC for the bitmap */ - font_gc=XCreateGC(dpy, canvas, NULL, 0); + font_gc=XCreateGC(dpy, canvas, (unsigned long)NULL, 0); XSetBackground(dpy, font_gc, 0); XSetFont(dpy, font_gc, font->fid); diff -Naur src.orig/graflib/higz/higzcc/x11int.c src.new/graflib/higz/higzcc/x11int.c --- src.orig/graflib/higz/higzcc/x11int.c 2000-07-08 08:19:30.000000000 +0200 +++ src.new/graflib/higz/higzcc/x11int.c 2011-07-26 15:28:16.000000000 +0200 @@ -1172,8 +1172,8 @@ */ cws->drawing = cws->window; cws->buffer = (Drawable)NULL; - cws->double_buffer = (int)NULL; - cws->clip = (int)NULL; + cws->double_buffer = 0; + cws->clip = 0; cws->width = wval; cws->height = hval; @@ -1509,7 +1509,7 @@ void ixclsds() { - int Motif = (int)NULL; + int Motif = 0; int i; if (display == NULL) return; @@ -1529,12 +1529,12 @@ for ( i = 0; i < MAXCOL; i++ ) { if( colors[i].defined == 1 ) { colors[i].defined = 0; - XFreeColors(display, colormap, &colors[i].pixel, 1, (int)NULL); + XFreeColors(display, colormap, &colors[i].pixel, 1, (unsigned long)NULL); } } #if !defined(CERNLIB_TK_WINDOWS) - if(display != NULL && Motif == (int)NULL) XCloseDisplay( display ); + if(display != NULL && Motif == 0) XCloseDisplay( display ); #endif display = NULL; cws = NULL; @@ -1567,7 +1567,7 @@ XFlush( display ); - cws->open = (int)NULL; + cws->open = 0; for( wid = 0; wid < MAXWN; wid++ ) if( windows[wid].open ) { @@ -1886,7 +1886,7 @@ int i; tws = &windows[*wid]; - tws->clip = (int)NULL; + tws->clip = 0; for( i = 0; i < MAXGC; i++ ) XSetClipMask( display, gclist[i], None ); @@ -1916,9 +1916,9 @@ xcol.flags = DoRed || DoGreen || DoBlue; if( colors[*cindex].defined == 1 ) { colors[*cindex].defined = 0; - XFreeColors(display, colormap, &colors[*cindex].pixel, 1, (int)NULL); + XFreeColors(display, colormap, &colors[*cindex].pixel, 1, 0); } - if( XAllocColor( display, colormap, &xcol ) != (Status)NULL ) { + if( XAllocColor( display, colormap, &xcol ) != (Status)0 ) { colors[*cindex].defined = 1; colors[*cindex].pixel = xcol.pixel; colors[*cindex].red = *r; diff -Naur src.orig/mathlib/gen/c/algama.F src.new/mathlib/gen/c/algama.F --- src.orig/mathlib/gen/c/algama.F 1996-04-01 17:01:54.000000000 +0200 +++ src.new/mathlib/gen/c/algama.F 2011-07-26 15:28:16.000000000 +0200 @@ -10,6 +10,7 @@ #if (defined(CERNLIB_DOUBLE))&&(!defined(CERNLIB_IBM)) FUNCTION ALGAMA(X) DOUBLE PRECISION DLGAMA,D + EXTERNAL DLGAMA ENTRY ALOGAM(X) diff -Naur src.orig/mathlib/gen/c/alogam.F src.new/mathlib/gen/c/alogam.F --- src.orig/mathlib/gen/c/alogam.F 1996-04-01 17:01:54.000000000 +0200 +++ src.new/mathlib/gen/c/alogam.F 2011-07-26 15:28:16.000000000 +0200 @@ -9,6 +9,7 @@ #include "gen/pilot.h" #if (defined(CERNLIB_DOUBLE))&&(defined(CERNLIB_IBM)) FUNCTION ALOGAM(X) + EXTERNAL ALGAMA ALOGAM = ALGAMA(X) END #endif diff -Naur src.orig/mathlib/gen/c/bsja64.F src.new/mathlib/gen/c/bsja64.F --- src.orig/mathlib/gen/c/bsja64.F 1996-04-01 17:02:08.000000000 +0200 +++ src.new/mathlib/gen/c/bsja64.F 2011-07-26 15:55:28.000000000 +0200 @@ -21,9 +21,11 @@ #if defined(CERNLIB_DOUBLE) PARAMETER (NAMEJ = 'BSJA/DBSJA', 1 NAMEI = 'BSIA/DBSIA') + EXTERNAL DGAMMA #endif #if !defined(CERNLIB_DOUBLE) PARAMETER (NAMEJ = 'BSJA', NAMEI = 'BSIA') + EXTERNAL GAMMA #endif LOGICAL LJA,LIA,LEV,LER DIMENSION B(0:*),BA(0:100),RR(0:100) diff -Naur src.orig/mathlib/gen/c/cbsja64.F src.new/mathlib/gen/c/cbsja64.F --- src.orig/mathlib/gen/c/cbsja64.F 1996-04-01 17:02:09.000000000 +0200 +++ src.new/mathlib/gen/c/cbsja64.F 2011-07-26 15:55:28.000000000 +0200 @@ -21,9 +21,11 @@ CHARACTER NAME*(*) #if defined(CERNLIB_DOUBLE) PARAMETER (NAME = 'CBSJA/WBSJA') + EXTERNAL DGAMMA #endif #if !defined(CERNLIB_DOUBLE) PARAMETER (NAME = 'CBSJA') + EXTERNAL GAMMA #endif LOGICAL LER DIMENSION CB(0:*),CBA(0:100),RR(0:100) diff -Naur src.orig/mathlib/gen/c/dlogam.F src.new/mathlib/gen/c/dlogam.F --- src.orig/mathlib/gen/c/dlogam.F 1996-04-01 17:01:55.000000000 +0200 +++ src.new/mathlib/gen/c/dlogam.F 2011-07-26 15:55:28.000000000 +0200 @@ -9,7 +9,9 @@ #include "gen/pilot.h" #if defined(CERNLIB_IBM) FUNCTION DLOGAM(X) + EXTERNAL DLGAMA #include "gen/imp64.inc" + EXTERNAL DLGAMA DLOGAM = DLGAMA(X) END #endif diff -Naur src.orig/mathlib/gen/c/gagnc64.F src.new/mathlib/gen/c/gagnc64.F --- src.orig/mathlib/gen/c/gagnc64.F 1996-04-01 17:02:05.000000000 +0200 +++ src.new/mathlib/gen/c/gagnc64.F 2011-07-26 15:28:16.000000000 +0200 @@ -25,9 +25,11 @@ CHARACTER NAME*(*) CHARACTER*80 ERRTXT #if !defined(CERNLIB_DOUBLE) + EXTERNAL ALGAMA PARAMETER (NAME = 'RGAGNC') #endif #if defined(CERNLIB_DOUBLE) + EXTERNAL DLGAMA PARAMETER (NAME = 'RGAGNC/DGAGNC') #endif diff -Naur src.orig/mathlib/gen/c/gapnc64.F src.new/mathlib/gen/c/gapnc64.F --- src.orig/mathlib/gen/c/gapnc64.F 1996-04-01 17:02:05.000000000 +0200 +++ src.new/mathlib/gen/c/gapnc64.F 2011-07-26 15:28:16.000000000 +0200 @@ -24,9 +24,11 @@ CHARACTER NAME*(*) CHARACTER*80 ERRTXT #if !defined(CERNLIB_DOUBLE) + EXTERNAL ALGAMA PARAMETER (NAME = 'RGAPNC') #endif #if defined(CERNLIB_DOUBLE) + EXTERNAL DLGAMA PARAMETER (NAME = 'RGAPNC/DGAPNC') #endif PARAMETER (EPS = 5D-14) diff -Naur src.orig/mathlib/gen/c/rrizet64.F src.new/mathlib/gen/c/rrizet64.F --- src.orig/mathlib/gen/c/rrizet64.F 1996-04-01 17:02:00.000000000 +0200 +++ src.new/mathlib/gen/c/rrizet64.F 2011-07-26 15:55:28.000000000 +0200 @@ -14,12 +14,14 @@ C CHARACTER*(*) NAME PARAMETER(NAME='RRIZET/DRIZET') + EXTERNAL DGAMMA #endif #if !defined(CERNLIB_DOUBLE) FUNCTION RRIZET(X) C CHARACTER*(*) NAME PARAMETER(NAME='RRIZET') + EXTERNAL GAMMA #endif C DIMENSION P1(0:8),P2(0:8),P3(0:9),P4(0:8) diff -Naur src.orig/mathlib/gen/c/rteq464.F src.new/mathlib/gen/c/rteq464.F --- src.orig/mathlib/gen/c/rteq464.F 1996-04-01 17:01:53.000000000 +0200 +++ src.new/mathlib/gen/c/rteq464.F 2011-07-26 16:00:31.000000000 +0200 @@ -45,7 +45,20 @@ MT=3 Z(1)=SQRT(SQRT(-D)) Z(2)=-Z(1) +#if !defined(CERNLIB_GFORTRAN) Z(3)=SQRT(-Z(1)**2) +#else +* Using gfortran the following sqrt yields an inconsistent result +* if the imaginary part is a "negative zero" +* gfortran is conform with the Fortran ISO 2003 standard (1.6.1) +* Therefore if the imaginary part is a "negative zero" +* it must be replaced by a "positive zero" to be consistent + if (imag(-z(1)**2) .eq. 0) then + z(3)=SQRT(real(-z(1)**2)+i*0) + else + z(3)=SQRT(-z(1)**2) + endif +#endif Z(4)=-Z(3) ENDIF DC=(-R12*D)**3 @@ -94,9 +107,21 @@ W1=SQRT(U(K1)+I*0) W2=SQRT(U(K2)+I*0) ELSE +#if !defined(CERNLIB_GFORTRAN) MT=3 W1=SQRT(U(2)+I*U(3)) W2=SQRT(U(2)-I*U(3)) +#else +* For gfortran see above + MT=3 + IF (U(3) .NE. 0.) THEN + W1=SQRT(U(2)+I*U(3)) + W2=SQRT(U(2)-I*U(3)) + ELSE + W1=SQRT(U(2)+I*0) + W2=W1 + ENDIF +#endif ENDIF W3=0 IF(W1*W2 .NE. 0) W3=-Q/(8*W1*W2) diff -Naur src.orig/mathlib/gen/g/gamdis.F src.new/mathlib/gen/g/gamdis.F --- src.orig/mathlib/gen/g/gamdis.F 1996-04-01 17:02:43.000000000 +0200 +++ src.new/mathlib/gen/g/gamdis.F 2011-07-26 15:55:28.000000000 +0200 @@ -28,6 +28,8 @@ PARAMETER (Z1 = 1, HALF = Z1/2, QUAR = Z1/4) PARAMETER (C1 = 3*Z1/2, KMAX = 300) + EXTERNAL GAMMA + DATA C 1/ 0.5772157,-0.6558781,-0.0420026, 0.1665386,-0.0421977, 2 -0.0096220, 0.0072189,-0.0011652,-0.0002152, 0.0001281, diff -Naur src.orig/mathlib/gen/tests/c209m.F src.new/mathlib/gen/tests/c209m.F --- src.orig/mathlib/gen/tests/c209m.F 1996-04-01 17:01:13.000000000 +0200 +++ src.new/mathlib/gen/tests/c209m.F 2011-07-26 15:47:08.000000000 +0200 @@ -16,7 +16,7 @@ #include "gen/defc64.inc" + TEST(NT,NT),A(0:NT),ROOT(NT),SUM C R is the estimated radius of a circle centered at a root - DIMENSION R(NT),RES(NT) + DIMENSION R(NT+1),RES(NT) LOGICAL INR2(NT,NT) PARAMETER (MAXFUN=50000) PARAMETER (TSTERR=5D-8) diff -Naur src.orig/mathlib/gen/tests/c302m.F src.new/mathlib/gen/tests/c302m.F --- src.orig/mathlib/gen/tests/c302m.F 1996-04-01 17:01:13.000000000 +0200 +++ src.new/mathlib/gen/tests/c302m.F 2011-07-26 15:55:28.000000000 +0200 @@ -36,6 +36,7 @@ #include "gen/imp64.inc" REAL GAMMA + EXTERNAL GAMMA, DGAMMA CHARACTER*6 TFUNC(2) #include "iorc.inc" C diff -Naur src.orig/mathlib/gen/tests/c310m.F src.new/mathlib/gen/tests/c310m.F --- src.orig/mathlib/gen/tests/c310m.F 1996-04-01 17:01:14.000000000 +0200 +++ src.new/mathlib/gen/tests/c310m.F 2011-07-26 15:55:28.000000000 +0200 @@ -36,6 +36,7 @@ #include "imp64r.inc" REAL ALGAMA + EXTERNAL ALGAMA C Set maximum error allowed for test to be considered successful DIMENSION TOL(2),TOLIBM(2) @@ -50,9 +51,11 @@ #if defined(CERNLIB_DOUBLE) DIMENSION Y(7),T(7) REAL RT(7) + EXTERNAL DLGAMA #endif #if !defined(CERNLIB_DOUBLE) REAL Y(7),T(7) + EXTERNAL ALGAMA #endif DATA LTEST1/.TRUE./ diff -Naur src.orig/mathlib/gen/tests/c327m.F src.new/mathlib/gen/tests/c327m.F --- src.orig/mathlib/gen/tests/c327m.F 2006-09-15 11:34:55.000000000 +0200 +++ src.new/mathlib/gen/tests/c327m.F 2011-07-26 15:28:16.000000000 +0200 @@ -95,11 +95,7 @@ #endif ENDIF WRITE(Z,'(2D26.16)') H,T -#if defined(CERNLIB_MACOSX) - READ(Z,'(2(4X,D22.16))') H1,T1 -#else READ(Z,'(2(D22.16,4X))') H1,T1 -#endif IF(IDS .EQ. 1) THEN ERRMAX=MAX(ERRMAX,ABS(H1-T1)) LTEST= LTEST .AND. ERRMAX .LE. TSTERR diff -Naur src.orig/mathlib/gen/tests/e408m.F src.new/mathlib/gen/tests/e408m.F --- src.orig/mathlib/gen/tests/e408m.F 1998-11-05 11:41:34.000000000 +0100 +++ src.new/mathlib/gen/tests/e408m.F 2011-07-26 15:55:29.000000000 +0200 @@ -44,6 +44,12 @@ DATA TXT(2) /'EXP(-X**2) (-1 <= X <= 1) LUKE 3.2.2(8)'/ DATA TXT(3) /'J_1(X) (-1 <= X <= 1) LUKE 9.7(7)'/ +#if defined(CERNLIB_DOUBLE) + EXTERNAL DGAMMA +#else + EXTERNAL GAMMA +#endif + #if !defined(CERNLIB_WINNT) && !defined(CERNLIB_LINUX) # if defined(CERNLIB_DOUBLE) GVSUM(N,B,C) = DVSUM(N,B,C) diff -Naur src.orig/mathlib/gen/tests/main.F src.new/mathlib/gen/tests/main.F --- src.orig/mathlib/gen/tests/main.F 1996-09-17 10:53:22.000000000 +0200 +++ src.new/mathlib/gen/tests/main.F 2011-07-26 15:56:00.000000000 +0200 @@ -332,5 +332,7 @@ #endif C Close output streams IF (LOUT .NE. 6) CLOSE(UNIT=LOUT) +C Exit non-zero if any test failed + IF (NFAIL .NE. 0) CALL EXITF(1) STOP END diff -Naur src.orig/mathlib/gen/tests/vecdraw.F src.new/mathlib/gen/tests/vecdraw.F --- src.orig/mathlib/gen/tests/vecdraw.F 1996-04-01 17:01:31.000000000 +0200 +++ src.new/mathlib/gen/tests/vecdraw.F 2011-07-27 20:03:05.000000000 +0200 @@ -15,7 +15,7 @@ C- Simple vector drawing routine C DIMENSION V(*) - CHARACTER*78 LINE,REPEAT + CHARACTER*78 LINE C VMAX=0. VMIN=0. diff -Naur src.orig/mathlib/gen/v/nranf.F src.new/mathlib/gen/v/nranf.F --- src.orig/mathlib/gen/v/nranf.F 1996-04-01 17:02:54.000000000 +0200 +++ src.new/mathlib/gen/v/nranf.F 2011-07-26 16:00:31.000000000 +0200 @@ -14,10 +14,12 @@ VECTOR(I) = RNDM(I) 100 CONTINUE RETURN - ENTRY NRANIN (V) + END + SUBROUTINE NRANIN (V) CALL RDMIN(V) RETURN - ENTRY NRANUT (V) + END + SUBROUTINE NRANUT (V) CALL RDMOUT(V) RETURN END diff -Naur src.orig/mclibs/cojets/Imakefile src.new/mclibs/cojets/Imakefile --- src.orig/mclibs/cojets/Imakefile 1996-05-06 22:06:50.000000000 +0200 +++ src.new/mclibs/cojets/Imakefile 2011-07-26 15:28:16.000000000 +0200 @@ -17,6 +17,4 @@ InstallNonExecFileTarget(install.lib,cojets.dat,$(CERN_LIBDIR)) -TestSubdirs(test) - InstallIncludeSubdirs(cojets) diff -Naur src.orig/mclibs/cojets/data/Imakefile src.new/mclibs/cojets/data/Imakefile --- src.orig/mclibs/cojets/data/Imakefile 1996-03-27 10:31:06.000000000 +0100 +++ src.new/mclibs/cojets/data/Imakefile 2011-07-26 15:28:16.000000000 +0200 @@ -1,11 +1,11 @@ .SUFFIXES: -CopyFile(cojets.cpp,cojets.cin) +CopyFile(cojets.cpp,cojets.s) CopyFile(decay.cpp,decay.cin) CopyFile(table.cpp,table.cin) -CppFileTarget(cojets.dat,cojets.cin,NullParameter,table.cin decay.cin) +CppFileTarget(cojets.dat,cojets.s,-E -traditional,table.cin decay.cin) PackageDirFileTarget(cojets.dat) diff -Naur src.orig/mclibs/herwig/code/hwhew2.F src.new/mclibs/herwig/code/hwhew2.F --- src.orig/mclibs/herwig/code/hwhew2.F 1996-12-03 15:16:55.000000000 +0100 +++ src.new/mclibs/herwig/code/hwhew2.F 2011-07-26 15:28:16.000000000 +0200 @@ -75,8 +75,7 @@ H(J,I)=(ZDMP*ZP-ZDPM*ZQ)*ZT CH(J,I)=(ZDMP*ZPS-ZDPM*ZQS)*ZT ZD=H(J,I)*CH(J,I) - PT5=CMPLX(.5,0.) - D(J,I)=PT5*ZD + D(J,I)=CMPLX(.5,0.)*ZD 11 CONTINUE DO 60 I=1,NPART-1 IPP1=I+1 diff -Naur src.orig/mclibs/herwig/code/hwhiga.F src.new/mclibs/herwig/code/hwhiga.F --- src.orig/mclibs/herwig/code/hwhiga.F 2006-09-04 14:32:57.000000000 +0200 +++ src.new/mclibs/herwig/code/hwhiga.F 2011-07-26 17:19:48.000000000 +0200 @@ -72,7 +72,7 @@ TAMP(6)=HWHIG5(T,S,U,EMH2,EMQ2,2,0,5,0,0,0) TAMP(7)=HWHIG5(U,T,S,EMH2,EMQ2,3,0,6,0,0,0) DO 20 I=1,7 - TAMPI(I)= REAL(TAMP(I)) + TAMPI(I)= DBLE(TAMP(I)) #if !defined(CERNLIB_GFORTRAN) 20 TAMPR(I)=-IMAG(TAMP(I)) #else diff -Naur src.orig/mclibs/herwig/code/hwuli2.F src.new/mclibs/herwig/code/hwuli2.F --- src.orig/mclibs/herwig/code/hwuli2.F 2006-09-04 14:32:57.000000000 +0200 +++ src.new/mclibs/herwig/code/hwuli2.F 2011-07-26 17:19:48.000000000 +0200 @@ -18,7 +18,7 @@ & 1.644934066848226D0/ PROD(Y,Y2)=Y*(ONE+A1*Y*(ONE+A2*Y*(ONE+A3*Y2*(ONE+A4*Y2*(ONE+A5*Y2* & (ONE+A6*Y2*(ONE+A7*Y2*(ONE+A8*Y2*(ONE+A9*Y2*(ONE+A10*Y2)))))))))) - XR=REAL(X) + XR=DBLE(X) #if !defined(CERNLIB_GFORTRAN) XI=IMAG(X) #else diff -Naur src.orig/mclibs/isajet/data/Imakefile src.new/mclibs/isajet/data/Imakefile --- src.orig/mclibs/isajet/data/Imakefile 1996-03-27 10:33:19.000000000 +0100 +++ src.new/mclibs/isajet/data/Imakefile 2011-07-26 15:28:16.000000000 +0200 @@ -1,9 +1,9 @@ .SUFFIXES: -CopyFile(decay.cpp,decay.cin) +CopyFile(decay.cpp,decay.s) -CppFileTarget(isajet.dat,decay.cin,NullParameter,NullParameter) +CppFileTarget(isajet.dat,decay.s,-E -traditional ,NullParameter) PackageDirFileTarget(isajet.dat) diff -Naur src.orig/mclibs/isajet/doc/physics.doc src.new/mclibs/isajet/doc/physics.doc --- src.orig/mclibs/isajet/doc/physics.doc 2001-10-08 16:03:08.000000000 +0200 +++ src.new/mclibs/isajet/doc/physics.doc 2011-07-26 17:18:45.000000000 +0200 @@ -122,7 +122,7 @@ $W/Z$ decay. These were calculated using FORM 1.1 by J.~Vermaseren. The process $g + t \to W + b$ is {\it not} included. Both $g + b \to W^- + t$ and $g + \bar t \to W^- + \bar b$ of course give the same $W^- + t -+\BARB_FINALSTATEAFTERQCDEVOLUTION ++\bar b$ final state after QCD evolution. While the latter process is needed to describe the $m_t = 0$(!) mass singularity for $q_t \gg m_t$, it has a pole in the physical region at low $q_t$ from on-shell $t \to W + b$ decays. There is no obvious way to avoid this without diff -Naur src.orig/mclibs/isajet/isajet/hepevt.inc src.new/mclibs/isajet/isajet/hepevt.inc --- src.orig/mclibs/isajet/isajet/hepevt.inc 1998-04-02 16:47:34.000000000 +0200 +++ src.new/mclibs/isajet/isajet/hepevt.inc 2011-07-26 17:21:06.000000000 +0200 @@ -9,7 +9,7 @@ COMMON/HEPEVT/NEVHEP,NHEP,ISTHEP(NMXHEP),IDHEP(NMXHEP), $JMOHEP(2,NMXHEP),JDAHEP(2,NMXHEP),PHEP(5,NMXHEP),VHEP(4,NMXHEP) INTEGER NEVHEP,NHEP,ISTHEP,IDHEP,JMOHEP,JDAHEP - REAL PHEP,VHEP + DOUBLE PRECISION PHEP,VHEP SAVE /HEPEVT/ C... NEVHEP - event number C... NHEP - number of entries in this event diff -Naur src.orig/mclibs/isajet/isajet/pilot.h src.new/mclibs/isajet/isajet/pilot.h --- src.orig/mclibs/isajet/isajet/pilot.h 2001-10-08 15:16:58.000000000 +0200 +++ src.new/mclibs/isajet/isajet/pilot.h 2011-07-26 17:20:37.000000000 +0200 @@ -41,3 +41,6 @@ #ifndef CERNLIB_MOVEFTN #define CERNLIB_MOVEFTN #endif +#ifndef CERNLIB_INTERACT +#define CERNLIB_INTERACT +#endif diff -Naur src.orig/mclibs/isajet/test/Imakefile src.new/mclibs/isajet/test/Imakefile --- src.orig/mclibs/isajet/test/Imakefile 2000-07-25 18:21:34.000000000 +0200 +++ src.new/mclibs/isajet/test/Imakefile 2011-07-26 15:28:16.000000000 +0200 @@ -8,4 +8,10 @@ CernlibFortranProgramTarget(isajett,isajett.o,$(PACKAGE_LIB),$(PACKAGE_LIB),pdflib804 mathlib kernlib) +#if !defined(CERNLIB_GFORTRAN) TestTarget(isajett,isajet.dat,test.input) +#else +/* ignore 'STOP 99' in testing isajet for gfortran */ +TestTargetIgnore(isajett,isajet.dat,test.input) +#endif + diff -Naur src.orig/packlib/cspack/cspack/hcntpar.inc src.new/packlib/cspack/cspack/hcntpar.inc --- src.orig/packlib/cspack/cspack/hcntpar.inc 1996-03-08 16:44:16.000000000 +0100 +++ src.new/packlib/cspack/cspack/hcntpar.inc 2011-07-26 15:28:16.000000000 +0200 @@ -22,7 +22,7 @@ + ZIFREA=7, ZNWTIT=8, ZITIT1=9, ZNCHRZ=13, ZIFBIT=8, + ZDESC=1, ZLNAME=2, ZNAME=3, ZRANGE=4, ZNADDR=12, + ZARIND=11, ZIBLOK=8, ZNBLOK=10, ZIBANK=9, ZIFTMP=11, - + ZITMP=10, ZNTMP=5, ZNTMP1=3, ZLINK=6) + + ZITMP=10, ZNTMP=6, ZNTMP1=4, ZLINK=6) * #endif diff -Naur src.orig/packlib/cspack/programs/zftp/zftpcdf.cdf src.new/packlib/cspack/programs/zftp/zftpcdf.cdf --- src.orig/packlib/cspack/programs/zftp/zftpcdf.cdf 1996-03-08 16:44:20.000000000 +0100 +++ src.new/packlib/cspack/programs/zftp/zftpcdf.cdf 2011-07-26 15:47:54.000000000 +0200 @@ -388,8 +388,8 @@ CHOPT 'CHOPT' C D=' ' >Guidance Transfer all files matching the specified remote file name -to the local system. The file name given may contain -*, to match one or more characters, or %, to match a single +to the local system. The file name given may contain *, +to match one or more characters, or %, to match a single character. . By default the transfer is performed @@ -397,9 +397,9 @@ . e.g. . -*.PAM --> GETP -*.CETA, *.CET --> GETB, LRECL=3600 -*.CMZ, *.RZ --> GETRZ + *.PAM --> GETP + *.CETA, *.CET --> GETB, LRECL=3600 + *.CMZ, *.RZ --> GETRZ . Options are passed to the appropriate transfer routine. >Action MGET @@ -413,17 +413,18 @@ CHOPT 'CHOPT' C D=' ' >Guidance Transfer all files matching the specified local file name -to the remote system. The file name given may contain -*, to match one or more characters, or %, to match a single +to the remote system. The file name given may contain *, +to match one or more characters, or %, to match a single character. +. By default the transfer is performed using PUTA, unless the file name has a known extension. . e.g. . -*.PAM --> GETP -*.CETA, *.CET --> GETB, LRECL=3600 -*.CMZ, *.RZ --> GETRZ + *.PAM --> GETP + *.CETA, *.CET --> GETB, LRECL=3600 + *.CMZ, *.RZ --> GETRZ . e.g. . diff -Naur src.orig/packlib/cspack/sysreq/log.c src.new/packlib/cspack/sysreq/log.c --- src.orig/packlib/cspack/sysreq/log.c 2006-09-15 11:35:11.000000000 +0200 +++ src.new/packlib/cspack/sysreq/log.c 2011-07-26 15:28:17.000000000 +0200 @@ -31,6 +31,7 @@ #include /* standard input/output definitions */ #if !defined(vms) #include /* file control */ +#include /* string manipulation functions */ #else #include /* general utility definitions */ #include /* VMS's unix-emulation I/O */ diff -Naur src.orig/packlib/cspack/sysreq/netreq.c src.new/packlib/cspack/sysreq/netreq.c --- src.orig/packlib/cspack/sysreq/netreq.c 1996-03-08 16:44:25.000000000 +0100 +++ src.new/packlib/cspack/sysreq/netreq.c 2011-07-26 15:28:17.000000000 +0200 @@ -25,6 +25,7 @@ #include /* Internet data types */ #include /* Arpa internet routines */ #include /* Standard Input/Output */ +#include /* string manipulation functions */ #if defined(vms) #include #else @@ -340,7 +341,7 @@ return(-errno); } TRACE(2, "sysreq", "recv reply length"); - if ((int)(p = RecvStr(s, &replylen)) <0) { + if ((long)(p = RecvStr(s, &replylen)) <0) { TRACE(2, "sysreq", "RecvStr(RepLen): (errno=%d)", errno); (void) close(s); END_TRACE(); diff -Naur src.orig/packlib/cspack/sysreq/serror.c src.new/packlib/cspack/sysreq/serror.c --- src.orig/packlib/cspack/sysreq/serror.c 1998-08-25 14:44:52.000000000 +0200 +++ src.new/packlib/cspack/sysreq/serror.c 2011-07-26 15:28:17.000000000 +0200 @@ -177,7 +177,7 @@ else { #if !defined(vms) if ((n>0) && (n #include #include + +#if !defined(linux) extern char* malloc(); +#endif /* linux */ #if defined(vms) #if defined(TWG) && (TWG == 1) @@ -412,7 +415,7 @@ s_errmsg() /* return last error message */ { #if !defined(vms) - return(sys_errlist[errno]); + return((char*)sys_errlist[errno]); #else /* vms */ #if defined(MULTINET) && (MULTINET == 1) return(vms_errno_string()); diff -Naur src.orig/packlib/cspack/sysreq/sysreq.h src.new/packlib/cspack/sysreq/sysreq.h --- src.orig/packlib/cspack/sysreq/sysreq.h 1996-03-08 16:44:26.000000000 +0100 +++ src.new/packlib/cspack/sysreq/sysreq.h 2011-07-26 15:28:17.000000000 +0200 @@ -88,7 +88,7 @@ */ #ifndef VM -extern char *malloc(); /* Memory allocation */ +#include /* standard C library defs */ #endif /* VM */ extern char *getenv(); /* Get environment info */ diff -Naur src.orig/packlib/cspack/sysreq/xdr.c src.new/packlib/cspack/sysreq/xdr.c --- src.orig/packlib/cspack/sysreq/xdr.c 1996-03-08 16:44:26.000000000 +0100 +++ src.new/packlib/cspack/sysreq/xdr.c 2011-07-26 15:28:17.000000000 +0200 @@ -52,7 +52,7 @@ #endif /* min */ #ifndef VM -extern char *malloc(); +#include /* standard C library defs */ #endif /* VM */ #ifdef VM diff -Naur src.orig/packlib/cspack/tcpaw/Imakefile src.new/packlib/cspack/tcpaw/Imakefile --- src.orig/packlib/cspack/tcpaw/Imakefile 1999-01-15 14:59:12.000000000 +0100 +++ src.new/packlib/cspack/tcpaw/Imakefile 2011-07-26 15:45:32.000000000 +0200 @@ -49,4 +49,14 @@ #endif #endif +#if defined(CERNLIB_LINUX) && defined(CERNLIB_GFORTRAN) + /* This is to avoid warnings in code not used for linux */ +CCOPTIONS+=-trigraphs +#endif + +#if defined(CERNLIB_LINUX) && defined(__GNUC__) + /* This is to avoid warnings in code not used for linux */ +CCOPTIONS+=-trigraphs +#endif + SubdirLibraryTarget(NullParameter,NullParameter) diff -Naur src.orig/packlib/cspack/tcpaw/tcpaw.c src.new/packlib/cspack/tcpaw/tcpaw.c --- src.orig/packlib/cspack/tcpaw/tcpaw.c 2006-12-07 14:26:48.000000000 +0100 +++ src.new/packlib/cspack/tcpaw/tcpaw.c 2011-07-26 15:28:17.000000000 +0200 @@ -307,6 +307,7 @@ #ifndef IBMRT /* this is a kludge, one ought to fix the "prototypes" in this file */ #include +#include /* needed for linux gcc4 */ #endif /* IBMRT */ #endif /* WIN32 */ #endif /* IBM */ @@ -487,7 +488,7 @@ #endif /* VMS */ #ifdef AUTHENT - unsigned char idbuf[100]; + char idbuf[100]; char usbuf[20], pwbuf[20]; char *user = usbuf, *passwd = pwbuf; register int i, len; @@ -496,7 +497,7 @@ #ifdef SOCKETS struct hostent *hp; /* host info for remote host */ struct sockaddr_in peeraddr_in; /* for peer socket address */ - int peerlen; + unsigned peerlen; #endif /* SOCKETS */ #ifdef WIN32 @@ -530,7 +531,7 @@ #ifdef SOCKETS memset ((char *)&peeraddr_in, 0, sizeof(struct sockaddr_in)); peerlen = sizeof(peeraddr_in); - if (getpeername(s, &peeraddr_in, &peerlen) == SOCKET_ERROR) { + if (getpeername(s, (struct sockaddr *)&peeraddr_in, &peerlen) == SOCKET_ERROR) { #ifdef LOGFILE fprintf(logfile, "%s: getpeername failed\n", Prog_Name); #endif /* LOGFILE */ @@ -667,7 +668,7 @@ SOCKET *isock, *osock; { #ifdef AUTHENT - unsigned char idbuf[100]; + char idbuf[100]; char usbuf[20], pwbuf[20]; char *user = usbuf, *passwd = pwbuf; register int i, len; @@ -736,7 +737,7 @@ unsigned short sport = *port; /* VM */ #if defined ( _WIN32) && defined (AUTHENT) - unsigned char idbuf[100]; + char idbuf[100]; char usbuf[20], pwbuf[20]; char *user = usbuf, *passwd = pwbuf; register int i, len; @@ -809,7 +810,8 @@ } #endif /* Bind the listen address to the socket. */ - if (bind(ls, &myaddr_in, sizeof(struct sockaddr_in)) == SOCKET_ERROR) { +/* if (bind(ls, &myaddr_in, sizeof(struct sockaddr_in)) == SOCKET_ERROR) { */ + if (bind(ls, (struct sockaddr *)&myaddr_in, sizeof(struct sockaddr_in)) == SOCKET_ERROR) { #if defined(IBM) || defined(_WIN32) tcperror("server_sock_setup: bind(ls,...)"); #else @@ -838,7 +840,8 @@ exit(1); } addrlen = sizeof(struct sockaddr_in); - s = accept(ls, &peeraddr_in, &addrlen); +/* s = accept(ls, &peeraddr_in, &addrlen); */ + s = accept(ls, (struct sockaddr *)&peeraddr_in, (socklen_t *)&addrlen); if ( s == INVALID_SOCKET) { fprintf(stderr, "%s: accept error\n", "server_sock_setup"); return(-1); @@ -993,7 +996,7 @@ char *user = NULL, *passwd = NULL; int port; #if defined(AUTHENT) - unsigned char idbuf[100]; + char idbuf[100]; #endif /* AUTHENT */ #ifdef VMS @@ -1299,7 +1302,8 @@ /* Try to connect to the remote server at the address * which was just built into peeraddr. */ - if (connect(s, &peeraddr_in, sizeof(struct sockaddr_in)) == SOCKET_ERROR) { +/* if (connect(s, &peeraddr_in, sizeof(struct sockaddr_in)) == SOCKET_ERROR) { */ + if (connect(s, (struct sockaddr *)&peeraddr_in, sizeof(struct sockaddr_in)) == SOCKET_ERROR) { #ifndef _WIN32 close(s); #else @@ -1322,7 +1326,8 @@ } addrlen = sizeof(struct sockaddr_in); - if (getsockname(s, &myaddr_in, &addrlen) == SOCKET_ERROR) { +/* if (getsockname(s, &myaddr_in, &addrlen) == SOCKET_ERROR) { */ + if (getsockname(s, (struct sockaddr *)&myaddr_in, (socklen_t *)&addrlen) == SOCKET_ERROR) { #if defined(IBM) || defined(_WIN32) tcperror("client_sock_setup"); #else @@ -2446,6 +2451,7 @@ char *host, **aname, **apass; { char *hdir, buf[BUFSIZ]; + int token(); int t; #ifndef _WIN32 struct stat stb; @@ -2521,7 +2527,7 @@ static FILE *cfile; #endif -static +int token() { @@ -2644,7 +2650,7 @@ return(pbuf); } -static void +void catch() { ++intrupt; @@ -2714,7 +2720,8 @@ ((struct in_addr *)(hp->h_addr))->s_addr; /* bcopy(hp->h_addr, (caddr_t)&sin.sin_addr, hp->h_length); */ } - if (connect(s, &sin, sizeof(struct sockaddr_in)) == SOCKET_ERROR ) { +/* if (connect(s, &sin, sizeof(struct sockaddr_in)) == SOCKET_ERROR ) { */ + if (connect(s, (struct sockaddr *)&sin, sizeof(struct sockaddr_in)) == SOCKET_ERROR ) { #ifndef _WIN32 if (errno == ECONNREFUSED && timo <= 16) { (void) close(s); @@ -3378,7 +3385,8 @@ ((struct in_addr *)(hp->h_addr))->s_addr; /* bcopy(hp->h_addr, (caddr_t)&sin.sin_addr, hp->h_length); */ } - if (connect(s, &sin, sizeof(struct sockaddr_in)) == SOCKET_ERROR) { +/* if (connect(s, &sin, sizeof(struct sockaddr_in)) == SOCKET_ERROR) { */ + if (connect(s, (struct sockaddr *)&sin, sizeof(struct sockaddr_in)) == SOCKET_ERROR) { #ifndef WIN32 if (errno == ECONNREFUSED && timo <= 16) { (void) close(s); diff -Naur src.orig/packlib/fatmen/fmc/faexit.c src.new/packlib/fatmen/fmc/faexit.c --- src.orig/packlib/fatmen/fmc/faexit.c 1997-09-02 14:56:52.000000000 +0200 +++ src.new/packlib/fatmen/fmc/faexit.c 2011-07-26 15:28:17.000000000 +0200 @@ -27,6 +27,7 @@ void faexit(icode) #endif #if defined(CERNLIB_QX_SC) +#include /* standard C library defs */ void faexit_(icode) #endif int *icode; diff -Naur src.orig/packlib/fatmen/programs/fmkuip/fmcdf.cdf src.new/packlib/fatmen/programs/fmkuip/fmcdf.cdf --- src.orig/packlib/fatmen/programs/fmkuip/fmcdf.cdf 1997-01-07 12:20:31.000000000 +0100 +++ src.new/packlib/fatmen/programs/fmkuip/fmcdf.cdf 2011-07-26 15:47:54.000000000 +0200 @@ -324,8 +324,8 @@ >Command SEARCH >Guidance Use the SEARCH command to print the generic names of files which -match the specified criteria. Character fields may include the -* or % wild cards. +match the specified criteria. Character fields may include the * +or % wild cards. . e.g. SEARCH * VID=I* # search current working directory for entries # with VID's beginning with I. @@ -432,7 +432,7 @@ If no wild-cards are present in the pathname, the characters /* are automatically appended. To zoom down a tree starting with . -*ALLD, use ZOOM *ALLD/* + *ALLD, use ZOOM *ALLD/* . >MENU \FMDATA >Guidance diff -Naur src.orig/packlib/hbook/chbook/Imakefile src.new/packlib/hbook/chbook/Imakefile --- src.orig/packlib/hbook/chbook/Imakefile 1999-11-15 14:25:58.000000000 +0100 +++ src.new/packlib/hbook/chbook/Imakefile 2011-07-26 15:28:17.000000000 +0200 @@ -13,7 +13,19 @@ #endif #if defined(CERNLIB_LINUX) +EXTRA_DEFINES := $(EXTRA_DEFINES) -D_SVID_SOURCE +#endif + +#if defined(CERNLIB_LINUX) && !defined(CERNLIB_QMLXIA64) +EXTRA_DEFINES := $(EXTRA_DEFINES) -Df2cFortran +#endif + +#if defined(CERNLIB_QMLXIA64) +#if defined(CERNLIB_GFORTRAN) +EXTRA_DEFINES := $(EXTRA_DEFINES) -DgFortran +#else EXTRA_DEFINES := $(EXTRA_DEFINES) -Df2cFortran #endif +#endif SubdirLibraryTarget(NullParameter,NullParameter) diff -Naur src.orig/packlib/hbook/hbook/hcdire.inc src.new/packlib/hbook/hbook/hcdire.inc --- src.orig/packlib/hbook/hbook/hcdire.inc 2003-02-07 13:13:37.000000000 +0100 +++ src.new/packlib/hbook/hbook/hcdire.inc 2011-07-26 15:53:12.000000000 +0200 @@ -20,7 +20,7 @@ * *CMZ : 4.20/03 28/07/93 09.33.32 by Rene Brun *-- Author : - PARAMETER (NLPATM=100, MXFILES=50, LENHFN=128) + PARAMETER (NLPATM=100, MXFILES=50, LENHFN=256) COMMON /HCDIRN/NLCDIR,NLNDIR,NLPAT,ICDIR,NCHTOP,ICHTOP(MXFILES) + ,ICHTYP(MXFILES),ICHLUN(MXFILES) CHARACTER*16 CHNDIR, CHCDIR, CHPAT ,CHTOP diff -Naur src.orig/packlib/hbook/hbook/hcntpar.inc src.new/packlib/hbook/hbook/hcntpar.inc --- src.orig/packlib/hbook/hbook/hcntpar.inc 1996-01-16 18:07:52.000000000 +0100 +++ src.new/packlib/hbook/hbook/hcntpar.inc 2011-07-26 15:28:17.000000000 +0200 @@ -24,7 +24,7 @@ + ZIFREA=7, ZNWTIT=8, ZITIT1=9, ZNCHRZ=13, ZIFBIT=8, + ZDESC=1, ZLNAME=2, ZNAME=3, ZRANGE=4, ZNADDR=12, + ZARIND=11, ZIBLOK=8, ZNBLOK=10, ZIBANK=9, ZIFTMP=11, - + ZID=12, ZITMP=10, ZNTMP=6, ZNTMP1=3, ZLINK=6) + + ZID=12, ZITMP=10, ZNTMP=6, ZNTMP1=4, ZLINK=6) * #endif diff -Naur src.orig/packlib/hbook/hmmap/hcreatem.F src.new/packlib/hbook/hmmap/hcreatem.F --- src.orig/packlib/hbook/hmmap/hcreatem.F 1996-03-13 11:13:20.000000000 +0100 +++ src.new/packlib/hbook/hmmap/hcreatem.F 2011-07-26 15:28:17.000000000 +0200 @@ -39,11 +39,11 @@ ************************************************************************ * CHARACTER*(*) MFILE -#if !defined(CERNLIB_ALPHA_OSF) +#if !defined(CERNLIB_ALPHA_OSF) && !defined(CERNLIB_QMLXIA64) INTEGER ICOMAD(1), ISIZE, IBASE(1), HCREATEI SAVE ICOMAD #endif -#if defined(CERNLIB_ALPHA_OSF) +#if defined(CERNLIB_ALPHA_OSF) || defined(CERNLIB_QMLXIA64) INTEGER ISIZE, IBASE(1), HCREATEI INTEGER*8 ICOMAD(1) SAVE ICOMAD @@ -63,6 +63,13 @@ ************************************************************************ ICOMAD(1) = 0 #endif +#if defined(CERNLIB_QMLXIA64) +C this is for Intels IA64 architectures (data are in 0x6000000000000000) +C on AMD64 this yields 0 and will not change ICOMAD(1) + ICOMAD(1) = LOC (ICOMAD(1)) - LOCB(ICOMAD(1)) +C this should be a reasonable range for IA64 architectures + ICOMAD(1) = ICOMAD(1) + 2**30 +#endif #if (defined(CERNLIB_DECS))&&(!defined(CERNLIB_ALPHA)) ICOMAD(1) = 4*LOCF(ICOMAD(1)) + MFEN ICOMAD(1) = ((ICOMAD(1)+4095)/4096)*4096 @@ -89,7 +96,6 @@ #if defined(CERNLIB_SYS5) && !defined(CERNLIB_ALPHA_OSF) HCREATEM = HCREATEI(MKEY, ISIZE, ICOMAD) #endif - #if !defined(CERNLIB_ALPHA_OSF) IOFFST = ICOMAD(1) - LOCF(IBASE(1)) #endif diff -Naur src.orig/packlib/hbook/hmmap/hmapm.F src.new/packlib/hbook/hmmap/hmapm.F --- src.orig/packlib/hbook/hmmap/hmapm.F 2001-10-02 11:06:15.000000000 +0200 +++ src.new/packlib/hbook/hmmap/hmapm.F 2011-07-26 15:28:17.000000000 +0200 @@ -54,11 +54,11 @@ ************************************************************************ * CHARACTER*(*) MFILE -#if !defined(CERNLIB_ALPHA_OSF) +#if !defined(CERNLIB_ALPHA_OSF) && !defined(CERNLIB_QMLXIA64) INTEGER ICOMAD(1), IBASE(1), HMAPI SAVE ICOMAD #endif -#if defined(CERNLIB_ALPHA_OSF) +#if defined(CERNLIB_ALPHA_OSF) || defined(CERNLIB_QMLXIA64) INTEGER IBASE(1), HMAPI INTEGER*8 ICOMAD(1) SAVE ICOMAD @@ -81,6 +81,13 @@ CALL UCTOH(MFILE2,MKEY,4,4) ICOMAD(1) = 0 #endif +#if defined(CERNLIB_QMLXIA64) +C this is for Intels IA64 architectures (data are in 0x6000000000000000) +C on AMD64 this yields 0 and will not change ICOMAD(1) + ICOMAD(1) = LOC (ICOMAD(1)) - LOCB(ICOMAD(1)) +C this should be a reasonable range for IA64 architectures + ICOMAD(1) = ICOMAD(1) + 2**30 +#endif #if defined(CERNLIB_DECS) ICOMAD(1) = 4*LOCF(ICOMAD(1)) + MFEN ICOMAD(1) = ((ICOMAD(1)+4095)/4096)*4096 diff -Naur src.orig/packlib/hbook/hntup/hballoc.F src.new/packlib/hbook/hntup/hballoc.F --- src.orig/packlib/hbook/hntup/hballoc.F 1996-01-16 18:07:56.000000000 +0100 +++ src.new/packlib/hbook/hntup/hballoc.F 2011-07-26 15:28:17.000000000 +0200 @@ -25,8 +25,13 @@ *..=========> ( A.A.Rademakers ) * CHARACTER*(*) CHDIR, VAR, BLOCK - INTEGER IDN, ITYPE, ISIZE, NELEM, IBASE(1), IBUF(1) - INTEGER IOFF, NUSE, IFIRST + INTEGER IDN, ITYPE, ISIZE, NELEM, NUSE, IFIRST, IBASE(1) +#if defined(CERNLIB_QMLXIA64) + INTEGER*8 IBUF(1), IOFF + PARAMETER (NADUPW=4, LADUPW=2) +#else + INTEGER IBUF(1), IOFF +#endif * LC = LENOCC(CHDIR) LV = LENOCC(VAR) @@ -38,7 +43,38 @@ IF (NUSE .EQ. 0) THEN IOFF = 0 ELSE +#if defined(CERNLIB_QMLXIA64) && defined(CERNLIB_QMGLIBC) +* IBUF contains an address (dynamic memory allocation) +* which may exceed the 32 bit address space +* use intrinsic LOC function here (which returns a 64 bit address) +* IOFF is used afterwards as index to the PAWC common + IOFF = IBUF(1) - LOC(IBASE(1))/NADUPW +#else IOFF = IBUF(1) - LOCF(IBASE(1)) +#endif + ENDIF +* + END +* +* 64-bit version (separate to preserve ABI compatibility) + SUBROUTINE HBALLOC64(IDN,CHDIR,VAR,BLOCK,ITYPE,ISIZE,IFIRST,NELEM, + + IBASE,IOFF,NUSE) +* + CHARACTER*(*) CHDIR, VAR, BLOCK + INTEGER IDN, ITYPE, ISIZE, NELEM, NUSE, IFIRST, IBASE(1) + INTEGER*8 IBUF(1), IOFF +* + LC = LENOCC(CHDIR) + LV = LENOCC(VAR) + LB = LENOCC(BLOCK) +* + CALL HBALLO1(IDN, CHDIR, LC, VAR, LV, BLOCK, LB, ITYPE, ISIZE, + + IFIRST, NELEM, IBUF, NUSE) +* + IF (NUSE .EQ. 0) THEN + IOFF = 0 + ELSE + IOFF = IBUF(1) - LOC(IBASE(1))/4 ENDIF * END diff -Naur src.orig/packlib/hbook/hntup/hbnt.F src.new/packlib/hbook/hntup/hbnt.F --- src.orig/packlib/hbook/hntup/hbnt.F 1996-01-16 18:07:56.000000000 +0100 +++ src.new/packlib/hbook/hntup/hbnt.F 2011-07-26 15:28:17.000000000 +0200 @@ -274,6 +274,8 @@ * 3 * * Offset of variable in LNAME bank (INDX-1)*ZNADDR* * 4 * * Offset in dynamically allocated buffer (only * * * * used via HGNTBF) otherwise 0 * + * 5 * * spare (used in 64 bit architectures for upper * + * * * address part * ************************************************************************ #endif * diff -Naur src.orig/packlib/hbook/hntup/hgnt2.F src.new/packlib/hbook/hntup/hgnt2.F --- src.orig/packlib/hbook/hntup/hgnt2.F 1999-03-05 16:42:35.000000000 +0100 +++ src.new/packlib/hbook/hntup/hgnt2.F 2011-07-26 15:28:17.000000000 +0200 @@ -34,7 +34,13 @@ #include "hbook/hcrecv.inc" * CHARACTER*(*) VAR1(*) +#if defined(CERNLIB_QMLXIA64) + INTEGER*8 IVOFF(*), IOFFST, IOFFSTT + INTEGER IOFFSTV(2) + EQUIVALENCE (IOFFSTV, IOFFSTT) +#else INTEGER IVOFF(*) +#endif CHARACTER*32 VAR INTEGER ILOGIC, HNMPTR LOGICAL LOGIC, INDVAR, ALLVAR, USEBUF, CHKOFF @@ -452,12 +458,21 @@ IQ(LTMP1+JTMP+1) = IOFF IF (USEBUF) THEN IF (IEDIF .EQ. 0) THEN - IQ(LTMP1+JTMP+2) = IOFFST + IOFFSTT = IOFFST ELSE - IQ(LTMP1+JTMP+2) = IOFFST + (IEDIF*ISHFT(ISIZE,-2)) + IOFFSTT = IOFFST + (IEDIF*ISHFT(ISIZE,-2)) ENDIF + IQ(LTMP1+JTMP+2) = IOFFSTT +#if defined(CERNLIB_QMLXIA64) +* store upper part of 64 bit address + IQ(LTMP1+JTMP+3) = IOFFSTV(2) +#endif ELSE IQ(LTMP1+JTMP+2) = 0 +#if defined(CERNLIB_QMLXIA64) +* reset upper part of 64 bit address + IQ(LTMP1+JTMP+3) = 0 +#endif ENDIF LQ(LTMP1-IQ(LTMP1+1)) = LBLOK * diff -Naur src.orig/packlib/hbook/hntup/hgntbf.F src.new/packlib/hbook/hntup/hgntbf.F --- src.orig/packlib/hbook/hntup/hgntbf.F 1996-01-16 18:07:57.000000000 +0100 +++ src.new/packlib/hbook/hntup/hgntbf.F 2011-07-26 15:28:17.000000000 +0200 @@ -26,3 +26,13 @@ CALL HGNT1(IDN, '*', VAR, IOFFST, NVAR1, IDNEVT, IERROR) * END +* +* 64-bit version (separate to preserve ABI compatibility) + SUBROUTINE HGNTBF64(IDN,VAR,IOFFST,NVAR,IDNEVT,IERROR) + CHARACTER*(*) VAR(*) + INTEGER*8 IOFFST(*) +* + NVAR1 = -NVAR + CALL HGNT1(IDN, '*', VAR, IOFFST, NVAR1, IDNEVT, IERROR) +* + END diff -Naur src.orig/packlib/hbook/hntup/hgntf.F src.new/packlib/hbook/hntup/hgntf.F --- src.orig/packlib/hbook/hntup/hgntf.F 1999-03-05 16:42:35.000000000 +0100 +++ src.new/packlib/hbook/hntup/hgntf.F 2011-07-26 15:28:17.000000000 +0200 @@ -37,6 +37,13 @@ INTEGER ILOGIC LOGICAL LOGIC, INDVAR, USEBUF EQUIVALENCE (LOGIC, ILOGIC) + +#if defined(CERNLIB_QMLXIA64) + INTEGER*8 IOFFST, IOFFSTT + INTEGER IOFFSTV(2) + EQUIVALENCE (IOFFSTV, IOFFSTT) +#endif + * #include "hbook/jbyt.inc" * @@ -76,6 +83,12 @@ INDX = IQ(LTMP1+JTMP) IOFF = IQ(LTMP1+JTMP+1) IOFFST = IQ(LTMP1+JTMP+2) +#if defined(CERNLIB_QMLXIA64) +* fetch full 64 bit address + IOFFSTV(1) = IQ(LTMP1+JTMP+2) + IOFFSTV(2) = IQ(LTMP1+JTMP+3) + IOFFST = IOFFSTT +#endif IF (IOFFST .EQ. 0) THEN USEBUF = .FALSE. ELSE @@ -442,12 +455,21 @@ * IF (USEBUF) THEN IF (IEDIF .EQ. 0) THEN - IQ(LTMP1+JTMP+2) = IOFFST + IOFFSTT = IOFFST ELSE - IQ(LTMP1+JTMP+2) = IOFFST + (IEDIF*ISHFT(ISIZE,-2)) + IOFFSTT = IOFFST + (IEDIF*ISHFT(ISIZE,-2)) ENDIF + IQ(LTMP1+JTMP+2) = IOFFSTT +#if defined(CERNLIB_QMLXIA64) +* store upper part of 64 bit address + IQ(LTMP1+JTMP+3) = IOFFSTV(2) +#endif ELSE IQ(LTMP1+JTMP+2) = 0 +#if defined(CERNLIB_QMLXIA64) +* reset upper part of 64 bit address + IQ(LTMP1+JTMP+3) = 0 +#endif ENDIF * 40 CONTINUE diff -Naur src.orig/packlib/kernlib/kernbit/test/Imakefile src.new/packlib/kernlib/kernbit/test/Imakefile --- src.orig/packlib/kernlib/kernbit/test/Imakefile 1997-02-04 18:34:01.000000000 +0100 +++ src.new/packlib/kernlib/kernbit/test/Imakefile 2011-07-26 15:28:17.000000000 +0200 @@ -13,7 +13,7 @@ DefinePackageLibrary(kernbitt) -NormalFortranProgramTarget(kbtest,kbtest.o,$(PACKAGE_LIB),$(PACKAGE_LIB),NullParameter) +CernlibFortranProgramTarget(kbtest,kbtest.o,$(PACKAGE_LIB),$(PACKAGE_LIB),packlib) TestTarget(kbtest,fatmen.names,NullParameter) diff -Naur src.orig/packlib/kernlib/kerngen/ccgen/Imakefile src.new/packlib/kernlib/kerngen/ccgen/Imakefile --- src.orig/packlib/kernlib/kerngen/ccgen/Imakefile 2002-09-19 18:44:52.000000000 +0200 +++ src.new/packlib/kernlib/kerngen/ccgen/Imakefile 2011-07-26 15:56:44.000000000 +0200 @@ -11,6 +11,10 @@ sleepf.c signalf.c sigprnt.c sigunbl.c stati.c systei.c \ @@\ tminit.c unlini.c tmread.c +#ifdef CERNLIB_QMLXIA64 +SRCS_C += chkloc.c +#endif + #ifndef CERNLIB_OS9 SRCS_C += timel.c lstati.c #endif @@ -19,7 +23,9 @@ SRCS_C += apofsz.c #endif -#if defined(CERNLIB_WINNT) +#if defined(CERNLIB_WINNT) || defined(CERNLIB_LINUX) +/* Do not use lenocc.c in Linux; favor packlib/kernlib/kerngen/tcgen/lenocc.F + * instead. --Kevin McCarty, for Debian */ SRCS_C += lnblnk.c #endif @@ -29,7 +35,7 @@ #if defined(CERNLIB_DECS) || defined(CERNLIB_QMVAOS) \ || defined(CERNLIB_HPUX) || defined(CERNLIB_IBMRT) || defined(CERNLIB_IBMRTD) \ - || defined(CERNLIB_OS9) || defined(CERNLIB_LINUX) + || defined(CERNLIB_OS9) SRCS_C += lenocc.c lnblnk.c #endif diff -Naur src.orig/packlib/kernlib/kerngen/ccgen/abend.c src.new/packlib/kernlib/kerngen/ccgen/abend.c --- src.orig/packlib/kernlib/kerngen/ccgen/abend.c 1997-02-04 18:34:12.000000000 +0100 +++ src.new/packlib/kernlib/kerngen/ccgen/abend.c 2011-07-26 15:28:17.000000000 +0200 @@ -19,6 +19,7 @@ CERN PROGLIB# Z035 ABEND .VERSION KERNFOR 4.31 911111 */ #if defined(CERNLIB_QX_SC) +#include void type_of_call abend_() #endif #if defined(CERNLIB_QXNO_SC) diff -Naur src.orig/packlib/kernlib/kerngen/ccgen/chkloc.c src.new/packlib/kernlib/kerngen/ccgen/chkloc.c --- src.orig/packlib/kernlib/kerngen/ccgen/chkloc.c 1970-01-01 01:00:00.000000000 +0100 +++ src.new/packlib/kernlib/kerngen/ccgen/chkloc.c 2011-07-26 15:28:17.000000000 +0200 @@ -0,0 +1,10 @@ +/* + * Utility routine for locf and locb + * H. Vogt (harald.vogt@desy.de) + * + */ + +#if defined(CERNLIB_QMLXIA64) +#include "lp64gs/chkloc.c" +#endif + diff -Naur src.orig/packlib/kernlib/kerngen/ccgen/ctimef.c src.new/packlib/kernlib/kerngen/ccgen/ctimef.c --- src.orig/packlib/kernlib/kerngen/ccgen/ctimef.c 1997-02-04 18:34:14.000000000 +0100 +++ src.new/packlib/kernlib/kerngen/ccgen/ctimef.c 2011-07-26 15:45:33.000000000 +0200 @@ -24,6 +24,7 @@ STIME decoded time string of length 24 (CHARACTER*24 STIME) */ #if defined(CERNLIB_QX_SC) +#include void type_of_call ctimef_(clock, stime) #endif #if defined(CERNLIB_QXNO_SC) diff -Naur src.orig/packlib/kernlib/kerngen/ccgen/exitf.c src.new/packlib/kernlib/kerngen/ccgen/exitf.c --- src.orig/packlib/kernlib/kerngen/ccgen/exitf.c 1997-02-04 18:34:16.000000000 +0100 +++ src.new/packlib/kernlib/kerngen/ccgen/exitf.c 2011-07-26 15:28:17.000000000 +0200 @@ -19,6 +19,7 @@ CERN PROGLIB# Z035 EXITF .VERSION KERNFOR 4.39 940228 */ #if defined(CERNLIB_QX_SC) +#include void type_of_call exitf_(st) #endif #if defined(CERNLIB_QXNO_SC) diff -Naur src.orig/packlib/kernlib/kerngen/ccgen/getwdi.c src.new/packlib/kernlib/kerngen/ccgen/getwdi.c --- src.orig/packlib/kernlib/kerngen/ccgen/getwdi.c 1997-09-02 16:26:36.000000000 +0200 +++ src.new/packlib/kernlib/kerngen/ccgen/getwdi.c 2011-07-26 15:28:17.000000000 +0200 @@ -29,6 +29,7 @@ ISLATE(1) returns its lenth NTEXT */ #include +#include #ifdef WIN32 #include # ifndef getcwd @@ -58,7 +59,7 @@ #endif int *lgname; { - char *malloc(); +/* char *malloc(); - see above "#include " */ char *ptalc, *pttext; int fchput(); int nalc; diff -Naur src.orig/packlib/kernlib/kerngen/ccgen/jumptn.c src.new/packlib/kernlib/kerngen/ccgen/jumptn.c --- src.orig/packlib/kernlib/kerngen/ccgen/jumptn.c 2004-07-29 16:07:43.000000000 +0200 +++ src.new/packlib/kernlib/kerngen/ccgen/jumptn.c 2011-07-26 15:28:17.000000000 +0200 @@ -20,8 +20,10 @@ */ #include "kerngen/pilot.h" -#if defined(CERNLIB_QMLXIA64)||defined(CERNLIB_QMVAOS) -#include "vaogs/jumptn.c" +#if defined(CERNLIB_QMVAOS) +#include "vaogs/jumptn.c" +#elif defined(CERNLIB_QMLXIA64) +#include "lp64gs/jumptn.c" #else /*> ROUTINE JUMPTN CERN PROGLIB# Z043 JUMPTN .VERSION KERNFOR 4.40 940929 diff -Naur src.orig/packlib/kernlib/kerngen/ccgen/jumpxn.c src.new/packlib/kernlib/kerngen/ccgen/jumpxn.c --- src.orig/packlib/kernlib/kerngen/ccgen/jumpxn.c 2004-07-29 16:07:43.000000000 +0200 +++ src.new/packlib/kernlib/kerngen/ccgen/jumpxn.c 2011-07-26 15:28:17.000000000 +0200 @@ -20,8 +20,10 @@ */ #include "kerngen/pilot.h" -#if defined(CERNLIB_QMLXIA64)||defined(CERNLIB_QMVAOS) +#if defined(CERNLIB_QMVAOS) #include "vaogs/jumpxn.c" +#elif defined(CERNLIB_QMLXIA64) +#include "lp64gs/jumpxn.c" #else /*> ROUTINE JUMPXN CERN PROGLIB# Z042 JUMPXN .VERSION KERNFOR 4.40 940929 diff -Naur src.orig/packlib/kernlib/kerngen/ccgen/lenocc.c src.new/packlib/kernlib/kerngen/ccgen/lenocc.c --- src.orig/packlib/kernlib/kerngen/ccgen/lenocc.c 1997-10-23 18:25:11.000000000 +0200 +++ src.new/packlib/kernlib/kerngen/ccgen/lenocc.c 2011-07-26 15:28:17.000000000 +0200 @@ -46,7 +46,7 @@ /* look at the last ntail characters */ - ntail = ((int)chcur & 3); + ntail = ((unsigned long)chcur & 3); for (i = ntail; i > 0; i--) { if (*--chcur != ' ') goto exit; } diff -Naur src.orig/packlib/kernlib/kerngen/ccgen/locb.c src.new/packlib/kernlib/kerngen/ccgen/locb.c --- src.orig/packlib/kernlib/kerngen/ccgen/locb.c 1997-09-02 16:26:37.000000000 +0200 +++ src.new/packlib/kernlib/kerngen/ccgen/locb.c 2011-07-26 15:28:17.000000000 +0200 @@ -26,6 +26,9 @@ # define DummyDef #endif +#if defined(CERNLIB_QMLXIA64) +#include "lp64gs/locb.c" +#else /*> ROUTINE LOCB CERN PROGLIB# N101 LOCB .VERSION KERNFOR 4.36 930602 @@ -44,9 +47,29 @@ DummyDef #endif { +#if defined(CERNLIB_QMLXIA64) + const unsigned long long int mask=0x00000000ffffffff; + static unsigned long long int base=1; + unsigned long long int jadr=(unsigned long long int) iadr; + unsigned long long int jadrl = (mask & jadr); + + if (base == 1) { + base = (~mask & jadr); + } else if(base != (~mask & jadr)) { + printf("!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!\n"); + printf("locf_() Warning: changing base from %lx to %lx!!!\n", + base, (~mask & jadr)); + printf("This may result in program crash or incorrect results\n"); + printf("!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!\n"); + } + return ((unsigned) jadrl); +#else return( (int) iadr ); +#endif } /*> END <----------------------------------------------------------*/ +#endif #ifdef CERNLIB_TCGEN_LOCB #undef CERNLIB_TCGEN_LOCB #endif + diff -Naur src.orig/packlib/kernlib/kerngen/ccgen/locf.c src.new/packlib/kernlib/kerngen/ccgen/locf.c --- src.orig/packlib/kernlib/kerngen/ccgen/locf.c 2004-07-29 16:06:07.000000000 +0200 +++ src.new/packlib/kernlib/kerngen/ccgen/locf.c 2011-07-26 15:28:17.000000000 +0200 @@ -50,6 +50,8 @@ #include "irtdgs/locf.c" #elif defined(CERNLIB_QMVAOS) #include "vaogs/locf.c" +#elif defined(CERNLIB_QMLXIA64) +#include "lp64gs/locf.c" #else /*> ROUTINE LOCF CERN PROGLIB# N100 LOCF .VERSION KERNFOR 4.36 930602 @@ -68,25 +70,7 @@ DummyDef #endif { -#if defined(CERNLIB_QMLXIA64) - const unsigned long long int mask=0x00000000ffffffff; - static unsigned long long int base=1; - unsigned long long int jadr=(unsigned long long int) iadr; - unsigned long long int jadrl = ((mask & jadr) >> LADUPW); - - if (base == 1) { - base = (~mask & jadr); - } else if(base != (~mask & jadr)) { - printf("!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!\n"); - printf("locf_() Warning: changing base from %lx to %lx!!!\n", - base, (~mask & jadr)); - printf("This may result in program crash or incorrect results\n"); - printf("!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!\n"); - } - return ((unsigned) jadrl); -#else return( ((unsigned) iadr) >> LADUPW ); -#endif } #undef Dummy2LocPar #undef DummyDef diff -Naur src.orig/packlib/kernlib/kerngen/ccgen/lp64gs/chkloc.c src.new/packlib/kernlib/kerngen/ccgen/lp64gs/chkloc.c --- src.orig/packlib/kernlib/kerngen/ccgen/lp64gs/chkloc.c 1970-01-01 01:00:00.000000000 +0100 +++ src.new/packlib/kernlib/kerngen/ccgen/lp64gs/chkloc.c 2011-07-26 15:28:17.000000000 +0200 @@ -0,0 +1,65 @@ +/* + * + * Revision 1.1.1.1 2006/06/14 + * Kernlib utility for locf, locb on LP64 architectures H. Vogt + * (AMD64/Intel EM64T and IA64) + * + */ + +#include +#include + +/*> ROUTINE LOCF + CERN PROGLIB# N100 LOCF .VERSION KERNFOR 4.36 930602 +*/ +/*> ROUTINE LOCB + CERN PROGLIB# N101 LOCB .VERSION KERNFOR 4.36 930602 +*/ + +unsigned int chkloc(iadr) + char *iadr; +{ + /* 64 bit architectures may exceed the 32 bit address space ! */ + + /* AMD64/Intel EM64T architectures have the dynamic segments above + 0x80000000000 and the stack immediately below this whereas the text and + data segments are staring from 0x400000. The implementations address + space is limited to 0x00007fffffffffff. + Allocated memory with malloc/calloc is starting from the end of text and + data segments upwards. + + IA64 architectures have the dynamic segments are above 0x2000000000000000, + the stack is above 0x8000000000000000, the data segments starts at + 0x6000000000000000 and the text segments start at 0x4000000000000000 + Allocated memory with malloc/calloc is starting from the end of + data segments upwards. All addresses here are expected to be in + the data segment area. */ + + /* K. McCarty: On Alpha, on the other hand, I couldn't find any docs for the + Linux segmentation for virtual memory. Judging by a test machine + (escher.debian.org), the data section starts slightly above 0x120010000. + On the other hand the stack grows downward from 0x120000000. */ + + const unsigned long mask=0xffffffff00000000; + static unsigned long limit=0x00000000ffffffff; + unsigned long jadr=((unsigned long) iadr & mask); +#if defined (__ia64__) + if ( jadr != 0x6000000000000000) { +#elif defined (__alpha__) || defined (__APPLE__) + if ( jadr != 0x0000000100000000) { +#else /* amd64 or ppc64 */ + if ( jadr != 0) { +#endif + fprintf(stderr, "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!\n"); + fprintf(stderr, "LOCB/LOCF: address %p exceeds the 32 bit address space\n", iadr); + fprintf(stderr, "or is not in the data segments\n"); + fprintf(stderr, "This may result in program crash or incorrect results\n"); + fprintf(stderr, "Therefore we will stop here\n"); + fprintf(stderr, "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!\n"); + exit (999); + } + jadr=((unsigned long) iadr & limit); + return ((unsigned) jadr); +} +/*> END <----------------------------------------------------------*/ + diff -Naur src.orig/packlib/kernlib/kerngen/ccgen/lp64gs/jumptn.c src.new/packlib/kernlib/kerngen/ccgen/lp64gs/jumptn.c --- src.orig/packlib/kernlib/kerngen/ccgen/lp64gs/jumptn.c 1970-01-01 01:00:00.000000000 +0100 +++ src.new/packlib/kernlib/kerngen/ccgen/lp64gs/jumptn.c 2011-07-26 15:28:17.000000000 +0200 @@ -0,0 +1,83 @@ +/* + * $Id: jumptn.c,v 1.1.1.1 1996/02/15 17:49:32 mclareni Exp $ + * + * $Log: jumptn.c,v $ + * Revision 1.1.1.1 1996/02/15 17:49:32 mclareni + * Kernlib + * + */ +/*> ROUTINE JUMPTN + CERN PROGLIB# Z043 JUMPTN .VERSION KERNLP64 1.00 060717 + Copy of JUMPTN .VERSION KERNVMI 1.09 940531 + ORIG. 21/04/88 JZ+FCA +C +C- To transfer to the user routine TARGET (say) with 2 parameters +C- two steps are needed : + +C- 1) EXTERNAL TARGET to get the address of TARGET +C- IADR = JUMPAD (TARGET) + +C- 3) CALL JUMPT2 (IADR,par1,par2) to transfer +*/ +#define jumpt0 jumpt0_ +#define jumpt1 jumpt1_ +#define jumpt2 jumpt2_ +#define jumpt3 jumpt3_ +#define jumpt4 jumpt4_ + +extern int jumpad_(); + +static void (*jumpto)(); + +void jumpt0(iadr) + int *iadr; +{ + long func; + func = *iadr + (long)jumpad_; + jumpto = (void(*)()) func; + jumpto(); + return; +} + +void jumpt1(iadr,ipara) + int *iadr; + char *ipara; +{ + long func; + func = *iadr + (long)jumpad_; + jumpto = (void(*)()) func; + jumpto (ipara); + return; +} + +void jumpt2(iadr, ipara, iparb) + int *iadr; + char *ipara, *iparb; +{ + long func; + func = *iadr + (long)jumpad_; + jumpto = (void(*)()) func; + jumpto (ipara, iparb); + return; +} +void jumpt3(iadr, ipara, iparb, iparc) + int *iadr; + char *ipara, *iparb, *iparc; +{ + long func; + func = *iadr + (long)jumpad_; + jumpto = (void(*)()) func; + jumpto (ipara, iparb, iparc); + return; +} +void jumpt4(iadr, ipara, iparb, iparc, ipard) + int *iadr; + char *ipara, *iparb, *iparc, *ipard; +{ + long func; + func = *iadr + (long)jumpad_; + jumpto = (void(*)()) func; + jumpto (ipara, iparb, iparc, ipard); + return; +} +/*> END <----------------------------------------------------------*/ diff -Naur src.orig/packlib/kernlib/kerngen/ccgen/lp64gs/jumpxn.c src.new/packlib/kernlib/kerngen/ccgen/lp64gs/jumpxn.c --- src.orig/packlib/kernlib/kerngen/ccgen/lp64gs/jumpxn.c 1970-01-01 01:00:00.000000000 +0100 +++ src.new/packlib/kernlib/kerngen/ccgen/lp64gs/jumpxn.c 2011-07-26 15:28:17.000000000 +0200 @@ -0,0 +1,92 @@ +/* + * $Id: jumpxn.c,v 1.1.1.1 1996/02/15 17:49:32 mclareni Exp $ + * + * $Log: jumpxn.c,v $ + * Revision 1.1.1.1 1996/02/15 17:49:32 mclareni + * Kernlib + * + */ +/*> ROUTINE JUMPXN + CERN PROGLIB# Z043 JUMPXN .VERSION KERNLP64 1.00 060717 + Copy of JUMPXN .VERSION KERNVMI 1.08 930527 + ORIG. 21/04/88 JZ+FCA, adapted 11/05/93 AP+JZ +C +C- To transfer to the user routine TARGET (say) with 2 parameters +C- three steps are needed : +C- Check that relative jump addresses fits into 32 bits + +C- 1) EXTERNAL TARGET to get the address of TARGET +C- IADR = JUMPAD (TARGET) + +C- 2) CALL JUMPST (IADR) to set the tranfer address + +C- 3) CALL JUMPX2 (par1,par2) to transfer +*/ + +#include "stdio.h" +#include + +static void (*tarsub)(); + +/* ---- jumpad --------------------------------------------- */ +int jumpad_(ifun) + char *ifun; +{ + long temp; + + temp = (long)ifun - (long)jumpad_; + if (labs(temp) > 0x3fffffff) { + printf("!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!\n"); + printf("JUMPAD: address %p exceeds the 32 bit address space\n", temp); + printf("This may result in program crash or incorrect results\n"); + printf("Therefore we will stop here\n"); + printf("!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!\n"); + exit (999); + } + return (int) temp; +} + +/* ---- jumpst --------------------------------------------- */ +void jumpst_(iadr) + int *iadr; +{ + long true; + + true = (long)jumpad_; + true = true + *iadr; + tarsub = (void (*)())true; +} + +/* ---- jumpxn --------------------------------------------- */ +jumpx0_() +{ + (*tarsub)(); + return; +} + +jumpx1_(ipara) + char *ipara; +{ + (*tarsub)(ipara); + return; +} + +jumpx2_(ipara, iparb) + char *ipara, *iparb; +{ + (*tarsub)(ipara, iparb); + return; +} +jumpx3_(ipara, iparb, iparc) + char *ipara, *iparb, *iparc; +{ + (*tarsub)(ipara, iparb, iparc); + return; +} +jumpx4_(ipara, iparb, iparc, ipard) + char *ipara, *iparb, *iparc, *ipard; +{ + (*tarsub)(ipara, iparb, iparc, ipard); + return; +} +/*> END <----------------------------------------------------------*/ diff -Naur src.orig/packlib/kernlib/kerngen/ccgen/lp64gs/locb.c src.new/packlib/kernlib/kerngen/ccgen/lp64gs/locb.c --- src.orig/packlib/kernlib/kerngen/ccgen/lp64gs/locb.c 1970-01-01 01:00:00.000000000 +0100 +++ src.new/packlib/kernlib/kerngen/ccgen/lp64gs/locb.c 2011-07-26 15:28:17.000000000 +0200 @@ -0,0 +1,37 @@ +/*> ROUTINE LOCB + CERN PROGLIB# N101 LOCB .VERSION KERNFOR 4.36 930602 +*/ + +unsigned int chkloc(char *address); + +unsigned int locb_(iadr) + char *iadr; +{ + return (chkloc(iadr)); +} + +#include /* for ptrdiff_t, size_t */ +#include /* for fprintf */ +#include /* for exit */ + +int iptrdiff_(iadr1, iadr2) + char * iadr1, * iadr2; +{ + long diff = (long)iadr1 - (long)iadr2; + if (diff < (long)INT32_MIN || diff > (long)INT32_MAX) { + fprintf(stderr, "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!\n"); + fprintf(stderr, "IPTRDIFF: difference of addresses %p and %p\n", iadr1, iadr2); + fprintf(stderr, "cannot be stored in 32-bit signed integer!\n"); + fprintf(stderr, "This may result in program crash or incorrect results\n"); + fprintf(stderr, "Therefore we will stop here\n"); + fprintf(stderr, "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!\n"); + exit (999); + } + else return (int)diff; +} + +int iptrsame_(iadr1, iadr2) + char * iadr1, * iadr2; +{ + return (size_t)iadr1 == (size_t)iadr2 ? 1 : 0; +} diff -Naur src.orig/packlib/kernlib/kerngen/ccgen/lp64gs/locf.c src.new/packlib/kernlib/kerngen/ccgen/lp64gs/locf.c --- src.orig/packlib/kernlib/kerngen/ccgen/lp64gs/locf.c 1970-01-01 01:00:00.000000000 +0100 +++ src.new/packlib/kernlib/kerngen/ccgen/lp64gs/locf.c 2011-07-26 15:28:17.000000000 +0200 @@ -0,0 +1,10 @@ +/*> ROUTINE LOCF + CERN PROGLIB# N100 LOCF .VERSION KERNFOR 4.36 930602 +*/ +unsigned int chkloc(char *address); + +unsigned int locf_(iadr) + char *iadr; +{ + return ( (chkloc(iadr)) >> 2 ); +} diff -Naur src.orig/packlib/kernlib/kerngen/ccgen/lstati.c src.new/packlib/kernlib/kerngen/ccgen/lstati.c --- src.orig/packlib/kernlib/kerngen/ccgen/lstati.c 1997-02-04 18:34:35.000000000 +0100 +++ src.new/packlib/kernlib/kerngen/ccgen/lstati.c 2011-07-26 15:28:17.000000000 +0200 @@ -26,6 +26,7 @@ Fortran interface routine to lstat */ #include +#include #include #include #include "kerngen/fortchar.h" @@ -56,7 +57,7 @@ ptname = fchtak(fname,*lgname); if (ptname == NULL) goto out1; - buf = (struct stat *) malloc(sizeof (struct stat)); + buf = malloc(sizeof (struct stat)); if (buf == NULL) goto out2; istat = lstat(ptname, buf); diff -Naur src.orig/packlib/kernlib/kerngen/ccgen/signalf.c src.new/packlib/kernlib/kerngen/ccgen/signalf.c --- src.orig/packlib/kernlib/kerngen/ccgen/signalf.c 1999-10-06 16:17:01.000000000 +0200 +++ src.new/packlib/kernlib/kerngen/ccgen/signalf.c 2011-07-26 15:28:17.000000000 +0200 @@ -45,6 +45,7 @@ C- function value = adr of previous handler */ #include +typedef void (*sighandler_t)(int); #if defined(CERNLIB_QX_SC) int type_of_call signalf_(signum,funct,flag) #endif @@ -58,7 +59,7 @@ int *funct; { int signo, istat; - int handler; + sighandler_t handler; void *oldhand; signo = *signum; @@ -67,14 +68,15 @@ if (*flag < 0) handler = *funct; #endif #if !defined(CERNLIB_QCCINDAD) - if (*flag < 0) handler = (int)funct; + if (*flag < 0) handler = (sighandler_t)funct; #endif - else if (*flag == 0) handler = (int)SIG_DFL; - else if (*flag == 1) handler = (int)SIG_IGN; - else handler = *flag; + else if (*flag == 0) handler = (sighandler_t)SIG_DFL; + else if (*flag == 1) handler = (sighandler_t)SIG_IGN; + else handler = (sighandler_t)(long)*flag; oldhand = signal(signo,handler); - istat = (int)oldhand; + unsigned long myistat = (unsigned long)oldhand; + istat = (int)myistat; #ifndef __GNUC__ if (oldhand == SIG_ERR) istat = -1; #endif diff -Naur src.orig/packlib/kernlib/kerngen/ccgen/sigprnt.c src.new/packlib/kernlib/kerngen/ccgen/sigprnt.c --- src.orig/packlib/kernlib/kerngen/ccgen/sigprnt.c 1997-02-04 18:34:42.000000000 +0100 +++ src.new/packlib/kernlib/kerngen/ccgen/sigprnt.c 2011-07-26 15:28:17.000000000 +0200 @@ -34,7 +34,7 @@ #ifndef CERNLIB_WINNT sigset_t oldmask; - sigprocmask (NULL, NULL, &oldmask); + sigprocmask ( 0, NULL, &oldmask); printf (" blocked signals are: %x\n", oldmask); #else diff -Naur src.orig/packlib/kernlib/kerngen/ccgen/stati.c src.new/packlib/kernlib/kerngen/ccgen/stati.c --- src.orig/packlib/kernlib/kerngen/ccgen/stati.c 1997-09-02 16:26:39.000000000 +0200 +++ src.new/packlib/kernlib/kerngen/ccgen/stati.c 2011-07-26 15:28:17.000000000 +0200 @@ -26,6 +26,7 @@ Fortran interface routine to stat */ #include +#include #if defined(CERNLIB_QMVAX)||defined(CERNLIB_QMOS9) #include #include @@ -72,7 +73,7 @@ if (ptname == NULL) goto out1; #ifndef WIN32 - buf = (struct stat *) malloc(sizeof (struct stat)); + buf = malloc(sizeof (struct stat)); #else buf = (struct _stat *) malloc(sizeof (struct _stat)); #endif diff -Naur src.orig/packlib/kernlib/kerngen/ccgen/timel.c src.new/packlib/kernlib/kerngen/ccgen/timel.c --- src.orig/packlib/kernlib/kerngen/ccgen/timel.c 1997-02-04 18:34:47.000000000 +0100 +++ src.new/packlib/kernlib/kerngen/ccgen/timel.c 2011-07-26 15:28:17.000000000 +0200 @@ -30,6 +30,7 @@ #include #include #include +#include /* For ia64... */ #ifndef CLOCKS_PER_SEC #define CLOCKS_PER_SEC CLK_TCK diff -Naur src.orig/packlib/kernlib/kerngen/ccgenu/fchtak.c src.new/packlib/kernlib/kerngen/ccgenu/fchtak.c --- src.orig/packlib/kernlib/kerngen/ccgenu/fchtak.c 1996-02-15 18:49:40.000000000 +0100 +++ src.new/packlib/kernlib/kerngen/ccgenu/fchtak.c 2011-07-26 15:28:17.000000000 +0200 @@ -16,6 +16,7 @@ return the memory pointer */ #include +#include #include "kerngen/fortchar.h" char *fchtak(ftext,lgtext) #if defined(CERNLIB_QMCRY) @@ -26,7 +27,7 @@ #endif int lgtext; { - char *malloc(); + /* char *malloc(); - see above "#include " */ char *ptalc, *ptuse; char *utext; int nalc; diff -Naur src.orig/packlib/kernlib/kerngen/tcgens/ublow.F src.new/packlib/kernlib/kerngen/tcgens/ublow.F --- src.orig/packlib/kernlib/kerngen/tcgens/ublow.F 1998-09-25 11:32:02.000000000 +0200 +++ src.new/packlib/kernlib/kerngen/tcgens/ublow.F 2011-07-26 15:28:17.000000000 +0200 @@ -25,7 +25,7 @@ #include "dosgs/ublow.F" #elif defined(CERNLIB_QMMPW) #include "mpwgs/ublow.F" -#elif defined(CERNLIB_QMVAOS)||defined(CERNLIB_QMVMI) +#elif defined(CERNLIB_QMVAOS)||defined(CERNLIB_QMVMI)||defined(CERNLIB_GFORTRAN) #include "allgs/ublow.F" #elif (defined(CERNLIB_QMLNX) && !defined(CERNLIB_PPC)) #include "lnxgs/ublow.F" diff -Naur src.orig/packlib/kernlib/kerngen/tcgens/ubunch.F src.new/packlib/kernlib/kerngen/tcgens/ubunch.F --- src.orig/packlib/kernlib/kerngen/tcgens/ubunch.F 1998-09-25 11:32:06.000000000 +0200 +++ src.new/packlib/kernlib/kerngen/tcgens/ubunch.F 2011-07-26 15:28:17.000000000 +0200 @@ -23,7 +23,7 @@ #include "wntgs/ubunch.F" #elif defined(CERNLIB_QMDOS) || defined(CERNLIB_WINNT) #include "dosgs/ubunch.F" -#elif defined(CERNLIB_QMVAOS)||defined(CERNLIB_QMVMI) +#elif defined(CERNLIB_QMVAOS)||defined(CERNLIB_QMVMI)||defined(CERNLIB_GFORTRAN) #include "allgs/ubunch.F" #elif (defined(CERNLIB_QMLNX) && !defined(CERNLIB_PPC)) #include "lnxgs/ubunch.F" diff -Naur src.orig/packlib/kernlib/kerngen/test/Imakefile src.new/packlib/kernlib/kerngen/test/Imakefile --- src.orig/packlib/kernlib/kerngen/test/Imakefile 1996-10-04 16:55:42.000000000 +0200 +++ src.new/packlib/kernlib/kerngen/test/Imakefile 2011-07-26 15:28:17.000000000 +0200 @@ -30,6 +30,6 @@ DefinePackageLibrary(kerngent) -NormalFortranProgramTarget(kerngen,test.o,$(PACKAGE_LIB),$(PACKAGE_LIB),NullParameter) +CernlibFortranProgramTarget(kerngen,test.o,$(PACKAGE_LIB),$(PACKAGE_LIB),packlib) TestTarget(kerngen,NullParameter,NullParameter) diff -Naur src.orig/packlib/kernlib/kerngen/unix/gfortgs/Imakefile src.new/packlib/kernlib/kerngen/unix/gfortgs/Imakefile --- src.orig/packlib/kernlib/kerngen/unix/gfortgs/Imakefile 2006-09-04 14:32:59.000000000 +0200 +++ src.new/packlib/kernlib/kerngen/unix/gfortgs/Imakefile 2011-07-26 16:00:34.000000000 +0200 @@ -1,6 +1,6 @@ -SRCS_F= irndm.F qnext.F rdmin.F +SRCS_F= irndm.F qnext.F rdmin.F kernlibgetarg.F -SRCS_C= lshift.c ishftr.c getarg.c +SRCS_C= lshift.c ishftr.c /* getarg.c */ SubdirLibraryTarget(NullParameter,NullParameter) diff -Naur src.orig/packlib/kernlib/kerngen/unix/gfortgs/kernlibgetarg.F src.new/packlib/kernlib/kerngen/unix/gfortgs/kernlibgetarg.F --- src.orig/packlib/kernlib/kerngen/unix/gfortgs/kernlibgetarg.F 1970-01-01 01:00:00.000000000 +0100 +++ src.new/packlib/kernlib/kerngen/unix/gfortgs/kernlibgetarg.F 2011-07-26 16:00:34.000000000 +0200 @@ -0,0 +1,19 @@ +* Wrapper GETARG routine for gfortran, +* originally written by Harald Vogt +* +* SUBROUTINE GETARG (JARG, CHARG) +* The following stuff is required to use gfortrans inline routine GETARG +* It is required to avoid the calling GETARG here which conflicts +* to the Fortran rules +* CHARACTER CHARG*(*) +* CALL MYGETARG (JARG, CHARG) +* END + + SUBROUTINE KERNLIBGETARG (JARG, CHARG) + CHARACTER CHARG*(*) +* gfortran translates the following line to a call +* to its library routine _gfortran_getarg_i4 +* therefore it will not clash in the linking step + CALL GETARG (JARG, CHARG) + END + diff -Naur src.orig/packlib/kernlib/kernnum/f002fort/cxj.inc src.new/packlib/kernlib/kernnum/f002fort/cxj.inc --- src.orig/packlib/kernlib/kernnum/f002fort/cxj.inc 1996-02-15 18:48:50.000000000 +0100 +++ src.new/packlib/kernlib/kernnum/f002fort/cxj.inc 2011-07-26 15:28:17.000000000 +0200 @@ -21,3 +21,6 @@ #if defined(CERNLIB_NUMIB1) JX = (IADDR(X2) - IADDR(X)) / 8 #endif +#if defined(CERNLIB_NUM64) + JX = IPTRDIFF(X2, X) / 8 +#endif diff -Naur src.orig/packlib/kernlib/kernnum/f002fort/cyj.inc src.new/packlib/kernlib/kernnum/f002fort/cyj.inc --- src.orig/packlib/kernlib/kernnum/f002fort/cyj.inc 1996-02-15 18:48:50.000000000 +0100 +++ src.new/packlib/kernlib/kernnum/f002fort/cyj.inc 2011-07-26 15:28:17.000000000 +0200 @@ -21,3 +21,6 @@ #if defined(CERNLIB_NUMIB1) JY = (IADDR(Y2) - IADDR(Y)) / 8 #endif +#if defined(CERNLIB_NUM64) + JY = IPTRDIFF(Y2, Y) / 8 +#endif diff -Naur src.orig/packlib/kernlib/kernnum/f002fort/czj.inc src.new/packlib/kernlib/kernnum/f002fort/czj.inc --- src.orig/packlib/kernlib/kernnum/f002fort/czj.inc 1996-02-15 18:48:50.000000000 +0100 +++ src.new/packlib/kernlib/kernnum/f002fort/czj.inc 2011-07-26 15:28:17.000000000 +0200 @@ -21,3 +21,6 @@ #if defined(CERNLIB_NUMIB1) JZ = (IADDR(Z2) - IADDR(Z)) / 8 #endif +#if defined(CERNLIB_NUM64) + JZ = IPTRDIFF(Z2, Z) / 8 +#endif diff -Naur src.orig/packlib/kernlib/kernnum/f002fort/dxj.inc src.new/packlib/kernlib/kernnum/f002fort/dxj.inc --- src.orig/packlib/kernlib/kernnum/f002fort/dxj.inc 1996-02-15 18:48:50.000000000 +0100 +++ src.new/packlib/kernlib/kernnum/f002fort/dxj.inc 2011-07-26 15:28:17.000000000 +0200 @@ -21,3 +21,6 @@ #if defined(CERNLIB_NUMIB1) JX = (IADDR(X2) - IADDR(X)) / 8 #endif +#if defined(CERNLIB_NUM64) + JX = IPTRDIFF(X2, X) / 8 +#endif diff -Naur src.orig/packlib/kernlib/kernnum/f002fort/dyj.inc src.new/packlib/kernlib/kernnum/f002fort/dyj.inc --- src.orig/packlib/kernlib/kernnum/f002fort/dyj.inc 1996-02-15 18:48:50.000000000 +0100 +++ src.new/packlib/kernlib/kernnum/f002fort/dyj.inc 2011-07-26 15:28:17.000000000 +0200 @@ -21,3 +21,6 @@ #if defined(CERNLIB_NUMIB1) JY = (IADDR(Y2) - IADDR(Y)) / 8 #endif +#if defined(CERNLIB_NUM64) + JY = IPTRDIFF(Y2, Y) / 8 +#endif diff -Naur src.orig/packlib/kernlib/kernnum/f002fort/dzj.inc src.new/packlib/kernlib/kernnum/f002fort/dzj.inc --- src.orig/packlib/kernlib/kernnum/f002fort/dzj.inc 1996-02-15 18:48:50.000000000 +0100 +++ src.new/packlib/kernlib/kernnum/f002fort/dzj.inc 2011-07-26 15:28:17.000000000 +0200 @@ -21,3 +21,6 @@ #if defined(CERNLIB_NUMIB1) JZ = (IADDR(Z2) - IADDR(Z)) / 8 #endif +#if defined(CERNLIB_NUM64) + JZ = IPTRDIFF(Z2, Z) / 8 +#endif diff -Naur src.orig/packlib/kernlib/kernnum/f002fort/rxj.inc src.new/packlib/kernlib/kernnum/f002fort/rxj.inc --- src.orig/packlib/kernlib/kernnum/f002fort/rxj.inc 1996-02-15 18:48:50.000000000 +0100 +++ src.new/packlib/kernlib/kernnum/f002fort/rxj.inc 2011-07-26 15:28:17.000000000 +0200 @@ -21,3 +21,6 @@ #if defined(CERNLIB_NUMIB1) JX = (IADDR(X2) - IADDR(X)) / 4 #endif +#if defined(CERNLIB_NUM64) + JX = IPTRDIFF(X2, X) / 4 +#endif diff -Naur src.orig/packlib/kernlib/kernnum/f002fort/ryj.inc src.new/packlib/kernlib/kernnum/f002fort/ryj.inc --- src.orig/packlib/kernlib/kernnum/f002fort/ryj.inc 1996-02-15 18:48:50.000000000 +0100 +++ src.new/packlib/kernlib/kernnum/f002fort/ryj.inc 2011-07-26 15:28:17.000000000 +0200 @@ -21,3 +21,6 @@ #if defined(CERNLIB_NUMIB1) JY = (IADDR(Y2) - IADDR(Y)) / 4 #endif +#if defined(CERNLIB_NUM64) + JY = IPTRDIFF(Y2, Y) / 4 +#endif diff -Naur src.orig/packlib/kernlib/kernnum/f002fort/rzj.inc src.new/packlib/kernlib/kernnum/f002fort/rzj.inc --- src.orig/packlib/kernlib/kernnum/f002fort/rzj.inc 1996-02-15 18:48:50.000000000 +0100 +++ src.new/packlib/kernlib/kernnum/f002fort/rzj.inc 2011-07-26 15:28:17.000000000 +0200 @@ -21,3 +21,6 @@ #if defined(CERNLIB_NUMIB1) JZ = (IADDR(Z2) - IADDR(Z)) / 4 #endif +#if defined(CERNLIB_NUM64) + JZ = IPTRDIFF(Z2, Z) / 4 +#endif diff -Naur src.orig/packlib/kernlib/kernnum/f003fort/cdi.inc src.new/packlib/kernlib/kernnum/f003fort/cdi.inc --- src.orig/packlib/kernlib/kernnum/f003fort/cdi.inc 1996-02-15 18:48:54.000000000 +0100 +++ src.new/packlib/kernlib/kernnum/f003fort/cdi.inc 2011-07-26 15:28:17.000000000 +0200 @@ -21,3 +21,6 @@ #if defined(CERNLIB_NUMIB1) ID = (IADDR(D2) - IADDR(D)) / 8 #endif +#if defined(CERNLIB_NUM64) + ID = IPTRDIFF(D2, D) / 8 +#endif diff -Naur src.orig/packlib/kernlib/kernnum/f003fort/cujk.inc src.new/packlib/kernlib/kernnum/f003fort/cujk.inc --- src.orig/packlib/kernlib/kernnum/f003fort/cujk.inc 1996-02-15 18:48:54.000000000 +0100 +++ src.new/packlib/kernlib/kernnum/f003fort/cujk.inc 2011-07-26 15:28:17.000000000 +0200 @@ -25,3 +25,7 @@ JU = (IADDR(U12) - IADDR(U)) / 8 KU = (IADDR(U22) - IADDR(U)) / 8 #endif +#if defined(CERNLIB_NUM64) + JU = IPTRDIFF(U12, U) / 8 + KU = IPTRDIFF(U22, U) / 8 +#endif diff -Naur src.orig/packlib/kernlib/kernnum/f003fort/cxi.inc src.new/packlib/kernlib/kernnum/f003fort/cxi.inc --- src.orig/packlib/kernlib/kernnum/f003fort/cxi.inc 1996-02-15 18:48:54.000000000 +0100 +++ src.new/packlib/kernlib/kernnum/f003fort/cxi.inc 2011-07-26 15:28:17.000000000 +0200 @@ -21,3 +21,6 @@ #if defined(CERNLIB_NUMIB1) IX = (IADDR(X2) - IADDR(X)) / 8 #endif +#if defined(CERNLIB_NUM64) + IX = IPTRDIFF(X2, X) / 8 +#endif diff -Naur src.orig/packlib/kernlib/kernnum/f003fort/cxij.inc src.new/packlib/kernlib/kernnum/f003fort/cxij.inc --- src.orig/packlib/kernlib/kernnum/f003fort/cxij.inc 1996-02-15 18:48:55.000000000 +0100 +++ src.new/packlib/kernlib/kernnum/f003fort/cxij.inc 2011-07-26 15:28:17.000000000 +0200 @@ -25,3 +25,7 @@ IX = (IADDR(X21) - IADDR(X)) / 8 JX = (IADDR(X12) - IADDR(X)) / 8 #endif +#if defined(CERNLIB_NUM64) + IX = IPTRDIFF(X21, X) / 8 + JX = IPTRDIFF(X12, X) / 8 +#endif diff -Naur src.orig/packlib/kernlib/kernnum/f003fort/cyij.inc src.new/packlib/kernlib/kernnum/f003fort/cyij.inc --- src.orig/packlib/kernlib/kernnum/f003fort/cyij.inc 1996-02-15 18:48:55.000000000 +0100 +++ src.new/packlib/kernlib/kernnum/f003fort/cyij.inc 2011-07-26 15:28:17.000000000 +0200 @@ -25,3 +25,7 @@ IY = (IADDR(Y21) - IADDR(Y)) / 8 JY = (IADDR(Y12) - IADDR(Y)) / 8 #endif +#if defined(CERNLIB_NUM64) + IY = IPTRDIFF(Y21, Y) / 8 + JY = IPTRDIFF(Y12, Y) / 8 +#endif diff -Naur src.orig/packlib/kernlib/kernnum/f003fort/cyj.inc src.new/packlib/kernlib/kernnum/f003fort/cyj.inc --- src.orig/packlib/kernlib/kernnum/f003fort/cyj.inc 1996-02-15 18:48:56.000000000 +0100 +++ src.new/packlib/kernlib/kernnum/f003fort/cyj.inc 2011-07-26 15:28:17.000000000 +0200 @@ -21,3 +21,6 @@ #if defined(CERNLIB_NUMIB1) JY = (IADDR(Y2) - IADDR(Y)) / 8 #endif +#if defined(CERNLIB_NUM64) + JY = IPTRDIFF(Y2, Y) / 8 +#endif diff -Naur src.orig/packlib/kernlib/kernnum/f003fort/czi.inc src.new/packlib/kernlib/kernnum/f003fort/czi.inc --- src.orig/packlib/kernlib/kernnum/f003fort/czi.inc 1996-02-15 18:48:55.000000000 +0100 +++ src.new/packlib/kernlib/kernnum/f003fort/czi.inc 2011-07-26 15:28:17.000000000 +0200 @@ -21,3 +21,6 @@ #if defined(CERNLIB_NUMIB1) IZ = (IADDR(Z2) - IADDR(Z)) / 8 #endif +#if defined(CERNLIB_NUM64) + IZ = IPTRDIFF(Z2, Z) / 8 +#endif diff -Naur src.orig/packlib/kernlib/kernnum/f003fort/czij.inc src.new/packlib/kernlib/kernnum/f003fort/czij.inc --- src.orig/packlib/kernlib/kernnum/f003fort/czij.inc 1996-02-15 18:48:55.000000000 +0100 +++ src.new/packlib/kernlib/kernnum/f003fort/czij.inc 2011-07-26 15:28:17.000000000 +0200 @@ -25,3 +25,7 @@ IZ = (IADDR(Z21) - IADDR(Z)) / 8 JZ = (IADDR(Z12) - IADDR(Z)) / 8 #endif +#if defined(CERNLIB_NUM64) + IZ = IPTRDIFF(Z21, Z) / 8 + JZ = IPTRDIFF(Z12, Z) / 8 +#endif diff -Naur src.orig/packlib/kernlib/kernnum/f003fort/czj.inc src.new/packlib/kernlib/kernnum/f003fort/czj.inc --- src.orig/packlib/kernlib/kernnum/f003fort/czj.inc 1996-02-15 18:48:56.000000000 +0100 +++ src.new/packlib/kernlib/kernnum/f003fort/czj.inc 2011-07-26 15:28:17.000000000 +0200 @@ -21,3 +21,6 @@ #if defined(CERNLIB_NUMIB1) JZ = (IADDR(Z2) - IADDR(Z)) / 8 #endif +#if defined(CERNLIB_NUM64) + JZ = IPTRDIFF(Z2, Z) / 8 +#endif diff -Naur src.orig/packlib/kernlib/kernnum/f003fort/ddi.inc src.new/packlib/kernlib/kernnum/f003fort/ddi.inc --- src.orig/packlib/kernlib/kernnum/f003fort/ddi.inc 1996-02-15 18:48:54.000000000 +0100 +++ src.new/packlib/kernlib/kernnum/f003fort/ddi.inc 2011-07-26 15:28:17.000000000 +0200 @@ -21,3 +21,6 @@ #if defined(CERNLIB_NUMIB1) ID = (IADDR(D2) - IADDR(D)) / 8 #endif +#if defined(CERNLIB_NUM64) + ID = IPTRDIFF(D2, D) / 8 +#endif diff -Naur src.orig/packlib/kernlib/kernnum/f003fort/dujk.inc src.new/packlib/kernlib/kernnum/f003fort/dujk.inc --- src.orig/packlib/kernlib/kernnum/f003fort/dujk.inc 1996-02-15 18:48:54.000000000 +0100 +++ src.new/packlib/kernlib/kernnum/f003fort/dujk.inc 2011-07-26 15:28:17.000000000 +0200 @@ -25,3 +25,7 @@ JU = (IADDR(U12) - IADDR(U)) / 8 KU = (IADDR(U22) - IADDR(U)) / 8 #endif +#if defined(CERNLIB_NUM64) + JU = IPTRDIFF(U12, U) / 8 + KU = IPTRDIFF(U22, U) / 8 +#endif diff -Naur src.orig/packlib/kernlib/kernnum/f003fort/dxi.inc src.new/packlib/kernlib/kernnum/f003fort/dxi.inc --- src.orig/packlib/kernlib/kernnum/f003fort/dxi.inc 1996-02-15 18:48:54.000000000 +0100 +++ src.new/packlib/kernlib/kernnum/f003fort/dxi.inc 2011-07-26 15:28:17.000000000 +0200 @@ -21,3 +21,6 @@ #if defined(CERNLIB_NUMIB1) IX = (IADDR(X2) - IADDR(X)) / 8 #endif +#if defined(CERNLIB_NUM64) + IX = IPTRDIFF(X2, X) / 8 +#endif diff -Naur src.orig/packlib/kernlib/kernnum/f003fort/dxij.inc src.new/packlib/kernlib/kernnum/f003fort/dxij.inc --- src.orig/packlib/kernlib/kernnum/f003fort/dxij.inc 1996-02-15 18:48:55.000000000 +0100 +++ src.new/packlib/kernlib/kernnum/f003fort/dxij.inc 2011-07-26 15:28:17.000000000 +0200 @@ -25,3 +25,7 @@ IX = (IADDR(X21) - IADDR(X)) / 8 JX = (IADDR(X12) - IADDR(X)) / 8 #endif +#if defined(CERNLIB_NUM64) + IX = IPTRDIFF(X21, X) / 8 + JX = IPTRDIFF(X12, X) / 8 +#endif diff -Naur src.orig/packlib/kernlib/kernnum/f003fort/dyij.inc src.new/packlib/kernlib/kernnum/f003fort/dyij.inc --- src.orig/packlib/kernlib/kernnum/f003fort/dyij.inc 1996-02-15 18:48:55.000000000 +0100 +++ src.new/packlib/kernlib/kernnum/f003fort/dyij.inc 2011-07-26 15:28:17.000000000 +0200 @@ -25,3 +25,7 @@ IY = (IADDR(Y21) - IADDR(Y)) / 8 JY = (IADDR(Y12) - IADDR(Y)) / 8 #endif +#if defined(CERNLIB_NUM64) + IY = IPTRDIFF(Y21, Y) / 8 + JY = IPTRDIFF(Y12, Y) / 8 +#endif diff -Naur src.orig/packlib/kernlib/kernnum/f003fort/dyj.inc src.new/packlib/kernlib/kernnum/f003fort/dyj.inc --- src.orig/packlib/kernlib/kernnum/f003fort/dyj.inc 1996-02-15 18:48:55.000000000 +0100 +++ src.new/packlib/kernlib/kernnum/f003fort/dyj.inc 2011-07-26 15:28:17.000000000 +0200 @@ -21,3 +21,6 @@ #if defined(CERNLIB_NUMIB1) JY = (IADDR(Y2) - IADDR(Y)) / 8 #endif +#if defined(CERNLIB_NUM64) + JY = IPTRDIFF(Y2, Y) / 8 +#endif diff -Naur src.orig/packlib/kernlib/kernnum/f003fort/dzi.inc src.new/packlib/kernlib/kernnum/f003fort/dzi.inc --- src.orig/packlib/kernlib/kernnum/f003fort/dzi.inc 1996-02-15 18:48:55.000000000 +0100 +++ src.new/packlib/kernlib/kernnum/f003fort/dzi.inc 2011-07-26 15:28:17.000000000 +0200 @@ -21,3 +21,6 @@ #if defined(CERNLIB_NUMIB1) IZ = (IADDR(Z2) - IADDR(Z)) / 8 #endif +#if defined(CERNLIB_NUM64) + IZ = IPTRDIFF(Z2, Z) / 8 +#endif diff -Naur src.orig/packlib/kernlib/kernnum/f003fort/dzij.inc src.new/packlib/kernlib/kernnum/f003fort/dzij.inc --- src.orig/packlib/kernlib/kernnum/f003fort/dzij.inc 1996-02-15 18:48:55.000000000 +0100 +++ src.new/packlib/kernlib/kernnum/f003fort/dzij.inc 2011-07-26 15:28:17.000000000 +0200 @@ -25,3 +25,7 @@ IZ = (IADDR(Z21) - IADDR(Z)) / 8 JZ = (IADDR(Z12) - IADDR(Z)) / 8 #endif +#if defined(CERNLIB_NUM64) + IZ = IPTRDIFF(Z21, Z) / 8 + JZ = IPTRDIFF(Z12, Z) / 8 +#endif diff -Naur src.orig/packlib/kernlib/kernnum/f003fort/dzj.inc src.new/packlib/kernlib/kernnum/f003fort/dzj.inc --- src.orig/packlib/kernlib/kernnum/f003fort/dzj.inc 1996-02-15 18:48:56.000000000 +0100 +++ src.new/packlib/kernlib/kernnum/f003fort/dzj.inc 2011-07-26 15:28:17.000000000 +0200 @@ -21,3 +21,6 @@ #if defined(CERNLIB_NUMIB1) JZ = (IADDR(Z2) - IADDR(Z)) / 8 #endif +#if defined(CERNLIB_NUM64) + JZ = IPTRDIFF(Z2, Z) / 8 +#endif diff -Naur src.orig/packlib/kernlib/kernnum/f003fort/rdi.inc src.new/packlib/kernlib/kernnum/f003fort/rdi.inc --- src.orig/packlib/kernlib/kernnum/f003fort/rdi.inc 1996-02-15 18:48:54.000000000 +0100 +++ src.new/packlib/kernlib/kernnum/f003fort/rdi.inc 2011-07-26 15:28:17.000000000 +0200 @@ -21,3 +21,6 @@ #if defined(CERNLIB_NUMIB1) ID = (IADDR(D2) - IADDR(D)) / 4 #endif +#if defined(CERNLIB_NUM64) + ID = IPTRDIFF(D2, D) / 4 +#endif diff -Naur src.orig/packlib/kernlib/kernnum/f003fort/rujk.inc src.new/packlib/kernlib/kernnum/f003fort/rujk.inc --- src.orig/packlib/kernlib/kernnum/f003fort/rujk.inc 1996-02-15 18:48:54.000000000 +0100 +++ src.new/packlib/kernlib/kernnum/f003fort/rujk.inc 2011-07-26 15:28:17.000000000 +0200 @@ -25,3 +25,7 @@ JU = (IADDR(U12) - IADDR(U)) / 4 KU = (IADDR(U22) - IADDR(U)) / 4 #endif +#if defined(CERNLIB_NUM64) + JU = IPTRDIFF(U12, U) / 4 + KU = IPTRDIFF(U22, U) / 4 +#endif diff -Naur src.orig/packlib/kernlib/kernnum/f003fort/rxi.inc src.new/packlib/kernlib/kernnum/f003fort/rxi.inc --- src.orig/packlib/kernlib/kernnum/f003fort/rxi.inc 1996-02-15 18:48:54.000000000 +0100 +++ src.new/packlib/kernlib/kernnum/f003fort/rxi.inc 2011-07-26 15:28:17.000000000 +0200 @@ -21,3 +21,6 @@ #if defined(CERNLIB_NUMIB1) IX = (IADDR(X2) - IADDR(X)) / 4 #endif +#if defined(CERNLIB_NUM64) + IX = IPTRDIFF(X2, X) / 4 +#endif diff -Naur src.orig/packlib/kernlib/kernnum/f003fort/rxij.inc src.new/packlib/kernlib/kernnum/f003fort/rxij.inc --- src.orig/packlib/kernlib/kernnum/f003fort/rxij.inc 1996-02-15 18:48:55.000000000 +0100 +++ src.new/packlib/kernlib/kernnum/f003fort/rxij.inc 2011-07-26 15:28:17.000000000 +0200 @@ -25,3 +25,7 @@ IX = (IADDR(X21) - IADDR(X)) / 4 JX = (IADDR(X12) - IADDR(X)) / 4 #endif +#if defined(CERNLIB_NUM64) + IX = IPTRDIFF(X21, X) / 4 + JX = IPTRDIFF(X12, X) / 4 +#endif diff -Naur src.orig/packlib/kernlib/kernnum/f003fort/ryij.inc src.new/packlib/kernlib/kernnum/f003fort/ryij.inc --- src.orig/packlib/kernlib/kernnum/f003fort/ryij.inc 1996-02-15 18:48:55.000000000 +0100 +++ src.new/packlib/kernlib/kernnum/f003fort/ryij.inc 2011-07-26 15:28:17.000000000 +0200 @@ -25,3 +25,7 @@ IY = (IADDR(Y21) - IADDR(Y)) / 4 JY = (IADDR(Y12) - IADDR(Y)) / 4 #endif +#if defined(CERNLIB_NUM64) + IY = IPTRDIFF(Y21, Y) / 4 + JY = IPTRDIFF(Y12, Y) / 4 +#endif diff -Naur src.orig/packlib/kernlib/kernnum/f003fort/ryj.inc src.new/packlib/kernlib/kernnum/f003fort/ryj.inc --- src.orig/packlib/kernlib/kernnum/f003fort/ryj.inc 1996-02-15 18:48:55.000000000 +0100 +++ src.new/packlib/kernlib/kernnum/f003fort/ryj.inc 2011-07-26 15:28:17.000000000 +0200 @@ -21,3 +21,6 @@ #if defined(CERNLIB_NUMIB1) JY = (IADDR(Y2) - IADDR(Y)) / 4 #endif +#if defined(CERNLIB_NUM64) + JY = IPTRDIFF(Y2, Y) / 4 +#endif diff -Naur src.orig/packlib/kernlib/kernnum/f003fort/rzi.inc src.new/packlib/kernlib/kernnum/f003fort/rzi.inc --- src.orig/packlib/kernlib/kernnum/f003fort/rzi.inc 1996-02-15 18:48:54.000000000 +0100 +++ src.new/packlib/kernlib/kernnum/f003fort/rzi.inc 2011-07-26 15:28:17.000000000 +0200 @@ -21,3 +21,6 @@ #if defined(CERNLIB_NUMIB1) IZ = (IADDR(Z2) - IADDR(Z)) / 4 #endif +#if defined(CERNLIB_NUM64) + IZ = IPTRDIFF(Z2, Z) / 4 +#endif diff -Naur src.orig/packlib/kernlib/kernnum/f003fort/rzij.inc src.new/packlib/kernlib/kernnum/f003fort/rzij.inc --- src.orig/packlib/kernlib/kernnum/f003fort/rzij.inc 1996-02-15 18:48:55.000000000 +0100 +++ src.new/packlib/kernlib/kernnum/f003fort/rzij.inc 2011-07-26 15:28:17.000000000 +0200 @@ -25,3 +25,7 @@ IZ = (IADDR(Z21) - IADDR(Z)) / 4 JZ = (IADDR(Z12) - IADDR(Z)) / 4 #endif +#if defined(CERNLIB_NUM64) + IZ = IPTRDIFF(Z21, Z) / 4 + JZ = IPTRDIFF(Z12, Z) / 4 +#endif diff -Naur src.orig/packlib/kernlib/kernnum/f003fort/rzj.inc src.new/packlib/kernlib/kernnum/f003fort/rzj.inc --- src.orig/packlib/kernlib/kernnum/f003fort/rzj.inc 1996-02-15 18:48:55.000000000 +0100 +++ src.new/packlib/kernlib/kernnum/f003fort/rzj.inc 2011-07-26 15:28:17.000000000 +0200 @@ -21,3 +21,6 @@ #if defined(CERNLIB_NUMIB1) JZ = (IADDR(Z2) - IADDR(Z)) / 4 #endif +#if defined(CERNLIB_NUM64) + JZ = IPTRDIFF(Z2, Z) / 4 +#endif diff -Naur src.orig/packlib/kernlib/kernnum/f004fort/dlocf.inc src.new/packlib/kernlib/kernnum/f004fort/dlocf.inc --- src.orig/packlib/kernlib/kernnum/f004fort/dlocf.inc 1996-02-15 18:49:00.000000000 +0100 +++ src.new/packlib/kernlib/kernnum/f004fort/dlocf.inc 2011-07-26 15:28:17.000000000 +0200 @@ -57,3 +57,12 @@ IZ = (IADDR(Z21(1)) - LOCZ) / 8 LZ = (IADDR(Z12(1)) - LOCZ) / 8 #endif +#if defined(CERNLIB_NUM64) + IF(MIN0(M,N,K) .LE. 0) RETURN + IX = IPTRDIFF(X21(1), X(1)) / 8 + JX = IPTRDIFF(X12(1), X(1)) / 8 + JY = IPTRDIFF(Y21(1), Y(1)) / 8 + LY = IPTRDIFF(Y12(1), Y(1)) / 8 + IZ = IPTRDIFF(Z21(1), Z(1)) / 8 + LZ = IPTRDIFF(Z12(1), Z(1)) / 8 +#endif diff -Naur src.orig/packlib/kernlib/kernnum/f004fort/rlocf.inc src.new/packlib/kernlib/kernnum/f004fort/rlocf.inc --- src.orig/packlib/kernlib/kernnum/f004fort/rlocf.inc 1996-02-15 18:49:00.000000000 +0100 +++ src.new/packlib/kernlib/kernnum/f004fort/rlocf.inc 2011-07-26 15:28:18.000000000 +0200 @@ -57,3 +57,12 @@ IZ = (IADDR(Z21(1)) - LOCZ) / 4 LZ = (IADDR(Z12(1)) - LOCZ) / 4 #endif +#if defined(CERNLIB_NUM64) + IF(MIN0(M,N,K) .LE. 0) RETURN + IX = IPTRDIFF(X21(1), X(1)) / 4 + JX = IPTRDIFF(X12(1), X(1)) / 4 + JY = IPTRDIFF(Y21(1), Y(1)) / 4 + LY = IPTRDIFF(Y12(1), Y(1)) / 4 + IZ = IPTRDIFF(Z21(1), Z(1)) / 4 + LZ = IPTRDIFF(Z12(1), Z(1)) / 4 +#endif diff -Naur src.orig/packlib/kernlib/kernnum/f004fort/zisxy.inc src.new/packlib/kernlib/kernnum/f004fort/zisxy.inc --- src.orig/packlib/kernlib/kernnum/f004fort/zisxy.inc 1996-02-15 18:49:01.000000000 +0100 +++ src.new/packlib/kernlib/kernnum/f004fort/zisxy.inc 2011-07-26 15:28:18.000000000 +0200 @@ -9,9 +9,15 @@ * * zisxy.inc * +#ifdef CERNLIB_NUM64 + IF(IPTRSAME(Z(1), X(1)) .EQ. 1) GOTO 30 + IF(IPTRSAME(Z(1), Y(1)) .EQ. 1) GOTO 40 + IF(IPTRSAME(X(1), Y(1)) .EQ. 1) GOTO 20 +#else IF(LOCZ .EQ. LOCX) GOTO 30 IF(LOCZ .EQ. LOCY) GOTO 40 IF(LOCX .EQ. LOCY) GOTO 20 +#endif 10 LY1L = 1 LZ1L = 1 DO 13 L = 1, K @@ -68,7 +74,11 @@ LZII = LZII + IZ + LZ 24 CONTINUE RETURN +#ifdef CERNLIB_NUM64 + 30 IF(IPTRSAME(X(1), Y(1)) .EQ. 1) GOTO 50 +#else 30 IF(LOCX .EQ. LOCY) GOTO 50 +#endif LXI1 = 1 DO 34 I = 1, M LY1L = 1 diff -Naur src.orig/packlib/kernlib/kernnum/kernnum/pilot.h src.new/packlib/kernlib/kernnum/kernnum/pilot.h --- src.orig/packlib/kernlib/kernnum/kernnum/pilot.h 1997-02-04 18:36:48.000000000 +0100 +++ src.new/packlib/kernlib/kernnum/kernnum/pilot.h 2011-07-26 15:28:18.000000000 +0200 @@ -19,7 +19,7 @@ #endif #endif -#if defined(CERNLIB_LINUX)||defined(CERNLIB_MSDOS) && !defined(CERNLIB_WINNT) +#if defined(CERNLIB_LINUX) && !defined(CERNLIB_QMLXIA64) || defined(CERNLIB_MSDOS) && !defined(CERNLIB_WINNT) #ifndef CERNLIB_NUMIB2 #define CERNLIB_NUMIB2 #endif @@ -31,6 +31,18 @@ #endif #endif +#if defined(CERNLIB_LINUX) && defined(CERNLIB_QMLXIA64) +#ifndef CERNLIB_NUM64 +#define CERNLIB_NUM64 +#endif +#ifdef CERNLIB_NUMD38 +#undef CERNLIB_NUMD38 +#endif +#ifndef CERNLIB_NUMD279 +#define CERNLIB_NUMD279 +#endif +#endif + #if defined(CERNLIB_VAXVMS) #ifndef CERNLIB_NUMDE #define CERNLIB_NUMDE diff -Naur src.orig/packlib/kernlib/kernnum/test/Imakefile src.new/packlib/kernlib/kernnum/test/Imakefile --- src.orig/packlib/kernlib/kernnum/test/Imakefile 1996-10-04 16:54:37.000000000 +0200 +++ src.new/packlib/kernlib/kernnum/test/Imakefile 2011-07-26 15:28:18.000000000 +0200 @@ -36,7 +36,7 @@ SpecialFortranObjectRule(test,test,NullParameter,NullParameter) #endif -NormalFortranProgramTarget(kernnum,test.o abend.o,$(PACKAGE_LIB),$(PACKAGE_LIB),NullParameter) +CernlibFortranProgramTarget(kernnum,test.o abend.o,$(PACKAGE_LIB),$(PACKAGE_LIB),packlib) TestTarget(kernnum,NullParameter,NullParameter) diff -Naur src.orig/packlib/kernlib/kernnum/test/kernnumt/pilot.h src.new/packlib/kernlib/kernnum/test/kernnumt/pilot.h --- src.orig/packlib/kernlib/kernnum/test/kernnumt/pilot.h 1997-02-04 18:36:54.000000000 +0100 +++ src.new/packlib/kernlib/kernnum/test/kernnumt/pilot.h 2011-07-26 15:28:18.000000000 +0200 @@ -44,6 +44,11 @@ #ifndef CERNLIB_NUMLN #define CERNLIB_NUMLN #endif +#if defined(CERNLIB_QMLXIA64) +#ifndef CERNLIB_NUM64 +#define CERNLIB_NUM64 +#endif +#endif #endif #if defined(CERNLIB_MSDOS) diff -Naur src.orig/packlib/kernlib/kernnum/test/numchk0/cvdist.F src.new/packlib/kernlib/kernnum/test/numchk0/cvdist.F --- src.orig/packlib/kernlib/kernnum/test/numchk0/cvdist.F 1996-02-15 18:48:41.000000000 +0100 +++ src.new/packlib/kernlib/kernnum/test/numchk0/cvdist.F 2011-07-26 15:28:18.000000000 +0200 @@ -14,7 +14,7 @@ IF(N .LE. 0) RETURN CVDIST = DISTF(X(1),Y(1)) IF(N .LE. 1) RETURN -#if (!defined(CERNLIB_NUMUC))&&(!defined(CERNLIB_NUMCR))&&(!defined(CERNLIB_NUMDE)) +#if (!defined(CERNLIB_NUMUC))&&(!defined(CERNLIB_NUMCR))&&(!defined(CERNLIB_NUMDE))&&(!defined(CERNLIB_NUM64)) JX = (LOCF(X2) - LOCF(X)) / 2 JY = (LOCF(Y2) - LOCF(Y)) / 2 #endif @@ -26,6 +26,10 @@ JX = (%LOC(X2) - %LOC(X)) / 8 JY = (%LOC(Y2) - %LOC(Y)) / 8 #endif +#if defined(CERNLIB_NUM64) + JX = IPTRDIFF(X2, X) / 8 + JY = IPTRDIFF(Y2, Y) / 8 +#endif LX = 1 LY = 1 DO 10 J = 2, N diff -Naur src.orig/packlib/kernlib/kernnum/test/numchk0/dvdist.F src.new/packlib/kernlib/kernnum/test/numchk0/dvdist.F --- src.orig/packlib/kernlib/kernnum/test/numchk0/dvdist.F 1996-02-15 18:48:41.000000000 +0100 +++ src.new/packlib/kernlib/kernnum/test/numchk0/dvdist.F 2011-07-26 15:28:18.000000000 +0200 @@ -14,7 +14,7 @@ IF(N .LE. 0) RETURN DVDIST = DISTF(X(1),Y(1)) IF(N .LE. 1) RETURN -#if (!defined(CERNLIB_NUMUC))&&(!defined(CERNLIB_NUMCR))&&(!defined(CERNLIB_NUMDE)) +#if (!defined(CERNLIB_NUMUC))&&(!defined(CERNLIB_NUMCR))&&(!defined(CERNLIB_NUMDE))&&(!defined(CERNLIB_NUM64)) JX = (LOCF(X2) - LOCF(X)) / 2 JY = (LOCF(Y2) - LOCF(Y)) / 2 #endif @@ -26,6 +26,10 @@ JX = (%LOC(X2) - %LOC(X)) / 8 JY = (%LOC(Y2) - %LOC(Y)) / 8 #endif +#if defined(CERNLIB_NUM64) + JX = IPTRDIFF(X2, X) / 8 + JY = IPTRDIFF(Y2, Y) / 8 +#endif LX = 1 LY = 1 DO 10 J = 2, N diff -Naur src.orig/packlib/kernlib/kernnum/test/numchk0/rvdist.F src.new/packlib/kernlib/kernnum/test/numchk0/rvdist.F --- src.orig/packlib/kernlib/kernnum/test/numchk0/rvdist.F 1996-02-15 18:48:41.000000000 +0100 +++ src.new/packlib/kernlib/kernnum/test/numchk0/rvdist.F 2011-07-26 15:28:18.000000000 +0200 @@ -14,7 +14,7 @@ IF(N .LE. 0) RETURN RVDIST = DISTF(X(1),Y(1)) IF(N .LE. 1) RETURN -#if (!defined(CERNLIB_NUMUC))&&(!defined(CERNLIB_NUMCR))&&(!defined(CERNLIB_NUMDE)) +#if (!defined(CERNLIB_NUMUC))&&(!defined(CERNLIB_NUMCR))&&(!defined(CERNLIB_NUMDE))&&(!defined(CERNLIB_NUM64)) JX = LOCF(X2) - LOCF(X) JY = LOCF(Y2) - LOCF(Y) #endif @@ -26,6 +26,10 @@ JX = (%LOC(X2) - %LOC(X)) / 4 JY = (%LOC(Y2) - %LOC(Y)) / 4 #endif +#if defined(CERNLIB_NUM64) + JX = IPTRDIFF(X2, X) / 4 + JY = IPTRDIFF(Y2, Y) / 4 +#endif LX = 1 LY = 1 DO 10 J = 2, N diff -Naur src.orig/packlib/kernlib/kernnum/test/numchk3/check3.F src.new/packlib/kernlib/kernnum/test/numchk3/check3.F --- src.orig/packlib/kernlib/kernnum/test/numchk3/check3.F 1996-03-21 18:16:07.000000000 +0100 +++ src.new/packlib/kernlib/kernnum/test/numchk3/check3.F 2011-07-26 15:28:18.000000000 +0200 @@ -343,7 +343,7 @@ I = 1 IF(N .EQ. 1) RETURN LXJ = 1 -#if (!defined(CERNLIB_NUMUC))&&(!defined(CERNLIB_NUMCR))&&(!defined(CERNLIB_NUMDE)) +#if (!defined(CERNLIB_NUMUC))&&(!defined(CERNLIB_NUMCR))&&(!defined(CERNLIB_NUMDE))&&(!defined(CERNLIB_NUM64)) JX = LOCF(X2) - LOCF(X) #endif #if defined(CERNLIB_NUMUC)||defined(CERNLIB_NUMCR) @@ -352,6 +352,9 @@ #if defined(CERNLIB_NUMDE) JX = (%LOC(X2) - %LOC(X)) / 4 #endif +#if defined(CERNLIB_NUM64) + JX = IPTRDIFF(X2, X) / 4 +#endif DO 10 J = 2, N LXJ = LXJ + JX T = ABSF(X(LXJ)) @@ -373,7 +376,7 @@ I = 1 IF(N .EQ. 1) RETURN LXJ = 1 -#if (!defined(CERNLIB_NUMUC))&&(!defined(CERNLIB_NUMCR))&&(!defined(CERNLIB_NUMDE)) +#if (!defined(CERNLIB_NUMUC))&&(!defined(CERNLIB_NUMCR))&&(!defined(CERNLIB_NUMDE))&&(!defined(CERNLIB_NUM64)) JX = (LOCF(X2) - LOCF(X)) / 2 #endif #if defined(CERNLIB_NUMUC)||defined(CERNLIB_NUMCR) @@ -382,6 +385,9 @@ #if defined(CERNLIB_NUMDE) JX = (%LOC(X2) - %LOC(X)) / 8 #endif +#if defined(CERNLIB_NUM64) + JX = IPTRDIFF(X2, X) / 8 +#endif DO 10 J = 2, N LXJ = LXJ + JX T = ABSF(X(LXJ)) @@ -403,7 +409,7 @@ I = 1 IF(N .EQ. 1) RETURN LXJ = 1 -#if (!defined(CERNLIB_NUMUC))&&(!defined(CERNLIB_NUMCR))&&(!defined(CERNLIB_NUMDE)) +#if (!defined(CERNLIB_NUMUC))&&(!defined(CERNLIB_NUMCR))&&(!defined(CERNLIB_NUMDE))&&(!defined(CERNLIB_NUM64)) JX = (LOCF(X2) - LOCF(X)) / 2 #endif #if defined(CERNLIB_NUMUC)||defined(CERNLIB_NUMCR) @@ -412,6 +418,9 @@ #if defined(CERNLIB_NUMDE) JX = (%LOC(X2) - %LOC(X)) / 8 #endif +#if defined(CERNLIB_NUM64) + JX = IPTRDIFF(X2, X) / 8 +#endif DO 10 J = 2, N LXJ = LXJ + JX T = ABSF(X(LXJ)) @@ -441,7 +450,7 @@ RVSUMA = 0. IF(N .LE. 0) RETURN LXJ = 1 -#if (!defined(CERNLIB_NUMUC))&&(!defined(CERNLIB_NUMCR))&&(!defined(CERNLIB_NUMDE)) +#if (!defined(CERNLIB_NUMUC))&&(!defined(CERNLIB_NUMCR))&&(!defined(CERNLIB_NUMDE))&&(!defined(CERNLIB_NUM64)) JX = LOCF(X2) - LOCF(X) #endif #if defined(CERNLIB_NUMUC)||defined(CERNLIB_NUMCR) @@ -450,6 +459,9 @@ #if defined(CERNLIB_NUMDE) JX = (%LOC(X2) - %LOC(X)) / 4 #endif +#if defined(CERNLIB_NUM64) + JX = IPTRDIFF(X2, X) / 4 +#endif DO 10 J = 1, N RVSUMA = RVSUMA + ABS(X(LXJ)) LXJ = LXJ + JX @@ -461,7 +473,7 @@ DVSUMA = 0. IF(N .LE. 0) RETURN LXJ = 1 -#if (!defined(CERNLIB_NUMUC))&&(!defined(CERNLIB_NUMCR))&&(!defined(CERNLIB_NUMDE)) +#if (!defined(CERNLIB_NUMUC))&&(!defined(CERNLIB_NUMCR))&&(!defined(CERNLIB_NUMDE))&&(!defined(CERNLIB_NUM64)) JX = (LOCF(X2) - LOCF(X)) / 2 #endif #if defined(CERNLIB_NUMUC)||defined(CERNLIB_NUMCR) @@ -470,6 +482,9 @@ #if defined(CERNLIB_NUMDE) JX = (%LOC(X2) - %LOC(X)) / 8 #endif +#if defined(CERNLIB_NUM64) + JX = IPTRDIFF(X2, X) / 8 +#endif DO 10 J = 1, N DVSUMA = DVSUMA + ABS(SNGL(X(LXJ))) LXJ = LXJ + JX @@ -481,7 +496,7 @@ CVSUMA = 0. IF(N .LE. 0) RETURN LXJ = 1 -#if (!defined(CERNLIB_NUMUC))&&(!defined(CERNLIB_NUMCR))&&(!defined(CERNLIB_NUMDE)) +#if (!defined(CERNLIB_NUMUC))&&(!defined(CERNLIB_NUMCR))&&(!defined(CERNLIB_NUMDE))&&(!defined(CERNLIB_NUM64)) JX = (LOCF(X2) - LOCF(X)) / 2 #endif #if defined(CERNLIB_NUMUC)||defined(CERNLIB_NUMCR) @@ -490,6 +505,9 @@ #if defined(CERNLIB_NUMDE) JX = (%LOC(X2) - %LOC(X)) / 8 #endif +#if defined(CERNLIB_NUM64) + JX = IPTRDIFF(X2, X) / 8 +#endif DO 10 J = 1, N CVSUMA = CVSUMA + AMAX1(ABS(REAL(X(LXJ))),ABS(AIMAG(X(LXJ)))) LXJ = LXJ + JX diff -Naur src.orig/packlib/kernlib/kernnum/test/numchk3/f002ch.F src.new/packlib/kernlib/kernnum/test/numchk3/f002ch.F --- src.orig/packlib/kernlib/kernnum/test/numchk3/f002ch.F 1996-03-21 18:16:08.000000000 +0100 +++ src.new/packlib/kernlib/kernnum/test/numchk3/f002ch.F 2011-07-26 15:28:18.000000000 +0200 @@ -329,7 +329,7 @@ IF(.NOT. OK) WRITE(IOUNIT,1000) N, IFAIL IF(N .LE. 0) RETURN KFAIL = IRANF(1,N) -#if (!defined(CERNLIB_NUMUC))&&(!defined(CERNLIB_NUMCR))&&(!defined(CERNLIB_NUMDE)) +#if (!defined(CERNLIB_NUMUC))&&(!defined(CERNLIB_NUMCR))&&(!defined(CERNLIB_NUMDE))&&(!defined(CERNLIB_NUM64)) JY = LOCF(Y2) - LOCF(Y) #endif #if defined(CERNLIB_NUMUC)||defined(CERNLIB_NUMCR) @@ -338,6 +338,9 @@ #if defined(CERNLIB_NUMDE) JY = (%LOC(Y2) - %LOC(Y)) / 4 #endif +#if defined(CERNLIB_NUM64) + JY = IPTRDIFF(Y2, Y) / 4 +#endif LY = (KFAIL - 1)*JY + 1 S = Y(LY) Y(LY) = ZERO @@ -366,7 +369,7 @@ IF(.NOT. OK) WRITE(IOUNIT,1000) N, IFAIL IF(N .LE. 0) RETURN KFAIL = IRANF(1,N) -#if (!defined(CERNLIB_NUMUC))&&(!defined(CERNLIB_NUMCR))&&(!defined(CERNLIB_NUMDE)) +#if (!defined(CERNLIB_NUMUC))&&(!defined(CERNLIB_NUMCR))&&(!defined(CERNLIB_NUMDE))&&(!defined(CERNLIB_NUM64)) JY = (LOCF(Y2) - LOCF(Y)) / 2 #endif #if defined(CERNLIB_NUMUC)||defined(CERNLIB_NUMCR) @@ -375,6 +378,9 @@ #if defined(CERNLIB_NUMDE) JY = (%LOC(Y2) - %LOC(Y)) / 8 #endif +#if defined(CERNLIB_NUM64) + JY = IPTRDIFF(Y2, Y) / 8 +#endif LY = (KFAIL - 1)*JY + 1 S = Y(LY) Y(LY) = ZERO @@ -403,7 +409,7 @@ IF(.NOT. OK) WRITE(IOUNIT,1000) N, IFAIL IF(N .LE. 0) RETURN KFAIL = IRANF(1,N) -#if (!defined(CERNLIB_NUMUC))&&(!defined(CERNLIB_NUMCR))&&(!defined(CERNLIB_NUMDE)) +#if (!defined(CERNLIB_NUMUC))&&(!defined(CERNLIB_NUMCR))&&(!defined(CERNLIB_NUMDE))&&(!defined(CERNLIB_NUM64)) JY = (LOCF(Y2) - LOCF(Y)) / 2 #endif #if defined(CERNLIB_NUMUC)||defined(CERNLIB_NUMCR) @@ -412,6 +418,9 @@ #if defined(CERNLIB_NUMDE) JY = (%LOC(Y2) - %LOC(Y)) / 8 #endif +#if defined(CERNLIB_NUM64) + JY = IPTRDIFF(Y2, Y) / 8 +#endif LY = (KFAIL - 1)*JY + 1 S = Y(LY) Y(LY) = ZERO @@ -1139,7 +1148,7 @@ XS2 = ZERO XM2 = ZERO IF(N .LE. 0) RETURN -#if (!defined(CERNLIB_NUMUC))&&(!defined(CERNLIB_NUMCR))&&(!defined(CERNLIB_NUMDE)) +#if (!defined(CERNLIB_NUMUC))&&(!defined(CERNLIB_NUMCR))&&(!defined(CERNLIB_NUMDE))&&(!defined(CERNLIB_NUM64)) JX = LOCF(X2) - LOCF(X) #endif #if defined(CERNLIB_NUMUC)||defined(CERNLIB_NUMCR) @@ -1148,6 +1157,9 @@ #if defined(CERNLIB_NUMDE) JX = (%LOC(X2) - %LOC(X)) / 4 #endif +#if defined(CERNLIB_NUM64) + JX = IPTRDIFF(X2, X) / 4 +#endif LX = 1 S1 = ZERO S2 = ZERO diff -Naur src.orig/packlib/kernlib/kernnum/test/numchk3/f011ch.F src.new/packlib/kernlib/kernnum/test/numchk3/f011ch.F --- src.orig/packlib/kernlib/kernnum/test/numchk3/f011ch.F 1996-03-21 18:16:10.000000000 +0100 +++ src.new/packlib/kernlib/kernnum/test/numchk3/f011ch.F 2011-07-26 15:28:18.000000000 +0200 @@ -251,7 +251,8 @@ + 3X,7H IDIM =,I5, 3X, 4H E =,1PE12.3) END SUBROUTINE TSING(N,A,R,OK,FACT,SETEX,RABS,VXCH) - REAL A(*), R(*), DET(2) + REAL A(*), R(*) + DOUBLE PRECISION DET(2) LOGICAL OK, OKDET #include "kernnumt/sysdat.inc" #include "ch3dat.inc" diff -Naur src.orig/packlib/kuip/code_kuip/getline.c src.new/packlib/kuip/code_kuip/getline.c --- src.orig/packlib/kuip/code_kuip/getline.c 1998-08-25 14:47:32.000000000 +0200 +++ src.new/packlib/kuip/code_kuip/getline.c 2011-07-26 15:45:35.000000000 +0200 @@ -585,7 +585,7 @@ static void gl_puts(buf) -char *buf; +const char *buf; { /* int len = strlen(buf); @@ -1351,7 +1351,7 @@ static char * hist_save(p) -char *p; +const char *p; /* makes a copy of the string */ { char *s; diff -Naur src.orig/packlib/kuip/code_kuip/kkern.c src.new/packlib/kuip/code_kuip/kkern.c --- src.orig/packlib/kuip/code_kuip/kkern.c 1996-05-01 14:08:38.000000000 +0200 +++ src.new/packlib/kuip/code_kuip/kkern.c 2011-07-26 15:28:18.000000000 +0200 @@ -39,7 +39,8 @@ if( len >= (sizeof blanks) * 4 ) { /* check single characters until next word boundary */ - switch( (int)&str[len] & ( (sizeof blanks) - 1 ) ) { + /* use type long here to be conform with 64 bit architectures*/ + switch( (long)&str[len] & ( (sizeof blanks) - 1 ) ) { case 7: if( str[--len] != ' ' ) return len + 1; case 6: diff -Naur src.orig/packlib/kuip/code_kuip/kuinit.c src.new/packlib/kuip/code_kuip/kuinit.c --- src.orig/packlib/kuip/code_kuip/kuinit.c 2003-02-13 15:25:23.000000000 +0100 +++ src.new/packlib/kuip/code_kuip/kuinit.c 2011-07-26 15:59:24.000000000 +0200 @@ -200,6 +200,14 @@ ku_exel( "/KUIP/SET_SHOW/COLUMNS -1" ); ku_exel( "/KUIP/SET_SHOW/DOLLAR 'ON'" ); +#if defined(UNIX) && (defined(WINNT) || !defined(MSDOS)) +/* Correct the default behavior of converting filenames to lower-case + * on a case-sensitive operating system... Not that I'm bitter or anything. + * --Kevin McCarty, for Debian + */ + ku_exel( "/KUIP/SET_SHOW/FILECASE 'KEEP'" ); +#endif + host_editor = getenv( "KUIPEDITOR" ); if( host_editor == NULL ) host_editor = getenv( "EDITOR" ); @@ -249,7 +257,7 @@ host_psviewer = getenv( "PSVIEWER" ); if( host_psviewer == NULL ) { #ifdef UNIX - host_psviewer = "ghostview"; + host_psviewer = "gv"; #endif #ifdef vms host_psviewer = "VIEW/FORM=PS/INTERFACE=DECWINDOWS"; @@ -277,7 +285,7 @@ # if defined(MSDOS) || defined(CERNLIB_WINNT) ku_exel( "/KUIP/SET_SHOW/HOST_PRINTER 'print $*'" ); # else - ku_exel( "/KUIP/SET_SHOW/HOST_PRINTER 'lp $*'" ); + ku_exel( "/KUIP/SET_SHOW/HOST_PRINTER 'lpr $*'" ); # endif #else ku_exel( "/KUIP/SET_SHOW/HOST_PRINTER 'XPRINT $*'" ); diff -Naur src.orig/packlib/kuip/code_kuip/kuipcdf.cdf src.new/packlib/kuip/code_kuip/kuipcdf.cdf --- src.orig/packlib/kuip/code_kuip/kuipcdf.cdf 1997-09-25 16:02:25.000000000 +0200 +++ src.new/packlib/kuip/code_kuip/kuipcdf.cdf 2011-07-26 15:59:24.000000000 +0200 @@ -925,7 +925,7 @@ The startup value can be defined by the environment variables 'KUIPPSVIEWER' or 'PSVIEWER'. . -On Unix workstations it is by default set to 'ghostview'. +On Unix workstations it is by default set to 'gv'. On VAX/VMS the default commands is 'VIEW/FORM=PS/INTERFACE=DECWINDOWS'. >Action kxhostpsviewer%C @@ -1064,11 +1064,12 @@ . This command has only an effect on Unix systems to select whether filenames are kept as entered on the command line. -The startup value is 'CONVERT', i.e. filenames are converted to lowercase. +The startup value is 'KEEP', i.e. filename cases are preserved. With +the 'CONVERT' setting, filenames are converted to lowercase. . On other systems filenames are always converted to uppercase. . -The 'RESTORE' option set the conversion mode to the value effective +The 'RESTORE' option sets the conversion mode to the value effective before the last FILECASE KEEP/CONVERT command. E.g. the sequence FILECASE KEEP; EDIT Read.Me; FILECASE RESTORE diff -Naur src.orig/packlib/kuip/code_motif/iconwidget.c src.new/packlib/kuip/code_motif/iconwidget.c --- src.orig/packlib/kuip/code_motif/iconwidget.c 2006-12-19 11:00:41.000000000 +0100 +++ src.new/packlib/kuip/code_motif/iconwidget.c 2011-07-26 15:28:18.000000000 +0200 @@ -289,7 +289,7 @@ Boolean in = (iw->icon.armed && really) || iw->icon.shadow_type == XmSHADOW_IN; - if ((iw->primitive.shadow_thickness) > 0 && XtIsRealized (iw)) { + if ((iw->primitive.shadow_thickness) > 0 && XtIsRealized ((Widget)iw)) { _XmDrawShadow (XtDisplay (iw), XtWindow (iw), in ? iw->primitive.bottom_shadow_GC : iw->primitive.top_shadow_GC, diff -Naur src.orig/packlib/kuip/code_motif/kmbrow.c src.new/packlib/kuip/code_motif/kmbrow.c --- src.orig/packlib/kuip/code_motif/kmbrow.c 1996-03-08 16:33:08.000000000 +0100 +++ src.new/packlib/kuip/code_motif/kmbrow.c 2011-07-26 15:28:18.000000000 +0200 @@ -278,7 +278,7 @@ char *path, *title; char cval[MAX_string], cval1[MAX_string]; int i, fitem, fcnt, dcnt, icon_type; - int browser_count = 0; + long browser_count = 0; BrObject *brobj; diff -Naur src.orig/packlib/kuip/code_motif/kmfile.c src.new/packlib/kuip/code_motif/kmfile.c --- src.orig/packlib/kuip/code_motif/kmfile.c 2006-12-07 14:26:52.000000000 +0100 +++ src.new/packlib/kuip/code_motif/kmfile.c 2011-07-26 15:28:18.000000000 +0200 @@ -99,7 +99,7 @@ struct dirent *dp; char *pattern; #ifdef CERNLIB_MACOSX - regex_t *re; + regex_t *re = (regex_t *)malloc(sizeof(regex_t));; #else char *re; #endif diff -Naur src.orig/packlib/kuip/code_motif/kuxxt.c src.new/packlib/kuip/code_motif/kuxxt.c --- src.orig/packlib/kuip/code_motif/kuxxt.c 1996-03-08 16:33:11.000000000 +0100 +++ src.new/packlib/kuip/code_motif/kuxxt.c 2011-07-26 15:28:18.000000000 +0200 @@ -340,7 +340,7 @@ { (void) XDeleteContext( XtDisplay( UxTopLevel ), (Window) wgt, - (XContext) client_data ); + (XContext) (long)client_data ); } /****************************************************************************** @@ -385,7 +385,7 @@ return ( UX_ERROR ); XtAddCallback (wgt, XmNdestroyCallback, - UxDeleteContextCB, (XtPointer) xcontext_id); + UxDeleteContextCB, (XtPointer) (long)xcontext_id); return ( UX_NO_ERROR ); } diff -Naur src.orig/packlib/kuip/code_motif/mkdcmp.c src.new/packlib/kuip/code_motif/mkdcmp.c --- src.orig/packlib/kuip/code_motif/mkdcmp.c 1996-03-15 16:54:00.000000000 +0100 +++ src.new/packlib/kuip/code_motif/mkdcmp.c 2011-07-26 15:28:18.000000000 +0200 @@ -1541,7 +1541,11 @@ Widget cpanel = stag->command_panel; KmCommand *cmd = stag->cmd; - int ipar = stag->index; + /* for 64 bit compatibility take long here + * int ipar = stag->index; + */ + long ipar = stag->index; + KmParameter *par = cmd->par[ipar]; KmParFile *pfil = par->ptype; diff -Naur src.orig/packlib/kuip/code_motif/mkdgra.c src.new/packlib/kuip/code_motif/mkdgra.c --- src.orig/packlib/kuip/code_motif/mkdgra.c 1996-03-08 16:33:07.000000000 +0100 +++ src.new/packlib/kuip/code_motif/mkdgra.c 2011-07-26 15:28:18.000000000 +0200 @@ -289,11 +289,12 @@ km_graph_init_callbacks (km_graphicsDraw, graph_widget, wkid, 0); } -void km_graph_init_callbacks (draw, graph_widget, wkid, flag) +void km_graph_init_callbacks (draw, graph_widget, mywkid, flag) Widget draw, graph_widget; - int wkid, flag; + int mywkid, flag; { /* Add drawing area expose and resize callbacks */ + long wkid = mywkid; if (flag == 0) { XtAddCallback(draw, XmNexposeCallback, (XtCallbackProc)drawing_area_callback, graph_widget); diff -Naur src.orig/packlib/kuip/code_motif/mkuip.c src.new/packlib/kuip/code_motif/mkuip.c --- src.orig/packlib/kuip/code_motif/mkuip.c 1996-10-24 14:13:41.000000000 +0200 +++ src.new/packlib/kuip/code_motif/mkuip.c 2011-07-26 15:39:03.000000000 +0200 @@ -776,6 +776,7 @@ ***********************************************************************/ static void init_data () { + /* This function edited not to use obsolete function XmFontListCreate() */ int k; km_charset = XmSTRING_DEFAULT_CHARSET; @@ -792,8 +793,11 @@ if (help_font_struct == NULL) printf ("%s Warning: Font loaded for HELP (%s) is NULL \n", main_prompt, srec.Help_font); - else - help_font = XmFontListCreate (help_font_struct,km_charset); + else { + XmFontListEntry entry = XmFontListEntryCreate( + km_charset, XmFONT_IS_FONT, (XtPointer)help_font_struct ); + help_font = XmFontListAppendEntry( NULL, entry ); + } } /* @@ -1062,7 +1066,7 @@ { int narg; Arg arglist[2]; - Widget id_pdm; + Widget id_pdm, id_pdm_shell; Widget PdMenu[15]; /* @@ -1072,8 +1076,19 @@ UxKuipBrowserContext = (_UxCkuipBrowser *)UxGetContext(parent); /* create pulldown_menu */ - id_pdm = XmCreatePulldownMenu (browserMenu,"OptionsPdMenu",arglist,0); - + id_pdm_shell = XtVaCreatePopupShell ("OptionsPdMenu_shell", + xmMenuShellWidgetClass, browserMenu, + XmNwidth, 1, + XmNheight, 1, + XmNallowShellResize, TRUE, + XmNoverrideRedirect, TRUE, + NULL ); + id_pdm = XtVaCreateWidget( "OptionsPdMenu", + xmRowColumnWidgetClass, + id_pdm_shell, + XmNrowColumnType, XmMENU_PULLDOWN, + NULL ); +/* id_pdm = XmCreatePulldownMenu (browserMenu,"OptionsPdMenu",arglist,0); */ /* create pulldown_menu_entry "Options" */ XtVaCreateManagedWidget( "optionsMenu", @@ -1087,7 +1102,7 @@ /* create list of push_buttons and separators for menu "Option" */ /* create pulldown_menu for "Raise Window" (with list of appl. shells) */ narg = 0; -#if XmREVISION == 99 /* problem with REVISION 2 ! */ +#if XmVERSION > 1 || XmREVISION >= 2 XtSetArg(arglist[narg], XmNtearOffModel, XmTEAR_OFF_ENABLED); narg++; #endif kuipControlShellM = XmCreatePulldownMenu @@ -1308,9 +1323,7 @@ static void create_command_menu(parent) Widget parent; { - Widget id_pdme, id_pdm; - Arg arglist[2]; - int narg; + Widget id_pdme, id_pdm, id_pdm_shell; /* * find and restore the context for Browser @@ -1319,12 +1332,26 @@ UxKuipBrowserContext = (_UxCkuipBrowser *)UxGetContext(parent); /* create pulldown_menu_entry "Commands" for all commands */ - narg = 0; + + id_pdm_shell = XtVaCreatePopupShell ("CommandsPdMenu_shell", + xmMenuShellWidgetClass, browserMenu, + XmNwidth, 1, + XmNheight, 1, + XmNallowShellResize, TRUE, + XmNoverrideRedirect, TRUE, + NULL ); + + id_pdm = XtVaCreateWidget( "CommandsPdMenu", + xmRowColumnWidgetClass, + id_pdm_shell, + XmNrowColumnType, XmMENU_PULLDOWN, #if XmVERSION > 1 || XmREVISION >= 2 - XtSetArg(arglist[narg], XmNtearOffModel, XmTEAR_OFF_ENABLED); narg++; + XmNtearOffModel, XmTEAR_OFF_ENABLED, #endif - id_pdm = XmCreatePulldownMenu - (browserMenu, "CommandsPdMenu", arglist, narg); + NULL ); + +/* XmCreatePulldownMenu + (browserMenu, "CommandsPdMenu", arglist, narg); */ id_pdme = XtVaCreateManagedWidget( "id_pdme", xmCascadeButtonGadgetClass, browserMenu, @@ -1660,7 +1687,7 @@ XmStringFree(xmstr); } /* end for ... */ XtAddCallback (km_listSBox,XmNokCallback, - (XtCallbackProc)kuipList_OK, (XtPointer)flag); + (XtCallbackProc)kuipList_OK, (XtPointer) (long)flag); XtAddCallback (km_listSBox,XmNcancelCallback, (XtCallbackProc)destroy_list_id, NULL); XtAddCallback (km_listSBox,XmNhelpCallback, @@ -1887,7 +1914,7 @@ PdMenu = XmCreatePushButtonGadget (kuipControlShellM,appShell_title[i],arglist,0); XtAddCallback(PdMenu,XmNactivateCallback, - (XtCallbackProc)appShell_activate, (XtPointer)i); + (XtCallbackProc)appShell_activate, (XtPointer) (long)i); XtManageChild(PdMenu); break; } /* end ... if (appShell[i] == NULL) */ @@ -1923,7 +1950,7 @@ if (kuipControlShellM != NULL) XtDestroyWidget (kuipControlShellM); narg = 0; -#if XmREVISION == 99 /* problem with REVISION 2 ! */ +#if XmVERSION > 1 || XmREVISION >= 2 XtSetArg(arglist[narg], XmNtearOffModel, XmTEAR_OFF_ENABLED); narg++; #endif kuipControlShellM = XmCreatePulldownMenu @@ -1945,7 +1972,7 @@ PdMenu = XmCreatePushButtonGadget (kuipControlShellM,appShell_title[i],arglist,0); XtAddCallback (PdMenu,XmNactivateCallback, - (XtCallbackProc)appShell_activate, (XtPointer)i); + (XtCallbackProc)appShell_activate, (XtPointer) (long)i); XtManageChild(PdMenu); } } diff -Naur src.orig/packlib/kuip/examples/Imakefile src.new/packlib/kuip/examples/Imakefile --- src.orig/packlib/kuip/examples/Imakefile 1996-10-02 17:37:00.000000000 +0200 +++ src.new/packlib/kuip/examples/Imakefile 2011-07-26 15:28:18.000000000 +0200 @@ -5,7 +5,7 @@ DefinePackageLibrary(NullParameter) -CernlibFortranProgramTarget(ktest,$(OBJS),$(PACKAGE_LIB),$(PACKAGE_LIB),graflib packlib kernlib) +NormalFortranProgramTarget(ktest,$(OBJS),$(PACKAGE_LIB),$(PACKAGE_LIB),NullParameter) TestTarget(ktest,NullParameter,ktest.inp) diff -Naur src.orig/packlib/kuip/kuip/kfor.h src.new/packlib/kuip/kuip/kfor.h --- src.orig/packlib/kuip/kuip/kfor.h 2006-09-15 11:35:30.000000000 +0200 +++ src.new/packlib/kuip/kuip/kfor.h 2011-07-26 16:00:34.000000000 +0200 @@ -1031,7 +1031,7 @@ #if !defined(CERNLIB_GFORTRAN) #define Getarg F77_NAME(getarg,GETARG) #else -#define Getarg _gfortran_getarg_i4 +#define Getarg F77_NAME(kernlibgetarg,KERNLIBGETARG) #endif extern SUBROUTINE Getarg; #define Goparm F77_NAME(goparm,GOPARM) diff -Naur src.orig/packlib/kuip/kuip/kstring.h src.new/packlib/kuip/kuip/kstring.h --- src.orig/packlib/kuip/kuip/kstring.h 1997-03-14 18:16:39.000000000 +0100 +++ src.new/packlib/kuip/kuip/kstring.h 2011-07-26 15:41:38.000000000 +0200 @@ -20,7 +20,7 @@ * quasi-standard functions missing in some C-libraries */ -#ifndef WIN32 +#if !defined(WIN32) && !defined(__APPLE__) extern void* memmove( void* dst, const void* src, size_t n ); #endif @@ -32,8 +32,13 @@ extern char* strrstr( const char* str1, const char* str2 ); +#if !defined(CERNLIB_QMGLIBC) +#ifdef strdup +# undef strdup /* otherwise the next function declaration may bomb */ +#endif #define strdup Strdup /* prototype without const */ extern char* strdup( const char* str ); +#endif /* @@ -46,6 +51,10 @@ const char* str4 ); extern char* str5dup( const char* str1, const char* str2, const char* str3, const char* str4, const char* str5 ); + +#ifdef strndup +# undef strndup /* otherwise the next function declaration may bomb */ +#endif extern char* strndup( const char* buf, size_t n ); extern char* stridup( int i ); diff -Naur src.orig/packlib/kuip/programs/kuipc/kuipcc.c src.new/packlib/kuip/programs/kuipc/kuipcc.c --- src.orig/packlib/kuip/programs/kuipc/kuipcc.c 2000-03-27 16:13:17.000000000 +0200 +++ src.new/packlib/kuip/programs/kuipc/kuipcc.c 2011-07-26 15:28:18.000000000 +0200 @@ -354,10 +354,13 @@ } } else { + /* avoid the usage of gets - possible buffer overrun */ fprintf( stderr, "Enter CDF input file name: " ); - gets( ifile ); + fgets( ifile, sizeof ifile, stdin ); + strcpy( strstr( ifile, "\n"), "\0"); fprintf( stderr, "Enter definition output file name: " ); - gets( ofile ); + fgets( ofile, sizeof ofile, stdin ); + strcpy( strstr( ofile, "\n"), "\0"); } if( !explicit ) { diff -Naur src.orig/packlib/kuip/programs/kxterm/help.c src.new/packlib/kuip/programs/kxterm/help.c --- src.orig/packlib/kuip/programs/kxterm/help.c 1996-03-08 16:33:04.000000000 +0100 +++ src.new/packlib/kuip/programs/kxterm/help.c 2011-07-26 15:28:18.000000000 +0200 @@ -309,7 +309,7 @@ int *type; XmAnyCallbackStruct *call_data; { - int t = (int)type; + long t = (long)type; if (help[t]) XRaiseWindow(XtDisplay(help[t]), XtWindow(help[t])); diff -Naur src.orig/packlib/kuip/programs/kxterm/kuipio.c src.new/packlib/kuip/programs/kxterm/kuipio.c --- src.orig/packlib/kuip/programs/kxterm/kuipio.c 1996-03-08 16:33:04.000000000 +0100 +++ src.new/packlib/kuip/programs/kxterm/kuipio.c 2011-07-26 15:38:13.000000000 +0200 @@ -573,7 +573,7 @@ EditMenu, RES_CONVERT( XmNlabelString, "Copy" ), RES_CONVERT( XmNmnemonic, "C" ), - XmNaccelerator, "CtrlInsertChar", + XmNaccelerator, "CtrlInsert", RES_CONVERT( XmNacceleratorText, "Ctrl+Ins" ), NULL ); UxPutContext( copyButton, (char *) UxKuipIoContext ); @@ -585,7 +585,7 @@ EditMenu, RES_CONVERT( XmNlabelString, "Paste" ), RES_CONVERT( XmNmnemonic, "P" ), - XmNaccelerator, "ShiftInsertChar", + XmNaccelerator, "ShiftInsert", RES_CONVERT( XmNacceleratorText, "Shift+Ins" ), NULL ); UxPutContext( pasteButton, (char *) UxKuipIoContext ); diff -Naur src.orig/packlib/kuip/programs/kxterm/kxterm.c src.new/packlib/kuip/programs/kxterm/kxterm.c --- src.orig/packlib/kuip/programs/kxterm/kxterm.c 2005-04-18 17:40:49.000000000 +0200 +++ src.new/packlib/kuip/programs/kxterm/kxterm.c 2011-07-26 15:28:18.000000000 +0200 @@ -1533,7 +1533,7 @@ XtPointer cbs; { Widget text_w; - int i = (int) item; + int i = (unsigned long) item; Boolean result = True; text_w = get_selection_owner(widget); diff -Naur src.orig/packlib/kuip/programs/kxterm/uxxt.c src.new/packlib/kuip/programs/kxterm/uxxt.c --- src.orig/packlib/kuip/programs/kxterm/uxxt.c 1996-03-08 16:33:04.000000000 +0100 +++ src.new/packlib/kuip/programs/kxterm/uxxt.c 2011-07-26 15:28:18.000000000 +0200 @@ -340,7 +340,7 @@ { (void) XDeleteContext( XtDisplay( UxTopLevel ), (Window) wgt, - (XContext) client_data ); + (XContext) (long)client_data ); } /****************************************************************************** @@ -385,7 +385,7 @@ return ( UX_ERROR ); XtAddCallback (wgt, XmNdestroyCallback, - UxDeleteContextCB, (XtPointer) xcontext_id); + UxDeleteContextCB, (XtPointer) (long)xcontext_id); return ( UX_NO_ERROR ); } diff -Naur src.orig/packlib/minuit/examples/Imakefile src.new/packlib/minuit/examples/Imakefile --- src.orig/packlib/minuit/examples/Imakefile 1997-10-23 19:04:15.000000000 +0200 +++ src.new/packlib/minuit/examples/Imakefile 2011-07-26 15:28:18.000000000 +0200 @@ -9,6 +9,6 @@ FDEBUGFLAGS=NoOpFortranDebugFlags #endif -CernlibFortranProgramTarget(minuit,$(OBJS),$(PACKAGE_LIB),$(PACKAGE_LIB),NullParameter) +NormalFortranProgramTarget(minuit,$(OBJS),$(PACKAGE_LIB),$(PACKAGE_LIB),NullParameter) TestTarget(minuit,NullParameter,NullParameter) diff -Naur src.orig/packlib/zbook/code/zerror.F src.new/packlib/zbook/code/zerror.F --- src.orig/packlib/zbook/code/zerror.F 1996-03-08 13:01:12.000000000 +0100 +++ src.new/packlib/zbook/code/zerror.F 2011-07-26 15:28:18.000000000 +0200 @@ -16,6 +16,10 @@ C ****************************************************************** C DIMENSION IZ(1),KEY(1),LAB(6),ID(1) +#if defined(CERNLIB_QMLXIA64) + INTEGER*8 JUMPADR +#endif + C C ------------------------------------------------------------------ C @@ -24,7 +28,7 @@ NEWERR = IERR JZ = IZ(1) IF(IZ(JZ+19).EQ.0) CALL ZUSER(IZ,NEWERR,KEY,ID) -#if (defined(CERNLIB_SINGLE)||defined(CERNLIB_DOUBLE)||defined(CERNLIB_UNIVAC)||defined(CERNLIB_PDP10))&&(!defined(CERNLIB_VAX))&&(!defined(CERNLIB_BESM6)) +#if (defined(CERNLIB_SINGLE)||defined(CERNLIB_DOUBLE)||defined(CERNLIB_UNIVAC)||defined(CERNLIB_PDP10))&&(!defined(CERNLIB_VAX))&&(!defined(CERNLIB_BESM6))&&(!defined(CERNLIB_QMLXIA64)) IF(IZ(JZ+19).NE.0) CALL ZJUMP(IZ(JZ+19),IZ,NEWERR,KEY,ID) #endif #if defined(CERNLIB_VAX) @@ -33,6 +37,13 @@ #if defined(CERNLIB_BESM6) IF(IZ(JZ+19).NE.0) CALL ZJUMP(IZ,NEWERR,KEY,ID,IZ(JZ+19)) #endif +#if defined(CERNLIB_QMLXIA64) + IF(IZ(JZ+19).NE.0) THEN + JUMPADR = IZ(JZ+19) + print '(a,z17)','JUMPADR is:', JUMPADR + CALL JUMPT4(JUMPADR,IZ,NEWERR,KEY,ID) + END IF +#endif C IF (NEWERR.LE.0)RETURN C diff -Naur src.orig/packlib/zbook/code/zjump.c src.new/packlib/zbook/code/zjump.c --- src.orig/packlib/zbook/code/zjump.c 1996-03-08 13:01:12.000000000 +0100 +++ src.new/packlib/zbook/code/zjump.c 2011-07-26 15:28:18.000000000 +0200 @@ -7,6 +7,9 @@ * */ #include "zbook/pilot_c.h" +#if defined(CERNLIB_QMLXIA64) +static void (*target)(); +#endif #if defined(CERNLIB_UNIX) #if defined(CERNLIB_QX_SC) zjump_(name,p1,p2,p3,p4) @@ -18,8 +21,23 @@ ZJUMP(name,p1,p2,p3,p4) #endif char *p1, *p2, *p3, *p4; + +/* LP64 compatibility: + name is taken from a Fortran array and therefore its address is 32 bit + which has to be converted to a 64 bit address to satisfy void (*) (H. Vogt) */ + +#if defined(CERNLIB_QMLXIA64) +int *name; +{ + long jadr; + jadr = *name; /* convert int to long */ + target = (void (*)())jadr; + (*target)(p1, p2, p3, p4); +} +#else void (**name)(); { (**name)(p1, p2, p3, p4); } #endif +#endif diff -Naur src.orig/packlib/zbook/code/ztrap.F src.new/packlib/zbook/code/ztrap.F --- src.orig/packlib/zbook/code/ztrap.F 1996-03-08 13:01:13.000000000 +0100 +++ src.new/packlib/zbook/code/ztrap.F 2011-07-26 15:28:18.000000000 +0200 @@ -48,8 +48,10 @@ #if defined(CERNLIB_BESM6) IZ(JZ+19) = LOCF(IUSER) #endif -#if defined(CERNLIB_UNIX) +#if defined(CERNLIB_UNIX) && !defined(CERNLIB_QMLXIA64) IZ(JZ+19) = LOCB(IUSER) +#else + IZ(JZ+19) = JUMPAD(IUSER) #endif END #endif diff -Naur src.orig/packlib/zebra/fq/fzdaeof.inc src.new/packlib/zebra/fq/fzdaeof.inc --- src.orig/packlib/zebra/fq/fzdaeof.inc 2006-09-15 11:35:31.000000000 +0200 +++ src.new/packlib/zebra/fq/fzdaeof.inc 2011-07-26 16:00:34.000000000 +0200 @@ -47,7 +47,11 @@ * only valid for dec fortran (e.g. not f2c + microsoft c) PARAMETER (IOSEOF = 36) #elif defined(CERNLIB_GFORTRAN) +#if __GNUC__ >= 5 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 3) + PARAMETER (IOSEOF = 5002) +#else PARAMETER (IOSEOF = 3) +#endif #elif 1 PARAMETER (IOSEOF = -1) #endif diff -Naur src.orig/packlib/zebra/test/Imakefile src.new/packlib/zebra/test/Imakefile --- src.orig/packlib/zebra/test/Imakefile 1997-08-29 15:33:57.000000000 +0200 +++ src.new/packlib/zebra/test/Imakefile 2011-07-26 15:28:18.000000000 +0200 @@ -41,27 +41,27 @@ testrz: zebrz1 zebrz2 zebrz3 -CernlibFortranProgramTarget(zebmz1,zebmz1.o,$(PACKAGE_LIB),$(PACKAGE_LIB),kernlib) +CernlibFortranProgramTarget(zebmz1,zebmz1.o,$(PACKAGE_LIB),$(PACKAGE_LIB),packlib) -CernlibFortranProgramTarget(zebfz1,zebfz1.o,$(PACKAGE_LIB),$(PACKAGE_LIB),kernlib) -CernlibFortranProgramTarget(zebfz2,zebfz2.o,$(PACKAGE_LIB),$(PACKAGE_LIB),kernlib) -CernlibFortranProgramTarget(zebfz3,zebfz3.o,$(PACKAGE_LIB),$(PACKAGE_LIB),kernlib) -CernlibFortranProgramTarget(zebfz4,zebfz4.o,$(PACKAGE_LIB),$(PACKAGE_LIB),kernlib) -CernlibFortranProgramTarget(zebfz5,zebfz5.o,$(PACKAGE_LIB),$(PACKAGE_LIB),kernlib) -CernlibFortranProgramTarget(zebfz6,zebfz6.o,$(PACKAGE_LIB),$(PACKAGE_LIB),kernlib) -CernlibFortranProgramTarget(zebfz7,zebfz7.o,$(PACKAGE_LIB),$(PACKAGE_LIB),kernlib) -CernlibFortranProgramTarget(zebfz8,zebfz8.o,$(PACKAGE_LIB),$(PACKAGE_LIB),kernlib) -CernlibFortranProgramTarget(zebfz9,zebfz9.o,$(PACKAGE_LIB),$(PACKAGE_LIB),kernlib) - -CernlibFortranProgramTarget(zebfc1,zebfc1.o,$(PACKAGE_LIB),$(PACKAGE_LIB),kernlib) -CernlibFortranProgramTarget(zebfc2,zebfc2.o,$(PACKAGE_LIB),$(PACKAGE_LIB),kernlib) -CernlibFortranProgramTarget(zebfc3,zebfc3.o,$(PACKAGE_LIB),$(PACKAGE_LIB),kernlib) - -CernlibFortranProgramTarget(zebjz1,zebjz1.o,$(PACKAGE_LIB),$(PACKAGE_LIB),kernlib) - -CernlibFortranProgramTarget(zebrz1,zebrz1.o,$(PACKAGE_LIB),$(PACKAGE_LIB),kernlib) -CernlibFortranProgramTarget(zebrz2,zebrz2.o,$(PACKAGE_LIB),$(PACKAGE_LIB),kernlib) -CernlibFortranProgramTarget(zebrz3,zebrz3.o,$(PACKAGE_LIB),$(PACKAGE_LIB),kernlib) +CernlibFortranProgramTarget(zebfz1,zebfz1.o,$(PACKAGE_LIB),$(PACKAGE_LIB),packlib) +CernlibFortranProgramTarget(zebfz2,zebfz2.o,$(PACKAGE_LIB),$(PACKAGE_LIB),packlib) +CernlibFortranProgramTarget(zebfz3,zebfz3.o,$(PACKAGE_LIB),$(PACKAGE_LIB),packlib) +CernlibFortranProgramTarget(zebfz4,zebfz4.o,$(PACKAGE_LIB),$(PACKAGE_LIB),packlib) +CernlibFortranProgramTarget(zebfz5,zebfz5.o,$(PACKAGE_LIB),$(PACKAGE_LIB),packlib) +CernlibFortranProgramTarget(zebfz6,zebfz6.o,$(PACKAGE_LIB),$(PACKAGE_LIB),packlib) +CernlibFortranProgramTarget(zebfz7,zebfz7.o,$(PACKAGE_LIB),$(PACKAGE_LIB),packlib) +CernlibFortranProgramTarget(zebfz8,zebfz8.o,$(PACKAGE_LIB),$(PACKAGE_LIB),packlib) +CernlibFortranProgramTarget(zebfz9,zebfz9.o,$(PACKAGE_LIB),$(PACKAGE_LIB),packlib) + +CernlibFortranProgramTarget(zebfc1,zebfc1.o,$(PACKAGE_LIB),$(PACKAGE_LIB),packlib) +CernlibFortranProgramTarget(zebfc2,zebfc2.o,$(PACKAGE_LIB),$(PACKAGE_LIB),packlib) +CernlibFortranProgramTarget(zebfc3,zebfc3.o,$(PACKAGE_LIB),$(PACKAGE_LIB),packlib) + +CernlibFortranProgramTarget(zebjz1,zebjz1.o,$(PACKAGE_LIB),$(PACKAGE_LIB),packlib) + +CernlibFortranProgramTarget(zebrz1,zebrz1.o,$(PACKAGE_LIB),$(PACKAGE_LIB),packlib) +CernlibFortranProgramTarget(zebrz2,zebrz2.o,$(PACKAGE_LIB),$(PACKAGE_LIB),packlib) +CernlibFortranProgramTarget(zebrz3,zebrz3.o,$(PACKAGE_LIB),$(PACKAGE_LIB),packlib) TestTarget(zebmz1,zxtest.dat,NullParameter) diff -Naur src.orig/packlib/zebra/test/brztest/btest2.F src.new/packlib/zebra/test/brztest/btest2.F --- src.orig/packlib/zebra/test/brztest/btest2.F 1997-09-02 17:16:16.000000000 +0200 +++ src.new/packlib/zebra/test/brztest/btest2.F 2011-07-26 15:28:18.000000000 +0200 @@ -32,6 +32,9 @@ DIMENSION LQ(999),IQ(999),Q(999) EQUIVALENCE (IQ(1),Q(1),LQ(9)),(LQ(1),LEV) C +* for 64 bit architectures force LBANK to be in the data section + COMMON/CRZT_H/LBANK + DIMENSION KEY(10) CHARACTER*1 BSLSH #if defined(CERNLIB_QMIBM)||defined(CERNLIB_QMCRY) \ diff -Naur src.orig/packlib/zebra/test/zebfz5.F src.new/packlib/zebra/test/zebfz5.F --- src.orig/packlib/zebra/test/zebfz5.F 1996-03-06 11:46:59.000000000 +0100 +++ src.new/packlib/zebra/test/zebfz5.F 2011-07-26 15:28:18.000000000 +0200 @@ -22,7 +22,7 @@ #undef CERNLIB_ZEBRA_MZBITS_INC #undef CERNLIB_ZEBRA_QUEST_INC #undef CERNLIB_ZEBRA_CQBKC_INC -#include "fqtest/fqback.F" +C#include "fqtest/fqback.F" #include "fqtend/zend.F" #include "tzebend/qnext.F" #include "tdzdummy/dzdummy.F" diff -Naur src.orig/patchy/Imakefile src.new/patchy/Imakefile --- src.orig/patchy/Imakefile 2006-09-06 16:36:54.000000000 +0200 +++ src.new/patchy/Imakefile 2011-07-26 15:28:18.000000000 +0200 @@ -86,8 +86,9 @@ $(LDIR)patchy.car: patchy.car @ ln -s $< $@ +/* use $(>>>>> -C+KEEP, Q_AND. -C IAND (IZV,IZW) = AND (IZV, IZW) -C+KEEP, Q_OR. -C IOR (IZV,IZW) = OR (IZV, IZW) -c>>>>>> ++KEEP, Q_AND. + IAND (IZV,IZW) = AND (IZV, IZW) ++KEEP, Q_OR. + IOR (IZV,IZW) = OR (IZV, IZW) +KEEP, Q_XOR. IEOR (IZV,IZW) = XOR (IZV, IZW) +KEEP, Q_SHIFTL. ISHFTL (IZW,NZB) = LSHFT (IZW, NZB) +KEEP, Q_SHIFTR. ISHFTR (IZW,NZB) = RSHFT (IZW, NZB) -c>>>>>> -C+KEEP, Q_JBIT. -C JBIT (IZW,IZP) = AND (RSHFT(IZW,IZP-1), 1) -c>>>>>> ++KEEP, Q_JBIT. + JBIT (IZW,IZP) = AND (RSHFT(IZW,IZP-1), 1) +KEEP, Q_JBYT. JBYT (IZW,IZP,NZB)= RSHFT (LSHFT(IZW,33-IZP-NZB), 32-NZB) +KEEP, PGMSTOP. @@ -827,22 +823,18 @@ +DECK, SUN, T=JOIN, IF=QMSUN. version for SUN +USE, QNEWLINE. newlines are in memory +USE, INITRH. create routine header lines -c>>>>>> -C+KEEP, Q_AND. -C IAND (IZV,IZW) = AND (IZV, IZW) -C+KEEP, Q_OR. -C IOR (IZV,IZW) = OR (IZV, IZW) -c>>>>>> ++KEEP, Q_AND. + IAND (IZV,IZW) = AND (IZV, IZW) ++KEEP, Q_OR. + IOR (IZV,IZW) = OR (IZV, IZW) +KEEP, Q_XOR. IEOR (IZV,IZW) = XOR (IZV, IZW) +KEEP, Q_SHIFTL. ISHFTL (IZW,NZB) = LSHIFT (IZW, NZB) +KEEP, Q_SHIFTR, IF=-BUGLRSHFT. not usable with f77 3.0 ISHFTR (IZW,NZB) = lrshft (IZW, NZB) -c>>>>> -C+KEEP, Q_JBIT, IF=-BUGLRSHFT. -C JBIT (IZW,IZP) = AND (lrshft(IZW,IZP-1), 1) -c>>>>> ++KEEP, Q_JBIT, IF=-BUGLRSHFT. + JBIT (IZW,IZP) = AND (lrshft(IZW,IZP-1), 1) +KEEP, Q_JBYT, IF=-BUGLRSHFT. JBYT (IZW,IZP,NZB)= lrshft (LSHIFT(IZW,33-IZP-NZB),32-NZB) +DECK, VAX, T=JOIN, IF=QMVAX. version for VAX @@ -858,21 +850,17 @@ +USE, QNEWLINE. newlines are in memory +USE, INITRH. create routine header lines +DECK, F2C, T=JOIN, IF=QF_F2C. code for f2c -c>>>>>> -C+KEEP, Q_AND. -C IAND(IZV,IZW) = AND(IZV,IZW) -C+KEEP, Q_OR. -C IOR(IZV,IZW) = OR(IZV,IZW) -c>>>>>> ++KEEP, Q_AND. + IAND(IZV,IZW) = AND(IZV,IZW) ++KEEP, Q_OR. + IOR(IZV,IZW) = OR(IZV,IZW) +KEEP, Q_XOR. IEOR(IZV,IZW) = XOR(IZV,IZW) +KEEP, Q_SHIFTL. ISHFTL (IZW,NZB) = LSHIFT (IZW,NZB) +KEEP, Q_SHIFTR. -c>>>>>> -C+KEEP, Q_JBIT. -C JBIT(IZW,IZP) = AND(ISHFTR(IZW,IZP-1),1) -c>>>>>> ++KEEP, Q_JBIT. + JBIT(IZW,IZP) = AND(ISHFTR(IZW,IZP-1),1) +KEEP, Q_JBYT. JBYT(IZW,IZP,NZB) = ISHFTR(LSHIFT(IZW,33-IZP-NZB),32-NZB) +DECK, ALL, T=JOIN. @@ -25968,10 +25956,14 @@ +SELF, IF=QMLNX. CALL SMCIL (-1, 'fo:1' , '-O2') CALL SMCIL (-1, 'fo:2' , '-O0') - CALL SMCIL (-1, 'fopt' , '-c -Nx800 -Nc200') + CALL SMCIL (-1, 'fopt' , '-c -g') CALL SMCIL (-1, 'co:1' , '-O2') CALL SMCIL (-1, 'co:2' , '-O0') - CALL SMCIL (-1, 'copt' , '-c -posix') + CALL SMCIL (-1, 'copt' , '-c -g') + ++SELF, IF=GFORTRAN. + CALL SMCIL (-1, 'fc' , 'gfortran') + +SELF, IF=QMNXT. +SELF, IF=QMSGI. +SELF, IF=QMSUN. diff -Naur src.orig/patchy/yexpand.script src.new/patchy/yexpand.script --- src.orig/patchy/yexpand.script 2005-04-18 17:41:03.000000000 +0200 +++ src.new/patchy/yexpand.script 2011-07-26 15:51:37.000000000 +0200 @@ -26,8 +26,8 @@ # CERN_ROOT=":$CERN_ROOT" ; export CERN_ROOT CERN_ROOT=":$CERN/$CERN_LEVEL" ; export CERN_ROOT - tfile="$HOME/$tfile.yexp" - echo "#!/bin/sh" >$tfile + tfile="./$tfile.yexp" + echo "#! /bin/sh" >$tfile echo " cat <>$tfile cat <$ifile >>$tfile cc=$? diff -Naur src.orig/pawlib/comis/code/Imakefile src.new/pawlib/comis/code/Imakefile --- src.orig/pawlib/comis/code/Imakefile 2001-09-14 15:08:51.000000000 +0200 +++ src.new/pawlib/comis/code/Imakefile 2011-07-26 15:28:18.000000000 +0200 @@ -50,6 +50,10 @@ SRCS_F := $(SRCS_F) cscrexec.F #endif +#if defined(CERNLIB_QMLXIA64) +SRCS_F := $(SRCS_F) csrtgpl.F csitgpl.F +#endif + #if defined(CERNLIB_OLD) SRCS_F := $(SRCS_F) cspdir.F csrmbk.F #endif diff -Naur src.orig/pawlib/comis/code/csaddr.F src.new/pawlib/comis/code/csaddr.F --- src.orig/pawlib/comis/code/csaddr.F 1996-02-26 18:16:25.000000000 +0100 +++ src.new/pawlib/comis/code/csaddr.F 2011-07-26 15:28:18.000000000 +0200 @@ -17,8 +17,15 @@ INTEGER CSLTGP,CSITGP CHARACTER*32 NAME #include "comis/cstab.inc" -#if defined(CERNLIB_SHL) +#if defined(CERNLIB_SHL)&&(!defined(CERNLIB_QMLXIA64)) INTEGER CS_GET_FUNC +#endif +#if defined(CERNLIB_SHL)&&(defined(CERNLIB_QMLXIA64)) +#include "comis/cstab64.inc" + INTEGER CSITGPL + INTEGER*8 CS_GET_FUNC +#endif +#if defined(CERNLIB_SHL) NAME=CHNAME NC=LENOCC(NAME) CALL CSCHID(NAME(:NC)) @@ -26,21 +33,39 @@ I=CSLTGP(IPVS) IF(I.GT.0)THEN IF(IFCS.EQ.0)THEN +#if defined (CERNLIB_QMLXIA64) + IADGPL=CS_GET_FUNC(NAME(1:NC)//'_') + IF(IADGPL.NE.0)THEN + IFCS=-2 + CALL CSRTGPL(I) +#else IADGP=CS_GET_FUNC(NAME(1:NC)//'_') IF(IADGP.NE.0)THEN IFCS=-2 CALL CSRTGP(I) +#endif +#endif +#if defined(CERNLIB_SHL) ELSE I=0 ENDIF ENDIF ELSE +#if defined (CERNLIB_QMLXIA64) + IADGPL=CS_GET_FUNC(NAME(1:NC)//'_') + IF(IADGPL.NE.0)THEN + IFCS=-2 + ITYPGP=-2 + I=CSITGPL(IPVS) + ENDIF +#else IADGP=CS_GET_FUNC(NAME(1:NC)//'_') IF(IADGP.NE.0)THEN IFCS=-2 ITYPGP=-2 I=CSITGP(IPVS) ENDIF +#endif END IF CSADDR=I #endif diff -Naur src.orig/pawlib/comis/code/cscrexec.F src.new/pawlib/comis/code/cscrexec.F --- src.orig/pawlib/comis/code/cscrexec.F 2006-09-15 11:35:36.000000000 +0200 +++ src.new/pawlib/comis/code/cscrexec.F 2011-07-26 15:28:18.000000000 +0200 @@ -73,7 +73,7 @@ LEXEC=LENOCC(FEXEC) OPEN(LUNOUT,FILE=FEXEC(:LEXEC), STATUS='UNKNOWN',ERR=99) WRITE(LUNOUT,'(A)') '#!/bin/sh' - WRITE(LUNOUT,'(A)') 'olddir=`pwd`' + WRITE(LUNOUT,'(A)') 'olddir="`pwd`"' * WRITE(LUNOUT,'(A)') 'cd '//CHPATH(:LPATH) CHLINE= 'cd '//CHPATH(:LPATH) L=LENOCC(CHLINE) @@ -84,12 +84,12 @@ WRITE(LUNOUT,'(A)')CHLINE(:L) IF(FEXT.EQ.'.c')THEN L=LENOCC(CHCC) -* 'cc -c .... name.c' - CHLINE=CHCC(:L)//' '//NAME(:LN)// '.c' +* 'cc -c .... -fPIC name.c' + CHLINE=CHCC(:L)//' -fPIC '//NAME(:LN)// '.c' ELSE L=LENOCC(CHF77) -* 'f77 -c .... name.f' - CHLINE=CHF77(:L)//' '//NAME(:LN)// '.f' +* 'f77 -c .... -fPIC name.f' + CHLINE=CHF77(:L)//' -fPIC '//NAME(:LN)// '.f' ENDIF L=LENOCC(CHLINE) WRITE(LUNOUT,'(A)')CHLINE(:L) @@ -179,14 +179,25 @@ ENDIF #endif #if defined(CERNLIB_LINUX) && !defined(CERNLIB_MACOSX) - CHLINE= 'ld -shared -o ' +#if defined (CERNLIB_GFORTRAN) + CHLINE= 'gfortran -shared -o ' + // NAME(:LN) //'.sl '// NAME(:LN) //'.o' +#else + CHLINE= 'g77 -shared -o ' + + // NAME(:LN) //'.sl '// NAME(:LN) //'.o' +#endif #endif #if defined(CERNLIB_MACOSX) +#if defined (CERNLIB_GFORTRAN) + CHLINE= 'gfortran -bundle -bundle_loader `/usr/bin/which pawX11`' + + // ' -bind_at_load -o ' + + // NAME(:LN) //'.sl '// NAME(:LN) //'.o' +#else CHLINE= 'g77 -bundle -bundle_loader `/usr/bin/which pawX11` ' + // ' -bind_at_load -o ' + // NAME(:LN) //'.sl '// NAME(:LN) //'.o' #endif +#endif #if defined(CERNLIB_ALPHA_OSF) CHLINE= 'ld -shared -o ' + // NAME(:LN) //'.sl '// NAME(:LN) //'.o \\' @@ -214,7 +225,7 @@ CHLINE= '/bin/rm -f '//NAME(:LN)//'.o' L=LENOCC(CHLINE) WRITE(LUNOUT,'(A)')CHLINE(:L) - WRITE(LUNOUT,'(A)') 'cd $olddir' + WRITE(LUNOUT,'(A)') 'cd "$olddir"' WRITE(LUNOUT,'(A)') 'exit 0' CALL CSCLOS(LUNOUT) CLOSE(LUNOUT) diff -Naur src.orig/pawlib/comis/code/csinit.F src.new/pawlib/comis/code/csinit.F --- src.orig/pawlib/comis/code/csinit.F 2005-04-18 17:41:04.000000000 +0200 +++ src.new/pawlib/comis/code/csinit.F 2011-07-26 15:28:18.000000000 +0200 @@ -64,6 +64,9 @@ #if defined(CERNLIB_SHL) #include "comis/cshlnm.inc" #endif +#if defined(CERNLIB_SHL)&&(defined(CERNLIB_QMLXIA64)) +#include "comis/cstab64.inc" +#endif #if defined(CERNLIB_PAW) #include "paw/pcmode.inc" #include "comis/cshfill.inc" @@ -159,6 +162,9 @@ ICHMINU=ICHAR('-') ICHPLUS=ICHAR('+') ICHCOMM=ICHAR(',') +#if defined(CERNLIB_SHL)&&(defined(CERNLIB_QMLXIA64)) + IPIADGV=0 +#endif #if defined(CERNLIB_PAW) CALL CSPAWI MODHFI=0 @@ -209,11 +215,16 @@ CHF77 ='f77 -c -pic' CHCC ='cc -c -pic' #endif -#if (defined(CERNLIB_LINUX)) +#if (defined(CERNLIB_LINUX))&&(!defined(CERNLIB_QMLXIA64))&&(!defined(CERNLIB_GFORTRAN)) ITMPLEN=CSTMPD(CHPATH, 256) CHF77 ='g77 -c' CHCC ='cc -c' #endif +#if (defined(CERNLIB_LINUX))&&(defined(CERNLIB_GFORTRAN)) + ITMPLEN=CSTMPD(CHPATH, 256) + CHF77 ='gfortran -c -fPIC' + CHCC ='cc -c -fPIC' +#endif #if (defined(CERNLIB_SGI))&&(defined(CERNLIB_SHL)) ITMPLEN=CSTMPD(CHPATH, 256) CHF77 ='f77 -c' diff -Naur src.orig/pawlib/comis/code/csintx.F src.new/pawlib/comis/code/csintx.F --- src.orig/pawlib/comis/code/csintx.F 1996-12-05 10:50:37.000000000 +0100 +++ src.new/pawlib/comis/code/csintx.F 2011-07-26 15:28:18.000000000 +0200 @@ -38,6 +38,9 @@ #if defined(CERNLIB_PAW) #include "comis/cskucs.inc" #endif +#if defined(CERNLIB_QMLXIA64) +#include "comis/cstab64.inc" +#endif #if (defined(CERNLIB_UNIX))&&(!defined(CERNLIB_ALPHA_OSF)) INTEGER CSTRCMP #endif @@ -1105,6 +1108,23 @@ ENDIF #endif #if (!defined(CERNLIB_VAX))&&(!defined(CERNLIB_APOLLO)) +#if defined(CERNLIB_QMLXIA64) + IF(IQ(IP+KSIFCS).EQ.-2)THEN +*Dynamic linker may give long addresses + IADGPL = IADGPLV(IADGP) + ELSE + IADGPL = IADGP + ENDIF + IF(ITP.EQ.1.OR.ITP.EQ.4.OR.ITP.EQ.6)THEN + ICSRES=CSCALI(IADGPL,NPAR,IDA(IOFSPL)) + ELSEIF(ITP.EQ.2)THEN + RCSRES=CSCALR(IADGPL,NPAR,IDA(IOFSPL)) + ELSEIF(ITP.EQ.5)THEN + DCSRES=CSCALD(IADGPL,NPAR,IDA(IOFSPL)) + ELSEIF(ITP.EQ.7)THEN + DCSRES=CSCALD(IADGPL,NPAR,IDA(IOFSPL)) + ENDIF +#else IF(ITP.EQ.1.OR.ITP.EQ.4.OR.ITP.EQ.6)THEN ICSRES=CSCALI(IADGP,NPAR,IDA(IOFSPL)) ELSEIF(ITP.EQ.2)THEN @@ -1115,6 +1135,7 @@ DCSRES=CSCALD(IADGP,NPAR,IDA(IOFSPL)) ENDIF #endif +#endif IPC=IPC+4 GO TO 999 *NUM I diff -Naur src.orig/pawlib/comis/code/csitgpl.F src.new/pawlib/comis/code/csitgpl.F --- src.orig/pawlib/comis/code/csitgpl.F 1970-01-01 01:00:00.000000000 +0100 +++ src.new/pawlib/comis/code/csitgpl.F 2011-07-26 15:28:18.000000000 +0200 @@ -0,0 +1,32 @@ +* Comis +* +* +#if (defined(CERNLIB_QMLXIA64)) +#include "comis/pilot.h" +*CMZU: 1.16/16 04/10/93 12.14.52 by Vladimir Berezhnoi +*-- Author : V.Berezhnoi +* special for 64 bit addresses for dynamic linking (H. Vogt) + INTEGER FUNCTION CSITGPL(IP) +***------------------------------ +* it is last routine from the tables-set. +***----------------------------- +#include "comis/cspar.inc" +#include "comis/mdpool.inc" +#include "comis/cspnts.inc" +#include "comis/cstabps.inc" +#include "comis/cstab64.inc" + I=MHLOC(KSIDP+NWIDEN) + IQ(I)=0 + IQ(I+1)=NCIDEN + DO 1 K=1,NWIDEN + IQ(I+KSIDP-1+K)=IDEN(K) + 1 CONTINUE + CALL CSRTGPL(I) + IF(IP.EQ.0)THEN + IPGP=I + ELSE + IQ(IP)=I + ENDIF + CSITGPL=I + END +#endif diff -Naur src.orig/pawlib/comis/code/cskcal.F src.new/pawlib/comis/code/cskcal.F --- src.orig/pawlib/comis/code/cskcal.F 1996-12-05 10:50:39.000000000 +0100 +++ src.new/pawlib/comis/code/cskcal.F 2011-07-26 15:28:18.000000000 +0200 @@ -31,6 +31,9 @@ #include "comis/cstab.inc" #include "comis/csfres.inc" #include "comis/cssysd.inc" +#if defined(CERNLIB_QMLXIA64) +#include "comis/cstab64.inc" +#endif CHARACTER PRONAME*32 INTEGER CSCALI DOUBLE PRECISION CSCALD @@ -232,6 +235,24 @@ I2=I2+KS I=I+1 9203 CONTINUE +#if defined(CERNLIB_QMLXIA64) +* Dynamic linker may give long addresses + IF (IFCS.EQ.-2)THEN + IADGPL = IADGPLV(IADGP) + ELSE + IADGPL = IADGP + ENDIF + IF(ITP.EQ.1.OR.ITP.EQ.4.OR.ITP.EQ.6)THEN + ICSRES=CSCALI(IADGPL,NOPAR,IF77PL(1)) + ELSEIF(ITP.EQ.2)THEN + RCSRES=CSCALR(IADGPL,NOPAR,IF77PL(1)) + ELSEIF(ITP.EQ.5)THEN + DCSRES=CSCALD(IADGPL,NOPAR,IF77PL(1)) + ELSEIF(ITP.EQ.7)THEN +* I think it will works correctly + DCSRES=CSCALD(IADGPL,NOPAR,IF77PL(1)) + ENDIF +#else * IT=IABS(ITYPGP) IF(ITP.EQ.1.OR.ITP.EQ.4.OR.ITP.EQ.6)THEN ICSRES=CSCALI(IADGP,NOPAR,IF77PL(1)) @@ -245,6 +266,7 @@ ENDIF *+SELF,IF=UNIX,IF=-SGI,IF=-IBMRT,IF=-DECS,IF=-HPUX,IF=-SUN,IF=-MSDOS. #endif +#endif #if (defined(CERNLIB_UNIX))&&(!defined(CERNLIB_STDUNIX)) I=1 DO 9203 K=ITA-NPAR+1,ITA diff -Naur src.orig/pawlib/comis/code/cslink.F src.new/pawlib/comis/code/cslink.F --- src.orig/pawlib/comis/code/cslink.F 1996-02-26 18:16:17.000000000 +0100 +++ src.new/pawlib/comis/code/cslink.F 2011-07-26 15:28:18.000000000 +0200 @@ -21,10 +21,15 @@ #include "comis/cstab.inc" #include "comis/cspnts.inc" #include "comis/cslun.inc" -#if defined(CERNLIB_SHL) +#if defined(CERNLIB_SHL)&&(!defined(CERNLIB_QMLXIA64)) CHARACTER*(KLENID) FNNAME INTEGER CS_GET_FUNC #endif +#if defined(CERNLIB_SHL)&&(defined(CERNLIB_QMLXIA64)) +#include "comis/cstab64.inc" + CHARACTER*(KLENID) FNNAME + INTEGER*8 CS_GET_FUNC +#endif COMMON/CSGSCM/IGS,JGS,NGS,CSJUNK(3) IF(ISTLIB.EQ.0 .AND. ITBS.EQ.0)RETURN 2 I=IPGP @@ -60,12 +65,20 @@ #if defined(CERNLIB_SHL) CALL CSGTIDP(I,FNNAME,NC) CALL CUTOL(FNNAME(1:NC)) +#if defined (CERNLIB_QMLXIA64) + IADGPL=CS_GET_FUNC(FNNAME(1:NC)//'_') + IF(IADGPL.NE.0)THEN + IFCS=-2 + CALL CSRTGPL(I) + ENDIF +#else IADGP=CS_GET_FUNC(FNNAME(1:NC)//'_') IF(IADGP.NE.0)THEN IFCS=-2 CALL CSRTGP(I) ENDIF #endif +#endif IP=0 ENDIF ENDIF diff -Naur src.orig/pawlib/comis/code/cspawi.F src.new/pawlib/comis/code/cspawi.F --- src.orig/pawlib/comis/code/cspawi.F 1996-02-26 18:16:22.000000000 +0100 +++ src.new/pawlib/comis/code/cspawi.F 2011-07-26 15:28:18.000000000 +0200 @@ -23,10 +23,12 @@ COMMON/PAWC/NWPAW,IXPAWC,IHDIV,IXHIGZ,IXKU,FENC(5),LMAIN,HCV(9989) DIMENSION IQ(2),Q(2),LQ(8000) EQUIVALENCE (LQ(1),LMAIN),(IQ(1),LQ(9)),(Q(1),IQ(1)) + CHARACTER*8 MYCSPAWC + MYCSPAWC = 'CSPAWC ' **** JKUVBS=LOCF(IQ(1))-1 JKUVBS=LOCF(IQ(1))+KUVOFS-1 KUVCUR=0 - CALL CCOPYS(MJSCHA('CSPAWC '),JID,8) + CALL CCOPYS(MJSCHA(MYCSPAWC),JID,8) NCIDEN=6 NWIDEN=2 I=CSLTGB(IPVS) diff -Naur src.orig/pawlib/comis/code/csrtgpl.F src.new/pawlib/comis/code/csrtgpl.F --- src.orig/pawlib/comis/code/csrtgpl.F 1970-01-01 01:00:00.000000000 +0100 +++ src.new/pawlib/comis/code/csrtgpl.F 2011-07-26 15:28:18.000000000 +0200 @@ -0,0 +1,31 @@ +* Comis +* +* +#if (defined(CERNLIB_QMLXIA64)) +#include "comis/pilot.h" +*CMZ : 1.18/14 10/01/95 15.41.06 by Vladimir Berezhnoi +*-- Author : V.Berezhnoi +* special for 64 bit addresses for dynamic linking (H. Vogt) + + SUBROUTINE CSRTGPL(I) +***-------------------------- +#include "comis/cspar.inc" +#include "comis/mdpool.inc" +#include "comis/cstabps.inc" +#include "comis/cstab.inc" +#include "comis/cstab64.inc" + + IPIADGV = IPIADGV + 1 + IF (IPIADGV .GT. MAXIAD64) THEN + WRITE (*,'(2a,I4)') 'to much addresses for dynamik linking, ', + & 'limit is ', MAXIAD64 + WRITE (*,'(2a)') 'increase MAXIAD64 in cstab64.inc and ', + & 'recompile COMIS' + + STOP + END IF + IADGPLV(IPIADGV) = IADGPL + IADGP = IPIADGV + CALL CCOPYA(IADGP,IQ(I+2),KSIDP-2) + END +#endif diff -Naur src.orig/pawlib/comis/code/cstran.F src.new/pawlib/comis/code/cstran.F --- src.orig/pawlib/comis/code/cstran.F 2001-02-07 10:27:01.000000000 +0100 +++ src.new/pawlib/comis/code/cstran.F 2011-07-26 15:28:18.000000000 +0200 @@ -521,6 +521,7 @@ * '#' DRSJNT * 'OD'/'FI'/'ENDDO'/'ENDIF'/'END' DELIM DRSJNT **** + CHARACTER*8 MYCSPAWC INTEGER GSCMST(3046),GSSTRC(135),GSSTRP(255) INTEGER GSCMS1(361),GSCMS2(361),GSCMS3(361),GSCMS4(361), *GSCMS5(361),GSCMS6(361),GSCMS7(361),GSCMS8(361),GSCMS9(158) @@ -719,6 +720,7 @@ DATA IOST/0/ ** DATA NHSSC/4H; /, NHSEQ/4H= /, NHSBR/4H) / DATA NMPAWC/4HPAWC/ + MYCSPAWC = 'CSPAWC ' CALL CCOPYA(IDEN,IDENPR,NWIDEN) NCIDPR=NCIDEN NWIDPR=NWIDEN @@ -903,7 +905,7 @@ 211 CONTINUE #if defined(CERNLIB_PAW) KEYWD=22 - CALL CCOPYS(MJSCHA('CSPAWC '),JID,8) + CALL CCOPYS(MJSCHA(MYCSPAWC),JID,8) NCIDEN=6 NWIDEN=2 IGB=CSLTGB(IPVSB) diff -Naur src.orig/pawlib/comis/comis/Imakefile src.new/pawlib/comis/comis/Imakefile --- src.orig/pawlib/comis/comis/Imakefile 1997-05-13 13:56:34.000000000 +0200 +++ src.new/pawlib/comis/comis/Imakefile 2011-08-02 15:19:06.000000000 +0200 @@ -2,6 +2,6 @@ csfres.inc cshfill.inc cshlnm.inc csichv.inc cskeys.inc \ @@\ cskucs.inc cslun.inc csopen.inc cspanm.inc cspar.inc \ @@\ cspnts.inc csrec.inc cssysd.inc cstab.inc cstabps.inc csinc.inc \ @@\ - cstbls.inc cstvrs.inc cswpar.inc dlfcn.inc mdpool.inc pilot.h + cstbls.inc cstvrs.inc cswpar.inc dlfcn.inc mdpool.inc pilot.h mdsize.h InstallIncludes($(INCLUDES),$(CERN_INCLUDEDIR),comis) diff -Naur src.orig/pawlib/comis/comis/cspar.inc src.new/pawlib/comis/comis/cspar.inc --- src.orig/pawlib/comis/comis/cspar.inc 2000-05-30 15:53:58.000000000 +0200 +++ src.new/pawlib/comis/comis/cspar.inc 2011-08-02 12:14:02.000000000 +0200 @@ -15,7 +15,9 @@ * * cspar.inc * - PARAMETER (LHP=50006, KON1=17694720, KON2=KON1 +#include "comis/mdsize.h" + + PARAMETER (LHP=MDSIZE, KON1=17694720, KON2=KON1 +, KON3=2**16, LRECU=8,NRECU=5,MLRECU=NRECU*LRECU +, MXRECU=MLRECU-LRECU 1, LASTK=2000,LSSTK=50,KLENID=32 diff -Naur src.orig/pawlib/comis/comis/cstab64.inc src.new/pawlib/comis/comis/cstab64.inc --- src.orig/pawlib/comis/comis/cstab64.inc 1970-01-01 01:00:00.000000000 +0100 +++ src.new/pawlib/comis/comis/cstab64.inc 2011-07-26 15:28:18.000000000 +0200 @@ -0,0 +1,10 @@ +* +* +* cstab64.inc +* + PARAMETER (MAXIAD64=100) !maximum number of shared objects + INTEGER*8 IADGPL,IADGPLV(MAXIAD64) + INTEGER IADGPL1, IADGPL2 + COMMON /CSTB64/ IADGPL,IADGPLV + COMMON /CSTB64I/ IPIADGV + EQUIVALENCE (IADGPL, IADGPL1) diff -Naur src.orig/pawlib/comis/comis/mdpool.h src.new/pawlib/comis/comis/mdpool.h --- src.orig/pawlib/comis/comis/mdpool.h 1970-01-01 01:00:00.000000000 +0100 +++ src.new/pawlib/comis/comis/mdpool.h 2011-08-02 12:14:02.000000000 +0200 @@ -0,0 +1,33 @@ +#ifndef _MDPOOL_H +#define _MDPOOL_H + +/* mdpool.h */ + +/* #include or in one source code file of + * your executable program dynamically linked against libpaw + * so that MDPOOL is defined in your executable. This is + * necessary for proper functioning of the COMIS interpreter when + * dynamically linked. + */ + +/* define MDSIZE: */ +#include + +#include + +#ifdef __cplusplus +extern "C" { +#endif + +typedef struct { + int iq[MDSIZE]; +} mdpool_def; + +#define MDPOOL COMMON_BLOCK(MDPOOL, mdpool) +COMMON_BLOCK_DEF(mdpool_def, MDPOOL); + +#ifdef __cplusplus +} /* extern "C" */ +#endif + +#endif /* _MDPOOL_H */ diff -Naur src.orig/pawlib/comis/comis/mdpool.inc src.new/pawlib/comis/comis/mdpool.inc --- src.orig/pawlib/comis/comis/mdpool.inc 1996-02-26 18:16:34.000000000 +0100 +++ src.new/pawlib/comis/comis/mdpool.inc 2011-08-02 12:14:03.000000000 +0200 @@ -12,6 +12,8 @@ * * mdpool.inc * +#include "comis/cspar.inc" + COMMON/MDPOOL/IQ(LHP) INTEGER ISEM(LHP),KD(LHP),IDA(LHP),KD1(99),KD2(99),KD3(99) EQUIVALENCE (IQ,ISEM),(IQ,KD),(IQ,IDA) diff -Naur src.orig/pawlib/comis/comis/mdsize.h src.new/pawlib/comis/comis/mdsize.h --- src.orig/pawlib/comis/comis/mdsize.h 1970-01-01 01:00:00.000000000 +0100 +++ src.new/pawlib/comis/comis/mdsize.h 2011-08-02 12:14:03.000000000 +0200 @@ -0,0 +1,6 @@ +#ifndef _MDSIZE_H +#define _MDSIZE_H + +#define MDSIZE 50006 + +#endif diff -Naur src.orig/pawlib/comis/deccc/Imakefile src.new/pawlib/comis/deccc/Imakefile --- src.orig/pawlib/comis/deccc/Imakefile 2005-04-18 17:41:06.000000000 +0200 +++ src.new/pawlib/comis/deccc/Imakefile 2011-07-26 15:28:18.000000000 +0200 @@ -45,8 +45,12 @@ #endif #if defined(CERNLIB_LINUX) +#if defined(CERNLIB_GFORTRAN) +EXTRA_DEFINES := $(EXTRA_DEFINES) -DgFortran +#else EXTRA_DEFINES := $(EXTRA_DEFINES) -Df2cFortran #endif +#endif #if defined(CERNLIB_SUN) && !defined(CERNLIB_SOLARIS) CCOPTIONS= diff -Naur src.orig/pawlib/comis/deccc/ccopys.c src.new/pawlib/comis/deccc/ccopys.c --- src.orig/pawlib/comis/deccc/ccopys.c 1997-09-02 17:50:38.000000000 +0200 +++ src.new/pawlib/comis/deccc/ccopys.c 2011-07-26 15:28:18.000000000 +0200 @@ -33,11 +33,41 @@ #else void ccopys_(ja,jb,nn) #endif + +/* + * 64-bit pointer systems require a special treatment of addresses - see below - + * using the CERNLIB_QMLXIA64 cpp flag (H. Vogt - Sep 2005) + */ + +/* For Itanium, the situation is even worse. Itanium architecture is such + * that the data section starts at 0x6000000000000000. The stack is + * supposed to be between 0x80...0 and 0xa0...0 starting at the high end + * and growing downwards, although on a test machine (merulo.debian.org) + * it seemed instead to start at 0x6000100000000000 and grow downwards. + * The addresses we actually get are truncated to the lowest 32 bits, + * so we assume that those greater than 0x80000000 are in the stack. + * + * Constant strings are in the text section starting at 0x40...0; we hope + * this function doesn't receive any. + * -- Kevin McCarty + */ + +#if defined(CERNLIB_QMLXIA64) +# include "cscal_lp64.h" + int *ja, *jb; + int *nn; +{ + int i,n; char *a,*b; + n=*nn; + setaddr_lp64(*ja,*jb) + +#else char **ja, **jb; int *nn; { int i,n; char *a,*b; n=*nn; a=*ja; b=*jb; +#endif if ( a >= b ) for ( i=0; i +#define ALPHA_OSF +#endif + #if defined(CERNLIB_SGI) #define SGI #endif diff -Naur src.orig/pawlib/comis/deccc/csallo.c src.new/pawlib/comis/deccc/csallo.c --- src.orig/pawlib/comis/deccc/csallo.c 1999-11-15 14:36:24.000000000 +0100 +++ src.new/pawlib/comis/deccc/csallo.c 2011-08-02 12:14:03.000000000 +0200 @@ -39,21 +39,21 @@ /*-- Author :*/ #include +#include +#include +#include +#include "comis/mdsize.h" typedef struct { - int iq[6]; + int iq[MDSIZE]; /* instead of int iq[6] */ } mdpool_def; #define MDPOOL COMMON_BLOCK(MDPOOL,mdpool) COMMON_BLOCK_DEF(mdpool_def,MDPOOL); -unsigned long iqpntr = (unsigned long)MDPOOL.iq; +unsigned long iqpntr = 0; -#ifdef CERNLIB_WINNT -# include -#endif - #if defined(CERNLIB_QX_SC) int type_of_call csallo_(lenb) #endif @@ -65,11 +65,38 @@ #endif int *lenb; { - long lpntr; - int pntr; + unsigned long lpntr; + unsigned int pntr; + if (! iqpntr) + iqpntr = (unsigned long)MDPOOL.iq; lpntr= (long)( malloc(*lenb) ); - pntr=lpntr - iqpntr; + if (! lpntr) { + fprintf(stderr, + "CSALLO: not enough dynamic memory to allocate %d bytes\n", *lenb); + exit(EXIT_FAILURE); + } + + if (lpntr < iqpntr) { + fprintf(stderr, "CSALLO: heap below bss?!"); +#if defined (CERNLIB_DEBIAN) + fprintf(stderr, "\n" +"See the file /usr/share/doc/libpawlib2-dev/README.Debian for more information.\n" +"If it does not help to solve this problem, please file a bug report against\n" +"the libpawlib2-dev package, including the source code of your executable.\n"); +#else + fprintf(stderr, " Try linking against pawlib statically.\n"); +#endif + exit(EXIT_FAILURE); + } + else if (lpntr - iqpntr > UINT_MAX) { + fprintf(stderr, + "CSALLO: pointer difference too large to be represented by integer.\n" + "You probably need to link PAW statically on 64-bit systems.\n"); + exit(EXIT_FAILURE); + } + + pntr = lpntr - iqpntr; return pntr; } diff -Naur src.orig/pawlib/comis/deccc/cscal_lp64.h src.new/pawlib/comis/deccc/cscal_lp64.h --- src.orig/pawlib/comis/deccc/cscal_lp64.h 1970-01-01 01:00:00.000000000 +0100 +++ src.new/pawlib/comis/deccc/cscal_lp64.h 2011-07-26 15:28:18.000000000 +0200 @@ -0,0 +1,115 @@ +#if defined(CERNLIB_QMLXIA64) + +/* + * cscal_lp64.h: + * macro definitions for LP64 architectures (H. Vogt - Sep 2005) + * 64-bit pointer systems require a special treatment of addresse + * This code will be consistent with that of jumptn.c and jumpxn.c + * in packlib/kernlib/kerngen/ccgen (usage of jumpad_) + * It enables to stay in the 32-bit address space + * but here the addresses have to be converted to 64 bit pointers + * + * special: shared objects loaded by the dynamic linker can have + * addresses above the 32 bit address space (*fptr) + * see changes in csintx.F, cskcal.F, ... + * (usage of INTEGER*8 array for those pointers) + * + */ + +#if defined (__ia64__) +/* for IA64 architectures */ +#define setcall_lp64(type) \ + long *fptr; \ + int *n; \ + unsigned pin[16]; \ +{ \ + int jumpad_(); \ + type (*name)(); \ + unsigned long ptr = (unsigned long)jumpad_; \ + ptr += *fptr; \ + name = (type (*)())ptr; \ + long p[16]; \ + int count; for ( count=0; count<16; count++ ) \ + { \ +/* check for arguments containing an external \ + * which have to be in the shared memory region (region 1) \ + * they are handled via cskcal.F in jumpcadd (entry in jumpcn.c) \ + * and flagged by adding the value of 0x80000000 to the address. \ + * \ + * for arguments containing addresses of data they must be converted \ + * to be in the data segment (region 3) \ + */ \ + if ((pin[count]&0x80000000) == 0) \ + { \ + p[count] = pin[count] + 0x6000000000000000; \ + } \ + else \ + { \ + p[count] = pin[count] + 0x2000000000000000 - 0x80000000; \ + } \ + } \ + /* end of macro */ +#define setaddr_lp64(__ja, __jb) \ + a=(char*)((long)(__ja) | 0x6000000000000000); \ + b=(char*)((long)(__jb) | 0x6000000000000000); \ + /* end of macro */ + +#elif defined (__APPLE__) +/* for apple architectures */ +#define setcall_lp64(type) \ + long *fptr; \ + int *n; \ + unsigned pin[16]; \ +{ \ + int jumpad_(); \ + type (*name)(); \ + unsigned long ptr = (unsigned long)jumpad_; \ + ptr += *fptr; \ + name = (type (*)())ptr; \ + long p[16]; \ + int count; for ( count=0; count<16; count++ ) \ + { \ +/* check for arguments containing an external \ + * which have to be in the shared memory region (region 1) \ + * they are handled via cskcal.F in jumpcadd (entry in jumpcn.c) \ + * and flagged by adding the value of 0x80000000 to the address. \ + * \ + * for arguments containing addresses of data they must be converted \ + * to be in the data segment (region 3) \ + */ \ + if ((pin[count]&0x80000000) == 0) \ + { \ + p[count] = pin[count] + 0x0000000100000000; \ + } \ + else \ + { \ + p[count] = pin[count] + 0x2000000000000000 - 0x80000000; \ + } \ + } \ + /* end of macro */ +#define setaddr_lp64(__ja, __jb) \ + a=(char*)((long)(__ja) | 0x0000000100000000); \ + b=(char*)((long)(__jb) | 0x0000000100000000); \ + /* end of macro */ + +#else +/* for anything else */ +#define setcall_lp64(type) \ + long *fptr; \ + int *n; \ + unsigned pin[16]; \ +{ \ + int jumpad_(); \ + type (*name)(); \ + unsigned long ptr = (unsigned long)jumpad_; \ + ptr += *fptr; \ + name = (type (*)())ptr; \ + long p[16]; \ + int count; for ( count=0; count<16; count++ ) p[count] = pin[count]; \ + /* end of macro */ +#define setaddr_lp64(__ja, __jb) \ + long aa=__ja; long bb=__jb; \ + a=(char *)((long)(__ja)); b=(char *)((long)(__jb)); \ + /* end of macro */ +#endif +#endif diff -Naur src.orig/pawlib/comis/deccc/cscald.c src.new/pawlib/comis/deccc/cscald.c --- src.orig/pawlib/comis/deccc/cscald.c 2004-10-27 11:01:54.000000000 +0200 +++ src.new/pawlib/comis/deccc/cscald.c 2011-07-26 15:28:18.000000000 +0200 @@ -29,11 +29,10 @@ #define cscald #undef cscald -#ifdef CERNLIB_WINNT +#if defined(CERNLIB_WINNT) || defined(CERNLIB_GFORTRAN) # include #endif - -#if (defined(CERNLIB_QX_SC))&&(!defined(CERNLIB_WINNT)) +#if (defined(CERNLIB_QX_SC))&&(!defined(CERNLIB_WINNT))&&(!defined(CERNLIB_QMLXIA64)) double cscald_ (name,n,p) #endif #if defined(CERNLIB_QXNO_SC) @@ -46,10 +45,24 @@ int CSCALD (name,n,p) # endif #endif + +#if defined(CERNLIB_QMLXIA64) + +/* + * 64-bit pointer systems require a special treatment of addresses + * using the setcall_lp64 macro definition below(H. Vogt - Sep 2005) + * defined in cscal_lp64.h + */ + +# include "cscal_lp64.h" +double cscald_ (fptr,n,pin) + setcall_lp64(double) +#else double (type_of_call *(*name)) (); int *n; - int *p[15]; + int *p[16]; { +#endif double d; switch (*n) { diff -Naur src.orig/pawlib/comis/deccc/cscali.c src.new/pawlib/comis/deccc/cscali.c --- src.orig/pawlib/comis/deccc/cscali.c 2004-10-22 14:42:40.000000000 +0200 +++ src.new/pawlib/comis/deccc/cscali.c 2011-07-26 15:28:18.000000000 +0200 @@ -26,11 +26,10 @@ #define cscali #undef cscali -#ifdef CERNLIB_WINNT +#if defined(CERNLIB_WINNT) || defined(CERNLIB_GFORTRAN) # include #endif - -#if (defined(CERNLIB_QX_SC))&&(!defined(CERNLIB_WINNT)) +#if (defined(CERNLIB_QX_SC))&&(!defined(CERNLIB_WINNT))&&(!defined(CERNLIB_QMLXIA64)) int cscali_ (name,n,p) #endif #if defined(CERNLIB_QXNO_SC) @@ -39,10 +38,24 @@ #if defined(CERNLIB_QXCAPT) int type_of_call CSCALI (name,n,p) #endif + +#if defined(CERNLIB_QMLXIA64) + +/* + * 64-bit pointer systems require a special treatment of addresses + * using the setcall_lp64 macro definition below(H. Vogt - Sep 2005) + * defined in cscal_lp64.h + */ + +# include "cscal_lp64.h" +int cscali_ (fptr,n,pin) + setcall_lp64(int) +#else int (type_of_call *(*name)) (); int *n; - int *p[15]; + int *p[16]; { +#endif int i; switch (*n) { diff -Naur src.orig/pawlib/comis/deccc/cscalr.c src.new/pawlib/comis/deccc/cscalr.c --- src.orig/pawlib/comis/deccc/cscalr.c 2004-10-22 14:03:16.000000000 +0200 +++ src.new/pawlib/comis/deccc/cscalr.c 2011-07-26 15:28:18.000000000 +0200 @@ -30,19 +30,15 @@ #define cscalr #undef cscalr -#ifdef CERNLIB_WINNT +#if defined(CERNLIB_WINNT) || defined(CERNLIB_GFORTRAN) # include #endif - - -#if (defined(CERNLIB_QX_SC))&&(!defined(CERNLIB_WINNT)) +#if (defined(CERNLIB_QX_SC))&&(!defined(CERNLIB_WINNT))&&(!defined(CERNLIB_QMLXIA64)) float cscalr_ (name,n,p) #endif - #if defined(CERNLIB_QXNO_SC) float cscalr (name,n,p) #endif - #if defined(CERNLIB_QXCAPT) # if defined(CERNLIB_MSSTDCALL) float type_of_call CSCALR(name,n,p) @@ -51,10 +47,23 @@ # endif #endif +#if defined(CERNLIB_QMLXIA64) + +/* + * 64-bit pointer systems require a special treatment of addresses + * using the setcall_lp64 macro definition below(H. Vogt - Sep 2005) + * defined in cscal_lp64.h + */ + +# include "cscal_lp64.h" +float cscalr_ (fptr,n,pin) + setcall_lp64(float) +#else float (type_of_call *(*name)) (); int *n; - int *p[15]; + int *p[16]; { +#endif float r; switch (*n) { diff -Naur src.orig/pawlib/comis/deccc/cstrcmp.c src.new/pawlib/comis/deccc/cstrcmp.c --- src.orig/pawlib/comis/deccc/cstrcmp.c 1997-09-02 17:50:44.000000000 +0200 +++ src.new/pawlib/comis/deccc/cstrcmp.c 2011-07-26 15:28:18.000000000 +0200 @@ -36,6 +36,43 @@ #else int cstrcmp_(ja,na,jb,nb) #endif + +/* + * 64-bit pointer systems require a special treatment of addresses - see below - + * using the CERNLIB_QMLXIA64 cpp flag (H. Vogt - Sep 2005) + */ + +/* For Itanium, the situation is even worse. Itanium architecture is such + * that the data section starts at 0x6000000000000000. The stack is + * supposed to be between 0x80...0 and 0xa0...0 starting at the high end + * and growing downwards, although on a test machine (merulo.debian.org) + * it seemed instead to start at 0x6000100000000000 and grow downwards. + * The addresses we actually get are truncated to the lowest 32 bits, + * so we assume that those greater than 0x80000000 are in the stack. + * + * Constant strings are in the text section starting at 0x40...0; we hope + * this function doesn't receive any. + * -- Kevin McCarty + */ + +#if defined(CERNLIB_QMLXIA64) +# include "cscal_lp64.h" + int *ja, *jb; + int *na, *nb; +{ + + static int i,la,lb,k; static char *a,*b; + if ( *na >= *nb ) + { + setaddr_lp64(*ja,*jb) + la=*na; lb=*nb; k=1; + } + else + { + setaddr_lp64(*jb,*ja) + la=*nb; lb=*na; k=-1; + } +#else char **ja, **jb; int *na, *nb; { @@ -48,6 +85,7 @@ { a=*jb; b=*ja; la=*nb; lb=*na; k=-1; } +#endif for ( i=0; i b[i]) ? k : -k ); } diff -Naur src.orig/pawlib/comis/deccc/jumpcn.c src.new/pawlib/comis/deccc/jumpcn.c --- src.orig/pawlib/comis/deccc/jumpcn.c 1997-03-14 13:02:25.000000000 +0100 +++ src.new/pawlib/comis/deccc/jumpcn.c 2011-07-26 15:28:18.000000000 +0200 @@ -52,6 +52,43 @@ #define jumpc4 JUMPC4 #define jumpc5 JUMPC5 #endif + +#if defined(CERNLIB_QMLXIA64) + +/* + * function jumpcadd (used by cskcal.F): + * required for LP64 architectures to modify arguments containing an externals + * which are stored relative to the address of jumpad_ in the comis package + */ + +#define jumpcadd jumpcadd_ +extern int jumpad_(); +int jumpcadd(iaddr) + int *iaddr; +{ + int iret; + iret = *iaddr + (long)jumpad_; +#if defined (__ia64__) || defined(__APPLE__) +/* For Itanium architectures this value has to be flagged (a little bit dirty). + It is required in cscal_lp64.h to put it in shared memory region (region 1) +*/ + if (iret >= 0x80000000) + { + printf("!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!\n"); + printf("JUMPCADD: for Itanium architectures address %x is to large\n", iret); + printf("This may result in program crash or incorrect results\n"); + printf("Therefore we will stop here\n"); + printf("!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!\n"); + exit (999); + } + iret = iret + 0x80000000; +#endif + return iret; +} + +#endif + + void type_of_call jumpc0(iadr) void (type_of_call **IADR)(); { diff -Naur src.orig/pawlib/paw/cdf/mlpdef.cdf src.new/pawlib/paw/cdf/mlpdef.cdf --- src.orig/pawlib/paw/cdf/mlpdef.cdf 2001-05-21 11:12:35.000000000 +0200 +++ src.new/pawlib/paw/cdf/mlpdef.cdf 2011-07-26 15:28:18.000000000 +0200 @@ -260,6 +260,7 @@ >Action mlppawc%c >Menu ../TPAT +>Guidance Operations on the test patterns . Whereas it is obviously necessary to define learning diff -Naur src.orig/pawlib/paw/cmotif/att_color.c src.new/pawlib/paw/cmotif/att_color.c --- src.orig/pawlib/paw/cmotif/att_color.c 1996-03-01 12:38:53.000000000 +0100 +++ src.new/pawlib/paw/cmotif/att_color.c 2011-07-26 15:28:18.000000000 +0200 @@ -114,7 +114,7 @@ XtVaGetValues(ObjectRow,XmNmenuHistory,&CurrentObject,NULL); XtVaGetValues(CurrentObject,XmNuserData,&data,NULL); - switch ((int ) client_data) { + switch ((long) client_data) { case 1: /* Surface */ sprintf(Svalue,"%d",data->SurfaceColor); break; @@ -164,7 +164,7 @@ Ncol=atoi((char *)XmTextGetString(NcolText)); } else Ncol=8; ColorNum=atoi((char *)XmTextGetString(AttColorText)); - switch((int) client_data) { + switch((long) client_data) { case 1: /* UpArrow */ ColorNum++; break; diff -Naur src.orig/pawlib/paw/cmotif/att_define_color.c src.new/pawlib/paw/cmotif/att_define_color.c --- src.orig/pawlib/paw/cmotif/att_define_color.c 1999-03-01 10:07:01.000000000 +0100 +++ src.new/pawlib/paw/cmotif/att_define_color.c 2011-07-26 15:28:18.000000000 +0200 @@ -338,7 +338,7 @@ static void MoveScale_cb(Widget w,caddr_t client_data, XmAnyCallbackStruct *call_data) { - switch ((int ) client_data) { + switch ((long) client_data) { case 1 : /* RED */ EditColor.red=((XmScaleCallbackStruct *) call_data)->value; break; @@ -369,7 +369,7 @@ default : fprintf(stderr,"Error in function MoveScale_cb"); } /*end of switch */ - apply_color((int) client_data); + apply_color((long) client_data); } /***************************************************************************** @@ -452,7 +452,7 @@ char *ComStr; ColorNum=atoi((char *)XmTextGetString(ColorIndex)); - switch((int) client_data) { + switch((long) client_data) { case 1: /* UpArrow */ ColorNum++; break; @@ -494,7 +494,7 @@ XmAnyCallbackStruct cb; Ncol=atoi((char *)XmTextGetString(NcolText)); - switch((int) client_data) { + switch((long) client_data) { case 1: /* UpArrow*/ Ncol++; break; diff -Naur src.orig/pawlib/paw/cmotif/att_font.c src.new/pawlib/paw/cmotif/att_font.c --- src.orig/pawlib/paw/cmotif/att_font.c 2000-10-03 16:11:22.000000000 +0200 +++ src.new/pawlib/paw/cmotif/att_font.c 2011-07-26 15:28:18.000000000 +0200 @@ -215,18 +215,22 @@ *****************************************************************************/ static void MajButton(Widget w, Widget font,Widget pre,int postab) { + /* this function edited not to use obsolete function XmFontListCreate() */ XmFontList police; + XmFontListEntry entry; XFontStruct *info_police; char strlabel[20]; int prenum,policenum; - + XtVaGetValues(pre,XmNuserData,&prenum,NULL); prenum--; XtVaGetValues(font,XmNuserData,&policenum,NULL); policenum--; if (( info_police=XLoadQueryFont(UxDisplay,StrFontTab[policenum]))== NULL) fprintf(stderr,"Unable to load font %s \n ",StrFontTab[policenum]); - police=XmFontListCreate(info_police,XmSTRING_DEFAULT_CHARSET); + entry = XmFontListEntryCreate(XmSTRING_DEFAULT_CHARSET,XmFONT_IS_FONT, + (XtPointer)info_police); + police=XmFontListAppendEntry(NULL,entry); XtVaSetValues(w,XmNfontList,police,NULL); /* XFreeFont(UxDisplay,info_police);*/ diff -Naur src.orig/pawlib/paw/cmotif/att_general.c src.new/pawlib/paw/cmotif/att_general.c --- src.orig/pawlib/paw/cmotif/att_general.c 1996-03-01 12:38:53.000000000 +0100 +++ src.new/pawlib/paw/cmotif/att_general.c 2011-07-26 15:28:18.000000000 +0200 @@ -454,7 +454,7 @@ { char ComStr[15]; - sprintf(ComStr,"IGSET MTYP %d",(int) client_data); + sprintf(ComStr,"IGSET MTYP %d",(long) client_data); execute_kuip_cmd(ComStr); if (appres.auto_refresh) { plot_current_histo(); @@ -471,8 +471,8 @@ { char ComStr[15]; - sprintf(ComStr,"IGSET LTYP %d",(int) client_data); - sprintf(ComStr,"SET DMOD %d",(int) client_data); + sprintf(ComStr,"IGSET LTYP %d",(long) client_data); + sprintf(ComStr,"SET DMOD %d",(long) client_data); execute_kuip_cmd(ComStr); if (appres.auto_refresh) { diff -Naur src.orig/pawlib/paw/cmotif/att_geometry.c src.new/pawlib/paw/cmotif/att_geometry.c --- src.orig/pawlib/paw/cmotif/att_geometry.c 1999-02-01 18:56:11.000000000 +0100 +++ src.new/pawlib/paw/cmotif/att_geometry.c 2011-07-26 15:28:18.000000000 +0200 @@ -2582,7 +2582,7 @@ char *ComStr; XtVaGetValues(CButton,XmNuserData,&data,NULL); - switch ((int) client_data ) { + switch ((long) client_data ) { case 1 : /**** value change in text */ Fvalue= (float)atof((char *)XmTextGetString(Text)); diff -Naur src.orig/pawlib/paw/cmotif/att_main.c src.new/pawlib/paw/cmotif/att_main.c --- src.orig/pawlib/paw/cmotif/att_main.c 1996-03-01 12:38:54.000000000 +0100 +++ src.new/pawlib/paw/cmotif/att_main.c 2011-07-26 15:28:18.000000000 +0200 @@ -139,7 +139,7 @@ { int i; XmAnyCallbackStruct cb; - int pos; + long pos; char tempstr[6]; int tempint; @@ -147,7 +147,7 @@ switch (*label) { case 'B' : - pos=(int) strchr(value,'.')-(int) value; + pos=strchr(value,'.')-value; strncpy(tempstr,value,pos); tempint=atoi(tempstr); if (tempint>=1000) { @@ -157,7 +157,7 @@ StateObject[i].ContourColor=tempint; StateObject[i].SurfaceColor=0; } - value=(char *)((int) value+pos+1); + value=(char *)(value+pos+1); strncpy(tempstr,value,2); StateObject[i].StatColor=tempstr[1]-'0'; StateObject[i].ZoneColor=tempstr[0]-'0'; @@ -324,12 +324,12 @@ static char *Clean(char *string) { char *Apos; - int pos; + long pos; char end[MAX_TITLE_SIZE]; Apos=strrchr(string,39); /* #27 == ' */ if (Apos) { - pos=((int)Apos - (int)string ); + pos=Apos - string; strcpy(end,++Apos); string[pos]='\0'; strcat(Clean(string),"@'"); @@ -692,7 +692,7 @@ XtVaGetValues(ObjectRow,XmNmenuHistory,&CurrentToggle,NULL); XtVaGetValues(CurrentToggle,XmNuserData,&CurrentState,NULL); LineWidth=CurrentState->LineWidth; - switch((int) client_data) { + switch((long) client_data) { case 1: /* UpArrow */ LineWidth++; break; diff -Naur src.orig/pawlib/paw/cmotif/attatch.c src.new/pawlib/paw/cmotif/attatch.c --- src.orig/pawlib/paw/cmotif/attatch.c 1996-03-01 12:38:54.000000000 +0100 +++ src.new/pawlib/paw/cmotif/attatch.c 2011-07-26 15:28:18.000000000 +0200 @@ -88,7 +88,7 @@ XtVaGetValues(ObjectRow,XmNmenuHistory,&CurrentObject,NULL); XtVaGetValues(CurrentObject,XmNuserData,&data,NULL); - switch ((int) client_data ) { + switch ((long) client_data ) { case 1 : /**** value change in text */ Svalue=(char *)XmTextGetString(IndexText); @@ -124,7 +124,7 @@ /* value change in scale */ XmScaleGetValue(w,&Ivalue); Svalue=(char *)XmTextGetString(IndexText); - Svalue[((int) client_data )-2]='0' + Ivalue; + Svalue[((long) client_data )-2]='0' + Ivalue; XmTextSetString(IndexText,Svalue); if (data->IndexHatch!=atoi(Svalue)) { data->IndexHatch=atoi(Svalue); diff -Naur src.orig/pawlib/paw/cmotif/axis.c src.new/pawlib/paw/cmotif/axis.c --- src.orig/pawlib/paw/cmotif/axis.c 1996-03-01 12:38:54.000000000 +0100 +++ src.new/pawlib/paw/cmotif/axis.c 2011-07-26 15:28:18.000000000 +0200 @@ -1336,7 +1336,7 @@ { XmAnyCallbackStruct cbs1; - switch ((int)type) { + switch ((long)type) { case 1: axis.xo = 1; break; @@ -1432,7 +1432,7 @@ unselect_list(); comstr = XtCalloc(MAX_CMD_LENGTH, 1); - switch ((int)type) { + switch ((long)type) { case 0: XmToggleButtonGadgetSetState(labeltoggleButtonGadget0,True,False); @@ -1680,7 +1680,7 @@ cbs1.reason = 0; cbs1.event = (XEvent *) NULL; - switch ((int) num) { + switch ((long) num) { case 1: if (XmToggleButtonGadgetGetState(labeltoggleButtonGadget1)) XtCallCallbacks(labeltoggleButtonGadget1,XmNvalueChangedCallback, diff -Naur src.orig/pawlib/paw/cmotif/histo.c src.new/pawlib/paw/cmotif/histo.c --- src.orig/pawlib/paw/cmotif/histo.c 1996-03-01 12:38:56.000000000 +0100 +++ src.new/pawlib/paw/cmotif/histo.c 2011-07-26 15:28:18.000000000 +0200 @@ -529,7 +529,7 @@ static void show_option(Widget w, int *type, XmToggleButtonCallbackStruct *cbs) { if (cbs->set) { - switch( (int)type ) { + switch( (long)type ) { case 1: if ( !widget_stat ) { widget_stat = create_statFormDialog(); @@ -651,7 +651,7 @@ return; } } else { - switch( (int)type ) { + switch( (long)type ) { case 1: if (widget_stat) { XtUnmanageChild(widget_stat); @@ -758,7 +758,7 @@ int x,y; - switch( (int)type ) { + switch( (long)type ) { case 1: sprintf (comstr,"Set STAT %d%d%d%d%d%d%d" ,XmToggleButtonGadgetGetState(AllchanToggleButtonGadget) @@ -996,7 +996,7 @@ static void coordinate_set(Widget w, int *type, XmAnyCallbackStruct *cbs) { - switch( (int)type ) { + switch( (long)type ) { case 1: sprintf (histogram.coordinate," "); break; @@ -1034,7 +1034,7 @@ int ilen1, ilen2; XmString xmstr; - switch( (int)type ) { + switch( (long)type ) { case 1: histogram.x1 = cbs->value; if( x_range_lock != 0 ) { @@ -1131,7 +1131,7 @@ if( histogram.y1 <= 0 ) histogram.y1 = 1; if( histogram.y2 <= 0 ) histogram.y2 = 1; - if ( (int)type < 3 ) { + if ( (long)type < 3 ) { XmScaleSetValue(X2Scale,histogram.x2); XmScaleSetValue(X1Scale,histogram.x1); if( x_range_lock == 0 || upd_nbin) { diff -Naur src.orig/pawlib/paw/cmotif/init.c src.new/pawlib/paw/cmotif/init.c --- src.orig/pawlib/paw/cmotif/init.c 1996-03-12 17:58:51.000000000 +0100 +++ src.new/pawlib/paw/cmotif/init.c 2011-07-26 15:28:18.000000000 +0200 @@ -286,7 +286,7 @@ static void destroy_browser(Widget w, int *which, XmAnyCallbackStruct *cbs) { MenuCbStruct *menu_item; - int i = (int) which; + long i = (long) which; browser[i].widget = NULL; if (browser[i].open_dialog) { @@ -308,7 +308,7 @@ ***********************************************************************/ static void destroy_graphics(Widget w, int *which, XmAnyCallbackStruct *cbs) { - int i = (int) which; + long i = (long) which; graphics[i].widget = NULL; } diff -Naur src.orig/pawlib/paw/code/pawfca.F src.new/pawlib/paw/code/pawfca.F --- src.orig/pawlib/paw/code/pawfca.F 1997-05-20 11:37:58.000000000 +0200 +++ src.new/pawlib/paw/code/pawfca.F 2011-07-26 15:28:18.000000000 +0200 @@ -29,6 +29,7 @@ C. * CHFUNC may be the name of a COMIS function * C. * or a file name. A file cannot contain one of * C. * the following characters: +*=-()<> * +C. * [n.b. patched to work around this. --Kevin McCarty] * C. * * C. ****************************************************************** #include "paw/pawcfu.inc" @@ -60,7 +61,11 @@ IF(NCH.LE.0)GO TO 99 IFILE=0 TFILE=' ' - IF(INDEX(CHFUNC,']').EQ.0.AND.INDEX(CHFUNC,':').EQ.0)THEN +* Added '/' as a character symbolizing a filename; otherwise Unix paths +* containing +, *, =, -, etc. return a bogus "Unknown routine" error +* (Fix by Kevin McCarty) + IF(INDEX(CHFUNC,']').EQ.0.AND.INDEX(CHFUNC,':').EQ.0.AND. + + INDEX(CHFUNC,'/').EQ.0)THEN IF(INDEX(CHFUNC,'+').NE.0.OR. + INDEX(CHFUNC,'*').NE.0.OR. + INDEX(CHFUNC,'=').NE.0.OR. diff -Naur src.orig/pawlib/paw/code/pawint3.F src.new/pawlib/paw/code/pawint3.F --- src.orig/pawlib/paw/code/pawint3.F 1999-05-20 09:37:18.000000000 +0200 +++ src.new/pawlib/paw/code/pawint3.F 2011-07-26 15:28:18.000000000 +0200 @@ -140,7 +140,7 @@ CHUTIT = ' ' * IF (IPIAF.EQ.0) THEN - CALL KUOPEN(10,'PAW.METAFILE','UNKNOWN',ISTAT) + CALL KUOPEN(10,'paw.metafile','UNKNOWN',ISTAT) #if (defined(CERNLIB_IBM))&&(!defined(CERNLIB_IBMMVS)) CALL HERMES(19) CALL VMCMS('FILEDEF 19 DISK GKSERROR OUTPUT A',IRET) diff -Naur src.orig/pawlib/paw/cpaw/Imakefile src.new/pawlib/paw/cpaw/Imakefile --- src.orig/pawlib/paw/cpaw/Imakefile 1999-06-28 17:28:22.000000000 +0200 +++ src.new/pawlib/paw/cpaw/Imakefile 2011-07-26 15:28:18.000000000 +0200 @@ -15,8 +15,12 @@ #endif #if defined(CERNLIB_LINUX) +#if defined(CERNLIB_GFORTRAN) +EXTRA_DEFINES := $(EXTRA_DEFINES) -DgFortran +#else EXTRA_DEFINES := $(EXTRA_DEFINES) -Df2cFortran #endif +#endif #if defined(CERNLIB_BUGREPORT) SRCS_C := $(SRCS_C) bugrep.c diff -Naur src.orig/pawlib/paw/demo/higz_windows.dat src.new/pawlib/paw/demo/higz_windows.dat --- src.orig/pawlib/paw/demo/higz_windows.dat 2005-03-24 17:25:17.000000000 +0100 +++ src.new/pawlib/paw/demo/higz_windows.dat 2011-07-26 15:28:18.000000000 +0200 @@ -1,10 +1,10 @@ - 0000 0000 0600 0600 0.0 PAW tests - 0615 0000 0400 0400 0.0 PAW tests - 0000 0000 0600 0600 0.0 PAW tests - 0000 0000 0600 0600 0.0 PAW tests - 0000 0000 0600 0600 0.0 PAW tests - 0000 0000 0600 0600 0.0 PAW tests - 0000 0000 0600 0600 0.0 PAW tests - 0000 0000 0600 0600 0.0 PAW tests - 0000 0000 0600 0600 0.0 PAW tests - 0000 0000 0600 0600 0.0 PAW tests + 0000 0000 0600 0600 :0.0 PAW tests + 0615 0000 0400 0400 :0.0 PAW tests + 0000 0000 0600 0600 :0.0 PAW tests + 0000 0000 0600 0600 :0.0 PAW tests + 0000 0000 0600 0600 :0.0 PAW tests + 0000 0000 0600 0600 :0.0 PAW tests + 0000 0000 0600 0600 :0.0 PAW tests + 0000 0000 0600 0600 :0.0 PAW tests + 0000 0000 0600 0600 :0.0 PAW tests + 0000 0000 0600 0600 :0.0 PAW tests diff -Naur src.orig/pawlib/paw/mlpfit/Imakefile src.new/pawlib/paw/mlpfit/Imakefile --- src.orig/pawlib/paw/mlpfit/Imakefile 2000-04-28 16:12:13.000000000 +0200 +++ src.new/pawlib/paw/mlpfit/Imakefile 2011-07-26 15:28:18.000000000 +0200 @@ -9,8 +9,12 @@ #endif #if defined(CERNLIB_LINUX) +#if defined(CERNLIB_GFORTRAN) +EXTRA_DEFINES := $(EXTRA_DEFINES) -DgFortran +#else EXTRA_DEFINES := $(EXTRA_DEFINES) -Df2cFortran #endif +#endif #ifndef CERNLIB_VAXVMS EXTRA_INCLUDES := $(EXTRA_INCLUDES) -I$(VPATH) diff -Naur src.orig/pawlib/paw/ntuple/Imakefile src.new/pawlib/paw/ntuple/Imakefile --- src.orig/pawlib/paw/ntuple/Imakefile 1999-09-14 11:20:08.000000000 +0200 +++ src.new/pawlib/paw/ntuple/Imakefile 2011-07-26 15:28:18.000000000 +0200 @@ -16,10 +16,18 @@ EXTRA_DEFINES := $(EXTRA_DEFINES) -Dextname #endif -#if defined(CERNLIB_LINUX) +#if defined(CERNLIB_LINUX) && !defined(CERNLIB_QMLXIA64) EXTRA_DEFINES := $(EXTRA_DEFINES) -Df2cFortran #endif +#if defined(CERNLIB_QMLXIA64) +#if defined(CERNLIB_GFORTRAN) +EXTRA_DEFINES := $(EXTRA_DEFINES) -DgFortran +#else +EXTRA_DEFINES := $(EXTRA_DEFINES) -Df2cFortran +#endif +#endif + #if defined(CERNLIB_HPUX) CCOPTIONS += -Wp,-H10000 #endif diff -Naur src.orig/pawlib/paw/ntuple/c_hcntpar.h src.new/pawlib/paw/ntuple/c_hcntpar.h --- src.orig/pawlib/paw/ntuple/c_hcntpar.h 1996-04-23 20:37:45.000000000 +0200 +++ src.new/pawlib/paw/ntuple/c_hcntpar.h 2011-07-26 15:28:18.000000000 +0200 @@ -47,7 +47,7 @@ #define ZID 12 #define ZITMP 10 #define ZNTMP 6 -#define ZNTMP1 3 +#define ZNTMP1 4 #define ZLINK 6 #endif /* CERN_C_HCNTPAR */ diff -Naur src.orig/pawlib/paw/ntuple/cern_types.h src.new/pawlib/paw/ntuple/cern_types.h --- src.orig/pawlib/paw/ntuple/cern_types.h 1996-04-23 20:37:54.000000000 +0200 +++ src.new/pawlib/paw/ntuple/cern_types.h 2011-07-26 15:28:18.000000000 +0200 @@ -36,26 +36,38 @@ typedef unsigned int UInt32; +#ifndef UINT32_MAX #define UINT32_MAX UINT_MAX +#endif /* typedef unsigned long long UInt64; */ typedef unsigned long UInt64; +#ifndef UINT64_MAX #define UINT64_MAX ULONG_MAX +#endif typedef int Int32; +#ifndef INT32_MAX #define INT32_MAX INT_MAX +#endif +#ifndef INT32_MIN #define INT32_MIN INT_MIN +#endif /* typedef long long Int64; */ typedef long Int64; +#ifndef INT64_MAX #define INT64_MAX LONG_MAX +#endif +#ifndef INT64_MIN #define INT64_MIN LONG_MIN +#endif typedef float Float32; diff -Naur src.orig/pawlib/paw/ntuple/qp_execute.c src.new/pawlib/paw/ntuple/qp_execute.c --- src.orig/pawlib/paw/ntuple/qp_execute.c 2001-09-18 15:41:35.000000000 +0200 +++ src.new/pawlib/paw/ntuple/qp_execute.c 2011-07-26 15:28:18.000000000 +0200 @@ -184,12 +184,19 @@ /* all definitions for the stack */ #undef INIT_STACK_TO_NULL /* are kept together in this file */ +#if defined(CERNLIB_QMLXIA64) +# undef HBALLOC +# undef HGNTBF +# define HBALLOC HBALLOC64 +# define HGNTBF HGNTBF64 +#endif + /* extern functions */ extern void qp_exec_evt( QueryExe *, long, long, QPCmd *, int *); typedef char tName[MAX_NAME_LEN+1]; tName *namelist; -int *offsetlist; +long *offsetlist; int *indexlist; @@ -245,7 +252,23 @@ char ntname[MAX_NAME_LEN+6]; int i, ierr, indx, itype, isize, ielem; Int32 * addr; - int ibase[1], ioff, nuse; + + /* LP64 compatibility: + - use static for ibase (at least) because its address is stored + as Int32 in structure CWNBlock + static takes ibase from the stack and puts it the code area. + - use type long for ioff and offsetlist[i] + (for 32 bit architectures type long is 4 Bytes as it is used + also in packlib/hbook/chbook/halloc.c in hballo1 !) + The x86-64 ABI has the code area in the 32 bit address space + but addresses to the stack and to dynamically allocated areas + may and will be above the 32 bit address space (below 0x80000000000). + See also: http://www.x86-64.org/documentation/abi-0.96.pdf + (H. Vogt, Oct. 2005) */ + + static int ibase[1]; + long ioff; + int nuse; int id = qe->id; char * path = qe->path; char * title; @@ -286,7 +309,11 @@ CWNBlock = (RefCWN *) calloc( CWNCount + 1, sizeof( RefCWN ) ); qp_assert( MAX_NAME_LEN == 32 ); /* see hbook.h (HGNTBF) */ namelist = (tName *) calloc( CWNCount + 1, sizeof(tName) ); - offsetlist = (int *) calloc( CWNCount + 1, sizeof(int) ); + + /* offsetlist should be of type long (see above) (H. Vogt, Oct. 2005) */ + + offsetlist = (long *) calloc( CWNCount + 1, sizeof(long) ); + indexlist = (int *) calloc( CWNCount + 1, sizeof(int) ); qp_assert( CWNBlock != 0 && @@ -871,8 +898,21 @@ if ( cmd->u.scan.pawpp ) { char buf[33]; + /* for LP64 ABI matlab and matrow are 64 bit pointer, type is void* + but PCADDR.jmlab and PCADDR.jmrow are of type int + see: c_pcaddr.h and qp_command.h + it is related to CWNBlock -> see above (H. Vogt)*/ + +#if defined(CERNLIB_QMLXIA64) + unsigned long long int myjmlab, myjmrow; + myjmlab = PCADDR.jmlab; + myjmrow = PCADDR.jmrow; + c->matlab = (TableCallBack) myjmlab; + c->matrow = (TableCallBack) myjmrow; +#else c->matlab = (TableCallBack) PCADDR.jmlab; c->matrow = (TableCallBack) PCADDR.jmrow; +#endif qp_assert( qe->nexpr <= MAX_OUTSTR ); @@ -1791,6 +1831,31 @@ PAWIDN.idnevt = ievt; PAWCHN.ichevt = ievt_chain; +#if defined(CERNLIB_QMLXIA64) +/* avoid addresses from calloc which are above 32 bits here */ + static Int32 helpp[8]; + int i; + if ( npar < 9 ) { + for ( i=0; i +#include #include "qp_report.h" #include "qp_vvec.h" diff -Naur src.orig/pawlib/paw/paw/pawsiz.inc src.new/pawlib/paw/paw/pawsiz.inc --- src.orig/pawlib/paw/paw/pawsiz.inc 1996-03-01 17:50:06.000000000 +0100 +++ src.new/pawlib/paw/paw/pawsiz.inc 2011-08-02 12:14:03.000000000 +0200 @@ -28,5 +28,9 @@ #include "paw/pawsmall.inc" #endif +C Include this file so that MDPOOL/IQ is present in pawX11 and +C paw++ dynamically linked executables. +C -- Kevin McCarty, for Debian, 1 Nov 2003 +#include "comis/mdpool.inc" #endif diff -Naur src.orig/pawlib/paw/programs/Imakefile src.new/pawlib/paw/programs/Imakefile --- src.orig/pawlib/paw/programs/Imakefile 2006-09-04 14:33:00.000000000 +0200 +++ src.new/pawlib/paw/programs/Imakefile 2011-07-26 15:28:18.000000000 +0200 @@ -20,7 +20,7 @@ InstallScript(paw,$(CERN_BINDIR)) #if defined (CERNLIB_UNIX) && !defined(CERNLIB_WINNT) -CernlibFortranProgramTarget(pawX11,0pamain.o,NullParameter,NullParameter,pawlib graflib/X11 packlib mathlib kernlib) +CernlibFortranProgramTarget(pawX11,0pamain.o,NullParameter,NullParameter,pawlib graflib/X11 packlib mathlib) InstallProgram(pawX11,$(CERN_BINDIR)) @@ -34,7 +34,7 @@ /* This is a gmake ifeq, not a Imake/cpp #if... ! */ ifeq ($(DO_PAW_PP),YES) -CernlibFortranProgramTarget(paw++,0pamainm.o,NullParameter,NullParameter,pawlib graflib/Motif packlib mathlib kernlib) +CernlibFortranProgramTarget(paw++,0pamainm.o,NullParameter,NullParameter,pawlib graflib/Motif packlib mathlib) InstallProgram(paw++,$(CERN_BINDIR)) diff -Naur src.orig/pawlib/paw/xbae/caption.c src.new/pawlib/paw/xbae/caption.c --- src.orig/pawlib/paw/xbae/caption.c 1996-03-01 12:39:36.000000000 +0100 +++ src.new/pawlib/paw/xbae/caption.c 2011-07-26 15:28:18.000000000 +0200 @@ -244,7 +244,7 @@ * it will use our name as it's label. */ (void) - XtVaCreateManagedWidget(XtName(new), + XtVaCreateManagedWidget(XtName((Widget)new), xmLabelWidgetClass, (Widget)new, XmNbackground, new->core.background_pixel, XmNforeground, new->manager.foreground, diff -Naur src.orig/pawlib/paw/xbae/clip.c src.new/pawlib/paw/xbae/clip.c --- src.orig/pawlib/paw/xbae/clip.c 1996-03-01 12:39:36.000000000 +0100 +++ src.new/pawlib/paw/xbae/clip.c 2011-07-26 15:28:19.000000000 +0200 @@ -190,8 +190,8 @@ * XXX It might be more efficient to fake up an Expose event * and call Redisplay directly */ - if (XtIsRealized(cw)) - XClearArea(XtDisplay(cw), XtWindow(cw), + if (XtIsRealized((Widget)cw)) + XClearArea(XtDisplay((Widget)cw), XtWindow((Widget)cw), 0, 0, 0 /*Full Width*/, 0 /*Full Height*/, True); diff -Naur src.orig/pawlib/paw/xbae/matrix.c src.new/pawlib/paw/xbae/matrix.c --- src.orig/pawlib/paw/xbae/matrix.c 1998-09-02 17:23:57.000000000 +0200 +++ src.new/pawlib/paw/xbae/matrix.c 2011-07-26 15:28:19.000000000 +0200 @@ -67,7 +67,10 @@ #endif /* this BSDism is used to often to replace it in the code */ +/* but avoid warning of redefinition for linux OS */ +#ifndef linux #define bcopy(src,dst,n) memmove(dst,src,n) +#endif /* * Translations for Matrix (these will also be used by the Clip child). @@ -3467,7 +3470,7 @@ */ VERT_ORIGIN(mw) = call_data->value; - if (!XtIsRealized(mw)) + if (!XtIsRealized((Widget)mw)) return; /* @@ -3646,7 +3649,7 @@ */ HORIZ_ORIGIN(mw) = call_data->value; - if (!XtIsRealized(mw)) + if (!XtIsRealized((Widget)mw)) return; /* @@ -6162,7 +6165,7 @@ (*((XbaeMatrixWidgetClass) XtClass(mw))->matrix_class.cancel_edit) (mw, True); - if (XtIsRealized(mw)) { + if (XtIsRealized((Widget)mw)) { /* * Generate expose events on Matrix and Clip to force the * new rows to be drawn. @@ -6254,7 +6257,7 @@ (*((XbaeMatrixWidgetClass) XtClass(mw))->matrix_class.cancel_edit) (mw, True); - if (XtIsRealized(mw)) { + if (XtIsRealized((Widget)mw)) { /* * Generate expose events on Matrix and Clip to force the * rows to be redrawn. @@ -6349,7 +6352,7 @@ (*((XbaeMatrixWidgetClass) XtClass(mw))->matrix_class.cancel_edit) (mw, True); - if (XtIsRealized(mw)) { + if (XtIsRealized((Widget)mw)) { /* * Generate expose events on Matrix and Clip to force the * new columns to be drawn. @@ -6446,7 +6449,7 @@ (*((XbaeMatrixWidgetClass) XtClass(mw))->matrix_class.cancel_edit) (mw, True); - if (XtIsRealized(mw)) { + if (XtIsRealized((Widget)mw)) { /* * Generate expose events on Matrix and Clip to force the * columns to be redrawn. @@ -6528,7 +6531,7 @@ for (j = 0; j < mw->matrix.columns; j++) mw->matrix.cell_background[i + position][j] = colors[i]; - if (XtIsRealized(mw)) { + if (XtIsRealized((Widget)mw)) { /* * Redraw all the visible non-fixed cells. We don't need to clear first * since only the color changed. @@ -6626,7 +6629,7 @@ for (j = 0; j < num_colors; j++) mw->matrix.cell_background[i][j + position] = colors[j]; - if (XtIsRealized(mw)) { + if (XtIsRealized((Widget)mw)) { /* * Redraw all the visible non-fixed cells. We don't need to clear first * since only the color changed. @@ -6716,7 +6719,7 @@ */ mw->matrix.cell_background[row][column] = color; - if (XtIsRealized(mw)) { + if (XtIsRealized((Widget)mw)) { /* * Redraw the cell if it is visible */ diff -Naur src.orig/scripts/cernlib src.new/scripts/cernlib --- src.orig/scripts/cernlib 2006-12-07 14:26:55.000000000 +0100 +++ src.new/scripts/cernlib 2011-07-26 15:28:19.000000000 +0200 @@ -31,7 +31,7 @@ - CERNLIB="" + CERNLIB="-L${CERN_ROOT}/lib" liblist=`echo $* | sed -e 's/,/ /g'` for lib in $liblist @@ -45,16 +45,16 @@ set - $val [ $# -eq 2 -a $1 != "graflib" ] && lver=$2 dir=$CERN/$lver/lib - ln=$1 + ln=-l$1 if [ $1 = "kernlib" -o $1 = "packlib" ] ; then _p=1 fi - [ $1 = "genlib" ] && ln="mathlib.a $dir/libphtools" - [ $1 = "bvsl" ] && ln="mathlib" - [ $1 = "mpalib" ] && ln="mathlib" - [ $1 = "lapack" ] && ln="lapack3.a $dir/libblas" - [ $1 = "pawlib" ] && ln="pawlib.a $dir/liblapack3.a $dir/libblas" - [ $1 = "pythia" ] && ln="jetset" + [ $1 = "genlib" ] && ln="-lmathlib -lphtools" + [ $1 = "bvsl" ] && ln="-lmathlib" + [ $1 = "mpalib" ] && ln="-lmathlib" + [ $1 = "lapack" ] && ln="-lLAPACK -lBLAS -L/System/Library/Frameworks/Accelerate.framework/Frameworks/vecLib.framework/Versions/A/" + [ $1 = "pawlib" ] && ln="-lpawlib -lLAPACK -lBLAS -L/System/Library/Frameworks/Accelerate.framework/Frameworks/vecLib.framework/Versions/A/" + [ $1 = "pythia" ] && ln="-ljetset" if [ $1 = "GKS" -o $1 = "gks" ] ; then drv="X11" ; glib="$1" ; dir="$CERN/gks/$lver/lib" fi @@ -67,11 +67,11 @@ fi [ $# -eq 3 ] && dir="$CERN/$3/lib" [ $drv = "Motif" ] && drv="X11" - ln="$ln.a $dir/libgraf$drv" + ln="$ln -lgraf$drv" fi - CERNLIB="$CERNLIB $dir/lib$ln.a" + CERNLIB="$CERNLIB $ln -lmathlib" done - [ $_p -eq 0 ] && CERNLIB="$CERNLIB $CERN/$gver/lib/libpacklib.a" + [ $_p -eq 0 ] && CERNLIB="$CERNLIB -lpacklib -lmathlib" # get system name [ -d /NextAdmin ] && Msys="NeXT" || Msys=`uname -s`