Hello, Ilya!
You wrote to "Andrey V. Malyshev" on Mon, 24 Nov 2003 02:46:45 +0300:
ID>>> Угу. Как-то пробовал пересобрать что-то с помощью icc. Так он накидал
ID>>> кучу ошибок и вывалился... вот так он "поддерживает" стандарты.
AVM>> А ты уверен, что то, на чем он спотыкался, было стандартом, а не
AVM>> gcc-расширениями ? :)
ID> gcc-расширения?
ID> Расскажи подробней, плиз.
Насчет частичной поддержки GNU- (gcc) - C/С++ - language
extentions написано в анонсе и документации к интеловому
компилятору.
==================
http://www.intel.com/software/products/compilers/clin/clinux.htm:
==================
Substantial GNU C/C++ compatibility features:
The Intel C++ Compiler 7.1 for Linux is substantially source and object
code compatible with GNU C. Version 7.1 of the compiler has added
more gcc extensions support, that ease the porting of applications with
the Intel compiler.
==================
ftp://download.intel.com/software/products/compilers/techtopics/LinuxCompilersCompatibility702.pdf:
==================
The Intel C++ 7.0 compiler supports the ANSI C and C++ standards and has
greatly improved support for the GNU C language extensions. As a result, we
are able to build the Linux kernel with fewer work-arounds for both the
IA-32 and Itanium processor architectures compared to earlier releases of
the Intel Compilers.
==================
The Intel C++ compiler supports the ANSI C and C++ standards. In addition,
some of the GNU C language extensions are supported. The extensions are
documented in the gcc manual, available at http://gcc.gnu.org. Table 1 shows
the supported extensions for the Intel C++ Compiler 5.0, 6.0 and 7.0
versions, and highlights improvements in source compatibility. Not all C
extensions are supported when compiling C++ source files.
==================
The gcc C++ language extensions are documented in the gcc manual. Currently,
the following are known GNU C++ source language compatibility limitations:
- Minimum and maximum operators
- Declarations and definitions in one header
- Where's the template?
- Extracting the function pointer from a bound pointer to member function
- C++-Specific Variable, Function, and Type Attributes
==================
Several of the GNU gcc C language header files, part of the GNU C library
glibc, use gcc C language extensions that are not currently supported by the
Intel C++ compiler.
Modified versions of these headers are redistributed in the substitute
headers package installed with the Intel C++ Compiler 7.0 for Linux.
==================
И так далее. Последний документ весьма подробно жует тему совместимости и
проблемы сборки линуксового кода, вплоть до инструкций по сборке линуксового
ядра и таблички с перечислением этих extensions и версий icc, в которых они
поддерживаются/не поддерживаются.
А про сами расширения - http://gcc.gnu.org/onlinedocs/gcc/C-Extensions.html,
и
http://gcc.gnu.org/onlinedocs/gcc/C---Extensions.html#C++%20Extensions,
например.
AVM>> Что касается оптимальности... не скажу про все задачи, но те
AVM>> числогрызки (массивы, циклы и FP-действия в большом количестве на
AVM>> чистом с), которые я пробовал, после сборки интелом с ключами макс.
AVM>> оптимизации работали в 1.2-1.3 раз резвее, чем gcc... доходило и до
AVM>> полутора. Hа gcc, естественно, тоже включал максимум оптимизации.
ID> Возможно это потому, что у тебя был процессор от Intel.
ID> Hа AMD, например, это было бы не так заметно.
Да, процессор был Pentium III (Coppermine).
--
With best regards, Andrey V. Malyshev. E-mail: ***@ksc.krasn.ru
Отправлено через сервер Форумы@mail.ru - http://talk.mail.ru