[PPL-devel] Modified PPL 0.10.2 source distribution for Solaris

Alan Pae alanpae at ilkda.com
Wed Nov 11 00:20:19 CET 2009


On 11/ 7/09 11:48 PM, Roberto Bagnara wrote:
> Alan Pae wrote:
>> but then it throws a bunch of other errors:
>>
>>
>> addsource='Box.cc' object='Box.lo' libtool=yes \
>> DEPDIR=.deps depmode=none /bin/sh ../depcomp \
>> /bin/sh ../libtool --tag=CXX --mode=compile
>> /opt/SunStudioExpress/bin/CC -DHAVE_CONFIG_H -I. -I.. -I.. -I../src
>> -I/usr/include/gmp -g -O2 -c -o Box.lo Box.cc
>> libtool: compile: /opt/SunStudioExpress/bin/CC -DHAVE_CONFIG_H -I.
>> -I.. -I.. -I../src -I/usr/include/gmp -g -O2 -c Box.cc -KPIC -DPIC -o
>> .libs/Box.o
>> "checked_mpz.inlines.hh", line 54: Error: "," expected instead of "(".
>> "checked_mpz.inlines.hh", line 60: Error: mp_size_field_t is not defined.
>> "checked_mpz.inlines.hh", line 66: Error: mp_size_field_t is not defined.
>> "checked_mpz.inlines.hh", line 67: Error: size is not defined.
>> "Row.defs.hh", line 88: Error: Row_Impl_Handler is not defined.
>> "Row.inlines.hh", line 168: Error: Impl is not defined.
>> "Row.inlines.hh", line 173: Error: impl is not defined.
>> "Row.inlines.hh", line 178: Error: impl is not defined.
>> "Row.inlines.hh", line 183: Error: impl is not defined.
>> "Row.inlines.hh", line 208: Error:
>> Parma_Polyhedra_Library::Row_Impl_Handler is not a direct base class
>> of Parma_Polyhedra_Library::Row.
>> "Row.inlines.hh", line 224: Error: impl is not defined.
>> "Row.inlines.hh", line 224: Error: Type name expected instead of "Impl".
>> "Row.inlines.hh", line 224: Error: Could not find a match for operator
>> new(unsigned, unsigned).
>> "Row.inlines.hh", line 237: Error: impl is not defined.
>> "Row.inlines.hh", line 246: Error: impl is not defined.
>> "Row.inlines.hh", line 267: Error:
>> Parma_Polyhedra_Library::Row_Impl_Handler is not a direct base class
>> of Parma_Polyhedra_Library::Row.
>> "Row.inlines.hh", line 273: Error:
>> Parma_Polyhedra_Library::Row_Impl_Handler is not a direct base class
>> of Parma_Polyhedra_Library::Row.
>> "Row.inlines.hh", line 279: Error:
>> Parma_Polyhedra_Library::Row_Impl_Handler is not a direct base class
>> of Parma_Polyhedra_Library::Row.
>> "Row.inlines.hh", line 280: Error: impl is not a member of const
>> Parma_Polyhedra_Library::Row.
>> "Row.inlines.hh", line 289: Error:
>> Parma_Polyhedra_Library::Row_Impl_Handler is not a direct base class
>> of Parma_Polyhedra_Library::Row.
>> "Row.inlines.hh", line 300: Error:
>> Parma_Polyhedra_Library::Row_Impl_Handler is not a direct base class
>> of Parma_Polyhedra_Library::Row.
>> "Row.inlines.hh", line 315: Error: impl is not defined.
>> "Row.inlines.hh", line 320: Error: impl is not defined.
>> "Row.inlines.hh", line 320: Error: impl is not a member of
>> Parma_Polyhedra_Library::Row.
>> "Row.inlines.hh", line 328: Error: impl is not defined.
>> Compilation aborted, too many Error messages.
>> gmake[3]: *** [Box.lo] Error 1
>> gmake[3]: Leaving directory `/build/ppl-0.10.2/src'
>>
>>
>> Please suggest.
>
> Hi Alan,
>
> it seems the compiler is complaining at typeof in the following
> context:
>
> #ifdef PPL_HAVE_TYPEOF
> //! Type of the _mp_size field of GMP's __mpz_struct.
> typedef typeof(__mpz_struct()._mp_size) mp_size_field_t;
> #else
> //! This is assumed to be the type of the _mp_size field of GMP's
> __mpz_struct.
> typedef int mp_size_field_t;
> #endif
>
> The PPL_HAVE_TYPEOF symbol should be defined only if the underlying
> compiler supports typeof. The test is performed via Autoconf in response
> to the line
>
> AC_C_TYPEOF
>
> in configure.ac, root directory of the PPL 0.10.2 package.
> This test results, on my machine, with GCC 4.3.2, in the
> following lines in config.log
>
> configure:7158: checking for typeof syntax and keyword spelling
> configure:7199: gcc -c -g -O2 -frounding-math conftest.c >&5
> configure:7206: $? = 0
> configure:7223: result: typeof

configure:7158: checking for typeof syntax and keyword spelling
configure:7199: /opt/sunstudio12.1/bin/cc -c  -g -O2 
-I/opt/local/include -I/opt/gmp/include -I/opt/local/include conftest.c >&5
"conftest.c", line 43: warning: statement not reached
configure:7206: $? = 0
configure:7223: result: typeof


> If this does not work, then the second #define is used and then
> in ppl-config.h we will have
>
> #define typeof __typeof__
>
> It even with the second #define the program above cannot be
> compiled or fails, then in ppl-config.h we should have
>
> #undef PPL_HAVE_TYPEOF
>
> and then typeof would not be used.

/* Define to 1 if typeof works with your compiler. */
#define PPL_HAVE_TYPEOF 1

I've tried setting it to the other settings but all it does is toggle 
these error messages:

 >> "checked_mpz.inlines.hh", line 54: Error: "," expected instead of "(".
 >> "checked_mpz.inlines.hh", line 60: Error: mp_size_field_t is not 
defined.
 >> "checked_mpz.inlines.hh", line 66: Error: mp_size_field_t is not 
defined.
 >> "checked_mpz.inlines.hh", line 67: Error: size is not defined.

Just for grins I ran a gmake -k and it seems if I can get past this then 
about 90% of the compiler errors will be cleared up.

Would it help if I tarred everything up and sent it to you?

Yea, I'm not a C++ coder. :-)

thanks,
alan



More information about the PPL-devel mailing list