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

[tao-bugs] Stock build system: -D*_AS_STATIC_LIBS used even for shared objects

6 views
Skip to first unread message

Vladimir Panov

unread,
Jan 1, 2006, 7:51:50 AM1/1/06
to
TAO VERSION: 1.4.8
ACE VERSION: 5.4.8

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 [if you use a link to a platform-
specific file, simply state which one]:

Any.

THE $ACE_ROOT/include/makeinclude/platform_macros.GNU FILE [if you
use a link to a platform-specific file, simply state which one
(unless this isn't used in this case, e.g., with Microsoft Visual
C++)]:

Any.

CONTENTS OF $ACE_ROOT/bin/MakeProjectCreator/config/default.features
(used by MPC when you generate your own makefiles):

// $Id$
// This is an automatically generated file.

ssl=0
qos=1
cidl=0
rwho=0
sctp=0


AREA/CLASS/EXAMPLE AFFECTED:

Building ACE+TAO might produce undesired effects.

DOES THE PROBLEM AFFECT:
COMPILATION?
Yes.

LINKING?
Yes.

EXECUTION?
Yes

OTHER (please specify)?
Building ACE+TAO is affected.

SYNOPSIS:
Different results are produces when building with static_libs=1 and shared_libs=1 with a single make invocation or with two separate make invocations.

DESCRIPTION:
When using "make static_libs=1 shared_libs=1 ..." then ACE_AS_STATIC_LIBS (and TAO_AS_STATIC_LIBS when compiling TAO) are defined for both static
(going to .obj subdirectories) and shared (.shobj) objects, but (I believe) they should be defined only for the static objects. When using "make
static_libs=1 ... && make shared_libs=1 ..." the #define's are used in a correct way.

REPEAT BY:

cd ACE_wrappers
export ACE_ROOT=`pwd`
export TAO_ROOT=$ACE_ROOT/TAO
# fill in $ACE_ROOT/ace/config.h
# fill in $ACE_ROOT/include/makeinclude/platform_macros.GNU
make static_libs=1 shared_libs=1 -C $ACE_ROOT && make static_libs=1 shared_libs=1 -C $TAO_ROOT

SAMPLE FIX/WORKAROUND:

I don't have a fix. I think that you should introduce separate CPPFLAGS for static and shared objects throughout the GNUmakefile's.
A workaround is to use two make invocations (one with static_libs=1, and one with shared_libs=1).

0 new messages