Missing argument to pgf901 bug... possibly.

For reasons unkown to me, one of our users attempted to compile a .f90 file using pgf77. I would expect one of two things when this happens - either the compiler tells the user to use pgf90/pgf95, or the compiler is smart enough to figure things out and set the appropriate flags to the back-end compiler anyway.

I believe that PGI is trying to do the latter. However, the error message reported is the following:

$ pgf77 foo.f90
pgf90: LICENSE MANAGER PROBLEM: No such feature exists.
Feature: pgf90
License path: /opt/PGI/pgi_6.1-3/license.dat
FLEXnet Licensing error:-5,412
For further information, refer to the FLEXnet Licensing End User Guide,
available at "> www.macrovision.com> ".

I don’t know why this is a license problem at all. Of course the compilation with pgf90 works as it should. Next, I did the same thing using the -dryrun compiler flag. I did this using the pgf77 and pgf90 front-ends. The output for either case was nearly identical. The only difference was that the output from using pgf90 had this flag in it:

-x 48 3328

I have no idea what it does when it is passed to pgf901 (the back-end) but it isn’t present in the case of using pgf77 to compile, and removing it in the pgf90 case causes the same error message above.

Is this a bug? What is really going on when someone attempts to compile a .f90 file with pgf77?

Hi David,

This was a bug and was fixed with the 6.1-4 compilers. You are correct that the bug was that the pgf77 driver failed to pass the F90 compilers several internal compiler flags. While the pgf77 driver could “do the right thing” and correctly invoke the F90 compilers, we were concerned that the user would likely then use pgf77 to link. pgf77 would then attempt to link the F90 program with the F77 runtime libraries and F77 main object causing the link to fail. Because of this, we decided that the better course of action would be to disallow pgf77, as well as pgcc ang pgCC, from accepting the “.f90” and “.F90” extensions.

% pgf77 -V6.1-4 tmp.f90
pgf77-Error-Fortran 90/95 files must be compiled with pgf90 or pgf95: tmp.f90

Thanks,
Mat

Thanks, Matt!

I just tested it in the new 6.1-5 as well - works there, too. I prefer this behavior over letting users “get away with it” and creating problems at link time.

Thanks for the prompt reply.

-david