J'ai eu le même problème et j'ai également fini par ajuster les paramètres de visibilité. Cependant, comme j'étais nerveux à l'idée de jouer avec la visibilité des symboles sans comprendre le problème, j'ai poussé un peu plus loin mes recherches.
Si, comme moi, vous utilisez le script/package de Pete Goodliffe pour construire boost comme un framework, le script fixe la visibilité par défaut à hidden (== yes). Les options de visibilité changent la façon dont les symboles sont marqués par le compilateur (par défaut, caché, interne). Cette information est utilisée par l'éditeur de liens lors de la création d'objets partagés (bibliothèques partagées). Elle ne devrait pas s'appliquer ici, donc je soupçonne que c'est un bug de l'éditeur de liens. Dans la bibliothèque boost, vous avez un symbole faible marqué comme caché, et ensuite dans votre projet/autre bibliothèque, le même symbole marqué comme défaut. L'éditeur de liens est confus ?
En ce qui concerne XCode 3 par rapport à 4, peut-être que le défaut dans 3 était de cacher les symboles ?
Quoi qu'il en soit, le fait de changer la visibilité par défaut en cachée ne devrait avoir aucun effet si seules des librairies statiques sont concernées, et je me sens donc beaucoup plus en sécurité en prenant cette voie.
J'ai posté un peu plus de détails dans un entrée de blog pour les personnes intéressées.