[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: 961125: not working on SGI r10000



>To: address@hidden
>From: Harvey Seim <address@hidden>
>Subject: not working on SGI r10000
>Organization: .
>Keywords: 199611251550.AA10544

Hi Harvey,

> I have tried to build the libraries several ways and can't get 
> things to work right.  If I do a default installation (just leaving 
> FFLAGS and CFLAGS as -O) I get the following message when I try to 
> compile my code that uses the netCDF commands:
> 
>         f77 -col120 -64 -r4 -mips4 -r10000 -O3 cfd.o prefactor.o
> integration_weights.o set_BC_flag.o read_ICS.o read_metrics.o
> derivs_1.o derivs_2.o divergence.o filters_4.o grad2_pd.o grad2_u.o
> grad2_v.o grad2_w.o diss.o set_eddy_viscosity.o set_K_fringe.o
> gradient.o init_mud.o project.o apply_BCS.o psolve_mud.o rhs_1.o
> rhs_2.o rhs_3.o rhs_4.o step_AB2.o step_E1.o MUD_3.o filter4.o
> energetics.o io_fluxes.o set_inflow.o write3D_nc.o writeXZ_nc.o
> writeXY_nc.o writeYZ_nc.o read_restart_file.o write_restart_file.o
> stretchz.o -lnetcdf -o cfd.x 
> ld64: FATAL 12: Expecting /usr/local/lib64/libnetcdf.a objects:  
> ld64: Segmentation fault.  Removing output file...  
> f77 ERROR:  /usr/lib64/cmplrs/ld64 returned non-zero status 1
> *** Error code 1 (bu21)

If you do a default installation, does your "make test" work for the
Fortran interface?  If so, the f77 flags used in that test are they way
to compile and link Fortran code with the netcdf library.  I just tried
building and testing netCDF 2.4.3 on an irix64 6.2 platform, and the
Fortran test worked OK with no f77 flags set.  (The ncdump test failed,
however.  I'll be investigating that ...).

In your environment, you have 

> FFLAGS=-64 -mips4 -r10000
> CFLAGS=-64 -mips4 -r10000

set.  We haven't tested netcdf with this combination, but one problem is
that the way the netCDF Fortran jackets are generated (using the m4
macro processor and the definitions in netcdf/fortran/irix64.m4) takes no
account of the FFLAGS or CFLAGS environment variables, so may be
inconsistent with these if they are not the default.  There is more
discussion of the SGI compile flag issues in a support message you can
see at

    http://www.unidata.ucar.edu/glimpse/netcdf/1946

In general, we have begun to recommend using "cc -n32" for C compiles
and unadorned "f77" for Fortran when building the netCDF library on
SGI's, but the configure script for irix64 platforms doesn't provide the
"-n32" flag.  I'm CC:ing Steve Emmerson, who maintains the configure
script, in case he can provide more insight on this.

_____________________________________________________________________

Russ Rew                                         UCAR Unidata Program
address@hidden                     http://www.unidata.ucar.edu

> Trying to compile my source as new 32bit code made me think the 
> library was old 32bit output.  So I tried specifying the flags to 
> force compilation to be 64 bit, mips4, on an r10000 (see env output 
> below).  Then the make for netcdf bombs.  I'd appreciate any 
> suggestions you might have on how to proceed.  Thanks.
> 
> Harvey Seim
> 
> Here's the output you requested:
> 
> from uname -a: IRIX64 remora 6.2 06101031 IP28
> 
> from env:
> 
> DISPLAY=:0.0 HOME=/usr/people/harvey HOST=remora HOSTTYPE=iris4d
> LM_LICENSE_FILE=/usr/local/matlab/etc/license.dat LOGNAME=harvey
> MAIL=/usr/mail/harvey
> MANPATH=/usr/share/catman:/usr/share/man:/usr/catman:/usr/man:/usr/local/man
> MATLAB=/usr/local/matlab
> MATLABPATH=/usr/people/harvey/matlab/seawater:/usr/people/harvey/matlab/seawater_gregg:/usr/people/harvey/matlab/contour
> MSGVERB=text:action NOMSGLABEL=1 NOMSGSEVERITY=1
> PATH=/usr/sbin:/usr/bsd:/sbin:/usr/bin:/bin:/etc:/usr/etc:/usr/bin/X11:/usr/local/bin:/usr/people/harvey/bin
> PWD=/usr/local/src/netcdf-2.4.3/src SHELL=/bin/tcsh SHLVL=1
> TERM=iris-ansi TZ=EST5EDT USER=harvey
> XUSERFILESEARCHPATH=/usr/people/harvey/.desktop-remora/%N:/usr/people/harvey/%N:/usr/people/harvey/%L/%N%C:/usr/people/harvey/%l/%N%C:/usr/people/harvey/%N%C:/usr/people/harvey/%L/%N:/usr/people/harvey/%l/%N
> WINDOWID=46137348 PS1=# 
> FFLAGS=-64 -mips4 -r10000
> CFLAGS=-64 -mips4 -r10000
> 
> output from configure:
> 
> loading cache ./config.cache
> checking for catman... no
> checking for fill-value usage... new usage
> checking the installation prefix... /usr/local
> checking the installation exec-prefix... /usr/local
> checking for cc... (cached) cc
> checking type of operating system... irix64
> checking for ranlib... (cached) :
> checking how to run the C preprocessor... (cached) cc -E
> checking the C preprocessor... works
> checking for f77... (cached) f77
> checking for CC... (cached) CC
> checking for yacc... (cached) yacc
> checking for neqn... (cached) cat
> configure: warning: ./configure: Can't find program `neqn'; setting to `cat'
> checking for tbl... (cached) cat
> configure: warning: ./configure: Can't find program `tbl'; setting to `cat'
> checking for ar... (cached) ar
> checking for makeinfo... no
> checking for tar flags... -chof
> checking for dependency generation mechanism... cc -M
> checking for C position-independent-code compile-option... 
> checking whether cross-compiling... (cached) no
> checking size of int... (cached) 4
> checking size of long... (cached) 8
> checking type of nclong... int
> checking endianess... big endian
> checking type of netlong... int
> checking type of internal netlong... long
> checking for XDR header-file... -I/usr/include/rpc
> checking for XDR library... 
> checking for xdr_long in default library... yes
> checking XDR implementation... ok
> checking type pointed to by inline XDR function... long
> checking XDR structure xdr_ops for x_getint member... yes
> checking which XDR module to use... xdrposix
> checking for function prototype... yes
> checking for working const... yes
> checking for variadic function support... yes
> checking for strerror... (cached) yes
> checking compiler options for IEEE arithmetic... 
> checking for size of block buffer... 8192
> checking for float.h... (cached) yes
> checking for stdlib.h... (cached) yes
> checking C header file <stdlib.h> for function malloc()... declared
> checking for package version... 2.4
> checking binary distribution directory... /home/ftp/pub/binary/ip28-irix64
> creating ./config.status
> creating Makefile
> creating xdr/Makefile
> creating libsrc/Makefile
> creating fortran/Makefile
> creating cxx/Makefile
> creating ncgen/Makefile
> creating ncdump/Makefile
> creating nctest/Makefile
> creating doc/Makefile
> creating port/master.mk
> creating port/Makefile
> creating libsrc/local_nc.h
> libsrc/local_nc.h is unchanged
> expanding `include's in file `Makefile'
> expanding `include's in file `xdr/Makefile'
> expanding `include's in file `libsrc/Makefile'
> expanding `include's in file `fortran/Makefile'
> expanding `include's in file `cxx/Makefile'
> expanding `include's in file `ncgen/Makefile'
> expanding `include's in file `ncdump/Makefile'
> expanding `include's in file `nctest/Makefile'
> expanding `include's in file `doc/Makefile'
> expanding `include's in file `port/master.mk'
> expanding `include's in file `port/Makefile'
> 
> the config.log:
> 
> This file contains any messages produced by compilers while
> running configure, to aid debugging if configure makes a mistake.
> 
> configure:1197: cc -E  conftest.c >/dev/null 2>conftest.out
> configure:1684: cc -c -64 -mips4 -r10000   conftest.c 1>&5
> configure:1845: cc -o conftest -64 -mips4 -r10000   conftest.c  1>&5
> configure:1875: cc -o conftest -64 -mips4 -r10000   conftest.c  1>&5
> configure:1960: cc -o conftest -64 -mips4 -r10000   conftest.c  1>&5
> configure:2169: cc -o conftest -64 -mips4 -r10000   conftest.c  1>&5
> configure:2218: cc -c -64 -mips4 -r10000  conftest.c 1>&5
> configure:2259: cc -c -64 -mips4 -r10000  conftest.c 1>&5
> configure:2292: cc -c -64 -mips4 -r10000  conftest.c 1>&5
> configure:2332: cc -c -64 -mips4 -r10000  conftest.c 1>&5
> "configure", line 2322: warning(1116): non-void function "t" (declared at line
>           2320) should return a value
>           }
>           ^
> 
> configure:2510: cc -c -64 -mips4 -r10000  conftest.c 1>&5
> "configure", line 2502: error(1143): declaration is incompatible with
>           "void *malloc(size_t)" (declared at line 154 of
>           "/usr/include/stdlib.h")
>                   extern struct {int a; int b;} *malloc();
>                                                  ^
> 
> 1 error detected in the compilation of "conftest.c".
> 
> 
> and the output from the make:
> 
> 
> making `all' in directory /usr/local/src/netcdf-2.4.3/src/port
> 
> 
> returning to directory /usr/local/src/netcdf-2.4.3/src
> 
> 
> making `all' in directory /usr/local/src/netcdf-2.4.3/src/xdr
> 
> 
> returning to directory /usr/local/src/netcdf-2.4.3/src
> 
> 
> making `all' in directory /usr/local/src/netcdf-2.4.3/src/libsrc
> 
>       cc -c -64 -mips4 -r10000  array.c
>       cc -c -64 -mips4 -r10000  attr.c
>       cc -c -64 -mips4 -r10000  cdf.c
>       cc -c -64 -mips4 -r10000  dim.c
>       cc -c -64 -mips4 -r10000  file.c
>       cc -c -64 -mips4 -r10000  iarray.c
>       cc -c -64 -mips4 -r10000  error.c
>       cc -c -64 -mips4 -r10000  globdef.c
>       cc -c -64 -mips4 -r10000  putget.c
>       cc -c -64 -mips4 -r10000  putgetg.c
>       cc -c -64 -mips4 -r10000  sharray.c
>       case `uname -sv` in \
>           'AIX 3') \
>               CFLAGS=`echo -64 -mips4 -r10000 | sed 's/-O[23]//g;s/-O//g'`; \
>               cc -c $CFLAGS  string.c; \
>               ;; \
>           *) \
>               cc -c -64 -mips4 -r10000  string.c; \
>               ;; \
>       esac
>       cc -c -64 -mips4 -r10000  var.c
>       cc -c -64 -mips4 -r10000  xdrposix.c
>       ar rcuv libnetcdf.a array.o attr.o cdf.o dim.o file.o iarray.o error.o  
> globdef.o putget.o putgetg.o sharray.o string.o var.o  xdrposix.o
> a - array.o
> a - attr.o
> a - cdf.o
> a - dim.o
> a - file.o
> a - iarray.o
> a - error.o
> a - globdef.o
> a - putget.o
> a - putgetg.o
> a - sharray.o
> a - string.o
> a - var.o
> a - xdrposix.o
>       case "" in \
>       '') ;; \
>       *)  ar rucv libnetcdf.a ;; \
>       esac
>       : libnetcdf.a
> 
> returning to directory /usr/local/src/netcdf-2.4.3/src
> 
> 
> making `all' in directory /usr/local/src/netcdf-2.4.3/src/fortran
> 
>       ./fortc -L . -O irix64 common.inc > netcdf.inc
>       ./fortc -L . -O irix64 jackets.src > jackets.c
>       cc -c -64 -mips4 -r10000 -I../libsrc  jackets.c
>       ar rcuv ../libsrc/libnetcdf.a jackets.o
> a - jackets.o
>       : ../libsrc/libnetcdf.a
> 
> returning to directory /usr/local/src/netcdf-2.4.3/src
> 
> 
> making `all' in directory /usr/local/src/netcdf-2.4.3/src/ncdump
> 
>       cc -c -64 -mips4 -r10000 -I../libsrc   ncdump.c
>       cc -c -64 -mips4 -r10000 -I../libsrc   vardata.c
>       cc -c -64 -mips4 -r10000 -I../libsrc   dumplib.c
> cc -o ncdump -64 -mips4 -r10000 ncdump.o vardata.o dumplib.o 
> ../libsrc/libnetcdf.a
> 
> returning to directory /usr/local/src/netcdf-2.4.3/src
> 
> 
> making `all' in directory /usr/local/src/netcdf-2.4.3/src/ncgen
> 
>       cc -c -64 -mips4 -r10000 -I../libsrc  main.c
>       cc -c -64 -mips4 -r10000 -I../libsrc  load.c
>       lex ncgen.l
> 496/8000 nodes(%e), 1695/6000 positions(%p), 234/4000 (%n), 14134 transitions,
> 301/20000 packed char classes(%k), 962/16000 packed transitions(%a), 
> 1151/24000 output slots(%o)
>       mv lex.yy.c ncgenyy.c
>       yacc -d ncgen.y
>       mv y.tab.c ncgentab.c
>       mv y.tab.h ncgentab.h
>       cc -c -64 -mips4 -r10000 -I../libsrc  ncgentab.c
> "ncgen.l", line 40: warning(1110): statement is unreachable
>   break;
>   ^
> 
> "ncgen.l", line 42: warning(1110): statement is unreachable
>   break;
>   ^
> 
> "ncgen.l", line 43: warning(1110): statement is unreachable
>   break;
>   ^
> 
> "ncgen.l", line 44: warning(1110): statement is unreachable
>   break;
>   ^
> 
> "ncgen.l", line 45: warning(1110): statement is unreachable
>   break;
>   ^
> 
> "ncgen.l", line 46: warning(1110): statement is unreachable
>   break;
>   ^
> 
> "ncgen.l", line 47: warning(1110): statement is unreachable
>   break;
>   ^
> 
> "ncgen.l", line 49: warning(1110): statement is unreachable
>   break;
>   ^
> 
> "ncgen.l", line 51: warning(1110): statement is unreachable
>   break;
>   ^
> 
> "ncgen.l", line 52: warning(1110): statement is unreachable
>   break;
>   ^
> 
> "ncgen.l", line 53: warning(1110): statement is unreachable
>   break;
>   ^
> 
> "ncgen.l", line 66: warning(1110): statement is unreachable
>   break;
>   ^
> 
> "ncgen.l", line 70: warning(1110): statement is unreachable
>   break;
>   ^
> 
> "ncgen.l", line 74: warning(1110): statement is unreachable
>   break;
>   ^
> 
> "ncgen.l", line 82: warning(1110): statement is unreachable
>   break;
>   ^
> 
> "ncgen.l", line 93: warning(1110): statement is unreachable
>   break;
>   ^
> 
> "ncgen.l", line 100: warning(1110): statement is unreachable
>   break;
>   ^
> 
> "ncgen.l", line 107: warning(1110): statement is unreachable
>   break;
>   ^
> 
> "ncgen.l", line 142: warning(1110): statement is unreachable
>   break;
>   ^
> 
> "ncgen.l", line 157: warning(1110): statement is unreachable
>   break;
>   ^
> 
> "ncgen.l", line 161: warning(1110): statement is unreachable
>   break;
>   ^
> 
> "ncgen.l", line 165: warning(1110): statement is unreachable
>   break;
>   ^
> 
> "ncgen.l", line 169: warning(1110): statement is unreachable
>   break;
>   ^
> 
> "ncgen.l", line 186: warning(1110): statement is unreachable
>   break;
>   ^
> 
> "ncgen.l", line 190: warning(1110): statement is unreachable
>   break;
>   ^
> 
> "ncgen.l", line 1177: warning(1167): pointer points outside of underlying
>           object
>   yycrank+-1, 0,              0,      
>          ^
> 
> "ncgen.l", line 1178: warning(1167): pointer points outside of underlying
>           object
>   yycrank+-66,        yysvec+1,       0,      
>          ^
> 
> "ncgen.l", line 1182: warning(1167): pointer points outside of underlying
>           object
>   yycrank+-144,       0,              yyvstop+8,
>          ^
> 
> "ncgen.l", line 1183: warning(1167): pointer points outside of underlying
>           object
>   yycrank+-185,       0,              yyvstop+10,
>          ^
> 
> "ncgen.l", line 1217: warning(1167): pointer points outside of underlying
>           object
>   yycrank+-2, yysvec+6,       0,      
>          ^
> 
> "ncgen.l", line 1219: warning(1167): pointer points outside of underlying
>           object
>   yycrank+-480,       0,              0,      
>          ^
> 
> "ncgen.l", line 1228: warning(1167): pointer points outside of underlying
>           object
>   yycrank+-598,       0,              yyvstop+113,
>          ^
> 
> "ncgen.l", line 1387: warning(1167): pointer points outside of underlying
>           object
>   yycrank+-1028,      0,              0,      
>          ^
> 
> "ncgen.l", line 1396: warning(1167): pointer points outside of underlying
>           object
>   yycrank+-281,       yysvec+211,     yyvstop+442,
>          ^
> 
>       cc -c -64 -mips4 -r10000 -I../libsrc  escapes.c
>       cc -c -64 -mips4 -r10000 -I../libsrc  getfill.c
>       cc -c -64 -mips4 -r10000 -I../libsrc  init.c
>       cc -c -64 -mips4 -r10000 -I../libsrc  close.c
>       cc -c -64 -mips4 -r10000 -I../libsrc  genlib.c
> cc -o ncgen -64 -mips4 -r10000 main.o load.o ncgentab.o escapes.o getfill.o 
> init.o close.o genlib.o ../libsrc/libnetcdf.a
> 
> returning to directory /usr/local/src/netcdf-2.4.3/src
> 
> 
> making `all' in directory /usr/local/src/netcdf-2.4.3/src/nctest
> 
>       cc -c -64 -mips4 -r10000 -I../libsrc   varget.c
>       cc -c -64 -mips4 -r10000 -I../libsrc   vargetg.c
>       cc -c -64 -mips4 -r10000 -I../libsrc   varput.c
>       cc -c -64 -mips4 -r10000 -I../libsrc   varputg.c
>       cc -c -64 -mips4 -r10000 -I../libsrc   vardef.c
>       cc -c -64 -mips4 -r10000 -I../libsrc   vartests.c
>       cc -c -64 -mips4 -r10000 -I../libsrc   vputget.c
>       cc -c -64 -mips4 -r10000 -I../libsrc   vputgetg.c
>       cc -c -64 -mips4 -r10000 -I../libsrc   driver.c
>       cc -c -64 -mips4 -r10000 -I../libsrc   cdftests.c
>       cc -c -64 -mips4 -r10000 -I../libsrc   dimtests.c
>       cc -c -64 -mips4 -r10000 -I../libsrc   rec.c
>       cc -c -64 -mips4 -r10000 -I../libsrc   atttests.c
>       cc -c -64 -mips4 -r10000 -I../libsrc   misctest.c
>       cc -c -64 -mips4 -r10000 -I../libsrc   add.c
>       cc -c -64 -mips4 -r10000 -I../libsrc   error.c
>       cc -c -64 -mips4 -r10000 -I../libsrc   emalloc.c
>       cc -c -64 -mips4 -r10000 -I../libsrc   val.c
>       cc -c -64 -mips4 -r10000 -I../libsrc   slabs.c
> cc -o nctest -64 -mips4 -r10000 varget.o vargetg.o varput.o varputg.o 
> vardef.o vartests.o vputget.o vputgetg.o driver.o cdftests.o dimtests.o rec.o 
> atttests.o misctest.o add.o error.o emalloc.o val.o slabs.o 
> ../libsrc/libnetcdf.a
> 
> returning to directory /usr/local/src/netcdf-2.4.3/src
> 
> 
> making `all' in directory /usr/local/src/netcdf-2.4.3/src/cxx
> 
>       CC -c  -I../libsrc   netcdf.cc
>       CC -c  -I../libsrc   ncvalues.cc
>       ar rcuv libnetcdf_c++.a netcdf.o ncvalues.o
> a - netcdf.o
> a - ncvalues.o
>       case "" in \
>       '') ;; \
>       *)  ar rucv libnetcdf_c++.a ;; \
>       esac
>       : libnetcdf_c++.a
>       CC -c  -I../libsrc   nctst.cc
>       CC  nctst.o -L. -lnetcdf_c++ -L../libsrc -lnetcdf  -o nctst
> ld:
> Archive: ../libsrc/libnetcdf.a has no table of contents (not searched)
>          add one with 'ar ts'
> Unresolved:
> ncopen
> nccreate
> ncinquire
> ncdimid
> ncvarid
> ncvardef
> ncsetfill
> ncsync
> ncclose
> ncabort
> ncredef
> ncendef
> ncdiminq
> ncdimrename
> ncdimdef
> ncvarinq
> ncvarget
> ncvarput
> ncattput
> ncvarrename
> ncattname
> ncattinq
> ncattget
> ncattrename
> ncattdel
> ncopts
> ncerr
> nctypelen
> *** Error code 1 (bu21)
> *** Error code 1 (bu21)
> 
> 
> ------- End of Forwarded Message
>