[Mono-list] Building mono on Solaris 10 x86/x64 : What I did, with patches

Jonathan Pryor jonpryor at vt.edu
Wed Jun 29 07:07:51 EDT 2005


On Wed, 2005-06-29 at 11:21 +0800, Jeremy Teo wrote:
> 9) mph.h had to be patched
> Patch is attached. Could someone explain to me the significance of
> defining MPH_INTERNAL?

MPH_INTERNAL is the moral equivalent of C#'s "internal" modifier, so
that a symbol is not visible to the dynamic linker (ld.so).

In particular, anything marked as `static' is private to a file, and
also invisible to the dynamic linker.  Anything that isn't static is, by
default, public and visible to the dynamic linker.  C doesn't provide a
direct way of saying "this symbol shouldn't be exported beyond the
shared library it's compiled into, but it needs to be used across
multiple files", so we're reduced to macro hackery and the use of
non-standard compiler features.

Alternatively, we're reduced to providing a versioning script to
explicitly specify which symbols should be exported.

See also:

	http://people.redhat.com/drepper/dsohowto.pdf

In particular, start reading around section 2.2 (page 15).

 - Jon




More information about the Mono-list mailing list