Jump to content
VL_Alm

ICS 8.70 VCLCB110 64 bits compile error

Recommended Posts

Hello,

I'm trying to install v8.70 on C++ Builder 11.3 update 3.

 

I use CB110InstallVclFmx group project.

With 32 bits, everything compile and components are well registered.

 

But i want to create 64 bits applications, so i tried to compile the both "Run" project with 64 bits plateform,

 

- IcsCommonCB110Run compile/link well.

 

- But IcsVclCB110Run give the following error :

[ilink64 Erreur] Fatal: Import/Export error on symbol _ZTVN19Overbyteicsavltrees10TCacheTreeE (flags:0x6004)

 

I got the same error with the latest trunk.

 

Have you any advice ?

Thank you.

 

Share this post


Link to post

Sorry, I don't do C++ so someone else will need to reproduce and fix the error, ideally within the next two weeks for the next release. 

 

Angus

 

Share this post


Link to post

Thanks for the response.

I tried with versions 868, 869, 870, same results.

The following files are well created :

OverbyteIcsAvlTrees.dcu

OverbyteIcsAvlTrees.o

OverbyteIcsAvlTrees.hpp

 

With version 867, x32 is ok, but x64 ask for multiples .o files.

 

 

 

 

 

Share this post


Link to post

OverbyteIcsAvlTrees is unchanged for 10 years, not aware any C++ users have previously reported a problem with it. 

 

It is only used in two places in ICS, for an SSL session cache in user applications, very rarely, and for the TThreadLocalStore class in WSocket which I don't believe is used by any ICS units and is undocumented and uncommented as to use. 

 

Angus

 

Share this post


Link to post

I tried to move OverbyteIcsAvlTree.pas from Common project to VclRun project and now there is the same error with file OverbyteIcsCookies.pas.

I moved the same way OverbyteIcsCookies.pas and now there is the same error with OverbyteIcsHttpMulti.pas....

 

I've done that with a dozen of files. The same error happening with v8.70 and 8.67.

 

 

The C++ Builder installation is pretty fresh, i only installed PNG Components.

 

Does anyone already used the library in a C++ 64 bits app ?

Share this post


Link to post

Looks like a compiler funny, when the same error occurs in different random units.

 

There are a lot of Win64 fixes in V8.71, mostly stability, but no C++ packages yet, about two weeks away.

 

Angus

 

Share this post


Link to post
On 5/22/2023 at 5:02 PM, VL_Alm said:

Does anyone already used the library in a C++ 64 bits app ?

I built V8.68 using 11.0, now quite a while ago.  Only run time.  I have been using it for both 32 bit and 64 bit.

 

Today I rebuilt the same code using C++ Builder 11.3 and ran into the exact same error (64 bit only)

 

*very* annoying

Did you end up finding a work around ?

Share this post


Link to post

There would only have been C++ fixes if someone else found a problem and told me, I don't write or test C++. 

 

You should try ICS v9 which is released now and report any issues, ideally with fixes.

 

Angus

 

Share this post


Link to post

Hello,

I tried with newer v9.0 but exactly same error and only with x64.

I really don't master all theses compiler options, so i tried a lot of thing but nothing works.

 

Share this post


Link to post

Can any other ICS C++ users reproduce this Win64 issue?  

 

If no-one is willing to help us support C++, I'll have to remove C++ support from ICS. 

 

Angus

 

Share this post


Link to post

I tried today with the latest content from SVN repository.

First compiled all packages for 32 bits platform and release build configuration.

The compiler complain about units to be removed because present in a required package. I accepted to remove the units and all packages now compile fine.

Then I changed platform for 64 bits and release build configuration.

Built IcsCommonCB110Run.bpl: Success.

Built IcsVclCB110Run.bpl: success.

Built IcsFmxCB110Run.bpl: Success.

Design time package must NOT be compiled as they are for the IDE and MUST be 32 bits as the IDE is a 32 bits application.

 

You reported:

Quote

 

- But IcsVclCB110Run give the following error :

[ilink64 Erreur] Fatal: Import/Export error on symbol _ZTVN19Overbyteicsavltrees10TCacheTreeE (flags:0x6004)

 

Conclusion: Can't reproduce the issue.
 

 

Share this post


Link to post
32 minutes ago, FPiette said:

Can't reproduce the issue.

 

 

Using Builder 11.3 ?
I could build the run time package with Builder 11.0 without a problem.  After I updated C++ Builder to 11.3 I built the exact same code and ran into mentioned Import/Export error.

I have not yet tried with the latest code.

Share this post


Link to post
2 hours ago, CyberPeter said:
2 hours ago, FPiette said:

Can't reproduce the issue.

Using Builder 11.3 ?

Yes: Embarcadero® C++Builder 11 Version 28.0.47991.2819

Beside ICS, no add-on nor any third party component installed. Only C-Builder personality loaded.

Running on Win11 22H2.

Share this post


Link to post
1 hour ago, FPiette said:

C++Builder 11 Version 28.0.47991.2819

Beside ICS, no add-on nor any third party component installed. Only C-Builder personality loaded.

Running on Win11 22H2.

Identical C++ Builder version

Identical Win11 22H2 OS.

 

NO add-ons whatsoever, including anything ICS.  I never install components.

 

I just downloaded the latest 9x version https://wiki.overbyte.eu/arch/icsv90-D11.zip from https://wiki.overbyte.eu/wiki/index.php/ICS_Download

 

I closed all (File / Close All) in the IDE.  A blank slate.

I opened IcsCommonCB110Run.cbproj and compiled in 32 and 64 bit mode.  No Problems whatsoever.

Again, I closed all to start fresh.

I opened IcsVclCB110Run.cbproj and compiled in 32 and 64 bit mode.  32 bit was OK, but 64 bit failed with a linker error:

 

[Linker Error] CodeGear.Cpp.Targets(3984, 5): Fatal: Import/Export error on symbol _ZTVN19Overbyteicsavltrees10TCacheTreeE (flags:0x6004)

Share this post


Link to post
1 hour ago, FPiette said:

I updated my local source code using ICS subversion repository. Try that. 

I wouldn't know where to start. 

But since this issue is present in 8x and 9x downloadable versions, why would the repository be any different, unless changes were made to explicitly address this issue.

Share this post


Link to post
1 hour ago, CyberPeter said:
2 hours ago, FPiette said:

I updated my local source code using ICS subversion repository. Try that. 

I wouldn't know where to start. 

Install Tortoise SVN which is a friendly subversion client. Then follow Go for a Test Drive. Follow the steps in "Creating a repository", then "Import a project" and "Checking out a working copy". You need ICS svn url and password that you'll find on ICS wiki at the page for ICS download. Read the section "Version Control System".

Once you have the working copy... start the work with it.

Share this post


Link to post
5 minutes ago, FPiette said:

Install ..

Before I jump through those hoops I need to know that this issue specifically has been addressed and you're merely looking for confirmation.  If nothing has changed in this regard since 8.68 (at least) then there's no point.  Happy to try the next release when it's available from the download site.

Share this post


Link to post
10 hours ago, CyberPeter said:

I need to know that this issue specifically has been addressed

I have not done anything related to your issue. When something doesn't work, always use latest source. Useless to find any bug in older code. So I have done a quick test with latest source to check your issue and everything worked as expected. I guess the issue is related to your setup.

The most probable is that you inadvertently changed some source code or some compiler/linker option.

Maybe you have chance to check on another computer (or VM), preferably one where CBuilder is not yet installed.

Edited by FPiette

Share this post


Link to post
4 hours ago, FPiette said:

When something doesn't work, always use latest source. Useless to find any bug in older code.

Sure, but since it has been showing in multiple versions for quite a while, it stands to reason the issue is still there, since no actions were taken to address it.
But if you have a downloadable file I will gladly download and try again.  So far I tested 8.69 and the latest 9.x official download from mentioned website.

 

4 hours ago, FPiette said:

 I guess the issue is related to your setup.

The most probable is that you inadvertently changed some source code or some compiler/linker option.

 

I am not the OP, I just chimed in because I also see the same problem.  What are the chances my setup happens to be corrupt just like the OP's setup ..

Only after your yesterday post François, did I download the latest from the website.  I did not make any changes to it and I did not mess with the compiler options. 

The cbproj files were simply loaded and compiled without making any changes.

 

I also mentioned I never install packages so in a way my IDE is as clean as it comes.

 

You mentioned:

22 hours ago, FPiette said:

Beside ICS, no add-on nor any third party component installed ..

 

Perhaps the fact that you have ICS installed makes a difference !

Share this post


Link to post
2 hours ago, CyberPeter said:

The cbproj files were simply loaded and compiled without making any changes

There are global settings in the IDE.

I have the "enterprise" edition. Maybe this makes a difference?

Since the issue seems related to Overbyteicsavltrees, maybe you could try to build a very simple new project project calling it?

Share this post


Link to post

Just FYI
I installed C++ Builder 12 yesterday (fresh install, no settings borrowed from earlier versions)

I built again and get the exact same error.

 

Edited by CyberPeter

Share this post


Link to post
On 10/3/2023 at 5:48 AM, FPiette said:

The compiler complain about units to be removed because present in a required package. I accepted to remove the units and all packages now compile fine.

Then I changed platform for 64 bits and release build configuration.

 

Hi All,

 

Just trying to help here.

 

I have same error message trying to compile ZeosLib version 8 with C++Builder 12.0 for Win64 platform. With Win32 I had no problem.

 

About this message complaint telling you to remove units, I would recommend to uncheck the "ICS" item into "Install Packages" dialog from "Components > Install Packages..." menu before installing your packages.

 

I think this ilink64 error is related with object files produced by Delphi Compiler and then linked with C++Builder ilink64.

Share this post


Link to post

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×