Apparently the order of the flags matters (in Ubuntu at least)

Ubuntu 12.04 compile of libketama was failing with the following message:

make test
gcc -fPIC -W -Wall -Werror -O3 -c md5.c
gcc -fPIC -W -Wall -Werror -O3 -c ketama.c
gcc -lm -shared -Wl,-soname,libketama.so.1 -o libketama.so.1 ketama.o md5.o
LD_LIBRARY_PATH=. gcc -lm -fPIC -W -Wall -Werror -I. -O3 -o ketama_test ketama_test.c ./libketama.so.1
./libketama.so.1: undefined reference to `floorf'
collect2: ld returned 1 exit status
make: *** [test] Error 1

Once the -lm was moved in the test, all worked fine.