Closed
Bug 511791
Opened 15 years ago
Closed 13 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•15 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•15 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•15 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•15 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•15 years ago
|
||
Ok, that looks reasonable, I'll have to dig a bit more to see what's going wrong here.
Reporter | ||
Comment 6•15 years ago
|
||
Thanks a lot for looking into this.
Assignee | ||
Comment 7•15 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•15 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•15 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•15 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•15 years ago
|
||
gal: any update?
Reporter | ||
Comment 12•15 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•13 years ago
|
||
Fixed as much as I could, I don't really care about this bug anymore.
Status: NEW → RESOLVED
Closed: 13 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
•