1
0
mirror of https://github.com/php/php-src.git synced 2026-04-03 06:02:23 +02:00
Commit Graph

88 Commits

Author SHA1 Message Date
David Carlier
868257a3de 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
2024-03-18 06:53:39 +00:00
Jan Palus
d57a7767a2 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
2024-01-10 09:09:45 +01:00
Jakub Zelenka
6e0a378c8b Merge branch 'PHP-8.1' 2022-04-29 20:44:35 +01:00
David CARLIER
ef06f0f50b Fix FPM ACL build check on MacOS
MacOS has got ACL support but without user/group support.
2022-04-29 20:39:22 +01:00
David CARLIER
7be195caa7 Support fpm_get_socket_listening_queue on macOS
Using TCP_CONNECTION_INFO socket option.
2022-04-15 21:21:43 +01:00
David Carlier
7bb2a9ff38 Add extra check for FPM proc dumpable on SELinux based systems
The deny_ptrace is a OS runtime setting and is off by default,
at least on workstations flavors (fedora) however it might be
different on production servers.
2022-04-08 17:07:58 +01:00
David CARLIER
1de405907d fpm allow process tracing/core dump on solaris systems. (#7548) 2021-11-03 22:26:43 +00:00
David CARLIER
83697aa95e fpm allow to ptrace/make the the process dumpable for FreeBSD. (#7375) 2021-09-27 21:16:23 +01:00
Kees Cook
2c2bb50984 sapi/fpm/config.m4: check for libapparmor's aa_change_profile()
The fpm code actually uses aa_change_profile(), not change_hat(). Test
for the correct function. (libapparmor always has both, so this is just
a correctness fix.)

Closes GH-6037.
2020-08-24 10:10:12 +02:00
Michael Orlitzky
40cdc5f298 sapi/fpm/config.m4: add a new --with-fpm-apparmor configure flag.
The existing AC_FPM_APPARMOR macro (which is always run when FPM is
enabled) checks for the existence of libapparmor, and adds it to $LIBS
if found. The result is an "automagic" dependency on libapparmor that
depends not only on the user's configuration, but also on the build
host's environment.

In particular, this can cause problems if the user just happens to
have libapparmor installed (for testing or development) when he builds
PHP. Later, he may remove libapparmor, not realizing that PHP depends
on it. At that point, FPM will cease to work due to the missing library.

This commit adds a new configure flag called "--with-fpm-apparmor",
defaulting to "no", that enables or disables the feature. The new flag
is used to signal the user's intent; whether or not he wants to use
AppArmor. If he does, then we still check for the existence and
usability of libapparmor; however, it is now an error for the library
to be missing when --with-fpm-apparmor is requested.

Gentoo-bug: https://bugs.gentoo.org/637402
PHP-bug: https://bugs.php.net/bug.php?id=75519
2020-06-21 17:08:40 +01:00
Dmitry Stogov
56e880af9f Link executable files using non PIC object files. This reduces PIC overhead and improves performance. 2019-09-03 23:42:22 +03:00
Peter Kokot
a3169964c0 Remove AC_FPM_POLL
AC_FPM_POLL defines HAVE_POLL symbol which is already checked by
configure.ac and function poll in AC_CHECK_FUNCTIONS.

Closes GH-4449
2019-07-24 22:03:47 +02:00
Peter Kokot
2079b09854 Clean headers checks
Some headers were checked multiple times in the main configure.ac file
and in the bundled extensions or SAPIs themselves. Also many of these
checks are then used accross other extensions or SAPIs so a central
configure.ac makes most sense for these checks.
2019-06-27 02:45:09 +02:00
Peter Kokot
75fb74860d Normalize comments in *nix build system m4 files
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
2019-05-12 18:43:03 +02:00
Hugh McMaster
755f6f6ede Use PKG_CHECK_MODULES to detect the systemd library 2019-05-12 00:19:03 +02:00
Hugh McMaster
c9ee822bb6 Always use pkg-config from the host architecture 2019-04-29 14:16:16 +02:00
Peter Kokot
97d25c87d2 Clean build system
Changes:
- AC_TYPE_SIZE_T called on only one place (configure.ac)
- AC_FUNC_ALLOCA called on only one place (configure.ac)
- AC_TYPE_UID_T called on only one place (configure.ac)
- HAVE_STRSTR removed since strstr is part of C89 standard [1]
- Remove checks for strtol and strpbrk
- Checking for the presence of perror function is not needed anymore
  since it is part of C89 standard and PHP calls it unconditionally.
- Checking for functions strdup, setenv, strerror, and memmove done only
  on one place (configure.ac)
- outdated check for snprintf removed

1: https://port70.net/~nsz/c/c89/c89-draft.html
2019-03-14 20:20:12 +01:00
Dmitry Stogov
cf4ee57dc9 Fixed ZTS cache usage 2019-03-12 15:25:51 +03:00
Peter Kokot
9df6a1e4dd Add AS_HELP_STRING to *nix build configure options
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
2019-03-07 20:36:59 +01:00
Peter Kokot
ba3bd4ae06 Remove HAVE_STDIO_H
The `<stdio.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_STDIO_H` symbol
defined by Autoconf [2] can be ommitted and simplifed.

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
2018-09-17 02:00:51 +02:00
Peter Kokot
7dd62811ce Remove HAVE_STDLIB_H
The C89 and later standard defines the `<stdlib.h>` header as part of
the standard headers [1] and on current systems it is always present
and the `HAVE_STDLIB_H` symbol can be removed.

Also Autoconf suggests doing this and relying on C89 or above [2] and [3].

[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
2018-09-16 20:53:53 +02:00
Peter Kokot
50b9ef8d94 Remove not needed checking for <errno.h>
Header `<errno.h>` is part of the standard C89 headers [1] and on
current systems checking is not need anymore since PHP requires at
least C89. This is noted also by Autoconf itself in the docs and
code [2].

The Autoconf check defined the `HAVE_ERRNO_H` symbol when building PHP
with sockets extension or fpm sapi. This symbol is not utilized across
the PHP source code except in the current version of bundled GD library
which has worked ok so far also with sockets extension or fpm sapi
disabled anyway.

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
2018-09-09 10:19:04 +02:00
David Carlier
9b462f332e fpm process name, FreeBSD 12.x using new setproctitle_fast 2018-08-05 20:36:41 +01:00
Peter Kokot
f2e4de8b56 Fix AC_RUN_IFELSE calls when cross-compiling
AC_RUN_IFELSE program can't be run when cross-compiling. This fix removes
warnings given by autotools scripts.
2018-07-30 06:38:59 +02:00
Peter Kokot
4371945b8b Replace obsolete AC_TRY_FOO with AC_FOO_IFELSE
Autoconf 2.50 released in 2001 made several macros obsolete including
the AC_TRY_RUN, AC_TRY_COMPILE and AC_TRY_LINK:
http://git.savannah.gnu.org/cgit/autoconf.git/tree/ChangeLog.2

These macros should be replaced with the current AC_FOO_IFELSE instead:
- AC_TRY_RUN with AC_RUN_IFELSE and AC_LANG_SOURCE
- AC_TRY_LINK with AC_LINK_IFELSE and AC_LANG_PROGRAM
- AC_TRY_COMPILE with AC_COMPILE_IFELSE and AC_LANG_PROGRAM

PHP 5.4 to 7.1 require Autoconf 2.59+ version, PHP 7.2 and above require
2.64+ version, and the PHP 7.2 phpize script requires 2.59+ version which
are all greater than above mentioned 2.50 version therefore systems
should be well supported by now.

This patch was created with the help of autoupdate script:
autoupdate <file>

Reference docs:
- https://www.gnu.org/software/autoconf/manual/autoconf-2.69/html_node/Obsolete-Macros.html
- https://www.gnu.org/software/autoconf/manual/autoconf-2.59/autoconf.pdf
2018-07-30 02:36:38 +02:00
Peter Kokot
cf3b852109 Trim trailing whitespaces in build files
Some editors utilizing .editorconfig automatically trim whitespaces. For
convenience this patch removes whitespaces in certain build files:
- ext/*/config*.m4
- configure.ac
- acinclude.m4
2018-07-29 03:43:45 +02:00
Peter Kokot
8d3f8ca12a Remove unused Git attributes ident
The $Id$ keywords were used in Subversion where they can be substituted
with filename, last revision number change, last changed date, and last
user who changed it.

In Git this functionality is different and can be done with Git attribute
ident. These need to be defined manually for each file in the
.gitattributes file and are afterwards replaced with 40-character
hexadecimal blob object name which is based only on the particular file
contents.

This patch simplifies handling of $Id$ keywords by removing them since
they are not used anymore.
2018-07-25 00:53:25 +02:00
Michał Górny
4ea7f3467d Support using acl_* functions on *BSD
The *BSD systems have ACL routines built-in in libc rather than
in separate libacl. Update the configure check to detect that and enable
ACL support without adding 'acl' library.
2018-04-13 19:48:13 +01:00
Lior Kaplan
9642710a09 Merge branch 'PHP-5.6' into PHP-7.0
* PHP-5.6:
  Fixed bug #61751 (SAPI build problem on AIX: Undefined symbol: php_register_internal_extensions)

 Conflicts:
	sapi/cgi/config9.m4
	sapi/fpm/config.m4
2015-11-23 18:56:13 +02:00
Lior Kaplan
d6b78a3511 Fixed bug #61751 (SAPI build problem on AIX: Undefined symbol: php_register_internal_extensions) 2015-11-23 18:40:47 +02:00
Stanislav Malyshev
07241bbd70 FIx darwin build 2015-05-31 14:52:08 -07:00
Xinchen Hui
9f1788f00d Only link fastcgi into fpm and cgi 2015-05-26 13:55:39 +08:00
Xinchen Hui
18cf4e0a8a Fixed fpm-side (tests passes) 2015-05-23 19:01:41 +08:00
Elan Ruusamäe
9f189dd290 split fpm config to two parts. PR#903
main config = global options
secondary config = pool options

makes easier to add new pools:
duplicate pool config in fpm.d dir

https://bugs.php.net/bug.php?id=67106
2014-12-14 14:21:46 +01:00
Remi Collet
744ada7d9d Fix bug #68526 Implement POSIX Access Control List for UDS
- add --with-fpm-acl build option which allow to manage ACL
on Unix Domain Socket
- add listen.acl_users pool option
- add listen.acl_groups pool option

Keep old behavior (chmod) if option not used or not supported.
2014-12-10 08:15:21 +01:00
Xinchen Hui
235d0241d1 Merge branch 'PHP-5.5' into PHP-5.6 2014-07-25 10:52:41 +08:00
Remi Collet
658f7d77f9 See bug #67635
Improve previous fix:
- also rely on pkg-config for systemd < 209
- always check for header
- comments
2014-07-20 11:14:43 +02:00
Remi Collet
144a083954 improve previous, add message during configure 2014-07-19 18:42:40 +02:00
Remi Collet
7b60315672 Fixed bug #67635 php links to systemd libraries without using pkg-config
Patch from pacho at gentoo dot org

Rely on pkg-config for systemd >= 209
Failback on old check
2014-07-19 18:40:20 +02:00
Antony Dovgal
98e6c8ca2d fix indentation 2014-01-17 12:49:21 +04:00
Gernot Vormayr
f6d137a716 Add apparmor change hat functionality to fpm 2014-01-17 12:48:33 +04:00
Christopher Jones
c6d977dd39 Fix long-standing visual pain point: the misalignment of './configure help' text.
Whitespace changes and a couple of grammar fixes.
2013-08-06 11:06:09 -07:00
Remi Collet
c79f162c37 Merge branch 'PHP-5.4' into PHP-5.5
* PHP-5.4:
  Add --with-fpm-systemd option to report health to systemd, and systemd_interval option to configure this. The service can now use Type=notify in the systemd unit file.
2013-05-21 09:53:51 +02:00
Remi Collet
0e99329e0a Add --with-fpm-systemd option to report health to systemd, and
systemd_interval option to configure this. The service can now use
Type=notify in the systemd unit file.

Systemd status line will looks like:
Status: "Processes active: 0, idle: 5, Requests: 90, slow: 0, Traffic: 10req/sec"

Watchdog mode is also supported. In this case watchdog interval,
configured in the unit file, override the systemd_interval option.

When not used (default), no change from previous version.
2013-05-21 09:49:00 +02:00
Jerome Loyet
be043ab6d0 Merge branch 'fuckgit' into PHP-5.4
* fuckgit:
  - Fixed bug #62947 (Unneccesary warnings on FPM)
  - Fixed bug #63085 (Systemd integration and daemonize)

Conflicts:
	sapi/fpm/config.m4
2012-09-28 01:19:01 +02:00
Jerome Loyet
c8b7ea0f57 - fix merge (fucking git merging system ... :( ) 2012-09-28 00:55:06 +02:00
Jerome Loyet
64a0e7cdc2 - Fixed bug #63085 (Systemd integration and daemonize) 2012-09-28 00:53:05 +02:00
Jerome Loyet
b2f4e686f0 Merge branch 'PHP-5.3' into PHP-5.4
* PHP-5.3:
  - Fixed bug #63085 (Systemd integration and daemonize)
  - Fixed bug #62954 (startup problems fpm / php-fpm) - Fixed bug #62886 (PHP-FPM may segfault/hang on startup)

Conflicts:
	sapi/fpm/config.m4
2012-09-28 00:39:29 +02:00
Jerome Loyet
851a04bb7b - Fixed bug #63085 (Systemd integration and daemonize) 2012-09-28 00:33:05 +02:00
Jerome Loyet
c2f33fb129 - Fixed bug #62033 (php-fpm exits with status 0 on some failures to start) 2012-05-25 21:13:57 +02:00