Correct install fails to link correct gcc-lib

I have installed 6.1-3 and now 6.1-4 on a 64-bit AMD Opteron platform. The install runs to completion in both cases.

I try to compile a simple C++ code and the compile balks:

(ffe-64 247%) pgCC -v -g

/net/scratch1/dog/flash64/PGI/pgi_6.1-4/linux86-64/6.1/bin/pgcpp1 --llalign -Dunix -D__unix -D__unix__ -Dlinux -D__linux -D__linux__ -D__inline__= -D__NO_INLINE__ -D__NO_MATH_INLINES -D__x86_64__ -D__LONG_MAX__=9223372036854775807L ‘-D__SIZE_TYPE__=unsigned long int’ ‘-D__PTRDIFF_TYPE__=long int’ -D__THROW= -D__amd64__ -D__PGI -I/net/scratch1/dog/flash64/PGI/pgi_6.1-4/linux86-64/6.1/include/CC -I/net/scratch1/dog/flash64/PGI/pgi_6.1-4/linux86-64/6.1/include -I/usr/local/include -I/usr/lib/gcc-lib/i386-redhat-linux/3.2.2/include -I/usr/lib/gcc-lib/i386-redhat-linux/3.2.2/include -I/usr/include -g --dwarf2 -q -o /tmp/
“/net/scratch1/dog/flash64/PGI/pgi_6.1-4/linux86-64/6.1/include/float.h”, line 55: catastrophic error:
could not open source file “float.h”

1 catastrophic error detected in the compilation of “”.
Compilation terminated.
pgCC-Fatal-cpp1 completed with exit code 4

Unlinking /tmp/

Notice the “-I/usr/lib/gcc-lib/i386-redhat-linux/3.2.2/include” line in that output? How did that get in there? There isn’t even such a directory on this system. There is a /usr/lib/gcc-lib/i386-redhat-linux/3.3.4/include.

The localrc that is created contains this info:

set LFC=-lg2c;
set LDSO=/lib64/;
set GCCDIR=/usr/lib/gcc/x86_64-redhat-linux/3.4.4/;
set GCCINC=/usr/lib/gcc/x86_64-redhat-linux/3.4.4/include;
set G77DIR=/usr/lib/gcc/x86_64-redhat-linux/3.4.4/;

Why isn’t any of that info being used?

This system is running FC3 with glibc 2.3.5.

Before you ask me to look at the install logs, tell me where those logs are kept or what they’re named because I see no such logs.

Hi David,

I think your install is ok, but the driver appears to be getting it’s GCCDIR information from a different rc file than the one you have listed, perhaps a “.mypgcpprc” in your home directory or a “siterc” file. Please post the output of the following command.

pgCC -dryrun -c x.cpp

“-dryrun” prints out the steps the driver performs, including which rc files it uses, but does not execute these steps.


~]# pgcc -dryrun -c x.cpp
Reading rcfile /opt/pgi/linux86-64/17.4/bin/.pgccrc
Reading rcfile /opt/pgi/linux86-64/17.4/bin/nativerc
Reading rcfile /opt/pgi/linux86-64/17.4/bin/fnativerc
Reading rcfile /opt/pgi/linux86-64/17.4/bin/ccrc
Reading rcfile /opt/pgi/linux86-64/17.4/bin/x86rc
Reading rcfile /opt/pgi/linux86-64/17.4/bin/x8664rc
Reading rcfile /opt/pgi/linux86-64/17.4/bin/lin86rc
Reading rcfile /opt/pgi/linux86-64/17.4/bin/lin8664rc
Reading rcfile /opt/pgi/linux86-64/17.4/bin/iparc
Reading rcfile /opt/pgi/linux86-64/17.4/bin/acc1rc
Reading rcfile /opt/pgi/linux86-64/17.4/bin/acclin8664rc
Skipping accxrc (not found)
Reading rcfile /opt/pgi/linux86-64/17.4/bin/localrc
Reading rcfile /opt/pgi/linux86-64/17.4/bin/localrc.ns1
Skipping siterc (not found)
Skipping siterc.ns1 (not found)
Skipping .mypgirc (not found)
Skipping .mypgccrc (not found)
Skipping .mypgx86rc (not found)
Skipping $MYLOCALRC (not found)
Export PGI=/opt/pgi
pgcc-Warning-Please use pgc++ for C++ source files: x.cpp

If you really need to use the 6.1 compilers (2006), pgCC, and the old glibc 2.3,
on this system, I think you should install on that system. If you moved
the compilers from another system, changing the localrc files
may not be enough. There may be other PGI libs/headers needed for
the other Linux versions to work. float.h for example.

Your web account does not have a PIN tied to it, so you cannot get
at the archives to download old packages.

Send the license you are using to, and we can tie
the PIN and give you access to the 6.1-6 downloads, so you can try a fresh install on the older Linux version, and get the localrc file
created correctly (or close to it!).