ordem de parâmetro gcc / g ++

Acabei de compilar o chironfs no meu novo servidor Ubuntu 12,10 e recebi o seguinte erro:

gcc  -Wall -W -Wmissing-prototypes -g -O2 -DFUSE_USE_VERSION=25 -D_FILE_OFFSET_BITS=64 -I/usr/local/include -g -O2 -lm -lfuse  -o chironfs chironfs.o chiron-conf.o chirondbg.o chironfn.o  
chironfs.o: In function `chiron_init':
/root/chironfs-1.1.1/src/chironfs.c:2000: undefined reference to `pthread_create'
chironfs.o: In function `get_rights_by_name':
/root/chironfs-1.1.1/src/chironfs.c:452: undefined reference to `fuse_get_context'

o erro pthread me diz que -lpthread está faltando, mas o erro do fusível é meio estranho - está sendo usado o fusível

Eu encontrei uma soluçãoAqui o que sugere colocar bibliotecas após arquivos de objetos

então eu removi -lfuse e adicionei -lfuse -lpthread no final da linha

agora ele compila sem um erro e parece que é assim que deve ser: biblioteca depois de arquivos de objetos

minha pergunta é: por que a ordem dos parâmetros é relevante para o gcc / ld? Eu pensei que o gcc apenas analisa os parâmetros como qualquer outra aplicação e pode encaminhar os parâmetros necessários para ld ou tal

em geral: alguém sabe fatos ou dicas para ordenação de parâmetros do gcc e talvez um pouco de informações básicas sobre por que isso é necessário?

obrigado