Commit Graph

343 Commits

Author SHA1 Message Date
Benjamin Peterson 24c4d046c4 drop unused configure check for pthread_atfork (#4046) 2017-10-18 23:39:01 -07:00
Ned Deily 14aa00b519 Allow configure to handle PATH elements with spaces (#3935) 2017-10-09 13:53:27 -04:00
Masayuki Yamamoto 731e189014 bpo-25658: Implement PEP 539 for Thread Specific Storage (TSS) API (GH-1362)
See PEP 539 for details.

Highlights of changes:

- Add Thread Specific Storage (TSS) API
- Document the Thread Local Storage (TLS) API as deprecated
- Update code that used TLS API to use TSS API
2017-10-06 20:41:34 +10:00
pdox e14679c784 closes bpo-31596: Add an interface for pthread_getcpuclockid(3) (#3756) 2017-10-05 00:01:56 -07:00
Benjamin Peterson d15108a478 stop using ranlib (closes bpo-31625) (#3815)
Instead, simply pass 's' to ar.
2017-09-29 08:42:41 -07:00
Benjamin Peterson 288d1daada remove support for BSD/OS (closes bpo-31624) (#3812) 2017-09-28 22:44:27 -07:00
Benjamin Peterson b1d1c422cc remove configure check for memmove (#3716)
Python requires C implementations provide memmove, so we shouldn't need to check for it. The only place using this configure check was expat, where we can simply always define HAVE_MEMMOVE.
2017-09-24 12:08:40 -07:00
octaviansoldea 4c81401b3a bpo-31354: Let configure --with-lto work on all builds
Allow configure --with-lto to apply to all builds, not just profile-opt builds.

Whether this is actually useful or not must be determined by the person
building CPython using their own toolchain.

My own quick test on x86_64 Debian 9 (gcc 6.3, binutils 2.28) seemed
to suggest that it wasn't, but I expect better toolchains can or will exist
at some point.  The point is to allow it at all.
2017-09-08 12:14:33 -07:00
Antoine Pitrou a6a4dc816d bpo-31370: Remove support for threads-less builds (#3385)
* Remove Setup.config
* Always define WITH_THREAD for compatibility.
2017-09-07 18:56:24 +02:00
caavery effc12f8e9 bpo-27584: New addition of vSockets to the python socket module (#2489)
* bpo-27584: New addition of vSockets to the python socket module

Support for AF_VSOCK on Linux only

* bpo-27584: Fixes for V2

Fixed syntax and naming problems.
Fixed #ifdef AF_VSOCK checking
Restored original aclocal.m4

* bpo-27584: Fixes for V3

Added checking for fcntl and thread modules.

* bpo-27584: Fixes for V4

Fixed white space error

* bpo-27584: Fixes for V5

Added back comma in (CID, port).

* bpo-27584: Fixes for V6

Added news file.
socket.rst now reflects first Linux introduction of AF_VSOCK.
Fixed get_cid in test_socket.py.
Replaced PyLong_FromLong with PyLong_FromUnsignedLong in socketmodule.c
Got rid of extra AF_VSOCK #define.
Added sockaddr_vm to sock_addr.

* bpo-27584: Fixes for V7

Minor cleanup.

* bpo-27584: Fixes for V8

Put back #undef AF_VSOCK as it is  necessary when vm_sockets.h is not installed.
2017-09-06 15:18:10 -07:00
Christian Heimes 75b961869a bpo-31343: Include sys/sysmacros.h (#3318)
Include sys/sysmacros.h for major(), minor(), and makedev(). GNU C libray
plans to remove the functions from sys/types.h.

Signed-off-by: Christian Heimes <christian@python.org>
2017-09-05 15:53:09 +02:00
Benjamin Peterson 069306312a remove IRIX support (closes bpo-31341) (#3310)
See PEP 11.
2017-09-04 16:36:05 -07:00
Benjamin Peterson 14ce158e3d remove configure.ac support for SGI_ABI (#3294) 2017-09-04 14:05:32 -07:00
Benjamin Peterson 5ce1063345 remove check for bug last seem in Solaris 9 (#3285) 2017-09-04 10:52:51 -07:00
Benjamin Peterson a2344851ab remove autoconf check for select() (#3283)
We never actually check HAVE_SELECT.
2017-09-04 10:21:42 -07:00
Benjamin Peterson fc96f1e95e remove configure check for 'volatile' (#3281)
This is a required feature is C99, which we require.
2017-09-04 10:09:12 -07:00
Antoine Pitrou f474c5a3f3 bpo-30946: Remove obsolete fallback code in readline module (#2738)
* Remove obsolete fallback code in readline module

* Add NEWS

* Remove obsolete include

* Fix macro on Windows
2017-07-18 17:05:03 +02:00
INADA Naoki 6b42eb1764 bpo-29585: Fix sysconfig.get_config_var("PYTHONFRAMEWORK") (GH-2483)
`PYTHONFRAMEWORK` is defined in `Makefile` and it shoulnd't be used
in `pyconfig.h`.

`sysconfig.py --generate-posix-vars` reads config vars from Makefile
and `pyconfig.h`.  Conflicting variables should be avoided.

Especially, string config variables in Makefile are unquoted, but
in `pyconfig.h` are keep quoted.  So it should be private (starts with
underscore).
2017-06-29 15:31:38 +09:00
INADA Naoki a8f8d5b4bd bpo-29585: optimize site.py startup time (GH-136)
Avoid importing `sysconfig` from `site` by copying minimum code.
Python startup is 5% faster on Linux and 30% faster on macOS
2017-06-29 00:31:53 +09:00
Nick Coghlan 6ea4186de3 bpo-28180: Implementation for PEP 538 (#659)
- new PYTHONCOERCECLOCALE config setting
- coerces legacy C locale to C.UTF-8, C.utf8 or UTF-8 by default
- always uses C.UTF-8 on Android
- uses `surrogateescape` on stdin and stdout in the coercion
  target locales
- configure option to disable locale coercion at build time
- configure option to disable C locale warning at build time
2017-06-11 13:16:15 +10:00
Brett Cannon b4e5fee6f5 Clarify what --enable-optimizations does (GH-1847) 2017-06-09 13:56:57 -07:00
T. Wouters ddbfa2c35b Add --with-assertions configure flag to enable C assertions(#1731)
Defaults to 'no', but as before assertions are implied by --with-pydebug.
2017-05-23 01:30:49 +02:00
Victor Stinner a5c62a8e9f bpo-23404: make touch becomes make regen-all (#1405)
Don't rebuild generated files based on file modification time
anymore, the action is now explicit. Replace "make touch"
with "make regen-all".

Changes:

* Remove "make touch", Tools/hg/hgtouch.py and .hgtouch
* Add a new "make regen-all" command to rebuild all generated files
* Add subcommands to only generate specific files:

  - regen-ast: Include/Python-ast.h and Python/Python-ast.c
  - regen-grammar: Include/graminit.h and Python/graminit.c
  - regen-importlib: Python/importlib_external.h and Python/importlib.h
  - regen-opcode: Include/opcode.h
  - regen-opcode-targets: Python/opcode_targets.h
  - regen-typeslots: Objects/typeslots.inc

* Rename PYTHON_FOR_GEN to PYTHON_FOR_REGEN
* pgen is now only built by by "make regen-grammar"
* Add $(srcdir)/ prefix to paths to source files to handle correctly
  compilation outside the source directory

Note: $(PYTHON_FOR_REGEN) is no more used nor needed by "make"
default target building Python.
2017-05-03 18:21:48 +02:00
Victor Stinner 5facdbb291 bpo-30232: Support Git worktree in configure.ac (#1391)
Don't test if .git/HEAD file exists, but only if the .git file (or
directory) exists.
2017-05-02 21:42:48 +02:00
Victor Stinner 826f83f1d5 bpo-30104: Only use -fno-strict-aliasing on dtoa.c (#1340)
On clang, only compile dtoa.c with -fno-strict-aliasing, use strict
aliasing to compile all other C files.
2017-04-28 15:07:10 +02:00
Victor Stinner 35f3d240ee bpo-30104: configure now detects when cc is clang (#1233)
Detect when the "cc" compiler (and the $CC variable) is the Clang
compiler. The test is needed to add the -fno-strict-aliasing option
on FreeBSD where cc is clang.
2017-04-21 12:35:24 +02:00
Victor Stinner 28205b203a bpo-30104: Use -fno-strict-aliasing on clang (#1221)
Python/dtoa.c is not compiled correctly with clang 4.0 and
optimization level -O2 or higher, because of an aliasing issue on
the double/ULong[2] union.

LLVM bug report:
https://bugs.llvm.org//show_bug.cgi?id=31928
2017-04-21 11:24:34 +02:00
Benjamin Peterson 791dc83119 remove configure test for inline keyword (#1231)
We require C99, so a configure test for this standard feature is not needed.
2017-04-20 23:52:19 -07:00
Benjamin Peterson e4f961be09 improve alignment autoconf test (#1129)
Replace the deprecated AC_TRY_RUN with AC_RUN_IFELSE. Also, standardize the
variable name and allow for caching of the result.
2017-04-14 09:36:45 -07:00
Alex Wang 8cea5929f5 bpo-29643: Fix check for --enable-optimizations (GH-129)
The presence of the ``--enable-optimizations`` flag is indicated by the
value of ``$enableval``, but the configure script was checking ``$withval``,
resulting in the ``--enable-optimizations`` flag being effectively ignored.
2017-03-28 21:50:51 +09:00
Alex Dzyoba 8a543c0bc7 `make tags` fixes (GH-717)
* Fix `make tags` warnings

`make tags` target tries to find C sources and headers in "Grammar" and
"Mac" folders and generates these warnings:

    ctags: Warning: cannot open source file "Grammar/*.[ch]" : No such file or directory
    ctags: Warning: cannot open source file "Mac/*.[ch]" : No such file or directory

This commit changes $SRCDIRS variable in configure.ac to remote these
directories. This variable is used only for tags generation.

Also, "configure" was regenerated with `autoreconf`.

* Fix `make tags` fail on non-default tag names

When ctags overrides default tags filename (e.g. `-f .tags`) `make tags`
is failed because it assumes to see default `tags` filename:

    sort: cannot read: tags: No such file or directory

This commit explicitly specifies "tags" filename for tags generation.
2017-03-24 17:23:43 +09:00
Ned Deily 554626ada7 bpo-27593: Revise git SCM build info. (#744)
Use --short form of git hash.  Use output from "git describe" for tag.

Expected outputs:
1. previous hg
2. previous git
3. updated git

Release (tagged) build:
1. Python 3.7.0a0 (v3.7.0a0:4def2a2901a5, ...
2. Python 3.7.0a0 (v3.7.0a0^0:05f53735c8912f8df1077e897f052571e13c3496, ...
3. Python 3.7.0a0 (v3.7.0a0:05f53735c8, ...

Development build:
1. Python 3.7.0a0 (default:41df79263a11, ...
2. Python 3.7.0a0 (master:05f53735c8912f8df1077e897f052571e13c3496, ...
3. Python 3.7.0a0 (heads/master-dirty:05f53735c8, ...

"dirty" means the working tree has uncommitted changes.
See "git help describe" for more info.
2017-03-20 23:41:52 -04:00
Ned Deily 5c4b0d063a bpo-27593: Get SCM build info from git instead of hg. (#446)
sys.version and the platform module python_build(),
python_branch(), and python_revision() functions now use
git information rather than hg when building from a repo.

Based on original patches by Brett Cannon and Steve Dower.
2017-03-04 00:19:55 -05:00
Victor Stinner 193ee0a0e8 Prohibit implicit C function declarations
Issue #27659: use -Werror=implicit-function-declaration when possible (GCC and
Clang, but it depends on the compiler version).

Patch written by Chi Hsuan Yen.
2017-02-06 14:24:00 +01:00
Xavier de Gaye 9971220e41 Issue #26851: Merge 3.6. 2017-01-04 21:53:53 +01:00
Xavier de Gaye 2a352b667b Issue #26851: Set Android compilation and link flags. 2017-01-04 21:51:16 +01:00
Xavier de Gaye 507cbb0c0c Issue #28762: Merge 3.6. 2016-12-22 10:40:44 +01:00
Xavier de Gaye bdf0d0f039 Issue #28762: lockf() is available on Android API level 24, but the
F_LOCK macro is not defined in android-ndk-r13.
2016-12-22 10:38:59 +01:00
Xavier de Gaye a1cb689602 Issue #28538: Merge 3.6. 2016-12-21 17:30:50 +01:00
Xavier de Gaye 40e320b31e Issue #28538: On Darwin net/if.h requires that sys/socket.h be included beforehand. 2016-12-21 17:29:59 +01:00
Xavier de Gaye 3bfa1ed74d Issue #28538: Merge 3.6. 2016-12-21 12:48:26 +01:00
Xavier de Gaye 708784255e Issue #28538: Fix the compilation error that occurs because if_nameindex() is
available on Android API level 24, but the if_nameindex structure is not defined.
2016-12-21 12:46:36 +01:00
Benjamin Peterson 38f225dd48 merge 3.6 (#28932) 2016-12-19 23:55:24 -08:00
Benjamin Peterson b0eb986eb2 merge 3.5 (#28932) 2016-12-19 23:54:57 -08:00
Benjamin Peterson fb2ae15c67 add a specific configure check for sys/random.h (closes #28932) 2016-12-19 23:54:25 -08:00
Xavier de Gaye f191a9e8e4 Issue #28190: Merge 3.6. 2016-12-13 16:05:15 +01:00
Xavier de Gaye e13c3201fb Issue #28190: Cross compiling the _curses module does not use anymore
/usr/include/ncursesw as a headers search path.
2016-12-13 16:04:14 +01:00
Xavier de Gaye 5ca2b10213 Issue #28849: Merge 3.6. 2016-12-10 17:34:46 +01:00
Xavier de Gaye 32cf1acda8 Issue #28849: Do not define sys.implementation._multiarch on Android. 2016-12-10 17:31:28 +01:00
Martin Panter a57890e5ec Issue #10656: Merge AIX build fix from 3.6 2016-11-20 22:16:46 +00:00
Martin Panter e45df0a6da Issue #10656: Merge AIX build fix from 3.5 2016-11-20 22:06:44 +00:00
Gregory P. Smith ext:(%20%5BGoogle%20Inc.%5D) fe914c034f Rename the new --with-optimiations flag to --enable-optimizations. 2016-11-20 21:17:01 +00:00
Gregory P. Smith ext:(%20%5BGoogle%20Inc.%5D) 164eea5443 Rename the new --with-optimiations flag to --enable-optimizations. 2016-11-20 21:13:16 +00:00
Gregory P. Smith ext:(%20%5BGoogle%20Inc.%5D) 1016b2ff00 Rename the new --with-optimiations flag to --enable-optimizations. 2016-11-20 21:07:42 +00:00
Martin Panter 395733d46b Issue #10656: Fix out-of-tree building on AIX
The ld_so_aix script and python.exp file are created in the build directory.
Patch by Tristan Carel and Michael Haubenwallner.
2016-11-20 07:56:37 +00:00
Brett Cannon 1d8f755e67 Issue #28605: Fix the help and What's New entry for --with-optimizations. 2016-11-03 16:20:00 -07:00
Brett Cannon d4ef9d3feb Merge for issue #28605 2016-11-03 16:21:11 -07:00
Zachary Ware e999e96143 Issue #21085: Fix accidental leading +'s in configure.ac 2016-10-01 01:06:51 -05:00
Zachary Ware 6a6967e827 Issue #21085: add configure check for siginfo_t.si_band
Patch by Masayuki Yamamoto, reviewed and rebased by Erik Bray.

This is a first step on the long road toward resupporting Cygwin, which does
not provide siginfo_t.si_band.
2016-10-01 00:47:27 -05:00
Christian Heimes ae0fa7ee6c Write configure message to AS_MESSAGE_FD 2016-09-24 12:34:31 +02:00
Christian Heimes 938da643ee Write configure message to AS_MESSAGE_FD 2016-09-24 12:34:25 +02:00
Benjamin Peterson 637d1e2b0a merge 3.6 2016-09-20 20:39:44 -07:00
Benjamin Peterson 0c21214f3e replace usage of Py_VA_COPY with the (C99) standard va_copy 2016-09-20 20:39:33 -07:00
Zachary Ware f40d4ddff3 Closes #27979: Remove bundled copy of libffi
An installed copy of libffi is now required for building _ctypes on
any platform but OSX and Windows.
2016-09-17 01:25:24 -05:00
Benjamin Peterson 40465ebc27 merge 3.6 (#28081) 2016-09-13 22:55:19 -07:00
Benjamin Peterson 37098cd584 more granular configure checks for clock_* functions (closes #28081) 2016-09-13 22:55:09 -07:00
Ned Deily 4829bc6619 Bump to 3.7.0a0 2016-09-12 17:29:04 -04:00
Martin Panter 11a86ffe5e Issue #28066: Merge srcdir fix from 3.5 2016-09-12 01:51:44 +00:00
Martin Panter c5ee3caa80 Issue #28066: Fix include search directory logic for out-of-tree builds 2016-09-12 01:32:03 +00:00
Xavier de Gaye 92dec548ff Issue #28046: get_sysconfigdata_name() uses the _PYTHON_SYSCONFIGDATA_NAME
environment variable that is defined when cross-compiling.
2016-09-11 22:22:24 +02:00
Serhiy Storchaka ea80ffb851 Issue #23545: Turn on extra warnings on GCC. 2016-09-11 21:56:32 +03:00
Benjamin Peterson 050af5d89a Backed out changeset 8460a729e1de 2016-09-10 17:53:13 -07:00
Benjamin Peterson cc1ea5dedc force gcc to use c99 inline semantics 2016-09-10 17:45:33 -07:00
Zachary Ware c4b53afce4 Issue #28046: Remove platform-specific directories from sys.path 2016-09-09 17:59:49 -07:00
Łukasz Langa a785c87d6e DTrace support: function calls, GC activity, line execution
Tested on macOS 10.11 dtrace, Ubuntu 16.04 SystemTap, and libbcc.

Largely based by an initial patch by Jesús Cea Avión, with some
influence from Dave Malcolm's SystemTap patch and Nikhil Benesch's
unification patch.

Things deliberately left out for simplicity:
- ustack helpers, I have no way of testing them at this point since
they are Solaris-specific
- PyFrameObject * in function__entry/function__return, this is
SystemTap-specific
- SPARC support
- dynamic tracing
- sys module dtrace facility introspection

All of those might be added later.
2016-09-09 17:37:37 -07:00
Zachary Ware 935043d1ac Closes #27976: Deprecate bundled full copy of libffi
Builds on non-OSX UNIX now default to using the system libffi, and warn if the
bundled copy is used.
2016-09-09 17:01:21 -07:00
Benjamin Peterson 4fd64b9a6a remove ceval timestamp support 2016-09-09 14:57:58 -07:00
Benjamin Peterson 7d895ac953 remove --with(out)-signal-module, since the signal module is non-optional 2016-09-09 12:01:10 -07:00
Benjamin Peterson a845a81e42 remove unused osx10.5 sdk check 2016-09-09 11:37:58 -07:00
Benjamin Peterson 93b2dee80e compile with -std=c99 instead of -std=gnu99; use kiddie-gloves with bluetooth/bluetooh.h (#28017) 2016-09-09 10:22:45 -07:00
Gregory P. Smith ext:(%20%5BGoogle%20Inc.%5D) ba7224f934 issue28032: never imply --with-lto as part of --with-optimizations.
Too many build tool chains do not properly support it, including building
and linking an executable fine that simply segfaults when you try to run
it (such as debian jessie 8.5's gcc 4.9).  On others where it does appear
to build (ubuntu 16.04's gcc 5.4) there are still test_distutils and test_gdb
failures to deal with.

We're not going to spend time attempting to maintain a complicated white list
of what does and doesn't work in our configure.ac file.
2016-09-08 22:42:45 +00:00
Gregory P. Smith ext:(%20%5BGoogle%20Inc.%5D) 14c7f71150 issue28032: never imply --with-lto as part of --with-optimizations.
Too many build tool chains do not properly support it, including building
and linking an executable fine that simply segfaults when you try to run
it (such as debian jessie 8.5's gcc 4.9).  On others where it does appear
to build (ubuntu 16.04's gcc 5.4) there are still test_distutils and test_gdb
failures to deal with.

We're not going to spend time attempting to maintain a complicated white list
of what does and doesn't work in our configure.ac file.
2016-09-08 22:38:46 +00:00
Martin Panter 0be894b2f6 Issue #27895: Spelling fixes (Contributed by Ville Skyttä). 2016-09-07 12:03:06 +00:00
Gregory P. Smith 799520c91e Fixes issue# 27983: Cause lack of llvm-profdata tool when using clang -
required for PGO linking - to be a configure time error rather than
make time when --with-optimizations is enabled.  Also improve our
ability to find the llvm-profdata tool on MacOS and some Linuxes.
2016-09-07 16:10:00 -07:00
Brett Cannon 8c94f97465 Issue #26359: Add the --with-optimizations flag. 2016-09-06 17:15:21 -07:00
Benjamin Peterson 01c340da23 do not leak addrinfo in configure test 2016-09-06 15:54:24 -07:00
Benjamin Peterson 47ff0734b8 more PY_LONG_LONG to long long 2016-09-08 09:15:54 -07:00
Christian Heimes 7f9eb6eda3 Issue 28017: Use -std=gnu99 to get C99 with GNU extensions for bluetooth.h on big endian. 2016-09-08 11:39:42 +02:00
Gregory P. Smith f3b5bcafcb Fixes Issue #27983: Cause lack of llvm-profdata tool when using clang as
required for PGO linking to be a configure time error rather than
make time when --with-optimizations is enabled.  Also improve our
ability to find the llvm-profdata tool on MacOS and some Linuxes.
2016-09-07 16:11:08 -07:00
Benjamin Peterson d170256585 put -std=c99 in CFLAGS_NODIST 2016-09-07 12:00:06 -07:00
Benjamin Peterson 7490577f6a compile with -std=c99 2016-09-07 11:53:55 -07:00
Benjamin Peterson 0d67ed54f7 permit intermingled declarations 2016-09-07 11:43:22 -07:00
Benjamin Peterson a9296e7f3b require C99 bool 2016-09-07 11:06:17 -07:00
Brett Cannon 63d98bcd4c Issue #26359: Add the --with-optimizations configure flag.
The flag will activate LTO and PGO build support when available.
Thanks to Alecsandur Patrascu of Intel for the original patch.
2016-09-06 17:12:40 -07:00
Benjamin Peterson 0cf223873e merge 3.5 2016-09-06 15:54:38 -07:00
Ned Deily 8482ce4868 Issue #21122: Fix LTO builds on OS X.
Patch by Brett Cannon.
2016-09-06 15:09:20 -07:00
Benjamin Peterson df6ff7bcca add back SIZEOF_UINTPTR_T 2016-09-06 13:53:14 -07:00
Benjamin Peterson b9d9eeda2a require uintptr_t to exist 2016-09-06 13:33:56 -07:00
Benjamin Peterson 4fe55106d1 require standard int types to be defined (#17884) 2016-09-06 11:58:01 -07:00
Benjamin Peterson ed4aa83ff7 require a long long data type (closes #27961) 2016-09-05 17:44:18 -07:00