The far directive can be appended to a procedure or function heading but is ignored by GPC. It is there for Borland compatibility, only. (Since the GNU compilers provide a flat memory model, the distinction between near and far pointers is void.)
far is a Borland Pascal extension.
program FarDemo; var p: procedure; {$W no-near-far} { Don't warn about the uselessness of `far' } procedure Foo; far; { `far' has no effect in GPC } begin WriteLn ('Foo') end; begin p := Foo; { Would also work without `far' in GPC. } p end.