Thread overview
Linker crash
Apr 20, 2007
Ed
Apr 20, 2007
Ed
Apr 20, 2007
Walter Bright
Apr 20, 2007
Ed
Apr 21, 2007
Walter Bright
Apr 21, 2007
Ed
Apr 23, 2007
Walter Bright
April 20, 2007
Hi,

I am using the latest version but also previous versions produce the following error message:

  Unexpected OPTLINK termination at EIP=4000F982

The status line shows the module LIB/USER32.LIB

The library is from 2 january 2006 and 70,144 Kb

Any idea?

Ed

April 20, 2007
Found the trouble maker, it happens when you define a table > 1 million entries, for instance:

#define EOC_MAX	 1000000
static unsigned int hkw [EOC_MAX];

Now raise EOC_MAX to 2 million and the linker crashes.

Hoping for a solution....

Ed



== Quote from Ed (matador@home.nl)'s article
> Hi,
> I am using the latest version but also previous versions produce
> the following error message:
>   Unexpected OPTLINK termination at EIP=4000F982
> The status line shows the module LIB/USER32.LIB
> The library is from 2 january 2006 and 70,144 Kb
> Any idea?
> Ed

April 20, 2007
Ed wrote:
> Found the trouble maker, it happens when you define a table > 1
> million entries, for instance:
> 
> #define EOC_MAX	 1000000
> static unsigned int hkw [EOC_MAX];
> 
> Now raise EOC_MAX to 2 million and the linker crashes.
> 
> Hoping for a solution....

The easiest solution is to new() the array, rather than statically allocate it.
April 20, 2007
How to "new()" is new to me, can you explain Walter?

Ed


== Quote from Walter Bright (newshound1@digitalmars.com)'s article
> Ed wrote:
> > Found the trouble maker, it happens when you define a table > 1 million entries, for instance:
> >
> > #define EOC_MAX	 1000000
> > static unsigned int hkw [EOC_MAX];
> >
> > Now raise EOC_MAX to 2 million and the linker crashes.
> >
> > Hoping for a solution....
> The easiest solution is to new() the array, rather than statically
> allocate it.

April 21, 2007
new() is C++. If you're using C, you can use malloc() instead.

Ed wrote:
> How to "new()" is new to me, can you explain Walter?
> 
> Ed
> 
> 
> == Quote from Walter Bright (newshound1@digitalmars.com)'s article
>> Ed wrote:
>>> Found the trouble maker, it happens when you define a table > 1
>>> million entries, for instance:
>>>
>>> #define EOC_MAX	 1000000
>>> static unsigned int hkw [EOC_MAX];
>>>
>>> Now raise EOC_MAX to 2 million and the linker crashes.
>>>
>>> Hoping for a solution....
>> The easiest solution is to new() the array, rather than statically
>> allocate it.
> 
April 21, 2007
Ok, will find my way around. But, are you going to fix the linker problem? I mean, compiling with DOSX no such problems do occur.

Thx again for excellent support & compiler.

Ed (ex Zortech user)



> new() is C++. If you're using C, you can use malloc() instead.
> Ed wrote:

> > How to "new()" is new to me, can you explain Walter?
> >
> > Ed



> >> Ed wrote:
> >>> Found the trouble maker, it happens when you define a table >
1
> >>> million entries, for instance:
> >>>
> >>> #define EOC_MAX	 1000000
> >>> static unsigned int hkw [EOC_MAX];
> >>>
> >>> Now raise EOC_MAX to 2 million and the linker crashes.
> >>>
> >>> Hoping for a solution....
> >> The easiest solution is to new() the array, rather than
statically
> >> allocate it.


April 23, 2007
Ed wrote:
> Ok, will find my way around. But, are you going to fix the linker
> problem? I mean, compiling with DOSX no such problems do occur.
> 
> Thx again for excellent support & compiler.
> 
> Ed (ex Zortech user)

It won't be fixed in the near future.