Skip to content

Add armv6 and Objective-C fragile runtime support#12

Open
NightwindDev wants to merge 3 commits into
inoahdev:masterfrom
NightwindDev:armv6-support
Open

Add armv6 and Objective-C fragile runtime support#12
NightwindDev wants to merge 3 commits into
inoahdev:masterfrom
NightwindDev:armv6-support

Conversation

@NightwindDev

@NightwindDev NightwindDev commented Jun 20, 2026

Copy link
Copy Markdown

This pull request aims to add armv6 support and Objective-C v1 (fragile) runtime support.

Motivation

The motivation for this PR stems from the fact that very early iOS devices were on the armv6 architecture, and iPhone OS 1 in particular ran the fragile Objective-C v1 runtime, which had a significantly different convention.

One of the main changes between the fragile runtime and the newer, Objective-C v2 runtime are the symbol names for classes. For reference:

@interface Test : NSObject
@end

@implementation Test
@end

Would produce _OBJC_CLASS_$_Test on the modern runtime, but on the old fragile runtime, we would get .objc_class_name_Test.

Testing

The outputted .tbds were tested when compiling for armv6 and were tested on iPhone OS 1 and confirmed working.

Command used:

./tbd -p -v1 --replace-platform ios <path/to/UIKit/binary> -o <path/to/output>

Compiled on macOS Sequoia on Apple Silicon.

Notice

This PR also implements #10, as it is required to get the correct platform.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant