Kann nicht Ruby ODBC Bindungen, um in 1.8.6 auf Schneeleopard kompiliert zu arbeiten

Ich habe versucht, Ruby 1.8.6 zu bekommen, um eine MS SQL server 2005 auf Mac OS X Snow Leopard nach dem Leitfaden hier http://wiki.rubyonrails.org/database-support/ms-sql zu verbinden . Ich habe die Ruby ODBC Bindungen und die dbi und dbd-odbc Edelsteine ​​installiert und Ruby wurde aus der Quelle kompiliert.

Wenn ich das in irb ausführe, DBI.connect ('dbi: ODBC: A_DSN', 'USERNAME', 'PWD'), hängt der Rubyprozess einfach unendlich.

Ich habe gdb benutzt, um den aufgehängten process zu betrachten und es ist auf semaphore_wait_signal_trap stecken.

Wenn ich Ruby 1.8.7 kompiliere und die Odbc-Bindungen in der gleichen Weise installiere, funktioniert alles gut, also bin ich mir nicht sicher, ob es ein Problem mit der Erstellung der Bindungen im Schneeleopard ist oder nicht. Ich konnte das auf OS X 10.5 und Ruby 1.8.6 vor dem Upgrade auf Schneeleopard arbeiten.

Danke für jedes Licht, das vergossen werden kann!

Das sieht so aus wie das gleiche: http://www.ruby-forum.com/topic/196606

Ich versuche, diese für mich selbst zu sortieren, damit ich dich wissen lassen werde, wenn ich irgendwelche Fortschritte mache.

Ich glaube, ich komme in eine Lösung, aber du wirst wahrscheinlich deinen 1.8.6 Quellbaum vor dem Kompilieren pflücken müssen. Wenn man dln.c betrachtet, scheint es, dass 1.8.6 die veralteten objectdatei-imagefunktionen NSLinkmodulee usw. verwendet, anstatt dlopen. Ich wette, dass die Optimierungen für dyld in 10.6 haben Abwärts-Kompatibilität in irgendeiner Weise gebrochen. Deshalb beabsichtige ich, meine 1.8.6-Installation zu pflücken, um dlopen zu benutzen und zu sehen, ob das das Problem behebt.

Yep, Backporting der dln.c Änderungen von 1.8.7 auf 1.8.6 behebt das Ladeproblem mit RMagick so würde ich wetten, dass es auch Ihr Problem beheben würde.