This is the mail archive of the
gcc-help@gcc.gnu.org
mailing list for the GCC project.
Re: Gcc Error
- From: Jonathan Wakely <jwakely dot gcc at gmail dot com>
- To: Thomas Dineen <tdineen at ix dot netcom dot com>
- Cc: gcc-help <gcc-help at gcc dot gnu dot org>
- Date: Sat, 22 Aug 2015 09:46:09 +0100
- Subject: Re: Gcc Error
- Authentication-results: sourceware.org; auth=none
- References: <55D81472 dot 40200 at ix dot netcom dot com>
On 22 August 2015 at 07:19, Thomas Dineen wrote:
> Gentle People:
>
> When Building a rather large project gcc produces the following error:
> "Out of memory for code representation:" See the details below.
>
> What is the best or simplest way to fix this?
>
> 1) Will using 64 bit via the -m64 flag fix this?
That tells the compiler to produce 64-bit output, it doesn't change
how much memory it has available, and is likely to use more memory to
represent the larger pointer types.
> or
> 2) I am currently building the project with single gcc call. (The slow way)
> Due to some legacy issues with GTK/Cairo and extern variables one big build
> seems to work. Would it be better to compile each .C File to a .O file and
> then
> link (Faster way).
Do you mean you've put all the code in a single file? If yes, then of
course splitting it up into smaller files will use less memory.
> 3) I am using an older gcc 3.4.6 on Solaris 10.
Good grief.
> Sun5# !ma
> make TA_Benchs
> Running Target: TA_Bench Sun
> gcc -D_REENTRANT -ggdb -w -g -c IB_TWS_API.c Read_IB_Callbacks.c
> gcc Main.c -ggdb -w IB_TWS_API.o Read_IB_Callbacks.o `pkg-config --cflags
> --libs gtk+-2.0 ` -lcurl -lm -lsocket -lnsl -ggdb -w -o TA_Bench.sun
> Assembler: Main.c
> "/var/tmp//ccVeiKcL.s", line 15324105 : Out of memory for code
> representation
> make: *** [TA_Benchs] Error 1
This error isn't even coming from GCC, it's coming from the assembler,
which is part of Solaris and not part of GCC. It's trying to assemble
a file that is at least 15 million lines long. That's probably your
problem. Try splitting Main.c into smaller files.