#
ff76cb73 |
| 18-Apr-2024 |
Ørjan Malde |
rudimentary midipix port (#13896)
|
#
413f2cd4 |
| 27-Mar-2024 |
Peter Kokot |
Refactor root build directories (#13785) This adds all root build directories in one call. PEAR directory is created only when enabled and duplicated Zend directory creation is remov
Refactor root build directories (#13785) This adds all root build directories in one call. PEAR directory is created only when enabled and duplicated Zend directory creation is removed, because it was intended for the zend_config.h when building out-of-source or using the config.status manually before the PHP_ADD_BUILD_DIR was introduced in the build system.
show more ...
|
#
3de3e137 |
| 25-Feb-2024 |
Ayesh Karunaratne |
ext/openssl: Bump minimum required OpenSSL version to 1.1.1 Bumps the minimum required OpenSSL version from 1.0.2 to 1.1.1. OpenSSL 1.1.1 is an LTS release, but has reached[^1] EOL
ext/openssl: Bump minimum required OpenSSL version to 1.1.1 Bumps the minimum required OpenSSL version from 1.0.2 to 1.1.1. OpenSSL 1.1.1 is an LTS release, but has reached[^1] EOL from upstream. However, Linux distro/OS vendors continue to ship OpenSSL 1.1.1, so 1.1.1 was picked as the minimum. The current minimum 1.0.2 reached EOL in 2018. Bumping the minimum required OpenSSL version makes it possible for ext-openssl to remove a bunch of conditional code, and assume that TLS 1.3 (shipped with OpenSSL 1.1.1) will be supported everywhere. - Debian buster: 1.1.1[^2] - Ubuntu 20.04: 1.1.1[^3] - CentOS/RHEL 7: 1.0.2 - RHEL 8/Rocky 8/EL 8: 1.1.1 - Fedora 38: 3.0.9 (`openssl11` provides OpenSSL 1.1 as well) RHEL/CentOS 7 reaches EOL mid 2024, so for PHP 8.4 scheduled towards the end of this year, we can safely bump the minimum OpenSSL version. [^1]: https://www.openssl.org/blog/blog/2023/03/28/1.1.1-EOL/index.html [^2]: https://packages.debian.org/buster/libssl-dev [^3]: https://packages.ubuntu.com/focal/libssl-dev
show more ...
|
#
530e0d68 |
| 21-Mar-2024 |
Peter Kokot |
Create modules directory in a centralized location (#13411) Shared objects of extensions during the *nix build are copied to the `modules` directory. It is a practice established since t
Create modules directory in a centralized location (#13411) Shared objects of extensions during the *nix build are copied to the `modules` directory. It is a practice established since the early days of the PHP build system. Other build systems may have similar concept of "library destination directory". On Windows, they are put into the root build directory. Such directory simplifies collection of the shared extensions during testing, or when running the cli executable at the end of the build process. This change ensures that the directory is consistently created in a single location, for both the primary PHP build process and when utilizing `phpize` within community extensions. The AC_CONFIG_COMMANDS_PRE is executed at the end of the configuration phase, before creating the config.status script, where also build directories and global Makefile are created. The pwd is executed using the recommended $(...) instead of the obsolete backticks. Autoconf automatically locates the proper shell and re-executes the configure script if such case is found that $(...) is not supported (the initial /bin/sh on Solaris 10, for example).
show more ...
|
#
868257a3 |
| 16-Mar-2024 |
David Carlier |
Fix GH-13727: macro generating invalid call test prototypes fixes. autoconf/libtool generating code to test features missed `void` for C calls prototypes w/o arguments. Note that spe
Fix GH-13727: macro generating invalid call test prototypes fixes. autoconf/libtool generating code to test features missed `void` for C calls prototypes w/o arguments. Note that specific changes related to libtool have to be upstreamed. Co-authored-by: Peter Kokot <petk@php.net> close GH-13732
show more ...
|
#
8595bead |
| 10-Mar-2024 |
Peter Kokot |
Use default Autoconf's AC_LANG_PROGRAM (#13565) This adds default test program prologue and body of `int main(void) { return 0; }` where possible.
|
#
42a4e505 |
| 01-Mar-2024 |
Peter Kokot |
Sync logical operators in shell scripting code (#13560) This updates the obsolescent `-a` and `-o` binary primaries to `&&` and `||`. https://pubs.opengroup.org/onlinepubs/96999
Sync logical operators in shell scripting code (#13560) This updates the obsolescent `-a` and `-o` binary primaries to `&&` and `||`. https://pubs.opengroup.org/onlinepubs/9699919799/utilities/test.html
show more ...
|
#
2ca38d11 |
| 27-Feb-2024 |
Peter Kokot |
Remove PHP_CHECK_GCC_ARG (#13525) The PHP_CHECK_GCC_ARG has been already removed in PHP 8.0 and this also removes the error emitting wrapper. Patches for the solr and vld extens
Remove PHP_CHECK_GCC_ARG (#13525) The PHP_CHECK_GCC_ARG has been already removed in PHP 8.0 and this also removes the error emitting wrapper. Patches for the solr and vld extensions have been sent upstream.
show more ...
|
#
e72f0c88 |
| 21-Feb-2024 |
Peter Kokot |
Simplify prctl and procctl Autoconf checks (#13450) The AC_CHECK_FUNCS checks whether the linker sees the function in the usual libraries, in this case libc. This is a simple trick to al
Simplify prctl and procctl Autoconf checks (#13450) The AC_CHECK_FUNCS checks whether the linker sees the function in the usual libraries, in this case libc. This is a simple trick to also check existence of belonging headers, since the code uses HAVE_PRCTL and HAVE_PROCCTL to include headers and call functions.
show more ...
|
#
25923987 |
| 16-Feb-2024 |
Peter Kokot |
Refactor PHP_SOCKADDR_CHECKS (#13406) Instead of the project macro, the sockaddr_storage and sockaddr.sa_len can be checked with the AC_CHECK_TYPES and AC_CHECK_MEMBERS by including
Refactor PHP_SOCKADDR_CHECKS (#13406) Instead of the project macro, the sockaddr_storage and sockaddr.sa_len can be checked with the AC_CHECK_TYPES and AC_CHECK_MEMBERS by including the sys/socket.h. Some systems (~1988) didn't include the sys/types.h in the socket.h (obsolete on current systems). These macros by default define the HAVE_STRUCT_SOCKADDR_STORAGE and HAVE_STRUCT_SOCKADDR_SA_LEN.
show more ...
|
#
95887962 |
| 15-Feb-2024 |
Peter Kokot |
Use AC_CHECK_TYPES for checking struct flock (#13397) The struct flock is defined in fcntl.h, if system has it. This removes redundant PHP_STRUCT_FLOCK M4 macro in favor of the AC_CHECK_
Use AC_CHECK_TYPES for checking struct flock (#13397) The struct flock is defined in fcntl.h, if system has it. This removes redundant PHP_STRUCT_FLOCK M4 macro in favor of the AC_CHECK_TYPES, which by default defines symbol HAVE_STRUCT_FLOCK.
show more ...
|
#
68691665 |
| 13-Feb-2024 |
Peter Kokot |
Remove obsolete PHP_WITH_SHARED M4 macro (#13380) This macro is obsolete in favor of the PHP_ARG_WITH macro. It was once used in combination with the AC_ARG_WITH macro to determine, whet
Remove obsolete PHP_WITH_SHARED M4 macro (#13380) This macro is obsolete in favor of the PHP_ARG_WITH macro. It was once used in combination with the AC_ARG_WITH macro to determine, whether the extension has been configured as shared.
show more ...
|
#
eb76a830 |
| 11-Feb-2024 |
Peter Kokot |
Remove PHP atomic includes and PHP_DEFINE M4 macro (#13372) PHP_DEFINE was introduced with the PHP 5 build system 9d9d39a0de3bec962c343051011f5a2ed7d7b242 and then refactored via 350
Remove PHP atomic includes and PHP_DEFINE M4 macro (#13372) PHP_DEFINE was introduced with the PHP 5 build system 9d9d39a0de3bec962c343051011f5a2ed7d7b242 and then refactored via 350de12bc24472ccf20ff9a8b39a6da0185c070d. This was once used to put defined constants into a single file to have more fine-graned dependencies (atomic includes). Since no known PHP extension is using this and it makes very little sense to use this, this M4 macro can be removed in favor of the Autoconf native way using AC_DEFINE and the usual included files php_config.h and config.h. - Generated unused include directory removed - Remove include dir from DEFS - Remove also include dir from PDO checks
show more ...
|
#
41e3044f |
| 09-Feb-2024 |
Peter Kokot |
Remove obsolete check for missing fclose declaration (#13360) SunOS 4.1.4 from 1994 didn't have fclose declared in standard header stdio.h. This doesn't need to be checked anymore, as fc
Remove obsolete check for missing fclose declaration (#13360) SunOS 4.1.4 from 1994 didn't have fclose declared in standard header stdio.h. This doesn't need to be checked anymore, as fclose is part of the C89+ standard and declaration is present on Solaris 10 (SunOS 5.10) and later.
show more ...
|
#
16c1c49f |
| 10-Jan-2024 |
divinity76 |
Update re2c and bison version error message "or newer" (#13112) * nitpick re2c "or newer" * nitpick bison "or newer"
|
#
d57a7767 |
| 10-Jan-2024 |
Jan Palus |
Set libtool tag per command instead of global one Global --tag=CC defined in configure.ac is not correct in all cases. For example linking objects that were compiled from C++ sources nee
Set libtool tag per command instead of global one Global --tag=CC defined in configure.ac is not correct in all cases. For example linking objects that were compiled from C++ sources needs to be done with C++ compiler, however for link mode libtool will prefer compiler indicated with --tag. Fixes GH-12349
show more ...
|
#
fd7342f6 |
| 10-Jan-2024 |
Peter Kokot |
Fix _GNU_SOURCE redefined warnings in config.log _GNU_SOURCE is already defined when doing these checks and warnings are emitted otherwise in the configuration step.
|
#
3164a9ef |
| 02-Jan-2024 |
Peter Kokot |
Remove unused in_addr_t type alias (#12994) The fastcgi code was refactored in 18cf4e0a8a574034f60f4d123407c173e57e54ec and in_addr_t is no longer used. The PHP_CHECK_IN_ADDR_T is al
Remove unused in_addr_t type alias (#12994) The fastcgi code was refactored in 18cf4e0a8a574034f60f4d123407c173e57e54ec and in_addr_t is no longer used. The PHP_CHECK_IN_ADDR_T is also obsolete and not recommended way to discover availability of the type. If needed in the future, the AC_CHECK_TYPES can be used instead.
show more ...
|
#
84022db8 |
| 29-Dec-2023 |
Peter Kokot |
Remove unused SIZEOF_SHORT (#13034)
|
#
d657d559 |
| 29-Dec-2023 |
Peter Kokot |
Check host_alias on one place (#13042)
|
#
d93800ec |
| 22-Sep-2023 |
Thomas Hurst |
Fix GH-12273 - configure __builtin_cpu_init() check __builtin_cpu_init() is documented as having a void return type. It happens to return int on gcc, but is void on clang. Clos
Fix GH-12273 - configure __builtin_cpu_init() check __builtin_cpu_init() is documented as having a void return type. It happens to return int on gcc, but is void on clang. Close GH-122274
show more ...
|
#
abed8b8e |
| 22-Sep-2023 |
Peter Kokot |
Remove _IO_cookie_io_functions_t in favor of cookie_io_functions_t As noted in glibc, the cookie_io_functions_t should be used instead of internal _IO_cookie_io_functions_t. The
Remove _IO_cookie_io_functions_t in favor of cookie_io_functions_t As noted in glibc, the cookie_io_functions_t should be used instead of internal _IO_cookie_io_functions_t. The _IO_cookie_io_functions_t was once used as a convenience for not having the cookie_io_functions_t available (glibc <=2.1.1) as noted in 67bb9d1ae23fe4c7e4160dabfb4f07b51dccabf1. Check in the build system was also always setting the COOKIE_IO_FUNCTIONS_T to cookie_io_functions_t due to a typo. There is unused variable have_IO_cookie_io_functions_t vs. have_cookie_io_functions_t. - COOKIE_IO_FUNCTIONS_T removed Closes GH-12236
show more ...
|
#
62e24025 |
| 22-Sep-2023 |
Ilija Tovilo |
Use autoconf for recognizing __builtin_unreachable() (#12266) Older versions of GCC don't support __has_builtin(), but do support __builtin_unreachable().
|
#
02b3fb1f |
| 30-Aug-2023 |
Filip Zrůst <128540+f4z4on@users.noreply.github.com> |
Remove CPP when invoking dtrace utility We are experiencing an issue when building PHP with DTrace enabled with SystemTap (see GH-11847).† The issue is caused by inappropriate use C
Remove CPP when invoking dtrace utility We are experiencing an issue when building PHP with DTrace enabled with SystemTap (see GH-11847).† The issue is caused by inappropriate use C preprocessor detected by GNU Autoconf in our “configure” script. C preprocessor configuration found by AC_PROG_CPP macro is portable only to run on files with “.c” extension.‡ However, statically-defined tracing is described by D programs with “.d” extension which causes the issue. We experience this even on typical Linux distribution with GNU Compiler Collection (GCC) unless we override the defaults detected by our “configure” script. Many major Linux distributions use SystemTap to provide “dtrace” utility. It relies on both external C preprocessor and external C compiler. C preprocessor can be customized via CPP environment variable. Similarly, C compiler can be customized via CC environment variable. It also allows customization of C compiler flags via CFLAGS environment variable. We have recently aligned both CPP and CC environment variable with C preprocessor and C compiler we use to build regular C source code as provided by our “configure” script (see GH-11643).* We wanted to allow cross-compilation on Linux for which this was the only blocker. C compiler flags from CFLAGS_CLEAN macro have already been in place since versions 5.4.20 and 5.5.4 from 2013-09-18. We had modified all “dtrace” invocations in the same way to make it look consistent. However, only the C compiler (CC environment variable) is necessary to for cross-compilation. There have never been any reported issue with the C preprocessor. We acknowledge it would be great to allow C preprocessor customization as well. However, the implementation would require a lot of effort to do correctly given the limitations of AC_PROG_CPP macro from GNU Autoconf. This would be further complicated by the fact that all DTrace implementations, not just SystemTap, allow C preprocessor customization but Oracle DTrace, Open DTrace, and their forks do it differently. Nevertheless, they all default to “cpp” utility and they all have or had been working fine. Therefore, we believe simply removing CPP stabilizes “dtrace” invocation on Linux systems with SystemTap and aligns it with other system configurations on other platforms, until someone comes with complete solution with custom “m4” and “make” macros, while our build system on Linux with SystemTap supports cross-compilation. Fixes GH-11847 Closes GH-12083 † https://github.com/php/php-src/issues/11847 ‡ https://www.gnu.org/savannah-checkouts/gnu/autoconf/manual/autoconf-2.71/autoconf.html#index-AC_005fPROG_005fCPP-1 * https://github.com/php/php-src/issues/11643
show more ...
|
#
475fd295 |
| 19-Jul-2023 |
Filip Zrůst <128540+f4z4on@users.noreply.github.com> |
Improve DTrace probe generation /w non-default compiler With DTrace support enabled during ./configure, our custom Autoconf macro PHP_INIT_DTRACE creates make rules to generate header an
Improve DTrace probe generation /w non-default compiler With DTrace support enabled during ./configure, our custom Autoconf macro PHP_INIT_DTRACE creates make rules to generate header and object files using dtrace utility. SystemTap† implementation of dtrace relies on other utilities to provide header preprocessing and final object file compilation. These utilities are configured by common environment variables with common defaults:‡ * preprocessor from CPP defaults to “cpp” * compiler from CC defaults to “gcc” * compiler arguments can be expanded with CFLAGS This has been in SystemTap since version 1.5 released on 2011-05-23. We have been setting CFLAGS for dtrace since 717b367 released in versions 5.4.20 and 5.5.4 on 2013-09-18. This change fixed build against SystemTap. It fixes majority of cases since practically all free Linux distributions use SystemTap for DTrace-like dynamic tracing and practically all of them use GCC or compatible compiler suite. However, this becomes an issue when cross-compiling using GCC because utility names contain target triplets. Autoconf already handles cross-compilation well —setting correct CC and CPP make macros (variables). Therefore, we simply set CC and CPP environment variables using respective macros when executing dtrace. Although SystemTap dtrace does not always use CC nor CPP, we set it every time. SystemTap documentation does not talk about this at all¶, so it is safer to always set it. We also follow how we set CFLAGS every time in the past. Original (or ported) DTrace mainly used on Oracle Linux, Solaris and macOS ignores these and does not support cross compilation.§ † Well-known dynamic tracing infrastructure for Linux compatible with statically-defined tracing from DTrace. ‡ https://sourceware.org/git/?p=systemtap.git;a=blob;f=dtrace.in;h=73a6f22e2de072773c692e3fea05c4b8cf814e43;hb=ebb424eee5599fcc131901c0d82d0bfc0d2f57ab ¶ https://sourceware.org/systemtap/man/dtrace.1.html § https://docs.oracle.com/cd/E88353_01/html/E72487/dtrace-8.html Closes GH-11643
show more ...
|