Como definir o caminho de tempo de execução (-rpath) de um executável com o gcc no Mac OSX?

Desejo definir no Mac OSX o caminho de tempo de execução de um executável (para o vinculador) em tempo de compilação, de modo que as bibliotecas compartilhadas em locais não padrão sejam encontradas pelo vinculador dinâmico no início do programa.

No Linux, isso é possível com-Xlinker -rpath -Xlinker /path/to (ou usando-Wl,-rpath,/path/to) e no Solaris você pode adicionar-R/path/to para a linha de comando do compilador.

eu encontreialguma informação que o Mac OS X gcc tem suporte a -rpath desde 10.5, ou seja, desde ~ 2008.

Tentei fazê-lo funcionar com um exemplo mínimo - sem sucesso:

$ cat blah.c 
int blah(int b)
{
  return b+1;
}

E:

$ cat main.c 

#include <stdio.h>

int blah(int);

int main ()
{
  printf("%d\n", blah(22));
  return 0;
}

Compilou-o assim:

$ gcc -c  blah.c
$ gcc -dynamiclib blah.o -o libblah.dylib
$ gcc main.c -lblah -L`pwd`  -Xlinker -rpath -Xlinker `pwd`/t

Agora o teste:

$ mkdir t
$ mv libblah.dylib t
$ ./a.out
dyld: Library not loaded: libblah.dylib
  Referenced from: /Users/max/test/./a.out
  Reason: image not found
Trace/BPT trap

Assim, a pergunta: como definir o caminho de tempo de execução do vinculador no Mac OSX?

Btw, configuraçãoDYLD_LIBRARY_PATH funciona - mas eu não quero usar esse hack.

Editar: A respeito deotool -L:

$ otool -L a.out 
a.out:
        libblah.dylib (compatibility version 0.0.0, current version 0.0.0)
        /usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 125.2.1)

Parece queotool -L somente imprime os nomes da biblioteca (e provavelmente os locais no momento do link) ao qual o executável foi vinculado e nenhuma informação do caminho de tempo de execução.

questionAnswers(1)

yourAnswerToTheQuestion