summaryrefslogtreecommitdiffstats
path: root/configure
Commit message (Collapse)AuthorAgeFilesLines
...
* gh-95973: Add a new --with-dsymutil option to link debug information in ↵Pablo Galindo Salgado2022-08-271-3/+83
| | | | | macOS (GH-95974) Automerge-Triggered-By: GH:pablogsal
* gh-95853: WASM: better version and asset handling in scripts (GH-96045)Christian Heimes2022-08-191-1/+1
| | | | | - support EMSDK tot-upstream and git releases - allow WASM assents for wasm64-emscripten and WASI. This makes single file distributions on WASI easier. - decouple WASM assets from browser builds
* gh-90536: Add support for the BOLT post-link binary optimizer (gh-95908)Kevin Modzelewski2022-08-181-0/+261
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * Add support for the BOLT post-link binary optimizer Using [bolt](https://github.com/llvm/llvm-project/tree/main/bolt) provides a fairly large speedup without any code or functionality changes. It provides roughly a 1% speedup on pyperformance, and a 4% improvement on the Pyston web macrobenchmarks. It is gated behind an `--enable-bolt` configure arg because not all toolchains and environments are supported. It has been tested on a Linux x86_64 toolchain, using llvm-bolt built from the LLVM 14.0.6 sources (their binary distribution of this version did not include bolt). Compared to [a previous attempt](https://github.com/faster-cpython/ideas/issues/224), this commit uses bolt's preferred "instrumentation" approach, as well as adds some non-PIE flags which enable much better optimizations from bolt. The effects of this change are a bit more dependent on CPU microarchitecture than other changes, since it optimizes i-cache behavior which seems to be a bit more variable between architectures. The 1%/4% numbers were collected on an Intel Skylake CPU, and on an AMD Zen 3 CPU I got a slightly larger speedup (2%/4%), and on a c6i.xlarge EC2 instance I got a slightly lower speedup (1%/3%). The low speedup on pyperformance is not entirely unexpected, because BOLT improves i-cache behavior, and the benchmarks in the pyperformance suite are small and tend to fit in i-cache. This change uses the existing pgo profiling task (`python -m test --pgo`), though I was able to measure about a 1% macrobenchmark improvement by using the macrobenchmarks as the training task. I personally think that both the PGO and BOLT tasks should be updated to use macrobenchmarks, but for the sake of splitting up the work this PR uses the existing pgo task. * Simplify the build flags * Add a NEWS entry * Update Makefile.pre.in Co-authored-by: Dong-hee Na <donghee.na92@gmail.com> * Update configure.ac Co-authored-by: Dong-hee Na <donghee.na92@gmail.com> * Add myself to ACKS * Add docs * Other review comments * fix tab/space issue * Make it more clear that --enable-bolt is experimental * Add link to bolt's github page Co-authored-by: Dong-hee Na <donghee.na92@gmail.com>
* gh-95853: Add script to automate WASM build (GH-95828)Christian Heimes2022-08-131-5/+161
| | | | | | | | | | | | Automate WASM build with a new Python script. The script provides several build profiles with configure flags for Emscripten flavors and WASI. The script can detect and use Emscripten SDK and WASI SDK from default locations or env vars. ``configure`` now detects Node arguments and creates HOSTRUNNER arguments for Node 16. It also sets correct arguments for ``wasm64-emscripten``. Co-authored-by: Brett Cannon <brett@python.org>
* gh-93744: Remove configure --with-cxx-main option (#95651)Victor Stinner2022-08-051-35/+1
| | | | | | | | | | | | Remove the "configure --with-cxx-main" build option: it didn't work for many years. Remove the MAINCC variable from configure and Makefile. The MAINCC variable was added by the issue gh-42471: commit 0f48d98b740110a672b62d467af192ec160e56ba. Previously, --with-cxx-main was named --with-cxx. Keep CXX and LDCXXSHARED variables, even if they are no longer used by Python build system.
* gh-95174: Add pthread stubs for WASI (GH-95234)Christian Heimes2022-07-271-1/+14
| | | Co-authored-by: Brett Cannon <brett@python.org>
* gh-95174: WASI: skip missing sockets functions (GH-95179)Christian Heimes2022-07-271-3/+636
|
* gh-95085: Promote Emscripten and WASI to PEP 11 tier 3 (GH-95086)Christian Heimes2022-07-271-1/+5
|
* gh-94801: Fix regression in configure's CPPFLAGS handling (GH-95288)Christian Heimes2022-07-261-20/+20
|
* gh-95174: Handle missing dup() and constants in WASI (GH-95229)Christian Heimes2022-07-261-1/+1
| | | | | | | - check for ``dup()`` libc function - handle missing ``F_DUPFD`` in ``dup2()`` replacement function - add workaround for WASI libc bug in MSG_TRUNC - ESHUTDOWN is missing, use EPIPE instead - POLLPRI is missing, define as 0 (no-op)
* gh-94847: Don't force inlining in debug builds of libmpdec (GH-94848)Christian Heimes2022-07-181-0/+6
|
* gh-94801: Use custom flags to check for headers and libs (#94802)Christian Heimes2022-07-151-257/+317
|
* gh-93939: Build C extensions without setup.py (GH-94474)Christian Heimes2022-07-141-24/+45
| | | Combines GH-93940, GH-94452, and GH-94433
* gh-93649: Fix dependencies of _testcapi (#94695)Christian Heimes2022-07-091-0/+1
| | | | | - header files are located in $(srcdir) - dependencies must not list C files that are also in a makesetup Setup file - generate SRCDIRS for OOT builds
* gh-94642: Remove -D_XOPEN_SOURCE from more pkg-config CFLAGS (#94657)Christian Heimes2022-07-071-1/+4
| | | Some pkg-config pc files define CFLAGS with -D_XOPEN_SOURCE=600. We always want _XOPEN_SOURCE=700.
* gh-94644: Define HAVE_NCURSESW in pkg-config branch (#94651)Christian Heimes2022-07-071-0/+2
|
* gh-90005: Port readline and curses to PY_STDLIB_MOD (GH-94452)Christian Heimes2022-07-061-176/+1627
| | | Co-authored-by: Erlend Egeberg Aasland <erlend.aasland@protonmail.com>
* gh-90005: Port _dbm module to PY_STDLIB_MOD (GH-94433)Christian Heimes2022-07-011-95/+200
|
* gh-90005-ffi: Fix building _ctypes without pkg-config (GH-94451)Christian Heimes2022-07-011-2/+8
| | | The fallback path did not set LIBFFI_LIBS variable to link with ``-lffi``.
* gh-93491: Fix PEP 11 tier detection for FreeBSD (GH-94441)Christian Heimes2022-06-301-1/+1
|
* gh-90005: Rename MODULE_EGG variable to MODULE_EGG_STATE (GH-94301)Christian Heimes2022-06-271-77/+77
| | | | | It makes it easier to look for module states in sysconfig without special casing suffixes "_CFLAGS", "_DEPS", "_LDFLAGS", "_OBJS", and "CTYPES_MALLOC_CLOSURE".
* gh-90005: Port _ctypes to PY_STDLIB_MOD (GH-32229)Christian Heimes2022-06-261-9/+531
| | | | | Co-authored-by: Erlend Egeberg Aasland <erlend.aasland@innova.no> Automerge-Triggered-By: GH:tiran
* gh-84461: Build Emscripten with WASM BigInt support (#94219)Christian Heimes2022-06-241-0/+2
|
* gh-84461: Fix ctypes and test_ctypes on Emscripten (#94142)Christian Heimes2022-06-241-5/+3
| | | | | - c_longlong and c_longdouble need experimental WASM bigint. - Skip tests that need threading - Define ``CTYPES_MAX_ARGCOUNT`` for Emscripten. libffi-emscripten 2022-06-23 supports up to 1000 args.
* gh-84461: Silence some compiler warnings on WASM (GH-93978)Christian Heimes2022-06-201-1/+1
|
* gh-84461: Fix circulare dependency on BUILDPYTHON (GH-93977)Christian Heimes2022-06-181-0/+4
|
* gh-90473: Include stdlib dir in wasmtime PYTHONPATH (GH-93797)Christian Heimes2022-06-141-1/+1
|
* gh-84461: Use HOSTRUNNER to run regression tests (GH-93694)Christian Heimes2022-06-111-1/+5
| | | Co-authored-by: Brett Cannon <brett@python.org>
* gh-93491: Add support tier detection to configure (GH-93492)Christian Heimes2022-06-101-0/+106
| | | | | Co-authored-by: Adam Turner <9087854+AA-Turner@users.noreply.github.com> Co-authored-by: Steve Dower <steve.dower@microsoft.com> Co-authored-by: Erlend Egeberg Aasland <erlend.aasland@protonmail.com>
* gh-90473: Define HOSTRUNNER for WASI (GH-93606)Christian Heimes2022-06-081-0/+2
|
* gh-93475: Expose FICLONE and FICLONERANGE constants in fcntl (#93478)Illia Volochii2022-06-061-1/+2
|
* gh-90473: Skip and document more failing tests on WASI (GH-93436)Christian Heimes2022-06-021-0/+3
| | | | | | | - Mark more ``umask()`` cases - ``dup()`` is not supported - ``/dev/null`` is not available - document missing features - mark more modules as not available
* bpo-40514: Drop EXPERIMENTAL_ISOLATED_SUBINTERPRETERS (gh-93185)Eric Snow2022-05-271-28/+0
| | | | | | | This was added for bpo-40514 (gh-84694) to test out a per-interpreter GIL. However, it has since proven unnecessary to keep the experiment in the repo. (It can be done as a branch in a fork like normal.) So here we are removing: * the configure option * the macro * the code enabled by the macro
* GH-93207: Remove HAVE_STDARG_PROTOTYPES configure check for stdarg.h (#93215)Kumar Aditya2022-05-271-46/+0
|
* gh-93202: Always use %zd printf formatter (#93201)Victor Stinner2022-05-251-66/+0
| | | | | | | | | | | | | | | | Python now always use the ``%zu`` and ``%zd`` printf formats to format a size_t or Py_ssize_t number. Building Python 3.12 requires a C11 compiler, so these printf formats are now always supported. * PyObject_Print() and _PyObject_Dump() now use the printf %zd format to display an object reference count. * Update PY_FORMAT_SIZE_T comment. * Remove outdated notes about the %zd format in PyBytes_FromFormat() and PyUnicode_FromFormat() documentations. * configure no longer checks for the %zd format and no longer defines PY_FORMAT_SIZE_T macro in pyconfig.h. * pymacconfig.h no longer undefines PY_FORMAT_SIZE_T: macOS 10.4 is no longer supported. Python 3.12 now requires macOS 10.6 (Snow Leopard) or newer.
* gh-90473: Decrease recursion limit and skip tests on WASI (GH-92803)Christian Heimes2022-05-191-0/+1
|
* gh-90473: Increase stack size, disable obmalloc on WASI (GH-92732)Christian Heimes2022-05-131-4/+21
|
* gh-90005: Cleanup after GH-31698 (#91642)Erlend Egeberg Aasland2022-05-091-40/+40
|
* Update CPyhton configuration for 3.12 (#92451)Dong-hee Na2022-05-081-12/+12
| | | | | | | * Update CPyhton configuration for 3.12 * Fix PC/pyconfig.h * Add expect failure
* bpo-41818: Add os.login_tty() for *nix. (#29658)Soumendra Ganguly2022-05-051-2/+61
| | | | | | * Add `os.login_tty(fd)` for Unix. Reviewed-by: Christian Heimes <christian@python.org> Signed-off-by: Gregory P. Smith [Google LLC] <greg@krypto.org>
* gh-89452: Prefer gdbm-compat over ndbm (#92208)Łukasz Langa2022-05-031-2/+2
| | | | | This makes macOS gdbm provided by Homebrew not segfault through correct selection of the linked library (-lgdbm_compat) *AND* the correct ndbm-style header (gdbm-ndbm.h instead of the invalid ndbm.h).
* gh-84461: Add HOSTRUNNER for program to run Python executable (GH-91931)Ethan Smith2022-04-281-0/+30
| | | | | | | `HOSTRUNNER` is a program which can be used to run `BUILDPYTHON` for the host platform (for example, `python.js` requires `node`). Also change depedencies from `build_all` to `all` so that targets which can't build everything (e.g. WASM) can still run `buildbottest` and `pythoninfo`. cc @tiran
* gh-84461: Add --enable-wasm-pthreads and more file systems (GH-91820)Christian Heimes2022-04-231-26/+80
|
* gh-84461: Add sys._emscripten_info, improve docs and build (gh-91781)Christian Heimes2022-04-231-52/+24
|
* gh-91731: Build Python with -std=c11 (#91733)Victor Stinner2022-04-201-1/+1
| | | | Python is now built with "-std=c11" compiler option, rather than "-std=c99".
* bpo-46053: Fix OSS audio support on NetBSD (GH-30065)Thomas Klausner2022-04-181-1/+9
|
* gh-84461: Drop -sWASM, fix building tests for browser (GH-91530)Christian Heimes2022-04-141-25/+24
| | | | | | | - drop unnecessary ``=1`` suffix from Emscripten flags - drop unnecessary ``-sWASM`` flag for side modules - rename ``build_platform`` to ``build_wasm``. I introduced the target for WASM builds a couple of months ago. - fix ``--enable-test-modules`` for browser builds
* Fix some typos in comments (GH-32422)jonasdlindner2022-04-091-1/+1
|
* bpo-40280: Detect missing threading on WASM platforms (GH-32352)Christian Heimes2022-04-071-9/+1
| | | Co-authored-by: Brett Cannon <brett@python.org>
* bpo-40280: WASM defaults to no dynamic linking (GH-32360)Christian Heimes2022-04-061-1/+9
|