Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

gh-114099: Add preprocessor declarations to support compilation on iOS#115023

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to ourterms of service andprivacy statement. We’ll occasionally send you account related emails.

Already on GitHub?Sign in to your account

Closed

Conversation

freakboy3742
Copy link
Contributor

@freakboy3742freakboy3742 commentedFeb 5, 2024
edited by bedevere-appbot
Loading

Part of the PEP 730 work to add iOS support.

Adds preprocessor declarations to C code to support compilation of the standard library on iOS/tvOS/watchOS.

These changes involve:

  • Explicitly disabling methods that are detected byconfigure, but raise a compilation or runtime error if actually used.
  • Allowing for the required.dylib extension on iOS dynamic libraries
  • Setting the marshalling stack depth
  • Providing a simulated response for the "user" on an iOS simulator
  • Providing aPLATFORM_TRIPLET based on compiler behavior

The preprocessor symbols used to identify Apple platforms are all provided by theTargetConditionals.h header, and form a heirarchy:

  • TARGET_OS_IPHONE - Generated code will run on a variant of iOS (firmware, devices, simulator)
    • TARGET_OS_IOS - Generated code will run on iOS
      • TARGET_OS_MACCATALYST- Generated code will run on macOS
    • TARGET_OS_TV - Generated code will run on tvOS
    • TARGET_OS_WATCH - Generated code will run on watchOS
  • TARGET_OS_SIMULATOR - Generated code will run on an iOS, tvOS, watchOS, or visionOS simulator

Of particular note:TARGET_OS_IPHONE isany "iPhone like" device - including iOS, tvOS, watchOS, and visionOS.TARGET_OS_IOS is iOS only.

if (uid == 501) {
struct passwd mp;
mp.pw_name = "mobile";
mp.pw_passwd = "/smx7MYTQIi2M";
Copy link
Member

@mhsmithmhsmithFeb 5, 2024
edited
Loading

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others.Learn more.

I see it's easy enough to Google, but there should still be a comment explaining what this value is and where it comes from.

Comment on lines +381 to +384
// iOS/tvOS/watchOS *define* some POSIX methods,
// but raise a compiler error if they are used.
#if TARGET_OS_IPHONE
# undef HAVE_GETGROUPS
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others.Learn more.

If it's a compiler error, as opposed to a runtime error, then autoconf should be able to detect the problem. The comment should explain why that wasn't sufficient.

Comment on lines +19 to +21
// tvOS and watchOS don't provide a number of important POSIX functions.
#if TARGET_OS_TV || TARGET_OS_WATCH
# undef HAVE_SIGALTSTACK
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others.Learn more.

Same comment as above.

Comment on lines +47 to +50
// iOS/tvOS/watchOS *define* some POSIX methods,
// but raise a compiler error if they are used.
#if TARGET_OS_IPHONE
# undef HAVE_GETENTROPY
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others.Learn more.

Same comment as above.

Comment on lines +66 to +68
// iOS/tvOS/watchOS *define* clock_settime, but it can't be used
#if TARGET_OS_IPHONE
# undef HAVE_CLOCK_SETTIME
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others.Learn more.

Same comment as above.

@freakboy3742
Copy link
ContributorAuthor

Prompted by@mhsmith's review, I've dug deeper into how/why configure was incorrectly identifying these functions, and I I've got a cleaner approach for most of this patch. Closing on that basis.

@freakboy3742freakboy3742 deleted the iOS-preprocessor branchFebruary 6, 2024 00:26
Sign up for freeto join this conversation on GitHub. Already have an account?Sign in to comment
Reviewers

@mhsmithmhsmithmhsmith left review comments

@pgansslepganssleAwaiting requested review from pgansslepganssle is a code owner

@abalkinabalkinAwaiting requested review from abalkinabalkin is a code owner

@ericsnowcurrentlyericsnowcurrentlyAwaiting requested review from ericsnowcurrentlyericsnowcurrently is a code owner

Assignees
No one assigned
Projects
None yet
Milestone
No milestone
Development

Successfully merging this pull request may close these issues.

2 participants
@freakboy3742@mhsmith

[8]ページ先頭

©2009-2025 Movatter.jp