Skip to content

Conversation

@mhsmith
Copy link
Member

@mhsmithmhsmith commented Feb 26, 2024

This is the second PR from the list in #115576 (review).

  • Removed the "1.0" suffix from libpython's filename on Android, which would prevent Gradle from packaging it into an app. And I've simplified the build command in the Makefile so that libpython always gets given an SONAME with the -Wl,-h argument, even if the SONAME is identical to the actual filename.

  • Disabled a number of functions on Android which can be compiled and linked against, but always fail at runtime. As a result, the native _multiprocessing module is no longer built for Android.

  • #115390 added some pre-determined results to the configure script for things that can't be autodetected when cross-compiling. I've added Android to these where appropriate.

    • I've also added a couple more pre-determined results for Android, and taken the liberty of making them cover iOS as well (FYI @freakboy3742). This means the --enable-ipv6 configure argument will no longer be required on either platform.

Copy link
Contributor

@erlend-aaslanderlend-aasland left a comment

Choose a reason for hiding this comment

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

LGTM, thanks!

(The check-funcs workaround is quite an autoconf hack, but we do worse things with the cache vars in configure.ac 😎 Hopefully, we'll have a more modern build system in a few years.)

@erlend-aaslanderlend-aasland merged commit fa1d675 into python:mainFeb 29, 2024
woodruffw pushed a commit to woodruffw-forks/cpython that referenced this pull request Mar 4, 2024
This change is part of the work on PEP-738: Adding Android as a supported platform. * Remove the "1.0" suffix from libpython's filename on Android, which would prevent Gradle from packaging it into an app. * Simplify the build command in the Makefile so that libpython always gets given an SONAME with the `-Wl-h` argument, even if the SONAME is identical to the actual filename. * Disable a number of functions on Android which can be compiled and linked against, but always fail at runtime. As a result, the native _multiprocessing module is no longer built for Android. * pythongh-115390 (bee7bb3) added some pre-determined results to the configure script for things that can't be autodetected when cross-compiling; this change adds Android to these where appropriate. * Add a couple more pre-determined results for Android, and making them cover iOS as well. This means the --enable-ipv6 configure option will no longer be required on either platform.
adorilson pushed a commit to adorilson/cpython that referenced this pull request Mar 25, 2024
This change is part of the work on PEP-738: Adding Android as a supported platform. * Remove the "1.0" suffix from libpython's filename on Android, which would prevent Gradle from packaging it into an app. * Simplify the build command in the Makefile so that libpython always gets given an SONAME with the `-Wl-h` argument, even if the SONAME is identical to the actual filename. * Disable a number of functions on Android which can be compiled and linked against, but always fail at runtime. As a result, the native _multiprocessing module is no longer built for Android. * pythongh-115390 (bee7bb3) added some pre-determined results to the configure script for things that can't be autodetected when cross-compiling; this change adds Android to these where appropriate. * Add a couple more pre-determined results for Android, and making them cover iOS as well. This means the --enable-ipv6 configure option will no longer be required on either platform.
diegorusso pushed a commit to diegorusso/cpython that referenced this pull request Apr 17, 2024
This change is part of the work on PEP-738: Adding Android as a supported platform. * Remove the "1.0" suffix from libpython's filename on Android, which would prevent Gradle from packaging it into an app. * Simplify the build command in the Makefile so that libpython always gets given an SONAME with the `-Wl-h` argument, even if the SONAME is identical to the actual filename. * Disable a number of functions on Android which can be compiled and linked against, but always fail at runtime. As a result, the native _multiprocessing module is no longer built for Android. * pythongh-115390 (bee7bb3) added some pre-determined results to the configure script for things that can't be autodetected when cross-compiling; this change adds Android to these where appropriate. * Add a couple more pre-determined results for Android, and making them cover iOS as well. This means the --enable-ipv6 configure option will no longer be required on either platform.
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants

@mhsmith@freakboy3742@erlend-aasland@encukou