[Pkg-ace-devel] Bug#290114: mpc-ace: inline option for mpc generated GNUMakefiles is not usable
Marek Brudka
Marek Brudka <mbrudka@aster.pl>, 290114@bugs.debian.org
Wed, 12 Jan 2005 21:22:39 +0100
Subject: mpc-ace: inline option for mpc generated GNUMakefiles is not usable
Package: mpc-ace
Version: 5.4.2.1-1
Severity: normal
*** Please type your report below this line ***
GNUmakefiles generated from MPC have option inline=[0,1] which controls
inlining of c++ methods. This options works fine when building ACE/TAO/CIAO,
however cannot be used for projects using MPC and ACE distribution. To see
what happens one has to analyze whats going on when make is called with
inline
set to 0 or 1.
make inline=1:
1) From wrappers_macros.GNU makefile derives options for compiler which
allows
to inle some functions. This is good for any MPC based project.
2) In the same wrappers_macros.GNU to gcc compilers -D__ACE_INLINE__
macro is
added to control the behaviour of ACE headers. This option is rather not
usable for
MPC based projects.
make inline=0:
1) wrappers_macros.GNU turns of gcc inline support.
2) -DACE_NO_INLINE macro is defined in wrapper_macros.GNU.
The problem with inline option is that the distribution of ACE has no
variants, namely
it is generated for inline=1 (default). Hence for any MPC based
application inline
option=0 can not be used, because this switch of inline support in ACE
headers and
leading to linker error, because ACE distribution is inlined (there are
not inline
functions in libraries).
The inline option is usefull when developing MPC based programs, because
at least
makes debugging easier.
The idea of a bugfix is as follows:
1. config.h for ACE should contain __ACE_INLINE__ (or ACE_NO_INLINE)
because there
is only one variant of ACE libraries.
2. Entries in wrappers_macros.GNU which define ACE_INLINE
(ACE_NO_INLINE) macros
should be removed, because these command line macros are not necessary
for normal
programs.
Alternatively, to prevent compatibilty for ACE based programs, which uses
__ACE_INLINE__ macros, one may change __ACE_INLINE__ macros in every ACE
headers to
something different, and not modify wrapper macros. However I vote for
the first
solution, as it is simplier and does not promote using internal
__ACE_INLINE__ macro
in ACE based projects.
-- System Information:
Debian Release: 3.1
APT prefers testing
APT policy: (500, 'testing')
Architecture: i386 (i686)
Kernel: Linux 2.4.25
Locale: LANG=pl_PL, LC_CTYPE=pl_PL (charmap=ISO-8859-2)
Versions of packages mpc-ace depends on:
ii libace-dev 5.4.2.1-1 An Object-Oriented Network
Program
ii make 3.80-9 The GNU version of the
"make" util
ii perl-base 5.8.4-5 The Pathologically Eclectic
Rubbis
-- no debconf information