[GRASS5] Re: 2 bug fixes for recent experimental release

Glynn Clements glynn.clements at virgin.net
Mon Apr 29 15:24:47 EDT 2002


Markus Neteler wrote:

> > Also, in r3.showdspf.openGL the following library has to be added to 
> > Gmakefile in order to get compilation without errors: -lGLw
> 
> I assume that the problem is elsewhere since no longer hardcoded
> library names should be used (portability). This is defined
> by "configure".

A while back, the setting of LGLWM (libGLw[M]) was removed from
configure, because it wasn't being used by any of the enabled modules.

A configure test is problematic because there are so many permutations
of this library[1], and it exports so few symbols:

$ nm /usr/X11R6/lib/libGLwM.a | fgrep ' T '
00000750 T GLwCreateM1DrawingArea
00000750 T GLwCreateM2DrawingArea
00000000 T GLwDrawingAreaMakeCurrent
00000020 T GLwDrawingAreaSwapBuffers

$ nm /usr/local/lib/libGLw.a  | fgrep ' T '
00000a5c T GLwDrawingAreaMakeCurrent
00000a80 T GLwDrawingAreaSwapBuffers
00000b94 T GLwCreateMDrawingArea

$ nm /usr/src/Mesa-3.4.1/lib/libGLw.a  | fgrep ' T '
00000888 T GLwDrawingAreaMakeCurrent
000008b4 T GLwDrawingAreaSwapBuffers

Older versions only define GLwCreateMDrawingArea, while newer versions
have the two GLwCreateM?DrawingArea symbols, and GLwCreateMDrawingArea
is a macro which expands to one of those two symbols depending upon
the Motif version. But the autoconf AC_CHECK_LIB() test doesn't work
with macros.

The other two symbols are also exported by a non-Motif version of the
library, which won't work with r3.showdspf.openGL.

[1] Ihe SGI version, from either Mesa-x.x/widgets-sgi or XFree86 4.0,
is called libGLw.a, and includes both Motif and non-Motif widgets. The
Mesa version, from Mesa-x.x/widgets-mesa, is split into lib[Mesa]GLw.a
(non-Motif) and lib[Mesa]GLwM.a (Motif), and they may be called either
libGLw* or libMesaGLw*.

-- 
Glynn Clements <glynn.clements at virgin.net>



More information about the grass-dev mailing list