Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

[ace-bugs] Stock build system: libAla.a and -lAla on the same command line

1 view
Skip to first unread message

Vladimir Panov

unread,
Feb 15, 2006, 4:34:27 PM2/15/06
to
ACE VERSION: 5.4.9

HOST MACHINE and OPERATING SYSTEM:
Any

TARGET MACHINE and OPERATING SYSTEM, if different from HOST:
Not different.

COMPILER NAME AND VERSION (AND PATCHLEVEL):
Any

THE $ACE_ROOT/ace/config.h FILE:
Any

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

CONTENTS OF $ACE_ROOT/bin/MakeProjectCreator/config/default.features:
Does not exist.

AREA/CLASS/EXAMPLE AFFECTED:
Building ACE (and TAO) is affected.

DOES THE PROBLEM AFFECT:
COMPILATION? No
LINKING? Yes
EXECUTION? No
OTHER (please specify)?

SYNOPSIS:
When linking with static_libs_only=1 against its own libraries, ACE might link against a dynamic library instead of the static one.

DESCRIPTION:
When using static_libs_only=1, ACE and TAO link against their own libraries this way:
$ACE_ROOT/lib/libAla.a -lAla
If the dynamic libraries have been built previously in the same tree, then the linker will choose libAla.so.

I know that this might be considered as an unsupported feature (dynamic and static builds in the same tree), but the fix is really simple.

REPEAT BY:
Build ACE with shared_libs_only=1. The build it with static_libs_only=1 in the same tree. Check how $ACE_ROOT/bin/gperf is linked agains the ACE
library (it is dynamically linked).

SAMPLE FIX/WORKAROUND:
I have attached a patch.

static_only.patch
0 new messages