From: Rocky Bernstein Date: 2010-08-08T22:44:29+09:00 Subject: [ruby-core:31652] recent configure gcc -fvisibility hides access to class variables in C extensions. --000e0cd32c4e2ff6f2048d50196d Content-Type: text/plain; charset=ISO-8859-1 A change in SVN 28712 Thu Jul 22 06:38:18 2010 Nobuyoshi Nakada * configure.in (XCFLAGS): use -fvisibility=hidden if possible. has the effect, I believe, of hiding values like the class constants for rb_cRubyVM and rb_cISeq (RubyVM::InstructionSequence constant), and thread pointer ruby_current_thread if not others. In each case there is a way to get these by more convoluted means from inside a C extension. For example, rb_cRubyVM can be obtained, I think , by VALUE rb_cRubyVM = rb_const_get(rb_mKernel, rb_intern("RubyVM")); Was it the intention to hide these particular C variables from extensions? --000e0cd32c4e2ff6f2048d50196d Content-Type: text/html; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable A change in SVN 28712=A0
=A0 Thu Jul 22 06:38:18 2010=A0 Nobuyoshi Naka= da=A0 <nobu@ruby-lang.org><= br>
=A0=A0=A0 * configure.in (XCFLAG= S): use -fvisibility=3Dhidden if possible.

has the effect, I believe, of hiding values like the class constants fo= r rb_cRubyVM and
rb_cISeq (RubyVM::InstructionSequence constant),=A0 an= d thread pointer ruby_current_thread if not others.

In each case th= ere is a way to get these by more convoluted means from inside a C extensio= n. For example,=A0 rb_cRubyVM
can be obtained, I think , by
=A0 =A0 VALUE rb_cRubyVM =3D rb_const_get= (rb_mKernel, rb_intern("RubyVM"));

Was it the intention to= hide these particular C variables from extensions?

--000e0cd32c4e2ff6f2048d50196d--