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




-- To UNSUBSCRIBE, email to [EMAIL PROTECTED] with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]



Reply via email to