In your message of 23 March 2000 you write:
> > 4) Require oglbase apps to #include only gl.h
> > gl.h must include glext.h
> > libGL.so must contain 'enough' dummy functions
> > for extensions that it does not support to enable
> > legacy and newly ported applications to link.
> >
> > * This won't work for either Mesa/XFree86 OR XiG
> > right now since neither includes glext.h from gl.h.
> > * There are 'issues' about keeping
> > libGL.so up to date and consistant.
> > * There is still a possiblity of a newly ported
> > program failing to link - but most legacy apps
> > should be OK if we are careful with libGL.so.
>
> I believe that is actually the option that best supports
> legacy apps.
>
> The great thing is that if <GL/gl.h> includes <GL/glext.h>, the
> need for GL_HAS_GLEXT goes away.
>
> This option *will* work with today and yesterday's Mesa/XFree86 OR
> XiG because they will be using an old <GL/gl.h> that has all the
> extension prototypes and defines. With a new <GL/gl.h>, the
> extension declarations will likewise be found because of the
> automatic inclusion of <GL/glext.h> from <GL/gl.h>.
>
> I agree that there are issues for legacy maintence, but these
> are issues (that in the case of Mesa) Brian is clearly aware of
> and sounds quite willing to shoulder.
>
> I'm not sure I understand the "failing to link" issue.
Let's explain this quickly. Assuming you reference a symbol called
glFunctionXYZ() from your main binary, which is not directly in the
symbol table of your shared libGL.so, then you'll see this error:
---
egcs -o projtex -O3 -mpentium -mieee-fp -fbuiltin -pipe
-L/usr/X11R6/lib -L/usr/dt/lib projtex.o texture.o -lglut -lGLU -lGL
-lXmu -lXt -lSM -lICE -lXext -lX11 -lXi -lXext -lX11 -lm -L/usr/dt/lib
-Wl,-rpath,/usr/dt/lib:/usr/X11R6/lib
projtex.o: In function `main':
projtex.o(.text+0x2005): undefined reference to `glFunctionXYZ'
projtex.o: In function `usage':
projtex.o(.text+0x27c1): undefined reference to `glFunctionXYZ'
collect2: ld returned 1 exit status
make: *** [projtex] Error 1
gnom:/net/xeno/export/src/X11/WAFFLE/OGL/tmp/glut-3.7/progs/advanced#
---
This means that if gl.h includes glext.h, then all the extension
present defines are defined (like GL_ARB_multitexture). If you then
use a direct reference to a function from this extension without your
application then it will not link. This is iregardless of whether the
libGL.so could synthesize the neccessary api entries at runtime.
- Thomas
--
Thomas Roell /\ An imperfect plan executed violently
Xi Graphics / \/\ _ is far superior to a perfect plan.
[EMAIL PROTECTED] / / \ \
/ Oelch! \ \ George Patton