Controls whether the -qextname option affects BIND(C) entities.
.-bindcextname---. >>- -q--+-nobindcextname-+-------------------------------------><
@PROCESS:
@PROCESS BINDCEXTNAME | NOBINDCEXTNAME
-qbindcextname
The -qextname option and the BIND(C) attribute are two ways of modifying the names of Fortran global entities to facilitate use in C.
If you explicitly specify a BIND(C) binding label in an interface block using the NAME= specifier, the compiler uses this binding label in calls to the procedure regardless of the -qextname and -qbindcextname options.
If your interface does not explicitly specify a BIND(C) binding label using the NAME= specifier, the compiler creates an implicit binding label. If you also specify the -qextname option, the compiler appends an underscore to the implicit binding label only when the -qbindcextname option is in effect.
If you specify the -qextname and -qbindcextname options for a compilation unit declaring a BIND(C) procedure, the compiler appends an underscore to the binding label, even when the binding label is explicitly specified.
interface
integer function foo() bind(c)
end funciton
integer function bar()
end function
end interface
print *, foo()
print *, bar()
end
xlf90 x.f -qextname -qbindcextname # calls "foo_", and "bar_"
xlf90 x.f -qextname -qnobindcextname # calls "foo", and "bar_"
xlf90 x.f -qextname=foo -qbindcextname # calls "foo_", and "bar"
xlf90 x.f -qextname=foo -qnobindcextname # calls "foo", and "bar"
xlf90 x.f # calls "foo", and "bar"
xlf90 x.f -qnobindcextname # calls "foo", and "bar"