[vtkusers] intel compiler icc 7.0

Rudi Seemann kapitaen at gmx.at
Fri Dec 13 15:02:44 EST 2002


Some of my intermediate results:
------------------------------------------------
1st: vtk compiles with icc. 
2nd: The cylinder example works fine.

3rd: icc - gcc comparison
TestRender from the bin directory shows following frame rate on a 2 GHz laptop 
with mesasoft.
Wall Time = 6.7396
FrameRate = 17.8052

A gcc compiled version of TestRender: 

Wall Time = 6.76542
FrameRate = 17.7373

4th: Problems appear using input functions of vtk:
------------------------------------------------------------------
vtkIO seems to fail in some routine calling a library function of 
libstdc++.so.5:

Program received signal SIGSEGV, Segmentation fault.
[Switching to Thread 1024 (LWP 23537)]
0x41c587f9 in std::ctype<char> const& std::use_facet<std::ctype<char> 
>(std::locale const&) () from /usr/lib/libstdc++.so.5

backtrace:

0  0x41c587f9 in std::ctype<char> const& std::use_facet<std::ctype<char> 
>(std::locale const&) () from /usr/lib/libstdc++.so.5
#1  0x4118ac2d in vtkDataReader::ReadHeader() ()
   from /usr/local/lib/vtk/libvtkIO.so
#2  0x412fda28 in vtkStructuredPointsReader::Execute() ()
   from /usr/local/lib/vtk/libvtkIO.so
#3  0x40245b83 in vtkSource::ExecuteData(vtkDataObject*) ()
   from /usr/local/lib/vtk/libvtkCommon.so
#4  0x402432f9 in vtkSource::UpdateData(vtkDataObject*) ()
   from /usr/local/lib/vtk/libvtkCommon.so
#5  0x40152f45 in vtkDataObject::UpdateData() ()
   from /usr/local/lib/vtk/libvtkCommon.so
#6  0x4130186b in vtkStructuredPointsReader::ExecuteInformation() ()
   from /usr/local/lib/vtk/libvtkIO.so
#7  0x40242b3a in vtkSource::UpdateInformation() ()
   from /usr/local/lib/vtk/libvtkCommon.so
#8  0x40152d31 in vtkDataObject::UpdateInformation() ()
   from /usr/local/lib/vtk/libvtkCommon.so
#9  0x40152cea in vtkDataObject::Update() ()
   from /usr/local/lib/vtk/libvtkCommon.so
#10 0x40242929 in vtkSource::Update() ()
   from /usr/local/lib/vtk/libvtkCommon.so


Exchanging the libvtkIO with a gcc 3.2 compiled version does not work because 
of linking errors. It should be possible to compile with icc and link with 
gcc (LinuxCompilersCompatibility60.pdf) I will try this. 

I am curious, if volume rendering can be fastened by icc.




> Has anyone tried to compile VTK with the intel compiler? Please, send me a
> message, just to share experiences!
>
> I use a SuSE 8.1, icc 7.0, (gcc 3.2), glibc 2.2.5.
>
> At the moment the compiler hangs in directory IO with following error
> messages:
>
> /usr/include/stdio.h(30): error #77: this declaration has no storage class
> or type specifier
>   __BEGIN_DECLS
>   ^
>
> /opt/intel/compiler70/ia32/include/xarg.h(15): error: expected a ";"
>   typedef char * va_list;
>   ^
>
> /opt/intel/compiler70/ia32/include/xarg.h(20): error: identifier "va_list"
> is undefined
>   typedef       va_list __gnuc_va_list;
>                 ^
>
> /opt/intel/compiler70/ia32/include/yvals.h(245): error: identifier
> "va_list" is undefined
>   typedef va_list _Va_list;
>           ^
>
> /usr/include/libio.h(396): error: expected a "{"
>   extern int __underflow (_IO_FILE *) __THROW;
>                                       ^
>
> /usr/include/stdio.h(142): error: expected a "{"
>   extern int remove (__const char *__filename) __THROW;
>                                                ^
>
> /usr/include/stdlib.h(98): error #77: this declaration has no storage class
> or type specifier
>     } div_t;
>       ^
>
> /usr/include/stdlib.h(133): error: expected a "{"
>   extern size_t __ctype_get_mb_cur_max (void) __THROW;
>                                               ^
>
> /usr/include/bits/sigset.h(31): error #77: this declaration has no storage
> class or type specifier
>     } __sigset_t;
>       ^
>
> /usr/include/sys/select.h(38): error: variable "__sigset_t" is not a type
> name typedef __sigset_t sigset_t;
>           ^
>
> /usr/include/sys/select.h(95): error #77: this declaration has no storage
> class or type specifier
>   __BEGIN_DECLS
>   ^
>
> /usr/include/sys/select.h(95): error: variable "__BEGIN_DECLS" has already
> been defined
>   __BEGIN_DECLS
>   ^
>
> /usr/include/sys/select.h(102): error: expected a ";"
>   extern int select (int __nfds, fd_set *__restrict __readfds,
>   ^
>
> /usr/include/sys/select.h(118): error #77: this declaration has no storage
> class or type specifier
>   __END_DECLS
>   ^
>
> /opt/intel/compiler70/ia32/substitute_headers/sys/types.h(224): error:
> expected a ";"
>   typedef __blkcnt_t blkcnt_t;   /* Type to count number of disk blocks. 
> */ ^
>
> /opt/intel/compiler70/ia32/substitute_headers/sys/types.h(256): error #77:
> this declaration has no storage class or type specifier
>   __END_DECLS
>   ^
>
> /opt/intel/compiler70/ia32/substitute_headers/sys/types.h(256): error:
> variable "__END_DECLS" has already been defined
>   __END_DECLS
>   ^
>
> /usr/include/stdlib.h(397): error: expected a ";"
>   extern long int random (void) __THROW;
>   ^
>
> /usr/include/stdlib.h(400): error: expected a "{"
>   extern void srandom (unsigned int __seed) __THROW;
>                                             ^
>
> /usr/include/stdlib.h(421): error: identifier "int32_t" is undefined
>       int32_t *fptr;            /* Front pointer.  */
>       ^
>
> /usr/include/stdlib.h(421): error: identifier "fptr" is undefined
>       int32_t *fptr;            /* Front pointer.  */
>                ^
>
> /usr/include/stdlib.h(422): error: identifier "rptr" is undefined
>       int32_t *rptr;            /* Rear pointer.  */
>                ^
>
> /usr/include/stdlib.h(423): error: identifier "state" is undefined
>       int32_t *state;           /* Array of state values.  */
>                ^
>
> /usr/include/stdlib.h(427): error: identifier "end_ptr" is undefined
>       int32_t *end_ptr;         /* Pointer behind state table.  */
>                ^
>
> /usr/include/stdlib.h(431): error: identifier "int32_t" is undefined
>                      int32_t *__restrict __result) __THROW;
>                      ^
>
> /usr/include/stdlib.h(431): error: expected a "{"
>                      int32_t *__restrict __result) __THROW;
>                                                    ^
>
> /usr/include/stdlib.h(491): error: expected a "{"
>                       double *__restrict __result) __THROW;
>                                                    ^
>
> /usr/include/stdlib.h(551): error: expected a "{"
>   extern void *valloc (size_t __size) __THROW __attribute_malloc__;
>                                       ^
>
> /opt/intel/compiler70/ia32/include/cstdio(17): error: expected a "{"
>   int fileno(FILE *) __THROW;
>                      ^
>
> /opt/intel/compiler70/ia32/include/cstdio(46): error: the global scope has
> no "clearerr"
>   using ::clearerr; using ::fclose; using ::feof;
>           ^
>
> /opt/intel/compiler70/ia32/include/cstdio(46): error: the global scope has
> no "fclose"
>   using ::clearerr; using ::fclose; using ::feof;
>                             ^
>
> /opt/intel/compiler70/ia32/include/cstdio(46): error: the global scope has
> no "feof"
>   using ::clearerr; using ::fclose; using ::feof;
>                                             ^
>
> /opt/intel/compiler70/ia32/include/cstdio(47): error: the global scope has
> no "ferror"
>   using ::ferror; using ::fflush; using ::fgetc;
>           ^
>
> /opt/intel/compiler70/ia32/include/cstdio(47): error: the global scope has
> no "fflush"
>   using ::ferror; using ::fflush; using ::fgetc;
>                           ^
>
> /opt/intel/compiler70/ia32/include/cstdio(47): error: the global scope has
> no "fgetc"
>   using ::ferror; using ::fflush; using ::fgetc;
>                                           ^
>
> /opt/intel/compiler70/ia32/include/cstdio(48): error: the global scope has
> no "fgetpos"
>   using ::fgetpos; using ::fgets; using ::fopen;
>           ^
>
> /opt/intel/compiler70/ia32/include/cstdio(48): error: the global scope has
> no "fgets"
>   using ::fgetpos; using ::fgets; using ::fopen;
>                            ^
>
> /opt/intel/compiler70/ia32/include/cstdio(48): error: the global scope has
> no "fopen"
>   using ::fgetpos; using ::fgets; using ::fopen;
>                                           ^
>
> /opt/intel/compiler70/ia32/include/cstdio(49): error: the global scope has
> no "fprintf"
>   using ::fprintf; using ::fputc; using ::fputs;
>           ^
>
> /opt/intel/compiler70/ia32/include/cstdio(49): error: the global scope has
> no "fputc"
>   using ::fprintf; using ::fputc; using ::fputs;
>                            ^
>
> /opt/intel/compiler70/ia32/include/cstdio(49): error: the global scope has
> no "fputs"
>   using ::fprintf; using ::fputc; using ::fputs;
>                                           ^
>
> /opt/intel/compiler70/ia32/include/cstdio(50): error: the global scope has
> no "fread"
>   using ::fread; using ::freopen; using ::fscanf;
>           ^
>
> /opt/intel/compiler70/ia32/include/cstdio(50): error: the global scope has
> no "freopen"
>   using ::fread; using ::freopen; using ::fscanf;
>                          ^
>
> /opt/intel/compiler70/ia32/include/cstdio(50): error: the global scope has
> no "fscanf"
>   using ::fread; using ::freopen; using ::fscanf;
>                                           ^
>
> /opt/intel/compiler70/ia32/include/cstdio(51): error: the global scope has
> no "fseek"
>   using ::fseek; using ::fsetpos; using ::ftell;
>           ^
>
> /opt/intel/compiler70/ia32/include/cstdio(51): error: the global scope has
> no "fsetpos"
>   using ::fseek; using ::fsetpos; using ::ftell;
>                          ^
>
> /opt/intel/compiler70/ia32/include/cstdio(51): error: the global scope has
> no "ftell"
>   using ::fseek; using ::fsetpos; using ::ftell;
>                                           ^
>
> /opt/intel/compiler70/ia32/include/cstdio(52): error: the global scope has
> no "fwrite"
>   using ::fwrite; using ::getc; using ::getchar;
>           ^
>
> /opt/intel/compiler70/ia32/include/cstdio(52): error: the global scope has
> no "getc"
>   using ::fwrite; using ::getc; using ::getchar;
>                           ^
>
> /opt/intel/compiler70/ia32/include/cstdio(52): error: the global scope has
> no "getchar"
>   using ::fwrite; using ::getc; using ::getchar;
>                                         ^
>
> /opt/intel/compiler70/ia32/include/cstdio(53): error: the global scope has
> no "gets"
>   using ::gets; using ::perror;
>           ^
>
> /opt/intel/compiler70/ia32/include/cstdio(53): error: the global scope has
> no "perror"
>   using ::gets; using ::perror;
>                         ^
>
> /opt/intel/compiler70/ia32/include/cstdio(54): error: the global scope has
> no "putc"
>   using ::putc; using ::putchar;
>           ^
>
> /opt/intel/compiler70/ia32/include/cstdio(54): error: the global scope has
> no "putchar"
>   using ::putc; using ::putchar;
>                         ^
>
> /opt/intel/compiler70/ia32/include/cstdio(55): error: the global scope has
> no "printf"
>   using ::printf; using ::puts; using ::remove;
>           ^
>
> /opt/intel/compiler70/ia32/include/cstdio(55): error: the global scope has
> no "puts"
>   using ::printf; using ::puts; using ::remove;
>                           ^
>
> /opt/intel/compiler70/ia32/include/cstdio(56): error: the global scope has
> no "rename"
>   using ::rename; using ::rewind; using ::scanf;
>           ^
>
> /opt/intel/compiler70/ia32/include/cstdio(56): error: the global scope has
> no "rewind"
>   using ::rename; using ::rewind; using ::scanf;
>                           ^
>
> /opt/intel/compiler70/ia32/include/cstdio(56): error: the global scope has
> no "scanf"
>   using ::rename; using ::rewind; using ::scanf;
>                                           ^
>
> /opt/intel/compiler70/ia32/include/cstdio(57): error: the global scope has
> no "setbuf"
>   using ::setbuf; using ::setvbuf; using ::sprintf;
>           ^
>
> /opt/intel/compiler70/ia32/include/cstdio(57): error: the global scope has
> no "setvbuf"
>   using ::setbuf; using ::setvbuf; using ::sprintf;
>                           ^
>
> /opt/intel/compiler70/ia32/include/cstdio(57): error: the global scope has
> no "sprintf"
>   using ::setbuf; using ::setvbuf; using ::sprintf;
>                                            ^
>
> /opt/intel/compiler70/ia32/include/cstdio(58): error: the global scope has
> no "sscanf"
>   using ::sscanf; using ::tmpfile; using ::tmpnam;
>           ^
>
> /opt/intel/compiler70/ia32/include/cstdio(58): error: the global scope has
> no "tmpfile"
>   using ::sscanf; using ::tmpfile; using ::tmpnam;
>                           ^
>
> /opt/intel/compiler70/ia32/include/cstdio(58): error: the global scope has
> no "tmpnam"
>   using ::sscanf; using ::tmpfile; using ::tmpnam;
>                                            ^
>
> /opt/intel/compiler70/ia32/include/cstdio(59): error: the global scope has
> no "ungetc"
>   using ::ungetc; using ::vfprintf; using ::vprintf;
>           ^
>
> /opt/intel/compiler70/ia32/include/cstdio(59): error: the global scope has
> no "vfprintf"
>   using ::ungetc; using ::vfprintf; using ::vprintf;
>                           ^
>
> /opt/intel/compiler70/ia32/include/cstdio(59): error: the global scope has
> no "vprintf"
>   using ::ungetc; using ::vfprintf; using ::vprintf;
>                                             ^
>
> /opt/intel/compiler70/ia32/include/cstdio(60): error: the global scope has
> no "vsprintf"
>   using ::vsprintf;
>           ^
>
> /opt/intel/compiler70/ia32/include/cstdlib(19): error: identifier "labs" is
> undefined
>         return (labs(_Left));
>                 ^
>
> /opt/intel/compiler70/ia32/include/cstdlib(24): error: identifier "ldiv" is
> undefined
>         return (ldiv(_Left, _Right));
>                 ^
>
> /opt/intel/compiler70/ia32/include/cstdlib(30): error: the global scope has
> no "abort"
>   using ::abort; using ::abs; using ::atexit;
>           ^
>
> /opt/intel/compiler70/ia32/include/cstdlib(30): error: the global scope has
> no "abs"
>   using ::abort; using ::abs; using ::atexit;
>                          ^
>
> /opt/intel/compiler70/ia32/include/cstdlib(30): error: the global scope has
> no "atexit"
>   using ::abort; using ::abs; using ::atexit;
>                                       ^
>
> /opt/intel/compiler70/ia32/include/cstdlib(31): error: the global scope has
> no "atof"
>   using ::atof; using ::atoi; using ::atol;
>           ^
>
> /opt/intel/compiler70/ia32/include/cstdlib(31): error: the global scope has
> no "atoi"
>   using ::atof; using ::atoi; using ::atol;
>                         ^
>
> /opt/intel/compiler70/ia32/include/cstdlib(31): error: the global scope has
> no "atol"
>   using ::atof; using ::atoi; using ::atol;
>                                       ^
>
> /opt/intel/compiler70/ia32/include/cstdlib(32): error: the global scope has
> no "bsearch"
>   using ::bsearch; using ::calloc; using ::div;
>           ^
>
> /opt/intel/compiler70/ia32/include/cstdlib(32): error: the global scope has
> no "calloc"
>   using ::bsearch; using ::calloc; using ::div;
>                            ^
>
> /opt/intel/compiler70/ia32/include/cstdlib(32): error: the global scope has
> no "div"
>   using ::bsearch; using ::calloc; using ::div;
>                                            ^
>
> /opt/intel/compiler70/ia32/include/cstdlib(33): error: the global scope has
> no "exit"
>   using ::exit; using ::free; using ::getenv;
>           ^
>
> /opt/intel/compiler70/ia32/include/cstdlib(33): error: the global scope has
> no "free"
>   using ::exit; using ::free; using ::getenv;
>                         ^
>
> /opt/intel/compiler70/ia32/include/cstdlib(33): error: the global scope has
> no "getenv"
>   using ::exit; using ::free; using ::getenv;
>                                       ^
>
> /opt/intel/compiler70/ia32/include/cstdlib(34): error: the global scope has
> no "labs"
>   using ::labs; using ::ldiv; using ::malloc;
>           ^
>
> /opt/intel/compiler70/ia32/include/cstdlib(34): error: the global scope has
> no "ldiv"
>   using ::labs; using ::ldiv; using ::malloc;
>                         ^
>
> /opt/intel/compiler70/ia32/include/cstdlib(34): error: the global scope has
> no "malloc"
>   using ::labs; using ::ldiv; using ::malloc;
>                                       ^
>
> /opt/intel/compiler70/ia32/include/cstdlib(35): error: the global scope has
> no "mblen"
>   using ::mblen; using ::mbstowcs; using ::mbtowc;
>           ^
>
> /opt/intel/compiler70/ia32/include/cstdlib(35): error: the global scope has
> no "mbstowcs"
>   using ::mblen; using ::mbstowcs; using ::mbtowc;
>                          ^
>
> /opt/intel/compiler70/ia32/include/cstdlib(35): error: the global scope has
> no "mbtowc"
>   using ::mblen; using ::mbstowcs; using ::mbtowc;
>                                            ^
>
> /opt/intel/compiler70/ia32/include/cstdlib(36): error: the global scope has
> no "qsort"
>   using ::qsort; using ::rand; using ::realloc;
>           ^
>
> /opt/intel/compiler70/ia32/include/cstdlib(36): error: the global scope has
> no "rand"
>   using ::qsort; using ::rand; using ::realloc;
>                          ^
>
> /opt/intel/compiler70/ia32/include/cstdlib(36): error: the global scope has
> no "realloc"
>   using ::qsort; using ::rand; using ::realloc;
>                                        ^
>
> /opt/intel/compiler70/ia32/include/cstdlib(37): error: the global scope has
> no "srand"
>   using ::srand; using ::strtod; using ::strtol;
>           ^
>
> /opt/intel/compiler70/ia32/include/cstdlib(37): error: the global scope has
> no "strtod"
>   using ::srand; using ::strtod; using ::strtol;
>                          ^
>
> /opt/intel/compiler70/ia32/include/cstdlib(37): error: the global scope has
> no "strtol"
>   using ::srand; using ::strtod; using ::strtol;
>                                          ^
>
> /opt/intel/compiler70/ia32/include/cstdlib(38): error: the global scope has
> no "strtoul"
>   using ::strtoul; using ::system;
>           ^
>
> /opt/intel/compiler70/ia32/include/cstdlib(38): error: the global scope has
> no "system"
>   using ::strtoul; using ::system;
>                            ^
>
> /opt/intel/compiler70/ia32/include/cstdlib(39): error: the global scope has
> no "wcstombs"
>   using ::wcstombs; using ::wctomb;
>           ^
>
> /opt/intel/compiler70/ia32/include/cstdlib(39): error: the global scope has
> no "wctomb"
>   using ::wcstombs; using ::wctomb;
>                             ^
>
> /opt/intel/compiler70/ia32/include/cstring(16): error: the global scope has
> no "memchr"
>   using ::size_t; using ::memchr; using ::memcmp;
>                           ^
>
> compilation aborted for
> /usr/src/packages/SOURCES/VTK/Rendering/vtkAbstractMapper3D.cxx (code 4)
> make[3]: *** [vtkAbstractMapper3D.o] Fehler 4
> make[2]: *** [default_target] Fehler 2
> make[1]: *** [default_target_Rendering] Fehler 2
> make: *** [default_target] Fehler 2
>
> _______________________________________________
> This is the private VTK discussion list.
> Please keep messages on-topic. Check the FAQ at:
> <http://public.kitware.com/cgi-bin/vtkfaq> Follow this link to
> subscribe/unsubscribe:
> http://public.kitware.com/mailman/listinfo/vtkusers




More information about the vtkusers mailing list