[fpc-devel]Bug in AssignPipe() on Linux
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