diff --git a/ext/date/config.w32 b/ext/date/config.w32 index b053e27aae354..3dad8d438ca96 100644 --- a/ext/date/config.w32 +++ b/ext/date/config.w32 @@ -5,6 +5,9 @@ PHP_DATE = "yes"; ADD_SOURCES("ext/date/lib", "astro.c timelib.c dow.c parse_date.c parse_posix.c parse_tz.c tm2unixtime.c unixtime2tm.c parse_iso_intervals.c interval.c", "date"); ADD_FLAG('CFLAGS_DATE', "/wd4244"); +if (CLANG_TOOLSET) { + ADD_FLAG('CFLAGS_BD_EXT_DATE_LIB', "-fwrapv"); +} var tl_config = FSO.CreateTextFile("ext/date/lib/timelib_config.h", true); tl_config.WriteLine("#include \"config.w32.h\""); diff --git a/ext/date/config0.m4 b/ext/date/config0.m4 index 5af6be13faf71..9091803edfa45 100644 --- a/ext/date/config0.m4 +++ b/ext/date/config0.m4 @@ -8,15 +8,24 @@ AX_CHECK_COMPILE_FLAG([-Wno-implicit-fallthrough], [PHP_DATE_CFLAGS="$PHP_DATE_CFLAGS -Wno-implicit-fallthrough"],, [-Werror]) -PHP_DATE_CFLAGS="$PHP_DATE_CFLAGS -I@ext_builddir@/lib -DZEND_ENABLE_STATIC_TSRMLS_CACHE=1 -DHAVE_TIMELIB_CONFIG_H=1" +PHP_DATE_CFLAGS="$PHP_DATE_CFLAGS -DHAVE_TIMELIB_CONFIG_H=1" +PHP_TIMELIB_CFLAGS="$PHP_DATE_CFLAGS" +PHP_DATE_CFLAGS="$PHP_DATE_CFLAGS -I@ext_builddir@/lib -DZEND_ENABLE_STATIC_TSRMLS_CACHE=1" + +AX_CHECK_COMPILE_FLAG([-fwrapv], + [PHP_TIMELIB_CFLAGS="$PHP_TIMELIB_CFLAGS -fwrapv"],, + [-Werror]) + timelib_sources="lib/astro.c lib/dow.c lib/parse_date.c lib/parse_tz.c lib/parse_posix.c lib/timelib.c lib/tm2unixtime.c lib/unixtime2tm.c lib/parse_iso_intervals.c lib/interval.c" PHP_NEW_EXTENSION([date], - [php_date.c $timelib_sources], + [php_date.c], [no],, [$PHP_DATE_CFLAGS]) +PHP_ADD_SOURCES([$ext_dir], [$timelib_sources], [$PHP_TIMELIB_CFLAGS]) + PHP_ADD_BUILD_DIR([$ext_builddir/lib], [1]) PHP_ADD_INCLUDE([$ext_builddir/lib]) PHP_ADD_INCLUDE([$ext_srcdir/lib])