[PPL-devel] Undefined PPL references attempting to build cloog-ppl

Tovrea, George W (US SSA) george.tovrea at baesystems.com
Tue Aug 11 22:36:39 CEST 2009


Yes, I have looked at that file (ppl_interface_instantiations.m4) and
the names are messed up in there, as you can see:

m4_define(`m4_interface_classes_names',
`Polyhedron at Grid@Rational_Box at BD_Shape_mpz_class@_BD_Shape_mpq_class at _Oc
tagonal_Shape_mpz_class at _Octagonal_Shape_mpq_class@_Constraints_Product_
C_Polyhedron_Grid at _Pointset_Powerset_C_Polyhedron@_Pointset_Powerset_NNC
_Polyhedron')
m4_define(`m4_cplusplus_classes_names',
`Polyhedron at Grid@Rational_Box at BD_Shape<mpz_class>@ BD_Shape<mpq_class>@
Octagonal_Shape<mpz_class>@ Octagonal_Shape<mpq_class>@
Constraints_Product<C_Polyhedron,Grid>@ Pointset_Powerset<C_Polyhedron>@
Pointset_Powerset<NNC_Polyhedron>')

-----Original Message-----
From: P M Hill [mailto:hill at comp.leeds.ac.uk] 
Sent: Tuesday, August 11, 2009 1:31 PM
To: Tovrea, George W (US SSA)
Cc: Roberto Bagnara; The Parma Polyhedra Library developers' list;
Sebastian Pop
Subject: Re: [PPL-devel] Undefined PPL references attempting to build
cloog-ppl

Here are a few observations wrt the code you have sent and maybe they 
might help us find the bug.

I have noticed in your snippets of code that the interface names with
the 
extra "_" are always the same - and it is added before the main root. 
(Either "_" precedes the name or "ppl_c__" precedes the name where the 
double "__" should be a single "_".) A list of these names is built by
the 
configure as the default interface classes and are placed in the
Makefile 
in the interfaces directory. When make is executed, the Makefile
generates 
a file called ppl_interface_instantiations.m4 in the interfaces
directory.

Assuming the default configuration is used, this should contain the 
following:

m4_define(`m4_interface_classes_names', 
`Polyhedron at Grid@Rational_Box at BD_Shape_mpz_class@BD_Shape_mpq_class at Octa
gonal_Shape_mpz_class at Octagonal_Shape_mpq_class@Constraints_Product_C_Po
lyhedron_Grid at Pointset_Powerset_C_Polyhedron@Pointset_Powerset_NNC_Polyh
edron at Double_Box@BD_Shape_double at Octagonal_Shape_double')
m4_define(`m4_cplusplus_classes_names', 
`Polyhedron at Grid@Rational_Box at BD_Shape<mpz_class>@BD_Shape<mpq_class>@Oc
tagonal_Shape<mpz_class>@Octagonal_Shape<mpq_class>@Constraints_Product<
C_Polyhedron,Grid>@Pointset_Powerset<C_Polyhedron>@Pointset_Powerset<NNC
_Polyhedron>@Double_Box at BD_Shape<double>@Octagonal_Shape<double>')

and is then used by the m4 to generate the C code for each of these 
classes.

So it may be helpful to check that if one or both of these generated
files 
have the names correctly (ie as above). I suspect that some names may 
already be buggy and have the extra "_". In which case, it could be 
autoreconf or even make that could be the problem and not m4.

HTH

Pat

On Tue, 11 Aug 2009, Tovrea, George W (US SSA) wrote:

> In a previous mail, you wrote:
>
> Strange: this is the same version I use. I don't know what to say:
> in ppl_c.h you should end up with
>
> PPL_TYPE_DECLARATION(Polyhedron)
> PPL_TYPE_DECLARATION(Grid)
> PPL_TYPE_DECLARATION(Rational_Box)
> PPL_TYPE_DECLARATION(BD_Shape_mpz_class)
> PPL_TYPE_DECLARATION(BD_Shape_mpq_class)
> PPL_TYPE_DECLARATION(Octagonal_Shape_mpz_class)
> PPL_TYPE_DECLARATION(Octagonal_Shape_mpq_class)
> PPL_TYPE_DECLARATION(Constraints_Product_C_Polyhedron_Grid)
> PPL_TYPE_DECLARATION(Pointset_Powerset_C_Polyhedron)
> PPL_TYPE_DECLARATION(Pointset_Powerset_NNC_Polyhedron)
>
> whereas you have
>
> PPL_TYPE_DECLARATION(Polyhedron)
> PPL_TYPE_DECLARATION(Grid)
> PPL_TYPE_DECLARATION(Rational_Box)
> PPL_TYPE_DECLARATION(BD_Shape_mpz_class)
> PPL_TYPE_DECLARATION(_BD_Shape_mpq_class)
> PPL_TYPE_DECLARATION(_Octagonal_Shape_mpz_class)
> PPL_TYPE_DECLARATION(_Octagonal_Shape_mpq_class)
> PPL_TYPE_DECLARATION(_Constraints_Product_C_Polyhedron_Grid)
> PPL_TYPE_DECLARATION(_Pointset_Powerset_C_Polyhedron)
> PPL_TYPE_DECLARATION(_Pointset_Powerset_NNC_Polyhedron)
>
> Note that all the declarations that are in error above have a double
> underscore after ppl_c in the snippet below. All the ones that are
> correct have a single underscore after ppl_c. For example,
> BD_Shape_mpz_class above relates to ppl_c_BD_Shape_mpz_class whereas
> _BD_Shape_mpq_class above relates to ppl_c__BD_Shape_mpq_class below.
> Seems more than coincidental. However, I modified config.status
changing
> all ppl_c__ tp ppl_c_. This did not build (still looking for some
> ppl_c__ files). I am currently trying to debug
>
> /net/whistler/auto/users/tovrea/local/sol2/bin/m4 --prefix-builtin
-I..
> -I../../../interfaces/C -I../../../interfaces/C/.. \
>           ../../../interfaces/C/ppl_interface_generator_c_h.m4 >
> ppl_c_domains.h
>
>
> ppl_c_domains.h contains all the ppl_c__ names
>
>
> -----Original Message-----
> From: Roberto Bagnara [mailto:bagnara at cs.unipr.it]
> Sent: Tuesday, August 11, 2009 12:54 AM
> To: Tovrea, George W (US SSA)
> Cc: Sebastian Pop; The Parma Polyhedra Library developers' list
> Subject: Re: [PPL-devel] Undefined PPL references attempting to build
> cloog-ppl
>
> Tovrea, George W (US SSA) wrote:
>> The names are already messed up after running configure. From
> config.status:
>>
>> S["required_instantiations_c_cxx_objects"]="ppl_c_Polyhedron.lo
> ppl_c_Grid.lo ppl_c_Rational_Box.lo ppl_c_BD_Shape_mpz_class.lo
> ppl_c__BD_Shape_mpq_class.lo ppl_c__Octagonal_Shape_mpz_class.lo"\
>> " ppl_c__Octagonal_Shape_mpq_class.lo
> ppl_c__Constraints_Product_C_Polyhedron_Grid.lo
> ppl_c__Pointset_Powerset_C_Polyhedron.lo ppl_c__Pointset_Powers"\
>> "et_NNC_Polyhedron.lo"
>> S["required_instantiations_c_cxx_sources"]="ppl_c_Polyhedron.cc
> ppl_c_Grid.cc ppl_c_Rational_Box.cc ppl_c_BD_Shape_mpz_class.cc
> ppl_c__BD_Shape_mpq_class.cc ppl_c__Octagonal_Shape_mpz_class.cc"\
>> " ppl_c__Octagonal_Shape_mpq_class.cc
> ppl_c__Constraints_Product_C_Polyhedron_Grid.cc
> ppl_c__Pointset_Powerset_C_Polyhedron.cc ppl_c__Pointset_Powers"\
>> "et_NNC_Polyhedron.cc"
>> S["required_instantiations_c_cxx_headers"]="ppl_c_Polyhedron.hh
> ppl_c_Grid.hh ppl_c_Rational_Box.hh ppl_c_BD_Shape_mpz_class.hh
> ppl_c__BD_Shape_mpq_class.hh ppl_c__Octagonal_Shape_mpz_class.hh"\
>> " ppl_c__Octagonal_Shape_mpq_class.hh
> ppl_c__Constraints_Product_C_Polyhedron_Grid.hh
> ppl_c__Pointset_Powerset_C_Polyhedron.hh ppl_c__Pointset_Powers"\
>> "et_NNC_Polyhedron.hh"
>
> Hi Bill,
>
> I see nothing messed up in this snippet.
> Can you explain?
> All the best,
>
>    Roberto
>
>




More information about the PPL-devel mailing list