2010/9/15 Ozkan Sezer <[email protected]>:
> On Wed, Sep 15, 2010 at 10:35 PM, Ruben Van Boxem
> <[email protected]> wrote:
>> Hi,
>>
>> I am now trying to get ppl to compile with mingw-w64 (for now, with sezero's
>> latest build again, as TDM64 is finicky with everything gcc-related :( )
>>
>> I built GMP with --enable-cxx and have let ppl configure know about gmp with
>> --with-gmp-prefix=/path/to/gmp/with/cxx
>>
>> I get this error after make:
>>
>>> libtool: compile: x86_64-w64-mingw32-g++ -DHAVE_CONFIG_H -I.
>>> -I../../../src/ppl/src -I.. -I.. -I../../../src/ppl/src
>>> -I/home/ruben/mingw64/build/gmp2-bin/include -g -O2 -frounding-math -W -Wall
>>> -MT Box.lo -MD -MP -MF .deps/Box.Tpo -c ../../../src/ppl/src/Box.cc
>>> -DDLL_EXPORT -DPIC -o .libs/Box.o
>>> In file included from ../../../src/ppl/src/Box.inlines.hh:26,
>>> from ../../../src/ppl/src/Box.defs.hh:2217,
>>> from ../../../src/ppl/src/Box.cc:24:
>>> ../../../src/ppl/src/Boundary.defs.hh: In function
>>> 'Parma_Polyhedra_Library::Result
>>> Parma_Polyhedra_Library::Boundary_NS::shrink(Parma_Polyhedra_Library::Boundary_NS::Boundary_Type,
>>> T&, Info&, bool)':
>>> ../../../src/ppl/src/Boundary.defs.hh:196: error: expected unqualified-id
>>> before '__restrict'
>>> ../../../src/ppl/src/Boundary.defs.hh:196: error: expected ';' before
>>> '__restrict'
>>> ../../../src/ppl/src/Boundary.defs.hh:200: error: expected unqualified-id
>>> before '__restrict'
>>> ../../../src/ppl/src/Boundary.defs.hh:200: error: expected ';' before
>>> '__restrict'
>>> In file included from ../../../src/ppl/src/Interval_Info.defs.hh:27,
>>> from ../../../src/ppl/src/Interval.defs.hh:31,
>>> from ../../../src/ppl/src/Polyhedron.templates.hh:28,
>>> from ../../../src/ppl/src/Polyhedron.defs.hh:2625,
>>> from ../../../src/ppl/src/Box.templates.hh:33,
>>> from ../../../src/ppl/src/Box.defs.hh:2218,
>>> from ../../../src/ppl/src/Box.cc:24:
>>> ../../../src/ppl/src/Interval_Restriction.defs.hh: At global scope:
>>> ../../../src/ppl/src/Interval_Restriction.defs.hh:55: error: expected ')'
>>> before ',' token
>>> ../../../src/ppl/src/Interval_Restriction.defs.hh:164: error: expected ')'
>>> before 'rdir'
>>> In file included from ../../../src/ppl/src/Interval_Info.defs.hh:27,
>>> from ../../../src/ppl/src/Interval.defs.hh:31,
>>> from ../../../src/ppl/src/Polyhedron.templates.hh:28,
>>> from ../../../src/ppl/src/Polyhedron.defs.hh:2625,
>>> from ../../../src/ppl/src/Box.templates.hh:33,
>>> from ../../../src/ppl/src/Box.defs.hh:2218,
>>> from ../../../src/ppl/src/Box.cc:24:
>>> ../../../src/ppl/src/Interval_Restriction.defs.hh:338: error: expected ')'
>>> before 'rdir'
>>> In file included from ../../../src/ppl/src/Polyhedron.templates.hh:28,
>>> from ../../../src/ppl/src/Polyhedron.defs.hh:2625,
>>> from ../../../src/ppl/src/Box.templates.hh:33,
>>> from ../../../src/ppl/src/Box.defs.hh:2218,
>>> from ../../../src/ppl/src/Box.cc:24:
>>> ../../../src/ppl/src/Interval.defs.hh: In member function
>>> 'Parma_Polyhedra_Library::Result Parma_Polyhedra_Library::Interval<Boundary,
>>> Info>::lower_normalize() const':
>>> ../../../src/ppl/src/Interval.defs.hh:106: error: expected unqualified-id
>>> before '__restrict'
>>> ../../../src/ppl/src/Interval.defs.hh:106: error: expected ';' before
>>> '__restrict'
>>> ../../../src/ppl/src/Interval.defs.hh:111: error: expected unqualified-id
>>> before '__restrict'
>>> ../../../src/ppl/src/Interval.defs.hh:111: error: expected ';' before
>>> '__restrict'
>>> ../../../src/ppl/src/Interval.defs.hh: In member function
>>> 'Parma_Polyhedra_Library::Result Parma_Polyhedra_Library::Interval<Boundary,
>>> Info>::upper_normalize() const':
>>> ../../../src/ppl/src/Interval.defs.hh:127: error: expected unqualified-id
>>> before '__restrict'
>>> ../../../src/ppl/src/Interval.defs.hh:127: error: expected ';' before
>>> '__restrict'
>>> ../../../src/ppl/src/Interval.defs.hh:132: error: expected unqualified-id
>>> before '__restrict'
>>> ../../../src/ppl/src/Interval.defs.hh:132: error: expected ';' before
>>> '__restrict'
>>> In file included from ../../../src/ppl/src/Interval.defs.hh:843,
>>> from ../../../src/ppl/src/Polyhedron.templates.hh:28,
>>> from ../../../src/ppl/src/Polyhedron.defs.hh:2625,
>>> from ../../../src/ppl/src/Box.templates.hh:33,
>>> from ../../../src/ppl/src/Box.defs.hh:2218,
>>> from ../../../src/ppl/src/Box.cc:24:
>>> ../../../src/ppl/src/Interval.inlines.hh: In member function 'typename
>>> Parma_Polyhedra_Library::Enable_If<(Parma_Polyhedra_Library::Is_Singleton::value
>>> || Parma_Polyhedra_Library::Is_Interval::value), bool>::type
>>> Parma_Polyhedra_Library::Interval<Boundary,
>>> Info>::can_be_exactly_joined_to(const Type&) const':
>>> ../../../src/ppl/src/Interval.inlines.hh:324: error: expected
>>> unqualified-id before '__restrict'
>>> ../../../src/ppl/src/Interval.inlines.hh:324: error: expected ';' before
>>> '__restrict'
>>> ../../../src/ppl/src/Interval.inlines.hh:324: error: expected
>>> primary-expression before '__restrict'
>>> ../../../src/ppl/src/Interval.inlines.hh:324: error: expected ';' before
>>> '__restrict'
>>> ../../../src/ppl/src/Interval.inlines.hh:329: error: expected
>>> unqualified-id before '__restrict'
>>> ../../../src/ppl/src/Interval.inlines.hh:329: error: expected ';' before
>>> '__restrict'
>>> ../../../src/ppl/src/Interval.inlines.hh:329: error: expected
>>> primary-expression before '__restrict'
>>> ../../../src/ppl/src/Interval.inlines.hh:329: error: expected ';' before
>>> '__restrict'
>>> make[3]: *** [Box.lo] Error 1
>>> make[3]: Leaving directory `/home/Ruben/mingw64/build/ppl/src'
>>> make[2]: *** [all] Error 2
>>> make[2]: Leaving directory `/home/Ruben/mingw64/build/ppl/src'
>>> make[1]: *** [all-recursive] Error 1
>>> make[1]: Leaving directory `/home/Ruben/mingw64/build/ppl'
>>> make: *** [all] Error 2
>>
>> Is there anything that pops into your great minds with the __restrict thing?
>> Should it be plain "restrict"?
>
> Well, this is an ouch... Boundary.defs.hh line 196 is:
> r = info.restrict(round_dir_check(type, check), x, V_GT);
>
> Due to a problem in gcc (which is fixed in 4.6-only), we do define
> restrict as __restrict in _mingw.h. Happened in the trunk at revisions
> 3371/3374/3375, and in the 1.0 branch at revision 3376.
>
> Obviously we never thought that a class would have a member
> with a name as "restrict". Ouch ouch ouch.....
>
> Kai: Should we revert those revisions?? (I assume those changes
> won't be backported to gcc 4.4/4.5 ?)
>
>>
>> Thanks!
>>
>> Ruben
>>
>> PS: Why do you ask?
>
> No I don't ;)
>
>> Graphite loop optimizations in GCC require PPL and
>> cloog-ppl.
>>
>
> --
> Ozkan
>
Well, restrict is a keyword for c++, so I am curious to see a class
with a member of this name. But anyway, maybe we should remove this
revision from _mingw.h
Kai
--
| (\_/) This is Bunny. Copy and paste
| (='.'=) Bunny into your signature to help
| (")_(") him gain world domination
------------------------------------------------------------------------------
Start uncovering the many advantages of virtual appliances
and start using them to simplify application deployment and
accelerate your shift to cloud computing.
http://p.sf.net/sfu/novell-sfdev2dev
_______________________________________________
Mingw-w64-public mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/mingw-w64-public