I am trying to compile chromium 41.0.2272.64 (64 bit) using icc on Linux. icpc --version shows
icpc (ICC) 15.0.2 20150121
Copyright (C) 1985-2015 Intel Corporation. All rights reserved.
I compile the whole thing with -ipo option on. It compiles obj/content/browser/gpu/content_browser.gpu_process_host.o as usual with the following command (some unrelated stuff is skipped, and I know that some options shown below are not supported by icc or duplicated):
icpc ... -fstack-protector --param=ssp-buffer-size=4 -pthread -fno-strict-aliasing -Wall -Wno-unused-parameter -Wno-missing-field-initializers -fvisibility=hidden -pipe -fPIC -Wno-unused-local-typedefs -pthread ... -m64 -march=x86-64 -O2 -fno-ident -fdata-sections -ffunction-sections -funwind-tables -O2 -march=native -ipo -no-prec-div -ansi-alias -parallel -fno-exceptions -fno-rtti -fno-threadsafe-statics -fvisibility-inlines-hidden -Wsign-compare -std=gnu++11 -Wno-narrowing -Wno-literal-suffix -c ../../content/browser/gpu/gpu_process_host.cc -o obj/content/browser/gpu/content_browser.gpu_process_host.o
However, when it comes to
xiar crus obj/content/libcontent_browser.a ... obj/content/browser/gpu/content_browser.gpu_process_host.o ...
it fails and show:
": internal error: ** The compiler has encountered an unexpected problem.
** Segmentation violation signal raised. **
Access violation or stack overflow. Please contact Intel Support for assistance.
It is the same if a run
xiar crus test.a obj/content/browser/gpu/content_browser.gpu_process_host.o
in which test.a is not exist. I have also tried different options of xiar but the same error occurs.
But when I remove -ipo from the parameter list of content_browser.gpu_process_host.o (but still keep -ipo for other .o files) and recompile content_browser.gpu_process_host.o, xiar runs without errors.
I think it should be a bug of icpc or xiar. Are there any solutions except removing -ipo flag? Thanks!
(PS.: I am doing aggresive optimization for chromium which may not have much effects and may even break chromium. I am doing that only for fun.)