|
From: | Nick Allgood |
Subject: | Re: Issue starting Gorm, ProjectCenter, GWorkspace..etc on netbsd 5.0.2 |
Date: | Tue, 23 Nov 2010 12:40:13 -0700 |
Ah, sorry for the noise. You are indeed right. NetBSD ships with a libpixman-1 in /usr/X11R7/lib, which does not export the problematic symbols.Fred Kiefer wrote:
Am 19.11.2010 19:24, schrieb Wolfgang Lux:
This is getting rather obscure now. Pixman is a dependency of cairo and
should be installed along with it. In fact, I just had a look at cairo's
dependencies in NetBSD's pkgsrc repository and it turns out that
freetype is a dependency of cairo as well, so it should have been
installed along with cairo in the first place. Did you remove some of
these packages manually?
As far as I remember, freetype was installed on his NetBSD system, but a
rather crippled version. The same may just be true for pixman. But as
you wrote this is now really getting obscure. Is there anybody else out
there with a clean NetBSD 5.0 system to check whether this is the normal
setup on this system? If so we will have to add a lot of extra configure
checks to protect against this incomplete libraries.
After quite a bit of testing, I finally found out that the problem is the -R/usr/X11R7/lib flag on the command line (copied below for reference). This option is understood by NetBSD's gcc and it ends up as an *initial* -R flag to the linker, whereas the -Wl,-R<dir> options stay in their place. That means that the broken libpixman will be found before the right one in /usr/pkg/lib. Unfortunately, the -R flag is added automatically by autoconf when testing for the X libraries, so we cannot get rid of it. A workaround is to invoke configure as
./configure LDFLAGS=-R/usr/pkg/lib
I also noticed that configure.ac contains some code to add some additional target OS directories to CPPFLAGS and LDFLAGS. In particular on NetBSD it uses LDFLAGS="$LDFLAGS -Wl,-R/usr/pkg/lib -L/usr/pkg/lib". I expected that changing -Wl,-R/usr/pkg/lib into -R/usr/pkg/lib would allow invoking configure without the extra arg; but for some reason this didn't work (maybe it was just late at night yesterday).
gcc -shared -rdynamic -Wl,-R/usr/pkg/lib -L/usr/pkg/lib
-Wl,-R/usr/X11R6/lib -L/usr/X11R6/lib -o
./libgnustep-back-019.bundle/./libgnustep-back-019
./obj/libgnustep-back-019.obj/GSBackend.m.o ./gsc/obj/subproject.o
./x11/obj/subproject.o ./art/obj/subproject.o
-L/root/GNUstep/Library/Libraries
-L/usr/GNUstep/Local/Library/Libraries
-L/usr/GNUstep/System/Library/Libraries -Wl,-R/usr/pkg/lib-L/usr/pkg/lib -L/usr/pkg/lib -lart_lgpl_2 -lm -L/usr/X11R7/lib-lfreetype -lz -L/usr/X11R7/lib -R/usr/X11R7/lib -lXmu -lXt -lXext
-lX11 -lGL -lgnustep-gui -lgnustep-base -lpthread -lobjc
-lm
Wolfgang
[Prev in Thread] | Current Thread | [Next in Thread] |