Hello opensg-users, i am trying to build OpenSG 1.8 (preferrably stable) on an x86_64 system using Intel icc 10.1.
I found out that for the automake based build, in CommonConf exist only files
for i686-pc-linux-icc. The scons build seems not to support icc at all:
./scons compiler=icc -> scons: *** Invalid value for option compiler: icc
So I copied the CommonConf files to {conf|common}.x86_64-unknown-linux-icc.in.
I configured using
./configure --enable-glut --prefix=/home/av006de/icc/OpenSG --with-compiler=icc
--with-icc-gnu-compat=411
When I try to 'make', I get errors about deprecated compiler flags.
Looking inside the common file, i see that compiler-flags are only defined for
major versions up to 9. I added another ifeq there.
ifeq ($(COMPILERMAJORVERSION),10) seems not to be recognized correctly.
If i change it to ifeq ($(COMPILERVERSION),101), the parameters are taken.
The problem here is that the script expects the major version to be only one
digit:
COMPILERMAJORVERSION := $(shell echo $(COMPILER) | cut -c1)
^^^
this can be fixed by changing the line to:
COMPILERMAJORVERSION := $(shell echo $(COMPILER) | cut -d. -f1)
Having done that, below I added the line:
ifeq ($(COMPILERMAJORVERSION),10)
COMPILER = -fpic -x c++ -ansi
else
...
endif
I had to remove the (deprecated) -Kc++eh -Krtti parameters, replacing the former
with -x c++.
Reconfigured, trying to build, i get while generating the dep files:
icpc: command line remark #10010: option '-cxxlib-gcc' is deprecated and will be
removed in a future release.
Another deprecated option, it is found in configure.in/configure.
The icc manual states: Suggested replacement -cxxlib[=dir].
Hoping that the directory will be correctly detected, i change it to only
-cxxlib.
Configure, make again. Some dep files are generated, success! ;)
After having generated the first hand-full, errors from OSGConfig.h occur,
reading:
.../OSGConfig.h(402): warning #47: incompatible redefinition of macro
"OSG_THROW_NOTHING" (declared at line 198)
# define OSG_THROW_NOTHING()
and
.../OSGConfig.h(415): warning #47: incompatible redefinition of macro
"OSG_STDEXTENSION_NAMESPACE" (declared at line 203)
# define OSG_STDEXTENSION_NAMESPACE std
Having taken a look at OSGConfig.h, I see that for compiler version 10.1,
COMPILERVERSION should have the value 1010. The line which assures this for
major versions <10 is
COMPILER-3 := $(shell if test $(COMPILER-2) -lt 100 ; then echo 1; fi)
COMPILERVERSION := $(if $(COMPILER-3),$(COMPILER-2)0,$(COMPILER-2))
-lt 100 is no longer valid (101).
Thus I changed the above simply to
COMPILER-3 := 1
COMPILERVERSION := $(if $(COMPILER-3),$(COMPILER-2)0,$(COMPILER-2))
I don't know why the test for <100 was there, but I see that this naive change
might cause problems with the older compiler versions. Maybe someone could
comment on this and provide a solution which works with all versions.
Anyways, with the above fixes, OpenSG builds successfully on x86_64 with Intels
icc. I find that you could incorporate them into the cvs version.
Is scons support for icc planned? What about OpenSG 2.0?
Best regards,
Patric
--
Patric Schmitz, MaTA i.A.
RWTH Aachen University, Center for Computing and Communication
Rechen- und Kommunikationszentrum, Virtual Reality Group
Seffenter Weg 23, D 52074 Aachen (Germany)
Phone: + 49 241 80 24893
mailto:[EMAIL PROTECTED] http://www.rz.rwth-aachen.de
smime.p7s
Description: S/MIME Cryptographic Signature
------------------------------------------------------------------------- This SF.net email is sponsored by: Microsoft Defy all challenges. Microsoft(R) Visual Studio 2008. http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/
_______________________________________________ Opensg-users mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/opensg-users
