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.