summaryrefslogtreecommitdiffstats
path: root/configure.ac
Commit message (Collapse)AuthorAgeFilesLines
* gh-114099 - Add iOS framework loading machinery. (GH-116454)Russell Keith-Magee2024-03-191-1/+0
| | | | Co-authored-by: Malcolm Smith <smith@chaquo.com> Co-authored-by: Eric Snow <ericsnowcurrently@gmail.com>
* gh-108716: Cleanup remaining deepfreeze infrastructure (#116919)Guido van Rossum2024-03-181-2/+1
| | | | | Keep Tools/build/deepfreeze.py around (we may repurpose it for deepfreezing non-code objects), and keep basic "clean" targets that remove the output of former deep-freeze activities, to keep the build directories of current devs clean.
* GH-115983: skip building shared modules for testing under WASI (GH-116528)Brett Cannon2024-03-131-0/+8
|
* gh-71052: Change Android's `sys.platform` from "linux" to "android"Malcolm Smith2024-03-111-0/+1
| | | | Co-authored-by: Erlend E. Aasland <erlend.aasland@protonmail.com>
* gh-116303: Explicitly check for the _testsinglephase module in configure.ac ↵Erlend E. Aasland2024-03-071-0/+1
| | | | (#116479)
* gh-116417: Add _testlimitedcapi C extension (#116419)Victor Stinner2024-03-071-0/+2
| | | | | | | | | | | | | Add a new C extension "_testlimitedcapi" which is only built with the limited C API. Move heaptype_relative.c and vectorcall_limited.c from Modules/_testcapi/ to Modules/_testlimitedcapi/. * configure: add _testlimitedcapi test extension. * Update generate_stdlib_module_names.py. * Update make check-c-globals. Co-authored-by: Erlend E. Aasland <erlend.aasland@protonmail.com>
* gh-114099 - Add iOS testbed, plus Makefile target to invoke it. (gh-115930)Russell Keith-Magee2024-03-071-52/+98
|
* GH-116313: get WASI builds to run under wasmtime 18 w/ WASI 0.2/preview2 ↵Brett Cannon2024-03-051-1/+1
| | | | | | | | | primitives (#116327) * GH-116313: get WASI builds to run under wasmtime 18 w/ WASI 0.2/preview2 primitives * Add the configure changes * Update `wasm_build.py`
* gh-108562: Revert enabling -fstrict-overflow for libmpdec (GH-116302)Sergey B Kirpichev2024-03-041-5/+0
| | | | | gh-108562: partial reversion of pr114751 Reverts -fstrict-overflow for libmpdec
* gh-108562: Fix compiler warnings for libmpdec (#114751)Sergey B Kirpichev2024-03-031-0/+5
| | | | | | If awailable, enable -fstrict-overflow for libmpdec. Also shut off false positive warnings (-Warray-bounds). The later was backported from mpdecimal-4.0.0.
* gh-115806: Don't mangle output of configure 'ipv6 stack type' check (#116165)Erlend E. Aasland2024-03-011-1/+1
|
* gh-71052: Fix several Android build issues (#115955)Malcolm Smith2024-02-291-9/+41
| | | | | | | | | | | | | | | | | | | 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. * gh-115390 (bee7bb331) 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.
* gh-115765: Don't use deprecated AC_EGREP_* macros in configure.ac (#116016)Erlend E. Aasland2024-02-281-64/+31
| | | Rewrite using AX_CHECK_DEFINE and AC_CHECK_TYPES.
* gh-115773: Add tests to exercise the _Py_DebugOffsets structure (#115774)Pablo Galindo Salgado2024-02-281-1/+2
|
* gh-114099: Add configure and Makefile targets to support iOS compilation. ↵Russell Keith-Magee2024-02-261-47/+178
| | | | (GH-115390)
* gh-115806: Make configure output more readable (#115807)Erlend E. Aasland2024-02-231-5/+5
| | | | - make sure LDLIBRARY and HOSTRUNNER checks don't overlap - make the ipv6 library check less subtle
* gh-115765: Don't use deprecated AC_CHECK_TYPE macro in configure.ac (#115792)Erlend E. Aasland2024-02-221-17/+8
| | | Instead use AC_CHECK_TYPES.
* gh-111225: Link extension modules against libpython on Android (#115780)Malcolm Smith2024-02-211-5/+7
| | | | | | | | | | | | | | Part of the work on PEP 738: Adding Android as a supported platform. * Rename the LIBPYTHON variable to MODULE_LDFLAGS, to more accurately reflect its purpose. * Edit makesetup to use MODULE_LDFLAGS when linking extension modules. * Edit the Makefile so that extension modules depend on libpython on Android and Cygwin. * Restore `-fPIC` on Android. It was removed several years ago with a note that the toolchain used it automatically, but this is no longer the case. Omitting it causes all linker commands to fail with an error like `relocation R_AARCH64_ADR_PREL_PG_HI21 cannot be used against symbol '_Py_FalseStruct'; recompile with -fPIC`.
* gh-114099: Refactor configure and Makefile to accomodate non-macOS ↵Russell Keith-Magee2024-02-121-171/+214
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | frameworks (#115120) Part of the PEP 730 work to add iOS support. This change lays the groundwork for introducing iOS/tvOS/watchOS frameworks; it includes the structural refactoring needed so that iOS branches can be added into in a subsequent PR. Summary of changes: * Updates config.sub to the 2024-01-01 release. This is the "as released" version of config.sub. * Adds a RESSRCDIR variable to allow sharing of macOS and iOS Makefile steps. * Adds an INSTALLTARGETS variable so platforms can customise which targets are actually installed. This will be used to exclude certain targets (e.g., binaries, manfiles) from iOS framework installs. * Adds a PYTHONFRAMEWORKINSTALLNAMEPREFIX variable; this is used as the install name for the library. This is needed to allow for iOS frameworks to specify an @rpath-based install name. * Evaluates MACHDEP earlier in the configure process so that ac_sys_system is available. * Modifies _PYTHON_HOST_PLATFORM evaluation for cross-platform builds so that the CPU architecture is differentiated from the host identifier. This will be used to generate a _PYTHON_HOST_PLATFORM definition that includes ABI information, not just CPU architecture. * Differentiates between SOABI_PLATFORM and PLATFORM_TRIPLET. SOABI_PLATFORM is used in binary module names, and includes the ABI, but not the OS or CPU architecture (e.g., math.cpython-313-iphonesimulator.dylib). PLATFORM_TRIPLET is used as the sys._multiarch value, and on iOS will contains the ABI and architecture (e.g., iphoneos-arm64). This differentiation hasn't historically been needed because while macOS is a multiarch platform, it uses a bare darwin as PLATFORM_TRIPLE. * Removes the use of the deprecated -Wl,-single_module flag when compiling macOS frameworks. * Some whitespace normalisation where there was a mix of spaces and tabs in a single block.
* GH-113632: update configure.ac for WebAssembly support tiers (#115192)Brett Cannon2024-02-091-2/+1
| | | Move WASI to tier 2 and drop Emscripten.
* gh-114883: Fix Makefile dependency tree for non-jit builds (GH-114884)Zachary Ware2024-02-031-0/+2
|
* gh-114875: Require getgrent for building the grp extension module (#114876)Malcolm Smith2024-02-021-2/+4
| | | Co-authored-by: Erlend E. Aasland <erlend.aasland@protonmail.com>
* gh-112606: Use pthread_cond_timedwait_relative_np() in parking_lot.c when ↵Matt Prodani2024-01-301-2/+2
| | | | | | | available (#112616) Add a configure define for HAVE_PTHREAD_COND_TIMEDWAIT_RELATIVE_NP and replaces pthread_cond_timedwait() with pthread_cond_timedwait_relative_np() for relative time when supported in semaphore waiting logic.
* gh-85984: Add POSIX pseudo-terminal functions. (GH-102413)Soumendra Ganguly2024-01-291-4/+4
| | | | | Signed-off-by: Soumendra Ganguly <soumendraganguly@gmail.com> Co-authored-by: Gregory P. Smith <greg@krypto.org> Co-authored-by: Petr Viktorin <encukou@gmail.com>
* GH-113464: Add a JIT backend for tier 2 (GH-113465)Brandt Bucher2024-01-291-0/+20
| | | | | | | Add an option (--enable-experimental-jit for configure-based builds or --experimental-jit for PCbuild-based ones) to build an *experimental* just-in-time compiler, based on copy-and-patch (https://fredrikbk.com/publications/copy-and-patch.pdf). See Tools/jit/README.md for more information on how to install the required build-time tooling.
* gh-80532: Do not set ipv6type when cross-compiling (#17956)Zackery Spytz2024-01-051-1/+1
| | | Co-authored-by: Xavier de Gaye <xdegaye@gmail.com>
* gh-112536: Add support for thread sanitizer (TSAN) (gh-112648)Samet YASLAN2023-12-301-0/+18
|
* bpo-11102: Make configure enable major(), makedev(), and minor() on HP-UX ↵Zackery Spytz2023-12-281-0/+1
| | | | | | | (GH-19856) Always include <sys/types.h> before <sys/sysmacros.h>. Co-authored-by: Serhiy Storchaka <storchaka@gmail.com>
* gh-110459: Make sure --with-openssl-rpath works on macOS (#113441)Ronald Oussoren2023-12-281-1/+6
| | | | | | | | * gh-110459: Make sure --with-openssl-rpath works on macOS On macOS the `-rpath` linker flag is spelled differently than on on platforms.
* gh-113117: Support posix_spawn in subprocess.Popen with close_fds=True (#113118)Jakub Kulík2023-12-171-0/+1
| | | | | | | | Add support for `os.POSIX_SPAWN_CLOSEFROM` and `posix_spawn_file_actions_addclosefrom_np` and have the `subprocess` module use them when available. This means `posix_spawn` can now be used in the default `close_fds=True` situation on many platforms. Co-authored-by: Gregory P. Smith [Google LLC] <greg@krypto.org>
* gh-76785: More Fixes for test.support.interpreters (gh-113012)Eric Snow2023-12-121-0/+2
| | | This brings the module (along with the associated extension modules) mostly in sync with PEP 734. There are only a few small things to wrap up.
* gh-112970: Detect and use closefrom() when available (#112969)Sam James2023-12-121-1/+1
| | | | | | | | | | | glibc-2.34 implements closefrom(3) using the same semantics as on BSD. Check for closefrom() in configure and use the check result in fileutils.c, rather than hardcoding a FreeBSD check. Some implementations of closefrom() return an int. Explicitly discard the return value by casting it to void, to avoid future compiler warnings. Signed-off-by: Sam James <sam@gentoo.org>
* gh-112532: Require mimalloc in `--disable-gil` builds (gh-112883)Sam Gross2023-12-121-0/+2
|
* gh-112779: Check 1-byte atomics in configure (gh-112819)Sam Gross2023-12-081-4/+14
|
* gh-105323: Remove `WITH_APPLE_EDITLINE` to use the same declaration for all ↵Tian Gao2023-12-051-10/+0
| | | | editline (gh-112513)
* gh-111863: Rename `Py_NOGIL` to `Py_GIL_DISABLED` (#111864)Hugo van Kemenade2023-11-201-1/+1
| | | Rename Py_NOGIL to Py_GIL_DISABLED
* gh-112088: Run autoreconf in GHA check_generated_files (#112090)Victor Stinner2023-11-151-9/+6
| | | | | | | | | | | The "Check if generated files are up to date" job of GitHub Actions now runs the "autoreconf -ivf -Werror" command instead of the "make regen-configure" command to avoid depending on the external quay.io server. Add Tools/build/regen-configure.sh script to regenerate the configure with an Ubuntu container image. The "quay.io/tiran/cpython_autoconf:271" container image (https://github.com/tiran/cpython_autoconf) is no longer used.
* gh-111460: Restore ncurses widechar support on macOS (#111878)Davide Rizzo2023-11-131-2/+4
|
* gh-90815: Add mimalloc memory allocator (#109914)Dino Viehland2023-10-301-43/+74
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * Add mimalloc v2.12 Modified src/alloc.c to remove include of alloc-override.c and not compile new handler. Did not include the following files: - include/mimalloc-new-delete.h - include/mimalloc-override.h - src/alloc-override-osx.c - src/alloc-override.c - src/static.c - src/region.c mimalloc is thread safe and shares a single heap across all runtimes, therefore finalization and getting global allocated blocks across all runtimes is different. * mimalloc: minimal changes for use in Python: - remove debug spam for freeing large allocations - use same bytes (0xDD) for freed allocations in CPython and mimalloc This is important for the test_capi debug memory tests * Don't export mimalloc symbol in libpython. * Enable mimalloc as Python allocator option. * Add mimalloc MIT license. * Log mimalloc in Lib/test/pythoninfo.py. * Document new mimalloc support. * Use macro defs for exports as done in: https://github.com/python/cpython/pull/31164/ Co-authored-by: Sam Gross <colesbury@gmail.com> Co-authored-by: Christian Heimes <christian@python.org> Co-authored-by: Victor Stinner <vstinner@python.org>
* gh-110828: AIX 32bit build needs -latomic for _testcapi module (#110962)Ayappan Perumal2023-10-221-2/+6
|
* gh-111046: for wasi-threads, export memory as well via the linker (GH-111099)YAMAMOTO Takashi2023-10-201-0/+5
|
* gh-104169: Refactor tokenizer into lexer and wrappers (#110684)Lysandros Nikolaou2023-10-111-0/+2
| | | | | | | | | | | * The lexer, which include the actual lexeme producing logic, goes into the `lexer` directory. * The wrappers, one wrapper per input mode (file, string, utf-8, and readline), go into the `tokenizer` directory and include logic for creating a lexer instance and managing the buffer for different modes. --------- Co-authored-by: Pablo Galindo <pablogsal@gmail.com> Co-authored-by: blurb-it[bot] <43283697+blurb-it[bot]@users.noreply.github.com>
* gh-78469: Declare missing sethostname for Solaris 10 (#109447)Jakub Kulík2023-10-091-0/+8
| | | Add OS version specific macro for Solaris: Py_SUNOS_VERSION.
* gh-109191: Fix build with newer editline (gh-110239)Bo Anderson2023-10-091-0/+7
|
* gh-108277: Add os.timerfd_create() function (#108382)Masaru Tsuchiyama2023-10-071-1/+8
| | | | | | | | Add wrapper for timerfd_create, timerfd_settime, and timerfd_gettime to os module. Co-authored-by: Serhiy Storchaka <storchaka@gmail.com> Co-authored-by: Adam Turner <9087854+AA-Turner@users.noreply.github.com> Co-authored-by: Erlend E. Aasland <erlend.aasland@protonmail.com> Co-authored-by: Victor Stinner <vstinner@python.org>
* gh-105323: Update readline module to detect apple editline variant (gh-108665)Donghee Na2023-09-291-0/+10
|
* gh-109740: Use 't' in `--disable-gil` SOABI (#109922)Sam Gross2023-09-271-15/+18
| | | | Shared libraries for CPython 3.13 are now marked with a 't' for threading. For example, `binascii.cpython-313t-darwin.so`.
* gh-108724: Add PyMutex and _PyParkingLot APIs (gh-109344)Sam Gross2023-09-191-7/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | PyMutex is a one byte lock with fast, inlineable lock and unlock functions for the common uncontended case. The design is based on WebKit's WTF::Lock. PyMutex is built using the _PyParkingLot APIs, which provides a cross-platform futex-like API (based on WebKit's WTF::ParkingLot). This internal API will be used for building other synchronization primitives used to implement PEP 703, such as one-time initialization and events. This also includes tests and a mini benchmark in Tools/lockbench/lockbench.py to compare with the existing PyThread_type_lock. Uncontended acquisition + release: * Linux (x86-64): PyMutex: 11 ns, PyThread_type_lock: 44 ns * macOS (arm64): PyMutex: 13 ns, PyThread_type_lock: 18 ns * Windows (x86-64): PyMutex: 13 ns, PyThread_type_lock: 38 ns PR Overview: The primary purpose of this PR is to implement PyMutex, but there are a number of support pieces (described below). * PyMutex: A 1-byte lock that doesn't require memory allocation to initialize and is generally faster than the existing PyThread_type_lock. The API is internal only for now. * _PyParking_Lot: A futex-like API based on the API of the same name in WebKit. Used to implement PyMutex. * _PyRawMutex: A word sized lock used to implement _PyParking_Lot. * PyEvent: A one time event. This was used a bunch in the "nogil" fork and is useful for testing the PyMutex implementation, so I've included it as part of the PR. * pycore_llist.h: Defines common operations on doubly-linked list. Not strictly necessary (could do the list operations manually), but they come up frequently in the "nogil" fork. ( Similar to https://man.freebsd.org/cgi/man.cgi?queue) --------- Co-authored-by: Eric Snow <ericsnowcurrently@gmail.com>
* gh-106213: Make Emscripten trampolines work with JSPI (GH-106219)Hood Chatham2023-09-151-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | There is a WIP proposal to enable webassembly stack switching which have been implemented in v8: https://github.com/WebAssembly/js-promise-integration It is not possible to switch stacks that contain JS frames so the Emscripten JS trampolines that allow calling functions with the wrong number of arguments don't work in this case. However, the js-promise-integration proposal requires the [type reflection for Wasm/JS API](https://github.com/WebAssembly/js-types) proposal, which allows us to actually count the number of arguments a function expects. For better compatibility with stack switching, this PR checks if type reflection is available, and if so we use a switch block to decide the appropriate signature. If type reflection is unavailable, we should use the current EMJS trampoline. We cache the function argument counts since when I didn't cache them performance was negatively affected. Co-authored-by: T. Wouters <thomas@python.org> Co-authored-by: Brett Cannon <brett@python.org>
* gh-109054: Don't use libatomic on cross-compilation (#109211)Victor Stinner2023-09-101-3/+4
| | | | | | | configure no longer uses libatomic by default when Python is cross-compiled. The LIBATOMIC variable can be set manually in this case: ./configure LIBATOMIC="-latomic" (...)