[fpc-devel]Bug in AssignPipe() on Linux

Peter Vreman peter at freepascal.org
Fri Nov 7 18:09:40 CET 2003

> Using the latest version of the compiler, and I am having a
> problem with the popen() function on Linux.
> It looks like popen() fails because AssignStream() fails,
> because AssignPipe() fails, and that's about as far as I got.
> ( I'm lost when it comes to the do_SysCall() stuff. )
> FAILS:  version 1.9.0  [2003/11/05] for i386  (pre-built binary)
> FAILS:  version 1.9.1  [2003/11/07] for i386  (CVS)

Did you only test the 1.9.0 compiler or also distributed the 1.9.0 RTL ?

Please check for a leftover syscallo.inc in fpc/rtl/linux/. It should only
be available in in fpc/rtl/linux/i386/ with rev. 1.2

FYI: The default calling convention has changed to stdcall, that means
that the registers ebx,esi,edi need to be saved. The problem that you have
is that do_syscall did not save those registers in older versions. THat
has been fixed a week ago.

More information about the fpc-devel mailing list