[Ace-users] [ace-bugs] Stock build system: OpenBSD and asm symbols

Vladimir Panov gbr at voidland.org
Sat Oct 13 12:31:59 CDT 2007


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:
config-openbsd.h

THE $ACE_ROOT/include/makeinclude/platform_macros.GNU FILE:
platform_openbsd.GNU

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)?

SYNOPSIS:
ACE_OS::dlsym always fails.

DESCRIPTION:
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 
instance"
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

BTW, the configure scripts do not test for this situation. That is why 
the autotools build is OK under OpenBSD.



More information about the Ace-users mailing list