[PPL-devel] A compilation issue on Solaris 10, amd64

Maciej Bliziński maciej at opencsw.org
Wed Aug 17 22:25:33 CEST 2011


Hello,

At OpenCSW, we're working on a Solaris port of PPL.  Dagobert
Michelsen has identified two issues, which are specific to compiling
on i386 or amd64. One is that there's a macro called "R1" defined on
Solaris, and the second is that an existing version() function (from
headers present on Solaris) results in an ambiguity which breaks
compilation. Patches are available at [1].

There's one more issue, this time specific to amd64 (i386 compilation
completes fine):

/opt/csw/gcc4/bin/g++ -DHAVE_CONFIG_H -I. -I../..
-DBOX_INSTANCE=rt_r_oc -I../../src -I../../src -I../../tests
-I../../utils -DNDEBUG=1 -I/opt/csw/include  -g -O2 -frounding-math
-O2 -pipe -m64 -march=opteron -W -Wall -MT max_min1.o -MD -MP -MF
.deps/max_min1.Tpo -c -o max_min1.o max_min1.cc
interval1.cc: In function 'bool<unnamed>::test01() [with F = float]':
interval1.cc:195:   instantiated from here
interval1.cc:77: error: no matching function for call to
'Parma_Polyhedra_Library::Interval<float,
Parma_Polyhedra_Library::Interval_Restriction_None<Parma_Polyhedra_Library::Interval_Info_Bitset<unsigned
int, <unnamed>::My_Interval<float>::Floating_Point_Real_Interval_Info_Policy>
> >::join_assign(double)'
interval1.cc:195:   instantiated from here
interval1.cc:90: error: no matching function for call to
'Parma_Polyhedra_Library::Interval<float,
Parma_Polyhedra_Library::Interval_Restriction_None<Parma_Polyhedra_Library::Interval_Info_Bitset<unsigned
int, <unnamed>::My_Interval<float>::Floating_Point_Real_Interval_Info_Policy>
> >::is_disjoint_from(double)'
interval1.cc:90: error: no matching function for call to
'Parma_Polyhedra_Library::Interval<float,
Parma_Polyhedra_Library::Interval_Restriction_None<Parma_Polyhedra_Library::Interval_Info_Bitset<unsigned
int, <unnamed>::My_Interval<float>::Floating_Point_Real_Interval_Info_Policy>
> >::is_disjoint_from(double)'
../../src/Interval.defs.hh: In constructor
'Parma_Polyhedra_Library::Interval<Boundary, Info>::Interval(const T&)
[with T = double, Boundary = float, Info =
Parma_Polyhedra_Library::Interval_Restriction_None<Parma_Polyhedra_Library::Interval_Info_Bitset<unsigned
int, <unnamed>::My_Interval<float>::Floating_Point_Real_Interval_Info_Policy>
>]':
interval1.cc:76:   instantiated from 'bool<unnamed>::test01() [with F = float]'
interval1.cc:195:   instantiated from here
../../src/Interval.defs.hh:657: error: no matching function for call
to 'Parma_Polyhedra_Library::Interval<float,
Parma_Polyhedra_Library::Interval_Restriction_None<Parma_Polyhedra_Library::Interval_Info_Bitset<unsigned
int, <unnamed>::My_Interval<float>::Floating_Point_Real_Interval_Info_Policy>
> >::assign(const double&)'
../../src/Interval.defs.hh:374: note: candidates are:
Parma_Polyhedra_Library::I_Result
Parma_Polyhedra_Library::Interval<Boundary,
Info>::assign(Parma_Polyhedra_Library::Degenerate_Element) [with
Boundary = float, Info =
Parma_Polyhedra_Library::Interval_Restriction_None<Parma_Polyhedra_Library::Interval_Info_Bitset<unsigned
int, <unnamed>::My_Interval<float>::Floating_Point_Real_Interval_Info_Policy>
>]
gmake[4]: *** [interval1.o] Error 1
gmake[4]: *** Waiting for unfinished jobs....
mv -f .deps/generalizedaffinepreimage1.Tpo .deps/generalizedaffinepreimage1.Po
mv -f .deps/limitedcc76extrapolation1.Tpo .deps/limitedcc76extrapolation1.Po
mv -f .deps/max_min1.Tpo .deps/max_min1.Po
mv -f .deps/mapspacedims1.Tpo .deps/mapspacedims1.Po
gmake[4]: Leaving directory
`/home/maciej/src/opencsw/pkg/ppl/trunk/work/solaris9-i386/build-isa-amd64/ppl-0.11.2/tests/Box'

The compiler version is:
maciej at unstable10x [unstable10x]:~ > /opt/csw/gcc4/bin/g++ --version
g++ (GCC) 4.3.3
Copyright (C) 2008 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

Do you have any advice regarding this issue?

Maciej

[1] https://gar.svn.sourceforge.net/svnroot/gar/csw/mgar/pkg/ppl/trunk/files/



More information about the PPL-devel mailing list