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

P M Hill hill at comp.leeds.ac.uk
Tue Aug 11 22:31:22 CEST 2009


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 Octagonal_Shape_mpz_class@Octagonal_Shape_mpq_class at Constraints_Product_C_Polyhedron_Grid@Pointset_Powerset_C_Polyhedron at Pointset_Powerset_NNC_Polyhedron@Double_Box at BD_Shape_double@Octagonal_Shape_double')
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>@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