[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