[fpc-devel]FPC CVS breaks Lazarus build within IDE
Michael Van Canneyt
michael.vancanneyt at wisa.be
Fri Aug 13 11:03:38 CEST 2004
On Fri, 13 Aug 2004, Vincent Snijders wrote:
> On Fri, 13 Aug 2004 10:10:46 +0200 (W. Europe Daylight Time)
> Michael Van Canneyt <michael.vancanneyt at wisa.be> wrote:
>
> >
> >
> > On Fri, 13 Aug 2004, Tony Maro wrote:
> >
> > > I just updated my FPC cvs today.
> > > My last update was 3 or 4 days ago.
> > > I haven't updated Lazarus in a week or so.
> > >
> > > The latest FPC update breaks building Lazarus from inside the IDE. For
> > > those familiar, if you try to install a package, Lazarus will optionally
> > > rebuild itself. Now it will either freeze or crash when you try to do this.
> > >
> > > I tried to get a crash, but lately only got the freeze. Here's the last
> > > console out from Lazarus when it stops responding:
> > >
> > > TPascalParserTool.BuildTree B OnlyIntf=False project1.lpr
> > > TMainIDE.DoNewEditorFile end unit1.pas
> > > TMainIDE.DoNewProject end
> > > [TExternalToolList.Run] /usr/bin/make ide OPT="-Cn"
> > > Xlib: sequence lost (0x10200 > 0x5c9a) in reply type 0x10!
> > > Xlib: sequence lost (0x10000 > 0x5c9a) in reply type 0x10!
> > >
> > > I know this isn't a Lazarus list, but like I said, I haven't changed
> > > Lazarus code that worked on the CVS from a few days ago, so I assume
> > > it's an FPC issue.
> > >
> > > Building from the console with make works fine. There was some recent
> > > discussion about this regarding Win32 building, but this is in Linux
> > > that I'm experiencing it.
> >
> > The culprit is probably TProcess. I split out TProcess in Win32/unix
> > parts, and did some major rewriting under Linux. However, all test
> > programs ran fine, so I assumed it was OK to commit. I didn't test
> > lazarus, however.
> >
> > Can you do the following:
> >
> > 1. Start lazarus under strace:
> >
> > strace -f -o laz.log lazarus
> >
> > 2. Let the IDE rebuild itself. If it freezes, kill it.
> >
> > 3. Send me the output of strace. Preferably only the part that appears
> > around the Fork() call used to call 'make'. (the log may be HUGE)
> >
> > Michael.
> I will send you the log in private: it is 140K zipped.
OK. I found the problem:
3688 execve("/usr/bin/make cleanall", ["/usr/bin/make", "cleanall"], [/* 36 vars */] <unfinished ...>
3680 <... gettimeofday resumed> {1092386057, 829845}, NULL) = 0
3688 <... execve resumed> ) = -1 ENOENT (No such file or directory)
It is, as I assumed, an error in TProcess. I will look for a fix.
Vincent, the problem is that the ExecVE call gets the complete
TProcess.CommandLine property as the first argument, when it should only get the
binary name. The error is probably in the MakeCommand() line in
process.inc.
Michael.
More information about the fpc-devel
mailing list