On Sat, Oct 19, 2024 at 05:38:30PM +0000, Wyche, George G PW wrote: > > My Fortran project is based on -std=f2008. The GNU Fortran (For GCC version > 15.0.0) manual's 8.260 STAT example does not link if -std=f2008 is on the > command line: gfortran -std=f2008 test_stat.f90; ./a.out > The ld error is "undefined reference to `stat_'" > > This is with gfortran -version 12.2.0 and ld -version 2.40 > > Removing -std=f2008, and the example works as expected. >
FX has already addressed the questions. Here's the F2023 standardese about the issue: A standard-conforming processor may allow additional forms and relationships provided that such additions do not conflict with the standard forms and relationships. However, a standard-conforming processor may allow additional intrinsic procedures even though this could cause a conflict with the name of a procedure in a standard- conforming program. If such a conflict occurs and involves the name of an external procedure, the processor is permitted to use the intrinsic procedure unless the name has the EXTERNAL attribute (8.5.9) where it is used. A standard-conforming program shall not use nonstandard intrinsic procedures or modules that have been added by the processor. Note the last sentence. STAT() is nonstandard intrinsic procedure. You used -std=f2008, which causes gfortran to ignore all such procedure unless the -fall-intrinsics option is used. -- Steve