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

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@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

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@Grid@Rational_Box@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@BD_Shape_double@Octagonal_Shape_double') m4_define(`m4_cplusplus_classes_names', `Polyhedron@Grid@Rational_Box@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@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@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
participants (2)
-
P M Hill
-
Tovrea, George W (US SSA)