Help building/running SDL/OpenGL code

Richard Mace macerl at
Thu Dec 24 04:34:28 UTC 2009

On Wednesday 23 December 2009 22:54:07 Pieter de Goeje wrote:
> On Wednesday 23 December 2009 04:42:28 Richard Mace wrote:
> > Incidentally, if there is anyone out there with newer hardware who is
> > interested in building the code I am talking about you can find it at:
> >
> >
> >
> > You'll need to change the following lines in the Makefile to get it to
> > successfully build under FreeBSD:
> > ==================================================
> > CFLAGS = -Wall -Wextra -pthread -I/usr/local/include
> > -I/usr/local/include/SDL -O3 -march=native
> >
> > LFLAGS = -Wall -L/usr/local/lib
> >
> > lennardjones : $(OBJS)
> >         $(CC) $(LFLAGS) -o lennardjones $(OBJS) -lSDL -lSDL_gfx -lGLU
> > ==================================================
> >
> > It would be interesting to hear feedback. (Basic controls are: up-arrow
> > add heat to crystal; down-arrow cool down gas/crystal. There are a bunch
> > of others -- look in main.c). You are welcome to do whatever you wish
> > with my code.
> Arrr. Same problem here at startup: segfault in glXGetFBConfigAttribSGIX. A
> simple test case is the following:
> pyotr at nox:~% cat test.c
> int main() {}
> pyotr at nox:~% cc -o test test.c -L/usr/local/lib -lSDL -lGL
> pyotr at nox:~% ./test
> zsh: segmentation fault (core dumped)  ./test
> Then I attempted to switch the arguments around...
> pyotr at nox:~% cc -o test test.c -L/usr/local/lib -lGL -lSDL
> pyotr at nox:~% ./test
> pyotr at nox:~%
> Voila! (Admittedly much to my surprise ;))
> So then I changed the Makefile to use these libraries: -lGLU -lSDL
>  -lSDL_gfx. Result: a perfectly working ./lennardjones. The only minor
>  issue is that it presented me with exactly one option:
> pyotr at nox:~/temp/lennard-jones-gas-3d% ./lennardjones
> Current pixel depth: 32
> Available Modes
> 0 =>  3840 x 1200
> Select your preferred video mode:
> So apparently I prefer mode 0 :D. It run fine (and smooth) though.
> It is clear something goes wrong during the runtime linking process, which
> this library order works around. The actual problem is still a mystery to
>  me. It might be worthwhile to post a bugreport on the FreeBSD
>  forum.
> Best regards,
> Pieter de Goeje

Pieter, many, many thanks for taking the time to test and diagnose this. Your 
solution works perfectly: ensure that libGLU PRECEDES all the SDL libraries in 
the link line of the Makefile. Wow! I never would have thought....

About your allowable modes being only 3840 x 1200:  I had the same issue at 
work (Linux) where I run dual monitors (2 x 1680 x 1050). Just create an 
NVIDIA metamode in your xorg.conf that blanks one monitor (I do not recall the 
exact syntax here, but I think you need to use NULL for the one monitor). It 
is also useful for some games ;-) Then you can use one screen and avoid 
staring at the crack between your monitors during simulations.

Again, many thanks. This for me is proof that I can continue to do some 
scientific programming (with rendering in 3D) under FreeBSD .


More information about the freebsd-questions mailing list