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

Tovrea, George W (US SSA) george.tovrea at baesystems.com
Wed Aug 19 21:32:45 CEST 2009


One problem is in configure (from configure.ac) at

  # Avoid extra blanks.
  # required_instantiations=`echo "${enableval}" | sed -e 's/[[	 ]][[
]]*/ /g' -e 's/[[ ]]*\([[@<>,]]\)[[ ]]*/\1/g' -e 's/>>/> >/g' -e 's/^[[
]]//g' -e 's/[[ ]]$//g'`

At this point, enableval = 
"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>"

Which is already incorrect, but the sed command above fails to remove
the extra blanks.

Tried this on a Linux machine also with following results (same as
Solaris):

tovrea at challenger%set alist =
"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>"
tovrea at challenger%echo $alist | sed -e 's/[[ ]][[ ]]*/ /g' -e 's/[[
]]*\([[@<>,]]\)[[ ]]*/\1/g' -e 's/>>/> >/g' -e 's/^[[ ]]//g' -e 's/[[
]]$//g'
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>

Hard coded the correct list in configure and the names were generated
correctly. Also, ClooG compiled without the undefined references
experienced prior to the kludge.

-----Original Message-----
From: P M Hill [mailto:hill at comp.leeds.ac.uk] 
Sent: Sunday, August 16, 2009 1:22 AM
To: Tovrea, George W (US SSA)
Cc: ppl-devel at cs.unipr.it
Subject: RE: [PPL-devel] Undefined PPL references attempting to build
cloog-ppl

On Thu, 13 Aug 2009, Tovrea, George W (US SSA) wrote:

> Any other ideas about how to fix this issue?

Only that the configure file generates the Makefiles, including the one 
with the buggy names.

In your generated configure file you should have:
   required_instantiations_canonical_names=`echo 
"${required_instantiations}" | sed -e 's/> //g' -e 's/>//g' -e 's/[< 
,]/_/g'`

which will be used to generate the "interface" or "canonical" names from

the C++ names - for example - BD_Shape_mpq_class from
BD_Shape<mpq_class>

So I can only suggest that you check your configure file that the above 
line is correct there.

Pat

>
> -----Original Message-----
> From: Tovrea, George W (US SSA)
> Sent: Tuesday, August 11, 2009 1:45 PM
> To: 'P M Hill'
> Subject: RE: [PPL-devel] Undefined PPL references attempting to build
> cloog-ppl
>
> Yes, they are also messed up there:
>
> 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_Powerset_NNC_Polyhedron.hh
> 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_Powerset_NNC_Polyhedron.lo
> 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_Powerset_NNC_Polyhedron.cc
> required_instantiations_canonical_names =
>
Polyhedron at Grid@Rational_Box at BD_Shape_mpz_class@_BD_Shape_mpq_class at _Oct
>
agonal_Shape_mpz_class at _Octagonal_Shape_mpq_class@_Constraints_Product_C
>
_Polyhedron_Grid at _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:42 PM
> To: Tovrea, George W (US SSA)
> Cc: Sebastian Pop; The Parma Polyhedra Library developers' list;
Roberto
> Bagnara
> Subject: Re: [PPL-devel] Undefined PPL references attempting to build
> cloog-ppl
>
> Also check the Makefile in the same directory. If they are messed up
> there, then the problem appears to be with autoreconf.
>
> Pat
>
> On Tue, 11 Aug 2009, Tovrea, George W (US SSA) wrote:
>
>> 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
>>>
>>>
>>
>> _______________________________________________
>> PPL-devel mailing list
>> PPL-devel at cs.unipr.it
>> http://www.cs.unipr.it/mailman/listinfo/ppl-devel
>>
>
>




More information about the PPL-devel mailing list