Skip to content

Commit 078f9de

Browse files
committed
Fix mbstring/libmbfl/config.h
This moves libmbfl configuration to mbstring extension level and syncs the include style used as of PHP-8.4 to be able to do simultaneous in-source and out-of-source builds. The HAVE_CONFIG_H file is when doing phpize build using Autotools. Checks for strcasecmp and strings.h are also moved to mbstring extension only.
1 parent bef96f3 commit 078f9de

File tree

5 files changed

+19
-19
lines changed

5 files changed

+19
-19
lines changed

configure.ac

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -378,7 +378,6 @@ AC_CHECK_HEADERS(m4_normalize([
378378
pty.h
379379
pwd.h
380380
resolv.h
381-
strings.h
382381
syslog.h
383382
sysexits.h
384383
sys/ioctl.h
@@ -579,7 +578,6 @@ AC_CHECK_FUNCS(m4_normalize([
579578
statfs
580579
statvfs
581580
std_syslog
582-
strcasecmp
583581
strnlen
584582
strptime
585583
strtok_r

ext/mbstring/config.m4

Lines changed: 13 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -52,10 +52,15 @@ AC_DEFUN([PHP_MBSTRING_SETUP_MBREGEX], [
5252
PHP_INSTALL_HEADERS([ext/mbstring], [php_mbregex.h php_onig_compat.h])
5353
])
5454

55+
dnl
56+
dnl PHP_MBSTRING_SETUP_LIBMBFL
57+
dnl
58+
dnl Configure bundled libmbfl. It is required and cannot be disabled.
59+
dnl
5560
AC_DEFUN([PHP_MBSTRING_SETUP_LIBMBFL], [
56-
dnl
57-
dnl Bundled libmbfl is required and can not be disabled
58-
dnl
61+
AC_CHECK_HEADERS([strings.h])
62+
AC_CHECK_FUNCS([strcasecmp])
63+
5964
PHP_MBSTRING_ADD_BUILD_DIR([libmbfl])
6065
PHP_MBSTRING_ADD_BUILD_DIR([libmbfl/mbfl])
6166
PHP_MBSTRING_ADD_BUILD_DIR([libmbfl/filters])
@@ -144,7 +149,6 @@ if test "$PHP_MBSTRING" != "no"; then
144149

145150
AS_VAR_IF([PHP_MBREGEX], [yes], [PHP_MBSTRING_SETUP_MBREGEX])
146151

147-
dnl libmbfl is required
148152
PHP_MBSTRING_SETUP_LIBMBFL
149153

150154
PHP_NEW_EXTENSION([mbstring],
@@ -159,18 +163,15 @@ if test "$PHP_MBSTRING" != "no"; then
159163
done
160164

161165
for dir in $PHP_MBSTRING_EXTRA_INCLUDES; do
162-
PHP_ADD_INCLUDE([$ext_srcdir/$dir])
163166
PHP_ADD_INCLUDE([$ext_builddir/$dir])
167+
PHP_ADD_INCLUDE([$ext_srcdir/$dir])
164168
done
165169

166-
out="php_config.h"
167-
168-
if test "$ext_shared" != "no" && test -f "$ext_builddir/config.h.in"; then
169-
out="$abs_builddir/config.h"
170-
fi
171-
172170
cat > $ext_builddir/libmbfl/config.h <<EOF
173-
#include "$out"
171+
#ifdef HAVE_CONFIG_H
172+
# include <config.h>
173+
#endif
174+
#include <php_config.h>
174175
EOF
175176

176177
PHP_INSTALL_HEADERS([ext/mbstring], [mbstring.h])

ext/mbstring/config.w32

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -12,12 +12,15 @@ if (PHP_MBSTRING != "no") {
1212
STDOUT.WriteLine("Using bundled libmbfl...");
1313

1414
ADD_FLAG("CFLAGS_MBSTRING", "-Iext/mbstring -Iext/mbstring/libmbfl -Iext/mbstring/libmbfl/mbfl \
15-
/D HAVE_STRICMP /D MBFL_DLL_EXPORT=1 /DZEND_ENABLE_STATIC_TSRMLS_CACHE=1")
15+
/D MBFL_DLL_EXPORT=1 /DZEND_ENABLE_STATIC_TSRMLS_CACHE=1")
1616

1717
ADD_FLAG("CFLAGS_BD_EXT_MBSTRING", "/utf-8")
1818

19-
FSO.CopyFile("ext\\mbstring\\libmbfl\\config.h.w32",
20-
"ext\\mbstring\\libmbfl\\config.h", true);
19+
var mbfl_config = FSO.CreateTextFile("ext/mbstring/libmbfl/config.h", true);
20+
mbfl_config.WriteLine("#define HAVE_STRCASECMP 1");
21+
mbfl_config.WriteLine("#define HAVE_STRICMP 1");
22+
mbfl_config.WriteLine("#include <config.w32.h>");
23+
mbfl_config.Close();
2124

2225
ADD_SOURCES("ext/mbstring/libmbfl/filters", "html_entities.c \
2326
mbfilter_7bit.c mbfilter_base64.c \

ext/mbstring/libmbfl/config.h.w32

Lines changed: 0 additions & 1 deletion
This file was deleted.

win32/build/config.w32.h.in

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -61,7 +61,6 @@
6161
#define HAVE_STRUCT_STAT_ST_RDEV 1
6262
#define HAVE_GETLOGIN 1
6363
#define HAVE_SHUTDOWN 1
64-
#define HAVE_STRCASECMP 1
6564
#define HAVE_UTIME 1
6665
#undef HAVE_DIRENT_H
6766
#define HAVE_FCNTL_H 1

0 commit comments

Comments
 (0)