You might ask how do I know that it fails with --as-needed while it doesn't respect the configuration variables, the answer is quite easy actually: there is a bug in fltk-config, that I'll report soon enough if it isn't reported already. g++ -g -Wall -I. `fltk-config --cflags` -DDEFAULT_BROWSER=\"mozilla-firefox\" -DPREFIX=\"/usr\" -c -o switch.o switch.cpp g++ -g -Wall -I. `fltk-config --cflags` -DDEFAULT_BROWSER=\"mozilla-firefox\" -DPREFIX=\"/usr\" -c -o url.o url.cpp gcc -g -Wall -I. `fltk-config --cflags` -DDEFAULT_BROWSER=\"mozilla-firefox\" -DPREFIX=\"/usr\" -c -o util.o util.c g++ -Wall -L/usr/X11R6/lib `fltk-config --ldflags` -lfltk -lfltk_images -lpcre -lXpm html.o http.o import.o interface.o load.o stripclub.o switch.o url.o util.o -o stripclub As you can see the problem is quite simple: the libraries should go _after_ the object files.
Fixed on -r1, x86 stabilization pending.