Fw: Fwd: Re: [lazarus] Lazarus and FreeBSD problem finding units

Marco van de Voort marcov at stack.nl
Sun Aug 3 08:29:42 EDT 2003

> > directory. The FPC sources consists of many packages and libraries
> > with dependencies, that can't be described with a few search paths.
> > Just set the FPC Source directory in the environment options and the
> > IDE will scan the directory and auto create the needed settings. You
> > can see the result in Environment -> CodeTools Defines Editor.
> >
> > Note:
> > The IDE uses a platform independent mechanism to setup the FPC source
> > directory. But there are some exceptions which need some tricks (e.g.
> > syswin32 and syslinux). I only tested it under linux and a little bit
> > under win32. So, maybe some units or include files will not be found
> > under BSD. Please report them.
> Ok, I found the problem I think. It's looking for SysUtils (and others)
> under
> /usr/local/share/src/fpc-1.0.10/rtl/freebsd. Well that's not where they
> are.
> Some of these units where in /usr/local/share/src/fpc-1.0.10/rtl/unix,
> /usr/local/share/src/fpc-1.0.10/rtl/inc and
> /usr/local/share/src/fpc-1.0.10/fcl/unix. I copied these file to
> /usr/local/share/src/fpc-1.0.10/rtl/freebsd and everything seemed to go
> fine
> until it wanted a file called setjumph.inc, it seems that file does not
> exists on my system. I can not find it anywhere. It is needed for
> systemh.inc
> So now I am stuck here :(

You are on the wrong track:

1 FPC stores compiled versions of all its sources, somewhere in 
    /usr/local/lib/fpc/1.0.10/units/freebsd and deeper.
2 For some reason the compiler doesn't want to use these.
3 Therefore it starts to recompile the RTL, FCL etc, but that fails
	(which is normal, since the RTL can't be compiled this way,
	 only via makefiles)

Your problem is not 3, but 2. Why does it want to recompile?

Some common reasons:
- an includefile somewhere in the include path has the same name
	as an includefile in the rtl, but a newer date (compiler
	thinks the RTL is out of date ->recompiles)
- There is a stray unit file (.ppu) somewhere, and it date
	doesn't match the other units found.
- The RTL include directory /usr/local/lib/fpc/1.0.10/units/freebsd
	is wrong or contains garbadge.

So a cleanup of your source directories is in order.

The easiest way to find the problem, is try to compile parts of lazarus
manually, with -va as extra parameter. Then check the generated output (lots
of it, pipe!) to find a place where it says "recompiling unit", and 
work upwards from there to find the reason.

If an includefile changed, that file is marked with an asterisk (*)

More information about the Lazarus mailing list