> From: jhudd@xxxxxxxxxxxxxxxxxxxxxxxxx (John Huddleston)
> To: netcdfgroup@xxxxxxxxxxxxxxxx (Group NetCDF)
Hi John,
> I have been reading the mail on the g++ libraries for
> netCDF. This morning I downloaded the newest patches
> and have the following comments:
>
> Please add the c++/all to the Makefile and the configure files.
Sorry, but this will have to wait until the next major netCDF release for at
least two reasons. First, fixing the `configure' script to determine
whether a C++ compiler is available and if so which features it supports
requires a newer version of the `autoconf' package than was used to generate
the `configure' script in the current release, so entails more work than we
can justify for a patch. Second, the C++ interface is still labeled
experimental, which means we still want to be free to change the interface
in ways that may not be strictly backward-compatible. We want users of the
experimental C++ interface to realize its status. Requiring users to
manually change to the C++ directory and read the `README' file to install
it helps inform them that they may have to change their programs in the
future if they choose to use this interface.
> When you do the patch, uprev the version number for the VERSION
> variable to 2.3.3 or 2.3.4 as appropriate.
The version of the package is still 2.3.2, but at patch level 4 (abbreviated
`2.3.2pl4'). If we were to increment the version to 2.3.3, we would have to
retest it on lots of platforms and change some documentation. I've made the
the judgment release of a minor patch that only affects the experimental
C++ interface doesn't justify the effort required to do this right now.
> Please recompile your binaries on your unidata.ucar.edu host
> with the most recent g++ libraries for the Sun (and other
> computers).
Sorry, but we don't have the resources to maintain binaries for multiple
versions of different C++ compilers on a wide range of hardware and OS
combinations. For example, we would need to maintain at least six versions
of the netCDF C++ library just for Sun platforms (g++ or SunSoft C++ or
ObjectCenter C++ for SunOS 4.x or Solaris 2.x) since each compiler uses
different name-mangling algorithms for type-safe linkage.
We make binary distributions available for a small set of platforms that are
currently most used at Unidata university sites. If a sizable number of
Unidata university sites began using g++, we would build and maintain g++
binaries.
> I am using gcc version 2.5.8 and with the current Makefile
> in the c++ directory, I get the following errors on a Sun
> with 4.1.3 operating system:
>
> g++ -c -g -I../libsrc netcdf.cc
> In file included from netcdf.hh:16,
> from netcdf.cc:12:
> ncvalues.hh:20: conflicting types for `unsigned char'
> ../libsrc/netcdf.h:281: previous declaration as `char'
This appears to be a problem that was fixed with patch 3 to netCDF 2.3.2,
which should have been applied to the netcdf-2.3.2pl2 distribution before
the patch 4 that was just made available. At least one other user has
reported that the latest patch works with the latest release of g++ (2.6.3),
but I need to rebuild g++ to verify this.
If other users have encountered problems using g++, please let us know
(preferably by email to support@xxxxxxxxxxxxxxxx). Also, if anyone figures
out how to build a working Fortran interface on top of a gcc-compiled
library, several other users would be interested. Thanks.
______________________________________________________________________________
Russ Rew UCAR Unidata Program
russ@xxxxxxxxxxxxxxxx P.O. Box 3000
http://www.unidata.ucar.edu/ Boulder, CO 80307-3000
______________________________________________________________________________
P.S. to the group: netCDF needs a graphical logo. Our WWW pages would look
better with a recognizable logo, and we could also use it for the cover of
the printed documentation. I have a few pedestrian ideas, but I'm
unfortunately "logo design"-challenged, so if anyone out their has any good
ideas, please reply. Thanks!