Intel® C++ Compiler
Support and discussions for creating C++ code that runs on platforms based on Intel® processors.
7724 Discussions

Is there a 4GB limit for Linux static libraries using IPO?


Linking against a static library > 4GB with IPO results in the following error:

ipo: error #11062: BigLibrary.a is an archive, but has no symbols (this can happen if ar is used where xiar is needed)
icpc: error #10014: problem during multi-file optimization compilation (code 1)

The error is resolved with some refactoring to get the library under 4GB.

Is this an intrinsic limitation of the compiler or is there a workaround?

Using CentOS7 with icc (ICC) 20190416 and gcc (GCC) 7.3.1 20180303 (Red Hat 7.3.1-5) from devtoolset-7

0 Kudos
1 Reply

I discussed with a Developer and yes there is a size limit to create any static library, with IPO or not.  You can’t overrun the limit of the offset table in the archive.

IPO fake object files are generally much larger than regular objects, so overflowing the offset limit often more of a problem.

To get around, as you had, is to create a smaller library.