[ilink32 Error] Fatal: Out of memory [Edit]

We hit a wall with our big project. ilink32.exe 6.70 (XE7) reports out of memory (compiling from IDE). Rebooting the PC used to help but no more. 

For what I read, it's decade old issue that have never been fixed. Do you have any advises how I may overcome this issue?

Is there some fixed, patched (ala IDEFixPack) ilink32.exe version?

Tried some old suggestion and use ulink, but getting +[ulink Error] Error: Invalid (self) relocation to __declspec(dllimport) extern in 'c:\program files (x86)\programming\embarcadero\studio\15.0\lib\Win32\debug\rtl.lib|System.ZLib.pas'+

ulink author says it's Embarcadero bug, there is already a QC report for it but does not seem Embarcadero have plans to fix it.

Thank you

Edited by: David Monbaron on Jan 20, 2015 8:59 AM
0
David
1/20/2015 4:59:14 PM
embarcadero.cppbuilder.ide 2180 articles. 1 followers. Follow

8 Replies
1415 Views

Similar Articles

[PageSpeed] 18

> {quote:title=David Monbaron wrote:}{quote}
> Tried some old suggestion and use ulink, but getting +[ulink Error] Error: Invalid (self) relocation to __declspec(dllimport) extern in 'c:\program files (x86)\programming\embarcadero\studio\15.0\lib\Win32\debug\rtl.lib|System.ZLib.pas'+
> 
> ulink author says it's Embarcadero bug, there is already a QC report for it but does not seem Embarcadero have plans to fix it.

When I ran into similar linker errors in the past, I would try ulink.  ulink would almost always fail for one reason or another and no amount of finagling could get it to work.  In every instance, contacting the author sometimes led to making progress, but when progress eventually stopped, the author would invariably blame the compiler ("oh, they're not producing their code correctly and ulink only works with compilers that generate correct code").  I will never try ulink again.

While I can't help with your particular problem, I always eventually found a way to get ilink32 to work.  I also agree that Embarcadero needs to put some effort into their linker.  These sorts of problems (out of memory, access violation, etc.) with the linker actually pre-date C++Builder and I don't think they have made any major changes to the linker other than adding support for each the new version of the compiler since.
0
Dennis
1/20/2015 6:58:38 PM
> {quote:title=Dennis Jones wrote:}{quote}
> > {quote:title=David Monbaron wrote:}{quote}
> > Tried some old suggestion and use ulink, but getting +[ulink Error] Error: Invalid (self) relocation to __declspec(dllimport) extern in 'c:\program files (x86)\programming\embarcadero\studio\15.0\lib\Win32\debug\rtl.lib|System.ZLib.pas'+
> > 
> > ulink author says it's Embarcadero bug, there is already a QC report for it but does not seem Embarcadero have plans to fix it.
> 
> When I ran into similar linker errors in the past, I would try ulink.  ulink would almost always fail for one reason or another and no amount of finagling could get it to work.  In every instance, contacting the author sometimes led to making progress, but when progress eventually stopped, the author would invariably blame the compiler ("oh, they're not producing their code correctly and ulink only works with compilers that generate correct code").  I will never try ulink again.
> 
> While I can't help with your particular problem, I always eventually found a way to get ilink32 to work.  I also agree that Embarcadero needs to put some effort into their linker.  These sorts of problems (out of memory, access violation, etc.) with the linker actually pre-date C++Builder and I don't think they have made any major changes to the linker other than adding support for each the new version of the compiler since.

If you encountered out of memory issue, can you please share any tips that helped you get unstuck?
0
Niki
1/21/2015 8:27:18 AM
Finally managed to fix the issue, thanks Josh Kelley post http://codeverge.com/embarcadero.cppbuilder.ide/ilink32-fatal-error-not-enough-mem/1988542

 {quote:title=Josh Kelley wrote:}
Here's the information I got from Embarcadero's tech support on dealing with ilink32 memory errors.  This relies on an undocumented -GH linker option that was added in XE3 update 2.

When you get an out of memory error, build the project from the command line with the /v:diag option:

{code}
MSBuild /p:Platform=Win32 /v:diag XXXX.cbproj
{code}

You should get an error message similar to the following:

{code}
Overrun on linker heap: code
Linker Heaps
------------
info 0x002d0000 0x0a000000
code 0x000d0000 0x00100000
data 0x00030000 0x08000000
bss 0x08000000 0x08000000
Fatal: Out of memory
{code}

The left column gives the number of bytes in use, and the right column gives the number of bytes allocated.

Then go under Project Options, C++ Linker, Additional Options and use the undocumented -GH option to increase the memory allocation for the heap that ran out of space.

In this example, the "code" heap ran out at 0x100000, so add

{code}
-GHcode=0x200000
{code}

In my own code, the tds heap was the cause, so I added

{code}
-GHtds=0xa800000
{code}

{quote}

Edited by: Niki Minkov on Jan 21, 2015 5:02 AM
0
Niki
1/21/2015 1:03:16 PM
> {quote:title=Niki Minkov wrote:}{quote}
> 
> If you encountered out of memory issue, can you please share any tips that helped you get unstuck?

There is no one way that I have found that works every time.  One of the ways I sometimes got around it was to use a newer linker (e.g. ilink 5.66 (BCB6) with BCB5 projects, or ilink 5.8 (CodeGear 2007) with BCB6 projects).  Sometimes I would re-order OBJs so they linked in a different order.  Sometimes I would use BPLs (runtime packages) instead of LIBs (statically linked libraries).  It was always a crap-shoot, but I always managed to work-around it.

Dennis
0
Dennis
1/22/2015 4:38:31 AM
On Tue, 20 Jan 2015 10:58:38 -0800, Dennis Jones <> wrote:

>When I ran into similar linker errors in the past, I would try ulink.  ulink would almost always fail for one reason or another and no amount of finagling could get it to work.  In every instance, contacting the author sometimes led to making progress, but when progress eventually stopped, the author would invariably blame the compiler ("oh, they're not producing their code correctly and ulink only works with compilers that generate correct code").  I will never try ulink again.

never experienced this kind of difficulties as ulink author always helped to overcome and workaround bcc bugs whenever I hit those in the
past. and I cannot imagine ever using any linker other than ulink. but I must admit that other than playing with bds2010 for couple of
months (and finally rejecting it) I never used ulink with anything newer than bds2007 I still use

-- 
Vladimir Ulchenko aka vavan
0
Vladimir
1/22/2015 7:02:58 AM
> {quote:title=Vladimir Ulchenko wrote:}{quote}
> On Tue, 20 Jan 2015 10:58:38 -0800, Dennis Jones <> wrote:
> 
> >When I ran into similar linker errors in the past, I would try ulink.  ulink would almost always fail for one reason or another and no amount of finagling could get it to work.  In every instance, contacting the author sometimes led to making progress, but when progress eventually stopped, the author would invariably blame the compiler ("oh, they're not producing their code correctly and ulink only works with compilers that generate correct code").  I will never try ulink again.
> 
> never experienced this kind of difficulties as ulink author always helped to overcome and workaround bcc bugs whenever I hit those in the
> past. and I cannot imagine ever using any linker other than ulink. but I must admit that other than playing with bds2010 for couple of
> months (and finally rejecting it) I never used ulink with anything newer than bds2007 I still use
> 
> -- 
> Vladimir Ulchenko aka vavan

What are your reasons to use ulink and not link32? Can you give + and - please. Want to evaluate if it worth it to spend time to try to make it work. A real downside is the way ulink project is handled. Is extremely opaque, there is not even a website for it.

(oups post was a reply to Vladimir Ulchenko

Edited by: Niki Minkov on Jan 23, 2015 4:37 AM
0
Niki
1/23/2015 12:38:34 PM
On Fri, 23 Jan 2015 04:38:34 -0800, Niki Minkov <> wrote:

>What are your reasons to use ulink and not link32? Can you give + and - please. Want to evaluate if it worth it to spend time to try to make it work. A real downside is the way ulink project is handled. Is extremely opaque, there is not even a website for it.

I've been using ilink32 until I migrated from bcb5 to bds2006 just to discover that it takes extremely long time to link my projects, not to
mention infamous sporadic fatal linker errors. switched to ulink and not only forgot about those errors (including OOM) but also got
incredible performance boost so no cons for me

given that ulink supplied with documentation and author was always willing to help whenever I needed I see no big problem in its missing
website and closed development model

-- 
Vladimir Ulchenko aka vavan
0
Vladimir
1/26/2015 1:01:01 AM
> {quote:title=Niki Minkov wrote:}{quote}
> Finally managed to fix the issue, thanks Josh Kelley post http://codeverge.com/embarcadero.cppbuilder.ide/ilink32-fatal-error-not-enough-mem/1988542
> 

Wow! I have been using BCB5 all these years and my linker heap and stack values are set in Project Options for all my projects, at 0x01000000, and I have never had any problems with "Out of memory" linker errors. Or stack overflow issues. I must be one lucky son of a gun! When I devised these, I tried setting them even higher, but the linker wouldn't have it. These are the maximum values I could set in BCB5. I remember being flagrant like that with the stack and heap options in Blinker for Clipper too! Ju
st give it stick! It's just memory, after all, and there's acres of that in modern PCs!
--
Mark Jacobs
www.dkcomputing.co.uk
0
Mark
2/13/2015 2:41:38 PM
Reply:

Similar Artilces:

[ilink32 Error] Fatal: Out of memory
We hit a wall with our big project. ilink32.exe 6.70 (XE7) reports out of memory (compiling from IDE). Rebooting the PC used to help but no more. For what I read, it's decade old issue that have never been fixed. Do you have any advises how I may overcome this issue? Is there some fixed, patched (ala IDEFixPack) ilink32.exe version? Tried some old suggestion and use ulink, but getting +italics+ [ulink Error] Error: Invalid (self) relocation to __declspec(dllimport) extern in 'c:\program files (x86)\programming\embarcadero\studio\15.0\lib\Win32\debug\rtl.lib|System.ZLib.pas...

ilink32 fatal error not enough memory
Hi I'm using c++ builder xe4. My project is a vcl application which compiles fine but raise an ilink32 fatal error (not enough memory) at final linking stage. In the old days (BCB6) I had already hit a ilink32 limitation with big projects. Does anybody know if there's still such limitation in XE4 ? Or best, does anybody know which parameter to tweek or any workaround ? Thank you. <eric britz> wrote in message news:658464@forums.embarcadero.com... > > Does anybody know if there's still such limitation in XE4 ? Yes. It's still a problem for some peo...

[ILINK32 Error] Fatal: Exceeded memory limit for block SegRelocs in module
CG2007,latest release. This is a fairly large project. I get this error in debug builds but not in Release builds. I am not including CodeGuard. I'm sure there's a Linker setting but for the life of me, I can find no SegRelocs. Any suggestions. > {quote:title=charles leggette wrote:}{quote} > Any suggestions. Hi Charles, I sent you a PM so please be sure to check there. Regards, Lee what's a PM and where do I find it [sorry to be so dumb!].... "Lee Cantey" wrote in message news:58714@forums.codegear.com... >> {quote:title=charles leggett...

[ilink32 Error] Fatal: Unable to open file Types.obj [Edit]
After doing some work, this error started showing up. I don't know what I did to cause it, other then change some library paths, that were lost during the upgrade from xe2 to xe3. Anybody know how to get around it? This has been addressed elsewhere in the forum, by Remy Lebeau (TeamB) {code} You have two choices: 1) Go into the Project Options and make sure "System" is included in the "Unit scope names" list. 2) change the code to refer to "System.Types" instead of "Types". {code} My project is cbuilder, I'm not sure how System.T...

[ILINK32 Error] Fatal: Exceeded memory limit for block OBJ symbols in modul
Hi all, I get the above error when linking my program with a large dll containing the vcl and a number of third-party components. I'm using CB2009 with ILINK32 version 5.96. Can I somehow control the various limts the linker uses? I saw on the net that TLINK32 had some cfg/ini file that made this possible but I haven't been able to do the same with the linker in CB2009. When I set "Build with runtime packages" everything works but I would like to avoid using this setting since I have to distribute/install more fi les on my users computers. Can I selectively decide which p...

[ILINK32 Error] Fatal: Exceeded memory limit for block Line number cache
I am using C++ Builder XE (RAD Studio XE Enterprise). I am compiling a program with a lot of included files and I got this error message: [ILINK32 Error] Fatal: Exceeded memory limit for block Line number cache in module 'program_name' I increased windows cache memory but this did not fix the problem. Is there an option I can set in the compiler and/or linker to fix it? ...

[ILINK32 Error] Fatal: Unable to open file 'C.TYP' [Edit]
Hello. This is a rather strange problem in C++Builder 2009. I've found a partial workaround but no any clue of what's going on. After creating a project for a DLL in C++, I explicitly include a static .lib coded in plain C. Well, the DLL compiles and links fine "most of the time". The problem arises when I include some declarations in the functions exported by the .lib and used by the DLL, like a simple: +FILE *fp;+ or just defining in certain *.c source files an empty function like: +int empty(const char *param) { }+ So it seems to me that it has nothing...

[ilink32 Error] Fatal: Unable to open file 'DATA.DB.OBJ' [Edit]
I am receiving the error message in the title when I am attempting to compile a 32 bit console application that I am converting from XE to XE3. The project file was created from scratch since I have had issues with using project files from previous versions. I am guessing that the IDE is failing to add a .lib or .bpi file. I can add the file by hand, but I don't know what or where to add it. I have seen this problem mentioned several times in the forums, but none of the solutions given have fixed my issues. I am using XE3 Update 2 under Windows 7 64 bit Pro. Problem solved by ad...

[ILINK32 Error] Fatal: Unable to open file 'ENCDDECD.OBJ' (2009 up to XE3) [Edit]
Hi all, I've created a Delphi unit using routines from ENCDDECD.pas, a standard RTL file. Then I built this new unit and generated all C++ builder files (.obj and .hpp), using the command line compiler. When trying to use this unit (the generated obj file) inside a new C++ Builder application I get the following error: [ILINK32 Error] Fatal: Unable to open file 'ENCDDECD.OBJ' (in C++ Builder 2009 or 2010) or [ILINK32 Error] Fatal: Unable to open file 'SOAP.ENCDDECD.OBJ' (in C++ Builder XE2/XE3) Once this also happens in C++ 2009, this is not related t...

[ILINK32 Error] Fatal: Could not open <file>.tds (project already open in IDE?) in a vmWare shared folder
I've installed C++ Builder 2010 into an vmWare virtual machine and given access to the code via a shared folder. This way I maintain my system relatively clean and I avoid installing and installing Builder each time I reinstall my host Windows. However it seems the linker is not capable to create/find the TDS file across the vmware shared folders. I've been playing with the Directories and Conditionals but no combination seems work. Mapping the shared folder does not work. A workaround is to share the host folder and then map that share as a normal unit, but ...

ILINK32 Fatal Error
Dear All; to my CtrlF9 the IDE responds with "[ILINK32 Error] Fatal: Could not open Debug\Project1.exe (program still running?)" pressing CtrlF9 again produces: "[ILINK32 Error] Fatal: Could not open Debug\Project1.exe (error code 5)" puzzled... this is BCB12 (aka BS2009) on W7U.32. Is 2009 compatible with Win7? ...

[Linker Fatal Error] Fatal: Exceeded memory limit for block Line number ...
Hi Forum members, Iam getting the below error after compiling my CPP project inside the BDS 2006 IDE. I dont get any error during compile time. So only during linking it tells the below error: [Linker Fatal Error] Fatal: Exceeded memory limit for block Line number cache in module <my_path>/DrawingBoard.cpp In the above error <my_path> is just a place holder that replaces the actual absolute path on my machine where exactly the file "DrawingBoard.cpp" resides. Now I have following queries: 1) Is this linker fatal error anyway related to the source file "...

[Fatal error] Out of memory
Hi, My system as follows, delphi 7 pro, Centrino 2 Ghz, 1.5 GB ram. I have more than 600 projects on the form. Than the above error message when I compile my project came to my face. What do you suggest? Huseyin BAHADIR wrote: > Hi, > My system as follows, delphi 7 pro, Centrino 2 Ghz, 1.5 GB ram. I > have more than 600 projects on the form. Than the above error message > when I compile my project came to my face. What do you suggest? Do you mean: 600 *forms* in one project? The other way around makes no sense. If you have not tried that yet, close the IDE, start it...

Web resources about - [ilink32 Error] Fatal: Out of memory [Edit] - embarcadero.cppbuilder.ide

Command-Line Utilities Index
Show: Delphi C++ Display Preferences Command-Line Utilities Index From RAD Studio Jump to: navigation , search Go Up to C++ Reference C++Builder ...

Unsupported Tools - Andy's Blog and Tools
Andy's Blog and Tools Delphi, C++Builder and other thoughts Skip to content Home IDE Tools DDevExtensions 2.6 IDE Fix Pack 5.1 IDE Fix Pack 2007 ...

Resources last updated: 1/14/2016 12:29:48 PM