Compiling ppl-0.10.2 on Solaris Express

This is essentially a repeat of a bug that has already been posted.
The original message can be viewed at:
http://gcc.gnu.org/ml/gcc-help/2009-04/msg00381.html
Instead of using OpenSolaris I'm using Solaris Express which is essentially the same thing but contains all of the proprietary bits that are stripped out to create OpenSolaris.
I'm stuck at the exact same spot with the exact same error messages and was just wondering if this was going to be fixed or if there's something I can do to get the compiler to move on down the road.
Thanks in advance, alan

Alan Pae wrote:
This is essentially a repeat of a bug that has already been posted.
The original message can be viewed at:
http://gcc.gnu.org/ml/gcc-help/2009-04/msg00381.html
Instead of using OpenSolaris I'm using Solaris Express which is essentially the same thing but contains all of the proprietary bits that are stripped out to create OpenSolaris.
I'm stuck at the exact same spot with the exact same error messages and was just wondering if this was going to be fixed or if there's something I can do to get the compiler to move on down the road.
Hi Alan,
a possible workaround is to look at /usr/include/sys/reg.h. If it contains, e.g.,
#ifndef _SYS_REG_H #define _SYS_REG_H 1
then you should configure the PPL with a command of the form
CPPFLAGS=-D_SYS_REG_H /path/to/ppl-x.y/configure ...
Please let us know how it goes. All the best,
Roberto

Roberto Bagnara wrote:
Alan Pae wrote:
This is essentially a repeat of a bug that has already been posted.
The original message can be viewed at:
http://gcc.gnu.org/ml/gcc-help/2009-04/msg00381.html
Instead of using OpenSolaris I'm using Solaris Express which is essentially the same thing but contains all of the proprietary bits that are stripped out to create OpenSolaris.
I'm stuck at the exact same spot with the exact same error messages and was just wondering if this was going to be fixed or if there's something I can do to get the compiler to move on down the road.
Hi Alan,
a possible workaround is to look at /usr/include/sys/reg.h. If it contains, e.g.,
#ifndef _SYS_REG_H #define _SYS_REG_H 1
then you should configure the PPL with a command of the form
CPPFLAGS=-D_SYS_REG_H /path/to/ppl-x.y/configure ...
Please let us know how it goes. All the best,
Roberto
Exactly the same thing:
libtool: compile: g++ -DHAVE_CONFIG_H -I. -I.. -I.. -I../src -D_SYS_REG_H -I/opt/local/include -g -O2 -frounding-math -W -Wall -MT C_Polyhedron.lo -MD -MP -MF .deps/C_Polyhedron.Tpo -c C_Polyhedron.cc -fPIC -DPIC -o .libs/C_Polyhedron.o In file included from algorithms.hh:27, from C_Polyhedron.cc:28: Pointset_Powerset.defs.hh:68: error: expected unqualified-id before numeric constant Pointset_Powerset.defs.hh:69: error: type/value mismatch at argument 1 in template parameter list for 'template<class D> class Parma_Polyhedra_Library::Powerset' Pointset_Powerset.defs.hh:69: error: expected a type, got '15' Pointset_Powerset.defs.hh:1234: error: 'Base' is not a class or namespace Pointset_Powerset.defs.hh:1235: error: 'Base' is not a class or namespace Pointset_Powerset.defs.hh:1236: error: 'Base' is not a class or namespace Pointset_Powerset.defs.hh:1237: error: 'Base' is not a class or namespace Pointset_Powerset.defs.hh:1238: error: 'Base' is not a class or namespace Pointset_Powerset.defs.hh:1239: error: 'Base' is not a class or namespace Pointset_Powerset.defs.hh:1251: error: 'Base' is not a class or namespace Pointset_Powerset.defs.hh:1252: error: 'Base' is not a class or namespace Pointset_Powerset.defs.hh:1253: error: 'Base' is not a class or namespace In file included from Pointset_Powerset.defs.hh:1446, from algorithms.hh:27, from C_Polyhedron.cc:28:
reg.h is not a very big file so here it is:
bash-3.2$ cat reg.h /* * CDDL HEADER START * * The contents of this file are subject to the terms of the * Common Development and Distribution License, Version 1.0 only * (the "License"). You may not use this file except in compliance * with the License. * * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE * or http://www.opensolaris.org/os/licensing. * See the License for the specific language governing permissions * and limitations under the License. * * When distributing Covered Code, include this CDDL HEADER in each * file and include the License file at usr/src/OPENSOLARIS.LICENSE. * If applicable, add the following below this CDDL HEADER, with the * fields enclosed by brackets "[]" replaced with your own identifying * information: Portions Copyright [yyyy] [name of copyright owner] * * CDDL HEADER END */ /* * Copyright 2004 Sun Microsystems, Inc. All rights reserved. * Use is subject to license terms. */
#ifndef _SYS_REG_H #define _SYS_REG_H
#pragma ident "%Z%%M% %I% %E% SMI"
#if defined(__i386) || defined(__amd64)
#include <ia32/sys/reg.h>
#endif
#endif /* _SYS_REG_H */
If there's anything I can do to help just let me know.
Thanks, alan

Alan Pae wrote:
Roberto Bagnara wrote:
Alan Pae wrote:
This is essentially a repeat of a bug that has already been posted.
The original message can be viewed at:
http://gcc.gnu.org/ml/gcc-help/2009-04/msg00381.html
Instead of using OpenSolaris I'm using Solaris Express which is essentially the same thing but contains all of the proprietary bits that are stripped out to create OpenSolaris.
I'm stuck at the exact same spot with the exact same error messages and was just wondering if this was going to be fixed or if there's something I can do to get the compiler to move on down the road.
Hi Alan,
a possible workaround is to look at /usr/include/sys/reg.h. If it contains, e.g.,
#ifndef _SYS_REG_H #define _SYS_REG_H 1
then you should configure the PPL with a command of the form
CPPFLAGS=-D_SYS_REG_H /path/to/ppl-x.y/configure ...
Please let us know how it goes. All the best,
Roberto
Exactly the same thing:
libtool: compile: g++ -DHAVE_CONFIG_H -I. -I.. -I.. -I../src -D_SYS_REG_H -I/opt/local/include -g -O2 -frounding-math -W -Wall -MT C_Polyhedron.lo -MD -MP -MF .deps/C_Polyhedron.Tpo -c C_Polyhedron.cc -fPIC -DPIC -o .libs/C_Polyhedron.o In file included from algorithms.hh:27, from C_Polyhedron.cc:28: Pointset_Powerset.defs.hh:68: error: expected unqualified-id before numeric constant Pointset_Powerset.defs.hh:69: error: type/value mismatch at argument 1 in template parameter list for 'template<class D> class Parma_Polyhedra_Library::Powerset' Pointset_Powerset.defs.hh:69: error: expected a type, got '15' Pointset_Powerset.defs.hh:1234: error: 'Base' is not a class or namespace Pointset_Powerset.defs.hh:1235: error: 'Base' is not a class or namespace Pointset_Powerset.defs.hh:1236: error: 'Base' is not a class or namespace Pointset_Powerset.defs.hh:1237: error: 'Base' is not a class or namespace Pointset_Powerset.defs.hh:1238: error: 'Base' is not a class or namespace Pointset_Powerset.defs.hh:1239: error: 'Base' is not a class or namespace Pointset_Powerset.defs.hh:1251: error: 'Base' is not a class or namespace Pointset_Powerset.defs.hh:1252: error: 'Base' is not a class or namespace Pointset_Powerset.defs.hh:1253: error: 'Base' is not a class or namespace In file included from Pointset_Powerset.defs.hh:1446, from algorithms.hh:27, from C_Polyhedron.cc:28:
reg.h is not a very big file so here it is:
bash-3.2$ cat reg.h /*
- CDDL HEADER START
- The contents of this file are subject to the terms of the
- Common Development and Distribution License, Version 1.0 only
- (the "License"). You may not use this file except in compliance
- with the License.
- You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
- or http://www.opensolaris.org/os/licensing.
- See the License for the specific language governing permissions
- and limitations under the License.
- When distributing Covered Code, include this CDDL HEADER in each
- file and include the License file at usr/src/OPENSOLARIS.LICENSE.
- If applicable, add the following below this CDDL HEADER, with the
- fields enclosed by brackets "[]" replaced with your own identifying
- information: Portions Copyright [yyyy] [name of copyright owner]
- CDDL HEADER END
*/ /*
- Copyright 2004 Sun Microsystems, Inc. All rights reserved.
- Use is subject to license terms.
*/
#ifndef _SYS_REG_H #define _SYS_REG_H
#pragma ident "%Z%%M% %I% %E% SMI"
#if defined(__i386) || defined(__amd64)
#include <ia32/sys/reg.h>
#endif
#endif /* _SYS_REG_H */
Very strange indeed.
If there's anything I can do to help just let me know.
Can I have access to a machine where this is happening?

If there's anything I can do to help just let me know.
Can I have access to a machine where this is happening?
Ok, anything but that! :-)
Send me the list of commands that you would run and I'll run them and send back the responses.
I don't have the plans for the atomic bomb but I wouldn't want you to get completely bored reading my files.
alan

Alan Pae wrote:
If there's anything I can do to help just let me know.
Can I have access to a machine where this is happening?
Ok, anything but that! :-)
Tsk, tsk, ...
Send me the list of commands that you would run and I'll run them and send back the responses.
Here is what I would do in your shoes. I would take the failing compilation command, i.e.,
g++ -DHAVE_CONFIG_H -I. -I.. -I.. -I../src -D_SYS_REG_H -I/opt/local/include \ -g -O2 -frounding-math -W -Wall -MT C_Polyhedron.lo -MD -MP \ -MF .deps/C_Polyhedron.Tpo -c C_Polyhedron.cc -fPIC -DPIC -o .libs/C_Polyhedron.o
I would replace -c with -E and erase -g, -O2, ... and anything after C_Polyhedron.cc, redirecting the output to a file.
Then I would try to identify the header that is defining the macro CS. It cannot be the reg.h you posted, because that is neutralized by the -D_SYS_REG_H option. So it must be something else that, hopefully, you can neutralize in a similar way.
I don't have the plans for the atomic bomb but I wouldn't want you to get completely bored reading my files.
Reading all your files is exactly what I had in mind :-) Cheers,
Roberto
participants (2)
-
Alan Pae
-
Roberto Bagnara