you must disable ipo option. icc can't pass --hugetlbfs-align option to libhugetlbfs ld when use object files.
icc -ggdb -gdwarf-3 -c RegExp.c
icc RegExp.o -o RegExp.static -no-ipo -ggdb -gdwarf-3 -B/usr/share/libhugetlbfs/ -Wl,--hugetlbfs-align
Single source file example:
icc RegExp.c -o RegExp -ggdb -gdwarf-3 -B/usr/share/libhugetlbfs/ -Wl,--hugetlbfs-align -lippch
Is there now a version of icc which allows compiling/linking with '-B/usr/share/libhugetlbfs/ -Wl,--hugetlbfs-align' w/o requiring that I disable inter-procedural optimization with '-no-ipo'?
For several years, linux distributions have implemented transparent huge pages, which often is superior to working with hugetlbfs, as well as happening automatically. On an application I worked on recently, this produces a 25% performance improvement on a Nehalem test platform. The next-page hardware prefetch introduced in Haswell CPUs should reduce the importance of hugetlb.