Undefined Symbol Errors in New Project With Build 10.0.0.2527

I’ve upgraded my installation of Fire to 10.0.0.2527 and now I don’t seem able to build anything.

If I create a brand new console app (C#, macOS, Island, RTL) with just a single Program.cs file and click run I get these 4 errors:

Undefined symbol: /Users/garry/Library/Application Support/RemObjects Software/EBuild/Obj/macOS-EF34C1E04DCAF947A613FAD1AB51BC59A21BB1B8/Debug/Island-Darwin/Libraries/Device-x86_64/Island.a(ExternalCalls-6069268ae2f83f7c993054596767686a.o): _memmove

Undefined symbol: /Users/garry/Library/Application Support/RemObjects Software/EBuild/Obj/macOS-EF34C1E04DCAF947A613FAD1AB51BC59A21BB1B8/Debug/Island-Darwin/Libraries/Device-x86_64/Island.a(Global-e54b3dc8c0536e29a65f8548b5ae7958.o): _strlen

Undefined symbol: /Users/garry/Library/Application Support/RemObjects Software/EBuild/Obj/macOS-EF34C1E04DCAF947A613FAD1AB51BC59A21BB1B8/Debug/Island-Darwin/Libraries/Device-x86_64/Island.a(ExternalCalls-6069268ae2f83f7c993054596767686a.o): _memcpy

Undefined symbol: /Users/garry/Library/Application Support/RemObjects Software/EBuild/Obj/macOS-EF34C1E04DCAF947A613FAD1AB51BC59A21BB1B8/Debug/Island-Darwin/Libraries/Device-x86_64/Island.a(ExternalCalls-6069268ae2f83f7c993054596767686a.o): _memset

I have Xcode installed (version 11.5). I’ve opened it and it hasn’t prompted me to install anything.

Here’s a screenshot of my Fire paths:

I’ve not changed anything about my install since I upgraded to the new build of Fire. Can anyone help so I can code this weekend?

This looks like a bug due to re-importing. We’ll investigate.

@mh is there a simple way to revert to the older rtl.fx ?

Hmm,. only the Xcode 12 SDKs were freshly imported; the Xcode 11 ones (i.e. “macOS 10.15”) should be shipping the same as did in .2525. So this has to be something else — say the changes made in Island RTL to accommodate for Xcode 12?

@Garry, to be clear, you’re linking against macOS 10.15, right?

How would I know and I’ll check?
I’m getting the same error on my existing Catalina Mac running Xcode 11.5 and I just installed Fire on a different Mac running Big Sur with the Xcode 12 beta on. Both are given the same errors

It should show in the build log, which exact versions of the SDKs it references, eg.

               -> Task PrepareToffeePlatform started for FireCoreApp, Toffee-macOS.
D:                Xcode developer folder is '/Users/mh/Applications/Xcode-12-Beta1-with-ARM.app/Contents/Developer'
                  Xcode Version is 12.0 (12A8158a), macOS Version is 10.15.5 (19F101).
D:                Supported macOS SDKs in local FXs:
D:                - macOS 11.0
D:                - macOS 10.16
D:                - macOS 10.15
D:                Supported macOS SDKs in Xcode 12.0:
D:                - macOS 11.0
                  No exact macOS SDK version was specified for target 'Toffee-macOS', using 'macOS 11.0'.
               <- Task PrepareToffeePlatform finished for FireCoreApp, Toffee-macOS, took 0.1312s (0.131s).

and later-on

                  Reference: /Users/mh/Library/Application Support/RemObjects Software/EBuild/SDKs/Toffee/macOS 11.0/AppKit.fx
                  Reference: /Users/mh/Library/Application Support/RemObjects Software/EBuild/SDKs/Toffee/macOS 11.0/CoreFoundation.fx
                  Reference: /Users/mh/Library/Application Support/RemObjects Software/EBuild/SDKs/Toffee/macOS 11.0/CoreGraphics.fx
                  Reference: /Users/mh/Library/Application Support/RemObjects Software/EBuild/SDKs/Toffee/macOS 11.0/rtl.fx
                  Reference: /Users/mh/Library/Application Support/RemObjects Software/EBuild/SDKs/Toffee/macOS 11.0/Security.fx
                  Reference: /Users/mh/Library/Application Support/RemObjects Software/EBuild/SDKs/Toffee/macOS 11.0/CoreServices.AE.fx (implicit)
                  Reference: /Users/mh/Library/Application Support/RemObjects Software/EBuild/SDKs/Toffee/macOS 11.0/CoreServices.fx (implicit)
                  Reference: /Users/mh/Library/Application Support/RemObjects Software/EBuild/SDKs/Toffee/macOS 11.0/Foundation.fx (implicit)

The said, i’ve reproduce the issue here, at least when using Xcode 12. The problem seems to be in the Island.fx/Island.a binary we shipped.

One workaround would be to grab a copy ofd the Island RTL source from github (GitHub - remobjects/IslandRTL: The base run time library for Elements' native Windows and Linux platform, code-named Island.), build it yourself against Xcode 11.5, and then reference your copy.

Glad you can reproduce it.

Not sure I know how to do that. I’ll have to wait until you guys can patch it I think.

It’s simple. Download the project, build it, go to the project folder, under Bin/macOS you should see there new Island.fx. simply drag it onto the References node of you’re project, to make it use that instead of there version we shipped (you should see a “…/” appear next to the name, to indicate that the reference has a hardcoded path, now.

Alternatively. grab the .2525 zip distro and copy there .fx and .a from there.

Turns out building it wasn’t as hard as I thought. Thanks :slight_smile:

Do I need to reference both the .a and .fx binaries?

1 Like

No, just the .fx.

1 Like

Never mind. Seems to work just dragging the .fx binary into the project references. Cool.

1 Like

Thanks, logged as bugs://84558

bugs://84558 got closed with status fixed.