[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
ld compatibility
Hi,
Breif description: consulting firm trying to install there product on our
openbsd server fails. The product was developped on netbsd. The problem
resides with dynamic linking capabilities of openbsd. Here's the exact
explanation of the consultant:
--snip--
The [product] system depends on two libraries, libexpat and libeasysoap.
These are linked dynamically to a plugin system inside [product]. The
plugin
system requires that libexpat and libeasysoap be linked dynamically as
otherwise there will be conflicting C++ runtimes, one in the plugin and
another in the main interpreter when the plugin is called with dlopen(),
because OpenBSD and NetBSD do not have a shared libgcc (which controls
the runtime environment). =20
On NetBSD, this can be done by compiling the plugin normally with
-lexpat and -leasysoap but forcing the libgcc to not be linked in
statically, and then forcing the compilation of the calling interpreter
to dynamically export the symbols contained within libgcc globally using
--export-dynamic --whole-archive -lgcc --no-whole-archive
in the linking phase. According to the OpenBSD linker documentation,
these features are not supported:
o --export-dynamic is not implemented
o --whole-archive is ignored and treated as -Bforcearchive, which will
force ALL archive files to be loaded into the binary.
Furthermore, dlopen() on the system must be called with the RTLD_GLOBAL
mode flag, which enables global symbol searches in the runtime.
According to the dlopen() documentation on OpenBSD, RTLD_GLOBAL is not
currently supported.
--snip--
Any chance this can be worked around or have I no choice but to get netbsd?
TIA
JC
PS: Please CC replies to this address (jcsicard@hotmail.com) as I'm away
from my misc@ registerd account... Thx.
_________________________________________________________________
Protect your PC - get McAfee.com VirusScan Online
http://clinic.mcafee.com/clinic/ibuy/campaign.asp?cid=3963