[fpc-devel] gtk1 linklib directive under FreeBSD

Mattias Gaertner nc-gaertnma at netcologne.de
Tue May 9 14:49:40 CEST 2006


forwarded:

 
> --------------
> Two or three months ago I tested Lazarus on FreeBSD 6.0 RELEASE.
> After installing some missing libs (like pixbuf-devel, etc.) it
> compiled and run without any problems. Lazarus version was 0.9.12
> IIRC.
> --------------
> To my best knowledge, this naming depends on what version and what
> packages branch one is using .
> 
> FreeBSD, when confronted with this says to use pkgconfig, and doesn't want
> to help out with a couple of symlinks to ease the situation. IOW they
> don't care about anything but GCC.  I recommend filing a send-pr about
> this.
> 
> Since there is no way currently to make lazy bound dll names variable
> without recompiling on target, and most people are using release versions,
> I chose to wait with this change till more people are over to the -1.2
> syntax, to keep the amount of users that have to symlink manually to a
> minimum. --------------
> This symlink/library practice on linux/unix is simply a mess, and I  
> personally also don't see another portable way but to use tools such  
> as pkgconfig and friends. Afaik the output of pkgconfig is not gcc  
> specific, but ld-specific (at least the output of "sdl-config -- 
> libs") is. So if you want to use it for an internal linker, you  
> indeed have to parse that output (as opposed to similar statements in  
> the source).
> --------------

I am not fit in Linux and I have only one SuSE-10-Installation running 
where I had also some trouble when installing Lazarus. But on several 
PCs I have 5 FreeBSD installtaions running from FreeBSD 5.5RC, 6.0 
Release, to 6.1RC in several Patchlevels. I installed Lazarus from 
source on 4 of them using version 0.9.12, 0.9.14 and 0.9.15 (from SVN).

All these FreeBSD installations show the same behavior and set the minus 
char into the library name. So for me, this seems to be FreeBSD 
specific. But I could live with this problem (if documented) when 
installing a Lazarus beta version in FreeBSD from source. gmake's 
Makefile additionally could test the 3 libs and set (if missing) those 
symlinks or can patch the Free Pascal source files if needed.

But this behavior is of course not acceptable for a final 1.0 binary 
installation. Here those libs _must_ be linked and later unlinked by a 
deinstaller (even this symlinking is not so nice). But a severe problem 
seems for me, that the produced and distributed apps which are linked 
against glib, gdk und gtk will have the same problem and may not run if 
the wrong filename is used on different FreeBSD target.

But on the other hand I am a little bit confused about the answer and 
that "pixbuf-devel" had to be installed? There are no *-devel packages 
in (Free/Net/Open)-BSD. These are typical Linux names. Did he really 
compile a native FreeBSD version or did he install the Linux version in 
the Linuxulator? The Linux version of course uses the RedHat-libs in 
/usr/compat/linux/... without the "-". All BSDs install always complete 
libraries. a glib, gtk oder gdk-pixbuf includes the libs themselves and 
all headers etc. There are no additional developer libraries available!
(I never tried to use such a combination for Lazarus except on NetBSD. 
There Lazarus/Linux is working but Free Pascal/Linux traps :-( so 
Lazarus is unusable in any combination at the moment.)

I use different versions of the FreeBSD ports for the different 
installations, mostly actual ones installed via ctm. The behavior is the 
same when the ports are installed with the release.)

I hope, that these informations will help a bit to fix the problem.


-----------

Mattias



More information about the fpc-devel mailing list