On Mon, Aug 5, 2013 at 5:24 PM, Ilya Chernykh
Hi! I have got the following message when building a package in Factory:
cc1plus: out of memory allocating 3355443200 bytes after a total of 757760 bytes
This happens only with 586, but not under x86-64 architecture where the package builds well.
What should I do?
It seems g++ doesn't have enough address space to do the build. It's either a bug somewhere, or, most likely, simply an app that needs more RAM that can be addressed on a 32-bit kernel (which is usually split 3G for userspace, 1G for kernel). Mind you, that number is 3.1G You can: 1. Take it up with upstream, maybe there's something in the source that pushes the limit of the compiler, and the issue could be worked around. 2. Remove optimization options that take up a lot of RAM, for the compilation unit in question. Linking is a stage where this usually happens, and there's an option explicitly for that in GCC. 3. Decree 586 is no longer supported Well, in all fairness, there's a fourth and fifth option, but I don't think those are viable in OBS: 4. Run a customized kernel with more RAM for userspace. I think 2+2 and 3+1 are the only options, which would preclude this, but maybe they're not. 5. Do a cross build, that is, build an 586 binary with an x86-64 kernel -- To unsubscribe, e-mail: opensuse-factory+unsubscribe@opensuse.org To contact the owner, e-mail: opensuse-factory+owner@opensuse.org