Menu

#7 Trouble compiling chasm1.4RC1 on up.llnl.gov

open-fixed
descriptors (4)
5
2007-02-18
2007-01-16
Tom Epperly
No

I configured with
$ export CC=newxlc_r CXX=newxlC_r CFLAGS=-g CXXFLAGS=-g F90=newxlf90_r
$ ./configure --with-arch=aix64 --prefix=/usr/casc/babel/apps/aix/chasm_14rc1
--with-F90=newxlf90_r --with-F90-vendor=IBMXL --disable-pdt

$ make
making in src
making in farray
newxlc_r -I/usr/casc/babel/apps/aix/chasm_14rc1/include -g -q64 -I../../include -c ../compilers/G95.c
"../compilers/G95.c", line 144.35: 1506-068 (S) Operation between types "void*" and "unsigned long" is not allowed.
"../compilers/G95.c", line 385.44: 1506-068 (S) Operation between types "void*" and "unsigned long" is not allowed.
make: The error code from the last command is 1.

After I fixed this:
newxlc_r -I/usr/casc/babel/apps/aix/chasm_14rc1/include -g -q64 -I../../include -c ../compilers/PGI.c
"../compilers/PGI.c", line 330.21: 1506-068 (S) Operation between types "void*" and "unsigned long" is not allowed.

diff -c G95.c{~,}
*** G95.c~ Thu Jun 29 00:03:55 2006
--- G95.c Tue Jan 16 13:55:12 2007
***************
*** 141,147 ****
if (dv->dim[i].stride_mult == 0) return 1;
offset += dv->dim[i].lower_bound * dv->dim[i].stride_mult;
}
! dv->offset = base_addr - offset;

return 0;
}
--- 141,147 ----
if (dv->dim[i].stride_mult == 0) return 1;
offset += dv->dim[i].lower_bound * dv->dim[i].stride_mult;
}
! dv->offset = (char *)base_addr - offset;

return 0;
}
***************
*** 382,388 ****
if (dv->dim[i].stride_mult < 1) return 1;
offset += dv->dim[i].lower_bound * dv->dim[i].stride_mult;
}
! if (dv->offset != dv->base_addr - offset) return 1;

return 0;
}
--- 382,388 ----
if (dv->dim[i].stride_mult < 1) return 1;
offset += dv->dim[i].lower_bound * dv->dim[i].stride_mult;
}
! if (dv->offset != ((char *)dv->base_addr - offset)) return 1;

return 0;
}
diff -c PGI.c{~,}
*** PGI.c~ Tue May 23 16:16:47 2006
--- PGI.c Tue Jan 16 13:55:51 2007
***************
*** 327,333 ****
switch (desc_type) {
case F90_ArrayPointer: { /* desc contains everything, hidden 8 bytes after desc */
*desc = src;
! *hidden = src + 2*sizeof(void*);
break;
}
case F90_Array: { /* desc is base_addr only, hidden is separate from desc/base_addr */
--- 327,333 ----
switch (desc_type) {
case F90_ArrayPointer: { /* desc contains everything, hidden 8 bytes after desc */
*desc = src;
! *hidden = (char *)src + 2*sizeof(void*);
break;
}
case F90_Array: { /* desc is base_addr only, hidden is separate from desc/base_addr */

Discussion

  • Craig E Rasmussen

    Logged In: YES
    user_id=531842
    Originator: NO

    Added casts to void* variables as shown in the submitted patch.

     
  • Craig E Rasmussen

    • status: open --> open-fixed