PGC-S-0040-Illegal use of symbol, choke (conftest.c: 16)

Hello

I am trying to install hdf5 1.8 using the PGI cygwin environment. I am getting an error during the configuration.

I have done the configuration using the following command:

PGI$ CC=pgcc FC=pgf90 CXX=pgCC CFFLAGS=-Mmpi=msmpi CPPFLAGS=-Mmpi=msmpi FCFLAGS
=-Mmpi=msmpi ./configure --enable-fortran --with-default-api-version=v16 |tee c
onfigure.log

I am getting the following error:


configure: error: in /c/Users/Administrator/Desktop/Downloads/hdf5-1.8.5': configure: error: linking to Fortran libraries from C fails See config.log’ for more details.


and my config.log contains:


configure:4655: checking whether we are using the GNU C compiler
configure:4674: pgcc -c -Mmpi=msmpi conftest.c >&5
NOTE: your trial license will expire in 6 days, 5.43 hours.
PGC-S-0040-Illegal use of symbol, choke (conftest.c: 16)
PGC-W-0156-Type not specified, ‘int’ assumed (conftest.c: 16)
PGC/x86-64 Windows 10.5-0: compilation completed with severe errors
configure:4674: $? = 2
configure: failed program was:
| /* confdefs.h */


Kindly let me know how to resolve it.

Thanks & Regards,
Kunal

Hi Kunal,

Try setting each environment variable before running configure, i.e. “export CC=pgcc”, “export FC=pgf90”, etc. Also, use “pgcpp” for the CXX compiler. Windows is case insensitive so “pgCC” is the same as “pgcc”.

I just tried this with HDF5 1.6 on Win64 and was able to create a configuration. Though, you might encounter other portability issues that you’ll need work through.

  • Mat

Hi Mat,

Thanks for your reply. As per your suggestion, I did:

$export CC=pgcc
$export FC=pgf90
$export CXX=pgcpp
$export CFLAGS=-Mmpi=msmpi
$export FCFLAGS=-Mmpi=msmpi
$export CPPFLAGS=-Mmpi=msmpi

and then ran the configure command as:

$./configure --enable-fortran --with-default-api-version=v16 |tee configure.log

I am still getting the same error as mentioned previously. I am now trying with version 1.6 instead of 1.8. Now during configuration, I got this error:

configure: error: no acceptable ld found in $PATH

and the config.log also contains the “Illegal use of symbol, choke” error.

my PATH environment variable is as follows:


/c/Python27:.:/c/PROGRA~1/PGI/win64/10.5/bin:/c/Program Files/PGI/Microsoft Open
Tools 9/bin/amd64:/c/PROGRA~1/PGI/win64/2010/cuda/3.0/bin:/c/PROGRA~1/PGI/win64
/2010/cuda/2.3/bin:/bin:/c/Program Files/PGI/flexlm:/c/Program Files (x86)/Java/
jre6/bin:/c/Program Files/Microsoft HPC Pack 2008 SDK/Bin/:/c/Program Files/Micr
osoft HPC Pack/Bin/:/c/Windows/system32:/c/Windows:/c/Windows/System32/Wbem:/c/W
indows/System32/WindowsPowerShell/v1.0/:/c/Program Files/Windows Imaging/:/c/Pro
gram Files (x86)/Microsoft SQL Server/90/Tools/binn/:/c/Windows/SUA/common/:/c/W
indows/SUA/usr/lib/

and on doing
$ld
I get:
bash: ld: command not found

My configuration command is as follows:

PGI$ ./configure --enable-fortran |tee configure.log

Can you please suggest something.

Thanks & Regards,
Kunal

Hi Kunal,

PGI is a native Windows compiler, not a CYGWIN compiler. We ship a CYGWIN shell for it’s tools, but you could just as easy run the PGI compilers from the DOS prompt.

In look through the Install guides for HDF, they recommend users build the libraries using Visual Studio. Have you tried following these directions?

Note that the CYGWIN PGI ships does include a linker (ld) so I suspect that you’re using your own CYGWIN. You can try installing the CYGWIN we ship and then you should be able to get farther, but you’ll most likely encounter additional issues.

  • Mat