Skip to content

Commit c21899a

Browse files
committed
Merge branch 'PHP-8.3'
* PHP-8.3: Do not remove -O0 in the middle of a flag Fix removal of optimization cflags in debug builds (php#9647)
2 parents 66060b1 + be1bf3f commit c21899a

File tree

3 files changed

+15
-15
lines changed

3 files changed

+15
-15
lines changed

build/php.m4

+12
Original file line numberDiff line numberDiff line change
@@ -2533,3 +2533,15 @@ AS_VAR_IF([php_var], [yes],
25332533
[Define to 1 if the compiler supports the '$1' variable attribute.])])
25342534
AS_VAR_POPDEF([php_var])
25352535
])
2536+
2537+
dnl
2538+
dnl PHP_REMOVE_OPTIMIZATION_FLAGS
2539+
dnl
2540+
dnl Removes known compiler optimization flags like -O, -O0, -O1, ..., -Ofast
2541+
dnl from CFLAGS and CXXFLAGS.
2542+
dnl
2543+
AC_DEFUN([PHP_REMOVE_OPTIMIZATION_FLAGS], [
2544+
sed_script='s/\([[\t ]]\|^\)-O\([[0-9gsz]]\|fast\|\)\([[\t ]]\|$\)/\1/g'
2545+
CFLAGS=$(echo "$CFLAGS" | $SED -e "$sed_script")
2546+
CXXFLAGS=$(echo "$CXXFLAGS" | $SED -e "$sed_script")
2547+
])

configure.ac

+2-10
Original file line numberDiff line numberDiff line change
@@ -785,11 +785,7 @@ AS_VAR_IF([PHP_GCOV], [yes], [
785785
PHP_ADD_MAKEFILE_FRAGMENT([$abs_srcdir/build/Makefile.gcov], [$abs_srcdir])
786786
787787
dnl Remove all optimization flags from CFLAGS.
788-
changequote({,})
789-
dnl Discard known '-O...' flags, including just '-O', but do not remove only '-O' in '-Ounknown'
790-
CFLAGS=$(echo "$CFLAGS" | $SED -e 's/-O\([0-9gsz]\|fast\|\)\([\t ]\|$\)//g')
791-
CXXFLAGS=$(echo "$CXXFLAGS" | $SED -e 's/-O\([0-9gsz]\|fast\|\)\([\t ]\|$\)//g')
792-
changequote([,])
788+
PHP_REMOVE_OPTIMIZATION_FLAGS
793789
794790
dnl Add the special gcc flags.
795791
CFLAGS="$CFLAGS -O0 -fprofile-arcs -ftest-coverage"
@@ -806,11 +802,7 @@ PHP_ARG_ENABLE([debug],
806802
AS_VAR_IF([PHP_DEBUG], [yes], [
807803
PHP_DEBUG=1
808804
ZEND_DEBUG=yes
809-
changequote({,})
810-
dnl Discard known '-O...' flags, including just '-O', but do not remove only '-O' in '-Ounknown'
811-
CFLAGS=$(echo "$CFLAGS" | $SED -e 's/-O\([0-9gsz]\|fast\|\)\([\t ]\|$\)//g')
812-
CXXFLAGS=$(echo "$CXXFLAGS" | $SED -e 's/-O\([0-9gsz]\|fast\|\)\([\t ]\|$\)//g')
813-
changequote([,])
805+
PHP_REMOVE_OPTIMIZATION_FLAGS
814806
dnl Add -O0 only if GCC or ICC is used.
815807
if test "$GCC" = "yes" || test "$ICC" = "yes"; then
816808
CFLAGS="$CFLAGS -O0"

scripts/phpize.m4

+1-5
Original file line numberDiff line numberDiff line change
@@ -104,11 +104,7 @@ dnl Discard optimization flags when debugging is enabled.
104104
AS_VAR_IF([PHP_DEBUG], [yes], [
105105
PHP_DEBUG=1
106106
ZEND_DEBUG=yes
107-
changequote({,})
108-
dnl Discard known '-O...' flags, including just '-O', but do not remove only '-O' in '-Ounknown'
109-
CFLAGS=$(echo "$CFLAGS" | $SED -e 's/-O\([0-9gsz]\|fast\|\)\([\t ]\|$\)//g')
110-
CXXFLAGS=$(echo "$CXXFLAGS" | $SED -e 's/-O\([0-9gsz]\|fast\|\)\([\t ]\|$\)//g')
111-
changequote([,])
107+
PHP_REMOVE_OPTIMIZATION_FLAGS
112108
dnl Add -O0 only if GCC or ICC is used.
113109
if test "$GCC" = "yes" || test "$ICC" = "yes"; then
114110
CFLAGS="$CFLAGS -O0"

0 commit comments

Comments
 (0)