Issue #1991 has been updated by Shyouhei Urabe.


If -flat_namespace was the default for linking, we could safely omit that and we were all happy.  There were reasons for that explicit option (back when OS X was 10.1 -- the time of that flag addition).  As you know, when you compile ruby you first make miniruby, create bundles, then make ruby binary.  Those -undefined suppress -flat_namespaces options are required for bundles because when they are compiled libruby.so is not yet installed.  There was no -undefined dynamic_lookup option then.

Anyway as time went by,  I think it's OK for 1.8.8 to move to -twolevel_namespace.  What I worry is that 1.8.6 already has tons of third party extensions that has been compiled with -flat_namespace.  Some of them might rely on the flatness of function namespace.  For instance, Failmalloc ( http://www.nongnu.org/failmalloc/ ) sprung to my mind.
----------------------------------------
http://redmine.ruby-lang.org/issues/show/1991

----------------------------------------
http://redmine.ruby-lang.org