[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Bug-gnuzilla] Compiling Icecat-24

From: Michał Masłowski
Subject: Re: [Bug-gnuzilla] Compiling Icecat-24
Date: Sat, 13 Sep 2014 08:22:56 +0200
User-agent: Gnus/5.13 (Gnus v5.13) Emacs/24.3 (gnu/linux)

> Hi, when compiling Icecat-24 I have four times done
> './configure' successfully
> but always failed at the end of 'make' with error msg
> /usr/bin/ld: final link failed: Memory exhausted
> My system has 3.1 Gb memory and I have tried to minimise
> memory load. 

It's a 32-bit system?  The problem is amount of virtual memory, not RAM,
assuming you have several gigabytes of swap.

Possible solutions:

- cross compile on a 64-bit system with more memory/swap

- compile with -Wl,--reduce-memory-overheads and/or
  -Wl,--no-keep-memory: makes linking slower, but might fit in memory
  (there are also some other options that reduce resource usage at cost
  of the built binary's speed)

- compile with the -g0 option, disable debug symbols: will make the
  resulting build impossible to debug, but will vastly reduce its size

You can easily find what compiler flags are used by the Icecat build
system.  Looking for values like -O2 or -g in scripts and makefiles
should help; I think it didn't trust the user-supplied options.

I had the same issue when linking WebKit with debug symbols on MIPS N32
(64-bit registers, 32-bit pointers: only 2 GiB of virtual memory).
Linking without debug symbols worked, while it wasn't useful when the
binary crashed deep in WebKit code (memory alignment issue: it enabled
alignment required by any MIPS on O32 only).  With the above linker
flags and debug symbols, linking took 17 minutes (1 GiB of RAM, a
gigabyte of swap used), while it worked.  I think Icecat enables debug
symbols by default.

Attachment: pgpr48Rc4PUdG.pgp
Description: PGP signature

reply via email to

[Prev in Thread] Current Thread [Next in Thread]