[PPL-devel] PPL on a Power6 running AIX

Davide Del Vento ddvento at ucar.edu
Sat Sep 19 01:59:21 CEST 2009


Thanks again for your time!

I am not fluent in C++ standards, and eventually I gave up on using the
IBM compiler.

I tried gcc, it configured fine, but it failed during make with the
following error, and several others thereafter (see attachments for
details):

globals.inlines.hh:76: error: 'PPL_SIZEOF_MP_LIMB_T' was not declared in
this scope

:-(

Note that my gmp installation looked fine, and all its test passed.

Thanks
Davide Del Vento, Consulting Services Software Engineer
NCAR Computational & Information Services Laboratory
http://www.cisl.ucar.edu/hss/csg/
office: Mesa Lab, Room 42B
phone:  (303) 497-1233


On 09/17/2009 01:29 AM Enea Zaffanella wrote:
> Davide Del Vento wrote:
>> Thanks for your message!
>>
>> xlc and xlC are the IBM's compilers for c and c++ respectively.
>> They do support several standards:
>> http://publib.boulder.ibm.com/infocenter/lnxpcomp/v8v101/index.jsp?topic=/com.ibm.xlcpp8l.doc/getstart/overview/gs_ovr.htm
>>
>>
>> and sometimes are more nitpicking than gcc about the standards,
>> as I believe it's happening here.
>> Anyway, I was able to remove several of those errors with the enclosed
>> patch. Can you please have a look at it just to be sure that I didn't
>> change what ppl was supposed to do?
>> Unfortunately, though, the problem is NOT solved, since there are other
>> (possibly similar) problems that you can see in the make.log
>> Do you have any clue about them?
> 
> All of the changes in your patch have to do with a single name lookup
> issue. Namely, the IBM compiler seems unable to compile the following
> 
> /* ========================= */
> namespace Namespace {
>   class Base {}; // Definition.
>   class Derived; // Forward declaration.
> }
> 
> class Namespace::Derived // Definition.
>   : public Base {
>   typedef Base base_type;
> }
> /* ========================= */
> 
> If I have understood, it claims that there is no accessible declaration
> for `Base'. This is really strange ... I really don't think that we are
> using extensions of gcc, rather I suspect that the IBM compiler is just
> wrong.
> 
> Looking to name lookup rules in the C++ standard (14882-1998),
> one can see the following example in section 3.4.1(8) (unqualified name
> lookup, pages 30-31):
> 
> ===============================
> [Example:
>     class B { };
>     namespace M {
>             namespace N {
>                     class X : public B {
>                             void f();
>                     };
>             }
>     }
>     void M::N::X::f() {
>             i = 16;
>     }
> 
>    // The following scopes are searched for a declaration of i:
>    // 1) outermost block scope of M::N::X::f, before the use of i
>    // 2) scope of class M::N::X
>    // 3) scope of M::N::X’s base class B
>    // 4) scope of namespace M::N
>    // 5) scope of namespace M
>    // 6) global scope, before the definition of M::N::X::f
> —end example]
> ===============================
> 
> In points 4 and 5 it is said that the unqualified name (i) is also
> searched in the scope of the enclosing namespaces (here M::N and M).
> Hence, in our simpler example above, `Base' should also be searched
> inside `Namespace'.
> 
> According to the make.log contents, it is not just a matter of the names
> of base classes when using inheritance ... and we cannot reasonably
> change *all* the uses of unqualified names in the PPL sources to become
> qualified names (that is, add Parma_Polyhedra_Library:: everywhere even
> if not needed).
> 
> Are you using the latest available version of the compiler? I am asking
> because it seems there has been bug corrections regarding name lookup
> issues last June:
> 
> http://www-01.ibm.com/support/docview.wss?uid=swg24023988
> 
> Cheers,
> Enea Zaffanella.
> 
> 
>> Compiling with gcc is possible, but there will be several
>> linking problems with other libraries that I eventually
>> need to link together (gcc binaries are not-linkable with
>> xlC binaries).
>>
>> Thanks again
>> Davide Del Vento, Consulting Services Software Engineer
>> NCAR Computational & Information Services Laboratory
>> http://www.cisl.ucar.edu/hss/csg/
>> office: Mesa Lab, Room 42B
>> phone:  (303) 497-1233
-------------- next part --------------
An embedded and charset-unspecified text was scrubbed...
Name: make.log
URL: <http://www.cs.unipr.it/pipermail/ppl-devel/attachments/20090918/b64af534/attachment.ksh>
-------------- next part --------------
An embedded and charset-unspecified text was scrubbed...
Name: config.log
URL: <http://www.cs.unipr.it/pipermail/ppl-devel/attachments/20090918/b64af534/attachment-0001.ksh>


More information about the PPL-devel mailing list