Closed
Bug 511791
Opened 16 years ago
Closed 14 years ago
configure and PGO fail with ICC
Categories
(Firefox Build System :: General, defect)
Tracking
(Not tracked)
RESOLVED
FIXED
mozilla1.9.3a1
People
(Reporter: gal, Assigned: ted)
References
Details
Attachments
(2 files)
934 bytes,
patch
|
benjamin
:
review+
|
Details | Diff | Splinter Review |
754 bytes,
patch
|
Callek
:
review+
|
Details | Diff | Splinter Review |
Our ICC use is still completely hosed when it comes to PGO.
When specifying MOZ_PROFILE_GENERATE=1, we pass -fprofile-generate, which is gcc-speak. ICC wants -prof-gen.
Also, configure fails with icc:
checking for a sizeof (void *)-byte type... int
checking for the size of void*... 4
checking for the alignment of void*... configure: error: No alignment found for void*
I really would like to see a concrete log of a successful ICC build with PGO before this bug is closed.
Assignee | ||
Comment 1•16 years ago
|
||
We have a test for ICC:
http://mxr.mozilla.org/mozilla-central/source/configure.in#445
but maybe they broke it in a newer version?
Reporter | ||
Comment 2•16 years ago
|
||
I have never been able to build properly with any version of ICC and our makefile. I used to use a hacked version of Makefile.ref.
Assignee | ||
Comment 3•16 years ago
|
||
I used ICC 10.something to build Spidermonkey successfully, but that was somewhere before Firefox 3.0 shipped, IIRC. If you run that command that configure is running, `icc -help`, what output does it print?
Reporter | ||
Comment 4•16 years ago
|
||
Intel(R) C++ Compiler Help
==========================
usage: icc [options] file1 [file2 ...]
icpc [options] file1 [file2 ...]
where options represents zero or more compiler options
fileN is a C/C++ source (.C .c .cc .cpp .cxx .c++ .i .ii),
assembly (.s .S), object (.o), static library (.a), or other
linkable file
The icpc command uses the same compiler options as the icc
command. Invoking the compiler using icpc compiles .c and .i files
as C++. Invoking the compiler using icc compiles .c and .i files as
C. Using icpc always links in C++ libraries. Using icc only
links in C++ libraries if C++ source is provided on the command line.
Commonly used options may be placed in the icc .cfg file.
Some options listed are only available on a specific system
i32 indicates the feature is available on systems based on IA-32
architecture
i64em indicates the feature is available on systems using Intel(R) 64
architecture
Compiler Option List
--------------------
Optimization
------------
-O1 optimize for maximum speed, but disable some optimizations which
increase code size for a small speed benefit
-O2 optimize for maximum speed (DEFAULT)
-O3 optimize for maximum speed and enable more aggressive optimizations
that may not improve performance on some programs
-O same as -O2
-Os enable speed optimizations, but disable some optimizations which
increase code size for small speed benefit
-O0 disable optimizations
-fast enable -xHOST -O3 -ipo -no-prec-div -mdynamic-no-pic
options set by -fast cannot be overridden with the exception of
-xHOST, list options separately to change behavior
-fno-alias
assume no aliasing in program
-fno-fnalias
assume no aliasing within functions, but assume aliasing across calls
-f[no-]builtin
disable inline expansion of intrinsic functions
-fno-builtin-<func>
disable the <func> intrinsic
-ffunction-sections
separate functions for the linker (COMDAT)
-fdata-sections
same as -ffunction-sections
-nolib-inline
disable inline expansion of intrinsic functions
Code Generation
---------------
-x<code1>[,<code2>,...]
generate specialized code to run exclusively on processors
indicated by <code> as described below
Host generate instructions for the highest instruction set and
processor available on the compilation host machine
SSE3 Intel(R) Core(TM) processor family with Streaming SIMD
Extensions 3 (SSE3) instruction support
SSE3_ATOM Can generate MOVBE instructions for Intel processors and
can optimize for the Intel(R) Atom(TM) Processor and
Intel(R) Centrino(R) Atom(TM) Processor Technology
Extensions 3 (SSE3) instruction support
SSSE3 Intel(R) Core(TM)2 processor family with SSSE3
SSE4.1 Future Intel processors supporting SSE4 Vectorizing
Compiler and Media Accelerator instructions
SSE4.2 Can generate Intel(R) SSE4 Efficient Accelerated String
and Text Processing instructions supported by Intel(R)
Core(TM) i7 processors. Can generate Intel(R) SSE4
Vectorizing Compiler and Media Accelerator, Intel(R) SSSE3,
SSE3, SSE2, and SSE instructions and it can optimize for
the Intel(R) Core(TM) processor family.
-ax<code1>[,<code2>,...]
generate code specialized for processors specified by <codes>
while also generating generic IA-32 instructions.
<codes> includes one or more of the following:
SSE3 Intel(R) Core(TM) processor family with Streaming SIMD
Extensions 3 (SSE3) instruction support
SSSE3 Intel(R) Core(TM)2 processor family with SSSE3
SSE4.1 Future Intel processors supporting SSE4 Vectorizing
Compiler and Media Accelerator instructions
SSE4.2 Can generate Intel(R) SSE4 Efficient Accelerated String
and Text Processing instructions supported by Intel(R)
Core(TM) i7 processors. Can generate Intel(R) SSE4
Vectorizing Compiler and Media Accelerator, Intel(R) SSSE3,
SSE3, SSE2, and SSE instructions and it can optimize for
the Intel(R) Core(TM) processor family.
-mcpu=<cpu>
same as -mtune=<cpu>
-mtune=<cpu>
optimize for a specific <cpu>
pentium3 - optimize for Pentium(R) III processors
pentium4 - optimize for Pentium(R) 4 processor (DEFAULT)
-march=<cpu>
generate code exclusively for a given <cpu>
pentium3 - streaming SIMD extensions
pentium4 - Pentium(R) 4 New Instructions
-msse3 generate code for Intel(R) Core(TM) Duo processors, Intel(R) Core(TM)
Solo processors, Intel Pentium 4 and compatible Intel processors with
Streaming SIMD Extensions 3 (SSE3) instruction support
-mssse3 Intel(R) Core(TM)2 processor family with SSSE3
-msse4.1 Future Intel processors supporting SSE4 Vectorizing Compiler and
Media Accelerator instructions
-minstruction=<keyword>
Refine instruction set output for the selected target processor
nomovbe - Do not generate MOVBE instructions with SSE3_ATOM
-f[no-]omit-frame-pointer
enable(DEFAULT)/disable use of EBP as general purpose register.
-fno-omit-frame-pointer replaces -fp
-f[no-]exceptions
enable/disable(DEFAULT) C++ exception handling table generation
-fnon-call-exceptions
enable/disable(DEFAULT) code that allows exceptions from trapping
instructions to be caught
Interprocedural Optimization (IPO)
----------------------------------
-[no-]ip enable(DEFAULT)/disable single-file IP optimization
within files
-ipo[n] enable multi-file IP optimization between files
-ipo-c generate a multi-file object file (ipo_out.o)
-ipo-S generate a multi-file assembly file (ipo_out.S)
-ip-no-inlining
disable full and partial inlining
-ip-no-pinlining
disable partial inlining
-ipo-separate
create one object file for every source file (overrides -ipo[n])
-ipo-jobs<n>
specify the number of jobs to be executed simultaneously during the
IPO link phase
Advanced Optimizations
----------------------
-unroll[n]
set maximum number of times to unroll loops. Omit n to use default
heuristics. Use n=0 to disable the loop unroller
-unroll-aggressive
enables more aggressive unrolling heuristics
-funroll-loops
unroll loops based on default heuristics
-[no-]scalar-rep
enable(DEFAULT)/disable scalar replacement (requires -O3)
-[no-]ansi-alias
enable/disable(DEFAULT) use of ANSI aliasing rules optimizations;
user asserts that the program adheres to these rules
-[no-]complex-limited-range
enable/disable(DEFAULT) the use of the basic algebraic expansions of
some complex arithmetic operations. This can allow for some
performance improvement in programs which use a lot of complex
arithmetic at the loss of some exponent range.
-[no-]alias-const
enable/disable(DEFAULT) a heuristic stating that if two arguments to
a function have pointer type, a pointer to const does not alias a
pointer to non-const. Also known as the input/output buffer rule, it
assumes that input and output buffer arguments do not overlap.
-fargument-alias
arguments may alias each other and may alias global storage
-fargument-noalias
arguments do not alias each other but may alias global storage
-fargument-noalias-global
arguments do not alias each other and do not alias global storage
-ftls-model=<model>
change thread-local storage model, where <model> can be the
following: global-dynamic, local-dynamic, initial-exec or local-exec
-[no-]opt-multi-version-aggressive
enables more aggressive multi-versioning to check for pointer
aliasing and scalar replacement
-opt-ra-region-strategy[=<keyword>]
select the method that the register allocator uses to partition each
routine into regions
routine - one region per routine
block - one region per block
trace - one region per trace
loop - one region per loop
default - compiler selects best option
-[no-]vec
enables(DEFAULT)/disables vectorization
-[no-]vec-guard-write
enables cache/bandwidth optimization for stores under conditionals
within vector loops
-opt-jump-tables=<arg>
control the generation of jump tables
default - let the compiler decide when a jump table, a series of
if-then-else constructs or a combination is generated
large - generate jump tables up to a certain pre-defined size
(64K entries)
<n> - generate jump tables up to <n> in size
use -no-opt-jump-tables to lower switch statements as chains of
if-then-else constructs
-fno-jump-tables
do not generate jump tables for switches and if-then-else statements
-opt-block-factor=<n>
specify blocking factor for loop blocking
-ffreestanding
compile in a freestanding environment where the standard library
may not be present
-opt-streaming-stores <arg>
specifies whether streaming stores are generated
always - enables generation of streaming stores under the
assumption that the application is memory bound
auto - compiler decides when streaming stores are used (DEFAULT)
never - disables generation of streaming stores
-[no-]opt-subscript-in-range
assumes no overflows in the intermediate computation of the
subscripts
Profile Guided Optimization (PGO)
---------------------------------
-prof-dir <dir>
specify directory for profiling output files (*.dyn and *.dpi)
-prof-src-root <dir>
specify project root directory for application source files to
enable relative path resolution during profile feedback on sources
below that directory
-prof-src-root-cwd
specify the current directory as the project root directory for
application source files to enable relative path resolution during
profile feedback on sources below that directory
-no-prof-src-dir
specify that the directory names of sources should not be
considered when looking up profile records within the .dpi file
-prof-file <file>
specify file name for profiling summary file
-prof-gen[x]
instrument program for profiling; with the x qualifier, extra
information is gathered for use with the PROFORDER tool
-no-prof-gen
disable profiling instrumentation
-prof-use[=<arg>]
enable use of profiling information during optimization
weighted - invokes profmerge with -weighted option to scale data
based on run durations
[no]merge - enable(default)/disable the invocation of the profmerge
tool
-no-prof-use
disable use of profiling information during optimization
-[no-]opt-prefetch
enable/disable(DEFAULT) prefetch insertion
-p compile and link for function profiling with UNIX gprof tool
-f[no-]instrument-functions
determine whether function entry and exit points are instrumented
-prof-hotness-threshold=<val>
set the hotness threshold for function grouping and function ordering
Optimization Reports
--------------------
-vec-report[n]
control amount of vectorizer diagnostic information
n=0 no diagnostic information
n=1 indicate vectorized loops (DEFAULT)
n=2 indicate vectorized/non-vectorized loops
n=3 indicate vectorized/non-vectorized loops and prohibiting
data dependence information
n=4 indicate non-vectorized loops
n=5 indicate non-vectorized loops and prohibiting data
dependence information
-opt-report [n]
generate an optimization report to stderr
0 disable optimization report output
1 minimum report output
2 medium output (DEFAULT when enabled)
3 maximum report output
-opt-report-file=<file>
specify the filename for the generated report
-opt-report-phase=<phase>
specify the phase that reports are generated against
-opt-report-routine=<name>
reports on routines containing the given name
-opt-report-help
display the optimization phases available for reporting
OpenMP*
-------
-openmp enable the compiler to generate multi-threaded code based on the
OpenMP* directives
-openmp-profile
enable analysis of OpenMP application when the Intel(R) Thread
Profiler is installed
-openmp-stubs
enables the user to compile OpenMP programs in sequential mode. The
OpenMP directives are ignored and a stub OpenMP library is linked
(sequential)
-openmp-report{0|1|2}
control the OpenMP parallelizer diagnostic level
-openmp-lib <ver>
choose which OpenMP library version to link with
compat - use the GNU compatible OpenMP run-time libraries
(DEFAULT)
-openmp-task <arg>
choose which OpenMP tasking model to support
omp - support OpenMP 3.0 tasking (DEFAULT)
intel - support Intel taskqueuing
-openmp-threadprivate <ver>
choose which threadprivate implementation to use
compat - use the GNU compatible thread local storage
legacy - use the Intel compatible implementation
(DEFAULT)
Parallel Processing
-------------------
-parallel
enable the auto-parallelizer to generate multi-threaded code for
loops that can be safely executed in parallel
-par-report{0|1|2|3}
control the auto-parallelizer diagnostic level
-par-threshold[n]
set threshold for the auto-parallelization of loops where n is an
integer from 0 to 100
-par-runtime-control
enable compiler to generate runtime control code for effective
automatic parallelization
Floating Point
--------------
-fp-model <name>
enable <name> floating point model variation
[no-]except - enable/disable floating point semantics
fast[=1|2] - enables more aggressive floating point optimizations
precise - allows value-safe optimizations
source - enables intermediates in source precision
strict - enables -fp-model precise -fp-model except, disables
contractions and enables pragma stdc fenv_access
double - rounds intermediates in 53-bit (double) precision
extended - rounds intermediates in 64-bit (extended) precision
-fp-speculation=<mode>
enable floating point speculations with the following <mode>
conditions:
fast - speculate floating point operations (DEFAULT)
safe - speculate only when safe
strict - same as off
off - disables speculation of floating-point operations
-pc32 set internal FPU precision to 24 bit significand
-pc64 set internal FPU precision to 53 bit significand
-pc80 set internal FPU precision to 64 bit significand (DEFAULT)
-mp1 improve floating-point precision (speed impact less than -mp)
-[no-]ieee-fp
same as -mp
-[no-]prec-sqrt
determine if certain square root optimizations are enabled
-[no-]prec-div
improve precision of FP divides (some speed impact)
-[no-]fast-transcendentals
generate a faster version of the transcendental functions
-[no-]fp-port
round fp results at assignments and casts (some speed impact)
-fp-stack-check
enable fp stack checking after every function/procedure call
-rcd rounding mode to enable fast float-to-int conversions
-[no-]ftz
enable/disable flush denormal results to zero
Inlining
--------
-inline-level=<n>
control inline expansion:
n=0 disable inlining
n=1 inline functions declared with __inline, and perform C++
inlining
n=2 inline any function, at the compiler's discretion
(same as -ip)
-f[no-]inline
inline functions declared with __inline, and perform C++ inlining
-f[no-]inline-functions
inline any function at the compiler's discretion
-finline-limit=<n>
set maximum number of statements a function can have and still be
considered for inlining
-inline-min-size=<n>
set size limit for inlining small routines
-no-inline-min-size
no size limit for inlining small routines
-inline-max-size=<n>
set size limit for inlining large routines
-no-inline-max-size
no size limit for inlining large routines
-inline-max-total-size=<n>
maximum increase in size for inline function expansion
-no-inline-max-total-size
no size limit for inline function expansion
-inline-max-per-routine=<n>
maximum number of inline instances in any function
-no-inline-max-per-routine
no maximum number of inline instances in any function
-inline-max-per-compile=<n>
maximum number of inline instances in the current compilation
-no-inline-max-per-compile
no maximum number of inline instances in the current compilation
-inline-factor=<n>
set inlining upper limits by n percentage
-no-inline-factor
do not set set inlining upper limits
-inline-forceinline
treat inline routines as forceinline
-inline-calloc
directs the compiler to inline calloc() calls as malloc()/memset()
Output, Debug, PCH
------------------
-c compile to object (.o) only, do not link
-S compile to assembly (.s) only, do not link
-fsource-asm
produce assembly file with optional source annotations (requires -S)
-f[no-]verbose-asm
produce assembly file with compiler comments (DEFAULT) (requires -S)
-fcode-asm
produce assembly file with optional code annotations (requires -S)
-use-msasm
support Microsoft* style assembly language insertion using MASM style
syntax
-fasm-blocks
enables the use of blocks and entire functions of assembly code
within a C or C++ file
-o <file>
name output file
-g produce symbolic debug information in object file (implies -O0 when
another optimization option is not explicitly set)
-debug [keyword]
enable debug information and control output of enhanced debug
information
keywords: all, full, minimal, none, [no]inline-debug-info
[no]variable-locations, [no]semantic-stepping,
extended, parallel
[no]expr-source-pos
-g0 disable generation of symbolic debug information
-gdwarf-2
enable generation of debug information using the DWARF2 format
-ftrapuv trap uninitialized variables
-print-multi-lib
print information about libraries being used
-pch-create <file>
create precompiled header file
-pch-use <file>
use precompiled header file
-pch enable automatic precompiled header file creation/usage
-pch-dir <dir>
name precompiled header directory
Preprocessor
------------
-A<name>[<val>]
create an assertion <name> having value <val>
-C do not strip comments
-D<name>[=<text>]
define macro
-U<name> remove predefined macro
-E preprocess to stdout
-EP preprocess to stdout, omitting #line directives
-P preprocess to file, omitting #line directives
-I<dir> add directory to include file search path
-idirafter<dir>
add directory to the second include file search path (after -I)
-isystem<dir>
add directory to the start of the system include path
-X, -nostdinc
remove standard directories from include file search path
-nostdinc++
remove standard C++ directories from include file search path
-iprefix <prefix>
use <prefix> with -iwithprefix as a prefix
-iwithprefix <dir>
append <dir> to the prefix passed in by -iprefix and put it on the
include search path at the end of the include directories
-iwithprefixbefore <dir>
similar to -iwithprefix except the include directory is placed in the
same place as -I command line include directories
-iquote <dir>
add directory to the front of the include file search path for files
included with quotes, but not brackets
-imacros <file>
treat <file> as an #include file, but throw away all preprocessing
while macros defined remain defined
-H print include file order
-B<prefix>
find libraries, headers and executables in <prefix>
-M generate makefile dependency information
-MM similar to -M, but do not include system header files
-MG similar to -M, but treat missing header files as generated files
-MD preprocess and compile, generating output file containing dependency
information ending with extension .d
-MMD similar to -MD, but do not include system header files
-MF<file>
generate makefile dependency information in file (must specify -M
or -MM)
-MP add a phony target for each dependency
-MT<target>
change the default target rule for dependency generation
-MQ<target>
same as -MT, but quotes special Make characters
-dM output macro definitions in effect after preprocessing (use with -E)
-dD same as -dM, but output #define directives in preprocessed source
-dN same as -dD, but #define directives contain only macro names
-gcc Predefine the 4, 0, and 1
macros (DEFAULT)
-no-gcc Do not predefine GNUC macros listed in -gcc mode. Warning: can
prevent correct system header compilation, see -gcc-sys
-gcc-sys same as -no-gcc, except that the GNU macros are defined only while
preprocessing the system include headers
-no-icc do not predefine the 9999 and 9999 macros. Warning: can
prevent correct Intel header compilation
-pragma-optimization-level=[Intel|GCC]
process #pragma optimize using Intel (DEFAULT) or GCC syntax
Component Control
-----------------
-Qoption,<tool>,<opts>
pass options <opts> to tool specified by <tool>
-Qlocation,<tool>,<dir>
set <dir> as the location of tool specified by <tool>
-Qinstall <dir>
set <dir> as root of compiler installation
Language
--------
-std=<std>
enable language support for <std>, as described below
c99 enable C99 support for C programs
c++0x enable preliminary support for some C++0x features
-x <type>
all source files found subsequent to -x <type> will be recognized
as one of the following types:
c - C source file
c++ - C++ source file
c-header - C header file
cpp-output - C pre-processed file
c++-cpp-output - C++ pre-processed file
assembler - assembly file
assembler-with-cpp - assembly file that needs to be preprocessed
none - revert to original file extension
-ansi equivalent to GNU -ansi
-strict-ansi
strict ANSI conformance dialect
-Zp[n] specify alignment constraint for structures where
n=1,2,4,8,16. 16 is the default
-fsyntax-only
perform syntax and semantic checking only (no object file produced)
-fpermissive
allows extensions for some non-conformant code
-funsigned-char
change default char type to unsigned
-fshort-enums
allocate as many bytes as needed for enumerated types
-f[no-]unsigned-bitfields
change default bitfield type to unsigned
-fno-rtti
disable RTTI support
-fno-implicit-templates
never emit code for non-inline templates which are instantiated
implicitly; only emit code for explicit instantiations
-fno-implicit-inline-templates
do not emit code for implicit instantiations of inline templates
-ftemplate-depth-[n]
control the depth in which recursive templates are expanded
-[no]align
analyze and reorder memory layout for variables and arrays
-[no-]restrict
enable/disable the 'restrict' keyword for disambiguating pointers
-[no-]early-template-check
enable/disable (DEFAULT) semantic checking of function template
prototypes (before instantiation). Requires -gcc-version=340 or
later
-[no-]check-uninit
check for uninitialized variables
-export enable the export template feature
-export-dir <dir>
add directory to export template search path
-help-pragma
output supported pragmas and their usage syntax
Compiler Diagnostics
--------------------
-w disable all warnings
-w<n> control diagnostics
n = 0 display errors (same as -w)
n = 1 display warnings and errors (DEFAULT)
n = 2 display remarks, warnings and errors
-Wbrief print brief one-line diagnostics
-Werror force warnings to be reported as errors
-Werror-all
force warnings and remarks to be reported as errors
-Wall enable all warnings
-Wcheck enable more strict diagnostics
-Weffc++ enable effective C++ diagnostic warnings
-wo<L1>[,<L2>,...]
issue diagnostics L1 through LN only once
-W[no-]fatal-errors
ends compilation after the first error encountered
-W[no-]format
enable argument checking for calls to printf, scanf, etc
-W[no-]format-security
warn for uses of format strings and specifiers in printf,
scanf, etc that may introduce security problems
-W[no-]missing-declarations
warn for global functions and variables without prior declaration
-W[no-]missing-prototypes
warn for missing prototypes
-W[no-]strict-prototypes
warn for functions declared or defined without specified argument
types
-W[no-]pointer-arith
warn for questionable pointer arithmetic
-W[no-]uninitialized
warn if a variable is used before being initialized
-Winline enable inline diagnostics
-W[no-]deprecated
print warnings related to deprecated features
-W[no-]abi
warn if generated code is not C++ ABI compliant
-Wcontext-limit=<n>
set maximum number of template instantiation contexts shown in
diagnostic
-Wcast-qual
warn if cast is used to override pointer type qualifier
-W[no-]unused-function
warn if declared function is not used
-W[no-]unknown-pragmas
warn if an unknown #pragma directive is used (DEFAULT)
-W[no-]main
warn if return type of main is not expected
-W[no-]comment[s]
warn when comment
-W[no-]conversion
warn for implicit conversions that may alter a value
-W[no-]return-type
warn when a function uses the default int return type and warn when
a return statement is used in a void function
-W[no-]extra-tokens
warn about extra tokens after prepreprocessor directives
-W[no-]pragma-once
warn about the use of #pragma once
-W[no-]shadow
warn when a variable declaration hides a previous declaration
-Woverloaded-virtual
warn when a function declaration hides virtual functions from a base
class
-W[no-]trigraphs
warn about the recognition and conversion of trigraphs
-W[no-]multichar
warn if a multicharacter constant ('ABC') is used
-W[no-]overflow
warn for operations that could result in integer overflow
-Wp64 print diagnostics for 64-bit porting
-W[no-]shorten-64-to-32
warn for values implicitly converted from a 64-bit to a 32-bit type.
Similar to -Wp64
-[no]traceback
specify whether the compiler generates data to allow for source file
traceback information at runtime (only to be used when linking with
Fortran programs)
-noerror-limit
set no maximum number on error-level or fatal-level error messages
-diag-enable <v1>[,<v2>,...]
enable the specified diagnostics or diagnostic groups
-diag-disable <v1>[,<v2>,...]
disable the specified diagnostics or diagnostic groups
where groups include:
thread - enable diagnostics to aid in thread-enabling source
port-win - enable diagnostics for GNU extensions that may
cause errors when porting to Windows
-diag-error <v1>[,<v2>,...]
output the specified diagnostics or diagnostic groups as errors
-diag-warning <v1>[,<v2>,...]
output the specified diagnostics or diagnostic groups as warnings
-diag-remark <v1>[,<v2>,...]
output the the specified diagnostics or diagnostic groups as remarks
-diag-dump
display the currently enabled diagnostic messages to stdout or to a
specified diagnostic output file.
-diag-file[=<file>]
<file> where diagnostics are emitted to. Not specifying this causes
messages to be output to stderr
-diag-file-append[=<file>]
<file> where diagnostics are emitted to. When <file> already exists,
output is appended to the file
-[no-]diag-id-numbers
enable(DEFAULT)/disable the diagnostic specifiers to be output in
numeric form
-diag-error-limit <num>
specify the maximum number of errors emitted
-diag-once <v1>[,<v2>,...]
issue diagnostics v1 through vN only once
Miscellaneous
-------------
-V display compiler version information
-dumpversion
display the compiler version number only
-dumpmachine
display the target machine only
--version
display GCC style version information
-save-temps
store the intermediate files in current directory and name them
based on the source file. Only saves files that are generated by
default
-dryrun show driver tool commands but do not execute tools
-v show driver tool commands and execute tools
[no-]multibyte-chars
provide support for multi-byte characters
-multiple-processes[=<n>]
create multiple processes that can be used to compile large numbers
of source files at the same time
Data
----
-Zp[n] specify alignment constraint for structures (n=1,2,4,8,16
-Zp16 DEFAULT)
-[no]align
analyze and reorder memory layout for variables and arrays
-fminshared
Compilation is for the main executable. Absolute addressing can be
used and non-position independent code generated for symbols that
are at least protected
-fcommon Enables the compiler to treat common variables as if they were
defined. That in turn allows the use of gprel addressing of common
data variables. -fno-common disables
-freg-struct-return
return struct and union values in registers when possible
-fstack-security-check
enable overflow security checks.
-f[no-]stack-security-check disables (DEFAULT)
-fstack-protector
enable stack overflow security checks.
-f[no-]stack-protector disables (DEFAULT)
-fpic, -fPIC
generate position independent code (-fno-pic/-fno-PIC is DEFAULT)
-mdynamic-no-pic
Disables the generation of position independent code. Use when
compiling code that will be linked into an executable and not a
shared library
-auto-ilp32
specify that the application cannot exceed a 32-bit address space
(-ipo[n] required)
-[no-]global-hoist
enable(DEFAULT)/disable external globals are load safe
-f[no-]keep-static-consts
enable/disable(DEFAULT) emission of static const variables even
when not referenced
-fpack-struct
pack structure members together
-f[no-]math-errno
set ERRNO after calling standard math library functions
-no-bss-init
disable placement of zero-initialized variables in BSS (use DATA)
-mcmodel=<size>
use a specific memory model to generate code and store data
small - Restricts code and data to the first 2GB of address
space (DEFAULT)
medium - Restricts code to the first 2GB; it places no memory
restriction on data
large - Places no memory restriction on code or data
-falign-functions=[2|16]
align the start of functions on a 2 (DEFAULT) or 16 byte boundary
-falign-functions
align the start of functions to an optimal machine-dependent value.
-fno-align-functions (DEFAULT) aligns on a 2-byte boundary
-fvisibility=[extern|default|protected|hidden|internal]
Global symbols (data and functions) will get the visibility
attribute given by default. Symbol visibility attributes explicitly
set in the source code or using the symbol visibility attribute
file options will override the -fvisibility setting
-fvisibility-extern=<file>
Space separated symbols listed in the <file> argument will geti
visibility set to extern
-fvisibility-default=<file>
Space separated symbols listed in the <file> argument will get
visibility set to default
-fvisibility-protected=<file>
Space separated symbols listed in the <file> argument will get
visibility set to protected
-fvisibility-hidden=<file>
Space separated symbols listed in the <file> argument will get
visibility set to hidden
-fvisibility-internal=<file>
Space separated symbols listed in the <file> argument will get
visibility set to internal
-fvisibility-inlines-hidden
mark inline member functions as hidden
Compatibility
-------------
-gcc-name=<name>
name and location of gcc if not where expected
-gxx-name=<name>
name and location of g++ if not where expected
-gcc-version=<version>
specify the <version> of gcc compatibility. Default value matches
gcc version installed. Major/Minor versions listed but patch
levels (i.e. 345) are permissible
320 - gcc 3.2.x compatibility
330 - gcc 3.3.x compatibility
340 - gcc 3.4.x compatibility
400 - gcc 4.0.x compatibility
410 - gcc 4.1.x compatibility
420 - gcc 4.2.x compatibility
-fabi-version=<val>
directs the compiler to select a specific ABI implementation
0 - most recent ABI implementation
1 - g++ 3.2 compatible ABI implementation
2 - most conformant ABI implementation
Linking/Linker
--------------
-L<dir> instruct linker to search <dir> for libraries
-l<string>
instruct the linker to link in the -l<string> library
-shared-intel
link Intel provided libraries dynamically
-static-intel
link Intel provided libraries statically
-shared-libgcc
link libgcc dynamically
-static-libgcc
link libgcc statically
-dynamic-linker<file>
select dynamic linker other than the default
-no-cxxlib
do not link in C++ runtime libraries
-cxxlib[=dir]
link using C++ run-time libraries provided with gcc dir is an
optional top-level location for the gcc binaries and libraries
-nodefaultlibs
do not use standard libraries when linking
-nostartfiles
do not use standard startup files when linking
-nostdlib
do not use standard libraries and startup files when linking
-dynamiclib
produce a dynamic library
-staticlib
produce a static library
-pthread use POSIX* thread library for multithreading support
-cxxlib-<mode>
tell the compiler which C++ run-time libraries to use
nostd - do not link in standard C++ library
-u <symbol>
pretend the <symbol> is undefined
-T <file>
direct linker to read link commands from <file>
-Xlinker <val>
pass <val> directly to the linker for processing
-Wa,<o1>[,<o2>,...]
pass options o1, o2, etc. to the assembler
-Wl,<o1>[,<o2>,...]
pass options o1, o2, etc. to the linker for processing
-Wp,<o1>[,<o2>,...]
pass options o1, o2, etc. to the preprocessor
Deprecated Options
------------------
-Ob use -inline-level=<n>
-cxxlib-gcc[=dir] use -cxxlib[=dir]
-fwritable-strings use -assume nowriteable-strings
-i-dynamic use -shared-intel
-i-static use -static-intel
-inline-debug-info use -debug inline-debug-info
-mp use -fp-model <arg>
-use-asm No replacement
-A- use -U<arg>
-prefetch use -opt-prefetch
-prof-genx use -prof-gen=srcpos
-openmp-lib=legacy use -openmp-lib=compat
-alias-args use -fargument-alias
-c99 use -std=c99
-create-pch use -pch-create
-Kc++ use -x c++
-no-alias-args use -fargument-noalias
-use-pch use -pch-use
-wn use -diag-error-limit
-wd use -diag-disable
-we use -diag-error
-ww use -diag-warning
-wr use -diag-remark
-wo use -diag-once
-help [category] print full or category help message
Valid categories include
advanced - Advanced Optimizations
codegen - Code Generation
compatibility - Compatibility
component - Component Control
data - Data
deprecated - Deprecated Options
diagnostics - Compiler Diagnostics
float - Floating Point
help - Help
inline - Inlining
ipo - Interprocedural Optimization (IPO)
language - Language
link - Linking/Linker
misc - Miscellaneous
parallel - Parallel Processing
opt - Optimization
output - Output
pgo - Profile Guided Optimization (PGO)
preproc - Preprocessor
reports - Optimization Reports
openmp - OpenMP
Copyright (C) 1985-2008, Intel Corporation. All rights reserved.
* Other brands and names are the property of their respective owners.
Assignee | ||
Comment 5•16 years ago
|
||
Ok, that looks reasonable, I'll have to dig a bit more to see what's going wrong here.
Reporter | ||
Comment 6•16 years ago
|
||
Thanks a lot for looking into this.
Assignee | ||
Comment 7•16 years ago
|
||
Ok, figured out the first bit of this, anyway. We're testing the output of icc for "Intel(R) C Compiler" and it's now producing "Intel(R) C++ Compiler". Silly.
Assignee: nobody → ted.mielczarek
Assignee | ||
Comment 8•16 years ago
|
||
This is probably not sufficient, but this is step 1, which will fix configure so it detects icc properly and sets INTEL_CC.
Attachment #396332 -
Flags: review?(benjamin)
Comment 9•16 years ago
|
||
Comment on attachment 396332 [details] [diff] [review]
step 1: fix configure
[Checkin: Comment 10]
ugh. This seems incredibly fragile.
Attachment #396332 -
Flags: review?(benjamin) → review+
Assignee | ||
Comment 10•16 years ago
|
||
I agree, but I don't know a better way. :-(
Pushed this fix to m-c:
http://hg.mozilla.org/mozilla-central/rev/cadcc06ff89f
gal, give this a shot and let me know how far you get.
Assignee | ||
Comment 11•16 years ago
|
||
gal: any update?
Reporter | ||
Comment 12•16 years ago
|
||
testing today
Updated•15 years ago
|
Flags: in-testsuite-
Target Milestone: --- → mozilla1.9.3a1
Comment 13•15 years ago
|
||
Attachment #428621 -
Flags: review?(bugspam.Callek)
Updated•15 years ago
|
Attachment #428621 -
Flags: review?(bugspam.Callek) → review+
Comment 14•15 years ago
|
||
Comment on attachment 428621 [details] [diff] [review]
(Bv1-CC) Copy 'step 1' patch to comm-central (1.9.2+)
[Checkin: Comment 14]
http://hg.mozilla.org/comm-central/rev/d117bccfc590
Attachment #428621 -
Attachment description: (Bv1-CC) Copy 'step 1' patch to comm-central (1.9.2+) → (Bv1-CC) Copy 'step 1' patch to comm-central (1.9.2+)
[Checkin: Comment 14]
Updated•15 years ago
|
Attachment #396332 -
Attachment description: step 1: fix configure → step 1: fix configure
[Checkin: Comment 10]
Updated•15 years ago
|
Blocks: C192ConfSync
Assignee | ||
Comment 15•14 years ago
|
||
Fixed as much as I could, I don't really care about this bug anymore.
Status: NEW → RESOLVED
Closed: 14 years ago
Resolution: --- → FIXED
Updated•7 years ago
|
Product: Core → Firefox Build System
You need to log in
before you can comment on or make changes to this bug.
Description
•