mandrake installation attempt

Has there been any luck with installing 5.2-2 on Mandrake? I attempted to follow the general thrust of what was mentioned in the “Installing 5.2 on AMD64 running Gentoo linux” thread, but no luck. I had to hardcode the SPECSFILE variable in the makelocalrc script in order to get it to produce believable results, but even after incorporating said results into the lin86rc file, I’m still unable to compile netcdf. I get as far as ncx.c and get the error


PGC-F-0249-#error – “ix_short implementation” (ncx.c: 200)

In the past, users of Mandrake had little problems installing our products since Mandrake was very similar to Red Hat. Of course things change, but since we don’t support Mandrake, we don’t keep track. However, the error your getting might not be a configuration issue. The code in question is as follows:

/* x_short */

#if SHORT_MAX == X_SHORT_MAX
typedef short ix_short;
#define SIZEOF_IX_SHORT SIZEOF_SHORT
#define IX_SHORT_MAX SHORT_MAX
#elif INT_MAX >= X_SHORT_MAX
typedef int ix_short;
#define SIZEOF_IX_SHORT SIZEOF_INT
#define IX_SHORT_MAX INT_MAX
#elif LONG_MAX >= X_SHORT_MAX
typedef long ix_short;
#define SIZEOF_IX_SHORT SIZEOF_LONG
#define IX_SHORT_MAX LONG_MAX
#else
#error "ix_short implementation"
#endif

These variables are either defined in ncx.h or /usr/include/limits.h so it might be an incompatability with NetCDF since NetCDF is expecting specific sizes for its types. Compare the values in limit.h with ncx.h to see if they agree. (Note that SHORT_MAX is called SHRT_MAX in limits.h, NetCDF redfines SHRT_MAX to SHORT_MAX)

Hope this helps,
Mat

Turns out they are the same. I just tried to ugrade to 5.2-4 and it jogged my memory on something relevant that happened during the 5.2-2 install. Just at the end of the upgrade installation, there are messages

dirname: too few arguments
Try dirname --help' for more information. basename: too few arguments Try basename --help’ for more information.
dirname: too few arguments
Try dirname --help' for more information. basename: too few arguments Try basename --help’ for more information.
dirname: too few arguments
Try `dirname --help’ for more information.

I suspect that this happens when “makelocalrc” is run for the first time? The source of the problem in that file seems to be that SPECSFILE is not correctly being determined. I assume that the correct value for my system would be

SPECSFILE=/usr/lib/gcc/i586-mandrake-linux-gnu/3.4.1/specs

I can’t quite wrap my head around the reason why the get_specs_file function in makelocalrc doesn’t work, so I hardcoded this value into that function. Then makelocalrc runs to completion and produces no error messages. Without hardcoding that value, I get the same error messages as the 5.2-4 installation. But alas, the upgrade still results in the same error in netcdf as before. Compiling HDF5 gets a little further, but also produces a similar error, complaining about INT_MAX in the file H5Distore.c.

Well, hmm. Maybe Mdk 10.1 made too many new changes under the hood. I have a spare partition, maybe I’ll put Suse 9.1 on it, see it I have better luck.

INT_MAX” is an installation problem since the installer is probablly not inserting “limit.h” in the pgi include file directory. “INT_MAX” is not defined in any system include file (it’s defined internally by gcc) so we needed to add our own limit.h file. If you still have the unpacked tarfile on your hard drive, find the directory linux86-64/5.2/include-gcc33 and copy the float.h and limit.h files into $PGI/linux86-64/5.2/include, where $PGI is your installation directory.

  • Mat

Bingo. Both HDF5 and NetCDF 3.5.1 now compile to completion and “make test” validates for netcdf. Thanks, man!