rpms/cernlib/devel 211-support-amd64-and-itanium.dpatch, NONE, 1.1 cernlib-119-fix-compiler-warnings.dpatch, NONE, 1.1 cernlib-120-fix-gets-usage-in-kuipc.dpatch, NONE, 1.1 cernlib-121-fix-mathlib-test-case-c209m.dpatch, NONE, 1.1 cernlib-211-support-digital-alpha.dpatch, NONE, 1.1 cernlib-321-support-gfortran.dpatch, NONE, 1.1 cernlib_2005.dfsg-3.diff, NONE, 1.1 paw-119-fix-compiler-warnings.dpatch, NONE, 1.1 paw-320-support-ifort-and-gfortran.dpatch, NONE, 1.1 paw_2.14.04-3.diff, NONE, 1.1 cernlib-115-rsrtnt64-goto-outer-block.dpatch, 1.1, 1.2 cernlib.spec, 1.36, 1.37 211-fix-comis-on-amd64.dpatch, 1.2, NONE cernlib-gfortran.diff, 1.2, NONE cernlib-v107z0_X_before_string.diff, 1.1, NONE cernlib_2005.dfsg-1.diff, 1.1, NONE paw-211-fix-comis-on-ia64-alpha.dpatch, 1.1, NONE paw_2.14.04-2.diff, 1.1, NONE

Patrice Dumas (pertusus) fedora-extras-commits at redhat.com
Mon Sep 11 22:32:35 UTC 2006


Author: pertusus

Update of /cvs/extras/rpms/cernlib/devel
In directory cvs-int.fedora.redhat.com:/tmp/cvs-serv23693

Modified Files:
	cernlib-115-rsrtnt64-goto-outer-block.dpatch cernlib.spec 
Added Files:
	211-support-amd64-and-itanium.dpatch 
	cernlib-119-fix-compiler-warnings.dpatch 
	cernlib-120-fix-gets-usage-in-kuipc.dpatch 
	cernlib-121-fix-mathlib-test-case-c209m.dpatch 
	cernlib-211-support-digital-alpha.dpatch 
	cernlib-321-support-gfortran.dpatch cernlib_2005.dfsg-3.diff 
	paw-119-fix-compiler-warnings.dpatch 
	paw-320-support-ifort-and-gfortran.dpatch paw_2.14.04-3.diff 
Removed Files:
	211-fix-comis-on-amd64.dpatch cernlib-gfortran.diff 
	cernlib-v107z0_X_before_string.diff cernlib_2005.dfsg-1.diff 
	paw-211-fix-comis-on-ia64-alpha.dpatch paw_2.14.04-2.diff 
Log Message:
* Mon Sep 11 2006 Patrice Dumas <pertusus at free.fr> 2005-26
- update to newer debian patchsets (paw and cernlib)
- remove gfortran related patches integrated in the debian 
  patchsets



--- NEW FILE 211-support-amd64-and-itanium.dpatch ---
#! /bin/sh /usr/share/dpatch/dpatch-run
## 211-support-amd64-and-itanium.dpatch by  <kmccarty at debian.org>
##
## All lines beginning with `## DP:' are a description of the patch.
## DP: Large patch from Harald Vogt <hvogt at ifh.de> to make Cernlib work better
## DP: (at least when statically linked) on 64-bit architectures.
## DP: Slightly modified in an attempt to keep ABI compatibility of the
## DP: dynamic libraries; not that it matters much as they don't work well
## DP: when dynamically linked on 64-bit anyway.

@DPATCH@
diff -urNad cernlib-2005.dfsg~/src/cfortran/hbook.h cernlib-2005.dfsg/src/cfortran/hbook.h
--- cernlib-2005.dfsg~/src/cfortran/hbook.h	1999-11-15 12:01:12.000000000 -0500
+++ cernlib-2005.dfsg/src/cfortran/hbook.h	2006-09-06 18:40:59.438010227 -0400
@@ -489,6 +489,10 @@
 #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)
 
+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)
 
@@ -508,6 +512,13 @@
 #define HGNTBF(IDN,VAR,IOFFST,NVAR,IDNEVT,IERROR)\
         CCALLSFSUB6(HGNTBF,hgntbf,INT,ZTRINGV,INTV,INT,INT,PINT,IDN,VAR,IOFFST,NVAR,IDNEVT,IERROR)
 
+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 -urNad cernlib-2005.dfsg~/src/packlib/cspack/cspack/hcntpar.inc cernlib-2005.dfsg/src/packlib/cspack/cspack/hcntpar.inc
--- cernlib-2005.dfsg~/src/packlib/cspack/cspack/hcntpar.inc	1996-03-08 10:44:16.000000000 -0500
+++ cernlib-2005.dfsg/src/packlib/cspack/cspack/hcntpar.inc	2006-09-06 18:40:59.438010227 -0400
@@ -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=5,   ZNTMP1=4,  ZLINK=6)
 *
 
 #endif
diff -urNad cernlib-2005.dfsg~/src/packlib/cspack/sysreq/netreq.c cernlib-2005.dfsg/src/packlib/cspack/sysreq/netreq.c
--- cernlib-2005.dfsg~/src/packlib/cspack/sysreq/netreq.c	1996-03-08 10:44:25.000000000 -0500
+++ cernlib-2005.dfsg/src/packlib/cspack/sysreq/netreq.c	2006-09-06 18:41:25.642435841 -0400
@@ -340,7 +340,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 -urNad cernlib-2005.dfsg~/src/packlib/hbook/hbook/hcntpar.inc cernlib-2005.dfsg/src/packlib/hbook/hbook/hcntpar.inc
--- cernlib-2005.dfsg~/src/packlib/hbook/hbook/hcntpar.inc	1996-01-16 12:07:52.000000000 -0500
+++ cernlib-2005.dfsg/src/packlib/hbook/hbook/hcntpar.inc	2006-09-06 18:40:59.439010014 -0400
@@ -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 -urNad cernlib-2005.dfsg~/src/packlib/hbook/hntup/hballoc.F cernlib-2005.dfsg/src/packlib/hbook/hntup/hballoc.F
--- cernlib-2005.dfsg~/src/packlib/hbook/hntup/hballoc.F	1996-01-16 12:07:56.000000000 -0500
+++ cernlib-2005.dfsg/src/packlib/hbook/hntup/hballoc.F	2006-09-06 18:40:59.439010014 -0400
@@ -42,3 +42,26 @@
       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 -urNad cernlib-2005.dfsg~/src/packlib/hbook/hntup/hbnt.F cernlib-2005.dfsg/src/packlib/hbook/hntup/hbnt.F
--- cernlib-2005.dfsg~/src/packlib/hbook/hntup/hbnt.F	1996-01-16 12:07:56.000000000 -0500
+++ cernlib-2005.dfsg/src/packlib/hbook/hntup/hbnt.F	2006-09-06 18:40:59.439010014 -0400
@@ -269,11 +269,13 @@
  ************************************************************************
  *      *         *                                                     *
  *   1  *         *     Number of variables to be read out              *
- *      *         *     *** For every variable 3 words (ZNTMP1) ***     *
+ *      *         *     *** For every variable 4 words (ZNTMP1) ***     *
  *   2  *         *     Index of variable in LNAME bank                 *
  *   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 -urNad cernlib-2005.dfsg~/src/packlib/hbook/hntup/hgnt2.F cernlib-2005.dfsg/src/packlib/hbook/hntup/hgnt2.F
--- cernlib-2005.dfsg~/src/packlib/hbook/hntup/hgnt2.F	1999-03-05 10:42:35.000000000 -0500
+++ cernlib-2005.dfsg/src/packlib/hbook/hntup/hgnt2.F	2006-09-06 18:40:59.439010014 -0400
@@ -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,10 +458,15 @@
          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
          ENDIF
diff -urNad cernlib-2005.dfsg~/src/packlib/hbook/hntup/hgntbf.F cernlib-2005.dfsg/src/packlib/hbook/hntup/hgntbf.F
--- cernlib-2005.dfsg~/src/packlib/hbook/hntup/hgntbf.F	1996-01-16 12:07:57.000000000 -0500
+++ cernlib-2005.dfsg/src/packlib/hbook/hntup/hgntbf.F	2006-09-06 18:40:59.440009801 -0400
@@ -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 -urNad cernlib-2005.dfsg~/src/packlib/hbook/hntup/hgntf.F cernlib-2005.dfsg/src/packlib/hbook/hntup/hgntf.F
--- cernlib-2005.dfsg~/src/packlib/hbook/hntup/hgntf.F	1999-03-05 10:42:35.000000000 -0500
+++ cernlib-2005.dfsg/src/packlib/hbook/hntup/hgntf.F	2006-09-06 18:40:59.440009801 -0400
@@ -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)
[...1720 lines suppressed...]
 
-   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 -urNad paw-2.14.04~/src/pawlib/paw/cmotif/init.c paw-2.14.04/src/pawlib/paw/cmotif/init.c
--- paw-2.14.04~/src/pawlib/paw/cmotif/init.c	1996-03-12 11:58:51.000000000 -0500
+++ paw-2.14.04/src/pawlib/paw/cmotif/init.c	2006-09-07 19:06:59.187798088 -0400
@@ -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 -urNad paw-2.14.04~/src/pawlib/paw/ntuple/c_hcntpar.h paw-2.14.04/src/pawlib/paw/ntuple/c_hcntpar.h
--- paw-2.14.04~/src/pawlib/paw/ntuple/c_hcntpar.h	1996-04-23 14:37:45.000000000 -0400
+++ paw-2.14.04/src/pawlib/paw/ntuple/c_hcntpar.h	2006-09-07 19:06:59.187798088 -0400
@@ -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 -urNad paw-2.14.04~/src/pawlib/paw/ntuple/qp_execute.c paw-2.14.04/src/pawlib/paw/ntuple/qp_execute.c
--- paw-2.14.04~/src/pawlib/paw/ntuple/qp_execute.c	2001-09-18 09:41:35.000000000 -0400
+++ paw-2.14.04/src/pawlib/paw/ntuple/qp_execute.c	2006-09-07 19:06:59.188797875 -0400
@@ -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 &&
@@ -381,6 +408,7 @@
 						offsetlist[nt_load_cnt]=
 						CWNBlock[index].p -
 						PAWC.iq_eqv;
+
 						strncpy(
 						namelist[nt_load_cnt],
 						vi->name,
@@ -871,8 +899,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 +1832,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<npar; i++ ) helpp[i] = stack[frame[framep-i]];
+	}
+	switch ( npar ) {
+	case 8: p8 = &helpp[7];
+	case 7: p7 = &helpp[6];
+	case 6: p6 = &helpp[5];
+	case 5: p5 = &helpp[4];
+	case 4: p4 = &helpp[3];
+	case 3: p3 = &helpp[2];
+	case 2: p2 = &helpp[1];
+	case 1: p1 = &helpp[0];
+	case 0: 
+		break;
+	default:
+		sf_report( "exec_comis: To many arguments (%d)\n", npar );
+		*errp = R_INTERNAL_ERROR;
+		return FALSE;
+		break;
+	}
+#else
 	switch ( npar ) {
 	case 8: p8 = &stack[frame[framep-7]];
 	case 7: p7 = &stack[frame[framep-6]];
@@ -1808,6 +1874,7 @@
 		return FALSE;
 		break;
 	}
+#endif
 
 	switch ( fc ) {
 
diff -urNad paw-2.14.04~/src/pawlib/paw/ntuple/qp_hbook_if.c paw-2.14.04/src/pawlib/paw/ntuple/qp_hbook_if.c
--- paw-2.14.04~/src/pawlib/paw/ntuple/qp_hbook_if.c	1999-07-05 11:43:35.000000000 -0400
+++ paw-2.14.04/src/pawlib/paw/ntuple/qp_hbook_if.c	2006-09-07 19:06:59.188797875 -0400
@@ -149,7 +149,15 @@
 	int	idn, idtmp;
 	int	icycle;
 	int	ierr;
-	int     izero = 0;
+
+	/* LP64 compatibility:
+	   use static for izero because its address is fetched by hbname_
+	   using locb and locb expects 32 bit addresses only.
+	   static takes izero from the stack and puts it the code area
+	   and the LP64 ABI has the code area in the 32 bit address space
+	   but the stack starts downward from 0x80000000000 (H. Vogt) */
+
+	static int     izero = 0;
 
 	/* split string into  path, id and cycle */
 


--- NEW FILE cernlib-119-fix-compiler-warnings.dpatch ---
#! /bin/sh /usr/share/dpatch/dpatch-run
## 119-fix-compiler-warnings.dpatch by  <kmccarty at debian.org>
##
## All lines beginning with `## DP:' are a description of the patch.
## DP: Fix numerous minor compiler warnings.  Patch from Harald Vogt,
## DP: 2006-07-20.

@DPATCH@
diff -urNad cernlib-2005.dfsg~/src/graflib/dzdoc/dzdkern/dzdcod.F cernlib-2005.dfsg/src/graflib/dzdoc/dzdkern/dzdcod.F
--- cernlib-2005.dfsg~/src/graflib/dzdoc/dzdkern/dzdcod.F	1996-03-04 11:12:56.000000000 -0500
+++ cernlib-2005.dfsg/src/graflib/dzdoc/dzdkern/dzdcod.F	2006-09-06 19:53:39.375157506 -0400
@@ -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 -urNad cernlib-2005.dfsg~/src/graflib/higz/higzcc/gifencode.c cernlib-2005.dfsg/src/graflib/higz/higzcc/gifencode.c
--- cernlib-2005.dfsg~/src/graflib/higz/higzcc/gifencode.c	1996-02-14 08:10:25.000000000 -0500
+++ cernlib-2005.dfsg/src/graflib/higz/higzcc/gifencode.c	2006-09-06 19:53:39.376157293 -0400
@@ -12,6 +12,7 @@
 /*-- Author :    E.Chernyaev   19/01/94*/
 #include <stdio.h>
 #include <stdlib.h>
+#include <string.h>
 
 #ifdef __STDC__
 #define ARGS(alist) alist
diff -urNad cernlib-2005.dfsg~/src/graflib/higz/higzcc/imgpickpalette.c cernlib-2005.dfsg/src/graflib/higz/higzcc/imgpickpalette.c
--- cernlib-2005.dfsg~/src/graflib/higz/higzcc/imgpickpalette.c	1998-11-13 08:19:53.000000000 -0500
+++ cernlib-2005.dfsg/src/graflib/higz/higzcc/imgpickpalette.c	2006-09-06 19:53:39.376157293 -0400
@@ -30,6 +30,7 @@
 #if defined(CERNLIB_GIF)
 #include <X11/Xlib.h>
 #include <stdio.h>
+#include <stdlib.h>
 
 void CollectImageColors(unsigned long, unsigned long **, int *, int *);
 int FindColor(unsigned long, unsigned long *, int);
diff -urNad cernlib-2005.dfsg~/src/graflib/higz/higzcc/rotated.c cernlib-2005.dfsg/src/graflib/higz/higzcc/rotated.c
--- cernlib-2005.dfsg~/src/graflib/higz/higzcc/rotated.c	1998-01-30 10:22:04.000000000 -0500
+++ cernlib-2005.dfsg/src/graflib/higz/higzcc/rotated.c	2006-09-06 19:53:39.377157080 -0400
@@ -35,7 +35,9 @@
 #include <X11/Xutil.h>
 #include <X11/Xatom.h>
 #include <stdio.h>
+#include <stdlib.h>
 #include <math.h>
+#include <string.h>
 
 /* ************************************************************************ *
  *
@@ -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, 0, NULL);
     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, 0, NULL);
         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, 0, NULL);
                 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, 0, NULL);
     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, 0, NULL);
       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, 0, NULL);
     XSetBackground(dpy, font_gc, 0);
     XSetFont(dpy, font_gc, font->fid);
 
diff -urNad cernlib-2005.dfsg~/src/graflib/higz/higzcc/x11int.c cernlib-2005.dfsg/src/graflib/higz/higzcc/x11int.c
--- cernlib-2005.dfsg~/src/graflib/higz/higzcc/x11int.c	2000-07-08 02:19:30.000000000 -0400
+++ cernlib-2005.dfsg/src/graflib/higz/higzcc/x11int.c	2006-09-06 19:53:39.378156868 -0400
@@ -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, 0);
     }
   }
 
 #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 -urNad cernlib-2005.dfsg~/src/packlib/cspack/sysreq/log.c cernlib-2005.dfsg/src/packlib/cspack/sysreq/log.c
--- cernlib-2005.dfsg~/src/packlib/cspack/sysreq/log.c	2003-09-02 08:47:16.000000000 -0400
+++ cernlib-2005.dfsg/src/packlib/cspack/sysreq/log.c	2006-09-06 19:53:39.378156868 -0400
@@ -28,6 +28,7 @@
 #include <stdio.h>              /* standard input/output definitions    */
 #if !defined(vms)
 #include <fcntl.h>              /* file control                         */
+#include <string.h>             /* string manipulation functions        */
 #else
 #include <stdlib.h>             /* general utility definitions          */
 #include <unixio.h>             /* VMS's unix-emulation I/O             */
diff -urNad cernlib-2005.dfsg~/src/packlib/cspack/sysreq/netreq.c cernlib-2005.dfsg/src/packlib/cspack/sysreq/netreq.c
--- cernlib-2005.dfsg~/src/packlib/cspack/sysreq/netreq.c	1996-03-08 10:44:25.000000000 -0500
+++ cernlib-2005.dfsg/src/packlib/cspack/sysreq/netreq.c	2006-09-06 19:53:39.379156655 -0400
@@ -25,6 +25,7 @@
 #include <netinet/in.h> /* Internet data types                          */
 #include <arpa/inet.h>  /* Arpa internet routines                       */
 #include <stdio.h>      /* Standard Input/Output                        */
+#include <string.h>     /* string manipulation functions                */
 #if defined(vms)
 #include <pwd_vms.h>
 #else
diff -urNad cernlib-2005.dfsg~/src/packlib/cspack/sysreq/serror.c cernlib-2005.dfsg/src/packlib/cspack/sysreq/serror.c
--- cernlib-2005.dfsg~/src/packlib/cspack/sysreq/serror.c	1998-08-25 08:44:52.000000000 -0400
+++ cernlib-2005.dfsg/src/packlib/cspack/sysreq/serror.c	2006-09-06 19:53:39.379156655 -0400
@@ -177,7 +177,7 @@
         else {
 #if !defined(vms)
                 if ((n>0) && (n<sys_nerr)) {
-                        return(sys_errlist[n]);
+                        return((char*)sys_errlist[n]);
                 }
                 else {
                         (void) sprintf(buf,"%s: %d\n",
diff -urNad cernlib-2005.dfsg~/src/packlib/cspack/sysreq/socket.c cernlib-2005.dfsg/src/packlib/cspack/sysreq/socket.c
--- cernlib-2005.dfsg~/src/packlib/cspack/sysreq/socket.c	1998-08-25 08:44:55.000000000 -0400
+++ cernlib-2005.dfsg/src/packlib/cspack/sysreq/socket.c	2006-09-06 19:53:39.379156655 -0400
@@ -144,7 +144,10 @@
 #include <errno.h>
 #include <setjmp.h>
 #include <signal.h>
+
+#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 -urNad cernlib-2005.dfsg~/src/packlib/cspack/sysreq/sysreq.h cernlib-2005.dfsg/src/packlib/cspack/sysreq/sysreq.h
--- cernlib-2005.dfsg~/src/packlib/cspack/sysreq/sysreq.h	1996-03-08 10:44:26.000000000 -0500
+++ cernlib-2005.dfsg/src/packlib/cspack/sysreq/sysreq.h	2006-09-06 19:53:39.380156442 -0400
@@ -88,7 +88,7 @@
  */
  
 #ifndef VM
-extern char     *malloc();              /* Memory allocation            */
+#include <stdlib.h>                     /* standard C library defs      */
 #endif  /* VM */
 extern char     *getenv();              /* Get environment info         */
  
diff -urNad cernlib-2005.dfsg~/src/packlib/cspack/sysreq/xdr.c cernlib-2005.dfsg/src/packlib/cspack/sysreq/xdr.c
--- cernlib-2005.dfsg~/src/packlib/cspack/sysreq/xdr.c	1996-03-08 10:44:26.000000000 -0500
+++ cernlib-2005.dfsg/src/packlib/cspack/sysreq/xdr.c	2006-09-06 19:53:39.380156442 -0400
@@ -52,7 +52,7 @@
 #endif /* min */
  
 #ifndef VM
-extern char *malloc();
+#include <stdlib.h>             /* standard C library defs              */
 #endif /* VM */
  
 #ifdef VM
diff -urNad cernlib-2005.dfsg~/src/packlib/cspack/tcpaw/Imakefile cernlib-2005.dfsg/src/packlib/cspack/tcpaw/Imakefile
--- cernlib-2005.dfsg~/src/packlib/cspack/tcpaw/Imakefile	1999-01-15 08:59:12.000000000 -0500
+++ cernlib-2005.dfsg/src/packlib/cspack/tcpaw/Imakefile	2006-09-06 19:53:39.380156442 -0400
@@ -49,4 +49,9 @@
 #endif
 #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 -urNad cernlib-2005.dfsg~/src/packlib/cspack/tcpaw/tcpaw.c cernlib-2005.dfsg/src/packlib/cspack/tcpaw/tcpaw.c
--- cernlib-2005.dfsg~/src/packlib/cspack/tcpaw/tcpaw.c	2005-04-18 11:39:28.000000000 -0400
+++ cernlib-2005.dfsg/src/packlib/cspack/tcpaw/tcpaw.c	2006-09-06 19:53:53.133231056 -0400
@@ -301,6 +301,7 @@
 #ifndef IBMRT
 /*  this is a kludge, one ought to fix the "prototypes" in this file */
 #include <string.h>
+#include <stdlib.h> /* needed for linux gcc4 */
 #endif  /* IBMRT */
 #endif /* WIN32 */
 #endif /* IBM */
@@ -478,7 +479,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;
@@ -487,7 +488,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
@@ -521,7 +522,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 */
@@ -658,7 +659,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;
@@ -727,7 +728,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;
@@ -800,7 +801,7 @@
         }
 #endif
   /* Bind the listen address to the socket. */
-        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
@@ -829,7 +830,7 @@
                 exit(1);
         }
         addrlen = sizeof(struct sockaddr_in);
-        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);
@@ -984,7 +985,7 @@
  char *user = NULL, *passwd = NULL;
  int port;
 #if defined(AUTHENT) 
-  unsigned char idbuf[100];
+  char idbuf[100];
 #endif /* AUTHENT */
  
 #ifdef VMS
@@ -1290,7 +1291,7 @@
   /* 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, (struct sockaddr *)&peeraddr_in, sizeof(struct sockaddr_in)) == SOCKET_ERROR) {
 #ifndef _WIN32
             close(s);
 #else
@@ -1313,7 +1314,7 @@
         }
  
         addrlen = sizeof(struct sockaddr_in);
-        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
@@ -2688,7 +2689,7 @@
                              ((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, (struct sockaddr *)&sin, sizeof(struct sockaddr_in)) == SOCKET_ERROR ) {
 #ifndef _WIN32
                 if (errno == ECONNREFUSED && timo <= 16) {
                         (void) close(s);
@@ -3352,7 +3353,7 @@
                              ((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, (struct sockaddr *)&sin, sizeof(struct sockaddr_in)) == SOCKET_ERROR) {
 #ifndef WIN32
                 if (errno == ECONNREFUSED && timo <= 16) {
                         (void) close(s);
@@ -3486,7 +3487,7 @@
 }
  
 getstr(sock,buf, cnt, errmesg)
-int     *sock;
+int     sock;
 char    *buf;
 int     cnt;              /* sizeof() the char array */
 char    *errmesg;         /* in case error message required */
diff -urNad cernlib-2005.dfsg~/src/packlib/fatmen/fmc/faexit.c cernlib-2005.dfsg/src/packlib/fatmen/fmc/faexit.c
--- cernlib-2005.dfsg~/src/packlib/fatmen/fmc/faexit.c	1997-09-02 08:56:52.000000000 -0400
+++ cernlib-2005.dfsg/src/packlib/fatmen/fmc/faexit.c	2006-09-06 19:53:39.381156230 -0400
@@ -27,6 +27,7 @@
 void faexit(icode)
 #endif
 #if defined(CERNLIB_QX_SC)
+#include <stdlib.h>                     /* standard C library defs      */
 void faexit_(icode)
 #endif
 int *icode;
diff -urNad cernlib-2005.dfsg~/src/packlib/kernlib/kerngen/ccgen/abend.c cernlib-2005.dfsg/src/packlib/kernlib/kerngen/ccgen/abend.c
--- cernlib-2005.dfsg~/src/packlib/kernlib/kerngen/ccgen/abend.c	1997-02-04 12:34:12.000000000 -0500
+++ cernlib-2005.dfsg/src/packlib/kernlib/kerngen/ccgen/abend.c	2006-09-06 19:53:39.382156017 -0400
@@ -19,6 +19,7 @@
   CERN PROGLIB# Z035    ABEND           .VERSION KERNFOR  4.31  911111
 */
 #if defined(CERNLIB_QX_SC)
+#include <stdlib.h>
 void type_of_call abend_()
 #endif
 #if defined(CERNLIB_QXNO_SC)
diff -urNad cernlib-2005.dfsg~/src/packlib/kernlib/kerngen/ccgen/ctimef.c cernlib-2005.dfsg/src/packlib/kernlib/kerngen/ccgen/ctimef.c
--- cernlib-2005.dfsg~/src/packlib/kernlib/kerngen/ccgen/ctimef.c	1997-02-04 12:34:14.000000000 -0500
+++ cernlib-2005.dfsg/src/packlib/kernlib/kerngen/ccgen/ctimef.c	2006-09-06 19:53:39.382156017 -0400
@@ -24,6 +24,8 @@
      STIME  decoded time string of length 24 (CHARACTER*24 STIME)
 */
 #if defined(CERNLIB_QX_SC)
+#include <stdlib.h>
+#include <string.h>
 void type_of_call ctimef_(clock, stime)
 #endif
 #if defined(CERNLIB_QXNO_SC)
diff -urNad cernlib-2005.dfsg~/src/packlib/kernlib/kerngen/ccgen/exitf.c cernlib-2005.dfsg/src/packlib/kernlib/kerngen/ccgen/exitf.c
--- cernlib-2005.dfsg~/src/packlib/kernlib/kerngen/ccgen/exitf.c	1997-02-04 12:34:16.000000000 -0500
+++ cernlib-2005.dfsg/src/packlib/kernlib/kerngen/ccgen/exitf.c	2006-09-06 19:53:39.382156017 -0400
@@ -19,6 +19,7 @@
   CERN PROGLIB# Z035    EXITF           .VERSION KERNFOR  4.39  940228
 */
 #if defined(CERNLIB_QX_SC)
+#include <stdlib.h>
 void type_of_call exitf_(st)
 #endif
 #if defined(CERNLIB_QXNO_SC)
diff -urNad cernlib-2005.dfsg~/src/packlib/kernlib/kerngen/ccgen/getwdi.c cernlib-2005.dfsg/src/packlib/kernlib/kerngen/ccgen/getwdi.c
--- cernlib-2005.dfsg~/src/packlib/kernlib/kerngen/ccgen/getwdi.c	1997-09-02 10:26:36.000000000 -0400
+++ cernlib-2005.dfsg/src/packlib/kernlib/kerngen/ccgen/getwdi.c	2006-09-06 19:53:39.382156017 -0400
@@ -29,6 +29,7 @@
       ISLATE(1) returns its lenth NTEXT
 */
 #include <stdio.h>
+#include <stdlib.h>
 #ifdef WIN32
 #include <direct.h>
 # ifndef getcwd
@@ -58,7 +59,7 @@
 #endif
       int  *lgname;
 {
-      char *malloc();
+/*    char *malloc();  - see above "#include <stdlib.h>"  */
       char *ptalc, *pttext;
       int  fchput();
       int  nalc;
diff -urNad cernlib-2005.dfsg~/src/packlib/kernlib/kerngen/ccgen/lstati.c cernlib-2005.dfsg/src/packlib/kernlib/kerngen/ccgen/lstati.c
--- cernlib-2005.dfsg~/src/packlib/kernlib/kerngen/ccgen/lstati.c	1997-02-04 12:34:35.000000000 -0500
+++ cernlib-2005.dfsg/src/packlib/kernlib/kerngen/ccgen/lstati.c	2006-09-06 19:53:39.382156017 -0400
@@ -26,6 +26,7 @@
   Fortran interface routine to lstat
 */
 #include <stdio.h>
+#include <stdlib.h>
 #include <sys/types.h>
 #include <sys/stat.h>
 #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 -urNad cernlib-2005.dfsg~/src/packlib/kernlib/kerngen/ccgen/sigprnt.c cernlib-2005.dfsg/src/packlib/kernlib/kerngen/ccgen/sigprnt.c
--- cernlib-2005.dfsg~/src/packlib/kernlib/kerngen/ccgen/sigprnt.c	1997-02-04 12:34:42.000000000 -0500
+++ cernlib-2005.dfsg/src/packlib/kernlib/kerngen/ccgen/sigprnt.c	2006-09-06 19:53:39.383155804 -0400
@@ -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 -urNad cernlib-2005.dfsg~/src/packlib/kernlib/kerngen/ccgen/stati.c cernlib-2005.dfsg/src/packlib/kernlib/kerngen/ccgen/stati.c
--- cernlib-2005.dfsg~/src/packlib/kernlib/kerngen/ccgen/stati.c	1997-09-02 10:26:39.000000000 -0400
+++ cernlib-2005.dfsg/src/packlib/kernlib/kerngen/ccgen/stati.c	2006-09-06 19:53:39.383155804 -0400
@@ -26,6 +26,7 @@
   Fortran interface routine to stat
 */
 #include <stdio.h>
+#include <stdlib.h>
 #if defined(CERNLIB_QMVAX)||defined(CERNLIB_QMOS9)
 #include <types.h>
 #include <stat.h>
@@ -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 -urNad cernlib-2005.dfsg~/src/packlib/kernlib/kerngen/ccgen/timel.c cernlib-2005.dfsg/src/packlib/kernlib/kerngen/ccgen/timel.c
--- cernlib-2005.dfsg~/src/packlib/kernlib/kerngen/ccgen/timel.c	1997-02-04 12:34:47.000000000 -0500
+++ cernlib-2005.dfsg/src/packlib/kernlib/kerngen/ccgen/timel.c	2006-09-06 19:53:39.383155804 -0400
@@ -30,6 +30,7 @@
 #include <sys/param.h>
 #include <sys/time.h>
 #include <sys/resource.h>
+#include <unistd.h>     /* For ia64... */
 
 #ifndef CLOCKS_PER_SEC
 #define  CLOCKS_PER_SEC CLK_TCK
diff -urNad cernlib-2005.dfsg~/src/packlib/kernlib/kerngen/ccgenu/fchtak.c cernlib-2005.dfsg/src/packlib/kernlib/kerngen/ccgenu/fchtak.c
--- cernlib-2005.dfsg~/src/packlib/kernlib/kerngen/ccgenu/fchtak.c	1996-02-15 12:49:40.000000000 -0500
+++ cernlib-2005.dfsg/src/packlib/kernlib/kerngen/ccgenu/fchtak.c	2006-09-06 19:53:39.383155804 -0400
@@ -16,6 +16,7 @@
       return the memory pointer
 */
 #include <stdio.h>
+#include <stdlib.h>
 #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 <stdlib.h>"  */
       char *ptalc, *ptuse;
       char *utext;
       int  nalc;
diff -urNad cernlib-2005.dfsg~/src/packlib/kuip/code_kuip/getline.c cernlib-2005.dfsg/src/packlib/kuip/code_kuip/getline.c
--- cernlib-2005.dfsg~/src/packlib/kuip/code_kuip/getline.c	1998-08-25 08:47:32.000000000 -0400
+++ cernlib-2005.dfsg/src/packlib/kuip/code_kuip/getline.c	2006-09-06 19:53:39.384155592 -0400
@@ -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 -urNad cernlib-2005.dfsg~/src/packlib/kuip/code_motif/iconwidget.c cernlib-2005.dfsg/src/packlib/kuip/code_motif/iconwidget.c
--- cernlib-2005.dfsg~/src/packlib/kuip/code_motif/iconwidget.c	1996-03-08 10:33:10.000000000 -0500
+++ cernlib-2005.dfsg/src/packlib/kuip/code_motif/iconwidget.c	2006-09-06 19:53:39.384155592 -0400
@@ -284,7 +284,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,
@@ -372,7 +372,7 @@
 #endif
 
     if (iw->icon.armed)
-       DrawShadow ((Widget) iw, True);
+       DrawShadow (iw, True);
 }
 
 /************************************************************************


--- NEW FILE cernlib-120-fix-gets-usage-in-kuipc.dpatch ---
#! /bin/sh /usr/share/dpatch/dpatch-run
## 120-fix-gets-usage-in-kuipc.dpatch by  <kmccarty at debian.org>
##
## All lines beginning with `## DP:' are a description of the patch.
## DP: Fix usage of gets() in kuipc.  Thanks to Harald Vogt, 2006-07-20.

@DPATCH@
diff -urNad cernlib-2005.dfsg~/src/packlib/kuip/programs/kuipc/kuipcc.c cernlib-2005.dfsg/src/packlib/kuip/programs/kuipc/kuipcc.c
--- cernlib-2005.dfsg~/src/packlib/kuip/programs/kuipc/kuipcc.c	2000-03-27 09:13:17.000000000 -0500
+++ cernlib-2005.dfsg/src/packlib/kuip/programs/kuipc/kuipcc.c	2006-09-06 18:57:58.483212039 -0400
@@ -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 ) {


--- NEW FILE cernlib-121-fix-mathlib-test-case-c209m.dpatch ---
#! /bin/sh /usr/share/dpatch/dpatch-run
## 121-fix-mathlib-test-case-c209m.dpatch by  <kmccarty at debian.org>
##
## All lines beginning with `## DP:' are a description of the patch.
## DP: Fix off-by-one bug in test case c209m.  Courtesy Harald Vogt.

@DPATCH@
diff -urNad cernlib-2005.dfsg~/src/mathlib/gen/tests/c209m.F cernlib-2005.dfsg/src/mathlib/gen/tests/c209m.F
--- cernlib-2005.dfsg~/src/mathlib/gen/tests/c209m.F	1996-04-01 10:01:13.000000000 -0500
+++ cernlib-2005.dfsg/src/mathlib/gen/tests/c209m.F	2006-09-06 19:05:30.359047318 -0400
@@ -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)


--- NEW FILE cernlib-211-support-digital-alpha.dpatch ---
#! /bin/sh /usr/share/dpatch/dpatch-run
## 211-support-digital-alpha.dpatch by  <kmccarty at debian.org>
##
## All lines beginning with `## DP:' are a description of the patch.
## DP: Try to also support alpha architecture in chkloc()

@DPATCH@
diff -urNad cernlib-2005.dfsg~/src/packlib/kernlib/kerngen/ccgen/lp64gs/chkloc.c cernlib-2005.dfsg/src/packlib/kernlib/kerngen/ccgen/lp64gs/chkloc.c
--- cernlib-2005.dfsg~/src/packlib/kernlib/kerngen/ccgen/lp64gs/chkloc.c	2006-09-06 20:48:39.151588934 -0400
+++ cernlib-2005.dfsg/src/packlib/kernlib/kerngen/ccgen/lp64gs/chkloc.c	2006-09-06 20:53:30.206708584 -0400
@@ -35,13 +35,20 @@
      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 != 0x0000000000000000) {
-#else
+#if defined (__ia64__)
     if ( jadr != 0x6000000000000000) {
+#elif defined (__alpha__)
+    if ( jadr != 0x0000000100000000) {
+#else  /* amd64 */
+    if ( jadr != 0) {
 #endif
       printf("!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!\n");
       printf("LOCB/LOCF: address %p exceeds the 32 bit address space\n", iadr);


--- NEW FILE cernlib-321-support-gfortran.dpatch ---
#! /bin/sh /usr/share/dpatch/dpatch-run
## 321-support-gfortran.dpatch by  <kmccarty at debian.org>
##
## All lines beginning with `## DP:' are a description of the patch.
## DP: Support compilation with gfortran.  Patch thanks to Harald Vogt
## DP: (except for changes to src/config/linux.cf).

@DPATCH@
diff -urNad cernlib-2005.dfsg~/src/config/linux.cf cernlib-2005.dfsg/src/config/linux.cf
--- cernlib-2005.dfsg~/src/config/linux.cf	2006-09-07 15:06:06.891836867 -0400
+++ cernlib-2005.dfsg/src/config/linux.cf	2006-09-07 15:06:08.249547206 -0400
@@ -478,7 +478,7 @@
     variable=value							@@\
 endif									@@\
 
-# else    /* g77 */
+# else    /* g77 or gfortran */
 
 /* Start CERNLIB changes A.Waananen 15. Apr. 1996 */
 /*  Adapted to CERN style GF. 20-Sep-96 */
@@ -498,17 +498,32 @@
 #endif
 
 #define f2cFortran	        YES
+#ifdef HasGFortran
+#define FortranCmd		gfortran -g
+#define gFortran		YES
+#define CERNLIB_GFORTRAN
+#else
 #define FortranCmd		g77 -g
+#endif
 #define XargsCmd		xargs
 #define FortranSaveFlags	/* */ /* Everything static !? */
 #define OptimisedFortranFlags	OptimizedCDebugFlags -funroll-loops
 /* Remove -fomit-frame-pointer since -O implies it and it inhibits debugging */
+
+#ifdef HasGFortran
+#ifndef DefaultFCOptions
+# define DefaultFCOptions	-fno-automatic -fno-second-underscore
+#endif
+#define CernlibSystem	        CernlibDefaultDefines CernlibMachineDefines \
+				CernlibLocalDefines -DCERNLIB_GFORTRAN
+#else
 #ifndef DefaultFCOptions
 # define DefaultFCOptions	-fno-automatic -fno-second-underscore \
 				-fugly-complex
 #endif
 #define CernlibSystem	        CernlibDefaultDefines CernlibMachineDefines \
 				CernlibLocalDefines
+#endif
 
 # endif
 # endif
diff -urNad cernlib-2005.dfsg~/src/mathlib/gen/c/rteq464.F cernlib-2005.dfsg/src/mathlib/gen/c/rteq464.F
--- cernlib-2005.dfsg~/src/mathlib/gen/c/rteq464.F	1996-04-01 10:01:53.000000000 -0500
+++ cernlib-2005.dfsg/src/mathlib/gen/c/rteq464.F	2006-09-07 15:06:08.249547206 -0400
@@ -45,7 +45,16 @@
          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) z(3)=SQRT(real(-z(1)**2)+i*0)
+#endif
          Z(4)=-Z(3)
         ENDIF
         DC=(-R12*D)**3
@@ -94,9 +103,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 -urNad cernlib-2005.dfsg~/src/mathlib/gen/c/wpsipg.F cernlib-2005.dfsg/src/mathlib/gen/c/wpsipg.F
--- cernlib-2005.dfsg~/src/mathlib/gen/c/wpsipg.F	1996-04-01 10:02:01.000000000 -0500
+++ cernlib-2005.dfsg/src/mathlib/gen/c/wpsipg.F	2006-09-07 15:06:08.250546993 -0400
@@ -62,7 +62,11 @@
        H=0                                                                      
        WRITE(ERRTXT,101) K                                                      
        CALL MTLPRT(NAME,'C317.1',ERRTXT)                                        
-      ELSEIF(ABS(IMAG(U)) .LT. DELTA .AND. ABS(X+NINT(A)) .LT. DELTA)           
+#if defined(CERNLIB_QFPGF77)||defined(CERNLIB_GFORTRAN)
+      ELSEIF(ABS(AIMAG(U)) .LT. DELTA .AND. ABS(X+NINT(A)) .LT. DELTA)
+#else
+      ELSEIF(ABS(IMAG(U)) .LT. DELTA .AND. ABS(X+NINT(A)) .LT. DELTA)
+#endif
      1                                                        THEN              
        H=0                                                                      
        WRITE(ERRTXT,102) X                                                      
@@ -88,7 +92,11 @@
        IF(X .LT. 0) THEN                                                        
         V=PI*U                                                                  
         X=V                                                                     
-        Y=IMAG(V)                                                               
+#if defined(CERNLIB_QFPGF77)||defined(CERNLIB_GFORTRAN)
+        Y=AIMAG(V)
+#else
+        Y=IMAG(V)
+#endif
         A=SIN(X)                                                                
         B=COS(X)                                                                
         T=TANH(Y)                                                               
diff -urNad cernlib-2005.dfsg~/src/mathlib/gen/d/cfstft.F cernlib-2005.dfsg/src/mathlib/gen/d/cfstft.F
--- cernlib-2005.dfsg~/src/mathlib/gen/d/cfstft.F	1997-12-15 11:18:42.000000000 -0500
+++ cernlib-2005.dfsg/src/mathlib/gen/d/cfstft.F	2006-09-07 15:06:08.250546993 -0400
@@ -43,7 +43,7 @@
       W=CMPLX(C,S)
       U=W
       C=SQRT(0.5*C+0.5)
-#if defined(CERNLIB_QFPGF77)
+#if defined(CERNLIB_QFPGF77)||defined(CERNLIB_GFORTRAN)
       S=AIMAG(W)/(C+C)
 #else
       S=IMAG(W)/(C+C)
diff -urNad cernlib-2005.dfsg~/src/mathlib/gen/v/nranf.F cernlib-2005.dfsg/src/mathlib/gen/v/nranf.F
--- cernlib-2005.dfsg~/src/mathlib/gen/v/nranf.F	1996-04-01 10:02:54.000000000 -0500
+++ cernlib-2005.dfsg/src/mathlib/gen/v/nranf.F	2006-09-07 15:06:08.250546993 -0400
@@ -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 -urNad cernlib-2005.dfsg~/src/mathlib/gen/v/v107z0.inc cernlib-2005.dfsg/src/mathlib/gen/v/v107z0.inc
--- cernlib-2005.dfsg~/src/mathlib/gen/v/v107z0.inc	2000-06-08 05:57:22.000000000 -0400
+++ cernlib-2005.dfsg/src/mathlib/gen/v/v107z0.inc	2006-09-07 15:06:08.250546993 -0400
@@ -16,9 +16,13 @@
 * v107z0.inc
 *
 
-#if defined(CERNLIB_LNX)||defined(CERNLIB_ALLIANT)||defined(CERNLIB_DECS)||defined(CERNLIB_MACMPW)||defined(CERNLIB_SGI)
+#if (defined(CERNLIB_LNX)||defined(CERNLIB_ALLIANT)||defined(CERNLIB_DECS)||defined(CERNLIB_MACMPW)||defined(CERNLIB_SGI))&&!defined(CERNLIB_GFORTRAN)
       DATA IZ0/'33000000'X/
 
+#elif defined(CERNLIB_GFORTRAN)
+*     this is the new Fortran 2003 ISO standard
+      DATA IZ0/Z'33000000'/
+
 #elif defined(CERNLIB_APOLLO)
       DATA IZ0/16#33000000/
 
diff -urNad cernlib-2005.dfsg~/src/packlib/hbook/chbook/Imakefile cernlib-2005.dfsg/src/packlib/hbook/chbook/Imakefile
--- cernlib-2005.dfsg~/src/packlib/hbook/chbook/Imakefile	1999-11-15 08:25:58.000000000 -0500
+++ cernlib-2005.dfsg/src/packlib/hbook/chbook/Imakefile	2006-09-07 15:06:08.250546993 -0400
@@ -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 -urNad cernlib-2005.dfsg~/src/packlib/kernlib/kerngen/kerngen/klnx.h cernlib-2005.dfsg/src/packlib/kernlib/kerngen/kerngen/klnx.h
--- cernlib-2005.dfsg~/src/packlib/kernlib/kerngen/kerngen/klnx.h	1998-09-25 05:31:11.000000000 -0400
+++ cernlib-2005.dfsg/src/packlib/kernlib/kerngen/kerngen/klnx.h	2006-09-07 15:13:01.777308060 -0400
@@ -8,15 +8,16 @@
 *       Hollerith storage not orthodox
 *              UCOPY et al. to copy integers
 #endif
-#ifndef CERNLIB_QMLNX
-#define CERNLIB_QMLNX
-#endif
 #ifndef CERNLIB_QPOSIX
 #define CERNLIB_QPOSIX
 #endif
 #ifndef CERNLIB_QIEEE
 #define CERNLIB_QIEEE
 #endif
+#if (!defined(CERNLIB_GFORTRAN))
+# ifndef CERNLIB_QMLNX
+#  define CERNLIB_QMLNX
+# endif
 #if (!defined(CERNLIB_PPC))
 #  ifdef CERNLIB_QISASTD
 #    undef CERNLIB_QISASTD
@@ -32,6 +33,21 @@
 #    define CERNLIB_QORTHOLL
 #  endif
 #endif
+#else
+#if 0
+*      gfortran follows
+#endif
+# ifdef CERNLIB_QMLNX
+#  undef CERNLIB_QMLNX
+# endif
+# ifndef CERNLIB_QISASTD
+#  define CERNLIB_QISASTD
+# endif
+# ifdef CERNLIB_QORTHOLL
+#  undef CERNLIB_QORTHOLL
+# endif
+#endif
+
 #ifndef CERNLIB_QINTCOPY
 #define CERNLIB_QINTCOPY
 #endif
diff -urNad cernlib-2005.dfsg~/src/packlib/kernlib/kerngen/tcgen/Imakefile cernlib-2005.dfsg/src/packlib/kernlib/kerngen/tcgen/Imakefile
--- cernlib-2005.dfsg~/src/packlib/kernlib/kerngen/tcgen/Imakefile	1997-02-04 12:36:14.000000000 -0500
+++ cernlib-2005.dfsg/src/packlib/kernlib/kerngen/tcgen/Imakefile	2006-09-07 15:06:08.251546780 -0400
@@ -52,7 +52,7 @@
 #if defined(CERNLIB_DOS) || defined(CERNLIB_MPW) || defined(CERNLIB_LNX) || defined(CERNLIB_WINNT)
 SRCS_F := $(SRCS_F) lenocc.F 
 #endif
-#ifdef CERNLIB_HPUX
+#if defined(CERNLIB_HPUX) || defined(CERNLIB_GFORTRAN)
 SRCS_F := $(SRCS_F) getarg.F
 #endif
 
diff -urNad cernlib-2005.dfsg~/src/packlib/kernlib/kerngen/tcgen/getarg.F cernlib-2005.dfsg/src/packlib/kernlib/kerngen/tcgen/getarg.F
--- cernlib-2005.dfsg~/src/packlib/kernlib/kerngen/tcgen/getarg.F	1996-02-15 12:49:40.000000000 -0500
+++ cernlib-2005.dfsg/src/packlib/kernlib/kerngen/tcgen/getarg.F	2006-09-07 15:06:08.251546780 -0400
@@ -11,4 +11,6 @@
 #include "hpxgs/getarg.F"
 #elif defined(CERNLIB_QMVAX)
 #include "vaxsys/getarg.F"
+#elif defined(CERNLIB_GFORTRAN)
+#include "lnxgfort/getarg.F"
 #endif
diff -urNad cernlib-2005.dfsg~/src/packlib/kernlib/kerngen/tcgen/lnxgfort/getarg.F cernlib-2005.dfsg/src/packlib/kernlib/kerngen/tcgen/lnxgfort/getarg.F
--- cernlib-2005.dfsg~/src/packlib/kernlib/kerngen/tcgen/lnxgfort/getarg.F	1969-12-31 19:00:00.000000000 -0500
+++ cernlib-2005.dfsg/src/packlib/kernlib/kerngen/tcgen/lnxgfort/getarg.F	2006-09-07 15:06:08.251546780 -0400
@@ -0,0 +1,17 @@
+*
+      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 MYGETARG (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 -urNad cernlib-2005.dfsg~/src/packlib/kernlib/kerngen/tcgens/iucomh.F cernlib-2005.dfsg/src/packlib/kernlib/kerngen/tcgens/iucomh.F
--- cernlib-2005.dfsg~/src/packlib/kernlib/kerngen/tcgens/iucomh.F	1997-02-04 12:36:24.000000000 -0500
+++ cernlib-2005.dfsg/src/packlib/kernlib/kerngen/tcgens/iucomh.F	2006-09-07 15:06:08.251546780 -0400
@@ -17,7 +17,7 @@
 #include "wntgs/iucomh.F"
 #elif defined(CERNLIB_QMDOS)
 #include "dosgs/iucomh.F"
-#elif defined(CERNLIB_QMVAOS)||defined(CERNLIB_QMVMI)
+#elif defined(CERNLIB_QMVAOS)||defined(CERNLIB_QMVMI)||defined(CERNLIB_GFORTRAN)
 #include "allgs/iucomh.F"
 #elif defined(CERNLIB_QMLNX)
 #include "lnxgs/iucomh.F"
diff -urNad cernlib-2005.dfsg~/src/packlib/kernlib/kerngen/tcgens/rndm.F cernlib-2005.dfsg/src/packlib/kernlib/kerngen/tcgens/rndm.F
--- cernlib-2005.dfsg~/src/packlib/kernlib/kerngen/tcgens/rndm.F	1997-10-23 12:37:04.000000000 -0400
+++ cernlib-2005.dfsg/src/packlib/kernlib/kerngen/tcgens/rndm.F	2006-09-07 15:06:08.252546566 -0400
@@ -24,7 +24,7 @@
 #include "mpwgs/rndm.F"
 #elif defined(CERNLIB_QMVAOS)||defined(CERNLIB_QMVMI)
 #include "allgs/rndm.F"
-#elif defined(CERNLIB_QMLNX)
+#elif defined(CERNLIB_QMLNX)||defined(CERNLIB_GFORTRAN)
 #include "lnxgs/rndm.F"
 #elif defined(CERNLIB_QMIRTD)
 #include "irtdgs/rndm.F"
diff -urNad cernlib-2005.dfsg~/src/packlib/kernlib/kerngen/tcgens/ublow.F cernlib-2005.dfsg/src/packlib/kernlib/kerngen/tcgens/ublow.F
--- cernlib-2005.dfsg~/src/packlib/kernlib/kerngen/tcgens/ublow.F	1998-09-25 05:32:02.000000000 -0400
+++ cernlib-2005.dfsg/src/packlib/kernlib/kerngen/tcgens/ublow.F	2006-09-07 15:06:08.252546566 -0400
@@ -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 -urNad cernlib-2005.dfsg~/src/packlib/kernlib/kerngen/tcgens/ubunch.F cernlib-2005.dfsg/src/packlib/kernlib/kerngen/tcgens/ubunch.F
--- cernlib-2005.dfsg~/src/packlib/kernlib/kerngen/tcgens/ubunch.F	1998-09-25 05:32:06.000000000 -0400
+++ cernlib-2005.dfsg/src/packlib/kernlib/kerngen/tcgens/ubunch.F	2006-09-07 15:06:08.252546566 -0400
@@ -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 -urNad cernlib-2005.dfsg~/src/packlib/zebra/fq/fzdaeof.inc cernlib-2005.dfsg/src/packlib/zebra/fq/fzdaeof.inc
--- cernlib-2005.dfsg~/src/packlib/zebra/fq/fzdaeof.inc	1996-03-06 05:47:08.000000000 -0500
+++ cernlib-2005.dfsg/src/packlib/zebra/fq/fzdaeof.inc	2006-09-07 15:06:08.252546566 -0400
@@ -30,7 +30,7 @@
 ***   PARAMETER    (IOSEOF = 10)     !*  for xlf 2.2
 ***   PARAMETER    (IOSEOF = 122)    !*  for xlf 2.3
       PARAMETER    (IOSEOF = 1)      !*  for xlf 3.2
-#elif defined(CERNLIB_QMLNX)
+#elif defined(CERNLIB_QMLNX)&&!defined(CERNLIB_GFORTRAN)
       PARAMETER    (IOSEOF = 36)
 #elif defined(CERNLIB_QMOS9)
       PARAMETER    (IOSEOF = 326)
@@ -43,6 +43,8 @@
 #elif defined(CERNLIB_WINDOWS)
 *    only valid for dec fortran (e.g. not f2c + microsoft c)
       PARAMETER    (IOSEOF = 36)
+#elif defined(CERNLIB_GFORTRAN)
+      PARAMETER    (IOSEOF = 3)
 #elif 1
       PARAMETER    (IOSEOF = -1)
 #endif
diff -urNad cernlib-2005.dfsg~/src/packlib/zebra/zebra/q_and.inc cernlib-2005.dfsg/src/packlib/zebra/zebra/q_and.inc
--- cernlib-2005.dfsg~/src/packlib/zebra/zebra/q_and.inc	1996-04-18 12:15:05.000000000 -0400
+++ cernlib-2005.dfsg/src/packlib/zebra/zebra/q_and.inc	2006-09-07 15:06:08.252546566 -0400
@@ -24,7 +24,7 @@
 #elif defined(CERNLIB_QMIBMSI)
       IAND (IZV,IZW) = LAND (IZV, IZW)
 
-#elif defined(CERNLIB_LNX)
+#elif (defined(CERNLIB_LNX))&&(!defined(CERNLIB_GFORTRAN))
       IAND(IZV,IZW)  = AND(IZV,IZW)
 
 #elif defined(CERNLIB_SUN)
diff -urNad cernlib-2005.dfsg~/src/packlib/zebra/zebra/q_andor.inc cernlib-2005.dfsg/src/packlib/zebra/zebra/q_andor.inc
--- cernlib-2005.dfsg~/src/packlib/zebra/zebra/q_andor.inc	1996-03-06 05:46:52.000000000 -0500
+++ cernlib-2005.dfsg/src/packlib/zebra/zebra/q_andor.inc	2006-09-07 15:06:08.253546353 -0400
@@ -36,7 +36,7 @@
       IEOR (IZV,IZW) = LXOR (IZV, IZW)
       NOT (IZW)      = LCOMPL (IZW)
 
-#elif defined(CERNLIB_LNX)
+#elif (defined(CERNLIB_LNX))&&(!defined(CERNLIB_GFORTRAN))
       IAND(IZV,IZW)  = AND(IZV,IZW)
        IOR(IZV,IZW)  =  OR(IZV,IZW)
       IEOR(IZV,IZW)  = XOR(IZV,IZW)
diff -urNad cernlib-2005.dfsg~/src/packlib/zebra/zebra/q_jbit.inc cernlib-2005.dfsg/src/packlib/zebra/zebra/q_jbit.inc
--- cernlib-2005.dfsg~/src/packlib/zebra/zebra/q_jbit.inc	1996-04-18 12:15:06.000000000 -0400
+++ cernlib-2005.dfsg/src/packlib/zebra/zebra/q_jbit.inc	2006-09-07 15:06:08.253546353 -0400
@@ -47,7 +47,7 @@
 #elif defined(CERNLIB_QF_SIEM)
       JBIT (IZW,IZP)    = SHFTR (SHFTL(IZW,32-IZP), 31)
 
-#elif defined(CERNLIB_LINUX)
+#elif (defined(CERNLIB_LINUX))&&(!defined(CERNLIB_GFORTRAN))
       JBIT(IZW,IZP)     = AND(ISHFTR(IZW,IZP-1),1)
 
 #elif defined(CERNLIB_OS9)
diff -urNad cernlib-2005.dfsg~/src/packlib/zebra/zebra/q_jbyt.inc cernlib-2005.dfsg/src/packlib/zebra/zebra/q_jbyt.inc
--- cernlib-2005.dfsg~/src/packlib/zebra/zebra/q_jbyt.inc	1996-04-18 12:15:07.000000000 -0400
+++ cernlib-2005.dfsg/src/packlib/zebra/zebra/q_jbyt.inc	2006-09-07 15:06:08.253546353 -0400
@@ -45,7 +45,7 @@
 #elif defined(CERNLIB_QF_SIEM)
       JBYT (IZW,IZP,NZB)= SHFTR (SHFTL(IZW,33-IZP-NZB), 32-NZB)
 
-#elif defined(CERNLIB_LINUX)
+#elif (defined(CERNLIB_LINUX))&&(!defined(CERNLIB_GFORTRAN))
       JBYT(IZW,IZP,NZB) = ISHFTR(LSHIFT(IZW,33-IZP-NZB),32-NZB)
 
 #elif defined(CERNLIB_OS9)
diff -urNad cernlib-2005.dfsg~/src/packlib/zebra/zebra/q_jbytet.inc cernlib-2005.dfsg/src/packlib/zebra/zebra/q_jbytet.inc
--- cernlib-2005.dfsg~/src/packlib/zebra/zebra/q_jbytet.inc	1996-04-18 12:15:07.000000000 -0400
+++ cernlib-2005.dfsg/src/packlib/zebra/zebra/q_jbytet.inc	2006-09-07 15:06:08.253546353 -0400
@@ -52,7 +52,7 @@
       JBYTET (MZ,IZW,IZP,NZB) = LAND (MZ,
      +                        SHFTR (SHFTL(IZW,33-IZP-NZB), 32-NZB) )
 
-#elif defined(CERNLIB_LINUX)
+#elif (defined(CERNLIB_LINUX))&&(!defined(CERNLIB_GFORTRAN))
       JBYTET (MZ,IZW,IZP,NZB) = AND (MZ,
      +                        ISHFTR (LSHIFT(IZW,33-IZP-NZB),32-NZB) )
 
diff -urNad cernlib-2005.dfsg~/src/packlib/zebra/zebra/q_jbytor.inc cernlib-2005.dfsg/src/packlib/zebra/zebra/q_jbytor.inc
--- cernlib-2005.dfsg~/src/packlib/zebra/zebra/q_jbytor.inc	1996-04-18 12:15:10.000000000 -0400
+++ cernlib-2005.dfsg/src/packlib/zebra/zebra/q_jbytor.inc	2006-09-07 15:06:08.253546353 -0400
@@ -50,7 +50,7 @@
       JBYTOR (MZ,IZW,IZP,NZB) = LOR  (MZ,
      +                        SHFTR (SHFTL(IZW,33-IZP-NZB), 32-NZB) )
 
-#elif defined(CERNLIB_LINUX)
+#elif (defined(CERNLIB_LINUX))&&(!defined(CERNLIB_GFORTRAN))
       JBYTOR (MZ,IZW,IZP,NZB) = OR  (MZ,
      +                        ISHFTR (LSHIFT(IZW,33-IZP-NZB),32-NZB) )
 
diff -urNad cernlib-2005.dfsg~/src/packlib/zebra/zebra/q_mbytet.inc cernlib-2005.dfsg/src/packlib/zebra/zebra/q_mbytet.inc
--- cernlib-2005.dfsg~/src/packlib/zebra/zebra/q_mbytet.inc	1996-04-18 12:15:11.000000000 -0400
+++ cernlib-2005.dfsg/src/packlib/zebra/zebra/q_mbytet.inc	2006-09-07 15:06:08.254546140 -0400
@@ -51,7 +51,7 @@
       MBYTET (MZ,IZW,IZP,NZB) = LAND (IZW, LCOMPL(SHFTR (
      +                       SHFTL(LCOMPL(MZ),32-NZB), 33-IZP-NZB)) )
 
-#elif defined(CERNLIB_LINUX)
+#elif (defined(CERNLIB_LINUX))&&(!defined(CERNLIB_GFORTRAN))
       MBYTET (MZ,IZW,IZP,NZB) = AND (IZW,
      +           NOT(ISHFTR (LSHIFT(NOT(MZ),32-NZB),33-IZP-NZB)) )
 
diff -urNad cernlib-2005.dfsg~/src/packlib/zebra/zebra/q_mbytor.inc cernlib-2005.dfsg/src/packlib/zebra/zebra/q_mbytor.inc
--- cernlib-2005.dfsg~/src/packlib/zebra/zebra/q_mbytor.inc	1996-04-18 12:15:12.000000000 -0400
+++ cernlib-2005.dfsg/src/packlib/zebra/zebra/q_mbytor.inc	2006-09-07 15:06:08.254546140 -0400
@@ -51,7 +51,7 @@
       MBYTOR (MZ,IZW,IZP,NZB) = LOR (IZW, SHFTR (
      +                               SHFTL(MZ,32-NZB), 33-IZP-NZB) )
 
-#elif defined(CERNLIB_LINUX)
+#elif (defined(CERNLIB_LINUX))&&(!defined(CERNLIB_GFORTRAN))
       MBYTOR (MZ,IZW,IZP,NZB) = OR (IZW,
      +       ISHFTR (LSHIFT(MZ,32-NZB),33-IZP-NZB))
 
diff -urNad cernlib-2005.dfsg~/src/packlib/zebra/zebra/q_or.inc cernlib-2005.dfsg/src/packlib/zebra/zebra/q_or.inc
--- cernlib-2005.dfsg~/src/packlib/zebra/zebra/q_or.inc	1996-04-18 12:15:13.000000000 -0400
+++ cernlib-2005.dfsg/src/packlib/zebra/zebra/q_or.inc	2006-09-07 15:06:08.254546140 -0400
@@ -24,7 +24,7 @@
 #elif defined(CERNLIB_QMIBMSI)
       IOR  (IZV,IZW) =  LOR (IZV, IZW)
 
-#elif defined(CERNLIB_LNX)
+#elif (defined(CERNLIB_LNX))&&(!defined(CERNLIB_GFORTRAN))
        IOR(IZV,IZW)  =  OR(IZV,IZW)
 
 #elif defined(CERNLIB_SUN)
diff -urNad cernlib-2005.dfsg~/src/packlib/zebra/zebra/q_sbit.inc cernlib-2005.dfsg/src/packlib/zebra/zebra/q_sbit.inc
--- cernlib-2005.dfsg~/src/packlib/zebra/zebra/q_sbit.inc	1996-04-18 12:15:23.000000000 -0400
+++ cernlib-2005.dfsg/src/packlib/zebra/zebra/q_sbit.inc	2006-09-07 15:06:08.254546140 -0400
@@ -46,7 +46,7 @@
       MSBIT (MZ,IZW,IZP) = LOR (LAND (IZW, LCOMPL(SHFTL(1,IZP-1)) )
      +                                 , SHFTL(LAND(MZ,1),IZP-1) )
 
-#elif defined(CERNLIB_LINUX)
+#elif (defined(CERNLIB_LINUX))&&(!defined(CERNLIB_GFORTRAN))
       MSBIT (MZ,IZW,IZP) = OR (AND (IZW, NOT(LSHIFT(1,IZP-1)))
      +                              ,LSHIFT(AND(MZ,1),IZP-1))
 
diff -urNad cernlib-2005.dfsg~/src/packlib/zebra/zebra/q_sbit0.inc cernlib-2005.dfsg/src/packlib/zebra/zebra/q_sbit0.inc
--- cernlib-2005.dfsg~/src/packlib/zebra/zebra/q_sbit0.inc	1996-04-18 12:15:24.000000000 -0400
+++ cernlib-2005.dfsg/src/packlib/zebra/zebra/q_sbit0.inc	2006-09-07 15:06:08.254546140 -0400
@@ -41,7 +41,7 @@
 #elif defined(CERNLIB_QF_SIEM)
       MSBIT0 (IZW,IZP)   = LAND (IZW, LCOMPL(SHFTL(1,IZP-1)) )
 
-#elif defined(CERNLIB_LINUX)
+#elif (defined(CERNLIB_LINUX))&&(!defined(CERNLIB_GFORTRAN))
       MSBIT0 (IZW,IZP)   = AND (IZW, NOT(LSHIFT(1,IZP-1)))
 
 #elif defined(CERNLIB_PDP)
diff -urNad cernlib-2005.dfsg~/src/packlib/zebra/zebra/q_sbit1.inc cernlib-2005.dfsg/src/packlib/zebra/zebra/q_sbit1.inc
--- cernlib-2005.dfsg~/src/packlib/zebra/zebra/q_sbit1.inc	1996-04-18 12:15:24.000000000 -0400
+++ cernlib-2005.dfsg/src/packlib/zebra/zebra/q_sbit1.inc	2006-09-07 15:06:08.255545926 -0400
@@ -40,7 +40,7 @@
 #elif defined(CERNLIB_QF_SIEM)
       MSBIT1 (IZW,IZP)   = LOR  (IZW,        SHFTL(1,IZP-1)  )
 
-#elif defined(CERNLIB_LINUX)
+#elif (defined(CERNLIB_LINUX))&&(!defined(CERNLIB_GFORTRAN))
       MSBIT1 (IZW,IZP)   = OR  (IZW,     LSHIFT(1,IZP-1))
 
 #elif defined(CERNLIB_PDP)
diff -urNad cernlib-2005.dfsg~/src/packlib/zebra/zebra/q_sbyt.inc cernlib-2005.dfsg/src/packlib/zebra/zebra/q_sbyt.inc
--- cernlib-2005.dfsg~/src/packlib/zebra/zebra/q_sbyt.inc	1996-03-06 05:46:52.000000000 -0500
+++ cernlib-2005.dfsg/src/packlib/zebra/zebra/q_sbyt.inc	2006-09-07 15:06:08.255545926 -0400
@@ -43,7 +43,7 @@
      +            LAND (IZW, LCOMPL(SHFTL (SHFTR(-1,32-NZB), IZP-1)))
      +          , SHFTR (SHFTL(MZ,32-NZB), 33-IZP-NZB) )
 
-#elif defined(CERNLIB_LINUX)
+#elif (defined(CERNLIB_LINUX))&&(!defined(CERNLIB_GFORTRAN))
       MSBYT (MZ,IZW,IZP,NZB) = OR (
      +       AND (IZW, NOT(LSHIFT (ISHFTR(NOT(0),32-NZB),IZP-1)))
      +      ,ISHFTR (LSHIFT(MZ,32-NZB), 33-IZP-NZB) )
diff -urNad cernlib-2005.dfsg~/src/packlib/zebra/zebra/q_shift.inc cernlib-2005.dfsg/src/packlib/zebra/zebra/q_shift.inc
--- cernlib-2005.dfsg~/src/packlib/zebra/zebra/q_shift.inc	1996-03-06 05:46:52.000000000 -0500
+++ cernlib-2005.dfsg/src/packlib/zebra/zebra/q_shift.inc	2006-09-07 15:06:08.255545926 -0400
@@ -36,7 +36,7 @@
       ISHFTL (IZW,NZB) = SHFTL (IZW, NZB)
       ISHFTR (IZW,NZB) = SHFTR (IZW, NZB)
 
-#elif defined(CERNLIB_LINUX)
+#elif (defined(CERNLIB_LINUX))&&(!defined(CERNLIB_GFORTRAN))
       ISHFTL (IZW,NZB) = LSHIFT (IZW,NZB)
 
 #elif (defined(CERNLIB_SUN))&&(!defined(CERNLIB_BUGLRSHFT))
diff -urNad cernlib-2005.dfsg~/src/packlib/zebra/zebra/q_shiftl.inc cernlib-2005.dfsg/src/packlib/zebra/zebra/q_shiftl.inc
--- cernlib-2005.dfsg~/src/packlib/zebra/zebra/q_shiftl.inc	1996-04-18 12:15:25.000000000 -0400
+++ cernlib-2005.dfsg/src/packlib/zebra/zebra/q_shiftl.inc	2006-09-07 15:06:08.255545926 -0400
@@ -28,7 +28,7 @@
 #elif defined(CERNLIB_QF_SIEM)
       ISHFTL (IZW,NZB) = SHFTL (IZW, NZB)
 
-#elif defined(CERNLIB_LINUX)
+#elif (defined(CERNLIB_LINUX))&&(!defined(CERNLIB_GFORTRAN))
       ISHFTL (IZW,NZB) = LSHIFT (IZW,NZB)
 
 #elif (defined(CERNLIB_SUN))&&(!defined(CERNLIB_BUGLRSHFT))
diff -urNad cernlib-2005.dfsg~/src/packlib/zebra/zebra/q_shiftr.inc cernlib-2005.dfsg/src/packlib/zebra/zebra/q_shiftr.inc
--- cernlib-2005.dfsg~/src/packlib/zebra/zebra/q_shiftr.inc	1996-04-18 12:15:25.000000000 -0400
+++ cernlib-2005.dfsg/src/packlib/zebra/zebra/q_shiftr.inc	2006-09-07 15:06:08.255545926 -0400
@@ -32,7 +32,7 @@
 #elif defined(CERNLIB_QF_SIEM)
       ISHFTR (IZW,NZB) = SHFTR (IZW, NZB)
 
-#elif defined(CERNLIB_LINUX)
+#elif (defined(CERNLIB_LINUX))&&(!defined(CERNLIB_GFORTRAN))
 
 #elif (defined(CERNLIB_SUN))&&(!defined(CERNLIB_BUGLRSHFT))
       ISHFTR (IZW,NZB) = lrshft (IZW, NZB)
diff -urNad cernlib-2005.dfsg~/src/packlib/zebra/zebra/q_xor.inc cernlib-2005.dfsg/src/packlib/zebra/zebra/q_xor.inc
--- cernlib-2005.dfsg~/src/packlib/zebra/zebra/q_xor.inc	1996-04-18 12:15:26.000000000 -0400
+++ cernlib-2005.dfsg/src/packlib/zebra/zebra/q_xor.inc	2006-09-07 15:06:08.256545713 -0400
@@ -24,7 +24,7 @@
 #elif defined(CERNLIB_QMIBMSI)
       IEOR (IZV,IZW) = LXOR (IZV, IZW)
 
-#elif defined(CERNLIB_LNX)
+#elif (defined(CERNLIB_LNX))&&(!defined(CERNLIB_GFORTRAN))
       IEOR(IZV,IZW)  = XOR(IZV,IZW)
 
 #elif defined(CERNLIB_SUN)

cernlib_2005.dfsg-3.diff:

--- NEW FILE cernlib_2005.dfsg-3.diff ---
--- cernlib-2005.dfsg.orig/debian/control
+++ cernlib-2005.dfsg/debian/control
@@ -0,0 +1,405 @@
+Source: cernlib
+Maintainer: Kevin B. McCarty <kmccarty at debian.org>
+Standards-Version: 3.7.2
+Priority: optional
+Section: science
+Build-Depends: dpatch (>= 2.0.9), patch, mawk | gawk, xutils-dev, debhelper (>= 5.0.0), g77, cfortran (>= 4.4-8), x11proto-core-dev, libxt-dev, libx11-dev, lesstif2-dev, refblas3-dev | libblas-3.so, lapack3-dev | liblapack-3.so
+
+Package: cernlib-base
+Architecture: all
+Section: devel
+Conflicts: libcojets1-dev, libgeant1-dev, libherwig59-dev, libisajet758-dev, libkuipx11-1-dev, libmathlib1-dev, libpaw1-dev, libpdflib804-dev, libphtools1-dev, blas2-dev, lapack2-dev
+Description: script to determine Cernlib library dependencies
+ Cernlib is a suite of data analysis tools and libraries created for
+ use in physics experiments, but also with applications to other
+ fields such as the biological sciences.
+ .
+ This package includes the "cernlib" script that lists the command-line
+ options needed for linking against Cernlib libraries.  The script has
+ been rewritten from the upstream version to calculate
+ dependencies recursively.  Also included are a README.Debian with a summary
+ of changes made to Cernlib to fit it into Debian packaging practices,
+ a contributed set of Autoconf macros to test for Cernlib libraries, and a
+ set of Imake macros to allow Cernlib modules to be built out-of-tree.
+
+Package: cernlib-core-dev
+Architecture: all
+Section: devel
+Depends: cernlib-base (= ${Source-Version}), libgraflib1-dev, libgrafx11-1-dev, libkernlib1-dev, libpacklib1-lesstif-dev, libmathlib2-dev, libpacklib1-dev, libpawlib2-dev, libpawlib2-lesstif-dev, kuipc, dzedit
+Description: Cernlib development headers, tools, and static libraries
+ Cernlib is a suite of data analysis tools and libraries created for
+ use in physics experiments, but also with applications to other
+ fields such as the biological sciences.
+ .
+ This metapackage provides the header files and static libraries likely to be
+ wanted by developers using the Cern libraries who are not interested
+ specifically in high energy physics.  It also provides the Cernlib
+ development tools DZedit and KUIPC.  Cernlib analysis programs may be
+ obtained by installing the cernlib-core metapackage.
+
+Package: cernlib-core
+Architecture: all
+Section: science
+Depends: cernlib-base (= ${Source-Version}), kxterm, paw++, paw, paw-common, paw-demos
+Description: Cernlib main libraries and programs
+ Cernlib is a suite of data analysis tools and libraries created for
+ use in physics experiments, but also with applications to other
+ fields such as the biological sciences.
+ .
+ This metapackage provides the libraries and analysis tools (e.g. PAW) likely
+ to be wanted by most users of the Cern libraries who are not interested
+ specifically in high energy physics.  You cannot do program development by
+ installing only this metapackage; development libraries and tools may
+ be obtained by installing the cernlib-core-dev metapackage or individual
+ lib*-dev packages.
+
+Package: cernlib-extras
+Architecture: all
+Priority: extra
+Section: science
+Depends: cernlib-base (= ${Source-Version}), pawserv, zftp
+Description: miscellaneous Cernlib programs unlikely to be used by many
+ Cernlib is a suite of data analysis tools and libraries created for
+ use in physics experiments, but also with applications to other
+ fields such as the biological sciences.
+ .
+ This metapackage provides a few additional Cernlib programs not included
+ in any other Cernlib metapackage.  Very few people are likely to be
+ interested in them; currently they include zftp, pawserv and zserv.
+ Notice that the latter two programs run as daemons through inetd and may
+ reduce your system's security!
+ .
+ Installing this package along with the "cernlib" metapackage will supply
+ a complete set of all Cernlib programs and libraries included in Debian.
+
+Package: cernlib
+Architecture: all
+Section: science
+Depends: cernlib-base (= ${Source-Version}), cernlib-core, cernlib-core-dev, cernlib-montecarlo, geant321-data, geant321-doc, geant321, libgeant321-2, libgeant321-2-dev
+Description: almost complete set of Debian Cernlib packages
+ Cernlib is a suite of data analysis tools and libraries created for
+ use in physics experiments, but also with applications to other
+ fields such as the biological sciences.
+ .
+ This metapackage provides almost all of the programs and libraries contained
+ in Cernlib.  Most people will likely want only a subset of these.  A few
+ extra Cernlib programs, not of interest to many people, may be obtained via
+ the cernlib-extras metapackage.
+
+Package: dzedit
+Architecture: any
+Section: devel
+Depends: ${shlibs:Depends}
+Recommends: libpacklib1-dev
+Description: Cernlib's ZEBRA documentation editor
+ Cernlib is a suite of data analysis tools and libraries created for
+ use in physics experiments, but also with applications to other
+ fields such as the biological sciences.
+ .
+ DZedit is an interactive interface to the DZDOC (ZEBRA documentation) system
+ developed at CERN.  ZEBRA, part of the Packlib library, permits a developer to
+ create complex data structures in the FORTRAN 77 language; the DZDOC system
+ allows the developer to generate and maintain documentation of ZEBRA data
+ structures.
+
+Package: kuipc
+Architecture: any
+Section: devel
+Depends: ${shlibs:Depends}, cernlib-base
+Recommends: libpacklib1-dev
+Suggests: libpacklib1-lesstif-dev
+Description: Cernlib's Kit for a User Interface Package (KUIP) compiler
+ Cernlib is a suite of data analysis tools and libraries created for
+ use in physics experiments, but also with applications to other
+ fields such as the biological sciences.
+ .
+ KUIPC, the Kit for a User Interface Package Compiler, is a tool to simplify
+ the writing of a program's user interface code.  It takes as
+ input a Command Definition File (CDF) that describes the
+ commands to be understood by the program, and outputs C or FORTRAN code that
+ makes the appropriate function calls to set up the user interface.  This
+ code can then be compiled and linked with the rest of the program.  Since
+ the generated code uses KUIP routines, the program must also be linked
+ against the Packlib library that contains them.
+ .
+ KUIPC is no longer actively developed, so aside from its use in the build
+ process of Cernlib, it is of mainly historical interest.
+
+Package: kxterm
+Architecture: any
+Section: science
+Depends: ${shlibs:Depends}, cernlib-base
+Description: Cernlib's KUIP terminal emulator
+ Cernlib is a suite of data analysis tools and libraries created for
+ use in physics experiments, but also with applications to other
+ fields such as the biological sciences.
+ .
+ KXterm is a terminal emulator which combines the best features from
+ the (now defunct) Apollo DM pads (like: input and transcript
+ pads, automatic file backup of transcript pad, string search in pads,
+ etc.) and the Korn shell emacs-style command line editing and command
+ line recall mechanism.  It can support the command-line interface
+ of various Cernlib applications.
+
+Package: libgraflib1-dev
+Architecture: any
+Section: libdevel
+Depends: libgraflib1 (= ${Source-Version}), libgrafx11-1-dev (= ${Source-Version})
+Description: Cernlib graphical library (development files)
+ Cernlib is a suite of data analysis tools and libraries created for
+ use in physics experiments, but also with applications to other
+ fields such as the biological sciences.
+ .
+ The graflib library includes the HPLOT and DZDOC systems.  HPLOT is a
+ graphing facility intended to produce drawings and slides of histograms
+ (and other data) of a quality suitable to talks and publications.  DZDOC
+ provides a method of viewing Cernlib's ZEBRA data structures.  This package
+ includes a static version of graflib, as well as C and FORTRAN header files.
+
+Package: libgraflib1
+Architecture: any
+Section: libs
+Depends: ${shlibs:Depends}
+Description: Cernlib graphical library
+ Cernlib is a suite of data analysis tools and libraries created for
+ use in physics experiments, but also with applications to other
+ fields such as the biological sciences.
+ .
+ The graflib library includes the HPLOT and DZDOC systems.  HPLOT is a
+ graphing facility intended to produce drawings and slides of histograms
+ (and other data) of a quality suitable to talks and publications.  DZDOC
+ provides a method of viewing Cernlib's ZEBRA data structures.
+ .
+ Note that in order to compile and link programs against this library,
+ you must also install the libgraflib1-dev package.
+
+Package: libgrafx11-1-dev
+Architecture: any
+Section: libdevel
+Depends: libgrafx11-1 (= ${Source-Version}), libpacklib1-dev (= ${Source-Version}), libx11-dev (>= 4.3.0-3)
+Description: Cernlib library interface to X11 and PostScript (development)
+ Cernlib is a suite of data analysis tools and libraries created for
+ use in physics experiments, but also with applications to other
+ fields such as the biological sciences.
+ .
+ This package includes a static version of libgrafX11, also known as HIGZ
+ (High-level Interface to Graphics and ZEBRA), an interface to the X Window
+ System.  In addition to basic drawing functions, HIGZ includes a PostScript
+ interface.  Also included are C and FORTRAN header files.
+
+Package: libgrafx11-1
+Architecture: any
+Section: libs
+Depends: ${shlibs:Depends}
+Description: Cernlib library interface to X11 and PostScript
+ Cernlib is a suite of data analysis tools and libraries created for
+ use in physics experiments, but also with applications to other
[...16761 lines suppressed...]
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=1; plural=0\n"
+
+#. Type: select
+#. Choices
+#. Note to translators: only the English word "Both" below should be translated
+#: ./pawserv.templates.master:4
+msgid "Pawserv, Zserv, Both"
+msgstr "Pawserv, Zserv, Cả hai"
+
+#. Type: select
+#. Description
+#: ../pawserv.templates.master:6
+msgid "Servers to be run from inetd"
+msgstr "Máy phục vụ cần chạy từ trình inetd"
+
+#. Type: select
+#. Description
+#: ./pawserv.templates.master:6
+msgid ""
+"This package includes both the pawserv daemon (permitting remote hosts to "
+"read local files while running PAW/Paw++) and the zserv daemon (allowing "
+"remote hosts to log in using CERN's ZFTP protocol).  These servers are run "
+"from inetd; you may enable either or both of them. Unless you have very "
+"specialized requirements, most likely you only want to enable pawserv."
+msgstr "Gói tin này bao gồm cả hai trình nền (dæmon) pawserv (mà cho phép máy tờ xa đọc tập tin địa phương trong khi chạy PAW/Paw++) và trình nền zserv (mà cho phép máy từ xa đăng nhập dùng giao thức ZFTP của CERN). Cả hai trình phục vụ này được chạy từ trình nền inetd; bạn có thể hiệu lực một hay cả hai điều. Tuy nhiên, trừ bạn cần thiết làm việc rất đặc biệt, rất có thể là bạn sẽ muốn hiệu lực chỉ trình pawserv."
--- cernlib-2005.dfsg.orig/debian/po/pt_BR.po
+++ cernlib-2005.dfsg/debian/po/pt_BR.po
@@ -0,0 +1,55 @@
+#
+#    Translators, if you are not familiar with the PO format, gettext
+#    documentation is worth reading, especially sections dedicated to
+#    this format, e.g. by running:
+#         info -n '(gettext)PO Files'
+#         info -n '(gettext)Header Entry'
+#
+#    Some information specific to po-debconf are available at
+#            /usr/share/doc/po-debconf/README-trans
+#         or http://www.debian.org/intl/l10n/po-debconf/README-trans
+#
+#    Developers do not need to manually edit POT or PO files.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: cernlib\n"
+"Report-Msgid-Bugs-To: debian-l10n-portuguese at lists.debian.org\n"
+"POT-Creation-Date: 2004-02-25 17:23-0500\n"
+"PO-Revision-Date: 2005-05-26 16:05-0300\n"
+"Last-Translator: André Luís Lopes <andrelop at debian.org>\n"
+"Language-Team: Debian-BR Project <debian-l10n-portuguese at lists.debian.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=ISO-8859-1\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. Type: select
+#. Choices
+#. Note to translators: only the English word "Both" below should be translated
+#: ../pawserv.templates.master:4
+msgid "Pawserv, Zserv, Both"
+msgstr "Pawserv, Zserv, Ambos"
+
+#. Type: select
+#. Description
+#: ../pawserv.templates.master:6
+msgid "Servers to be run from inetd"
+msgstr "Servidores a serem executados a partir do inetd"
+
+#. Type: select
+#. Description
+#: ../pawserv.templates.master:6
+msgid ""
+"This package includes both the pawserv daemon (permitting remote hosts to "
+"read local files while running PAW/Paw++) and the zserv daemon (allowing "
+"remote hosts to log in using CERN's ZFTP protocol).  These servers are run "
+"from inetd; you may enable either or both of them. Unless you have very "
+"specialized requirements, most likely you only want to enable pawserv."
+msgstr ""
+"Este pacote inclui ambos o daemon pawserv (permitindo hosts remotos "
+"lerem arquivos locais enquanto executando PAW/Paw++) e o daemon zerv "
+"(permitindo hosts remotos a se autenticarem usando o protocolo ZFTP "
+"do CERN). Esses servidores são executados a partir do inetd; você "
+"pode habilitar cada um deles separadamente ou ambos. A menos que você "
+"possua necessidades bastante especializadas, você provavelmente irá "
+"desejar habilitar somente o pawserv."
--- cernlib-2005.dfsg.orig/debian/po/sv.po
+++ cernlib-2005.dfsg/debian/po/sv.po
@@ -0,0 +1,53 @@
+# Translators, if you are not familiar with the PO format, gettext
+# documentation is worth reading, especially sections dedicated to
+# this format, e.g. by running:
+# info -n '(gettext)PO Files'
+# info -n '(gettext)Header Entry'
+# Some information specific to po-debconf are available at
+# /usr/share/doc/po-debconf/README-trans
+# or http://www.debian.org/intl/l10n/po-debconf/README-trans
+# Developers do not need to manually edit POT or PO files.
+# , fuzzy
+# 
+# 
+msgid ""
+msgstr ""
+"Project-Id-Version: cernlib 2005.05.09-4\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2004-02-25 17:23-0500\n"
+"PO-Revision-Date: 2005-10-06 23:50+0200\n"
+"Last-Translator: Daniel Nylander <po at danielnylander.se>\n"
+"Language-Team: Swedish <sv at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=iso-8859-1\n"
+"Content-Transfer-Encoding: 8bit"
+
+#. Type: select
+#. Choices
+#. Note to translators: only the English word "Both" below should be translated
+#: ../pawserv.templates.master:4
+msgid "Pawserv, Zserv, Both"
+msgstr "Pawserv, Zserv, Båda"
+
+#. Type: select
+#. Description
+#: ../pawserv.templates.master:6
+msgid "Servers to be run from inetd"
+msgstr "Servrar som ska köras från inetd"
+
+#. Type: select
+#. Description
+#: ../pawserv.templates.master:6
+msgid ""
+"This package includes both the pawserv daemon (permitting remote hosts to "
+"read local files while running PAW/Paw++) and the zserv daemon (allowing "
+"remote hosts to log in using CERN's ZFTP protocol).  These servers are run "
+"from inetd; you may enable either or both of them. Unless you have very "
+"specialized requirements, most likely you only want to enable pawserv."
+msgstr ""
+"Detta paket inkluderar både pawserver-daemonen (tillåter fjärrsystem att "
+"läsa lokala filer när PAW/Paw++ körs) och zserv-daemonen (tillåter fjärrsystem "
+"att logga in med CERN's ZFTP-protokoll).  Dessa servrar körs från inetd; du måste "
+"aktivera någon eller båda av dom. Om du inte har speciella krav så räcker det gott "
+"om pawserv aktiveras."
+
--- cernlib-2005.dfsg.orig/debian/po/es.po
+++ cernlib-2005.dfsg/debian/po/es.po
@@ -0,0 +1,55 @@
+# cernlib po-debconf translation to Spanish
+# Copyright (C) 2005 Software in the Public Interest
+# This file is distributed under the same license as the cernlib package.
+#
+# Changes:
+#  - Initial translation
+#         César Gómez Martín <cesar.gomez at gmail.com>
+#
+#   Traductores, si no conoce el formato PO, merece la pena leer la
+#   documentación de gettext, especialmente las secciones dedicadas a este
+#   formato, por ejemplo ejecutando:
+#          info -n '(gettext)PO Files'
+#          info -n '(gettext)Header Entry'
+# Equipo de traducción al español, por favor, lean antes de traducir
+# los siguientes documentos:
+#
+#  - El proyecto de traducción de Debian al español
+#    http://www.debian.org/intl/spanish/
+#    especialmente las notas de traducción en
+#    http://www.debian.org/intl/spanish/notas
+#
+#  - La guía de traducción de po's de debconf:
+#    /usr/share/doc/po-debconf/README-trans
+#    o http://www.debian.org/intl/l10n/po-debconf/README-trans
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: cernlib\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2004-02-25 17:23-0500\n"
+"PO-Revision-Date: 2005-09-01 17:49+0100\n"
+"Last-Translator: César Gómez Martín <cesar.gomez at gmail.com>\n"
+"Language-Team: Debian l10n spanish <debian-l10n-spanish at lists.debian.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=utf-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Poedit-Language: Spanish\n"
+"X-Poedit-Country: SPAIN\n"
+"X-Poedit-SourceCharset: utf-8\n"
+
+#. Type: select
+#: ../pawserv.templates.master:4
+msgid "Pawserv, Zserv, Both"
+msgstr "Pawserv, Zserv, Ambos"
+
+#. Type: select
+#: ../pawserv.templates.master:6
+msgid "Servers to be run from inetd"
+msgstr "Servidores a ejecutar desde inetd"
+
+#. Type: select
+#: ../pawserv.templates.master:6
+msgid "This package includes both the pawserv daemon (permitting remote hosts to read local files while running PAW/Paw++) and the zserv daemon (allowing remote hosts to log in using CERN's ZFTP protocol).  These servers are run from inetd; you may enable either or both of them. Unless you have very specialized requirements, most likely you only want to enable pawserv."
+msgstr "Este paquete incluye el demonio pawserv (permite a las máquinas remotas leer ficheros locales mientras se ejecuta PAW/Paw++)  y el demonio zserv (permite a las máquinas remotas conectarse a través del protocolo ZFTP del CERN). Estos servidores se ejecutan desde inetd; puede habilitar cualquiera de ellos o los dos. A no ser que tenga algunos requisitos muy especializados, lo más probable es que sólo quiera habilitar pawserv."
+


--- NEW FILE paw-119-fix-compiler-warnings.dpatch ---
#! /bin/sh /usr/share/dpatch/dpatch-run
## 119-fix-compiler-warnings.dpatch by  <kmccarty at debian.org>
##
## All lines beginning with `## DP:' are a description of the patch.
## DP: Fix a number of compiler warnings.  Courtesy of Harald Vogt.

@DPATCH@
diff -urNad paw-2.14.04~/src/pawlib/paw/ntuple/qp_vvec.c paw-2.14.04/src/pawlib/paw/ntuple/qp_vvec.c
--- paw-2.14.04~/src/pawlib/paw/ntuple/qp_vvec.c	1996-05-12 11:13:56.000000000 -0400
+++ paw-2.14.04/src/pawlib/paw/ntuple/qp_vvec.c	2006-09-07 17:41:07.574458016 -0400
@@ -19,6 +19,7 @@
  */
 
 #include	<stdlib.h>
+#include	<string.h>
 
 #include	"qp_report.h"
 #include	"qp_vvec.h"
diff -urNad paw-2.14.04~/src/pawlib/paw/xbae/caption.c paw-2.14.04/src/pawlib/paw/xbae/caption.c
--- paw-2.14.04~/src/pawlib/paw/xbae/caption.c	1996-03-01 06:39:36.000000000 -0500
+++ paw-2.14.04/src/pawlib/paw/xbae/caption.c	2006-09-07 17:41:07.576457590 -0400
@@ -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 -urNad paw-2.14.04~/src/pawlib/paw/xbae/clip.c paw-2.14.04/src/pawlib/paw/xbae/clip.c
--- paw-2.14.04~/src/pawlib/paw/xbae/clip.c	1996-03-01 06:39:36.000000000 -0500
+++ paw-2.14.04/src/pawlib/paw/xbae/clip.c	2006-09-07 17:41:07.577457377 -0400
@@ -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 -urNad paw-2.14.04~/src/pawlib/paw/xbae/matrix.c paw-2.14.04/src/pawlib/paw/xbae/matrix.c
--- paw-2.14.04~/src/pawlib/paw/xbae/matrix.c	1998-09-02 11:23:57.000000000 -0400
+++ paw-2.14.04/src/pawlib/paw/xbae/matrix.c	2006-09-07 17:41:07.582456313 -0400
@@ -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
          */


--- NEW FILE paw-320-support-ifort-and-gfortran.dpatch ---
#! /bin/sh /usr/share/dpatch/dpatch-run
## 320-support-ifort-and-gfortran.dpatch by  <kmccarty at debian.org>
##
## All lines beginning with `## DP:' are a description of the patch.
## DP: Support use of ifort, icc and/or gfortran as default compilers.

@DPATCH@
diff -urNad paw-2.14.04~/src/pawlib/comis/code/csinit.F paw-2.14.04/src/pawlib/comis/code/csinit.F
--- paw-2.14.04~/src/pawlib/comis/code/csinit.F	2006-09-07 17:57:19.881356063 -0400
+++ paw-2.14.04/src/pawlib/comis/code/csinit.F	2006-09-07 18:04:23.085153626 -0400
@@ -217,8 +217,18 @@
 #endif
 #if (defined(CERNLIB_LINUX))
       ITMPLEN=CSTMPD(CHPATH, 256)
+# if (defined(CERNLIB_GFORTRAN))
+      CHF77 ='gfortran -g -c -fPIC'
+# elif (defined(CERNLIB_INTELIFC))
+      CHF77 ='ifort -g -c -fPIC'
+# else
       CHF77 ='g77 -g -c -fPIC'
+# endif
+# if (defined(CERNLIB_INTELIFC))
+      CHCC  ='icc -g -c -fPIC'
+# else
       CHCC  ='cc -g -c -fPIC'
+# endif
 #endif
 #if (defined(CERNLIB_SGI))&&(defined(CERNLIB_SHL))
       ITMPLEN=CSTMPD(CHPATH, 256)
diff -urNad paw-2.14.04~/src/pawlib/paw/ntuple/Imakefile paw-2.14.04/src/pawlib/paw/ntuple/Imakefile
--- paw-2.14.04~/src/pawlib/paw/ntuple/Imakefile	2006-09-07 17:57:19.916348611 -0400
+++ paw-2.14.04/src/pawlib/paw/ntuple/Imakefile	2006-09-07 17:57:35.628002463 -0400
@@ -16,9 +16,17 @@
 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

paw_2.14.04-3.diff:

--- NEW FILE paw_2.14.04-3.diff ---
--- paw-2.14.04.orig/debian/control
+++ paw-2.14.04/debian/control
@@ -0,0 +1,194 @@
+Source: paw
+Maintainer: Kevin B. McCarty <kmccarty at debian.org>
+Standards-Version: 3.7.2
+Priority: optional
+Section: science
+Build-Depends: dpatch (>= 2.0.9), patch, mawk | gawk, xutils-dev, debhelper (>= 5.0.0), g77, cfortran (>= 4.4-8), x11proto-core-dev, libxt-dev, libx11-dev, lesstif2-dev, libmathlib2-dev, libkernlib1-dev (>= 2005.dfsg-3), libpacklib1-dev (>= 2005.dfsg-3), libgraflib1-dev, libgrafx11-1-dev, libpacklib1-lesstif-dev, kuipc, cernlib-base (>= 2005.05.09.dfsg-9)
+
+Package: libpawlib2-dev
+Architecture: any
+Section: libdevel
+Depends: libpawlib2 (= ${Source-Version}), libgraflib1-dev, libmathlib2-dev
+Replaces: libpaw1-dev
+Conflicts: libpaw1-dev
+Suggests: libpawlib2-lesstif-dev
+Description: Cernlib PAW library - portion without Lesstif (development files)
+ Cernlib is a suite of data analysis tools and libraries created for
+ use in physics experiments, but also with applications to other
+ fields such as the biological sciences.
+ .
+ This package includes a static version of (most of) the library pawlib,
+ required by the Cernlib application PAW.  In addition to the internal workings
+ of PAW, pawlib also provides the COMIS FORTRAN interpreter and the SIGMA array
+ manipulation language.  The Lesstif-dependent parts of the library are
+ provided in the libpawlib2-lesstif-dev package.
+ .
+ The COMIS portion of this library is functional on AMD64 machines only
+ when statically linked, and not at all on other 64-bit platforms.
+
+Package: libpawlib2-lesstif-dev
+Architecture: any
+Section: libdevel
+Conflicts: libpaw1-dev
+Replaces: libpaw1-dev
+Depends: libpawlib2-lesstif (= ${Source-Version}), libpawlib2-dev (= ${Source-Version}), libpacklib1-lesstif-dev, lesstif2-dev
+Description: Cernlib PAW library (Lesstif-dependent part - development files)
+ Cernlib is a suite of data analysis tools and libraries created for
+ use in physics experiments, but also with applications to other
+ fields such as the biological sciences.
+ .
+ This package includes the Lesstif-dependent parts of the library pawlib,
+ required by the Cernlib application Paw++, in a static version.  The remainder
+ of pawlib is provided in the package libpawlib2-dev.
+ .
+ The COMIS portion of pawlib is functional on AMD64 machines only when
+ statically linked, and not at all on other 64-bit platforms.
+
+Package: libpawlib2-lesstif
+Architecture: any
+Section: libs
+Depends: ${shlibs:Depends}
+Description: Cernlib PAW library (Lesstif-dependent part)
+ Cernlib is a suite of data analysis tools and libraries created for
+ use in physics experiments, but also with applications to other
+ fields such as the biological sciences.
+ .
+ This package includes the Lesstif-dependent parts of the library pawlib,
+ required by the Cernlib application Paw++.  Note that in order to compile and
+ link programs against this library, you must also install the
+ libpawlib2-lesstif-dev package.  The remainder of pawlib is provided in the
+ package libpawlib2.
+ .
+ The COMIS portion of pawlib is functional on AMD64 machines only when
+ statically linked, and not at all on other 64-bit platforms.
+
+Package: libpawlib2
+Architecture: any
+Section: libs
+Depends:  ${shlibs:Depends}, g77, netbase (>= 4.08)
+Recommends: libc6-dev | libc-dev
+Description: Cernlib PAW library - portion without Lesstif dependencies
+ Cernlib is a suite of data analysis tools and libraries created for
+ use in physics experiments, but also with applications to other
+ fields such as the biological sciences.
+ .
+ This package includes (most of) the library pawlib, required by the Cernlib
+ application PAW.  In addition to the internal workings of PAW, pawlib
+ also provides the COMIS FORTRAN interpreter and the SIGMA array
+ manipulation language.  The Lesstif-dependent parts of the library are
+ provided in the libpawlib2-lesstif package.
+ .
+ Note that in order to compile and link programs against this library, you
+ must install the libpawlib2-dev and maybe also the libpawlib2-lesstif-dev
+ package(s).
+ .
+ The COMIS portion of this library is functional on AMD64 machines only
+ when statically linked, and not at all on other 64-bit platforms.
+
+Package: paw++-static
+Architecture: any
+Section: science
+Depends: paw++ (>= 2005.05.09.dfsg-3)
+Description: Dummy package for smooth upgrades of Paw++
+ Cernlib is a suite of data analysis tools and libraries created for
+ use in physics experiments, but also with applications to other
+ fields such as the biological sciences.
+ Paw++ is an interactive program for use in analysis and graphical presentation.
+ .
+ The paw++ package has been changed to include a dynamically linked version
+ of Paw++ on 32-bit architectures and a statically linked version on 64-bit
+ architectures.  This package, paw++-static, is therefore now an empty dummy
+ package that depends upon paw++ in order to ensure smooth upgrades.  On
+ 64-bit arches it provides a backwards-compatibility symlink
+ /usr/bin/paw++.static -> paw++.  Unless you need the symlink, this package
+ may be removed with no ill effects.
+
+Package: paw++
+Architecture: any
+Section: science
+Depends: ${shlibs:Depends}, paw-common, kxterm, g77, netbase (>= 4.08)
+Suggests: paw-demos, gv
+Provides: paw-binary
+Replaces: paw-common (<< 2005.05.09.dfsg-3)
+Description: Physics Analysis Workstation (Lesstif-enhanced version)
+ Cernlib is a suite of data analysis tools and libraries created for
+ use in physics experiments, but also with applications to other
+ fields such as the biological sciences.
+ .
+ This package includes Paw++, an interactive program for use in analysis and
+ graphical presentation.  Paw++ is the same program as PAW (in the "paw"
+ package), but with a more user-friendly Motif-based GUI, compiled against
+ Lesstif in Debian.
+ .
+ The program is linked statically against the CERN libraries on
+ 64-bit architectures in order to function properly, as its design is not
+ very 64-bit clean.  Even so, AMD64 is the only 64-bit platform where it
+ functions well.
+
+Package: paw-common
+Architecture: all
+Section: science
+Depends: cernlib-base, netbase (>= 4.08)
+Recommends: libc6-dev | libc-dev, paw | paw-binary
+Description: Physics Analysis Workstation (common files)
+ Cernlib is a suite of data analysis tools and libraries created for
+ use in physics experiments, but also with applications to other
+ fields such as the biological sciences.
+ .
+ This package includes arch-independent files for PAW, an interactive
+ program for use in analysis and graphical presentation.  This package
+ is useless without also installing the paw or paw++ package.
+
+Package: paw-demos
+Architecture: all
+Section: science
+Depends: paw | paw-binary
+Description: Physics Analysis Workstation examples and tests
+ Cernlib is a suite of data analysis tools and libraries created for
+ use in physics experiments, but also with applications to other
+ fields such as the biological sciences.
+ .
+ This package includes example scripts for use by PAW or Paw++, and test
+ scripts to make sure that the PAW or Paw++ programs behave correctly.  You
+ may run the examples and tests with the included paw-demos program.
+
+Package: paw-static
+Architecture: any
+Section: science
+Depends: paw (>= 2005.05.09.dfsg-3)
+Description: Dummy package for smooth upgrades of PAW
+ Cernlib is a suite of data analysis tools and libraries created for
+ use in physics experiments, but also with applications to other
+ fields such as the biological sciences.
+ PAW is an interactive program for use in analysis and graphical presentation.
+ .
+ The paw package has been changed to include a dynamically linked version
+ of PAW on 32-bit architectures and a statically linked version on 64-bit
+ architectures.  This package, paw-static, is therefore now an empty dummy
+ package that depends upon paw in order to ensure smooth upgrades.  On
+ 64-bit arches it provides a backwards-compatibility symlink
+ /usr/bin/pawX11.static -> pawX11.  Unless you need the symlink, this package
+ may be removed with no ill effects.
+
+Package: paw
+Architecture: any
+Section: science
+Depends: ${shlibs:Depends}, paw-common, g77, netbase (>= 4.08)
+Suggests: paw-demos, gv
+Provides: paw-binary
+Replaces: paw-common (<< 2005.05.09.dfsg-3)
+Description: Physics Analysis Workstation - a graphical analysis program
+ Cernlib is a suite of data analysis tools and libraries created for
+ use in physics experiments, but also with applications to other
+ fields such as the biological sciences.
+ .
+ PAW is an interactive program providing interactive graphical presentation
+ and statistical and mathematical analysis tools.  It is designed to work
+ on objects familiar to physicists such as histograms, event files (Ntuples),
+ vectors, etc.
+ .
+ The program is linked statically against the CERN libraries on 64-bit
+ architectures in order to function properly, as its design is not
+ very 64-bit clean.  Even so, AMD64 is the only 64-bit platform where it
+ functions well.
+
--- paw-2.14.04.orig/debian/copyright
+++ paw-2.14.04/debian/copyright
[...5919 lines suppressed...]
+# the debian-policy package
+
+
+case "$1" in
+    install|upgrade)
+    	# Remove any existing alternative for paw++
+	if [ -L /usr/bin/paw++ ] ; then
+		update-alternatives --remove-all paw++
+	fi
+    ;;
+
+    abort-upgrade)
+    ;;
+
+    *)
+        echo "preinst called with unknown argument \`$1'" >&2
+        exit 1
+    ;;
+esac
+
+# dh_installdeb will replace this with shell code automatically
+# generated by other debhelper scripts.
+
+#DEBHELPER#
+
+exit 0
+
+
--- paw-2.14.04.orig/debian/debhelper/libpawlib2-dev.docs
+++ paw-2.14.04/debian/debhelper/libpawlib2-dev.docs
@@ -0,0 +1 @@
+debian/README.64-bit
--- paw-2.14.04.orig/debian/debhelper/libpawlib2.install
+++ paw-2.14.04/debian/debhelper/libpawlib2.install
@@ -0,0 +1,2 @@
+debian/tmp/usr/lib/libpawlib.so.2.2005
+debian/tmp/usr/lib/libpawlib.so.2
--- paw-2.14.04.orig/debian/debhelper/libpawlib2-dev.dirs
+++ paw-2.14.04/debian/debhelper/libpawlib2-dev.dirs
@@ -0,0 +1,3 @@
+usr/lib
+usr/include
+usr/include/cfortran
--- paw-2.14.04.orig/debian/debhelper/libpawlib2.dirs
+++ paw-2.14.04/debian/debhelper/libpawlib2.dirs
@@ -0,0 +1 @@
+usr/lib
--- paw-2.14.04.orig/debian/debhelper/libpawlib2-lesstif.dirs
+++ paw-2.14.04/debian/debhelper/libpawlib2-lesstif.dirs
@@ -0,0 +1 @@
+usr/lib
--- paw-2.14.04.orig/debian/debhelper/paw-common.dirs
+++ paw-2.14.04/debian/debhelper/paw-common.dirs
@@ -0,0 +1,3 @@
+usr/bin
+usr/share/pixmaps
+etc/X11/app-defaults
--- paw-2.14.04.orig/debian/debhelper/libpawlib2-dev.links
+++ paw-2.14.04/debian/debhelper/libpawlib2-dev.links
@@ -0,0 +1,2 @@
+usr/include/comis.h usr/include/cfortran/comis.h
+usr/include/paw.h   usr/include/cfortran/paw.h
--- paw-2.14.04.orig/debian/debhelper/paw-demos.install
+++ paw-2.14.04/debian/debhelper/paw-demos.install
@@ -0,0 +1,3 @@
+debian/tmp/usr/bin/paw-demos
+debian/tmp/usr/share/paw-demos/
+debian/tmp/usr/share/man/man1/paw-demos.1
--- paw-2.14.04.orig/debian/debhelper/libpawlib2-dev.examples
+++ paw-2.14.04/debian/debhelper/libpawlib2-dev.examples
@@ -0,0 +1 @@
+src/cfortran/Examples/pamain.c
--- paw-2.14.04.orig/debian/debhelper/paw-demos.dirs
+++ paw-2.14.04/debian/debhelper/paw-demos.dirs
@@ -0,0 +1,2 @@
+usr/bin
+usr/share/paw-demos
--- paw-2.14.04.orig/debian/debhelper/libpawlib2-dev.install
+++ paw-2.14.04/debian/debhelper/libpawlib2-dev.install
@@ -0,0 +1,8 @@
+debian/tmp/usr/lib/libpawlib.a
+debian/tmp/usr/lib/libpawlib.so
+debian/tmp/usr/include/comis.h
+debian/tmp/usr/include/paw.h
+debian/tmp/usr/include/paw.car
+debian/tmp/usr/include/comis/
+debian/tmp/usr/include/paw/
+debian/tmp/usr/include/sigma/
--- paw-2.14.04.orig/debian/debhelper/paw-demos.links
+++ paw-2.14.04/debian/debhelper/paw-demos.links
@@ -0,0 +1 @@
+usr/share/paw-demos usr/share/doc/paw-demos/examples
--- paw-2.14.04.orig/debian/debhelper/libpawlib2-lesstif.install
+++ paw-2.14.04/debian/debhelper/libpawlib2-lesstif.install
@@ -0,0 +1,2 @@
+debian/tmp/usr/lib/libpawlib-lesstif.so.2.2005
+debian/tmp/usr/lib/libpawlib-lesstif.so.2
--- paw-2.14.04.orig/debian/debhelper/libpawlib2-lesstif-dev.install
+++ paw-2.14.04/debian/debhelper/libpawlib2-lesstif-dev.install
@@ -0,0 +1,2 @@
+debian/tmp/usr/lib/libpawlib-lesstif.a
+debian/tmp/usr/lib/libpawlib-lesstif.so
--- paw-2.14.04.orig/debian/README.64-bit
+++ paw-2.14.04/debian/README.64-bit
@@ -0,0 +1,49 @@
+64-bit specific Cernlib issues
+------------------------------
+
+If you are intending to use CERN libraries on a 64-bit platform (such as
+the Itanium [ia64], Alpha, or AMD64 / EMT64 [amd64] Debian architectures),
+you should be aware of some potential problems.
+
+Cernlib was never designed to run on machines where the size of a pointer
+is 64 bits.  The code implicitly assumes that
+	sizeof(void *) == sizeof(int) == 4
+in many different places.  The biggest culprits are the ZEBRA and COMIS sets
+of routines in the packlib and pawlib libraries, respectively.  This would be
+difficult to fix without rewriting megabytes of FORTRAN source code.
+
+Harald Vogt has, however, succeeded in putting together enough workarounds
+to permit PAW and Paw++ to run on some 64-bit machines.  These workarounds
+are valid only when the entire set of code in a program's memory space can
+be addressed by 32-bit values.  This will generally be true for statically
+linked programs, but not for dynamically linked ones.  Furthermore, they
+do not really work on the alpha and ia64 architectures, but only on amd64,
+due to the different choices made between the architectures for virtual
+memory layouts.  (Basically, the amd64 Linux port keeps shared library
+code, data, and static variables within a pointer range addressable by 32-bit
+values; ia64 and alpha do not.)
+
+To summarize, many of the CERN libraries on 64-bit machines may not work well
+except on the amd64 architecture, and there only when linked against
+statically.  Routines outside of ZEBRA and COMIS may be safe to use outside
+of these conditions, but I would not bet money on it.
+
+Static linking is the default behavior if you use the "cernlib" script when
+linking, like this:
+
+	# Should work everywhere:
+	g77 -o myprogram myprogram.F ‘cernlib -G Motif pawlib‘
+
+but not if you directly tell the library names to the compiler, like this:
+
+	# Possibly results in a non-working program on 64-bit!
+	g77 -o myprogram myprogram.F -lpawlib -lpacklib ...
+
+For more information, please see Harald Vogt's web page about Cernlib ported
+to 64-bit machines:
+        http://www-zeuthen.desy.de/linear_collider/cernlib/cernlib_2005.html
+
+If you are using an AMD64 machine, please also see the file
+/usr/share/doc/cernlib-base/README.amd64 for important additional information.
+
+-- Kevin McCarty <kmccarty at debian.org>, Tue, 16 May 2006
--- paw-2.14.04.orig/debian/addresstest.c
+++ paw-2.14.04/debian/addresstest.c
@@ -0,0 +1,43 @@
+#include <stdio.h>
+#include <stdlib.h>
+#include <errno.h>
+
+/* stupid program to figure out where ia64 puts stuff */
+
+extern int errno;
+int output(void) { return 5; }
+int foo;
+int bar = 12;
+int baz[100];
+
+int main(void)
+{
+	int foo2;
+	int bar2 = 12;
+	static int bar3 = 5;
+	char baz2[100];
+	static char baz3[100] = { 0, };
+	char * m;
+
+	m = malloc(5);
+	
+	printf("shared lib function (malloc) = %p\n", (void *)malloc);
+	printf("shared lib variable (errno) =  %p\n\n", (void *)&errno);
+	printf("local function (output) =      %p\n", (void *)output);
+	printf("local function (main) =        %p\n", (void *)main);
+	printf("constant string (\"str\") =      %p\n\n", (void *)"str");
+	printf("static variable (foo) =        %p\n", (void *)&foo);
+	printf("constant (bar) =               %p\n", (void *)&bar);
+	printf("static array (baz) =           %p\n", (void *)baz);
+	printf("static local variable (bar3) = %p\n", (void *)&bar3);
+	printf("static local array (baz3) =    %p\n", (void *)baz3);
+	printf("memory on heap (m) =           %p\n\n", (void *)m);
+	// I thought the stack on ia64 was supposed to be 0x8... up to 0xa...
+	// why aren't the following found at 0x9fff... ?
+	printf("automatic variable (foo2) =    %p\n", (void *)&foo2);
+	printf("const auto variable (bar2) =   %p\n", (void *)&bar2);
+	printf("automatic array (baz2) =       %p\n", (void *)baz2);
+	
+	return 0;
+}
+


Index: cernlib-115-rsrtnt64-goto-outer-block.dpatch
===================================================================
RCS file: /cvs/extras/rpms/cernlib/devel/cernlib-115-rsrtnt64-goto-outer-block.dpatch,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- cernlib-115-rsrtnt64-goto-outer-block.dpatch	1 Sep 2006 13:15:22 -0000	1.1
+++ cernlib-115-rsrtnt64-goto-outer-block.dpatch	11 Sep 2006 22:32:35 -0000	1.2
@@ -4,68 +4,101 @@
 ## All lines beginning with `## DP:' are a description of the patch.
 ## DP: Patch from Patrice Dumas <pertusus at free.fr> to fix spaghetti code in
 ## DP: rsrtnt64.F that breaks linking step on Itanium.
+## DP: Also, following Harald Vogt, change indicators of line continuation
+## DP: from "1" -> "&" to be compatible with gfortran.
 
 @DPATCH@
-diff -urNad cernlib-2005.05.09.dfsg~/src/mathlib/gen/b/rsrtnt64.F cernlib-2005.05.09.dfsg/src/mathlib/gen/b/rsrtnt64.F
---- cernlib-2005.05.09.dfsg~/src/mathlib/gen/b/rsrtnt64.F	1996-04-01 10:01:51.000000000 -0500
-+++ cernlib-2005.05.09.dfsg/src/mathlib/gen/b/rsrtnt64.F	2005-12-06 11:22:08.500724891 -0500
-@@ -117,8 +117,15 @@
+diff -urNad cernlib-2005.dfsg~/src/mathlib/gen/b/rsrtnt64.F cernlib-2005.dfsg/src/mathlib/gen/b/rsrtnt64.F
+--- cernlib-2005.dfsg~/src/mathlib/gen/b/rsrtnt64.F	1996-04-01 10:01:51.000000000 -0500
++++ cernlib-2005.dfsg/src/mathlib/gen/b/rsrtnt64.F	2006-09-06 14:12:38.087369193 -0400
+@@ -53,7 +53,7 @@
+       IF(LLL) GO TO 9
+ 
+       LLL=K .GE. 0 .OR. K .EQ. -1 .AND. U*V .NE. 0
+-     1             .OR. K .LE. -2 .AND. U*V .GT. 0
++     &             .OR. K .LE. -2 .AND. U*V .GT. 0
+       IF(.NOT.LLL) GO TO 9
+ 
+       DELTA=4*A*C-B**2
+@@ -117,9 +117,16 @@
          ENDIF
         ELSE
          IF(N .EQ. 1) THEN
 -         ASSIGN 11 TO JMP1
 -         GO TO 10
+-   11    IF(K .EQ. 0) THEN
 +      C2=2*C
 +      IF(DELTA .GT. 0 .OR. DELTA .LT. 0 .AND. C .GT. 0) THEN
 +       H=LOG(ABS((2*SQRT(C*P(V))+C2*V+B)/
-+     1           (2*SQRT(C*P(U))+C2*U+B)))/SQRT(C)
++     &           (2*SQRT(C*P(U))+C2*U+B)))/SQRT(C)
 +      ELSEIF(DELTA .EQ. 0) THEN
 +       H=ABS(LOG(ABS((C2*V+B)/(C2*U+B))))/SQRT(C)
 +      ELSE
 +       H=(ASIN((C2*U+B)/RTD)-ASIN((C2*V+B)/RTD))/SQRT(-C)
 +      ENDIF
-    11    IF(K .EQ. 0) THEN
++         IF(K .EQ. 0) THEN
            H=H
           ELSEIF(K .EQ. 1) THEN
-@@ -174,14 +181,28 @@
+           H=(RT(V)-RT(U)-HF*B*H)/C
+@@ -134,7 +141,7 @@
+           G2=A*C
+           H3=G1-16*G2
+           H=(((H1*V-H2)*V+H3)*RT(V)-((H1*U-H2)*U+H3)*RT(U)-
+-     1       (HF*G1-18*G2)*B*H)/(24*C**3)
++     &       (HF*G1-18*G2)*B*H)/(24*C**3)
+          ENDIF
+         ELSE
+          IF(DELTA .EQ. 0) THEN
+@@ -174,21 +181,35 @@
             H=2*((H1+B*U)/RT(U)-(H1+B*V)/RT(V))/DELTA
             LB1=11
            ELSEIF(K .EQ. 2) THEN
 -           ASSIGN 12 TO JMP1
 -           GO TO 10
+-   12      H1=DELTA-B**2
 +      C2=2*C
 +      IF(DELTA .GT. 0 .OR. DELTA .LT. 0 .AND. C .GT. 0) THEN
 +       H=LOG(ABS((2*SQRT(C*P(V))+C2*V+B)/
-+     1           (2*SQRT(C*P(U))+C2*U+B)))/SQRT(C)
++     &           (2*SQRT(C*P(U))+C2*U+B)))/SQRT(C)
 +      ELSEIF(DELTA .EQ. 0) THEN
 +       H=ABS(LOG(ABS((C2*V+B)/(C2*U+B))))/SQRT(C)
 +      ELSE
 +       H=(ASIN((C2*U+B)/RTD)-ASIN((C2*V+B)/RTD))/SQRT(-C)
 +      ENDIF
-    12      H1=DELTA-B**2
++           H1=DELTA-B**2
             H2=2*A*B
             H=(((H1*U-H2)/RT(U)-(H1*V-H2)/RT(V))/DELTA+H)/C
            ELSEIF(K .EQ. 3) THEN
 -           ASSIGN 13 TO JMP1
 -           GO TO 10
+-   13      H1=C*DELTA
 +      C2=2*C
 +      IF(DELTA .GT. 0 .OR. DELTA .LT. 0 .AND. C .GT. 0) THEN
 +       H=LOG(ABS((2*SQRT(C*P(V))+C2*V+B)/
-+     1           (2*SQRT(C*P(U))+C2*U+B)))/SQRT(C)
++     &           (2*SQRT(C*P(U))+C2*U+B)))/SQRT(C)
 +      ELSEIF(DELTA .EQ. 0) THEN
 +       H=ABS(LOG(ABS((C2*V+B)/(C2*U+B))))/SQRT(C)
 +      ELSE
 +       H=(ASIN((C2*U+B)/RTD)-ASIN((C2*V+B)/RTD))/SQRT(-C)
 +      ENDIF
-    13      H1=C*DELTA
++           H1=C*DELTA
             G1=A*C
             G2=3*B**2
-@@ -217,8 +238,32 @@
+            H2=B*(10*G1-G2)
+            H3=A*(8*G1-G2)
+            H=(2*(((H1*V+H2)*V+H3)/RT(V)-((H1*U+H2)*U+H3)/RT(U))/
+-     1       DELTA-3*B*H)/(2*C**2)
++     &       DELTA-3*B*H)/(2*C**2)
+           ENDIF
+          ENDIF
+         ENDIF
+@@ -217,9 +238,33 @@
          ENDIF
         ELSE
          IF(N .EQ. 1) THEN
 -         ASSIGN 21 TO JMP2
 -         GO TO 20
+-   21    IF(K .EQ. -1) THEN
 +      IF(C .EQ. 0) THEN
 +       IF(B .EQ. 0) THEN
 +        H=LOG(ABS(V/U))/SQRT(A)
@@ -83,7 +116,7 @@
 +       A2=2*A
 +       IF(DELTA .GT. 0 .OR. DELTA .LT. 0 .AND. A .GT. 0) THEN
 +        H=LOG(ABS((-2*SQRT(A*P(V))+B*V+A2)*U/
-+     1           ((-2*SQRT(A*P(U))+B*U+A2)*V)))/SQRT(A)
++     &           ((-2*SQRT(A*P(U))+B*U+A2)*V)))/SQRT(A)
 +       ELSEIF(DELTA .EQ. 0) THEN
 +        H=LOG(ABS((B*U+A2)*V/((B*V+A2)*U)))/SQRT(A)
 +        IF(U*V .GT. 0) H=SIGN(H,U)
@@ -92,15 +125,26 @@
 +        IF(U .LT. 0 .AND. V .LT. 0) H=-H
 +       ENDIF
 +      ENDIF
-    21    IF(K .EQ. -1) THEN
++         IF(K .EQ. -1) THEN
            H=H
           ELSEIF(K .EQ. -2) THEN
-@@ -257,8 +302,32 @@
+           H=(RT(U)/U-RT(V)/V-HF*B*H)/A
+@@ -227,7 +272,7 @@
+           H1=6*B
+           H2=4*A
+           H=((H1*V-H2)*RT(V)/V**2-(H1*U-H2)*RT(U)/U**2+
+-     1       (3*B**2-H2*C)*H)/(8*A**2)
++     &       (3*B**2-H2*C)*H)/(8*A**2)
+          ENDIF
+         ELSE
+          IF(DELTA .EQ. 0) THEN
+@@ -257,9 +302,33 @@
             IF(U. LT. -X0) H=-H
            ENDIF
           ELSE
 -          ASSIGN 22 TO JMP2
 -          GO TO 20
+-   22     IF(K .EQ. -1) THEN
 +      IF(C .EQ. 0) THEN
 +       IF(B .EQ. 0) THEN
 +        H=LOG(ABS(V/U))/SQRT(A)
@@ -118,7 +162,7 @@
 +       A2=2*A
 +       IF(DELTA .GT. 0 .OR. DELTA .LT. 0 .AND. A .GT. 0) THEN
 +        H=LOG(ABS((-2*SQRT(A*P(V))+B*V+A2)*U/
-+     1           ((-2*SQRT(A*P(U))+B*U+A2)*V)))/SQRT(A)
++     &           ((-2*SQRT(A*P(U))+B*U+A2)*V)))/SQRT(A)
 +       ELSEIF(DELTA .EQ. 0) THEN
 +        H=LOG(ABS((B*U+A2)*V/((B*V+A2)*U)))/SQRT(A)
 +        IF(U*V .GT. 0) H=SIGN(H,U)
@@ -127,15 +171,32 @@
 +        IF(U .LT. 0 .AND. V .LT. 0) H=-H
 +       ENDIF
 +      ENDIF
-    22     IF(K .EQ. -1) THEN
++          IF(K .EQ. -1) THEN
             H1=B*C
             H2=B**2-2*A*C
-@@ -287,46 +356,7 @@
+            H=(2*((H1*U+H2)/RT(U)-(H1*V+H2)/RT(V))/DELTA+H)/A
+@@ -270,7 +339,7 @@
+            H2=(G1-10*G2)*B
+            H3=A*DELTA
+            H=(((H1*V+H2-H3/V)/RT(V)-(H1*U+H2-H3/U)/RT(U))/DELTA
+-     1       -3*HF*B*H)/A**2
++     &       -3*HF*B*H)/A**2
+           ELSEIF(K .EQ. -3) THEN
+            G1=A*DELTA
+            G2=A*C
+@@ -281,52 +350,13 @@
+            H3=(G4-62*G2)*G3+24*G2**2
+            H4=B*C*(G4-52*G2)
+            H=((((H2-H1/V)/V-H3-H4*V)/RT(V)-((H2-H1/U)/U-H3-H4*U)/RT(U))
+-     1        /DELTA+HF*(G4-12*G2)*H)/(4*A**3)
++     &        /DELTA+HF*(G4-12*G2)*H)/(4*A**3)
+           ENDIF
+          ENDIF
          ENDIF
         ENDIF
        ENDIF
 -      GO TO 9
--
+ 
 -   10 C2=2*C
 -      IF(DELTA .GT. 0 .OR. DELTA .LT. 0 .AND. C .GT. 0) THEN
 -       H=LOG(ABS((2*SQRT(C*P(V))+C2*V+B)/
@@ -146,7 +207,7 @@
 -       H=(ASIN((C2*U+B)/RTD)-ASIN((C2*V+B)/RTD))/SQRT(-C)
 -      ENDIF
 -      GO TO JMP1, (11,12,13)
- 
+-
 -   20 IF(C .EQ. 0) THEN
 -       IF(B .EQ. 0) THEN
 -        H=LOG(ABS(V/U))/SQRT(A)


Index: cernlib.spec
===================================================================
RCS file: /cvs/extras/rpms/cernlib/devel/cernlib.spec,v
retrieving revision 1.36
retrieving revision 1.37
diff -u -r1.36 -r1.37
--- cernlib.spec	1 Sep 2006 13:58:33 -0000	1.36
+++ cernlib.spec	11 Sep 2006 22:32:35 -0000	1.37
@@ -1,6 +1,6 @@
 Name:          cernlib
 Version:       2005
-Release:       25%{?dist}
+Release:       26%{?dist}
 Summary:       General purpose CERN library and associated binaries
 Group:         Development/Libraries
 # As explained in the cernlib on debian FAQ, cfortran can be considered LGPL.
@@ -89,8 +89,8 @@
 Source203: cernlib-debian-copyright.in
 
 # debian patchsets
-Patch100001: cernlib_2005.dfsg-1.diff 
-Patch100002: paw_2.14.04-2.diff
+Patch100001: cernlib_2005.dfsg-3.diff 
+Patch100002: paw_2.14.04-3.diff
 Patch100003: mclibs_2005.dfsg-1.diff
 Patch100004: geant321_3.21.14.dfsg-1.diff
 # change file to directory to DATADIR
@@ -124,6 +124,10 @@
 Patch116: cernlib-116-fix-fconc64-spaghetti-code.dpatch
 Patch117: geant321-117-fix-optimizer-bug-in-gphot.dpatch
 Patch118: cernlib-118-rename-mathlib-common-blocks.dpatch
+Patch11901: cernlib-119-fix-compiler-warnings.dpatch
+Patch11902: paw-119-fix-compiler-warnings.dpatch
+Patch120: cernlib-120-fix-gets-usage-in-kuipc.dpatch 
+Patch121: cernlib-121-fix-mathlib-test-case-c209m.dpatch
 Patch200: paw-200-comis-allow-special-chars-in-path.dpatch
 Patch201: cernlib-201-update-kuip-helper-apps.dpatch
 Patch202: cernlib-202-fix-includes-in-minuit-example.dpatch
@@ -141,8 +145,11 @@
 Patch210: 210-improve-cfortran-header-files.dpatch
 # split in newer debian patchset
 # in debian split there is a common part at the beginning of the patch
-Patch2110: 211-fix-comis-on-amd64.dpatch
-Patch2111: paw-211-fix-comis-on-ia64-alpha.dpatch
+# 211-support-amd64-and-itanium corresponds with a merge of
+# cernlib-211-support-amd64-and-itanium.dpatch
+# paw-211-support-amd64-and-itanium.dpatch
+Patch2110: 211-support-amd64-and-itanium.dpatch
+Patch2111: cernlib-211-support-digital-alpha.dpatch
 Patch300: cernlib-300-skip-duplicate-lenocc.dpatch
 # Use another approach, see cernlib-enforce-FHS
 # Patch33: 301-datafiles-comply-with-FHS.dpatch
@@ -178,8 +185,9 @@
 Patch318: cernlib-318-additional-gcc-3.4-fixes.dpatch
 # certainly not needed, but who knows?
 Patch319: cernlib-319-work-around-imake-segfaults.dpatch
-# debian not applied, nor distributed patch related with ifort
-Patch320: cernlib-320-support-ifort.dpatch
+Patch32001: cernlib-320-support-ifort.dpatch
+Patch32002: paw-320-support-ifort-and-gfortran.dpatch
+Patch321: cernlib-321-support-gfortran.dpatch
 
 # in cernlib debian split also remove other packages from LIBDIRS
 Patch700: 700-remove-kernlib-from-packlib-Imakefile.dpatch
@@ -241,10 +249,9 @@
 Patch1200: cernlib-cernlib_kernlib.patch
 # don't stop if the CERN variable isn't defined
 Patch1201: cernlib-gxint-script.diff
+# FIXME: maybe those 2 patches aren't needed with newer gfortran anymore
 Patch1203: cernlib-hwuli2_use_dimag.diff 
 Patch1204: cernlib-hwhiga_use_dimag.diff
-Patch1205: cernlib-gfortran.diff 
-Patch1207: cernlib-v107z0_X_before_string.diff
 
 # patchy 4
 # not applied as it has allready been done by the sed one-liner in 
@@ -433,6 +440,11 @@
 %patch -P 115 -p1
 %patch -P 116 -p1
 %patch -P 117 -p1
+%patch -P 118 -p1
+%patch -P 11901 -p1
+%patch -P 11902 -p1
+%patch -P 120 -p1
+%patch -P 121 -p1
 %patch -P 200 -p1
 %patch -P 201 -p1
 %patch -P 202 -p1
@@ -472,7 +484,9 @@
 
 %patch -P 318 -p1
 %patch -P 319 -p1
-%patch -P 320 -p1
+%patch -P 32001 -p1
+%patch -P 32002 -p1
+%patch -P 321 -p1
 
 # move kernlib out of packlib (debian 700-move-kernlib-to-top-level.sh.dpatch)
 mv src/packlib/kernlib src/kernlib
@@ -590,10 +604,6 @@
 %patch -P 1201
 %patch -P 1203
 %patch -P 1204
-# use gfortran
-#%patch -P 1205 -p1
-# workaround gfortran bug
-%patch -P 1207
 
 # remove CVS directories
 find . -depth -type d -name CVS -exec rm -rf {} ';' 
@@ -899,6 +909,11 @@
 
 
 %changelog
+* Mon Sep 11 2006 Patrice Dumas <pertusus at free.fr> 2005-26
+- update to newer debian patchsets (paw and cernlib)
+- remove gfortran related patches integrated in the debian 
+  patchsets
+
 * Fri Sep  1 2006 Patrice Dumas <pertusus at free.fr> 2005-25
 - update to newer source split debian patchsets
 - don't set the exec bits on file installed in /etc/profile.d/


--- 211-fix-comis-on-amd64.dpatch DELETED ---


--- cernlib-gfortran.diff DELETED ---


--- cernlib-v107z0_X_before_string.diff DELETED ---


--- cernlib_2005.dfsg-1.diff DELETED ---


--- paw-211-fix-comis-on-ia64-alpha.dpatch DELETED ---


--- paw_2.14.04-2.diff DELETED ---




More information about the scm-commits mailing list