Error using FNC units

Hello

When I create a new Delphi multi-device application and add FMX.TMSFNCCloudStorage to the interface uses clause of the main form, I get the following build error when compiling for iOS Device 64-bit:

[DCC Fatal Error] F2588 Linker error code: 3221226505 ($c0000409)

Windows, Android 32, Android 64, and MacOS targets build successfully.

I tried adding a few other FNC files (FMX.TMSFNCCloudBase, FMX.TMSFNCCloudDropBox, FMX.TMSFNCCloudGoogleDrive) and the result is the same. I can build and run iOS applications on an Apple device when I don't add any FNC files.

I'm running Delphi 10.4 Version 27.0.38860.1461 with Update 1 on Windows 10.0 Build 19041 64-bit. I'm compiling against a Mac Mini running macOS 11.2.1 Big Sur, Xcode Version 12.4 (12D4e). I'm using TMS FNC Core 2.4.2.1 and TMS FNC Cloud Pack1.3.0.1. This error did not occur until I upgraded the Mac to Big Sur.

Is my environment compliant with TMS FNC Cloud Pack? If so, what do I have to do to be able to use the TMS FNC code?

Thanks

Did you remove and re-add a new macOS SDK? If the issue persists, please contact Embarcadero, because this issue might be related to 10.4 not being compatible with Big Sur.

Yes, I removed and re-added the macOS SDK. As I mentioned, I am able to build apps with my setup for iOS just as long as I don't try to use files from FNC. Therefore it doesn't look like a 10.4 incompatibility with Big Sur, but a TMS FNC incompatibility with Big Sur.

We are linking against other frameworks necessary for FNC, so it could be possible that one of those frameworks is throwing a linker error because of incompatiblities with the linker inside RAD Studio 10.4. Do you have additional errors in the output window? Such as which framework is the reason for the linker error or is it just a linker error?

There is not much other information on the error. No missing framework or undefined symbol, etc.

The Build Window shows this:

[DCC Fatal Error] F2588 Linker error code: 3221226505 ($c0000409)

The Output window shows this:

c:\program files (x86)\embarcadero\studio\21.0\Bin\CodeGear.Delphi.Targets(402,5): error F2588: F2588 Linker error code: 3221226505 ($c0000409)

c0000409 could indicate a Stack Buffer Overrun.

There is not much other information on the error. No missing framework or undefined symbol, etc.

The Build Window shows this:

[DCC Fatal Error] F2588 Linker error code: 3221226505 ($c0000409)

The Output window shows this:

c:\program files (x86)\embarcadero\studio\21.0\Bin\CodeGear.Delphi.Targets(402,5): error F2588: F2588 Linker error code: 3221226505 ($c0000409)

c0000409 could indicate a Stack Buffer Overrun.
That's all I've got.

The lack of additional information caused it to take me a long time to pin the error down to the FNC files. And even though I know Aurelius is a completely different body of code, it didn't help that Aurelius has continued to build correctly.

Hi,

We'll further investigate this here as soon as possible.

Hi,

We have completely setup the environment:

  • XCode 12.4
  • macOS Big Sur 11.2.1
  • Embarcadero® RAD Studio 10.4 Version 27.0.38860.1461 (update 1)
  • iOS 14.4 SDK (added WebKit.framework & SafariServices.framework in the IDE)

New project with FNC units does not throw a linker error. Everything compiles and links just fine.

That's great to know. Thank you for taking the time to check out my issue. I really appreciate it.

My work is cut out for me now.

We have been in contact with Embarcadero and they are internally checking if they have encountered the error. It is still unclear why this error occurs, but perhaps you can remove the iOS SDK and re-add it? They also mentioned testing the beta 10.4.2 to see if the issue is resolved. 10.4.2 is already close to RTM, so they are not accepting beta testers anymore unfortunately, but perhaps you already have access to it and can test it if you wish. I know that setting up an environment like that can take a significant amount of time and resources, but for now we are not able to reproduce it. It could potentially be a something specific to your environment.

I've already removed and re-added the iOS SDK a couple of times. That hasn't helped. I'm not a beta tester and don't know if I have access to 10.4.2 but I doubt it. I'm a team of 1 so I begrudge the time I spend looking for my own bugs, much less someone else's, and this one has taken quite a bit of my time already.

For now, I'm going to assume there's a problem with my setup and do all I can to find it. If in the meantime Embarcadero finds the problem, so much the better. But I can't afford to sit around with my fingers crossed.

Again, I appreciate your continued support. I would never have come up with a plan of action I believe in if you had not demonstrated that your code is not the problem. You are just proving, over and over again, that going with TMS is the right decision.