Bug#584172: Disabling GetIDMapper inlining for building VISU

Andre Espaze andre.espaze at logilab.fr
Mon Jun 7 16:45:06 UTC 2010


On Mon, Jun 07, 2010 at 06:06:58PM +0200, Denis Barbier wrote:
> On 2010/6/7 Andre Espaze wrote:
> [...]
> >    $ patch -p1 < no-template-function-inline.patch
> >    $ patch -p1 < debian/patches/visu-no-template-inline.patch
> 
> Thanks André for these detailed explanations, but why do you apply
> both patches?  
If you check out revision f57b74db488c, visu-no-template-inline.patch
does not exist yet, so the first patch adds it. 

> I thought that visu-no-template-inline.patch was
> superseding no-template-function-inline.patch. (Adam too since he
> committed only the former)
Yes, no-template-function-inline.patch was only a way to apply my changes
to Adam's repository (we decided to work like that since the beginning so
Adam can review every patch and I do not need write access).

> To make it clear, my point is that #if macro can be dropped from
> visu-no-template-inline.patch, the result will be unchanged:
>  * When compiled in debug mode, functions are not inlined and 4
> symbols are exported.
>  * When compiled with optimization, only one symbol is exported.
> Since those macros do nothing, it is better to strip them off and
> follow what is described in the C++ faq.
Ok but what about respecting the upstream coding style? Moreover
the macros do nothing only when using g++. I am fine to remove
the if macros but I think that we will need to provide upstream
with more explanations.
> 
> If you want no-template-function-inline.patch to be applied, then
> visu-no-template-inline.patch should be dropped.
No, no-template-function-inline.patch is only a communication tool.
I am sorry if it has created confusion. The only patch
that matters for us is visu-no-template-inline.patch. However I did 
not want to add one more patch to the bug and for describing 
reproductible steps I needed to introduce
no-template-function-inline.patch.
> 
> >    $ cd VISU_SRC_5.1.3/src/CONVERTOR
> >    $ mv Makefile.orig Makefile
> >    $ make
> >    $ readelf -s .libs/libVisuConvertor_la-VISU_MergeFilterUtilities.o | \
> >    grep GetIDMapper
> >    89: 0000000000000000   113 FUNC    WEAK   DEFAULT   48 _ZN4VISU11GetIDMapperINS_
> >    95: 0000000000000000    54 FUNC    WEAK   DEFAULT   50 _ZN4VISU11GetIDMapperINS_
> >    96: 0000000000000000    54 FUNC    WEAK   DEFAULT   52 _ZN4VISU11GetIDMapperINS_
> >    97: 0000000000000000   113 FUNC    WEAK   DEFAULT   54 _ZN4VISU11GetIDMapperINS_
> [...]
> 
> These symbols are exported because of
> no-template-function-inline.patch, not visu-no-template-inline.patch.
Isn't is the opposite? no-template-function-inline.patch modifies the
Debian repo while visu-no-template-inline.patch modifies the Salome sources.

André





More information about the debian-science-maintainers mailing list