rpms/cernlib/devel 114-install-scripts-properly.dpatch, NONE, 1.1 211-fix-comis-on-64-bit-arches.dpatch, NONE, 1.1 cernlib_2005.05.09.dfsg-2.diff, NONE, 1.1 003-geant-dummy-functions.dpatch, 1.1, 1.2 cernlib.spec, 1.6, 1.7 cernlib-install_scripts.patch, 1.1, NONE cernlib_2005.05.09.dfsg-1.diff, 1.2, NONE
Patrice Dumas (pertusus)
fedora-extras-commits at redhat.com
Fri Dec 9 13:18:47 UTC 2005
- Previous message: rpms/torcs/FC-4 .cvsignore, 1.4, 1.5 sources, 1.4, 1.5 torcs.spec, 1.9, 1.10 TORCS-1.2.3-64bit.patch, 1.1, NONE
- Next message: rpms/digikam/devel digikam.spec,1.4,1.5
- Messages sorted by:
[ date ]
[ thread ]
[ subject ]
[ author ]
Author: pertusus
Update of /cvs/extras/rpms/cernlib/devel
In directory cvs-int.fedora.redhat.com:/tmp/cvs-serv20590
Modified Files:
003-geant-dummy-functions.dpatch cernlib.spec
Added Files:
114-install-scripts-properly.dpatch
211-fix-comis-on-64-bit-arches.dpatch
cernlib_2005.05.09.dfsg-2.diff
Removed Files:
cernlib-install_scripts.patch cernlib_2005.05.09.dfsg-1.diff
Log Message:
- use new debian patchset
- enable 64 bit fixes patch
--- NEW FILE 114-install-scripts-properly.dpatch ---
#! /bin/sh /usr/share/dpatch/dpatch-run
## 114-install-scripts-properly.dpatch by <kmccarty at debian.org>
##
## All lines beginning with `## DP:' are a description of the patch.
## DP: Install scripts properly (i.e. don't try to strip them).
@DPATCH@
diff -urNad cernlib-2005.05.09.dfsg~/src/scripts/Imakefile cernlib-2005.05.09.dfsg/src/scripts/Imakefile
--- cernlib-2005.05.09.dfsg~/src/scripts/Imakefile 2004-07-29 10:17:08.000000000 -0400
+++ cernlib-2005.05.09.dfsg/src/scripts/Imakefile 2005-12-02 10:45:23.091782817 -0500
@@ -1,10 +1,10 @@
-InstallProgram(paw,$(CERN_BINDIR))
+InstallNamedProg(paw,paw,$(CERN_BINDIR))
#if defined(CERNLIB_SHIFT)
InstallNamedProg(cernlib_shift,cernlib,$(CERN_BINDIR))
#else
-InstallProgram(cernlib,$(CERN_BINDIR))
+InstallNamedProg(cernlib,cernlib,$(CERN_BINDIR))
#endif
-InstallProgram(gxint,$(CERN_BINDIR))
+InstallNamedProg(gxint,gxint,$(CERN_BINDIR))
--- NEW FILE 211-fix-comis-on-64-bit-arches.dpatch ---
#! /bin/sh /usr/share/dpatch/dpatch-run
## 211-fix-comis-on-64-bit-arches.dpatch by <kmccarty at debian.org>
##
## All lines beginning with `## DP:' are a description of the patch.
## DP: No description.
@DPATCH@
diff -urNad cernlib-2005.05.09~/src/geant321/gphys/gphot.F cernlib-2005.05.09/src/geant321/gphys/gphot.F
--- cernlib-2005.05.09~/src/geant321/gphys/gphot.F 1995-10-24 10:21:29.000000000 +0000
+++ cernlib-2005.05.09/src/geant321/gphys/gphot.F 2005-09-20 19:27:10.734527890 +0000
@@ -240,7 +240,7 @@
ELSE
C Radiative shell decay
JS = JFN+1+2*NSHELL+ISHELL
- JS = JPHFN+Q(JS)
+ JS = JPHFN + INT (Q(JS)) ! compiler optimiztion problem H. Vogt 2004/04/29
NPOINT = Q(JS)
DO 40 I = 1,NPOINT
IF(RN05.LT.Q(JS+I)) THEN
@@ -296,7 +296,7 @@
ELSE
c Nonradiative decay
JS = JFN+1+3*NSHELL+ISHELL
- JS = JPHFN+Q(JS)
+ JS = JPHFN + INT (Q(JS)) ! compiler optimiztion problem H. Vogt 2004/04/29
NPOINT = Q(JS)
DO 60 I = 1,NPOINT
IF(RN05.LT.Q(JS+I)) THEN
diff -urNad cernlib-2005.05.09~/src/packlib/kernlib/kerngen/ccgen/locb.c cernlib-2005.05.09/src/packlib/kernlib/kerngen/ccgen/locb.c
--- cernlib-2005.05.09~/src/packlib/kernlib/kerngen/ccgen/locb.c 1997-09-02 14:26:37.000000000 +0000
+++ cernlib-2005.05.09/src/packlib/kernlib/kerngen/ccgen/locb.c 2005-09-20 19:27:10.734527890 +0000
@@ -44,7 +44,25 @@
DummyDef
#endif
{
+#if defined(CERNLIB_QMLXIA64)
+ const unsigned long long int mask=0x00000000ffffffff;
+ static unsigned long long int base=1;
+ unsigned long long int jadr=(unsigned long long int) iadr;
+ unsigned long long int jadrl = (mask & jadr);
+
+ if (base == 1) {
+ base = (~mask & jadr);
+ } else if(base != (~mask & jadr)) {
+ printf("!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!\n");
+ printf("locb_() Warning: changing base from %lx to %lx!!!\n",
+ base, (~mask & jadr));
+ printf("This may result in program crash or incorrect results\n");
+ printf("!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!\n");
+ }
+ return ((int) jadrl);
+#else
return( (int) iadr );
+#endif
}
/*> END <----------------------------------------------------------*/
#ifdef CERNLIB_TCGEN_LOCB
diff -urNad cernlib-2005.05.09~/src/packlib/zbook/code/zjump.c cernlib-2005.05.09/src/packlib/zbook/code/zjump.c
--- cernlib-2005.05.09~/src/packlib/zbook/code/zjump.c 1996-03-08 12:01:12.000000000 +0000
+++ cernlib-2005.05.09/src/packlib/zbook/code/zjump.c 2005-09-20 19:27:10.734527890 +0000
@@ -7,6 +7,9 @@
*
*/
#include "zbook/pilot_c.h"
+#if defined(CERNLIB_QMLXIA64)
+static void (*target)();
+#endif
#if defined(CERNLIB_UNIX)
#if defined(CERNLIB_QX_SC)
zjump_(name,p1,p2,p3,p4)
@@ -18,8 +21,23 @@
ZJUMP(name,p1,p2,p3,p4)
#endif
char *p1, *p2, *p3, *p4;
+
+/* LP64 compatibility:
+ name is taken from a Fortran array and therefore its address is 32 bit
+ which has to be converted to a 64 bit address to satisfy void (*) (H. Vogt) */
+
+#if defined(CERNLIB_QMLXIA64)
+int *name;
+{
+ long jadr;
+ jadr = *name; /* convert int to long */
+ target = (void (*)())jadr;
+ (*target)(p1, p2, p3, p4);
+}
+#else
void (**name)();
{
(**name)(p1, p2, p3, p4);
}
#endif
+#endif
diff -urNad cernlib-2005.05.09~/src/packlib/zebra/test/brztest/btest2.F cernlib-2005.05.09/src/packlib/zebra/test/brztest/btest2.F
--- cernlib-2005.05.09~/src/packlib/zebra/test/brztest/btest2.F 1997-09-02 15:16:16.000000000 +0000
+++ cernlib-2005.05.09/src/packlib/zebra/test/brztest/btest2.F 2005-09-20 19:27:10.734527890 +0000
@@ -29,6 +29,15 @@
********************************************************************************
*
COMMON/CRZT/IXSTOR,IXDIV,IFENCE(2),LEV,LEVIN,BLVECT(30000)
+
+* LP64 compatibility:
+* For 64-bit pointer systems put local variables referenced by LOCF
+* in a dummy named common block to keep addresses in the program region.
+* see also: packlib/ffread/test/main.F (H. Vogt)
+
+#if defined(CERNLIB_QMLXIA64)
+ COMMON /TEST64/LBANK
+#endif
DIMENSION LQ(999),IQ(999),Q(999)
EQUIVALENCE (IQ(1),Q(1),LQ(9)),(LQ(1),LEV)
C
diff -urNad cernlib-2005.05.09~/src/pawlib/comis/code/Imakefile cernlib-2005.05.09/src/pawlib/comis/code/Imakefile
--- cernlib-2005.05.09~/src/pawlib/comis/code/Imakefile 2005-09-20 19:26:47.894420356 +0000
+++ cernlib-2005.05.09/src/pawlib/comis/code/Imakefile 2005-09-20 19:27:10.734527890 +0000
@@ -50,6 +50,10 @@
SRCS_F := $(SRCS_F) cscrexec.F
#endif
+#if defined(CERNLIB_QMLXIA64)
+SRCS_F := $(SRCS_F) csrtgpl.F csitgpl.F
+#endif
+
#if defined(CERNLIB_OLD)
SRCS_F := $(SRCS_F) cspdir.F csrmbk.F
#endif
diff -urNad cernlib-2005.05.09~/src/pawlib/comis/code/csaddr.F cernlib-2005.05.09/src/pawlib/comis/code/csaddr.F
--- cernlib-2005.05.09~/src/pawlib/comis/code/csaddr.F 1996-02-26 17:16:25.000000000 +0000
+++ cernlib-2005.05.09/src/pawlib/comis/code/csaddr.F 2005-09-20 19:27:10.735527676 +0000
@@ -17,8 +17,14 @@
INTEGER CSLTGP,CSITGP
CHARACTER*32 NAME
#include "comis/cstab.inc"
-#if defined(CERNLIB_SHL)
+#if defined(CERNLIB_SHL)&&(!defined(CERNLIB_QMLXIA64))
INTEGER CS_GET_FUNC
+#endif
+#if defined(CERNLIB_SHL)&&(defined(CERNLIB_QMLXIA64))
+#include "comis/cstab64.inc"
+ INTEGER*8 CS_GET_FUNC
+#endif
+#if defined(CERNLIB_SHL)
NAME=CHNAME
NC=LENOCC(NAME)
CALL CSCHID(NAME(:NC))
@@ -26,21 +32,39 @@
I=CSLTGP(IPVS)
IF(I.GT.0)THEN
IF(IFCS.EQ.0)THEN
+#if defined (CERNLIB_QMLXIA64)
+ IADGPL=CS_GET_FUNC(NAME(1:NC)//'_')
+ IF(IADGPL.NE.0)THEN
+ IFCS=-2
+ CALL CSRTGPL(I)
+#else
IADGP=CS_GET_FUNC(NAME(1:NC)//'_')
IF(IADGP.NE.0)THEN
IFCS=-2
CALL CSRTGP(I)
+#endif
+#endif
+#if defined(CERNLIB_SHL)
ELSE
I=0
ENDIF
ENDIF
ELSE
+#if defined (CERNLIB_QMLXIA64)
+ IADGPL=CS_GET_FUNC(NAME(1:NC)//'_')
+ IF(IADGPL.NE.0)THEN
+ IFCS=-2
+ ITYPGP=-2
+ I=CSITGPL(IPVS)
+ ENDIF
+#else
IADGP=CS_GET_FUNC(NAME(1:NC)//'_')
IF(IADGP.NE.0)THEN
IFCS=-2
ITYPGP=-2
I=CSITGP(IPVS)
ENDIF
+#endif
END IF
CSADDR=I
#endif
diff -urNad cernlib-2005.05.09~/src/pawlib/comis/code/csinit.F cernlib-2005.05.09/src/pawlib/comis/code/csinit.F
--- cernlib-2005.05.09~/src/pawlib/comis/code/csinit.F 2005-04-18 15:41:04.000000000 +0000
+++ cernlib-2005.05.09/src/pawlib/comis/code/csinit.F 2005-09-20 19:27:10.735527676 +0000
@@ -64,6 +64,9 @@
#if defined(CERNLIB_SHL)
#include "comis/cshlnm.inc"
#endif
+#if defined(CERNLIB_SHL)&&(defined(CERNLIB_QMLXIA64))
+#include "comis/cstab64.inc"
+#endif
#if defined(CERNLIB_PAW)
#include "paw/pcmode.inc"
#include "comis/cshfill.inc"
@@ -159,6 +162,9 @@
ICHMINU=ICHAR('-')
ICHPLUS=ICHAR('+')
ICHCOMM=ICHAR(',')
+#if defined(CERNLIB_SHL)&&(defined(CERNLIB_QMLXIA64))
+ IPIADGV=0
+#endif
#if defined(CERNLIB_PAW)
CALL CSPAWI
MODHFI=0
@@ -209,11 +215,16 @@
CHF77 ='f77 -c -pic'
CHCC ='cc -c -pic'
#endif
-#if (defined(CERNLIB_LINUX))
+#if (defined(CERNLIB_LINUX))&&(!defined(CERNLIB_QMLXIA64))
ITMPLEN=CSTMPD(CHPATH, 256)
CHF77 ='g77 -c'
CHCC ='cc -c'
#endif
+#if (defined(CERNLIB_LINUX))&&(defined(CERNLIB_QMLXIA64))
+ ITMPLEN=CSTMPD(CHPATH, 256)
+ CHF77 ='g77 -c -fPIC -fno-f2c'
+ CHCC ='cc -c -fPIC -fno-f2c'
+#endif
#if (defined(CERNLIB_SGI))&&(defined(CERNLIB_SHL))
ITMPLEN=CSTMPD(CHPATH, 256)
CHF77 ='f77 -c'
diff -urNad cernlib-2005.05.09~/src/pawlib/comis/code/csintx.F cernlib-2005.05.09/src/pawlib/comis/code/csintx.F
--- cernlib-2005.05.09~/src/pawlib/comis/code/csintx.F 1996-12-05 09:50:37.000000000 +0000
+++ cernlib-2005.05.09/src/pawlib/comis/code/csintx.F 2005-09-20 19:27:10.762521893 +0000
@@ -38,6 +38,9 @@
#if defined(CERNLIB_PAW)
#include "comis/cskucs.inc"
#endif
+#if defined(CERNLIB_QMLXIA64)
+#include "comis/cstab64.inc"
+#endif
#if (defined(CERNLIB_UNIX))&&(!defined(CERNLIB_ALPHA_OSF))
INTEGER CSTRCMP
#endif
@@ -1105,6 +1108,32 @@
ENDIF
#endif
#if (!defined(CERNLIB_VAX))&&(!defined(CERNLIB_APOLLO))
+#if defined(CERNLIB_QMLXIA64)
+ IF(IQ(IP+KSIFCS).EQ.-2)THEN
+*Dynamic linker may give long addresses
+ IADGPL = IADGPLV(IADGP)
+ IF(ITP.EQ.1.OR.ITP.EQ.4.OR.ITP.EQ.6)THEN
+ ICSRES=CSCALI(IADGPL,NPAR,IDA(IOFSPL))
+ ELSEIF(ITP.EQ.2)THEN
+ RCSRES=CSCALR(IADGPL,NPAR,IDA(IOFSPL))
+ ELSEIF(ITP.EQ.5)THEN
+ DCSRES=CSCALD(IADGPL,NPAR,IDA(IOFSPL))
+ ELSEIF(ITP.EQ.7)THEN
+ DCSRES=CSCALD(IADGPL,NPAR,IDA(IOFSPL))
+ ENDIF
+ ELSE
+ IADGPL = IADGP
+ IF(ITP.EQ.1.OR.ITP.EQ.4.OR.ITP.EQ.6)THEN
+ ICSRES=CSCALI(IADGPL,NPAR,IDA(IOFSPL))
+ ELSEIF(ITP.EQ.2)THEN
+ RCSRES=CSCALR(IADGPL,NPAR,IDA(IOFSPL))
+ ELSEIF(ITP.EQ.5)THEN
+ DCSRES=CSCALD(IADGPL,NPAR,IDA(IOFSPL))
+ ELSEIF(ITP.EQ.7)THEN
+ DCSRES=CSCALD(IADGPL,NPAR,IDA(IOFSPL))
+ ENDIF
+ ENDIF
+#else
IF(ITP.EQ.1.OR.ITP.EQ.4.OR.ITP.EQ.6)THEN
ICSRES=CSCALI(IADGP,NPAR,IDA(IOFSPL))
ELSEIF(ITP.EQ.2)THEN
@@ -1115,6 +1144,7 @@
DCSRES=CSCALD(IADGP,NPAR,IDA(IOFSPL))
ENDIF
#endif
+#endif
IPC=IPC+4
GO TO 999
*NUM I
diff -urNad cernlib-2005.05.09~/src/pawlib/comis/code/csitgpl.F cernlib-2005.05.09/src/pawlib/comis/code/csitgpl.F
--- cernlib-2005.05.09~/src/pawlib/comis/code/csitgpl.F 1970-01-01 00:00:00.000000000 +0000
+++ cernlib-2005.05.09/src/pawlib/comis/code/csitgpl.F 2005-09-20 19:27:10.763521679 +0000
@@ -0,0 +1,32 @@
+* Comis
+*
+*
+#if (defined(CERNLIB_QMLXIA64))
+#include "comis/pilot.h"
+*CMZU: 1.16/16 04/10/93 12.14.52 by Vladimir Berezhnoi
+*-- Author : V.Berezhnoi
+* special for 64 bit addresses for dynamic linking (H. Vogt)
+ INTEGER FUNCTION CSITGPL(IP)
+***------------------------------
+* it is last routine from the tables-set.
+***-----------------------------
+#include "comis/cspar.inc"
+#include "comis/mdpool.inc"
+#include "comis/cspnts.inc"
+#include "comis/cstabps.inc"
+#include "comis/cstab64.inc"
+ I=MHLOC(KSIDP+NWIDEN)
+ IQ(I)=0
+ IQ(I+1)=NCIDEN
+ DO 1 K=1,NWIDEN
+ IQ(I+KSIDP-1+K)=IDEN(K)
+ 1 CONTINUE
+ CALL CSRTGPL(I)
+ IF(IP.EQ.0)THEN
+ IPGP=I
+ ELSE
+ IQ(IP)=I
+ ENDIF
+ CSITGP=I
+ END
+#endif
diff -urNad cernlib-2005.05.09~/src/pawlib/comis/code/cskcal.F cernlib-2005.05.09/src/pawlib/comis/code/cskcal.F
--- cernlib-2005.05.09~/src/pawlib/comis/code/cskcal.F 1996-12-05 09:50:39.000000000 +0000
+++ cernlib-2005.05.09/src/pawlib/comis/code/cskcal.F 2005-09-20 19:27:10.763521679 +0000
@@ -31,6 +31,9 @@
#include "comis/cstab.inc"
#include "comis/csfres.inc"
#include "comis/cssysd.inc"
+#if defined(CERNLIB_QMLXIA64)
+#include "comis/cstab64.inc"
+#endif
CHARACTER PRONAME*32
INTEGER CSCALI
DOUBLE PRECISION CSCALD
@@ -232,6 +235,34 @@
I2=I2+KS
I=I+1
9203 CONTINUE
+#if defined(CERNLIB_QMLXIA64)
+* Dynamic linker may give long addresses
+ IF (IFCS.EQ.-2)THEN
+ IADGPL = IADGPLV(IADGP)
+ IF(ITP.EQ.1.OR.ITP.EQ.4.OR.ITP.EQ.6)THEN
+ ICSRES=CSCALI(IADGPL,NPAR,IF77PL(1))
+ ELSEIF(ITP.EQ.2)THEN
+ RCSRES=CSCALR(IADGPL,NPAR,IF77PL(1))
+ ELSEIF(ITP.EQ.5)THEN
+ DCSRES=CSCALD(IADGPL,NPAR,IF77PL(1))
+ ELSEIF(ITP.EQ.7)THEN
+* I think it will works correctly
+ DCSRES=CSCALD(IADGPL,NPAR,IF77PL(1))
+ ENDIF
+ ELSE
+ IADGPL = IADGP
+ IF(ITP.EQ.1.OR.ITP.EQ.4.OR.ITP.EQ.6)THEN
+ ICSRES=CSCALI(IADGPL,NPAR,IF77PL(1))
+ ELSEIF(ITP.EQ.2)THEN
+ RCSRES=CSCALR(IADGPL,NPAR,IF77PL(1))
+ ELSEIF(ITP.EQ.5)THEN
+ DCSRES=CSCALD(IADGPL,NPAR,IF77PL(1))
+ ELSEIF(ITP.EQ.7)THEN
+* I think it will works correctly
+ DCSRES=CSCALD(IADGPL,NPAR,IF77PL(1))
+ ENDIF
+ ENDIF
+#else
* IT=IABS(ITYPGP)
IF(ITP.EQ.1.OR.ITP.EQ.4.OR.ITP.EQ.6)THEN
ICSRES=CSCALI(IADGP,NOPAR,IF77PL(1))
@@ -245,6 +276,7 @@
ENDIF
*+SELF,IF=UNIX,IF=-SGI,IF=-IBMRT,IF=-DECS,IF=-HPUX,IF=-SUN,IF=-MSDOS.
#endif
+#endif
#if (defined(CERNLIB_UNIX))&&(!defined(CERNLIB_STDUNIX))
I=1
DO 9203 K=ITA-NPAR+1,ITA
diff -urNad cernlib-2005.05.09~/src/pawlib/comis/code/cslink.F cernlib-2005.05.09/src/pawlib/comis/code/cslink.F
--- cernlib-2005.05.09~/src/pawlib/comis/code/cslink.F 1996-02-26 17:16:17.000000000 +0000
+++ cernlib-2005.05.09/src/pawlib/comis/code/cslink.F 2005-09-20 19:27:10.763521679 +0000
@@ -21,10 +21,15 @@
#include "comis/cstab.inc"
#include "comis/cspnts.inc"
#include "comis/cslun.inc"
-#if defined(CERNLIB_SHL)
+#if defined(CERNLIB_SHL)&&(!defined(CERNLIB_QMLXIA64))
CHARACTER*(KLENID) FNNAME
INTEGER CS_GET_FUNC
#endif
+#if defined(CERNLIB_SHL)&&(defined(CERNLIB_QMLXIA64))
+#include "comis/cstab64.inc"
+ CHARACTER*(KLENID) FNNAME
+ INTEGER*8 CS_GET_FUNC
+#endif
COMMON/CSGSCM/IGS,JGS,NGS,CSJUNK(3)
IF(ISTLIB.EQ.0 .AND. ITBS.EQ.0)RETURN
2 I=IPGP
@@ -60,12 +65,20 @@
#if defined(CERNLIB_SHL)
CALL CSGTIDP(I,FNNAME,NC)
CALL CUTOL(FNNAME(1:NC))
+#if defined (CERNLIB_QMLXIA64)
+ IADGPL=CS_GET_FUNC(FNNAME(1:NC)//'_')
+ IF(IADGPL.NE.0)THEN
+ IFCS=-2
+ CALL CSRTGPL(I)
+ ENDIF
+#else
IADGP=CS_GET_FUNC(FNNAME(1:NC)//'_')
IF(IADGP.NE.0)THEN
IFCS=-2
CALL CSRTGP(I)
ENDIF
#endif
+#endif
IP=0
ENDIF
ENDIF
diff -urNad cernlib-2005.05.09~/src/pawlib/comis/code/csrtgpl.F cernlib-2005.05.09/src/pawlib/comis/code/csrtgpl.F
--- cernlib-2005.05.09~/src/pawlib/comis/code/csrtgpl.F 1970-01-01 00:00:00.000000000 +0000
+++ cernlib-2005.05.09/src/pawlib/comis/code/csrtgpl.F 2005-09-20 19:27:10.764521465 +0000
@@ -0,0 +1,31 @@
+* Comis
+*
+*
+#if (defined(CERNLIB_QMLXIA64))
+#include "comis/pilot.h"
+*CMZ : 1.18/14 10/01/95 15.41.06 by Vladimir Berezhnoi
+*-- Author : V.Berezhnoi
+* special for 64 bit addresses for dynamic linking (H. Vogt)
+
+ SUBROUTINE CSRTGPL(I)
+***--------------------------
+#include "comis/cspar.inc"
+#include "comis/mdpool.inc"
+#include "comis/cstabps.inc"
+#include "comis/cstab.inc"
+#include "comis/cstab64.inc"
+
+ IPIADGV = IPIADGV + 1
+ IF (IPIADGV .GT. MAXIAD64) THEN
+ WRITE (*,'(2a,I4)') 'to much addresses for dynamik linking, ',
+ & 'limit is ', MAXIAD64
+ WRITE (*,'(2a)') 'increase MAXIAD64 in cstab64.inc and ',
+ & 'recompile COMIS'
+
+ STOP
+ END IF
+ IADGPLV(IPIADGV) = IADGPL
+ IADGP = IPIADGV
+ CALL CCOPYA(IADGP,IQ(I+2),KSIDP-2)
+ END
+#endif
diff -urNad cernlib-2005.05.09~/src/pawlib/comis/comis/cstab64.inc cernlib-2005.05.09/src/pawlib/comis/comis/cstab64.inc
--- cernlib-2005.05.09~/src/pawlib/comis/comis/cstab64.inc 1970-01-01 00:00:00.000000000 +0000
+++ cernlib-2005.05.09/src/pawlib/comis/comis/cstab64.inc 2005-09-20 19:27:10.775519109 +0000
@@ -0,0 +1,10 @@
+*
+*
+* cstab64.inc
+*
+ PARAMETER (MAXIAD64=100) !maximum number of shared objects
+ INTEGER*8 IADGPL,IADGPLV(MAXIAD64)
+ INTEGER IADGPL1, IADGPL2
+ COMMON /CSTB64/ IADGPL,IADGPLV
+ COMMON /CSTB64I/ IPIADGV
+ EQUIVALENCE (IADGPL, IADGPL1)
diff -urNad cernlib-2005.05.09~/src/pawlib/comis/deccc/ccopys.c cernlib-2005.05.09/src/pawlib/comis/deccc/ccopys.c
--- cernlib-2005.05.09~/src/pawlib/comis/deccc/ccopys.c 1997-09-02 15:50:38.000000000 +0000
+++ cernlib-2005.05.09/src/pawlib/comis/deccc/ccopys.c 2005-09-20 19:27:10.776518895 +0000
@@ -33,11 +33,25 @@
#else
void ccopys_(ja,jb,nn)
#endif
+
+/*
+ * 64-bit pointer systems require a special treatment of addresses - see below -
+ * using the CERNLIB_QMLXIA64 cpp flag (H. Vogt - Sep 2005)
+ */
+
+#if defined(CERNLIB_QMLXIA64)
+ int *ja, *jb;
+ int *nn;
+{
+ int i,n; char *a,*b;
+ n=*nn; (long)a=*ja; (long)b=*jb;
+#else
char **ja, **jb;
int *nn;
{
int i,n; char *a,*b;
n=*nn; a=*ja; b=*jb;
+#endif
if ( a >= b )
for ( i=0; i<n; i++ )
b[i]=a[i];
diff -urNad cernlib-2005.05.09~/src/pawlib/comis/deccc/cs_hlshl.c cernlib-2005.05.09/src/pawlib/comis/deccc/cs_hlshl.c
--- cernlib-2005.05.09~/src/pawlib/comis/deccc/cs_hlshl.c 1998-01-12 09:56:07.000000000 +0000
+++ cernlib-2005.05.09/src/pawlib/comis/deccc/cs_hlshl.c 2005-09-20 19:27:10.776518895 +0000
@@ -25,9 +25,21 @@
#if (defined(CERNLIB_SUN)||defined(CERNLIB_SGI)||defined(CERNLIB_IBMRT)||defined(CERNLIB_ALPHA_OSF)||defined(CERNLIB_LINUX))&&(defined(CERNLIB_SHL))
/*CMZ : 22/05/95 18.40.45 by Julian Bunn*/
/*-- Author :*/
-#if defined(CERNLIB_SUN)||defined(CERNLIB_LINUX)
+#if defined(CERNLIB_SUN)||defined(CERNLIB_LINUX)&&(!defined(CERNLIB_QMLXIA64))
#define SUN
#endif
+
+/*
+ * 64-bit pointer systems require a special treatment of addresses
+ * using the CERNLIB_QMLXIA64 cpp flag (H. Vogt - Sep 2005)
+ * This code will be consistent with that of jumptn.c and jumpxn.c
+ * in packlib/kernlib/kerngen/ccgen (usage of jumpad_)
+ */
+
+#if defined(CERNLIB_LINUX)&&(defined(CERNLIB_QMLXIA64))
+#define ALPHA_OSF
+#endif
+
#if defined(CERNLIB_SGI)
#define SGI
#endif
@@ -37,7 +49,6 @@
#if defined(CERNLIB_ALPHA_OSF)
#define ALPHA_OSF
#endif
-
#if defined(SUN) || defined(SGI) || defined(ALPHA_OSF)
#include <dlfcn.h>
#endif
@@ -274,6 +285,7 @@
#endif
p->next = f->first_proc;
f->first_proc = p;
+ if (debug_level > 0) printf("function pointer is: %p\n", p->funcptr);
return (void *)(p->funcptr);
}
f = f->next;
diff -urNad cernlib-2005.05.09~/src/pawlib/comis/deccc/cscald.c cernlib-2005.05.09/src/pawlib/comis/deccc/cscald.c
--- cernlib-2005.05.09~/src/pawlib/comis/deccc/cscald.c 2004-10-27 09:01:54.000000000 +0000
+++ cernlib-2005.05.09/src/pawlib/comis/deccc/cscald.c 2005-09-20 19:27:10.776518895 +0000
@@ -32,8 +32,7 @@
#ifdef CERNLIB_WINNT
# include <stdio.h>
#endif
-
-#if (defined(CERNLIB_QX_SC))&&(!defined(CERNLIB_WINNT))
+#if (defined(CERNLIB_QX_SC))&&(!defined(CERNLIB_WINNT))&&(!defined(CERNLIB_QMLXIA64))
double cscald_ (name,n,p)
#endif
#if defined(CERNLIB_QXNO_SC)
@@ -46,10 +45,41 @@
int CSCALD (name,n,p)
# endif
#endif
+
+/*
+ * 64-bit pointer systems require a special treatment of addresses - see below
+ * using the CERNLIB_QMLXIA64 macro definition (H. Vogt - Sep 2005)
+ * This code will be consistent with that of jumptn.c and jumpxn.c
+ * in packlib/kernlib/kerngen/ccgen (usage of jumpad_)
+ *
+ * for shared objects loaded by the dynamic linker content of the 1st arg
+ * in cscald_ is a pointer which may be above the 32 bit address space
+ * therefore *fptr has been changed to type long
+ * see changes in csintx.F, cskcal.F, ... (introduction of INTEGER*8 array for
+ * those pointers)
+ */
+
+#if defined(CERNLIB_QMLXIA64)
+double cscald_ (fptr,n,pin)
+ long *fptr;
+ int *n;
+ unsigned pin[15];
+{
+ int jumpad_();
+ double (*name)();
+ unsigned long ptr = *fptr + (unsigned long)jumpad_;
+ if ( *fptr > 0 ) ptr = 0;
+ ptr += *fptr;
+ name = (double (*)())ptr;
+/* printf ("cscald - *fptr,ptr,jumpad_ are: %p %p %p %p\n", *fptr, ptr, jumpad_); */
+ long p[15];
+ int count; for ( count=0; count<16; count++ ) p[count] = pin[count];
+#else
double (type_of_call *(*name)) ();
int *n;
int *p[15];
{
+#endif
double d;
switch (*n)
{
diff -urNad cernlib-2005.05.09~/src/pawlib/comis/deccc/cscali.c cernlib-2005.05.09/src/pawlib/comis/deccc/cscali.c
--- cernlib-2005.05.09~/src/pawlib/comis/deccc/cscali.c 2004-10-22 12:42:40.000000000 +0000
+++ cernlib-2005.05.09/src/pawlib/comis/deccc/cscali.c 2005-09-20 19:27:10.777518681 +0000
@@ -29,8 +29,7 @@
#ifdef CERNLIB_WINNT
# include <stdio.h>
#endif
-
-#if (defined(CERNLIB_QX_SC))&&(!defined(CERNLIB_WINNT))
+#if (defined(CERNLIB_QX_SC))&&(!defined(CERNLIB_WINNT))&&(!defined(CERNLIB_QMLXIA64))
int cscali_ (name,n,p)
#endif
#if defined(CERNLIB_QXNO_SC)
@@ -39,10 +38,41 @@
#if defined(CERNLIB_QXCAPT)
int type_of_call CSCALI (name,n,p)
#endif
+
+/*
+ * 64-bit pointer systems require a special treatment of addresses - see below
+ * using the CERNLIB_QMLXIA64 macro definition (H. Vogt - Sep 2005)
+ * This code will be consistent with that of jumptn.c and jumpxn.c
+ * in packlib/kernlib/kerngen/ccgen (usage of jumpad_)
+ *
+ * for shared objects loaded by the dynamic linker content of the 1st arg
+ * in cscali_ is a pointer which may be above the 32 bit address space
+ * therefore *fptr has been changed to type long
+ * see changes in csintx.F, cskcal.F, ... (introduction of INTEGER*8 array for
+ * those pointers)
+ */
+
+#if defined(CERNLIB_QMLXIA64)
+int cscali_ (fptr,n,pin)
+ long *fptr;
+ int *n;
+ unsigned pin[15];
+{
+ int jumpad_();
+ int (*name)();
+ unsigned long ptr = (unsigned long)jumpad_;
+ if ( *fptr > 0 ) ptr = 0;
+ ptr += *fptr;
+ name = (int (*)())ptr;
+/* printf ("cscali - *fptr,ptr,jumpad_ are: %p %p %p %p\n", *fptr, ptr, jumpad_); */
+ long p[15];
+ int count; for ( count=0; count<16; count++ ) p[count] = pin[count];
+#else
int (type_of_call *(*name)) ();
int *n;
int *p[15];
{
+#endif
int i;
switch (*n)
{
diff -urNad cernlib-2005.05.09~/src/pawlib/comis/deccc/cscalr.c cernlib-2005.05.09/src/pawlib/comis/deccc/cscalr.c
--- cernlib-2005.05.09~/src/pawlib/comis/deccc/cscalr.c 2004-10-22 12:03:16.000000000 +0000
+++ cernlib-2005.05.09/src/pawlib/comis/deccc/cscalr.c 2005-09-20 19:27:10.788516325 +0000
@@ -33,16 +33,12 @@
#ifdef CERNLIB_WINNT
# include <stdio.h>
#endif
-
-
-#if (defined(CERNLIB_QX_SC))&&(!defined(CERNLIB_WINNT))
+#if (defined(CERNLIB_QX_SC))&&(!defined(CERNLIB_WINNT))&&(!defined(CERNLIB_QMLXIA64))
float cscalr_ (name,n,p)
#endif
-
#if defined(CERNLIB_QXNO_SC)
float cscalr (name,n,p)
#endif
-
#if defined(CERNLIB_QXCAPT)
# if defined(CERNLIB_MSSTDCALL)
float type_of_call CSCALR(name,n,p)
@@ -51,10 +47,39 @@
# endif
#endif
+/*
+ * 64-bit pointer systems require a special treatment of addresses - see below
+ * using the CERNLIB_QMLXIA64 macro definition (H. Vogt - Sep 2005)
+ * This code will be consistent with that of jumptn.c and jumpxn.c
+ * in packlib/kernlib/kerngen/ccgen (usage of jumpad_)
+ *
+ * for shared objects loaded by the dynamic linker content of the 1st arg
+ * in cscalr_ is a pointer which may be above the 32 bit address space
+ * therefore *fptr has been changed to type long
+ * see changes in csintx.F, cskcal.F, ... (introduction of INTEGER*8 array for
+ * those pointers)
+ */
+
+#if defined(CERNLIB_QMLXIA64)
+float cscalr_ (fptr,n,pin)
+ long *fptr;
+ int *n;
+ int pin[15];
+{
+ int jumpad_();
+ float (*name)();
+ unsigned long ptr = (unsigned long)jumpad_;
+ ptr += *fptr;
+ name = (float (*)())ptr;
+/* printf ("cscalr - *fptr,ptr,jumpad_ are: %p %p %p %p\n", *fptr, ptr, jumpad_); */
+ long p[15];
+ int count; for ( count=0; count<16; count++ ) p[count] = pin[count];
+#else
float (type_of_call *(*name)) ();
int *n;
int *p[15];
{
+#endif
float r;
switch (*n)
{
diff -urNad cernlib-2005.05.09~/src/pawlib/comis/deccc/cstrcmp.c cernlib-2005.05.09/src/pawlib/comis/deccc/cstrcmp.c
--- cernlib-2005.05.09~/src/pawlib/comis/deccc/cstrcmp.c 1997-09-02 15:50:44.000000000 +0000
+++ cernlib-2005.05.09/src/pawlib/comis/deccc/cstrcmp.c 2005-09-20 19:27:10.788516325 +0000
@@ -36,6 +36,27 @@
#else
int cstrcmp_(ja,na,jb,nb)
#endif
+
+/*
+ * 64-bit pointer systems require a special treatment of addresses - see below -
+ * using the CERNLIB_QMLXIA64 cpp flag (H. Vogt - Sep 2005)
+ */
+
+#if defined(CERNLIB_QMLXIA64)
+ int *ja, *jb;
+ int *na, *nb;
+{
+
+ int i,la,lb,k; char *a,*b;
+ if ( *na >= *nb )
+ {
+ (long)a=*ja; (long)b=*jb; la=*na; lb=*nb; k=1;
+ }
+ else
+ {
+ (long)a=*jb; (long)b=*ja; la=*nb; lb=*na; k=-1;
+ }
+#else
char **ja, **jb;
int *na, *nb;
{
@@ -48,6 +69,7 @@
{
a=*jb; b=*ja; la=*nb; lb=*na; k=-1;
}
+#endif
for ( i=0; i<lb; i++ )
{ if(a[i] != b[i])
{ return ( (a[i] > b[i]) ? k : -k ); }
diff -urNad cernlib-2005.05.09~/src/pawlib/paw/ntuple/qp_execute.c cernlib-2005.05.09/src/pawlib/paw/ntuple/qp_execute.c
--- cernlib-2005.05.09~/src/pawlib/paw/ntuple/qp_execute.c 2001-09-18 13:41:35.000000000 +0000
+++ cernlib-2005.05.09/src/pawlib/paw/ntuple/qp_execute.c 2005-09-20 19:27:10.789516111 +0000
@@ -245,7 +245,15 @@
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
+ 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 ibase[1], ioff, nuse;
int id = qe->id;
char * path = qe->path;
char * title;
@@ -871,8 +879,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 );
diff -urNad cernlib-2005.05.09~/src/pawlib/paw/ntuple/qp_hbook_if.c cernlib-2005.05.09/src/pawlib/paw/ntuple/qp_hbook_if.c
--- cernlib-2005.05.09~/src/pawlib/paw/ntuple/qp_hbook_if.c 1999-07-05 15:43:35.000000000 +0000
+++ cernlib-2005.05.09/src/pawlib/paw/ntuple/qp_hbook_if.c 2005-09-20 19:27:10.801513541 +0000
@@ -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 */
diff -urNad cernlib-2005.05.09~/src/scripts/cernlib cernlib-2005.05.09/src/scripts/cernlib
--- cernlib-2005.05.09~/src/scripts/cernlib 2003-01-23 14:00:37.000000000 +0000
+++ cernlib-2005.05.09/src/scripts/cernlib 2005-09-20 19:27:10.801513541 +0000
@@ -115,6 +115,12 @@
[ -d /usr/X11R6/lib ] && SYSGX11="-L/usr/X11R6/lib -lX11"
[ -d /usr/X11R6/lib ] && SYSGMOTIF="-L/usr/X11R6/lib -lXm -lXt -lXp -lXext -lX11"
[ `uname -m` = ppc ] && SYSGMOTIF="$SYSGMOTIF -lSM -lICE -lXpm"
+# add path to lib64 for x86_64 architecture
+ if [ `uname -m` = x86_64 ] && [ -d /usr/X11R6/lib64 ] ; then
+ SYSGDIRS="-L/usr/X11R6/lib -L/usr/X11R6/lib64"
+ SYSGX11="$SYSGDIRS -lX11"
+ SYSGMOTIF="$SYSGDIRS -lXm -lXt -lXp -lXext -lX11"
+ fi
;;
NeXT) SYSGX11="/usr/lib/X11/libX11.r" ;
SYSGMOTIF="-lXm -lXt /usr/lib/X11/libX11.r" ;;
cernlib_2005.05.09.dfsg-2.diff:
***** Error reading new file: [Errno 2] No such file or directory: 'cernlib_2005.05.09.dfsg-2.diff'
Index: 003-geant-dummy-functions.dpatch
===================================================================
RCS file: /cvs/extras/rpms/cernlib/devel/003-geant-dummy-functions.dpatch,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- 003-geant-dummy-functions.dpatch 30 Nov 2005 22:01:01 -0000 1.1
+++ 003-geant-dummy-functions.dpatch 9 Dec 2005 13:18:44 -0000 1.2
@@ -21,7 +21,7 @@
diff -urNad cernlib-2005.05.09.dfsg~/src/geant321/gkine/dummy.c cernlib-2005.05.09.dfsg/src/geant321/gkine/dummy.c
--- cernlib-2005.05.09.dfsg~/src/geant321/gkine/dummy.c 1970-01-01 00:00:00.000000000 +0000
+++ cernlib-2005.05.09.dfsg/src/geant321/gkine/dummy.c 2005-11-29 16:55:14.274440352 +0000
-@@ -0,0 +1,204 @@
+@@ -0,0 +1,205 @@
+/* Dummy file to avoid undefined symbols in the library */
+/* Kevin McCarty, 14 Jan 2003 */
+/* Last revised 22 November 2005 */
@@ -179,7 +179,8 @@
+ * shared libraries in the 12 official Debian architectures and determining
+ * the maximum size of each common block there. */
+
-+#define COMMON(fortranname_, size) struct { char c[size]; } fortranname_
++#define COMMON(fortranname_, size) \
++ struct { char c[size]; } fortranname_ = { { 0, } }
+
+COMMON(fkadhn_, 1376);
+COMMON(fkadhp_, 3712);
Index: cernlib.spec
===================================================================
RCS file: /cvs/extras/rpms/cernlib/devel/cernlib.spec,v
retrieving revision 1.6
retrieving revision 1.7
diff -u -r1.6 -r1.7
--- cernlib.spec 2 Dec 2005 09:57:41 -0000 1.6
+++ cernlib.spec 9 Dec 2005 13:18:44 -0000 1.7
@@ -1,6 +1,6 @@
Name: cernlib
Version: 2005
-Release: 7%{?dist}
+Release: 8%{?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.
@@ -62,7 +62,7 @@
Source201: cernlib-deadpool.txt
# debian patchset
-Patch0: cernlib_2005.05.09.dfsg-1.diff
+Patch0: cernlib_2005.05.09.dfsg-2.diff
# change file to directory to DATADIR
Patch1100: cernlib-enforce-FHS.diff
Patch1: 001-fix-missing-fluka.dpatch
@@ -84,6 +84,7 @@
Patch112: 112-remove-nonexistent-prototypes-from-gen.h.dpatch
# a workaround for cups. Applied in doubt.
Patch113: 113-cups-postscript-fix.dpatch
+Patch114: 114-install-scripts-properly.dpatch
Patch200: 200-comis-allow-special-chars-in-path.dpatch
Patch201: 201-update-kuip-helper-apps.dpatch
Patch202: 202-fix-includes-in-minuit-example.dpatch
@@ -97,8 +98,8 @@
Patch208: 208-fix-redundant-packlib-dependencies.dpatch
Patch209: 209-ignore-unneeded-headers-in-kmutil.c.dpatch
Patch210: 210-improve-cfortran-header-files.dpatch
-# disabled in the debian patchset
-# 211-fix-comis-on-64-bit-arches.disabled
+# disabled in the debian patchset, enabled here
+Patch211: 211-fix-comis-on-64-bit-arches.dpatch
Patch300: 300-skip-duplicate-lenocc.dpatch
# Use another approach, see cernlib-enforce-FHS
# Patch33: 301-datafiles-comply-with-FHS.dpatch
@@ -168,13 +169,13 @@
# change the cernlib script such that -llapack -lblas is used instead of
# cernlib lapack
-# and also depend explicitely on libkernlib now that it is out of packlib
+# depend explicitely on libkernlib now that it is out of packlib
+# use lesstif-pawlib and lesstif-packlib
# the modified script is renamed cernlib-static later and the debian cernlib
# script is used instead.
Patch1200: cernlib-cernlib_kernlib.patch
# don't stop if the CERN variable isn't defined
Patch1201: cernlib-gxint-script.diff
-Patch1202: cernlib-install_scripts.patch
Patch1203: cernlib-hwuli2_use_dimag.diff
Patch1204: cernlib-hwhiga_use_dimag.diff
Patch1205: cernlib-gfortran.diff
@@ -307,6 +308,7 @@
%patch -P 111 -p1
%patch -P 112 -p1
%patch -P 113 -p1
+%patch -P 114 -p1
%patch -P 200 -p1
%patch -P 201 -p1
%patch -P 202 -p1
@@ -318,7 +320,7 @@
%patch -P 208 -p1
%patch -P 209 -p1
%patch -P 210 -p1
-#%patch -P 211 -p1
+%patch -P 211 -p1
%patch -P 300 -p1
#%patch -P 301 -p1
#%patch -P 302 -p1
@@ -447,7 +449,6 @@
%patch -P 1200
%patch -P 1201
-%patch -P 1202
%patch -P 1203
%patch -P 1204
# use gfortran
@@ -688,6 +689,10 @@
%doc debian/debhelper/zftp.README.debian
%changelog
+* Fri Dec 9 2005 Patrice Dumas <dumas at centre-cired.fr> - 2005-8
+- use new debian patchset
+- enable 64 bit fixes patch
+
* Fri Dec 2 2005 Patrice Dumas <dumas at centre-cired.fr> - 2005-7
- use updated beta debian patchset
- remove the BSD in the licence because there is no library nor binary
--- cernlib-install_scripts.patch DELETED ---
--- cernlib_2005.05.09.dfsg-1.diff DELETED ---
- Previous message: rpms/torcs/FC-4 .cvsignore, 1.4, 1.5 sources, 1.4, 1.5 torcs.spec, 1.9, 1.10 TORCS-1.2.3-64bit.patch, 1.1, NONE
- Next message: rpms/digikam/devel digikam.spec,1.4,1.5
- Messages sorted by:
[ date ]
[ thread ]
[ subject ]
[ author ]
More information about the scm-commits
mailing list