summaryrefslogtreecommitdiff
path: root/TSRM
Commit message (Collapse)AuthorAgeFilesLines
* Merge branch 'PHP-7.3' into PHP-7.4Christoph M. Becker2020-05-051-7/+9
|\ | | | | | | | | * PHP-7.3: Fix #79566: Private SHM is not private on Windows
| * Fix #79566: Private SHM is not private on WindowsChristoph M. Becker2020-05-051-7/+9
| | | | | | | | | | | | | | We map the POSIX semantics of `IPC_PRIVATE` by creating unnamed file mapping objects on Windows. While that is not particularly useful for ext/shmop, which is the only bundled extension which uses `shmget()`, it may be useful for external extensions.
* | Merge branch 'PHP-7.3' into PHP-7.4Christoph M. Becker2020-01-031-1/+7
|\ \ | |/ | | | | | | * PHP-7.3: Fix #78538: shmop memory leak
| * Fix #78538: shmop memory leakChristoph M. Becker2020-01-031-1/+7
| | | | | | | | | | If the descriptor's refcount drops to zero, we have to unmap the respective file view, to avoid leaking memory.
| * Merge branch 'PHP-7.2' into PHP-7.3Christoph M. Becker2019-08-061-1/+1
| |\ | | | | | | | | | | | | * PHP-7.2: Fix #78282: atime and mtime mismatch
| | * Fix #78282: atime and mtime mismatchChristoph M. Becker2019-08-061-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | The fix for bug #78241 assumed that `time_t` would always be 64bit, but actually is 32bit for x86. We therefore enforce 64bit arithmetic to avoid wrapping. (cherry picked from commit bf242d58e77d50d4d8fdaaaca7ede686ec4467c0)
* | | Fix #78282: atime and mtime mismatchChristoph M. Becker2019-07-131-1/+1
| | | | | | | | | | | | | | | | | | The fix for bug #78241 assumed that `time_t` would always be 64bit, but actually is 32bit for x86. We therefore enforce 64bit arithmetic to avoid wrapping.
* | | Remove tsrm_config_common.hPeter Kokot2019-07-131-69/+0
| | | | | | | | | | | | | | | | | | | | | - Checks and defines are not relevant for files that include it anymore - Some code is not used anymore - Defines are a bit duplicated in zend_portability.h and TSRM.h file - MAXPATHLEN defs moved to zend_virtual_cwd.h
* | | Remove unused tsrm_strtok_r() functionNikita Popov2019-07-123-72/+1
| | | | | | | | | | | | | | | There is also a php_strtok_r() function, which is actually used, but nothing uses the tsrm_strtok_r() variant...
* | | Remove TSRM/tsrm_config.w32.hPeter Kokot2019-07-103-16/+2
| | | | | | | | | | | | | | | | | | | | | The tsrm_config.w32.h file is a simple wrapper for already defined symbols and includes elsewhere. Closes GH-4383
* | | Remove PTHREADS_ASSIGN_VARSPeter Kokot2019-07-051-28/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This simplifies TSRM build steps a bit and avoids doing unnecessary steps: - The `PTHREADS_CHECK_COMPILE` can called inside the for loops only since this is only where the `$pthreads_checked` variable is used. - Assigning variables can be then done only in the configure.ac once. - use `m4_include()` instead of the `sinclude()` in the middle of the build steps. - The `$threads_result` variable is not used in the code or in extensions.
* | | Merge branch 'PHP-7.3' into PHP-7.4Christoph M. Becker2019-07-031-1/+1
|\ \ \ | |/ / | | | | | | | | | * PHP-7.3: Fix #78241: touch() does not handle dates after 2038 in PHP 64-bit
| * | Merge branch 'PHP-7.2' into PHP-7.3Christoph M. Becker2019-07-031-1/+1
| |\ \ | | |/ | | | | | | | | | * PHP-7.2: Fix #78241: touch() does not handle dates after 2038 in PHP 64-bit
| | * Fix #78241: touch() does not handle dates after 2038 in PHP 64-bitChristoph M. Becker2019-07-031-1/+1
| | | | | | | | | | | | | | | | | | `time_t` defaults to `_time64` (which is 64bit signed) even on x86, but `Int32x32To64()` truncates it to signed 32bit. We replace the macro with the "manual" calculation.
* | | Remove some old BeOS artefactsPeter Kokot2019-07-021-3/+0
| | | | | | | | | | | | | | | | | | | | | - checking for beos systems is no longer relevant in configure.ac - usage of undefined constant BETHREADS removed. Closes GH-4346
* | | Remove TSRM_BASIC_CHECKSPeter Kokot2019-07-011-8/+0
| | | | | | | | | | | | | | | | | | | | | | | | This macro is not needed anymore. The AC_PROG_CC is done in the main configure.ac file and the ranlib check is done by the bundled libtool macros. Closes GH-4339
* | | Sync functions checksPeter Kokot2019-06-301-2/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Removed unused checks: - mbsinit check removed, HAVE_MBSINIT removed (not used in php-src) - mempcpy check removed, HAVE_MEMPCPY removed (not used in php-src anymore since 560ed89bfbb56526251e9bd2fbcb27e5932641d8 which uses PHP's own implementation) - strpncpy check removed, added via a8c9e893b6911c785f698d724b2ff61e7aebb737 and not used. - setpgid check removed since HAVE_SETPGID is not used Moved to a central configure.ac: - fpclass - mbrlen moved to configure.ac (since the HAVE_MBRLEN is used accross the php-src) - sigprocmask - getcwd - getwd - glob - strfmon - nice Duplicated checks removed: - gethostname - getlogin - getpwuid_r - socketpair - mprotect check simplified
* | | implement tsrm_is_shutdown APIJoe Watkins2019-06-282-79/+44
| | |
* | | This reverts 0e5d4ea55554872fe72e5d984b73fc21abc561fe to fix the build on MacOSXJoe Watkins2019-06-111-7/+3
| | | | | | | | | | | | | | | | | | On Mac thread_local and __thread are not ABI compatible, in addition, thread_local comes with additional overhead, __thread seems to be the most suitable linkage to use regardless of c++/c
* | | Merge branch 'PHP-7.3' into PHP-7.4Nikita Popov2019-06-041-6/+0
|\ \ \ | |/ /
| * | Merge branch 'PHP-7.2' into PHP-7.3Nikita Popov2019-06-041-6/+0
| |\ \ | | |/
| | * Reload tsrmls_id in release builds as wellNikita Popov2019-06-041-6/+0
| | | | | | | | | | | | | | | | | | If TSRM is shut down and started again (something that phpdbg does), then tsrmls_id needs to be reloaded everywhere. As tsrmls_id update is a rare operation, doing that shouldn't be a problem.
| | * Sync leading and final newlines in source code filesPeter Kokot2018-10-143-4/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This patch adds missing newlines, trims multiple redundant final newlines into a single one, and trims redundant leading newlines. According to POSIX, a line is a sequence of zero or more non-' <newline>' characters plus a terminating '<newline>' character. [1] Files should normally have at least one final newline character. C89 [2] and later standards [3] mention a final newline: "A source file that is not empty shall end in a new-line character, which shall not be immediately preceded by a backslash character." Although it is not mandatory for all files to have a final newline fixed, a more consistent and homogeneous approach brings less of commit differences issues and a better development experience in certain text editors and IDEs. [1] http://pubs.opengroup.org/onlinepubs/9699919799/basedefs/V1_chap03.html#tag_03_206 [2] https://port70.net/~nsz/c/c89/c89-draft.html#2.1.1.2 [3] https://port70.net/~nsz/c/c99/n1256.html#5.1.1.2
| | * Trim trailing whitespace in source code filesPeter Kokot2018-10-134-14/+14
| | |
| | * year++Xinchen Hui2018-01-022-2/+2
| | |
| * | Future-proof email addressesZeev Suraski2018-11-012-2/+2
| | |
| * | Sync leading and final newlines in source code filesPeter Kokot2018-10-142-3/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This patch adds missing newlines, trims multiple redundant final newlines into a single one, and trims redundant leading newlines. According to POSIX, a line is a sequence of zero or more non-' <newline>' characters plus a terminating '<newline>' character. [1] Files should normally have at least one final newline character. C89 [2] and later standards [3] mention a final newline: "A source file that is not empty shall end in a new-line character, which shall not be immediately preceded by a backslash character." Although it is not mandatory for all files to have a final newline fixed, a more consistent and homogeneous approach brings less of commit differences issues and a better development experience in certain text editors and IDEs. [1] http://pubs.opengroup.org/onlinepubs/9699919799/basedefs/V1_chap03.html#tag_03_206 [2] https://port70.net/~nsz/c/c89/c89-draft.html#2.1.1.2 [3] https://port70.net/~nsz/c/c99/n1256.html#5.1.1.2
| * | Trim trailing whitespace in source code filesPeter Kokot2018-10-132-7/+7
| | |
* | | Remove unused variableGabriel Caruso2019-05-291-1/+0
| | |
* | | Normalize comments in *nix build system m4 filesPeter Kokot2019-05-122-20/+34
| | | | | | | | | | | | | | | | | | | | | | | | | | | Normalization include: - Use dnl for everything that can be ommitted when configure is built in favor of the shell comment character # which is visible in the output. - Line length normalized to 80 columns - Dots for most of the one line sentences - Macro definitions include similar pattern header comments now
* | | Remove TSRM configuration headerPeter Kokot2019-04-292-2/+2
| | | | | | | | | | | | | | | | | | TSRM configuration header file was once created by separate autoconf build system for TSRM and is with the current code not directly needed like this anymore.
* | | Remove unused TSRM/readdir.h headerPeter Kokot2019-04-291-3/+0
| | | | | | | | | | | | | | | | | | | | | This was once part of TSRM but then got refactored into the windows implementation win32/readdir.h directly. Instead of including such files directly code should use zend_virtual_cwd.h which is already part of the php.h file.
* | | Move Autoconf Archive macros to a common m4 dirPeter Kokot2019-04-232-202/+0
| | | | | | | | | | | | | | | In PHP the build dir is used as a directory for external macros including Autoconf Archive macros.
* | | Remove sinclude from tsrm.m4Peter Kokot2019-04-231-2/+0
| | | | | | | | | | | | | | | This was once part of a standalone TSRM build and is not used in current build system anymore.
* | | Make tsrm_env_lock() voidNikita Popov2019-04-112-8/+8
| | | | | | | | | | | | | | | | | | We're not checking the return value and the NTS version of this generates warnings. If we want to handle lock failures, we should do a hard abort inside tsrm_env_lock() itself.
* | | Remove HAVE_SIGNAL_HPeter Kokot2019-04-071-2/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The `<signal.h>` header file is part of the standard C89 headers [1] and on current systems can be included unconditionally. Since file requires at least C89 or greater, the `HAVE_SIGNAL_H` symbol defined by Autoconf in Zend.m4 [2] can be ommitted and simplifed. The bundled libmagic (file) also ommits the usage of HAVE_SIGNAL_H since 5.35 however current version in PHP is very modified 5.34 version and will be refactored separately. Check for HAVE_SIGNAL_H is therefore still done in the configure.ac. Refs: [1] https://port70.net/~nsz/c/c89/c89-draft.html#4.1.2 [2] https://git.savannah.gnu.org/cgit/autoconf.git/tree/lib/autoconf/headers.m4
* | | Remove HAVE_LIMITS_HPeter Kokot2019-04-071-2/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The `<limits.h>` header file is part of the standard C89 headers [1] and on current systems can be included unconditionally. Since PHP requires at least C89 or greater, the `HAVE_LIMITS_H` symbol defined by Autoconf in configure.ac [2] can be ommitted and simplifed however due to bundled file library (libmagic) and timelib still using it, the removal there was omitted and done only in Zend.m4 file. Current bundled libraries libtime, oniguruma, and libmagic still include partial `HAVE_LIMITS_H` usage and will be more refactored when this is possible. Refs: [1] https://port70.net/~nsz/c/c89/c89-draft.html#4.1.2 [2] https://git.savannah.gnu.org/cgit/autoconf.git/tree/lib/autoconf/headers.m4
* | | tsrm environment lockJoe Watkins2019-03-292-1/+22
| | |
* | | Implemented a faster way to access predefined TSRM resources - CG(), EG(), etc.Dmitry Stogov2019-03-142-27/+136
| | |
* | | Avoid reinitailization of ZTS cache pointer. Initialize it once in TSRM.cDmitry Stogov2019-03-121-2/+2
| | |
* | | Clean *nix build systemPeter Kokot2019-03-071-1/+0
| | | | | | | | | | | | | | | | | | | | | | | | - remove some outdated and not used macro calls - remove some unused variables - Remove not needed comment from tokenizer config.m4 - Remove not needed comment - remove not needed local variables for editors and syntax highlighting
* | | Add AS_HELP_STRING to *nix build configure optionsPeter Kokot2019-03-071-21/+17
| | | | | | | | | | | | | | | | | | | | | | | | The Autoconf's default AS_HELP_STRING macro can properly format help strings [1] so watching out if columns are aligned manually is not anymore. [1] https://www.gnu.org/software/autoconf/manual/autoconf.html#Pretty-Help-Strings
* | | Remove AC_PROG_CC_C_OPeter Kokot2019-03-031-1/+0
| | | | | | | | | | | | | | | | | | The AC_PROG_CC_C_O macro checks if compiler can use both -c and -o options together and if not it defines the NO_MINUS_C_MINUS_O symbol. It is not used in current codebase and therefore removed.
* | | Stricter validation for popen mode argument on WindowsNikita Popov2019-02-221-7/+7
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Context: The ext/standard/tests/file/popen_pclose_error-win32.phpt test often fails under parallel testing, because the "is not recognized as an internal or external command" message doesn't actually have a guaranteed position in the output. While looking into this, I noticed that this test on Windows tests something very different (invalid comand) than on Linux (invalid mode). Here I'm adjusting the Windows popen implementation so it immediately fails on a `rw` mode, just like it does on Linux.
* | | Remove local variablesPeter Kokot2019-02-037-63/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This patch removes the so called local variables defined per file basis for certain editors to properly show tab width, and similar settings. These are mainly used by Vim and Emacs editors yet with recent changes the once working definitions don't work anymore in Vim without custom plugins or additional configuration. Neither are these settings synced across the PHP code base. A simpler and better approach is EditorConfig and fixing code using some code style fixing tools in the future instead. This patch also removes the so called modelines for Vim. Modelines allow Vim editor specifically to set some editor configuration such as syntax highlighting, indentation style and tab width to be set in the first line or the last 5 lines per file basis. Since the php test files have syntax highlighting already set in most editors properly and EditorConfig takes care of the indentation settings, this patch removes these as well for the Vim 6.0 and newer versions. With the removal of local variables for certain editors such as Emacs and Vim, the footer is also probably not needed anymore when creating extensions using ext_skel.php script. Additionally, Vim modelines for setting php syntax and some editor settings has been removed from some *.phpt files. All these are mostly not relevant for phpt files neither work properly in the middle of the file.
* | | Remove yearly range from copyright noticeZeev Suraski2019-01-302-2/+2
| | |
* | | Future-proof email addresses...Zeev Suraski2018-11-012-2/+2
| | |
* | | Sync leading and final newlines in source code filesPeter Kokot2018-10-141-1/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This patch adds missing newlines, trims multiple redundant final newlines into a single one, and trims redundant leading newlines. According to POSIX, a line is a sequence of zero or more non-' <newline>' characters plus a terminating '<newline>' character. [1] Files should normally have at least one final newline character. C89 [2] and later standards [3] mention a final newline: "A source file that is not empty shall end in a new-line character, which shall not be immediately preceded by a backslash character." Although it is not mandatory for all files to have a final newline fixed, a more consistent and homogeneous approach brings less of commit differences issues and a better development experience in certain text editors and IDEs. [1] http://pubs.opengroup.org/onlinepubs/9699919799/basedefs/V1_chap03.html#tag_03_206 [2] https://port70.net/~nsz/c/c89/c89-draft.html#2.1.1.2 [3] https://port70.net/~nsz/c/c99/n1256.html#5.1.1.2
* | | Trim trailing whitespace in source code filesPeter Kokot2018-10-131-6/+6
| | |
* | | Remove HAVE_STDARG_HPeter Kokot2018-09-182-5/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The C89 standard and later defines the `<stdarg.h>` header as part of the standard headers [1]. On current systems it is always present and can be included unconditionally. Checking for presence and functionality of the `<stdarg.h>` header and variadic function is not relevant anymore on current systems since this is always available. Also Autoconf suggests relying on at least C89 or above [2] and [3]. The following files were regenerated with re2c 1.0.3: - Zend/zend_language_scanner.c - Zend/zend_language_scanner_defs.h Refs: [1] https://port70.net/~nsz/c/c89/c89-draft.html#4.1.2 [2] http://git.savannah.gnu.org/cgit/autoconf.git/tree/lib/autoconf/headers.m4 [3] https://www.gnu.org/software/autoconf/manual/autoconf-2.69/autoconf.html