Intel® C++ Compiler
Community support and assistance for creating C++ code that runs on platforms based on Intel® processors.
7956 Discussions

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

Sawin__Matthew
640 Views

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) 19.0.4.243 20190416 and gcc (GCC) 7.3.1 20180303 (Red Hat 7.3.1-5) from devtoolset-7

0 Kudos
1 Reply
Viet_H_Intel
Moderator
640 Views

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.

0 Kudos
Reply