Page 1 of 1
Forum

Welcome to the Tweaking4All community forums!
When participating, please keep the Forum Rules in mind!

Topics for particular software or systems: Start your topic link with the name of the application or system.
For example “MacOS X – Your question“, or “MS Word – Your Tip or Trick“.

Please note that switching to another language when reading a post will not bring you to the same post, in Dutch, as there is no translation for that post!




Share:
Notifications
Clear all

Lazarus - macOS - ld: warning: object file xyz was built for newer macOS version (x.y) than being linked (y.z)

2 Posts
1 Users
0 Likes
1,441 Views
 Hans
(@hans)
Famed Member Admin
Joined: 11 years ago
Posts: 2630
Topic starter  

Moving around between different machines I sometimes run into Lazarus giving me warnings like these:

ld: warning: object file (/Volumes/GoogleDrive/My Drive/Projects/LazarusProjects/Tests/Test GetMntInfo/lib/aarch64-darwin/project1.o) was built for newer macOS version (11.0) than being linked (10.8)
ld: warning: object file (/Users/hans/fpcupdeluxe/fpc/units/aarch64-darwin/rtl/system.o) was built for newer macOS version (11.0) than being linked (10.8)
ld: warning: object file (/Users/hans/fpcupdeluxe/fpc/units/aarch64-darwin/rtl/lnfodwrf.o) was built for newer macOS version (11.0) than being linked (10.8)
ld: warning: object file (/Users/hans/fpcupdeluxe/fpc/units/aarch64-darwin/rtl/exeinfo.o) was built for newer macOS version (11.0) than being linked (10.8)
ld: warning: object file (/Users/hans/fpcupdeluxe/fpc/units/aarch64-darwin/rtl/strings.o) was built for newer macOS version (11.0) than being linked (10.8)

Basically saying, in this example, that an object file was build for one macOS version, yet linked against a different version.

I will not claim to be an expert, but this is how I usually fix this:

In Lazarus goes to Project - Project Options - Compiler Options - Custom Options.

In the field "Custom options", we need to at the"-WM" option which allows us to select a specific SDK.
For example: -WM12.0 will enforce the macOS 12.0 SDK.

Now do a "Clean and Build" for you project and things should be OK now.
Alternatively, I read you can add this to the fpc.cfg file as well.


   
ReplyQuote
 Hans
(@hans)
Famed Member Admin
Joined: 11 years ago
Posts: 2630
Topic starter  

Note that this trick becomes even more relevant with Sonoma, where SDK 10.9 is a minimum requirement to notarize your Lazarus applications.

This would be the error: The binary uses an SDK older than the 10.9 SDK.

You can find the error with

xcrun notarytool log  --apple-id "email" --password "pwd" --team-id "teamid" UUID

 where the info is based on what you used to submit the app for notarizing:

  • email= your AppleID email address
  • pwd = application specific password
  • teamid = team ID as found in your signing certificate
  • UUID = long-ass number you get after submitting your app

So this could look something like this:

xcrun notarytool log  --apple-id "email@example.com" --password "abgf-yuhg-zzsd-abcd" --team-id "X9F96M8JH7" 5bd49972-666f-4f80-87bc-7f8f81c62206

The JSON formatted result will look something like this:

{
  "logFormatVersion": 1,
  "jobId": "5bd49972-666f-4f80-87bc-7f8f81c62206",
  "status": "Invalid",
  "statusSummary": "Archive contains critical validation errors",
  "statusCode": 4000,
  "archiveFilename": "bananaboat-app.dmg",
  "uploadDate": "2023-10-11T09:46:26.451Z",
  "sha256": "29f68d587a2a8178e4e4caa9eccbd604c123cba89a3c1c9496412390e8601bad",
  "ticketContents": null,
  "issues": [
    {
      "severity": "error",
      "code": null,
      "path": "bananaboat-app.app/Contents/MacOS/bananaboat",
      "message": "The binary uses an SDK older than the 10.9 SDK.",
      "docUrl": "https://developer.apple.com/documentation/security/notarizing_macos_software_before_distribution/resolving_common_notarization_issues#3087723",
      "architecture": "arm64"
    }
  ]
}

   
ReplyQuote

Like what you see and you'd like to help out? 

The best way to help is of course by assisting others with their questions here in the forum, but you can also help us out in other ways:

- Do your shopping at Amazon, it will not cost you anything extra but may generate a small commission for us,
- send a cup of coffee through PayPal ($5, $10, $20, or custom amount),
- become a Patreon,
- donate BitCoin (BTC), or BitCoinCash (BCH).

Share: