This is the mail archive of the
gcc-help@gcc.gnu.org
mailing list for the GCC project.
Re: Is there heap size limitaion?
----- Original Message -----
From: Andrew Haley <aph@redhat.com>
Date: Friday, January 2, 2009 11:50 am
Subject: Re: Is there heap size limitaion?
> Anna Sidera wrote:
> >
>
> > From: Andrew Haley <aph@redhat.com>
>
> >
> >> Anna Sidera wrote:
> >>> ----- -----
> >>> From: Andrew Haley <aph@redhat.com>
>
> >>>> Anna Sidera wrote:
> >>>>> Can you tell me if there is heap size limitation in gcc? I
> use
> >> a
> >>>> server with 4 CPU and 16 BG ram. I create tables using malloc
> >> and
> >>>> the total memory I can use is a little less than 4 GB.
> >>>>
> >>>> Seems odd. What OS / architecture are you using?
> >>> I am using unix. SunOS 5.10
> >> OK, but what architecture? 32-bit or 64-bit mode?
> >>
> >> Type
> >>
> >> isainfo -v
> >>
> >> If it's 32-bit then you will be limited, obviously.
> >> If gcc is generating 32-bit executables then you will also be
> >> limited. The -m64/-m32 options control this.
>
> > isainfo -v gives the following output:
> >
> > 64-bit sparcv9 applications
> > vis2 vis
> > 32-bit sparc applications
> > vis2 vis v8plus div32 mul32
>
> So, did compiling with -m64 fix it?
>
> Andrew.
>
>
-m64 did not work. For the following program if I use -m32 the fist printf statement works but before the second one I get core dump. If I use -m64 I get core dump before the first printf.
#include <stdio.h>
#include <math.h>
#include <stdlib.h>
#include <time.h>
int main()
{
int i, j;
int **table1=malloc(10000000*sizeof(int));
int *table1_aux=(int *)malloc(10000000*100*sizeof(int));
for (i=0; i<10000000; i++) table1[i]=table1_aux+i*100;
for (i=0; i<10000000; i++) {
for (j=0; j<100; j++) {
table1[i][j]=0;
}
}
printf("table1 ok\n");
int **table2=malloc(10000000*sizeof(int));
int *table2_aux=(int *)malloc(10000000*100*sizeof(int));
for (i=0; i<10000000; i++) table2[i]=table2_aux+i*100;
for (i=0; i<10000000; i++) {
for (j=0; j<100; j++) {
table2[i][j]=0;
}
}
printf("table2 ok\n");
return 0;
}
Anna