www.delorie.com/archives/browse.cgi   search  
Mail Archives: djgpp/1996/08/07/08:48:10

Xref: news2.mv.net comp.os.msdos.djgpp:6815
From: avh AT tornado DOT be (alain.vanhentenryck)
Newsgroups: comp.os.msdos.djgpp
Subject: Please help needed for huge vectors
Date: Fri, 02 Aug 1996 18:49:47 GMT
Organization: Tornado News Processing System
Lines: 51
Message-ID: <4tvd8d$daq@tornix.tornado.be>
NNTP-Posting-Host: port3.aarschot.tornado.be
To: djgpp AT delorie DOT com
DJ-Gateway: from newsgroup comp.os.msdos.djgpp

Please is it possible to help me with submentioned program ?
I checked the FAQ200 and the online help with no results, maybe
overlooking something.

All is going well at compile time :

gcc -c -Wall -O2 err.c

But goes wrong at link time :

gcc -o err.exe err.o -lm

err.o :  could not read symbols : Bad value


When decreasing MAXLONG to 4194303 the linker accepted my program.
4194304 also seems a magic number :

4194304     = 2**22
4194304 * 4 = 2**24

and I suspect the linker not being able to handle vectors with a size
greater than 2**24 bytes.

I solved my problem with the non elegant way to declare several
vectors.
Is there another way to handle an huge array, I really need it ?
Please help.

I am using an i80486 66MHz with 8Mbytes RAM and 325Mbytes free
on the hard disk, DJGPP V2, gcc version 2.7.2 and CWSDPMI release 1
loaded with the -p switch and running windows95 restarted in dos mode.

The offending program err.c :

#define MAXLONG 4194304
int v[MAXLONG];
int i;
void main()
{
for(i=0;i<MAXLONG;i++)
{v[i]=i;}
}

Thanks in advance.

Alain Van hentenryck.
avh AT tornado DOT be



- Raw text -


  webmaster     delorie software   privacy  
  Copyright © 2019   by DJ Delorie     Updated Jul 2019