[Ace-users] [ace-bugs] Stock build system: OpenBSD and asm symbols
gbr at voidland.org
Sat Oct 13 12:58:57 CDT 2007
Douglas C. Schmidt wrote:
> Thanks for using the PRF.
>> ACE VERSION: 5.6.1
>> HOST MACHINE and OPERATING SYSTEM:
>> x86, OpenBSD 4.1
>> TARGET MACHINE and OPERATING SYSTEM, if different from HOST:
>> Not different.
>> COMPILER NAME AND VERSION (AND PATCHLEVEL):
>> GCC 3.3.3
>> THE $ACE_ROOT/ace/config.h FILE:
>> THE $ACE_ROOT/include/makeinclude/platform_macros.GNU FILE:
>> CONTENTS OF $ACE_ROOT/bin/MakeProjectCreator/config/default.features:
>> Does not exist.
>> AREA/CLASS/EXAMPLE AFFECTED:
>> Running programs which use ACE (and TAO) is affected.
>> DOES THE PROBLEM AFFECT:
>> COMPILATION? No
>> LINKING? No
>> EXECUTION? Yes
>> OTHER (please specify)?
>> ACE_OS::dlsym always fails.
>> It looks like that OpenBSD doesn't prepend an underscore in shared
>> objects' symbols anymore.
>> REPEAT BY:
>> Run whatever program which uses TAO under OpenBSD 4.1. It fails with the
>> following message:
>> "ORBInitializer Registry unable to find the ORBInitializer Registry
>> because it can't find a symbol in libTAO_PI.so.
>> SAMPLE FIX/WORKAROUND:
>> Remove the following line from config-openbsd.h:
>> #define ACE_USES_ASM_SYMBOL_IN_DLSYM
> Is there a particular version number symbal that we can check for
> here, e.g.,
> #ifdef (_OPENBSD_4_1)
> #define ACE_USES_ASM_SYMBOL_IN_DLSYM
> or something like this to avoid breaking earlier versions of OpenBSD?
I am not an OpenBSD expert. You'd better ask on an OpenBSD maillist.
And BTW, OpenBSD might have stopped needing ACE_USES_ASM_SYMBOL_IN_DLSYM
a long time ago. For example, TAO 1.5.1 worked just fine on the same
installation of OpenBSD 4.1, probably because it did not use
ACE_OS::dlsym at all.
More information about the Ace-users