{"id":40835,"date":"2023-10-20T16:39:51","date_gmt":"2023-10-20T20:39:51","guid":{"rendered":"https:\/\/mjtsai.com\/blog\/?p=40835"},"modified":"2023-10-20T16:39:51","modified_gmt":"2023-10-20T20:39:51","slug":"an-apple-library-primer","status":"publish","type":"post","link":"https:\/\/mjtsai.com\/blog\/2023\/10\/20\/an-apple-library-primer\/","title":{"rendered":"An Apple Library Primer"},"content":{"rendered":"<p><a href=\"https:\/\/developer.apple.com\/forums\/thread\/715385\">Quinn<\/a>:<\/p>\n<blockquote cite=\"https:\/\/developer.apple.com\/forums\/thread\/715385\"><p>Apple&rsquo;s library technology has a long and glorious history, dating all the way back to the origins of Unix. This does, however, mean that it can be a bit confusing to newcomers. This is my attempt to clarify some terminology.<\/p><p>[&#8230;]<\/p><p>The linker has seen three major implementations:<\/p><ul><li><p><code>ld<\/code> &mdash; This dates from the dawn of Mac OS X.<\/p><\/li><li><p><code>ld64<\/code> &mdash; This was a rewrite started in the 2005 timeframe.  Eventually it replaced <code>ld<\/code> completely.  If you type <code>ld<\/code>, you get <code>ld64<\/code>.<\/p><\/li><li><p><code>ld_prime<\/code> &mdash; This was introduced with Xcode 15.  This isn&rsquo;t a separate tool.  Rather, <code>ld<\/code> now supports the <code>-ld_classic<\/code> and <code>-ld_new<\/code> options to select a specific implementation.<\/p><\/li><\/ul><p>[&#8230;]<\/p><p>The dynamic linker has seen 4 major revisions. See WWDC 2017 Session 413 (referenced below) for a discussion of versions 1 through 3. Version 4 is basically a merging of versions 2 and 3.<\/p><\/blockquote>\n\n<p>Previously:<\/p>\n<ul>\n<li><a href=\"https:\/\/mjtsai.com\/blog\/2023\/10\/19\/xcode-15-0-1\/\">Xcode 15.0.1<\/a><\/li>\n<\/ul>","protected":false},"excerpt":{"rendered":"<p>Quinn: Apple&rsquo;s library technology has a long and glorious history, dating all the way back to the origins of Unix. This does, however, mean that it can be a bit confusing to newcomers. This is my attempt to clarify some terminology.[&#8230;]The linker has seen three major implementations:ld &mdash; This dates from the dawn of Mac [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"apple_news_api_created_at":"2023-10-20T20:39:54Z","apple_news_api_id":"06ef9962-fd7f-4c6b-8070-feb6ed35d901","apple_news_api_modified_at":"2023-10-20T20:39:54Z","apple_news_api_revision":"AAAAAAAAAAD\/\/\/\/\/\/\/\/\/\/w==","apple_news_api_share_url":"https:\/\/apple.news\/ABu-ZYv1_TGuAcP627TXZAQ","apple_news_coverimage":0,"apple_news_coverimage_caption":"","apple_news_is_hidden":false,"apple_news_is_paid":false,"apple_news_is_preview":false,"apple_news_is_sponsored":false,"apple_news_maturity_rating":"","apple_news_metadata":"\"\"","apple_news_pullquote":"","apple_news_pullquote_position":"","apple_news_slug":"","apple_news_sections":"\"\"","apple_news_suppress_video_url":false,"apple_news_use_image_component":false,"footnotes":""},"categories":[4],"tags":[205,31,2321,30,2385,71,226],"class_list":["post-40835","post","type-post","status-publish","format-standard","hentry","category-programming-category","tag-dyld","tag-ios","tag-ios-17","tag-mac","tag-macos-14-sonoma","tag-programming","tag-xcode"],"apple_news_notices":[],"_links":{"self":[{"href":"https:\/\/mjtsai.com\/blog\/wp-json\/wp\/v2\/posts\/40835","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/mjtsai.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/mjtsai.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/mjtsai.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/mjtsai.com\/blog\/wp-json\/wp\/v2\/comments?post=40835"}],"version-history":[{"count":1,"href":"https:\/\/mjtsai.com\/blog\/wp-json\/wp\/v2\/posts\/40835\/revisions"}],"predecessor-version":[{"id":40836,"href":"https:\/\/mjtsai.com\/blog\/wp-json\/wp\/v2\/posts\/40835\/revisions\/40836"}],"wp:attachment":[{"href":"https:\/\/mjtsai.com\/blog\/wp-json\/wp\/v2\/media?parent=40835"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/mjtsai.com\/blog\/wp-json\/wp\/v2\/categories?post=40835"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/mjtsai.com\/blog\/wp-json\/wp\/v2\/tags?post=40835"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}