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

Re: 19981119: netcdf-3.4 on SunOS-4.1.3, gcc-2.8.1



Ben,

>Date: Fri, 20 Nov 1998 18:25:33 -0600 (CST)
>From: Ben Horner-Johnson <address@hidden>
>Organization: Northwestern University
>To: address@hidden
>Subject: Re: 19981119, nm.log (SunOS4.1.3, netcdf-3.4, gcc2.8.1)
>Keywords: 199811190734.AAA21680

In the above message, you wrote:

> fort-attio.o:
>          U .div
>          U .umul
>          U _free
>          U _malloc
>          U _memchr
>          U _memcpy
>          U _nc_get_att_double
>          U _nc_get_att_float
>          U _nc_get_att_int
>          U _nc_get_att_schar
>          U _nc_get_att_short
>          U _nc_get_att_text
>          U _nc_put_att_double
>          U _nc_put_att_float
>          U _nc_put_att_int
>          U _nc_put_att_schar
>          U _nc_put_att_short
>          U _nc_put_att_text
> 00000bfc T _nf_get_att_double_
> 0000056c T _nf_get_att_int1_

OK.  It looks like an underscore "_" is being appended to the
Fortran-callable routines by the C compiler.  From your previous
messages, however, the Fortran compiler is appending an additional
underscore:

    ld: Undefined symbol 
       _nf_put_var1_double__ 
       _nf_put_att_text__ 

This behavior is consistent with the g77 compiler using the f2c
compiler's naming conventions.  The netCDF pacakage can accomodate this
behavior by including a definition of the C macro "f2cFortran" prior to
executing the configure script.

Try the following:

    1.  Go to the top-level source directory.

    2.  Execute the command "make distclean".

    3.  Define your environment variables like the last time.

    4.  Include the option "-Df2cFortran" in the CPPFLAGS environment
        variable.  For example:

            export CPPFLAGS="-DNDEBUG -Df2cFortran"

        or

            setenv CPPFLAGS "-DNDEBUG -Df2cFortran"

    5.  Execute the configure script.  Redirect standard output and
        standard error to the file "configure.log".  If an error message
        occurs in the output, then stop and send me the file.

    6.  Execute the command "make".  Redirect standard output and
        standard error to the file "make.log".  If an error occurs,
        then stop and send me the files "make.log" and "configure.log".

    7.  Execute the command "make test".  Redirect standard output and
        standard error to the file "test.log".  If an error occurs,
        then stop and send me the files test.log, "make.log", and
        "configure.log".

    8.  Execute the command "make install".  Redirect standard output and
        standard error to the file "install.log".  If an error occurs,
        then stop and send me the files "install.log", "make.log", and
        "configure.log".

    9.  Execute the command "make clean".

Please let me know if this helps.

--------
Steve Emmerson   <http://www.unidata.ucar.edu>