Version in base suite: 8.4.24-1~deb13u1
Version in overlay suite: 8.4.26-1~deb13u1
Base version: php8.4_8.4.26-1~deb13u1
Target version: php8.4_8.4.27-1~deb13u1
Base file: /srv/ftp-master.debian.org/ftp/pool/main/p/php8.4/php8.4_8.4.26-1~deb13u1.dsc
Target file: /srv/ftp-master.debian.org/policy/pool/main/p/php8.4/php8.4_8.4.27-1~deb13u1.dsc
.github/actions/brew/action.yml | 3
.github/actions/configure-macos/action.yml | 2
.github/matrix.php | 5
.github/scripts/windows/find-target-branch.bat | 2
.github/workflows/test-suite.yml | 4
.github/workflows/test.yml | 1
NEWS | 250
TSRM/tsrm_win32.c | 13
Zend/Optimizer/escape_analysis.c | 8
Zend/Optimizer/optimize_func_calls.c | 1
Zend/Optimizer/sccp.c | 30
Zend/Optimizer/zend_call_graph.c | 5
Zend/tests/arginfo_zpp_mismatch.inc | 1
Zend/tests/bug40770.phpt | 4
Zend/tests/bug54268.phpt | 1
Zend/tests/bug76846.phpt | 12
Zend/tests/call_function_trampoline_leak.phpt | 36
Zend/tests/debug_backtrace_sensitive_named_variadic.phpt | 21
Zend/tests/fibers/destructors_013.phpt | 49
Zend/tests/fibers/destructors_014.phpt | 55
Zend/tests/fibers/destructors_015.phpt | 60
Zend/tests/fibers/get-return-after-bailout.phpt | 11
Zend/tests/gh11189.phpt | 5
Zend/tests/gh11189_1.phpt | 3
Zend/tests/gh23896.phpt | 33
Zend/tests/gh24050.phpt | 49
Zend/tests/gh24050_2.phpt | 49
Zend/tests/lazy_objects/gh21999-001.phpt | 47
Zend/tests/lazy_objects/gh21999-002.phpt | 36
Zend/tests/lazy_objects/gh23842.phpt | 32
Zend/tests/lazy_objects/oss_fuzz_536440507.phpt | 21
Zend/tests/oom_SplFixedArray___unserialize.phpt | 20
Zend/tests/oom_SplFixedArray___wakeup.phpt | 21
Zend/tests/oom_SplFixedArray_copy_ctor.phpt | 16
Zend/tests/oom_SplFixedArray_fromArray_001.phpt | 12
Zend/tests/oom_SplFixedArray_fromArray_002.phpt | 14
Zend/tests/oom_after_main_script.phpt | 26
Zend/tests/oom_array_fill_001.phpt | 18
Zend/tests/oom_array_fill_002.phpt | 18
Zend/tests/oom_array_fill_003.phpt | 18
Zend/tests/oom_array_fill_004.phpt | 18
Zend/tests/oom_array_pad_001.phpt | 12
Zend/tests/oom_array_pad_002.phpt | 12
Zend/tests/oom_array_pad_003.phpt | 12
Zend/tests/oom_array_pad_004.phpt | 12
Zend/tests/oom_array_pad_005.phpt | 12
Zend/tests/oom_array_pad_006.phpt | 12
Zend/tests/oom_array_pad_007.phpt | 12
Zend/tests/oom_array_pad_008.phpt | 12
Zend/tests/oom_call_function.phpt | 18
Zend/tests/oom_call_function_002.phpt | 27
Zend/tests/oom_call_function_003.phpt | 39
Zend/tests/oom_debug_backtrace.phpt | 21
Zend/tests/oom_debug_backtrace_args.phpt | 22
Zend/tests/oom_debug_backtrace_named_args.phpt | 29
Zend/tests/oom_error_get_last.phpt | 27
Zend/tests/oom_exception_trace.phpt | 25
Zend/tests/oom_hard_limit_exceeded.phpt | 26
Zend/tests/oom_hard_limit_exceeded_during_complilation.phpt | 42
Zend/tests/oom_interrupt.phpt | 38
Zend/tests/oom_interrupt_unfinished_call_frame.phpt | 21
Zend/tests/oom_interrupt_unfinished_call_frame_fiber.phpt | 18
Zend/tests/oom_json_decode_001.phpt | 14
Zend/tests/oom_json_decode_002.phpt | 15
Zend/tests/oom_json_decode_003.phpt | 22
Zend/tests/oom_json_decode_004.phpt | 19
Zend/tests/oom_json_decode_005.phpt | 22
Zend/tests/oom_json_decode_006.phpt | 19
Zend/tests/oom_json_decode_007.phpt | 14
Zend/tests/oom_pending_at_shutdown.phpt | 16
Zend/tests/oom_range_001.phpt | 18
Zend/tests/oom_range_002.phpt | 18
Zend/tests/oom_range_003.phpt | 18
Zend/tests/oom_range_004.phpt | 18
Zend/tests/oom_request_parsing.phpt | 130
Zend/tests/oom_soft_limit_exceeded.phpt | 19
Zend/tests/oom_soft_limit_exceeded_fcall.phpt | 19
Zend/tests/oom_soft_limit_in_callback.phpt | 27
Zend/tests/oom_str_repeat.phpt | 12
Zend/tests/oom_unserialize_001.phpt | 21
Zend/tests/oom_unserialize_002.phpt | 22
Zend/tests/oom_unserialize_003.phpt | 22
Zend/tests/oom_unserialize_004.phpt | 23
Zend/tests/oom_unserialize_005.phpt | 23
Zend/tests/oom_unserialize_006.phpt | 22
Zend/tests/oom_unserialize_007.phpt | 17
Zend/tests/oom_unserialize_008.phpt | 19
Zend/tests/oom_unserialize_009.phpt | 26
Zend/tests/oom_unserialize_011.phpt | 22
Zend/tests/oom_unserialize_012.phpt | 23
Zend/tests/oom_unserialize_013.phpt | 28
Zend/tests/oom_unserialize_014.phpt | 28
Zend/tests/oom_unserialize_015.phpt | 20
Zend/tests/oom_unserialize_016.phpt | 33
Zend/tests/property_hooks/simple_get_result_type_inference_verification.phpt | 25
Zend/tests/singleton_array.phpt | 140
Zend/zend.c | 10
Zend/zend.h | 2
Zend/zend_API.c | 32
Zend/zend_API.h | 58
Zend/zend_alloc.c | 659
Zend/zend_alloc.h | 63
Zend/zend_atomic.h | 17
Zend/zend_attributes.c | 8
Zend/zend_attributes.h | 2
Zend/zend_builtin_functions.c | 60
Zend/zend_compile.c | 1
Zend/zend_cpuinfo.c | 2
Zend/zend_exceptions.c | 4
Zend/zend_execute.c | 14
Zend/zend_execute_API.c | 57
Zend/zend_gc.c | 10
Zend/zend_globals.h | 4
Zend/zend_hash.c | 302
Zend/zend_hash.h | 60
Zend/zend_lazy_objects.c | 56
Zend/zend_llist.c | 4
Zend/zend_objects.c | 14
Zend/zend_objects.h | 1
Zend/zend_operators.c | 22
Zend/zend_operators.h | 6
Zend/zend_smart_str.c | 60
Zend/zend_smart_str.h | 47
Zend/zend_string.c | 22
Zend/zend_string.h | 116
Zend/zend_types.h | 72
Zend/zend_verify_type_inference.h | 3
Zend/zend_vm_def.h | 28
Zend/zend_vm_execute.h | 66
configure | 9874 ++++------
configure.ac | 2
debian/changelog | 8
ext/bcmath/bcmath.c | 9
ext/bcmath/libbcmath/src/div.c | 12
ext/bcmath/libbcmath/src/raise.c | 3
ext/bcmath/tests/gh17398.phpt | 4
ext/bcmath/tests/number/methods/calc_methods_zero_result_sign.phpt | 35
ext/bz2/bz2.c | 71
ext/bz2/bz2_filter.c | 6
ext/bz2/tests/bzopen_resource_fclose.phpt | 41
ext/bz2/tests/oom_bzcompress.phpt | 30
ext/bz2/tests/oom_bzdecompress.phpt | 17
ext/bz2/tests/oom_bzip2_decompress_filter.phpt | 27
ext/curl/interface.c | 72
ext/curl/tests/curl_callback_lifetime.phpt | 65
ext/curl/tests/curl_callback_lifetime_destructor.phpt | 52
ext/curl/tests/curl_setopt_callback_reentrancy.phpt | 39
ext/curl/tests/curl_setopt_ssl.phpt | 20
ext/curl/tests/oom_curl_exec.phpt | 37
ext/curl/tests/oom_curl_multi_exec.phpt | 43
ext/curl/tests/responder/get.inc | 8
ext/date/lib/parse_date.c | 229
ext/date/lib/parse_date.re | 17
ext/date/lib/parse_iso_intervals.c | 41
ext/date/lib/parse_iso_intervals.re | 5
ext/date/lib/timezonedb.h | 4242 +---
ext/date/tests/bug35499.phpt | 6
ext/date/tests/oom_date_create.phpt | 10
ext/date/tests/oom_date_create_immutable.phpt | 10
ext/date/tests/oom_date_interval_create_from_date_string.phpt | 11
ext/date/tests/oom_date_modify.phpt | 11
ext/date/tests/oom_date_parse.phpt | 11
ext/date/tests/oom_dateinterval_construct.phpt | 18
ext/date/tests/oom_dateinterval_createfromdatestring.phpt | 14
ext/date/tests/oom_dateperiod_construct.phpt | 19
ext/date/tests/oom_datetime_construct.phpt | 14
ext/date/tests/oom_datetime_modify.phpt | 14
ext/date/tests/oom_datetimeimmutable_construct.phpt | 14
ext/date/tests/oom_datetimeimmutable_modify.phpt | 14
ext/date/tests/oom_strtotime.phpt | 10
ext/dl_test/dl_test.c | 22
ext/dl_test/dl_test.stub.php | 5
ext/dl_test/dl_test_arginfo.h | 15
ext/dl_test/tests/frameless_temporary.inc | 8
ext/dl_test/tests/frameless_temporary.phpt | 53
ext/dl_test/tests/frameless_temporary_cgi.inc | 7
ext/dl_test/tests/frameless_temporary_opcache.phpt | 19
ext/dom/config.m4 | 2
ext/dom/html5_parser.c | 8
ext/dom/lexbor/lexbor/css/selectors/pseudo_state.c | 5
ext/dom/lexbor/lexbor/encoding/decode.c | 37
ext/dom/lexbor/patches/0001-Expose-line-and-column-information-for-use-in-PHP.patch | 2
ext/dom/lexbor/patches/0002-Track-implied-added-nodes-for-options-use-in-PHP.patch | 2
ext/dom/lexbor/patches/0003-Patch-utilities-and-data-structure-to-be-able-to-gen.patch | 2
ext/dom/lexbor/patches/0004-Remove-unused-upper-case-tag-static-data.patch | 2
ext/dom/lexbor/patches/0005-Shrink-size-of-static-binary-search-tree.patch | 2
ext/dom/lexbor/patches/0006-Patch-out-unused-CSS-style-code.patch | 2
ext/dom/lexbor/patches/0007-CSS-fixed-heap-buffer-overflow-in-lexbor-contains-pa.patch | 35
ext/dom/lexbor/patches/0008-Encoding-fixed-buffer-overflows-in-malformed-decode-.patch | 97
ext/dom/node.c | 5
ext/dom/php_dom.h | 1
ext/dom/tests/DOMDocument_saveHTMLFile_failed_output_encoding.phpt | 31
ext/dom/tests/DOMXPath_reconstruct_callbacks_gc.phpt | 50
ext/dom/tests/DOMXPath_reconstruct_callbacks_ns_gc.phpt | 50
ext/dom/tests/gh23365.phpt | 53
ext/dom/tests/gh23729.phpt | 73
ext/dom/tests/gh23897.phpt | 25
ext/dom/tests/modern/css_selectors/lexbor_contains.phpt | 16
ext/dom/tests/modern/html/parser/HTMLDocument_unprefixed_attributes_in_foreign_content.phpt | 59
ext/dom/tests/oom_xpath.phpt | 22
ext/dom/tests/xpath_reentrant_context.phpt | 54
ext/dom/xpath.c | 34
ext/dom/xpath_callbacks.c | 16
ext/exif/exif.c | 114
ext/exif/tests/oom_exif_big_thumbnail.inc | 47
ext/exif/tests/oom_exif_numeric_metadata.phpt | 38
ext/exif/tests/oom_exif_read_data_tags.phpt | 38
ext/exif/tests/oom_exif_scan_jpeg_header.phpt | 29
ext/exif/tests/oom_exif_thumbnail_large_file_001.phpt | 21
ext/exif/tests/oom_exif_thumbnail_large_file_002.phpt | 22
ext/exif/tests/oom_exif_thumbnail_tiff.phpt | 32
ext/ffi/ffi.c | 34
ext/ffi/tests/callback_create_failure.phpt | 27
ext/ffi/tests/callback_dtor_call.phpt | 33
ext/ffi/tests/callback_object_lifetime.phpt | 31
ext/fileinfo/libmagic.patch | 202
ext/fileinfo/libmagic/apprentice.c | 2
ext/fileinfo/libmagic/cdf.c | 41
ext/fileinfo/tests/cdf_unknown_property_id.phpt | 13
ext/fileinfo/tests/oom_cdf_sector_chain.phpt | 76
ext/filter/filter.c | 30
ext/filter/sanitizing_filters.c | 23
ext/filter/tests/oom_filter_default_encoded.phpt | 126
ext/filter/tests/oom_filter_input.phpt | 56
ext/filter/tests/oom_filter_input_array.phpt | 56
ext/filter/tests/oom_filter_var.phpt | 17
ext/filter/tests/oom_filter_var_array.phpt | 20
ext/filter/tests/oom_filter_var_full_special_chars.phpt | 17
ext/ftp/ftp.c | 5
ext/gd/libgd/gd.c | 37
ext/gd/libgd/gd_gd2.c | 24
ext/gd/libgd/gd_gif_in.c | 8
ext/gd/libgd/gd_tga.c | 8
ext/gd/libgd/gdhelpers.h | 3
ext/gd/libgd/wbmp.c | 2
ext/gd/tests/createfromstring-overflow.phpt | 42
ext/gd/tests/gif-oob.phpt | 63
ext/gd/tests/oom_imagecreatefrombmp.phpt | 28
ext/gd/tests/oom_imagecreatefromgd2.phpt | 31
ext/gd/tests/oom_imagecreatefromgd2_chunkbuf.phpt | 39
ext/gd/tests/oom_imagecreatefromgd2_compbuf.phpt | 38
ext/gd/tests/oom_imagecreatefromgd2part.phpt | 31
ext/gd/tests/oom_imagecreatefromgd2part_chunkbuf.phpt | 39
ext/gd/tests/oom_imagecreatefromgd2part_compbuf.phpt | 38
ext/gd/tests/oom_imagecreatefromgif.phpt | 28
ext/gd/tests/oom_imagecreatefrompng.phpt | 32
ext/gd/tests/oom_imagecreatefromstring.phpt | 26
ext/gd/tests/oom_imagecreatefromtga.phpt | 36
ext/gd/tests/oom_imagecreatefromwbmp.phpt | 33
ext/gd/tests/oom_imagecreatefromxbm.phpt | 27
ext/gd/tests/oom_imagepalettetotruecolor.phpt | 17
ext/hash/hash.c | 2
ext/hash/tests/hash_pbkdf2_max_length.phpt | 4
ext/hash/tests/hash_pbkdf2_max_length_raw.phpt | 4
ext/iconv/iconv.c | 56
ext/iconv/tests/oom_iconv.phpt | 17
ext/iconv/tests/oom_iconv_mime_decode.phpt | 17
ext/iconv/tests/oom_iconv_mime_decode_headers.phpt | 13
ext/iconv/tests/oom_iconv_mime_encode.phpt | 21
ext/iconv/tests/oom_iconv_mime_encode_line_length.phpt | 13
ext/iconv/tests/oom_iconv_stream_filter.phpt | 28
ext/imap/tests/oom_imap_mime_header_decode.phpt | 13
ext/intl/collator/collator_attr.c | 16
ext/intl/collator/collator_class.h | 16
ext/intl/collator/collator_compare.c | 7
ext/intl/collator/collator_locale.c | 7
ext/intl/collator/collator_sort.c | 14
ext/intl/converter/converter.c | 11
ext/intl/dateformat/dateformat_class.c | 7
ext/intl/dateformat/dateformat_parse.c | 21
ext/intl/formatter/formatter_parse.c | 44
ext/intl/grapheme/grapheme_string.c | 32
ext/intl/grapheme/grapheme_util.c | 11
ext/intl/intl_convert.c | 42
ext/intl/intl_convert.h | 8
ext/intl/msgformat/msgformat_class.c | 6
ext/intl/normalizer/normalizer_normalize.c | 11
ext/intl/tests/clone_preserves_php_fields.phpt | 37
ext/intl/tests/collator_attribute_unconstructed.phpt | 55
ext/intl/tests/dateformat_parse_utf8_offset.phpt | 68
ext/intl/tests/grapheme_search_empty_haystack.phpt | 55
ext/intl/tests/grapheme_strpos_ascii_haystack.phpt | 56
ext/intl/tests/grapheme_strrpos_negative_offset_overlap.phpt | 32
ext/intl/tests/grapheme_strstr_canonical_match.phpt | 27
ext/intl/tests/grapheme_strstr_supplementary_prefix.phpt | 27
ext/intl/tests/oom_grapheme_str_split.phpt | 15
ext/intl/tests/oom_normalizer_normalize.phpt | 14
ext/intl/tests/oom_normalizer_normalize_func.phpt | 14
ext/intl/tests/oom_uconverter_convert.phpt | 15
ext/intl/tests/oom_uconverter_transcode.phpt | 14
ext/json/json_encoder.c | 43
ext/json/json_parser.tab.c | 57
ext/json/json_parser.y | 51
ext/json/json_scanner.c | 6
ext/json/json_scanner.re | 6
ext/json/tests/json_decode_oom_utf8_substitute.phpt | 14
ext/json/tests/json_encode_oom_escape.phpt | 11
ext/json/tests/json_encode_oom_partial_output.phpt | 11
ext/json/tests/json_encode_oom_pretty_print.phpt | 11
ext/json/tests/json_encode_oom_string_prealloc.phpt | 13
ext/libxml/libxml.c | 13
ext/mbstring/libmbfl/filters/mbfilter_qprint.c | 2
ext/mbstring/libmbfl/filters/mbfilter_utf8.c | 6
ext/mbstring/libmbfl/mbfl/mbfilter.c | 41
ext/mbstring/libmbfl/mbfl/mbfl_encoding.h | 33
ext/mbstring/libmbfl/mbfl/mbfl_memory_device.c | 19
ext/mbstring/mb_gpc.c | 16
ext/mbstring/mbstring.c | 106
ext/mbstring/php_mbregex.c | 8
ext/mbstring/tests/gh23106.phpt | 22
ext/mbstring/tests/mb_ereg_replace_kname_unterminated_nul.phpt | 4
ext/mbstring/tests/oom_buf_growth.phpt | 17
ext/mbstring/tests/oom_mb_convert_case.phpt | 14
ext/mbstring/tests/oom_mb_convert_encoding.phpt | 14
ext/mbstring/tests/oom_mb_convert_variables.phpt | 14
ext/mbstring/tests/oom_mb_convert_variables_many.phpt | 15
ext/mbstring/tests/oom_mb_decode_mimeheader.phpt | 14
ext/mbstring/tests/oom_mb_encode_mimeheader.phpt | 14
ext/mbstring/tests/oom_mb_encode_numericentity.phpt | 16
ext/mbstring/tests/oom_mb_ereg_replace.phpt | 18
ext/mbstring/tests/oom_mb_eregi_replace.phpt | 18
ext/mbstring/tests/oom_mb_parse_str.phpt | 14
ext/mbstring/tests/oom_mb_parse_str_vars.phpt | 22
ext/mbstring/tests/oom_mb_split.phpt | 17
ext/mbstring/tests/oom_mb_str_pad.phpt | 14
ext/mbstring/tests/oom_mb_str_split.phpt | 13
ext/mbstring/tests/oom_mb_str_split_filter.phpt | 14
ext/mbstring/tests/oom_mb_str_split_fixed_width.phpt | 14
ext/mbstring/tests/oom_mb_str_split_length.phpt | 15
ext/mbstring/tests/oom_mb_strcut_filter.phpt | 19
ext/mbstring/tests/oom_mb_strcut_length.phpt | 12
ext/mbstring/tests/oom_mb_strimwidth.phpt | 17
ext/mbstring/tests/oom_mb_strtoupper.phpt | 18
ext/mbstring/tests/oom_mb_substr_count.phpt | 17
ext/mbstring/tests/oom_mb_substr_length.phpt | 12
ext/mbstring/tests/surrogates_to_utf8.phpt | 47
ext/mysqli/mysqli.c | 1
ext/mysqli/mysqli_nonapi.c | 2
ext/mysqli/mysqli_prop.c | 6
ext/mysqli/tests/gh22854.phpt | 83
ext/mysqli/tests/mysqli_stmt_close_killed_connection.phpt | 32
ext/mysqli/tests/mysqli_stmt_next_result_field_count.phpt | 34
ext/mysqlnd/mysqlnd_ext_plugin.h | 2
ext/mysqlnd/mysqlnd_ps.c | 13
ext/opcache/ZendAccelerator.c | 33
ext/opcache/ZendAccelerator.h | 11
ext/opcache/jit/ir/ir_private.h | 5
ext/opcache/jit/ir/ir_x86.dasc | 19
ext/opcache/jit/zend_jit.c | 16
ext/opcache/jit/zend_jit_ir.c | 72
ext/opcache/jit/zend_jit_trace.c | 16
ext/opcache/tests/file_cache_frameless_handler.phpt | 81
ext/opcache/tests/jit/frameless_interrupt_001.phpt | 31
ext/opcache/tests/jit/frameless_interrupt_002.phpt | 31
ext/opcache/tests/jit/frameless_interrupt_003.phpt | 31
ext/opcache/tests/jit/gh23693.phpt | 41
ext/opcache/tests/jit/gh23991.phpt | 36
ext/opcache/tests/opt/call_graph_stack_overflow.phpt | 17
ext/opcache/tests/opt/dce_015.phpt | 45
ext/opcache/tests/opt/dce_016.phpt | 50
ext/opcache/tests/opt/dce_017.phpt | 55
ext/opcache/tests/opt/gh24063.phpt | 46
ext/opcache/tests/opt/oss_fuzz_546798343.phpt | 19
ext/opcache/tests/opt/sccp_isset_dim_partial_object.phpt | 36
ext/opcache/zend_file_cache.c | 8
ext/opcache/zend_persist.c | 67
ext/openssl/tests/stream_crypto_enable_timeout_blocking.phpt | 53
ext/openssl/tests/stream_eof_after_close_notify.phpt | 58
ext/openssl/xp_ssl.c | 7
ext/pcntl/pcntl.c | 78
ext/pcntl/tests/gh23986.phpt | 29
ext/pcntl/tests/pcntl_cpuaffinity_bound.phpt | 52
ext/pcntl/tests/pcntl_qosclass.phpt | 5
ext/pcntl/tests/pcntl_signal_dispatch_exception_2.phpt | 44
ext/pcntl/tests/pcntl_signal_dispatch_exception_3.phpt | 47
ext/pcntl/tests/pcntl_signal_dispatch_exception_pending.phpt | 24
ext/pcntl/tests/pcntl_signal_dispatch_exception_pending_user_frame.phpt | 33
ext/pcre/php_pcre.c | 115
ext/pcre/tests/oom_preg_filter.phpt | 11
ext/pcre/tests/oom_preg_match_all.phpt | 11
ext/pcre/tests/oom_preg_match_all_named_groups.phpt | 17
ext/pcre/tests/oom_preg_match_captures.phpt | 12
ext/pcre/tests/oom_preg_replace.phpt | 11
ext/pcre/tests/oom_preg_replace_callback.phpt | 11
ext/pcre/tests/oom_preg_replace_callback_array.phpt | 11
ext/pcre/tests/oom_preg_split.phpt | 11
ext/pdo/pdo_dbh.c | 19
ext/pdo/pdo_stmt.c | 170
ext/pdo/php_pdo_driver.h | 3
ext/pdo/tests/get_gc_bound_params.phpt | 66
ext/pdo/tests/pdo_030.phpt | 23
ext/pdo/tests/pdo_bindcolumn_unknown_column.phpt | 41
ext/pdo/tests/pdo_setfetchmode_atomic.phpt | 73
ext/pdo/tests/pdo_setfetchmode_reentrant_fetch.phpt | 75
ext/pdo/tests/pdo_setfetchmode_reentrant_setmode.phpt | 53
ext/pdo_dblib/dblib_driver.c | 7
ext/pdo_dblib/dblib_stmt.c | 14
ext/pdo_dblib/tests/gh23741.phpt | 38
ext/pdo_dblib/tests/gh23741_2.phpt | 27
ext/pdo_firebird/firebird_statement.c | 2
ext/pdo_firebird/tests/gh23758.phpt | 52
ext/pdo_mysql/tests/pdo_mysql_stmt_nextrowset_columncount.phpt | 39
ext/pdo_odbc/tests/getcolumnmeta_bounds.phpt | 49
ext/pdo_sqlite/tests/gh23962.phpt | 31
ext/pdo_sqlite/tests/pdo_driver_options_weakref.phpt | 35
ext/pdo_sqlite/tests/pdo_sqlite_failed_execute.phpt | 83
ext/pdo_sqlite/tests/pdo_sqlite_reentrant_bind.phpt | 102
ext/readline/readline_cli.c | 8
ext/reflection/php_reflection.c | 2
ext/session/mod_user.c | 8
ext/session/php_session.h | 2
ext/session/session.c | 73
ext/session/tests/rfc1867_incomplete_class_reserved_props.phpt | 139
ext/session/tests/rfc1867_no_user_code.phpt | 217
ext/session/tests/rfc1867_sid_invalid.phpt | 54
ext/session/tests/user_session_module/session_create_id_create_sid_throws.phpt | 5
ext/session/tests/user_session_module/session_create_sid_return_destructor_throws.phpt | 37
ext/session/tests/user_session_module/session_regenerate_id_create_sid_throws.phpt | 57
ext/session/tests/user_session_module/session_start_create_sid_throws.phpt | 64
ext/session/tests/user_session_module/session_start_strict_recreate_create_sid_fails.phpt | 49
ext/shmop/shmop.c | 5
ext/shmop/tests/tsrm_shmat.phpt | 24
ext/simplexml/simplexml.c | 82
ext/simplexml/tests/oom_array_cast.phpt | 20
ext/simplexml/tests/oom_json_encode.phpt | 20
ext/simplexml/tests/oom_tostring.phpt | 15
ext/simplexml/tests/oom_xpath.phpt | 20
ext/simplexml/tests/reconstruct_with_retained_child.phpt | 19
ext/snmp/tests/gh23453.phpt | 2
ext/soap/php_encoding.c | 17
ext/soap/php_http.c | 28
ext/soap/php_sdl.c | 7
ext/soap/soap.c | 31
ext/soap/tests/GHSA-rgrp-mwpx-f6rm-href-chain.phpt | 6
ext/soap/tests/GHSA-rgrp-mwpx-f6rm-href-cycle.phpt | 6
ext/soap/tests/bugs/GHSA-cj93-vc83-wgqv.phpt | 1
ext/soap/tests/bugs/bug62900.phpt | 11
ext/soap/tests/bugs/gh22895.phpt | 96
ext/soap/tests/load_wsdl_ex-failure-leak.phpt | 18
ext/soap/tests/load_wsdl_ex-failure-leak.wsdl | 7
ext/soap/tests/oom_http_server.inc | 69
ext/soap/tests/oom_soap_response.inc | 33
ext/soap/tests/oom_soapclient_call.phpt | 16
ext/soap/tests/oom_soapclient_dorequest_chunked.phpt | 24
ext/soap/tests/oom_soapclient_dorequest_close.phpt | 28
ext/soap/tests/oom_soapclient_dorequest_content_length.phpt | 24
ext/soap/tests/oom_soapclient_response_headers.phpt | 26
ext/soap/tests/oom_soapclient_soapcall.phpt | 16
ext/soap/tests/oom_soapserver_handle_array.phpt | 30
ext/soap/tests/oom_soapserver_handle_headers.phpt | 26
ext/soap/tests/oom_soapserver_handle_parameters.phpt | 25
ext/sockets/sockets.c | 23
ext/sockets/tests/bug63000.phpt | 17
ext/sockets/tests/socket_select_fd_setsize_overflow.phpt | 50
ext/spl/spl_fixedarray.c | 117
ext/spl/tests/SplFixedArray_setSize_destruct_reinit_during_clear.phpt | 68
ext/spl/tests/SplFixedArray_subclass_without_parent_construct.phpt | 63
ext/sqlite3/php_sqlite3_structs.h | 3
ext/sqlite3/sqlite3.c | 52
ext/sqlite3/tests/sqlite3_close_from_callback.phpt | 35
ext/sqlite3/tests/sqlite3_close_from_callback_aggregate.phpt | 41
ext/sqlite3/tests/sqlite3_close_from_callback_authorizer.phpt | 38
ext/sqlite3/tests/sqlite3_close_from_callback_collation.phpt | 39
ext/standard/array.c | 69
ext/standard/assert.c | 4
ext/standard/basic_functions.c | 17
ext/standard/basic_functions.h | 1
ext/standard/config.m4 | 2
ext/standard/file.c | 20
ext/standard/filters.c | 2
ext/standard/head.c | 14
ext/standard/html.c | 12
ext/standard/image.c | 15
ext/standard/iptc.c | 3
ext/standard/levenshtein.c | 29
ext/standard/pack.c | 5
ext/standard/php_incomplete_class.h | 5
ext/standard/php_var.h | 2
ext/standard/proc_open.c | 32
ext/standard/sha1.c | 6
ext/standard/string.c | 180
ext/standard/tests/GHSA-96wq-48vp-hh57.phpt | 3
ext/standard/tests/array/oom_array_chunk.phpt | 12
ext/standard/tests/array/oom_array_map_zip.phpt | 12
ext/standard/tests/file/fread_oom_chunk_size.phpt | 16
ext/standard/tests/file/fread_oom_filter_chunk_size.phpt | 17
ext/standard/tests/file/fread_oom_length.phpt | 15
ext/standard/tests/file/ghsa-9f67-6fw4-hpfp-win32.phpt | 22
ext/standard/tests/file/oom_file.phpt | 22
ext/standard/tests/file/oom_file_get_contents.phpt | 21
ext/standard/tests/filters/qp_decode_lowercase.phpt | 20
ext/standard/tests/general_functions/proc_open_descriptor_0_setup_failure.phpt | 29
ext/standard/tests/general_functions/proc_open_socket_descriptor_0_setup_failure.phpt | 29
ext/standard/tests/image/iptcembed_reentrant.phpt | 34
ext/standard/tests/image/oom_getimagesize_cws.inc | 17
ext/standard/tests/image/oom_getimagesize_cws.phpt | 27
ext/standard/tests/image/oom_getimagesize_xbm.phpt | 23
ext/standard/tests/image/oom_getimagesizefromstring_cws.phpt | 27
ext/standard/tests/serialize/incomplete_class_raw_payload_markers.phpt | 15
ext/standard/tests/streams/bug61115-1.phpt | 3
ext/standard/tests/streams/oom_stream_copy_to_stream_memory.phpt | 22
ext/standard/tests/streams/oom_stream_get_contents.phpt | 21
ext/standard/tests/streams/persistent_stream_context_shutdown.phpt | 63
ext/standard/tests/streams/stream_get_line_oom_chunk_size.phpt | 16
ext/standard/tests/strings/chunk_split_variation3.phpt | 18
ext/standard/tests/strings/oom_explode.phpt | 17
ext/standard/tests/strings/oom_implode.phpt | 15
ext/standard/tests/strings/oom_levenshtein.phpt | 15
ext/standard/tests/strings/oom_nl2br.phpt | 15
ext/standard/tests/strings/oom_setcookie_value.phpt | 15
ext/standard/tests/strings/oom_str_getcsv.phpt | 17
ext/standard/tests/strings/oom_str_ireplace.phpt | 15
ext/standard/tests/strings/oom_str_replace.phpt | 15
ext/standard/tests/strings/oom_str_split.phpt | 17
ext/standard/tests/strings/oom_str_word_count.phpt | 17
ext/standard/tests/strings/oom_strtr.phpt | 15
ext/standard/tests/strings/oom_substr_replace.phpt | 15
ext/standard/tests/strings/oom_unpack.phpt | 17
ext/standard/tests/strings/sha1_file_stream_error.phpt | 77
ext/standard/tests/strings/str_pad_variation1.phpt | 2
ext/standard/tests/strings/wordwrap_memory_limit_002.phpt | 19
ext/standard/tests/strings/wordwrap_memory_limit_003.phpt | 19
ext/standard/tests/strings/wordwrap_memory_limit_004.phpt | 21
ext/standard/tests/strings/wordwrap_trailing_break.phpt | 28
ext/standard/url_scanner_ex.c | 7
ext/standard/url_scanner_ex.h | 1
ext/standard/url_scanner_ex.re | 7
ext/standard/var.c | 62
ext/standard/var_unserializer.c | 139
ext/standard/var_unserializer.re | 139
ext/tidy/tests/reparse_node.phpt | 66
ext/tidy/tidy.c | 54
ext/tokenizer/tests/token_get_all_TOKEN_PARSE_oom_feedback.phpt | 15
ext/tokenizer/tokenizer.c | 64
ext/xml/tests/oom_xml_parse_attributes.phpt | 22
ext/xml/tests/oom_xml_parse_into_struct.phpt | 16
ext/xml/tests/oom_xml_parse_ns.phpt | 27
ext/xml/tests/xml_set_handler_reentrancy.phpt | 43
ext/xml/xml.c | 51
ext/xmlreader/php_xmlreader.c | 10
ext/xmlreader/tests/oom_xmlreader_getattribute.phpt | 32
ext/xmlreader/tests/oom_xmlreader_getattributeno.phpt | 32
ext/xmlreader/tests/oom_xmlreader_getattributens.phpt | 31
ext/xmlreader/tests/oom_xmlreader_lookupnamespace.phpt | 32
ext/xmlreader/tests/oom_xmlreader_readinnerxml.phpt | 36
ext/xmlreader/tests/oom_xmlreader_readouterxml.phpt | 32
ext/xmlreader/tests/oom_xmlreader_readstring.phpt | 36
ext/xmlwriter/php_xmlwriter.c | 6
ext/xsl/php_xsl.h | 1
ext/xsl/tests/gh23730.phpt | 81
ext/xsl/tests/gh23897.phpt | 36
ext/xsl/tests/throw_in_autoload.phpt | 4
ext/xsl/xsltprocessor.c | 12
ext/zend_test/observer.c | 4
ext/zend_test/php_test.h | 1
ext/zend_test/test.c | 174
ext/zend_test/test.stub.php | 11
ext/zend_test/test_arginfo.h | 32
ext/zend_test/tests/observer_bug81430_2.phpt | 21
ext/zend_test/tests/observer_bug81435.phpt | 13
ext/zend_test/tests/observer_error_01.phpt | 18
ext/zend_test/tests/observer_fiber_functions_03.phpt | 17
ext/zend_test/tests/zend_test_handle_post_data.phpt | 85
ext/zip/php_zip.c | 44
ext/zip/php_zip.h | 1
ext/zip/tests/gh18431.phpt | 6
ext/zip/tests/gh23747.phpt | 102
ext/zip/tests/oo_extract_array_keys.phpt | 38
ext/zlib/tests/oom_deflate_add.phpt | 34
ext/zlib/tests/oom_gzcompress.phpt | 32
ext/zlib/tests/oom_gzdecode.phpt | 26
ext/zlib/tests/oom_gzfile.phpt | 35
ext/zlib/tests/oom_gzgets.phpt | 36
ext/zlib/tests/oom_gzpassthru.phpt | 37
ext/zlib/tests/oom_inflate_add.phpt | 27
ext/zlib/tests/oom_readgzfile.phpt | 36
ext/zlib/tests/oom_zlib_inflate_filter.phpt | 37
ext/zlib/zlib.c | 48
ext/zlib/zlib_filter.c | 6
main/SAPI.c | 4
main/fopen_wrappers.c | 8
main/main.c | 50
main/php_config.h.in | 8
main/php_streams.h | 2
main/php_variables.c | 34
main/php_version.h | 6
main/rfc1867.c | 216
main/snprintf.c | 2
main/streams/memory.c | 18
main/streams/streams.c | 78
run-tests.php | 14
sapi/cli/php_cli.c | 11
sapi/cli/php_cli_server.c | 29
sapi/cli/tests/oom_request_parsing_next_request.phpt | 36
sapi/cli/tests/oom_shutdown_function_next_request.phpt | 37
sapi/cli/tests/php_cli_server_ipv6_error_message.phpt | 6
sapi/cli/tests/php_cli_server_reset_before_accept.phpt | 26
sapi/fpm/tests/bug77023-pm-dynamic-blocking-sigquit.phpt | 1
sapi/fpm/tests/request_parse_body_multipart_options_post_max_size.phpt | 52
sapi/fuzzer/fuzzer-sapi.c | 8
sapi/phpdbg/phpdbg.c | 2
tests/basic/GHSA-2cv3-554h-jpmh_multipart.phpt | 37
tests/basic/GHSA-2cv3-554h-jpmh_urlencoded.phpt | 29
tests/basic/GHSA-f883-x959-3vr9_001.phpt | 20
tests/basic/GHSA-f883-x959-3vr9_002.phpt | 21
tests/basic/GHSA-f883-x959-3vr9_003.phpt | 21
tests/basic/GHSA-f883-x959-3vr9_004.phpt | 23
tests/basic/GHSA-f883-x959-3vr9_005.phpt | 23
tests/basic/GHSA-f883-x959-3vr9_006.phpt | 43
tests/basic/GHSA-f883-x959-3vr9_007.inc | 3
tests/basic/GHSA-f883-x959-3vr9_007.phpt | 63
tests/basic/GHSA-f883-x959-3vr9_008.phpt | 44
tests/basic/GHSA-f883-x959-3vr9_009.phpt | 44
tests/basic/GHSA-f883-x959-3vr9_010.phpt | 45
tests/basic/GHSA-f883-x959-3vr9_011.phpt | 20
tests/basic/oom_rfc1867.inc | 88
tests/basic/oom_rfc1867_array_upload_name.phpt | 45
tests/basic/oom_rfc1867_early_report.phpt | 34
tests/basic/oom_rfc1867_field_name.phpt | 25
tests/basic/oom_rfc1867_files.phpt | 29
tests/basic/oom_rfc1867_files_registration.phpt | 58
tests/basic/oom_rfc1867_files_registration_full_path.phpt | 26
tests/basic/oom_rfc1867_form_value.phpt | 19
tests/basic/oom_rfc1867_header_continuation.phpt | 18
tests/basic/oom_rfc1867_header_count.phpt | 18
tests/basic/oom_rfc1867_long_header_line.phpt | 45
tests/basic/oom_rfc1867_mb_encoding.phpt | 114
tests/basic/oom_rfc1867_mb_skipif.inc | 5
tests/basic/oom_rfc1867_post_vars.phpt | 16
tests/basic/oom_rfc1867_session_skipif.inc | 5
tests/basic/oom_rfc1867_skipif.inc | 7
tests/basic/oom_rfc1867_target.inc | 2
tests/basic/oom_rfc1867_upload_progress.phpt | 98
tests/output/gh15179.phpt | 2
tests/output/oom_in_internal_output_handler.phpt | 20
tests/security/open_basedir_nul_win32.phpt | 57
636 files changed, 24672 insertions(+), 8901 deletions(-)
dpkg-source: warning: cannot verify inline signature for /srv/release.debian.org/tmp/tmpuof88id7/php8.4_8.4.26-1~deb13u1.dsc: no acceptable signature found
dpkg-source: warning: cannot verify inline signature for /srv/release.debian.org/tmp/tmpuof88id7/php8.4_8.4.27-1~deb13u1.dsc: no acceptable signature found
diff -Nru php8.4-8.4.26/.github/actions/brew/action.yml php8.4-8.4.27/.github/actions/brew/action.yml
--- php8.4-8.4.26/.github/actions/brew/action.yml 2026-09-22 15:00:02.000000000 +0000
+++ php8.4-8.4.27/.github/actions/brew/action.yml 2026-10-19 14:38:59.000000000 +0000
@@ -32,4 +32,5 @@
t1lib \
libxml2 \
libjpeg \
- libxslt
+ libxslt \
+ openssl@3
diff -Nru php8.4-8.4.26/.github/actions/configure-macos/action.yml php8.4-8.4.27/.github/actions/configure-macos/action.yml
--- php8.4-8.4.26/.github/actions/configure-macos/action.yml 2026-09-22 15:00:02.000000000 +0000
+++ php8.4-8.4.27/.github/actions/configure-macos/action.yml 2026-10-19 14:38:59.000000000 +0000
@@ -11,7 +11,7 @@
set -x
BREW_OPT="$(brew --prefix)"/opt
export PATH="$BREW_OPT/bison/bin:$PATH"
- export PKG_CONFIG_PATH="$PKG_CONFIG_PATH:$BREW_OPT/openssl/lib/pkgconfig"
+ export PKG_CONFIG_PATH="$PKG_CONFIG_PATH:$BREW_OPT/openssl@3/lib/pkgconfig"
export PKG_CONFIG_PATH="$PKG_CONFIG_PATH:$BREW_OPT/curl/lib/pkgconfig"
export PKG_CONFIG_PATH="$PKG_CONFIG_PATH:$BREW_OPT/libffi/lib/pkgconfig"
export PKG_CONFIG_PATH="$PKG_CONFIG_PATH:$BREW_OPT/libxml2/lib/pkgconfig"
diff -Nru php8.4-8.4.26/.github/matrix.php php8.4-8.4.27/.github/matrix.php
--- php8.4-8.4.26/.github/matrix.php 2026-09-22 15:00:02.000000000 +0000
+++ php8.4-8.4.27/.github/matrix.php 2026-10-19 14:38:59.000000000 +0000
@@ -1,7 +1,8 @@
'master', 'ref' => 'master', 'version' => [8, 6]],
+ ['name' => 'master', 'ref' => 'master', 'version' => [8, 7]],
+ ['name' => 'PHP-8.6', 'ref' => 'PHP-8.6', 'version' => [8, 6]],
['name' => 'PHP-8.5', 'ref' => 'PHP-8.5', 'version' => [8, 5]],
['name' => 'PHP-8.4', 'ref' => 'PHP-8.4', 'version' => [8, 4]],
['name' => 'PHP-8.3', 'ref' => 'PHP-8.3', 'version' => [8, 3]],
@@ -128,7 +129,7 @@
$jobs['MACOS']['matrix'] = $all_variations
? ['arch' => $test_arm ? ['X64', 'ARM64'] : ['X64'], 'debug' => [true, false], 'zts' => [true, false]]
: ['include' => [['arch' => $test_arm ? 'ARM64' : 'X64', 'debug' => true, 'zts' => false]]];
- $jobs['MACOS']['config']['arm64_version'] = version_compare($php_version, '8.4', '>=') ? '15' : '14';
+ $jobs['MACOS']['config']['version'] = version_compare($php_version, '8.4', '>=') ? '26' : '15';
}
if ($all_jobs || $test_msan) {
$jobs['MSAN'] = true;
diff -Nru php8.4-8.4.26/.github/scripts/windows/find-target-branch.bat php8.4-8.4.27/.github/scripts/windows/find-target-branch.bat
--- php8.4-8.4.26/.github/scripts/windows/find-target-branch.bat 2026-09-22 15:00:02.000000000 +0000
+++ php8.4-8.4.27/.github/scripts/windows/find-target-branch.bat 2026-10-19 14:38:59.000000000 +0000
@@ -3,6 +3,6 @@
for /f "usebackq tokens=3" %%i in (`findstr PHP_MAJOR_VERSION main\php_version.h`) do set BRANCH=%%i
for /f "usebackq tokens=3" %%i in (`findstr PHP_MINOR_VERSION main\php_version.h`) do set BRANCH=%BRANCH%.%%i
-if /i "%BRANCH%" equ "8.6" (
+if /i "%BRANCH%" equ "8.7" (
set BRANCH=master
)
diff -Nru php8.4-8.4.26/.github/workflows/test-suite.yml php8.4-8.4.27/.github/workflows/test-suite.yml
--- php8.4-8.4.26/.github/workflows/test-suite.yml 2026-09-22 15:00:02.000000000 +0000
+++ php8.4-8.4.27/.github/workflows/test-suite.yml 2026-10-19 14:38:59.000000000 +0000
@@ -312,7 +312,7 @@
fail-fast: false
matrix: ${{ fromJson(inputs.branch).jobs.MACOS.matrix }}
name: "MACOS_${{ matrix.arch }}_${{ matrix.debug && 'DEBUG' || 'RELEASE' }}_${{ matrix.zts && 'ZTS' || 'NTS' }}"
- runs-on: macos-${{ matrix.arch == 'X64' && '15-intel' || fromJson(inputs.branch).jobs.MACOS.config.arm64_version }}
+ runs-on: macos-${{ fromJson(inputs.branch).jobs.MACOS.config.version }}${{ matrix.arch == 'X64' && '-intel' || '' }}
timeout-minutes: 180
steps:
- name: git checkout
@@ -853,7 +853,7 @@
PHP_BUILD_CACHE_BASE_DIR: C:\build-cache
PHP_BUILD_OBJ_DIR: C:\obj
PHP_BUILD_CACHE_SDK_DIR: C:\build-cache\sdk
- PHP_BUILD_SDK_BRANCH: php-sdk-2.8.2
+ PHP_BUILD_SDK_BRANCH: php-sdk-2.8.4
PHP_BUILD_CRT: ${{ fromJson(inputs.branch).jobs.WINDOWS.config.vs_crt_version }}
PLATFORM: ${{ matrix.x64 && 'x64' || 'x86' }}
THREAD_SAFE: "${{ matrix.zts && '1' || '0' }}"
diff -Nru php8.4-8.4.26/.github/workflows/test.yml php8.4-8.4.27/.github/workflows/test.yml
--- php8.4-8.4.26/.github/workflows/test.yml 2026-09-22 15:00:02.000000000 +0000
+++ php8.4-8.4.27/.github/workflows/test.yml 2026-10-19 14:38:59.000000000 +0000
@@ -18,6 +18,7 @@
- PHP-8.3
- PHP-8.4
- PHP-8.5
+ - PHP-8.6
- master
pull_request:
paths-ignore: *ignore_paths
diff -Nru php8.4-8.4.26/NEWS php8.4-8.4.27/NEWS
--- php8.4-8.4.26/NEWS 2026-09-22 15:00:02.000000000 +0000
+++ php8.4-8.4.27/NEWS 2026-10-19 14:38:59.000000000 +0000
@@ -1,5 +1,253 @@
PHP NEWS
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
+22 Oct 2026, PHP 8.4.27
+
+- Core:
+ . Fixed GHSA-w8hw-w9fx-j79w, GHSA-6wmf-4rv5-p3rp (Avoid state corruption via
+ bailout). (CVE-2026-109618, CVE-2026-109619) (Arnaud, ilutov, Jakub Zelenka,
+ ndossche, Nicolas Grekas)
+ . Fix GH-21999: GC inconsistency with lazy object, var_dump(), and object
+ comparison. (Arnaud)
+ . Fixed OSS-Fuzz #536440507 (Immutable class incorrect assertion).
+ (ndossche)
+ . Fixed AVX being reported as supported when the OS has not enabled AVX
+ state. (Ilia Alshanetsky)
+ . Fixed GH-23980 (ZEND_ASSERT violation @ ZEND_INCLUDE_OR_EVAL). (ndossche)
+ . Fixed bug GH-23896 (Assertion failure in zend_call_function() after a
+ throwing deprecation). (lazerg)
+ . Fixed use-after-free when a dl()-loaded extension declares a frameless
+ function and a later request calls it. (Ilia Alshanetsky)
+ . Fixed System V shared memory emulation for Windows attaching segments past
+ the end of their mapping. (Ilia Alshanetsky)
+ . Fixed bug GH-24050 (GC frees an object still held by a resurrected closure
+ when (object) and use share an array). (David Carlier)
+ . Fixed exception thrown by destructor during GC in a Fiber not being rethrown
+ into the frame that triggered the GC. (Nicolas Grekas)
+
+- BCMath:
+ . Fixed BcMath\Number results that truncate to zero keeping a negative sign
+ and comparing less than zero. (Ilia Alshanetsky)
+
+- BZ2:
+ . Fixed double close of the descriptor and use-after-free of the inner
+ stream when bzopen() is given a stream resource. (Jakub Zelenka)
+
+- CLI:
+ . Fix GH-22567 (Windows ZTS CLI SAPI should refresh its TSRMLS cache during
+ request activation). (matyhtf)
+ . Fixed bug GH-23764 (Built-in server leaks a file descriptor on every HEAD
+ request for a static file). (jakubskopal)
+ . Fixed crash in the built-in server when a client is reset before being
+ accepted. (David Carlier)
+ . Fixed the built-in server truncating an error page and leaking its
+ unsent part after a partial socket write. (Ilia Alshanetsky)
+
+- DOM:
+ . Fixed use-after-free when re-constructing a DOMXPath whose php:function
+ registrations are freed while still reachable from the cycle collector.
+ (Ilia Alshanetsky)
+ . Fixed bug GH-23365 (DOMNode::insertBefore($n, $n) drops the node and
+ leaves a self-referencing sibling list). (David Carlier)
+ . Fixed Dom\HTMLDocument::getElementById() not finding ids of SVG and
+ MathML elements. (Ilia Alshanetsky)
+ . Fixed Dom\HTMLDocument giving attributes the namespace of their element
+ when a fragment is parsed with an xlink, xml or xmlns context element.
+ (Ilia Alshanetsky)
+ . Fixed bug GH-23729 (DOMXPath::__construct() use-after-free during an
+ evaluation). (David Carlier)
+ . Fixed bug GH-23897 (php:function() assertion failure after a failed
+ registerPHPFunctions()). (David Carlier)
+ . Fixed DOMXPath and Dom\XPath losing the context node and in-scope
+ namespaces of an evaluation after a php:function() callback evaluated
+ another expression on the same object. (Ilia Alshanetsky)
+
+- FFI:
+ . Fixed crashes with FFI callbacks created from __call() trampolines
+ and array callables whose object is released. (Ilia Alshanetsky)
+
+- FTP:
+ . Fixed bug GH-23619 (cryptic error on servers that don't support TLS
+ session resumption on data connection). (ndossche)
+
+- GD:
+ . Fixed undefined behavior with GD2 images with `INT_MAX`-sized chunks.
+ (DanielEScherzer, cmb)
+ . Fixed undefined behavior with GIFs with problematic LZW compression data.
+ (DanielEScherzer, vapier)
+
+- Intl:
+ . Fixed IntlDateFormatter::parse(), localtime() and parseToCalendar()
+ treating the offset as UTF-16 code units instead of bytes.
+ (Ilia Alshanetsky)
+ . Fixed cloning IntlDateFormatter and MessageFormatter losing PHP-side state
+ such as dateType, timeType, calendar and the message pattern.
+ (Ilia Alshanetsky)
+ . Fixed Collator attribute and strength methods not rejecting an
+ unconstructed Collator. (Ilia Alshanetsky)
+ . Fixed grapheme_strstr() and grapheme_stristr() returning incorrect substrings
+ when supplementary characters precede the match. (Weilin Du)
+ . Fixed grapheme_strstr() and grapheme_strpos() missing canonically
+ equivalent matches, and grapheme searches reporting ICU errors for empty
+ haystacks. (Weilin Du)
+ . Fixed grapheme_strrpos() and grapheme_strripos() skipping overlapping matches
+ when using a negative offset. (Weilin Du)
+
+- Lexbor:
+ . Merge patches lexbor/lexbor@8a14bc0 and lexbor/lexbor@f67ce4b, fixing a
+ heap buffer overflow in :lexbor-contains() parsing and buffer overflows
+ in malformed decode replay. (alexandre-daubois)
+
+- MBString:
+ . Fixed bug GH-23106 (mb_strpos() reads past the end of a haystack ending in
+ a truncated UTF-8 sequence). (Lazizbek Ergashev)
+ . Fixed mbstring functions emitting surrogates in UTF-8 output and flagging
+ it as valid UTF-8. (Nicolas Grekas)
+
+- MySQLi:
+ . Fix GH-22854: Fixed failed assertion when accessing mysqli property after
+ failed reconnection. (Kamil Tekiela)
+
+- MySQLnd:
+ . Fixed field_count not resetting on OK packet. (Kamil Tekiela)
+ . Fixed memory leak when closing a prepared statement after its connection
+ was killed. (Kamil Tekiela)
+
+- Opcache:
+ . Fixed OSS-Fuzz #546798343 (Heap-buffer-overflow in optimizer with
+ FCCs and inlining). (ndossche)
+ . Fixed bug GH-23693 (Tracing JIT produces wrong results for a guard on a
+ loop-invariant addition). (Ilia Alshanetsky)
+ . Fixed OSS-Fuzz #5674034779193344 (Read of uninitialized memory in
+ is_cacheable_stream_path()). (ndossche)
+ . Fix zend_analyze_calls() call_stack buffer overrun. (Mrmaxmeier)
+ . Fixed bug GH-23637 (PHP-FPM worker SIGSEGV: run_time_cache map_ptr offset
+ beyond CG(map_ptr_last) when a class is reached through the CE cache).
+ (David Carlier)
+ . Fix multiple incorrect DCE due to unsound escape analysis. (ndossche,
+ arnaud-lb)
+ . Fixed bug GH-24063 (OPcache optimizer folds `$cond ? -0.0 : 0.0` into a
+ single `-0.0` constant). (lazerg)
+ . Fixed crash when a file cache is reused with a different set of
+ extensions declaring frameless functions. (Ilia Alshanetsky)
+ . Fixed bug GH-23991 (JIT generates invalid IR for multiple recursive calls).
+ (ndossche)
+ . Fix SCCP evaluation of isset()/empty() on dimension of non-escaping object.
+ (ndossche)
+
+- OpenSSL:
+ . Fixed stream_socket_enable_crypto() leaving the socket non-blocking
+ after a handshake timeout. (Ilia Alshanetsky)
+ . Fixed feof() on a TLS stream staying false after a close_notify on Windows.
+ (Jakub Zelenka)
+
+- PCNTL:
+ . Fixed pcntl_signal_dispatch() dropping the queued signals when it runs while
+ an exception is pending. (nicolas-grekas)
+ . Fixed pcntl_signal_dispatch() dropping the signals queued behind a handler
+ that throws. (nicolas-grekas)
+ . Fixed pcntl_setcpuaffinity() error message advertising the cpu count as
+ the inclusive upper bound. (lacatoire)
+ . Fixed pcntl_setqos_class() requiring its optional $qos_class argument.
+ (lacatoire)
+ . Fixed bug GH-23986 (/proc/self paths resolve to the parent process after
+ pcntl_fork()). (Lazizbek Ergashev)
+
+- PDO:
+ . Fixed PDOStatement::getColumnMeta() reading out of bounds for an invalid
+ column index. (Ilia Alshanetsky)
+ . Fixed PDOStatement::bindColumn() registering a binding for a column name
+ that is not in the result set. (Ilia Alshanetsky)
+ . Fixed PDOStatement::execute() leaving the previous result available
+ after a failed execution. (Ilia Alshanetsky)
+ . Fixed a use-after-free when bindValue()/execute()/closeCursor() is called
+ from a bound parameter's __toString() during execute(). (Ilia Alshanetsky)
+ . Fixed bug GH-23962 (Destroying a persistent PDO instance rolls back a
+ transaction still in use by another instance). (Lazizbek Ergashev)
+ . Fixed PDO::setAttribute() installing a PDO::ATTR_STATEMENT_CLASS class
+ whose constructor arguments it rejects. (Ilia Alshanetsky)
+ . Fixed PDO::ATTR_STATEMENT_CLASS constructor_args type errors reporting
+ "array given" regardless of the value passed. (Ilia Alshanetsky)
+ . Fixed PDOStatement::bindParam() and bindColumn() leaking the driver
+ options value. (Ilia Alshanetsky)
+ . Fixed PDOStatement not reporting its bound parameters and columns to the
+ cycle collector. (Ilia Alshanetsky)
+ . Fixed PDOStatement::setFetchMode() not applying changes atomically.
+ (Ilia Alshanetsky)
+
+- PDO_DBLIB:
+ . Fixed bug GH-23741 (segfault after a failed query inside a PDO
+ transaction). Errors raised by beginTransaction(), commit(), rollBack()
+ and lastInsertId() are now reported instead of being dropped.
+ (Ilia Alshanetsky)
+
+- PDO_Firebird:
+ . Fixed bug GH-23758 (PDO_Firebird returns null for non-null empty BLOBs).
+ (Lazizbek Ergashev)
+
+- Readline:
+ . Fixed a heap over-read in the interactive shell prompt when cli.prompt is
+ set to an empty string. (Ilia Alshanetsky)
+
+- Session:
+ . Fixed session_start() continuing after a failed create_sid() when
+ session.use_strict_mode rejects the supplied ID. (Ilia Alshanetsky)
+ . Fixed exceptions from user-defined create_sid() handlers being replaced
+ by return-value validation errors. (Ilia Alshanetsky)
+
+- SimpleXML:
+ . Fixed reconstructing a SimpleXMLElement freeing a child element that
+ another variable still references. (Ilia Alshanetsky)
+
+- SOAP:
+ . Fixed bug GH-22895 (Heap use-after-free while encoding a Traversable with
+ an illegal key). (David Carlier)
+ . Fixed memory leak when load_wsdl_ex() failed to load. (DanielEScherzer)
+
+- Sockets:
+ . Fixed socket_select() silently truncating sets larger than FD_SETSIZE on
+ Windows. (David Carlier)
+
+- SPL:
+ . Fixed SplFixedArray::setSize() doing nothing on subclasses whose
+ constructor does not call parent::__construct(). (Marc Bennewitz)
+ . Fixed memory leak when __construct(), __wakeup() or __unserialize() is
+ called from an element destructor during setSize(0). (Marc Bennewitz)
+
+- SQLite:
+ . Fixed a crash when SQLite3::close() is called from a userland callback.
+ (Ilia Alshanetsky)
+
+- Standard:
+ . Fixed sha1_file() returning a digest for incomplete data after a stream
+ read failure. (Ilia Alshanetsky)
+ . Fixed iptcembed() corrupting JPEG headers when called recursively from an
+ output handler. (Ilia Alshanetsky)
+ . Fixed proc_open() leaking descriptor zero when descriptor setup fails.
+ (Ilia Alshanetsky)
+ . Fixed three Windows-only proc_open() defects: an uninitialized
+ PROCESS_INFORMATION, an indeterminate comspec pointer after a failed
+ lookup, and an unchecked CreateFileA() failure. (Ilia Alshanetsky)
+ . Fix persistent stream context lifetime during shutdown (Levi Morrison)
+ . Fix wordwrap() ignoring an existing break at the end of the string
+ (Nicolas Grekas)
+ . Fixed convert.quoted-printable-decode decoding lowercase hex digits to
+ the wrong byte. (Ilia Alshanetsky)
+
+- Tidy:
+ . Fixed a use-after-free when a tidyNode is used after its document is
+ reparsed. (Ilia Alshanetsky)
+
+- XSL:
+ . Fixed bug GH-23730 (use-after-free when XSLTProcessor::importStylesheet()
+ is called during a transformation). (David Carlier)
+
+- Zip:
+ . Fixed ZipArchive::extractTo() ignoring files given in a non-list array.
+ (David Carlier)
+ . Fixed bug GH-23747 (ZipArchive::close() use-after-free from a progress or
+ cancel callback). (David Carlier)
+
+
24 Sep 2026, PHP 8.4.26
- BCMath:
@@ -232,6 +480,8 @@
parent slot when a child class hooks an inherited property. (iliaal)
. Fixed segfault in ReflectionMethod::createFromMethodName() on an
uninstantiable subclass. (iliaal)
+ . Fixed bug GH-23842 (ReflectionProperty::skipLazyInitialization() copies
+ invalid constant defaults with OPcache). (DirkTrunkstar, Lazizbek Ergashev)
- Readline:
. Fixed class constant completion in the interactive shell. (Weilin Du)
diff -Nru php8.4-8.4.26/TSRM/tsrm_win32.c php8.4-8.4.27/TSRM/tsrm_win32.c
--- php8.4-8.4.26/TSRM/tsrm_win32.c 2026-09-22 15:00:02.000000000 +0000
+++ php8.4-8.4.27/TSRM/tsrm_win32.c 2026-10-19 14:38:59.000000000 +0000
@@ -635,6 +635,7 @@
TSRM_API int shmget(key_t key, size_t size, int flags)
{/*{{{*/
shm_pair *shm;
+ size_t mapping_size;
char shm_segment[sizeof(SEGMENT_PREFIX INT_MIN_AS_STRING)];
HANDLE shm_handle = NULL, info_handle = NULL;
BOOL created = FALSE;
@@ -650,16 +651,16 @@
if (!shm_handle) {
if (flags & IPC_CREAT) {
- if (size == 0 || size > SIZE_MAX - sizeof(shm->descriptor)) {
+ if (size == 0 || size > SIZE_MAX - sizeof(*shm->descriptor)) {
return -1;
}
- size += sizeof(shm->descriptor);
+ mapping_size = size + sizeof(*shm->descriptor);
#if SIZEOF_SIZE_T == 8
- DWORD high = size >> 32;
- DWORD low = (DWORD)size;
+ DWORD high = mapping_size >> 32;
+ DWORD low = (DWORD)mapping_size;
#else
DWORD high = 0;
- DWORD low = size;
+ DWORD low = mapping_size;
#endif
shm_handle = CreateFileMapping(INVALID_HANDLE_VALUE, NULL, PAGE_READWRITE, high, low, key == IPC_PRIVATE ? NULL : shm_segment);
created = TRUE;
@@ -730,7 +731,7 @@
return (void*)-1;
}
- shm->addr = shm->descriptor + sizeof(shm->descriptor);
+ shm->addr = shm->descriptor + 1;
shm->descriptor->shm_atime = time(NULL);
shm->descriptor->shm_lpid = getpid();
shm->descriptor->shm_nattch++;
diff -Nru php8.4-8.4.26/Zend/Optimizer/escape_analysis.c php8.4-8.4.27/Zend/Optimizer/escape_analysis.c
--- php8.4-8.4.26/Zend/Optimizer/escape_analysis.c 2026-09-22 15:00:02.000000000 +0000
+++ php8.4-8.4.27/Zend/Optimizer/escape_analysis.c 2026-10-19 14:38:59.000000000 +0000
@@ -173,6 +173,8 @@
&& !ce->destructor
&& !ce->__get
&& !ce->__set
+ && !ce->__isset
+ && !ce->num_hooked_props
&& !(ce->ce_flags & forbidden_flags)
&& (ce->ce_flags & ZEND_ACC_CONSTANTS_UPDATED)) {
return 1;
@@ -242,6 +244,8 @@
&& !ce->destructor
&& !ce->__get
&& !ce->__set
+ && !ce->__isset
+ && !ce->num_hooked_props
&& !ce->parent) {
return 1;
}
@@ -300,8 +304,10 @@
case ZEND_ASSIGN_STATIC_PROP_OP:
case ZEND_ASSIGN_DIM:
case ZEND_ASSIGN_OBJ:
- case ZEND_ASSIGN_OBJ_REF:
break;
+ case ZEND_ASSIGN_OBJ_REF:
+ /* The property may now alias a variable outside of the object. */
+ return true;
case ZEND_PRE_INC_OBJ:
case ZEND_PRE_DEC_OBJ:
case ZEND_POST_INC_OBJ:
diff -Nru php8.4-8.4.26/Zend/Optimizer/optimize_func_calls.c php8.4-8.4.27/Zend/Optimizer/optimize_func_calls.c
--- php8.4-8.4.26/Zend/Optimizer/optimize_func_calls.c 2026-09-22 15:00:02.000000000 +0000
+++ php8.4-8.4.27/Zend/Optimizer/optimize_func_calls.c 2026-10-19 14:38:59.000000000 +0000
@@ -63,6 +63,7 @@
case ZEND_DO_ICALL:
case ZEND_DO_UCALL:
case ZEND_DO_FCALL_BY_NAME:
+ case ZEND_CALLABLE_CONVERT:
call++;
break;
case ZEND_SEND_VAL:
diff -Nru php8.4-8.4.26/Zend/Optimizer/sccp.c php8.4-8.4.27/Zend/Optimizer/sccp.c
--- php8.4-8.4.26/Zend/Optimizer/sccp.c 2026-09-22 15:00:02.000000000 +0000
+++ php8.4-8.4.27/Zend/Optimizer/sccp.c 2026-10-19 14:38:59.000000000 +0000
@@ -436,7 +436,11 @@
} else if (Z_TYPE_P(op1) == IS_STRING) {
// TODO
return FAILURE;
+ } else if (IS_PARTIAL_OBJECT(op1)) {
+ /* Objects may implement ArrayAccess or throw. */
+ return FAILURE;
} else {
+ ZEND_ASSERT(Z_TYPE_P(op1) <= IS_DOUBLE);
ZVAL_BOOL(result, (extended_value & ZEND_ISEMPTY));
return SUCCESS;
}
@@ -1946,6 +1950,28 @@
scdf_mark_edge_feasible(scdf, block_num, block->successors[s]);
}
+/* Unlike zend_is_identical(), this does not treat 0.0 and -0.0 as the same value.
+ * Returns int to be usable as compare_func_t. */
+static int sccp_values_differ(const void *p1, const void *p2)
+{
+ const zval *a = p1;
+ const zval *b = p2;
+
+ if (Z_TYPE_P(a) != Z_TYPE_P(b)) {
+ return 1;
+ }
+ if (Z_TYPE_P(a) == IS_DOUBLE) {
+ return memcmp(&Z_DVAL_P(a), &Z_DVAL_P(b), sizeof(double)) != 0;
+ }
+ if (Z_TYPE_P(a) == IS_ARRAY) {
+ return Z_ARRVAL_P(a) != Z_ARRVAL_P(b)
+ && zend_hash_compare(Z_ARRVAL_P(a), Z_ARRVAL_P(b), sccp_values_differ, 1) != 0;
+ }
+ ZEND_ASSERT(IS_PARTIAL_ARRAY(a) || IS_PARTIAL_OBJECT(a)
+ || ((1 << Z_TYPE_P(a)) & (MAY_BE_UNDEF|MAY_BE_NULL|MAY_BE_BOOL|MAY_BE_LONG|MAY_BE_STRING)));
+ return !zend_is_identical(a, b);
+}
+
static void join_hash_tables(HashTable *ret, HashTable *ht1, HashTable *ht2)
{
zend_ulong index;
@@ -1958,7 +1984,7 @@
} else {
val2 = zend_hash_index_find(ht2, index);
}
- if (val2 && zend_is_identical(val1, val2)) {
+ if (val2 && !sccp_values_differ(val1, val2)) {
if (key) {
val1 = zend_hash_add_new(ret, key, val1);
} else {
@@ -2026,7 +2052,7 @@
zval_ptr_dtor_nogc(a);
MAKE_BOT(a);
}
- } else if (!zend_is_identical(a, b)) {
+ } else if (sccp_values_differ(a, b)) {
if (join_partial_arrays(a, b) == FAILURE) {
zval_ptr_dtor_nogc(a);
MAKE_BOT(a);
diff -Nru php8.4-8.4.26/Zend/Optimizer/zend_call_graph.c php8.4-8.4.27/Zend/Optimizer/zend_call_graph.c
--- php8.4-8.4.26/Zend/Optimizer/zend_call_graph.c 2026-09-22 15:00:02.000000000 +0000
+++ php8.4-8.4.27/Zend/Optimizer/zend_call_graph.c 2026-10-19 14:38:59.000000000 +0000
@@ -54,7 +54,10 @@
ALLOCA_FLAG(use_heap);
bool is_prototype;
- call_stack = do_alloca((op_array->last / 2) * sizeof(zend_call_info*), use_heap);
+ // Note: Reserve one call stack slot per operation. Each opcode pushes at
+ // most one entry to the call stack, and (with dead code elimination) it's
+ // possible to never pop from the stack.
+ call_stack = do_alloca(op_array->last * sizeof(zend_call_info*), use_heap);
call_info = NULL;
while (opline != end) {
switch (opline->opcode) {
diff -Nru php8.4-8.4.26/Zend/tests/arginfo_zpp_mismatch.inc php8.4-8.4.27/Zend/tests/arginfo_zpp_mismatch.inc
--- php8.4-8.4.26/Zend/tests/arginfo_zpp_mismatch.inc 2026-09-22 15:00:02.000000000 +0000
+++ php8.4-8.4.27/Zend/tests/arginfo_zpp_mismatch.inc 2026-10-19 14:38:59.000000000 +0000
@@ -18,6 +18,7 @@
|| (is_string($function) && str_starts_with($function, 'ob_'))
|| $function === 'output_add_rewrite_var'
|| $function === 'error_log'
+ || $function === 'syslog'
/* may spend a lot of time waiting for connection timeouts */
|| (is_string($function) && str_contains($function, 'connect'))
|| (is_string($function) && str_starts_with($function, 'snmp'))
diff -Nru php8.4-8.4.26/Zend/tests/bug40770.phpt php8.4-8.4.27/Zend/tests/bug40770.phpt
--- php8.4-8.4.26/Zend/tests/bug40770.phpt 2026-09-22 15:00:02.000000000 +0000
+++ php8.4-8.4.27/Zend/tests/bug40770.phpt 2026-10-19 14:38:59.000000000 +0000
@@ -16,9 +16,9 @@
--EXPECTF--
diff -Nru php8.4-8.4.26/Zend/tests/bug54268.phpt php8.4-8.4.27/Zend/tests/bug54268.phpt
--- php8.4-8.4.26/Zend/tests/bug54268.phpt 2026-09-22 15:00:02.000000000 +0000
+++ php8.4-8.4.27/Zend/tests/bug54268.phpt 2026-10-19 14:38:59.000000000 +0000
@@ -2,6 +2,7 @@
Bug #54268 (Double free when destroy_zend_class fails)
--INI--
memory_limit=8M
+opcache.jit=disable
--SKIPIF--
c = $this;
+ }
+}
register_shutdown_function(function() {
- new stdClass;
+ new C;
});
-$ary = [];
while (true) {
- $ary[] = new stdClass;
+ new C;
}
?>
diff -Nru php8.4-8.4.26/Zend/tests/call_function_trampoline_leak.phpt php8.4-8.4.27/Zend/tests/call_function_trampoline_leak.phpt
--- php8.4-8.4.26/Zend/tests/call_function_trampoline_leak.phpt 1970-01-01 00:00:00.000000000 +0000
+++ php8.4-8.4.27/Zend/tests/call_function_trampoline_leak.phpt 2026-10-19 14:38:59.000000000 +0000
@@ -0,0 +1,36 @@
+--TEST--
+zend_call_function() must release the trampoline when it bails before the call
+--FILE--
+getMessage(), "\n";
+}
+
+try {
+ $call([Closure::fromCallable('strcmp'), '__invoke'], ['string2' => 'b']);
+} catch (Throwable $e) {
+ echo $e::class, ': ', $e->getMessage(), "\n";
+}
+
+?>
+--EXPECT--
+Exception: Method A::foo() is deprecated
+ArgumentCountError: Closure::__invoke(): Argument #1 ($string1) not passed
diff -Nru php8.4-8.4.26/Zend/tests/debug_backtrace_sensitive_named_variadic.phpt php8.4-8.4.27/Zend/tests/debug_backtrace_sensitive_named_variadic.phpt
--- php8.4-8.4.26/Zend/tests/debug_backtrace_sensitive_named_variadic.phpt 1970-01-01 00:00:00.000000000 +0000
+++ php8.4-8.4.27/Zend/tests/debug_backtrace_sensitive_named_variadic.phpt 2026-10-19 14:38:59.000000000 +0000
@@ -0,0 +1,21 @@
+--TEST--
+Backtrace args of a #[SensitiveParameter] variadic called with named arguments
+--FILE--
+getTrace()[0]['args']);
+?>
+--EXPECT--
+array(2) {
+ ["a"]=>
+ object(SensitiveParameterValue)#2 (0) {
+ }
+ ["b"]=>
+ object(SensitiveParameterValue)#3 (0) {
+ }
+}
diff -Nru php8.4-8.4.26/Zend/tests/fibers/destructors_013.phpt php8.4-8.4.27/Zend/tests/fibers/destructors_013.phpt
--- php8.4-8.4.26/Zend/tests/fibers/destructors_013.phpt 1970-01-01 00:00:00.000000000 +0000
+++ php8.4-8.4.27/Zend/tests/fibers/destructors_013.phpt 2026-10-19 14:38:59.000000000 +0000
@@ -0,0 +1,49 @@
+--TEST--
+Fibers in destructors 013: Exception thrown by a destructor called by the GC is thrown by the statement that triggered the GC
+--INI--
+zend.enable_gc=1
+--FILE--
+self = $this;
+ }
+ public function __destruct() {
+ echo "Cycle::__destruct\n";
+ throw new Exception('Cycle::__destruct');
+ }
+}
+
+$objects = [];
+for ($i = 0; $i < 20000; $i++) {
+ $objects[] = new stdClass();
+}
+
+function f() {
+ global $objects;
+ try {
+ $copies = [...$objects];
+ new Cycle();
+ // Releasing the copies fills the GC root buffer
+ $copies = null;
+ echo "Not reached\n";
+ } catch (Exception $e) {
+ echo 'Caught: ', $e->getMessage(), "\n";
+ }
+}
+
+$fiber = new Fiber(function () {
+ try {
+ f();
+ } catch (Exception $e) {
+ echo 'Escaped: ', $e->getMessage(), "\n";
+ }
+});
+$fiber->start();
+
+?>
+--EXPECT--
+Cycle::__destruct
+Caught: Cycle::__destruct
diff -Nru php8.4-8.4.26/Zend/tests/fibers/destructors_014.phpt php8.4-8.4.27/Zend/tests/fibers/destructors_014.phpt
--- php8.4-8.4.26/Zend/tests/fibers/destructors_014.phpt 1970-01-01 00:00:00.000000000 +0000
+++ php8.4-8.4.27/Zend/tests/fibers/destructors_014.phpt 2026-10-19 14:38:59.000000000 +0000
@@ -0,0 +1,55 @@
+--TEST--
+Fibers in destructors 014: Exception thrown by a destructor called by the GC during exception unwinding is chained
+--INI--
+zend.enable_gc=1
+--FILE--
+self = $this;
+ }
+ public function __destruct() {
+ echo "Cycle::__destruct\n";
+ throw new Exception('Cycle::__destruct');
+ }
+}
+
+$objects = [];
+for ($i = 0; $i < 20000; $i++) {
+ $objects[] = new stdClass();
+}
+
+function f() {
+ global $objects;
+ // Releasing these copies during unwinding fills the GC root buffer
+ $copies = [...$objects];
+ new Cycle();
+ throw new Exception('f');
+}
+
+function g() {
+ try {
+ f();
+ echo "Not reached\n";
+ } catch (Exception $e) {
+ echo 'Caught: ', $e->getMessage(), "\n";
+ echo 'Previous: ', $e->getPrevious()->getMessage(), "\n";
+ }
+}
+
+$fiber = new Fiber(function () {
+ try {
+ g();
+ } catch (Exception $e) {
+ echo 'Escaped: ', $e->getMessage(), "\n";
+ }
+});
+$fiber->start();
+
+?>
+--EXPECT--
+Cycle::__destruct
+Caught: Cycle::__destruct
+Previous: f
diff -Nru php8.4-8.4.26/Zend/tests/fibers/destructors_015.phpt php8.4-8.4.27/Zend/tests/fibers/destructors_015.phpt
--- php8.4-8.4.26/Zend/tests/fibers/destructors_015.phpt 1970-01-01 00:00:00.000000000 +0000
+++ php8.4-8.4.27/Zend/tests/fibers/destructors_015.phpt 2026-10-19 14:38:59.000000000 +0000
@@ -0,0 +1,60 @@
+--TEST--
+Fibers in destructors 015: Exception thrown by a destructor called by the GC from internal code
+--INI--
+zend.enable_gc=1
+--FILE--
+self = $this;
+ }
+ public function __destruct() {
+ echo "Cycle::__destruct\n";
+ throw new Exception('Cycle::__destruct');
+ }
+}
+
+$fiber = new Fiber(function () {
+ try {
+ new Cycle();
+ gc_collect_cycles();
+ echo "Not reached\n";
+ } catch (Exception $e) {
+ echo 'Caught: ', $e->getMessage(), "\n";
+ }
+});
+$fiber->start();
+
+$objects = [];
+for ($i = 0; $i < 20000; $i++) {
+ $objects[] = new stdClass();
+}
+
+function create_fiber() {
+ global $objects;
+ $copies = [...$objects];
+
+ // The fiber releases the copies after its function returned, which fills the GC root buffer
+ return new Fiber(function () use ($copies) {
+ new Cycle();
+ echo "Return\n";
+ });
+}
+
+$fiber = create_fiber();
+try {
+ $fiber->start();
+ echo "Not reached\n";
+} catch (Exception $e) {
+ echo 'Caught: ', $e->getMessage(), "\n";
+}
+
+?>
+--EXPECT--
+Cycle::__destruct
+Caught: Cycle::__destruct
+Return
+Cycle::__destruct
+Caught: Cycle::__destruct
diff -Nru php8.4-8.4.26/Zend/tests/fibers/get-return-after-bailout.phpt php8.4-8.4.27/Zend/tests/fibers/get-return-after-bailout.phpt
--- php8.4-8.4.26/Zend/tests/fibers/get-return-after-bailout.phpt 2026-09-22 15:00:02.000000000 +0000
+++ php8.4-8.4.27/Zend/tests/fibers/get-return-after-bailout.phpt 2026-10-19 14:38:59.000000000 +0000
@@ -1,12 +1,5 @@
--TEST--
Fiber::getReturn() after bailout
---SKIPIF--
-
--FILE--
start();
?>
--EXPECTF--
-Fatal error: Allowed memory size of %d bytes exhausted%s(tried to allocate %d bytes) %sget-return-after-bailout.php on line %d
+Fatal error: __debuginfo() must return an array in %s on line %d
Fatal error: Uncaught FiberError: Cannot get fiber return value: The fiber exited with a fatal error in %sget-return-after-bailout.php:%d
Stack trace:
diff -Nru php8.4-8.4.26/Zend/tests/gh11189.phpt php8.4-8.4.27/Zend/tests/gh11189.phpt
--- php8.4-8.4.26/Zend/tests/gh11189.phpt 2026-09-22 15:00:02.000000000 +0000
+++ php8.4-8.4.27/Zend/tests/gh11189.phpt 2026-10-19 14:38:59.000000000 +0000
@@ -8,7 +8,7 @@
if (getenv("USE_ZEND_ALLOC") === "0") die("skip ZMM is disabled");
?>
--INI--
-memory_limit=2M
+memory_limit=10M
--FILE--
--EXPECTF--
-Success
-Fatal error: Allowed memory size of %s bytes exhausted%s(tried to allocate %s bytes) in %s on line %d
+Fatal error: Allowed memory size of 10485760 bytes exhausted %S(tried to allocate %d bytes) in %s on line %d
diff -Nru php8.4-8.4.26/Zend/tests/gh11189_1.phpt php8.4-8.4.27/Zend/tests/gh11189_1.phpt
--- php8.4-8.4.26/Zend/tests/gh11189_1.phpt 2026-09-22 15:00:02.000000000 +0000
+++ php8.4-8.4.27/Zend/tests/gh11189_1.phpt 2026-10-19 14:38:59.000000000 +0000
@@ -28,5 +28,4 @@
?>
--EXPECTF--
-Success
-Fatal error: Allowed memory size of %s bytes exhausted%s(tried to allocate %s bytes) in %s on line %d
+Fatal error: Allowed memory size of 2097152 bytes exhausted %S(tried to allocate %d bytes) in %s on line %d
diff -Nru php8.4-8.4.26/Zend/tests/gh23896.phpt php8.4-8.4.27/Zend/tests/gh23896.phpt
--- php8.4-8.4.26/Zend/tests/gh23896.phpt 1970-01-01 00:00:00.000000000 +0000
+++ php8.4-8.4.27/Zend/tests/gh23896.phpt 2026-10-19 14:38:59.000000000 +0000
@@ -0,0 +1,33 @@
+--TEST--
+GH-23896 (Assertion failure in zend_call_function() when the error handler throws during parent:: callable resolution)
+--FILE--
+u('O:3:"FOO":0:{}');
+ } catch (Exception $e) {
+ echo $e->getMessage(), "\n";
+ var_dump($e->getPrevious());
+ }
+}
+?>
+--EXPECT--
+Use of "parent" in callables is deprecated
+NULL
+Cannot load Loader
+NULL
diff -Nru php8.4-8.4.26/Zend/tests/gh24050.phpt php8.4-8.4.27/Zend/tests/gh24050.phpt
--- php8.4-8.4.26/Zend/tests/gh24050.phpt 1970-01-01 00:00:00.000000000 +0000
+++ php8.4-8.4.27/Zend/tests/gh24050.phpt 2026-10-19 14:38:59.000000000 +0000
@@ -0,0 +1,49 @@
+--TEST--
+GH-24050 (GC frees an object still held by a resurrected closure when (object) and use share an array)
+--CREDITS--
+OllieCrook
+--FILE--
+closure;
+ }
+}
+
+class Holder
+{
+ public $castObject;
+ public $resurrector;
+ public $self;
+}
+
+$array = ['victim' => new stdClass(), 'key' => 'value'];
+
+$holder = new Holder();
+$resurrector = new Resurrector();
+$holder->castObject = (object) $array;
+$resurrector->closure = function () use ($array) {
+ return $array;
+};
+$holder->resurrector = $resurrector;
+$holder->self = $holder;
+$resurrector->self = $resurrector;
+
+unset($array);
+gc_collect_cycles();
+
+unset($holder, $resurrector);
+gc_collect_cycles();
+gc_collect_cycles();
+
+var_dump($resurrected()['victim']);
+?>
+--EXPECT--
+object(stdClass)#1 (0) {
+}
diff -Nru php8.4-8.4.26/Zend/tests/gh24050_2.phpt php8.4-8.4.27/Zend/tests/gh24050_2.phpt
--- php8.4-8.4.26/Zend/tests/gh24050_2.phpt 1970-01-01 00:00:00.000000000 +0000
+++ php8.4-8.4.27/Zend/tests/gh24050_2.phpt 2026-10-19 14:38:59.000000000 +0000
@@ -0,0 +1,49 @@
+--TEST--
+GH-24050 (GC frees an object still held by a resurrected closure when (array) and use share a properties table)
+--FILE--
+closure;
+ }
+}
+
+class Holder
+{
+ public $obj;
+ public $resurrector;
+ public $self;
+}
+
+$obj = new stdClass();
+$obj->victim = new stdClass();
+
+$holder = new Holder();
+$resurrector = new Resurrector();
+$holder->obj = $obj;
+$array = (array) $obj;
+$resurrector->closure = function () use ($array) {
+ return $array;
+};
+$holder->resurrector = $resurrector;
+$holder->self = $holder;
+$resurrector->self = $resurrector;
+
+unset($array, $obj);
+gc_collect_cycles();
+
+unset($holder, $resurrector);
+gc_collect_cycles();
+gc_collect_cycles();
+
+var_dump($resurrected()['victim']);
+?>
+--EXPECT--
+object(stdClass)#2 (0) {
+}
diff -Nru php8.4-8.4.26/Zend/tests/lazy_objects/gh21999-001.phpt php8.4-8.4.27/Zend/tests/lazy_objects/gh21999-001.phpt
--- php8.4-8.4.26/Zend/tests/lazy_objects/gh21999-001.phpt 1970-01-01 00:00:00.000000000 +0000
+++ php8.4-8.4.27/Zend/tests/lazy_objects/gh21999-001.phpt 2026-10-19 14:38:59.000000000 +0000
@@ -0,0 +1,47 @@
+--TEST--
+GH-21999: GC inconsistency with lazy object, var_dump(), and object comparison
+--CREDITS--
+kid-lxy
+--FILE--
+getProperty('a')->setRawValueWithoutLazyInitialization($obj, new stdClass);
+ var_dump(!$reflector->isUninitializedLazyObject($obj));
+ var_dump($obj); // builds obj->properties
+}
+
+$reflector = new ReflectionClass(C::class);
+$obj = $reflector->newLazyGhost(function ($obj) {
+ $obj->__construct(); // throws: initialization fails
+});
+test('Ghost', $obj);
+try {
+ // zend_std_compare() fetches obj->properties. zend_compare_symbol_tables()
+ // adds obj->properties to GC roots.
+ $obj > $reflector->newLazyProxy(function () {
+ return new C();
+ });
+} catch (\Throwable $e) {
+ echo $e::class, ": ", $e->getMessage(), "\n";
+ gc_collect_cycles();
+}
+
+?>
+--EXPECTF--
+bool(false)
+lazy ghost object(C)#%d (1) {
+ ["a"]=>
+ object(stdClass)#%d (0) {
+ }
+}
+ArgumentCountError: 2 arguments are required, 1 given
diff -Nru php8.4-8.4.26/Zend/tests/lazy_objects/gh21999-002.phpt php8.4-8.4.27/Zend/tests/lazy_objects/gh21999-002.phpt
--- php8.4-8.4.26/Zend/tests/lazy_objects/gh21999-002.phpt 1970-01-01 00:00:00.000000000 +0000
+++ php8.4-8.4.27/Zend/tests/lazy_objects/gh21999-002.phpt 2026-10-19 14:38:59.000000000 +0000
@@ -0,0 +1,36 @@
+--TEST--
+GH-21999: GC inconsistency with lazy object, var_dump(), and object comparison
+--FILE--
+getProperty('a')->setRawValueWithoutLazyInitialization($obj, new stdClass);
+ var_dump(!$reflector->isUninitializedLazyObject($obj));
+ var_dump($obj);
+}
+
+$reflector = new ReflectionClass(C::class);
+$obj = $reflector->newLazyGhost(function ($obj) {
+ $obj->__construct();
+});
+$reflector->getProperty('a')->setRawValueWithoutLazyInitialization($obj, $obj);
+
+try {
+ var_dump($obj < $reflector->newLazyGhost(function () {}));
+} catch (\Throwable $e) {
+ echo $e::class, ": ", $e->getMessage(), "\n";
+ gc_collect_cycles();
+}
+
+?>
+--EXPECT--
+ArgumentCountError: 2 arguments are required, 1 given
diff -Nru php8.4-8.4.26/Zend/tests/lazy_objects/gh23842.phpt php8.4-8.4.27/Zend/tests/lazy_objects/gh23842.phpt
--- php8.4-8.4.26/Zend/tests/lazy_objects/gh23842.phpt 1970-01-01 00:00:00.000000000 +0000
+++ php8.4-8.4.27/Zend/tests/lazy_objects/gh23842.phpt 2026-10-19 14:38:59.000000000 +0000
@@ -0,0 +1,32 @@
+--TEST--
+GH-23842: skipLazyInitialization() copies an unresolved constant default with opcache
+--CREDITS--
+DirkTrunkstar
+--EXTENSIONS--
+opcache
+--INI--
+opcache.enable=1
+opcache.enable_cli=1
+opcache.file_cache_only=0
+--FILE--
+newLazyGhost(function () {
+ throw new \Exception('initializer');
+});
+$reflector->getProperty('currency')->skipLazyInitialization($product);
+
+var_dump($product->currency);
+
+?>
+--EXPECT--
+string(3) "EUR"
diff -Nru php8.4-8.4.26/Zend/tests/lazy_objects/oss_fuzz_536440507.phpt php8.4-8.4.27/Zend/tests/lazy_objects/oss_fuzz_536440507.phpt
--- php8.4-8.4.26/Zend/tests/lazy_objects/oss_fuzz_536440507.phpt 1970-01-01 00:00:00.000000000 +0000
+++ php8.4-8.4.27/Zend/tests/lazy_objects/oss_fuzz_536440507.phpt 2026-10-19 14:38:59.000000000 +0000
@@ -0,0 +1,21 @@
+--TEST--
+OSS-Fuzz #536440507 (Immutable class incorrect assertion)
+--EXTENSIONS--
+opcache
+--INI--
+opcache.enable=1
+opcache.enable_cli=1
+--FILE--
+newLazyGhost(function ($obj) {});
+var_dump($o->b);
+
+?>
+--EXPECTF--
+Deprecated: Implicit conversion from float 3.4028236692093845E+32 to int loses precision in %s on line %d
+int(%s)
diff -Nru php8.4-8.4.26/Zend/tests/oom_SplFixedArray___unserialize.phpt php8.4-8.4.27/Zend/tests/oom_SplFixedArray___unserialize.phpt
--- php8.4-8.4.26/Zend/tests/oom_SplFixedArray___unserialize.phpt 1970-01-01 00:00:00.000000000 +0000
+++ php8.4-8.4.27/Zend/tests/oom_SplFixedArray___unserialize.phpt 2026-10-19 14:38:59.000000000 +0000
@@ -0,0 +1,20 @@
+--TEST--
+OOM SplFixedArray::__unserialize()
+--INI--
+memory_limit=10M
+--FILE--
+
+--EXPECTF--
+Fatal error: Allowed memory size of 10485760 bytes exhausted %S(tried to allocate %d bytes) in %s on line 11
diff -Nru php8.4-8.4.26/Zend/tests/oom_SplFixedArray___wakeup.phpt php8.4-8.4.27/Zend/tests/oom_SplFixedArray___wakeup.phpt
--- php8.4-8.4.26/Zend/tests/oom_SplFixedArray___wakeup.phpt 1970-01-01 00:00:00.000000000 +0000
+++ php8.4-8.4.27/Zend/tests/oom_SplFixedArray___wakeup.phpt 2026-10-19 14:38:59.000000000 +0000
@@ -0,0 +1,21 @@
+--TEST--
+OOM SplFixedArray::fromArray() 003
+--INI--
+memory_limit=16M
+--FILE--
+{$i} = 0;
+}
+
+$pad = str_repeat('a', max(16*1024*1024 - memory_get_usage(true) - 512*1024, 1));
+
+$a->__wakeup();
+
+?>
+--EXPECTF--
+Deprecated: Method SplFixedArray::__wakeup() is deprecated since 8.4, this method is obsolete, as serialization hooks are provided by __unserialize() and __serialize() in %s on line %d
+
+Fatal error: Allowed memory size of 16777216 bytes exhausted %S(tried to allocate %d bytes) in %s on line 10
diff -Nru php8.4-8.4.26/Zend/tests/oom_SplFixedArray_copy_ctor.phpt php8.4-8.4.27/Zend/tests/oom_SplFixedArray_copy_ctor.phpt
--- php8.4-8.4.26/Zend/tests/oom_SplFixedArray_copy_ctor.phpt 1970-01-01 00:00:00.000000000 +0000
+++ php8.4-8.4.27/Zend/tests/oom_SplFixedArray_copy_ctor.phpt 2026-10-19 14:38:59.000000000 +0000
@@ -0,0 +1,16 @@
+--TEST--
+OOM SplFixedArray copy ctor
+--INI--
+memory_limit=10M
+--FILE--
+
+--EXPECTF--
+Fatal error: Allowed memory size of 10485760 bytes exhausted %S(tried to allocate %d bytes) in %s on line 7
diff -Nru php8.4-8.4.26/Zend/tests/oom_SplFixedArray_fromArray_001.phpt php8.4-8.4.27/Zend/tests/oom_SplFixedArray_fromArray_001.phpt
--- php8.4-8.4.26/Zend/tests/oom_SplFixedArray_fromArray_001.phpt 1970-01-01 00:00:00.000000000 +0000
+++ php8.4-8.4.27/Zend/tests/oom_SplFixedArray_fromArray_001.phpt 2026-10-19 14:38:59.000000000 +0000
@@ -0,0 +1,12 @@
+--TEST--
+OOM SplFixedArray::fromArray()
+--INI--
+memory_limit=10M
+--FILE--
+ 0], true);
+
+?>
+--EXPECTF--
+Fatal error: Allowed memory size of 10485760 bytes exhausted %S(tried to allocate %d bytes) in %s on line 3
diff -Nru php8.4-8.4.26/Zend/tests/oom_SplFixedArray_fromArray_002.phpt php8.4-8.4.27/Zend/tests/oom_SplFixedArray_fromArray_002.phpt
--- php8.4-8.4.26/Zend/tests/oom_SplFixedArray_fromArray_002.phpt 1970-01-01 00:00:00.000000000 +0000
+++ php8.4-8.4.27/Zend/tests/oom_SplFixedArray_fromArray_002.phpt 2026-10-19 14:38:59.000000000 +0000
@@ -0,0 +1,14 @@
+--TEST--
+OOM SplFixedArray::fromArray() 002
+--INI--
+memory_limit=10M
+--FILE--
+
+--EXPECTF--
+Fatal error: Allowed memory size of 10485760 bytes exhausted %S(tried to allocate %d bytes) in %s on line 5
diff -Nru php8.4-8.4.26/Zend/tests/oom_after_main_script.phpt php8.4-8.4.27/Zend/tests/oom_after_main_script.phpt
--- php8.4-8.4.26/Zend/tests/oom_after_main_script.phpt 1970-01-01 00:00:00.000000000 +0000
+++ php8.4-8.4.27/Zend/tests/oom_after_main_script.phpt 2026-10-19 14:38:59.000000000 +0000
@@ -0,0 +1,26 @@
+--TEST--
+OOM: shutdown functions run after an OOM raised at the end of the main script
+--INI--
+memory_limit=8M
+opcache.optimization_level=0
+--FILE--
+
+--EXPECTF--
+Done
+
+Fatal error: Allowed memory size of 8388608 bytes exhausted %S(tried to allocate %d bytes) in %s on line %d
+Shutdown function called
diff -Nru php8.4-8.4.26/Zend/tests/oom_array_fill_001.phpt php8.4-8.4.27/Zend/tests/oom_array_fill_001.phpt
--- php8.4-8.4.26/Zend/tests/oom_array_fill_001.phpt 1970-01-01 00:00:00.000000000 +0000
+++ php8.4-8.4.27/Zend/tests/oom_array_fill_001.phpt 2026-10-19 14:38:59.000000000 +0000
@@ -0,0 +1,18 @@
+--TEST--
+OOM array_fill() packed
+--INI--
+memory_limit=100M
+--SKIPIF--
+
+--FILE--
+
+--EXPECTF--
+Fatal error: Allowed memory size of 104857600 bytes exhausted %S(tried to allocate %d bytes) in %s on line 3
diff -Nru php8.4-8.4.26/Zend/tests/oom_array_fill_002.phpt php8.4-8.4.27/Zend/tests/oom_array_fill_002.phpt
--- php8.4-8.4.26/Zend/tests/oom_array_fill_002.phpt 1970-01-01 00:00:00.000000000 +0000
+++ php8.4-8.4.27/Zend/tests/oom_array_fill_002.phpt 2026-10-19 14:38:59.000000000 +0000
@@ -0,0 +1,18 @@
+--TEST--
+OOM array_fill() mixed
+--INI--
+memory_limit=100M
+--SKIPIF--
+
+--FILE--
+
+--EXPECTF--
+Fatal error: Allowed memory size of 104857600 bytes exhausted %S(tried to allocate %d bytes) in %s on line 3
diff -Nru php8.4-8.4.26/Zend/tests/oom_array_fill_003.phpt php8.4-8.4.27/Zend/tests/oom_array_fill_003.phpt
--- php8.4-8.4.26/Zend/tests/oom_array_fill_003.phpt 1970-01-01 00:00:00.000000000 +0000
+++ php8.4-8.4.27/Zend/tests/oom_array_fill_003.phpt 2026-10-19 14:38:59.000000000 +0000
@@ -0,0 +1,18 @@
+--TEST--
+OOM array_fill() packed > HT_MAX_SIZE
+--INI--
+memory_limit=100M
+--SKIPIF--
+
+--FILE--
+
+--EXPECTF--
+Fatal error: Possible integer overflow in memory allocation (1073741825 * 32 + 32) in %s on line 3
diff -Nru php8.4-8.4.26/Zend/tests/oom_array_fill_004.phpt php8.4-8.4.27/Zend/tests/oom_array_fill_004.phpt
--- php8.4-8.4.26/Zend/tests/oom_array_fill_004.phpt 1970-01-01 00:00:00.000000000 +0000
+++ php8.4-8.4.27/Zend/tests/oom_array_fill_004.phpt 2026-10-19 14:38:59.000000000 +0000
@@ -0,0 +1,18 @@
+--TEST--
+OOM array_fill() mixed > HT_MAX_SIZE
+--INI--
+memory_limit=100M
+--SKIPIF--
+
+--FILE--
+
+--EXPECTF--
+Fatal error: Possible integer overflow in memory allocation (1073741825 * 32 + 32) in %s on line 3
diff -Nru php8.4-8.4.26/Zend/tests/oom_array_pad_001.phpt php8.4-8.4.27/Zend/tests/oom_array_pad_001.phpt
--- php8.4-8.4.26/Zend/tests/oom_array_pad_001.phpt 1970-01-01 00:00:00.000000000 +0000
+++ php8.4-8.4.27/Zend/tests/oom_array_pad_001.phpt 2026-10-19 14:38:59.000000000 +0000
@@ -0,0 +1,12 @@
+--TEST--
+OOM array_pad left packed
+--INI--
+memory_limit=10M
+--FILE--
+
+--EXPECTF--
+Fatal error: Allowed memory size of 10485760 bytes exhausted %S(tried to allocate %d bytes) in %s on line 3
diff -Nru php8.4-8.4.26/Zend/tests/oom_array_pad_002.phpt php8.4-8.4.27/Zend/tests/oom_array_pad_002.phpt
--- php8.4-8.4.26/Zend/tests/oom_array_pad_002.phpt 1970-01-01 00:00:00.000000000 +0000
+++ php8.4-8.4.27/Zend/tests/oom_array_pad_002.phpt 2026-10-19 14:38:59.000000000 +0000
@@ -0,0 +1,12 @@
+--TEST--
+OOM array_pad right packed
+--INI--
+memory_limit=10M
+--FILE--
+
+--EXPECTF--
+Fatal error: Allowed memory size of 10485760 bytes exhausted %S(tried to allocate %d bytes) in %s on line 3
diff -Nru php8.4-8.4.26/Zend/tests/oom_array_pad_003.phpt php8.4-8.4.27/Zend/tests/oom_array_pad_003.phpt
--- php8.4-8.4.26/Zend/tests/oom_array_pad_003.phpt 1970-01-01 00:00:00.000000000 +0000
+++ php8.4-8.4.27/Zend/tests/oom_array_pad_003.phpt 2026-10-19 14:38:59.000000000 +0000
@@ -0,0 +1,12 @@
+--TEST--
+OOM array_pad left mixed
+--INI--
+memory_limit=10M
+--FILE--
+ 'bar'], -1*1024*1024, (string)time()));
+
+?>
+--EXPECTF--
+Fatal error: Allowed memory size of 10485760 bytes exhausted %S(tried to allocate %d bytes) in %s on line 3
diff -Nru php8.4-8.4.26/Zend/tests/oom_array_pad_004.phpt php8.4-8.4.27/Zend/tests/oom_array_pad_004.phpt
--- php8.4-8.4.26/Zend/tests/oom_array_pad_004.phpt 1970-01-01 00:00:00.000000000 +0000
+++ php8.4-8.4.27/Zend/tests/oom_array_pad_004.phpt 2026-10-19 14:38:59.000000000 +0000
@@ -0,0 +1,12 @@
+--TEST--
+OOM array_pad right mixed
+--INI--
+memory_limit=10M
+--FILE--
+ 'bar'], 1024*1024, (string)time()));
+
+?>
+--EXPECTF--
+Fatal error: Allowed memory size of 10485760 bytes exhausted %S(tried to allocate %d bytes) in %s on line 3
diff -Nru php8.4-8.4.26/Zend/tests/oom_array_pad_005.phpt php8.4-8.4.27/Zend/tests/oom_array_pad_005.phpt
--- php8.4-8.4.26/Zend/tests/oom_array_pad_005.phpt 1970-01-01 00:00:00.000000000 +0000
+++ php8.4-8.4.27/Zend/tests/oom_array_pad_005.phpt 2026-10-19 14:38:59.000000000 +0000
@@ -0,0 +1,12 @@
+--TEST--
+OOM array_pad left packed, non-refcounted pad value
+--INI--
+memory_limit=10M
+--FILE--
+
+--EXPECTF--
+Fatal error: Allowed memory size of 10485760 bytes exhausted %S(tried to allocate %d bytes) in %s on line 3
diff -Nru php8.4-8.4.26/Zend/tests/oom_array_pad_006.phpt php8.4-8.4.27/Zend/tests/oom_array_pad_006.phpt
--- php8.4-8.4.26/Zend/tests/oom_array_pad_006.phpt 1970-01-01 00:00:00.000000000 +0000
+++ php8.4-8.4.27/Zend/tests/oom_array_pad_006.phpt 2026-10-19 14:38:59.000000000 +0000
@@ -0,0 +1,12 @@
+--TEST--
+OOM array_pad right packed, non-refcounted pad value
+--INI--
+memory_limit=10M
+--FILE--
+
+--EXPECTF--
+Fatal error: Allowed memory size of 10485760 bytes exhausted %S(tried to allocate %d bytes) in %s on line 3
diff -Nru php8.4-8.4.26/Zend/tests/oom_array_pad_007.phpt php8.4-8.4.27/Zend/tests/oom_array_pad_007.phpt
--- php8.4-8.4.26/Zend/tests/oom_array_pad_007.phpt 1970-01-01 00:00:00.000000000 +0000
+++ php8.4-8.4.27/Zend/tests/oom_array_pad_007.phpt 2026-10-19 14:38:59.000000000 +0000
@@ -0,0 +1,12 @@
+--TEST--
+OOM array_pad left mixed, non-refcounted pad value
+--INI--
+memory_limit=10M
+--FILE--
+ 'bar'], -1*1024*1024, 0x4141414141));
+
+?>
+--EXPECTF--
+Fatal error: Allowed memory size of 10485760 bytes exhausted %S(tried to allocate %d bytes) in %s on line 3
diff -Nru php8.4-8.4.26/Zend/tests/oom_array_pad_008.phpt php8.4-8.4.27/Zend/tests/oom_array_pad_008.phpt
--- php8.4-8.4.26/Zend/tests/oom_array_pad_008.phpt 1970-01-01 00:00:00.000000000 +0000
+++ php8.4-8.4.27/Zend/tests/oom_array_pad_008.phpt 2026-10-19 14:38:59.000000000 +0000
@@ -0,0 +1,12 @@
+--TEST--
+OOM array_pad right mixed, non-refcounted pad value
+--INI--
+memory_limit=10M
+--FILE--
+ 'bar'], 1024*1024, 0x4141414141));
+
+?>
+--EXPECTF--
+Fatal error: Allowed memory size of 10485760 bytes exhausted %S(tried to allocate %d bytes) in %s on line 3
diff -Nru php8.4-8.4.26/Zend/tests/oom_call_function.phpt php8.4-8.4.27/Zend/tests/oom_call_function.phpt
--- php8.4-8.4.26/Zend/tests/oom_call_function.phpt 1970-01-01 00:00:00.000000000 +0000
+++ php8.4-8.4.27/Zend/tests/oom_call_function.phpt 2026-10-19 14:38:59.000000000 +0000
@@ -0,0 +1,18 @@
+--TEST--
+OOM OOM in zend_call_function()
+--INI--
+memory_limit=10M
+--ENV--
+call_user_func=call_user_func
+--FILE--
+
+--EXPECTF--
+Fatal error: Allowed memory size of 10485760 bytes exhausted %S(tried to allocate %d bytes) in %s on line 6
diff -Nru php8.4-8.4.26/Zend/tests/oom_call_function_002.phpt php8.4-8.4.27/Zend/tests/oom_call_function_002.phpt
--- php8.4-8.4.26/Zend/tests/oom_call_function_002.phpt 1970-01-01 00:00:00.000000000 +0000
+++ php8.4-8.4.27/Zend/tests/oom_call_function_002.phpt 2026-10-19 14:38:59.000000000 +0000
@@ -0,0 +1,27 @@
+--TEST--
+OOM zend_call_function() after OOM: destructor called by an internal function
+--INI--
+memory_limit=8M
+--FILE--
+
+--EXPECTF--
+Fatal error: Allowed memory size of %d bytes exhausted %S(tried to allocate %d bytes) in %s on line %d
diff -Nru php8.4-8.4.26/Zend/tests/oom_call_function_003.phpt php8.4-8.4.27/Zend/tests/oom_call_function_003.phpt
--- php8.4-8.4.26/Zend/tests/oom_call_function_003.phpt 1970-01-01 00:00:00.000000000 +0000
+++ php8.4-8.4.27/Zend/tests/oom_call_function_003.phpt 2026-10-19 14:38:59.000000000 +0000
@@ -0,0 +1,39 @@
+--TEST--
+OOM zend_call_function() after OOM: delayed __unserialize() call
+--INI--
+memory_limit=8M
+--FILE--
+
+--EXPECTF--
+Fatal error: Allowed memory size of %d bytes exhausted %S(tried to allocate %d bytes) in %s on line %d
+array(1) {
+ [0]=>
+ *RECURSION*
+}
diff -Nru php8.4-8.4.26/Zend/tests/oom_debug_backtrace.phpt php8.4-8.4.27/Zend/tests/oom_debug_backtrace.phpt
--- php8.4-8.4.26/Zend/tests/oom_debug_backtrace.phpt 1970-01-01 00:00:00.000000000 +0000
+++ php8.4-8.4.27/Zend/tests/oom_debug_backtrace.phpt 2026-10-19 14:38:59.000000000 +0000
@@ -0,0 +1,21 @@
+--TEST--
+OOM: debug_backtrace() doesn't reach hard limit
+--INI--
+memory_limit=8M
+--FILE--
+ 0) {
+ f($n - 1);
+ return;
+ }
+ debug_backtrace();
+}
+
+f(30000);
+
+echo "not reached\n";
+?>
+--EXPECTF--
+Fatal error: Allowed memory size of 8388608 bytes exhausted %S(tried to allocate %d bytes) in %s on line %d
diff -Nru php8.4-8.4.26/Zend/tests/oom_debug_backtrace_args.phpt php8.4-8.4.27/Zend/tests/oom_debug_backtrace_args.phpt
--- php8.4-8.4.26/Zend/tests/oom_debug_backtrace_args.phpt 1970-01-01 00:00:00.000000000 +0000
+++ php8.4-8.4.27/Zend/tests/oom_debug_backtrace_args.phpt 2026-10-19 14:38:59.000000000 +0000
@@ -0,0 +1,22 @@
+--TEST--
+OOM: debug_backtrace() doesn't reach hard limit - args
+--INI--
+memory_limit=8M
+--FILE--
+ 0) {
+ f($n - 1, ...$GLOBALS['args']);
+ return;
+ }
+ debug_backtrace();
+}
+
+$args = array_fill(0, 512, 1);
+f(680, ...$args);
+
+echo "not reached\n";
+?>
+--EXPECTF--
+Fatal error: Allowed memory size of 8388608 bytes exhausted %S(tried to allocate %d bytes) in %s on line %d
diff -Nru php8.4-8.4.26/Zend/tests/oom_debug_backtrace_named_args.phpt php8.4-8.4.27/Zend/tests/oom_debug_backtrace_named_args.phpt
--- php8.4-8.4.26/Zend/tests/oom_debug_backtrace_named_args.phpt 1970-01-01 00:00:00.000000000 +0000
+++ php8.4-8.4.27/Zend/tests/oom_debug_backtrace_named_args.phpt 2026-10-19 14:38:59.000000000 +0000
@@ -0,0 +1,29 @@
+--TEST--
+OOM: debug_backtrace() doesn't reach hard limit - named args
+--INI--
+memory_limit=8M
+--FILE--
+ 0) {
+ f($n - 1, ...$GLOBALS['named']);
+ return;
+ }
+ debug_backtrace();
+}
+
+$named = [];
+for ($i = 0; $i < 512; $i++) {
+ $named["a$i"] = 1;
+}
+$GLOBALS['named'] = $named;
+
+f(450, ...$named);
+
+echo "not reached\n";
+?>
+--EXPECTF--
+Fatal error: Allowed memory size of 8388608 bytes exhausted %S(tried to allocate %d bytes) in %s on line %d
diff -Nru php8.4-8.4.26/Zend/tests/oom_error_get_last.phpt php8.4-8.4.27/Zend/tests/oom_error_get_last.phpt
--- php8.4-8.4.26/Zend/tests/oom_error_get_last.phpt 1970-01-01 00:00:00.000000000 +0000
+++ php8.4-8.4.27/Zend/tests/oom_error_get_last.phpt 2026-10-19 14:38:59.000000000 +0000
@@ -0,0 +1,27 @@
+--TEST--
+OOM: the message returned by error_get_last() can outlive the error state
+--INI--
+memory_limit=8M
+opcache.optimization_level=0
+--FILE--
+
+--EXPECTF--
+Fatal error: Allowed memory size of 8388608 bytes exhausted %S(tried to allocate %d bytes) in %s on line %d
+Allowed memory size of 8388608 bytes exhausted %S(tried to allocate %d bytes)
diff -Nru php8.4-8.4.26/Zend/tests/oom_exception_trace.phpt php8.4-8.4.27/Zend/tests/oom_exception_trace.phpt
--- php8.4-8.4.26/Zend/tests/oom_exception_trace.phpt 1970-01-01 00:00:00.000000000 +0000
+++ php8.4-8.4.27/Zend/tests/oom_exception_trace.phpt 2026-10-19 14:38:59.000000000 +0000
@@ -0,0 +1,25 @@
+--TEST--
+OOM: Exception constructor doesn't reach hard limit while fetching backtrace
+--INI--
+memory_limit=8M
+zend.exception_ignore_args=0
+--FILE--
+ 0) {
+ f($n - 1);
+ return;
+ }
+ throw new Exception();
+}
+
+try {
+ f(30000);
+} catch (Exception $e) {
+}
+
+echo "not reached\n";
+?>
+--EXPECTF--
+Fatal error: Allowed memory size of 8388608 bytes exhausted %S(tried to allocate %d bytes) in %s on line %d
diff -Nru php8.4-8.4.26/Zend/tests/oom_hard_limit_exceeded.phpt php8.4-8.4.27/Zend/tests/oom_hard_limit_exceeded.phpt
--- php8.4-8.4.26/Zend/tests/oom_hard_limit_exceeded.phpt 1970-01-01 00:00:00.000000000 +0000
+++ php8.4-8.4.27/Zend/tests/oom_hard_limit_exceeded.phpt 2026-10-19 14:38:59.000000000 +0000
@@ -0,0 +1,26 @@
+--TEST--
+OOM: Hard limit exceeded
+--EXTENSIONS--
+zend_test
+--INI--
+memory_limit=10M
+--FILE--
+
+--EXPECTF--
+Hard memory limit of 20971520 bytes exhausted %S(tried to allocate %d bytes) in %s on line 5
+
+Termsig=9
diff -Nru php8.4-8.4.26/Zend/tests/oom_hard_limit_exceeded_during_complilation.phpt php8.4-8.4.27/Zend/tests/oom_hard_limit_exceeded_during_complilation.phpt
--- php8.4-8.4.26/Zend/tests/oom_hard_limit_exceeded_during_complilation.phpt 1970-01-01 00:00:00.000000000 +0000
+++ php8.4-8.4.27/Zend/tests/oom_hard_limit_exceeded_during_complilation.phpt 2026-10-19 14:38:59.000000000 +0000
@@ -0,0 +1,42 @@
+--TEST--
+OOM: Hard limit exceeded during compilation
+--INI--
+memory_limit=10M
+--FILE--
+
+--CLEAN--
+
+--EXPECTF--
+Hard memory limit of 20971520 bytes %s (tried to allocate %d bytes) in %s on line %d
+
+Termsig=9
diff -Nru php8.4-8.4.26/Zend/tests/oom_interrupt.phpt php8.4-8.4.27/Zend/tests/oom_interrupt.phpt
--- php8.4-8.4.26/Zend/tests/oom_interrupt.phpt 1970-01-01 00:00:00.000000000 +0000
+++ php8.4-8.4.27/Zend/tests/oom_interrupt.phpt 2026-10-19 14:38:59.000000000 +0000
@@ -0,0 +1,38 @@
+--TEST--
+OOM: zend_interrupt_function
+--EXTENSIONS--
+pcntl
+posix
+--FILE--
+= 10) {
+ exit;
+ }
+});
+
+$a = [];
+for ($i = 0; ; $i++) {
+ $a[0] = $i;
+ posix_kill(posix_getpid(), SIGTERM);
+}
+
+?>
+--EXPECT--
+Handled SIGTERM
+Handled SIGTERM
+Handled SIGTERM
+Handled SIGTERM
+Handled SIGTERM
+Handled SIGTERM
+Handled SIGTERM
+Handled SIGTERM
+Handled SIGTERM
+Handled SIGTERM
diff -Nru php8.4-8.4.26/Zend/tests/oom_interrupt_unfinished_call_frame.phpt php8.4-8.4.27/Zend/tests/oom_interrupt_unfinished_call_frame.phpt
--- php8.4-8.4.26/Zend/tests/oom_interrupt_unfinished_call_frame.phpt 1970-01-01 00:00:00.000000000 +0000
+++ php8.4-8.4.27/Zend/tests/oom_interrupt_unfinished_call_frame.phpt 2026-10-19 14:38:59.000000000 +0000
@@ -0,0 +1,21 @@
+--TEST--
+Delayed OOM while a call frame is only partially built
+--DESCRIPTION--
+A delayed OOM throws from the VM interrupt handler, which runs between two
+oplines. Argument unpacking grows test()'s frame past a VM stack page, so it is
+ZEND_CALL_ALLOCATED and owns the page; the interrupt is then delivered after the
+explode() call, while that frame is still pending.
+--FILE--
+
+===DONE===
+--EXPECT--
+===DONE===
diff -Nru php8.4-8.4.26/Zend/tests/oom_interrupt_unfinished_call_frame_fiber.phpt php8.4-8.4.27/Zend/tests/oom_interrupt_unfinished_call_frame_fiber.phpt
--- php8.4-8.4.26/Zend/tests/oom_interrupt_unfinished_call_frame_fiber.phpt 1970-01-01 00:00:00.000000000 +0000
+++ php8.4-8.4.27/Zend/tests/oom_interrupt_unfinished_call_frame_fiber.phpt 2026-10-19 14:38:59.000000000 +0000
@@ -0,0 +1,18 @@
+--TEST--
+Delayed OOM while a call frame is only partially built (fiber VM stack)
+--FILE--
+start();
+
+?>
+===DONE===
+--EXPECT--
+===DONE===
diff -Nru php8.4-8.4.26/Zend/tests/oom_json_decode_001.phpt php8.4-8.4.27/Zend/tests/oom_json_decode_001.phpt
--- php8.4-8.4.26/Zend/tests/oom_json_decode_001.phpt 1970-01-01 00:00:00.000000000 +0000
+++ php8.4-8.4.27/Zend/tests/oom_json_decode_001.phpt 2026-10-19 14:38:59.000000000 +0000
@@ -0,0 +1,14 @@
+--TEST--
+OOM json_decode() array
+--INI--
+memory_limit=10M
+--FILE--
+
+--EXPECTF--
+Fatal error: Allowed memory size of 10485760 bytes exhausted %S(tried to allocate %d bytes) in %s on line 5
diff -Nru php8.4-8.4.26/Zend/tests/oom_json_decode_002.phpt php8.4-8.4.27/Zend/tests/oom_json_decode_002.phpt
--- php8.4-8.4.26/Zend/tests/oom_json_decode_002.phpt 1970-01-01 00:00:00.000000000 +0000
+++ php8.4-8.4.27/Zend/tests/oom_json_decode_002.phpt 2026-10-19 14:38:59.000000000 +0000
@@ -0,0 +1,15 @@
+--TEST--
+OOM json_decode() nested arrays
+--INI--
+memory_limit=10M
+--FILE--
+
+--EXPECTF--
+Fatal error: Allowed memory size of 10485760 bytes exhausted %S(tried to allocate %d bytes) in %s on line 6
diff -Nru php8.4-8.4.26/Zend/tests/oom_json_decode_003.phpt php8.4-8.4.27/Zend/tests/oom_json_decode_003.phpt
--- php8.4-8.4.26/Zend/tests/oom_json_decode_003.phpt 1970-01-01 00:00:00.000000000 +0000
+++ php8.4-8.4.27/Zend/tests/oom_json_decode_003.phpt 2026-10-19 14:38:59.000000000 +0000
@@ -0,0 +1,22 @@
+--TEST--
+OOM json_decode() object
+--INI--
+memory_limit=10M
+--FILE--
+
+--EXPECTF--
+Fatal error: Allowed memory size of 10485760 bytes exhausted %S(tried to allocate %d bytes) in %s on line 13
diff -Nru php8.4-8.4.26/Zend/tests/oom_json_decode_004.phpt php8.4-8.4.27/Zend/tests/oom_json_decode_004.phpt
--- php8.4-8.4.26/Zend/tests/oom_json_decode_004.phpt 1970-01-01 00:00:00.000000000 +0000
+++ php8.4-8.4.27/Zend/tests/oom_json_decode_004.phpt 2026-10-19 14:38:59.000000000 +0000
@@ -0,0 +1,19 @@
+--TEST--
+OOM json_decode() nested objects
+--INI--
+memory_limit=10M
+--FILE--
+
+--EXPECTF--
+Fatal error: Allowed memory size of 10485760 bytes exhausted %S(tried to allocate %d bytes) in %s on line 10
diff -Nru php8.4-8.4.26/Zend/tests/oom_json_decode_005.phpt php8.4-8.4.27/Zend/tests/oom_json_decode_005.phpt
--- php8.4-8.4.26/Zend/tests/oom_json_decode_005.phpt 1970-01-01 00:00:00.000000000 +0000
+++ php8.4-8.4.27/Zend/tests/oom_json_decode_005.phpt 2026-10-19 14:38:59.000000000 +0000
@@ -0,0 +1,22 @@
+--TEST--
+OOM json_decode() object as arrays
+--INI--
+memory_limit=10M
+--FILE--
+
+--EXPECTF--
+Fatal error: Allowed memory size of 10485760 bytes exhausted %S(tried to allocate %d bytes) in %s on line 13
diff -Nru php8.4-8.4.26/Zend/tests/oom_json_decode_006.phpt php8.4-8.4.27/Zend/tests/oom_json_decode_006.phpt
--- php8.4-8.4.26/Zend/tests/oom_json_decode_006.phpt 1970-01-01 00:00:00.000000000 +0000
+++ php8.4-8.4.27/Zend/tests/oom_json_decode_006.phpt 2026-10-19 14:38:59.000000000 +0000
@@ -0,0 +1,19 @@
+--TEST--
+OOM json_decode() nested objects as arrays
+--INI--
+memory_limit=10M
+--FILE--
+
+--EXPECTF--
+Fatal error: Allowed memory size of 10485760 bytes exhausted %S(tried to allocate %d bytes) in %s on line 10
diff -Nru php8.4-8.4.26/Zend/tests/oom_json_decode_007.phpt php8.4-8.4.27/Zend/tests/oom_json_decode_007.phpt
--- php8.4-8.4.26/Zend/tests/oom_json_decode_007.phpt 1970-01-01 00:00:00.000000000 +0000
+++ php8.4-8.4.27/Zend/tests/oom_json_decode_007.phpt 2026-10-19 14:38:59.000000000 +0000
@@ -0,0 +1,14 @@
+--TEST--
+OOM json_decode() empty objects
+--INI--
+memory_limit=10M
+--FILE--
+
+--EXPECTF--
+Fatal error: Allowed memory size of 10485760 bytes exhausted %S(tried to allocate %d bytes) in %s on line 5
diff -Nru php8.4-8.4.26/Zend/tests/oom_pending_at_shutdown.phpt php8.4-8.4.27/Zend/tests/oom_pending_at_shutdown.phpt
--- php8.4-8.4.26/Zend/tests/oom_pending_at_shutdown.phpt 1970-01-01 00:00:00.000000000 +0000
+++ php8.4-8.4.27/Zend/tests/oom_pending_at_shutdown.phpt 2026-10-19 14:38:59.000000000 +0000
@@ -0,0 +1,16 @@
+--TEST--
+An OOM left pending by a shutdown function is reported
+--INI--
+memory_limit=16M
+--FILE--
+
+--EXPECTF--
+Shutdown function called
+
+Fatal error: Allowed memory size of 16777216 bytes exhausted %S(tried to allocate %d bytes) in %s on line %d
diff -Nru php8.4-8.4.26/Zend/tests/oom_range_001.phpt php8.4-8.4.27/Zend/tests/oom_range_001.phpt
--- php8.4-8.4.26/Zend/tests/oom_range_001.phpt 1970-01-01 00:00:00.000000000 +0000
+++ php8.4-8.4.27/Zend/tests/oom_range_001.phpt 2026-10-19 14:38:59.000000000 +0000
@@ -0,0 +1,18 @@
+--TEST--
+OOM range() decreasing float
+--INI--
+memory_limit=100M
+--SKIPIF--
+
+--FILE--
+
+--EXPECTF--
+Fatal error: Allowed memory size of 104857600 bytes exhausted %S(tried to allocate %d bytes) in %s on line 3
diff -Nru php8.4-8.4.26/Zend/tests/oom_range_002.phpt php8.4-8.4.27/Zend/tests/oom_range_002.phpt
--- php8.4-8.4.26/Zend/tests/oom_range_002.phpt 1970-01-01 00:00:00.000000000 +0000
+++ php8.4-8.4.27/Zend/tests/oom_range_002.phpt 2026-10-19 14:38:59.000000000 +0000
@@ -0,0 +1,18 @@
+--TEST--
+OOM range() increasing float
+--INI--
+memory_limit=100M
+--SKIPIF--
+
+--FILE--
+
+--EXPECTF--
+Fatal error: Allowed memory size of 104857600 bytes exhausted %S(tried to allocate %d bytes) in %s on line 3
diff -Nru php8.4-8.4.26/Zend/tests/oom_range_003.phpt php8.4-8.4.27/Zend/tests/oom_range_003.phpt
--- php8.4-8.4.26/Zend/tests/oom_range_003.phpt 1970-01-01 00:00:00.000000000 +0000
+++ php8.4-8.4.27/Zend/tests/oom_range_003.phpt 2026-10-19 14:38:59.000000000 +0000
@@ -0,0 +1,18 @@
+--TEST--
+OOM range() decreasing int
+--INI--
+memory_limit=100M
+--SKIPIF--
+
+--FILE--
+
+--EXPECTF--
+Fatal error: Allowed memory size of 104857600 bytes exhausted %S(tried to allocate %d bytes) in %s on line 3
diff -Nru php8.4-8.4.26/Zend/tests/oom_range_004.phpt php8.4-8.4.27/Zend/tests/oom_range_004.phpt
--- php8.4-8.4.26/Zend/tests/oom_range_004.phpt 1970-01-01 00:00:00.000000000 +0000
+++ php8.4-8.4.27/Zend/tests/oom_range_004.phpt 2026-10-19 14:38:59.000000000 +0000
@@ -0,0 +1,18 @@
+--TEST--
+OOM range() increasing int
+--INI--
+memory_limit=100M
+--SKIPIF--
+
+--FILE--
+
+--EXPECTF--
+Fatal error: Allowed memory size of 104857600 bytes exhausted %S(tried to allocate %d bytes) in %s on line 3
diff -Nru php8.4-8.4.26/Zend/tests/oom_request_parsing.phpt php8.4-8.4.27/Zend/tests/oom_request_parsing.phpt
--- php8.4-8.4.26/Zend/tests/oom_request_parsing.phpt 1970-01-01 00:00:00.000000000 +0000
+++ php8.4-8.4.27/Zend/tests/oom_request_parsing.phpt 2026-10-19 14:38:59.000000000 +0000
@@ -0,0 +1,130 @@
+--TEST--
+Request parsing doesn't reach hard limit
+--SKIPIF--
+
+--FILE--
+ 'POST',
+ 'CONTENT_TYPE' => 'application/x-www-form-urlencoded',
+ 'CONTENT_LENGTH' => (string) strlen($body),
+ 'SCRIPT_FILENAME' => $script,
+ 'REDIRECT_STATUS' => '1',
+ ]
+ );
+ proc_close($p);
+ unlink($bodyFile);
+}
+
+/* Deeply nested variable names, at the default max_input_vars and
+ * max_input_nesting_level. */
+oom_post(
+ implode('&', array_fill(0, 1000, 'a[]' . str_repeat('[b]', 63) . '=c')),
+ $tiny,
+ ['memory_limit=8M', 'html_errors=0']
+);
+
+$ini = ['memory_limit=8M', 'post_max_size=1G', 'max_input_vars=10000000', 'html_errors=0'];
+
+/* One value with no '&' in it: nothing consumes it, so add_post_vars() never
+ * gets a complete variable to check and only the read loop can notice. */
+$oneValue = 'a=' . str_repeat('x', 6 * 1024 * 1024);
+
+/* Many small variables: the limit is reached while registering them. */
+$manyVars = '';
+for ($i = 0; $i < 200000; $i++) {
+ $manyVars .= ($i ? '&' : '') . "k$i=v$i";
+}
+
+/* A big value followed by many small ones: add_post_var() copies the value
+ * once with estrndup() and again when registering it, and each half fits even
+ * though the pair doesn't. */
+$mixed = 'a=' . str_repeat('x', 3 * 1024 * 1024);
+for ($i = 0; $i < 100000; $i++) {
+ $mixed .= "&k$i=v$i";
+}
+
+foreach ([$oneValue, $manyVars, $mixed] as $body) {
+ foreach ([$tiny, $big] as $script) {
+ oom_post($body, $script, $ini);
+ }
+}
+?>
+--CLEAN--
+
+--EXPECTF--
+X-Powered-By: PHP/%s
+Content-type: text/html; charset=UTF-8
+
+
+Fatal error: Allowed memory size of 8388608 bytes exhausted %S(tried to allocate %d bytes) in %s on line %d
+X-Powered-By: PHP/%s
+Content-type: text/html; charset=UTF-8
+
+
+Fatal error: Allowed memory size of 8388608 bytes exhausted %S(tried to allocate %d bytes) in %s on line %d
+X-Powered-By: PHP/%s
+Content-type: text/html; charset=UTF-8
+
+
+Fatal error: Allowed memory size of 8388608 bytes exhausted %S(tried to allocate %d bytes) in %s on line %d
+X-Powered-By: PHP/%s
+Content-type: text/html; charset=UTF-8
+
+
+Fatal error: Allowed memory size of 8388608 bytes exhausted %S(tried to allocate %d bytes) in %s on line %d
+X-Powered-By: PHP/%s
+Content-type: text/html; charset=UTF-8
+
+
+Fatal error: Allowed memory size of 8388608 bytes exhausted %S(tried to allocate %d bytes) in %s on line %d
+X-Powered-By: PHP/%s
+Content-type: text/html; charset=UTF-8
+
+
+Fatal error: Allowed memory size of 8388608 bytes exhausted %S(tried to allocate %d bytes) in %s on line %d
+X-Powered-By: PHP/%s
+Content-type: text/html; charset=UTF-8
+
+
+Fatal error: Allowed memory size of 8388608 bytes exhausted %S(tried to allocate %d bytes) in %s on line %d
diff -Nru php8.4-8.4.26/Zend/tests/oom_soft_limit_exceeded.phpt php8.4-8.4.27/Zend/tests/oom_soft_limit_exceeded.phpt
--- php8.4-8.4.26/Zend/tests/oom_soft_limit_exceeded.phpt 1970-01-01 00:00:00.000000000 +0000
+++ php8.4-8.4.27/Zend/tests/oom_soft_limit_exceeded.phpt 2026-10-19 14:38:59.000000000 +0000
@@ -0,0 +1,19 @@
+--TEST--
+OOM: Soft limit exceeded
+--INI--
+memory_limit=10M
+--FILE--
+
+--EXPECTF--
+Fatal error: Allowed memory size of 10485760 bytes %s (tried to allocate %d bytes) in %s on line %d
diff -Nru php8.4-8.4.26/Zend/tests/oom_soft_limit_exceeded_fcall.phpt php8.4-8.4.27/Zend/tests/oom_soft_limit_exceeded_fcall.phpt
--- php8.4-8.4.26/Zend/tests/oom_soft_limit_exceeded_fcall.phpt 1970-01-01 00:00:00.000000000 +0000
+++ php8.4-8.4.27/Zend/tests/oom_soft_limit_exceeded_fcall.phpt 2026-10-19 14:38:59.000000000 +0000
@@ -0,0 +1,19 @@
+--TEST--
+OOM: Soft limit exceeded in FCALL
+--INI--
+memory_limit=10M
+--FILE--
+
+--EXPECTF--
+Fatal error: Allowed memory size of 10485760 bytes %s (tried to allocate %d bytes) in %s on line %d
diff -Nru php8.4-8.4.26/Zend/tests/oom_soft_limit_in_callback.phpt php8.4-8.4.27/Zend/tests/oom_soft_limit_in_callback.phpt
--- php8.4-8.4.26/Zend/tests/oom_soft_limit_in_callback.phpt 1970-01-01 00:00:00.000000000 +0000
+++ php8.4-8.4.27/Zend/tests/oom_soft_limit_in_callback.phpt 2026-10-19 14:38:59.000000000 +0000
@@ -0,0 +1,27 @@
+--TEST--
+OOM: Soft limit exceeded in library callback
+--EXTENSIONS--
+zend_test
+--INI--
+memory_limit=10M
+--FILE--
+
+--EXPECTF--
+Fatal error: Allowed memory size of 10485760 bytes exhausted %S(tried to allocate %d bytes) in %s on line 4
+Executed
diff -Nru php8.4-8.4.26/Zend/tests/oom_str_repeat.phpt php8.4-8.4.27/Zend/tests/oom_str_repeat.phpt
--- php8.4-8.4.26/Zend/tests/oom_str_repeat.phpt 1970-01-01 00:00:00.000000000 +0000
+++ php8.4-8.4.27/Zend/tests/oom_str_repeat.phpt 2026-10-19 14:38:59.000000000 +0000
@@ -0,0 +1,12 @@
+--TEST--
+OOM str_repeat()
+--INI--
+memory_limit=100M
+--FILE--
+
+--EXPECTF--
+Fatal error: Allowed memory size of 104857600 bytes exhausted %S(tried to allocate %d bytes) in %s on line 3
diff -Nru php8.4-8.4.26/Zend/tests/oom_unserialize_001.phpt php8.4-8.4.27/Zend/tests/oom_unserialize_001.phpt
--- php8.4-8.4.26/Zend/tests/oom_unserialize_001.phpt 1970-01-01 00:00:00.000000000 +0000
+++ php8.4-8.4.27/Zend/tests/oom_unserialize_001.phpt 2026-10-19 14:38:59.000000000 +0000
@@ -0,0 +1,21 @@
+--TEST--
+OOM unserialize() array
+--INI--
+memory_limit=200M
+--FILE--
+
+--EXPECTF--
+Fatal error: Allowed memory size of 104857600 bytes exhausted %S(tried to allocate %d bytes) in %s on line 12
diff -Nru php8.4-8.4.26/Zend/tests/oom_unserialize_002.phpt php8.4-8.4.27/Zend/tests/oom_unserialize_002.phpt
--- php8.4-8.4.26/Zend/tests/oom_unserialize_002.phpt 1970-01-01 00:00:00.000000000 +0000
+++ php8.4-8.4.27/Zend/tests/oom_unserialize_002.phpt 2026-10-19 14:38:59.000000000 +0000
@@ -0,0 +1,22 @@
+--TEST--
+OOM unserialize() array of strings
+--INI--
+memory_limit=200M
+--FILE--
+
+--EXPECTF--
+Fatal error: Allowed memory size of 104857600 bytes exhausted %S(tried to allocate %d bytes) in %s on line 13
diff -Nru php8.4-8.4.26/Zend/tests/oom_unserialize_003.phpt php8.4-8.4.27/Zend/tests/oom_unserialize_003.phpt
--- php8.4-8.4.26/Zend/tests/oom_unserialize_003.phpt 1970-01-01 00:00:00.000000000 +0000
+++ php8.4-8.4.27/Zend/tests/oom_unserialize_003.phpt 2026-10-19 14:38:59.000000000 +0000
@@ -0,0 +1,22 @@
+--TEST--
+OOM unserialize() array of string=>int
+--INI--
+memory_limit=200M
+--FILE--
+
+--EXPECTF--
+Fatal error: Allowed memory size of 104857600 bytes exhausted %S(tried to allocate %d bytes) in %s on line 13
diff -Nru php8.4-8.4.26/Zend/tests/oom_unserialize_004.phpt php8.4-8.4.27/Zend/tests/oom_unserialize_004.phpt
--- php8.4-8.4.26/Zend/tests/oom_unserialize_004.phpt 1970-01-01 00:00:00.000000000 +0000
+++ php8.4-8.4.27/Zend/tests/oom_unserialize_004.phpt 2026-10-19 14:38:59.000000000 +0000
@@ -0,0 +1,23 @@
+--TEST--
+OOM unserialize() array of old strings
+--INI--
+memory_limit=200M
+error_reporting=E_ALL&~E_DEPRECATED
+--FILE--
+
+--EXPECTF--
+Fatal error: Allowed memory size of 104857600 bytes exhausted %S(tried to allocate %d bytes) in %s on line 13
diff -Nru php8.4-8.4.26/Zend/tests/oom_unserialize_005.phpt php8.4-8.4.27/Zend/tests/oom_unserialize_005.phpt
--- php8.4-8.4.26/Zend/tests/oom_unserialize_005.phpt 1970-01-01 00:00:00.000000000 +0000
+++ php8.4-8.4.27/Zend/tests/oom_unserialize_005.phpt 2026-10-19 14:38:59.000000000 +0000
@@ -0,0 +1,23 @@
+--TEST--
+OOM unserialize() object
+--INI--
+memory_limit=200M
+error_reporting=E_ALL&~E_DEPRECATED
+--FILE--
+
+--EXPECTF--
+Fatal error: Allowed memory size of 104857600 bytes exhausted %S(tried to allocate %d bytes) in %s on line 13
diff -Nru php8.4-8.4.26/Zend/tests/oom_unserialize_006.phpt php8.4-8.4.27/Zend/tests/oom_unserialize_006.phpt
--- php8.4-8.4.26/Zend/tests/oom_unserialize_006.phpt 1970-01-01 00:00:00.000000000 +0000
+++ php8.4-8.4.27/Zend/tests/oom_unserialize_006.phpt 2026-10-19 14:38:59.000000000 +0000
@@ -0,0 +1,22 @@
+--TEST--
+OOM unserialize() object of int=>int
+--INI--
+memory_limit=200M
+error_reporting=E_ALL&~E_DEPRECATED
+--FILE--
+
+--EXPECTF--
+Fatal error: Allowed memory size of 67108864 bytes exhausted %S(tried to allocate %d bytes) in %s on line 12
diff -Nru php8.4-8.4.26/Zend/tests/oom_unserialize_007.phpt php8.4-8.4.27/Zend/tests/oom_unserialize_007.phpt
--- php8.4-8.4.26/Zend/tests/oom_unserialize_007.phpt 1970-01-01 00:00:00.000000000 +0000
+++ php8.4-8.4.27/Zend/tests/oom_unserialize_007.phpt 2026-10-19 14:38:59.000000000 +0000
@@ -0,0 +1,17 @@
+--TEST--
+OOM unserialize() classname
+--INI--
+memory_limit=200M
+error_reporting=E_ALL&~E_DEPRECATED
+--FILE--
+
+--EXPECTF--
+Fatal error: Allowed memory size of %d bytes exhausted %S(tried to allocate %d bytes) in %s on line 7
diff -Nru php8.4-8.4.26/Zend/tests/oom_unserialize_008.phpt php8.4-8.4.27/Zend/tests/oom_unserialize_008.phpt
--- php8.4-8.4.26/Zend/tests/oom_unserialize_008.phpt 1970-01-01 00:00:00.000000000 +0000
+++ php8.4-8.4.27/Zend/tests/oom_unserialize_008.phpt 2026-10-19 14:38:59.000000000 +0000
@@ -0,0 +1,19 @@
+--TEST--
+OOM unserialize() classname (2)
+--INI--
+memory_limit=200M
+error_reporting=E_ALL&~E_DEPRECATED
+--FILE--
+
+--EXPECTF--
+Fatal error: Allowed memory size of %d bytes exhausted %S(tried to allocate %d bytes) in %s on line 9
diff -Nru php8.4-8.4.26/Zend/tests/oom_unserialize_009.phpt php8.4-8.4.27/Zend/tests/oom_unserialize_009.phpt
--- php8.4-8.4.26/Zend/tests/oom_unserialize_009.phpt 1970-01-01 00:00:00.000000000 +0000
+++ php8.4-8.4.27/Zend/tests/oom_unserialize_009.phpt 2026-10-19 14:38:59.000000000 +0000
@@ -0,0 +1,26 @@
+--TEST--
+OOM unserialize() Serializable
+--INI--
+memory_limit=200M
+error_reporting=E_ALL&~E_DEPRECATED
+--FILE--
+
+--EXPECTF--
+Fatal error: Allowed memory size of %d bytes exhausted %S(tried to allocate %d bytes) in %s on line 10
diff -Nru php8.4-8.4.26/Zend/tests/oom_unserialize_011.phpt php8.4-8.4.27/Zend/tests/oom_unserialize_011.phpt
--- php8.4-8.4.26/Zend/tests/oom_unserialize_011.phpt 1970-01-01 00:00:00.000000000 +0000
+++ php8.4-8.4.27/Zend/tests/oom_unserialize_011.phpt 2026-10-19 14:38:59.000000000 +0000
@@ -0,0 +1,22 @@
+--TEST--
+OOM unserialize() array of objects
+--INI--
+memory_limit=200M
+--FILE--
+
+--EXPECTF--
+Fatal error: Allowed memory size of 67108864 bytes exhausted %S(tried to allocate %d bytes) in %s on line 13
diff -Nru php8.4-8.4.26/Zend/tests/oom_unserialize_012.phpt php8.4-8.4.27/Zend/tests/oom_unserialize_012.phpt
--- php8.4-8.4.26/Zend/tests/oom_unserialize_012.phpt 1970-01-01 00:00:00.000000000 +0000
+++ php8.4-8.4.27/Zend/tests/oom_unserialize_012.phpt 2026-10-19 14:38:59.000000000 +0000
@@ -0,0 +1,23 @@
+--TEST--
+OOM unserialize() object fextend
+--INI--
+memory_limit=200M
+--FILE--
+
+--EXPECTF--
+Fatal error: Allowed memory size of 104857600 bytes exhausted %S(tried to allocate %d bytes) in %s on line 14
diff -Nru php8.4-8.4.26/Zend/tests/oom_unserialize_013.phpt php8.4-8.4.27/Zend/tests/oom_unserialize_013.phpt
--- php8.4-8.4.26/Zend/tests/oom_unserialize_013.phpt 1970-01-01 00:00:00.000000000 +0000
+++ php8.4-8.4.27/Zend/tests/oom_unserialize_013.phpt 2026-10-19 14:38:59.000000000 +0000
@@ -0,0 +1,28 @@
+--TEST--
+OOM unserialize() object __wakeup
+--INI--
+memory_limit=100M
+--FILE--
+
+--EXPECTF--
+Fatal error: Allowed memory size of 104857600 bytes exhausted %S(tried to allocate %d bytes) in %s on line 5
diff -Nru php8.4-8.4.26/Zend/tests/oom_unserialize_014.phpt php8.4-8.4.27/Zend/tests/oom_unserialize_014.phpt
--- php8.4-8.4.26/Zend/tests/oom_unserialize_014.phpt 1970-01-01 00:00:00.000000000 +0000
+++ php8.4-8.4.27/Zend/tests/oom_unserialize_014.phpt 2026-10-19 14:38:59.000000000 +0000
@@ -0,0 +1,28 @@
+--TEST--
+OOM unserialize() object __unserialize (2)
+--INI--
+memory_limit=200M
+--FILE--
+
+--EXPECTF--
+Fatal error: Allowed memory size of 104857600 bytes exhausted %S(tried to allocate %d bytes) in %s on line 19
diff -Nru php8.4-8.4.26/Zend/tests/oom_unserialize_015.phpt php8.4-8.4.27/Zend/tests/oom_unserialize_015.phpt
--- php8.4-8.4.26/Zend/tests/oom_unserialize_015.phpt 1970-01-01 00:00:00.000000000 +0000
+++ php8.4-8.4.27/Zend/tests/oom_unserialize_015.phpt 2026-10-19 14:38:59.000000000 +0000
@@ -0,0 +1,20 @@
+--TEST--
+OOM unserialize() object __unserialize (2)
+--INI--
+memory_limit=100M
+--FILE--
+
+--EXPECTF--
+Fatal error: Allowed memory size of 104857600 bytes exhausted %S(tried to allocate %d bytes) in %s on line 5
diff -Nru php8.4-8.4.26/Zend/tests/oom_unserialize_016.phpt php8.4-8.4.27/Zend/tests/oom_unserialize_016.phpt
--- php8.4-8.4.26/Zend/tests/oom_unserialize_016.phpt 1970-01-01 00:00:00.000000000 +0000
+++ php8.4-8.4.27/Zend/tests/oom_unserialize_016.phpt 2026-10-19 14:38:59.000000000 +0000
@@ -0,0 +1,33 @@
+--TEST--
+OOM unserialize() cleans up BG(unserialize) after a delayed OOM
+--INI--
+memory_limit=8M
+--FILE--
+
+--EXPECTF--
+Fatal error: Allowed memory size of %d bytes exhausted %S(tried to allocate %d bytes) in %s on line %d
+array(1) {
+ [0]=>
+ *RECURSION*
+}
diff -Nru php8.4-8.4.26/Zend/tests/property_hooks/simple_get_result_type_inference_verification.phpt php8.4-8.4.27/Zend/tests/property_hooks/simple_get_result_type_inference_verification.phpt
--- php8.4-8.4.26/Zend/tests/property_hooks/simple_get_result_type_inference_verification.phpt 1970-01-01 00:00:00.000000000 +0000
+++ php8.4-8.4.27/Zend/tests/property_hooks/simple_get_result_type_inference_verification.phpt 2026-10-19 14:38:59.000000000 +0000
@@ -0,0 +1,25 @@
+--TEST--
+Result type inference verification for simple get is skipped
+--FILE--
+ $this->backing;
+ }
+
+ public function test(): void {
+ $prop = $this->prop;
+ }
+}
+
+$foo = new Foo;
+$foo->test();
+$foo->test();
+echo "Done\n";
+
+?>
+--EXPECT--
+Done
diff -Nru php8.4-8.4.26/Zend/tests/singleton_array.phpt php8.4-8.4.27/Zend/tests/singleton_array.phpt
--- php8.4-8.4.26/Zend/tests/singleton_array.phpt 1970-01-01 00:00:00.000000000 +0000
+++ php8.4-8.4.27/Zend/tests/singleton_array.phpt 2026-10-19 14:38:59.000000000 +0000
@@ -0,0 +1,140 @@
+--TEST--
+array_init_singleton()
+--EXTENSIONS--
+zend_test
+--FILE--
+ 2 -> 4 -> 8 -> 16 */
+$a = zend_new_singleton_array();
+for ($i = 0; $i < 10; $i++) {
+ $a[] = $i;
+}
+var_dump($a === range(0, 9));
+
+/* First insert is a string key: goes straight to a mixed table of size 1,
+ * whose hash area is only 2 slots wide. */
+$a = zend_new_singleton_array();
+$a['foo'] = 1;
+$a['bar'] = 2;
+$a['baz'] = 3;
+var_dump($a);
+
+/* Packed -> hash conversion of a size 1 table. */
+$a = zend_new_singleton_array();
+$a[] = 'first';
+$a['key'] = 'second';
+var_dump($a);
+
+/* An out of range integer key also skips the packed representation. */
+$a = zend_new_singleton_array();
+$a[100] = 'hundred';
+$a[0] = 'zero';
+var_dump($a);
+
+/* Deletion, rehashing and reuse. */
+$a = zend_new_singleton_array();
+$a['a'] = 1;
+$a['b'] = 2;
+unset($a['a']);
+$a['c'] = 3;
+unset($a['b']);
+$a['d'] = 4;
+var_dump($a);
+
+/* Separation (zend_array_dup) of a size 1 table. */
+$a = zend_new_singleton_array();
+$a['x'] = 1;
+$b = $a;
+$b['y'] = 2;
+var_dump($a, $b);
+
+/* Sorting and renumbering. */
+$a = zend_new_singleton_array();
+$a['c'] = 3;
+$a['a'] = 1;
+$a['b'] = 2;
+asort($a);
+var_dump($a);
+sort($a);
+var_dump($a);
+
+/* Round-trips. */
+$a = zend_new_singleton_array();
+$a['only'] = 'one';
+var_dump(unserialize(serialize($a)) === $a);
+var_dump(json_decode(json_encode($a), true) === $a);
+
+/* Iteration. */
+$a = zend_new_singleton_array();
+$a[] = 'a';
+$a[] = 'b';
+foreach ($a as $k => $v) {
+ echo "$k => $v\n";
+}
+
+?>
+--EXPECT--
+array(0) {
+}
+int(0)
+bool(true)
+array(3) {
+ ["foo"]=>
+ int(1)
+ ["bar"]=>
+ int(2)
+ ["baz"]=>
+ int(3)
+}
+array(2) {
+ [0]=>
+ string(5) "first"
+ ["key"]=>
+ string(6) "second"
+}
+array(2) {
+ [100]=>
+ string(7) "hundred"
+ [0]=>
+ string(4) "zero"
+}
+array(2) {
+ ["c"]=>
+ int(3)
+ ["d"]=>
+ int(4)
+}
+array(1) {
+ ["x"]=>
+ int(1)
+}
+array(2) {
+ ["x"]=>
+ int(1)
+ ["y"]=>
+ int(2)
+}
+array(3) {
+ ["a"]=>
+ int(1)
+ ["b"]=>
+ int(2)
+ ["c"]=>
+ int(3)
+}
+array(3) {
+ [0]=>
+ int(1)
+ [1]=>
+ int(2)
+ [2]=>
+ int(3)
+}
+bool(true)
+bool(true)
+0 => a
+1 => b
diff -Nru php8.4-8.4.26/Zend/zend.c php8.4-8.4.27/Zend/zend.c
--- php8.4-8.4.26/Zend/zend.c 2026-09-22 15:00:02.000000000 +0000
+++ php8.4-8.4.27/Zend/zend.c 2026-10-19 14:38:59.000000000 +0000
@@ -747,6 +747,8 @@
memset(base, 0, (zend_map_ptr_static_size + compiler_globals->map_ptr_last) * sizeof(void*));
}
zend_init_internal_run_time_cache();
+
+ compiler_globals->interned_strings_fallible = false;
}
/* }}} */
@@ -846,6 +848,7 @@
sizeof(executor_globals->strtod_state.freelist));
executor_globals->strtod_state.p5s = NULL;
executor_globals->strtod_state.result = NULL;
+ memset(&executor_globals->delayed_oom, 0, sizeof(executor_globals->delayed_oom));
}
/* }}} */
@@ -1384,6 +1387,8 @@
zend_map_ptr_reset();
}
+ zend_mm_oom_info_dtor(&EG(delayed_oom));
+
#if GC_BENCH
gc_bench_print();
#endif
@@ -1464,7 +1469,7 @@
}
/* Report about uncaught exception in case of fatal errors */
- if (EG(exception)) {
+ if (EG(exception) && EXPECTED(EG(delayed_oom).state != ZEND_OOM_STATE_HANDLING)) {
zend_execute_data *ex;
const zend_op *opline;
@@ -1935,6 +1940,9 @@
zend_result ret = SUCCESS;
if (op_array) {
zend_execute(op_array, retval);
+ if (ZEND_HAS_OOM()) {
+ zend_handle_delayed_oom();
+ }
zend_exception_restore();
if (UNEXPECTED(EG(exception))) {
if (Z_TYPE(EG(user_exception_handler)) != IS_UNDEF) {
diff -Nru php8.4-8.4.26/Zend/zend.h php8.4-8.4.27/Zend/zend.h
--- php8.4-8.4.26/Zend/zend.h 2026-09-22 15:00:02.000000000 +0000
+++ php8.4-8.4.27/Zend/zend.h 2026-10-19 14:38:59.000000000 +0000
@@ -20,7 +20,7 @@
#ifndef ZEND_H
#define ZEND_H
-#define ZEND_VERSION "4.4.26"
+#define ZEND_VERSION "4.4.27"
#define ZEND_ENGINE_3
diff -Nru php8.4-8.4.26/Zend/zend_API.c php8.4-8.4.27/Zend/zend_API.c
--- php8.4-8.4.26/Zend/zend_API.c 2026-09-22 15:00:02.000000000 +0000
+++ php8.4-8.4.27/Zend/zend_API.c 2026-10-19 14:38:59.000000000 +0000
@@ -34,6 +34,7 @@
#include "zend_enum.h"
#include "zend_object_handlers.h"
#include "zend_observer.h"
+#include "zend_system_id.h"
#include
@@ -1936,6 +1937,18 @@
}
/* }}} */
+ZEND_API bool object_finit(zval *arg)
+{
+ zend_object *obj = zend_objects_fnew(zend_standard_class_def);
+
+ if (UNEXPECTED(obj == NULL)) {
+ ZVAL_NULL(arg);
+ return false;
+ }
+ ZVAL_OBJ(arg, obj);
+ return true;
+}
+
ZEND_API void add_assoc_long_ex(zval *arg, const char *key, size_t key_len, zend_long n) /* {{{ */
{
zval tmp;
@@ -2252,6 +2265,9 @@
break;
case IS_RESOURCE:
zend_use_resource_as_offset(key);
+ if (UNEXPECTED(EG(exception))) {
+ return FAILURE;
+ }
result = zend_hash_index_update(ht, Z_RES_HANDLE_P(key), value);
break;
case IS_FALSE:
@@ -2263,9 +2279,14 @@
case IS_LONG:
result = zend_hash_index_update(ht, Z_LVAL_P(key), value);
break;
- case IS_DOUBLE:
- result = zend_hash_index_update(ht, zend_dval_to_lval_safe(Z_DVAL_P(key)), value);
+ case IS_DOUBLE: {
+ zend_long lval = zend_dval_to_lval_safe(Z_DVAL_P(key));
+ if (UNEXPECTED(EG(exception))) {
+ return FAILURE;
+ }
+ result = zend_hash_index_update(ht, lval, value);
break;
+ }
default:
zend_illegal_container_offset(ZSTR_KNOWN(ZEND_STR_ARRAY), key, BP_VAR_W);
result = NULL;
@@ -2976,7 +2997,11 @@
internal_function->prototype = NULL;
internal_function->prop_info = NULL;
internal_function->attributes = NULL;
- internal_function->frameless_function_infos = ptr->frameless_function_infos;
+ if (type == MODULE_TEMPORARY) {
+ internal_function->frameless_function_infos = NULL;
+ } else {
+ internal_function->frameless_function_infos = ptr->frameless_function_infos;
+ }
if (EG(active)) { // at run-time: this ought to only happen if registered with dl() or somehow temporarily at runtime
ZEND_MAP_PTR_INIT(internal_function->run_time_cache, zend_arena_calloc(&CG(arena), 1, zend_internal_run_time_cache_reserved_size()));
} else {
@@ -3099,6 +3124,7 @@
}
zend_flf_handlers[zend_flf_count] = flf_info->handler;
zend_flf_functions[zend_flf_count] = (zend_function *)reg_function;
+ zend_add_system_entropy("frameless", ZSTR_VAL(reg_function->function_name), &flf_info->num_args, sizeof(flf_info->num_args));
zend_flf_count++;
flf_info++;
}
diff -Nru php8.4-8.4.26/Zend/zend_API.h php8.4-8.4.27/Zend/zend_API.h
--- php8.4-8.4.26/Zend/zend_API.h 2026-09-22 15:00:02.000000000 +0000
+++ php8.4-8.4.27/Zend/zend_API.h 2026-10-19 14:38:59.000000000 +0000
@@ -536,7 +536,45 @@
#define array_init(arg) ZVAL_ARR((arg), zend_new_array(0))
#define array_init_size(arg, size) ZVAL_ARR((arg), zend_new_array(size))
+#define array_init_singleton(arg) ZVAL_ARR((arg), zend_new_array_singleton())
+
+/* Fallible array_init()/object_init(): on failure return false and leave arg as
+ * IS_NULL, so arg stays safe to destroy. */
+static zend_always_inline bool _array_finit(zval *arg, size_t size)
+{
+ zend_array *ht = zend_fnew_array(size);
+ if (UNEXPECTED(ht == NULL)) {
+ ZVAL_NULL(arg);
+ return false;
+ }
+ ZVAL_ARR(arg, ht);
+ return true;
+}
+
+static zend_always_inline bool _array_finit_ex(zval *arg, size_t size, bool packed)
+{
+ zend_array *ht = zend_fnew_array(size);
+ if (UNEXPECTED(ht == NULL)) {
+ ZVAL_NULL(arg);
+ return false;
+ }
+ if (UNEXPECTED(zend_hash_real_finit(ht, packed, /* fallible */ true) == FAILURE)) {
+ efree(ht);
+ ZVAL_NULL(arg);
+ return false;
+ }
+ ZVAL_ARR(arg, ht);
+ return true;
+}
+
+#define array_finit(arg) _array_finit((arg), 0)
+#define array_finit_size(arg, size) _array_finit((arg), (size))
+#define array_finit_size_ex(arg, size, packed) _array_finit_ex((arg), (size), (packed))
+#define array_finit_size_packed(arg, size) _array_finit_ex((arg), (size), /* packed */ true)
+#define array_finit_size_mixed(arg, size) _array_finit_ex((arg), (size), /* packed */ false)
+
ZEND_API void object_init(zval *arg);
+ZEND_API bool object_finit(zval *arg);
ZEND_API zend_result object_init_ex(zval *arg, zend_class_entry *ce);
ZEND_API zend_result object_init_with_constructor(zval *arg, zend_class_entry *class_type, uint32_t param_count, zval *params, HashTable *named_params);
ZEND_API zend_result object_and_properties_init(zval *arg, zend_class_entry *ce, HashTable *properties);
@@ -953,11 +991,26 @@
ZVAL_NEW_STR(z, zend_string_init(s, l, 0)); \
} while (0)
+/* Fallible variant of ZVAL_STRINGL() to be used when 's' is not managed by zend_alloc */
+static zend_always_inline bool ZVAL_FSTRINGL(zval *z, const char *s, size_t l) {
+ zend_string *str = zend_string_finit(s, l, /* persistent */ false, /* fallible */ true);
+ if (UNEXPECTED(!str)) {
+ ZVAL_INTERNED_STR(z, ZSTR_EMPTY_ALLOC());
+ return false;
+ }
+ ZVAL_NEW_STR(z, str);
+ return true;
+}
+
#define ZVAL_STRING(z, s) do { \
const char *_s = (s); \
ZVAL_STRINGL(z, _s, strlen(_s)); \
} while (0)
+static zend_always_inline bool ZVAL_FSTRING(zval *z, const char *s) {
+ return ZVAL_FSTRINGL(z, s, strlen(s));
+}
+
#define ZVAL_EMPTY_STRING(z) do { \
ZVAL_INTERNED_STR(z, ZSTR_EMPTY_ALLOC()); \
} while (0)
@@ -1018,6 +1071,8 @@
#define RETVAL_STRINGL(s, l) ZVAL_STRINGL(return_value, s, l)
#define RETVAL_STRING_FAST(s) ZVAL_STRING_FAST(return_value, s)
#define RETVAL_STRINGL_FAST(s, l) ZVAL_STRINGL_FAST(return_value, s, l)
+#define RETVAL_FSTRING(s) ZVAL_FSTRING(return_value, s)
+#define RETVAL_FSTRINGL(s, l) ZVAL_FSTRINGL(return_value, s, l)
#define RETVAL_EMPTY_STRING() ZVAL_EMPTY_STRING(return_value)
#define RETVAL_CHAR(c) ZVAL_CHAR(return_value, c)
#define RETVAL_RES(r) ZVAL_RES(return_value, r)
@@ -1044,6 +1099,8 @@
#define RETURN_STRINGL(s, l) do { RETVAL_STRINGL(s, l); return; } while (0)
#define RETURN_STRING_FAST(s) do { RETVAL_STRING_FAST(s); return; } while (0)
#define RETURN_STRINGL_FAST(s, l) do { RETVAL_STRINGL_FAST(s, l); return; } while (0)
+#define RETURN_FSTRING(s) do { RETVAL_FSTRING(s); return; } while (0)
+#define RETURN_FSTRINGL(s, l) do { RETVAL_FSTRINGL(s, l); return; } while (0)
#define RETURN_EMPTY_STRING() do { RETVAL_EMPTY_STRING(); return; } while (0)
#define RETURN_CHAR(c) do { RETVAL_CHAR(c); return; } while (0)
#define RETURN_RES(r) do { RETVAL_RES(r); return; } while (0)
@@ -1058,6 +1115,7 @@
#define RETURN_FALSE do { RETVAL_FALSE; return; } while (0)
#define RETURN_TRUE do { RETVAL_TRUE; return; } while (0)
#define RETURN_THROWS() do { ZEND_ASSERT(EG(exception)); (void) return_value; return; } while (0)
+#define RETURN_OOM() do { ZEND_ASSERT(ZEND_HAS_OOM()); (void) return_value; return; } while (0)
#define HASH_OF(p) (Z_TYPE_P(p)==IS_ARRAY ? Z_ARRVAL_P(p) : ((Z_TYPE_P(p)==IS_OBJECT ? Z_OBJ_HT_P(p)->get_properties(Z_OBJ_P(p)) : NULL)))
#define ZVAL_IS_NULL(z) (Z_TYPE_P(z) == IS_NULL)
diff -Nru php8.4-8.4.26/Zend/zend_alloc.c php8.4-8.4.27/Zend/zend_alloc.c
--- php8.4-8.4.26/Zend/zend_alloc.c 2026-09-22 15:00:02.000000000 +0000
+++ php8.4-8.4.27/Zend/zend_alloc.c 2026-10-19 14:38:59.000000000 +0000
@@ -53,6 +53,7 @@
#include "zend.h"
#include "zend_alloc.h"
+#include "zend_API.h"
#include "zend_globals.h"
#include "zend_hrtime.h"
#include "zend_operators.h"
@@ -60,6 +61,8 @@
#include "zend_bitset.h"
#include "zend_mmap.h"
#include "zend_portability.h"
+#include "zend_string.h"
+#include "zend_exceptions.h"
#include
#ifdef HAVE_UNISTD_H
@@ -217,6 +220,10 @@
#define ZEND_MM_BINS 30
+#if ZEND_MM_LIMIT
+# define ZEND_MM_LIMIT_MAX ((size_t)Z_L(-1) >> 1)
+#endif
+
#if UINTPTR_MAX == UINT64_MAX
# define BSWAPPTR(u) ZEND_BYTES_SWAP64(u)
#else
@@ -230,6 +237,7 @@
typedef struct _zend_mm_huge_list zend_mm_huge_list;
static bool zend_mm_use_huge_pages = false;
+static bool zend_mm_max_allocs_reached = false;
/*
* Memory is retrieved from OS by chunks of fixed size 2MB.
@@ -284,8 +292,11 @@
#endif
#if ZEND_MM_LIMIT
size_t limit; /* memory limit */
+ size_t hard_limit;
+ zend_long hard_limit_percent;
int overflow; /* memory overflow flag */
#endif
+ bool fallible;
zend_mm_huge_list *huge_list; /* list of huge allocated blocks */
@@ -306,6 +317,7 @@
void (*_shutdown)(bool full, bool silent);
} custom_heap;
HashTable *tracked_allocs;
+ uint64_t max_allocs;
#endif
pid_t pid;
zend_random_bytes_insecure_state rand_state;
@@ -398,31 +410,160 @@
abort();
}
-static ZEND_COLD ZEND_NORETURN void zend_mm_safe_error(zend_mm_heap *heap,
- const char *format,
- size_t limit,
-#if ZEND_DEBUG
- const char *filename,
- uint32_t lineno,
-#endif
- size_t size)
+static ZEND_COLD ZEND_NORETURN void zend_out_of_memory(void);
+
+static ZEND_COLD void zend_mm_delayed_verror(const char *format, va_list args)
{
+ if (ZEND_HAS_OOM()) {
+ return;
+ }
- heap->overflow = 1;
- zend_try {
- zend_error_noreturn(E_ERROR,
- format,
- limit,
-#if ZEND_DEBUG
- filename,
- lineno,
-#endif
- size);
- } zend_catch {
- } zend_end_try();
- heap->overflow = 0;
- zend_bailout();
- exit(1);
+ zend_string *script_filename = NULL;
+ uint32_t script_lineno = 0;
+
+ if (zend_is_executing()) {
+ script_filename = zend_get_executed_filename_ex();
+ script_lineno = zend_get_executed_lineno();
+ } else if (zend_is_compiling()) {
+ script_filename = zend_get_compiled_filename();
+ script_lineno = zend_get_compiled_lineno();
+ }
+
+ if (script_filename == NULL) {
+ script_filename = ZSTR_KNOWN(ZEND_STR_UNKNOWN_CAPITALIZED);
+ script_lineno = 0;
+ }
+
+ char buf[1024];
+ vsnprintf(buf, sizeof(buf), format, args);
+
+ EG(delayed_oom).message = zend_string_init(buf, strlen(buf), /* persistent */ true);
+ GC_MAKE_PERSISTENT_LOCAL(EG(delayed_oom).message);
+ zend_string_addref(script_filename);
+ EG(delayed_oom).filename = script_filename;
+ EG(delayed_oom).lineno = script_lineno;
+ EG(delayed_oom).state = ZEND_OOM_STATE_PENDING;
+
+ zend_atomic_bool_store_ex(&EG(vm_interrupt), true);
+}
+
+ZEND_ATTRIBUTE_FORMAT(printf, 1, 2)
+static ZEND_COLD void zend_mm_delayed_error(const char *format, ...)
+{
+ va_list args;
+ va_start(args, format);
+ zend_mm_delayed_verror(format, args);
+ va_end(args);
+}
+
+ZEND_ATTRIBUTE_FORMAT(printf, 2, 3)
+ZEND_API ZEND_COLD void zend_mm_delayed_error_or_panic(bool delay, const char *format, ...)
+{
+ va_list args;
+ va_start(args, format);
+
+ if (delay) {
+ zend_mm_delayed_verror(format, args);
+ } else {
+ char buf[1024];
+ vsnprintf(buf, sizeof(buf), format, args);
+ zend_mm_panic(buf);
+ }
+
+ va_end(args);
+}
+
+ZEND_COLD void zend_mm_oom_info_dtor(zend_oom_info *info)
+{
+ if (info->message) {
+ zend_string_release(info->message);
+ info->message = NULL;
+ }
+ if (info->filename) {
+ zend_string_release(info->filename);
+ info->filename = NULL;
+ }
+}
+
+#ifdef ZEND_MM_LIMIT
+static ZEND_COLD ZEND_NORETURN void zend_mm_hard_limit_error(zend_mm_heap *heap,
+ size_t add_size ZEND_FILE_LINE_DC)
+{
+ zend_string *script_filename = NULL;
+ uint32_t script_lineno = 0;
+
+ if (zend_is_executing()) {
+ script_filename = zend_get_executed_filename_ex();
+ script_lineno = zend_get_executed_lineno();
+ } else if (zend_is_compiling()) {
+ script_filename = zend_get_compiled_filename();
+ script_lineno = zend_get_compiled_lineno();
+ }
+
+ if (script_filename == NULL) {
+ script_filename = ZSTR_KNOWN(ZEND_STR_UNKNOWN_CAPITALIZED);
+ script_lineno = 0;
+ }
+
+ fprintf(stderr,
+# if ZEND_DEBUG
+ "Hard memory limit of %zu bytes exhausted at %s:%d (tried to allocate %zu bytes) in %s on line %d\n",
+# else
+ "Hard memory limit of %zu bytes exhausted (tried to allocate %zu bytes) in %s on line %d\n",
+# endif
+ heap->hard_limit
+ ZEND_FILE_LINE_RELAY_CC,
+ add_size,
+ ZSTR_VAL(script_filename),
+ script_lineno);
+
+ /* See http://support.microsoft.com/kb/190351 */
+# ifdef ZEND_WIN32
+ fflush(stderr);
+# endif
+
+ _exit(137);
+}
+#endif /* ZEND_MM_LIMIT */
+
+/* Returns FAILURE if allocation should fail (in case the heap is fallible).
+ * When the soft limit is to be exceeded, a delayed OOM error is queued.
+ * When the hard limit is to be exceeded, the function does not return.
+ */
+static zend_always_inline zend_result zend_mm_check_limit(zend_mm_heap *heap, size_t add_size, bool gc, bool *did_gc ZEND_FILE_LINE_DC)
+{
+#if ZEND_MM_LIMIT
+ /* Is the soft limit exceeded or going to be exceeded? */
+ if (UNEXPECTED(heap->limit < heap->real_size || add_size > heap->limit - heap->real_size)) {
+ if (gc && zend_mm_gc(heap)) {
+ if (did_gc) {
+ *did_gc = true;
+ }
+ }
+ ZEND_ASSERT(heap->hard_limit >= heap->limit && heap->hard_limit >= heap->real_size);
+ if (!heap->fallible && add_size > heap->hard_limit - heap->real_size) {
+ zend_mm_hard_limit_error(heap, add_size ZEND_FILE_LINE_RELAY_CC);
+ }
+ /* Check soft limit again as gc may have reduced memory usage */
+ if (!gc || (heap->limit < heap->real_size || add_size > heap->limit - heap->real_size)) {
+ if (!ZEND_HAS_OOM()) {
+ zend_mm_delayed_error(
+# if ZEND_DEBUG
+ "Allowed memory size of %zu bytes exhausted at %s:%d (tried to allocate %zu bytes)",
+# else
+ "Allowed memory size of %zu bytes exhausted (tried to allocate %zu bytes)",
+# endif
+ heap->limit
+ ZEND_FILE_LINE_RELAY_CC,
+ add_size);
+ }
+
+ return heap->fallible ? FAILURE : SUCCESS;
+ }
+ }
+#endif /* ZEND_MM_LIMIT */
+
+ return SUCCESS;
}
#ifdef _WIN32
@@ -1040,20 +1181,13 @@
chunk = heap->cached_chunks;
heap->cached_chunks = chunk->next;
} else {
-#if ZEND_MM_LIMIT
- if (UNEXPECTED(ZEND_MM_CHUNK_SIZE > heap->limit - heap->real_size)) {
- if (zend_mm_gc(heap)) {
- goto get_chunk;
- } else if (heap->overflow == 0) {
-#if ZEND_DEBUG
- zend_mm_safe_error(heap, "Allowed memory size of %zu bytes exhausted at %s:%d (tried to allocate %zu bytes)", heap->limit, __zend_filename, __zend_lineno, size);
-#else
- zend_mm_safe_error(heap, "Allowed memory size of %zu bytes exhausted (tried to allocate %zu bytes)", heap->limit, ZEND_MM_PAGE_SIZE * pages_count);
-#endif
- return NULL;
- }
+ bool did_gc = false;
+ if (UNEXPECTED(zend_mm_check_limit(heap, ZEND_MM_CHUNK_SIZE, /* gc */ true, &did_gc ZEND_FILE_LINE_RELAY_CC) == FAILURE)) {
+ return NULL;
+ } else if (did_gc) {
+ goto get_chunk;
}
-#endif
+
chunk = (zend_mm_chunk*)zend_mm_chunk_alloc(heap, ZEND_MM_CHUNK_SIZE, ZEND_MM_CHUNK_SIZE);
if (UNEXPECTED(chunk == NULL)) {
/* insufficient memory */
@@ -1061,13 +1195,7 @@
(chunk = (zend_mm_chunk*)zend_mm_chunk_alloc(heap, ZEND_MM_CHUNK_SIZE, ZEND_MM_CHUNK_SIZE)) != NULL) {
/* pass */
} else {
-#if !ZEND_MM_LIMIT
- zend_mm_safe_error(heap, "Out of memory");
-#elif ZEND_DEBUG
- zend_mm_safe_error(heap, "Out of memory (allocated %zu bytes) at %s:%d (tried to allocate %zu bytes)", heap->real_size, __zend_filename, __zend_lineno, size);
-#else
- zend_mm_safe_error(heap, "Out of memory (allocated %zu bytes) (tried to allocate %zu bytes)", heap->real_size, ZEND_MM_PAGE_SIZE * pages_count);
-#endif
+ zend_out_of_memory();
return NULL;
}
}
@@ -1128,6 +1256,9 @@
#else
void *ptr = zend_mm_alloc_pages(heap, pages_count ZEND_FILE_LINE_RELAY_CC ZEND_FILE_LINE_ORIG_RELAY_CC);
#endif
+ if (UNEXPECTED(ptr == NULL)) {
+ return NULL;
+ }
#if ZEND_MM_STAT
do {
size_t size = heap->size + pages_count * ZEND_MM_PAGE_SIZE;
@@ -1350,6 +1481,11 @@
#endif
if (UNEXPECTED(bin == NULL)) {
/* insufficient memory */
+#if ZEND_MM_STAT
+ /* heap->size was incremented by the caller. Decrement here to preserve
+ * the tail call. */
+ heap->size -= bin_data_size[bin_num];
+#endif
return NULL;
}
@@ -1480,30 +1616,34 @@
size = MAX(size, 1);
size = ZEND_MM_ALIGNED_SIZE(size) + ZEND_MM_ALIGNED_SIZE(sizeof(zend_mm_debug_info));
if (UNEXPECTED(size < real_size)) {
- zend_error_noreturn(E_ERROR, "Possible integer overflow in memory allocation (%zu + %zu)", ZEND_MM_ALIGNED_SIZE(real_size), ZEND_MM_ALIGNED_SIZE(sizeof(zend_mm_debug_info)));
+ zend_mm_delayed_error_or_panic(heap->fallible, "Possible integer overflow in memory allocation (%zu + %zu)", ZEND_MM_ALIGNED_SIZE(real_size), ZEND_MM_ALIGNED_SIZE(sizeof(zend_mm_debug_info)));
return NULL;
}
#endif
if (EXPECTED(size <= ZEND_MM_MAX_SMALL_SIZE)) {
ptr = zend_mm_alloc_small(heap, ZEND_MM_SMALL_SIZE_TO_BIN(size) ZEND_FILE_LINE_RELAY_CC ZEND_FILE_LINE_ORIG_RELAY_CC);
#if ZEND_DEBUG
- dbg = zend_mm_get_debug_info(heap, ptr);
- dbg->size = real_size;
- dbg->filename = __zend_filename;
- dbg->orig_filename = __zend_orig_filename;
- dbg->lineno = __zend_lineno;
- dbg->orig_lineno = __zend_orig_lineno;
+ if (EXPECTED(ptr != NULL)) {
+ dbg = zend_mm_get_debug_info(heap, ptr);
+ dbg->size = real_size;
+ dbg->filename = __zend_filename;
+ dbg->orig_filename = __zend_orig_filename;
+ dbg->lineno = __zend_lineno;
+ dbg->orig_lineno = __zend_orig_lineno;
+ }
#endif
return ptr;
} else if (EXPECTED(size <= ZEND_MM_MAX_LARGE_SIZE)) {
ptr = zend_mm_alloc_large(heap, size ZEND_FILE_LINE_RELAY_CC ZEND_FILE_LINE_ORIG_RELAY_CC);
#if ZEND_DEBUG
- dbg = zend_mm_get_debug_info(heap, ptr);
- dbg->size = real_size;
- dbg->filename = __zend_filename;
- dbg->orig_filename = __zend_orig_filename;
- dbg->lineno = __zend_lineno;
- dbg->orig_lineno = __zend_orig_lineno;
+ if (EXPECTED(ptr != NULL)) {
+ dbg = zend_mm_get_debug_info(heap, ptr);
+ dbg->size = real_size;
+ dbg->filename = __zend_filename;
+ dbg->orig_filename = __zend_orig_filename;
+ dbg->lineno = __zend_lineno;
+ dbg->orig_lineno = __zend_orig_lineno;
+ }
#endif
return ptr;
} else {
@@ -1576,10 +1716,16 @@
size_t orig_peak = heap->peak;
#endif
ret = zend_mm_alloc_heap(heap, size ZEND_FILE_LINE_RELAY_CC ZEND_FILE_LINE_ORIG_RELAY_CC);
- memcpy(ret, ptr, copy_size);
- zend_mm_free_heap(heap, ptr ZEND_FILE_LINE_RELAY_CC ZEND_FILE_LINE_ORIG_RELAY_CC);
+ if (EXPECTED(ret != NULL)) {
+ memcpy(ret, ptr, copy_size);
+ zend_mm_free_heap(heap, ptr ZEND_FILE_LINE_RELAY_CC ZEND_FILE_LINE_ORIG_RELAY_CC);
+ } else {
+ /* original block is left untouched */
+ }
#if ZEND_MM_STAT
- heap->peak = MAX(orig_peak, heap->size);
+ if (EXPECTED(ret != NULL)) {
+ heap->peak = MAX(orig_peak, heap->size);
+ }
} while (0);
#endif
return ret;
@@ -1635,20 +1781,10 @@
return ptr;
}
} else /* if (new_size > old_size) */ {
-#if ZEND_MM_LIMIT
- if (UNEXPECTED(new_size - old_size > heap->limit - heap->real_size)) {
- if (zend_mm_gc(heap) && new_size - old_size <= heap->limit - heap->real_size) {
- /* pass */
- } else if (heap->overflow == 0) {
-#if ZEND_DEBUG
- zend_mm_safe_error(heap, "Allowed memory size of %zu bytes exhausted at %s:%d (tried to allocate %zu bytes)", heap->limit, __zend_filename, __zend_lineno, size);
-#else
- zend_mm_safe_error(heap, "Allowed memory size of %zu bytes exhausted (tried to allocate %zu bytes)", heap->limit, size);
-#endif
- return NULL;
- }
+ if (UNEXPECTED(zend_mm_check_limit(heap, new_size - old_size, /* gc */ true, NULL ZEND_FILE_LINE_RELAY_CC) == FAILURE)) {
+ return NULL;
}
-#endif
+
/* try to map tail right after this block */
if (zend_mm_chunk_extend(heap, ptr, old_size, new_size)) {
#if ZEND_MM_STAT || ZEND_MM_LIMIT
@@ -1717,6 +1853,9 @@
if (old_bin_num > 0 && size < bin_data_size[old_bin_num - 1]) {
/* truncation */
ret = zend_mm_alloc_small(heap, ZEND_MM_SMALL_SIZE_TO_BIN(size) ZEND_FILE_LINE_RELAY_CC ZEND_FILE_LINE_ORIG_RELAY_CC);
+ if (UNEXPECTED(ret == NULL)) {
+ goto failed;
+ }
copy_size = use_copy_size ? MIN(size, copy_size) : size;
memcpy(ret, ptr, copy_size);
zend_mm_free_small(heap, ptr, old_bin_num);
@@ -1732,6 +1871,9 @@
size_t orig_peak = heap->peak;
#endif
ret = zend_mm_alloc_small(heap, ZEND_MM_SMALL_SIZE_TO_BIN(size) ZEND_FILE_LINE_RELAY_CC ZEND_FILE_LINE_ORIG_RELAY_CC);
+ if (UNEXPECTED(ret == NULL)) {
+ goto failed;
+ }
copy_size = use_copy_size ? MIN(old_size, copy_size) : old_size;
memcpy(ret, ptr, copy_size);
zend_mm_free_small(heap, ptr, old_bin_num);
@@ -1753,6 +1895,10 @@
dbg->orig_lineno = __zend_orig_lineno;
#endif
return ret;
+
+failed:
+ /* original block is left untouched */
+ return NULL;
} while (0);
} else /* if (info & ZEND_MM_IS_LARGE_RUN) */ {
@@ -1840,6 +1986,8 @@
static void zend_mm_add_huge_block(zend_mm_heap *heap, void *ptr, size_t size ZEND_FILE_LINE_DC ZEND_FILE_LINE_ORIG_DC)
#endif
{
+ bool was_fallible = heap->fallible;
+ heap->fallible = false;
zend_mm_huge_list *list = (zend_mm_huge_list*)zend_mm_alloc_heap(heap, sizeof(zend_mm_huge_list) ZEND_FILE_LINE_RELAY_CC ZEND_FILE_LINE_ORIG_RELAY_CC);
list->ptr = ptr;
list->size = size;
@@ -1852,6 +2000,7 @@
list->dbg.orig_lineno = __zend_orig_lineno;
#endif
heap->huge_list = list;
+ heap->fallible = was_fallible;
}
static size_t zend_mm_del_huge_block(zend_mm_heap *heap, void *ptr ZEND_FILE_LINE_DC ZEND_FILE_LINE_ORIG_DC)
@@ -1929,23 +2078,14 @@
void *ptr;
if (UNEXPECTED(new_size < size)) {
- zend_error_noreturn(E_ERROR, "Possible integer overflow in memory allocation (%zu + %zu)", size, alignment);
+ zend_mm_delayed_error_or_panic(heap->fallible, "Possible integer overflow in memory allocation (%zu + %zu)", size, alignment);
+ return NULL;
}
-#if ZEND_MM_LIMIT
- if (UNEXPECTED(new_size > heap->limit - heap->real_size)) {
- if (zend_mm_gc(heap) && new_size <= heap->limit - heap->real_size) {
- /* pass */
- } else if (heap->overflow == 0) {
-#if ZEND_DEBUG
- zend_mm_safe_error(heap, "Allowed memory size of %zu bytes exhausted at %s:%d (tried to allocate %zu bytes)", heap->limit, __zend_filename, __zend_lineno, size);
-#else
- zend_mm_safe_error(heap, "Allowed memory size of %zu bytes exhausted (tried to allocate %zu bytes)", heap->limit, size);
-#endif
- return NULL;
- }
+ if (UNEXPECTED(zend_mm_check_limit(heap, new_size, /* gc */ true, NULL ZEND_FILE_LINE_RELAY_CC) == FAILURE)) {
+ return NULL;
}
-#endif
+
ptr = zend_mm_chunk_alloc(heap, new_size, ZEND_MM_CHUNK_SIZE);
if (UNEXPECTED(ptr == NULL)) {
/* insufficient memory */
@@ -1953,13 +2093,7 @@
(ptr = zend_mm_chunk_alloc(heap, new_size, ZEND_MM_CHUNK_SIZE)) != NULL) {
/* pass */
} else {
-#if !ZEND_MM_LIMIT
- zend_mm_safe_error(heap, "Out of memory");
-#elif ZEND_DEBUG
- zend_mm_safe_error(heap, "Out of memory (allocated %zu bytes) at %s:%d (tried to allocate %zu bytes)", heap->real_size, __zend_filename, __zend_lineno, size);
-#else
- zend_mm_safe_error(heap, "Out of memory (allocated %zu bytes) (tried to allocate %zu bytes)", heap->real_size, size);
-#endif
+ zend_out_of_memory();
return NULL;
}
}
@@ -2055,9 +2189,12 @@
#endif
zend_mm_init_key(heap);
#if ZEND_MM_LIMIT
- heap->limit = (size_t)Z_L(-1) >> 1;
+ heap->limit = ZEND_MM_LIMIT_MAX;
+ heap->hard_limit = ZEND_MM_LIMIT_MAX;
+ heap->hard_limit_percent = -1;
heap->overflow = 0;
#endif
+ heap->fallible = false;
#if ZEND_MM_CUSTOM
heap->use_custom_heap = ZEND_MM_CUSTOM_HEAP_NONE;
#endif
@@ -2402,6 +2539,7 @@
if (silent) {
tracked_free_all(heap);
}
+ heap->max_allocs = 0;
zend_hash_clean(heap->tracked_allocs);
if (full) {
zend_hash_destroy(heap->tracked_allocs);
@@ -2779,33 +2917,54 @@
return _zend_mm_block_size(AG(mm_heap), ptr ZEND_FILE_LINE_RELAY_CC ZEND_FILE_LINE_ORIG_RELAY_CC);
}
+#define ZEND_MM_SAFE_ADDRESS_GUARDED(dest, nmemb, size, offset) do { \
+ size_t __nmemb = (nmemb); \
+ size_t __size = (size); \
+ size_t __offset = (offset); \
+ bool overflow; \
+ (dest) = zend_safe_address(__nmemb, __size, __offset, &overflow); \
+ if (UNEXPECTED(overflow)) { \
+ zend_mm_delayed_error_or_panic(AG(mm_heap)->fallible, "Possible integer overflow in memory allocation (%zu * %zu + %zu)", __nmemb, __size, __offset); \
+ return NULL; \
+ } \
+ } while (0)
+
ZEND_API void* ZEND_FASTCALL _safe_emalloc(size_t nmemb, size_t size, size_t offset ZEND_FILE_LINE_DC ZEND_FILE_LINE_ORIG_DC)
{
- return _emalloc(zend_safe_address_guarded(nmemb, size, offset) ZEND_FILE_LINE_RELAY_CC ZEND_FILE_LINE_ORIG_RELAY_CC);
+ size_t actual_size;
+ ZEND_MM_SAFE_ADDRESS_GUARDED(actual_size, nmemb, size, offset);
+ return _emalloc(actual_size ZEND_FILE_LINE_RELAY_CC ZEND_FILE_LINE_ORIG_RELAY_CC);
}
ZEND_API void* ZEND_FASTCALL _safe_malloc(size_t nmemb, size_t size, size_t offset)
{
- return pemalloc(zend_safe_address_guarded(nmemb, size, offset), 1);
+ size_t actual_size;
+ ZEND_MM_SAFE_ADDRESS_GUARDED(actual_size, nmemb, size, offset);
+ return pemalloc(actual_size, 1);
}
ZEND_API void* ZEND_FASTCALL _safe_erealloc(void *ptr, size_t nmemb, size_t size, size_t offset ZEND_FILE_LINE_DC ZEND_FILE_LINE_ORIG_DC)
{
- return _erealloc(ptr, zend_safe_address_guarded(nmemb, size, offset) ZEND_FILE_LINE_RELAY_CC ZEND_FILE_LINE_ORIG_RELAY_CC);
+ size_t actual_size;
+ ZEND_MM_SAFE_ADDRESS_GUARDED(actual_size, nmemb, size, offset);
+ return _erealloc(ptr, actual_size ZEND_FILE_LINE_RELAY_CC ZEND_FILE_LINE_ORIG_RELAY_CC);
}
ZEND_API void* ZEND_FASTCALL _safe_realloc(void *ptr, size_t nmemb, size_t size, size_t offset)
{
- return perealloc(ptr, zend_safe_address_guarded(nmemb, size, offset), 1);
+ size_t actual_size;
+ ZEND_MM_SAFE_ADDRESS_GUARDED(actual_size, nmemb, size, offset);
+ return perealloc(ptr, actual_size, 1);
}
ZEND_API void* ZEND_FASTCALL _ecalloc(size_t nmemb, size_t size ZEND_FILE_LINE_DC ZEND_FILE_LINE_ORIG_DC)
{
void *p;
+ size_t actual_size;
+ ZEND_MM_SAFE_ADDRESS_GUARDED(actual_size, nmemb, size, 0);
- size = zend_safe_address_guarded(nmemb, size, 0);
- p = _emalloc(size ZEND_FILE_LINE_RELAY_CC ZEND_FILE_LINE_ORIG_RELAY_CC);
- memset(p, 0, size);
+ p = _emalloc(actual_size ZEND_FILE_LINE_RELAY_CC ZEND_FILE_LINE_ORIG_RELAY_CC);
+ memset(p, 0, actual_size);
return p;
}
@@ -2816,7 +2975,8 @@
length = strlen(s);
if (UNEXPECTED(length + 1 == 0)) {
- zend_error_noreturn(E_ERROR, "Possible integer overflow in memory allocation (1 * %zu + 1)", length);
+ zend_mm_delayed_error_or_panic(AG(mm_heap)->fallible, "Possible integer overflow in memory allocation (1 * %zu + 1)", length);
+ return NULL;
}
p = (char *) _emalloc(length + 1 ZEND_FILE_LINE_RELAY_CC ZEND_FILE_LINE_ORIG_RELAY_CC);
memcpy(p, s, length+1);
@@ -2828,7 +2988,8 @@
char *p;
if (UNEXPECTED(length + 1 == 0)) {
- zend_error_noreturn(E_ERROR, "Possible integer overflow in memory allocation (1 * %zu + 1)", length);
+ zend_mm_delayed_error_or_panic(AG(mm_heap)->fallible, "Possible integer overflow in memory allocation (1 * %zu + 1)", length);
+ return NULL;
}
p = (char *) _emalloc(length + 1 ZEND_FILE_LINE_RELAY_CC ZEND_FILE_LINE_ORIG_RELAY_CC);
memcpy(p, s, length);
@@ -2836,14 +2997,13 @@
return p;
}
-static ZEND_COLD ZEND_NORETURN void zend_out_of_memory(void);
-
ZEND_API char* ZEND_FASTCALL zend_strndup(const char *s, size_t length)
{
char *p;
if (UNEXPECTED(length + 1 == 0)) {
- zend_error_noreturn(E_ERROR, "Possible integer overflow in memory allocation (1 * %zu + 1)", length);
+ zend_mm_delayed_error_or_panic(AG(mm_heap)->fallible, "Possible integer overflow in memory allocation (1 * %zu + 1)", length);
+ return NULL;
}
p = (char *) malloc(length + 1);
if (UNEXPECTED(p == NULL)) {
@@ -2856,11 +3016,119 @@
return p;
}
+/* Fallible allocation */
+
+#define ZEND_MM_FALLIBLE_FORWARD(expr) do { \
+ bool __was_fallible = AG(mm_heap)->fallible; \
+ AG(mm_heap)->fallible = true; \
+ void *__result = (expr); \
+ AG(mm_heap)->fallible = __was_fallible; \
+ return __result; \
+ } while (0)
+
+ZEND_API void* ZEND_FASTCALL _femalloc(size_t size ZEND_FILE_LINE_DC ZEND_FILE_LINE_ORIG_DC)
+{
+ ZEND_MM_FALLIBLE_FORWARD(_emalloc(size ZEND_FILE_LINE_RELAY_CC ZEND_FILE_LINE_ORIG_RELAY_CC));
+}
+
+ZEND_API void* ZEND_FASTCALL _fecalloc(size_t nmemb, size_t size ZEND_FILE_LINE_DC ZEND_FILE_LINE_ORIG_DC)
+{
+ void *p = _safe_femalloc(nmemb, size, 0 ZEND_FILE_LINE_RELAY_CC ZEND_FILE_LINE_ORIG_RELAY_CC);
+
+ if (!p) {
+ return NULL;
+ }
+
+ memset(p, 0, nmemb * size);
+ return p;
+}
+
+ZEND_API void* ZEND_FASTCALL _ferealloc(void *ptr, size_t size ZEND_FILE_LINE_DC ZEND_FILE_LINE_ORIG_DC)
+{
+ ZEND_MM_FALLIBLE_FORWARD(_erealloc(ptr, size ZEND_FILE_LINE_RELAY_CC ZEND_FILE_LINE_ORIG_RELAY_CC));
+}
+
+ZEND_API void* ZEND_FASTCALL _ferealloc2(void *ptr, size_t size, size_t copy_size ZEND_FILE_LINE_DC ZEND_FILE_LINE_ORIG_DC)
+{
+ ZEND_MM_FALLIBLE_FORWARD(_erealloc2(ptr, size, copy_size ZEND_FILE_LINE_RELAY_CC ZEND_FILE_LINE_ORIG_RELAY_CC));
+}
+
+ZEND_API void* ZEND_FASTCALL _safe_femalloc(size_t nmemb, size_t size, size_t offset ZEND_FILE_LINE_DC ZEND_FILE_LINE_ORIG_DC)
+{
+ ZEND_MM_FALLIBLE_FORWARD(_safe_emalloc(nmemb, size, offset ZEND_FILE_LINE_RELAY_CC ZEND_FILE_LINE_ORIG_RELAY_CC));
+}
+
+ZEND_API void* ZEND_FASTCALL _safe_ferealloc(void *ptr, size_t nmemb, size_t size, size_t offset ZEND_FILE_LINE_DC ZEND_FILE_LINE_ORIG_DC)
+{
+ ZEND_MM_FALLIBLE_FORWARD(_safe_erealloc(ptr, nmemb, size, offset ZEND_FILE_LINE_RELAY_CC ZEND_FILE_LINE_ORIG_RELAY_CC));
+}
+
+#if ZEND_MM_LIMIT
+static size_t scale_by_percent(size_t value, zend_long percent)
+{
+ if (percent <= 0) {
+ return 0;
+ }
+
+ size_t p = (size_t)percent;
+ size_t q = value / 100;
+ size_t r = value % 100;
+
+ if (q > SIZE_MAX / p) {
+ return SIZE_MAX;
+ }
+
+ size_t hi = q * p;
+ size_t lo = r * (p / 100) + r * (p % 100) / 100;
+
+ if (hi > SIZE_MAX - lo) {
+ return SIZE_MAX;
+ }
+ return hi + lo;
+}
+
+static void zend_mm_update_hard_limit(zend_mm_heap *heap)
+{
+ ZEND_ASSERT(heap->real_size <= heap->limit);
+
+ zend_long percent = heap->hard_limit_percent;
+
+ if (percent == -1) {
+ /* For memory limit >= 1G, use a fixed 1G buffer */
+ if (heap->limit > 1*1024*1024*1024) {
+ size_t offset = 1*1024*1024*1024;
+ if (ZEND_MM_LIMIT_MAX - heap->limit < offset) {
+ heap->hard_limit = ZEND_MM_LIMIT_MAX;
+ } else {
+ heap->hard_limit = heap->limit + offset;
+ }
+ ZEND_ASSERT(heap->hard_limit >= heap->real_size);
+ return;
+ }
+ percent = 200;
+ }
+
+ ZEND_ASSERT(percent >= 100);
+
+ size_t hard_limit = scale_by_percent(heap->limit, percent);
+ if (hard_limit > ZEND_MM_LIMIT_MAX) {
+ hard_limit = ZEND_MM_LIMIT_MAX;
+ }
+
+ heap->hard_limit = hard_limit;
+ ZEND_ASSERT(heap->hard_limit >= heap->real_size);
+}
+#endif
+
ZEND_API zend_result zend_set_memory_limit(size_t memory_limit)
{
#if ZEND_MM_LIMIT
zend_mm_heap *heap = AG(mm_heap);
+ if (memory_limit > ZEND_MM_LIMIT_MAX) {
+ memory_limit = ZEND_MM_LIMIT_MAX;
+ }
+
if (UNEXPECTED(memory_limit < heap->real_size)) {
if (memory_limit >= heap->real_size - heap->cached_chunks_count * ZEND_MM_CHUNK_SIZE) {
/* free some cached chunks to fit into new memory limit */
@@ -2871,11 +3139,34 @@
heap->cached_chunks_count--;
heap->real_size -= ZEND_MM_CHUNK_SIZE;
} while (memory_limit < heap->real_size);
+ heap->limit = memory_limit;
+ zend_mm_update_hard_limit(heap);
return SUCCESS;
}
return FAILURE;
}
- AG(mm_heap)->limit = memory_limit;
+ heap->limit = memory_limit;
+ zend_mm_update_hard_limit(heap);
+#endif
+ return SUCCESS;
+}
+
+ZEND_API zend_result zend_set_memory_hard_limit_percent(zend_long percent)
+{
+#if ZEND_MM_LIMIT
+ zend_mm_heap *heap = AG(mm_heap);
+
+ if (percent < 100 && percent != -1) {
+ return FAILURE;
+ }
+
+ if (heap->real_size > heap->limit) {
+ /* Do not update memory limits while the soft limit is exceeded, as this
+ * could break invariant hard_limit >= real_size. */
+ return FAILURE;
+ }
+ heap->hard_limit_percent = percent;
+ zend_mm_update_hard_limit(heap);
#endif
return SUCCESS;
}
@@ -2922,6 +3213,19 @@
#endif
}
+ZEND_API void zend_mm_set_max_allocs(uint64_t max_allocs)
+{
+#if ZEND_MM_CUSTOM
+ AG(mm_heap)->max_allocs = max_allocs;
+ zend_mm_max_allocs_reached = false;
+#endif
+}
+
+ZEND_API bool zend_mm_max_allocs_hit(void)
+{
+ return zend_mm_max_allocs_reached;
+}
+
ZEND_API void shutdown_memory_manager(bool silent, bool full_shutdown)
{
zend_mm_shutdown(AG(mm_heap), full_shutdown, silent);
@@ -2949,26 +3253,50 @@
return size_zv;
}
-static zend_always_inline void tracked_check_limit(zend_mm_heap *heap, size_t add_size) {
-#if ZEND_MM_STAT
- if (add_size > heap->limit - heap->size && !heap->overflow) {
+static zend_always_inline zend_result tracked_check_limit(zend_mm_heap *heap, size_t add_size ZEND_FILE_LINE_DC) {
+ return zend_mm_check_limit(heap, add_size, /* gc */ false, NULL ZEND_FILE_LINE_RELAY_CC);
+}
+
+/* ZEND_MM_MAX_ALLOCS fails the n-th allocation of the request in the same way
+ * as the memory limit would, so that the OOM handling can be exercised at an
+ * arbitrary allocation rather than only at the ones large enough to reach the
+ * limit. */
+static zend_never_inline ZEND_COLD zend_result tracked_max_allocs_error(zend_mm_heap *heap, size_t add_size ZEND_FILE_LINE_DC) {
+ zend_mm_max_allocs_reached = true;
+
+ if (!ZEND_HAS_OOM()) {
+ zend_mm_delayed_error(
#if ZEND_DEBUG
- zend_mm_safe_error(heap,
- "Allowed memory size of %zu bytes exhausted at %s:%d (tried to allocate %zu bytes)",
- heap->limit, "file", 0, add_size);
+ "Allowed memory size of %zu bytes exhausted at %s:%d (tried to allocate %zu bytes)",
#else
- zend_mm_safe_error(heap,
- "Allowed memory size of %zu bytes exhausted (tried to allocate %zu bytes)",
- heap->limit, add_size);
+ "Allowed memory size of %zu bytes exhausted (tried to allocate %zu bytes)",
#endif
+ heap->limit
+ ZEND_FILE_LINE_RELAY_CC,
+ add_size);
}
-#endif
+
+ return heap->fallible ? FAILURE : SUCCESS;
+}
+
+static zend_always_inline zend_result tracked_check_max_allocs(zend_mm_heap *heap, size_t add_size ZEND_FILE_LINE_DC) {
+ if (UNEXPECTED(heap->max_allocs && !--heap->max_allocs)) {
+ return tracked_max_allocs_error(heap, add_size ZEND_FILE_LINE_RELAY_CC);
+ }
+
+ return SUCCESS;
}
static void *tracked_malloc(size_t size ZEND_FILE_LINE_DC ZEND_FILE_LINE_ORIG_DC)
{
zend_mm_heap *heap = AG(mm_heap);
- tracked_check_limit(heap, size);
+ if (UNEXPECTED(tracked_check_limit(heap, size ZEND_FILE_LINE_CC) == FAILURE)) {
+ return NULL;
+ }
+
+ if (UNEXPECTED(tracked_check_max_allocs(heap, size ZEND_FILE_LINE_CC) == FAILURE)) {
+ return NULL;
+ }
void *ptr = malloc(size);
if (!ptr) {
@@ -3008,7 +3336,13 @@
}
if (new_size > old_size) {
- tracked_check_limit(heap, new_size - old_size);
+ if (UNEXPECTED(tracked_check_limit(heap, new_size - old_size ZEND_FILE_LINE_CC) == FAILURE)) {
+ return NULL;
+ }
+
+ if (UNEXPECTED(tracked_check_max_allocs(heap, new_size - old_size ZEND_FILE_LINE_CC) == FAILURE)) {
+ return NULL;
+ }
}
/* Delete information about old allocation only after checking the memory limit. */
@@ -3046,8 +3380,11 @@
zend_mm_heap *mm_heap = alloc_globals->mm_heap = malloc(sizeof(zend_mm_heap));
memset(mm_heap, 0, sizeof(zend_mm_heap));
mm_heap->use_custom_heap = ZEND_MM_CUSTOM_HEAP_STD;
- mm_heap->limit = (size_t)Z_L(-1) >> 1;
+ mm_heap->limit = ZEND_MM_LIMIT_MAX;
+ mm_heap->hard_limit = ZEND_MM_LIMIT_MAX;
+ mm_heap->hard_limit_percent = -1;
mm_heap->overflow = 0;
+ mm_heap->fallible = false;
if (!tracked) {
/* Use system allocator. */
@@ -3110,6 +3447,16 @@
return AG(mm_heap);
}
+ZEND_API bool zend_mm_is_fallible(void)
+{
+ return AG(mm_heap)->fallible;
+}
+
+ZEND_API void zend_mm_set_fallible(bool fallible)
+{
+ AG(mm_heap)->fallible = fallible;
+}
+
ZEND_API bool zend_mm_is_custom_heap(zend_mm_heap *new_heap)
{
#if ZEND_MM_CUSTOM
@@ -3219,12 +3566,14 @@
ZEND_API zend_mm_heap *zend_mm_startup_ex(const zend_mm_handlers *handlers, void *data, size_t data_size)
{
#if ZEND_MM_STORAGE
- zend_mm_storage tmp_storage, *storage;
+ zend_mm_storage *storage;
+ zend_mm_storage tmp_storage = {
+ .handlers = *handlers,
+ .data = data,
+ };
zend_mm_chunk *chunk;
zend_mm_heap *heap;
- memcpy((zend_mm_handlers*)&tmp_storage.handlers, handlers, sizeof(zend_mm_handlers));
- tmp_storage.data = data;
chunk = (zend_mm_chunk*)handlers->chunk_alloc(&tmp_storage, ZEND_MM_CHUNK_SIZE, ZEND_MM_CHUNK_SIZE);
if (UNEXPECTED(chunk == NULL)) {
#if ZEND_MM_ERROR
@@ -3259,8 +3608,9 @@
#endif
zend_mm_init_key(heap);
#if ZEND_MM_LIMIT
- heap->limit = (size_t)Z_L(-1) >> 1;
+ heap->limit = ZEND_MM_LIMIT_MAX;
heap->overflow = 0;
+ heap->fallible = false;
#endif
#if ZEND_MM_CUSTOM
heap->use_custom_heap = 0;
@@ -3289,6 +3639,60 @@
#endif
}
+ZEND_API void ZEND_FASTCALL zend_handle_delayed_oom(void)
+{
+ zend_oom_info *info = &EG(delayed_oom);
+ zend_execute_data *execute_data = EG(current_execute_data);
+
+ if (info->state != ZEND_OOM_STATE_PENDING) {
+ return;
+ }
+ info->state = ZEND_OOM_STATE_HANDLING;
+
+ AG(mm_heap)->overflow = 1;
+
+ /* message was allocated persistently, use emalloc() now as error_get_last()
+ * may expose it to userland. */
+ zend_string *message = zend_string_init(ZSTR_VAL(info->message), ZSTR_LEN(info->message), 0);
+ zend_string_release(info->message);
+ info->message = message;
+
+ if (execute_data) {
+ /* An exception may already be in flight, and zend_throw_unwind_exit()
+ * does not allow that */
+ EG(exception) = NULL;
+
+ /* Object allocation should succeed unless it trips the hard limit */
+ zend_throw_unwind_exit();
+ }
+
+ zend_try {
+ zend_error_zstr_at(E_ERROR, info->filename, info->lineno, info->message);
+ } zend_catch {
+ } zend_end_try();
+
+ AG(mm_heap)->overflow = 0;
+
+ /* Bailout discards EG(current_execute_data). Would be better to avoid the bailout here. */
+ EG(current_execute_data) = execute_data;
+
+ /* This function may be called from the VM interrupt handler: opline is not
+ * executed yet. Set opline_before_exception to NULL so
+ * ZEND_HANDLE_EXCEPTION does not use it. */
+ EG(opline_before_exception) = NULL;
+
+ zend_mm_oom_info_dtor(info);
+ info->state = ZEND_OOM_STATE_HANDLED;
+
+ /* No userland frame to unwind: there is nothing to restore afterwards
+ * and no exception to throw, so catching the bailout here would just
+ * let the request carry on past a fatal error. Let it propagate and
+ * abort the request, the way an immediate OOM does. */
+ if (!execute_data) {
+ zend_bailout();
+ }
+}
+
ZEND_API void * __zend_malloc(size_t len ZEND_FILE_LINE_DC ZEND_FILE_LINE_ORIG_DC)
{
void *tmp = malloc(len);
@@ -3301,10 +3705,11 @@
ZEND_API void * __zend_calloc(size_t nmemb, size_t len ZEND_FILE_LINE_DC ZEND_FILE_LINE_ORIG_DC)
{
void *tmp;
+ size_t actual_size;
+ ZEND_MM_SAFE_ADDRESS_GUARDED(actual_size, nmemb, len, 0);
- len = zend_safe_address_guarded(nmemb, len, 0);
- tmp = __zend_malloc(len ZEND_FILE_LINE_RELAY_CC ZEND_FILE_LINE_ORIG_RELAY_CC);
- memset(tmp, 0, len);
+ tmp = __zend_malloc(actual_size ZEND_FILE_LINE_RELAY_CC ZEND_FILE_LINE_ORIG_RELAY_CC);
+ memset(tmp, 0, actual_size);
return tmp;
}
diff -Nru php8.4-8.4.26/Zend/zend_alloc.h php8.4-8.4.27/Zend/zend_alloc.h
--- php8.4-8.4.26/Zend/zend_alloc.h 2026-09-22 15:00:02.000000000 +0000
+++ php8.4-8.4.27/Zend/zend_alloc.h 2026-10-19 14:38:59.000000000 +0000
@@ -37,6 +37,20 @@
#define ZEND_MM_ALIGNED_SIZE_EX(size, alignment) \
(((size) + ((alignment) - 1)) & ~((alignment) - 1))
+typedef enum _zend_oom_state {
+ ZEND_OOM_STATE_NONE = 0,
+ ZEND_OOM_STATE_PENDING,
+ ZEND_OOM_STATE_HANDLING,
+ ZEND_OOM_STATE_HANDLED
+} zend_oom_state;
+
+typedef struct _zend_oom_info {
+ zend_oom_state state;
+ uint32_t lineno;
+ zend_string *message;
+ zend_string *filename;
+} zend_oom_info;
+
typedef struct _zend_leak_info {
void *addr;
size_t size;
@@ -46,6 +60,8 @@
uint32_t orig_lineno;
} zend_leak_info;
+#define ZEND_HAS_OOM() (UNEXPECTED(EG(delayed_oom).state != ZEND_OOM_STATE_NONE))
+
#if ZEND_DEBUG
typedef struct _zend_mm_debug_info {
size_t size;
@@ -215,7 +231,40 @@
#define perealloc2_recoverable_rel(ptr, size, copy_size, persistent) ((persistent)?realloc((ptr), (size)):erealloc2_recoverable_rel((ptr), (size), (copy_size)))
#define pestrdup_rel(s, persistent) ((persistent)?strdup(s):estrdup_rel(s))
+/* Fallible allocation.
+ * These functions return NULL if allocation would exceed memory limit. */
+
+ZEND_API ZEND_ATTRIBUTE_MALLOC void* ZEND_FASTCALL _femalloc(size_t size ZEND_FILE_LINE_DC ZEND_FILE_LINE_ORIG_DC) ZEND_ATTRIBUTE_ALLOC_SIZE(1);
+ZEND_API ZEND_ATTRIBUTE_MALLOC void* ZEND_FASTCALL _fecalloc(size_t nmemb, size_t size ZEND_FILE_LINE_DC ZEND_FILE_LINE_ORIG_DC) ZEND_ATTRIBUTE_ALLOC_SIZE2(1,2);
+ZEND_API void* ZEND_FASTCALL _ferealloc(void *ptr, size_t size ZEND_FILE_LINE_DC ZEND_FILE_LINE_ORIG_DC) ZEND_ATTRIBUTE_ALLOC_SIZE(2);
+ZEND_API void* ZEND_FASTCALL _ferealloc2(void *ptr, size_t size, size_t copy_size ZEND_FILE_LINE_DC ZEND_FILE_LINE_ORIG_DC) ZEND_ATTRIBUTE_ALLOC_SIZE(2);
+ZEND_API ZEND_ATTRIBUTE_MALLOC void* ZEND_FASTCALL _safe_femalloc(size_t nmemb, size_t size, size_t offset ZEND_FILE_LINE_DC ZEND_FILE_LINE_ORIG_DC);
+ZEND_API void* ZEND_FASTCALL _safe_ferealloc(void *ptr, size_t nmemb, size_t size, size_t offset ZEND_FILE_LINE_DC ZEND_FILE_LINE_ORIG_DC);
+
+#define femalloc(size, fallible) \
+ ((fallible)?_femalloc((size) ZEND_FILE_LINE_CC ZEND_FILE_LINE_EMPTY_CC):_emalloc((size) ZEND_FILE_LINE_CC ZEND_FILE_LINE_EMPTY_CC))
+#define fecalloc(nmemb, size, fallible) \
+ ((fallible)?_fecalloc((nmemb), (size) ZEND_FILE_LINE_CC ZEND_FILE_LINE_EMPTY_CC):_ecalloc((nmemb), (size) ZEND_FILE_LINE_CC ZEND_FILE_LINE_EMPTY_CC))
+#define ferealloc(ptr, size, fallible) \
+ ((fallible)?_ferealloc((ptr), (size) ZEND_FILE_LINE_CC ZEND_FILE_LINE_EMPTY_CC):_erealloc((ptr), (size) ZEND_FILE_LINE_CC ZEND_FILE_LINE_EMPTY_CC))
+#define ferealloc2(ptr, size, copy_size, fallible) \
+ ((fallible)?_ferealloc2((ptr), (size), (copy_size) ZEND_FILE_LINE_CC ZEND_FILE_LINE_EMPTY_CC):_erealloc2((ptr), (size), (copy_size) ZEND_FILE_LINE_CC ZEND_FILE_LINE_EMPTY_CC))
+#define safe_femalloc(nmemb, size, offset, fallible) \
+ ((fallible)?_safe_femalloc((nmemb), (size), (offset) ZEND_FILE_LINE_CC ZEND_FILE_LINE_EMPTY_CC):_safe_emalloc((nmemb), (size), (offset) ZEND_FILE_LINE_CC ZEND_FILE_LINE_EMPTY_CC))
+#define safe_ferealloc(ptr, nmemb, size, offset, fallible) \
+ ((fallible)?_safe_ferealloc((ptr), (nmemb), (size), (offset) ZEND_FILE_LINE_CC ZEND_FILE_LINE_EMPTY_CC):_safe_erealloc((ptr), (nmemb), (size), (offset) ZEND_FILE_LINE_CC ZEND_FILE_LINE_EMPTY_CC))
+
+#define fpemalloc(size, persistent, fallible) \
+ ((persistent)?__zend_malloc(size ZEND_FILE_LINE_CC ZEND_FILE_LINE_EMPTY_CC):femalloc(size, fallible))
+#define fperealloc(ptr, size, persistent, fallible) ((persistent)?__zend_realloc((ptr), (size) ZEND_FILE_LINE_CC ZEND_FILE_LINE_EMPTY_CC):ferealloc((ptr), (size), (fallible)))
+#define fperealloc2(ptr, size, copy_size, persistent, fallible) ((persistent)?__zend_realloc((ptr), (size) ZEND_FILE_LINE_CC ZEND_FILE_LINE_EMPTY_CC):ferealloc2((ptr), (size), (copy_size), (fallible)))
+#define safe_fpemalloc(nmemb, size, offset, persistent, fallible) \
+ ((persistent)?_safe_malloc(nmemb, size, offset):safe_femalloc(nmemb, size, offset, fallible))
+#define safe_fperealloc(ptr, nmemb, size, offset, persistent, fallible) \
+ ((persistent)?_safe_realloc(ptr, nmemb, size, offset):safe_ferealloc(ptr, nmemb, size, offset, fallible))
+
ZEND_API zend_result zend_set_memory_limit(size_t memory_limit);
+ZEND_API zend_result zend_set_memory_hard_limit_percent(zend_long percent);
ZEND_API bool zend_alloc_in_memory_limit_error_reporting(void);
ZEND_API void start_memory_manager(void);
@@ -268,6 +317,9 @@
ZEND_API size_t zend_mm_gc(zend_mm_heap *heap);
+ZEND_API bool zend_mm_is_fallible(void);
+ZEND_API void zend_mm_set_fallible(bool fallible);
+
#define ZEND_MM_CUSTOM_HEAP_NONE 0
#define ZEND_MM_CUSTOM_HEAP_STD 1
#define ZEND_MM_CUSTOM_HEAP_DEBUG 2
@@ -316,6 +368,17 @@
ZEND_API zend_mm_storage *zend_mm_get_storage(zend_mm_heap *heap);
ZEND_API zend_mm_heap *zend_mm_startup_ex(const zend_mm_handlers *handlers, void *data, size_t data_size);
+ZEND_API ZEND_COLD void zend_mm_delayed_error_or_panic(bool delay, const char *format, ...) ZEND_ATTRIBUTE_FORMAT(printf, 2, 3);
+ZEND_API void ZEND_FASTCALL zend_handle_delayed_oom(void);
+ZEND_COLD void zend_mm_oom_info_dtor(zend_oom_info *info);
+
+/* Exit status of a process that stopped because of ZEND_MM_MAX_ALLOCS, so that
+ * it can be told apart from an ordinary fatal error. */
+#define ZEND_MM_MAX_ALLOCS_EXIT_STATUS 121
+
+ZEND_API void zend_mm_set_max_allocs(uint64_t max_allocs);
+ZEND_API bool zend_mm_max_allocs_hit(void);
+
/*
// The following example shows how to use zend_mm_heap API with custom storage
diff -Nru php8.4-8.4.26/Zend/zend_atomic.h php8.4-8.4.27/Zend/zend_atomic.h
--- php8.4-8.4.26/Zend/zend_atomic.h 2026-09-22 15:00:02.000000000 +0000
+++ php8.4-8.4.27/Zend/zend_atomic.h 2026-10-19 14:38:59.000000000 +0000
@@ -385,6 +385,23 @@
ZEND_API int zend_atomic_int_load(const zend_atomic_int *obj);
#endif
+#if defined(HAVE_C11_ATOMICS)
+# define ZEND_ATOMIC_FENCE_RELEASE() __c11_atomic_thread_fence(__ATOMIC_RELEASE)
+# define ZEND_ATOMIC_FENCE_ACQUIRE() __c11_atomic_thread_fence(__ATOMIC_ACQUIRE)
+#elif defined(HAVE_GNUC_ATOMICS)
+# define ZEND_ATOMIC_FENCE_RELEASE() __atomic_thread_fence(__ATOMIC_RELEASE)
+# define ZEND_ATOMIC_FENCE_ACQUIRE() __atomic_thread_fence(__ATOMIC_ACQUIRE)
+#elif defined(HAVE_SYNC_ATOMICS)
+# define ZEND_ATOMIC_FENCE_RELEASE() __sync_synchronize()
+# define ZEND_ATOMIC_FENCE_ACQUIRE() __sync_synchronize()
+#elif defined(ZEND_WIN32)
+# define ZEND_ATOMIC_FENCE_RELEASE() MemoryBarrier()
+# define ZEND_ATOMIC_FENCE_ACQUIRE() MemoryBarrier()
+#else
+# define ZEND_ATOMIC_FENCE_RELEASE() ((void)0)
+# define ZEND_ATOMIC_FENCE_ACQUIRE() ((void)0)
+#endif
+
END_EXTERN_C()
#endif
diff -Nru php8.4-8.4.26/Zend/zend_attributes.c php8.4-8.4.27/Zend/zend_attributes.c
--- php8.4-8.4.26/Zend/zend_attributes.c 2026-09-22 15:00:02.000000000 +0000
+++ php8.4-8.4.27/Zend/zend_attributes.c 2026-10-19 14:38:59.000000000 +0000
@@ -121,6 +121,12 @@
ZEND_PARSE_PARAMETERS_NONE();
}
+void zend_sensitive_parameter_value_init(zend_object *obj, zval *value)
+{
+ ZEND_ASSERT(obj->ce == zend_ce_sensitive_parameter_value);
+ zend_update_property_ex(zend_ce_sensitive_parameter_value, obj, ZSTR_KNOWN(ZEND_STR_VALUE), value);
+}
+
ZEND_METHOD(SensitiveParameterValue, __construct)
{
zval *value;
@@ -129,7 +135,7 @@
Z_PARAM_ZVAL(value)
ZEND_PARSE_PARAMETERS_END();
- zend_update_property_ex(zend_ce_sensitive_parameter_value, Z_OBJ_P(ZEND_THIS), ZSTR_KNOWN(ZEND_STR_VALUE), value);
+ zend_sensitive_parameter_value_init(Z_OBJ_P(ZEND_THIS), value);
}
ZEND_METHOD(SensitiveParameterValue, getValue)
diff -Nru php8.4-8.4.26/Zend/zend_attributes.h php8.4-8.4.27/Zend/zend_attributes.h
--- php8.4-8.4.26/Zend/zend_attributes.h 2026-09-22 15:00:02.000000000 +0000
+++ php8.4-8.4.27/Zend/zend_attributes.h 2026-10-19 14:38:59.000000000 +0000
@@ -127,4 +127,6 @@
void zend_register_attribute_ce(void);
void zend_attributes_shutdown(void);
+void zend_sensitive_parameter_value_init(zend_object *obj, zval *value);
+
#endif
diff -Nru php8.4-8.4.26/Zend/zend_builtin_functions.c php8.4-8.4.27/Zend/zend_builtin_functions.c
--- php8.4-8.4.26/Zend/zend_builtin_functions.c 2026-09-22 15:00:02.000000000 +0000
+++ php8.4-8.4.27/Zend/zend_builtin_functions.c 2026-10-19 14:38:59.000000000 +0000
@@ -1664,7 +1664,7 @@
}
/* }}} */
-static void debug_backtrace_get_args(zend_execute_data *call, zval *arg_array) /* {{{ */
+static bool debug_backtrace_get_args(zend_execute_data *call, zval *arg_array) /* {{{ */
{
uint32_t num_args = ZEND_CALL_NUM_ARGS(call);
@@ -1672,8 +1672,9 @@
uint32_t i = 0;
zval *p = ZEND_CALL_ARG(call, 1);
- array_init_size(arg_array, num_args);
- zend_hash_real_init_packed(Z_ARRVAL_P(arg_array));
+ if (!array_finit_size_packed(arg_array, num_args)) {
+ return false;
+ }
ZEND_HASH_FILL_PACKED(Z_ARRVAL_P(arg_array)) {
if (call->func->type == ZEND_USER_FUNCTION) {
uint32_t first_extra_arg = MIN(num_args, call->func->op_array.num_args);
@@ -1706,8 +1707,13 @@
if (is_sensitive) {
zval redacted_arg;
object_init_ex(&redacted_arg, zend_ce_sensitive_parameter_value);
- zend_call_known_function(Z_OBJCE_P(&redacted_arg)->constructor, Z_OBJ_P(&redacted_arg), Z_OBJCE_P(&redacted_arg), NULL, 1, &original_arg, NULL);
+ zend_sensitive_parameter_value_init(Z_OBJ(redacted_arg), &original_arg);
ZEND_HASH_FILL_SET(&redacted_arg);
+ if (ZEND_HAS_OOM()) {
+ zval_ptr_dtor(&redacted_arg);
+ ZEND_HASH_FILL_FINISH();
+ goto oom;
+ }
} else {
Z_TRY_ADDREF_P(&original_arg);
ZEND_HASH_FILL_SET(&original_arg);
@@ -1738,8 +1744,13 @@
if (is_sensitive) {
zval redacted_arg;
object_init_ex(&redacted_arg, zend_ce_sensitive_parameter_value);
- zend_call_known_function(Z_OBJCE_P(&redacted_arg)->constructor, Z_OBJ_P(&redacted_arg), Z_OBJCE_P(&redacted_arg), NULL, 1, &original_arg, NULL);
+ zend_sensitive_parameter_value_init(Z_OBJ(redacted_arg), &original_arg);
ZEND_HASH_FILL_SET(&redacted_arg);
+ if (ZEND_HAS_OOM()) {
+ zval_ptr_dtor(&redacted_arg);
+ ZEND_HASH_FILL_FINISH();
+ goto oom;
+ }
} else {
Z_TRY_ADDREF_P(&original_arg);
ZEND_HASH_FILL_SET(&original_arg);
@@ -1778,8 +1789,13 @@
if (is_sensitive) {
zval redacted_arg;
object_init_ex(&redacted_arg, zend_ce_sensitive_parameter_value);
- zend_call_known_function(Z_OBJCE_P(&redacted_arg)->constructor, Z_OBJ_P(&redacted_arg), Z_OBJCE_P(&redacted_arg), NULL, 1, &original_arg, NULL);
+ zend_sensitive_parameter_value_init(Z_OBJ(redacted_arg), &original_arg);
ZEND_HASH_FILL_SET(&redacted_arg);
+ if (ZEND_HAS_OOM()) {
+ zval_ptr_dtor(&redacted_arg);
+ ZEND_HASH_FILL_FINISH();
+ goto oom;
+ }
} else {
Z_TRY_ADDREF_P(&original_arg);
ZEND_HASH_FILL_SET(&original_arg);
@@ -1814,17 +1830,28 @@
SEPARATE_ARRAY(arg_array);
ZEND_HASH_MAP_FOREACH_STR_KEY_VAL(call->extra_named_params, name, arg) {
ZVAL_DEREF(arg);
+ zval *add_result;
if (is_sensitive) {
zval redacted_arg;
object_init_ex(&redacted_arg, zend_ce_sensitive_parameter_value);
- zend_call_method_with_1_params(Z_OBJ_P(&redacted_arg), zend_ce_sensitive_parameter_value, &zend_ce_sensitive_parameter_value->constructor, "__construct", NULL, arg);
- zend_hash_add_new(Z_ARRVAL_P(arg_array), name, &redacted_arg);
+ zend_sensitive_parameter_value_init(Z_OBJ(redacted_arg), arg);
+ add_result = zend_hash_fadd_new(Z_ARRVAL_P(arg_array), name, &redacted_arg);
} else {
Z_TRY_ADDREF_P(arg);
- zend_hash_add_new(Z_ARRVAL_P(arg_array), name, arg);
+ add_result = zend_hash_fadd_new(Z_ARRVAL_P(arg_array), name, arg);
+ }
+ if (UNEXPECTED(add_result == HASH_NOMEM)) {
+ goto oom;
}
} ZEND_HASH_FOREACH_END();
}
+
+ return true;
+
+oom:
+ zval_ptr_dtor(arg_array);
+ ZVAL_EMPTY_ARRAY(arg_array);
+ return false;
}
/* }}} */
@@ -2086,7 +2113,11 @@
if ((options & DEBUG_BACKTRACE_IGNORE_ARGS) == 0 &&
func->type != ZEND_EVAL_CODE) {
- debug_backtrace_get_args(call, &tmp);
+ if (UNEXPECTED(!debug_backtrace_get_args(call, &tmp))) {
+ ZEND_ASSERT(ZEND_HAS_OOM());
+ zend_array_destroy(stack_frame);
+ return;
+ }
_zend_hash_append_ex(stack_frame, ZSTR_KNOWN(ZEND_STR_ARGS), &tmp, 1);
}
} else {
@@ -2146,11 +2177,18 @@
}
ZVAL_ARR(&tmp, stack_frame);
- zend_hash_next_index_insert_new(Z_ARRVAL_P(return_value), &tmp);
+ if (UNEXPECTED(zend_hash_next_index_finsert_new(Z_ARRVAL_P(return_value), &tmp) == HASH_NOMEM)) {
+ zend_array_destroy(stack_frame);
+ return;
+ }
frameno++;
prev_stack_frame = stack_frame;
skip_frame:
+ if (ZEND_HAS_OOM()) {
+ return;
+ }
+
if (UNEXPECTED(ZEND_CALL_KIND(call) == ZEND_CALL_TOP_FUNCTION)
&& !fake_frame
&& prev
diff -Nru php8.4-8.4.26/Zend/zend_compile.c php8.4-8.4.27/Zend/zend_compile.c
--- php8.4-8.4.26/Zend/zend_compile.c 2026-09-22 15:00:02.000000000 +0000
+++ php8.4-8.4.27/Zend/zend_compile.c 2026-10-19 14:38:59.000000000 +0000
@@ -459,6 +459,7 @@
CG(delayed_autoloads) = NULL;
CG(unlinked_uses) = NULL;
CG(current_linking_class) = NULL;
+ CG(interned_strings_fallible) = false;
}
/* }}} */
diff -Nru php8.4-8.4.26/Zend/zend_cpuinfo.c php8.4-8.4.27/Zend/zend_cpuinfo.c
--- php8.4-8.4.26/Zend/zend_cpuinfo.c 2026-09-22 15:00:02.000000000 +0000
+++ php8.4-8.4.27/Zend/zend_cpuinfo.c 2026-10-19 14:38:59.000000000 +0000
@@ -135,7 +135,7 @@
}
if (!is_avx_supported()) {
- cpuinfo.edx &= ~ZEND_CPU_FEATURE_AVX;
+ cpuinfo.ecx &= ~ZEND_CPU_FEATURE_AVX;
cpuinfo.ebx &= ~(ZEND_CPU_FEATURE_AVX2 & ~ZEND_CPU_EBX_MASK);
}
}
diff -Nru php8.4-8.4.26/Zend/zend_exceptions.c php8.4-8.4.27/Zend/zend_exceptions.c
--- php8.4-8.4.26/Zend/zend_exceptions.c 2026-09-22 15:00:02.000000000 +0000
+++ php8.4-8.4.27/Zend/zend_exceptions.c 2026-10-19 14:38:59.000000000 +0000
@@ -103,7 +103,9 @@
return;
}
- if (exception == add_previous || zend_is_unwind_exit(add_previous) || zend_is_graceful_exit(add_previous)) {
+ if (exception == add_previous
+ || zend_is_unwind_exit(exception) || zend_is_graceful_exit(exception)
+ || zend_is_unwind_exit(add_previous) || zend_is_graceful_exit(add_previous)) {
OBJ_RELEASE(add_previous);
return;
}
diff -Nru php8.4-8.4.26/Zend/zend_execute.c php8.4-8.4.27/Zend/zend_execute.c
--- php8.4-8.4.26/Zend/zend_execute.c 2026-09-22 15:00:02.000000000 +0000
+++ php8.4-8.4.27/Zend/zend_execute.c 2026-10-19 14:38:59.000000000 +0000
@@ -4083,6 +4083,8 @@
zend_atomic_bool_store_ex(&EG(vm_interrupt), false);
if (zend_atomic_bool_load_ex(&EG(timed_out))) {
zend_timeout();
+ } else if (ZEND_HAS_OOM()) {
+ zend_handle_delayed_oom();
} else if (zend_interrupt_function) {
zend_interrupt_function(call);
}
@@ -4673,6 +4675,18 @@
}
/* }}} */
+/* Same as cleanup_unfinished_calls(), but only free the call frames. */
+static void free_unfinished_calls(zend_execute_data *execute_data)
+{
+ zend_execute_data *call = EX(call);
+
+ while (UNEXPECTED(call != NULL)) {
+ EX(call) = call->prev_execute_data;
+ zend_vm_stack_free_call_frame(call);
+ call = EX(call);
+ }
+}
+
static void cleanup_live_vars(zend_execute_data *execute_data, uint32_t op_num, uint32_t catch_op_num) /* {{{ */
{
int i;
diff -Nru php8.4-8.4.26/Zend/zend_execute_API.c php8.4-8.4.27/Zend/zend_execute_API.c
--- php8.4-8.4.26/Zend/zend_execute_API.c 2026-09-22 15:00:02.000000000 +0000
+++ php8.4-8.4.27/Zend/zend_execute_API.c 2026-10-19 14:38:59.000000000 +0000
@@ -417,10 +417,24 @@
}
#endif
} else {
+ /* may be used by zend_error_zstr_at before init_executor */
+ ZVAL_UNDEF(&EG(user_error_handler));
+ ZVAL_UNDEF(&EG(user_exception_handler));
+ memset(&EG(user_error_handlers_error_reporting), 0, sizeof(EG(user_error_handlers_error_reporting)));
+ memset(&EG(user_error_handlers), 0, sizeof(EG(user_error_handlers)));
+ memset(&EG(user_exception_handlers), 0, sizeof(EG(user_exception_handlers)));
+
zend_hash_discard(EG(zend_constants), EG(persistent_constants_count));
}
zend_objects_store_free_object_storage(&EG(objects_store), fast_shutdown);
+
+ /* may be used by zend_error_zstr_at before init_executor */
+ EG(record_errors) = false;
+ EG(num_errors) = 0;
+ EG(errors) = NULL;
+ EG(error_handling) = EH_NORMAL;
+ EG(exception) = NULL;
}
void shutdown_executor(void) /* {{{ */
@@ -455,6 +469,8 @@
*/
zend_hash_discard(EG(function_table), EG(persistent_functions_count));
zend_hash_discard(EG(class_table), EG(persistent_classes_count));
+ EG(objects_store).object_buckets = NULL;
+ EG(objects_store).top = 1;
} else {
zend_vm_stack_destroy();
@@ -806,7 +822,11 @@
if (!EG(active)) {
return FAILURE; /* executor is already inactive */
}
-
+ if (ZEND_HAS_OOM()) {
+ /* Callers expect SUCCESS || EG(exception), so let's throw right now */
+ zend_handle_delayed_oom();
+ return FAILURE;
+ }
if (EG(exception)) {
if (fci_cache) {
zend_release_fcall_info_cache(fci_cache);
@@ -824,6 +844,12 @@
}
if (!zend_is_callable_ex(&fci->function_name, fci->object, 0, NULL, fci_cache, &error)) {
+ if (EG(exception)) {
+ if (error) {
+ efree(error);
+ }
+ return SUCCESS;
+ }
ZEND_ASSERT(error && "Should have error if not callable");
zend_string *callable_name
= zend_get_callable_name_ex(&fci->function_name, fci->object);
@@ -853,6 +879,7 @@
if (UNEXPECTED(EG(exception))) {
zend_vm_stack_free_call_frame(call);
+ zend_release_fcall_info_cache(fci_cache);
return SUCCESS;
}
}
@@ -969,6 +996,7 @@
if (zend_handle_undef_args(call) == FAILURE) {
zend_vm_stack_free_args(call);
zend_vm_stack_free_call_frame(call);
+ zend_release_fcall_info_cache(fci_cache);
return SUCCESS;
}
}
@@ -1014,7 +1042,7 @@
}
#if ZEND_DEBUG
- if (!EG(exception) && call->func) {
+ if (!EG(exception) && !ZEND_HAS_OOM() && call->func) {
if (should_throw) {
zend_internal_call_arginfo_violation(call->func);
}
@@ -1035,21 +1063,24 @@
zval_ptr_dtor(fci->retval);
ZVAL_UNDEF(fci->retval);
}
+ }
- /* This flag is regularly checked while running user functions, but not internal
- * So see whether interrupt flag was set while the function was running... */
- if (zend_atomic_bool_exchange_ex(&EG(vm_interrupt), false)) {
- if (zend_atomic_bool_load_ex(&EG(timed_out))) {
- zend_timeout();
- } else if (zend_interrupt_function) {
- zend_interrupt_function(EG(current_execute_data));
- }
+ if (UNEXPECTED(zend_atomic_bool_exchange_ex(&EG(vm_interrupt), false))) {
+ if (zend_atomic_bool_load_ex(&EG(timed_out))) {
+ zend_timeout();
+ } else if (ZEND_HAS_OOM()) {
+ zend_handle_delayed_oom();
+ zval_ptr_dtor(fci->retval);
+ ZVAL_UNDEF(fci->retval);
+ } else if (zend_interrupt_function) {
+ zend_interrupt_function(EG(current_execute_data));
}
+ }
- if (UNEXPECTED(ZEND_CALL_INFO(call) & ZEND_CALL_RELEASE_THIS)) {
- OBJ_RELEASE(Z_OBJ(call->This));
- }
+ if (UNEXPECTED(ZEND_CALL_INFO(call) & ZEND_CALL_RELEASE_THIS)) {
+ OBJ_RELEASE(Z_OBJ(call->This));
}
+
EG(fake_scope) = orig_fake_scope;
zend_vm_stack_free_call_frame(call);
diff -Nru php8.4-8.4.26/Zend/zend_gc.c php8.4-8.4.27/Zend/zend_gc.c
--- php8.4-8.4.26/Zend/zend_gc.c 2026-09-22 15:00:02.000000000 +0000
+++ php8.4-8.4.27/Zend/zend_gc.c 2026-10-19 14:38:59.000000000 +0000
@@ -1517,6 +1517,9 @@
GC_ADDREF(ht);
if (GC_REF_CHECK_COLOR(ht, GC_WHITE)) {
GC_REF_SET_BLACK(ht);
+ if (!GC_INFO(ht)) {
+ gc_add_garbage((zend_refcounted *)ht);
+ }
for (; n != 0; n--) {
if (Z_REFCOUNTED_P(zv)) {
ref = Z_COUNTED_P(zv);
@@ -1895,6 +1898,7 @@
zend_object *exception = NULL;
remember_prev_exception(&exception);
+ zend_object *old_exception = exception;
if (UNEXPECTED(!fiber)) {
fiber = gc_create_destructor_fiber();
@@ -1929,6 +1933,12 @@
}
EG(exception) = exception;
+
+ /* Destructors ran in another fiber, out of reach of zend_call_function()'s rethrow */
+ if (exception && !old_exception && EG(current_execute_data) && EG(current_execute_data)->func
+ && ZEND_USER_CODE(EG(current_execute_data)->func->common.type)) {
+ zend_rethrow_exception(EG(current_execute_data));
+ }
}
ZEND_API int zend_gc_collect_cycles(void)
diff -Nru php8.4-8.4.26/Zend/zend_globals.h php8.4-8.4.27/Zend/zend_globals.h
--- php8.4-8.4.26/Zend/zend_globals.h 2026-09-22 15:00:02.000000000 +0000
+++ php8.4-8.4.27/Zend/zend_globals.h 2026-10-19 14:38:59.000000000 +0000
@@ -27,6 +27,7 @@
#include "zend_globals_macros.h"
+#include "zend_alloc.h"
#include "zend_atomic.h"
#include "zend_stack.h"
#include "zend_ptr_stack.h"
@@ -134,6 +135,7 @@
bool multibyte;
bool detect_unicode;
bool encoding_declared;
+ bool interned_strings_fallible;
zend_ast *ast;
zend_arena *ast_arena;
@@ -315,6 +317,8 @@
zend_strtod_state strtod_state;
void *reserved[ZEND_MAX_RESERVED_RESOURCES];
+
+ zend_oom_info delayed_oom;
};
#define EG_FLAGS_INITIAL (0)
diff -Nru php8.4-8.4.26/Zend/zend_hash.c php8.4-8.4.27/Zend/zend_hash.c
--- php8.4-8.4.26/Zend/zend_hash.c 2026-09-22 15:00:02.000000000 +0000
+++ php8.4-8.4.27/Zend/zend_hash.c 2026-10-19 14:38:59.000000000 +0000
@@ -84,7 +84,10 @@
#define ZEND_HASH_IF_FULL_DO_RESIZE(ht) \
if ((ht)->nNumUsed >= (ht)->nTableSize) { \
- zend_hash_do_resize(ht); \
+ zend_result _resize_status = zend_hash_do_fresize(ht, flag & HASH_FALLIBLE); \
+ if (ZEND_CONST_COND(flag & HASH_FALLIBLE, true) && UNEXPECTED(_resize_status == FAILURE)) { \
+ return HASH_NOMEM; \
+ } \
}
ZEND_API void *zend_hash_str_find_ptr_lc(const HashTable *ht, const char *str, size_t len) {
@@ -109,9 +112,9 @@
return result;
}
-static void ZEND_FASTCALL zend_hash_do_resize(HashTable *ht);
+static zend_result ZEND_FASTCALL zend_hash_do_fresize(HashTable *ht, bool fallible);
-static zend_always_inline uint32_t zend_hash_check_size(uint32_t nSize)
+static zend_always_inline uint32_t zend_hash_check_size(uint32_t nSize, bool fallible)
{
#ifdef ZEND_WIN32
unsigned long index;
@@ -122,7 +125,8 @@
if (nSize <= HT_MIN_SIZE) {
return HT_MIN_SIZE;
} else if (UNEXPECTED(nSize > HT_MAX_SIZE)) {
- zend_error_noreturn(E_ERROR, "Possible integer overflow in memory allocation (%u * %zu + %zu)", nSize, sizeof(Bucket), sizeof(Bucket));
+ zend_mm_delayed_error_or_panic(fallible, "Possible integer overflow in memory allocation (%u * %zu + %zu)", nSize, sizeof(Bucket), sizeof(Bucket));
+ return 0;
}
#ifdef ZEND_WIN32
@@ -146,25 +150,34 @@
#endif
}
-static zend_always_inline void zend_hash_real_init_packed_ex(HashTable *ht)
+static zend_always_inline zend_result zend_hash_real_finit_packed_ex(HashTable *ht, bool fallible)
{
void *data;
if (UNEXPECTED(GC_FLAGS(ht) & IS_ARRAY_PERSISTENT)) {
- data = pemalloc(HT_PACKED_SIZE_EX(ht->nTableSize, HT_MIN_MASK), 1);
+ data = fpemalloc(HT_PACKED_SIZE_EX(ht->nTableSize, HT_MIN_MASK), true, fallible);
} else if (EXPECTED(ht->nTableSize == HT_MIN_SIZE)) {
/* Use specialized API with constant allocation amount for a particularly common case. */
- data = emalloc(HT_PACKED_SIZE_EX(HT_MIN_SIZE, HT_MIN_MASK));
+ data = femalloc(HT_PACKED_SIZE_EX(HT_MIN_SIZE, HT_MIN_MASK), fallible);
} else {
- data = emalloc(HT_PACKED_SIZE_EX(ht->nTableSize, HT_MIN_MASK));
+ data = femalloc(HT_PACKED_SIZE_EX(ht->nTableSize, HT_MIN_MASK), fallible);
+ }
+ if (ZEND_CONST_COND(fallible, true) && UNEXPECTED(!data)) {
+ return FAILURE;
}
HT_SET_DATA_ADDR(ht, data);
/* Don't overwrite iterator count. */
ht->u.v.flags = HASH_FLAG_PACKED | HASH_FLAG_STATIC_KEYS;
HT_HASH_RESET_PACKED(ht);
+ return SUCCESS;
}
-static zend_always_inline void zend_hash_real_init_mixed_ex(HashTable *ht)
+static zend_always_inline void zend_hash_real_init_packed_ex(HashTable *ht)
+{
+ zend_hash_real_finit_packed_ex(ht, /* fallible */ false);
+}
+
+static zend_always_inline zend_result zend_hash_real_finit_mixed_ex(HashTable *ht, bool fallible)
{
void *data;
uint32_t nSize = ht->nTableSize;
@@ -172,9 +185,15 @@
ZEND_ASSERT(HT_SIZE_TO_MASK(nSize) != 0);
if (UNEXPECTED(GC_FLAGS(ht) & IS_ARRAY_PERSISTENT)) {
- data = pemalloc(HT_SIZE_EX(nSize, HT_SIZE_TO_MASK(nSize)), 1);
+ data = fpemalloc(HT_SIZE_EX(nSize, HT_SIZE_TO_MASK(nSize)), true, fallible);
+ if (ZEND_CONST_COND(fallible, true) && UNEXPECTED(!data)) {
+ return FAILURE;
+ }
} else if (EXPECTED(nSize == HT_MIN_SIZE)) {
- data = emalloc(HT_SIZE_EX(HT_MIN_SIZE, HT_SIZE_TO_MASK(HT_MIN_SIZE)));
+ data = femalloc(HT_SIZE_EX(HT_MIN_SIZE, HT_SIZE_TO_MASK(HT_MIN_SIZE)), fallible);
+ if (ZEND_CONST_COND(fallible, true) && UNEXPECTED(!data)) {
+ return FAILURE;
+ }
ht->nTableMask = HT_SIZE_TO_MASK(HT_MIN_SIZE);
HT_SET_DATA_ADDR(ht, data);
/* Don't overwrite iterator count. */
@@ -221,27 +240,42 @@
HT_HASH_EX(data, 14) = -1;
HT_HASH_EX(data, 15) = -1;
#endif
- return;
+ return SUCCESS;
} else {
- data = emalloc(HT_SIZE_EX(nSize, HT_SIZE_TO_MASK(nSize)));
+ data = femalloc(HT_SIZE_EX(nSize, HT_SIZE_TO_MASK(nSize)), fallible);
+ if (ZEND_CONST_COND(fallible, true) && UNEXPECTED(!data)) {
+ return FAILURE;
+ }
}
ht->nTableMask = HT_SIZE_TO_MASK(nSize);
HT_SET_DATA_ADDR(ht, data);
HT_FLAGS(ht) = HASH_FLAG_STATIC_KEYS;
HT_HASH_RESET(ht);
+
+ return SUCCESS;
}
-static zend_always_inline void zend_hash_real_init_ex(HashTable *ht, bool packed)
+static zend_always_inline void zend_hash_real_init_mixed_ex(HashTable *ht)
+{
+ zend_hash_real_finit_mixed_ex(ht, /* fallible */ false);
+}
+
+static zend_always_inline zend_result zend_hash_real_finit_ex(HashTable *ht, bool packed, bool fallible)
{
HT_ASSERT_RC1(ht);
ZEND_ASSERT(HT_FLAGS(ht) & HASH_FLAG_UNINITIALIZED);
if (packed) {
- zend_hash_real_init_packed_ex(ht);
+ return zend_hash_real_finit_packed_ex(ht, fallible);
} else {
- zend_hash_real_init_mixed_ex(ht);
+ return zend_hash_real_finit_mixed_ex(ht, fallible);
}
}
+static zend_always_inline void zend_hash_real_init_ex(HashTable *ht, bool packed)
+{
+ zend_hash_real_finit_ex(ht, packed, /* fallible */ false);
+}
+
static const uint32_t uninitialized_bucket[-HT_MIN_MASK] =
{HT_INVALID_IDX, HT_INVALID_IDX};
@@ -259,7 +293,7 @@
.pDestructor = ZVAL_PTR_DTOR
};
-static zend_always_inline void _zend_hash_init_int(HashTable *ht, uint32_t nSize, dtor_func_t pDestructor, bool persistent)
+static zend_always_inline zend_result _zend_hash_finit_int(HashTable *ht, uint32_t nSize, dtor_func_t pDestructor, bool persistent, bool fallible)
{
GC_SET_REFCOUNT(ht, 1);
GC_TYPE_INFO(ht) = GC_ARRAY | (persistent ? ((GC_PERSISTENT|GC_NOT_COLLECTABLE) << GC_FLAGS_SHIFT) : 0);
@@ -271,7 +305,16 @@
ht->nInternalPointer = 0;
ht->nNextFreeElement = ZEND_LONG_MIN;
ht->pDestructor = pDestructor;
- ht->nTableSize = zend_hash_check_size(nSize);
+ ht->nTableSize = zend_hash_check_size(nSize, fallible);
+ if (ZEND_CONST_COND(fallible, true) && UNEXPECTED(!ht->nTableSize)) {
+ return FAILURE;
+ }
+ return SUCCESS;
+}
+
+static zend_always_inline void _zend_hash_init_int(HashTable *ht, uint32_t nSize, dtor_func_t pDestructor, bool persistent)
+{
+ _zend_hash_finit_int(ht, nSize, pDestructor, persistent, /* fallible */ false);
}
ZEND_API void ZEND_FASTCALL _zend_hash_init(HashTable *ht, uint32_t nSize, dtor_func_t pDestructor, bool persistent)
@@ -286,6 +329,26 @@
return ht;
}
+ZEND_API HashTable* ZEND_FASTCALL _zend_fnew_array_0(void)
+{
+ HashTable *ht = femalloc(sizeof(HashTable), /* fallible */ true);
+ if (UNEXPECTED(ht == NULL)) {
+ return NULL;
+ }
+ if (UNEXPECTED(_zend_hash_finit_int(ht, HT_MIN_SIZE, ZVAL_PTR_DTOR, /* persistent */ false, /* fallible */ true) == FAILURE)) {
+ efree(ht);
+ return NULL;
+ }
+ return ht;
+}
+
+ZEND_API HashTable* ZEND_FASTCALL zend_new_array_singleton(void)
+{
+ HashTable *ht = _zend_new_array_0();
+ ht->nTableSize = 1;
+ return ht;
+}
+
ZEND_API HashTable* ZEND_FASTCALL _zend_new_array(uint32_t nSize)
{
HashTable *ht = emalloc(sizeof(HashTable));
@@ -293,6 +356,20 @@
return ht;
}
+ZEND_API HashTable* ZEND_FASTCALL _zend_fnew_array(uint32_t nSize)
+{
+ HashTable *ht = femalloc(sizeof(HashTable), /* fallible */ true);
+ if (UNEXPECTED(ht == NULL)) {
+ return NULL;
+ }
+
+ if (UNEXPECTED(_zend_hash_finit_int(ht, nSize, ZVAL_PTR_DTOR, /* persistent */ false, /* fallible */ true) == FAILURE)) {
+ efree(ht);
+ return NULL;
+ }
+ return ht;
+}
+
ZEND_API HashTable* ZEND_FASTCALL zend_new_pair(zval *val1, zval *val2)
{
zval *zv;
@@ -308,15 +385,26 @@
return ht;
}
-ZEND_API void ZEND_FASTCALL zend_hash_packed_grow(HashTable *ht)
+ZEND_API zend_result ZEND_FASTCALL zend_hash_packed_fgrow(HashTable *ht, bool fallible)
{
HT_ASSERT_RC1(ht);
if (ht->nTableSize >= HT_MAX_SIZE) {
- zend_error_noreturn(E_ERROR, "Possible integer overflow in memory allocation (%u * %zu + %zu)", ht->nTableSize * 2, sizeof(Bucket), sizeof(Bucket));
+ zend_mm_delayed_error_or_panic(fallible, "Possible integer overflow in memory allocation (%u * %zu + %zu)", ht->nTableSize * 2, sizeof(Bucket), sizeof(Bucket));
+ return FAILURE;
}
uint32_t newTableSize = ht->nTableSize * 2;
- HT_SET_DATA_ADDR(ht, perealloc2(HT_GET_DATA_ADDR(ht), HT_PACKED_SIZE_EX(newTableSize, HT_MIN_MASK), HT_PACKED_USED_SIZE(ht), GC_FLAGS(ht) & IS_ARRAY_PERSISTENT));
+ void *newData = fperealloc2(HT_GET_DATA_ADDR(ht), HT_PACKED_SIZE_EX(newTableSize, HT_MIN_MASK), HT_PACKED_USED_SIZE(ht), GC_FLAGS(ht) & IS_ARRAY_PERSISTENT, fallible);
+ if (ZEND_CONST_COND(fallible, true) && UNEXPECTED(!newData)) {
+ return FAILURE;
+ }
+ HT_SET_DATA_ADDR(ht, newData);
ht->nTableSize = newTableSize;
+ return SUCCESS;
+}
+
+ZEND_API void ZEND_FASTCALL zend_hash_packed_grow(HashTable *ht)
+{
+ zend_hash_packed_fgrow(ht, /* fallible */ false);
}
ZEND_API void ZEND_FASTCALL zend_hash_real_init(HashTable *ht, bool packed)
@@ -327,6 +415,14 @@
zend_hash_real_init_ex(ht, packed);
}
+ZEND_API zend_result ZEND_FASTCALL zend_hash_real_finit(HashTable *ht, bool packed, bool fallible)
+{
+ IS_CONSISTENT(ht);
+
+ HT_ASSERT_RC1(ht);
+ return zend_hash_real_finit_ex(ht, packed, fallible);
+}
+
ZEND_API void ZEND_FASTCALL zend_hash_real_init_packed(HashTable *ht)
{
IS_CONSISTENT(ht);
@@ -335,6 +431,15 @@
zend_hash_real_init_packed_ex(ht);
}
+/* Fallible variant of zend_hash_real_init_packed */
+ZEND_API zend_result ZEND_FASTCALL zend_hash_real_finit_packed(HashTable *ht, bool fallible)
+{
+ IS_CONSISTENT(ht);
+
+ HT_ASSERT_RC1(ht);
+ return zend_hash_real_finit_packed_ex(ht, fallible);
+}
+
ZEND_API void ZEND_FASTCALL zend_hash_real_init_mixed(HashTable *ht)
{
IS_CONSISTENT(ht);
@@ -343,7 +448,16 @@
zend_hash_real_init_mixed_ex(ht);
}
-ZEND_API void ZEND_FASTCALL zend_hash_packed_to_hash(HashTable *ht)
+/* Fallible variant of zend_hash_real_init_mixed */
+ZEND_API zend_result ZEND_FASTCALL zend_hash_real_finit_mixed(HashTable *ht, bool fallible)
+{
+ IS_CONSISTENT(ht);
+
+ HT_ASSERT_RC1(ht);
+ return zend_hash_real_finit_mixed_ex(ht, fallible);
+}
+
+ZEND_API zend_result ZEND_FASTCALL zend_hash_fconvert_packed_to_hash(HashTable *ht, bool fallible)
{
void *new_data, *old_data = HT_GET_DATA_ADDR(ht);
zval *src = ht->arPacked;
@@ -355,7 +469,10 @@
HT_ASSERT_RC1(ht);
// Alloc before assign to avoid inconsistencies on OOM
- new_data = pemalloc(HT_SIZE_EX(nSize, HT_SIZE_TO_MASK(nSize)), GC_FLAGS(ht) & IS_ARRAY_PERSISTENT);
+ new_data = fpemalloc(HT_SIZE_EX(nSize, HT_SIZE_TO_MASK(nSize)), GC_FLAGS(ht) & IS_ARRAY_PERSISTENT, fallible);
+ if (ZEND_CONST_COND(fallible, true) && UNEXPECTED(!new_data)) {
+ return FAILURE;
+ }
HT_FLAGS(ht) &= ~HASH_FLAG_PACKED;
ht->nTableMask = HT_SIZE_TO_MASK(ht->nTableSize);
HT_SET_DATA_ADDR(ht, new_data);
@@ -369,6 +486,12 @@
}
pefree(old_data, GC_FLAGS(ht) & IS_ARRAY_PERSISTENT);
zend_hash_rehash(ht);
+ return SUCCESS;
+}
+
+ZEND_API void ZEND_FASTCALL zend_hash_packed_to_hash(HashTable *ht)
+{
+ zend_hash_fconvert_packed_to_hash(ht, /* fallible */ false);
}
ZEND_API void ZEND_FASTCALL zend_hash_to_packed(HashTable *ht)
@@ -393,25 +516,39 @@
pefree(old_data, GC_FLAGS(ht) & IS_ARRAY_PERSISTENT);
}
-ZEND_API void ZEND_FASTCALL zend_hash_extend(HashTable *ht, uint32_t nSize, bool packed)
+static zend_always_inline zend_result ZEND_FASTCALL _zend_hash_fextend(HashTable *ht, uint32_t nSize, bool packed, bool fallible)
{
HT_ASSERT_RC1(ht);
- if (nSize == 0) return;
+ if (nSize == 0) return SUCCESS;
ZEND_ASSERT(HT_SIZE_TO_MASK(nSize) != 0);
if (UNEXPECTED(HT_FLAGS(ht) & HASH_FLAG_UNINITIALIZED)) {
if (nSize > ht->nTableSize) {
- ht->nTableSize = zend_hash_check_size(nSize);
+ uint32_t newTableSize = zend_hash_check_size(nSize, fallible);
+ if (ZEND_CONST_COND(fallible, true) && UNEXPECTED(!newTableSize)) {
+ return FAILURE;
+ }
+ ht->nTableSize = newTableSize;
+ }
+ zend_result status = zend_hash_real_finit(ht, packed, fallible);
+ if (ZEND_CONST_COND(fallible, true) && UNEXPECTED(status == FAILURE)) {
+ return FAILURE;
}
- zend_hash_real_init(ht, packed);
} else {
if (packed) {
ZEND_ASSERT(HT_IS_PACKED(ht));
if (nSize > ht->nTableSize) {
- uint32_t newTableSize = zend_hash_check_size(nSize);
- HT_SET_DATA_ADDR(ht, perealloc2(HT_GET_DATA_ADDR(ht), HT_PACKED_SIZE_EX(newTableSize, HT_MIN_MASK), HT_PACKED_USED_SIZE(ht), GC_FLAGS(ht) & IS_ARRAY_PERSISTENT));
+ uint32_t newTableSize = zend_hash_check_size(nSize, fallible);
+ if (ZEND_CONST_COND(fallible, true) && UNEXPECTED(!newTableSize)) {
+ return FAILURE;
+ }
+ void *new_data = fperealloc2(HT_GET_DATA_ADDR(ht), HT_PACKED_SIZE_EX(newTableSize, HT_MIN_MASK), HT_PACKED_USED_SIZE(ht), GC_FLAGS(ht) & IS_ARRAY_PERSISTENT, fallible);
+ if (ZEND_CONST_COND(fallible, true) && UNEXPECTED(!new_data)) {
+ return FAILURE;
+ }
+ HT_SET_DATA_ADDR(ht, new_data);
ht->nTableSize = newTableSize;
}
} else {
@@ -419,8 +556,14 @@
if (nSize > ht->nTableSize) {
void *new_data, *old_data = HT_GET_DATA_ADDR(ht);
Bucket *old_buckets = ht->arData;
- nSize = zend_hash_check_size(nSize);
- new_data = pemalloc(HT_SIZE_EX(nSize, HT_SIZE_TO_MASK(nSize)), GC_FLAGS(ht) & IS_ARRAY_PERSISTENT);
+ nSize = zend_hash_check_size(nSize, fallible);
+ if (ZEND_CONST_COND(fallible, true) && UNEXPECTED(!nSize)) {
+ return FAILURE;
+ }
+ new_data = fpemalloc(HT_SIZE_EX(nSize, HT_SIZE_TO_MASK(nSize)), GC_FLAGS(ht) & IS_ARRAY_PERSISTENT, fallible);
+ if (ZEND_CONST_COND(fallible, true) && UNEXPECTED(!new_data)) {
+ return FAILURE;
+ }
ht->nTableSize = nSize;
ht->nTableMask = HT_SIZE_TO_MASK(ht->nTableSize);
HT_SET_DATA_ADDR(ht, new_data);
@@ -430,6 +573,18 @@
}
}
}
+
+ return SUCCESS;
+}
+
+ZEND_API zend_result ZEND_FASTCALL zend_hash_fextend(HashTable *ht, uint32_t nSize, bool packed)
+{
+ return _zend_hash_fextend(ht, nSize, packed, /* fallible */ true);
+}
+
+ZEND_API void ZEND_FASTCALL zend_hash_extend(HashTable *ht, uint32_t nSize, bool packed)
+{
+ _zend_hash_fextend(ht, nSize, packed, /* fallible */ false);
}
ZEND_API void ZEND_FASTCALL zend_hash_discard(HashTable *ht, uint32_t nNumUsed)
@@ -834,10 +989,16 @@
if (UNEXPECTED(HT_FLAGS(ht) & (HASH_FLAG_UNINITIALIZED|HASH_FLAG_PACKED))) {
if (EXPECTED(HT_FLAGS(ht) & HASH_FLAG_UNINITIALIZED)) {
- zend_hash_real_init_mixed(ht);
+ zend_result status = zend_hash_real_finit_mixed(ht, flag & HASH_FALLIBLE);
+ if (ZEND_CONST_COND(flag & HASH_FALLIBLE, true) && UNEXPECTED(status == FAILURE)) {
+ return HASH_NOMEM;
+ }
goto add_to_hash;
} else {
- zend_hash_packed_to_hash(ht);
+ zend_result status = zend_hash_fconvert_packed_to_hash(ht, flag & HASH_FALLIBLE);
+ if (ZEND_CONST_COND(flag & HASH_FALLIBLE, true) && UNEXPECTED(status == FAILURE)) {
+ return HASH_NOMEM;
+ }
}
} else if ((flag & HASH_ADD_NEW) == 0 || ZEND_DEBUG) {
p = zend_hash_find_bucket(ht, key);
@@ -1006,6 +1167,11 @@
return _zend_hash_add_or_update_i(ht, key, pData, HASH_UPDATE);
}
+ZEND_API zval* ZEND_FASTCALL zend_hash_fupdate(HashTable *ht, zend_string *key, zval *pData)
+{
+ return _zend_hash_add_or_update_i(ht, key, pData, HASH_UPDATE | HASH_FALLIBLE);
+}
+
ZEND_API zval* ZEND_FASTCALL zend_hash_update_ind(HashTable *ht, zend_string *key, zval *pData)
{
return _zend_hash_add_or_update_i(ht, key, pData, HASH_UPDATE | HASH_UPDATE_INDIRECT);
@@ -1016,11 +1182,21 @@
return _zend_hash_add_or_update_i(ht, key, pData, HASH_ADD_NEW);
}
+ZEND_API zval* ZEND_FASTCALL zend_hash_fadd_new(HashTable *ht, zend_string *key, zval *pData)
+{
+ return _zend_hash_add_or_update_i(ht, key, pData, HASH_ADD_NEW | HASH_FALLIBLE);
+}
+
ZEND_API zval* ZEND_FASTCALL zend_hash_lookup(HashTable *ht, zend_string *key)
{
return _zend_hash_add_or_update_i(ht, key, NULL, HASH_LOOKUP);
}
+ZEND_API zval* ZEND_FASTCALL zend_hash_flookup(HashTable *ht, zend_string *key)
+{
+ return _zend_hash_add_or_update_i(ht, key, NULL, HASH_LOOKUP | HASH_FALLIBLE);
+}
+
ZEND_API zval* ZEND_FASTCALL zend_hash_str_add_or_update(HashTable *ht, const char *str, size_t len, zval *pData, uint32_t flag)
{
if (flag == HASH_ADD) {
@@ -1119,7 +1295,10 @@
ZVAL_COPY_VALUE(zv, pData);
return zv;
} else { /* we have to keep the order :( */
- goto convert_to_hash;
+ zend_result status = zend_hash_fconvert_packed_to_hash(ht, flag & HASH_FALLIBLE);
+ if (ZEND_CONST_COND(flag & HASH_FALLIBLE, true) && UNEXPECTED(status == FAILURE)) {
+ return HASH_NOMEM;
+ }
}
} else if (EXPECTED(h < ht->nTableSize)) {
add_to_packed:
@@ -1145,21 +1324,34 @@
return zv;
} else if ((h >> 1) < ht->nTableSize &&
(ht->nTableSize >> 1) < ht->nNumOfElements) {
- zend_hash_packed_grow(ht);
+ zend_result status = zend_hash_packed_fgrow(ht, flag & HASH_FALLIBLE);
+ if (ZEND_CONST_COND(flag & HASH_FALLIBLE, true) && UNEXPECTED(status == FAILURE)) {
+ return HASH_NOMEM;
+ }
goto add_to_packed;
} else {
+ uint32_t origSize = ht->nTableSize;
if (ht->nNumUsed >= ht->nTableSize) {
ht->nTableSize += ht->nTableSize;
}
-convert_to_hash:
- zend_hash_packed_to_hash(ht);
+ zend_result status = zend_hash_fconvert_packed_to_hash(ht, flag & HASH_FALLIBLE);
+ if (ZEND_CONST_COND(flag & HASH_FALLIBLE, true) && UNEXPECTED(status == FAILURE)) {
+ ht->nTableSize = origSize;
+ return HASH_NOMEM;
+ }
}
} else if (HT_FLAGS(ht) & HASH_FLAG_UNINITIALIZED) {
if (h < ht->nTableSize) {
- zend_hash_real_init_packed_ex(ht);
+ zend_result status = zend_hash_real_finit_packed_ex(ht, flag & HASH_FALLIBLE);
+ if (ZEND_CONST_COND(flag & HASH_FALLIBLE, true) && UNEXPECTED(status == FAILURE)) {
+ return HASH_NOMEM;
+ }
goto add_to_packed;
}
- zend_hash_real_init_mixed(ht);
+ zend_result status = zend_hash_real_finit_mixed(ht, flag & HASH_FALLIBLE);
+ if (ZEND_CONST_COND(flag & HASH_FALLIBLE, true) && UNEXPECTED(status == FAILURE)) {
+ return HASH_NOMEM;
+ }
} else {
if ((flag & HASH_ADD_NEW) == 0 || ZEND_DEBUG) {
p = zend_hash_index_find_bucket(ht, h);
@@ -1228,21 +1420,41 @@
return _zend_hash_index_add_or_update_i(ht, h, pData, HASH_UPDATE);
}
+ZEND_API zval* ZEND_FASTCALL zend_hash_index_fupdate(HashTable *ht, zend_ulong h, zval *pData)
+{
+ return _zend_hash_index_add_or_update_i(ht, h, pData, HASH_UPDATE | HASH_FALLIBLE);
+}
+
ZEND_API zval* ZEND_FASTCALL zend_hash_next_index_insert(HashTable *ht, zval *pData)
{
return _zend_hash_index_add_or_update_i(ht, ht->nNextFreeElement, pData, HASH_ADD | HASH_ADD_NEXT);
}
+ZEND_API zval* ZEND_FASTCALL zend_hash_next_index_finsert(HashTable *ht, zval *pData)
+{
+ return _zend_hash_index_add_or_update_i(ht, ht->nNextFreeElement, pData, HASH_ADD | HASH_ADD_NEXT | HASH_FALLIBLE);
+}
+
ZEND_API zval* ZEND_FASTCALL zend_hash_next_index_insert_new(HashTable *ht, zval *pData)
{
return _zend_hash_index_add_or_update_i(ht, ht->nNextFreeElement, pData, HASH_ADD | HASH_ADD_NEW | HASH_ADD_NEXT);
}
+ZEND_API zval* ZEND_FASTCALL zend_hash_next_index_finsert_new(HashTable *ht, zval *pData)
+{
+ return _zend_hash_index_add_or_update_i(ht, ht->nNextFreeElement, pData, HASH_ADD | HASH_ADD_NEW | HASH_ADD_NEXT | HASH_FALLIBLE);
+}
+
ZEND_API zval* ZEND_FASTCALL zend_hash_index_lookup(HashTable *ht, zend_ulong h)
{
return _zend_hash_index_add_or_update_i(ht, h, NULL, HASH_LOOKUP);
}
+ZEND_API zval* ZEND_FASTCALL zend_hash_index_flookup(HashTable *ht, zend_ulong h)
+{
+ return _zend_hash_index_add_or_update_i(ht, h, NULL, HASH_LOOKUP | HASH_FALLIBLE);
+}
+
ZEND_API zval* ZEND_FASTCALL zend_hash_set_bucket_key(HashTable *ht, Bucket *b, zend_string *key)
{
uint32_t nIndex;
@@ -1304,9 +1516,8 @@
return &b->val;
}
-static void ZEND_FASTCALL zend_hash_do_resize(HashTable *ht)
+static zend_result ZEND_FASTCALL zend_hash_do_fresize(HashTable *ht, bool fallible)
{
-
IS_CONSISTENT(ht);
HT_ASSERT_RC1(ht);
@@ -1320,7 +1531,10 @@
ZEND_ASSERT(HT_SIZE_TO_MASK(nSize) != 0);
- new_data = pemalloc(HT_SIZE_EX(nSize, HT_SIZE_TO_MASK(nSize)), GC_FLAGS(ht) & IS_ARRAY_PERSISTENT);
+ new_data = fpemalloc(HT_SIZE_EX(nSize, HT_SIZE_TO_MASK(nSize)), GC_FLAGS(ht) & IS_ARRAY_PERSISTENT, fallible);
+ if (ZEND_CONST_COND(fallible, true) && UNEXPECTED(!new_data)) {
+ return FAILURE;
+ }
ht->nTableSize = nSize;
ht->nTableMask = HT_SIZE_TO_MASK(ht->nTableSize);
HT_SET_DATA_ADDR(ht, new_data);
@@ -1328,8 +1542,10 @@
pefree(old_data, GC_FLAGS(ht) & IS_ARRAY_PERSISTENT);
zend_hash_rehash(ht);
} else {
- zend_error_noreturn(E_ERROR, "Possible integer overflow in memory allocation (%u * %zu + %zu)", ht->nTableSize * 2, sizeof(Bucket) + sizeof(uint32_t), sizeof(Bucket));
+ zend_mm_delayed_error_or_panic(fallible, "Possible integer overflow in memory allocation (%u * %zu + %zu)", ht->nTableSize * 2, sizeof(Bucket) + sizeof(uint32_t), sizeof(Bucket));
+ return FAILURE;
}
+ return SUCCESS;
}
ZEND_API void ZEND_FASTCALL zend_hash_rehash(HashTable *ht)
diff -Nru php8.4-8.4.26/Zend/zend_hash.h php8.4-8.4.27/Zend/zend_hash.h
--- php8.4-8.4.26/Zend/zend_hash.h 2026-09-22 15:00:02.000000000 +0000
+++ php8.4-8.4.27/Zend/zend_hash.h 2026-10-19 14:38:59.000000000 +0000
@@ -36,6 +36,7 @@
#define HASH_ADD_NEW (1<<3)
#define HASH_ADD_NEXT (1<<4)
#define HASH_LOOKUP (1<<5)
+#define HASH_FALLIBLE (1<<6) /* Use fallible allocation. Return FAILURE or HASH_NOMEM when allocation fails (for functions with zend_result or zval* types, respectively). */
#define HASH_FLAG_CONSISTENCY ((1<<0) | (1<<1))
#define HASH_FLAG_PACKED (1<<2)
@@ -90,6 +91,7 @@
Z_TYPE_INFO_P(__z) = IS_ARRAY; \
} while (0)
+#define HASH_NOMEM ((zval*)-1)
typedef struct _zend_hash_key {
zend_ulong h;
@@ -117,6 +119,11 @@
ZEND_API void ZEND_FASTCALL zend_hash_discard(HashTable *ht, uint32_t nNumUsed);
ZEND_API void ZEND_FASTCALL zend_hash_packed_grow(HashTable *ht);
+ZEND_API zend_result ZEND_FASTCALL zend_hash_real_finit(HashTable *ht, bool packed, bool fallible);
+ZEND_API zend_result ZEND_FASTCALL zend_hash_real_finit_packed(HashTable *ht, bool fallible);
+ZEND_API zend_result ZEND_FASTCALL zend_hash_real_finit_mixed(HashTable *ht, bool fallible);
+ZEND_API zend_result ZEND_FASTCALL zend_hash_fextend(HashTable *ht, uint32_t nSize, bool packed);
+
/* additions/updates/changes */
ZEND_API zval* ZEND_FASTCALL zend_hash_add_or_update(HashTable *ht, zend_string *key, zval *pData, uint32_t flag);
ZEND_API zval* ZEND_FASTCALL zend_hash_update(HashTable *ht, zend_string *key,zval *pData);
@@ -124,6 +131,9 @@
ZEND_API zval* ZEND_FASTCALL zend_hash_add(HashTable *ht, zend_string *key,zval *pData);
ZEND_API zval* ZEND_FASTCALL zend_hash_add_new(HashTable *ht, zend_string *key,zval *pData);
+ZEND_API zval* ZEND_FASTCALL zend_hash_fupdate(HashTable *ht, zend_string *key,zval *pData);
+ZEND_API zval* ZEND_FASTCALL zend_hash_fadd_new(HashTable *ht, zend_string *key,zval *pData);
+
ZEND_API zval* ZEND_FASTCALL zend_hash_str_add_or_update(HashTable *ht, const char *key, size_t len, zval *pData, uint32_t flag);
ZEND_API zval* ZEND_FASTCALL zend_hash_str_update(HashTable *ht, const char *key, size_t len, zval *pData);
ZEND_API zval* ZEND_FASTCALL zend_hash_str_update_ind(HashTable *ht, const char *key, size_t len, zval *pData);
@@ -137,6 +147,10 @@
ZEND_API zval* ZEND_FASTCALL zend_hash_next_index_insert(HashTable *ht, zval *pData);
ZEND_API zval* ZEND_FASTCALL zend_hash_next_index_insert_new(HashTable *ht, zval *pData);
+ZEND_API zval* ZEND_FASTCALL zend_hash_index_fupdate(HashTable *ht, zend_ulong h, zval *pData);
+ZEND_API zval* ZEND_FASTCALL zend_hash_next_index_finsert(HashTable *ht, zval *pData);
+ZEND_API zval* ZEND_FASTCALL zend_hash_next_index_finsert_new(HashTable *ht, zval *pData);
+
ZEND_API zval* ZEND_FASTCALL zend_hash_index_add_empty_element(HashTable *ht, zend_ulong h);
ZEND_API zval* ZEND_FASTCALL zend_hash_add_empty_element(HashTable *ht, zend_string *key);
ZEND_API zval* ZEND_FASTCALL zend_hash_str_add_empty_element(HashTable *ht, const char *key, size_t len);
@@ -216,6 +230,9 @@
ZEND_API zval* ZEND_FASTCALL zend_hash_lookup(HashTable *ht, zend_string *key);
ZEND_API zval* ZEND_FASTCALL zend_hash_index_lookup(HashTable *ht, zend_ulong h);
+ZEND_API zval* ZEND_FASTCALL zend_hash_flookup(HashTable *ht, zend_string *key);
+ZEND_API zval* ZEND_FASTCALL zend_hash_index_flookup(HashTable *ht, zend_ulong h);
+
#define ZEND_HASH_INDEX_LOOKUP(_ht, _h, _ret) do { \
if (EXPECTED(HT_IS_PACKED(_ht))) { \
if (EXPECTED((zend_ulong)(_h) < (zend_ulong)(_ht)->nNumUsed)) { \
@@ -334,12 +351,25 @@
: \
_zend_new_array((size)) \
)
+# define zend_fnew_array(size) \
+ (__builtin_constant_p(size) ? \
+ ((((uint32_t)(size)) <= HT_MIN_SIZE) ? \
+ _zend_fnew_array_0() \
+ : \
+ _zend_fnew_array((size)) \
+ ) \
+ : \
+ _zend_fnew_array((size)) \
+ )
#else
# define zend_new_array(size) \
_zend_new_array(size)
+# define zend_fnew_array(size) \
+ _zend_fnew_array(size)
#endif
ZEND_API HashTable* ZEND_FASTCALL _zend_new_array_0(void);
+ZEND_API HashTable* ZEND_FASTCALL zend_new_array_singleton(void);
ZEND_API HashTable* ZEND_FASTCALL _zend_new_array(uint32_t size);
ZEND_API HashTable* ZEND_FASTCALL zend_new_pair(zval *val1, zval *val2);
ZEND_API uint32_t zend_array_count(HashTable *ht);
@@ -350,6 +380,9 @@
ZEND_API HashTable* ZEND_FASTCALL zend_symtable_to_proptable(HashTable *ht);
ZEND_API HashTable* ZEND_FASTCALL zend_proptable_to_symtable(HashTable *ht, bool always_duplicate);
+ZEND_API HashTable* ZEND_FASTCALL _zend_fnew_array_0(void);
+ZEND_API HashTable* ZEND_FASTCALL _zend_fnew_array(uint32_t size);
+
ZEND_API bool ZEND_FASTCALL _zend_handle_numeric_str_ex(const char *key, size_t length, zend_ulong *idx);
ZEND_API uint32_t ZEND_FASTCALL zend_hash_iterator_add(HashTable *ht, HashPosition pos);
@@ -492,6 +525,16 @@
}
}
+static zend_always_inline zval *zend_symtable_fupdate(HashTable *ht, zend_string *key, zval *pData)
+{
+ zend_ulong idx;
+
+ if (ZEND_HANDLE_NUMERIC(key, idx)) {
+ return zend_hash_index_fupdate(ht, idx, pData);
+ } else {
+ return zend_hash_fupdate(ht, key, pData);
+ }
+}
static zend_always_inline zval *zend_symtable_update_ind(HashTable *ht, zend_string *key, zval *pData)
{
@@ -504,7 +547,6 @@
}
}
-
static zend_always_inline zend_result zend_symtable_del(HashTable *ht, zend_string *key)
{
zend_ulong idx;
@@ -812,16 +854,28 @@
return zv ? Z_PTR_P(zv) : NULL;
}
-static zend_always_inline void *zend_hash_index_update_ptr(HashTable *ht, zend_ulong h, void *pData)
+static zend_always_inline void *zend_hash_index_fupdate_ptr(HashTable *ht, zend_ulong h, void *pData, bool fallible)
{
zval tmp, *zv;
ZVAL_PTR(&tmp, pData);
- zv = zend_hash_index_update(ht, h, &tmp);
+ if (fallible) {
+ zv = zend_hash_index_fupdate(ht, h, &tmp);
+ if (UNEXPECTED(zv == HASH_NOMEM)) {
+ return HASH_NOMEM;
+ }
+ } else {
+ zv = zend_hash_index_update(ht, h, &tmp);
+ }
ZEND_ASSERT(Z_PTR_P(zv));
return Z_PTR_P(zv);
}
+static zend_always_inline void *zend_hash_index_update_ptr(HashTable *ht, zend_ulong h, void *pData)
+{
+ return zend_hash_index_fupdate_ptr(ht, h, pData, /* fallible */ false);
+}
+
static zend_always_inline void *zend_hash_index_add_mem(HashTable *ht, zend_ulong h, void *pData, size_t size)
{
zval tmp, *zv;
diff -Nru php8.4-8.4.26/Zend/zend_lazy_objects.c php8.4-8.4.27/Zend/zend_lazy_objects.c
--- php8.4-8.4.26/Zend/zend_lazy_objects.c 2026-09-22 15:00:02.000000000 +0000
+++ php8.4-8.4.27/Zend/zend_lazy_objects.c 2026-10-19 14:38:59.000000000 +0000
@@ -179,6 +179,20 @@
return info->lazy_properties_count == 0;
}
+#if ZEND_DEBUG
+/* See zend_update_class_constants(). */
+static zend_always_inline bool zend_class_constants_are_updated(const zend_class_entry *ce) {
+ if (ce->ce_flags & ZEND_ACC_CONSTANTS_UPDATED) {
+ return true;
+ }
+ if (ZEND_MAP_PTR(ce->mutable_data)) {
+ const zend_class_mutable_data *mutable_data = ZEND_MAP_PTR_GET_IMM(ce->mutable_data);
+ return mutable_data && (mutable_data->ce_flags & ZEND_ACC_CONSTANTS_UPDATED);
+ }
+ return false;
+}
+#endif
+
/**
* Making objects lazy
*/
@@ -259,11 +273,9 @@
return NULL;
}
- if (UNEXPECTED(!(reflection_ce->ce_flags & ZEND_ACC_CONSTANTS_UPDATED))) {
- if (UNEXPECTED(zend_update_class_constants(reflection_ce) != SUCCESS)) {
- ZEND_ASSERT(EG(exception));
- return NULL;
- }
+ if (UNEXPECTED(zend_update_class_constants(reflection_ce) != SUCCESS)) {
+ ZEND_ASSERT(EG(exception));
+ return NULL;
}
obj = zend_objects_new(reflection_ce);
@@ -383,7 +395,9 @@
zend_class_entry *ce = obj->ce;
- ZEND_ASSERT(ce->ce_flags & ZEND_ACC_CONSTANTS_UPDATED);
+#if ZEND_DEBUG
+ ZEND_ASSERT(zend_class_constants_are_updated(ce));
+#endif
zval *default_properties_table = CE_DEFAULT_PROPERTIES_TABLE(ce);
zval *properties_table = obj->properties_table;
@@ -579,7 +593,9 @@
zend_class_entry *ce = obj->ce;
- ZEND_ASSERT(ce->ce_flags & ZEND_ACC_CONSTANTS_UPDATED);
+#if ZEND_DEBUG
+ ZEND_ASSERT(zend_class_constants_are_updated(ce));
+#endif
if (zend_object_is_lazy_proxy(obj)) {
return zend_lazy_object_init_proxy(obj);
@@ -797,16 +813,28 @@
}
zend_get_gc_buffer_add_zval(gc_buffer, &info->u.initializer.zv);
- /* Uninitialized lazy objects can not have dynamic properties, so we can
- * ignore zobj->properties. */
- zval *prop = zobj->properties_table;
- zval *end = prop + zobj->ce->default_properties_count;
- for ( ; prop < end; prop++) {
- zend_get_gc_buffer_add_zval(gc_buffer, prop);
+ /* Lazy objects may have a properties ht in two cases:
+ * - After fetching debug infos
+ * - After lazy init failed in zend_std_get_properties()
+ *
+ * In the latter case zobj->properties is an empty ht. We should ignore it,
+ * otherwise we may mask references to the GC. In the former case we must
+ * return it, otherwise the GC may traverse properties twice in case the ht
+ * it a root by itself. */
+ zend_array *ht;
+ if (zobj->properties && zend_hash_num_elements(zobj->properties) > 0) {
+ ht = zobj->properties;
+ } else {
+ zval *prop = zobj->properties_table;
+ zval *end = prop + zobj->ce->default_properties_count;
+ for ( ; prop < end; prop++) {
+ zend_get_gc_buffer_add_zval(gc_buffer, prop);
+ }
+ ht = NULL;
}
zend_get_gc_buffer_use(gc_buffer, table, n);
- return NULL;
+ return ht;
}
zend_property_info *zend_lazy_object_get_property_info_for_slot(zend_object *obj, zval *slot)
diff -Nru php8.4-8.4.26/Zend/zend_llist.c php8.4-8.4.27/Zend/zend_llist.c
--- php8.4-8.4.26/Zend/zend_llist.c 2026-09-22 15:00:02.000000000 +0000
+++ php8.4-8.4.27/Zend/zend_llist.c 2026-10-19 14:38:59.000000000 +0000
@@ -243,11 +243,11 @@
zend_llist_element *element;
va_list args;
- va_start(args, num_args);
for (element=l->head; element; element=element->next) {
+ va_start(args, num_args);
func(element->data, num_args, args);
+ va_end(args);
}
- va_end(args);
}
diff -Nru php8.4-8.4.26/Zend/zend_objects.c php8.4-8.4.27/Zend/zend_objects.c
--- php8.4-8.4.26/Zend/zend_objects.c 2026-09-22 15:00:02.000000000 +0000
+++ php8.4-8.4.27/Zend/zend_objects.c 2026-10-19 14:38:59.000000000 +0000
@@ -116,7 +116,7 @@
zend_function *destructor = object->ce->destructor;
if (destructor) {
- if (UNEXPECTED(zend_object_is_lazy(object))) {
+ if (UNEXPECTED(zend_object_is_lazy(object) || ZEND_HAS_OOM())) {
return;
}
@@ -218,6 +218,18 @@
return object;
}
+ZEND_API zend_object* ZEND_FASTCALL zend_objects_fnew(zend_class_entry *ce)
+{
+ zend_object *object = femalloc(sizeof(zend_object) + zend_object_properties_size(ce), /* fallible */ true);
+ if (UNEXPECTED(!object)) {
+ return NULL;
+ }
+
+ _zend_object_std_init(object, ce);
+ object->handlers = &std_object_handlers;
+ return object;
+}
+
ZEND_API void ZEND_FASTCALL zend_objects_clone_members(zend_object *new_object, zend_object *old_object)
{
bool has_clone_method = old_object->ce->clone != NULL;
diff -Nru php8.4-8.4.26/Zend/zend_objects.h php8.4-8.4.27/Zend/zend_objects.h
--- php8.4-8.4.26/Zend/zend_objects.h 2026-09-22 15:00:02.000000000 +0000
+++ php8.4-8.4.27/Zend/zend_objects.h 2026-10-19 14:38:59.000000000 +0000
@@ -25,6 +25,7 @@
BEGIN_EXTERN_C()
ZEND_API void ZEND_FASTCALL zend_object_std_init(zend_object *object, zend_class_entry *ce);
ZEND_API zend_object* ZEND_FASTCALL zend_objects_new(zend_class_entry *ce);
+ZEND_API zend_object* ZEND_FASTCALL zend_objects_fnew(zend_class_entry *ce);
ZEND_API void ZEND_FASTCALL zend_objects_clone_members(zend_object *new_object, zend_object *old_object);
ZEND_API void zend_object_std_dtor(zend_object *object);
diff -Nru php8.4-8.4.26/Zend/zend_operators.c php8.4-8.4.27/Zend/zend_operators.c
--- php8.4-8.4.26/Zend/zend_operators.c 2026-09-22 15:00:02.000000000 +0000
+++ php8.4-8.4.27/Zend/zend_operators.c 2026-10-19 14:38:59.000000000 +0000
@@ -3070,7 +3070,7 @@
}
/* }}} */
-ZEND_API zend_string* ZEND_FASTCALL zend_string_tolower_ex(zend_string *str, bool persistent) /* {{{ */
+static zend_always_inline zend_string* ZEND_FASTCALL _zend_string_ftolower_ex(zend_string *str, bool persistent, bool fallible)
{
size_t length = ZSTR_LEN(str);
unsigned char *p = (unsigned char *) ZSTR_VAL(str);
@@ -3081,7 +3081,10 @@
while (p + BLOCKCONV_STRIDE <= end) {
BLOCKCONV_LOAD(p);
if (BLOCKCONV_FOUND()) {
- zend_string *res = zend_string_alloc(length, persistent);
+ zend_string *res = zend_string_falloc(length, persistent, fallible);
+ if (ZEND_CONST_COND(fallible, true) && UNEXPECTED(!res)) {
+ return NULL;
+ }
memcpy(ZSTR_VAL(res), ZSTR_VAL(str), p - (unsigned char *) ZSTR_VAL(str));
unsigned char *q = (unsigned char*) ZSTR_VAL(res) + (p - (unsigned char*) ZSTR_VAL(str));
@@ -3102,7 +3105,10 @@
while (p < end) {
if (*p != zend_tolower_ascii(*p)) {
- zend_string *res = zend_string_alloc(length, persistent);
+ zend_string *res = zend_string_falloc(length, persistent, fallible);
+ if (ZEND_CONST_COND(fallible, true) && UNEXPECTED(!res)) {
+ return NULL;
+ }
memcpy(ZSTR_VAL(res), ZSTR_VAL(str), p - (unsigned char*) ZSTR_VAL(str));
unsigned char *q = (unsigned char*) ZSTR_VAL(res) + (p - (unsigned char*) ZSTR_VAL(str));
@@ -3117,8 +3123,18 @@
return zend_string_copy(str);
}
+
+ZEND_API zend_string* ZEND_FASTCALL zend_string_tolower_ex(zend_string *str, bool persistent) /* {{{ */
+{
+ return _zend_string_ftolower_ex(str, persistent, /* fallible */ false);
+}
/* }}} */
+ZEND_API zend_string* ZEND_FASTCALL zend_string_ftolower_ex(zend_string *str, bool persistent)
+{
+ return _zend_string_ftolower_ex(str, persistent, /* fallible */ true);
+}
+
ZEND_API zend_string* ZEND_FASTCALL zend_string_toupper_ex(zend_string *str, bool persistent) /* {{{ */
{
size_t length = ZSTR_LEN(str);
diff -Nru php8.4-8.4.26/Zend/zend_operators.h php8.4-8.4.27/Zend/zend_operators.h
--- php8.4-8.4.26/Zend/zend_operators.h 2026-09-22 15:00:02.000000000 +0000
+++ php8.4-8.4.27/Zend/zend_operators.h 2026-10-19 14:38:59.000000000 +0000
@@ -475,6 +475,8 @@
ZEND_API zend_string* ZEND_FASTCALL zend_string_tolower_ex(zend_string *str, bool persistent);
ZEND_API zend_string* ZEND_FASTCALL zend_string_toupper_ex(zend_string *str, bool persistent);
+ZEND_API zend_string* ZEND_FASTCALL zend_string_ftolower_ex(zend_string *str, bool persistent);
+
static zend_always_inline zend_string* zend_string_tolower(zend_string *str) {
return zend_string_tolower_ex(str, false);
}
@@ -482,6 +484,10 @@
return zend_string_toupper_ex(str, false);
}
+static zend_always_inline zend_string* zend_string_ftolower(zend_string *str) {
+ return zend_string_ftolower_ex(str, false);
+}
+
ZEND_API int ZEND_FASTCALL zend_binary_zval_strcmp(zval *s1, zval *s2);
ZEND_API int ZEND_FASTCALL zend_binary_zval_strncmp(zval *s1, zval *s2, zval *s3);
ZEND_API int ZEND_FASTCALL zend_binary_strcmp(const char *s1, size_t len1, const char *s2, size_t len2);
diff -Nru php8.4-8.4.26/Zend/zend_smart_str.c php8.4-8.4.27/Zend/zend_smart_str.c
--- php8.4-8.4.26/Zend/zend_smart_str.c 2026-09-22 15:00:02.000000000 +0000
+++ php8.4-8.4.27/Zend/zend_smart_str.c 2026-10-19 14:38:59.000000000 +0000
@@ -27,32 +27,72 @@
#define SMART_STR_NEW_LEN(len) \
(ZEND_MM_ALIGNED_SIZE_EX(len + SMART_STR_OVERHEAD, SMART_STR_PAGE) - SMART_STR_OVERHEAD)
-ZEND_API void ZEND_FASTCALL smart_str_erealloc(smart_str *str, size_t len)
+static zend_always_inline bool i_smart_str_erealloc(smart_str *str, size_t len, bool fallible)
{
if (UNEXPECTED(!str->s)) {
- str->a = len <= SMART_STR_START_LEN
+ size_t a = len <= SMART_STR_START_LEN
? SMART_STR_START_LEN
: SMART_STR_NEW_LEN(len);
- str->s = zend_string_alloc(str->a, 0);
+ str->s = zend_string_falloc(a, /* persistent */ false, fallible);
+ if (ZEND_CONST_COND(fallible, true) && !str->s) {
+ return false;
+ }
+ str->a = a;
ZSTR_LEN(str->s) = 0;
} else {
- str->a = SMART_STR_NEW_LEN(len);
- str->s = (zend_string *) erealloc2(str->s, str->a + _ZSTR_HEADER_SIZE + 1, _ZSTR_HEADER_SIZE + ZSTR_LEN(str->s));
+ size_t a = SMART_STR_NEW_LEN(len);
+ zend_string *s = (zend_string *) ferealloc2(str->s, a + _ZSTR_HEADER_SIZE + 1, _ZSTR_HEADER_SIZE + ZSTR_LEN(str->s), fallible);
+ if (ZEND_CONST_COND(fallible, true) && !s) {
+ return false;
+ }
+ str->a = a;
+ str->s = s;
}
+ return true;
}
-ZEND_API void ZEND_FASTCALL smart_str_realloc(smart_str *str, size_t len)
+ZEND_API void ZEND_FASTCALL smart_str_erealloc(smart_str *str, size_t len)
+{
+ i_smart_str_erealloc(str, len, /* fallible */ false);
+}
+
+ZEND_API bool ZEND_FASTCALL smart_str_ferealloc(smart_str *str, size_t len, bool fallible)
+{
+ return i_smart_str_erealloc(str, len, fallible);
+}
+
+static zend_always_inline bool i_smart_str_realloc(smart_str *str, size_t len, bool fallible)
{
if (UNEXPECTED(!str->s)) {
- str->a = len <= SMART_STR_START_LEN
+ size_t a = len <= SMART_STR_START_LEN
? SMART_STR_START_LEN
: SMART_STR_NEW_LEN(len);
- str->s = zend_string_alloc(str->a, 1);
+ str->s = zend_string_falloc(a, /* persistent */ true, fallible);
+ if (ZEND_CONST_COND(fallible, true) && !str->s) {
+ return false;
+ }
+ str->a = a;
ZSTR_LEN(str->s) = 0;
} else {
- str->a = SMART_STR_NEW_LEN(len);
- str->s = (zend_string *) perealloc(str->s, str->a + _ZSTR_HEADER_SIZE + 1, 1);
+ size_t a = SMART_STR_NEW_LEN(len);
+ zend_string *s = (zend_string *) safe_fperealloc(str->s, 1, a, _ZSTR_HEADER_SIZE + 1, /* persistent */ true, fallible);
+ if (ZEND_CONST_COND(fallible, true) && !s) {
+ return false;
+ }
+ str->a = a;
+ str->s = s;
}
+ return true;
+}
+
+ZEND_API void ZEND_FASTCALL smart_str_realloc(smart_str *str, size_t len)
+{
+ i_smart_str_realloc(str, len, /* fallible */ false);
+}
+
+ZEND_API bool ZEND_FASTCALL smart_str_frealloc(smart_str *str, size_t len, bool fallible)
+{
+ return i_smart_str_realloc(str, len, fallible);
}
/* Windows uses VK_ESCAPE instead of \e */
diff -Nru php8.4-8.4.26/Zend/zend_smart_str.h php8.4-8.4.27/Zend/zend_smart_str.h
--- php8.4-8.4.26/Zend/zend_smart_str.h 2026-09-22 15:00:02.000000000 +0000
+++ php8.4-8.4.27/Zend/zend_smart_str.h 2026-10-19 14:38:59.000000000 +0000
@@ -24,7 +24,9 @@
BEGIN_EXTERN_C()
ZEND_API void ZEND_FASTCALL smart_str_erealloc(smart_str *str, size_t len);
+ZEND_API bool ZEND_FASTCALL smart_str_ferealloc(smart_str *str, size_t len, bool fallible);
ZEND_API void ZEND_FASTCALL smart_str_realloc(smart_str *str, size_t len);
+ZEND_API bool ZEND_FASTCALL smart_str_frealloc(smart_str *str, size_t len, bool fallible);
ZEND_API void ZEND_FASTCALL smart_str_append_escaped(smart_str *str, const char *s, size_t l);
/* If zero_fraction is true, then a ".0" will be added to numbers that would not otherwise
* have a fractional part and look like integers. */
@@ -37,7 +39,7 @@
ZEND_API zend_result ZEND_FASTCALL smart_str_append_zval(smart_str *dest, const zval *value, size_t truncate);
END_EXTERN_C()
-static zend_always_inline size_t smart_str_alloc(smart_str *str, size_t len, bool persistent) {
+static zend_always_inline size_t smart_str_falloc(smart_str *str, size_t len, bool persistent, bool fallible) {
if (UNEXPECTED(!str->s)) {
goto do_smart_str_realloc;
} else {
@@ -45,22 +47,44 @@
if (UNEXPECTED(len >= str->a)) {
do_smart_str_realloc:
if (persistent) {
- smart_str_realloc(str, len);
+ bool success = smart_str_frealloc(str, len, fallible);
+ if (ZEND_CONST_COND(fallible, true) && !success) {
+ ZEND_ASSERT(fallible);
+ return (size_t)-1;
+ }
} else {
- smart_str_erealloc(str, len);
+ bool success = smart_str_ferealloc(str, len, fallible);
+ if (ZEND_CONST_COND(fallible, true) && !success) {
+ ZEND_ASSERT(fallible);
+ return (size_t)-1;
+ }
}
}
}
return len;
}
-static zend_always_inline char* smart_str_extend_ex(smart_str *dest, size_t len, bool persistent) {
- size_t new_len = smart_str_alloc(dest, len, persistent);
+static zend_always_inline size_t smart_str_alloc(smart_str *str, size_t len, bool persistent) {
+ size_t result = smart_str_falloc(str, len, persistent, /* fallible */ false);
+ ZEND_ASSERT(result != (size_t)-1);
+ return result;
+}
+
+static zend_always_inline char* smart_str_fextend_ex(smart_str *dest, size_t len, bool persistent, bool fallible) {
+ size_t new_len = smart_str_falloc(dest, len, persistent, fallible);
+ if (ZEND_CONST_COND(fallible, true) && new_len == (size_t)-1) {
+ return NULL;
+ }
+ ZEND_ASSERT(new_len != (size_t)-1);
char *ret = ZSTR_VAL(dest->s) + ZSTR_LEN(dest->s);
ZSTR_LEN(dest->s) = new_len;
return ret;
}
+static zend_always_inline char* smart_str_extend_ex(smart_str *dest, size_t len, bool persistent) {
+ return smart_str_fextend_ex(dest, len, persistent, /* fallible */ false);
+}
+
static zend_always_inline char* smart_str_extend(smart_str *dest, size_t length)
{
return smart_str_extend_ex(dest, length, false);
@@ -126,10 +150,19 @@
ZSTR_LEN(dest->s) = new_len;
}
-static zend_always_inline void smart_str_appendl_ex(smart_str *dest, const char *str, size_t len, bool persistent) {
- size_t new_len = smart_str_alloc(dest, len, persistent);
+static zend_always_inline bool smart_str_fappendl_ex(smart_str *dest, const char *str, size_t len, bool persistent, bool fallible) {
+ size_t new_len = smart_str_falloc(dest, len, persistent, fallible);
+ if (ZEND_CONST_COND(fallible, true) && new_len == (size_t)-1) {
+ return false;
+ }
+ ZEND_ASSERT(new_len != (size_t)-1);
memcpy(ZSTR_VAL(dest->s) + ZSTR_LEN(dest->s), str, len);
ZSTR_LEN(dest->s) = new_len;
+ return true;
+}
+
+static zend_always_inline void smart_str_appendl_ex(smart_str *dest, const char *str, size_t len, bool persistent) {
+ smart_str_fappendl_ex(dest, str, len, persistent, /* fallible */ false);
}
static zend_always_inline void smart_str_append_ex(smart_str *dest, const zend_string *src, bool persistent) {
diff -Nru php8.4-8.4.26/Zend/zend_string.c php8.4-8.4.27/Zend/zend_string.c
--- php8.4-8.4.26/Zend/zend_string.c 2026-09-22 15:00:02.000000000 +0000
+++ php8.4-8.4.27/Zend/zend_string.c 2026-10-19 14:38:59.000000000 +0000
@@ -134,6 +134,18 @@
zend_known_strings = NULL;
}
+ZEND_API zend_string* ZEND_FASTCALL zend_string_finit_existing_interned(const char *str, size_t len, bool permanent, bool fallible)
+{
+ bool was_fallible = CG(interned_strings_fallible);
+ CG(interned_strings_fallible) = fallible;
+
+ zend_string *ret = zend_string_init_existing_interned(str, len, permanent);
+
+ CG(interned_strings_fallible) = was_fallible;
+
+ return ret;
+}
+
static zend_always_inline zend_string *zend_interned_string_ht_lookup_ex(zend_ulong h, const char *str, size_t size, HashTable *interned_strings)
{
uint32_t nIndex;
@@ -294,7 +306,10 @@
}
ZEND_ASSERT(permanent);
- ret = zend_string_init(str, size, permanent);
+ ret = zend_string_finit(str, size, permanent, CG(interned_strings_fallible));
+ if (UNEXPECTED(!ret)) {
+ return NULL;
+ }
ZSTR_H(ret) = h;
return ret;
}
@@ -343,7 +358,10 @@
}
ZEND_ASSERT(!permanent);
- ret = zend_string_init(str, size, permanent);
+ ret = zend_string_finit(str, size, permanent, CG(interned_strings_fallible));
+ if (UNEXPECTED(!ret)) {
+ return NULL;
+ }
ZSTR_H(ret) = h;
return ret;
}
diff -Nru php8.4-8.4.26/Zend/zend_string.h php8.4-8.4.27/Zend/zend_string.h
--- php8.4-8.4.26/Zend/zend_string.h 2026-09-22 15:00:02.000000000 +0000
+++ php8.4-8.4.27/Zend/zend_string.h 2026-10-19 14:38:59.000000000 +0000
@@ -38,6 +38,7 @@
ZEND_API zend_ulong ZEND_FASTCALL zend_string_hash_func(zend_string *str);
ZEND_API zend_ulong ZEND_FASTCALL zend_hash_func(const char *str, size_t len);
ZEND_API zend_string* ZEND_FASTCALL zend_interned_string_find_permanent(zend_string *str);
+ZEND_API zend_string* ZEND_FASTCALL zend_string_finit_existing_interned(const char *str, size_t len, bool permanent, bool fallible);
ZEND_API zend_string *zend_string_concat2(
const char *str1, size_t str1_len,
@@ -171,9 +172,13 @@
return 1;
}
-static zend_always_inline zend_string *zend_string_alloc(size_t len, bool persistent)
+/* Fallible variant of zend_string_alloc */
+static zend_always_inline zend_string *zend_string_falloc(size_t len, bool persistent, bool fallible)
{
- zend_string *ret = (zend_string *)pemalloc(ZEND_MM_ALIGNED_SIZE(_ZSTR_STRUCT_SIZE(len)), persistent);
+ zend_string *ret = (zend_string *)fpemalloc(ZEND_MM_ALIGNED_SIZE(_ZSTR_STRUCT_SIZE(len)), persistent, fallible);
+ if (ZEND_CONST_COND(fallible, true) && UNEXPECTED(ret == NULL)) {
+ return ret;
+ }
GC_SET_REFCOUNT(ret, 1);
GC_TYPE_INFO(ret) = GC_STRING | ((persistent ? IS_STR_PERSISTENT : 0) << GC_FLAGS_SHIFT);
@@ -182,9 +187,18 @@
return ret;
}
-static zend_always_inline zend_string *zend_string_safe_alloc(size_t n, size_t m, size_t l, bool persistent)
+static zend_always_inline zend_string *zend_string_alloc(size_t len, bool persistent)
{
- zend_string *ret = (zend_string *)safe_pemalloc(n, m, ZEND_MM_ALIGNED_SIZE(_ZSTR_STRUCT_SIZE(l)), persistent);
+ return zend_string_falloc(len, persistent, /* fallible */ false);
+}
+
+/* Fallible variant of zend_string_safe_alloc */
+static zend_always_inline zend_string *zend_string_safe_falloc(size_t n, size_t m, size_t l, bool persistent, bool fallible)
+{
+ zend_string *ret = (zend_string *)safe_fpemalloc(n, m, ZEND_MM_ALIGNED_SIZE(_ZSTR_STRUCT_SIZE(l)), persistent, fallible);
+ if (ZEND_CONST_COND(fallible, true) && UNEXPECTED(ret == NULL)) {
+ return ret;
+ }
GC_SET_REFCOUNT(ret, 1);
GC_TYPE_INFO(ret) = GC_STRING | ((persistent ? IS_STR_PERSISTENT : 0) << GC_FLAGS_SHIFT);
@@ -193,6 +207,11 @@
return ret;
}
+static zend_always_inline zend_string *zend_string_safe_alloc(size_t n, size_t m, size_t l, bool persistent)
+{
+ return zend_string_safe_falloc(n, m, l, persistent, /* fallible */ false);
+}
+
static zend_always_inline zend_string *zend_string_init(const char *str, size_t len, bool persistent)
{
zend_string *ret = zend_string_alloc(len, persistent);
@@ -202,10 +221,22 @@
return ret;
}
-static zend_always_inline zend_string *zend_string_init_fast(const char *str, size_t len)
+static zend_always_inline zend_string *zend_string_finit(const char *str, size_t len, bool persistent, bool fallible)
+{
+ zend_string *ret = zend_string_safe_falloc(len, 1, 0, persistent, fallible);
+ if (ZEND_CONST_COND(fallible, true) && UNEXPECTED(ret == NULL)) {
+ return NULL;
+ }
+
+ memcpy(ZSTR_VAL(ret), str, len);
+ ZSTR_VAL(ret)[len] = '\0';
+ return ret;
+}
+
+static zend_always_inline zend_string *zend_string_finit_fast(const char *str, size_t len, bool fallible)
{
if (len > 1) {
- return zend_string_init(str, len, 0);
+ return zend_string_finit(str, len, 0, fallible);
} else if (len == 0) {
return zend_empty_string;
} else /* if (len == 1) */ {
@@ -213,6 +244,11 @@
}
}
+static zend_always_inline zend_string *zend_string_init_fast(const char *str, size_t len)
+{
+ return zend_string_finit_fast(str, len, /* fallible */ false);
+}
+
static zend_always_inline zend_string *zend_string_copy(zend_string *s)
{
if (!ZSTR_IS_INTERNED(s)) {
@@ -243,19 +279,25 @@
return s;
}
-static zend_always_inline zend_string *zend_string_realloc(zend_string *s, size_t len, bool persistent)
+static zend_always_inline zend_string *zend_string_frealloc(zend_string *s, size_t len, bool persistent, bool fallible)
{
zend_string *ret;
if (!ZSTR_IS_INTERNED(s)) {
if (EXPECTED(GC_REFCOUNT(s) == 1)) {
- ret = (zend_string *)perealloc(s, ZEND_MM_ALIGNED_SIZE(_ZSTR_STRUCT_SIZE(len)), persistent);
+ ret = (zend_string *)safe_fperealloc(s, 1, len, ZEND_MM_ALIGNED_SIZE(_ZSTR_STRUCT_SIZE(0)), persistent, fallible);
+ if (ZEND_CONST_COND(fallible, true) && UNEXPECTED(!ret)) {
+ return NULL;
+ }
ZSTR_LEN(ret) = len;
zend_string_forget_hash_val(ret);
return ret;
}
}
- ret = zend_string_alloc(len, persistent);
+ ret = zend_string_falloc(len, persistent, fallible);
+ if (ZEND_CONST_COND(fallible, true) && UNEXPECTED(!ret)) {
+ return NULL;
+ }
memcpy(ZSTR_VAL(ret), ZSTR_VAL(s), MIN(len, ZSTR_LEN(s)) + 1);
if (!ZSTR_IS_INTERNED(s)) {
GC_DELREF(s);
@@ -263,20 +305,31 @@
return ret;
}
-static zend_always_inline zend_string *zend_string_extend(zend_string *s, size_t len, bool persistent)
+static zend_always_inline zend_string *zend_string_realloc(zend_string *s, size_t len, bool persistent)
+{
+ return zend_string_frealloc(s, len, persistent, /* fallible */ false);
+}
+
+static zend_always_inline zend_string *zend_string_fextend(zend_string *s, size_t len, bool persistent, bool fallible)
{
zend_string *ret;
ZEND_ASSERT(len >= ZSTR_LEN(s));
if (!ZSTR_IS_INTERNED(s)) {
if (EXPECTED(GC_REFCOUNT(s) == 1)) {
- ret = (zend_string *)perealloc(s, ZEND_MM_ALIGNED_SIZE(_ZSTR_STRUCT_SIZE(len)), persistent);
+ ret = (zend_string *)safe_fperealloc(s, 1, len, ZEND_MM_ALIGNED_SIZE(_ZSTR_STRUCT_SIZE(0)), persistent, fallible);
+ if (ZEND_CONST_COND(fallible, true) && UNEXPECTED(!ret)) {
+ return NULL;
+ }
ZSTR_LEN(ret) = len;
zend_string_forget_hash_val(ret);
return ret;
}
}
- ret = zend_string_alloc(len, persistent);
+ ret = zend_string_falloc(len, persistent, fallible);
+ if (ZEND_CONST_COND(fallible, true) && UNEXPECTED(!ret)) {
+ return NULL;
+ }
memcpy(ZSTR_VAL(ret), ZSTR_VAL(s), ZSTR_LEN(s) + 1);
if (!ZSTR_IS_INTERNED(s)) {
GC_DELREF(s);
@@ -284,20 +337,31 @@
return ret;
}
-static zend_always_inline zend_string *zend_string_truncate(zend_string *s, size_t len, bool persistent)
+static zend_always_inline zend_string *zend_string_extend(zend_string *s, size_t len, bool persistent)
+{
+ return zend_string_fextend(s, len, persistent, /* fallible */ false);
+}
+
+static zend_always_inline zend_string *zend_string_ftruncate(zend_string *s, size_t len, bool persistent, bool fallible)
{
zend_string *ret;
ZEND_ASSERT(len <= ZSTR_LEN(s));
if (!ZSTR_IS_INTERNED(s)) {
if (EXPECTED(GC_REFCOUNT(s) == 1)) {
- ret = (zend_string *)perealloc(s, ZEND_MM_ALIGNED_SIZE(_ZSTR_STRUCT_SIZE(len)), persistent);
+ ret = (zend_string *)safe_fperealloc(s, 1, len, ZEND_MM_ALIGNED_SIZE(_ZSTR_STRUCT_SIZE(0)), persistent, fallible);
+ if (ZEND_CONST_COND(fallible, true) && UNEXPECTED(!ret)) {
+ return NULL;
+ }
ZSTR_LEN(ret) = len;
zend_string_forget_hash_val(ret);
return ret;
}
}
- ret = zend_string_alloc(len, persistent);
+ ret = zend_string_falloc(len, persistent, fallible);
+ if (ZEND_CONST_COND(fallible, true) && UNEXPECTED(!ret)) {
+ return NULL;
+ }
memcpy(ZSTR_VAL(ret), ZSTR_VAL(s), len + 1);
if (!ZSTR_IS_INTERNED(s)) {
GC_DELREF(s);
@@ -305,19 +369,30 @@
return ret;
}
-static zend_always_inline zend_string *zend_string_safe_realloc(zend_string *s, size_t n, size_t m, size_t l, bool persistent)
+static zend_always_inline zend_string *zend_string_truncate(zend_string *s, size_t len, bool persistent)
+{
+ return zend_string_ftruncate(s, len, persistent, /*fallible */ false);
+}
+
+static zend_always_inline zend_string *zend_string_safe_frealloc(zend_string *s, size_t n, size_t m, size_t l, bool persistent, bool fallible)
{
zend_string *ret;
if (!ZSTR_IS_INTERNED(s)) {
if (GC_REFCOUNT(s) == 1) {
- ret = (zend_string *)safe_perealloc(s, n, m, ZEND_MM_ALIGNED_SIZE(_ZSTR_STRUCT_SIZE(l)), persistent);
+ ret = (zend_string *)safe_fperealloc(s, n, m, ZEND_MM_ALIGNED_SIZE(_ZSTR_STRUCT_SIZE(l)), persistent, fallible);
+ if (ZEND_CONST_COND(fallible, true) && !ret) {
+ return NULL;
+ }
ZSTR_LEN(ret) = (n * m) + l;
zend_string_forget_hash_val(ret);
return ret;
}
}
- ret = zend_string_safe_alloc(n, m, l, persistent);
+ ret = zend_string_safe_falloc(n, m, l, persistent, fallible);
+ if (ZEND_CONST_COND(fallible, true) && !ret) {
+ return NULL;
+ }
memcpy(ZSTR_VAL(ret), ZSTR_VAL(s), MIN((n * m) + l, ZSTR_LEN(s)) + 1);
if (!ZSTR_IS_INTERNED(s)) {
GC_DELREF(s);
@@ -325,6 +400,11 @@
return ret;
}
+static zend_always_inline zend_string *zend_string_safe_realloc(zend_string *s, size_t n, size_t m, size_t l, bool persistent)
+{
+ return zend_string_safe_frealloc(s, n, m, l, persistent, /* fallible */ false);
+}
+
static zend_always_inline void zend_string_free(zend_string *s)
{
if (!ZSTR_IS_INTERNED(s)) {
diff -Nru php8.4-8.4.26/Zend/zend_types.h php8.4-8.4.27/Zend/zend_types.h
--- php8.4-8.4.26/Zend/zend_types.h 2026-09-22 15:00:02.000000000 +0000
+++ php8.4-8.4.27/Zend/zend_types.h 2026-10-19 14:38:59.000000000 +0000
@@ -487,46 +487,58 @@
# define HT_HASH_RESET(ht) do { \
char *p = (char*)&HT_HASH(ht, (ht)->nTableMask); \
size_t size = HT_HASH_SIZE((ht)->nTableMask); \
- __m256i ymm0 = _mm256_setzero_si256(); \
- ymm0 = _mm256_cmpeq_epi64(ymm0, ymm0); \
- ZEND_ASSERT(size >= 64 && ((size & 0x3f) == 0)); \
- do { \
- _mm256_storeu_si256((__m256i*)p, ymm0); \
- _mm256_storeu_si256((__m256i*)(p+32), ymm0); \
- p += 64; \
- size -= 64; \
- } while (size != 0); \
+ if (UNEXPECTED(size < 64)) { \
+ memset(p, HT_INVALID_IDX, size); \
+ } else { \
+ __m256i ymm0 = _mm256_setzero_si256(); \
+ ymm0 = _mm256_cmpeq_epi64(ymm0, ymm0); \
+ ZEND_ASSERT(size >= 64 && ((size & 0x3f) == 0)); \
+ do { \
+ _mm256_storeu_si256((__m256i*)p, ymm0); \
+ _mm256_storeu_si256((__m256i*)(p+32), ymm0); \
+ p += 64; \
+ size -= 64; \
+ } while (size != 0); \
+ } \
} while (0)
#elif defined(__SSE2__)
# define HT_HASH_RESET(ht) do { \
char *p = (char*)&HT_HASH(ht, (ht)->nTableMask); \
size_t size = HT_HASH_SIZE((ht)->nTableMask); \
- __m128i xmm0 = _mm_setzero_si128(); \
- xmm0 = _mm_cmpeq_epi8(xmm0, xmm0); \
- ZEND_ASSERT(size >= 64 && ((size & 0x3f) == 0)); \
- do { \
- _mm_storeu_si128((__m128i*)p, xmm0); \
- _mm_storeu_si128((__m128i*)(p+16), xmm0); \
- _mm_storeu_si128((__m128i*)(p+32), xmm0); \
- _mm_storeu_si128((__m128i*)(p+48), xmm0); \
- p += 64; \
- size -= 64; \
- } while (size != 0); \
+ if (UNEXPECTED(size < 64)) { \
+ memset(p, HT_INVALID_IDX, size); \
+ } else { \
+ __m128i xmm0 = _mm_setzero_si128(); \
+ xmm0 = _mm_cmpeq_epi8(xmm0, xmm0); \
+ ZEND_ASSERT(size >= 64 && ((size & 0x3f) == 0)); \
+ do { \
+ _mm_storeu_si128((__m128i*)p, xmm0); \
+ _mm_storeu_si128((__m128i*)(p+16), xmm0); \
+ _mm_storeu_si128((__m128i*)(p+32), xmm0); \
+ _mm_storeu_si128((__m128i*)(p+48), xmm0); \
+ p += 64; \
+ size -= 64; \
+ } while (size != 0); \
+ } \
} while (0)
#elif defined(__aarch64__) || defined(_M_ARM64)
# define HT_HASH_RESET(ht) do { \
char *p = (char*)&HT_HASH(ht, (ht)->nTableMask); \
size_t size = HT_HASH_SIZE((ht)->nTableMask); \
- int32x4_t t = vdupq_n_s32(-1); \
- ZEND_ASSERT(size >= 64 && ((size & 0x3f) == 0)); \
- do { \
- vst1q_s32((int32_t*)p, t); \
- vst1q_s32((int32_t*)(p+16), t); \
- vst1q_s32((int32_t*)(p+32), t); \
- vst1q_s32((int32_t*)(p+48), t); \
- p += 64; \
- size -= 64; \
- } while (size != 0); \
+ if (UNEXPECTED(size < 64)) { \
+ memset(p, HT_INVALID_IDX, size); \
+ } else { \
+ int32x4_t t = vdupq_n_s32(-1); \
+ ZEND_ASSERT(size >= 64 && ((size & 0x3f) == 0)); \
+ do { \
+ vst1q_s32((int32_t*)p, t); \
+ vst1q_s32((int32_t*)(p+16), t); \
+ vst1q_s32((int32_t*)(p+32), t); \
+ vst1q_s32((int32_t*)(p+48), t); \
+ p += 64; \
+ size -= 64; \
+ } while (size != 0); \
+ } \
} while (0)
#else
# define HT_HASH_RESET(ht) \
diff -Nru php8.4-8.4.26/Zend/zend_verify_type_inference.h php8.4-8.4.27/Zend/zend_verify_type_inference.h
--- php8.4-8.4.26/Zend/zend_verify_type_inference.h 2026-09-22 15:00:02.000000000 +0000
+++ php8.4-8.4.27/Zend/zend_verify_type_inference.h 2026-10-19 14:38:59.000000000 +0000
@@ -187,7 +187,8 @@
&& opline->opcode != ZEND_DO_FCALL_BY_NAME
/* ZEND_FE_FETCH_R[W] does not define a result in the last iteration. */
&& opline->opcode != ZEND_FE_FETCH_R
- && opline->opcode != ZEND_FE_FETCH_RW) {
+ && opline->opcode != ZEND_FE_FETCH_RW
+ && (opline->opcode != ZEND_FETCH_OBJ_R || EG(current_execute_data) == execute_data)) {
zend_verify_type_inference(EX_VAR(opline->result.var), opline->result_def_type, opline->result_type, execute_data, opline, "result_def");
/* Verify return value in the context of caller. */
diff -Nru php8.4-8.4.26/Zend/zend_vm_def.h php8.4-8.4.27/Zend/zend_vm_def.h
--- php8.4-8.4.26/Zend/zend_vm_def.h 2026-09-22 15:00:02.000000000 +0000
+++ php8.4-8.4.27/Zend/zend_vm_def.h 2026-10-19 14:38:59.000000000 +0000
@@ -3431,6 +3431,7 @@
zval *var, *ret;
uint32_t i;
+ SAVE_OPLINE();
rope = (zend_string**)EX_VAR(opline->op1.var);
if (OP2_TYPE == IS_CONST) {
var = GET_OP2_ZVAL_PTR(BP_VAR_R);
@@ -4073,7 +4074,7 @@
fbc->internal_function.handler(call, ret);
#if ZEND_DEBUG
- if (!EG(exception) && call->func) {
+ if (!EG(exception) && !ZEND_HAS_OOM() && call->func) {
if (should_throw) {
zend_internal_call_arginfo_violation(call->func);
}
@@ -4195,7 +4196,7 @@
fbc->internal_function.handler(call, ret);
#if ZEND_DEBUG
- if (!EG(exception) && call->func) {
+ if (!EG(exception) && !ZEND_HAS_OOM() && call->func) {
if (should_throw) {
zend_internal_call_arginfo_violation(call->func);
}
@@ -4316,7 +4317,7 @@
}
#if ZEND_DEBUG
- if (!EG(exception) && call->func && !(call->func->common.fn_flags & ZEND_ACC_FAKE_CLOSURE)) {
+ if (!EG(exception) && !ZEND_HAS_OOM() && call->func && !(call->func->common.fn_flags & ZEND_ACC_FAKE_CLOSURE)) {
if (should_throw) {
zend_internal_call_arginfo_violation(call->func);
}
@@ -6585,7 +6586,11 @@
}
}
FREE_OP1();
- ZEND_VM_NEXT_OPCODE();
+ if (OP1_TYPE & IS_CONST) {
+ ZEND_VM_NEXT_OPCODE();
+ } else {
+ ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
+ }
}
ZEND_VM_HANDLER(153, ZEND_UNSET_CV, CV, UNUSED)
@@ -8133,9 +8138,11 @@
{
const zend_op *throw_op = EG(opline_before_exception);
- /* Exception was thrown before executing any op */
+ /* Exception was thrown before executing any op, or between two ops (see
+ * zend_handle_delayed_oom()). */
if (UNEXPECTED(!throw_op)) {
- ZEND_VM_DISPATCH_TO_HELPER(zend_dispatch_try_catch_finally_helper, try_catch_offset, -1, op_num, 0);
+ free_unfinished_calls(execute_data);
+ ZEND_VM_DISPATCH_TO_HELPER(zend_dispatch_try_catch_finally_helper, try_catch_offset, -1, op_num, -1);
}
uint32_t throw_op_num = throw_op - EX(func)->op_array.opcodes;
@@ -8965,7 +8972,7 @@
}
#if ZEND_DEBUG
- if (!EG(exception) && call->func) {
+ if (!EG(exception) && !ZEND_HAS_OOM() && call->func) {
if (should_throw) {
zend_internal_call_arginfo_violation(call->func);
}
@@ -9693,6 +9700,7 @@
zend_frameless_function_0 function = (zend_frameless_function_0)ZEND_FLF_HANDLER(opline);
function(EX_VAR(opline->result.var));
}
+ ZEND_VM_FCALL_INTERRUPT_CHECK(execute_data);
ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
}
@@ -9719,6 +9727,7 @@
function(result, arg1);
}
FREE_OP1();
+ ZEND_VM_FCALL_INTERRUPT_CHECK(execute_data);
ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
}
@@ -9753,6 +9762,7 @@
ZVAL_UNDEF(EX_VAR(opline->op1.var));
}
FREE_OP2();
+ ZEND_VM_FCALL_INTERRUPT_CHECK(execute_data);
ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
}
@@ -9793,6 +9803,7 @@
ZVAL_UNDEF(EX_VAR(opline->op2.var));
}
FREE_OP_DATA();
+ ZEND_VM_FCALL_INTERRUPT_CHECK(execute_data);
ZEND_VM_NEXT_OPCODE_EX(1, 2);
}
@@ -10416,6 +10427,9 @@
SAVE_OPLINE();
if (zend_atomic_bool_load_ex(&EG(timed_out))) {
zend_timeout();
+ } else if (ZEND_HAS_OOM()) {
+ zend_handle_delayed_oom();
+ HANDLE_EXCEPTION();
} else if (zend_interrupt_function) {
zend_interrupt_function(execute_data);
if (EG(exception)) {
diff -Nru php8.4-8.4.26/Zend/zend_vm_execute.h php8.4-8.4.27/Zend/zend_vm_execute.h
--- php8.4-8.4.26/Zend/zend_vm_execute.h 2026-09-22 15:00:02.000000000 +0000
+++ php8.4-8.4.27/Zend/zend_vm_execute.h 2026-10-19 14:38:59.000000000 +0000
@@ -1287,7 +1287,7 @@
fbc->internal_function.handler(call, ret);
#if ZEND_DEBUG
- if (!EG(exception) && call->func) {
+ if (!EG(exception) && !ZEND_HAS_OOM() && call->func) {
if (should_throw) {
zend_internal_call_arginfo_violation(call->func);
}
@@ -1351,7 +1351,7 @@
fbc->internal_function.handler(call, ret);
#if ZEND_DEBUG
- if (!EG(exception) && call->func) {
+ if (!EG(exception) && !ZEND_HAS_OOM() && call->func) {
if (should_throw) {
zend_internal_call_arginfo_violation(call->func);
}
@@ -1416,7 +1416,7 @@
fbc->internal_function.handler(call, ret);
#if ZEND_DEBUG
- if (!EG(exception) && call->func) {
+ if (!EG(exception) && !ZEND_HAS_OOM() && call->func) {
if (should_throw) {
zend_internal_call_arginfo_violation(call->func);
}
@@ -1584,7 +1584,7 @@
fbc->internal_function.handler(call, ret);
#if ZEND_DEBUG
- if (!EG(exception) && call->func) {
+ if (!EG(exception) && !ZEND_HAS_OOM() && call->func) {
if (should_throw) {
zend_internal_call_arginfo_violation(call->func);
}
@@ -1686,7 +1686,7 @@
fbc->internal_function.handler(call, ret);
#if ZEND_DEBUG
- if (!EG(exception) && call->func) {
+ if (!EG(exception) && !ZEND_HAS_OOM() && call->func) {
if (should_throw) {
zend_internal_call_arginfo_violation(call->func);
}
@@ -1790,7 +1790,7 @@
fbc->internal_function.handler(call, ret);
#if ZEND_DEBUG
- if (!EG(exception) && call->func) {
+ if (!EG(exception) && !ZEND_HAS_OOM() && call->func) {
if (should_throw) {
zend_internal_call_arginfo_violation(call->func);
}
@@ -1910,7 +1910,7 @@
}
#if ZEND_DEBUG
- if (!EG(exception) && call->func && !(call->func->common.fn_flags & ZEND_ACC_FAKE_CLOSURE)) {
+ if (!EG(exception) && !ZEND_HAS_OOM() && call->func && !(call->func->common.fn_flags & ZEND_ACC_FAKE_CLOSURE)) {
if (should_throw) {
zend_internal_call_arginfo_violation(call->func);
}
@@ -2028,7 +2028,7 @@
}
#if ZEND_DEBUG
- if (!EG(exception) && call->func && !(call->func->common.fn_flags & ZEND_ACC_FAKE_CLOSURE)) {
+ if (!EG(exception) && !ZEND_HAS_OOM() && call->func && !(call->func->common.fn_flags & ZEND_ACC_FAKE_CLOSURE)) {
if (should_throw) {
zend_internal_call_arginfo_violation(call->func);
}
@@ -2147,7 +2147,7 @@
}
#if ZEND_DEBUG
- if (!EG(exception) && call->func && !(call->func->common.fn_flags & ZEND_ACC_FAKE_CLOSURE)) {
+ if (!EG(exception) && !ZEND_HAS_OOM() && call->func && !(call->func->common.fn_flags & ZEND_ACC_FAKE_CLOSURE)) {
if (should_throw) {
zend_internal_call_arginfo_violation(call->func);
}
@@ -3253,9 +3253,11 @@
{
const zend_op *throw_op = EG(opline_before_exception);
- /* Exception was thrown before executing any op */
+ /* Exception was thrown before executing any op, or between two ops (see
+ * zend_handle_delayed_oom()). */
if (UNEXPECTED(!throw_op)) {
- ZEND_VM_TAIL_CALL(zend_dispatch_try_catch_finally_helper_SPEC(-1, 0 ZEND_OPCODE_HANDLER_ARGS_PASSTHRU_CC));
+ free_unfinished_calls(execute_data);
+ ZEND_VM_TAIL_CALL(zend_dispatch_try_catch_finally_helper_SPEC(-1, -1 ZEND_OPCODE_HANDLER_ARGS_PASSTHRU_CC));
}
uint32_t throw_op_num = throw_op - EX(func)->op_array.opcodes;
@@ -3525,7 +3527,7 @@
}
#if ZEND_DEBUG
- if (!EG(exception) && call->func) {
+ if (!EG(exception) && !ZEND_HAS_OOM() && call->func) {
if (should_throw) {
zend_internal_call_arginfo_violation(call->func);
}
@@ -3668,7 +3670,7 @@
}
#if ZEND_DEBUG
- if (!EG(exception) && call->func) {
+ if (!EG(exception) && !ZEND_HAS_OOM() && call->func) {
if (should_throw) {
zend_internal_call_arginfo_violation(call->func);
}
@@ -3745,6 +3747,7 @@
ZVAL_UNDEF(EX_VAR(opline->op1.var));
}
FREE_OP(opline->op2_type, opline->op2.var);
+ ZEND_VM_FCALL_INTERRUPT_CHECK(execute_data);
ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
}
@@ -3779,6 +3782,7 @@
ZVAL_UNDEF(EX_VAR(opline->op1.var));
}
FREE_OP(opline->op2_type, opline->op2.var);
+ ZEND_VM_FCALL_INTERRUPT_CHECK(execute_data);
ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
}
@@ -3819,6 +3823,7 @@
ZVAL_UNDEF(EX_VAR(opline->op2.var));
}
FREE_OP((opline+1)->op1_type, (opline+1)->op1.var);
+ ZEND_VM_FCALL_INTERRUPT_CHECK(execute_data);
ZEND_VM_NEXT_OPCODE_EX(1, 2);
}
@@ -3859,6 +3864,7 @@
ZVAL_UNDEF(EX_VAR(opline->op2.var));
}
FREE_OP((opline+1)->op1_type, (opline+1)->op1.var);
+ ZEND_VM_FCALL_INTERRUPT_CHECK(execute_data);
ZEND_VM_NEXT_OPCODE_EX(1, 2);
}
@@ -3876,6 +3882,9 @@
SAVE_OPLINE();
if (zend_atomic_bool_load_ex(&EG(timed_out))) {
zend_timeout();
+ } else if (ZEND_HAS_OOM()) {
+ zend_handle_delayed_oom();
+ HANDLE_EXCEPTION();
} else if (zend_interrupt_function) {
zend_interrupt_function(execute_data);
if (EG(exception)) {
@@ -4274,6 +4283,7 @@
function(result, arg1);
}
FREE_OP(opline->op1_type, opline->op1.var);
+ ZEND_VM_FCALL_INTERRUPT_CHECK(execute_data);
ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
}
@@ -4300,6 +4310,7 @@
function(result, arg1);
}
FREE_OP(opline->op1_type, opline->op1.var);
+ ZEND_VM_FCALL_INTERRUPT_CHECK(execute_data);
ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
}
@@ -5306,7 +5317,11 @@
}
}
- ZEND_VM_NEXT_OPCODE();
+ if (IS_CONST & IS_CONST) {
+ ZEND_VM_NEXT_OPCODE();
+ } else {
+ ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
+ }
}
static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_INCLUDE_OR_EVAL_SPEC_OBSERVER_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
@@ -5389,7 +5404,11 @@
}
}
FREE_OP(opline->op1_type, opline->op1.var);
- ZEND_VM_NEXT_OPCODE();
+ if (opline->op1_type & IS_CONST) {
+ ZEND_VM_NEXT_OPCODE();
+ } else {
+ ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
+ }
}
static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FE_RESET_R_SPEC_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
@@ -15394,7 +15413,11 @@
}
}
zval_ptr_dtor_nogc(EX_VAR(opline->op1.var));
- ZEND_VM_NEXT_OPCODE();
+ if ((IS_TMP_VAR|IS_VAR) & IS_CONST) {
+ ZEND_VM_NEXT_OPCODE();
+ } else {
+ ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
+ }
}
static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_YIELD_FROM_SPEC_TMPVAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
@@ -20647,6 +20670,7 @@
zval *var, *ret;
uint32_t i;
+ SAVE_OPLINE();
rope = (zend_string**)EX_VAR(opline->op1.var);
if (IS_CONST == IS_CONST) {
var = RT_CONSTANT(opline, opline->op2);
@@ -21125,6 +21149,7 @@
zval *var, *ret;
uint32_t i;
+ SAVE_OPLINE();
rope = (zend_string**)EX_VAR(opline->op1.var);
if ((IS_TMP_VAR|IS_VAR) == IS_CONST) {
var = _get_zval_ptr_var(opline->op2.var EXECUTE_DATA_CC);
@@ -21987,6 +22012,7 @@
zval *var, *ret;
uint32_t i;
+ SAVE_OPLINE();
rope = (zend_string**)EX_VAR(opline->op1.var);
if (IS_CV == IS_CONST) {
var = _get_zval_ptr_cv_BP_VAR_R(opline->op2.var EXECUTE_DATA_CC);
@@ -38395,6 +38421,7 @@
zend_frameless_function_0 function = (zend_frameless_function_0)ZEND_FLF_HANDLER(opline);
function(EX_VAR(opline->result.var));
}
+ ZEND_VM_FCALL_INTERRUPT_CHECK(execute_data);
ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
}
@@ -38415,6 +38442,7 @@
zend_frameless_function_0 function = (zend_frameless_function_0)ZEND_FLF_HANDLER(opline);
function(EX_VAR(opline->result.var));
}
+ ZEND_VM_FCALL_INTERRUPT_CHECK(execute_data);
ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
}
@@ -41213,7 +41241,11 @@
}
}
- ZEND_VM_NEXT_OPCODE();
+ if (IS_CV & IS_CONST) {
+ ZEND_VM_NEXT_OPCODE();
+ } else {
+ ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
+ }
}
static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_FE_RESET_R_SPEC_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
diff -Nru php8.4-8.4.26/configure php8.4-8.4.27/configure
--- php8.4-8.4.26/configure 2026-09-22 15:00:02.000000000 +0000
+++ php8.4-8.4.27/configure 2026-10-19 14:38:59.000000000 +0000
@@ -1,11 +1,11 @@
#! /bin/sh
# Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.72 for PHP 8.4.26.
+# Generated by GNU Autoconf 2.73 for PHP 8.4.27.
#
# Report bugs to .
#
#
-# Copyright (C) 1992-1996, 1998-2017, 2020-2023 Free Software Foundation,
+# Copyright (C) 1992-1996, 1998-2017, 2020-2026 Free Software Foundation,
# Inc.
#
#
@@ -22,7 +22,7 @@
emulate sh
NULLCMD=:
# Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which
- # is contrary to our usage. Disable this feature.
+ # contradicts POSIX and common usage. Disable this.
alias -g '${1+"$@"}'='"$@"'
setopt NO_GLOB_SUBST
else case e in #(
@@ -109,7 +109,7 @@
as_myself=$0
fi
if test ! -f "$as_myself"; then
- printf "%s\n" "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2
+ printf '%s\n' "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2
exit 1
fi
@@ -131,10 +131,13 @@
*x* ) as_opts=-x ;;
* ) as_opts= ;;
esac
-exec $CONFIG_SHELL $as_opts "$as_myself" ${1+"$@"}
+case $# in # ((
+ 0) exec $CONFIG_SHELL $as_opts "$as_myself" ;;
+ *) exec $CONFIG_SHELL $as_opts "$as_myself" "$@" ;;
+esac
# Admittedly, this is quite paranoid, since all the known shells bail
# out after a failed 'exec'.
-printf "%s\n" "$0: could not re-execute with $CONFIG_SHELL" >&2
+printf '%s\n' "$0: could not re-execute with $CONFIG_SHELL" >&2
exit 255
fi
# We don't want this to propagate to other subprocesses.
@@ -145,7 +148,7 @@
emulate sh
NULLCMD=:
# Pre-4.2 versions of Zsh do word splitting on \${1+\"\$@\"}, which
- # is contrary to our usage. Disable this feature.
+ # contradicts POSIX and common usage. Disable this.
alias -g '\${1+\"\$@\"}'='\"\$@\"'
setopt NO_GLOB_SUBST
else case e in #(
@@ -255,22 +258,25 @@
*x* ) as_opts=-x ;;
* ) as_opts= ;;
esac
-exec $CONFIG_SHELL $as_opts "$as_myself" ${1+"$@"}
+case $# in # ((
+ 0) exec $CONFIG_SHELL $as_opts "$as_myself" ;;
+ *) exec $CONFIG_SHELL $as_opts "$as_myself" "$@" ;;
+esac
# Admittedly, this is quite paranoid, since all the known shells bail
# out after a failed 'exec'.
-printf "%s\n" "$0: could not re-execute with $CONFIG_SHELL" >&2
+printf '%s\n' "$0: could not re-execute with $CONFIG_SHELL" >&2
exit 255
fi
if test x$as_have_required = xno
then :
- printf "%s\n" "$0: This script requires a shell more modern than all"
- printf "%s\n" "$0: the shells that I found on your system."
+ printf '%s\n' "$0: This script requires a shell more modern than all"
+ printf '%s\n' "$0: the shells that I found on your system."
if test ${ZSH_VERSION+y} ; then
- printf "%s\n" "$0: In particular, zsh $ZSH_VERSION has bugs and should"
- printf "%s\n" "$0: be upgraded to zsh 4.3.4 or later."
+ printf '%s\n' "$0: In particular, zsh $ZSH_VERSION has bugs and should"
+ printf '%s\n' "$0: be upgraded to zsh 4.3.4 or later."
else
- printf "%s\n" "$0: Please tell bug-autoconf@gnu.org and
+ printf '%s\n' "$0: Please tell bug-autoconf@gnu.org and
$0: https://github.com/php/php-src/issues about your
$0: system, including any error possibly output before this
$0: message. Then install a modern shell, or manually run
@@ -331,7 +337,7 @@
as_dirs=
while :; do
case $as_dir in #(
- *\'*) as_qdir=`printf "%s\n" "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'(
+ *\'*) as_qdir=`printf '%s\n' "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'(
*) as_qdir=$as_dir;;
esac
as_dirs="'$as_qdir' $as_dirs"
@@ -340,7 +346,7 @@
X"$as_dir" : 'X\(//\)[^/]' \| \
X"$as_dir" : 'X\(//\)$' \| \
X"$as_dir" : 'X\(/\)' \| . 2>/dev/null ||
-printf "%s\n" X"$as_dir" |
+printf '%s\n' X"$as_dir" |
sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
s//\1/
q
@@ -423,9 +429,9 @@
as_status=$1; test $as_status -eq 0 && as_status=1
if test "$4"; then
as_lineno=${as_lineno-"$3"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
- printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: $2" >&$4
+ printf '%s\n' "$as_me:${as_lineno-$LINENO}: error: $2" >&$4
fi
- printf "%s\n" "$as_me: error: $2" >&2
+ printf '%s\n' "$as_me: error: $2" >&2
as_fn_exit $as_status
} # as_fn_error
@@ -452,7 +458,7 @@
$as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \
X"$0" : 'X\(//\)$' \| \
X"$0" : 'X\(/\)' \| . 2>/dev/null ||
-printf "%s\n" X/"$0" |
+printf '%s\n' X/"$0" |
sed '/^.*\/\([^/][^/]*\)\/*$/{
s//\1/
q
@@ -498,7 +504,7 @@
s/-\n.*//
' >$as_me.lineno &&
chmod +x "$as_me.lineno" ||
- { printf "%s\n" "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2; as_fn_exit 1; }
+ { printf '%s\n' "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2; as_fn_exit 1; }
# If we had to re-execute with $CONFIG_SHELL, we're ensured to have
# already done that, so ensure we don't try to do so again and fall
@@ -512,29 +518,6 @@
exit
}
-
-# Determine whether it's possible to make 'echo' print without a newline.
-# These variables are no longer used directly by Autoconf, but are AC_SUBSTed
-# for compatibility with existing Makefiles.
-ECHO_C= ECHO_N= ECHO_T=
-case `echo -n x` in #(((((
--n*)
- case `echo 'xy\c'` in
- *c*) ECHO_T=' ';; # ECHO_T is single tab character.
- xy) ECHO_C='\c';;
- *) echo `echo ksh88 bug on AIX 6.1` > /dev/null
- ECHO_T=' ';;
- esac;;
-*)
- ECHO_N='-n';;
-esac
-
-# For backward compatibility with old third-party macros, we provide
-# the shell variables $as_echo and $as_echo_n. New code should use
-# AS_ECHO(["message"]) and AS_ECHO_N(["message"]), respectively.
-as_echo='printf %s\n'
-as_echo_n='printf %s'
-
rm -f conf$$ conf$$.exe conf$$.file
if test -d conf$$.dir; then
rm -f conf$$.dir/conf$$.file
@@ -634,8 +617,10 @@
if (d1 < d2) exit 1
if (d1 > d2) exit 2
}
- # Beware Solaris /usr/xgp4/bin/awk (at least through Solaris 10),
- # which mishandles some comparisons of empty strings to integers.
+ # Beware Solaris 11 /usr/xgp4/bin/awk, which mishandles some
+ # comparisons of empty strings to integers. For example,
+ # LC_ALL=C /usr/xpg4/bin/awk "BEGIN {if (-1 < \"\") print \"a\"}"
+ # prints "a".
if (length(v2)) exit 1
if (length(v1)) exit 2
}
@@ -805,6 +790,7 @@
# Initializations.
#
ac_default_prefix=/usr/local
+ac_clean_CONFIG_STATUS=
ac_clean_files=
ac_config_libobj_dir=.
LIBOBJS=
@@ -816,8 +802,8 @@
# Identity of this package.
PACKAGE_NAME='PHP'
PACKAGE_TARNAME='php'
-PACKAGE_VERSION='8.4.26'
-PACKAGE_STRING='PHP 8.4.26'
+PACKAGE_VERSION='8.4.27'
+PACKAGE_STRING='PHP 8.4.27'
PACKAGE_BUGREPORT='https://github.com/php/php-src/issues'
PACKAGE_URL='https://www.php.net'
@@ -1022,13 +1008,13 @@
SED
EGREP
GREP
+ECHO_T
+ECHO_N
+ECHO_C
target_alias
host_alias
build_alias
LIBS
-ECHO_T
-ECHO_N
-ECHO_C
DEFS
mandir
localedir
@@ -1178,13 +1164,13 @@
enable_opcache_jit
with_capstone
enable_pcntl
-enable_pdo
with_pdo_dblib
with_pdo_firebird
with_pdo_mysql
with_pdo_odbc
with_pdo_pgsql
with_pdo_sqlite
+enable_pdo
with_pgsql
enable_phar
enable_posix
@@ -1434,7 +1420,7 @@
expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null &&
as_fn_error $? "invalid feature name: '$ac_useropt'"
ac_useropt_orig=$ac_useropt
- ac_useropt=`printf "%s\n" "$ac_useropt" | sed 's/[-+.]/_/g'`
+ ac_useropt=`printf '%s\n' "$ac_useropt" | sed 's/[-+.]/_/g'`
case $ac_user_opts in
*"
"enable_$ac_useropt"
@@ -1460,7 +1446,7 @@
expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null &&
as_fn_error $? "invalid feature name: '$ac_useropt'"
ac_useropt_orig=$ac_useropt
- ac_useropt=`printf "%s\n" "$ac_useropt" | sed 's/[-+.]/_/g'`
+ ac_useropt=`printf '%s\n' "$ac_useropt" | sed 's/[-+.]/_/g'`
case $ac_user_opts in
*"
"enable_$ac_useropt"
@@ -1673,7 +1659,7 @@
expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null &&
as_fn_error $? "invalid package name: '$ac_useropt'"
ac_useropt_orig=$ac_useropt
- ac_useropt=`printf "%s\n" "$ac_useropt" | sed 's/[-+.]/_/g'`
+ ac_useropt=`printf '%s\n' "$ac_useropt" | sed 's/[-+.]/_/g'`
case $ac_user_opts in
*"
"with_$ac_useropt"
@@ -1689,7 +1675,7 @@
expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null &&
as_fn_error $? "invalid package name: '$ac_useropt'"
ac_useropt_orig=$ac_useropt
- ac_useropt=`printf "%s\n" "$ac_useropt" | sed 's/[-+.]/_/g'`
+ ac_useropt=`printf '%s\n' "$ac_useropt" | sed 's/[-+.]/_/g'`
case $ac_user_opts in
*"
"with_$ac_useropt"
@@ -1733,9 +1719,9 @@
*)
# FIXME: should be removed in autoconf 3.0.
- printf "%s\n" "$as_me: WARNING: you should use --build, --host, --target" >&2
+ printf '%s\n' "$as_me: WARNING: you should use --build, --host, --target" >&2
expr "x$ac_option" : ".*[^-._$as_cr_alnum]" >/dev/null &&
- printf "%s\n" "$as_me: WARNING: invalid host type: $ac_option" >&2
+ printf '%s\n' "$as_me: WARNING: invalid host type: $ac_option" >&2
: "${build_alias=$ac_option} ${host_alias=$ac_option} ${target_alias=$ac_option}"
;;
@@ -1743,7 +1729,7 @@
done
if test -n "$ac_prev"; then
- ac_option=--`echo $ac_prev | sed 's/_/-/g'`
+ ac_option=--`printf '%s\n' $ac_prev | sed 's/_/-/g'`
as_fn_error $? "missing argument to $ac_option"
fi
@@ -1751,7 +1737,7 @@
case $enable_option_checking in
no) ;;
fatal) as_fn_error $? "unrecognized options: $ac_unrecognized_opts" ;;
- *) printf "%s\n" "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2 ;;
+ *) printf '%s\n' "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2 ;;
esac
fi
@@ -1815,7 +1801,7 @@
X"$as_myself" : 'X\(//\)[^/]' \| \
X"$as_myself" : 'X\(//\)$' \| \
X"$as_myself" : 'X\(/\)' \| . 2>/dev/null ||
-printf "%s\n" X"$as_myself" |
+printf '%s\n' X"$as_myself" |
sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
s//\1/
q
@@ -1872,7 +1858,7 @@
# Omit some internal or obsolete options to make the list less imposing.
# This message is too long to be a string in the A/UX 3.1 sh.
cat <<_ACEOF
-'configure' configures PHP 8.4.26 to adapt to many kinds of systems.
+'configure' configures PHP 8.4.27 to adapt to many kinds of systems.
Usage: $0 [OPTION]... [VAR=VALUE]...
@@ -1944,7 +1930,7 @@
if test -n "$ac_init_help"; then
case $ac_init_help in
- short | recursive ) echo "Configuration of PHP 8.4.26:";;
+ short | recursive ) echo "Configuration of PHP 8.4.27:";;
esac
cat <<\_ACEOF
@@ -2140,7 +2126,6 @@
--disable-opcache-jit Disable JIT
--with-capstone Support opcache JIT disassembly through Capstone
--enable-pcntl Enable pcntl support (CLI/CGI only)
- --disable-pdo Disable PHP Data Objects support
--with-pdo-dblib[=DIR] PDO: DBLIB-DB support. DIR is the FreeTDS home
directory
--with-pdo-firebird[=DIR]
@@ -2169,6 +2154,7 @@
environment variables can be used instead of the DIR
argument to customize the libpq paths.
--without-pdo-sqlite PDO: sqlite 3 support.
+ --disable-pdo Disable PHP Data Objects support
--with-pgsql[=DIR] Include PostgreSQL support. Optional DIR is the
PostgreSQL base install directory or the path to
pg_config. Also, the PGSQL_CFLAGS and PGSQL_LIBS
@@ -2401,9 +2387,9 @@
case "$ac_dir" in
.) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;;
*)
- ac_dir_suffix=/`printf "%s\n" "$ac_dir" | sed 's|^\.[\\/]||'`
+ ac_dir_suffix=/`printf '%s\n' "$ac_dir" | sed 's|^\.[\\/]||'`
# A ".." for each directory in $ac_dir_suffix.
- ac_top_builddir_sub=`printf "%s\n" "$ac_dir_suffix" | sed 's|/[^\\/]*|/..|g;s|/||'`
+ ac_top_builddir_sub=`printf '%s\n' "$ac_dir_suffix" | sed 's|/[^\\/]*|/..|g;s|/||'`
case $ac_top_builddir_sub in
"") ac_top_builddir_sub=. ac_top_build_prefix= ;;
*) ac_top_build_prefix=$ac_top_builddir_sub/ ;;
@@ -2440,7 +2426,7 @@
echo &&
$SHELL "$ac_srcdir/configure" --help=recursive
else
- printf "%s\n" "$as_me: WARNING: no configuration information is in $ac_dir" >&2
+ printf '%s\n' "$as_me: WARNING: no configuration information is in $ac_dir" >&2
fi || ac_status=$?
cd "$ac_pwd" || { ac_status=$?; break; }
done
@@ -2449,10 +2435,10 @@
test -n "$ac_init_help" && exit $ac_status
if $ac_init_version; then
cat <<\_ACEOF
-PHP configure 8.4.26
-generated by GNU Autoconf 2.72
+PHP configure 8.4.27
+generated by GNU Autoconf 2.73
-Copyright (C) 2023 Free Software Foundation, Inc.
+Copyright (C) 2026 Free Software Foundation, Inc.
This configure script is free software; the Free Software Foundation
gives unlimited permission to copy, distribute and modify it.
_ACEOF
@@ -2476,7 +2462,7 @@
*) ac_try_echo=$ac_try;;
esac
eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
-printf "%s\n" "$ac_try_echo"; } >&5
+printf '%s\n' "$ac_try_echo"; } >&5
(eval "$ac_compile") 2>conftest.err
ac_status=$?
if test -s conftest.err; then
@@ -2484,7 +2470,7 @@
cat conftest.er1 >&5
mv -f conftest.er1 conftest.err
fi
- printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ printf '%s\n' "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
test $ac_status = 0; } && {
test -z "$ac_c_werror_flag" ||
test ! -s conftest.err
@@ -2492,7 +2478,7 @@
then :
ac_retval=0
else case e in #(
- e) printf "%s\n" "$as_me: failed program was:" >&5
+ e) printf '%s\n' "$as_me: failed program was:" >&5
sed 's/^/| /' conftest.$ac_ext >&5
ac_retval=1 ;;
@@ -2515,7 +2501,7 @@
*) ac_try_echo=$ac_try;;
esac
eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
-printf "%s\n" "$ac_try_echo"; } >&5
+printf '%s\n' "$ac_try_echo"; } >&5
(eval "$ac_cpp conftest.$ac_ext") 2>conftest.err
ac_status=$?
if test -s conftest.err; then
@@ -2523,7 +2509,7 @@
cat conftest.er1 >&5
mv -f conftest.er1 conftest.err
fi
- printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ printf '%s\n' "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
test $ac_status = 0; } > conftest.i && {
test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" ||
test ! -s conftest.err
@@ -2531,7 +2517,7 @@
then :
ac_retval=0
else case e in #(
- e) printf "%s\n" "$as_me: failed program was:" >&5
+ e) printf '%s\n' "$as_me: failed program was:" >&5
sed 's/^/| /' conftest.$ac_ext >&5
ac_retval=1 ;;
@@ -2549,7 +2535,7 @@
ac_fn_c_check_header_compile ()
{
as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $2" >&5
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for $2" >&5
printf %s "checking for $2... " >&6; }
if eval test \${$3+y}
then :
@@ -2571,8 +2557,8 @@
esac
fi
eval ac_res=\$$3
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
-printf "%s\n" "$ac_res" >&6; }
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
+printf '%s\n' "$ac_res" >&6; }
eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
} # ac_fn_c_check_header_compile
@@ -2590,7 +2576,7 @@
*) ac_try_echo=$ac_try;;
esac
eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
-printf "%s\n" "$ac_try_echo"; } >&5
+printf '%s\n' "$ac_try_echo"; } >&5
(eval "$ac_link") 2>conftest.err
ac_status=$?
if test -s conftest.err; then
@@ -2598,7 +2584,7 @@
cat conftest.er1 >&5
mv -f conftest.er1 conftest.err
fi
- printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ printf '%s\n' "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
test $ac_status = 0; } && {
test -z "$ac_c_werror_flag" ||
test ! -s conftest.err
@@ -2609,7 +2595,7 @@
then :
ac_retval=0
else case e in #(
- e) printf "%s\n" "$as_me: failed program was:" >&5
+ e) printf '%s\n' "$as_me: failed program was:" >&5
sed 's/^/| /' conftest.$ac_ext >&5
ac_retval=1 ;;
@@ -2631,7 +2617,7 @@
ac_fn_c_check_func ()
{
as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $2" >&5
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for $2" >&5
printf %s "checking for $2... " >&6; }
if eval test \${$3+y}
then :
@@ -2683,8 +2669,8 @@
esac
fi
eval ac_res=\$$3
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
-printf "%s\n" "$ac_res" >&6; }
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
+printf '%s\n' "$ac_res" >&6; }
eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
} # ac_fn_c_check_func
@@ -2702,26 +2688,26 @@
*) ac_try_echo=$ac_try;;
esac
eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
-printf "%s\n" "$ac_try_echo"; } >&5
+printf '%s\n' "$ac_try_echo"; } >&5
(eval "$ac_link") 2>&5
ac_status=$?
- printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ printf '%s\n' "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
test $ac_status = 0; } && { ac_try='./conftest$ac_exeext'
{ { case "(($ac_try" in
*\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
*) ac_try_echo=$ac_try;;
esac
eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
-printf "%s\n" "$ac_try_echo"; } >&5
+printf '%s\n' "$ac_try_echo"; } >&5
(eval "$ac_try") 2>&5
ac_status=$?
- printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ printf '%s\n' "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
test $ac_status = 0; }; }
then :
ac_retval=0
else case e in #(
- e) printf "%s\n" "$as_me: program exited with status $ac_status" >&5
- printf "%s\n" "$as_me: failed program was:" >&5
+ e) printf '%s\n' "$as_me: program exited with status $ac_status" >&5
+ printf '%s\n' "$as_me: failed program was:" >&5
sed 's/^/| /' conftest.$ac_ext >&5
ac_retval=$ac_status ;;
@@ -2746,7 +2732,7 @@
*) ac_try_echo=$ac_try;;
esac
eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
-printf "%s\n" "$ac_try_echo"; } >&5
+printf '%s\n' "$ac_try_echo"; } >&5
(eval "$ac_compile") 2>conftest.err
ac_status=$?
if test -s conftest.err; then
@@ -2754,7 +2740,7 @@
cat conftest.er1 >&5
mv -f conftest.er1 conftest.err
fi
- printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ printf '%s\n' "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
test $ac_status = 0; } && {
test -z "$ac_cxx_werror_flag" ||
test ! -s conftest.err
@@ -2762,7 +2748,7 @@
then :
ac_retval=0
else case e in #(
- e) printf "%s\n" "$as_me: failed program was:" >&5
+ e) printf '%s\n' "$as_me: failed program was:" >&5
sed 's/^/| /' conftest.$ac_ext >&5
ac_retval=1 ;;
@@ -2785,7 +2771,7 @@
*) ac_try_echo=$ac_try;;
esac
eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
-printf "%s\n" "$ac_try_echo"; } >&5
+printf '%s\n' "$ac_try_echo"; } >&5
(eval "$ac_cpp conftest.$ac_ext") 2>conftest.err
ac_status=$?
if test -s conftest.err; then
@@ -2793,7 +2779,7 @@
cat conftest.er1 >&5
mv -f conftest.er1 conftest.err
fi
- printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ printf '%s\n' "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
test $ac_status = 0; } > conftest.i && {
test -z "$ac_cxx_preproc_warn_flag$ac_cxx_werror_flag" ||
test ! -s conftest.err
@@ -2801,7 +2787,7 @@
then :
ac_retval=0
else case e in #(
- e) printf "%s\n" "$as_me: failed program was:" >&5
+ e) printf '%s\n' "$as_me: failed program was:" >&5
sed 's/^/| /' conftest.$ac_ext >&5
ac_retval=1 ;;
@@ -2820,7 +2806,7 @@
{
as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
as_decl_name=`echo $2|sed 's/ *(.*//'`
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether $as_decl_name is declared" >&5
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking whether $as_decl_name is declared" >&5
printf %s "checking whether $as_decl_name is declared... " >&6; }
if eval test \${$3+y}
then :
@@ -2860,8 +2846,8 @@
esac
fi
eval ac_res=\$$3
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
-printf "%s\n" "$ac_res" >&6; }
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
+printf '%s\n' "$ac_res" >&6; }
eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
} # ac_fn_check_decl
@@ -2873,7 +2859,7 @@
ac_fn_c_check_member ()
{
as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $2.$3" >&5
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for $2.$3" >&5
printf %s "checking for $2.$3... " >&6; }
if eval test \${$4+y}
then :
@@ -2923,8 +2909,8 @@
esac
fi
eval ac_res=\$$4
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
-printf "%s\n" "$ac_res" >&6; }
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
+printf '%s\n' "$ac_res" >&6; }
eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
} # ac_fn_c_check_member
@@ -2936,7 +2922,7 @@
ac_fn_c_check_type ()
{
as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $2" >&5
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for $2" >&5
printf %s "checking for $2... " >&6; }
if eval test \${$3+y}
then :
@@ -2982,8 +2968,8 @@
esac
fi
eval ac_res=\$$3
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
-printf "%s\n" "$ac_res" >&6; }
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
+printf '%s\n' "$ac_res" >&6; }
eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
} # ac_fn_c_check_type
@@ -3187,7 +3173,7 @@
do
case $ac_arg in
*\'*)
- ac_arg=`printf "%s\n" "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;;
+ ac_arg=`printf '%s\n' "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;;
esac
as_fn_append ac_configure_args_raw " '$ac_arg'"
done
@@ -3199,15 +3185,15 @@
ac_unsafe_z='|&;<>()$`\\"*?[ '' ' # This string ends in space, tab.
ac_unsafe_a="$ac_unsafe_z#~"
ac_safe_unquote="s/ '\\([^$ac_unsafe_a][^$ac_unsafe_z]*\\)'/ \\1/g"
- ac_configure_args_raw=` printf "%s\n" "$ac_configure_args_raw" | sed "$ac_safe_unquote"`;;
+ ac_configure_args_raw=` printf '%s\n' "$ac_configure_args_raw" | sed "$ac_safe_unquote"`;;
esac
cat >config.log <<_ACEOF
This file contains any messages produced by compilers while
running configure, to aid debugging if configure makes a mistake.
-It was created by PHP $as_me 8.4.26, which was
-generated by GNU Autoconf 2.72. Invocation command line was
+It was created by PHP $as_me 8.4.27, which was
+generated by GNU Autoconf 2.73. Invocation command line was
$ $0$ac_configure_args_raw
@@ -3247,7 +3233,7 @@
*/) ;;
*) as_dir=$as_dir/ ;;
esac
- printf "%s\n" "PATH: $as_dir"
+ printf '%s\n' "PATH: $as_dir"
done
IFS=$as_save_IFS
@@ -3282,7 +3268,7 @@
| -silent | --silent | --silen | --sile | --sil)
continue ;;
*\'*)
- ac_arg=`printf "%s\n" "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;;
+ ac_arg=`printf '%s\n' "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;;
esac
case $ac_pass in
1) as_fn_append ac_configure_args0 " '$ac_arg'" ;;
@@ -3311,31 +3297,22 @@
{ ac_configure_args0=; unset ac_configure_args0;}
{ ac_configure_args1=; unset ac_configure_args1;}
-# When interrupted or exit'd, cleanup temporary files, and complete
-# config.log. We remove comments because anyway the quotes in there
-# would cause problems or look ugly.
-# WARNING: Use '\'' to represent an apostrophe within the trap.
-# WARNING: Do not start the trap code with a newline, due to a FreeBSD 4.0 bug.
-trap 'exit_status=$?
- # Sanitize IFS.
- IFS=" "" $as_nl"
- # Save into config.log some information that might help in debugging.
- {
- echo
-
- printf "%s\n" "## ---------------- ##
-## Cache variables. ##
-## ---------------- ##"
- echo
- # The following way of writing the cache mishandles newlines in values,
+# Dump the cache to stdout. It can be in a pipe (this is a requirement).
+ac_cache_dump ()
+{
+ # The following way of writing the cache mishandles newlines in values,
+# but we know of no workaround that is simple, portable, and efficient.
+# So, we kill variables containing newlines.
+# Ultrix sh set writes to stderr and can't be redirected directly,
+# and sets the high bit in the cache file unless we assign to the vars.
(
- for ac_var in `(set) 2>&1 | sed -n '\''s/^\([a-zA-Z_][a-zA-Z0-9_]*\)=.*/\1/p'\''`; do
+ for ac_var in `(set) 2>&1 | sed -n 's/^\([a-zA-Z_][a-zA-Z0-9_]*\)=.*/\1/p'`; do
eval ac_val=\$$ac_var
case $ac_val in #(
*${as_nl}*)
case $ac_var in #(
- *_cv_*) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: cache variable $ac_var contains a newline" >&5
-printf "%s\n" "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;;
+ *_cv_*) { printf '%s\n' "$as_me:${as_lineno-$LINENO}: WARNING: cache variable $ac_var contains a newline" >&5
+printf '%s\n' "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;;
esac
case $ac_var in #(
_ | IFS | as_nl) ;; #(
@@ -3344,67 +3321,95 @@
esac ;;
esac
done
+
(set) 2>&1 |
- case $as_nl`(ac_space='\'' '\''; set) 2>&1` in #(
+ case $as_nl`(ac_space=' '; set) 2>&1` in #(
*${as_nl}ac_space=\ *)
+ # 'set' does not quote correctly, so add quotes: double-quote
+ # substitution turns \\\\ into \\, and sed turns \\ into \.
sed -n \
- "s/'\''/'\''\\\\'\'''\''/g;
- s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\''\\2'\''/p"
+ "s/'/'\\\\''/g;
+ s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\\2'/p"
;; #(
*)
+ # 'set' quotes correctly as required by POSIX, so do not add quotes.
sed -n "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p"
;;
esac |
sort
)
- echo
+}
+
+# Print debugging info to stdout.
+ac_dump_debugging_info ()
+{
+ echo
- printf "%s\n" "## ----------------- ##
+ printf '%s\n' "## ---------------- ##
+## Cache variables. ##
+## ---------------- ##"
+ echo
+ ac_cache_dump
+ echo
+
+ printf '%s\n' "## ----------------- ##
## Output variables. ##
## ----------------- ##"
+ echo
+ for ac_var in $ac_subst_vars
+ do
+ eval ac_val=\$$ac_var
+ case $ac_val in
+ *\'*) ac_val=`printf '%s\n' "$ac_val" | sed "s/'/'\\\\\\\\''/g"`;;
+ esac
+ printf '%s\n' "$ac_var='$ac_val'"
+ done | sort
+ echo
+
+ if test -n "$ac_subst_files"; then
+ printf '%s\n' "## ------------------- ##
+## File substitutions. ##
+## ------------------- ##"
echo
- for ac_var in $ac_subst_vars
+ for ac_var in $ac_subst_files
do
eval ac_val=\$$ac_var
case $ac_val in
- *\'\''*) ac_val=`printf "%s\n" "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;;
+ *\'*) ac_val=`printf '%s\n' "$ac_val" | sed "s/'/'\\\\\\\\''/g"`;;
esac
- printf "%s\n" "$ac_var='\''$ac_val'\''"
+ printf '%s\n' "$ac_var='$ac_val'"
done | sort
echo
+ fi
- if test -n "$ac_subst_files"; then
- printf "%s\n" "## ------------------- ##
-## File substitutions. ##
-## ------------------- ##"
- echo
- for ac_var in $ac_subst_files
- do
- eval ac_val=\$$ac_var
- case $ac_val in
- *\'\''*) ac_val=`printf "%s\n" "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;;
- esac
- printf "%s\n" "$ac_var='\''$ac_val'\''"
- done | sort
- echo
- fi
-
- if test -s confdefs.h; then
- printf "%s\n" "## ----------- ##
+ if test -s confdefs.h; then
+ printf '%s\n' "## ----------- ##
## confdefs.h. ##
## ----------- ##"
- echo
- cat confdefs.h
- echo
- fi
- test "$ac_signal" != 0 &&
- printf "%s\n" "$as_me: caught signal $ac_signal"
- printf "%s\n" "$as_me: exit $exit_status"
- } >&5
- rm -f core *.core core.conftest.* &&
+ echo
+ cat confdefs.h
+ echo
+ fi
+ test "$ac_signal" != 0 &&
+ printf '%s\n' "$as_me: caught signal $ac_signal"
+ printf '%s\n' "$as_me: exit $exit_status"
+}
+
+# When interrupted or exit'd, cleanup temporary files, and complete
+# config.log.
+ac_exit_trap ()
+{
+ exit_status=
+ # Sanitize IFS.
+ IFS=" "" $as_nl"
+ # Save into config.log some information that might help in debugging.
+ ac_dump_debugging_info >&5
+ eval "rm -f $ac_clean_CONFIG_STATUS core *.core core.conftest.*" &&
rm -f -r conftest* confdefs* conf$$* $ac_clean_files &&
exit $exit_status
-' 0
+}
+
+trap 'ac_exit_trap $?' 0
for ac_signal in 1 2 13 15; do
trap 'ac_signal='$ac_signal'; as_fn_exit 1' $ac_signal
done
@@ -3413,21 +3418,21 @@
# confdefs.h avoids OS command line length limits that DEFS can exceed.
rm -f -r conftest* confdefs.h
-printf "%s\n" "/* confdefs.h */" > confdefs.h
+printf '%s\n' "/* confdefs.h */" > confdefs.h
# Predefined preprocessor variables.
-printf "%s\n" "#define PACKAGE_NAME \"$PACKAGE_NAME\"" >>confdefs.h
+printf '%s\n' "#define PACKAGE_NAME \"$PACKAGE_NAME\"" >>confdefs.h
-printf "%s\n" "#define PACKAGE_TARNAME \"$PACKAGE_TARNAME\"" >>confdefs.h
+printf '%s\n' "#define PACKAGE_TARNAME \"$PACKAGE_TARNAME\"" >>confdefs.h
-printf "%s\n" "#define PACKAGE_VERSION \"$PACKAGE_VERSION\"" >>confdefs.h
+printf '%s\n' "#define PACKAGE_VERSION \"$PACKAGE_VERSION\"" >>confdefs.h
-printf "%s\n" "#define PACKAGE_STRING \"$PACKAGE_STRING\"" >>confdefs.h
+printf '%s\n' "#define PACKAGE_STRING \"$PACKAGE_STRING\"" >>confdefs.h
-printf "%s\n" "#define PACKAGE_BUGREPORT \"$PACKAGE_BUGREPORT\"" >>confdefs.h
+printf '%s\n' "#define PACKAGE_BUGREPORT \"$PACKAGE_BUGREPORT\"" >>confdefs.h
-printf "%s\n" "#define PACKAGE_URL \"$PACKAGE_URL\"" >>confdefs.h
+printf '%s\n' "#define PACKAGE_URL \"$PACKAGE_URL\"" >>confdefs.h
# Let the site file select an alternate cache file if it wants to.
@@ -3449,12 +3454,12 @@
ac_site_file=./$ac_site_file ;;
esac
if test -f "$ac_site_file" && test -r "$ac_site_file"; then
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: loading site script $ac_site_file" >&5
-printf "%s\n" "$as_me: loading site script $ac_site_file" >&6;}
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: loading site script $ac_site_file" >&5
+printf '%s\n' "$as_me: loading site script $ac_site_file" >&6;}
sed 's/^/| /' "$ac_site_file" >&5
. "$ac_site_file" \
- || { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in '$ac_pwd':" >&5
-printf "%s\n" "$as_me: error: in '$ac_pwd':" >&2;}
+ || { { printf '%s\n' "$as_me:${as_lineno-$LINENO}: error: in '$ac_pwd':" >&5
+printf '%s\n' "$as_me: error: in '$ac_pwd':" >&2;}
as_fn_error $? "failed to load site script $ac_site_file
See 'config.log' for more details" "$LINENO" 5; }
fi
@@ -3464,27 +3469,120 @@
# Some versions of bash will fail to source /dev/null (special files
# actually), so we avoid doing that. DJGPP emulates it as a regular file.
if test /dev/null != "$cache_file" && test -f "$cache_file"; then
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: loading cache $cache_file" >&5
-printf "%s\n" "$as_me: loading cache $cache_file" >&6;}
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: loading cache $cache_file" >&5
+printf '%s\n' "$as_me: loading cache $cache_file" >&6;}
case $cache_file in
[\\/]* | ?:[\\/]* ) . "$cache_file";;
*) . "./$cache_file";;
esac
fi
else
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: creating cache $cache_file" >&5
-printf "%s\n" "$as_me: creating cache $cache_file" >&6;}
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: creating cache $cache_file" >&5
+printf '%s\n' "$as_me: creating cache $cache_file" >&6;}
>$cache_file
fi
+# Test code for whether the C compiler supports C23 (global declarations)
+ac_c_conftest_c23_globals='
+/* Does the compiler advertise conformance to C17 or earlier?
+ Although GCC 14 does not do that, even with -std=gnu23,
+ it is close enough, and defines __STDC_VERSION == 202000L. */
+#if !defined __STDC_VERSION__ || __STDC_VERSION__ <= 201710L
+# error "Compiler advertises conformance to C17 or earlier"
+#endif
+
+// Check alignas.
+char alignas (double) c23_aligned_as_double;
+char alignas (0) c23_no_special_alignment;
+extern char c23_aligned_as_int;
+char alignas (0) alignas (int) c23_aligned_as_int;
+
+// Check alignof.
+enum
+{
+ c23_int_alignment = alignof (int),
+ c23_int_array_alignment = alignof (int[100]),
+ c23_char_alignment = alignof (char)
+};
+static_assert (0 < -alignof (int), "alignof is signed");
+
+int function_with_unnamed_parameter (int) { return 0; }
+
+void c23_noreturn ();
+
+/* Test parsing of string and char UTF-8 literals (including hex escapes).
+ The parens pacify GCC 15. */
+bool use_u8 = (!sizeof u8"\xFF") == (!u8'\''x'\'');
+
+bool check_that_bool_works = true | false | !nullptr;
+#if !true
+# error "true does not work in #if"
+#endif
+#if false
+#elifdef __STDC_VERSION__
+#else
+# error "#elifdef does not work"
+#endif
+
+#ifndef __has_c_attribute
+# error "__has_c_attribute not defined"
+#endif
+
+#ifndef __has_include
+# error "__has_include not defined"
+#endif
+
+#define LPAREN() (
+#define FORTY_TWO(x) 42
+#define VA_OPT_TEST(r, x, ...) __VA_OPT__ (FORTY_TWO r x))
+static_assert (VA_OPT_TEST (LPAREN (), 0, <:-) == 42);
+
+static_assert (0b101010 == 42);
+static_assert (0B101010 == 42);
+static_assert (0xDEAD'\''BEEF == 3'\''735'\''928'\''559);
+static_assert (0.500'\''000'\''000 == 0.5);
+
+enum unsignedish : unsigned int { uione = 1 };
+static_assert (0 < -uione);
+
+#include
+constexpr nullptr_t null_pointer = nullptr;
+
+static typeof (1 + 1L) two () { return 2; }
+static long int three () { return 3; }
+'
+
+# Test code for whether the C compiler supports C23 (body of main).
+ac_c_conftest_c23_main='
+ {
+ label_before_declaration:
+ int arr[10] = {};
+ if (arr[0])
+ goto label_before_declaration;
+ if (!arr[0])
+ goto label_at_end_of_block;
+ label_at_end_of_block:
+ }
+ ok |= !null_pointer;
+ ok |= two != three;
+'
+
+# Test code for whether the C compiler supports C23 (complete).
+ac_c_conftest_c23_program="${ac_c_conftest_c23_globals}
+
+int
+main (int, char **)
+{
+ int ok = 0;
+ ${ac_c_conftest_c23_main}
+ return ok;
+}
+"
+
# Test code for whether the C compiler supports C89 (global declarations)
ac_c_conftest_c89_globals='
-/* Does the compiler advertise C89 conformance?
- Do not test the value of __STDC__, because some compilers set it to 0
- while being otherwise adequately conformant. */
-#if !defined __STDC__
-# error "Compiler does not advertise C89 conformance"
-#endif
+/* Do not test the value of __STDC__, because some compilers define it to 0
+ or do not define it, while otherwise adequately conforming. */
#include
#include
@@ -3564,7 +3662,8 @@
// Check varargs macros. These examples are taken from C99 6.10.3.5.
// dprintf is used instead of fprintf to avoid needing to declare
-// FILE and stderr.
+// FILE and stderr, and "aND" is used instead of "and" to work around
+// GCC bug 40564 which is irrelevant here.
#define debug(...) dprintf (2, __VA_ARGS__)
#define showlist(...) puts (#__VA_ARGS__)
#define report(test,...) ((test) ? puts (#test) : printf (__VA_ARGS__))
@@ -3575,7 +3674,7 @@
int y = 5678;
debug ("Flag");
debug ("X = %d\n", x);
- showlist (The first, second, and third items.);
+ showlist (The first, second, aND third items.);
report (x>y, "x is %d but y is %d", x, y);
}
@@ -3663,15 +3762,15 @@
// Check restrict.
if (test_restrict ("String literal") == 0)
success = true;
- char *restrict newvar = "Another string";
+ const char *restrict newvar = "Another string";
// Check varargs.
success &= test_varargs ("s, d'\'' f .", "string", 65, 34.234);
test_varargs_macros ();
// Check flexible array members.
- struct incomplete_array *ia =
- malloc (sizeof (struct incomplete_array) + (sizeof (double) * 10));
+ static struct incomplete_array *volatile incomplete_array_pointer;
+ struct incomplete_array *ia = incomplete_array_pointer;
ia->datasize = 10;
for (int i = 0; i < ia->datasize; ++i)
ia->data[i] = i * 1.234;
@@ -3687,13 +3786,12 @@
ni.number = 58;
- int dynamic_array[ni.number];
- dynamic_array[0] = argv[0][0];
- dynamic_array[ni.number - 1] = 543;
+ // Do not test for VLAs, as some otherwise-conforming compilers lack them.
+ // C code should instead use __STDC_NO_VLA__; see Autoconf manual.
// work around unused variable warnings
ok |= (!success || bignum == 0LL || ubignum == 0uLL || newvar[0] == '\''x'\''
- || dynamic_array[ni.number - 1] != 543);
+ || ni.number != 58);
'
# Test code for whether the C compiler supports C11 (global declarations)
@@ -3813,222 +3911,6 @@
as_fn_append ac_header_c_list " unistd.h unistd_h HAVE_UNISTD_H"
as_fn_append ac_header_c_list " wchar.h wchar_h HAVE_WCHAR_H"
as_fn_append ac_header_c_list " minix/config.h minix_config_h HAVE_MINIX_CONFIG_H"
-# Test code for whether the C++ compiler supports C++98 (global declarations)
-ac_cxx_conftest_cxx98_globals='
-// Does the compiler advertise C++98 conformance?
-#if !defined __cplusplus || __cplusplus < 199711L
-# error "Compiler does not advertise C++98 conformance"
-#endif
-
-// These inclusions are to reject old compilers that
-// lack the unsuffixed header files.
-#include
-#include
-
-// and are *not* freestanding headers in C++98.
-extern void assert (int);
-namespace std {
- extern int strcmp (const char *, const char *);
-}
-
-// Namespaces, exceptions, and templates were all added after "C++ 2.0".
-using std::exception;
-using std::strcmp;
-
-namespace {
-
-void test_exception_syntax()
-{
- try {
- throw "test";
- } catch (const char *s) {
- // Extra parentheses suppress a warning when building autoconf itself,
- // due to lint rules shared with more typical C programs.
- assert (!(strcmp) (s, "test"));
- }
-}
-
-template struct test_template
-{
- T const val;
- explicit test_template(T t) : val(t) {}
- template T add(U u) { return static_cast(u) + val; }
-};
-
-} // anonymous namespace
-'
-
-# Test code for whether the C++ compiler supports C++98 (body of main)
-ac_cxx_conftest_cxx98_main='
- assert (argc);
- assert (! argv[0]);
-{
- test_exception_syntax ();
- test_template tt (2.0);
- assert (tt.add (4) == 6.0);
- assert (true && !false);
-}
-'
-
-# Test code for whether the C++ compiler supports C++11 (global declarations)
-ac_cxx_conftest_cxx11_globals='
-// Does the compiler advertise C++ 2011 conformance?
-#if !defined __cplusplus || __cplusplus < 201103L
-# error "Compiler does not advertise C++11 conformance"
-#endif
-
-namespace cxx11test
-{
- constexpr int get_val() { return 20; }
-
- struct testinit
- {
- int i;
- double d;
- };
-
- class delegate
- {
- public:
- delegate(int n) : n(n) {}
- delegate(): delegate(2354) {}
-
- virtual int getval() { return this->n; };
- protected:
- int n;
- };
-
- class overridden : public delegate
- {
- public:
- overridden(int n): delegate(n) {}
- virtual int getval() override final { return this->n * 2; }
- };
-
- class nocopy
- {
- public:
- nocopy(int i): i(i) {}
- nocopy() = default;
- nocopy(const nocopy&) = delete;
- nocopy & operator=(const nocopy&) = delete;
- private:
- int i;
- };
-
- // for testing lambda expressions
- template Ret eval(Fn f, Ret v)
- {
- return f(v);
- }
-
- // for testing variadic templates and trailing return types
- template auto sum(V first) -> V
- {
- return first;
- }
- template auto sum(V first, Args... rest) -> V
- {
- return first + sum(rest...);
- }
-}
-'
-
-# Test code for whether the C++ compiler supports C++11 (body of main)
-ac_cxx_conftest_cxx11_main='
-{
- // Test auto and decltype
- auto a1 = 6538;
- auto a2 = 48573953.4;
- auto a3 = "String literal";
-
- int total = 0;
- for (auto i = a3; *i; ++i) { total += *i; }
-
- decltype(a2) a4 = 34895.034;
-}
-{
- // Test constexpr
- short sa[cxx11test::get_val()] = { 0 };
-}
-{
- // Test initializer lists
- cxx11test::testinit il = { 4323, 435234.23544 };
-}
-{
- // Test range-based for
- int array[] = {9, 7, 13, 15, 4, 18, 12, 10, 5, 3,
- 14, 19, 17, 8, 6, 20, 16, 2, 11, 1};
- for (auto &x : array) { x += 23; }
-}
-{
- // Test lambda expressions
- using cxx11test::eval;
- assert (eval ([](int x) { return x*2; }, 21) == 42);
- double d = 2.0;
- assert (eval ([&](double x) { return d += x; }, 3.0) == 5.0);
- assert (d == 5.0);
- assert (eval ([=](double x) mutable { return d += x; }, 4.0) == 9.0);
- assert (d == 5.0);
-}
-{
- // Test use of variadic templates
- using cxx11test::sum;
- auto a = sum(1);
- auto b = sum(1, 2);
- auto c = sum(1.0, 2.0, 3.0);
-}
-{
- // Test constructor delegation
- cxx11test::delegate d1;
- cxx11test::delegate d2();
- cxx11test::delegate d3(45);
-}
-{
- // Test override and final
- cxx11test::overridden o1(55464);
-}
-{
- // Test nullptr
- char *c = nullptr;
-}
-{
- // Test template brackets
- test_template<::test_template> v(test_template(12));
-}
-{
- // Unicode literals
- char const *utf8 = u8"UTF-8 string \u2500";
- char16_t const *utf16 = u"UTF-8 string \u2500";
- char32_t const *utf32 = U"UTF-32 string \u2500";
-}
-'
-
-# Test code for whether the C compiler supports C++11 (complete).
-ac_cxx_conftest_cxx11_program="${ac_cxx_conftest_cxx98_globals}
-${ac_cxx_conftest_cxx11_globals}
-
-int
-main (int argc, char **argv)
-{
- int ok = 0;
- ${ac_cxx_conftest_cxx98_main}
- ${ac_cxx_conftest_cxx11_main}
- return ok;
-}
-"
-
-# Test code for whether the C compiler supports C++98 (complete).
-ac_cxx_conftest_cxx98_program="${ac_cxx_conftest_cxx98_globals}
-int
-main (int argc, char **argv)
-{
- int ok = 0;
- ${ac_cxx_conftest_cxx98_main}
- return ok;
-}
-"
-
# Auxiliary files required by this configure script.
ac_aux_files="config.guess config.sub"
@@ -4043,7 +3925,7 @@
# $ac_aux_dir_candidates and give up.
ac_missing_aux_files=""
ac_first_candidate=:
-printf "%s\n" "$as_me:${as_lineno-$LINENO}: looking for aux files: $ac_aux_files" >&5
+printf '%s\n' "$as_me:${as_lineno-$LINENO}: looking for aux files: $ac_aux_files" >&5
as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
as_found=false
for as_dir in $ac_aux_dir_candidates
@@ -4056,7 +3938,7 @@
esac
as_found=:
- printf "%s\n" "$as_me:${as_lineno-$LINENO}: trying $as_dir" >&5
+ printf '%s\n' "$as_me:${as_lineno-$LINENO}: trying $as_dir" >&5
ac_aux_dir_found=yes
ac_install_sh=
for ac_aux in $ac_aux_files
@@ -4067,13 +3949,13 @@
if test x"$ac_aux" = x"install-sh"
then
if test -f "${as_dir}install-sh"; then
- printf "%s\n" "$as_me:${as_lineno-$LINENO}: ${as_dir}install-sh found" >&5
+ printf '%s\n' "$as_me:${as_lineno-$LINENO}: ${as_dir}install-sh found" >&5
ac_install_sh="${as_dir}install-sh -c"
elif test -f "${as_dir}install.sh"; then
- printf "%s\n" "$as_me:${as_lineno-$LINENO}: ${as_dir}install.sh found" >&5
+ printf '%s\n' "$as_me:${as_lineno-$LINENO}: ${as_dir}install.sh found" >&5
ac_install_sh="${as_dir}install.sh -c"
elif test -f "${as_dir}shtool"; then
- printf "%s\n" "$as_me:${as_lineno-$LINENO}: ${as_dir}shtool found" >&5
+ printf '%s\n' "$as_me:${as_lineno-$LINENO}: ${as_dir}shtool found" >&5
ac_install_sh="${as_dir}shtool install -c"
else
ac_aux_dir_found=no
@@ -4085,7 +3967,7 @@
fi
else
if test -f "${as_dir}${ac_aux}"; then
- printf "%s\n" "$as_me:${as_lineno-$LINENO}: ${as_dir}${ac_aux} found" >&5
+ printf '%s\n' "$as_me:${as_lineno-$LINENO}: ${as_dir}${ac_aux} found" >&5
else
ac_aux_dir_found=no
if $ac_first_candidate; then
@@ -4138,38 +4020,44 @@
eval ac_new_val=\$ac_env_${ac_var}_value
case $ac_old_set,$ac_new_set in
set,)
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: '$ac_var' was set to '$ac_old_val' in the previous run" >&5
-printf "%s\n" "$as_me: error: '$ac_var' was set to '$ac_old_val' in the previous run" >&2;}
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: error: '$ac_var' was set to '$ac_old_val' in the previous run" >&5
+printf '%s\n' "$as_me: error: '$ac_var' was set to '$ac_old_val' in the previous run" >&2;}
ac_cache_corrupted=: ;;
,set)
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: '$ac_var' was not set in the previous run" >&5
-printf "%s\n" "$as_me: error: '$ac_var' was not set in the previous run" >&2;}
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: error: '$ac_var' was not set in the previous run" >&5
+printf '%s\n' "$as_me: error: '$ac_var' was not set in the previous run" >&2;}
ac_cache_corrupted=: ;;
,);;
*)
if test "x$ac_old_val" != "x$ac_new_val"; then
# differences in whitespace do not lead to failure.
- ac_old_val_w=`echo x $ac_old_val`
- ac_new_val_w=`echo x $ac_new_val`
+ ac_old_val_w=
+ for ac_val in x $ac_old_val; do
+ ac_old_val_w="$ac_old_val_w $ac_val"
+ done
+ ac_new_val_w=
+ for ac_val in x $ac_new_val; do
+ ac_new_val_w="$ac_new_val_w $ac_val"
+ done
if test "$ac_old_val_w" != "$ac_new_val_w"; then
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: '$ac_var' has changed since the previous run:" >&5
-printf "%s\n" "$as_me: error: '$ac_var' has changed since the previous run:" >&2;}
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: error: '$ac_var' has changed since the previous run:" >&5
+printf '%s\n' "$as_me: error: '$ac_var' has changed since the previous run:" >&2;}
ac_cache_corrupted=:
else
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: warning: ignoring whitespace changes in '$ac_var' since the previous run:" >&5
-printf "%s\n" "$as_me: warning: ignoring whitespace changes in '$ac_var' since the previous run:" >&2;}
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: warning: ignoring whitespace changes in '$ac_var' since the previous run:" >&5
+printf '%s\n' "$as_me: warning: ignoring whitespace changes in '$ac_var' since the previous run:" >&2;}
eval $ac_var=\$ac_old_val
fi
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: former value: '$ac_old_val'" >&5
-printf "%s\n" "$as_me: former value: '$ac_old_val'" >&2;}
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: current value: '$ac_new_val'" >&5
-printf "%s\n" "$as_me: current value: '$ac_new_val'" >&2;}
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: former value: '$ac_old_val'" >&5
+printf '%s\n' "$as_me: former value: '$ac_old_val'" >&2;}
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: current value: '$ac_new_val'" >&5
+printf '%s\n' "$as_me: current value: '$ac_new_val'" >&2;}
fi;;
esac
# Pass precious variables to config.status.
if test "$ac_new_set" = set; then
case $ac_new_val in
- *\'*) ac_arg=$ac_var=`printf "%s\n" "$ac_new_val" | sed "s/'/'\\\\\\\\''/g"` ;;
+ *\'*) ac_arg=$ac_var=`printf '%s\n' "$ac_new_val" | sed "s/'/'\\\\\\\\''/g"` ;;
*) ac_arg=$ac_var=$ac_new_val ;;
esac
case " $ac_configure_args " in
@@ -4179,10 +4067,10 @@
fi
done
if $ac_cache_corrupted; then
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in '$ac_pwd':" >&5
-printf "%s\n" "$as_me: error: in '$ac_pwd':" >&2;}
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: changes in the environment can compromise the build" >&5
-printf "%s\n" "$as_me: error: changes in the environment can compromise the build" >&2;}
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: error: in '$ac_pwd':" >&5
+printf '%s\n' "$as_me: error: in '$ac_pwd':" >&2;}
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: error: changes in the environment can compromise the build" >&5
+printf '%s\n' "$as_me: error: changes in the environment can compromise the build" >&2;}
as_fn_error $? "run '${MAKE-make} distclean' and/or 'rm $cache_file'
and start over" "$LINENO" 5
fi
@@ -4190,6 +4078,23 @@
## Main body of script. ##
## -------------------- ##
+
+# Determine whether it's possible to make 'echo' print without a newline.
+# These variables are no longer used directly by Autoconf, but are AC_SUBSTed
+# for compatibility with existing Makefiles.
+ECHO_C= ECHO_N= ECHO_T=
+case `echo -n x` in #(((((
+-n*)
+ case `echo 'xy\c'` in
+ *c*) ECHO_T=' ';; # ECHO_T is single tab character.
+ xy) ECHO_C='\c';;
+ *) echo `echo ksh88 bug on AIX 6.1` > /dev/null
+ ECHO_T=' ';;
+ esac;;
+*)
+ ECHO_N='-n';;
+esac
+
ac_ext=c
ac_cpp='$CPP $CPPFLAGS'
ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
@@ -4203,7 +4108,7 @@
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for grep that handles long lines and -e" >&5
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for grep that handles long lines and -e" >&5
printf %s "checking for grep that handles long lines and -e... " >&6; }
if test ${ac_cv_path_GREP+y}
then :
@@ -4240,7 +4145,7 @@
cat "conftest.in" "conftest.in" >"conftest.tmp"
mv "conftest.tmp" "conftest.in"
cp "conftest.in" "conftest.nl"
- printf "%s\n" 'GREP' >> "conftest.nl"
+ printf '%s\n' 'GREP' >> "conftest.nl"
"$ac_path_GREP" -e 'GREP$' -e '-(cannot match)-' < "conftest.nl" >"conftest.out" 2>/dev/null || break
diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break
as_fn_arith $ac_count + 1 && ac_count=$as_val
@@ -4269,12 +4174,12 @@
;;
esac
fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_GREP" >&5
-printf "%s\n" "$ac_cv_path_GREP" >&6; }
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_GREP" >&5
+printf '%s\n' "$ac_cv_path_GREP" >&6; }
GREP="$ac_cv_path_GREP"
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for egrep" >&5
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for egrep" >&5
printf %s "checking for egrep... " >&6; }
if test ${ac_cv_path_EGREP+y}
then :
@@ -4314,7 +4219,7 @@
cat "conftest.in" "conftest.in" >"conftest.tmp"
mv "conftest.tmp" "conftest.in"
cp "conftest.in" "conftest.nl"
- printf "%s\n" 'EGREP' >> "conftest.nl"
+ printf '%s\n' 'EGREP' >> "conftest.nl"
"$ac_path_EGREP" 'EGREP$' < "conftest.nl" >"conftest.out" 2>/dev/null || break
diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break
as_fn_arith $ac_count + 1 && ac_count=$as_val
@@ -4344,14 +4249,14 @@
fi ;;
esac
fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_EGREP" >&5
-printf "%s\n" "$ac_cv_path_EGREP" >&6; }
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_EGREP" >&5
+printf '%s\n' "$ac_cv_path_EGREP" >&6; }
EGREP="$ac_cv_path_EGREP"
EGREP_TRADITIONAL=$EGREP
ac_cv_path_EGREP_TRADITIONAL=$EGREP
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for a sed that does not truncate output" >&5
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for a sed that does not truncate output" >&5
printf %s "checking for a sed that does not truncate output... " >&6; }
if test ${ac_cv_path_SED+y}
then :
@@ -4394,7 +4299,7 @@
cat "conftest.in" "conftest.in" >"conftest.tmp"
mv "conftest.tmp" "conftest.in"
cp "conftest.in" "conftest.nl"
- printf "%s\n" '' >> "conftest.nl"
+ printf '%s\n' '' >> "conftest.nl"
"$ac_path_SED" -f conftest.sed < "conftest.nl" >"conftest.out" 2>/dev/null || break
diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break
as_fn_arith $ac_count + 1 && ac_count=$as_val
@@ -4423,8 +4328,8 @@
;;
esac
fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_SED" >&5
-printf "%s\n" "$ac_cv_path_SED" >&6; }
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_SED" >&5
+printf '%s\n' "$ac_cv_path_SED" >&6; }
SED="$ac_cv_path_SED"
rm -f conftest.sed
@@ -4482,7 +4387,7 @@
else
break
fi
- printf "%s\n" "$CURRENT_ARG \\" >>config.nice
+ printf '%s\n' "$CURRENT_ARG \\" >>config.nice
CONFIGURE_OPTIONS="$CONFIGURE_OPTIONS $CURRENT_ARG"
done
echo '"$@"' >> config.nice
@@ -4499,7 +4404,7 @@
$SHELL "${ac_aux_dir}config.sub" sun4 >/dev/null 2>&1 ||
as_fn_error $? "cannot run $SHELL ${ac_aux_dir}config.sub" "$LINENO" 5
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking build system type" >&5
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking build system type" >&5
printf %s "checking build system type... " >&6; }
if test ${ac_cv_build+y}
then :
@@ -4515,8 +4420,8 @@
;;
esac
fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_build" >&5
-printf "%s\n" "$ac_cv_build" >&6; }
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $ac_cv_build" >&5
+printf '%s\n' "$ac_cv_build" >&6; }
case $ac_cv_build in
*-*-*) ;;
*) as_fn_error $? "invalid value of canonical build" "$LINENO" 5;;
@@ -4532,10 +4437,10 @@
# except with old shells:
build_os=$*
IFS=$ac_save_IFS
-case $build_os in *\ *) build_os=`echo "$build_os" | sed 's/ /-/g'`;; esac
+case $build_os in *\ *) build_os=`printf '%s\n' "$build_os" | sed 's/ /-/g'`;; esac
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking host system type" >&5
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking host system type" >&5
printf %s "checking host system type... " >&6; }
if test ${ac_cv_host+y}
then :
@@ -4550,8 +4455,8 @@
;;
esac
fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_host" >&5
-printf "%s\n" "$ac_cv_host" >&6; }
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $ac_cv_host" >&5
+printf '%s\n' "$ac_cv_host" >&6; }
case $ac_cv_host in
*-*-*) ;;
*) as_fn_error $? "invalid value of canonical host" "$LINENO" 5;;
@@ -4567,10 +4472,10 @@
# except with old shells:
host_os=$*
IFS=$ac_save_IFS
-case $host_os in *\ *) host_os=`echo "$host_os" | sed 's/ /-/g'`;; esac
+case $host_os in *\ *) host_os=`printf '%s\n' "$host_os" | sed 's/ /-/g'`;; esac
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking target system type" >&5
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking target system type" >&5
printf %s "checking target system type... " >&6; }
if test ${ac_cv_target+y}
then :
@@ -4585,8 +4490,8 @@
;;
esac
fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_target" >&5
-printf "%s\n" "$ac_cv_target" >&6; }
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $ac_cv_target" >&5
+printf '%s\n' "$ac_cv_target" >&6; }
case $ac_cv_target in
*-*-*) ;;
*) as_fn_error $? "invalid value of canonical target" "$LINENO" 5;;
@@ -4602,7 +4507,7 @@
# except with old shells:
target_os=$*
IFS=$ac_save_IFS
-case $target_os in *\ *) target_os=`echo "$target_os" | sed 's/ /-/g'`;; esac
+case $target_os in *\ *) target_os=`printf '%s\n' "$target_os" | sed 's/ /-/g'`;; esac
# The aliases save the names the user supplied, while $host etc.
@@ -4628,7 +4533,7 @@
ac_IFS=$IFS; IFS="."
-set $(echo 8.4.26 | "${SED}" 's/\([0-9\.]*\)\(.*\)/\1\.\2/')
+set $(echo 8.4.27 | "${SED}" 's/\([0-9\.]*\)\(.*\)/\1\.\2/')
IFS=$ac_IFS
PHP_MAJOR_VERSION=$1
PHP_MINOR_VERSION=$2
@@ -4688,7 +4593,7 @@
do
# Extract the first word of "$ac_prog", so it can be a program name with args.
set dummy $ac_prog; ac_word=$2
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
printf %s "checking for $ac_word... " >&6; }
if test ${ac_cv_prog_AWK+y}
then :
@@ -4710,7 +4615,7 @@
for ac_exec_ext in '' $ac_executable_extensions; do
if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
ac_cv_prog_AWK="$ac_prog"
- printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
+ printf '%s\n' "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
break 2
fi
done
@@ -4722,11 +4627,11 @@
fi
AWK=$ac_cv_prog_AWK
if test -n "$AWK"; then
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $AWK" >&5
-printf "%s\n" "$AWK" >&6; }
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $AWK" >&5
+printf '%s\n' "$AWK" >&6; }
else
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
-printf "%s\n" "no" >&6; }
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf '%s\n' "no" >&6; }
fi
@@ -4736,26 +4641,26 @@
case $AWK in #(
*mawk) :
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: mawk is known to have problems on some systems. You should install GNU awk" >&5
-printf "%s\n" "$as_me: WARNING: mawk is known to have problems on some systems. You should install GNU awk" >&2;} ;; #(
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: WARNING: mawk is known to have problems on some systems. You should install GNU awk" >&5
+printf '%s\n' "$as_me: WARNING: mawk is known to have problems on some systems. You should install GNU awk" >&2;} ;; #(
*gawk) :
;; #(
bork) :
as_fn_error $? "Could not find awk; Install GNU awk" "$LINENO" 5 ;; #(
*) :
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if $AWK is broken" >&5
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking if $AWK is broken" >&5
printf %s "checking if $AWK is broken... " >&6; }
if ! $AWK 'function foo() {}' >/dev/null 2>&1
then :
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-printf "%s\n" "yes" >&6; }
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+printf '%s\n' "yes" >&6; }
as_fn_error $? "You should install GNU awk" "$LINENO" 5
else case e in #(
- e) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
-printf "%s\n" "no" >&6; } ;;
+ e) { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf '%s\n' "no" >&6; } ;;
esac
fi
;;
@@ -4786,7 +4691,7 @@
if test -n "$ac_tool_prefix"; then
# Extract the first word of "${ac_tool_prefix}pkg-config", so it can be a program name with args.
set dummy ${ac_tool_prefix}pkg-config; ac_word=$2
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
printf %s "checking for $ac_word... " >&6; }
if test ${ac_cv_path_PKG_CONFIG+y}
then :
@@ -4809,7 +4714,7 @@
for ac_exec_ext in '' $ac_executable_extensions; do
if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
ac_cv_path_PKG_CONFIG="$as_dir$ac_word$ac_exec_ext"
- printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
+ printf '%s\n' "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
break 2
fi
done
@@ -4822,11 +4727,11 @@
fi
PKG_CONFIG=$ac_cv_path_PKG_CONFIG
if test -n "$PKG_CONFIG"; then
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $PKG_CONFIG" >&5
-printf "%s\n" "$PKG_CONFIG" >&6; }
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $PKG_CONFIG" >&5
+printf '%s\n' "$PKG_CONFIG" >&6; }
else
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
-printf "%s\n" "no" >&6; }
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf '%s\n' "no" >&6; }
fi
@@ -4835,7 +4740,7 @@
ac_pt_PKG_CONFIG=$PKG_CONFIG
# Extract the first word of "pkg-config", so it can be a program name with args.
set dummy pkg-config; ac_word=$2
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
printf %s "checking for $ac_word... " >&6; }
if test ${ac_cv_path_ac_pt_PKG_CONFIG+y}
then :
@@ -4858,7 +4763,7 @@
for ac_exec_ext in '' $ac_executable_extensions; do
if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
ac_cv_path_ac_pt_PKG_CONFIG="$as_dir$ac_word$ac_exec_ext"
- printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
+ printf '%s\n' "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
break 2
fi
done
@@ -4871,11 +4776,11 @@
fi
ac_pt_PKG_CONFIG=$ac_cv_path_ac_pt_PKG_CONFIG
if test -n "$ac_pt_PKG_CONFIG"; then
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_pt_PKG_CONFIG" >&5
-printf "%s\n" "$ac_pt_PKG_CONFIG" >&6; }
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $ac_pt_PKG_CONFIG" >&5
+printf '%s\n' "$ac_pt_PKG_CONFIG" >&6; }
else
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
-printf "%s\n" "no" >&6; }
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf '%s\n' "no" >&6; }
fi
if test "x$ac_pt_PKG_CONFIG" = x; then
@@ -4883,8 +4788,8 @@
else
case $cross_compiling:$ac_tool_warned in
yes:)
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
-printf "%s\n" "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+printf '%s\n' "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
ac_tool_warned=yes ;;
esac
PKG_CONFIG=$ac_pt_PKG_CONFIG
@@ -4896,14 +4801,14 @@
fi
if test -n "$PKG_CONFIG"; then
_pkg_min_version=0.9.0
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking pkg-config is at least version $_pkg_min_version" >&5
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking pkg-config is at least version $_pkg_min_version" >&5
printf %s "checking pkg-config is at least version $_pkg_min_version... " >&6; }
if $PKG_CONFIG --atleast-pkgconfig-version $_pkg_min_version; then
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-printf "%s\n" "yes" >&6; }
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+printf '%s\n' "yes" >&6; }
else
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
-printf "%s\n" "no" >&6; }
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf '%s\n' "no" >&6; }
PKG_CONFIG=""
fi
fi
@@ -4916,6 +4821,9 @@
+
+
+
ac_ext=c
ac_cpp='$CPP $CPPFLAGS'
ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
@@ -4926,7 +4834,7 @@
do
# Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args.
set dummy $ac_tool_prefix$ac_prog; ac_word=$2
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
printf %s "checking for $ac_word... " >&6; }
if test ${ac_cv_prog_CC+y}
then :
@@ -4947,7 +4855,7 @@
for ac_exec_ext in '' $ac_executable_extensions; do
if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
ac_cv_prog_CC="$ac_tool_prefix$ac_prog"
- printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
+ printf '%s\n' "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
break 2
fi
done
@@ -4959,11 +4867,11 @@
fi
CC=$ac_cv_prog_CC
if test -n "$CC"; then
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $CC" >&5
-printf "%s\n" "$CC" >&6; }
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $CC" >&5
+printf '%s\n' "$CC" >&6; }
else
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
-printf "%s\n" "no" >&6; }
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf '%s\n' "no" >&6; }
fi
@@ -4976,7 +4884,7 @@
do
# Extract the first word of "$ac_prog", so it can be a program name with args.
set dummy $ac_prog; ac_word=$2
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
printf %s "checking for $ac_word... " >&6; }
if test ${ac_cv_prog_ac_ct_CC+y}
then :
@@ -4997,7 +4905,7 @@
for ac_exec_ext in '' $ac_executable_extensions; do
if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
ac_cv_prog_ac_ct_CC="$ac_prog"
- printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
+ printf '%s\n' "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
break 2
fi
done
@@ -5009,11 +4917,11 @@
fi
ac_ct_CC=$ac_cv_prog_ac_ct_CC
if test -n "$ac_ct_CC"; then
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5
-printf "%s\n" "$ac_ct_CC" >&6; }
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5
+printf '%s\n' "$ac_ct_CC" >&6; }
else
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
-printf "%s\n" "no" >&6; }
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf '%s\n' "no" >&6; }
fi
@@ -5025,8 +4933,8 @@
else
case $cross_compiling:$ac_tool_warned in
yes:)
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
-printf "%s\n" "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+printf '%s\n' "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
ac_tool_warned=yes ;;
esac
CC=$ac_ct_CC
@@ -5034,13 +4942,13 @@
fi
-test -z "$CC" && { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in '$ac_pwd':" >&5
-printf "%s\n" "$as_me: error: in '$ac_pwd':" >&2;}
+test -z "$CC" && { { printf '%s\n' "$as_me:${as_lineno-$LINENO}: error: in '$ac_pwd':" >&5
+printf '%s\n' "$as_me: error: in '$ac_pwd':" >&2;}
as_fn_error $? "no acceptable C compiler found in \$PATH
See 'config.log' for more details" "$LINENO" 5; }
# Provide some information about the compiler.
-printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for C compiler version" >&5
+printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for C compiler version" >&5
set X $ac_compile
ac_compiler=$2
for ac_option in --version -v -V -qversion -version; do
@@ -5050,7 +4958,7 @@
*) ac_try_echo=$ac_try;;
esac
eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
-printf "%s\n" "$ac_try_echo"; } >&5
+printf '%s\n' "$ac_try_echo"; } >&5
(eval "$ac_compiler $ac_option >&5") 2>conftest.err
ac_status=$?
if test -s conftest.err; then
@@ -5060,7 +4968,7 @@
cat conftest.er1 >&5
fi
rm -f conftest.er1 conftest.err
- printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ printf '%s\n' "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
test $ac_status = 0; }
done
@@ -5080,9 +4988,9 @@
# Try to create an executable without -o first, disregard a.out.
# It will help us diagnose broken compilers, and finding out an intuition
# of exeext.
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether the C compiler works" >&5
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking whether the C compiler works" >&5
printf %s "checking whether the C compiler works... " >&6; }
-ac_link_default=`printf "%s\n" "$ac_link" | sed 's/ -o *conftest[^ ]*//'`
+ac_link_default=`printf '%s\n' "$ac_link" | sed 's/ -o *conftest[^ ]*//'`
# The possible output files:
ac_files="a.out conftest.exe conftest a.exe a_out.exe b.out conftest.*"
@@ -5103,10 +5011,10 @@
*) ac_try_echo=$ac_try;;
esac
eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
-printf "%s\n" "$ac_try_echo"; } >&5
+printf '%s\n' "$ac_try_echo"; } >&5
(eval "$ac_link_default") 2>&5
ac_status=$?
- printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ printf '%s\n' "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
test $ac_status = 0; }
then :
# Autoconf-2.13 could set the ac_cv_exeext variable to 'no'.
@@ -5147,29 +5055,29 @@
fi
if test -z "$ac_file"
then :
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
-printf "%s\n" "no" >&6; }
-printf "%s\n" "$as_me: failed program was:" >&5
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf '%s\n' "no" >&6; }
+printf '%s\n' "$as_me: failed program was:" >&5
sed 's/^/| /' conftest.$ac_ext >&5
-{ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in '$ac_pwd':" >&5
-printf "%s\n" "$as_me: error: in '$ac_pwd':" >&2;}
+{ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: error: in '$ac_pwd':" >&5
+printf '%s\n' "$as_me: error: in '$ac_pwd':" >&2;}
as_fn_error 77 "C compiler cannot create executables
See 'config.log' for more details" "$LINENO" 5; }
else case e in #(
- e) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-printf "%s\n" "yes" >&6; } ;;
+ e) { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+printf '%s\n' "yes" >&6; } ;;
esac
fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for C compiler default output file name" >&5
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for C compiler default output file name" >&5
printf %s "checking for C compiler default output file name... " >&6; }
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_file" >&5
-printf "%s\n" "$ac_file" >&6; }
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $ac_file" >&5
+printf '%s\n' "$ac_file" >&6; }
ac_exeext=$ac_cv_exeext
rm -f -r a.out a.out.dSYM a.exe conftest$ac_cv_exeext b.out
ac_clean_files=$ac_clean_files_save
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for suffix of executables" >&5
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for suffix of executables" >&5
printf %s "checking for suffix of executables... " >&6; }
if { { ac_try="$ac_link"
case "(($ac_try" in
@@ -5177,10 +5085,10 @@
*) ac_try_echo=$ac_try;;
esac
eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
-printf "%s\n" "$ac_try_echo"; } >&5
+printf '%s\n' "$ac_try_echo"; } >&5
(eval "$ac_link") 2>&5
ac_status=$?
- printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ printf '%s\n' "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
test $ac_status = 0; }
then :
# If both 'conftest.exe' and 'conftest' are 'present' (well, observable)
@@ -5197,15 +5105,15 @@
esac
done
else case e in #(
- e) { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in '$ac_pwd':" >&5
-printf "%s\n" "$as_me: error: in '$ac_pwd':" >&2;}
+ e) { { printf '%s\n' "$as_me:${as_lineno-$LINENO}: error: in '$ac_pwd':" >&5
+printf '%s\n' "$as_me: error: in '$ac_pwd':" >&2;}
as_fn_error $? "cannot compute suffix of executables: cannot compile and link
See 'config.log' for more details" "$LINENO" 5; } ;;
esac
fi
rm -f conftest conftest$ac_cv_exeext
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_exeext" >&5
-printf "%s\n" "$ac_cv_exeext" >&6; }
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $ac_cv_exeext" >&5
+printf '%s\n' "$ac_cv_exeext" >&6; }
rm -f conftest.$ac_ext
EXEEXT=$ac_cv_exeext
@@ -5228,7 +5136,7 @@
ac_clean_files="$ac_clean_files conftest.out"
# Check that the compiler produces executables we can run. If not, either
# the compiler is broken, or we cross compile.
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether we are cross compiling" >&5
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking whether we are cross compiling" >&5
printf %s "checking whether we are cross compiling... " >&6; }
if test "$cross_compiling" != yes; then
{ { ac_try="$ac_link"
@@ -5237,10 +5145,10 @@
*) ac_try_echo=$ac_try;;
esac
eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
-printf "%s\n" "$ac_try_echo"; } >&5
+printf '%s\n' "$ac_try_echo"; } >&5
(eval "$ac_link") 2>&5
ac_status=$?
- printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ printf '%s\n' "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
test $ac_status = 0; }
if { ac_try='./conftest$ac_cv_exeext'
{ { case "(($ac_try" in
@@ -5248,31 +5156,31 @@
*) ac_try_echo=$ac_try;;
esac
eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
-printf "%s\n" "$ac_try_echo"; } >&5
+printf '%s\n' "$ac_try_echo"; } >&5
(eval "$ac_try") 2>&5
ac_status=$?
- printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ printf '%s\n' "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
test $ac_status = 0; }; }; then
cross_compiling=no
else
if test "$cross_compiling" = maybe; then
cross_compiling=yes
else
- { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in '$ac_pwd':" >&5
-printf "%s\n" "$as_me: error: in '$ac_pwd':" >&2;}
+ { { printf '%s\n' "$as_me:${as_lineno-$LINENO}: error: in '$ac_pwd':" >&5
+printf '%s\n' "$as_me: error: in '$ac_pwd':" >&2;}
as_fn_error 77 "cannot run C compiled programs.
If you meant to cross compile, use '--host'.
See 'config.log' for more details" "$LINENO" 5; }
fi
fi
fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $cross_compiling" >&5
-printf "%s\n" "$cross_compiling" >&6; }
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $cross_compiling" >&5
+printf '%s\n' "$cross_compiling" >&6; }
rm -f conftest.$ac_ext conftest$ac_cv_exeext \
conftest.o conftest.obj conftest.out
ac_clean_files=$ac_clean_files_save
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for suffix of object files" >&5
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for suffix of object files" >&5
printf %s "checking for suffix of object files... " >&6; }
if test ${ac_cv_objext+y}
then :
@@ -5296,10 +5204,10 @@
*) ac_try_echo=$ac_try;;
esac
eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
-printf "%s\n" "$ac_try_echo"; } >&5
+printf '%s\n' "$ac_try_echo"; } >&5
(eval "$ac_compile") 2>&5
ac_status=$?
- printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ printf '%s\n' "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
test $ac_status = 0; }
then :
for ac_file in conftest.o conftest.obj conftest.*; do
@@ -5311,11 +5219,11 @@
esac
done
else case e in #(
- e) printf "%s\n" "$as_me: failed program was:" >&5
+ e) printf '%s\n' "$as_me: failed program was:" >&5
sed 's/^/| /' conftest.$ac_ext >&5
-{ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in '$ac_pwd':" >&5
-printf "%s\n" "$as_me: error: in '$ac_pwd':" >&2;}
+{ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: error: in '$ac_pwd':" >&5
+printf '%s\n' "$as_me: error: in '$ac_pwd':" >&2;}
as_fn_error $? "cannot compute suffix of object files: cannot compile
See 'config.log' for more details" "$LINENO" 5; } ;;
esac
@@ -5323,11 +5231,11 @@
rm -f conftest.$ac_cv_objext conftest.$ac_ext ;;
esac
fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_objext" >&5
-printf "%s\n" "$ac_cv_objext" >&6; }
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $ac_cv_objext" >&5
+printf '%s\n' "$ac_cv_objext" >&6; }
OBJEXT=$ac_cv_objext
ac_objext=$OBJEXT
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether the compiler supports GNU C" >&5
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking whether the compiler supports GNU C" >&5
printf %s "checking whether the compiler supports GNU C... " >&6; }
if test ${ac_cv_c_compiler_gnu+y}
then :
@@ -5359,8 +5267,8 @@
;;
esac
fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_compiler_gnu" >&5
-printf "%s\n" "$ac_cv_c_compiler_gnu" >&6; }
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_compiler_gnu" >&5
+printf '%s\n' "$ac_cv_c_compiler_gnu" >&6; }
ac_compiler_gnu=$ac_cv_c_compiler_gnu
if test $ac_compiler_gnu = yes; then
@@ -5370,7 +5278,7 @@
fi
ac_test_CFLAGS=${CFLAGS+y}
ac_save_CFLAGS=$CFLAGS
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether $CC accepts -g" >&5
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking whether $CC accepts -g" >&5
printf %s "checking whether $CC accepts -g... " >&6; }
if test ${ac_cv_prog_cc_g+y}
then :
@@ -5438,8 +5346,8 @@
ac_c_werror_flag=$ac_save_c_werror_flag ;;
esac
fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_g" >&5
-printf "%s\n" "$ac_cv_prog_cc_g" >&6; }
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_g" >&5
+printf '%s\n' "$ac_cv_prog_cc_g" >&6; }
if test $ac_test_CFLAGS; then
CFLAGS=$ac_save_CFLAGS
elif test $ac_cv_prog_cc_g = yes; then
@@ -5458,7 +5366,56 @@
ac_prog_cc_stdc=no
if test x$ac_prog_cc_stdc = xno
then :
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $CC option to enable C11 features" >&5
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for $CC option to enable C23 features" >&5
+printf %s "checking for $CC option to enable C23 features... " >&6; }
+if test ${ac_cv_prog_cc_c23+y}
+then :
+ printf %s "(cached) " >&6
+else case e in #(
+ e) ac_cv_prog_cc_c23=no
+ac_save_CC=$CC
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+$ac_c_conftest_c23_program
+_ACEOF
+for ac_arg in '' -std=gnu23
+do
+ CC="$ac_save_CC $ac_arg"
+ if ac_fn_c_try_compile "$LINENO"
+then :
+ ac_cv_prog_cc_c23=$ac_arg
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.beam
+ test "x$ac_cv_prog_cc_c23" != "xno" && break
+done
+rm -f conftest.$ac_ext
+CC=$ac_save_CC ;;
+esac
+fi
+
+if test "x$ac_cv_prog_cc_c23" = xno
+then :
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5
+printf '%s\n' "unsupported" >&6; }
+else case e in #(
+ e) if test "x$ac_cv_prog_cc_c23" = x
+then :
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: none needed" >&5
+printf '%s\n' "none needed" >&6; }
+else case e in #(
+ e) { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_c23" >&5
+printf '%s\n' "$ac_cv_prog_cc_c23" >&6; }
+ CC="$CC $ac_cv_prog_cc_c23" ;;
+esac
+fi
+ ac_cv_prog_cc_stdc=$ac_cv_prog_cc_c23
+ ac_prog_cc_stdc=c23 ;;
+esac
+fi
+fi
+if test x$ac_prog_cc_stdc = xno
+then :
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for $CC option to enable C11 features" >&5
printf %s "checking for $CC option to enable C11 features... " >&6; }
if test ${ac_cv_prog_cc_c11+y}
then :
@@ -5470,7 +5427,7 @@
/* end confdefs.h. */
$ac_c_conftest_c11_program
_ACEOF
-for ac_arg in '' -std=gnu11
+for ac_arg in '' -std=gnu11 -std:c11
do
CC="$ac_save_CC $ac_arg"
if ac_fn_c_try_compile "$LINENO"
@@ -5487,16 +5444,16 @@
if test "x$ac_cv_prog_cc_c11" = xno
then :
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5
-printf "%s\n" "unsupported" >&6; }
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5
+printf '%s\n' "unsupported" >&6; }
else case e in #(
e) if test "x$ac_cv_prog_cc_c11" = x
then :
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: none needed" >&5
-printf "%s\n" "none needed" >&6; }
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: none needed" >&5
+printf '%s\n' "none needed" >&6; }
else case e in #(
- e) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_c11" >&5
-printf "%s\n" "$ac_cv_prog_cc_c11" >&6; }
+ e) { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_c11" >&5
+printf '%s\n' "$ac_cv_prog_cc_c11" >&6; }
CC="$CC $ac_cv_prog_cc_c11" ;;
esac
fi
@@ -5507,7 +5464,7 @@
fi
if test x$ac_prog_cc_stdc = xno
then :
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $CC option to enable C99 features" >&5
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for $CC option to enable C99 features" >&5
printf %s "checking for $CC option to enable C99 features... " >&6; }
if test ${ac_cv_prog_cc_c99+y}
then :
@@ -5536,16 +5493,16 @@
if test "x$ac_cv_prog_cc_c99" = xno
then :
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5
-printf "%s\n" "unsupported" >&6; }
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5
+printf '%s\n' "unsupported" >&6; }
else case e in #(
e) if test "x$ac_cv_prog_cc_c99" = x
then :
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: none needed" >&5
-printf "%s\n" "none needed" >&6; }
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: none needed" >&5
+printf '%s\n' "none needed" >&6; }
else case e in #(
- e) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_c99" >&5
-printf "%s\n" "$ac_cv_prog_cc_c99" >&6; }
+ e) { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_c99" >&5
+printf '%s\n' "$ac_cv_prog_cc_c99" >&6; }
CC="$CC $ac_cv_prog_cc_c99" ;;
esac
fi
@@ -5556,7 +5513,7 @@
fi
if test x$ac_prog_cc_stdc = xno
then :
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $CC option to enable C89 features" >&5
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for $CC option to enable C89 features" >&5
printf %s "checking for $CC option to enable C89 features... " >&6; }
if test ${ac_cv_prog_cc_c89+y}
then :
@@ -5585,16 +5542,16 @@
if test "x$ac_cv_prog_cc_c89" = xno
then :
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5
-printf "%s\n" "unsupported" >&6; }
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5
+printf '%s\n' "unsupported" >&6; }
else case e in #(
e) if test "x$ac_cv_prog_cc_c89" = x
then :
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: none needed" >&5
-printf "%s\n" "none needed" >&6; }
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: none needed" >&5
+printf '%s\n' "none needed" >&6; }
else case e in #(
- e) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_c89" >&5
-printf "%s\n" "$ac_cv_prog_cc_c89" >&6; }
+ e) { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_c89" >&5
+printf '%s\n' "$ac_cv_prog_cc_c89" >&6; }
CC="$CC $ac_cv_prog_cc_c89" ;;
esac
fi
@@ -5616,7 +5573,7 @@
ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
ac_compiler_gnu=$ac_cv_c_compiler_gnu
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking how to run the C preprocessor" >&5
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking how to run the C preprocessor" >&5
printf %s "checking how to run the C preprocessor... " >&6; }
# On Suns, sometimes $CPP names a directory.
if test -n "$CPP" && test -d "$CPP"; then
@@ -5687,8 +5644,8 @@
else
ac_cv_prog_CPP=$CPP
fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $CPP" >&5
-printf "%s\n" "$CPP" >&6; }
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $CPP" >&5
+printf '%s\n' "$CPP" >&6; }
ac_preproc_ok=false
for ac_c_preproc_warn_flag in '' yes
do
@@ -5736,8 +5693,8 @@
then :
else case e in #(
- e) { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in '$ac_pwd':" >&5
-printf "%s\n" "$as_me: error: in '$ac_pwd':" >&2;}
+ e) { { printf '%s\n' "$as_me:${as_lineno-$LINENO}: error: in '$ac_pwd':" >&5
+printf '%s\n' "$as_me: error: in '$ac_pwd':" >&2;}
as_fn_error $? "C preprocessor \"$CPP\" fails sanity check
See 'config.log' for more details" "$LINENO" 5; } ;;
esac
@@ -5750,7 +5707,7 @@
ac_compiler_gnu=$ac_cv_c_compiler_gnu
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for egrep -e" >&5
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for egrep -e" >&5
printf %s "checking for egrep -e... " >&6; }
if test ${ac_cv_path_EGREP_TRADITIONAL+y}
then :
@@ -5787,7 +5744,7 @@
cat "conftest.in" "conftest.in" >"conftest.tmp"
mv "conftest.tmp" "conftest.in"
cp "conftest.in" "conftest.nl"
- printf "%s\n" 'EGREP_TRADITIONAL' >> "conftest.nl"
+ printf '%s\n' 'EGREP_TRADITIONAL' >> "conftest.nl"
"$ac_path_EGREP_TRADITIONAL" -E 'EGR(EP|AC)_TRADITIONAL$' < "conftest.nl" >"conftest.out" 2>/dev/null || break
diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break
as_fn_arith $ac_count + 1 && ac_count=$as_val
@@ -5849,7 +5806,7 @@
cat "conftest.in" "conftest.in" >"conftest.tmp"
mv "conftest.tmp" "conftest.in"
cp "conftest.in" "conftest.nl"
- printf "%s\n" 'EGREP_TRADITIONAL' >> "conftest.nl"
+ printf '%s\n' 'EGREP_TRADITIONAL' >> "conftest.nl"
"$ac_path_EGREP_TRADITIONAL" 'EGR(EP|AC)_TRADITIONAL$' < "conftest.nl" >"conftest.out" 2>/dev/null || break
diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break
as_fn_arith $ac_count + 1 && ac_count=$as_val
@@ -5880,13 +5837,13 @@
fi ;;
esac
fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_EGREP_TRADITIONAL" >&5
-printf "%s\n" "$ac_cv_path_EGREP_TRADITIONAL" >&6; }
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_EGREP_TRADITIONAL" >&5
+printf '%s\n' "$ac_cv_path_EGREP_TRADITIONAL" >&6; }
EGREP_TRADITIONAL=$ac_cv_path_EGREP_TRADITIONAL
ICC="no"
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for icc" >&5
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for icc" >&5
printf %s "checking for icc... " >&6; }
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
@@ -5896,13 +5853,13 @@
$EGREP_TRADITIONAL "^__INTEL_COMPILER" >/dev/null 2>&1
then :
ICC="no"
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
-printf "%s\n" "no" >&6; }
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf '%s\n' "no" >&6; }
else case e in #(
e) ICC="yes"
GCC="no"
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-printf "%s\n" "yes" >&6; }
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+printf '%s\n' "yes" >&6; }
;;
esac
fi
@@ -5911,7 +5868,7 @@
SUNCC="no"
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for suncc" >&5
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for suncc" >&5
printf %s "checking for suncc... " >&6; }
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
@@ -5921,15 +5878,15 @@
$EGREP_TRADITIONAL "^__SUNPRO_C" >/dev/null 2>&1
then :
SUNCC="no"
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
-printf "%s\n" "no" >&6; }
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf '%s\n' "no" >&6; }
else case e in #(
e) SUNCC="yes"
GCC="no"
test -n "$auto_cflags" && CFLAGS="-O -xs -xstrconst -zlazyload"
GCC=""
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-printf "%s\n" "yes" >&6; }
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+printf '%s\n' "yes" >&6; }
;;
esac
fi
@@ -5943,7 +5900,7 @@
ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
ac_compiler_gnu=$ac_cv_c_compiler_gnu
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking how to run the C preprocessor" >&5
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking how to run the C preprocessor" >&5
printf %s "checking how to run the C preprocessor... " >&6; }
# On Suns, sometimes $CPP names a directory.
if test -n "$CPP" && test -d "$CPP"; then
@@ -6014,8 +5971,8 @@
else
ac_cv_prog_CPP=$CPP
fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $CPP" >&5
-printf "%s\n" "$CPP" >&6; }
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $CPP" >&5
+printf '%s\n' "$CPP" >&6; }
ac_preproc_ok=false
for ac_c_preproc_warn_flag in '' yes
do
@@ -6063,8 +6020,8 @@
then :
else case e in #(
- e) { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in '$ac_pwd':" >&5
-printf "%s\n" "$as_me: error: in '$ac_pwd':" >&2;}
+ e) { { printf '%s\n' "$as_me:${as_lineno-$LINENO}: error: in '$ac_pwd':" >&5
+printf '%s\n' "$as_me: error: in '$ac_pwd':" >&2;}
as_fn_error $? "C preprocessor \"$CPP\" fails sanity check
See 'config.log' for more details" "$LINENO" 5; } ;;
esac
@@ -6082,7 +6039,7 @@
if test $ac_cache; then
ac_fn_c_check_header_compile "$LINENO" $ac_header ac_cv_header_$ac_cache "$ac_includes_default"
if eval test \"x\$ac_cv_header_$ac_cache\" = xyes; then
- printf "%s\n" "#define $ac_item 1" >> confdefs.h
+ printf '%s\n' "#define $ac_item 1" >> confdefs.h
fi
ac_header= ac_cache=
elif test $ac_header; then
@@ -6102,7 +6059,7 @@
if test $ac_cv_header_stdlib_h = yes && test $ac_cv_header_string_h = yes
then :
-printf "%s\n" "#define STDC_HEADERS 1" >>confdefs.h
+printf '%s\n' "#define STDC_HEADERS 1" >>confdefs.h
fi
@@ -6111,7 +6068,7 @@
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether it is safe to define __EXTENSIONS__" >&5
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking whether it is safe to define __EXTENSIONS__" >&5
printf %s "checking whether it is safe to define __EXTENSIONS__... " >&6; }
if test ${ac_cv_safe_to_define___extensions__+y}
then :
@@ -6140,10 +6097,10 @@
rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext ;;
esac
fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_safe_to_define___extensions__" >&5
-printf "%s\n" "$ac_cv_safe_to_define___extensions__" >&6; }
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $ac_cv_safe_to_define___extensions__" >&5
+printf '%s\n' "$ac_cv_safe_to_define___extensions__" >&6; }
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether _XOPEN_SOURCE should be defined" >&5
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking whether _XOPEN_SOURCE should be defined" >&5
printf %s "checking whether _XOPEN_SOURCE should be defined... " >&6; }
if test ${ac_cv_should_define__xopen_source+y}
then :
@@ -6194,49 +6151,51 @@
fi ;;
esac
fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_should_define__xopen_source" >&5
-printf "%s\n" "$ac_cv_should_define__xopen_source" >&6; }
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $ac_cv_should_define__xopen_source" >&5
+printf '%s\n' "$ac_cv_should_define__xopen_source" >&6; }
+
+ printf '%s\n' "#define _ALL_SOURCE 1" >>confdefs.h
- printf "%s\n" "#define _ALL_SOURCE 1" >>confdefs.h
+ printf '%s\n' "#define _COSMO_SOURCE 1" >>confdefs.h
- printf "%s\n" "#define _DARWIN_C_SOURCE 1" >>confdefs.h
+ printf '%s\n' "#define _DARWIN_C_SOURCE 1" >>confdefs.h
- printf "%s\n" "#define _GNU_SOURCE 1" >>confdefs.h
+ printf '%s\n' "#define _GNU_SOURCE 1" >>confdefs.h
- printf "%s\n" "#define _HPUX_ALT_XOPEN_SOCKET_API 1" >>confdefs.h
+ printf '%s\n' "#define _HPUX_ALT_XOPEN_SOCKET_API 1" >>confdefs.h
- printf "%s\n" "#define _NETBSD_SOURCE 1" >>confdefs.h
+ printf '%s\n' "#define _NETBSD_SOURCE 1" >>confdefs.h
- printf "%s\n" "#define _OPENBSD_SOURCE 1" >>confdefs.h
+ printf '%s\n' "#define _OPENBSD_SOURCE 1" >>confdefs.h
- printf "%s\n" "#define _POSIX_PTHREAD_SEMANTICS 1" >>confdefs.h
+ printf '%s\n' "#define _POSIX_PTHREAD_SEMANTICS 1" >>confdefs.h
- printf "%s\n" "#define __STDC_WANT_IEC_60559_ATTRIBS_EXT__ 1" >>confdefs.h
+ printf '%s\n' "#define __STDC_WANT_IEC_60559_ATTRIBS_EXT__ 1" >>confdefs.h
- printf "%s\n" "#define __STDC_WANT_IEC_60559_BFP_EXT__ 1" >>confdefs.h
+ printf '%s\n' "#define __STDC_WANT_IEC_60559_BFP_EXT__ 1" >>confdefs.h
- printf "%s\n" "#define __STDC_WANT_IEC_60559_DFP_EXT__ 1" >>confdefs.h
+ printf '%s\n' "#define __STDC_WANT_IEC_60559_DFP_EXT__ 1" >>confdefs.h
- printf "%s\n" "#define __STDC_WANT_IEC_60559_EXT__ 1" >>confdefs.h
+ printf '%s\n' "#define __STDC_WANT_IEC_60559_EXT__ 1" >>confdefs.h
- printf "%s\n" "#define __STDC_WANT_IEC_60559_FUNCS_EXT__ 1" >>confdefs.h
+ printf '%s\n' "#define __STDC_WANT_IEC_60559_FUNCS_EXT__ 1" >>confdefs.h
- printf "%s\n" "#define __STDC_WANT_IEC_60559_TYPES_EXT__ 1" >>confdefs.h
+ printf '%s\n' "#define __STDC_WANT_IEC_60559_TYPES_EXT__ 1" >>confdefs.h
- printf "%s\n" "#define __STDC_WANT_LIB_EXT2__ 1" >>confdefs.h
+ printf '%s\n' "#define __STDC_WANT_LIB_EXT2__ 1" >>confdefs.h
- printf "%s\n" "#define __STDC_WANT_MATH_SPEC_FUNCS__ 1" >>confdefs.h
+ printf '%s\n' "#define __STDC_WANT_MATH_SPEC_FUNCS__ 1" >>confdefs.h
- printf "%s\n" "#define _TANDEM_SOURCE 1" >>confdefs.h
+ printf '%s\n' "#define _TANDEM_SOURCE 1" >>confdefs.h
if test $ac_cv_header_minix_config_h = yes
then :
MINIX=yes
- printf "%s\n" "#define _MINIX 1" >>confdefs.h
+ printf '%s\n' "#define _MINIX 1" >>confdefs.h
- printf "%s\n" "#define _POSIX_SOURCE 1" >>confdefs.h
+ printf '%s\n' "#define _POSIX_SOURCE 1" >>confdefs.h
- printf "%s\n" "#define _POSIX_1_SOURCE 2" >>confdefs.h
+ printf '%s\n' "#define _POSIX_1_SOURCE 2" >>confdefs.h
else case e in #(
e) MINIX= ;;
@@ -6244,24 +6203,24 @@
fi
if test $ac_cv_safe_to_define___extensions__ = yes
then :
- printf "%s\n" "#define __EXTENSIONS__ 1" >>confdefs.h
+ printf '%s\n' "#define __EXTENSIONS__ 1" >>confdefs.h
fi
if test $ac_cv_should_define__xopen_source = yes
then :
- printf "%s\n" "#define _XOPEN_SOURCE 500" >>confdefs.h
+ printf '%s\n' "#define _XOPEN_SOURCE 500" >>confdefs.h
fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether ln -s works" >&5
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking whether ln -s works" >&5
printf %s "checking whether ln -s works... " >&6; }
LN_S=$as_ln_s
if test "$LN_S" = "ln -s"; then
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-printf "%s\n" "yes" >&6; }
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+printf '%s\n' "yes" >&6; }
else
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no, using $LN_S" >&5
-printf "%s\n" "no, using $LN_S" >&6; }
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: no, using $LN_S" >&5
+printf '%s\n' "no, using $LN_S" >&6; }
fi
@@ -6271,7 +6230,7 @@
do
# Extract the first word of "$ac_prog", so it can be a program name with args.
set dummy $ac_prog; ac_word=$2
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
printf %s "checking for $ac_word... " >&6; }
if test ${ac_cv_prog_BUILD_CC+y}
then :
@@ -6292,7 +6251,7 @@
for ac_exec_ext in '' $ac_executable_extensions; do
if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
ac_cv_prog_BUILD_CC="$ac_prog"
- printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
+ printf '%s\n' "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
break 2
fi
done
@@ -6304,11 +6263,11 @@
fi
BUILD_CC=$ac_cv_prog_BUILD_CC
if test -n "$BUILD_CC"; then
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $BUILD_CC" >&5
-printf "%s\n" "$BUILD_CC" >&6; }
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $BUILD_CC" >&5
+printf '%s\n' "$BUILD_CC" >&6; }
else
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
-printf "%s\n" "no" >&6; }
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf '%s\n' "no" >&6; }
fi
@@ -6316,10 +6275,10 @@
done
test -n "$BUILD_CC" || BUILD_CC="none"
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for native build C compiler" >&5
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for native build C compiler" >&5
printf %s "checking for native build C compiler... " >&6; }
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $BUILD_CC" >&5
-printf "%s\n" "$BUILD_CC" >&6; }
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $BUILD_CC" >&5
+printf '%s\n' "$BUILD_CC" >&6; }
else case e in #(
e) BUILD_CC=$CC ;;
esac
@@ -6328,7 +6287,7 @@
php_with_libdir=lib
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for system library directory" >&5
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for system library directory" >&5
printf %s "checking for system library directory... " >&6; }
# Check whether --with-libdir was given.
@@ -6345,8 +6304,8 @@
ext_output=$PHP_LIBDIR
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ext_output" >&5
-printf "%s\n" "$ext_output" >&6; }
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $ext_output" >&5
+printf '%s\n' "$ext_output" >&6; }
@@ -6354,7 +6313,7 @@
php_enable_rpath=yes
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether to enable runpaths" >&5
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking whether to enable runpaths" >&5
printf %s "checking whether to enable runpaths... " >&6; }
# Check whether --enable-rpath was given.
if test ${enable_rpath+y}
@@ -6370,14 +6329,14 @@
ext_output=$PHP_RPATH
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ext_output" >&5
-printf "%s\n" "$ext_output" >&6; }
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $ext_output" >&5
+printf '%s\n' "$ext_output" >&6; }
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if compiler supports -Wl,-rpath," >&5
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking if compiler supports -Wl,-rpath," >&5
printf %s "checking if compiler supports -Wl,-rpath,... " >&6; }
if test ${php_cv_cc_rpath+y}
then :
@@ -6410,13 +6369,13 @@
;;
esac
fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $php_cv_cc_rpath" >&5
-printf "%s\n" "$php_cv_cc_rpath" >&6; }
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $php_cv_cc_rpath" >&5
+printf '%s\n' "$php_cv_cc_rpath" >&6; }
if test "x$php_cv_cc_rpath" = xyes
then :
ld_runpath_switch=-Wl,-rpath,
else case e in #(
- e) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if compiler supports -R" >&5
+ e) { printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking if compiler supports -R" >&5
printf %s "checking if compiler supports -R... " >&6; }
if test ${php_cv_cc_dashr+y}
then :
@@ -6449,8 +6408,8 @@
;;
esac
fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $php_cv_cc_dashr" >&5
-printf "%s\n" "$php_cv_cc_dashr" >&6; }
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $php_cv_cc_dashr" >&5
+printf '%s\n' "$php_cv_cc_dashr" >&6; }
if test "x$php_cv_cc_dashr" = xyes
then :
ld_runpath_switch=-R
@@ -6470,7 +6429,7 @@
# Extract the first word of "bison", so it can be a program name with args.
set dummy bison; ac_word=$2
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
printf %s "checking for $ac_word... " >&6; }
if test ${ac_cv_prog_YACC+y}
then :
@@ -6491,7 +6450,7 @@
for ac_exec_ext in '' $ac_executable_extensions; do
if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
ac_cv_prog_YACC="bison"
- printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
+ printf '%s\n' "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
break 2
fi
done
@@ -6503,11 +6462,11 @@
fi
YACC=$ac_cv_prog_YACC
if test -n "$YACC"; then
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $YACC" >&5
-printf "%s\n" "$YACC" >&6; }
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $YACC" >&5
+printf '%s\n' "$YACC" >&6; }
else
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
-printf "%s\n" "no" >&6; }
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf '%s\n' "no" >&6; }
fi
@@ -6516,7 +6475,7 @@
php_bison_excluded_versions='none'
if test -n "$YACC"; then
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for bison version" >&5
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for bison version" >&5
printf %s "checking for bison version... " >&6; }
php_bison_version=$($YACC --version 2> /dev/null | grep 'GNU Bison' | cut -d ' ' -f 4 | tr -d a-z)
@@ -6559,11 +6518,11 @@
PHP_VAR_SUBST="$PHP_VAR_SUBST YFLAGS"
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $php_bison_version (ok)" >&5
-printf "%s\n" "$php_bison_version (ok)" >&6; }
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $php_bison_version (ok)" >&5
+printf '%s\n' "$php_bison_version (ok)" >&6; }
else
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $php_bison_version" >&5
-printf "%s\n" "$php_bison_version" >&6; }
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $php_bison_version" >&5
+printf '%s\n' "$php_bison_version" >&6; }
fi
fi
@@ -6585,7 +6544,7 @@
# Extract the first word of "re2c", so it can be a program name with args.
set dummy re2c; ac_word=$2
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
printf %s "checking for $ac_word... " >&6; }
if test ${ac_cv_prog_RE2C+y}
then :
@@ -6606,7 +6565,7 @@
for ac_exec_ext in '' $ac_executable_extensions; do
if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
ac_cv_prog_RE2C="re2c"
- printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
+ printf '%s\n' "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
break 2
fi
done
@@ -6618,11 +6577,11 @@
fi
RE2C=$ac_cv_prog_RE2C
if test -n "$RE2C"; then
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $RE2C" >&5
-printf "%s\n" "$RE2C" >&6; }
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $RE2C" >&5
+printf '%s\n' "$RE2C" >&6; }
else
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
-printf "%s\n" "no" >&6; }
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf '%s\n' "no" >&6; }
fi
@@ -6633,7 +6592,7 @@
else case e in #(
e)
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for re2c version" >&5
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for re2c version" >&5
printf %s "checking for re2c version... " >&6; }
php_re2c_version=$($RE2C --version | cut -d ' ' -f 2 2>/dev/null)
@@ -6655,11 +6614,11 @@
if test "x$php_re2c_check" = xinvalid
then :
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $php_re2c_version (too old)" >&5
-printf "%s\n" "$php_re2c_version (too old)" >&6; }
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $php_re2c_version (too old)" >&5
+printf '%s\n' "$php_re2c_version (too old)" >&6; }
else case e in #(
- e) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $php_re2c_version (ok)" >&5
-printf "%s\n" "$php_re2c_version (ok)" >&6; } ;;
+ e) { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $php_re2c_version (ok)" >&5
+printf '%s\n' "$php_re2c_version (ok)" >&6; } ;;
esac
fi
;;
@@ -6693,7 +6652,7 @@
php_required_version=7.4
# Extract the first word of "php", so it can be a program name with args.
set dummy php; ac_word=$2
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
printf %s "checking for $ac_word... " >&6; }
if test ${ac_cv_prog_PHP+y}
then :
@@ -6714,7 +6673,7 @@
for ac_exec_ext in '' $ac_executable_extensions; do
if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
ac_cv_prog_PHP="php"
- printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
+ printf '%s\n' "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
break 2
fi
done
@@ -6726,11 +6685,11 @@
fi
PHP=$ac_cv_prog_PHP
if test -n "$PHP"; then
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $PHP" >&5
-printf "%s\n" "$PHP" >&6; }
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $PHP" >&5
+printf '%s\n' "$PHP" >&6; }
else
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
-printf "%s\n" "no" >&6; }
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf '%s\n' "no" >&6; }
fi
@@ -6739,7 +6698,7 @@
else case e in #(
e)
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for php version" >&5
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for php version" >&5
printf %s "checking for php version... " >&6; }
php_version=$($PHP -v | head -n1 | cut -d ' ' -f 2)
as_arg_v1=$php_version
@@ -6757,11 +6716,11 @@
esac
if ${PHP:+false} :
then :
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $php_version (too old, install $php_required_version or later)" >&5
-printf "%s\n" "$php_version (too old, install $php_required_version or later)" >&6; }
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $php_version (too old, install $php_required_version or later)" >&5
+printf '%s\n' "$php_version (too old, install $php_required_version or later)" >&6; }
else case e in #(
- e) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $php_version (ok)" >&5
-printf "%s\n" "$php_version (ok)" >&6; } ;;
+ e) { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $php_version (ok)" >&5
+printf '%s\n' "$php_version (ok)" >&6; } ;;
esac
fi
;;
@@ -6775,7 +6734,7 @@
php_enable_re2c_cgoto=no
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether to enable computed goto extension with re2c" >&5
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking whether to enable computed goto extension with re2c" >&5
printf %s "checking whether to enable computed goto extension with re2c... " >&6; }
# Check whether --enable-re2c-cgoto was given.
if test ${enable_re2c_cgoto+y}
@@ -6791,8 +6750,8 @@
ext_output=$PHP_RE2C_CGOTO
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ext_output" >&5
-printf "%s\n" "$ext_output" >&6; }
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $ext_output" >&5
+printf '%s\n' "$ext_output" >&6; }
@@ -6801,7 +6760,7 @@
then :
else case e in #(
- e) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether re2c -g works" >&5
+ e) { printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking whether re2c -g works" >&5
printf %s "checking whether re2c -g works... " >&6; }
if test ${php_cv_have_re2c_cgoto+y}
then :
@@ -6831,8 +6790,8 @@
rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext ;;
esac
fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $php_cv_have_re2c_cgoto" >&5
-printf "%s\n" "$php_cv_have_re2c_cgoto" >&6; }
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $php_cv_have_re2c_cgoto" >&5
+printf '%s\n' "$php_cv_have_re2c_cgoto" >&6; }
if test "x$php_cv_have_re2c_cgoto" = xyes
then :
as_fn_append RE2C_FLAGS " -g"
@@ -6857,7 +6816,7 @@
;;
esac
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether the C compiler accepts -ffp-contract=off" >&5
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking whether the C compiler accepts -ffp-contract=off" >&5
printf %s "checking whether the C compiler accepts -ffp-contract=off... " >&6; }
if test ${ax_cv_check_cflags___ffp_contract_off+y}
then :
@@ -6888,8 +6847,8 @@
CFLAGS=$ax_check_save_flags ;;
esac
fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ax_cv_check_cflags___ffp_contract_off" >&5
-printf "%s\n" "$ax_cv_check_cflags___ffp_contract_off" >&6; }
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $ax_cv_check_cflags___ffp_contract_off" >&5
+printf '%s\n' "$ax_cv_check_cflags___ffp_contract_off" >&6; }
if test "x$ax_cv_check_cflags___ffp_contract_off" = xyes
then :
CFLAGS="$CFLAGS -ffp-contract=off"
@@ -6899,7 +6858,7 @@
fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether the C compiler accepts -fvisibility=hidden" >&5
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking whether the C compiler accepts -fvisibility=hidden" >&5
printf %s "checking whether the C compiler accepts -fvisibility=hidden... " >&6; }
if test ${ax_cv_check_cflags___fvisibility_hidden+y}
then :
@@ -6930,8 +6889,8 @@
CFLAGS=$ax_check_save_flags ;;
esac
fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ax_cv_check_cflags___fvisibility_hidden" >&5
-printf "%s\n" "$ax_cv_check_cflags___fvisibility_hidden" >&6; }
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $ax_cv_check_cflags___fvisibility_hidden" >&5
+printf '%s\n' "$ax_cv_check_cflags___fvisibility_hidden" >&6; }
if test "x$ax_cv_check_cflags___fvisibility_hidden" = xyes
then :
CFLAGS="$CFLAGS -fvisibility=hidden"
@@ -6952,43 +6911,43 @@
;;
esac
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether to force non-PIC code in shared modules" >&5
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking whether to force non-PIC code in shared modules" >&5
printf %s "checking whether to force non-PIC code in shared modules... " >&6; }
case $host_alias in
i?86-*-linux*|i?86-*-freebsd*)
if test "${with_pic+set}" != "set" || test "$with_pic" = "no"; then
with_pic=no
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-printf "%s\n" "yes" >&6; }
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+printf '%s\n' "yes" >&6; }
else
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
-printf "%s\n" "no" >&6; }
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf '%s\n' "no" >&6; }
fi
;;
*)
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
-printf "%s\n" "no" >&6; }
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf '%s\n' "no" >&6; }
;;
esac
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether we are using musl libc" >&5
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking whether we are using musl libc" >&5
printf %s "checking whether we are using musl libc... " >&6; }
if command -v ldd >/dev/null && ldd --version 2>&1 | grep ^musl >/dev/null 2>&1
then
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-printf "%s\n" "yes" >&6; }
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+printf '%s\n' "yes" >&6; }
-printf "%s\n" "#define __MUSL__ 1" >>confdefs.h
+printf '%s\n' "#define __MUSL__ 1" >>confdefs.h
else
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
-printf "%s\n" "no" >&6; }
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf '%s\n' "no" >&6; }
fi
as_fn_append CPPFLAGS " -D_GNU_SOURCE"
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for pthreads_cflags" >&5
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for pthreads_cflags" >&5
printf %s "checking for pthreads_cflags... " >&6; }
if test ${ac_cv_pthreads_cflags+y}
then :
@@ -7043,10 +7002,10 @@
;;
esac
fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_pthreads_cflags" >&5
-printf "%s\n" "$ac_cv_pthreads_cflags" >&6; }
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $ac_cv_pthreads_cflags" >&5
+printf '%s\n' "$ac_cv_pthreads_cflags" >&6; }
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for pthreads_lib" >&5
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for pthreads_lib" >&5
printf %s "checking for pthreads_lib... " >&6; }
if test ${ac_cv_pthreads_lib+y}
then :
@@ -7101,8 +7060,8 @@
;;
esac
fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_pthreads_lib" >&5
-printf "%s\n" "$ac_cv_pthreads_lib" >&6; }
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $ac_cv_pthreads_lib" >&5
+printf '%s\n' "$ac_cv_pthreads_lib" >&6; }
if test "x$ac_cv_pthreads_cflags" != "x" || test "x$ac_cv_pthreads_lib" != "x"; then
pthreads_working="yes"
@@ -7178,10 +7137,10 @@
SAPI_LIBTOOL=libphp.la
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: " >&5
-printf "%s\n" "" >&6; }
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: ${T_MD}Configuring SAPI modules${T_ME}" >&5
-printf "%s\n" "${T_MD}Configuring SAPI modules${T_ME}" >&6; }
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: " >&5
+printf '%s\n' "" >&6; }
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: ${T_MD}Configuring SAPI modules${T_ME}" >&5
+printf '%s\n' "${T_MD}Configuring SAPI modules${T_ME}" >&6; }
@@ -7194,7 +7153,7 @@
php_with_apxs2=no
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether to build Apache 2 handler module support via DSO through APXS" >&5
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking whether to build Apache 2 handler module support via DSO through APXS" >&5
printf %s "checking whether to build Apache 2 handler module support via DSO through APXS... " >&6; }
# Check whether --with-apxs2 was given.
@@ -7211,8 +7170,8 @@
ext_output=$PHP_APXS2
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ext_output" >&5
-printf "%s\n" "$ext_output" >&6; }
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $ext_output" >&5
+printf '%s\n' "$ext_output" >&6; }
@@ -7248,24 +7207,24 @@
$APXS -q CFLAGS >/dev/null 2>&1
if test "$?" != "0"; then
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: " >&5
-printf "%s\n" "" >&6; }
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: " >&5
-printf "%s\n" "" >&6; }
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: Sorry, I cannot run apxs. Possible reasons follow:" >&5
-printf "%s\n" "Sorry, I cannot run apxs. Possible reasons follow:" >&6; }
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: " >&5
-printf "%s\n" "" >&6; }
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: 1. Perl is not installed" >&5
-printf "%s\n" "1. Perl is not installed" >&6; }
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: 2. apxs was not found. Try to pass the path using --with-apxs2=/path/to/apxs" >&5
-printf "%s\n" "2. apxs was not found. Try to pass the path using --with-apxs2=/path/to/apxs" >&6; }
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: 3. Apache was not built using --enable-so (the apxs usage page is displayed)" >&5
-printf "%s\n" "3. Apache was not built using --enable-so (the apxs usage page is displayed)" >&6; }
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: " >&5
-printf "%s\n" "" >&6; }
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: The output of $APXS follows:" >&5
-printf "%s\n" "The output of $APXS follows:" >&6; }
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: " >&5
+printf '%s\n' "" >&6; }
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: " >&5
+printf '%s\n' "" >&6; }
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: Sorry, I cannot run apxs. Possible reasons follow:" >&5
+printf '%s\n' "Sorry, I cannot run apxs. Possible reasons follow:" >&6; }
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: " >&5
+printf '%s\n' "" >&6; }
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: 1. Perl is not installed" >&5
+printf '%s\n' "1. Perl is not installed" >&6; }
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: 2. apxs was not found. Try to pass the path using --with-apxs2=/path/to/apxs" >&5
+printf '%s\n' "2. apxs was not found. Try to pass the path using --with-apxs2=/path/to/apxs" >&6; }
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: 3. Apache was not built using --enable-so (the apxs usage page is displayed)" >&5
+printf '%s\n' "3. Apache was not built using --enable-so (the apxs usage page is displayed)" >&6; }
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: " >&5
+printf '%s\n' "" >&6; }
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: The output of $APXS follows:" >&5
+printf '%s\n' "The output of $APXS follows:" >&6; }
$APXS -q CFLAGS
as_fn_error $? "Aborting" "$LINENO" 5
fi
@@ -7587,7 +7546,7 @@
php_enable_cli=yes
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for CLI build" >&5
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for CLI build" >&5
printf %s "checking for CLI build... " >&6; }
# Check whether --enable-cli was given.
if test ${enable_cli+y}
@@ -7603,8 +7562,8 @@
ext_output=$PHP_CLI
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ext_output" >&5
-printf "%s\n" "$ext_output" >&6; }
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $ext_output" >&5
+printf '%s\n' "$ext_output" >&6; }
@@ -7613,7 +7572,7 @@
ac_fn_c_check_func "$LINENO" "setproctitle" "ac_cv_func_setproctitle"
if test "x$ac_cv_func_setproctitle" = xyes
then :
- printf "%s\n" "#define HAVE_SETPROCTITLE 1" >>confdefs.h
+ printf '%s\n' "#define HAVE_SETPROCTITLE 1" >>confdefs.h
fi
@@ -7621,12 +7580,12 @@
ac_fn_c_check_header_compile "$LINENO" "sys/pstat.h" "ac_cv_header_sys_pstat_h" "$ac_includes_default"
if test "x$ac_cv_header_sys_pstat_h" = xyes
then :
- printf "%s\n" "#define HAVE_SYS_PSTAT_H 1" >>confdefs.h
+ printf '%s\n' "#define HAVE_SYS_PSTAT_H 1" >>confdefs.h
fi
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for PS_STRINGS" >&5
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for PS_STRINGS" >&5
printf %s "checking for PS_STRINGS... " >&6; }
if test ${php_cv_var_PS_STRINGS+y}
then :
@@ -7660,12 +7619,12 @@
conftest$ac_exeext conftest.$ac_ext ;;
esac
fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $php_cv_var_PS_STRINGS" >&5
-printf "%s\n" "$php_cv_var_PS_STRINGS" >&6; }
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $php_cv_var_PS_STRINGS" >&5
+printf '%s\n' "$php_cv_var_PS_STRINGS" >&6; }
if test "x$php_cv_var_PS_STRINGS" = xyes
then :
-printf "%s\n" "#define HAVE_PS_STRINGS /**/" >>confdefs.h
+printf '%s\n' "#define HAVE_PS_STRINGS /**/" >>confdefs.h
fi
@@ -7858,7 +7817,7 @@
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for embedded SAPI library support" >&5
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for embedded SAPI library support" >&5
printf %s "checking for embedded SAPI library support... " >&6; }
if test "$PHP_EMBED" != "no"; then
@@ -7889,12 +7848,12 @@
if ${PHP_EMBED_TYPE:+false} :
then :
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
-printf "%s\n" "no" >&6; }
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf '%s\n' "no" >&6; }
else case e in #(
e)
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $PHP_EMBED_TYPE" >&5
-printf "%s\n" "$PHP_EMBED_TYPE" >&6; }
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $PHP_EMBED_TYPE" >&5
+printf '%s\n' "$PHP_EMBED_TYPE" >&6; }
PHP_VAR_SUBST="$PHP_VAR_SUBST LIBPHP_CFLAGS"
@@ -8116,8 +8075,8 @@
esac
fi
else
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
-printf "%s\n" "no" >&6; }
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf '%s\n' "no" >&6; }
fi
@@ -8126,7 +8085,7 @@
php_enable_fpm=no
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for FPM build" >&5
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for FPM build" >&5
printf %s "checking for FPM build... " >&6; }
# Check whether --enable-fpm was given.
if test ${enable_fpm+y}
@@ -8142,8 +8101,8 @@
ext_output=$PHP_FPM
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ext_output" >&5
-printf "%s\n" "$ext_output" >&6; }
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $ext_output" >&5
+printf '%s\n' "$ext_output" >&6; }
@@ -8170,12 +8129,12 @@
ac_fn_c_check_func "$LINENO" "clock_gettime" "ac_cv_func_clock_gettime"
if test "x$ac_cv_func_clock_gettime" = xyes
then :
- printf "%s\n" "#define HAVE_CLOCK_GETTIME 1" >>confdefs.h
+ printf '%s\n' "#define HAVE_CLOCK_GETTIME 1" >>confdefs.h
else case e in #(
e)
LIBS_save=$LIBS
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for library containing clock_gettime" >&5
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for library containing clock_gettime" >&5
printf %s "checking for library containing clock_gettime... " >&6; }
if test ${ac_cv_search_clock_gettime+y}
then :
@@ -8233,15 +8192,15 @@
LIBS=$ac_func_search_save_LIBS ;;
esac
fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_clock_gettime" >&5
-printf "%s\n" "$ac_cv_search_clock_gettime" >&6; }
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_clock_gettime" >&5
+printf '%s\n' "$ac_cv_search_clock_gettime" >&6; }
ac_res=$ac_cv_search_clock_gettime
if test "$ac_res" != no
then :
test "$ac_res" = "none required" || LIBS="$ac_res $LIBS"
ac_cv_func_clock_gettime=yes
- printf "%s\n" "#define HAVE_CLOCK_GETTIME 1" >>confdefs.h
+ printf '%s\n' "#define HAVE_CLOCK_GETTIME 1" >>confdefs.h
if test "x$ac_cv_search_clock_gettime" = x"none required"
then :
@@ -8262,7 +8221,7 @@
if test "x$ac_cv_func_clock_gettime" = xno
then :
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for clock_get_time" >&5
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for clock_get_time" >&5
printf %s "checking for clock_get_time... " >&6; }
if test ${php_cv_func_clock_get_time+y}
then :
@@ -8311,17 +8270,17 @@
;;
esac
fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $php_cv_func_clock_get_time" >&5
-printf "%s\n" "$php_cv_func_clock_get_time" >&6; }
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $php_cv_func_clock_get_time" >&5
+printf '%s\n' "$php_cv_func_clock_get_time" >&6; }
if test "x$php_cv_func_clock_get_time" = xyes
then :
-printf "%s\n" "#define HAVE_CLOCK_GET_TIME 1" >>confdefs.h
+printf '%s\n' "#define HAVE_CLOCK_GET_TIME 1" >>confdefs.h
fi
fi
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for ptrace" >&5
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for ptrace" >&5
printf %s "checking for ptrace... " >&6; }
if test ${php_cv_func_ptrace+y}
then :
@@ -8438,16 +8397,16 @@
rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext ;;
esac
fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $php_cv_func_ptrace" >&5
-printf "%s\n" "$php_cv_func_ptrace" >&6; }
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $php_cv_func_ptrace" >&5
+printf '%s\n' "$php_cv_func_ptrace" >&6; }
if test "x$php_cv_func_ptrace" = xyes
then :
-printf "%s\n" "#define HAVE_PTRACE 1" >>confdefs.h
+printf '%s\n' "#define HAVE_PTRACE 1" >>confdefs.h
else case e in #(
- e) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for mach_vm_read" >&5
+ e) { printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for mach_vm_read" >&5
printf %s "checking for mach_vm_read... " >&6; }
if test ${php_cv_func_mach_vm_read+y}
then :
@@ -8483,8 +8442,8 @@
rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext ;;
esac
fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $php_cv_func_mach_vm_read" >&5
-printf "%s\n" "$php_cv_func_mach_vm_read" >&6; }
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $php_cv_func_mach_vm_read" >&5
+printf '%s\n' "$php_cv_func_mach_vm_read" >&6; }
;;
esac
fi
@@ -8492,11 +8451,11 @@
if test "x$php_cv_func_mach_vm_read" = xyes
then :
-printf "%s\n" "#define HAVE_MACH_VM_READ 1" >>confdefs.h
+printf '%s\n' "#define HAVE_MACH_VM_READ 1" >>confdefs.h
fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for proc mem file" >&5
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for proc mem file" >&5
printf %s "checking for proc mem file... " >&6; }
if test ${php_cv_file_proc_mem+y}
then :
@@ -8571,15 +8530,15 @@
;;
esac
fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $php_cv_file_proc_mem" >&5
-printf "%s\n" "$php_cv_file_proc_mem" >&6; }
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $php_cv_file_proc_mem" >&5
+printf '%s\n' "$php_cv_file_proc_mem" >&6; }
if ${php_cv_file_proc_mem:+false} :
then :
else case e in #(
e)
-printf "%s\n" "#define PROC_MEM_FILE \"$php_cv_file_proc_mem\"" >>confdefs.h
+printf '%s\n' "#define PROC_MEM_FILE \"$php_cv_file_proc_mem\"" >>confdefs.h
;;
esac
fi
@@ -8600,11 +8559,11 @@
if ${fpm_trace_type:+false} :
then :
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: FPM Trace - ptrace, pread, or mach: could not be found" >&5
-printf "%s\n" "$as_me: WARNING: FPM Trace - ptrace, pread, or mach: could not be found" >&2;}
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: WARNING: FPM Trace - ptrace, pread, or mach: could not be found" >&5
+printf '%s\n' "$as_me: WARNING: FPM Trace - ptrace, pread, or mach: could not be found" >&2;}
fi
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if compiler supports __sync_bool_compare_and_swap" >&5
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking if compiler supports __sync_bool_compare_and_swap" >&5
printf %s "checking if compiler supports __sync_bool_compare_and_swap... " >&6; }
if test ${php_cv_have___sync_bool_compare_and_swap+y}
then :
@@ -8636,16 +8595,16 @@
conftest$ac_exeext conftest.$ac_ext ;;
esac
fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $php_cv_have___sync_bool_compare_and_swap" >&5
-printf "%s\n" "$php_cv_have___sync_bool_compare_and_swap" >&6; }
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $php_cv_have___sync_bool_compare_and_swap" >&5
+printf '%s\n' "$php_cv_have___sync_bool_compare_and_swap" >&6; }
if test "x$php_cv_have___sync_bool_compare_and_swap" = xyes
then :
-printf "%s\n" "#define HAVE_BUILTIN_ATOMIC 1" >>confdefs.h
+printf '%s\n' "#define HAVE_BUILTIN_ATOMIC 1" >>confdefs.h
fi
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for TCP_INFO" >&5
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for TCP_INFO" >&5
printf %s "checking for TCP_INFO... " >&6; }
if test ${php_cv_have_TCP_INFO+y}
then :
@@ -8677,16 +8636,16 @@
rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext ;;
esac
fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $php_cv_have_TCP_INFO" >&5
-printf "%s\n" "$php_cv_have_TCP_INFO" >&6; }
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $php_cv_have_TCP_INFO" >&5
+printf '%s\n' "$php_cv_have_TCP_INFO" >&6; }
if test "x$php_cv_have_TCP_INFO" = xyes
then :
-printf "%s\n" "#define HAVE_LQ_TCP_INFO 1" >>confdefs.h
+printf '%s\n' "#define HAVE_LQ_TCP_INFO 1" >>confdefs.h
fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for TCP_CONNECTION_INFO" >&5
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for TCP_CONNECTION_INFO" >&5
printf %s "checking for TCP_CONNECTION_INFO... " >&6; }
if test ${php_cv_have_TCP_CONNECTION_INFO+y}
then :
@@ -8718,16 +8677,16 @@
rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext ;;
esac
fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $php_cv_have_TCP_CONNECTION_INFO" >&5
-printf "%s\n" "$php_cv_have_TCP_CONNECTION_INFO" >&6; }
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $php_cv_have_TCP_CONNECTION_INFO" >&5
+printf '%s\n' "$php_cv_have_TCP_CONNECTION_INFO" >&6; }
if test "x$php_cv_have_TCP_CONNECTION_INFO" = xyes
then :
-printf "%s\n" "#define HAVE_LQ_TCP_CONNECTION_INFO 1" >>confdefs.h
+printf '%s\n' "#define HAVE_LQ_TCP_CONNECTION_INFO 1" >>confdefs.h
fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for SO_LISTENQLEN" >&5
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for SO_LISTENQLEN" >&5
printf %s "checking for SO_LISTENQLEN... " >&6; }
if test ${php_cv_have_SO_LISTENQLEN+y}
then :
@@ -8759,16 +8718,16 @@
rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext ;;
esac
fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $php_cv_have_SO_LISTENQLEN" >&5
-printf "%s\n" "$php_cv_have_SO_LISTENQLEN" >&6; }
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $php_cv_have_SO_LISTENQLEN" >&5
+printf '%s\n' "$php_cv_have_SO_LISTENQLEN" >&6; }
if test "x$php_cv_have_SO_LISTENQLEN" = xyes
then :
-printf "%s\n" "#define HAVE_LQ_SO_LISTENQ 1" >>confdefs.h
+printf '%s\n' "#define HAVE_LQ_SO_LISTENQ 1" >>confdefs.h
fi
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for kqueue" >&5
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for kqueue" >&5
printf %s "checking for kqueue... " >&6; }
if test ${php_cv_have_kqueue+y}
then :
@@ -8804,16 +8763,16 @@
rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext ;;
esac
fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $php_cv_have_kqueue" >&5
-printf "%s\n" "$php_cv_have_kqueue" >&6; }
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $php_cv_have_kqueue" >&5
+printf '%s\n' "$php_cv_have_kqueue" >&6; }
if test "x$php_cv_have_kqueue" = xyes
then :
-printf "%s\n" "#define HAVE_KQUEUE 1" >>confdefs.h
+printf '%s\n' "#define HAVE_KQUEUE 1" >>confdefs.h
fi
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for epoll" >&5
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for epoll" >&5
printf %s "checking for epoll... " >&6; }
if test ${php_cv_have_epoll+y}
then :
@@ -8859,16 +8818,16 @@
rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext ;;
esac
fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $php_cv_have_epoll" >&5
-printf "%s\n" "$php_cv_have_epoll" >&6; }
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $php_cv_have_epoll" >&5
+printf '%s\n' "$php_cv_have_epoll" >&6; }
if test "x$php_cv_have_epoll" = xyes
then :
-printf "%s\n" "#define HAVE_EPOLL 1" >>confdefs.h
+printf '%s\n' "#define HAVE_EPOLL 1" >>confdefs.h
fi
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for select" >&5
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for select" >&5
printf %s "checking for select... " >&6; }
if test ${php_cv_have_select+y}
then :
@@ -8910,12 +8869,12 @@
rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext ;;
esac
fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $php_cv_have_select" >&5
-printf "%s\n" "$php_cv_have_select" >&6; }
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $php_cv_have_select" >&5
+printf '%s\n' "$php_cv_have_select" >&6; }
if test "x$php_cv_have_select" = xyes
then :
-printf "%s\n" "#define HAVE_SELECT 1" >>confdefs.h
+printf '%s\n' "#define HAVE_SELECT 1" >>confdefs.h
fi
@@ -8923,19 +8882,19 @@
ac_fn_c_check_func "$LINENO" "clearenv" "ac_cv_func_clearenv"
if test "x$ac_cv_func_clearenv" = xyes
then :
- printf "%s\n" "#define HAVE_CLEARENV 1" >>confdefs.h
+ printf '%s\n' "#define HAVE_CLEARENV 1" >>confdefs.h
fi
ac_fn_c_check_func "$LINENO" "setproctitle" "ac_cv_func_setproctitle"
if test "x$ac_cv_func_setproctitle" = xyes
then :
- printf "%s\n" "#define HAVE_SETPROCTITLE 1" >>confdefs.h
+ printf '%s\n' "#define HAVE_SETPROCTITLE 1" >>confdefs.h
fi
ac_fn_c_check_func "$LINENO" "setproctitle_fast" "ac_cv_func_setproctitle_fast"
if test "x$ac_cv_func_setproctitle_fast" = xyes
then :
- printf "%s\n" "#define HAVE_SETPROCTITLE_FAST 1" >>confdefs.h
+ printf '%s\n' "#define HAVE_SETPROCTITLE_FAST 1" >>confdefs.h
fi
@@ -8946,7 +8905,7 @@
ac_fn_c_check_func "$LINENO" "setpflags" "ac_cv_func_setpflags"
if test "x$ac_cv_func_setpflags" = xyes
then :
- printf "%s\n" "#define HAVE_SETPFLAGS 1" >>confdefs.h
+ printf '%s\n' "#define HAVE_SETPFLAGS 1" >>confdefs.h
fi
@@ -8958,7 +8917,7 @@
ac_fn_c_check_func "$LINENO" "times" "ac_cv_func_times"
if test "x$ac_cv_func_times" = xyes
then :
- printf "%s\n" "#define HAVE_TIMES 1" >>confdefs.h
+ printf '%s\n' "#define HAVE_TIMES 1" >>confdefs.h
fi
@@ -8970,7 +8929,7 @@
ac_fn_c_check_func "$LINENO" "port_create" "ac_cv_func_port_create"
if test "x$ac_cv_func_port_create" = xyes
then :
- printf "%s\n" "#define HAVE_PORT_CREATE 1" >>confdefs.h
+ printf '%s\n' "#define HAVE_PORT_CREATE 1" >>confdefs.h
fi
@@ -9028,7 +8987,7 @@
php_with_fpm_systemd=no
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether to enable systemd integration in PHP-FPM" >&5
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking whether to enable systemd integration in PHP-FPM" >&5
printf %s "checking whether to enable systemd integration in PHP-FPM... " >&6; }
# Check whether --with-fpm-systemd was given.
@@ -9045,8 +9004,8 @@
ext_output=$PHP_FPM_SYSTEMD
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ext_output" >&5
-printf "%s\n" "$ext_output" >&6; }
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $ext_output" >&5
+printf '%s\n' "$ext_output" >&6; }
@@ -9054,7 +9013,7 @@
php_with_fpm_acl=no
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether to use Access Control Lists (ACL) in PHP-FPM" >&5
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking whether to use Access Control Lists (ACL) in PHP-FPM" >&5
printf %s "checking whether to use Access Control Lists (ACL) in PHP-FPM... " >&6; }
# Check whether --with-fpm-acl was given.
@@ -9071,8 +9030,8 @@
ext_output=$PHP_FPM_ACL
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ext_output" >&5
-printf "%s\n" "$ext_output" >&6; }
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $ext_output" >&5
+printf '%s\n' "$ext_output" >&6; }
@@ -9080,7 +9039,7 @@
php_with_fpm_apparmor=no
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether to enable AppArmor confinement in PHP-FPM" >&5
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking whether to enable AppArmor confinement in PHP-FPM" >&5
printf %s "checking whether to enable AppArmor confinement in PHP-FPM... " >&6; }
# Check whether --with-fpm-apparmor was given.
@@ -9097,8 +9056,8 @@
ext_output=$PHP_FPM_APPARMOR
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ext_output" >&5
-printf "%s\n" "$ext_output" >&6; }
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $ext_output" >&5
+printf '%s\n' "$ext_output" >&6; }
@@ -9106,7 +9065,7 @@
php_with_fpm_selinux=no
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether to enable SELinux support in PHP-FPM" >&5
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking whether to enable SELinux support in PHP-FPM" >&5
printf %s "checking whether to enable SELinux support in PHP-FPM... " >&6; }
# Check whether --with-fpm-selinux was given.
@@ -9123,8 +9082,8 @@
ext_output=$PHP_FPM_SELINUX
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ext_output" >&5
-printf "%s\n" "$ext_output" >&6; }
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $ext_output" >&5
+printf '%s\n' "$ext_output" >&6; }
@@ -9136,17 +9095,17 @@
e)
pkg_failed=no
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for libsystemd >= 209" >&5
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for libsystemd >= 209" >&5
printf %s "checking for libsystemd >= 209... " >&6; }
if test -n "$SYSTEMD_CFLAGS"; then
pkg_cv_SYSTEMD_CFLAGS="$SYSTEMD_CFLAGS"
elif test -n "$PKG_CONFIG"; then
if test -n "$PKG_CONFIG" && \
- { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libsystemd >= 209\""; } >&5
+ { { printf '%s\n' "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libsystemd >= 209\""; } >&5
($PKG_CONFIG --exists --print-errors "libsystemd >= 209") 2>&5
ac_status=$?
- printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ printf '%s\n' "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
test $ac_status = 0; }; then
pkg_cv_SYSTEMD_CFLAGS=`$PKG_CONFIG --cflags "libsystemd >= 209" 2>/dev/null`
test "x$?" != "x0" && pkg_failed=yes
@@ -9160,10 +9119,10 @@
pkg_cv_SYSTEMD_LIBS="$SYSTEMD_LIBS"
elif test -n "$PKG_CONFIG"; then
if test -n "$PKG_CONFIG" && \
- { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libsystemd >= 209\""; } >&5
+ { { printf '%s\n' "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libsystemd >= 209\""; } >&5
($PKG_CONFIG --exists --print-errors "libsystemd >= 209") 2>&5
ac_status=$?
- printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ printf '%s\n' "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
test $ac_status = 0; }; then
pkg_cv_SYSTEMD_LIBS=`$PKG_CONFIG --libs "libsystemd >= 209" 2>/dev/null`
test "x$?" != "x0" && pkg_failed=yes
@@ -9177,8 +9136,8 @@
if test $pkg_failed = yes; then
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
-printf "%s\n" "no" >&6; }
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf '%s\n' "no" >&6; }
if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then
_pkg_short_errors_supported=yes
@@ -9204,10 +9163,10 @@
and SYSTEMD_LIBS to avoid the need to call pkg-config.
See the pkg-config man page for more details." "$LINENO" 5
elif test $pkg_failed = untried; then
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
-printf "%s\n" "no" >&6; }
- { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in '$ac_pwd':" >&5
-printf "%s\n" "$as_me: error: in '$ac_pwd':" >&2;}
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf '%s\n' "no" >&6; }
+ { { printf '%s\n' "$as_me:${as_lineno-$LINENO}: error: in '$ac_pwd':" >&5
+printf '%s\n' "$as_me: error: in '$ac_pwd':" >&2;}
as_fn_error $? "The pkg-config script could not be found or is too old. Make sure it
is in your PATH or set the PKG_CONFIG environment variable to the full
path to pkg-config.
@@ -9221,13 +9180,13 @@
else
SYSTEMD_CFLAGS=$pkg_cv_SYSTEMD_CFLAGS
SYSTEMD_LIBS=$pkg_cv_SYSTEMD_LIBS
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-printf "%s\n" "yes" >&6; }
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+printf '%s\n' "yes" >&6; }
fi
-printf "%s\n" "#define HAVE_SYSTEMD 1" >>confdefs.h
+printf '%s\n' "#define HAVE_SYSTEMD 1" >>confdefs.h
PHP_FPM_SD_FILES="fpm/fpm_systemd.c"
_php_ext_shared_saved=$ext_shared; ext_shared=yes
@@ -9395,8 +9354,8 @@
then :
else case e in #(
- e) { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in '$ac_pwd':" >&5
-printf "%s\n" "$as_me: error: in '$ac_pwd':" >&2;}
+ e) { { printf '%s\n' "$as_me:${as_lineno-$LINENO}: error: in '$ac_pwd':" >&5
+printf '%s\n' "$as_me: error: in '$ac_pwd':" >&2;}
as_fn_error $? "Required header file not found.
See 'config.log' for more details" "$LINENO" 5; } ;;
esac
@@ -9417,13 +9376,13 @@
ac_fn_c_check_header_compile "$LINENO" "sys/acl.h" "ac_cv_header_sys_acl_h" "$ac_includes_default"
if test "x$ac_cv_header_sys_acl_h" = xyes
then :
- printf "%s\n" "#define HAVE_SYS_ACL_H 1" >>confdefs.h
+ printf '%s\n' "#define HAVE_SYS_ACL_H 1" >>confdefs.h
fi
LIBS_save=$LIBS
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for library containing acl_free" >&5
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for library containing acl_free" >&5
printf %s "checking for library containing acl_free... " >&6; }
if test ${ac_cv_search_acl_free+y}
then :
@@ -9481,13 +9440,13 @@
LIBS=$ac_func_search_save_LIBS ;;
esac
fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_acl_free" >&5
-printf "%s\n" "$ac_cv_search_acl_free" >&6; }
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_acl_free" >&5
+printf '%s\n' "$ac_cv_search_acl_free" >&6; }
ac_res=$ac_cv_search_acl_free
if test "$ac_res" != no
then :
test "$ac_res" = "none required" || LIBS="$ac_res $LIBS"
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for ACL user/group permissions support" >&5
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for ACL user/group permissions support" >&5
printf %s "checking for ACL user/group permissions support... " >&6; }
if test ${php_cv_lib_acl_user_group+y}
then :
@@ -9524,13 +9483,13 @@
conftest$ac_exeext conftest.$ac_ext ;;
esac
fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $php_cv_lib_acl_user_group" >&5
-printf "%s\n" "$php_cv_lib_acl_user_group" >&6; }
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $php_cv_lib_acl_user_group" >&5
+printf '%s\n' "$php_cv_lib_acl_user_group" >&6; }
if test "x$php_cv_lib_acl_user_group" = xyes
then :
-printf "%s\n" "#define HAVE_FPM_ACL 1" >>confdefs.h
+printf '%s\n' "#define HAVE_FPM_ACL 1" >>confdefs.h
if test "x$ac_cv_search_acl_free" = x"none required"
then :
@@ -9556,17 +9515,17 @@
e)
pkg_failed=no
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for libapparmor" >&5
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for libapparmor" >&5
printf %s "checking for libapparmor... " >&6; }
if test -n "$APPARMOR_CFLAGS"; then
pkg_cv_APPARMOR_CFLAGS="$APPARMOR_CFLAGS"
elif test -n "$PKG_CONFIG"; then
if test -n "$PKG_CONFIG" && \
- { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libapparmor\""; } >&5
+ { { printf '%s\n' "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libapparmor\""; } >&5
($PKG_CONFIG --exists --print-errors "libapparmor") 2>&5
ac_status=$?
- printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ printf '%s\n' "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
test $ac_status = 0; }; then
pkg_cv_APPARMOR_CFLAGS=`$PKG_CONFIG --cflags "libapparmor" 2>/dev/null`
test "x$?" != "x0" && pkg_failed=yes
@@ -9580,10 +9539,10 @@
pkg_cv_APPARMOR_LIBS="$APPARMOR_LIBS"
elif test -n "$PKG_CONFIG"; then
if test -n "$PKG_CONFIG" && \
- { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libapparmor\""; } >&5
+ { { printf '%s\n' "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libapparmor\""; } >&5
($PKG_CONFIG --exists --print-errors "libapparmor") 2>&5
ac_status=$?
- printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ printf '%s\n' "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
test $ac_status = 0; }; then
pkg_cv_APPARMOR_LIBS=`$PKG_CONFIG --libs "libapparmor" 2>/dev/null`
test "x$?" != "x0" && pkg_failed=yes
@@ -9597,8 +9556,8 @@
if test $pkg_failed = yes; then
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
-printf "%s\n" "no" >&6; }
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf '%s\n' "no" >&6; }
if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then
_pkg_short_errors_supported=yes
@@ -9613,7 +9572,7 @@
# Put the nasty error message in config.log where it belongs
echo "$APPARMOR_PKG_ERRORS" >&5
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for aa_change_profile in -lapparmor" >&5
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for aa_change_profile in -lapparmor" >&5
printf %s "checking for aa_change_profile in -lapparmor... " >&6; }
if test ${ac_cv_lib_apparmor_aa_change_profile+y}
then :
@@ -9654,23 +9613,23 @@
LIBS=$ac_check_lib_save_LIBS ;;
esac
fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_apparmor_aa_change_profile" >&5
-printf "%s\n" "$ac_cv_lib_apparmor_aa_change_profile" >&6; }
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_apparmor_aa_change_profile" >&5
+printf '%s\n' "$ac_cv_lib_apparmor_aa_change_profile" >&6; }
if test "x$ac_cv_lib_apparmor_aa_change_profile" = xyes
then :
APPARMOR_LIBS=-lapparmor
else case e in #(
- e) { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in '$ac_pwd':" >&5
-printf "%s\n" "$as_me: error: in '$ac_pwd':" >&2;}
+ e) { { printf '%s\n' "$as_me:${as_lineno-$LINENO}: error: in '$ac_pwd':" >&5
+printf '%s\n' "$as_me: error: in '$ac_pwd':" >&2;}
as_fn_error $? "Required libapparmor library not found.
See 'config.log' for more details" "$LINENO" 5; } ;;
esac
fi
elif test $pkg_failed = untried; then
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
-printf "%s\n" "no" >&6; }
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for aa_change_profile in -lapparmor" >&5
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf '%s\n' "no" >&6; }
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for aa_change_profile in -lapparmor" >&5
printf %s "checking for aa_change_profile in -lapparmor... " >&6; }
if test ${ac_cv_lib_apparmor_aa_change_profile+y}
then :
@@ -9711,14 +9670,14 @@
LIBS=$ac_check_lib_save_LIBS ;;
esac
fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_apparmor_aa_change_profile" >&5
-printf "%s\n" "$ac_cv_lib_apparmor_aa_change_profile" >&6; }
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_apparmor_aa_change_profile" >&5
+printf '%s\n' "$ac_cv_lib_apparmor_aa_change_profile" >&6; }
if test "x$ac_cv_lib_apparmor_aa_change_profile" = xyes
then :
APPARMOR_LIBS=-lapparmor
else case e in #(
- e) { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in '$ac_pwd':" >&5
-printf "%s\n" "$as_me: error: in '$ac_pwd':" >&2;}
+ e) { { printf '%s\n' "$as_me:${as_lineno-$LINENO}: error: in '$ac_pwd':" >&5
+printf '%s\n' "$as_me: error: in '$ac_pwd':" >&2;}
as_fn_error $? "Required libapparmor library not found.
See 'config.log' for more details" "$LINENO" 5; } ;;
esac
@@ -9727,8 +9686,8 @@
else
APPARMOR_CFLAGS=$pkg_cv_APPARMOR_CFLAGS
APPARMOR_LIBS=$pkg_cv_APPARMOR_LIBS
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-printf "%s\n" "yes" >&6; }
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+printf '%s\n' "yes" >&6; }
for ac_i in $APPARMOR_CFLAGS; do
case $ac_i in
@@ -9892,11 +9851,11 @@
if test "x$ac_cv_header_sys_apparmor_h" = xyes
then :
-printf "%s\n" "#define HAVE_APPARMOR 1" >>confdefs.h
+printf '%s\n' "#define HAVE_APPARMOR 1" >>confdefs.h
else case e in #(
- e) { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in '$ac_pwd':" >&5
-printf "%s\n" "$as_me: error: in '$ac_pwd':" >&2;}
+ e) { { printf '%s\n' "$as_me:${as_lineno-$LINENO}: error: in '$ac_pwd':" >&5
+printf '%s\n' "$as_me: error: in '$ac_pwd':" >&2;}
as_fn_error $? "Required header file not found.
See 'config.log' for more details" "$LINENO" 5; } ;;
esac
@@ -9914,17 +9873,17 @@
e)
pkg_failed=no
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for libselinux" >&5
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for libselinux" >&5
printf %s "checking for libselinux... " >&6; }
if test -n "$SELINUX_CFLAGS"; then
pkg_cv_SELINUX_CFLAGS="$SELINUX_CFLAGS"
elif test -n "$PKG_CONFIG"; then
if test -n "$PKG_CONFIG" && \
- { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libselinux\""; } >&5
+ { { printf '%s\n' "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libselinux\""; } >&5
($PKG_CONFIG --exists --print-errors "libselinux") 2>&5
ac_status=$?
- printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ printf '%s\n' "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
test $ac_status = 0; }; then
pkg_cv_SELINUX_CFLAGS=`$PKG_CONFIG --cflags "libselinux" 2>/dev/null`
test "x$?" != "x0" && pkg_failed=yes
@@ -9938,10 +9897,10 @@
pkg_cv_SELINUX_LIBS="$SELINUX_LIBS"
elif test -n "$PKG_CONFIG"; then
if test -n "$PKG_CONFIG" && \
- { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libselinux\""; } >&5
+ { { printf '%s\n' "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libselinux\""; } >&5
($PKG_CONFIG --exists --print-errors "libselinux") 2>&5
ac_status=$?
- printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ printf '%s\n' "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
test $ac_status = 0; }; then
pkg_cv_SELINUX_LIBS=`$PKG_CONFIG --libs "libselinux" 2>/dev/null`
test "x$?" != "x0" && pkg_failed=yes
@@ -9955,8 +9914,8 @@
if test $pkg_failed = yes; then
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
-printf "%s\n" "no" >&6; }
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf '%s\n' "no" >&6; }
if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then
_pkg_short_errors_supported=yes
@@ -9971,7 +9930,7 @@
# Put the nasty error message in config.log where it belongs
echo "$SELINUX_PKG_ERRORS" >&5
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for security_setenforce in -lselinux" >&5
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for security_setenforce in -lselinux" >&5
printf %s "checking for security_setenforce in -lselinux... " >&6; }
if test ${ac_cv_lib_selinux_security_setenforce+y}
then :
@@ -10012,23 +9971,23 @@
LIBS=$ac_check_lib_save_LIBS ;;
esac
fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_selinux_security_setenforce" >&5
-printf "%s\n" "$ac_cv_lib_selinux_security_setenforce" >&6; }
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_selinux_security_setenforce" >&5
+printf '%s\n' "$ac_cv_lib_selinux_security_setenforce" >&6; }
if test "x$ac_cv_lib_selinux_security_setenforce" = xyes
then :
SELINUX_LIBS=-lselinux
else case e in #(
- e) { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in '$ac_pwd':" >&5
-printf "%s\n" "$as_me: error: in '$ac_pwd':" >&2;}
+ e) { { printf '%s\n' "$as_me:${as_lineno-$LINENO}: error: in '$ac_pwd':" >&5
+printf '%s\n' "$as_me: error: in '$ac_pwd':" >&2;}
as_fn_error $? "Required SELinux library not found.
See 'config.log' for more details" "$LINENO" 5; } ;;
esac
fi
elif test $pkg_failed = untried; then
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
-printf "%s\n" "no" >&6; }
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for security_setenforce in -lselinux" >&5
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf '%s\n' "no" >&6; }
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for security_setenforce in -lselinux" >&5
printf %s "checking for security_setenforce in -lselinux... " >&6; }
if test ${ac_cv_lib_selinux_security_setenforce+y}
then :
@@ -10069,14 +10028,14 @@
LIBS=$ac_check_lib_save_LIBS ;;
esac
fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_selinux_security_setenforce" >&5
-printf "%s\n" "$ac_cv_lib_selinux_security_setenforce" >&6; }
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_selinux_security_setenforce" >&5
+printf '%s\n' "$ac_cv_lib_selinux_security_setenforce" >&6; }
if test "x$ac_cv_lib_selinux_security_setenforce" = xyes
then :
SELINUX_LIBS=-lselinux
else case e in #(
- e) { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in '$ac_pwd':" >&5
-printf "%s\n" "$as_me: error: in '$ac_pwd':" >&2;}
+ e) { { printf '%s\n' "$as_me:${as_lineno-$LINENO}: error: in '$ac_pwd':" >&5
+printf '%s\n' "$as_me: error: in '$ac_pwd':" >&2;}
as_fn_error $? "Required SELinux library not found.
See 'config.log' for more details" "$LINENO" 5; } ;;
esac
@@ -10085,8 +10044,8 @@
else
SELINUX_CFLAGS=$pkg_cv_SELINUX_CFLAGS
SELINUX_LIBS=$pkg_cv_SELINUX_LIBS
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-printf "%s\n" "yes" >&6; }
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+printf '%s\n' "yes" >&6; }
for ac_i in $SELINUX_CFLAGS; do
case $ac_i in
@@ -10250,11 +10209,11 @@
if test "x$ac_cv_header_selinux_selinux_h" = xyes
then :
-printf "%s\n" "#define HAVE_SELINUX 1" >>confdefs.h
+printf '%s\n' "#define HAVE_SELINUX 1" >>confdefs.h
else case e in #(
- e) { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in '$ac_pwd':" >&5
-printf "%s\n" "$as_me: error: in '$ac_pwd':" >&2;}
+ e) { { printf '%s\n' "$as_me:${as_lineno-$LINENO}: error: in '$ac_pwd':" >&5
+printf '%s\n' "$as_me: error: in '$ac_pwd':" >&2;}
as_fn_error $? "Required header file not found.
See 'config.log' for more details" "$LINENO" 5; } ;;
esac
@@ -10466,7 +10425,7 @@
php_enable_fuzzer=no
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for Clang fuzzer SAPI" >&5
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for Clang fuzzer SAPI" >&5
printf %s "checking for Clang fuzzer SAPI... " >&6; }
# Check whether --enable-fuzzer was given.
if test ${enable_fuzzer+y}
@@ -10482,8 +10441,8 @@
ext_output=$PHP_FUZZER
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ext_output" >&5
-printf "%s\n" "$ext_output" >&6; }
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $ext_output" >&5
+printf '%s\n' "$ext_output" >&6; }
@@ -10498,13 +10457,7 @@
(--enable-fuzzer). Please build fuzzer without ZTS." "$LINENO" 5
fi
-
-
-
-
-
-
-ac_ext=cpp
+ ac_ext=cpp
ac_cpp='$CXXCPP $CPPFLAGS'
ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5'
ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
@@ -10518,7 +10471,7 @@
do
# Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args.
set dummy $ac_tool_prefix$ac_prog; ac_word=$2
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
printf %s "checking for $ac_word... " >&6; }
if test ${ac_cv_prog_CXX+y}
then :
@@ -10539,7 +10492,7 @@
for ac_exec_ext in '' $ac_executable_extensions; do
if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
ac_cv_prog_CXX="$ac_tool_prefix$ac_prog"
- printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
+ printf '%s\n' "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
break 2
fi
done
@@ -10551,11 +10504,11 @@
fi
CXX=$ac_cv_prog_CXX
if test -n "$CXX"; then
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $CXX" >&5
-printf "%s\n" "$CXX" >&6; }
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $CXX" >&5
+printf '%s\n' "$CXX" >&6; }
else
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
-printf "%s\n" "no" >&6; }
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf '%s\n' "no" >&6; }
fi
@@ -10568,7 +10521,7 @@
do
# Extract the first word of "$ac_prog", so it can be a program name with args.
set dummy $ac_prog; ac_word=$2
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
printf %s "checking for $ac_word... " >&6; }
if test ${ac_cv_prog_ac_ct_CXX+y}
then :
@@ -10589,7 +10542,7 @@
for ac_exec_ext in '' $ac_executable_extensions; do
if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
ac_cv_prog_ac_ct_CXX="$ac_prog"
- printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
+ printf '%s\n' "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
break 2
fi
done
@@ -10601,11 +10554,11 @@
fi
ac_ct_CXX=$ac_cv_prog_ac_ct_CXX
if test -n "$ac_ct_CXX"; then
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CXX" >&5
-printf "%s\n" "$ac_ct_CXX" >&6; }
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CXX" >&5
+printf '%s\n' "$ac_ct_CXX" >&6; }
else
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
-printf "%s\n" "no" >&6; }
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf '%s\n' "no" >&6; }
fi
@@ -10617,8 +10570,8 @@
else
case $cross_compiling:$ac_tool_warned in
yes:)
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
-printf "%s\n" "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+printf '%s\n' "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
ac_tool_warned=yes ;;
esac
CXX=$ac_ct_CXX
@@ -10628,7 +10581,7 @@
fi
fi
# Provide some information about the compiler.
-printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for C++ compiler version" >&5
+printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for C++ compiler version" >&5
set X $ac_compile
ac_compiler=$2
for ac_option in --version -v -V -qversion; do
@@ -10638,7 +10591,7 @@
*) ac_try_echo=$ac_try;;
esac
eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
-printf "%s\n" "$ac_try_echo"; } >&5
+printf '%s\n' "$ac_try_echo"; } >&5
(eval "$ac_compiler $ac_option >&5") 2>conftest.err
ac_status=$?
if test -s conftest.err; then
@@ -10648,11 +10601,11 @@
cat conftest.er1 >&5
fi
rm -f conftest.er1 conftest.err
- printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ printf '%s\n' "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
test $ac_status = 0; }
done
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether the compiler supports GNU C++" >&5
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking whether the compiler supports GNU C++" >&5
printf %s "checking whether the compiler supports GNU C++... " >&6; }
if test ${ac_cv_cxx_compiler_gnu+y}
then :
@@ -10684,8 +10637,8 @@
;;
esac
fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_cxx_compiler_gnu" >&5
-printf "%s\n" "$ac_cv_cxx_compiler_gnu" >&6; }
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $ac_cv_cxx_compiler_gnu" >&5
+printf '%s\n' "$ac_cv_cxx_compiler_gnu" >&6; }
ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
if test $ac_compiler_gnu = yes; then
@@ -10695,7 +10648,7 @@
fi
ac_test_CXXFLAGS=${CXXFLAGS+y}
ac_save_CXXFLAGS=$CXXFLAGS
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether $CXX accepts -g" >&5
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking whether $CXX accepts -g" >&5
printf %s "checking whether $CXX accepts -g... " >&6; }
if test ${ac_cv_prog_cxx_g+y}
then :
@@ -10763,8 +10716,8 @@
ac_cxx_werror_flag=$ac_save_cxx_werror_flag ;;
esac
fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cxx_g" >&5
-printf "%s\n" "$ac_cv_prog_cxx_g" >&6; }
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cxx_g" >&5
+printf '%s\n' "$ac_cv_prog_cxx_g" >&6; }
if test $ac_test_CXXFLAGS; then
CXXFLAGS=$ac_save_CXXFLAGS
elif test $ac_cv_prog_cxx_g = yes; then
@@ -10780,106 +10733,6 @@
CXXFLAGS=
fi
fi
-ac_prog_cxx_stdcxx=no
-if test x$ac_prog_cxx_stdcxx = xno
-then :
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $CXX option to enable C++11 features" >&5
-printf %s "checking for $CXX option to enable C++11 features... " >&6; }
-if test ${ac_cv_prog_cxx_cxx11+y}
-then :
- printf %s "(cached) " >&6
-else case e in #(
- e) ac_cv_prog_cxx_cxx11=no
-ac_save_CXX=$CXX
-cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-$ac_cxx_conftest_cxx11_program
-_ACEOF
-for ac_arg in '' -std=gnu++11 -std=gnu++0x -std=c++11 -std=c++0x -qlanglvl=extended0x -AA
-do
- CXX="$ac_save_CXX $ac_arg"
- if ac_fn_cxx_try_compile "$LINENO"
-then :
- ac_cv_prog_cxx_cxx11=$ac_arg
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.beam
- test "x$ac_cv_prog_cxx_cxx11" != "xno" && break
-done
-rm -f conftest.$ac_ext
-CXX=$ac_save_CXX ;;
-esac
-fi
-
-if test "x$ac_cv_prog_cxx_cxx11" = xno
-then :
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5
-printf "%s\n" "unsupported" >&6; }
-else case e in #(
- e) if test "x$ac_cv_prog_cxx_cxx11" = x
-then :
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: none needed" >&5
-printf "%s\n" "none needed" >&6; }
-else case e in #(
- e) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cxx_cxx11" >&5
-printf "%s\n" "$ac_cv_prog_cxx_cxx11" >&6; }
- CXX="$CXX $ac_cv_prog_cxx_cxx11" ;;
-esac
-fi
- ac_cv_prog_cxx_stdcxx=$ac_cv_prog_cxx_cxx11
- ac_prog_cxx_stdcxx=cxx11 ;;
-esac
-fi
-fi
-if test x$ac_prog_cxx_stdcxx = xno
-then :
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $CXX option to enable C++98 features" >&5
-printf %s "checking for $CXX option to enable C++98 features... " >&6; }
-if test ${ac_cv_prog_cxx_cxx98+y}
-then :
- printf %s "(cached) " >&6
-else case e in #(
- e) ac_cv_prog_cxx_cxx98=no
-ac_save_CXX=$CXX
-cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-$ac_cxx_conftest_cxx98_program
-_ACEOF
-for ac_arg in '' -std=gnu++98 -std=c++98 -qlanglvl=extended -AA
-do
- CXX="$ac_save_CXX $ac_arg"
- if ac_fn_cxx_try_compile "$LINENO"
-then :
- ac_cv_prog_cxx_cxx98=$ac_arg
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.beam
- test "x$ac_cv_prog_cxx_cxx98" != "xno" && break
-done
-rm -f conftest.$ac_ext
-CXX=$ac_save_CXX ;;
-esac
-fi
-
-if test "x$ac_cv_prog_cxx_cxx98" = xno
-then :
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5
-printf "%s\n" "unsupported" >&6; }
-else case e in #(
- e) if test "x$ac_cv_prog_cxx_cxx98" = x
-then :
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: none needed" >&5
-printf "%s\n" "none needed" >&6; }
-else case e in #(
- e) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cxx_cxx98" >&5
-printf "%s\n" "$ac_cv_prog_cxx_cxx98" >&6; }
- CXX="$CXX $ac_cv_prog_cxx_cxx98" ;;
-esac
-fi
- ac_cv_prog_cxx_stdcxx=$ac_cv_prog_cxx_cxx98
- ac_prog_cxx_stdcxx=cxx98 ;;
-esac
-fi
-fi
-
ac_ext=c
ac_cpp='$CPP $CPPFLAGS'
ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
@@ -10891,7 +10744,7 @@
ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5'
ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking how to run the C++ preprocessor" >&5
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking how to run the C++ preprocessor" >&5
printf %s "checking how to run the C++ preprocessor... " >&6; }
if test -z "$CXXCPP"; then
if test ${ac_cv_prog_CXXCPP+y}
@@ -10958,8 +10811,8 @@
else
ac_cv_prog_CXXCPP=$CXXCPP
fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $CXXCPP" >&5
-printf "%s\n" "$CXXCPP" >&6; }
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $CXXCPP" >&5
+printf '%s\n' "$CXXCPP" >&6; }
ac_preproc_ok=false
for ac_cxx_preproc_warn_flag in '' yes
do
@@ -11007,8 +10860,8 @@
then :
else case e in #(
- e) { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in '$ac_pwd':" >&5
-printf "%s\n" "$as_me: error: in '$ac_pwd':" >&2;}
+ e) { { printf '%s\n' "$as_me:${as_lineno-$LINENO}: error: in '$ac_pwd':" >&5
+printf '%s\n' "$as_me: error: in '$ac_pwd':" >&2;}
as_fn_error $? "C++ preprocessor \"$CXXCPP\" fails sanity check
See 'config.log' for more details" "$LINENO" 5; } ;;
esac
@@ -11034,7 +10887,7 @@
FUZZING_LIB="-fsanitize=fuzzer"
FUZZING_CC=$CC
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether the C compiler accepts -fsanitize=fuzzer-no-link" >&5
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking whether the C compiler accepts -fsanitize=fuzzer-no-link" >&5
printf %s "checking whether the C compiler accepts -fsanitize=fuzzer-no-link... " >&6; }
if test ${ax_cv_check_cflags___fsanitize_fuzzer_no_link+y}
then :
@@ -11065,8 +10918,8 @@
CFLAGS=$ax_check_save_flags ;;
esac
fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ax_cv_check_cflags___fsanitize_fuzzer_no_link" >&5
-printf "%s\n" "$ax_cv_check_cflags___fsanitize_fuzzer_no_link" >&6; }
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $ax_cv_check_cflags___fsanitize_fuzzer_no_link" >&5
+printf '%s\n' "$ax_cv_check_cflags___fsanitize_fuzzer_no_link" >&6; }
if test "x$ax_cv_check_cflags___fsanitize_fuzzer_no_link" = xyes
then :
@@ -11674,7 +11527,7 @@
php_enable_litespeed=no
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for LiteSpeed support" >&5
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for LiteSpeed support" >&5
printf %s "checking for LiteSpeed support... " >&6; }
# Check whether --enable-litespeed was given.
if test ${enable_litespeed+y}
@@ -11711,8 +11564,8 @@
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ext_output" >&5
-printf "%s\n" "$ext_output" >&6; }
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $ext_output" >&5
+printf '%s\n' "$ext_output" >&6; }
@@ -11849,7 +11702,7 @@
php_enable_phpdbg=yes
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for phpdbg support" >&5
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for phpdbg support" >&5
printf %s "checking for phpdbg support... " >&6; }
# Check whether --enable-phpdbg was given.
if test ${enable_phpdbg+y}
@@ -11886,8 +11739,8 @@
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ext_output" >&5
-printf "%s\n" "$ext_output" >&6; }
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $ext_output" >&5
+printf '%s\n' "$ext_output" >&6; }
@@ -11895,7 +11748,7 @@
php_enable_phpdbg_debug=no
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for phpdbg debug build" >&5
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for phpdbg debug build" >&5
printf %s "checking for phpdbg debug build... " >&6; }
# Check whether --enable-phpdbg-debug was given.
if test ${enable_phpdbg_debug+y}
@@ -11911,8 +11764,8 @@
ext_output=$PHP_PHPDBG_DEBUG
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ext_output" >&5
-printf "%s\n" "$ext_output" >&6; }
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $ext_output" >&5
+printf '%s\n' "$ext_output" >&6; }
@@ -11920,7 +11773,7 @@
php_enable_phpdbg_readline=no
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for phpdbg readline support" >&5
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for phpdbg readline support" >&5
printf %s "checking for phpdbg readline support... " >&6; }
# Check whether --enable-phpdbg-readline was given.
if test ${enable_phpdbg_readline+y}
@@ -11936,14 +11789,14 @@
ext_output=$PHP_PHPDBG_READLINE
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ext_output" >&5
-printf "%s\n" "$ext_output" >&6; }
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $ext_output" >&5
+printf '%s\n' "$ext_output" >&6; }
if test "$PHP_PHPDBG" != "no"; then
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether termios.h defines TIOCGWINSZ" >&5
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking whether termios.h defines TIOCGWINSZ" >&5
printf %s "checking whether termios.h defines TIOCGWINSZ... " >&6; }
if test ${ac_cv_sys_tiocgwinsz_in_termios_h+y}
then :
@@ -11966,11 +11819,11 @@
rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext ;;
esac
fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sys_tiocgwinsz_in_termios_h" >&5
-printf "%s\n" "$ac_cv_sys_tiocgwinsz_in_termios_h" >&6; }
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sys_tiocgwinsz_in_termios_h" >&5
+printf '%s\n' "$ac_cv_sys_tiocgwinsz_in_termios_h" >&6; }
if test $ac_cv_sys_tiocgwinsz_in_termios_h != yes; then
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether sys/ioctl.h defines TIOCGWINSZ" >&5
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking whether sys/ioctl.h defines TIOCGWINSZ" >&5
printf %s "checking whether sys/ioctl.h defines TIOCGWINSZ... " >&6; }
if test ${ac_cv_sys_tiocgwinsz_in_sys_ioctl_h+y}
then :
@@ -11993,12 +11846,12 @@
rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext ;;
esac
fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sys_tiocgwinsz_in_sys_ioctl_h" >&5
-printf "%s\n" "$ac_cv_sys_tiocgwinsz_in_sys_ioctl_h" >&6; }
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sys_tiocgwinsz_in_sys_ioctl_h" >&5
+printf '%s\n' "$ac_cv_sys_tiocgwinsz_in_sys_ioctl_h" >&6; }
if test $ac_cv_sys_tiocgwinsz_in_sys_ioctl_h = yes; then
-printf "%s\n" "#define GWINSZ_IN_SYS_IOCTL 1" >>confdefs.h
+printf '%s\n' "#define GWINSZ_IN_SYS_IOCTL 1" >>confdefs.h
fi
fi
@@ -12013,29 +11866,29 @@
esac
fi
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for phpdbg and readline integration" >&5
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for phpdbg and readline integration" >&5
printf %s "checking for phpdbg and readline integration... " >&6; }
if test "$PHP_PHPDBG_READLINE" = "yes"; then
if test "$PHP_READLINE" != "no" || test "$PHP_LIBEDIT" != "no"; then
-printf "%s\n" "#define HAVE_PHPDBG_READLINE 1" >>confdefs.h
+printf '%s\n' "#define HAVE_PHPDBG_READLINE 1" >>confdefs.h
PHPDBG_EXTRA_LIBS="$PHP_READLINE_LIBS"
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: ok" >&5
-printf "%s\n" "ok" >&6; }
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: ok" >&5
+printf '%s\n' "ok" >&6; }
else
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: readline is not available" >&5
-printf "%s\n" "readline is not available" >&6; }
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: readline is not available" >&5
+printf '%s\n' "readline is not available" >&6; }
fi
else
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: disabled" >&5
-printf "%s\n" "disabled" >&6; }
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: disabled" >&5
+printf '%s\n' "disabled" >&6; }
fi
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $CC options needed to detect all undeclared functions" >&5
-printf %s "checking for $CC options needed to detect all undeclared functions... " >&6; }
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for $CC options to detect undeclared functions" >&5
+printf %s "checking for $CC options to detect undeclared functions... " >&6; }
if test ${ac_cv_c_undeclared_builtin_options+y}
then :
printf %s "(cached) " >&6
@@ -12103,12 +11956,12 @@
;;
esac
fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_undeclared_builtin_options" >&5
-printf "%s\n" "$ac_cv_c_undeclared_builtin_options" >&6; }
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_undeclared_builtin_options" >&5
+printf '%s\n' "$ac_cv_c_undeclared_builtin_options" >&6; }
case $ac_cv_c_undeclared_builtin_options in #(
'cannot detect') :
- { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in '$ac_pwd':" >&5
-printf "%s\n" "$as_me: error: in '$ac_pwd':" >&2;}
+ { { printf '%s\n' "$as_me:${as_lineno-$LINENO}: error: in '$ac_pwd':" >&5
+printf '%s\n' "$as_me: error: in '$ac_pwd':" >&2;}
as_fn_error $? "cannot make $CC report undeclared builtins
See 'config.log' for more details" "$LINENO" 5; } ;; #(
'none needed') :
@@ -12117,33 +11970,76 @@
ac_c_undeclared_builtin_options=$ac_cv_c_undeclared_builtin_options ;;
esac
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for $CC options to ignore future-version functions" >&5
+printf %s "checking for $CC options to ignore future-version functions... " >&6; }
+if test ${ac_cv_c_future_darwin_options+y}
+then :
+ printf %s "(cached) " >&6
+else case e in #(
+ e) ac_compile_saved="$ac_compile"
+ ac_compile="$ac_compile -Werror=unguarded-availability-new"
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#if ! (defined __APPLE__ && defined __MACH__)
+ #error "-Werror=unguarded-availability-new not needed here"
+ #endif
+
+int
+main (void)
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"
+then :
+ ac_cv_c_future_darwin_options='-Werror=unguarded-availability-new'
+else case e in #(
+ e) ac_cv_c_future_darwin_options='none needed' ;;
+esac
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
+ ac_compile="$ac_compile_saved"
+ ;;
+esac
+fi
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_future_darwin_options" >&5
+printf '%s\n' "$ac_cv_c_future_darwin_options" >&6; }
+ case $ac_cv_c_future_darwin_options in #(
+ 'none needed') :
+ ac_c_future_darwin_options='' ;; #(
+ *) :
+ ac_c_future_darwin_options=$ac_cv_c_future_darwin_options ;;
+esac
+
ac_fn_check_decl "$LINENO" "UFFDIO_WRITEPROTECT_MODE_WP" "ac_cv_have_decl_UFFDIO_WRITEPROTECT_MODE_WP" "#include
-" "$ac_c_undeclared_builtin_options" "CFLAGS"
+" "$ac_c_undeclared_builtin_options$ac_c_future_darwin_options" "CFLAGS"
if test "x$ac_cv_have_decl_UFFDIO_WRITEPROTECT_MODE_WP" = xyes
then :
if test "x$enable_zts" = xyes
then :
- printf "%s\n" "#define HAVE_USERFAULTFD_WRITEFAULT 1" >>confdefs.h
+ printf '%s\n' "#define HAVE_USERFAULTFD_WRITEFAULT 1" >>confdefs.h
else case e in #(
- e) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking working pthreads" >&5
+ e) { printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking working pthreads" >&5
printf %s "checking working pthreads... " >&6; }
if test "x$pthreads_working" = xyes
then :
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_pthreads_cflags -l$ac_cv_pthreads_lib" >&5
-printf "%s\n" "$ac_cv_pthreads_cflags -l$ac_cv_pthreads_lib" >&6; }
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $ac_cv_pthreads_cflags -l$ac_cv_pthreads_lib" >&5
+printf '%s\n' "$ac_cv_pthreads_cflags -l$ac_cv_pthreads_lib" >&6; }
as_fn_append PHP_PHPDBG_CFLAGS " $ac_cv_pthreads_cflags"
as_fn_append PHPDBG_EXTRA_LIBS " -l$ac_cv_pthreads_lib"
- printf "%s\n" "#define HAVE_USERFAULTFD_WRITEFAULT 1" >>confdefs.h
+ printf '%s\n' "#define HAVE_USERFAULTFD_WRITEFAULT 1" >>confdefs.h
else case e in #(
e)
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
-printf "%s\n" "no" >&6; }
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: pthreads not available" >&5
-printf "%s\n" "$as_me: WARNING: pthreads not available" >&2;}
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf '%s\n' "no" >&6; }
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: WARNING: pthreads not available" >&5
+printf '%s\n' "$as_me: WARNING: pthreads not available" >&2;}
;;
esac
fi
@@ -12304,7 +12200,7 @@
php_enable_cgi=yes
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for CGI build" >&5
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for CGI build" >&5
printf %s "checking for CGI build... " >&6; }
# Check whether --enable-cgi was given.
if test ${enable_cgi+y}
@@ -12320,8 +12216,8 @@
ext_output=$PHP_CGI
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ext_output" >&5
-printf "%s\n" "$ext_output" >&6; }
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $ext_output" >&5
+printf '%s\n' "$ext_output" >&6; }
@@ -12332,13 +12228,13 @@
if test "x$ac_cv_member_struct_sockaddr_un_sun_len" = xyes
then :
-printf "%s\n" "#define HAVE_STRUCT_SOCKADDR_UN_SUN_LEN 1" >>confdefs.h
+printf '%s\n' "#define HAVE_STRUCT_SOCKADDR_UN_SUN_LEN 1" >>confdefs.h
fi
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether cross-process locking is required by accept()" >&5
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking whether cross-process locking is required by accept()" >&5
printf %s "checking whether cross-process locking is required by accept()... " >&6; }
if test ${php_cv_have_cross_process_locking+y}
then :
@@ -12352,12 +12248,12 @@
esac ;;
esac
fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $php_cv_have_cross_process_locking" >&5
-printf "%s\n" "$php_cv_have_cross_process_locking" >&6; }
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $php_cv_have_cross_process_locking" >&5
+printf '%s\n' "$php_cv_have_cross_process_locking" >&6; }
if test "x$php_cv_have_cross_process_locking" = xyes
then :
-printf "%s\n" "#define USE_LOCKING 1" >>confdefs.h
+printf '%s\n' "#define USE_LOCKING 1" >>confdefs.h
fi
@@ -12508,20 +12404,20 @@
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for chosen SAPI module" >&5
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for chosen SAPI module" >&5
printf %s "checking for chosen SAPI module... " >&6; }
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $PHP_SAPI" >&5
-printf "%s\n" "$PHP_SAPI" >&6; }
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $PHP_SAPI" >&5
+printf '%s\n' "$PHP_SAPI" >&6; }
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for executable SAPI binaries" >&5
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for executable SAPI binaries" >&5
printf %s "checking for executable SAPI binaries... " >&6; }
if ${PHP_BINARIES:+false} :
then :
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: none" >&5
-printf "%s\n" "none" >&6; }
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: none" >&5
+printf '%s\n' "none" >&6; }
else case e in #(
- e) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $PHP_BINARIES" >&5
-printf "%s\n" "$PHP_BINARIES" >&6; } ;;
+ e) { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $PHP_BINARIES" >&5
+printf '%s\n' "$PHP_BINARIES" >&6; } ;;
esac
fi
@@ -12565,16 +12461,16 @@
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: " >&5
-printf "%s\n" "" >&6; }
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: ${T_MD}Running system checks${T_ME}" >&5
-printf "%s\n" "${T_MD}Running system checks${T_ME}" >&6; }
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: " >&5
+printf '%s\n' "" >&6; }
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: ${T_MD}Running system checks${T_ME}" >&5
+printf '%s\n' "${T_MD}Running system checks${T_ME}" >&6; }
PHP_ALT_PATH=/usr/bin:/usr/sbin:/usr/etc:/etc:/usr/ucblib:/usr/lib
# Extract the first word of "sendmail", so it can be a program name with args.
set dummy sendmail; ac_word=$2
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
printf %s "checking for $ac_word... " >&6; }
if test ${ac_cv_path_PROG_SENDMAIL+y}
then :
@@ -12598,7 +12494,7 @@
for ac_exec_ext in '' $ac_executable_extensions; do
if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
ac_cv_path_PROG_SENDMAIL="$as_dir$ac_word$ac_exec_ext"
- printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
+ printf '%s\n' "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
break 2
fi
done
@@ -12611,22 +12507,22 @@
fi
PROG_SENDMAIL=$ac_cv_path_PROG_SENDMAIL
if test -n "$PROG_SENDMAIL"; then
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $PROG_SENDMAIL" >&5
-printf "%s\n" "$PROG_SENDMAIL" >&6; }
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $PROG_SENDMAIL" >&5
+printf '%s\n' "$PROG_SENDMAIL" >&6; }
else
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
-printf "%s\n" "no" >&6; }
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf '%s\n' "no" >&6; }
fi
if ${PROG_SENDMAIL:+false} :
then :
PROG_SENDMAIL=/usr/sbin/sendmail
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: default sendmail_path INI directive set to $PROG_SENDMAIL" >&5
-printf "%s\n" "$as_me: default sendmail_path INI directive set to $PROG_SENDMAIL" >&6;}
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: default sendmail_path INI directive set to $PROG_SENDMAIL" >&5
+printf '%s\n' "$as_me: default sendmail_path INI directive set to $PROG_SENDMAIL" >&6;}
fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether system uses EBCDIC" >&5
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking whether system uses EBCDIC" >&5
printf %s "checking whether system uses EBCDIC... " >&6; }
if test ${ac_cv_ebcdic+y}
then :
@@ -12658,18 +12554,18 @@
;;
esac
fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_ebcdic" >&5
-printf "%s\n" "$ac_cv_ebcdic" >&6; }
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $ac_cv_ebcdic" >&5
+printf '%s\n' "$ac_cv_ebcdic" >&6; }
if test "x$ac_cv_ebcdic" = xyes
then :
- { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in '$ac_pwd':" >&5
-printf "%s\n" "$as_me: error: in '$ac_pwd':" >&2;}
+ { { printf '%s\n' "$as_me:${as_lineno-$LINENO}: error: in '$ac_pwd':" >&5
+printf '%s\n' "$as_me: error: in '$ac_pwd':" >&2;}
as_fn_error $? "PHP does not support EBCDIC targets.
See 'config.log' for more details" "$LINENO" 5; }
fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether byte ordering is bigendian" >&5
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking whether byte ordering is bigendian" >&5
printf %s "checking whether byte ordering is bigendian... " >&6; }
if test ${ac_cv_c_bigendian_php+y}
then :
@@ -12709,17 +12605,17 @@
;;
esac
fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_bigendian_php" >&5
-printf "%s\n" "$ac_cv_c_bigendian_php" >&6; }
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_bigendian_php" >&5
+printf '%s\n' "$ac_cv_c_bigendian_php" >&6; }
if test "x$ac_cv_c_bigendian_php" = xyes
then :
-printf "%s\n" "#define WORDS_BIGENDIAN /**/" >>confdefs.h
+printf '%s\n' "#define WORDS_BIGENDIAN /**/" >>confdefs.h
fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether writing to stdout works" >&5
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking whether writing to stdout works" >&5
printf %s "checking whether writing to stdout works... " >&6; }
if test ${php_cv_have_write_stdout+y}
then :
@@ -12766,12 +12662,12 @@
;;
esac
fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $php_cv_have_write_stdout" >&5
-printf "%s\n" "$php_cv_have_write_stdout" >&6; }
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $php_cv_have_write_stdout" >&5
+printf '%s\n' "$php_cv_have_write_stdout" >&6; }
if test "x$php_cv_have_write_stdout" = xyes
then :
-printf "%s\n" "#define PHP_WRITE_STDOUT 1" >>confdefs.h
+printf '%s\n' "#define PHP_WRITE_STDOUT 1" >>confdefs.h
fi
@@ -12819,7 +12715,7 @@
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for library containing socket" >&5
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for library containing socket" >&5
printf %s "checking for library containing socket... " >&6; }
if test ${ac_cv_search_socket+y}
then :
@@ -12877,8 +12773,8 @@
LIBS=$ac_func_search_save_LIBS ;;
esac
fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_socket" >&5
-printf "%s\n" "$ac_cv_search_socket" >&6; }
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_socket" >&5
+printf '%s\n' "$ac_cv_search_socket" >&6; }
ac_res=$ac_cv_search_socket
if test "$ac_res" != no
then :
@@ -12893,10 +12789,10 @@
ac_fn_c_check_func "$LINENO" "socketpair" "ac_cv_func_socketpair"
if test "x$ac_cv_func_socketpair" = xyes
then :
- printf "%s\n" "#define HAVE_SOCKETPAIR 1" >>confdefs.h
+ printf '%s\n' "#define HAVE_SOCKETPAIR 1" >>confdefs.h
else case e in #(
- e) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for library containing socketpair" >&5
+ e) { printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for library containing socketpair" >&5
printf %s "checking for library containing socketpair... " >&6; }
if test ${ac_cv_search_socketpair+y}
then :
@@ -12954,13 +12850,13 @@
LIBS=$ac_func_search_save_LIBS ;;
esac
fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_socketpair" >&5
-printf "%s\n" "$ac_cv_search_socketpair" >&6; }
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_socketpair" >&5
+printf '%s\n' "$ac_cv_search_socketpair" >&6; }
ac_res=$ac_cv_search_socketpair
if test "$ac_res" != no
then :
test "$ac_res" = "none required" || LIBS="$ac_res $LIBS"
- printf "%s\n" "#define HAVE_SOCKETPAIR 1" >>confdefs.h
+ printf '%s\n' "#define HAVE_SOCKETPAIR 1" >>confdefs.h
fi
;;
@@ -12969,7 +12865,7 @@
done
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for library containing gethostbyaddr" >&5
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for library containing gethostbyaddr" >&5
printf %s "checking for library containing gethostbyaddr... " >&6; }
if test ${ac_cv_search_gethostbyaddr+y}
then :
@@ -13027,8 +12923,8 @@
LIBS=$ac_func_search_save_LIBS ;;
esac
fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_gethostbyaddr" >&5
-printf "%s\n" "$ac_cv_search_gethostbyaddr" >&6; }
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_gethostbyaddr" >&5
+printf '%s\n' "$ac_cv_search_gethostbyaddr" >&6; }
ac_res=$ac_cv_search_gethostbyaddr
if test "$ac_res" != no
then :
@@ -13037,7 +12933,7 @@
fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for library containing dlopen" >&5
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for library containing dlopen" >&5
printf %s "checking for library containing dlopen... " >&6; }
if test ${ac_cv_search_dlopen+y}
then :
@@ -13095,19 +12991,19 @@
LIBS=$ac_func_search_save_LIBS ;;
esac
fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_dlopen" >&5
-printf "%s\n" "$ac_cv_search_dlopen" >&6; }
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_dlopen" >&5
+printf '%s\n' "$ac_cv_search_dlopen" >&6; }
ac_res=$ac_cv_search_dlopen
if test "$ac_res" != no
then :
test "$ac_res" = "none required" || LIBS="$ac_res $LIBS"
-printf "%s\n" "#define HAVE_LIBDL 1" >>confdefs.h
+printf '%s\n' "#define HAVE_LIBDL 1" >>confdefs.h
fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for library containing sin" >&5
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for library containing sin" >&5
printf %s "checking for library containing sin... " >&6; }
if test ${ac_cv_search_sin+y}
then :
@@ -13165,8 +13061,8 @@
LIBS=$ac_func_search_save_LIBS ;;
esac
fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_sin" >&5
-printf "%s\n" "$ac_cv_search_sin" >&6; }
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_sin" >&5
+printf '%s\n' "$ac_cv_search_sin" >&6; }
ac_res=$ac_cv_search_sin
if test "$ac_res" != no
then :
@@ -13203,7 +13099,7 @@
case $found in
yes)
-printf "%s\n" "#define HAVE___ATOMIC_EXCHANGE_1 1" >>confdefs.h
+printf '%s\n' "#define HAVE___ATOMIC_EXCHANGE_1 1" >>confdefs.h
ac_cv_func___atomic_exchange_1=yes
;;
@@ -13213,7 +13109,7 @@
unset ac_cv_lib_atomic___atomic_exchange_1
unset ac_cv_lib_atomic_____atomic_exchange_1
unset found
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for __atomic_exchange_1 in -latomic" >&5
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for __atomic_exchange_1 in -latomic" >&5
printf %s "checking for __atomic_exchange_1 in -latomic... " >&6; }
if test ${ac_cv_lib_atomic___atomic_exchange_1+y}
then :
@@ -13254,14 +13150,14 @@
LIBS=$ac_check_lib_save_LIBS ;;
esac
fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_atomic___atomic_exchange_1" >&5
-printf "%s\n" "$ac_cv_lib_atomic___atomic_exchange_1" >&6; }
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_atomic___atomic_exchange_1" >&5
+printf '%s\n' "$ac_cv_lib_atomic___atomic_exchange_1" >&6; }
if test "x$ac_cv_lib_atomic___atomic_exchange_1" = xyes
then :
found=yes
else case e in #(
e)
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for ____atomic_exchange_1 in -latomic" >&5
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for ____atomic_exchange_1 in -latomic" >&5
printf %s "checking for ____atomic_exchange_1 in -latomic... " >&6; }
if test ${ac_cv_lib_atomic_____atomic_exchange_1+y}
then :
@@ -13302,8 +13198,8 @@
LIBS=$ac_check_lib_save_LIBS ;;
esac
fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_atomic_____atomic_exchange_1" >&5
-printf "%s\n" "$ac_cv_lib_atomic_____atomic_exchange_1" >&6; }
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_atomic_____atomic_exchange_1" >&5
+printf '%s\n' "$ac_cv_lib_atomic_____atomic_exchange_1" >&6; }
if test "x$ac_cv_lib_atomic_____atomic_exchange_1" = xyes
then :
found=yes
@@ -13364,10 +13260,10 @@
-printf "%s\n" "#define HAVE___ATOMIC_EXCHANGE_1 1" >>confdefs.h
+printf '%s\n' "#define HAVE___ATOMIC_EXCHANGE_1 1" >>confdefs.h
-printf "%s\n" "#define HAVE_LIBATOMIC 1" >>confdefs.h
+printf '%s\n' "#define HAVE_LIBATOMIC 1" >>confdefs.h
ac_cv_func___atomic_exchange_1=yes
else
@@ -13383,7 +13279,7 @@
;;
esac
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for library containing Pgrab" >&5
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for library containing Pgrab" >&5
printf %s "checking for library containing Pgrab... " >&6; }
if test ${ac_cv_search_Pgrab+y}
then :
@@ -13441,8 +13337,8 @@
LIBS=$ac_func_search_save_LIBS ;;
esac
fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_Pgrab" >&5
-printf "%s\n" "$ac_cv_search_Pgrab" >&6; }
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_Pgrab" >&5
+printf '%s\n' "$ac_cv_search_Pgrab" >&6; }
ac_res=$ac_cv_search_Pgrab
if test "$ac_res" != no
then :
@@ -13451,7 +13347,7 @@
fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for library containing setsockopt" >&5
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for library containing setsockopt" >&5
printf %s "checking for library containing setsockopt... " >&6; }
if test ${ac_cv_search_setsockopt+y}
then :
@@ -13509,8 +13405,8 @@
LIBS=$ac_func_search_save_LIBS ;;
esac
fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_setsockopt" >&5
-printf "%s\n" "$ac_cv_search_setsockopt" >&6; }
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_setsockopt" >&5
+printf '%s\n' "$ac_cv_search_setsockopt" >&6; }
ac_res=$ac_cv_search_setsockopt
if test "$ac_res" != no
then :
@@ -13525,10 +13421,10 @@
ac_fn_c_check_func "$LINENO" "openpty" "ac_cv_func_openpty"
if test "x$ac_cv_func_openpty" = xyes
then :
- printf "%s\n" "#define HAVE_OPENPTY 1" >>confdefs.h
+ printf '%s\n' "#define HAVE_OPENPTY 1" >>confdefs.h
else case e in #(
- e) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for library containing openpty" >&5
+ e) { printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for library containing openpty" >&5
printf %s "checking for library containing openpty... " >&6; }
if test ${ac_cv_search_openpty+y}
then :
@@ -13586,13 +13482,13 @@
LIBS=$ac_func_search_save_LIBS ;;
esac
fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_openpty" >&5
-printf "%s\n" "$ac_cv_search_openpty" >&6; }
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_openpty" >&5
+printf '%s\n' "$ac_cv_search_openpty" >&6; }
ac_res=$ac_cv_search_openpty
if test "$ac_res" != no
then :
test "$ac_res" = "none required" || LIBS="$ac_res $LIBS"
- printf "%s\n" "#define HAVE_OPENPTY 1" >>confdefs.h
+ printf '%s\n' "#define HAVE_OPENPTY 1" >>confdefs.h
fi
;;
@@ -13621,7 +13517,7 @@
"
if test "x$ac_cv_header_dirent_h" = xyes
then :
- printf "%s\n" "#define HAVE_DIRENT_H 1" >>confdefs.h
+ printf '%s\n' "#define HAVE_DIRENT_H 1" >>confdefs.h
fi
ac_fn_c_check_header_compile "$LINENO" "sys/param.h" "ac_cv_header_sys_param_h" "#ifdef HAVE_SYS_PARAM_H
@@ -13643,7 +13539,7 @@
"
if test "x$ac_cv_header_sys_param_h" = xyes
then :
- printf "%s\n" "#define HAVE_SYS_PARAM_H 1" >>confdefs.h
+ printf '%s\n' "#define HAVE_SYS_PARAM_H 1" >>confdefs.h
fi
ac_fn_c_check_header_compile "$LINENO" "sys/types.h" "ac_cv_header_sys_types_h" "#ifdef HAVE_SYS_PARAM_H
@@ -13665,7 +13561,7 @@
"
if test "x$ac_cv_header_sys_types_h" = xyes
then :
- printf "%s\n" "#define HAVE_SYS_TYPES_H 1" >>confdefs.h
+ printf '%s\n' "#define HAVE_SYS_TYPES_H 1" >>confdefs.h
fi
ac_fn_c_check_header_compile "$LINENO" "sys/time.h" "ac_cv_header_sys_time_h" "#ifdef HAVE_SYS_PARAM_H
@@ -13687,7 +13583,7 @@
"
if test "x$ac_cv_header_sys_time_h" = xyes
then :
- printf "%s\n" "#define HAVE_SYS_TIME_H 1" >>confdefs.h
+ printf '%s\n' "#define HAVE_SYS_TIME_H 1" >>confdefs.h
fi
ac_fn_c_check_header_compile "$LINENO" "netinet/in.h" "ac_cv_header_netinet_in_h" "#ifdef HAVE_SYS_PARAM_H
@@ -13709,7 +13605,7 @@
"
if test "x$ac_cv_header_netinet_in_h" = xyes
then :
- printf "%s\n" "#define HAVE_NETINET_IN_H 1" >>confdefs.h
+ printf '%s\n' "#define HAVE_NETINET_IN_H 1" >>confdefs.h
fi
ac_fn_c_check_header_compile "$LINENO" "alloca.h" "ac_cv_header_alloca_h" "#ifdef HAVE_SYS_PARAM_H
@@ -13731,7 +13627,7 @@
"
if test "x$ac_cv_header_alloca_h" = xyes
then :
- printf "%s\n" "#define HAVE_ALLOCA_H 1" >>confdefs.h
+ printf '%s\n' "#define HAVE_ALLOCA_H 1" >>confdefs.h
fi
ac_fn_c_check_header_compile "$LINENO" "arpa/inet.h" "ac_cv_header_arpa_inet_h" "#ifdef HAVE_SYS_PARAM_H
@@ -13753,7 +13649,7 @@
"
if test "x$ac_cv_header_arpa_inet_h" = xyes
then :
- printf "%s\n" "#define HAVE_ARPA_INET_H 1" >>confdefs.h
+ printf '%s\n' "#define HAVE_ARPA_INET_H 1" >>confdefs.h
fi
ac_fn_c_check_header_compile "$LINENO" "arpa/nameser.h" "ac_cv_header_arpa_nameser_h" "#ifdef HAVE_SYS_PARAM_H
@@ -13775,7 +13671,7 @@
"
if test "x$ac_cv_header_arpa_nameser_h" = xyes
then :
- printf "%s\n" "#define HAVE_ARPA_NAMESER_H 1" >>confdefs.h
+ printf '%s\n' "#define HAVE_ARPA_NAMESER_H 1" >>confdefs.h
fi
ac_fn_c_check_header_compile "$LINENO" "dns.h" "ac_cv_header_dns_h" "#ifdef HAVE_SYS_PARAM_H
@@ -13797,7 +13693,7 @@
"
if test "x$ac_cv_header_dns_h" = xyes
then :
- printf "%s\n" "#define HAVE_DNS_H 1" >>confdefs.h
+ printf '%s\n' "#define HAVE_DNS_H 1" >>confdefs.h
fi
ac_fn_c_check_header_compile "$LINENO" "fcntl.h" "ac_cv_header_fcntl_h" "#ifdef HAVE_SYS_PARAM_H
@@ -13819,7 +13715,7 @@
"
if test "x$ac_cv_header_fcntl_h" = xyes
then :
- printf "%s\n" "#define HAVE_FCNTL_H 1" >>confdefs.h
+ printf '%s\n' "#define HAVE_FCNTL_H 1" >>confdefs.h
fi
ac_fn_c_check_header_compile "$LINENO" "grp.h" "ac_cv_header_grp_h" "#ifdef HAVE_SYS_PARAM_H
@@ -13841,7 +13737,7 @@
"
if test "x$ac_cv_header_grp_h" = xyes
then :
- printf "%s\n" "#define HAVE_GRP_H 1" >>confdefs.h
+ printf '%s\n' "#define HAVE_GRP_H 1" >>confdefs.h
fi
ac_fn_c_check_header_compile "$LINENO" "ieeefp.h" "ac_cv_header_ieeefp_h" "#ifdef HAVE_SYS_PARAM_H
@@ -13863,7 +13759,7 @@
"
if test "x$ac_cv_header_ieeefp_h" = xyes
then :
- printf "%s\n" "#define HAVE_IEEEFP_H 1" >>confdefs.h
+ printf '%s\n' "#define HAVE_IEEEFP_H 1" >>confdefs.h
fi
ac_fn_c_check_header_compile "$LINENO" "langinfo.h" "ac_cv_header_langinfo_h" "#ifdef HAVE_SYS_PARAM_H
@@ -13885,7 +13781,7 @@
"
if test "x$ac_cv_header_langinfo_h" = xyes
then :
- printf "%s\n" "#define HAVE_LANGINFO_H 1" >>confdefs.h
+ printf '%s\n' "#define HAVE_LANGINFO_H 1" >>confdefs.h
fi
ac_fn_c_check_header_compile "$LINENO" "linux/sock_diag.h" "ac_cv_header_linux_sock_diag_h" "#ifdef HAVE_SYS_PARAM_H
@@ -13907,7 +13803,7 @@
"
if test "x$ac_cv_header_linux_sock_diag_h" = xyes
then :
- printf "%s\n" "#define HAVE_LINUX_SOCK_DIAG_H 1" >>confdefs.h
+ printf '%s\n' "#define HAVE_LINUX_SOCK_DIAG_H 1" >>confdefs.h
fi
ac_fn_c_check_header_compile "$LINENO" "poll.h" "ac_cv_header_poll_h" "#ifdef HAVE_SYS_PARAM_H
@@ -13929,7 +13825,7 @@
"
if test "x$ac_cv_header_poll_h" = xyes
then :
- printf "%s\n" "#define HAVE_POLL_H 1" >>confdefs.h
+ printf '%s\n' "#define HAVE_POLL_H 1" >>confdefs.h
fi
ac_fn_c_check_header_compile "$LINENO" "pty.h" "ac_cv_header_pty_h" "#ifdef HAVE_SYS_PARAM_H
@@ -13951,7 +13847,7 @@
"
if test "x$ac_cv_header_pty_h" = xyes
then :
- printf "%s\n" "#define HAVE_PTY_H 1" >>confdefs.h
+ printf '%s\n' "#define HAVE_PTY_H 1" >>confdefs.h
fi
ac_fn_c_check_header_compile "$LINENO" "pwd.h" "ac_cv_header_pwd_h" "#ifdef HAVE_SYS_PARAM_H
@@ -13973,7 +13869,7 @@
"
if test "x$ac_cv_header_pwd_h" = xyes
then :
- printf "%s\n" "#define HAVE_PWD_H 1" >>confdefs.h
+ printf '%s\n' "#define HAVE_PWD_H 1" >>confdefs.h
fi
ac_fn_c_check_header_compile "$LINENO" "resolv.h" "ac_cv_header_resolv_h" "#ifdef HAVE_SYS_PARAM_H
@@ -13995,7 +13891,7 @@
"
if test "x$ac_cv_header_resolv_h" = xyes
then :
- printf "%s\n" "#define HAVE_RESOLV_H 1" >>confdefs.h
+ printf '%s\n' "#define HAVE_RESOLV_H 1" >>confdefs.h
fi
ac_fn_c_check_header_compile "$LINENO" "strings.h" "ac_cv_header_strings_h" "#ifdef HAVE_SYS_PARAM_H
@@ -14017,7 +13913,7 @@
"
if test "x$ac_cv_header_strings_h" = xyes
then :
- printf "%s\n" "#define HAVE_STRINGS_H 1" >>confdefs.h
+ printf '%s\n' "#define HAVE_STRINGS_H 1" >>confdefs.h
fi
ac_fn_c_check_header_compile "$LINENO" "syslog.h" "ac_cv_header_syslog_h" "#ifdef HAVE_SYS_PARAM_H
@@ -14039,7 +13935,7 @@
"
if test "x$ac_cv_header_syslog_h" = xyes
then :
- printf "%s\n" "#define HAVE_SYSLOG_H 1" >>confdefs.h
+ printf '%s\n' "#define HAVE_SYSLOG_H 1" >>confdefs.h
fi
ac_fn_c_check_header_compile "$LINENO" "sysexits.h" "ac_cv_header_sysexits_h" "#ifdef HAVE_SYS_PARAM_H
@@ -14061,7 +13957,7 @@
"
if test "x$ac_cv_header_sysexits_h" = xyes
then :
- printf "%s\n" "#define HAVE_SYSEXITS_H 1" >>confdefs.h
+ printf '%s\n' "#define HAVE_SYSEXITS_H 1" >>confdefs.h
fi
ac_fn_c_check_header_compile "$LINENO" "sys/ioctl.h" "ac_cv_header_sys_ioctl_h" "#ifdef HAVE_SYS_PARAM_H
@@ -14083,7 +13979,7 @@
"
if test "x$ac_cv_header_sys_ioctl_h" = xyes
then :
- printf "%s\n" "#define HAVE_SYS_IOCTL_H 1" >>confdefs.h
+ printf '%s\n' "#define HAVE_SYS_IOCTL_H 1" >>confdefs.h
fi
ac_fn_c_check_header_compile "$LINENO" "sys/file.h" "ac_cv_header_sys_file_h" "#ifdef HAVE_SYS_PARAM_H
@@ -14105,7 +14001,7 @@
"
if test "x$ac_cv_header_sys_file_h" = xyes
then :
- printf "%s\n" "#define HAVE_SYS_FILE_H 1" >>confdefs.h
+ printf '%s\n' "#define HAVE_SYS_FILE_H 1" >>confdefs.h
fi
ac_fn_c_check_header_compile "$LINENO" "sys/mman.h" "ac_cv_header_sys_mman_h" "#ifdef HAVE_SYS_PARAM_H
@@ -14127,7 +14023,7 @@
"
if test "x$ac_cv_header_sys_mman_h" = xyes
then :
- printf "%s\n" "#define HAVE_SYS_MMAN_H 1" >>confdefs.h
+ printf '%s\n' "#define HAVE_SYS_MMAN_H 1" >>confdefs.h
fi
ac_fn_c_check_header_compile "$LINENO" "sys/mount.h" "ac_cv_header_sys_mount_h" "#ifdef HAVE_SYS_PARAM_H
@@ -14149,7 +14045,7 @@
"
if test "x$ac_cv_header_sys_mount_h" = xyes
then :
- printf "%s\n" "#define HAVE_SYS_MOUNT_H 1" >>confdefs.h
+ printf '%s\n' "#define HAVE_SYS_MOUNT_H 1" >>confdefs.h
fi
ac_fn_c_check_header_compile "$LINENO" "sys/poll.h" "ac_cv_header_sys_poll_h" "#ifdef HAVE_SYS_PARAM_H
@@ -14171,7 +14067,7 @@
"
if test "x$ac_cv_header_sys_poll_h" = xyes
then :
- printf "%s\n" "#define HAVE_SYS_POLL_H 1" >>confdefs.h
+ printf '%s\n' "#define HAVE_SYS_POLL_H 1" >>confdefs.h
fi
ac_fn_c_check_header_compile "$LINENO" "sys/resource.h" "ac_cv_header_sys_resource_h" "#ifdef HAVE_SYS_PARAM_H
@@ -14193,7 +14089,7 @@
"
if test "x$ac_cv_header_sys_resource_h" = xyes
then :
- printf "%s\n" "#define HAVE_SYS_RESOURCE_H 1" >>confdefs.h
+ printf '%s\n' "#define HAVE_SYS_RESOURCE_H 1" >>confdefs.h
fi
ac_fn_c_check_header_compile "$LINENO" "sys/select.h" "ac_cv_header_sys_select_h" "#ifdef HAVE_SYS_PARAM_H
@@ -14215,7 +14111,7 @@
"
if test "x$ac_cv_header_sys_select_h" = xyes
then :
- printf "%s\n" "#define HAVE_SYS_SELECT_H 1" >>confdefs.h
+ printf '%s\n' "#define HAVE_SYS_SELECT_H 1" >>confdefs.h
fi
ac_fn_c_check_header_compile "$LINENO" "sys/socket.h" "ac_cv_header_sys_socket_h" "#ifdef HAVE_SYS_PARAM_H
@@ -14237,7 +14133,7 @@
"
if test "x$ac_cv_header_sys_socket_h" = xyes
then :
- printf "%s\n" "#define HAVE_SYS_SOCKET_H 1" >>confdefs.h
+ printf '%s\n' "#define HAVE_SYS_SOCKET_H 1" >>confdefs.h
fi
ac_fn_c_check_header_compile "$LINENO" "sys/stat.h" "ac_cv_header_sys_stat_h" "#ifdef HAVE_SYS_PARAM_H
@@ -14259,7 +14155,7 @@
"
if test "x$ac_cv_header_sys_stat_h" = xyes
then :
- printf "%s\n" "#define HAVE_SYS_STAT_H 1" >>confdefs.h
+ printf '%s\n' "#define HAVE_SYS_STAT_H 1" >>confdefs.h
fi
ac_fn_c_check_header_compile "$LINENO" "sys/statfs.h" "ac_cv_header_sys_statfs_h" "#ifdef HAVE_SYS_PARAM_H
@@ -14281,7 +14177,7 @@
"
if test "x$ac_cv_header_sys_statfs_h" = xyes
then :
- printf "%s\n" "#define HAVE_SYS_STATFS_H 1" >>confdefs.h
+ printf '%s\n' "#define HAVE_SYS_STATFS_H 1" >>confdefs.h
fi
ac_fn_c_check_header_compile "$LINENO" "sys/statvfs.h" "ac_cv_header_sys_statvfs_h" "#ifdef HAVE_SYS_PARAM_H
@@ -14303,7 +14199,7 @@
"
if test "x$ac_cv_header_sys_statvfs_h" = xyes
then :
- printf "%s\n" "#define HAVE_SYS_STATVFS_H 1" >>confdefs.h
+ printf '%s\n' "#define HAVE_SYS_STATVFS_H 1" >>confdefs.h
fi
ac_fn_c_check_header_compile "$LINENO" "sys/vfs.h" "ac_cv_header_sys_vfs_h" "#ifdef HAVE_SYS_PARAM_H
@@ -14325,7 +14221,7 @@
"
if test "x$ac_cv_header_sys_vfs_h" = xyes
then :
- printf "%s\n" "#define HAVE_SYS_VFS_H 1" >>confdefs.h
+ printf '%s\n' "#define HAVE_SYS_VFS_H 1" >>confdefs.h
fi
ac_fn_c_check_header_compile "$LINENO" "sys/sysexits.h" "ac_cv_header_sys_sysexits_h" "#ifdef HAVE_SYS_PARAM_H
@@ -14347,7 +14243,7 @@
"
if test "x$ac_cv_header_sys_sysexits_h" = xyes
then :
- printf "%s\n" "#define HAVE_SYS_SYSEXITS_H 1" >>confdefs.h
+ printf '%s\n' "#define HAVE_SYS_SYSEXITS_H 1" >>confdefs.h
fi
ac_fn_c_check_header_compile "$LINENO" "sys/uio.h" "ac_cv_header_sys_uio_h" "#ifdef HAVE_SYS_PARAM_H
@@ -14369,7 +14265,7 @@
"
if test "x$ac_cv_header_sys_uio_h" = xyes
then :
- printf "%s\n" "#define HAVE_SYS_UIO_H 1" >>confdefs.h
+ printf '%s\n' "#define HAVE_SYS_UIO_H 1" >>confdefs.h
fi
ac_fn_c_check_header_compile "$LINENO" "sys/wait.h" "ac_cv_header_sys_wait_h" "#ifdef HAVE_SYS_PARAM_H
@@ -14391,7 +14287,7 @@
"
if test "x$ac_cv_header_sys_wait_h" = xyes
then :
- printf "%s\n" "#define HAVE_SYS_WAIT_H 1" >>confdefs.h
+ printf '%s\n' "#define HAVE_SYS_WAIT_H 1" >>confdefs.h
fi
ac_fn_c_check_header_compile "$LINENO" "sys/loadavg.h" "ac_cv_header_sys_loadavg_h" "#ifdef HAVE_SYS_PARAM_H
@@ -14413,7 +14309,7 @@
"
if test "x$ac_cv_header_sys_loadavg_h" = xyes
then :
- printf "%s\n" "#define HAVE_SYS_LOADAVG_H 1" >>confdefs.h
+ printf '%s\n' "#define HAVE_SYS_LOADAVG_H 1" >>confdefs.h
fi
ac_fn_c_check_header_compile "$LINENO" "unistd.h" "ac_cv_header_unistd_h" "#ifdef HAVE_SYS_PARAM_H
@@ -14435,7 +14331,7 @@
"
if test "x$ac_cv_header_unistd_h" = xyes
then :
- printf "%s\n" "#define HAVE_UNISTD_H 1" >>confdefs.h
+ printf '%s\n' "#define HAVE_UNISTD_H 1" >>confdefs.h
fi
ac_fn_c_check_header_compile "$LINENO" "unix.h" "ac_cv_header_unix_h" "#ifdef HAVE_SYS_PARAM_H
@@ -14457,7 +14353,7 @@
"
if test "x$ac_cv_header_unix_h" = xyes
then :
- printf "%s\n" "#define HAVE_UNIX_H 1" >>confdefs.h
+ printf '%s\n' "#define HAVE_UNIX_H 1" >>confdefs.h
fi
ac_fn_c_check_header_compile "$LINENO" "utime.h" "ac_cv_header_utime_h" "#ifdef HAVE_SYS_PARAM_H
@@ -14479,7 +14375,7 @@
"
if test "x$ac_cv_header_utime_h" = xyes
then :
- printf "%s\n" "#define HAVE_UTIME_H 1" >>confdefs.h
+ printf '%s\n' "#define HAVE_UTIME_H 1" >>confdefs.h
fi
ac_fn_c_check_header_compile "$LINENO" "sys/utsname.h" "ac_cv_header_sys_utsname_h" "#ifdef HAVE_SYS_PARAM_H
@@ -14501,7 +14397,7 @@
"
if test "x$ac_cv_header_sys_utsname_h" = xyes
then :
- printf "%s\n" "#define HAVE_SYS_UTSNAME_H 1" >>confdefs.h
+ printf '%s\n' "#define HAVE_SYS_UTSNAME_H 1" >>confdefs.h
fi
ac_fn_c_check_header_compile "$LINENO" "sys/ipc.h" "ac_cv_header_sys_ipc_h" "#ifdef HAVE_SYS_PARAM_H
@@ -14523,7 +14419,7 @@
"
if test "x$ac_cv_header_sys_ipc_h" = xyes
then :
- printf "%s\n" "#define HAVE_SYS_IPC_H 1" >>confdefs.h
+ printf '%s\n' "#define HAVE_SYS_IPC_H 1" >>confdefs.h
fi
ac_fn_c_check_header_compile "$LINENO" "dlfcn.h" "ac_cv_header_dlfcn_h" "#ifdef HAVE_SYS_PARAM_H
@@ -14545,7 +14441,7 @@
"
if test "x$ac_cv_header_dlfcn_h" = xyes
then :
- printf "%s\n" "#define HAVE_DLFCN_H 1" >>confdefs.h
+ printf '%s\n' "#define HAVE_DLFCN_H 1" >>confdefs.h
fi
ac_fn_c_check_header_compile "$LINENO" "tmmintrin.h" "ac_cv_header_tmmintrin_h" "#ifdef HAVE_SYS_PARAM_H
@@ -14567,7 +14463,7 @@
"
if test "x$ac_cv_header_tmmintrin_h" = xyes
then :
- printf "%s\n" "#define HAVE_TMMINTRIN_H 1" >>confdefs.h
+ printf '%s\n' "#define HAVE_TMMINTRIN_H 1" >>confdefs.h
fi
ac_fn_c_check_header_compile "$LINENO" "nmmintrin.h" "ac_cv_header_nmmintrin_h" "#ifdef HAVE_SYS_PARAM_H
@@ -14589,7 +14485,7 @@
"
if test "x$ac_cv_header_nmmintrin_h" = xyes
then :
- printf "%s\n" "#define HAVE_NMMINTRIN_H 1" >>confdefs.h
+ printf '%s\n' "#define HAVE_NMMINTRIN_H 1" >>confdefs.h
fi
ac_fn_c_check_header_compile "$LINENO" "wmmintrin.h" "ac_cv_header_wmmintrin_h" "#ifdef HAVE_SYS_PARAM_H
@@ -14611,7 +14507,7 @@
"
if test "x$ac_cv_header_wmmintrin_h" = xyes
then :
- printf "%s\n" "#define HAVE_WMMINTRIN_H 1" >>confdefs.h
+ printf '%s\n' "#define HAVE_WMMINTRIN_H 1" >>confdefs.h
fi
ac_fn_c_check_header_compile "$LINENO" "immintrin.h" "ac_cv_header_immintrin_h" "#ifdef HAVE_SYS_PARAM_H
@@ -14633,7 +14529,7 @@
"
if test "x$ac_cv_header_immintrin_h" = xyes
then :
- printf "%s\n" "#define HAVE_IMMINTRIN_H 1" >>confdefs.h
+ printf '%s\n' "#define HAVE_IMMINTRIN_H 1" >>confdefs.h
fi
@@ -14645,7 +14541,7 @@
ac_fn_c_check_func "$LINENO" "fopencookie" "ac_cv_func_fopencookie"
if test "x$ac_cv_func_fopencookie" = xyes
then :
- printf "%s\n" "#define HAVE_FOPENCOOKIE 1" >>confdefs.h
+ printf '%s\n' "#define HAVE_FOPENCOOKIE 1" >>confdefs.h
fi
@@ -14653,7 +14549,7 @@
if test "x$ac_cv_func_fopencookie" = xyes
then :
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether fopencookie seeker uses off64_t" >&5
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking whether fopencookie seeker uses off64_t" >&5
printf %s "checking whether fopencookie seeker uses off64_t... " >&6; }
if test ${php_cv_type_cookie_off64_t+y}
then :
@@ -14714,19 +14610,19 @@
;;
esac
fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $php_cv_type_cookie_off64_t" >&5
-printf "%s\n" "$php_cv_type_cookie_off64_t" >&6; }
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $php_cv_type_cookie_off64_t" >&5
+printf '%s\n' "$php_cv_type_cookie_off64_t" >&6; }
if test "x$php_cv_type_cookie_off64_t" = xyes
then :
-printf "%s\n" "#define COOKIE_SEEKER_USES_OFF64_T 1" >>confdefs.h
+printf '%s\n' "#define COOKIE_SEEKER_USES_OFF64_T 1" >>confdefs.h
fi
fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for broken getcwd" >&5
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for broken getcwd" >&5
printf %s "checking for broken getcwd... " >&6; }
if test ${php_cv_func_getcwd_broken+y}
then :
@@ -14740,18 +14636,18 @@
esac ;;
esac
fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $php_cv_func_getcwd_broken" >&5
-printf "%s\n" "$php_cv_func_getcwd_broken" >&6; }
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $php_cv_func_getcwd_broken" >&5
+printf '%s\n' "$php_cv_func_getcwd_broken" >&6; }
if test "x$php_cv_func_getcwd_broken" = xyes
then :
-printf "%s\n" "#define HAVE_BROKEN_GETCWD 1" >>confdefs.h
+printf '%s\n' "#define HAVE_BROKEN_GETCWD 1" >>confdefs.h
fi
if test "x$GCC" = xyes
then :
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for broken gcc optimize-strlen" >&5
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for broken gcc optimize-strlen" >&5
printf %s "checking for broken gcc optimize-strlen... " >&6; }
if test ${php_cv_have_broken_gcc_strlen_opt+y}
then :
@@ -14795,8 +14691,8 @@
;;
esac
fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $php_cv_have_broken_gcc_strlen_opt" >&5
-printf "%s\n" "$php_cv_have_broken_gcc_strlen_opt" >&6; }
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $php_cv_have_broken_gcc_strlen_opt" >&5
+printf '%s\n' "$php_cv_have_broken_gcc_strlen_opt" >&6; }
if test "x$php_cv_have_broken_gcc_strlen_opt" = xyes
then :
as_fn_append CFLAGS " -fno-optimize-strlen"
@@ -14810,7 +14706,7 @@
if test "x$ac_cv_header_sys_mkdev_h" = xyes
then :
-printf "%s\n" "#define MAJOR_IN_MKDEV 1" >>confdefs.h
+printf '%s\n' "#define MAJOR_IN_MKDEV 1" >>confdefs.h
fi
@@ -14819,7 +14715,7 @@
if test "x$ac_cv_header_sys_sysmacros_h" = xyes
then :
-printf "%s\n" "#define MAJOR_IN_SYSMACROS 1" >>confdefs.h
+printf '%s\n' "#define MAJOR_IN_SYSMACROS 1" >>confdefs.h
fi
@@ -14827,7 +14723,7 @@
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether struct tm is in sys/time.h or time.h" >&5
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking whether struct tm is in sys/time.h or time.h" >&5
printf %s "checking whether struct tm is in sys/time.h or time.h... " >&6; }
if test ${ac_cv_struct_tm+y}
then :
@@ -14858,11 +14754,11 @@
rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext ;;
esac
fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_struct_tm" >&5
-printf "%s\n" "$ac_cv_struct_tm" >&6; }
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $ac_cv_struct_tm" >&5
+printf '%s\n' "$ac_cv_struct_tm" >&6; }
if test $ac_cv_struct_tm = sys/time.h; then
-printf "%s\n" "#define TM_IN_SYS_TIME 1" >>confdefs.h
+printf '%s\n' "#define TM_IN_SYS_TIME 1" >>confdefs.h
fi
@@ -14873,18 +14769,18 @@
if test "x$ac_cv_member_struct_tm_tm_zone" = xyes
then :
-printf "%s\n" "#define HAVE_STRUCT_TM_TM_ZONE 1" >>confdefs.h
+printf '%s\n' "#define HAVE_STRUCT_TM_TM_ZONE 1" >>confdefs.h
fi
if test "$ac_cv_member_struct_tm_tm_zone" = yes; then
-printf "%s\n" "#define HAVE_TM_ZONE 1" >>confdefs.h
+printf '%s\n' "#define HAVE_TM_ZONE 1" >>confdefs.h
else
ac_fn_check_decl "$LINENO" "tzname" "ac_cv_have_decl_tzname" "#include
-" "$ac_c_undeclared_builtin_options" "CFLAGS"
+" "$ac_c_undeclared_builtin_options$ac_c_future_darwin_options" "CFLAGS"
if test "x$ac_cv_have_decl_tzname" = xyes
then :
ac_have_decl=1
@@ -14892,9 +14788,9 @@
e) ac_have_decl=0 ;;
esac
fi
-printf "%s\n" "#define HAVE_DECL_TZNAME $ac_have_decl" >>confdefs.h
+printf '%s\n' "#define HAVE_DECL_TZNAME $ac_have_decl" >>confdefs.h
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for tzname" >&5
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for tzname" >&5
printf %s "checking for tzname... " >&6; }
if test ${ac_cv_var_tzname+y}
then :
@@ -14926,11 +14822,11 @@
conftest$ac_exeext conftest.$ac_ext ;;
esac
fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_var_tzname" >&5
-printf "%s\n" "$ac_cv_var_tzname" >&6; }
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $ac_cv_var_tzname" >&5
+printf '%s\n' "$ac_cv_var_tzname" >&6; }
if test $ac_cv_var_tzname = yes; then
-printf "%s\n" "#define HAVE_TZNAME 1" >>confdefs.h
+printf '%s\n' "#define HAVE_TZNAME 1" >>confdefs.h
fi
fi
@@ -14938,57 +14834,57 @@
ac_fn_check_decl "$LINENO" "localtime_r" "ac_cv_have_decl_localtime_r" "#include
-" "$ac_c_undeclared_builtin_options" "CFLAGS"
+" "$ac_c_undeclared_builtin_options$ac_c_future_darwin_options" "CFLAGS"
if test "x$ac_cv_have_decl_localtime_r" = xyes
then :
else case e in #(
e)
-printf "%s\n" "#define MISSING_LOCALTIME_R_DECL 1" >>confdefs.h
+printf '%s\n' "#define MISSING_LOCALTIME_R_DECL 1" >>confdefs.h
;;
esac
fi
ac_fn_check_decl "$LINENO" "gmtime_r" "ac_cv_have_decl_gmtime_r" "#include
-" "$ac_c_undeclared_builtin_options" "CFLAGS"
+" "$ac_c_undeclared_builtin_options$ac_c_future_darwin_options" "CFLAGS"
if test "x$ac_cv_have_decl_gmtime_r" = xyes
then :
else case e in #(
e)
-printf "%s\n" "#define MISSING_GMTIME_R_DECL 1" >>confdefs.h
+printf '%s\n' "#define MISSING_GMTIME_R_DECL 1" >>confdefs.h
;;
esac
fi
ac_fn_check_decl "$LINENO" "asctime_r" "ac_cv_have_decl_asctime_r" "#include
-" "$ac_c_undeclared_builtin_options" "CFLAGS"
+" "$ac_c_undeclared_builtin_options$ac_c_future_darwin_options" "CFLAGS"
if test "x$ac_cv_have_decl_asctime_r" = xyes
then :
else case e in #(
e)
-printf "%s\n" "#define MISSING_ASCTIME_R_DECL 1" >>confdefs.h
+printf '%s\n' "#define MISSING_ASCTIME_R_DECL 1" >>confdefs.h
;;
esac
fi
ac_fn_check_decl "$LINENO" "ctime_r" "ac_cv_have_decl_ctime_r" "#include
-" "$ac_c_undeclared_builtin_options" "CFLAGS"
+" "$ac_c_undeclared_builtin_options$ac_c_future_darwin_options" "CFLAGS"
if test "x$ac_cv_have_decl_ctime_r" = xyes
then :
else case e in #(
e)
-printf "%s\n" "#define MISSING_CTIME_R_DECL 1" >>confdefs.h
+printf '%s\n' "#define MISSING_CTIME_R_DECL 1" >>confdefs.h
;;
esac
fi
ac_fn_check_decl "$LINENO" "strtok_r" "ac_cv_have_decl_strtok_r" "#include
-" "$ac_c_undeclared_builtin_options" "CFLAGS"
+" "$ac_c_undeclared_builtin_options$ac_c_future_darwin_options" "CFLAGS"
if test "x$ac_cv_have_decl_strtok_r" = xyes
then :
else case e in #(
e)
-printf "%s\n" "#define MISSING_STRTOK_R_DECL 1" >>confdefs.h
+printf '%s\n' "#define MISSING_STRTOK_R_DECL 1" >>confdefs.h
;;
esac
fi
@@ -14999,7 +14895,7 @@
if test "x$ac_cv_type_struct_flock" = xyes
then :
-printf "%s\n" "#define HAVE_STRUCT_FLOCK 1" >>confdefs.h
+printf '%s\n' "#define HAVE_STRUCT_FLOCK 1" >>confdefs.h
fi
@@ -15016,14 +14912,14 @@
if test "x$ac_cv_type_socklen_t" = xyes
then :
-printf "%s\n" "#define HAVE_SOCKLEN_T 1" >>confdefs.h
+printf '%s\n' "#define HAVE_SOCKLEN_T 1" >>confdefs.h
fi
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking size of intmax_t" >&5
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking size of intmax_t" >&5
printf %s "checking size of intmax_t... " >&6; }
php_cache_value=php_cv_sizeof_intmax_t
@@ -15087,20 +14983,20 @@
if eval test "\$$php_cache_value" != "0"; then
-printf "%s\n" "#define SIZEOF_INTMAX_T $php_cv_sizeof_intmax_t" >>confdefs.h
+printf '%s\n' "#define SIZEOF_INTMAX_T $php_cv_sizeof_intmax_t" >>confdefs.h
-printf "%s\n" "#define HAVE_INTMAX_T 1" >>confdefs.h
+printf '%s\n' "#define HAVE_INTMAX_T 1" >>confdefs.h
fi
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $php_cv_sizeof_intmax_t" >&5
-printf "%s\n" "$php_cv_sizeof_intmax_t" >&6; }
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $php_cv_sizeof_intmax_t" >&5
+printf '%s\n' "$php_cv_sizeof_intmax_t" >&6; }
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking size of ssize_t" >&5
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking size of ssize_t" >&5
printf %s "checking size of ssize_t... " >&6; }
php_cache_value=php_cv_sizeof_ssize_t
@@ -15164,20 +15060,20 @@
if eval test "\$$php_cache_value" != "0"; then
-printf "%s\n" "#define SIZEOF_SSIZE_T $php_cv_sizeof_ssize_t" >>confdefs.h
+printf '%s\n' "#define SIZEOF_SSIZE_T $php_cv_sizeof_ssize_t" >>confdefs.h
-printf "%s\n" "#define HAVE_SSIZE_T 1" >>confdefs.h
+printf '%s\n' "#define HAVE_SSIZE_T 1" >>confdefs.h
fi
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $php_cv_sizeof_ssize_t" >&5
-printf "%s\n" "$php_cv_sizeof_ssize_t" >&6; }
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $php_cv_sizeof_ssize_t" >&5
+printf '%s\n' "$php_cv_sizeof_ssize_t" >&6; }
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking size of ptrdiff_t" >&5
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking size of ptrdiff_t" >&5
printf %s "checking size of ptrdiff_t... " >&6; }
php_cache_value=php_cv_sizeof_ptrdiff_t
@@ -15241,17 +15137,17 @@
if eval test "\$$php_cache_value" != "0"; then
-printf "%s\n" "#define SIZEOF_PTRDIFF_T $php_cv_sizeof_ptrdiff_t" >>confdefs.h
+printf '%s\n' "#define SIZEOF_PTRDIFF_T $php_cv_sizeof_ptrdiff_t" >>confdefs.h
-printf "%s\n" "#define HAVE_PTRDIFF_T 1" >>confdefs.h
+printf '%s\n' "#define HAVE_PTRDIFF_T 1" >>confdefs.h
fi
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $php_cv_sizeof_ptrdiff_t" >&5
-printf "%s\n" "$php_cv_sizeof_ptrdiff_t" >&6; }
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $php_cv_sizeof_ptrdiff_t" >&5
+printf '%s\n' "$php_cv_sizeof_ptrdiff_t" >&6; }
@@ -15259,7 +15155,7 @@
# version HP92453-01 B.11.11.23709.GP, which incorrectly rejects
# declarations like 'int a3[[(sizeof (unsigned char)) >= 0]];'.
# This bug is HP SR number 8606223364.
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking size of int" >&5
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking size of int" >&5
printf %s "checking size of int... " >&6; }
if test ${ac_cv_sizeof_int+y}
then :
@@ -15269,32 +15165,25 @@
then :
else case e in #(
- e) if test "$ac_cv_type_int" = yes; then
- { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in '$ac_pwd':" >&5
-printf "%s\n" "$as_me: error: in '$ac_pwd':" >&2;}
-as_fn_error 77 "cannot compute sizeof (int)
-See 'config.log' for more details" "$LINENO" 5; }
- else
- ac_cv_sizeof_int=0
- fi ;;
+ e) ac_cv_sizeof_int=0 ;;
esac
fi
;;
esac
fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sizeof_int" >&5
-printf "%s\n" "$ac_cv_sizeof_int" >&6; }
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sizeof_int" >&5
+printf '%s\n' "$ac_cv_sizeof_int" >&6; }
-printf "%s\n" "#define SIZEOF_INT $ac_cv_sizeof_int" >>confdefs.h
+printf '%s\n' "#define SIZEOF_INT $ac_cv_sizeof_int" >>confdefs.h
# The cast to long int works around a bug in the HP C Compiler
# version HP92453-01 B.11.11.23709.GP, which incorrectly rejects
# declarations like 'int a3[[(sizeof (unsigned char)) >= 0]];'.
# This bug is HP SR number 8606223364.
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking size of long" >&5
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking size of long" >&5
printf %s "checking size of long... " >&6; }
if test ${ac_cv_sizeof_long+y}
then :
@@ -15304,32 +15193,25 @@
then :
else case e in #(
- e) if test "$ac_cv_type_long" = yes; then
- { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in '$ac_pwd':" >&5
-printf "%s\n" "$as_me: error: in '$ac_pwd':" >&2;}
-as_fn_error 77 "cannot compute sizeof (long)
-See 'config.log' for more details" "$LINENO" 5; }
- else
- ac_cv_sizeof_long=0
- fi ;;
+ e) ac_cv_sizeof_long=0 ;;
esac
fi
;;
esac
fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sizeof_long" >&5
-printf "%s\n" "$ac_cv_sizeof_long" >&6; }
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sizeof_long" >&5
+printf '%s\n' "$ac_cv_sizeof_long" >&6; }
-printf "%s\n" "#define SIZEOF_LONG $ac_cv_sizeof_long" >>confdefs.h
+printf '%s\n' "#define SIZEOF_LONG $ac_cv_sizeof_long" >>confdefs.h
# The cast to long int works around a bug in the HP C Compiler
# version HP92453-01 B.11.11.23709.GP, which incorrectly rejects
# declarations like 'int a3[[(sizeof (unsigned char)) >= 0]];'.
# This bug is HP SR number 8606223364.
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking size of long long" >&5
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking size of long long" >&5
printf %s "checking size of long long... " >&6; }
if test ${ac_cv_sizeof_long_long+y}
then :
@@ -15339,32 +15221,25 @@
then :
else case e in #(
- e) if test "$ac_cv_type_long_long" = yes; then
- { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in '$ac_pwd':" >&5
-printf "%s\n" "$as_me: error: in '$ac_pwd':" >&2;}
-as_fn_error 77 "cannot compute sizeof (long long)
-See 'config.log' for more details" "$LINENO" 5; }
- else
- ac_cv_sizeof_long_long=0
- fi ;;
+ e) ac_cv_sizeof_long_long=0 ;;
esac
fi
;;
esac
fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sizeof_long_long" >&5
-printf "%s\n" "$ac_cv_sizeof_long_long" >&6; }
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sizeof_long_long" >&5
+printf '%s\n' "$ac_cv_sizeof_long_long" >&6; }
-printf "%s\n" "#define SIZEOF_LONG_LONG $ac_cv_sizeof_long_long" >>confdefs.h
+printf '%s\n' "#define SIZEOF_LONG_LONG $ac_cv_sizeof_long_long" >>confdefs.h
# The cast to long int works around a bug in the HP C Compiler
# version HP92453-01 B.11.11.23709.GP, which incorrectly rejects
# declarations like 'int a3[[(sizeof (unsigned char)) >= 0]];'.
# This bug is HP SR number 8606223364.
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking size of size_t" >&5
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking size of size_t" >&5
printf %s "checking size of size_t... " >&6; }
if test ${ac_cv_sizeof_size_t+y}
then :
@@ -15374,32 +15249,25 @@
then :
else case e in #(
- e) if test "$ac_cv_type_size_t" = yes; then
- { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in '$ac_pwd':" >&5
-printf "%s\n" "$as_me: error: in '$ac_pwd':" >&2;}
-as_fn_error 77 "cannot compute sizeof (size_t)
-See 'config.log' for more details" "$LINENO" 5; }
- else
- ac_cv_sizeof_size_t=0
- fi ;;
+ e) ac_cv_sizeof_size_t=0 ;;
esac
fi
;;
esac
fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sizeof_size_t" >&5
-printf "%s\n" "$ac_cv_sizeof_size_t" >&6; }
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sizeof_size_t" >&5
+printf '%s\n' "$ac_cv_sizeof_size_t" >&6; }
-printf "%s\n" "#define SIZEOF_SIZE_T $ac_cv_sizeof_size_t" >>confdefs.h
+printf '%s\n' "#define SIZEOF_SIZE_T $ac_cv_sizeof_size_t" >>confdefs.h
# The cast to long int works around a bug in the HP C Compiler
# version HP92453-01 B.11.11.23709.GP, which incorrectly rejects
# declarations like 'int a3[[(sizeof (unsigned char)) >= 0]];'.
# This bug is HP SR number 8606223364.
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking size of off_t" >&5
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking size of off_t" >&5
printf %s "checking size of off_t... " >&6; }
if test ${ac_cv_sizeof_off_t+y}
then :
@@ -15409,31 +15277,24 @@
then :
else case e in #(
- e) if test "$ac_cv_type_off_t" = yes; then
- { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in '$ac_pwd':" >&5
-printf "%s\n" "$as_me: error: in '$ac_pwd':" >&2;}
-as_fn_error 77 "cannot compute sizeof (off_t)
-See 'config.log' for more details" "$LINENO" 5; }
- else
- ac_cv_sizeof_off_t=0
- fi ;;
+ e) ac_cv_sizeof_off_t=0 ;;
esac
fi
;;
esac
fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sizeof_off_t" >&5
-printf "%s\n" "$ac_cv_sizeof_off_t" >&6; }
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sizeof_off_t" >&5
+printf '%s\n' "$ac_cv_sizeof_off_t" >&6; }
-printf "%s\n" "#define SIZEOF_OFF_T $ac_cv_sizeof_off_t" >>confdefs.h
+printf '%s\n' "#define SIZEOF_OFF_T $ac_cv_sizeof_off_t" >>confdefs.h
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for __builtin_clz" >&5
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for __builtin_clz" >&5
printf %s "checking for __builtin_clz... " >&6; }
if test ${php_cv_have___builtin_clz+y}
then :
@@ -15455,18 +15316,18 @@
;;
esac
fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $php_cv_have___builtin_clz" >&5
-printf "%s\n" "$php_cv_have___builtin_clz" >&6; }
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $php_cv_have___builtin_clz" >&5
+printf '%s\n' "$php_cv_have___builtin_clz" >&6; }
if test "x$php_cv_have___builtin_clz" = xyes
then :
-printf "%s\n" "#define PHP_HAVE_BUILTIN_CLZ 1" >>confdefs.h
+printf '%s\n' "#define PHP_HAVE_BUILTIN_CLZ 1" >>confdefs.h
fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for __builtin_clzl" >&5
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for __builtin_clzl" >&5
printf %s "checking for __builtin_clzl... " >&6; }
if test ${php_cv_have___builtin_clzl+y}
then :
@@ -15488,18 +15349,18 @@
;;
esac
fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $php_cv_have___builtin_clzl" >&5
-printf "%s\n" "$php_cv_have___builtin_clzl" >&6; }
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $php_cv_have___builtin_clzl" >&5
+printf '%s\n' "$php_cv_have___builtin_clzl" >&6; }
if test "x$php_cv_have___builtin_clzl" = xyes
then :
-printf "%s\n" "#define PHP_HAVE_BUILTIN_CLZL 1" >>confdefs.h
+printf '%s\n' "#define PHP_HAVE_BUILTIN_CLZL 1" >>confdefs.h
fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for __builtin_clzll" >&5
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for __builtin_clzll" >&5
printf %s "checking for __builtin_clzll... " >&6; }
if test ${php_cv_have___builtin_clzll+y}
then :
@@ -15521,18 +15382,18 @@
;;
esac
fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $php_cv_have___builtin_clzll" >&5
-printf "%s\n" "$php_cv_have___builtin_clzll" >&6; }
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $php_cv_have___builtin_clzll" >&5
+printf '%s\n' "$php_cv_have___builtin_clzll" >&6; }
if test "x$php_cv_have___builtin_clzll" = xyes
then :
-printf "%s\n" "#define PHP_HAVE_BUILTIN_CLZLL 1" >>confdefs.h
+printf '%s\n' "#define PHP_HAVE_BUILTIN_CLZLL 1" >>confdefs.h
fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for __builtin_cpu_init" >&5
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for __builtin_cpu_init" >&5
printf %s "checking for __builtin_cpu_init... " >&6; }
if test ${php_cv_have___builtin_cpu_init+y}
then :
@@ -15554,18 +15415,18 @@
;;
esac
fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $php_cv_have___builtin_cpu_init" >&5
-printf "%s\n" "$php_cv_have___builtin_cpu_init" >&6; }
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $php_cv_have___builtin_cpu_init" >&5
+printf '%s\n' "$php_cv_have___builtin_cpu_init" >&6; }
if test "x$php_cv_have___builtin_cpu_init" = xyes
then :
-printf "%s\n" "#define PHP_HAVE_BUILTIN_CPU_INIT 1" >>confdefs.h
+printf '%s\n' "#define PHP_HAVE_BUILTIN_CPU_INIT 1" >>confdefs.h
fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for __builtin_cpu_supports" >&5
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for __builtin_cpu_supports" >&5
printf %s "checking for __builtin_cpu_supports... " >&6; }
if test ${php_cv_have___builtin_cpu_supports+y}
then :
@@ -15587,18 +15448,18 @@
;;
esac
fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $php_cv_have___builtin_cpu_supports" >&5
-printf "%s\n" "$php_cv_have___builtin_cpu_supports" >&6; }
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $php_cv_have___builtin_cpu_supports" >&5
+printf '%s\n' "$php_cv_have___builtin_cpu_supports" >&6; }
if test "x$php_cv_have___builtin_cpu_supports" = xyes
then :
-printf "%s\n" "#define PHP_HAVE_BUILTIN_CPU_SUPPORTS 1" >>confdefs.h
+printf '%s\n' "#define PHP_HAVE_BUILTIN_CPU_SUPPORTS 1" >>confdefs.h
fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for __builtin_ctzl" >&5
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for __builtin_ctzl" >&5
printf %s "checking for __builtin_ctzl... " >&6; }
if test ${php_cv_have___builtin_ctzl+y}
then :
@@ -15620,18 +15481,18 @@
;;
esac
fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $php_cv_have___builtin_ctzl" >&5
-printf "%s\n" "$php_cv_have___builtin_ctzl" >&6; }
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $php_cv_have___builtin_ctzl" >&5
+printf '%s\n' "$php_cv_have___builtin_ctzl" >&6; }
if test "x$php_cv_have___builtin_ctzl" = xyes
then :
-printf "%s\n" "#define PHP_HAVE_BUILTIN_CTZL 1" >>confdefs.h
+printf '%s\n' "#define PHP_HAVE_BUILTIN_CTZL 1" >>confdefs.h
fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for __builtin_ctzll" >&5
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for __builtin_ctzll" >&5
printf %s "checking for __builtin_ctzll... " >&6; }
if test ${php_cv_have___builtin_ctzll+y}
then :
@@ -15653,18 +15514,18 @@
;;
esac
fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $php_cv_have___builtin_ctzll" >&5
-printf "%s\n" "$php_cv_have___builtin_ctzll" >&6; }
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $php_cv_have___builtin_ctzll" >&5
+printf '%s\n' "$php_cv_have___builtin_ctzll" >&6; }
if test "x$php_cv_have___builtin_ctzll" = xyes
then :
-printf "%s\n" "#define PHP_HAVE_BUILTIN_CTZLL 1" >>confdefs.h
+printf '%s\n' "#define PHP_HAVE_BUILTIN_CTZLL 1" >>confdefs.h
fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for __builtin_expect" >&5
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for __builtin_expect" >&5
printf %s "checking for __builtin_expect... " >&6; }
if test ${php_cv_have___builtin_expect+y}
then :
@@ -15686,18 +15547,18 @@
;;
esac
fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $php_cv_have___builtin_expect" >&5
-printf "%s\n" "$php_cv_have___builtin_expect" >&6; }
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $php_cv_have___builtin_expect" >&5
+printf '%s\n' "$php_cv_have___builtin_expect" >&6; }
if test "x$php_cv_have___builtin_expect" = xyes
then :
-printf "%s\n" "#define PHP_HAVE_BUILTIN_EXPECT 1" >>confdefs.h
+printf '%s\n' "#define PHP_HAVE_BUILTIN_EXPECT 1" >>confdefs.h
fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for __builtin_frame_address" >&5
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for __builtin_frame_address" >&5
printf %s "checking for __builtin_frame_address... " >&6; }
if test ${php_cv_have___builtin_frame_address+y}
then :
@@ -15719,18 +15580,18 @@
;;
esac
fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $php_cv_have___builtin_frame_address" >&5
-printf "%s\n" "$php_cv_have___builtin_frame_address" >&6; }
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $php_cv_have___builtin_frame_address" >&5
+printf '%s\n' "$php_cv_have___builtin_frame_address" >&6; }
if test "x$php_cv_have___builtin_frame_address" = xyes
then :
-printf "%s\n" "#define PHP_HAVE_BUILTIN_FRAME_ADDRESS 1" >>confdefs.h
+printf '%s\n' "#define PHP_HAVE_BUILTIN_FRAME_ADDRESS 1" >>confdefs.h
fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for __builtin_saddl_overflow" >&5
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for __builtin_saddl_overflow" >&5
printf %s "checking for __builtin_saddl_overflow... " >&6; }
if test ${php_cv_have___builtin_saddl_overflow+y}
then :
@@ -15752,18 +15613,18 @@
;;
esac
fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $php_cv_have___builtin_saddl_overflow" >&5
-printf "%s\n" "$php_cv_have___builtin_saddl_overflow" >&6; }
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $php_cv_have___builtin_saddl_overflow" >&5
+printf '%s\n' "$php_cv_have___builtin_saddl_overflow" >&6; }
if test "x$php_cv_have___builtin_saddl_overflow" = xyes
then :
-printf "%s\n" "#define PHP_HAVE_BUILTIN_SADDL_OVERFLOW 1" >>confdefs.h
+printf '%s\n' "#define PHP_HAVE_BUILTIN_SADDL_OVERFLOW 1" >>confdefs.h
fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for __builtin_saddll_overflow" >&5
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for __builtin_saddll_overflow" >&5
printf %s "checking for __builtin_saddll_overflow... " >&6; }
if test ${php_cv_have___builtin_saddll_overflow+y}
then :
@@ -15785,18 +15646,18 @@
;;
esac
fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $php_cv_have___builtin_saddll_overflow" >&5
-printf "%s\n" "$php_cv_have___builtin_saddll_overflow" >&6; }
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $php_cv_have___builtin_saddll_overflow" >&5
+printf '%s\n' "$php_cv_have___builtin_saddll_overflow" >&6; }
if test "x$php_cv_have___builtin_saddll_overflow" = xyes
then :
-printf "%s\n" "#define PHP_HAVE_BUILTIN_SADDLL_OVERFLOW 1" >>confdefs.h
+printf '%s\n' "#define PHP_HAVE_BUILTIN_SADDLL_OVERFLOW 1" >>confdefs.h
fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for __builtin_smull_overflow" >&5
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for __builtin_smull_overflow" >&5
printf %s "checking for __builtin_smull_overflow... " >&6; }
if test ${php_cv_have___builtin_smull_overflow+y}
then :
@@ -15818,18 +15679,18 @@
;;
esac
fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $php_cv_have___builtin_smull_overflow" >&5
-printf "%s\n" "$php_cv_have___builtin_smull_overflow" >&6; }
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $php_cv_have___builtin_smull_overflow" >&5
+printf '%s\n' "$php_cv_have___builtin_smull_overflow" >&6; }
if test "x$php_cv_have___builtin_smull_overflow" = xyes
then :
-printf "%s\n" "#define PHP_HAVE_BUILTIN_SMULL_OVERFLOW 1" >>confdefs.h
+printf '%s\n' "#define PHP_HAVE_BUILTIN_SMULL_OVERFLOW 1" >>confdefs.h
fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for __builtin_smulll_overflow" >&5
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for __builtin_smulll_overflow" >&5
printf %s "checking for __builtin_smulll_overflow... " >&6; }
if test ${php_cv_have___builtin_smulll_overflow+y}
then :
@@ -15851,18 +15712,18 @@
;;
esac
fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $php_cv_have___builtin_smulll_overflow" >&5
-printf "%s\n" "$php_cv_have___builtin_smulll_overflow" >&6; }
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $php_cv_have___builtin_smulll_overflow" >&5
+printf '%s\n' "$php_cv_have___builtin_smulll_overflow" >&6; }
if test "x$php_cv_have___builtin_smulll_overflow" = xyes
then :
-printf "%s\n" "#define PHP_HAVE_BUILTIN_SMULLL_OVERFLOW 1" >>confdefs.h
+printf '%s\n' "#define PHP_HAVE_BUILTIN_SMULLL_OVERFLOW 1" >>confdefs.h
fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for __builtin_ssubl_overflow" >&5
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for __builtin_ssubl_overflow" >&5
printf %s "checking for __builtin_ssubl_overflow... " >&6; }
if test ${php_cv_have___builtin_ssubl_overflow+y}
then :
@@ -15884,18 +15745,18 @@
;;
esac
fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $php_cv_have___builtin_ssubl_overflow" >&5
-printf "%s\n" "$php_cv_have___builtin_ssubl_overflow" >&6; }
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $php_cv_have___builtin_ssubl_overflow" >&5
+printf '%s\n' "$php_cv_have___builtin_ssubl_overflow" >&6; }
if test "x$php_cv_have___builtin_ssubl_overflow" = xyes
then :
-printf "%s\n" "#define PHP_HAVE_BUILTIN_SSUBL_OVERFLOW 1" >>confdefs.h
+printf '%s\n' "#define PHP_HAVE_BUILTIN_SSUBL_OVERFLOW 1" >>confdefs.h
fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for __builtin_ssubll_overflow" >&5
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for __builtin_ssubll_overflow" >&5
printf %s "checking for __builtin_ssubll_overflow... " >&6; }
if test ${php_cv_have___builtin_ssubll_overflow+y}
then :
@@ -15917,18 +15778,18 @@
;;
esac
fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $php_cv_have___builtin_ssubll_overflow" >&5
-printf "%s\n" "$php_cv_have___builtin_ssubll_overflow" >&6; }
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $php_cv_have___builtin_ssubll_overflow" >&5
+printf '%s\n' "$php_cv_have___builtin_ssubll_overflow" >&6; }
if test "x$php_cv_have___builtin_ssubll_overflow" = xyes
then :
-printf "%s\n" "#define PHP_HAVE_BUILTIN_SSUBLL_OVERFLOW 1" >>confdefs.h
+printf '%s\n' "#define PHP_HAVE_BUILTIN_SSUBLL_OVERFLOW 1" >>confdefs.h
fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for __builtin_unreachable" >&5
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for __builtin_unreachable" >&5
printf %s "checking for __builtin_unreachable... " >&6; }
if test ${php_cv_have___builtin_unreachable+y}
then :
@@ -15950,18 +15811,18 @@
;;
esac
fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $php_cv_have___builtin_unreachable" >&5
-printf "%s\n" "$php_cv_have___builtin_unreachable" >&6; }
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $php_cv_have___builtin_unreachable" >&5
+printf '%s\n' "$php_cv_have___builtin_unreachable" >&6; }
if test "x$php_cv_have___builtin_unreachable" = xyes
then :
-printf "%s\n" "#define PHP_HAVE_BUILTIN_UNREACHABLE 1" >>confdefs.h
+printf '%s\n' "#define PHP_HAVE_BUILTIN_UNREACHABLE 1" >>confdefs.h
fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for __builtin_usub_overflow" >&5
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for __builtin_usub_overflow" >&5
printf %s "checking for __builtin_usub_overflow... " >&6; }
if test ${php_cv_have___builtin_usub_overflow+y}
then :
@@ -15983,18 +15844,18 @@
;;
esac
fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $php_cv_have___builtin_usub_overflow" >&5
-printf "%s\n" "$php_cv_have___builtin_usub_overflow" >&6; }
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $php_cv_have___builtin_usub_overflow" >&5
+printf '%s\n' "$php_cv_have___builtin_usub_overflow" >&6; }
if test "x$php_cv_have___builtin_usub_overflow" = xyes
then :
-printf "%s\n" "#define PHP_HAVE_BUILTIN_USUB_OVERFLOW 1" >>confdefs.h
+printf '%s\n' "#define PHP_HAVE_BUILTIN_USUB_OVERFLOW 1" >>confdefs.h
fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether compiler supports AVX-512" >&5
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking whether compiler supports AVX-512" >&5
printf %s "checking whether compiler supports AVX-512... " >&6; }
if test ${php_cv_have_avx512+y}
then :
@@ -16026,16 +15887,16 @@
;;
esac
fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $php_cv_have_avx512" >&5
-printf "%s\n" "$php_cv_have_avx512" >&6; }
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $php_cv_have_avx512" >&5
+printf '%s\n' "$php_cv_have_avx512" >&6; }
if test "x$php_cv_have_avx512" = xyes
then :
-printf "%s\n" "#define PHP_HAVE_AVX512_SUPPORTS 1" >>confdefs.h
+printf '%s\n' "#define PHP_HAVE_AVX512_SUPPORTS 1" >>confdefs.h
fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether compiler supports AVX-512 VBMI" >&5
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking whether compiler supports AVX-512 VBMI" >&5
printf %s "checking whether compiler supports AVX-512 VBMI... " >&6; }
if test ${php_cv_have_avx512vbmi+y}
then :
@@ -16067,17 +15928,17 @@
;;
esac
fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $php_cv_have_avx512vbmi" >&5
-printf "%s\n" "$php_cv_have_avx512vbmi" >&6; }
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $php_cv_have_avx512vbmi" >&5
+printf '%s\n' "$php_cv_have_avx512vbmi" >&6; }
if test "x$php_cv_have_avx512vbmi" = xyes
then :
-printf "%s\n" "#define PHP_HAVE_AVX512_VBMI_SUPPORTS 1" >>confdefs.h
+printf '%s\n' "#define PHP_HAVE_AVX512_VBMI_SUPPORTS 1" >>confdefs.h
fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether the compiler supports __alignof__" >&5
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking whether the compiler supports __alignof__" >&5
printf %s "checking whether the compiler supports __alignof__... " >&6; }
if test ${php_cv_have_alignof+y}
then :
@@ -16107,12 +15968,12 @@
rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext ;;
esac
fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $php_cv_have_alignof" >&5
-printf "%s\n" "$php_cv_have_alignof" >&6; }
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $php_cv_have_alignof" >&5
+printf '%s\n' "$php_cv_have_alignof" >&6; }
if test "x$php_cv_have_alignof" = xyes
then :
-printf "%s\n" "#define HAVE_ALIGNOF 1" >>confdefs.h
+printf '%s\n' "#define HAVE_ALIGNOF 1" >>confdefs.h
fi
@@ -16121,7 +15982,7 @@
if test "x$ac_cv_member_struct_tm_tm_gmtoff" = xyes
then :
-printf "%s\n" "#define HAVE_STRUCT_TM_TM_GMTOFF 1" >>confdefs.h
+printf '%s\n' "#define HAVE_STRUCT_TM_TM_GMTOFF 1" >>confdefs.h
fi
@@ -16130,7 +15991,7 @@
if test "x$ac_cv_member_struct_stat_st_blksize" = xyes
then :
-printf "%s\n" "#define HAVE_STRUCT_STAT_ST_BLKSIZE 1" >>confdefs.h
+printf '%s\n' "#define HAVE_STRUCT_STAT_ST_BLKSIZE 1" >>confdefs.h
fi
@@ -16138,7 +15999,7 @@
if test "x$ac_cv_member_struct_stat_st_rdev" = xyes
then :
-printf "%s\n" "#define HAVE_STRUCT_STAT_ST_RDEV 1" >>confdefs.h
+printf '%s\n' "#define HAVE_STRUCT_STAT_ST_RDEV 1" >>confdefs.h
fi
@@ -16148,10 +16009,10 @@
if test "x$ac_cv_member_struct_stat_st_blocks" = xyes
then :
-printf "%s\n" "#define HAVE_STRUCT_STAT_ST_BLOCKS 1" >>confdefs.h
+printf '%s\n' "#define HAVE_STRUCT_STAT_ST_BLOCKS 1" >>confdefs.h
-printf "%s\n" "#define HAVE_ST_BLOCKS 1" >>confdefs.h
+printf '%s\n' "#define HAVE_ST_BLOCKS 1" >>confdefs.h
else case e in #(
e) case " $LIBOBJS " in
@@ -16172,7 +16033,7 @@
else case e in #(
e)
-printf "%s\n" "#define uid_t int" >>confdefs.h
+printf '%s\n' "#define uid_t int" >>confdefs.h
;;
esac
fi
@@ -16183,7 +16044,7 @@
else case e in #(
e)
-printf "%s\n" "#define gid_t int" >>confdefs.h
+printf '%s\n' "#define gid_t int" >>confdefs.h
;;
esac
fi
@@ -16194,7 +16055,7 @@
if test "x$ac_cv_type_struct_sockaddr_storage" = xyes
then :
-printf "%s\n" "#define HAVE_STRUCT_SOCKADDR_STORAGE 1" >>confdefs.h
+printf '%s\n' "#define HAVE_STRUCT_SOCKADDR_STORAGE 1" >>confdefs.h
fi
@@ -16204,7 +16065,7 @@
if test "x$ac_cv_member_struct_sockaddr_sa_len" = xyes
then :
-printf "%s\n" "#define HAVE_STRUCT_SOCKADDR_SA_LEN 1" >>confdefs.h
+printf '%s\n' "#define HAVE_STRUCT_SOCKADDR_SA_LEN 1" >>confdefs.h
fi
@@ -16219,7 +16080,7 @@
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for __attribute__((ifunc))" >&5
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for __attribute__((ifunc))" >&5
printf %s "checking for __attribute__((ifunc))... " >&6; }
if test ${ax_cv_have_func_attribute_ifunc+y}
then :
@@ -16261,13 +16122,13 @@
;;
esac
fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ax_cv_have_func_attribute_ifunc" >&5
-printf "%s\n" "$ax_cv_have_func_attribute_ifunc" >&6; }
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $ax_cv_have_func_attribute_ifunc" >&5
+printf '%s\n' "$ax_cv_have_func_attribute_ifunc" >&6; }
if test yes = $ax_cv_have_func_attribute_ifunc
then :
-printf "%s\n" "#define HAVE_FUNC_ATTRIBUTE_IFUNC 1" >>confdefs.h
+printf '%s\n' "#define HAVE_FUNC_ATTRIBUTE_IFUNC 1" >>confdefs.h
fi
@@ -16276,7 +16137,7 @@
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for __attribute__((target))" >&5
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for __attribute__((target))" >&5
printf %s "checking for __attribute__((target))... " >&6; }
if test ${ax_cv_have_func_attribute_target+y}
then :
@@ -16316,13 +16177,13 @@
;;
esac
fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ax_cv_have_func_attribute_target" >&5
-printf "%s\n" "$ax_cv_have_func_attribute_target" >&6; }
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $ax_cv_have_func_attribute_target" >&5
+printf '%s\n' "$ax_cv_have_func_attribute_target" >&6; }
if test yes = $ax_cv_have_func_attribute_target
then :
-printf "%s\n" "#define HAVE_FUNC_ATTRIBUTE_TARGET 1" >>confdefs.h
+printf '%s\n' "#define HAVE_FUNC_ATTRIBUTE_TARGET 1" >>confdefs.h
fi
@@ -16333,7 +16194,7 @@
esac
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for variable __attribute__((aligned))" >&5
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for variable __attribute__((aligned))" >&5
printf %s "checking for variable __attribute__((aligned))... " >&6; }
if test ${php_cv_have_variable_attribute_aligned+y}
then :
@@ -16367,12 +16228,12 @@
;;
esac
fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $php_cv_have_variable_attribute_aligned" >&5
-printf "%s\n" "$php_cv_have_variable_attribute_aligned" >&6; }
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $php_cv_have_variable_attribute_aligned" >&5
+printf '%s\n' "$php_cv_have_variable_attribute_aligned" >&6; }
if test "x$php_cv_have_variable_attribute_aligned" = xyes
then :
-printf "%s\n" "#define HAVE_ATTRIBUTE_ALIGNED 1" >>confdefs.h
+printf '%s\n' "#define HAVE_ATTRIBUTE_ALIGNED 1" >>confdefs.h
fi
@@ -16382,355 +16243,355 @@
ac_fn_c_check_func "$LINENO" "alphasort" "ac_cv_func_alphasort"
if test "x$ac_cv_func_alphasort" = xyes
then :
- printf "%s\n" "#define HAVE_ALPHASORT 1" >>confdefs.h
+ printf '%s\n' "#define HAVE_ALPHASORT 1" >>confdefs.h
fi
ac_fn_c_check_func "$LINENO" "asctime_r" "ac_cv_func_asctime_r"
if test "x$ac_cv_func_asctime_r" = xyes
then :
- printf "%s\n" "#define HAVE_ASCTIME_R 1" >>confdefs.h
+ printf '%s\n' "#define HAVE_ASCTIME_R 1" >>confdefs.h
fi
ac_fn_c_check_func "$LINENO" "asprintf" "ac_cv_func_asprintf"
if test "x$ac_cv_func_asprintf" = xyes
then :
- printf "%s\n" "#define HAVE_ASPRINTF 1" >>confdefs.h
+ printf '%s\n' "#define HAVE_ASPRINTF 1" >>confdefs.h
fi
ac_fn_c_check_func "$LINENO" "chroot" "ac_cv_func_chroot"
if test "x$ac_cv_func_chroot" = xyes
then :
- printf "%s\n" "#define HAVE_CHROOT 1" >>confdefs.h
+ printf '%s\n' "#define HAVE_CHROOT 1" >>confdefs.h
fi
ac_fn_c_check_func "$LINENO" "ctime_r" "ac_cv_func_ctime_r"
if test "x$ac_cv_func_ctime_r" = xyes
then :
- printf "%s\n" "#define HAVE_CTIME_R 1" >>confdefs.h
+ printf '%s\n' "#define HAVE_CTIME_R 1" >>confdefs.h
fi
ac_fn_c_check_func "$LINENO" "explicit_memset" "ac_cv_func_explicit_memset"
if test "x$ac_cv_func_explicit_memset" = xyes
then :
- printf "%s\n" "#define HAVE_EXPLICIT_MEMSET 1" >>confdefs.h
+ printf '%s\n' "#define HAVE_EXPLICIT_MEMSET 1" >>confdefs.h
fi
ac_fn_c_check_func "$LINENO" "fdatasync" "ac_cv_func_fdatasync"
if test "x$ac_cv_func_fdatasync" = xyes
then :
- printf "%s\n" "#define HAVE_FDATASYNC 1" >>confdefs.h
+ printf '%s\n' "#define HAVE_FDATASYNC 1" >>confdefs.h
fi
ac_fn_c_check_func "$LINENO" "flock" "ac_cv_func_flock"
if test "x$ac_cv_func_flock" = xyes
then :
- printf "%s\n" "#define HAVE_FLOCK 1" >>confdefs.h
+ printf '%s\n' "#define HAVE_FLOCK 1" >>confdefs.h
fi
ac_fn_c_check_func "$LINENO" "ftok" "ac_cv_func_ftok"
if test "x$ac_cv_func_ftok" = xyes
then :
- printf "%s\n" "#define HAVE_FTOK 1" >>confdefs.h
+ printf '%s\n' "#define HAVE_FTOK 1" >>confdefs.h
fi
ac_fn_c_check_func "$LINENO" "funopen" "ac_cv_func_funopen"
if test "x$ac_cv_func_funopen" = xyes
then :
- printf "%s\n" "#define HAVE_FUNOPEN 1" >>confdefs.h
+ printf '%s\n' "#define HAVE_FUNOPEN 1" >>confdefs.h
fi
ac_fn_c_check_func "$LINENO" "gai_strerror" "ac_cv_func_gai_strerror"
if test "x$ac_cv_func_gai_strerror" = xyes
then :
- printf "%s\n" "#define HAVE_GAI_STRERROR 1" >>confdefs.h
+ printf '%s\n' "#define HAVE_GAI_STRERROR 1" >>confdefs.h
fi
ac_fn_c_check_func "$LINENO" "getcwd" "ac_cv_func_getcwd"
if test "x$ac_cv_func_getcwd" = xyes
then :
- printf "%s\n" "#define HAVE_GETCWD 1" >>confdefs.h
+ printf '%s\n' "#define HAVE_GETCWD 1" >>confdefs.h
fi
ac_fn_c_check_func "$LINENO" "getgrnam_r" "ac_cv_func_getgrnam_r"
if test "x$ac_cv_func_getgrnam_r" = xyes
then :
- printf "%s\n" "#define HAVE_GETGRNAM_R 1" >>confdefs.h
+ printf '%s\n' "#define HAVE_GETGRNAM_R 1" >>confdefs.h
fi
ac_fn_c_check_func "$LINENO" "gethostname" "ac_cv_func_gethostname"
if test "x$ac_cv_func_gethostname" = xyes
then :
- printf "%s\n" "#define HAVE_GETHOSTNAME 1" >>confdefs.h
+ printf '%s\n' "#define HAVE_GETHOSTNAME 1" >>confdefs.h
fi
ac_fn_c_check_func "$LINENO" "getloadavg" "ac_cv_func_getloadavg"
if test "x$ac_cv_func_getloadavg" = xyes
then :
- printf "%s\n" "#define HAVE_GETLOADAVG 1" >>confdefs.h
+ printf '%s\n' "#define HAVE_GETLOADAVG 1" >>confdefs.h
fi
ac_fn_c_check_func "$LINENO" "getlogin" "ac_cv_func_getlogin"
if test "x$ac_cv_func_getlogin" = xyes
then :
- printf "%s\n" "#define HAVE_GETLOGIN 1" >>confdefs.h
+ printf '%s\n' "#define HAVE_GETLOGIN 1" >>confdefs.h
fi
ac_fn_c_check_func "$LINENO" "getprotobyname" "ac_cv_func_getprotobyname"
if test "x$ac_cv_func_getprotobyname" = xyes
then :
- printf "%s\n" "#define HAVE_GETPROTOBYNAME 1" >>confdefs.h
+ printf '%s\n' "#define HAVE_GETPROTOBYNAME 1" >>confdefs.h
fi
ac_fn_c_check_func "$LINENO" "getprotobynumber" "ac_cv_func_getprotobynumber"
if test "x$ac_cv_func_getprotobynumber" = xyes
then :
- printf "%s\n" "#define HAVE_GETPROTOBYNUMBER 1" >>confdefs.h
+ printf '%s\n' "#define HAVE_GETPROTOBYNUMBER 1" >>confdefs.h
fi
ac_fn_c_check_func "$LINENO" "getpwnam_r" "ac_cv_func_getpwnam_r"
if test "x$ac_cv_func_getpwnam_r" = xyes
then :
- printf "%s\n" "#define HAVE_GETPWNAM_R 1" >>confdefs.h
+ printf '%s\n' "#define HAVE_GETPWNAM_R 1" >>confdefs.h
fi
ac_fn_c_check_func "$LINENO" "getpwuid_r" "ac_cv_func_getpwuid_r"
if test "x$ac_cv_func_getpwuid_r" = xyes
then :
- printf "%s\n" "#define HAVE_GETPWUID_R 1" >>confdefs.h
+ printf '%s\n' "#define HAVE_GETPWUID_R 1" >>confdefs.h
fi
ac_fn_c_check_func "$LINENO" "getrusage" "ac_cv_func_getrusage"
if test "x$ac_cv_func_getrusage" = xyes
then :
- printf "%s\n" "#define HAVE_GETRUSAGE 1" >>confdefs.h
+ printf '%s\n' "#define HAVE_GETRUSAGE 1" >>confdefs.h
fi
ac_fn_c_check_func "$LINENO" "getservbyname" "ac_cv_func_getservbyname"
if test "x$ac_cv_func_getservbyname" = xyes
then :
- printf "%s\n" "#define HAVE_GETSERVBYNAME 1" >>confdefs.h
+ printf '%s\n' "#define HAVE_GETSERVBYNAME 1" >>confdefs.h
fi
ac_fn_c_check_func "$LINENO" "getservbyport" "ac_cv_func_getservbyport"
if test "x$ac_cv_func_getservbyport" = xyes
then :
- printf "%s\n" "#define HAVE_GETSERVBYPORT 1" >>confdefs.h
+ printf '%s\n' "#define HAVE_GETSERVBYPORT 1" >>confdefs.h
fi
ac_fn_c_check_func "$LINENO" "gettimeofday" "ac_cv_func_gettimeofday"
if test "x$ac_cv_func_gettimeofday" = xyes
then :
- printf "%s\n" "#define HAVE_GETTIMEOFDAY 1" >>confdefs.h
+ printf '%s\n' "#define HAVE_GETTIMEOFDAY 1" >>confdefs.h
fi
ac_fn_c_check_func "$LINENO" "getwd" "ac_cv_func_getwd"
if test "x$ac_cv_func_getwd" = xyes
then :
- printf "%s\n" "#define HAVE_GETWD 1" >>confdefs.h
+ printf '%s\n' "#define HAVE_GETWD 1" >>confdefs.h
fi
ac_fn_c_check_func "$LINENO" "glob" "ac_cv_func_glob"
if test "x$ac_cv_func_glob" = xyes
then :
- printf "%s\n" "#define HAVE_GLOB 1" >>confdefs.h
+ printf '%s\n' "#define HAVE_GLOB 1" >>confdefs.h
fi
ac_fn_c_check_func "$LINENO" "gmtime_r" "ac_cv_func_gmtime_r"
if test "x$ac_cv_func_gmtime_r" = xyes
then :
- printf "%s\n" "#define HAVE_GMTIME_R 1" >>confdefs.h
+ printf '%s\n' "#define HAVE_GMTIME_R 1" >>confdefs.h
fi
ac_fn_c_check_func "$LINENO" "lchown" "ac_cv_func_lchown"
if test "x$ac_cv_func_lchown" = xyes
then :
- printf "%s\n" "#define HAVE_LCHOWN 1" >>confdefs.h
+ printf '%s\n' "#define HAVE_LCHOWN 1" >>confdefs.h
fi
ac_fn_c_check_func "$LINENO" "localtime_r" "ac_cv_func_localtime_r"
if test "x$ac_cv_func_localtime_r" = xyes
then :
- printf "%s\n" "#define HAVE_LOCALTIME_R 1" >>confdefs.h
+ printf '%s\n' "#define HAVE_LOCALTIME_R 1" >>confdefs.h
fi
ac_fn_c_check_func "$LINENO" "memcntl" "ac_cv_func_memcntl"
if test "x$ac_cv_func_memcntl" = xyes
then :
- printf "%s\n" "#define HAVE_MEMCNTL 1" >>confdefs.h
+ printf '%s\n' "#define HAVE_MEMCNTL 1" >>confdefs.h
fi
ac_fn_c_check_func "$LINENO" "memfd_create" "ac_cv_func_memfd_create"
if test "x$ac_cv_func_memfd_create" = xyes
then :
- printf "%s\n" "#define HAVE_MEMFD_CREATE 1" >>confdefs.h
+ printf '%s\n' "#define HAVE_MEMFD_CREATE 1" >>confdefs.h
fi
ac_fn_c_check_func "$LINENO" "memmem" "ac_cv_func_memmem"
if test "x$ac_cv_func_memmem" = xyes
then :
- printf "%s\n" "#define HAVE_MEMMEM 1" >>confdefs.h
+ printf '%s\n' "#define HAVE_MEMMEM 1" >>confdefs.h
fi
ac_fn_c_check_func "$LINENO" "mempcpy" "ac_cv_func_mempcpy"
if test "x$ac_cv_func_mempcpy" = xyes
then :
- printf "%s\n" "#define HAVE_MEMPCPY 1" >>confdefs.h
+ printf '%s\n' "#define HAVE_MEMPCPY 1" >>confdefs.h
fi
ac_fn_c_check_func "$LINENO" "memrchr" "ac_cv_func_memrchr"
if test "x$ac_cv_func_memrchr" = xyes
then :
- printf "%s\n" "#define HAVE_MEMRCHR 1" >>confdefs.h
+ printf '%s\n' "#define HAVE_MEMRCHR 1" >>confdefs.h
fi
ac_fn_c_check_func "$LINENO" "mkstemp" "ac_cv_func_mkstemp"
if test "x$ac_cv_func_mkstemp" = xyes
then :
- printf "%s\n" "#define HAVE_MKSTEMP 1" >>confdefs.h
+ printf '%s\n' "#define HAVE_MKSTEMP 1" >>confdefs.h
fi
ac_fn_c_check_func "$LINENO" "mmap" "ac_cv_func_mmap"
if test "x$ac_cv_func_mmap" = xyes
then :
- printf "%s\n" "#define HAVE_MMAP 1" >>confdefs.h
+ printf '%s\n' "#define HAVE_MMAP 1" >>confdefs.h
fi
ac_fn_c_check_func "$LINENO" "nice" "ac_cv_func_nice"
if test "x$ac_cv_func_nice" = xyes
then :
- printf "%s\n" "#define HAVE_NICE 1" >>confdefs.h
+ printf '%s\n' "#define HAVE_NICE 1" >>confdefs.h
fi
ac_fn_c_check_func "$LINENO" "nl_langinfo" "ac_cv_func_nl_langinfo"
if test "x$ac_cv_func_nl_langinfo" = xyes
then :
- printf "%s\n" "#define HAVE_NL_LANGINFO 1" >>confdefs.h
+ printf '%s\n' "#define HAVE_NL_LANGINFO 1" >>confdefs.h
fi
ac_fn_c_check_func "$LINENO" "poll" "ac_cv_func_poll"
if test "x$ac_cv_func_poll" = xyes
then :
- printf "%s\n" "#define HAVE_POLL 1" >>confdefs.h
+ printf '%s\n' "#define HAVE_POLL 1" >>confdefs.h
fi
ac_fn_c_check_func "$LINENO" "pthread_jit_write_protect_np" "ac_cv_func_pthread_jit_write_protect_np"
if test "x$ac_cv_func_pthread_jit_write_protect_np" = xyes
then :
- printf "%s\n" "#define HAVE_PTHREAD_JIT_WRITE_PROTECT_NP 1" >>confdefs.h
+ printf '%s\n' "#define HAVE_PTHREAD_JIT_WRITE_PROTECT_NP 1" >>confdefs.h
fi
ac_fn_c_check_func "$LINENO" "putenv" "ac_cv_func_putenv"
if test "x$ac_cv_func_putenv" = xyes
then :
- printf "%s\n" "#define HAVE_PUTENV 1" >>confdefs.h
+ printf '%s\n' "#define HAVE_PUTENV 1" >>confdefs.h
fi
ac_fn_c_check_func "$LINENO" "scandir" "ac_cv_func_scandir"
if test "x$ac_cv_func_scandir" = xyes
then :
- printf "%s\n" "#define HAVE_SCANDIR 1" >>confdefs.h
+ printf '%s\n' "#define HAVE_SCANDIR 1" >>confdefs.h
fi
ac_fn_c_check_func "$LINENO" "setenv" "ac_cv_func_setenv"
if test "x$ac_cv_func_setenv" = xyes
then :
- printf "%s\n" "#define HAVE_SETENV 1" >>confdefs.h
+ printf '%s\n' "#define HAVE_SETENV 1" >>confdefs.h
fi
ac_fn_c_check_func "$LINENO" "setitimer" "ac_cv_func_setitimer"
if test "x$ac_cv_func_setitimer" = xyes
then :
- printf "%s\n" "#define HAVE_SETITIMER 1" >>confdefs.h
+ printf '%s\n' "#define HAVE_SETITIMER 1" >>confdefs.h
fi
ac_fn_c_check_func "$LINENO" "shutdown" "ac_cv_func_shutdown"
if test "x$ac_cv_func_shutdown" = xyes
then :
- printf "%s\n" "#define HAVE_SHUTDOWN 1" >>confdefs.h
+ printf '%s\n' "#define HAVE_SHUTDOWN 1" >>confdefs.h
fi
ac_fn_c_check_func "$LINENO" "sigprocmask" "ac_cv_func_sigprocmask"
if test "x$ac_cv_func_sigprocmask" = xyes
then :
- printf "%s\n" "#define HAVE_SIGPROCMASK 1" >>confdefs.h
+ printf '%s\n' "#define HAVE_SIGPROCMASK 1" >>confdefs.h
fi
ac_fn_c_check_func "$LINENO" "statfs" "ac_cv_func_statfs"
if test "x$ac_cv_func_statfs" = xyes
then :
- printf "%s\n" "#define HAVE_STATFS 1" >>confdefs.h
+ printf '%s\n' "#define HAVE_STATFS 1" >>confdefs.h
fi
ac_fn_c_check_func "$LINENO" "statvfs" "ac_cv_func_statvfs"
if test "x$ac_cv_func_statvfs" = xyes
then :
- printf "%s\n" "#define HAVE_STATVFS 1" >>confdefs.h
+ printf '%s\n' "#define HAVE_STATVFS 1" >>confdefs.h
fi
ac_fn_c_check_func "$LINENO" "std_syslog" "ac_cv_func_std_syslog"
if test "x$ac_cv_func_std_syslog" = xyes
then :
- printf "%s\n" "#define HAVE_STD_SYSLOG 1" >>confdefs.h
+ printf '%s\n' "#define HAVE_STD_SYSLOG 1" >>confdefs.h
fi
ac_fn_c_check_func "$LINENO" "strcasecmp" "ac_cv_func_strcasecmp"
if test "x$ac_cv_func_strcasecmp" = xyes
then :
- printf "%s\n" "#define HAVE_STRCASECMP 1" >>confdefs.h
+ printf '%s\n' "#define HAVE_STRCASECMP 1" >>confdefs.h
fi
ac_fn_c_check_func "$LINENO" "strnlen" "ac_cv_func_strnlen"
if test "x$ac_cv_func_strnlen" = xyes
then :
- printf "%s\n" "#define HAVE_STRNLEN 1" >>confdefs.h
+ printf '%s\n' "#define HAVE_STRNLEN 1" >>confdefs.h
fi
ac_fn_c_check_func "$LINENO" "strptime" "ac_cv_func_strptime"
if test "x$ac_cv_func_strptime" = xyes
then :
- printf "%s\n" "#define HAVE_STRPTIME 1" >>confdefs.h
+ printf '%s\n' "#define HAVE_STRPTIME 1" >>confdefs.h
fi
ac_fn_c_check_func "$LINENO" "strtok_r" "ac_cv_func_strtok_r"
if test "x$ac_cv_func_strtok_r" = xyes
then :
- printf "%s\n" "#define HAVE_STRTOK_R 1" >>confdefs.h
+ printf '%s\n' "#define HAVE_STRTOK_R 1" >>confdefs.h
fi
ac_fn_c_check_func "$LINENO" "symlink" "ac_cv_func_symlink"
if test "x$ac_cv_func_symlink" = xyes
then :
- printf "%s\n" "#define HAVE_SYMLINK 1" >>confdefs.h
+ printf '%s\n' "#define HAVE_SYMLINK 1" >>confdefs.h
fi
ac_fn_c_check_func "$LINENO" "tzset" "ac_cv_func_tzset"
if test "x$ac_cv_func_tzset" = xyes
then :
- printf "%s\n" "#define HAVE_TZSET 1" >>confdefs.h
+ printf '%s\n' "#define HAVE_TZSET 1" >>confdefs.h
fi
ac_fn_c_check_func "$LINENO" "unsetenv" "ac_cv_func_unsetenv"
if test "x$ac_cv_func_unsetenv" = xyes
then :
- printf "%s\n" "#define HAVE_UNSETENV 1" >>confdefs.h
+ printf '%s\n' "#define HAVE_UNSETENV 1" >>confdefs.h
fi
ac_fn_c_check_func "$LINENO" "usleep" "ac_cv_func_usleep"
if test "x$ac_cv_func_usleep" = xyes
then :
- printf "%s\n" "#define HAVE_USLEEP 1" >>confdefs.h
+ printf '%s\n' "#define HAVE_USLEEP 1" >>confdefs.h
fi
ac_fn_c_check_func "$LINENO" "utime" "ac_cv_func_utime"
if test "x$ac_cv_func_utime" = xyes
then :
- printf "%s\n" "#define HAVE_UTIME 1" >>confdefs.h
+ printf '%s\n' "#define HAVE_UTIME 1" >>confdefs.h
fi
ac_fn_c_check_func "$LINENO" "vasprintf" "ac_cv_func_vasprintf"
if test "x$ac_cv_func_vasprintf" = xyes
then :
- printf "%s\n" "#define HAVE_VASPRINTF 1" >>confdefs.h
+ printf '%s\n' "#define HAVE_VASPRINTF 1" >>confdefs.h
fi
@@ -16740,8 +16601,8 @@
then :
else case e in #(
- e) { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in '$ac_pwd':" >&5
-printf "%s\n" "$as_me: error: in '$ac_pwd':" >&2;}
+ e) { { printf '%s\n' "$as_me:${as_lineno-$LINENO}: error: in '$ac_pwd':" >&5
+printf '%s\n' "$as_me: error: in '$ac_pwd':" >&2;}
as_fn_error $? "Required inet_ntop not found.
See 'config.log' for more details" "$LINENO" 5; } ;;
esac
@@ -16752,15 +16613,15 @@
then :
else case e in #(
- e) { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in '$ac_pwd':" >&5
-printf "%s\n" "$as_me: error: in '$ac_pwd':" >&2;}
+ e) { { printf '%s\n' "$as_me:${as_lineno-$LINENO}: error: in '$ac_pwd':" >&5
+printf '%s\n' "$as_me: error: in '$ac_pwd':" >&2;}
as_fn_error $? "Required inet_pton not found.
See 'config.log' for more details" "$LINENO" 5; } ;;
esac
fi
-ac_fn_check_decl "$LINENO" "strerror_r" "ac_cv_have_decl_strerror_r" "$ac_includes_default" "$ac_c_undeclared_builtin_options" "CFLAGS"
+ac_fn_check_decl "$LINENO" "strerror_r" "ac_cv_have_decl_strerror_r" "$ac_includes_default" "$ac_c_undeclared_builtin_options$ac_c_future_darwin_options" "CFLAGS"
if test "x$ac_cv_have_decl_strerror_r" = xyes
then :
ac_have_decl=1
@@ -16768,7 +16629,7 @@
e) ac_have_decl=0 ;;
esac
fi
-printf "%s\n" "#define HAVE_DECL_STRERROR_R $ac_have_decl" >>confdefs.h
+printf '%s\n' "#define HAVE_DECL_STRERROR_R $ac_have_decl" >>confdefs.h
if test $ac_cv_have_decl_strerror_r = yes; then
@@ -16776,11 +16637,11 @@
# (We used to run AC_CHECK_FUNCS_ONCE for strerror_r, as well
# as AC_CHECK_DECLS_ONCE.)
-printf "%s\n" "#define HAVE_STRERROR_R 1" >>confdefs.h
+printf '%s\n' "#define HAVE_STRERROR_R 1" >>confdefs.h
fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether strerror_r returns char *" >&5
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking whether strerror_r returns char *" >&5
printf %s "checking whether strerror_r returns char *... " >&6; }
if test ${ac_cv_func_strerror_r_char_p+y}
then :
@@ -16815,11 +16676,11 @@
;;
esac
fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_func_strerror_r_char_p" >&5
-printf "%s\n" "$ac_cv_func_strerror_r_char_p" >&6; }
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $ac_cv_func_strerror_r_char_p" >&5
+printf '%s\n' "$ac_cv_func_strerror_r_char_p" >&6; }
if test $ac_cv_func_strerror_r_char_p = yes; then
-printf "%s\n" "#define STRERROR_R_CHAR_P 1" >>confdefs.h
+printf '%s\n' "#define STRERROR_R_CHAR_P 1" >>confdefs.h
fi
@@ -16830,7 +16691,7 @@
ac_fn_c_check_func "$LINENO" "prctl" "ac_cv_func_prctl"
if test "x$ac_cv_func_prctl" = xyes
then :
- printf "%s\n" "#define HAVE_PRCTL 1" >>confdefs.h
+ printf '%s\n' "#define HAVE_PRCTL 1" >>confdefs.h
fi
@@ -16842,7 +16703,7 @@
ac_fn_c_check_func "$LINENO" "procctl" "ac_cv_func_procctl"
if test "x$ac_cv_func_procctl" = xyes
then :
- printf "%s\n" "#define HAVE_PROCCTL 1" >>confdefs.h
+ printf '%s\n' "#define HAVE_PROCCTL 1" >>confdefs.h
fi
@@ -16857,7 +16718,7 @@
ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
ac_compiler_gnu=$ac_cv_c_compiler_gnu
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking how many arguments gethostbyname_r() takes" >&5
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking how many arguments gethostbyname_r() takes" >&5
printf %s "checking how many arguments gethostbyname_r() takes... " >&6; }
if test ${ac_cv_func_which_gethostbyname_r+y}
@@ -17005,44 +16866,44 @@
case "$ac_cv_func_which_gethostbyname_r" in
three|five|six)
-printf "%s\n" "#define HAVE_GETHOSTBYNAME_R 1" >>confdefs.h
+printf '%s\n' "#define HAVE_GETHOSTBYNAME_R 1" >>confdefs.h
;;
esac
case "$ac_cv_func_which_gethostbyname_r" in
three)
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: three" >&5
-printf "%s\n" "three" >&6; }
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: three" >&5
+printf '%s\n' "three" >&6; }
-printf "%s\n" "#define HAVE_FUNC_GETHOSTBYNAME_R_3 1" >>confdefs.h
+printf '%s\n' "#define HAVE_FUNC_GETHOSTBYNAME_R_3 1" >>confdefs.h
;;
five)
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: five" >&5
-printf "%s\n" "five" >&6; }
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: five" >&5
+printf '%s\n' "five" >&6; }
-printf "%s\n" "#define HAVE_FUNC_GETHOSTBYNAME_R_5 1" >>confdefs.h
+printf '%s\n' "#define HAVE_FUNC_GETHOSTBYNAME_R_5 1" >>confdefs.h
;;
six)
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: six" >&5
-printf "%s\n" "six" >&6; }
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: six" >&5
+printf '%s\n' "six" >&6; }
-printf "%s\n" "#define HAVE_FUNC_GETHOSTBYNAME_R_6 1" >>confdefs.h
+printf '%s\n' "#define HAVE_FUNC_GETHOSTBYNAME_R_6 1" >>confdefs.h
;;
no)
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: cannot find function declaration in netdb.h" >&5
-printf "%s\n" "cannot find function declaration in netdb.h" >&6; }
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: cannot find function declaration in netdb.h" >&5
+printf '%s\n' "cannot find function declaration in netdb.h" >&6; }
;;
unknown)
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: can't tell" >&5
-printf "%s\n" "can't tell" >&6; }
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: can't tell" >&5
+printf '%s\n' "can't tell" >&6; }
;;
*)
@@ -17065,10 +16926,10 @@
ac_fn_c_check_func "$LINENO" "nanosleep" "ac_cv_func_nanosleep"
if test "x$ac_cv_func_nanosleep" = xyes
then :
- printf "%s\n" "#define HAVE_NANOSLEEP 1" >>confdefs.h
+ printf '%s\n' "#define HAVE_NANOSLEEP 1" >>confdefs.h
else case e in #(
- e) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for library containing nanosleep" >&5
+ e) { printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for library containing nanosleep" >&5
printf %s "checking for library containing nanosleep... " >&6; }
if test ${ac_cv_search_nanosleep+y}
then :
@@ -17126,13 +16987,13 @@
LIBS=$ac_func_search_save_LIBS ;;
esac
fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_nanosleep" >&5
-printf "%s\n" "$ac_cv_search_nanosleep" >&6; }
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_nanosleep" >&5
+printf '%s\n' "$ac_cv_search_nanosleep" >&6; }
ac_res=$ac_cv_search_nanosleep
if test "$ac_res" != no
then :
test "$ac_res" = "none required" || LIBS="$ac_res $LIBS"
- printf "%s\n" "#define HAVE_NANOSLEEP 1" >>confdefs.h
+ printf '%s\n' "#define HAVE_NANOSLEEP 1" >>confdefs.h
fi
;;
@@ -17141,7 +17002,7 @@
done
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for getaddrinfo" >&5
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for getaddrinfo" >&5
printf %s "checking for getaddrinfo... " >&6; }
if test ${php_cv_func_getaddrinfo+y}
then :
@@ -17231,16 +17092,16 @@
conftest$ac_exeext conftest.$ac_ext ;;
esac
fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $php_cv_func_getaddrinfo" >&5
-printf "%s\n" "$php_cv_func_getaddrinfo" >&6; }
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $php_cv_func_getaddrinfo" >&5
+printf '%s\n' "$php_cv_func_getaddrinfo" >&6; }
if test "x$php_cv_func_getaddrinfo" = xyes
then :
-printf "%s\n" "#define HAVE_GETADDRINFO 1" >>confdefs.h
+printf '%s\n' "#define HAVE_GETADDRINFO 1" >>confdefs.h
fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for copy_file_range" >&5
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for copy_file_range" >&5
printf %s "checking for copy_file_range... " >&6; }
if test ${php_cv_func_copy_file_range+y}
then :
@@ -17278,19 +17139,19 @@
;;
esac
fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $php_cv_func_copy_file_range" >&5
-printf "%s\n" "$php_cv_func_copy_file_range" >&6; }
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $php_cv_func_copy_file_range" >&5
+printf '%s\n' "$php_cv_func_copy_file_range" >&6; }
if test "x$php_cv_func_copy_file_range" = xyes
then :
-printf "%s\n" "#define HAVE_COPY_FILE_RANGE 1" >>confdefs.h
+printf '%s\n' "#define HAVE_COPY_FILE_RANGE 1" >>confdefs.h
fi
ac_fn_c_check_func "$LINENO" "strlcat" "ac_cv_func_strlcat"
if test "x$ac_cv_func_strlcat" = xyes
then :
- printf "%s\n" "#define HAVE_STRLCAT 1" >>confdefs.h
+ printf '%s\n' "#define HAVE_STRLCAT 1" >>confdefs.h
else case e in #(
e) case " $LIBOBJS " in
@@ -17304,7 +17165,7 @@
ac_fn_c_check_func "$LINENO" "strlcpy" "ac_cv_func_strlcpy"
if test "x$ac_cv_func_strlcpy" = xyes
then :
- printf "%s\n" "#define HAVE_STRLCPY 1" >>confdefs.h
+ printf '%s\n' "#define HAVE_STRLCPY 1" >>confdefs.h
else case e in #(
e) case " $LIBOBJS " in
@@ -17318,7 +17179,7 @@
ac_fn_c_check_func "$LINENO" "explicit_bzero" "ac_cv_func_explicit_bzero"
if test "x$ac_cv_func_explicit_bzero" = xyes
then :
- printf "%s\n" "#define HAVE_EXPLICIT_BZERO 1" >>confdefs.h
+ printf '%s\n' "#define HAVE_EXPLICIT_BZERO 1" >>confdefs.h
else case e in #(
e) case " $LIBOBJS " in
@@ -17332,7 +17193,7 @@
ac_fn_c_check_func "$LINENO" "getopt" "ac_cv_func_getopt"
if test "x$ac_cv_func_getopt" = xyes
then :
- printf "%s\n" "#define HAVE_GETOPT 1" >>confdefs.h
+ printf '%s\n' "#define HAVE_GETOPT 1" >>confdefs.h
else case e in #(
e) case " $LIBOBJS " in
@@ -17350,14 +17211,14 @@
else case e in #(
e)
-printf "%s\n" "#define size_t unsigned int" >>confdefs.h
+printf '%s\n' "#define size_t unsigned int" >>confdefs.h
;;
esac
fi
# The Ultrix 4.2 mips builtin alloca declared by alloca.h only works
# for constant arguments. Useless!
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for working alloca.h" >&5
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for working alloca.h" >&5
printf %s "checking for working alloca.h... " >&6; }
if test ${ac_cv_working_alloca_h+y}
then :
@@ -17386,15 +17247,15 @@
conftest$ac_exeext conftest.$ac_ext ;;
esac
fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_working_alloca_h" >&5
-printf "%s\n" "$ac_cv_working_alloca_h" >&6; }
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $ac_cv_working_alloca_h" >&5
+printf '%s\n' "$ac_cv_working_alloca_h" >&6; }
if test $ac_cv_working_alloca_h = yes; then
-printf "%s\n" "#define HAVE_ALLOCA_H 1" >>confdefs.h
+printf '%s\n' "#define HAVE_ALLOCA_H 1" >>confdefs.h
fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for alloca" >&5
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for alloca" >&5
printf %s "checking for alloca... " >&6; }
if test ${ac_cv_func_alloca_works+y}
then :
@@ -17439,12 +17300,12 @@
fi ;;
esac
fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_func_alloca_works" >&5
-printf "%s\n" "$ac_cv_func_alloca_works" >&6; }
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $ac_cv_func_alloca_works" >&5
+printf '%s\n' "$ac_cv_func_alloca_works" >&6; }
if test $ac_cv_func_alloca_works = yes; then
-printf "%s\n" "#define HAVE_ALLOCA 1" >>confdefs.h
+printf '%s\n' "#define HAVE_ALLOCA 1" >>confdefs.h
else
# The SVR3 libPW and SVR4 libucb both contain incompatible functions
@@ -17454,10 +17315,10 @@
ALLOCA=\${LIBOBJDIR}alloca.$ac_objext
-printf "%s\n" "#define C_ALLOCA 1" >>confdefs.h
+printf '%s\n' "#define C_ALLOCA 1" >>confdefs.h
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking stack direction for C alloca" >&5
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking stack direction for C alloca" >&5
printf %s "checking stack direction for C alloca... " >&6; }
if test ${ac_cv_c_stack_direction+y}
then :
@@ -17501,14 +17362,14 @@
;;
esac
fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_stack_direction" >&5
-printf "%s\n" "$ac_cv_c_stack_direction" >&6; }
-printf "%s\n" "#define STACK_DIRECTION $ac_cv_c_stack_direction" >>confdefs.h
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_stack_direction" >&5
+printf '%s\n' "$ac_cv_c_stack_direction" >&6; }
+printf '%s\n' "#define STACK_DIRECTION $ac_cv_c_stack_direction" >>confdefs.h
fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for type of reentrant time-related functions" >&5
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for type of reentrant time-related functions" >&5
printf %s "checking for type of reentrant time-related functions... " >&6; }
if test ${php_cv_time_r_type+y}
then :
@@ -17582,23 +17443,23 @@
;;
esac
fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $php_cv_time_r_type" >&5
-printf "%s\n" "$php_cv_time_r_type" >&6; }
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $php_cv_time_r_type" >&5
+printf '%s\n' "$php_cv_time_r_type" >&6; }
case $php_cv_time_r_type in #(
hpux) :
-printf "%s\n" "#define PHP_HPUX_TIME_R 1" >>confdefs.h
+printf '%s\n' "#define PHP_HPUX_TIME_R 1" >>confdefs.h
;; #(
irix) :
-printf "%s\n" "#define PHP_IRIX_TIME_R 1" >>confdefs.h
+printf '%s\n' "#define PHP_IRIX_TIME_R 1" >>confdefs.h
;; #(
*) :
;;
esac
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for aarch64 CRC32 API" >&5
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for aarch64 CRC32 API" >&5
printf %s "checking for aarch64 CRC32 API... " >&6; }
if test ${php_cv_func___crc32d+y}
then :
@@ -17638,16 +17499,16 @@
conftest$ac_exeext conftest.$ac_ext ;;
esac
fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $php_cv_func___crc32d" >&5
-printf "%s\n" "$php_cv_func___crc32d" >&6; }
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $php_cv_func___crc32d" >&5
+printf '%s\n' "$php_cv_func___crc32d" >&6; }
if test "x$php_cv_func___crc32d" = xyes
then :
-printf "%s\n" "#define HAVE_AARCH64_CRC32 1" >>confdefs.h
+printf '%s\n' "#define HAVE_AARCH64_CRC32 1" >>confdefs.h
fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for asm goto" >&5
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for asm goto" >&5
printf %s "checking for asm goto... " >&6; }
if test ${php_cv_have__asm_goto+y}
then :
@@ -17683,19 +17544,19 @@
conftest$ac_exeext conftest.$ac_ext ;;
esac
fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $php_cv_have__asm_goto" >&5
-printf "%s\n" "$php_cv_have__asm_goto" >&6; }
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $php_cv_have__asm_goto" >&5
+printf '%s\n' "$php_cv_have__asm_goto" >&6; }
if test "x$php_cv_have__asm_goto" = xyes
then :
-printf "%s\n" "#define HAVE_ASM_GOTO 1" >>confdefs.h
+printf '%s\n' "#define HAVE_ASM_GOTO 1" >>confdefs.h
fi
php_with_valgrind=no
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether to enable Valgrind support" >&5
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking whether to enable Valgrind support" >&5
printf %s "checking whether to enable Valgrind support... " >&6; }
# Check whether --with-valgrind was given.
@@ -17712,8 +17573,8 @@
ext_output=$PHP_VALGRIND
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ext_output" >&5
-printf "%s\n" "$ext_output" >&6; }
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $ext_output" >&5
+printf '%s\n' "$ext_output" >&6; }
@@ -17725,17 +17586,17 @@
e)
pkg_failed=no
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for valgrind" >&5
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for valgrind" >&5
printf %s "checking for valgrind... " >&6; }
if test -n "$VALGRIND_CFLAGS"; then
pkg_cv_VALGRIND_CFLAGS="$VALGRIND_CFLAGS"
elif test -n "$PKG_CONFIG"; then
if test -n "$PKG_CONFIG" && \
- { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"valgrind\""; } >&5
+ { { printf '%s\n' "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"valgrind\""; } >&5
($PKG_CONFIG --exists --print-errors "valgrind") 2>&5
ac_status=$?
- printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ printf '%s\n' "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
test $ac_status = 0; }; then
pkg_cv_VALGRIND_CFLAGS=`$PKG_CONFIG --cflags "valgrind" 2>/dev/null`
test "x$?" != "x0" && pkg_failed=yes
@@ -17749,10 +17610,10 @@
pkg_cv_VALGRIND_LIBS="$VALGRIND_LIBS"
elif test -n "$PKG_CONFIG"; then
if test -n "$PKG_CONFIG" && \
- { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"valgrind\""; } >&5
+ { { printf '%s\n' "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"valgrind\""; } >&5
($PKG_CONFIG --exists --print-errors "valgrind") 2>&5
ac_status=$?
- printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ printf '%s\n' "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
test $ac_status = 0; }; then
pkg_cv_VALGRIND_LIBS=`$PKG_CONFIG --libs "valgrind" 2>/dev/null`
test "x$?" != "x0" && pkg_failed=yes
@@ -17766,8 +17627,8 @@
if test $pkg_failed = yes; then
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
-printf "%s\n" "no" >&6; }
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf '%s\n' "no" >&6; }
if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then
_pkg_short_errors_supported=yes
@@ -17793,10 +17654,10 @@
and VALGRIND_LIBS to avoid the need to call pkg-config.
See the pkg-config man page for more details." "$LINENO" 5
elif test $pkg_failed = untried; then
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
-printf "%s\n" "no" >&6; }
- { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in '$ac_pwd':" >&5
-printf "%s\n" "$as_me: error: in '$ac_pwd':" >&2;}
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf '%s\n' "no" >&6; }
+ { { printf '%s\n' "$as_me:${as_lineno-$LINENO}: error: in '$ac_pwd':" >&5
+printf '%s\n' "$as_me: error: in '$ac_pwd':" >&2;}
as_fn_error $? "The pkg-config script could not be found or is too old. Make sure it
is in your PATH or set the PKG_CONFIG environment variable to the full
path to pkg-config.
@@ -17810,8 +17671,8 @@
else
VALGRIND_CFLAGS=$pkg_cv_VALGRIND_CFLAGS
VALGRIND_LIBS=$pkg_cv_VALGRIND_LIBS
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-printf "%s\n" "yes" >&6; }
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+printf '%s\n' "yes" >&6; }
for ac_i in $VALGRIND_CFLAGS; do
case $ac_i in
@@ -17856,7 +17717,7 @@
done
-printf "%s\n" "#define HAVE_VALGRIND 1" >>confdefs.h
+printf '%s\n' "#define HAVE_VALGRIND 1" >>confdefs.h
fi
save_CFLAGS=$CFLAGS
@@ -17864,7 +17725,7 @@
ac_fn_c_check_header_compile "$LINENO" "valgrind/cachegrind.h" "ac_cv_header_valgrind_cachegrind_h" "$ac_includes_default"
if test "x$ac_cv_header_valgrind_cachegrind_h" = xyes
then :
- printf "%s\n" "#define HAVE_VALGRIND_CACHEGRIND_H 1" >>confdefs.h
+ printf '%s\n' "#define HAVE_VALGRIND_CACHEGRIND_H 1" >>confdefs.h
fi
@@ -17874,10 +17735,10 @@
fi
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: " >&5
-printf "%s\n" "" >&6; }
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: ${T_MD}General settings${T_ME}" >&5
-printf "%s\n" "${T_MD}General settings${T_ME}" >&6; }
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: " >&5
+printf '%s\n' "" >&6; }
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: ${T_MD}General settings${T_ME}" >&5
+printf '%s\n' "${T_MD}General settings${T_ME}" >&6; }
# Check whether --enable- was given.
@@ -17890,7 +17751,7 @@
php_enable_gcov=no
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether to include gcov symbols" >&5
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking whether to include gcov symbols" >&5
printf %s "checking whether to include gcov symbols... " >&6; }
# Check whether --enable-gcov was given.
if test ${enable_gcov+y}
@@ -17906,8 +17767,8 @@
ext_output=$PHP_GCOV
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ext_output" >&5
-printf "%s\n" "$ext_output" >&6; }
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $ext_output" >&5
+printf '%s\n' "$ext_output" >&6; }
@@ -17936,7 +17797,7 @@
fi
-printf "%s\n" "#define HAVE_GCOV 1" >>confdefs.h
+printf '%s\n' "#define HAVE_GCOV 1" >>confdefs.h
src=$abs_srcdir/build/Makefile.gcov
ac_srcdir=$abs_srcdir
@@ -17958,7 +17819,7 @@
php_enable_debug=no
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether to include debugging symbols" >&5
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking whether to include debugging symbols" >&5
printf %s "checking whether to include debugging symbols... " >&6; }
# Check whether --enable-debug was given.
if test ${enable_debug+y}
@@ -17974,8 +17835,8 @@
ext_output=$PHP_DEBUG
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ext_output" >&5
-printf "%s\n" "$ext_output" >&6; }
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $ext_output" >&5
+printf '%s\n' "$ext_output" >&6; }
@@ -18015,7 +17876,7 @@
php_enable_debug_assertions=no
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether to enable debug assertions in release mode" >&5
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking whether to enable debug assertions in release mode" >&5
printf %s "checking whether to enable debug assertions in release mode... " >&6; }
# Check whether --enable-debug-assertions was given.
if test ${enable_debug_assertions+y}
@@ -18031,8 +17892,8 @@
ext_output=$PHP_DEBUG_ASSERTIONS
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ext_output" >&5
-printf "%s\n" "$ext_output" >&6; }
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $ext_output" >&5
+printf '%s\n' "$ext_output" >&6; }
@@ -18070,25 +17931,25 @@
then :
else case e in #(
- e) { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in '$ac_pwd':" >&5
-printf "%s\n" "$as_me: error: in '$ac_pwd':" >&2;}
+ e) { { printf '%s\n' "$as_me:${as_lineno-$LINENO}: error: in '$ac_pwd':" >&5
+printf '%s\n' "$as_me: error: in '$ac_pwd':" >&2;}
as_fn_error $? "Unable to verify system support for POSIX Threads, which are required for PHP
thread safety (ZTS) build.
See 'config.log' for more details" "$LINENO" 5; } ;;
esac
fi
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for POSIX threads" >&5
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for POSIX threads" >&5
printf %s "checking for POSIX threads... " >&6; }
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-printf "%s\n" "yes" >&6; }
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+printf '%s\n' "yes" >&6; }
fi
php_enable_rtld_now=no
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether to dlopen extensions with RTLD_NOW instead of RTLD_LAZY" >&5
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking whether to dlopen extensions with RTLD_NOW instead of RTLD_LAZY" >&5
printf %s "checking whether to dlopen extensions with RTLD_NOW instead of RTLD_LAZY... " >&6; }
# Check whether --enable-rtld-now was given.
if test ${enable_rtld_now+y}
@@ -18104,8 +17965,8 @@
ext_output=$PHP_RTLD_NOW
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ext_output" >&5
-printf "%s\n" "$ext_output" >&6; }
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $ext_output" >&5
+printf '%s\n' "$ext_output" >&6; }
@@ -18113,14 +17974,14 @@
if test "x$PHP_RTLD_NOW" = xyes
then :
-printf "%s\n" "#define PHP_USE_RTLD_NOW 1" >>confdefs.h
+printf '%s\n' "#define PHP_USE_RTLD_NOW 1" >>confdefs.h
fi
php_with_layout=PHP
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking layout of installed files" >&5
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking layout of installed files" >&5
printf %s "checking layout of installed files... " >&6; }
# Check whether --with-layout was given.
@@ -18137,8 +17998,8 @@
ext_output=$PHP_LAYOUT
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ext_output" >&5
-printf "%s\n" "$ext_output" >&6; }
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $ext_output" >&5
+printf '%s\n' "$ext_output" >&6; }
@@ -18153,7 +18014,7 @@
php_with_config_file_path=DEFAULT
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking path to configuration file" >&5
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking path to configuration file" >&5
printf %s "checking path to configuration file... " >&6; }
# Check whether --with-config-file-path was given.
@@ -18170,8 +18031,8 @@
ext_output=$PHP_CONFIG_FILE_PATH
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ext_output" >&5
-printf "%s\n" "$ext_output" >&6; }
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $ext_output" >&5
+printf '%s\n' "$ext_output" >&6; }
@@ -18186,7 +18047,7 @@
esac
fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking where to scan for configuration files" >&5
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking where to scan for configuration files" >&5
printf %s "checking where to scan for configuration files... " >&6; }
php_with_config_file_scan_dir=DEFAULT
@@ -18216,13 +18077,13 @@
then :
PHP_CONFIG_FILE_SCAN_DIR=
fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $PHP_CONFIG_FILE_SCAN_DIR" >&5
-printf "%s\n" "$PHP_CONFIG_FILE_SCAN_DIR" >&6; }
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $PHP_CONFIG_FILE_SCAN_DIR" >&5
+printf '%s\n' "$PHP_CONFIG_FILE_SCAN_DIR" >&6; }
php_enable_sigchild=no
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether to enable PHP's own SIGCHLD handler" >&5
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking whether to enable PHP's own SIGCHLD handler" >&5
printf %s "checking whether to enable PHP's own SIGCHLD handler... " >&6; }
# Check whether --enable-sigchild was given.
if test ${enable_sigchild+y}
@@ -18238,8 +18099,8 @@
ext_output=$PHP_SIGCHILD
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ext_output" >&5
-printf "%s\n" "$ext_output" >&6; }
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $ext_output" >&5
+printf '%s\n' "$ext_output" >&6; }
@@ -18247,10 +18108,10 @@
if test "x$PHP_SIGCHILD" = xyes
then :
- printf "%s\n" "#define PHP_SIGCHILD 1" >>confdefs.h
+ printf '%s\n' "#define PHP_SIGCHILD 1" >>confdefs.h
else case e in #(
- e) printf "%s\n" "#define PHP_SIGCHILD 0" >>confdefs.h
+ e) printf '%s\n' "#define PHP_SIGCHILD 0" >>confdefs.h
;;
esac
fi
@@ -18258,7 +18119,7 @@
php_enable_libgcc=no
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether to explicitly link against libgcc" >&5
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking whether to explicitly link against libgcc" >&5
printf %s "checking whether to explicitly link against libgcc... " >&6; }
# Check whether --enable-libgcc was given.
if test ${enable_libgcc+y}
@@ -18274,8 +18135,8 @@
ext_output=$PHP_LIBGCC
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ext_output" >&5
-printf "%s\n" "$ext_output" >&6; }
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $ext_output" >&5
+printf '%s\n' "$ext_output" >&6; }
@@ -18345,7 +18206,7 @@
php_enable_short_tags=yes
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether to enable short tags by default" >&5
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking whether to enable short tags by default" >&5
printf %s "checking whether to enable short tags by default... " >&6; }
# Check whether --enable-short-tags was given.
if test ${enable_short_tags+y}
@@ -18361,8 +18222,8 @@
ext_output=$PHP_SHORT_TAGS
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ext_output" >&5
-printf "%s\n" "$ext_output" >&6; }
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $ext_output" >&5
+printf '%s\n' "$ext_output" >&6; }
@@ -18370,10 +18231,10 @@
if test "x$PHP_SHORT_TAGS" = xyes
then :
- printf "%s\n" "#define DEFAULT_SHORT_OPEN_TAG \"1\"" >>confdefs.h
+ printf '%s\n' "#define DEFAULT_SHORT_OPEN_TAG \"1\"" >>confdefs.h
else case e in #(
- e) printf "%s\n" "#define DEFAULT_SHORT_OPEN_TAG \"0\"" >>confdefs.h
+ e) printf '%s\n' "#define DEFAULT_SHORT_OPEN_TAG \"0\"" >>confdefs.h
;;
esac
fi
@@ -18381,7 +18242,7 @@
php_enable_dmalloc=no
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether to enable dmalloc" >&5
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking whether to enable dmalloc" >&5
printf %s "checking whether to enable dmalloc... " >&6; }
# Check whether --enable-dmalloc was given.
if test ${enable_dmalloc+y}
@@ -18397,15 +18258,15 @@
ext_output=$PHP_DMALLOC
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ext_output" >&5
-printf "%s\n" "$ext_output" >&6; }
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $ext_output" >&5
+printf '%s\n' "$ext_output" >&6; }
if test "x$PHP_DMALLOC" = xyes
then :
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for dmalloc_error in -ldmalloc" >&5
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for dmalloc_error in -ldmalloc" >&5
printf %s "checking for dmalloc_error in -ldmalloc... " >&6; }
if test ${ac_cv_lib_dmalloc_dmalloc_error+y}
then :
@@ -18446,8 +18307,8 @@
LIBS=$ac_check_lib_save_LIBS ;;
esac
fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dmalloc_dmalloc_error" >&5
-printf "%s\n" "$ac_cv_lib_dmalloc_dmalloc_error" >&6; }
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dmalloc_dmalloc_error" >&5
+printf '%s\n' "$ac_cv_lib_dmalloc_dmalloc_error" >&6; }
if test "x$ac_cv_lib_dmalloc_dmalloc_error" = xyes
then :
@@ -18461,12 +18322,12 @@
-printf "%s\n" "#define HAVE_DMALLOC 1" >>confdefs.h
+printf '%s\n' "#define HAVE_DMALLOC 1" >>confdefs.h
as_fn_append CPPFLAGS " -DDMALLOC_FUNC_CHECK"
else case e in #(
- e) { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in '$ac_pwd':" >&5
-printf "%s\n" "$as_me: error: in '$ac_pwd':" >&2;}
+ e) { { printf '%s\n' "$as_me:${as_lineno-$LINENO}: error: in '$ac_pwd':" >&5
+printf '%s\n' "$as_me: error: in '$ac_pwd':" >&2;}
as_fn_error $? "The dmalloc check failed. Cannot enable dmalloc.
See 'config.log' for more details" "$LINENO" 5; } ;;
esac
@@ -18477,7 +18338,7 @@
php_enable_ipv6=yes
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether to enable IPv6 support" >&5
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking whether to enable IPv6 support" >&5
printf %s "checking whether to enable IPv6 support... " >&6; }
# Check whether --enable-ipv6 was given.
if test ${enable_ipv6+y}
@@ -18493,15 +18354,15 @@
ext_output=$PHP_IPV6
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ext_output" >&5
-printf "%s\n" "$ext_output" >&6; }
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $ext_output" >&5
+printf '%s\n' "$ext_output" >&6; }
if test "x$PHP_IPV6" = xyes
then :
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for IPv6 support" >&5
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for IPv6 support" >&5
printf %s "checking for IPv6 support... " >&6; }
if test ${php_cv_have_ipv6+y}
then :
@@ -18540,21 +18401,21 @@
conftest$ac_exeext conftest.$ac_ext ;;
esac
fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $php_cv_have_ipv6" >&5
-printf "%s\n" "$php_cv_have_ipv6" >&6; }
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $php_cv_have_ipv6" >&5
+printf '%s\n' "$php_cv_have_ipv6" >&6; }
fi
if test "x$php_cv_have_ipv6" = xyes
then :
-printf "%s\n" "#define HAVE_IPV6 1" >>confdefs.h
+printf '%s\n' "#define HAVE_IPV6 1" >>confdefs.h
fi
php_enable_dtrace=no
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether to enable DTrace support" >&5
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking whether to enable DTrace support" >&5
printf %s "checking whether to enable DTrace support... " >&6; }
# Check whether --enable-dtrace was given.
if test ${enable_dtrace+y}
@@ -18570,8 +18431,8 @@
ext_output=$PHP_DTRACE
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ext_output" >&5
-printf "%s\n" "$ext_output" >&6; }
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $ext_output" >&5
+printf '%s\n' "$ext_output" >&6; }
@@ -18584,8 +18445,8 @@
then :
else case e in #(
- e) { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in '$ac_pwd':" >&5
-printf "%s\n" "$as_me: error: in '$ac_pwd':" >&2;}
+ e) { { printf '%s\n' "$as_me:${as_lineno-$LINENO}: error: in '$ac_pwd':" >&5
+printf '%s\n' "$as_me: error: in '$ac_pwd':" >&2;}
as_fn_error $? "Cannot find required to enable DTrace support.
See 'config.log' for more details" "$LINENO" 5; } ;;
esac
@@ -18693,12 +18554,12 @@
-printf "%s\n" "#define HAVE_DTRACE 1" >>confdefs.h
+printf '%s\n' "#define HAVE_DTRACE 1" >>confdefs.h
fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking how big to make fd sets" >&5
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking how big to make fd sets" >&5
printf %s "checking how big to make fd sets... " >&6; }
php_enable_fd_setsize=no
@@ -18725,14 +18586,14 @@
if test "x$PHP_FD_SETSIZE" = xno
then :
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: using system default" >&5
-printf "%s\n" "using system default" >&6; }
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: using system default" >&5
+printf '%s\n' "using system default" >&6; }
else case e in #(
e)
if test "0$PHP_FD_SETSIZE" -gt 0 2>/dev/null; then
CPPFLAGS="$CPPFLAGS -DFD_SETSIZE=$PHP_FD_SETSIZE"
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: using $PHP_FD_SETSIZE" >&5
-printf "%s\n" "using $PHP_FD_SETSIZE" >&6; }
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: using $PHP_FD_SETSIZE" >&5
+printf '%s\n' "using $PHP_FD_SETSIZE" >&6; }
else
as_fn_error $? "Invalid value passed to --enable-fd-setsize!" "$LINENO" 5
fi
@@ -18838,10 +18699,10 @@
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: " >&5
-printf "%s\n" "" >&6; }
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: ${T_MD}Configuring extensions${T_ME}" >&5
-printf "%s\n" "${T_MD}Configuring extensions${T_ME}" >&6; }
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: " >&5
+printf '%s\n' "" >&6; }
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: ${T_MD}Configuring extensions${T_ME}" >&5
+printf '%s\n' "${T_MD}Configuring extensions${T_ME}" >&6; }
# Check whether --enable-all was given.
@@ -18857,7 +18718,7 @@
ac_fn_c_check_header_compile "$LINENO" "io.h" "ac_cv_header_io_h" "$ac_includes_default"
if test "x$ac_cv_header_io_h" = xyes
then :
- printf "%s\n" "#define HAVE_IO_H 1" >>confdefs.h
+ printf '%s\n' "#define HAVE_IO_H 1" >>confdefs.h
fi
@@ -18865,18 +18726,18 @@
ac_fn_c_check_func "$LINENO" "strtoll" "ac_cv_func_strtoll"
if test "x$ac_cv_func_strtoll" = xyes
then :
- printf "%s\n" "#define HAVE_STRTOLL 1" >>confdefs.h
+ printf '%s\n' "#define HAVE_STRTOLL 1" >>confdefs.h
fi
ac_fn_c_check_func "$LINENO" "atoll" "ac_cv_func_atoll"
if test "x$ac_cv_func_atoll" = xyes
then :
- printf "%s\n" "#define HAVE_ATOLL 1" >>confdefs.h
+ printf '%s\n' "#define HAVE_ATOLL 1" >>confdefs.h
fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether the C compiler accepts -Wno-implicit-fallthrough" >&5
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking whether the C compiler accepts -Wno-implicit-fallthrough" >&5
printf %s "checking whether the C compiler accepts -Wno-implicit-fallthrough... " >&6; }
if test ${ax_cv_check_cflags__Werror__Wno_implicit_fallthrough+y}
then :
@@ -18907,8 +18768,8 @@
CFLAGS=$ax_check_save_flags ;;
esac
fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ax_cv_check_cflags__Werror__Wno_implicit_fallthrough" >&5
-printf "%s\n" "$ax_cv_check_cflags__Werror__Wno_implicit_fallthrough" >&6; }
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $ax_cv_check_cflags__Werror__Wno_implicit_fallthrough" >&5
+printf '%s\n' "$ax_cv_check_cflags__Werror__Wno_implicit_fallthrough" >&6; }
if test "x$ax_cv_check_cflags__Werror__Wno_implicit_fallthrough" = xyes
then :
PHP_DATE_CFLAGS="$PHP_DATE_CFLAGS -Wno-implicit-fallthrough"
@@ -18920,7 +18781,7 @@
PHP_DATE_CFLAGS="$PHP_DATE_CFLAGS -I@ext_builddir@/lib -DZEND_ENABLE_STATIC_TSRMLS_CACHE=1 -DHAVE_TIMELIB_CONFIG_H=1"
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether the C compiler accepts -fwrapv" >&5
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking whether the C compiler accepts -fwrapv" >&5
printf %s "checking whether the C compiler accepts -fwrapv... " >&6; }
if test ${ax_cv_check_cflags___fwrapv+y}
then :
@@ -18951,8 +18812,8 @@
CFLAGS=$ax_check_save_flags ;;
esac
fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ax_cv_check_cflags___fwrapv" >&5
-printf "%s\n" "$ax_cv_check_cflags___fwrapv" >&6; }
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $ax_cv_check_cflags___fwrapv" >&5
+printf '%s\n' "$ax_cv_check_cflags___fwrapv" >&6; }
if test "x$ax_cv_check_cflags___fwrapv" = xyes
then :
PHP_DATE_CFLAGS="$PHP_DATE_CFLAGS -fwrapv"
@@ -19100,7 +18961,7 @@
EOF
-printf "%s\n" "#define COMPILE_DL_DATE 1" >>confdefs.h
+printf '%s\n' "#define COMPILE_DL_DATE 1" >>confdefs.h
fi
fi
@@ -19308,7 +19169,7 @@
-printf "%s\n" "#define HAVE_TIMELIB_CONFIG_H 1" >>confdefs.h
+printf '%s\n' "#define HAVE_TIMELIB_CONFIG_H 1" >>confdefs.h
cat > $ext_builddir/lib/timelib_config.h <&5
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking whether to build with LIBXML support" >&5
printf %s "checking whether to build with LIBXML support... " >&6; }
# Check whether --with-libxml was given.
@@ -19374,8 +19235,8 @@
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ext_output" >&5
-printf "%s\n" "$ext_output" >&6; }
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $ext_output" >&5
+printf '%s\n' "$ext_output" >&6; }
@@ -19386,17 +19247,17 @@
pkg_failed=no
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for libxml-2.0 >= 2.9.4" >&5
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for libxml-2.0 >= 2.9.4" >&5
printf %s "checking for libxml-2.0 >= 2.9.4... " >&6; }
if test -n "$LIBXML_CFLAGS"; then
pkg_cv_LIBXML_CFLAGS="$LIBXML_CFLAGS"
elif test -n "$PKG_CONFIG"; then
if test -n "$PKG_CONFIG" && \
- { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libxml-2.0 >= 2.9.4\""; } >&5
+ { { printf '%s\n' "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libxml-2.0 >= 2.9.4\""; } >&5
($PKG_CONFIG --exists --print-errors "libxml-2.0 >= 2.9.4") 2>&5
ac_status=$?
- printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ printf '%s\n' "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
test $ac_status = 0; }; then
pkg_cv_LIBXML_CFLAGS=`$PKG_CONFIG --cflags "libxml-2.0 >= 2.9.4" 2>/dev/null`
test "x$?" != "x0" && pkg_failed=yes
@@ -19410,10 +19271,10 @@
pkg_cv_LIBXML_LIBS="$LIBXML_LIBS"
elif test -n "$PKG_CONFIG"; then
if test -n "$PKG_CONFIG" && \
- { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libxml-2.0 >= 2.9.4\""; } >&5
+ { { printf '%s\n' "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libxml-2.0 >= 2.9.4\""; } >&5
($PKG_CONFIG --exists --print-errors "libxml-2.0 >= 2.9.4") 2>&5
ac_status=$?
- printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ printf '%s\n' "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
test $ac_status = 0; }; then
pkg_cv_LIBXML_LIBS=`$PKG_CONFIG --libs "libxml-2.0 >= 2.9.4" 2>/dev/null`
test "x$?" != "x0" && pkg_failed=yes
@@ -19427,8 +19288,8 @@
if test $pkg_failed = yes; then
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
-printf "%s\n" "no" >&6; }
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf '%s\n' "no" >&6; }
if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then
_pkg_short_errors_supported=yes
@@ -19454,10 +19315,10 @@
and LIBXML_LIBS to avoid the need to call pkg-config.
See the pkg-config man page for more details." "$LINENO" 5
elif test $pkg_failed = untried; then
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
-printf "%s\n" "no" >&6; }
- { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in '$ac_pwd':" >&5
-printf "%s\n" "$as_me: error: in '$ac_pwd':" >&2;}
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf '%s\n' "no" >&6; }
+ { { printf '%s\n' "$as_me:${as_lineno-$LINENO}: error: in '$ac_pwd':" >&5
+printf '%s\n' "$as_me: error: in '$ac_pwd':" >&2;}
as_fn_error $? "The pkg-config script could not be found or is too old. Make sure it
is in your PATH or set the PKG_CONFIG environment variable to the full
path to pkg-config.
@@ -19471,8 +19332,8 @@
else
LIBXML_CFLAGS=$pkg_cv_LIBXML_CFLAGS
LIBXML_LIBS=$pkg_cv_LIBXML_LIBS
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-printf "%s\n" "yes" >&6; }
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+printf '%s\n' "yes" >&6; }
fi
@@ -19632,7 +19493,7 @@
-printf "%s\n" "#define HAVE_LIBXML 1" >>confdefs.h
+printf '%s\n' "#define HAVE_LIBXML 1" >>confdefs.h
ext_builddir=ext/libxml
@@ -19769,7 +19630,7 @@
EOF
-printf "%s\n" "#define COMPILE_DL_LIBXML 1" >>confdefs.h
+printf '%s\n' "#define COMPILE_DL_LIBXML 1" >>confdefs.h
fi
fi
@@ -19914,7 +19775,7 @@
php_with_openssl=no
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for OpenSSL support" >&5
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for OpenSSL support" >&5
printf %s "checking for OpenSSL support... " >&6; }
# Check whether --with-openssl was given.
@@ -19952,8 +19813,8 @@
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ext_output" >&5
-printf "%s\n" "$ext_output" >&6; }
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $ext_output" >&5
+printf '%s\n' "$ext_output" >&6; }
@@ -19961,7 +19822,7 @@
php_with_system_ciphers=no
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether to use system default cipher list instead of hardcoded value" >&5
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking whether to use system default cipher list instead of hardcoded value" >&5
printf %s "checking whether to use system default cipher list instead of hardcoded value... " >&6; }
# Check whether --with-system-ciphers was given.
@@ -19978,8 +19839,8 @@
ext_output=$PHP_SYSTEM_CIPHERS
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ext_output" >&5
-printf "%s\n" "$ext_output" >&6; }
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $ext_output" >&5
+printf '%s\n' "$ext_output" >&6; }
@@ -19987,7 +19848,7 @@
php_with_openssl_legacy_provider=no
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether to load legacy algorithm provider" >&5
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking whether to load legacy algorithm provider" >&5
printf %s "checking whether to load legacy algorithm provider... " >&6; }
# Check whether --with-openssl-legacy-provider was given.
@@ -20004,8 +19865,8 @@
ext_output=$PHP_OPENSSL_LEGACY_PROVIDER
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ext_output" >&5
-printf "%s\n" "$ext_output" >&6; }
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $ext_output" >&5
+printf '%s\n' "$ext_output" >&6; }
@@ -20013,7 +19874,7 @@
php_with_openssl_argon2=no
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether to enable argon2 password hashing (requires OpenSSL >= 3.2)" >&5
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking whether to enable argon2 password hashing (requires OpenSSL >= 3.2)" >&5
printf %s "checking whether to enable argon2 password hashing (requires OpenSSL >= 3.2)... " >&6; }
# Check whether --with-openssl-argon2 was given.
@@ -20030,8 +19891,8 @@
ext_output=$PHP_OPENSSL_ARGON2
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ext_output" >&5
-printf "%s\n" "$ext_output" >&6; }
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $ext_output" >&5
+printf '%s\n' "$ext_output" >&6; }
@@ -20172,7 +20033,7 @@
EOF
-printf "%s\n" "#define COMPILE_DL_OPENSSL 1" >>confdefs.h
+printf '%s\n' "#define COMPILE_DL_OPENSSL 1" >>confdefs.h
fi
fi
@@ -20298,17 +20159,17 @@
pkg_failed=no
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for openssl >= 1.1.1" >&5
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for openssl >= 1.1.1" >&5
printf %s "checking for openssl >= 1.1.1... " >&6; }
if test -n "$OPENSSL_CFLAGS"; then
pkg_cv_OPENSSL_CFLAGS="$OPENSSL_CFLAGS"
elif test -n "$PKG_CONFIG"; then
if test -n "$PKG_CONFIG" && \
- { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"openssl >= 1.1.1\""; } >&5
+ { { printf '%s\n' "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"openssl >= 1.1.1\""; } >&5
($PKG_CONFIG --exists --print-errors "openssl >= 1.1.1") 2>&5
ac_status=$?
- printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ printf '%s\n' "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
test $ac_status = 0; }; then
pkg_cv_OPENSSL_CFLAGS=`$PKG_CONFIG --cflags "openssl >= 1.1.1" 2>/dev/null`
test "x$?" != "x0" && pkg_failed=yes
@@ -20322,10 +20183,10 @@
pkg_cv_OPENSSL_LIBS="$OPENSSL_LIBS"
elif test -n "$PKG_CONFIG"; then
if test -n "$PKG_CONFIG" && \
- { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"openssl >= 1.1.1\""; } >&5
+ { { printf '%s\n' "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"openssl >= 1.1.1\""; } >&5
($PKG_CONFIG --exists --print-errors "openssl >= 1.1.1") 2>&5
ac_status=$?
- printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ printf '%s\n' "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
test $ac_status = 0; }; then
pkg_cv_OPENSSL_LIBS=`$PKG_CONFIG --libs "openssl >= 1.1.1" 2>/dev/null`
test "x$?" != "x0" && pkg_failed=yes
@@ -20339,8 +20200,8 @@
if test $pkg_failed = yes; then
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
-printf "%s\n" "no" >&6; }
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf '%s\n' "no" >&6; }
if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then
_pkg_short_errors_supported=yes
@@ -20366,10 +20227,10 @@
and OPENSSL_LIBS to avoid the need to call pkg-config.
See the pkg-config man page for more details." "$LINENO" 5
elif test $pkg_failed = untried; then
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
-printf "%s\n" "no" >&6; }
- { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in '$ac_pwd':" >&5
-printf "%s\n" "$as_me: error: in '$ac_pwd':" >&2;}
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf '%s\n' "no" >&6; }
+ { { printf '%s\n' "$as_me:${as_lineno-$LINENO}: error: in '$ac_pwd':" >&5
+printf '%s\n' "$as_me: error: in '$ac_pwd':" >&2;}
as_fn_error $? "The pkg-config script could not be found or is too old. Make sure it
is in your PATH or set the PKG_CONFIG environment variable to the full
path to pkg-config.
@@ -20383,8 +20244,8 @@
else
OPENSSL_CFLAGS=$pkg_cv_OPENSSL_CFLAGS
OPENSSL_LIBS=$pkg_cv_OPENSSL_LIBS
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-printf "%s\n" "yes" >&6; }
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+printf '%s\n' "yes" >&6; }
found_openssl=yes
fi
@@ -20545,7 +20406,7 @@
done
-printf "%s\n" "#define HAVE_OPENSSL_EXT 1" >>confdefs.h
+printf '%s\n' "#define HAVE_OPENSSL_EXT 1" >>confdefs.h
fi
@@ -20668,7 +20529,7 @@
esac
done
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for RAND_egd in -lcrypto" >&5
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for RAND_egd in -lcrypto" >&5
printf %s "checking for RAND_egd in -lcrypto... " >&6; }
if test ${ac_cv_lib_crypto_RAND_egd+y}
then :
@@ -20709,15 +20570,15 @@
LIBS=$ac_check_lib_save_LIBS ;;
esac
fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_crypto_RAND_egd" >&5
-printf "%s\n" "$ac_cv_lib_crypto_RAND_egd" >&6; }
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_crypto_RAND_egd" >&5
+printf '%s\n' "$ac_cv_lib_crypto_RAND_egd" >&6; }
if test "x$ac_cv_lib_crypto_RAND_egd" = xyes
then :
LDFLAGS=$save_old_LDFLAGS
ext_shared=$save_ext_shared
-printf "%s\n" "#define HAVE_RAND_EGD 1" >>confdefs.h
+printf '%s\n' "#define HAVE_RAND_EGD 1" >>confdefs.h
else case e in #(
@@ -20736,7 +20597,7 @@
else case e in #(
e)
-printf "%s\n" "#define USE_OPENSSL_SYSTEM_CIPHERS 1" >>confdefs.h
+printf '%s\n' "#define USE_OPENSSL_SYSTEM_CIPHERS 1" >>confdefs.h
;;
esac
fi
@@ -20746,7 +20607,7 @@
else case e in #(
e)
-printf "%s\n" "#define LOAD_OPENSSL_LEGACY_PROVIDER 1" >>confdefs.h
+printf '%s\n' "#define LOAD_OPENSSL_LEGACY_PROVIDER 1" >>confdefs.h
;;
esac
fi
@@ -20879,7 +20740,7 @@
esac
done
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for OSSL_set_max_threads in -lcrypto" >&5
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for OSSL_set_max_threads in -lcrypto" >&5
printf %s "checking for OSSL_set_max_threads in -lcrypto... " >&6; }
if test ${ac_cv_lib_crypto_OSSL_set_max_threads+y}
then :
@@ -20920,15 +20781,15 @@
LIBS=$ac_check_lib_save_LIBS ;;
esac
fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_crypto_OSSL_set_max_threads" >&5
-printf "%s\n" "$ac_cv_lib_crypto_OSSL_set_max_threads" >&6; }
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_crypto_OSSL_set_max_threads" >&5
+printf '%s\n' "$ac_cv_lib_crypto_OSSL_set_max_threads" >&6; }
if test "x$ac_cv_lib_crypto_OSSL_set_max_threads" = xyes
then :
LDFLAGS=$save_old_LDFLAGS
ext_shared=$save_ext_shared
-printf "%s\n" "#define HAVE_OPENSSL_ARGON2 1" >>confdefs.h
+printf '%s\n' "#define HAVE_OPENSSL_ARGON2 1" >>confdefs.h
else case e in #(
@@ -20976,7 +20837,7 @@
php_with_pcre_jit=yes
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether to enable PCRE JIT functionality" >&5
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking whether to enable PCRE JIT functionality" >&5
printf %s "checking whether to enable PCRE JIT functionality... " >&6; }
# Check whether --with-pcre-jit was given.
@@ -20993,8 +20854,8 @@
ext_output=$PHP_PCRE_JIT
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ext_output" >&5
-printf "%s\n" "$ext_output" >&6; }
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $ext_output" >&5
+printf '%s\n' "$ext_output" >&6; }
@@ -21005,17 +20866,17 @@
if test "$PHP_EXTERNAL_PCRE" != "no"; then
pkg_failed=no
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for libpcre2-8 >= 10.30" >&5
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for libpcre2-8 >= 10.30" >&5
printf %s "checking for libpcre2-8 >= 10.30... " >&6; }
if test -n "$PCRE2_CFLAGS"; then
pkg_cv_PCRE2_CFLAGS="$PCRE2_CFLAGS"
elif test -n "$PKG_CONFIG"; then
if test -n "$PKG_CONFIG" && \
- { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libpcre2-8 >= 10.30\""; } >&5
+ { { printf '%s\n' "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libpcre2-8 >= 10.30\""; } >&5
($PKG_CONFIG --exists --print-errors "libpcre2-8 >= 10.30") 2>&5
ac_status=$?
- printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ printf '%s\n' "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
test $ac_status = 0; }; then
pkg_cv_PCRE2_CFLAGS=`$PKG_CONFIG --cflags "libpcre2-8 >= 10.30" 2>/dev/null`
test "x$?" != "x0" && pkg_failed=yes
@@ -21029,10 +20890,10 @@
pkg_cv_PCRE2_LIBS="$PCRE2_LIBS"
elif test -n "$PKG_CONFIG"; then
if test -n "$PKG_CONFIG" && \
- { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libpcre2-8 >= 10.30\""; } >&5
+ { { printf '%s\n' "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libpcre2-8 >= 10.30\""; } >&5
($PKG_CONFIG --exists --print-errors "libpcre2-8 >= 10.30") 2>&5
ac_status=$?
- printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ printf '%s\n' "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
test $ac_status = 0; }; then
pkg_cv_PCRE2_LIBS=`$PKG_CONFIG --libs "libpcre2-8 >= 10.30" 2>/dev/null`
test "x$?" != "x0" && pkg_failed=yes
@@ -21046,8 +20907,8 @@
if test $pkg_failed = yes; then
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
-printf "%s\n" "no" >&6; }
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf '%s\n' "no" >&6; }
if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then
_pkg_short_errors_supported=yes
@@ -21073,10 +20934,10 @@
and PCRE2_LIBS to avoid the need to call pkg-config.
See the pkg-config man page for more details." "$LINENO" 5
elif test $pkg_failed = untried; then
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
-printf "%s\n" "no" >&6; }
- { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in '$ac_pwd':" >&5
-printf "%s\n" "$as_me: error: in '$ac_pwd':" >&2;}
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf '%s\n' "no" >&6; }
+ { { printf '%s\n' "$as_me:${as_lineno-$LINENO}: error: in '$ac_pwd':" >&5
+printf '%s\n' "$as_me: error: in '$ac_pwd':" >&2;}
as_fn_error $? "The pkg-config script could not be found or is too old. Make sure it
is in your PATH or set the PKG_CONFIG environment variable to the full
path to pkg-config.
@@ -21090,8 +20951,8 @@
else
PCRE2_CFLAGS=$pkg_cv_PCRE2_CFLAGS
PCRE2_LIBS=$pkg_cv_PCRE2_LIBS
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-printf "%s\n" "yes" >&6; }
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+printf '%s\n' "yes" >&6; }
fi
@@ -21232,14 +21093,14 @@
esac
done
- printf "%s\n" "#define PCRE2_CODE_UNIT_WIDTH 8" >>confdefs.h
+ printf '%s\n' "#define PCRE2_CODE_UNIT_WIDTH 8" >>confdefs.h
if test "x$PHP_PCRE_JIT" = xno
then :
else case e in #(
- e) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether external PCRE2 library has JIT supported" >&5
+ e) { printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking whether external PCRE2 library has JIT supported" >&5
printf %s "checking whether external PCRE2 library has JIT supported... " >&6; }
if test ${php_cv_have_pcre2_jit+y}
then :
@@ -21288,11 +21149,11 @@
;;
esac
fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $php_cv_have_pcre2_jit" >&5
-printf "%s\n" "$php_cv_have_pcre2_jit" >&6; }
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $php_cv_have_pcre2_jit" >&5
+printf '%s\n' "$php_cv_have_pcre2_jit" >&6; }
if test "x$php_cv_have_pcre2_jit" = xyes
then :
- printf "%s\n" "#define HAVE_PCRE_JIT_SUPPORT 1" >>confdefs.h
+ printf '%s\n' "#define HAVE_PCRE_JIT_SUPPORT 1" >>confdefs.h
fi
;;
@@ -21434,7 +21295,7 @@
EOF
-printf "%s\n" "#define COMPILE_DL_PCRE 1" >>confdefs.h
+printf '%s\n' "#define COMPILE_DL_PCRE 1" >>confdefs.h
fi
fi
@@ -21570,13 +21431,13 @@
else
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for PCRE library to use" >&5
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for PCRE library to use" >&5
printf %s "checking for PCRE library to use... " >&6; }
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: bundled" >&5
-printf "%s\n" "bundled" >&6; }
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: bundled" >&5
+printf '%s\n' "bundled" >&6; }
pcrelib_sources=" pcre2lib/pcre2_auto_possess.c pcre2lib/pcre2_chartables.c pcre2lib/pcre2_chkdint.c pcre2lib/pcre2_compile.c pcre2lib/pcre2_config.c pcre2lib/pcre2_context.c pcre2lib/pcre2_convert.c pcre2lib/pcre2_dfa_match.c pcre2lib/pcre2_error.c pcre2lib/pcre2_extuni.c pcre2lib/pcre2_find_bracket.c pcre2lib/pcre2_jit_compile.c pcre2lib/pcre2_maketables.c pcre2lib/pcre2_match_data.c pcre2lib/pcre2_match.c pcre2lib/pcre2_newline.c pcre2lib/pcre2_ord2utf.c pcre2lib/pcre2_pattern_info.c pcre2lib/pcre2_script_run.c pcre2lib/pcre2_serialize.c pcre2lib/pcre2_string_utils.c pcre2lib/pcre2_study.c pcre2lib/pcre2_substitute.c pcre2lib/pcre2_substring.c pcre2lib/pcre2_tables.c pcre2lib/pcre2_ucd.c pcre2lib/pcre2_valid_utf.c pcre2lib/pcre2_xclass.c "
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether the C compiler accepts -Wno-implicit-fallthrough" >&5
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking whether the C compiler accepts -Wno-implicit-fallthrough" >&5
printf %s "checking whether the C compiler accepts -Wno-implicit-fallthrough... " >&6; }
if test ${ax_cv_check_cflags__Werror__Wno_implicit_fallthrough+y}
then :
@@ -21607,8 +21468,8 @@
CFLAGS=$ax_check_save_flags ;;
esac
fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ax_cv_check_cflags__Werror__Wno_implicit_fallthrough" >&5
-printf "%s\n" "$ax_cv_check_cflags__Werror__Wno_implicit_fallthrough" >&6; }
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $ax_cv_check_cflags__Werror__Wno_implicit_fallthrough" >&5
+printf '%s\n' "$ax_cv_check_cflags__Werror__Wno_implicit_fallthrough" >&6; }
if test "x$ax_cv_check_cflags__Werror__Wno_implicit_fallthrough" = xyes
then :
PHP_PCRE_CFLAGS="$PHP_PCRE_CFLAGS -Wno-implicit-fallthrough"
@@ -21620,18 +21481,18 @@
PHP_PCRE_CFLAGS="$PHP_PCRE_CFLAGS -DHAVE_CONFIG_H -I@ext_srcdir@/pcre2lib -DZEND_ENABLE_STATIC_TSRMLS_CACHE=1"
-printf "%s\n" "#define HAVE_BUNDLED_PCRE 1" >>confdefs.h
+printf '%s\n' "#define HAVE_BUNDLED_PCRE 1" >>confdefs.h
- printf "%s\n" "#define PCRE2_CODE_UNIT_WIDTH 8" >>confdefs.h
+ printf '%s\n' "#define PCRE2_CODE_UNIT_WIDTH 8" >>confdefs.h
if test "x$PHP_PCRE_JIT" = xno
then :
else case e in #(
- e) printf "%s\n" "#define HAVE_PCRE_JIT_SUPPORT 1" >>confdefs.h
+ e) printf '%s\n' "#define HAVE_PCRE_JIT_SUPPORT 1" >>confdefs.h
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether Intel CET is enabled" >&5
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking whether Intel CET is enabled" >&5
printf %s "checking whether Intel CET is enabled... " >&6; }
if test ${php_cv_have_pcre2_intel_cet+y}
then :
@@ -21663,8 +21524,8 @@
;;
esac
fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $php_cv_have_pcre2_intel_cet" >&5
-printf "%s\n" "$php_cv_have_pcre2_intel_cet" >&6; }
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $php_cv_have_pcre2_intel_cet" >&5
+printf '%s\n' "$php_cv_have_pcre2_intel_cet" >&6; }
if test "x$php_cv_have_pcre2_intel_cet" = xyes
then :
PHP_PCRE_CFLAGS="-mshstk $PHP_PCRE_CFLAGS"
@@ -21680,7 +21541,7 @@
e) if test "x$ZEND_DEBUG" = xyes
then :
-printf "%s\n" "#define HAVE_PCRE_VALGRIND_SUPPORT 1" >>confdefs.h
+printf '%s\n' "#define HAVE_PCRE_VALGRIND_SUPPORT 1" >>confdefs.h
fi ;;
esac
@@ -21821,7 +21682,7 @@
EOF
-printf "%s\n" "#define COMPILE_DL_PCRE 1" >>confdefs.h
+printf '%s\n' "#define COMPILE_DL_PCRE 1" >>confdefs.h
fi
fi
@@ -21966,7 +21827,7 @@
php_with_sqlite3=yes
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether to enable the SQLite3 extension" >&5
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking whether to enable the SQLite3 extension" >&5
printf %s "checking whether to enable the SQLite3 extension... " >&6; }
# Check whether --with-sqlite3 was given.
@@ -22004,8 +21865,8 @@
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ext_output" >&5
-printf "%s\n" "$ext_output" >&6; }
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $ext_output" >&5
+printf '%s\n' "$ext_output" >&6; }
@@ -22014,17 +21875,17 @@
pkg_failed=no
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for sqlite3 >= 3.7.7" >&5
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for sqlite3 >= 3.7.7" >&5
printf %s "checking for sqlite3 >= 3.7.7... " >&6; }
if test -n "$SQLITE_CFLAGS"; then
pkg_cv_SQLITE_CFLAGS="$SQLITE_CFLAGS"
elif test -n "$PKG_CONFIG"; then
if test -n "$PKG_CONFIG" && \
- { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"sqlite3 >= 3.7.7\""; } >&5
+ { { printf '%s\n' "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"sqlite3 >= 3.7.7\""; } >&5
($PKG_CONFIG --exists --print-errors "sqlite3 >= 3.7.7") 2>&5
ac_status=$?
- printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ printf '%s\n' "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
test $ac_status = 0; }; then
pkg_cv_SQLITE_CFLAGS=`$PKG_CONFIG --cflags "sqlite3 >= 3.7.7" 2>/dev/null`
test "x$?" != "x0" && pkg_failed=yes
@@ -22038,10 +21899,10 @@
pkg_cv_SQLITE_LIBS="$SQLITE_LIBS"
elif test -n "$PKG_CONFIG"; then
if test -n "$PKG_CONFIG" && \
- { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"sqlite3 >= 3.7.7\""; } >&5
+ { { printf '%s\n' "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"sqlite3 >= 3.7.7\""; } >&5
($PKG_CONFIG --exists --print-errors "sqlite3 >= 3.7.7") 2>&5
ac_status=$?
- printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ printf '%s\n' "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
test $ac_status = 0; }; then
pkg_cv_SQLITE_LIBS=`$PKG_CONFIG --libs "sqlite3 >= 3.7.7" 2>/dev/null`
test "x$?" != "x0" && pkg_failed=yes
@@ -22055,8 +21916,8 @@
if test $pkg_failed = yes; then
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
-printf "%s\n" "no" >&6; }
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf '%s\n' "no" >&6; }
if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then
_pkg_short_errors_supported=yes
@@ -22082,10 +21943,10 @@
and SQLITE_LIBS to avoid the need to call pkg-config.
See the pkg-config man page for more details." "$LINENO" 5
elif test $pkg_failed = untried; then
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
-printf "%s\n" "no" >&6; }
- { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in '$ac_pwd':" >&5
-printf "%s\n" "$as_me: error: in '$ac_pwd':" >&2;}
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf '%s\n' "no" >&6; }
+ { { printf '%s\n' "$as_me:${as_lineno-$LINENO}: error: in '$ac_pwd':" >&5
+printf '%s\n' "$as_me: error: in '$ac_pwd':" >&2;}
as_fn_error $? "The pkg-config script could not be found or is too old. Make sure it
is in your PATH or set the PKG_CONFIG environment variable to the full
path to pkg-config.
@@ -22099,8 +21960,8 @@
else
SQLITE_CFLAGS=$pkg_cv_SQLITE_CFLAGS
SQLITE_LIBS=$pkg_cv_SQLITE_LIBS
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-printf "%s\n" "yes" >&6; }
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+printf '%s\n' "yes" >&6; }
for ac_i in $SQLITE_CFLAGS; do
@@ -22261,7 +22122,7 @@
fi
-printf "%s\n" "#define HAVE_SQLITE3 1" >>confdefs.h
+printf '%s\n' "#define HAVE_SQLITE3 1" >>confdefs.h
@@ -22382,7 +22243,7 @@
esac
done
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for sqlite3_errstr in -lsqlite3" >&5
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for sqlite3_errstr in -lsqlite3" >&5
printf %s "checking for sqlite3_errstr in -lsqlite3... " >&6; }
if test ${ac_cv_lib_sqlite3_sqlite3_errstr+y}
then :
@@ -22423,15 +22284,15 @@
LIBS=$ac_check_lib_save_LIBS ;;
esac
fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_sqlite3_sqlite3_errstr" >&5
-printf "%s\n" "$ac_cv_lib_sqlite3_sqlite3_errstr" >&6; }
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_sqlite3_sqlite3_errstr" >&5
+printf '%s\n' "$ac_cv_lib_sqlite3_sqlite3_errstr" >&6; }
if test "x$ac_cv_lib_sqlite3_sqlite3_errstr" = xyes
then :
LDFLAGS=$save_old_LDFLAGS
ext_shared=$save_ext_shared
-printf "%s\n" "#define HAVE_SQLITE3_ERRSTR 1" >>confdefs.h
+printf '%s\n' "#define HAVE_SQLITE3_ERRSTR 1" >>confdefs.h
else case e in #(
@@ -22563,7 +22424,7 @@
esac
done
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for sqlite3_expanded_sql in -lsqlite3" >&5
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for sqlite3_expanded_sql in -lsqlite3" >&5
printf %s "checking for sqlite3_expanded_sql in -lsqlite3... " >&6; }
if test ${ac_cv_lib_sqlite3_sqlite3_expanded_sql+y}
then :
@@ -22604,15 +22465,15 @@
LIBS=$ac_check_lib_save_LIBS ;;
esac
fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_sqlite3_sqlite3_expanded_sql" >&5
-printf "%s\n" "$ac_cv_lib_sqlite3_sqlite3_expanded_sql" >&6; }
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_sqlite3_sqlite3_expanded_sql" >&5
+printf '%s\n' "$ac_cv_lib_sqlite3_sqlite3_expanded_sql" >&6; }
if test "x$ac_cv_lib_sqlite3_sqlite3_expanded_sql" = xyes
then :
LDFLAGS=$save_old_LDFLAGS
ext_shared=$save_ext_shared
-printf "%s\n" "#define HAVE_SQLITE3_EXPANDED_SQL 1" >>confdefs.h
+printf '%s\n' "#define HAVE_SQLITE3_EXPANDED_SQL 1" >>confdefs.h
else case e in #(
@@ -22744,7 +22605,7 @@
esac
done
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for sqlite3_load_extension in -lsqlite3" >&5
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for sqlite3_load_extension in -lsqlite3" >&5
printf %s "checking for sqlite3_load_extension in -lsqlite3... " >&6; }
if test ${ac_cv_lib_sqlite3_sqlite3_load_extension+y}
then :
@@ -22785,8 +22646,8 @@
LIBS=$ac_check_lib_save_LIBS ;;
esac
fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_sqlite3_sqlite3_load_extension" >&5
-printf "%s\n" "$ac_cv_lib_sqlite3_sqlite3_load_extension" >&6; }
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_sqlite3_sqlite3_load_extension" >&5
+printf '%s\n' "$ac_cv_lib_sqlite3_sqlite3_load_extension" >&6; }
if test "x$ac_cv_lib_sqlite3_sqlite3_load_extension" = xyes
then :
@@ -22800,7 +22661,7 @@
ext_shared=$save_ext_shared
unset ac_cv_lib_sqlite3_sqlite3_load_extension
-printf "%s\n" "#define SQLITE_OMIT_LOAD_EXTENSION 1" >>confdefs.h
+printf '%s\n' "#define SQLITE_OMIT_LOAD_EXTENSION 1" >>confdefs.h
;;
esac
@@ -22942,7 +22803,7 @@
EOF
-printf "%s\n" "#define COMPILE_DL_SQLITE3 1" >>confdefs.h
+printf '%s\n' "#define COMPILE_DL_SQLITE3 1" >>confdefs.h
fi
fi
@@ -23071,7 +22932,7 @@
php_with_zlib=no
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for ZLIB support" >&5
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for ZLIB support" >&5
printf %s "checking for ZLIB support... " >&6; }
# Check whether --with-zlib was given.
@@ -23109,8 +22970,8 @@
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ext_output" >&5
-printf "%s\n" "$ext_output" >&6; }
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $ext_output" >&5
+printf '%s\n' "$ext_output" >&6; }
@@ -23118,17 +22979,17 @@
if test "$PHP_ZLIB" != "no"; then
pkg_failed=no
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for zlib >= 1.2.11" >&5
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for zlib >= 1.2.11" >&5
printf %s "checking for zlib >= 1.2.11... " >&6; }
if test -n "$ZLIB_CFLAGS"; then
pkg_cv_ZLIB_CFLAGS="$ZLIB_CFLAGS"
elif test -n "$PKG_CONFIG"; then
if test -n "$PKG_CONFIG" && \
- { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"zlib >= 1.2.11\""; } >&5
+ { { printf '%s\n' "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"zlib >= 1.2.11\""; } >&5
($PKG_CONFIG --exists --print-errors "zlib >= 1.2.11") 2>&5
ac_status=$?
- printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ printf '%s\n' "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
test $ac_status = 0; }; then
pkg_cv_ZLIB_CFLAGS=`$PKG_CONFIG --cflags "zlib >= 1.2.11" 2>/dev/null`
test "x$?" != "x0" && pkg_failed=yes
@@ -23142,10 +23003,10 @@
pkg_cv_ZLIB_LIBS="$ZLIB_LIBS"
elif test -n "$PKG_CONFIG"; then
if test -n "$PKG_CONFIG" && \
- { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"zlib >= 1.2.11\""; } >&5
+ { { printf '%s\n' "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"zlib >= 1.2.11\""; } >&5
($PKG_CONFIG --exists --print-errors "zlib >= 1.2.11") 2>&5
ac_status=$?
- printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ printf '%s\n' "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
test $ac_status = 0; }; then
pkg_cv_ZLIB_LIBS=`$PKG_CONFIG --libs "zlib >= 1.2.11" 2>/dev/null`
test "x$?" != "x0" && pkg_failed=yes
@@ -23159,8 +23020,8 @@
if test $pkg_failed = yes; then
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
-printf "%s\n" "no" >&6; }
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf '%s\n' "no" >&6; }
if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then
_pkg_short_errors_supported=yes
@@ -23186,10 +23047,10 @@
and ZLIB_LIBS to avoid the need to call pkg-config.
See the pkg-config man page for more details." "$LINENO" 5
elif test $pkg_failed = untried; then
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
-printf "%s\n" "no" >&6; }
- { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in '$ac_pwd':" >&5
-printf "%s\n" "$as_me: error: in '$ac_pwd':" >&2;}
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf '%s\n' "no" >&6; }
+ { { printf '%s\n' "$as_me:${as_lineno-$LINENO}: error: in '$ac_pwd':" >&5
+printf '%s\n' "$as_me: error: in '$ac_pwd':" >&2;}
as_fn_error $? "The pkg-config script could not be found or is too old. Make sure it
is in your PATH or set the PKG_CONFIG environment variable to the full
path to pkg-config.
@@ -23203,8 +23064,8 @@
else
ZLIB_CFLAGS=$pkg_cv_ZLIB_CFLAGS
ZLIB_LIBS=$pkg_cv_ZLIB_LIBS
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-printf "%s\n" "yes" >&6; }
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+printf '%s\n' "yes" >&6; }
for ac_i in $ZLIB_CFLAGS; do
case $ac_i in
@@ -23361,7 +23222,7 @@
done
-printf "%s\n" "#define HAVE_ZLIB 1" >>confdefs.h
+printf '%s\n' "#define HAVE_ZLIB 1" >>confdefs.h
ext_builddir=ext/zlib
@@ -23498,7 +23359,7 @@
EOF
-printf "%s\n" "#define COMPILE_DL_ZLIB 1" >>confdefs.h
+printf '%s\n' "#define COMPILE_DL_ZLIB 1" >>confdefs.h
fi
fi
@@ -23628,7 +23489,7 @@
php_enable_bcmath=no
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether to enable bc style precision math functions" >&5
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking whether to enable bc style precision math functions" >&5
printf %s "checking whether to enable bc style precision math functions... " >&6; }
# Check whether --enable-bcmath was given.
if test ${enable_bcmath+y}
@@ -23665,8 +23526,8 @@
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ext_output" >&5
-printf "%s\n" "$ext_output" >&6; }
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $ext_output" >&5
+printf '%s\n' "$ext_output" >&6; }
@@ -23807,7 +23668,7 @@
EOF
-printf "%s\n" "#define COMPILE_DL_BCMATH 1" >>confdefs.h
+printf '%s\n' "#define COMPILE_DL_BCMATH 1" >>confdefs.h
fi
fi
@@ -23928,7 +23789,7 @@
as_fn_append BUILD_DIR " $ext_builddir/libbcmath/src"
-printf "%s\n" "#define HAVE_BCMATH 1" >>confdefs.h
+printf '%s\n' "#define HAVE_BCMATH 1" >>confdefs.h
fi
@@ -23938,7 +23799,7 @@
php_with_bz2=no
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for BZip2 support" >&5
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for BZip2 support" >&5
printf %s "checking for BZip2 support... " >&6; }
# Check whether --with-bz2 was given.
@@ -23976,8 +23837,8 @@
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ext_output" >&5
-printf "%s\n" "$ext_output" >&6; }
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $ext_output" >&5
+printf '%s\n' "$ext_output" >&6; }
@@ -23998,18 +23859,18 @@
esac
fi
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for BZip2" >&5
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for BZip2" >&5
printf %s "checking for BZip2... " >&6; }
if ${BZIP_DIR:+false} :
then :
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: bzlib.h not found" >&5
-printf "%s\n" "bzlib.h not found" >&6; }
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: bzlib.h not found" >&5
+printf '%s\n' "bzlib.h not found" >&6; }
as_fn_error $? "Please reinstall the BZip2 library package" "$LINENO" 5
else case e in #(
- e) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: found in $BZIP_DIR" >&5
-printf "%s\n" "found in $BZIP_DIR" >&6; } ;;
+ e) { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: found in $BZIP_DIR" >&5
+printf '%s\n' "found in $BZIP_DIR" >&6; } ;;
esac
fi
@@ -24131,7 +23992,7 @@
esac
done
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for BZ2_bzerror in -lbz2" >&5
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for BZ2_bzerror in -lbz2" >&5
printf %s "checking for BZ2_bzerror in -lbz2... " >&6; }
if test ${ac_cv_lib_bz2_BZ2_bzerror+y}
then :
@@ -24172,8 +24033,8 @@
LIBS=$ac_check_lib_save_LIBS ;;
esac
fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_bz2_BZ2_bzerror" >&5
-printf "%s\n" "$ac_cv_lib_bz2_BZ2_bzerror" >&6; }
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_bz2_BZ2_bzerror" >&5
+printf '%s\n' "$ac_cv_lib_bz2_BZ2_bzerror" >&6; }
if test "x$ac_cv_lib_bz2_BZ2_bzerror" = xyes
then :
@@ -24320,7 +24181,7 @@
-printf "%s\n" "#define HAVE_BZ2 1" >>confdefs.h
+printf '%s\n' "#define HAVE_BZ2 1" >>confdefs.h
@@ -24329,8 +24190,8 @@
LDFLAGS=$save_old_LDFLAGS
ext_shared=$save_ext_shared
unset ac_cv_lib_bz2_BZ2_bzerror
- { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in '$ac_pwd':" >&5
-printf "%s\n" "$as_me: error: in '$ac_pwd':" >&2;}
+ { { printf '%s\n' "$as_me:${as_lineno-$LINENO}: error: in '$ac_pwd':" >&5
+printf '%s\n' "$as_me: error: in '$ac_pwd':" >&2;}
as_fn_error $? "The bz2 extension requires libbz2 >= 1.0.0
See 'config.log' for more details" "$LINENO" 5; }
;;
@@ -24473,7 +24334,7 @@
EOF
-printf "%s\n" "#define COMPILE_DL_BZ2 1" >>confdefs.h
+printf '%s\n' "#define COMPILE_DL_BZ2 1" >>confdefs.h
fi
fi
@@ -24602,7 +24463,7 @@
php_enable_calendar=no
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether to enable calendar conversion support" >&5
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking whether to enable calendar conversion support" >&5
printf %s "checking whether to enable calendar conversion support... " >&6; }
# Check whether --enable-calendar was given.
if test ${enable_calendar+y}
@@ -24639,15 +24500,15 @@
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ext_output" >&5
-printf "%s\n" "$ext_output" >&6; }
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $ext_output" >&5
+printf '%s\n' "$ext_output" >&6; }
if test "$PHP_CALENDAR" = "yes"; then
-printf "%s\n" "#define HAVE_CALENDAR 1" >>confdefs.h
+printf '%s\n' "#define HAVE_CALENDAR 1" >>confdefs.h
ext_builddir=ext/calendar
@@ -24784,7 +24645,7 @@
EOF
-printf "%s\n" "#define COMPILE_DL_CALENDAR 1" >>confdefs.h
+printf '%s\n' "#define COMPILE_DL_CALENDAR 1" >>confdefs.h
fi
fi
@@ -24910,7 +24771,7 @@
php_enable_ctype=yes
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether to enable ctype functions" >&5
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking whether to enable ctype functions" >&5
printf %s "checking whether to enable ctype functions... " >&6; }
# Check whether --enable-ctype was given.
if test ${enable_ctype+y}
@@ -24947,15 +24808,15 @@
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ext_output" >&5
-printf "%s\n" "$ext_output" >&6; }
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $ext_output" >&5
+printf '%s\n' "$ext_output" >&6; }
if test "$PHP_CTYPE" != "no"; then
-printf "%s\n" "#define HAVE_CTYPE 1" >>confdefs.h
+printf '%s\n' "#define HAVE_CTYPE 1" >>confdefs.h
ext_builddir=ext/ctype
@@ -25092,7 +24953,7 @@
EOF
-printf "%s\n" "#define COMPILE_DL_CTYPE 1" >>confdefs.h
+printf '%s\n' "#define COMPILE_DL_CTYPE 1" >>confdefs.h
fi
fi
@@ -25218,7 +25079,7 @@
php_with_curl=no
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for cURL support" >&5
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for cURL support" >&5
printf %s "checking for cURL support... " >&6; }
# Check whether --with-curl was given.
@@ -25256,8 +25117,8 @@
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ext_output" >&5
-printf "%s\n" "$ext_output" >&6; }
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $ext_output" >&5
+printf '%s\n' "$ext_output" >&6; }
@@ -25265,17 +25126,17 @@
if test "$PHP_CURL" != "no"; then
pkg_failed=no
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for libcurl >= 7.61.0" >&5
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for libcurl >= 7.61.0" >&5
printf %s "checking for libcurl >= 7.61.0... " >&6; }
if test -n "$CURL_CFLAGS"; then
pkg_cv_CURL_CFLAGS="$CURL_CFLAGS"
elif test -n "$PKG_CONFIG"; then
if test -n "$PKG_CONFIG" && \
- { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libcurl >= 7.61.0\""; } >&5
+ { { printf '%s\n' "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libcurl >= 7.61.0\""; } >&5
($PKG_CONFIG --exists --print-errors "libcurl >= 7.61.0") 2>&5
ac_status=$?
- printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ printf '%s\n' "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
test $ac_status = 0; }; then
pkg_cv_CURL_CFLAGS=`$PKG_CONFIG --cflags "libcurl >= 7.61.0" 2>/dev/null`
test "x$?" != "x0" && pkg_failed=yes
@@ -25289,10 +25150,10 @@
pkg_cv_CURL_LIBS="$CURL_LIBS"
elif test -n "$PKG_CONFIG"; then
if test -n "$PKG_CONFIG" && \
- { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libcurl >= 7.61.0\""; } >&5
+ { { printf '%s\n' "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libcurl >= 7.61.0\""; } >&5
($PKG_CONFIG --exists --print-errors "libcurl >= 7.61.0") 2>&5
ac_status=$?
- printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ printf '%s\n' "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
test $ac_status = 0; }; then
pkg_cv_CURL_LIBS=`$PKG_CONFIG --libs "libcurl >= 7.61.0" 2>/dev/null`
test "x$?" != "x0" && pkg_failed=yes
@@ -25306,8 +25167,8 @@
if test $pkg_failed = yes; then
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
-printf "%s\n" "no" >&6; }
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf '%s\n' "no" >&6; }
if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then
_pkg_short_errors_supported=yes
@@ -25333,10 +25194,10 @@
and CURL_LIBS to avoid the need to call pkg-config.
See the pkg-config man page for more details." "$LINENO" 5
elif test $pkg_failed = untried; then
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
-printf "%s\n" "no" >&6; }
- { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in '$ac_pwd':" >&5
-printf "%s\n" "$as_me: error: in '$ac_pwd':" >&2;}
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf '%s\n' "no" >&6; }
+ { { printf '%s\n' "$as_me:${as_lineno-$LINENO}: error: in '$ac_pwd':" >&5
+printf '%s\n' "$as_me: error: in '$ac_pwd':" >&2;}
as_fn_error $? "The pkg-config script could not be found or is too old. Make sure it
is in your PATH or set the PKG_CONFIG environment variable to the full
path to pkg-config.
@@ -25350,8 +25211,8 @@
else
CURL_CFLAGS=$pkg_cv_CURL_CFLAGS
CURL_LIBS=$pkg_cv_CURL_LIBS
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-printf "%s\n" "yes" >&6; }
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+printf '%s\n' "yes" >&6; }
fi
@@ -25359,10 +25220,10 @@
pkg_cv_CURL_FEATURES="$CURL_FEATURES"
elif test -n "$PKG_CONFIG"; then
if test -n "$PKG_CONFIG" && \
- { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libcurl\""; } >&5
+ { { printf '%s\n' "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libcurl\""; } >&5
($PKG_CONFIG --exists --print-errors "libcurl") 2>&5
ac_status=$?
- printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ printf '%s\n' "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
test $ac_status = 0; }; then
pkg_cv_CURL_FEATURES=`$PKG_CONFIG --variable="supported_features" "libcurl" 2>/dev/null`
test "x$?" != "x0" && pkg_failed=yes
@@ -25535,7 +25396,7 @@
done
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for SSL support in libcurl" >&5
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for SSL support in libcurl" >&5
printf %s "checking for SSL support in libcurl... " >&6; }
case $CURL_FEATURES in #(
*SSL*) :
@@ -25543,12 +25404,12 @@
*) :
CURL_SSL=no ;;
esac
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $CURL_SSL" >&5
-printf "%s\n" "$CURL_SSL" >&6; }
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $CURL_SSL" >&5
+printf '%s\n' "$CURL_SSL" >&6; }
if test "x$PHP_THREAD_SAFETY" = xyes && test "x$CURL_SSL" = xyes
then :
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether libcurl is linked against old OpenSSL < 1.1" >&5
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking whether libcurl is linked against old OpenSSL < 1.1" >&5
printf %s "checking whether libcurl is linked against old OpenSSL < 1.1... " >&6; }
if test ${php_cv_lib_curl_ssl+y}
then :
@@ -25625,31 +25486,31 @@
;;
esac
fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $php_cv_lib_curl_ssl" >&5
-printf "%s\n" "$php_cv_lib_curl_ssl" >&6; }
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $php_cv_lib_curl_ssl" >&5
+printf '%s\n' "$php_cv_lib_curl_ssl" >&6; }
if test "x$php_cv_lib_curl_ssl" = xyes
then :
-printf "%s\n" "#define HAVE_CURL_OLD_OPENSSL 1" >>confdefs.h
+printf '%s\n' "#define HAVE_CURL_OLD_OPENSSL 1" >>confdefs.h
found_openssl=no
pkg_failed=no
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for openssl >= 1.1.1" >&5
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for openssl >= 1.1.1" >&5
printf %s "checking for openssl >= 1.1.1... " >&6; }
if test -n "$OPENSSL_CFLAGS"; then
pkg_cv_OPENSSL_CFLAGS="$OPENSSL_CFLAGS"
elif test -n "$PKG_CONFIG"; then
if test -n "$PKG_CONFIG" && \
- { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"openssl >= 1.1.1\""; } >&5
+ { { printf '%s\n' "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"openssl >= 1.1.1\""; } >&5
($PKG_CONFIG --exists --print-errors "openssl >= 1.1.1") 2>&5
ac_status=$?
- printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ printf '%s\n' "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
test $ac_status = 0; }; then
pkg_cv_OPENSSL_CFLAGS=`$PKG_CONFIG --cflags "openssl >= 1.1.1" 2>/dev/null`
test "x$?" != "x0" && pkg_failed=yes
@@ -25663,10 +25524,10 @@
pkg_cv_OPENSSL_LIBS="$OPENSSL_LIBS"
elif test -n "$PKG_CONFIG"; then
if test -n "$PKG_CONFIG" && \
- { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"openssl >= 1.1.1\""; } >&5
+ { { printf '%s\n' "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"openssl >= 1.1.1\""; } >&5
($PKG_CONFIG --exists --print-errors "openssl >= 1.1.1") 2>&5
ac_status=$?
- printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ printf '%s\n' "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
test $ac_status = 0; }; then
pkg_cv_OPENSSL_LIBS=`$PKG_CONFIG --libs "openssl >= 1.1.1" 2>/dev/null`
test "x$?" != "x0" && pkg_failed=yes
@@ -25680,8 +25541,8 @@
if test $pkg_failed = yes; then
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
-printf "%s\n" "no" >&6; }
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf '%s\n' "no" >&6; }
if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then
_pkg_short_errors_supported=yes
@@ -25707,10 +25568,10 @@
and OPENSSL_LIBS to avoid the need to call pkg-config.
See the pkg-config man page for more details." "$LINENO" 5
elif test $pkg_failed = untried; then
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
-printf "%s\n" "no" >&6; }
- { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in '$ac_pwd':" >&5
-printf "%s\n" "$as_me: error: in '$ac_pwd':" >&2;}
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf '%s\n' "no" >&6; }
+ { { printf '%s\n' "$as_me:${as_lineno-$LINENO}: error: in '$ac_pwd':" >&5
+printf '%s\n' "$as_me: error: in '$ac_pwd':" >&2;}
as_fn_error $? "The pkg-config script could not be found or is too old. Make sure it
is in your PATH or set the PKG_CONFIG environment variable to the full
path to pkg-config.
@@ -25724,8 +25585,8 @@
else
OPENSSL_CFLAGS=$pkg_cv_OPENSSL_CFLAGS
OPENSSL_LIBS=$pkg_cv_OPENSSL_LIBS
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-printf "%s\n" "yes" >&6; }
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+printf '%s\n' "yes" >&6; }
found_openssl=yes
fi
@@ -25888,7 +25749,7 @@
ac_fn_c_check_header_compile "$LINENO" "openssl/crypto.h" "ac_cv_header_openssl_crypto_h" "$ac_includes_default"
if test "x$ac_cv_header_openssl_crypto_h" = xyes
then :
- printf "%s\n" "#define HAVE_OPENSSL_CRYPTO_H 1" >>confdefs.h
+ printf '%s\n' "#define HAVE_OPENSSL_CRYPTO_H 1" >>confdefs.h
fi
@@ -26017,7 +25878,7 @@
esac
done
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for curl_easy_perform in -lcurl" >&5
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for curl_easy_perform in -lcurl" >&5
printf %s "checking for curl_easy_perform in -lcurl... " >&6; }
if test ${ac_cv_lib_curl_curl_easy_perform+y}
then :
@@ -26058,15 +25919,15 @@
LIBS=$ac_check_lib_save_LIBS ;;
esac
fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_curl_curl_easy_perform" >&5
-printf "%s\n" "$ac_cv_lib_curl_curl_easy_perform" >&6; }
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_curl_curl_easy_perform" >&5
+printf '%s\n' "$ac_cv_lib_curl_curl_easy_perform" >&6; }
if test "x$ac_cv_lib_curl_curl_easy_perform" = xyes
then :
LDFLAGS=$save_old_LDFLAGS
ext_shared=$save_ext_shared
-printf "%s\n" "#define HAVE_CURL 1" >>confdefs.h
+printf '%s\n' "#define HAVE_CURL 1" >>confdefs.h
else case e in #(
@@ -26074,8 +25935,8 @@
LDFLAGS=$save_old_LDFLAGS
ext_shared=$save_ext_shared
unset ac_cv_lib_curl_curl_easy_perform
- { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in '$ac_pwd':" >&5
-printf "%s\n" "$as_me: error: in '$ac_pwd':" >&2;}
+ { { printf '%s\n' "$as_me:${as_lineno-$LINENO}: error: in '$ac_pwd':" >&5
+printf '%s\n' "$as_me: error: in '$ac_pwd':" >&2;}
as_fn_error $? "The libcurl check failed.
See 'config.log' for more details" "$LINENO" 5; }
;;
@@ -26218,7 +26079,7 @@
EOF
-printf "%s\n" "#define COMPILE_DL_CURL 1" >>confdefs.h
+printf '%s\n' "#define COMPILE_DL_CURL 1" >>confdefs.h
fi
fi
@@ -26793,8 +26654,8 @@
esac
done
- as_ac_Lib=`printf "%s\n" "ac_cv_lib_$LIB""_dpopen" | sed "$as_sed_sh"`
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for dpopen in -l$LIB" >&5
+ as_ac_Lib=`printf '%s\n' "ac_cv_lib_$LIB""_dpopen" | sed "$as_sed_sh"`
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for dpopen in -l$LIB" >&5
printf %s "checking for dpopen in -l$LIB... " >&6; }
if eval test \${$as_ac_Lib+y}
then :
@@ -26836,8 +26697,8 @@
esac
fi
eval ac_res=\$$as_ac_Lib
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
-printf "%s\n" "$ac_res" >&6; }
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
+printf '%s\n' "$ac_res" >&6; }
if eval test \"x\$"$as_ac_Lib"\" = x"yes"
then :
@@ -26845,10 +26706,10 @@
ext_shared=$save_ext_shared
-printf "%s\n" "#define QDBM_INCLUDE_FILE \"$THIS_INCLUDE\"" >>confdefs.h
+printf '%s\n' "#define QDBM_INCLUDE_FILE \"$THIS_INCLUDE\"" >>confdefs.h
-printf "%s\n" "#define DBA_QDBM 1" >>confdefs.h
+printf '%s\n' "#define DBA_QDBM 1" >>confdefs.h
THIS_LIBS=$LIB
@@ -27001,7 +26862,7 @@
else
THIS_FULL_NAME="$THIS_NAME"
fi
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $THIS_FULL_NAME support" >&5
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for $THIS_FULL_NAME support" >&5
printf %s "checking for $THIS_FULL_NAME support... " >&6; }
if test -n ""; then
as_fn_error $? "" "$LINENO" 5
@@ -27009,11 +26870,11 @@
if test "$THIS_RESULT" = "yes" || test "$THIS_RESULT" = "builtin"; then
HAVE_DBA=1
eval HAVE_$THIS_NAME=1
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $THIS_RESULT" >&5
-printf "%s\n" "$THIS_RESULT" >&6; }
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $THIS_RESULT" >&5
+printf '%s\n' "$THIS_RESULT" >&6; }
else
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
-printf "%s\n" "no" >&6; }
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf '%s\n' "no" >&6; }
fi
unset THIS_RESULT THIS_NAME THIS_FULL_NAME
@@ -27029,7 +26890,7 @@
else
THIS_FULL_NAME="$THIS_NAME"
fi
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $THIS_FULL_NAME support" >&5
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for $THIS_FULL_NAME support" >&5
printf %s "checking for $THIS_FULL_NAME support... " >&6; }
if test -n "You cannot combine --with-gdbm with --with-qdbm"; then
as_fn_error $? "You cannot combine --with-gdbm with --with-qdbm" "$LINENO" 5
@@ -27037,11 +26898,11 @@
if test "$THIS_RESULT" = "yes" || test "$THIS_RESULT" = "builtin"; then
HAVE_DBA=1
eval HAVE_$THIS_NAME=1
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $THIS_RESULT" >&5
-printf "%s\n" "$THIS_RESULT" >&6; }
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $THIS_RESULT" >&5
+printf '%s\n' "$THIS_RESULT" >&6; }
else
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
-printf "%s\n" "no" >&6; }
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf '%s\n' "no" >&6; }
fi
unset THIS_RESULT THIS_NAME THIS_FULL_NAME
@@ -27173,7 +27034,7 @@
esac
done
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for gdbm_open in -lgdbm" >&5
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for gdbm_open in -lgdbm" >&5
printf %s "checking for gdbm_open in -lgdbm... " >&6; }
if test ${ac_cv_lib_gdbm_gdbm_open+y}
then :
@@ -27214,8 +27075,8 @@
LIBS=$ac_check_lib_save_LIBS ;;
esac
fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_gdbm_gdbm_open" >&5
-printf "%s\n" "$ac_cv_lib_gdbm_gdbm_open" >&6; }
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_gdbm_gdbm_open" >&5
+printf '%s\n' "$ac_cv_lib_gdbm_gdbm_open" >&6; }
if test "x$ac_cv_lib_gdbm_gdbm_open" = xyes
then :
@@ -27223,10 +27084,10 @@
ext_shared=$save_ext_shared
-printf "%s\n" "#define GDBM_INCLUDE_FILE \"$THIS_INCLUDE\"" >>confdefs.h
+printf '%s\n' "#define GDBM_INCLUDE_FILE \"$THIS_INCLUDE\"" >>confdefs.h
-printf "%s\n" "#define DBA_GDBM 1" >>confdefs.h
+printf '%s\n' "#define DBA_GDBM 1" >>confdefs.h
THIS_LIBS=gdbm
@@ -27375,7 +27236,7 @@
else
THIS_FULL_NAME="$THIS_NAME"
fi
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $THIS_FULL_NAME support" >&5
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for $THIS_FULL_NAME support" >&5
printf %s "checking for $THIS_FULL_NAME support... " >&6; }
if test -n ""; then
as_fn_error $? "" "$LINENO" 5
@@ -27383,11 +27244,11 @@
if test "$THIS_RESULT" = "yes" || test "$THIS_RESULT" = "builtin"; then
HAVE_DBA=1
eval HAVE_$THIS_NAME=1
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $THIS_RESULT" >&5
-printf "%s\n" "$THIS_RESULT" >&6; }
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $THIS_RESULT" >&5
+printf '%s\n' "$THIS_RESULT" >&6; }
else
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
-printf "%s\n" "no" >&6; }
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf '%s\n' "no" >&6; }
fi
unset THIS_RESULT THIS_NAME THIS_FULL_NAME
@@ -27526,8 +27387,8 @@
esac
done
- as_ac_Lib=`printf "%s\n" "ac_cv_lib_$LIB""_dbm_open" | sed "$as_sed_sh"`
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for dbm_open in -l$LIB" >&5
+ as_ac_Lib=`printf '%s\n' "ac_cv_lib_$LIB""_dbm_open" | sed "$as_sed_sh"`
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for dbm_open in -l$LIB" >&5
printf %s "checking for dbm_open in -l$LIB... " >&6; }
if eval test \${$as_ac_Lib+y}
then :
@@ -27569,8 +27430,8 @@
esac
fi
eval ac_res=\$$as_ac_Lib
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
-printf "%s\n" "$ac_res" >&6; }
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
+printf '%s\n' "$ac_res" >&6; }
if eval test \"x\$"$as_ac_Lib"\" = x"yes"
then :
@@ -27578,10 +27439,10 @@
ext_shared=$save_ext_shared
-printf "%s\n" "#define NDBM_INCLUDE_FILE \"$THIS_INCLUDE\"" >>confdefs.h
+printf '%s\n' "#define NDBM_INCLUDE_FILE \"$THIS_INCLUDE\"" >>confdefs.h
-printf "%s\n" "#define DBA_NDBM 1" >>confdefs.h
+printf '%s\n' "#define DBA_NDBM 1" >>confdefs.h
THIS_LIBS=$LIB
@@ -27734,7 +27595,7 @@
else
THIS_FULL_NAME="$THIS_NAME"
fi
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $THIS_FULL_NAME support" >&5
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for $THIS_FULL_NAME support" >&5
printf %s "checking for $THIS_FULL_NAME support... " >&6; }
if test -n ""; then
as_fn_error $? "" "$LINENO" 5
@@ -27742,11 +27603,11 @@
if test "$THIS_RESULT" = "yes" || test "$THIS_RESULT" = "builtin"; then
HAVE_DBA=1
eval HAVE_$THIS_NAME=1
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $THIS_RESULT" >&5
-printf "%s\n" "$THIS_RESULT" >&6; }
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $THIS_RESULT" >&5
+printf '%s\n' "$THIS_RESULT" >&6; }
else
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
-printf "%s\n" "no" >&6; }
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf '%s\n' "no" >&6; }
fi
unset THIS_RESULT THIS_NAME THIS_FULL_NAME
@@ -27915,8 +27776,8 @@
esac
done
- as_ac_Lib=`printf "%s\n" "ac_cv_lib_$LIB""_tcadbopen" | sed "$as_sed_sh"`
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for tcadbopen in -l$LIB" >&5
+ as_ac_Lib=`printf '%s\n' "ac_cv_lib_$LIB""_tcadbopen" | sed "$as_sed_sh"`
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for tcadbopen in -l$LIB" >&5
printf %s "checking for tcadbopen in -l$LIB... " >&6; }
if eval test \${$as_ac_Lib+y}
then :
@@ -27958,8 +27819,8 @@
esac
fi
eval ac_res=\$$as_ac_Lib
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
-printf "%s\n" "$ac_res" >&6; }
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
+printf '%s\n' "$ac_res" >&6; }
if eval test \"x\$"$as_ac_Lib"\" = x"yes"
then :
@@ -27967,10 +27828,10 @@
ext_shared=$save_ext_shared
-printf "%s\n" "#define TCADB_INCLUDE_FILE \"$THIS_INCLUDE\"" >>confdefs.h
+printf '%s\n' "#define TCADB_INCLUDE_FILE \"$THIS_INCLUDE\"" >>confdefs.h
-printf "%s\n" "#define DBA_TCADB 1" >>confdefs.h
+printf '%s\n' "#define DBA_TCADB 1" >>confdefs.h
THIS_LIBS=$LIB
@@ -28123,7 +27984,7 @@
else
THIS_FULL_NAME="$THIS_NAME"
fi
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $THIS_FULL_NAME support" >&5
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for $THIS_FULL_NAME support" >&5
printf %s "checking for $THIS_FULL_NAME support... " >&6; }
if test -n ""; then
as_fn_error $? "" "$LINENO" 5
@@ -28131,11 +27992,11 @@
if test "$THIS_RESULT" = "yes" || test "$THIS_RESULT" = "builtin"; then
HAVE_DBA=1
eval HAVE_$THIS_NAME=1
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $THIS_RESULT" >&5
-printf "%s\n" "$THIS_RESULT" >&6; }
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $THIS_RESULT" >&5
+printf '%s\n' "$THIS_RESULT" >&6; }
else
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
-printf "%s\n" "no" >&6; }
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf '%s\n' "no" >&6; }
fi
unset THIS_RESULT THIS_NAME THIS_FULL_NAME
@@ -28304,8 +28165,8 @@
esac
done
- as_ac_Lib=`printf "%s\n" "ac_cv_lib_$LIB""_mdb_env_open" | sed "$as_sed_sh"`
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for mdb_env_open in -l$LIB" >&5
+ as_ac_Lib=`printf '%s\n' "ac_cv_lib_$LIB""_mdb_env_open" | sed "$as_sed_sh"`
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for mdb_env_open in -l$LIB" >&5
printf %s "checking for mdb_env_open in -l$LIB... " >&6; }
if eval test \${$as_ac_Lib+y}
then :
@@ -28347,8 +28208,8 @@
esac
fi
eval ac_res=\$$as_ac_Lib
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
-printf "%s\n" "$ac_res" >&6; }
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
+printf '%s\n' "$ac_res" >&6; }
if eval test \"x\$"$as_ac_Lib"\" = x"yes"
then :
@@ -28356,10 +28217,10 @@
ext_shared=$save_ext_shared
-printf "%s\n" "#define LMDB_INCLUDE_FILE \"$THIS_INCLUDE\"" >>confdefs.h
+printf '%s\n' "#define LMDB_INCLUDE_FILE \"$THIS_INCLUDE\"" >>confdefs.h
-printf "%s\n" "#define DBA_LMDB 1" >>confdefs.h
+printf '%s\n' "#define DBA_LMDB 1" >>confdefs.h
THIS_LIBS=$LIB
@@ -28512,7 +28373,7 @@
else
THIS_FULL_NAME="$THIS_NAME"
fi
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $THIS_FULL_NAME support" >&5
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for $THIS_FULL_NAME support" >&5
printf %s "checking for $THIS_FULL_NAME support... " >&6; }
if test -n ""; then
as_fn_error $? "" "$LINENO" 5
@@ -28520,11 +28381,11 @@
if test "$THIS_RESULT" = "yes" || test "$THIS_RESULT" = "builtin"; then
HAVE_DBA=1
eval HAVE_$THIS_NAME=1
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $THIS_RESULT" >&5
-printf "%s\n" "$THIS_RESULT" >&6; }
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $THIS_RESULT" >&5
+printf '%s\n' "$THIS_RESULT" >&6; }
else
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
-printf "%s\n" "no" >&6; }
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf '%s\n' "no" >&6; }
fi
unset THIS_RESULT THIS_NAME THIS_FULL_NAME
@@ -28665,14 +28526,14 @@
if ${THIS_LIBS:+false} :
then :
- { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in '$ac_pwd':" >&5
-printf "%s\n" "$as_me: error: in '$ac_pwd':" >&2;}
+ { { printf '%s\n' "$as_me:${as_lineno-$LINENO}: error: in '$ac_pwd':" >&5
+printf '%s\n' "$as_me: error: in '$ac_pwd':" >&2;}
as_fn_error $? "DB4 major version check failed: header contains different version
See 'config.log' for more details" "$LINENO" 5; }
fi
if test "4" = "4"; then
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for DB4 minor version and patch level" >&5
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for DB4 minor version and patch level" >&5
printf %s "checking for DB4 minor version and patch level... " >&6; }
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
@@ -28686,8 +28547,8 @@
if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
$EGREP_TRADITIONAL "yes" >/dev/null 2>&1
then :
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: ok" >&5
-printf "%s\n" "ok" >&6; }
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: ok" >&5
+printf '%s\n' "ok" >&6; }
else case e in #(
e) as_fn_error $? "Version 4.1 requires patch level 25" "$LINENO" 5 ;;
esac
@@ -28698,7 +28559,7 @@
if test "x$ext_shared" = xyes
then :
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if dba can be used as shared extension" >&5
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking if dba can be used as shared extension" >&5
printf %s "checking if dba can be used as shared extension... " >&6; }
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
@@ -28712,8 +28573,8 @@
if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
$EGREP_TRADITIONAL "yes" >/dev/null 2>&1
then :
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-printf "%s\n" "yes" >&6; }
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+printf '%s\n' "yes" >&6; }
else case e in #(
e) as_fn_error $? "At least version 3.3 is required" "$LINENO" 5 ;;
esac
@@ -28729,7 +28590,7 @@
fi
-printf "%s\n" "#define DBA_DB4 1" >>confdefs.h
+printf '%s\n' "#define DBA_DB4 1" >>confdefs.h
if ${THIS_INCLUDE:+false} :
@@ -28737,7 +28598,7 @@
else case e in #(
e)
-printf "%s\n" "#define DB4_INCLUDE_FILE \"$THIS_INCLUDE\"" >>confdefs.h
+printf '%s\n' "#define DB4_INCLUDE_FILE \"$THIS_INCLUDE\"" >>confdefs.h
;;
esac
fi
@@ -28868,7 +28729,7 @@
else
THIS_FULL_NAME="$THIS_NAME"
fi
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $THIS_FULL_NAME support" >&5
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for $THIS_FULL_NAME support" >&5
printf %s "checking for $THIS_FULL_NAME support... " >&6; }
if test -n ""; then
as_fn_error $? "" "$LINENO" 5
@@ -28876,11 +28737,11 @@
if test "$THIS_RESULT" = "yes" || test "$THIS_RESULT" = "builtin"; then
HAVE_DBA=1
eval HAVE_$THIS_NAME=1
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $THIS_RESULT" >&5
-printf "%s\n" "$THIS_RESULT" >&6; }
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $THIS_RESULT" >&5
+printf '%s\n' "$THIS_RESULT" >&6; }
else
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
-printf "%s\n" "no" >&6; }
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf '%s\n' "no" >&6; }
fi
unset THIS_RESULT THIS_NAME THIS_FULL_NAME
@@ -28896,7 +28757,7 @@
else
THIS_FULL_NAME="$THIS_NAME"
fi
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $THIS_FULL_NAME support" >&5
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for $THIS_FULL_NAME support" >&5
printf %s "checking for $THIS_FULL_NAME support... " >&6; }
if test -n "You cannot combine --with-db3 with --with-db4"; then
as_fn_error $? "You cannot combine --with-db3 with --with-db4" "$LINENO" 5
@@ -28904,11 +28765,11 @@
if test "$THIS_RESULT" = "yes" || test "$THIS_RESULT" = "builtin"; then
HAVE_DBA=1
eval HAVE_$THIS_NAME=1
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $THIS_RESULT" >&5
-printf "%s\n" "$THIS_RESULT" >&6; }
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $THIS_RESULT" >&5
+printf '%s\n' "$THIS_RESULT" >&6; }
else
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
-printf "%s\n" "no" >&6; }
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf '%s\n' "no" >&6; }
fi
unset THIS_RESULT THIS_NAME THIS_FULL_NAME
@@ -29004,14 +28865,14 @@
if ${THIS_LIBS:+false} :
then :
- { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in '$ac_pwd':" >&5
-printf "%s\n" "$as_me: error: in '$ac_pwd':" >&2;}
+ { { printf '%s\n' "$as_me:${as_lineno-$LINENO}: error: in '$ac_pwd':" >&5
+printf '%s\n' "$as_me: error: in '$ac_pwd':" >&2;}
as_fn_error $? "DB3 major version check failed: header contains different version
See 'config.log' for more details" "$LINENO" 5; }
fi
if test "3" = "4"; then
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for DB4 minor version and patch level" >&5
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for DB4 minor version and patch level" >&5
printf %s "checking for DB4 minor version and patch level... " >&6; }
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
@@ -29025,8 +28886,8 @@
if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
$EGREP_TRADITIONAL "yes" >/dev/null 2>&1
then :
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: ok" >&5
-printf "%s\n" "ok" >&6; }
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: ok" >&5
+printf '%s\n' "ok" >&6; }
else case e in #(
e) as_fn_error $? "Version 4.1 requires patch level 25" "$LINENO" 5 ;;
esac
@@ -29037,7 +28898,7 @@
if test "x$ext_shared" = xyes
then :
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if dba can be used as shared extension" >&5
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking if dba can be used as shared extension" >&5
printf %s "checking if dba can be used as shared extension... " >&6; }
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
@@ -29051,8 +28912,8 @@
if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
$EGREP_TRADITIONAL "yes" >/dev/null 2>&1
then :
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-printf "%s\n" "yes" >&6; }
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+printf '%s\n' "yes" >&6; }
else case e in #(
e) as_fn_error $? "At least version 3.3 is required" "$LINENO" 5 ;;
esac
@@ -29068,7 +28929,7 @@
fi
-printf "%s\n" "#define DBA_DB3 1" >>confdefs.h
+printf '%s\n' "#define DBA_DB3 1" >>confdefs.h
if ${THIS_INCLUDE:+false} :
@@ -29076,7 +28937,7 @@
else case e in #(
e)
-printf "%s\n" "#define DB3_INCLUDE_FILE \"$THIS_INCLUDE\"" >>confdefs.h
+printf '%s\n' "#define DB3_INCLUDE_FILE \"$THIS_INCLUDE\"" >>confdefs.h
;;
esac
fi
@@ -29207,7 +29068,7 @@
else
THIS_FULL_NAME="$THIS_NAME"
fi
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $THIS_FULL_NAME support" >&5
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for $THIS_FULL_NAME support" >&5
printf %s "checking for $THIS_FULL_NAME support... " >&6; }
if test -n ""; then
as_fn_error $? "" "$LINENO" 5
@@ -29215,11 +29076,11 @@
if test "$THIS_RESULT" = "yes" || test "$THIS_RESULT" = "builtin"; then
HAVE_DBA=1
eval HAVE_$THIS_NAME=1
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $THIS_RESULT" >&5
-printf "%s\n" "$THIS_RESULT" >&6; }
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $THIS_RESULT" >&5
+printf '%s\n' "$THIS_RESULT" >&6; }
else
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
-printf "%s\n" "no" >&6; }
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf '%s\n' "no" >&6; }
fi
unset THIS_RESULT THIS_NAME THIS_FULL_NAME
@@ -29234,7 +29095,7 @@
else
THIS_FULL_NAME="$THIS_NAME"
fi
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $THIS_FULL_NAME support" >&5
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for $THIS_FULL_NAME support" >&5
printf %s "checking for $THIS_FULL_NAME support... " >&6; }
if test -n "You cannot combine --with-db2 with --with-db3 or --with-db4"; then
as_fn_error $? "You cannot combine --with-db2 with --with-db3 or --with-db4" "$LINENO" 5
@@ -29242,11 +29103,11 @@
if test "$THIS_RESULT" = "yes" || test "$THIS_RESULT" = "builtin"; then
HAVE_DBA=1
eval HAVE_$THIS_NAME=1
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $THIS_RESULT" >&5
-printf "%s\n" "$THIS_RESULT" >&6; }
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $THIS_RESULT" >&5
+printf '%s\n' "$THIS_RESULT" >&6; }
else
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
-printf "%s\n" "no" >&6; }
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf '%s\n' "no" >&6; }
fi
unset THIS_RESULT THIS_NAME THIS_FULL_NAME
@@ -29334,14 +29195,14 @@
if ${THIS_LIBS:+false} :
then :
- { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in '$ac_pwd':" >&5
-printf "%s\n" "$as_me: error: in '$ac_pwd':" >&2;}
+ { { printf '%s\n' "$as_me:${as_lineno-$LINENO}: error: in '$ac_pwd':" >&5
+printf '%s\n' "$as_me: error: in '$ac_pwd':" >&2;}
as_fn_error $? "DB2 major version check failed: header contains different version
See 'config.log' for more details" "$LINENO" 5; }
fi
if test "2" = "4"; then
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for DB4 minor version and patch level" >&5
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for DB4 minor version and patch level" >&5
printf %s "checking for DB4 minor version and patch level... " >&6; }
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
@@ -29355,8 +29216,8 @@
if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
$EGREP_TRADITIONAL "yes" >/dev/null 2>&1
then :
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: ok" >&5
-printf "%s\n" "ok" >&6; }
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: ok" >&5
+printf '%s\n' "ok" >&6; }
else case e in #(
e) as_fn_error $? "Version 4.1 requires patch level 25" "$LINENO" 5 ;;
esac
@@ -29367,7 +29228,7 @@
if test "x$ext_shared" = xyes
then :
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if dba can be used as shared extension" >&5
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking if dba can be used as shared extension" >&5
printf %s "checking if dba can be used as shared extension... " >&6; }
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
@@ -29381,8 +29242,8 @@
if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
$EGREP_TRADITIONAL "yes" >/dev/null 2>&1
then :
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-printf "%s\n" "yes" >&6; }
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+printf '%s\n' "yes" >&6; }
else case e in #(
e) as_fn_error $? "At least version 3.3 is required" "$LINENO" 5 ;;
esac
@@ -29398,7 +29259,7 @@
fi
-printf "%s\n" "#define DBA_DB2 1" >>confdefs.h
+printf '%s\n' "#define DBA_DB2 1" >>confdefs.h
if ${THIS_INCLUDE:+false} :
@@ -29406,7 +29267,7 @@
else case e in #(
e)
-printf "%s\n" "#define DB2_INCLUDE_FILE \"$THIS_INCLUDE\"" >>confdefs.h
+printf '%s\n' "#define DB2_INCLUDE_FILE \"$THIS_INCLUDE\"" >>confdefs.h
;;
esac
fi
@@ -29537,7 +29398,7 @@
else
THIS_FULL_NAME="$THIS_NAME"
fi
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $THIS_FULL_NAME support" >&5
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for $THIS_FULL_NAME support" >&5
printf %s "checking for $THIS_FULL_NAME support... " >&6; }
if test -n ""; then
as_fn_error $? "" "$LINENO" 5
@@ -29545,18 +29406,18 @@
if test "$THIS_RESULT" = "yes" || test "$THIS_RESULT" = "builtin"; then
HAVE_DBA=1
eval HAVE_$THIS_NAME=1
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $THIS_RESULT" >&5
-printf "%s\n" "$THIS_RESULT" >&6; }
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $THIS_RESULT" >&5
+printf '%s\n' "$THIS_RESULT" >&6; }
else
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
-printf "%s\n" "no" >&6; }
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf '%s\n' "no" >&6; }
fi
unset THIS_RESULT THIS_NAME THIS_FULL_NAME
if test "$PHP_DB1" != "no"; then
unset THIS_INCLUDE THIS_LIBS THIS_LFLAGS THIS_PREFIX THIS_RESULT
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for DB1 in library" >&5
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for DB1 in library" >&5
printf %s "checking for DB1 in library... " >&6; }
if test "$HAVE_DB4" = "1"; then
THIS_VERSION=4
@@ -29572,7 +29433,7 @@
fi
if test "$HAVE_DB4" = "1" || test "$HAVE_DB3" = "1" || test "$HAVE_DB2" = "1"; then
-printf "%s\n" "#define DB1_VERSION \"Berkeley DB 1.85 emulation in DB$THIS_VERSION\"" >>confdefs.h
+printf '%s\n' "#define DB1_VERSION \"Berkeley DB 1.85 emulation in DB$THIS_VERSION\"" >>confdefs.h
for i in \
db$THIS_VERSION/db_185.h \
@@ -29586,7 +29447,7 @@
done
else
-printf "%s\n" "#define DB1_VERSION \"Unknown DB1\"" >>confdefs.h
+printf '%s\n' "#define DB1_VERSION \"Unknown DB1\"" >>confdefs.h
for i in $PHP_DB1 /usr/local /usr; do
if test -f "$i/db1/db.h"; then
@@ -29605,12 +29466,12 @@
done
THIS_LIBS=db
fi
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $THIS_LIBS" >&5
-printf "%s\n" "$THIS_LIBS" >&6; }
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for DB1 in header" >&5
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $THIS_LIBS" >&5
+printf '%s\n' "$THIS_LIBS" >&6; }
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for DB1 in header" >&5
printf %s "checking for DB1 in header... " >&6; }
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $THIS_INCLUDE" >&5
-printf "%s\n" "$THIS_INCLUDE" >&6; }
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $THIS_INCLUDE" >&5
+printf '%s\n' "$THIS_INCLUDE" >&6; }
if test -n "$THIS_INCLUDE"; then
old_LDFLAGS=$LDFLAGS
@@ -29631,10 +29492,10 @@
if ac_fn_c_try_link "$LINENO"
then :
-printf "%s\n" "#define DB1_INCLUDE_FILE \"$THIS_INCLUDE\"" >>confdefs.h
+printf '%s\n' "#define DB1_INCLUDE_FILE \"$THIS_INCLUDE\"" >>confdefs.h
-printf "%s\n" "#define DBA_DB1 1" >>confdefs.h
+printf '%s\n' "#define DBA_DB1 1" >>confdefs.h
THIS_RESULT=yes
@@ -29780,7 +29641,7 @@
else
THIS_FULL_NAME="$THIS_NAME"
fi
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $THIS_FULL_NAME support" >&5
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for $THIS_FULL_NAME support" >&5
printf %s "checking for $THIS_FULL_NAME support... " >&6; }
if test -n ""; then
as_fn_error $? "" "$LINENO" 5
@@ -29788,11 +29649,11 @@
if test "$THIS_RESULT" = "yes" || test "$THIS_RESULT" = "builtin"; then
HAVE_DBA=1
eval HAVE_$THIS_NAME=1
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $THIS_RESULT" >&5
-printf "%s\n" "$THIS_RESULT" >&6; }
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $THIS_RESULT" >&5
+printf '%s\n' "$THIS_RESULT" >&6; }
else
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
-printf "%s\n" "no" >&6; }
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf '%s\n' "no" >&6; }
fi
unset THIS_RESULT THIS_NAME THIS_FULL_NAME
@@ -29808,7 +29669,7 @@
else
THIS_FULL_NAME="$THIS_NAME"
fi
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $THIS_FULL_NAME support" >&5
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for $THIS_FULL_NAME support" >&5
printf %s "checking for $THIS_FULL_NAME support... " >&6; }
if test -n "You cannot combine --with-dbm with --with-qdbm"; then
as_fn_error $? "You cannot combine --with-dbm with --with-qdbm" "$LINENO" 5
@@ -29816,11 +29677,11 @@
if test "$THIS_RESULT" = "yes" || test "$THIS_RESULT" = "builtin"; then
HAVE_DBA=1
eval HAVE_$THIS_NAME=1
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $THIS_RESULT" >&5
-printf "%s\n" "$THIS_RESULT" >&6; }
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $THIS_RESULT" >&5
+printf '%s\n' "$THIS_RESULT" >&6; }
else
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
-printf "%s\n" "no" >&6; }
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf '%s\n' "no" >&6; }
fi
unset THIS_RESULT THIS_NAME THIS_FULL_NAME
@@ -29957,8 +29818,8 @@
esac
done
- as_ac_Lib=`printf "%s\n" "ac_cv_lib_$LIB""_dbminit" | sed "$as_sed_sh"`
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for dbminit in -l$LIB" >&5
+ as_ac_Lib=`printf '%s\n' "ac_cv_lib_$LIB""_dbminit" | sed "$as_sed_sh"`
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for dbminit in -l$LIB" >&5
printf %s "checking for dbminit in -l$LIB... " >&6; }
if eval test \${$as_ac_Lib+y}
then :
@@ -30000,40 +29861,40 @@
esac
fi
eval ac_res=\$$as_ac_Lib
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
-printf "%s\n" "$ac_res" >&6; }
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
+printf '%s\n' "$ac_res" >&6; }
if eval test \"x\$"$as_ac_Lib"\" = x"yes"
then :
LDFLAGS=$save_old_LDFLAGS
ext_shared=$save_ext_shared
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for DBM using GDBM" >&5
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for DBM using GDBM" >&5
printf %s "checking for DBM using GDBM... " >&6; }
-printf "%s\n" "#define DBM_INCLUDE_FILE \"$THIS_INCLUDE\"" >>confdefs.h
+printf '%s\n' "#define DBM_INCLUDE_FILE \"$THIS_INCLUDE\"" >>confdefs.h
if test "x$LIB" = xgdbm
then :
-printf "%s\n" "#define DBM_VERSION \"GDBM\"" >>confdefs.h
+printf '%s\n' "#define DBM_VERSION \"GDBM\"" >>confdefs.h
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-printf "%s\n" "yes" >&6; }
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+printf '%s\n' "yes" >&6; }
else case e in #(
e)
-printf "%s\n" "#define DBM_VERSION \"DBM\"" >>confdefs.h
+printf '%s\n' "#define DBM_VERSION \"DBM\"" >>confdefs.h
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
-printf "%s\n" "no" >&6; }
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf '%s\n' "no" >&6; }
;;
esac
fi
-printf "%s\n" "#define DBA_DBM 1" >>confdefs.h
+printf '%s\n' "#define DBA_DBM 1" >>confdefs.h
THIS_LIBS=$LIB
@@ -30186,7 +30047,7 @@
else
THIS_FULL_NAME="$THIS_NAME"
fi
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $THIS_FULL_NAME support" >&5
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for $THIS_FULL_NAME support" >&5
printf %s "checking for $THIS_FULL_NAME support... " >&6; }
if test -n ""; then
as_fn_error $? "" "$LINENO" 5
@@ -30194,11 +30055,11 @@
if test "$THIS_RESULT" = "yes" || test "$THIS_RESULT" = "builtin"; then
HAVE_DBA=1
eval HAVE_$THIS_NAME=1
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $THIS_RESULT" >&5
-printf "%s\n" "$THIS_RESULT" >&6; }
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $THIS_RESULT" >&5
+printf '%s\n' "$THIS_RESULT" >&6; }
else
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
-printf "%s\n" "no" >&6; }
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf '%s\n' "no" >&6; }
fi
unset THIS_RESULT THIS_NAME THIS_FULL_NAME
@@ -30281,10 +30142,10 @@
if test "$PHP_CDB" = "yes"; then
-printf "%s\n" "#define DBA_CDB_BUILTIN 1" >>confdefs.h
+printf '%s\n' "#define DBA_CDB_BUILTIN 1" >>confdefs.h
-printf "%s\n" "#define DBA_CDB 1" >>confdefs.h
+printf '%s\n' "#define DBA_CDB 1" >>confdefs.h
cdb_sources="libcdb/cdb.c libcdb/cdb_make.c libcdb/uint32.c"
THIS_RESULT="builtin"
@@ -30418,8 +30279,8 @@
esac
done
- as_ac_Lib=`printf "%s\n" "ac_cv_lib_$LIB""_cdb_read" | sed "$as_sed_sh"`
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for cdb_read in -l$LIB" >&5
+ as_ac_Lib=`printf '%s\n' "ac_cv_lib_$LIB""_cdb_read" | sed "$as_sed_sh"`
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for cdb_read in -l$LIB" >&5
printf %s "checking for cdb_read in -l$LIB... " >&6; }
if eval test \${$as_ac_Lib+y}
then :
@@ -30461,8 +30322,8 @@
esac
fi
eval ac_res=\$$as_ac_Lib
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
-printf "%s\n" "$ac_res" >&6; }
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
+printf '%s\n' "$ac_res" >&6; }
if eval test \"x\$"$as_ac_Lib"\" = x"yes"
then :
@@ -30470,10 +30331,10 @@
ext_shared=$save_ext_shared
-printf "%s\n" "#define CDB_INCLUDE_FILE \"$THIS_INCLUDE\"" >>confdefs.h
+printf '%s\n' "#define CDB_INCLUDE_FILE \"$THIS_INCLUDE\"" >>confdefs.h
-printf "%s\n" "#define DBA_CDB 1" >>confdefs.h
+printf '%s\n' "#define DBA_CDB 1" >>confdefs.h
THIS_LIBS=$LIB
@@ -30626,7 +30487,7 @@
else
THIS_FULL_NAME="$THIS_NAME"
fi
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $THIS_FULL_NAME support" >&5
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for $THIS_FULL_NAME support" >&5
printf %s "checking for $THIS_FULL_NAME support... " >&6; }
if test -n ""; then
as_fn_error $? "" "$LINENO" 5
@@ -30634,18 +30495,18 @@
if test "$THIS_RESULT" = "yes" || test "$THIS_RESULT" = "builtin"; then
HAVE_DBA=1
eval HAVE_$THIS_NAME=1
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $THIS_RESULT" >&5
-printf "%s\n" "$THIS_RESULT" >&6; }
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $THIS_RESULT" >&5
+printf '%s\n' "$THIS_RESULT" >&6; }
else
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
-printf "%s\n" "no" >&6; }
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf '%s\n' "no" >&6; }
fi
unset THIS_RESULT THIS_NAME THIS_FULL_NAME
if test "$PHP_INIFILE" != "no"; then
-printf "%s\n" "#define DBA_INIFILE 1" >>confdefs.h
+printf '%s\n' "#define DBA_INIFILE 1" >>confdefs.h
ini_sources="libinifile/inifile.c"
THIS_RESULT="builtin"
@@ -30657,7 +30518,7 @@
else
THIS_FULL_NAME="$THIS_NAME"
fi
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $THIS_FULL_NAME support" >&5
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for $THIS_FULL_NAME support" >&5
printf %s "checking for $THIS_FULL_NAME support... " >&6; }
if test -n ""; then
as_fn_error $? "" "$LINENO" 5
@@ -30665,18 +30526,18 @@
if test "$THIS_RESULT" = "yes" || test "$THIS_RESULT" = "builtin"; then
HAVE_DBA=1
eval HAVE_$THIS_NAME=1
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $THIS_RESULT" >&5
-printf "%s\n" "$THIS_RESULT" >&6; }
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $THIS_RESULT" >&5
+printf '%s\n' "$THIS_RESULT" >&6; }
else
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
-printf "%s\n" "no" >&6; }
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf '%s\n' "no" >&6; }
fi
unset THIS_RESULT THIS_NAME THIS_FULL_NAME
if test "$PHP_FLATFILE" != "no"; then
-printf "%s\n" "#define DBA_FLATFILE 1" >>confdefs.h
+printf '%s\n' "#define DBA_FLATFILE 1" >>confdefs.h
flat_sources="libflatfile/flatfile.c"
THIS_RESULT="builtin"
@@ -30688,7 +30549,7 @@
else
THIS_FULL_NAME="$THIS_NAME"
fi
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $THIS_FULL_NAME support" >&5
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for $THIS_FULL_NAME support" >&5
printf %s "checking for $THIS_FULL_NAME support... " >&6; }
if test -n ""; then
as_fn_error $? "" "$LINENO" 5
@@ -30696,32 +30557,32 @@
if test "$THIS_RESULT" = "yes" || test "$THIS_RESULT" = "builtin"; then
HAVE_DBA=1
eval HAVE_$THIS_NAME=1
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $THIS_RESULT" >&5
-printf "%s\n" "$THIS_RESULT" >&6; }
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $THIS_RESULT" >&5
+printf '%s\n' "$THIS_RESULT" >&6; }
else
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
-printf "%s\n" "no" >&6; }
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf '%s\n' "no" >&6; }
fi
unset THIS_RESULT THIS_NAME THIS_FULL_NAME
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether to enable DBA interface" >&5
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking whether to enable DBA interface" >&5
printf %s "checking whether to enable DBA interface... " >&6; }
if test "x$HAVE_DBA" = x1
then :
if test "x$ext_shared" = xyes
then :
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes, shared" >&5
-printf "%s\n" "yes, shared" >&6; }
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: yes, shared" >&5
+printf '%s\n' "yes, shared" >&6; }
else case e in #(
- e) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-printf "%s\n" "yes" >&6; } ;;
+ e) { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+printf '%s\n' "yes" >&6; } ;;
esac
fi
-printf "%s\n" "#define HAVE_DBA 1" >>confdefs.h
+printf '%s\n' "#define HAVE_DBA 1" >>confdefs.h
ext_builddir=ext/dba
@@ -30858,7 +30719,7 @@
EOF
-printf "%s\n" "#define COMPILE_DL_DBA 1" >>confdefs.h
+printf '%s\n' "#define COMPILE_DL_DBA 1" >>confdefs.h
fi
fi
@@ -30983,8 +30844,8 @@
else case e in #(
- e) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
-printf "%s\n" "no" >&6; } ;;
+ e) { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf '%s\n' "no" >&6; } ;;
esac
fi
@@ -30994,7 +30855,7 @@
php_enable_dl_test=no
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether to enable dl-test extension" >&5
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking whether to enable dl-test extension" >&5
printf %s "checking whether to enable dl-test extension... " >&6; }
# Check whether --enable-dl-test was given.
if test ${enable_dl_test+y}
@@ -31031,8 +30892,8 @@
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ext_output" >&5
-printf "%s\n" "$ext_output" >&6; }
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $ext_output" >&5
+printf '%s\n' "$ext_output" >&6; }
@@ -31175,7 +31036,7 @@
EOF
-printf "%s\n" "#define COMPILE_DL_DL_TEST 1" >>confdefs.h
+printf '%s\n' "#define COMPILE_DL_DL_TEST 1" >>confdefs.h
fi
fi
@@ -31301,7 +31162,7 @@
php_enable_dom=yes
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether to enable DOM support" >&5
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking whether to enable DOM support" >&5
printf %s "checking whether to enable DOM support... " >&6; }
# Check whether --enable-dom was given.
if test ${enable_dom+y}
@@ -31338,8 +31199,8 @@
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ext_output" >&5
-printf "%s\n" "$ext_output" >&6; }
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $ext_output" >&5
+printf '%s\n' "$ext_output" >&6; }
@@ -31348,17 +31209,17 @@
pkg_failed=no
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for libxml-2.0 >= 2.9.4" >&5
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for libxml-2.0 >= 2.9.4" >&5
printf %s "checking for libxml-2.0 >= 2.9.4... " >&6; }
if test -n "$LIBXML_CFLAGS"; then
pkg_cv_LIBXML_CFLAGS="$LIBXML_CFLAGS"
elif test -n "$PKG_CONFIG"; then
if test -n "$PKG_CONFIG" && \
- { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libxml-2.0 >= 2.9.4\""; } >&5
+ { { printf '%s\n' "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libxml-2.0 >= 2.9.4\""; } >&5
($PKG_CONFIG --exists --print-errors "libxml-2.0 >= 2.9.4") 2>&5
ac_status=$?
- printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ printf '%s\n' "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
test $ac_status = 0; }; then
pkg_cv_LIBXML_CFLAGS=`$PKG_CONFIG --cflags "libxml-2.0 >= 2.9.4" 2>/dev/null`
test "x$?" != "x0" && pkg_failed=yes
@@ -31372,10 +31233,10 @@
pkg_cv_LIBXML_LIBS="$LIBXML_LIBS"
elif test -n "$PKG_CONFIG"; then
if test -n "$PKG_CONFIG" && \
- { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libxml-2.0 >= 2.9.4\""; } >&5
+ { { printf '%s\n' "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libxml-2.0 >= 2.9.4\""; } >&5
($PKG_CONFIG --exists --print-errors "libxml-2.0 >= 2.9.4") 2>&5
ac_status=$?
- printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ printf '%s\n' "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
test $ac_status = 0; }; then
pkg_cv_LIBXML_LIBS=`$PKG_CONFIG --libs "libxml-2.0 >= 2.9.4" 2>/dev/null`
test "x$?" != "x0" && pkg_failed=yes
@@ -31389,8 +31250,8 @@
if test $pkg_failed = yes; then
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
-printf "%s\n" "no" >&6; }
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf '%s\n' "no" >&6; }
if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then
_pkg_short_errors_supported=yes
@@ -31416,10 +31277,10 @@
and LIBXML_LIBS to avoid the need to call pkg-config.
See the pkg-config man page for more details." "$LINENO" 5
elif test $pkg_failed = untried; then
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
-printf "%s\n" "no" >&6; }
- { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in '$ac_pwd':" >&5
-printf "%s\n" "$as_me: error: in '$ac_pwd':" >&2;}
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf '%s\n' "no" >&6; }
+ { { printf '%s\n' "$as_me:${as_lineno-$LINENO}: error: in '$ac_pwd':" >&5
+printf '%s\n' "$as_me: error: in '$ac_pwd':" >&2;}
as_fn_error $? "The pkg-config script could not be found or is too old. Make sure it
is in your PATH or set the PKG_CONFIG environment variable to the full
path to pkg-config.
@@ -31433,8 +31294,8 @@
else
LIBXML_CFLAGS=$pkg_cv_LIBXML_CFLAGS
LIBXML_LIBS=$pkg_cv_LIBXML_LIBS
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-printf "%s\n" "yes" >&6; }
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+printf '%s\n' "yes" >&6; }
fi
@@ -31594,9 +31455,9 @@
-printf "%s\n" "#define HAVE_DOM 1" >>confdefs.h
+printf '%s\n' "#define HAVE_DOM 1" >>confdefs.h
- PHP_LEXBOR_CFLAGS="-I@ext_srcdir@/lexbor -DLEXBOR_STATIC"
+ PHP_LEXBOR_CFLAGS="-Wno-unknown-warning-option -Wno-unterminated-string-initialization -I@ext_srcdir@/lexbor -DLEXBOR_STATIC"
LEXBOR_DIR="lexbor/lexbor"
LEXBOR_SOURCES=" $LEXBOR_DIR/core/array_obj.c $LEXBOR_DIR/core/array.c $LEXBOR_DIR/core/avl.c $LEXBOR_DIR/core/bst.c $LEXBOR_DIR/core/conv.c $LEXBOR_DIR/core/diyfp.c $LEXBOR_DIR/core/dobject.c $LEXBOR_DIR/core/dtoa.c $LEXBOR_DIR/core/hash.c $LEXBOR_DIR/core/mem.c $LEXBOR_DIR/core/mraw.c $LEXBOR_DIR/core/print.c $LEXBOR_DIR/core/serialize.c $LEXBOR_DIR/core/shs.c $LEXBOR_DIR/core/str.c $LEXBOR_DIR/core/strtod.c $LEXBOR_DIR/css/at_rule.c $LEXBOR_DIR/css/at_rule/state.c $LEXBOR_DIR/css/blank.c $LEXBOR_DIR/css/css.c $LEXBOR_DIR/css/declaration.c $LEXBOR_DIR/css/log.c $LEXBOR_DIR/css/parser.c $LEXBOR_DIR/css/property.c $LEXBOR_DIR/css/property/state.c $LEXBOR_DIR/css/rule.c $LEXBOR_DIR/css/selectors/pseudo_state.c $LEXBOR_DIR/css/selectors/pseudo.c $LEXBOR_DIR/css/selectors/selector.c $LEXBOR_DIR/css/selectors/selectors.c $LEXBOR_DIR/css/selectors/state.c $LEXBOR_DIR/css/state.c $LEXBOR_DIR/css/stylesheet.c $LEXBOR_DIR/css/syntax/anb.c $LEXBOR_DIR/css/syntax/parser.c $LEXBOR_DIR/css/syntax/state.c $LEXBOR_DIR/css/syntax/syntax.c $LEXBOR_DIR/css/syntax/token.c $LEXBOR_DIR/css/syntax/tokenizer.c $LEXBOR_DIR/css/syntax/tokenizer/error.c $LEXBOR_DIR/css/unit.c $LEXBOR_DIR/css/value.c $LEXBOR_DIR/dom/interface.c $LEXBOR_DIR/dom/interfaces/attr.c $LEXBOR_DIR/dom/interfaces/cdata_section.c $LEXBOR_DIR/dom/interfaces/character_data.c $LEXBOR_DIR/dom/interfaces/comment.c $LEXBOR_DIR/dom/interfaces/document_fragment.c $LEXBOR_DIR/dom/interfaces/document_type.c $LEXBOR_DIR/dom/interfaces/document.c $LEXBOR_DIR/dom/interfaces/element.c $LEXBOR_DIR/dom/interfaces/node.c $LEXBOR_DIR/dom/interfaces/processing_instruction.c $LEXBOR_DIR/dom/interfaces/shadow_root.c $LEXBOR_DIR/dom/interfaces/text.c $LEXBOR_DIR/encoding/decode.c $LEXBOR_DIR/encoding/encode.c $LEXBOR_DIR/encoding/encoding.c $LEXBOR_DIR/encoding/multi.c $LEXBOR_DIR/encoding/range.c $LEXBOR_DIR/encoding/res.c $LEXBOR_DIR/encoding/single.c $LEXBOR_DIR/html/encoding.c $LEXBOR_DIR/html/interface.c $LEXBOR_DIR/html/interfaces/anchor_element.c $LEXBOR_DIR/html/interfaces/area_element.c $LEXBOR_DIR/html/interfaces/audio_element.c $LEXBOR_DIR/html/interfaces/base_element.c $LEXBOR_DIR/html/interfaces/body_element.c $LEXBOR_DIR/html/interfaces/br_element.c $LEXBOR_DIR/html/interfaces/button_element.c $LEXBOR_DIR/html/interfaces/canvas_element.c $LEXBOR_DIR/html/interfaces/d_list_element.c $LEXBOR_DIR/html/interfaces/data_element.c $LEXBOR_DIR/html/interfaces/data_list_element.c $LEXBOR_DIR/html/interfaces/details_element.c $LEXBOR_DIR/html/interfaces/dialog_element.c $LEXBOR_DIR/html/interfaces/directory_element.c $LEXBOR_DIR/html/interfaces/div_element.c $LEXBOR_DIR/html/interfaces/document.c $LEXBOR_DIR/html/interfaces/element.c $LEXBOR_DIR/html/interfaces/embed_element.c $LEXBOR_DIR/html/interfaces/field_set_element.c $LEXBOR_DIR/html/interfaces/font_element.c $LEXBOR_DIR/html/interfaces/form_element.c $LEXBOR_DIR/html/interfaces/frame_element.c $LEXBOR_DIR/html/interfaces/frame_set_element.c $LEXBOR_DIR/html/interfaces/head_element.c $LEXBOR_DIR/html/interfaces/heading_element.c $LEXBOR_DIR/html/interfaces/hr_element.c $LEXBOR_DIR/html/interfaces/html_element.c $LEXBOR_DIR/html/interfaces/iframe_element.c $LEXBOR_DIR/html/interfaces/image_element.c $LEXBOR_DIR/html/interfaces/input_element.c $LEXBOR_DIR/html/interfaces/label_element.c $LEXBOR_DIR/html/interfaces/legend_element.c $LEXBOR_DIR/html/interfaces/li_element.c $LEXBOR_DIR/html/interfaces/link_element.c $LEXBOR_DIR/html/interfaces/map_element.c $LEXBOR_DIR/html/interfaces/marquee_element.c $LEXBOR_DIR/html/interfaces/media_element.c $LEXBOR_DIR/html/interfaces/menu_element.c $LEXBOR_DIR/html/interfaces/meta_element.c $LEXBOR_DIR/html/interfaces/meter_element.c $LEXBOR_DIR/html/interfaces/mod_element.c $LEXBOR_DIR/html/interfaces/o_list_element.c $LEXBOR_DIR/html/interfaces/object_element.c $LEXBOR_DIR/html/interfaces/opt_group_element.c $LEXBOR_DIR/html/interfaces/option_element.c $LEXBOR_DIR/html/interfaces/output_element.c $LEXBOR_DIR/html/interfaces/paragraph_element.c $LEXBOR_DIR/html/interfaces/param_element.c $LEXBOR_DIR/html/interfaces/picture_element.c $LEXBOR_DIR/html/interfaces/pre_element.c $LEXBOR_DIR/html/interfaces/progress_element.c $LEXBOR_DIR/html/interfaces/quote_element.c $LEXBOR_DIR/html/interfaces/script_element.c $LEXBOR_DIR/html/interfaces/search_element.c $LEXBOR_DIR/html/interfaces/select_element.c $LEXBOR_DIR/html/interfaces/selectedcontent_element.c $LEXBOR_DIR/html/interfaces/slot_element.c $LEXBOR_DIR/html/interfaces/source_element.c $LEXBOR_DIR/html/interfaces/span_element.c $LEXBOR_DIR/html/interfaces/style_element.c $LEXBOR_DIR/html/interfaces/table_caption_element.c $LEXBOR_DIR/html/interfaces/table_cell_element.c $LEXBOR_DIR/html/interfaces/table_col_element.c $LEXBOR_DIR/html/interfaces/table_element.c $LEXBOR_DIR/html/interfaces/table_row_element.c $LEXBOR_DIR/html/interfaces/table_section_element.c $LEXBOR_DIR/html/interfaces/template_element.c $LEXBOR_DIR/html/interfaces/text_area_element.c $LEXBOR_DIR/html/interfaces/time_element.c $LEXBOR_DIR/html/interfaces/title_element.c $LEXBOR_DIR/html/interfaces/track_element.c $LEXBOR_DIR/html/interfaces/u_list_element.c $LEXBOR_DIR/html/interfaces/unknown_element.c $LEXBOR_DIR/html/interfaces/video_element.c $LEXBOR_DIR/html/interfaces/window.c $LEXBOR_DIR/html/parser.c $LEXBOR_DIR/html/tag.c $LEXBOR_DIR/html/token_attr.c $LEXBOR_DIR/html/token.c $LEXBOR_DIR/html/tokenizer.c $LEXBOR_DIR/html/tokenizer/error.c $LEXBOR_DIR/html/tokenizer/state_comment.c $LEXBOR_DIR/html/tokenizer/state_doctype.c $LEXBOR_DIR/html/tokenizer/state_rawtext.c $LEXBOR_DIR/html/tokenizer/state_rcdata.c $LEXBOR_DIR/html/tokenizer/state_script.c $LEXBOR_DIR/html/tokenizer/state.c $LEXBOR_DIR/html/tree.c $LEXBOR_DIR/html/tree/active_formatting.c $LEXBOR_DIR/html/tree/error.c $LEXBOR_DIR/html/tree/insertion_mode/after_after_body.c $LEXBOR_DIR/html/tree/insertion_mode/after_after_frameset.c $LEXBOR_DIR/html/tree/insertion_mode/after_body.c $LEXBOR_DIR/html/tree/insertion_mode/after_frameset.c $LEXBOR_DIR/html/tree/insertion_mode/after_head.c $LEXBOR_DIR/html/tree/insertion_mode/before_head.c $LEXBOR_DIR/html/tree/insertion_mode/before_html.c $LEXBOR_DIR/html/tree/insertion_mode/foreign_content.c $LEXBOR_DIR/html/tree/insertion_mode/in_body.c $LEXBOR_DIR/html/tree/insertion_mode/in_caption.c $LEXBOR_DIR/html/tree/insertion_mode/in_cell.c $LEXBOR_DIR/html/tree/insertion_mode/in_column_group.c $LEXBOR_DIR/html/tree/insertion_mode/in_frameset.c $LEXBOR_DIR/html/tree/insertion_mode/in_head_noscript.c $LEXBOR_DIR/html/tree/insertion_mode/in_head.c $LEXBOR_DIR/html/tree/insertion_mode/in_row.c $LEXBOR_DIR/html/tree/insertion_mode/in_table_body.c $LEXBOR_DIR/html/tree/insertion_mode/in_table_text.c $LEXBOR_DIR/html/tree/insertion_mode/in_table.c $LEXBOR_DIR/html/tree/insertion_mode/in_template.c $LEXBOR_DIR/html/tree/insertion_mode/initial.c $LEXBOR_DIR/html/tree/insertion_mode/text.c $LEXBOR_DIR/html/tree/open_elements.c $LEXBOR_DIR/ns/ns.c $LEXBOR_DIR/ports/posix/lexbor/core/memory.c $LEXBOR_DIR/selectors-adapted/selectors.c $LEXBOR_DIR/tag/tag.c "
@@ -31734,7 +31595,7 @@
EOF
-printf "%s\n" "#define COMPILE_DL_DOM 1" >>confdefs.h
+printf '%s\n' "#define COMPILE_DL_DOM 1" >>confdefs.h
fi
fi
@@ -31903,7 +31764,7 @@
php_with_enchant=no
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether to build with Enchant support" >&5
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking whether to build with Enchant support" >&5
printf %s "checking whether to build with Enchant support... " >&6; }
# Check whether --with-enchant was given.
@@ -31941,8 +31802,8 @@
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ext_output" >&5
-printf "%s\n" "$ext_output" >&6; }
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $ext_output" >&5
+printf '%s\n' "$ext_output" >&6; }
@@ -31950,17 +31811,17 @@
if test "$PHP_ENCHANT" != "no"; then
pkg_failed=no
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for enchant-2" >&5
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for enchant-2" >&5
printf %s "checking for enchant-2... " >&6; }
if test -n "$ENCHANT2_CFLAGS"; then
pkg_cv_ENCHANT2_CFLAGS="$ENCHANT2_CFLAGS"
elif test -n "$PKG_CONFIG"; then
if test -n "$PKG_CONFIG" && \
- { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"enchant-2\""; } >&5
+ { { printf '%s\n' "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"enchant-2\""; } >&5
($PKG_CONFIG --exists --print-errors "enchant-2") 2>&5
ac_status=$?
- printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ printf '%s\n' "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
test $ac_status = 0; }; then
pkg_cv_ENCHANT2_CFLAGS=`$PKG_CONFIG --cflags "enchant-2" 2>/dev/null`
test "x$?" != "x0" && pkg_failed=yes
@@ -31974,10 +31835,10 @@
pkg_cv_ENCHANT2_LIBS="$ENCHANT2_LIBS"
elif test -n "$PKG_CONFIG"; then
if test -n "$PKG_CONFIG" && \
- { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"enchant-2\""; } >&5
+ { { printf '%s\n' "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"enchant-2\""; } >&5
($PKG_CONFIG --exists --print-errors "enchant-2") 2>&5
ac_status=$?
- printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ printf '%s\n' "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
test $ac_status = 0; }; then
pkg_cv_ENCHANT2_LIBS=`$PKG_CONFIG --libs "enchant-2" 2>/dev/null`
test "x$?" != "x0" && pkg_failed=yes
@@ -31991,8 +31852,8 @@
if test $pkg_failed = yes; then
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
-printf "%s\n" "no" >&6; }
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf '%s\n' "no" >&6; }
if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then
_pkg_short_errors_supported=yes
@@ -32009,14 +31870,14 @@
found_enchant_2=no
elif test $pkg_failed = untried; then
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
-printf "%s\n" "no" >&6; }
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf '%s\n' "no" >&6; }
found_enchant_2=no
else
ENCHANT2_CFLAGS=$pkg_cv_ENCHANT2_CFLAGS
ENCHANT2_LIBS=$pkg_cv_ENCHANT2_LIBS
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-printf "%s\n" "yes" >&6; }
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+printf '%s\n' "yes" >&6; }
found_enchant_2=yes
fi
@@ -32179,26 +32040,26 @@
done
-printf "%s\n" "#define HAVE_ENCHANT_GET_VERSION 1" >>confdefs.h
+printf '%s\n' "#define HAVE_ENCHANT_GET_VERSION 1" >>confdefs.h
else case e in #(
e)
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: libenchant-2 not found trying with old libenchant" >&5
-printf "%s\n" "$as_me: WARNING: libenchant-2 not found trying with old libenchant" >&2;}
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: WARNING: libenchant-2 not found trying with old libenchant" >&5
+printf '%s\n' "$as_me: WARNING: libenchant-2 not found trying with old libenchant" >&2;}
pkg_failed=no
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for enchant >= 1.4.2" >&5
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for enchant >= 1.4.2" >&5
printf %s "checking for enchant >= 1.4.2... " >&6; }
if test -n "$ENCHANT_CFLAGS"; then
pkg_cv_ENCHANT_CFLAGS="$ENCHANT_CFLAGS"
elif test -n "$PKG_CONFIG"; then
if test -n "$PKG_CONFIG" && \
- { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"enchant >= 1.4.2\""; } >&5
+ { { printf '%s\n' "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"enchant >= 1.4.2\""; } >&5
($PKG_CONFIG --exists --print-errors "enchant >= 1.4.2") 2>&5
ac_status=$?
- printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ printf '%s\n' "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
test $ac_status = 0; }; then
pkg_cv_ENCHANT_CFLAGS=`$PKG_CONFIG --cflags "enchant >= 1.4.2" 2>/dev/null`
test "x$?" != "x0" && pkg_failed=yes
@@ -32212,10 +32073,10 @@
pkg_cv_ENCHANT_LIBS="$ENCHANT_LIBS"
elif test -n "$PKG_CONFIG"; then
if test -n "$PKG_CONFIG" && \
- { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"enchant >= 1.4.2\""; } >&5
+ { { printf '%s\n' "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"enchant >= 1.4.2\""; } >&5
($PKG_CONFIG --exists --print-errors "enchant >= 1.4.2") 2>&5
ac_status=$?
- printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ printf '%s\n' "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
test $ac_status = 0; }; then
pkg_cv_ENCHANT_LIBS=`$PKG_CONFIG --libs "enchant >= 1.4.2" 2>/dev/null`
test "x$?" != "x0" && pkg_failed=yes
@@ -32229,8 +32090,8 @@
if test $pkg_failed = yes; then
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
-printf "%s\n" "no" >&6; }
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf '%s\n' "no" >&6; }
if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then
_pkg_short_errors_supported=yes
@@ -32256,10 +32117,10 @@
and ENCHANT_LIBS to avoid the need to call pkg-config.
See the pkg-config man page for more details." "$LINENO" 5
elif test $pkg_failed = untried; then
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
-printf "%s\n" "no" >&6; }
- { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in '$ac_pwd':" >&5
-printf "%s\n" "$as_me: error: in '$ac_pwd':" >&2;}
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf '%s\n' "no" >&6; }
+ { { printf '%s\n' "$as_me:${as_lineno-$LINENO}: error: in '$ac_pwd':" >&5
+printf '%s\n' "$as_me: error: in '$ac_pwd':" >&2;}
as_fn_error $? "The pkg-config script could not be found or is too old. Make sure it
is in your PATH or set the PKG_CONFIG environment variable to the full
path to pkg-config.
@@ -32273,8 +32134,8 @@
else
ENCHANT_CFLAGS=$pkg_cv_ENCHANT_CFLAGS
ENCHANT_LIBS=$pkg_cv_ENCHANT_LIBS
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-printf "%s\n" "yes" >&6; }
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+printf '%s\n' "yes" >&6; }
fi
@@ -32552,7 +32413,7 @@
esac
done
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for enchant_get_version in -lenchant" >&5
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for enchant_get_version in -lenchant" >&5
printf %s "checking for enchant_get_version in -lenchant... " >&6; }
if test ${ac_cv_lib_enchant_enchant_get_version+y}
then :
@@ -32593,14 +32454,14 @@
LIBS=$ac_check_lib_save_LIBS ;;
esac
fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_enchant_enchant_get_version" >&5
-printf "%s\n" "$ac_cv_lib_enchant_enchant_get_version" >&6; }
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_enchant_enchant_get_version" >&5
+printf '%s\n' "$ac_cv_lib_enchant_enchant_get_version" >&6; }
if test "x$ac_cv_lib_enchant_enchant_get_version" = xyes
then :
LDFLAGS=$save_old_LDFLAGS
ext_shared=$save_ext_shared
- printf "%s\n" "#define HAVE_ENCHANT_GET_VERSION 1" >>confdefs.h
+ printf '%s\n' "#define HAVE_ENCHANT_GET_VERSION 1" >>confdefs.h
else case e in #(
@@ -32732,7 +32593,7 @@
esac
done
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for enchant_broker_set_param in -lenchant" >&5
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for enchant_broker_set_param in -lenchant" >&5
printf %s "checking for enchant_broker_set_param in -lenchant... " >&6; }
if test ${ac_cv_lib_enchant_enchant_broker_set_param+y}
then :
@@ -32773,15 +32634,15 @@
LIBS=$ac_check_lib_save_LIBS ;;
esac
fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_enchant_enchant_broker_set_param" >&5
-printf "%s\n" "$ac_cv_lib_enchant_enchant_broker_set_param" >&6; }
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_enchant_enchant_broker_set_param" >&5
+printf '%s\n' "$ac_cv_lib_enchant_enchant_broker_set_param" >&6; }
if test "x$ac_cv_lib_enchant_enchant_broker_set_param" = xyes
then :
LDFLAGS=$save_old_LDFLAGS
ext_shared=$save_ext_shared
-printf "%s\n" "#define HAVE_ENCHANT_BROKER_SET_PARAM 1" >>confdefs.h
+printf '%s\n' "#define HAVE_ENCHANT_BROKER_SET_PARAM 1" >>confdefs.h
else case e in #(
@@ -32799,7 +32660,7 @@
fi
-printf "%s\n" "#define HAVE_ENCHANT 1" >>confdefs.h
+printf '%s\n' "#define HAVE_ENCHANT 1" >>confdefs.h
@@ -32937,7 +32798,7 @@
EOF
-printf "%s\n" "#define COMPILE_DL_ENCHANT 1" >>confdefs.h
+printf '%s\n' "#define COMPILE_DL_ENCHANT 1" >>confdefs.h
fi
fi
@@ -33066,7 +32927,7 @@
php_enable_exif=no
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether to enable EXIF (metadata from images) support" >&5
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking whether to enable EXIF (metadata from images) support" >&5
printf %s "checking whether to enable EXIF (metadata from images) support... " >&6; }
# Check whether --enable-exif was given.
if test ${enable_exif+y}
@@ -33103,15 +32964,15 @@
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ext_output" >&5
-printf "%s\n" "$ext_output" >&6; }
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $ext_output" >&5
+printf '%s\n' "$ext_output" >&6; }
if test "$PHP_EXIF" != "no"; then
-printf "%s\n" "#define HAVE_EXIF 1" >>confdefs.h
+printf '%s\n' "#define HAVE_EXIF 1" >>confdefs.h
ext_builddir=ext/exif
@@ -33248,7 +33109,7 @@
EOF
-printf "%s\n" "#define COMPILE_DL_EXIF 1" >>confdefs.h
+printf '%s\n' "#define COMPILE_DL_EXIF 1" >>confdefs.h
fi
fi
@@ -33374,7 +33235,7 @@
php_with_ffi=no
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for FFI support" >&5
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for FFI support" >&5
printf %s "checking for FFI support... " >&6; }
# Check whether --with-ffi was given.
@@ -33412,8 +33273,8 @@
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ext_output" >&5
-printf "%s\n" "$ext_output" >&6; }
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $ext_output" >&5
+printf '%s\n' "$ext_output" >&6; }
@@ -33421,17 +33282,17 @@
if test "$PHP_FFI" != "no"; then
pkg_failed=no
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for libffi >= 3.0.11" >&5
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for libffi >= 3.0.11" >&5
printf %s "checking for libffi >= 3.0.11... " >&6; }
if test -n "$FFI_CFLAGS"; then
pkg_cv_FFI_CFLAGS="$FFI_CFLAGS"
elif test -n "$PKG_CONFIG"; then
if test -n "$PKG_CONFIG" && \
- { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libffi >= 3.0.11\""; } >&5
+ { { printf '%s\n' "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libffi >= 3.0.11\""; } >&5
($PKG_CONFIG --exists --print-errors "libffi >= 3.0.11") 2>&5
ac_status=$?
- printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ printf '%s\n' "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
test $ac_status = 0; }; then
pkg_cv_FFI_CFLAGS=`$PKG_CONFIG --cflags "libffi >= 3.0.11" 2>/dev/null`
test "x$?" != "x0" && pkg_failed=yes
@@ -33445,10 +33306,10 @@
pkg_cv_FFI_LIBS="$FFI_LIBS"
elif test -n "$PKG_CONFIG"; then
if test -n "$PKG_CONFIG" && \
- { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libffi >= 3.0.11\""; } >&5
+ { { printf '%s\n' "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libffi >= 3.0.11\""; } >&5
($PKG_CONFIG --exists --print-errors "libffi >= 3.0.11") 2>&5
ac_status=$?
- printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ printf '%s\n' "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
test $ac_status = 0; }; then
pkg_cv_FFI_LIBS=`$PKG_CONFIG --libs "libffi >= 3.0.11" 2>/dev/null`
test "x$?" != "x0" && pkg_failed=yes
@@ -33462,8 +33323,8 @@
if test $pkg_failed = yes; then
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
-printf "%s\n" "no" >&6; }
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf '%s\n' "no" >&6; }
if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then
_pkg_short_errors_supported=yes
@@ -33489,10 +33350,10 @@
and FFI_LIBS to avoid the need to call pkg-config.
See the pkg-config man page for more details." "$LINENO" 5
elif test $pkg_failed = untried; then
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
-printf "%s\n" "no" >&6; }
- { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in '$ac_pwd':" >&5
-printf "%s\n" "$as_me: error: in '$ac_pwd':" >&2;}
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf '%s\n' "no" >&6; }
+ { { printf '%s\n' "$as_me:${as_lineno-$LINENO}: error: in '$ac_pwd':" >&5
+printf '%s\n' "$as_me: error: in '$ac_pwd':" >&2;}
as_fn_error $? "The pkg-config script could not be found or is too old. Make sure it
is in your PATH or set the PKG_CONFIG environment variable to the full
path to pkg-config.
@@ -33506,8 +33367,8 @@
else
FFI_CFLAGS=$pkg_cv_FFI_CFLAGS
FFI_LIBS=$pkg_cv_FFI_LIBS
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-printf "%s\n" "yes" >&6; }
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+printf '%s\n' "yes" >&6; }
fi
@@ -33668,14 +33529,14 @@
-printf "%s\n" "#define HAVE_FFI 1" >>confdefs.h
+printf '%s\n' "#define HAVE_FFI 1" >>confdefs.h
ac_fn_c_check_type "$LINENO" "long double" "ac_cv_type_long_double" "$ac_includes_default"
if test "x$ac_cv_type_long_double" = xyes
then :
-printf "%s\n" "#define HAVE_LONG_DOUBLE 1" >>confdefs.h
+printf '%s\n' "#define HAVE_LONG_DOUBLE 1" >>confdefs.h
fi
@@ -33686,59 +33547,59 @@
CFLAGS_SAVE=$CFLAGS
CFLAGS="$CFLAGS $FFI_CFLAGS"
ac_fn_check_decl "$LINENO" "FFI_FASTCALL" "ac_cv_have_decl_FFI_FASTCALL" "#include
-" "$ac_c_undeclared_builtin_options" "CFLAGS"
+" "$ac_c_undeclared_builtin_options$ac_c_future_darwin_options" "CFLAGS"
if test "x$ac_cv_have_decl_FFI_FASTCALL" = xyes
then :
-printf "%s\n" "#define HAVE_FFI_FASTCALL 1" >>confdefs.h
+printf '%s\n' "#define HAVE_FFI_FASTCALL 1" >>confdefs.h
fi
ac_fn_check_decl "$LINENO" "FFI_THISCALL" "ac_cv_have_decl_FFI_THISCALL" "#include
-" "$ac_c_undeclared_builtin_options" "CFLAGS"
+" "$ac_c_undeclared_builtin_options$ac_c_future_darwin_options" "CFLAGS"
if test "x$ac_cv_have_decl_FFI_THISCALL" = xyes
then :
-printf "%s\n" "#define HAVE_FFI_THISCALL 1" >>confdefs.h
+printf '%s\n' "#define HAVE_FFI_THISCALL 1" >>confdefs.h
fi
ac_fn_check_decl "$LINENO" "FFI_STDCALL" "ac_cv_have_decl_FFI_STDCALL" "#include
-" "$ac_c_undeclared_builtin_options" "CFLAGS"
+" "$ac_c_undeclared_builtin_options$ac_c_future_darwin_options" "CFLAGS"
if test "x$ac_cv_have_decl_FFI_STDCALL" = xyes
then :
-printf "%s\n" "#define HAVE_FFI_STDCALL 1" >>confdefs.h
+printf '%s\n' "#define HAVE_FFI_STDCALL 1" >>confdefs.h
fi
ac_fn_check_decl "$LINENO" "FFI_PASCAL" "ac_cv_have_decl_FFI_PASCAL" "#include
-" "$ac_c_undeclared_builtin_options" "CFLAGS"
+" "$ac_c_undeclared_builtin_options$ac_c_future_darwin_options" "CFLAGS"
if test "x$ac_cv_have_decl_FFI_PASCAL" = xyes
then :
-printf "%s\n" "#define HAVE_FFI_PASCAL 1" >>confdefs.h
+printf '%s\n' "#define HAVE_FFI_PASCAL 1" >>confdefs.h
fi
ac_fn_check_decl "$LINENO" "FFI_REGISTER" "ac_cv_have_decl_FFI_REGISTER" "#include
-" "$ac_c_undeclared_builtin_options" "CFLAGS"
+" "$ac_c_undeclared_builtin_options$ac_c_future_darwin_options" "CFLAGS"
if test "x$ac_cv_have_decl_FFI_REGISTER" = xyes
then :
-printf "%s\n" "#define HAVE_FFI_REGISTER 1" >>confdefs.h
+printf '%s\n' "#define HAVE_FFI_REGISTER 1" >>confdefs.h
fi
ac_fn_check_decl "$LINENO" "FFI_MS_CDECL" "ac_cv_have_decl_FFI_MS_CDECL" "#include
-" "$ac_c_undeclared_builtin_options" "CFLAGS"
+" "$ac_c_undeclared_builtin_options$ac_c_future_darwin_options" "CFLAGS"
if test "x$ac_cv_have_decl_FFI_MS_CDECL" = xyes
then :
-printf "%s\n" "#define HAVE_FFI_MS_CDECL 1" >>confdefs.h
+printf '%s\n' "#define HAVE_FFI_MS_CDECL 1" >>confdefs.h
fi
ac_fn_check_decl "$LINENO" "FFI_SYSV" "ac_cv_have_decl_FFI_SYSV" "#include
-" "$ac_c_undeclared_builtin_options" "CFLAGS"
+" "$ac_c_undeclared_builtin_options$ac_c_future_darwin_options" "CFLAGS"
if test "x$ac_cv_have_decl_FFI_SYSV" = xyes
then :
-printf "%s\n" "#define HAVE_FFI_SYSV 1" >>confdefs.h
+printf '%s\n' "#define HAVE_FFI_SYSV 1" >>confdefs.h
fi
CFLAGS=$CFLAGS_SAVE
@@ -33878,7 +33739,7 @@
EOF
-printf "%s\n" "#define COMPILE_DL_FFI 1" >>confdefs.h
+printf '%s\n' "#define COMPILE_DL_FFI 1" >>confdefs.h
fi
fi
@@ -34007,7 +33868,7 @@
php_enable_fileinfo=yes
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for fileinfo support" >&5
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for fileinfo support" >&5
printf %s "checking for fileinfo support... " >&6; }
# Check whether --enable-fileinfo was given.
if test ${enable_fileinfo+y}
@@ -34044,8 +33905,8 @@
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ext_output" >&5
-printf "%s\n" "$ext_output" >&6; }
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $ext_output" >&5
+printf '%s\n' "$ext_output" >&6; }
@@ -34056,7 +33917,7 @@
ac_fn_c_check_header_compile "$LINENO" "sys/sysmacros.h" "ac_cv_header_sys_sysmacros_h" "$ac_includes_default"
if test "x$ac_cv_header_sys_sysmacros_h" = xyes
then :
- printf "%s\n" "#define HAVE_SYS_SYSMACROS_H 1" >>confdefs.h
+ printf '%s\n' "#define HAVE_SYS_SYSMACROS_H 1" >>confdefs.h
fi
@@ -34067,12 +33928,12 @@
ac_fn_c_check_func "$LINENO" "strcasestr" "ac_cv_func_strcasestr"
if test "x$ac_cv_func_strcasestr" = xyes
then :
- printf "%s\n" "#define HAVE_STRCASESTR 1" >>confdefs.h
+ printf '%s\n' "#define HAVE_STRCASESTR 1" >>confdefs.h
else case e in #(
e)
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: using libmagic strcasestr implementation" >&5
-printf "%s\n" "$as_me: using libmagic strcasestr implementation" >&6;}
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: using libmagic strcasestr implementation" >&5
+printf '%s\n' "$as_me: using libmagic strcasestr implementation" >&6;}
libmagic_sources="$libmagic_sources libmagic/strcasestr.c"
;;
esac
@@ -34083,7 +33944,7 @@
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for __attribute__((visibility))" >&5
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for __attribute__((visibility))" >&5
printf %s "checking for __attribute__((visibility))... " >&6; }
if test ${ax_cv_have_func_attribute_visibility+y}
then :
@@ -34126,13 +33987,13 @@
;;
esac
fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ax_cv_have_func_attribute_visibility" >&5
-printf "%s\n" "$ax_cv_have_func_attribute_visibility" >&6; }
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $ax_cv_have_func_attribute_visibility" >&5
+printf '%s\n' "$ax_cv_have_func_attribute_visibility" >&6; }
if test yes = $ax_cv_have_func_attribute_visibility
then :
-printf "%s\n" "#define HAVE_FUNC_ATTRIBUTE_VISIBILITY 1" >>confdefs.h
+printf '%s\n' "#define HAVE_FUNC_ATTRIBUTE_VISIBILITY 1" >>confdefs.h
fi
@@ -34274,7 +34135,7 @@
EOF
-printf "%s\n" "#define COMPILE_DL_FILEINFO 1" >>confdefs.h
+printf '%s\n' "#define COMPILE_DL_FILEINFO 1" >>confdefs.h
fi
fi
@@ -34417,13 +34278,13 @@
ac_fn_c_check_func "$LINENO" "utimes" "ac_cv_func_utimes"
if test "x$ac_cv_func_utimes" = xyes
then :
- printf "%s\n" "#define HAVE_UTIMES 1" >>confdefs.h
+ printf '%s\n' "#define HAVE_UTIMES 1" >>confdefs.h
fi
ac_fn_c_check_func "$LINENO" "strndup" "ac_cv_func_strndup"
if test "x$ac_cv_func_strndup" = xyes
then :
- printf "%s\n" "#define HAVE_STRNDUP 1" >>confdefs.h
+ printf '%s\n' "#define HAVE_STRNDUP 1" >>confdefs.h
fi
@@ -34441,7 +34302,7 @@
php_enable_filter=yes
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether to enable input filter support" >&5
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking whether to enable input filter support" >&5
printf %s "checking whether to enable input filter support... " >&6; }
# Check whether --enable-filter was given.
if test ${enable_filter+y}
@@ -34478,8 +34339,8 @@
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ext_output" >&5
-printf "%s\n" "$ext_output" >&6; }
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $ext_output" >&5
+printf '%s\n' "$ext_output" >&6; }
@@ -34620,7 +34481,7 @@
EOF
-printf "%s\n" "#define COMPILE_DL_FILTER 1" >>confdefs.h
+printf '%s\n' "#define COMPILE_DL_FILTER 1" >>confdefs.h
fi
fi
@@ -34783,7 +34644,7 @@
php_enable_ftp=no
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether to enable FTP support" >&5
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking whether to enable FTP support" >&5
printf %s "checking whether to enable FTP support... " >&6; }
# Check whether --enable-ftp was given.
if test ${enable_ftp+y}
@@ -34820,8 +34681,8 @@
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ext_output" >&5
-printf "%s\n" "$ext_output" >&6; }
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $ext_output" >&5
+printf '%s\n' "$ext_output" >&6; }
@@ -34834,7 +34695,7 @@
php_with_ftp_ssl=$PHP_OPENSSL
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether to enable FTP over SSL support" >&5
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking whether to enable FTP over SSL support" >&5
printf %s "checking whether to enable FTP over SSL support... " >&6; }
# Check whether --with-ftp-ssl was given.
@@ -34851,15 +34712,15 @@
ext_output=$PHP_FTP_SSL
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ext_output" >&5
-printf "%s\n" "$ext_output" >&6; }
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $ext_output" >&5
+printf '%s\n' "$ext_output" >&6; }
if test "$PHP_FTP" = "yes"; then
-printf "%s\n" "#define HAVE_FTP 1" >>confdefs.h
+printf '%s\n' "#define HAVE_FTP 1" >>confdefs.h
ext_builddir=ext/ftp
@@ -34996,7 +34857,7 @@
EOF
-printf "%s\n" "#define COMPILE_DL_FTP 1" >>confdefs.h
+printf '%s\n' "#define COMPILE_DL_FTP 1" >>confdefs.h
fi
fi
@@ -35125,17 +34986,17 @@
pkg_failed=no
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for openssl >= 1.1.1" >&5
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for openssl >= 1.1.1" >&5
printf %s "checking for openssl >= 1.1.1... " >&6; }
if test -n "$OPENSSL_CFLAGS"; then
pkg_cv_OPENSSL_CFLAGS="$OPENSSL_CFLAGS"
elif test -n "$PKG_CONFIG"; then
if test -n "$PKG_CONFIG" && \
- { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"openssl >= 1.1.1\""; } >&5
+ { { printf '%s\n' "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"openssl >= 1.1.1\""; } >&5
($PKG_CONFIG --exists --print-errors "openssl >= 1.1.1") 2>&5
ac_status=$?
- printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ printf '%s\n' "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
test $ac_status = 0; }; then
pkg_cv_OPENSSL_CFLAGS=`$PKG_CONFIG --cflags "openssl >= 1.1.1" 2>/dev/null`
test "x$?" != "x0" && pkg_failed=yes
@@ -35149,10 +35010,10 @@
pkg_cv_OPENSSL_LIBS="$OPENSSL_LIBS"
elif test -n "$PKG_CONFIG"; then
if test -n "$PKG_CONFIG" && \
- { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"openssl >= 1.1.1\""; } >&5
+ { { printf '%s\n' "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"openssl >= 1.1.1\""; } >&5
($PKG_CONFIG --exists --print-errors "openssl >= 1.1.1") 2>&5
ac_status=$?
- printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ printf '%s\n' "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
test $ac_status = 0; }; then
pkg_cv_OPENSSL_LIBS=`$PKG_CONFIG --libs "openssl >= 1.1.1" 2>/dev/null`
test "x$?" != "x0" && pkg_failed=yes
@@ -35166,8 +35027,8 @@
if test $pkg_failed = yes; then
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
-printf "%s\n" "no" >&6; }
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf '%s\n' "no" >&6; }
if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then
_pkg_short_errors_supported=yes
@@ -35193,10 +35054,10 @@
and OPENSSL_LIBS to avoid the need to call pkg-config.
See the pkg-config man page for more details." "$LINENO" 5
elif test $pkg_failed = untried; then
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
-printf "%s\n" "no" >&6; }
- { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in '$ac_pwd':" >&5
-printf "%s\n" "$as_me: error: in '$ac_pwd':" >&2;}
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf '%s\n' "no" >&6; }
+ { { printf '%s\n' "$as_me:${as_lineno-$LINENO}: error: in '$ac_pwd':" >&5
+printf '%s\n' "$as_me: error: in '$ac_pwd':" >&2;}
as_fn_error $? "The pkg-config script could not be found or is too old. Make sure it
is in your PATH or set the PKG_CONFIG environment variable to the full
path to pkg-config.
@@ -35210,8 +35071,8 @@
else
OPENSSL_CFLAGS=$pkg_cv_OPENSSL_CFLAGS
OPENSSL_LIBS=$pkg_cv_OPENSSL_LIBS
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-printf "%s\n" "yes" >&6; }
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+printf '%s\n' "yes" >&6; }
found_openssl=yes
fi
@@ -35378,7 +35239,7 @@
PHP_VAR_SUBST="$PHP_VAR_SUBST FTP_SHARED_LIBADD"
-printf "%s\n" "#define HAVE_FTP_SSL 1" >>confdefs.h
+printf '%s\n' "#define HAVE_FTP_SSL 1" >>confdefs.h
;;
esac
@@ -35391,7 +35252,7 @@
php_enable_gd=no
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for GD support" >&5
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for GD support" >&5
printf %s "checking for GD support... " >&6; }
# Check whether --enable-gd was given.
if test ${enable_gd+y}
@@ -35428,8 +35289,8 @@
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ext_output" >&5
-printf "%s\n" "$ext_output" >&6; }
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $ext_output" >&5
+printf '%s\n' "$ext_output" >&6; }
@@ -35437,7 +35298,7 @@
php_with_external_gd=no
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for external libgd" >&5
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for external libgd" >&5
printf %s "checking for external libgd... " >&6; }
# Check whether --with-external-gd was given.
@@ -35454,8 +35315,8 @@
ext_output=$PHP_EXTERNAL_GD
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ext_output" >&5
-printf "%s\n" "$ext_output" >&6; }
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $ext_output" >&5
+printf '%s\n' "$ext_output" >&6; }
@@ -35463,7 +35324,7 @@
php_with_avif=no
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for libavif" >&5
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for libavif" >&5
printf %s "checking for libavif... " >&6; }
# Check whether --with-avif was given.
@@ -35480,8 +35341,8 @@
ext_output=$PHP_AVIF
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ext_output" >&5
-printf "%s\n" "$ext_output" >&6; }
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $ext_output" >&5
+printf '%s\n' "$ext_output" >&6; }
@@ -35489,7 +35350,7 @@
php_with_webp=no
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for libwebp" >&5
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for libwebp" >&5
printf %s "checking for libwebp... " >&6; }
# Check whether --with-webp was given.
@@ -35506,8 +35367,8 @@
ext_output=$PHP_WEBP
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ext_output" >&5
-printf "%s\n" "$ext_output" >&6; }
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $ext_output" >&5
+printf '%s\n' "$ext_output" >&6; }
@@ -35515,7 +35376,7 @@
php_with_jpeg=no
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for libjpeg" >&5
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for libjpeg" >&5
printf %s "checking for libjpeg... " >&6; }
# Check whether --with-jpeg was given.
@@ -35532,8 +35393,8 @@
ext_output=$PHP_JPEG
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ext_output" >&5
-printf "%s\n" "$ext_output" >&6; }
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $ext_output" >&5
+printf '%s\n' "$ext_output" >&6; }
@@ -35541,7 +35402,7 @@
php_with_xpm=no
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for libXpm" >&5
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for libXpm" >&5
printf %s "checking for libXpm... " >&6; }
# Check whether --with-xpm was given.
@@ -35558,8 +35419,8 @@
ext_output=$PHP_XPM
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ext_output" >&5
-printf "%s\n" "$ext_output" >&6; }
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $ext_output" >&5
+printf '%s\n' "$ext_output" >&6; }
@@ -35567,7 +35428,7 @@
php_with_freetype=no
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for FreeType 2" >&5
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for FreeType 2" >&5
printf %s "checking for FreeType 2... " >&6; }
# Check whether --with-freetype was given.
@@ -35584,8 +35445,8 @@
ext_output=$PHP_FREETYPE
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ext_output" >&5
-printf "%s\n" "$ext_output" >&6; }
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $ext_output" >&5
+printf '%s\n' "$ext_output" >&6; }
@@ -35593,7 +35454,7 @@
php_enable_gd_jis_conv=no
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether to enable JIS-mapped Japanese font support in GD" >&5
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking whether to enable JIS-mapped Japanese font support in GD" >&5
printf %s "checking whether to enable JIS-mapped Japanese font support in GD... " >&6; }
# Check whether --enable-gd-jis-conv was given.
if test ${enable_gd_jis_conv+y}
@@ -35609,8 +35470,8 @@
ext_output=$PHP_GD_JIS_CONV
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ext_output" >&5
-printf "%s\n" "$ext_output" >&6; }
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $ext_output" >&5
+printf '%s\n' "$ext_output" >&6; }
@@ -35640,31 +35501,31 @@
extra_sources=" libgd/gd_avif.c libgd/gd_bmp.c libgd/gd_color_match.c libgd/gd_crop.c libgd/gd_filter.c libgd/gd_gd.c libgd/gd_gd2.c libgd/gd_gif_in.c libgd/gd_gif_out.c libgd/gd_interpolation.c libgd/gd_io_dp.c libgd/gd_io_file.c libgd/gd_io_ss.c libgd/gd_io.c libgd/gd_jpeg.c libgd/gd_matrix.c libgd/gd_pixelate.c libgd/gd_png.c libgd/gd_rotate.c libgd/gd_security.c libgd/gd_ss.c libgd/gd_tga.c libgd/gd_topal.c libgd/gd_transform.c libgd/gd_wbmp.c libgd/gd_webp.c libgd/gd_xbm.c libgd/gd.c libgd/gdcache.c libgd/gdfontg.c libgd/gdfontl.c libgd/gdfontmb.c libgd/gdfonts.c libgd/gdfontt.c libgd/gdft.c libgd/gdhelpers.c libgd/gdkanji.c libgd/gdtables.c libgd/gdxpm.c libgd/wbmp.c "
-printf "%s\n" "#define HAVE_GD_BUNDLED 1" >>confdefs.h
+printf '%s\n' "#define HAVE_GD_BUNDLED 1" >>confdefs.h
-printf "%s\n" "#define HAVE_GD_PNG 1" >>confdefs.h
+printf '%s\n' "#define HAVE_GD_PNG 1" >>confdefs.h
-printf "%s\n" "#define HAVE_GD_BMP 1" >>confdefs.h
+printf '%s\n' "#define HAVE_GD_BMP 1" >>confdefs.h
-printf "%s\n" "#define HAVE_GD_TGA 1" >>confdefs.h
+printf '%s\n' "#define HAVE_GD_TGA 1" >>confdefs.h
pkg_failed=no
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for zlib >= 1.2.11" >&5
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for zlib >= 1.2.11" >&5
printf %s "checking for zlib >= 1.2.11... " >&6; }
if test -n "$ZLIB_CFLAGS"; then
pkg_cv_ZLIB_CFLAGS="$ZLIB_CFLAGS"
elif test -n "$PKG_CONFIG"; then
if test -n "$PKG_CONFIG" && \
- { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"zlib >= 1.2.11\""; } >&5
+ { { printf '%s\n' "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"zlib >= 1.2.11\""; } >&5
($PKG_CONFIG --exists --print-errors "zlib >= 1.2.11") 2>&5
ac_status=$?
- printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ printf '%s\n' "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
test $ac_status = 0; }; then
pkg_cv_ZLIB_CFLAGS=`$PKG_CONFIG --cflags "zlib >= 1.2.11" 2>/dev/null`
test "x$?" != "x0" && pkg_failed=yes
@@ -35678,10 +35539,10 @@
pkg_cv_ZLIB_LIBS="$ZLIB_LIBS"
elif test -n "$PKG_CONFIG"; then
if test -n "$PKG_CONFIG" && \
- { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"zlib >= 1.2.11\""; } >&5
+ { { printf '%s\n' "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"zlib >= 1.2.11\""; } >&5
($PKG_CONFIG --exists --print-errors "zlib >= 1.2.11") 2>&5
ac_status=$?
- printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ printf '%s\n' "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
test $ac_status = 0; }; then
pkg_cv_ZLIB_LIBS=`$PKG_CONFIG --libs "zlib >= 1.2.11" 2>/dev/null`
test "x$?" != "x0" && pkg_failed=yes
@@ -35695,8 +35556,8 @@
if test $pkg_failed = yes; then
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
-printf "%s\n" "no" >&6; }
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf '%s\n' "no" >&6; }
if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then
_pkg_short_errors_supported=yes
@@ -35722,10 +35583,10 @@
and ZLIB_LIBS to avoid the need to call pkg-config.
See the pkg-config man page for more details." "$LINENO" 5
elif test $pkg_failed = untried; then
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
-printf "%s\n" "no" >&6; }
- { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in '$ac_pwd':" >&5
-printf "%s\n" "$as_me: error: in '$ac_pwd':" >&2;}
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf '%s\n' "no" >&6; }
+ { { printf '%s\n' "$as_me:${as_lineno-$LINENO}: error: in '$ac_pwd':" >&5
+printf '%s\n' "$as_me: error: in '$ac_pwd':" >&2;}
as_fn_error $? "The pkg-config script could not be found or is too old. Make sure it
is in your PATH or set the PKG_CONFIG environment variable to the full
path to pkg-config.
@@ -35739,8 +35600,8 @@
else
ZLIB_CFLAGS=$pkg_cv_ZLIB_CFLAGS
ZLIB_LIBS=$pkg_cv_ZLIB_LIBS
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-printf "%s\n" "yes" >&6; }
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+printf '%s\n' "yes" >&6; }
for ac_i in $ZLIB_CFLAGS; do
case $ac_i in
@@ -35901,17 +35762,17 @@
pkg_failed=no
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for libpng" >&5
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for libpng" >&5
printf %s "checking for libpng... " >&6; }
if test -n "$PNG_CFLAGS"; then
pkg_cv_PNG_CFLAGS="$PNG_CFLAGS"
elif test -n "$PKG_CONFIG"; then
if test -n "$PKG_CONFIG" && \
- { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libpng\""; } >&5
+ { { printf '%s\n' "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libpng\""; } >&5
($PKG_CONFIG --exists --print-errors "libpng") 2>&5
ac_status=$?
- printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ printf '%s\n' "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
test $ac_status = 0; }; then
pkg_cv_PNG_CFLAGS=`$PKG_CONFIG --cflags "libpng" 2>/dev/null`
test "x$?" != "x0" && pkg_failed=yes
@@ -35925,10 +35786,10 @@
pkg_cv_PNG_LIBS="$PNG_LIBS"
elif test -n "$PKG_CONFIG"; then
if test -n "$PKG_CONFIG" && \
- { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libpng\""; } >&5
+ { { printf '%s\n' "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libpng\""; } >&5
($PKG_CONFIG --exists --print-errors "libpng") 2>&5
ac_status=$?
- printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ printf '%s\n' "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
test $ac_status = 0; }; then
pkg_cv_PNG_LIBS=`$PKG_CONFIG --libs "libpng" 2>/dev/null`
test "x$?" != "x0" && pkg_failed=yes
@@ -35942,8 +35803,8 @@
if test $pkg_failed = yes; then
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
-printf "%s\n" "no" >&6; }
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf '%s\n' "no" >&6; }
if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then
_pkg_short_errors_supported=yes
@@ -35969,10 +35830,10 @@
and PNG_LIBS to avoid the need to call pkg-config.
See the pkg-config man page for more details." "$LINENO" 5
elif test $pkg_failed = untried; then
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
-printf "%s\n" "no" >&6; }
- { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in '$ac_pwd':" >&5
-printf "%s\n" "$as_me: error: in '$ac_pwd':" >&2;}
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf '%s\n' "no" >&6; }
+ { { printf '%s\n' "$as_me:${as_lineno-$LINENO}: error: in '$ac_pwd':" >&5
+printf '%s\n' "$as_me: error: in '$ac_pwd':" >&2;}
as_fn_error $? "The pkg-config script could not be found or is too old. Make sure it
is in your PATH or set the PKG_CONFIG environment variable to the full
path to pkg-config.
@@ -35986,8 +35847,8 @@
else
PNG_CFLAGS=$pkg_cv_PNG_CFLAGS
PNG_LIBS=$pkg_cv_PNG_LIBS
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-printf "%s\n" "yes" >&6; }
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+printf '%s\n' "yes" >&6; }
fi
@@ -36146,7 +36007,7 @@
done
-printf "%s\n" "#define HAVE_LIBPNG 1" >>confdefs.h
+printf '%s\n' "#define HAVE_LIBPNG 1" >>confdefs.h
@@ -36157,17 +36018,17 @@
e)
pkg_failed=no
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for libavif >= 0.8.2" >&5
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for libavif >= 0.8.2" >&5
printf %s "checking for libavif >= 0.8.2... " >&6; }
if test -n "$AVIF_CFLAGS"; then
pkg_cv_AVIF_CFLAGS="$AVIF_CFLAGS"
elif test -n "$PKG_CONFIG"; then
if test -n "$PKG_CONFIG" && \
- { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libavif >= 0.8.2\""; } >&5
+ { { printf '%s\n' "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libavif >= 0.8.2\""; } >&5
($PKG_CONFIG --exists --print-errors "libavif >= 0.8.2") 2>&5
ac_status=$?
- printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ printf '%s\n' "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
test $ac_status = 0; }; then
pkg_cv_AVIF_CFLAGS=`$PKG_CONFIG --cflags "libavif >= 0.8.2" 2>/dev/null`
test "x$?" != "x0" && pkg_failed=yes
@@ -36181,10 +36042,10 @@
pkg_cv_AVIF_LIBS="$AVIF_LIBS"
elif test -n "$PKG_CONFIG"; then
if test -n "$PKG_CONFIG" && \
- { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libavif >= 0.8.2\""; } >&5
+ { { printf '%s\n' "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libavif >= 0.8.2\""; } >&5
($PKG_CONFIG --exists --print-errors "libavif >= 0.8.2") 2>&5
ac_status=$?
- printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ printf '%s\n' "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
test $ac_status = 0; }; then
pkg_cv_AVIF_LIBS=`$PKG_CONFIG --libs "libavif >= 0.8.2" 2>/dev/null`
test "x$?" != "x0" && pkg_failed=yes
@@ -36198,8 +36059,8 @@
if test $pkg_failed = yes; then
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
-printf "%s\n" "no" >&6; }
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf '%s\n' "no" >&6; }
if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then
_pkg_short_errors_supported=yes
@@ -36225,10 +36086,10 @@
and AVIF_LIBS to avoid the need to call pkg-config.
See the pkg-config man page for more details." "$LINENO" 5
elif test $pkg_failed = untried; then
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
-printf "%s\n" "no" >&6; }
- { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in '$ac_pwd':" >&5
-printf "%s\n" "$as_me: error: in '$ac_pwd':" >&2;}
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf '%s\n' "no" >&6; }
+ { { printf '%s\n' "$as_me:${as_lineno-$LINENO}: error: in '$ac_pwd':" >&5
+printf '%s\n' "$as_me: error: in '$ac_pwd':" >&2;}
as_fn_error $? "The pkg-config script could not be found or is too old. Make sure it
is in your PATH or set the PKG_CONFIG environment variable to the full
path to pkg-config.
@@ -36242,8 +36103,8 @@
else
AVIF_CFLAGS=$pkg_cv_AVIF_CFLAGS
AVIF_LIBS=$pkg_cv_AVIF_LIBS
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-printf "%s\n" "yes" >&6; }
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+printf '%s\n' "yes" >&6; }
fi
@@ -36402,10 +36263,10 @@
done
-printf "%s\n" "#define HAVE_LIBAVIF 1" >>confdefs.h
+printf '%s\n' "#define HAVE_LIBAVIF 1" >>confdefs.h
-printf "%s\n" "#define HAVE_GD_AVIF 1" >>confdefs.h
+printf '%s\n' "#define HAVE_GD_AVIF 1" >>confdefs.h
;;
esac
@@ -36419,17 +36280,17 @@
e)
pkg_failed=no
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for libwebp >= 0.2.0" >&5
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for libwebp >= 0.2.0" >&5
printf %s "checking for libwebp >= 0.2.0... " >&6; }
if test -n "$WEBP_CFLAGS"; then
pkg_cv_WEBP_CFLAGS="$WEBP_CFLAGS"
elif test -n "$PKG_CONFIG"; then
if test -n "$PKG_CONFIG" && \
- { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libwebp >= 0.2.0\""; } >&5
+ { { printf '%s\n' "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libwebp >= 0.2.0\""; } >&5
($PKG_CONFIG --exists --print-errors "libwebp >= 0.2.0") 2>&5
ac_status=$?
- printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ printf '%s\n' "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
test $ac_status = 0; }; then
pkg_cv_WEBP_CFLAGS=`$PKG_CONFIG --cflags "libwebp >= 0.2.0" 2>/dev/null`
test "x$?" != "x0" && pkg_failed=yes
@@ -36443,10 +36304,10 @@
pkg_cv_WEBP_LIBS="$WEBP_LIBS"
elif test -n "$PKG_CONFIG"; then
if test -n "$PKG_CONFIG" && \
- { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libwebp >= 0.2.0\""; } >&5
+ { { printf '%s\n' "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libwebp >= 0.2.0\""; } >&5
($PKG_CONFIG --exists --print-errors "libwebp >= 0.2.0") 2>&5
ac_status=$?
- printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ printf '%s\n' "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
test $ac_status = 0; }; then
pkg_cv_WEBP_LIBS=`$PKG_CONFIG --libs "libwebp >= 0.2.0" 2>/dev/null`
test "x$?" != "x0" && pkg_failed=yes
@@ -36460,8 +36321,8 @@
if test $pkg_failed = yes; then
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
-printf "%s\n" "no" >&6; }
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf '%s\n' "no" >&6; }
if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then
_pkg_short_errors_supported=yes
@@ -36487,10 +36348,10 @@
and WEBP_LIBS to avoid the need to call pkg-config.
See the pkg-config man page for more details." "$LINENO" 5
elif test $pkg_failed = untried; then
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
-printf "%s\n" "no" >&6; }
- { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in '$ac_pwd':" >&5
-printf "%s\n" "$as_me: error: in '$ac_pwd':" >&2;}
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf '%s\n' "no" >&6; }
+ { { printf '%s\n' "$as_me:${as_lineno-$LINENO}: error: in '$ac_pwd':" >&5
+printf '%s\n' "$as_me: error: in '$ac_pwd':" >&2;}
as_fn_error $? "The pkg-config script could not be found or is too old. Make sure it
is in your PATH or set the PKG_CONFIG environment variable to the full
path to pkg-config.
@@ -36504,8 +36365,8 @@
else
WEBP_CFLAGS=$pkg_cv_WEBP_CFLAGS
WEBP_LIBS=$pkg_cv_WEBP_LIBS
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-printf "%s\n" "yes" >&6; }
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+printf '%s\n' "yes" >&6; }
fi
@@ -36664,10 +36525,10 @@
done
-printf "%s\n" "#define HAVE_LIBWEBP 1" >>confdefs.h
+printf '%s\n' "#define HAVE_LIBWEBP 1" >>confdefs.h
-printf "%s\n" "#define HAVE_GD_WEBP 1" >>confdefs.h
+printf '%s\n' "#define HAVE_GD_WEBP 1" >>confdefs.h
;;
esac
@@ -36681,17 +36542,17 @@
e)
pkg_failed=no
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for libjpeg" >&5
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for libjpeg" >&5
printf %s "checking for libjpeg... " >&6; }
if test -n "$JPEG_CFLAGS"; then
pkg_cv_JPEG_CFLAGS="$JPEG_CFLAGS"
elif test -n "$PKG_CONFIG"; then
if test -n "$PKG_CONFIG" && \
- { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libjpeg\""; } >&5
+ { { printf '%s\n' "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libjpeg\""; } >&5
($PKG_CONFIG --exists --print-errors "libjpeg") 2>&5
ac_status=$?
- printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ printf '%s\n' "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
test $ac_status = 0; }; then
pkg_cv_JPEG_CFLAGS=`$PKG_CONFIG --cflags "libjpeg" 2>/dev/null`
test "x$?" != "x0" && pkg_failed=yes
@@ -36705,10 +36566,10 @@
pkg_cv_JPEG_LIBS="$JPEG_LIBS"
elif test -n "$PKG_CONFIG"; then
if test -n "$PKG_CONFIG" && \
- { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libjpeg\""; } >&5
+ { { printf '%s\n' "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libjpeg\""; } >&5
($PKG_CONFIG --exists --print-errors "libjpeg") 2>&5
ac_status=$?
- printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ printf '%s\n' "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
test $ac_status = 0; }; then
pkg_cv_JPEG_LIBS=`$PKG_CONFIG --libs "libjpeg" 2>/dev/null`
test "x$?" != "x0" && pkg_failed=yes
@@ -36722,8 +36583,8 @@
if test $pkg_failed = yes; then
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
-printf "%s\n" "no" >&6; }
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf '%s\n' "no" >&6; }
if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then
_pkg_short_errors_supported=yes
@@ -36749,10 +36610,10 @@
and JPEG_LIBS to avoid the need to call pkg-config.
See the pkg-config man page for more details." "$LINENO" 5
elif test $pkg_failed = untried; then
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
-printf "%s\n" "no" >&6; }
- { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in '$ac_pwd':" >&5
-printf "%s\n" "$as_me: error: in '$ac_pwd':" >&2;}
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf '%s\n' "no" >&6; }
+ { { printf '%s\n' "$as_me:${as_lineno-$LINENO}: error: in '$ac_pwd':" >&5
+printf '%s\n' "$as_me: error: in '$ac_pwd':" >&2;}
as_fn_error $? "The pkg-config script could not be found or is too old. Make sure it
is in your PATH or set the PKG_CONFIG environment variable to the full
path to pkg-config.
@@ -36766,8 +36627,8 @@
else
JPEG_CFLAGS=$pkg_cv_JPEG_CFLAGS
JPEG_LIBS=$pkg_cv_JPEG_LIBS
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-printf "%s\n" "yes" >&6; }
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+printf '%s\n' "yes" >&6; }
fi
@@ -36926,10 +36787,10 @@
done
-printf "%s\n" "#define HAVE_LIBJPEG 1" >>confdefs.h
+printf '%s\n' "#define HAVE_LIBJPEG 1" >>confdefs.h
-printf "%s\n" "#define HAVE_GD_JPG 1" >>confdefs.h
+printf '%s\n' "#define HAVE_GD_JPG 1" >>confdefs.h
;;
esac
@@ -36943,17 +36804,17 @@
e)
pkg_failed=no
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for xpm" >&5
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for xpm" >&5
printf %s "checking for xpm... " >&6; }
if test -n "$XPM_CFLAGS"; then
pkg_cv_XPM_CFLAGS="$XPM_CFLAGS"
elif test -n "$PKG_CONFIG"; then
if test -n "$PKG_CONFIG" && \
- { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"xpm\""; } >&5
+ { { printf '%s\n' "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"xpm\""; } >&5
($PKG_CONFIG --exists --print-errors "xpm") 2>&5
ac_status=$?
- printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ printf '%s\n' "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
test $ac_status = 0; }; then
pkg_cv_XPM_CFLAGS=`$PKG_CONFIG --cflags "xpm" 2>/dev/null`
test "x$?" != "x0" && pkg_failed=yes
@@ -36967,10 +36828,10 @@
pkg_cv_XPM_LIBS="$XPM_LIBS"
elif test -n "$PKG_CONFIG"; then
if test -n "$PKG_CONFIG" && \
- { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"xpm\""; } >&5
+ { { printf '%s\n' "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"xpm\""; } >&5
($PKG_CONFIG --exists --print-errors "xpm") 2>&5
ac_status=$?
- printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ printf '%s\n' "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
test $ac_status = 0; }; then
pkg_cv_XPM_LIBS=`$PKG_CONFIG --libs "xpm" 2>/dev/null`
test "x$?" != "x0" && pkg_failed=yes
@@ -36984,8 +36845,8 @@
if test $pkg_failed = yes; then
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
-printf "%s\n" "no" >&6; }
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf '%s\n' "no" >&6; }
if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then
_pkg_short_errors_supported=yes
@@ -37011,10 +36872,10 @@
and XPM_LIBS to avoid the need to call pkg-config.
See the pkg-config man page for more details." "$LINENO" 5
elif test $pkg_failed = untried; then
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
-printf "%s\n" "no" >&6; }
- { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in '$ac_pwd':" >&5
-printf "%s\n" "$as_me: error: in '$ac_pwd':" >&2;}
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf '%s\n' "no" >&6; }
+ { { printf '%s\n' "$as_me:${as_lineno-$LINENO}: error: in '$ac_pwd':" >&5
+printf '%s\n' "$as_me: error: in '$ac_pwd':" >&2;}
as_fn_error $? "The pkg-config script could not be found or is too old. Make sure it
is in your PATH or set the PKG_CONFIG environment variable to the full
path to pkg-config.
@@ -37028,8 +36889,8 @@
else
XPM_CFLAGS=$pkg_cv_XPM_CFLAGS
XPM_LIBS=$pkg_cv_XPM_LIBS
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-printf "%s\n" "yes" >&6; }
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+printf '%s\n' "yes" >&6; }
fi
@@ -37188,10 +37049,10 @@
done
-printf "%s\n" "#define HAVE_XPM 1" >>confdefs.h
+printf '%s\n' "#define HAVE_XPM 1" >>confdefs.h
-printf "%s\n" "#define HAVE_GD_XPM 1" >>confdefs.h
+printf '%s\n' "#define HAVE_GD_XPM 1" >>confdefs.h
;;
esac
@@ -37205,17 +37066,17 @@
e)
pkg_failed=no
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for freetype2" >&5
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for freetype2" >&5
printf %s "checking for freetype2... " >&6; }
if test -n "$FREETYPE2_CFLAGS"; then
pkg_cv_FREETYPE2_CFLAGS="$FREETYPE2_CFLAGS"
elif test -n "$PKG_CONFIG"; then
if test -n "$PKG_CONFIG" && \
- { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"freetype2\""; } >&5
+ { { printf '%s\n' "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"freetype2\""; } >&5
($PKG_CONFIG --exists --print-errors "freetype2") 2>&5
ac_status=$?
- printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ printf '%s\n' "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
test $ac_status = 0; }; then
pkg_cv_FREETYPE2_CFLAGS=`$PKG_CONFIG --cflags "freetype2" 2>/dev/null`
test "x$?" != "x0" && pkg_failed=yes
@@ -37229,10 +37090,10 @@
pkg_cv_FREETYPE2_LIBS="$FREETYPE2_LIBS"
elif test -n "$PKG_CONFIG"; then
if test -n "$PKG_CONFIG" && \
- { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"freetype2\""; } >&5
+ { { printf '%s\n' "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"freetype2\""; } >&5
($PKG_CONFIG --exists --print-errors "freetype2") 2>&5
ac_status=$?
- printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ printf '%s\n' "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
test $ac_status = 0; }; then
pkg_cv_FREETYPE2_LIBS=`$PKG_CONFIG --libs "freetype2" 2>/dev/null`
test "x$?" != "x0" && pkg_failed=yes
@@ -37246,8 +37107,8 @@
if test $pkg_failed = yes; then
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
-printf "%s\n" "no" >&6; }
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf '%s\n' "no" >&6; }
if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then
_pkg_short_errors_supported=yes
@@ -37273,10 +37134,10 @@
and FREETYPE2_LIBS to avoid the need to call pkg-config.
See the pkg-config man page for more details." "$LINENO" 5
elif test $pkg_failed = untried; then
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
-printf "%s\n" "no" >&6; }
- { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in '$ac_pwd':" >&5
-printf "%s\n" "$as_me: error: in '$ac_pwd':" >&2;}
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf '%s\n' "no" >&6; }
+ { { printf '%s\n' "$as_me:${as_lineno-$LINENO}: error: in '$ac_pwd':" >&5
+printf '%s\n' "$as_me: error: in '$ac_pwd':" >&2;}
as_fn_error $? "The pkg-config script could not be found or is too old. Make sure it
is in your PATH or set the PKG_CONFIG environment variable to the full
path to pkg-config.
@@ -37290,8 +37151,8 @@
else
FREETYPE2_CFLAGS=$pkg_cv_FREETYPE2_CFLAGS
FREETYPE2_LIBS=$pkg_cv_FREETYPE2_LIBS
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-printf "%s\n" "yes" >&6; }
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+printf '%s\n' "yes" >&6; }
fi
@@ -37450,10 +37311,10 @@
done
-printf "%s\n" "#define HAVE_LIBFREETYPE 1" >>confdefs.h
+printf '%s\n' "#define HAVE_LIBFREETYPE 1" >>confdefs.h
-printf "%s\n" "#define HAVE_GD_FREETYPE 1" >>confdefs.h
+printf '%s\n' "#define HAVE_GD_FREETYPE 1" >>confdefs.h
;;
esac
@@ -37464,10 +37325,10 @@
then :
-printf "%s\n" "#define USE_GD_JISX0208 1" >>confdefs.h
+printf '%s\n' "#define USE_GD_JISX0208 1" >>confdefs.h
-printf "%s\n" "#define JISX0208 1" >>confdefs.h
+printf '%s\n' "#define JISX0208 1" >>confdefs.h
fi
@@ -37608,7 +37469,7 @@
EOF
-printf "%s\n" "#define COMPILE_DL_GD 1" >>confdefs.h
+printf '%s\n' "#define COMPILE_DL_GD 1" >>confdefs.h
fi
fi
@@ -37747,7 +37608,7 @@
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether build works" >&5
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking whether build works" >&5
printf %s "checking whether build works... " >&6; }
if test ${php_cv_lib_gd_works+y}
then :
@@ -37780,14 +37641,14 @@
;;
esac
fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $php_cv_lib_gd_works" >&5
-printf "%s\n" "$php_cv_lib_gd_works" >&6; }
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $php_cv_lib_gd_works" >&5
+printf '%s\n' "$php_cv_lib_gd_works" >&6; }
if test "x$php_cv_lib_gd_works" = xyes
then :
else case e in #(
- e) { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in '$ac_pwd':" >&5
-printf "%s\n" "$as_me: error: in '$ac_pwd':" >&2;}
+ e) { { printf '%s\n' "$as_me:${as_lineno-$LINENO}: error: in '$ac_pwd':" >&5
+printf '%s\n' "$as_me: error: in '$ac_pwd':" >&2;}
as_fn_error $? "GD library build test failed.
See 'config.log' for more details" "$LINENO" 5; } ;;
esac
@@ -37796,17 +37657,17 @@
extra_sources="gd_compat.c"
pkg_failed=no
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for gdlib >= 2.1.0" >&5
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for gdlib >= 2.1.0" >&5
printf %s "checking for gdlib >= 2.1.0... " >&6; }
if test -n "$GDLIB_CFLAGS"; then
pkg_cv_GDLIB_CFLAGS="$GDLIB_CFLAGS"
elif test -n "$PKG_CONFIG"; then
if test -n "$PKG_CONFIG" && \
- { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"gdlib >= 2.1.0\""; } >&5
+ { { printf '%s\n' "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"gdlib >= 2.1.0\""; } >&5
($PKG_CONFIG --exists --print-errors "gdlib >= 2.1.0") 2>&5
ac_status=$?
- printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ printf '%s\n' "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
test $ac_status = 0; }; then
pkg_cv_GDLIB_CFLAGS=`$PKG_CONFIG --cflags "gdlib >= 2.1.0" 2>/dev/null`
test "x$?" != "x0" && pkg_failed=yes
@@ -37820,10 +37681,10 @@
pkg_cv_GDLIB_LIBS="$GDLIB_LIBS"
elif test -n "$PKG_CONFIG"; then
if test -n "$PKG_CONFIG" && \
- { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"gdlib >= 2.1.0\""; } >&5
+ { { printf '%s\n' "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"gdlib >= 2.1.0\""; } >&5
($PKG_CONFIG --exists --print-errors "gdlib >= 2.1.0") 2>&5
ac_status=$?
- printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ printf '%s\n' "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
test $ac_status = 0; }; then
pkg_cv_GDLIB_LIBS=`$PKG_CONFIG --libs "gdlib >= 2.1.0" 2>/dev/null`
test "x$?" != "x0" && pkg_failed=yes
@@ -37837,8 +37698,8 @@
if test $pkg_failed = yes; then
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
-printf "%s\n" "no" >&6; }
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf '%s\n' "no" >&6; }
if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then
_pkg_short_errors_supported=yes
@@ -37864,10 +37725,10 @@
and GDLIB_LIBS to avoid the need to call pkg-config.
See the pkg-config man page for more details." "$LINENO" 5
elif test $pkg_failed = untried; then
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
-printf "%s\n" "no" >&6; }
- { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in '$ac_pwd':" >&5
-printf "%s\n" "$as_me: error: in '$ac_pwd':" >&2;}
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf '%s\n' "no" >&6; }
+ { { printf '%s\n' "$as_me:${as_lineno-$LINENO}: error: in '$ac_pwd':" >&5
+printf '%s\n' "$as_me: error: in '$ac_pwd':" >&2;}
as_fn_error $? "The pkg-config script could not be found or is too old. Make sure it
is in your PATH or set the PKG_CONFIG environment variable to the full
path to pkg-config.
@@ -37881,8 +37742,8 @@
else
GDLIB_CFLAGS=$pkg_cv_GDLIB_CFLAGS
GDLIB_LIBS=$pkg_cv_GDLIB_LIBS
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-printf "%s\n" "yes" >&6; }
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+printf '%s\n' "yes" >&6; }
fi
@@ -38041,7 +37902,7 @@
done
-printf "%s\n" "#define HAVE_LIBGD 1" >>confdefs.h
+printf '%s\n' "#define HAVE_LIBGD 1" >>confdefs.h
@@ -38055,7 +37916,7 @@
ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
ac_compiler_gnu=$ac_cv_c_compiler_gnu
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for working gdImageCreateFromPng in libgd" >&5
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for working gdImageCreateFromPng in libgd" >&5
printf %s "checking for working gdImageCreateFromPng in libgd... " >&6; }
if test ${php_cv_lib_gd_gdImageCreateFromPng+y}
then :
@@ -38100,11 +37961,11 @@
;;
esac
fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $php_cv_lib_gd_gdImageCreateFromPng" >&5
-printf "%s\n" "$php_cv_lib_gd_gdImageCreateFromPng" >&6; }
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $php_cv_lib_gd_gdImageCreateFromPng" >&5
+printf '%s\n' "$php_cv_lib_gd_gdImageCreateFromPng" >&6; }
if test "x$php_cv_lib_gd_gdImageCreateFromPng" = xyes
then :
- printf "%s\n" "#define HAVE_GD_PNG 1" >>confdefs.h
+ printf '%s\n' "#define HAVE_GD_PNG 1" >>confdefs.h
fi
ac_ext=c
@@ -38128,7 +37989,7 @@
ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
ac_compiler_gnu=$ac_cv_c_compiler_gnu
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for working gdImageCreateFromAvif in libgd" >&5
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for working gdImageCreateFromAvif in libgd" >&5
printf %s "checking for working gdImageCreateFromAvif in libgd... " >&6; }
if test ${php_cv_lib_gd_gdImageCreateFromAvif+y}
then :
@@ -38173,11 +38034,11 @@
;;
esac
fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $php_cv_lib_gd_gdImageCreateFromAvif" >&5
-printf "%s\n" "$php_cv_lib_gd_gdImageCreateFromAvif" >&6; }
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $php_cv_lib_gd_gdImageCreateFromAvif" >&5
+printf '%s\n' "$php_cv_lib_gd_gdImageCreateFromAvif" >&6; }
if test "x$php_cv_lib_gd_gdImageCreateFromAvif" = xyes
then :
- printf "%s\n" "#define HAVE_GD_AVIF 1" >>confdefs.h
+ printf '%s\n' "#define HAVE_GD_AVIF 1" >>confdefs.h
fi
ac_ext=c
@@ -38201,7 +38062,7 @@
ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
ac_compiler_gnu=$ac_cv_c_compiler_gnu
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for working gdImageCreateFromWebp in libgd" >&5
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for working gdImageCreateFromWebp in libgd" >&5
printf %s "checking for working gdImageCreateFromWebp in libgd... " >&6; }
if test ${php_cv_lib_gd_gdImageCreateFromWebp+y}
then :
@@ -38246,11 +38107,11 @@
;;
esac
fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $php_cv_lib_gd_gdImageCreateFromWebp" >&5
-printf "%s\n" "$php_cv_lib_gd_gdImageCreateFromWebp" >&6; }
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $php_cv_lib_gd_gdImageCreateFromWebp" >&5
+printf '%s\n' "$php_cv_lib_gd_gdImageCreateFromWebp" >&6; }
if test "x$php_cv_lib_gd_gdImageCreateFromWebp" = xyes
then :
- printf "%s\n" "#define HAVE_GD_WEBP 1" >>confdefs.h
+ printf '%s\n' "#define HAVE_GD_WEBP 1" >>confdefs.h
fi
ac_ext=c
@@ -38274,7 +38135,7 @@
ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
ac_compiler_gnu=$ac_cv_c_compiler_gnu
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for working gdImageCreateFromJpeg in libgd" >&5
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for working gdImageCreateFromJpeg in libgd" >&5
printf %s "checking for working gdImageCreateFromJpeg in libgd... " >&6; }
if test ${php_cv_lib_gd_gdImageCreateFromJpeg+y}
then :
@@ -38319,11 +38180,11 @@
;;
esac
fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $php_cv_lib_gd_gdImageCreateFromJpeg" >&5
-printf "%s\n" "$php_cv_lib_gd_gdImageCreateFromJpeg" >&6; }
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $php_cv_lib_gd_gdImageCreateFromJpeg" >&5
+printf '%s\n' "$php_cv_lib_gd_gdImageCreateFromJpeg" >&6; }
if test "x$php_cv_lib_gd_gdImageCreateFromJpeg" = xyes
then :
- printf "%s\n" "#define HAVE_GD_JPG 1" >>confdefs.h
+ printf '%s\n' "#define HAVE_GD_JPG 1" >>confdefs.h
fi
ac_ext=c
@@ -38347,7 +38208,7 @@
ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
ac_compiler_gnu=$ac_cv_c_compiler_gnu
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for working gdImageCreateFromXpm in libgd" >&5
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for working gdImageCreateFromXpm in libgd" >&5
printf %s "checking for working gdImageCreateFromXpm in libgd... " >&6; }
if test ${php_cv_lib_gd_gdImageCreateFromXpm+y}
then :
@@ -38392,11 +38253,11 @@
;;
esac
fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $php_cv_lib_gd_gdImageCreateFromXpm" >&5
-printf "%s\n" "$php_cv_lib_gd_gdImageCreateFromXpm" >&6; }
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $php_cv_lib_gd_gdImageCreateFromXpm" >&5
+printf '%s\n' "$php_cv_lib_gd_gdImageCreateFromXpm" >&6; }
if test "x$php_cv_lib_gd_gdImageCreateFromXpm" = xyes
then :
- printf "%s\n" "#define HAVE_GD_XPM 1" >>confdefs.h
+ printf '%s\n' "#define HAVE_GD_XPM 1" >>confdefs.h
fi
ac_ext=c
@@ -38420,7 +38281,7 @@
ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
ac_compiler_gnu=$ac_cv_c_compiler_gnu
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for working gdImageCreateFromBmp in libgd" >&5
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for working gdImageCreateFromBmp in libgd" >&5
printf %s "checking for working gdImageCreateFromBmp in libgd... " >&6; }
if test ${php_cv_lib_gd_gdImageCreateFromBmp+y}
then :
@@ -38465,11 +38326,11 @@
;;
esac
fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $php_cv_lib_gd_gdImageCreateFromBmp" >&5
-printf "%s\n" "$php_cv_lib_gd_gdImageCreateFromBmp" >&6; }
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $php_cv_lib_gd_gdImageCreateFromBmp" >&5
+printf '%s\n' "$php_cv_lib_gd_gdImageCreateFromBmp" >&6; }
if test "x$php_cv_lib_gd_gdImageCreateFromBmp" = xyes
then :
- printf "%s\n" "#define HAVE_GD_BMP 1" >>confdefs.h
+ printf '%s\n' "#define HAVE_GD_BMP 1" >>confdefs.h
fi
ac_ext=c
@@ -38493,7 +38354,7 @@
ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
ac_compiler_gnu=$ac_cv_c_compiler_gnu
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for working gdImageCreateFromTga in libgd" >&5
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for working gdImageCreateFromTga in libgd" >&5
printf %s "checking for working gdImageCreateFromTga in libgd... " >&6; }
if test ${php_cv_lib_gd_gdImageCreateFromTga+y}
then :
@@ -38538,11 +38399,11 @@
;;
esac
fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $php_cv_lib_gd_gdImageCreateFromTga" >&5
-printf "%s\n" "$php_cv_lib_gd_gdImageCreateFromTga" >&6; }
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $php_cv_lib_gd_gdImageCreateFromTga" >&5
+printf '%s\n' "$php_cv_lib_gd_gdImageCreateFromTga" >&6; }
if test "x$php_cv_lib_gd_gdImageCreateFromTga" = xyes
then :
- printf "%s\n" "#define HAVE_GD_TGA 1" >>confdefs.h
+ printf '%s\n' "#define HAVE_GD_TGA 1" >>confdefs.h
fi
ac_ext=c
@@ -38673,7 +38534,7 @@
esac
done
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for gdFontCacheShutdown in -lgd" >&5
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for gdFontCacheShutdown in -lgd" >&5
printf %s "checking for gdFontCacheShutdown in -lgd... " >&6; }
if test ${ac_cv_lib_gd_gdFontCacheShutdown+y}
then :
@@ -38714,14 +38575,14 @@
LIBS=$ac_check_lib_save_LIBS ;;
esac
fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_gd_gdFontCacheShutdown" >&5
-printf "%s\n" "$ac_cv_lib_gd_gdFontCacheShutdown" >&6; }
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_gd_gdFontCacheShutdown" >&5
+printf '%s\n' "$ac_cv_lib_gd_gdFontCacheShutdown" >&6; }
if test "x$ac_cv_lib_gd_gdFontCacheShutdown" = xyes
then :
LDFLAGS=$save_old_LDFLAGS
ext_shared=$save_ext_shared
- printf "%s\n" "#define HAVE_GD_FREETYPE 1" >>confdefs.h
+ printf '%s\n' "#define HAVE_GD_FREETYPE 1" >>confdefs.h
else case e in #(
@@ -38852,7 +38713,7 @@
esac
done
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for gdVersionString in -lgd" >&5
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for gdVersionString in -lgd" >&5
printf %s "checking for gdVersionString in -lgd... " >&6; }
if test ${ac_cv_lib_gd_gdVersionString+y}
then :
@@ -38893,15 +38754,15 @@
LIBS=$ac_check_lib_save_LIBS ;;
esac
fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_gd_gdVersionString" >&5
-printf "%s\n" "$ac_cv_lib_gd_gdVersionString" >&6; }
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_gd_gdVersionString" >&5
+printf '%s\n' "$ac_cv_lib_gd_gdVersionString" >&6; }
if test "x$ac_cv_lib_gd_gdVersionString" = xyes
then :
LDFLAGS=$save_old_LDFLAGS
ext_shared=$save_ext_shared
-printf "%s\n" "#define HAVE_GD_LIBVERSION 1" >>confdefs.h
+printf '%s\n' "#define HAVE_GD_LIBVERSION 1" >>confdefs.h
else case e in #(
@@ -39032,7 +38893,7 @@
esac
done
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for gdImageGetInterpolationMethod in -lgd" >&5
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for gdImageGetInterpolationMethod in -lgd" >&5
printf %s "checking for gdImageGetInterpolationMethod in -lgd... " >&6; }
if test ${ac_cv_lib_gd_gdImageGetInterpolationMethod+y}
then :
@@ -39073,15 +38934,15 @@
LIBS=$ac_check_lib_save_LIBS ;;
esac
fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_gd_gdImageGetInterpolationMethod" >&5
-printf "%s\n" "$ac_cv_lib_gd_gdImageGetInterpolationMethod" >&6; }
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_gd_gdImageGetInterpolationMethod" >&5
+printf '%s\n' "$ac_cv_lib_gd_gdImageGetInterpolationMethod" >&6; }
if test "x$ac_cv_lib_gd_gdImageGetInterpolationMethod" = xyes
then :
LDFLAGS=$save_old_LDFLAGS
ext_shared=$save_ext_shared
-printf "%s\n" "#define HAVE_GD_GET_INTERPOLATION 1" >>confdefs.h
+printf '%s\n' "#define HAVE_GD_GET_INTERPOLATION 1" >>confdefs.h
else case e in #(
@@ -39231,7 +39092,7 @@
EOF
-printf "%s\n" "#define COMPILE_DL_GD 1" >>confdefs.h
+printf '%s\n' "#define COMPILE_DL_GD 1" >>confdefs.h
fi
fi
@@ -39484,7 +39345,7 @@
esac
done
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for gdImageCreate in -lgd" >&5
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for gdImageCreate in -lgd" >&5
printf %s "checking for gdImageCreate in -lgd... " >&6; }
if test ${ac_cv_lib_gd_gdImageCreate+y}
then :
@@ -39525,8 +39386,8 @@
LIBS=$ac_check_lib_save_LIBS ;;
esac
fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_gd_gdImageCreate" >&5
-printf "%s\n" "$ac_cv_lib_gd_gdImageCreate" >&6; }
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_gd_gdImageCreate" >&5
+printf '%s\n' "$ac_cv_lib_gd_gdImageCreate" >&6; }
if test "x$ac_cv_lib_gd_gdImageCreate" = xyes
then :
@@ -39539,8 +39400,8 @@
LDFLAGS=$save_old_LDFLAGS
ext_shared=$save_ext_shared
unset ac_cv_lib_gd_gdImageCreate
- { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in '$ac_pwd':" >&5
-printf "%s\n" "$as_me: error: in '$ac_pwd':" >&2;}
+ { { printf '%s\n' "$as_me:${as_lineno-$LINENO}: error: in '$ac_pwd':" >&5
+printf '%s\n' "$as_me: error: in '$ac_pwd':" >&2;}
as_fn_error $? "GD library build test failed.
See 'config.log' for more details" "$LINENO" 5; }
;;
@@ -39560,7 +39421,7 @@
php_with_gettext=no
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for GNU gettext support" >&5
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for GNU gettext support" >&5
printf %s "checking for GNU gettext support... " >&6; }
# Check whether --with-gettext was given.
@@ -39598,8 +39459,8 @@
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ext_output" >&5
-printf "%s\n" "$ext_output" >&6; }
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $ext_output" >&5
+printf '%s\n' "$ext_output" >&6; }
@@ -39622,7 +39483,7 @@
O_LDFLAGS=$LDFLAGS
LDFLAGS="$LDFLAGS -L$GETTEXT_LIBDIR"
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for bindtextdomain in -lintl" >&5
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for bindtextdomain in -lintl" >&5
printf %s "checking for bindtextdomain in -lintl... " >&6; }
if test ${ac_cv_lib_intl_bindtextdomain+y}
then :
@@ -39663,8 +39524,8 @@
LIBS=$ac_check_lib_save_LIBS ;;
esac
fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_intl_bindtextdomain" >&5
-printf "%s\n" "$ac_cv_lib_intl_bindtextdomain" >&6; }
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_intl_bindtextdomain" >&5
+printf '%s\n' "$ac_cv_lib_intl_bindtextdomain" >&6; }
if test "x$ac_cv_lib_intl_bindtextdomain" = xyes
then :
@@ -39672,7 +39533,7 @@
GETTEXT_CHECK_IN_LIB=intl
else case e in #(
- e) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for bindtextdomain in -lc" >&5
+ e) { printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for bindtextdomain in -lc" >&5
printf %s "checking for bindtextdomain in -lc... " >&6; }
if test ${ac_cv_lib_c_bindtextdomain+y}
then :
@@ -39713,16 +39574,16 @@
LIBS=$ac_check_lib_save_LIBS ;;
esac
fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_c_bindtextdomain" >&5
-printf "%s\n" "$ac_cv_lib_c_bindtextdomain" >&6; }
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_c_bindtextdomain" >&5
+printf '%s\n' "$ac_cv_lib_c_bindtextdomain" >&6; }
if test "x$ac_cv_lib_c_bindtextdomain" = xyes
then :
GETTEXT_LIBS=
GETTEXT_CHECK_IN_LIB=c
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: symlinking en_US.UTF-8 messages to en_US in case you are on musl" >&5
-printf "%s\n" "$as_me: symlinking en_US.UTF-8 messages to en_US in case you are on musl" >&6;}
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: symlinking en_US.UTF-8 messages to en_US in case you are on musl" >&5
+printf '%s\n' "$as_me: symlinking en_US.UTF-8 messages to en_US in case you are on musl" >&6;}
_linkdest="${srcdir%/}"/ext/gettext/tests/locale/en_US
if test ! -e "${_linkdest}"
then :
@@ -39733,8 +39594,8 @@
else case e in #(
- e) { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in '$ac_pwd':" >&5
-printf "%s\n" "$as_me: error: in '$ac_pwd':" >&2;}
+ e) { { printf '%s\n' "$as_me:${as_lineno-$LINENO}: error: in '$ac_pwd':" >&5
+printf '%s\n' "$as_me: error: in '$ac_pwd':" >&2;}
as_fn_error $? "Unable to find required intl library for gettext.
See 'config.log' for more details" "$LINENO" 5; } ;;
esac
@@ -39745,7 +39606,7 @@
-printf "%s\n" "#define HAVE_LIBINTL 1" >>confdefs.h
+printf '%s\n' "#define HAVE_LIBINTL 1" >>confdefs.h
ext_builddir=ext/gettext
@@ -39882,7 +39743,7 @@
EOF
-printf "%s\n" "#define COMPILE_DL_GETTEXT 1" >>confdefs.h
+printf '%s\n' "#define COMPILE_DL_GETTEXT 1" >>confdefs.h
fi
fi
@@ -40039,8 +39900,8 @@
done
- as_ac_Lib=`printf "%s\n" "ac_cv_lib_$GETTEXT_CHECK_IN_LIB""_ngettext" | sed "$as_sed_sh"`
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for ngettext in -l$GETTEXT_CHECK_IN_LIB" >&5
+ as_ac_Lib=`printf '%s\n' "ac_cv_lib_$GETTEXT_CHECK_IN_LIB""_ngettext" | sed "$as_sed_sh"`
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for ngettext in -l$GETTEXT_CHECK_IN_LIB" >&5
printf %s "checking for ngettext in -l$GETTEXT_CHECK_IN_LIB... " >&6; }
if eval test \${$as_ac_Lib+y}
then :
@@ -40082,17 +39943,17 @@
esac
fi
eval ac_res=\$$as_ac_Lib
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
-printf "%s\n" "$ac_res" >&6; }
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
+printf '%s\n' "$ac_res" >&6; }
if eval test \"x\$"$as_ac_Lib"\" = x"yes"
then :
-printf "%s\n" "#define HAVE_NGETTEXT 1" >>confdefs.h
+printf '%s\n' "#define HAVE_NGETTEXT 1" >>confdefs.h
fi
- as_ac_Lib=`printf "%s\n" "ac_cv_lib_$GETTEXT_CHECK_IN_LIB""_dngettext" | sed "$as_sed_sh"`
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for dngettext in -l$GETTEXT_CHECK_IN_LIB" >&5
+ as_ac_Lib=`printf '%s\n' "ac_cv_lib_$GETTEXT_CHECK_IN_LIB""_dngettext" | sed "$as_sed_sh"`
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for dngettext in -l$GETTEXT_CHECK_IN_LIB" >&5
printf %s "checking for dngettext in -l$GETTEXT_CHECK_IN_LIB... " >&6; }
if eval test \${$as_ac_Lib+y}
then :
@@ -40134,17 +39995,17 @@
esac
fi
eval ac_res=\$$as_ac_Lib
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
-printf "%s\n" "$ac_res" >&6; }
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
+printf '%s\n' "$ac_res" >&6; }
if eval test \"x\$"$as_ac_Lib"\" = x"yes"
then :
-printf "%s\n" "#define HAVE_DNGETTEXT 1" >>confdefs.h
+printf '%s\n' "#define HAVE_DNGETTEXT 1" >>confdefs.h
fi
- as_ac_Lib=`printf "%s\n" "ac_cv_lib_$GETTEXT_CHECK_IN_LIB""_dcngettext" | sed "$as_sed_sh"`
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for dcngettext in -l$GETTEXT_CHECK_IN_LIB" >&5
+ as_ac_Lib=`printf '%s\n' "ac_cv_lib_$GETTEXT_CHECK_IN_LIB""_dcngettext" | sed "$as_sed_sh"`
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for dcngettext in -l$GETTEXT_CHECK_IN_LIB" >&5
printf %s "checking for dcngettext in -l$GETTEXT_CHECK_IN_LIB... " >&6; }
if eval test \${$as_ac_Lib+y}
then :
@@ -40186,17 +40047,17 @@
esac
fi
eval ac_res=\$$as_ac_Lib
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
-printf "%s\n" "$ac_res" >&6; }
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
+printf '%s\n' "$ac_res" >&6; }
if eval test \"x\$"$as_ac_Lib"\" = x"yes"
then :
-printf "%s\n" "#define HAVE_DCNGETTEXT 1" >>confdefs.h
+printf '%s\n' "#define HAVE_DCNGETTEXT 1" >>confdefs.h
fi
- as_ac_Lib=`printf "%s\n" "ac_cv_lib_$GETTEXT_CHECK_IN_LIB""_bind_textdomain_codeset" | sed "$as_sed_sh"`
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for bind_textdomain_codeset in -l$GETTEXT_CHECK_IN_LIB" >&5
+ as_ac_Lib=`printf '%s\n' "ac_cv_lib_$GETTEXT_CHECK_IN_LIB""_bind_textdomain_codeset" | sed "$as_sed_sh"`
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for bind_textdomain_codeset in -l$GETTEXT_CHECK_IN_LIB" >&5
printf %s "checking for bind_textdomain_codeset in -l$GETTEXT_CHECK_IN_LIB... " >&6; }
if eval test \${$as_ac_Lib+y}
then :
@@ -40238,12 +40099,12 @@
esac
fi
eval ac_res=\$$as_ac_Lib
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
-printf "%s\n" "$ac_res" >&6; }
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
+printf '%s\n' "$ac_res" >&6; }
if eval test \"x\$"$as_ac_Lib"\" = x"yes"
then :
-printf "%s\n" "#define HAVE_BIND_TEXTDOMAIN_CODESET 1" >>confdefs.h
+printf '%s\n' "#define HAVE_BIND_TEXTDOMAIN_CODESET 1" >>confdefs.h
fi
@@ -40368,7 +40229,7 @@
php_with_gmp=no
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for GNU MP support" >&5
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for GNU MP support" >&5
printf %s "checking for GNU MP support... " >&6; }
# Check whether --with-gmp was given.
@@ -40406,8 +40267,8 @@
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ext_output" >&5
-printf "%s\n" "$ext_output" >&6; }
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $ext_output" >&5
+printf '%s\n' "$ext_output" >&6; }
@@ -40418,17 +40279,17 @@
then :
pkg_failed=no
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for gmp >= 4.2" >&5
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for gmp >= 4.2" >&5
printf %s "checking for gmp >= 4.2... " >&6; }
if test -n "$GMP_CFLAGS"; then
pkg_cv_GMP_CFLAGS="$GMP_CFLAGS"
elif test -n "$PKG_CONFIG"; then
if test -n "$PKG_CONFIG" && \
- { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"gmp >= 4.2\""; } >&5
+ { { printf '%s\n' "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"gmp >= 4.2\""; } >&5
($PKG_CONFIG --exists --print-errors "gmp >= 4.2") 2>&5
ac_status=$?
- printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ printf '%s\n' "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
test $ac_status = 0; }; then
pkg_cv_GMP_CFLAGS=`$PKG_CONFIG --cflags "gmp >= 4.2" 2>/dev/null`
test "x$?" != "x0" && pkg_failed=yes
@@ -40442,10 +40303,10 @@
pkg_cv_GMP_LIBS="$GMP_LIBS"
elif test -n "$PKG_CONFIG"; then
if test -n "$PKG_CONFIG" && \
- { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"gmp >= 4.2\""; } >&5
+ { { printf '%s\n' "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"gmp >= 4.2\""; } >&5
($PKG_CONFIG --exists --print-errors "gmp >= 4.2") 2>&5
ac_status=$?
- printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ printf '%s\n' "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
test $ac_status = 0; }; then
pkg_cv_GMP_LIBS=`$PKG_CONFIG --libs "gmp >= 4.2" 2>/dev/null`
test "x$?" != "x0" && pkg_failed=yes
@@ -40459,8 +40320,8 @@
if test $pkg_failed = yes; then
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
-printf "%s\n" "no" >&6; }
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf '%s\n' "no" >&6; }
if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then
_pkg_short_errors_supported=yes
@@ -40477,14 +40338,14 @@
:
elif test $pkg_failed = untried; then
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
-printf "%s\n" "no" >&6; }
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf '%s\n' "no" >&6; }
:
else
GMP_CFLAGS=$pkg_cv_GMP_CFLAGS
GMP_LIBS=$pkg_cv_GMP_LIBS
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-printf "%s\n" "yes" >&6; }
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+printf '%s\n' "yes" >&6; }
gmp_found=yes
fi
fi
@@ -40524,8 +40385,8 @@
if test "x$gmp_check" = xno
then :
- { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in '$ac_pwd':" >&5
-printf "%s\n" "$as_me: error: in '$ac_pwd':" >&2;}
+ { { printf '%s\n' "$as_me:${as_lineno-$LINENO}: error: in '$ac_pwd':" >&5
+printf '%s\n' "$as_me: error: in '$ac_pwd':" >&2;}
as_fn_error $? "
The required GNU MP library version 4.2 or greater not found.
@@ -40841,7 +40702,7 @@
EOF
-printf "%s\n" "#define COMPILE_DL_GMP 1" >>confdefs.h
+printf '%s\n' "#define COMPILE_DL_GMP 1" >>confdefs.h
fi
fi
@@ -40963,7 +40824,7 @@
PHP_VAR_SUBST="$PHP_VAR_SUBST GMP_SHARED_LIBADD"
-printf "%s\n" "#define HAVE_GMP 1" >>confdefs.h
+printf '%s\n' "#define HAVE_GMP 1" >>confdefs.h
fi
@@ -40973,7 +40834,7 @@
php_with_mhash=no
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for mhash support" >&5
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for mhash support" >&5
printf %s "checking for mhash support... " >&6; }
# Check whether --with-mhash was given.
@@ -41011,8 +40872,8 @@
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ext_output" >&5
-printf "%s\n" "$ext_output" >&6; }
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $ext_output" >&5
+printf '%s\n' "$ext_output" >&6; }
@@ -41022,10 +40883,10 @@
else case e in #(
e)
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: The --with-mhash option and mhash* functions are deprecated as of PHP 8.1.0" >&5
-printf "%s\n" "$as_me: WARNING: The --with-mhash option and mhash* functions are deprecated as of PHP 8.1.0" >&2;}
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: WARNING: The --with-mhash option and mhash* functions are deprecated as of PHP 8.1.0" >&5
+printf '%s\n' "$as_me: WARNING: The --with-mhash option and mhash* functions are deprecated as of PHP 8.1.0" >&2;}
-printf "%s\n" "#define PHP_MHASH_BC 1" >>confdefs.h
+printf '%s\n' "#define PHP_MHASH_BC 1" >>confdefs.h
;;
esac
@@ -41036,10 +40897,10 @@
EXT_HASH_SHA3_SOURCES=
-printf "%s\n" "#define HAVE_SLOW_HASH3 1" >>confdefs.h
+printf '%s\n' "#define HAVE_SLOW_HASH3 1" >>confdefs.h
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: Using SHA3 slow implementation on bigendian" >&5
-printf "%s\n" "$as_me: WARNING: Using SHA3 slow implementation on bigendian" >&2;}
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: WARNING: Using SHA3 slow implementation on bigendian" >&5
+printf '%s\n' "$as_me: WARNING: Using SHA3 slow implementation on bigendian" >&2;}
SHA3_DIR=
else case e in #(
@@ -41048,7 +40909,7 @@
# version HP92453-01 B.11.11.23709.GP, which incorrectly rejects
# declarations like 'int a3[[(sizeof (unsigned char)) >= 0]];'.
# This bug is HP SR number 8606223364.
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking size of long" >&5
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking size of long" >&5
printf %s "checking size of long... " >&6; }
if test ${ac_cv_sizeof_long+y}
then :
@@ -41058,37 +40919,30 @@
then :
else case e in #(
- e) if test "$ac_cv_type_long" = yes; then
- { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in '$ac_pwd':" >&5
-printf "%s\n" "$as_me: error: in '$ac_pwd':" >&2;}
-as_fn_error 77 "cannot compute sizeof (long)
-See 'config.log' for more details" "$LINENO" 5; }
- else
- ac_cv_sizeof_long=0
- fi ;;
+ e) ac_cv_sizeof_long=0 ;;
esac
fi
;;
esac
fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sizeof_long" >&5
-printf "%s\n" "$ac_cv_sizeof_long" >&6; }
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sizeof_long" >&5
+printf '%s\n' "$ac_cv_sizeof_long" >&6; }
-printf "%s\n" "#define SIZEOF_LONG $ac_cv_sizeof_long" >>confdefs.h
+printf '%s\n' "#define SIZEOF_LONG $ac_cv_sizeof_long" >>confdefs.h
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if we're at 64-bit platform" >&5
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking if we're at 64-bit platform" >&5
printf %s "checking if we're at 64-bit platform... " >&6; }
if test "$ac_cv_sizeof_long" -eq 4
then :
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
-printf "%s\n" "no" >&6; }
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf '%s\n' "no" >&6; }
SHA3_DIR="sha3/generic32lc"
SHA3_OPT_SRC="$SHA3_DIR/KeccakP-1600-inplace32BI.c"
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether the C compiler accepts -Wno-implicit-fallthrough" >&5
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking whether the C compiler accepts -Wno-implicit-fallthrough" >&5
printf %s "checking whether the C compiler accepts -Wno-implicit-fallthrough... " >&6; }
if test ${ax_cv_check_cflags__Werror__Wno_implicit_fallthrough+y}
then :
@@ -41119,8 +40973,8 @@
CFLAGS=$ax_check_save_flags ;;
esac
fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ax_cv_check_cflags__Werror__Wno_implicit_fallthrough" >&5
-printf "%s\n" "$ax_cv_check_cflags__Werror__Wno_implicit_fallthrough" >&6; }
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $ax_cv_check_cflags__Werror__Wno_implicit_fallthrough" >&5
+printf '%s\n' "$ax_cv_check_cflags__Werror__Wno_implicit_fallthrough" >&6; }
if test "x$ax_cv_check_cflags__Werror__Wno_implicit_fallthrough" = xyes
then :
PHP_HASH_CFLAGS="$PHP_HASH_CFLAGS -Wno-implicit-fallthrough"
@@ -41132,8 +40986,8 @@
else case e in #(
e)
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-printf "%s\n" "yes" >&6; }
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+printf '%s\n' "yes" >&6; }
SHA3_DIR="sha3/generic64lc"
SHA3_OPT_SRC="$SHA3_DIR/KeccakP-1600-opt64.c"
;;
@@ -41280,7 +41134,7 @@
EOF
-printf "%s\n" "#define COMPILE_DL_HASH 1" >>confdefs.h
+printf '%s\n' "#define COMPILE_DL_HASH 1" >>confdefs.h
fi
fi
@@ -41432,7 +41286,7 @@
php_with_iconv=yes
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for iconv support" >&5
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for iconv support" >&5
printf %s "checking for iconv support... " >&6; }
# Check whether --with-iconv was given.
@@ -41470,8 +41324,8 @@
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ext_output" >&5
-printf "%s\n" "$ext_output" >&6; }
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $ext_output" >&5
+printf '%s\n' "$ext_output" >&6; }
@@ -41496,7 +41350,7 @@
if test "x$ac_cv_func_libiconv" = xyes
then :
- printf "%s\n" "#define HAVE_LIBICONV 1" >>confdefs.h
+ printf '%s\n' "#define HAVE_LIBICONV 1" >>confdefs.h
found_iconv=yes
@@ -41653,8 +41507,8 @@
esac
done
- as_ac_Lib=`printf "%s\n" "ac_cv_lib_$iconv_lib_name""_libiconv" | sed "$as_sed_sh"`
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for libiconv in -l$iconv_lib_name" >&5
+ as_ac_Lib=`printf '%s\n' "ac_cv_lib_$iconv_lib_name""_libiconv" | sed "$as_sed_sh"`
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for libiconv in -l$iconv_lib_name" >&5
printf %s "checking for libiconv in -l$iconv_lib_name... " >&6; }
if eval test \${$as_ac_Lib+y}
then :
@@ -41696,8 +41550,8 @@
esac
fi
eval ac_res=\$$as_ac_Lib
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
-printf "%s\n" "$ac_res" >&6; }
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
+printf '%s\n' "$ac_res" >&6; }
if eval test \"x\$"$as_ac_Lib"\" = x"yes"
then :
@@ -41705,10 +41559,10 @@
ext_shared=$save_ext_shared
found_iconv=yes
- printf "%s\n" "#define HAVE_LIBICONV 1" >>confdefs.h
+ printf '%s\n' "#define HAVE_LIBICONV 1" >>confdefs.h
-printf "%s\n" "#define ICONV_ALIASED_LIBICONV 1" >>confdefs.h
+printf '%s\n' "#define ICONV_ALIASED_LIBICONV 1" >>confdefs.h
@@ -41835,8 +41689,8 @@
esac
done
- as_ac_Lib=`printf "%s\n" "ac_cv_lib_$iconv_lib_name""_iconv" | sed "$as_sed_sh"`
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for iconv in -l$iconv_lib_name" >&5
+ as_ac_Lib=`printf '%s\n' "ac_cv_lib_$iconv_lib_name""_iconv" | sed "$as_sed_sh"`
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for iconv in -l$iconv_lib_name" >&5
printf %s "checking for iconv in -l$iconv_lib_name... " >&6; }
if eval test \${$as_ac_Lib+y}
then :
@@ -41878,8 +41732,8 @@
esac
fi
eval ac_res=\$$as_ac_Lib
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
-printf "%s\n" "$ac_res" >&6; }
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
+printf '%s\n' "$ac_res" >&6; }
if eval test \"x\$"$as_ac_Lib"\" = x"yes"
then :
@@ -42048,8 +41902,8 @@
fi
-else { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in '$ac_pwd':" >&5
-printf "%s\n" "$as_me: error: in '$ac_pwd':" >&2;}
+else { { printf '%s\n' "$as_me:${as_lineno-$LINENO}: error: in '$ac_pwd':" >&5
+printf '%s\n' "$as_me: error: in '$ac_pwd':" >&2;}
as_fn_error $? "The iconv not found.
See 'config.log' for more details" "$LINENO" 5; }
fi
@@ -42060,7 +41914,7 @@
LIBS="$LIBS $ICONV_SHARED_LIBADD"
CFLAGS="$INCLUDES $CFLAGS"
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for iconv implementation" >&5
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for iconv implementation" >&5
printf %s "checking for iconv implementation... " >&6; }
if test ${php_cv_iconv_implementation+y}
then :
@@ -42162,8 +42016,8 @@
;;
esac
fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $php_cv_iconv_implementation" >&5
-printf "%s\n" "$php_cv_iconv_implementation" >&6; }
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $php_cv_iconv_implementation" >&5
+printf '%s\n' "$php_cv_iconv_implementation" >&6; }
@@ -42171,34 +42025,34 @@
glibc) :
-printf "%s\n" "#define HAVE_GLIBC_ICONV 1" >>confdefs.h
+printf '%s\n' "#define HAVE_GLIBC_ICONV 1" >>confdefs.h
- printf "%s\n" "#define PHP_ICONV_IMPL \"glibc\"" >>confdefs.h
+ printf '%s\n' "#define PHP_ICONV_IMPL \"glibc\"" >>confdefs.h
;; #(
"GNU libiconv") :
- printf "%s\n" "#define PHP_ICONV_IMPL \"libiconv\"" >>confdefs.h
+ printf '%s\n' "#define PHP_ICONV_IMPL \"libiconv\"" >>confdefs.h
- printf "%s\n" "#define HAVE_LIBICONV 1" >>confdefs.h
+ printf '%s\n' "#define HAVE_LIBICONV 1" >>confdefs.h
;; #(
BSD) :
- printf "%s\n" "#define PHP_ICONV_IMPL \"BSD iconv\"" >>confdefs.h
+ printf '%s\n' "#define PHP_ICONV_IMPL \"BSD iconv\"" >>confdefs.h
;; #(
IBM) :
-printf "%s\n" "#define HAVE_IBM_ICONV 1" >>confdefs.h
+printf '%s\n' "#define HAVE_IBM_ICONV 1" >>confdefs.h
- printf "%s\n" "#define PHP_ICONV_IMPL \"IBM iconv\"" >>confdefs.h
+ printf '%s\n' "#define PHP_ICONV_IMPL \"IBM iconv\"" >>confdefs.h
;; #(
*) :
;;
esac
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if iconv supports errno" >&5
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking if iconv supports errno" >&5
printf %s "checking if iconv supports errno... " >&6; }
if test ${php_cv_iconv_errno+y}
then :
@@ -42243,20 +42097,20 @@
;;
esac
fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $php_cv_iconv_errno" >&5
-printf "%s\n" "$php_cv_iconv_errno" >&6; }
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $php_cv_iconv_errno" >&5
+printf '%s\n' "$php_cv_iconv_errno" >&6; }
if test "x$php_cv_iconv_errno" = xyes
then :
else case e in #(
- e) { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in '$ac_pwd':" >&5
-printf "%s\n" "$as_me: error: in '$ac_pwd':" >&2;}
+ e) { { printf '%s\n' "$as_me:${as_lineno-$LINENO}: error: in '$ac_pwd':" >&5
+printf '%s\n' "$as_me: error: in '$ac_pwd':" >&2;}
as_fn_error $? "The iconv check failed, 'errno' is missing.
See 'config.log' for more details" "$LINENO" 5; } ;;
esac
fi
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if iconv input parameter is const (non-standard)" >&5
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking if iconv input parameter is const (non-standard)" >&5
printf %s "checking if iconv input parameter is const (non-standard)... " >&6; }
if test ${php_cv_iconv_const+y}
then :
@@ -42280,14 +42134,14 @@
rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext ;;
esac
fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $php_cv_iconv_const" >&5
-printf "%s\n" "$php_cv_iconv_const" >&6; }
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $php_cv_iconv_const" >&5
+printf '%s\n' "$php_cv_iconv_const" >&6; }
if test "x$php_cv_iconv_const" = xnon-const
then :
php_cv_iconv_const=
fi
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if iconv supports //IGNORE" >&5
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking if iconv supports //IGNORE" >&5
printf %s "checking if iconv supports //IGNORE... " >&6; }
if test ${php_cv_iconv_ignore+y}
then :
@@ -42334,12 +42188,12 @@
;;
esac
fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $php_cv_iconv_ignore" >&5
-printf "%s\n" "$php_cv_iconv_ignore" >&6; }
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $php_cv_iconv_ignore" >&5
+printf '%s\n' "$php_cv_iconv_ignore" >&6; }
if test "x$php_cv_iconv_ignore" = xno
then :
-printf "%s\n" "#define ICONV_BROKEN_IGNORE 1" >>confdefs.h
+printf '%s\n' "#define ICONV_BROKEN_IGNORE 1" >>confdefs.h
fi
@@ -42347,7 +42201,7 @@
CFLAGS=$save_CFLAGS
-printf "%s\n" "#define HAVE_ICONV 1" >>confdefs.h
+printf '%s\n' "#define HAVE_ICONV 1" >>confdefs.h
@@ -42485,7 +42339,7 @@
EOF
-printf "%s\n" "#define COMPILE_DL_ICONV 1" >>confdefs.h
+printf '%s\n' "#define COMPILE_DL_ICONV 1" >>confdefs.h
fi
fi
@@ -42631,7 +42485,7 @@
php_enable_intl=no
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether to enable internationalization support" >&5
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking whether to enable internationalization support" >&5
printf %s "checking whether to enable internationalization support... " >&6; }
# Check whether --enable-intl was given.
if test ${enable_intl+y}
@@ -42668,8 +42522,8 @@
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ext_output" >&5
-printf "%s\n" "$ext_output" >&6; }
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $ext_output" >&5
+printf '%s\n' "$ext_output" >&6; }
@@ -42678,17 +42532,17 @@
pkg_failed=no
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for icu-uc >= 50.1 icu-io icu-i18n" >&5
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for icu-uc >= 50.1 icu-io icu-i18n" >&5
printf %s "checking for icu-uc >= 50.1 icu-io icu-i18n... " >&6; }
if test -n "$ICU_CFLAGS"; then
pkg_cv_ICU_CFLAGS="$ICU_CFLAGS"
elif test -n "$PKG_CONFIG"; then
if test -n "$PKG_CONFIG" && \
- { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"icu-uc >= 50.1 icu-io icu-i18n\""; } >&5
+ { { printf '%s\n' "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"icu-uc >= 50.1 icu-io icu-i18n\""; } >&5
($PKG_CONFIG --exists --print-errors "icu-uc >= 50.1 icu-io icu-i18n") 2>&5
ac_status=$?
- printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ printf '%s\n' "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
test $ac_status = 0; }; then
pkg_cv_ICU_CFLAGS=`$PKG_CONFIG --cflags "icu-uc >= 50.1 icu-io icu-i18n" 2>/dev/null`
test "x$?" != "x0" && pkg_failed=yes
@@ -42702,10 +42556,10 @@
pkg_cv_ICU_LIBS="$ICU_LIBS"
elif test -n "$PKG_CONFIG"; then
if test -n "$PKG_CONFIG" && \
- { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"icu-uc >= 50.1 icu-io icu-i18n\""; } >&5
+ { { printf '%s\n' "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"icu-uc >= 50.1 icu-io icu-i18n\""; } >&5
($PKG_CONFIG --exists --print-errors "icu-uc >= 50.1 icu-io icu-i18n") 2>&5
ac_status=$?
- printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ printf '%s\n' "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
test $ac_status = 0; }; then
pkg_cv_ICU_LIBS=`$PKG_CONFIG --libs "icu-uc >= 50.1 icu-io icu-i18n" 2>/dev/null`
test "x$?" != "x0" && pkg_failed=yes
@@ -42719,8 +42573,8 @@
if test $pkg_failed = yes; then
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
-printf "%s\n" "no" >&6; }
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf '%s\n' "no" >&6; }
if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then
_pkg_short_errors_supported=yes
@@ -42746,10 +42600,10 @@
and ICU_LIBS to avoid the need to call pkg-config.
See the pkg-config man page for more details." "$LINENO" 5
elif test $pkg_failed = untried; then
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
-printf "%s\n" "no" >&6; }
- { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in '$ac_pwd':" >&5
-printf "%s\n" "$as_me: error: in '$ac_pwd':" >&2;}
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf '%s\n' "no" >&6; }
+ { { printf '%s\n' "$as_me:${as_lineno-$LINENO}: error: in '$ac_pwd':" >&5
+printf '%s\n' "$as_me: error: in '$ac_pwd':" >&2;}
as_fn_error $? "The pkg-config script could not be found or is too old. Make sure it
is in your PATH or set the PKG_CONFIG environment variable to the full
path to pkg-config.
@@ -42763,8 +42617,8 @@
else
ICU_CFLAGS=$pkg_cv_ICU_CFLAGS
ICU_LIBS=$pkg_cv_ICU_LIBS
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-printf "%s\n" "yes" >&6; }
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+printf '%s\n' "yes" >&6; }
fi
@@ -43071,7 +42925,7 @@
EOF
-printf "%s\n" "#define COMPILE_DL_INTL 1" >>confdefs.h
+printf '%s\n' "#define COMPILE_DL_INTL 1" >>confdefs.h
fi
fi
@@ -43230,7 +43084,7 @@
do
# Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args.
set dummy $ac_tool_prefix$ac_prog; ac_word=$2
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
printf %s "checking for $ac_word... " >&6; }
if test ${ac_cv_prog_CXX+y}
then :
@@ -43251,7 +43105,7 @@
for ac_exec_ext in '' $ac_executable_extensions; do
if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
ac_cv_prog_CXX="$ac_tool_prefix$ac_prog"
- printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
+ printf '%s\n' "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
break 2
fi
done
@@ -43263,11 +43117,11 @@
fi
CXX=$ac_cv_prog_CXX
if test -n "$CXX"; then
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $CXX" >&5
-printf "%s\n" "$CXX" >&6; }
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $CXX" >&5
+printf '%s\n' "$CXX" >&6; }
else
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
-printf "%s\n" "no" >&6; }
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf '%s\n' "no" >&6; }
fi
@@ -43280,7 +43134,7 @@
do
# Extract the first word of "$ac_prog", so it can be a program name with args.
set dummy $ac_prog; ac_word=$2
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
printf %s "checking for $ac_word... " >&6; }
if test ${ac_cv_prog_ac_ct_CXX+y}
then :
@@ -43301,7 +43155,7 @@
for ac_exec_ext in '' $ac_executable_extensions; do
if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
ac_cv_prog_ac_ct_CXX="$ac_prog"
- printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
+ printf '%s\n' "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
break 2
fi
done
@@ -43313,11 +43167,11 @@
fi
ac_ct_CXX=$ac_cv_prog_ac_ct_CXX
if test -n "$ac_ct_CXX"; then
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CXX" >&5
-printf "%s\n" "$ac_ct_CXX" >&6; }
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CXX" >&5
+printf '%s\n' "$ac_ct_CXX" >&6; }
else
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
-printf "%s\n" "no" >&6; }
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf '%s\n' "no" >&6; }
fi
@@ -43329,8 +43183,8 @@
else
case $cross_compiling:$ac_tool_warned in
yes:)
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
-printf "%s\n" "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+printf '%s\n' "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
ac_tool_warned=yes ;;
esac
CXX=$ac_ct_CXX
@@ -43340,7 +43194,7 @@
fi
fi
# Provide some information about the compiler.
-printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for C++ compiler version" >&5
+printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for C++ compiler version" >&5
set X $ac_compile
ac_compiler=$2
for ac_option in --version -v -V -qversion; do
@@ -43350,7 +43204,7 @@
*) ac_try_echo=$ac_try;;
esac
eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
-printf "%s\n" "$ac_try_echo"; } >&5
+printf '%s\n' "$ac_try_echo"; } >&5
(eval "$ac_compiler $ac_option >&5") 2>conftest.err
ac_status=$?
if test -s conftest.err; then
@@ -43360,11 +43214,11 @@
cat conftest.er1 >&5
fi
rm -f conftest.er1 conftest.err
- printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ printf '%s\n' "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
test $ac_status = 0; }
done
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether the compiler supports GNU C++" >&5
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking whether the compiler supports GNU C++" >&5
printf %s "checking whether the compiler supports GNU C++... " >&6; }
if test ${ac_cv_cxx_compiler_gnu+y}
then :
@@ -43396,8 +43250,8 @@
;;
esac
fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_cxx_compiler_gnu" >&5
-printf "%s\n" "$ac_cv_cxx_compiler_gnu" >&6; }
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $ac_cv_cxx_compiler_gnu" >&5
+printf '%s\n' "$ac_cv_cxx_compiler_gnu" >&6; }
ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
if test $ac_compiler_gnu = yes; then
@@ -43407,7 +43261,7 @@
fi
ac_test_CXXFLAGS=${CXXFLAGS+y}
ac_save_CXXFLAGS=$CXXFLAGS
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether $CXX accepts -g" >&5
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking whether $CXX accepts -g" >&5
printf %s "checking whether $CXX accepts -g... " >&6; }
if test ${ac_cv_prog_cxx_g+y}
then :
@@ -43475,8 +43329,8 @@
ac_cxx_werror_flag=$ac_save_cxx_werror_flag ;;
esac
fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cxx_g" >&5
-printf "%s\n" "$ac_cv_prog_cxx_g" >&6; }
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cxx_g" >&5
+printf '%s\n' "$ac_cv_prog_cxx_g" >&6; }
if test $ac_test_CXXFLAGS; then
CXXFLAGS=$ac_save_CXXFLAGS
elif test $ac_cv_prog_cxx_g = yes; then
@@ -43492,106 +43346,6 @@
CXXFLAGS=
fi
fi
-ac_prog_cxx_stdcxx=no
-if test x$ac_prog_cxx_stdcxx = xno
-then :
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $CXX option to enable C++11 features" >&5
-printf %s "checking for $CXX option to enable C++11 features... " >&6; }
-if test ${ac_cv_prog_cxx_cxx11+y}
-then :
- printf %s "(cached) " >&6
-else case e in #(
- e) ac_cv_prog_cxx_cxx11=no
-ac_save_CXX=$CXX
-cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-$ac_cxx_conftest_cxx11_program
-_ACEOF
-for ac_arg in '' -std=gnu++11 -std=gnu++0x -std=c++11 -std=c++0x -qlanglvl=extended0x -AA
-do
- CXX="$ac_save_CXX $ac_arg"
- if ac_fn_cxx_try_compile "$LINENO"
-then :
- ac_cv_prog_cxx_cxx11=$ac_arg
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.beam
- test "x$ac_cv_prog_cxx_cxx11" != "xno" && break
-done
-rm -f conftest.$ac_ext
-CXX=$ac_save_CXX ;;
-esac
-fi
-
-if test "x$ac_cv_prog_cxx_cxx11" = xno
-then :
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5
-printf "%s\n" "unsupported" >&6; }
-else case e in #(
- e) if test "x$ac_cv_prog_cxx_cxx11" = x
-then :
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: none needed" >&5
-printf "%s\n" "none needed" >&6; }
-else case e in #(
- e) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cxx_cxx11" >&5
-printf "%s\n" "$ac_cv_prog_cxx_cxx11" >&6; }
- CXX="$CXX $ac_cv_prog_cxx_cxx11" ;;
-esac
-fi
- ac_cv_prog_cxx_stdcxx=$ac_cv_prog_cxx_cxx11
- ac_prog_cxx_stdcxx=cxx11 ;;
-esac
-fi
-fi
-if test x$ac_prog_cxx_stdcxx = xno
-then :
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $CXX option to enable C++98 features" >&5
-printf %s "checking for $CXX option to enable C++98 features... " >&6; }
-if test ${ac_cv_prog_cxx_cxx98+y}
-then :
- printf %s "(cached) " >&6
-else case e in #(
- e) ac_cv_prog_cxx_cxx98=no
-ac_save_CXX=$CXX
-cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-$ac_cxx_conftest_cxx98_program
-_ACEOF
-for ac_arg in '' -std=gnu++98 -std=c++98 -qlanglvl=extended -AA
-do
- CXX="$ac_save_CXX $ac_arg"
- if ac_fn_cxx_try_compile "$LINENO"
-then :
- ac_cv_prog_cxx_cxx98=$ac_arg
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.beam
- test "x$ac_cv_prog_cxx_cxx98" != "xno" && break
-done
-rm -f conftest.$ac_ext
-CXX=$ac_save_CXX ;;
-esac
-fi
-
-if test "x$ac_cv_prog_cxx_cxx98" = xno
-then :
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5
-printf "%s\n" "unsupported" >&6; }
-else case e in #(
- e) if test "x$ac_cv_prog_cxx_cxx98" = x
-then :
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: none needed" >&5
-printf "%s\n" "none needed" >&6; }
-else case e in #(
- e) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cxx_cxx98" >&5
-printf "%s\n" "$ac_cv_prog_cxx_cxx98" >&6; }
- CXX="$CXX $ac_cv_prog_cxx_cxx98" ;;
-esac
-fi
- ac_cv_prog_cxx_stdcxx=$ac_cv_prog_cxx_cxx98
- ac_prog_cxx_stdcxx=cxx98 ;;
-esac
-fi
-fi
-
ac_ext=c
ac_cpp='$CPP $CPPFLAGS'
ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
@@ -43603,7 +43357,7 @@
ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5'
ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking how to run the C++ preprocessor" >&5
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking how to run the C++ preprocessor" >&5
printf %s "checking how to run the C++ preprocessor... " >&6; }
if test -z "$CXXCPP"; then
if test ${ac_cv_prog_CXXCPP+y}
@@ -43670,8 +43424,8 @@
else
ac_cv_prog_CXXCPP=$CXXCPP
fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $CXXCPP" >&5
-printf "%s\n" "$CXXCPP" >&6; }
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $CXXCPP" >&5
+printf '%s\n' "$CXXCPP" >&6; }
ac_preproc_ok=false
for ac_cxx_preproc_warn_flag in '' yes
do
@@ -43719,8 +43473,8 @@
then :
else case e in #(
- e) { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in '$ac_pwd':" >&5
-printf "%s\n" "$as_me: error: in '$ac_pwd':" >&2;}
+ e) { { printf '%s\n' "$as_me:${as_lineno-$LINENO}: error: in '$ac_pwd':" >&5
+printf '%s\n' "$as_me: error: in '$ac_pwd':" >&2;}
as_fn_error $? "C++ preprocessor \"$CXXCPP\" fails sanity check
See 'config.log' for more details" "$LINENO" 5; } ;;
esac
@@ -43747,14 +43501,14 @@
fi
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if intl requires -std=gnu++17" >&5
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking if intl requires -std=gnu++17" >&5
printf %s "checking if intl requires -std=gnu++17... " >&6; }
if $PKG_CONFIG icu-uc --atleast-version=74
then :
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-printf "%s\n" "yes" >&6; }
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+printf '%s\n' "yes" >&6; }
ax_cxx_compile_alternatives="17 1z" ax_cxx_compile_cxx17_required=true ac_ext=cpp
ac_cpp='$CXXCPP $CPPFLAGS'
ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5'
@@ -43764,8 +43518,8 @@
for alternative in ${ax_cxx_compile_alternatives}; do
for switch in -std=c++${alternative} +std=c++${alternative} "-h std=c++${alternative}"; do
- cachevar=`printf "%s\n" "ax_cv_cxx_compile_cxx17_$switch" | sed "$as_sed_sh"`
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether $CXX supports C++17 features with $switch" >&5
+ cachevar=`printf '%s\n' "ax_cv_cxx_compile_cxx17_$switch" | sed "$as_sed_sh"`
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking whether $CXX supports C++17 features with $switch" >&5
printf %s "checking whether $CXX supports C++17 features with $switch... " >&6; }
if eval test \${$cachevar+y}
then :
@@ -44574,8 +44328,8 @@
esac
fi
eval ac_res=\$$cachevar
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
-printf "%s\n" "$ac_res" >&6; }
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
+printf '%s\n' "$ac_res" >&6; }
if eval test x\$$cachevar = xyes; then
eval PHP_INTL_STDCXX="$switch"
ac_success=yes
@@ -44599,16 +44353,16 @@
fi
fi
if test x$ac_success = xno; then
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: No compiler with C++17 support was found" >&5
-printf "%s\n" "$as_me: No compiler with C++17 support was found" >&6;}
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: No compiler with C++17 support was found" >&5
+printf '%s\n' "$as_me: No compiler with C++17 support was found" >&6;}
fi
else case e in #(
e)
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
-printf "%s\n" "no" >&6; }
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf '%s\n' "no" >&6; }
ax_cxx_compile_alternatives="11 0x" ax_cxx_compile_cxx11_required=true ac_ext=cpp
ac_cpp='$CXXCPP $CPPFLAGS'
ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5'
@@ -44618,8 +44372,8 @@
for alternative in ${ax_cxx_compile_alternatives}; do
for switch in -std=c++${alternative} +std=c++${alternative} "-h std=c++${alternative}"; do
- cachevar=`printf "%s\n" "ax_cv_cxx_compile_cxx11_$switch" | sed "$as_sed_sh"`
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether $CXX supports C++11 features with $switch" >&5
+ cachevar=`printf '%s\n' "ax_cv_cxx_compile_cxx11_$switch" | sed "$as_sed_sh"`
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking whether $CXX supports C++11 features with $switch" >&5
printf %s "checking whether $CXX supports C++11 features with $switch... " >&6; }
if eval test \${$cachevar+y}
then :
@@ -44930,8 +44684,8 @@
esac
fi
eval ac_res=\$$cachevar
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
-printf "%s\n" "$ac_res" >&6; }
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
+printf '%s\n' "$ac_res" >&6; }
if eval test x\$$cachevar = xyes; then
eval PHP_INTL_STDCXX="$switch"
ac_success=yes
@@ -44955,8 +44709,8 @@
fi
fi
if test x$ac_success = xno; then
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: No compiler with C++11 support was found" >&5
-printf "%s\n" "$as_me: No compiler with C++11 support was found" >&6;}
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: No compiler with C++11 support was found" >&5
+printf '%s\n' "$as_me: No compiler with C++11 support was found" >&6;}
fi
@@ -45229,7 +44983,7 @@
EOF
-printf "%s\n" "#define COMPILE_DL_JSON 1" >>confdefs.h
+printf '%s\n' "#define COMPILE_DL_JSON 1" >>confdefs.h
fi
fi
@@ -45378,7 +45132,7 @@
php_with_ldap=no
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for LDAP support" >&5
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for LDAP support" >&5
printf %s "checking for LDAP support... " >&6; }
# Check whether --with-ldap was given.
@@ -45416,8 +45170,8 @@
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ext_output" >&5
-printf "%s\n" "$ext_output" >&6; }
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $ext_output" >&5
+printf '%s\n' "$ext_output" >&6; }
@@ -45425,7 +45179,7 @@
php_with_ldap_sasl=no
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether to build with LDAP Cyrus SASL support" >&5
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking whether to build with LDAP Cyrus SASL support" >&5
printf %s "checking whether to build with LDAP Cyrus SASL support... " >&6; }
# Check whether --with-ldap-sasl was given.
@@ -45442,8 +45196,8 @@
ext_output=$PHP_LDAP_SASL
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ext_output" >&5
-printf "%s\n" "$ext_output" >&6; }
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $ext_output" >&5
+printf '%s\n' "$ext_output" >&6; }
@@ -45584,7 +45338,7 @@
EOF
-printf "%s\n" "#define COMPILE_DL_LDAP 1" >>confdefs.h
+printf '%s\n' "#define COMPILE_DL_LDAP 1" >>confdefs.h
fi
fi
@@ -45722,7 +45476,7 @@
# version HP92453-01 B.11.11.23709.GP, which incorrectly rejects
# declarations like 'int a3[[(sizeof (unsigned char)) >= 0]];'.
# This bug is HP SR number 8606223364.
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking size of long" >&5
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking size of long" >&5
printf %s "checking size of long... " >&6; }
if test ${ac_cv_sizeof_long+y}
then :
@@ -45732,40 +45486,33 @@
then :
else case e in #(
- e) if test "$ac_cv_type_long" = yes; then
- { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in '$ac_pwd':" >&5
-printf "%s\n" "$as_me: error: in '$ac_pwd':" >&2;}
-as_fn_error 77 "cannot compute sizeof (long)
-See 'config.log' for more details" "$LINENO" 5; }
- else
- ac_cv_sizeof_long=0
- fi ;;
+ e) ac_cv_sizeof_long=0 ;;
esac
fi
;;
esac
fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sizeof_long" >&5
-printf "%s\n" "$ac_cv_sizeof_long" >&6; }
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sizeof_long" >&5
+printf '%s\n' "$ac_cv_sizeof_long" >&6; }
-printf "%s\n" "#define SIZEOF_LONG $ac_cv_sizeof_long" >>confdefs.h
+printf '%s\n' "#define SIZEOF_LONG $ac_cv_sizeof_long" >>confdefs.h
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if we're at 64-bit platform" >&5
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking if we're at 64-bit platform" >&5
printf %s "checking if we're at 64-bit platform... " >&6; }
if test "$ac_cv_sizeof_long" -eq 4
then :
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
-printf "%s\n" "no" >&6; }
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf '%s\n' "no" >&6; }
PHP_OCI8_IC_LIBDIR_SUFFIX=""
else case e in #(
e)
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-printf "%s\n" "yes" >&6; }
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+printf '%s\n' "yes" >&6; }
PHP_OCI8_IC_LIBDIR_SUFFIX=64
;;
esac
@@ -45802,7 +45549,7 @@
# version HP92453-01 B.11.11.23709.GP, which incorrectly rejects
# declarations like 'int a3[[(sizeof (unsigned char)) >= 0]];'.
# This bug is HP SR number 8606223364.
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking size of long" >&5
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking size of long" >&5
printf %s "checking size of long... " >&6; }
if test ${ac_cv_sizeof_long+y}
then :
@@ -45812,40 +45559,33 @@
then :
else case e in #(
- e) if test "$ac_cv_type_long" = yes; then
- { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in '$ac_pwd':" >&5
-printf "%s\n" "$as_me: error: in '$ac_pwd':" >&2;}
-as_fn_error 77 "cannot compute sizeof (long)
-See 'config.log' for more details" "$LINENO" 5; }
- else
- ac_cv_sizeof_long=0
- fi ;;
+ e) ac_cv_sizeof_long=0 ;;
esac
fi
;;
esac
fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sizeof_long" >&5
-printf "%s\n" "$ac_cv_sizeof_long" >&6; }
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sizeof_long" >&5
+printf '%s\n' "$ac_cv_sizeof_long" >&6; }
-printf "%s\n" "#define SIZEOF_LONG $ac_cv_sizeof_long" >>confdefs.h
+printf '%s\n' "#define SIZEOF_LONG $ac_cv_sizeof_long" >>confdefs.h
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if we're at 64-bit platform" >&5
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking if we're at 64-bit platform" >&5
printf %s "checking if we're at 64-bit platform... " >&6; }
if test "$ac_cv_sizeof_long" -eq 4
then :
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
-printf "%s\n" "no" >&6; }
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf '%s\n' "no" >&6; }
PHP_OCI8_IC_LIBDIR_SUFFIX=""
else case e in #(
e)
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-printf "%s\n" "yes" >&6; }
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+printf '%s\n' "yes" >&6; }
PHP_OCI8_IC_LIBDIR_SUFFIX=64
;;
esac
@@ -46301,7 +46041,7 @@
fi
- printf "%s\n" "#define HAVE_ORALDAP 1" >>confdefs.h
+ printf '%s\n' "#define HAVE_ORALDAP 1" >>confdefs.h
elif test -f $LDAP_LIBDIR/libclntsh.$SHLIB_SUFFIX_NAME.11.1 || test -f $LDAP_LIBDIR/$MACHINE_INCLUDES/libclntsh.$SHLIB_SUFFIX_NAME.11.1; then
@@ -46410,7 +46150,7 @@
fi
- printf "%s\n" "#define HAVE_ORALDAP 1" >>confdefs.h
+ printf '%s\n' "#define HAVE_ORALDAP 1" >>confdefs.h
elif test -f $LDAP_LIBDIR/libclntsh.$SHLIB_SUFFIX_NAME || test -f $LDAP_LIBDIR/$MACHINE_INCLUDES/libclntsh.$SHLIB_SUFFIX_NAME; then
@@ -46519,7 +46259,7 @@
fi
- printf "%s\n" "#define HAVE_ORALDAP 1" >>confdefs.h
+ printf '%s\n' "#define HAVE_ORALDAP 1" >>confdefs.h
else
@@ -46564,7 +46304,7 @@
PHP_VAR_SUBST="$PHP_VAR_SUBST LDAP_SHARED_LIBADD"
-printf "%s\n" "#define HAVE_LDAP 1" >>confdefs.h
+printf '%s\n' "#define HAVE_LDAP 1" >>confdefs.h
_SAVE_CPPFLAGS=$CPPFLAGS
@@ -46572,7 +46312,7 @@
CPPFLAGS="$CPPFLAGS -I$LDAP_INCDIR"
LIBS="$LIBS $LDAP_SHARED_LIBADD"
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for 3 arg ldap_set_rebind_proc" >&5
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for 3 arg ldap_set_rebind_proc" >&5
printf %s "checking for 3 arg ldap_set_rebind_proc... " >&6; }
if test ${php_cv_have_3arg_setrebindproc+y}
then :
@@ -46599,73 +46339,73 @@
rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext ;;
esac
fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $php_cv_have_3arg_setrebindproc" >&5
-printf "%s\n" "$php_cv_have_3arg_setrebindproc" >&6; }
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $php_cv_have_3arg_setrebindproc" >&5
+printf '%s\n' "$php_cv_have_3arg_setrebindproc" >&6; }
if test "x$php_cv_have_3arg_setrebindproc" = xyes
then :
-printf "%s\n" "#define HAVE_3ARG_SETREBINDPROC 1" >>confdefs.h
+printf '%s\n' "#define HAVE_3ARG_SETREBINDPROC 1" >>confdefs.h
fi
ac_fn_c_check_func "$LINENO" "ldap_control_find" "ac_cv_func_ldap_control_find"
if test "x$ac_cv_func_ldap_control_find" = xyes
then :
- printf "%s\n" "#define HAVE_LDAP_CONTROL_FIND 1" >>confdefs.h
+ printf '%s\n' "#define HAVE_LDAP_CONTROL_FIND 1" >>confdefs.h
fi
ac_fn_c_check_func "$LINENO" "ldap_extended_operation" "ac_cv_func_ldap_extended_operation"
if test "x$ac_cv_func_ldap_extended_operation" = xyes
then :
- printf "%s\n" "#define HAVE_LDAP_EXTENDED_OPERATION 1" >>confdefs.h
+ printf '%s\n' "#define HAVE_LDAP_EXTENDED_OPERATION 1" >>confdefs.h
fi
ac_fn_c_check_func "$LINENO" "ldap_extended_operation_s" "ac_cv_func_ldap_extended_operation_s"
if test "x$ac_cv_func_ldap_extended_operation_s" = xyes
then :
- printf "%s\n" "#define HAVE_LDAP_EXTENDED_OPERATION_S 1" >>confdefs.h
+ printf '%s\n' "#define HAVE_LDAP_EXTENDED_OPERATION_S 1" >>confdefs.h
fi
ac_fn_c_check_func "$LINENO" "ldap_parse_extended_result" "ac_cv_func_ldap_parse_extended_result"
if test "x$ac_cv_func_ldap_parse_extended_result" = xyes
then :
- printf "%s\n" "#define HAVE_LDAP_PARSE_EXTENDED_RESULT 1" >>confdefs.h
+ printf '%s\n' "#define HAVE_LDAP_PARSE_EXTENDED_RESULT 1" >>confdefs.h
fi
ac_fn_c_check_func "$LINENO" "ldap_parse_reference" "ac_cv_func_ldap_parse_reference"
if test "x$ac_cv_func_ldap_parse_reference" = xyes
then :
- printf "%s\n" "#define HAVE_LDAP_PARSE_REFERENCE 1" >>confdefs.h
+ printf '%s\n' "#define HAVE_LDAP_PARSE_REFERENCE 1" >>confdefs.h
fi
ac_fn_c_check_func "$LINENO" "ldap_parse_result" "ac_cv_func_ldap_parse_result"
if test "x$ac_cv_func_ldap_parse_result" = xyes
then :
- printf "%s\n" "#define HAVE_LDAP_PARSE_RESULT 1" >>confdefs.h
+ printf '%s\n' "#define HAVE_LDAP_PARSE_RESULT 1" >>confdefs.h
fi
ac_fn_c_check_func "$LINENO" "ldap_passwd" "ac_cv_func_ldap_passwd"
if test "x$ac_cv_func_ldap_passwd" = xyes
then :
- printf "%s\n" "#define HAVE_LDAP_PASSWD 1" >>confdefs.h
+ printf '%s\n' "#define HAVE_LDAP_PASSWD 1" >>confdefs.h
fi
ac_fn_c_check_func "$LINENO" "ldap_refresh_s" "ac_cv_func_ldap_refresh_s"
if test "x$ac_cv_func_ldap_refresh_s" = xyes
then :
- printf "%s\n" "#define HAVE_LDAP_REFRESH_S 1" >>confdefs.h
+ printf '%s\n' "#define HAVE_LDAP_REFRESH_S 1" >>confdefs.h
fi
ac_fn_c_check_func "$LINENO" "ldap_start_tls_s" "ac_cv_func_ldap_start_tls_s"
if test "x$ac_cv_func_ldap_start_tls_s" = xyes
then :
- printf "%s\n" "#define HAVE_LDAP_START_TLS_S 1" >>confdefs.h
+ printf '%s\n' "#define HAVE_LDAP_START_TLS_S 1" >>confdefs.h
fi
ac_fn_c_check_func "$LINENO" "ldap_whoami_s" "ac_cv_func_ldap_whoami_s"
if test "x$ac_cv_func_ldap_whoami_s" = xyes
then :
- printf "%s\n" "#define HAVE_LDAP_WHOAMI_S 1" >>confdefs.h
+ printf '%s\n' "#define HAVE_LDAP_WHOAMI_S 1" >>confdefs.h
fi
@@ -46677,17 +46417,17 @@
e)
pkg_failed=no
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for libsasl2" >&5
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for libsasl2" >&5
printf %s "checking for libsasl2... " >&6; }
if test -n "$SASL_CFLAGS"; then
pkg_cv_SASL_CFLAGS="$SASL_CFLAGS"
elif test -n "$PKG_CONFIG"; then
if test -n "$PKG_CONFIG" && \
- { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libsasl2\""; } >&5
+ { { printf '%s\n' "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libsasl2\""; } >&5
($PKG_CONFIG --exists --print-errors "libsasl2") 2>&5
ac_status=$?
- printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ printf '%s\n' "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
test $ac_status = 0; }; then
pkg_cv_SASL_CFLAGS=`$PKG_CONFIG --cflags "libsasl2" 2>/dev/null`
test "x$?" != "x0" && pkg_failed=yes
@@ -46701,10 +46441,10 @@
pkg_cv_SASL_LIBS="$SASL_LIBS"
elif test -n "$PKG_CONFIG"; then
if test -n "$PKG_CONFIG" && \
- { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libsasl2\""; } >&5
+ { { printf '%s\n' "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libsasl2\""; } >&5
($PKG_CONFIG --exists --print-errors "libsasl2") 2>&5
ac_status=$?
- printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ printf '%s\n' "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
test $ac_status = 0; }; then
pkg_cv_SASL_LIBS=`$PKG_CONFIG --libs "libsasl2" 2>/dev/null`
test "x$?" != "x0" && pkg_failed=yes
@@ -46718,8 +46458,8 @@
if test $pkg_failed = yes; then
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
-printf "%s\n" "no" >&6; }
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf '%s\n' "no" >&6; }
if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then
_pkg_short_errors_supported=yes
@@ -46745,10 +46485,10 @@
and SASL_LIBS to avoid the need to call pkg-config.
See the pkg-config man page for more details." "$LINENO" 5
elif test $pkg_failed = untried; then
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
-printf "%s\n" "no" >&6; }
- { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in '$ac_pwd':" >&5
-printf "%s\n" "$as_me: error: in '$ac_pwd':" >&2;}
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf '%s\n' "no" >&6; }
+ { { printf '%s\n' "$as_me:${as_lineno-$LINENO}: error: in '$ac_pwd':" >&5
+printf '%s\n' "$as_me: error: in '$ac_pwd':" >&2;}
as_fn_error $? "The pkg-config script could not be found or is too old. Make sure it
is in your PATH or set the PKG_CONFIG environment variable to the full
path to pkg-config.
@@ -46762,8 +46502,8 @@
else
SASL_CFLAGS=$pkg_cv_SASL_CFLAGS
SASL_LIBS=$pkg_cv_SASL_LIBS
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-printf "%s\n" "yes" >&6; }
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+printf '%s\n' "yes" >&6; }
fi
@@ -46922,7 +46662,7 @@
done
-printf "%s\n" "#define HAVE_LDAP_SASL 1" >>confdefs.h
+printf '%s\n' "#define HAVE_LDAP_SASL 1" >>confdefs.h
;;
esac
@@ -46971,7 +46711,7 @@
php_enable_mbstring=no
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether to enable multibyte string support" >&5
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking whether to enable multibyte string support" >&5
printf %s "checking whether to enable multibyte string support... " >&6; }
# Check whether --enable-mbstring was given.
if test ${enable_mbstring+y}
@@ -47008,8 +46748,8 @@
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ext_output" >&5
-printf "%s\n" "$ext_output" >&6; }
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $ext_output" >&5
+printf '%s\n' "$ext_output" >&6; }
@@ -47017,7 +46757,7 @@
php_enable_mbregex=yes
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether to enable multibyte regex support (requires oniguruma)" >&5
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking whether to enable multibyte regex support (requires oniguruma)" >&5
printf %s "checking whether to enable multibyte regex support (requires oniguruma)... " >&6; }
# Check whether --enable-mbregex was given.
if test ${enable_mbregex+y}
@@ -47033,15 +46773,15 @@
ext_output=$PHP_MBREGEX
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ext_output" >&5
-printf "%s\n" "$ext_output" >&6; }
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $ext_output" >&5
+printf '%s\n' "$ext_output" >&6; }
if test "$PHP_MBSTRING" != "no"; then
-printf "%s\n" "#define HAVE_MBSTRING 1" >>confdefs.h
+printf '%s\n' "#define HAVE_MBSTRING 1" >>confdefs.h
@@ -47053,17 +46793,17 @@
pkg_failed=no
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for oniguruma" >&5
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for oniguruma" >&5
printf %s "checking for oniguruma... " >&6; }
if test -n "$ONIG_CFLAGS"; then
pkg_cv_ONIG_CFLAGS="$ONIG_CFLAGS"
elif test -n "$PKG_CONFIG"; then
if test -n "$PKG_CONFIG" && \
- { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"oniguruma\""; } >&5
+ { { printf '%s\n' "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"oniguruma\""; } >&5
($PKG_CONFIG --exists --print-errors "oniguruma") 2>&5
ac_status=$?
- printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ printf '%s\n' "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
test $ac_status = 0; }; then
pkg_cv_ONIG_CFLAGS=`$PKG_CONFIG --cflags "oniguruma" 2>/dev/null`
test "x$?" != "x0" && pkg_failed=yes
@@ -47077,10 +46817,10 @@
pkg_cv_ONIG_LIBS="$ONIG_LIBS"
elif test -n "$PKG_CONFIG"; then
if test -n "$PKG_CONFIG" && \
- { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"oniguruma\""; } >&5
+ { { printf '%s\n' "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"oniguruma\""; } >&5
($PKG_CONFIG --exists --print-errors "oniguruma") 2>&5
ac_status=$?
- printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ printf '%s\n' "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
test $ac_status = 0; }; then
pkg_cv_ONIG_LIBS=`$PKG_CONFIG --libs "oniguruma" 2>/dev/null`
test "x$?" != "x0" && pkg_failed=yes
@@ -47094,8 +46834,8 @@
if test $pkg_failed = yes; then
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
-printf "%s\n" "no" >&6; }
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf '%s\n' "no" >&6; }
if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then
_pkg_short_errors_supported=yes
@@ -47121,10 +46861,10 @@
and ONIG_LIBS to avoid the need to call pkg-config.
See the pkg-config man page for more details." "$LINENO" 5
elif test $pkg_failed = untried; then
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
-printf "%s\n" "no" >&6; }
- { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in '$ac_pwd':" >&5
-printf "%s\n" "$as_me: error: in '$ac_pwd':" >&2;}
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf '%s\n' "no" >&6; }
+ { { printf '%s\n' "$as_me:${as_lineno-$LINENO}: error: in '$ac_pwd':" >&5
+printf '%s\n' "$as_me: error: in '$ac_pwd':" >&2;}
as_fn_error $? "The pkg-config script could not be found or is too old. Make sure it
is in your PATH or set the PKG_CONFIG environment variable to the full
path to pkg-config.
@@ -47138,8 +46878,8 @@
else
ONIG_CFLAGS=$pkg_cv_ONIG_CFLAGS
ONIG_LIBS=$pkg_cv_ONIG_LIBS
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-printf "%s\n" "yes" >&6; }
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+printf '%s\n' "yes" >&6; }
fi
@@ -47298,7 +47038,7 @@
done
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if oniguruma has an invalid entry for KOI8 encoding" >&5
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking if oniguruma has an invalid entry for KOI8 encoding" >&5
printf %s "checking if oniguruma has an invalid entry for KOI8 encoding... " >&6; }
if test ${php_cv_lib_onig_invalid_koi8+y}
then :
@@ -47335,12 +47075,12 @@
CFLAGS=$save_old_CFLAGS ;;
esac
fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $php_cv_lib_onig_invalid_koi8" >&5
-printf "%s\n" "$php_cv_lib_onig_invalid_koi8" >&6; }
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $php_cv_lib_onig_invalid_koi8" >&5
+printf '%s\n' "$php_cv_lib_onig_invalid_koi8" >&6; }
if test "x$php_cv_lib_onig_invalid_koi8" = xyes
then :
-printf "%s\n" "#define PHP_ONIG_BAD_KOI8_ENTRY 1" >>confdefs.h
+printf '%s\n' "#define PHP_ONIG_BAD_KOI8_ENTRY 1" >>confdefs.h
fi
@@ -47352,7 +47092,7 @@
-printf "%s\n" "#define HAVE_MBREGEX 1" >>confdefs.h
+printf '%s\n' "#define HAVE_MBREGEX 1" >>confdefs.h
@@ -47593,7 +47333,7 @@
EOF
-printf "%s\n" "#define COMPILE_DL_MBSTRING 1" >>confdefs.h
+printf '%s\n' "#define COMPILE_DL_MBSTRING 1" >>confdefs.h
fi
fi
@@ -47849,7 +47589,7 @@
php_with_mysqli=no
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for MySQLi support" >&5
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for MySQLi support" >&5
printf %s "checking for MySQLi support... " >&6; }
# Check whether --with-mysqli was given.
@@ -47887,8 +47627,8 @@
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ext_output" >&5
-printf "%s\n" "$ext_output" >&6; }
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $ext_output" >&5
+printf '%s\n' "$ext_output" >&6; }
@@ -47896,7 +47636,7 @@
php_with_mysql_sock=no
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for specified location of the MySQL Unix socket" >&5
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for specified location of the MySQL Unix socket" >&5
printf %s "checking for specified location of the MySQL Unix socket... " >&6; }
# Check whether --with-mysql-sock was given.
@@ -47913,8 +47653,8 @@
ext_output=$PHP_MYSQL_SOCK
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ext_output" >&5
-printf "%s\n" "$ext_output" >&6; }
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $ext_output" >&5
+printf '%s\n' "$ext_output" >&6; }
@@ -47928,7 +47668,7 @@
'--with-mysqli=$PHP_MYSQLI' with '--with-mysqli'." "$LINENO" 5 ;;
esac
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for MySQL Unix socket location" >&5
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for MySQL Unix socket location" >&5
printf %s "checking for MySQL Unix socket location... " >&6; }
case $PHP_MYSQL_SOCK in #(
yes) :
@@ -47952,28 +47692,28 @@
if ${MYSQL_SOCK:+false} :
then :
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
-printf "%s\n" "no" >&6; }
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf '%s\n' "no" >&6; }
else case e in #(
e)
-printf "%s\n" "#define PHP_MYSQL_UNIX_SOCK_ADDR \"$MYSQL_SOCK\"" >>confdefs.h
+printf '%s\n' "#define PHP_MYSQL_UNIX_SOCK_ADDR \"$MYSQL_SOCK\"" >>confdefs.h
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $MYSQL_SOCK" >&5
-printf "%s\n" "$MYSQL_SOCK" >&6; }
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $MYSQL_SOCK" >&5
+printf '%s\n' "$MYSQL_SOCK" >&6; }
;;
esac
fi
;; #(
no) :
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
-printf "%s\n" "no" >&6; } ;; #(
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf '%s\n' "no" >&6; } ;; #(
*) :
- printf "%s\n" "#define PHP_MYSQL_UNIX_SOCK_ADDR \"$PHP_MYSQL_SOCK\"" >>confdefs.h
+ printf '%s\n' "#define PHP_MYSQL_UNIX_SOCK_ADDR \"$PHP_MYSQL_SOCK\"" >>confdefs.h
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $PHP_MYSQL_SOCK" >&5
-printf "%s\n" "$PHP_MYSQL_SOCK" >&6; }
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $PHP_MYSQL_SOCK" >&5
+printf '%s\n' "$PHP_MYSQL_SOCK" >&6; }
;;
esac
@@ -48112,7 +47852,7 @@
EOF
-printf "%s\n" "#define COMPILE_DL_MYSQLI 1" >>confdefs.h
+printf '%s\n' "#define COMPILE_DL_MYSQLI 1" >>confdefs.h
fi
fi
@@ -48350,7 +48090,7 @@
php_with_adabas=no
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for Adabas support" >&5
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for Adabas support" >&5
printf %s "checking for Adabas support... " >&6; }
# Check whether --with-adabas was given.
@@ -48388,8 +48128,8 @@
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ext_output" >&5
-printf "%s\n" "$ext_output" >&6; }
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $ext_output" >&5
+printf '%s\n' "$ext_output" >&6; }
@@ -48559,7 +48299,7 @@
as_fn_error $? "ODBC header file '$ODBC_INCDIR/sqlext.h' not found!" "$LINENO" 5
fi
-printf "%s\n" "#define HAVE_ADABAS 1" >>confdefs.h
+printf '%s\n' "#define HAVE_ADABAS 1" >>confdefs.h
;;
esac
@@ -48573,7 +48313,7 @@
php_with_sapdb=no
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for SAP DB support" >&5
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for SAP DB support" >&5
printf %s "checking for SAP DB support... " >&6; }
# Check whether --with-sapdb was given.
@@ -48611,8 +48351,8 @@
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ext_output" >&5
-printf "%s\n" "$ext_output" >&6; }
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $ext_output" >&5
+printf '%s\n' "$ext_output" >&6; }
@@ -48709,7 +48449,7 @@
ODBC_TYPE=sapdb
-printf "%s\n" "#define HAVE_SAPDB 1" >>confdefs.h
+printf '%s\n' "#define HAVE_SAPDB 1" >>confdefs.h
;;
esac
@@ -48723,7 +48463,7 @@
php_with_solid=no
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for Solid support" >&5
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for Solid support" >&5
printf %s "checking for Solid support... " >&6; }
# Check whether --with-solid was given.
@@ -48761,8 +48501,8 @@
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ext_output" >&5
-printf "%s\n" "$ext_output" >&6; }
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $ext_output" >&5
+printf '%s\n' "$ext_output" >&6; }
@@ -48782,19 +48522,19 @@
ODBC_TYPE=solid
if test -f $ODBC_LIBDIR/soc*35.a; then
-printf "%s\n" "#define HAVE_SOLID_35 1" >>confdefs.h
+printf '%s\n' "#define HAVE_SOLID_35 1" >>confdefs.h
elif test -f $ODBC_LIBDIR/scl*30.a; then
-printf "%s\n" "#define HAVE_SOLID_30 1" >>confdefs.h
+printf '%s\n' "#define HAVE_SOLID_30 1" >>confdefs.h
elif test -f $ODBC_LIBDIR/scl*23.a; then
-printf "%s\n" "#define HAVE_SOLID 1" >>confdefs.h
+printf '%s\n' "#define HAVE_SOLID 1" >>confdefs.h
fi
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking Solid library file" >&5
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking Solid library file" >&5
printf %s "checking Solid library file... " >&6; }
ac_solid_uname_r=$(uname -r 2>/dev/null)
ac_solid_uname_s=$(uname -s 2>/dev/null)
@@ -48808,7 +48548,7 @@
ac_solid_os=lux
fi
-printf "%s\n" "#define SS_LINUX 1" >>confdefs.h
+printf '%s\n' "#define SS_LINUX 1" >>confdefs.h
;;
SunOS)
@@ -48820,7 +48560,7 @@
ac_solid_os=fbx
fi
-printf "%s\n" "#define SS_FBX 1" >>confdefs.h
+printf '%s\n' "#define SS_FBX 1" >>confdefs.h
;;
esac
@@ -48850,8 +48590,8 @@
ODBC_LIBS=-l${ac_solid_prefix}${ac_solid_os}${ac_solid_version}
fi
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $(echo $ODBC_LIBS | $SED -e 's!.*/!!')" >&5
-printf "%s\n" "$(echo $ODBC_LIBS | $SED -e 's!.*/!!')" >&6; }
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $(echo $ODBC_LIBS | $SED -e 's!.*/!!')" >&5
+printf '%s\n' "$(echo $ODBC_LIBS | $SED -e 's!.*/!!')" >&6; }
;;
esac
@@ -48865,7 +48605,7 @@
php_with_ibm_db2=no
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for IBM DB2 support" >&5
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for IBM DB2 support" >&5
printf %s "checking for IBM DB2 support... " >&6; }
# Check whether --with-ibm-db2 was given.
@@ -48903,8 +48643,8 @@
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ext_output" >&5
-printf "%s\n" "$ext_output" >&6; }
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $ext_output" >&5
+printf '%s\n' "$ext_output" >&6; }
@@ -48944,11 +48684,11 @@
if test "x$ac_cv_func_SQLExecute" = xyes
then :
-printf "%s\n" "#define HAVE_IBMDB2 1" >>confdefs.h
+printf '%s\n' "#define HAVE_IBMDB2 1" >>confdefs.h
else case e in #(
- e) { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in '$ac_pwd':" >&5
-printf "%s\n" "$as_me: error: in '$ac_pwd':" >&2;}
+ e) { { printf '%s\n' "$as_me:${as_lineno-$LINENO}: error: in '$ac_pwd':" >&5
+printf '%s\n' "$as_me: error: in '$ac_pwd':" >&2;}
as_fn_error $? "
ODBC build test failed. You need to source your DB2 environment before running
PHP configure:
@@ -48971,7 +48711,7 @@
php_with_empress=no
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for Empress support" >&5
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for Empress support" >&5
printf %s "checking for Empress support... " >&6; }
# Check whether --with-empress was given.
@@ -49009,8 +48749,8 @@
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ext_output" >&5
-printf "%s\n" "$ext_output" >&6; }
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $ext_output" >&5
+printf '%s\n' "$ext_output" >&6; }
@@ -49037,17 +48777,17 @@
ODBC_LFLAGS=-L$ODBC_LIBDIR
ODBC_TYPE=empress
-printf "%s\n" "#define HAVE_EMPRESS 1" >>confdefs.h
+printf '%s\n' "#define HAVE_EMPRESS 1" >>confdefs.h
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking Empress library file" >&5
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking Empress library file" >&5
printf %s "checking Empress library file... " >&6; }
ODBC_LIBS=$(echo $ODBC_LIBDIR/libempodbccl.so | cut -d' ' -f1)
if test ! -f $ODBC_LIBS; then
ODBC_LIBS=$(echo $ODBC_LIBDIR/libempodbccl.so | cut -d' ' -f1)
fi
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $(echo $ODBC_LIBS | $SED -e 's!.*/!!')" >&5
-printf "%s\n" "$(echo $ODBC_LIBS | $SED -e 's!.*/!!')" >&6; }
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $(echo $ODBC_LIBS | $SED -e 's!.*/!!')" >&5
+printf '%s\n' "$(echo $ODBC_LIBS | $SED -e 's!.*/!!')" >&6; }
;;
esac
@@ -49061,7 +48801,7 @@
php_with_empress_bcs=no
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for Empress local access support" >&5
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for Empress local access support" >&5
printf %s "checking for Empress local access support... " >&6; }
# Check whether --with-empress-bcs was given.
@@ -49099,8 +48839,8 @@
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ext_output" >&5
-printf "%s\n" "$ext_output" >&6; }
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $ext_output" >&5
+printf '%s\n' "$ext_output" >&6; }
@@ -49143,17 +48883,17 @@
ODBC_LIBS="-lempphpbcs -lms -lmscfg -lbasic -lbasic_os -lnlscstab -lnlsmsgtab -lm -ldl -lcrypt"
ODBC_TYPE=empress-bcs
-printf "%s\n" "#define HAVE_EMPRESS 1" >>confdefs.h
+printf '%s\n' "#define HAVE_EMPRESS 1" >>confdefs.h
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking Empress local access library file" >&5
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking Empress local access library file" >&5
printf %s "checking Empress local access library file... " >&6; }
ODBCBCS_LIBS=$(echo $ODBC_LIBDIR/libempodbcbcs.a | cut -d' ' -f1)
if test ! -f $ODBCBCS_LIBS; then
ODBCBCS_LIBS=$(echo $ODBC_LIBDIR/libempodbcbcs.a | cut -d' ' -f1)
fi
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $(echo $ODBCBCS_LIBS | $SED -e 's!.*/!!')" >&5
-printf "%s\n" "$(echo $ODBCBCS_LIBS | $SED -e 's!.*/!!')" >&6; }
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $(echo $ODBCBCS_LIBS | $SED -e 's!.*/!!')" >&5
+printf '%s\n' "$(echo $ODBCBCS_LIBS | $SED -e 's!.*/!!')" >&6; }
;;
esac
@@ -49167,7 +48907,7 @@
php_with_custom_odbc=no
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for a custom ODBC support" >&5
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for a custom ODBC support" >&5
printf %s "checking for a custom ODBC support... " >&6; }
# Check whether --with-custom-odbc was given.
@@ -49205,8 +48945,8 @@
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ext_output" >&5
-printf "%s\n" "$ext_output" >&6; }
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $ext_output" >&5
+printf '%s\n' "$ext_output" >&6; }
@@ -49227,7 +48967,7 @@
ODBC_LIBS=$CUSTOM_ODBC_LIBS
ODBC_TYPE=custom-odbc
-printf "%s\n" "#define HAVE_CODBC 1" >>confdefs.h
+printf '%s\n' "#define HAVE_CODBC 1" >>confdefs.h
;;
esac
@@ -49241,7 +48981,7 @@
php_with_iodbc=no
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether to build with iODBC support" >&5
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking whether to build with iODBC support" >&5
printf %s "checking whether to build with iODBC support... " >&6; }
# Check whether --with-iodbc was given.
@@ -49279,8 +49019,8 @@
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ext_output" >&5
-printf "%s\n" "$ext_output" >&6; }
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $ext_output" >&5
+printf '%s\n' "$ext_output" >&6; }
@@ -49292,17 +49032,17 @@
e)
pkg_failed=no
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for libiodbc" >&5
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for libiodbc" >&5
printf %s "checking for libiodbc... " >&6; }
if test -n "$ODBC_CFLAGS"; then
pkg_cv_ODBC_CFLAGS="$ODBC_CFLAGS"
elif test -n "$PKG_CONFIG"; then
if test -n "$PKG_CONFIG" && \
- { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libiodbc\""; } >&5
+ { { printf '%s\n' "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libiodbc\""; } >&5
($PKG_CONFIG --exists --print-errors "libiodbc") 2>&5
ac_status=$?
- printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ printf '%s\n' "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
test $ac_status = 0; }; then
pkg_cv_ODBC_CFLAGS=`$PKG_CONFIG --cflags "libiodbc" 2>/dev/null`
test "x$?" != "x0" && pkg_failed=yes
@@ -49316,10 +49056,10 @@
pkg_cv_ODBC_LIBS="$ODBC_LIBS"
elif test -n "$PKG_CONFIG"; then
if test -n "$PKG_CONFIG" && \
- { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libiodbc\""; } >&5
+ { { printf '%s\n' "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libiodbc\""; } >&5
($PKG_CONFIG --exists --print-errors "libiodbc") 2>&5
ac_status=$?
- printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ printf '%s\n' "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
test $ac_status = 0; }; then
pkg_cv_ODBC_LIBS=`$PKG_CONFIG --libs "libiodbc" 2>/dev/null`
test "x$?" != "x0" && pkg_failed=yes
@@ -49333,8 +49073,8 @@
if test $pkg_failed = yes; then
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
-printf "%s\n" "no" >&6; }
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf '%s\n' "no" >&6; }
if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then
_pkg_short_errors_supported=yes
@@ -49360,10 +49100,10 @@
and ODBC_LIBS to avoid the need to call pkg-config.
See the pkg-config man page for more details." "$LINENO" 5
elif test $pkg_failed = untried; then
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
-printf "%s\n" "no" >&6; }
- { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in '$ac_pwd':" >&5
-printf "%s\n" "$as_me: error: in '$ac_pwd':" >&2;}
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf '%s\n' "no" >&6; }
+ { { printf '%s\n' "$as_me:${as_lineno-$LINENO}: error: in '$ac_pwd':" >&5
+printf '%s\n' "$as_me: error: in '$ac_pwd':" >&2;}
as_fn_error $? "The pkg-config script could not be found or is too old. Make sure it
is in your PATH or set the PKG_CONFIG environment variable to the full
path to pkg-config.
@@ -49377,8 +49117,8 @@
else
ODBC_CFLAGS=$pkg_cv_ODBC_CFLAGS
ODBC_LIBS=$pkg_cv_ODBC_LIBS
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-printf "%s\n" "yes" >&6; }
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+printf '%s\n' "yes" >&6; }
fi
@@ -49426,7 +49166,7 @@
ODBC_TYPE=iodbc
-printf "%s\n" "#define HAVE_IODBC 1" >>confdefs.h
+printf '%s\n' "#define HAVE_IODBC 1" >>confdefs.h
;;
esac
@@ -49440,7 +49180,7 @@
php_with_esoob=no
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for Easysoft ODBC-ODBC Bridge support" >&5
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for Easysoft ODBC-ODBC Bridge support" >&5
printf %s "checking for Easysoft ODBC-ODBC Bridge support... " >&6; }
# Check whether --with-esoob was given.
@@ -49478,8 +49218,8 @@
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ext_output" >&5
-printf "%s\n" "$ext_output" >&6; }
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $ext_output" >&5
+printf '%s\n' "$ext_output" >&6; }
@@ -49500,7 +49240,7 @@
ODBC_LIBS=-lesoobclient
ODBC_TYPE=esoob
-printf "%s\n" "#define HAVE_ESOOB 1" >>confdefs.h
+printf '%s\n' "#define HAVE_ESOOB 1" >>confdefs.h
;;
esac
@@ -49514,7 +49254,7 @@
php_with_unixodbc=no
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether to build with unixODBC support" >&5
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking whether to build with unixODBC support" >&5
printf %s "checking whether to build with unixODBC support... " >&6; }
# Check whether --with-unixODBC was given.
@@ -49552,8 +49292,8 @@
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ext_output" >&5
-printf "%s\n" "$ext_output" >&6; }
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $ext_output" >&5
+printf '%s\n' "$ext_output" >&6; }
@@ -49568,17 +49308,17 @@
pkg_failed=no
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for odbc" >&5
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for odbc" >&5
printf %s "checking for odbc... " >&6; }
if test -n "$ODBC_CFLAGS"; then
pkg_cv_ODBC_CFLAGS="$ODBC_CFLAGS"
elif test -n "$PKG_CONFIG"; then
if test -n "$PKG_CONFIG" && \
- { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"odbc\""; } >&5
+ { { printf '%s\n' "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"odbc\""; } >&5
($PKG_CONFIG --exists --print-errors "odbc") 2>&5
ac_status=$?
- printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ printf '%s\n' "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
test $ac_status = 0; }; then
pkg_cv_ODBC_CFLAGS=`$PKG_CONFIG --cflags "odbc" 2>/dev/null`
test "x$?" != "x0" && pkg_failed=yes
@@ -49592,10 +49332,10 @@
pkg_cv_ODBC_LIBS="$ODBC_LIBS"
elif test -n "$PKG_CONFIG"; then
if test -n "$PKG_CONFIG" && \
- { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"odbc\""; } >&5
+ { { printf '%s\n' "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"odbc\""; } >&5
($PKG_CONFIG --exists --print-errors "odbc") 2>&5
ac_status=$?
- printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ printf '%s\n' "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
test $ac_status = 0; }; then
pkg_cv_ODBC_LIBS=`$PKG_CONFIG --libs "odbc" 2>/dev/null`
test "x$?" != "x0" && pkg_failed=yes
@@ -49609,8 +49349,8 @@
if test $pkg_failed = yes; then
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
-printf "%s\n" "no" >&6; }
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf '%s\n' "no" >&6; }
if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then
_pkg_short_errors_supported=yes
@@ -49636,10 +49376,10 @@
and ODBC_LIBS to avoid the need to call pkg-config.
See the pkg-config man page for more details." "$LINENO" 5
elif test $pkg_failed = untried; then
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
-printf "%s\n" "no" >&6; }
- { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in '$ac_pwd':" >&5
-printf "%s\n" "$as_me: error: in '$ac_pwd':" >&2;}
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf '%s\n' "no" >&6; }
+ { { printf '%s\n' "$as_me:${as_lineno-$LINENO}: error: in '$ac_pwd':" >&5
+printf '%s\n' "$as_me: error: in '$ac_pwd':" >&2;}
as_fn_error $? "The pkg-config script could not be found or is too old. Make sure it
is in your PATH or set the PKG_CONFIG environment variable to the full
path to pkg-config.
@@ -49653,8 +49393,8 @@
else
ODBC_CFLAGS=$pkg_cv_ODBC_CFLAGS
ODBC_LIBS=$pkg_cv_ODBC_LIBS
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-printf "%s\n" "yes" >&6; }
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+printf '%s\n' "yes" >&6; }
fi
@@ -49712,14 +49452,14 @@
then :
as_fn_error $? "ODBC header file '$ODBC_INCDIR/sqlext.h' not found!" "$LINENO" 5
fi
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: Using unixODBC in $PHP_UNIXODBC" >&5
-printf "%s\n" "$as_me: Using unixODBC in $PHP_UNIXODBC" >&6;}
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: Using unixODBC in $PHP_UNIXODBC" >&5
+printf '%s\n' "$as_me: Using unixODBC in $PHP_UNIXODBC" >&6;}
;;
esac
fi
ODBC_TYPE=unixODBC
-printf "%s\n" "#define HAVE_UNIXODBC 1" >>confdefs.h
+printf '%s\n' "#define HAVE_UNIXODBC 1" >>confdefs.h
;;
esac
@@ -49733,7 +49473,7 @@
php_with_dbmaker=no
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for DBMaker support" >&5
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for DBMaker support" >&5
printf %s "checking for DBMaker support... " >&6; }
# Check whether --with-dbmaker was given.
@@ -49771,8 +49511,8 @@
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ext_output" >&5
-printf "%s\n" "$ext_output" >&6; }
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $ext_output" >&5
+printf '%s\n' "$ext_output" >&6; }
@@ -49814,7 +49554,7 @@
ODBC_TYPE=dbmaker
-printf "%s\n" "#define HAVE_DBMAKER 1" >>confdefs.h
+printf '%s\n' "#define HAVE_DBMAKER 1" >>confdefs.h
if test "x$ext_shared" = xyes
@@ -49921,14 +49661,14 @@
if test "x$PHP_ODBCVER" = xno
then :
- printf "%s\n" "#define ODBCVER 0x0350" >>confdefs.h
+ printf '%s\n' "#define ODBCVER 0x0350" >>confdefs.h
else case e in #(
e) if test "x$PHP_ODBCVER" = x0
then :
else case e in #(
- e) printf "%s\n" "#define ODBCVER $PHP_ODBCVER" >>confdefs.h
+ e) printf '%s\n' "#define ODBCVER $PHP_ODBCVER" >>confdefs.h
;;
esac
fi ;;
@@ -50058,7 +49798,7 @@
else case e in #(
e)
-printf "%s\n" "#define HAVE_SQLDATASOURCES 1" >>confdefs.h
+printf '%s\n' "#define HAVE_SQLDATASOURCES 1" >>confdefs.h
;;
esac
fi
@@ -50067,7 +49807,7 @@
fi
-printf "%s\n" "#define HAVE_UODBC 1" >>confdefs.h
+printf '%s\n' "#define HAVE_UODBC 1" >>confdefs.h
PHP_VAR_SUBST="$PHP_VAR_SUBST ODBC_SHARED_LIBADD"
@@ -50212,7 +49952,7 @@
EOF
-printf "%s\n" "#define COMPILE_DL_ODBC 1" >>confdefs.h
+printf '%s\n' "#define COMPILE_DL_ODBC 1" >>confdefs.h
fi
fi
@@ -50331,10 +50071,10 @@
fi
else
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for any ODBC driver support" >&5
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for any ODBC driver support" >&5
printf %s "checking for any ODBC driver support... " >&6; }
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
-printf "%s\n" "no" >&6; }
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf '%s\n' "no" >&6; }
fi
@@ -50343,7 +50083,7 @@
php_enable_opcache=yes
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether to enable Zend OPcache support" >&5
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking whether to enable Zend OPcache support" >&5
printf %s "checking whether to enable Zend OPcache support... " >&6; }
# Check whether --enable-opcache was given.
if test ${enable_opcache+y}
@@ -50380,8 +50120,8 @@
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ext_output" >&5
-printf "%s\n" "$ext_output" >&6; }
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $ext_output" >&5
+printf '%s\n' "$ext_output" >&6; }
@@ -50389,7 +50129,7 @@
php_enable_huge_code_pages=yes
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether to enable copying PHP CODE pages into HUGE PAGES" >&5
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking whether to enable copying PHP CODE pages into HUGE PAGES" >&5
printf %s "checking whether to enable copying PHP CODE pages into HUGE PAGES... " >&6; }
# Check whether --enable-huge-code-pages was given.
if test ${enable_huge_code_pages+y}
@@ -50405,8 +50145,8 @@
ext_output=$PHP_HUGE_CODE_PAGES
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ext_output" >&5
-printf "%s\n" "$ext_output" >&6; }
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $ext_output" >&5
+printf '%s\n' "$ext_output" >&6; }
@@ -50414,7 +50154,7 @@
php_enable_opcache_jit=yes
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether to enable JIT" >&5
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking whether to enable JIT" >&5
printf %s "checking whether to enable JIT... " >&6; }
# Check whether --enable-opcache-jit was given.
if test ${enable_opcache_jit+y}
@@ -50430,8 +50170,8 @@
ext_output=$PHP_OPCACHE_JIT
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ext_output" >&5
-printf "%s\n" "$ext_output" >&6; }
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $ext_output" >&5
+printf '%s\n' "$ext_output" >&6; }
@@ -50439,7 +50179,7 @@
php_with_capstone=no
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether to support opcache JIT disassembly through Capstone" >&5
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking whether to support opcache JIT disassembly through Capstone" >&5
printf %s "checking whether to support opcache JIT disassembly through Capstone... " >&6; }
# Check whether --with-capstone was given.
@@ -50456,8 +50196,8 @@
ext_output=$PHP_CAPSTONE
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ext_output" >&5
-printf "%s\n" "$ext_output" >&6; }
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $ext_output" >&5
+printf '%s\n' "$ext_output" >&6; }
@@ -50468,7 +50208,7 @@
if test "x$PHP_HUGE_CODE_PAGES" = xyes
then :
-printf "%s\n" "#define HAVE_HUGE_CODE_PAGES 1" >>confdefs.h
+printf '%s\n' "#define HAVE_HUGE_CODE_PAGES 1" >>confdefs.h
fi
@@ -50480,15 +50220,15 @@
;; #(
*) :
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: JIT not supported by host architecture" >&5
-printf "%s\n" "$as_me: WARNING: JIT not supported by host architecture" >&2;}
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: WARNING: JIT not supported by host architecture" >&5
+printf '%s\n' "$as_me: WARNING: JIT not supported by host architecture" >&2;}
PHP_OPCACHE_JIT=no
;;
esac
if test "$host_vendor" = "apple" && test "$host_cpu" = "aarch64" && test "$PHP_THREAD_SAFETY" = "yes"; then
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: JIT not supported on Apple Silicon with ZTS" >&5
-printf "%s\n" "$as_me: WARNING: JIT not supported on Apple Silicon with ZTS" >&2;}
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: WARNING: JIT not supported on Apple Silicon with ZTS" >&5
+printf '%s\n' "$as_me: WARNING: JIT not supported on Apple Silicon with ZTS" >&2;}
PHP_OPCACHE_JIT=no
fi
@@ -50498,7 +50238,7 @@
then :
-printf "%s\n" "#define HAVE_JIT 1" >>confdefs.h
+printf '%s\n' "#define HAVE_JIT 1" >>confdefs.h
ZEND_JIT_SRC=" jit/ir/ir_cfg.c jit/ir/ir_check.c jit/ir/ir_dump.c jit/ir/ir_emit.c jit/ir/ir_gcm.c jit/ir/ir_gdb.c jit/ir/ir_patch.c jit/ir/ir_perf.c jit/ir/ir_ra.c jit/ir/ir_save.c jit/ir/ir_sccp.c jit/ir/ir_strtab.c jit/ir/ir.c jit/zend_jit_vm_helpers.c jit/zend_jit.c "
@@ -50533,17 +50273,17 @@
then :
pkg_failed=no
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for capstone >= 3.0.0" >&5
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for capstone >= 3.0.0" >&5
printf %s "checking for capstone >= 3.0.0... " >&6; }
if test -n "$CAPSTONE_CFLAGS"; then
pkg_cv_CAPSTONE_CFLAGS="$CAPSTONE_CFLAGS"
elif test -n "$PKG_CONFIG"; then
if test -n "$PKG_CONFIG" && \
- { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"capstone >= 3.0.0\""; } >&5
+ { { printf '%s\n' "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"capstone >= 3.0.0\""; } >&5
($PKG_CONFIG --exists --print-errors "capstone >= 3.0.0") 2>&5
ac_status=$?
- printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ printf '%s\n' "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
test $ac_status = 0; }; then
pkg_cv_CAPSTONE_CFLAGS=`$PKG_CONFIG --cflags "capstone >= 3.0.0" 2>/dev/null`
test "x$?" != "x0" && pkg_failed=yes
@@ -50557,10 +50297,10 @@
pkg_cv_CAPSTONE_LIBS="$CAPSTONE_LIBS"
elif test -n "$PKG_CONFIG"; then
if test -n "$PKG_CONFIG" && \
- { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"capstone >= 3.0.0\""; } >&5
+ { { printf '%s\n' "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"capstone >= 3.0.0\""; } >&5
($PKG_CONFIG --exists --print-errors "capstone >= 3.0.0") 2>&5
ac_status=$?
- printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ printf '%s\n' "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
test $ac_status = 0; }; then
pkg_cv_CAPSTONE_LIBS=`$PKG_CONFIG --libs "capstone >= 3.0.0" 2>/dev/null`
test "x$?" != "x0" && pkg_failed=yes
@@ -50574,8 +50314,8 @@
if test $pkg_failed = yes; then
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
-printf "%s\n" "no" >&6; }
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf '%s\n' "no" >&6; }
if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then
_pkg_short_errors_supported=yes
@@ -50601,10 +50341,10 @@
and CAPSTONE_LIBS to avoid the need to call pkg-config.
See the pkg-config man page for more details." "$LINENO" 5
elif test $pkg_failed = untried; then
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
-printf "%s\n" "no" >&6; }
- { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in '$ac_pwd':" >&5
-printf "%s\n" "$as_me: error: in '$ac_pwd':" >&2;}
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf '%s\n' "no" >&6; }
+ { { printf '%s\n' "$as_me:${as_lineno-$LINENO}: error: in '$ac_pwd':" >&5
+printf '%s\n' "$as_me: error: in '$ac_pwd':" >&2;}
as_fn_error $? "The pkg-config script could not be found or is too old. Make sure it
is in your PATH or set the PKG_CONFIG environment variable to the full
path to pkg-config.
@@ -50618,11 +50358,11 @@
else
CAPSTONE_CFLAGS=$pkg_cv_CAPSTONE_CFLAGS
CAPSTONE_LIBS=$pkg_cv_CAPSTONE_LIBS
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-printf "%s\n" "yes" >&6; }
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+printf '%s\n' "yes" >&6; }
-printf "%s\n" "#define HAVE_CAPSTONE 1" >>confdefs.h
+printf '%s\n' "#define HAVE_CAPSTONE 1" >>confdefs.h
for ac_i in $CAPSTONE_LIBS; do
@@ -50805,18 +50545,18 @@
ac_fn_c_check_func "$LINENO" "mprotect" "ac_cv_func_mprotect"
if test "x$ac_cv_func_mprotect" = xyes
then :
- printf "%s\n" "#define HAVE_MPROTECT 1" >>confdefs.h
+ printf '%s\n' "#define HAVE_MPROTECT 1" >>confdefs.h
fi
ac_fn_c_check_func "$LINENO" "shm_create_largepage" "ac_cv_func_shm_create_largepage"
if test "x$ac_cv_func_shm_create_largepage" = xyes
then :
- printf "%s\n" "#define HAVE_SHM_CREATE_LARGEPAGE 1" >>confdefs.h
+ printf '%s\n' "#define HAVE_SHM_CREATE_LARGEPAGE 1" >>confdefs.h
fi
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for sysvipc shared memory support" >&5
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for sysvipc shared memory support" >&5
printf %s "checking for sysvipc shared memory support... " >&6; }
if test ${php_cv_shm_ipc+y}
then :
@@ -50908,16 +50648,16 @@
;;
esac
fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $php_cv_shm_ipc" >&5
-printf "%s\n" "$php_cv_shm_ipc" >&6; }
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $php_cv_shm_ipc" >&5
+printf '%s\n' "$php_cv_shm_ipc" >&6; }
if test "x$php_cv_shm_ipc" = xyes
then :
-printf "%s\n" "#define HAVE_SHM_IPC 1" >>confdefs.h
+printf '%s\n' "#define HAVE_SHM_IPC 1" >>confdefs.h
fi
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for mmap() using MAP_ANON shared memory support" >&5
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for mmap() using MAP_ANON shared memory support" >&5
printf %s "checking for mmap() using MAP_ANON shared memory support... " >&6; }
if test ${php_cv_shm_mmap_anon+y}
then :
@@ -50996,18 +50736,18 @@
;;
esac
fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $php_cv_shm_mmap_anon" >&5
-printf "%s\n" "$php_cv_shm_mmap_anon" >&6; }
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $php_cv_shm_mmap_anon" >&5
+printf '%s\n' "$php_cv_shm_mmap_anon" >&6; }
if test "x$php_cv_shm_mmap_anon" = xyes
then :
-printf "%s\n" "#define HAVE_SHM_MMAP_ANON 1" >>confdefs.h
+printf '%s\n' "#define HAVE_SHM_MMAP_ANON 1" >>confdefs.h
fi
LIBS_save=$LIBS
LIBS=
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for library containing shm_open" >&5
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for library containing shm_open" >&5
printf %s "checking for library containing shm_open... " >&6; }
if test ${ac_cv_search_shm_open+y}
then :
@@ -51065,13 +50805,13 @@
LIBS=$ac_func_search_save_LIBS ;;
esac
fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_shm_open" >&5
-printf "%s\n" "$ac_cv_search_shm_open" >&6; }
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_shm_open" >&5
+printf '%s\n' "$ac_cv_search_shm_open" >&6; }
ac_res=$ac_cv_search_shm_open
if test "$ac_res" != no
then :
test "$ac_res" = "none required" || LIBS="$ac_res $LIBS"
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for mmap() using shm_open() shared memory support" >&5
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for mmap() using shm_open() shared memory support" >&5
printf %s "checking for mmap() using shm_open() shared memory support... " >&6; }
if test ${php_cv_shm_mmap_posix+y}
then :
@@ -51162,8 +50902,8 @@
;;
esac
fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $php_cv_shm_mmap_posix" >&5
-printf "%s\n" "$php_cv_shm_mmap_posix" >&6; }
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $php_cv_shm_mmap_posix" >&5
+printf '%s\n' "$php_cv_shm_mmap_posix" >&6; }
fi
@@ -51173,7 +50913,7 @@
then :
-printf "%s\n" "#define HAVE_SHM_MMAP_POSIX 1" >>confdefs.h
+printf '%s\n' "#define HAVE_SHM_MMAP_POSIX 1" >>confdefs.h
case $ac_cv_search_shm_open in #(
"none required"|no) :
@@ -51430,7 +51170,7 @@
EOF
-printf "%s\n" "#define COMPILE_DL_OPCACHE 1" >>confdefs.h
+printf '%s\n' "#define COMPILE_DL_OPCACHE 1" >>confdefs.h
fi
fi
@@ -51589,8 +51329,8 @@
if test "$php_cv_shm_ipc" != "yes" && test "$php_cv_shm_mmap_posix" != "yes" && test "$php_cv_shm_mmap_anon" != "yes"; then
- { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in '$ac_pwd':" >&5
-printf "%s\n" "$as_me: error: in '$ac_pwd':" >&2;}
+ { { printf '%s\n' "$as_me:${as_lineno-$LINENO}: error: in '$ac_pwd':" >&5
+printf '%s\n' "$as_me: error: in '$ac_pwd':" >&2;}
as_fn_error $? "No supported shared memory caching support was found when configuring opcache.
See 'config.log' for more details" "$LINENO" 5; }
fi
@@ -51618,7 +51358,7 @@
php_enable_pcntl=no
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether to enable pcntl support" >&5
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking whether to enable pcntl support" >&5
printf %s "checking whether to enable pcntl support... " >&6; }
# Check whether --enable-pcntl was given.
if test ${enable_pcntl+y}
@@ -51655,22 +51395,22 @@
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ext_output" >&5
-printf "%s\n" "$ext_output" >&6; }
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $ext_output" >&5
+printf '%s\n' "$ext_output" >&6; }
if test "$PHP_PCNTL" != "no"; then
for function in fork sigaction waitpid; do
- as_ac_var=`printf "%s\n" "ac_cv_func_$function" | sed "$as_sed_sh"`
+ as_ac_var=`printf '%s\n' "ac_cv_func_$function" | sed "$as_sed_sh"`
ac_fn_c_check_func "$LINENO" "$function" "$as_ac_var"
if eval test \"x\$"$as_ac_var"\" = x"yes"
then :
else case e in #(
- e) { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in '$ac_pwd':" >&5
-printf "%s\n" "$as_me: error: in '$ac_pwd':" >&2;}
+ e) { { printf '%s\n' "$as_me:${as_lineno-$LINENO}: error: in '$ac_pwd':" >&5
+printf '%s\n' "$as_me: error: in '$ac_pwd':" >&2;}
as_fn_error $? "ext/pcntl: required function $function() not found.
See 'config.log' for more details" "$LINENO" 5; } ;;
esac
@@ -51681,91 +51421,91 @@
ac_fn_c_check_func "$LINENO" "forkx" "ac_cv_func_forkx"
if test "x$ac_cv_func_forkx" = xyes
then :
- printf "%s\n" "#define HAVE_FORKX 1" >>confdefs.h
+ printf '%s\n' "#define HAVE_FORKX 1" >>confdefs.h
fi
ac_fn_c_check_func "$LINENO" "getcpuid" "ac_cv_func_getcpuid"
if test "x$ac_cv_func_getcpuid" = xyes
then :
- printf "%s\n" "#define HAVE_GETCPUID 1" >>confdefs.h
+ printf '%s\n' "#define HAVE_GETCPUID 1" >>confdefs.h
fi
ac_fn_c_check_func "$LINENO" "getpriority" "ac_cv_func_getpriority"
if test "x$ac_cv_func_getpriority" = xyes
then :
- printf "%s\n" "#define HAVE_GETPRIORITY 1" >>confdefs.h
+ printf '%s\n' "#define HAVE_GETPRIORITY 1" >>confdefs.h
fi
ac_fn_c_check_func "$LINENO" "pidfd_open" "ac_cv_func_pidfd_open"
if test "x$ac_cv_func_pidfd_open" = xyes
then :
- printf "%s\n" "#define HAVE_PIDFD_OPEN 1" >>confdefs.h
+ printf '%s\n' "#define HAVE_PIDFD_OPEN 1" >>confdefs.h
fi
ac_fn_c_check_func "$LINENO" "pset_bind" "ac_cv_func_pset_bind"
if test "x$ac_cv_func_pset_bind" = xyes
then :
- printf "%s\n" "#define HAVE_PSET_BIND 1" >>confdefs.h
+ printf '%s\n' "#define HAVE_PSET_BIND 1" >>confdefs.h
fi
ac_fn_c_check_func "$LINENO" "pthread_set_qos_class_self_np" "ac_cv_func_pthread_set_qos_class_self_np"
if test "x$ac_cv_func_pthread_set_qos_class_self_np" = xyes
then :
- printf "%s\n" "#define HAVE_PTHREAD_SET_QOS_CLASS_SELF_NP 1" >>confdefs.h
+ printf '%s\n' "#define HAVE_PTHREAD_SET_QOS_CLASS_SELF_NP 1" >>confdefs.h
fi
ac_fn_c_check_func "$LINENO" "rfork" "ac_cv_func_rfork"
if test "x$ac_cv_func_rfork" = xyes
then :
- printf "%s\n" "#define HAVE_RFORK 1" >>confdefs.h
+ printf '%s\n' "#define HAVE_RFORK 1" >>confdefs.h
fi
ac_fn_c_check_func "$LINENO" "sched_setaffinity" "ac_cv_func_sched_setaffinity"
if test "x$ac_cv_func_sched_setaffinity" = xyes
then :
- printf "%s\n" "#define HAVE_SCHED_SETAFFINITY 1" >>confdefs.h
+ printf '%s\n' "#define HAVE_SCHED_SETAFFINITY 1" >>confdefs.h
fi
ac_fn_c_check_func "$LINENO" "setpriority" "ac_cv_func_setpriority"
if test "x$ac_cv_func_setpriority" = xyes
then :
- printf "%s\n" "#define HAVE_SETPRIORITY 1" >>confdefs.h
+ printf '%s\n' "#define HAVE_SETPRIORITY 1" >>confdefs.h
fi
ac_fn_c_check_func "$LINENO" "sigwaitinfo" "ac_cv_func_sigwaitinfo"
if test "x$ac_cv_func_sigwaitinfo" = xyes
then :
- printf "%s\n" "#define HAVE_SIGWAITINFO 1" >>confdefs.h
+ printf '%s\n' "#define HAVE_SIGWAITINFO 1" >>confdefs.h
fi
ac_fn_c_check_func "$LINENO" "sigtimedwait" "ac_cv_func_sigtimedwait"
if test "x$ac_cv_func_sigtimedwait" = xyes
then :
- printf "%s\n" "#define HAVE_SIGTIMEDWAIT 1" >>confdefs.h
+ printf '%s\n' "#define HAVE_SIGTIMEDWAIT 1" >>confdefs.h
fi
ac_fn_c_check_func "$LINENO" "unshare" "ac_cv_func_unshare"
if test "x$ac_cv_func_unshare" = xyes
then :
- printf "%s\n" "#define HAVE_UNSHARE 1" >>confdefs.h
+ printf '%s\n' "#define HAVE_UNSHARE 1" >>confdefs.h
fi
ac_fn_c_check_func "$LINENO" "wait3" "ac_cv_func_wait3"
if test "x$ac_cv_func_wait3" = xyes
then :
- printf "%s\n" "#define HAVE_WAIT3 1" >>confdefs.h
+ printf '%s\n' "#define HAVE_WAIT3 1" >>confdefs.h
fi
ac_fn_c_check_func "$LINENO" "wait4" "ac_cv_func_wait4"
if test "x$ac_cv_func_wait4" = xyes
then :
- printf "%s\n" "#define HAVE_WAIT4 1" >>confdefs.h
+ printf '%s\n' "#define HAVE_WAIT4 1" >>confdefs.h
fi
ac_fn_c_check_func "$LINENO" "waitid" "ac_cv_func_waitid"
if test "x$ac_cv_func_waitid" = xyes
then :
- printf "%s\n" "#define HAVE_WAITID 1" >>confdefs.h
+ printf '%s\n' "#define HAVE_WAITID 1" >>confdefs.h
fi
@@ -51776,14 +51516,14 @@
ac_fn_c_check_func "$LINENO" "WIFCONTINUED" "ac_cv_func_WIFCONTINUED"
if test "x$ac_cv_func_WIFCONTINUED" = xyes
then :
- printf "%s\n" "#define HAVE_WIFCONTINUED 1" >>confdefs.h
+ printf '%s\n' "#define HAVE_WIFCONTINUED 1" >>confdefs.h
else case e in #(
e) ac_fn_check_decl "$LINENO" "WIFCONTINUED" "ac_cv_have_decl_WIFCONTINUED" "#include
-" "$ac_c_undeclared_builtin_options" "CFLAGS"
+" "$ac_c_undeclared_builtin_options$ac_c_future_darwin_options" "CFLAGS"
if test "x$ac_cv_have_decl_WIFCONTINUED" = xyes
then :
- printf "%s\n" "#define HAVE_WIFCONTINUED 1" >>confdefs.h
+ printf '%s\n' "#define HAVE_WIFCONTINUED 1" >>confdefs.h
fi ;;
esac
@@ -51792,7 +51532,7 @@
done
ac_fn_check_decl "$LINENO" "WCONTINUED" "ac_cv_have_decl_WCONTINUED" "#include
-" "$ac_c_undeclared_builtin_options" "CFLAGS"
+" "$ac_c_undeclared_builtin_options$ac_c_future_darwin_options" "CFLAGS"
if test "x$ac_cv_have_decl_WCONTINUED" = xyes
then :
ac_have_decl=1
@@ -51800,9 +51540,9 @@
e) ac_have_decl=0 ;;
esac
fi
-printf "%s\n" "#define HAVE_DECL_WCONTINUED $ac_have_decl" >>confdefs.h
+printf '%s\n' "#define HAVE_DECL_WCONTINUED $ac_have_decl" >>confdefs.h
ac_fn_check_decl "$LINENO" "WEXITED" "ac_cv_have_decl_WEXITED" "#include
-" "$ac_c_undeclared_builtin_options" "CFLAGS"
+" "$ac_c_undeclared_builtin_options$ac_c_future_darwin_options" "CFLAGS"
if test "x$ac_cv_have_decl_WEXITED" = xyes
then :
ac_have_decl=1
@@ -51810,9 +51550,9 @@
e) ac_have_decl=0 ;;
esac
fi
-printf "%s\n" "#define HAVE_DECL_WEXITED $ac_have_decl" >>confdefs.h
+printf '%s\n' "#define HAVE_DECL_WEXITED $ac_have_decl" >>confdefs.h
ac_fn_check_decl "$LINENO" "WSTOPPED" "ac_cv_have_decl_WSTOPPED" "#include
-" "$ac_c_undeclared_builtin_options" "CFLAGS"
+" "$ac_c_undeclared_builtin_options$ac_c_future_darwin_options" "CFLAGS"
if test "x$ac_cv_have_decl_WSTOPPED" = xyes
then :
ac_have_decl=1
@@ -51820,9 +51560,9 @@
e) ac_have_decl=0 ;;
esac
fi
-printf "%s\n" "#define HAVE_DECL_WSTOPPED $ac_have_decl" >>confdefs.h
+printf '%s\n' "#define HAVE_DECL_WSTOPPED $ac_have_decl" >>confdefs.h
ac_fn_check_decl "$LINENO" "WNOWAIT" "ac_cv_have_decl_WNOWAIT" "#include
-" "$ac_c_undeclared_builtin_options" "CFLAGS"
+" "$ac_c_undeclared_builtin_options$ac_c_future_darwin_options" "CFLAGS"
if test "x$ac_cv_have_decl_WNOWAIT" = xyes
then :
ac_have_decl=1
@@ -51830,9 +51570,9 @@
e) ac_have_decl=0 ;;
esac
fi
-printf "%s\n" "#define HAVE_DECL_WNOWAIT $ac_have_decl" >>confdefs.h
+printf '%s\n' "#define HAVE_DECL_WNOWAIT $ac_have_decl" >>confdefs.h
ac_fn_check_decl "$LINENO" "P_ALL" "ac_cv_have_decl_P_ALL" "#include
-" "$ac_c_undeclared_builtin_options" "CFLAGS"
+" "$ac_c_undeclared_builtin_options$ac_c_future_darwin_options" "CFLAGS"
if test "x$ac_cv_have_decl_P_ALL" = xyes
then :
ac_have_decl=1
@@ -51840,9 +51580,9 @@
e) ac_have_decl=0 ;;
esac
fi
-printf "%s\n" "#define HAVE_DECL_P_ALL $ac_have_decl" >>confdefs.h
+printf '%s\n' "#define HAVE_DECL_P_ALL $ac_have_decl" >>confdefs.h
ac_fn_check_decl "$LINENO" "P_PIDFD" "ac_cv_have_decl_P_PIDFD" "#include
-" "$ac_c_undeclared_builtin_options" "CFLAGS"
+" "$ac_c_undeclared_builtin_options$ac_c_future_darwin_options" "CFLAGS"
if test "x$ac_cv_have_decl_P_PIDFD" = xyes
then :
ac_have_decl=1
@@ -51850,9 +51590,9 @@
e) ac_have_decl=0 ;;
esac
fi
-printf "%s\n" "#define HAVE_DECL_P_PIDFD $ac_have_decl" >>confdefs.h
+printf '%s\n' "#define HAVE_DECL_P_PIDFD $ac_have_decl" >>confdefs.h
ac_fn_check_decl "$LINENO" "P_UID" "ac_cv_have_decl_P_UID" "#include
-" "$ac_c_undeclared_builtin_options" "CFLAGS"
+" "$ac_c_undeclared_builtin_options$ac_c_future_darwin_options" "CFLAGS"
if test "x$ac_cv_have_decl_P_UID" = xyes
then :
ac_have_decl=1
@@ -51860,9 +51600,9 @@
e) ac_have_decl=0 ;;
esac
fi
-printf "%s\n" "#define HAVE_DECL_P_UID $ac_have_decl" >>confdefs.h
+printf '%s\n' "#define HAVE_DECL_P_UID $ac_have_decl" >>confdefs.h
ac_fn_check_decl "$LINENO" "P_JAILID" "ac_cv_have_decl_P_JAILID" "#include
-" "$ac_c_undeclared_builtin_options" "CFLAGS"
+" "$ac_c_undeclared_builtin_options$ac_c_future_darwin_options" "CFLAGS"
if test "x$ac_cv_have_decl_P_JAILID" = xyes
then :
ac_have_decl=1
@@ -51870,10 +51610,10 @@
e) ac_have_decl=0 ;;
esac
fi
-printf "%s\n" "#define HAVE_DECL_P_JAILID $ac_have_decl" >>confdefs.h
+printf '%s\n' "#define HAVE_DECL_P_JAILID $ac_have_decl" >>confdefs.h
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if sched_getcpu is supported" >&5
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking if sched_getcpu is supported" >&5
printf %s "checking if sched_getcpu is supported... " >&6; }
if test ${php_cv_func_sched_getcpu+y}
then :
@@ -51909,12 +51649,12 @@
;;
esac
fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $php_cv_func_sched_getcpu" >&5
-printf "%s\n" "$php_cv_func_sched_getcpu" >&6; }
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $php_cv_func_sched_getcpu" >&5
+printf '%s\n' "$php_cv_func_sched_getcpu" >&6; }
if test "x$php_cv_func_sched_getcpu" = xyes
then :
-printf "%s\n" "#define HAVE_SCHED_GETCPU 1" >>confdefs.h
+printf '%s\n' "#define HAVE_SCHED_GETCPU 1" >>confdefs.h
fi
@@ -52061,7 +51801,7 @@
EOF
-printf "%s\n" "#define COMPILE_DL_PCNTL 1" >>confdefs.h
+printf '%s\n' "#define COMPILE_DL_PCNTL 1" >>confdefs.h
fi
fi
@@ -52185,357 +51925,9 @@
-php_enable_pdo=yes
-
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether to enable PDO support" >&5
-printf %s "checking whether to enable PDO support... " >&6; }
-# Check whether --enable-pdo was given.
-if test ${enable_pdo+y}
-then :
- enableval=$enable_pdo; PHP_PDO=$enableval
-else case e in #(
- e)
- PHP_PDO=yes
- test "$PHP_ENABLE_ALL" && PHP_PDO=$PHP_ENABLE_ALL
- ;;
-esac
-fi
-
-
-
-ext_output="yes, shared"
-ext_shared=yes
-case $PHP_PDO in
-shared,*)
- PHP_PDO=$(echo "$PHP_PDO"|$SED 's/^shared,//')
- ;;
-shared)
- PHP_PDO=yes
- ;;
-no)
- ext_output=no
- ext_shared=no
- ;;
-*)
- ext_output=yes
- ext_shared=no
- ;;
-esac
-
-
-
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ext_output" >&5
-printf "%s\n" "$ext_output" >&6; }
-
-
-
-
-if test "$PHP_PDO" != "no"; then
- PHP_PDO=yes
-
-
- ext_builddir=ext/pdo
- ext_srcdir=$abs_srcdir/ext/pdo
- ext_dir=ext/pdo
-
- ac_extra=
-
- if test "$ext_shared" != "shared" && test "$ext_shared" != "yes" && test "" != "cli"; then
- PHP_PDO_SHARED=no
-
-
- case $ext_dir in
- "") ac_srcdir="$abs_srcdir/"; unset ac_bdir; ac_inc="-I. -I$abs_srcdir" ;;
- /*) ac_srcdir=$(echo "$ext_dir"|cut -c 2-)"/"; ac_bdir=$ac_srcdir; ac_inc="-I$ac_bdir -I$abs_srcdir/$ac_bdir" ;;
- *) ac_srcdir="$abs_srcdir/$ext_dir/"; ac_bdir="$ext_dir/"; ac_inc="-I$ac_bdir -I$ac_srcdir" ;;
- esac
-
-
-
- b_c_pre=$php_c_pre
- b_cxx_pre=$php_cxx_pre
- b_c_meta=$php_c_meta
- b_cxx_meta=$php_cxx_meta
- b_c_post=$php_c_post
- b_cxx_post=$php_cxx_post
- b_lo=$php_lo
-
-
- old_IFS=$IFS
- for ac_src in pdo.c pdo_dbh.c pdo_stmt.c pdo_sql_parser.c pdo_sqlstate.c; do
-
- IFS=.
- set $ac_src
- ac_obj=$1
- IFS=$old_IFS
-
- PHP_GLOBAL_OBJS="$PHP_GLOBAL_OBJS $ac_bdir$ac_obj.lo"
-
- case $ac_src in
- *.c) ac_comp="$b_c_pre $ac_inc $b_c_meta $ac_extra -c $ac_srcdir$ac_src -o $ac_bdir$ac_obj.$b_lo $b_c_post" ;;
- *.s) ac_comp="$b_c_pre $ac_inc $b_c_meta $ac_extra -c $ac_srcdir$ac_src -o $ac_bdir$ac_obj.$b_lo $b_c_post" ;;
- *.S) ac_comp="$b_c_pre $ac_inc $b_c_meta $ac_extra -c $ac_srcdir$ac_src -o $ac_bdir$ac_obj.$b_lo $b_c_post" ;;
- *.cpp|*.cc|*.cxx) ac_comp="$b_cxx_pre $ac_inc $b_cxx_meta $ac_extra -c $ac_srcdir$ac_src -o $ac_bdir$ac_obj.$b_lo $b_cxx_post" ;;
- esac
-
- ac_comp="$ac_comp -MMD -MF $ac_bdir$ac_obj.dep -MT $ac_bdir$ac_obj.lo"
-
- cat >>Makefile.objects<>Makefile.objects<>Makefile.objects<>confdefs.h
-
- fi
- fi
-
- if test "$ext_shared" != "shared" && test "$ext_shared" != "yes" && test "" = "cli"; then
- PHP_PDO_SHARED=no
- case "$PHP_SAPI" in
- cgi|embed|phpdbg)
-
-
- case $ext_dir in
- "") ac_srcdir="$abs_srcdir/"; unset ac_bdir; ac_inc="-I. -I$abs_srcdir" ;;
- /*) ac_srcdir=$(echo "$ext_dir"|cut -c 2-)"/"; ac_bdir=$ac_srcdir; ac_inc="-I$ac_bdir -I$abs_srcdir/$ac_bdir" ;;
- *) ac_srcdir="$abs_srcdir/$ext_dir/"; ac_bdir="$ext_dir/"; ac_inc="-I$ac_bdir -I$ac_srcdir" ;;
- esac
-
-
-
- b_c_pre=$php_c_pre
- b_cxx_pre=$php_cxx_pre
- b_c_meta=$php_c_meta
- b_cxx_meta=$php_cxx_meta
- b_c_post=$php_c_post
- b_cxx_post=$php_cxx_post
- b_lo=$php_lo
-
-
- old_IFS=$IFS
- for ac_src in pdo.c pdo_dbh.c pdo_stmt.c pdo_sql_parser.c pdo_sqlstate.c; do
-
- IFS=.
- set $ac_src
- ac_obj=$1
- IFS=$old_IFS
-
- PHP_GLOBAL_OBJS="$PHP_GLOBAL_OBJS $ac_bdir$ac_obj.lo"
-
- case $ac_src in
- *.c) ac_comp="$b_c_pre $ac_inc $b_c_meta $ac_extra -c $ac_srcdir$ac_src -o $ac_bdir$ac_obj.$b_lo $b_c_post" ;;
- *.s) ac_comp="$b_c_pre $ac_inc $b_c_meta $ac_extra -c $ac_srcdir$ac_src -o $ac_bdir$ac_obj.$b_lo $b_c_post" ;;
- *.S) ac_comp="$b_c_pre $ac_inc $b_c_meta $ac_extra -c $ac_srcdir$ac_src -o $ac_bdir$ac_obj.$b_lo $b_c_post" ;;
- *.cpp|*.cc|*.cxx) ac_comp="$b_cxx_pre $ac_inc $b_cxx_meta $ac_extra -c $ac_srcdir$ac_src -o $ac_bdir$ac_obj.$b_lo $b_cxx_post" ;;
- esac
-
- ac_comp="$ac_comp -MMD -MF $ac_bdir$ac_obj.dep -MT $ac_bdir$ac_obj.lo"
-
- cat >>Makefile.objects<>Makefile.objects<> Makefile.fragments
-
-fi
-
-
-
-
-
php_with_pdo_dblib=no
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for PDO_DBLIB support via FreeTDS" >&5
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for PDO_DBLIB support via FreeTDS" >&5
printf %s "checking for PDO_DBLIB support via FreeTDS... " >&6; }
# Check whether --with-pdo-dblib was given.
@@ -52573,8 +51965,8 @@
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ext_output" >&5
-printf "%s\n" "$ext_output" >&6; }
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $ext_output" >&5
+printf '%s\n' "$ext_output" >&6; }
@@ -52701,7 +52093,7 @@
esac
done
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for dbsqlexec in -lsybdb" >&5
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for dbsqlexec in -lsybdb" >&5
printf %s "checking for dbsqlexec in -lsybdb... " >&6; }
if test ${ac_cv_lib_sybdb_dbsqlexec+y}
then :
@@ -52742,8 +52134,8 @@
LIBS=$ac_check_lib_save_LIBS ;;
esac
fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_sybdb_dbsqlexec" >&5
-printf "%s\n" "$ac_cv_lib_sybdb_dbsqlexec" >&6; }
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_sybdb_dbsqlexec" >&5
+printf '%s\n' "$ac_cv_lib_sybdb_dbsqlexec" >&6; }
if test "x$ac_cv_lib_sybdb_dbsqlexec" = xyes
then :
@@ -52756,8 +52148,8 @@
LDFLAGS=$save_old_LDFLAGS
ext_shared=$save_ext_shared
unset ac_cv_lib_sybdb_dbsqlexec
- { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in '$ac_pwd':" >&5
-printf "%s\n" "$as_me: error: in '$ac_pwd':" >&2;}
+ { { printf '%s\n' "$as_me:${as_lineno-$LINENO}: error: in '$ac_pwd':" >&5
+printf '%s\n' "$as_me: error: in '$ac_pwd':" >&2;}
as_fn_error $? "Cannot find FreeTDS in known installation directories.
See 'config.log' for more details" "$LINENO" 5; }
;;
@@ -52948,7 +52340,7 @@
fi
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for PDO includes" >&5
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for PDO includes" >&5
printf %s "checking for PDO includes... " >&6; }
if test ${pdo_cv_inc_path+y}
then :
@@ -52963,8 +52355,8 @@
;;
esac
fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $pdo_cv_inc_path" >&5
-printf "%s\n" "$pdo_cv_inc_path" >&6; }
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $pdo_cv_inc_path" >&5
+printf '%s\n' "$pdo_cv_inc_path" >&6; }
if test -n "$pdo_cv_inc_path"; then
:
else
@@ -53108,7 +52500,7 @@
EOF
-printf "%s\n" "#define COMPILE_DL_PDO_DBLIB 1" >>confdefs.h
+printf '%s\n' "#define COMPILE_DL_PDO_DBLIB 1" >>confdefs.h
fi
fi
@@ -53257,7 +52649,7 @@
php_with_pdo_firebird=no
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for Firebird support for PDO" >&5
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for Firebird support for PDO" >&5
printf %s "checking for Firebird support for PDO... " >&6; }
# Check whether --with-pdo-firebird was given.
@@ -53295,8 +52687,8 @@
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ext_output" >&5
-printf "%s\n" "$ext_output" >&6; }
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $ext_output" >&5
+printf '%s\n' "$ext_output" >&6; }
@@ -53304,7 +52696,7 @@
if test "$PHP_PDO_FIREBIRD" != "no"; then
# Extract the first word of "fb_config", so it can be a program name with args.
set dummy fb_config; ac_word=$2
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
printf %s "checking for $ac_word... " >&6; }
if test ${ac_cv_path_FB_CONFIG+y}
then :
@@ -53327,7 +52719,7 @@
for ac_exec_ext in '' $ac_executable_extensions; do
if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
ac_cv_path_FB_CONFIG="$as_dir$ac_word$ac_exec_ext"
- printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
+ printf '%s\n' "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
break 2
fi
done
@@ -53341,23 +52733,23 @@
fi
FB_CONFIG=$ac_cv_path_FB_CONFIG
if test -n "$FB_CONFIG"; then
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $FB_CONFIG" >&5
-printf "%s\n" "$FB_CONFIG" >&6; }
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $FB_CONFIG" >&5
+printf '%s\n' "$FB_CONFIG" >&6; }
else
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
-printf "%s\n" "no" >&6; }
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf '%s\n' "no" >&6; }
fi
if test -x "$FB_CONFIG" && test "$PHP_PDO_FIREBIRD" = "yes"; then
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for libfbconfig" >&5
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for libfbconfig" >&5
printf %s "checking for libfbconfig... " >&6; }
FB_CFLAGS=$($FB_CONFIG --cflags)
FB_LIBDIR=$($FB_CONFIG --libs)
FB_VERSION=$($FB_CONFIG --version)
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: version $FB_VERSION" >&5
-printf "%s\n" "version $FB_VERSION" >&6; }
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: version $FB_VERSION" >&5
+printf '%s\n' "version $FB_VERSION" >&6; }
as_arg_v1=$FB_VERSION
as_arg_v2=3.0
awk "$as_awk_strverscmp" v1="$as_arg_v1" v2="$as_arg_v2" /dev/null
@@ -53661,7 +53053,7 @@
esac
done
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for fb_get_master_interface in -lfbclient" >&5
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for fb_get_master_interface in -lfbclient" >&5
printf %s "checking for fb_get_master_interface in -lfbclient... " >&6; }
if test ${ac_cv_lib_fbclient_fb_get_master_interface+y}
then :
@@ -53702,8 +53094,8 @@
LIBS=$ac_check_lib_save_LIBS ;;
esac
fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_fbclient_fb_get_master_interface" >&5
-printf "%s\n" "$ac_cv_lib_fbclient_fb_get_master_interface" >&6; }
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_fbclient_fb_get_master_interface" >&5
+printf '%s\n' "$ac_cv_lib_fbclient_fb_get_master_interface" >&6; }
if test "x$ac_cv_lib_fbclient_fb_get_master_interface" = xyes
then :
@@ -53716,8 +53108,8 @@
LDFLAGS=$save_old_LDFLAGS
ext_shared=$save_ext_shared
unset ac_cv_lib_fbclient_fb_get_master_interface
- { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in '$ac_pwd':" >&5
-printf "%s\n" "$as_me: error: in '$ac_pwd':" >&2;}
+ { { printf '%s\n' "$as_me:${as_lineno-$LINENO}: error: in '$ac_pwd':" >&5
+printf '%s\n' "$as_me: error: in '$ac_pwd':" >&2;}
as_fn_error $? "libfbclient not found.
See 'config.log' for more details" "$LINENO" 5; }
;;
@@ -53866,7 +53258,7 @@
fi
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for PDO includes" >&5
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for PDO includes" >&5
printf %s "checking for PDO includes... " >&6; }
if test ${pdo_cv_inc_path+y}
then :
@@ -53881,8 +53273,8 @@
;;
esac
fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $pdo_cv_inc_path" >&5
-printf "%s\n" "$pdo_cv_inc_path" >&6; }
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $pdo_cv_inc_path" >&5
+printf '%s\n' "$pdo_cv_inc_path" >&6; }
if test -n "$pdo_cv_inc_path"; then
:
else
@@ -54025,7 +53417,7 @@
EOF
-printf "%s\n" "#define COMPILE_DL_PDO_FIREBIRD 1" >>confdefs.h
+printf '%s\n' "#define COMPILE_DL_PDO_FIREBIRD 1" >>confdefs.h
fi
fi
@@ -54184,7 +53576,7 @@
do
# Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args.
set dummy $ac_tool_prefix$ac_prog; ac_word=$2
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
printf %s "checking for $ac_word... " >&6; }
if test ${ac_cv_prog_CXX+y}
then :
@@ -54205,7 +53597,7 @@
for ac_exec_ext in '' $ac_executable_extensions; do
if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
ac_cv_prog_CXX="$ac_tool_prefix$ac_prog"
- printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
+ printf '%s\n' "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
break 2
fi
done
@@ -54217,11 +53609,11 @@
fi
CXX=$ac_cv_prog_CXX
if test -n "$CXX"; then
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $CXX" >&5
-printf "%s\n" "$CXX" >&6; }
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $CXX" >&5
+printf '%s\n' "$CXX" >&6; }
else
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
-printf "%s\n" "no" >&6; }
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf '%s\n' "no" >&6; }
fi
@@ -54234,7 +53626,7 @@
do
# Extract the first word of "$ac_prog", so it can be a program name with args.
set dummy $ac_prog; ac_word=$2
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
printf %s "checking for $ac_word... " >&6; }
if test ${ac_cv_prog_ac_ct_CXX+y}
then :
@@ -54255,7 +53647,7 @@
for ac_exec_ext in '' $ac_executable_extensions; do
if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
ac_cv_prog_ac_ct_CXX="$ac_prog"
- printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
+ printf '%s\n' "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
break 2
fi
done
@@ -54267,11 +53659,11 @@
fi
ac_ct_CXX=$ac_cv_prog_ac_ct_CXX
if test -n "$ac_ct_CXX"; then
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CXX" >&5
-printf "%s\n" "$ac_ct_CXX" >&6; }
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CXX" >&5
+printf '%s\n' "$ac_ct_CXX" >&6; }
else
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
-printf "%s\n" "no" >&6; }
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf '%s\n' "no" >&6; }
fi
@@ -54283,8 +53675,8 @@
else
case $cross_compiling:$ac_tool_warned in
yes:)
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
-printf "%s\n" "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+printf '%s\n' "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
ac_tool_warned=yes ;;
esac
CXX=$ac_ct_CXX
@@ -54294,7 +53686,7 @@
fi
fi
# Provide some information about the compiler.
-printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for C++ compiler version" >&5
+printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for C++ compiler version" >&5
set X $ac_compile
ac_compiler=$2
for ac_option in --version -v -V -qversion; do
@@ -54304,7 +53696,7 @@
*) ac_try_echo=$ac_try;;
esac
eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
-printf "%s\n" "$ac_try_echo"; } >&5
+printf '%s\n' "$ac_try_echo"; } >&5
(eval "$ac_compiler $ac_option >&5") 2>conftest.err
ac_status=$?
if test -s conftest.err; then
@@ -54314,11 +53706,11 @@
cat conftest.er1 >&5
fi
rm -f conftest.er1 conftest.err
- printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ printf '%s\n' "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
test $ac_status = 0; }
done
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether the compiler supports GNU C++" >&5
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking whether the compiler supports GNU C++" >&5
printf %s "checking whether the compiler supports GNU C++... " >&6; }
if test ${ac_cv_cxx_compiler_gnu+y}
then :
@@ -54350,8 +53742,8 @@
;;
esac
fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_cxx_compiler_gnu" >&5
-printf "%s\n" "$ac_cv_cxx_compiler_gnu" >&6; }
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $ac_cv_cxx_compiler_gnu" >&5
+printf '%s\n' "$ac_cv_cxx_compiler_gnu" >&6; }
ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
if test $ac_compiler_gnu = yes; then
@@ -54361,7 +53753,7 @@
fi
ac_test_CXXFLAGS=${CXXFLAGS+y}
ac_save_CXXFLAGS=$CXXFLAGS
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether $CXX accepts -g" >&5
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking whether $CXX accepts -g" >&5
printf %s "checking whether $CXX accepts -g... " >&6; }
if test ${ac_cv_prog_cxx_g+y}
then :
@@ -54429,8 +53821,8 @@
ac_cxx_werror_flag=$ac_save_cxx_werror_flag ;;
esac
fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cxx_g" >&5
-printf "%s\n" "$ac_cv_prog_cxx_g" >&6; }
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cxx_g" >&5
+printf '%s\n' "$ac_cv_prog_cxx_g" >&6; }
if test $ac_test_CXXFLAGS; then
CXXFLAGS=$ac_save_CXXFLAGS
elif test $ac_cv_prog_cxx_g = yes; then
@@ -54446,106 +53838,6 @@
CXXFLAGS=
fi
fi
-ac_prog_cxx_stdcxx=no
-if test x$ac_prog_cxx_stdcxx = xno
-then :
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $CXX option to enable C++11 features" >&5
-printf %s "checking for $CXX option to enable C++11 features... " >&6; }
-if test ${ac_cv_prog_cxx_cxx11+y}
-then :
- printf %s "(cached) " >&6
-else case e in #(
- e) ac_cv_prog_cxx_cxx11=no
-ac_save_CXX=$CXX
-cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-$ac_cxx_conftest_cxx11_program
-_ACEOF
-for ac_arg in '' -std=gnu++11 -std=gnu++0x -std=c++11 -std=c++0x -qlanglvl=extended0x -AA
-do
- CXX="$ac_save_CXX $ac_arg"
- if ac_fn_cxx_try_compile "$LINENO"
-then :
- ac_cv_prog_cxx_cxx11=$ac_arg
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.beam
- test "x$ac_cv_prog_cxx_cxx11" != "xno" && break
-done
-rm -f conftest.$ac_ext
-CXX=$ac_save_CXX ;;
-esac
-fi
-
-if test "x$ac_cv_prog_cxx_cxx11" = xno
-then :
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5
-printf "%s\n" "unsupported" >&6; }
-else case e in #(
- e) if test "x$ac_cv_prog_cxx_cxx11" = x
-then :
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: none needed" >&5
-printf "%s\n" "none needed" >&6; }
-else case e in #(
- e) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cxx_cxx11" >&5
-printf "%s\n" "$ac_cv_prog_cxx_cxx11" >&6; }
- CXX="$CXX $ac_cv_prog_cxx_cxx11" ;;
-esac
-fi
- ac_cv_prog_cxx_stdcxx=$ac_cv_prog_cxx_cxx11
- ac_prog_cxx_stdcxx=cxx11 ;;
-esac
-fi
-fi
-if test x$ac_prog_cxx_stdcxx = xno
-then :
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $CXX option to enable C++98 features" >&5
-printf %s "checking for $CXX option to enable C++98 features... " >&6; }
-if test ${ac_cv_prog_cxx_cxx98+y}
-then :
- printf %s "(cached) " >&6
-else case e in #(
- e) ac_cv_prog_cxx_cxx98=no
-ac_save_CXX=$CXX
-cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-$ac_cxx_conftest_cxx98_program
-_ACEOF
-for ac_arg in '' -std=gnu++98 -std=c++98 -qlanglvl=extended -AA
-do
- CXX="$ac_save_CXX $ac_arg"
- if ac_fn_cxx_try_compile "$LINENO"
-then :
- ac_cv_prog_cxx_cxx98=$ac_arg
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.beam
- test "x$ac_cv_prog_cxx_cxx98" != "xno" && break
-done
-rm -f conftest.$ac_ext
-CXX=$ac_save_CXX ;;
-esac
-fi
-
-if test "x$ac_cv_prog_cxx_cxx98" = xno
-then :
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5
-printf "%s\n" "unsupported" >&6; }
-else case e in #(
- e) if test "x$ac_cv_prog_cxx_cxx98" = x
-then :
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: none needed" >&5
-printf "%s\n" "none needed" >&6; }
-else case e in #(
- e) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cxx_cxx98" >&5
-printf "%s\n" "$ac_cv_prog_cxx_cxx98" >&6; }
- CXX="$CXX $ac_cv_prog_cxx_cxx98" ;;
-esac
-fi
- ac_cv_prog_cxx_stdcxx=$ac_cv_prog_cxx_cxx98
- ac_prog_cxx_stdcxx=cxx98 ;;
-esac
-fi
-fi
-
ac_ext=c
ac_cpp='$CPP $CPPFLAGS'
ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
@@ -54557,7 +53849,7 @@
ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5'
ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking how to run the C++ preprocessor" >&5
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking how to run the C++ preprocessor" >&5
printf %s "checking how to run the C++ preprocessor... " >&6; }
if test -z "$CXXCPP"; then
if test ${ac_cv_prog_CXXCPP+y}
@@ -54624,8 +53916,8 @@
else
ac_cv_prog_CXXCPP=$CXXCPP
fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $CXXCPP" >&5
-printf "%s\n" "$CXXCPP" >&6; }
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $CXXCPP" >&5
+printf '%s\n' "$CXXCPP" >&6; }
ac_preproc_ok=false
for ac_cxx_preproc_warn_flag in '' yes
do
@@ -54673,8 +53965,8 @@
then :
else case e in #(
- e) { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in '$ac_pwd':" >&5
-printf "%s\n" "$as_me: error: in '$ac_pwd':" >&2;}
+ e) { { printf '%s\n' "$as_me:${as_lineno-$LINENO}: error: in '$ac_pwd':" >&5
+printf '%s\n' "$as_me: error: in '$ac_pwd':" >&2;}
as_fn_error $? "C++ preprocessor \"$CXXCPP\" fails sanity check
See 'config.log' for more details" "$LINENO" 5; } ;;
esac
@@ -54709,8 +54001,8 @@
for alternative in ${ax_cxx_compile_alternatives}; do
for switch in -std=c++${alternative} +std=c++${alternative} "-h std=c++${alternative}"; do
- cachevar=`printf "%s\n" "ax_cv_cxx_compile_cxx11_$switch" | sed "$as_sed_sh"`
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether $CXX supports C++11 features with $switch" >&5
+ cachevar=`printf '%s\n' "ax_cv_cxx_compile_cxx11_$switch" | sed "$as_sed_sh"`
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking whether $CXX supports C++11 features with $switch" >&5
printf %s "checking whether $CXX supports C++11 features with $switch... " >&6; }
if eval test \${$cachevar+y}
then :
@@ -55021,8 +54313,8 @@
esac
fi
eval ac_res=\$$cachevar
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
-printf "%s\n" "$ac_res" >&6; }
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
+printf '%s\n' "$ac_res" >&6; }
if eval test x\$$cachevar = xyes; then
eval PHP_PDO_FIREBIRD_STDCXX="$switch"
ac_success=yes
@@ -55046,8 +54338,8 @@
fi
fi
if test x$ac_success = xno; then
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: No compiler with C++11 support was found" >&5
-printf "%s\n" "$as_me: No compiler with C++11 support was found" >&6;}
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: No compiler with C++11 support was found" >&5
+printf '%s\n' "$as_me: No compiler with C++11 support was found" >&6;}
fi
@@ -55157,7 +54449,7 @@
php_with_pdo_mysql=no
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for MySQL support for PDO" >&5
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for MySQL support for PDO" >&5
printf %s "checking for MySQL support for PDO... " >&6; }
# Check whether --with-pdo-mysql was given.
@@ -55195,14 +54487,14 @@
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ext_output" >&5
-printf "%s\n" "$ext_output" >&6; }
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $ext_output" >&5
+printf '%s\n' "$ext_output" >&6; }
if test "$PHP_PDO_MYSQL" != "no"; then
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for MySQL Unix socket location" >&5
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for MySQL Unix socket location" >&5
printf %s "checking for MySQL Unix socket location... " >&6; }
case $PHP_MYSQL_SOCK in #(
yes) :
@@ -55226,29 +54518,29 @@
if ${MYSQL_SOCK:+false} :
then :
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
-printf "%s\n" "no" >&6; }
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf '%s\n' "no" >&6; }
else case e in #(
e)
-printf "%s\n" "#define PHP_MYSQL_UNIX_SOCK_ADDR \"$MYSQL_SOCK\"" >>confdefs.h
+printf '%s\n' "#define PHP_MYSQL_UNIX_SOCK_ADDR \"$MYSQL_SOCK\"" >>confdefs.h
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $MYSQL_SOCK" >&5
-printf "%s\n" "$MYSQL_SOCK" >&6; }
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $MYSQL_SOCK" >&5
+printf '%s\n' "$MYSQL_SOCK" >&6; }
;;
esac
fi
;; #(
no) :
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
-printf "%s\n" "no" >&6; } ;; #(
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf '%s\n' "no" >&6; } ;; #(
*) :
-printf "%s\n" "#define PHP_MYSQL_UNIX_SOCK_ADDR \"$PHP_MYSQL_SOCK\"" >>confdefs.h
+printf '%s\n' "#define PHP_MYSQL_UNIX_SOCK_ADDR \"$PHP_MYSQL_SOCK\"" >>confdefs.h
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $PHP_MYSQL_SOCK" >&5
-printf "%s\n" "$PHP_MYSQL_SOCK" >&6; }
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $PHP_MYSQL_SOCK" >&5
+printf '%s\n' "$PHP_MYSQL_SOCK" >&6; }
;;
esac
@@ -55257,12 +54549,12 @@
PHP_MYSQLND_ENABLED=yes
-printf "%s\n" "#define PDO_USE_MYSQLND 1" >>confdefs.h
+printf '%s\n' "#define PDO_USE_MYSQLND 1" >>confdefs.h
;; #(
*) :
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for mysql_config" >&5
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for mysql_config" >&5
printf %s "checking for mysql_config... " >&6; }
if test -f $PHP_PDO_MYSQL && test -x $PHP_PDO_MYSQL ; then
PDO_MYSQL_CONFIG=$PHP_PDO_MYSQL
@@ -55277,18 +54569,18 @@
fi
if test -n "$PDO_MYSQL_CONFIG"; then
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $PDO_MYSQL_CONFIG" >&5
-printf "%s\n" "$PDO_MYSQL_CONFIG" >&6; }
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $PDO_MYSQL_CONFIG" >&5
+printf '%s\n' "$PDO_MYSQL_CONFIG" >&6; }
PDO_MYSQL_LIBS=$($PDO_MYSQL_CONFIG --libs | $SED -e "s/'//g")
PDO_MYSQL_INCLUDE=$($PDO_MYSQL_CONFIG --cflags | $SED -e "s/'//g")
PDO_MYSQL_SOCKET=$($PDO_MYSQL_CONFIG --socket)
-printf "%s\n" "#define PDO_MYSQL_UNIX_ADDR \"$PDO_MYSQL_SOCKET\"" >>confdefs.h
+printf '%s\n' "#define PDO_MYSQL_UNIX_ADDR \"$PDO_MYSQL_SOCKET\"" >>confdefs.h
elif test -n "$PDO_MYSQL_DIR"; then
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: not found" >&5
-printf "%s\n" "not found" >&6; }
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for mysql install under $PDO_MYSQL_DIR" >&5
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: not found" >&5
+printf '%s\n' "not found" >&6; }
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for mysql install under $PDO_MYSQL_DIR" >&5
printf %s "checking for mysql install under $PDO_MYSQL_DIR... " >&6; }
if test -r $PDO_MYSQL_DIR/include/mysql; then
PDO_MYSQL_INC_DIR=$PDO_MYSQL_DIR/include/mysql
@@ -55302,19 +54594,19 @@
fi
if test -r "$PDO_MYSQL_LIB_DIR"; then
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: libs under $PDO_MYSQL_LIB_DIR; seems promising" >&5
-printf "%s\n" "libs under $PDO_MYSQL_LIB_DIR; seems promising" >&6; }
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: libs under $PDO_MYSQL_LIB_DIR; seems promising" >&5
+printf '%s\n' "libs under $PDO_MYSQL_LIB_DIR; seems promising" >&6; }
else
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: can not find it" >&5
-printf "%s\n" "can not find it" >&6; }
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: can not find it" >&5
+printf '%s\n' "can not find it" >&6; }
as_fn_error $? "Unable to find your mysql installation" "$LINENO" 5
fi
PDO_MYSQL_INCLUDE=-I$PDO_MYSQL_INC_DIR
PDO_MYSQL_LIBS="-L$PDO_MYSQL_LIB_DIR -lmysqlclient"
else
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: not found" >&5
-printf "%s\n" "not found" >&6; }
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: not found" >&5
+printf '%s\n' "not found" >&6; }
as_fn_error $? "Unable to find your mysql installation" "$LINENO" 5
fi
@@ -55477,7 +54769,7 @@
esac
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for PDO includes" >&5
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for PDO includes" >&5
printf %s "checking for PDO includes... " >&6; }
if test ${pdo_cv_inc_path+y}
then :
@@ -55492,8 +54784,8 @@
;;
esac
fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $pdo_cv_inc_path" >&5
-printf "%s\n" "$pdo_cv_inc_path" >&6; }
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $pdo_cv_inc_path" >&5
+printf '%s\n' "$pdo_cv_inc_path" >&6; }
if test -n "$pdo_cv_inc_path"; then
:
else
@@ -55636,7 +54928,7 @@
EOF
-printf "%s\n" "#define COMPILE_DL_PDO_MYSQL 1" >>confdefs.h
+printf '%s\n' "#define COMPILE_DL_PDO_MYSQL 1" >>confdefs.h
fi
fi
@@ -55820,7 +55112,7 @@
php_with_pdo_odbc=no
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for ODBC v3 support for PDO" >&5
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for ODBC v3 support for PDO" >&5
printf %s "checking for ODBC v3 support for PDO... " >&6; }
# Check whether --with-pdo-odbc was given.
@@ -55858,8 +55150,8 @@
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ext_output" >&5
-printf "%s\n" "$ext_output" >&6; }
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $ext_output" >&5
+printf '%s\n' "$ext_output" >&6; }
@@ -55868,7 +55160,7 @@
if test "$PHP_PDO_ODBC" != "no"; then
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for PDO includes" >&5
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for PDO includes" >&5
printf %s "checking for PDO includes... " >&6; }
if test ${pdo_cv_inc_path+y}
then :
@@ -55883,8 +55175,8 @@
;;
esac
fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $pdo_cv_inc_path" >&5
-printf "%s\n" "$pdo_cv_inc_path" >&6; }
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $pdo_cv_inc_path" >&5
+printf '%s\n' "$pdo_cv_inc_path" >&6; }
if test -n "$pdo_cv_inc_path"; then
:
else
@@ -55892,7 +55184,7 @@
fi
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for selected PDO ODBC flavour" >&5
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for selected PDO ODBC flavour" >&5
printf %s "checking for selected PDO ODBC flavour... " >&6; }
pdo_odbc_flavour="$(echo $PHP_PDO_ODBC | cut -d, -f1)"
@@ -55936,21 +55228,21 @@
esac
if test -n "$pdo_odbc_pkgconfig_module"; then
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $pdo_odbc_flavour using pkg-config" >&5
-printf "%s\n" "$pdo_odbc_flavour using pkg-config" >&6; }
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $pdo_odbc_flavour using pkg-config" >&5
+printf '%s\n' "$pdo_odbc_flavour using pkg-config" >&6; }
pkg_failed=no
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $pdo_odbc_pkgconfig_module" >&5
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for $pdo_odbc_pkgconfig_module" >&5
printf %s "checking for $pdo_odbc_pkgconfig_module... " >&6; }
if test -n "$PDO_ODBC_CFLAGS"; then
pkg_cv_PDO_ODBC_CFLAGS="$PDO_ODBC_CFLAGS"
elif test -n "$PKG_CONFIG"; then
if test -n "$PKG_CONFIG" && \
- { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"\$pdo_odbc_pkgconfig_module\""; } >&5
+ { { printf '%s\n' "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"\$pdo_odbc_pkgconfig_module\""; } >&5
($PKG_CONFIG --exists --print-errors "$pdo_odbc_pkgconfig_module") 2>&5
ac_status=$?
- printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ printf '%s\n' "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
test $ac_status = 0; }; then
pkg_cv_PDO_ODBC_CFLAGS=`$PKG_CONFIG --cflags "$pdo_odbc_pkgconfig_module" 2>/dev/null`
test "x$?" != "x0" && pkg_failed=yes
@@ -55964,10 +55256,10 @@
pkg_cv_PDO_ODBC_LIBS="$PDO_ODBC_LIBS"
elif test -n "$PKG_CONFIG"; then
if test -n "$PKG_CONFIG" && \
- { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"\$pdo_odbc_pkgconfig_module\""; } >&5
+ { { printf '%s\n' "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"\$pdo_odbc_pkgconfig_module\""; } >&5
($PKG_CONFIG --exists --print-errors "$pdo_odbc_pkgconfig_module") 2>&5
ac_status=$?
- printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ printf '%s\n' "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
test $ac_status = 0; }; then
pkg_cv_PDO_ODBC_LIBS=`$PKG_CONFIG --libs "$pdo_odbc_pkgconfig_module" 2>/dev/null`
test "x$?" != "x0" && pkg_failed=yes
@@ -55981,8 +55273,8 @@
if test $pkg_failed = yes; then
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
-printf "%s\n" "no" >&6; }
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf '%s\n' "no" >&6; }
if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then
_pkg_short_errors_supported=yes
@@ -56008,10 +55300,10 @@
and PDO_ODBC_LIBS to avoid the need to call pkg-config.
See the pkg-config man page for more details." "$LINENO" 5
elif test $pkg_failed = untried; then
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
-printf "%s\n" "no" >&6; }
- { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in '$ac_pwd':" >&5
-printf "%s\n" "$as_me: error: in '$ac_pwd':" >&2;}
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf '%s\n' "no" >&6; }
+ { { printf '%s\n' "$as_me:${as_lineno-$LINENO}: error: in '$ac_pwd':" >&5
+printf '%s\n' "$as_me: error: in '$ac_pwd':" >&2;}
as_fn_error $? "The pkg-config script could not be found or is too old. Make sure it
is in your PATH or set the PKG_CONFIG environment variable to the full
path to pkg-config.
@@ -56025,8 +55317,8 @@
else
PDO_ODBC_CFLAGS=$pkg_cv_PDO_ODBC_CFLAGS
PDO_ODBC_LIBS=$pkg_cv_PDO_ODBC_LIBS
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-printf "%s\n" "yes" >&6; }
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+printf '%s\n' "yes" >&6; }
fi
else
@@ -56044,16 +55336,16 @@
esac
fi
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $pdo_odbc_flavour
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $pdo_odbc_flavour
libs $PDO_ODBC_LIBDIR,
headers $PDO_ODBC_INCDIR" >&5
-printf "%s\n" "$pdo_odbc_flavour
+printf '%s\n' "$pdo_odbc_flavour
libs $PDO_ODBC_LIBDIR,
headers $PDO_ODBC_INCDIR" >&6; }
if test ! -d "$PDO_ODBC_LIBDIR" ; then
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: library dir $PDO_ODBC_LIBDIR does not exist" >&5
-printf "%s\n" "$as_me: WARNING: library dir $PDO_ODBC_LIBDIR does not exist" >&2;}
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: WARNING: library dir $PDO_ODBC_LIBDIR does not exist" >&5
+printf '%s\n' "$as_me: WARNING: library dir $PDO_ODBC_LIBDIR does not exist" >&2;}
fi
PDO_ODBC_CFLAGS="$pdo_odbc_def_cflags -I$PDO_ODBC_INCDIR"
@@ -56177,8 +55469,8 @@
esac
done
- as_ac_Lib=`printf "%s\n" "ac_cv_lib_$pdo_odbc_def_lib""_SQLBindCol" | sed "$as_sed_sh"`
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for SQLBindCol in -l$pdo_odbc_def_lib" >&5
+ as_ac_Lib=`printf '%s\n' "ac_cv_lib_$pdo_odbc_def_lib""_SQLBindCol" | sed "$as_sed_sh"`
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for SQLBindCol in -l$pdo_odbc_def_lib" >&5
printf %s "checking for SQLBindCol in -l$pdo_odbc_def_lib... " >&6; }
if eval test \${$as_ac_Lib+y}
then :
@@ -56220,8 +55512,8 @@
esac
fi
eval ac_res=\$$as_ac_Lib
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
-printf "%s\n" "$ac_res" >&6; }
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
+printf '%s\n' "$ac_res" >&6; }
if eval test \"x\$"$as_ac_Lib"\" = x"yes"
then :
@@ -56345,8 +55637,8 @@
esac
done
- as_ac_Lib=`printf "%s\n" "ac_cv_lib_$pdo_odbc_def_lib""_SQLAllocHandle" | sed "$as_sed_sh"`
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for SQLAllocHandle in -l$pdo_odbc_def_lib" >&5
+ as_ac_Lib=`printf '%s\n' "ac_cv_lib_$pdo_odbc_def_lib""_SQLAllocHandle" | sed "$as_sed_sh"`
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for SQLAllocHandle in -l$pdo_odbc_def_lib" >&5
printf %s "checking for SQLAllocHandle in -l$pdo_odbc_def_lib... " >&6; }
if eval test \${$as_ac_Lib+y}
then :
@@ -56388,8 +55680,8 @@
esac
fi
eval ac_res=\$$as_ac_Lib
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
-printf "%s\n" "$ac_res" >&6; }
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
+printf '%s\n' "$ac_res" >&6; }
if eval test \"x\$"$as_ac_Lib"\" = x"yes"
then :
@@ -56402,8 +55694,8 @@
LDFLAGS=$save_old_LDFLAGS
ext_shared=$save_ext_shared
unset ac_cv_lib_$pdo_odbc_def_lib_SQLAllocHandle
- { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in '$ac_pwd':" >&5
-printf "%s\n" "$as_me: error: in '$ac_pwd':" >&2;}
+ { { printf '%s\n' "$as_me:${as_lineno-$LINENO}: error: in '$ac_pwd':" >&5
+printf '%s\n' "$as_me: error: in '$ac_pwd':" >&2;}
as_fn_error $? "
Your ODBC library does not appear to be ODBC 3 compatible.
You should consider using iODBC or unixODBC instead, and loading your
@@ -56421,8 +55713,8 @@
LDFLAGS=$save_old_LDFLAGS
ext_shared=$save_ext_shared
unset ac_cv_lib_$pdo_odbc_def_lib_SQLBindCol
- { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in '$ac_pwd':" >&5
-printf "%s\n" "$as_me: error: in '$ac_pwd':" >&2;}
+ { { printf '%s\n' "$as_me:${as_lineno-$LINENO}: error: in '$ac_pwd':" >&5
+printf '%s\n' "$as_me: error: in '$ac_pwd':" >&2;}
as_fn_error $? "Your ODBC library does not exist or there was an error.
See 'config.log' for more details" "$LINENO" 5; }
;;
@@ -56589,7 +55881,7 @@
OLD_CPPFLAGS=$CPPFLAGS
CPPFLAGS="$CPPFLAGS $PDO_ODBC_CFLAGS"
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for cli0cli.h" >&5
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for cli0cli.h" >&5
printf %s "checking for cli0cli.h... " >&6; }
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
@@ -56607,19 +55899,19 @@
php_pdo_odbc_have_header=yes
-printf "%s\n" "#define HAVE_CLI0CLI_H 1" >>confdefs.h
+printf '%s\n' "#define HAVE_CLI0CLI_H 1" >>confdefs.h
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-printf "%s\n" "yes" >&6; }
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+printf '%s\n' "yes" >&6; }
else case e in #(
- e) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
-printf "%s\n" "no" >&6; } ;;
+ e) { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf '%s\n' "no" >&6; } ;;
esac
fi
rm -f conftest.err conftest.i conftest.$ac_ext
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for cli0core.h" >&5
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for cli0core.h" >&5
printf %s "checking for cli0core.h... " >&6; }
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
@@ -56637,19 +55929,19 @@
php_pdo_odbc_have_header=yes
-printf "%s\n" "#define HAVE_CLI0CORE_H 1" >>confdefs.h
+printf '%s\n' "#define HAVE_CLI0CORE_H 1" >>confdefs.h
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-printf "%s\n" "yes" >&6; }
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+printf '%s\n' "yes" >&6; }
else case e in #(
- e) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
-printf "%s\n" "no" >&6; } ;;
+ e) { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf '%s\n' "no" >&6; } ;;
esac
fi
rm -f conftest.err conftest.i conftest.$ac_ext
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for cli0defs.h" >&5
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for cli0defs.h" >&5
printf %s "checking for cli0defs.h... " >&6; }
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
@@ -56667,19 +55959,19 @@
php_pdo_odbc_have_header=yes
-printf "%s\n" "#define HAVE_CLI0DEFS_H 1" >>confdefs.h
+printf '%s\n' "#define HAVE_CLI0DEFS_H 1" >>confdefs.h
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-printf "%s\n" "yes" >&6; }
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+printf '%s\n' "yes" >&6; }
else case e in #(
- e) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
-printf "%s\n" "no" >&6; } ;;
+ e) { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf '%s\n' "no" >&6; } ;;
esac
fi
rm -f conftest.err conftest.i conftest.$ac_ext
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for cli0env.h" >&5
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for cli0env.h" >&5
printf %s "checking for cli0env.h... " >&6; }
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
@@ -56697,19 +55989,19 @@
php_pdo_odbc_have_header=yes
-printf "%s\n" "#define HAVE_CLI0ENV_H 1" >>confdefs.h
+printf '%s\n' "#define HAVE_CLI0ENV_H 1" >>confdefs.h
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-printf "%s\n" "yes" >&6; }
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+printf '%s\n' "yes" >&6; }
else case e in #(
- e) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
-printf "%s\n" "no" >&6; } ;;
+ e) { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf '%s\n' "no" >&6; } ;;
esac
fi
rm -f conftest.err conftest.i conftest.$ac_ext
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for cli0ext.h" >&5
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for cli0ext.h" >&5
printf %s "checking for cli0ext.h... " >&6; }
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
@@ -56727,19 +56019,19 @@
php_pdo_odbc_have_header=yes
-printf "%s\n" "#define HAVE_CLI0EXT_H 1" >>confdefs.h
+printf '%s\n' "#define HAVE_CLI0EXT_H 1" >>confdefs.h
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-printf "%s\n" "yes" >&6; }
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+printf '%s\n' "yes" >&6; }
else case e in #(
- e) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
-printf "%s\n" "no" >&6; } ;;
+ e) { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf '%s\n' "no" >&6; } ;;
esac
fi
rm -f conftest.err conftest.i conftest.$ac_ext
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for iodbc.h" >&5
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for iodbc.h" >&5
printf %s "checking for iodbc.h... " >&6; }
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
@@ -56757,19 +56049,19 @@
php_pdo_odbc_have_header=yes
-printf "%s\n" "#define HAVE_IODBC_H 1" >>confdefs.h
+printf '%s\n' "#define HAVE_IODBC_H 1" >>confdefs.h
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-printf "%s\n" "yes" >&6; }
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+printf '%s\n' "yes" >&6; }
else case e in #(
- e) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
-printf "%s\n" "no" >&6; } ;;
+ e) { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf '%s\n' "no" >&6; } ;;
esac
fi
rm -f conftest.err conftest.i conftest.$ac_ext
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for isql.h" >&5
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for isql.h" >&5
printf %s "checking for isql.h... " >&6; }
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
@@ -56787,19 +56079,19 @@
php_pdo_odbc_have_header=yes
-printf "%s\n" "#define HAVE_ISQL_H 1" >>confdefs.h
+printf '%s\n' "#define HAVE_ISQL_H 1" >>confdefs.h
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-printf "%s\n" "yes" >&6; }
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+printf '%s\n' "yes" >&6; }
else case e in #(
- e) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
-printf "%s\n" "no" >&6; } ;;
+ e) { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf '%s\n' "no" >&6; } ;;
esac
fi
rm -f conftest.err conftest.i conftest.$ac_ext
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for isqlext.h" >&5
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for isqlext.h" >&5
printf %s "checking for isqlext.h... " >&6; }
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
@@ -56817,19 +56109,19 @@
php_pdo_odbc_have_header=yes
-printf "%s\n" "#define HAVE_ISQLEXT_H 1" >>confdefs.h
+printf '%s\n' "#define HAVE_ISQLEXT_H 1" >>confdefs.h
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-printf "%s\n" "yes" >&6; }
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+printf '%s\n' "yes" >&6; }
else case e in #(
- e) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
-printf "%s\n" "no" >&6; } ;;
+ e) { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf '%s\n' "no" >&6; } ;;
esac
fi
rm -f conftest.err conftest.i conftest.$ac_ext
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for LibraryManager.h" >&5
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for LibraryManager.h" >&5
printf %s "checking for LibraryManager.h... " >&6; }
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
@@ -56847,19 +56139,19 @@
php_pdo_odbc_have_header=yes
-printf "%s\n" "#define HAVE_LIBRARYMANAGER_H 1" >>confdefs.h
+printf '%s\n' "#define HAVE_LIBRARYMANAGER_H 1" >>confdefs.h
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-printf "%s\n" "yes" >&6; }
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+printf '%s\n' "yes" >&6; }
else case e in #(
- e) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
-printf "%s\n" "no" >&6; } ;;
+ e) { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf '%s\n' "no" >&6; } ;;
esac
fi
rm -f conftest.err conftest.i conftest.$ac_ext
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for odbc.h" >&5
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for odbc.h" >&5
printf %s "checking for odbc.h... " >&6; }
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
@@ -56877,19 +56169,19 @@
php_pdo_odbc_have_header=yes
-printf "%s\n" "#define HAVE_ODBC_H 1" >>confdefs.h
+printf '%s\n' "#define HAVE_ODBC_H 1" >>confdefs.h
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-printf "%s\n" "yes" >&6; }
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+printf '%s\n' "yes" >&6; }
else case e in #(
- e) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
-printf "%s\n" "no" >&6; } ;;
+ e) { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf '%s\n' "no" >&6; } ;;
esac
fi
rm -f conftest.err conftest.i conftest.$ac_ext
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for sql.h" >&5
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for sql.h" >&5
printf %s "checking for sql.h... " >&6; }
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
@@ -56907,19 +56199,19 @@
php_pdo_odbc_have_header=yes
-printf "%s\n" "#define HAVE_SQL_H 1" >>confdefs.h
+printf '%s\n' "#define HAVE_SQL_H 1" >>confdefs.h
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-printf "%s\n" "yes" >&6; }
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+printf '%s\n' "yes" >&6; }
else case e in #(
- e) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
-printf "%s\n" "no" >&6; } ;;
+ e) { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf '%s\n' "no" >&6; } ;;
esac
fi
rm -f conftest.err conftest.i conftest.$ac_ext
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for sqlcli1.h" >&5
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for sqlcli1.h" >&5
printf %s "checking for sqlcli1.h... " >&6; }
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
@@ -56937,19 +56229,19 @@
php_pdo_odbc_have_header=yes
-printf "%s\n" "#define HAVE_SQLCLI1_H 1" >>confdefs.h
+printf '%s\n' "#define HAVE_SQLCLI1_H 1" >>confdefs.h
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-printf "%s\n" "yes" >&6; }
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+printf '%s\n' "yes" >&6; }
else case e in #(
- e) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
-printf "%s\n" "no" >&6; } ;;
+ e) { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf '%s\n' "no" >&6; } ;;
esac
fi
rm -f conftest.err conftest.i conftest.$ac_ext
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for sqlext.h" >&5
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for sqlext.h" >&5
printf %s "checking for sqlext.h... " >&6; }
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
@@ -56967,19 +56259,19 @@
php_pdo_odbc_have_header=yes
-printf "%s\n" "#define HAVE_SQLEXT_H 1" >>confdefs.h
+printf '%s\n' "#define HAVE_SQLEXT_H 1" >>confdefs.h
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-printf "%s\n" "yes" >&6; }
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+printf '%s\n' "yes" >&6; }
else case e in #(
- e) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
-printf "%s\n" "no" >&6; } ;;
+ e) { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf '%s\n' "no" >&6; } ;;
esac
fi
rm -f conftest.err conftest.i conftest.$ac_ext
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for sqltypes.h" >&5
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for sqltypes.h" >&5
printf %s "checking for sqltypes.h... " >&6; }
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
@@ -56997,19 +56289,19 @@
php_pdo_odbc_have_header=yes
-printf "%s\n" "#define HAVE_SQLTYPES_H 1" >>confdefs.h
+printf '%s\n' "#define HAVE_SQLTYPES_H 1" >>confdefs.h
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-printf "%s\n" "yes" >&6; }
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+printf '%s\n' "yes" >&6; }
else case e in #(
- e) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
-printf "%s\n" "no" >&6; } ;;
+ e) { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf '%s\n' "no" >&6; } ;;
esac
fi
rm -f conftest.err conftest.i conftest.$ac_ext
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for sqlucode.h" >&5
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for sqlucode.h" >&5
printf %s "checking for sqlucode.h... " >&6; }
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
@@ -57027,19 +56319,19 @@
php_pdo_odbc_have_header=yes
-printf "%s\n" "#define HAVE_SQLUCODE_H 1" >>confdefs.h
+printf '%s\n' "#define HAVE_SQLUCODE_H 1" >>confdefs.h
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-printf "%s\n" "yes" >&6; }
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+printf '%s\n' "yes" >&6; }
else case e in #(
- e) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
-printf "%s\n" "no" >&6; } ;;
+ e) { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf '%s\n' "no" >&6; } ;;
esac
fi
rm -f conftest.err conftest.i conftest.$ac_ext
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for sqlunix.h" >&5
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for sqlunix.h" >&5
printf %s "checking for sqlunix.h... " >&6; }
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
@@ -57057,19 +56349,19 @@
php_pdo_odbc_have_header=yes
-printf "%s\n" "#define HAVE_SQLUNIX_H 1" >>confdefs.h
+printf '%s\n' "#define HAVE_SQLUNIX_H 1" >>confdefs.h
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-printf "%s\n" "yes" >&6; }
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+printf '%s\n' "yes" >&6; }
else case e in #(
- e) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
-printf "%s\n" "no" >&6; } ;;
+ e) { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf '%s\n' "no" >&6; } ;;
esac
fi
rm -f conftest.err conftest.i conftest.$ac_ext
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for udbcext.h" >&5
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for udbcext.h" >&5
printf %s "checking for udbcext.h... " >&6; }
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
@@ -57087,14 +56379,14 @@
php_pdo_odbc_have_header=yes
-printf "%s\n" "#define HAVE_UDBCEXT_H 1" >>confdefs.h
+printf '%s\n' "#define HAVE_UDBCEXT_H 1" >>confdefs.h
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-printf "%s\n" "yes" >&6; }
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+printf '%s\n' "yes" >&6; }
else case e in #(
- e) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
-printf "%s\n" "no" >&6; } ;;
+ e) { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf '%s\n' "no" >&6; } ;;
esac
fi
rm -f conftest.err conftest.i conftest.$ac_ext
@@ -57110,7 +56402,7 @@
fi
-printf "%s\n" "#define PDO_ODBC_TYPE \"$pdo_odbc_flavour\"" >>confdefs.h
+printf '%s\n' "#define PDO_ODBC_TYPE \"$pdo_odbc_flavour\"" >>confdefs.h
@@ -57248,7 +56540,7 @@
EOF
-printf "%s\n" "#define COMPILE_DL_PDO_ODBC 1" >>confdefs.h
+printf '%s\n' "#define COMPILE_DL_PDO_ODBC 1" >>confdefs.h
fi
fi
@@ -57396,7 +56688,7 @@
php_with_pdo_pgsql=no
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for PostgreSQL support for PDO" >&5
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for PostgreSQL support for PDO" >&5
printf %s "checking for PostgreSQL support for PDO... " >&6; }
# Check whether --with-pdo-pgsql was given.
@@ -57434,8 +56726,8 @@
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ext_output" >&5
-printf "%s\n" "$ext_output" >&6; }
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $ext_output" >&5
+printf '%s\n' "$ext_output" >&6; }
@@ -57452,17 +56744,17 @@
then :
pkg_failed=no
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for libpq >= 10.0" >&5
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for libpq >= 10.0" >&5
printf %s "checking for libpq >= 10.0... " >&6; }
if test -n "$PGSQL_CFLAGS"; then
pkg_cv_PGSQL_CFLAGS="$PGSQL_CFLAGS"
elif test -n "$PKG_CONFIG"; then
if test -n "$PKG_CONFIG" && \
- { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libpq >= 10.0\""; } >&5
+ { { printf '%s\n' "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libpq >= 10.0\""; } >&5
($PKG_CONFIG --exists --print-errors "libpq >= 10.0") 2>&5
ac_status=$?
- printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ printf '%s\n' "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
test $ac_status = 0; }; then
pkg_cv_PGSQL_CFLAGS=`$PKG_CONFIG --cflags "libpq >= 10.0" 2>/dev/null`
test "x$?" != "x0" && pkg_failed=yes
@@ -57476,10 +56768,10 @@
pkg_cv_PGSQL_LIBS="$PGSQL_LIBS"
elif test -n "$PKG_CONFIG"; then
if test -n "$PKG_CONFIG" && \
- { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libpq >= 10.0\""; } >&5
+ { { printf '%s\n' "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libpq >= 10.0\""; } >&5
($PKG_CONFIG --exists --print-errors "libpq >= 10.0") 2>&5
ac_status=$?
- printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ printf '%s\n' "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
test $ac_status = 0; }; then
pkg_cv_PGSQL_LIBS=`$PKG_CONFIG --libs "libpq >= 10.0" 2>/dev/null`
test "x$?" != "x0" && pkg_failed=yes
@@ -57493,8 +56785,8 @@
if test $pkg_failed = yes; then
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
-printf "%s\n" "no" >&6; }
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf '%s\n' "no" >&6; }
if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then
_pkg_short_errors_supported=yes
@@ -57511,21 +56803,21 @@
found_pgsql=no
elif test $pkg_failed = untried; then
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
-printf "%s\n" "no" >&6; }
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf '%s\n' "no" >&6; }
found_pgsql=no
else
PGSQL_CFLAGS=$pkg_cv_PGSQL_CFLAGS
PGSQL_LIBS=$pkg_cv_PGSQL_LIBS
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-printf "%s\n" "yes" >&6; }
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+printf '%s\n' "yes" >&6; }
found_pgsql=yes
fi
fi
if test "x$found_pgsql" = xno
then :
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for pg_config" >&5
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for pg_config" >&5
printf %s "checking for pg_config... " >&6; }
for i in $pgsql_dir $pgsql_dir/bin /usr/local/pgsql/bin /usr/local/bin /usr/bin ""; do
if test -x $i/pg_config
@@ -57536,8 +56828,8 @@
if ${PG_CONFIG:+false} :
then :
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: not found" >&5
-printf "%s\n" "not found" >&6; }
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: not found" >&5
+printf '%s\n' "not found" >&6; }
if ${pgsql_dir:+false} :
then :
pgsql_search_paths="/usr /usr/local /usr/local/pgsql"
@@ -57563,8 +56855,8 @@
done
else case e in #(
- e) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $PG_CONFIG" >&5
-printf "%s\n" "$PG_CONFIG" >&6; }
+ e) { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $PG_CONFIG" >&5
+printf '%s\n' "$PG_CONFIG" >&6; }
PGSQL_INCLUDE=$($PG_CONFIG --includedir)
PGSQL_LIBDIR=$($PG_CONFIG --libdir)
;;
@@ -57856,7 +57148,7 @@
esac
done
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for PQencryptPasswordConn in -lpq" >&5
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for PQencryptPasswordConn in -lpq" >&5
printf %s "checking for PQencryptPasswordConn in -lpq... " >&6; }
if test ${ac_cv_lib_pq_PQencryptPasswordConn+y}
then :
@@ -57897,8 +57189,8 @@
LIBS=$ac_check_lib_save_LIBS ;;
esac
fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_pq_PQencryptPasswordConn" >&5
-printf "%s\n" "$ac_cv_lib_pq_PQencryptPasswordConn" >&6; }
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_pq_PQencryptPasswordConn" >&5
+printf '%s\n' "$ac_cv_lib_pq_PQencryptPasswordConn" >&6; }
if test "x$ac_cv_lib_pq_PQencryptPasswordConn" = xyes
then :
@@ -57911,8 +57203,8 @@
LDFLAGS=$save_old_LDFLAGS
ext_shared=$save_ext_shared
unset ac_cv_lib_pq_PQencryptPasswordConn
- { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in '$ac_pwd':" >&5
-printf "%s\n" "$as_me: error: in '$ac_pwd':" >&2;}
+ { { printf '%s\n' "$as_me:${as_lineno-$LINENO}: error: in '$ac_pwd':" >&5
+printf '%s\n' "$as_me: error: in '$ac_pwd':" >&2;}
as_fn_error $? "PostgreSQL check failed: libpq 10.0 or later is required.
See 'config.log' for more details" "$LINENO" 5; }
;;
@@ -57921,8 +57213,8 @@
else case e in #(
- e) { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in '$ac_pwd':" >&5
-printf "%s\n" "$as_me: error: in '$ac_pwd':" >&2;}
+ e) { { printf '%s\n' "$as_me:${as_lineno-$LINENO}: error: in '$ac_pwd':" >&5
+printf '%s\n' "$as_me: error: in '$ac_pwd':" >&2;}
as_fn_error $? "Cannot find libpq-fe.h or pq library (libpq). Please specify the correct
PostgreSQL installation path with environment variables PGSQL_CFLAGS and
PGSQL_LIBS or provide the PostgreSQL installation directory.
@@ -57935,7 +57227,7 @@
-printf "%s\n" "#define HAVE_PDO_PGSQL 1" >>confdefs.h
+printf '%s\n' "#define HAVE_PDO_PGSQL 1" >>confdefs.h
@@ -58056,7 +57348,7 @@
esac
done
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for PQresultMemorySize in -lpq" >&5
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for PQresultMemorySize in -lpq" >&5
printf %s "checking for PQresultMemorySize in -lpq... " >&6; }
if test ${ac_cv_lib_pq_PQresultMemorySize+y}
then :
@@ -58097,15 +57389,15 @@
LIBS=$ac_check_lib_save_LIBS ;;
esac
fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_pq_PQresultMemorySize" >&5
-printf "%s\n" "$ac_cv_lib_pq_PQresultMemorySize" >&6; }
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_pq_PQresultMemorySize" >&5
+printf '%s\n' "$ac_cv_lib_pq_PQresultMemorySize" >&6; }
if test "x$ac_cv_lib_pq_PQresultMemorySize" = xyes
then :
LDFLAGS=$save_old_LDFLAGS
ext_shared=$save_ext_shared
-printf "%s\n" "#define HAVE_PG_RESULT_MEMORY_SIZE 1" >>confdefs.h
+printf '%s\n' "#define HAVE_PG_RESULT_MEMORY_SIZE 1" >>confdefs.h
else case e in #(
@@ -58237,7 +57529,7 @@
esac
done
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for PQclosePrepared in -lpq" >&5
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for PQclosePrepared in -lpq" >&5
printf %s "checking for PQclosePrepared in -lpq... " >&6; }
if test ${ac_cv_lib_pq_PQclosePrepared+y}
then :
@@ -58278,15 +57570,15 @@
LIBS=$ac_check_lib_save_LIBS ;;
esac
fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_pq_PQclosePrepared" >&5
-printf "%s\n" "$ac_cv_lib_pq_PQclosePrepared" >&6; }
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_pq_PQclosePrepared" >&5
+printf '%s\n' "$ac_cv_lib_pq_PQclosePrepared" >&6; }
if test "x$ac_cv_lib_pq_PQclosePrepared" = xyes
then :
LDFLAGS=$save_old_LDFLAGS
ext_shared=$save_ext_shared
-printf "%s\n" "#define HAVE_PQCLOSEPREPARED 1" >>confdefs.h
+printf '%s\n' "#define HAVE_PQCLOSEPREPARED 1" >>confdefs.h
else case e in #(
@@ -58418,7 +57710,7 @@
esac
done
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for PQclosePortal in -lpq" >&5
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for PQclosePortal in -lpq" >&5
printf %s "checking for PQclosePortal in -lpq... " >&6; }
if test ${ac_cv_lib_pq_PQclosePortal+y}
then :
@@ -58459,15 +57751,15 @@
LIBS=$ac_check_lib_save_LIBS ;;
esac
fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_pq_PQclosePortal" >&5
-printf "%s\n" "$ac_cv_lib_pq_PQclosePortal" >&6; }
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_pq_PQclosePortal" >&5
+printf '%s\n' "$ac_cv_lib_pq_PQclosePortal" >&6; }
if test "x$ac_cv_lib_pq_PQclosePortal" = xyes
then :
LDFLAGS=$save_old_LDFLAGS
ext_shared=$save_ext_shared
-printf "%s\n" "#define HAVE_PQCLOSEPORTAL 1" >>confdefs.h
+printf '%s\n' "#define HAVE_PQCLOSEPORTAL 1" >>confdefs.h
else case e in #(
@@ -58482,7 +57774,7 @@
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for PDO includes" >&5
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for PDO includes" >&5
printf %s "checking for PDO includes... " >&6; }
if test ${pdo_cv_inc_path+y}
then :
@@ -58497,8 +57789,8 @@
;;
esac
fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $pdo_cv_inc_path" >&5
-printf "%s\n" "$pdo_cv_inc_path" >&6; }
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $pdo_cv_inc_path" >&5
+printf '%s\n' "$pdo_cv_inc_path" >&6; }
if test -n "$pdo_cv_inc_path"; then
:
else
@@ -58641,7 +57933,7 @@
EOF
-printf "%s\n" "#define COMPILE_DL_PDO_PGSQL 1" >>confdefs.h
+printf '%s\n' "#define COMPILE_DL_PDO_PGSQL 1" >>confdefs.h
fi
fi
@@ -58791,7 +58083,7 @@
php_with_pdo_sqlite=$PHP_PDO
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for sqlite 3 support for PDO" >&5
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for sqlite 3 support for PDO" >&5
printf %s "checking for sqlite 3 support for PDO... " >&6; }
# Check whether --with-pdo-sqlite was given.
@@ -58829,15 +58121,15 @@
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ext_output" >&5
-printf "%s\n" "$ext_output" >&6; }
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $ext_output" >&5
+printf '%s\n' "$ext_output" >&6; }
if test "$PHP_PDO_SQLITE" != "no"; then
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for PDO includes" >&5
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for PDO includes" >&5
printf %s "checking for PDO includes... " >&6; }
if test ${pdo_cv_inc_path+y}
then :
@@ -58852,8 +58144,8 @@
;;
esac
fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $pdo_cv_inc_path" >&5
-printf "%s\n" "$pdo_cv_inc_path" >&6; }
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $pdo_cv_inc_path" >&5
+printf '%s\n' "$pdo_cv_inc_path" >&6; }
if test -n "$pdo_cv_inc_path"; then
:
else
@@ -58864,17 +58156,17 @@
pkg_failed=no
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for sqlite3 >= 3.7.7" >&5
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for sqlite3 >= 3.7.7" >&5
printf %s "checking for sqlite3 >= 3.7.7... " >&6; }
if test -n "$SQLITE_CFLAGS"; then
pkg_cv_SQLITE_CFLAGS="$SQLITE_CFLAGS"
elif test -n "$PKG_CONFIG"; then
if test -n "$PKG_CONFIG" && \
- { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"sqlite3 >= 3.7.7\""; } >&5
+ { { printf '%s\n' "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"sqlite3 >= 3.7.7\""; } >&5
($PKG_CONFIG --exists --print-errors "sqlite3 >= 3.7.7") 2>&5
ac_status=$?
- printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ printf '%s\n' "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
test $ac_status = 0; }; then
pkg_cv_SQLITE_CFLAGS=`$PKG_CONFIG --cflags "sqlite3 >= 3.7.7" 2>/dev/null`
test "x$?" != "x0" && pkg_failed=yes
@@ -58888,10 +58180,10 @@
pkg_cv_SQLITE_LIBS="$SQLITE_LIBS"
elif test -n "$PKG_CONFIG"; then
if test -n "$PKG_CONFIG" && \
- { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"sqlite3 >= 3.7.7\""; } >&5
+ { { printf '%s\n' "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"sqlite3 >= 3.7.7\""; } >&5
($PKG_CONFIG --exists --print-errors "sqlite3 >= 3.7.7") 2>&5
ac_status=$?
- printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ printf '%s\n' "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
test $ac_status = 0; }; then
pkg_cv_SQLITE_LIBS=`$PKG_CONFIG --libs "sqlite3 >= 3.7.7" 2>/dev/null`
test "x$?" != "x0" && pkg_failed=yes
@@ -58905,8 +58197,8 @@
if test $pkg_failed = yes; then
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
-printf "%s\n" "no" >&6; }
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf '%s\n' "no" >&6; }
if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then
_pkg_short_errors_supported=yes
@@ -58932,10 +58224,10 @@
and SQLITE_LIBS to avoid the need to call pkg-config.
See the pkg-config man page for more details." "$LINENO" 5
elif test $pkg_failed = untried; then
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
-printf "%s\n" "no" >&6; }
- { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in '$ac_pwd':" >&5
-printf "%s\n" "$as_me: error: in '$ac_pwd':" >&2;}
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf '%s\n' "no" >&6; }
+ { { printf '%s\n' "$as_me:${as_lineno-$LINENO}: error: in '$ac_pwd':" >&5
+printf '%s\n' "$as_me: error: in '$ac_pwd':" >&2;}
as_fn_error $? "The pkg-config script could not be found or is too old. Make sure it
is in your PATH or set the PKG_CONFIG environment variable to the full
path to pkg-config.
@@ -58949,8 +58241,8 @@
else
SQLITE_CFLAGS=$pkg_cv_SQLITE_CFLAGS
SQLITE_LIBS=$pkg_cv_SQLITE_LIBS
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-printf "%s\n" "yes" >&6; }
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+printf '%s\n' "yes" >&6; }
for ac_i in $SQLITE_CFLAGS; do
@@ -59229,7 +58521,7 @@
esac
done
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for sqlite3_close_v2 in -lsqlite3" >&5
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for sqlite3_close_v2 in -lsqlite3" >&5
printf %s "checking for sqlite3_close_v2 in -lsqlite3... " >&6; }
if test ${ac_cv_lib_sqlite3_sqlite3_close_v2+y}
then :
@@ -59270,15 +58562,15 @@
LIBS=$ac_check_lib_save_LIBS ;;
esac
fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_sqlite3_sqlite3_close_v2" >&5
-printf "%s\n" "$ac_cv_lib_sqlite3_sqlite3_close_v2" >&6; }
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_sqlite3_sqlite3_close_v2" >&5
+printf '%s\n' "$ac_cv_lib_sqlite3_sqlite3_close_v2" >&6; }
if test "x$ac_cv_lib_sqlite3_sqlite3_close_v2" = xyes
then :
LDFLAGS=$save_old_LDFLAGS
ext_shared=$save_ext_shared
-printf "%s\n" "#define HAVE_SQLITE3_CLOSE_V2 1" >>confdefs.h
+printf '%s\n' "#define HAVE_SQLITE3_CLOSE_V2 1" >>confdefs.h
else case e in #(
@@ -59410,7 +58702,7 @@
esac
done
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for sqlite3_column_table_name in -lsqlite3" >&5
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for sqlite3_column_table_name in -lsqlite3" >&5
printf %s "checking for sqlite3_column_table_name in -lsqlite3... " >&6; }
if test ${ac_cv_lib_sqlite3_sqlite3_column_table_name+y}
then :
@@ -59451,15 +58743,15 @@
LIBS=$ac_check_lib_save_LIBS ;;
esac
fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_sqlite3_sqlite3_column_table_name" >&5
-printf "%s\n" "$ac_cv_lib_sqlite3_sqlite3_column_table_name" >&6; }
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_sqlite3_sqlite3_column_table_name" >&5
+printf '%s\n' "$ac_cv_lib_sqlite3_sqlite3_column_table_name" >&6; }
if test "x$ac_cv_lib_sqlite3_sqlite3_column_table_name" = xyes
then :
LDFLAGS=$save_old_LDFLAGS
ext_shared=$save_ext_shared
-printf "%s\n" "#define HAVE_SQLITE3_COLUMN_TABLE_NAME 1" >>confdefs.h
+printf '%s\n' "#define HAVE_SQLITE3_COLUMN_TABLE_NAME 1" >>confdefs.h
else case e in #(
@@ -59591,7 +58883,7 @@
esac
done
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for sqlite3_load_extension in -lsqlite3" >&5
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for sqlite3_load_extension in -lsqlite3" >&5
printf %s "checking for sqlite3_load_extension in -lsqlite3... " >&6; }
if test ${ac_cv_lib_sqlite3_sqlite3_load_extension+y}
then :
@@ -59632,8 +58924,8 @@
LIBS=$ac_check_lib_save_LIBS ;;
esac
fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_sqlite3_sqlite3_load_extension" >&5
-printf "%s\n" "$ac_cv_lib_sqlite3_sqlite3_load_extension" >&6; }
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_sqlite3_sqlite3_load_extension" >&5
+printf '%s\n' "$ac_cv_lib_sqlite3_sqlite3_load_extension" >&6; }
if test "x$ac_cv_lib_sqlite3_sqlite3_load_extension" = xyes
then :
@@ -59647,7 +58939,7 @@
ext_shared=$save_ext_shared
unset ac_cv_lib_sqlite3_sqlite3_load_extension
-printf "%s\n" "#define PDO_SQLITE_OMIT_LOAD_EXTENSION 1" >>confdefs.h
+printf '%s\n' "#define PDO_SQLITE_OMIT_LOAD_EXTENSION 1" >>confdefs.h
;;
esac
@@ -59792,7 +59084,7 @@
EOF
-printf "%s\n" "#define COMPILE_DL_PDO_SQLITE 1" >>confdefs.h
+printf '%s\n' "#define COMPILE_DL_PDO_SQLITE 1" >>confdefs.h
fi
fi
@@ -59941,9 +59233,357 @@
+php_enable_pdo=yes
+
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking whether to enable PDO support" >&5
+printf %s "checking whether to enable PDO support... " >&6; }
+# Check whether --enable-pdo was given.
+if test ${enable_pdo+y}
+then :
+ enableval=$enable_pdo; PHP_PDO=$enableval
+else case e in #(
+ e)
+ PHP_PDO=yes
+ test "$PHP_ENABLE_ALL" && PHP_PDO=$PHP_ENABLE_ALL
+ ;;
+esac
+fi
+
+
+
+ext_output="yes, shared"
+ext_shared=yes
+case $PHP_PDO in
+shared,*)
+ PHP_PDO=$(echo "$PHP_PDO"|$SED 's/^shared,//')
+ ;;
+shared)
+ PHP_PDO=yes
+ ;;
+no)
+ ext_output=no
+ ext_shared=no
+ ;;
+*)
+ ext_output=yes
+ ext_shared=no
+ ;;
+esac
+
+
+
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $ext_output" >&5
+printf '%s\n' "$ext_output" >&6; }
+
+
+
+
+if test "$PHP_PDO" != "no"; then
+ PHP_PDO=yes
+
+
+ ext_builddir=ext/pdo
+ ext_srcdir=$abs_srcdir/ext/pdo
+ ext_dir=ext/pdo
+
+ ac_extra=
+
+ if test "$ext_shared" != "shared" && test "$ext_shared" != "yes" && test "" != "cli"; then
+ PHP_PDO_SHARED=no
+
+
+ case $ext_dir in
+ "") ac_srcdir="$abs_srcdir/"; unset ac_bdir; ac_inc="-I. -I$abs_srcdir" ;;
+ /*) ac_srcdir=$(echo "$ext_dir"|cut -c 2-)"/"; ac_bdir=$ac_srcdir; ac_inc="-I$ac_bdir -I$abs_srcdir/$ac_bdir" ;;
+ *) ac_srcdir="$abs_srcdir/$ext_dir/"; ac_bdir="$ext_dir/"; ac_inc="-I$ac_bdir -I$ac_srcdir" ;;
+ esac
+
+
+
+ b_c_pre=$php_c_pre
+ b_cxx_pre=$php_cxx_pre
+ b_c_meta=$php_c_meta
+ b_cxx_meta=$php_cxx_meta
+ b_c_post=$php_c_post
+ b_cxx_post=$php_cxx_post
+ b_lo=$php_lo
+
+
+ old_IFS=$IFS
+ for ac_src in pdo.c pdo_dbh.c pdo_stmt.c pdo_sql_parser.c pdo_sqlstate.c; do
+
+ IFS=.
+ set $ac_src
+ ac_obj=$1
+ IFS=$old_IFS
+
+ PHP_GLOBAL_OBJS="$PHP_GLOBAL_OBJS $ac_bdir$ac_obj.lo"
+
+ case $ac_src in
+ *.c) ac_comp="$b_c_pre $ac_inc $b_c_meta $ac_extra -c $ac_srcdir$ac_src -o $ac_bdir$ac_obj.$b_lo $b_c_post" ;;
+ *.s) ac_comp="$b_c_pre $ac_inc $b_c_meta $ac_extra -c $ac_srcdir$ac_src -o $ac_bdir$ac_obj.$b_lo $b_c_post" ;;
+ *.S) ac_comp="$b_c_pre $ac_inc $b_c_meta $ac_extra -c $ac_srcdir$ac_src -o $ac_bdir$ac_obj.$b_lo $b_c_post" ;;
+ *.cpp|*.cc|*.cxx) ac_comp="$b_cxx_pre $ac_inc $b_cxx_meta $ac_extra -c $ac_srcdir$ac_src -o $ac_bdir$ac_obj.$b_lo $b_cxx_post" ;;
+ esac
+
+ ac_comp="$ac_comp -MMD -MF $ac_bdir$ac_obj.dep -MT $ac_bdir$ac_obj.lo"
+
+ cat >>Makefile.objects<>Makefile.objects<>Makefile.objects<>confdefs.h
+
+ fi
+ fi
+
+ if test "$ext_shared" != "shared" && test "$ext_shared" != "yes" && test "" = "cli"; then
+ PHP_PDO_SHARED=no
+ case "$PHP_SAPI" in
+ cgi|embed|phpdbg)
+
+
+ case $ext_dir in
+ "") ac_srcdir="$abs_srcdir/"; unset ac_bdir; ac_inc="-I. -I$abs_srcdir" ;;
+ /*) ac_srcdir=$(echo "$ext_dir"|cut -c 2-)"/"; ac_bdir=$ac_srcdir; ac_inc="-I$ac_bdir -I$abs_srcdir/$ac_bdir" ;;
+ *) ac_srcdir="$abs_srcdir/$ext_dir/"; ac_bdir="$ext_dir/"; ac_inc="-I$ac_bdir -I$ac_srcdir" ;;
+ esac
+
+
+
+ b_c_pre=$php_c_pre
+ b_cxx_pre=$php_cxx_pre
+ b_c_meta=$php_c_meta
+ b_cxx_meta=$php_cxx_meta
+ b_c_post=$php_c_post
+ b_cxx_post=$php_cxx_post
+ b_lo=$php_lo
+
+
+ old_IFS=$IFS
+ for ac_src in pdo.c pdo_dbh.c pdo_stmt.c pdo_sql_parser.c pdo_sqlstate.c; do
+
+ IFS=.
+ set $ac_src
+ ac_obj=$1
+ IFS=$old_IFS
+
+ PHP_GLOBAL_OBJS="$PHP_GLOBAL_OBJS $ac_bdir$ac_obj.lo"
+
+ case $ac_src in
+ *.c) ac_comp="$b_c_pre $ac_inc $b_c_meta $ac_extra -c $ac_srcdir$ac_src -o $ac_bdir$ac_obj.$b_lo $b_c_post" ;;
+ *.s) ac_comp="$b_c_pre $ac_inc $b_c_meta $ac_extra -c $ac_srcdir$ac_src -o $ac_bdir$ac_obj.$b_lo $b_c_post" ;;
+ *.S) ac_comp="$b_c_pre $ac_inc $b_c_meta $ac_extra -c $ac_srcdir$ac_src -o $ac_bdir$ac_obj.$b_lo $b_c_post" ;;
+ *.cpp|*.cc|*.cxx) ac_comp="$b_cxx_pre $ac_inc $b_cxx_meta $ac_extra -c $ac_srcdir$ac_src -o $ac_bdir$ac_obj.$b_lo $b_cxx_post" ;;
+ esac
+
+ ac_comp="$ac_comp -MMD -MF $ac_bdir$ac_obj.dep -MT $ac_bdir$ac_obj.lo"
+
+ cat >>Makefile.objects<>Makefile.objects<> Makefile.fragments
+
+fi
+
+
+
+
+
php_with_pgsql=no
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for PostgreSQL support" >&5
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for PostgreSQL support" >&5
printf %s "checking for PostgreSQL support... " >&6; }
# Check whether --with-pgsql was given.
@@ -59981,8 +59621,8 @@
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ext_output" >&5
-printf "%s\n" "$ext_output" >&6; }
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $ext_output" >&5
+printf '%s\n' "$ext_output" >&6; }
@@ -59999,17 +59639,17 @@
then :
pkg_failed=no
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for libpq >= 10.0" >&5
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for libpq >= 10.0" >&5
printf %s "checking for libpq >= 10.0... " >&6; }
if test -n "$PGSQL_CFLAGS"; then
pkg_cv_PGSQL_CFLAGS="$PGSQL_CFLAGS"
elif test -n "$PKG_CONFIG"; then
if test -n "$PKG_CONFIG" && \
- { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libpq >= 10.0\""; } >&5
+ { { printf '%s\n' "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libpq >= 10.0\""; } >&5
($PKG_CONFIG --exists --print-errors "libpq >= 10.0") 2>&5
ac_status=$?
- printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ printf '%s\n' "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
test $ac_status = 0; }; then
pkg_cv_PGSQL_CFLAGS=`$PKG_CONFIG --cflags "libpq >= 10.0" 2>/dev/null`
test "x$?" != "x0" && pkg_failed=yes
@@ -60023,10 +59663,10 @@
pkg_cv_PGSQL_LIBS="$PGSQL_LIBS"
elif test -n "$PKG_CONFIG"; then
if test -n "$PKG_CONFIG" && \
- { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libpq >= 10.0\""; } >&5
+ { { printf '%s\n' "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libpq >= 10.0\""; } >&5
($PKG_CONFIG --exists --print-errors "libpq >= 10.0") 2>&5
ac_status=$?
- printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ printf '%s\n' "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
test $ac_status = 0; }; then
pkg_cv_PGSQL_LIBS=`$PKG_CONFIG --libs "libpq >= 10.0" 2>/dev/null`
test "x$?" != "x0" && pkg_failed=yes
@@ -60040,8 +59680,8 @@
if test $pkg_failed = yes; then
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
-printf "%s\n" "no" >&6; }
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf '%s\n' "no" >&6; }
if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then
_pkg_short_errors_supported=yes
@@ -60058,21 +59698,21 @@
found_pgsql=no
elif test $pkg_failed = untried; then
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
-printf "%s\n" "no" >&6; }
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf '%s\n' "no" >&6; }
found_pgsql=no
else
PGSQL_CFLAGS=$pkg_cv_PGSQL_CFLAGS
PGSQL_LIBS=$pkg_cv_PGSQL_LIBS
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-printf "%s\n" "yes" >&6; }
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+printf '%s\n' "yes" >&6; }
found_pgsql=yes
fi
fi
if test "x$found_pgsql" = xno
then :
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for pg_config" >&5
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for pg_config" >&5
printf %s "checking for pg_config... " >&6; }
for i in $pgsql_dir $pgsql_dir/bin /usr/local/pgsql/bin /usr/local/bin /usr/bin ""; do
if test -x $i/pg_config
@@ -60083,8 +59723,8 @@
if ${PG_CONFIG:+false} :
then :
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: not found" >&5
-printf "%s\n" "not found" >&6; }
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: not found" >&5
+printf '%s\n' "not found" >&6; }
if ${pgsql_dir:+false} :
then :
pgsql_search_paths="/usr /usr/local /usr/local/pgsql"
@@ -60110,8 +59750,8 @@
done
else case e in #(
- e) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $PG_CONFIG" >&5
-printf "%s\n" "$PG_CONFIG" >&6; }
+ e) { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $PG_CONFIG" >&5
+printf '%s\n' "$PG_CONFIG" >&6; }
PGSQL_INCLUDE=$($PG_CONFIG --includedir)
PGSQL_LIBDIR=$($PG_CONFIG --libdir)
;;
@@ -60403,7 +60043,7 @@
esac
done
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for PQencryptPasswordConn in -lpq" >&5
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for PQencryptPasswordConn in -lpq" >&5
printf %s "checking for PQencryptPasswordConn in -lpq... " >&6; }
if test ${ac_cv_lib_pq_PQencryptPasswordConn+y}
then :
@@ -60444,8 +60084,8 @@
LIBS=$ac_check_lib_save_LIBS ;;
esac
fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_pq_PQencryptPasswordConn" >&5
-printf "%s\n" "$ac_cv_lib_pq_PQencryptPasswordConn" >&6; }
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_pq_PQencryptPasswordConn" >&5
+printf '%s\n' "$ac_cv_lib_pq_PQencryptPasswordConn" >&6; }
if test "x$ac_cv_lib_pq_PQencryptPasswordConn" = xyes
then :
@@ -60458,8 +60098,8 @@
LDFLAGS=$save_old_LDFLAGS
ext_shared=$save_ext_shared
unset ac_cv_lib_pq_PQencryptPasswordConn
- { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in '$ac_pwd':" >&5
-printf "%s\n" "$as_me: error: in '$ac_pwd':" >&2;}
+ { { printf '%s\n' "$as_me:${as_lineno-$LINENO}: error: in '$ac_pwd':" >&5
+printf '%s\n' "$as_me: error: in '$ac_pwd':" >&2;}
as_fn_error $? "PostgreSQL check failed: libpq 10.0 or later is required.
See 'config.log' for more details" "$LINENO" 5; }
;;
@@ -60468,8 +60108,8 @@
else case e in #(
- e) { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in '$ac_pwd':" >&5
-printf "%s\n" "$as_me: error: in '$ac_pwd':" >&2;}
+ e) { { printf '%s\n' "$as_me:${as_lineno-$LINENO}: error: in '$ac_pwd':" >&5
+printf '%s\n' "$as_me: error: in '$ac_pwd':" >&2;}
as_fn_error $? "Cannot find libpq-fe.h or pq library (libpq). Please specify the correct
PostgreSQL installation path with environment variables PGSQL_CFLAGS and
PGSQL_LIBS or provide the PostgreSQL installation directory.
@@ -60482,7 +60122,7 @@
-printf "%s\n" "#define HAVE_PGSQL 1" >>confdefs.h
+printf '%s\n' "#define HAVE_PGSQL 1" >>confdefs.h
@@ -60603,7 +60243,7 @@
esac
done
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for PQresultMemorySize in -lpq" >&5
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for PQresultMemorySize in -lpq" >&5
printf %s "checking for PQresultMemorySize in -lpq... " >&6; }
if test ${ac_cv_lib_pq_PQresultMemorySize+y}
then :
@@ -60644,15 +60284,15 @@
LIBS=$ac_check_lib_save_LIBS ;;
esac
fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_pq_PQresultMemorySize" >&5
-printf "%s\n" "$ac_cv_lib_pq_PQresultMemorySize" >&6; }
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_pq_PQresultMemorySize" >&5
+printf '%s\n' "$ac_cv_lib_pq_PQresultMemorySize" >&6; }
if test "x$ac_cv_lib_pq_PQresultMemorySize" = xyes
then :
LDFLAGS=$save_old_LDFLAGS
ext_shared=$save_ext_shared
-printf "%s\n" "#define HAVE_PG_RESULT_MEMORY_SIZE 1" >>confdefs.h
+printf '%s\n' "#define HAVE_PG_RESULT_MEMORY_SIZE 1" >>confdefs.h
else case e in #(
@@ -60783,7 +60423,7 @@
esac
done
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for PQchangePassword in -lpq" >&5
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for PQchangePassword in -lpq" >&5
printf %s "checking for PQchangePassword in -lpq... " >&6; }
if test ${ac_cv_lib_pq_PQchangePassword+y}
then :
@@ -60824,15 +60464,15 @@
LIBS=$ac_check_lib_save_LIBS ;;
esac
fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_pq_PQchangePassword" >&5
-printf "%s\n" "$ac_cv_lib_pq_PQchangePassword" >&6; }
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_pq_PQchangePassword" >&5
+printf '%s\n' "$ac_cv_lib_pq_PQchangePassword" >&6; }
if test "x$ac_cv_lib_pq_PQchangePassword" = xyes
then :
LDFLAGS=$save_old_LDFLAGS
ext_shared=$save_ext_shared
-printf "%s\n" "#define HAVE_PG_CHANGE_PASSWORD 1" >>confdefs.h
+printf '%s\n' "#define HAVE_PG_CHANGE_PASSWORD 1" >>confdefs.h
else case e in #(
@@ -60963,7 +60603,7 @@
esac
done
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for PQsocketPoll in -lpq" >&5
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for PQsocketPoll in -lpq" >&5
printf %s "checking for PQsocketPoll in -lpq... " >&6; }
if test ${ac_cv_lib_pq_PQsocketPoll+y}
then :
@@ -61004,15 +60644,15 @@
LIBS=$ac_check_lib_save_LIBS ;;
esac
fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_pq_PQsocketPoll" >&5
-printf "%s\n" "$ac_cv_lib_pq_PQsocketPoll" >&6; }
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_pq_PQsocketPoll" >&5
+printf '%s\n' "$ac_cv_lib_pq_PQsocketPoll" >&6; }
if test "x$ac_cv_lib_pq_PQsocketPoll" = xyes
then :
LDFLAGS=$save_old_LDFLAGS
ext_shared=$save_ext_shared
-printf "%s\n" "#define HAVE_PG_SOCKET_POLL 1" >>confdefs.h
+printf '%s\n' "#define HAVE_PG_SOCKET_POLL 1" >>confdefs.h
else case e in #(
@@ -61031,7 +60671,7 @@
ac_fn_check_decl "$LINENO" "PGRES_TUPLES_CHUNK" "ac_cv_have_decl_PGRES_TUPLES_CHUNK" "#include
-" "$ac_c_undeclared_builtin_options" "CFLAGS"
+" "$ac_c_undeclared_builtin_options$ac_c_future_darwin_options" "CFLAGS"
if test "x$ac_cv_have_decl_PGRES_TUPLES_CHUNK" = xyes
then :
ac_have_decl=1
@@ -61039,7 +60679,7 @@
e) ac_have_decl=0 ;;
esac
fi
-printf "%s\n" "#define HAVE_DECL_PGRES_TUPLES_CHUNK $ac_have_decl" >>confdefs.h
+printf '%s\n' "#define HAVE_DECL_PGRES_TUPLES_CHUNK $ac_have_decl" >>confdefs.h
if test $ac_have_decl = 1
then :
@@ -61160,7 +60800,7 @@
esac
done
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for PQsetChunkedRowsMode in -lpq" >&5
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for PQsetChunkedRowsMode in -lpq" >&5
printf %s "checking for PQsetChunkedRowsMode in -lpq... " >&6; }
if test ${ac_cv_lib_pq_PQsetChunkedRowsMode+y}
then :
@@ -61201,15 +60841,15 @@
LIBS=$ac_check_lib_save_LIBS ;;
esac
fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_pq_PQsetChunkedRowsMode" >&5
-printf "%s\n" "$ac_cv_lib_pq_PQsetChunkedRowsMode" >&6; }
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_pq_PQsetChunkedRowsMode" >&5
+printf '%s\n' "$ac_cv_lib_pq_PQsetChunkedRowsMode" >&6; }
if test "x$ac_cv_lib_pq_PQsetChunkedRowsMode" = xyes
then :
LDFLAGS=$save_old_LDFLAGS
ext_shared=$save_ext_shared
-printf "%s\n" "#define HAVE_PG_SET_CHUNKED_ROWS_SIZE 1" >>confdefs.h
+printf '%s\n' "#define HAVE_PG_SET_CHUNKED_ROWS_SIZE 1" >>confdefs.h
else case e in #(
@@ -61225,7 +60865,7 @@
fi
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if PGVerbosity enum has PQERRORS_SQLSTATE" >&5
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking if PGVerbosity enum has PQERRORS_SQLSTATE" >&5
printf %s "checking if PGVerbosity enum has PQERRORS_SQLSTATE... " >&6; }
if test ${php_cv_enum_pgverbosity_pqerrors_sqlstate+y}
then :
@@ -61252,12 +60892,12 @@
rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext ;;
esac
fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $php_cv_enum_pgverbosity_pqerrors_sqlstate" >&5
-printf "%s\n" "$php_cv_enum_pgverbosity_pqerrors_sqlstate" >&6; }
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $php_cv_enum_pgverbosity_pqerrors_sqlstate" >&5
+printf '%s\n' "$php_cv_enum_pgverbosity_pqerrors_sqlstate" >&6; }
if test "x$php_cv_enum_pgverbosity_pqerrors_sqlstate" = xyes
then :
-printf "%s\n" "#define HAVE_PQERRORS_SQLSTATE 1" >>confdefs.h
+printf '%s\n' "#define HAVE_PQERRORS_SQLSTATE 1" >>confdefs.h
fi
@@ -61398,7 +61038,7 @@
EOF
-printf "%s\n" "#define COMPILE_DL_PGSQL 1" >>confdefs.h
+printf '%s\n' "#define COMPILE_DL_PGSQL 1" >>confdefs.h
fi
fi
@@ -61543,7 +61183,7 @@
php_enable_phar=yes
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for phar archive support" >&5
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for phar archive support" >&5
printf %s "checking for phar archive support... " >&6; }
# Check whether --enable-phar was given.
if test ${enable_phar+y}
@@ -61580,8 +61220,8 @@
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ext_output" >&5
-printf "%s\n" "$ext_output" >&6; }
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $ext_output" >&5
+printf '%s\n' "$ext_output" >&6; }
@@ -61722,7 +61362,7 @@
EOF
-printf "%s\n" "#define COMPILE_DL_PHAR 1" >>confdefs.h
+printf '%s\n' "#define COMPILE_DL_PHAR 1" >>confdefs.h
fi
fi
@@ -61841,25 +61481,25 @@
fi
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for phar openssl support" >&5
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for phar openssl support" >&5
printf %s "checking for phar openssl support... " >&6; }
if test "x$PHP_OPENSSL_SHARED" = xyes
then :
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no (shared openssl)" >&5
-printf "%s\n" "no (shared openssl)" >&6; }
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: no (shared openssl)" >&5
+printf '%s\n' "no (shared openssl)" >&6; }
else case e in #(
e) if test "x$PHP_OPENSSL" = xyes
then :
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-printf "%s\n" "yes" >&6; }
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+printf '%s\n' "yes" >&6; }
-printf "%s\n" "#define PHAR_HAVE_OPENSSL 1" >>confdefs.h
+printf '%s\n' "#define PHAR_HAVE_OPENSSL 1" >>confdefs.h
else case e in #(
- e) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
-printf "%s\n" "no" >&6; } ;;
+ e) { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf '%s\n' "no" >&6; } ;;
esac
fi ;;
esac
@@ -61937,7 +61577,7 @@
php_enable_posix=yes
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether to enable POSIX-like functions" >&5
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking whether to enable POSIX-like functions" >&5
printf %s "checking whether to enable POSIX-like functions... " >&6; }
# Check whether --enable-posix was given.
if test ${enable_posix+y}
@@ -61974,15 +61614,15 @@
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ext_output" >&5
-printf "%s\n" "$ext_output" >&6; }
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $ext_output" >&5
+printf '%s\n' "$ext_output" >&6; }
if test "$PHP_POSIX" = "yes"; then
-printf "%s\n" "#define HAVE_POSIX 1" >>confdefs.h
+printf '%s\n' "#define HAVE_POSIX 1" >>confdefs.h
ext_builddir=ext/posix
@@ -62119,7 +61759,7 @@
EOF
-printf "%s\n" "#define COMPILE_DL_POSIX 1" >>confdefs.h
+printf '%s\n' "#define COMPILE_DL_POSIX 1" >>confdefs.h
fi
fi
@@ -62241,85 +61881,85 @@
ac_fn_c_check_func "$LINENO" "ctermid" "ac_cv_func_ctermid"
if test "x$ac_cv_func_ctermid" = xyes
then :
- printf "%s\n" "#define HAVE_CTERMID 1" >>confdefs.h
+ printf '%s\n' "#define HAVE_CTERMID 1" >>confdefs.h
fi
ac_fn_c_check_func "$LINENO" "eaccess" "ac_cv_func_eaccess"
if test "x$ac_cv_func_eaccess" = xyes
then :
- printf "%s\n" "#define HAVE_EACCESS 1" >>confdefs.h
+ printf '%s\n' "#define HAVE_EACCESS 1" >>confdefs.h
fi
ac_fn_c_check_func "$LINENO" "getgrgid_r" "ac_cv_func_getgrgid_r"
if test "x$ac_cv_func_getgrgid_r" = xyes
then :
- printf "%s\n" "#define HAVE_GETGRGID_R 1" >>confdefs.h
+ printf '%s\n' "#define HAVE_GETGRGID_R 1" >>confdefs.h
fi
ac_fn_c_check_func "$LINENO" "getgroups" "ac_cv_func_getgroups"
if test "x$ac_cv_func_getgroups" = xyes
then :
- printf "%s\n" "#define HAVE_GETGROUPS 1" >>confdefs.h
+ printf '%s\n' "#define HAVE_GETGROUPS 1" >>confdefs.h
fi
ac_fn_c_check_func "$LINENO" "getpgid" "ac_cv_func_getpgid"
if test "x$ac_cv_func_getpgid" = xyes
then :
- printf "%s\n" "#define HAVE_GETPGID 1" >>confdefs.h
+ printf '%s\n' "#define HAVE_GETPGID 1" >>confdefs.h
fi
ac_fn_c_check_func "$LINENO" "getrlimit" "ac_cv_func_getrlimit"
if test "x$ac_cv_func_getrlimit" = xyes
then :
- printf "%s\n" "#define HAVE_GETRLIMIT 1" >>confdefs.h
+ printf '%s\n' "#define HAVE_GETRLIMIT 1" >>confdefs.h
fi
ac_fn_c_check_func "$LINENO" "getsid" "ac_cv_func_getsid"
if test "x$ac_cv_func_getsid" = xyes
then :
- printf "%s\n" "#define HAVE_GETSID 1" >>confdefs.h
+ printf '%s\n' "#define HAVE_GETSID 1" >>confdefs.h
fi
ac_fn_c_check_func "$LINENO" "initgroups" "ac_cv_func_initgroups"
if test "x$ac_cv_func_initgroups" = xyes
then :
- printf "%s\n" "#define HAVE_INITGROUPS 1" >>confdefs.h
+ printf '%s\n' "#define HAVE_INITGROUPS 1" >>confdefs.h
fi
ac_fn_c_check_func "$LINENO" "mkfifo" "ac_cv_func_mkfifo"
if test "x$ac_cv_func_mkfifo" = xyes
then :
- printf "%s\n" "#define HAVE_MKFIFO 1" >>confdefs.h
+ printf '%s\n' "#define HAVE_MKFIFO 1" >>confdefs.h
fi
ac_fn_c_check_func "$LINENO" "mknod" "ac_cv_func_mknod"
if test "x$ac_cv_func_mknod" = xyes
then :
- printf "%s\n" "#define HAVE_MKNOD 1" >>confdefs.h
+ printf '%s\n' "#define HAVE_MKNOD 1" >>confdefs.h
fi
ac_fn_c_check_func "$LINENO" "setegid" "ac_cv_func_setegid"
if test "x$ac_cv_func_setegid" = xyes
then :
- printf "%s\n" "#define HAVE_SETEGID 1" >>confdefs.h
+ printf '%s\n' "#define HAVE_SETEGID 1" >>confdefs.h
fi
ac_fn_c_check_func "$LINENO" "seteuid" "ac_cv_func_seteuid"
if test "x$ac_cv_func_seteuid" = xyes
then :
- printf "%s\n" "#define HAVE_SETEUID 1" >>confdefs.h
+ printf '%s\n' "#define HAVE_SETEUID 1" >>confdefs.h
fi
ac_fn_c_check_func "$LINENO" "setrlimit" "ac_cv_func_setrlimit"
if test "x$ac_cv_func_setrlimit" = xyes
then :
- printf "%s\n" "#define HAVE_SETRLIMIT 1" >>confdefs.h
+ printf '%s\n' "#define HAVE_SETRLIMIT 1" >>confdefs.h
fi
ac_fn_c_check_func "$LINENO" "setsid" "ac_cv_func_setsid"
if test "x$ac_cv_func_setsid" = xyes
then :
- printf "%s\n" "#define HAVE_SETSID 1" >>confdefs.h
+ printf '%s\n' "#define HAVE_SETSID 1" >>confdefs.h
fi
@@ -62330,7 +61970,7 @@
ac_fn_c_check_func "$LINENO" "makedev" "ac_cv_func_makedev"
if test "x$ac_cv_func_makedev" = xyes
then :
- printf "%s\n" "#define HAVE_MAKEDEV 1" >>confdefs.h
+ printf '%s\n' "#define HAVE_MAKEDEV 1" >>confdefs.h
else case e in #(
e) ac_fn_check_decl "$LINENO" "makedev" "ac_cv_have_decl_makedev" "
@@ -62341,10 +61981,10 @@
# include
#endif
-" "$ac_c_undeclared_builtin_options" "CFLAGS"
+" "$ac_c_undeclared_builtin_options$ac_c_future_darwin_options" "CFLAGS"
if test "x$ac_cv_have_decl_makedev" = xyes
then :
- printf "%s\n" "#define HAVE_MAKEDEV 1" >>confdefs.h
+ printf '%s\n' "#define HAVE_MAKEDEV 1" >>confdefs.h
fi ;;
esac
@@ -62359,20 +61999,20 @@
e) ac_fn_c_check_func "$LINENO" "pathconf" "ac_cv_func_pathconf"
if test "x$ac_cv_func_pathconf" = xyes
then :
- printf "%s\n" "#define HAVE_PATHCONF 1" >>confdefs.h
+ printf '%s\n' "#define HAVE_PATHCONF 1" >>confdefs.h
fi
ac_fn_c_check_func "$LINENO" "fpathconf" "ac_cv_func_fpathconf"
if test "x$ac_cv_func_fpathconf" = xyes
then :
- printf "%s\n" "#define HAVE_FPATHCONF 1" >>confdefs.h
+ printf '%s\n' "#define HAVE_FPATHCONF 1" >>confdefs.h
fi
;;
esac
fi
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for working ttyname_r() implementation" >&5
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for working ttyname_r() implementation" >&5
printf %s "checking for working ttyname_r() implementation... " >&6; }
if test ${php_cv_func_ttyname_r+y}
then :
@@ -62418,16 +62058,16 @@
;;
esac
fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $php_cv_func_ttyname_r" >&5
-printf "%s\n" "$php_cv_func_ttyname_r" >&6; }
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $php_cv_func_ttyname_r" >&5
+printf '%s\n' "$php_cv_func_ttyname_r" >&6; }
if test "x$php_cv_func_ttyname_r" = xyes
then :
-printf "%s\n" "#define HAVE_TTYNAME_R 1" >>confdefs.h
+printf '%s\n' "#define HAVE_TTYNAME_R 1" >>confdefs.h
else case e in #(
- e) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: posix_ttyname() will be thread-unsafe" >&5
-printf "%s\n" "$as_me: posix_ttyname() will be thread-unsafe" >&6;} ;;
+ e) { printf '%s\n' "$as_me:${as_lineno-$LINENO}: posix_ttyname() will be thread-unsafe" >&5
+printf '%s\n' "$as_me: posix_ttyname() will be thread-unsafe" >&6;} ;;
esac
fi
@@ -62441,7 +62081,7 @@
if test "x$ac_cv_member_struct_utsname_domainname" = xyes
then :
-printf "%s\n" "#define HAVE_STRUCT_UTSNAME_DOMAINNAME 1" >>confdefs.h
+printf '%s\n' "#define HAVE_STRUCT_UTSNAME_DOMAINNAME 1" >>confdefs.h
fi
@@ -62451,11 +62091,11 @@
-ac_fn_check_decl "$LINENO" "arc4random_buf" "ac_cv_have_decl_arc4random_buf" "$ac_includes_default" "$ac_c_undeclared_builtin_options" "CFLAGS"
+ac_fn_check_decl "$LINENO" "arc4random_buf" "ac_cv_have_decl_arc4random_buf" "$ac_includes_default" "$ac_c_undeclared_builtin_options$ac_c_future_darwin_options" "CFLAGS"
if test "x$ac_cv_have_decl_arc4random_buf" = xyes
then :
-printf "%s\n" "#define HAVE_ARC4RANDOM_BUF 1" >>confdefs.h
+printf '%s\n' "#define HAVE_ARC4RANDOM_BUF 1" >>confdefs.h
fi
@@ -62466,7 +62106,7 @@
"
if test "x$ac_cv_header_CommonCrypto_CommonRandom_h" = xyes
then :
- printf "%s\n" "#define HAVE_COMMONCRYPTO_COMMONRANDOM_H 1" >>confdefs.h
+ printf '%s\n' "#define HAVE_COMMONCRYPTO_COMMONRANDOM_H 1" >>confdefs.h
fi
@@ -62474,7 +62114,7 @@
ac_fn_c_check_func "$LINENO" "getrandom" "ac_cv_func_getrandom"
if test "x$ac_cv_func_getrandom" = xyes
then :
- printf "%s\n" "#define HAVE_GETRANDOM 1" >>confdefs.h
+ printf '%s\n' "#define HAVE_GETRANDOM 1" >>confdefs.h
fi
@@ -62614,7 +62254,7 @@
EOF
-printf "%s\n" "#define COMPILE_DL_RANDOM 1" >>confdefs.h
+printf '%s\n' "#define COMPILE_DL_RANDOM 1" >>confdefs.h
fi
fi
@@ -62756,7 +62396,7 @@
php_with_libedit=no
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for libedit readline replacement" >&5
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for libedit readline replacement" >&5
printf %s "checking for libedit readline replacement... " >&6; }
# Check whether --with-libedit was given.
@@ -62794,8 +62434,8 @@
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ext_output" >&5
-printf "%s\n" "$ext_output" >&6; }
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $ext_output" >&5
+printf '%s\n' "$ext_output" >&6; }
@@ -62804,7 +62444,7 @@
php_with_readline=no
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for readline support" >&5
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for readline support" >&5
printf %s "checking for readline support... " >&6; }
# Check whether --with-readline was given.
@@ -62842,8 +62482,8 @@
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ext_output" >&5
-printf "%s\n" "$ext_output" >&6; }
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $ext_output" >&5
+printf '%s\n' "$ext_output" >&6; }
@@ -62900,7 +62540,7 @@
PHP_READLINE_LIBS=""
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for tgetent in -lncurses" >&5
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for tgetent in -lncurses" >&5
printf %s "checking for tgetent in -lncurses... " >&6; }
if test ${ac_cv_lib_ncurses_tgetent+y}
then :
@@ -62941,8 +62581,8 @@
LIBS=$ac_check_lib_save_LIBS ;;
esac
fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_ncurses_tgetent" >&5
-printf "%s\n" "$ac_cv_lib_ncurses_tgetent" >&6; }
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_ncurses_tgetent" >&5
+printf '%s\n' "$ac_cv_lib_ncurses_tgetent" >&6; }
if test "x$ac_cv_lib_ncurses_tgetent" = xyes
then :
@@ -62972,7 +62612,7 @@
PHP_READLINE_LIBS="$PHP_READLINE_LIBS -lncurses"
else case e in #(
- e) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for tgetent in -ltermcap" >&5
+ e) { printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for tgetent in -ltermcap" >&5
printf %s "checking for tgetent in -ltermcap... " >&6; }
if test ${ac_cv_lib_termcap_tgetent+y}
then :
@@ -63013,8 +62653,8 @@
LIBS=$ac_check_lib_save_LIBS ;;
esac
fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_termcap_tgetent" >&5
-printf "%s\n" "$ac_cv_lib_termcap_tgetent" >&6; }
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_termcap_tgetent" >&5
+printf '%s\n' "$ac_cv_lib_termcap_tgetent" >&6; }
if test "x$ac_cv_lib_termcap_tgetent" = xyes
then :
@@ -63168,7 +62808,7 @@
esac
done
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for readline in -lreadline" >&5
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for readline in -lreadline" >&5
printf %s "checking for readline in -lreadline... " >&6; }
if test ${ac_cv_lib_readline_readline+y}
then :
@@ -63209,8 +62849,8 @@
LIBS=$ac_check_lib_save_LIBS ;;
esac
fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_readline_readline" >&5
-printf "%s\n" "$ac_cv_lib_readline_readline" >&6; }
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_readline_readline" >&5
+printf '%s\n' "$ac_cv_lib_readline_readline" >&6; }
if test "x$ac_cv_lib_readline_readline" = xyes
then :
@@ -63327,8 +62967,8 @@
LDFLAGS=$save_old_LDFLAGS
ext_shared=$save_ext_shared
unset ac_cv_lib_readline_readline
- { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in '$ac_pwd':" >&5
-printf "%s\n" "$as_me: error: in '$ac_pwd':" >&2;}
+ { { printf '%s\n' "$as_me:${as_lineno-$LINENO}: error: in '$ac_pwd':" >&5
+printf '%s\n' "$as_me: error: in '$ac_pwd':" >&2;}
as_fn_error $? "The readline library not found.
See 'config.log' for more details" "$LINENO" 5; }
;;
@@ -63454,7 +63094,7 @@
esac
done
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for rl_callback_read_char in -lreadline" >&5
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for rl_callback_read_char in -lreadline" >&5
printf %s "checking for rl_callback_read_char in -lreadline... " >&6; }
if test ${ac_cv_lib_readline_rl_callback_read_char+y}
then :
@@ -63495,14 +63135,14 @@
LIBS=$ac_check_lib_save_LIBS ;;
esac
fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_readline_rl_callback_read_char" >&5
-printf "%s\n" "$ac_cv_lib_readline_rl_callback_read_char" >&6; }
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_readline_rl_callback_read_char" >&5
+printf '%s\n' "$ac_cv_lib_readline_rl_callback_read_char" >&6; }
if test "x$ac_cv_lib_readline_rl_callback_read_char" = xyes
then :
LDFLAGS=$save_old_LDFLAGS
ext_shared=$save_ext_shared
- printf "%s\n" "#define HAVE_RL_CALLBACK_READ_CHAR 1" >>confdefs.h
+ printf '%s\n' "#define HAVE_RL_CALLBACK_READ_CHAR 1" >>confdefs.h
else case e in #(
@@ -63634,7 +63274,7 @@
esac
done
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for rl_on_new_line in -lreadline" >&5
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for rl_on_new_line in -lreadline" >&5
printf %s "checking for rl_on_new_line in -lreadline... " >&6; }
if test ${ac_cv_lib_readline_rl_on_new_line+y}
then :
@@ -63675,14 +63315,14 @@
LIBS=$ac_check_lib_save_LIBS ;;
esac
fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_readline_rl_on_new_line" >&5
-printf "%s\n" "$ac_cv_lib_readline_rl_on_new_line" >&6; }
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_readline_rl_on_new_line" >&5
+printf '%s\n' "$ac_cv_lib_readline_rl_on_new_line" >&6; }
if test "x$ac_cv_lib_readline_rl_on_new_line" = xyes
then :
LDFLAGS=$save_old_LDFLAGS
ext_shared=$save_ext_shared
- printf "%s\n" "#define HAVE_RL_ON_NEW_LINE 1" >>confdefs.h
+ printf '%s\n' "#define HAVE_RL_ON_NEW_LINE 1" >>confdefs.h
else case e in #(
@@ -63814,7 +63454,7 @@
esac
done
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for rl_completion_matches in -lreadline" >&5
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for rl_completion_matches in -lreadline" >&5
printf %s "checking for rl_completion_matches in -lreadline... " >&6; }
if test ${ac_cv_lib_readline_rl_completion_matches+y}
then :
@@ -63855,14 +63495,14 @@
LIBS=$ac_check_lib_save_LIBS ;;
esac
fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_readline_rl_completion_matches" >&5
-printf "%s\n" "$ac_cv_lib_readline_rl_completion_matches" >&6; }
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_readline_rl_completion_matches" >&5
+printf '%s\n' "$ac_cv_lib_readline_rl_completion_matches" >&6; }
if test "x$ac_cv_lib_readline_rl_completion_matches" = xyes
then :
LDFLAGS=$save_old_LDFLAGS
ext_shared=$save_ext_shared
- printf "%s\n" "#define HAVE_RL_COMPLETION_MATCHES 1" >>confdefs.h
+ printf '%s\n' "#define HAVE_RL_COMPLETION_MATCHES 1" >>confdefs.h
else case e in #(
@@ -63887,13 +63527,13 @@
#include
#include
-" "$ac_c_undeclared_builtin_options" "CFLAGS"
+" "$ac_c_undeclared_builtin_options$ac_c_future_darwin_options" "CFLAGS"
if test "x$ac_cv_have_decl_rl_pending_input" = xyes
then :
else case e in #(
- e) { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in '$ac_pwd':" >&5
-printf "%s\n" "$as_me: error: in '$ac_pwd':" >&2;}
+ e) { { printf '%s\n' "$as_me:${as_lineno-$LINENO}: error: in '$ac_pwd':" >&5
+printf '%s\n' "$as_me: error: in '$ac_pwd':" >&2;}
as_fn_error $? "
Invalid readline installation detected. Try --with-libedit instead.
@@ -63905,20 +63545,20 @@
#include
#include
-" "$ac_c_undeclared_builtin_options" "CFLAGS"
+" "$ac_c_undeclared_builtin_options$ac_c_future_darwin_options" "CFLAGS"
if test "x$ac_cv_have_decl_rl_erase_empty_line" = xyes
then :
- printf "%s\n" "#define HAVE_ERASE_EMPTY_LINE 1" >>confdefs.h
+ printf '%s\n' "#define HAVE_ERASE_EMPTY_LINE 1" >>confdefs.h
fi
CFLAGS=$CFLAGS_SAVE
LDFLAGS=$LDFLAGS_SAVE
LIBS=$LIBS_SAVE
- printf "%s\n" "#define HAVE_HISTORY_LIST 1" >>confdefs.h
+ printf '%s\n' "#define HAVE_HISTORY_LIST 1" >>confdefs.h
-printf "%s\n" "#define HAVE_LIBREADLINE 1" >>confdefs.h
+printf '%s\n' "#define HAVE_LIBREADLINE 1" >>confdefs.h
elif test "$PHP_LIBEDIT" != "no"; then
@@ -63926,10 +63566,10 @@
then :
else case e in #(
- e) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: The libedit directory argument is not supported anymore, rely on pkg-config.
+ e) { printf '%s\n' "$as_me:${as_lineno-$LINENO}: WARNING: The libedit directory argument is not supported anymore, rely on pkg-config.
Replace '--with-libedit=$PHP_LIBEDIT' with '--with-libedit' and use
environment variables 'PKG_CONFIG_PATH', 'EDIT_LIBS', or 'EDIT_CFLAGS'." >&5
-printf "%s\n" "$as_me: WARNING: The libedit directory argument is not supported anymore, rely on pkg-config.
+printf '%s\n' "$as_me: WARNING: The libedit directory argument is not supported anymore, rely on pkg-config.
Replace '--with-libedit=$PHP_LIBEDIT' with '--with-libedit' and use
environment variables 'PKG_CONFIG_PATH', 'EDIT_LIBS', or 'EDIT_CFLAGS'." >&2;} ;;
esac
@@ -63937,17 +63577,17 @@
pkg_failed=no
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for libedit" >&5
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for libedit" >&5
printf %s "checking for libedit... " >&6; }
if test -n "$EDIT_CFLAGS"; then
pkg_cv_EDIT_CFLAGS="$EDIT_CFLAGS"
elif test -n "$PKG_CONFIG"; then
if test -n "$PKG_CONFIG" && \
- { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libedit\""; } >&5
+ { { printf '%s\n' "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libedit\""; } >&5
($PKG_CONFIG --exists --print-errors "libedit") 2>&5
ac_status=$?
- printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ printf '%s\n' "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
test $ac_status = 0; }; then
pkg_cv_EDIT_CFLAGS=`$PKG_CONFIG --cflags "libedit" 2>/dev/null`
test "x$?" != "x0" && pkg_failed=yes
@@ -63961,10 +63601,10 @@
pkg_cv_EDIT_LIBS="$EDIT_LIBS"
elif test -n "$PKG_CONFIG"; then
if test -n "$PKG_CONFIG" && \
- { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libedit\""; } >&5
+ { { printf '%s\n' "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libedit\""; } >&5
($PKG_CONFIG --exists --print-errors "libedit") 2>&5
ac_status=$?
- printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ printf '%s\n' "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
test $ac_status = 0; }; then
pkg_cv_EDIT_LIBS=`$PKG_CONFIG --libs "libedit" 2>/dev/null`
test "x$?" != "x0" && pkg_failed=yes
@@ -63978,8 +63618,8 @@
if test $pkg_failed = yes; then
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
-printf "%s\n" "no" >&6; }
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf '%s\n' "no" >&6; }
if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then
_pkg_short_errors_supported=yes
@@ -64005,10 +63645,10 @@
and EDIT_LIBS to avoid the need to call pkg-config.
See the pkg-config man page for more details." "$LINENO" 5
elif test $pkg_failed = untried; then
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
-printf "%s\n" "no" >&6; }
- { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in '$ac_pwd':" >&5
-printf "%s\n" "$as_me: error: in '$ac_pwd':" >&2;}
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf '%s\n' "no" >&6; }
+ { { printf '%s\n' "$as_me:${as_lineno-$LINENO}: error: in '$ac_pwd':" >&5
+printf '%s\n' "$as_me: error: in '$ac_pwd':" >&2;}
as_fn_error $? "The pkg-config script could not be found or is too old. Make sure it
is in your PATH or set the PKG_CONFIG environment variable to the full
path to pkg-config.
@@ -64022,8 +63662,8 @@
else
EDIT_CFLAGS=$pkg_cv_EDIT_CFLAGS
EDIT_LIBS=$pkg_cv_EDIT_LIBS
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-printf "%s\n" "yes" >&6; }
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+printf '%s\n' "yes" >&6; }
fi
@@ -64182,7 +63822,7 @@
done
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for tgetent in -lncurses" >&5
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for tgetent in -lncurses" >&5
printf %s "checking for tgetent in -lncurses... " >&6; }
if test ${ac_cv_lib_ncurses_tgetent+y}
then :
@@ -64223,8 +63863,8 @@
LIBS=$ac_check_lib_save_LIBS ;;
esac
fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_ncurses_tgetent" >&5
-printf "%s\n" "$ac_cv_lib_ncurses_tgetent" >&6; }
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_ncurses_tgetent" >&5
+printf '%s\n' "$ac_cv_lib_ncurses_tgetent" >&6; }
if test "x$ac_cv_lib_ncurses_tgetent" = xyes
then :
@@ -64251,7 +63891,7 @@
else case e in #(
- e) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for tgetent in -ltermcap" >&5
+ e) { printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for tgetent in -ltermcap" >&5
printf %s "checking for tgetent in -ltermcap... " >&6; }
if test ${ac_cv_lib_termcap_tgetent+y}
then :
@@ -64292,8 +63932,8 @@
LIBS=$ac_check_lib_save_LIBS ;;
esac
fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_termcap_tgetent" >&5
-printf "%s\n" "$ac_cv_lib_termcap_tgetent" >&6; }
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_termcap_tgetent" >&5
+printf '%s\n' "$ac_cv_lib_termcap_tgetent" >&6; }
if test "x$ac_cv_lib_termcap_tgetent" = xyes
then :
@@ -64443,7 +64083,7 @@
esac
done
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for readline in -ledit" >&5
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for readline in -ledit" >&5
printf %s "checking for readline in -ledit... " >&6; }
if test ${ac_cv_lib_edit_readline+y}
then :
@@ -64484,8 +64124,8 @@
LIBS=$ac_check_lib_save_LIBS ;;
esac
fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_edit_readline" >&5
-printf "%s\n" "$ac_cv_lib_edit_readline" >&6; }
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_edit_readline" >&5
+printf '%s\n' "$ac_cv_lib_edit_readline" >&6; }
if test "x$ac_cv_lib_edit_readline" = xyes
then :
@@ -64498,8 +64138,8 @@
LDFLAGS=$save_old_LDFLAGS
ext_shared=$save_ext_shared
unset ac_cv_lib_edit_readline
- { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in '$ac_pwd':" >&5
-printf "%s\n" "$as_me: error: in '$ac_pwd':" >&2;}
+ { { printf '%s\n' "$as_me:${as_lineno-$LINENO}: error: in '$ac_pwd':" >&5
+printf '%s\n' "$as_me: error: in '$ac_pwd':" >&2;}
as_fn_error $? "The edit library required by readline extension not found.
See 'config.log' for more details" "$LINENO" 5; }
;;
@@ -64625,7 +64265,7 @@
esac
done
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for rl_callback_read_char in -ledit" >&5
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for rl_callback_read_char in -ledit" >&5
printf %s "checking for rl_callback_read_char in -ledit... " >&6; }
if test ${ac_cv_lib_edit_rl_callback_read_char+y}
then :
@@ -64666,15 +64306,15 @@
LIBS=$ac_check_lib_save_LIBS ;;
esac
fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_edit_rl_callback_read_char" >&5
-printf "%s\n" "$ac_cv_lib_edit_rl_callback_read_char" >&6; }
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_edit_rl_callback_read_char" >&5
+printf '%s\n' "$ac_cv_lib_edit_rl_callback_read_char" >&6; }
if test "x$ac_cv_lib_edit_rl_callback_read_char" = xyes
then :
LDFLAGS=$save_old_LDFLAGS
ext_shared=$save_ext_shared
-printf "%s\n" "#define HAVE_RL_CALLBACK_READ_CHAR 1" >>confdefs.h
+printf '%s\n' "#define HAVE_RL_CALLBACK_READ_CHAR 1" >>confdefs.h
else case e in #(
@@ -64806,7 +64446,7 @@
esac
done
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for rl_on_new_line in -ledit" >&5
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for rl_on_new_line in -ledit" >&5
printf %s "checking for rl_on_new_line in -ledit... " >&6; }
if test ${ac_cv_lib_edit_rl_on_new_line+y}
then :
@@ -64847,15 +64487,15 @@
LIBS=$ac_check_lib_save_LIBS ;;
esac
fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_edit_rl_on_new_line" >&5
-printf "%s\n" "$ac_cv_lib_edit_rl_on_new_line" >&6; }
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_edit_rl_on_new_line" >&5
+printf '%s\n' "$ac_cv_lib_edit_rl_on_new_line" >&6; }
if test "x$ac_cv_lib_edit_rl_on_new_line" = xyes
then :
LDFLAGS=$save_old_LDFLAGS
ext_shared=$save_ext_shared
-printf "%s\n" "#define HAVE_RL_ON_NEW_LINE 1" >>confdefs.h
+printf '%s\n' "#define HAVE_RL_ON_NEW_LINE 1" >>confdefs.h
else case e in #(
@@ -64987,7 +64627,7 @@
esac
done
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for rl_completion_matches in -ledit" >&5
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for rl_completion_matches in -ledit" >&5
printf %s "checking for rl_completion_matches in -ledit... " >&6; }
if test ${ac_cv_lib_edit_rl_completion_matches+y}
then :
@@ -65028,15 +64668,15 @@
LIBS=$ac_check_lib_save_LIBS ;;
esac
fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_edit_rl_completion_matches" >&5
-printf "%s\n" "$ac_cv_lib_edit_rl_completion_matches" >&6; }
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_edit_rl_completion_matches" >&5
+printf '%s\n' "$ac_cv_lib_edit_rl_completion_matches" >&6; }
if test "x$ac_cv_lib_edit_rl_completion_matches" = xyes
then :
LDFLAGS=$save_old_LDFLAGS
ext_shared=$save_ext_shared
-printf "%s\n" "#define HAVE_RL_COMPLETION_MATCHES 1" >>confdefs.h
+printf '%s\n' "#define HAVE_RL_COMPLETION_MATCHES 1" >>confdefs.h
else case e in #(
@@ -65168,7 +64808,7 @@
esac
done
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for history_list in -ledit" >&5
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for history_list in -ledit" >&5
printf %s "checking for history_list in -ledit... " >&6; }
if test ${ac_cv_lib_edit_history_list+y}
then :
@@ -65209,15 +64849,15 @@
LIBS=$ac_check_lib_save_LIBS ;;
esac
fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_edit_history_list" >&5
-printf "%s\n" "$ac_cv_lib_edit_history_list" >&6; }
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_edit_history_list" >&5
+printf '%s\n' "$ac_cv_lib_edit_history_list" >&6; }
if test "x$ac_cv_lib_edit_history_list" = xyes
then :
LDFLAGS=$save_old_LDFLAGS
ext_shared=$save_ext_shared
-printf "%s\n" "#define HAVE_HISTORY_LIST 1" >>confdefs.h
+printf '%s\n' "#define HAVE_HISTORY_LIST 1" >>confdefs.h
else case e in #(
@@ -65236,18 +64876,18 @@
CFLAGS="$CFLAGS $EDIT_CFLAGS"
LIBS="$LIBS $EDIT_LIBS"
ac_fn_check_decl "$LINENO" "rl_erase_empty_line" "ac_cv_have_decl_rl_erase_empty_line" "#include
-" "$ac_c_undeclared_builtin_options" "CFLAGS"
+" "$ac_c_undeclared_builtin_options$ac_c_future_darwin_options" "CFLAGS"
if test "x$ac_cv_have_decl_rl_erase_empty_line" = xyes
then :
-printf "%s\n" "#define HAVE_ERASE_EMPTY_LINE 1" >>confdefs.h
+printf '%s\n' "#define HAVE_ERASE_EMPTY_LINE 1" >>confdefs.h
fi
CFLAGS=$CFLAGS_SAVE
LIBS=$LIBS_SAVE
-printf "%s\n" "#define HAVE_LIBEDIT 1" >>confdefs.h
+printf '%s\n' "#define HAVE_LIBEDIT 1" >>confdefs.h
fi
@@ -65387,7 +65027,7 @@
EOF
-printf "%s\n" "#define COMPILE_DL_READLINE 1" >>confdefs.h
+printf '%s\n' "#define COMPILE_DL_READLINE 1" >>confdefs.h
fi
fi
@@ -65648,7 +65288,7 @@
EOF
-printf "%s\n" "#define COMPILE_DL_REFLECTION 1" >>confdefs.h
+printf '%s\n' "#define COMPILE_DL_REFLECTION 1" >>confdefs.h
fi
fi
@@ -65773,7 +65413,7 @@
php_enable_session=yes
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether to enable PHP sessions" >&5
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking whether to enable PHP sessions" >&5
printf %s "checking whether to enable PHP sessions... " >&6; }
# Check whether --enable-session was given.
if test ${enable_session+y}
@@ -65810,8 +65450,8 @@
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ext_output" >&5
-printf "%s\n" "$ext_output" >&6; }
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $ext_output" >&5
+printf '%s\n' "$ext_output" >&6; }
@@ -65819,7 +65459,7 @@
php_with_mm=no
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for mm support" >&5
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for mm support" >&5
printf %s "checking for mm support... " >&6; }
# Check whether --with-mm was given.
@@ -65836,15 +65476,15 @@
ext_output=$PHP_MM
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ext_output" >&5
-printf "%s\n" "$ext_output" >&6; }
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $ext_output" >&5
+printf '%s\n' "$ext_output" >&6; }
if test "$PHP_SESSION" != "no"; then
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether pwrite works" >&5
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking whether pwrite works" >&5
printf %s "checking whether pwrite works... " >&6; }
if test ${php_cv_func_pwrite+y}
then :
@@ -65941,8 +65581,8 @@
;;
esac
fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $php_cv_func_pwrite" >&5
-printf "%s\n" "$php_cv_func_pwrite" >&6; }
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $php_cv_func_pwrite" >&5
+printf '%s\n' "$php_cv_func_pwrite" >&6; }
if test "x$php_cv_func_pwrite" = xno
then :
@@ -65950,12 +65590,12 @@
else case e in #(
e)
-printf "%s\n" "#define HAVE_PWRITE 1" >>confdefs.h
+printf '%s\n' "#define HAVE_PWRITE 1" >>confdefs.h
if test "x$php_cv_func_pwrite" = x64
then :
-printf "%s\n" "#define PHP_PWRITE_64 1" >>confdefs.h
+printf '%s\n' "#define PHP_PWRITE_64 1" >>confdefs.h
fi
;;
@@ -65963,7 +65603,7 @@
fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether pread works" >&5
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking whether pread works" >&5
printf %s "checking whether pread works... " >&6; }
if test ${php_cv_func_pread+y}
then :
@@ -66062,8 +65702,8 @@
;;
esac
fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $php_cv_func_pread" >&5
-printf "%s\n" "$php_cv_func_pread" >&6; }
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $php_cv_func_pread" >&5
+printf '%s\n' "$php_cv_func_pread" >&6; }
if test "x$php_cv_func_pread" = xno
then :
@@ -66071,12 +65711,12 @@
else case e in #(
e)
-printf "%s\n" "#define HAVE_PREAD 1" >>confdefs.h
+printf '%s\n' "#define HAVE_PREAD 1" >>confdefs.h
if test "x$php_cv_func_pread" = x64
then :
-printf "%s\n" "#define PHP_PREAD_64 1" >>confdefs.h
+printf '%s\n' "#define PHP_PREAD_64 1" >>confdefs.h
fi
;;
@@ -66218,7 +65858,7 @@
EOF
-printf "%s\n" "#define COMPILE_DL_SESSION 1" >>confdefs.h
+printf '%s\n' "#define COMPILE_DL_SESSION 1" >>confdefs.h
fi
fi
@@ -66397,7 +66037,7 @@
-printf "%s\n" "#define HAVE_PHP_SESSION 1" >>confdefs.h
+printf '%s\n' "#define HAVE_PHP_SESSION 1" >>confdefs.h
if test "x$PHP_MM" = xno
@@ -66582,7 +66222,7 @@
-printf "%s\n" "#define HAVE_LIBMM 1" >>confdefs.h
+printf '%s\n' "#define HAVE_LIBMM 1" >>confdefs.h
;;
esac
@@ -66595,7 +66235,7 @@
php_enable_shmop=no
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether to enable shmop support" >&5
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking whether to enable shmop support" >&5
printf %s "checking whether to enable shmop support... " >&6; }
# Check whether --enable-shmop was given.
if test ${enable_shmop+y}
@@ -66632,15 +66272,15 @@
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ext_output" >&5
-printf "%s\n" "$ext_output" >&6; }
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $ext_output" >&5
+printf '%s\n' "$ext_output" >&6; }
if test "$PHP_SHMOP" != "no"; then
-printf "%s\n" "#define HAVE_SHMOP 1" >>confdefs.h
+printf '%s\n' "#define HAVE_SHMOP 1" >>confdefs.h
ext_builddir=ext/shmop
@@ -66777,7 +66417,7 @@
EOF
-printf "%s\n" "#define COMPILE_DL_SHMOP 1" >>confdefs.h
+printf '%s\n' "#define COMPILE_DL_SHMOP 1" >>confdefs.h
fi
fi
@@ -66903,7 +66543,7 @@
php_enable_simplexml=yes
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether to enable SimpleXML support" >&5
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking whether to enable SimpleXML support" >&5
printf %s "checking whether to enable SimpleXML support... " >&6; }
# Check whether --enable-simplexml was given.
if test ${enable_simplexml+y}
@@ -66940,8 +66580,8 @@
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ext_output" >&5
-printf "%s\n" "$ext_output" >&6; }
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $ext_output" >&5
+printf '%s\n' "$ext_output" >&6; }
@@ -66950,17 +66590,17 @@
pkg_failed=no
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for libxml-2.0 >= 2.9.4" >&5
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for libxml-2.0 >= 2.9.4" >&5
printf %s "checking for libxml-2.0 >= 2.9.4... " >&6; }
if test -n "$LIBXML_CFLAGS"; then
pkg_cv_LIBXML_CFLAGS="$LIBXML_CFLAGS"
elif test -n "$PKG_CONFIG"; then
if test -n "$PKG_CONFIG" && \
- { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libxml-2.0 >= 2.9.4\""; } >&5
+ { { printf '%s\n' "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libxml-2.0 >= 2.9.4\""; } >&5
($PKG_CONFIG --exists --print-errors "libxml-2.0 >= 2.9.4") 2>&5
ac_status=$?
- printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ printf '%s\n' "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
test $ac_status = 0; }; then
pkg_cv_LIBXML_CFLAGS=`$PKG_CONFIG --cflags "libxml-2.0 >= 2.9.4" 2>/dev/null`
test "x$?" != "x0" && pkg_failed=yes
@@ -66974,10 +66614,10 @@
pkg_cv_LIBXML_LIBS="$LIBXML_LIBS"
elif test -n "$PKG_CONFIG"; then
if test -n "$PKG_CONFIG" && \
- { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libxml-2.0 >= 2.9.4\""; } >&5
+ { { printf '%s\n' "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libxml-2.0 >= 2.9.4\""; } >&5
($PKG_CONFIG --exists --print-errors "libxml-2.0 >= 2.9.4") 2>&5
ac_status=$?
- printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ printf '%s\n' "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
test $ac_status = 0; }; then
pkg_cv_LIBXML_LIBS=`$PKG_CONFIG --libs "libxml-2.0 >= 2.9.4" 2>/dev/null`
test "x$?" != "x0" && pkg_failed=yes
@@ -66991,8 +66631,8 @@
if test $pkg_failed = yes; then
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
-printf "%s\n" "no" >&6; }
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf '%s\n' "no" >&6; }
if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then
_pkg_short_errors_supported=yes
@@ -67018,10 +66658,10 @@
and LIBXML_LIBS to avoid the need to call pkg-config.
See the pkg-config man page for more details." "$LINENO" 5
elif test $pkg_failed = untried; then
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
-printf "%s\n" "no" >&6; }
- { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in '$ac_pwd':" >&5
-printf "%s\n" "$as_me: error: in '$ac_pwd':" >&2;}
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf '%s\n' "no" >&6; }
+ { { printf '%s\n' "$as_me:${as_lineno-$LINENO}: error: in '$ac_pwd':" >&5
+printf '%s\n' "$as_me: error: in '$ac_pwd':" >&2;}
as_fn_error $? "The pkg-config script could not be found or is too old. Make sure it
is in your PATH or set the PKG_CONFIG environment variable to the full
path to pkg-config.
@@ -67035,8 +66675,8 @@
else
LIBXML_CFLAGS=$pkg_cv_LIBXML_CFLAGS
LIBXML_LIBS=$pkg_cv_LIBXML_LIBS
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-printf "%s\n" "yes" >&6; }
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+printf '%s\n' "yes" >&6; }
fi
@@ -67196,7 +66836,7 @@
-printf "%s\n" "#define HAVE_SIMPLEXML 1" >>confdefs.h
+printf '%s\n' "#define HAVE_SIMPLEXML 1" >>confdefs.h
ext_builddir=ext/simplexml
@@ -67333,7 +66973,7 @@
EOF
-printf "%s\n" "#define COMPILE_DL_SIMPLEXML 1" >>confdefs.h
+printf '%s\n' "#define COMPILE_DL_SIMPLEXML 1" >>confdefs.h
fi
fi
@@ -67519,7 +67159,7 @@
php_with_snmp=no
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for SNMP support" >&5
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for SNMP support" >&5
printf %s "checking for SNMP support... " >&6; }
# Check whether --with-snmp was given.
@@ -67557,8 +67197,8 @@
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ext_output" >&5
-printf "%s\n" "$ext_output" >&6; }
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $ext_output" >&5
+printf '%s\n' "$ext_output" >&6; }
@@ -67569,17 +67209,17 @@
then :
pkg_failed=no
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for netsnmp >= 5.3" >&5
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for netsnmp >= 5.3" >&5
printf %s "checking for netsnmp >= 5.3... " >&6; }
if test -n "$SNMP_CFLAGS"; then
pkg_cv_SNMP_CFLAGS="$SNMP_CFLAGS"
elif test -n "$PKG_CONFIG"; then
if test -n "$PKG_CONFIG" && \
- { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"netsnmp >= 5.3\""; } >&5
+ { { printf '%s\n' "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"netsnmp >= 5.3\""; } >&5
($PKG_CONFIG --exists --print-errors "netsnmp >= 5.3") 2>&5
ac_status=$?
- printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ printf '%s\n' "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
test $ac_status = 0; }; then
pkg_cv_SNMP_CFLAGS=`$PKG_CONFIG --cflags "netsnmp >= 5.3" 2>/dev/null`
test "x$?" != "x0" && pkg_failed=yes
@@ -67593,10 +67233,10 @@
pkg_cv_SNMP_LIBS="$SNMP_LIBS"
elif test -n "$PKG_CONFIG"; then
if test -n "$PKG_CONFIG" && \
- { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"netsnmp >= 5.3\""; } >&5
+ { { printf '%s\n' "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"netsnmp >= 5.3\""; } >&5
($PKG_CONFIG --exists --print-errors "netsnmp >= 5.3") 2>&5
ac_status=$?
- printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ printf '%s\n' "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
test $ac_status = 0; }; then
pkg_cv_SNMP_LIBS=`$PKG_CONFIG --libs "netsnmp >= 5.3" 2>/dev/null`
test "x$?" != "x0" && pkg_failed=yes
@@ -67610,8 +67250,8 @@
if test $pkg_failed = yes; then
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
-printf "%s\n" "no" >&6; }
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf '%s\n' "no" >&6; }
if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then
_pkg_short_errors_supported=yes
@@ -67628,14 +67268,14 @@
:
elif test $pkg_failed = untried; then
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
-printf "%s\n" "no" >&6; }
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf '%s\n' "no" >&6; }
:
else
SNMP_CFLAGS=$pkg_cv_SNMP_CFLAGS
SNMP_LIBS=$pkg_cv_SNMP_LIBS
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-printf "%s\n" "yes" >&6; }
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+printf '%s\n' "yes" >&6; }
snmp_found=yes
fi
fi
@@ -67647,7 +67287,7 @@
then :
# Extract the first word of "net-snmp-config", so it can be a program name with args.
set dummy net-snmp-config; ac_word=$2
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
printf %s "checking for $ac_word... " >&6; }
if test ${ac_cv_path_SNMP_CONFIG+y}
then :
@@ -67671,7 +67311,7 @@
for ac_exec_ext in '' $ac_executable_extensions; do
if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
ac_cv_path_SNMP_CONFIG="$as_dir$ac_word$ac_exec_ext"
- printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
+ printf '%s\n' "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
break 2
fi
done
@@ -67684,11 +67324,11 @@
fi
SNMP_CONFIG=$ac_cv_path_SNMP_CONFIG
if test -n "$SNMP_CONFIG"; then
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $SNMP_CONFIG" >&5
-printf "%s\n" "$SNMP_CONFIG" >&6; }
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $SNMP_CONFIG" >&5
+printf '%s\n' "$SNMP_CONFIG" >&6; }
else
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
-printf "%s\n" "no" >&6; }
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf '%s\n' "no" >&6; }
fi
@@ -68005,8 +67645,8 @@
esac
done
- as_ac_Lib=`printf "%s\n" "ac_cv_lib_$SNMP_LIBNAME""_init_snmp" | sed "$as_sed_sh"`
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for init_snmp in -l$SNMP_LIBNAME" >&5
+ as_ac_Lib=`printf '%s\n' "ac_cv_lib_$SNMP_LIBNAME""_init_snmp" | sed "$as_sed_sh"`
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for init_snmp in -l$SNMP_LIBNAME" >&5
printf %s "checking for init_snmp in -l$SNMP_LIBNAME... " >&6; }
if eval test \${$as_ac_Lib+y}
then :
@@ -68048,15 +67688,15 @@
esac
fi
eval ac_res=\$$as_ac_Lib
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
-printf "%s\n" "$ac_res" >&6; }
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
+printf '%s\n' "$ac_res" >&6; }
if eval test \"x\$"$as_ac_Lib"\" = x"yes"
then :
LDFLAGS=$save_old_LDFLAGS
ext_shared=$save_ext_shared
-printf "%s\n" "#define HAVE_SNMP 1" >>confdefs.h
+printf '%s\n' "#define HAVE_SNMP 1" >>confdefs.h
else case e in #(
@@ -68064,8 +67704,8 @@
LDFLAGS=$save_old_LDFLAGS
ext_shared=$save_ext_shared
unset ac_cv_lib_$SNMP_LIBNAME_init_snmp
- { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in '$ac_pwd':" >&5
-printf "%s\n" "$as_me: error: in '$ac_pwd':" >&2;}
+ { { printf '%s\n' "$as_me:${as_lineno-$LINENO}: error: in '$ac_pwd':" >&5
+printf '%s\n' "$as_me: error: in '$ac_pwd':" >&2;}
as_fn_error $? "SNMP sanity check failed.
See 'config.log' for more details" "$LINENO" 5; }
;;
@@ -68191,8 +67831,8 @@
esac
done
- as_ac_Lib=`printf "%s\n" "ac_cv_lib_$SNMP_LIBNAME""_shutdown_snmp_logging" | sed "$as_sed_sh"`
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for shutdown_snmp_logging in -l$SNMP_LIBNAME" >&5
+ as_ac_Lib=`printf '%s\n' "ac_cv_lib_$SNMP_LIBNAME""_shutdown_snmp_logging" | sed "$as_sed_sh"`
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for shutdown_snmp_logging in -l$SNMP_LIBNAME" >&5
printf %s "checking for shutdown_snmp_logging in -l$SNMP_LIBNAME... " >&6; }
if eval test \${$as_ac_Lib+y}
then :
@@ -68234,15 +67874,15 @@
esac
fi
eval ac_res=\$$as_ac_Lib
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
-printf "%s\n" "$ac_res" >&6; }
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
+printf '%s\n' "$ac_res" >&6; }
if eval test \"x\$"$as_ac_Lib"\" = x"yes"
then :
LDFLAGS=$save_old_LDFLAGS
ext_shared=$save_ext_shared
-printf "%s\n" "#define HAVE_SHUTDOWN_SNMP_LOGGING 1" >>confdefs.h
+printf '%s\n' "#define HAVE_SHUTDOWN_SNMP_LOGGING 1" >>confdefs.h
else case e in #(
@@ -68265,11 +67905,11 @@
#include
#include
-" "$ac_c_undeclared_builtin_options" "CFLAGS"
+" "$ac_c_undeclared_builtin_options$ac_c_future_darwin_options" "CFLAGS"
if test "x$ac_cv_have_decl_usmHMAC192SHA256AuthProtocol" = xyes
then :
-printf "%s\n" "#define HAVE_SNMP_SHA256 1" >>confdefs.h
+printf '%s\n' "#define HAVE_SNMP_SHA256 1" >>confdefs.h
fi
@@ -68277,11 +67917,11 @@
#include
#include
-" "$ac_c_undeclared_builtin_options" "CFLAGS"
+" "$ac_c_undeclared_builtin_options$ac_c_future_darwin_options" "CFLAGS"
if test "x$ac_cv_have_decl_usmHMAC384SHA512AuthProtocol" = xyes
then :
-printf "%s\n" "#define HAVE_SNMP_SHA512 1" >>confdefs.h
+printf '%s\n' "#define HAVE_SNMP_SHA512 1" >>confdefs.h
fi
@@ -68423,7 +68063,7 @@
EOF
-printf "%s\n" "#define COMPILE_DL_SNMP 1" >>confdefs.h
+printf '%s\n' "#define COMPILE_DL_SNMP 1" >>confdefs.h
fi
fi
@@ -68571,7 +68211,7 @@
php_enable_soap=no
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether to enable SOAP support" >&5
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking whether to enable SOAP support" >&5
printf %s "checking whether to enable SOAP support... " >&6; }
# Check whether --enable-soap was given.
if test ${enable_soap+y}
@@ -68608,8 +68248,8 @@
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ext_output" >&5
-printf "%s\n" "$ext_output" >&6; }
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $ext_output" >&5
+printf '%s\n' "$ext_output" >&6; }
@@ -68618,17 +68258,17 @@
pkg_failed=no
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for libxml-2.0 >= 2.9.4" >&5
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for libxml-2.0 >= 2.9.4" >&5
printf %s "checking for libxml-2.0 >= 2.9.4... " >&6; }
if test -n "$LIBXML_CFLAGS"; then
pkg_cv_LIBXML_CFLAGS="$LIBXML_CFLAGS"
elif test -n "$PKG_CONFIG"; then
if test -n "$PKG_CONFIG" && \
- { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libxml-2.0 >= 2.9.4\""; } >&5
+ { { printf '%s\n' "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libxml-2.0 >= 2.9.4\""; } >&5
($PKG_CONFIG --exists --print-errors "libxml-2.0 >= 2.9.4") 2>&5
ac_status=$?
- printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ printf '%s\n' "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
test $ac_status = 0; }; then
pkg_cv_LIBXML_CFLAGS=`$PKG_CONFIG --cflags "libxml-2.0 >= 2.9.4" 2>/dev/null`
test "x$?" != "x0" && pkg_failed=yes
@@ -68642,10 +68282,10 @@
pkg_cv_LIBXML_LIBS="$LIBXML_LIBS"
elif test -n "$PKG_CONFIG"; then
if test -n "$PKG_CONFIG" && \
- { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libxml-2.0 >= 2.9.4\""; } >&5
+ { { printf '%s\n' "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libxml-2.0 >= 2.9.4\""; } >&5
($PKG_CONFIG --exists --print-errors "libxml-2.0 >= 2.9.4") 2>&5
ac_status=$?
- printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ printf '%s\n' "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
test $ac_status = 0; }; then
pkg_cv_LIBXML_LIBS=`$PKG_CONFIG --libs "libxml-2.0 >= 2.9.4" 2>/dev/null`
test "x$?" != "x0" && pkg_failed=yes
@@ -68659,8 +68299,8 @@
if test $pkg_failed = yes; then
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
-printf "%s\n" "no" >&6; }
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf '%s\n' "no" >&6; }
if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then
_pkg_short_errors_supported=yes
@@ -68686,10 +68326,10 @@
and LIBXML_LIBS to avoid the need to call pkg-config.
See the pkg-config man page for more details." "$LINENO" 5
elif test $pkg_failed = untried; then
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
-printf "%s\n" "no" >&6; }
- { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in '$ac_pwd':" >&5
-printf "%s\n" "$as_me: error: in '$ac_pwd':" >&2;}
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf '%s\n' "no" >&6; }
+ { { printf '%s\n' "$as_me:${as_lineno-$LINENO}: error: in '$ac_pwd':" >&5
+printf '%s\n' "$as_me: error: in '$ac_pwd':" >&2;}
as_fn_error $? "The pkg-config script could not be found or is too old. Make sure it
is in your PATH or set the PKG_CONFIG environment variable to the full
path to pkg-config.
@@ -68703,8 +68343,8 @@
else
LIBXML_CFLAGS=$pkg_cv_LIBXML_CFLAGS
LIBXML_LIBS=$pkg_cv_LIBXML_LIBS
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-printf "%s\n" "yes" >&6; }
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+printf '%s\n' "yes" >&6; }
fi
@@ -68864,7 +68504,7 @@
-printf "%s\n" "#define HAVE_SOAP 1" >>confdefs.h
+printf '%s\n' "#define HAVE_SOAP 1" >>confdefs.h
ext_builddir=ext/soap
@@ -69001,7 +68641,7 @@
EOF
-printf "%s\n" "#define COMPILE_DL_SOAP 1" >>confdefs.h
+printf '%s\n' "#define COMPILE_DL_SOAP 1" >>confdefs.h
fi
fi
@@ -69208,7 +68848,7 @@
php_enable_sockets=no
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether to enable sockets support" >&5
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking whether to enable sockets support" >&5
printf %s "checking whether to enable sockets support... " >&6; }
# Check whether --enable-sockets was given.
if test ${enable_sockets+y}
@@ -69245,8 +68885,8 @@
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ext_output" >&5
-printf "%s\n" "$ext_output" >&6; }
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $ext_output" >&5
+printf '%s\n' "$ext_output" >&6; }
@@ -69255,43 +68895,43 @@
ac_fn_c_check_func "$LINENO" "hstrerror" "ac_cv_func_hstrerror"
if test "x$ac_cv_func_hstrerror" = xyes
then :
- printf "%s\n" "#define HAVE_HSTRERROR 1" >>confdefs.h
+ printf '%s\n' "#define HAVE_HSTRERROR 1" >>confdefs.h
fi
ac_fn_c_check_func "$LINENO" "if_nametoindex" "ac_cv_func_if_nametoindex"
if test "x$ac_cv_func_if_nametoindex" = xyes
then :
- printf "%s\n" "#define HAVE_IF_NAMETOINDEX 1" >>confdefs.h
+ printf '%s\n' "#define HAVE_IF_NAMETOINDEX 1" >>confdefs.h
fi
ac_fn_c_check_func "$LINENO" "if_indextoname" "ac_cv_func_if_indextoname"
if test "x$ac_cv_func_if_indextoname" = xyes
then :
- printf "%s\n" "#define HAVE_IF_INDEXTONAME 1" >>confdefs.h
+ printf '%s\n' "#define HAVE_IF_INDEXTONAME 1" >>confdefs.h
fi
ac_fn_c_check_func "$LINENO" "sockatmark" "ac_cv_func_sockatmark"
if test "x$ac_cv_func_sockatmark" = xyes
then :
- printf "%s\n" "#define HAVE_SOCKATMARK 1" >>confdefs.h
+ printf '%s\n' "#define HAVE_SOCKATMARK 1" >>confdefs.h
fi
ac_fn_c_check_header_compile "$LINENO" "sys/sockio.h" "ac_cv_header_sys_sockio_h" "$ac_includes_default"
if test "x$ac_cv_header_sys_sockio_h" = xyes
then :
- printf "%s\n" "#define HAVE_SYS_SOCKIO_H 1" >>confdefs.h
+ printf '%s\n' "#define HAVE_SYS_SOCKIO_H 1" >>confdefs.h
fi
ac_fn_c_check_header_compile "$LINENO" "linux/filter.h" "ac_cv_header_linux_filter_h" "$ac_includes_default"
if test "x$ac_cv_header_linux_filter_h" = xyes
then :
- printf "%s\n" "#define HAVE_LINUX_FILTER_H 1" >>confdefs.h
+ printf '%s\n' "#define HAVE_LINUX_FILTER_H 1" >>confdefs.h
fi
-printf "%s\n" "#define HAVE_SOCKETS 1" >>confdefs.h
+printf '%s\n' "#define HAVE_SOCKETS 1" >>confdefs.h
ac_fn_c_check_member "$LINENO" "struct sockaddr_storage" "ss_family" "ac_cv_member_struct_sockaddr_storage_ss_family" "#include
@@ -69299,7 +68939,7 @@
if test "x$ac_cv_member_struct_sockaddr_storage_ss_family" = xyes
then :
-printf "%s\n" "#define HAVE_STRUCT_SOCKADDR_STORAGE_SS_FAMILY 1" >>confdefs.h
+printf '%s\n' "#define HAVE_STRUCT_SOCKADDR_STORAGE_SS_FAMILY 1" >>confdefs.h
fi
@@ -69315,7 +68955,7 @@
if test "x$ac_cv_type_struct_ucred" = xyes
then :
-printf "%s\n" "#define HAVE_STRUCT_UCRED 1" >>confdefs.h
+printf '%s\n' "#define HAVE_STRUCT_UCRED 1" >>confdefs.h
fi
@@ -69326,7 +68966,7 @@
if test "x$ac_cv_type_struct_cmsgcred" = xyes
then :
-printf "%s\n" "#define HAVE_STRUCT_CMSGCRED 1" >>confdefs.h
+printf '%s\n' "#define HAVE_STRUCT_CMSGCRED 1" >>confdefs.h
fi
@@ -69475,7 +69115,7 @@
EOF
-printf "%s\n" "#define COMPILE_DL_SOCKETS 1" >>confdefs.h
+printf '%s\n' "#define COMPILE_DL_SOCKETS 1" >>confdefs.h
fi
fi
@@ -69618,7 +69258,7 @@
php_with_sodium=no
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for sodium support" >&5
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for sodium support" >&5
printf %s "checking for sodium support... " >&6; }
# Check whether --with-sodium was given.
@@ -69656,8 +69296,8 @@
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ext_output" >&5
-printf "%s\n" "$ext_output" >&6; }
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $ext_output" >&5
+printf '%s\n' "$ext_output" >&6; }
@@ -69665,17 +69305,17 @@
if test "$PHP_SODIUM" != "no"; then
pkg_failed=no
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for libsodium >= 1.0.8" >&5
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for libsodium >= 1.0.8" >&5
printf %s "checking for libsodium >= 1.0.8... " >&6; }
if test -n "$LIBSODIUM_CFLAGS"; then
pkg_cv_LIBSODIUM_CFLAGS="$LIBSODIUM_CFLAGS"
elif test -n "$PKG_CONFIG"; then
if test -n "$PKG_CONFIG" && \
- { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libsodium >= 1.0.8\""; } >&5
+ { { printf '%s\n' "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libsodium >= 1.0.8\""; } >&5
($PKG_CONFIG --exists --print-errors "libsodium >= 1.0.8") 2>&5
ac_status=$?
- printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ printf '%s\n' "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
test $ac_status = 0; }; then
pkg_cv_LIBSODIUM_CFLAGS=`$PKG_CONFIG --cflags "libsodium >= 1.0.8" 2>/dev/null`
test "x$?" != "x0" && pkg_failed=yes
@@ -69689,10 +69329,10 @@
pkg_cv_LIBSODIUM_LIBS="$LIBSODIUM_LIBS"
elif test -n "$PKG_CONFIG"; then
if test -n "$PKG_CONFIG" && \
- { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libsodium >= 1.0.8\""; } >&5
+ { { printf '%s\n' "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libsodium >= 1.0.8\""; } >&5
($PKG_CONFIG --exists --print-errors "libsodium >= 1.0.8") 2>&5
ac_status=$?
- printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ printf '%s\n' "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
test $ac_status = 0; }; then
pkg_cv_LIBSODIUM_LIBS=`$PKG_CONFIG --libs "libsodium >= 1.0.8" 2>/dev/null`
test "x$?" != "x0" && pkg_failed=yes
@@ -69706,8 +69346,8 @@
if test $pkg_failed = yes; then
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
-printf "%s\n" "no" >&6; }
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf '%s\n' "no" >&6; }
if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then
_pkg_short_errors_supported=yes
@@ -69733,10 +69373,10 @@
and LIBSODIUM_LIBS to avoid the need to call pkg-config.
See the pkg-config man page for more details." "$LINENO" 5
elif test $pkg_failed = untried; then
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
-printf "%s\n" "no" >&6; }
- { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in '$ac_pwd':" >&5
-printf "%s\n" "$as_me: error: in '$ac_pwd':" >&2;}
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf '%s\n' "no" >&6; }
+ { { printf '%s\n' "$as_me:${as_lineno-$LINENO}: error: in '$ac_pwd':" >&5
+printf '%s\n' "$as_me: error: in '$ac_pwd':" >&2;}
as_fn_error $? "The pkg-config script could not be found or is too old. Make sure it
is in your PATH or set the PKG_CONFIG environment variable to the full
path to pkg-config.
@@ -69750,8 +69390,8 @@
else
LIBSODIUM_CFLAGS=$pkg_cv_LIBSODIUM_CFLAGS
LIBSODIUM_LIBS=$pkg_cv_LIBSODIUM_LIBS
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-printf "%s\n" "yes" >&6; }
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+printf '%s\n' "yes" >&6; }
fi
@@ -69912,7 +69552,7 @@
-printf "%s\n" "#define HAVE_LIBSODIUMLIB 1" >>confdefs.h
+printf '%s\n' "#define HAVE_LIBSODIUMLIB 1" >>confdefs.h
SODIUM_COMPILER_FLAGS=$LIBSODIUM_CFLAGS
@@ -69921,7 +69561,7 @@
# version HP92453-01 B.11.11.23709.GP, which incorrectly rejects
# declarations like 'int a3[[(sizeof (unsigned char)) >= 0]];'.
# This bug is HP SR number 8606223364.
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking size of long" >&5
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking size of long" >&5
printf %s "checking size of long... " >&6; }
if test ${ac_cv_sizeof_long+y}
then :
@@ -69931,32 +69571,25 @@
then :
else case e in #(
- e) if test "$ac_cv_type_long" = yes; then
- { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in '$ac_pwd':" >&5
-printf "%s\n" "$as_me: error: in '$ac_pwd':" >&2;}
-as_fn_error 77 "cannot compute sizeof (long)
-See 'config.log' for more details" "$LINENO" 5; }
- else
- ac_cv_sizeof_long=0
- fi ;;
+ e) ac_cv_sizeof_long=0 ;;
esac
fi
;;
esac
fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sizeof_long" >&5
-printf "%s\n" "$ac_cv_sizeof_long" >&6; }
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sizeof_long" >&5
+printf '%s\n' "$ac_cv_sizeof_long" >&6; }
-printf "%s\n" "#define SIZEOF_LONG $ac_cv_sizeof_long" >>confdefs.h
+printf '%s\n' "#define SIZEOF_LONG $ac_cv_sizeof_long" >>confdefs.h
if test "$ac_cv_sizeof_long" -eq 4
then :
SODIUM_COMPILER_FLAGS="$SODIUM_COMPILER_FLAGS -Wno-type-limits"
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether the C compiler accepts -Wno-logical-op" >&5
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking whether the C compiler accepts -Wno-logical-op" >&5
printf %s "checking whether the C compiler accepts -Wno-logical-op... " >&6; }
if test ${ax_cv_check_cflags__Werror__Wno_logical_op+y}
then :
@@ -69987,8 +69620,8 @@
CFLAGS=$ax_check_save_flags ;;
esac
fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ax_cv_check_cflags__Werror__Wno_logical_op" >&5
-printf "%s\n" "$ax_cv_check_cflags__Werror__Wno_logical_op" >&6; }
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $ax_cv_check_cflags__Werror__Wno_logical_op" >&5
+printf '%s\n' "$ax_cv_check_cflags__Werror__Wno_logical_op" >&6; }
if test "x$ax_cv_check_cflags__Werror__Wno_logical_op" = xyes
then :
SODIUM_COMPILER_FLAGS="$SODIUM_COMPILER_FLAGS -Wno-logical-op"
@@ -70135,7 +69768,7 @@
EOF
-printf "%s\n" "#define COMPILE_DL_SODIUM 1" >>confdefs.h
+printf '%s\n' "#define COMPILE_DL_SODIUM 1" >>confdefs.h
fi
fi
@@ -70413,7 +70046,7 @@
EOF
-printf "%s\n" "#define COMPILE_DL_SPL 1" >>confdefs.h
+printf '%s\n' "#define COMPILE_DL_SPL 1" >>confdefs.h
fi
fi
@@ -70609,7 +70242,7 @@
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether flush should be called explicitly after a buffered io" >&5
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking whether flush should be called explicitly after a buffered io" >&5
printf %s "checking whether flush should be called explicitly after a buffered io... " >&6; }
if test ${php_cv_have_flush_io+y}
then :
@@ -70695,19 +70328,19 @@
;;
esac
fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $php_cv_have_flush_io" >&5
-printf "%s\n" "$php_cv_have_flush_io" >&6; }
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $php_cv_have_flush_io" >&5
+printf '%s\n' "$php_cv_have_flush_io" >&6; }
if test "x$php_cv_have_flush_io" = xyes
then :
-printf "%s\n" "#define HAVE_FLUSHIO 1" >>confdefs.h
+printf '%s\n' "#define HAVE_FLUSHIO 1" >>confdefs.h
fi
php_with_external_libcrypt=no
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for external libcrypt or libxcrypt" >&5
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for external libcrypt or libxcrypt" >&5
printf %s "checking for external libcrypt or libxcrypt... " >&6; }
# Check whether --with-external-libcrypt was given.
@@ -70724,8 +70357,8 @@
ext_output=$PHP_EXTERNAL_LIBCRYPT
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ext_output" >&5
-printf "%s\n" "$ext_output" >&6; }
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $ext_output" >&5
+printf '%s\n' "$ext_output" >&6; }
@@ -70736,13 +70369,13 @@
if test "x$PHP_EXTERNAL_LIBCRYPT" = xno
then :
- printf "%s\n" "#define PHP_USE_PHP_CRYPT_R 1" >>confdefs.h
+ printf '%s\n' "#define PHP_USE_PHP_CRYPT_R 1" >>confdefs.h
php_ext_standard_sources=" crypt_blowfish.c crypt_freesec.c crypt_sha256.c crypt_sha512.c php_crypt_r.c "
else case e in #(
e)
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for library containing crypt" >&5
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for library containing crypt" >&5
printf %s "checking for library containing crypt... " >&6; }
if test ${ac_cv_search_crypt+y}
then :
@@ -70800,25 +70433,25 @@
LIBS=$ac_func_search_save_LIBS ;;
esac
fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_crypt" >&5
-printf "%s\n" "$ac_cv_search_crypt" >&6; }
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_crypt" >&5
+printf '%s\n' "$ac_cv_search_crypt" >&6; }
ac_res=$ac_cv_search_crypt
if test "$ac_res" != no
then :
test "$ac_res" = "none required" || LIBS="$ac_res $LIBS"
-printf "%s\n" "#define HAVE_CRYPT 1" >>confdefs.h
+printf '%s\n' "#define HAVE_CRYPT 1" >>confdefs.h
else case e in #(
- e) { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in '$ac_pwd':" >&5
-printf "%s\n" "$as_me: error: in '$ac_pwd':" >&2;}
+ e) { { printf '%s\n' "$as_me:${as_lineno-$LINENO}: error: in '$ac_pwd':" >&5
+printf '%s\n' "$as_me: error: in '$ac_pwd':" >&2;}
as_fn_error $? "Cannot use external libcrypt as crypt() is missing.
See 'config.log' for more details" "$LINENO" 5; } ;;
esac
fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for library containing crypt_r" >&5
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for library containing crypt_r" >&5
printf %s "checking for library containing crypt_r... " >&6; }
if test ${ac_cv_search_crypt_r+y}
then :
@@ -70876,25 +70509,25 @@
LIBS=$ac_func_search_save_LIBS ;;
esac
fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_crypt_r" >&5
-printf "%s\n" "$ac_cv_search_crypt_r" >&6; }
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_crypt_r" >&5
+printf '%s\n' "$ac_cv_search_crypt_r" >&6; }
ac_res=$ac_cv_search_crypt_r
if test "$ac_res" != no
then :
test "$ac_res" = "none required" || LIBS="$ac_res $LIBS"
-printf "%s\n" "#define HAVE_CRYPT_R 1" >>confdefs.h
+printf '%s\n' "#define HAVE_CRYPT_R 1" >>confdefs.h
else case e in #(
- e) { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in '$ac_pwd':" >&5
-printf "%s\n" "$as_me: error: in '$ac_pwd':" >&2;}
+ e) { { printf '%s\n' "$as_me:${as_lineno-$LINENO}: error: in '$ac_pwd':" >&5
+printf '%s\n' "$as_me: error: in '$ac_pwd':" >&2;}
as_fn_error $? "Cannot use external libcrypt as crypt_r() is missing.
See 'config.log' for more details" "$LINENO" 5; } ;;
esac
fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking which data struct is used by crypt_r" >&5
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking which data struct is used by crypt_r" >&5
printf %s "checking which data struct is used by crypt_r... " >&6; }
if test ${php_cv_crypt_r_style+y}
then :
@@ -71007,20 +70640,20 @@
;;
esac
fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $php_cv_crypt_r_style" >&5
-printf "%s\n" "$php_cv_crypt_r_style" >&6; }
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $php_cv_crypt_r_style" >&5
+printf '%s\n' "$php_cv_crypt_r_style" >&6; }
if test "x$php_cv_crypt_r_style" = xcryptd
then :
-printf "%s\n" "#define CRYPT_R_CRYPTD 1" >>confdefs.h
+printf '%s\n' "#define CRYPT_R_CRYPTD 1" >>confdefs.h
fi
case $php_cv_crypt_r_style in #(
struct_crypt_data|struct_crypt_data_gnu_source) :
-printf "%s\n" "#define CRYPT_R_STRUCT_CRYPT_DATA 1" >>confdefs.h
+printf '%s\n' "#define CRYPT_R_STRUCT_CRYPT_DATA 1" >>confdefs.h
;; #(
*) :
;;
@@ -71029,14 +70662,14 @@
if test "x$php_cv_crypt_r_style" = xstruct_crypt_data_gnu_source
then :
-printf "%s\n" "#define CRYPT_R_GNU_SOURCE 1" >>confdefs.h
+printf '%s\n' "#define CRYPT_R_GNU_SOURCE 1" >>confdefs.h
fi
if test "x$php_cv_crypt_r_style" = xnone
then :
- { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in '$ac_pwd':" >&5
-printf "%s\n" "$as_me: error: in '$ac_pwd':" >&2;}
+ { { printf '%s\n' "$as_me:${as_lineno-$LINENO}: error: in '$ac_pwd':" >&5
+printf '%s\n' "$as_me: error: in '$ac_pwd':" >&2;}
as_fn_error $? "Unable to detect data struct used by crypt_r.
See 'config.log' for more details" "$LINENO" 5; }
fi
@@ -71044,12 +70677,12 @@
ac_fn_c_check_header_compile "$LINENO" "crypt.h" "ac_cv_header_crypt_h" "$ac_includes_default"
if test "x$ac_cv_header_crypt_h" = xyes
then :
- printf "%s\n" "#define HAVE_CRYPT_H 1" >>confdefs.h
+ printf '%s\n' "#define HAVE_CRYPT_H 1" >>confdefs.h
fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for standard DES crypt" >&5
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for standard DES crypt" >&5
printf %s "checking for standard DES crypt... " >&6; }
if test ${ac_cv_crypt_des+y}
then :
@@ -71092,10 +70725,10 @@
;;
esac
fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_crypt_des" >&5
-printf "%s\n" "$ac_cv_crypt_des" >&6; }
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $ac_cv_crypt_des" >&5
+printf '%s\n' "$ac_cv_crypt_des" >&6; }
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for extended DES crypt" >&5
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for extended DES crypt" >&5
printf %s "checking for extended DES crypt... " >&6; }
if test ${ac_cv_crypt_ext_des+y}
then :
@@ -71138,10 +70771,10 @@
;;
esac
fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_crypt_ext_des" >&5
-printf "%s\n" "$ac_cv_crypt_ext_des" >&6; }
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $ac_cv_crypt_ext_des" >&5
+printf '%s\n' "$ac_cv_crypt_ext_des" >&6; }
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for MD5 crypt" >&5
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for MD5 crypt" >&5
printf %s "checking for MD5 crypt... " >&6; }
if test ${ac_cv_crypt_md5+y}
then :
@@ -71194,10 +70827,10 @@
;;
esac
fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_crypt_md5" >&5
-printf "%s\n" "$ac_cv_crypt_md5" >&6; }
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $ac_cv_crypt_md5" >&5
+printf '%s\n' "$ac_cv_crypt_md5" >&6; }
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for Blowfish crypt" >&5
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for Blowfish crypt" >&5
printf %s "checking for Blowfish crypt... " >&6; }
if test ${ac_cv_crypt_blowfish+y}
then :
@@ -71248,10 +70881,10 @@
;;
esac
fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_crypt_blowfish" >&5
-printf "%s\n" "$ac_cv_crypt_blowfish" >&6; }
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $ac_cv_crypt_blowfish" >&5
+printf '%s\n' "$ac_cv_crypt_blowfish" >&6; }
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for SHA512 crypt" >&5
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for SHA512 crypt" >&5
printf %s "checking for SHA512 crypt... " >&6; }
if test ${ac_cv_crypt_sha512+y}
then :
@@ -71300,10 +70933,10 @@
;;
esac
fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_crypt_sha512" >&5
-printf "%s\n" "$ac_cv_crypt_sha512" >&6; }
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $ac_cv_crypt_sha512" >&5
+printf '%s\n' "$ac_cv_crypt_sha512" >&6; }
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for SHA256 crypt" >&5
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for SHA256 crypt" >&5
printf %s "checking for SHA256 crypt... " >&6; }
if test ${ac_cv_crypt_sha256+y}
then :
@@ -71352,17 +70985,17 @@
;;
esac
fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_crypt_sha256" >&5
-printf "%s\n" "$ac_cv_crypt_sha256" >&6; }
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $ac_cv_crypt_sha256" >&5
+printf '%s\n' "$ac_cv_crypt_sha256" >&6; }
if test "$ac_cv_crypt_blowfish" = "no" || test "$ac_cv_crypt_des" = "no" || test "$ac_cv_crypt_ext_des" = "no" || test "$ac_cv_crypt_md5" = "no" || test "$ac_cv_crypt_sha512" = "no" || test "$ac_cv_crypt_sha256" = "no"; then
- { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in '$ac_pwd':" >&5
-printf "%s\n" "$as_me: error: in '$ac_pwd':" >&2;}
+ { { printf '%s\n' "$as_me:${as_lineno-$LINENO}: error: in '$ac_pwd':" >&5
+printf '%s\n' "$as_me: error: in '$ac_pwd':" >&2;}
as_fn_error $? "Cannot use external libcrypt as some algo are missing.
See 'config.log' for more details" "$LINENO" 5; }
fi
- printf "%s\n" "#define PHP_USE_PHP_CRYPT_R 0" >>confdefs.h
+ printf '%s\n' "#define PHP_USE_PHP_CRYPT_R 0" >>confdefs.h
;;
esac
@@ -71372,19 +71005,19 @@
then :
case $host_alias in #(
*linux*) :
- printf "%s\n" "#define HAVE_FNMATCH 1" >>confdefs.h
+ printf '%s\n' "#define HAVE_FNMATCH 1" >>confdefs.h
;; #(
*) :
;;
esac
else case e in #(
- e) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for working POSIX fnmatch" >&5
+ e) { printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for working POSIX fnmatch" >&5
printf %s "checking for working POSIX fnmatch... " >&6; }
if test ${ac_cv_func_fnmatch_works+y}
then :
printf %s "(cached) " >&6
else case e in #(
- e) # Some versions of Solaris, SCO, and the GNU C Library
+ e) # Some versions of Solaris and the GNU C Library
# have a broken or incompatible fnmatch.
# So we run a test program. If we are cross-compiling, take no chance.
# Thanks to John Oleynick, François Pinard, and Paul Eggert for this test.
@@ -71427,12 +71060,12 @@
;;
esac
fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_func_fnmatch_works" >&5
-printf "%s\n" "$ac_cv_func_fnmatch_works" >&6; }
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $ac_cv_func_fnmatch_works" >&5
+printf '%s\n' "$ac_cv_func_fnmatch_works" >&6; }
if test $ac_cv_func_fnmatch_works = yes
then :
-printf "%s\n" "#define HAVE_FNMATCH 1" >>confdefs.h
+printf '%s\n' "#define HAVE_FNMATCH 1" >>confdefs.h
fi
@@ -71443,12 +71076,12 @@
for ac_func in fork CreateProcess
do :
- as_ac_var=`printf "%s\n" "ac_cv_func_$ac_func" | sed "$as_sed_sh"`
+ as_ac_var=`printf '%s\n' "ac_cv_func_$ac_func" | sed "$as_sed_sh"`
ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var"
if eval test \"x\$"$as_ac_var"\" = x"yes"
then :
cat >>confdefs.h <<_ACEOF
-#define `printf "%s\n" "HAVE_$ac_func" | sed "$as_sed_cpp"` 1
+#define `printf '%s\n' "HAVE_$ac_func" | sed "$as_sed_cpp"` 1
_ACEOF
php_can_support_proc_open=yes; break;
else case e in #(
@@ -71457,16 +71090,16 @@
fi
done
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if your OS can spawn processes with inherited handles" >&5
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking if your OS can spawn processes with inherited handles" >&5
printf %s "checking if your OS can spawn processes with inherited handles... " >&6; }
if test "x$php_can_support_proc_open" = xyes
then :
-printf "%s\n" "#define PHP_CAN_SUPPORT_PROC_OPEN 1" >>confdefs.h
+printf '%s\n' "#define PHP_CAN_SUPPORT_PROC_OPEN 1" >>confdefs.h
fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $php_can_support_proc_open" >&5
-printf "%s\n" "$php_can_support_proc_open" >&6; }
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $php_can_support_proc_open" >&5
+printf '%s\n' "$php_can_support_proc_open" >&6; }
PHP_ENABLE_CHROOT_FUNC=no
case "$PHP_SAPI" in
@@ -71493,7 +71126,7 @@
if test "x$PHP_ENABLE_CHROOT_FUNC" = xyes
then :
-printf "%s\n" "#define ENABLE_CHROOT_FUNC 1" >>confdefs.h
+printf '%s\n' "#define ENABLE_CHROOT_FUNC 1" >>confdefs.h
fi
@@ -71523,7 +71156,7 @@
case $found in
yes)
-printf "%s\n" "#define HAVE_RES_NSEARCH 1" >>confdefs.h
+printf '%s\n' "#define HAVE_RES_NSEARCH 1" >>confdefs.h
ac_cv_func_res_nsearch=yes
;;
@@ -71533,7 +71166,7 @@
unset ac_cv_lib_resolv_res_nsearch
unset ac_cv_lib_resolv___res_nsearch
unset found
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for res_nsearch in -lresolv" >&5
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for res_nsearch in -lresolv" >&5
printf %s "checking for res_nsearch in -lresolv... " >&6; }
if test ${ac_cv_lib_resolv_res_nsearch+y}
then :
@@ -71574,14 +71207,14 @@
LIBS=$ac_check_lib_save_LIBS ;;
esac
fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_resolv_res_nsearch" >&5
-printf "%s\n" "$ac_cv_lib_resolv_res_nsearch" >&6; }
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_resolv_res_nsearch" >&5
+printf '%s\n' "$ac_cv_lib_resolv_res_nsearch" >&6; }
if test "x$ac_cv_lib_resolv_res_nsearch" = xyes
then :
found=yes
else case e in #(
e)
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for __res_nsearch in -lresolv" >&5
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for __res_nsearch in -lresolv" >&5
printf %s "checking for __res_nsearch in -lresolv... " >&6; }
if test ${ac_cv_lib_resolv___res_nsearch+y}
then :
@@ -71622,8 +71255,8 @@
LIBS=$ac_check_lib_save_LIBS ;;
esac
fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_resolv___res_nsearch" >&5
-printf "%s\n" "$ac_cv_lib_resolv___res_nsearch" >&6; }
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_resolv___res_nsearch" >&5
+printf '%s\n' "$ac_cv_lib_resolv___res_nsearch" >&6; }
if test "x$ac_cv_lib_resolv___res_nsearch" = xyes
then :
found=yes
@@ -71684,10 +71317,10 @@
-printf "%s\n" "#define HAVE_RES_NSEARCH 1" >>confdefs.h
+printf '%s\n' "#define HAVE_RES_NSEARCH 1" >>confdefs.h
-printf "%s\n" "#define HAVE_LIBRESOLV 1" >>confdefs.h
+printf '%s\n' "#define HAVE_LIBRESOLV 1" >>confdefs.h
ac_cv_func_res_nsearch=yes
else
@@ -71696,7 +71329,7 @@
unset ac_cv_lib_socket_res_nsearch
unset ac_cv_lib_socket___res_nsearch
unset found
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for res_nsearch in -lsocket" >&5
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for res_nsearch in -lsocket" >&5
printf %s "checking for res_nsearch in -lsocket... " >&6; }
if test ${ac_cv_lib_socket_res_nsearch+y}
then :
@@ -71737,14 +71370,14 @@
LIBS=$ac_check_lib_save_LIBS ;;
esac
fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_socket_res_nsearch" >&5
-printf "%s\n" "$ac_cv_lib_socket_res_nsearch" >&6; }
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_socket_res_nsearch" >&5
+printf '%s\n' "$ac_cv_lib_socket_res_nsearch" >&6; }
if test "x$ac_cv_lib_socket_res_nsearch" = xyes
then :
found=yes
else case e in #(
e)
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for __res_nsearch in -lsocket" >&5
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for __res_nsearch in -lsocket" >&5
printf %s "checking for __res_nsearch in -lsocket... " >&6; }
if test ${ac_cv_lib_socket___res_nsearch+y}
then :
@@ -71785,8 +71418,8 @@
LIBS=$ac_check_lib_save_LIBS ;;
esac
fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_socket___res_nsearch" >&5
-printf "%s\n" "$ac_cv_lib_socket___res_nsearch" >&6; }
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_socket___res_nsearch" >&5
+printf '%s\n' "$ac_cv_lib_socket___res_nsearch" >&6; }
if test "x$ac_cv_lib_socket___res_nsearch" = xyes
then :
found=yes
@@ -71847,10 +71480,10 @@
-printf "%s\n" "#define HAVE_RES_NSEARCH 1" >>confdefs.h
+printf '%s\n' "#define HAVE_RES_NSEARCH 1" >>confdefs.h
-printf "%s\n" "#define HAVE_LIBSOCKET 1" >>confdefs.h
+printf '%s\n' "#define HAVE_LIBSOCKET 1" >>confdefs.h
ac_cv_func_res_nsearch=yes
else
@@ -71892,7 +71525,7 @@
case $found in
yes)
-printf "%s\n" "#define HAVE_RES_NDESTROY 1" >>confdefs.h
+printf '%s\n' "#define HAVE_RES_NDESTROY 1" >>confdefs.h
ac_cv_func_res_ndestroy=yes
;;
@@ -71902,7 +71535,7 @@
unset ac_cv_lib_resolv_res_ndestroy
unset ac_cv_lib_resolv___res_ndestroy
unset found
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for res_ndestroy in -lresolv" >&5
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for res_ndestroy in -lresolv" >&5
printf %s "checking for res_ndestroy in -lresolv... " >&6; }
if test ${ac_cv_lib_resolv_res_ndestroy+y}
then :
@@ -71943,14 +71576,14 @@
LIBS=$ac_check_lib_save_LIBS ;;
esac
fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_resolv_res_ndestroy" >&5
-printf "%s\n" "$ac_cv_lib_resolv_res_ndestroy" >&6; }
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_resolv_res_ndestroy" >&5
+printf '%s\n' "$ac_cv_lib_resolv_res_ndestroy" >&6; }
if test "x$ac_cv_lib_resolv_res_ndestroy" = xyes
then :
found=yes
else case e in #(
e)
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for __res_ndestroy in -lresolv" >&5
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for __res_ndestroy in -lresolv" >&5
printf %s "checking for __res_ndestroy in -lresolv... " >&6; }
if test ${ac_cv_lib_resolv___res_ndestroy+y}
then :
@@ -71991,8 +71624,8 @@
LIBS=$ac_check_lib_save_LIBS ;;
esac
fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_resolv___res_ndestroy" >&5
-printf "%s\n" "$ac_cv_lib_resolv___res_ndestroy" >&6; }
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_resolv___res_ndestroy" >&5
+printf '%s\n' "$ac_cv_lib_resolv___res_ndestroy" >&6; }
if test "x$ac_cv_lib_resolv___res_ndestroy" = xyes
then :
found=yes
@@ -72053,10 +71686,10 @@
-printf "%s\n" "#define HAVE_RES_NDESTROY 1" >>confdefs.h
+printf '%s\n' "#define HAVE_RES_NDESTROY 1" >>confdefs.h
-printf "%s\n" "#define HAVE_LIBRESOLV 1" >>confdefs.h
+printf '%s\n' "#define HAVE_LIBRESOLV 1" >>confdefs.h
ac_cv_func_res_ndestroy=yes
else
@@ -72065,7 +71698,7 @@
unset ac_cv_lib_socket_res_ndestroy
unset ac_cv_lib_socket___res_ndestroy
unset found
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for res_ndestroy in -lsocket" >&5
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for res_ndestroy in -lsocket" >&5
printf %s "checking for res_ndestroy in -lsocket... " >&6; }
if test ${ac_cv_lib_socket_res_ndestroy+y}
then :
@@ -72106,14 +71739,14 @@
LIBS=$ac_check_lib_save_LIBS ;;
esac
fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_socket_res_ndestroy" >&5
-printf "%s\n" "$ac_cv_lib_socket_res_ndestroy" >&6; }
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_socket_res_ndestroy" >&5
+printf '%s\n' "$ac_cv_lib_socket_res_ndestroy" >&6; }
if test "x$ac_cv_lib_socket_res_ndestroy" = xyes
then :
found=yes
else case e in #(
e)
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for __res_ndestroy in -lsocket" >&5
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for __res_ndestroy in -lsocket" >&5
printf %s "checking for __res_ndestroy in -lsocket... " >&6; }
if test ${ac_cv_lib_socket___res_ndestroy+y}
then :
@@ -72154,8 +71787,8 @@
LIBS=$ac_check_lib_save_LIBS ;;
esac
fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_socket___res_ndestroy" >&5
-printf "%s\n" "$ac_cv_lib_socket___res_ndestroy" >&6; }
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_socket___res_ndestroy" >&5
+printf '%s\n' "$ac_cv_lib_socket___res_ndestroy" >&6; }
if test "x$ac_cv_lib_socket___res_ndestroy" = xyes
then :
found=yes
@@ -72216,10 +71849,10 @@
-printf "%s\n" "#define HAVE_RES_NDESTROY 1" >>confdefs.h
+printf '%s\n' "#define HAVE_RES_NDESTROY 1" >>confdefs.h
-printf "%s\n" "#define HAVE_LIBSOCKET 1" >>confdefs.h
+printf '%s\n' "#define HAVE_LIBSOCKET 1" >>confdefs.h
ac_cv_func_res_ndestroy=yes
else
@@ -72261,7 +71894,7 @@
case $found in
yes)
-printf "%s\n" "#define HAVE_DNS_SEARCH 1" >>confdefs.h
+printf '%s\n' "#define HAVE_DNS_SEARCH 1" >>confdefs.h
ac_cv_func_dns_search=yes
;;
@@ -72271,7 +71904,7 @@
unset ac_cv_lib_resolv_dns_search
unset ac_cv_lib_resolv___dns_search
unset found
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for dns_search in -lresolv" >&5
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for dns_search in -lresolv" >&5
printf %s "checking for dns_search in -lresolv... " >&6; }
if test ${ac_cv_lib_resolv_dns_search+y}
then :
@@ -72312,14 +71945,14 @@
LIBS=$ac_check_lib_save_LIBS ;;
esac
fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_resolv_dns_search" >&5
-printf "%s\n" "$ac_cv_lib_resolv_dns_search" >&6; }
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_resolv_dns_search" >&5
+printf '%s\n' "$ac_cv_lib_resolv_dns_search" >&6; }
if test "x$ac_cv_lib_resolv_dns_search" = xyes
then :
found=yes
else case e in #(
e)
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for __dns_search in -lresolv" >&5
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for __dns_search in -lresolv" >&5
printf %s "checking for __dns_search in -lresolv... " >&6; }
if test ${ac_cv_lib_resolv___dns_search+y}
then :
@@ -72360,8 +71993,8 @@
LIBS=$ac_check_lib_save_LIBS ;;
esac
fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_resolv___dns_search" >&5
-printf "%s\n" "$ac_cv_lib_resolv___dns_search" >&6; }
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_resolv___dns_search" >&5
+printf '%s\n' "$ac_cv_lib_resolv___dns_search" >&6; }
if test "x$ac_cv_lib_resolv___dns_search" = xyes
then :
found=yes
@@ -72422,10 +72055,10 @@
-printf "%s\n" "#define HAVE_DNS_SEARCH 1" >>confdefs.h
+printf '%s\n' "#define HAVE_DNS_SEARCH 1" >>confdefs.h
-printf "%s\n" "#define HAVE_LIBRESOLV 1" >>confdefs.h
+printf '%s\n' "#define HAVE_LIBRESOLV 1" >>confdefs.h
ac_cv_func_dns_search=yes
else
@@ -72434,7 +72067,7 @@
unset ac_cv_lib_socket_dns_search
unset ac_cv_lib_socket___dns_search
unset found
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for dns_search in -lsocket" >&5
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for dns_search in -lsocket" >&5
printf %s "checking for dns_search in -lsocket... " >&6; }
if test ${ac_cv_lib_socket_dns_search+y}
then :
@@ -72475,14 +72108,14 @@
LIBS=$ac_check_lib_save_LIBS ;;
esac
fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_socket_dns_search" >&5
-printf "%s\n" "$ac_cv_lib_socket_dns_search" >&6; }
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_socket_dns_search" >&5
+printf '%s\n' "$ac_cv_lib_socket_dns_search" >&6; }
if test "x$ac_cv_lib_socket_dns_search" = xyes
then :
found=yes
else case e in #(
e)
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for __dns_search in -lsocket" >&5
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for __dns_search in -lsocket" >&5
printf %s "checking for __dns_search in -lsocket... " >&6; }
if test ${ac_cv_lib_socket___dns_search+y}
then :
@@ -72523,8 +72156,8 @@
LIBS=$ac_check_lib_save_LIBS ;;
esac
fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_socket___dns_search" >&5
-printf "%s\n" "$ac_cv_lib_socket___dns_search" >&6; }
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_socket___dns_search" >&5
+printf '%s\n' "$ac_cv_lib_socket___dns_search" >&6; }
if test "x$ac_cv_lib_socket___dns_search" = xyes
then :
found=yes
@@ -72585,10 +72218,10 @@
-printf "%s\n" "#define HAVE_DNS_SEARCH 1" >>confdefs.h
+printf '%s\n' "#define HAVE_DNS_SEARCH 1" >>confdefs.h
-printf "%s\n" "#define HAVE_LIBSOCKET 1" >>confdefs.h
+printf '%s\n' "#define HAVE_LIBSOCKET 1" >>confdefs.h
ac_cv_func_dns_search=yes
else
@@ -72630,7 +72263,7 @@
case $found in
yes)
-printf "%s\n" "#define HAVE_DN_EXPAND 1" >>confdefs.h
+printf '%s\n' "#define HAVE_DN_EXPAND 1" >>confdefs.h
ac_cv_func_dn_expand=yes
;;
@@ -72640,7 +72273,7 @@
unset ac_cv_lib_resolv_dn_expand
unset ac_cv_lib_resolv___dn_expand
unset found
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for dn_expand in -lresolv" >&5
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for dn_expand in -lresolv" >&5
printf %s "checking for dn_expand in -lresolv... " >&6; }
if test ${ac_cv_lib_resolv_dn_expand+y}
then :
@@ -72681,14 +72314,14 @@
LIBS=$ac_check_lib_save_LIBS ;;
esac
fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_resolv_dn_expand" >&5
-printf "%s\n" "$ac_cv_lib_resolv_dn_expand" >&6; }
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_resolv_dn_expand" >&5
+printf '%s\n' "$ac_cv_lib_resolv_dn_expand" >&6; }
if test "x$ac_cv_lib_resolv_dn_expand" = xyes
then :
found=yes
else case e in #(
e)
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for __dn_expand in -lresolv" >&5
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for __dn_expand in -lresolv" >&5
printf %s "checking for __dn_expand in -lresolv... " >&6; }
if test ${ac_cv_lib_resolv___dn_expand+y}
then :
@@ -72729,8 +72362,8 @@
LIBS=$ac_check_lib_save_LIBS ;;
esac
fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_resolv___dn_expand" >&5
-printf "%s\n" "$ac_cv_lib_resolv___dn_expand" >&6; }
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_resolv___dn_expand" >&5
+printf '%s\n' "$ac_cv_lib_resolv___dn_expand" >&6; }
if test "x$ac_cv_lib_resolv___dn_expand" = xyes
then :
found=yes
@@ -72791,10 +72424,10 @@
-printf "%s\n" "#define HAVE_DN_EXPAND 1" >>confdefs.h
+printf '%s\n' "#define HAVE_DN_EXPAND 1" >>confdefs.h
-printf "%s\n" "#define HAVE_LIBRESOLV 1" >>confdefs.h
+printf '%s\n' "#define HAVE_LIBRESOLV 1" >>confdefs.h
ac_cv_func_dn_expand=yes
else
@@ -72803,7 +72436,7 @@
unset ac_cv_lib_socket_dn_expand
unset ac_cv_lib_socket___dn_expand
unset found
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for dn_expand in -lsocket" >&5
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for dn_expand in -lsocket" >&5
printf %s "checking for dn_expand in -lsocket... " >&6; }
if test ${ac_cv_lib_socket_dn_expand+y}
then :
@@ -72844,14 +72477,14 @@
LIBS=$ac_check_lib_save_LIBS ;;
esac
fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_socket_dn_expand" >&5
-printf "%s\n" "$ac_cv_lib_socket_dn_expand" >&6; }
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_socket_dn_expand" >&5
+printf '%s\n' "$ac_cv_lib_socket_dn_expand" >&6; }
if test "x$ac_cv_lib_socket_dn_expand" = xyes
then :
found=yes
else case e in #(
e)
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for __dn_expand in -lsocket" >&5
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for __dn_expand in -lsocket" >&5
printf %s "checking for __dn_expand in -lsocket... " >&6; }
if test ${ac_cv_lib_socket___dn_expand+y}
then :
@@ -72892,8 +72525,8 @@
LIBS=$ac_check_lib_save_LIBS ;;
esac
fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_socket___dn_expand" >&5
-printf "%s\n" "$ac_cv_lib_socket___dn_expand" >&6; }
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_socket___dn_expand" >&5
+printf '%s\n' "$ac_cv_lib_socket___dn_expand" >&6; }
if test "x$ac_cv_lib_socket___dn_expand" = xyes
then :
found=yes
@@ -72954,10 +72587,10 @@
-printf "%s\n" "#define HAVE_DN_EXPAND 1" >>confdefs.h
+printf '%s\n' "#define HAVE_DN_EXPAND 1" >>confdefs.h
-printf "%s\n" "#define HAVE_LIBSOCKET 1" >>confdefs.h
+printf '%s\n' "#define HAVE_LIBSOCKET 1" >>confdefs.h
ac_cv_func_dn_expand=yes
else
@@ -72999,7 +72632,7 @@
case $found in
yes)
-printf "%s\n" "#define HAVE_DN_SKIPNAME 1" >>confdefs.h
+printf '%s\n' "#define HAVE_DN_SKIPNAME 1" >>confdefs.h
ac_cv_func_dn_skipname=yes
;;
@@ -73009,7 +72642,7 @@
unset ac_cv_lib_resolv_dn_skipname
unset ac_cv_lib_resolv___dn_skipname
unset found
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for dn_skipname in -lresolv" >&5
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for dn_skipname in -lresolv" >&5
printf %s "checking for dn_skipname in -lresolv... " >&6; }
if test ${ac_cv_lib_resolv_dn_skipname+y}
then :
@@ -73050,14 +72683,14 @@
LIBS=$ac_check_lib_save_LIBS ;;
esac
fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_resolv_dn_skipname" >&5
-printf "%s\n" "$ac_cv_lib_resolv_dn_skipname" >&6; }
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_resolv_dn_skipname" >&5
+printf '%s\n' "$ac_cv_lib_resolv_dn_skipname" >&6; }
if test "x$ac_cv_lib_resolv_dn_skipname" = xyes
then :
found=yes
else case e in #(
e)
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for __dn_skipname in -lresolv" >&5
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for __dn_skipname in -lresolv" >&5
printf %s "checking for __dn_skipname in -lresolv... " >&6; }
if test ${ac_cv_lib_resolv___dn_skipname+y}
then :
@@ -73098,8 +72731,8 @@
LIBS=$ac_check_lib_save_LIBS ;;
esac
fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_resolv___dn_skipname" >&5
-printf "%s\n" "$ac_cv_lib_resolv___dn_skipname" >&6; }
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_resolv___dn_skipname" >&5
+printf '%s\n' "$ac_cv_lib_resolv___dn_skipname" >&6; }
if test "x$ac_cv_lib_resolv___dn_skipname" = xyes
then :
found=yes
@@ -73160,10 +72793,10 @@
-printf "%s\n" "#define HAVE_DN_SKIPNAME 1" >>confdefs.h
+printf '%s\n' "#define HAVE_DN_SKIPNAME 1" >>confdefs.h
-printf "%s\n" "#define HAVE_LIBRESOLV 1" >>confdefs.h
+printf '%s\n' "#define HAVE_LIBRESOLV 1" >>confdefs.h
ac_cv_func_dn_skipname=yes
else
@@ -73172,7 +72805,7 @@
unset ac_cv_lib_socket_dn_skipname
unset ac_cv_lib_socket___dn_skipname
unset found
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for dn_skipname in -lsocket" >&5
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for dn_skipname in -lsocket" >&5
printf %s "checking for dn_skipname in -lsocket... " >&6; }
if test ${ac_cv_lib_socket_dn_skipname+y}
then :
@@ -73213,14 +72846,14 @@
LIBS=$ac_check_lib_save_LIBS ;;
esac
fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_socket_dn_skipname" >&5
-printf "%s\n" "$ac_cv_lib_socket_dn_skipname" >&6; }
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_socket_dn_skipname" >&5
+printf '%s\n' "$ac_cv_lib_socket_dn_skipname" >&6; }
if test "x$ac_cv_lib_socket_dn_skipname" = xyes
then :
found=yes
else case e in #(
e)
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for __dn_skipname in -lsocket" >&5
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for __dn_skipname in -lsocket" >&5
printf %s "checking for __dn_skipname in -lsocket... " >&6; }
if test ${ac_cv_lib_socket___dn_skipname+y}
then :
@@ -73261,8 +72894,8 @@
LIBS=$ac_check_lib_save_LIBS ;;
esac
fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_socket___dn_skipname" >&5
-printf "%s\n" "$ac_cv_lib_socket___dn_skipname" >&6; }
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_socket___dn_skipname" >&5
+printf '%s\n' "$ac_cv_lib_socket___dn_skipname" >&6; }
if test "x$ac_cv_lib_socket___dn_skipname" = xyes
then :
found=yes
@@ -73323,10 +72956,10 @@
-printf "%s\n" "#define HAVE_DN_SKIPNAME 1" >>confdefs.h
+printf '%s\n' "#define HAVE_DN_SKIPNAME 1" >>confdefs.h
-printf "%s\n" "#define HAVE_LIBSOCKET 1" >>confdefs.h
+printf '%s\n' "#define HAVE_LIBSOCKET 1" >>confdefs.h
ac_cv_func_dn_skipname=yes
else
@@ -73370,7 +73003,7 @@
case $found in
yes)
-printf "%s\n" "#define HAVE_RES_SEARCH 1" >>confdefs.h
+printf '%s\n' "#define HAVE_RES_SEARCH 1" >>confdefs.h
ac_cv_func_res_search=yes
;;
@@ -73380,7 +73013,7 @@
unset ac_cv_lib_resolv_res_search
unset ac_cv_lib_resolv___res_search
unset found
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for res_search in -lresolv" >&5
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for res_search in -lresolv" >&5
printf %s "checking for res_search in -lresolv... " >&6; }
if test ${ac_cv_lib_resolv_res_search+y}
then :
@@ -73421,14 +73054,14 @@
LIBS=$ac_check_lib_save_LIBS ;;
esac
fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_resolv_res_search" >&5
-printf "%s\n" "$ac_cv_lib_resolv_res_search" >&6; }
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_resolv_res_search" >&5
+printf '%s\n' "$ac_cv_lib_resolv_res_search" >&6; }
if test "x$ac_cv_lib_resolv_res_search" = xyes
then :
found=yes
else case e in #(
e)
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for __res_search in -lresolv" >&5
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for __res_search in -lresolv" >&5
printf %s "checking for __res_search in -lresolv... " >&6; }
if test ${ac_cv_lib_resolv___res_search+y}
then :
@@ -73469,8 +73102,8 @@
LIBS=$ac_check_lib_save_LIBS ;;
esac
fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_resolv___res_search" >&5
-printf "%s\n" "$ac_cv_lib_resolv___res_search" >&6; }
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_resolv___res_search" >&5
+printf '%s\n' "$ac_cv_lib_resolv___res_search" >&6; }
if test "x$ac_cv_lib_resolv___res_search" = xyes
then :
found=yes
@@ -73531,10 +73164,10 @@
-printf "%s\n" "#define HAVE_RES_SEARCH 1" >>confdefs.h
+printf '%s\n' "#define HAVE_RES_SEARCH 1" >>confdefs.h
-printf "%s\n" "#define HAVE_LIBRESOLV 1" >>confdefs.h
+printf '%s\n' "#define HAVE_LIBRESOLV 1" >>confdefs.h
ac_cv_func_res_search=yes
else
@@ -73543,7 +73176,7 @@
unset ac_cv_lib_socket_res_search
unset ac_cv_lib_socket___res_search
unset found
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for res_search in -lsocket" >&5
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for res_search in -lsocket" >&5
printf %s "checking for res_search in -lsocket... " >&6; }
if test ${ac_cv_lib_socket_res_search+y}
then :
@@ -73584,14 +73217,14 @@
LIBS=$ac_check_lib_save_LIBS ;;
esac
fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_socket_res_search" >&5
-printf "%s\n" "$ac_cv_lib_socket_res_search" >&6; }
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_socket_res_search" >&5
+printf '%s\n' "$ac_cv_lib_socket_res_search" >&6; }
if test "x$ac_cv_lib_socket_res_search" = xyes
then :
found=yes
else case e in #(
e)
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for __res_search in -lsocket" >&5
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for __res_search in -lsocket" >&5
printf %s "checking for __res_search in -lsocket... " >&6; }
if test ${ac_cv_lib_socket___res_search+y}
then :
@@ -73632,8 +73265,8 @@
LIBS=$ac_check_lib_save_LIBS ;;
esac
fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_socket___res_search" >&5
-printf "%s\n" "$ac_cv_lib_socket___res_search" >&6; }
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_socket___res_search" >&5
+printf '%s\n' "$ac_cv_lib_socket___res_search" >&6; }
if test "x$ac_cv_lib_socket___res_search" = xyes
then :
found=yes
@@ -73694,10 +73327,10 @@
-printf "%s\n" "#define HAVE_RES_SEARCH 1" >>confdefs.h
+printf '%s\n' "#define HAVE_RES_SEARCH 1" >>confdefs.h
-printf "%s\n" "#define HAVE_LIBSOCKET 1" >>confdefs.h
+printf '%s\n' "#define HAVE_LIBSOCKET 1" >>confdefs.h
ac_cv_func_res_search=yes
else
@@ -73714,33 +73347,39 @@
esac
+ac_fn_c_check_func "$LINENO" "posix_spawn_file_actions_addchdir" "ac_cv_func_posix_spawn_file_actions_addchdir"
+if test "x$ac_cv_func_posix_spawn_file_actions_addchdir" = xyes
+then :
+ printf '%s\n' "#define HAVE_POSIX_SPAWN_FILE_ACTIONS_ADDCHDIR 1" >>confdefs.h
+
+fi
ac_fn_c_check_func "$LINENO" "posix_spawn_file_actions_addchdir_np" "ac_cv_func_posix_spawn_file_actions_addchdir_np"
if test "x$ac_cv_func_posix_spawn_file_actions_addchdir_np" = xyes
then :
- printf "%s\n" "#define HAVE_POSIX_SPAWN_FILE_ACTIONS_ADDCHDIR_NP 1" >>confdefs.h
+ printf '%s\n' "#define HAVE_POSIX_SPAWN_FILE_ACTIONS_ADDCHDIR_NP 1" >>confdefs.h
fi
ac_fn_c_check_func "$LINENO" "elf_aux_info" "ac_cv_func_elf_aux_info"
if test "x$ac_cv_func_elf_aux_info" = xyes
then :
- printf "%s\n" "#define HAVE_ELF_AUX_INFO 1" >>confdefs.h
+ printf '%s\n' "#define HAVE_ELF_AUX_INFO 1" >>confdefs.h
fi
ac_fn_check_decl "$LINENO" "strptime" "ac_cv_have_decl_strptime" "#include
-" "$ac_c_undeclared_builtin_options" "CFLAGS"
+" "$ac_c_undeclared_builtin_options$ac_c_future_darwin_options" "CFLAGS"
if test "x$ac_cv_have_decl_strptime" = xyes
then :
-printf "%s\n" "#define HAVE_DECL_STRPTIME 1" >>confdefs.h
+printf '%s\n' "#define HAVE_DECL_STRPTIME 1" >>confdefs.h
fi
php_with_password_argon2=no
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for Argon2 support" >&5
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for Argon2 support" >&5
printf %s "checking for Argon2 support... " >&6; }
# Check whether --with-password-argon2 was given.
@@ -73778,8 +73417,8 @@
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ext_output" >&5
-printf "%s\n" "$ext_output" >&6; }
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $ext_output" >&5
+printf '%s\n' "$ext_output" >&6; }
@@ -73791,17 +73430,17 @@
e)
pkg_failed=no
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for libargon2" >&5
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for libargon2" >&5
printf %s "checking for libargon2... " >&6; }
if test -n "$ARGON2_CFLAGS"; then
pkg_cv_ARGON2_CFLAGS="$ARGON2_CFLAGS"
elif test -n "$PKG_CONFIG"; then
if test -n "$PKG_CONFIG" && \
- { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libargon2\""; } >&5
+ { { printf '%s\n' "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libargon2\""; } >&5
($PKG_CONFIG --exists --print-errors "libargon2") 2>&5
ac_status=$?
- printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ printf '%s\n' "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
test $ac_status = 0; }; then
pkg_cv_ARGON2_CFLAGS=`$PKG_CONFIG --cflags "libargon2" 2>/dev/null`
test "x$?" != "x0" && pkg_failed=yes
@@ -73815,10 +73454,10 @@
pkg_cv_ARGON2_LIBS="$ARGON2_LIBS"
elif test -n "$PKG_CONFIG"; then
if test -n "$PKG_CONFIG" && \
- { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libargon2\""; } >&5
+ { { printf '%s\n' "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libargon2\""; } >&5
($PKG_CONFIG --exists --print-errors "libargon2") 2>&5
ac_status=$?
- printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ printf '%s\n' "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
test $ac_status = 0; }; then
pkg_cv_ARGON2_LIBS=`$PKG_CONFIG --libs "libargon2" 2>/dev/null`
test "x$?" != "x0" && pkg_failed=yes
@@ -73832,8 +73471,8 @@
if test $pkg_failed = yes; then
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
-printf "%s\n" "no" >&6; }
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf '%s\n' "no" >&6; }
if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then
_pkg_short_errors_supported=yes
@@ -73859,10 +73498,10 @@
and ARGON2_LIBS to avoid the need to call pkg-config.
See the pkg-config man page for more details." "$LINENO" 5
elif test $pkg_failed = untried; then
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
-printf "%s\n" "no" >&6; }
- { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in '$ac_pwd':" >&5
-printf "%s\n" "$as_me: error: in '$ac_pwd':" >&2;}
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf '%s\n' "no" >&6; }
+ { { printf '%s\n' "$as_me:${as_lineno-$LINENO}: error: in '$ac_pwd':" >&5
+printf '%s\n' "$as_me: error: in '$ac_pwd':" >&2;}
as_fn_error $? "The pkg-config script could not be found or is too old. Make sure it
is in your PATH or set the PKG_CONFIG environment variable to the full
path to pkg-config.
@@ -73876,8 +73515,8 @@
else
ARGON2_CFLAGS=$pkg_cv_ARGON2_CFLAGS
ARGON2_LIBS=$pkg_cv_ARGON2_LIBS
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-printf "%s\n" "yes" >&6; }
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+printf '%s\n' "yes" >&6; }
fi
@@ -74019,7 +73658,7 @@
-printf "%s\n" "#define HAVE_ARGON2LIB 1" >>confdefs.h
+printf '%s\n' "#define HAVE_ARGON2LIB 1" >>confdefs.h
;;
esac
@@ -74032,12 +73671,12 @@
"
if test "x$ac_cv_header_net_if_h" = xyes
then :
- printf "%s\n" "#define HAVE_NET_IF_H 1" >>confdefs.h
+ printf '%s\n' "#define HAVE_NET_IF_H 1" >>confdefs.h
fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for usable getifaddrs" >&5
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for usable getifaddrs" >&5
printf %s "checking for usable getifaddrs... " >&6; }
if test ${php_cv_func_getifaddrs+y}
then :
@@ -74073,12 +73712,12 @@
conftest$ac_exeext conftest.$ac_ext ;;
esac
fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $php_cv_func_getifaddrs" >&5
-printf "%s\n" "$php_cv_func_getifaddrs" >&6; }
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $php_cv_func_getifaddrs" >&5
+printf '%s\n' "$php_cv_func_getifaddrs" >&6; }
if test "x$php_cv_func_getifaddrs" = xyes
then :
-printf "%s\n" "#define HAVE_GETIFADDRS 1" >>confdefs.h
+printf '%s\n' "#define HAVE_GETIFADDRS 1" >>confdefs.h
fi
@@ -74217,7 +73856,7 @@
EOF
-printf "%s\n" "#define COMPILE_DL_STANDARD 1" >>confdefs.h
+printf '%s\n' "#define COMPILE_DL_STANDARD 1" >>confdefs.h
fi
fi
@@ -74366,7 +74005,7 @@
php_enable_sysvmsg=no
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether to enable System V IPC support" >&5
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking whether to enable System V IPC support" >&5
printf %s "checking whether to enable System V IPC support... " >&6; }
# Check whether --enable-sysvmsg was given.
if test ${enable_sysvmsg+y}
@@ -74403,8 +74042,8 @@
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ext_output" >&5
-printf "%s\n" "$ext_output" >&6; }
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $ext_output" >&5
+printf '%s\n' "$ext_output" >&6; }
@@ -74415,8 +74054,8 @@
then :
else case e in #(
- e) { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in '$ac_pwd':" >&5
-printf "%s\n" "$as_me: error: in '$ac_pwd':" >&2;}
+ e) { { printf '%s\n' "$as_me:${as_lineno-$LINENO}: error: in '$ac_pwd':" >&5
+printf '%s\n' "$as_me: error: in '$ac_pwd':" >&2;}
as_fn_error $? "Cannot enable System V IPC support. Required header file not
found.
See 'config.log' for more details" "$LINENO" 5; } ;;
@@ -74425,7 +74064,7 @@
-printf "%s\n" "#define HAVE_SYSVMSG 1" >>confdefs.h
+printf '%s\n' "#define HAVE_SYSVMSG 1" >>confdefs.h
ext_builddir=ext/sysvmsg
@@ -74562,7 +74201,7 @@
EOF
-printf "%s\n" "#define COMPILE_DL_SYSVMSG 1" >>confdefs.h
+printf '%s\n' "#define COMPILE_DL_SYSVMSG 1" >>confdefs.h
fi
fi
@@ -74688,7 +74327,7 @@
php_enable_sysvsem=no
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether to enable System V semaphore support" >&5
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking whether to enable System V semaphore support" >&5
printf %s "checking whether to enable System V semaphore support... " >&6; }
# Check whether --enable-sysvsem was given.
if test ${enable_sysvsem+y}
@@ -74725,8 +74364,8 @@
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ext_output" >&5
-printf "%s\n" "$ext_output" >&6; }
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $ext_output" >&5
+printf '%s\n' "$ext_output" >&6; }
@@ -74867,7 +74506,7 @@
EOF
-printf "%s\n" "#define COMPILE_DL_SYSVSEM 1" >>confdefs.h
+printf '%s\n' "#define COMPILE_DL_SYSVSEM 1" >>confdefs.h
fi
fi
@@ -74986,7 +74625,7 @@
fi
-printf "%s\n" "#define HAVE_SYSVSEM 1" >>confdefs.h
+printf '%s\n' "#define HAVE_SYSVSEM 1" >>confdefs.h
ac_fn_c_check_type "$LINENO" "union semun" "ac_cv_type_union_semun" "
#include
@@ -74997,7 +74636,7 @@
if test "x$ac_cv_type_union_semun" = xyes
then :
-printf "%s\n" "#define HAVE_UNION_SEMUN 1" >>confdefs.h
+printf '%s\n' "#define HAVE_UNION_SEMUN 1" >>confdefs.h
fi
@@ -75010,7 +74649,7 @@
php_enable_sysvshm=no
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether to enable System V shared memory support" >&5
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking whether to enable System V shared memory support" >&5
printf %s "checking whether to enable System V shared memory support... " >&6; }
# Check whether --enable-sysvshm was given.
if test ${enable_sysvshm+y}
@@ -75047,15 +74686,15 @@
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ext_output" >&5
-printf "%s\n" "$ext_output" >&6; }
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $ext_output" >&5
+printf '%s\n' "$ext_output" >&6; }
if test "$PHP_SYSVSHM" != "no"; then
-printf "%s\n" "#define HAVE_SYSVSHM 1" >>confdefs.h
+printf '%s\n' "#define HAVE_SYSVSHM 1" >>confdefs.h
ext_builddir=ext/sysvshm
@@ -75192,7 +74831,7 @@
EOF
-printf "%s\n" "#define COMPILE_DL_SYSVSHM 1" >>confdefs.h
+printf '%s\n' "#define COMPILE_DL_SYSVSHM 1" >>confdefs.h
fi
fi
@@ -75318,7 +74957,7 @@
php_with_tidy=no
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for TIDY support" >&5
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for TIDY support" >&5
printf %s "checking for TIDY support... " >&6; }
# Check whether --with-tidy was given.
@@ -75356,8 +74995,8 @@
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ext_output" >&5
-printf "%s\n" "$ext_output" >&6; }
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $ext_output" >&5
+printf '%s\n' "$ext_output" >&6; }
@@ -75401,7 +75040,7 @@
if test -f "$TIDY_INCDIR/tidybuffio.h"
then :
-printf "%s\n" "#define HAVE_TIDYBUFFIO_H 1" >>confdefs.h
+printf '%s\n' "#define HAVE_TIDYBUFFIO_H 1" >>confdefs.h
fi
@@ -75409,11 +75048,11 @@
if test "x$TIDY_LIB_NAME" = xtidyp
then :
-printf "%s\n" "#define HAVE_TIDYP_H 1" >>confdefs.h
+printf '%s\n' "#define HAVE_TIDYP_H 1" >>confdefs.h
else case e in #(
e)
-printf "%s\n" "#define HAVE_TIDY_H 1" >>confdefs.h
+printf '%s\n' "#define HAVE_TIDY_H 1" >>confdefs.h
;;
esac
fi
@@ -75536,8 +75175,8 @@
esac
done
- as_ac_Lib=`printf "%s\n" "ac_cv_lib_$TIDY_LIB_NAME""_tidyOptGetDoc" | sed "$as_sed_sh"`
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for tidyOptGetDoc in -l$TIDY_LIB_NAME" >&5
+ as_ac_Lib=`printf '%s\n' "ac_cv_lib_$TIDY_LIB_NAME""_tidyOptGetDoc" | sed "$as_sed_sh"`
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for tidyOptGetDoc in -l$TIDY_LIB_NAME" >&5
printf %s "checking for tidyOptGetDoc in -l$TIDY_LIB_NAME... " >&6; }
if eval test \${$as_ac_Lib+y}
then :
@@ -75579,15 +75218,15 @@
esac
fi
eval ac_res=\$$as_ac_Lib
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
-printf "%s\n" "$ac_res" >&6; }
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
+printf '%s\n' "$ac_res" >&6; }
if eval test \"x\$"$as_ac_Lib"\" = x"yes"
then :
LDFLAGS=$save_old_LDFLAGS
ext_shared=$save_ext_shared
-printf "%s\n" "#define HAVE_TIDYOPTGETDOC 1" >>confdefs.h
+printf '%s\n' "#define HAVE_TIDYOPTGETDOC 1" >>confdefs.h
else case e in #(
@@ -75713,7 +75352,7 @@
esac
done
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for tidyOptGetDoc in -ltidy5" >&5
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for tidyOptGetDoc in -ltidy5" >&5
printf %s "checking for tidyOptGetDoc in -ltidy5... " >&6; }
if test ${ac_cv_lib_tidy5_tidyOptGetDoc+y}
then :
@@ -75754,15 +75393,15 @@
LIBS=$ac_check_lib_save_LIBS ;;
esac
fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_tidy5_tidyOptGetDoc" >&5
-printf "%s\n" "$ac_cv_lib_tidy5_tidyOptGetDoc" >&6; }
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_tidy5_tidyOptGetDoc" >&5
+printf '%s\n' "$ac_cv_lib_tidy5_tidyOptGetDoc" >&6; }
if test "x$ac_cv_lib_tidy5_tidyOptGetDoc" = xyes
then :
LDFLAGS=$save_old_LDFLAGS
ext_shared=$save_ext_shared
TIDY_LIB_NAME=tidy5
- printf "%s\n" "#define HAVE_TIDYOPTGETDOC 1" >>confdefs.h
+ printf '%s\n' "#define HAVE_TIDYOPTGETDOC 1" >>confdefs.h
else case e in #(
@@ -75898,8 +75537,8 @@
esac
done
- as_ac_Lib=`printf "%s\n" "ac_cv_lib_$TIDY_LIB_NAME""_tidyReleaseDate" | sed "$as_sed_sh"`
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for tidyReleaseDate in -l$TIDY_LIB_NAME" >&5
+ as_ac_Lib=`printf '%s\n' "ac_cv_lib_$TIDY_LIB_NAME""_tidyReleaseDate" | sed "$as_sed_sh"`
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for tidyReleaseDate in -l$TIDY_LIB_NAME" >&5
printf %s "checking for tidyReleaseDate in -l$TIDY_LIB_NAME... " >&6; }
if eval test \${$as_ac_Lib+y}
then :
@@ -75941,15 +75580,15 @@
esac
fi
eval ac_res=\$$as_ac_Lib
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
-printf "%s\n" "$ac_res" >&6; }
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
+printf '%s\n' "$ac_res" >&6; }
if eval test \"x\$"$as_ac_Lib"\" = x"yes"
then :
LDFLAGS=$save_old_LDFLAGS
ext_shared=$save_ext_shared
-printf "%s\n" "#define HAVE_TIDYRELEASEDATE 1" >>confdefs.h
+printf '%s\n' "#define HAVE_TIDYRELEASEDATE 1" >>confdefs.h
else case e in #(
@@ -76106,7 +75745,7 @@
old_CPPFLAGS=$CPPFLAGS
CPPFLAGS=-I$TIDY_INCDIR
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for tidyOptGetCategory" >&5
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for tidyOptGetCategory" >&5
printf %s "checking for tidyOptGetCategory... " >&6; }
if test ${php_ac_cv_have_tidyoptgetcategory+y}
then :
@@ -76140,12 +75779,12 @@
;;
esac
fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $php_ac_cv_have_tidyoptgetcategory" >&5
-printf "%s\n" "$php_ac_cv_have_tidyoptgetcategory" >&6; }
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $php_ac_cv_have_tidyoptgetcategory" >&5
+printf '%s\n' "$php_ac_cv_have_tidyoptgetcategory" >&6; }
if test "x$php_ac_cv_have_tidyoptgetcategory" = xyes
then :
-printf "%s\n" "#define HAVE_TIDYOPTGETCATEGORY 1" >>confdefs.h
+printf '%s\n' "#define HAVE_TIDYOPTGETCATEGORY 1" >>confdefs.h
fi
@@ -76286,7 +75925,7 @@
EOF
-printf "%s\n" "#define COMPILE_DL_TIDY 1" >>confdefs.h
+printf '%s\n' "#define COMPILE_DL_TIDY 1" >>confdefs.h
fi
fi
@@ -76408,7 +76047,7 @@
PHP_VAR_SUBST="$PHP_VAR_SUBST TIDY_SHARED_LIBADD"
-printf "%s\n" "#define HAVE_TIDY 1" >>confdefs.h
+printf '%s\n' "#define HAVE_TIDY 1" >>confdefs.h
fi
@@ -76418,7 +76057,7 @@
php_enable_tokenizer=yes
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether to enable tokenizer support" >&5
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking whether to enable tokenizer support" >&5
printf %s "checking whether to enable tokenizer support... " >&6; }
# Check whether --enable-tokenizer was given.
if test ${enable_tokenizer+y}
@@ -76455,8 +76094,8 @@
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ext_output" >&5
-printf "%s\n" "$ext_output" >&6; }
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $ext_output" >&5
+printf '%s\n' "$ext_output" >&6; }
@@ -76597,7 +76236,7 @@
EOF
-printf "%s\n" "#define COMPILE_DL_TOKENIZER 1" >>confdefs.h
+printf '%s\n' "#define COMPILE_DL_TOKENIZER 1" >>confdefs.h
fi
fi
@@ -76728,7 +76367,7 @@
php_enable_xml=yes
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether to enable XML support" >&5
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking whether to enable XML support" >&5
printf %s "checking whether to enable XML support... " >&6; }
# Check whether --enable-xml was given.
if test ${enable_xml+y}
@@ -76765,8 +76404,8 @@
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ext_output" >&5
-printf "%s\n" "$ext_output" >&6; }
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $ext_output" >&5
+printf '%s\n' "$ext_output" >&6; }
@@ -76774,7 +76413,7 @@
php_with_expat=no
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether to build with Expat support" >&5
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking whether to build with Expat support" >&5
printf %s "checking whether to build with Expat support... " >&6; }
# Check whether --with-expat was given.
@@ -76791,8 +76430,8 @@
ext_output=$PHP_EXPAT
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ext_output" >&5
-printf "%s\n" "$ext_output" >&6; }
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $ext_output" >&5
+printf '%s\n' "$ext_output" >&6; }
@@ -76803,17 +76442,17 @@
pkg_failed=no
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for libxml-2.0 >= 2.9.4" >&5
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for libxml-2.0 >= 2.9.4" >&5
printf %s "checking for libxml-2.0 >= 2.9.4... " >&6; }
if test -n "$LIBXML_CFLAGS"; then
pkg_cv_LIBXML_CFLAGS="$LIBXML_CFLAGS"
elif test -n "$PKG_CONFIG"; then
if test -n "$PKG_CONFIG" && \
- { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libxml-2.0 >= 2.9.4\""; } >&5
+ { { printf '%s\n' "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libxml-2.0 >= 2.9.4\""; } >&5
($PKG_CONFIG --exists --print-errors "libxml-2.0 >= 2.9.4") 2>&5
ac_status=$?
- printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ printf '%s\n' "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
test $ac_status = 0; }; then
pkg_cv_LIBXML_CFLAGS=`$PKG_CONFIG --cflags "libxml-2.0 >= 2.9.4" 2>/dev/null`
test "x$?" != "x0" && pkg_failed=yes
@@ -76827,10 +76466,10 @@
pkg_cv_LIBXML_LIBS="$LIBXML_LIBS"
elif test -n "$PKG_CONFIG"; then
if test -n "$PKG_CONFIG" && \
- { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libxml-2.0 >= 2.9.4\""; } >&5
+ { { printf '%s\n' "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libxml-2.0 >= 2.9.4\""; } >&5
($PKG_CONFIG --exists --print-errors "libxml-2.0 >= 2.9.4") 2>&5
ac_status=$?
- printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ printf '%s\n' "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
test $ac_status = 0; }; then
pkg_cv_LIBXML_LIBS=`$PKG_CONFIG --libs "libxml-2.0 >= 2.9.4" 2>/dev/null`
test "x$?" != "x0" && pkg_failed=yes
@@ -76844,8 +76483,8 @@
if test $pkg_failed = yes; then
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
-printf "%s\n" "no" >&6; }
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf '%s\n' "no" >&6; }
if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then
_pkg_short_errors_supported=yes
@@ -76871,10 +76510,10 @@
and LIBXML_LIBS to avoid the need to call pkg-config.
See the pkg-config man page for more details." "$LINENO" 5
elif test $pkg_failed = untried; then
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
-printf "%s\n" "no" >&6; }
- { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in '$ac_pwd':" >&5
-printf "%s\n" "$as_me: error: in '$ac_pwd':" >&2;}
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf '%s\n' "no" >&6; }
+ { { printf '%s\n' "$as_me:${as_lineno-$LINENO}: error: in '$ac_pwd':" >&5
+printf '%s\n' "$as_me: error: in '$ac_pwd':" >&2;}
as_fn_error $? "The pkg-config script could not be found or is too old. Make sure it
is in your PATH or set the PKG_CONFIG environment variable to the full
path to pkg-config.
@@ -76888,8 +76527,8 @@
else
LIBXML_CFLAGS=$pkg_cv_LIBXML_CFLAGS
LIBXML_LIBS=$pkg_cv_LIBXML_LIBS
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-printf "%s\n" "yes" >&6; }
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+printf '%s\n' "yes" >&6; }
fi
@@ -77053,17 +76692,17 @@
e)
pkg_failed=no
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for expat" >&5
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for expat" >&5
printf %s "checking for expat... " >&6; }
if test -n "$EXPAT_CFLAGS"; then
pkg_cv_EXPAT_CFLAGS="$EXPAT_CFLAGS"
elif test -n "$PKG_CONFIG"; then
if test -n "$PKG_CONFIG" && \
- { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"expat\""; } >&5
+ { { printf '%s\n' "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"expat\""; } >&5
($PKG_CONFIG --exists --print-errors "expat") 2>&5
ac_status=$?
- printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ printf '%s\n' "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
test $ac_status = 0; }; then
pkg_cv_EXPAT_CFLAGS=`$PKG_CONFIG --cflags "expat" 2>/dev/null`
test "x$?" != "x0" && pkg_failed=yes
@@ -77077,10 +76716,10 @@
pkg_cv_EXPAT_LIBS="$EXPAT_LIBS"
elif test -n "$PKG_CONFIG"; then
if test -n "$PKG_CONFIG" && \
- { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"expat\""; } >&5
+ { { printf '%s\n' "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"expat\""; } >&5
($PKG_CONFIG --exists --print-errors "expat") 2>&5
ac_status=$?
- printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ printf '%s\n' "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
test $ac_status = 0; }; then
pkg_cv_EXPAT_LIBS=`$PKG_CONFIG --libs "expat" 2>/dev/null`
test "x$?" != "x0" && pkg_failed=yes
@@ -77094,8 +76733,8 @@
if test $pkg_failed = yes; then
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
-printf "%s\n" "no" >&6; }
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf '%s\n' "no" >&6; }
if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then
_pkg_short_errors_supported=yes
@@ -77121,10 +76760,10 @@
and EXPAT_LIBS to avoid the need to call pkg-config.
See the pkg-config man page for more details." "$LINENO" 5
elif test $pkg_failed = untried; then
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
-printf "%s\n" "no" >&6; }
- { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in '$ac_pwd':" >&5
-printf "%s\n" "$as_me: error: in '$ac_pwd':" >&2;}
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf '%s\n' "no" >&6; }
+ { { printf '%s\n' "$as_me:${as_lineno-$LINENO}: error: in '$ac_pwd':" >&5
+printf '%s\n' "$as_me: error: in '$ac_pwd':" >&2;}
as_fn_error $? "The pkg-config script could not be found or is too old. Make sure it
is in your PATH or set the PKG_CONFIG environment variable to the full
path to pkg-config.
@@ -77138,8 +76777,8 @@
else
EXPAT_CFLAGS=$pkg_cv_EXPAT_CFLAGS
EXPAT_LIBS=$pkg_cv_EXPAT_LIBS
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-printf "%s\n" "yes" >&6; }
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+printf '%s\n' "yes" >&6; }
fi
@@ -77298,7 +76937,7 @@
done
-printf "%s\n" "#define HAVE_LIBEXPAT 1" >>confdefs.h
+printf '%s\n' "#define HAVE_LIBEXPAT 1" >>confdefs.h
;;
esac
@@ -77439,7 +77078,7 @@
EOF
-printf "%s\n" "#define COMPILE_DL_XML 1" >>confdefs.h
+printf '%s\n' "#define COMPILE_DL_XML 1" >>confdefs.h
fi
fi
@@ -77604,7 +77243,7 @@
-printf "%s\n" "#define HAVE_XML 1" >>confdefs.h
+printf '%s\n' "#define HAVE_XML 1" >>confdefs.h
fi
@@ -77614,7 +77253,7 @@
php_enable_xmlreader=yes
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether to enable XMLReader support" >&5
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking whether to enable XMLReader support" >&5
printf %s "checking whether to enable XMLReader support... " >&6; }
# Check whether --enable-xmlreader was given.
if test ${enable_xmlreader+y}
@@ -77651,8 +77290,8 @@
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ext_output" >&5
-printf "%s\n" "$ext_output" >&6; }
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $ext_output" >&5
+printf '%s\n' "$ext_output" >&6; }
@@ -77661,17 +77300,17 @@
pkg_failed=no
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for libxml-2.0 >= 2.9.4" >&5
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for libxml-2.0 >= 2.9.4" >&5
printf %s "checking for libxml-2.0 >= 2.9.4... " >&6; }
if test -n "$LIBXML_CFLAGS"; then
pkg_cv_LIBXML_CFLAGS="$LIBXML_CFLAGS"
elif test -n "$PKG_CONFIG"; then
if test -n "$PKG_CONFIG" && \
- { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libxml-2.0 >= 2.9.4\""; } >&5
+ { { printf '%s\n' "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libxml-2.0 >= 2.9.4\""; } >&5
($PKG_CONFIG --exists --print-errors "libxml-2.0 >= 2.9.4") 2>&5
ac_status=$?
- printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ printf '%s\n' "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
test $ac_status = 0; }; then
pkg_cv_LIBXML_CFLAGS=`$PKG_CONFIG --cflags "libxml-2.0 >= 2.9.4" 2>/dev/null`
test "x$?" != "x0" && pkg_failed=yes
@@ -77685,10 +77324,10 @@
pkg_cv_LIBXML_LIBS="$LIBXML_LIBS"
elif test -n "$PKG_CONFIG"; then
if test -n "$PKG_CONFIG" && \
- { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libxml-2.0 >= 2.9.4\""; } >&5
+ { { printf '%s\n' "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libxml-2.0 >= 2.9.4\""; } >&5
($PKG_CONFIG --exists --print-errors "libxml-2.0 >= 2.9.4") 2>&5
ac_status=$?
- printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ printf '%s\n' "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
test $ac_status = 0; }; then
pkg_cv_LIBXML_LIBS=`$PKG_CONFIG --libs "libxml-2.0 >= 2.9.4" 2>/dev/null`
test "x$?" != "x0" && pkg_failed=yes
@@ -77702,8 +77341,8 @@
if test $pkg_failed = yes; then
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
-printf "%s\n" "no" >&6; }
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf '%s\n' "no" >&6; }
if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then
_pkg_short_errors_supported=yes
@@ -77729,10 +77368,10 @@
and LIBXML_LIBS to avoid the need to call pkg-config.
See the pkg-config man page for more details." "$LINENO" 5
elif test $pkg_failed = untried; then
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
-printf "%s\n" "no" >&6; }
- { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in '$ac_pwd':" >&5
-printf "%s\n" "$as_me: error: in '$ac_pwd':" >&2;}
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf '%s\n' "no" >&6; }
+ { { printf '%s\n' "$as_me:${as_lineno-$LINENO}: error: in '$ac_pwd':" >&5
+printf '%s\n' "$as_me: error: in '$ac_pwd':" >&2;}
as_fn_error $? "The pkg-config script could not be found or is too old. Make sure it
is in your PATH or set the PKG_CONFIG environment variable to the full
path to pkg-config.
@@ -77746,8 +77385,8 @@
else
LIBXML_CFLAGS=$pkg_cv_LIBXML_CFLAGS
LIBXML_LIBS=$pkg_cv_LIBXML_LIBS
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-printf "%s\n" "yes" >&6; }
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+printf '%s\n' "yes" >&6; }
fi
@@ -77907,7 +77546,7 @@
-printf "%s\n" "#define HAVE_XMLREADER 1" >>confdefs.h
+printf '%s\n' "#define HAVE_XMLREADER 1" >>confdefs.h
ext_builddir=ext/xmlreader
@@ -78044,7 +77683,7 @@
EOF
-printf "%s\n" "#define COMPILE_DL_XMLREADER 1" >>confdefs.h
+printf '%s\n' "#define COMPILE_DL_XMLREADER 1" >>confdefs.h
fi
fi
@@ -78213,7 +77852,7 @@
php_enable_xmlwriter=yes
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether to enable XMLWriter support" >&5
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking whether to enable XMLWriter support" >&5
printf %s "checking whether to enable XMLWriter support... " >&6; }
# Check whether --enable-xmlwriter was given.
if test ${enable_xmlwriter+y}
@@ -78250,8 +77889,8 @@
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ext_output" >&5
-printf "%s\n" "$ext_output" >&6; }
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $ext_output" >&5
+printf '%s\n' "$ext_output" >&6; }
@@ -78260,17 +77899,17 @@
pkg_failed=no
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for libxml-2.0 >= 2.9.4" >&5
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for libxml-2.0 >= 2.9.4" >&5
printf %s "checking for libxml-2.0 >= 2.9.4... " >&6; }
if test -n "$LIBXML_CFLAGS"; then
pkg_cv_LIBXML_CFLAGS="$LIBXML_CFLAGS"
elif test -n "$PKG_CONFIG"; then
if test -n "$PKG_CONFIG" && \
- { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libxml-2.0 >= 2.9.4\""; } >&5
+ { { printf '%s\n' "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libxml-2.0 >= 2.9.4\""; } >&5
($PKG_CONFIG --exists --print-errors "libxml-2.0 >= 2.9.4") 2>&5
ac_status=$?
- printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ printf '%s\n' "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
test $ac_status = 0; }; then
pkg_cv_LIBXML_CFLAGS=`$PKG_CONFIG --cflags "libxml-2.0 >= 2.9.4" 2>/dev/null`
test "x$?" != "x0" && pkg_failed=yes
@@ -78284,10 +77923,10 @@
pkg_cv_LIBXML_LIBS="$LIBXML_LIBS"
elif test -n "$PKG_CONFIG"; then
if test -n "$PKG_CONFIG" && \
- { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libxml-2.0 >= 2.9.4\""; } >&5
+ { { printf '%s\n' "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libxml-2.0 >= 2.9.4\""; } >&5
($PKG_CONFIG --exists --print-errors "libxml-2.0 >= 2.9.4") 2>&5
ac_status=$?
- printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ printf '%s\n' "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
test $ac_status = 0; }; then
pkg_cv_LIBXML_LIBS=`$PKG_CONFIG --libs "libxml-2.0 >= 2.9.4" 2>/dev/null`
test "x$?" != "x0" && pkg_failed=yes
@@ -78301,8 +77940,8 @@
if test $pkg_failed = yes; then
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
-printf "%s\n" "no" >&6; }
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf '%s\n' "no" >&6; }
if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then
_pkg_short_errors_supported=yes
@@ -78328,10 +77967,10 @@
and LIBXML_LIBS to avoid the need to call pkg-config.
See the pkg-config man page for more details." "$LINENO" 5
elif test $pkg_failed = untried; then
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
-printf "%s\n" "no" >&6; }
- { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in '$ac_pwd':" >&5
-printf "%s\n" "$as_me: error: in '$ac_pwd':" >&2;}
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf '%s\n' "no" >&6; }
+ { { printf '%s\n' "$as_me:${as_lineno-$LINENO}: error: in '$ac_pwd':" >&5
+printf '%s\n' "$as_me: error: in '$ac_pwd':" >&2;}
as_fn_error $? "The pkg-config script could not be found or is too old. Make sure it
is in your PATH or set the PKG_CONFIG environment variable to the full
path to pkg-config.
@@ -78345,8 +77984,8 @@
else
LIBXML_CFLAGS=$pkg_cv_LIBXML_CFLAGS
LIBXML_LIBS=$pkg_cv_LIBXML_LIBS
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-printf "%s\n" "yes" >&6; }
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+printf '%s\n' "yes" >&6; }
fi
@@ -78506,7 +78145,7 @@
-printf "%s\n" "#define HAVE_XMLWRITER 1" >>confdefs.h
+printf '%s\n' "#define HAVE_XMLWRITER 1" >>confdefs.h
ext_builddir=ext/xmlwriter
@@ -78643,7 +78282,7 @@
EOF
-printf "%s\n" "#define COMPILE_DL_XMLWRITER 1" >>confdefs.h
+printf '%s\n' "#define COMPILE_DL_XMLWRITER 1" >>confdefs.h
fi
fi
@@ -78793,7 +78432,7 @@
php_with_xsl=no
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether to build with XSL support" >&5
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking whether to build with XSL support" >&5
printf %s "checking whether to build with XSL support... " >&6; }
# Check whether --with-xsl was given.
@@ -78831,8 +78470,8 @@
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ext_output" >&5
-printf "%s\n" "$ext_output" >&6; }
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $ext_output" >&5
+printf '%s\n' "$ext_output" >&6; }
@@ -78840,17 +78479,17 @@
if test "$PHP_XSL" != "no"; then
pkg_failed=no
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for libxslt >= 1.1.0" >&5
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for libxslt >= 1.1.0" >&5
printf %s "checking for libxslt >= 1.1.0... " >&6; }
if test -n "$XSL_CFLAGS"; then
pkg_cv_XSL_CFLAGS="$XSL_CFLAGS"
elif test -n "$PKG_CONFIG"; then
if test -n "$PKG_CONFIG" && \
- { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libxslt >= 1.1.0\""; } >&5
+ { { printf '%s\n' "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libxslt >= 1.1.0\""; } >&5
($PKG_CONFIG --exists --print-errors "libxslt >= 1.1.0") 2>&5
ac_status=$?
- printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ printf '%s\n' "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
test $ac_status = 0; }; then
pkg_cv_XSL_CFLAGS=`$PKG_CONFIG --cflags "libxslt >= 1.1.0" 2>/dev/null`
test "x$?" != "x0" && pkg_failed=yes
@@ -78864,10 +78503,10 @@
pkg_cv_XSL_LIBS="$XSL_LIBS"
elif test -n "$PKG_CONFIG"; then
if test -n "$PKG_CONFIG" && \
- { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libxslt >= 1.1.0\""; } >&5
+ { { printf '%s\n' "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libxslt >= 1.1.0\""; } >&5
($PKG_CONFIG --exists --print-errors "libxslt >= 1.1.0") 2>&5
ac_status=$?
- printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ printf '%s\n' "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
test $ac_status = 0; }; then
pkg_cv_XSL_LIBS=`$PKG_CONFIG --libs "libxslt >= 1.1.0" 2>/dev/null`
test "x$?" != "x0" && pkg_failed=yes
@@ -78881,8 +78520,8 @@
if test $pkg_failed = yes; then
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
-printf "%s\n" "no" >&6; }
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf '%s\n' "no" >&6; }
if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then
_pkg_short_errors_supported=yes
@@ -78908,10 +78547,10 @@
and XSL_LIBS to avoid the need to call pkg-config.
See the pkg-config man page for more details." "$LINENO" 5
elif test $pkg_failed = untried; then
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
-printf "%s\n" "no" >&6; }
- { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in '$ac_pwd':" >&5
-printf "%s\n" "$as_me: error: in '$ac_pwd':" >&2;}
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf '%s\n' "no" >&6; }
+ { { printf '%s\n' "$as_me:${as_lineno-$LINENO}: error: in '$ac_pwd':" >&5
+printf '%s\n' "$as_me: error: in '$ac_pwd':" >&2;}
as_fn_error $? "The pkg-config script could not be found or is too old. Make sure it
is in your PATH or set the PKG_CONFIG environment variable to the full
path to pkg-config.
@@ -78925,8 +78564,8 @@
else
XSL_CFLAGS=$pkg_cv_XSL_CFLAGS
XSL_LIBS=$pkg_cv_XSL_LIBS
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-printf "%s\n" "yes" >&6; }
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+printf '%s\n' "yes" >&6; }
fi
@@ -79088,17 +78727,17 @@
pkg_failed=no
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for libexslt" >&5
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for libexslt" >&5
printf %s "checking for libexslt... " >&6; }
if test -n "$EXSLT_CFLAGS"; then
pkg_cv_EXSLT_CFLAGS="$EXSLT_CFLAGS"
elif test -n "$PKG_CONFIG"; then
if test -n "$PKG_CONFIG" && \
- { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libexslt\""; } >&5
+ { { printf '%s\n' "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libexslt\""; } >&5
($PKG_CONFIG --exists --print-errors "libexslt") 2>&5
ac_status=$?
- printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ printf '%s\n' "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
test $ac_status = 0; }; then
pkg_cv_EXSLT_CFLAGS=`$PKG_CONFIG --cflags "libexslt" 2>/dev/null`
test "x$?" != "x0" && pkg_failed=yes
@@ -79112,10 +78751,10 @@
pkg_cv_EXSLT_LIBS="$EXSLT_LIBS"
elif test -n "$PKG_CONFIG"; then
if test -n "$PKG_CONFIG" && \
- { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libexslt\""; } >&5
+ { { printf '%s\n' "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libexslt\""; } >&5
($PKG_CONFIG --exists --print-errors "libexslt") 2>&5
ac_status=$?
- printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ printf '%s\n' "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
test $ac_status = 0; }; then
pkg_cv_EXSLT_LIBS=`$PKG_CONFIG --libs "libexslt" 2>/dev/null`
test "x$?" != "x0" && pkg_failed=yes
@@ -79129,8 +78768,8 @@
if test $pkg_failed = yes; then
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
-printf "%s\n" "no" >&6; }
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf '%s\n' "no" >&6; }
if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then
_pkg_short_errors_supported=yes
@@ -79147,14 +78786,14 @@
:
elif test $pkg_failed = untried; then
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
-printf "%s\n" "no" >&6; }
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf '%s\n' "no" >&6; }
:
else
EXSLT_CFLAGS=$pkg_cv_EXSLT_CFLAGS
EXSLT_LIBS=$pkg_cv_EXSLT_LIBS
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-printf "%s\n" "yes" >&6; }
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+printf '%s\n' "yes" >&6; }
for ac_i in $EXSLT_CFLAGS; do
@@ -79312,13 +78951,13 @@
done
-printf "%s\n" "#define HAVE_XSL_EXSLT 1" >>confdefs.h
+printf '%s\n' "#define HAVE_XSL_EXSLT 1" >>confdefs.h
fi
-printf "%s\n" "#define HAVE_XSL 1" >>confdefs.h
+printf '%s\n' "#define HAVE_XSL 1" >>confdefs.h
ext_builddir=ext/xsl
@@ -79455,7 +79094,7 @@
EOF
-printf "%s\n" "#define COMPILE_DL_XSL 1" >>confdefs.h
+printf '%s\n' "#define COMPILE_DL_XSL 1" >>confdefs.h
fi
fi
@@ -79622,7 +79261,7 @@
php_enable_zend_test=no
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether to enable zend_test extension" >&5
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking whether to enable zend_test extension" >&5
printf %s "checking whether to enable zend_test extension... " >&6; }
# Check whether --enable-zend-test was given.
if test ${enable_zend_test+y}
@@ -79659,8 +79298,8 @@
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ext_output" >&5
-printf "%s\n" "$ext_output" >&6; }
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $ext_output" >&5
+printf '%s\n' "$ext_output" >&6; }
@@ -79801,7 +79440,7 @@
EOF
-printf "%s\n" "#define COMPILE_DL_ZEND_TEST 1" >>confdefs.h
+printf '%s\n' "#define COMPILE_DL_ZEND_TEST 1" >>confdefs.h
fi
fi
@@ -79927,7 +79566,7 @@
php_with_zip=no
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for zip archive read/write support" >&5
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for zip archive read/write support" >&5
printf %s "checking for zip archive read/write support... " >&6; }
# Check whether --with-zip was given.
@@ -79965,8 +79604,8 @@
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ext_output" >&5
-printf "%s\n" "$ext_output" >&6; }
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $ext_output" >&5
+printf '%s\n' "$ext_output" >&6; }
@@ -79974,17 +79613,17 @@
if test "$PHP_ZIP" != "no"; then
pkg_failed=no
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for libzip >= 0.11 libzip != 1.3.1 libzip != 1.7.0" >&5
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for libzip >= 0.11 libzip != 1.3.1 libzip != 1.7.0" >&5
printf %s "checking for libzip >= 0.11 libzip != 1.3.1 libzip != 1.7.0... " >&6; }
if test -n "$LIBZIP_CFLAGS"; then
pkg_cv_LIBZIP_CFLAGS="$LIBZIP_CFLAGS"
elif test -n "$PKG_CONFIG"; then
if test -n "$PKG_CONFIG" && \
- { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libzip >= 0.11 libzip != 1.3.1 libzip != 1.7.0\""; } >&5
+ { { printf '%s\n' "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libzip >= 0.11 libzip != 1.3.1 libzip != 1.7.0\""; } >&5
($PKG_CONFIG --exists --print-errors "libzip >= 0.11 libzip != 1.3.1 libzip != 1.7.0") 2>&5
ac_status=$?
- printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ printf '%s\n' "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
test $ac_status = 0; }; then
pkg_cv_LIBZIP_CFLAGS=`$PKG_CONFIG --cflags "libzip >= 0.11 libzip != 1.3.1 libzip != 1.7.0" 2>/dev/null`
test "x$?" != "x0" && pkg_failed=yes
@@ -79998,10 +79637,10 @@
pkg_cv_LIBZIP_LIBS="$LIBZIP_LIBS"
elif test -n "$PKG_CONFIG"; then
if test -n "$PKG_CONFIG" && \
- { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libzip >= 0.11 libzip != 1.3.1 libzip != 1.7.0\""; } >&5
+ { { printf '%s\n' "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libzip >= 0.11 libzip != 1.3.1 libzip != 1.7.0\""; } >&5
($PKG_CONFIG --exists --print-errors "libzip >= 0.11 libzip != 1.3.1 libzip != 1.7.0") 2>&5
ac_status=$?
- printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ printf '%s\n' "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
test $ac_status = 0; }; then
pkg_cv_LIBZIP_LIBS=`$PKG_CONFIG --libs "libzip >= 0.11 libzip != 1.3.1 libzip != 1.7.0" 2>/dev/null`
test "x$?" != "x0" && pkg_failed=yes
@@ -80015,8 +79654,8 @@
if test $pkg_failed = yes; then
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
-printf "%s\n" "no" >&6; }
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf '%s\n' "no" >&6; }
if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then
_pkg_short_errors_supported=yes
@@ -80042,10 +79681,10 @@
and LIBZIP_LIBS to avoid the need to call pkg-config.
See the pkg-config man page for more details." "$LINENO" 5
elif test $pkg_failed = untried; then
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
-printf "%s\n" "no" >&6; }
- { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in '$ac_pwd':" >&5
-printf "%s\n" "$as_me: error: in '$ac_pwd':" >&2;}
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf '%s\n' "no" >&6; }
+ { { printf '%s\n' "$as_me:${as_lineno-$LINENO}: error: in '$ac_pwd':" >&5
+printf '%s\n' "$as_me: error: in '$ac_pwd':" >&2;}
as_fn_error $? "The pkg-config script could not be found or is too old. Make sure it
is in your PATH or set the PKG_CONFIG environment variable to the full
path to pkg-config.
@@ -80059,8 +79698,8 @@
else
LIBZIP_CFLAGS=$pkg_cv_LIBZIP_CFLAGS
LIBZIP_LIBS=$pkg_cv_LIBZIP_LIBS
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-printf "%s\n" "yes" >&6; }
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+printf '%s\n' "yes" >&6; }
fi
@@ -80338,7 +79977,7 @@
esac
done
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for zip_file_set_mtime in -lzip" >&5
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for zip_file_set_mtime in -lzip" >&5
printf %s "checking for zip_file_set_mtime in -lzip... " >&6; }
if test ${ac_cv_lib_zip_zip_file_set_mtime+y}
then :
@@ -80379,15 +80018,15 @@
LIBS=$ac_check_lib_save_LIBS ;;
esac
fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_zip_zip_file_set_mtime" >&5
-printf "%s\n" "$ac_cv_lib_zip_zip_file_set_mtime" >&6; }
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_zip_zip_file_set_mtime" >&5
+printf '%s\n' "$ac_cv_lib_zip_zip_file_set_mtime" >&6; }
if test "x$ac_cv_lib_zip_zip_file_set_mtime" = xyes
then :
LDFLAGS=$save_old_LDFLAGS
ext_shared=$save_ext_shared
-printf "%s\n" "#define HAVE_SET_MTIME 1" >>confdefs.h
+printf '%s\n' "#define HAVE_SET_MTIME 1" >>confdefs.h
else case e in #(
@@ -80395,8 +80034,8 @@
LDFLAGS=$save_old_LDFLAGS
ext_shared=$save_ext_shared
unset ac_cv_lib_zip_zip_file_set_mtime
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: Libzip >= 1.0.0 needed for setting mtime" >&5
-printf "%s\n" "$as_me: WARNING: Libzip >= 1.0.0 needed for setting mtime" >&2;}
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: WARNING: Libzip >= 1.0.0 needed for setting mtime" >&5
+printf '%s\n' "$as_me: WARNING: Libzip >= 1.0.0 needed for setting mtime" >&2;}
;;
esac
fi
@@ -80520,7 +80159,7 @@
esac
done
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for zip_file_set_encryption in -lzip" >&5
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for zip_file_set_encryption in -lzip" >&5
printf %s "checking for zip_file_set_encryption in -lzip... " >&6; }
if test ${ac_cv_lib_zip_zip_file_set_encryption+y}
then :
@@ -80561,15 +80200,15 @@
LIBS=$ac_check_lib_save_LIBS ;;
esac
fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_zip_zip_file_set_encryption" >&5
-printf "%s\n" "$ac_cv_lib_zip_zip_file_set_encryption" >&6; }
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_zip_zip_file_set_encryption" >&5
+printf '%s\n' "$ac_cv_lib_zip_zip_file_set_encryption" >&6; }
if test "x$ac_cv_lib_zip_zip_file_set_encryption" = xyes
then :
LDFLAGS=$save_old_LDFLAGS
ext_shared=$save_ext_shared
-printf "%s\n" "#define HAVE_ENCRYPTION 1" >>confdefs.h
+printf '%s\n' "#define HAVE_ENCRYPTION 1" >>confdefs.h
else case e in #(
@@ -80577,8 +80216,8 @@
LDFLAGS=$save_old_LDFLAGS
ext_shared=$save_ext_shared
unset ac_cv_lib_zip_zip_file_set_encryption
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: Libzip >= 1.2.0 needed for encryption support" >&5
-printf "%s\n" "$as_me: WARNING: Libzip >= 1.2.0 needed for encryption support" >&2;}
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: WARNING: Libzip >= 1.2.0 needed for encryption support" >&5
+printf '%s\n' "$as_me: WARNING: Libzip >= 1.2.0 needed for encryption support" >&2;}
;;
esac
fi
@@ -80702,7 +80341,7 @@
esac
done
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for zip_libzip_version in -lzip" >&5
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for zip_libzip_version in -lzip" >&5
printf %s "checking for zip_libzip_version in -lzip... " >&6; }
if test ${ac_cv_lib_zip_zip_libzip_version+y}
then :
@@ -80743,15 +80382,15 @@
LIBS=$ac_check_lib_save_LIBS ;;
esac
fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_zip_zip_libzip_version" >&5
-printf "%s\n" "$ac_cv_lib_zip_zip_libzip_version" >&6; }
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_zip_zip_libzip_version" >&5
+printf '%s\n' "$ac_cv_lib_zip_zip_libzip_version" >&6; }
if test "x$ac_cv_lib_zip_zip_libzip_version" = xyes
then :
LDFLAGS=$save_old_LDFLAGS
ext_shared=$save_ext_shared
-printf "%s\n" "#define HAVE_LIBZIP_VERSION 1" >>confdefs.h
+printf '%s\n' "#define HAVE_LIBZIP_VERSION 1" >>confdefs.h
else case e in #(
@@ -80883,7 +80522,7 @@
esac
done
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for zip_register_progress_callback_with_state in -lzip" >&5
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for zip_register_progress_callback_with_state in -lzip" >&5
printf %s "checking for zip_register_progress_callback_with_state in -lzip... " >&6; }
if test ${ac_cv_lib_zip_zip_register_progress_callback_with_state+y}
then :
@@ -80924,15 +80563,15 @@
LIBS=$ac_check_lib_save_LIBS ;;
esac
fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_zip_zip_register_progress_callback_with_state" >&5
-printf "%s\n" "$ac_cv_lib_zip_zip_register_progress_callback_with_state" >&6; }
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_zip_zip_register_progress_callback_with_state" >&5
+printf '%s\n' "$ac_cv_lib_zip_zip_register_progress_callback_with_state" >&6; }
if test "x$ac_cv_lib_zip_zip_register_progress_callback_with_state" = xyes
then :
LDFLAGS=$save_old_LDFLAGS
ext_shared=$save_ext_shared
-printf "%s\n" "#define HAVE_PROGRESS_CALLBACK 1" >>confdefs.h
+printf '%s\n' "#define HAVE_PROGRESS_CALLBACK 1" >>confdefs.h
else case e in #(
@@ -81064,7 +80703,7 @@
esac
done
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for zip_register_cancel_callback_with_state in -lzip" >&5
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for zip_register_cancel_callback_with_state in -lzip" >&5
printf %s "checking for zip_register_cancel_callback_with_state in -lzip... " >&6; }
if test ${ac_cv_lib_zip_zip_register_cancel_callback_with_state+y}
then :
@@ -81105,15 +80744,15 @@
LIBS=$ac_check_lib_save_LIBS ;;
esac
fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_zip_zip_register_cancel_callback_with_state" >&5
-printf "%s\n" "$ac_cv_lib_zip_zip_register_cancel_callback_with_state" >&6; }
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_zip_zip_register_cancel_callback_with_state" >&5
+printf '%s\n' "$ac_cv_lib_zip_zip_register_cancel_callback_with_state" >&6; }
if test "x$ac_cv_lib_zip_zip_register_cancel_callback_with_state" = xyes
then :
LDFLAGS=$save_old_LDFLAGS
ext_shared=$save_ext_shared
-printf "%s\n" "#define HAVE_CANCEL_CALLBACK 1" >>confdefs.h
+printf '%s\n' "#define HAVE_CANCEL_CALLBACK 1" >>confdefs.h
else case e in #(
@@ -81245,7 +80884,7 @@
esac
done
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for zip_compression_method_supported in -lzip" >&5
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for zip_compression_method_supported in -lzip" >&5
printf %s "checking for zip_compression_method_supported in -lzip... " >&6; }
if test ${ac_cv_lib_zip_zip_compression_method_supported+y}
then :
@@ -81286,15 +80925,15 @@
LIBS=$ac_check_lib_save_LIBS ;;
esac
fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_zip_zip_compression_method_supported" >&5
-printf "%s\n" "$ac_cv_lib_zip_zip_compression_method_supported" >&6; }
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_zip_zip_compression_method_supported" >&5
+printf '%s\n' "$ac_cv_lib_zip_zip_compression_method_supported" >&6; }
if test "x$ac_cv_lib_zip_zip_compression_method_supported" = xyes
then :
LDFLAGS=$save_old_LDFLAGS
ext_shared=$save_ext_shared
-printf "%s\n" "#define HAVE_METHOD_SUPPORTED 1" >>confdefs.h
+printf '%s\n' "#define HAVE_METHOD_SUPPORTED 1" >>confdefs.h
else case e in #(
@@ -81309,7 +80948,7 @@
-printf "%s\n" "#define HAVE_ZIP 1" >>confdefs.h
+printf '%s\n' "#define HAVE_ZIP 1" >>confdefs.h
@@ -81447,7 +81086,7 @@
EOF
-printf "%s\n" "#define COMPILE_DL_ZIP 1" >>confdefs.h
+printf '%s\n' "#define COMPILE_DL_ZIP 1" >>confdefs.h
fi
fi
@@ -81596,7 +81235,7 @@
php_enable_mysqlnd=no
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether to enable mysqlnd" >&5
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking whether to enable mysqlnd" >&5
printf %s "checking whether to enable mysqlnd... " >&6; }
# Check whether --enable-mysqlnd was given.
if test ${enable_mysqlnd+y}
@@ -81633,8 +81272,8 @@
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ext_output" >&5
-printf "%s\n" "$ext_output" >&6; }
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $ext_output" >&5
+printf '%s\n' "$ext_output" >&6; }
@@ -81647,7 +81286,7 @@
php_with_mysqlnd_ssl=$PHP_OPENSSL
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether to enable extended SSL support in mysqlnd" >&5
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking whether to enable extended SSL support in mysqlnd" >&5
printf %s "checking whether to enable extended SSL support in mysqlnd... " >&6; }
# Check whether --with-mysqlnd-ssl was given.
@@ -81664,8 +81303,8 @@
ext_output=$PHP_MYSQLND_SSL
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ext_output" >&5
-printf "%s\n" "$ext_output" >&6; }
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $ext_output" >&5
+printf '%s\n' "$ext_output" >&6; }
@@ -81673,7 +81312,7 @@
php_enable_mysqlnd_compression_support=yes
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether to enable compressed protocol support in mysqlnd" >&5
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking whether to enable compressed protocol support in mysqlnd" >&5
printf %s "checking whether to enable compressed protocol support in mysqlnd... " >&6; }
# Check whether --enable-mysqlnd-compression-support was given.
if test ${enable_mysqlnd_compression_support+y}
@@ -81689,8 +81328,8 @@
ext_output=$PHP_MYSQLND_COMPRESSION_SUPPORT
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ext_output" >&5
-printf "%s\n" "$ext_output" >&6; }
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $ext_output" >&5
+printf '%s\n' "$ext_output" >&6; }
@@ -81702,17 +81341,17 @@
else case e in #(
e)
pkg_failed=no
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for zlib >= 1.2.11" >&5
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for zlib >= 1.2.11" >&5
printf %s "checking for zlib >= 1.2.11... " >&6; }
if test -n "$ZLIB_CFLAGS"; then
pkg_cv_ZLIB_CFLAGS="$ZLIB_CFLAGS"
elif test -n "$PKG_CONFIG"; then
if test -n "$PKG_CONFIG" && \
- { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"zlib >= 1.2.11\""; } >&5
+ { { printf '%s\n' "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"zlib >= 1.2.11\""; } >&5
($PKG_CONFIG --exists --print-errors "zlib >= 1.2.11") 2>&5
ac_status=$?
- printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ printf '%s\n' "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
test $ac_status = 0; }; then
pkg_cv_ZLIB_CFLAGS=`$PKG_CONFIG --cflags "zlib >= 1.2.11" 2>/dev/null`
test "x$?" != "x0" && pkg_failed=yes
@@ -81726,10 +81365,10 @@
pkg_cv_ZLIB_LIBS="$ZLIB_LIBS"
elif test -n "$PKG_CONFIG"; then
if test -n "$PKG_CONFIG" && \
- { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"zlib >= 1.2.11\""; } >&5
+ { { printf '%s\n' "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"zlib >= 1.2.11\""; } >&5
($PKG_CONFIG --exists --print-errors "zlib >= 1.2.11") 2>&5
ac_status=$?
- printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ printf '%s\n' "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
test $ac_status = 0; }; then
pkg_cv_ZLIB_LIBS=`$PKG_CONFIG --libs "zlib >= 1.2.11" 2>/dev/null`
test "x$?" != "x0" && pkg_failed=yes
@@ -81743,8 +81382,8 @@
if test $pkg_failed = yes; then
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
-printf "%s\n" "no" >&6; }
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf '%s\n' "no" >&6; }
if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then
_pkg_short_errors_supported=yes
@@ -81770,10 +81409,10 @@
and ZLIB_LIBS to avoid the need to call pkg-config.
See the pkg-config man page for more details." "$LINENO" 5
elif test $pkg_failed = untried; then
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
-printf "%s\n" "no" >&6; }
- { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in '$ac_pwd':" >&5
-printf "%s\n" "$as_me: error: in '$ac_pwd':" >&2;}
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf '%s\n' "no" >&6; }
+ { { printf '%s\n' "$as_me:${as_lineno-$LINENO}: error: in '$ac_pwd':" >&5
+printf '%s\n' "$as_me: error: in '$ac_pwd':" >&2;}
as_fn_error $? "The pkg-config script could not be found or is too old. Make sure it
is in your PATH or set the PKG_CONFIG environment variable to the full
path to pkg-config.
@@ -81787,8 +81426,8 @@
else
ZLIB_CFLAGS=$pkg_cv_ZLIB_CFLAGS
ZLIB_LIBS=$pkg_cv_ZLIB_LIBS
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-printf "%s\n" "yes" >&6; }
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+printf '%s\n' "yes" >&6; }
for ac_i in $ZLIB_CFLAGS; do
case $ac_i in
@@ -81945,14 +81584,14 @@
done
-printf "%s\n" "#define MYSQLND_COMPRESSION_ENABLED 1" >>confdefs.h
+printf '%s\n' "#define MYSQLND_COMPRESSION_ENABLED 1" >>confdefs.h
fi ;;
esac
fi
-printf "%s\n" "#define MYSQLND_SSL_SUPPORTED 1" >>confdefs.h
+printf '%s\n' "#define MYSQLND_SSL_SUPPORTED 1" >>confdefs.h
@@ -82090,7 +81729,7 @@
EOF
-printf "%s\n" "#define COMPILE_DL_MYSQLND 1" >>confdefs.h
+printf '%s\n' "#define COMPILE_DL_MYSQLND 1" >>confdefs.h
fi
fi
@@ -82218,17 +81857,17 @@
pkg_failed=no
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for openssl >= 1.1.1" >&5
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for openssl >= 1.1.1" >&5
printf %s "checking for openssl >= 1.1.1... " >&6; }
if test -n "$OPENSSL_CFLAGS"; then
pkg_cv_OPENSSL_CFLAGS="$OPENSSL_CFLAGS"
elif test -n "$PKG_CONFIG"; then
if test -n "$PKG_CONFIG" && \
- { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"openssl >= 1.1.1\""; } >&5
+ { { printf '%s\n' "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"openssl >= 1.1.1\""; } >&5
($PKG_CONFIG --exists --print-errors "openssl >= 1.1.1") 2>&5
ac_status=$?
- printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ printf '%s\n' "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
test $ac_status = 0; }; then
pkg_cv_OPENSSL_CFLAGS=`$PKG_CONFIG --cflags "openssl >= 1.1.1" 2>/dev/null`
test "x$?" != "x0" && pkg_failed=yes
@@ -82242,10 +81881,10 @@
pkg_cv_OPENSSL_LIBS="$OPENSSL_LIBS"
elif test -n "$PKG_CONFIG"; then
if test -n "$PKG_CONFIG" && \
- { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"openssl >= 1.1.1\""; } >&5
+ { { printf '%s\n' "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"openssl >= 1.1.1\""; } >&5
($PKG_CONFIG --exists --print-errors "openssl >= 1.1.1") 2>&5
ac_status=$?
- printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ printf '%s\n' "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
test $ac_status = 0; }; then
pkg_cv_OPENSSL_LIBS=`$PKG_CONFIG --libs "openssl >= 1.1.1" 2>/dev/null`
test "x$?" != "x0" && pkg_failed=yes
@@ -82259,8 +81898,8 @@
if test $pkg_failed = yes; then
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
-printf "%s\n" "no" >&6; }
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf '%s\n' "no" >&6; }
if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then
_pkg_short_errors_supported=yes
@@ -82286,10 +81925,10 @@
and OPENSSL_LIBS to avoid the need to call pkg-config.
See the pkg-config man page for more details." "$LINENO" 5
elif test $pkg_failed = untried; then
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
-printf "%s\n" "no" >&6; }
- { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in '$ac_pwd':" >&5
-printf "%s\n" "$as_me: error: in '$ac_pwd':" >&2;}
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf '%s\n' "no" >&6; }
+ { { printf '%s\n' "$as_me:${as_lineno-$LINENO}: error: in '$ac_pwd':" >&5
+printf '%s\n' "$as_me: error: in '$ac_pwd':" >&2;}
as_fn_error $? "The pkg-config script could not be found or is too old. Make sure it
is in your PATH or set the PKG_CONFIG environment variable to the full
path to pkg-config.
@@ -82303,8 +81942,8 @@
else
OPENSSL_CFLAGS=$pkg_cv_OPENSSL_CFLAGS
OPENSSL_LIBS=$pkg_cv_OPENSSL_LIBS
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-printf "%s\n" "yes" >&6; }
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+printf '%s\n' "yes" >&6; }
found_openssl=yes
fi
@@ -82466,7 +82105,7 @@
-printf "%s\n" "#define MYSQLND_HAVE_SSL 1" >>confdefs.h
+printf '%s\n' "#define MYSQLND_HAVE_SSL 1" >>confdefs.h
am_i_shared=$PHP_MYSQLND_SHARED
@@ -82518,7 +82157,7 @@
case $host_alias in #(
i[3456]86-*-linux-* | x86_64-*-linux-*) :
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking linker support for -zcommon-page-size=2097152" >&5
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking linker support for -zcommon-page-size=2097152" >&5
printf %s "checking linker support for -zcommon-page-size=2097152... " >&6; }
if test ${php_cv_have_common_page_size+y}
then :
@@ -82557,13 +82196,13 @@
LDFLAGS=$save_LDFLAGS ;;
esac
fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $php_cv_have_common_page_size" >&5
-printf "%s\n" "$php_cv_have_common_page_size" >&6; }
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $php_cv_have_common_page_size" >&5
+printf '%s\n' "$php_cv_have_common_page_size" >&6; }
if test "x$php_cv_have_common_page_size" = xyes
then :
EXTRA_LDFLAGS_PROGRAM="$EXTRA_LDFLAGS_PROGRAM -Wl,-zcommon-page-size=2097152 -Wl,-zmax-page-size=2097152"
else case e in #(
- e) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking linker support for -zmax-page-size=2097152" >&5
+ e) { printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking linker support for -zmax-page-size=2097152" >&5
printf %s "checking linker support for -zmax-page-size=2097152... " >&6; }
if test ${php_cv_have_max_page_size+y}
then :
@@ -82602,8 +82241,8 @@
LDFLAGS=$save_LDFLAGS ;;
esac
fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $php_cv_have_max_page_size" >&5
-printf "%s\n" "$php_cv_have_max_page_size" >&6; }
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $php_cv_have_max_page_size" >&5
+printf '%s\n' "$php_cv_have_max_page_size" >&6; }
if test "x$php_cv_have_max_page_size" = xyes
then :
EXTRA_LDFLAGS_PROGRAM="$EXTRA_LDFLAGS_PROGRAM -Wl,-zmax-page-size=2097152"
@@ -82653,10 +82292,10 @@
fi
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: " >&5
-printf "%s\n" "" >&6; }
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: ${T_MD}Configuring PEAR${T_ME}" >&5
-printf "%s\n" "${T_MD}Configuring PEAR${T_ME}" >&6; }
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: " >&5
+printf '%s\n' "" >&6; }
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: ${T_MD}Configuring PEAR${T_ME}" >&5
+printf '%s\n' "${T_MD}Configuring PEAR${T_ME}" >&6; }
if test "x$PHP_CLI" = xno
@@ -82667,7 +82306,7 @@
php_with_pear=no
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether to install PEAR" >&5
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking whether to install PEAR" >&5
printf %s "checking whether to install PEAR... " >&6; }
# Check whether --with-pear was given.
@@ -82705,8 +82344,8 @@
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ext_output" >&5
-printf "%s\n" "$ext_output" >&6; }
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $ext_output" >&5
+printf '%s\n' "$ext_output" >&6; }
@@ -82716,8 +82355,8 @@
else case e in #(
e)
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: The --with-pear option is deprecated" >&5
-printf "%s\n" "$as_me: WARNING: The --with-pear option is deprecated" >&2;}
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: WARNING: The --with-pear option is deprecated" >&5
+printf '%s\n' "$as_me: WARNING: The --with-pear option is deprecated" >&2;}
if test "x$PHP_XML" = xno
then :
@@ -82762,10 +82401,10 @@
fi
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: " >&5
-printf "%s\n" "" >&6; }
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: ${T_MD}Configuring Zend${T_ME}" >&5
-printf "%s\n" "${T_MD}Configuring Zend${T_ME}" >&6; }
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: " >&5
+printf '%s\n' "" >&6; }
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: ${T_MD}Configuring Zend${T_ME}" >&5
+printf '%s\n' "${T_MD}Configuring Zend${T_ME}" >&6; }
# Check whether --enable-fiber-asm was given.
@@ -82882,7 +82521,7 @@
fiber_asm="no"
fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether syscall to create shadow stack exists" >&5
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking whether syscall to create shadow stack exists" >&5
printf %s "checking whether syscall to create shadow stack exists... " >&6; }
if test ${php_cv_have_shadow_stack_syscall+y}
then :
@@ -82923,8 +82562,8 @@
;;
esac
fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $php_cv_have_shadow_stack_syscall" >&5
-printf "%s\n" "$php_cv_have_shadow_stack_syscall" >&6; }
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $php_cv_have_shadow_stack_syscall" >&5
+printf '%s\n' "$php_cv_have_shadow_stack_syscall" >&6; }
if test "x$php_cv_have_shadow_stack_syscall" = xyes
then :
fiber_asm_cflag="-DSHADOW_STACK_SYSCALL=1"
@@ -82934,7 +82573,7 @@
fi
if test "$fiber_asm" = 'yes'; then
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for fiber switching context" >&5
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for fiber switching context" >&5
printf %s "checking for fiber switching context... " >&6; }
@@ -82982,24 +82621,24 @@
done
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $fiber_asm_file" >&5
-printf "%s\n" "$fiber_asm_file" >&6; }
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $fiber_asm_file" >&5
+printf '%s\n' "$fiber_asm_file" >&6; }
else
if test "x$fiber_os" = xmac
then :
-printf "%s\n" "#define _XOPEN_SOURCE 1" >>confdefs.h
+printf '%s\n' "#define _XOPEN_SOURCE 1" >>confdefs.h
fi
ac_fn_c_check_header_compile "$LINENO" "ucontext.h" "ac_cv_header_ucontext_h" "$ac_includes_default"
if test "x$ac_cv_header_ucontext_h" = xyes
then :
-printf "%s\n" "#define ZEND_FIBER_UCONTEXT 1" >>confdefs.h
+printf '%s\n' "#define ZEND_FIBER_UCONTEXT 1" >>confdefs.h
else case e in #(
- e) { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in '$ac_pwd':" >&5
-printf "%s\n" "$as_me: error: in '$ac_pwd':" >&2;}
+ e) { { printf '%s\n' "$as_me:${as_lineno-$LINENO}: error: in '$ac_pwd':" >&5
+printf '%s\n' "$as_me: error: in '$ac_pwd':" >&2;}
as_fn_error $? "fibers not available on this platform
See 'config.log' for more details" "$LINENO" 5; } ;;
esac
@@ -83010,7 +82649,7 @@
ac_fn_c_check_header_compile "$LINENO" "dlfcn.h" "ac_cv_header_dlfcn_h" "$ac_includes_default"
if test "x$ac_cv_header_dlfcn_h" = xyes
then :
- printf "%s\n" "#define HAVE_DLFCN_H 1" >>confdefs.h
+ printf '%s\n' "#define HAVE_DLFCN_H 1" >>confdefs.h
fi
@@ -83019,13 +82658,13 @@
ac_fn_c_check_header_compile "$LINENO" "cpuid.h" "ac_cv_header_cpuid_h" "$ac_includes_default"
if test "x$ac_cv_header_cpuid_h" = xyes
then :
- printf "%s\n" "#define HAVE_CPUID_H 1" >>confdefs.h
+ printf '%s\n' "#define HAVE_CPUID_H 1" >>confdefs.h
fi
ac_fn_c_check_header_compile "$LINENO" "libproc.h" "ac_cv_header_libproc_h" "$ac_includes_default"
if test "x$ac_cv_header_libproc_h" = xyes
then :
- printf "%s\n" "#define HAVE_LIBPROC_H 1" >>confdefs.h
+ printf '%s\n' "#define HAVE_LIBPROC_H 1" >>confdefs.h
fi
@@ -83033,55 +82672,55 @@
ac_fn_c_check_func "$LINENO" "getpid" "ac_cv_func_getpid"
if test "x$ac_cv_func_getpid" = xyes
then :
- printf "%s\n" "#define HAVE_GETPID 1" >>confdefs.h
+ printf '%s\n' "#define HAVE_GETPID 1" >>confdefs.h
fi
ac_fn_c_check_func "$LINENO" "gettid" "ac_cv_func_gettid"
if test "x$ac_cv_func_gettid" = xyes
then :
- printf "%s\n" "#define HAVE_GETTID 1" >>confdefs.h
+ printf '%s\n' "#define HAVE_GETTID 1" >>confdefs.h
fi
ac_fn_c_check_func "$LINENO" "kill" "ac_cv_func_kill"
if test "x$ac_cv_func_kill" = xyes
then :
- printf "%s\n" "#define HAVE_KILL 1" >>confdefs.h
+ printf '%s\n' "#define HAVE_KILL 1" >>confdefs.h
fi
ac_fn_c_check_func "$LINENO" "mremap" "ac_cv_func_mremap"
if test "x$ac_cv_func_mremap" = xyes
then :
- printf "%s\n" "#define HAVE_MREMAP 1" >>confdefs.h
+ printf '%s\n' "#define HAVE_MREMAP 1" >>confdefs.h
fi
ac_fn_c_check_func "$LINENO" "pthread_attr_get_np" "ac_cv_func_pthread_attr_get_np"
if test "x$ac_cv_func_pthread_attr_get_np" = xyes
then :
- printf "%s\n" "#define HAVE_PTHREAD_ATTR_GET_NP 1" >>confdefs.h
+ printf '%s\n' "#define HAVE_PTHREAD_ATTR_GET_NP 1" >>confdefs.h
fi
ac_fn_c_check_func "$LINENO" "pthread_attr_getstack" "ac_cv_func_pthread_attr_getstack"
if test "x$ac_cv_func_pthread_attr_getstack" = xyes
then :
- printf "%s\n" "#define HAVE_PTHREAD_ATTR_GETSTACK 1" >>confdefs.h
+ printf '%s\n' "#define HAVE_PTHREAD_ATTR_GETSTACK 1" >>confdefs.h
fi
ac_fn_c_check_func "$LINENO" "pthread_get_stackaddr_np" "ac_cv_func_pthread_get_stackaddr_np"
if test "x$ac_cv_func_pthread_get_stackaddr_np" = xyes
then :
- printf "%s\n" "#define HAVE_PTHREAD_GET_STACKADDR_NP 1" >>confdefs.h
+ printf '%s\n' "#define HAVE_PTHREAD_GET_STACKADDR_NP 1" >>confdefs.h
fi
ac_fn_c_check_func "$LINENO" "pthread_getattr_np" "ac_cv_func_pthread_getattr_np"
if test "x$ac_cv_func_pthread_getattr_np" = xyes
then :
- printf "%s\n" "#define HAVE_PTHREAD_GETATTR_NP 1" >>confdefs.h
+ printf '%s\n' "#define HAVE_PTHREAD_GETATTR_NP 1" >>confdefs.h
fi
ac_fn_c_check_func "$LINENO" "pthread_stackseg_np" "ac_cv_func_pthread_stackseg_np"
if test "x$ac_cv_func_pthread_stackseg_np" = xyes
then :
- printf "%s\n" "#define HAVE_PTHREAD_STACKSEG_NP 1" >>confdefs.h
+ printf '%s\n' "#define HAVE_PTHREAD_STACKSEG_NP 1" >>confdefs.h
fi
@@ -83092,13 +82731,13 @@
else case e in #(
e) ac_fn_check_decl "$LINENO" "sigsetjmp" "ac_cv_have_decl_sigsetjmp" "#include
-" "$ac_c_undeclared_builtin_options" "CFLAGS"
+" "$ac_c_undeclared_builtin_options$ac_c_future_darwin_options" "CFLAGS"
if test "x$ac_cv_have_decl_sigsetjmp" = xyes
then :
else case e in #(
- e) { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in '$ac_pwd':" >&5
-printf "%s\n" "$as_me: error: in '$ac_pwd':" >&2;}
+ e) { { printf '%s\n' "$as_me:${as_lineno-$LINENO}: error: in '$ac_pwd':" >&5
+printf '%s\n' "$as_me: error: in '$ac_pwd':" >&2;}
as_fn_error $? "Required sigsetjmp not found.
See 'config.log' for more details" "$LINENO" 5; } ;;
esac
@@ -83107,7 +82746,7 @@
fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether the stack grows downwards" >&5
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking whether the stack grows downwards" >&5
printf %s "checking whether the stack grows downwards... " >&6; }
if test ${php_cv_have_stack_limit+y}
then :
@@ -83166,16 +82805,16 @@
;;
esac
fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $php_cv_have_stack_limit" >&5
-printf "%s\n" "$php_cv_have_stack_limit" >&6; }
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $php_cv_have_stack_limit" >&5
+printf '%s\n' "$php_cv_have_stack_limit" >&6; }
if test "x$php_cv_have_stack_limit" = xyes
then :
-printf "%s\n" "#define ZEND_CHECK_STACK_LIMIT 1" >>confdefs.h
+printf '%s\n' "#define ZEND_CHECK_STACK_LIMIT 1" >>confdefs.h
fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for usable _FPU_SETCW" >&5
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for usable _FPU_SETCW" >&5
printf %s "checking for usable _FPU_SETCW... " >&6; }
if test ${php_cv_have__fpu_setcw+y}
then :
@@ -83214,16 +82853,16 @@
conftest$ac_exeext conftest.$ac_ext ;;
esac
fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $php_cv_have__fpu_setcw" >&5
-printf "%s\n" "$php_cv_have__fpu_setcw" >&6; }
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $php_cv_have__fpu_setcw" >&5
+printf '%s\n' "$php_cv_have__fpu_setcw" >&6; }
if test "x$php_cv_have__fpu_setcw" = xyes
then :
-printf "%s\n" "#define HAVE__FPU_SETCW 1" >>confdefs.h
+printf '%s\n' "#define HAVE__FPU_SETCW 1" >>confdefs.h
fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for usable fpsetprec" >&5
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for usable fpsetprec" >&5
printf %s "checking for usable fpsetprec... " >&6; }
if test ${php_cv_have_fpsetprec+y}
then :
@@ -83261,16 +82900,16 @@
conftest$ac_exeext conftest.$ac_ext ;;
esac
fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $php_cv_have_fpsetprec" >&5
-printf "%s\n" "$php_cv_have_fpsetprec" >&6; }
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $php_cv_have_fpsetprec" >&5
+printf '%s\n' "$php_cv_have_fpsetprec" >&6; }
if test "x$php_cv_have_fpsetprec" = xyes
then :
-printf "%s\n" "#define HAVE_FPSETPREC 1" >>confdefs.h
+printf '%s\n' "#define HAVE_FPSETPREC 1" >>confdefs.h
fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for usable _controlfp" >&5
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for usable _controlfp" >&5
printf %s "checking for usable _controlfp... " >&6; }
if test ${php_cv_have__controlfp+y}
then :
@@ -83308,16 +82947,16 @@
conftest$ac_exeext conftest.$ac_ext ;;
esac
fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $php_cv_have__controlfp" >&5
-printf "%s\n" "$php_cv_have__controlfp" >&6; }
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $php_cv_have__controlfp" >&5
+printf '%s\n' "$php_cv_have__controlfp" >&6; }
if test "x$php_cv_have__controlfp" = xyes
then :
-printf "%s\n" "#define HAVE__CONTROLFP 1" >>confdefs.h
+printf '%s\n' "#define HAVE__CONTROLFP 1" >>confdefs.h
fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for usable _controlfp_s" >&5
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for usable _controlfp_s" >&5
printf %s "checking for usable _controlfp_s... " >&6; }
if test ${php_cv_have__controlfp_s+y}
then :
@@ -83356,16 +82995,16 @@
conftest$ac_exeext conftest.$ac_ext ;;
esac
fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $php_cv_have__controlfp_s" >&5
-printf "%s\n" "$php_cv_have__controlfp_s" >&6; }
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $php_cv_have__controlfp_s" >&5
+printf '%s\n' "$php_cv_have__controlfp_s" >&6; }
if test "x$php_cv_have__controlfp_s" = xyes
then :
-printf "%s\n" "#define HAVE__CONTROLFP_S 1" >>confdefs.h
+printf '%s\n' "#define HAVE__CONTROLFP_S 1" >>confdefs.h
fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether FPU control word can be manipulated by inline assembler" >&5
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking whether FPU control word can be manipulated by inline assembler" >&5
printf %s "checking whether FPU control word can be manipulated by inline assembler... " >&6; }
if test ${php_cv_have_fpu_inline_asm_x86+y}
then :
@@ -83404,16 +83043,16 @@
conftest$ac_exeext conftest.$ac_ext ;;
esac
fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $php_cv_have_fpu_inline_asm_x86" >&5
-printf "%s\n" "$php_cv_have_fpu_inline_asm_x86" >&6; }
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $php_cv_have_fpu_inline_asm_x86" >&5
+printf '%s\n' "$php_cv_have_fpu_inline_asm_x86" >&6; }
if test "x$php_cv_have_fpu_inline_asm_x86" = xyes
then :
-printf "%s\n" "#define HAVE_FPU_INLINE_ASM_X86 1" >>confdefs.h
+printf '%s\n' "#define HAVE_FPU_INLINE_ASM_X86 1" >>confdefs.h
fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether dlsym() requires a leading underscore in symbol names" >&5
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking whether dlsym() requires a leading underscore in symbol names" >&5
printf %s "checking whether dlsym() requires a leading underscore in symbol names... " >&6; }
if test "$cross_compiling" = yes; then :
@@ -83421,7 +83060,7 @@
lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
lt_status=$lt_dlunknown
cat > conftest.$ac_ext <&5
(eval $ac_link) 2>&5
ac_status=$?
- printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ printf '%s\n' "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
test $ac_status = 0; } && test -s conftest${ac_exeext} 2>/dev/null; then
(./conftest; exit; ) >&5 2>/dev/null
lt_status=$?
case x$lt_status in
- x$lt_dlno_uscore) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
-printf "%s\n" "no" >&6; } ;;
+ x$lt_dlno_uscore) { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf '%s\n' "no" >&6; } ;;
x$lt_dlneed_uscore)
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-printf "%s\n" "yes" >&6; }
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+printf '%s\n' "yes" >&6; }
-printf "%s\n" "#define DLSYM_NEEDS_UNDERSCORE 1" >>confdefs.h
+printf '%s\n' "#define DLSYM_NEEDS_UNDERSCORE 1" >>confdefs.h
;;
- x$lt_dlunknown|x*) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
-printf "%s\n" "no" >&6; } ;;
+ x$lt_dlunknown|x*) { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf '%s\n' "no" >&6; } ;;
esac
else :
# compilation failed
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
-printf "%s\n" "no" >&6; }
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf '%s\n' "no" >&6; }
fi
fi
rm -fr conftest*
@@ -83524,7 +83163,7 @@
then :
else case e in #(
- e) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether system supports global register variables" >&5
+ e) { printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking whether system supports global register variables" >&5
printf %s "checking whether system supports global register variables... " >&6; }
if test ${php_cv_have_global_register_vars+y}
then :
@@ -83591,12 +83230,12 @@
;;
esac
fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $php_cv_have_global_register_vars" >&5
-printf "%s\n" "$php_cv_have_global_register_vars" >&6; }
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $php_cv_have_global_register_vars" >&5
+printf '%s\n' "$php_cv_have_global_register_vars" >&6; }
if test "x$php_cv_have_global_register_vars" = xyes
then :
-printf "%s\n" "#define HAVE_GCC_GLOBAL_REGS 1" >>confdefs.h
+printf '%s\n' "#define HAVE_GCC_GLOBAL_REGS 1" >>confdefs.h
else case e in #(
e) ZEND_GCC_GLOBAL_REGS=no ;;
@@ -83605,12 +83244,12 @@
;;
esac
fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether to enable global register variables support" >&5
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking whether to enable global register variables support" >&5
printf %s "checking whether to enable global register variables support... " >&6; }
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ZEND_GCC_GLOBAL_REGS" >&5
-printf "%s\n" "$ZEND_GCC_GLOBAL_REGS" >&6; }
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $ZEND_GCC_GLOBAL_REGS" >&5
+printf '%s\n' "$ZEND_GCC_GLOBAL_REGS" >&6; }
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether __cpuid_count is available" >&5
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking whether __cpuid_count is available" >&5
printf %s "checking whether __cpuid_count is available... " >&6; }
if test ${php_cv_have___cpuid_count+y}
then :
@@ -83640,44 +83279,44 @@
conftest$ac_exeext conftest.$ac_ext ;;
esac
fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $php_cv_have___cpuid_count" >&5
-printf "%s\n" "$php_cv_have___cpuid_count" >&6; }
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $php_cv_have___cpuid_count" >&5
+printf '%s\n' "$php_cv_have___cpuid_count" >&6; }
if test "x$php_cv_have___cpuid_count" = xyes
then :
-printf "%s\n" "#define HAVE_CPUID_COUNT 1" >>confdefs.h
+printf '%s\n' "#define HAVE_CPUID_COUNT 1" >>confdefs.h
fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether to enable thread safety" >&5
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking whether to enable thread safety" >&5
printf %s "checking whether to enable thread safety... " >&6; }
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ZEND_ZTS" >&5
-printf "%s\n" "$ZEND_ZTS" >&6; }
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $ZEND_ZTS" >&5
+printf '%s\n' "$ZEND_ZTS" >&6; }
if test "x$ZEND_ZTS" = xyes
then :
-printf "%s\n" "#define ZTS 1" >>confdefs.h
+printf '%s\n' "#define ZTS 1" >>confdefs.h
as_fn_append CFLAGS " -DZTS"
fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether to enable Zend debugging" >&5
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking whether to enable Zend debugging" >&5
printf %s "checking whether to enable Zend debugging... " >&6; }
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ZEND_DEBUG" >&5
-printf "%s\n" "$ZEND_DEBUG" >&6; }
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $ZEND_DEBUG" >&5
+printf '%s\n' "$ZEND_DEBUG" >&6; }
if test "x$ZEND_DEBUG" = xyes
then :
- printf "%s\n" "#define ZEND_DEBUG 1" >>confdefs.h
+ printf '%s\n' "#define ZEND_DEBUG 1" >>confdefs.h
echo " $CFLAGS" | grep ' -g' >/dev/null || CFLAGS="$CFLAGS -g"
else case e in #(
- e) printf "%s\n" "#define ZEND_DEBUG 0" >>confdefs.h
+ e) printf '%s\n' "#define ZEND_DEBUG 0" >>confdefs.h
;;
esac
fi
@@ -83687,7 +83326,7 @@
CFLAGS="-Wall -Wextra -Wno-unused-parameter -Wno-sign-compare $CFLAGS"
fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether the C compiler accepts -Wno-clobbered" >&5
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking whether the C compiler accepts -Wno-clobbered" >&5
printf %s "checking whether the C compiler accepts -Wno-clobbered... " >&6; }
if test ${ax_cv_check_cflags__Werror__Wno_clobbered+y}
then :
@@ -83718,8 +83357,8 @@
CFLAGS=$ax_check_save_flags ;;
esac
fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ax_cv_check_cflags__Werror__Wno_clobbered" >&5
-printf "%s\n" "$ax_cv_check_cflags__Werror__Wno_clobbered" >&6; }
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $ax_cv_check_cflags__Werror__Wno_clobbered" >&5
+printf '%s\n' "$ax_cv_check_cflags__Werror__Wno_clobbered" >&6; }
if test "x$ax_cv_check_cflags__Werror__Wno_clobbered" = xyes
then :
CFLAGS="-Wno-clobbered $CFLAGS"
@@ -83728,7 +83367,7 @@
esac
fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether the C compiler accepts -Wimplicit-fallthrough=1" >&5
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking whether the C compiler accepts -Wimplicit-fallthrough=1" >&5
printf %s "checking whether the C compiler accepts -Wimplicit-fallthrough=1... " >&6; }
if test ${ax_cv_check_cflags__Werror__Wimplicit_fallthrough_1+y}
then :
@@ -83759,8 +83398,8 @@
CFLAGS=$ax_check_save_flags ;;
esac
fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ax_cv_check_cflags__Werror__Wimplicit_fallthrough_1" >&5
-printf "%s\n" "$ax_cv_check_cflags__Werror__Wimplicit_fallthrough_1" >&6; }
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $ax_cv_check_cflags__Werror__Wimplicit_fallthrough_1" >&5
+printf '%s\n' "$ax_cv_check_cflags__Werror__Wimplicit_fallthrough_1" >&6; }
if test "x$ax_cv_check_cflags__Werror__Wimplicit_fallthrough_1" = xyes
then :
CFLAGS="$CFLAGS -Wimplicit-fallthrough=1"
@@ -83769,7 +83408,7 @@
esac
fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether the C compiler accepts -Wduplicated-cond" >&5
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking whether the C compiler accepts -Wduplicated-cond" >&5
printf %s "checking whether the C compiler accepts -Wduplicated-cond... " >&6; }
if test ${ax_cv_check_cflags__Werror__Wduplicated_cond+y}
then :
@@ -83800,8 +83439,8 @@
CFLAGS=$ax_check_save_flags ;;
esac
fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ax_cv_check_cflags__Werror__Wduplicated_cond" >&5
-printf "%s\n" "$ax_cv_check_cflags__Werror__Wduplicated_cond" >&6; }
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $ax_cv_check_cflags__Werror__Wduplicated_cond" >&5
+printf '%s\n' "$ax_cv_check_cflags__Werror__Wduplicated_cond" >&6; }
if test "x$ax_cv_check_cflags__Werror__Wduplicated_cond" = xyes
then :
CFLAGS="-Wduplicated-cond $CFLAGS"
@@ -83810,7 +83449,7 @@
esac
fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether the C compiler accepts -Wlogical-op" >&5
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking whether the C compiler accepts -Wlogical-op" >&5
printf %s "checking whether the C compiler accepts -Wlogical-op... " >&6; }
if test ${ax_cv_check_cflags__Werror__Wlogical_op+y}
then :
@@ -83841,8 +83480,8 @@
CFLAGS=$ax_check_save_flags ;;
esac
fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ax_cv_check_cflags__Werror__Wlogical_op" >&5
-printf "%s\n" "$ax_cv_check_cflags__Werror__Wlogical_op" >&6; }
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $ax_cv_check_cflags__Werror__Wlogical_op" >&5
+printf '%s\n' "$ax_cv_check_cflags__Werror__Wlogical_op" >&6; }
if test "x$ax_cv_check_cflags__Werror__Wlogical_op" = xyes
then :
CFLAGS="-Wlogical-op $CFLAGS"
@@ -83851,7 +83490,7 @@
esac
fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether the C compiler accepts -Wformat-truncation" >&5
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking whether the C compiler accepts -Wformat-truncation" >&5
printf %s "checking whether the C compiler accepts -Wformat-truncation... " >&6; }
if test ${ax_cv_check_cflags__Werror__Wformat_truncation+y}
then :
@@ -83882,8 +83521,8 @@
CFLAGS=$ax_check_save_flags ;;
esac
fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ax_cv_check_cflags__Werror__Wformat_truncation" >&5
-printf "%s\n" "$ax_cv_check_cflags__Werror__Wformat_truncation" >&6; }
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $ax_cv_check_cflags__Werror__Wformat_truncation" >&5
+printf '%s\n' "$ax_cv_check_cflags__Werror__Wformat_truncation" >&6; }
if test "x$ax_cv_check_cflags__Werror__Wformat_truncation" = xyes
then :
CFLAGS="-Wformat-truncation $CFLAGS"
@@ -83892,7 +83531,7 @@
esac
fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether the C compiler accepts -Wstrict-prototypes" >&5
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking whether the C compiler accepts -Wstrict-prototypes" >&5
printf %s "checking whether the C compiler accepts -Wstrict-prototypes... " >&6; }
if test ${ax_cv_check_cflags__Werror__Wstrict_prototypes+y}
then :
@@ -83923,8 +83562,8 @@
CFLAGS=$ax_check_save_flags ;;
esac
fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ax_cv_check_cflags__Werror__Wstrict_prototypes" >&5
-printf "%s\n" "$ax_cv_check_cflags__Werror__Wstrict_prototypes" >&6; }
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $ax_cv_check_cflags__Werror__Wstrict_prototypes" >&5
+printf '%s\n' "$ax_cv_check_cflags__Werror__Wstrict_prototypes" >&6; }
if test "x$ax_cv_check_cflags__Werror__Wstrict_prototypes" = xyes
then :
CFLAGS="-Wstrict-prototypes $CFLAGS"
@@ -83933,7 +83572,7 @@
esac
fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether the C compiler accepts -fno-common" >&5
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking whether the C compiler accepts -fno-common" >&5
printf %s "checking whether the C compiler accepts -fno-common... " >&6; }
if test ${ax_cv_check_cflags__Werror__fno_common+y}
then :
@@ -83964,8 +83603,8 @@
CFLAGS=$ax_check_save_flags ;;
esac
fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ax_cv_check_cflags__Werror__fno_common" >&5
-printf "%s\n" "$ax_cv_check_cflags__Werror__fno_common" >&6; }
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $ax_cv_check_cflags__Werror__fno_common" >&5
+printf '%s\n' "$ax_cv_check_cflags__Werror__fno_common" >&6; }
if test "x$ax_cv_check_cflags__Werror__fno_common" = xyes
then :
CFLAGS="-fno-common $CFLAGS"
@@ -83975,7 +83614,7 @@
fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for Zend memory manager alignment and log values" >&5
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for Zend memory manager alignment and log values" >&5
printf %s "checking for Zend memory manager alignment and log values... " >&6; }
if test ${php_cv_align_mm+y}
then :
@@ -84037,12 +83676,12 @@
;;
esac
fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $php_cv_align_mm" >&5
-printf "%s\n" "$php_cv_align_mm" >&6; }
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $php_cv_align_mm" >&5
+printf '%s\n' "$php_cv_align_mm" >&6; }
if test "x$php_cv_align_mm" = xfailed
then :
- { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in '$ac_pwd':" >&5
-printf "%s\n" "$as_me: error: in '$ac_pwd':" >&2;}
+ { { printf '%s\n' "$as_me:${as_lineno-$LINENO}: error: in '$ac_pwd':" >&5
+printf '%s\n' "$as_me: error: in '$ac_pwd':" >&2;}
as_fn_error $? "ZEND_MM alignment defines failed.
See 'config.log' for more details" "$LINENO" 5; }
else case e in #(
@@ -84050,13 +83689,13 @@
zend_mm_alignment_log2=$(echo $php_cv_align_mm | cut -d ' ' -f 2)
zend_mm_8byte_realign=$(echo $php_cv_align_mm | cut -d ' ' -f 3)
-printf "%s\n" "#define ZEND_MM_ALIGNMENT $zend_mm_alignment" >>confdefs.h
+printf '%s\n' "#define ZEND_MM_ALIGNMENT $zend_mm_alignment" >>confdefs.h
-printf "%s\n" "#define ZEND_MM_ALIGNMENT_LOG2 $zend_mm_alignment_log2" >>confdefs.h
+printf '%s\n' "#define ZEND_MM_ALIGNMENT_LOG2 $zend_mm_alignment_log2" >>confdefs.h
-printf "%s\n" "#define ZEND_MM_NEED_EIGHT_BYTE_REALIGNMENT $zend_mm_8byte_realign" >>confdefs.h
+printf '%s\n' "#define ZEND_MM_NEED_EIGHT_BYTE_REALIGNMENT $zend_mm_8byte_realign" >>confdefs.h
;;
esac
@@ -84078,7 +83717,7 @@
ac_fn_c_check_func "$LINENO" "sigaction" "ac_cv_func_sigaction"
if test "x$ac_cv_func_sigaction" = xyes
then :
- printf "%s\n" "#define HAVE_SIGACTION 1" >>confdefs.h
+ printf '%s\n' "#define HAVE_SIGACTION 1" >>confdefs.h
else case e in #(
e) ZEND_SIGNALS=no ;;
@@ -84089,15 +83728,15 @@
if test "x$ZEND_SIGNALS" = xyes
then :
-printf "%s\n" "#define ZEND_SIGNALS 1" >>confdefs.h
+printf '%s\n' "#define ZEND_SIGNALS 1" >>confdefs.h
as_fn_append CFLAGS " -DZEND_SIGNALS"
fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether to enable Zend signal handling" >&5
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking whether to enable Zend signal handling" >&5
printf %s "checking whether to enable Zend signal handling... " >&6; }
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ZEND_SIGNALS" >&5
-printf "%s\n" "$ZEND_SIGNALS" >&6; }
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $ZEND_SIGNALS" >&5
+printf '%s\n' "$ZEND_SIGNALS" >&6; }
# Check whether --enable-zend-max-execution-timers was given.
if test ${enable_zend_max_execution_timers+y}
@@ -84118,7 +83757,7 @@
if test "x$ZEND_MAX_EXECUTION_TIMERS" = xyes
then :
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for library containing timer_create" >&5
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for library containing timer_create" >&5
printf %s "checking for library containing timer_create... " >&6; }
if test ${ac_cv_search_timer_create+y}
then :
@@ -84176,8 +83815,8 @@
LIBS=$ac_func_search_save_LIBS ;;
esac
fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_timer_create" >&5
-printf "%s\n" "$ac_cv_search_timer_create" >&6; }
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_timer_create" >&5
+printf '%s\n' "$ac_cv_search_timer_create" >&6; }
ac_res=$ac_cv_search_timer_create
if test "$ac_res" != no
then :
@@ -84193,15 +83832,15 @@
if test "x$ZEND_MAX_EXECUTION_TIMERS" = xyes
then :
-printf "%s\n" "#define ZEND_MAX_EXECUTION_TIMERS 1" >>confdefs.h
+printf '%s\n' "#define ZEND_MAX_EXECUTION_TIMERS 1" >>confdefs.h
as_fn_append CFLAGS " -DZEND_MAX_EXECUTION_TIMERS"
fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether to enable Zend max execution timers" >&5
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking whether to enable Zend max execution timers" >&5
printf %s "checking whether to enable Zend max execution timers... " >&6; }
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ZEND_MAX_EXECUTION_TIMERS" >&5
-printf "%s\n" "$ZEND_MAX_EXECUTION_TIMERS" >&6; }
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $ZEND_MAX_EXECUTION_TIMERS" >&5
+printf '%s\n' "$ZEND_MAX_EXECUTION_TIMERS" >&6; }
@@ -84493,7 +84132,7 @@
# Double any \ or $.
# By default was 's,x,x', remove it if useless.
ac_script='s/[\\$]/&&/g;s/;s,x,x,$//'
-program_transform_name=`printf "%s\n" "$program_transform_name" | sed "$ac_script"`
+program_transform_name=`printf '%s\n' "$program_transform_name" | sed "$ac_script"`
if test "x$prefix" = xNONE
@@ -84673,12 +84312,12 @@
PHP_UNAME=$(uname -a | xargs)
fi
-printf "%s\n" "#define PHP_UNAME \"$PHP_UNAME\"" >>confdefs.h
+printf '%s\n' "#define PHP_UNAME \"$PHP_UNAME\"" >>confdefs.h
PHP_OS=$(uname | xargs)
-printf "%s\n" "#define PHP_OS \"$PHP_OS\"" >>confdefs.h
+printf '%s\n' "#define PHP_OS \"$PHP_OS\"" >>confdefs.h
@@ -84687,7 +84326,7 @@
PHP_BUILD_SYSTEM=$PHP_UNAME
fi
-printf "%s\n" "#define PHP_BUILD_SYSTEM \"$PHP_BUILD_SYSTEM\"" >>confdefs.h
+printf '%s\n' "#define PHP_BUILD_SYSTEM \"$PHP_BUILD_SYSTEM\"" >>confdefs.h
@@ -84696,7 +84335,7 @@
else case e in #(
e)
-printf "%s\n" "#define PHP_BUILD_PROVIDER \"$PHP_BUILD_PROVIDER\"" >>confdefs.h
+printf '%s\n' "#define PHP_BUILD_PROVIDER \"$PHP_BUILD_PROVIDER\"" >>confdefs.h
;;
esac
fi
@@ -84707,7 +84346,7 @@
else case e in #(
e)
-printf "%s\n" "#define PHP_BUILD_COMPILER \"$PHP_BUILD_COMPILER\"" >>confdefs.h
+printf '%s\n' "#define PHP_BUILD_COMPILER \"$PHP_BUILD_COMPILER\"" >>confdefs.h
;;
esac
fi
@@ -84718,7 +84357,7 @@
else case e in #(
e)
-printf "%s\n" "#define PHP_BUILD_ARCH \"$PHP_BUILD_ARCH\"" >>confdefs.h
+printf '%s\n' "#define PHP_BUILD_ARCH \"$PHP_BUILD_ARCH\"" >>confdefs.h
;;
esac
fi
@@ -84909,7 +84548,7 @@
if test "x$PHP_MEMORY_SANITIZER" = xyes
then :
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether the C compiler accepts -fsanitize=memory -fsanitize-memory-track-origins" >&5
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking whether the C compiler accepts -fsanitize=memory -fsanitize-memory-track-origins" >&5
printf %s "checking whether the C compiler accepts -fsanitize=memory -fsanitize-memory-track-origins... " >&6; }
if test ${ax_cv_check_cflags___fsanitize_memory__fsanitize_memory_track_origins+y}
then :
@@ -84940,8 +84579,8 @@
CFLAGS=$ax_check_save_flags ;;
esac
fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ax_cv_check_cflags___fsanitize_memory__fsanitize_memory_track_origins" >&5
-printf "%s\n" "$ax_cv_check_cflags___fsanitize_memory__fsanitize_memory_track_origins" >&6; }
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $ax_cv_check_cflags___fsanitize_memory__fsanitize_memory_track_origins" >&5
+printf '%s\n' "$ax_cv_check_cflags___fsanitize_memory__fsanitize_memory_track_origins" >&6; }
if test "x$ax_cv_check_cflags___fsanitize_memory__fsanitize_memory_track_origins" = xyes
then :
@@ -84968,7 +84607,7 @@
esac
fi
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether the C compiler accepts -fsanitize=address" >&5
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking whether the C compiler accepts -fsanitize=address" >&5
printf %s "checking whether the C compiler accepts -fsanitize=address... " >&6; }
if test ${ax_cv_check_cflags___fsanitize_address+y}
then :
@@ -84999,8 +84638,8 @@
CFLAGS=$ax_check_save_flags ;;
esac
fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ax_cv_check_cflags___fsanitize_address" >&5
-printf "%s\n" "$ax_cv_check_cflags___fsanitize_address" >&6; }
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $ax_cv_check_cflags___fsanitize_address" >&5
+printf '%s\n' "$ax_cv_check_cflags___fsanitize_address" >&6; }
if test "x$ax_cv_check_cflags___fsanitize_address" = xyes
then :
@@ -85017,7 +84656,7 @@
if test "x$PHP_UNDEFINED_SANITIZER" = xyes
then :
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether the C compiler accepts -fsanitize=undefined" >&5
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking whether the C compiler accepts -fsanitize=undefined" >&5
printf %s "checking whether the C compiler accepts -fsanitize=undefined... " >&6; }
if test ${ax_cv_check_cflags___fsanitize_undefined+y}
then :
@@ -85048,14 +84687,14 @@
CFLAGS=$ax_check_save_flags ;;
esac
fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ax_cv_check_cflags___fsanitize_undefined" >&5
-printf "%s\n" "$ax_cv_check_cflags___fsanitize_undefined" >&6; }
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $ax_cv_check_cflags___fsanitize_undefined" >&5
+printf '%s\n' "$ax_cv_check_cflags___fsanitize_undefined" >&6; }
if test "x$ax_cv_check_cflags___fsanitize_undefined" = xyes
then :
CFLAGS="$CFLAGS -fsanitize=undefined -fno-sanitize-recover=undefined"
CXXFLAGS="$CXXFLAGS -fsanitize=undefined -fno-sanitize-recover=undefined"
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether the C compiler accepts -fno-sanitize=object-size" >&5
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking whether the C compiler accepts -fno-sanitize=object-size" >&5
printf %s "checking whether the C compiler accepts -fno-sanitize=object-size... " >&6; }
if test ${ax_cv_check_cflags___fno_sanitize_object_size+y}
then :
@@ -85086,8 +84725,8 @@
CFLAGS=$ax_check_save_flags ;;
esac
fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ax_cv_check_cflags___fno_sanitize_object_size" >&5
-printf "%s\n" "$ax_cv_check_cflags___fno_sanitize_object_size" >&6; }
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $ax_cv_check_cflags___fno_sanitize_object_size" >&5
+printf '%s\n' "$ax_cv_check_cflags___fno_sanitize_object_size" >&6; }
if test "x$ax_cv_check_cflags___fno_sanitize_object_size" = xyes
then :
@@ -85102,7 +84741,7 @@
OLD_CFLAGS=$CFLAGS
CFLAGS="$CFLAGS -fno-sanitize-recover=undefined"
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether to add -fno-sanitize=function" >&5
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking whether to add -fno-sanitize=function" >&5
printf %s "checking whether to add -fno-sanitize=function... " >&6; }
if test ${php_cv_ubsan_no_function+y}
then :
@@ -85137,8 +84776,8 @@
;;
esac
fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $php_cv_ubsan_no_function" >&5
-printf "%s\n" "$php_cv_ubsan_no_function" >&6; }
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $php_cv_ubsan_no_function" >&5
+printf '%s\n' "$php_cv_ubsan_no_function" >&6; }
CFLAGS=$OLD_CFLAGS
if test "x$php_cv_ubsan_no_function" = xyes
then :
@@ -85171,10 +84810,10 @@
fi
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: " >&5
-printf "%s\n" "" >&6; }
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: ${T_MD}Configuring libtool${T_ME}" >&5
-printf "%s\n" "${T_MD}Configuring libtool${T_ME}" >&6; }
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: " >&5
+printf '%s\n' "" >&6; }
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: ${T_MD}Configuring libtool${T_ME}" >&5
+printf '%s\n' "${T_MD}Configuring libtool${T_ME}" >&6; }
AR_FLAGS=cr
@@ -85259,7 +84898,7 @@
fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for a sed that does not truncate output" >&5
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for a sed that does not truncate output" >&5
printf %s "checking for a sed that does not truncate output... " >&6; }
if test ${lt_cv_path_SED+y}
then :
@@ -85315,8 +84954,8 @@
fi
SED=$lt_cv_path_SED
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $SED" >&5
-printf "%s\n" "$SED" >&6; }
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $SED" >&5
+printf '%s\n' "$SED" >&6; }
# Check whether --with-gnu-ld was given.
@@ -85331,7 +84970,7 @@
ac_prog=ld
if test "$GCC" = yes; then
# Check if gcc -print-prog-name=ld gives a path.
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for ld used by $CC" >&5
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for ld used by $CC" >&5
printf %s "checking for ld used by $CC... " >&6; }
case $host in
*-*-mingw*)
@@ -85361,10 +85000,10 @@
;;
esac
elif test "$with_gnu_ld" = yes; then
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for GNU ld" >&5
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for GNU ld" >&5
printf %s "checking for GNU ld... " >&6; }
else
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for non-GNU ld" >&5
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for non-GNU ld" >&5
printf %s "checking for non-GNU ld... " >&6; }
fi
if test ${lt_cv_path_LD+y}
@@ -85400,14 +85039,14 @@
LD="$lt_cv_path_LD"
if test -n "$LD"; then
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $LD" >&5
-printf "%s\n" "$LD" >&6; }
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $LD" >&5
+printf '%s\n' "$LD" >&6; }
else
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
-printf "%s\n" "no" >&6; }
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf '%s\n' "no" >&6; }
fi
test -z "$LD" && as_fn_error $? "no acceptable ld found in \$PATH" "$LINENO" 5
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if the linker ($LD) is GNU ld" >&5
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking if the linker ($LD) is GNU ld" >&5
printf %s "checking if the linker ($LD) is GNU ld... " >&6; }
if test ${lt_cv_prog_gnu_ld+y}
then :
@@ -85424,12 +85063,12 @@
esac ;;
esac
fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_gnu_ld" >&5
-printf "%s\n" "$lt_cv_prog_gnu_ld" >&6; }
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_gnu_ld" >&5
+printf '%s\n' "$lt_cv_prog_gnu_ld" >&6; }
with_gnu_ld=$lt_cv_prog_gnu_ld
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $LD option to reload object files" >&5
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for $LD option to reload object files" >&5
printf %s "checking for $LD option to reload object files... " >&6; }
if test ${lt_cv_ld_reload_flag+y}
then :
@@ -85438,8 +85077,8 @@
e) lt_cv_ld_reload_flag='-r' ;;
esac
fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_ld_reload_flag" >&5
-printf "%s\n" "$lt_cv_ld_reload_flag" >&6; }
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $lt_cv_ld_reload_flag" >&5
+printf '%s\n' "$lt_cv_ld_reload_flag" >&6; }
reload_flag=$lt_cv_ld_reload_flag
case $reload_flag in
"" | " "*) ;;
@@ -85456,7 +85095,7 @@
;;
esac
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for BSD-compatible nm" >&5
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for BSD-compatible nm" >&5
printf %s "checking for BSD-compatible nm... " >&6; }
if test ${lt_cv_path_NM+y}
then :
@@ -85507,11 +85146,11 @@
fi ;;
esac
fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_path_NM" >&5
-printf "%s\n" "$lt_cv_path_NM" >&6; }
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $lt_cv_path_NM" >&5
+printf '%s\n' "$lt_cv_path_NM" >&6; }
NM="$lt_cv_path_NM"
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking how to recognize dependent libraries" >&5
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking how to recognize dependent libraries" >&5
printf %s "checking how to recognize dependent libraries... " >&6; }
if test ${lt_cv_deplibs_check_method+y}
then :
@@ -85699,8 +85338,8 @@
;;
esac
fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_deplibs_check_method" >&5
-printf "%s\n" "$lt_cv_deplibs_check_method" >&6; }
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $lt_cv_deplibs_check_method" >&5
+printf '%s\n' "$lt_cv_deplibs_check_method" >&6; }
file_magic_cmd=$lt_cv_file_magic_cmd
deplibs_check_method=$lt_cv_deplibs_check_method
test -z "$deplibs_check_method" && deplibs_check_method=unknown
@@ -85730,7 +85369,7 @@
if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5
(eval $ac_compile) 2>&5
ac_status=$?
- printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ printf '%s\n' "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
test $ac_status = 0; }; then
case `/usr/bin/file conftest.$ac_objext` in
*ELF-32*)
@@ -85745,11 +85384,11 @@
;;
*-*-irix6*)
# Find out which ABI we are using.
- echo '#line 85748 "configure"' > conftest.$ac_ext
+ echo '#line 85387 "configure"' > conftest.$ac_ext
if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5
(eval $ac_compile) 2>&5
ac_status=$?
- printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ printf '%s\n' "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
test $ac_status = 0; }; then
if test "$lt_cv_prog_gnu_ld" = yes; then
case `/usr/bin/file conftest.$ac_objext` in
@@ -85787,7 +85426,7 @@
if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5
(eval $ac_compile) 2>&5
ac_status=$?
- printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ printf '%s\n' "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
test $ac_status = 0; }; then
case `/usr/bin/file conftest.o` in
*32-bit*)
@@ -85843,7 +85482,7 @@
# On SCO OpenServer 5, we need -belf to get full-featured binaries.
SAVE_CFLAGS="$CFLAGS"
CFLAGS="$CFLAGS -belf"
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether the C compiler needs -belf" >&5
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking whether the C compiler needs -belf" >&5
printf %s "checking whether the C compiler needs -belf... " >&6; }
if test ${lt_cv_cc_needs_belf+y}
then :
@@ -85883,8 +85522,8 @@
;;
esac
fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_cc_needs_belf" >&5
-printf "%s\n" "$lt_cv_cc_needs_belf" >&6; }
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $lt_cv_cc_needs_belf" >&5
+printf '%s\n' "$lt_cv_cc_needs_belf" >&6; }
if test x"$lt_cv_cc_needs_belf" != x"yes"; then
# this is probably gcc 2.8.0, egcs 1.0 or newer; no need for -belf
CFLAGS="$SAVE_CFLAGS"
@@ -85896,7 +85535,7 @@
if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5
(eval $ac_compile) 2>&5
ac_status=$?
- printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ printf '%s\n' "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
test $ac_status = 0; }; then
case `/usr/bin/file conftest.o` in
*64-bit*)
@@ -85930,7 +85569,7 @@
ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5'
ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking how to run the C++ preprocessor" >&5
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking how to run the C++ preprocessor" >&5
printf %s "checking how to run the C++ preprocessor... " >&6; }
if test -z "$CXXCPP"; then
if test ${ac_cv_prog_CXXCPP+y}
@@ -85997,8 +85636,8 @@
else
ac_cv_prog_CXXCPP=$CXXCPP
fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $CXXCPP" >&5
-printf "%s\n" "$CXXCPP" >&6; }
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $CXXCPP" >&5
+printf '%s\n' "$CXXCPP" >&6; }
ac_preproc_ok=false
for ac_cxx_preproc_warn_flag in '' yes
do
@@ -86046,8 +85685,8 @@
then :
else case e in #(
- e) { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in '$ac_pwd':" >&5
-printf "%s\n" "$as_me: error: in '$ac_pwd':" >&2;}
+ e) { { printf '%s\n' "$as_me:${as_lineno-$LINENO}: error: in '$ac_pwd':" >&5
+printf '%s\n' "$as_me: error: in '$ac_pwd':" >&2;}
as_fn_error $? "C++ preprocessor \"$CXXCPP\" fails sanity check
See 'config.log' for more details" "$LINENO" 5; } ;;
esac
@@ -86064,7 +85703,7 @@
# Autoconf 2.13's AC_OBJEXT and AC_EXEEXT macros only works for C compilers!
# find the maximum length of command line arguments
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking the maximum length of command line arguments" >&5
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking the maximum length of command line arguments" >&5
printf %s "checking the maximum length of command line arguments... " >&6; }
if test ${lt_cv_sys_max_cmd_len+y}
then :
@@ -86178,11 +85817,11 @@
fi
if test -n $lt_cv_sys_max_cmd_len ; then
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_sys_max_cmd_len" >&5
-printf "%s\n" "$lt_cv_sys_max_cmd_len" >&6; }
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $lt_cv_sys_max_cmd_len" >&5
+printf '%s\n' "$lt_cv_sys_max_cmd_len" >&6; }
else
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: none" >&5
-printf "%s\n" "none" >&6; }
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: none" >&5
+printf '%s\n' "none" >&6; }
fi
@@ -86190,7 +85829,7 @@
# Check for command to grab the raw symbol name followed by C symbol from nm.
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking command to parse $NM output from $compiler object" >&5
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking command to parse $NM output from $compiler object" >&5
printf %s "checking command to parse $NM output from $compiler object... " >&6; }
if test ${lt_cv_sys_global_symbol_pipe+y}
then :
@@ -86299,14 +85938,14 @@
if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5
(eval $ac_compile) 2>&5
ac_status=$?
- printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ printf '%s\n' "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
test $ac_status = 0; }; then
# Now try to grab the symbols.
nlist=conftest.nm
if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$NM conftest.$ac_objext \| $lt_cv_sys_global_symbol_pipe \> $nlist\""; } >&5
(eval $NM conftest.$ac_objext \| $lt_cv_sys_global_symbol_pipe \> $nlist) 2>&5
ac_status=$?
- printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ printf '%s\n' "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
test $ac_status = 0; } && test -s "$nlist"; then
# Try sorting and uniquifying the output.
if sort "$nlist" | uniq > "$nlist"T; then
@@ -86361,7 +86000,7 @@
if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_link\""; } >&5
(eval $ac_link) 2>&5
ac_status=$?
- printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ printf '%s\n' "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
test $ac_status = 0; } && test -s conftest${ac_exeext}; then
pipe_works=yes
fi
@@ -86397,14 +86036,14 @@
lt_cv_sys_global_symbol_to_cdecl=
fi
if test -z "$lt_cv_sys_global_symbol_pipe$lt_cv_sys_global_symbol_to_cdecl"; then
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: failed" >&5
-printf "%s\n" "failed" >&6; }
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: failed" >&5
+printf '%s\n' "failed" >&6; }
else
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: ok" >&5
-printf "%s\n" "ok" >&6; }
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: ok" >&5
+printf '%s\n' "ok" >&6; }
fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for objdir" >&5
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for objdir" >&5
printf %s "checking for objdir... " >&6; }
if test ${lt_cv_objdir+y}
then :
@@ -86421,8 +86060,8 @@
rmdir .libs 2>/dev/null ;;
esac
fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_objdir" >&5
-printf "%s\n" "$lt_cv_objdir" >&6; }
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $lt_cv_objdir" >&5
+printf '%s\n' "$lt_cv_objdir" >&6; }
objdir=$lt_cv_objdir
@@ -86473,7 +86112,7 @@
if test -n "$ac_tool_prefix"; then
# Extract the first word of "${ac_tool_prefix}ar", so it can be a program name with args.
set dummy ${ac_tool_prefix}ar; ac_word=$2
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
printf %s "checking for $ac_word... " >&6; }
if test ${ac_cv_prog_AR+y}
then :
@@ -86494,7 +86133,7 @@
for ac_exec_ext in '' $ac_executable_extensions; do
if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
ac_cv_prog_AR="${ac_tool_prefix}ar"
- printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
+ printf '%s\n' "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
break 2
fi
done
@@ -86506,11 +86145,11 @@
fi
AR=$ac_cv_prog_AR
if test -n "$AR"; then
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $AR" >&5
-printf "%s\n" "$AR" >&6; }
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $AR" >&5
+printf '%s\n' "$AR" >&6; }
else
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
-printf "%s\n" "no" >&6; }
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf '%s\n' "no" >&6; }
fi
@@ -86519,7 +86158,7 @@
ac_ct_AR=$AR
# Extract the first word of "ar", so it can be a program name with args.
set dummy ar; ac_word=$2
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
printf %s "checking for $ac_word... " >&6; }
if test ${ac_cv_prog_ac_ct_AR+y}
then :
@@ -86540,7 +86179,7 @@
for ac_exec_ext in '' $ac_executable_extensions; do
if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
ac_cv_prog_ac_ct_AR="ar"
- printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
+ printf '%s\n' "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
break 2
fi
done
@@ -86552,11 +86191,11 @@
fi
ac_ct_AR=$ac_cv_prog_ac_ct_AR
if test -n "$ac_ct_AR"; then
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_ct_AR" >&5
-printf "%s\n" "$ac_ct_AR" >&6; }
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $ac_ct_AR" >&5
+printf '%s\n' "$ac_ct_AR" >&6; }
else
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
-printf "%s\n" "no" >&6; }
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf '%s\n' "no" >&6; }
fi
if test "x$ac_ct_AR" = x; then
@@ -86564,8 +86203,8 @@
else
case $cross_compiling:$ac_tool_warned in
yes:)
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
-printf "%s\n" "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+printf '%s\n' "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
ac_tool_warned=yes ;;
esac
AR=$ac_ct_AR
@@ -86577,7 +86216,7 @@
if test -n "$ac_tool_prefix"; then
# Extract the first word of "${ac_tool_prefix}ranlib", so it can be a program name with args.
set dummy ${ac_tool_prefix}ranlib; ac_word=$2
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
printf %s "checking for $ac_word... " >&6; }
if test ${ac_cv_prog_RANLIB+y}
then :
@@ -86598,7 +86237,7 @@
for ac_exec_ext in '' $ac_executable_extensions; do
if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
ac_cv_prog_RANLIB="${ac_tool_prefix}ranlib"
- printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
+ printf '%s\n' "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
break 2
fi
done
@@ -86610,11 +86249,11 @@
fi
RANLIB=$ac_cv_prog_RANLIB
if test -n "$RANLIB"; then
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $RANLIB" >&5
-printf "%s\n" "$RANLIB" >&6; }
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $RANLIB" >&5
+printf '%s\n' "$RANLIB" >&6; }
else
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
-printf "%s\n" "no" >&6; }
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf '%s\n' "no" >&6; }
fi
@@ -86623,7 +86262,7 @@
ac_ct_RANLIB=$RANLIB
# Extract the first word of "ranlib", so it can be a program name with args.
set dummy ranlib; ac_word=$2
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
printf %s "checking for $ac_word... " >&6; }
if test ${ac_cv_prog_ac_ct_RANLIB+y}
then :
@@ -86644,7 +86283,7 @@
for ac_exec_ext in '' $ac_executable_extensions; do
if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
ac_cv_prog_ac_ct_RANLIB="ranlib"
- printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
+ printf '%s\n' "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
break 2
fi
done
@@ -86656,11 +86295,11 @@
fi
ac_ct_RANLIB=$ac_cv_prog_ac_ct_RANLIB
if test -n "$ac_ct_RANLIB"; then
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_ct_RANLIB" >&5
-printf "%s\n" "$ac_ct_RANLIB" >&6; }
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $ac_ct_RANLIB" >&5
+printf '%s\n' "$ac_ct_RANLIB" >&6; }
else
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
-printf "%s\n" "no" >&6; }
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf '%s\n' "no" >&6; }
fi
if test "x$ac_ct_RANLIB" = x; then
@@ -86668,8 +86307,8 @@
else
case $cross_compiling:$ac_tool_warned in
yes:)
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
-printf "%s\n" "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+printf '%s\n' "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
ac_tool_warned=yes ;;
esac
RANLIB=$ac_ct_RANLIB
@@ -86681,7 +86320,7 @@
if test -n "$ac_tool_prefix"; then
# Extract the first word of "${ac_tool_prefix}strip", so it can be a program name with args.
set dummy ${ac_tool_prefix}strip; ac_word=$2
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
printf %s "checking for $ac_word... " >&6; }
if test ${ac_cv_prog_STRIP+y}
then :
@@ -86702,7 +86341,7 @@
for ac_exec_ext in '' $ac_executable_extensions; do
if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
ac_cv_prog_STRIP="${ac_tool_prefix}strip"
- printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
+ printf '%s\n' "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
break 2
fi
done
@@ -86714,11 +86353,11 @@
fi
STRIP=$ac_cv_prog_STRIP
if test -n "$STRIP"; then
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $STRIP" >&5
-printf "%s\n" "$STRIP" >&6; }
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $STRIP" >&5
+printf '%s\n' "$STRIP" >&6; }
else
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
-printf "%s\n" "no" >&6; }
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf '%s\n' "no" >&6; }
fi
@@ -86727,7 +86366,7 @@
ac_ct_STRIP=$STRIP
# Extract the first word of "strip", so it can be a program name with args.
set dummy strip; ac_word=$2
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
printf %s "checking for $ac_word... " >&6; }
if test ${ac_cv_prog_ac_ct_STRIP+y}
then :
@@ -86748,7 +86387,7 @@
for ac_exec_ext in '' $ac_executable_extensions; do
if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
ac_cv_prog_ac_ct_STRIP="strip"
- printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
+ printf '%s\n' "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
break 2
fi
done
@@ -86760,11 +86399,11 @@
fi
ac_ct_STRIP=$ac_cv_prog_ac_ct_STRIP
if test -n "$ac_ct_STRIP"; then
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_ct_STRIP" >&5
-printf "%s\n" "$ac_ct_STRIP" >&6; }
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $ac_ct_STRIP" >&5
+printf '%s\n' "$ac_ct_STRIP" >&6; }
else
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
-printf "%s\n" "no" >&6; }
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf '%s\n' "no" >&6; }
fi
if test "x$ac_ct_STRIP" = x; then
@@ -86772,8 +86411,8 @@
else
case $cross_compiling:$ac_tool_warned in
yes:)
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
-printf "%s\n" "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+printf '%s\n' "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
ac_tool_warned=yes ;;
esac
STRIP=$ac_ct_STRIP
@@ -86836,7 +86475,7 @@
case $deplibs_check_method in
file_magic*)
if test "$file_magic_cmd" = '$MAGIC_CMD'; then
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for ${ac_tool_prefix}file" >&5
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for ${ac_tool_prefix}file" >&5
printf %s "checking for ${ac_tool_prefix}file... " >&6; }
if test ${lt_cv_path_MAGIC_CMD+y}
then :
@@ -86891,16 +86530,16 @@
MAGIC_CMD="$lt_cv_path_MAGIC_CMD"
if test -n "$MAGIC_CMD"; then
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $MAGIC_CMD" >&5
-printf "%s\n" "$MAGIC_CMD" >&6; }
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $MAGIC_CMD" >&5
+printf '%s\n' "$MAGIC_CMD" >&6; }
else
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
-printf "%s\n" "no" >&6; }
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf '%s\n' "no" >&6; }
fi
if test -z "$lt_cv_path_MAGIC_CMD"; then
if test -n "$ac_tool_prefix"; then
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for file" >&5
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for file" >&5
printf %s "checking for file... " >&6; }
if test ${lt_cv_path_MAGIC_CMD+y}
then :
@@ -86955,11 +86594,11 @@
MAGIC_CMD="$lt_cv_path_MAGIC_CMD"
if test -n "$MAGIC_CMD"; then
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $MAGIC_CMD" >&5
-printf "%s\n" "$MAGIC_CMD" >&6; }
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $MAGIC_CMD" >&5
+printf '%s\n' "$MAGIC_CMD" >&6; }
else
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
-printf "%s\n" "no" >&6; }
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf '%s\n' "no" >&6; }
fi
else
@@ -86977,7 +86616,7 @@
if test -n "$ac_tool_prefix"; then
# Extract the first word of "${ac_tool_prefix}dsymutil", so it can be a program name with args.
set dummy ${ac_tool_prefix}dsymutil; ac_word=$2
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
printf %s "checking for $ac_word... " >&6; }
if test ${ac_cv_prog_DSYMUTIL+y}
then :
@@ -86998,7 +86637,7 @@
for ac_exec_ext in '' $ac_executable_extensions; do
if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
ac_cv_prog_DSYMUTIL="${ac_tool_prefix}dsymutil"
- printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
+ printf '%s\n' "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
break 2
fi
done
@@ -87010,11 +86649,11 @@
fi
DSYMUTIL=$ac_cv_prog_DSYMUTIL
if test -n "$DSYMUTIL"; then
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $DSYMUTIL" >&5
-printf "%s\n" "$DSYMUTIL" >&6; }
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $DSYMUTIL" >&5
+printf '%s\n' "$DSYMUTIL" >&6; }
else
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
-printf "%s\n" "no" >&6; }
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf '%s\n' "no" >&6; }
fi
@@ -87023,7 +86662,7 @@
ac_ct_DSYMUTIL=$DSYMUTIL
# Extract the first word of "dsymutil", so it can be a program name with args.
set dummy dsymutil; ac_word=$2
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
printf %s "checking for $ac_word... " >&6; }
if test ${ac_cv_prog_ac_ct_DSYMUTIL+y}
then :
@@ -87044,7 +86683,7 @@
for ac_exec_ext in '' $ac_executable_extensions; do
if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
ac_cv_prog_ac_ct_DSYMUTIL="dsymutil"
- printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
+ printf '%s\n' "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
break 2
fi
done
@@ -87056,11 +86695,11 @@
fi
ac_ct_DSYMUTIL=$ac_cv_prog_ac_ct_DSYMUTIL
if test -n "$ac_ct_DSYMUTIL"; then
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_ct_DSYMUTIL" >&5
-printf "%s\n" "$ac_ct_DSYMUTIL" >&6; }
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $ac_ct_DSYMUTIL" >&5
+printf '%s\n' "$ac_ct_DSYMUTIL" >&6; }
else
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
-printf "%s\n" "no" >&6; }
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf '%s\n' "no" >&6; }
fi
if test "x$ac_ct_DSYMUTIL" = x; then
@@ -87068,8 +86707,8 @@
else
case $cross_compiling:$ac_tool_warned in
yes:)
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
-printf "%s\n" "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+printf '%s\n' "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
ac_tool_warned=yes ;;
esac
DSYMUTIL=$ac_ct_DSYMUTIL
@@ -87081,7 +86720,7 @@
if test -n "$ac_tool_prefix"; then
# Extract the first word of "${ac_tool_prefix}nmedit", so it can be a program name with args.
set dummy ${ac_tool_prefix}nmedit; ac_word=$2
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
printf %s "checking for $ac_word... " >&6; }
if test ${ac_cv_prog_NMEDIT+y}
then :
@@ -87102,7 +86741,7 @@
for ac_exec_ext in '' $ac_executable_extensions; do
if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
ac_cv_prog_NMEDIT="${ac_tool_prefix}nmedit"
- printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
+ printf '%s\n' "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
break 2
fi
done
@@ -87114,11 +86753,11 @@
fi
NMEDIT=$ac_cv_prog_NMEDIT
if test -n "$NMEDIT"; then
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $NMEDIT" >&5
-printf "%s\n" "$NMEDIT" >&6; }
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $NMEDIT" >&5
+printf '%s\n' "$NMEDIT" >&6; }
else
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
-printf "%s\n" "no" >&6; }
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf '%s\n' "no" >&6; }
fi
@@ -87127,7 +86766,7 @@
ac_ct_NMEDIT=$NMEDIT
# Extract the first word of "nmedit", so it can be a program name with args.
set dummy nmedit; ac_word=$2
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
printf %s "checking for $ac_word... " >&6; }
if test ${ac_cv_prog_ac_ct_NMEDIT+y}
then :
@@ -87148,7 +86787,7 @@
for ac_exec_ext in '' $ac_executable_extensions; do
if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
ac_cv_prog_ac_ct_NMEDIT="nmedit"
- printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
+ printf '%s\n' "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
break 2
fi
done
@@ -87160,11 +86799,11 @@
fi
ac_ct_NMEDIT=$ac_cv_prog_ac_ct_NMEDIT
if test -n "$ac_ct_NMEDIT"; then
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_ct_NMEDIT" >&5
-printf "%s\n" "$ac_ct_NMEDIT" >&6; }
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $ac_ct_NMEDIT" >&5
+printf '%s\n' "$ac_ct_NMEDIT" >&6; }
else
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
-printf "%s\n" "no" >&6; }
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf '%s\n' "no" >&6; }
fi
if test "x$ac_ct_NMEDIT" = x; then
@@ -87172,8 +86811,8 @@
else
case $cross_compiling:$ac_tool_warned in
yes:)
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
-printf "%s\n" "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+printf '%s\n' "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
ac_tool_warned=yes ;;
esac
NMEDIT=$ac_ct_NMEDIT
@@ -87183,7 +86822,7 @@
fi
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for -single_module linker flag" >&5
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for -single_module linker flag" >&5
printf %s "checking for -single_module linker flag... " >&6; }
if test ${lt_cv_apple_cc_single_mod+y}
then :
@@ -87206,9 +86845,9 @@
fi ;;
esac
fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_apple_cc_single_mod" >&5
-printf "%s\n" "$lt_cv_apple_cc_single_mod" >&6; }
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for -exported_symbols_list linker flag" >&5
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $lt_cv_apple_cc_single_mod" >&5
+printf '%s\n' "$lt_cv_apple_cc_single_mod" >&6; }
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for -exported_symbols_list linker flag" >&5
printf %s "checking for -exported_symbols_list linker flag... " >&6; }
if test ${lt_cv_ld_exported_symbols_list+y}
then :
@@ -87220,7 +86859,7 @@
LDFLAGS="$LDFLAGS -Wl,-exported_symbols_list,conftest.sym"
cat > conftest.$ac_ext <&5
(eval $ac_link) 2>&5
ac_status=$?
- printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ printf '%s\n' "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
test $ac_status = 0; } && test -s conftest${ac_exeext}; then
lt_cv_ld_exported_symbols_list=yes
rm -rf conftest*
@@ -87243,8 +86882,8 @@
;;
esac
fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_ld_exported_symbols_list" >&5
-printf "%s\n" "$lt_cv_ld_exported_symbols_list" >&6; }
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $lt_cv_ld_exported_symbols_list" >&5
+printf '%s\n' "$lt_cv_ld_exported_symbols_list" >&6; }
case $host_os in
rhapsody* | darwin1.[0123])
_lt_dar_allow_undefined='${wl}-undefined ${wl}suppress' ;;
@@ -87363,7 +87002,7 @@
lt_prog_compiler_no_builtin_flag=' -fno-builtin'
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if $compiler supports -fno-rtti -fno-exceptions" >&5
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking if $compiler supports -fno-rtti -fno-exceptions" >&5
printf %s "checking if $compiler supports -fno-rtti -fno-exceptions... " >&6; }
if test ${lt_cv_prog_compiler_rtti_exceptions+y}
then :
@@ -87382,11 +87021,11 @@
-e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
-e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
-e 's:$: $lt_compiler_flag:'`
- (eval echo "\"configure:87385: $lt_compile\"" >&5)
+ (eval echo "\"configure:87024: $lt_compile\"" >&5)
(eval "$lt_compile" 2>conftest.err)
ac_status=$?
cat conftest.err >&5
- echo "configure:87389: \$? = $ac_status" >&5
+ echo "configure:87028: \$? = $ac_status" >&5
if (exit $ac_status) && test -s "$ac_outfile"; then
# The compiler can only warn and ignore the option if not recognized
# So say no if there are warnings other than the usual output.
@@ -87400,8 +87039,8 @@
;;
esac
fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_rtti_exceptions" >&5
-printf "%s\n" "$lt_cv_prog_compiler_rtti_exceptions" >&6; }
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_rtti_exceptions" >&5
+printf '%s\n' "$lt_cv_prog_compiler_rtti_exceptions" >&6; }
if test x"$lt_cv_prog_compiler_rtti_exceptions" = xyes; then
lt_prog_compiler_no_builtin_flag="$lt_prog_compiler_no_builtin_flag -fno-rtti -fno-exceptions"
@@ -87415,7 +87054,7 @@
lt_prog_compiler_pic=
lt_prog_compiler_static=
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $compiler option to produce PIC" >&5
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for $compiler option to produce PIC" >&5
printf %s "checking for $compiler option to produce PIC... " >&6; }
if test "$GCC" = yes; then
@@ -87655,15 +87294,15 @@
esac
fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_prog_compiler_pic" >&5
-printf "%s\n" "$lt_prog_compiler_pic" >&6; }
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $lt_prog_compiler_pic" >&5
+printf '%s\n' "$lt_prog_compiler_pic" >&6; }
#
# Check to make sure the PIC flag actually works.
#
if test -n "$lt_prog_compiler_pic"; then
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if $compiler PIC flag $lt_prog_compiler_pic works" >&5
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking if $compiler PIC flag $lt_prog_compiler_pic works" >&5
printf %s "checking if $compiler PIC flag $lt_prog_compiler_pic works... " >&6; }
if test ${lt_cv_prog_compiler_pic_works+y}
then :
@@ -87682,11 +87321,11 @@
-e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
-e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
-e 's:$: $lt_compiler_flag:'`
- (eval echo "\"configure:87685: $lt_compile\"" >&5)
+ (eval echo "\"configure:87324: $lt_compile\"" >&5)
(eval "$lt_compile" 2>conftest.err)
ac_status=$?
cat conftest.err >&5
- echo "configure:87689: \$? = $ac_status" >&5
+ echo "configure:87328: \$? = $ac_status" >&5
if (exit $ac_status) && test -s "$ac_outfile"; then
# The compiler can only warn and ignore the option if not recognized
# So say no if there are warnings other than the usual output.
@@ -87700,8 +87339,8 @@
;;
esac
fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_pic_works" >&5
-printf "%s\n" "$lt_cv_prog_compiler_pic_works" >&6; }
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_pic_works" >&5
+printf '%s\n' "$lt_cv_prog_compiler_pic_works" >&6; }
if test x"$lt_cv_prog_compiler_pic_works" = xyes; then
case $lt_prog_compiler_pic in
@@ -87728,7 +87367,7 @@
# Check to make sure the static flag actually works.
#
wl=$lt_prog_compiler_wl eval lt_tmp_static_flag=\"$lt_prog_compiler_static\"
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if $compiler static flag $lt_tmp_static_flag works" >&5
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking if $compiler static flag $lt_tmp_static_flag works" >&5
printf %s "checking if $compiler static flag $lt_tmp_static_flag works... " >&6; }
if test ${lt_cv_prog_compiler_static_works+y}
then :
@@ -87758,8 +87397,8 @@
;;
esac
fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_static_works" >&5
-printf "%s\n" "$lt_cv_prog_compiler_static_works" >&6; }
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_static_works" >&5
+printf '%s\n' "$lt_cv_prog_compiler_static_works" >&6; }
if test x"$lt_cv_prog_compiler_static_works" = xyes; then
:
@@ -87768,7 +87407,7 @@
fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if $compiler supports -c -o file.$ac_objext" >&5
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking if $compiler supports -c -o file.$ac_objext" >&5
printf %s "checking if $compiler supports -c -o file.$ac_objext... " >&6; }
if test ${lt_cv_prog_compiler_c_o+y}
then :
@@ -87790,11 +87429,11 @@
-e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
-e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
-e 's:$: $lt_compiler_flag:'`
- (eval echo "\"configure:87793: $lt_compile\"" >&5)
+ (eval echo "\"configure:87432: $lt_compile\"" >&5)
(eval "$lt_compile" 2>out/conftest.err)
ac_status=$?
cat out/conftest.err >&5
- echo "configure:87797: \$? = $ac_status" >&5
+ echo "configure:87436: \$? = $ac_status" >&5
if (exit $ac_status) && test -s out/conftest2.$ac_objext
then
# The compiler can only warn and ignore the option if not recognized
@@ -87817,14 +87456,14 @@
;;
esac
fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_c_o" >&5
-printf "%s\n" "$lt_cv_prog_compiler_c_o" >&6; }
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_c_o" >&5
+printf '%s\n' "$lt_cv_prog_compiler_c_o" >&6; }
hard_links="nottested"
if test "$lt_cv_prog_compiler_c_o" = no && test "$need_locks" != no; then
# do not overwrite the value of need_locks provided by the user
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if we can lock with hard links" >&5
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking if we can lock with hard links" >&5
printf %s "checking if we can lock with hard links... " >&6; }
hard_links=yes
$rm conftest*
@@ -87832,18 +87471,18 @@
touch conftest.a
ln conftest.a conftest.b 2>&5 || hard_links=no
ln conftest.a conftest.b 2>/dev/null && hard_links=no
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $hard_links" >&5
-printf "%s\n" "$hard_links" >&6; }
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $hard_links" >&5
+printf '%s\n' "$hard_links" >&6; }
if test "$hard_links" = no; then
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: '$CC' does not support '-c -o', so 'make -j' may be unsafe" >&5
-printf "%s\n" "$as_me: WARNING: '$CC' does not support '-c -o', so 'make -j' may be unsafe" >&2;}
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: WARNING: '$CC' does not support '-c -o', so 'make -j' may be unsafe" >&5
+printf '%s\n' "$as_me: WARNING: '$CC' does not support '-c -o', so 'make -j' may be unsafe" >&2;}
need_locks=warn
fi
else
need_locks=no
fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether the $compiler linker ($LD) supports shared libraries" >&5
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking whether the $compiler linker ($LD) supports shared libraries" >&5
printf %s "checking whether the $compiler linker ($LD) supports shared libraries... " >&6; }
runpath_var=
@@ -88255,7 +87894,7 @@
# Determine the default libpath from the value encoded in an empty executable.
cat > conftest.$ac_ext <&5
(eval $ac_link) 2>&5
ac_status=$?
- printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ printf '%s\n' "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
test $ac_status = 0; } && test -s conftest${ac_exeext}; then
lt_aix_libpath_sed='
@@ -88297,7 +87936,7 @@
# Determine the default libpath from the value encoded in an empty executable.
cat > conftest.$ac_ext <&5
(eval $ac_link) 2>&5
ac_status=$?
- printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ printf '%s\n' "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
test $ac_status = 0; } && test -s conftest${ac_exeext}; then
lt_aix_libpath_sed='
@@ -88771,8 +88410,8 @@
esac
fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ld_shlibs" >&5
-printf "%s\n" "$ld_shlibs" >&6; }
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $ld_shlibs" >&5
+printf '%s\n' "$ld_shlibs" >&6; }
test "$ld_shlibs" = no && can_build_shared=no
#
@@ -88792,7 +88431,7 @@
# Test whether the compiler implicitly links with -lc since on some
# systems, -lgcc has to come before -lc. If gcc already passes -lc
# to ld, don't add -lc before -lgcc.
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether -lc should be explicitly linked in" >&5
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking whether -lc should be explicitly linked in" >&5
printf %s "checking whether -lc should be explicitly linked in... " >&6; }
$rm conftest*
echo "$lt_simple_compile_test_code" > conftest.$ac_ext
@@ -88800,7 +88439,7 @@
if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5
(eval $ac_compile) 2>&5
ac_status=$?
- printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ printf '%s\n' "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
test $ac_status = 0; } 2>conftest.err; then
soname=conftest
lib=conftest
@@ -88818,7 +88457,7 @@
if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$archive_cmds 2\>\&1 \| grep \" -lc \" \>/dev/null 2\>\&1\""; } >&5
(eval $archive_cmds 2\>\&1 \| grep \" -lc \" \>/dev/null 2\>\&1) 2>&5
ac_status=$?
- printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ printf '%s\n' "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
test $ac_status = 0; }
then
archive_cmds_need_lc=no
@@ -88830,15 +88469,15 @@
cat conftest.err 1>&5
fi
$rm conftest*
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $archive_cmds_need_lc" >&5
-printf "%s\n" "$archive_cmds_need_lc" >&6; }
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $archive_cmds_need_lc" >&5
+printf '%s\n' "$archive_cmds_need_lc" >&6; }
;;
esac
fi
;;
esac
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking dynamic linker characteristics" >&5
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking dynamic linker characteristics" >&5
printf %s "checking dynamic linker characteristics... " >&6; }
library_names_spec=
libname_spec='lib$name'
@@ -89447,8 +89086,8 @@
dynamic_linker=no
;;
esac
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $dynamic_linker" >&5
-printf "%s\n" "$dynamic_linker" >&6; }
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $dynamic_linker" >&5
+printf '%s\n' "$dynamic_linker" >&6; }
test "$dynamic_linker" = no && can_build_shared=no
if test ${lt_cv_sys_lib_search_path_spec+y}
@@ -89475,7 +89114,7 @@
variables_saved_for_relink="$variables_saved_for_relink GCC_EXEC_PREFIX COMPILER_PATH LIBRARY_PATH"
fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking how to hardcode library paths into programs" >&5
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking how to hardcode library paths into programs" >&5
printf %s "checking how to hardcode library paths into programs... " >&6; }
hardcode_action=
if test -n "$hardcode_libdir_flag_spec" || \
@@ -89500,8 +89139,8 @@
# directories.
hardcode_action=unsupported
fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $hardcode_action" >&5
-printf "%s\n" "$hardcode_action" >&6; }
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $hardcode_action" >&5
+printf '%s\n' "$hardcode_action" >&6; }
if test "$hardcode_action" = relink; then
# Fast installation is not supported
@@ -89514,13 +89153,13 @@
striplib=
old_striplib=
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether stripping libraries is possible" >&5
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking whether stripping libraries is possible" >&5
printf %s "checking whether stripping libraries is possible... " >&6; }
if test -n "$STRIP" && $STRIP -V 2>&1 | grep "GNU strip" >/dev/null; then
test -z "$old_striplib" && old_striplib="$STRIP --strip-debug"
test -z "$striplib" && striplib="$STRIP --strip-unneeded"
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-printf "%s\n" "yes" >&6; }
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+printf '%s\n' "yes" >&6; }
else
# FIXME - insert some real tests, host_os isn't really good enough
case $host_os in
@@ -89528,16 +89167,16 @@
if test -n "$STRIP" ; then
striplib="$STRIP -x"
old_striplib="$STRIP -S"
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-printf "%s\n" "yes" >&6; }
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+printf '%s\n' "yes" >&6; }
else
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
-printf "%s\n" "no" >&6; }
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf '%s\n' "no" >&6; }
fi
;;
*)
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
-printf "%s\n" "no" >&6; }
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf '%s\n' "no" >&6; }
;;
esac
fi
@@ -89569,7 +89208,7 @@
darwin*)
# if libdl is installed we need to link against it
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for dlopen in -ldl" >&5
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for dlopen in -ldl" >&5
printf %s "checking for dlopen in -ldl... " >&6; }
if test ${ac_cv_lib_dl_dlopen+y}
then :
@@ -89610,8 +89249,8 @@
LIBS=$ac_check_lib_save_LIBS ;;
esac
fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dl_dlopen" >&5
-printf "%s\n" "$ac_cv_lib_dl_dlopen" >&6; }
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dl_dlopen" >&5
+printf '%s\n' "$ac_cv_lib_dl_dlopen" >&6; }
if test "x$ac_cv_lib_dl_dlopen" = xyes
then :
lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl"
@@ -89632,7 +89271,7 @@
then :
lt_cv_dlopen="shl_load"
else case e in #(
- e) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for shl_load in -ldld" >&5
+ e) { printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for shl_load in -ldld" >&5
printf %s "checking for shl_load in -ldld... " >&6; }
if test ${ac_cv_lib_dld_shl_load+y}
then :
@@ -89673,8 +89312,8 @@
LIBS=$ac_check_lib_save_LIBS ;;
esac
fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dld_shl_load" >&5
-printf "%s\n" "$ac_cv_lib_dld_shl_load" >&6; }
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dld_shl_load" >&5
+printf '%s\n' "$ac_cv_lib_dld_shl_load" >&6; }
if test "x$ac_cv_lib_dld_shl_load" = xyes
then :
lt_cv_dlopen="shl_load" lt_cv_dlopen_libs="-ldld"
@@ -89684,7 +89323,7 @@
then :
lt_cv_dlopen="dlopen"
else case e in #(
- e) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for dlopen in -ldl" >&5
+ e) { printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for dlopen in -ldl" >&5
printf %s "checking for dlopen in -ldl... " >&6; }
if test ${ac_cv_lib_dl_dlopen+y}
then :
@@ -89725,13 +89364,13 @@
LIBS=$ac_check_lib_save_LIBS ;;
esac
fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dl_dlopen" >&5
-printf "%s\n" "$ac_cv_lib_dl_dlopen" >&6; }
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dl_dlopen" >&5
+printf '%s\n' "$ac_cv_lib_dl_dlopen" >&6; }
if test "x$ac_cv_lib_dl_dlopen" = xyes
then :
lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl"
else case e in #(
- e) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for dlopen in -lsvld" >&5
+ e) { printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for dlopen in -lsvld" >&5
printf %s "checking for dlopen in -lsvld... " >&6; }
if test ${ac_cv_lib_svld_dlopen+y}
then :
@@ -89772,13 +89411,13 @@
LIBS=$ac_check_lib_save_LIBS ;;
esac
fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_svld_dlopen" >&5
-printf "%s\n" "$ac_cv_lib_svld_dlopen" >&6; }
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_svld_dlopen" >&5
+printf '%s\n' "$ac_cv_lib_svld_dlopen" >&6; }
if test "x$ac_cv_lib_svld_dlopen" = xyes
then :
lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-lsvld"
else case e in #(
- e) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for dld_link in -ldld" >&5
+ e) { printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for dld_link in -ldld" >&5
printf %s "checking for dld_link in -ldld... " >&6; }
if test ${ac_cv_lib_dld_dld_link+y}
then :
@@ -89819,8 +89458,8 @@
LIBS=$ac_check_lib_save_LIBS ;;
esac
fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dld_dld_link" >&5
-printf "%s\n" "$ac_cv_lib_dld_dld_link" >&6; }
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dld_dld_link" >&5
+printf '%s\n' "$ac_cv_lib_dld_dld_link" >&6; }
if test "x$ac_cv_lib_dld_dld_link" = xyes
then :
lt_cv_dlopen="dld_link" lt_cv_dlopen_libs="-ldld"
@@ -89866,7 +89505,7 @@
save_LIBS="$LIBS"
LIBS="$lt_cv_dlopen_libs $LIBS"
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether a program can dlopen itself" >&5
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking whether a program can dlopen itself" >&5
printf %s "checking whether a program can dlopen itself... " >&6; }
if test ${lt_cv_dlopen_self+y}
then :
@@ -89878,7 +89517,7 @@
lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
lt_status=$lt_dlunknown
cat > conftest.$ac_ext <&5
(eval $ac_link) 2>&5
ac_status=$?
- printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ printf '%s\n' "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
test $ac_status = 0; } && test -s conftest${ac_exeext} 2>/dev/null; then
(./conftest; exit; ) >&5 2>/dev/null
lt_status=$?
@@ -89960,12 +89599,12 @@
;;
esac
fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_dlopen_self" >&5
-printf "%s\n" "$lt_cv_dlopen_self" >&6; }
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $lt_cv_dlopen_self" >&5
+printf '%s\n' "$lt_cv_dlopen_self" >&6; }
if test "x$lt_cv_dlopen_self" = xyes; then
wl=$lt_prog_compiler_wl eval LDFLAGS=\"\$LDFLAGS $lt_prog_compiler_static\"
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether a statically linked program can dlopen itself" >&5
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking whether a statically linked program can dlopen itself" >&5
printf %s "checking whether a statically linked program can dlopen itself... " >&6; }
if test ${lt_cv_dlopen_self_static+y}
then :
@@ -89977,7 +89616,7 @@
lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
lt_status=$lt_dlunknown
cat > conftest.$ac_ext <&5
(eval $ac_link) 2>&5
ac_status=$?
- printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ printf '%s\n' "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
test $ac_status = 0; } && test -s conftest${ac_exeext} 2>/dev/null; then
(./conftest; exit; ) >&5 2>/dev/null
lt_status=$?
@@ -90059,8 +89698,8 @@
;;
esac
fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_dlopen_self_static" >&5
-printf "%s\n" "$lt_cv_dlopen_self_static" >&6; }
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $lt_cv_dlopen_self_static" >&5
+printf '%s\n' "$lt_cv_dlopen_self_static" >&6; }
fi
CPPFLAGS="$save_CPPFLAGS"
@@ -90082,12 +89721,12 @@
# Report which library types will actually be built
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if libtool supports shared libraries" >&5
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking if libtool supports shared libraries" >&5
printf %s "checking if libtool supports shared libraries... " >&6; }
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $can_build_shared" >&5
-printf "%s\n" "$can_build_shared" >&6; }
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $can_build_shared" >&5
+printf '%s\n' "$can_build_shared" >&6; }
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether to build shared libraries" >&5
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking whether to build shared libraries" >&5
printf %s "checking whether to build shared libraries... " >&6; }
test "$can_build_shared" = "no" && enable_shared=no
@@ -90108,15 +89747,15 @@
fi
;;
esac
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $enable_shared" >&5
-printf "%s\n" "$enable_shared" >&6; }
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $enable_shared" >&5
+printf '%s\n' "$enable_shared" >&6; }
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether to build static libraries" >&5
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking whether to build static libraries" >&5
printf %s "checking whether to build static libraries... " >&6; }
# Make sure either enable_shared or enable_static is yes.
test "$enable_shared" = yes || enable_static=yes
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $enable_static" >&5
-printf "%s\n" "$enable_static" >&6; }
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $enable_static" >&5
+printf '%s\n' "$enable_static" >&6; }
# The else clause should only fire when bootstrapping the
# libtool distribution, otherwise you forgot to ship ltmain.sh
@@ -90209,9 +89848,9 @@
cfgfile="${ofile}T"
trap "$rm \"$cfgfile\"; exit 1" 1 2 15
$rm -f "$cfgfile"
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result:
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result:
creating $ofile" >&5
-printf "%s\n" "
+printf '%s\n' "
creating $ofile" >&6; }
cat <<__EOF__ >> "$cfgfile"
@@ -90625,18 +90264,18 @@
if test -f "$ltmain" && test -n "$tagnames"; then
if test ! -f "${ofile}"; then
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: output file '$ofile' does not exist" >&5
-printf "%s\n" "$as_me: WARNING: output file '$ofile' does not exist" >&2;}
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: WARNING: output file '$ofile' does not exist" >&5
+printf '%s\n' "$as_me: WARNING: output file '$ofile' does not exist" >&2;}
fi
if test -z "$LTCC"; then
eval "`$SHELL ${ofile} --config | grep '^LTCC='`"
if test -z "$LTCC"; then
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: output file '$ofile' does not look like a libtool script" >&5
-printf "%s\n" "$as_me: WARNING: output file '$ofile' does not look like a libtool script" >&2;}
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: WARNING: output file '$ofile' does not look like a libtool script" >&5
+printf '%s\n' "$as_me: WARNING: output file '$ofile' does not look like a libtool script" >&2;}
else
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using 'LTCC=$LTCC', extracted from '$ofile'" >&5
-printf "%s\n" "$as_me: WARNING: using 'LTCC=$LTCC', extracted from '$ofile'" >&2;}
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: WARNING: using 'LTCC=$LTCC', extracted from '$ofile'" >&5
+printf '%s\n' "$as_me: WARNING: using 'LTCC=$LTCC', extracted from '$ofile'" >&2;}
fi
fi
if test -z "$LTCFLAGS"; then
@@ -90803,7 +90442,7 @@
ac_prog=ld
if test "$GCC" = yes; then
# Check if gcc -print-prog-name=ld gives a path.
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for ld used by $CC" >&5
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for ld used by $CC" >&5
printf %s "checking for ld used by $CC... " >&6; }
case $host in
*-*-mingw*)
@@ -90833,10 +90472,10 @@
;;
esac
elif test "$with_gnu_ld" = yes; then
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for GNU ld" >&5
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for GNU ld" >&5
printf %s "checking for GNU ld... " >&6; }
else
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for non-GNU ld" >&5
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for non-GNU ld" >&5
printf %s "checking for non-GNU ld... " >&6; }
fi
if test ${lt_cv_path_LD+y}
@@ -90872,14 +90511,14 @@
LD="$lt_cv_path_LD"
if test -n "$LD"; then
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $LD" >&5
-printf "%s\n" "$LD" >&6; }
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $LD" >&5
+printf '%s\n' "$LD" >&6; }
else
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
-printf "%s\n" "no" >&6; }
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf '%s\n' "no" >&6; }
fi
test -z "$LD" && as_fn_error $? "no acceptable ld found in \$PATH" "$LINENO" 5
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if the linker ($LD) is GNU ld" >&5
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking if the linker ($LD) is GNU ld" >&5
printf %s "checking if the linker ($LD) is GNU ld... " >&6; }
if test ${lt_cv_prog_gnu_ld+y}
then :
@@ -90896,8 +90535,8 @@
esac ;;
esac
fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_gnu_ld" >&5
-printf "%s\n" "$lt_cv_prog_gnu_ld" >&6; }
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_gnu_ld" >&5
+printf '%s\n' "$lt_cv_prog_gnu_ld" >&6; }
with_gnu_ld=$lt_cv_prog_gnu_ld
@@ -90947,7 +90586,7 @@
fi
# PORTME: fill in a description of your system's C++ link characteristics
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether the $compiler linker ($LD) supports shared libraries" >&5
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking whether the $compiler linker ($LD) supports shared libraries" >&5
printf %s "checking whether the $compiler linker ($LD) supports shared libraries... " >&6; }
ld_shlibs_CXX=yes
case $host_os in
@@ -91046,7 +90685,7 @@
# Determine the default libpath from the value encoded in an empty executable.
cat > conftest.$ac_ext <&5
(eval $ac_link) 2>&5
ac_status=$?
- printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ printf '%s\n' "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
test $ac_status = 0; } && test -s conftest${ac_exeext}; then
lt_aix_libpath_sed='
@@ -91089,7 +90728,7 @@
# Determine the default libpath from the value encoded in an empty executable.
cat > conftest.$ac_ext <&5
(eval $ac_link) 2>&5
ac_status=$?
- printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ printf '%s\n' "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
test $ac_status = 0; } && test -s conftest${ac_exeext}; then
lt_aix_libpath_sed='
@@ -91845,8 +91484,8 @@
ld_shlibs_CXX=no
;;
esac
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ld_shlibs_CXX" >&5
-printf "%s\n" "$ld_shlibs_CXX" >&6; }
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $ld_shlibs_CXX" >&5
+printf '%s\n' "$ld_shlibs_CXX" >&6; }
test "$ld_shlibs_CXX" = no && can_build_shared=no
GCC_CXX="$GXX"
@@ -91869,7 +91508,7 @@
if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5
(eval $ac_compile) 2>&5
ac_status=$?
- printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ printf '%s\n' "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
test $ac_status = 0; }; then
# Parse the compiler output and extract the necessary
# objects, libraries and library flags.
@@ -92025,7 +91664,7 @@
lt_prog_compiler_pic_CXX=
lt_prog_compiler_static_CXX=
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $compiler option to produce PIC" >&5
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking for $compiler option to produce PIC" >&5
printf %s "checking for $compiler option to produce PIC... " >&6; }
# C++ specific cases for pic, static, wl, etc.
@@ -92315,15 +91954,15 @@
esac
fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_prog_compiler_pic_CXX" >&5
-printf "%s\n" "$lt_prog_compiler_pic_CXX" >&6; }
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $lt_prog_compiler_pic_CXX" >&5
+printf '%s\n' "$lt_prog_compiler_pic_CXX" >&6; }
#
# Check to make sure the PIC flag actually works.
#
if test -n "$lt_prog_compiler_pic_CXX"; then
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if $compiler PIC flag $lt_prog_compiler_pic_CXX works" >&5
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking if $compiler PIC flag $lt_prog_compiler_pic_CXX works" >&5
printf %s "checking if $compiler PIC flag $lt_prog_compiler_pic_CXX works... " >&6; }
if test ${lt_cv_prog_compiler_pic_works_CXX+y}
then :
@@ -92342,11 +91981,11 @@
-e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
-e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
-e 's:$: $lt_compiler_flag:'`
- (eval echo "\"configure:92345: $lt_compile\"" >&5)
+ (eval echo "\"configure:91984: $lt_compile\"" >&5)
(eval "$lt_compile" 2>conftest.err)
ac_status=$?
cat conftest.err >&5
- echo "configure:92349: \$? = $ac_status" >&5
+ echo "configure:91988: \$? = $ac_status" >&5
if (exit $ac_status) && test -s "$ac_outfile"; then
# The compiler can only warn and ignore the option if not recognized
# So say no if there are warnings other than the usual output.
@@ -92360,8 +91999,8 @@
;;
esac
fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_pic_works_CXX" >&5
-printf "%s\n" "$lt_cv_prog_compiler_pic_works_CXX" >&6; }
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_pic_works_CXX" >&5
+printf '%s\n' "$lt_cv_prog_compiler_pic_works_CXX" >&6; }
if test x"$lt_cv_prog_compiler_pic_works_CXX" = xyes; then
case $lt_prog_compiler_pic_CXX in
@@ -92388,7 +92027,7 @@
# Check to make sure the static flag actually works.
#
wl=$lt_prog_compiler_wl_CXX eval lt_tmp_static_flag=\"$lt_prog_compiler_static_CXX\"
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if $compiler static flag $lt_tmp_static_flag works" >&5
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking if $compiler static flag $lt_tmp_static_flag works" >&5
printf %s "checking if $compiler static flag $lt_tmp_static_flag works... " >&6; }
if test ${lt_cv_prog_compiler_static_works_CXX+y}
then :
@@ -92418,8 +92057,8 @@
;;
esac
fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_static_works_CXX" >&5
-printf "%s\n" "$lt_cv_prog_compiler_static_works_CXX" >&6; }
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_static_works_CXX" >&5
+printf '%s\n' "$lt_cv_prog_compiler_static_works_CXX" >&6; }
if test x"$lt_cv_prog_compiler_static_works_CXX" = xyes; then
:
@@ -92428,7 +92067,7 @@
fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if $compiler supports -c -o file.$ac_objext" >&5
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking if $compiler supports -c -o file.$ac_objext" >&5
printf %s "checking if $compiler supports -c -o file.$ac_objext... " >&6; }
if test ${lt_cv_prog_compiler_c_o_CXX+y}
then :
@@ -92450,11 +92089,11 @@
-e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
-e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
-e 's:$: $lt_compiler_flag:'`
- (eval echo "\"configure:92453: $lt_compile\"" >&5)
+ (eval echo "\"configure:92092: $lt_compile\"" >&5)
(eval "$lt_compile" 2>out/conftest.err)
ac_status=$?
cat out/conftest.err >&5
- echo "configure:92457: \$? = $ac_status" >&5
+ echo "configure:92096: \$? = $ac_status" >&5
if (exit $ac_status) && test -s out/conftest2.$ac_objext
then
# The compiler can only warn and ignore the option if not recognized
@@ -92477,14 +92116,14 @@
;;
esac
fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_c_o_CXX" >&5
-printf "%s\n" "$lt_cv_prog_compiler_c_o_CXX" >&6; }
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_c_o_CXX" >&5
+printf '%s\n' "$lt_cv_prog_compiler_c_o_CXX" >&6; }
hard_links="nottested"
if test "$lt_cv_prog_compiler_c_o_CXX" = no && test "$need_locks" != no; then
# do not overwrite the value of need_locks provided by the user
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if we can lock with hard links" >&5
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking if we can lock with hard links" >&5
printf %s "checking if we can lock with hard links... " >&6; }
hard_links=yes
$rm conftest*
@@ -92492,18 +92131,18 @@
touch conftest.a
ln conftest.a conftest.b 2>&5 || hard_links=no
ln conftest.a conftest.b 2>/dev/null && hard_links=no
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $hard_links" >&5
-printf "%s\n" "$hard_links" >&6; }
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $hard_links" >&5
+printf '%s\n' "$hard_links" >&6; }
if test "$hard_links" = no; then
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: '$CC' does not support '-c -o', so 'make -j' may be unsafe" >&5
-printf "%s\n" "$as_me: WARNING: '$CC' does not support '-c -o', so 'make -j' may be unsafe" >&2;}
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: WARNING: '$CC' does not support '-c -o', so 'make -j' may be unsafe" >&5
+printf '%s\n' "$as_me: WARNING: '$CC' does not support '-c -o', so 'make -j' may be unsafe" >&2;}
need_locks=warn
fi
else
need_locks=no
fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether the $compiler linker ($LD) supports shared libraries" >&5
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking whether the $compiler linker ($LD) supports shared libraries" >&5
printf %s "checking whether the $compiler linker ($LD) supports shared libraries... " >&6; }
export_symbols_cmds_CXX='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols'
@@ -92529,8 +92168,8 @@
esac
exclude_expsyms_CXX='_GLOBAL_OFFSET_TABLE_|_GLOBAL__F[ID]_.*'
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ld_shlibs_CXX" >&5
-printf "%s\n" "$ld_shlibs_CXX" >&6; }
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $ld_shlibs_CXX" >&5
+printf '%s\n' "$ld_shlibs_CXX" >&6; }
test "$ld_shlibs_CXX" = no && can_build_shared=no
#
@@ -92550,7 +92189,7 @@
# Test whether the compiler implicitly links with -lc since on some
# systems, -lgcc has to come before -lc. If gcc already passes -lc
# to ld, don't add -lc before -lgcc.
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether -lc should be explicitly linked in" >&5
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking whether -lc should be explicitly linked in" >&5
printf %s "checking whether -lc should be explicitly linked in... " >&6; }
$rm conftest*
echo "$lt_simple_compile_test_code" > conftest.$ac_ext
@@ -92558,7 +92197,7 @@
if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5
(eval $ac_compile) 2>&5
ac_status=$?
- printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ printf '%s\n' "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
test $ac_status = 0; } 2>conftest.err; then
soname=conftest
lib=conftest
@@ -92576,7 +92215,7 @@
if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$archive_cmds_CXX 2\>\&1 \| grep \" -lc \" \>/dev/null 2\>\&1\""; } >&5
(eval $archive_cmds_CXX 2\>\&1 \| grep \" -lc \" \>/dev/null 2\>\&1) 2>&5
ac_status=$?
- printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ printf '%s\n' "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
test $ac_status = 0; }
then
archive_cmds_need_lc_CXX=no
@@ -92588,15 +92227,15 @@
cat conftest.err 1>&5
fi
$rm conftest*
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $archive_cmds_need_lc_CXX" >&5
-printf "%s\n" "$archive_cmds_need_lc_CXX" >&6; }
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $archive_cmds_need_lc_CXX" >&5
+printf '%s\n' "$archive_cmds_need_lc_CXX" >&6; }
;;
esac
fi
;;
esac
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking dynamic linker characteristics" >&5
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking dynamic linker characteristics" >&5
printf %s "checking dynamic linker characteristics... " >&6; }
library_names_spec=
libname_spec='lib$name'
@@ -93153,8 +92792,8 @@
dynamic_linker=no
;;
esac
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $dynamic_linker" >&5
-printf "%s\n" "$dynamic_linker" >&6; }
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $dynamic_linker" >&5
+printf '%s\n' "$dynamic_linker" >&6; }
test "$dynamic_linker" = no && can_build_shared=no
if test ${lt_cv_sys_lib_search_path_spec+y}
@@ -93181,7 +92820,7 @@
variables_saved_for_relink="$variables_saved_for_relink GCC_EXEC_PREFIX COMPILER_PATH LIBRARY_PATH"
fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking how to hardcode library paths into programs" >&5
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: checking how to hardcode library paths into programs" >&5
printf %s "checking how to hardcode library paths into programs... " >&6; }
hardcode_action_CXX=
if test -n "$hardcode_libdir_flag_spec_CXX" || \
@@ -93206,8 +92845,8 @@
# directories.
hardcode_action_CXX=unsupported
fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $hardcode_action_CXX" >&5
-printf "%s\n" "$hardcode_action_CXX" >&6; }
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: $hardcode_action_CXX" >&5
+printf '%s\n' "$hardcode_action_CXX" >&6; }
if test "$hardcode_action_CXX" = relink; then
# Fast installation is not supported
@@ -93719,10 +93358,10 @@
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: " >&5
-printf "%s\n" "" >&6; }
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: ${T_MD}Generating files${T_ME}" >&5
-printf "%s\n" "${T_MD}Generating files${T_ME}" >&6; }
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: " >&5
+printf '%s\n' "" >&6; }
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: result: ${T_MD}Generating files${T_ME}" >&5
+printf '%s\n' "${T_MD}Generating files${T_ME}" >&6; }
CXXFLAGS_CLEAN=$CXXFLAGS
@@ -94176,7 +93815,7 @@
-printf "%s\n" "#define HAVE_BUILD_DEFS_H 1" >>confdefs.h
+printf '%s\n' "#define HAVE_BUILD_DEFS_H 1" >>confdefs.h
as_fn_append BUILD_DIR " main main/streams scripts scripts/man1 TSRM Zend Zend/asm Zend/Optimizer"
@@ -94214,44 +93853,7 @@
_ACEOF
-# The following way of writing the cache mishandles newlines in values,
-# but we know of no workaround that is simple, portable, and efficient.
-# So, we kill variables containing newlines.
-# Ultrix sh set writes to stderr and can't be redirected directly,
-# and sets the high bit in the cache file unless we assign to the vars.
-(
- for ac_var in `(set) 2>&1 | sed -n 's/^\([a-zA-Z_][a-zA-Z0-9_]*\)=.*/\1/p'`; do
- eval ac_val=\$$ac_var
- case $ac_val in #(
- *${as_nl}*)
- case $ac_var in #(
- *_cv_*) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: cache variable $ac_var contains a newline" >&5
-printf "%s\n" "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;;
- esac
- case $ac_var in #(
- _ | IFS | as_nl) ;; #(
- BASH_ARGV | BASH_SOURCE) eval $ac_var= ;; #(
- *) { eval $ac_var=; unset $ac_var;} ;;
- esac ;;
- esac
- done
-
- (set) 2>&1 |
- case $as_nl`(ac_space=' '; set) 2>&1` in #(
- *${as_nl}ac_space=\ *)
- # 'set' does not quote correctly, so add quotes: double-quote
- # substitution turns \\\\ into \\, and sed turns \\ into \.
- sed -n \
- "s/'/'\\\\''/g;
- s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\\2'/p"
- ;; #(
- *)
- # 'set' quotes correctly as required by POSIX, so do not add quotes.
- sed -n "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p"
- ;;
- esac |
- sort
-) |
+ac_cache_dump |
sed '
/^ac_cv_env_/b end
t clear
@@ -94263,8 +93865,8 @@
if diff "$cache_file" confcache >/dev/null 2>&1; then :; else
if test -w "$cache_file"; then
if test "x$cache_file" != "x/dev/null"; then
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: updating cache $cache_file" >&5
-printf "%s\n" "$as_me: updating cache $cache_file" >&6;}
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: updating cache $cache_file" >&5
+printf '%s\n' "$as_me: updating cache $cache_file" >&6;}
if test ! -f "$cache_file" || test -h "$cache_file"; then
cat confcache >"$cache_file"
else
@@ -94278,8 +93880,8 @@
fi
fi
else
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: not updating unwritable cache $cache_file" >&5
-printf "%s\n" "$as_me: not updating unwritable cache $cache_file" >&6;}
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: not updating unwritable cache $cache_file" >&5
+printf '%s\n' "$as_me: not updating unwritable cache $cache_file" >&6;}
fi
fi
rm -f confcache
@@ -94296,7 +93898,7 @@
for ac_i in : $LIBOBJS; do test "x$ac_i" = x: && continue
# 1. Remove the extension, and $U if already installed.
ac_script='s/\$U\././;s/\.o$//;s/\.obj$//'
- ac_i=`printf "%s\n" "$ac_i" | sed "$ac_script"`
+ ac_i=`printf '%s\n' "$ac_i" | sed "$ac_script"`
# 2. Prepend LIBOBJDIR. When used with automake>=1.10 LIBOBJDIR
# will be set to the directory where LIBOBJS objects are built.
as_fn_append ac_libobjs " \${LIBOBJDIR}$ac_i\$U.$ac_objext"
@@ -94314,13 +93916,13 @@
PHP_VAR_SUBST="$PHP_VAR_SUBST phplibdir"
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: creating build directories" >&5
-printf "%s\n" "$as_me: creating build directories" >&6;}
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: creating build directories" >&5
+printf '%s\n' "$as_me: creating build directories" >&6;}
$php_shtool mkdir -p $BUILD_DIR
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: creating Makefile" >&5
-printf "%s\n" "$as_me: creating Makefile" >&6;}
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: creating Makefile" >&5
+printf '%s\n' "$as_me: creating Makefile" >&6;}
cat >Makefile <&5
-printf "%s\n" "$as_me: patching main/php_config.h.in" >&6;}
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: patching main/php_config.h.in" >&5
+printf '%s\n' "$as_me: patching main/php_config.h.in" >&6;}
$SED -e 's/^#undef PACKAGE_[^ ]*/\/\* & \*\//g' < $srcdir/main/php_config.h.in \
> $srcdir/main/php_config.h.in.tmp && mv $srcdir/main/php_config.h.in.tmp $srcdir/main/php_config.h.in
: "${CONFIG_STATUS=./config.status}"
+case $CONFIG_STATUS in #(
+ -*) :
+ CONFIG_STATUS=./$CONFIG_STATUS ;; #(
+ */*) :
+ ;; #(
+ *) :
+ CONFIG_STATUS=./$CONFIG_STATUS ;;
+esac
+
ac_write_fail=0
-ac_clean_files_save=$ac_clean_files
-ac_clean_files="$ac_clean_files $CONFIG_STATUS"
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: creating $CONFIG_STATUS" >&5
-printf "%s\n" "$as_me: creating $CONFIG_STATUS" >&6;}
+ac_clean_CONFIG_STATUS='"$CONFIG_STATUS"'
+{ printf '%s\n' "$as_me:${as_lineno-$LINENO}: creating $CONFIG_STATUS" >&5
+printf '%s\n' "$as_me: creating $CONFIG_STATUS" >&6;}
as_write_fail=0
-cat >$CONFIG_STATUS <<_ASEOF || as_write_fail=1
+cat >"$CONFIG_STATUS" <<_ASEOF || as_write_fail=1
#! $SHELL
# Generated by $as_me.
# Run this file to recreate the current configuration.
@@ -94363,7 +93973,7 @@
SHELL=\${CONFIG_SHELL-$SHELL}
export SHELL
_ASEOF
-cat >>$CONFIG_STATUS <<\_ASEOF || as_write_fail=1
+cat >>"$CONFIG_STATUS" <<\_ASEOF || as_write_fail=1
## -------------------- ##
## M4sh Initialization. ##
## -------------------- ##
@@ -94375,7 +93985,7 @@
emulate sh
NULLCMD=:
# Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which
- # is contrary to our usage. Disable this feature.
+ # contradicts POSIX and common usage. Disable this.
alias -g '${1+"$@"}'='"$@"'
setopt NO_GLOB_SUBST
else case e in #(
@@ -94462,7 +94072,7 @@
as_myself=$0
fi
if test ! -f "$as_myself"; then
- printf "%s\n" "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2
+ printf '%s\n' "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2
exit 1
fi
@@ -94478,9 +94088,9 @@
as_status=$1; test $as_status -eq 0 && as_status=1
if test "$4"; then
as_lineno=${as_lineno-"$3"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
- printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: $2" >&$4
+ printf '%s\n' "$as_me:${as_lineno-$LINENO}: error: $2" >&$4
fi
- printf "%s\n" "$as_me: error: $2" >&2
+ printf '%s\n' "$as_me: error: $2" >&2
as_fn_exit $as_status
} # as_fn_error
@@ -94575,7 +94185,7 @@
$as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \
X"$0" : 'X\(//\)$' \| \
X"$0" : 'X\(/\)' \| . 2>/dev/null ||
-printf "%s\n" X/"$0" |
+printf '%s\n' X/"$0" |
sed '/^.*\/\([^/][^/]*\)\/*$/{
s//\1/
q
@@ -94597,29 +94207,6 @@
as_cr_digits='0123456789'
as_cr_alnum=$as_cr_Letters$as_cr_digits
-
-# Determine whether it's possible to make 'echo' print without a newline.
-# These variables are no longer used directly by Autoconf, but are AC_SUBSTed
-# for compatibility with existing Makefiles.
-ECHO_C= ECHO_N= ECHO_T=
-case `echo -n x` in #(((((
--n*)
- case `echo 'xy\c'` in
- *c*) ECHO_T=' ';; # ECHO_T is single tab character.
- xy) ECHO_C='\c';;
- *) echo `echo ksh88 bug on AIX 6.1` > /dev/null
- ECHO_T=' ';;
- esac;;
-*)
- ECHO_N='-n';;
-esac
-
-# For backward compatibility with old third-party macros, we provide
-# the shell variables $as_echo and $as_echo_n. New code should use
-# AS_ECHO(["message"]) and AS_ECHO_N(["message"]), respectively.
-as_echo='printf %s\n'
-as_echo_n='printf %s'
-
rm -f conf$$ conf$$.exe conf$$.file
if test -d conf$$.dir; then
rm -f conf$$.dir/conf$$.file
@@ -94661,7 +94248,7 @@
as_dirs=
while :; do
case $as_dir in #(
- *\'*) as_qdir=`printf "%s\n" "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'(
+ *\'*) as_qdir=`printf '%s\n' "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'(
*) as_qdir=$as_dir;;
esac
as_dirs="'$as_qdir' $as_dirs"
@@ -94670,7 +94257,7 @@
X"$as_dir" : 'X\(//\)[^/]' \| \
X"$as_dir" : 'X\(//\)$' \| \
X"$as_dir" : 'X\(/\)' \| . 2>/dev/null ||
-printf "%s\n" X"$as_dir" |
+printf '%s\n' X"$as_dir" |
sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
s//\1/
q
@@ -94723,19 +94310,19 @@
exec 6>&1
-## ----------------------------------- ##
-## Main body of $CONFIG_STATUS script. ##
-## ----------------------------------- ##
+## ------------------------------------- ##
+## Main body of "$CONFIG_STATUS" script. ##
+## ------------------------------------- ##
_ASEOF
-test $as_write_fail = 0 && chmod +x $CONFIG_STATUS || ac_write_fail=1
+test $as_write_fail = 0 && chmod +x "$CONFIG_STATUS" || ac_write_fail=1
-cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
+cat >>"$CONFIG_STATUS" <<\_ACEOF || ac_write_fail=1
# Save the log message, to keep $0 and so on meaningful, and to
# report actual input values of CONFIG_FILES etc. instead of their
# values after options handling.
ac_log="
-This file was extended by PHP $as_me 8.4.26, which was
-generated by GNU Autoconf 2.72. Invocation command line was
+This file was extended by PHP $as_me 8.4.27, which was
+generated by GNU Autoconf 2.73. Invocation command line was
CONFIG_FILES = $CONFIG_FILES
CONFIG_HEADERS = $CONFIG_HEADERS
@@ -94757,7 +94344,7 @@
esac
-cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
+cat >>"$CONFIG_STATUS" <<_ACEOF || ac_write_fail=1
# Files that config.status was made for.
config_files="$ac_config_files"
config_headers="$ac_config_headers"
@@ -94765,7 +94352,7 @@
_ACEOF
-cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
+cat >>"$CONFIG_STATUS" <<\_ACEOF || ac_write_fail=1
ac_cs_usage="\
'$as_me' instantiates files and other configuration actions
from templates according to the current configuration. Unless the files
@@ -94798,25 +94385,29 @@
PHP home page: ."
_ACEOF
-ac_cs_config=`printf "%s\n" "$ac_configure_args" | sed "$ac_safe_unquote"`
-ac_cs_config_escaped=`printf "%s\n" "$ac_cs_config" | sed "s/^ //; s/'/'\\\\\\\\''/g"`
-cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
+ac_cs_config=`printf '%s\n' "$ac_configure_args" | sed "$ac_safe_unquote"`
+ac_cs_config_escaped=`printf '%s\n' "$ac_cs_config" | sed "s/^ //; s/'/'\\\\\\\\''/g"`
+cat >>"$CONFIG_STATUS" <<_ACEOF || ac_write_fail=1
ac_cs_config='$ac_cs_config_escaped'
ac_cs_version="\\
-PHP config.status 8.4.26
-configured by $0, generated by GNU Autoconf 2.72,
+PHP config.status 8.4.27
+configured by $0, generated by GNU Autoconf 2.73,
with options \\"\$ac_cs_config\\"
-Copyright (C) 2023 Free Software Foundation, Inc.
+Copyright (C) 2026 Free Software Foundation, Inc.
This config.status script is free software; the Free Software Foundation
gives unlimited permission to copy, distribute and modify it."
ac_pwd='$ac_pwd'
srcdir='$srcdir'
-test -n "\$AWK" || AWK=awk
+test -n "\$AWK" || {
+ awk '' >$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
+cat >>"$CONFIG_STATUS" <<\_ACEOF || ac_write_fail=1
# The default lists apply if the user does not specify any file.
ac_need_defaults=:
while test $# != 0
@@ -94844,15 +94435,15 @@
-recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r)
ac_cs_recheck=: ;;
--version | --versio | --versi | --vers | --ver | --ve | --v | -V )
- printf "%s\n" "$ac_cs_version"; exit ;;
+ printf '%s\n' "$ac_cs_version"; exit ;;
--config | --confi | --conf | --con | --co | --c )
- printf "%s\n" "$ac_cs_config"; exit ;;
+ printf '%s\n' "$ac_cs_config"; exit ;;
--debug | --debu | --deb | --de | --d | -d )
debug=: ;;
--file | --fil | --fi | --f )
$ac_shift
case $ac_optarg in
- *\'*) ac_optarg=`printf "%s\n" "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` ;;
+ *\'*) ac_optarg=`printf '%s\n' "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` ;;
'') as_fn_error $? "missing file argument" ;;
esac
as_fn_append CONFIG_FILES " '$ac_optarg'"
@@ -94860,7 +94451,7 @@
--header | --heade | --head | --hea )
$ac_shift
case $ac_optarg in
- *\'*) ac_optarg=`printf "%s\n" "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` ;;
+ *\'*) ac_optarg=`printf '%s\n' "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` ;;
esac
as_fn_append CONFIG_HEADERS " '$ac_optarg'"
ac_need_defaults=false;;
@@ -94869,7 +94460,7 @@
as_fn_error $? "ambiguous option: '$1'
Try '$0 --help' for more information.";;
--help | --hel | -h )
- printf "%s\n" "$ac_cs_usage"; exit ;;
+ printf '%s\n' "$ac_cs_usage"; exit ;;
-q | -quiet | --quiet | --quie | --qui | --qu | --q \
| -silent | --silent | --silen | --sile | --sil | --si | --s)
ac_cs_silent=: ;;
@@ -94893,29 +94484,29 @@
fi
_ACEOF
-cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
+cat >>"$CONFIG_STATUS" <<_ACEOF || ac_write_fail=1
if \$ac_cs_recheck; then
set X $SHELL '$0' $ac_configure_args \$ac_configure_extra_args --no-create --no-recursion
shift
- \printf "%s\n" "running CONFIG_SHELL=$SHELL \$*" >&6
+ \printf '%s\n' "running CONFIG_SHELL=$SHELL \$*" >&6
CONFIG_SHELL='$SHELL'
export CONFIG_SHELL
exec "\$@"
fi
_ACEOF
-cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
+cat >>"$CONFIG_STATUS" <<\_ACEOF || ac_write_fail=1
exec 5>>config.log
{
echo
sed 'h;s/./-/g;s/^.../## /;s/...$/ ##/;p;x;p;x' <<_ASBOX
## Running $as_me. ##
_ASBOX
- printf "%s\n" "$ac_log"
+ printf '%s\n' "$ac_log"
} >&5
_ACEOF
-cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
+cat >>"$CONFIG_STATUS" <<_ACEOF || ac_write_fail=1
#
# INIT-COMMANDS
#
@@ -94933,7 +94524,7 @@
_ACEOF
-cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
+cat >>"$CONFIG_STATUS" <<\_ACEOF || ac_write_fail=1
# Handling of arguments.
for ac_config_target in $ac_config_targets
@@ -95034,13 +94625,13 @@
echo "_ACEOF"
} >conf$$subs.sh ||
as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5
-ac_delim_num=`echo "$ac_subst_vars" | grep -c '^'`
+ac_delim_num=`echo "$ac_subst_vars" | sed -n '$='`
ac_delim='%!_!# '
for ac_last_try in false false false false false :; do
. ./conf$$subs.sh ||
as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5
- ac_delim_n=`sed -n "s/.*$ac_delim\$/X/p" conf$$subs.awk | grep -c X`
+ ac_delim_n=`sed -n "s/.*$ac_delim\$/X/p" conf$$subs.awk | sed -n '$='`
if test $ac_delim_n = $ac_delim_num; then
break
elif $ac_last_try; then
@@ -95051,7 +94642,7 @@
done
rm -f conf$$subs.sh
-cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
+cat >>"$CONFIG_STATUS" <<_ACEOF || ac_write_fail=1
cat >>"\$ac_tmp/subs1.awk" <<\\_ACAWK &&
_ACEOF
sed -n '
@@ -95096,9 +94687,9 @@
N
s/\n//
}
-' >>$CONFIG_STATUS || ac_write_fail=1
+' >>"$CONFIG_STATUS" || ac_write_fail=1
rm -f conf$$subs.awk
-cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
+cat >>"$CONFIG_STATUS" <<_ACEOF || ac_write_fail=1
_ACAWK
cat >>"\$ac_tmp/subs1.awk" <<_ACAWK &&
for (key in S) S_is_set[key] = 1
@@ -95127,7 +94718,7 @@
_ACAWK
_ACEOF
-cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
+cat >>"$CONFIG_STATUS" <<\_ACEOF || ac_write_fail=1
if sed "s/$ac_cr//" < /dev/null > /dev/null 2>&1; then
sed "s/$ac_cr\$//; s/$ac_cr/$ac_cs_awk_cr/g"
else
@@ -95159,7 +94750,7 @@
}'
fi
-cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
+cat >>"$CONFIG_STATUS" <<\_ACEOF || ac_write_fail=1
fi # test -n "$CONFIG_FILES"
# Set up the scripts for CONFIG_HEADERS section.
@@ -95230,9 +94821,9 @@
b cont
' >$CONFIG_STATUS || ac_write_fail=1
+"/g' >>"$CONFIG_STATUS" || ac_write_fail=1
-cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
+cat >>"$CONFIG_STATUS" <<_ACEOF || ac_write_fail=1
for (key in D) D_is_set[key] = 1
FS = ""
}
@@ -95250,8 +94841,12 @@
macro = mac2[1]
prefix = substr(line, 1, index(line, defundef) - 1)
if (D_is_set[macro]) {
+ suffix = P[macro] D[macro]
+ while (suffix ~ /[\t ]$/) {
+ suffix = substr(suffix, 1, length(suffix) - 1)
+ }
# Preserve the white space surrounding the "#".
- print prefix "define", macro P[macro] D[macro]
+ print prefix "define", macro suffix
next
} else {
# Replace #undef with comments. This is necessary, for example,
@@ -95266,7 +94861,7 @@
{ print }
_ACAWK
_ACEOF
-cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
+cat >>"$CONFIG_STATUS" <<\_ACEOF || ac_write_fail=1
as_fn_error $? "could not setup config headers machinery" "$LINENO" 5
fi # test -n "$CONFIG_HEADERS"
@@ -95310,7 +94905,7 @@
esac ||
as_fn_error 1 "cannot find input file: '$ac_f'" "$LINENO" 5;;
esac
- case $ac_f in *\'*) ac_f=`printf "%s\n" "$ac_f" | sed "s/'/'\\\\\\\\''/g"`;; esac
+ case $ac_f in *\'*) ac_f=`printf '%s\n' "$ac_f" | sed "s/'/'\\\\\\\\''/g"`;; esac
as_fn_append ac_file_inputs " '$ac_f'"
done
@@ -95318,17 +94913,17 @@
# use $as_me), people would be surprised to read:
# /* config.h. Generated by config.status. */
configure_input='Generated from '`
- printf "%s\n" "$*" | sed 's|^[^:]*/||;s|:[^:]*/|, |g'
+ printf '%s\n' "$*" | sed 's|^[^:]*/||;s|:[^:]*/|, |g'
`' by configure.'
if test x"$ac_file" != x-; then
configure_input="$ac_file. $configure_input"
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: creating $ac_file" >&5
-printf "%s\n" "$as_me: creating $ac_file" >&6;}
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: creating $ac_file" >&5
+printf '%s\n' "$as_me: creating $ac_file" >&6;}
fi
# Neutralize special characters interpreted by sed in replacement strings.
case $configure_input in #(
*\&* | *\|* | *\\* )
- ac_sed_conf_input=`printf "%s\n" "$configure_input" |
+ ac_sed_conf_input=`printf '%s\n' "$configure_input" |
sed 's/[\\\\&|]/\\\\&/g'`;; #(
*) ac_sed_conf_input=$configure_input;;
esac
@@ -95345,7 +94940,7 @@
X"$ac_file" : 'X\(//\)[^/]' \| \
X"$ac_file" : 'X\(//\)$' \| \
X"$ac_file" : 'X\(/\)' \| . 2>/dev/null ||
-printf "%s\n" X"$ac_file" |
+printf '%s\n' X"$ac_file" |
sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
s//\1/
q
@@ -95369,9 +94964,9 @@
case "$ac_dir" in
.) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;;
*)
- ac_dir_suffix=/`printf "%s\n" "$ac_dir" | sed 's|^\.[\\/]||'`
+ ac_dir_suffix=/`printf '%s\n' "$ac_dir" | sed 's|^\.[\\/]||'`
# A ".." for each directory in $ac_dir_suffix.
- ac_top_builddir_sub=`printf "%s\n" "$ac_dir_suffix" | sed 's|/[^\\/]*|/..|g;s|/||'`
+ ac_top_builddir_sub=`printf '%s\n' "$ac_dir_suffix" | sed 's|/[^\\/]*|/..|g;s|/||'`
case $ac_top_builddir_sub in
"") ac_top_builddir_sub=. ac_top_build_prefix= ;;
*) ac_top_build_prefix=$ac_top_builddir_sub/ ;;
@@ -95407,7 +95002,7 @@
_ACEOF
-cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
+cat >>"$CONFIG_STATUS" <<\_ACEOF || ac_write_fail=1
# If the template does not know about datarootdir, expand it.
# FIXME: This hack should be removed a few years after 2.60.
ac_datarootdir_hack=; ac_datarootdir_seen=
@@ -95424,10 +95019,10 @@
case `eval "sed -n \"\$ac_sed_dataroot\" $ac_file_inputs"` in
*datarootdir*) ac_datarootdir_seen=yes;;
*@datadir@*|*@docdir@*|*@infodir@*|*@localedir@*|*@mandir@*)
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&5
-printf "%s\n" "$as_me: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&2;}
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&5
+printf '%s\n' "$as_me: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&2;}
_ACEOF
-cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
+cat >>"$CONFIG_STATUS" <<_ACEOF || ac_write_fail=1
ac_datarootdir_hack='
s&@datadir@&$datadir&g
s&@docdir@&$docdir&g
@@ -95441,11 +95036,11 @@
# Neutralize VPATH when '$srcdir' = '.'.
# Shell code in configure.ac might set extrasub.
# FIXME: do we really want to maintain this feature?
-cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
+cat >>"$CONFIG_STATUS" <<_ACEOF || ac_write_fail=1
ac_sed_extra="$ac_vpsub
$extrasub
_ACEOF
-cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
+cat >>"$CONFIG_STATUS" <<\_ACEOF || ac_write_fail=1
:t
/@[a-zA-Z_][a-zA-Z_0-9]*@/!b
s|@configure_input@|$ac_sed_conf_input|;t t
@@ -95467,9 +95062,9 @@
{ ac_out=`sed -n '/\${datarootdir}/p' "$ac_tmp/out"`; test -n "$ac_out"; } &&
{ ac_out=`sed -n '/^[ ]*datarootdir[ ]*:*=/p' \
"$ac_tmp/out"`; test -z "$ac_out"; } &&
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file contains a reference to the variable 'datarootdir'
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file contains a reference to the variable 'datarootdir'
which seems to be undefined. Please make sure it is defined" >&5
-printf "%s\n" "$as_me: WARNING: $ac_file contains a reference to the variable 'datarootdir'
+printf '%s\n' "$as_me: WARNING: $ac_file contains a reference to the variable 'datarootdir'
which seems to be undefined. Please make sure it is defined" >&2;}
rm -f "$ac_tmp/stdin"
@@ -95485,27 +95080,27 @@
#
if test x"$ac_file" != x-; then
{
- printf "%s\n" "/* $configure_input */" >&1 \
+ printf '%s\n' "/* $configure_input */" >&1 \
&& eval '$AWK -f "$ac_tmp/defines.awk"' "$ac_file_inputs"
} >"$ac_tmp/config.h" \
|| as_fn_error $? "could not create $ac_file" "$LINENO" 5
if diff "$ac_file" "$ac_tmp/config.h" >/dev/null 2>&1; then
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: $ac_file is unchanged" >&5
-printf "%s\n" "$as_me: $ac_file is unchanged" >&6;}
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: $ac_file is unchanged" >&5
+printf '%s\n' "$as_me: $ac_file is unchanged" >&6;}
else
rm -f "$ac_file"
mv "$ac_tmp/config.h" "$ac_file" \
|| as_fn_error $? "could not create $ac_file" "$LINENO" 5
fi
else
- printf "%s\n" "/* $configure_input */" >&1 \
+ printf '%s\n' "/* $configure_input */" >&1 \
&& eval '$AWK -f "$ac_tmp/defines.awk"' "$ac_file_inputs" \
|| as_fn_error $? "could not create -" "$LINENO" 5
fi
;;
- :C) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: executing $ac_file commands" >&5
-printf "%s\n" "$as_me: executing $ac_file commands" >&6;}
+ :C) { printf '%s\n' "$as_me:${as_lineno-$LINENO}: executing $ac_file commands" >&5
+printf '%s\n' "$as_me: executing $ac_file commands" >&6;}
;;
esac
@@ -95517,7 +95112,7 @@
else case e in #(
e) if test "x$APACHE_THREADED_MPM" = xno
then :
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING:
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: WARNING:
+--------------------------------------------------------------------+
| *** WARNING *** |
| |
@@ -95526,7 +95121,7 @@
| PHP with --enable-zts |
+--------------------------------------------------------------------+
" >&5
-printf "%s\n" "$as_me: WARNING:
+printf '%s\n' "$as_me: WARNING:
+--------------------------------------------------------------------+
| *** WARNING *** |
| |
@@ -95566,7 +95161,7 @@
as_fn_exit 0
_ACEOF
-ac_clean_files=$ac_clean_files_save
+ac_clean_CONFIG_STATUS=
test $ac_write_fail = 0 ||
as_fn_error $? "write failure creating $CONFIG_STATUS" "$LINENO" 5
@@ -95582,19 +95177,26 @@
# need to make the FD available again.
if test "$no_create" != yes; then
ac_cs_success=:
+ case $CONFIG_STATUS in #(
+ -*) :
+ ac_no_opts=-- ;; #(
+ *) :
+ ac_no_opts= ;;
+esac
ac_config_status_args=
test "$silent" = yes &&
ac_config_status_args="$ac_config_status_args --quiet"
exec 5>/dev/null
- $SHELL $CONFIG_STATUS $ac_config_status_args || ac_cs_success=false
+ $SHELL $ac_no_opts "$CONFIG_STATUS" $ac_config_status_args ||
+ ac_cs_success=false
exec 5>>config.log
# Use ||, not &&, to avoid exiting from the if with $? = 1, which
# would make configure fail if this is the last instruction.
$ac_cs_success || as_fn_exit 1
fi
if test -n "$ac_unrecognized_opts" && test "$enable_option_checking" != no; then
- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: unrecognized options: $ac_unrecognized_opts" >&5
-printf "%s\n" "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2;}
+ { printf '%s\n' "$as_me:${as_lineno-$LINENO}: WARNING: unrecognized options: $ac_unrecognized_opts" >&5
+printf '%s\n' "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2;}
fi
diff -Nru php8.4-8.4.26/configure.ac php8.4-8.4.27/configure.ac
--- php8.4-8.4.26/configure.ac 2026-09-22 15:00:02.000000000 +0000
+++ php8.4-8.4.27/configure.ac 2026-10-19 14:38:59.000000000 +0000
@@ -17,7 +17,7 @@
dnl ----------------------------------------------------------------------------
AC_PREREQ([2.68])
-AC_INIT([PHP],[8.4.26],[https://github.com/php/php-src/issues],[php],[https://www.php.net])
+AC_INIT([PHP],[8.4.27],[https://github.com/php/php-src/issues],[php],[https://www.php.net])
AC_CONFIG_SRCDIR([main/php_version.h])
AC_CONFIG_AUX_DIR([build])
AC_PRESERVE_HELP_ORDER
diff -Nru php8.4-8.4.26/debian/changelog php8.4-8.4.27/debian/changelog
--- php8.4-8.4.26/debian/changelog 2026-09-24 17:16:18.000000000 +0000
+++ php8.4-8.4.27/debian/changelog 2026-10-21 07:53:46.000000000 +0000
@@ -1,3 +1,11 @@
+php8.4 (8.4.27-1~deb13u1) trixie-security; urgency=high
+
+ * New upstream version 8.4.27
+ + (CVE-2026-109618, CVE-2026-109619): Avoid state corruption via
+ bailout.
+
+ -- Ondřej Surý Wed, 21 Oct 2026 09:53:46 +0200
+
php8.4 (8.4.26-1~deb13u1) trixie-security; urgency=high
* New upstream version 8.4.26
diff -Nru php8.4-8.4.26/ext/bcmath/bcmath.c php8.4-8.4.27/ext/bcmath/bcmath.c
--- php8.4-8.4.26/ext/bcmath/bcmath.c 2026-09-22 15:00:02.000000000 +0000
+++ php8.4-8.4.27/ext/bcmath/bcmath.c 2026-10-19 14:38:59.000000000 +0000
@@ -1048,6 +1048,9 @@
}
*ret = bc_add(n1, n2, *scale);
(*ret)->n_scale = MIN(*scale, (*ret)->n_scale);
+ if (bc_is_zero(*ret)) {
+ (*ret)->n_sign = PLUS;
+ }
bc_rm_trailing_zeros(*ret);
}
@@ -1060,6 +1063,9 @@
}
*ret = bc_sub(n1, n2, *scale);
(*ret)->n_scale = MIN(*scale, (*ret)->n_scale);
+ if (bc_is_zero(*ret)) {
+ (*ret)->n_sign = PLUS;
+ }
bc_rm_trailing_zeros(*ret);
}
@@ -1076,6 +1082,9 @@
}
*ret = bc_multiply(n1, n2, *scale);
(*ret)->n_scale = MIN(*scale, (*ret)->n_scale);
+ if (bc_is_zero(*ret)) {
+ (*ret)->n_sign = PLUS;
+ }
bc_rm_trailing_zeros(*ret);
return SUCCESS;
}
diff -Nru php8.4-8.4.26/ext/bcmath/libbcmath/src/div.c php8.4-8.4.27/ext/bcmath/libbcmath/src/div.c
--- php8.4-8.4.26/ext/bcmath/libbcmath/src/div.c 2026-09-22 15:00:02.000000000 +0000
+++ php8.4-8.4.27/ext/bcmath/libbcmath/src/div.c 2026-10-19 14:38:59.000000000 +0000
@@ -349,8 +349,12 @@
*quot = bc_new_num_nonzeroed(numerator->n_len, quot_scale);
char *qptr = (*quot)->n_value;
memcpy(qptr, numerator->n_value, numerator->n_len + quot_scale);
- (*quot)->n_sign = numerator->n_sign == divisor->n_sign ? PLUS : MINUS;
_bc_rm_leading_zeros(*quot);
+ if (bc_is_zero(*quot)) {
+ (*quot)->n_sign = PLUS;
+ } else {
+ (*quot)->n_sign = numerator->n_sign == divisor->n_sign ? PLUS : MINUS;
+ }
return true;
}
@@ -475,7 +479,11 @@
for (size_t i = 0; i < numerator_bottom_extension; i++) {
*qptr++ = 0;
}
- (*quot)->n_sign = numerator->n_sign == divisor->n_sign ? PLUS : MINUS;
+ if (bc_is_zero(*quot)) {
+ (*quot)->n_sign = PLUS;
+ } else {
+ (*quot)->n_sign = numerator->n_sign == divisor->n_sign ? PLUS : MINUS;
+ }
return true;
}
diff -Nru php8.4-8.4.26/ext/bcmath/libbcmath/src/raise.c php8.4-8.4.27/ext/bcmath/libbcmath/src/raise.c
--- php8.4-8.4.26/ext/bcmath/libbcmath/src/raise.c 2026-09-22 15:00:02.000000000 +0000
+++ php8.4-8.4.27/ext/bcmath/libbcmath/src/raise.c 2026-10-19 14:38:59.000000000 +0000
@@ -102,6 +102,9 @@
bc_free_num (result);
*result = temp;
(*result)->n_scale = MIN(scale, (*result)->n_scale);
+ if (bc_is_zero(*result)) {
+ (*result)->n_sign = PLUS;
+ }
}
bc_free_num (&power);
return true;
diff -Nru php8.4-8.4.26/ext/bcmath/tests/gh17398.phpt php8.4-8.4.27/ext/bcmath/tests/gh17398.phpt
--- php8.4-8.4.26/ext/bcmath/tests/gh17398.phpt 2026-09-22 15:00:02.000000000 +0000
+++ php8.4-8.4.27/ext/bcmath/tests/gh17398.phpt 2026-10-19 14:38:59.000000000 +0000
@@ -7,4 +7,6 @@
bcmul('0', '0', 2147483647);
?>
--EXPECTF--
-Fatal error: Allowed memory size of %d bytes exhausted%s(tried to allocate %d bytes) in %s on line %d
+Hard memory limit of 268435456 bytes exhausted %S(tried to allocate %d bytes) in %s on line %d
+
+Termsig=9
diff -Nru php8.4-8.4.26/ext/bcmath/tests/number/methods/calc_methods_zero_result_sign.phpt php8.4-8.4.27/ext/bcmath/tests/number/methods/calc_methods_zero_result_sign.phpt
--- php8.4-8.4.26/ext/bcmath/tests/number/methods/calc_methods_zero_result_sign.phpt 1970-01-01 00:00:00.000000000 +0000
+++ php8.4-8.4.27/ext/bcmath/tests/number/methods/calc_methods_zero_result_sign.phpt 2026-10-19 14:38:59.000000000 +0000
@@ -0,0 +1,35 @@
+--TEST--
+BcMath\Number calc methods return an unsigned zero when the result truncates to zero
+--EXTENSIONS--
+bcmath
+--FILE--
+$method($arg, $scale);
+ echo "{$num} {$method} {$arg}: {$ret} ", $ret <=> 0, ' ', var_export($ret == 0, true), "\n";
+}
+
+[$quot, $rem] = (new BcMath\Number('-0.001'))->divmod('1', 0);
+echo "-0.001 divmod 1: {$quot} ", $quot <=> 0, ' ', var_export($quot == 0, true), "\n";
+?>
+--EXPECT--
+-0.001 div 1: 0 0 true
+0.001 div -1: 0 0 true
+-0.001 div 10: 0.00 0 true
+-0.001 div 0.1: 0.0 0 true
+-0.001 add -0.001: 0 0 true
+-0.001 sub 0.001: 0 0 true
+-0.001 mul 1: 0 0 true
+-0.1 pow 3: 0.00 0 true
+-0.001 divmod 1: 0 0 true
diff -Nru php8.4-8.4.26/ext/bz2/bz2.c php8.4-8.4.27/ext/bz2/bz2.c
--- php8.4-8.4.26/ext/bz2/bz2.c 2026-09-22 15:00:02.000000000 +0000
+++ php8.4-8.4.27/ext/bz2/bz2.c 2026-10-19 14:38:59.000000000 +0000
@@ -59,7 +59,7 @@
struct php_bz2_stream_data_t {
BZFILE *bz_file;
- php_stream *stream;
+ zend_resource *stream_res;
};
/* {{{ BZip2 stream implementation */
@@ -131,8 +131,15 @@
BZ2_bzclose(self->bz_file);
}
- if (self->stream) {
- php_stream_free(self->stream, PHP_STREAM_FREE_CLOSE | (close_handle == 0 ? PHP_STREAM_FREE_PRESERVE_HANDLE : 0));
+ /* The inner stream may have been closed by the user, only its resource is held */
+ if (self->stream_res) {
+ php_stream *inner = zend_fetch_resource2(
+ self->stream_res, NULL, php_file_le_stream(), php_file_le_pstream());
+ if (inner) {
+ php_stream_free(inner, PHP_STREAM_FREE_CLOSE | (close_handle == 0 ? PHP_STREAM_FREE_PRESERVE_HANDLE : 0));
+ } else {
+ zend_list_delete(self->stream_res);
+ }
}
efree(self);
@@ -158,6 +165,23 @@
};
/* {{{ Bzip2 stream openers */
+
+/* bzlib closes the descriptor it is given, so it gets a duplicate */
+static BZFILE *php_bz2_bzdopen(php_socket_t fd, const char *mode)
+{
+ int dup_fd = dup((int) fd);
+ if (dup_fd == -1) {
+ return NULL;
+ }
+
+ BZFILE *bz = BZ2_bzdopen(dup_fd, mode);
+ if (!bz) {
+ close(dup_fd);
+ }
+
+ return bz;
+}
+
PHP_BZ2_API php_stream *_php_stream_bz2open_from_BZFILE(BZFILE *bz,
const char *mode, php_stream *innerstream STREAMS_DC)
{
@@ -165,8 +189,9 @@
self = emalloc(sizeof(*self));
- self->stream = innerstream;
+ self->stream_res = NULL;
if (innerstream) {
+ self->stream_res = innerstream->res;
GC_ADDREF(innerstream->res);
}
self->bz_file = bz;
@@ -223,7 +248,7 @@
if (stream) {
php_socket_t fd;
if (SUCCESS == php_stream_cast(stream, PHP_STREAM_AS_FD, (void **) &fd, REPORT_ERRORS)) {
- bz_file = BZ2_bzdopen((int)fd, mode);
+ bz_file = php_bz2_bzdopen(fd, mode);
}
}
@@ -399,7 +424,10 @@
RETURN_FALSE;
}
- bz = BZ2_bzdopen((int)fd, mode);
+ bz = php_bz2_bzdopen(fd, mode);
+ if (!bz) {
+ RETURN_FALSE;
+ }
stream = php_stream_bz2open_from_BZFILE(bz, mode, stream);
} else {
@@ -469,7 +497,10 @@
dest_len = (unsigned int) chunk_len;
/* Allocate the destination buffer */
- dest = zend_string_alloc(dest_len, 0);
+ dest = zend_string_falloc(dest_len, 0, /* fallible */ true);
+ if (!dest) {
+ RETURN_OOM();
+ }
/* Handle the optional arguments */
if (argc > 1) {
@@ -498,7 +529,7 @@
PHP_FUNCTION(bzdecompress)
{
char *source;
- zend_string *dest;
+ zend_string *dest = NULL, *tmp;
size_t source_len;
int error;
bool small = 0;
@@ -520,7 +551,10 @@
bzs.avail_in = source_len;
/* in most cases bz2 offers at least 2:1 compression, so we use that as our base */
- dest = zend_string_safe_alloc(source_len, 2, 1, 0);
+ dest = zend_string_safe_falloc(source_len, 2, 1, 0, /* fallible */ true);
+ if (!dest) {
+ goto failure;
+ }
bzs.avail_out = source_len * 2;
bzs.next_out = ZSTR_VAL(dest);
@@ -532,7 +566,11 @@
/* no reason to continue if we're going to drop it anyway */
break;
}
- dest = zend_string_safe_realloc(dest, 1, bzs.avail_out+1, (size_t) size, 0);
+ tmp = zend_string_safe_frealloc(dest, 1, bzs.avail_out+1, (size_t) size, 0, /* fallible */ true);
+ if (!tmp) {
+ goto failure;
+ }
+ dest = tmp;
bzs.next_out = ZSTR_VAL(dest) + size;
}
@@ -543,7 +581,11 @@
zend_string_efree(dest);
RETVAL_LONG(BZ_MEM_ERROR);
} else {
- dest = zend_string_safe_realloc(dest, 1, (size_t)size, 1, 0);
+ tmp = zend_string_safe_frealloc(dest, 1, (size_t)size, 1, 0, /* fallible */ true);
+ if (!tmp) {
+ goto failure;
+ }
+ dest = tmp;
ZSTR_LEN(dest) = (size_t)size;
ZSTR_VAL(dest)[(size_t)size] = '\0';
RETVAL_STR(dest);
@@ -554,6 +596,13 @@
}
BZ2_bzDecompressEnd(&bzs);
+ return;
+
+failure:
+ if (dest) {
+ zend_string_efree(dest);
+ }
+ BZ2_bzDecompressEnd(&bzs);
}
/* }}} */
diff -Nru php8.4-8.4.26/ext/bz2/bz2_filter.c php8.4-8.4.27/ext/bz2/bz2_filter.c
--- php8.4-8.4.26/ext/bz2/bz2_filter.c 2026-09-22 15:00:02.000000000 +0000
+++ php8.4-8.4.27/ext/bz2/bz2_filter.c 2026-10-19 14:38:59.000000000 +0000
@@ -90,6 +90,10 @@
bucket = php_stream_bucket_make_writeable(buckets_in->head);
while (bin < bucket->buflen) {
+ /* Output is unbounded relative to the input. */
+ if (ZEND_HAS_OOM()) {
+ break;
+ }
if (data->status == PHP_BZ2_UNINITIALIZED) {
status = BZ2_bzDecompressInit(streamp, 0, data->small_footprint);
@@ -155,7 +159,7 @@
if ((data->status == PHP_BZ2_RUNNING) && (flags & PSFS_FLAG_FLUSH_CLOSE)) {
/* Spit it out! */
status = BZ_OK;
- while (status == BZ_OK) {
+ while (status == BZ_OK && !ZEND_HAS_OOM()) {
status = BZ2_bzDecompress(&(data->strm));
if (data->strm.avail_out < data->outbuf_len) {
size_t bucketlen = data->outbuf_len - data->strm.avail_out;
diff -Nru php8.4-8.4.26/ext/bz2/tests/bzopen_resource_fclose.phpt php8.4-8.4.27/ext/bz2/tests/bzopen_resource_fclose.phpt
--- php8.4-8.4.26/ext/bz2/tests/bzopen_resource_fclose.phpt 1970-01-01 00:00:00.000000000 +0000
+++ php8.4-8.4.27/ext/bz2/tests/bzopen_resource_fclose.phpt 2026-10-19 14:38:59.000000000 +0000
@@ -0,0 +1,41 @@
+--TEST--
+bzopen() on a stream resource: the inner stream may be closed first
+--EXTENSIONS--
+bz2
+--FILE--
+
+--EXPECT--
+int(700)
+bool(true)
+bool(true)
+bool(true)
+int(0)
+bool(true)
+bool(true)
diff -Nru php8.4-8.4.26/ext/bz2/tests/oom_bzcompress.phpt php8.4-8.4.27/ext/bz2/tests/oom_bzcompress.phpt
--- php8.4-8.4.26/ext/bz2/tests/oom_bzcompress.phpt 1970-01-01 00:00:00.000000000 +0000
+++ php8.4-8.4.27/ext/bz2/tests/oom_bzcompress.phpt 2026-10-19 14:38:59.000000000 +0000
@@ -0,0 +1,30 @@
+--TEST--
+bzcompress() output buffer pre-allocation doesn't reach hard limit
+--EXTENSIONS--
+bz2
+--INI--
+memory_limit=512M
+--SKIPIF--
+
+--FILE--
+ $hard - memory_get_usage(true));
+
+bzcompress($subject);
+echo "not reached\n";
+?>
+--EXPECTF--
+bool(true)
+
+Fatal error: Allowed memory size of 536870912 bytes exhausted %S(tried to allocate %d bytes) in %s on line %d
diff -Nru php8.4-8.4.26/ext/bz2/tests/oom_bzdecompress.phpt php8.4-8.4.27/ext/bz2/tests/oom_bzdecompress.phpt
--- php8.4-8.4.26/ext/bz2/tests/oom_bzdecompress.phpt 1970-01-01 00:00:00.000000000 +0000
+++ php8.4-8.4.27/ext/bz2/tests/oom_bzdecompress.phpt 2026-10-19 14:38:59.000000000 +0000
@@ -0,0 +1,17 @@
+--TEST--
+bzdecompress() doesn't reach hard limit
+--EXTENSIONS--
+bz2
+--INI--
+memory_limit=8M
+--SKIPIF--
+
+--FILE--
+
+--EXPECTF--
+Fatal error: Allowed memory size of %d bytes exhausted %S(tried to allocate %d bytes) in %s on line %d
diff -Nru php8.4-8.4.26/ext/bz2/tests/oom_bzip2_decompress_filter.phpt php8.4-8.4.27/ext/bz2/tests/oom_bzip2_decompress_filter.phpt
--- php8.4-8.4.26/ext/bz2/tests/oom_bzip2_decompress_filter.phpt 1970-01-01 00:00:00.000000000 +0000
+++ php8.4-8.4.27/ext/bz2/tests/oom_bzip2_decompress_filter.phpt 2026-10-19 14:38:59.000000000 +0000
@@ -0,0 +1,27 @@
+--TEST--
+bzip2.decompress stream filter doesn't reach hard limit
+--EXTENSIONS--
+bz2
+--INI--
+memory_limit=64M
+--SKIPIF--
+
+--FILE--
+
+--CLEAN--
+
+--EXPECTF--
+Fatal error: Allowed memory size of %d bytes exhausted %S(tried to allocate %d bytes) in %s on line %d
diff -Nru php8.4-8.4.26/ext/curl/interface.c php8.4-8.4.27/ext/curl/interface.c
--- php8.4-8.4.26/ext/curl/interface.c 2026-09-22 15:00:02.000000000 +0000
+++ php8.4-8.4.27/ext/curl/interface.c 2026-10-19 14:38:59.000000000 +0000
@@ -563,6 +563,34 @@
}
/* }}} */
+static void php_curl_call_callback(
+ php_curl *ch, zend_fcall_info_cache *fcc, zval *retval, uint32_t argc, zval *argv)
+{
+ /* The callback may replace or clear its own FCC. Keep its objects alive until
+ * the call returns, without taking ownership of the FCC's trampoline. */
+ zend_object *object = fcc->object;
+ zend_object *closure = fcc->closure;
+ if (object) {
+ GC_ADDREF(object);
+ }
+ if (closure) {
+ GC_ADDREF(closure);
+ }
+
+ bool was_in_callback = ch->in_callback;
+ ch->in_callback = true;
+ zend_call_known_fcc(fcc, retval, argc, argv, NULL);
+
+ /* Destructors may also call back into curl, so keep the callback guard set. */
+ if (object) {
+ OBJ_RELEASE(object);
+ }
+ if (closure) {
+ OBJ_RELEASE(closure);
+ }
+ ch->in_callback = was_in_callback;
+}
+
/* {{{ curl_write */
static size_t curl_write(char *data, size_t size, size_t nmemb, void *ctx)
{
@@ -583,7 +611,13 @@
return fwrite(data, size, nmemb, write_handler->fp);
case PHP_CURL_RETURN:
if (length > 0) {
- smart_str_appendl(&write_handler->buf, data, length);
+ if (!smart_str_fappendl_ex(&write_handler->buf, data, length, /* persistent */ false, /* fallible */ true)) {
+#ifdef CURL_WRITEFUNC_ERROR
+ return CURL_WRITEFUNC_ERROR;
+#else
+ return 0;
+#endif
+ }
}
break;
case PHP_CURL_USER: {
@@ -594,9 +628,7 @@
ZVAL_OBJ(&argv[0], &ch->std);
ZVAL_STRINGL(&argv[1], data, length);
- ch->in_callback = true;
- zend_call_known_fcc(&write_handler->fcc, &retval, /* param_count */ 2, argv, /* named_params */ NULL);
- ch->in_callback = false;
+ php_curl_call_callback(ch, &write_handler->fcc, &retval, /* argc */ 2, argv);
if (!Z_ISUNDEF(retval)) {
_php_curl_verify_handlers(ch, /* reporterror */ true);
/* TODO Check callback returns an int or something castable to int */
@@ -630,9 +662,7 @@
ZVAL_STRING(&argv[1], pattern);
ZVAL_STRING(&argv[2], string);
- ch->in_callback = true;
- zend_call_known_fcc(&ch->handlers.fnmatch, &retval, /* param_count */ 3, argv, /* named_params */ NULL);
- ch->in_callback = false;
+ php_curl_call_callback(ch, &ch->handlers.fnmatch, &retval, /* argc */ 3, argv);
if (!Z_ISUNDEF(retval)) {
_php_curl_verify_handlers(ch, /* reporterror */ true);
@@ -670,9 +700,7 @@
ZVAL_LONG(&args[3], (zend_long)ultotal);
ZVAL_LONG(&args[4], (zend_long)ulnow);
- ch->in_callback = true;
- zend_call_known_fcc(&ch->handlers.progress, &retval, /* param_count */ 5, args, /* named_params */ NULL);
- ch->in_callback = false;
+ php_curl_call_callback(ch, &ch->handlers.progress, &retval, /* argc */ 5, args);
if (!Z_ISUNDEF(retval)) {
_php_curl_verify_handlers(ch, /* reporterror */ true);
@@ -711,9 +739,7 @@
ZVAL_LONG(&argv[3], ultotal);
ZVAL_LONG(&argv[4], ulnow);
- ch->in_callback = true;
- zend_call_known_fcc(&ch->handlers.xferinfo, &retval, /* param_count */ 5, argv, /* named_params */ NULL);
- ch->in_callback = false;
+ php_curl_call_callback(ch, &ch->handlers.xferinfo, &retval, /* argc */ 5, argv);
if (!Z_ISUNDEF(retval)) {
_php_curl_verify_handlers(ch, /* reporterror */ true);
@@ -756,9 +782,7 @@
ZVAL_LONG(&args[3], conn_primary_port);
ZVAL_LONG(&args[4], conn_local_port);
- ch->in_callback = true;
- zend_call_known_fcc(&ch->handlers.prereq, &retval, /* param_count */ 5, args, /* named_params */ NULL);
- ch->in_callback = false;
+ php_curl_call_callback(ch, &ch->handlers.prereq, &retval, /* argc */ 5, args);
if (!Z_ISUNDEF(retval)) {
_php_curl_verify_handlers(ch, /* reporterror */ true);
@@ -803,9 +827,7 @@
ZVAL_STRINGL(&args[2], key, keylen);
ZVAL_LONG(&args[3], keylen);
- ch->in_callback = true;
- zend_call_known_fcc(&ch->handlers.sshhostkey, &retval, /* param_count */ 4, args, /* named_params */ NULL);
- ch->in_callback = false;
+ php_curl_call_callback(ch, &ch->handlers.sshhostkey, &retval, /* argc */ 4, args);
if (!Z_ISUNDEF(retval)) {
_php_curl_verify_handlers(ch, /* reporterror */ true);
@@ -855,9 +877,7 @@
}
ZVAL_LONG(&argv[2], (int)size * nmemb);
- ch->in_callback = true;
- zend_call_known_fcc(&read_handler->fcc, &retval, /* param_count */ 3, argv, /* named_params */ NULL);
- ch->in_callback = false;
+ php_curl_call_callback(ch, &read_handler->fcc, &retval, /* argc */ 3, argv);
if (!Z_ISUNDEF(retval)) {
_php_curl_verify_handlers(ch, /* reporterror */ true);
if (Z_TYPE(retval) == IS_STRING) {
@@ -907,9 +927,7 @@
ZVAL_OBJ(&argv[0], &ch->std);
ZVAL_STRINGL(&argv[1], data, length);
- ch->in_callback = true;
- zend_call_known_fcc(&write_handler->fcc, &retval, /* param_count */ 2, argv, /* named_params */ NULL);
- ch->in_callback = false;
+ php_curl_call_callback(ch, &write_handler->fcc, &retval, /* argc */ 2, argv);
if (!Z_ISUNDEF(retval)) {
// TODO: Check for valid int type for return value
_php_curl_verify_handlers(ch, /* reporterror */ true);
@@ -963,9 +981,7 @@
ZVAL_LONG(&args[1], type);
ZVAL_STRINGL(&args[2], data, size);
- ch->in_callback = true;
- zend_call_known_fcc(&ch->handlers.debug, NULL, /* param_count */ 3, args, /* named_params */ NULL);
- ch->in_callback = false;
+ php_curl_call_callback(ch, &ch->handlers.debug, NULL, /* argc */ 3, args);
zval_ptr_dtor(&args[0]);
zval_ptr_dtor(&args[2]);
diff -Nru php8.4-8.4.26/ext/curl/tests/curl_callback_lifetime.phpt php8.4-8.4.27/ext/curl/tests/curl_callback_lifetime.phpt
--- php8.4-8.4.26/ext/curl/tests/curl_callback_lifetime.phpt 1970-01-01 00:00:00.000000000 +0000
+++ php8.4-8.4.27/ext/curl/tests/curl_callback_lifetime.phpt 2026-10-19 14:38:59.000000000 +0000
@@ -0,0 +1,65 @@
+--TEST--
+GH-23814 (Curl callbacks keep their receiver alive when replacing or clearing themselves)
+--EXTENSIONS--
+curl
+--SKIPIF--
+
+--FILE--
+action === 'clear') {
+ curl_setopt_array($handle, [CURLOPT_WRITEFUNCTION => null]);
+ } else {
+ curl_setopt($handle, CURLOPT_WRITEFUNCTION, static fn($handle, $data) => strlen($data));
+ }
+ gc_collect_cycles();
+ echo $this->value, "\n";
+ if ($this->action === 'throw') {
+ throw new Exception('Callback exception');
+ }
+ return strlen($data);
+ }
+
+ public function __call(string $name, array $args): int {
+ return $this->write(...$args);
+ }
+
+ public function __destruct() {
+ echo "Destroyed\n";
+ }
+}
+
+foreach (['replace' => 'write', 'clear' => 'missing', 'throw' => 'write'] as $action => $method) {
+ echo "$method / $action\n";
+ $handle = curl_init('file://' . __FILE__);
+ curl_setopt($handle, CURLOPT_WRITEFUNCTION, [new Callback($action, $handle), $method]);
+ try {
+ var_dump(curl_exec($handle));
+ } catch (Exception $e) {
+ echo $e->getMessage(), "\n";
+ }
+ unset($handle);
+}
+?>
+--EXPECT--
+write / replace
+Still alive
+Destroyed
+bool(true)
+missing / clear
+Still alive
+Destroyed
+bool(true)
+write / throw
+Still alive
+Destroyed
+Callback exception
diff -Nru php8.4-8.4.26/ext/curl/tests/curl_callback_lifetime_destructor.phpt php8.4-8.4.27/ext/curl/tests/curl_callback_lifetime_destructor.phpt
--- php8.4-8.4.26/ext/curl/tests/curl_callback_lifetime_destructor.phpt 1970-01-01 00:00:00.000000000 +0000
+++ php8.4-8.4.27/ext/curl/tests/curl_callback_lifetime_destructor.phpt 2026-10-19 14:38:59.000000000 +0000
@@ -0,0 +1,52 @@
+--TEST--
+GH-23814 (Curl callback receivers are destroyed with the callback guard still set)
+--EXTENSIONS--
+curl
+--SKIPIF--
+
+--FILE--
+handle);
+ } catch (Error $e) {
+ echo $e->getMessage(), "\n";
+ }
+ }
+ curl_setopt($this->handle, CURLOPT_WRITEFUNCTION,
+ static function (CurlHandle $handle, string $data): int {
+ echo "Callback installed by destructor\n";
+ return strlen($data);
+ });
+ }
+}
+
+$handle = curl_init('file://' . __FILE__);
+curl_setopt($handle, CURLOPT_WRITEFUNCTION, [new Callback($handle), 'write']);
+var_dump(curl_exec($handle));
+var_dump(curl_exec($handle));
+curl_reset($handle);
+echo "Reset outside callback succeeded\n";
+?>
+--EXPECT--
+Callback returning
+curl_reset(): Attempt to reset cURL handle from a callback
+curl_close(): Attempt to close cURL handle from a callback
+bool(true)
+Callback installed by destructor
+bool(true)
+Reset outside callback succeeded
diff -Nru php8.4-8.4.26/ext/curl/tests/curl_setopt_callback_reentrancy.phpt php8.4-8.4.27/ext/curl/tests/curl_setopt_callback_reentrancy.phpt
--- php8.4-8.4.26/ext/curl/tests/curl_setopt_callback_reentrancy.phpt 1970-01-01 00:00:00.000000000 +0000
+++ php8.4-8.4.27/ext/curl/tests/curl_setopt_callback_reentrancy.phpt 2026-10-19 14:38:59.000000000 +0000
@@ -0,0 +1,39 @@
+--TEST--
+GH-23814 / GH-23860 (A curl callback can replace itself)
+--EXTENSIONS--
+curl
+--SKIPIF--
+
+--FILE--
+
+ static function (CurlHandle $handle, string $data): int {
+ echo "Replacement callback\n";
+ return strlen($data);
+ },
+ ]));
+
+ return strlen($data);
+};
+curl_setopt($handle, CURLOPT_WRITEFUNCTION, $callback);
+var_dump(curl_exec($handle));
+var_dump(curl_exec($handle));
+var_dump(curl_setopt($handle, CURLOPT_WRITEFUNCTION, null));
+?>
+--EXPECT--
+Original callback
+bool(true)
+bool(true)
+bool(true)
+Replacement callback
+bool(true)
+bool(true)
diff -Nru php8.4-8.4.26/ext/curl/tests/curl_setopt_ssl.phpt php8.4-8.4.27/ext/curl/tests/curl_setopt_ssl.phpt
--- php8.4-8.4.26/ext/curl/tests/curl_setopt_ssl.phpt 2026-09-22 15:00:02.000000000 +0000
+++ php8.4-8.4.27/ext/curl/tests/curl_setopt_ssl.phpt 2026-10-19 14:38:59.000000000 +0000
@@ -73,8 +73,24 @@
die('failed to start server');
}
try {
- // Give the server time to start
- sleep(1);
+ // Wait until OpenSSL is actually listening before making the first request.
+ $ready = false;
+ for ($i = 0; $i < 100; $i++) {
+ $connection = @stream_socket_client("tcp://127.0.0.1:$port", $errno, $errstr, 0.05);
+ if ($connection !== false) {
+ fclose($connection);
+ $ready = true;
+ break;
+ }
+ if (!proc_get_status($process)['running']) {
+ break;
+ }
+ usleep(50000);
+ }
+ if (!$ready) {
+ stream_set_blocking($pipes[2], false);
+ throw new RuntimeException('OpenSSL server did not start: ' . trim(stream_get_contents($pipes[2])));
+ }
echo "case 1: client cert and key from string\n";
$ch = curl_init("https://127.0.0.1:$port/");
diff -Nru php8.4-8.4.26/ext/curl/tests/oom_curl_exec.phpt php8.4-8.4.27/ext/curl/tests/oom_curl_exec.phpt
--- php8.4-8.4.26/ext/curl/tests/oom_curl_exec.phpt 1970-01-01 00:00:00.000000000 +0000
+++ php8.4-8.4.27/ext/curl/tests/oom_curl_exec.phpt 2026-10-19 14:38:59.000000000 +0000
@@ -0,0 +1,37 @@
+--TEST--
+curl_exec() doesn't reach hard limit
+--EXTENSIONS--
+curl
+--FILE--
+ ['pipe', 'w'], 2 => ['pipe', 'w']],
+ $pipes
+);
+echo stream_get_contents($pipes[1]);
+echo stream_get_contents($pipes[2]);
+fclose($pipes[1]);
+fclose($pipes[2]);
+proc_close($p);
+?>
+--EXPECTF--
+Fatal error: Allowed memory size of 8388608 bytes exhausted %S(tried to allocate %d bytes) in %s on line %d
diff -Nru php8.4-8.4.26/ext/curl/tests/oom_curl_multi_exec.phpt php8.4-8.4.27/ext/curl/tests/oom_curl_multi_exec.phpt
--- php8.4-8.4.26/ext/curl/tests/oom_curl_multi_exec.phpt 1970-01-01 00:00:00.000000000 +0000
+++ php8.4-8.4.27/ext/curl/tests/oom_curl_multi_exec.phpt 2026-10-19 14:38:59.000000000 +0000
@@ -0,0 +1,43 @@
+--TEST--
+curl_multi_exec() doesn't reach hard limit
+--EXTENSIONS--
+curl
+--FILE--
+ ['pipe', 'w'], 2 => ['pipe', 'w']],
+ $pipes
+);
+echo stream_get_contents($pipes[1]);
+echo stream_get_contents($pipes[2]);
+fclose($pipes[1]);
+fclose($pipes[2]);
+proc_close($p);
+?>
+--EXPECTF--
+Fatal error: Allowed memory size of 8388608 bytes exhausted %S(tried to allocate %d bytes) in %s on line %d
diff -Nru php8.4-8.4.26/ext/curl/tests/responder/get.inc php8.4-8.4.27/ext/curl/tests/responder/get.inc
--- php8.4-8.4.26/ext/curl/tests/responder/get.inc 2026-09-22 15:00:02.000000000 +0000
+++ php8.4-8.4.27/ext/curl/tests/responder/get.inc 2026-10-19 14:38:59.000000000 +0000
@@ -46,6 +46,14 @@
case 'method':
echo $_SERVER['REQUEST_METHOD'];
break;
+ case 'bigbody':
+ $mib = isset($_GET['mib']) ? (int) $_GET['mib'] : 12;
+ header('Content-Type: application/octet-stream');
+ $chunk = str_repeat('x', 1024 * 1024);
+ for ($i = 0; $i < $mib; $i++) {
+ echo $chunk;
+ }
+ break;
default:
echo "Hello World!\n";
echo "Hello World!";
diff -Nru php8.4-8.4.26/ext/date/lib/parse_date.c php8.4-8.4.27/ext/date/lib/parse_date.c
--- php8.4-8.4.26/ext/date/lib/parse_date.c 2026-09-22 15:00:02.000000000 +0000
+++ php8.4-8.4.27/ext/date/lib/parse_date.c 2026-10-19 14:38:59.000000000 +0000
@@ -1,4 +1,4 @@
-/* Generated by re2c 1.0.3 on Wed Jan 14 14:20:50 2026 */
+/* Generated by re2c 1.0.3 on Wed Sep 30 23:15:59 2026 */
#line 1 "ext/date/lib/parse_date.re"
/*
* The MIT License (MIT)
@@ -78,6 +78,7 @@
#define TIMELIB_RELATIVE 310
#define TIMELIB_ERROR 999
+#define TIMELIB_MAX_ERRORS 1000
/* Some compilers like AIX, defines uchar in sys/types.h */
#undef uchar
@@ -372,6 +373,10 @@
static void add_warning(Scanner *s, int error_code, const char *error)
{
+ if (s->errors->warning_count >= TIMELIB_MAX_ERRORS) {
+ return;
+ }
+
timelib_error_message *message = alloc_error_message(&s->errors->warning_messages, &s->errors->warning_count);
message->error_code = error_code;
@@ -382,6 +387,10 @@
static void add_error(Scanner *s, int error_code, const char *error)
{
+ if (s->errors->error_count >= TIMELIB_MAX_ERRORS) {
+ return;
+ }
+
timelib_error_message *message = alloc_error_message(&s->errors->error_messages, &s->errors->error_count);
message->error_code = error_code;
@@ -392,6 +401,10 @@
static void add_pbf_warning(Scanner *s, int error_code, const char *error, const char *sptr, const char *cptr)
{
+ if (s->errors->warning_count >= TIMELIB_MAX_ERRORS) {
+ return;
+ }
+
timelib_error_message *message = alloc_error_message(&s->errors->warning_messages, &s->errors->warning_count);
message->error_code = error_code;
@@ -402,6 +415,10 @@
static void add_pbf_error(Scanner *s, int error_code, const char *error, const char *sptr, const char *cptr)
{
+ if (s->errors->error_count >= TIMELIB_MAX_ERRORS) {
+ return;
+ }
+
timelib_error_message *message = alloc_error_message(&s->errors->error_messages, &s->errors->error_count);
message->error_code = error_code;
@@ -557,7 +574,6 @@
int len = 0;
/* Skip over non-numeric chars */
-
while (((**ptr < '0') || (**ptr > '9')) && (**ptr != '+') && (**ptr != '-')) {
if (**ptr == '\0') {
add_error(s, TIMELIB_ERR_UNEXPECTED_DATA, "Found unexpected data");
@@ -571,6 +587,7 @@
str[0] = '+'; /* First position is the sign */
str_ptr = str + 1;
+
while ((**ptr == '+') || (**ptr == '-')) {
if (**ptr == '-') {
str[0] = str[0] == '+' ? '-' : '+';
@@ -1028,11 +1045,11 @@
std:
s->tok = cursor;
s->len = 0;
-#line 1161 "ext/date/lib/parse_date.re"
+#line 1178 "ext/date/lib/parse_date.re"
-#line 1036 "ext/date/lib/parse_date.c"
+#line 1053 "ext/date/lib/parse_date.c"
{
YYCTYPE yych;
unsigned int yyaccept = 0;
@@ -1213,23 +1230,23 @@
YYDEBUG(2, *YYCURSOR);
++YYCURSOR;
YYDEBUG(3, *YYCURSOR);
-#line 1994 "ext/date/lib/parse_date.re"
+#line 2011 "ext/date/lib/parse_date.re"
{
s->pos = cursor; s->line++;
goto std;
}
-#line 1222 "ext/date/lib/parse_date.c"
+#line 1239 "ext/date/lib/parse_date.c"
yy4:
YYDEBUG(4, *YYCURSOR);
++YYCURSOR;
yy5:
YYDEBUG(5, *YYCURSOR);
-#line 2000 "ext/date/lib/parse_date.re"
+#line 2017 "ext/date/lib/parse_date.re"
{
add_error(s, TIMELIB_ERR_UNEXPECTED_CHARACTER, "Unexpected character");
goto std;
}
-#line 1233 "ext/date/lib/parse_date.c"
+#line 1250 "ext/date/lib/parse_date.c"
yy6:
YYDEBUG(6, *YYCURSOR);
yyaccept = 0;
@@ -1244,11 +1261,11 @@
if (yych <= '9') goto yy58;
yy8:
YYDEBUG(8, *YYCURSOR);
-#line 1989 "ext/date/lib/parse_date.re"
+#line 2006 "ext/date/lib/parse_date.re"
{
goto std;
}
-#line 1252 "ext/date/lib/parse_date.c"
+#line 1269 "ext/date/lib/parse_date.c"
yy9:
YYDEBUG(9, *YYCURSOR);
yych = *++YYCURSOR;
@@ -1282,11 +1299,11 @@
YYDEBUG(11, *YYCURSOR);
++YYCURSOR;
YYDEBUG(12, *YYCURSOR);
-#line 1984 "ext/date/lib/parse_date.re"
+#line 2001 "ext/date/lib/parse_date.re"
{
goto std;
}
-#line 1290 "ext/date/lib/parse_date.c"
+#line 1307 "ext/date/lib/parse_date.c"
yy13:
YYDEBUG(13, *YYCURSOR);
yyaccept = 1;
@@ -1787,7 +1804,7 @@
}
yy20:
YYDEBUG(20, *YYCURSOR);
-#line 1899 "ext/date/lib/parse_date.re"
+#line 1916 "ext/date/lib/parse_date.re"
{
int tz_not_found;
DEBUG_OUTPUT("tzcorrection | tz");
@@ -1801,7 +1818,7 @@
TIMELIB_DEINIT;
return TIMELIB_TIMEZONE;
}
-#line 1805 "ext/date/lib/parse_date.c"
+#line 1822 "ext/date/lib/parse_date.c"
yy21:
YYDEBUG(21, *YYCURSOR);
yych = *++YYCURSOR;
@@ -3606,7 +3623,7 @@
}
yy81:
YYDEBUG(81, *YYCURSOR);
-#line 1646 "ext/date/lib/parse_date.re"
+#line 1663 "ext/date/lib/parse_date.re"
{
DEBUG_OUTPUT("datenoyearrev");
TIMELIB_INIT;
@@ -3617,7 +3634,7 @@
TIMELIB_DEINIT;
return TIMELIB_DATE_TEXT;
}
-#line 3621 "ext/date/lib/parse_date.c"
+#line 3638 "ext/date/lib/parse_date.c"
yy82:
YYDEBUG(82, *YYCURSOR);
yych = *++YYCURSOR;
@@ -4132,7 +4149,7 @@
}
if (yych == '.') goto yy289;
YYDEBUG(114, *YYCURSOR);
-#line 1221 "ext/date/lib/parse_date.re"
+#line 1238 "ext/date/lib/parse_date.re"
{
timelib_ull i;
@@ -4157,7 +4174,7 @@
TIMELIB_DEINIT;
return TIMELIB_RELATIVE;
}
-#line 4161 "ext/date/lib/parse_date.c"
+#line 4178 "ext/date/lib/parse_date.c"
yy115:
YYDEBUG(115, *YYCURSOR);
++YYCURSOR;
@@ -5883,7 +5900,7 @@
}
yy177:
YYDEBUG(177, *YYCURSOR);
-#line 1387 "ext/date/lib/parse_date.re"
+#line 1404 "ext/date/lib/parse_date.re"
{
int tz_not_found;
DEBUG_OUTPUT("timetiny24 | timeshort24 | timelong24 | iso8601long");
@@ -5910,7 +5927,7 @@
TIMELIB_DEINIT;
return TIMELIB_TIME24_WITH_ZONE;
}
-#line 5914 "ext/date/lib/parse_date.c"
+#line 5931 "ext/date/lib/parse_date.c"
yy178:
YYDEBUG(178, *YYCURSOR);
yyaccept = 4;
@@ -6939,7 +6956,7 @@
}
yy224:
YYDEBUG(224, *YYCURSOR);
-#line 1481 "ext/date/lib/parse_date.re"
+#line 1498 "ext/date/lib/parse_date.re"
{
int length = 0;
DEBUG_OUTPUT("americanshort | american");
@@ -6954,7 +6971,7 @@
TIMELIB_DEINIT;
return TIMELIB_AMERICAN;
}
-#line 6958 "ext/date/lib/parse_date.c"
+#line 6975 "ext/date/lib/parse_date.c"
yy225:
YYDEBUG(225, *YYCURSOR);
yyaccept = 5;
@@ -7197,7 +7214,7 @@
if (yych <= '9') goto yy431;
yy251:
YYDEBUG(251, *YYCURSOR);
-#line 1563 "ext/date/lib/parse_date.re"
+#line 1580 "ext/date/lib/parse_date.re"
{
int length = 0;
DEBUG_OUTPUT("datefull");
@@ -7211,7 +7228,7 @@
TIMELIB_DEINIT;
return TIMELIB_DATE_FULL;
}
-#line 7215 "ext/date/lib/parse_date.c"
+#line 7232 "ext/date/lib/parse_date.c"
yy252:
YYDEBUG(252, *YYCURSOR);
yyaccept = 3;
@@ -7325,7 +7342,7 @@
if (yych == 'e') goto yy440;
yy260:
YYDEBUG(260, *YYCURSOR);
-#line 1968 "ext/date/lib/parse_date.re"
+#line 1985 "ext/date/lib/parse_date.re"
{
timelib_ull i;
DEBUG_OUTPUT("relative");
@@ -7340,7 +7357,7 @@
TIMELIB_DEINIT;
return TIMELIB_RELATIVE;
}
-#line 7344 "ext/date/lib/parse_date.c"
+#line 7361 "ext/date/lib/parse_date.c"
yy261:
YYDEBUG(261, *YYCURSOR);
yych = *++YYCURSOR;
@@ -7786,7 +7803,7 @@
if (yych <= '9') goto yy471;
yy290:
YYDEBUG(290, *YYCURSOR);
-#line 1247 "ext/date/lib/parse_date.re"
+#line 1264 "ext/date/lib/parse_date.re"
{
timelib_sll i;
timelib_ull us;
@@ -7825,7 +7842,7 @@
TIMELIB_DEINIT;
return TIMELIB_RELATIVE;
}
-#line 7829 "ext/date/lib/parse_date.c"
+#line 7846 "ext/date/lib/parse_date.c"
yy291:
YYDEBUG(291, *YYCURSOR);
yych = *++YYCURSOR;
@@ -7850,7 +7867,7 @@
}
yy293:
YYDEBUG(293, *YYCURSOR);
-#line 1809 "ext/date/lib/parse_date.re"
+#line 1826 "ext/date/lib/parse_date.re"
{
DEBUG_OUTPUT("ago");
TIMELIB_INIT;
@@ -7870,7 +7887,7 @@
TIMELIB_DEINIT;
return TIMELIB_AGO;
}
-#line 7874 "ext/date/lib/parse_date.c"
+#line 7891 "ext/date/lib/parse_date.c"
yy294:
YYDEBUG(294, *YYCURSOR);
yyaccept = 7;
@@ -7909,7 +7926,7 @@
}
yy295:
YYDEBUG(295, *YYCURSOR);
-#line 1889 "ext/date/lib/parse_date.re"
+#line 1906 "ext/date/lib/parse_date.re"
{
DEBUG_OUTPUT("monthtext");
TIMELIB_INIT;
@@ -7918,7 +7935,7 @@
TIMELIB_DEINIT;
return TIMELIB_DATE_TEXT;
}
-#line 7922 "ext/date/lib/parse_date.c"
+#line 7939 "ext/date/lib/parse_date.c"
yy296:
YYDEBUG(296, *YYCURSOR);
yyaccept = 7;
@@ -8493,7 +8510,7 @@
}
yy315:
YYDEBUG(315, *YYCURSOR);
-#line 1830 "ext/date/lib/parse_date.re"
+#line 1847 "ext/date/lib/parse_date.re"
{
const timelib_relunit* relunit;
DEBUG_OUTPUT("daytext");
@@ -8510,7 +8527,7 @@
TIMELIB_DEINIT;
return TIMELIB_WEEKDAY;
}
-#line 8514 "ext/date/lib/parse_date.c"
+#line 8531 "ext/date/lib/parse_date.c"
yy316:
YYDEBUG(316, *YYCURSOR);
yych = *++YYCURSOR;
@@ -8778,7 +8795,7 @@
}
yy325:
YYDEBUG(325, *YYCURSOR);
-#line 1632 "ext/date/lib/parse_date.re"
+#line 1649 "ext/date/lib/parse_date.re"
{
int length = 0;
DEBUG_OUTPUT("datetextual | datenoyear");
@@ -8791,7 +8808,7 @@
TIMELIB_DEINIT;
return TIMELIB_DATE_TEXT;
}
-#line 8795 "ext/date/lib/parse_date.c"
+#line 8812 "ext/date/lib/parse_date.c"
yy326:
YYDEBUG(326, *YYCURSOR);
yyaccept = 10;
@@ -9485,7 +9502,7 @@
}
yy351:
YYDEBUG(351, *YYCURSOR);
-#line 1178 "ext/date/lib/parse_date.re"
+#line 1195 "ext/date/lib/parse_date.re"
{
DEBUG_OUTPUT("now");
TIMELIB_INIT;
@@ -9493,7 +9510,7 @@
TIMELIB_DEINIT;
return TIMELIB_RELATIVE;
}
-#line 9497 "ext/date/lib/parse_date.c"
+#line 9514 "ext/date/lib/parse_date.c"
yy352:
YYDEBUG(352, *YYCURSOR);
yyaccept = 2;
@@ -10996,7 +11013,7 @@
}
yy420:
YYDEBUG(420, *YYCURSOR);
-#line 1415 "ext/date/lib/parse_date.re"
+#line 1432 "ext/date/lib/parse_date.re"
{
DEBUG_OUTPUT("gnunocolon");
TIMELIB_INIT;
@@ -11018,7 +11035,7 @@
TIMELIB_DEINIT;
return TIMELIB_GNU_NOCOLON;
}
-#line 11022 "ext/date/lib/parse_date.c"
+#line 11039 "ext/date/lib/parse_date.c"
yy421:
YYDEBUG(421, *YYCURSOR);
yyaccept = 13;
@@ -11099,7 +11116,7 @@
}
yy422:
YYDEBUG(422, *YYCURSOR);
-#line 1800 "ext/date/lib/parse_date.re"
+#line 1817 "ext/date/lib/parse_date.re"
{
DEBUG_OUTPUT("year4");
TIMELIB_INIT;
@@ -11107,7 +11124,7 @@
TIMELIB_DEINIT;
return TIMELIB_CLF;
}
-#line 11111 "ext/date/lib/parse_date.c"
+#line 11128 "ext/date/lib/parse_date.c"
yy423:
YYDEBUG(423, *YYCURSOR);
yyaccept = 3;
@@ -11714,7 +11731,7 @@
YYDEBUG(456, *YYCURSOR);
++YYCURSOR;
YYDEBUG(457, *YYCURSOR);
-#line 1349 "ext/date/lib/parse_date.re"
+#line 1366 "ext/date/lib/parse_date.re"
{
DEBUG_OUTPUT("timetiny12 | timeshort12 | timelong12");
TIMELIB_INIT;
@@ -11731,7 +11748,7 @@
TIMELIB_DEINIT;
return TIMELIB_TIME12;
}
-#line 11735 "ext/date/lib/parse_date.c"
+#line 11752 "ext/date/lib/parse_date.c"
yy458:
YYDEBUG(458, *YYCURSOR);
yych = *++YYCURSOR;
@@ -13058,7 +13075,7 @@
}
yy526:
YYDEBUG(526, *YYCURSOR);
-#line 1187 "ext/date/lib/parse_date.re"
+#line 1204 "ext/date/lib/parse_date.re"
{
DEBUG_OUTPUT("noon");
TIMELIB_INIT;
@@ -13069,7 +13086,7 @@
TIMELIB_DEINIT;
return TIMELIB_RELATIVE;
}
-#line 13073 "ext/date/lib/parse_date.c"
+#line 13090 "ext/date/lib/parse_date.c"
yy527:
YYDEBUG(527, *YYCURSOR);
yyaccept = 2;
@@ -14115,7 +14132,7 @@
}
yy567:
YYDEBUG(567, *YYCURSOR);
-#line 1549 "ext/date/lib/parse_date.re"
+#line 1566 "ext/date/lib/parse_date.re"
{
int length = 0;
DEBUG_OUTPUT("gnudateshort");
@@ -14128,7 +14145,7 @@
TIMELIB_DEINIT;
return TIMELIB_ISO_DATE;
}
-#line 14132 "ext/date/lib/parse_date.c"
+#line 14149 "ext/date/lib/parse_date.c"
yy568:
YYDEBUG(568, *YYCURSOR);
yyaccept = 15;
@@ -14579,7 +14596,7 @@
}
yy600:
YYDEBUG(600, *YYCURSOR);
-#line 1618 "ext/date/lib/parse_date.re"
+#line 1635 "ext/date/lib/parse_date.re"
{
int length = 0;
DEBUG_OUTPUT("datenodayrev");
@@ -14592,7 +14609,7 @@
TIMELIB_DEINIT;
return TIMELIB_DATE_NO_DAY;
}
-#line 14596 "ext/date/lib/parse_date.c"
+#line 14613 "ext/date/lib/parse_date.c"
yy601:
YYDEBUG(601, *YYCURSOR);
yych = *++YYCURSOR;
@@ -15967,7 +15984,7 @@
YYDEBUG(696, *YYCURSOR);
++YYCURSOR;
YYDEBUG(697, *YYCURSOR);
-#line 1604 "ext/date/lib/parse_date.re"
+#line 1621 "ext/date/lib/parse_date.re"
{
int length = 0;
DEBUG_OUTPUT("datenoday");
@@ -15980,7 +15997,7 @@
TIMELIB_DEINIT;
return TIMELIB_DATE_NO_DAY;
}
-#line 15984 "ext/date/lib/parse_date.c"
+#line 16001 "ext/date/lib/parse_date.c"
yy698:
YYDEBUG(698, *YYCURSOR);
yych = *++YYCURSOR;
@@ -16541,7 +16558,7 @@
}
yy722:
YYDEBUG(722, *YYCURSOR);
-#line 1199 "ext/date/lib/parse_date.re"
+#line 1216 "ext/date/lib/parse_date.re"
{
DEBUG_OUTPUT("midnight | today");
TIMELIB_INIT;
@@ -16550,7 +16567,7 @@
TIMELIB_DEINIT;
return TIMELIB_RELATIVE;
}
-#line 16554 "ext/date/lib/parse_date.c"
+#line 16571 "ext/date/lib/parse_date.c"
yy723:
YYDEBUG(723, *YYCURSOR);
yych = *++YYCURSOR;
@@ -16860,7 +16877,7 @@
if (yych <= '9') goto yy897;
yy739:
YYDEBUG(739, *YYCURSOR);
-#line 1590 "ext/date/lib/parse_date.re"
+#line 1607 "ext/date/lib/parse_date.re"
{
int length = 0;
DEBUG_OUTPUT("pointed date YY");
@@ -16873,7 +16890,7 @@
TIMELIB_DEINIT;
return TIMELIB_DATE_FULL_POINTED;
}
-#line 16877 "ext/date/lib/parse_date.c"
+#line 16894 "ext/date/lib/parse_date.c"
yy740:
YYDEBUG(740, *YYCURSOR);
yyaccept = 15;
@@ -16985,7 +17002,7 @@
}
yy752:
YYDEBUG(752, *YYCURSOR);
-#line 1535 "ext/date/lib/parse_date.re"
+#line 1552 "ext/date/lib/parse_date.re"
{
int length = 0;
DEBUG_OUTPUT("gnudateshorter");
@@ -16998,7 +17015,7 @@
TIMELIB_DEINIT;
return TIMELIB_ISO_DATE;
}
-#line 17002 "ext/date/lib/parse_date.c"
+#line 17019 "ext/date/lib/parse_date.c"
yy753:
YYDEBUG(753, *YYCURSOR);
yyaccept = 18;
@@ -17247,7 +17264,7 @@
}
yy777:
YYDEBUG(777, *YYCURSOR);
-#line 1461 "ext/date/lib/parse_date.re"
+#line 1478 "ext/date/lib/parse_date.re"
{
int tz_not_found;
DEBUG_OUTPUT("iso8601nocolon");
@@ -17266,7 +17283,7 @@
TIMELIB_DEINIT;
return TIMELIB_ISO_NOCOLON;
}
-#line 17270 "ext/date/lib/parse_date.c"
+#line 17287 "ext/date/lib/parse_date.c"
yy778:
YYDEBUG(778, *YYCURSOR);
yyaccept = 19;
@@ -18494,7 +18511,7 @@
}
yy849:
YYDEBUG(849, *YYCURSOR);
-#line 1938 "ext/date/lib/parse_date.re"
+#line 1955 "ext/date/lib/parse_date.re"
{
int tz_not_found;
DEBUG_OUTPUT("dateshortwithtimeshort | dateshortwithtimelong | dateshortwithtimelongtz");
@@ -18523,7 +18540,7 @@
TIMELIB_DEINIT;
return TIMELIB_SHORTDATE_WITH_TIME;
}
-#line 18527 "ext/date/lib/parse_date.c"
+#line 18544 "ext/date/lib/parse_date.c"
yy850:
YYDEBUG(850, *YYCURSOR);
yyaccept = 20;
@@ -19567,7 +19584,7 @@
}
yy926:
YYDEBUG(926, *YYCURSOR);
-#line 1696 "ext/date/lib/parse_date.re"
+#line 1713 "ext/date/lib/parse_date.re"
{
int length = 0;
DEBUG_OUTPUT("pgydotd");
@@ -19580,7 +19597,7 @@
TIMELIB_DEINIT;
return TIMELIB_PG_YEARDAY;
}
-#line 19584 "ext/date/lib/parse_date.c"
+#line 19601 "ext/date/lib/parse_date.c"
yy927:
YYDEBUG(927, *YYCURSOR);
yyaccept = 21;
@@ -19834,7 +19851,7 @@
if (yych <= '7') goto yy1059;
yy942:
YYDEBUG(942, *YYCURSOR);
-#line 1729 "ext/date/lib/parse_date.re"
+#line 1746 "ext/date/lib/parse_date.re"
{
timelib_sll w, d;
DEBUG_OUTPUT("isoweek");
@@ -19852,7 +19869,7 @@
TIMELIB_DEINIT;
return TIMELIB_ISO_WEEK;
}
-#line 19856 "ext/date/lib/parse_date.c"
+#line 19873 "ext/date/lib/parse_date.c"
yy943:
YYDEBUG(943, *YYCURSOR);
yych = *++YYCURSOR;
@@ -20328,7 +20345,7 @@
if (yych == 'e') goto yy1094;
yy982:
YYDEBUG(982, *YYCURSOR);
-#line 1872 "ext/date/lib/parse_date.re"
+#line 1889 "ext/date/lib/parse_date.re"
{
timelib_sll i;
int behavior = 0;
@@ -20344,7 +20361,7 @@
TIMELIB_DEINIT;
return TIMELIB_RELATIVE;
}
-#line 20348 "ext/date/lib/parse_date.c"
+#line 20365 "ext/date/lib/parse_date.c"
yy983:
YYDEBUG(983, *YYCURSOR);
yych = *++YYCURSOR;
@@ -20691,7 +20708,7 @@
YYDEBUG(1020, *YYCURSOR);
++YYCURSOR;
YYDEBUG(1021, *YYCURSOR);
-#line 1578 "ext/date/lib/parse_date.re"
+#line 1595 "ext/date/lib/parse_date.re"
{
DEBUG_OUTPUT("pointed date YYYY");
TIMELIB_INIT;
@@ -20702,7 +20719,7 @@
TIMELIB_DEINIT;
return TIMELIB_DATE_FULL_POINTED;
}
-#line 20706 "ext/date/lib/parse_date.c"
+#line 20723 "ext/date/lib/parse_date.c"
yy1022:
YYDEBUG(1022, *YYCURSOR);
++YYCURSOR;
@@ -20731,7 +20748,7 @@
}
yy1025:
YYDEBUG(1025, *YYCURSOR);
-#line 1509 "ext/date/lib/parse_date.re"
+#line 1526 "ext/date/lib/parse_date.re"
{
int length = 0;
DEBUG_OUTPUT("iso8601date2");
@@ -20744,7 +20761,7 @@
TIMELIB_DEINIT;
return TIMELIB_ISO_DATE;
}
-#line 20748 "ext/date/lib/parse_date.c"
+#line 20765 "ext/date/lib/parse_date.c"
yy1026:
YYDEBUG(1026, *YYCURSOR);
yyaccept = 15;
@@ -20964,7 +20981,7 @@
}
yy1043:
YYDEBUG(1043, *YYCURSOR);
-#line 1497 "ext/date/lib/parse_date.re"
+#line 1514 "ext/date/lib/parse_date.re"
{
DEBUG_OUTPUT("iso8601date4 | iso8601date2 | iso8601dateslash | dateslash");
TIMELIB_INIT;
@@ -20975,7 +20992,7 @@
TIMELIB_DEINIT;
return TIMELIB_ISO_DATE;
}
-#line 20979 "ext/date/lib/parse_date.c"
+#line 20996 "ext/date/lib/parse_date.c"
yy1044:
YYDEBUG(1044, *YYCURSOR);
yyaccept = 26;
@@ -21090,7 +21107,7 @@
}
yy1048:
YYDEBUG(1048, *YYCURSOR);
-#line 1658 "ext/date/lib/parse_date.re"
+#line 1675 "ext/date/lib/parse_date.re"
{
DEBUG_OUTPUT("datenocolon");
TIMELIB_INIT;
@@ -21101,7 +21118,7 @@
TIMELIB_DEINIT;
return TIMELIB_DATE_NOCOLON;
}
-#line 21105 "ext/date/lib/parse_date.c"
+#line 21122 "ext/date/lib/parse_date.c"
yy1049:
YYDEBUG(1049, *YYCURSOR);
yych = *++YYCURSOR;
@@ -21171,7 +21188,7 @@
YYDEBUG(1059, *YYCURSOR);
++YYCURSOR;
YYDEBUG(1060, *YYCURSOR);
-#line 1710 "ext/date/lib/parse_date.re"
+#line 1727 "ext/date/lib/parse_date.re"
{
timelib_sll w, d;
DEBUG_OUTPUT("isoweekday");
@@ -21189,7 +21206,7 @@
TIMELIB_DEINIT;
return TIMELIB_ISO_WEEK;
}
-#line 21193 "ext/date/lib/parse_date.c"
+#line 21210 "ext/date/lib/parse_date.c"
yy1061:
YYDEBUG(1061, *YYCURSOR);
yych = *++YYCURSOR;
@@ -21252,7 +21269,7 @@
if (yych <= '9') goto yy1143;
yy1070:
YYDEBUG(1070, *YYCURSOR);
-#line 1748 "ext/date/lib/parse_date.re"
+#line 1765 "ext/date/lib/parse_date.re"
{
int length = 0;
DEBUG_OUTPUT("pgtextshort");
@@ -21265,7 +21282,7 @@
TIMELIB_DEINIT;
return TIMELIB_PG_TEXT;
}
-#line 21269 "ext/date/lib/parse_date.c"
+#line 21286 "ext/date/lib/parse_date.c"
yy1071:
YYDEBUG(1071, *YYCURSOR);
yych = *++YYCURSOR;
@@ -21738,7 +21755,7 @@
++YYCURSOR;
yy1107:
YYDEBUG(1107, *YYCURSOR);
-#line 1209 "ext/date/lib/parse_date.re"
+#line 1226 "ext/date/lib/parse_date.re"
{
DEBUG_OUTPUT("tomorrow");
TIMELIB_INIT;
@@ -21749,7 +21766,7 @@
TIMELIB_DEINIT;
return TIMELIB_RELATIVE;
}
-#line 21753 "ext/date/lib/parse_date.c"
+#line 21770 "ext/date/lib/parse_date.c"
yy1108:
YYDEBUG(1108, *YYCURSOR);
yyaccept = 28;
@@ -22086,7 +22103,7 @@
YYDEBUG(1140, *YYCURSOR);
++YYCURSOR;
YYDEBUG(1141, *YYCURSOR);
-#line 1762 "ext/date/lib/parse_date.re"
+#line 1779 "ext/date/lib/parse_date.re"
{
int length = 0;
DEBUG_OUTPUT("pgtextreverse");
@@ -22099,7 +22116,7 @@
TIMELIB_DEINIT;
return TIMELIB_PG_TEXT;
}
-#line 22103 "ext/date/lib/parse_date.c"
+#line 22120 "ext/date/lib/parse_date.c"
yy1142:
YYDEBUG(1142, *YYCURSOR);
++YYCURSOR;
@@ -22143,7 +22160,7 @@
}
yy1145:
YYDEBUG(1145, *YYCURSOR);
-#line 1304 "ext/date/lib/parse_date.re"
+#line 1321 "ext/date/lib/parse_date.re"
{
DEBUG_OUTPUT("backof | frontof");
TIMELIB_INIT;
@@ -22165,7 +22182,7 @@
TIMELIB_DEINIT;
return TIMELIB_LF_DAY_OF_MONTH;
}
-#line 22169 "ext/date/lib/parse_date.c"
+#line 22186 "ext/date/lib/parse_date.c"
yy1146:
YYDEBUG(1146, *YYCURSOR);
yyaccept = 29;
@@ -22489,7 +22506,7 @@
}
yy1172:
YYDEBUG(1172, *YYCURSOR);
-#line 1848 "ext/date/lib/parse_date.re"
+#line 1865 "ext/date/lib/parse_date.re"
{
timelib_sll i;
int behavior = 0;
@@ -22512,7 +22529,7 @@
TIMELIB_DEINIT;
return TIMELIB_RELATIVE;
}
-#line 22516 "ext/date/lib/parse_date.c"
+#line 22533 "ext/date/lib/parse_date.c"
yy1173:
YYDEBUG(1173, *YYCURSOR);
yych = *++YYCURSOR;
@@ -22524,7 +22541,7 @@
++YYCURSOR;
yy1175:
YYDEBUG(1175, *YYCURSOR);
-#line 1166 "ext/date/lib/parse_date.re"
+#line 1183 "ext/date/lib/parse_date.re"
{
DEBUG_OUTPUT("yesterday");
TIMELIB_INIT;
@@ -22535,7 +22552,7 @@
TIMELIB_DEINIT;
return TIMELIB_RELATIVE;
}
-#line 22539 "ext/date/lib/parse_date.c"
+#line 22556 "ext/date/lib/parse_date.c"
yy1176:
YYDEBUG(1176, *YYCURSOR);
yyaccept = 31;
@@ -23028,7 +23045,7 @@
YYDEBUG(1222, *YYCURSOR);
++YYCURSOR;
YYDEBUG(1223, *YYCURSOR);
-#line 1914 "ext/date/lib/parse_date.re"
+#line 1931 "ext/date/lib/parse_date.re"
{
DEBUG_OUTPUT("dateshortwithtimeshort12 | dateshortwithtimelong12");
TIMELIB_INIT;
@@ -23051,7 +23068,7 @@
TIMELIB_DEINIT;
return TIMELIB_SHORTDATE_WITH_TIME;
}
-#line 23055 "ext/date/lib/parse_date.c"
+#line 23072 "ext/date/lib/parse_date.c"
yy1224:
YYDEBUG(1224, *YYCURSOR);
yych = *++YYCURSOR;
@@ -23553,7 +23570,7 @@
YYDEBUG(1268, *YYCURSOR);
++YYCURSOR;
YYDEBUG(1269, *YYCURSOR);
-#line 1327 "ext/date/lib/parse_date.re"
+#line 1344 "ext/date/lib/parse_date.re"
{
timelib_sll i;
int behavior = 0;
@@ -23574,7 +23591,7 @@
TIMELIB_DEINIT;
return TIMELIB_WEEK_DAY_OF_MONTH;
}
-#line 23578 "ext/date/lib/parse_date.c"
+#line 23595 "ext/date/lib/parse_date.c"
yy1270:
YYDEBUG(1270, *YYCURSOR);
yyaccept = 24;
@@ -23621,7 +23638,7 @@
YYDEBUG(1273, *YYCURSOR);
++YYCURSOR;
YYDEBUG(1274, *YYCURSOR);
-#line 1287 "ext/date/lib/parse_date.re"
+#line 1304 "ext/date/lib/parse_date.re"
{
DEBUG_OUTPUT("firstdayof | lastdayof");
TIMELIB_INIT;
@@ -23637,12 +23654,12 @@
TIMELIB_DEINIT;
return TIMELIB_LF_DAY_OF_MONTH;
}
-#line 23641 "ext/date/lib/parse_date.c"
+#line 23658 "ext/date/lib/parse_date.c"
yy1275:
YYDEBUG(1275, *YYCURSOR);
++YYCURSOR;
YYDEBUG(1276, *YYCURSOR);
-#line 1523 "ext/date/lib/parse_date.re"
+#line 1540 "ext/date/lib/parse_date.re"
{
DEBUG_OUTPUT("iso8601datex");
TIMELIB_INIT;
@@ -23653,7 +23670,7 @@
TIMELIB_DEINIT;
return TIMELIB_ISO_DATE;
}
-#line 23657 "ext/date/lib/parse_date.c"
+#line 23674 "ext/date/lib/parse_date.c"
yy1277:
YYDEBUG(1277, *YYCURSOR);
yych = *++YYCURSOR;
@@ -23756,7 +23773,7 @@
YYDEBUG(1290, *YYCURSOR);
++YYCURSOR;
YYDEBUG(1291, *YYCURSOR);
-#line 1367 "ext/date/lib/parse_date.re"
+#line 1384 "ext/date/lib/parse_date.re"
{
DEBUG_OUTPUT("mssqltime");
TIMELIB_INIT;
@@ -23775,7 +23792,7 @@
TIMELIB_DEINIT;
return TIMELIB_TIME24_WITH_ZONE;
}
-#line 23779 "ext/date/lib/parse_date.c"
+#line 23796 "ext/date/lib/parse_date.c"
yy1292:
YYDEBUG(1292, *YYCURSOR);
yych = *++YYCURSOR;
@@ -24199,7 +24216,7 @@
if (yych <= '9') goto yy1331;
yy1329:
YYDEBUG(1329, *YYCURSOR);
-#line 1670 "ext/date/lib/parse_date.re"
+#line 1687 "ext/date/lib/parse_date.re"
{
int tz_not_found;
DEBUG_OUTPUT("xmlrpc | xmlrpcnocolon | soap | wddx | exif");
@@ -24224,7 +24241,7 @@
TIMELIB_DEINIT;
return TIMELIB_XMLRPC_SOAP;
}
-#line 24228 "ext/date/lib/parse_date.c"
+#line 24245 "ext/date/lib/parse_date.c"
yy1330:
YYDEBUG(1330, *YYCURSOR);
yych = *++YYCURSOR;
@@ -24594,7 +24611,7 @@
if (yych <= ':') goto yy1383;
yy1375:
YYDEBUG(1375, *YYCURSOR);
-#line 1776 "ext/date/lib/parse_date.re"
+#line 1793 "ext/date/lib/parse_date.re"
{
int tz_not_found;
DEBUG_OUTPUT("clf");
@@ -24617,7 +24634,7 @@
TIMELIB_DEINIT;
return TIMELIB_CLF;
}
-#line 24621 "ext/date/lib/parse_date.c"
+#line 24638 "ext/date/lib/parse_date.c"
yy1376:
YYDEBUG(1376, *YYCURSOR);
yyaccept = 33;
@@ -24849,7 +24866,7 @@
if (yych == ':') goto yy1286;
goto yy1329;
}
-#line 2004 "ext/date/lib/parse_date.re"
+#line 2021 "ext/date/lib/parse_date.re"
}
@@ -24870,7 +24887,7 @@
in.errors->error_messages = NULL;
if (len > 0) {
- while (isspace((unsigned char)*s) && s < e) {
+ while (isspace((unsigned char)*s) && s <= e) {
s++;
}
while (isspace((unsigned char)*e) && e > s) {
diff -Nru php8.4-8.4.26/ext/date/lib/parse_date.re php8.4-8.4.27/ext/date/lib/parse_date.re
--- php8.4-8.4.26/ext/date/lib/parse_date.re 2026-09-22 15:00:02.000000000 +0000
+++ php8.4-8.4.27/ext/date/lib/parse_date.re 2026-10-19 14:38:59.000000000 +0000
@@ -76,6 +76,7 @@
#define TIMELIB_RELATIVE 310
#define TIMELIB_ERROR 999
+#define TIMELIB_MAX_ERRORS 1000
/* Some compilers like AIX, defines uchar in sys/types.h */
#undef uchar
@@ -370,6 +371,10 @@
static void add_warning(Scanner *s, int error_code, const char *error)
{
+ if (s->errors->warning_count >= TIMELIB_MAX_ERRORS) {
+ return;
+ }
+
timelib_error_message *message = alloc_error_message(&s->errors->warning_messages, &s->errors->warning_count);
message->error_code = error_code;
@@ -380,6 +385,10 @@
static void add_error(Scanner *s, int error_code, const char *error)
{
+ if (s->errors->error_count >= TIMELIB_MAX_ERRORS) {
+ return;
+ }
+
timelib_error_message *message = alloc_error_message(&s->errors->error_messages, &s->errors->error_count);
message->error_code = error_code;
@@ -390,6 +399,10 @@
static void add_pbf_warning(Scanner *s, int error_code, const char *error, const char *sptr, const char *cptr)
{
+ if (s->errors->warning_count >= TIMELIB_MAX_ERRORS) {
+ return;
+ }
+
timelib_error_message *message = alloc_error_message(&s->errors->warning_messages, &s->errors->warning_count);
message->error_code = error_code;
@@ -400,6 +413,10 @@
static void add_pbf_error(Scanner *s, int error_code, const char *error, const char *sptr, const char *cptr)
{
+ if (s->errors->error_count >= TIMELIB_MAX_ERRORS) {
+ return;
+ }
+
timelib_error_message *message = alloc_error_message(&s->errors->error_messages, &s->errors->error_count);
message->error_code = error_code;
diff -Nru php8.4-8.4.26/ext/date/lib/parse_iso_intervals.c php8.4-8.4.27/ext/date/lib/parse_iso_intervals.c
--- php8.4-8.4.26/ext/date/lib/parse_iso_intervals.c 2026-09-22 15:00:02.000000000 +0000
+++ php8.4-8.4.27/ext/date/lib/parse_iso_intervals.c 2026-10-19 14:38:59.000000000 +0000
@@ -1,4 +1,4 @@
-/* Generated by re2c 1.0.3 on Mon Sep 15 10:38:16 2025 */
+/* Generated by re2c 1.0.3 on Wed Sep 30 15:20:07 2026 */
#line 1 "ext/date/lib/parse_iso_intervals.re"
/*
* The MIT License (MIT)
@@ -44,6 +44,7 @@
#define TIMELIB_PERIOD 260
#define TIMELIB_ISO_DATE 261
#define TIMELIB_ERROR 999
+#define TIMELIB_MAX_ERRORS 1000
typedef unsigned char uchar;
@@ -90,6 +91,10 @@
static void add_error(Scanner *s, const char *error)
{
+ if (s->errors->error_count >= TIMELIB_MAX_ERRORS) {
+ return;
+ }
+
s->errors->error_count++;
s->errors->error_messages = timelib_realloc(s->errors->error_messages, s->errors->error_count * sizeof(timelib_error_message));
s->errors->error_messages[s->errors->error_count - 1].position = s->tok ? s->tok - s->str : 0;
@@ -176,11 +181,11 @@
std:
s->tok = cursor;
s->len = 0;
-#line 204 "ext/date/lib/parse_iso_intervals.re"
+#line 209 "ext/date/lib/parse_iso_intervals.re"
-#line 184 "ext/date/lib/parse_iso_intervals.c"
+#line 189 "ext/date/lib/parse_iso_intervals.c"
{
YYCTYPE yych;
unsigned int yyaccept = 0;
@@ -247,32 +252,32 @@
YYDEBUG(2, *YYCURSOR);
++YYCURSOR;
YYDEBUG(3, *YYCURSOR);
-#line 311 "ext/date/lib/parse_iso_intervals.re"
+#line 316 "ext/date/lib/parse_iso_intervals.re"
{
s->pos = cursor; s->line++;
goto std;
}
-#line 256 "ext/date/lib/parse_iso_intervals.c"
+#line 261 "ext/date/lib/parse_iso_intervals.c"
yy4:
YYDEBUG(4, *YYCURSOR);
++YYCURSOR;
yy5:
YYDEBUG(5, *YYCURSOR);
-#line 317 "ext/date/lib/parse_iso_intervals.re"
+#line 322 "ext/date/lib/parse_iso_intervals.re"
{
add_error(s, "Unexpected character");
goto std;
}
-#line 267 "ext/date/lib/parse_iso_intervals.c"
+#line 272 "ext/date/lib/parse_iso_intervals.c"
yy6:
YYDEBUG(6, *YYCURSOR);
++YYCURSOR;
YYDEBUG(7, *YYCURSOR);
-#line 306 "ext/date/lib/parse_iso_intervals.re"
+#line 311 "ext/date/lib/parse_iso_intervals.re"
{
goto std;
}
-#line 276 "ext/date/lib/parse_iso_intervals.c"
+#line 281 "ext/date/lib/parse_iso_intervals.c"
yy8:
YYDEBUG(8, *YYCURSOR);
yyaccept = 0;
@@ -289,7 +294,7 @@
if (yych == 'T') goto yy15;
yy10:
YYDEBUG(10, *YYCURSOR);
-#line 244 "ext/date/lib/parse_iso_intervals.re"
+#line 249 "ext/date/lib/parse_iso_intervals.re"
{
timelib_sll nr;
int in_time = 0;
@@ -330,7 +335,7 @@
TIMELIB_DEINIT;
return TIMELIB_PERIOD;
}
-#line 334 "ext/date/lib/parse_iso_intervals.c"
+#line 339 "ext/date/lib/parse_iso_intervals.c"
yy11:
YYDEBUG(11, *YYCURSOR);
yych = *++YYCURSOR;
@@ -389,7 +394,7 @@
goto yy16;
}
YYDEBUG(18, *YYCURSOR);
-#line 209 "ext/date/lib/parse_iso_intervals.re"
+#line 214 "ext/date/lib/parse_iso_intervals.re"
{
DEBUG_OUTPUT("recurrences");
TIMELIB_INIT;
@@ -399,7 +404,7 @@
s->have_recurrences = 1;
return TIMELIB_PERIOD;
}
-#line 403 "ext/date/lib/parse_iso_intervals.c"
+#line 408 "ext/date/lib/parse_iso_intervals.c"
yy19:
YYDEBUG(19, *YYCURSOR);
yych = *++YYCURSOR;
@@ -894,7 +899,7 @@
YYDEBUG(89, *YYCURSOR);
++YYCURSOR;
YYDEBUG(90, *YYCURSOR);
-#line 220 "ext/date/lib/parse_iso_intervals.re"
+#line 225 "ext/date/lib/parse_iso_intervals.re"
{
timelib_time *current;
@@ -917,7 +922,7 @@
TIMELIB_DEINIT;
return TIMELIB_ISO_DATE;
}
-#line 921 "ext/date/lib/parse_iso_intervals.c"
+#line 926 "ext/date/lib/parse_iso_intervals.c"
yy91:
YYDEBUG(91, *YYCURSOR);
yych = *++YYCURSOR;
@@ -937,7 +942,7 @@
YYDEBUG(95, *YYCURSOR);
++YYCURSOR;
YYDEBUG(96, *YYCURSOR);
-#line 286 "ext/date/lib/parse_iso_intervals.re"
+#line 291 "ext/date/lib/parse_iso_intervals.re"
{
DEBUG_OUTPUT("combinedrep");
TIMELIB_INIT;
@@ -956,9 +961,9 @@
TIMELIB_DEINIT;
return TIMELIB_PERIOD;
}
-#line 960 "ext/date/lib/parse_iso_intervals.c"
+#line 965 "ext/date/lib/parse_iso_intervals.c"
}
-#line 321 "ext/date/lib/parse_iso_intervals.re"
+#line 326 "ext/date/lib/parse_iso_intervals.re"
}
#ifdef PHP_WIN32
diff -Nru php8.4-8.4.26/ext/date/lib/parse_iso_intervals.re php8.4-8.4.27/ext/date/lib/parse_iso_intervals.re
--- php8.4-8.4.26/ext/date/lib/parse_iso_intervals.re 2026-09-22 15:00:02.000000000 +0000
+++ php8.4-8.4.27/ext/date/lib/parse_iso_intervals.re 2026-10-19 14:38:59.000000000 +0000
@@ -42,6 +42,7 @@
#define TIMELIB_PERIOD 260
#define TIMELIB_ISO_DATE 261
#define TIMELIB_ERROR 999
+#define TIMELIB_MAX_ERRORS 1000
typedef unsigned char uchar;
@@ -88,6 +89,10 @@
static void add_error(Scanner *s, const char *error)
{
+ if (s->errors->error_count >= TIMELIB_MAX_ERRORS) {
+ return;
+ }
+
s->errors->error_count++;
s->errors->error_messages = timelib_realloc(s->errors->error_messages, s->errors->error_count * sizeof(timelib_error_message));
s->errors->error_messages[s->errors->error_count - 1].position = s->tok ? s->tok - s->str : 0;
diff -Nru php8.4-8.4.26/ext/date/lib/timezonedb.h php8.4-8.4.27/ext/date/lib/timezonedb.h
--- php8.4-8.4.26/ext/date/lib/timezonedb.h 2026-09-22 15:00:02.000000000 +0000
+++ php8.4-8.4.27/ext/date/lib/timezonedb.h 2026-10-19 14:38:59.000000000 +0000
@@ -143,470 +143,470 @@
{ (char*) "America/Indiana/Winamac" , 0x010ED9 },
{ (char*) "America/Indianapolis" , 0x011156 },
{ (char*) "America/Inuvik" , 0x011375 },
- { (char*) "America/Iqaluit" , 0x0116C6 },
- { (char*) "America/Jamaica" , 0x011A42 },
- { (char*) "America/Jujuy" , 0x011BA1 },
- { (char*) "America/Juneau" , 0x011E5F },
- { (char*) "America/Kentucky/Louisville" , 0x012245 },
- { (char*) "America/Kentucky/Monticello" , 0x012749 },
- { (char*) "America/Knox_IN" , 0x012B35 },
- { (char*) "America/Kralendijk" , 0x012F39 },
- { (char*) "America/La_Paz" , 0x012FF6 },
- { (char*) "America/Lima" , 0x0130AC },
- { (char*) "America/Los_Angeles" , 0x0131D3 },
- { (char*) "America/Louisville" , 0x0136F4 },
- { (char*) "America/Lower_Princes" , 0x013BDA },
- { (char*) "America/Maceio" , 0x013C97 },
- { (char*) "America/Managua" , 0x013EA9 },
- { (char*) "America/Manaus" , 0x013FDC },
- { (char*) "America/Marigot" , 0x014193 },
- { (char*) "America/Martinique" , 0x014250 },
- { (char*) "America/Matamoros" , 0x01430E },
- { (char*) "America/Mazatlan" , 0x0144FB },
- { (char*) "America/Mendoza" , 0x0147EB },
- { (char*) "America/Menominee" , 0x014ABB },
- { (char*) "America/Merida" , 0x014E7B },
- { (char*) "America/Metlakatla" , 0x015126 },
- { (char*) "America/Mexico_City" , 0x015393 },
- { (char*) "America/Miquelon" , 0x0156B2 },
- { (char*) "America/Moncton" , 0x0158E4 },
- { (char*) "America/Monterrey" , 0x015EDD },
- { (char*) "America/Montevideo" , 0x0161E4 },
- { (char*) "America/Montreal" , 0x0165B9 },
- { (char*) "America/Montserrat" , 0x016C7A },
- { (char*) "America/Nassau" , 0x016D08 },
- { (char*) "America/New_York" , 0x017102 },
- { (char*) "America/Nipigon" , 0x0177F2 },
- { (char*) "America/Nome" , 0x017EB3 },
- { (char*) "America/Noronha" , 0x01829B },
- { (char*) "America/North_Dakota/Beulah" , 0x01849B },
- { (char*) "America/North_Dakota/Center" , 0x0188CF },
- { (char*) "America/North_Dakota/New_Salem" , 0x018CCE },
- { (char*) "America/Nuuk" , 0x0190D3 },
- { (char*) "America/Ojinaga" , 0x0194B5 },
- { (char*) "America/Panama" , 0x0197AB },
- { (char*) "America/Pangnirtung" , 0x01984C },
- { (char*) "America/Paramaribo" , 0x019BAF },
- { (char*) "America/Phoenix" , 0x019C76 },
- { (char*) "America/Port-au-Prince" , 0x019D8A },
- { (char*) "America/Port_of_Spain" , 0x019FCB },
- { (char*) "America/Porto_Acre" , 0x01A059 },
- { (char*) "America/Porto_Velho" , 0x01A207 },
- { (char*) "America/Puerto_Rico" , 0x01A3A5 },
- { (char*) "America/Punta_Arenas" , 0x01A462 },
- { (char*) "America/Rainy_River" , 0x01A941 },
- { (char*) "America/Rankin_Inlet" , 0x01AE5B },
- { (char*) "America/Recife" , 0x01B1A4 },
- { (char*) "America/Regina" , 0x01B39E },
- { (char*) "America/Resolute" , 0x01B63D },
- { (char*) "America/Rio_Branco" , 0x01B987 },
- { (char*) "America/Rosario" , 0x01BB39 },
- { (char*) "America/Santa_Isabel" , 0x01BE09 },
- { (char*) "America/Santarem" , 0x01C36C },
- { (char*) "America/Santiago" , 0x01C51C },
- { (char*) "America/Santo_Domingo" , 0x01CA7F },
- { (char*) "America/Sao_Paulo" , 0x01CBC8 },
- { (char*) "America/Scoresbysund" , 0x01CFC2 },
- { (char*) "America/Shiprock" , 0x01D3C3 },
- { (char*) "America/Sitka" , 0x01D7E1 },
- { (char*) "America/St_Barthelemy" , 0x01DBBC },
- { (char*) "America/St_Johns" , 0x01DC79 },
- { (char*) "America/St_Kitts" , 0x01E3F6 },
- { (char*) "America/St_Lucia" , 0x01E484 },
- { (char*) "America/St_Thomas" , 0x01E525 },
- { (char*) "America/St_Vincent" , 0x01E5B3 },
- { (char*) "America/Swift_Current" , 0x01E654 },
- { (char*) "America/Tegucigalpa" , 0x01E7E2 },
- { (char*) "America/Thule" , 0x01E8B0 },
- { (char*) "America/Thunder_Bay" , 0x01EA91 },
- { (char*) "America/Tijuana" , 0x01F152 },
- { (char*) "America/Toronto" , 0x01F6C4 },
- { (char*) "America/Tortola" , 0x01FDA3 },
- { (char*) "America/Vancouver" , 0x01FE31 },
- { (char*) "America/Virgin" , 0x0204DB },
- { (char*) "America/Whitehorse" , 0x020598 },
- { (char*) "America/Winnipeg" , 0x0209BB },
- { (char*) "America/Yakutat" , 0x020EF2 },
- { (char*) "America/Yellowknife" , 0x0212C0 },
- { (char*) "Antarctica/Casey" , 0x0217ED },
- { (char*) "Antarctica/Davis" , 0x02191D },
- { (char*) "Antarctica/DumontDUrville" , 0x0219F3 },
- { (char*) "Antarctica/Macquarie" , 0x021AA7 },
- { (char*) "Antarctica/Mawson" , 0x021E93 },
- { (char*) "Antarctica/McMurdo" , 0x021F3D },
- { (char*) "Antarctica/Palmer" , 0x02226F },
- { (char*) "Antarctica/Rothera" , 0x0225F8 },
- { (char*) "Antarctica/South_Pole" , 0x02268F },
- { (char*) "Antarctica/Syowa" , 0x022AAE },
- { (char*) "Antarctica/Troll" , 0x022B44 },
- { (char*) "Antarctica/Vostok" , 0x022BF3 },
- { (char*) "Arctic/Longyearbyen" , 0x022CAF },
- { (char*) "Asia/Aden" , 0x022F7C },
- { (char*) "Asia/Almaty" , 0x02300D },
- { (char*) "Asia/Amman" , 0x023295 },
- { (char*) "Asia/Anadyr" , 0x023641 },
- { (char*) "Asia/Aqtau" , 0x023947 },
- { (char*) "Asia/Aqtobe" , 0x023BC6 },
- { (char*) "Asia/Ashgabat" , 0x023E46 },
- { (char*) "Asia/Ashkhabad" , 0x023FC9 },
- { (char*) "Asia/Atyrau" , 0x02414C },
- { (char*) "Asia/Baghdad" , 0x0243D5 },
- { (char*) "Asia/Bahrain" , 0x024657 },
- { (char*) "Asia/Baku" , 0x024710 },
- { (char*) "Asia/Bangkok" , 0x024A04 },
- { (char*) "Asia/Barnaul" , 0x024AA8 },
- { (char*) "Asia/Beirut" , 0x024DB3 },
- { (char*) "Asia/Bishkek" , 0x02509B },
- { (char*) "Asia/Brunei" , 0x025311 },
- { (char*) "Asia/Calcutta" , 0x0253B7 },
- { (char*) "Asia/Chita" , 0x02549F },
- { (char*) "Asia/Choibalsan" , 0x0257AD },
- { (char*) "Asia/Chongqing" , 0x025A0B },
- { (char*) "Asia/Chungking" , 0x025BA0 },
- { (char*) "Asia/Colombo" , 0x025D35 },
- { (char*) "Asia/Dacca" , 0x025E38 },
- { (char*) "Asia/Damascus" , 0x025F2B },
- { (char*) "Asia/Dhaka" , 0x026409 },
- { (char*) "Asia/Dili" , 0x0264FC },
- { (char*) "Asia/Dubai" , 0x0265B2 },
- { (char*) "Asia/Dushanbe" , 0x026643 },
- { (char*) "Asia/Famagusta" , 0x0267BD },
- { (char*) "Asia/Gaza" , 0x026B84 },
- { (char*) "Asia/Harbin" , 0x027720 },
- { (char*) "Asia/Hebron" , 0x0278B5 },
- { (char*) "Asia/Ho_Chi_Minh" , 0x028462 },
- { (char*) "Asia/Hong_Kong" , 0x028556 },
- { (char*) "Asia/Hovd" , 0x028869 },
- { (char*) "Asia/Irkutsk" , 0x028ADD },
- { (char*) "Asia/Istanbul" , 0x028DFB },
- { (char*) "Asia/Jakarta" , 0x0292B7 },
- { (char*) "Asia/Jayapura" , 0x0293C8 },
- { (char*) "Asia/Jerusalem" , 0x0294B5 },
- { (char*) "Asia/Kabul" , 0x0298F3 },
- { (char*) "Asia/Kamchatka" , 0x02999E },
- { (char*) "Asia/Karachi" , 0x029C93 },
- { (char*) "Asia/Kashgar" , 0x029DA9 },
- { (char*) "Asia/Kathmandu" , 0x029E3A },
- { (char*) "Asia/Katmandu" , 0x029EE7 },
- { (char*) "Asia/Khandyga" , 0x029F94 },
- { (char*) "Asia/Kolkata" , 0x02A2C5 },
- { (char*) "Asia/Krasnoyarsk" , 0x02A3AD },
- { (char*) "Asia/Kuala_Lumpur" , 0x02A6B7 },
- { (char*) "Asia/Kuching" , 0x02A7D7 },
- { (char*) "Asia/Kuwait" , 0x02A931 },
- { (char*) "Asia/Macao" , 0x02A9C2 },
- { (char*) "Asia/Macau" , 0x02ACE5 },
- { (char*) "Asia/Magadan" , 0x02B008 },
- { (char*) "Asia/Makassar" , 0x02B313 },
- { (char*) "Asia/Manila" , 0x02B426 },
- { (char*) "Asia/Muscat" , 0x02B544 },
- { (char*) "Asia/Nicosia" , 0x02B5D5 },
- { (char*) "Asia/Novokuznetsk" , 0x02B844 },
- { (char*) "Asia/Novosibirsk" , 0x02BB37 },
- { (char*) "Asia/Omsk" , 0x02BE48 },
- { (char*) "Asia/Oral" , 0x02C146 },
- { (char*) "Asia/Phnom_Penh" , 0x02C3D2 },
- { (char*) "Asia/Pontianak" , 0x02C4A2 },
- { (char*) "Asia/Pyongyang" , 0x02C5BB },
- { (char*) "Asia/Qatar" , 0x02C67E },
- { (char*) "Asia/Qostanay" , 0x02C722 },
- { (char*) "Asia/Qyzylorda" , 0x02C9B8 },
- { (char*) "Asia/Rangoon" , 0x02CC51 },
- { (char*) "Asia/Riyadh" , 0x02CD18 },
- { (char*) "Asia/Saigon" , 0x02CDA9 },
- { (char*) "Asia/Sakhalin" , 0x02CE9D },
- { (char*) "Asia/Samarkand" , 0x02D1B4 },
- { (char*) "Asia/Seoul" , 0x02D33F },
- { (char*) "Asia/Shanghai" , 0x02D4EA },
- { (char*) "Asia/Singapore" , 0x02D68B },
- { (char*) "Asia/Srednekolymsk" , 0x02D797 },
- { (char*) "Asia/Taipei" , 0x02DAA7 },
- { (char*) "Asia/Tashkent" , 0x02DCB2 },
- { (char*) "Asia/Tbilisi" , 0x02DE3D },
- { (char*) "Asia/Tehran" , 0x02E0B5 },
- { (char*) "Asia/Tel_Aviv" , 0x02E3ED },
- { (char*) "Asia/Thimbu" , 0x02E82B },
- { (char*) "Asia/Thimphu" , 0x02E8D1 },
- { (char*) "Asia/Tokyo" , 0x02E977 },
- { (char*) "Asia/Tomsk" , 0x02EA58 },
- { (char*) "Asia/Ujung_Pandang" , 0x02ED63 },
- { (char*) "Asia/Ulaanbaatar" , 0x02EE2D },
- { (char*) "Asia/Ulan_Bator" , 0x02F09B },
- { (char*) "Asia/Urumqi" , 0x02F2F9 },
- { (char*) "Asia/Ust-Nera" , 0x02F397 },
- { (char*) "Asia/Vientiane" , 0x02F6BA },
- { (char*) "Asia/Vladivostok" , 0x02F79C },
- { (char*) "Asia/Yakutsk" , 0x02FAA1 },
- { (char*) "Asia/Yangon" , 0x02FDA5 },
- { (char*) "Asia/Yekaterinburg" , 0x02FE6C },
- { (char*) "Asia/Yerevan" , 0x03017E },
- { (char*) "Atlantic/Azores" , 0x03044E },
- { (char*) "Atlantic/Bermuda" , 0x0309D9 },
- { (char*) "Atlantic/Canary" , 0x030DE5 },
- { (char*) "Atlantic/Cape_Verde" , 0x030FDD },
- { (char*) "Atlantic/Faeroe" , 0x031098 },
- { (char*) "Atlantic/Faroe" , 0x03125D },
- { (char*) "Atlantic/Jan_Mayen" , 0x031422 },
- { (char*) "Atlantic/Madeira" , 0x0316EF },
- { (char*) "Atlantic/Reykjavik" , 0x031C66 },
- { (char*) "Atlantic/South_Georgia" , 0x031F63 },
- { (char*) "Atlantic/St_Helena" , 0x031FF3 },
- { (char*) "Atlantic/Stanley" , 0x032094 },
- { (char*) "Australia/ACT" , 0x0323B5 },
- { (char*) "Australia/Adelaide" , 0x032749 },
- { (char*) "Australia/Brisbane" , 0x032AFD },
- { (char*) "Australia/Broken_Hill" , 0x032C41 },
- { (char*) "Australia/Canberra" , 0x033016 },
- { (char*) "Australia/Currie" , 0x0333AA },
- { (char*) "Australia/Darwin" , 0x0337A1 },
- { (char*) "Australia/Eucla" , 0x0338A9 },
- { (char*) "Australia/Hobart" , 0x033A08 },
- { (char*) "Australia/LHI" , 0x033E07 },
- { (char*) "Australia/Lindeman" , 0x0340C7 },
- { (char*) "Australia/Lord_Howe" , 0x034237 },
- { (char*) "Australia/Melbourne" , 0x034507 },
- { (char*) "Australia/North" , 0x0348A3 },
- { (char*) "Australia/NSW" , 0x034999 },
- { (char*) "Australia/Perth" , 0x034D2D },
- { (char*) "Australia/Queensland" , 0x034E89 },
- { (char*) "Australia/South" , 0x034FB6 },
- { (char*) "Australia/Sydney" , 0x03535B },
- { (char*) "Australia/Tasmania" , 0x03570B },
- { (char*) "Australia/Victoria" , 0x035B02 },
- { (char*) "Australia/West" , 0x035E96 },
- { (char*) "Australia/Yancowinna" , 0x035FD4 },
- { (char*) "Brazil/Acre" , 0x03638D },
- { (char*) "Brazil/DeNoronha" , 0x03653B },
- { (char*) "Brazil/East" , 0x03672B },
- { (char*) "Brazil/West" , 0x036AEF },
- { (char*) "Canada/Atlantic" , 0x036C97 },
- { (char*) "Canada/Central" , 0x03732B },
- { (char*) "Canada/Eastern" , 0x037845 },
- { (char*) "Canada/Mountain" , 0x037F06 },
- { (char*) "Canada/Newfoundland" , 0x038433 },
- { (char*) "Canada/Pacific" , 0x038B95 },
- { (char*) "Canada/Saskatchewan" , 0x03922A },
- { (char*) "Canada/Yukon" , 0x0394B4 },
- { (char*) "CET" , 0x0398C5 },
- { (char*) "Chile/Continental" , 0x039D20 },
- { (char*) "Chile/EasterIsland" , 0x03A276 },
- { (char*) "CST6CDT" , 0x03A718 },
- { (char*) "Cuba" , 0x03ADFE },
- { (char*) "EET" , 0x03B267 },
- { (char*) "Egypt" , 0x03B51D },
- { (char*) "Eire" , 0x03BA46 },
- { (char*) "EST" , 0x03C02A },
- { (char*) "EST5EDT" , 0x03C0CB },
- { (char*) "Etc/GMT" , 0x03C7A7 },
- { (char*) "Etc/GMT+0" , 0x03C822 },
- { (char*) "Etc/GMT+1" , 0x03C89D },
- { (char*) "Etc/GMT+10" , 0x03C91A },
- { (char*) "Etc/GMT+11" , 0x03C998 },
- { (char*) "Etc/GMT+12" , 0x03CA16 },
- { (char*) "Etc/GMT+2" , 0x03CA94 },
- { (char*) "Etc/GMT+3" , 0x03CB11 },
- { (char*) "Etc/GMT+4" , 0x03CB8E },
- { (char*) "Etc/GMT+5" , 0x03CC0B },
- { (char*) "Etc/GMT+6" , 0x03CC88 },
- { (char*) "Etc/GMT+7" , 0x03CD05 },
- { (char*) "Etc/GMT+8" , 0x03CD82 },
- { (char*) "Etc/GMT+9" , 0x03CDFF },
- { (char*) "Etc/GMT-0" , 0x03CE7C },
- { (char*) "Etc/GMT-1" , 0x03CEF7 },
- { (char*) "Etc/GMT-10" , 0x03CF75 },
- { (char*) "Etc/GMT-11" , 0x03CFF4 },
- { (char*) "Etc/GMT-12" , 0x03D073 },
- { (char*) "Etc/GMT-13" , 0x03D0F2 },
- { (char*) "Etc/GMT-14" , 0x03D171 },
- { (char*) "Etc/GMT-2" , 0x03D1F0 },
- { (char*) "Etc/GMT-3" , 0x03D26E },
- { (char*) "Etc/GMT-4" , 0x03D2EC },
- { (char*) "Etc/GMT-5" , 0x03D36A },
- { (char*) "Etc/GMT-6" , 0x03D3E8 },
- { (char*) "Etc/GMT-7" , 0x03D466 },
- { (char*) "Etc/GMT-8" , 0x03D4E4 },
- { (char*) "Etc/GMT-9" , 0x03D562 },
- { (char*) "Etc/GMT0" , 0x03D5E0 },
- { (char*) "Etc/Greenwich" , 0x03D65B },
- { (char*) "Etc/UCT" , 0x03D6D6 },
- { (char*) "Etc/Universal" , 0x03D751 },
- { (char*) "Etc/UTC" , 0x03D7CC },
- { (char*) "Etc/Zulu" , 0x03D847 },
- { (char*) "Europe/Amsterdam" , 0x03D8C2 },
- { (char*) "Europe/Andorra" , 0x03DCFD },
- { (char*) "Europe/Astrakhan" , 0x03DE8E },
- { (char*) "Europe/Athens" , 0x03E182 },
- { (char*) "Europe/Belfast" , 0x03E438 },
- { (char*) "Europe/Belgrade" , 0x03EA83 },
- { (char*) "Europe/Berlin" , 0x03EC6D },
- { (char*) "Europe/Bratislava" , 0x03EF49 },
- { (char*) "Europe/Brussels" , 0x03F228 },
- { (char*) "Europe/Bucharest" , 0x03F683 },
- { (char*) "Europe/Budapest" , 0x03F924 },
- { (char*) "Europe/Busingen" , 0x03FC2E },
- { (char*) "Europe/Chisinau" , 0x03FE33 },
- { (char*) "Europe/Copenhagen" , 0x0402F6 },
- { (char*) "Europe/Dublin" , 0x040571 },
- { (char*) "Europe/Gibraltar" , 0x040B55 },
- { (char*) "Europe/Guernsey" , 0x041025 },
- { (char*) "Europe/Helsinki" , 0x04167C },
- { (char*) "Europe/Isle_of_Man" , 0x041869 },
- { (char*) "Europe/Istanbul" , 0x041EB4 },
- { (char*) "Europe/Jersey" , 0x042370 },
- { (char*) "Europe/Kaliningrad" , 0x0429C7 },
- { (char*) "Europe/Kiev" , 0x042D6F },
- { (char*) "Europe/Kirov" , 0x042FA9 },
- { (char*) "Europe/Kyiv" , 0x0432A2 },
- { (char*) "Europe/Lisbon" , 0x0434EB },
- { (char*) "Europe/Ljubljana" , 0x043AC1 },
- { (char*) "Europe/London" , 0x043CAB },
- { (char*) "Europe/Luxembourg" , 0x0442F6 },
- { (char*) "Europe/Madrid" , 0x044741 },
- { (char*) "Europe/Malta" , 0x044ADE },
- { (char*) "Europe/Mariehamn" , 0x044E8A },
- { (char*) "Europe/Minsk" , 0x045077 },
- { (char*) "Europe/Monaco" , 0x0453AB },
- { (char*) "Europe/Moscow" , 0x045811 },
- { (char*) "Europe/Nicosia" , 0x045BBD },
- { (char*) "Europe/Oslo" , 0x045E1E },
- { (char*) "Europe/Paris" , 0x0460CE },
- { (char*) "Europe/Podgorica" , 0x04652B },
- { (char*) "Europe/Prague" , 0x046715 },
- { (char*) "Europe/Riga" , 0x0469F4 },
- { (char*) "Europe/Rome" , 0x046CB6 },
- { (char*) "Europe/Samara" , 0x047075 },
- { (char*) "Europe/San_Marino" , 0x047376 },
- { (char*) "Europe/Sarajevo" , 0x047735 },
- { (char*) "Europe/Saratov" , 0x04791F },
- { (char*) "Europe/Simferopol" , 0x047C11 },
- { (char*) "Europe/Skopje" , 0x047F84 },
- { (char*) "Europe/Sofia" , 0x04816E },
- { (char*) "Europe/Stockholm" , 0x0483CA },
- { (char*) "Europe/Tallinn" , 0x0485C7 },
- { (char*) "Europe/Tirane" , 0x048876 },
- { (char*) "Europe/Tiraspol" , 0x048ADE },
- { (char*) "Europe/Ulyanovsk" , 0x048FA1 },
- { (char*) "Europe/Uzhgorod" , 0x0492B7 },
- { (char*) "Europe/Vaduz" , 0x0494F1 },
- { (char*) "Europe/Vatican" , 0x0496DB },
- { (char*) "Europe/Vienna" , 0x049A9A },
- { (char*) "Europe/Vilnius" , 0x049D38 },
- { (char*) "Europe/Volgograd" , 0x049FE8 },
- { (char*) "Europe/Warsaw" , 0x04A2F7 },
- { (char*) "Europe/Zagreb" , 0x04A69E },
- { (char*) "Europe/Zaporozhye" , 0x04A888 },
- { (char*) "Europe/Zurich" , 0x04AAC2 },
- { (char*) "Factory" , 0x04ACBF },
- { (char*) "GB" , 0x04AD3C },
- { (char*) "GB-Eire" , 0x04B387 },
- { (char*) "GMT" , 0x04B9D2 },
- { (char*) "GMT+0" , 0x04BA4D },
- { (char*) "GMT-0" , 0x04BAC8 },
- { (char*) "GMT0" , 0x04BB43 },
- { (char*) "Greenwich" , 0x04BBBE },
- { (char*) "Hongkong" , 0x04BC39 },
- { (char*) "HST" , 0x04BF4C },
- { (char*) "Iceland" , 0x04C035 },
- { (char*) "Indian/Antananarivo" , 0x04C0C3 },
- { (char*) "Indian/Chagos" , 0x04C16F },
- { (char*) "Indian/Christmas" , 0x04C213 },
- { (char*) "Indian/Cocos" , 0x04C2A4 },
- { (char*) "Indian/Comoro" , 0x04C33C },
- { (char*) "Indian/Kerguelen" , 0x04C3CB },
- { (char*) "Indian/Mahe" , 0x04C45C },
- { (char*) "Indian/Maldives" , 0x04C4ED },
- { (char*) "Indian/Mauritius" , 0x04C591 },
- { (char*) "Indian/Mayotte" , 0x04C650 },
- { (char*) "Indian/Reunion" , 0x04C6DF },
- { (char*) "Iran" , 0x04C770 },
- { (char*) "Israel" , 0x04CAA8 },
- { (char*) "Jamaica" , 0x04CEE6 },
- { (char*) "Japan" , 0x04D045 },
- { (char*) "Kwajalein" , 0x04D126 },
- { (char*) "Libya" , 0x04D20D },
- { (char*) "MET" , 0x04D3C8 },
- { (char*) "Mexico/BajaNorte" , 0x04D823 },
- { (char*) "Mexico/BajaSur" , 0x04DD86 },
- { (char*) "Mexico/General" , 0x04E044 },
- { (char*) "MST" , 0x04E355 },
- { (char*) "MST7MDT" , 0x04E451 },
- { (char*) "Navajo" , 0x04E86F },
- { (char*) "NZ" , 0x04EC8D },
- { (char*) "NZ-CHAT" , 0x04F0AC },
- { (char*) "Pacific/Apia" , 0x04F3E0 },
- { (char*) "Pacific/Auckland" , 0x04F583 },
- { (char*) "Pacific/Bougainville" , 0x04F9B5 },
- { (char*) "Pacific/Chatham" , 0x04FA96 },
- { (char*) "Pacific/Chuuk" , 0x04FDD9 },
- { (char*) "Pacific/Easter" , 0x04FEB7 },
- { (char*) "Pacific/Efate" , 0x050366 },
- { (char*) "Pacific/Enderbury" , 0x0504C8 },
- { (char*) "Pacific/Fakaofo" , 0x050580 },
- { (char*) "Pacific/Fiji" , 0x050625 },
- { (char*) "Pacific/Funafuti" , 0x0507BD },
- { (char*) "Pacific/Galapagos" , 0x05084F },
- { (char*) "Pacific/Gambier" , 0x05091B },
- { (char*) "Pacific/Guadalcanal" , 0x0509BA },
- { (char*) "Pacific/Guam" , 0x050A4C },
- { (char*) "Pacific/Honolulu" , 0x050BB6 },
- { (char*) "Pacific/Johnston" , 0x050CA5 },
- { (char*) "Pacific/Kanton" , 0x050D8E },
- { (char*) "Pacific/Kiritimati" , 0x050E55 },
- { (char*) "Pacific/Kosrae" , 0x050F1B },
- { (char*) "Pacific/Kwajalein" , 0x05101F },
- { (char*) "Pacific/Majuro" , 0x05110F },
- { (char*) "Pacific/Marquesas" , 0x05120D },
- { (char*) "Pacific/Midway" , 0x0512B5 },
- { (char*) "Pacific/Nauru" , 0x051378 },
- { (char*) "Pacific/Niue" , 0x05143B },
- { (char*) "Pacific/Norfolk" , 0x0514E1 },
- { (char*) "Pacific/Noumea" , 0x0515DA },
- { (char*) "Pacific/Pago_Pago" , 0x0516AC },
- { (char*) "Pacific/Palau" , 0x05174A },
- { (char*) "Pacific/Pitcairn" , 0x0517EA },
- { (char*) "Pacific/Pohnpei" , 0x05188F },
- { (char*) "Pacific/Ponape" , 0x05197F },
- { (char*) "Pacific/Port_Moresby" , 0x051A11 },
- { (char*) "Pacific/Rarotonga" , 0x051ACF },
- { (char*) "Pacific/Saipan" , 0x051C71 },
- { (char*) "Pacific/Samoa" , 0x051DD2 },
- { (char*) "Pacific/Tahiti" , 0x051E70 },
- { (char*) "Pacific/Tarawa" , 0x051F10 },
- { (char*) "Pacific/Tongatapu" , 0x051FB1 },
- { (char*) "Pacific/Truk" , 0x0520AA },
- { (char*) "Pacific/Wake" , 0x052150 },
- { (char*) "Pacific/Wallis" , 0x0521ED },
- { (char*) "Pacific/Yap" , 0x05227F },
- { (char*) "Poland" , 0x052325 },
- { (char*) "Portugal" , 0x0526CC },
- { (char*) "PRC" , 0x052C8F },
- { (char*) "PST8PDT" , 0x052E24 },
- { (char*) "ROC" , 0x05333E },
- { (char*) "ROK" , 0x053549 },
- { (char*) "Singapore" , 0x0536F4 },
- { (char*) "Turkey" , 0x053800 },
- { (char*) "UCT" , 0x053CBC },
- { (char*) "Universal" , 0x053D37 },
- { (char*) "US/Alaska" , 0x053DB2 },
- { (char*) "US/Aleutian" , 0x05418F },
- { (char*) "US/Arizona" , 0x054564 },
- { (char*) "US/Central" , 0x054660 },
- { (char*) "US/East-Indiana" , 0x054D46 },
- { (char*) "US/Eastern" , 0x054F65 },
- { (char*) "US/Hawaii" , 0x055641 },
- { (char*) "US/Indiana-Starke" , 0x05572A },
- { (char*) "US/Michigan" , 0x055B2E },
- { (char*) "US/Mountain" , 0x055EBD },
- { (char*) "US/Pacific" , 0x0562DB },
- { (char*) "US/Samoa" , 0x0567F5 },
- { (char*) "UTC" , 0x056893 },
- { (char*) "W-SU" , 0x05690E },
- { (char*) "WET" , 0x056CA6 },
- { (char*) "Zulu" , 0x057269 },
+ { (char*) "America/Iqaluit" , 0x011818 },
+ { (char*) "America/Jamaica" , 0x011B94 },
+ { (char*) "America/Jujuy" , 0x011CF3 },
+ { (char*) "America/Juneau" , 0x011FB1 },
+ { (char*) "America/Kentucky/Louisville" , 0x012397 },
+ { (char*) "America/Kentucky/Monticello" , 0x01289B },
+ { (char*) "America/Knox_IN" , 0x012C87 },
+ { (char*) "America/Kralendijk" , 0x01308B },
+ { (char*) "America/La_Paz" , 0x013148 },
+ { (char*) "America/Lima" , 0x0131FE },
+ { (char*) "America/Los_Angeles" , 0x013325 },
+ { (char*) "America/Louisville" , 0x013846 },
+ { (char*) "America/Lower_Princes" , 0x013D2C },
+ { (char*) "America/Maceio" , 0x013DE9 },
+ { (char*) "America/Managua" , 0x013FFB },
+ { (char*) "America/Manaus" , 0x01412E },
+ { (char*) "America/Marigot" , 0x0142E5 },
+ { (char*) "America/Martinique" , 0x0143A2 },
+ { (char*) "America/Matamoros" , 0x014460 },
+ { (char*) "America/Mazatlan" , 0x01464D },
+ { (char*) "America/Mendoza" , 0x01493D },
+ { (char*) "America/Menominee" , 0x014C0D },
+ { (char*) "America/Merida" , 0x014FCD },
+ { (char*) "America/Metlakatla" , 0x015278 },
+ { (char*) "America/Mexico_City" , 0x0154E5 },
+ { (char*) "America/Miquelon" , 0x015804 },
+ { (char*) "America/Moncton" , 0x015A36 },
+ { (char*) "America/Monterrey" , 0x01602F },
+ { (char*) "America/Montevideo" , 0x016336 },
+ { (char*) "America/Montreal" , 0x01670B },
+ { (char*) "America/Montserrat" , 0x016DCC },
+ { (char*) "America/Nassau" , 0x016E5A },
+ { (char*) "America/New_York" , 0x017254 },
+ { (char*) "America/Nipigon" , 0x017944 },
+ { (char*) "America/Nome" , 0x018005 },
+ { (char*) "America/Noronha" , 0x0183ED },
+ { (char*) "America/North_Dakota/Beulah" , 0x0185ED },
+ { (char*) "America/North_Dakota/Center" , 0x018A21 },
+ { (char*) "America/North_Dakota/New_Salem" , 0x018E20 },
+ { (char*) "America/Nuuk" , 0x019225 },
+ { (char*) "America/Ojinaga" , 0x019607 },
+ { (char*) "America/Panama" , 0x0198FD },
+ { (char*) "America/Pangnirtung" , 0x01999E },
+ { (char*) "America/Paramaribo" , 0x019D01 },
+ { (char*) "America/Phoenix" , 0x019DC8 },
+ { (char*) "America/Port-au-Prince" , 0x019EDC },
+ { (char*) "America/Port_of_Spain" , 0x01A11D },
+ { (char*) "America/Porto_Acre" , 0x01A1AB },
+ { (char*) "America/Porto_Velho" , 0x01A359 },
+ { (char*) "America/Puerto_Rico" , 0x01A4F7 },
+ { (char*) "America/Punta_Arenas" , 0x01A5B4 },
+ { (char*) "America/Rainy_River" , 0x01AA93 },
+ { (char*) "America/Rankin_Inlet" , 0x01B104 },
+ { (char*) "America/Recife" , 0x01B44D },
+ { (char*) "America/Regina" , 0x01B647 },
+ { (char*) "America/Resolute" , 0x01B8E6 },
+ { (char*) "America/Rio_Branco" , 0x01BC30 },
+ { (char*) "America/Rosario" , 0x01BDE2 },
+ { (char*) "America/Santa_Isabel" , 0x01C0B2 },
+ { (char*) "America/Santarem" , 0x01C615 },
+ { (char*) "America/Santiago" , 0x01C7C5 },
+ { (char*) "America/Santo_Domingo" , 0x01CD28 },
+ { (char*) "America/Sao_Paulo" , 0x01CE71 },
+ { (char*) "America/Scoresbysund" , 0x01D26B },
+ { (char*) "America/Shiprock" , 0x01D66C },
+ { (char*) "America/Sitka" , 0x01DA8A },
+ { (char*) "America/St_Barthelemy" , 0x01DE65 },
+ { (char*) "America/St_Johns" , 0x01DF22 },
+ { (char*) "America/St_Kitts" , 0x01E69F },
+ { (char*) "America/St_Lucia" , 0x01E72D },
+ { (char*) "America/St_Thomas" , 0x01E7CE },
+ { (char*) "America/St_Vincent" , 0x01E85C },
+ { (char*) "America/Swift_Current" , 0x01E8FD },
+ { (char*) "America/Tegucigalpa" , 0x01EA8B },
+ { (char*) "America/Thule" , 0x01EB59 },
+ { (char*) "America/Thunder_Bay" , 0x01ED3A },
+ { (char*) "America/Tijuana" , 0x01F3FB },
+ { (char*) "America/Toronto" , 0x01F96D },
+ { (char*) "America/Tortola" , 0x02004C },
+ { (char*) "America/Vancouver" , 0x0200DA },
+ { (char*) "America/Virgin" , 0x020784 },
+ { (char*) "America/Whitehorse" , 0x020841 },
+ { (char*) "America/Winnipeg" , 0x020C64 },
+ { (char*) "America/Yakutat" , 0x0212F3 },
+ { (char*) "America/Yellowknife" , 0x0216C1 },
+ { (char*) "Antarctica/Casey" , 0x021BEE },
+ { (char*) "Antarctica/Davis" , 0x021D1E },
+ { (char*) "Antarctica/DumontDUrville" , 0x021DF4 },
+ { (char*) "Antarctica/Macquarie" , 0x021EA8 },
+ { (char*) "Antarctica/Mawson" , 0x022294 },
+ { (char*) "Antarctica/McMurdo" , 0x02233E },
+ { (char*) "Antarctica/Palmer" , 0x022670 },
+ { (char*) "Antarctica/Rothera" , 0x0229F9 },
+ { (char*) "Antarctica/South_Pole" , 0x022A90 },
+ { (char*) "Antarctica/Syowa" , 0x022EAF },
+ { (char*) "Antarctica/Troll" , 0x022F45 },
+ { (char*) "Antarctica/Vostok" , 0x022FF4 },
+ { (char*) "Arctic/Longyearbyen" , 0x0230B0 },
+ { (char*) "Asia/Aden" , 0x02337D },
+ { (char*) "Asia/Almaty" , 0x02340E },
+ { (char*) "Asia/Amman" , 0x023696 },
+ { (char*) "Asia/Anadyr" , 0x023A42 },
+ { (char*) "Asia/Aqtau" , 0x023D48 },
+ { (char*) "Asia/Aqtobe" , 0x023FC7 },
+ { (char*) "Asia/Ashgabat" , 0x024247 },
+ { (char*) "Asia/Ashkhabad" , 0x0243CA },
+ { (char*) "Asia/Atyrau" , 0x02454D },
+ { (char*) "Asia/Baghdad" , 0x0247D6 },
+ { (char*) "Asia/Bahrain" , 0x024A58 },
+ { (char*) "Asia/Baku" , 0x024B11 },
+ { (char*) "Asia/Bangkok" , 0x024E05 },
+ { (char*) "Asia/Barnaul" , 0x024EA9 },
+ { (char*) "Asia/Beirut" , 0x0251B4 },
+ { (char*) "Asia/Bishkek" , 0x02549C },
+ { (char*) "Asia/Brunei" , 0x025712 },
+ { (char*) "Asia/Calcutta" , 0x0257B8 },
+ { (char*) "Asia/Chita" , 0x0258A0 },
+ { (char*) "Asia/Choibalsan" , 0x025BAE },
+ { (char*) "Asia/Chongqing" , 0x025E0C },
+ { (char*) "Asia/Chungking" , 0x025FA1 },
+ { (char*) "Asia/Colombo" , 0x026136 },
+ { (char*) "Asia/Dacca" , 0x026239 },
+ { (char*) "Asia/Damascus" , 0x02632C },
+ { (char*) "Asia/Dhaka" , 0x02680A },
+ { (char*) "Asia/Dili" , 0x0268FD },
+ { (char*) "Asia/Dubai" , 0x0269B3 },
+ { (char*) "Asia/Dushanbe" , 0x026A44 },
+ { (char*) "Asia/Famagusta" , 0x026BBE },
+ { (char*) "Asia/Gaza" , 0x026F85 },
+ { (char*) "Asia/Harbin" , 0x027B21 },
+ { (char*) "Asia/Hebron" , 0x027CB6 },
+ { (char*) "Asia/Ho_Chi_Minh" , 0x028863 },
+ { (char*) "Asia/Hong_Kong" , 0x028957 },
+ { (char*) "Asia/Hovd" , 0x028C6A },
+ { (char*) "Asia/Irkutsk" , 0x028EDE },
+ { (char*) "Asia/Istanbul" , 0x0291FC },
+ { (char*) "Asia/Jakarta" , 0x0296B8 },
+ { (char*) "Asia/Jayapura" , 0x0297C9 },
+ { (char*) "Asia/Jerusalem" , 0x0298B6 },
+ { (char*) "Asia/Kabul" , 0x029CF4 },
+ { (char*) "Asia/Kamchatka" , 0x029D9F },
+ { (char*) "Asia/Karachi" , 0x02A094 },
+ { (char*) "Asia/Kashgar" , 0x02A1AA },
+ { (char*) "Asia/Kathmandu" , 0x02A23B },
+ { (char*) "Asia/Katmandu" , 0x02A2E8 },
+ { (char*) "Asia/Khandyga" , 0x02A395 },
+ { (char*) "Asia/Kolkata" , 0x02A6C6 },
+ { (char*) "Asia/Krasnoyarsk" , 0x02A7AE },
+ { (char*) "Asia/Kuala_Lumpur" , 0x02AAB8 },
+ { (char*) "Asia/Kuching" , 0x02ABD8 },
+ { (char*) "Asia/Kuwait" , 0x02AD32 },
+ { (char*) "Asia/Macao" , 0x02ADC3 },
+ { (char*) "Asia/Macau" , 0x02B0E6 },
+ { (char*) "Asia/Magadan" , 0x02B409 },
+ { (char*) "Asia/Makassar" , 0x02B714 },
+ { (char*) "Asia/Manila" , 0x02B827 },
+ { (char*) "Asia/Muscat" , 0x02B945 },
+ { (char*) "Asia/Nicosia" , 0x02B9D6 },
+ { (char*) "Asia/Novokuznetsk" , 0x02BC45 },
+ { (char*) "Asia/Novosibirsk" , 0x02BF38 },
+ { (char*) "Asia/Omsk" , 0x02C249 },
+ { (char*) "Asia/Oral" , 0x02C547 },
+ { (char*) "Asia/Phnom_Penh" , 0x02C7D3 },
+ { (char*) "Asia/Pontianak" , 0x02C8A3 },
+ { (char*) "Asia/Pyongyang" , 0x02C9BC },
+ { (char*) "Asia/Qatar" , 0x02CA7F },
+ { (char*) "Asia/Qostanay" , 0x02CB23 },
+ { (char*) "Asia/Qyzylorda" , 0x02CDB9 },
+ { (char*) "Asia/Rangoon" , 0x02D052 },
+ { (char*) "Asia/Riyadh" , 0x02D119 },
+ { (char*) "Asia/Saigon" , 0x02D1AA },
+ { (char*) "Asia/Sakhalin" , 0x02D29E },
+ { (char*) "Asia/Samarkand" , 0x02D5B5 },
+ { (char*) "Asia/Seoul" , 0x02D740 },
+ { (char*) "Asia/Shanghai" , 0x02D8EB },
+ { (char*) "Asia/Singapore" , 0x02DA8C },
+ { (char*) "Asia/Srednekolymsk" , 0x02DB98 },
+ { (char*) "Asia/Taipei" , 0x02DEA8 },
+ { (char*) "Asia/Tashkent" , 0x02E0B3 },
+ { (char*) "Asia/Tbilisi" , 0x02E23E },
+ { (char*) "Asia/Tehran" , 0x02E4B6 },
+ { (char*) "Asia/Tel_Aviv" , 0x02E7EE },
+ { (char*) "Asia/Thimbu" , 0x02EC2C },
+ { (char*) "Asia/Thimphu" , 0x02ECD2 },
+ { (char*) "Asia/Tokyo" , 0x02ED78 },
+ { (char*) "Asia/Tomsk" , 0x02EE59 },
+ { (char*) "Asia/Ujung_Pandang" , 0x02F164 },
+ { (char*) "Asia/Ulaanbaatar" , 0x02F22E },
+ { (char*) "Asia/Ulan_Bator" , 0x02F49C },
+ { (char*) "Asia/Urumqi" , 0x02F6FA },
+ { (char*) "Asia/Ust-Nera" , 0x02F798 },
+ { (char*) "Asia/Vientiane" , 0x02FABB },
+ { (char*) "Asia/Vladivostok" , 0x02FB9D },
+ { (char*) "Asia/Yakutsk" , 0x02FEA2 },
+ { (char*) "Asia/Yangon" , 0x0301A6 },
+ { (char*) "Asia/Yekaterinburg" , 0x03026D },
+ { (char*) "Asia/Yerevan" , 0x03057F },
+ { (char*) "Atlantic/Azores" , 0x03084F },
+ { (char*) "Atlantic/Bermuda" , 0x030DDA },
+ { (char*) "Atlantic/Canary" , 0x0311E6 },
+ { (char*) "Atlantic/Cape_Verde" , 0x0313DE },
+ { (char*) "Atlantic/Faeroe" , 0x031499 },
+ { (char*) "Atlantic/Faroe" , 0x03165E },
+ { (char*) "Atlantic/Jan_Mayen" , 0x031823 },
+ { (char*) "Atlantic/Madeira" , 0x031AF0 },
+ { (char*) "Atlantic/Reykjavik" , 0x032067 },
+ { (char*) "Atlantic/South_Georgia" , 0x032364 },
+ { (char*) "Atlantic/St_Helena" , 0x0323F4 },
+ { (char*) "Atlantic/Stanley" , 0x032495 },
+ { (char*) "Australia/ACT" , 0x0327B6 },
+ { (char*) "Australia/Adelaide" , 0x032B4A },
+ { (char*) "Australia/Brisbane" , 0x032EFE },
+ { (char*) "Australia/Broken_Hill" , 0x033042 },
+ { (char*) "Australia/Canberra" , 0x033417 },
+ { (char*) "Australia/Currie" , 0x0337AB },
+ { (char*) "Australia/Darwin" , 0x033BA2 },
+ { (char*) "Australia/Eucla" , 0x033CAA },
+ { (char*) "Australia/Hobart" , 0x033E09 },
+ { (char*) "Australia/LHI" , 0x034208 },
+ { (char*) "Australia/Lindeman" , 0x0344C8 },
+ { (char*) "Australia/Lord_Howe" , 0x034638 },
+ { (char*) "Australia/Melbourne" , 0x034908 },
+ { (char*) "Australia/North" , 0x034CA4 },
+ { (char*) "Australia/NSW" , 0x034D9A },
+ { (char*) "Australia/Perth" , 0x03512E },
+ { (char*) "Australia/Queensland" , 0x03528A },
+ { (char*) "Australia/South" , 0x0353B7 },
+ { (char*) "Australia/Sydney" , 0x03575C },
+ { (char*) "Australia/Tasmania" , 0x035B0C },
+ { (char*) "Australia/Victoria" , 0x035F03 },
+ { (char*) "Australia/West" , 0x036297 },
+ { (char*) "Australia/Yancowinna" , 0x0363D5 },
+ { (char*) "Brazil/Acre" , 0x03678E },
+ { (char*) "Brazil/DeNoronha" , 0x03693C },
+ { (char*) "Brazil/East" , 0x036B2C },
+ { (char*) "Brazil/West" , 0x036EF0 },
+ { (char*) "Canada/Atlantic" , 0x037098 },
+ { (char*) "Canada/Central" , 0x03772C },
+ { (char*) "Canada/Eastern" , 0x037D9D },
+ { (char*) "Canada/Mountain" , 0x03845E },
+ { (char*) "Canada/Newfoundland" , 0x03898B },
+ { (char*) "Canada/Pacific" , 0x0390ED },
+ { (char*) "Canada/Saskatchewan" , 0x039782 },
+ { (char*) "Canada/Yukon" , 0x039A0C },
+ { (char*) "CET" , 0x039E1D },
+ { (char*) "Chile/Continental" , 0x03A278 },
+ { (char*) "Chile/EasterIsland" , 0x03A7CE },
+ { (char*) "CST6CDT" , 0x03AC70 },
+ { (char*) "Cuba" , 0x03B016 },
+ { (char*) "EET" , 0x03B47F },
+ { (char*) "Egypt" , 0x03B735 },
+ { (char*) "Eire" , 0x03BC5E },
+ { (char*) "EST" , 0x03C242 },
+ { (char*) "EST5EDT" , 0x03C2E3 },
+ { (char*) "Etc/GMT" , 0x03C689 },
+ { (char*) "Etc/GMT+0" , 0x03C704 },
+ { (char*) "Etc/GMT+1" , 0x03C77F },
+ { (char*) "Etc/GMT+10" , 0x03C7FC },
+ { (char*) "Etc/GMT+11" , 0x03C87A },
+ { (char*) "Etc/GMT+12" , 0x03C8F8 },
+ { (char*) "Etc/GMT+2" , 0x03C976 },
+ { (char*) "Etc/GMT+3" , 0x03C9F3 },
+ { (char*) "Etc/GMT+4" , 0x03CA70 },
+ { (char*) "Etc/GMT+5" , 0x03CAED },
+ { (char*) "Etc/GMT+6" , 0x03CB6A },
+ { (char*) "Etc/GMT+7" , 0x03CBE7 },
+ { (char*) "Etc/GMT+8" , 0x03CC64 },
+ { (char*) "Etc/GMT+9" , 0x03CCE1 },
+ { (char*) "Etc/GMT-0" , 0x03CD5E },
+ { (char*) "Etc/GMT-1" , 0x03CDD9 },
+ { (char*) "Etc/GMT-10" , 0x03CE57 },
+ { (char*) "Etc/GMT-11" , 0x03CED6 },
+ { (char*) "Etc/GMT-12" , 0x03CF55 },
+ { (char*) "Etc/GMT-13" , 0x03CFD4 },
+ { (char*) "Etc/GMT-14" , 0x03D053 },
+ { (char*) "Etc/GMT-2" , 0x03D0D2 },
+ { (char*) "Etc/GMT-3" , 0x03D150 },
+ { (char*) "Etc/GMT-4" , 0x03D1CE },
+ { (char*) "Etc/GMT-5" , 0x03D24C },
+ { (char*) "Etc/GMT-6" , 0x03D2CA },
+ { (char*) "Etc/GMT-7" , 0x03D348 },
+ { (char*) "Etc/GMT-8" , 0x03D3C6 },
+ { (char*) "Etc/GMT-9" , 0x03D444 },
+ { (char*) "Etc/GMT0" , 0x03D4C2 },
+ { (char*) "Etc/Greenwich" , 0x03D53D },
+ { (char*) "Etc/UCT" , 0x03D5B8 },
+ { (char*) "Etc/Universal" , 0x03D633 },
+ { (char*) "Etc/UTC" , 0x03D6AE },
+ { (char*) "Etc/Zulu" , 0x03D729 },
+ { (char*) "Europe/Amsterdam" , 0x03D7A4 },
+ { (char*) "Europe/Andorra" , 0x03DBDF },
+ { (char*) "Europe/Astrakhan" , 0x03DD70 },
+ { (char*) "Europe/Athens" , 0x03E064 },
+ { (char*) "Europe/Belfast" , 0x03E31A },
+ { (char*) "Europe/Belgrade" , 0x03E965 },
+ { (char*) "Europe/Berlin" , 0x03EB4F },
+ { (char*) "Europe/Bratislava" , 0x03EE2B },
+ { (char*) "Europe/Brussels" , 0x03F10A },
+ { (char*) "Europe/Bucharest" , 0x03F565 },
+ { (char*) "Europe/Budapest" , 0x03F806 },
+ { (char*) "Europe/Busingen" , 0x03FB10 },
+ { (char*) "Europe/Chisinau" , 0x03FD15 },
+ { (char*) "Europe/Copenhagen" , 0x0401D8 },
+ { (char*) "Europe/Dublin" , 0x040453 },
+ { (char*) "Europe/Gibraltar" , 0x040A37 },
+ { (char*) "Europe/Guernsey" , 0x040F07 },
+ { (char*) "Europe/Helsinki" , 0x04155E },
+ { (char*) "Europe/Isle_of_Man" , 0x04174B },
+ { (char*) "Europe/Istanbul" , 0x041D96 },
+ { (char*) "Europe/Jersey" , 0x042252 },
+ { (char*) "Europe/Kaliningrad" , 0x0428A9 },
+ { (char*) "Europe/Kiev" , 0x042C51 },
+ { (char*) "Europe/Kirov" , 0x042E8B },
+ { (char*) "Europe/Kyiv" , 0x043184 },
+ { (char*) "Europe/Lisbon" , 0x0433CD },
+ { (char*) "Europe/Ljubljana" , 0x0439A3 },
+ { (char*) "Europe/London" , 0x043B8D },
+ { (char*) "Europe/Luxembourg" , 0x0441D8 },
+ { (char*) "Europe/Madrid" , 0x044623 },
+ { (char*) "Europe/Malta" , 0x0449C0 },
+ { (char*) "Europe/Mariehamn" , 0x044D6C },
+ { (char*) "Europe/Minsk" , 0x044F59 },
+ { (char*) "Europe/Monaco" , 0x04528D },
+ { (char*) "Europe/Moscow" , 0x0456F3 },
+ { (char*) "Europe/Nicosia" , 0x045A9F },
+ { (char*) "Europe/Oslo" , 0x045D00 },
+ { (char*) "Europe/Paris" , 0x045FB0 },
+ { (char*) "Europe/Podgorica" , 0x04640D },
+ { (char*) "Europe/Prague" , 0x0465F7 },
+ { (char*) "Europe/Riga" , 0x0468D6 },
+ { (char*) "Europe/Rome" , 0x046B98 },
+ { (char*) "Europe/Samara" , 0x046F57 },
+ { (char*) "Europe/San_Marino" , 0x047258 },
+ { (char*) "Europe/Sarajevo" , 0x047617 },
+ { (char*) "Europe/Saratov" , 0x047801 },
+ { (char*) "Europe/Simferopol" , 0x047AF3 },
+ { (char*) "Europe/Skopje" , 0x047E66 },
+ { (char*) "Europe/Sofia" , 0x048050 },
+ { (char*) "Europe/Stockholm" , 0x0482AC },
+ { (char*) "Europe/Tallinn" , 0x0484A9 },
+ { (char*) "Europe/Tirane" , 0x048758 },
+ { (char*) "Europe/Tiraspol" , 0x0489C0 },
+ { (char*) "Europe/Ulyanovsk" , 0x048E83 },
+ { (char*) "Europe/Uzhgorod" , 0x049199 },
+ { (char*) "Europe/Vaduz" , 0x0493D3 },
+ { (char*) "Europe/Vatican" , 0x0495BD },
+ { (char*) "Europe/Vienna" , 0x04997C },
+ { (char*) "Europe/Vilnius" , 0x049C1A },
+ { (char*) "Europe/Volgograd" , 0x049ECA },
+ { (char*) "Europe/Warsaw" , 0x04A1D9 },
+ { (char*) "Europe/Zagreb" , 0x04A580 },
+ { (char*) "Europe/Zaporozhye" , 0x04A76A },
+ { (char*) "Europe/Zurich" , 0x04A9A4 },
+ { (char*) "Factory" , 0x04ABA1 },
+ { (char*) "GB" , 0x04AC1E },
+ { (char*) "GB-Eire" , 0x04B269 },
+ { (char*) "GMT" , 0x04B8B4 },
+ { (char*) "GMT+0" , 0x04B92F },
+ { (char*) "GMT-0" , 0x04B9AA },
+ { (char*) "GMT0" , 0x04BA25 },
+ { (char*) "Greenwich" , 0x04BAA0 },
+ { (char*) "Hongkong" , 0x04BB1B },
+ { (char*) "HST" , 0x04BE2E },
+ { (char*) "Iceland" , 0x04BF17 },
+ { (char*) "Indian/Antananarivo" , 0x04BFA5 },
+ { (char*) "Indian/Chagos" , 0x04C051 },
+ { (char*) "Indian/Christmas" , 0x04C0F5 },
+ { (char*) "Indian/Cocos" , 0x04C186 },
+ { (char*) "Indian/Comoro" , 0x04C21E },
+ { (char*) "Indian/Kerguelen" , 0x04C2AD },
+ { (char*) "Indian/Mahe" , 0x04C33E },
+ { (char*) "Indian/Maldives" , 0x04C3CF },
+ { (char*) "Indian/Mauritius" , 0x04C473 },
+ { (char*) "Indian/Mayotte" , 0x04C532 },
+ { (char*) "Indian/Reunion" , 0x04C5C1 },
+ { (char*) "Iran" , 0x04C652 },
+ { (char*) "Israel" , 0x04C98A },
+ { (char*) "Jamaica" , 0x04CDC8 },
+ { (char*) "Japan" , 0x04CF27 },
+ { (char*) "Kwajalein" , 0x04D008 },
+ { (char*) "Libya" , 0x04D0EF },
+ { (char*) "MET" , 0x04D2AA },
+ { (char*) "Mexico/BajaNorte" , 0x04D705 },
+ { (char*) "Mexico/BajaSur" , 0x04DC68 },
+ { (char*) "Mexico/General" , 0x04DF26 },
+ { (char*) "MST" , 0x04E237 },
+ { (char*) "MST7MDT" , 0x04E333 },
+ { (char*) "Navajo" , 0x04E6D9 },
+ { (char*) "NZ" , 0x04EAF7 },
+ { (char*) "NZ-CHAT" , 0x04EF16 },
+ { (char*) "Pacific/Apia" , 0x04F24A },
+ { (char*) "Pacific/Auckland" , 0x04F3ED },
+ { (char*) "Pacific/Bougainville" , 0x04F81F },
+ { (char*) "Pacific/Chatham" , 0x04F900 },
+ { (char*) "Pacific/Chuuk" , 0x04FC43 },
+ { (char*) "Pacific/Easter" , 0x04FD21 },
+ { (char*) "Pacific/Efate" , 0x0501D0 },
+ { (char*) "Pacific/Enderbury" , 0x050332 },
+ { (char*) "Pacific/Fakaofo" , 0x0503EA },
+ { (char*) "Pacific/Fiji" , 0x05048F },
+ { (char*) "Pacific/Funafuti" , 0x050627 },
+ { (char*) "Pacific/Galapagos" , 0x0506B9 },
+ { (char*) "Pacific/Gambier" , 0x050785 },
+ { (char*) "Pacific/Guadalcanal" , 0x050824 },
+ { (char*) "Pacific/Guam" , 0x0508B6 },
+ { (char*) "Pacific/Honolulu" , 0x050A20 },
+ { (char*) "Pacific/Johnston" , 0x050B0F },
+ { (char*) "Pacific/Kanton" , 0x050BF8 },
+ { (char*) "Pacific/Kiritimati" , 0x050CBF },
+ { (char*) "Pacific/Kosrae" , 0x050D85 },
+ { (char*) "Pacific/Kwajalein" , 0x050E89 },
+ { (char*) "Pacific/Majuro" , 0x050F79 },
+ { (char*) "Pacific/Marquesas" , 0x051077 },
+ { (char*) "Pacific/Midway" , 0x05111F },
+ { (char*) "Pacific/Nauru" , 0x0511E2 },
+ { (char*) "Pacific/Niue" , 0x0512A5 },
+ { (char*) "Pacific/Norfolk" , 0x05134B },
+ { (char*) "Pacific/Noumea" , 0x051444 },
+ { (char*) "Pacific/Pago_Pago" , 0x051516 },
+ { (char*) "Pacific/Palau" , 0x0515B4 },
+ { (char*) "Pacific/Pitcairn" , 0x051654 },
+ { (char*) "Pacific/Pohnpei" , 0x0516F9 },
+ { (char*) "Pacific/Ponape" , 0x0517E9 },
+ { (char*) "Pacific/Port_Moresby" , 0x05187B },
+ { (char*) "Pacific/Rarotonga" , 0x051939 },
+ { (char*) "Pacific/Saipan" , 0x051ADB },
+ { (char*) "Pacific/Samoa" , 0x051C3C },
+ { (char*) "Pacific/Tahiti" , 0x051CDA },
+ { (char*) "Pacific/Tarawa" , 0x051D7A },
+ { (char*) "Pacific/Tongatapu" , 0x051E1B },
+ { (char*) "Pacific/Truk" , 0x051F14 },
+ { (char*) "Pacific/Wake" , 0x051FBA },
+ { (char*) "Pacific/Wallis" , 0x052057 },
+ { (char*) "Pacific/Yap" , 0x0520E9 },
+ { (char*) "Poland" , 0x05218F },
+ { (char*) "Portugal" , 0x052536 },
+ { (char*) "PRC" , 0x052AF9 },
+ { (char*) "PST8PDT" , 0x052C8E },
+ { (char*) "ROC" , 0x053034 },
+ { (char*) "ROK" , 0x05323F },
+ { (char*) "Singapore" , 0x0533EA },
+ { (char*) "Turkey" , 0x0534F6 },
+ { (char*) "UCT" , 0x0539B2 },
+ { (char*) "Universal" , 0x053A2D },
+ { (char*) "US/Alaska" , 0x053AA8 },
+ { (char*) "US/Aleutian" , 0x053E85 },
+ { (char*) "US/Arizona" , 0x05425A },
+ { (char*) "US/Central" , 0x054356 },
+ { (char*) "US/East-Indiana" , 0x054A3C },
+ { (char*) "US/Eastern" , 0x054C5B },
+ { (char*) "US/Hawaii" , 0x055337 },
+ { (char*) "US/Indiana-Starke" , 0x055420 },
+ { (char*) "US/Michigan" , 0x055824 },
+ { (char*) "US/Mountain" , 0x055BB3 },
+ { (char*) "US/Pacific" , 0x055FD1 },
+ { (char*) "US/Samoa" , 0x0564EB },
+ { (char*) "UTC" , 0x056589 },
+ { (char*) "W-SU" , 0x056604 },
+ { (char*) "WET" , 0x05699C },
+ { (char*) "Zulu" , 0x056F5F },
};
-const unsigned char timelib_timezone_db_data_builtin[357092] = {
+const unsigned char timelib_timezone_db_data_builtin[356314] = {
/* Africa/Abidjan */
0x50, 0x48, 0x50, 0x32, 0x01, 0x43, 0x49, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
@@ -2905,7 +2905,7 @@
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x10, 0xFF,
0xFF, 0xFF, 0xFF, 0x5E, 0x9C, 0x34, 0xF0, 0xFF, 0xFF, 0xFF, 0xFF, 0x98, 0x58, 0x55, 0x70, 0x00,
-0x00, 0x00, 0x00, 0x2A, 0x03, 0x73, 0x50, 0x00, 0x00, 0x00, 0x00, 0x2B, 0x74, 0x89, 0x40, 0x01,
+0x00, 0x00, 0x00, 0x2A, 0x02, 0x21, 0xD0, 0x00, 0x00, 0x00, 0x00, 0x2B, 0x74, 0x89, 0x40, 0x01,
0x03, 0x02, 0x03, 0xFF, 0xFF, 0xBA, 0x90, 0x00, 0x00, 0xFF, 0xFF, 0xBA, 0x90, 0x00, 0x04, 0xFF,
0xFF, 0xC7, 0xC0, 0x01, 0x08, 0xFF, 0xFF, 0xB9, 0xB0, 0x00, 0x0C, 0x4C, 0x4D, 0x54, 0x00, 0x42,
0x4D, 0x54, 0x00, 0x2D, 0x30, 0x34, 0x00, 0x2D, 0x30, 0x35, 0x00, 0x0A, 0x3C, 0x2D, 0x30, 0x35,
@@ -5367,7 +5367,7 @@
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x54, 0x5A, 0x69, 0x66, 0x32, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x48, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x14, 0xFF,
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x6F, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x18, 0xFF,
0xFF, 0xFF, 0xFF, 0xE0, 0x06, 0x4E, 0x80, 0x00, 0x00, 0x00, 0x00, 0x04, 0x61, 0x27, 0xA0, 0x00,
0x00, 0x00, 0x00, 0x05, 0x51, 0x0A, 0x90, 0x00, 0x00, 0x00, 0x00, 0x06, 0x41, 0x09, 0xA0, 0x00,
0x00, 0x00, 0x00, 0x07, 0x30, 0xEC, 0x90, 0x00, 0x00, 0x00, 0x00, 0x08, 0x20, 0xEB, 0xA0, 0x00,
@@ -5403,19 +5403,40 @@
0x00, 0x00, 0x00, 0x3F, 0x9B, 0x7F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x6F, 0xCE, 0x90, 0x00,
0x00, 0x00, 0x00, 0x41, 0x84, 0x9B, 0x80, 0x00, 0x00, 0x00, 0x00, 0x42, 0x4F, 0xB0, 0x90, 0x00,
0x00, 0x00, 0x00, 0x43, 0x64, 0x7D, 0x80, 0x00, 0x00, 0x00, 0x00, 0x44, 0x2F, 0x92, 0x90, 0x00,
-0x00, 0x00, 0x00, 0x45, 0x44, 0x5F, 0x80, 0x00, 0x00, 0x00, 0x00, 0x45, 0xF3, 0xC5, 0x10, 0x02,
-0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x04, 0x03,
+0x00, 0x00, 0x00, 0x45, 0x44, 0x5F, 0x80, 0x00, 0x00, 0x00, 0x00, 0x45, 0xF3, 0xC5, 0x10, 0x00,
+0x00, 0x00, 0x00, 0x47, 0x2D, 0x7C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x47, 0xD3, 0xA7, 0x10, 0x00,
+0x00, 0x00, 0x00, 0x49, 0x0D, 0x5E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x49, 0xB3, 0x89, 0x10, 0x00,
+0x00, 0x00, 0x00, 0x4A, 0xED, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x4B, 0x9C, 0xA5, 0x90, 0x00,
+0x00, 0x00, 0x00, 0x4C, 0xD6, 0x5C, 0x80, 0x00, 0x00, 0x00, 0x00, 0x4D, 0x7C, 0x87, 0x90, 0x00,
+0x00, 0x00, 0x00, 0x4E, 0xB6, 0x3E, 0x80, 0x00, 0x00, 0x00, 0x00, 0x4F, 0x5C, 0x69, 0x90, 0x00,
+0x00, 0x00, 0x00, 0x50, 0x96, 0x20, 0x80, 0x00, 0x00, 0x00, 0x00, 0x51, 0x3C, 0x4B, 0x90, 0x00,
+0x00, 0x00, 0x00, 0x52, 0x76, 0x02, 0x80, 0x00, 0x00, 0x00, 0x00, 0x53, 0x1C, 0x2D, 0x90, 0x00,
+0x00, 0x00, 0x00, 0x54, 0x55, 0xE4, 0x80, 0x00, 0x00, 0x00, 0x00, 0x54, 0xFC, 0x0F, 0x90, 0x00,
+0x00, 0x00, 0x00, 0x56, 0x35, 0xC6, 0x80, 0x00, 0x00, 0x00, 0x00, 0x56, 0xE5, 0x2C, 0x10, 0x00,
+0x00, 0x00, 0x00, 0x58, 0x1E, 0xE3, 0x00, 0x00, 0x00, 0x00, 0x00, 0x58, 0xC5, 0x0E, 0x10, 0x00,
+0x00, 0x00, 0x00, 0x59, 0xFE, 0xC5, 0x00, 0x00, 0x00, 0x00, 0x00, 0x5A, 0xA4, 0xF0, 0x10, 0x00,
+0x00, 0x00, 0x00, 0x5B, 0xDE, 0xA7, 0x00, 0x00, 0x00, 0x00, 0x00, 0x5C, 0x84, 0xD2, 0x10, 0x00,
+0x00, 0x00, 0x00, 0x5D, 0xBE, 0x89, 0x00, 0x00, 0x00, 0x00, 0x00, 0x5E, 0x64, 0xB4, 0x10, 0x00,
+0x00, 0x00, 0x00, 0x5F, 0x9E, 0x6B, 0x00, 0x00, 0x00, 0x00, 0x00, 0x60, 0x4D, 0xD0, 0x90, 0x00,
+0x00, 0x00, 0x00, 0x61, 0x87, 0x87, 0x80, 0x00, 0x00, 0x00, 0x00, 0x62, 0x2D, 0xB2, 0x90, 0x00,
+0x00, 0x00, 0x00, 0x63, 0x67, 0x69, 0x80, 0x00, 0x00, 0x00, 0x00, 0x64, 0x0D, 0x94, 0x90, 0x00,
+0x00, 0x00, 0x00, 0x65, 0x47, 0x4B, 0x80, 0x00, 0x00, 0x00, 0x00, 0x65, 0xED, 0x76, 0x90, 0x00,
+0x00, 0x00, 0x00, 0x67, 0x27, 0x2D, 0x80, 0x00, 0x00, 0x00, 0x00, 0x67, 0xCD, 0x58, 0x90, 0x00,
+0x00, 0x00, 0x00, 0x69, 0x07, 0x0F, 0x80, 0x00, 0x00, 0x00, 0x00, 0x69, 0xAD, 0x3A, 0x90, 0x00,
+0x00, 0x00, 0x00, 0x6A, 0xE6, 0xF1, 0x80, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02,
+0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03,
0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03,
0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03,
0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03,
-0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x9D,
-0x90, 0x01, 0x04, 0xFF, 0xFF, 0x8F, 0x80, 0x00, 0x08, 0xFF, 0xFF, 0x9D, 0x90, 0x00, 0x0C, 0xFF,
-0xFF, 0xAB, 0xA0, 0x01, 0x10, 0x2D, 0x30, 0x30, 0x00, 0x50, 0x44, 0x54, 0x00, 0x50, 0x53, 0x54,
-0x00, 0x4D, 0x53, 0x54, 0x00, 0x4D, 0x44, 0x54, 0x00, 0x0A, 0x4D, 0x53, 0x54, 0x37, 0x4D, 0x44,
-0x54, 0x2C, 0x4D, 0x33, 0x2E, 0x32, 0x2E, 0x30, 0x2C, 0x4D, 0x31, 0x31, 0x2E, 0x31, 0x2E, 0x30,
-0x0A, 0x00, 0xF1, 0x9F, 0x5C, 0x00, 0x46, 0x9F, 0x6D, 0x00, 0x00, 0x00, 0x14, 0x4D, 0x6F, 0x75,
-0x6E, 0x74, 0x61, 0x69, 0x6E, 0x20, 0x2D, 0x20, 0x4E, 0x54, 0x20, 0x28, 0x77, 0x65, 0x73, 0x74,
-0x29,
+0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03,
+0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03,
+0x04, 0x03, 0x04, 0x03, 0x04, 0x05, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x9D, 0x90,
+0x01, 0x04, 0xFF, 0xFF, 0x8F, 0x80, 0x00, 0x08, 0xFF, 0xFF, 0x9D, 0x90, 0x00, 0x0C, 0xFF, 0xFF,
+0xAB, 0xA0, 0x01, 0x10, 0xFF, 0xFF, 0xAB, 0xA0, 0x00, 0x14, 0x2D, 0x30, 0x30, 0x00, 0x50, 0x44,
+0x54, 0x00, 0x50, 0x53, 0x54, 0x00, 0x4D, 0x53, 0x54, 0x00, 0x4D, 0x44, 0x54, 0x00, 0x43, 0x53,
+0x54, 0x00, 0x0A, 0x43, 0x53, 0x54, 0x36, 0x0A, 0x00, 0xF1, 0x9F, 0x5C, 0x00, 0x46, 0x9F, 0x6D,
+0x00, 0x00, 0x00, 0x0F, 0x43, 0x53, 0x54, 0x20, 0x2D, 0x20, 0x4E, 0x54, 0x20, 0x28, 0x77, 0x65,
+0x73, 0x74, 0x29,
/* America/Iqaluit */
0x50, 0x48, 0x50, 0x32, 0x01, 0x43, 0x41, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
@@ -7896,7 +7917,7 @@
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x54, 0x5A, 0x69, 0x66, 0x32, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7D, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x14, 0xFF,
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xA4, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x18, 0xFF,
0xFF, 0xFF, 0xFF, 0x64, 0xE4, 0xB0, 0x94, 0xFF, 0xFF, 0xFF, 0xFF, 0x9B, 0x01, 0xFB, 0xE0, 0xFF,
0xFF, 0xFF, 0xFF, 0x9B, 0xC3, 0xBA, 0x50, 0xFF, 0xFF, 0xFF, 0xFF, 0x9E, 0xB8, 0xA1, 0x80, 0xFF,
0xFF, 0xFF, 0xFF, 0x9F, 0xBA, 0xF9, 0x70, 0xFF, 0xFF, 0xFF, 0xFF, 0xC2, 0xA0, 0x3B, 0x80, 0xFF,
@@ -7959,7 +7980,27 @@
0x00, 0x00, 0x00, 0x40, 0x6F, 0xC0, 0x80, 0x00, 0x00, 0x00, 0x00, 0x41, 0x84, 0x9B, 0x80, 0x00,
0x00, 0x00, 0x00, 0x42, 0x4F, 0xA2, 0x80, 0x00, 0x00, 0x00, 0x00, 0x43, 0x64, 0x7D, 0x80, 0x00,
0x00, 0x00, 0x00, 0x44, 0x2F, 0x84, 0x80, 0x00, 0x00, 0x00, 0x00, 0x45, 0x44, 0x51, 0x70, 0x00,
-0x00, 0x00, 0x00, 0x45, 0xF3, 0xB7, 0x00, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x03, 0x04,
+0x00, 0x00, 0x00, 0x45, 0xF3, 0xB7, 0x00, 0x00, 0x00, 0x00, 0x00, 0x47, 0x2D, 0x6D, 0xF0, 0x00,
+0x00, 0x00, 0x00, 0x47, 0xD3, 0x99, 0x00, 0x00, 0x00, 0x00, 0x00, 0x49, 0x0D, 0x4F, 0xF0, 0x00,
+0x00, 0x00, 0x00, 0x49, 0xB3, 0x7B, 0x00, 0x00, 0x00, 0x00, 0x00, 0x4A, 0xED, 0x31, 0xF0, 0x00,
+0x00, 0x00, 0x00, 0x4B, 0x9C, 0x97, 0x80, 0x00, 0x00, 0x00, 0x00, 0x4C, 0xD6, 0x4E, 0x70, 0x00,
+0x00, 0x00, 0x00, 0x4D, 0x7C, 0x79, 0x80, 0x00, 0x00, 0x00, 0x00, 0x4E, 0xB6, 0x30, 0x70, 0x00,
+0x00, 0x00, 0x00, 0x4F, 0x5C, 0x5B, 0x80, 0x00, 0x00, 0x00, 0x00, 0x50, 0x96, 0x12, 0x70, 0x00,
+0x00, 0x00, 0x00, 0x51, 0x3C, 0x3D, 0x80, 0x00, 0x00, 0x00, 0x00, 0x52, 0x75, 0xF4, 0x70, 0x00,
+0x00, 0x00, 0x00, 0x53, 0x1C, 0x1F, 0x80, 0x00, 0x00, 0x00, 0x00, 0x54, 0x55, 0xD6, 0x70, 0x00,
+0x00, 0x00, 0x00, 0x54, 0xFC, 0x01, 0x80, 0x00, 0x00, 0x00, 0x00, 0x56, 0x35, 0xB8, 0x70, 0x00,
+0x00, 0x00, 0x00, 0x56, 0xE5, 0x1E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x58, 0x1E, 0xD4, 0xF0, 0x00,
+0x00, 0x00, 0x00, 0x58, 0xC5, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x59, 0xFE, 0xB6, 0xF0, 0x00,
+0x00, 0x00, 0x00, 0x5A, 0xA4, 0xE2, 0x00, 0x00, 0x00, 0x00, 0x00, 0x5B, 0xDE, 0x98, 0xF0, 0x00,
+0x00, 0x00, 0x00, 0x5C, 0x84, 0xC4, 0x00, 0x00, 0x00, 0x00, 0x00, 0x5D, 0xBE, 0x7A, 0xF0, 0x00,
+0x00, 0x00, 0x00, 0x5E, 0x64, 0xA6, 0x00, 0x00, 0x00, 0x00, 0x00, 0x5F, 0x9E, 0x5C, 0xF0, 0x00,
+0x00, 0x00, 0x00, 0x60, 0x4D, 0xC2, 0x80, 0x00, 0x00, 0x00, 0x00, 0x61, 0x87, 0x79, 0x70, 0x00,
+0x00, 0x00, 0x00, 0x62, 0x2D, 0xA4, 0x80, 0x00, 0x00, 0x00, 0x00, 0x63, 0x67, 0x5B, 0x70, 0x00,
+0x00, 0x00, 0x00, 0x64, 0x0D, 0x86, 0x80, 0x00, 0x00, 0x00, 0x00, 0x65, 0x47, 0x3D, 0x70, 0x00,
+0x00, 0x00, 0x00, 0x65, 0xED, 0x68, 0x80, 0x00, 0x00, 0x00, 0x00, 0x67, 0x27, 0x1F, 0x70, 0x00,
+0x00, 0x00, 0x00, 0x67, 0xCD, 0x4A, 0x80, 0x00, 0x00, 0x00, 0x00, 0x69, 0x07, 0x01, 0x70, 0x00,
+0x00, 0x00, 0x00, 0x69, 0xAD, 0x2C, 0x80, 0x00, 0x00, 0x00, 0x00, 0x6A, 0xE6, 0xE3, 0x70, 0x02,
+0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x03, 0x04, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01,
0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01,
0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01,
0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01,
@@ -7967,12 +8008,14 @@
0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01,
0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01,
0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01,
-0x02, 0x01, 0x02, 0x01, 0xFF, 0xFF, 0xA4, 0xEC, 0x00, 0x00, 0xFF, 0xFF, 0xB9, 0xB0, 0x01, 0x04,
-0xFF, 0xFF, 0xAB, 0xA0, 0x00, 0x08, 0xFF, 0xFF, 0xB9, 0xB0, 0x01, 0x0C, 0xFF, 0xFF, 0xB9, 0xB0,
-0x01, 0x10, 0x4C, 0x4D, 0x54, 0x00, 0x43, 0x44, 0x54, 0x00, 0x43, 0x53, 0x54, 0x00, 0x43, 0x57,
-0x54, 0x00, 0x43, 0x50, 0x54, 0x00, 0x0A, 0x43, 0x53, 0x54, 0x36, 0x43, 0x44, 0x54, 0x2C, 0x4D,
-0x33, 0x2E, 0x32, 0x2E, 0x30, 0x2C, 0x4D, 0x31, 0x31, 0x2E, 0x31, 0x2E, 0x30, 0x0A, 0x00, 0x00,
-0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01,
+0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01,
+0x02, 0x01, 0x05, 0xFF, 0xFF, 0xA4, 0xEC, 0x00, 0x00, 0xFF, 0xFF, 0xB9, 0xB0, 0x01, 0x04, 0xFF,
+0xFF, 0xAB, 0xA0, 0x00, 0x08, 0xFF, 0xFF, 0xB9, 0xB0, 0x01, 0x0C, 0xFF, 0xFF, 0xB9, 0xB0, 0x01,
+0x10, 0xFF, 0xFF, 0xB9, 0xB0, 0x00, 0x14, 0x4C, 0x4D, 0x54, 0x00, 0x43, 0x44, 0x54, 0x00, 0x43,
+0x53, 0x54, 0x00, 0x43, 0x57, 0x54, 0x00, 0x43, 0x50, 0x54, 0x00, 0x45, 0x53, 0x54, 0x00, 0x0A,
+0x45, 0x53, 0x54, 0x35, 0x0A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x00,
/* America/Rankin_Inlet */
0x50, 0x48, 0x50, 0x32, 0x01, 0x43, 0x41, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
@@ -9517,7 +9560,7 @@
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x54, 0x5A, 0x69, 0x66, 0x32, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7D, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x14, 0xFF,
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xA4, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x18, 0xFF,
0xFF, 0xFF, 0xFF, 0x64, 0xE4, 0xB0, 0x94, 0xFF, 0xFF, 0xFF, 0xFF, 0x9B, 0x01, 0xFB, 0xE0, 0xFF,
0xFF, 0xFF, 0xFF, 0x9B, 0xC3, 0xBA, 0x50, 0xFF, 0xFF, 0xFF, 0xFF, 0x9E, 0xB8, 0xA1, 0x80, 0xFF,
0xFF, 0xFF, 0xFF, 0x9F, 0xBA, 0xF9, 0x70, 0xFF, 0xFF, 0xFF, 0xFF, 0xC2, 0xA0, 0x3B, 0x80, 0xFF,
@@ -9580,7 +9623,27 @@
0x00, 0x00, 0x00, 0x40, 0x6F, 0xC0, 0x80, 0x00, 0x00, 0x00, 0x00, 0x41, 0x84, 0x9B, 0x80, 0x00,
0x00, 0x00, 0x00, 0x42, 0x4F, 0xA2, 0x80, 0x00, 0x00, 0x00, 0x00, 0x43, 0x64, 0x7D, 0x80, 0x00,
0x00, 0x00, 0x00, 0x44, 0x2F, 0x84, 0x80, 0x00, 0x00, 0x00, 0x00, 0x45, 0x44, 0x51, 0x70, 0x00,
-0x00, 0x00, 0x00, 0x45, 0xF3, 0xB7, 0x00, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x03, 0x04,
+0x00, 0x00, 0x00, 0x45, 0xF3, 0xB7, 0x00, 0x00, 0x00, 0x00, 0x00, 0x47, 0x2D, 0x6D, 0xF0, 0x00,
+0x00, 0x00, 0x00, 0x47, 0xD3, 0x99, 0x00, 0x00, 0x00, 0x00, 0x00, 0x49, 0x0D, 0x4F, 0xF0, 0x00,
+0x00, 0x00, 0x00, 0x49, 0xB3, 0x7B, 0x00, 0x00, 0x00, 0x00, 0x00, 0x4A, 0xED, 0x31, 0xF0, 0x00,
+0x00, 0x00, 0x00, 0x4B, 0x9C, 0x97, 0x80, 0x00, 0x00, 0x00, 0x00, 0x4C, 0xD6, 0x4E, 0x70, 0x00,
+0x00, 0x00, 0x00, 0x4D, 0x7C, 0x79, 0x80, 0x00, 0x00, 0x00, 0x00, 0x4E, 0xB6, 0x30, 0x70, 0x00,
+0x00, 0x00, 0x00, 0x4F, 0x5C, 0x5B, 0x80, 0x00, 0x00, 0x00, 0x00, 0x50, 0x96, 0x12, 0x70, 0x00,
+0x00, 0x00, 0x00, 0x51, 0x3C, 0x3D, 0x80, 0x00, 0x00, 0x00, 0x00, 0x52, 0x75, 0xF4, 0x70, 0x00,
+0x00, 0x00, 0x00, 0x53, 0x1C, 0x1F, 0x80, 0x00, 0x00, 0x00, 0x00, 0x54, 0x55, 0xD6, 0x70, 0x00,
+0x00, 0x00, 0x00, 0x54, 0xFC, 0x01, 0x80, 0x00, 0x00, 0x00, 0x00, 0x56, 0x35, 0xB8, 0x70, 0x00,
+0x00, 0x00, 0x00, 0x56, 0xE5, 0x1E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x58, 0x1E, 0xD4, 0xF0, 0x00,
+0x00, 0x00, 0x00, 0x58, 0xC5, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x59, 0xFE, 0xB6, 0xF0, 0x00,
+0x00, 0x00, 0x00, 0x5A, 0xA4, 0xE2, 0x00, 0x00, 0x00, 0x00, 0x00, 0x5B, 0xDE, 0x98, 0xF0, 0x00,
+0x00, 0x00, 0x00, 0x5C, 0x84, 0xC4, 0x00, 0x00, 0x00, 0x00, 0x00, 0x5D, 0xBE, 0x7A, 0xF0, 0x00,
+0x00, 0x00, 0x00, 0x5E, 0x64, 0xA6, 0x00, 0x00, 0x00, 0x00, 0x00, 0x5F, 0x9E, 0x5C, 0xF0, 0x00,
+0x00, 0x00, 0x00, 0x60, 0x4D, 0xC2, 0x80, 0x00, 0x00, 0x00, 0x00, 0x61, 0x87, 0x79, 0x70, 0x00,
+0x00, 0x00, 0x00, 0x62, 0x2D, 0xA4, 0x80, 0x00, 0x00, 0x00, 0x00, 0x63, 0x67, 0x5B, 0x70, 0x00,
+0x00, 0x00, 0x00, 0x64, 0x0D, 0x86, 0x80, 0x00, 0x00, 0x00, 0x00, 0x65, 0x47, 0x3D, 0x70, 0x00,
+0x00, 0x00, 0x00, 0x65, 0xED, 0x68, 0x80, 0x00, 0x00, 0x00, 0x00, 0x67, 0x27, 0x1F, 0x70, 0x00,
+0x00, 0x00, 0x00, 0x67, 0xCD, 0x4A, 0x80, 0x00, 0x00, 0x00, 0x00, 0x69, 0x07, 0x01, 0x70, 0x00,
+0x00, 0x00, 0x00, 0x69, 0xAD, 0x2C, 0x80, 0x00, 0x00, 0x00, 0x00, 0x6A, 0xE6, 0xE3, 0x70, 0x02,
+0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x03, 0x04, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01,
0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01,
0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01,
0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01,
@@ -9588,14 +9651,15 @@
0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01,
0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01,
0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01,
-0x02, 0x01, 0x02, 0x01, 0xFF, 0xFF, 0xA4, 0xEC, 0x00, 0x00, 0xFF, 0xFF, 0xB9, 0xB0, 0x01, 0x04,
-0xFF, 0xFF, 0xAB, 0xA0, 0x00, 0x08, 0xFF, 0xFF, 0xB9, 0xB0, 0x01, 0x0C, 0xFF, 0xFF, 0xB9, 0xB0,
-0x01, 0x10, 0x4C, 0x4D, 0x54, 0x00, 0x43, 0x44, 0x54, 0x00, 0x43, 0x53, 0x54, 0x00, 0x43, 0x57,
-0x54, 0x00, 0x43, 0x50, 0x54, 0x00, 0x0A, 0x43, 0x53, 0x54, 0x36, 0x43, 0x44, 0x54, 0x2C, 0x4D,
-0x33, 0x2E, 0x32, 0x2E, 0x30, 0x2C, 0x4D, 0x31, 0x31, 0x2E, 0x31, 0x2E, 0x30, 0x0A, 0x00, 0xD5,
-0x71, 0xED, 0x00, 0x7E, 0x6B, 0x47, 0x00, 0x00, 0x00, 0x1D, 0x43, 0x65, 0x6E, 0x74, 0x72, 0x61,
-0x6C, 0x20, 0x2D, 0x20, 0x4F, 0x4E, 0x20, 0x28, 0x77, 0x65, 0x73, 0x74, 0x29, 0x2C, 0x20, 0x4D,
-0x61, 0x6E, 0x69, 0x74, 0x6F, 0x62, 0x61,
+0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01,
+0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01,
+0x02, 0x01, 0x05, 0xFF, 0xFF, 0xA4, 0xEC, 0x00, 0x00, 0xFF, 0xFF, 0xB9, 0xB0, 0x01, 0x04, 0xFF,
+0xFF, 0xAB, 0xA0, 0x00, 0x08, 0xFF, 0xFF, 0xB9, 0xB0, 0x01, 0x0C, 0xFF, 0xFF, 0xB9, 0xB0, 0x01,
+0x10, 0xFF, 0xFF, 0xB9, 0xB0, 0x00, 0x14, 0x4C, 0x4D, 0x54, 0x00, 0x43, 0x44, 0x54, 0x00, 0x43,
+0x53, 0x54, 0x00, 0x43, 0x57, 0x54, 0x00, 0x43, 0x50, 0x54, 0x00, 0x45, 0x53, 0x54, 0x00, 0x0A,
+0x45, 0x53, 0x54, 0x35, 0x0A, 0x00, 0xD5, 0x71, 0xED, 0x00, 0x7E, 0x6B, 0x47, 0x00, 0x00, 0x00,
+0x1E, 0x45, 0x53, 0x54, 0x20, 0x2D, 0x20, 0x4D, 0x61, 0x6E, 0x69, 0x74, 0x6F, 0x62, 0x61, 0x2C,
+0x20, 0x4F, 0x4E, 0x20, 0x28, 0x6E, 0x6F, 0x72, 0x74, 0x68, 0x77, 0x65, 0x73, 0x74, 0x29,
/* America/Yakutat */
0x50, 0x48, 0x50, 0x32, 0x01, 0x55, 0x53, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
@@ -13210,7 +13274,7 @@
0xFF, 0xFF, 0xFF, 0x9A, 0x6C, 0x7D, 0xC8, 0xFF, 0xFF, 0xFF, 0xFF, 0xBF, 0x00, 0xCC, 0x48, 0x00,
0x00, 0x00, 0x00, 0x0D, 0x94, 0x44, 0x38, 0x00, 0x00, 0x00, 0x00, 0x0E, 0xAD, 0x13, 0xB8, 0x00,
0x00, 0x00, 0x00, 0x0F, 0x79, 0x73, 0x40, 0x00, 0x00, 0x00, 0x00, 0x10, 0x28, 0xCA, 0xC0, 0x00,
-0x00, 0x00, 0x00, 0x10, 0xA9, 0xFD, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x11, 0xAD, 0xBC, 0x48, 0x00,
+0x00, 0x00, 0x00, 0x10, 0xA9, 0xFD, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x11, 0xAC, 0x6A, 0xC8, 0x00,
0x00, 0x00, 0x00, 0x12, 0x45, 0x4A, 0xB8, 0x00, 0x00, 0x00, 0x00, 0x13, 0x37, 0xEC, 0xC8, 0x00,
0x00, 0x00, 0x00, 0x14, 0x2D, 0x15, 0xB8, 0x00, 0x00, 0x00, 0x00, 0x28, 0x20, 0x76, 0xC8, 0x00,
0x00, 0x00, 0x00, 0x28, 0xDB, 0x9D, 0xB8, 0x00, 0x00, 0x00, 0x00, 0x29, 0xCB, 0x9C, 0xC8, 0x00,
@@ -15696,7 +15760,7 @@
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x54, 0x5A, 0x69, 0x66, 0x32, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7D, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x14, 0xFF,
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xA4, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x18, 0xFF,
0xFF, 0xFF, 0xFF, 0x64, 0xE4, 0xB0, 0x94, 0xFF, 0xFF, 0xFF, 0xFF, 0x9B, 0x01, 0xFB, 0xE0, 0xFF,
0xFF, 0xFF, 0xFF, 0x9B, 0xC3, 0xBA, 0x50, 0xFF, 0xFF, 0xFF, 0xFF, 0x9E, 0xB8, 0xA1, 0x80, 0xFF,
0xFF, 0xFF, 0xFF, 0x9F, 0xBA, 0xF9, 0x70, 0xFF, 0xFF, 0xFF, 0xFF, 0xC2, 0xA0, 0x3B, 0x80, 0xFF,
@@ -15759,7 +15823,27 @@
0x00, 0x00, 0x00, 0x40, 0x6F, 0xC0, 0x80, 0x00, 0x00, 0x00, 0x00, 0x41, 0x84, 0x9B, 0x80, 0x00,
0x00, 0x00, 0x00, 0x42, 0x4F, 0xA2, 0x80, 0x00, 0x00, 0x00, 0x00, 0x43, 0x64, 0x7D, 0x80, 0x00,
0x00, 0x00, 0x00, 0x44, 0x2F, 0x84, 0x80, 0x00, 0x00, 0x00, 0x00, 0x45, 0x44, 0x51, 0x70, 0x00,
-0x00, 0x00, 0x00, 0x45, 0xF3, 0xB7, 0x00, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x03, 0x04,
+0x00, 0x00, 0x00, 0x45, 0xF3, 0xB7, 0x00, 0x00, 0x00, 0x00, 0x00, 0x47, 0x2D, 0x6D, 0xF0, 0x00,
+0x00, 0x00, 0x00, 0x47, 0xD3, 0x99, 0x00, 0x00, 0x00, 0x00, 0x00, 0x49, 0x0D, 0x4F, 0xF0, 0x00,
+0x00, 0x00, 0x00, 0x49, 0xB3, 0x7B, 0x00, 0x00, 0x00, 0x00, 0x00, 0x4A, 0xED, 0x31, 0xF0, 0x00,
+0x00, 0x00, 0x00, 0x4B, 0x9C, 0x97, 0x80, 0x00, 0x00, 0x00, 0x00, 0x4C, 0xD6, 0x4E, 0x70, 0x00,
+0x00, 0x00, 0x00, 0x4D, 0x7C, 0x79, 0x80, 0x00, 0x00, 0x00, 0x00, 0x4E, 0xB6, 0x30, 0x70, 0x00,
+0x00, 0x00, 0x00, 0x4F, 0x5C, 0x5B, 0x80, 0x00, 0x00, 0x00, 0x00, 0x50, 0x96, 0x12, 0x70, 0x00,
+0x00, 0x00, 0x00, 0x51, 0x3C, 0x3D, 0x80, 0x00, 0x00, 0x00, 0x00, 0x52, 0x75, 0xF4, 0x70, 0x00,
+0x00, 0x00, 0x00, 0x53, 0x1C, 0x1F, 0x80, 0x00, 0x00, 0x00, 0x00, 0x54, 0x55, 0xD6, 0x70, 0x00,
+0x00, 0x00, 0x00, 0x54, 0xFC, 0x01, 0x80, 0x00, 0x00, 0x00, 0x00, 0x56, 0x35, 0xB8, 0x70, 0x00,
+0x00, 0x00, 0x00, 0x56, 0xE5, 0x1E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x58, 0x1E, 0xD4, 0xF0, 0x00,
+0x00, 0x00, 0x00, 0x58, 0xC5, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x59, 0xFE, 0xB6, 0xF0, 0x00,
+0x00, 0x00, 0x00, 0x5A, 0xA4, 0xE2, 0x00, 0x00, 0x00, 0x00, 0x00, 0x5B, 0xDE, 0x98, 0xF0, 0x00,
+0x00, 0x00, 0x00, 0x5C, 0x84, 0xC4, 0x00, 0x00, 0x00, 0x00, 0x00, 0x5D, 0xBE, 0x7A, 0xF0, 0x00,
+0x00, 0x00, 0x00, 0x5E, 0x64, 0xA6, 0x00, 0x00, 0x00, 0x00, 0x00, 0x5F, 0x9E, 0x5C, 0xF0, 0x00,
+0x00, 0x00, 0x00, 0x60, 0x4D, 0xC2, 0x80, 0x00, 0x00, 0x00, 0x00, 0x61, 0x87, 0x79, 0x70, 0x00,
+0x00, 0x00, 0x00, 0x62, 0x2D, 0xA4, 0x80, 0x00, 0x00, 0x00, 0x00, 0x63, 0x67, 0x5B, 0x70, 0x00,
+0x00, 0x00, 0x00, 0x64, 0x0D, 0x86, 0x80, 0x00, 0x00, 0x00, 0x00, 0x65, 0x47, 0x3D, 0x70, 0x00,
+0x00, 0x00, 0x00, 0x65, 0xED, 0x68, 0x80, 0x00, 0x00, 0x00, 0x00, 0x67, 0x27, 0x1F, 0x70, 0x00,
+0x00, 0x00, 0x00, 0x67, 0xCD, 0x4A, 0x80, 0x00, 0x00, 0x00, 0x00, 0x69, 0x07, 0x01, 0x70, 0x00,
+0x00, 0x00, 0x00, 0x69, 0xAD, 0x2C, 0x80, 0x00, 0x00, 0x00, 0x00, 0x6A, 0xE6, 0xE3, 0x70, 0x02,
+0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x03, 0x04, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01,
0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01,
0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01,
0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01,
@@ -15767,12 +15851,14 @@
0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01,
0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01,
0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01,
-0x02, 0x01, 0x02, 0x01, 0xFF, 0xFF, 0xA4, 0xEC, 0x00, 0x00, 0xFF, 0xFF, 0xB9, 0xB0, 0x01, 0x04,
-0xFF, 0xFF, 0xAB, 0xA0, 0x00, 0x08, 0xFF, 0xFF, 0xB9, 0xB0, 0x01, 0x0C, 0xFF, 0xFF, 0xB9, 0xB0,
-0x01, 0x10, 0x4C, 0x4D, 0x54, 0x00, 0x43, 0x44, 0x54, 0x00, 0x43, 0x53, 0x54, 0x00, 0x43, 0x57,
-0x54, 0x00, 0x43, 0x50, 0x54, 0x00, 0x0A, 0x43, 0x53, 0x54, 0x36, 0x43, 0x44, 0x54, 0x2C, 0x4D,
-0x33, 0x2E, 0x32, 0x2E, 0x30, 0x2C, 0x4D, 0x31, 0x31, 0x2E, 0x31, 0x2E, 0x30, 0x0A, 0x00, 0x00,
-0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01,
+0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01,
+0x02, 0x01, 0x05, 0xFF, 0xFF, 0xA4, 0xEC, 0x00, 0x00, 0xFF, 0xFF, 0xB9, 0xB0, 0x01, 0x04, 0xFF,
+0xFF, 0xAB, 0xA0, 0x00, 0x08, 0xFF, 0xFF, 0xB9, 0xB0, 0x01, 0x0C, 0xFF, 0xFF, 0xB9, 0xB0, 0x01,
+0x10, 0xFF, 0xFF, 0xB9, 0xB0, 0x00, 0x14, 0x4C, 0x4D, 0x54, 0x00, 0x43, 0x44, 0x54, 0x00, 0x43,
+0x53, 0x54, 0x00, 0x43, 0x57, 0x54, 0x00, 0x43, 0x50, 0x54, 0x00, 0x45, 0x53, 0x54, 0x00, 0x0A,
+0x45, 0x53, 0x54, 0x35, 0x0A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x00,
/* Canada/Eastern */
0x50, 0x48, 0x50, 0x32, 0x00, 0x3F, 0x3F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
@@ -16553,54 +16639,10 @@
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x54, 0x5A, 0x69, 0x66, 0x32, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xAF, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x18, 0xFF,
-0xFF, 0xFF, 0xFF, 0x5E, 0x03, 0xFE, 0xA0, 0xFF, 0xFF, 0xFF, 0xFF, 0x9E, 0xA6, 0x2C, 0x80, 0xFF,
-0xFF, 0xFF, 0xFF, 0x9F, 0xBA, 0xF9, 0x70, 0xFF, 0xFF, 0xFF, 0xFF, 0xA0, 0x86, 0x0E, 0x80, 0xFF,
-0xFF, 0xFF, 0xFF, 0xA1, 0x9A, 0xDB, 0x70, 0xFF, 0xFF, 0xFF, 0xFF, 0xA2, 0xCB, 0x74, 0x00, 0xFF,
-0xFF, 0xFF, 0xFF, 0xA3, 0x83, 0xF7, 0xF0, 0xFF, 0xFF, 0xFF, 0xFF, 0xA4, 0x45, 0xD2, 0x80, 0xFF,
-0xFF, 0xFF, 0xFF, 0xA5, 0x63, 0xD9, 0xF0, 0xFF, 0xFF, 0xFF, 0xFF, 0xA6, 0x53, 0xD9, 0x00, 0xFF,
-0xFF, 0xFF, 0xFF, 0xA7, 0x15, 0x97, 0x70, 0xFF, 0xFF, 0xFF, 0xFF, 0xA8, 0x33, 0xBB, 0x00, 0xFF,
-0xFF, 0xFF, 0xFF, 0xA8, 0xFE, 0xB3, 0xF0, 0xFF, 0xFF, 0xFF, 0xFF, 0xAA, 0x13, 0x9D, 0x00, 0xFF,
-0xFF, 0xFF, 0xFF, 0xAA, 0xDE, 0x95, 0xF0, 0xFF, 0xFF, 0xFF, 0xFF, 0xAB, 0xF3, 0x7F, 0x00, 0xFF,
-0xFF, 0xFF, 0xFF, 0xAC, 0xBE, 0x77, 0xF0, 0xFF, 0xFF, 0xFF, 0xFF, 0xAD, 0xD3, 0x61, 0x00, 0xFF,
-0xFF, 0xFF, 0xFF, 0xAE, 0x9E, 0x59, 0xF0, 0xFF, 0xFF, 0xFF, 0xFF, 0xAF, 0xB3, 0x43, 0x00, 0xFF,
-0xFF, 0xFF, 0xFF, 0xB0, 0x7E, 0x3B, 0xF0, 0xFF, 0xFF, 0xFF, 0xFF, 0xB1, 0x9C, 0x5F, 0x80, 0xFF,
-0xFF, 0xFF, 0xFF, 0xB2, 0x67, 0x58, 0x70, 0xFF, 0xFF, 0xFF, 0xFF, 0xB3, 0x7C, 0x41, 0x80, 0xFF,
-0xFF, 0xFF, 0xFF, 0xB4, 0x47, 0x3A, 0x70, 0xFF, 0xFF, 0xFF, 0xFF, 0xB5, 0x5C, 0x23, 0x80, 0xFF,
-0xFF, 0xFF, 0xFF, 0xB6, 0x27, 0x1C, 0x70, 0xFF, 0xFF, 0xFF, 0xFF, 0xB7, 0x3C, 0x05, 0x80, 0xFF,
-0xFF, 0xFF, 0xFF, 0xB8, 0x06, 0xFE, 0x70, 0xFF, 0xFF, 0xFF, 0xFF, 0xB9, 0x1B, 0xE7, 0x80, 0xFF,
-0xFF, 0xFF, 0xFF, 0xB9, 0xE6, 0xE0, 0x70, 0xFF, 0xFF, 0xFF, 0xFF, 0xBB, 0x05, 0x04, 0x00, 0xFF,
-0xFF, 0xFF, 0xFF, 0xBB, 0xC6, 0xC2, 0x70, 0xFF, 0xFF, 0xFF, 0xFF, 0xBC, 0xE4, 0xE6, 0x00, 0xFF,
-0xFF, 0xFF, 0xFF, 0xBD, 0xAF, 0xDE, 0xF0, 0xFF, 0xFF, 0xFF, 0xFF, 0xBE, 0xC4, 0xC8, 0x00, 0xFF,
-0xFF, 0xFF, 0xFF, 0xBF, 0x8F, 0xC0, 0xF0, 0xFF, 0xFF, 0xFF, 0xFF, 0xC0, 0x5A, 0xD6, 0x00, 0xFF,
-0xFF, 0xFF, 0xFF, 0xC1, 0xB0, 0x3C, 0x70, 0xFF, 0xFF, 0xFF, 0xFF, 0xC2, 0x84, 0x8C, 0x00, 0xFF,
-0xFF, 0xFF, 0xFF, 0xC3, 0x4F, 0x84, 0xF0, 0xFF, 0xFF, 0xFF, 0xFF, 0xC4, 0x64, 0x6E, 0x00, 0xFF,
-0xFF, 0xFF, 0xFF, 0xC5, 0x2F, 0x66, 0xF0, 0xFF, 0xFF, 0xFF, 0xFF, 0xC6, 0x4D, 0x8A, 0x80, 0xFF,
-0xFF, 0xFF, 0xFF, 0xC7, 0x0F, 0x48, 0xF0, 0xFF, 0xFF, 0xFF, 0xFF, 0xC8, 0x2D, 0x6C, 0x80, 0xFF,
-0xFF, 0xFF, 0xFF, 0xC8, 0xF8, 0x65, 0x70, 0xFF, 0xFF, 0xFF, 0xFF, 0xCA, 0x0D, 0x4E, 0x80, 0xFF,
-0xFF, 0xFF, 0xFF, 0xCA, 0xD8, 0x47, 0x70, 0xFF, 0xFF, 0xFF, 0xFF, 0xCB, 0x88, 0xFE, 0x80, 0xFF,
-0xFF, 0xFF, 0xFF, 0xD2, 0x23, 0xF4, 0x70, 0xFF, 0xFF, 0xFF, 0xFF, 0xD2, 0x61, 0x09, 0xF0, 0xFF,
-0xFF, 0xFF, 0xFF, 0xD3, 0x75, 0xF3, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xD4, 0x40, 0xEB, 0xF0, 0xFF,
-0xFF, 0xFF, 0xFF, 0xD5, 0x55, 0xD5, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xD6, 0x20, 0xCD, 0xF0, 0xFF,
-0xFF, 0xFF, 0xFF, 0xD7, 0x35, 0xB7, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xD8, 0x00, 0xAF, 0xF0, 0xFF,
-0xFF, 0xFF, 0xFF, 0xD9, 0x15, 0x99, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xD9, 0xE0, 0x91, 0xF0, 0xFF,
-0xFF, 0xFF, 0xFF, 0xDA, 0xFE, 0xB5, 0x80, 0xFF, 0xFF, 0xFF, 0xFF, 0xDB, 0xC0, 0x73, 0xF0, 0xFF,
-0xFF, 0xFF, 0xFF, 0xDC, 0xDE, 0x97, 0x80, 0xFF, 0xFF, 0xFF, 0xFF, 0xDD, 0xA9, 0x90, 0x70, 0xFF,
-0xFF, 0xFF, 0xFF, 0xDE, 0xBE, 0x79, 0x80, 0xFF, 0xFF, 0xFF, 0xFF, 0xDF, 0x89, 0x72, 0x70, 0xFF,
-0xFF, 0xFF, 0xFF, 0xE0, 0x9E, 0x5B, 0x80, 0xFF, 0xFF, 0xFF, 0xFF, 0xE1, 0x69, 0x54, 0x70, 0xFF,
-0xFF, 0xFF, 0xFF, 0xE2, 0x7E, 0x3D, 0x80, 0xFF, 0xFF, 0xFF, 0xFF, 0xE3, 0x49, 0x36, 0x70, 0xFF,
-0xFF, 0xFF, 0xFF, 0xE4, 0x5E, 0x1F, 0x80, 0xFF, 0xFF, 0xFF, 0xFF, 0xE5, 0x57, 0x3C, 0xF0, 0xFF,
-0xFF, 0xFF, 0xFF, 0xE6, 0x47, 0x3C, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xE7, 0x37, 0x1E, 0xF0, 0xFF,
-0xFF, 0xFF, 0xFF, 0xE8, 0x27, 0x1E, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xE9, 0x17, 0x00, 0xF0, 0xFF,
-0xFF, 0xFF, 0xFF, 0xEA, 0x07, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xEA, 0xF6, 0xE2, 0xF0, 0xFF,
-0xFF, 0xFF, 0xFF, 0xEB, 0xE6, 0xE2, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xEC, 0xD6, 0xC4, 0xF0, 0xFF,
-0xFF, 0xFF, 0xFF, 0xED, 0xC6, 0xC4, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xEE, 0xBF, 0xE1, 0x70, 0xFF,
-0xFF, 0xFF, 0xFF, 0xEF, 0xAF, 0xE0, 0x80, 0xFF, 0xFF, 0xFF, 0xFF, 0xF0, 0x9F, 0xC3, 0x70, 0xFF,
-0xFF, 0xFF, 0xFF, 0xF1, 0x8F, 0xC2, 0x80, 0xFF, 0xFF, 0xFF, 0xFF, 0xF2, 0x7F, 0xA5, 0x70, 0xFF,
-0xFF, 0xFF, 0xFF, 0xF3, 0x6F, 0xA4, 0x80, 0xFF, 0xFF, 0xFF, 0xFF, 0xF4, 0x5F, 0x87, 0x70, 0xFF,
-0xFF, 0xFF, 0xFF, 0xF5, 0x4F, 0x86, 0x80, 0xFF, 0xFF, 0xFF, 0xFF, 0xF6, 0x3F, 0x69, 0x70, 0xFF,
-0xFF, 0xFF, 0xFF, 0xF7, 0x2F, 0x68, 0x80, 0xFF, 0xFF, 0xFF, 0xFF, 0xF8, 0x28, 0x85, 0xF0, 0xFF,
-0xFF, 0xFF, 0xFF, 0xF9, 0x0F, 0x4A, 0x80, 0xFF, 0xFF, 0xFF, 0xFF, 0xFA, 0x08, 0x67, 0xF0, 0xFF,
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x57, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x08, 0xFF,
+0xFF, 0xFF, 0xFF, 0x9E, 0xA6, 0x2C, 0x80, 0xFF, 0xFF, 0xFF, 0xFF, 0x9F, 0xBA, 0xF9, 0x70, 0xFF,
+0xFF, 0xFF, 0xFF, 0xA0, 0x86, 0x0E, 0x80, 0xFF, 0xFF, 0xFF, 0xFF, 0xA1, 0x9A, 0xDB, 0x70, 0xFF,
+0xFF, 0xFF, 0xFF, 0xCB, 0x88, 0xFE, 0x80, 0xFF, 0xFF, 0xFF, 0xFF, 0xD2, 0x61, 0x09, 0xF0, 0xFF,
0xFF, 0xFF, 0xFF, 0xFA, 0xF8, 0x67, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFB, 0xE8, 0x49, 0xF0, 0xFF,
0xFF, 0xFF, 0xFF, 0xFC, 0xD8, 0x49, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFD, 0xC8, 0x2B, 0xF0, 0xFF,
0xFF, 0xFF, 0xFF, 0xFE, 0xB8, 0x2B, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xA8, 0x0D, 0xF0, 0x00,
@@ -16641,21 +16683,13 @@
0x00, 0x00, 0x00, 0x40, 0x6F, 0xC0, 0x80, 0x00, 0x00, 0x00, 0x00, 0x41, 0x84, 0x8D, 0x70, 0x00,
0x00, 0x00, 0x00, 0x42, 0x4F, 0xA2, 0x80, 0x00, 0x00, 0x00, 0x00, 0x43, 0x64, 0x6F, 0x70, 0x00,
0x00, 0x00, 0x00, 0x44, 0x2F, 0x84, 0x80, 0x00, 0x00, 0x00, 0x00, 0x45, 0x44, 0x51, 0x70, 0x00,
-0x00, 0x00, 0x00, 0x45, 0xF3, 0xB7, 0x00, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02,
-0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02,
-0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x03, 0x02, 0x01, 0x02,
-0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x04, 0x05, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01,
-0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01,
-0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01,
-0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01,
-0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01,
-0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01,
-0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01,
-0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01,
-0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0xFF, 0xFF, 0xAD, 0xD4, 0x00, 0x00, 0xFF, 0xFF, 0xB9, 0xB0,
-0x01, 0x04, 0xFF, 0xFF, 0xAB, 0xA0, 0x00, 0x08, 0xFF, 0xFF, 0xB9, 0xB0, 0x00, 0x0C, 0xFF, 0xFF,
-0xB9, 0xB0, 0x01, 0x10, 0xFF, 0xFF, 0xB9, 0xB0, 0x01, 0x14, 0x4C, 0x4D, 0x54, 0x00, 0x43, 0x44,
-0x54, 0x00, 0x43, 0x53, 0x54, 0x00, 0x45, 0x53, 0x54, 0x00, 0x43, 0x57, 0x54, 0x00, 0x43, 0x50,
+0x00, 0x00, 0x00, 0x45, 0xF3, 0xB7, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01,
+0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01,
+0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01,
+0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01,
+0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01,
+0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0xFF, 0xFF,
+0xAB, 0xA0, 0x00, 0x04, 0xFF, 0xFF, 0xB9, 0xB0, 0x01, 0x00, 0x43, 0x44, 0x54, 0x00, 0x43, 0x53,
0x54, 0x00, 0x0A, 0x43, 0x53, 0x54, 0x36, 0x43, 0x44, 0x54, 0x2C, 0x4D, 0x33, 0x2E, 0x32, 0x2E,
0x30, 0x2C, 0x4D, 0x31, 0x31, 0x2E, 0x31, 0x2E, 0x30, 0x0A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
@@ -16881,7 +16915,7 @@
0xFF, 0xFF, 0xFF, 0xA7, 0x27, 0xC6, 0x20, 0xFF, 0xFF, 0xFF, 0xFF, 0xA8, 0x2A, 0x2C, 0x20, 0xFF,
0xFF, 0xFF, 0xFF, 0xA8, 0xEB, 0xF8, 0xA0, 0xFF, 0xFF, 0xFF, 0xFF, 0xAA, 0x00, 0xD3, 0xA0, 0xFF,
0xFF, 0xFF, 0xFF, 0xAA, 0xD5, 0x15, 0x20, 0xFF, 0xFF, 0xFF, 0xFF, 0xAB, 0xE9, 0xF0, 0x20, 0xFF,
-0xFF, 0xFF, 0xFF, 0xAC, 0xC7, 0x6C, 0x20, 0xFF, 0xFF, 0xFF, 0xFF, 0xAD, 0xC9, 0xD2, 0x20, 0xFF,
+0xFF, 0xFF, 0xFF, 0xAC, 0xB4, 0xF7, 0x20, 0xFF, 0xFF, 0xFF, 0xFF, 0xAD, 0xC9, 0xD2, 0x20, 0xFF,
0xFF, 0xFF, 0xFF, 0xAE, 0xA7, 0x4E, 0x20, 0xFF, 0xFF, 0xFF, 0xFF, 0xAF, 0xA0, 0x79, 0xA0, 0xFF,
0xFF, 0xFF, 0xFF, 0xB0, 0x87, 0x30, 0x20, 0xFF, 0xFF, 0xFF, 0xFF, 0xB1, 0x92, 0xD0, 0xA0, 0xFF,
0xFF, 0xFF, 0xFF, 0xB2, 0x70, 0x4C, 0xA0, 0xFF, 0xFF, 0xFF, 0xFF, 0xB3, 0x72, 0xB2, 0xA0, 0xFF,
@@ -16980,54 +17014,10 @@
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x54, 0x5A, 0x69, 0x66, 0x32, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xAF, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x14, 0xFF,
-0xFF, 0xFF, 0xFF, 0x5E, 0x03, 0xF0, 0x90, 0xFF, 0xFF, 0xFF, 0xFF, 0x9E, 0xA6, 0x1E, 0x70, 0xFF,
-0xFF, 0xFF, 0xFF, 0x9F, 0xBA, 0xEB, 0x60, 0xFF, 0xFF, 0xFF, 0xFF, 0xA0, 0x86, 0x00, 0x70, 0xFF,
-0xFF, 0xFF, 0xFF, 0xA1, 0x9A, 0xCD, 0x60, 0xFF, 0xFF, 0xFF, 0xFF, 0xA2, 0x65, 0xE2, 0x70, 0xFF,
-0xFF, 0xFF, 0xFF, 0xA3, 0x83, 0xE9, 0xE0, 0xFF, 0xFF, 0xFF, 0xFF, 0xA4, 0x6A, 0xAE, 0x70, 0xFF,
-0xFF, 0xFF, 0xFF, 0xA5, 0x35, 0xA7, 0x60, 0xFF, 0xFF, 0xFF, 0xFF, 0xA6, 0x53, 0xCA, 0xF0, 0xFF,
-0xFF, 0xFF, 0xFF, 0xA7, 0x15, 0x89, 0x60, 0xFF, 0xFF, 0xFF, 0xFF, 0xA8, 0x33, 0xAC, 0xF0, 0xFF,
-0xFF, 0xFF, 0xFF, 0xA8, 0xFE, 0xA5, 0xE0, 0xFF, 0xFF, 0xFF, 0xFF, 0xAA, 0x13, 0x8E, 0xF0, 0xFF,
-0xFF, 0xFF, 0xFF, 0xAA, 0xDE, 0x87, 0xE0, 0xFF, 0xFF, 0xFF, 0xFF, 0xAB, 0xF3, 0x70, 0xF0, 0xFF,
-0xFF, 0xFF, 0xFF, 0xAC, 0xBE, 0x69, 0xE0, 0xFF, 0xFF, 0xFF, 0xFF, 0xAD, 0xD3, 0x52, 0xF0, 0xFF,
-0xFF, 0xFF, 0xFF, 0xAE, 0x9E, 0x4B, 0xE0, 0xFF, 0xFF, 0xFF, 0xFF, 0xAF, 0xB3, 0x34, 0xF0, 0xFF,
-0xFF, 0xFF, 0xFF, 0xB0, 0x7E, 0x2D, 0xE0, 0xFF, 0xFF, 0xFF, 0xFF, 0xB1, 0x9C, 0x51, 0x70, 0xFF,
-0xFF, 0xFF, 0xFF, 0xB2, 0x67, 0x4A, 0x60, 0xFF, 0xFF, 0xFF, 0xFF, 0xB3, 0x7C, 0x33, 0x70, 0xFF,
-0xFF, 0xFF, 0xFF, 0xB4, 0x47, 0x2C, 0x60, 0xFF, 0xFF, 0xFF, 0xFF, 0xB5, 0x5C, 0x15, 0x70, 0xFF,
-0xFF, 0xFF, 0xFF, 0xB6, 0x27, 0x0E, 0x60, 0xFF, 0xFF, 0xFF, 0xFF, 0xB7, 0x3B, 0xF7, 0x70, 0xFF,
-0xFF, 0xFF, 0xFF, 0xB8, 0x06, 0xF0, 0x60, 0xFF, 0xFF, 0xFF, 0xFF, 0xB9, 0x1B, 0xD9, 0x70, 0xFF,
-0xFF, 0xFF, 0xFF, 0xB9, 0xE6, 0xD2, 0x60, 0xFF, 0xFF, 0xFF, 0xFF, 0xBB, 0x04, 0xF5, 0xF0, 0xFF,
-0xFF, 0xFF, 0xFF, 0xBB, 0xC6, 0xB4, 0x60, 0xFF, 0xFF, 0xFF, 0xFF, 0xBC, 0xE4, 0xD7, 0xF0, 0xFF,
-0xFF, 0xFF, 0xFF, 0xBD, 0xAF, 0xD0, 0xE0, 0xFF, 0xFF, 0xFF, 0xFF, 0xBE, 0xC4, 0xB9, 0xF0, 0xFF,
-0xFF, 0xFF, 0xFF, 0xBF, 0x8F, 0xB2, 0xE0, 0xFF, 0xFF, 0xFF, 0xFF, 0xC0, 0xA4, 0x9B, 0xF0, 0xFF,
-0xFF, 0xFF, 0xFF, 0xC1, 0x6F, 0x94, 0xE0, 0xFF, 0xFF, 0xFF, 0xFF, 0xC2, 0x84, 0x7D, 0xF0, 0xFF,
-0xFF, 0xFF, 0xFF, 0xC3, 0x4F, 0x76, 0xE0, 0xFF, 0xFF, 0xFF, 0xFF, 0xC4, 0x64, 0x5F, 0xF0, 0xFF,
-0xFF, 0xFF, 0xFF, 0xC5, 0x2F, 0x58, 0xE0, 0xFF, 0xFF, 0xFF, 0xFF, 0xC6, 0x4D, 0x7C, 0x70, 0xFF,
-0xFF, 0xFF, 0xFF, 0xC7, 0x0F, 0x3A, 0xE0, 0xFF, 0xFF, 0xFF, 0xFF, 0xC8, 0x2D, 0x5E, 0x70, 0xFF,
-0xFF, 0xFF, 0xFF, 0xC8, 0xF8, 0x57, 0x60, 0xFF, 0xFF, 0xFF, 0xFF, 0xCA, 0x0D, 0x40, 0x70, 0xFF,
-0xFF, 0xFF, 0xFF, 0xCA, 0xD8, 0x39, 0x60, 0xFF, 0xFF, 0xFF, 0xFF, 0xCB, 0x88, 0xF0, 0x70, 0xFF,
-0xFF, 0xFF, 0xFF, 0xD2, 0x23, 0xF4, 0x70, 0xFF, 0xFF, 0xFF, 0xFF, 0xD2, 0x60, 0xFB, 0xE0, 0xFF,
-0xFF, 0xFF, 0xFF, 0xD3, 0x75, 0xE4, 0xF0, 0xFF, 0xFF, 0xFF, 0xFF, 0xD4, 0x40, 0xDD, 0xE0, 0xFF,
-0xFF, 0xFF, 0xFF, 0xD5, 0x55, 0xC6, 0xF0, 0xFF, 0xFF, 0xFF, 0xFF, 0xD6, 0x20, 0xBF, 0xE0, 0xFF,
-0xFF, 0xFF, 0xFF, 0xD7, 0x35, 0xA8, 0xF0, 0xFF, 0xFF, 0xFF, 0xFF, 0xD8, 0x00, 0xA1, 0xE0, 0xFF,
-0xFF, 0xFF, 0xFF, 0xD9, 0x15, 0x8A, 0xF0, 0xFF, 0xFF, 0xFF, 0xFF, 0xD9, 0xE0, 0x83, 0xE0, 0xFF,
-0xFF, 0xFF, 0xFF, 0xDA, 0xFE, 0xA7, 0x70, 0xFF, 0xFF, 0xFF, 0xFF, 0xDB, 0xC0, 0x65, 0xE0, 0xFF,
-0xFF, 0xFF, 0xFF, 0xDC, 0xDE, 0x89, 0x70, 0xFF, 0xFF, 0xFF, 0xFF, 0xDD, 0xA9, 0x82, 0x60, 0xFF,
-0xFF, 0xFF, 0xFF, 0xDE, 0xBE, 0x6B, 0x70, 0xFF, 0xFF, 0xFF, 0xFF, 0xDF, 0x89, 0x64, 0x60, 0xFF,
-0xFF, 0xFF, 0xFF, 0xE0, 0x9E, 0x4D, 0x70, 0xFF, 0xFF, 0xFF, 0xFF, 0xE1, 0x69, 0x46, 0x60, 0xFF,
-0xFF, 0xFF, 0xFF, 0xE2, 0x7E, 0x2F, 0x70, 0xFF, 0xFF, 0xFF, 0xFF, 0xE3, 0x49, 0x28, 0x60, 0xFF,
-0xFF, 0xFF, 0xFF, 0xE4, 0x5E, 0x11, 0x70, 0xFF, 0xFF, 0xFF, 0xFF, 0xE5, 0x57, 0x2E, 0xE0, 0xFF,
-0xFF, 0xFF, 0xFF, 0xE6, 0x47, 0x2D, 0xF0, 0xFF, 0xFF, 0xFF, 0xFF, 0xE7, 0x37, 0x10, 0xE0, 0xFF,
-0xFF, 0xFF, 0xFF, 0xE8, 0x27, 0x0F, 0xF0, 0xFF, 0xFF, 0xFF, 0xFF, 0xE9, 0x16, 0xF2, 0xE0, 0xFF,
-0xFF, 0xFF, 0xFF, 0xEA, 0x06, 0xF1, 0xF0, 0xFF, 0xFF, 0xFF, 0xFF, 0xEA, 0xF6, 0xD4, 0xE0, 0xFF,
-0xFF, 0xFF, 0xFF, 0xEB, 0xE6, 0xD3, 0xF0, 0xFF, 0xFF, 0xFF, 0xFF, 0xEC, 0xD6, 0xB6, 0xE0, 0xFF,
-0xFF, 0xFF, 0xFF, 0xED, 0xC6, 0xB5, 0xF0, 0xFF, 0xFF, 0xFF, 0xFF, 0xEE, 0xBF, 0xD3, 0x60, 0xFF,
-0xFF, 0xFF, 0xFF, 0xEF, 0xAF, 0xD2, 0x70, 0xFF, 0xFF, 0xFF, 0xFF, 0xF0, 0x9F, 0xB5, 0x60, 0xFF,
-0xFF, 0xFF, 0xFF, 0xF1, 0x8F, 0xB4, 0x70, 0xFF, 0xFF, 0xFF, 0xFF, 0xF2, 0x7F, 0x97, 0x60, 0xFF,
-0xFF, 0xFF, 0xFF, 0xF3, 0x6F, 0x96, 0x70, 0xFF, 0xFF, 0xFF, 0xFF, 0xF4, 0x5F, 0x79, 0x60, 0xFF,
-0xFF, 0xFF, 0xFF, 0xF5, 0x4F, 0x78, 0x70, 0xFF, 0xFF, 0xFF, 0xFF, 0xF6, 0x3F, 0x5B, 0x60, 0xFF,
-0xFF, 0xFF, 0xFF, 0xF7, 0x2F, 0x5A, 0x70, 0xFF, 0xFF, 0xFF, 0xFF, 0xF8, 0x28, 0x77, 0xE0, 0xFF,
-0xFF, 0xFF, 0xFF, 0xF9, 0x0F, 0x3C, 0x70, 0xFF, 0xFF, 0xFF, 0xFF, 0xFA, 0x08, 0x59, 0xE0, 0xFF,
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x57, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x08, 0xFF,
+0xFF, 0xFF, 0xFF, 0x9E, 0xA6, 0x1E, 0x70, 0xFF, 0xFF, 0xFF, 0xFF, 0x9F, 0xBA, 0xEB, 0x60, 0xFF,
+0xFF, 0xFF, 0xFF, 0xA0, 0x86, 0x00, 0x70, 0xFF, 0xFF, 0xFF, 0xFF, 0xA1, 0x9A, 0xCD, 0x60, 0xFF,
+0xFF, 0xFF, 0xFF, 0xCB, 0x88, 0xF0, 0x70, 0xFF, 0xFF, 0xFF, 0xFF, 0xD2, 0x60, 0xFB, 0xE0, 0xFF,
0xFF, 0xFF, 0xFF, 0xFA, 0xF8, 0x58, 0xF0, 0xFF, 0xFF, 0xFF, 0xFF, 0xFB, 0xE8, 0x3B, 0xE0, 0xFF,
0xFF, 0xFF, 0xFF, 0xFC, 0xD8, 0x3A, 0xF0, 0xFF, 0xFF, 0xFF, 0xFF, 0xFD, 0xC8, 0x1D, 0xE0, 0xFF,
0xFF, 0xFF, 0xFF, 0xFE, 0xB8, 0x1C, 0xF0, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xA7, 0xFF, 0xE0, 0x00,
@@ -17068,23 +17058,16 @@
0x00, 0x00, 0x00, 0x40, 0x6F, 0xB2, 0x70, 0x00, 0x00, 0x00, 0x00, 0x41, 0x84, 0x7F, 0x60, 0x00,
0x00, 0x00, 0x00, 0x42, 0x4F, 0x94, 0x70, 0x00, 0x00, 0x00, 0x00, 0x43, 0x64, 0x61, 0x60, 0x00,
0x00, 0x00, 0x00, 0x44, 0x2F, 0x76, 0x70, 0x00, 0x00, 0x00, 0x00, 0x45, 0x44, 0x43, 0x60, 0x00,
-0x00, 0x00, 0x00, 0x45, 0xF3, 0xA8, 0xF0, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02,
-0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02,
-0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02,
-0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x03, 0x04, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01,
-0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01,
-0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01,
-0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01,
-0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01,
-0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01,
-0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01,
-0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01,
-0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0xFF, 0xFF, 0xBA, 0x9E, 0x00, 0x00, 0xFF, 0xFF, 0xC7, 0xC0,
-0x01, 0x04, 0xFF, 0xFF, 0xB9, 0xB0, 0x00, 0x08, 0xFF, 0xFF, 0xC7, 0xC0, 0x01, 0x0C, 0xFF, 0xFF,
-0xC7, 0xC0, 0x01, 0x10, 0x4C, 0x4D, 0x54, 0x00, 0x45, 0x44, 0x54, 0x00, 0x45, 0x53, 0x54, 0x00,
-0x45, 0x57, 0x54, 0x00, 0x45, 0x50, 0x54, 0x00, 0x0A, 0x45, 0x53, 0x54, 0x35, 0x45, 0x44, 0x54,
-0x2C, 0x4D, 0x33, 0x2E, 0x32, 0x2E, 0x30, 0x2C, 0x4D, 0x31, 0x31, 0x2E, 0x31, 0x2E, 0x30, 0x0A,
-0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x00, 0x45, 0xF3, 0xA8, 0xF0, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01,
+0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01,
+0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01,
+0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01,
+0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01,
+0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0xFF, 0xFF,
+0xB9, 0xB0, 0x00, 0x04, 0xFF, 0xFF, 0xC7, 0xC0, 0x01, 0x00, 0x45, 0x44, 0x54, 0x00, 0x45, 0x53,
+0x54, 0x00, 0x0A, 0x45, 0x53, 0x54, 0x35, 0x45, 0x44, 0x54, 0x2C, 0x4D, 0x33, 0x2E, 0x32, 0x2E,
+0x30, 0x2C, 0x4D, 0x31, 0x31, 0x2E, 0x31, 0x2E, 0x30, 0x0A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
/* Etc/GMT */
0x50, 0x48, 0x50, 0x32, 0x00, 0x3F, 0x3F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
@@ -18203,7 +18186,7 @@
0xFF, 0xFF, 0xFF, 0xA7, 0x27, 0xC6, 0x20, 0xFF, 0xFF, 0xFF, 0xFF, 0xA8, 0x2A, 0x2C, 0x20, 0xFF,
0xFF, 0xFF, 0xFF, 0xA8, 0xEB, 0xF8, 0xA0, 0xFF, 0xFF, 0xFF, 0xFF, 0xAA, 0x00, 0xD3, 0xA0, 0xFF,
0xFF, 0xFF, 0xFF, 0xAA, 0xD5, 0x15, 0x20, 0xFF, 0xFF, 0xFF, 0xFF, 0xAB, 0xE9, 0xF0, 0x20, 0xFF,
-0xFF, 0xFF, 0xFF, 0xAC, 0xC7, 0x6C, 0x20, 0xFF, 0xFF, 0xFF, 0xFF, 0xAD, 0xC9, 0xD2, 0x20, 0xFF,
+0xFF, 0xFF, 0xFF, 0xAC, 0xB4, 0xF7, 0x20, 0xFF, 0xFF, 0xFF, 0xFF, 0xAD, 0xC9, 0xD2, 0x20, 0xFF,
0xFF, 0xFF, 0xFF, 0xAE, 0xA7, 0x4E, 0x20, 0xFF, 0xFF, 0xFF, 0xFF, 0xAF, 0xA0, 0x79, 0xA0, 0xFF,
0xFF, 0xFF, 0xFF, 0xB0, 0x87, 0x30, 0x20, 0xFF, 0xFF, 0xFF, 0xFF, 0xB1, 0x92, 0xD0, 0xA0, 0xFF,
0xFF, 0xFF, 0xFF, 0xB2, 0x70, 0x4C, 0xA0, 0xFF, 0xFF, 0xFF, 0xFF, 0xB3, 0x72, 0xB2, 0xA0, 0xFF,
@@ -21476,7 +21459,7 @@
0xFF, 0xFF, 0xFF, 0x9A, 0x6C, 0x7D, 0xC8, 0xFF, 0xFF, 0xFF, 0xFF, 0xBF, 0x00, 0xCC, 0x48, 0x00,
0x00, 0x00, 0x00, 0x0D, 0x94, 0x44, 0x38, 0x00, 0x00, 0x00, 0x00, 0x0E, 0xAD, 0x13, 0xB8, 0x00,
0x00, 0x00, 0x00, 0x0F, 0x79, 0x73, 0x40, 0x00, 0x00, 0x00, 0x00, 0x10, 0x28, 0xCA, 0xC0, 0x00,
-0x00, 0x00, 0x00, 0x10, 0xA9, 0xFD, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x11, 0xAD, 0xBC, 0x48, 0x00,
+0x00, 0x00, 0x00, 0x10, 0xA9, 0xFD, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x11, 0xAC, 0x6A, 0xC8, 0x00,
0x00, 0x00, 0x00, 0x12, 0x45, 0x4A, 0xB8, 0x00, 0x00, 0x00, 0x00, 0x13, 0x37, 0xEC, 0xC8, 0x00,
0x00, 0x00, 0x00, 0x14, 0x2D, 0x15, 0xB8, 0x00, 0x00, 0x00, 0x00, 0x28, 0x20, 0x76, 0xC8, 0x00,
0x00, 0x00, 0x00, 0x28, 0xDB, 0x9D, 0xB8, 0x00, 0x00, 0x00, 0x00, 0x29, 0xCB, 0x9C, 0xC8, 0x00,
@@ -21961,15 +21944,10 @@
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x54, 0x5A, 0x69, 0x66, 0x32, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x61, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x14, 0xFF,
-0xFF, 0xFF, 0xFF, 0x5E, 0x04, 0x0C, 0xB0, 0xFF, 0xFF, 0xFF, 0xFF, 0x9E, 0xA6, 0x3A, 0x90, 0xFF,
-0xFF, 0xFF, 0xFF, 0x9F, 0xBB, 0x07, 0x80, 0xFF, 0xFF, 0xFF, 0xFF, 0xA0, 0x86, 0x1C, 0x90, 0xFF,
-0xFF, 0xFF, 0xFF, 0xA1, 0x9A, 0xE9, 0x80, 0xFF, 0xFF, 0xFF, 0xFF, 0xA2, 0x65, 0xFE, 0x90, 0xFF,
-0xFF, 0xFF, 0xFF, 0xA3, 0x84, 0x06, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xA4, 0x45, 0xE0, 0x90, 0xFF,
-0xFF, 0xFF, 0xFF, 0xA4, 0x8F, 0xA6, 0x80, 0xFF, 0xFF, 0xFF, 0xFF, 0xCB, 0x89, 0x0C, 0x90, 0xFF,
-0xFF, 0xFF, 0xFF, 0xD2, 0x23, 0xF4, 0x70, 0xFF, 0xFF, 0xFF, 0xFF, 0xD2, 0x61, 0x18, 0x00, 0xFF,
-0xFF, 0xFF, 0xFF, 0xF7, 0x2F, 0x76, 0x90, 0xFF, 0xFF, 0xFF, 0xFF, 0xF8, 0x28, 0x94, 0x00, 0xFF,
-0xFF, 0xFF, 0xFF, 0xF9, 0x0F, 0x58, 0x90, 0xFF, 0xFF, 0xFF, 0xFF, 0xFA, 0x08, 0x76, 0x00, 0xFF,
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x57, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x08, 0xFF,
+0xFF, 0xFF, 0xFF, 0x9E, 0xA6, 0x3A, 0x90, 0xFF, 0xFF, 0xFF, 0xFF, 0x9F, 0xBB, 0x07, 0x80, 0xFF,
+0xFF, 0xFF, 0xFF, 0xA0, 0x86, 0x1C, 0x90, 0xFF, 0xFF, 0xFF, 0xFF, 0xA1, 0x9A, 0xE9, 0x80, 0xFF,
+0xFF, 0xFF, 0xFF, 0xCB, 0x89, 0x0C, 0x90, 0xFF, 0xFF, 0xFF, 0xFF, 0xD2, 0x61, 0x18, 0x00, 0xFF,
0xFF, 0xFF, 0xFF, 0xFA, 0xF8, 0x75, 0x10, 0xFF, 0xFF, 0xFF, 0xFF, 0xFB, 0xE8, 0x58, 0x00, 0xFF,
0xFF, 0xFF, 0xFF, 0xFC, 0xD8, 0x57, 0x10, 0xFF, 0xFF, 0xFF, 0xFF, 0xFD, 0xC8, 0x3A, 0x00, 0xFF,
0xFF, 0xFF, 0xFF, 0xFE, 0xB8, 0x39, 0x10, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xA8, 0x1C, 0x00, 0x00,
@@ -22010,18 +21988,16 @@
0x00, 0x00, 0x00, 0x40, 0x6F, 0xCE, 0x90, 0x00, 0x00, 0x00, 0x00, 0x41, 0x84, 0x9B, 0x80, 0x00,
0x00, 0x00, 0x00, 0x42, 0x4F, 0xB0, 0x90, 0x00, 0x00, 0x00, 0x00, 0x43, 0x64, 0x7D, 0x80, 0x00,
0x00, 0x00, 0x00, 0x44, 0x2F, 0x92, 0x90, 0x00, 0x00, 0x00, 0x00, 0x45, 0x44, 0x5F, 0x80, 0x00,
-0x00, 0x00, 0x00, 0x45, 0xF3, 0xC5, 0x10, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02,
-0x03, 0x04, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01,
-0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01,
-0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01,
-0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01,
-0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01,
-0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0xFF, 0xFF, 0x9D, 0x94, 0x00, 0x00, 0xFF, 0xFF,
-0xAB, 0xA0, 0x01, 0x04, 0xFF, 0xFF, 0x9D, 0x90, 0x00, 0x08, 0xFF, 0xFF, 0xAB, 0xA0, 0x01, 0x0C,
-0xFF, 0xFF, 0xAB, 0xA0, 0x01, 0x10, 0x4C, 0x4D, 0x54, 0x00, 0x4D, 0x44, 0x54, 0x00, 0x4D, 0x53,
-0x54, 0x00, 0x4D, 0x57, 0x54, 0x00, 0x4D, 0x50, 0x54, 0x00, 0x0A, 0x4D, 0x53, 0x54, 0x37, 0x4D,
-0x44, 0x54, 0x2C, 0x4D, 0x33, 0x2E, 0x32, 0x2E, 0x30, 0x2C, 0x4D, 0x31, 0x31, 0x2E, 0x31, 0x2E,
-0x30, 0x0A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x00, 0x45, 0xF3, 0xC5, 0x10, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01,
+0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01,
+0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01,
+0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01,
+0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01,
+0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0xFF, 0xFF,
+0x9D, 0x90, 0x00, 0x04, 0xFF, 0xFF, 0xAB, 0xA0, 0x01, 0x00, 0x4D, 0x44, 0x54, 0x00, 0x4D, 0x53,
+0x54, 0x00, 0x0A, 0x4D, 0x53, 0x54, 0x37, 0x4D, 0x44, 0x54, 0x2C, 0x4D, 0x33, 0x2E, 0x32, 0x2E,
+0x30, 0x2C, 0x4D, 0x31, 0x31, 0x2E, 0x31, 0x2E, 0x30, 0x0A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
/* Navajo */
0x50, 0x48, 0x50, 0x32, 0x00, 0x3F, 0x3F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
@@ -23274,29 +23250,10 @@
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x54, 0x5A, 0x69, 0x66, 0x32, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7D, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x14, 0xFF,
-0xFF, 0xFF, 0xFF, 0x5E, 0x04, 0x1A, 0xC0, 0xFF, 0xFF, 0xFF, 0xFF, 0x9E, 0xA6, 0x48, 0xA0, 0xFF,
-0xFF, 0xFF, 0xFF, 0x9F, 0xBB, 0x15, 0x90, 0xFF, 0xFF, 0xFF, 0xFF, 0xA0, 0x86, 0x2A, 0xA0, 0xFF,
-0xFF, 0xFF, 0xFF, 0xA1, 0x9A, 0xF7, 0x90, 0xFF, 0xFF, 0xFF, 0xFF, 0xCB, 0x89, 0x1A, 0xA0, 0xFF,
-0xFF, 0xFF, 0xFF, 0xD2, 0x23, 0xF4, 0x70, 0xFF, 0xFF, 0xFF, 0xFF, 0xD2, 0x61, 0x26, 0x10, 0xFF,
-0xFF, 0xFF, 0xFF, 0xD6, 0xFE, 0x74, 0x5C, 0xFF, 0xFF, 0xFF, 0xFF, 0xD8, 0x80, 0xAD, 0x90, 0xFF,
-0xFF, 0xFF, 0xFF, 0xDA, 0xFE, 0xC3, 0x90, 0xFF, 0xFF, 0xFF, 0xFF, 0xDB, 0xC0, 0x90, 0x10, 0xFF,
-0xFF, 0xFF, 0xFF, 0xDC, 0xDE, 0xA5, 0x90, 0xFF, 0xFF, 0xFF, 0xFF, 0xDD, 0xA9, 0xAC, 0x90, 0xFF,
-0xFF, 0xFF, 0xFF, 0xDE, 0xBE, 0x87, 0x90, 0xFF, 0xFF, 0xFF, 0xFF, 0xDF, 0x89, 0x8E, 0x90, 0xFF,
-0xFF, 0xFF, 0xFF, 0xE0, 0x9E, 0x69, 0x90, 0xFF, 0xFF, 0xFF, 0xFF, 0xE1, 0x69, 0x70, 0x90, 0xFF,
-0xFF, 0xFF, 0xFF, 0xE2, 0x7E, 0x4B, 0x90, 0xFF, 0xFF, 0xFF, 0xFF, 0xE3, 0x49, 0x52, 0x90, 0xFF,
-0xFF, 0xFF, 0xFF, 0xE4, 0x5E, 0x2D, 0x90, 0xFF, 0xFF, 0xFF, 0xFF, 0xE5, 0x29, 0x34, 0x90, 0xFF,
-0xFF, 0xFF, 0xFF, 0xE6, 0x47, 0x4A, 0x10, 0xFF, 0xFF, 0xFF, 0xFF, 0xE7, 0x12, 0x51, 0x10, 0xFF,
-0xFF, 0xFF, 0xFF, 0xE8, 0x27, 0x2C, 0x10, 0xFF, 0xFF, 0xFF, 0xFF, 0xE8, 0xF2, 0x33, 0x10, 0xFF,
-0xFF, 0xFF, 0xFF, 0xEA, 0x07, 0x0E, 0x10, 0xFF, 0xFF, 0xFF, 0xFF, 0xEA, 0xD2, 0x15, 0x10, 0xFF,
-0xFF, 0xFF, 0xFF, 0xEB, 0xE6, 0xF0, 0x10, 0xFF, 0xFF, 0xFF, 0xFF, 0xEC, 0xB1, 0xF7, 0x10, 0xFF,
-0xFF, 0xFF, 0xFF, 0xED, 0xC6, 0xD2, 0x10, 0xFF, 0xFF, 0xFF, 0xFF, 0xEE, 0x91, 0xD9, 0x10, 0xFF,
-0xFF, 0xFF, 0xFF, 0xEF, 0xAF, 0xEE, 0x90, 0xFF, 0xFF, 0xFF, 0xFF, 0xF0, 0x71, 0xBB, 0x10, 0xFF,
-0xFF, 0xFF, 0xFF, 0xF1, 0x8F, 0xD0, 0x90, 0xFF, 0xFF, 0xFF, 0xFF, 0xF2, 0x7F, 0xC1, 0x90, 0xFF,
-0xFF, 0xFF, 0xFF, 0xF3, 0x6F, 0xB2, 0x90, 0xFF, 0xFF, 0xFF, 0xFF, 0xF4, 0x5F, 0xA3, 0x90, 0xFF,
-0xFF, 0xFF, 0xFF, 0xF5, 0x4F, 0x94, 0x90, 0xFF, 0xFF, 0xFF, 0xFF, 0xF6, 0x3F, 0x85, 0x90, 0xFF,
-0xFF, 0xFF, 0xFF, 0xF7, 0x2F, 0x76, 0x90, 0xFF, 0xFF, 0xFF, 0xFF, 0xF8, 0x28, 0xA2, 0x10, 0xFF,
-0xFF, 0xFF, 0xFF, 0xF9, 0x0F, 0x58, 0x90, 0xFF, 0xFF, 0xFF, 0xFF, 0xFA, 0x08, 0x84, 0x10, 0xFF,
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x57, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x08, 0xFF,
+0xFF, 0xFF, 0xFF, 0x9E, 0xA6, 0x48, 0xA0, 0xFF, 0xFF, 0xFF, 0xFF, 0x9F, 0xBB, 0x15, 0x90, 0xFF,
+0xFF, 0xFF, 0xFF, 0xA0, 0x86, 0x2A, 0xA0, 0xFF, 0xFF, 0xFF, 0xFF, 0xA1, 0x9A, 0xF7, 0x90, 0xFF,
+0xFF, 0xFF, 0xFF, 0xCB, 0x89, 0x1A, 0xA0, 0xFF, 0xFF, 0xFF, 0xFF, 0xD2, 0x61, 0x26, 0x10, 0xFF,
0xFF, 0xFF, 0xFF, 0xFA, 0xF8, 0x83, 0x20, 0xFF, 0xFF, 0xFF, 0xFF, 0xFB, 0xE8, 0x66, 0x10, 0xFF,
0xFF, 0xFF, 0xFF, 0xFC, 0xD8, 0x65, 0x20, 0xFF, 0xFF, 0xFF, 0xFF, 0xFD, 0xC8, 0x48, 0x10, 0xFF,
0xFF, 0xFF, 0xFF, 0xFE, 0xB8, 0x47, 0x20, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xA8, 0x2A, 0x10, 0x00,
@@ -23337,20 +23294,16 @@
0x00, 0x00, 0x00, 0x40, 0x6F, 0xDC, 0xA0, 0x00, 0x00, 0x00, 0x00, 0x41, 0x84, 0xA9, 0x90, 0x00,
0x00, 0x00, 0x00, 0x42, 0x4F, 0xBE, 0xA0, 0x00, 0x00, 0x00, 0x00, 0x43, 0x64, 0x8B, 0x90, 0x00,
0x00, 0x00, 0x00, 0x44, 0x2F, 0xA0, 0xA0, 0x00, 0x00, 0x00, 0x00, 0x45, 0x44, 0x6D, 0x90, 0x00,
-0x00, 0x00, 0x00, 0x45, 0xF3, 0xD3, 0x20, 0x02, 0x01, 0x02, 0x01, 0x02, 0x03, 0x04, 0x02, 0x01,
-0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01,
-0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01,
-0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01,
-0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01,
-0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01,
-0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01,
-0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01,
-0x02, 0x01, 0x02, 0x01, 0xFF, 0xFF, 0x91, 0x26, 0x00, 0x00, 0xFF, 0xFF, 0x9D, 0x90, 0x01, 0x04,
-0xFF, 0xFF, 0x8F, 0x80, 0x00, 0x08, 0xFF, 0xFF, 0x9D, 0x90, 0x01, 0x0C, 0xFF, 0xFF, 0x9D, 0x90,
-0x01, 0x10, 0x4C, 0x4D, 0x54, 0x00, 0x50, 0x44, 0x54, 0x00, 0x50, 0x53, 0x54, 0x00, 0x50, 0x57,
-0x54, 0x00, 0x50, 0x50, 0x54, 0x00, 0x0A, 0x50, 0x53, 0x54, 0x38, 0x50, 0x44, 0x54, 0x2C, 0x4D,
-0x33, 0x2E, 0x32, 0x2E, 0x30, 0x2C, 0x4D, 0x31, 0x31, 0x2E, 0x31, 0x2E, 0x30, 0x0A, 0x00, 0x00,
-0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x00, 0x45, 0xF3, 0xD3, 0x20, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01,
+0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01,
+0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01,
+0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01,
+0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01,
+0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0xFF, 0xFF,
+0x8F, 0x80, 0x00, 0x04, 0xFF, 0xFF, 0x9D, 0x90, 0x01, 0x00, 0x50, 0x44, 0x54, 0x00, 0x50, 0x53,
+0x54, 0x00, 0x0A, 0x50, 0x53, 0x54, 0x38, 0x50, 0x44, 0x54, 0x2C, 0x4D, 0x33, 0x2E, 0x32, 0x2E,
+0x30, 0x2C, 0x4D, 0x31, 0x31, 0x2E, 0x31, 0x2E, 0x30, 0x0A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
/* ROC */
0x50, 0x48, 0x50, 0x32, 0x00, 0x3F, 0x3F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
@@ -24562,470 +24515,470 @@
{ (char*) "America/Indiana/Winamac" , 0x01DE9A },
{ (char*) "America/Indianapolis" , 0x01E5BE },
{ (char*) "America/Inuvik" , 0x01EC5C },
- { (char*) "America/Iqaluit" , 0x01F496 },
- { (char*) "America/Jamaica" , 0x01FD55 },
- { (char*) "America/Jujuy" , 0x01FF43 },
- { (char*) "America/Juneau" , 0x020359 },
- { (char*) "America/Kentucky/Louisville" , 0x020CAA },
- { (char*) "America/Kentucky/Monticello" , 0x0217B8 },
- { (char*) "America/Knox_IN" , 0x022118 },
- { (char*) "America/Kralendijk" , 0x022AB0 },
- { (char*) "America/La_Paz" , 0x022BB2 },
- { (char*) "America/Lima" , 0x022C98 },
- { (char*) "America/Los_Angeles" , 0x022E2C },
- { (char*) "America/Louisville" , 0x023963 },
- { (char*) "America/Lower_Princes" , 0x024453 },
- { (char*) "America/Maceio" , 0x024555 },
- { (char*) "America/Managua" , 0x02484B },
- { (char*) "America/Manaus" , 0x024A05 },
- { (char*) "America/Marigot" , 0x024C6E },
- { (char*) "America/Martinique" , 0x024D70 },
- { (char*) "America/Matamoros" , 0x024E64 },
- { (char*) "America/Mazatlan" , 0x025426 },
- { (char*) "America/Mendoza" , 0x025888 },
- { (char*) "America/Menominee" , 0x025CBA },
- { (char*) "America/Merida" , 0x0265C7 },
- { (char*) "America/Metlakatla" , 0x0269D0 },
- { (char*) "America/Mexico_City" , 0x026F82 },
- { (char*) "America/Miquelon" , 0x027462 },
- { (char*) "America/Moncton" , 0x027AE2 },
- { (char*) "America/Monterrey" , 0x028758 },
- { (char*) "America/Montevideo" , 0x028BF4 },
- { (char*) "America/Montreal" , 0x0291D8 },
- { (char*) "America/Montserrat" , 0x029F8A },
- { (char*) "America/Nassau" , 0x02A02A },
- { (char*) "America/New_York" , 0x02A98A },
- { (char*) "America/Nipigon" , 0x02B78A },
- { (char*) "America/Nome" , 0x02C53C },
- { (char*) "America/Noronha" , 0x02CE94 },
- { (char*) "America/North_Dakota/Beulah" , 0x02D16E },
- { (char*) "America/North_Dakota/Center" , 0x02DAEB },
- { (char*) "America/North_Dakota/New_Salem" , 0x02E468 },
- { (char*) "America/Nuuk" , 0x02EDEB },
- { (char*) "America/Ojinaga" , 0x02F569 },
- { (char*) "America/Panama" , 0x02FB85 },
- { (char*) "America/Pangnirtung" , 0x02FC47 },
- { (char*) "America/Paramaribo" , 0x0304ED },
- { (char*) "America/Phoenix" , 0x0305F1 },
- { (char*) "America/Port-au-Prince" , 0x03077D },
- { (char*) "America/Port_of_Spain" , 0x030D23 },
- { (char*) "America/Porto_Acre" , 0x030DC3 },
- { (char*) "America/Porto_Velho" , 0x031035 },
- { (char*) "America/Puerto_Rico" , 0x03127B },
- { (char*) "America/Punta_Arenas" , 0x03137D },
- { (char*) "America/Rainy_River" , 0x031B08 },
- { (char*) "America/Rankin_Inlet" , 0x032648 },
- { (char*) "America/Recife" , 0x032E7C },
- { (char*) "America/Regina" , 0x033150 },
- { (char*) "America/Resolute" , 0x033545 },
- { (char*) "America/Rio_Branco" , 0x033D7A },
- { (char*) "America/Rosario" , 0x033FF0 },
- { (char*) "America/Santa_Isabel" , 0x034422 },
- { (char*) "America/Santarem" , 0x034F88 },
- { (char*) "America/Santiago" , 0x0351EB },
- { (char*) "America/Santo_Domingo" , 0x035BD7 },
- { (char*) "America/Sao_Paulo" , 0x035DAD },
- { (char*) "America/Scoresbysund" , 0x036385 },
- { (char*) "America/Shiprock" , 0x036B3D },
- { (char*) "America/Sitka" , 0x0374E5 },
- { (char*) "America/St_Barthelemy" , 0x037E1D },
- { (char*) "America/St_Johns" , 0x037F1F },
- { (char*) "America/St_Kitts" , 0x038D8D },
- { (char*) "America/St_Lucia" , 0x038E2D },
- { (char*) "America/St_Thomas" , 0x038EEF },
- { (char*) "America/St_Vincent" , 0x038F8F },
- { (char*) "America/Swift_Current" , 0x039051 },
- { (char*) "America/Tegucigalpa" , 0x03929F },
- { (char*) "America/Thule" , 0x0393A7 },
- { (char*) "America/Thunder_Bay" , 0x03999F },
- { (char*) "America/Tijuana" , 0x03A751 },
- { (char*) "America/Toronto" , 0x03B2C6 },
- { (char*) "America/Tortola" , 0x03C096 },
- { (char*) "America/Vancouver" , 0x03C136 },
- { (char*) "America/Virgin" , 0x03CB75 },
- { (char*) "America/Whitehorse" , 0x03CC77 },
- { (char*) "America/Winnipeg" , 0x03D2E3 },
- { (char*) "America/Yakutat" , 0x03DE40 },
- { (char*) "America/Yellowknife" , 0x03E75D },
- { (char*) "Antarctica/Casey" , 0x03EF57 },
- { (char*) "Antarctica/Davis" , 0x03F10F },
- { (char*) "Antarctica/DumontDUrville" , 0x03F23B },
- { (char*) "Antarctica/Macquarie" , 0x03F30B },
- { (char*) "Antarctica/Mawson" , 0x03FBFB },
- { (char*) "Antarctica/McMurdo" , 0x03FCC6 },
- { (char*) "Antarctica/Palmer" , 0x0404C1 },
- { (char*) "Antarctica/Rothera" , 0x040A4F },
- { (char*) "Antarctica/South_Pole" , 0x040AF8 },
- { (char*) "Antarctica/Syowa" , 0x041489 },
- { (char*) "Antarctica/Troll" , 0x041531 },
- { (char*) "Antarctica/Vostok" , 0x0419BE },
- { (char*) "Arctic/Longyearbyen" , 0x041AA5 },
- { (char*) "Asia/Aden" , 0x0423AB },
- { (char*) "Asia/Almaty" , 0x04244E },
- { (char*) "Asia/Amman" , 0x042843 },
- { (char*) "Asia/Anadyr" , 0x042DE8 },
- { (char*) "Asia/Aqtau" , 0x04329D },
- { (char*) "Asia/Aqtobe" , 0x043687 },
- { (char*) "Asia/Ashgabat" , 0x043A85 },
- { (char*) "Asia/Ashkhabad" , 0x043CEE },
- { (char*) "Asia/Atyrau" , 0x043F57 },
- { (char*) "Asia/Baghdad" , 0x044349 },
- { (char*) "Asia/Bahrain" , 0x04471E },
- { (char*) "Asia/Baku" , 0x044809 },
- { (char*) "Asia/Bangkok" , 0x044CD2 },
- { (char*) "Asia/Barnaul" , 0x044D97 },
- { (char*) "Asia/Beirut" , 0x045268 },
- { (char*) "Asia/Bishkek" , 0x045ADE },
- { (char*) "Asia/Brunei" , 0x045EB3 },
- { (char*) "Asia/Calcutta" , 0x045F7C },
- { (char*) "Asia/Chita" , 0x0460A5 },
- { (char*) "Asia/Choibalsan" , 0x04657C },
- { (char*) "Asia/Chongqing" , 0x0468F5 },
- { (char*) "Asia/Chungking" , 0x046B32 },
- { (char*) "Asia/Colombo" , 0x046D6F },
- { (char*) "Asia/Dacca" , 0x046EE1 },
- { (char*) "Asia/Damascus" , 0x047030 },
- { (char*) "Asia/Dhaka" , 0x04778D },
- { (char*) "Asia/Dili" , 0x0478DC },
- { (char*) "Asia/Dubai" , 0x0479E9 },
- { (char*) "Asia/Dushanbe" , 0x047A8C },
- { (char*) "Asia/Famagusta" , 0x047CD9 },
- { (char*) "Asia/Gaza" , 0x0484E0 },
- { (char*) "Asia/Harbin" , 0x0493FA },
- { (char*) "Asia/Hebron" , 0x049637 },
- { (char*) "Asia/Ho_Chi_Minh" , 0x04A56C },
- { (char*) "Asia/Hong_Kong" , 0x04A6C1 },
- { (char*) "Asia/Hovd" , 0x04AB9E },
- { (char*) "Asia/Irkutsk" , 0x04AF2D },
- { (char*) "Asia/Istanbul" , 0x04B420 },
- { (char*) "Asia/Jakarta" , 0x04BBB9 },
- { (char*) "Asia/Jayapura" , 0x04BD51 },
- { (char*) "Asia/Jerusalem" , 0x04BE70 },
- { (char*) "Asia/Kabul" , 0x04C7D0 },
- { (char*) "Asia/Kamchatka" , 0x04C89E },
- { (char*) "Asia/Karachi" , 0x04CD3C },
- { (char*) "Asia/Kashgar" , 0x04CEC3 },
- { (char*) "Asia/Kathmandu" , 0x04CF66 },
- { (char*) "Asia/Katmandu" , 0x04D038 },
- { (char*) "Asia/Khandyga" , 0x04D10A },
- { (char*) "Asia/Kolkata" , 0x04D61D },
- { (char*) "Asia/Krasnoyarsk" , 0x04D746 },
- { (char*) "Asia/Kuala_Lumpur" , 0x04DC14 },
- { (char*) "Asia/Kuching" , 0x04DDC5 },
- { (char*) "Asia/Kuwait" , 0x04DFB4 },
- { (char*) "Asia/Macao" , 0x04E057 },
- { (char*) "Asia/Macau" , 0x04E52E },
- { (char*) "Asia/Magadan" , 0x04EA05 },
- { (char*) "Asia/Makassar" , 0x04EED9 },
- { (char*) "Asia/Manila" , 0x04F02C },
- { (char*) "Asia/Muscat" , 0x04F1DE },
- { (char*) "Asia/Nicosia" , 0x04F281 },
- { (char*) "Asia/Novokuznetsk" , 0x04FA6D },
- { (char*) "Asia/Novosibirsk" , 0x04FF09 },
- { (char*) "Asia/Omsk" , 0x0503E0 },
- { (char*) "Asia/Oral" , 0x0508A2 },
- { (char*) "Asia/Phnom_Penh" , 0x050C9C },
- { (char*) "Asia/Pontianak" , 0x050DB9 },
- { (char*) "Asia/Pyongyang" , 0x050F3C },
- { (char*) "Asia/Qatar" , 0x051035 },
- { (char*) "Asia/Qostanay" , 0x0510FA },
- { (char*) "Asia/Qyzylorda" , 0x051521 },
- { (char*) "Asia/Rangoon" , 0x05193D },
- { (char*) "Asia/Riyadh" , 0x051A47 },
- { (char*) "Asia/Saigon" , 0x051AEA },
- { (char*) "Asia/Sakhalin" , 0x051C3F },
- { (char*) "Asia/Samarkand" , 0x052107 },
- { (char*) "Asia/Seoul" , 0x052357 },
- { (char*) "Asia/Shanghai" , 0x0525CC },
- { (char*) "Asia/Singapore" , 0x052815 },
- { (char*) "Asia/Srednekolymsk" , 0x0529B2 },
- { (char*) "Asia/Taipei" , 0x052E86 },
- { (char*) "Asia/Tashkent" , 0x05318B },
- { (char*) "Asia/Tbilisi" , 0x0533E9 },
- { (char*) "Asia/Tehran" , 0x0537E4 },
- { (char*) "Asia/Tel_Aviv" , 0x053CD0 },
- { (char*) "Asia/Thimbu" , 0x054630 },
- { (char*) "Asia/Thimphu" , 0x0546F9 },
- { (char*) "Asia/Tokyo" , 0x0547C2 },
- { (char*) "Asia/Tomsk" , 0x054903 },
- { (char*) "Asia/Ujung_Pandang" , 0x054DD4 },
- { (char*) "Asia/Ulaanbaatar" , 0x054EDE },
- { (char*) "Asia/Ulan_Bator" , 0x055267 },
- { (char*) "Asia/Urumqi" , 0x0555E0 },
- { (char*) "Asia/Ust-Nera" , 0x055690 },
- { (char*) "Asia/Vientiane" , 0x055B86 },
- { (char*) "Asia/Vladivostok" , 0x055CBF },
- { (char*) "Asia/Yakutsk" , 0x056188 },
- { (char*) "Asia/Yangon" , 0x056650 },
- { (char*) "Asia/Yekaterinburg" , 0x05675A },
- { (char*) "Asia/Yerevan" , 0x056C41 },
- { (char*) "Atlantic/Azores" , 0x0570BE },
- { (char*) "Atlantic/Bermuda" , 0x057E42 },
- { (char*) "Atlantic/Canary" , 0x0587AA },
- { (char*) "Atlantic/Cape_Verde" , 0x058F2D },
- { (char*) "Atlantic/Faeroe" , 0x059039 },
- { (char*) "Atlantic/Faroe" , 0x05975C },
- { (char*) "Atlantic/Jan_Mayen" , 0x059E7F },
- { (char*) "Atlantic/Madeira" , 0x05A785 },
- { (char*) "Atlantic/Reykjavik" , 0x05B4D1 },
- { (char*) "Atlantic/South_Georgia" , 0x05B967 },
- { (char*) "Atlantic/St_Helena" , 0x05BA09 },
- { (char*) "Atlantic/Stanley" , 0x05BACB },
- { (char*) "Australia/ACT" , 0x05BF87 },
- { (char*) "Australia/Adelaide" , 0x05C821 },
- { (char*) "Australia/Brisbane" , 0x05D0DC },
- { (char*) "Australia/Broken_Hill" , 0x05D2A2 },
- { (char*) "Australia/Canberra" , 0x05DB7F },
- { (char*) "Australia/Currie" , 0x05E419 },
- { (char*) "Australia/Darwin" , 0x05ED5B },
- { (char*) "Australia/Eucla" , 0x05EEBE },
- { (char*) "Australia/Hobart" , 0x05F0AB },
- { (char*) "Australia/LHI" , 0x05F9F5 },
- { (char*) "Australia/Lindeman" , 0x060137 },
- { (char*) "Australia/Lord_Howe" , 0x06033D },
- { (char*) "Australia/Melbourne" , 0x060A8F },
- { (char*) "Australia/North" , 0x061331 },
- { (char*) "Australia/NSW" , 0x061482 },
- { (char*) "Australia/Perth" , 0x061D1C },
- { (char*) "Australia/Queensland" , 0x061F04 },
- { (char*) "Australia/South" , 0x0620B3 },
- { (char*) "Australia/Sydney" , 0x06295F },
- { (char*) "Australia/Tasmania" , 0x063215 },
- { (char*) "Australia/Victoria" , 0x063B57 },
- { (char*) "Australia/West" , 0x0643F1 },
- { (char*) "Australia/Yancowinna" , 0x0645BB },
- { (char*) "Brazil/Acre" , 0x064E7C },
- { (char*) "Brazil/DeNoronha" , 0x0650EE },
- { (char*) "Brazil/East" , 0x0653B8 },
- { (char*) "Brazil/West" , 0x06595A },
- { (char*) "Canada/Atlantic" , 0x065BB4 },
- { (char*) "Canada/Central" , 0x066920 },
- { (char*) "Canada/Eastern" , 0x067460 },
- { (char*) "Canada/Mountain" , 0x068212 },
- { (char*) "Canada/Newfoundland" , 0x068A0C },
- { (char*) "Canada/Pacific" , 0x06985F },
- { (char*) "Canada/Saskatchewan" , 0x06A289 },
- { (char*) "Canada/Yukon" , 0x06A669 },
- { (char*) "CET" , 0x06ACC3 },
- { (char*) "Chile/Continental" , 0x06B844 },
- { (char*) "Chile/EasterIsland" , 0x06C223 },
- { (char*) "CST6CDT" , 0x06CADA },
- { (char*) "Cuba" , 0x06D8EE },
- { (char*) "EET" , 0x06E26A },
- { (char*) "Egypt" , 0x06EB4C },
- { (char*) "Eire" , 0x06F4B7 },
- { (char*) "EST" , 0x070267 },
- { (char*) "EST5EDT" , 0x070329 },
- { (char*) "Etc/GMT" , 0x071115 },
- { (char*) "Etc/GMT+0" , 0x071193 },
- { (char*) "Etc/GMT+1" , 0x071211 },
- { (char*) "Etc/GMT+10" , 0x071291 },
- { (char*) "Etc/GMT+11" , 0x071312 },
- { (char*) "Etc/GMT+12" , 0x071393 },
- { (char*) "Etc/GMT+2" , 0x071414 },
- { (char*) "Etc/GMT+3" , 0x071494 },
- { (char*) "Etc/GMT+4" , 0x071514 },
- { (char*) "Etc/GMT+5" , 0x071594 },
- { (char*) "Etc/GMT+6" , 0x071614 },
- { (char*) "Etc/GMT+7" , 0x071694 },
- { (char*) "Etc/GMT+8" , 0x071714 },
- { (char*) "Etc/GMT+9" , 0x071794 },
- { (char*) "Etc/GMT-0" , 0x071814 },
- { (char*) "Etc/GMT-1" , 0x071892 },
- { (char*) "Etc/GMT-10" , 0x071913 },
- { (char*) "Etc/GMT-11" , 0x071995 },
- { (char*) "Etc/GMT-12" , 0x071A17 },
- { (char*) "Etc/GMT-13" , 0x071A99 },
- { (char*) "Etc/GMT-14" , 0x071B1B },
- { (char*) "Etc/GMT-2" , 0x071B9D },
- { (char*) "Etc/GMT-3" , 0x071C1E },
- { (char*) "Etc/GMT-4" , 0x071C9F },
- { (char*) "Etc/GMT-5" , 0x071D20 },
- { (char*) "Etc/GMT-6" , 0x071DA1 },
- { (char*) "Etc/GMT-7" , 0x071E22 },
- { (char*) "Etc/GMT-8" , 0x071EA3 },
- { (char*) "Etc/GMT-9" , 0x071F24 },
- { (char*) "Etc/GMT0" , 0x071FA5 },
- { (char*) "Etc/Greenwich" , 0x072023 },
- { (char*) "Etc/UCT" , 0x0720A1 },
- { (char*) "Etc/Universal" , 0x07211F },
- { (char*) "Etc/UTC" , 0x07219D },
- { (char*) "Etc/Zulu" , 0x07221B },
- { (char*) "Europe/Amsterdam" , 0x072299 },
- { (char*) "Europe/Andorra" , 0x072E03 },
- { (char*) "Europe/Astrakhan" , 0x0734DD },
- { (char*) "Europe/Athens" , 0x07397A },
- { (char*) "Europe/Belfast" , 0x07425C },
- { (char*) "Europe/Belgrade" , 0x0750B8 },
- { (char*) "Europe/Berlin" , 0x075844 },
- { (char*) "Europe/Bratislava" , 0x076159 },
- { (char*) "Europe/Brussels" , 0x076A62 },
- { (char*) "Europe/Bucharest" , 0x0775E3 },
- { (char*) "Europe/Budapest" , 0x077E77 },
- { (char*) "Europe/Busingen" , 0x0787C3 },
- { (char*) "Europe/Chisinau" , 0x078F4C },
- { (char*) "Europe/Copenhagen" , 0x0798D0 },
- { (char*) "Europe/Dublin" , 0x07A135 },
- { (char*) "Europe/Gibraltar" , 0x07AEE5 },
- { (char*) "Europe/Guernsey" , 0x07BAED },
- { (char*) "Europe/Helsinki" , 0x07C98D },
- { (char*) "Europe/Isle_of_Man" , 0x07D105 },
- { (char*) "Europe/Istanbul" , 0x07DF51 },
- { (char*) "Europe/Jersey" , 0x07E6EA },
- { (char*) "Europe/Kaliningrad" , 0x07F58A },
- { (char*) "Europe/Kiev" , 0x07FB7F },
- { (char*) "Europe/Kirov" , 0x0803D3 },
- { (char*) "Europe/Kyiv" , 0x08088E },
- { (char*) "Europe/Lisbon" , 0x0810F1 },
- { (char*) "Europe/Ljubljana" , 0x081ED7 },
- { (char*) "Europe/London" , 0x082663 },
- { (char*) "Europe/Luxembourg" , 0x0834BF },
- { (char*) "Europe/Madrid" , 0x08404D },
- { (char*) "Europe/Malta" , 0x084A9F },
- { (char*) "Europe/Mariehamn" , 0x0854E7 },
- { (char*) "Europe/Minsk" , 0x085C5F },
- { (char*) "Europe/Monaco" , 0x086186 },
- { (char*) "Europe/Moscow" , 0x086D12 },
- { (char*) "Europe/Nicosia" , 0x087331 },
- { (char*) "Europe/Oslo" , 0x087B0F },
- { (char*) "Europe/Paris" , 0x0883CF },
- { (char*) "Europe/Podgorica" , 0x088F6D },
- { (char*) "Europe/Prague" , 0x0896F9 },
- { (char*) "Europe/Riga" , 0x08A002 },
- { (char*) "Europe/Rome" , 0x08A8A4 },
- { (char*) "Europe/Samara" , 0x08B301 },
- { (char*) "Europe/San_Marino" , 0x08B7D7 },
- { (char*) "Europe/Sarajevo" , 0x08C234 },
- { (char*) "Europe/Saratov" , 0x08C9C0 },
- { (char*) "Europe/Simferopol" , 0x08CE6D },
- { (char*) "Europe/Skopje" , 0x08D43C },
- { (char*) "Europe/Sofia" , 0x08DBC8 },
- { (char*) "Europe/Stockholm" , 0x08E3F1 },
- { (char*) "Europe/Tallinn" , 0x08EB72 },
- { (char*) "Europe/Tirane" , 0x08F3E2 },
- { (char*) "Europe/Tiraspol" , 0x08FC12 },
- { (char*) "Europe/Ulyanovsk" , 0x090596 },
- { (char*) "Europe/Uzhgorod" , 0x090A99 },
- { (char*) "Europe/Vaduz" , 0x0912ED },
- { (char*) "Europe/Vatican" , 0x091A59 },
- { (char*) "Europe/Vienna" , 0x0924B6 },
- { (char*) "Europe/Vilnius" , 0x092D5A },
- { (char*) "Europe/Volgograd" , 0x0935D8 },
- { (char*) "Europe/Warsaw" , 0x093A9F },
- { (char*) "Europe/Zagreb" , 0x094509 },
- { (char*) "Europe/Zaporozhye" , 0x094C95 },
- { (char*) "Europe/Zurich" , 0x0954E9 },
- { (char*) "Factory" , 0x095C6A },
- { (char*) "GB" , 0x095CEA },
- { (char*) "GB-Eire" , 0x096B46 },
- { (char*) "GMT" , 0x0979A2 },
- { (char*) "GMT+0" , 0x097A20 },
- { (char*) "GMT-0" , 0x097A9E },
- { (char*) "GMT0" , 0x097B1C },
- { (char*) "Greenwich" , 0x097B9A },
- { (char*) "Hongkong" , 0x097C18 },
- { (char*) "HST" , 0x0980F5 },
- { (char*) "Iceland" , 0x09824A },
- { (char*) "Indian/Antananarivo" , 0x0982EA },
- { (char*) "Indian/Chagos" , 0x0983D1 },
- { (char*) "Indian/Christmas" , 0x098496 },
- { (char*) "Indian/Cocos" , 0x098539 },
- { (char*) "Indian/Comoro" , 0x0985E5 },
- { (char*) "Indian/Kerguelen" , 0x098686 },
- { (char*) "Indian/Mahe" , 0x098729 },
- { (char*) "Indian/Maldives" , 0x0987CC },
- { (char*) "Indian/Mauritius" , 0x098891 },
- { (char*) "Indian/Mayotte" , 0x098980 },
- { (char*) "Indian/Reunion" , 0x098A21 },
- { (char*) "Iran" , 0x098AC4 },
- { (char*) "Israel" , 0x098FB0 },
- { (char*) "Jamaica" , 0x099910 },
- { (char*) "Japan" , 0x099AFE },
- { (char*) "Kwajalein" , 0x099C3F },
- { (char*) "Libya" , 0x099D79 },
- { (char*) "MET" , 0x099FF6 },
- { (char*) "Mexico/BajaNorte" , 0x09AB77 },
- { (char*) "Mexico/BajaSur" , 0x09B6DD },
- { (char*) "Mexico/General" , 0x09BB0D },
- { (char*) "MST" , 0x09BFDF },
- { (char*) "MST7MDT" , 0x09C153 },
- { (char*) "Navajo" , 0x09CAFB },
- { (char*) "NZ" , 0x09D4A3 },
- { (char*) "NZ-CHAT" , 0x09DE34 },
- { (char*) "Pacific/Apia" , 0x09E646 },
- { (char*) "Pacific/Auckland" , 0x09E8A8 },
- { (char*) "Pacific/Bougainville" , 0x09F24C },
- { (char*) "Pacific/Chatham" , 0x09F362 },
- { (char*) "Pacific/Chuuk" , 0x09FB83 },
- { (char*) "Pacific/Easter" , 0x09FC9D },
- { (char*) "Pacific/Efate" , 0x0A0561 },
- { (char*) "Pacific/Enderbury" , 0x0A0779 },
- { (char*) "Pacific/Fakaofo" , 0x0A0861 },
- { (char*) "Pacific/Fiji" , 0x0A0927 },
- { (char*) "Pacific/Funafuti" , 0x0A0B67 },
- { (char*) "Pacific/Galapagos" , 0x0A0C0B },
- { (char*) "Pacific/Gambier" , 0x0A0D08 },
- { (char*) "Pacific/Guadalcanal" , 0x0A0DB9 },
- { (char*) "Pacific/Guam" , 0x0A0E5D },
- { (char*) "Pacific/Honolulu" , 0x0A1057 },
- { (char*) "Pacific/Johnston" , 0x0A11B2 },
- { (char*) "Pacific/Kanton" , 0x0A1307 },
- { (char*) "Pacific/Kiritimati" , 0x0A13FE },
- { (char*) "Pacific/Kosrae" , 0x0A14F6 },
- { (char*) "Pacific/Kwajalein" , 0x0A1659 },
- { (char*) "Pacific/Majuro" , 0x0A179C },
- { (char*) "Pacific/Marquesas" , 0x0A18E8 },
- { (char*) "Pacific/Midway" , 0x0A19A4 },
- { (char*) "Pacific/Nauru" , 0x0A1A97 },
- { (char*) "Pacific/Niue" , 0x0A1B91 },
- { (char*) "Pacific/Norfolk" , 0x0A1C5A },
- { (char*) "Pacific/Noumea" , 0x0A1FC8 },
- { (char*) "Pacific/Pago_Pago" , 0x0A20F6 },
- { (char*) "Pacific/Palau" , 0x0A21B1 },
- { (char*) "Pacific/Pitcairn" , 0x0A2263 },
- { (char*) "Pacific/Pohnpei" , 0x0A232B },
- { (char*) "Pacific/Ponape" , 0x0A2466 },
- { (char*) "Pacific/Port_Moresby" , 0x0A250A },
- { (char*) "Pacific/Rarotonga" , 0x0A25DA },
- { (char*) "Pacific/Saipan" , 0x0A2833 },
- { (char*) "Pacific/Samoa" , 0x0A2A1F },
- { (char*) "Pacific/Tahiti" , 0x0A2ADA },
- { (char*) "Pacific/Tarawa" , 0x0A2B8C },
- { (char*) "Pacific/Tongatapu" , 0x0A2C3F },
- { (char*) "Pacific/Truk" , 0x0A2DB1 },
- { (char*) "Pacific/Wake" , 0x0A2E69 },
- { (char*) "Pacific/Wallis" , 0x0A2F18 },
- { (char*) "Pacific/Yap" , 0x0A2FBC },
- { (char*) "Poland" , 0x0A3074 },
- { (char*) "Portugal" , 0x0A3ADE },
- { (char*) "PRC" , 0x0A48B1 },
- { (char*) "PST8PDT" , 0x0A4AEE },
- { (char*) "ROC" , 0x0A561E },
- { (char*) "ROK" , 0x0A5923 },
- { (char*) "Singapore" , 0x0A5B98 },
- { (char*) "Turkey" , 0x0A5D35 },
- { (char*) "UCT" , 0x0A64CE },
- { (char*) "Universal" , 0x0A654C },
- { (char*) "US/Alaska" , 0x0A65CA },
- { (char*) "US/Aleutian" , 0x0A6F19 },
- { (char*) "US/Arizona" , 0x0A7859 },
- { (char*) "US/Central" , 0x0A79CD },
- { (char*) "US/East-Indiana" , 0x0A87E1 },
- { (char*) "US/Eastern" , 0x0A8E7F },
- { (char*) "US/Hawaii" , 0x0A9C6B },
- { (char*) "US/Indiana-Starke" , 0x0A9DC0 },
- { (char*) "US/Michigan" , 0x0AA758 },
- { (char*) "US/Mountain" , 0x0AB01A },
- { (char*) "US/Pacific" , 0x0AB9C2 },
- { (char*) "US/Samoa" , 0x0AC4F2 },
- { (char*) "UTC" , 0x0AC5AD },
- { (char*) "W-SU" , 0x0AC62B },
- { (char*) "WET" , 0x0ACC36 },
- { (char*) "Zulu" , 0x0ADA09 },
+ { (char*) "America/Iqaluit" , 0x01F35F },
+ { (char*) "America/Jamaica" , 0x01FC1E },
+ { (char*) "America/Jujuy" , 0x01FE0C },
+ { (char*) "America/Juneau" , 0x020222 },
+ { (char*) "America/Kentucky/Louisville" , 0x020B73 },
+ { (char*) "America/Kentucky/Monticello" , 0x021681 },
+ { (char*) "America/Knox_IN" , 0x021FE1 },
+ { (char*) "America/Kralendijk" , 0x022979 },
+ { (char*) "America/La_Paz" , 0x022A7B },
+ { (char*) "America/Lima" , 0x022B61 },
+ { (char*) "America/Los_Angeles" , 0x022CF5 },
+ { (char*) "America/Louisville" , 0x02382C },
+ { (char*) "America/Lower_Princes" , 0x02431C },
+ { (char*) "America/Maceio" , 0x02441E },
+ { (char*) "America/Managua" , 0x024714 },
+ { (char*) "America/Manaus" , 0x0248CE },
+ { (char*) "America/Marigot" , 0x024B37 },
+ { (char*) "America/Martinique" , 0x024C39 },
+ { (char*) "America/Matamoros" , 0x024D2D },
+ { (char*) "America/Mazatlan" , 0x0252EF },
+ { (char*) "America/Mendoza" , 0x025751 },
+ { (char*) "America/Menominee" , 0x025B83 },
+ { (char*) "America/Merida" , 0x026490 },
+ { (char*) "America/Metlakatla" , 0x026899 },
+ { (char*) "America/Mexico_City" , 0x026E4B },
+ { (char*) "America/Miquelon" , 0x02732B },
+ { (char*) "America/Moncton" , 0x0279AB },
+ { (char*) "America/Monterrey" , 0x028621 },
+ { (char*) "America/Montevideo" , 0x028ABD },
+ { (char*) "America/Montreal" , 0x0290A1 },
+ { (char*) "America/Montserrat" , 0x029E53 },
+ { (char*) "America/Nassau" , 0x029EF3 },
+ { (char*) "America/New_York" , 0x02A853 },
+ { (char*) "America/Nipigon" , 0x02B653 },
+ { (char*) "America/Nome" , 0x02C405 },
+ { (char*) "America/Noronha" , 0x02CD5D },
+ { (char*) "America/North_Dakota/Beulah" , 0x02D037 },
+ { (char*) "America/North_Dakota/Center" , 0x02D9B4 },
+ { (char*) "America/North_Dakota/New_Salem" , 0x02E331 },
+ { (char*) "America/Nuuk" , 0x02ECB4 },
+ { (char*) "America/Ojinaga" , 0x02F432 },
+ { (char*) "America/Panama" , 0x02FA4E },
+ { (char*) "America/Pangnirtung" , 0x02FB10 },
+ { (char*) "America/Paramaribo" , 0x0303B6 },
+ { (char*) "America/Phoenix" , 0x0304BA },
+ { (char*) "America/Port-au-Prince" , 0x030646 },
+ { (char*) "America/Port_of_Spain" , 0x030BEC },
+ { (char*) "America/Porto_Acre" , 0x030C8C },
+ { (char*) "America/Porto_Velho" , 0x030EFE },
+ { (char*) "America/Puerto_Rico" , 0x031144 },
+ { (char*) "America/Punta_Arenas" , 0x031246 },
+ { (char*) "America/Rainy_River" , 0x0319D1 },
+ { (char*) "America/Rankin_Inlet" , 0x0323E3 },
+ { (char*) "America/Recife" , 0x032C17 },
+ { (char*) "America/Regina" , 0x032EEB },
+ { (char*) "America/Resolute" , 0x0332E0 },
+ { (char*) "America/Rio_Branco" , 0x033B15 },
+ { (char*) "America/Rosario" , 0x033D8B },
+ { (char*) "America/Santa_Isabel" , 0x0341BD },
+ { (char*) "America/Santarem" , 0x034D23 },
+ { (char*) "America/Santiago" , 0x034F86 },
+ { (char*) "America/Santo_Domingo" , 0x035972 },
+ { (char*) "America/Sao_Paulo" , 0x035B48 },
+ { (char*) "America/Scoresbysund" , 0x036120 },
+ { (char*) "America/Shiprock" , 0x0368D8 },
+ { (char*) "America/Sitka" , 0x037280 },
+ { (char*) "America/St_Barthelemy" , 0x037BB8 },
+ { (char*) "America/St_Johns" , 0x037CBA },
+ { (char*) "America/St_Kitts" , 0x038B28 },
+ { (char*) "America/St_Lucia" , 0x038BC8 },
+ { (char*) "America/St_Thomas" , 0x038C8A },
+ { (char*) "America/St_Vincent" , 0x038D2A },
+ { (char*) "America/Swift_Current" , 0x038DEC },
+ { (char*) "America/Tegucigalpa" , 0x03903A },
+ { (char*) "America/Thule" , 0x039142 },
+ { (char*) "America/Thunder_Bay" , 0x03973A },
+ { (char*) "America/Tijuana" , 0x03A4EC },
+ { (char*) "America/Toronto" , 0x03B061 },
+ { (char*) "America/Tortola" , 0x03BE31 },
+ { (char*) "America/Vancouver" , 0x03BED1 },
+ { (char*) "America/Virgin" , 0x03C910 },
+ { (char*) "America/Whitehorse" , 0x03CA12 },
+ { (char*) "America/Winnipeg" , 0x03D07E },
+ { (char*) "America/Yakutat" , 0x03DAAE },
+ { (char*) "America/Yellowknife" , 0x03E3CB },
+ { (char*) "Antarctica/Casey" , 0x03EBC5 },
+ { (char*) "Antarctica/Davis" , 0x03ED7D },
+ { (char*) "Antarctica/DumontDUrville" , 0x03EEA9 },
+ { (char*) "Antarctica/Macquarie" , 0x03EF79 },
+ { (char*) "Antarctica/Mawson" , 0x03F869 },
+ { (char*) "Antarctica/McMurdo" , 0x03F934 },
+ { (char*) "Antarctica/Palmer" , 0x04012F },
+ { (char*) "Antarctica/Rothera" , 0x0406BD },
+ { (char*) "Antarctica/South_Pole" , 0x040766 },
+ { (char*) "Antarctica/Syowa" , 0x0410F7 },
+ { (char*) "Antarctica/Troll" , 0x04119F },
+ { (char*) "Antarctica/Vostok" , 0x04162C },
+ { (char*) "Arctic/Longyearbyen" , 0x041713 },
+ { (char*) "Asia/Aden" , 0x042019 },
+ { (char*) "Asia/Almaty" , 0x0420BC },
+ { (char*) "Asia/Amman" , 0x0424B1 },
+ { (char*) "Asia/Anadyr" , 0x042A56 },
+ { (char*) "Asia/Aqtau" , 0x042F0B },
+ { (char*) "Asia/Aqtobe" , 0x0432F5 },
+ { (char*) "Asia/Ashgabat" , 0x0436F3 },
+ { (char*) "Asia/Ashkhabad" , 0x04395C },
+ { (char*) "Asia/Atyrau" , 0x043BC5 },
+ { (char*) "Asia/Baghdad" , 0x043FB7 },
+ { (char*) "Asia/Bahrain" , 0x04438C },
+ { (char*) "Asia/Baku" , 0x044477 },
+ { (char*) "Asia/Bangkok" , 0x044940 },
+ { (char*) "Asia/Barnaul" , 0x044A05 },
+ { (char*) "Asia/Beirut" , 0x044ED6 },
+ { (char*) "Asia/Bishkek" , 0x04574C },
+ { (char*) "Asia/Brunei" , 0x045B21 },
+ { (char*) "Asia/Calcutta" , 0x045BEA },
+ { (char*) "Asia/Chita" , 0x045D13 },
+ { (char*) "Asia/Choibalsan" , 0x0461EA },
+ { (char*) "Asia/Chongqing" , 0x046563 },
+ { (char*) "Asia/Chungking" , 0x0467A0 },
+ { (char*) "Asia/Colombo" , 0x0469DD },
+ { (char*) "Asia/Dacca" , 0x046B4F },
+ { (char*) "Asia/Damascus" , 0x046C9E },
+ { (char*) "Asia/Dhaka" , 0x0473FB },
+ { (char*) "Asia/Dili" , 0x04754A },
+ { (char*) "Asia/Dubai" , 0x047657 },
+ { (char*) "Asia/Dushanbe" , 0x0476FA },
+ { (char*) "Asia/Famagusta" , 0x047947 },
+ { (char*) "Asia/Gaza" , 0x04814E },
+ { (char*) "Asia/Harbin" , 0x049068 },
+ { (char*) "Asia/Hebron" , 0x0492A5 },
+ { (char*) "Asia/Ho_Chi_Minh" , 0x04A1DA },
+ { (char*) "Asia/Hong_Kong" , 0x04A32F },
+ { (char*) "Asia/Hovd" , 0x04A80C },
+ { (char*) "Asia/Irkutsk" , 0x04AB9B },
+ { (char*) "Asia/Istanbul" , 0x04B08E },
+ { (char*) "Asia/Jakarta" , 0x04B827 },
+ { (char*) "Asia/Jayapura" , 0x04B9BF },
+ { (char*) "Asia/Jerusalem" , 0x04BADE },
+ { (char*) "Asia/Kabul" , 0x04C43E },
+ { (char*) "Asia/Kamchatka" , 0x04C50C },
+ { (char*) "Asia/Karachi" , 0x04C9AA },
+ { (char*) "Asia/Kashgar" , 0x04CB31 },
+ { (char*) "Asia/Kathmandu" , 0x04CBD4 },
+ { (char*) "Asia/Katmandu" , 0x04CCA6 },
+ { (char*) "Asia/Khandyga" , 0x04CD78 },
+ { (char*) "Asia/Kolkata" , 0x04D28B },
+ { (char*) "Asia/Krasnoyarsk" , 0x04D3B4 },
+ { (char*) "Asia/Kuala_Lumpur" , 0x04D882 },
+ { (char*) "Asia/Kuching" , 0x04DA33 },
+ { (char*) "Asia/Kuwait" , 0x04DC22 },
+ { (char*) "Asia/Macao" , 0x04DCC5 },
+ { (char*) "Asia/Macau" , 0x04E19C },
+ { (char*) "Asia/Magadan" , 0x04E673 },
+ { (char*) "Asia/Makassar" , 0x04EB47 },
+ { (char*) "Asia/Manila" , 0x04EC9A },
+ { (char*) "Asia/Muscat" , 0x04EE4C },
+ { (char*) "Asia/Nicosia" , 0x04EEEF },
+ { (char*) "Asia/Novokuznetsk" , 0x04F6DB },
+ { (char*) "Asia/Novosibirsk" , 0x04FB77 },
+ { (char*) "Asia/Omsk" , 0x05004E },
+ { (char*) "Asia/Oral" , 0x050510 },
+ { (char*) "Asia/Phnom_Penh" , 0x05090A },
+ { (char*) "Asia/Pontianak" , 0x050A27 },
+ { (char*) "Asia/Pyongyang" , 0x050BAA },
+ { (char*) "Asia/Qatar" , 0x050CA3 },
+ { (char*) "Asia/Qostanay" , 0x050D68 },
+ { (char*) "Asia/Qyzylorda" , 0x05118F },
+ { (char*) "Asia/Rangoon" , 0x0515AB },
+ { (char*) "Asia/Riyadh" , 0x0516B5 },
+ { (char*) "Asia/Saigon" , 0x051758 },
+ { (char*) "Asia/Sakhalin" , 0x0518AD },
+ { (char*) "Asia/Samarkand" , 0x051D75 },
+ { (char*) "Asia/Seoul" , 0x051FC5 },
+ { (char*) "Asia/Shanghai" , 0x05223A },
+ { (char*) "Asia/Singapore" , 0x052483 },
+ { (char*) "Asia/Srednekolymsk" , 0x052620 },
+ { (char*) "Asia/Taipei" , 0x052AF4 },
+ { (char*) "Asia/Tashkent" , 0x052DF9 },
+ { (char*) "Asia/Tbilisi" , 0x053057 },
+ { (char*) "Asia/Tehran" , 0x053452 },
+ { (char*) "Asia/Tel_Aviv" , 0x05393E },
+ { (char*) "Asia/Thimbu" , 0x05429E },
+ { (char*) "Asia/Thimphu" , 0x054367 },
+ { (char*) "Asia/Tokyo" , 0x054430 },
+ { (char*) "Asia/Tomsk" , 0x054571 },
+ { (char*) "Asia/Ujung_Pandang" , 0x054A42 },
+ { (char*) "Asia/Ulaanbaatar" , 0x054B4C },
+ { (char*) "Asia/Ulan_Bator" , 0x054ED5 },
+ { (char*) "Asia/Urumqi" , 0x05524E },
+ { (char*) "Asia/Ust-Nera" , 0x0552FE },
+ { (char*) "Asia/Vientiane" , 0x0557F4 },
+ { (char*) "Asia/Vladivostok" , 0x05592D },
+ { (char*) "Asia/Yakutsk" , 0x055DF6 },
+ { (char*) "Asia/Yangon" , 0x0562BE },
+ { (char*) "Asia/Yekaterinburg" , 0x0563C8 },
+ { (char*) "Asia/Yerevan" , 0x0568AF },
+ { (char*) "Atlantic/Azores" , 0x056D2C },
+ { (char*) "Atlantic/Bermuda" , 0x057AB0 },
+ { (char*) "Atlantic/Canary" , 0x058418 },
+ { (char*) "Atlantic/Cape_Verde" , 0x058B9B },
+ { (char*) "Atlantic/Faeroe" , 0x058CA7 },
+ { (char*) "Atlantic/Faroe" , 0x0593CA },
+ { (char*) "Atlantic/Jan_Mayen" , 0x059AED },
+ { (char*) "Atlantic/Madeira" , 0x05A3F3 },
+ { (char*) "Atlantic/Reykjavik" , 0x05B13F },
+ { (char*) "Atlantic/South_Georgia" , 0x05B5D5 },
+ { (char*) "Atlantic/St_Helena" , 0x05B677 },
+ { (char*) "Atlantic/Stanley" , 0x05B739 },
+ { (char*) "Australia/ACT" , 0x05BBF5 },
+ { (char*) "Australia/Adelaide" , 0x05C48F },
+ { (char*) "Australia/Brisbane" , 0x05CD4A },
+ { (char*) "Australia/Broken_Hill" , 0x05CF10 },
+ { (char*) "Australia/Canberra" , 0x05D7ED },
+ { (char*) "Australia/Currie" , 0x05E087 },
+ { (char*) "Australia/Darwin" , 0x05E9C9 },
+ { (char*) "Australia/Eucla" , 0x05EB2C },
+ { (char*) "Australia/Hobart" , 0x05ED19 },
+ { (char*) "Australia/LHI" , 0x05F663 },
+ { (char*) "Australia/Lindeman" , 0x05FDA5 },
+ { (char*) "Australia/Lord_Howe" , 0x05FFAB },
+ { (char*) "Australia/Melbourne" , 0x0606FD },
+ { (char*) "Australia/North" , 0x060F9F },
+ { (char*) "Australia/NSW" , 0x0610F0 },
+ { (char*) "Australia/Perth" , 0x06198A },
+ { (char*) "Australia/Queensland" , 0x061B72 },
+ { (char*) "Australia/South" , 0x061D21 },
+ { (char*) "Australia/Sydney" , 0x0625CD },
+ { (char*) "Australia/Tasmania" , 0x062E83 },
+ { (char*) "Australia/Victoria" , 0x0637C5 },
+ { (char*) "Australia/West" , 0x06405F },
+ { (char*) "Australia/Yancowinna" , 0x064229 },
+ { (char*) "Brazil/Acre" , 0x064AEA },
+ { (char*) "Brazil/DeNoronha" , 0x064D5C },
+ { (char*) "Brazil/East" , 0x065026 },
+ { (char*) "Brazil/West" , 0x0655C8 },
+ { (char*) "Canada/Atlantic" , 0x065822 },
+ { (char*) "Canada/Central" , 0x06658E },
+ { (char*) "Canada/Eastern" , 0x066FA0 },
+ { (char*) "Canada/Mountain" , 0x067D52 },
+ { (char*) "Canada/Newfoundland" , 0x06854C },
+ { (char*) "Canada/Pacific" , 0x06939F },
+ { (char*) "Canada/Saskatchewan" , 0x069DC9 },
+ { (char*) "Canada/Yukon" , 0x06A1A9 },
+ { (char*) "CET" , 0x06A803 },
+ { (char*) "Chile/Continental" , 0x06B384 },
+ { (char*) "Chile/EasterIsland" , 0x06BD63 },
+ { (char*) "CST6CDT" , 0x06C61A },
+ { (char*) "Cuba" , 0x06CEEE },
+ { (char*) "EET" , 0x06D86A },
+ { (char*) "Egypt" , 0x06E14C },
+ { (char*) "Eire" , 0x06EAB7 },
+ { (char*) "EST" , 0x06F867 },
+ { (char*) "EST5EDT" , 0x06F929 },
+ { (char*) "Etc/GMT" , 0x0701FD },
+ { (char*) "Etc/GMT+0" , 0x07027B },
+ { (char*) "Etc/GMT+1" , 0x0702F9 },
+ { (char*) "Etc/GMT+10" , 0x070379 },
+ { (char*) "Etc/GMT+11" , 0x0703FA },
+ { (char*) "Etc/GMT+12" , 0x07047B },
+ { (char*) "Etc/GMT+2" , 0x0704FC },
+ { (char*) "Etc/GMT+3" , 0x07057C },
+ { (char*) "Etc/GMT+4" , 0x0705FC },
+ { (char*) "Etc/GMT+5" , 0x07067C },
+ { (char*) "Etc/GMT+6" , 0x0706FC },
+ { (char*) "Etc/GMT+7" , 0x07077C },
+ { (char*) "Etc/GMT+8" , 0x0707FC },
+ { (char*) "Etc/GMT+9" , 0x07087C },
+ { (char*) "Etc/GMT-0" , 0x0708FC },
+ { (char*) "Etc/GMT-1" , 0x07097A },
+ { (char*) "Etc/GMT-10" , 0x0709FB },
+ { (char*) "Etc/GMT-11" , 0x070A7D },
+ { (char*) "Etc/GMT-12" , 0x070AFF },
+ { (char*) "Etc/GMT-13" , 0x070B81 },
+ { (char*) "Etc/GMT-14" , 0x070C03 },
+ { (char*) "Etc/GMT-2" , 0x070C85 },
+ { (char*) "Etc/GMT-3" , 0x070D06 },
+ { (char*) "Etc/GMT-4" , 0x070D87 },
+ { (char*) "Etc/GMT-5" , 0x070E08 },
+ { (char*) "Etc/GMT-6" , 0x070E89 },
+ { (char*) "Etc/GMT-7" , 0x070F0A },
+ { (char*) "Etc/GMT-8" , 0x070F8B },
+ { (char*) "Etc/GMT-9" , 0x07100C },
+ { (char*) "Etc/GMT0" , 0x07108D },
+ { (char*) "Etc/Greenwich" , 0x07110B },
+ { (char*) "Etc/UCT" , 0x071189 },
+ { (char*) "Etc/Universal" , 0x071207 },
+ { (char*) "Etc/UTC" , 0x071285 },
+ { (char*) "Etc/Zulu" , 0x071303 },
+ { (char*) "Europe/Amsterdam" , 0x071381 },
+ { (char*) "Europe/Andorra" , 0x071EEB },
+ { (char*) "Europe/Astrakhan" , 0x0725C5 },
+ { (char*) "Europe/Athens" , 0x072A62 },
+ { (char*) "Europe/Belfast" , 0x073344 },
+ { (char*) "Europe/Belgrade" , 0x0741A0 },
+ { (char*) "Europe/Berlin" , 0x07492C },
+ { (char*) "Europe/Bratislava" , 0x075241 },
+ { (char*) "Europe/Brussels" , 0x075B4A },
+ { (char*) "Europe/Bucharest" , 0x0766CB },
+ { (char*) "Europe/Budapest" , 0x076F5F },
+ { (char*) "Europe/Busingen" , 0x0778AB },
+ { (char*) "Europe/Chisinau" , 0x078034 },
+ { (char*) "Europe/Copenhagen" , 0x0789B8 },
+ { (char*) "Europe/Dublin" , 0x07921D },
+ { (char*) "Europe/Gibraltar" , 0x079FCD },
+ { (char*) "Europe/Guernsey" , 0x07ABD5 },
+ { (char*) "Europe/Helsinki" , 0x07BA75 },
+ { (char*) "Europe/Isle_of_Man" , 0x07C1ED },
+ { (char*) "Europe/Istanbul" , 0x07D039 },
+ { (char*) "Europe/Jersey" , 0x07D7D2 },
+ { (char*) "Europe/Kaliningrad" , 0x07E672 },
+ { (char*) "Europe/Kiev" , 0x07EC67 },
+ { (char*) "Europe/Kirov" , 0x07F4BB },
+ { (char*) "Europe/Kyiv" , 0x07F976 },
+ { (char*) "Europe/Lisbon" , 0x0801D9 },
+ { (char*) "Europe/Ljubljana" , 0x080FBF },
+ { (char*) "Europe/London" , 0x08174B },
+ { (char*) "Europe/Luxembourg" , 0x0825A7 },
+ { (char*) "Europe/Madrid" , 0x083135 },
+ { (char*) "Europe/Malta" , 0x083B87 },
+ { (char*) "Europe/Mariehamn" , 0x0845CF },
+ { (char*) "Europe/Minsk" , 0x084D47 },
+ { (char*) "Europe/Monaco" , 0x08526E },
+ { (char*) "Europe/Moscow" , 0x085DFA },
+ { (char*) "Europe/Nicosia" , 0x086419 },
+ { (char*) "Europe/Oslo" , 0x086BF7 },
+ { (char*) "Europe/Paris" , 0x0874B7 },
+ { (char*) "Europe/Podgorica" , 0x088055 },
+ { (char*) "Europe/Prague" , 0x0887E1 },
+ { (char*) "Europe/Riga" , 0x0890EA },
+ { (char*) "Europe/Rome" , 0x08998C },
+ { (char*) "Europe/Samara" , 0x08A3E9 },
+ { (char*) "Europe/San_Marino" , 0x08A8BF },
+ { (char*) "Europe/Sarajevo" , 0x08B31C },
+ { (char*) "Europe/Saratov" , 0x08BAA8 },
+ { (char*) "Europe/Simferopol" , 0x08BF55 },
+ { (char*) "Europe/Skopje" , 0x08C524 },
+ { (char*) "Europe/Sofia" , 0x08CCB0 },
+ { (char*) "Europe/Stockholm" , 0x08D4D9 },
+ { (char*) "Europe/Tallinn" , 0x08DC5A },
+ { (char*) "Europe/Tirane" , 0x08E4CA },
+ { (char*) "Europe/Tiraspol" , 0x08ECFA },
+ { (char*) "Europe/Ulyanovsk" , 0x08F67E },
+ { (char*) "Europe/Uzhgorod" , 0x08FB81 },
+ { (char*) "Europe/Vaduz" , 0x0903D5 },
+ { (char*) "Europe/Vatican" , 0x090B41 },
+ { (char*) "Europe/Vienna" , 0x09159E },
+ { (char*) "Europe/Vilnius" , 0x091E42 },
+ { (char*) "Europe/Volgograd" , 0x0926C0 },
+ { (char*) "Europe/Warsaw" , 0x092B87 },
+ { (char*) "Europe/Zagreb" , 0x0935F1 },
+ { (char*) "Europe/Zaporozhye" , 0x093D7D },
+ { (char*) "Europe/Zurich" , 0x0945D1 },
+ { (char*) "Factory" , 0x094D52 },
+ { (char*) "GB" , 0x094DD2 },
+ { (char*) "GB-Eire" , 0x095C2E },
+ { (char*) "GMT" , 0x096A8A },
+ { (char*) "GMT+0" , 0x096B08 },
+ { (char*) "GMT-0" , 0x096B86 },
+ { (char*) "GMT0" , 0x096C04 },
+ { (char*) "Greenwich" , 0x096C82 },
+ { (char*) "Hongkong" , 0x096D00 },
+ { (char*) "HST" , 0x0971DD },
+ { (char*) "Iceland" , 0x097332 },
+ { (char*) "Indian/Antananarivo" , 0x0973D2 },
+ { (char*) "Indian/Chagos" , 0x0974B9 },
+ { (char*) "Indian/Christmas" , 0x09757E },
+ { (char*) "Indian/Cocos" , 0x097621 },
+ { (char*) "Indian/Comoro" , 0x0976CD },
+ { (char*) "Indian/Kerguelen" , 0x09776E },
+ { (char*) "Indian/Mahe" , 0x097811 },
+ { (char*) "Indian/Maldives" , 0x0978B4 },
+ { (char*) "Indian/Mauritius" , 0x097979 },
+ { (char*) "Indian/Mayotte" , 0x097A68 },
+ { (char*) "Indian/Reunion" , 0x097B09 },
+ { (char*) "Iran" , 0x097BAC },
+ { (char*) "Israel" , 0x098098 },
+ { (char*) "Jamaica" , 0x0989F8 },
+ { (char*) "Japan" , 0x098BE6 },
+ { (char*) "Kwajalein" , 0x098D27 },
+ { (char*) "Libya" , 0x098E61 },
+ { (char*) "MET" , 0x0990DE },
+ { (char*) "Mexico/BajaNorte" , 0x099C5F },
+ { (char*) "Mexico/BajaSur" , 0x09A7C5 },
+ { (char*) "Mexico/General" , 0x09ABF5 },
+ { (char*) "MST" , 0x09B0C7 },
+ { (char*) "MST7MDT" , 0x09B23B },
+ { (char*) "Navajo" , 0x09BB0F },
+ { (char*) "NZ" , 0x09C4B7 },
+ { (char*) "NZ-CHAT" , 0x09CE48 },
+ { (char*) "Pacific/Apia" , 0x09D65A },
+ { (char*) "Pacific/Auckland" , 0x09D8BC },
+ { (char*) "Pacific/Bougainville" , 0x09E260 },
+ { (char*) "Pacific/Chatham" , 0x09E376 },
+ { (char*) "Pacific/Chuuk" , 0x09EB97 },
+ { (char*) "Pacific/Easter" , 0x09ECB1 },
+ { (char*) "Pacific/Efate" , 0x09F575 },
+ { (char*) "Pacific/Enderbury" , 0x09F78D },
+ { (char*) "Pacific/Fakaofo" , 0x09F875 },
+ { (char*) "Pacific/Fiji" , 0x09F93B },
+ { (char*) "Pacific/Funafuti" , 0x09FB7B },
+ { (char*) "Pacific/Galapagos" , 0x09FC1F },
+ { (char*) "Pacific/Gambier" , 0x09FD1C },
+ { (char*) "Pacific/Guadalcanal" , 0x09FDCD },
+ { (char*) "Pacific/Guam" , 0x09FE71 },
+ { (char*) "Pacific/Honolulu" , 0x0A006B },
+ { (char*) "Pacific/Johnston" , 0x0A01C6 },
+ { (char*) "Pacific/Kanton" , 0x0A031B },
+ { (char*) "Pacific/Kiritimati" , 0x0A0412 },
+ { (char*) "Pacific/Kosrae" , 0x0A050A },
+ { (char*) "Pacific/Kwajalein" , 0x0A066D },
+ { (char*) "Pacific/Majuro" , 0x0A07B0 },
+ { (char*) "Pacific/Marquesas" , 0x0A08FC },
+ { (char*) "Pacific/Midway" , 0x0A09B8 },
+ { (char*) "Pacific/Nauru" , 0x0A0AAB },
+ { (char*) "Pacific/Niue" , 0x0A0BA5 },
+ { (char*) "Pacific/Norfolk" , 0x0A0C6E },
+ { (char*) "Pacific/Noumea" , 0x0A0FDC },
+ { (char*) "Pacific/Pago_Pago" , 0x0A110A },
+ { (char*) "Pacific/Palau" , 0x0A11C5 },
+ { (char*) "Pacific/Pitcairn" , 0x0A1277 },
+ { (char*) "Pacific/Pohnpei" , 0x0A133F },
+ { (char*) "Pacific/Ponape" , 0x0A147A },
+ { (char*) "Pacific/Port_Moresby" , 0x0A151E },
+ { (char*) "Pacific/Rarotonga" , 0x0A15EE },
+ { (char*) "Pacific/Saipan" , 0x0A1847 },
+ { (char*) "Pacific/Samoa" , 0x0A1A33 },
+ { (char*) "Pacific/Tahiti" , 0x0A1AEE },
+ { (char*) "Pacific/Tarawa" , 0x0A1BA0 },
+ { (char*) "Pacific/Tongatapu" , 0x0A1C53 },
+ { (char*) "Pacific/Truk" , 0x0A1DC5 },
+ { (char*) "Pacific/Wake" , 0x0A1E7D },
+ { (char*) "Pacific/Wallis" , 0x0A1F2C },
+ { (char*) "Pacific/Yap" , 0x0A1FD0 },
+ { (char*) "Poland" , 0x0A2088 },
+ { (char*) "Portugal" , 0x0A2AF2 },
+ { (char*) "PRC" , 0x0A38C5 },
+ { (char*) "PST8PDT" , 0x0A3B02 },
+ { (char*) "ROC" , 0x0A43D6 },
+ { (char*) "ROK" , 0x0A46DB },
+ { (char*) "Singapore" , 0x0A4950 },
+ { (char*) "Turkey" , 0x0A4AED },
+ { (char*) "UCT" , 0x0A5286 },
+ { (char*) "Universal" , 0x0A5304 },
+ { (char*) "US/Alaska" , 0x0A5382 },
+ { (char*) "US/Aleutian" , 0x0A5CD1 },
+ { (char*) "US/Arizona" , 0x0A6611 },
+ { (char*) "US/Central" , 0x0A6785 },
+ { (char*) "US/East-Indiana" , 0x0A7599 },
+ { (char*) "US/Eastern" , 0x0A7C37 },
+ { (char*) "US/Hawaii" , 0x0A8A23 },
+ { (char*) "US/Indiana-Starke" , 0x0A8B78 },
+ { (char*) "US/Michigan" , 0x0A9510 },
+ { (char*) "US/Mountain" , 0x0A9DD2 },
+ { (char*) "US/Pacific" , 0x0AA77A },
+ { (char*) "US/Samoa" , 0x0AB2AA },
+ { (char*) "UTC" , 0x0AB365 },
+ { (char*) "W-SU" , 0x0AB3E3 },
+ { (char*) "WET" , 0x0AB9EE },
+ { (char*) "Zulu" , 0x0AC7C1 },
};
-const unsigned char timelib_timezone_db_data_builtin[711303] = {
+const unsigned char timelib_timezone_db_data_builtin[706623] = {
/* Africa/Abidjan */
0x50, 0x48, 0x50, 0x32, 0x01, 0x43, 0x49, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
@@ -26642,8 +26595,8 @@
0x73, 0x60, 0x01, 0x14, 0xFF, 0xFF, 0x73, 0x60, 0x00, 0x18, 0xFF, 0xFF, 0x81, 0x70, 0x01, 0x1D,
0xFF, 0xFF, 0x73, 0x60, 0x00, 0x19, 0x4C, 0x4D, 0x54, 0x00, 0x4E, 0x53, 0x54, 0x00, 0x4E, 0x57,
0x54, 0x00, 0x4E, 0x50, 0x54, 0x00, 0x42, 0x53, 0x54, 0x00, 0x42, 0x44, 0x54, 0x00, 0x41, 0x48,
-0x53, 0x54, 0x00, 0x48, 0x44, 0x54, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00,
-0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0A, 0x48, 0x53, 0x54, 0x31,
+0x53, 0x54, 0x00, 0x48, 0x44, 0x54, 0x00, 0x00, 0x01, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x01, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0A, 0x48, 0x53, 0x54, 0x31,
0x30, 0x48, 0x44, 0x54, 0x2C, 0x4D, 0x33, 0x2E, 0x32, 0x2E, 0x30, 0x2C, 0x4D, 0x31, 0x31, 0x2E,
0x31, 0x2E, 0x30, 0x0A, 0x00, 0xD8, 0x7D, 0xE0, 0x00, 0x05, 0x19, 0x72, 0x00, 0x00, 0x00, 0x1A,
0x41, 0x6C, 0x61, 0x73, 0x6B, 0x61, 0x20, 0x2D, 0x20, 0x77, 0x65, 0x73, 0x74, 0x65, 0x72, 0x6E,
@@ -26795,8 +26748,8 @@
0x1A, 0xFF, 0xFF, 0x8F, 0x80, 0x01, 0x1E, 0xFF, 0xFF, 0x81, 0x70, 0x00, 0x23, 0x4C, 0x4D, 0x54,
0x00, 0x41, 0x53, 0x54, 0x00, 0x41, 0x57, 0x54, 0x00, 0x41, 0x50, 0x54, 0x00, 0x41, 0x48, 0x53,
0x54, 0x00, 0x41, 0x48, 0x44, 0x54, 0x00, 0x59, 0x53, 0x54, 0x00, 0x41, 0x4B, 0x44, 0x54, 0x00,
-0x41, 0x4B, 0x53, 0x54, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0A, 0x41, 0x4B, 0x53, 0x54, 0x39, 0x41,
+0x41, 0x4B, 0x53, 0x54, 0x00, 0x00, 0x01, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x01, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0A, 0x41, 0x4B, 0x53, 0x54, 0x39, 0x41,
0x4B, 0x44, 0x54, 0x2C, 0x4D, 0x33, 0x2E, 0x32, 0x2E, 0x30, 0x2C, 0x4D, 0x31, 0x31, 0x2E, 0x31,
0x2E, 0x30, 0x0A, 0x00, 0xE6, 0xBD, 0x8D, 0x00, 0x2D, 0xED, 0xB4, 0x00, 0x00, 0x00, 0x13, 0x41,
0x6C, 0x61, 0x73, 0x6B, 0x61, 0x20, 0x28, 0x6D, 0x6F, 0x73, 0x74, 0x20, 0x61, 0x72, 0x65, 0x61,
@@ -28101,8 +28054,8 @@
0x73, 0x60, 0x01, 0x14, 0xFF, 0xFF, 0x73, 0x60, 0x00, 0x18, 0xFF, 0xFF, 0x81, 0x70, 0x01, 0x1D,
0xFF, 0xFF, 0x73, 0x60, 0x00, 0x19, 0x4C, 0x4D, 0x54, 0x00, 0x4E, 0x53, 0x54, 0x00, 0x4E, 0x57,
0x54, 0x00, 0x4E, 0x50, 0x54, 0x00, 0x42, 0x53, 0x54, 0x00, 0x42, 0x44, 0x54, 0x00, 0x41, 0x48,
-0x53, 0x54, 0x00, 0x48, 0x44, 0x54, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00,
-0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0A, 0x48, 0x53, 0x54, 0x31,
+0x53, 0x54, 0x00, 0x48, 0x44, 0x54, 0x00, 0x00, 0x01, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x01, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0A, 0x48, 0x53, 0x54, 0x31,
0x30, 0x48, 0x44, 0x54, 0x2C, 0x4D, 0x33, 0x2E, 0x32, 0x2E, 0x30, 0x2C, 0x4D, 0x31, 0x31, 0x2E,
0x31, 0x2E, 0x30, 0x0A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
@@ -28492,14 +28445,14 @@
0x50, 0x48, 0x50, 0x32, 0x01, 0x43, 0x4F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x10, 0x80, 0x00, 0x00, 0x00,
-0x98, 0x58, 0x55, 0x70, 0x2A, 0x03, 0x73, 0x50, 0x2B, 0x74, 0x89, 0x40, 0x01, 0x03, 0x02, 0x03,
+0x98, 0x58, 0x55, 0x70, 0x2A, 0x02, 0x21, 0xD0, 0x2B, 0x74, 0x89, 0x40, 0x01, 0x03, 0x02, 0x03,
0xFF, 0xFF, 0xBA, 0x90, 0x00, 0x00, 0xFF, 0xFF, 0xBA, 0x90, 0x00, 0x04, 0xFF, 0xFF, 0xC7, 0xC0,
0x01, 0x08, 0xFF, 0xFF, 0xB9, 0xB0, 0x00, 0x0C, 0x4C, 0x4D, 0x54, 0x00, 0x42, 0x4D, 0x54, 0x00,
0x2D, 0x30, 0x34, 0x00, 0x2D, 0x30, 0x35, 0x00, 0x54, 0x5A, 0x69, 0x66, 0x32, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x04,
0x00, 0x00, 0x00, 0x10, 0xFF, 0xFF, 0xFF, 0xFF, 0x5E, 0x9C, 0x34, 0xF0, 0xFF, 0xFF, 0xFF, 0xFF,
-0x98, 0x58, 0x55, 0x70, 0x00, 0x00, 0x00, 0x00, 0x2A, 0x03, 0x73, 0x50, 0x00, 0x00, 0x00, 0x00,
+0x98, 0x58, 0x55, 0x70, 0x00, 0x00, 0x00, 0x00, 0x2A, 0x02, 0x21, 0xD0, 0x00, 0x00, 0x00, 0x00,
0x2B, 0x74, 0x89, 0x40, 0x01, 0x03, 0x02, 0x03, 0xFF, 0xFF, 0xBA, 0x90, 0x00, 0x00, 0xFF, 0xFF,
0xBA, 0x90, 0x00, 0x04, 0xFF, 0xFF, 0xC7, 0xC0, 0x01, 0x08, 0xFF, 0xFF, 0xB9, 0xB0, 0x00, 0x0C,
0x4C, 0x4D, 0x54, 0x00, 0x42, 0x4D, 0x54, 0x00, 0x2D, 0x30, 0x34, 0x00, 0x2D, 0x30, 0x35, 0x00,
@@ -33264,7 +33217,7 @@
/* America/Inuvik */
0x50, 0x48, 0x50, 0x32, 0x01, 0x43, 0x41, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-0x00, 0x00, 0x00, 0x85, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x14, 0xE0, 0x06, 0x4E, 0x80,
+0x00, 0x00, 0x00, 0x6F, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x18, 0xE0, 0x06, 0x4E, 0x80,
0x04, 0x61, 0x27, 0xA0, 0x05, 0x51, 0x0A, 0x90, 0x06, 0x41, 0x09, 0xA0, 0x07, 0x30, 0xEC, 0x90,
0x08, 0x20, 0xEB, 0xA0, 0x09, 0x10, 0xCE, 0x90, 0x0A, 0x00, 0xCD, 0xA0, 0x0A, 0xF0, 0xB0, 0x90,
0x0B, 0xE0, 0xAF, 0xA0, 0x0C, 0xD9, 0xCD, 0x10, 0x0D, 0xC0, 0x91, 0xA0, 0x0E, 0xB9, 0xAF, 0x10,
@@ -33292,108 +33245,89 @@
0x5E, 0x64, 0xB4, 0x10, 0x5F, 0x9E, 0x6B, 0x00, 0x60, 0x4D, 0xD0, 0x90, 0x61, 0x87, 0x87, 0x80,
0x62, 0x2D, 0xB2, 0x90, 0x63, 0x67, 0x69, 0x80, 0x64, 0x0D, 0x94, 0x90, 0x65, 0x47, 0x4B, 0x80,
0x65, 0xED, 0x76, 0x90, 0x67, 0x27, 0x2D, 0x80, 0x67, 0xCD, 0x58, 0x90, 0x69, 0x07, 0x0F, 0x80,
-0x69, 0xAD, 0x3A, 0x90, 0x6A, 0xE6, 0xF1, 0x80, 0x6B, 0x96, 0x57, 0x10, 0x6C, 0xD0, 0x0E, 0x00,
-0x6D, 0x76, 0x39, 0x10, 0x6E, 0xAF, 0xF0, 0x00, 0x6F, 0x56, 0x1B, 0x10, 0x70, 0x8F, 0xD2, 0x00,
-0x71, 0x35, 0xFD, 0x10, 0x72, 0x6F, 0xB4, 0x00, 0x73, 0x15, 0xDF, 0x10, 0x74, 0x4F, 0x96, 0x00,
-0x74, 0xFE, 0xFB, 0x90, 0x76, 0x38, 0xB2, 0x80, 0x76, 0xDE, 0xDD, 0x90, 0x78, 0x18, 0x94, 0x80,
-0x78, 0xBE, 0xBF, 0x90, 0x79, 0xF8, 0x76, 0x80, 0x7A, 0x9E, 0xA1, 0x90, 0x7B, 0xD8, 0x58, 0x80,
-0x7C, 0x7E, 0x83, 0x90, 0x7D, 0xB8, 0x3A, 0x80, 0x7E, 0x5E, 0x65, 0x90, 0x7F, 0x98, 0x1C, 0x80,
-0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x04,
+0x69, 0xAD, 0x3A, 0x90, 0x6A, 0xE6, 0xF1, 0x80, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01,
+0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04,
0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04,
0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04,
0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04,
0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04,
0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04,
-0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04,
-0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04,
-0x03, 0x04, 0x03, 0x04, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x9D, 0x90, 0x01,
-0x04, 0xFF, 0xFF, 0x8F, 0x80, 0x00, 0x08, 0xFF, 0xFF, 0x9D, 0x90, 0x00, 0x0C, 0xFF, 0xFF, 0xAB,
-0xA0, 0x01, 0x10, 0x2D, 0x30, 0x30, 0x00, 0x50, 0x44, 0x54, 0x00, 0x50, 0x53, 0x54, 0x00, 0x4D,
-0x53, 0x54, 0x00, 0x4D, 0x44, 0x54, 0x00, 0x54, 0x5A, 0x69, 0x66, 0x32, 0x00, 0x00, 0x00, 0x00,
+0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x05, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x9D,
+0x90, 0x01, 0x04, 0xFF, 0xFF, 0x8F, 0x80, 0x00, 0x08, 0xFF, 0xFF, 0x9D, 0x90, 0x00, 0x0C, 0xFF,
+0xFF, 0xAB, 0xA0, 0x01, 0x10, 0xFF, 0xFF, 0xAB, 0xA0, 0x00, 0x14, 0x2D, 0x30, 0x30, 0x00, 0x50,
+0x44, 0x54, 0x00, 0x50, 0x53, 0x54, 0x00, 0x4D, 0x53, 0x54, 0x00, 0x4D, 0x44, 0x54, 0x00, 0x43,
+0x53, 0x54, 0x00, 0x54, 0x5A, 0x69, 0x66, 0x32, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x85, 0x00, 0x00, 0x00, 0x05, 0x00,
-0x00, 0x00, 0x14, 0xFF, 0xFF, 0xFF, 0xFF, 0xE0, 0x06, 0x4E, 0x80, 0x00, 0x00, 0x00, 0x00, 0x04,
-0x61, 0x27, 0xA0, 0x00, 0x00, 0x00, 0x00, 0x05, 0x51, 0x0A, 0x90, 0x00, 0x00, 0x00, 0x00, 0x06,
-0x41, 0x09, 0xA0, 0x00, 0x00, 0x00, 0x00, 0x07, 0x30, 0xEC, 0x90, 0x00, 0x00, 0x00, 0x00, 0x08,
-0x20, 0xEB, 0xA0, 0x00, 0x00, 0x00, 0x00, 0x09, 0x10, 0xCE, 0x90, 0x00, 0x00, 0x00, 0x00, 0x0A,
-0x00, 0xCD, 0xA0, 0x00, 0x00, 0x00, 0x00, 0x0A, 0xF0, 0xB0, 0x90, 0x00, 0x00, 0x00, 0x00, 0x0B,
-0xE0, 0xAF, 0xA0, 0x00, 0x00, 0x00, 0x00, 0x0C, 0xD9, 0xCD, 0x10, 0x00, 0x00, 0x00, 0x00, 0x0D,
-0xC0, 0x91, 0xA0, 0x00, 0x00, 0x00, 0x00, 0x0E, 0xB9, 0xAF, 0x10, 0x00, 0x00, 0x00, 0x00, 0x0F,
-0xA9, 0xAE, 0x20, 0x00, 0x00, 0x00, 0x00, 0x10, 0x99, 0x91, 0x10, 0x00, 0x00, 0x00, 0x00, 0x11,
-0x89, 0x90, 0x20, 0x00, 0x00, 0x00, 0x00, 0x12, 0x79, 0x65, 0x00, 0x00, 0x00, 0x00, 0x00, 0x13,
-0x69, 0x64, 0x10, 0x00, 0x00, 0x00, 0x00, 0x14, 0x59, 0x47, 0x00, 0x00, 0x00, 0x00, 0x00, 0x15,
-0x49, 0x46, 0x10, 0x00, 0x00, 0x00, 0x00, 0x16, 0x39, 0x29, 0x00, 0x00, 0x00, 0x00, 0x00, 0x17,
-0x29, 0x28, 0x10, 0x00, 0x00, 0x00, 0x00, 0x18, 0x22, 0x45, 0x80, 0x00, 0x00, 0x00, 0x00, 0x19,
-0x09, 0x0A, 0x10, 0x00, 0x00, 0x00, 0x00, 0x1A, 0x02, 0x27, 0x80, 0x00, 0x00, 0x00, 0x00, 0x1A,
-0xF2, 0x26, 0x90, 0x00, 0x00, 0x00, 0x00, 0x1B, 0xE2, 0x09, 0x80, 0x00, 0x00, 0x00, 0x00, 0x1C,
-0xD2, 0x08, 0x90, 0x00, 0x00, 0x00, 0x00, 0x1D, 0xC1, 0xEB, 0x80, 0x00, 0x00, 0x00, 0x00, 0x1E,
-0xB1, 0xEA, 0x90, 0x00, 0x00, 0x00, 0x00, 0x1F, 0xA1, 0xCD, 0x80, 0x00, 0x00, 0x00, 0x00, 0x20,
-0x76, 0x1D, 0x10, 0x00, 0x00, 0x00, 0x00, 0x21, 0x81, 0xAF, 0x80, 0x00, 0x00, 0x00, 0x00, 0x22,
-0x55, 0xFF, 0x10, 0x00, 0x00, 0x00, 0x00, 0x23, 0x6A, 0xCC, 0x00, 0x00, 0x00, 0x00, 0x00, 0x24,
-0x35, 0xE1, 0x10, 0x00, 0x00, 0x00, 0x00, 0x25, 0x4A, 0xAE, 0x00, 0x00, 0x00, 0x00, 0x00, 0x26,
-0x15, 0xC3, 0x10, 0x00, 0x00, 0x00, 0x00, 0x27, 0x2A, 0x90, 0x00, 0x00, 0x00, 0x00, 0x00, 0x27,
-0xFE, 0xDF, 0x90, 0x00, 0x00, 0x00, 0x00, 0x29, 0x0A, 0x72, 0x00, 0x00, 0x00, 0x00, 0x00, 0x29,
-0xDE, 0xC1, 0x90, 0x00, 0x00, 0x00, 0x00, 0x2A, 0xEA, 0x54, 0x00, 0x00, 0x00, 0x00, 0x00, 0x2B,
-0xBE, 0xA3, 0x90, 0x00, 0x00, 0x00, 0x00, 0x2C, 0xD3, 0x70, 0x80, 0x00, 0x00, 0x00, 0x00, 0x2D,
-0x9E, 0x85, 0x90, 0x00, 0x00, 0x00, 0x00, 0x2E, 0xB3, 0x52, 0x80, 0x00, 0x00, 0x00, 0x00, 0x2F,
-0x7E, 0x67, 0x90, 0x00, 0x00, 0x00, 0x00, 0x30, 0x93, 0x34, 0x80, 0x00, 0x00, 0x00, 0x00, 0x31,
-0x67, 0x84, 0x10, 0x00, 0x00, 0x00, 0x00, 0x32, 0x73, 0x16, 0x80, 0x00, 0x00, 0x00, 0x00, 0x33,
-0x47, 0x66, 0x10, 0x00, 0x00, 0x00, 0x00, 0x34, 0x52, 0xF8, 0x80, 0x00, 0x00, 0x00, 0x00, 0x35,
-0x27, 0x48, 0x10, 0x00, 0x00, 0x00, 0x00, 0x36, 0x32, 0xDA, 0x80, 0x00, 0x00, 0x00, 0x00, 0x37,
-0x07, 0x2A, 0x10, 0x00, 0x00, 0x00, 0x00, 0x38, 0x1B, 0xF7, 0x00, 0x00, 0x00, 0x00, 0x00, 0x38,
-0xE7, 0x0C, 0x10, 0x00, 0x00, 0x00, 0x00, 0x39, 0xFB, 0xD9, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3A,
-0xC6, 0xEE, 0x10, 0x00, 0x00, 0x00, 0x00, 0x3B, 0xDB, 0xBB, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3C,
-0xB0, 0x0A, 0x90, 0x00, 0x00, 0x00, 0x00, 0x3D, 0xBB, 0x9D, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3E,
-0x8F, 0xEC, 0x90, 0x00, 0x00, 0x00, 0x00, 0x3F, 0x9B, 0x7F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40,
-0x6F, 0xCE, 0x90, 0x00, 0x00, 0x00, 0x00, 0x41, 0x84, 0x9B, 0x80, 0x00, 0x00, 0x00, 0x00, 0x42,
-0x4F, 0xB0, 0x90, 0x00, 0x00, 0x00, 0x00, 0x43, 0x64, 0x7D, 0x80, 0x00, 0x00, 0x00, 0x00, 0x44,
-0x2F, 0x92, 0x90, 0x00, 0x00, 0x00, 0x00, 0x45, 0x44, 0x5F, 0x80, 0x00, 0x00, 0x00, 0x00, 0x45,
-0xF3, 0xC5, 0x10, 0x00, 0x00, 0x00, 0x00, 0x47, 0x2D, 0x7C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x47,
-0xD3, 0xA7, 0x10, 0x00, 0x00, 0x00, 0x00, 0x49, 0x0D, 0x5E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x49,
-0xB3, 0x89, 0x10, 0x00, 0x00, 0x00, 0x00, 0x4A, 0xED, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x4B,
-0x9C, 0xA5, 0x90, 0x00, 0x00, 0x00, 0x00, 0x4C, 0xD6, 0x5C, 0x80, 0x00, 0x00, 0x00, 0x00, 0x4D,
-0x7C, 0x87, 0x90, 0x00, 0x00, 0x00, 0x00, 0x4E, 0xB6, 0x3E, 0x80, 0x00, 0x00, 0x00, 0x00, 0x4F,
-0x5C, 0x69, 0x90, 0x00, 0x00, 0x00, 0x00, 0x50, 0x96, 0x20, 0x80, 0x00, 0x00, 0x00, 0x00, 0x51,
-0x3C, 0x4B, 0x90, 0x00, 0x00, 0x00, 0x00, 0x52, 0x76, 0x02, 0x80, 0x00, 0x00, 0x00, 0x00, 0x53,
-0x1C, 0x2D, 0x90, 0x00, 0x00, 0x00, 0x00, 0x54, 0x55, 0xE4, 0x80, 0x00, 0x00, 0x00, 0x00, 0x54,
-0xFC, 0x0F, 0x90, 0x00, 0x00, 0x00, 0x00, 0x56, 0x35, 0xC6, 0x80, 0x00, 0x00, 0x00, 0x00, 0x56,
-0xE5, 0x2C, 0x10, 0x00, 0x00, 0x00, 0x00, 0x58, 0x1E, 0xE3, 0x00, 0x00, 0x00, 0x00, 0x00, 0x58,
-0xC5, 0x0E, 0x10, 0x00, 0x00, 0x00, 0x00, 0x59, 0xFE, 0xC5, 0x00, 0x00, 0x00, 0x00, 0x00, 0x5A,
-0xA4, 0xF0, 0x10, 0x00, 0x00, 0x00, 0x00, 0x5B, 0xDE, 0xA7, 0x00, 0x00, 0x00, 0x00, 0x00, 0x5C,
-0x84, 0xD2, 0x10, 0x00, 0x00, 0x00, 0x00, 0x5D, 0xBE, 0x89, 0x00, 0x00, 0x00, 0x00, 0x00, 0x5E,
-0x64, 0xB4, 0x10, 0x00, 0x00, 0x00, 0x00, 0x5F, 0x9E, 0x6B, 0x00, 0x00, 0x00, 0x00, 0x00, 0x60,
-0x4D, 0xD0, 0x90, 0x00, 0x00, 0x00, 0x00, 0x61, 0x87, 0x87, 0x80, 0x00, 0x00, 0x00, 0x00, 0x62,
-0x2D, 0xB2, 0x90, 0x00, 0x00, 0x00, 0x00, 0x63, 0x67, 0x69, 0x80, 0x00, 0x00, 0x00, 0x00, 0x64,
-0x0D, 0x94, 0x90, 0x00, 0x00, 0x00, 0x00, 0x65, 0x47, 0x4B, 0x80, 0x00, 0x00, 0x00, 0x00, 0x65,
-0xED, 0x76, 0x90, 0x00, 0x00, 0x00, 0x00, 0x67, 0x27, 0x2D, 0x80, 0x00, 0x00, 0x00, 0x00, 0x67,
-0xCD, 0x58, 0x90, 0x00, 0x00, 0x00, 0x00, 0x69, 0x07, 0x0F, 0x80, 0x00, 0x00, 0x00, 0x00, 0x69,
-0xAD, 0x3A, 0x90, 0x00, 0x00, 0x00, 0x00, 0x6A, 0xE6, 0xF1, 0x80, 0x00, 0x00, 0x00, 0x00, 0x6B,
-0x96, 0x57, 0x10, 0x00, 0x00, 0x00, 0x00, 0x6C, 0xD0, 0x0E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x6D,
-0x76, 0x39, 0x10, 0x00, 0x00, 0x00, 0x00, 0x6E, 0xAF, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x6F,
-0x56, 0x1B, 0x10, 0x00, 0x00, 0x00, 0x00, 0x70, 0x8F, 0xD2, 0x00, 0x00, 0x00, 0x00, 0x00, 0x71,
-0x35, 0xFD, 0x10, 0x00, 0x00, 0x00, 0x00, 0x72, 0x6F, 0xB4, 0x00, 0x00, 0x00, 0x00, 0x00, 0x73,
-0x15, 0xDF, 0x10, 0x00, 0x00, 0x00, 0x00, 0x74, 0x4F, 0x96, 0x00, 0x00, 0x00, 0x00, 0x00, 0x74,
-0xFE, 0xFB, 0x90, 0x00, 0x00, 0x00, 0x00, 0x76, 0x38, 0xB2, 0x80, 0x00, 0x00, 0x00, 0x00, 0x76,
-0xDE, 0xDD, 0x90, 0x00, 0x00, 0x00, 0x00, 0x78, 0x18, 0x94, 0x80, 0x00, 0x00, 0x00, 0x00, 0x78,
-0xBE, 0xBF, 0x90, 0x00, 0x00, 0x00, 0x00, 0x79, 0xF8, 0x76, 0x80, 0x00, 0x00, 0x00, 0x00, 0x7A,
-0x9E, 0xA1, 0x90, 0x00, 0x00, 0x00, 0x00, 0x7B, 0xD8, 0x58, 0x80, 0x00, 0x00, 0x00, 0x00, 0x7C,
-0x7E, 0x83, 0x90, 0x00, 0x00, 0x00, 0x00, 0x7D, 0xB8, 0x3A, 0x80, 0x00, 0x00, 0x00, 0x00, 0x7E,
-0x5E, 0x65, 0x90, 0x00, 0x00, 0x00, 0x00, 0x7F, 0x98, 0x1C, 0x80, 0x02, 0x01, 0x02, 0x01, 0x02,
-0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03,
-0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03,
-0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03,
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x6F, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x18, 0xFF,
+0xFF, 0xFF, 0xFF, 0xE0, 0x06, 0x4E, 0x80, 0x00, 0x00, 0x00, 0x00, 0x04, 0x61, 0x27, 0xA0, 0x00,
+0x00, 0x00, 0x00, 0x05, 0x51, 0x0A, 0x90, 0x00, 0x00, 0x00, 0x00, 0x06, 0x41, 0x09, 0xA0, 0x00,
+0x00, 0x00, 0x00, 0x07, 0x30, 0xEC, 0x90, 0x00, 0x00, 0x00, 0x00, 0x08, 0x20, 0xEB, 0xA0, 0x00,
+0x00, 0x00, 0x00, 0x09, 0x10, 0xCE, 0x90, 0x00, 0x00, 0x00, 0x00, 0x0A, 0x00, 0xCD, 0xA0, 0x00,
+0x00, 0x00, 0x00, 0x0A, 0xF0, 0xB0, 0x90, 0x00, 0x00, 0x00, 0x00, 0x0B, 0xE0, 0xAF, 0xA0, 0x00,
+0x00, 0x00, 0x00, 0x0C, 0xD9, 0xCD, 0x10, 0x00, 0x00, 0x00, 0x00, 0x0D, 0xC0, 0x91, 0xA0, 0x00,
+0x00, 0x00, 0x00, 0x0E, 0xB9, 0xAF, 0x10, 0x00, 0x00, 0x00, 0x00, 0x0F, 0xA9, 0xAE, 0x20, 0x00,
+0x00, 0x00, 0x00, 0x10, 0x99, 0x91, 0x10, 0x00, 0x00, 0x00, 0x00, 0x11, 0x89, 0x90, 0x20, 0x00,
+0x00, 0x00, 0x00, 0x12, 0x79, 0x65, 0x00, 0x00, 0x00, 0x00, 0x00, 0x13, 0x69, 0x64, 0x10, 0x00,
+0x00, 0x00, 0x00, 0x14, 0x59, 0x47, 0x00, 0x00, 0x00, 0x00, 0x00, 0x15, 0x49, 0x46, 0x10, 0x00,
+0x00, 0x00, 0x00, 0x16, 0x39, 0x29, 0x00, 0x00, 0x00, 0x00, 0x00, 0x17, 0x29, 0x28, 0x10, 0x00,
+0x00, 0x00, 0x00, 0x18, 0x22, 0x45, 0x80, 0x00, 0x00, 0x00, 0x00, 0x19, 0x09, 0x0A, 0x10, 0x00,
+0x00, 0x00, 0x00, 0x1A, 0x02, 0x27, 0x80, 0x00, 0x00, 0x00, 0x00, 0x1A, 0xF2, 0x26, 0x90, 0x00,
+0x00, 0x00, 0x00, 0x1B, 0xE2, 0x09, 0x80, 0x00, 0x00, 0x00, 0x00, 0x1C, 0xD2, 0x08, 0x90, 0x00,
+0x00, 0x00, 0x00, 0x1D, 0xC1, 0xEB, 0x80, 0x00, 0x00, 0x00, 0x00, 0x1E, 0xB1, 0xEA, 0x90, 0x00,
+0x00, 0x00, 0x00, 0x1F, 0xA1, 0xCD, 0x80, 0x00, 0x00, 0x00, 0x00, 0x20, 0x76, 0x1D, 0x10, 0x00,
+0x00, 0x00, 0x00, 0x21, 0x81, 0xAF, 0x80, 0x00, 0x00, 0x00, 0x00, 0x22, 0x55, 0xFF, 0x10, 0x00,
+0x00, 0x00, 0x00, 0x23, 0x6A, 0xCC, 0x00, 0x00, 0x00, 0x00, 0x00, 0x24, 0x35, 0xE1, 0x10, 0x00,
+0x00, 0x00, 0x00, 0x25, 0x4A, 0xAE, 0x00, 0x00, 0x00, 0x00, 0x00, 0x26, 0x15, 0xC3, 0x10, 0x00,
+0x00, 0x00, 0x00, 0x27, 0x2A, 0x90, 0x00, 0x00, 0x00, 0x00, 0x00, 0x27, 0xFE, 0xDF, 0x90, 0x00,
+0x00, 0x00, 0x00, 0x29, 0x0A, 0x72, 0x00, 0x00, 0x00, 0x00, 0x00, 0x29, 0xDE, 0xC1, 0x90, 0x00,
+0x00, 0x00, 0x00, 0x2A, 0xEA, 0x54, 0x00, 0x00, 0x00, 0x00, 0x00, 0x2B, 0xBE, 0xA3, 0x90, 0x00,
+0x00, 0x00, 0x00, 0x2C, 0xD3, 0x70, 0x80, 0x00, 0x00, 0x00, 0x00, 0x2D, 0x9E, 0x85, 0x90, 0x00,
+0x00, 0x00, 0x00, 0x2E, 0xB3, 0x52, 0x80, 0x00, 0x00, 0x00, 0x00, 0x2F, 0x7E, 0x67, 0x90, 0x00,
+0x00, 0x00, 0x00, 0x30, 0x93, 0x34, 0x80, 0x00, 0x00, 0x00, 0x00, 0x31, 0x67, 0x84, 0x10, 0x00,
+0x00, 0x00, 0x00, 0x32, 0x73, 0x16, 0x80, 0x00, 0x00, 0x00, 0x00, 0x33, 0x47, 0x66, 0x10, 0x00,
+0x00, 0x00, 0x00, 0x34, 0x52, 0xF8, 0x80, 0x00, 0x00, 0x00, 0x00, 0x35, 0x27, 0x48, 0x10, 0x00,
+0x00, 0x00, 0x00, 0x36, 0x32, 0xDA, 0x80, 0x00, 0x00, 0x00, 0x00, 0x37, 0x07, 0x2A, 0x10, 0x00,
+0x00, 0x00, 0x00, 0x38, 0x1B, 0xF7, 0x00, 0x00, 0x00, 0x00, 0x00, 0x38, 0xE7, 0x0C, 0x10, 0x00,
+0x00, 0x00, 0x00, 0x39, 0xFB, 0xD9, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3A, 0xC6, 0xEE, 0x10, 0x00,
+0x00, 0x00, 0x00, 0x3B, 0xDB, 0xBB, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3C, 0xB0, 0x0A, 0x90, 0x00,
+0x00, 0x00, 0x00, 0x3D, 0xBB, 0x9D, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3E, 0x8F, 0xEC, 0x90, 0x00,
+0x00, 0x00, 0x00, 0x3F, 0x9B, 0x7F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x6F, 0xCE, 0x90, 0x00,
+0x00, 0x00, 0x00, 0x41, 0x84, 0x9B, 0x80, 0x00, 0x00, 0x00, 0x00, 0x42, 0x4F, 0xB0, 0x90, 0x00,
+0x00, 0x00, 0x00, 0x43, 0x64, 0x7D, 0x80, 0x00, 0x00, 0x00, 0x00, 0x44, 0x2F, 0x92, 0x90, 0x00,
+0x00, 0x00, 0x00, 0x45, 0x44, 0x5F, 0x80, 0x00, 0x00, 0x00, 0x00, 0x45, 0xF3, 0xC5, 0x10, 0x00,
+0x00, 0x00, 0x00, 0x47, 0x2D, 0x7C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x47, 0xD3, 0xA7, 0x10, 0x00,
+0x00, 0x00, 0x00, 0x49, 0x0D, 0x5E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x49, 0xB3, 0x89, 0x10, 0x00,
+0x00, 0x00, 0x00, 0x4A, 0xED, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x4B, 0x9C, 0xA5, 0x90, 0x00,
+0x00, 0x00, 0x00, 0x4C, 0xD6, 0x5C, 0x80, 0x00, 0x00, 0x00, 0x00, 0x4D, 0x7C, 0x87, 0x90, 0x00,
+0x00, 0x00, 0x00, 0x4E, 0xB6, 0x3E, 0x80, 0x00, 0x00, 0x00, 0x00, 0x4F, 0x5C, 0x69, 0x90, 0x00,
+0x00, 0x00, 0x00, 0x50, 0x96, 0x20, 0x80, 0x00, 0x00, 0x00, 0x00, 0x51, 0x3C, 0x4B, 0x90, 0x00,
+0x00, 0x00, 0x00, 0x52, 0x76, 0x02, 0x80, 0x00, 0x00, 0x00, 0x00, 0x53, 0x1C, 0x2D, 0x90, 0x00,
+0x00, 0x00, 0x00, 0x54, 0x55, 0xE4, 0x80, 0x00, 0x00, 0x00, 0x00, 0x54, 0xFC, 0x0F, 0x90, 0x00,
+0x00, 0x00, 0x00, 0x56, 0x35, 0xC6, 0x80, 0x00, 0x00, 0x00, 0x00, 0x56, 0xE5, 0x2C, 0x10, 0x00,
+0x00, 0x00, 0x00, 0x58, 0x1E, 0xE3, 0x00, 0x00, 0x00, 0x00, 0x00, 0x58, 0xC5, 0x0E, 0x10, 0x00,
+0x00, 0x00, 0x00, 0x59, 0xFE, 0xC5, 0x00, 0x00, 0x00, 0x00, 0x00, 0x5A, 0xA4, 0xF0, 0x10, 0x00,
+0x00, 0x00, 0x00, 0x5B, 0xDE, 0xA7, 0x00, 0x00, 0x00, 0x00, 0x00, 0x5C, 0x84, 0xD2, 0x10, 0x00,
+0x00, 0x00, 0x00, 0x5D, 0xBE, 0x89, 0x00, 0x00, 0x00, 0x00, 0x00, 0x5E, 0x64, 0xB4, 0x10, 0x00,
+0x00, 0x00, 0x00, 0x5F, 0x9E, 0x6B, 0x00, 0x00, 0x00, 0x00, 0x00, 0x60, 0x4D, 0xD0, 0x90, 0x00,
+0x00, 0x00, 0x00, 0x61, 0x87, 0x87, 0x80, 0x00, 0x00, 0x00, 0x00, 0x62, 0x2D, 0xB2, 0x90, 0x00,
+0x00, 0x00, 0x00, 0x63, 0x67, 0x69, 0x80, 0x00, 0x00, 0x00, 0x00, 0x64, 0x0D, 0x94, 0x90, 0x00,
+0x00, 0x00, 0x00, 0x65, 0x47, 0x4B, 0x80, 0x00, 0x00, 0x00, 0x00, 0x65, 0xED, 0x76, 0x90, 0x00,
+0x00, 0x00, 0x00, 0x67, 0x27, 0x2D, 0x80, 0x00, 0x00, 0x00, 0x00, 0x67, 0xCD, 0x58, 0x90, 0x00,
+0x00, 0x00, 0x00, 0x69, 0x07, 0x0F, 0x80, 0x00, 0x00, 0x00, 0x00, 0x69, 0xAD, 0x3A, 0x90, 0x00,
+0x00, 0x00, 0x00, 0x6A, 0xE6, 0xF1, 0x80, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02,
+0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03,
0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03,
0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03,
0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03,
0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03,
0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03,
-0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x9D, 0x90, 0x01, 0x04, 0xFF, 0xFF, 0x8F, 0x80,
-0x00, 0x08, 0xFF, 0xFF, 0x9D, 0x90, 0x00, 0x0C, 0xFF, 0xFF, 0xAB, 0xA0, 0x01, 0x10, 0x2D, 0x30,
-0x30, 0x00, 0x50, 0x44, 0x54, 0x00, 0x50, 0x53, 0x54, 0x00, 0x4D, 0x53, 0x54, 0x00, 0x4D, 0x44,
-0x54, 0x00, 0x0A, 0x4D, 0x53, 0x54, 0x37, 0x4D, 0x44, 0x54, 0x2C, 0x4D, 0x33, 0x2E, 0x32, 0x2E,
-0x30, 0x2C, 0x4D, 0x31, 0x31, 0x2E, 0x31, 0x2E, 0x30, 0x0A, 0x00, 0xF1, 0x9F, 0x5C, 0x00, 0x46,
-0x9F, 0x6D, 0x00, 0x00, 0x00, 0x14, 0x4D, 0x6F, 0x75, 0x6E, 0x74, 0x61, 0x69, 0x6E, 0x20, 0x2D,
-0x20, 0x4E, 0x54, 0x20, 0x28, 0x77, 0x65, 0x73, 0x74, 0x29,
+0x04, 0x03, 0x04, 0x03, 0x04, 0x05, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x9D, 0x90,
+0x01, 0x04, 0xFF, 0xFF, 0x8F, 0x80, 0x00, 0x08, 0xFF, 0xFF, 0x9D, 0x90, 0x00, 0x0C, 0xFF, 0xFF,
+0xAB, 0xA0, 0x01, 0x10, 0xFF, 0xFF, 0xAB, 0xA0, 0x00, 0x14, 0x2D, 0x30, 0x30, 0x00, 0x50, 0x44,
+0x54, 0x00, 0x50, 0x53, 0x54, 0x00, 0x4D, 0x53, 0x54, 0x00, 0x4D, 0x44, 0x54, 0x00, 0x43, 0x53,
+0x54, 0x00, 0x0A, 0x43, 0x53, 0x54, 0x36, 0x0A, 0x00, 0xF1, 0x9F, 0x5C, 0x00, 0x46, 0x9F, 0x6D,
+0x00, 0x00, 0x00, 0x0F, 0x43, 0x53, 0x54, 0x20, 0x2D, 0x20, 0x4E, 0x54, 0x20, 0x28, 0x77, 0x65,
+0x73, 0x74, 0x29,
/* America/Iqaluit */
0x50, 0x48, 0x50, 0x32, 0x01, 0x43, 0x41, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
@@ -33783,7 +33717,7 @@
0x18, 0xFF, 0xFF, 0x8F, 0x80, 0x01, 0x1C, 0xFF, 0xFF, 0x81, 0x70, 0x00, 0x21, 0x4C, 0x4D, 0x54,
0x00, 0x50, 0x53, 0x54, 0x00, 0x50, 0x57, 0x54, 0x00, 0x50, 0x50, 0x54, 0x00, 0x50, 0x44, 0x54,
0x00, 0x59, 0x44, 0x54, 0x00, 0x59, 0x53, 0x54, 0x00, 0x41, 0x4B, 0x44, 0x54, 0x00, 0x41, 0x4B,
-0x53, 0x54, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x53, 0x54, 0x00, 0x00, 0x01, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00,
0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0A, 0x41, 0x4B, 0x53, 0x54, 0x39, 0x41, 0x4B, 0x44,
0x54, 0x2C, 0x4D, 0x33, 0x2E, 0x32, 0x2E, 0x30, 0x2C, 0x4D, 0x31, 0x31, 0x2E, 0x31, 0x2E, 0x30,
0x0A, 0x00, 0xE2, 0x4A, 0x72, 0x00, 0x45, 0x8C, 0xCB, 0x00, 0x00, 0x00, 0x14, 0x41, 0x6C, 0x61,
@@ -35418,7 +35352,7 @@
0xFF, 0x9D, 0x90, 0x01, 0x0C, 0xFF, 0xFF, 0x9D, 0x90, 0x01, 0x10, 0xFF, 0xFF, 0x81, 0x70, 0x00,
0x14, 0xFF, 0xFF, 0x8F, 0x80, 0x01, 0x19, 0x4C, 0x4D, 0x54, 0x00, 0x50, 0x53, 0x54, 0x00, 0x50,
0x57, 0x54, 0x00, 0x50, 0x50, 0x54, 0x00, 0x50, 0x44, 0x54, 0x00, 0x41, 0x4B, 0x53, 0x54, 0x00,
-0x41, 0x4B, 0x44, 0x54, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x41, 0x4B, 0x44, 0x54, 0x00, 0x00, 0x01, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00,
0x00, 0x01, 0x00, 0x00, 0x00, 0x0A, 0x41, 0x4B, 0x53, 0x54, 0x39, 0x41, 0x4B, 0x44, 0x54, 0x2C,
0x4D, 0x33, 0x2E, 0x32, 0x2E, 0x30, 0x2C, 0x4D, 0x31, 0x31, 0x2E, 0x31, 0x2E, 0x30, 0x0A, 0x00,
0xDD, 0x72, 0x36, 0x00, 0x49, 0xE3, 0x79, 0x00, 0x00, 0x00, 0x17, 0x41, 0x6C, 0x61, 0x73, 0x6B,
@@ -36971,7 +36905,7 @@
0xFF, 0x8F, 0x80, 0x01, 0x1C, 0xFF, 0xFF, 0x81, 0x70, 0x00, 0x21, 0x4C, 0x4D, 0x54, 0x00, 0x4E,
0x53, 0x54, 0x00, 0x4E, 0x57, 0x54, 0x00, 0x4E, 0x50, 0x54, 0x00, 0x42, 0x53, 0x54, 0x00, 0x42,
0x44, 0x54, 0x00, 0x59, 0x53, 0x54, 0x00, 0x41, 0x4B, 0x44, 0x54, 0x00, 0x41, 0x4B, 0x53, 0x54,
-0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01,
+0x00, 0x00, 0x01, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x01,
0x00, 0x00, 0x00, 0x00, 0x00, 0x0A, 0x41, 0x4B, 0x53, 0x54, 0x39, 0x41, 0x4B, 0x44, 0x54, 0x2C,
0x4D, 0x33, 0x2E, 0x32, 0x2E, 0x30, 0x2C, 0x4D, 0x31, 0x31, 0x2E, 0x31, 0x2E, 0x30, 0x0A, 0x00,
0xEB, 0xBF, 0xFF, 0x00, 0x16, 0x44, 0xA1, 0x00, 0x00, 0x00, 0x0D, 0x41, 0x6C, 0x61, 0x73, 0x6B,
@@ -38243,8 +38177,8 @@
/* America/Rainy_River */
0x50, 0x48, 0x50, 0x32, 0x00, 0x3F, 0x3F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x00,
-0x00, 0x00, 0x00, 0xBA, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x14, 0x80, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x00, 0xA4, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x18, 0x80, 0x00, 0x00, 0x00,
0x9B, 0x01, 0xFB, 0xE0, 0x9B, 0xC3, 0xBA, 0x50, 0x9E, 0xB8, 0xA1, 0x80, 0x9F, 0xBA, 0xF9, 0x70,
0xC2, 0xA0, 0x3B, 0x80, 0xC3, 0x4F, 0x84, 0xF0, 0xCB, 0x88, 0xFE, 0x80, 0xD2, 0x23, 0xF4, 0x70,
0xD2, 0x61, 0x09, 0xF0, 0xD3, 0x88, 0x68, 0x00, 0xD4, 0x53, 0x60, 0xF0, 0xD5, 0x55, 0xD5, 0x00,
@@ -38285,144 +38219,125 @@
0x5D, 0xBE, 0x7A, 0xF0, 0x5E, 0x64, 0xA6, 0x00, 0x5F, 0x9E, 0x5C, 0xF0, 0x60, 0x4D, 0xC2, 0x80,
0x61, 0x87, 0x79, 0x70, 0x62, 0x2D, 0xA4, 0x80, 0x63, 0x67, 0x5B, 0x70, 0x64, 0x0D, 0x86, 0x80,
0x65, 0x47, 0x3D, 0x70, 0x65, 0xED, 0x68, 0x80, 0x67, 0x27, 0x1F, 0x70, 0x67, 0xCD, 0x4A, 0x80,
-0x69, 0x07, 0x01, 0x70, 0x69, 0xAD, 0x2C, 0x80, 0x6A, 0xE6, 0xE3, 0x70, 0x6B, 0x96, 0x49, 0x00,
-0x6C, 0xCF, 0xFF, 0xF0, 0x6D, 0x76, 0x2B, 0x00, 0x6E, 0xAF, 0xE1, 0xF0, 0x6F, 0x56, 0x0D, 0x00,
-0x70, 0x8F, 0xC3, 0xF0, 0x71, 0x35, 0xEF, 0x00, 0x72, 0x6F, 0xA5, 0xF0, 0x73, 0x15, 0xD1, 0x00,
-0x74, 0x4F, 0x87, 0xF0, 0x74, 0xFE, 0xED, 0x80, 0x76, 0x38, 0xA4, 0x70, 0x76, 0xDE, 0xCF, 0x80,
-0x78, 0x18, 0x86, 0x70, 0x78, 0xBE, 0xB1, 0x80, 0x79, 0xF8, 0x68, 0x70, 0x7A, 0x9E, 0x93, 0x80,
-0x7B, 0xD8, 0x4A, 0x70, 0x7C, 0x7E, 0x75, 0x80, 0x7D, 0xB8, 0x2C, 0x70, 0x7E, 0x5E, 0x57, 0x80,
-0x7F, 0x98, 0x0E, 0x70, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x03, 0x04, 0x02, 0x01, 0x02,
+0x69, 0x07, 0x01, 0x70, 0x69, 0xAD, 0x2C, 0x80, 0x6A, 0xE6, 0xE3, 0x70, 0x02, 0x01, 0x02, 0x01,
+0x02, 0x01, 0x02, 0x03, 0x04, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02,
0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02,
-0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x05, 0x06,
+0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x05, 0x06, 0x05, 0x06, 0x05, 0x06, 0x05, 0x06, 0x05, 0x06,
0x05, 0x06, 0x05, 0x06, 0x05, 0x06, 0x05, 0x06, 0x05, 0x06, 0x05, 0x06, 0x05, 0x06, 0x05, 0x06,
0x05, 0x06, 0x05, 0x06, 0x05, 0x06, 0x05, 0x06, 0x05, 0x06, 0x05, 0x06, 0x05, 0x06, 0x05, 0x06,
0x05, 0x06, 0x05, 0x06, 0x05, 0x06, 0x05, 0x06, 0x05, 0x06, 0x05, 0x06, 0x05, 0x06, 0x05, 0x06,
0x05, 0x06, 0x05, 0x06, 0x05, 0x06, 0x05, 0x06, 0x05, 0x06, 0x05, 0x06, 0x05, 0x06, 0x05, 0x06,
-0x05, 0x06, 0x05, 0x06, 0x05, 0x06, 0x05, 0x06, 0x05, 0x06, 0x05, 0x06, 0x05, 0x06, 0x01, 0x02,
-0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02,
-0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02,
-0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02,
-0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0xFF, 0xFF,
-0xA4, 0xEC, 0x00, 0x00, 0xFF, 0xFF, 0xB9, 0xB0, 0x01, 0x04, 0xFF, 0xFF, 0xAB, 0xA0, 0x00, 0x08,
-0xFF, 0xFF, 0xB9, 0xB0, 0x01, 0x0C, 0xFF, 0xFF, 0xB9, 0xB0, 0x01, 0x10, 0xFF, 0xFF, 0xB9, 0xB0,
-0x01, 0x04, 0xFF, 0xFF, 0xAB, 0xA0, 0x00, 0x08, 0x4C, 0x4D, 0x54, 0x00, 0x43, 0x44, 0x54, 0x00,
-0x43, 0x53, 0x54, 0x00, 0x43, 0x57, 0x54, 0x00, 0x43, 0x50, 0x54, 0x00, 0x00, 0x00, 0x00, 0x00,
-0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x54, 0x5A, 0x69, 0x66, 0x32, 0x00,
-0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-0x00, 0x07, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xBA, 0x00, 0x00,
-0x00, 0x07, 0x00, 0x00, 0x00, 0x14, 0xFF, 0xFF, 0xFF, 0xFF, 0x64, 0xE4, 0xB0, 0x94, 0xFF, 0xFF,
-0xFF, 0xFF, 0x9B, 0x01, 0xFB, 0xE0, 0xFF, 0xFF, 0xFF, 0xFF, 0x9B, 0xC3, 0xBA, 0x50, 0xFF, 0xFF,
-0xFF, 0xFF, 0x9E, 0xB8, 0xA1, 0x80, 0xFF, 0xFF, 0xFF, 0xFF, 0x9F, 0xBA, 0xF9, 0x70, 0xFF, 0xFF,
-0xFF, 0xFF, 0xC2, 0xA0, 0x3B, 0x80, 0xFF, 0xFF, 0xFF, 0xFF, 0xC3, 0x4F, 0x84, 0xF0, 0xFF, 0xFF,
-0xFF, 0xFF, 0xCB, 0x88, 0xFE, 0x80, 0xFF, 0xFF, 0xFF, 0xFF, 0xD2, 0x23, 0xF4, 0x70, 0xFF, 0xFF,
-0xFF, 0xFF, 0xD2, 0x61, 0x09, 0xF0, 0xFF, 0xFF, 0xFF, 0xFF, 0xD3, 0x88, 0x68, 0x00, 0xFF, 0xFF,
-0xFF, 0xFF, 0xD4, 0x53, 0x60, 0xF0, 0xFF, 0xFF, 0xFF, 0xFF, 0xD5, 0x55, 0xD5, 0x00, 0xFF, 0xFF,
-0xFF, 0xFF, 0xD6, 0x20, 0xCD, 0xF0, 0xFF, 0xFF, 0xFF, 0xFF, 0xD7, 0x35, 0xB7, 0x00, 0xFF, 0xFF,
-0xFF, 0xFF, 0xD8, 0x00, 0xAF, 0xF0, 0xFF, 0xFF, 0xFF, 0xFF, 0xD9, 0x15, 0x99, 0x00, 0xFF, 0xFF,
-0xFF, 0xFF, 0xD9, 0xE0, 0x91, 0xF0, 0xFF, 0xFF, 0xFF, 0xFF, 0xDB, 0x00, 0x07, 0x00, 0xFF, 0xFF,
-0xFF, 0xFF, 0xDB, 0xC8, 0x5C, 0xF0, 0xFF, 0xFF, 0xFF, 0xFF, 0xDC, 0xDE, 0x97, 0x80, 0xFF, 0xFF,
-0xFF, 0xFF, 0xDD, 0xA9, 0x90, 0x70, 0xFF, 0xFF, 0xFF, 0xFF, 0xDE, 0xBE, 0x79, 0x80, 0xFF, 0xFF,
-0xFF, 0xFF, 0xDF, 0x89, 0x72, 0x70, 0xFF, 0xFF, 0xFF, 0xFF, 0xE0, 0x9E, 0x5B, 0x80, 0xFF, 0xFF,
-0xFF, 0xFF, 0xE1, 0x69, 0x54, 0x70, 0xFF, 0xFF, 0xFF, 0xFF, 0xE2, 0x7E, 0x3D, 0x80, 0xFF, 0xFF,
-0xFF, 0xFF, 0xE3, 0x49, 0x36, 0x70, 0xFF, 0xFF, 0xFF, 0xFF, 0xE4, 0x5E, 0x1F, 0x80, 0xFF, 0xFF,
-0xFF, 0xFF, 0xE5, 0x29, 0x18, 0x70, 0xFF, 0xFF, 0xFF, 0xFF, 0xE6, 0x47, 0x3C, 0x00, 0xFF, 0xFF,
-0xFF, 0xFF, 0xE7, 0x12, 0x34, 0xF0, 0xFF, 0xFF, 0xFF, 0xFF, 0xE8, 0x27, 0x1E, 0x00, 0xFF, 0xFF,
-0xFF, 0xFF, 0xE8, 0xF2, 0x16, 0xF0, 0xFF, 0xFF, 0xFF, 0xFF, 0xEA, 0x07, 0x00, 0x00, 0xFF, 0xFF,
-0xFF, 0xFF, 0xEA, 0xD1, 0xF8, 0xF0, 0xFF, 0xFF, 0xFF, 0xFF, 0xEB, 0xE6, 0xE2, 0x00, 0xFF, 0xFF,
-0xFF, 0xFF, 0xEC, 0xD6, 0xC4, 0xF0, 0xFF, 0xFF, 0xFF, 0xFF, 0xED, 0xC6, 0xC4, 0x00, 0xFF, 0xFF,
-0xFF, 0xFF, 0xEE, 0x91, 0xBC, 0xF0, 0xFF, 0xFF, 0xFF, 0xFF, 0xF3, 0x6F, 0xA4, 0x80, 0xFF, 0xFF,
-0xFF, 0xFF, 0xF4, 0x31, 0x62, 0xF0, 0xFF, 0xFF, 0xFF, 0xFF, 0xF9, 0x0F, 0x4A, 0x80, 0xFF, 0xFF,
-0xFF, 0xFF, 0xFA, 0x08, 0x76, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFA, 0xF8, 0x67, 0x00, 0xFF, 0xFF,
-0xFF, 0xFF, 0xFB, 0xE8, 0x58, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFC, 0xD8, 0x49, 0x00, 0xFF, 0xFF,
-0xFF, 0xFF, 0xFD, 0xC8, 0x3A, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFE, 0xB8, 0x2B, 0x00, 0xFF, 0xFF,
-0xFF, 0xFF, 0xFF, 0xA8, 0x1C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x98, 0x0D, 0x00, 0x00, 0x00,
-0x00, 0x00, 0x01, 0x87, 0xFE, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x77, 0xEF, 0x00, 0x00, 0x00,
-0x00, 0x00, 0x03, 0x71, 0x1A, 0x80, 0x00, 0x00, 0x00, 0x00, 0x04, 0x61, 0x0B, 0x80, 0x00, 0x00,
-0x00, 0x00, 0x05, 0x50, 0xFC, 0x80, 0x00, 0x00, 0x00, 0x00, 0x06, 0x40, 0xED, 0x80, 0x00, 0x00,
-0x00, 0x00, 0x07, 0x30, 0xDE, 0x80, 0x00, 0x00, 0x00, 0x00, 0x08, 0x20, 0xCF, 0x80, 0x00, 0x00,
-0x00, 0x00, 0x09, 0x10, 0xC0, 0x80, 0x00, 0x00, 0x00, 0x00, 0x0A, 0x00, 0xB1, 0x80, 0x00, 0x00,
-0x00, 0x00, 0x0A, 0xF0, 0xA2, 0x80, 0x00, 0x00, 0x00, 0x00, 0x0B, 0xE0, 0x93, 0x80, 0x00, 0x00,
-0x00, 0x00, 0x0C, 0xD9, 0xBF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0D, 0xC0, 0x75, 0x80, 0x00, 0x00,
-0x00, 0x00, 0x0E, 0xB9, 0xA1, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0F, 0xA9, 0x92, 0x00, 0x00, 0x00,
-0x00, 0x00, 0x10, 0x99, 0x83, 0x00, 0x00, 0x00, 0x00, 0x00, 0x11, 0x89, 0x74, 0x00, 0x00, 0x00,
-0x00, 0x00, 0x12, 0x79, 0x65, 0x00, 0x00, 0x00, 0x00, 0x00, 0x13, 0x69, 0x56, 0x00, 0x00, 0x00,
-0x00, 0x00, 0x14, 0x59, 0x47, 0x00, 0x00, 0x00, 0x00, 0x00, 0x15, 0x49, 0x38, 0x00, 0x00, 0x00,
-0x00, 0x00, 0x16, 0x39, 0x29, 0x00, 0x00, 0x00, 0x00, 0x00, 0x17, 0x29, 0x1A, 0x00, 0x00, 0x00,
-0x00, 0x00, 0x18, 0x22, 0x45, 0x80, 0x00, 0x00, 0x00, 0x00, 0x19, 0x08, 0xFC, 0x00, 0x00, 0x00,
-0x00, 0x00, 0x1A, 0x02, 0x27, 0x80, 0x00, 0x00, 0x00, 0x00, 0x1A, 0xF2, 0x18, 0x80, 0x00, 0x00,
-0x00, 0x00, 0x1B, 0xE2, 0x09, 0x80, 0x00, 0x00, 0x00, 0x00, 0x1C, 0xD1, 0xFA, 0x80, 0x00, 0x00,
-0x00, 0x00, 0x1D, 0xC1, 0xEB, 0x80, 0x00, 0x00, 0x00, 0x00, 0x1E, 0xB1, 0xDC, 0x80, 0x00, 0x00,
-0x00, 0x00, 0x1F, 0xA1, 0xCD, 0x80, 0x00, 0x00, 0x00, 0x00, 0x20, 0x76, 0x0F, 0x00, 0x00, 0x00,
-0x00, 0x00, 0x21, 0x81, 0xAF, 0x80, 0x00, 0x00, 0x00, 0x00, 0x22, 0x55, 0xF1, 0x00, 0x00, 0x00,
-0x00, 0x00, 0x23, 0x6A, 0xCC, 0x00, 0x00, 0x00, 0x00, 0x00, 0x24, 0x35, 0xD3, 0x00, 0x00, 0x00,
-0x00, 0x00, 0x25, 0x4A, 0xAE, 0x00, 0x00, 0x00, 0x00, 0x00, 0x26, 0x15, 0xB5, 0x00, 0x00, 0x00,
-0x00, 0x00, 0x27, 0x2A, 0x90, 0x00, 0x00, 0x00, 0x00, 0x00, 0x27, 0xFE, 0xD1, 0x80, 0x00, 0x00,
-0x00, 0x00, 0x29, 0x0A, 0x72, 0x00, 0x00, 0x00, 0x00, 0x00, 0x29, 0xDE, 0xB3, 0x80, 0x00, 0x00,
-0x00, 0x00, 0x2A, 0xEA, 0x54, 0x00, 0x00, 0x00, 0x00, 0x00, 0x2B, 0xBE, 0x95, 0x80, 0x00, 0x00,
-0x00, 0x00, 0x2C, 0xD3, 0x70, 0x80, 0x00, 0x00, 0x00, 0x00, 0x2D, 0x9E, 0x77, 0x80, 0x00, 0x00,
-0x00, 0x00, 0x2E, 0xB3, 0x52, 0x80, 0x00, 0x00, 0x00, 0x00, 0x2F, 0x7E, 0x59, 0x80, 0x00, 0x00,
-0x00, 0x00, 0x30, 0x93, 0x34, 0x80, 0x00, 0x00, 0x00, 0x00, 0x31, 0x67, 0x76, 0x00, 0x00, 0x00,
-0x00, 0x00, 0x32, 0x73, 0x16, 0x80, 0x00, 0x00, 0x00, 0x00, 0x33, 0x47, 0x58, 0x00, 0x00, 0x00,
-0x00, 0x00, 0x34, 0x52, 0xF8, 0x80, 0x00, 0x00, 0x00, 0x00, 0x35, 0x27, 0x3A, 0x00, 0x00, 0x00,
-0x00, 0x00, 0x36, 0x32, 0xDA, 0x80, 0x00, 0x00, 0x00, 0x00, 0x37, 0x07, 0x1C, 0x00, 0x00, 0x00,
-0x00, 0x00, 0x38, 0x1B, 0xF7, 0x00, 0x00, 0x00, 0x00, 0x00, 0x38, 0xE6, 0xFE, 0x00, 0x00, 0x00,
-0x00, 0x00, 0x39, 0xFB, 0xD9, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3A, 0xC6, 0xE0, 0x00, 0x00, 0x00,
-0x00, 0x00, 0x3B, 0xDB, 0xBB, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3C, 0xAF, 0xFC, 0x80, 0x00, 0x00,
-0x00, 0x00, 0x3D, 0xBB, 0x9D, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3E, 0x8F, 0xDE, 0x80, 0x00, 0x00,
-0x00, 0x00, 0x3F, 0x9B, 0x7F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x6F, 0xC0, 0x80, 0x00, 0x00,
-0x00, 0x00, 0x41, 0x84, 0x9B, 0x80, 0x00, 0x00, 0x00, 0x00, 0x42, 0x4F, 0xA2, 0x80, 0x00, 0x00,
-0x00, 0x00, 0x43, 0x64, 0x7D, 0x80, 0x00, 0x00, 0x00, 0x00, 0x44, 0x2F, 0x84, 0x80, 0x00, 0x00,
-0x00, 0x00, 0x45, 0x44, 0x51, 0x70, 0x00, 0x00, 0x00, 0x00, 0x45, 0xF3, 0xB7, 0x00, 0x00, 0x00,
-0x00, 0x00, 0x47, 0x2D, 0x6D, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x47, 0xD3, 0x99, 0x00, 0x00, 0x00,
-0x00, 0x00, 0x49, 0x0D, 0x4F, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x49, 0xB3, 0x7B, 0x00, 0x00, 0x00,
-0x00, 0x00, 0x4A, 0xED, 0x31, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x4B, 0x9C, 0x97, 0x80, 0x00, 0x00,
-0x00, 0x00, 0x4C, 0xD6, 0x4E, 0x70, 0x00, 0x00, 0x00, 0x00, 0x4D, 0x7C, 0x79, 0x80, 0x00, 0x00,
-0x00, 0x00, 0x4E, 0xB6, 0x30, 0x70, 0x00, 0x00, 0x00, 0x00, 0x4F, 0x5C, 0x5B, 0x80, 0x00, 0x00,
-0x00, 0x00, 0x50, 0x96, 0x12, 0x70, 0x00, 0x00, 0x00, 0x00, 0x51, 0x3C, 0x3D, 0x80, 0x00, 0x00,
-0x00, 0x00, 0x52, 0x75, 0xF4, 0x70, 0x00, 0x00, 0x00, 0x00, 0x53, 0x1C, 0x1F, 0x80, 0x00, 0x00,
-0x00, 0x00, 0x54, 0x55, 0xD6, 0x70, 0x00, 0x00, 0x00, 0x00, 0x54, 0xFC, 0x01, 0x80, 0x00, 0x00,
-0x00, 0x00, 0x56, 0x35, 0xB8, 0x70, 0x00, 0x00, 0x00, 0x00, 0x56, 0xE5, 0x1E, 0x00, 0x00, 0x00,
-0x00, 0x00, 0x58, 0x1E, 0xD4, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x58, 0xC5, 0x00, 0x00, 0x00, 0x00,
-0x00, 0x00, 0x59, 0xFE, 0xB6, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x5A, 0xA4, 0xE2, 0x00, 0x00, 0x00,
-0x00, 0x00, 0x5B, 0xDE, 0x98, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x5C, 0x84, 0xC4, 0x00, 0x00, 0x00,
-0x00, 0x00, 0x5D, 0xBE, 0x7A, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x5E, 0x64, 0xA6, 0x00, 0x00, 0x00,
-0x00, 0x00, 0x5F, 0x9E, 0x5C, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x60, 0x4D, 0xC2, 0x80, 0x00, 0x00,
-0x00, 0x00, 0x61, 0x87, 0x79, 0x70, 0x00, 0x00, 0x00, 0x00, 0x62, 0x2D, 0xA4, 0x80, 0x00, 0x00,
-0x00, 0x00, 0x63, 0x67, 0x5B, 0x70, 0x00, 0x00, 0x00, 0x00, 0x64, 0x0D, 0x86, 0x80, 0x00, 0x00,
-0x00, 0x00, 0x65, 0x47, 0x3D, 0x70, 0x00, 0x00, 0x00, 0x00, 0x65, 0xED, 0x68, 0x80, 0x00, 0x00,
-0x00, 0x00, 0x67, 0x27, 0x1F, 0x70, 0x00, 0x00, 0x00, 0x00, 0x67, 0xCD, 0x4A, 0x80, 0x00, 0x00,
-0x00, 0x00, 0x69, 0x07, 0x01, 0x70, 0x00, 0x00, 0x00, 0x00, 0x69, 0xAD, 0x2C, 0x80, 0x00, 0x00,
-0x00, 0x00, 0x6A, 0xE6, 0xE3, 0x70, 0x00, 0x00, 0x00, 0x00, 0x6B, 0x96, 0x49, 0x00, 0x00, 0x00,
-0x00, 0x00, 0x6C, 0xCF, 0xFF, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x6D, 0x76, 0x2B, 0x00, 0x00, 0x00,
-0x00, 0x00, 0x6E, 0xAF, 0xE1, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x6F, 0x56, 0x0D, 0x00, 0x00, 0x00,
-0x00, 0x00, 0x70, 0x8F, 0xC3, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x71, 0x35, 0xEF, 0x00, 0x00, 0x00,
-0x00, 0x00, 0x72, 0x6F, 0xA5, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x73, 0x15, 0xD1, 0x00, 0x00, 0x00,
-0x00, 0x00, 0x74, 0x4F, 0x87, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x74, 0xFE, 0xED, 0x80, 0x00, 0x00,
-0x00, 0x00, 0x76, 0x38, 0xA4, 0x70, 0x00, 0x00, 0x00, 0x00, 0x76, 0xDE, 0xCF, 0x80, 0x00, 0x00,
-0x00, 0x00, 0x78, 0x18, 0x86, 0x70, 0x00, 0x00, 0x00, 0x00, 0x78, 0xBE, 0xB1, 0x80, 0x00, 0x00,
-0x00, 0x00, 0x79, 0xF8, 0x68, 0x70, 0x00, 0x00, 0x00, 0x00, 0x7A, 0x9E, 0x93, 0x80, 0x00, 0x00,
-0x00, 0x00, 0x7B, 0xD8, 0x4A, 0x70, 0x00, 0x00, 0x00, 0x00, 0x7C, 0x7E, 0x75, 0x80, 0x00, 0x00,
-0x00, 0x00, 0x7D, 0xB8, 0x2C, 0x70, 0x00, 0x00, 0x00, 0x00, 0x7E, 0x5E, 0x57, 0x80, 0x00, 0x00,
-0x00, 0x00, 0x7F, 0x98, 0x0E, 0x70, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x03, 0x04, 0x02,
+0x05, 0x06, 0x05, 0x06, 0x05, 0x06, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02,
0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02,
+0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x07,
+0xFF, 0xFF, 0xA4, 0xEC, 0x00, 0x00, 0xFF, 0xFF, 0xB9, 0xB0, 0x01, 0x04, 0xFF, 0xFF, 0xAB, 0xA0,
+0x00, 0x08, 0xFF, 0xFF, 0xB9, 0xB0, 0x01, 0x0C, 0xFF, 0xFF, 0xB9, 0xB0, 0x01, 0x10, 0xFF, 0xFF,
+0xB9, 0xB0, 0x01, 0x04, 0xFF, 0xFF, 0xAB, 0xA0, 0x00, 0x08, 0xFF, 0xFF, 0xB9, 0xB0, 0x00, 0x14,
+0x4C, 0x4D, 0x54, 0x00, 0x43, 0x44, 0x54, 0x00, 0x43, 0x53, 0x54, 0x00, 0x43, 0x57, 0x54, 0x00,
+0x43, 0x50, 0x54, 0x00, 0x45, 0x53, 0x54, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x54, 0x5A, 0x69, 0x66, 0x32, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08,
+0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xA4, 0x00, 0x00, 0x00, 0x08,
+0x00, 0x00, 0x00, 0x18, 0xFF, 0xFF, 0xFF, 0xFF, 0x64, 0xE4, 0xB0, 0x94, 0xFF, 0xFF, 0xFF, 0xFF,
+0x9B, 0x01, 0xFB, 0xE0, 0xFF, 0xFF, 0xFF, 0xFF, 0x9B, 0xC3, 0xBA, 0x50, 0xFF, 0xFF, 0xFF, 0xFF,
+0x9E, 0xB8, 0xA1, 0x80, 0xFF, 0xFF, 0xFF, 0xFF, 0x9F, 0xBA, 0xF9, 0x70, 0xFF, 0xFF, 0xFF, 0xFF,
+0xC2, 0xA0, 0x3B, 0x80, 0xFF, 0xFF, 0xFF, 0xFF, 0xC3, 0x4F, 0x84, 0xF0, 0xFF, 0xFF, 0xFF, 0xFF,
+0xCB, 0x88, 0xFE, 0x80, 0xFF, 0xFF, 0xFF, 0xFF, 0xD2, 0x23, 0xF4, 0x70, 0xFF, 0xFF, 0xFF, 0xFF,
+0xD2, 0x61, 0x09, 0xF0, 0xFF, 0xFF, 0xFF, 0xFF, 0xD3, 0x88, 0x68, 0x00, 0xFF, 0xFF, 0xFF, 0xFF,
+0xD4, 0x53, 0x60, 0xF0, 0xFF, 0xFF, 0xFF, 0xFF, 0xD5, 0x55, 0xD5, 0x00, 0xFF, 0xFF, 0xFF, 0xFF,
+0xD6, 0x20, 0xCD, 0xF0, 0xFF, 0xFF, 0xFF, 0xFF, 0xD7, 0x35, 0xB7, 0x00, 0xFF, 0xFF, 0xFF, 0xFF,
+0xD8, 0x00, 0xAF, 0xF0, 0xFF, 0xFF, 0xFF, 0xFF, 0xD9, 0x15, 0x99, 0x00, 0xFF, 0xFF, 0xFF, 0xFF,
+0xD9, 0xE0, 0x91, 0xF0, 0xFF, 0xFF, 0xFF, 0xFF, 0xDB, 0x00, 0x07, 0x00, 0xFF, 0xFF, 0xFF, 0xFF,
+0xDB, 0xC8, 0x5C, 0xF0, 0xFF, 0xFF, 0xFF, 0xFF, 0xDC, 0xDE, 0x97, 0x80, 0xFF, 0xFF, 0xFF, 0xFF,
+0xDD, 0xA9, 0x90, 0x70, 0xFF, 0xFF, 0xFF, 0xFF, 0xDE, 0xBE, 0x79, 0x80, 0xFF, 0xFF, 0xFF, 0xFF,
+0xDF, 0x89, 0x72, 0x70, 0xFF, 0xFF, 0xFF, 0xFF, 0xE0, 0x9E, 0x5B, 0x80, 0xFF, 0xFF, 0xFF, 0xFF,
+0xE1, 0x69, 0x54, 0x70, 0xFF, 0xFF, 0xFF, 0xFF, 0xE2, 0x7E, 0x3D, 0x80, 0xFF, 0xFF, 0xFF, 0xFF,
+0xE3, 0x49, 0x36, 0x70, 0xFF, 0xFF, 0xFF, 0xFF, 0xE4, 0x5E, 0x1F, 0x80, 0xFF, 0xFF, 0xFF, 0xFF,
+0xE5, 0x29, 0x18, 0x70, 0xFF, 0xFF, 0xFF, 0xFF, 0xE6, 0x47, 0x3C, 0x00, 0xFF, 0xFF, 0xFF, 0xFF,
+0xE7, 0x12, 0x34, 0xF0, 0xFF, 0xFF, 0xFF, 0xFF, 0xE8, 0x27, 0x1E, 0x00, 0xFF, 0xFF, 0xFF, 0xFF,
+0xE8, 0xF2, 0x16, 0xF0, 0xFF, 0xFF, 0xFF, 0xFF, 0xEA, 0x07, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF,
+0xEA, 0xD1, 0xF8, 0xF0, 0xFF, 0xFF, 0xFF, 0xFF, 0xEB, 0xE6, 0xE2, 0x00, 0xFF, 0xFF, 0xFF, 0xFF,
+0xEC, 0xD6, 0xC4, 0xF0, 0xFF, 0xFF, 0xFF, 0xFF, 0xED, 0xC6, 0xC4, 0x00, 0xFF, 0xFF, 0xFF, 0xFF,
+0xEE, 0x91, 0xBC, 0xF0, 0xFF, 0xFF, 0xFF, 0xFF, 0xF3, 0x6F, 0xA4, 0x80, 0xFF, 0xFF, 0xFF, 0xFF,
+0xF4, 0x31, 0x62, 0xF0, 0xFF, 0xFF, 0xFF, 0xFF, 0xF9, 0x0F, 0x4A, 0x80, 0xFF, 0xFF, 0xFF, 0xFF,
+0xFA, 0x08, 0x76, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFA, 0xF8, 0x67, 0x00, 0xFF, 0xFF, 0xFF, 0xFF,
+0xFB, 0xE8, 0x58, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFC, 0xD8, 0x49, 0x00, 0xFF, 0xFF, 0xFF, 0xFF,
+0xFD, 0xC8, 0x3A, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFE, 0xB8, 0x2B, 0x00, 0xFF, 0xFF, 0xFF, 0xFF,
+0xFF, 0xA8, 0x1C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x98, 0x0D, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x01, 0x87, 0xFE, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x77, 0xEF, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x03, 0x71, 0x1A, 0x80, 0x00, 0x00, 0x00, 0x00, 0x04, 0x61, 0x0B, 0x80, 0x00, 0x00, 0x00, 0x00,
+0x05, 0x50, 0xFC, 0x80, 0x00, 0x00, 0x00, 0x00, 0x06, 0x40, 0xED, 0x80, 0x00, 0x00, 0x00, 0x00,
+0x07, 0x30, 0xDE, 0x80, 0x00, 0x00, 0x00, 0x00, 0x08, 0x20, 0xCF, 0x80, 0x00, 0x00, 0x00, 0x00,
+0x09, 0x10, 0xC0, 0x80, 0x00, 0x00, 0x00, 0x00, 0x0A, 0x00, 0xB1, 0x80, 0x00, 0x00, 0x00, 0x00,
+0x0A, 0xF0, 0xA2, 0x80, 0x00, 0x00, 0x00, 0x00, 0x0B, 0xE0, 0x93, 0x80, 0x00, 0x00, 0x00, 0x00,
+0x0C, 0xD9, 0xBF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0D, 0xC0, 0x75, 0x80, 0x00, 0x00, 0x00, 0x00,
+0x0E, 0xB9, 0xA1, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0F, 0xA9, 0x92, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x10, 0x99, 0x83, 0x00, 0x00, 0x00, 0x00, 0x00, 0x11, 0x89, 0x74, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x12, 0x79, 0x65, 0x00, 0x00, 0x00, 0x00, 0x00, 0x13, 0x69, 0x56, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x14, 0x59, 0x47, 0x00, 0x00, 0x00, 0x00, 0x00, 0x15, 0x49, 0x38, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x16, 0x39, 0x29, 0x00, 0x00, 0x00, 0x00, 0x00, 0x17, 0x29, 0x1A, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x18, 0x22, 0x45, 0x80, 0x00, 0x00, 0x00, 0x00, 0x19, 0x08, 0xFC, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x1A, 0x02, 0x27, 0x80, 0x00, 0x00, 0x00, 0x00, 0x1A, 0xF2, 0x18, 0x80, 0x00, 0x00, 0x00, 0x00,
+0x1B, 0xE2, 0x09, 0x80, 0x00, 0x00, 0x00, 0x00, 0x1C, 0xD1, 0xFA, 0x80, 0x00, 0x00, 0x00, 0x00,
+0x1D, 0xC1, 0xEB, 0x80, 0x00, 0x00, 0x00, 0x00, 0x1E, 0xB1, 0xDC, 0x80, 0x00, 0x00, 0x00, 0x00,
+0x1F, 0xA1, 0xCD, 0x80, 0x00, 0x00, 0x00, 0x00, 0x20, 0x76, 0x0F, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x21, 0x81, 0xAF, 0x80, 0x00, 0x00, 0x00, 0x00, 0x22, 0x55, 0xF1, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x23, 0x6A, 0xCC, 0x00, 0x00, 0x00, 0x00, 0x00, 0x24, 0x35, 0xD3, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x25, 0x4A, 0xAE, 0x00, 0x00, 0x00, 0x00, 0x00, 0x26, 0x15, 0xB5, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x27, 0x2A, 0x90, 0x00, 0x00, 0x00, 0x00, 0x00, 0x27, 0xFE, 0xD1, 0x80, 0x00, 0x00, 0x00, 0x00,
+0x29, 0x0A, 0x72, 0x00, 0x00, 0x00, 0x00, 0x00, 0x29, 0xDE, 0xB3, 0x80, 0x00, 0x00, 0x00, 0x00,
+0x2A, 0xEA, 0x54, 0x00, 0x00, 0x00, 0x00, 0x00, 0x2B, 0xBE, 0x95, 0x80, 0x00, 0x00, 0x00, 0x00,
+0x2C, 0xD3, 0x70, 0x80, 0x00, 0x00, 0x00, 0x00, 0x2D, 0x9E, 0x77, 0x80, 0x00, 0x00, 0x00, 0x00,
+0x2E, 0xB3, 0x52, 0x80, 0x00, 0x00, 0x00, 0x00, 0x2F, 0x7E, 0x59, 0x80, 0x00, 0x00, 0x00, 0x00,
+0x30, 0x93, 0x34, 0x80, 0x00, 0x00, 0x00, 0x00, 0x31, 0x67, 0x76, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x32, 0x73, 0x16, 0x80, 0x00, 0x00, 0x00, 0x00, 0x33, 0x47, 0x58, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x34, 0x52, 0xF8, 0x80, 0x00, 0x00, 0x00, 0x00, 0x35, 0x27, 0x3A, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x36, 0x32, 0xDA, 0x80, 0x00, 0x00, 0x00, 0x00, 0x37, 0x07, 0x1C, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x38, 0x1B, 0xF7, 0x00, 0x00, 0x00, 0x00, 0x00, 0x38, 0xE6, 0xFE, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x39, 0xFB, 0xD9, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3A, 0xC6, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x3B, 0xDB, 0xBB, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3C, 0xAF, 0xFC, 0x80, 0x00, 0x00, 0x00, 0x00,
+0x3D, 0xBB, 0x9D, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3E, 0x8F, 0xDE, 0x80, 0x00, 0x00, 0x00, 0x00,
+0x3F, 0x9B, 0x7F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x6F, 0xC0, 0x80, 0x00, 0x00, 0x00, 0x00,
+0x41, 0x84, 0x9B, 0x80, 0x00, 0x00, 0x00, 0x00, 0x42, 0x4F, 0xA2, 0x80, 0x00, 0x00, 0x00, 0x00,
+0x43, 0x64, 0x7D, 0x80, 0x00, 0x00, 0x00, 0x00, 0x44, 0x2F, 0x84, 0x80, 0x00, 0x00, 0x00, 0x00,
+0x45, 0x44, 0x51, 0x70, 0x00, 0x00, 0x00, 0x00, 0x45, 0xF3, 0xB7, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x47, 0x2D, 0x6D, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x47, 0xD3, 0x99, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x49, 0x0D, 0x4F, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x49, 0xB3, 0x7B, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x4A, 0xED, 0x31, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x4B, 0x9C, 0x97, 0x80, 0x00, 0x00, 0x00, 0x00,
+0x4C, 0xD6, 0x4E, 0x70, 0x00, 0x00, 0x00, 0x00, 0x4D, 0x7C, 0x79, 0x80, 0x00, 0x00, 0x00, 0x00,
+0x4E, 0xB6, 0x30, 0x70, 0x00, 0x00, 0x00, 0x00, 0x4F, 0x5C, 0x5B, 0x80, 0x00, 0x00, 0x00, 0x00,
+0x50, 0x96, 0x12, 0x70, 0x00, 0x00, 0x00, 0x00, 0x51, 0x3C, 0x3D, 0x80, 0x00, 0x00, 0x00, 0x00,
+0x52, 0x75, 0xF4, 0x70, 0x00, 0x00, 0x00, 0x00, 0x53, 0x1C, 0x1F, 0x80, 0x00, 0x00, 0x00, 0x00,
+0x54, 0x55, 0xD6, 0x70, 0x00, 0x00, 0x00, 0x00, 0x54, 0xFC, 0x01, 0x80, 0x00, 0x00, 0x00, 0x00,
+0x56, 0x35, 0xB8, 0x70, 0x00, 0x00, 0x00, 0x00, 0x56, 0xE5, 0x1E, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x58, 0x1E, 0xD4, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x58, 0xC5, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x59, 0xFE, 0xB6, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x5A, 0xA4, 0xE2, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x5B, 0xDE, 0x98, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x5C, 0x84, 0xC4, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x5D, 0xBE, 0x7A, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x5E, 0x64, 0xA6, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x5F, 0x9E, 0x5C, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x60, 0x4D, 0xC2, 0x80, 0x00, 0x00, 0x00, 0x00,
+0x61, 0x87, 0x79, 0x70, 0x00, 0x00, 0x00, 0x00, 0x62, 0x2D, 0xA4, 0x80, 0x00, 0x00, 0x00, 0x00,
+0x63, 0x67, 0x5B, 0x70, 0x00, 0x00, 0x00, 0x00, 0x64, 0x0D, 0x86, 0x80, 0x00, 0x00, 0x00, 0x00,
+0x65, 0x47, 0x3D, 0x70, 0x00, 0x00, 0x00, 0x00, 0x65, 0xED, 0x68, 0x80, 0x00, 0x00, 0x00, 0x00,
+0x67, 0x27, 0x1F, 0x70, 0x00, 0x00, 0x00, 0x00, 0x67, 0xCD, 0x4A, 0x80, 0x00, 0x00, 0x00, 0x00,
+0x69, 0x07, 0x01, 0x70, 0x00, 0x00, 0x00, 0x00, 0x69, 0xAD, 0x2C, 0x80, 0x00, 0x00, 0x00, 0x00,
+0x6A, 0xE6, 0xE3, 0x70, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x03, 0x04, 0x02, 0x01, 0x02,
0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02,
+0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x05, 0x06,
0x05, 0x06, 0x05, 0x06, 0x05, 0x06, 0x05, 0x06, 0x05, 0x06, 0x05, 0x06, 0x05, 0x06, 0x05, 0x06,
0x05, 0x06, 0x05, 0x06, 0x05, 0x06, 0x05, 0x06, 0x05, 0x06, 0x05, 0x06, 0x05, 0x06, 0x05, 0x06,
0x05, 0x06, 0x05, 0x06, 0x05, 0x06, 0x05, 0x06, 0x05, 0x06, 0x05, 0x06, 0x05, 0x06, 0x05, 0x06,
0x05, 0x06, 0x05, 0x06, 0x05, 0x06, 0x05, 0x06, 0x05, 0x06, 0x05, 0x06, 0x05, 0x06, 0x05, 0x06,
-0x05, 0x06, 0x05, 0x06, 0x05, 0x06, 0x05, 0x06, 0x05, 0x06, 0x05, 0x06, 0x05, 0x06, 0x05, 0x06,
-0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02,
-0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02,
+0x05, 0x06, 0x05, 0x06, 0x05, 0x06, 0x05, 0x06, 0x05, 0x06, 0x05, 0x06, 0x05, 0x06, 0x01, 0x02,
0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02,
0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02,
-0xFF, 0xFF, 0xA4, 0xEC, 0x00, 0x00, 0xFF, 0xFF, 0xB9, 0xB0, 0x01, 0x04, 0xFF, 0xFF, 0xAB, 0xA0,
-0x00, 0x08, 0xFF, 0xFF, 0xB9, 0xB0, 0x01, 0x0C, 0xFF, 0xFF, 0xB9, 0xB0, 0x01, 0x10, 0xFF, 0xFF,
-0xB9, 0xB0, 0x01, 0x04, 0xFF, 0xFF, 0xAB, 0xA0, 0x00, 0x08, 0x4C, 0x4D, 0x54, 0x00, 0x43, 0x44,
-0x54, 0x00, 0x43, 0x53, 0x54, 0x00, 0x43, 0x57, 0x54, 0x00, 0x43, 0x50, 0x54, 0x00, 0x00, 0x00,
-0x00, 0x00, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x0A, 0x43, 0x53, 0x54,
-0x36, 0x43, 0x44, 0x54, 0x2C, 0x4D, 0x33, 0x2E, 0x32, 0x2E, 0x30, 0x2C, 0x4D, 0x31, 0x31, 0x2E,
-0x31, 0x2E, 0x30, 0x0A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-
+0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x07, 0xFF, 0xFF, 0xA4, 0xEC, 0x00, 0x00, 0xFF, 0xFF,
+0xB9, 0xB0, 0x01, 0x04, 0xFF, 0xFF, 0xAB, 0xA0, 0x00, 0x08, 0xFF, 0xFF, 0xB9, 0xB0, 0x01, 0x0C,
+0xFF, 0xFF, 0xB9, 0xB0, 0x01, 0x10, 0xFF, 0xFF, 0xB9, 0xB0, 0x01, 0x04, 0xFF, 0xFF, 0xAB, 0xA0,
+0x00, 0x08, 0xFF, 0xFF, 0xB9, 0xB0, 0x00, 0x14, 0x4C, 0x4D, 0x54, 0x00, 0x43, 0x44, 0x54, 0x00,
+0x43, 0x53, 0x54, 0x00, 0x43, 0x57, 0x54, 0x00, 0x43, 0x50, 0x54, 0x00, 0x45, 0x53, 0x54, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
+0x0A, 0x45, 0x53, 0x54, 0x35, 0x0A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x00, 0x00,
/* America/Rankin_Inlet */
0x50, 0x48, 0x50, 0x32, 0x01, 0x43, 0x41, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
@@ -39859,8 +39774,8 @@
0x90, 0x01, 0x0C, 0xFF, 0xFF, 0x9D, 0x90, 0x01, 0x10, 0xFF, 0xFF, 0x81, 0x70, 0x00, 0x14, 0xFF,
0xFF, 0x8F, 0x80, 0x01, 0x18, 0xFF, 0xFF, 0x81, 0x70, 0x00, 0x1D, 0x4C, 0x4D, 0x54, 0x00, 0x50,
0x53, 0x54, 0x00, 0x50, 0x57, 0x54, 0x00, 0x50, 0x50, 0x54, 0x00, 0x50, 0x44, 0x54, 0x00, 0x59,
-0x53, 0x54, 0x00, 0x41, 0x4B, 0x44, 0x54, 0x00, 0x41, 0x4B, 0x53, 0x54, 0x00, 0x00, 0x00, 0x00,
-0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x0A,
+0x53, 0x54, 0x00, 0x41, 0x4B, 0x44, 0x54, 0x00, 0x41, 0x4B, 0x53, 0x54, 0x00, 0x00, 0x01, 0x00,
+0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x0A,
0x41, 0x4B, 0x53, 0x54, 0x39, 0x41, 0x4B, 0x44, 0x54, 0x2C, 0x4D, 0x33, 0x2E, 0x32, 0x2E, 0x30,
0x2C, 0x4D, 0x31, 0x31, 0x2E, 0x31, 0x2E, 0x30, 0x0A, 0x00, 0xE0, 0x92, 0xC6, 0x00, 0x44, 0x34,
0x2D, 0x00, 0x00, 0x00, 0x13, 0x41, 0x6C, 0x61, 0x73, 0x6B, 0x61, 0x20, 0x2D, 0x20, 0x53, 0x69,
@@ -41267,8 +41182,8 @@
/* America/Winnipeg */
0x50, 0x48, 0x50, 0x32, 0x01, 0x43, 0x41, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x00,
-0x00, 0x00, 0x00, 0xBA, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x14, 0x80, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x00, 0xA4, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x18, 0x80, 0x00, 0x00, 0x00,
0x9B, 0x01, 0xFB, 0xE0, 0x9B, 0xC3, 0xBA, 0x50, 0x9E, 0xB8, 0xA1, 0x80, 0x9F, 0xBA, 0xF9, 0x70,
0xC2, 0xA0, 0x3B, 0x80, 0xC3, 0x4F, 0x84, 0xF0, 0xCB, 0x88, 0xFE, 0x80, 0xD2, 0x23, 0xF4, 0x70,
0xD2, 0x61, 0x09, 0xF0, 0xD3, 0x88, 0x68, 0x00, 0xD4, 0x53, 0x60, 0xF0, 0xD5, 0x55, 0xD5, 0x00,
@@ -41309,145 +41224,127 @@
0x5D, 0xBE, 0x7A, 0xF0, 0x5E, 0x64, 0xA6, 0x00, 0x5F, 0x9E, 0x5C, 0xF0, 0x60, 0x4D, 0xC2, 0x80,
0x61, 0x87, 0x79, 0x70, 0x62, 0x2D, 0xA4, 0x80, 0x63, 0x67, 0x5B, 0x70, 0x64, 0x0D, 0x86, 0x80,
0x65, 0x47, 0x3D, 0x70, 0x65, 0xED, 0x68, 0x80, 0x67, 0x27, 0x1F, 0x70, 0x67, 0xCD, 0x4A, 0x80,
-0x69, 0x07, 0x01, 0x70, 0x69, 0xAD, 0x2C, 0x80, 0x6A, 0xE6, 0xE3, 0x70, 0x6B, 0x96, 0x49, 0x00,
-0x6C, 0xCF, 0xFF, 0xF0, 0x6D, 0x76, 0x2B, 0x00, 0x6E, 0xAF, 0xE1, 0xF0, 0x6F, 0x56, 0x0D, 0x00,
-0x70, 0x8F, 0xC3, 0xF0, 0x71, 0x35, 0xEF, 0x00, 0x72, 0x6F, 0xA5, 0xF0, 0x73, 0x15, 0xD1, 0x00,
-0x74, 0x4F, 0x87, 0xF0, 0x74, 0xFE, 0xED, 0x80, 0x76, 0x38, 0xA4, 0x70, 0x76, 0xDE, 0xCF, 0x80,
-0x78, 0x18, 0x86, 0x70, 0x78, 0xBE, 0xB1, 0x80, 0x79, 0xF8, 0x68, 0x70, 0x7A, 0x9E, 0x93, 0x80,
-0x7B, 0xD8, 0x4A, 0x70, 0x7C, 0x7E, 0x75, 0x80, 0x7D, 0xB8, 0x2C, 0x70, 0x7E, 0x5E, 0x57, 0x80,
-0x7F, 0x98, 0x0E, 0x70, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x03, 0x04, 0x02, 0x01, 0x02,
+0x69, 0x07, 0x01, 0x70, 0x69, 0xAD, 0x2C, 0x80, 0x6A, 0xE6, 0xE3, 0x70, 0x02, 0x01, 0x02, 0x01,
+0x02, 0x01, 0x02, 0x03, 0x04, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02,
0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02,
-0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x05, 0x06,
+0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x05, 0x06, 0x05, 0x06, 0x05, 0x06, 0x05, 0x06, 0x05, 0x06,
0x05, 0x06, 0x05, 0x06, 0x05, 0x06, 0x05, 0x06, 0x05, 0x06, 0x05, 0x06, 0x05, 0x06, 0x05, 0x06,
0x05, 0x06, 0x05, 0x06, 0x05, 0x06, 0x05, 0x06, 0x05, 0x06, 0x05, 0x06, 0x05, 0x06, 0x05, 0x06,
0x05, 0x06, 0x05, 0x06, 0x05, 0x06, 0x05, 0x06, 0x05, 0x06, 0x05, 0x06, 0x05, 0x06, 0x05, 0x06,
0x05, 0x06, 0x05, 0x06, 0x05, 0x06, 0x05, 0x06, 0x05, 0x06, 0x05, 0x06, 0x05, 0x06, 0x05, 0x06,
-0x05, 0x06, 0x05, 0x06, 0x05, 0x06, 0x05, 0x06, 0x05, 0x06, 0x05, 0x06, 0x05, 0x06, 0x01, 0x02,
-0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02,
-0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02,
-0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02,
-0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0xFF, 0xFF,
-0xA4, 0xEC, 0x00, 0x00, 0xFF, 0xFF, 0xB9, 0xB0, 0x01, 0x04, 0xFF, 0xFF, 0xAB, 0xA0, 0x00, 0x08,
-0xFF, 0xFF, 0xB9, 0xB0, 0x01, 0x0C, 0xFF, 0xFF, 0xB9, 0xB0, 0x01, 0x10, 0xFF, 0xFF, 0xB9, 0xB0,
-0x01, 0x04, 0xFF, 0xFF, 0xAB, 0xA0, 0x00, 0x08, 0x4C, 0x4D, 0x54, 0x00, 0x43, 0x44, 0x54, 0x00,
-0x43, 0x53, 0x54, 0x00, 0x43, 0x57, 0x54, 0x00, 0x43, 0x50, 0x54, 0x00, 0x00, 0x00, 0x00, 0x00,
-0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x54, 0x5A, 0x69, 0x66, 0x32, 0x00,
-0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-0x00, 0x07, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xBA, 0x00, 0x00,
-0x00, 0x07, 0x00, 0x00, 0x00, 0x14, 0xFF, 0xFF, 0xFF, 0xFF, 0x64, 0xE4, 0xB0, 0x94, 0xFF, 0xFF,
-0xFF, 0xFF, 0x9B, 0x01, 0xFB, 0xE0, 0xFF, 0xFF, 0xFF, 0xFF, 0x9B, 0xC3, 0xBA, 0x50, 0xFF, 0xFF,
-0xFF, 0xFF, 0x9E, 0xB8, 0xA1, 0x80, 0xFF, 0xFF, 0xFF, 0xFF, 0x9F, 0xBA, 0xF9, 0x70, 0xFF, 0xFF,
-0xFF, 0xFF, 0xC2, 0xA0, 0x3B, 0x80, 0xFF, 0xFF, 0xFF, 0xFF, 0xC3, 0x4F, 0x84, 0xF0, 0xFF, 0xFF,
-0xFF, 0xFF, 0xCB, 0x88, 0xFE, 0x80, 0xFF, 0xFF, 0xFF, 0xFF, 0xD2, 0x23, 0xF4, 0x70, 0xFF, 0xFF,
-0xFF, 0xFF, 0xD2, 0x61, 0x09, 0xF0, 0xFF, 0xFF, 0xFF, 0xFF, 0xD3, 0x88, 0x68, 0x00, 0xFF, 0xFF,
-0xFF, 0xFF, 0xD4, 0x53, 0x60, 0xF0, 0xFF, 0xFF, 0xFF, 0xFF, 0xD5, 0x55, 0xD5, 0x00, 0xFF, 0xFF,
-0xFF, 0xFF, 0xD6, 0x20, 0xCD, 0xF0, 0xFF, 0xFF, 0xFF, 0xFF, 0xD7, 0x35, 0xB7, 0x00, 0xFF, 0xFF,
-0xFF, 0xFF, 0xD8, 0x00, 0xAF, 0xF0, 0xFF, 0xFF, 0xFF, 0xFF, 0xD9, 0x15, 0x99, 0x00, 0xFF, 0xFF,
-0xFF, 0xFF, 0xD9, 0xE0, 0x91, 0xF0, 0xFF, 0xFF, 0xFF, 0xFF, 0xDB, 0x00, 0x07, 0x00, 0xFF, 0xFF,
-0xFF, 0xFF, 0xDB, 0xC8, 0x5C, 0xF0, 0xFF, 0xFF, 0xFF, 0xFF, 0xDC, 0xDE, 0x97, 0x80, 0xFF, 0xFF,
-0xFF, 0xFF, 0xDD, 0xA9, 0x90, 0x70, 0xFF, 0xFF, 0xFF, 0xFF, 0xDE, 0xBE, 0x79, 0x80, 0xFF, 0xFF,
-0xFF, 0xFF, 0xDF, 0x89, 0x72, 0x70, 0xFF, 0xFF, 0xFF, 0xFF, 0xE0, 0x9E, 0x5B, 0x80, 0xFF, 0xFF,
-0xFF, 0xFF, 0xE1, 0x69, 0x54, 0x70, 0xFF, 0xFF, 0xFF, 0xFF, 0xE2, 0x7E, 0x3D, 0x80, 0xFF, 0xFF,
-0xFF, 0xFF, 0xE3, 0x49, 0x36, 0x70, 0xFF, 0xFF, 0xFF, 0xFF, 0xE4, 0x5E, 0x1F, 0x80, 0xFF, 0xFF,
-0xFF, 0xFF, 0xE5, 0x29, 0x18, 0x70, 0xFF, 0xFF, 0xFF, 0xFF, 0xE6, 0x47, 0x3C, 0x00, 0xFF, 0xFF,
-0xFF, 0xFF, 0xE7, 0x12, 0x34, 0xF0, 0xFF, 0xFF, 0xFF, 0xFF, 0xE8, 0x27, 0x1E, 0x00, 0xFF, 0xFF,
-0xFF, 0xFF, 0xE8, 0xF2, 0x16, 0xF0, 0xFF, 0xFF, 0xFF, 0xFF, 0xEA, 0x07, 0x00, 0x00, 0xFF, 0xFF,
-0xFF, 0xFF, 0xEA, 0xD1, 0xF8, 0xF0, 0xFF, 0xFF, 0xFF, 0xFF, 0xEB, 0xE6, 0xE2, 0x00, 0xFF, 0xFF,
-0xFF, 0xFF, 0xEC, 0xD6, 0xC4, 0xF0, 0xFF, 0xFF, 0xFF, 0xFF, 0xED, 0xC6, 0xC4, 0x00, 0xFF, 0xFF,
-0xFF, 0xFF, 0xEE, 0x91, 0xBC, 0xF0, 0xFF, 0xFF, 0xFF, 0xFF, 0xF3, 0x6F, 0xA4, 0x80, 0xFF, 0xFF,
-0xFF, 0xFF, 0xF4, 0x31, 0x62, 0xF0, 0xFF, 0xFF, 0xFF, 0xFF, 0xF9, 0x0F, 0x4A, 0x80, 0xFF, 0xFF,
-0xFF, 0xFF, 0xFA, 0x08, 0x76, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFA, 0xF8, 0x67, 0x00, 0xFF, 0xFF,
-0xFF, 0xFF, 0xFB, 0xE8, 0x58, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFC, 0xD8, 0x49, 0x00, 0xFF, 0xFF,
-0xFF, 0xFF, 0xFD, 0xC8, 0x3A, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFE, 0xB8, 0x2B, 0x00, 0xFF, 0xFF,
-0xFF, 0xFF, 0xFF, 0xA8, 0x1C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x98, 0x0D, 0x00, 0x00, 0x00,
-0x00, 0x00, 0x01, 0x87, 0xFE, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x77, 0xEF, 0x00, 0x00, 0x00,
-0x00, 0x00, 0x03, 0x71, 0x1A, 0x80, 0x00, 0x00, 0x00, 0x00, 0x04, 0x61, 0x0B, 0x80, 0x00, 0x00,
-0x00, 0x00, 0x05, 0x50, 0xFC, 0x80, 0x00, 0x00, 0x00, 0x00, 0x06, 0x40, 0xED, 0x80, 0x00, 0x00,
-0x00, 0x00, 0x07, 0x30, 0xDE, 0x80, 0x00, 0x00, 0x00, 0x00, 0x08, 0x20, 0xCF, 0x80, 0x00, 0x00,
-0x00, 0x00, 0x09, 0x10, 0xC0, 0x80, 0x00, 0x00, 0x00, 0x00, 0x0A, 0x00, 0xB1, 0x80, 0x00, 0x00,
-0x00, 0x00, 0x0A, 0xF0, 0xA2, 0x80, 0x00, 0x00, 0x00, 0x00, 0x0B, 0xE0, 0x93, 0x80, 0x00, 0x00,
-0x00, 0x00, 0x0C, 0xD9, 0xBF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0D, 0xC0, 0x75, 0x80, 0x00, 0x00,
-0x00, 0x00, 0x0E, 0xB9, 0xA1, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0F, 0xA9, 0x92, 0x00, 0x00, 0x00,
-0x00, 0x00, 0x10, 0x99, 0x83, 0x00, 0x00, 0x00, 0x00, 0x00, 0x11, 0x89, 0x74, 0x00, 0x00, 0x00,
-0x00, 0x00, 0x12, 0x79, 0x65, 0x00, 0x00, 0x00, 0x00, 0x00, 0x13, 0x69, 0x56, 0x00, 0x00, 0x00,
-0x00, 0x00, 0x14, 0x59, 0x47, 0x00, 0x00, 0x00, 0x00, 0x00, 0x15, 0x49, 0x38, 0x00, 0x00, 0x00,
-0x00, 0x00, 0x16, 0x39, 0x29, 0x00, 0x00, 0x00, 0x00, 0x00, 0x17, 0x29, 0x1A, 0x00, 0x00, 0x00,
-0x00, 0x00, 0x18, 0x22, 0x45, 0x80, 0x00, 0x00, 0x00, 0x00, 0x19, 0x08, 0xFC, 0x00, 0x00, 0x00,
-0x00, 0x00, 0x1A, 0x02, 0x27, 0x80, 0x00, 0x00, 0x00, 0x00, 0x1A, 0xF2, 0x18, 0x80, 0x00, 0x00,
-0x00, 0x00, 0x1B, 0xE2, 0x09, 0x80, 0x00, 0x00, 0x00, 0x00, 0x1C, 0xD1, 0xFA, 0x80, 0x00, 0x00,
-0x00, 0x00, 0x1D, 0xC1, 0xEB, 0x80, 0x00, 0x00, 0x00, 0x00, 0x1E, 0xB1, 0xDC, 0x80, 0x00, 0x00,
-0x00, 0x00, 0x1F, 0xA1, 0xCD, 0x80, 0x00, 0x00, 0x00, 0x00, 0x20, 0x76, 0x0F, 0x00, 0x00, 0x00,
-0x00, 0x00, 0x21, 0x81, 0xAF, 0x80, 0x00, 0x00, 0x00, 0x00, 0x22, 0x55, 0xF1, 0x00, 0x00, 0x00,
-0x00, 0x00, 0x23, 0x6A, 0xCC, 0x00, 0x00, 0x00, 0x00, 0x00, 0x24, 0x35, 0xD3, 0x00, 0x00, 0x00,
-0x00, 0x00, 0x25, 0x4A, 0xAE, 0x00, 0x00, 0x00, 0x00, 0x00, 0x26, 0x15, 0xB5, 0x00, 0x00, 0x00,
-0x00, 0x00, 0x27, 0x2A, 0x90, 0x00, 0x00, 0x00, 0x00, 0x00, 0x27, 0xFE, 0xD1, 0x80, 0x00, 0x00,
-0x00, 0x00, 0x29, 0x0A, 0x72, 0x00, 0x00, 0x00, 0x00, 0x00, 0x29, 0xDE, 0xB3, 0x80, 0x00, 0x00,
-0x00, 0x00, 0x2A, 0xEA, 0x54, 0x00, 0x00, 0x00, 0x00, 0x00, 0x2B, 0xBE, 0x95, 0x80, 0x00, 0x00,
-0x00, 0x00, 0x2C, 0xD3, 0x70, 0x80, 0x00, 0x00, 0x00, 0x00, 0x2D, 0x9E, 0x77, 0x80, 0x00, 0x00,
-0x00, 0x00, 0x2E, 0xB3, 0x52, 0x80, 0x00, 0x00, 0x00, 0x00, 0x2F, 0x7E, 0x59, 0x80, 0x00, 0x00,
-0x00, 0x00, 0x30, 0x93, 0x34, 0x80, 0x00, 0x00, 0x00, 0x00, 0x31, 0x67, 0x76, 0x00, 0x00, 0x00,
-0x00, 0x00, 0x32, 0x73, 0x16, 0x80, 0x00, 0x00, 0x00, 0x00, 0x33, 0x47, 0x58, 0x00, 0x00, 0x00,
-0x00, 0x00, 0x34, 0x52, 0xF8, 0x80, 0x00, 0x00, 0x00, 0x00, 0x35, 0x27, 0x3A, 0x00, 0x00, 0x00,
-0x00, 0x00, 0x36, 0x32, 0xDA, 0x80, 0x00, 0x00, 0x00, 0x00, 0x37, 0x07, 0x1C, 0x00, 0x00, 0x00,
-0x00, 0x00, 0x38, 0x1B, 0xF7, 0x00, 0x00, 0x00, 0x00, 0x00, 0x38, 0xE6, 0xFE, 0x00, 0x00, 0x00,
-0x00, 0x00, 0x39, 0xFB, 0xD9, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3A, 0xC6, 0xE0, 0x00, 0x00, 0x00,
-0x00, 0x00, 0x3B, 0xDB, 0xBB, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3C, 0xAF, 0xFC, 0x80, 0x00, 0x00,
-0x00, 0x00, 0x3D, 0xBB, 0x9D, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3E, 0x8F, 0xDE, 0x80, 0x00, 0x00,
-0x00, 0x00, 0x3F, 0x9B, 0x7F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x6F, 0xC0, 0x80, 0x00, 0x00,
-0x00, 0x00, 0x41, 0x84, 0x9B, 0x80, 0x00, 0x00, 0x00, 0x00, 0x42, 0x4F, 0xA2, 0x80, 0x00, 0x00,
-0x00, 0x00, 0x43, 0x64, 0x7D, 0x80, 0x00, 0x00, 0x00, 0x00, 0x44, 0x2F, 0x84, 0x80, 0x00, 0x00,
-0x00, 0x00, 0x45, 0x44, 0x51, 0x70, 0x00, 0x00, 0x00, 0x00, 0x45, 0xF3, 0xB7, 0x00, 0x00, 0x00,
-0x00, 0x00, 0x47, 0x2D, 0x6D, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x47, 0xD3, 0x99, 0x00, 0x00, 0x00,
-0x00, 0x00, 0x49, 0x0D, 0x4F, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x49, 0xB3, 0x7B, 0x00, 0x00, 0x00,
-0x00, 0x00, 0x4A, 0xED, 0x31, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x4B, 0x9C, 0x97, 0x80, 0x00, 0x00,
-0x00, 0x00, 0x4C, 0xD6, 0x4E, 0x70, 0x00, 0x00, 0x00, 0x00, 0x4D, 0x7C, 0x79, 0x80, 0x00, 0x00,
-0x00, 0x00, 0x4E, 0xB6, 0x30, 0x70, 0x00, 0x00, 0x00, 0x00, 0x4F, 0x5C, 0x5B, 0x80, 0x00, 0x00,
-0x00, 0x00, 0x50, 0x96, 0x12, 0x70, 0x00, 0x00, 0x00, 0x00, 0x51, 0x3C, 0x3D, 0x80, 0x00, 0x00,
-0x00, 0x00, 0x52, 0x75, 0xF4, 0x70, 0x00, 0x00, 0x00, 0x00, 0x53, 0x1C, 0x1F, 0x80, 0x00, 0x00,
-0x00, 0x00, 0x54, 0x55, 0xD6, 0x70, 0x00, 0x00, 0x00, 0x00, 0x54, 0xFC, 0x01, 0x80, 0x00, 0x00,
-0x00, 0x00, 0x56, 0x35, 0xB8, 0x70, 0x00, 0x00, 0x00, 0x00, 0x56, 0xE5, 0x1E, 0x00, 0x00, 0x00,
-0x00, 0x00, 0x58, 0x1E, 0xD4, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x58, 0xC5, 0x00, 0x00, 0x00, 0x00,
-0x00, 0x00, 0x59, 0xFE, 0xB6, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x5A, 0xA4, 0xE2, 0x00, 0x00, 0x00,
-0x00, 0x00, 0x5B, 0xDE, 0x98, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x5C, 0x84, 0xC4, 0x00, 0x00, 0x00,
-0x00, 0x00, 0x5D, 0xBE, 0x7A, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x5E, 0x64, 0xA6, 0x00, 0x00, 0x00,
-0x00, 0x00, 0x5F, 0x9E, 0x5C, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x60, 0x4D, 0xC2, 0x80, 0x00, 0x00,
-0x00, 0x00, 0x61, 0x87, 0x79, 0x70, 0x00, 0x00, 0x00, 0x00, 0x62, 0x2D, 0xA4, 0x80, 0x00, 0x00,
-0x00, 0x00, 0x63, 0x67, 0x5B, 0x70, 0x00, 0x00, 0x00, 0x00, 0x64, 0x0D, 0x86, 0x80, 0x00, 0x00,
-0x00, 0x00, 0x65, 0x47, 0x3D, 0x70, 0x00, 0x00, 0x00, 0x00, 0x65, 0xED, 0x68, 0x80, 0x00, 0x00,
-0x00, 0x00, 0x67, 0x27, 0x1F, 0x70, 0x00, 0x00, 0x00, 0x00, 0x67, 0xCD, 0x4A, 0x80, 0x00, 0x00,
-0x00, 0x00, 0x69, 0x07, 0x01, 0x70, 0x00, 0x00, 0x00, 0x00, 0x69, 0xAD, 0x2C, 0x80, 0x00, 0x00,
-0x00, 0x00, 0x6A, 0xE6, 0xE3, 0x70, 0x00, 0x00, 0x00, 0x00, 0x6B, 0x96, 0x49, 0x00, 0x00, 0x00,
-0x00, 0x00, 0x6C, 0xCF, 0xFF, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x6D, 0x76, 0x2B, 0x00, 0x00, 0x00,
-0x00, 0x00, 0x6E, 0xAF, 0xE1, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x6F, 0x56, 0x0D, 0x00, 0x00, 0x00,
-0x00, 0x00, 0x70, 0x8F, 0xC3, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x71, 0x35, 0xEF, 0x00, 0x00, 0x00,
-0x00, 0x00, 0x72, 0x6F, 0xA5, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x73, 0x15, 0xD1, 0x00, 0x00, 0x00,
-0x00, 0x00, 0x74, 0x4F, 0x87, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x74, 0xFE, 0xED, 0x80, 0x00, 0x00,
-0x00, 0x00, 0x76, 0x38, 0xA4, 0x70, 0x00, 0x00, 0x00, 0x00, 0x76, 0xDE, 0xCF, 0x80, 0x00, 0x00,
-0x00, 0x00, 0x78, 0x18, 0x86, 0x70, 0x00, 0x00, 0x00, 0x00, 0x78, 0xBE, 0xB1, 0x80, 0x00, 0x00,
-0x00, 0x00, 0x79, 0xF8, 0x68, 0x70, 0x00, 0x00, 0x00, 0x00, 0x7A, 0x9E, 0x93, 0x80, 0x00, 0x00,
-0x00, 0x00, 0x7B, 0xD8, 0x4A, 0x70, 0x00, 0x00, 0x00, 0x00, 0x7C, 0x7E, 0x75, 0x80, 0x00, 0x00,
-0x00, 0x00, 0x7D, 0xB8, 0x2C, 0x70, 0x00, 0x00, 0x00, 0x00, 0x7E, 0x5E, 0x57, 0x80, 0x00, 0x00,
-0x00, 0x00, 0x7F, 0x98, 0x0E, 0x70, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x03, 0x04, 0x02,
+0x05, 0x06, 0x05, 0x06, 0x05, 0x06, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02,
0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02,
+0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x07,
+0xFF, 0xFF, 0xA4, 0xEC, 0x00, 0x00, 0xFF, 0xFF, 0xB9, 0xB0, 0x01, 0x04, 0xFF, 0xFF, 0xAB, 0xA0,
+0x00, 0x08, 0xFF, 0xFF, 0xB9, 0xB0, 0x01, 0x0C, 0xFF, 0xFF, 0xB9, 0xB0, 0x01, 0x10, 0xFF, 0xFF,
+0xB9, 0xB0, 0x01, 0x04, 0xFF, 0xFF, 0xAB, 0xA0, 0x00, 0x08, 0xFF, 0xFF, 0xB9, 0xB0, 0x00, 0x14,
+0x4C, 0x4D, 0x54, 0x00, 0x43, 0x44, 0x54, 0x00, 0x43, 0x53, 0x54, 0x00, 0x43, 0x57, 0x54, 0x00,
+0x43, 0x50, 0x54, 0x00, 0x45, 0x53, 0x54, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x54, 0x5A, 0x69, 0x66, 0x32, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08,
+0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xA4, 0x00, 0x00, 0x00, 0x08,
+0x00, 0x00, 0x00, 0x18, 0xFF, 0xFF, 0xFF, 0xFF, 0x64, 0xE4, 0xB0, 0x94, 0xFF, 0xFF, 0xFF, 0xFF,
+0x9B, 0x01, 0xFB, 0xE0, 0xFF, 0xFF, 0xFF, 0xFF, 0x9B, 0xC3, 0xBA, 0x50, 0xFF, 0xFF, 0xFF, 0xFF,
+0x9E, 0xB8, 0xA1, 0x80, 0xFF, 0xFF, 0xFF, 0xFF, 0x9F, 0xBA, 0xF9, 0x70, 0xFF, 0xFF, 0xFF, 0xFF,
+0xC2, 0xA0, 0x3B, 0x80, 0xFF, 0xFF, 0xFF, 0xFF, 0xC3, 0x4F, 0x84, 0xF0, 0xFF, 0xFF, 0xFF, 0xFF,
+0xCB, 0x88, 0xFE, 0x80, 0xFF, 0xFF, 0xFF, 0xFF, 0xD2, 0x23, 0xF4, 0x70, 0xFF, 0xFF, 0xFF, 0xFF,
+0xD2, 0x61, 0x09, 0xF0, 0xFF, 0xFF, 0xFF, 0xFF, 0xD3, 0x88, 0x68, 0x00, 0xFF, 0xFF, 0xFF, 0xFF,
+0xD4, 0x53, 0x60, 0xF0, 0xFF, 0xFF, 0xFF, 0xFF, 0xD5, 0x55, 0xD5, 0x00, 0xFF, 0xFF, 0xFF, 0xFF,
+0xD6, 0x20, 0xCD, 0xF0, 0xFF, 0xFF, 0xFF, 0xFF, 0xD7, 0x35, 0xB7, 0x00, 0xFF, 0xFF, 0xFF, 0xFF,
+0xD8, 0x00, 0xAF, 0xF0, 0xFF, 0xFF, 0xFF, 0xFF, 0xD9, 0x15, 0x99, 0x00, 0xFF, 0xFF, 0xFF, 0xFF,
+0xD9, 0xE0, 0x91, 0xF0, 0xFF, 0xFF, 0xFF, 0xFF, 0xDB, 0x00, 0x07, 0x00, 0xFF, 0xFF, 0xFF, 0xFF,
+0xDB, 0xC8, 0x5C, 0xF0, 0xFF, 0xFF, 0xFF, 0xFF, 0xDC, 0xDE, 0x97, 0x80, 0xFF, 0xFF, 0xFF, 0xFF,
+0xDD, 0xA9, 0x90, 0x70, 0xFF, 0xFF, 0xFF, 0xFF, 0xDE, 0xBE, 0x79, 0x80, 0xFF, 0xFF, 0xFF, 0xFF,
+0xDF, 0x89, 0x72, 0x70, 0xFF, 0xFF, 0xFF, 0xFF, 0xE0, 0x9E, 0x5B, 0x80, 0xFF, 0xFF, 0xFF, 0xFF,
+0xE1, 0x69, 0x54, 0x70, 0xFF, 0xFF, 0xFF, 0xFF, 0xE2, 0x7E, 0x3D, 0x80, 0xFF, 0xFF, 0xFF, 0xFF,
+0xE3, 0x49, 0x36, 0x70, 0xFF, 0xFF, 0xFF, 0xFF, 0xE4, 0x5E, 0x1F, 0x80, 0xFF, 0xFF, 0xFF, 0xFF,
+0xE5, 0x29, 0x18, 0x70, 0xFF, 0xFF, 0xFF, 0xFF, 0xE6, 0x47, 0x3C, 0x00, 0xFF, 0xFF, 0xFF, 0xFF,
+0xE7, 0x12, 0x34, 0xF0, 0xFF, 0xFF, 0xFF, 0xFF, 0xE8, 0x27, 0x1E, 0x00, 0xFF, 0xFF, 0xFF, 0xFF,
+0xE8, 0xF2, 0x16, 0xF0, 0xFF, 0xFF, 0xFF, 0xFF, 0xEA, 0x07, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF,
+0xEA, 0xD1, 0xF8, 0xF0, 0xFF, 0xFF, 0xFF, 0xFF, 0xEB, 0xE6, 0xE2, 0x00, 0xFF, 0xFF, 0xFF, 0xFF,
+0xEC, 0xD6, 0xC4, 0xF0, 0xFF, 0xFF, 0xFF, 0xFF, 0xED, 0xC6, 0xC4, 0x00, 0xFF, 0xFF, 0xFF, 0xFF,
+0xEE, 0x91, 0xBC, 0xF0, 0xFF, 0xFF, 0xFF, 0xFF, 0xF3, 0x6F, 0xA4, 0x80, 0xFF, 0xFF, 0xFF, 0xFF,
+0xF4, 0x31, 0x62, 0xF0, 0xFF, 0xFF, 0xFF, 0xFF, 0xF9, 0x0F, 0x4A, 0x80, 0xFF, 0xFF, 0xFF, 0xFF,
+0xFA, 0x08, 0x76, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFA, 0xF8, 0x67, 0x00, 0xFF, 0xFF, 0xFF, 0xFF,
+0xFB, 0xE8, 0x58, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFC, 0xD8, 0x49, 0x00, 0xFF, 0xFF, 0xFF, 0xFF,
+0xFD, 0xC8, 0x3A, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFE, 0xB8, 0x2B, 0x00, 0xFF, 0xFF, 0xFF, 0xFF,
+0xFF, 0xA8, 0x1C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x98, 0x0D, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x01, 0x87, 0xFE, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x77, 0xEF, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x03, 0x71, 0x1A, 0x80, 0x00, 0x00, 0x00, 0x00, 0x04, 0x61, 0x0B, 0x80, 0x00, 0x00, 0x00, 0x00,
+0x05, 0x50, 0xFC, 0x80, 0x00, 0x00, 0x00, 0x00, 0x06, 0x40, 0xED, 0x80, 0x00, 0x00, 0x00, 0x00,
+0x07, 0x30, 0xDE, 0x80, 0x00, 0x00, 0x00, 0x00, 0x08, 0x20, 0xCF, 0x80, 0x00, 0x00, 0x00, 0x00,
+0x09, 0x10, 0xC0, 0x80, 0x00, 0x00, 0x00, 0x00, 0x0A, 0x00, 0xB1, 0x80, 0x00, 0x00, 0x00, 0x00,
+0x0A, 0xF0, 0xA2, 0x80, 0x00, 0x00, 0x00, 0x00, 0x0B, 0xE0, 0x93, 0x80, 0x00, 0x00, 0x00, 0x00,
+0x0C, 0xD9, 0xBF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0D, 0xC0, 0x75, 0x80, 0x00, 0x00, 0x00, 0x00,
+0x0E, 0xB9, 0xA1, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0F, 0xA9, 0x92, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x10, 0x99, 0x83, 0x00, 0x00, 0x00, 0x00, 0x00, 0x11, 0x89, 0x74, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x12, 0x79, 0x65, 0x00, 0x00, 0x00, 0x00, 0x00, 0x13, 0x69, 0x56, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x14, 0x59, 0x47, 0x00, 0x00, 0x00, 0x00, 0x00, 0x15, 0x49, 0x38, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x16, 0x39, 0x29, 0x00, 0x00, 0x00, 0x00, 0x00, 0x17, 0x29, 0x1A, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x18, 0x22, 0x45, 0x80, 0x00, 0x00, 0x00, 0x00, 0x19, 0x08, 0xFC, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x1A, 0x02, 0x27, 0x80, 0x00, 0x00, 0x00, 0x00, 0x1A, 0xF2, 0x18, 0x80, 0x00, 0x00, 0x00, 0x00,
+0x1B, 0xE2, 0x09, 0x80, 0x00, 0x00, 0x00, 0x00, 0x1C, 0xD1, 0xFA, 0x80, 0x00, 0x00, 0x00, 0x00,
+0x1D, 0xC1, 0xEB, 0x80, 0x00, 0x00, 0x00, 0x00, 0x1E, 0xB1, 0xDC, 0x80, 0x00, 0x00, 0x00, 0x00,
+0x1F, 0xA1, 0xCD, 0x80, 0x00, 0x00, 0x00, 0x00, 0x20, 0x76, 0x0F, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x21, 0x81, 0xAF, 0x80, 0x00, 0x00, 0x00, 0x00, 0x22, 0x55, 0xF1, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x23, 0x6A, 0xCC, 0x00, 0x00, 0x00, 0x00, 0x00, 0x24, 0x35, 0xD3, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x25, 0x4A, 0xAE, 0x00, 0x00, 0x00, 0x00, 0x00, 0x26, 0x15, 0xB5, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x27, 0x2A, 0x90, 0x00, 0x00, 0x00, 0x00, 0x00, 0x27, 0xFE, 0xD1, 0x80, 0x00, 0x00, 0x00, 0x00,
+0x29, 0x0A, 0x72, 0x00, 0x00, 0x00, 0x00, 0x00, 0x29, 0xDE, 0xB3, 0x80, 0x00, 0x00, 0x00, 0x00,
+0x2A, 0xEA, 0x54, 0x00, 0x00, 0x00, 0x00, 0x00, 0x2B, 0xBE, 0x95, 0x80, 0x00, 0x00, 0x00, 0x00,
+0x2C, 0xD3, 0x70, 0x80, 0x00, 0x00, 0x00, 0x00, 0x2D, 0x9E, 0x77, 0x80, 0x00, 0x00, 0x00, 0x00,
+0x2E, 0xB3, 0x52, 0x80, 0x00, 0x00, 0x00, 0x00, 0x2F, 0x7E, 0x59, 0x80, 0x00, 0x00, 0x00, 0x00,
+0x30, 0x93, 0x34, 0x80, 0x00, 0x00, 0x00, 0x00, 0x31, 0x67, 0x76, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x32, 0x73, 0x16, 0x80, 0x00, 0x00, 0x00, 0x00, 0x33, 0x47, 0x58, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x34, 0x52, 0xF8, 0x80, 0x00, 0x00, 0x00, 0x00, 0x35, 0x27, 0x3A, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x36, 0x32, 0xDA, 0x80, 0x00, 0x00, 0x00, 0x00, 0x37, 0x07, 0x1C, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x38, 0x1B, 0xF7, 0x00, 0x00, 0x00, 0x00, 0x00, 0x38, 0xE6, 0xFE, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x39, 0xFB, 0xD9, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3A, 0xC6, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x3B, 0xDB, 0xBB, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3C, 0xAF, 0xFC, 0x80, 0x00, 0x00, 0x00, 0x00,
+0x3D, 0xBB, 0x9D, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3E, 0x8F, 0xDE, 0x80, 0x00, 0x00, 0x00, 0x00,
+0x3F, 0x9B, 0x7F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x6F, 0xC0, 0x80, 0x00, 0x00, 0x00, 0x00,
+0x41, 0x84, 0x9B, 0x80, 0x00, 0x00, 0x00, 0x00, 0x42, 0x4F, 0xA2, 0x80, 0x00, 0x00, 0x00, 0x00,
+0x43, 0x64, 0x7D, 0x80, 0x00, 0x00, 0x00, 0x00, 0x44, 0x2F, 0x84, 0x80, 0x00, 0x00, 0x00, 0x00,
+0x45, 0x44, 0x51, 0x70, 0x00, 0x00, 0x00, 0x00, 0x45, 0xF3, 0xB7, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x47, 0x2D, 0x6D, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x47, 0xD3, 0x99, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x49, 0x0D, 0x4F, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x49, 0xB3, 0x7B, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x4A, 0xED, 0x31, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x4B, 0x9C, 0x97, 0x80, 0x00, 0x00, 0x00, 0x00,
+0x4C, 0xD6, 0x4E, 0x70, 0x00, 0x00, 0x00, 0x00, 0x4D, 0x7C, 0x79, 0x80, 0x00, 0x00, 0x00, 0x00,
+0x4E, 0xB6, 0x30, 0x70, 0x00, 0x00, 0x00, 0x00, 0x4F, 0x5C, 0x5B, 0x80, 0x00, 0x00, 0x00, 0x00,
+0x50, 0x96, 0x12, 0x70, 0x00, 0x00, 0x00, 0x00, 0x51, 0x3C, 0x3D, 0x80, 0x00, 0x00, 0x00, 0x00,
+0x52, 0x75, 0xF4, 0x70, 0x00, 0x00, 0x00, 0x00, 0x53, 0x1C, 0x1F, 0x80, 0x00, 0x00, 0x00, 0x00,
+0x54, 0x55, 0xD6, 0x70, 0x00, 0x00, 0x00, 0x00, 0x54, 0xFC, 0x01, 0x80, 0x00, 0x00, 0x00, 0x00,
+0x56, 0x35, 0xB8, 0x70, 0x00, 0x00, 0x00, 0x00, 0x56, 0xE5, 0x1E, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x58, 0x1E, 0xD4, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x58, 0xC5, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x59, 0xFE, 0xB6, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x5A, 0xA4, 0xE2, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x5B, 0xDE, 0x98, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x5C, 0x84, 0xC4, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x5D, 0xBE, 0x7A, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x5E, 0x64, 0xA6, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x5F, 0x9E, 0x5C, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x60, 0x4D, 0xC2, 0x80, 0x00, 0x00, 0x00, 0x00,
+0x61, 0x87, 0x79, 0x70, 0x00, 0x00, 0x00, 0x00, 0x62, 0x2D, 0xA4, 0x80, 0x00, 0x00, 0x00, 0x00,
+0x63, 0x67, 0x5B, 0x70, 0x00, 0x00, 0x00, 0x00, 0x64, 0x0D, 0x86, 0x80, 0x00, 0x00, 0x00, 0x00,
+0x65, 0x47, 0x3D, 0x70, 0x00, 0x00, 0x00, 0x00, 0x65, 0xED, 0x68, 0x80, 0x00, 0x00, 0x00, 0x00,
+0x67, 0x27, 0x1F, 0x70, 0x00, 0x00, 0x00, 0x00, 0x67, 0xCD, 0x4A, 0x80, 0x00, 0x00, 0x00, 0x00,
+0x69, 0x07, 0x01, 0x70, 0x00, 0x00, 0x00, 0x00, 0x69, 0xAD, 0x2C, 0x80, 0x00, 0x00, 0x00, 0x00,
+0x6A, 0xE6, 0xE3, 0x70, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x03, 0x04, 0x02, 0x01, 0x02,
0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02,
+0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x05, 0x06,
0x05, 0x06, 0x05, 0x06, 0x05, 0x06, 0x05, 0x06, 0x05, 0x06, 0x05, 0x06, 0x05, 0x06, 0x05, 0x06,
0x05, 0x06, 0x05, 0x06, 0x05, 0x06, 0x05, 0x06, 0x05, 0x06, 0x05, 0x06, 0x05, 0x06, 0x05, 0x06,
0x05, 0x06, 0x05, 0x06, 0x05, 0x06, 0x05, 0x06, 0x05, 0x06, 0x05, 0x06, 0x05, 0x06, 0x05, 0x06,
0x05, 0x06, 0x05, 0x06, 0x05, 0x06, 0x05, 0x06, 0x05, 0x06, 0x05, 0x06, 0x05, 0x06, 0x05, 0x06,
-0x05, 0x06, 0x05, 0x06, 0x05, 0x06, 0x05, 0x06, 0x05, 0x06, 0x05, 0x06, 0x05, 0x06, 0x05, 0x06,
-0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02,
-0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02,
+0x05, 0x06, 0x05, 0x06, 0x05, 0x06, 0x05, 0x06, 0x05, 0x06, 0x05, 0x06, 0x05, 0x06, 0x01, 0x02,
0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02,
0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02,
-0xFF, 0xFF, 0xA4, 0xEC, 0x00, 0x00, 0xFF, 0xFF, 0xB9, 0xB0, 0x01, 0x04, 0xFF, 0xFF, 0xAB, 0xA0,
-0x00, 0x08, 0xFF, 0xFF, 0xB9, 0xB0, 0x01, 0x0C, 0xFF, 0xFF, 0xB9, 0xB0, 0x01, 0x10, 0xFF, 0xFF,
-0xB9, 0xB0, 0x01, 0x04, 0xFF, 0xFF, 0xAB, 0xA0, 0x00, 0x08, 0x4C, 0x4D, 0x54, 0x00, 0x43, 0x44,
-0x54, 0x00, 0x43, 0x53, 0x54, 0x00, 0x43, 0x57, 0x54, 0x00, 0x43, 0x50, 0x54, 0x00, 0x00, 0x00,
-0x00, 0x00, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x0A, 0x43, 0x53, 0x54,
-0x36, 0x43, 0x44, 0x54, 0x2C, 0x4D, 0x33, 0x2E, 0x32, 0x2E, 0x30, 0x2C, 0x4D, 0x31, 0x31, 0x2E,
-0x31, 0x2E, 0x30, 0x0A, 0x00, 0xD5, 0x71, 0xED, 0x00, 0x7E, 0x6B, 0x47, 0x00, 0x00, 0x00, 0x1D,
-0x43, 0x65, 0x6E, 0x74, 0x72, 0x61, 0x6C, 0x20, 0x2D, 0x20, 0x4F, 0x4E, 0x20, 0x28, 0x77, 0x65,
-0x73, 0x74, 0x29, 0x2C, 0x20, 0x4D, 0x61, 0x6E, 0x69, 0x74, 0x6F, 0x62, 0x61,
+0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x07, 0xFF, 0xFF, 0xA4, 0xEC, 0x00, 0x00, 0xFF, 0xFF,
+0xB9, 0xB0, 0x01, 0x04, 0xFF, 0xFF, 0xAB, 0xA0, 0x00, 0x08, 0xFF, 0xFF, 0xB9, 0xB0, 0x01, 0x0C,
+0xFF, 0xFF, 0xB9, 0xB0, 0x01, 0x10, 0xFF, 0xFF, 0xB9, 0xB0, 0x01, 0x04, 0xFF, 0xFF, 0xAB, 0xA0,
+0x00, 0x08, 0xFF, 0xFF, 0xB9, 0xB0, 0x00, 0x14, 0x4C, 0x4D, 0x54, 0x00, 0x43, 0x44, 0x54, 0x00,
+0x43, 0x53, 0x54, 0x00, 0x43, 0x57, 0x54, 0x00, 0x43, 0x50, 0x54, 0x00, 0x45, 0x53, 0x54, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
+0x0A, 0x45, 0x53, 0x54, 0x35, 0x0A, 0x00, 0xD5, 0x71, 0xED, 0x00, 0x7E, 0x6B, 0x47, 0x00, 0x00,
+0x00, 0x1E, 0x45, 0x53, 0x54, 0x20, 0x2D, 0x20, 0x4D, 0x61, 0x6E, 0x69, 0x74, 0x6F, 0x62, 0x61,
+0x2C, 0x20, 0x4F, 0x4E, 0x20, 0x28, 0x6E, 0x6F, 0x72, 0x74, 0x68, 0x77, 0x65, 0x73, 0x74, 0x29,
+
/* America/Yakutat */
0x50, 0x48, 0x50, 0x32, 0x01, 0x55, 0x53, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
@@ -41591,8 +41488,8 @@
0x08, 0xFF, 0xFF, 0x8F, 0x80, 0x01, 0x0C, 0xFF, 0xFF, 0x8F, 0x80, 0x01, 0x10, 0xFF, 0xFF, 0x8F,
0x80, 0x01, 0x14, 0xFF, 0xFF, 0x81, 0x70, 0x00, 0x19, 0x4C, 0x4D, 0x54, 0x00, 0x59, 0x53, 0x54,
0x00, 0x59, 0x57, 0x54, 0x00, 0x59, 0x50, 0x54, 0x00, 0x59, 0x44, 0x54, 0x00, 0x41, 0x4B, 0x44,
-0x54, 0x00, 0x41, 0x4B, 0x53, 0x54, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00,
-0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x0A, 0x41, 0x4B, 0x53, 0x54, 0x39, 0x41, 0x4B, 0x44,
+0x54, 0x00, 0x41, 0x4B, 0x53, 0x54, 0x00, 0x00, 0x01, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00,
+0x01, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x0A, 0x41, 0x4B, 0x53, 0x54, 0x39, 0x41, 0x4B, 0x44,
0x54, 0x2C, 0x4D, 0x33, 0x2E, 0x32, 0x2E, 0x30, 0x2C, 0x4D, 0x31, 0x31, 0x2E, 0x31, 0x2E, 0x30,
0x0A, 0x00, 0xE4, 0x30, 0xC6, 0x00, 0x3D, 0x73, 0x8D, 0x00, 0x00, 0x00, 0x10, 0x41, 0x6C, 0x61,
0x73, 0x6B, 0x61, 0x20, 0x2D, 0x20, 0x59, 0x61, 0x6B, 0x75, 0x74, 0x61, 0x74,
@@ -47228,7 +47125,7 @@
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x47, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x1C, 0x9A, 0x6C, 0x7D, 0xC8,
0xBF, 0x00, 0xCC, 0x48, 0x0D, 0x94, 0x44, 0x38, 0x0E, 0xAD, 0x13, 0xB8, 0x0F, 0x79, 0x73, 0x40,
-0x10, 0x28, 0xCA, 0xC0, 0x10, 0xA9, 0xFD, 0xC0, 0x11, 0xAD, 0xBC, 0x48, 0x12, 0x45, 0x4A, 0xB8,
+0x10, 0x28, 0xCA, 0xC0, 0x10, 0xA9, 0xFD, 0xC0, 0x11, 0xAC, 0x6A, 0xC8, 0x12, 0x45, 0x4A, 0xB8,
0x13, 0x37, 0xEC, 0xC8, 0x14, 0x2D, 0x15, 0xB8, 0x28, 0x20, 0x76, 0xC8, 0x28, 0xDB, 0x9D, 0xB8,
0x29, 0xCB, 0x9C, 0xC8, 0x2A, 0xBE, 0x22, 0xB8, 0x2B, 0xAC, 0xD0, 0x48, 0x2C, 0x9F, 0x56, 0x38,
0x2D, 0x8E, 0x03, 0xC8, 0x2E, 0x80, 0x89, 0xB8, 0x2F, 0x6F, 0x37, 0x48, 0x30, 0x61, 0xBD, 0x38,
@@ -47260,7 +47157,7 @@
0xFF, 0xFF, 0xFF, 0xBF, 0x00, 0xCC, 0x48, 0x00, 0x00, 0x00, 0x00, 0x0D, 0x94, 0x44, 0x38, 0x00,
0x00, 0x00, 0x00, 0x0E, 0xAD, 0x13, 0xB8, 0x00, 0x00, 0x00, 0x00, 0x0F, 0x79, 0x73, 0x40, 0x00,
0x00, 0x00, 0x00, 0x10, 0x28, 0xCA, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x10, 0xA9, 0xFD, 0xC0, 0x00,
-0x00, 0x00, 0x00, 0x11, 0xAD, 0xBC, 0x48, 0x00, 0x00, 0x00, 0x00, 0x12, 0x45, 0x4A, 0xB8, 0x00,
+0x00, 0x00, 0x00, 0x11, 0xAC, 0x6A, 0xC8, 0x00, 0x00, 0x00, 0x00, 0x12, 0x45, 0x4A, 0xB8, 0x00,
0x00, 0x00, 0x00, 0x13, 0x37, 0xEC, 0xC8, 0x00, 0x00, 0x00, 0x00, 0x14, 0x2D, 0x15, 0xB8, 0x00,
0x00, 0x00, 0x00, 0x28, 0x20, 0x76, 0xC8, 0x00, 0x00, 0x00, 0x00, 0x28, 0xDB, 0x9D, 0xB8, 0x00,
0x00, 0x00, 0x00, 0x29, 0xCB, 0x9C, 0xC8, 0x00, 0x00, 0x00, 0x00, 0x2A, 0xBE, 0x22, 0xB8, 0x00,
@@ -52255,8 +52152,8 @@
/* Canada/Central */
0x50, 0x48, 0x50, 0x32, 0x00, 0x3F, 0x3F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x00,
-0x00, 0x00, 0x00, 0xBA, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x14, 0x80, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x00, 0xA4, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x18, 0x80, 0x00, 0x00, 0x00,
0x9B, 0x01, 0xFB, 0xE0, 0x9B, 0xC3, 0xBA, 0x50, 0x9E, 0xB8, 0xA1, 0x80, 0x9F, 0xBA, 0xF9, 0x70,
0xC2, 0xA0, 0x3B, 0x80, 0xC3, 0x4F, 0x84, 0xF0, 0xCB, 0x88, 0xFE, 0x80, 0xD2, 0x23, 0xF4, 0x70,
0xD2, 0x61, 0x09, 0xF0, 0xD3, 0x88, 0x68, 0x00, 0xD4, 0x53, 0x60, 0xF0, 0xD5, 0x55, 0xD5, 0x00,
@@ -52297,144 +52194,125 @@
0x5D, 0xBE, 0x7A, 0xF0, 0x5E, 0x64, 0xA6, 0x00, 0x5F, 0x9E, 0x5C, 0xF0, 0x60, 0x4D, 0xC2, 0x80,
0x61, 0x87, 0x79, 0x70, 0x62, 0x2D, 0xA4, 0x80, 0x63, 0x67, 0x5B, 0x70, 0x64, 0x0D, 0x86, 0x80,
0x65, 0x47, 0x3D, 0x70, 0x65, 0xED, 0x68, 0x80, 0x67, 0x27, 0x1F, 0x70, 0x67, 0xCD, 0x4A, 0x80,
-0x69, 0x07, 0x01, 0x70, 0x69, 0xAD, 0x2C, 0x80, 0x6A, 0xE6, 0xE3, 0x70, 0x6B, 0x96, 0x49, 0x00,
-0x6C, 0xCF, 0xFF, 0xF0, 0x6D, 0x76, 0x2B, 0x00, 0x6E, 0xAF, 0xE1, 0xF0, 0x6F, 0x56, 0x0D, 0x00,
-0x70, 0x8F, 0xC3, 0xF0, 0x71, 0x35, 0xEF, 0x00, 0x72, 0x6F, 0xA5, 0xF0, 0x73, 0x15, 0xD1, 0x00,
-0x74, 0x4F, 0x87, 0xF0, 0x74, 0xFE, 0xED, 0x80, 0x76, 0x38, 0xA4, 0x70, 0x76, 0xDE, 0xCF, 0x80,
-0x78, 0x18, 0x86, 0x70, 0x78, 0xBE, 0xB1, 0x80, 0x79, 0xF8, 0x68, 0x70, 0x7A, 0x9E, 0x93, 0x80,
-0x7B, 0xD8, 0x4A, 0x70, 0x7C, 0x7E, 0x75, 0x80, 0x7D, 0xB8, 0x2C, 0x70, 0x7E, 0x5E, 0x57, 0x80,
-0x7F, 0x98, 0x0E, 0x70, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x03, 0x04, 0x02, 0x01, 0x02,
+0x69, 0x07, 0x01, 0x70, 0x69, 0xAD, 0x2C, 0x80, 0x6A, 0xE6, 0xE3, 0x70, 0x02, 0x01, 0x02, 0x01,
+0x02, 0x01, 0x02, 0x03, 0x04, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02,
0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02,
-0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x05, 0x06,
+0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x05, 0x06, 0x05, 0x06, 0x05, 0x06, 0x05, 0x06, 0x05, 0x06,
0x05, 0x06, 0x05, 0x06, 0x05, 0x06, 0x05, 0x06, 0x05, 0x06, 0x05, 0x06, 0x05, 0x06, 0x05, 0x06,
0x05, 0x06, 0x05, 0x06, 0x05, 0x06, 0x05, 0x06, 0x05, 0x06, 0x05, 0x06, 0x05, 0x06, 0x05, 0x06,
0x05, 0x06, 0x05, 0x06, 0x05, 0x06, 0x05, 0x06, 0x05, 0x06, 0x05, 0x06, 0x05, 0x06, 0x05, 0x06,
0x05, 0x06, 0x05, 0x06, 0x05, 0x06, 0x05, 0x06, 0x05, 0x06, 0x05, 0x06, 0x05, 0x06, 0x05, 0x06,
-0x05, 0x06, 0x05, 0x06, 0x05, 0x06, 0x05, 0x06, 0x05, 0x06, 0x05, 0x06, 0x05, 0x06, 0x01, 0x02,
-0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02,
-0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02,
-0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02,
-0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0xFF, 0xFF,
-0xA4, 0xEC, 0x00, 0x00, 0xFF, 0xFF, 0xB9, 0xB0, 0x01, 0x04, 0xFF, 0xFF, 0xAB, 0xA0, 0x00, 0x08,
-0xFF, 0xFF, 0xB9, 0xB0, 0x01, 0x0C, 0xFF, 0xFF, 0xB9, 0xB0, 0x01, 0x10, 0xFF, 0xFF, 0xB9, 0xB0,
-0x01, 0x04, 0xFF, 0xFF, 0xAB, 0xA0, 0x00, 0x08, 0x4C, 0x4D, 0x54, 0x00, 0x43, 0x44, 0x54, 0x00,
-0x43, 0x53, 0x54, 0x00, 0x43, 0x57, 0x54, 0x00, 0x43, 0x50, 0x54, 0x00, 0x00, 0x00, 0x00, 0x00,
-0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x54, 0x5A, 0x69, 0x66, 0x32, 0x00,
-0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-0x00, 0x07, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xBA, 0x00, 0x00,
-0x00, 0x07, 0x00, 0x00, 0x00, 0x14, 0xFF, 0xFF, 0xFF, 0xFF, 0x64, 0xE4, 0xB0, 0x94, 0xFF, 0xFF,
-0xFF, 0xFF, 0x9B, 0x01, 0xFB, 0xE0, 0xFF, 0xFF, 0xFF, 0xFF, 0x9B, 0xC3, 0xBA, 0x50, 0xFF, 0xFF,
-0xFF, 0xFF, 0x9E, 0xB8, 0xA1, 0x80, 0xFF, 0xFF, 0xFF, 0xFF, 0x9F, 0xBA, 0xF9, 0x70, 0xFF, 0xFF,
-0xFF, 0xFF, 0xC2, 0xA0, 0x3B, 0x80, 0xFF, 0xFF, 0xFF, 0xFF, 0xC3, 0x4F, 0x84, 0xF0, 0xFF, 0xFF,
-0xFF, 0xFF, 0xCB, 0x88, 0xFE, 0x80, 0xFF, 0xFF, 0xFF, 0xFF, 0xD2, 0x23, 0xF4, 0x70, 0xFF, 0xFF,
-0xFF, 0xFF, 0xD2, 0x61, 0x09, 0xF0, 0xFF, 0xFF, 0xFF, 0xFF, 0xD3, 0x88, 0x68, 0x00, 0xFF, 0xFF,
-0xFF, 0xFF, 0xD4, 0x53, 0x60, 0xF0, 0xFF, 0xFF, 0xFF, 0xFF, 0xD5, 0x55, 0xD5, 0x00, 0xFF, 0xFF,
-0xFF, 0xFF, 0xD6, 0x20, 0xCD, 0xF0, 0xFF, 0xFF, 0xFF, 0xFF, 0xD7, 0x35, 0xB7, 0x00, 0xFF, 0xFF,
-0xFF, 0xFF, 0xD8, 0x00, 0xAF, 0xF0, 0xFF, 0xFF, 0xFF, 0xFF, 0xD9, 0x15, 0x99, 0x00, 0xFF, 0xFF,
-0xFF, 0xFF, 0xD9, 0xE0, 0x91, 0xF0, 0xFF, 0xFF, 0xFF, 0xFF, 0xDB, 0x00, 0x07, 0x00, 0xFF, 0xFF,
-0xFF, 0xFF, 0xDB, 0xC8, 0x5C, 0xF0, 0xFF, 0xFF, 0xFF, 0xFF, 0xDC, 0xDE, 0x97, 0x80, 0xFF, 0xFF,
-0xFF, 0xFF, 0xDD, 0xA9, 0x90, 0x70, 0xFF, 0xFF, 0xFF, 0xFF, 0xDE, 0xBE, 0x79, 0x80, 0xFF, 0xFF,
-0xFF, 0xFF, 0xDF, 0x89, 0x72, 0x70, 0xFF, 0xFF, 0xFF, 0xFF, 0xE0, 0x9E, 0x5B, 0x80, 0xFF, 0xFF,
-0xFF, 0xFF, 0xE1, 0x69, 0x54, 0x70, 0xFF, 0xFF, 0xFF, 0xFF, 0xE2, 0x7E, 0x3D, 0x80, 0xFF, 0xFF,
-0xFF, 0xFF, 0xE3, 0x49, 0x36, 0x70, 0xFF, 0xFF, 0xFF, 0xFF, 0xE4, 0x5E, 0x1F, 0x80, 0xFF, 0xFF,
-0xFF, 0xFF, 0xE5, 0x29, 0x18, 0x70, 0xFF, 0xFF, 0xFF, 0xFF, 0xE6, 0x47, 0x3C, 0x00, 0xFF, 0xFF,
-0xFF, 0xFF, 0xE7, 0x12, 0x34, 0xF0, 0xFF, 0xFF, 0xFF, 0xFF, 0xE8, 0x27, 0x1E, 0x00, 0xFF, 0xFF,
-0xFF, 0xFF, 0xE8, 0xF2, 0x16, 0xF0, 0xFF, 0xFF, 0xFF, 0xFF, 0xEA, 0x07, 0x00, 0x00, 0xFF, 0xFF,
-0xFF, 0xFF, 0xEA, 0xD1, 0xF8, 0xF0, 0xFF, 0xFF, 0xFF, 0xFF, 0xEB, 0xE6, 0xE2, 0x00, 0xFF, 0xFF,
-0xFF, 0xFF, 0xEC, 0xD6, 0xC4, 0xF0, 0xFF, 0xFF, 0xFF, 0xFF, 0xED, 0xC6, 0xC4, 0x00, 0xFF, 0xFF,
-0xFF, 0xFF, 0xEE, 0x91, 0xBC, 0xF0, 0xFF, 0xFF, 0xFF, 0xFF, 0xF3, 0x6F, 0xA4, 0x80, 0xFF, 0xFF,
-0xFF, 0xFF, 0xF4, 0x31, 0x62, 0xF0, 0xFF, 0xFF, 0xFF, 0xFF, 0xF9, 0x0F, 0x4A, 0x80, 0xFF, 0xFF,
-0xFF, 0xFF, 0xFA, 0x08, 0x76, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFA, 0xF8, 0x67, 0x00, 0xFF, 0xFF,
-0xFF, 0xFF, 0xFB, 0xE8, 0x58, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFC, 0xD8, 0x49, 0x00, 0xFF, 0xFF,
-0xFF, 0xFF, 0xFD, 0xC8, 0x3A, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFE, 0xB8, 0x2B, 0x00, 0xFF, 0xFF,
-0xFF, 0xFF, 0xFF, 0xA8, 0x1C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x98, 0x0D, 0x00, 0x00, 0x00,
-0x00, 0x00, 0x01, 0x87, 0xFE, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x77, 0xEF, 0x00, 0x00, 0x00,
-0x00, 0x00, 0x03, 0x71, 0x1A, 0x80, 0x00, 0x00, 0x00, 0x00, 0x04, 0x61, 0x0B, 0x80, 0x00, 0x00,
-0x00, 0x00, 0x05, 0x50, 0xFC, 0x80, 0x00, 0x00, 0x00, 0x00, 0x06, 0x40, 0xED, 0x80, 0x00, 0x00,
-0x00, 0x00, 0x07, 0x30, 0xDE, 0x80, 0x00, 0x00, 0x00, 0x00, 0x08, 0x20, 0xCF, 0x80, 0x00, 0x00,
-0x00, 0x00, 0x09, 0x10, 0xC0, 0x80, 0x00, 0x00, 0x00, 0x00, 0x0A, 0x00, 0xB1, 0x80, 0x00, 0x00,
-0x00, 0x00, 0x0A, 0xF0, 0xA2, 0x80, 0x00, 0x00, 0x00, 0x00, 0x0B, 0xE0, 0x93, 0x80, 0x00, 0x00,
-0x00, 0x00, 0x0C, 0xD9, 0xBF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0D, 0xC0, 0x75, 0x80, 0x00, 0x00,
-0x00, 0x00, 0x0E, 0xB9, 0xA1, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0F, 0xA9, 0x92, 0x00, 0x00, 0x00,
-0x00, 0x00, 0x10, 0x99, 0x83, 0x00, 0x00, 0x00, 0x00, 0x00, 0x11, 0x89, 0x74, 0x00, 0x00, 0x00,
-0x00, 0x00, 0x12, 0x79, 0x65, 0x00, 0x00, 0x00, 0x00, 0x00, 0x13, 0x69, 0x56, 0x00, 0x00, 0x00,
-0x00, 0x00, 0x14, 0x59, 0x47, 0x00, 0x00, 0x00, 0x00, 0x00, 0x15, 0x49, 0x38, 0x00, 0x00, 0x00,
-0x00, 0x00, 0x16, 0x39, 0x29, 0x00, 0x00, 0x00, 0x00, 0x00, 0x17, 0x29, 0x1A, 0x00, 0x00, 0x00,
-0x00, 0x00, 0x18, 0x22, 0x45, 0x80, 0x00, 0x00, 0x00, 0x00, 0x19, 0x08, 0xFC, 0x00, 0x00, 0x00,
-0x00, 0x00, 0x1A, 0x02, 0x27, 0x80, 0x00, 0x00, 0x00, 0x00, 0x1A, 0xF2, 0x18, 0x80, 0x00, 0x00,
-0x00, 0x00, 0x1B, 0xE2, 0x09, 0x80, 0x00, 0x00, 0x00, 0x00, 0x1C, 0xD1, 0xFA, 0x80, 0x00, 0x00,
-0x00, 0x00, 0x1D, 0xC1, 0xEB, 0x80, 0x00, 0x00, 0x00, 0x00, 0x1E, 0xB1, 0xDC, 0x80, 0x00, 0x00,
-0x00, 0x00, 0x1F, 0xA1, 0xCD, 0x80, 0x00, 0x00, 0x00, 0x00, 0x20, 0x76, 0x0F, 0x00, 0x00, 0x00,
-0x00, 0x00, 0x21, 0x81, 0xAF, 0x80, 0x00, 0x00, 0x00, 0x00, 0x22, 0x55, 0xF1, 0x00, 0x00, 0x00,
-0x00, 0x00, 0x23, 0x6A, 0xCC, 0x00, 0x00, 0x00, 0x00, 0x00, 0x24, 0x35, 0xD3, 0x00, 0x00, 0x00,
-0x00, 0x00, 0x25, 0x4A, 0xAE, 0x00, 0x00, 0x00, 0x00, 0x00, 0x26, 0x15, 0xB5, 0x00, 0x00, 0x00,
-0x00, 0x00, 0x27, 0x2A, 0x90, 0x00, 0x00, 0x00, 0x00, 0x00, 0x27, 0xFE, 0xD1, 0x80, 0x00, 0x00,
-0x00, 0x00, 0x29, 0x0A, 0x72, 0x00, 0x00, 0x00, 0x00, 0x00, 0x29, 0xDE, 0xB3, 0x80, 0x00, 0x00,
-0x00, 0x00, 0x2A, 0xEA, 0x54, 0x00, 0x00, 0x00, 0x00, 0x00, 0x2B, 0xBE, 0x95, 0x80, 0x00, 0x00,
-0x00, 0x00, 0x2C, 0xD3, 0x70, 0x80, 0x00, 0x00, 0x00, 0x00, 0x2D, 0x9E, 0x77, 0x80, 0x00, 0x00,
-0x00, 0x00, 0x2E, 0xB3, 0x52, 0x80, 0x00, 0x00, 0x00, 0x00, 0x2F, 0x7E, 0x59, 0x80, 0x00, 0x00,
-0x00, 0x00, 0x30, 0x93, 0x34, 0x80, 0x00, 0x00, 0x00, 0x00, 0x31, 0x67, 0x76, 0x00, 0x00, 0x00,
-0x00, 0x00, 0x32, 0x73, 0x16, 0x80, 0x00, 0x00, 0x00, 0x00, 0x33, 0x47, 0x58, 0x00, 0x00, 0x00,
-0x00, 0x00, 0x34, 0x52, 0xF8, 0x80, 0x00, 0x00, 0x00, 0x00, 0x35, 0x27, 0x3A, 0x00, 0x00, 0x00,
-0x00, 0x00, 0x36, 0x32, 0xDA, 0x80, 0x00, 0x00, 0x00, 0x00, 0x37, 0x07, 0x1C, 0x00, 0x00, 0x00,
-0x00, 0x00, 0x38, 0x1B, 0xF7, 0x00, 0x00, 0x00, 0x00, 0x00, 0x38, 0xE6, 0xFE, 0x00, 0x00, 0x00,
-0x00, 0x00, 0x39, 0xFB, 0xD9, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3A, 0xC6, 0xE0, 0x00, 0x00, 0x00,
-0x00, 0x00, 0x3B, 0xDB, 0xBB, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3C, 0xAF, 0xFC, 0x80, 0x00, 0x00,
-0x00, 0x00, 0x3D, 0xBB, 0x9D, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3E, 0x8F, 0xDE, 0x80, 0x00, 0x00,
-0x00, 0x00, 0x3F, 0x9B, 0x7F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x6F, 0xC0, 0x80, 0x00, 0x00,
-0x00, 0x00, 0x41, 0x84, 0x9B, 0x80, 0x00, 0x00, 0x00, 0x00, 0x42, 0x4F, 0xA2, 0x80, 0x00, 0x00,
-0x00, 0x00, 0x43, 0x64, 0x7D, 0x80, 0x00, 0x00, 0x00, 0x00, 0x44, 0x2F, 0x84, 0x80, 0x00, 0x00,
-0x00, 0x00, 0x45, 0x44, 0x51, 0x70, 0x00, 0x00, 0x00, 0x00, 0x45, 0xF3, 0xB7, 0x00, 0x00, 0x00,
-0x00, 0x00, 0x47, 0x2D, 0x6D, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x47, 0xD3, 0x99, 0x00, 0x00, 0x00,
-0x00, 0x00, 0x49, 0x0D, 0x4F, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x49, 0xB3, 0x7B, 0x00, 0x00, 0x00,
-0x00, 0x00, 0x4A, 0xED, 0x31, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x4B, 0x9C, 0x97, 0x80, 0x00, 0x00,
-0x00, 0x00, 0x4C, 0xD6, 0x4E, 0x70, 0x00, 0x00, 0x00, 0x00, 0x4D, 0x7C, 0x79, 0x80, 0x00, 0x00,
-0x00, 0x00, 0x4E, 0xB6, 0x30, 0x70, 0x00, 0x00, 0x00, 0x00, 0x4F, 0x5C, 0x5B, 0x80, 0x00, 0x00,
-0x00, 0x00, 0x50, 0x96, 0x12, 0x70, 0x00, 0x00, 0x00, 0x00, 0x51, 0x3C, 0x3D, 0x80, 0x00, 0x00,
-0x00, 0x00, 0x52, 0x75, 0xF4, 0x70, 0x00, 0x00, 0x00, 0x00, 0x53, 0x1C, 0x1F, 0x80, 0x00, 0x00,
-0x00, 0x00, 0x54, 0x55, 0xD6, 0x70, 0x00, 0x00, 0x00, 0x00, 0x54, 0xFC, 0x01, 0x80, 0x00, 0x00,
-0x00, 0x00, 0x56, 0x35, 0xB8, 0x70, 0x00, 0x00, 0x00, 0x00, 0x56, 0xE5, 0x1E, 0x00, 0x00, 0x00,
-0x00, 0x00, 0x58, 0x1E, 0xD4, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x58, 0xC5, 0x00, 0x00, 0x00, 0x00,
-0x00, 0x00, 0x59, 0xFE, 0xB6, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x5A, 0xA4, 0xE2, 0x00, 0x00, 0x00,
-0x00, 0x00, 0x5B, 0xDE, 0x98, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x5C, 0x84, 0xC4, 0x00, 0x00, 0x00,
-0x00, 0x00, 0x5D, 0xBE, 0x7A, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x5E, 0x64, 0xA6, 0x00, 0x00, 0x00,
-0x00, 0x00, 0x5F, 0x9E, 0x5C, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x60, 0x4D, 0xC2, 0x80, 0x00, 0x00,
-0x00, 0x00, 0x61, 0x87, 0x79, 0x70, 0x00, 0x00, 0x00, 0x00, 0x62, 0x2D, 0xA4, 0x80, 0x00, 0x00,
-0x00, 0x00, 0x63, 0x67, 0x5B, 0x70, 0x00, 0x00, 0x00, 0x00, 0x64, 0x0D, 0x86, 0x80, 0x00, 0x00,
-0x00, 0x00, 0x65, 0x47, 0x3D, 0x70, 0x00, 0x00, 0x00, 0x00, 0x65, 0xED, 0x68, 0x80, 0x00, 0x00,
-0x00, 0x00, 0x67, 0x27, 0x1F, 0x70, 0x00, 0x00, 0x00, 0x00, 0x67, 0xCD, 0x4A, 0x80, 0x00, 0x00,
-0x00, 0x00, 0x69, 0x07, 0x01, 0x70, 0x00, 0x00, 0x00, 0x00, 0x69, 0xAD, 0x2C, 0x80, 0x00, 0x00,
-0x00, 0x00, 0x6A, 0xE6, 0xE3, 0x70, 0x00, 0x00, 0x00, 0x00, 0x6B, 0x96, 0x49, 0x00, 0x00, 0x00,
-0x00, 0x00, 0x6C, 0xCF, 0xFF, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x6D, 0x76, 0x2B, 0x00, 0x00, 0x00,
-0x00, 0x00, 0x6E, 0xAF, 0xE1, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x6F, 0x56, 0x0D, 0x00, 0x00, 0x00,
-0x00, 0x00, 0x70, 0x8F, 0xC3, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x71, 0x35, 0xEF, 0x00, 0x00, 0x00,
-0x00, 0x00, 0x72, 0x6F, 0xA5, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x73, 0x15, 0xD1, 0x00, 0x00, 0x00,
-0x00, 0x00, 0x74, 0x4F, 0x87, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x74, 0xFE, 0xED, 0x80, 0x00, 0x00,
-0x00, 0x00, 0x76, 0x38, 0xA4, 0x70, 0x00, 0x00, 0x00, 0x00, 0x76, 0xDE, 0xCF, 0x80, 0x00, 0x00,
-0x00, 0x00, 0x78, 0x18, 0x86, 0x70, 0x00, 0x00, 0x00, 0x00, 0x78, 0xBE, 0xB1, 0x80, 0x00, 0x00,
-0x00, 0x00, 0x79, 0xF8, 0x68, 0x70, 0x00, 0x00, 0x00, 0x00, 0x7A, 0x9E, 0x93, 0x80, 0x00, 0x00,
-0x00, 0x00, 0x7B, 0xD8, 0x4A, 0x70, 0x00, 0x00, 0x00, 0x00, 0x7C, 0x7E, 0x75, 0x80, 0x00, 0x00,
-0x00, 0x00, 0x7D, 0xB8, 0x2C, 0x70, 0x00, 0x00, 0x00, 0x00, 0x7E, 0x5E, 0x57, 0x80, 0x00, 0x00,
-0x00, 0x00, 0x7F, 0x98, 0x0E, 0x70, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x03, 0x04, 0x02,
+0x05, 0x06, 0x05, 0x06, 0x05, 0x06, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02,
0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02,
+0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x07,
+0xFF, 0xFF, 0xA4, 0xEC, 0x00, 0x00, 0xFF, 0xFF, 0xB9, 0xB0, 0x01, 0x04, 0xFF, 0xFF, 0xAB, 0xA0,
+0x00, 0x08, 0xFF, 0xFF, 0xB9, 0xB0, 0x01, 0x0C, 0xFF, 0xFF, 0xB9, 0xB0, 0x01, 0x10, 0xFF, 0xFF,
+0xB9, 0xB0, 0x01, 0x04, 0xFF, 0xFF, 0xAB, 0xA0, 0x00, 0x08, 0xFF, 0xFF, 0xB9, 0xB0, 0x00, 0x14,
+0x4C, 0x4D, 0x54, 0x00, 0x43, 0x44, 0x54, 0x00, 0x43, 0x53, 0x54, 0x00, 0x43, 0x57, 0x54, 0x00,
+0x43, 0x50, 0x54, 0x00, 0x45, 0x53, 0x54, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x54, 0x5A, 0x69, 0x66, 0x32, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08,
+0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xA4, 0x00, 0x00, 0x00, 0x08,
+0x00, 0x00, 0x00, 0x18, 0xFF, 0xFF, 0xFF, 0xFF, 0x64, 0xE4, 0xB0, 0x94, 0xFF, 0xFF, 0xFF, 0xFF,
+0x9B, 0x01, 0xFB, 0xE0, 0xFF, 0xFF, 0xFF, 0xFF, 0x9B, 0xC3, 0xBA, 0x50, 0xFF, 0xFF, 0xFF, 0xFF,
+0x9E, 0xB8, 0xA1, 0x80, 0xFF, 0xFF, 0xFF, 0xFF, 0x9F, 0xBA, 0xF9, 0x70, 0xFF, 0xFF, 0xFF, 0xFF,
+0xC2, 0xA0, 0x3B, 0x80, 0xFF, 0xFF, 0xFF, 0xFF, 0xC3, 0x4F, 0x84, 0xF0, 0xFF, 0xFF, 0xFF, 0xFF,
+0xCB, 0x88, 0xFE, 0x80, 0xFF, 0xFF, 0xFF, 0xFF, 0xD2, 0x23, 0xF4, 0x70, 0xFF, 0xFF, 0xFF, 0xFF,
+0xD2, 0x61, 0x09, 0xF0, 0xFF, 0xFF, 0xFF, 0xFF, 0xD3, 0x88, 0x68, 0x00, 0xFF, 0xFF, 0xFF, 0xFF,
+0xD4, 0x53, 0x60, 0xF0, 0xFF, 0xFF, 0xFF, 0xFF, 0xD5, 0x55, 0xD5, 0x00, 0xFF, 0xFF, 0xFF, 0xFF,
+0xD6, 0x20, 0xCD, 0xF0, 0xFF, 0xFF, 0xFF, 0xFF, 0xD7, 0x35, 0xB7, 0x00, 0xFF, 0xFF, 0xFF, 0xFF,
+0xD8, 0x00, 0xAF, 0xF0, 0xFF, 0xFF, 0xFF, 0xFF, 0xD9, 0x15, 0x99, 0x00, 0xFF, 0xFF, 0xFF, 0xFF,
+0xD9, 0xE0, 0x91, 0xF0, 0xFF, 0xFF, 0xFF, 0xFF, 0xDB, 0x00, 0x07, 0x00, 0xFF, 0xFF, 0xFF, 0xFF,
+0xDB, 0xC8, 0x5C, 0xF0, 0xFF, 0xFF, 0xFF, 0xFF, 0xDC, 0xDE, 0x97, 0x80, 0xFF, 0xFF, 0xFF, 0xFF,
+0xDD, 0xA9, 0x90, 0x70, 0xFF, 0xFF, 0xFF, 0xFF, 0xDE, 0xBE, 0x79, 0x80, 0xFF, 0xFF, 0xFF, 0xFF,
+0xDF, 0x89, 0x72, 0x70, 0xFF, 0xFF, 0xFF, 0xFF, 0xE0, 0x9E, 0x5B, 0x80, 0xFF, 0xFF, 0xFF, 0xFF,
+0xE1, 0x69, 0x54, 0x70, 0xFF, 0xFF, 0xFF, 0xFF, 0xE2, 0x7E, 0x3D, 0x80, 0xFF, 0xFF, 0xFF, 0xFF,
+0xE3, 0x49, 0x36, 0x70, 0xFF, 0xFF, 0xFF, 0xFF, 0xE4, 0x5E, 0x1F, 0x80, 0xFF, 0xFF, 0xFF, 0xFF,
+0xE5, 0x29, 0x18, 0x70, 0xFF, 0xFF, 0xFF, 0xFF, 0xE6, 0x47, 0x3C, 0x00, 0xFF, 0xFF, 0xFF, 0xFF,
+0xE7, 0x12, 0x34, 0xF0, 0xFF, 0xFF, 0xFF, 0xFF, 0xE8, 0x27, 0x1E, 0x00, 0xFF, 0xFF, 0xFF, 0xFF,
+0xE8, 0xF2, 0x16, 0xF0, 0xFF, 0xFF, 0xFF, 0xFF, 0xEA, 0x07, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF,
+0xEA, 0xD1, 0xF8, 0xF0, 0xFF, 0xFF, 0xFF, 0xFF, 0xEB, 0xE6, 0xE2, 0x00, 0xFF, 0xFF, 0xFF, 0xFF,
+0xEC, 0xD6, 0xC4, 0xF0, 0xFF, 0xFF, 0xFF, 0xFF, 0xED, 0xC6, 0xC4, 0x00, 0xFF, 0xFF, 0xFF, 0xFF,
+0xEE, 0x91, 0xBC, 0xF0, 0xFF, 0xFF, 0xFF, 0xFF, 0xF3, 0x6F, 0xA4, 0x80, 0xFF, 0xFF, 0xFF, 0xFF,
+0xF4, 0x31, 0x62, 0xF0, 0xFF, 0xFF, 0xFF, 0xFF, 0xF9, 0x0F, 0x4A, 0x80, 0xFF, 0xFF, 0xFF, 0xFF,
+0xFA, 0x08, 0x76, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFA, 0xF8, 0x67, 0x00, 0xFF, 0xFF, 0xFF, 0xFF,
+0xFB, 0xE8, 0x58, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFC, 0xD8, 0x49, 0x00, 0xFF, 0xFF, 0xFF, 0xFF,
+0xFD, 0xC8, 0x3A, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFE, 0xB8, 0x2B, 0x00, 0xFF, 0xFF, 0xFF, 0xFF,
+0xFF, 0xA8, 0x1C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x98, 0x0D, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x01, 0x87, 0xFE, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x77, 0xEF, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x03, 0x71, 0x1A, 0x80, 0x00, 0x00, 0x00, 0x00, 0x04, 0x61, 0x0B, 0x80, 0x00, 0x00, 0x00, 0x00,
+0x05, 0x50, 0xFC, 0x80, 0x00, 0x00, 0x00, 0x00, 0x06, 0x40, 0xED, 0x80, 0x00, 0x00, 0x00, 0x00,
+0x07, 0x30, 0xDE, 0x80, 0x00, 0x00, 0x00, 0x00, 0x08, 0x20, 0xCF, 0x80, 0x00, 0x00, 0x00, 0x00,
+0x09, 0x10, 0xC0, 0x80, 0x00, 0x00, 0x00, 0x00, 0x0A, 0x00, 0xB1, 0x80, 0x00, 0x00, 0x00, 0x00,
+0x0A, 0xF0, 0xA2, 0x80, 0x00, 0x00, 0x00, 0x00, 0x0B, 0xE0, 0x93, 0x80, 0x00, 0x00, 0x00, 0x00,
+0x0C, 0xD9, 0xBF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0D, 0xC0, 0x75, 0x80, 0x00, 0x00, 0x00, 0x00,
+0x0E, 0xB9, 0xA1, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0F, 0xA9, 0x92, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x10, 0x99, 0x83, 0x00, 0x00, 0x00, 0x00, 0x00, 0x11, 0x89, 0x74, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x12, 0x79, 0x65, 0x00, 0x00, 0x00, 0x00, 0x00, 0x13, 0x69, 0x56, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x14, 0x59, 0x47, 0x00, 0x00, 0x00, 0x00, 0x00, 0x15, 0x49, 0x38, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x16, 0x39, 0x29, 0x00, 0x00, 0x00, 0x00, 0x00, 0x17, 0x29, 0x1A, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x18, 0x22, 0x45, 0x80, 0x00, 0x00, 0x00, 0x00, 0x19, 0x08, 0xFC, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x1A, 0x02, 0x27, 0x80, 0x00, 0x00, 0x00, 0x00, 0x1A, 0xF2, 0x18, 0x80, 0x00, 0x00, 0x00, 0x00,
+0x1B, 0xE2, 0x09, 0x80, 0x00, 0x00, 0x00, 0x00, 0x1C, 0xD1, 0xFA, 0x80, 0x00, 0x00, 0x00, 0x00,
+0x1D, 0xC1, 0xEB, 0x80, 0x00, 0x00, 0x00, 0x00, 0x1E, 0xB1, 0xDC, 0x80, 0x00, 0x00, 0x00, 0x00,
+0x1F, 0xA1, 0xCD, 0x80, 0x00, 0x00, 0x00, 0x00, 0x20, 0x76, 0x0F, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x21, 0x81, 0xAF, 0x80, 0x00, 0x00, 0x00, 0x00, 0x22, 0x55, 0xF1, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x23, 0x6A, 0xCC, 0x00, 0x00, 0x00, 0x00, 0x00, 0x24, 0x35, 0xD3, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x25, 0x4A, 0xAE, 0x00, 0x00, 0x00, 0x00, 0x00, 0x26, 0x15, 0xB5, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x27, 0x2A, 0x90, 0x00, 0x00, 0x00, 0x00, 0x00, 0x27, 0xFE, 0xD1, 0x80, 0x00, 0x00, 0x00, 0x00,
+0x29, 0x0A, 0x72, 0x00, 0x00, 0x00, 0x00, 0x00, 0x29, 0xDE, 0xB3, 0x80, 0x00, 0x00, 0x00, 0x00,
+0x2A, 0xEA, 0x54, 0x00, 0x00, 0x00, 0x00, 0x00, 0x2B, 0xBE, 0x95, 0x80, 0x00, 0x00, 0x00, 0x00,
+0x2C, 0xD3, 0x70, 0x80, 0x00, 0x00, 0x00, 0x00, 0x2D, 0x9E, 0x77, 0x80, 0x00, 0x00, 0x00, 0x00,
+0x2E, 0xB3, 0x52, 0x80, 0x00, 0x00, 0x00, 0x00, 0x2F, 0x7E, 0x59, 0x80, 0x00, 0x00, 0x00, 0x00,
+0x30, 0x93, 0x34, 0x80, 0x00, 0x00, 0x00, 0x00, 0x31, 0x67, 0x76, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x32, 0x73, 0x16, 0x80, 0x00, 0x00, 0x00, 0x00, 0x33, 0x47, 0x58, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x34, 0x52, 0xF8, 0x80, 0x00, 0x00, 0x00, 0x00, 0x35, 0x27, 0x3A, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x36, 0x32, 0xDA, 0x80, 0x00, 0x00, 0x00, 0x00, 0x37, 0x07, 0x1C, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x38, 0x1B, 0xF7, 0x00, 0x00, 0x00, 0x00, 0x00, 0x38, 0xE6, 0xFE, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x39, 0xFB, 0xD9, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3A, 0xC6, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x3B, 0xDB, 0xBB, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3C, 0xAF, 0xFC, 0x80, 0x00, 0x00, 0x00, 0x00,
+0x3D, 0xBB, 0x9D, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3E, 0x8F, 0xDE, 0x80, 0x00, 0x00, 0x00, 0x00,
+0x3F, 0x9B, 0x7F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x6F, 0xC0, 0x80, 0x00, 0x00, 0x00, 0x00,
+0x41, 0x84, 0x9B, 0x80, 0x00, 0x00, 0x00, 0x00, 0x42, 0x4F, 0xA2, 0x80, 0x00, 0x00, 0x00, 0x00,
+0x43, 0x64, 0x7D, 0x80, 0x00, 0x00, 0x00, 0x00, 0x44, 0x2F, 0x84, 0x80, 0x00, 0x00, 0x00, 0x00,
+0x45, 0x44, 0x51, 0x70, 0x00, 0x00, 0x00, 0x00, 0x45, 0xF3, 0xB7, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x47, 0x2D, 0x6D, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x47, 0xD3, 0x99, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x49, 0x0D, 0x4F, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x49, 0xB3, 0x7B, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x4A, 0xED, 0x31, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x4B, 0x9C, 0x97, 0x80, 0x00, 0x00, 0x00, 0x00,
+0x4C, 0xD6, 0x4E, 0x70, 0x00, 0x00, 0x00, 0x00, 0x4D, 0x7C, 0x79, 0x80, 0x00, 0x00, 0x00, 0x00,
+0x4E, 0xB6, 0x30, 0x70, 0x00, 0x00, 0x00, 0x00, 0x4F, 0x5C, 0x5B, 0x80, 0x00, 0x00, 0x00, 0x00,
+0x50, 0x96, 0x12, 0x70, 0x00, 0x00, 0x00, 0x00, 0x51, 0x3C, 0x3D, 0x80, 0x00, 0x00, 0x00, 0x00,
+0x52, 0x75, 0xF4, 0x70, 0x00, 0x00, 0x00, 0x00, 0x53, 0x1C, 0x1F, 0x80, 0x00, 0x00, 0x00, 0x00,
+0x54, 0x55, 0xD6, 0x70, 0x00, 0x00, 0x00, 0x00, 0x54, 0xFC, 0x01, 0x80, 0x00, 0x00, 0x00, 0x00,
+0x56, 0x35, 0xB8, 0x70, 0x00, 0x00, 0x00, 0x00, 0x56, 0xE5, 0x1E, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x58, 0x1E, 0xD4, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x58, 0xC5, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x59, 0xFE, 0xB6, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x5A, 0xA4, 0xE2, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x5B, 0xDE, 0x98, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x5C, 0x84, 0xC4, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x5D, 0xBE, 0x7A, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x5E, 0x64, 0xA6, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x5F, 0x9E, 0x5C, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x60, 0x4D, 0xC2, 0x80, 0x00, 0x00, 0x00, 0x00,
+0x61, 0x87, 0x79, 0x70, 0x00, 0x00, 0x00, 0x00, 0x62, 0x2D, 0xA4, 0x80, 0x00, 0x00, 0x00, 0x00,
+0x63, 0x67, 0x5B, 0x70, 0x00, 0x00, 0x00, 0x00, 0x64, 0x0D, 0x86, 0x80, 0x00, 0x00, 0x00, 0x00,
+0x65, 0x47, 0x3D, 0x70, 0x00, 0x00, 0x00, 0x00, 0x65, 0xED, 0x68, 0x80, 0x00, 0x00, 0x00, 0x00,
+0x67, 0x27, 0x1F, 0x70, 0x00, 0x00, 0x00, 0x00, 0x67, 0xCD, 0x4A, 0x80, 0x00, 0x00, 0x00, 0x00,
+0x69, 0x07, 0x01, 0x70, 0x00, 0x00, 0x00, 0x00, 0x69, 0xAD, 0x2C, 0x80, 0x00, 0x00, 0x00, 0x00,
+0x6A, 0xE6, 0xE3, 0x70, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x03, 0x04, 0x02, 0x01, 0x02,
0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02,
+0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x05, 0x06,
0x05, 0x06, 0x05, 0x06, 0x05, 0x06, 0x05, 0x06, 0x05, 0x06, 0x05, 0x06, 0x05, 0x06, 0x05, 0x06,
0x05, 0x06, 0x05, 0x06, 0x05, 0x06, 0x05, 0x06, 0x05, 0x06, 0x05, 0x06, 0x05, 0x06, 0x05, 0x06,
0x05, 0x06, 0x05, 0x06, 0x05, 0x06, 0x05, 0x06, 0x05, 0x06, 0x05, 0x06, 0x05, 0x06, 0x05, 0x06,
0x05, 0x06, 0x05, 0x06, 0x05, 0x06, 0x05, 0x06, 0x05, 0x06, 0x05, 0x06, 0x05, 0x06, 0x05, 0x06,
-0x05, 0x06, 0x05, 0x06, 0x05, 0x06, 0x05, 0x06, 0x05, 0x06, 0x05, 0x06, 0x05, 0x06, 0x05, 0x06,
-0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02,
-0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02,
+0x05, 0x06, 0x05, 0x06, 0x05, 0x06, 0x05, 0x06, 0x05, 0x06, 0x05, 0x06, 0x05, 0x06, 0x01, 0x02,
0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02,
0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02,
-0xFF, 0xFF, 0xA4, 0xEC, 0x00, 0x00, 0xFF, 0xFF, 0xB9, 0xB0, 0x01, 0x04, 0xFF, 0xFF, 0xAB, 0xA0,
-0x00, 0x08, 0xFF, 0xFF, 0xB9, 0xB0, 0x01, 0x0C, 0xFF, 0xFF, 0xB9, 0xB0, 0x01, 0x10, 0xFF, 0xFF,
-0xB9, 0xB0, 0x01, 0x04, 0xFF, 0xFF, 0xAB, 0xA0, 0x00, 0x08, 0x4C, 0x4D, 0x54, 0x00, 0x43, 0x44,
-0x54, 0x00, 0x43, 0x53, 0x54, 0x00, 0x43, 0x57, 0x54, 0x00, 0x43, 0x50, 0x54, 0x00, 0x00, 0x00,
-0x00, 0x00, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x0A, 0x43, 0x53, 0x54,
-0x36, 0x43, 0x44, 0x54, 0x2C, 0x4D, 0x33, 0x2E, 0x32, 0x2E, 0x30, 0x2C, 0x4D, 0x31, 0x31, 0x2E,
-0x31, 0x2E, 0x30, 0x0A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-
+0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x07, 0xFF, 0xFF, 0xA4, 0xEC, 0x00, 0x00, 0xFF, 0xFF,
+0xB9, 0xB0, 0x01, 0x04, 0xFF, 0xFF, 0xAB, 0xA0, 0x00, 0x08, 0xFF, 0xFF, 0xB9, 0xB0, 0x01, 0x0C,
+0xFF, 0xFF, 0xB9, 0xB0, 0x01, 0x10, 0xFF, 0xFF, 0xB9, 0xB0, 0x01, 0x04, 0xFF, 0xFF, 0xAB, 0xA0,
+0x00, 0x08, 0xFF, 0xFF, 0xB9, 0xB0, 0x00, 0x14, 0x4C, 0x4D, 0x54, 0x00, 0x43, 0x44, 0x54, 0x00,
+0x43, 0x53, 0x54, 0x00, 0x43, 0x57, 0x54, 0x00, 0x43, 0x50, 0x54, 0x00, 0x45, 0x53, 0x54, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
+0x0A, 0x45, 0x53, 0x54, 0x35, 0x0A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x00, 0x00,
/* Canada/Eastern */
0x50, 0x48, 0x50, 0x32, 0x00, 0x3F, 0x3F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
@@ -53845,32 +53723,10 @@
/* CST6CDT */
0x50, 0x48, 0x50, 0x32, 0x00, 0x3F, 0x3F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00,
-0x00, 0x00, 0x00, 0xEC, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x18, 0x80, 0x00, 0x00, 0x00,
-0x9E, 0xA6, 0x2C, 0x80, 0x9F, 0xBA, 0xF9, 0x70, 0xA0, 0x86, 0x0E, 0x80, 0xA1, 0x9A, 0xDB, 0x70,
-0xA2, 0xCB, 0x74, 0x00, 0xA3, 0x83, 0xF7, 0xF0, 0xA4, 0x45, 0xD2, 0x80, 0xA5, 0x63, 0xD9, 0xF0,
-0xA6, 0x53, 0xD9, 0x00, 0xA7, 0x15, 0x97, 0x70, 0xA8, 0x33, 0xBB, 0x00, 0xA8, 0xFE, 0xB3, 0xF0,
-0xAA, 0x13, 0x9D, 0x00, 0xAA, 0xDE, 0x95, 0xF0, 0xAB, 0xF3, 0x7F, 0x00, 0xAC, 0xBE, 0x77, 0xF0,
-0xAD, 0xD3, 0x61, 0x00, 0xAE, 0x9E, 0x59, 0xF0, 0xAF, 0xB3, 0x43, 0x00, 0xB0, 0x7E, 0x3B, 0xF0,
-0xB1, 0x9C, 0x5F, 0x80, 0xB2, 0x67, 0x58, 0x70, 0xB3, 0x7C, 0x41, 0x80, 0xB4, 0x47, 0x3A, 0x70,
-0xB5, 0x5C, 0x23, 0x80, 0xB6, 0x27, 0x1C, 0x70, 0xB7, 0x3C, 0x05, 0x80, 0xB8, 0x06, 0xFE, 0x70,
-0xB9, 0x1B, 0xE7, 0x80, 0xB9, 0xE6, 0xE0, 0x70, 0xBB, 0x05, 0x04, 0x00, 0xBB, 0xC6, 0xC2, 0x70,
-0xBC, 0xE4, 0xE6, 0x00, 0xBD, 0xAF, 0xDE, 0xF0, 0xBE, 0xC4, 0xC8, 0x00, 0xBF, 0x8F, 0xC0, 0xF0,
-0xC0, 0x5A, 0xD6, 0x00, 0xC1, 0xB0, 0x3C, 0x70, 0xC2, 0x84, 0x8C, 0x00, 0xC3, 0x4F, 0x84, 0xF0,
-0xC4, 0x64, 0x6E, 0x00, 0xC5, 0x2F, 0x66, 0xF0, 0xC6, 0x4D, 0x8A, 0x80, 0xC7, 0x0F, 0x48, 0xF0,
-0xC8, 0x2D, 0x6C, 0x80, 0xC8, 0xF8, 0x65, 0x70, 0xCA, 0x0D, 0x4E, 0x80, 0xCA, 0xD8, 0x47, 0x70,
-0xCB, 0x88, 0xFE, 0x80, 0xD2, 0x23, 0xF4, 0x70, 0xD2, 0x61, 0x09, 0xF0, 0xD3, 0x75, 0xF3, 0x00,
-0xD4, 0x40, 0xEB, 0xF0, 0xD5, 0x55, 0xD5, 0x00, 0xD6, 0x20, 0xCD, 0xF0, 0xD7, 0x35, 0xB7, 0x00,
-0xD8, 0x00, 0xAF, 0xF0, 0xD9, 0x15, 0x99, 0x00, 0xD9, 0xE0, 0x91, 0xF0, 0xDA, 0xFE, 0xB5, 0x80,
-0xDB, 0xC0, 0x73, 0xF0, 0xDC, 0xDE, 0x97, 0x80, 0xDD, 0xA9, 0x90, 0x70, 0xDE, 0xBE, 0x79, 0x80,
-0xDF, 0x89, 0x72, 0x70, 0xE0, 0x9E, 0x5B, 0x80, 0xE1, 0x69, 0x54, 0x70, 0xE2, 0x7E, 0x3D, 0x80,
-0xE3, 0x49, 0x36, 0x70, 0xE4, 0x5E, 0x1F, 0x80, 0xE5, 0x57, 0x3C, 0xF0, 0xE6, 0x47, 0x3C, 0x00,
-0xE7, 0x37, 0x1E, 0xF0, 0xE8, 0x27, 0x1E, 0x00, 0xE9, 0x17, 0x00, 0xF0, 0xEA, 0x07, 0x00, 0x00,
-0xEA, 0xF6, 0xE2, 0xF0, 0xEB, 0xE6, 0xE2, 0x00, 0xEC, 0xD6, 0xC4, 0xF0, 0xED, 0xC6, 0xC4, 0x00,
-0xEE, 0xBF, 0xE1, 0x70, 0xEF, 0xAF, 0xE0, 0x80, 0xF0, 0x9F, 0xC3, 0x70, 0xF1, 0x8F, 0xC2, 0x80,
-0xF2, 0x7F, 0xA5, 0x70, 0xF3, 0x6F, 0xA4, 0x80, 0xF4, 0x5F, 0x87, 0x70, 0xF5, 0x4F, 0x86, 0x80,
-0xF6, 0x3F, 0x69, 0x70, 0xF7, 0x2F, 0x68, 0x80, 0xF8, 0x28, 0x85, 0xF0, 0xF9, 0x0F, 0x4A, 0x80,
-0xFA, 0x08, 0x67, 0xF0, 0xFA, 0xF8, 0x67, 0x00, 0xFB, 0xE8, 0x49, 0xF0, 0xFC, 0xD8, 0x49, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x00, 0x94, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x08, 0x9E, 0xA6, 0x2C, 0x80,
+0x9F, 0xBA, 0xF9, 0x70, 0xA0, 0x86, 0x0E, 0x80, 0xA1, 0x9A, 0xDB, 0x70, 0xCB, 0x88, 0xFE, 0x80,
+0xD2, 0x61, 0x09, 0xF0, 0xFA, 0xF8, 0x67, 0x00, 0xFB, 0xE8, 0x49, 0xF0, 0xFC, 0xD8, 0x49, 0x00,
0xFD, 0xC8, 0x2B, 0xF0, 0xFE, 0xB8, 0x2B, 0x00, 0xFF, 0xA8, 0x0D, 0xF0, 0x00, 0x98, 0x0D, 0x00,
0x01, 0x87, 0xEF, 0xF0, 0x02, 0x77, 0xEF, 0x00, 0x03, 0x71, 0x0C, 0x70, 0x04, 0x61, 0x0B, 0x80,
0x05, 0x50, 0xEE, 0x70, 0x06, 0x40, 0xED, 0x80, 0x07, 0x30, 0xD0, 0x70, 0x07, 0x8D, 0x27, 0x80,
@@ -53905,77 +53761,24 @@
0x72, 0x6F, 0xA5, 0xF0, 0x73, 0x15, 0xD1, 0x00, 0x74, 0x4F, 0x87, 0xF0, 0x74, 0xFE, 0xED, 0x80,
0x76, 0x38, 0xA4, 0x70, 0x76, 0xDE, 0xCF, 0x80, 0x78, 0x18, 0x86, 0x70, 0x78, 0xBE, 0xB1, 0x80,
0x79, 0xF8, 0x68, 0x70, 0x7A, 0x9E, 0x93, 0x80, 0x7B, 0xD8, 0x4A, 0x70, 0x7C, 0x7E, 0x75, 0x80,
-0x7D, 0xB8, 0x2C, 0x70, 0x7E, 0x5E, 0x57, 0x80, 0x7F, 0x98, 0x0E, 0x70, 0x03, 0x01, 0x02, 0x01,
-0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01,
-0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01,
-0x02, 0x04, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x05, 0x06, 0x02,
-0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02,
-0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02,
-0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02,
-0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02,
-0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02,
-0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02,
-0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02,
-0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02,
-0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02,
-0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02,
-0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02,
-0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0xFF, 0xFF, 0xAD, 0xD4, 0x00, 0x00, 0xFF, 0xFF,
-0xB9, 0xB0, 0x01, 0x04, 0xFF, 0xFF, 0xAB, 0xA0, 0x00, 0x08, 0xFF, 0xFF, 0xAB, 0xA0, 0x00, 0x08,
-0xFF, 0xFF, 0xB9, 0xB0, 0x00, 0x0C, 0xFF, 0xFF, 0xB9, 0xB0, 0x01, 0x10, 0xFF, 0xFF, 0xB9, 0xB0,
-0x01, 0x14, 0xFF, 0xFF, 0xAB, 0xA0, 0x00, 0x08, 0x4C, 0x4D, 0x54, 0x00, 0x43, 0x44, 0x54, 0x00,
-0x43, 0x53, 0x54, 0x00, 0x45, 0x53, 0x54, 0x00, 0x43, 0x57, 0x54, 0x00, 0x43, 0x50, 0x54, 0x00,
-0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x01, 0x00,
+0x7D, 0xB8, 0x2C, 0x70, 0x7E, 0x5E, 0x57, 0x80, 0x7F, 0x98, 0x0E, 0x70, 0x01, 0x00, 0x01, 0x00,
+0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00,
+0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00,
+0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00,
+0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00,
+0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00,
+0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00,
+0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00,
+0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00,
+0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00,
+0xFF, 0xFF, 0xAB, 0xA0, 0x00, 0x04, 0xFF, 0xFF, 0xB9, 0xB0, 0x01, 0x00, 0xFF, 0xFF, 0xB9, 0xB0,
+0x01, 0x00, 0xFF, 0xFF, 0xAB, 0xA0, 0x00, 0x04, 0x43, 0x44, 0x54, 0x00, 0x43, 0x53, 0x54, 0x00,
0x54, 0x5A, 0x69, 0x66, 0x32, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00,
-0x00, 0x00, 0x00, 0xEC, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x18, 0xFF, 0xFF, 0xFF, 0xFF,
-0x5E, 0x03, 0xFE, 0xA0, 0xFF, 0xFF, 0xFF, 0xFF, 0x9E, 0xA6, 0x2C, 0x80, 0xFF, 0xFF, 0xFF, 0xFF,
-0x9F, 0xBA, 0xF9, 0x70, 0xFF, 0xFF, 0xFF, 0xFF, 0xA0, 0x86, 0x0E, 0x80, 0xFF, 0xFF, 0xFF, 0xFF,
-0xA1, 0x9A, 0xDB, 0x70, 0xFF, 0xFF, 0xFF, 0xFF, 0xA2, 0xCB, 0x74, 0x00, 0xFF, 0xFF, 0xFF, 0xFF,
-0xA3, 0x83, 0xF7, 0xF0, 0xFF, 0xFF, 0xFF, 0xFF, 0xA4, 0x45, 0xD2, 0x80, 0xFF, 0xFF, 0xFF, 0xFF,
-0xA5, 0x63, 0xD9, 0xF0, 0xFF, 0xFF, 0xFF, 0xFF, 0xA6, 0x53, 0xD9, 0x00, 0xFF, 0xFF, 0xFF, 0xFF,
-0xA7, 0x15, 0x97, 0x70, 0xFF, 0xFF, 0xFF, 0xFF, 0xA8, 0x33, 0xBB, 0x00, 0xFF, 0xFF, 0xFF, 0xFF,
-0xA8, 0xFE, 0xB3, 0xF0, 0xFF, 0xFF, 0xFF, 0xFF, 0xAA, 0x13, 0x9D, 0x00, 0xFF, 0xFF, 0xFF, 0xFF,
-0xAA, 0xDE, 0x95, 0xF0, 0xFF, 0xFF, 0xFF, 0xFF, 0xAB, 0xF3, 0x7F, 0x00, 0xFF, 0xFF, 0xFF, 0xFF,
-0xAC, 0xBE, 0x77, 0xF0, 0xFF, 0xFF, 0xFF, 0xFF, 0xAD, 0xD3, 0x61, 0x00, 0xFF, 0xFF, 0xFF, 0xFF,
-0xAE, 0x9E, 0x59, 0xF0, 0xFF, 0xFF, 0xFF, 0xFF, 0xAF, 0xB3, 0x43, 0x00, 0xFF, 0xFF, 0xFF, 0xFF,
-0xB0, 0x7E, 0x3B, 0xF0, 0xFF, 0xFF, 0xFF, 0xFF, 0xB1, 0x9C, 0x5F, 0x80, 0xFF, 0xFF, 0xFF, 0xFF,
-0xB2, 0x67, 0x58, 0x70, 0xFF, 0xFF, 0xFF, 0xFF, 0xB3, 0x7C, 0x41, 0x80, 0xFF, 0xFF, 0xFF, 0xFF,
-0xB4, 0x47, 0x3A, 0x70, 0xFF, 0xFF, 0xFF, 0xFF, 0xB5, 0x5C, 0x23, 0x80, 0xFF, 0xFF, 0xFF, 0xFF,
-0xB6, 0x27, 0x1C, 0x70, 0xFF, 0xFF, 0xFF, 0xFF, 0xB7, 0x3C, 0x05, 0x80, 0xFF, 0xFF, 0xFF, 0xFF,
-0xB8, 0x06, 0xFE, 0x70, 0xFF, 0xFF, 0xFF, 0xFF, 0xB9, 0x1B, 0xE7, 0x80, 0xFF, 0xFF, 0xFF, 0xFF,
-0xB9, 0xE6, 0xE0, 0x70, 0xFF, 0xFF, 0xFF, 0xFF, 0xBB, 0x05, 0x04, 0x00, 0xFF, 0xFF, 0xFF, 0xFF,
-0xBB, 0xC6, 0xC2, 0x70, 0xFF, 0xFF, 0xFF, 0xFF, 0xBC, 0xE4, 0xE6, 0x00, 0xFF, 0xFF, 0xFF, 0xFF,
-0xBD, 0xAF, 0xDE, 0xF0, 0xFF, 0xFF, 0xFF, 0xFF, 0xBE, 0xC4, 0xC8, 0x00, 0xFF, 0xFF, 0xFF, 0xFF,
-0xBF, 0x8F, 0xC0, 0xF0, 0xFF, 0xFF, 0xFF, 0xFF, 0xC0, 0x5A, 0xD6, 0x00, 0xFF, 0xFF, 0xFF, 0xFF,
-0xC1, 0xB0, 0x3C, 0x70, 0xFF, 0xFF, 0xFF, 0xFF, 0xC2, 0x84, 0x8C, 0x00, 0xFF, 0xFF, 0xFF, 0xFF,
-0xC3, 0x4F, 0x84, 0xF0, 0xFF, 0xFF, 0xFF, 0xFF, 0xC4, 0x64, 0x6E, 0x00, 0xFF, 0xFF, 0xFF, 0xFF,
-0xC5, 0x2F, 0x66, 0xF0, 0xFF, 0xFF, 0xFF, 0xFF, 0xC6, 0x4D, 0x8A, 0x80, 0xFF, 0xFF, 0xFF, 0xFF,
-0xC7, 0x0F, 0x48, 0xF0, 0xFF, 0xFF, 0xFF, 0xFF, 0xC8, 0x2D, 0x6C, 0x80, 0xFF, 0xFF, 0xFF, 0xFF,
-0xC8, 0xF8, 0x65, 0x70, 0xFF, 0xFF, 0xFF, 0xFF, 0xCA, 0x0D, 0x4E, 0x80, 0xFF, 0xFF, 0xFF, 0xFF,
-0xCA, 0xD8, 0x47, 0x70, 0xFF, 0xFF, 0xFF, 0xFF, 0xCB, 0x88, 0xFE, 0x80, 0xFF, 0xFF, 0xFF, 0xFF,
-0xD2, 0x23, 0xF4, 0x70, 0xFF, 0xFF, 0xFF, 0xFF, 0xD2, 0x61, 0x09, 0xF0, 0xFF, 0xFF, 0xFF, 0xFF,
-0xD3, 0x75, 0xF3, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xD4, 0x40, 0xEB, 0xF0, 0xFF, 0xFF, 0xFF, 0xFF,
-0xD5, 0x55, 0xD5, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xD6, 0x20, 0xCD, 0xF0, 0xFF, 0xFF, 0xFF, 0xFF,
-0xD7, 0x35, 0xB7, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xD8, 0x00, 0xAF, 0xF0, 0xFF, 0xFF, 0xFF, 0xFF,
-0xD9, 0x15, 0x99, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xD9, 0xE0, 0x91, 0xF0, 0xFF, 0xFF, 0xFF, 0xFF,
-0xDA, 0xFE, 0xB5, 0x80, 0xFF, 0xFF, 0xFF, 0xFF, 0xDB, 0xC0, 0x73, 0xF0, 0xFF, 0xFF, 0xFF, 0xFF,
-0xDC, 0xDE, 0x97, 0x80, 0xFF, 0xFF, 0xFF, 0xFF, 0xDD, 0xA9, 0x90, 0x70, 0xFF, 0xFF, 0xFF, 0xFF,
-0xDE, 0xBE, 0x79, 0x80, 0xFF, 0xFF, 0xFF, 0xFF, 0xDF, 0x89, 0x72, 0x70, 0xFF, 0xFF, 0xFF, 0xFF,
-0xE0, 0x9E, 0x5B, 0x80, 0xFF, 0xFF, 0xFF, 0xFF, 0xE1, 0x69, 0x54, 0x70, 0xFF, 0xFF, 0xFF, 0xFF,
-0xE2, 0x7E, 0x3D, 0x80, 0xFF, 0xFF, 0xFF, 0xFF, 0xE3, 0x49, 0x36, 0x70, 0xFF, 0xFF, 0xFF, 0xFF,
-0xE4, 0x5E, 0x1F, 0x80, 0xFF, 0xFF, 0xFF, 0xFF, 0xE5, 0x57, 0x3C, 0xF0, 0xFF, 0xFF, 0xFF, 0xFF,
-0xE6, 0x47, 0x3C, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xE7, 0x37, 0x1E, 0xF0, 0xFF, 0xFF, 0xFF, 0xFF,
-0xE8, 0x27, 0x1E, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xE9, 0x17, 0x00, 0xF0, 0xFF, 0xFF, 0xFF, 0xFF,
-0xEA, 0x07, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xEA, 0xF6, 0xE2, 0xF0, 0xFF, 0xFF, 0xFF, 0xFF,
-0xEB, 0xE6, 0xE2, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xEC, 0xD6, 0xC4, 0xF0, 0xFF, 0xFF, 0xFF, 0xFF,
-0xED, 0xC6, 0xC4, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xEE, 0xBF, 0xE1, 0x70, 0xFF, 0xFF, 0xFF, 0xFF,
-0xEF, 0xAF, 0xE0, 0x80, 0xFF, 0xFF, 0xFF, 0xFF, 0xF0, 0x9F, 0xC3, 0x70, 0xFF, 0xFF, 0xFF, 0xFF,
-0xF1, 0x8F, 0xC2, 0x80, 0xFF, 0xFF, 0xFF, 0xFF, 0xF2, 0x7F, 0xA5, 0x70, 0xFF, 0xFF, 0xFF, 0xFF,
-0xF3, 0x6F, 0xA4, 0x80, 0xFF, 0xFF, 0xFF, 0xFF, 0xF4, 0x5F, 0x87, 0x70, 0xFF, 0xFF, 0xFF, 0xFF,
-0xF5, 0x4F, 0x86, 0x80, 0xFF, 0xFF, 0xFF, 0xFF, 0xF6, 0x3F, 0x69, 0x70, 0xFF, 0xFF, 0xFF, 0xFF,
-0xF7, 0x2F, 0x68, 0x80, 0xFF, 0xFF, 0xFF, 0xFF, 0xF8, 0x28, 0x85, 0xF0, 0xFF, 0xFF, 0xFF, 0xFF,
-0xF9, 0x0F, 0x4A, 0x80, 0xFF, 0xFF, 0xFF, 0xFF, 0xFA, 0x08, 0x67, 0xF0, 0xFF, 0xFF, 0xFF, 0xFF,
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x00, 0x94, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x08, 0xFF, 0xFF, 0xFF, 0xFF,
+0x9E, 0xA6, 0x2C, 0x80, 0xFF, 0xFF, 0xFF, 0xFF, 0x9F, 0xBA, 0xF9, 0x70, 0xFF, 0xFF, 0xFF, 0xFF,
+0xA0, 0x86, 0x0E, 0x80, 0xFF, 0xFF, 0xFF, 0xFF, 0xA1, 0x9A, 0xDB, 0x70, 0xFF, 0xFF, 0xFF, 0xFF,
+0xCB, 0x88, 0xFE, 0x80, 0xFF, 0xFF, 0xFF, 0xFF, 0xD2, 0x61, 0x09, 0xF0, 0xFF, 0xFF, 0xFF, 0xFF,
0xFA, 0xF8, 0x67, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFB, 0xE8, 0x49, 0xF0, 0xFF, 0xFF, 0xFF, 0xFF,
0xFC, 0xD8, 0x49, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFD, 0xC8, 0x2B, 0xF0, 0xFF, 0xFF, 0xFF, 0xFF,
0xFE, 0xB8, 0x2B, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xA8, 0x0D, 0xF0, 0x00, 0x00, 0x00, 0x00,
@@ -54046,27 +53849,18 @@
0x78, 0xBE, 0xB1, 0x80, 0x00, 0x00, 0x00, 0x00, 0x79, 0xF8, 0x68, 0x70, 0x00, 0x00, 0x00, 0x00,
0x7A, 0x9E, 0x93, 0x80, 0x00, 0x00, 0x00, 0x00, 0x7B, 0xD8, 0x4A, 0x70, 0x00, 0x00, 0x00, 0x00,
0x7C, 0x7E, 0x75, 0x80, 0x00, 0x00, 0x00, 0x00, 0x7D, 0xB8, 0x2C, 0x70, 0x00, 0x00, 0x00, 0x00,
-0x7E, 0x5E, 0x57, 0x80, 0x00, 0x00, 0x00, 0x00, 0x7F, 0x98, 0x0E, 0x70, 0x03, 0x01, 0x02, 0x01,
-0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01,
-0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01,
-0x02, 0x04, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x05, 0x06, 0x02,
-0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02,
-0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02,
-0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02,
-0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02,
-0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02,
-0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02,
-0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02,
-0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02,
-0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02,
-0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02,
-0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02,
-0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0xFF, 0xFF, 0xAD, 0xD4, 0x00, 0x00, 0xFF, 0xFF,
-0xB9, 0xB0, 0x01, 0x04, 0xFF, 0xFF, 0xAB, 0xA0, 0x00, 0x08, 0xFF, 0xFF, 0xAB, 0xA0, 0x00, 0x08,
-0xFF, 0xFF, 0xB9, 0xB0, 0x00, 0x0C, 0xFF, 0xFF, 0xB9, 0xB0, 0x01, 0x10, 0xFF, 0xFF, 0xB9, 0xB0,
-0x01, 0x14, 0xFF, 0xFF, 0xAB, 0xA0, 0x00, 0x08, 0x4C, 0x4D, 0x54, 0x00, 0x43, 0x44, 0x54, 0x00,
-0x43, 0x53, 0x54, 0x00, 0x45, 0x53, 0x54, 0x00, 0x43, 0x57, 0x54, 0x00, 0x43, 0x50, 0x54, 0x00,
-0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x01, 0x00,
+0x7E, 0x5E, 0x57, 0x80, 0x00, 0x00, 0x00, 0x00, 0x7F, 0x98, 0x0E, 0x70, 0x01, 0x00, 0x01, 0x00,
+0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00,
+0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00,
+0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00,
+0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00,
+0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00,
+0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00,
+0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00,
+0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00,
+0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00,
+0xFF, 0xFF, 0xAB, 0xA0, 0x00, 0x04, 0xFF, 0xFF, 0xB9, 0xB0, 0x01, 0x00, 0xFF, 0xFF, 0xB9, 0xB0,
+0x01, 0x00, 0xFF, 0xFF, 0xAB, 0xA0, 0x00, 0x04, 0x43, 0x44, 0x54, 0x00, 0x43, 0x53, 0x54, 0x00,
0x0A, 0x43, 0x53, 0x54, 0x36, 0x43, 0x44, 0x54, 0x2C, 0x4D, 0x33, 0x2E, 0x32, 0x2E, 0x30, 0x2C,
0x4D, 0x31, 0x31, 0x2E, 0x31, 0x2E, 0x30, 0x0A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
@@ -54531,7 +54325,7 @@
0x9E, 0x9C, 0x9D, 0xA0, 0x9F, 0x97, 0x1A, 0xA0, 0xA0, 0x85, 0xBA, 0x20, 0xA1, 0x76, 0xFC, 0xA0,
0xA2, 0x65, 0x9C, 0x20, 0xA3, 0x7B, 0xC8, 0xA0, 0xA4, 0x4E, 0xB8, 0xA0, 0xA5, 0x3F, 0xFB, 0x20,
0xA6, 0x25, 0x60, 0x20, 0xA7, 0x27, 0xC6, 0x20, 0xA8, 0x2A, 0x2C, 0x20, 0xA8, 0xEB, 0xF8, 0xA0,
-0xAA, 0x00, 0xD3, 0xA0, 0xAA, 0xD5, 0x15, 0x20, 0xAB, 0xE9, 0xF0, 0x20, 0xAC, 0xC7, 0x6C, 0x20,
+0xAA, 0x00, 0xD3, 0xA0, 0xAA, 0xD5, 0x15, 0x20, 0xAB, 0xE9, 0xF0, 0x20, 0xAC, 0xB4, 0xF7, 0x20,
0xAD, 0xC9, 0xD2, 0x20, 0xAE, 0xA7, 0x4E, 0x20, 0xAF, 0xA0, 0x79, 0xA0, 0xB0, 0x87, 0x30, 0x20,
0xB1, 0x92, 0xD0, 0xA0, 0xB2, 0x70, 0x4C, 0xA0, 0xB3, 0x72, 0xB2, 0xA0, 0xB4, 0x50, 0x2E, 0xA0,
0xB5, 0x49, 0x5A, 0x20, 0xB6, 0x30, 0x10, 0xA0, 0xB7, 0x32, 0x76, 0xA0, 0xB8, 0x0F, 0xF2, 0xA0,
@@ -54616,7 +54410,7 @@
0xFF, 0xFF, 0xFF, 0xFF, 0xA6, 0x25, 0x60, 0x20, 0xFF, 0xFF, 0xFF, 0xFF, 0xA7, 0x27, 0xC6, 0x20,
0xFF, 0xFF, 0xFF, 0xFF, 0xA8, 0x2A, 0x2C, 0x20, 0xFF, 0xFF, 0xFF, 0xFF, 0xA8, 0xEB, 0xF8, 0xA0,
0xFF, 0xFF, 0xFF, 0xFF, 0xAA, 0x00, 0xD3, 0xA0, 0xFF, 0xFF, 0xFF, 0xFF, 0xAA, 0xD5, 0x15, 0x20,
-0xFF, 0xFF, 0xFF, 0xFF, 0xAB, 0xE9, 0xF0, 0x20, 0xFF, 0xFF, 0xFF, 0xFF, 0xAC, 0xC7, 0x6C, 0x20,
+0xFF, 0xFF, 0xFF, 0xFF, 0xAB, 0xE9, 0xF0, 0x20, 0xFF, 0xFF, 0xFF, 0xFF, 0xAC, 0xB4, 0xF7, 0x20,
0xFF, 0xFF, 0xFF, 0xFF, 0xAD, 0xC9, 0xD2, 0x20, 0xFF, 0xFF, 0xFF, 0xFF, 0xAE, 0xA7, 0x4E, 0x20,
0xFF, 0xFF, 0xFF, 0xFF, 0xAF, 0xA0, 0x79, 0xA0, 0xFF, 0xFF, 0xFF, 0xFF, 0xB0, 0x87, 0x30, 0x20,
0xFF, 0xFF, 0xFF, 0xFF, 0xB1, 0x92, 0xD0, 0xA0, 0xFF, 0xFF, 0xFF, 0xFF, 0xB2, 0x70, 0x4C, 0xA0,
@@ -54762,32 +54556,10 @@
/* EST5EDT */
0x50, 0x48, 0x50, 0x32, 0x00, 0x3F, 0x3F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x00,
-0x00, 0x00, 0x00, 0xEC, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x14, 0x80, 0x00, 0x00, 0x00,
-0x9E, 0xA6, 0x1E, 0x70, 0x9F, 0xBA, 0xEB, 0x60, 0xA0, 0x86, 0x00, 0x70, 0xA1, 0x9A, 0xCD, 0x60,
-0xA2, 0x65, 0xE2, 0x70, 0xA3, 0x83, 0xE9, 0xE0, 0xA4, 0x6A, 0xAE, 0x70, 0xA5, 0x35, 0xA7, 0x60,
-0xA6, 0x53, 0xCA, 0xF0, 0xA7, 0x15, 0x89, 0x60, 0xA8, 0x33, 0xAC, 0xF0, 0xA8, 0xFE, 0xA5, 0xE0,
-0xAA, 0x13, 0x8E, 0xF0, 0xAA, 0xDE, 0x87, 0xE0, 0xAB, 0xF3, 0x70, 0xF0, 0xAC, 0xBE, 0x69, 0xE0,
-0xAD, 0xD3, 0x52, 0xF0, 0xAE, 0x9E, 0x4B, 0xE0, 0xAF, 0xB3, 0x34, 0xF0, 0xB0, 0x7E, 0x2D, 0xE0,
-0xB1, 0x9C, 0x51, 0x70, 0xB2, 0x67, 0x4A, 0x60, 0xB3, 0x7C, 0x33, 0x70, 0xB4, 0x47, 0x2C, 0x60,
-0xB5, 0x5C, 0x15, 0x70, 0xB6, 0x27, 0x0E, 0x60, 0xB7, 0x3B, 0xF7, 0x70, 0xB8, 0x06, 0xF0, 0x60,
-0xB9, 0x1B, 0xD9, 0x70, 0xB9, 0xE6, 0xD2, 0x60, 0xBB, 0x04, 0xF5, 0xF0, 0xBB, 0xC6, 0xB4, 0x60,
-0xBC, 0xE4, 0xD7, 0xF0, 0xBD, 0xAF, 0xD0, 0xE0, 0xBE, 0xC4, 0xB9, 0xF0, 0xBF, 0x8F, 0xB2, 0xE0,
-0xC0, 0xA4, 0x9B, 0xF0, 0xC1, 0x6F, 0x94, 0xE0, 0xC2, 0x84, 0x7D, 0xF0, 0xC3, 0x4F, 0x76, 0xE0,
-0xC4, 0x64, 0x5F, 0xF0, 0xC5, 0x2F, 0x58, 0xE0, 0xC6, 0x4D, 0x7C, 0x70, 0xC7, 0x0F, 0x3A, 0xE0,
-0xC8, 0x2D, 0x5E, 0x70, 0xC8, 0xF8, 0x57, 0x60, 0xCA, 0x0D, 0x40, 0x70, 0xCA, 0xD8, 0x39, 0x60,
-0xCB, 0x88, 0xF0, 0x70, 0xD2, 0x23, 0xF4, 0x70, 0xD2, 0x60, 0xFB, 0xE0, 0xD3, 0x75, 0xE4, 0xF0,
-0xD4, 0x40, 0xDD, 0xE0, 0xD5, 0x55, 0xC6, 0xF0, 0xD6, 0x20, 0xBF, 0xE0, 0xD7, 0x35, 0xA8, 0xF0,
-0xD8, 0x00, 0xA1, 0xE0, 0xD9, 0x15, 0x8A, 0xF0, 0xD9, 0xE0, 0x83, 0xE0, 0xDA, 0xFE, 0xA7, 0x70,
-0xDB, 0xC0, 0x65, 0xE0, 0xDC, 0xDE, 0x89, 0x70, 0xDD, 0xA9, 0x82, 0x60, 0xDE, 0xBE, 0x6B, 0x70,
-0xDF, 0x89, 0x64, 0x60, 0xE0, 0x9E, 0x4D, 0x70, 0xE1, 0x69, 0x46, 0x60, 0xE2, 0x7E, 0x2F, 0x70,
-0xE3, 0x49, 0x28, 0x60, 0xE4, 0x5E, 0x11, 0x70, 0xE5, 0x57, 0x2E, 0xE0, 0xE6, 0x47, 0x2D, 0xF0,
-0xE7, 0x37, 0x10, 0xE0, 0xE8, 0x27, 0x0F, 0xF0, 0xE9, 0x16, 0xF2, 0xE0, 0xEA, 0x06, 0xF1, 0xF0,
-0xEA, 0xF6, 0xD4, 0xE0, 0xEB, 0xE6, 0xD3, 0xF0, 0xEC, 0xD6, 0xB6, 0xE0, 0xED, 0xC6, 0xB5, 0xF0,
-0xEE, 0xBF, 0xD3, 0x60, 0xEF, 0xAF, 0xD2, 0x70, 0xF0, 0x9F, 0xB5, 0x60, 0xF1, 0x8F, 0xB4, 0x70,
-0xF2, 0x7F, 0x97, 0x60, 0xF3, 0x6F, 0x96, 0x70, 0xF4, 0x5F, 0x79, 0x60, 0xF5, 0x4F, 0x78, 0x70,
-0xF6, 0x3F, 0x5B, 0x60, 0xF7, 0x2F, 0x5A, 0x70, 0xF8, 0x28, 0x77, 0xE0, 0xF9, 0x0F, 0x3C, 0x70,
-0xFA, 0x08, 0x59, 0xE0, 0xFA, 0xF8, 0x58, 0xF0, 0xFB, 0xE8, 0x3B, 0xE0, 0xFC, 0xD8, 0x3A, 0xF0,
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x00, 0x94, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x08, 0x9E, 0xA6, 0x1E, 0x70,
+0x9F, 0xBA, 0xEB, 0x60, 0xA0, 0x86, 0x00, 0x70, 0xA1, 0x9A, 0xCD, 0x60, 0xCB, 0x88, 0xF0, 0x70,
+0xD2, 0x60, 0xFB, 0xE0, 0xFA, 0xF8, 0x58, 0xF0, 0xFB, 0xE8, 0x3B, 0xE0, 0xFC, 0xD8, 0x3A, 0xF0,
0xFD, 0xC8, 0x1D, 0xE0, 0xFE, 0xB8, 0x1C, 0xF0, 0xFF, 0xA7, 0xFF, 0xE0, 0x00, 0x97, 0xFE, 0xF0,
0x01, 0x87, 0xE1, 0xE0, 0x02, 0x77, 0xE0, 0xF0, 0x03, 0x70, 0xFE, 0x60, 0x04, 0x60, 0xFD, 0x70,
0x05, 0x50, 0xE0, 0x60, 0x06, 0x40, 0xDF, 0x70, 0x07, 0x30, 0xC2, 0x60, 0x07, 0x8D, 0x19, 0x70,
@@ -54822,168 +54594,109 @@
0x72, 0x6F, 0x97, 0xE0, 0x73, 0x15, 0xC2, 0xF0, 0x74, 0x4F, 0x79, 0xE0, 0x74, 0xFE, 0xDF, 0x70,
0x76, 0x38, 0x96, 0x60, 0x76, 0xDE, 0xC1, 0x70, 0x78, 0x18, 0x78, 0x60, 0x78, 0xBE, 0xA3, 0x70,
0x79, 0xF8, 0x5A, 0x60, 0x7A, 0x9E, 0x85, 0x70, 0x7B, 0xD8, 0x3C, 0x60, 0x7C, 0x7E, 0x67, 0x70,
-0x7D, 0xB8, 0x1E, 0x60, 0x7E, 0x5E, 0x49, 0x70, 0x7F, 0x98, 0x00, 0x60, 0x03, 0x01, 0x02, 0x01,
-0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01,
-0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01,
-0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x04, 0x05, 0x02,
-0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02,
-0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02,
-0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02,
-0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02,
-0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02,
-0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02,
-0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02,
-0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02,
-0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02,
-0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02,
-0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02,
-0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0xFF, 0xFF, 0xBA, 0x9E, 0x00, 0x00, 0xFF, 0xFF,
-0xC7, 0xC0, 0x01, 0x04, 0xFF, 0xFF, 0xB9, 0xB0, 0x00, 0x08, 0xFF, 0xFF, 0xB9, 0xB0, 0x00, 0x08,
-0xFF, 0xFF, 0xC7, 0xC0, 0x01, 0x0C, 0xFF, 0xFF, 0xC7, 0xC0, 0x01, 0x10, 0x4C, 0x4D, 0x54, 0x00,
-0x45, 0x44, 0x54, 0x00, 0x45, 0x53, 0x54, 0x00, 0x45, 0x57, 0x54, 0x00, 0x45, 0x50, 0x54, 0x00,
-0x00, 0x00, 0x00, 0x01, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x01, 0x54, 0x5A, 0x69, 0x66,
-0x32, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xEC,
-0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x14, 0xFF, 0xFF, 0xFF, 0xFF, 0x5E, 0x03, 0xF0, 0x90,
-0xFF, 0xFF, 0xFF, 0xFF, 0x9E, 0xA6, 0x1E, 0x70, 0xFF, 0xFF, 0xFF, 0xFF, 0x9F, 0xBA, 0xEB, 0x60,
-0xFF, 0xFF, 0xFF, 0xFF, 0xA0, 0x86, 0x00, 0x70, 0xFF, 0xFF, 0xFF, 0xFF, 0xA1, 0x9A, 0xCD, 0x60,
-0xFF, 0xFF, 0xFF, 0xFF, 0xA2, 0x65, 0xE2, 0x70, 0xFF, 0xFF, 0xFF, 0xFF, 0xA3, 0x83, 0xE9, 0xE0,
-0xFF, 0xFF, 0xFF, 0xFF, 0xA4, 0x6A, 0xAE, 0x70, 0xFF, 0xFF, 0xFF, 0xFF, 0xA5, 0x35, 0xA7, 0x60,
-0xFF, 0xFF, 0xFF, 0xFF, 0xA6, 0x53, 0xCA, 0xF0, 0xFF, 0xFF, 0xFF, 0xFF, 0xA7, 0x15, 0x89, 0x60,
-0xFF, 0xFF, 0xFF, 0xFF, 0xA8, 0x33, 0xAC, 0xF0, 0xFF, 0xFF, 0xFF, 0xFF, 0xA8, 0xFE, 0xA5, 0xE0,
-0xFF, 0xFF, 0xFF, 0xFF, 0xAA, 0x13, 0x8E, 0xF0, 0xFF, 0xFF, 0xFF, 0xFF, 0xAA, 0xDE, 0x87, 0xE0,
-0xFF, 0xFF, 0xFF, 0xFF, 0xAB, 0xF3, 0x70, 0xF0, 0xFF, 0xFF, 0xFF, 0xFF, 0xAC, 0xBE, 0x69, 0xE0,
-0xFF, 0xFF, 0xFF, 0xFF, 0xAD, 0xD3, 0x52, 0xF0, 0xFF, 0xFF, 0xFF, 0xFF, 0xAE, 0x9E, 0x4B, 0xE0,
-0xFF, 0xFF, 0xFF, 0xFF, 0xAF, 0xB3, 0x34, 0xF0, 0xFF, 0xFF, 0xFF, 0xFF, 0xB0, 0x7E, 0x2D, 0xE0,
-0xFF, 0xFF, 0xFF, 0xFF, 0xB1, 0x9C, 0x51, 0x70, 0xFF, 0xFF, 0xFF, 0xFF, 0xB2, 0x67, 0x4A, 0x60,
-0xFF, 0xFF, 0xFF, 0xFF, 0xB3, 0x7C, 0x33, 0x70, 0xFF, 0xFF, 0xFF, 0xFF, 0xB4, 0x47, 0x2C, 0x60,
-0xFF, 0xFF, 0xFF, 0xFF, 0xB5, 0x5C, 0x15, 0x70, 0xFF, 0xFF, 0xFF, 0xFF, 0xB6, 0x27, 0x0E, 0x60,
-0xFF, 0xFF, 0xFF, 0xFF, 0xB7, 0x3B, 0xF7, 0x70, 0xFF, 0xFF, 0xFF, 0xFF, 0xB8, 0x06, 0xF0, 0x60,
-0xFF, 0xFF, 0xFF, 0xFF, 0xB9, 0x1B, 0xD9, 0x70, 0xFF, 0xFF, 0xFF, 0xFF, 0xB9, 0xE6, 0xD2, 0x60,
-0xFF, 0xFF, 0xFF, 0xFF, 0xBB, 0x04, 0xF5, 0xF0, 0xFF, 0xFF, 0xFF, 0xFF, 0xBB, 0xC6, 0xB4, 0x60,
-0xFF, 0xFF, 0xFF, 0xFF, 0xBC, 0xE4, 0xD7, 0xF0, 0xFF, 0xFF, 0xFF, 0xFF, 0xBD, 0xAF, 0xD0, 0xE0,
-0xFF, 0xFF, 0xFF, 0xFF, 0xBE, 0xC4, 0xB9, 0xF0, 0xFF, 0xFF, 0xFF, 0xFF, 0xBF, 0x8F, 0xB2, 0xE0,
-0xFF, 0xFF, 0xFF, 0xFF, 0xC0, 0xA4, 0x9B, 0xF0, 0xFF, 0xFF, 0xFF, 0xFF, 0xC1, 0x6F, 0x94, 0xE0,
-0xFF, 0xFF, 0xFF, 0xFF, 0xC2, 0x84, 0x7D, 0xF0, 0xFF, 0xFF, 0xFF, 0xFF, 0xC3, 0x4F, 0x76, 0xE0,
-0xFF, 0xFF, 0xFF, 0xFF, 0xC4, 0x64, 0x5F, 0xF0, 0xFF, 0xFF, 0xFF, 0xFF, 0xC5, 0x2F, 0x58, 0xE0,
-0xFF, 0xFF, 0xFF, 0xFF, 0xC6, 0x4D, 0x7C, 0x70, 0xFF, 0xFF, 0xFF, 0xFF, 0xC7, 0x0F, 0x3A, 0xE0,
-0xFF, 0xFF, 0xFF, 0xFF, 0xC8, 0x2D, 0x5E, 0x70, 0xFF, 0xFF, 0xFF, 0xFF, 0xC8, 0xF8, 0x57, 0x60,
-0xFF, 0xFF, 0xFF, 0xFF, 0xCA, 0x0D, 0x40, 0x70, 0xFF, 0xFF, 0xFF, 0xFF, 0xCA, 0xD8, 0x39, 0x60,
-0xFF, 0xFF, 0xFF, 0xFF, 0xCB, 0x88, 0xF0, 0x70, 0xFF, 0xFF, 0xFF, 0xFF, 0xD2, 0x23, 0xF4, 0x70,
-0xFF, 0xFF, 0xFF, 0xFF, 0xD2, 0x60, 0xFB, 0xE0, 0xFF, 0xFF, 0xFF, 0xFF, 0xD3, 0x75, 0xE4, 0xF0,
-0xFF, 0xFF, 0xFF, 0xFF, 0xD4, 0x40, 0xDD, 0xE0, 0xFF, 0xFF, 0xFF, 0xFF, 0xD5, 0x55, 0xC6, 0xF0,
-0xFF, 0xFF, 0xFF, 0xFF, 0xD6, 0x20, 0xBF, 0xE0, 0xFF, 0xFF, 0xFF, 0xFF, 0xD7, 0x35, 0xA8, 0xF0,
-0xFF, 0xFF, 0xFF, 0xFF, 0xD8, 0x00, 0xA1, 0xE0, 0xFF, 0xFF, 0xFF, 0xFF, 0xD9, 0x15, 0x8A, 0xF0,
-0xFF, 0xFF, 0xFF, 0xFF, 0xD9, 0xE0, 0x83, 0xE0, 0xFF, 0xFF, 0xFF, 0xFF, 0xDA, 0xFE, 0xA7, 0x70,
-0xFF, 0xFF, 0xFF, 0xFF, 0xDB, 0xC0, 0x65, 0xE0, 0xFF, 0xFF, 0xFF, 0xFF, 0xDC, 0xDE, 0x89, 0x70,
-0xFF, 0xFF, 0xFF, 0xFF, 0xDD, 0xA9, 0x82, 0x60, 0xFF, 0xFF, 0xFF, 0xFF, 0xDE, 0xBE, 0x6B, 0x70,
-0xFF, 0xFF, 0xFF, 0xFF, 0xDF, 0x89, 0x64, 0x60, 0xFF, 0xFF, 0xFF, 0xFF, 0xE0, 0x9E, 0x4D, 0x70,
-0xFF, 0xFF, 0xFF, 0xFF, 0xE1, 0x69, 0x46, 0x60, 0xFF, 0xFF, 0xFF, 0xFF, 0xE2, 0x7E, 0x2F, 0x70,
-0xFF, 0xFF, 0xFF, 0xFF, 0xE3, 0x49, 0x28, 0x60, 0xFF, 0xFF, 0xFF, 0xFF, 0xE4, 0x5E, 0x11, 0x70,
-0xFF, 0xFF, 0xFF, 0xFF, 0xE5, 0x57, 0x2E, 0xE0, 0xFF, 0xFF, 0xFF, 0xFF, 0xE6, 0x47, 0x2D, 0xF0,
-0xFF, 0xFF, 0xFF, 0xFF, 0xE7, 0x37, 0x10, 0xE0, 0xFF, 0xFF, 0xFF, 0xFF, 0xE8, 0x27, 0x0F, 0xF0,
-0xFF, 0xFF, 0xFF, 0xFF, 0xE9, 0x16, 0xF2, 0xE0, 0xFF, 0xFF, 0xFF, 0xFF, 0xEA, 0x06, 0xF1, 0xF0,
-0xFF, 0xFF, 0xFF, 0xFF, 0xEA, 0xF6, 0xD4, 0xE0, 0xFF, 0xFF, 0xFF, 0xFF, 0xEB, 0xE6, 0xD3, 0xF0,
-0xFF, 0xFF, 0xFF, 0xFF, 0xEC, 0xD6, 0xB6, 0xE0, 0xFF, 0xFF, 0xFF, 0xFF, 0xED, 0xC6, 0xB5, 0xF0,
-0xFF, 0xFF, 0xFF, 0xFF, 0xEE, 0xBF, 0xD3, 0x60, 0xFF, 0xFF, 0xFF, 0xFF, 0xEF, 0xAF, 0xD2, 0x70,
-0xFF, 0xFF, 0xFF, 0xFF, 0xF0, 0x9F, 0xB5, 0x60, 0xFF, 0xFF, 0xFF, 0xFF, 0xF1, 0x8F, 0xB4, 0x70,
-0xFF, 0xFF, 0xFF, 0xFF, 0xF2, 0x7F, 0x97, 0x60, 0xFF, 0xFF, 0xFF, 0xFF, 0xF3, 0x6F, 0x96, 0x70,
-0xFF, 0xFF, 0xFF, 0xFF, 0xF4, 0x5F, 0x79, 0x60, 0xFF, 0xFF, 0xFF, 0xFF, 0xF5, 0x4F, 0x78, 0x70,
-0xFF, 0xFF, 0xFF, 0xFF, 0xF6, 0x3F, 0x5B, 0x60, 0xFF, 0xFF, 0xFF, 0xFF, 0xF7, 0x2F, 0x5A, 0x70,
-0xFF, 0xFF, 0xFF, 0xFF, 0xF8, 0x28, 0x77, 0xE0, 0xFF, 0xFF, 0xFF, 0xFF, 0xF9, 0x0F, 0x3C, 0x70,
-0xFF, 0xFF, 0xFF, 0xFF, 0xFA, 0x08, 0x59, 0xE0, 0xFF, 0xFF, 0xFF, 0xFF, 0xFA, 0xF8, 0x58, 0xF0,
-0xFF, 0xFF, 0xFF, 0xFF, 0xFB, 0xE8, 0x3B, 0xE0, 0xFF, 0xFF, 0xFF, 0xFF, 0xFC, 0xD8, 0x3A, 0xF0,
-0xFF, 0xFF, 0xFF, 0xFF, 0xFD, 0xC8, 0x1D, 0xE0, 0xFF, 0xFF, 0xFF, 0xFF, 0xFE, 0xB8, 0x1C, 0xF0,
-0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xA7, 0xFF, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x97, 0xFE, 0xF0,
-0x00, 0x00, 0x00, 0x00, 0x01, 0x87, 0xE1, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x02, 0x77, 0xE0, 0xF0,
-0x00, 0x00, 0x00, 0x00, 0x03, 0x70, 0xFE, 0x60, 0x00, 0x00, 0x00, 0x00, 0x04, 0x60, 0xFD, 0x70,
-0x00, 0x00, 0x00, 0x00, 0x05, 0x50, 0xE0, 0x60, 0x00, 0x00, 0x00, 0x00, 0x06, 0x40, 0xDF, 0x70,
-0x00, 0x00, 0x00, 0x00, 0x07, 0x30, 0xC2, 0x60, 0x00, 0x00, 0x00, 0x00, 0x07, 0x8D, 0x19, 0x70,
-0x00, 0x00, 0x00, 0x00, 0x09, 0x10, 0xA4, 0x60, 0x00, 0x00, 0x00, 0x00, 0x09, 0xAD, 0x94, 0xF0,
-0x00, 0x00, 0x00, 0x00, 0x0A, 0xF0, 0x86, 0x60, 0x00, 0x00, 0x00, 0x00, 0x0B, 0xE0, 0x85, 0x70,
-0x00, 0x00, 0x00, 0x00, 0x0C, 0xD9, 0xA2, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x0D, 0xC0, 0x67, 0x70,
-0x00, 0x00, 0x00, 0x00, 0x0E, 0xB9, 0x84, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x0F, 0xA9, 0x83, 0xF0,
-0x00, 0x00, 0x00, 0x00, 0x10, 0x99, 0x66, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x11, 0x89, 0x65, 0xF0,
-0x00, 0x00, 0x00, 0x00, 0x12, 0x79, 0x48, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x13, 0x69, 0x47, 0xF0,
-0x00, 0x00, 0x00, 0x00, 0x14, 0x59, 0x2A, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x15, 0x49, 0x29, 0xF0,
-0x00, 0x00, 0x00, 0x00, 0x16, 0x39, 0x0C, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x17, 0x29, 0x0B, 0xF0,
-0x00, 0x00, 0x00, 0x00, 0x18, 0x22, 0x29, 0x60, 0x00, 0x00, 0x00, 0x00, 0x19, 0x08, 0xED, 0xF0,
-0x00, 0x00, 0x00, 0x00, 0x1A, 0x02, 0x0B, 0x60, 0x00, 0x00, 0x00, 0x00, 0x1A, 0xF2, 0x0A, 0x70,
-0x00, 0x00, 0x00, 0x00, 0x1B, 0xE1, 0xED, 0x60, 0x00, 0x00, 0x00, 0x00, 0x1C, 0xD1, 0xEC, 0x70,
-0x00, 0x00, 0x00, 0x00, 0x1D, 0xC1, 0xCF, 0x60, 0x00, 0x00, 0x00, 0x00, 0x1E, 0xB1, 0xCE, 0x70,
-0x00, 0x00, 0x00, 0x00, 0x1F, 0xA1, 0xB1, 0x60, 0x00, 0x00, 0x00, 0x00, 0x20, 0x76, 0x00, 0xF0,
-0x00, 0x00, 0x00, 0x00, 0x21, 0x81, 0x93, 0x60, 0x00, 0x00, 0x00, 0x00, 0x22, 0x55, 0xE2, 0xF0,
-0x00, 0x00, 0x00, 0x00, 0x23, 0x6A, 0xAF, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x24, 0x35, 0xC4, 0xF0,
-0x00, 0x00, 0x00, 0x00, 0x25, 0x4A, 0x91, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x26, 0x15, 0xA6, 0xF0,
-0x00, 0x00, 0x00, 0x00, 0x27, 0x2A, 0x73, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x27, 0xFE, 0xC3, 0x70,
-0x00, 0x00, 0x00, 0x00, 0x29, 0x0A, 0x55, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x29, 0xDE, 0xA5, 0x70,
-0x00, 0x00, 0x00, 0x00, 0x2A, 0xEA, 0x37, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x2B, 0xBE, 0x87, 0x70,
-0x00, 0x00, 0x00, 0x00, 0x2C, 0xD3, 0x54, 0x60, 0x00, 0x00, 0x00, 0x00, 0x2D, 0x9E, 0x69, 0x70,
-0x00, 0x00, 0x00, 0x00, 0x2E, 0xB3, 0x36, 0x60, 0x00, 0x00, 0x00, 0x00, 0x2F, 0x7E, 0x4B, 0x70,
-0x00, 0x00, 0x00, 0x00, 0x30, 0x93, 0x18, 0x60, 0x00, 0x00, 0x00, 0x00, 0x31, 0x67, 0x67, 0xF0,
-0x00, 0x00, 0x00, 0x00, 0x32, 0x72, 0xFA, 0x60, 0x00, 0x00, 0x00, 0x00, 0x33, 0x47, 0x49, 0xF0,
-0x00, 0x00, 0x00, 0x00, 0x34, 0x52, 0xDC, 0x60, 0x00, 0x00, 0x00, 0x00, 0x35, 0x27, 0x2B, 0xF0,
-0x00, 0x00, 0x00, 0x00, 0x36, 0x32, 0xBE, 0x60, 0x00, 0x00, 0x00, 0x00, 0x37, 0x07, 0x0D, 0xF0,
-0x00, 0x00, 0x00, 0x00, 0x38, 0x1B, 0xDA, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x38, 0xE6, 0xEF, 0xF0,
-0x00, 0x00, 0x00, 0x00, 0x39, 0xFB, 0xBC, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x3A, 0xC6, 0xD1, 0xF0,
-0x00, 0x00, 0x00, 0x00, 0x3B, 0xDB, 0x9E, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x3C, 0xAF, 0xEE, 0x70,
-0x00, 0x00, 0x00, 0x00, 0x3D, 0xBB, 0x80, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x3E, 0x8F, 0xD0, 0x70,
-0x00, 0x00, 0x00, 0x00, 0x3F, 0x9B, 0x62, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x40, 0x6F, 0xB2, 0x70,
-0x00, 0x00, 0x00, 0x00, 0x41, 0x84, 0x7F, 0x60, 0x00, 0x00, 0x00, 0x00, 0x42, 0x4F, 0x94, 0x70,
-0x00, 0x00, 0x00, 0x00, 0x43, 0x64, 0x61, 0x60, 0x00, 0x00, 0x00, 0x00, 0x44, 0x2F, 0x76, 0x70,
-0x00, 0x00, 0x00, 0x00, 0x45, 0x44, 0x43, 0x60, 0x00, 0x00, 0x00, 0x00, 0x45, 0xF3, 0xA8, 0xF0,
-0x00, 0x00, 0x00, 0x00, 0x47, 0x2D, 0x5F, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x47, 0xD3, 0x8A, 0xF0,
-0x00, 0x00, 0x00, 0x00, 0x49, 0x0D, 0x41, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x49, 0xB3, 0x6C, 0xF0,
-0x00, 0x00, 0x00, 0x00, 0x4A, 0xED, 0x23, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x4B, 0x9C, 0x89, 0x70,
-0x00, 0x00, 0x00, 0x00, 0x4C, 0xD6, 0x40, 0x60, 0x00, 0x00, 0x00, 0x00, 0x4D, 0x7C, 0x6B, 0x70,
-0x00, 0x00, 0x00, 0x00, 0x4E, 0xB6, 0x22, 0x60, 0x00, 0x00, 0x00, 0x00, 0x4F, 0x5C, 0x4D, 0x70,
-0x00, 0x00, 0x00, 0x00, 0x50, 0x96, 0x04, 0x60, 0x00, 0x00, 0x00, 0x00, 0x51, 0x3C, 0x2F, 0x70,
-0x00, 0x00, 0x00, 0x00, 0x52, 0x75, 0xE6, 0x60, 0x00, 0x00, 0x00, 0x00, 0x53, 0x1C, 0x11, 0x70,
-0x00, 0x00, 0x00, 0x00, 0x54, 0x55, 0xC8, 0x60, 0x00, 0x00, 0x00, 0x00, 0x54, 0xFB, 0xF3, 0x70,
-0x00, 0x00, 0x00, 0x00, 0x56, 0x35, 0xAA, 0x60, 0x00, 0x00, 0x00, 0x00, 0x56, 0xE5, 0x0F, 0xF0,
-0x00, 0x00, 0x00, 0x00, 0x58, 0x1E, 0xC6, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x58, 0xC4, 0xF1, 0xF0,
-0x00, 0x00, 0x00, 0x00, 0x59, 0xFE, 0xA8, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x5A, 0xA4, 0xD3, 0xF0,
-0x00, 0x00, 0x00, 0x00, 0x5B, 0xDE, 0x8A, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x5C, 0x84, 0xB5, 0xF0,
-0x00, 0x00, 0x00, 0x00, 0x5D, 0xBE, 0x6C, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x5E, 0x64, 0x97, 0xF0,
-0x00, 0x00, 0x00, 0x00, 0x5F, 0x9E, 0x4E, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x60, 0x4D, 0xB4, 0x70,
-0x00, 0x00, 0x00, 0x00, 0x61, 0x87, 0x6B, 0x60, 0x00, 0x00, 0x00, 0x00, 0x62, 0x2D, 0x96, 0x70,
-0x00, 0x00, 0x00, 0x00, 0x63, 0x67, 0x4D, 0x60, 0x00, 0x00, 0x00, 0x00, 0x64, 0x0D, 0x78, 0x70,
-0x00, 0x00, 0x00, 0x00, 0x65, 0x47, 0x2F, 0x60, 0x00, 0x00, 0x00, 0x00, 0x65, 0xED, 0x5A, 0x70,
-0x00, 0x00, 0x00, 0x00, 0x67, 0x27, 0x11, 0x60, 0x00, 0x00, 0x00, 0x00, 0x67, 0xCD, 0x3C, 0x70,
-0x00, 0x00, 0x00, 0x00, 0x69, 0x06, 0xF3, 0x60, 0x00, 0x00, 0x00, 0x00, 0x69, 0xAD, 0x1E, 0x70,
-0x00, 0x00, 0x00, 0x00, 0x6A, 0xE6, 0xD5, 0x60, 0x00, 0x00, 0x00, 0x00, 0x6B, 0x96, 0x3A, 0xF0,
-0x00, 0x00, 0x00, 0x00, 0x6C, 0xCF, 0xF1, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x6D, 0x76, 0x1C, 0xF0,
-0x00, 0x00, 0x00, 0x00, 0x6E, 0xAF, 0xD3, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x6F, 0x55, 0xFE, 0xF0,
-0x00, 0x00, 0x00, 0x00, 0x70, 0x8F, 0xB5, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x71, 0x35, 0xE0, 0xF0,
-0x00, 0x00, 0x00, 0x00, 0x72, 0x6F, 0x97, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x73, 0x15, 0xC2, 0xF0,
-0x00, 0x00, 0x00, 0x00, 0x74, 0x4F, 0x79, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x74, 0xFE, 0xDF, 0x70,
-0x00, 0x00, 0x00, 0x00, 0x76, 0x38, 0x96, 0x60, 0x00, 0x00, 0x00, 0x00, 0x76, 0xDE, 0xC1, 0x70,
-0x00, 0x00, 0x00, 0x00, 0x78, 0x18, 0x78, 0x60, 0x00, 0x00, 0x00, 0x00, 0x78, 0xBE, 0xA3, 0x70,
-0x00, 0x00, 0x00, 0x00, 0x79, 0xF8, 0x5A, 0x60, 0x00, 0x00, 0x00, 0x00, 0x7A, 0x9E, 0x85, 0x70,
-0x00, 0x00, 0x00, 0x00, 0x7B, 0xD8, 0x3C, 0x60, 0x00, 0x00, 0x00, 0x00, 0x7C, 0x7E, 0x67, 0x70,
-0x00, 0x00, 0x00, 0x00, 0x7D, 0xB8, 0x1E, 0x60, 0x00, 0x00, 0x00, 0x00, 0x7E, 0x5E, 0x49, 0x70,
-0x00, 0x00, 0x00, 0x00, 0x7F, 0x98, 0x00, 0x60, 0x03, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01,
-0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01,
-0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01,
-0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x04, 0x05, 0x02, 0x01, 0x02, 0x01, 0x02,
-0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02,
-0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02,
-0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02,
-0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02,
-0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02,
-0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02,
-0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02,
-0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02,
-0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02,
-0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02,
-0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02,
-0x01, 0x02, 0x01, 0x02, 0xFF, 0xFF, 0xBA, 0x9E, 0x00, 0x00, 0xFF, 0xFF, 0xC7, 0xC0, 0x01, 0x04,
-0xFF, 0xFF, 0xB9, 0xB0, 0x00, 0x08, 0xFF, 0xFF, 0xB9, 0xB0, 0x00, 0x08, 0xFF, 0xFF, 0xC7, 0xC0,
-0x01, 0x0C, 0xFF, 0xFF, 0xC7, 0xC0, 0x01, 0x10, 0x4C, 0x4D, 0x54, 0x00, 0x45, 0x44, 0x54, 0x00,
-0x45, 0x53, 0x54, 0x00, 0x45, 0x57, 0x54, 0x00, 0x45, 0x50, 0x54, 0x00, 0x00, 0x00, 0x00, 0x01,
-0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x01, 0x0A, 0x45, 0x53, 0x54, 0x35, 0x45, 0x44, 0x54,
-0x2C, 0x4D, 0x33, 0x2E, 0x32, 0x2E, 0x30, 0x2C, 0x4D, 0x31, 0x31, 0x2E, 0x31, 0x2E, 0x30, 0x0A,
-0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x7D, 0xB8, 0x1E, 0x60, 0x7E, 0x5E, 0x49, 0x70, 0x7F, 0x98, 0x00, 0x60, 0x01, 0x00, 0x01, 0x00,
+0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00,
+0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00,
+0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00,
+0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00,
+0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00,
+0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00,
+0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00,
+0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00,
+0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00,
+0xFF, 0xFF, 0xB9, 0xB0, 0x00, 0x04, 0xFF, 0xFF, 0xC7, 0xC0, 0x01, 0x00, 0xFF, 0xFF, 0xC7, 0xC0,
+0x01, 0x00, 0xFF, 0xFF, 0xB9, 0xB0, 0x00, 0x04, 0x45, 0x44, 0x54, 0x00, 0x45, 0x53, 0x54, 0x00,
+0x54, 0x5A, 0x69, 0x66, 0x32, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x00, 0x94, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x08, 0xFF, 0xFF, 0xFF, 0xFF,
+0x9E, 0xA6, 0x1E, 0x70, 0xFF, 0xFF, 0xFF, 0xFF, 0x9F, 0xBA, 0xEB, 0x60, 0xFF, 0xFF, 0xFF, 0xFF,
+0xA0, 0x86, 0x00, 0x70, 0xFF, 0xFF, 0xFF, 0xFF, 0xA1, 0x9A, 0xCD, 0x60, 0xFF, 0xFF, 0xFF, 0xFF,
+0xCB, 0x88, 0xF0, 0x70, 0xFF, 0xFF, 0xFF, 0xFF, 0xD2, 0x60, 0xFB, 0xE0, 0xFF, 0xFF, 0xFF, 0xFF,
+0xFA, 0xF8, 0x58, 0xF0, 0xFF, 0xFF, 0xFF, 0xFF, 0xFB, 0xE8, 0x3B, 0xE0, 0xFF, 0xFF, 0xFF, 0xFF,
+0xFC, 0xD8, 0x3A, 0xF0, 0xFF, 0xFF, 0xFF, 0xFF, 0xFD, 0xC8, 0x1D, 0xE0, 0xFF, 0xFF, 0xFF, 0xFF,
+0xFE, 0xB8, 0x1C, 0xF0, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xA7, 0xFF, 0xE0, 0x00, 0x00, 0x00, 0x00,
+0x00, 0x97, 0xFE, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x01, 0x87, 0xE1, 0xE0, 0x00, 0x00, 0x00, 0x00,
+0x02, 0x77, 0xE0, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x03, 0x70, 0xFE, 0x60, 0x00, 0x00, 0x00, 0x00,
+0x04, 0x60, 0xFD, 0x70, 0x00, 0x00, 0x00, 0x00, 0x05, 0x50, 0xE0, 0x60, 0x00, 0x00, 0x00, 0x00,
+0x06, 0x40, 0xDF, 0x70, 0x00, 0x00, 0x00, 0x00, 0x07, 0x30, 0xC2, 0x60, 0x00, 0x00, 0x00, 0x00,
+0x07, 0x8D, 0x19, 0x70, 0x00, 0x00, 0x00, 0x00, 0x09, 0x10, 0xA4, 0x60, 0x00, 0x00, 0x00, 0x00,
+0x09, 0xAD, 0x94, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x0A, 0xF0, 0x86, 0x60, 0x00, 0x00, 0x00, 0x00,
+0x0B, 0xE0, 0x85, 0x70, 0x00, 0x00, 0x00, 0x00, 0x0C, 0xD9, 0xA2, 0xE0, 0x00, 0x00, 0x00, 0x00,
+0x0D, 0xC0, 0x67, 0x70, 0x00, 0x00, 0x00, 0x00, 0x0E, 0xB9, 0x84, 0xE0, 0x00, 0x00, 0x00, 0x00,
+0x0F, 0xA9, 0x83, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x10, 0x99, 0x66, 0xE0, 0x00, 0x00, 0x00, 0x00,
+0x11, 0x89, 0x65, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x12, 0x79, 0x48, 0xE0, 0x00, 0x00, 0x00, 0x00,
+0x13, 0x69, 0x47, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x14, 0x59, 0x2A, 0xE0, 0x00, 0x00, 0x00, 0x00,
+0x15, 0x49, 0x29, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x16, 0x39, 0x0C, 0xE0, 0x00, 0x00, 0x00, 0x00,
+0x17, 0x29, 0x0B, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x18, 0x22, 0x29, 0x60, 0x00, 0x00, 0x00, 0x00,
+0x19, 0x08, 0xED, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x1A, 0x02, 0x0B, 0x60, 0x00, 0x00, 0x00, 0x00,
+0x1A, 0xF2, 0x0A, 0x70, 0x00, 0x00, 0x00, 0x00, 0x1B, 0xE1, 0xED, 0x60, 0x00, 0x00, 0x00, 0x00,
+0x1C, 0xD1, 0xEC, 0x70, 0x00, 0x00, 0x00, 0x00, 0x1D, 0xC1, 0xCF, 0x60, 0x00, 0x00, 0x00, 0x00,
+0x1E, 0xB1, 0xCE, 0x70, 0x00, 0x00, 0x00, 0x00, 0x1F, 0xA1, 0xB1, 0x60, 0x00, 0x00, 0x00, 0x00,
+0x20, 0x76, 0x00, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x21, 0x81, 0x93, 0x60, 0x00, 0x00, 0x00, 0x00,
+0x22, 0x55, 0xE2, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x23, 0x6A, 0xAF, 0xE0, 0x00, 0x00, 0x00, 0x00,
+0x24, 0x35, 0xC4, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x25, 0x4A, 0x91, 0xE0, 0x00, 0x00, 0x00, 0x00,
+0x26, 0x15, 0xA6, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x27, 0x2A, 0x73, 0xE0, 0x00, 0x00, 0x00, 0x00,
+0x27, 0xFE, 0xC3, 0x70, 0x00, 0x00, 0x00, 0x00, 0x29, 0x0A, 0x55, 0xE0, 0x00, 0x00, 0x00, 0x00,
+0x29, 0xDE, 0xA5, 0x70, 0x00, 0x00, 0x00, 0x00, 0x2A, 0xEA, 0x37, 0xE0, 0x00, 0x00, 0x00, 0x00,
+0x2B, 0xBE, 0x87, 0x70, 0x00, 0x00, 0x00, 0x00, 0x2C, 0xD3, 0x54, 0x60, 0x00, 0x00, 0x00, 0x00,
+0x2D, 0x9E, 0x69, 0x70, 0x00, 0x00, 0x00, 0x00, 0x2E, 0xB3, 0x36, 0x60, 0x00, 0x00, 0x00, 0x00,
+0x2F, 0x7E, 0x4B, 0x70, 0x00, 0x00, 0x00, 0x00, 0x30, 0x93, 0x18, 0x60, 0x00, 0x00, 0x00, 0x00,
+0x31, 0x67, 0x67, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x32, 0x72, 0xFA, 0x60, 0x00, 0x00, 0x00, 0x00,
+0x33, 0x47, 0x49, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x34, 0x52, 0xDC, 0x60, 0x00, 0x00, 0x00, 0x00,
+0x35, 0x27, 0x2B, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x36, 0x32, 0xBE, 0x60, 0x00, 0x00, 0x00, 0x00,
+0x37, 0x07, 0x0D, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x38, 0x1B, 0xDA, 0xE0, 0x00, 0x00, 0x00, 0x00,
+0x38, 0xE6, 0xEF, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x39, 0xFB, 0xBC, 0xE0, 0x00, 0x00, 0x00, 0x00,
+0x3A, 0xC6, 0xD1, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x3B, 0xDB, 0x9E, 0xE0, 0x00, 0x00, 0x00, 0x00,
+0x3C, 0xAF, 0xEE, 0x70, 0x00, 0x00, 0x00, 0x00, 0x3D, 0xBB, 0x80, 0xE0, 0x00, 0x00, 0x00, 0x00,
+0x3E, 0x8F, 0xD0, 0x70, 0x00, 0x00, 0x00, 0x00, 0x3F, 0x9B, 0x62, 0xE0, 0x00, 0x00, 0x00, 0x00,
+0x40, 0x6F, 0xB2, 0x70, 0x00, 0x00, 0x00, 0x00, 0x41, 0x84, 0x7F, 0x60, 0x00, 0x00, 0x00, 0x00,
+0x42, 0x4F, 0x94, 0x70, 0x00, 0x00, 0x00, 0x00, 0x43, 0x64, 0x61, 0x60, 0x00, 0x00, 0x00, 0x00,
+0x44, 0x2F, 0x76, 0x70, 0x00, 0x00, 0x00, 0x00, 0x45, 0x44, 0x43, 0x60, 0x00, 0x00, 0x00, 0x00,
+0x45, 0xF3, 0xA8, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x47, 0x2D, 0x5F, 0xE0, 0x00, 0x00, 0x00, 0x00,
+0x47, 0xD3, 0x8A, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x49, 0x0D, 0x41, 0xE0, 0x00, 0x00, 0x00, 0x00,
+0x49, 0xB3, 0x6C, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x4A, 0xED, 0x23, 0xE0, 0x00, 0x00, 0x00, 0x00,
+0x4B, 0x9C, 0x89, 0x70, 0x00, 0x00, 0x00, 0x00, 0x4C, 0xD6, 0x40, 0x60, 0x00, 0x00, 0x00, 0x00,
+0x4D, 0x7C, 0x6B, 0x70, 0x00, 0x00, 0x00, 0x00, 0x4E, 0xB6, 0x22, 0x60, 0x00, 0x00, 0x00, 0x00,
+0x4F, 0x5C, 0x4D, 0x70, 0x00, 0x00, 0x00, 0x00, 0x50, 0x96, 0x04, 0x60, 0x00, 0x00, 0x00, 0x00,
+0x51, 0x3C, 0x2F, 0x70, 0x00, 0x00, 0x00, 0x00, 0x52, 0x75, 0xE6, 0x60, 0x00, 0x00, 0x00, 0x00,
+0x53, 0x1C, 0x11, 0x70, 0x00, 0x00, 0x00, 0x00, 0x54, 0x55, 0xC8, 0x60, 0x00, 0x00, 0x00, 0x00,
+0x54, 0xFB, 0xF3, 0x70, 0x00, 0x00, 0x00, 0x00, 0x56, 0x35, 0xAA, 0x60, 0x00, 0x00, 0x00, 0x00,
+0x56, 0xE5, 0x0F, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x58, 0x1E, 0xC6, 0xE0, 0x00, 0x00, 0x00, 0x00,
+0x58, 0xC4, 0xF1, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x59, 0xFE, 0xA8, 0xE0, 0x00, 0x00, 0x00, 0x00,
+0x5A, 0xA4, 0xD3, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x5B, 0xDE, 0x8A, 0xE0, 0x00, 0x00, 0x00, 0x00,
+0x5C, 0x84, 0xB5, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x5D, 0xBE, 0x6C, 0xE0, 0x00, 0x00, 0x00, 0x00,
+0x5E, 0x64, 0x97, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x5F, 0x9E, 0x4E, 0xE0, 0x00, 0x00, 0x00, 0x00,
+0x60, 0x4D, 0xB4, 0x70, 0x00, 0x00, 0x00, 0x00, 0x61, 0x87, 0x6B, 0x60, 0x00, 0x00, 0x00, 0x00,
+0x62, 0x2D, 0x96, 0x70, 0x00, 0x00, 0x00, 0x00, 0x63, 0x67, 0x4D, 0x60, 0x00, 0x00, 0x00, 0x00,
+0x64, 0x0D, 0x78, 0x70, 0x00, 0x00, 0x00, 0x00, 0x65, 0x47, 0x2F, 0x60, 0x00, 0x00, 0x00, 0x00,
+0x65, 0xED, 0x5A, 0x70, 0x00, 0x00, 0x00, 0x00, 0x67, 0x27, 0x11, 0x60, 0x00, 0x00, 0x00, 0x00,
+0x67, 0xCD, 0x3C, 0x70, 0x00, 0x00, 0x00, 0x00, 0x69, 0x06, 0xF3, 0x60, 0x00, 0x00, 0x00, 0x00,
+0x69, 0xAD, 0x1E, 0x70, 0x00, 0x00, 0x00, 0x00, 0x6A, 0xE6, 0xD5, 0x60, 0x00, 0x00, 0x00, 0x00,
+0x6B, 0x96, 0x3A, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x6C, 0xCF, 0xF1, 0xE0, 0x00, 0x00, 0x00, 0x00,
+0x6D, 0x76, 0x1C, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x6E, 0xAF, 0xD3, 0xE0, 0x00, 0x00, 0x00, 0x00,
+0x6F, 0x55, 0xFE, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x70, 0x8F, 0xB5, 0xE0, 0x00, 0x00, 0x00, 0x00,
+0x71, 0x35, 0xE0, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x72, 0x6F, 0x97, 0xE0, 0x00, 0x00, 0x00, 0x00,
+0x73, 0x15, 0xC2, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x74, 0x4F, 0x79, 0xE0, 0x00, 0x00, 0x00, 0x00,
+0x74, 0xFE, 0xDF, 0x70, 0x00, 0x00, 0x00, 0x00, 0x76, 0x38, 0x96, 0x60, 0x00, 0x00, 0x00, 0x00,
+0x76, 0xDE, 0xC1, 0x70, 0x00, 0x00, 0x00, 0x00, 0x78, 0x18, 0x78, 0x60, 0x00, 0x00, 0x00, 0x00,
+0x78, 0xBE, 0xA3, 0x70, 0x00, 0x00, 0x00, 0x00, 0x79, 0xF8, 0x5A, 0x60, 0x00, 0x00, 0x00, 0x00,
+0x7A, 0x9E, 0x85, 0x70, 0x00, 0x00, 0x00, 0x00, 0x7B, 0xD8, 0x3C, 0x60, 0x00, 0x00, 0x00, 0x00,
+0x7C, 0x7E, 0x67, 0x70, 0x00, 0x00, 0x00, 0x00, 0x7D, 0xB8, 0x1E, 0x60, 0x00, 0x00, 0x00, 0x00,
+0x7E, 0x5E, 0x49, 0x70, 0x00, 0x00, 0x00, 0x00, 0x7F, 0x98, 0x00, 0x60, 0x01, 0x00, 0x01, 0x00,
+0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00,
+0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00,
+0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00,
+0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00,
+0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00,
+0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00,
+0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00,
+0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00,
+0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00,
+0xFF, 0xFF, 0xB9, 0xB0, 0x00, 0x04, 0xFF, 0xFF, 0xC7, 0xC0, 0x01, 0x00, 0xFF, 0xFF, 0xC7, 0xC0,
+0x01, 0x00, 0xFF, 0xFF, 0xB9, 0xB0, 0x00, 0x04, 0x45, 0x44, 0x54, 0x00, 0x45, 0x53, 0x54, 0x00,
+0x0A, 0x45, 0x53, 0x54, 0x35, 0x45, 0x44, 0x54, 0x2C, 0x4D, 0x33, 0x2E, 0x32, 0x2E, 0x30, 0x2C,
+0x4D, 0x31, 0x31, 0x2E, 0x31, 0x2E, 0x30, 0x0A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x00, 0x00,
/* Etc/GMT */
0x50, 0x48, 0x50, 0x32, 0x00, 0x3F, 0x3F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
@@ -57430,7 +57143,7 @@
0x9E, 0x9C, 0x9D, 0xA0, 0x9F, 0x97, 0x1A, 0xA0, 0xA0, 0x85, 0xBA, 0x20, 0xA1, 0x76, 0xFC, 0xA0,
0xA2, 0x65, 0x9C, 0x20, 0xA3, 0x7B, 0xC8, 0xA0, 0xA4, 0x4E, 0xB8, 0xA0, 0xA5, 0x3F, 0xFB, 0x20,
0xA6, 0x25, 0x60, 0x20, 0xA7, 0x27, 0xC6, 0x20, 0xA8, 0x2A, 0x2C, 0x20, 0xA8, 0xEB, 0xF8, 0xA0,
-0xAA, 0x00, 0xD3, 0xA0, 0xAA, 0xD5, 0x15, 0x20, 0xAB, 0xE9, 0xF0, 0x20, 0xAC, 0xC7, 0x6C, 0x20,
+0xAA, 0x00, 0xD3, 0xA0, 0xAA, 0xD5, 0x15, 0x20, 0xAB, 0xE9, 0xF0, 0x20, 0xAC, 0xB4, 0xF7, 0x20,
0xAD, 0xC9, 0xD2, 0x20, 0xAE, 0xA7, 0x4E, 0x20, 0xAF, 0xA0, 0x79, 0xA0, 0xB0, 0x87, 0x30, 0x20,
0xB1, 0x92, 0xD0, 0xA0, 0xB2, 0x70, 0x4C, 0xA0, 0xB3, 0x72, 0xB2, 0xA0, 0xB4, 0x50, 0x2E, 0xA0,
0xB5, 0x49, 0x5A, 0x20, 0xB6, 0x30, 0x10, 0xA0, 0xB7, 0x32, 0x76, 0xA0, 0xB8, 0x0F, 0xF2, 0xA0,
@@ -57515,7 +57228,7 @@
0xFF, 0xFF, 0xFF, 0xFF, 0xA6, 0x25, 0x60, 0x20, 0xFF, 0xFF, 0xFF, 0xFF, 0xA7, 0x27, 0xC6, 0x20,
0xFF, 0xFF, 0xFF, 0xFF, 0xA8, 0x2A, 0x2C, 0x20, 0xFF, 0xFF, 0xFF, 0xFF, 0xA8, 0xEB, 0xF8, 0xA0,
0xFF, 0xFF, 0xFF, 0xFF, 0xAA, 0x00, 0xD3, 0xA0, 0xFF, 0xFF, 0xFF, 0xFF, 0xAA, 0xD5, 0x15, 0x20,
-0xFF, 0xFF, 0xFF, 0xFF, 0xAB, 0xE9, 0xF0, 0x20, 0xFF, 0xFF, 0xFF, 0xFF, 0xAC, 0xC7, 0x6C, 0x20,
+0xFF, 0xFF, 0xFF, 0xFF, 0xAB, 0xE9, 0xF0, 0x20, 0xFF, 0xFF, 0xFF, 0xFF, 0xAC, 0xB4, 0xF7, 0x20,
0xFF, 0xFF, 0xFF, 0xFF, 0xAD, 0xC9, 0xD2, 0x20, 0xFF, 0xFF, 0xFF, 0xFF, 0xAE, 0xA7, 0x4E, 0x20,
0xFF, 0xFF, 0xFF, 0xFF, 0xAF, 0xA0, 0x79, 0xA0, 0xFF, 0xFF, 0xFF, 0xFF, 0xB0, 0x87, 0x30, 0x20,
0xFF, 0xFF, 0xFF, 0xFF, 0xB1, 0x92, 0xD0, 0xA0, 0xFF, 0xFF, 0xFF, 0xFF, 0xB2, 0x70, 0x4C, 0xA0,
@@ -65441,7 +65154,7 @@
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x47, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x1C, 0x9A, 0x6C, 0x7D, 0xC8,
0xBF, 0x00, 0xCC, 0x48, 0x0D, 0x94, 0x44, 0x38, 0x0E, 0xAD, 0x13, 0xB8, 0x0F, 0x79, 0x73, 0x40,
-0x10, 0x28, 0xCA, 0xC0, 0x10, 0xA9, 0xFD, 0xC0, 0x11, 0xAD, 0xBC, 0x48, 0x12, 0x45, 0x4A, 0xB8,
+0x10, 0x28, 0xCA, 0xC0, 0x10, 0xA9, 0xFD, 0xC0, 0x11, 0xAC, 0x6A, 0xC8, 0x12, 0x45, 0x4A, 0xB8,
0x13, 0x37, 0xEC, 0xC8, 0x14, 0x2D, 0x15, 0xB8, 0x28, 0x20, 0x76, 0xC8, 0x28, 0xDB, 0x9D, 0xB8,
0x29, 0xCB, 0x9C, 0xC8, 0x2A, 0xBE, 0x22, 0xB8, 0x2B, 0xAC, 0xD0, 0x48, 0x2C, 0x9F, 0x56, 0x38,
0x2D, 0x8E, 0x03, 0xC8, 0x2E, 0x80, 0x89, 0xB8, 0x2F, 0x6F, 0x37, 0x48, 0x30, 0x61, 0xBD, 0x38,
@@ -65473,7 +65186,7 @@
0xFF, 0xFF, 0xFF, 0xBF, 0x00, 0xCC, 0x48, 0x00, 0x00, 0x00, 0x00, 0x0D, 0x94, 0x44, 0x38, 0x00,
0x00, 0x00, 0x00, 0x0E, 0xAD, 0x13, 0xB8, 0x00, 0x00, 0x00, 0x00, 0x0F, 0x79, 0x73, 0x40, 0x00,
0x00, 0x00, 0x00, 0x10, 0x28, 0xCA, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x10, 0xA9, 0xFD, 0xC0, 0x00,
-0x00, 0x00, 0x00, 0x11, 0xAD, 0xBC, 0x48, 0x00, 0x00, 0x00, 0x00, 0x12, 0x45, 0x4A, 0xB8, 0x00,
+0x00, 0x00, 0x00, 0x11, 0xAC, 0x6A, 0xC8, 0x00, 0x00, 0x00, 0x00, 0x12, 0x45, 0x4A, 0xB8, 0x00,
0x00, 0x00, 0x00, 0x13, 0x37, 0xEC, 0xC8, 0x00, 0x00, 0x00, 0x00, 0x14, 0x2D, 0x15, 0xB8, 0x00,
0x00, 0x00, 0x00, 0x28, 0x20, 0x76, 0xC8, 0x00, 0x00, 0x00, 0x00, 0x28, 0xDB, 0x9D, 0xB8, 0x00,
0x00, 0x00, 0x00, 0x29, 0xCB, 0x9C, 0xC8, 0x00, 0x00, 0x00, 0x00, 0x2A, 0xBE, 0x22, 0xB8, 0x00,
@@ -66340,160 +66053,147 @@
/* MST7MDT */
0x50, 0x48, 0x50, 0x32, 0x00, 0x3F, 0x3F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x00,
-0x00, 0x00, 0x00, 0x9E, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x14, 0x80, 0x00, 0x00, 0x00,
-0x9E, 0xA6, 0x3A, 0x90, 0x9F, 0xBB, 0x07, 0x80, 0xA0, 0x86, 0x1C, 0x90, 0xA1, 0x9A, 0xE9, 0x80,
-0xA2, 0x65, 0xFE, 0x90, 0xA3, 0x84, 0x06, 0x00, 0xA4, 0x45, 0xE0, 0x90, 0xA4, 0x8F, 0xA6, 0x80,
-0xCB, 0x89, 0x0C, 0x90, 0xD2, 0x23, 0xF4, 0x70, 0xD2, 0x61, 0x18, 0x00, 0xF7, 0x2F, 0x76, 0x90,
-0xF8, 0x28, 0x94, 0x00, 0xF9, 0x0F, 0x58, 0x90, 0xFA, 0x08, 0x76, 0x00, 0xFA, 0xF8, 0x75, 0x10,
-0xFB, 0xE8, 0x58, 0x00, 0xFC, 0xD8, 0x57, 0x10, 0xFD, 0xC8, 0x3A, 0x00, 0xFE, 0xB8, 0x39, 0x10,
-0xFF, 0xA8, 0x1C, 0x00, 0x00, 0x98, 0x1B, 0x10, 0x01, 0x87, 0xFE, 0x00, 0x02, 0x77, 0xFD, 0x10,
-0x03, 0x71, 0x1A, 0x80, 0x04, 0x61, 0x19, 0x90, 0x05, 0x50, 0xFC, 0x80, 0x06, 0x40, 0xFB, 0x90,
-0x07, 0x30, 0xDE, 0x80, 0x07, 0x8D, 0x35, 0x90, 0x09, 0x10, 0xC0, 0x80, 0x09, 0xAD, 0xB1, 0x10,
-0x0A, 0xF0, 0xA2, 0x80, 0x0B, 0xE0, 0xA1, 0x90, 0x0C, 0xD9, 0xBF, 0x00, 0x0D, 0xC0, 0x83, 0x90,
-0x0E, 0xB9, 0xA1, 0x00, 0x0F, 0xA9, 0xA0, 0x10, 0x10, 0x99, 0x83, 0x00, 0x11, 0x89, 0x82, 0x10,
-0x12, 0x79, 0x65, 0x00, 0x13, 0x69, 0x64, 0x10, 0x14, 0x59, 0x47, 0x00, 0x15, 0x49, 0x46, 0x10,
-0x16, 0x39, 0x29, 0x00, 0x17, 0x29, 0x28, 0x10, 0x18, 0x22, 0x45, 0x80, 0x19, 0x09, 0x0A, 0x10,
-0x1A, 0x02, 0x27, 0x80, 0x1A, 0xF2, 0x26, 0x90, 0x1B, 0xE2, 0x09, 0x80, 0x1C, 0xD2, 0x08, 0x90,
-0x1D, 0xC1, 0xEB, 0x80, 0x1E, 0xB1, 0xEA, 0x90, 0x1F, 0xA1, 0xCD, 0x80, 0x20, 0x76, 0x1D, 0x10,
-0x21, 0x81, 0xAF, 0x80, 0x22, 0x55, 0xFF, 0x10, 0x23, 0x6A, 0xCC, 0x00, 0x24, 0x35, 0xE1, 0x10,
-0x25, 0x4A, 0xAE, 0x00, 0x26, 0x15, 0xC3, 0x10, 0x27, 0x2A, 0x90, 0x00, 0x27, 0xFE, 0xDF, 0x90,
-0x29, 0x0A, 0x72, 0x00, 0x29, 0xDE, 0xC1, 0x90, 0x2A, 0xEA, 0x54, 0x00, 0x2B, 0xBE, 0xA3, 0x90,
-0x2C, 0xD3, 0x70, 0x80, 0x2D, 0x9E, 0x85, 0x90, 0x2E, 0xB3, 0x52, 0x80, 0x2F, 0x7E, 0x67, 0x90,
-0x30, 0x93, 0x34, 0x80, 0x31, 0x67, 0x84, 0x10, 0x32, 0x73, 0x16, 0x80, 0x33, 0x47, 0x66, 0x10,
-0x34, 0x52, 0xF8, 0x80, 0x35, 0x27, 0x48, 0x10, 0x36, 0x32, 0xDA, 0x80, 0x37, 0x07, 0x2A, 0x10,
-0x38, 0x1B, 0xF7, 0x00, 0x38, 0xE7, 0x0C, 0x10, 0x39, 0xFB, 0xD9, 0x00, 0x3A, 0xC6, 0xEE, 0x10,
-0x3B, 0xDB, 0xBB, 0x00, 0x3C, 0xB0, 0x0A, 0x90, 0x3D, 0xBB, 0x9D, 0x00, 0x3E, 0x8F, 0xEC, 0x90,
-0x3F, 0x9B, 0x7F, 0x00, 0x40, 0x6F, 0xCE, 0x90, 0x41, 0x84, 0x9B, 0x80, 0x42, 0x4F, 0xB0, 0x90,
-0x43, 0x64, 0x7D, 0x80, 0x44, 0x2F, 0x92, 0x90, 0x45, 0x44, 0x5F, 0x80, 0x45, 0xF3, 0xC5, 0x10,
-0x47, 0x2D, 0x7C, 0x00, 0x47, 0xD3, 0xA7, 0x10, 0x49, 0x0D, 0x5E, 0x00, 0x49, 0xB3, 0x89, 0x10,
-0x4A, 0xED, 0x40, 0x00, 0x4B, 0x9C, 0xA5, 0x90, 0x4C, 0xD6, 0x5C, 0x80, 0x4D, 0x7C, 0x87, 0x90,
-0x4E, 0xB6, 0x3E, 0x80, 0x4F, 0x5C, 0x69, 0x90, 0x50, 0x96, 0x20, 0x80, 0x51, 0x3C, 0x4B, 0x90,
-0x52, 0x76, 0x02, 0x80, 0x53, 0x1C, 0x2D, 0x90, 0x54, 0x55, 0xE4, 0x80, 0x54, 0xFC, 0x0F, 0x90,
-0x56, 0x35, 0xC6, 0x80, 0x56, 0xE5, 0x2C, 0x10, 0x58, 0x1E, 0xE3, 0x00, 0x58, 0xC5, 0x0E, 0x10,
-0x59, 0xFE, 0xC5, 0x00, 0x5A, 0xA4, 0xF0, 0x10, 0x5B, 0xDE, 0xA7, 0x00, 0x5C, 0x84, 0xD2, 0x10,
-0x5D, 0xBE, 0x89, 0x00, 0x5E, 0x64, 0xB4, 0x10, 0x5F, 0x9E, 0x6B, 0x00, 0x60, 0x4D, 0xD0, 0x90,
-0x61, 0x87, 0x87, 0x80, 0x62, 0x2D, 0xB2, 0x90, 0x63, 0x67, 0x69, 0x80, 0x64, 0x0D, 0x94, 0x90,
-0x65, 0x47, 0x4B, 0x80, 0x65, 0xED, 0x76, 0x90, 0x67, 0x27, 0x2D, 0x80, 0x67, 0xCD, 0x58, 0x90,
-0x69, 0x07, 0x0F, 0x80, 0x69, 0xAD, 0x3A, 0x90, 0x6A, 0xE6, 0xF1, 0x80, 0x6B, 0x96, 0x57, 0x10,
-0x6C, 0xD0, 0x0E, 0x00, 0x6D, 0x76, 0x39, 0x10, 0x6E, 0xAF, 0xF0, 0x00, 0x6F, 0x56, 0x1B, 0x10,
-0x70, 0x8F, 0xD2, 0x00, 0x71, 0x35, 0xFD, 0x10, 0x72, 0x6F, 0xB4, 0x00, 0x73, 0x15, 0xDF, 0x10,
-0x74, 0x4F, 0x96, 0x00, 0x74, 0xFE, 0xFB, 0x90, 0x76, 0x38, 0xB2, 0x80, 0x76, 0xDE, 0xDD, 0x90,
-0x78, 0x18, 0x94, 0x80, 0x78, 0xBE, 0xBF, 0x90, 0x79, 0xF8, 0x76, 0x80, 0x7A, 0x9E, 0xA1, 0x90,
-0x7B, 0xD8, 0x58, 0x80, 0x7C, 0x7E, 0x83, 0x90, 0x7D, 0xB8, 0x3A, 0x80, 0x7E, 0x5E, 0x65, 0x90,
-0x7F, 0x98, 0x1C, 0x80, 0x03, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x04, 0x05, 0x02,
-0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02,
-0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02,
-0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02,
-0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02,
-0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02,
-0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02,
-0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02,
-0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02,
-0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02,
-0x01, 0x02, 0xFF, 0xFF, 0x9D, 0x94, 0x00, 0x00, 0xFF, 0xFF, 0xAB, 0xA0, 0x01, 0x04, 0xFF, 0xFF,
-0x9D, 0x90, 0x00, 0x08, 0xFF, 0xFF, 0x9D, 0x90, 0x00, 0x08, 0xFF, 0xFF, 0xAB, 0xA0, 0x01, 0x0C,
-0xFF, 0xFF, 0xAB, 0xA0, 0x01, 0x10, 0x4C, 0x4D, 0x54, 0x00, 0x4D, 0x44, 0x54, 0x00, 0x4D, 0x53,
-0x54, 0x00, 0x4D, 0x57, 0x54, 0x00, 0x4D, 0x50, 0x54, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x01,
-0x00, 0x00, 0x00, 0x01, 0x00, 0x01, 0x54, 0x5A, 0x69, 0x66, 0x32, 0x00, 0x00, 0x00, 0x00, 0x00,
-0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00,
-0x00, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x9E, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00,
-0x00, 0x14, 0xFF, 0xFF, 0xFF, 0xFF, 0x5E, 0x04, 0x0C, 0xB0, 0xFF, 0xFF, 0xFF, 0xFF, 0x9E, 0xA6,
-0x3A, 0x90, 0xFF, 0xFF, 0xFF, 0xFF, 0x9F, 0xBB, 0x07, 0x80, 0xFF, 0xFF, 0xFF, 0xFF, 0xA0, 0x86,
-0x1C, 0x90, 0xFF, 0xFF, 0xFF, 0xFF, 0xA1, 0x9A, 0xE9, 0x80, 0xFF, 0xFF, 0xFF, 0xFF, 0xA2, 0x65,
-0xFE, 0x90, 0xFF, 0xFF, 0xFF, 0xFF, 0xA3, 0x84, 0x06, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xA4, 0x45,
-0xE0, 0x90, 0xFF, 0xFF, 0xFF, 0xFF, 0xA4, 0x8F, 0xA6, 0x80, 0xFF, 0xFF, 0xFF, 0xFF, 0xCB, 0x89,
-0x0C, 0x90, 0xFF, 0xFF, 0xFF, 0xFF, 0xD2, 0x23, 0xF4, 0x70, 0xFF, 0xFF, 0xFF, 0xFF, 0xD2, 0x61,
-0x18, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xF7, 0x2F, 0x76, 0x90, 0xFF, 0xFF, 0xFF, 0xFF, 0xF8, 0x28,
-0x94, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xF9, 0x0F, 0x58, 0x90, 0xFF, 0xFF, 0xFF, 0xFF, 0xFA, 0x08,
-0x76, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFA, 0xF8, 0x75, 0x10, 0xFF, 0xFF, 0xFF, 0xFF, 0xFB, 0xE8,
-0x58, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFC, 0xD8, 0x57, 0x10, 0xFF, 0xFF, 0xFF, 0xFF, 0xFD, 0xC8,
-0x3A, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFE, 0xB8, 0x39, 0x10, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xA8,
-0x1C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x98, 0x1B, 0x10, 0x00, 0x00, 0x00, 0x00, 0x01, 0x87,
-0xFE, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x77, 0xFD, 0x10, 0x00, 0x00, 0x00, 0x00, 0x03, 0x71,
-0x1A, 0x80, 0x00, 0x00, 0x00, 0x00, 0x04, 0x61, 0x19, 0x90, 0x00, 0x00, 0x00, 0x00, 0x05, 0x50,
-0xFC, 0x80, 0x00, 0x00, 0x00, 0x00, 0x06, 0x40, 0xFB, 0x90, 0x00, 0x00, 0x00, 0x00, 0x07, 0x30,
-0xDE, 0x80, 0x00, 0x00, 0x00, 0x00, 0x07, 0x8D, 0x35, 0x90, 0x00, 0x00, 0x00, 0x00, 0x09, 0x10,
-0xC0, 0x80, 0x00, 0x00, 0x00, 0x00, 0x09, 0xAD, 0xB1, 0x10, 0x00, 0x00, 0x00, 0x00, 0x0A, 0xF0,
-0xA2, 0x80, 0x00, 0x00, 0x00, 0x00, 0x0B, 0xE0, 0xA1, 0x90, 0x00, 0x00, 0x00, 0x00, 0x0C, 0xD9,
-0xBF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0D, 0xC0, 0x83, 0x90, 0x00, 0x00, 0x00, 0x00, 0x0E, 0xB9,
-0xA1, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0F, 0xA9, 0xA0, 0x10, 0x00, 0x00, 0x00, 0x00, 0x10, 0x99,
-0x83, 0x00, 0x00, 0x00, 0x00, 0x00, 0x11, 0x89, 0x82, 0x10, 0x00, 0x00, 0x00, 0x00, 0x12, 0x79,
-0x65, 0x00, 0x00, 0x00, 0x00, 0x00, 0x13, 0x69, 0x64, 0x10, 0x00, 0x00, 0x00, 0x00, 0x14, 0x59,
-0x47, 0x00, 0x00, 0x00, 0x00, 0x00, 0x15, 0x49, 0x46, 0x10, 0x00, 0x00, 0x00, 0x00, 0x16, 0x39,
-0x29, 0x00, 0x00, 0x00, 0x00, 0x00, 0x17, 0x29, 0x28, 0x10, 0x00, 0x00, 0x00, 0x00, 0x18, 0x22,
-0x45, 0x80, 0x00, 0x00, 0x00, 0x00, 0x19, 0x09, 0x0A, 0x10, 0x00, 0x00, 0x00, 0x00, 0x1A, 0x02,
-0x27, 0x80, 0x00, 0x00, 0x00, 0x00, 0x1A, 0xF2, 0x26, 0x90, 0x00, 0x00, 0x00, 0x00, 0x1B, 0xE2,
-0x09, 0x80, 0x00, 0x00, 0x00, 0x00, 0x1C, 0xD2, 0x08, 0x90, 0x00, 0x00, 0x00, 0x00, 0x1D, 0xC1,
-0xEB, 0x80, 0x00, 0x00, 0x00, 0x00, 0x1E, 0xB1, 0xEA, 0x90, 0x00, 0x00, 0x00, 0x00, 0x1F, 0xA1,
-0xCD, 0x80, 0x00, 0x00, 0x00, 0x00, 0x20, 0x76, 0x1D, 0x10, 0x00, 0x00, 0x00, 0x00, 0x21, 0x81,
-0xAF, 0x80, 0x00, 0x00, 0x00, 0x00, 0x22, 0x55, 0xFF, 0x10, 0x00, 0x00, 0x00, 0x00, 0x23, 0x6A,
-0xCC, 0x00, 0x00, 0x00, 0x00, 0x00, 0x24, 0x35, 0xE1, 0x10, 0x00, 0x00, 0x00, 0x00, 0x25, 0x4A,
-0xAE, 0x00, 0x00, 0x00, 0x00, 0x00, 0x26, 0x15, 0xC3, 0x10, 0x00, 0x00, 0x00, 0x00, 0x27, 0x2A,
-0x90, 0x00, 0x00, 0x00, 0x00, 0x00, 0x27, 0xFE, 0xDF, 0x90, 0x00, 0x00, 0x00, 0x00, 0x29, 0x0A,
-0x72, 0x00, 0x00, 0x00, 0x00, 0x00, 0x29, 0xDE, 0xC1, 0x90, 0x00, 0x00, 0x00, 0x00, 0x2A, 0xEA,
-0x54, 0x00, 0x00, 0x00, 0x00, 0x00, 0x2B, 0xBE, 0xA3, 0x90, 0x00, 0x00, 0x00, 0x00, 0x2C, 0xD3,
-0x70, 0x80, 0x00, 0x00, 0x00, 0x00, 0x2D, 0x9E, 0x85, 0x90, 0x00, 0x00, 0x00, 0x00, 0x2E, 0xB3,
-0x52, 0x80, 0x00, 0x00, 0x00, 0x00, 0x2F, 0x7E, 0x67, 0x90, 0x00, 0x00, 0x00, 0x00, 0x30, 0x93,
-0x34, 0x80, 0x00, 0x00, 0x00, 0x00, 0x31, 0x67, 0x84, 0x10, 0x00, 0x00, 0x00, 0x00, 0x32, 0x73,
-0x16, 0x80, 0x00, 0x00, 0x00, 0x00, 0x33, 0x47, 0x66, 0x10, 0x00, 0x00, 0x00, 0x00, 0x34, 0x52,
-0xF8, 0x80, 0x00, 0x00, 0x00, 0x00, 0x35, 0x27, 0x48, 0x10, 0x00, 0x00, 0x00, 0x00, 0x36, 0x32,
-0xDA, 0x80, 0x00, 0x00, 0x00, 0x00, 0x37, 0x07, 0x2A, 0x10, 0x00, 0x00, 0x00, 0x00, 0x38, 0x1B,
-0xF7, 0x00, 0x00, 0x00, 0x00, 0x00, 0x38, 0xE7, 0x0C, 0x10, 0x00, 0x00, 0x00, 0x00, 0x39, 0xFB,
-0xD9, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3A, 0xC6, 0xEE, 0x10, 0x00, 0x00, 0x00, 0x00, 0x3B, 0xDB,
-0xBB, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3C, 0xB0, 0x0A, 0x90, 0x00, 0x00, 0x00, 0x00, 0x3D, 0xBB,
-0x9D, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3E, 0x8F, 0xEC, 0x90, 0x00, 0x00, 0x00, 0x00, 0x3F, 0x9B,
-0x7F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x6F, 0xCE, 0x90, 0x00, 0x00, 0x00, 0x00, 0x41, 0x84,
-0x9B, 0x80, 0x00, 0x00, 0x00, 0x00, 0x42, 0x4F, 0xB0, 0x90, 0x00, 0x00, 0x00, 0x00, 0x43, 0x64,
-0x7D, 0x80, 0x00, 0x00, 0x00, 0x00, 0x44, 0x2F, 0x92, 0x90, 0x00, 0x00, 0x00, 0x00, 0x45, 0x44,
-0x5F, 0x80, 0x00, 0x00, 0x00, 0x00, 0x45, 0xF3, 0xC5, 0x10, 0x00, 0x00, 0x00, 0x00, 0x47, 0x2D,
-0x7C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x47, 0xD3, 0xA7, 0x10, 0x00, 0x00, 0x00, 0x00, 0x49, 0x0D,
-0x5E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x49, 0xB3, 0x89, 0x10, 0x00, 0x00, 0x00, 0x00, 0x4A, 0xED,
-0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x4B, 0x9C, 0xA5, 0x90, 0x00, 0x00, 0x00, 0x00, 0x4C, 0xD6,
-0x5C, 0x80, 0x00, 0x00, 0x00, 0x00, 0x4D, 0x7C, 0x87, 0x90, 0x00, 0x00, 0x00, 0x00, 0x4E, 0xB6,
-0x3E, 0x80, 0x00, 0x00, 0x00, 0x00, 0x4F, 0x5C, 0x69, 0x90, 0x00, 0x00, 0x00, 0x00, 0x50, 0x96,
-0x20, 0x80, 0x00, 0x00, 0x00, 0x00, 0x51, 0x3C, 0x4B, 0x90, 0x00, 0x00, 0x00, 0x00, 0x52, 0x76,
-0x02, 0x80, 0x00, 0x00, 0x00, 0x00, 0x53, 0x1C, 0x2D, 0x90, 0x00, 0x00, 0x00, 0x00, 0x54, 0x55,
-0xE4, 0x80, 0x00, 0x00, 0x00, 0x00, 0x54, 0xFC, 0x0F, 0x90, 0x00, 0x00, 0x00, 0x00, 0x56, 0x35,
-0xC6, 0x80, 0x00, 0x00, 0x00, 0x00, 0x56, 0xE5, 0x2C, 0x10, 0x00, 0x00, 0x00, 0x00, 0x58, 0x1E,
-0xE3, 0x00, 0x00, 0x00, 0x00, 0x00, 0x58, 0xC5, 0x0E, 0x10, 0x00, 0x00, 0x00, 0x00, 0x59, 0xFE,
-0xC5, 0x00, 0x00, 0x00, 0x00, 0x00, 0x5A, 0xA4, 0xF0, 0x10, 0x00, 0x00, 0x00, 0x00, 0x5B, 0xDE,
-0xA7, 0x00, 0x00, 0x00, 0x00, 0x00, 0x5C, 0x84, 0xD2, 0x10, 0x00, 0x00, 0x00, 0x00, 0x5D, 0xBE,
-0x89, 0x00, 0x00, 0x00, 0x00, 0x00, 0x5E, 0x64, 0xB4, 0x10, 0x00, 0x00, 0x00, 0x00, 0x5F, 0x9E,
-0x6B, 0x00, 0x00, 0x00, 0x00, 0x00, 0x60, 0x4D, 0xD0, 0x90, 0x00, 0x00, 0x00, 0x00, 0x61, 0x87,
-0x87, 0x80, 0x00, 0x00, 0x00, 0x00, 0x62, 0x2D, 0xB2, 0x90, 0x00, 0x00, 0x00, 0x00, 0x63, 0x67,
-0x69, 0x80, 0x00, 0x00, 0x00, 0x00, 0x64, 0x0D, 0x94, 0x90, 0x00, 0x00, 0x00, 0x00, 0x65, 0x47,
-0x4B, 0x80, 0x00, 0x00, 0x00, 0x00, 0x65, 0xED, 0x76, 0x90, 0x00, 0x00, 0x00, 0x00, 0x67, 0x27,
-0x2D, 0x80, 0x00, 0x00, 0x00, 0x00, 0x67, 0xCD, 0x58, 0x90, 0x00, 0x00, 0x00, 0x00, 0x69, 0x07,
-0x0F, 0x80, 0x00, 0x00, 0x00, 0x00, 0x69, 0xAD, 0x3A, 0x90, 0x00, 0x00, 0x00, 0x00, 0x6A, 0xE6,
-0xF1, 0x80, 0x00, 0x00, 0x00, 0x00, 0x6B, 0x96, 0x57, 0x10, 0x00, 0x00, 0x00, 0x00, 0x6C, 0xD0,
-0x0E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x6D, 0x76, 0x39, 0x10, 0x00, 0x00, 0x00, 0x00, 0x6E, 0xAF,
-0xF0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x6F, 0x56, 0x1B, 0x10, 0x00, 0x00, 0x00, 0x00, 0x70, 0x8F,
-0xD2, 0x00, 0x00, 0x00, 0x00, 0x00, 0x71, 0x35, 0xFD, 0x10, 0x00, 0x00, 0x00, 0x00, 0x72, 0x6F,
-0xB4, 0x00, 0x00, 0x00, 0x00, 0x00, 0x73, 0x15, 0xDF, 0x10, 0x00, 0x00, 0x00, 0x00, 0x74, 0x4F,
-0x96, 0x00, 0x00, 0x00, 0x00, 0x00, 0x74, 0xFE, 0xFB, 0x90, 0x00, 0x00, 0x00, 0x00, 0x76, 0x38,
-0xB2, 0x80, 0x00, 0x00, 0x00, 0x00, 0x76, 0xDE, 0xDD, 0x90, 0x00, 0x00, 0x00, 0x00, 0x78, 0x18,
-0x94, 0x80, 0x00, 0x00, 0x00, 0x00, 0x78, 0xBE, 0xBF, 0x90, 0x00, 0x00, 0x00, 0x00, 0x79, 0xF8,
-0x76, 0x80, 0x00, 0x00, 0x00, 0x00, 0x7A, 0x9E, 0xA1, 0x90, 0x00, 0x00, 0x00, 0x00, 0x7B, 0xD8,
-0x58, 0x80, 0x00, 0x00, 0x00, 0x00, 0x7C, 0x7E, 0x83, 0x90, 0x00, 0x00, 0x00, 0x00, 0x7D, 0xB8,
-0x3A, 0x80, 0x00, 0x00, 0x00, 0x00, 0x7E, 0x5E, 0x65, 0x90, 0x00, 0x00, 0x00, 0x00, 0x7F, 0x98,
-0x1C, 0x80, 0x03, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x04, 0x05, 0x02, 0x01, 0x02,
-0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02,
-0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02,
-0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02,
-0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02,
-0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02,
-0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02,
-0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02,
-0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02,
-0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02,
-0xFF, 0xFF, 0x9D, 0x94, 0x00, 0x00, 0xFF, 0xFF, 0xAB, 0xA0, 0x01, 0x04, 0xFF, 0xFF, 0x9D, 0x90,
-0x00, 0x08, 0xFF, 0xFF, 0x9D, 0x90, 0x00, 0x08, 0xFF, 0xFF, 0xAB, 0xA0, 0x01, 0x0C, 0xFF, 0xFF,
-0xAB, 0xA0, 0x01, 0x10, 0x4C, 0x4D, 0x54, 0x00, 0x4D, 0x44, 0x54, 0x00, 0x4D, 0x53, 0x54, 0x00,
-0x4D, 0x57, 0x54, 0x00, 0x4D, 0x50, 0x54, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x01, 0x00, 0x00,
-0x00, 0x01, 0x00, 0x01, 0x0A, 0x4D, 0x53, 0x54, 0x37, 0x4D, 0x44, 0x54, 0x2C, 0x4D, 0x33, 0x2E,
-0x32, 0x2E, 0x30, 0x2C, 0x4D, 0x31, 0x31, 0x2E, 0x31, 0x2E, 0x30, 0x0A, 0x00, 0x00, 0x00, 0x00,
-0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x00, 0x94, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x08, 0x9E, 0xA6, 0x3A, 0x90,
+0x9F, 0xBB, 0x07, 0x80, 0xA0, 0x86, 0x1C, 0x90, 0xA1, 0x9A, 0xE9, 0x80, 0xCB, 0x89, 0x0C, 0x90,
+0xD2, 0x61, 0x18, 0x00, 0xFA, 0xF8, 0x75, 0x10, 0xFB, 0xE8, 0x58, 0x00, 0xFC, 0xD8, 0x57, 0x10,
+0xFD, 0xC8, 0x3A, 0x00, 0xFE, 0xB8, 0x39, 0x10, 0xFF, 0xA8, 0x1C, 0x00, 0x00, 0x98, 0x1B, 0x10,
+0x01, 0x87, 0xFE, 0x00, 0x02, 0x77, 0xFD, 0x10, 0x03, 0x71, 0x1A, 0x80, 0x04, 0x61, 0x19, 0x90,
+0x05, 0x50, 0xFC, 0x80, 0x06, 0x40, 0xFB, 0x90, 0x07, 0x30, 0xDE, 0x80, 0x07, 0x8D, 0x35, 0x90,
+0x09, 0x10, 0xC0, 0x80, 0x09, 0xAD, 0xB1, 0x10, 0x0A, 0xF0, 0xA2, 0x80, 0x0B, 0xE0, 0xA1, 0x90,
+0x0C, 0xD9, 0xBF, 0x00, 0x0D, 0xC0, 0x83, 0x90, 0x0E, 0xB9, 0xA1, 0x00, 0x0F, 0xA9, 0xA0, 0x10,
+0x10, 0x99, 0x83, 0x00, 0x11, 0x89, 0x82, 0x10, 0x12, 0x79, 0x65, 0x00, 0x13, 0x69, 0x64, 0x10,
+0x14, 0x59, 0x47, 0x00, 0x15, 0x49, 0x46, 0x10, 0x16, 0x39, 0x29, 0x00, 0x17, 0x29, 0x28, 0x10,
+0x18, 0x22, 0x45, 0x80, 0x19, 0x09, 0x0A, 0x10, 0x1A, 0x02, 0x27, 0x80, 0x1A, 0xF2, 0x26, 0x90,
+0x1B, 0xE2, 0x09, 0x80, 0x1C, 0xD2, 0x08, 0x90, 0x1D, 0xC1, 0xEB, 0x80, 0x1E, 0xB1, 0xEA, 0x90,
+0x1F, 0xA1, 0xCD, 0x80, 0x20, 0x76, 0x1D, 0x10, 0x21, 0x81, 0xAF, 0x80, 0x22, 0x55, 0xFF, 0x10,
+0x23, 0x6A, 0xCC, 0x00, 0x24, 0x35, 0xE1, 0x10, 0x25, 0x4A, 0xAE, 0x00, 0x26, 0x15, 0xC3, 0x10,
+0x27, 0x2A, 0x90, 0x00, 0x27, 0xFE, 0xDF, 0x90, 0x29, 0x0A, 0x72, 0x00, 0x29, 0xDE, 0xC1, 0x90,
+0x2A, 0xEA, 0x54, 0x00, 0x2B, 0xBE, 0xA3, 0x90, 0x2C, 0xD3, 0x70, 0x80, 0x2D, 0x9E, 0x85, 0x90,
+0x2E, 0xB3, 0x52, 0x80, 0x2F, 0x7E, 0x67, 0x90, 0x30, 0x93, 0x34, 0x80, 0x31, 0x67, 0x84, 0x10,
+0x32, 0x73, 0x16, 0x80, 0x33, 0x47, 0x66, 0x10, 0x34, 0x52, 0xF8, 0x80, 0x35, 0x27, 0x48, 0x10,
+0x36, 0x32, 0xDA, 0x80, 0x37, 0x07, 0x2A, 0x10, 0x38, 0x1B, 0xF7, 0x00, 0x38, 0xE7, 0x0C, 0x10,
+0x39, 0xFB, 0xD9, 0x00, 0x3A, 0xC6, 0xEE, 0x10, 0x3B, 0xDB, 0xBB, 0x00, 0x3C, 0xB0, 0x0A, 0x90,
+0x3D, 0xBB, 0x9D, 0x00, 0x3E, 0x8F, 0xEC, 0x90, 0x3F, 0x9B, 0x7F, 0x00, 0x40, 0x6F, 0xCE, 0x90,
+0x41, 0x84, 0x9B, 0x80, 0x42, 0x4F, 0xB0, 0x90, 0x43, 0x64, 0x7D, 0x80, 0x44, 0x2F, 0x92, 0x90,
+0x45, 0x44, 0x5F, 0x80, 0x45, 0xF3, 0xC5, 0x10, 0x47, 0x2D, 0x7C, 0x00, 0x47, 0xD3, 0xA7, 0x10,
+0x49, 0x0D, 0x5E, 0x00, 0x49, 0xB3, 0x89, 0x10, 0x4A, 0xED, 0x40, 0x00, 0x4B, 0x9C, 0xA5, 0x90,
+0x4C, 0xD6, 0x5C, 0x80, 0x4D, 0x7C, 0x87, 0x90, 0x4E, 0xB6, 0x3E, 0x80, 0x4F, 0x5C, 0x69, 0x90,
+0x50, 0x96, 0x20, 0x80, 0x51, 0x3C, 0x4B, 0x90, 0x52, 0x76, 0x02, 0x80, 0x53, 0x1C, 0x2D, 0x90,
+0x54, 0x55, 0xE4, 0x80, 0x54, 0xFC, 0x0F, 0x90, 0x56, 0x35, 0xC6, 0x80, 0x56, 0xE5, 0x2C, 0x10,
+0x58, 0x1E, 0xE3, 0x00, 0x58, 0xC5, 0x0E, 0x10, 0x59, 0xFE, 0xC5, 0x00, 0x5A, 0xA4, 0xF0, 0x10,
+0x5B, 0xDE, 0xA7, 0x00, 0x5C, 0x84, 0xD2, 0x10, 0x5D, 0xBE, 0x89, 0x00, 0x5E, 0x64, 0xB4, 0x10,
+0x5F, 0x9E, 0x6B, 0x00, 0x60, 0x4D, 0xD0, 0x90, 0x61, 0x87, 0x87, 0x80, 0x62, 0x2D, 0xB2, 0x90,
+0x63, 0x67, 0x69, 0x80, 0x64, 0x0D, 0x94, 0x90, 0x65, 0x47, 0x4B, 0x80, 0x65, 0xED, 0x76, 0x90,
+0x67, 0x27, 0x2D, 0x80, 0x67, 0xCD, 0x58, 0x90, 0x69, 0x07, 0x0F, 0x80, 0x69, 0xAD, 0x3A, 0x90,
+0x6A, 0xE6, 0xF1, 0x80, 0x6B, 0x96, 0x57, 0x10, 0x6C, 0xD0, 0x0E, 0x00, 0x6D, 0x76, 0x39, 0x10,
+0x6E, 0xAF, 0xF0, 0x00, 0x6F, 0x56, 0x1B, 0x10, 0x70, 0x8F, 0xD2, 0x00, 0x71, 0x35, 0xFD, 0x10,
+0x72, 0x6F, 0xB4, 0x00, 0x73, 0x15, 0xDF, 0x10, 0x74, 0x4F, 0x96, 0x00, 0x74, 0xFE, 0xFB, 0x90,
+0x76, 0x38, 0xB2, 0x80, 0x76, 0xDE, 0xDD, 0x90, 0x78, 0x18, 0x94, 0x80, 0x78, 0xBE, 0xBF, 0x90,
+0x79, 0xF8, 0x76, 0x80, 0x7A, 0x9E, 0xA1, 0x90, 0x7B, 0xD8, 0x58, 0x80, 0x7C, 0x7E, 0x83, 0x90,
+0x7D, 0xB8, 0x3A, 0x80, 0x7E, 0x5E, 0x65, 0x90, 0x7F, 0x98, 0x1C, 0x80, 0x01, 0x00, 0x01, 0x00,
+0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00,
+0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00,
+0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00,
+0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00,
+0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00,
+0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00,
+0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00,
+0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00,
+0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00,
+0xFF, 0xFF, 0x9D, 0x90, 0x00, 0x04, 0xFF, 0xFF, 0xAB, 0xA0, 0x01, 0x00, 0xFF, 0xFF, 0xAB, 0xA0,
+0x01, 0x00, 0xFF, 0xFF, 0x9D, 0x90, 0x00, 0x04, 0x4D, 0x44, 0x54, 0x00, 0x4D, 0x53, 0x54, 0x00,
+0x54, 0x5A, 0x69, 0x66, 0x32, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x00, 0x94, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x08, 0xFF, 0xFF, 0xFF, 0xFF,
+0x9E, 0xA6, 0x3A, 0x90, 0xFF, 0xFF, 0xFF, 0xFF, 0x9F, 0xBB, 0x07, 0x80, 0xFF, 0xFF, 0xFF, 0xFF,
+0xA0, 0x86, 0x1C, 0x90, 0xFF, 0xFF, 0xFF, 0xFF, 0xA1, 0x9A, 0xE9, 0x80, 0xFF, 0xFF, 0xFF, 0xFF,
+0xCB, 0x89, 0x0C, 0x90, 0xFF, 0xFF, 0xFF, 0xFF, 0xD2, 0x61, 0x18, 0x00, 0xFF, 0xFF, 0xFF, 0xFF,
+0xFA, 0xF8, 0x75, 0x10, 0xFF, 0xFF, 0xFF, 0xFF, 0xFB, 0xE8, 0x58, 0x00, 0xFF, 0xFF, 0xFF, 0xFF,
+0xFC, 0xD8, 0x57, 0x10, 0xFF, 0xFF, 0xFF, 0xFF, 0xFD, 0xC8, 0x3A, 0x00, 0xFF, 0xFF, 0xFF, 0xFF,
+0xFE, 0xB8, 0x39, 0x10, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xA8, 0x1C, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x00, 0x98, 0x1B, 0x10, 0x00, 0x00, 0x00, 0x00, 0x01, 0x87, 0xFE, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x02, 0x77, 0xFD, 0x10, 0x00, 0x00, 0x00, 0x00, 0x03, 0x71, 0x1A, 0x80, 0x00, 0x00, 0x00, 0x00,
+0x04, 0x61, 0x19, 0x90, 0x00, 0x00, 0x00, 0x00, 0x05, 0x50, 0xFC, 0x80, 0x00, 0x00, 0x00, 0x00,
+0x06, 0x40, 0xFB, 0x90, 0x00, 0x00, 0x00, 0x00, 0x07, 0x30, 0xDE, 0x80, 0x00, 0x00, 0x00, 0x00,
+0x07, 0x8D, 0x35, 0x90, 0x00, 0x00, 0x00, 0x00, 0x09, 0x10, 0xC0, 0x80, 0x00, 0x00, 0x00, 0x00,
+0x09, 0xAD, 0xB1, 0x10, 0x00, 0x00, 0x00, 0x00, 0x0A, 0xF0, 0xA2, 0x80, 0x00, 0x00, 0x00, 0x00,
+0x0B, 0xE0, 0xA1, 0x90, 0x00, 0x00, 0x00, 0x00, 0x0C, 0xD9, 0xBF, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x0D, 0xC0, 0x83, 0x90, 0x00, 0x00, 0x00, 0x00, 0x0E, 0xB9, 0xA1, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x0F, 0xA9, 0xA0, 0x10, 0x00, 0x00, 0x00, 0x00, 0x10, 0x99, 0x83, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x11, 0x89, 0x82, 0x10, 0x00, 0x00, 0x00, 0x00, 0x12, 0x79, 0x65, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x13, 0x69, 0x64, 0x10, 0x00, 0x00, 0x00, 0x00, 0x14, 0x59, 0x47, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x15, 0x49, 0x46, 0x10, 0x00, 0x00, 0x00, 0x00, 0x16, 0x39, 0x29, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x17, 0x29, 0x28, 0x10, 0x00, 0x00, 0x00, 0x00, 0x18, 0x22, 0x45, 0x80, 0x00, 0x00, 0x00, 0x00,
+0x19, 0x09, 0x0A, 0x10, 0x00, 0x00, 0x00, 0x00, 0x1A, 0x02, 0x27, 0x80, 0x00, 0x00, 0x00, 0x00,
+0x1A, 0xF2, 0x26, 0x90, 0x00, 0x00, 0x00, 0x00, 0x1B, 0xE2, 0x09, 0x80, 0x00, 0x00, 0x00, 0x00,
+0x1C, 0xD2, 0x08, 0x90, 0x00, 0x00, 0x00, 0x00, 0x1D, 0xC1, 0xEB, 0x80, 0x00, 0x00, 0x00, 0x00,
+0x1E, 0xB1, 0xEA, 0x90, 0x00, 0x00, 0x00, 0x00, 0x1F, 0xA1, 0xCD, 0x80, 0x00, 0x00, 0x00, 0x00,
+0x20, 0x76, 0x1D, 0x10, 0x00, 0x00, 0x00, 0x00, 0x21, 0x81, 0xAF, 0x80, 0x00, 0x00, 0x00, 0x00,
+0x22, 0x55, 0xFF, 0x10, 0x00, 0x00, 0x00, 0x00, 0x23, 0x6A, 0xCC, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x24, 0x35, 0xE1, 0x10, 0x00, 0x00, 0x00, 0x00, 0x25, 0x4A, 0xAE, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x26, 0x15, 0xC3, 0x10, 0x00, 0x00, 0x00, 0x00, 0x27, 0x2A, 0x90, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x27, 0xFE, 0xDF, 0x90, 0x00, 0x00, 0x00, 0x00, 0x29, 0x0A, 0x72, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x29, 0xDE, 0xC1, 0x90, 0x00, 0x00, 0x00, 0x00, 0x2A, 0xEA, 0x54, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x2B, 0xBE, 0xA3, 0x90, 0x00, 0x00, 0x00, 0x00, 0x2C, 0xD3, 0x70, 0x80, 0x00, 0x00, 0x00, 0x00,
+0x2D, 0x9E, 0x85, 0x90, 0x00, 0x00, 0x00, 0x00, 0x2E, 0xB3, 0x52, 0x80, 0x00, 0x00, 0x00, 0x00,
+0x2F, 0x7E, 0x67, 0x90, 0x00, 0x00, 0x00, 0x00, 0x30, 0x93, 0x34, 0x80, 0x00, 0x00, 0x00, 0x00,
+0x31, 0x67, 0x84, 0x10, 0x00, 0x00, 0x00, 0x00, 0x32, 0x73, 0x16, 0x80, 0x00, 0x00, 0x00, 0x00,
+0x33, 0x47, 0x66, 0x10, 0x00, 0x00, 0x00, 0x00, 0x34, 0x52, 0xF8, 0x80, 0x00, 0x00, 0x00, 0x00,
+0x35, 0x27, 0x48, 0x10, 0x00, 0x00, 0x00, 0x00, 0x36, 0x32, 0xDA, 0x80, 0x00, 0x00, 0x00, 0x00,
+0x37, 0x07, 0x2A, 0x10, 0x00, 0x00, 0x00, 0x00, 0x38, 0x1B, 0xF7, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x38, 0xE7, 0x0C, 0x10, 0x00, 0x00, 0x00, 0x00, 0x39, 0xFB, 0xD9, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x3A, 0xC6, 0xEE, 0x10, 0x00, 0x00, 0x00, 0x00, 0x3B, 0xDB, 0xBB, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x3C, 0xB0, 0x0A, 0x90, 0x00, 0x00, 0x00, 0x00, 0x3D, 0xBB, 0x9D, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x3E, 0x8F, 0xEC, 0x90, 0x00, 0x00, 0x00, 0x00, 0x3F, 0x9B, 0x7F, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x40, 0x6F, 0xCE, 0x90, 0x00, 0x00, 0x00, 0x00, 0x41, 0x84, 0x9B, 0x80, 0x00, 0x00, 0x00, 0x00,
+0x42, 0x4F, 0xB0, 0x90, 0x00, 0x00, 0x00, 0x00, 0x43, 0x64, 0x7D, 0x80, 0x00, 0x00, 0x00, 0x00,
+0x44, 0x2F, 0x92, 0x90, 0x00, 0x00, 0x00, 0x00, 0x45, 0x44, 0x5F, 0x80, 0x00, 0x00, 0x00, 0x00,
+0x45, 0xF3, 0xC5, 0x10, 0x00, 0x00, 0x00, 0x00, 0x47, 0x2D, 0x7C, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x47, 0xD3, 0xA7, 0x10, 0x00, 0x00, 0x00, 0x00, 0x49, 0x0D, 0x5E, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x49, 0xB3, 0x89, 0x10, 0x00, 0x00, 0x00, 0x00, 0x4A, 0xED, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x4B, 0x9C, 0xA5, 0x90, 0x00, 0x00, 0x00, 0x00, 0x4C, 0xD6, 0x5C, 0x80, 0x00, 0x00, 0x00, 0x00,
+0x4D, 0x7C, 0x87, 0x90, 0x00, 0x00, 0x00, 0x00, 0x4E, 0xB6, 0x3E, 0x80, 0x00, 0x00, 0x00, 0x00,
+0x4F, 0x5C, 0x69, 0x90, 0x00, 0x00, 0x00, 0x00, 0x50, 0x96, 0x20, 0x80, 0x00, 0x00, 0x00, 0x00,
+0x51, 0x3C, 0x4B, 0x90, 0x00, 0x00, 0x00, 0x00, 0x52, 0x76, 0x02, 0x80, 0x00, 0x00, 0x00, 0x00,
+0x53, 0x1C, 0x2D, 0x90, 0x00, 0x00, 0x00, 0x00, 0x54, 0x55, 0xE4, 0x80, 0x00, 0x00, 0x00, 0x00,
+0x54, 0xFC, 0x0F, 0x90, 0x00, 0x00, 0x00, 0x00, 0x56, 0x35, 0xC6, 0x80, 0x00, 0x00, 0x00, 0x00,
+0x56, 0xE5, 0x2C, 0x10, 0x00, 0x00, 0x00, 0x00, 0x58, 0x1E, 0xE3, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x58, 0xC5, 0x0E, 0x10, 0x00, 0x00, 0x00, 0x00, 0x59, 0xFE, 0xC5, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x5A, 0xA4, 0xF0, 0x10, 0x00, 0x00, 0x00, 0x00, 0x5B, 0xDE, 0xA7, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x5C, 0x84, 0xD2, 0x10, 0x00, 0x00, 0x00, 0x00, 0x5D, 0xBE, 0x89, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x5E, 0x64, 0xB4, 0x10, 0x00, 0x00, 0x00, 0x00, 0x5F, 0x9E, 0x6B, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x60, 0x4D, 0xD0, 0x90, 0x00, 0x00, 0x00, 0x00, 0x61, 0x87, 0x87, 0x80, 0x00, 0x00, 0x00, 0x00,
+0x62, 0x2D, 0xB2, 0x90, 0x00, 0x00, 0x00, 0x00, 0x63, 0x67, 0x69, 0x80, 0x00, 0x00, 0x00, 0x00,
+0x64, 0x0D, 0x94, 0x90, 0x00, 0x00, 0x00, 0x00, 0x65, 0x47, 0x4B, 0x80, 0x00, 0x00, 0x00, 0x00,
+0x65, 0xED, 0x76, 0x90, 0x00, 0x00, 0x00, 0x00, 0x67, 0x27, 0x2D, 0x80, 0x00, 0x00, 0x00, 0x00,
+0x67, 0xCD, 0x58, 0x90, 0x00, 0x00, 0x00, 0x00, 0x69, 0x07, 0x0F, 0x80, 0x00, 0x00, 0x00, 0x00,
+0x69, 0xAD, 0x3A, 0x90, 0x00, 0x00, 0x00, 0x00, 0x6A, 0xE6, 0xF1, 0x80, 0x00, 0x00, 0x00, 0x00,
+0x6B, 0x96, 0x57, 0x10, 0x00, 0x00, 0x00, 0x00, 0x6C, 0xD0, 0x0E, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x6D, 0x76, 0x39, 0x10, 0x00, 0x00, 0x00, 0x00, 0x6E, 0xAF, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x6F, 0x56, 0x1B, 0x10, 0x00, 0x00, 0x00, 0x00, 0x70, 0x8F, 0xD2, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x71, 0x35, 0xFD, 0x10, 0x00, 0x00, 0x00, 0x00, 0x72, 0x6F, 0xB4, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x73, 0x15, 0xDF, 0x10, 0x00, 0x00, 0x00, 0x00, 0x74, 0x4F, 0x96, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x74, 0xFE, 0xFB, 0x90, 0x00, 0x00, 0x00, 0x00, 0x76, 0x38, 0xB2, 0x80, 0x00, 0x00, 0x00, 0x00,
+0x76, 0xDE, 0xDD, 0x90, 0x00, 0x00, 0x00, 0x00, 0x78, 0x18, 0x94, 0x80, 0x00, 0x00, 0x00, 0x00,
+0x78, 0xBE, 0xBF, 0x90, 0x00, 0x00, 0x00, 0x00, 0x79, 0xF8, 0x76, 0x80, 0x00, 0x00, 0x00, 0x00,
+0x7A, 0x9E, 0xA1, 0x90, 0x00, 0x00, 0x00, 0x00, 0x7B, 0xD8, 0x58, 0x80, 0x00, 0x00, 0x00, 0x00,
+0x7C, 0x7E, 0x83, 0x90, 0x00, 0x00, 0x00, 0x00, 0x7D, 0xB8, 0x3A, 0x80, 0x00, 0x00, 0x00, 0x00,
+0x7E, 0x5E, 0x65, 0x90, 0x00, 0x00, 0x00, 0x00, 0x7F, 0x98, 0x1C, 0x80, 0x01, 0x00, 0x01, 0x00,
+0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00,
+0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00,
+0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00,
+0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00,
+0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00,
+0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00,
+0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00,
+0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00,
+0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00,
+0xFF, 0xFF, 0x9D, 0x90, 0x00, 0x04, 0xFF, 0xFF, 0xAB, 0xA0, 0x01, 0x00, 0xFF, 0xFF, 0xAB, 0xA0,
+0x01, 0x00, 0xFF, 0xFF, 0x9D, 0x90, 0x00, 0x04, 0x4D, 0x44, 0x54, 0x00, 0x4D, 0x53, 0x54, 0x00,
+0x0A, 0x4D, 0x53, 0x54, 0x37, 0x4D, 0x44, 0x54, 0x2C, 0x4D, 0x33, 0x2E, 0x32, 0x2E, 0x30, 0x2C,
+0x4D, 0x31, 0x31, 0x2E, 0x31, 0x2E, 0x30, 0x0A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x00, 0x00,
/* Navajo */
0x50, 0x48, 0x50, 0x32, 0x00, 0x3F, 0x3F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
@@ -68673,185 +68373,147 @@
/* PST8PDT */
0x50, 0x48, 0x50, 0x32, 0x00, 0x3F, 0x3F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x00,
-0x00, 0x00, 0x00, 0xBA, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x14, 0x80, 0x00, 0x00, 0x00,
-0x9E, 0xA6, 0x48, 0xA0, 0x9F, 0xBB, 0x15, 0x90, 0xA0, 0x86, 0x2A, 0xA0, 0xA1, 0x9A, 0xF7, 0x90,
-0xCB, 0x89, 0x1A, 0xA0, 0xD2, 0x23, 0xF4, 0x70, 0xD2, 0x61, 0x26, 0x10, 0xD6, 0xFE, 0x74, 0x5C,
-0xD8, 0x80, 0xAD, 0x90, 0xDA, 0xFE, 0xC3, 0x90, 0xDB, 0xC0, 0x90, 0x10, 0xDC, 0xDE, 0xA5, 0x90,
-0xDD, 0xA9, 0xAC, 0x90, 0xDE, 0xBE, 0x87, 0x90, 0xDF, 0x89, 0x8E, 0x90, 0xE0, 0x9E, 0x69, 0x90,
-0xE1, 0x69, 0x70, 0x90, 0xE2, 0x7E, 0x4B, 0x90, 0xE3, 0x49, 0x52, 0x90, 0xE4, 0x5E, 0x2D, 0x90,
-0xE5, 0x29, 0x34, 0x90, 0xE6, 0x47, 0x4A, 0x10, 0xE7, 0x12, 0x51, 0x10, 0xE8, 0x27, 0x2C, 0x10,
-0xE8, 0xF2, 0x33, 0x10, 0xEA, 0x07, 0x0E, 0x10, 0xEA, 0xD2, 0x15, 0x10, 0xEB, 0xE6, 0xF0, 0x10,
-0xEC, 0xB1, 0xF7, 0x10, 0xED, 0xC6, 0xD2, 0x10, 0xEE, 0x91, 0xD9, 0x10, 0xEF, 0xAF, 0xEE, 0x90,
-0xF0, 0x71, 0xBB, 0x10, 0xF1, 0x8F, 0xD0, 0x90, 0xF2, 0x7F, 0xC1, 0x90, 0xF3, 0x6F, 0xB2, 0x90,
-0xF4, 0x5F, 0xA3, 0x90, 0xF5, 0x4F, 0x94, 0x90, 0xF6, 0x3F, 0x85, 0x90, 0xF7, 0x2F, 0x76, 0x90,
-0xF8, 0x28, 0xA2, 0x10, 0xF9, 0x0F, 0x58, 0x90, 0xFA, 0x08, 0x84, 0x10, 0xFA, 0xF8, 0x83, 0x20,
-0xFB, 0xE8, 0x66, 0x10, 0xFC, 0xD8, 0x65, 0x20, 0xFD, 0xC8, 0x48, 0x10, 0xFE, 0xB8, 0x47, 0x20,
-0xFF, 0xA8, 0x2A, 0x10, 0x00, 0x98, 0x29, 0x20, 0x01, 0x88, 0x0C, 0x10, 0x02, 0x78, 0x0B, 0x20,
-0x03, 0x71, 0x28, 0x90, 0x04, 0x61, 0x27, 0xA0, 0x05, 0x51, 0x0A, 0x90, 0x06, 0x41, 0x09, 0xA0,
-0x07, 0x30, 0xEC, 0x90, 0x07, 0x8D, 0x43, 0xA0, 0x09, 0x10, 0xCE, 0x90, 0x09, 0xAD, 0xBF, 0x20,
-0x0A, 0xF0, 0xB0, 0x90, 0x0B, 0xE0, 0xAF, 0xA0, 0x0C, 0xD9, 0xCD, 0x10, 0x0D, 0xC0, 0x91, 0xA0,
-0x0E, 0xB9, 0xAF, 0x10, 0x0F, 0xA9, 0xAE, 0x20, 0x10, 0x99, 0x91, 0x10, 0x11, 0x89, 0x90, 0x20,
-0x12, 0x79, 0x73, 0x10, 0x13, 0x69, 0x72, 0x20, 0x14, 0x59, 0x55, 0x10, 0x15, 0x49, 0x54, 0x20,
-0x16, 0x39, 0x37, 0x10, 0x17, 0x29, 0x36, 0x20, 0x18, 0x22, 0x53, 0x90, 0x19, 0x09, 0x18, 0x20,
-0x1A, 0x02, 0x35, 0x90, 0x1A, 0xF2, 0x34, 0xA0, 0x1B, 0xE2, 0x17, 0x90, 0x1C, 0xD2, 0x16, 0xA0,
-0x1D, 0xC1, 0xF9, 0x90, 0x1E, 0xB1, 0xF8, 0xA0, 0x1F, 0xA1, 0xDB, 0x90, 0x20, 0x76, 0x2B, 0x20,
-0x21, 0x81, 0xBD, 0x90, 0x22, 0x56, 0x0D, 0x20, 0x23, 0x6A, 0xDA, 0x10, 0x24, 0x35, 0xEF, 0x20,
-0x25, 0x4A, 0xBC, 0x10, 0x26, 0x15, 0xD1, 0x20, 0x27, 0x2A, 0x9E, 0x10, 0x27, 0xFE, 0xED, 0xA0,
-0x29, 0x0A, 0x80, 0x10, 0x29, 0xDE, 0xCF, 0xA0, 0x2A, 0xEA, 0x62, 0x10, 0x2B, 0xBE, 0xB1, 0xA0,
-0x2C, 0xD3, 0x7E, 0x90, 0x2D, 0x9E, 0x93, 0xA0, 0x2E, 0xB3, 0x60, 0x90, 0x2F, 0x7E, 0x75, 0xA0,
-0x30, 0x93, 0x42, 0x90, 0x31, 0x67, 0x92, 0x20, 0x32, 0x73, 0x24, 0x90, 0x33, 0x47, 0x74, 0x20,
-0x34, 0x53, 0x06, 0x90, 0x35, 0x27, 0x56, 0x20, 0x36, 0x32, 0xE8, 0x90, 0x37, 0x07, 0x38, 0x20,
-0x38, 0x1C, 0x05, 0x10, 0x38, 0xE7, 0x1A, 0x20, 0x39, 0xFB, 0xE7, 0x10, 0x3A, 0xC6, 0xFC, 0x20,
-0x3B, 0xDB, 0xC9, 0x10, 0x3C, 0xB0, 0x18, 0xA0, 0x3D, 0xBB, 0xAB, 0x10, 0x3E, 0x8F, 0xFA, 0xA0,
-0x3F, 0x9B, 0x8D, 0x10, 0x40, 0x6F, 0xDC, 0xA0, 0x41, 0x84, 0xA9, 0x90, 0x42, 0x4F, 0xBE, 0xA0,
-0x43, 0x64, 0x8B, 0x90, 0x44, 0x2F, 0xA0, 0xA0, 0x45, 0x44, 0x6D, 0x90, 0x45, 0xF3, 0xD3, 0x20,
-0x47, 0x2D, 0x8A, 0x10, 0x47, 0xD3, 0xB5, 0x20, 0x49, 0x0D, 0x6C, 0x10, 0x49, 0xB3, 0x97, 0x20,
-0x4A, 0xED, 0x4E, 0x10, 0x4B, 0x9C, 0xB3, 0xA0, 0x4C, 0xD6, 0x6A, 0x90, 0x4D, 0x7C, 0x95, 0xA0,
-0x4E, 0xB6, 0x4C, 0x90, 0x4F, 0x5C, 0x77, 0xA0, 0x50, 0x96, 0x2E, 0x90, 0x51, 0x3C, 0x59, 0xA0,
-0x52, 0x76, 0x10, 0x90, 0x53, 0x1C, 0x3B, 0xA0, 0x54, 0x55, 0xF2, 0x90, 0x54, 0xFC, 0x1D, 0xA0,
-0x56, 0x35, 0xD4, 0x90, 0x56, 0xE5, 0x3A, 0x20, 0x58, 0x1E, 0xF1, 0x10, 0x58, 0xC5, 0x1C, 0x20,
-0x59, 0xFE, 0xD3, 0x10, 0x5A, 0xA4, 0xFE, 0x20, 0x5B, 0xDE, 0xB5, 0x10, 0x5C, 0x84, 0xE0, 0x20,
-0x5D, 0xBE, 0x97, 0x10, 0x5E, 0x64, 0xC2, 0x20, 0x5F, 0x9E, 0x79, 0x10, 0x60, 0x4D, 0xDE, 0xA0,
-0x61, 0x87, 0x95, 0x90, 0x62, 0x2D, 0xC0, 0xA0, 0x63, 0x67, 0x77, 0x90, 0x64, 0x0D, 0xA2, 0xA0,
-0x65, 0x47, 0x59, 0x90, 0x65, 0xED, 0x84, 0xA0, 0x67, 0x27, 0x3B, 0x90, 0x67, 0xCD, 0x66, 0xA0,
-0x69, 0x07, 0x1D, 0x90, 0x69, 0xAD, 0x48, 0xA0, 0x6A, 0xE6, 0xFF, 0x90, 0x6B, 0x96, 0x65, 0x20,
-0x6C, 0xD0, 0x1C, 0x10, 0x6D, 0x76, 0x47, 0x20, 0x6E, 0xAF, 0xFE, 0x10, 0x6F, 0x56, 0x29, 0x20,
-0x70, 0x8F, 0xE0, 0x10, 0x71, 0x36, 0x0B, 0x20, 0x72, 0x6F, 0xC2, 0x10, 0x73, 0x15, 0xED, 0x20,
-0x74, 0x4F, 0xA4, 0x10, 0x74, 0xFF, 0x09, 0xA0, 0x76, 0x38, 0xC0, 0x90, 0x76, 0xDE, 0xEB, 0xA0,
-0x78, 0x18, 0xA2, 0x90, 0x78, 0xBE, 0xCD, 0xA0, 0x79, 0xF8, 0x84, 0x90, 0x7A, 0x9E, 0xAF, 0xA0,
-0x7B, 0xD8, 0x66, 0x90, 0x7C, 0x7E, 0x91, 0xA0, 0x7D, 0xB8, 0x48, 0x90, 0x7E, 0x5E, 0x73, 0xA0,
-0x7F, 0x98, 0x2A, 0x90, 0x05, 0x01, 0x02, 0x01, 0x02, 0x03, 0x04, 0x02, 0x01, 0x02, 0x01, 0x02,
-0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02,
-0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02,
-0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02,
-0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02,
-0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02,
-0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02,
-0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02,
-0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02,
-0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02,
-0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02,
-0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0xFF, 0xFF,
-0x91, 0x26, 0x00, 0x00, 0xFF, 0xFF, 0x9D, 0x90, 0x01, 0x04, 0xFF, 0xFF, 0x8F, 0x80, 0x00, 0x08,
-0xFF, 0xFF, 0x9D, 0x90, 0x01, 0x0C, 0xFF, 0xFF, 0x9D, 0x90, 0x01, 0x10, 0xFF, 0xFF, 0x8F, 0x80,
-0x00, 0x08, 0x4C, 0x4D, 0x54, 0x00, 0x50, 0x44, 0x54, 0x00, 0x50, 0x53, 0x54, 0x00, 0x50, 0x57,
-0x54, 0x00, 0x50, 0x50, 0x54, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00,
-0x01, 0x01, 0x54, 0x5A, 0x69, 0x66, 0x32, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00,
-0x00, 0x00, 0x00, 0x00, 0x00, 0xBA, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x14, 0xFF, 0xFF,
-0xFF, 0xFF, 0x5E, 0x04, 0x1A, 0xC0, 0xFF, 0xFF, 0xFF, 0xFF, 0x9E, 0xA6, 0x48, 0xA0, 0xFF, 0xFF,
-0xFF, 0xFF, 0x9F, 0xBB, 0x15, 0x90, 0xFF, 0xFF, 0xFF, 0xFF, 0xA0, 0x86, 0x2A, 0xA0, 0xFF, 0xFF,
-0xFF, 0xFF, 0xA1, 0x9A, 0xF7, 0x90, 0xFF, 0xFF, 0xFF, 0xFF, 0xCB, 0x89, 0x1A, 0xA0, 0xFF, 0xFF,
-0xFF, 0xFF, 0xD2, 0x23, 0xF4, 0x70, 0xFF, 0xFF, 0xFF, 0xFF, 0xD2, 0x61, 0x26, 0x10, 0xFF, 0xFF,
-0xFF, 0xFF, 0xD6, 0xFE, 0x74, 0x5C, 0xFF, 0xFF, 0xFF, 0xFF, 0xD8, 0x80, 0xAD, 0x90, 0xFF, 0xFF,
-0xFF, 0xFF, 0xDA, 0xFE, 0xC3, 0x90, 0xFF, 0xFF, 0xFF, 0xFF, 0xDB, 0xC0, 0x90, 0x10, 0xFF, 0xFF,
-0xFF, 0xFF, 0xDC, 0xDE, 0xA5, 0x90, 0xFF, 0xFF, 0xFF, 0xFF, 0xDD, 0xA9, 0xAC, 0x90, 0xFF, 0xFF,
-0xFF, 0xFF, 0xDE, 0xBE, 0x87, 0x90, 0xFF, 0xFF, 0xFF, 0xFF, 0xDF, 0x89, 0x8E, 0x90, 0xFF, 0xFF,
-0xFF, 0xFF, 0xE0, 0x9E, 0x69, 0x90, 0xFF, 0xFF, 0xFF, 0xFF, 0xE1, 0x69, 0x70, 0x90, 0xFF, 0xFF,
-0xFF, 0xFF, 0xE2, 0x7E, 0x4B, 0x90, 0xFF, 0xFF, 0xFF, 0xFF, 0xE3, 0x49, 0x52, 0x90, 0xFF, 0xFF,
-0xFF, 0xFF, 0xE4, 0x5E, 0x2D, 0x90, 0xFF, 0xFF, 0xFF, 0xFF, 0xE5, 0x29, 0x34, 0x90, 0xFF, 0xFF,
-0xFF, 0xFF, 0xE6, 0x47, 0x4A, 0x10, 0xFF, 0xFF, 0xFF, 0xFF, 0xE7, 0x12, 0x51, 0x10, 0xFF, 0xFF,
-0xFF, 0xFF, 0xE8, 0x27, 0x2C, 0x10, 0xFF, 0xFF, 0xFF, 0xFF, 0xE8, 0xF2, 0x33, 0x10, 0xFF, 0xFF,
-0xFF, 0xFF, 0xEA, 0x07, 0x0E, 0x10, 0xFF, 0xFF, 0xFF, 0xFF, 0xEA, 0xD2, 0x15, 0x10, 0xFF, 0xFF,
-0xFF, 0xFF, 0xEB, 0xE6, 0xF0, 0x10, 0xFF, 0xFF, 0xFF, 0xFF, 0xEC, 0xB1, 0xF7, 0x10, 0xFF, 0xFF,
-0xFF, 0xFF, 0xED, 0xC6, 0xD2, 0x10, 0xFF, 0xFF, 0xFF, 0xFF, 0xEE, 0x91, 0xD9, 0x10, 0xFF, 0xFF,
-0xFF, 0xFF, 0xEF, 0xAF, 0xEE, 0x90, 0xFF, 0xFF, 0xFF, 0xFF, 0xF0, 0x71, 0xBB, 0x10, 0xFF, 0xFF,
-0xFF, 0xFF, 0xF1, 0x8F, 0xD0, 0x90, 0xFF, 0xFF, 0xFF, 0xFF, 0xF2, 0x7F, 0xC1, 0x90, 0xFF, 0xFF,
-0xFF, 0xFF, 0xF3, 0x6F, 0xB2, 0x90, 0xFF, 0xFF, 0xFF, 0xFF, 0xF4, 0x5F, 0xA3, 0x90, 0xFF, 0xFF,
-0xFF, 0xFF, 0xF5, 0x4F, 0x94, 0x90, 0xFF, 0xFF, 0xFF, 0xFF, 0xF6, 0x3F, 0x85, 0x90, 0xFF, 0xFF,
-0xFF, 0xFF, 0xF7, 0x2F, 0x76, 0x90, 0xFF, 0xFF, 0xFF, 0xFF, 0xF8, 0x28, 0xA2, 0x10, 0xFF, 0xFF,
-0xFF, 0xFF, 0xF9, 0x0F, 0x58, 0x90, 0xFF, 0xFF, 0xFF, 0xFF, 0xFA, 0x08, 0x84, 0x10, 0xFF, 0xFF,
-0xFF, 0xFF, 0xFA, 0xF8, 0x83, 0x20, 0xFF, 0xFF, 0xFF, 0xFF, 0xFB, 0xE8, 0x66, 0x10, 0xFF, 0xFF,
-0xFF, 0xFF, 0xFC, 0xD8, 0x65, 0x20, 0xFF, 0xFF, 0xFF, 0xFF, 0xFD, 0xC8, 0x48, 0x10, 0xFF, 0xFF,
-0xFF, 0xFF, 0xFE, 0xB8, 0x47, 0x20, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xA8, 0x2A, 0x10, 0x00, 0x00,
-0x00, 0x00, 0x00, 0x98, 0x29, 0x20, 0x00, 0x00, 0x00, 0x00, 0x01, 0x88, 0x0C, 0x10, 0x00, 0x00,
-0x00, 0x00, 0x02, 0x78, 0x0B, 0x20, 0x00, 0x00, 0x00, 0x00, 0x03, 0x71, 0x28, 0x90, 0x00, 0x00,
-0x00, 0x00, 0x04, 0x61, 0x27, 0xA0, 0x00, 0x00, 0x00, 0x00, 0x05, 0x51, 0x0A, 0x90, 0x00, 0x00,
-0x00, 0x00, 0x06, 0x41, 0x09, 0xA0, 0x00, 0x00, 0x00, 0x00, 0x07, 0x30, 0xEC, 0x90, 0x00, 0x00,
-0x00, 0x00, 0x07, 0x8D, 0x43, 0xA0, 0x00, 0x00, 0x00, 0x00, 0x09, 0x10, 0xCE, 0x90, 0x00, 0x00,
-0x00, 0x00, 0x09, 0xAD, 0xBF, 0x20, 0x00, 0x00, 0x00, 0x00, 0x0A, 0xF0, 0xB0, 0x90, 0x00, 0x00,
-0x00, 0x00, 0x0B, 0xE0, 0xAF, 0xA0, 0x00, 0x00, 0x00, 0x00, 0x0C, 0xD9, 0xCD, 0x10, 0x00, 0x00,
-0x00, 0x00, 0x0D, 0xC0, 0x91, 0xA0, 0x00, 0x00, 0x00, 0x00, 0x0E, 0xB9, 0xAF, 0x10, 0x00, 0x00,
-0x00, 0x00, 0x0F, 0xA9, 0xAE, 0x20, 0x00, 0x00, 0x00, 0x00, 0x10, 0x99, 0x91, 0x10, 0x00, 0x00,
-0x00, 0x00, 0x11, 0x89, 0x90, 0x20, 0x00, 0x00, 0x00, 0x00, 0x12, 0x79, 0x73, 0x10, 0x00, 0x00,
-0x00, 0x00, 0x13, 0x69, 0x72, 0x20, 0x00, 0x00, 0x00, 0x00, 0x14, 0x59, 0x55, 0x10, 0x00, 0x00,
-0x00, 0x00, 0x15, 0x49, 0x54, 0x20, 0x00, 0x00, 0x00, 0x00, 0x16, 0x39, 0x37, 0x10, 0x00, 0x00,
-0x00, 0x00, 0x17, 0x29, 0x36, 0x20, 0x00, 0x00, 0x00, 0x00, 0x18, 0x22, 0x53, 0x90, 0x00, 0x00,
-0x00, 0x00, 0x19, 0x09, 0x18, 0x20, 0x00, 0x00, 0x00, 0x00, 0x1A, 0x02, 0x35, 0x90, 0x00, 0x00,
-0x00, 0x00, 0x1A, 0xF2, 0x34, 0xA0, 0x00, 0x00, 0x00, 0x00, 0x1B, 0xE2, 0x17, 0x90, 0x00, 0x00,
-0x00, 0x00, 0x1C, 0xD2, 0x16, 0xA0, 0x00, 0x00, 0x00, 0x00, 0x1D, 0xC1, 0xF9, 0x90, 0x00, 0x00,
-0x00, 0x00, 0x1E, 0xB1, 0xF8, 0xA0, 0x00, 0x00, 0x00, 0x00, 0x1F, 0xA1, 0xDB, 0x90, 0x00, 0x00,
-0x00, 0x00, 0x20, 0x76, 0x2B, 0x20, 0x00, 0x00, 0x00, 0x00, 0x21, 0x81, 0xBD, 0x90, 0x00, 0x00,
-0x00, 0x00, 0x22, 0x56, 0x0D, 0x20, 0x00, 0x00, 0x00, 0x00, 0x23, 0x6A, 0xDA, 0x10, 0x00, 0x00,
-0x00, 0x00, 0x24, 0x35, 0xEF, 0x20, 0x00, 0x00, 0x00, 0x00, 0x25, 0x4A, 0xBC, 0x10, 0x00, 0x00,
-0x00, 0x00, 0x26, 0x15, 0xD1, 0x20, 0x00, 0x00, 0x00, 0x00, 0x27, 0x2A, 0x9E, 0x10, 0x00, 0x00,
-0x00, 0x00, 0x27, 0xFE, 0xED, 0xA0, 0x00, 0x00, 0x00, 0x00, 0x29, 0x0A, 0x80, 0x10, 0x00, 0x00,
-0x00, 0x00, 0x29, 0xDE, 0xCF, 0xA0, 0x00, 0x00, 0x00, 0x00, 0x2A, 0xEA, 0x62, 0x10, 0x00, 0x00,
-0x00, 0x00, 0x2B, 0xBE, 0xB1, 0xA0, 0x00, 0x00, 0x00, 0x00, 0x2C, 0xD3, 0x7E, 0x90, 0x00, 0x00,
-0x00, 0x00, 0x2D, 0x9E, 0x93, 0xA0, 0x00, 0x00, 0x00, 0x00, 0x2E, 0xB3, 0x60, 0x90, 0x00, 0x00,
-0x00, 0x00, 0x2F, 0x7E, 0x75, 0xA0, 0x00, 0x00, 0x00, 0x00, 0x30, 0x93, 0x42, 0x90, 0x00, 0x00,
-0x00, 0x00, 0x31, 0x67, 0x92, 0x20, 0x00, 0x00, 0x00, 0x00, 0x32, 0x73, 0x24, 0x90, 0x00, 0x00,
-0x00, 0x00, 0x33, 0x47, 0x74, 0x20, 0x00, 0x00, 0x00, 0x00, 0x34, 0x53, 0x06, 0x90, 0x00, 0x00,
-0x00, 0x00, 0x35, 0x27, 0x56, 0x20, 0x00, 0x00, 0x00, 0x00, 0x36, 0x32, 0xE8, 0x90, 0x00, 0x00,
-0x00, 0x00, 0x37, 0x07, 0x38, 0x20, 0x00, 0x00, 0x00, 0x00, 0x38, 0x1C, 0x05, 0x10, 0x00, 0x00,
-0x00, 0x00, 0x38, 0xE7, 0x1A, 0x20, 0x00, 0x00, 0x00, 0x00, 0x39, 0xFB, 0xE7, 0x10, 0x00, 0x00,
-0x00, 0x00, 0x3A, 0xC6, 0xFC, 0x20, 0x00, 0x00, 0x00, 0x00, 0x3B, 0xDB, 0xC9, 0x10, 0x00, 0x00,
-0x00, 0x00, 0x3C, 0xB0, 0x18, 0xA0, 0x00, 0x00, 0x00, 0x00, 0x3D, 0xBB, 0xAB, 0x10, 0x00, 0x00,
-0x00, 0x00, 0x3E, 0x8F, 0xFA, 0xA0, 0x00, 0x00, 0x00, 0x00, 0x3F, 0x9B, 0x8D, 0x10, 0x00, 0x00,
-0x00, 0x00, 0x40, 0x6F, 0xDC, 0xA0, 0x00, 0x00, 0x00, 0x00, 0x41, 0x84, 0xA9, 0x90, 0x00, 0x00,
-0x00, 0x00, 0x42, 0x4F, 0xBE, 0xA0, 0x00, 0x00, 0x00, 0x00, 0x43, 0x64, 0x8B, 0x90, 0x00, 0x00,
-0x00, 0x00, 0x44, 0x2F, 0xA0, 0xA0, 0x00, 0x00, 0x00, 0x00, 0x45, 0x44, 0x6D, 0x90, 0x00, 0x00,
-0x00, 0x00, 0x45, 0xF3, 0xD3, 0x20, 0x00, 0x00, 0x00, 0x00, 0x47, 0x2D, 0x8A, 0x10, 0x00, 0x00,
-0x00, 0x00, 0x47, 0xD3, 0xB5, 0x20, 0x00, 0x00, 0x00, 0x00, 0x49, 0x0D, 0x6C, 0x10, 0x00, 0x00,
-0x00, 0x00, 0x49, 0xB3, 0x97, 0x20, 0x00, 0x00, 0x00, 0x00, 0x4A, 0xED, 0x4E, 0x10, 0x00, 0x00,
-0x00, 0x00, 0x4B, 0x9C, 0xB3, 0xA0, 0x00, 0x00, 0x00, 0x00, 0x4C, 0xD6, 0x6A, 0x90, 0x00, 0x00,
-0x00, 0x00, 0x4D, 0x7C, 0x95, 0xA0, 0x00, 0x00, 0x00, 0x00, 0x4E, 0xB6, 0x4C, 0x90, 0x00, 0x00,
-0x00, 0x00, 0x4F, 0x5C, 0x77, 0xA0, 0x00, 0x00, 0x00, 0x00, 0x50, 0x96, 0x2E, 0x90, 0x00, 0x00,
-0x00, 0x00, 0x51, 0x3C, 0x59, 0xA0, 0x00, 0x00, 0x00, 0x00, 0x52, 0x76, 0x10, 0x90, 0x00, 0x00,
-0x00, 0x00, 0x53, 0x1C, 0x3B, 0xA0, 0x00, 0x00, 0x00, 0x00, 0x54, 0x55, 0xF2, 0x90, 0x00, 0x00,
-0x00, 0x00, 0x54, 0xFC, 0x1D, 0xA0, 0x00, 0x00, 0x00, 0x00, 0x56, 0x35, 0xD4, 0x90, 0x00, 0x00,
-0x00, 0x00, 0x56, 0xE5, 0x3A, 0x20, 0x00, 0x00, 0x00, 0x00, 0x58, 0x1E, 0xF1, 0x10, 0x00, 0x00,
-0x00, 0x00, 0x58, 0xC5, 0x1C, 0x20, 0x00, 0x00, 0x00, 0x00, 0x59, 0xFE, 0xD3, 0x10, 0x00, 0x00,
-0x00, 0x00, 0x5A, 0xA4, 0xFE, 0x20, 0x00, 0x00, 0x00, 0x00, 0x5B, 0xDE, 0xB5, 0x10, 0x00, 0x00,
-0x00, 0x00, 0x5C, 0x84, 0xE0, 0x20, 0x00, 0x00, 0x00, 0x00, 0x5D, 0xBE, 0x97, 0x10, 0x00, 0x00,
-0x00, 0x00, 0x5E, 0x64, 0xC2, 0x20, 0x00, 0x00, 0x00, 0x00, 0x5F, 0x9E, 0x79, 0x10, 0x00, 0x00,
-0x00, 0x00, 0x60, 0x4D, 0xDE, 0xA0, 0x00, 0x00, 0x00, 0x00, 0x61, 0x87, 0x95, 0x90, 0x00, 0x00,
-0x00, 0x00, 0x62, 0x2D, 0xC0, 0xA0, 0x00, 0x00, 0x00, 0x00, 0x63, 0x67, 0x77, 0x90, 0x00, 0x00,
-0x00, 0x00, 0x64, 0x0D, 0xA2, 0xA0, 0x00, 0x00, 0x00, 0x00, 0x65, 0x47, 0x59, 0x90, 0x00, 0x00,
-0x00, 0x00, 0x65, 0xED, 0x84, 0xA0, 0x00, 0x00, 0x00, 0x00, 0x67, 0x27, 0x3B, 0x90, 0x00, 0x00,
-0x00, 0x00, 0x67, 0xCD, 0x66, 0xA0, 0x00, 0x00, 0x00, 0x00, 0x69, 0x07, 0x1D, 0x90, 0x00, 0x00,
-0x00, 0x00, 0x69, 0xAD, 0x48, 0xA0, 0x00, 0x00, 0x00, 0x00, 0x6A, 0xE6, 0xFF, 0x90, 0x00, 0x00,
-0x00, 0x00, 0x6B, 0x96, 0x65, 0x20, 0x00, 0x00, 0x00, 0x00, 0x6C, 0xD0, 0x1C, 0x10, 0x00, 0x00,
-0x00, 0x00, 0x6D, 0x76, 0x47, 0x20, 0x00, 0x00, 0x00, 0x00, 0x6E, 0xAF, 0xFE, 0x10, 0x00, 0x00,
-0x00, 0x00, 0x6F, 0x56, 0x29, 0x20, 0x00, 0x00, 0x00, 0x00, 0x70, 0x8F, 0xE0, 0x10, 0x00, 0x00,
-0x00, 0x00, 0x71, 0x36, 0x0B, 0x20, 0x00, 0x00, 0x00, 0x00, 0x72, 0x6F, 0xC2, 0x10, 0x00, 0x00,
-0x00, 0x00, 0x73, 0x15, 0xED, 0x20, 0x00, 0x00, 0x00, 0x00, 0x74, 0x4F, 0xA4, 0x10, 0x00, 0x00,
-0x00, 0x00, 0x74, 0xFF, 0x09, 0xA0, 0x00, 0x00, 0x00, 0x00, 0x76, 0x38, 0xC0, 0x90, 0x00, 0x00,
-0x00, 0x00, 0x76, 0xDE, 0xEB, 0xA0, 0x00, 0x00, 0x00, 0x00, 0x78, 0x18, 0xA2, 0x90, 0x00, 0x00,
-0x00, 0x00, 0x78, 0xBE, 0xCD, 0xA0, 0x00, 0x00, 0x00, 0x00, 0x79, 0xF8, 0x84, 0x90, 0x00, 0x00,
-0x00, 0x00, 0x7A, 0x9E, 0xAF, 0xA0, 0x00, 0x00, 0x00, 0x00, 0x7B, 0xD8, 0x66, 0x90, 0x00, 0x00,
-0x00, 0x00, 0x7C, 0x7E, 0x91, 0xA0, 0x00, 0x00, 0x00, 0x00, 0x7D, 0xB8, 0x48, 0x90, 0x00, 0x00,
-0x00, 0x00, 0x7E, 0x5E, 0x73, 0xA0, 0x00, 0x00, 0x00, 0x00, 0x7F, 0x98, 0x2A, 0x90, 0x05, 0x01,
-0x02, 0x01, 0x02, 0x03, 0x04, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02,
-0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02,
-0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02,
-0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02,
-0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02,
-0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02,
-0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02,
-0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02,
-0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02,
-0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02,
-0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02,
-0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0xFF, 0xFF, 0x91, 0x26, 0x00, 0x00, 0xFF, 0xFF,
-0x9D, 0x90, 0x01, 0x04, 0xFF, 0xFF, 0x8F, 0x80, 0x00, 0x08, 0xFF, 0xFF, 0x9D, 0x90, 0x01, 0x0C,
-0xFF, 0xFF, 0x9D, 0x90, 0x01, 0x10, 0xFF, 0xFF, 0x8F, 0x80, 0x00, 0x08, 0x4C, 0x4D, 0x54, 0x00,
-0x50, 0x44, 0x54, 0x00, 0x50, 0x53, 0x54, 0x00, 0x50, 0x57, 0x54, 0x00, 0x50, 0x50, 0x54, 0x00,
-0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x0A, 0x50, 0x53, 0x54,
-0x38, 0x50, 0x44, 0x54, 0x2C, 0x4D, 0x33, 0x2E, 0x32, 0x2E, 0x30, 0x2C, 0x4D, 0x31, 0x31, 0x2E,
-0x31, 0x2E, 0x30, 0x0A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x00, 0x94, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x08, 0x9E, 0xA6, 0x48, 0xA0,
+0x9F, 0xBB, 0x15, 0x90, 0xA0, 0x86, 0x2A, 0xA0, 0xA1, 0x9A, 0xF7, 0x90, 0xCB, 0x89, 0x1A, 0xA0,
+0xD2, 0x61, 0x26, 0x10, 0xFA, 0xF8, 0x83, 0x20, 0xFB, 0xE8, 0x66, 0x10, 0xFC, 0xD8, 0x65, 0x20,
+0xFD, 0xC8, 0x48, 0x10, 0xFE, 0xB8, 0x47, 0x20, 0xFF, 0xA8, 0x2A, 0x10, 0x00, 0x98, 0x29, 0x20,
+0x01, 0x88, 0x0C, 0x10, 0x02, 0x78, 0x0B, 0x20, 0x03, 0x71, 0x28, 0x90, 0x04, 0x61, 0x27, 0xA0,
+0x05, 0x51, 0x0A, 0x90, 0x06, 0x41, 0x09, 0xA0, 0x07, 0x30, 0xEC, 0x90, 0x07, 0x8D, 0x43, 0xA0,
+0x09, 0x10, 0xCE, 0x90, 0x09, 0xAD, 0xBF, 0x20, 0x0A, 0xF0, 0xB0, 0x90, 0x0B, 0xE0, 0xAF, 0xA0,
+0x0C, 0xD9, 0xCD, 0x10, 0x0D, 0xC0, 0x91, 0xA0, 0x0E, 0xB9, 0xAF, 0x10, 0x0F, 0xA9, 0xAE, 0x20,
+0x10, 0x99, 0x91, 0x10, 0x11, 0x89, 0x90, 0x20, 0x12, 0x79, 0x73, 0x10, 0x13, 0x69, 0x72, 0x20,
+0x14, 0x59, 0x55, 0x10, 0x15, 0x49, 0x54, 0x20, 0x16, 0x39, 0x37, 0x10, 0x17, 0x29, 0x36, 0x20,
+0x18, 0x22, 0x53, 0x90, 0x19, 0x09, 0x18, 0x20, 0x1A, 0x02, 0x35, 0x90, 0x1A, 0xF2, 0x34, 0xA0,
+0x1B, 0xE2, 0x17, 0x90, 0x1C, 0xD2, 0x16, 0xA0, 0x1D, 0xC1, 0xF9, 0x90, 0x1E, 0xB1, 0xF8, 0xA0,
+0x1F, 0xA1, 0xDB, 0x90, 0x20, 0x76, 0x2B, 0x20, 0x21, 0x81, 0xBD, 0x90, 0x22, 0x56, 0x0D, 0x20,
+0x23, 0x6A, 0xDA, 0x10, 0x24, 0x35, 0xEF, 0x20, 0x25, 0x4A, 0xBC, 0x10, 0x26, 0x15, 0xD1, 0x20,
+0x27, 0x2A, 0x9E, 0x10, 0x27, 0xFE, 0xED, 0xA0, 0x29, 0x0A, 0x80, 0x10, 0x29, 0xDE, 0xCF, 0xA0,
+0x2A, 0xEA, 0x62, 0x10, 0x2B, 0xBE, 0xB1, 0xA0, 0x2C, 0xD3, 0x7E, 0x90, 0x2D, 0x9E, 0x93, 0xA0,
+0x2E, 0xB3, 0x60, 0x90, 0x2F, 0x7E, 0x75, 0xA0, 0x30, 0x93, 0x42, 0x90, 0x31, 0x67, 0x92, 0x20,
+0x32, 0x73, 0x24, 0x90, 0x33, 0x47, 0x74, 0x20, 0x34, 0x53, 0x06, 0x90, 0x35, 0x27, 0x56, 0x20,
+0x36, 0x32, 0xE8, 0x90, 0x37, 0x07, 0x38, 0x20, 0x38, 0x1C, 0x05, 0x10, 0x38, 0xE7, 0x1A, 0x20,
+0x39, 0xFB, 0xE7, 0x10, 0x3A, 0xC6, 0xFC, 0x20, 0x3B, 0xDB, 0xC9, 0x10, 0x3C, 0xB0, 0x18, 0xA0,
+0x3D, 0xBB, 0xAB, 0x10, 0x3E, 0x8F, 0xFA, 0xA0, 0x3F, 0x9B, 0x8D, 0x10, 0x40, 0x6F, 0xDC, 0xA0,
+0x41, 0x84, 0xA9, 0x90, 0x42, 0x4F, 0xBE, 0xA0, 0x43, 0x64, 0x8B, 0x90, 0x44, 0x2F, 0xA0, 0xA0,
+0x45, 0x44, 0x6D, 0x90, 0x45, 0xF3, 0xD3, 0x20, 0x47, 0x2D, 0x8A, 0x10, 0x47, 0xD3, 0xB5, 0x20,
+0x49, 0x0D, 0x6C, 0x10, 0x49, 0xB3, 0x97, 0x20, 0x4A, 0xED, 0x4E, 0x10, 0x4B, 0x9C, 0xB3, 0xA0,
+0x4C, 0xD6, 0x6A, 0x90, 0x4D, 0x7C, 0x95, 0xA0, 0x4E, 0xB6, 0x4C, 0x90, 0x4F, 0x5C, 0x77, 0xA0,
+0x50, 0x96, 0x2E, 0x90, 0x51, 0x3C, 0x59, 0xA0, 0x52, 0x76, 0x10, 0x90, 0x53, 0x1C, 0x3B, 0xA0,
+0x54, 0x55, 0xF2, 0x90, 0x54, 0xFC, 0x1D, 0xA0, 0x56, 0x35, 0xD4, 0x90, 0x56, 0xE5, 0x3A, 0x20,
+0x58, 0x1E, 0xF1, 0x10, 0x58, 0xC5, 0x1C, 0x20, 0x59, 0xFE, 0xD3, 0x10, 0x5A, 0xA4, 0xFE, 0x20,
+0x5B, 0xDE, 0xB5, 0x10, 0x5C, 0x84, 0xE0, 0x20, 0x5D, 0xBE, 0x97, 0x10, 0x5E, 0x64, 0xC2, 0x20,
+0x5F, 0x9E, 0x79, 0x10, 0x60, 0x4D, 0xDE, 0xA0, 0x61, 0x87, 0x95, 0x90, 0x62, 0x2D, 0xC0, 0xA0,
+0x63, 0x67, 0x77, 0x90, 0x64, 0x0D, 0xA2, 0xA0, 0x65, 0x47, 0x59, 0x90, 0x65, 0xED, 0x84, 0xA0,
+0x67, 0x27, 0x3B, 0x90, 0x67, 0xCD, 0x66, 0xA0, 0x69, 0x07, 0x1D, 0x90, 0x69, 0xAD, 0x48, 0xA0,
+0x6A, 0xE6, 0xFF, 0x90, 0x6B, 0x96, 0x65, 0x20, 0x6C, 0xD0, 0x1C, 0x10, 0x6D, 0x76, 0x47, 0x20,
+0x6E, 0xAF, 0xFE, 0x10, 0x6F, 0x56, 0x29, 0x20, 0x70, 0x8F, 0xE0, 0x10, 0x71, 0x36, 0x0B, 0x20,
+0x72, 0x6F, 0xC2, 0x10, 0x73, 0x15, 0xED, 0x20, 0x74, 0x4F, 0xA4, 0x10, 0x74, 0xFF, 0x09, 0xA0,
+0x76, 0x38, 0xC0, 0x90, 0x76, 0xDE, 0xEB, 0xA0, 0x78, 0x18, 0xA2, 0x90, 0x78, 0xBE, 0xCD, 0xA0,
+0x79, 0xF8, 0x84, 0x90, 0x7A, 0x9E, 0xAF, 0xA0, 0x7B, 0xD8, 0x66, 0x90, 0x7C, 0x7E, 0x91, 0xA0,
+0x7D, 0xB8, 0x48, 0x90, 0x7E, 0x5E, 0x73, 0xA0, 0x7F, 0x98, 0x2A, 0x90, 0x01, 0x00, 0x01, 0x00,
+0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00,
+0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00,
+0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00,
+0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00,
+0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00,
+0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00,
+0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00,
+0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00,
+0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00,
+0xFF, 0xFF, 0x8F, 0x80, 0x00, 0x04, 0xFF, 0xFF, 0x9D, 0x90, 0x01, 0x00, 0xFF, 0xFF, 0x9D, 0x90,
+0x01, 0x00, 0xFF, 0xFF, 0x8F, 0x80, 0x00, 0x04, 0x50, 0x44, 0x54, 0x00, 0x50, 0x53, 0x54, 0x00,
+0x54, 0x5A, 0x69, 0x66, 0x32, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x00, 0x94, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x08, 0xFF, 0xFF, 0xFF, 0xFF,
+0x9E, 0xA6, 0x48, 0xA0, 0xFF, 0xFF, 0xFF, 0xFF, 0x9F, 0xBB, 0x15, 0x90, 0xFF, 0xFF, 0xFF, 0xFF,
+0xA0, 0x86, 0x2A, 0xA0, 0xFF, 0xFF, 0xFF, 0xFF, 0xA1, 0x9A, 0xF7, 0x90, 0xFF, 0xFF, 0xFF, 0xFF,
+0xCB, 0x89, 0x1A, 0xA0, 0xFF, 0xFF, 0xFF, 0xFF, 0xD2, 0x61, 0x26, 0x10, 0xFF, 0xFF, 0xFF, 0xFF,
+0xFA, 0xF8, 0x83, 0x20, 0xFF, 0xFF, 0xFF, 0xFF, 0xFB, 0xE8, 0x66, 0x10, 0xFF, 0xFF, 0xFF, 0xFF,
+0xFC, 0xD8, 0x65, 0x20, 0xFF, 0xFF, 0xFF, 0xFF, 0xFD, 0xC8, 0x48, 0x10, 0xFF, 0xFF, 0xFF, 0xFF,
+0xFE, 0xB8, 0x47, 0x20, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xA8, 0x2A, 0x10, 0x00, 0x00, 0x00, 0x00,
+0x00, 0x98, 0x29, 0x20, 0x00, 0x00, 0x00, 0x00, 0x01, 0x88, 0x0C, 0x10, 0x00, 0x00, 0x00, 0x00,
+0x02, 0x78, 0x0B, 0x20, 0x00, 0x00, 0x00, 0x00, 0x03, 0x71, 0x28, 0x90, 0x00, 0x00, 0x00, 0x00,
+0x04, 0x61, 0x27, 0xA0, 0x00, 0x00, 0x00, 0x00, 0x05, 0x51, 0x0A, 0x90, 0x00, 0x00, 0x00, 0x00,
+0x06, 0x41, 0x09, 0xA0, 0x00, 0x00, 0x00, 0x00, 0x07, 0x30, 0xEC, 0x90, 0x00, 0x00, 0x00, 0x00,
+0x07, 0x8D, 0x43, 0xA0, 0x00, 0x00, 0x00, 0x00, 0x09, 0x10, 0xCE, 0x90, 0x00, 0x00, 0x00, 0x00,
+0x09, 0xAD, 0xBF, 0x20, 0x00, 0x00, 0x00, 0x00, 0x0A, 0xF0, 0xB0, 0x90, 0x00, 0x00, 0x00, 0x00,
+0x0B, 0xE0, 0xAF, 0xA0, 0x00, 0x00, 0x00, 0x00, 0x0C, 0xD9, 0xCD, 0x10, 0x00, 0x00, 0x00, 0x00,
+0x0D, 0xC0, 0x91, 0xA0, 0x00, 0x00, 0x00, 0x00, 0x0E, 0xB9, 0xAF, 0x10, 0x00, 0x00, 0x00, 0x00,
+0x0F, 0xA9, 0xAE, 0x20, 0x00, 0x00, 0x00, 0x00, 0x10, 0x99, 0x91, 0x10, 0x00, 0x00, 0x00, 0x00,
+0x11, 0x89, 0x90, 0x20, 0x00, 0x00, 0x00, 0x00, 0x12, 0x79, 0x73, 0x10, 0x00, 0x00, 0x00, 0x00,
+0x13, 0x69, 0x72, 0x20, 0x00, 0x00, 0x00, 0x00, 0x14, 0x59, 0x55, 0x10, 0x00, 0x00, 0x00, 0x00,
+0x15, 0x49, 0x54, 0x20, 0x00, 0x00, 0x00, 0x00, 0x16, 0x39, 0x37, 0x10, 0x00, 0x00, 0x00, 0x00,
+0x17, 0x29, 0x36, 0x20, 0x00, 0x00, 0x00, 0x00, 0x18, 0x22, 0x53, 0x90, 0x00, 0x00, 0x00, 0x00,
+0x19, 0x09, 0x18, 0x20, 0x00, 0x00, 0x00, 0x00, 0x1A, 0x02, 0x35, 0x90, 0x00, 0x00, 0x00, 0x00,
+0x1A, 0xF2, 0x34, 0xA0, 0x00, 0x00, 0x00, 0x00, 0x1B, 0xE2, 0x17, 0x90, 0x00, 0x00, 0x00, 0x00,
+0x1C, 0xD2, 0x16, 0xA0, 0x00, 0x00, 0x00, 0x00, 0x1D, 0xC1, 0xF9, 0x90, 0x00, 0x00, 0x00, 0x00,
+0x1E, 0xB1, 0xF8, 0xA0, 0x00, 0x00, 0x00, 0x00, 0x1F, 0xA1, 0xDB, 0x90, 0x00, 0x00, 0x00, 0x00,
+0x20, 0x76, 0x2B, 0x20, 0x00, 0x00, 0x00, 0x00, 0x21, 0x81, 0xBD, 0x90, 0x00, 0x00, 0x00, 0x00,
+0x22, 0x56, 0x0D, 0x20, 0x00, 0x00, 0x00, 0x00, 0x23, 0x6A, 0xDA, 0x10, 0x00, 0x00, 0x00, 0x00,
+0x24, 0x35, 0xEF, 0x20, 0x00, 0x00, 0x00, 0x00, 0x25, 0x4A, 0xBC, 0x10, 0x00, 0x00, 0x00, 0x00,
+0x26, 0x15, 0xD1, 0x20, 0x00, 0x00, 0x00, 0x00, 0x27, 0x2A, 0x9E, 0x10, 0x00, 0x00, 0x00, 0x00,
+0x27, 0xFE, 0xED, 0xA0, 0x00, 0x00, 0x00, 0x00, 0x29, 0x0A, 0x80, 0x10, 0x00, 0x00, 0x00, 0x00,
+0x29, 0xDE, 0xCF, 0xA0, 0x00, 0x00, 0x00, 0x00, 0x2A, 0xEA, 0x62, 0x10, 0x00, 0x00, 0x00, 0x00,
+0x2B, 0xBE, 0xB1, 0xA0, 0x00, 0x00, 0x00, 0x00, 0x2C, 0xD3, 0x7E, 0x90, 0x00, 0x00, 0x00, 0x00,
+0x2D, 0x9E, 0x93, 0xA0, 0x00, 0x00, 0x00, 0x00, 0x2E, 0xB3, 0x60, 0x90, 0x00, 0x00, 0x00, 0x00,
+0x2F, 0x7E, 0x75, 0xA0, 0x00, 0x00, 0x00, 0x00, 0x30, 0x93, 0x42, 0x90, 0x00, 0x00, 0x00, 0x00,
+0x31, 0x67, 0x92, 0x20, 0x00, 0x00, 0x00, 0x00, 0x32, 0x73, 0x24, 0x90, 0x00, 0x00, 0x00, 0x00,
+0x33, 0x47, 0x74, 0x20, 0x00, 0x00, 0x00, 0x00, 0x34, 0x53, 0x06, 0x90, 0x00, 0x00, 0x00, 0x00,
+0x35, 0x27, 0x56, 0x20, 0x00, 0x00, 0x00, 0x00, 0x36, 0x32, 0xE8, 0x90, 0x00, 0x00, 0x00, 0x00,
+0x37, 0x07, 0x38, 0x20, 0x00, 0x00, 0x00, 0x00, 0x38, 0x1C, 0x05, 0x10, 0x00, 0x00, 0x00, 0x00,
+0x38, 0xE7, 0x1A, 0x20, 0x00, 0x00, 0x00, 0x00, 0x39, 0xFB, 0xE7, 0x10, 0x00, 0x00, 0x00, 0x00,
+0x3A, 0xC6, 0xFC, 0x20, 0x00, 0x00, 0x00, 0x00, 0x3B, 0xDB, 0xC9, 0x10, 0x00, 0x00, 0x00, 0x00,
+0x3C, 0xB0, 0x18, 0xA0, 0x00, 0x00, 0x00, 0x00, 0x3D, 0xBB, 0xAB, 0x10, 0x00, 0x00, 0x00, 0x00,
+0x3E, 0x8F, 0xFA, 0xA0, 0x00, 0x00, 0x00, 0x00, 0x3F, 0x9B, 0x8D, 0x10, 0x00, 0x00, 0x00, 0x00,
+0x40, 0x6F, 0xDC, 0xA0, 0x00, 0x00, 0x00, 0x00, 0x41, 0x84, 0xA9, 0x90, 0x00, 0x00, 0x00, 0x00,
+0x42, 0x4F, 0xBE, 0xA0, 0x00, 0x00, 0x00, 0x00, 0x43, 0x64, 0x8B, 0x90, 0x00, 0x00, 0x00, 0x00,
+0x44, 0x2F, 0xA0, 0xA0, 0x00, 0x00, 0x00, 0x00, 0x45, 0x44, 0x6D, 0x90, 0x00, 0x00, 0x00, 0x00,
+0x45, 0xF3, 0xD3, 0x20, 0x00, 0x00, 0x00, 0x00, 0x47, 0x2D, 0x8A, 0x10, 0x00, 0x00, 0x00, 0x00,
+0x47, 0xD3, 0xB5, 0x20, 0x00, 0x00, 0x00, 0x00, 0x49, 0x0D, 0x6C, 0x10, 0x00, 0x00, 0x00, 0x00,
+0x49, 0xB3, 0x97, 0x20, 0x00, 0x00, 0x00, 0x00, 0x4A, 0xED, 0x4E, 0x10, 0x00, 0x00, 0x00, 0x00,
+0x4B, 0x9C, 0xB3, 0xA0, 0x00, 0x00, 0x00, 0x00, 0x4C, 0xD6, 0x6A, 0x90, 0x00, 0x00, 0x00, 0x00,
+0x4D, 0x7C, 0x95, 0xA0, 0x00, 0x00, 0x00, 0x00, 0x4E, 0xB6, 0x4C, 0x90, 0x00, 0x00, 0x00, 0x00,
+0x4F, 0x5C, 0x77, 0xA0, 0x00, 0x00, 0x00, 0x00, 0x50, 0x96, 0x2E, 0x90, 0x00, 0x00, 0x00, 0x00,
+0x51, 0x3C, 0x59, 0xA0, 0x00, 0x00, 0x00, 0x00, 0x52, 0x76, 0x10, 0x90, 0x00, 0x00, 0x00, 0x00,
+0x53, 0x1C, 0x3B, 0xA0, 0x00, 0x00, 0x00, 0x00, 0x54, 0x55, 0xF2, 0x90, 0x00, 0x00, 0x00, 0x00,
+0x54, 0xFC, 0x1D, 0xA0, 0x00, 0x00, 0x00, 0x00, 0x56, 0x35, 0xD4, 0x90, 0x00, 0x00, 0x00, 0x00,
+0x56, 0xE5, 0x3A, 0x20, 0x00, 0x00, 0x00, 0x00, 0x58, 0x1E, 0xF1, 0x10, 0x00, 0x00, 0x00, 0x00,
+0x58, 0xC5, 0x1C, 0x20, 0x00, 0x00, 0x00, 0x00, 0x59, 0xFE, 0xD3, 0x10, 0x00, 0x00, 0x00, 0x00,
+0x5A, 0xA4, 0xFE, 0x20, 0x00, 0x00, 0x00, 0x00, 0x5B, 0xDE, 0xB5, 0x10, 0x00, 0x00, 0x00, 0x00,
+0x5C, 0x84, 0xE0, 0x20, 0x00, 0x00, 0x00, 0x00, 0x5D, 0xBE, 0x97, 0x10, 0x00, 0x00, 0x00, 0x00,
+0x5E, 0x64, 0xC2, 0x20, 0x00, 0x00, 0x00, 0x00, 0x5F, 0x9E, 0x79, 0x10, 0x00, 0x00, 0x00, 0x00,
+0x60, 0x4D, 0xDE, 0xA0, 0x00, 0x00, 0x00, 0x00, 0x61, 0x87, 0x95, 0x90, 0x00, 0x00, 0x00, 0x00,
+0x62, 0x2D, 0xC0, 0xA0, 0x00, 0x00, 0x00, 0x00, 0x63, 0x67, 0x77, 0x90, 0x00, 0x00, 0x00, 0x00,
+0x64, 0x0D, 0xA2, 0xA0, 0x00, 0x00, 0x00, 0x00, 0x65, 0x47, 0x59, 0x90, 0x00, 0x00, 0x00, 0x00,
+0x65, 0xED, 0x84, 0xA0, 0x00, 0x00, 0x00, 0x00, 0x67, 0x27, 0x3B, 0x90, 0x00, 0x00, 0x00, 0x00,
+0x67, 0xCD, 0x66, 0xA0, 0x00, 0x00, 0x00, 0x00, 0x69, 0x07, 0x1D, 0x90, 0x00, 0x00, 0x00, 0x00,
+0x69, 0xAD, 0x48, 0xA0, 0x00, 0x00, 0x00, 0x00, 0x6A, 0xE6, 0xFF, 0x90, 0x00, 0x00, 0x00, 0x00,
+0x6B, 0x96, 0x65, 0x20, 0x00, 0x00, 0x00, 0x00, 0x6C, 0xD0, 0x1C, 0x10, 0x00, 0x00, 0x00, 0x00,
+0x6D, 0x76, 0x47, 0x20, 0x00, 0x00, 0x00, 0x00, 0x6E, 0xAF, 0xFE, 0x10, 0x00, 0x00, 0x00, 0x00,
+0x6F, 0x56, 0x29, 0x20, 0x00, 0x00, 0x00, 0x00, 0x70, 0x8F, 0xE0, 0x10, 0x00, 0x00, 0x00, 0x00,
+0x71, 0x36, 0x0B, 0x20, 0x00, 0x00, 0x00, 0x00, 0x72, 0x6F, 0xC2, 0x10, 0x00, 0x00, 0x00, 0x00,
+0x73, 0x15, 0xED, 0x20, 0x00, 0x00, 0x00, 0x00, 0x74, 0x4F, 0xA4, 0x10, 0x00, 0x00, 0x00, 0x00,
+0x74, 0xFF, 0x09, 0xA0, 0x00, 0x00, 0x00, 0x00, 0x76, 0x38, 0xC0, 0x90, 0x00, 0x00, 0x00, 0x00,
+0x76, 0xDE, 0xEB, 0xA0, 0x00, 0x00, 0x00, 0x00, 0x78, 0x18, 0xA2, 0x90, 0x00, 0x00, 0x00, 0x00,
+0x78, 0xBE, 0xCD, 0xA0, 0x00, 0x00, 0x00, 0x00, 0x79, 0xF8, 0x84, 0x90, 0x00, 0x00, 0x00, 0x00,
+0x7A, 0x9E, 0xAF, 0xA0, 0x00, 0x00, 0x00, 0x00, 0x7B, 0xD8, 0x66, 0x90, 0x00, 0x00, 0x00, 0x00,
+0x7C, 0x7E, 0x91, 0xA0, 0x00, 0x00, 0x00, 0x00, 0x7D, 0xB8, 0x48, 0x90, 0x00, 0x00, 0x00, 0x00,
+0x7E, 0x5E, 0x73, 0xA0, 0x00, 0x00, 0x00, 0x00, 0x7F, 0x98, 0x2A, 0x90, 0x01, 0x00, 0x01, 0x00,
+0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00,
+0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00,
+0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00,
+0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00,
+0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00,
+0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00,
+0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00,
+0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00,
+0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00,
+0xFF, 0xFF, 0x8F, 0x80, 0x00, 0x04, 0xFF, 0xFF, 0x9D, 0x90, 0x01, 0x00, 0xFF, 0xFF, 0x9D, 0x90,
+0x01, 0x00, 0xFF, 0xFF, 0x8F, 0x80, 0x00, 0x04, 0x50, 0x44, 0x54, 0x00, 0x50, 0x53, 0x54, 0x00,
+0x0A, 0x50, 0x53, 0x54, 0x38, 0x50, 0x44, 0x54, 0x2C, 0x4D, 0x33, 0x2E, 0x32, 0x2E, 0x30, 0x2C,
+0x4D, 0x31, 0x31, 0x2E, 0x31, 0x2E, 0x30, 0x0A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x00, 0x00,
/* ROC */
0x50, 0x48, 0x50, 0x32, 0x00, 0x3F, 0x3F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
@@ -69264,8 +68926,8 @@
0x1A, 0xFF, 0xFF, 0x8F, 0x80, 0x01, 0x1E, 0xFF, 0xFF, 0x81, 0x70, 0x00, 0x23, 0x4C, 0x4D, 0x54,
0x00, 0x41, 0x53, 0x54, 0x00, 0x41, 0x57, 0x54, 0x00, 0x41, 0x50, 0x54, 0x00, 0x41, 0x48, 0x53,
0x54, 0x00, 0x41, 0x48, 0x44, 0x54, 0x00, 0x59, 0x53, 0x54, 0x00, 0x41, 0x4B, 0x44, 0x54, 0x00,
-0x41, 0x4B, 0x53, 0x54, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0A, 0x41, 0x4B, 0x53, 0x54, 0x39, 0x41,
+0x41, 0x4B, 0x53, 0x54, 0x00, 0x00, 0x01, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x01, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0A, 0x41, 0x4B, 0x53, 0x54, 0x39, 0x41,
0x4B, 0x44, 0x54, 0x2C, 0x4D, 0x33, 0x2E, 0x32, 0x2E, 0x30, 0x2C, 0x4D, 0x31, 0x31, 0x2E, 0x31,
0x2E, 0x30, 0x0A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
@@ -69414,8 +69076,8 @@
0x73, 0x60, 0x01, 0x14, 0xFF, 0xFF, 0x73, 0x60, 0x00, 0x18, 0xFF, 0xFF, 0x81, 0x70, 0x01, 0x1D,
0xFF, 0xFF, 0x73, 0x60, 0x00, 0x19, 0x4C, 0x4D, 0x54, 0x00, 0x4E, 0x53, 0x54, 0x00, 0x4E, 0x57,
0x54, 0x00, 0x4E, 0x50, 0x54, 0x00, 0x42, 0x53, 0x54, 0x00, 0x42, 0x44, 0x54, 0x00, 0x41, 0x48,
-0x53, 0x54, 0x00, 0x48, 0x44, 0x54, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00,
-0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0A, 0x48, 0x53, 0x54, 0x31,
+0x53, 0x54, 0x00, 0x48, 0x44, 0x54, 0x00, 0x00, 0x01, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x01, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0A, 0x48, 0x53, 0x54, 0x31,
0x30, 0x48, 0x44, 0x54, 0x2C, 0x4D, 0x33, 0x2E, 0x32, 0x2E, 0x30, 0x2C, 0x4D, 0x31, 0x31, 0x2E,
0x31, 0x2E, 0x30, 0x0A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
@@ -71028,4 +70690,4 @@
};
#endif
-const timelib_tzdb timezonedb_builtin = { "2026.3", 598, timezonedb_idx_builtin, timelib_timezone_db_data_builtin };
+const timelib_tzdb timezonedb_builtin = { "2026.5", 598, timezonedb_idx_builtin, timelib_timezone_db_data_builtin };
diff -Nru php8.4-8.4.26/ext/date/tests/bug35499.phpt php8.4-8.4.27/ext/date/tests/bug35499.phpt
--- php8.4-8.4.26/ext/date/tests/bug35499.phpt 2026-09-22 15:00:02.000000000 +0000
+++ php8.4-8.4.27/ext/date/tests/bug35499.phpt 2026-10-19 14:38:59.000000000 +0000
@@ -69,9 +69,11 @@
array(0) {
}
["error_count"]=>
- int(0)
+ int(1)
["errors"]=>
- array(0) {
+ array(1) {
+ [0]=>
+ string(12) "Empty string"
}
["is_localtime"]=>
bool(false)
diff -Nru php8.4-8.4.26/ext/date/tests/oom_date_create.phpt php8.4-8.4.27/ext/date/tests/oom_date_create.phpt
--- php8.4-8.4.26/ext/date/tests/oom_date_create.phpt 1970-01-01 00:00:00.000000000 +0000
+++ php8.4-8.4.27/ext/date/tests/oom_date_create.phpt 2026-10-19 14:38:59.000000000 +0000
@@ -0,0 +1,10 @@
+--TEST--
+date_create() doesn't reach hard limit
+--INI--
+memory_limit=64M
+--FILE--
+
+--EXPECT--
+bool(false)
diff -Nru php8.4-8.4.26/ext/date/tests/oom_date_create_immutable.phpt php8.4-8.4.27/ext/date/tests/oom_date_create_immutable.phpt
--- php8.4-8.4.26/ext/date/tests/oom_date_create_immutable.phpt 1970-01-01 00:00:00.000000000 +0000
+++ php8.4-8.4.27/ext/date/tests/oom_date_create_immutable.phpt 2026-10-19 14:38:59.000000000 +0000
@@ -0,0 +1,10 @@
+--TEST--
+date_create_immutable() doesn't reach hard limit
+--INI--
+memory_limit=64M
+--FILE--
+
+--EXPECT--
+bool(false)
diff -Nru php8.4-8.4.26/ext/date/tests/oom_date_interval_create_from_date_string.phpt php8.4-8.4.27/ext/date/tests/oom_date_interval_create_from_date_string.phpt
--- php8.4-8.4.26/ext/date/tests/oom_date_interval_create_from_date_string.phpt 1970-01-01 00:00:00.000000000 +0000
+++ php8.4-8.4.27/ext/date/tests/oom_date_interval_create_from_date_string.phpt 2026-10-19 14:38:59.000000000 +0000
@@ -0,0 +1,11 @@
+--TEST--
+date_interval_create_from_date_string() doesn't reach hard limit
+--INI--
+memory_limit=64M
+--FILE--
+
+--EXPECTF--
+Warning: date_interval_create_from_date_string(): Unknown or bad format (%s) at position 0 (%s): Unexpected character in %s on line %d
+bool(false)
diff -Nru php8.4-8.4.26/ext/date/tests/oom_date_modify.phpt php8.4-8.4.27/ext/date/tests/oom_date_modify.phpt
--- php8.4-8.4.26/ext/date/tests/oom_date_modify.phpt 1970-01-01 00:00:00.000000000 +0000
+++ php8.4-8.4.27/ext/date/tests/oom_date_modify.phpt 2026-10-19 14:38:59.000000000 +0000
@@ -0,0 +1,11 @@
+--TEST--
+date_modify() doesn't reach hard limit
+--INI--
+memory_limit=64M
+--FILE--
+
+--EXPECTF--
+Warning: date_modify(): Failed to parse time string (%s) at position 0 (%s): Unexpected character in %s on line %d
+bool(false)
diff -Nru php8.4-8.4.26/ext/date/tests/oom_date_parse.phpt php8.4-8.4.27/ext/date/tests/oom_date_parse.phpt
--- php8.4-8.4.26/ext/date/tests/oom_date_parse.phpt 1970-01-01 00:00:00.000000000 +0000
+++ php8.4-8.4.27/ext/date/tests/oom_date_parse.phpt 2026-10-19 14:38:59.000000000 +0000
@@ -0,0 +1,11 @@
+--TEST--
+date_parse() doesn't reach hard limit
+--INI--
+memory_limit=64M
+--FILE--
+
+--EXPECT--
+int(1000)
diff -Nru php8.4-8.4.26/ext/date/tests/oom_dateinterval_construct.phpt php8.4-8.4.27/ext/date/tests/oom_dateinterval_construct.phpt
--- php8.4-8.4.26/ext/date/tests/oom_dateinterval_construct.phpt 1970-01-01 00:00:00.000000000 +0000
+++ php8.4-8.4.27/ext/date/tests/oom_dateinterval_construct.phpt 2026-10-19 14:38:59.000000000 +0000
@@ -0,0 +1,18 @@
+--TEST--
+DateInterval::__construct() doesn't reach hard limit
+--INI--
+memory_limit=64M
+--SKIPIF--
+
+--FILE--
+getMessage(), "\n";
+}
+?>
+--EXPECTF--
+DateMalformedIntervalStringException: Unknown or bad format (%s)
diff -Nru php8.4-8.4.26/ext/date/tests/oom_dateinterval_createfromdatestring.phpt php8.4-8.4.27/ext/date/tests/oom_dateinterval_createfromdatestring.phpt
--- php8.4-8.4.26/ext/date/tests/oom_dateinterval_createfromdatestring.phpt 1970-01-01 00:00:00.000000000 +0000
+++ php8.4-8.4.27/ext/date/tests/oom_dateinterval_createfromdatestring.phpt 2026-10-19 14:38:59.000000000 +0000
@@ -0,0 +1,14 @@
+--TEST--
+DateInterval::createFromDateString() doesn't reach hard limit
+--INI--
+memory_limit=64M
+--FILE--
+getMessage(), "\n";
+}
+?>
+--EXPECTF--
+DateMalformedIntervalStringException: Unknown or bad format (%s) at position 0 (%s): Unexpected character
diff -Nru php8.4-8.4.26/ext/date/tests/oom_dateperiod_construct.phpt php8.4-8.4.27/ext/date/tests/oom_dateperiod_construct.phpt
--- php8.4-8.4.26/ext/date/tests/oom_dateperiod_construct.phpt 1970-01-01 00:00:00.000000000 +0000
+++ php8.4-8.4.27/ext/date/tests/oom_dateperiod_construct.phpt 2026-10-19 14:38:59.000000000 +0000
@@ -0,0 +1,19 @@
+--TEST--
+DatePeriod::__construct() doesn't reach hard limit
+--INI--
+memory_limit=64M
+--SKIPIF--
+
+--FILE--
+getMessage(), "\n";
+}
+?>
+--EXPECTF--
+Deprecated: Calling DatePeriod::__construct(string $isostr, int $options = 0) is deprecated, use DatePeriod::createFromISO8601String() instead in %s on line %d
+DateMalformedPeriodStringException: Unknown or bad format (%s)
diff -Nru php8.4-8.4.26/ext/date/tests/oom_datetime_construct.phpt php8.4-8.4.27/ext/date/tests/oom_datetime_construct.phpt
--- php8.4-8.4.26/ext/date/tests/oom_datetime_construct.phpt 1970-01-01 00:00:00.000000000 +0000
+++ php8.4-8.4.27/ext/date/tests/oom_datetime_construct.phpt 2026-10-19 14:38:59.000000000 +0000
@@ -0,0 +1,14 @@
+--TEST--
+DateTime::__construct() doesn't reach hard limit
+--INI--
+memory_limit=64M
+--FILE--
+getMessage(), "\n";
+}
+?>
+--EXPECTF--
+DateMalformedStringException: Failed to parse time string (%s) at position 0 (%s): Unexpected character
diff -Nru php8.4-8.4.26/ext/date/tests/oom_datetime_modify.phpt php8.4-8.4.27/ext/date/tests/oom_datetime_modify.phpt
--- php8.4-8.4.26/ext/date/tests/oom_datetime_modify.phpt 1970-01-01 00:00:00.000000000 +0000
+++ php8.4-8.4.27/ext/date/tests/oom_datetime_modify.phpt 2026-10-19 14:38:59.000000000 +0000
@@ -0,0 +1,14 @@
+--TEST--
+DateTime::modify() doesn't reach hard limit
+--INI--
+memory_limit=64M
+--FILE--
+modify(str_repeat("\x01", 4 * 1024 * 1024)));
+} catch (\Throwable $e) {
+ echo $e::class, ': ', $e->getMessage(), "\n";
+}
+?>
+--EXPECTF--
+DateMalformedStringException: DateTime::modify(): Failed to parse time string (%s) at position 0 (%s): Unexpected character
diff -Nru php8.4-8.4.26/ext/date/tests/oom_datetimeimmutable_construct.phpt php8.4-8.4.27/ext/date/tests/oom_datetimeimmutable_construct.phpt
--- php8.4-8.4.26/ext/date/tests/oom_datetimeimmutable_construct.phpt 1970-01-01 00:00:00.000000000 +0000
+++ php8.4-8.4.27/ext/date/tests/oom_datetimeimmutable_construct.phpt 2026-10-19 14:38:59.000000000 +0000
@@ -0,0 +1,14 @@
+--TEST--
+DateTimeImmutable::__construct() doesn't reach hard limit
+--INI--
+memory_limit=64M
+--FILE--
+getMessage(), "\n";
+}
+?>
+--EXPECTF--
+DateMalformedStringException: Failed to parse time string (%s) at position 0 (%s): Unexpected character
diff -Nru php8.4-8.4.26/ext/date/tests/oom_datetimeimmutable_modify.phpt php8.4-8.4.27/ext/date/tests/oom_datetimeimmutable_modify.phpt
--- php8.4-8.4.26/ext/date/tests/oom_datetimeimmutable_modify.phpt 1970-01-01 00:00:00.000000000 +0000
+++ php8.4-8.4.27/ext/date/tests/oom_datetimeimmutable_modify.phpt 2026-10-19 14:38:59.000000000 +0000
@@ -0,0 +1,14 @@
+--TEST--
+DateTimeImmutable::modify() doesn't reach hard limit
+--INI--
+memory_limit=64M
+--FILE--
+modify(str_repeat("\x01", 4 * 1024 * 1024)));
+} catch (\Throwable $e) {
+ echo $e::class, ': ', $e->getMessage(), "\n";
+}
+?>
+--EXPECTF--
+DateMalformedStringException: DateTimeImmutable::modify(): Failed to parse time string (%s) at position 0 (%s): Unexpected character
diff -Nru php8.4-8.4.26/ext/date/tests/oom_strtotime.phpt php8.4-8.4.27/ext/date/tests/oom_strtotime.phpt
--- php8.4-8.4.26/ext/date/tests/oom_strtotime.phpt 1970-01-01 00:00:00.000000000 +0000
+++ php8.4-8.4.27/ext/date/tests/oom_strtotime.phpt 2026-10-19 14:38:59.000000000 +0000
@@ -0,0 +1,10 @@
+--TEST--
+strtotime() doesn't reach hard limit
+--INI--
+memory_limit=64M
+--FILE--
+
+--EXPECT--
+bool(false)
diff -Nru php8.4-8.4.26/ext/dl_test/dl_test.c php8.4-8.4.27/ext/dl_test/dl_test.c
--- php8.4-8.4.26/ext/dl_test/dl_test.c 2026-09-22 15:00:02.000000000 +0000
+++ php8.4-8.4.27/ext/dl_test/dl_test.c 2026-10-19 14:38:59.000000000 +0000
@@ -52,6 +52,28 @@
}
/* }}}*/
+PHP_FUNCTION(dl_test_frameless)
+{
+ zend_long value;
+
+ ZEND_PARSE_PARAMETERS_START(1, 1)
+ Z_PARAM_LONG(value)
+ ZEND_PARSE_PARAMETERS_END();
+
+ RETURN_LONG(value);
+}
+
+ZEND_FRAMELESS_FUNCTION(dl_test_frameless, 1)
+{
+ zend_long value;
+
+ Z_FLF_PARAM_LONG(1, value);
+
+ RETVAL_LONG(value);
+
+flf_clean:;
+}
+
/* {{{ PHP_DL_TEST_USE_REGISTER_FUNCTIONS_DIRECTLY */
ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_dl_test_use_register_functions_directly, 0, 0, IS_STRING, 0)
ZEND_END_ARG_INFO()
diff -Nru php8.4-8.4.26/ext/dl_test/dl_test.stub.php php8.4-8.4.27/ext/dl_test/dl_test.stub.php
--- php8.4-8.4.26/ext/dl_test/dl_test.stub.php 2026-09-22 15:00:02.000000000 +0000
+++ php8.4-8.4.27/ext/dl_test/dl_test.stub.php 2026-10-19 14:38:59.000000000 +0000
@@ -9,6 +9,11 @@
function dl_test_test2(string $str = ""): string {}
+/**
+ * @frameless-function {"arity": 1}
+ */
+function dl_test_frameless(int $value): int {}
+
class DlTest {
public function test(string $str = ""): string {}
}
diff -Nru php8.4-8.4.26/ext/dl_test/dl_test_arginfo.h php8.4-8.4.27/ext/dl_test/dl_test_arginfo.h
--- php8.4-8.4.26/ext/dl_test/dl_test_arginfo.h 2026-09-22 15:00:02.000000000 +0000
+++ php8.4-8.4.27/ext/dl_test/dl_test_arginfo.h 2026-10-19 14:38:59.000000000 +0000
@@ -1,5 +1,5 @@
/* This is a generated file, edit the .stub.php file instead.
- * Stub hash: 0641a8eeff00e6c8083fe4a8639f970e3ba80db9 */
+ * Stub hash: 0ab7bc0f3289a77ecb1850a1cc7056b7c5297fda */
ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_dl_test_test1, 0, 0, IS_VOID, 0)
ZEND_END_ARG_INFO()
@@ -8,18 +8,31 @@
ZEND_ARG_TYPE_INFO_WITH_DEFAULT_VALUE(0, str, IS_STRING, 0, "\"\"")
ZEND_END_ARG_INFO()
+ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_dl_test_frameless, 0, 1, IS_LONG, 0)
+ ZEND_ARG_TYPE_INFO(0, value, IS_LONG, 0)
+ZEND_END_ARG_INFO()
+
#define arginfo_class_DlTest_test arginfo_dl_test_test2
#define arginfo_class_DlTestSuperClass_test arginfo_dl_test_test2
+
+ZEND_FRAMELESS_FUNCTION(dl_test_frameless, 1);
+static const zend_frameless_function_info frameless_function_infos_dl_test_frameless[] = {
+ { ZEND_FRAMELESS_FUNCTION_NAME(dl_test_frameless, 1), 1 },
+ { 0 },
+};
+
ZEND_FUNCTION(dl_test_test1);
ZEND_FUNCTION(dl_test_test2);
+ZEND_FUNCTION(dl_test_frameless);
ZEND_METHOD(DlTest, test);
ZEND_METHOD(DlTestSuperClass, test);
static const zend_function_entry ext_functions[] = {
ZEND_FE(dl_test_test1, arginfo_dl_test_test1)
ZEND_FE(dl_test_test2, arginfo_dl_test_test2)
+ ZEND_RAW_FENTRY("dl_test_frameless", zif_dl_test_frameless, arginfo_dl_test_frameless, 0, frameless_function_infos_dl_test_frameless, NULL)
ZEND_FE_END
};
diff -Nru php8.4-8.4.26/ext/dl_test/tests/frameless_temporary.inc php8.4-8.4.27/ext/dl_test/tests/frameless_temporary.inc
--- php8.4-8.4.26/ext/dl_test/tests/frameless_temporary.inc 1970-01-01 00:00:00.000000000 +0000
+++ php8.4-8.4.27/ext/dl_test/tests/frameless_temporary.inc 2026-10-19 14:38:59.000000000 +0000
@@ -0,0 +1,8 @@
+getMessage(), "\n";
+}
diff -Nru php8.4-8.4.26/ext/dl_test/tests/frameless_temporary.phpt php8.4-8.4.27/ext/dl_test/tests/frameless_temporary.phpt
--- php8.4-8.4.26/ext/dl_test/tests/frameless_temporary.phpt 1970-01-01 00:00:00.000000000 +0000
+++ php8.4-8.4.27/ext/dl_test/tests/frameless_temporary.phpt 2026-10-19 14:38:59.000000000 +0000
@@ -0,0 +1,53 @@
+--TEST--
+dl() of a frameless function does not keep the freed function record
+--SKIPIF--
+
+--FILE--
+ ['pipe', 'r'],
+ 1 => ['pipe', 'w'],
+ 2 => ['pipe', 'w'],
+], $pipes);
+fclose($pipes[0]);
+$out = stream_get_contents($pipes[1]);
+stream_get_contents($pipes[2]);
+fclose($pipes[1]);
+fclose($pipes[2]);
+echo $out;
+$code = proc_close($proc);
+if ($code !== 0) {
+ echo "exit:$code\n";
+}
+?>
+--EXPECT--
+int(7)
+dl_test_frameless(): Argument #1 ($value) must be of type int, string given
+int(7)
+dl_test_frameless(): Argument #1 ($value) must be of type int, string given
diff -Nru php8.4-8.4.26/ext/dl_test/tests/frameless_temporary_cgi.inc php8.4-8.4.27/ext/dl_test/tests/frameless_temporary_cgi.inc
--- php8.4-8.4.26/ext/dl_test/tests/frameless_temporary_cgi.inc 1970-01-01 00:00:00.000000000 +0000
+++ php8.4-8.4.27/ext/dl_test/tests/frameless_temporary_cgi.inc 2026-10-19 14:38:59.000000000 +0000
@@ -0,0 +1,7 @@
+
+--EXTENSIONS--
+opcache
+--INI--
+enable_dl=1
+opcache.enable_cli=1
+opcache.opt_debug_level=0x10000
+--FILE--
+
+--EXPECTF--
+%A0001 INIT_FCALL 1 %d string("dl_test_frameless")
+%Aint(7)
+dl_test_frameless(): Argument #1 ($value) must be of type int, string given
diff -Nru php8.4-8.4.26/ext/dom/config.m4 php8.4-8.4.27/ext/dom/config.m4
--- php8.4-8.4.26/ext/dom/config.m4 2026-09-22 15:00:02.000000000 +0000
+++ php8.4-8.4.27/ext/dom/config.m4 2026-10-19 14:38:59.000000000 +0000
@@ -8,7 +8,7 @@
PHP_SETUP_LIBXML([DOM_SHARED_LIBADD], [
AC_DEFINE([HAVE_DOM], [1],
[Define to 1 if the PHP extension 'dom' is available.])
- PHP_LEXBOR_CFLAGS="-I@ext_srcdir@/lexbor -DLEXBOR_STATIC"
+ PHP_LEXBOR_CFLAGS="-Wno-unknown-warning-option -Wno-unterminated-string-initialization -I@ext_srcdir@/lexbor -DLEXBOR_STATIC"
LEXBOR_DIR="lexbor/lexbor"
LEXBOR_SOURCES=m4_normalize(["
$LEXBOR_DIR/core/array_obj.c
diff -Nru php8.4-8.4.26/ext/dom/html5_parser.c php8.4-8.4.27/ext/dom/html5_parser.c
--- php8.4-8.4.26/ext/dom/html5_parser.c 2026-09-22 15:00:02.000000000 +0000
+++ php8.4-8.4.27/ext/dom/html5_parser.c 2026-10-19 14:38:59.000000000 +0000
@@ -241,7 +241,7 @@
lxml_attr->children = lxml_attr->last = lxml_text;
lxml_text->parent = (xmlNodePtr) lxml_attr;
- if (attr->node.ns == LXB_NS_XMLNS) {
+ if (attr->node.ns == LXB_NS_XMLNS && (attr->node.prefix || strcmp((const char *) local_name, "xmlns") == 0)) {
if (strcmp((const char *) local_name, "xmlns") != 0) {
if (prefixed_xmlns_ns == NULL) {
prefixed_xmlns_ns = php_dom_libxml_ns_mapper_get_ns_raw_strings_nullsafe(ns_mapper, "xmlns", DOM_XMLNS_NS_URI);
@@ -251,13 +251,13 @@
lxml_attr->ns = php_dom_libxml_ns_mapper_ensure_prefixless_xmlns_ns(ns_mapper);
}
lxml_attr->ns->_private = (void *) php_dom_ns_is_xmlns_magic_token;
- } else if (attr->node.ns == LXB_NS_XLINK) {
+ } else if (attr->node.prefix && attr->node.ns == LXB_NS_XLINK) {
if (xlink_ns == NULL) {
xlink_ns = php_dom_libxml_ns_mapper_get_ns_raw_strings_nullsafe(ns_mapper, "xlink", DOM_XLINK_NS_URI);
xlink_ns->_private = (void *) php_dom_ns_is_xlink_magic_token;
}
lxml_attr->ns = xlink_ns;
- } else if (attr->node.ns == LXB_NS_XML) {
+ } else if (attr->node.prefix && attr->node.ns == LXB_NS_XML) {
if (xml_ns == NULL) {
xml_ns = php_dom_libxml_ns_mapper_get_ns_raw_strings_nullsafe(ns_mapper, "xml", DOM_XML_NS_URI);
xml_ns->_private = (void *) php_dom_ns_is_xml_magic_token;
@@ -274,7 +274,7 @@
last_added_attr = lxml_attr;
/* xmlIsID does some other stuff too that is irrelevant here. */
- if (local_name_length == 2 && local_name[0] == 'i' && local_name[1] == 'd' && attr->node.ns == LXB_NS_HTML) {
+ if (local_name_length == 2 && local_name[0] == 'i' && local_name[1] == 'd' && lxml_attr->ns == NULL) {
if (xmlAddID(NULL, lxml_doc, value, lxml_attr) == 0) {
/* If the ID already exists, the ID attribute still needs to be marked as an ID. */
lxml_attr->atype = XML_ATTRIBUTE_ID;
diff -Nru php8.4-8.4.26/ext/dom/lexbor/lexbor/css/selectors/pseudo_state.c php8.4-8.4.27/ext/dom/lexbor/lexbor/css/selectors/pseudo_state.c
--- php8.4-8.4.26/ext/dom/lexbor/lexbor/css/selectors/pseudo_state.c 2026-09-22 15:00:02.000000000 +0000
+++ php8.4-8.4.27/ext/dom/lexbor/lexbor/css/selectors/pseudo_state.c 2026-10-19 14:38:59.000000000 +0000
@@ -227,13 +227,12 @@
contains->insensitive = false;
str = &contains->str;
- str->data = lexbor_mraw_alloc(parser->memory->mraw,
- sizeof(lexbor_str_t));
+ str->data = lexbor_mraw_alloc(parser->memory->mraw, length + 1);
if (str->data == NULL) {
return lxb_css_parser_memory_fail(parser);
}
- memcpy(str->data, data, length + 1);
+ memcpy(str->data, data, length);
str->length = length;
str->data[length] = '\0';
diff -Nru php8.4-8.4.26/ext/dom/lexbor/lexbor/encoding/decode.c php8.4-8.4.27/ext/dom/lexbor/lexbor/encoding/decode.c
--- php8.4-8.4.26/ext/dom/lexbor/lexbor/encoding/decode.c 2026-09-22 15:00:02.000000000 +0000
+++ php8.4-8.4.27/ext/dom/lexbor/lexbor/encoding/decode.c 2026-10-19 14:38:59.000000000 +0000
@@ -912,6 +912,13 @@
}
LXB_ENCODING_DECODE_ERROR_END();
+ if (ctx->buffer_used >= ctx->buffer_length) {
+ iso->prepand = iso->lead;
+ iso->lead = 0x00;
+
+ return LXB_STATUS_SMALL_BUFFER;
+ }
+
byte = iso->lead;
iso->lead = 0x00;
@@ -1279,6 +1286,12 @@
}
LXB_ENCODING_DECODE_ERROR_END();
+ if (ctx->buffer_used >= ctx->buffer_length) {
+ ctx->u.lead = lead + 0x01;
+
+ return LXB_STATUS_SMALL_BUFFER;
+ }
+
goto lead_state;
}
@@ -1723,6 +1736,13 @@
}
LXB_ENCODING_DECODE_ERROR_END();
+ if (ctx->buffer_used >= ctx->buffer_length) {
+ ctx->prepend = true;
+ ctx->u.gb18030.first = second;
+
+ return LXB_STATUS_SMALL_BUFFER;
+ }
+
first = second;
goto prepend_first;
@@ -1756,11 +1776,8 @@
}
LXB_ENCODING_DECODE_ERROR_END();
- LXB_ENCODING_DECODE_APPEND_WO_CHECK(ctx, second);
-
- if (ctx->buffer_used == ctx->buffer_length) {
+ if (ctx->buffer_used >= ctx->buffer_length) {
ctx->prepend = true;
- ctx->have_error = true;
/* First is a fake for trigger */
ctx->u.gb18030.first = 0x01;
@@ -1769,6 +1786,18 @@
return LXB_STATUS_SMALL_BUFFER;
}
+
+ LXB_ENCODING_DECODE_APPEND_WO_CHECK(ctx, second);
+
+ if (ctx->buffer_used >= ctx->buffer_length) {
+ ctx->prepend = true;
+
+ ctx->u.gb18030.first = third;
+ ctx->u.gb18030.second = 0x00;
+ ctx->u.gb18030.third = 0x00;
+
+ return LXB_STATUS_SMALL_BUFFER;
+ }
first = third;
diff -Nru php8.4-8.4.26/ext/dom/lexbor/patches/0001-Expose-line-and-column-information-for-use-in-PHP.patch php8.4-8.4.27/ext/dom/lexbor/patches/0001-Expose-line-and-column-information-for-use-in-PHP.patch
--- php8.4-8.4.26/ext/dom/lexbor/patches/0001-Expose-line-and-column-information-for-use-in-PHP.patch 2026-09-22 15:00:02.000000000 +0000
+++ php8.4-8.4.27/ext/dom/lexbor/patches/0001-Expose-line-and-column-information-for-use-in-PHP.patch 2026-10-19 14:38:59.000000000 +0000
@@ -1,7 +1,7 @@
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: Niels Dossche <7771979+nielsdos@users.noreply.github.com>
Date: Sat, 26 Aug 2023 15:08:59 +0200
-Subject: [PATCH 1/6] Expose line and column information for use in PHP
+Subject: [PATCH 1/8] Expose line and column information for use in PHP
---
source/lexbor/dom/interfaces/node.h | 2 ++
diff -Nru php8.4-8.4.26/ext/dom/lexbor/patches/0002-Track-implied-added-nodes-for-options-use-in-PHP.patch php8.4-8.4.27/ext/dom/lexbor/patches/0002-Track-implied-added-nodes-for-options-use-in-PHP.patch
--- php8.4-8.4.26/ext/dom/lexbor/patches/0002-Track-implied-added-nodes-for-options-use-in-PHP.patch 2026-09-22 15:00:02.000000000 +0000
+++ php8.4-8.4.27/ext/dom/lexbor/patches/0002-Track-implied-added-nodes-for-options-use-in-PHP.patch 2026-10-19 14:38:59.000000000 +0000
@@ -1,7 +1,7 @@
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: Niels Dossche <7771979+nielsdos@users.noreply.github.com>
Date: Mon, 14 Aug 2023 20:18:51 +0200
-Subject: [PATCH 2/6] Track implied added nodes for options use in PHP
+Subject: [PATCH 2/8] Track implied added nodes for options use in PHP
---
source/lexbor/html/tree.h | 3 +++
diff -Nru php8.4-8.4.26/ext/dom/lexbor/patches/0003-Patch-utilities-and-data-structure-to-be-able-to-gen.patch php8.4-8.4.27/ext/dom/lexbor/patches/0003-Patch-utilities-and-data-structure-to-be-able-to-gen.patch
--- php8.4-8.4.26/ext/dom/lexbor/patches/0003-Patch-utilities-and-data-structure-to-be-able-to-gen.patch 2026-09-22 15:00:02.000000000 +0000
+++ php8.4-8.4.27/ext/dom/lexbor/patches/0003-Patch-utilities-and-data-structure-to-be-able-to-gen.patch 2026-10-19 14:38:59.000000000 +0000
@@ -1,7 +1,7 @@
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: Niels Dossche <7771979+nielsdos@users.noreply.github.com>
Date: Thu, 24 Aug 2023 22:57:48 +0200
-Subject: [PATCH 3/6] Patch utilities and data structure to be able to generate
+Subject: [PATCH 3/8] Patch utilities and data structure to be able to generate
smaller lookup tables
Changed the generation script to check if everything fits in 32-bits.
diff -Nru php8.4-8.4.26/ext/dom/lexbor/patches/0004-Remove-unused-upper-case-tag-static-data.patch php8.4-8.4.27/ext/dom/lexbor/patches/0004-Remove-unused-upper-case-tag-static-data.patch
--- php8.4-8.4.26/ext/dom/lexbor/patches/0004-Remove-unused-upper-case-tag-static-data.patch 2026-09-22 15:00:02.000000000 +0000
+++ php8.4-8.4.27/ext/dom/lexbor/patches/0004-Remove-unused-upper-case-tag-static-data.patch 2026-10-19 14:38:59.000000000 +0000
@@ -1,7 +1,7 @@
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: Niels Dossche <7771979+nielsdos@users.noreply.github.com>
Date: Wed, 29 Nov 2023 21:26:47 +0100
-Subject: [PATCH 4/6] Remove unused upper case tag static data
+Subject: [PATCH 4/8] Remove unused upper case tag static data
---
source/lexbor/tag/res.h | 2 ++
diff -Nru php8.4-8.4.26/ext/dom/lexbor/patches/0005-Shrink-size-of-static-binary-search-tree.patch php8.4-8.4.27/ext/dom/lexbor/patches/0005-Shrink-size-of-static-binary-search-tree.patch
--- php8.4-8.4.26/ext/dom/lexbor/patches/0005-Shrink-size-of-static-binary-search-tree.patch 2026-09-22 15:00:02.000000000 +0000
+++ php8.4-8.4.27/ext/dom/lexbor/patches/0005-Shrink-size-of-static-binary-search-tree.patch 2026-10-19 14:38:59.000000000 +0000
@@ -1,7 +1,7 @@
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: Niels Dossche <7771979+nielsdos@users.noreply.github.com>
Date: Wed, 29 Nov 2023 21:29:31 +0100
-Subject: [PATCH 5/6] Shrink size of static binary search tree
+Subject: [PATCH 5/8] Shrink size of static binary search tree
This also makes it more efficient on the data cache.
---
diff -Nru php8.4-8.4.26/ext/dom/lexbor/patches/0006-Patch-out-unused-CSS-style-code.patch php8.4-8.4.27/ext/dom/lexbor/patches/0006-Patch-out-unused-CSS-style-code.patch
--- php8.4-8.4.26/ext/dom/lexbor/patches/0006-Patch-out-unused-CSS-style-code.patch 2026-09-22 15:00:02.000000000 +0000
+++ php8.4-8.4.27/ext/dom/lexbor/patches/0006-Patch-out-unused-CSS-style-code.patch 2026-10-19 14:38:59.000000000 +0000
@@ -1,7 +1,7 @@
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: Niels Dossche <7771979+nielsdos@users.noreply.github.com>
Date: Sun, 7 Jan 2024 21:59:28 +0100
-Subject: [PATCH 6/6] Patch out unused CSS style code
+Subject: [PATCH 6/8] Patch out unused CSS style code
---
source/lexbor/css/rule.h | 2 ++
diff -Nru php8.4-8.4.26/ext/dom/lexbor/patches/0007-CSS-fixed-heap-buffer-overflow-in-lexbor-contains-pa.patch php8.4-8.4.27/ext/dom/lexbor/patches/0007-CSS-fixed-heap-buffer-overflow-in-lexbor-contains-pa.patch
--- php8.4-8.4.26/ext/dom/lexbor/patches/0007-CSS-fixed-heap-buffer-overflow-in-lexbor-contains-pa.patch 1970-01-01 00:00:00.000000000 +0000
+++ php8.4-8.4.27/ext/dom/lexbor/patches/0007-CSS-fixed-heap-buffer-overflow-in-lexbor-contains-pa.patch 2026-10-19 14:38:59.000000000 +0000
@@ -0,0 +1,35 @@
+From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
+From: Alexander Borisov
+Date: Fri, 5 Jun 2026 22:34:23 +0300
+Subject: [PATCH 7/8] CSS: fixed heap buffer overflow in :lexbor-contains()
+ parsing.
+
+The contains string buffer was allocated by the size of the string
+structure instead of the content length, so any value longer than
+that overflowed the buffer.
+
+Per report from Xiansheng Cao (@HMF2021)
+---
+ source/lexbor/css/selectors/pseudo_state.c | 5 ++---
+ 1 file changed, 2 insertions(+), 3 deletions(-)
+
+diff --git a/source/lexbor/css/selectors/pseudo_state.c b/source/lexbor/css/selectors/pseudo_state.c
+index 263ca52..2321ddf 100644
+--- a/source/lexbor/css/selectors/pseudo_state.c
++++ b/source/lexbor/css/selectors/pseudo_state.c
+@@ -227,13 +227,12 @@ again:
+ contains->insensitive = false;
+ str = &contains->str;
+
+- str->data = lexbor_mraw_alloc(parser->memory->mraw,
+- sizeof(lexbor_str_t));
++ str->data = lexbor_mraw_alloc(parser->memory->mraw, length + 1);
+ if (str->data == NULL) {
+ return lxb_css_parser_memory_fail(parser);
+ }
+
+- memcpy(str->data, data, length + 1);
++ memcpy(str->data, data, length);
+
+ str->length = length;
+ str->data[length] = '\0';
diff -Nru php8.4-8.4.26/ext/dom/lexbor/patches/0008-Encoding-fixed-buffer-overflows-in-malformed-decode-.patch php8.4-8.4.27/ext/dom/lexbor/patches/0008-Encoding-fixed-buffer-overflows-in-malformed-decode-.patch
--- php8.4-8.4.26/ext/dom/lexbor/patches/0008-Encoding-fixed-buffer-overflows-in-malformed-decode-.patch 1970-01-01 00:00:00.000000000 +0000
+++ php8.4-8.4.27/ext/dom/lexbor/patches/0008-Encoding-fixed-buffer-overflows-in-malformed-decode-.patch 2026-10-19 14:38:59.000000000 +0000
@@ -0,0 +1,97 @@
+From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
+From: Alexander Borisov
+Date: Wed, 10 Jun 2026 19:50:10 +0300
+Subject: [PATCH 8/8] Encoding: fixed buffer overflows in malformed decode
+ replay.
+
+Fixed out-of-bounds writes in buffering decoders when replacement output
+fills the caller-provided codepoint buffer and decoder replay continues in
+the same call.
+
+Affected decoders:
+- GB18030 malformed third/fourth byte replay.
+- ISO-2022-JP malformed escape replay.
+- UTF-16BE/LE invalid surrogate replay.
+
+Per report from @hurric9-droid on GitHub.
+---
+ source/lexbor/encoding/decode.c | 37 +++++++++++++++++++++++++++++----
+ 1 file changed, 33 insertions(+), 4 deletions(-)
+
+diff --git a/source/lexbor/encoding/decode.c b/source/lexbor/encoding/decode.c
+index 3e48971..05c4b9b 100644
+--- a/source/lexbor/encoding/decode.c
++++ b/source/lexbor/encoding/decode.c
+@@ -912,6 +912,13 @@ lxb_encoding_decode_iso_2022_jp(lxb_encoding_decode_t *ctx,
+ }
+ LXB_ENCODING_DECODE_ERROR_END();
+
++ if (ctx->buffer_used >= ctx->buffer_length) {
++ iso->prepand = iso->lead;
++ iso->lead = 0x00;
++
++ return LXB_STATUS_SMALL_BUFFER;
++ }
++
+ byte = iso->lead;
+ iso->lead = 0x00;
+
+@@ -1279,6 +1286,12 @@ lxb_encoding_decode_utf_16(lxb_encoding_decode_t *ctx, bool is_be,
+ }
+ LXB_ENCODING_DECODE_ERROR_END();
+
++ if (ctx->buffer_used >= ctx->buffer_length) {
++ ctx->u.lead = lead + 0x01;
++
++ return LXB_STATUS_SMALL_BUFFER;
++ }
++
+ goto lead_state;
+ }
+
+@@ -1723,6 +1736,13 @@ lxb_encoding_decode_gb18030(lxb_encoding_decode_t *ctx,
+ }
+ LXB_ENCODING_DECODE_ERROR_END();
+
++ if (ctx->buffer_used >= ctx->buffer_length) {
++ ctx->prepend = true;
++ ctx->u.gb18030.first = second;
++
++ return LXB_STATUS_SMALL_BUFFER;
++ }
++
+ first = second;
+
+ goto prepend_first;
+@@ -1756,11 +1776,8 @@ lxb_encoding_decode_gb18030(lxb_encoding_decode_t *ctx,
+ }
+ LXB_ENCODING_DECODE_ERROR_END();
+
+- LXB_ENCODING_DECODE_APPEND_WO_CHECK(ctx, second);
+-
+- if (ctx->buffer_used == ctx->buffer_length) {
++ if (ctx->buffer_used >= ctx->buffer_length) {
+ ctx->prepend = true;
+- ctx->have_error = true;
+
+ /* First is a fake for trigger */
+ ctx->u.gb18030.first = 0x01;
+@@ -1770,6 +1787,18 @@ lxb_encoding_decode_gb18030(lxb_encoding_decode_t *ctx,
+ return LXB_STATUS_SMALL_BUFFER;
+ }
+
++ LXB_ENCODING_DECODE_APPEND_WO_CHECK(ctx, second);
++
++ if (ctx->buffer_used >= ctx->buffer_length) {
++ ctx->prepend = true;
++
++ ctx->u.gb18030.first = third;
++ ctx->u.gb18030.second = 0x00;
++ ctx->u.gb18030.third = 0x00;
++
++ return LXB_STATUS_SMALL_BUFFER;
++ }
++
+ first = third;
+
+ goto prepend_first;
diff -Nru php8.4-8.4.26/ext/dom/node.c php8.4-8.4.27/ext/dom/node.c
--- php8.4-8.4.26/ext/dom/node.c 2026-09-22 15:00:02.000000000 +0000
+++ php8.4-8.4.27/ext/dom/node.c 2026-10-19 14:38:59.000000000 +0000
@@ -931,6 +931,9 @@
php_dom_throw_error(NOT_FOUND_ERR, stricterror);
RETURN_FALSE;
}
+ if (refp == child) {
+ refp = child->next;
+ }
}
if (child->doc == NULL && parentp->doc != NULL) {
@@ -940,7 +943,7 @@
php_libxml_invalidate_node_list_cache(intern->document);
- if (ref != NULL) {
+ if (refp != NULL) {
if (child->parent != NULL) {
xmlUnlinkNode(child);
}
diff -Nru php8.4-8.4.26/ext/dom/php_dom.h php8.4-8.4.27/ext/dom/php_dom.h
--- php8.4-8.4.26/ext/dom/php_dom.h 2026-09-22 15:00:02.000000000 +0000
+++ php8.4-8.4.27/ext/dom/php_dom.h 2026-10-19 14:38:59.000000000 +0000
@@ -66,6 +66,7 @@
typedef struct dom_xpath_object {
php_dom_xpath_callbacks xpath_callbacks;
+ uint32_t evaluation_depth;
bool register_node_ns;
dom_object dom;
} dom_xpath_object;
diff -Nru php8.4-8.4.26/ext/dom/tests/DOMDocument_saveHTMLFile_failed_output_encoding.phpt php8.4-8.4.27/ext/dom/tests/DOMDocument_saveHTMLFile_failed_output_encoding.phpt
--- php8.4-8.4.26/ext/dom/tests/DOMDocument_saveHTMLFile_failed_output_encoding.phpt 1970-01-01 00:00:00.000000000 +0000
+++ php8.4-8.4.27/ext/dom/tests/DOMDocument_saveHTMLFile_failed_output_encoding.phpt 2026-10-19 14:38:59.000000000 +0000
@@ -0,0 +1,31 @@
+--TEST--
+DOMDocument::saveHTMLFile() does not close the encoder twice when opening the output fails
+--EXTENSIONS--
+dom
+--FILE--
+loadHTML('value');
+ $doc->getElementsByTagName('meta')->item(0)->setAttribute('content', 'text/html; charset=' . $encoding);
+ for ($i = 0; $i < 3; $i++) {
+ $result = @$doc->saveHTMLFile($filename);
+ var_dump($result === 0 || $result === false);
+ }
+ var_dump($doc->getElementsByTagName('body')->item(0)->textContent === 'value');
+}
+?>
+--EXPECT--
+bool(true)
+bool(true)
+bool(true)
+bool(true)
+bool(true)
+bool(true)
+bool(true)
+bool(true)
+bool(true)
+bool(true)
+bool(true)
+bool(true)
diff -Nru php8.4-8.4.26/ext/dom/tests/DOMXPath_reconstruct_callbacks_gc.phpt php8.4-8.4.27/ext/dom/tests/DOMXPath_reconstruct_callbacks_gc.phpt
--- php8.4-8.4.26/ext/dom/tests/DOMXPath_reconstruct_callbacks_gc.phpt 1970-01-01 00:00:00.000000000 +0000
+++ php8.4-8.4.27/ext/dom/tests/DOMXPath_reconstruct_callbacks_gc.phpt 2026-10-19 14:38:59.000000000 +0000
@@ -0,0 +1,50 @@
+--TEST--
+Re-constructing a DOMXPath does not expose freed php:function registrations to the cycle collector
+--EXTENSIONS--
+dom
+--ENV--
+USE_ZEND_ALLOC=0
+--FILE--
+loadXML('');
+$doc->registerNodeClass(DOMElement::class, GcElement::class);
+
+$xp = new DOMXPath($doc);
+$xp->registerNamespace('php', 'http://php.net/xpath');
+
+$holder = new Holder();
+$holder->self = $holder;
+$xp->registerPhpFunctions(['cb' => [$holder, 'cb']]);
+
+$xp->query('/r/*[php:function("cb", .)]');
+unset($holder);
+
+/* Make the object a collector root candidate, then re-construct it: the
+ registration teardown must not stay reachable while it is being freed. */
+$tmp = $xp;
+unset($tmp);
+$xp->__construct($doc);
+
+var_dump($xp->query('/r/a')->length);
+?>
+--EXPECT--
+int(1)
diff -Nru php8.4-8.4.26/ext/dom/tests/DOMXPath_reconstruct_callbacks_ns_gc.phpt php8.4-8.4.27/ext/dom/tests/DOMXPath_reconstruct_callbacks_ns_gc.phpt
--- php8.4-8.4.26/ext/dom/tests/DOMXPath_reconstruct_callbacks_ns_gc.phpt 1970-01-01 00:00:00.000000000 +0000
+++ php8.4-8.4.27/ext/dom/tests/DOMXPath_reconstruct_callbacks_ns_gc.phpt 2026-10-19 14:38:59.000000000 +0000
@@ -0,0 +1,50 @@
+--TEST--
+Re-constructing a DOMXPath does not expose freed namespaced php:function registrations to the cycle collector
+--EXTENSIONS--
+dom
+--ENV--
+USE_ZEND_ALLOC=0
+--FILE--
+loadXML('');
+$doc->registerNodeClass(DOMElement::class, GcElement::class);
+
+$xp = new DOMXPath($doc);
+$xp->registerNamespace('my', 'urn:my');
+
+$holder = new Holder();
+$holder->self = $holder;
+$xp->registerPhpFunctionNS('urn:my', 'cb', [$holder, 'cb']);
+
+$xp->query('/r/*[my:cb(.)]');
+unset($holder);
+
+/* Make the object a collector root candidate, then re-construct it: the
+ registration teardown must not stay reachable while it is being freed. */
+$tmp = $xp;
+unset($tmp);
+$xp->__construct($doc);
+
+var_dump($xp->query('/r/a')->length);
+?>
+--EXPECT--
+int(1)
diff -Nru php8.4-8.4.26/ext/dom/tests/gh23365.phpt php8.4-8.4.27/ext/dom/tests/gh23365.phpt
--- php8.4-8.4.26/ext/dom/tests/gh23365.phpt 1970-01-01 00:00:00.000000000 +0000
+++ php8.4-8.4.27/ext/dom/tests/gh23365.phpt 2026-10-19 14:38:59.000000000 +0000
@@ -0,0 +1,53 @@
+--TEST--
+GH-23365 (DOMNode::insertBefore($n, $n) drops the node and leaves a self-referencing sibling list)
+--CREDITS--
+Alexandre Daubois
+--EXTENSIONS--
+dom
+--FILE--
+loadXML('text');
+$root = $doc->documentElement;
+
+$text = $root->firstChild;
+var_dump($root->insertBefore($text, $text) === $text);
+var_dump($root->childNodes->length);
+var_dump($text->parentNode === $root, $text->nextSibling === $text, $text->previousSibling === $text);
+
+$child = $root->lastChild;
+var_dump($root->insertBefore($child, $child) === $child);
+var_dump($root->childNodes->length);
+
+echo $doc->saveXML($root), PHP_EOL;
+
+$doc2 = new DOMDocument();
+$doc2->loadXML('');
+$el = $doc2->documentElement;
+$attr = $el->getAttributeNode('a');
+var_dump($el->insertBefore($attr, $attr) === $attr);
+echo $doc2->saveXML($el), PHP_EOL;
+
+$doc3 = new DOMDocument();
+$root3 = $doc3->appendChild($doc3->createElement('root'));
+$root3->appendChild($doc3->createTextNode('A'));
+$t = $root3->appendChild($doc3->createTextNode('B'));
+$root3->insertBefore($t, $t);
+$root3->appendChild($t);
+echo $doc3->saveXML($root3), PHP_EOL;
+unset($t, $root3, $doc3);
+echo "done", PHP_EOL;
+?>
+--EXPECT--
+bool(true)
+int(2)
+bool(true)
+bool(false)
+bool(false)
+bool(true)
+int(2)
+text
+bool(true)
+
+AB
+done
diff -Nru php8.4-8.4.26/ext/dom/tests/gh23729.phpt php8.4-8.4.27/ext/dom/tests/gh23729.phpt
--- php8.4-8.4.26/ext/dom/tests/gh23729.phpt 1970-01-01 00:00:00.000000000 +0000
+++ php8.4-8.4.27/ext/dom/tests/gh23729.phpt 2026-10-19 14:38:59.000000000 +0000
@@ -0,0 +1,73 @@
+--TEST--
+GH-23729 (Use-after-free when DOMXPath is reconstructed during an evaluation)
+--CREDITS--
+djarfluka
+--EXTENSIONS--
+dom
+--FILE--
+__construct($GLOBALS['other']);
+ } catch (Error $e) {
+ echo $e::class, ': ', $e->getMessage(), PHP_EOL;
+ }
+ return 'r';
+}
+
+function nested() {
+ echo 'nested: ', $GLOBALS['xpath']->evaluate('string(/root/b)'), PHP_EOL;
+ return 'n';
+}
+
+function test(string $class, object $doc, object $other) {
+ $xpath = new $class($doc);
+ $xpath->registerNamespace('php', 'http://php.net/xpath');
+ $xpath->registerPhpFunctions();
+
+ $GLOBALS['xpath'] = $xpath;
+ $GLOBALS['other'] = $other;
+
+ var_dump($xpath->evaluate('string(php:function("reconstruct"))'));
+ /* The evaluation the callback tried to destroy must still be usable. */
+ var_dump($xpath->evaluate('string(/root/a)'));
+ /* A nested evaluation must not lift the guard of the outer one. */
+ var_dump($xpath->evaluate('concat(php:function("nested"), php:function("reconstruct"))'));
+ var_dump($xpath->query('//b[php:function("reconstruct")]')->length);
+
+ /* Reconstructing outside of an evaluation is still allowed. */
+ $xpath->__construct($other);
+ var_dump($xpath->document->documentElement->nodeName);
+}
+
+$doc = new DOMDocument();
+$doc->loadXML('12');
+$other = new DOMDocument();
+$other->loadXML('');
+test(DOMXPath::class, $doc, $other);
+
+$doc = Dom\XMLDocument::createFromString('12');
+$other = Dom\XMLDocument::createFromString('');
+test(Dom\XPath::class, $doc, $other);
+
+?>
+--EXPECT--
+Error: Cannot call DOMXPath::__construct() while an XPath evaluation is in progress
+string(1) "r"
+string(1) "1"
+nested: 2
+Error: Cannot call DOMXPath::__construct() while an XPath evaluation is in progress
+string(2) "nr"
+Error: Cannot call DOMXPath::__construct() while an XPath evaluation is in progress
+int(1)
+string(5) "other"
+Error: Cannot call Dom\XPath::__construct() while an XPath evaluation is in progress
+string(1) "r"
+string(1) "1"
+nested: 2
+Error: Cannot call Dom\XPath::__construct() while an XPath evaluation is in progress
+string(2) "nr"
+Error: Cannot call Dom\XPath::__construct() while an XPath evaluation is in progress
+int(1)
+string(5) "other"
diff -Nru php8.4-8.4.26/ext/dom/tests/gh23897.phpt php8.4-8.4.27/ext/dom/tests/gh23897.phpt
--- php8.4-8.4.26/ext/dom/tests/gh23897.phpt 1970-01-01 00:00:00.000000000 +0000
+++ php8.4-8.4.27/ext/dom/tests/gh23897.phpt 2026-10-19 14:38:59.000000000 +0000
@@ -0,0 +1,25 @@
+--TEST--
+GH-23897 (Assertion failure in php_dom_xpath_callback_dispatch() after failed registerPhpFunctions())
+--EXTENSIONS--
+dom
+--FILE--
+loadXML('');
+
+$xpath = new DOMXPath($dom);
+$xpath->registerNamespace('php', 'http://php.net/xpath');
+try {
+ $xpath->registerPhpFunctions('testPhpFunction');
+} catch (Throwable $e) {
+ echo $e::class, ': ', $e->getMessage(), PHP_EOL;
+}
+try {
+ var_dump($xpath->evaluate('php:function("testPhpFunction")'));
+} catch (Throwable $e) {
+ echo $e::class, ': ', $e->getMessage(), PHP_EOL;
+}
+?>
+--EXPECT--
+TypeError: DOMXPath::registerPhpFunctions(): Argument #1 ($restrict) must be a callable, function "testPhpFunction" not found or invalid function name
+Error: No callbacks were registered
diff -Nru php8.4-8.4.26/ext/dom/tests/modern/css_selectors/lexbor_contains.phpt php8.4-8.4.27/ext/dom/tests/modern/css_selectors/lexbor_contains.phpt
--- php8.4-8.4.26/ext/dom/tests/modern/css_selectors/lexbor_contains.phpt 1970-01-01 00:00:00.000000000 +0000
+++ php8.4-8.4.27/ext/dom/tests/modern/css_selectors/lexbor_contains.phpt 2026-10-19 14:38:59.000000000 +0000
@@ -0,0 +1,16 @@
+--TEST--
+CSS Selectors - Pseudo classes: :lexbor-contains() with an argument longer than its string header
+--EXTENSIONS--
+dom
+--FILE--
+needle
', LIBXML_NOERROR);
+
+var_dump($dom->querySelectorAll(':lexbor-contains("' . str_repeat('needle', 1024) . '")')->length);
+var_dump($dom->querySelectorAll(':lexbor-contains("needle")')->length);
+
+?>
+--EXPECT--
+int(0)
+int(0)
diff -Nru php8.4-8.4.26/ext/dom/tests/modern/html/parser/HTMLDocument_unprefixed_attributes_in_foreign_content.phpt php8.4-8.4.27/ext/dom/tests/modern/html/parser/HTMLDocument_unprefixed_attributes_in_foreign_content.phpt
--- php8.4-8.4.26/ext/dom/tests/modern/html/parser/HTMLDocument_unprefixed_attributes_in_foreign_content.phpt 1970-01-01 00:00:00.000000000 +0000
+++ php8.4-8.4.27/ext/dom/tests/modern/html/parser/HTMLDocument_unprefixed_attributes_in_foreign_content.phpt 2026-10-19 14:38:59.000000000 +0000
@@ -0,0 +1,59 @@
+--TEST--
+Unprefixed attributes in foreign content are in no namespace
+--EXTENSIONS--
+dom
+--FILE--
+';
+$doc = Dom\HTMLDocument::createFromString($html, LIBXML_NOERROR);
+
+var_dump([
+ 'svg #s' => $doc->getElementById('s')?->tagName,
+ 'math #m' => $doc->getElementById('m')?->tagName,
+ 'html #p' => $doc->getElementById('p')?->tagName,
+ 'xml:id #r' => $doc->getElementById('r')?->tagName,
+]);
+
+foreach ($doc->getElementById('s')->attributes as $attr) {
+ echo $attr->name, ' => ', var_export($attr->namespaceURI, true), "\n";
+}
+
+$contexts = [
+ 'http://www.w3.org/1999/xlink' => 'z',
+ 'http://www.w3.org/XML/1998/namespace' => 'z',
+ 'http://www.w3.org/2000/xmlns/' => 'xmlns',
+];
+foreach ($contexts as $uri => $name) {
+ $fragment_doc = Dom\HTMLDocument::createEmpty();
+ $context = $fragment_doc->createElementNS($uri, $name);
+ $fragment_doc->appendChild($context);
+ $context->innerHTML = '';
+
+ echo $uri, "\n ", $context->innerHTML, "\n ";
+ var_dump($fragment_doc->getElementById('q')?->tagName);
+}
+?>
+--EXPECT--
+array(4) {
+ ["svg #s"]=>
+ string(3) "svg"
+ ["math #m"]=>
+ string(4) "math"
+ ["html #p"]=>
+ string(1) "P"
+ ["xml:id #r"]=>
+ NULL
+}
+id => NULL
+xlink:href => 'http://www.w3.org/1999/xlink'
+xml:lang => 'http://www.w3.org/XML/1998/namespace'
+xmlns:xlink => 'http://www.w3.org/2000/xmlns/'
+http://www.w3.org/1999/xlink
+
+ string(1) "Z"
+http://www.w3.org/XML/1998/namespace
+
+ string(1) "Z"
+http://www.w3.org/2000/xmlns/
+
+ string(1) "Z"
diff -Nru php8.4-8.4.26/ext/dom/tests/oom_xpath.phpt php8.4-8.4.27/ext/dom/tests/oom_xpath.phpt
--- php8.4-8.4.26/ext/dom/tests/oom_xpath.phpt 1970-01-01 00:00:00.000000000 +0000
+++ php8.4-8.4.27/ext/dom/tests/oom_xpath.phpt 2026-10-19 14:38:59.000000000 +0000
@@ -0,0 +1,22 @@
+--TEST--
+DOMXPath::query() with large result set doesn't reach hard memory limit
+--EXTENSIONS--
+dom
+--INI--
+memory_limit=64M
+--FILE--
+' . str_repeat('', 1000000) . '');
+
+$xml = new DOMDocument;
+$xml->load($path);
+$result = (new DOMXPath($xml))->query("//a");
+?>
+--CLEAN--
+
+--EXPECTF--
+Fatal error: Allowed memory size of 67108864 bytes exhausted %S(tried to allocate %d bytes) in %s on line %d
+
diff -Nru php8.4-8.4.26/ext/dom/tests/xpath_reentrant_context.phpt php8.4-8.4.27/ext/dom/tests/xpath_reentrant_context.phpt
--- php8.4-8.4.26/ext/dom/tests/xpath_reentrant_context.phpt 1970-01-01 00:00:00.000000000 +0000
+++ php8.4-8.4.27/ext/dom/tests/xpath_reentrant_context.phpt 2026-10-19 14:38:59.000000000 +0000
@@ -0,0 +1,54 @@
+--TEST--
+DOMXPath: Reentrant evaluation must restore the context node and namespaces
+--EXTENSIONS--
+dom
+--FILE--
+loadXML('AA2BB2B3');
+$xp = new DOMXPath($doc);
+$xp->registerNamespace('php', 'http://php.net/xpath');
+$xp->registerPhpFunctions();
+$b = $doc->documentElement->lastElementChild;
+$GLOBALS['xp'] = $xp;
+$GLOBALS['b'] = $b;
+function callback($node) {
+ $GLOBALS['xp']->query('x[2]', $GLOBALS['b']);
+ return true;
+}
+
+echo "context node:\n";
+var_dump($xp->query('a[php:function("callback", .) and x]', $doc->documentElement)->length);
+var_dump($xp->evaluate('count(a[php:function("callback", .) and x])', $doc->documentElement));
+
+echo "in-scope namespace:\n";
+var_dump($xp->query('a[php:function("callback", .) and p:y]', $doc->documentElement)->length);
+
+echo "position and size:\n";
+var_dump($xp->query('a[php:function("callback", .) and position() = 2]', $doc->documentElement)->length);
+var_dump($xp->query('a[php:function("callback", .) and last() = 2]', $doc->documentElement)->length);
+
+echo "after reentry:\n";
+var_dump($xp->query('a[x]', $doc->documentElement)->length);
+
+echo "Dom\\XPath:\n";
+$modern = Dom\XMLDocument::createFromString('AA2BB2B3');
+$GLOBALS['xp'] = new Dom\XPath($modern);
+$GLOBALS['xp']->registerNamespace('php', 'http://php.net/xpath');
+$GLOBALS['xp']->registerPhpFunctions();
+$GLOBALS['b'] = $modern->documentElement->lastElementChild;
+var_dump($GLOBALS['xp']->query('a[php:function("callback", .) and x]', $modern->documentElement)->length);
+?>
+--EXPECT--
+context node:
+int(2)
+float(2)
+in-scope namespace:
+int(1)
+position and size:
+int(1)
+int(2)
+after reentry:
+int(2)
+Dom\XPath:
+int(2)
diff -Nru php8.4-8.4.26/ext/dom/xpath.c php8.4-8.4.27/ext/dom/xpath.c
--- php8.4-8.4.26/ext/dom/xpath.c 2026-09-22 15:00:02.000000000 +0000
+++ php8.4-8.4.27/ext/dom/xpath.c 2026-10-19 14:38:59.000000000 +0000
@@ -126,6 +126,13 @@
RETURN_THROWS();
}
+ dom_xpath_object *intern = Z_XPATHOBJ_P(ZEND_THIS);
+ if (UNEXPECTED(intern->evaluation_depth > 0)) {
+ zend_throw_error(NULL, "Cannot call %s::__construct() while an XPath evaluation is in progress",
+ ZSTR_VAL(Z_OBJCE_P(ZEND_THIS)->name));
+ RETURN_THROWS();
+ }
+
DOM_GET_OBJ(docp, doc, xmlDocPtr, docobj);
xmlXPathContextPtr ctx = xmlXPathNewContext(docp);
@@ -134,7 +141,6 @@
RETURN_THROWS();
}
- dom_xpath_object *intern = Z_XPATHOBJ_P(ZEND_THIS);
xmlXPathContextPtr oldctx = intern->dom.ptr;
if (oldctx != NULL) {
php_libxml_decrement_doc_ref((php_libxml_node_object *) &intern->dom);
@@ -287,6 +293,10 @@
RETURN_THROWS();
}
+ xmlNodePtr old_node = ctxp->node;
+ xmlNsPtr *old_namespaces = ctxp->namespaces;
+ int old_nsNr = ctxp->nsNr;
+
ctxp->node = nodep;
php_dom_in_scope_ns in_scope_ns;
@@ -301,13 +311,15 @@
ctxp->nsNr = in_scope_ns.count;
}
+ intern->evaluation_depth++;
xmlXPathObjectPtr xpathobjp = xmlXPathEvalExpression(BAD_CAST expr, ctxp);
- ctxp->node = NULL;
+ intern->evaluation_depth--;
+ ctxp->node = old_node;
+ ctxp->namespaces = old_namespaces;
+ ctxp->nsNr = old_nsNr;
if (register_node_ns && nodep != NULL) {
php_dom_in_scope_ns_destroy(&in_scope_ns);
- ctxp->namespaces = NULL;
- ctxp->nsNr = 0;
}
if (! xpathobjp) {
@@ -337,7 +349,9 @@
if (xpathobjp->type == XPATH_NODESET && NULL != (nodesetp = xpathobjp->nodesetval) && nodesetp->nodeNr) {
array_init_size(&retval, nodesetp->nodeNr);
- zend_hash_real_init_packed(Z_ARRVAL_P(&retval));
+ if (zend_hash_real_finit_packed(Z_ARRVAL(retval), /* fallible */ true) != SUCCESS) {
+ goto oom_nodeset;
+ }
for (int i = 0; i < nodesetp->nodeNr; i++) {
xmlNodePtr node = nodesetp->nodeTab[i];
zval child;
@@ -367,6 +381,9 @@
php_dom_create_object(node, &child, &intern->dom);
}
add_next_index_zval(&retval, &child);
+ if (ZEND_HAS_OOM()) {
+ goto oom_nodeset;
+ }
}
} else {
ZVAL_EMPTY_ARRAY(&retval);
@@ -375,6 +392,13 @@
nodeobj = Z_DOMOBJ_P(return_value);
dom_xpath_iter(&retval, nodeobj);
break;
+
+oom_nodeset:
+ zval_ptr_dtor(&retval);
+ xmlXPathFreeObject(xpathobjp);
+ zval_ptr_dtor(return_value);
+ ZVAL_NULL(return_value);
+ RETURN_OOM();
}
case XPATH_BOOLEAN:
diff -Nru php8.4-8.4.26/ext/dom/xpath_callbacks.c php8.4-8.4.27/ext/dom/xpath_callbacks.c
--- php8.4-8.4.26/ext/dom/xpath_callbacks.c 2026-09-22 15:00:02.000000000 +0000
+++ php8.4-8.4.27/ext/dom/xpath_callbacks.c 2026-10-19 14:38:59.000000000 +0000
@@ -76,18 +76,22 @@
PHP_DOM_EXPORT void php_dom_xpath_callbacks_dtor(php_dom_xpath_callbacks *registry)
{
if (registry->php_ns) {
- php_dom_xpath_callback_ns_dtor(registry->php_ns);
- efree(registry->php_ns);
+ php_dom_xpath_callback_ns *php_ns = registry->php_ns;
+ registry->php_ns = NULL;
+ php_dom_xpath_callback_ns_dtor(php_ns);
+ efree(php_ns);
}
if (registry->namespaces) {
+ HashTable *namespaces = registry->namespaces;
+ registry->namespaces = NULL;
php_dom_xpath_callback_ns *ns;
- ZEND_HASH_MAP_FOREACH_PTR(registry->namespaces, ns) {
+ ZEND_HASH_MAP_FOREACH_PTR(namespaces, ns) {
php_dom_xpath_callback_ns_dtor(ns);
efree(ns);
} ZEND_HASH_FOREACH_END();
- zend_hash_destroy(registry->namespaces);
- FREE_HASHTABLE(registry->namespaces);
+ zend_hash_destroy(namespaces);
+ FREE_HASHTABLE(namespaces);
}
php_dom_xpath_callbacks_clean_node_list(registry);
}
@@ -403,7 +407,7 @@
{
zval callback_retval;
- if (UNEXPECTED(ns == NULL)) {
+ if (UNEXPECTED(ns == NULL || ns->mode == PHP_DOM_REG_FUNC_MODE_NONE)) {
zend_throw_error(NULL, "No callbacks were registered");
return FAILURE;
}
diff -Nru php8.4-8.4.26/ext/exif/exif.c php8.4-8.4.27/ext/exif/exif.c
--- php8.4-8.4.26/ext/exif/exif.c 2026-09-22 15:00:02.000000000 +0000
+++ php8.4-8.4.27/ext/exif/exif.c 2026-10-19 14:38:59.000000000 +0000
@@ -2147,7 +2147,10 @@
EXIF_ERRLOG_FSREALLOC(ImageInfo)
return -1;
}
- tmp = safe_erealloc(ImageInfo->file.list[section_index].data, 1, size, 0);
+ tmp = safe_ferealloc(ImageInfo->file.list[section_index].data, 1, size, 0, /* fallible */ true);
+ if (!tmp) {
+ return -1;
+ }
ImageInfo->file.list[section_index].data = tmp;
ImageInfo->file.list[section_index].size = size;
return 0;
@@ -2262,7 +2265,11 @@
break;
}
if (length>1) {
- info_value->list = safe_emalloc(length, sizeof(image_info_value), 0);
+ info_value->list = safe_femalloc(length, sizeof(image_info_value), 0, /* fallible */ true);
+ if (!info_value->list) {
+ info_data->length = 0;
+ return;
+ }
} else {
info_value = &info_data->value;
}
@@ -2448,13 +2455,13 @@
/* {{{ add_assoc_image_info
* Add image_info to associative array value. */
-static void add_assoc_image_info(zval *value, int sub_array, image_info_type *image_info, int section_index)
+static zend_result add_assoc_image_info(zval *value, int sub_array, image_info_type *image_info, int section_index)
{
char buffer[64], uname[64];
int idx = 0, unknown = 0;
if (!image_info->info_list[section_index].count) {
- return;
+ return SUCCESS;
}
zval tmpi;
@@ -2592,6 +2599,12 @@
}
break;
}
+ if (ZEND_HAS_OOM()) {
+ if (l > 1) {
+ zval_ptr_dtor(&array);
+ }
+ goto failure;
+ }
}
if (l > 1) {
add_assoc_zval(&tmpi, name, &array);
@@ -2600,10 +2613,20 @@
}
}
}
+ if (ZEND_HAS_OOM()) {
+ goto failure;
+ }
}
if (sub_array) {
add_assoc_zval(value, exif_get_sectionname(section_index), &tmpi);
}
+ return ZEND_HAS_OOM() ? FAILURE : SUCCESS;
+
+failure:
+ if (sub_array) {
+ zval_ptr_dtor(&tmpi);
+ }
+ return FAILURE;
}
/* }}} */
@@ -2872,6 +2895,10 @@
if (!ImageInfo->read_thumbnail || !ImageInfo->Thumbnail.offset || !ImageInfo->Thumbnail.size) {
return; /* ignore this call */
}
+ /* new_size below sums the accumulated tag values, so stop once over the limit. */
+ if (ZEND_HAS_OOM()) {
+ return;
+ }
#ifdef EXIF_DEBUG
exif_error_docref(NULL EXIFERR_CC, ImageInfo, E_NOTICE, "Thumbnail: filetype = %d", ImageInfo->Thumbnail.filetype);
#endif
@@ -2948,6 +2975,17 @@
}
/* }}} */
+/* Rejects a thumbnail whose data is not actually present in the file. */
+static bool exif_thumbnail_in_file(image_info_type *ImageInfo)
+{
+ if (ImageInfo->Thumbnail.size > ImageInfo->FileSize
+ || ImageInfo->Thumbnail.offset > ImageInfo->FileSize - ImageInfo->Thumbnail.size) {
+ EXIF_ERRLOG_THUMBEOF(ImageInfo)
+ return false;
+ }
+ return true;
+}
+
/* {{{ exif_thumbnail_extract
* Grab the thumbnail, corrected */
static void exif_thumbnail_extract(image_info_type *ImageInfo, const exif_offset_info *info) {
@@ -3305,7 +3343,10 @@
}
if (byte_count>sizeof(cbuf)) {
/* mark as outside range and get buffer */
- value_ptr = safe_emalloc(byte_count, 1, 0);
+ value_ptr = safe_femalloc(byte_count, 1, 0, /* fallible */ true);
+ if (!value_ptr) {
+ return false;
+ }
outside = value_ptr;
} else {
/* In most cases we only access a small range so
@@ -3593,6 +3634,10 @@
exif_error_docref("exif_read_data#error_ifd" EXIFERR_CC, ImageInfo, E_WARNING, "corrupt EXIF header: maximum directory nesting level reached");
return false;
}
+ /* Each tag may retain up to FileSize bytes, so stop once over the limit. */
+ if (ZEND_HAS_OOM()) {
+ return false;
+ }
ImageInfo->ifd_nesting_level++;
result = exif_process_IFD_TAG_impl(ImageInfo, dir_entry, info, displacement, section_index, ReadNextIFD, tag_table);
ImageInfo->ifd_nesting_level--;
@@ -3792,6 +3837,10 @@
jpeg_sof_info sof_info;
while (true) {
+ /* Every section is retained, so stop once over the limit. */
+ if (ZEND_HAS_OOM()) {
+ return false;
+ }
#ifdef EXIF_DEBUG
fpos = php_stream_tell(ImageInfo->infile);
exif_error_docref(NULL EXIFERR_CC, ImageInfo, E_NOTICE, "Needing section %d @ 0x%08X", ImageInfo->file.count, fpos);
@@ -4201,8 +4250,11 @@
#ifdef EXIF_DEBUG
exif_error_docref(NULL EXIFERR_CC, ImageInfo, E_NOTICE, "%s THUMBNAIL @0x%04X + 0x%04X", ImageInfo->Thumbnail.data ? "Ignore" : "Read", ImageInfo->Thumbnail.offset, ImageInfo->Thumbnail.size);
#endif
- if (!ImageInfo->Thumbnail.data) {
- ImageInfo->Thumbnail.data = safe_emalloc(ImageInfo->Thumbnail.size, 1, 0);
+ if (!ImageInfo->Thumbnail.data && exif_thumbnail_in_file(ImageInfo)) {
+ ImageInfo->Thumbnail.data = safe_femalloc(ImageInfo->Thumbnail.size, 1, 0, /* fallible */ true);
+ if (!ImageInfo->Thumbnail.data) {
+ return false;
+ }
php_stream_seek(ImageInfo->infile, ImageInfo->Thumbnail.offset, SEEK_SET);
fgot = exif_read_from_stream_file_looped(ImageInfo->infile, ImageInfo->Thumbnail.data, ImageInfo->Thumbnail.size);
if (fgot != ImageInfo->Thumbnail.size) {
@@ -4241,8 +4293,12 @@
#ifdef EXIF_DEBUG
exif_error_docref(NULL EXIFERR_CC, ImageInfo, E_NOTICE, "%s THUMBNAIL @0x%04X + 0x%04X", ImageInfo->Thumbnail.data ? "Ignore" : "Read", ImageInfo->Thumbnail.offset, ImageInfo->Thumbnail.size);
#endif
- if (!ImageInfo->Thumbnail.data && ImageInfo->Thumbnail.offset && ImageInfo->Thumbnail.size && ImageInfo->read_thumbnail) {
- ImageInfo->Thumbnail.data = safe_emalloc(ImageInfo->Thumbnail.size, 1, 0);
+ if (!ImageInfo->Thumbnail.data && ImageInfo->Thumbnail.offset && ImageInfo->Thumbnail.size && ImageInfo->read_thumbnail
+ && exif_thumbnail_in_file(ImageInfo)) {
+ ImageInfo->Thumbnail.data = safe_femalloc(ImageInfo->Thumbnail.size, 1, 0, /* fallible */ true);
+ if (!ImageInfo->Thumbnail.data) {
+ return false;
+ }
php_stream_seek(ImageInfo->infile, ImageInfo->Thumbnail.offset, SEEK_SET);
fgot = exif_read_from_stream_file_looped(ImageInfo->infile, ImageInfo->Thumbnail.data, ImageInfo->Thumbnail.size);
if (fgot != ImageInfo->Thumbnail.size) {
@@ -4282,6 +4338,9 @@
if (ImageInfo->ifd_nesting_level > MAX_IFD_NESTING_LEVEL) {
return false;
}
+ if (ZEND_HAS_OOM()) {
+ return false;
+ }
ImageInfo->ifd_nesting_level++;
result = exif_process_IFD_in_TIFF_impl(ImageInfo, dir_offset, section_index);
ImageInfo->ifd_nesting_level--;
@@ -4676,19 +4735,21 @@
exif_error_docref(NULL EXIFERR_CC, &ImageInfo, E_NOTICE, "Adding image infos");
#endif
- add_assoc_image_info(return_value, sub_arrays, &ImageInfo, SECTION_FILE );
- add_assoc_image_info(return_value, 1, &ImageInfo, SECTION_COMPUTED );
- add_assoc_image_info(return_value, sub_arrays, &ImageInfo, SECTION_ANY_TAG );
- add_assoc_image_info(return_value, sub_arrays, &ImageInfo, SECTION_IFD0 );
- add_assoc_image_info(return_value, 1, &ImageInfo, SECTION_THUMBNAIL );
- add_assoc_image_info(return_value, 1, &ImageInfo, SECTION_COMMENT );
- add_assoc_image_info(return_value, sub_arrays, &ImageInfo, SECTION_EXIF );
- add_assoc_image_info(return_value, sub_arrays, &ImageInfo, SECTION_GPS );
- add_assoc_image_info(return_value, sub_arrays, &ImageInfo, SECTION_INTEROP );
- add_assoc_image_info(return_value, sub_arrays, &ImageInfo, SECTION_FPIX );
- add_assoc_image_info(return_value, sub_arrays, &ImageInfo, SECTION_APP12 );
- add_assoc_image_info(return_value, sub_arrays, &ImageInfo, SECTION_WINXP );
- add_assoc_image_info(return_value, sub_arrays, &ImageInfo, SECTION_MAKERNOTE );
+ if (UNEXPECTED(add_assoc_image_info(return_value, sub_arrays, &ImageInfo, SECTION_FILE) == FAILURE
+ || add_assoc_image_info(return_value, 1, &ImageInfo, SECTION_COMPUTED ) == FAILURE
+ || add_assoc_image_info(return_value, sub_arrays, &ImageInfo, SECTION_ANY_TAG ) == FAILURE
+ || add_assoc_image_info(return_value, sub_arrays, &ImageInfo, SECTION_IFD0 ) == FAILURE
+ || add_assoc_image_info(return_value, 1, &ImageInfo, SECTION_THUMBNAIL ) == FAILURE
+ || add_assoc_image_info(return_value, 1, &ImageInfo, SECTION_COMMENT ) == FAILURE
+ || add_assoc_image_info(return_value, sub_arrays, &ImageInfo, SECTION_EXIF ) == FAILURE
+ || add_assoc_image_info(return_value, sub_arrays, &ImageInfo, SECTION_GPS ) == FAILURE
+ || add_assoc_image_info(return_value, sub_arrays, &ImageInfo, SECTION_INTEROP ) == FAILURE
+ || add_assoc_image_info(return_value, sub_arrays, &ImageInfo, SECTION_FPIX ) == FAILURE
+ || add_assoc_image_info(return_value, sub_arrays, &ImageInfo, SECTION_APP12 ) == FAILURE
+ || add_assoc_image_info(return_value, sub_arrays, &ImageInfo, SECTION_WINXP ) == FAILURE
+ || add_assoc_image_info(return_value, sub_arrays, &ImageInfo, SECTION_MAKERNOTE ) == FAILURE)) {
+ goto oom;
+ }
#ifdef EXIF_DEBUG
exif_error_docref(NULL EXIFERR_CC, &ImageInfo, E_NOTICE, "Discarding info");
@@ -4699,6 +4760,13 @@
#ifdef EXIF_DEBUG
php_error_docref1(NULL, (Z_TYPE_P(stream) == IS_RESOURCE ? "" : Z_STRVAL_P(stream)), E_NOTICE, "Done");
#endif
+ return;
+
+oom:
+ exif_discard_imageinfo(&ImageInfo);
+ zval_ptr_dtor(return_value);
+ ZVAL_NULL(return_value);
+ RETURN_OOM();
}
/* }}} */
@@ -4763,7 +4831,7 @@
exif_error_docref(NULL EXIFERR_CC, &ImageInfo, E_NOTICE, "Returning thumbnail(%d)", ImageInfo.Thumbnail.size);
#endif
- ZVAL_STRINGL(return_value, ImageInfo.Thumbnail.data, ImageInfo.Thumbnail.size);
+ RETVAL_FSTRINGL(ImageInfo.Thumbnail.data, ImageInfo.Thumbnail.size);
if (arg_c >= 3) {
if (!ImageInfo.Thumbnail.width || !ImageInfo.Thumbnail.height) {
if (!exif_scan_thumbnail(&ImageInfo)) {
diff -Nru php8.4-8.4.26/ext/exif/tests/oom_exif_big_thumbnail.inc php8.4-8.4.27/ext/exif/tests/oom_exif_big_thumbnail.inc
--- php8.4-8.4.26/ext/exif/tests/oom_exif_big_thumbnail.inc 1970-01-01 00:00:00.000000000 +0000
+++ php8.4-8.4.27/ext/exif/tests/oom_exif_big_thumbnail.inc 2026-10-19 14:38:59.000000000 +0000
@@ -0,0 +1,47 @@
+ real data
+ $t .= pack('vvVV', 0x0117, 4, 1, $size); // StripByteCounts
+ $t .= pack('V', 0);
+
+ $fp = fopen($path, 'wb');
+ fwrite($fp, $t);
+ $chunk = str_repeat("\xAB", 1024 * 1024);
+ for ($written = 0; $written < $size; $written += strlen($chunk)) {
+ fwrite($fp, $chunk);
+ }
+ fclose($fp);
+}
+
+/* Writes a TIFF with a single tag of $count elements of $format, whose value
+ * really is present in the file. $bytes_per is the format's element size. */
+function oom_exif_write_big_tag(string $path, int $tag, int $format, int $count, int $bytes_per = 1): void
+{
+ $payload_off = 8 + 2 + 12 + 4;
+ $t = "II*\x00" . pack('V', 8);
+ $t .= pack('v', 1);
+ $t .= pack('vvVV', $tag, $format, $count, $payload_off);
+ $t .= pack('V', 0);
+
+ $fp = fopen($path, 'wb');
+ fwrite($fp, $t);
+ $size = $count * $bytes_per;
+ $chunk = str_repeat("\x01", 1024 * 1024);
+ for ($written = 0; $written < $size; $written += strlen($chunk)) {
+ fwrite($fp, substr($chunk, 0, min(strlen($chunk), $size - $written)));
+ }
+ fclose($fp);
+}
diff -Nru php8.4-8.4.26/ext/exif/tests/oom_exif_numeric_metadata.phpt php8.4-8.4.27/ext/exif/tests/oom_exif_numeric_metadata.phpt
--- php8.4-8.4.26/ext/exif/tests/oom_exif_numeric_metadata.phpt 1970-01-01 00:00:00.000000000 +0000
+++ php8.4-8.4.27/ext/exif/tests/oom_exif_numeric_metadata.phpt 2026-10-19 14:38:59.000000000 +0000
@@ -0,0 +1,38 @@
+--TEST--
+exif_read_data() with expanded numeric metadata doesn't reach hard limit
+--EXTENSIONS--
+exif
+--INI--
+memory_limit=128M
+--FILE--
+
+--CLEAN--
+
+--EXPECTF--
+Fatal error: Allowed memory size of 134217728 bytes exhausted %S(tried to allocate %d bytes) in %s on line %d
diff -Nru php8.4-8.4.26/ext/exif/tests/oom_exif_read_data_tags.phpt php8.4-8.4.27/ext/exif/tests/oom_exif_read_data_tags.phpt
--- php8.4-8.4.26/ext/exif/tests/oom_exif_read_data_tags.phpt 1970-01-01 00:00:00.000000000 +0000
+++ php8.4-8.4.27/ext/exif/tests/oom_exif_read_data_tags.phpt 2026-10-19 14:38:59.000000000 +0000
@@ -0,0 +1,38 @@
+--TEST--
+exif_read_data() doesn't reach hard limit when tag values accumulate
+--EXTENSIONS--
+exif
+--INI--
+memory_limit=8M
+--SKIPIF--
+
+--FILE--
+
+--CLEAN--
+
+--EXPECTF--
+Fatal error: Allowed memory size of %d bytes exhausted %S(tried to allocate %d bytes) in %s on line %d
diff -Nru php8.4-8.4.26/ext/exif/tests/oom_exif_scan_jpeg_header.phpt php8.4-8.4.27/ext/exif/tests/oom_exif_scan_jpeg_header.phpt
--- php8.4-8.4.26/ext/exif/tests/oom_exif_scan_jpeg_header.phpt 1970-01-01 00:00:00.000000000 +0000
+++ php8.4-8.4.27/ext/exif/tests/oom_exif_scan_jpeg_header.phpt 2026-10-19 14:38:59.000000000 +0000
@@ -0,0 +1,29 @@
+--TEST--
+exif_read_data() doesn't reach hard limit when JPEG sections accumulate
+--EXTENSIONS--
+exif
+--INI--
+memory_limit=8M
+--SKIPIF--
+
+--FILE--
+
+--CLEAN--
+
+--EXPECTF--
+Fatal error: Allowed memory size of %d bytes exhausted %S(tried to allocate %d bytes) in %s on line %d
diff -Nru php8.4-8.4.26/ext/exif/tests/oom_exif_thumbnail_large_file_001.phpt php8.4-8.4.27/ext/exif/tests/oom_exif_thumbnail_large_file_001.phpt
--- php8.4-8.4.26/ext/exif/tests/oom_exif_thumbnail_large_file_001.phpt 1970-01-01 00:00:00.000000000 +0000
+++ php8.4-8.4.27/ext/exif/tests/oom_exif_thumbnail_large_file_001.phpt 2026-10-19 14:38:59.000000000 +0000
@@ -0,0 +1,21 @@
+--TEST--
+exif_thumbnail() doesn't reach hard limit when the thumbnail is larger than the memory limit
+--EXTENSIONS--
+exif
+--INI--
+memory_limit=8M
+--FILE--
+
+--CLEAN--
+
+--EXPECTF--
+Fatal error: Allowed memory size of %d bytes exhausted %S(tried to allocate %d bytes) in %s on line %d
diff -Nru php8.4-8.4.26/ext/exif/tests/oom_exif_thumbnail_large_file_002.phpt php8.4-8.4.27/ext/exif/tests/oom_exif_thumbnail_large_file_002.phpt
--- php8.4-8.4.26/ext/exif/tests/oom_exif_thumbnail_large_file_002.phpt 1970-01-01 00:00:00.000000000 +0000
+++ php8.4-8.4.27/ext/exif/tests/oom_exif_thumbnail_large_file_002.phpt 2026-10-19 14:38:59.000000000 +0000
@@ -0,0 +1,22 @@
+--TEST--
+exif_read_data() doesn't reach hard limit reading a thumbnail larger than the hard limit
+--EXTENSIONS--
+exif
+--INI--
+memory_limit=8M
+--FILE--
+
+--CLEAN--
+
+--EXPECTF--
+Fatal error: Allowed memory size of %d bytes exhausted %S(tried to allocate %d bytes) in %s on line %d
diff -Nru php8.4-8.4.26/ext/exif/tests/oom_exif_thumbnail_tiff.phpt php8.4-8.4.27/ext/exif/tests/oom_exif_thumbnail_tiff.phpt
--- php8.4-8.4.26/ext/exif/tests/oom_exif_thumbnail_tiff.phpt 1970-01-01 00:00:00.000000000 +0000
+++ php8.4-8.4.27/ext/exif/tests/oom_exif_thumbnail_tiff.phpt 2026-10-19 14:38:59.000000000 +0000
@@ -0,0 +1,32 @@
+--TEST--
+exif_thumbnail() rejects a TIFF thumbnail that is not present in the file
+--EXTENSIONS--
+exif
+--INI--
+memory_limit=128M
+--FILE--
+
+--CLEAN--
+
+--EXPECTF--
+Warning: exif_thumbnail(%s): Thumbnail goes IFD boundary or end of file reached in %s on line %d
+bool(false)
diff -Nru php8.4-8.4.26/ext/ffi/ffi.c php8.4-8.4.27/ext/ffi/ffi.c
--- php8.4-8.4.26/ext/ffi/ffi.c 2026-09-22 15:00:02.000000000 +0000
+++ php8.4-8.4.27/ext/ffi/ffi.c 2026-10-19 14:38:59.000000000 +0000
@@ -923,9 +923,7 @@
zend_ffi_callback_data *callback_data = Z_PTR_P(zv);
ffi_closure_free(callback_data->callback);
- if (callback_data->fcc.function_handler->common.fn_flags & ZEND_ACC_CLOSURE) {
- OBJ_RELEASE(ZEND_CLOSURE_OBJECT(callback_data->fcc.function_handler));
- }
+ zend_fcc_dtor(&callback_data->fcc);
for (int i = 0; i < callback_data->arg_count; ++i) {
if (callback_data->arg_types[i]->type == FFI_TYPE_STRUCT) {
efree(callback_data->arg_types[i]);
@@ -941,18 +939,12 @@
static void zend_ffi_callback_trampoline(ffi_cif* cif, void* ret, void** args, void* data) /* {{{ */
{
zend_ffi_callback_data *callback_data = (zend_ffi_callback_data*)data;
- zend_fcall_info fci;
+ zval *params;
zend_ffi_type *ret_type;
zval retval;
ALLOCA_FLAG(use_heap)
- fci.size = sizeof(zend_fcall_info);
- ZVAL_UNDEF(&fci.function_name);
- fci.retval = &retval;
- fci.params = do_alloca(sizeof(zval) *callback_data->arg_count, use_heap);
- fci.object = NULL;
- fci.param_count = callback_data->arg_count;
- fci.named_params = NULL;
+ params = do_alloca(sizeof(zval) *callback_data->arg_count, use_heap);
if (callback_data->type->func.args) {
int n = 0;
@@ -960,24 +952,21 @@
ZEND_HASH_PACKED_FOREACH_PTR(callback_data->type->func.args, arg_type) {
arg_type = ZEND_FFI_TYPE(arg_type);
- zend_ffi_cdata_to_zval(NULL, args[n], arg_type, BP_VAR_R, &fci.params[n], (zend_ffi_flags)(arg_type->attr & ZEND_FFI_ATTR_CONST), 0, 0);
+ zend_ffi_cdata_to_zval(NULL, args[n], arg_type, BP_VAR_R, ¶ms[n], (zend_ffi_flags)(arg_type->attr & ZEND_FFI_ATTR_CONST), 0, 0);
n++;
} ZEND_HASH_FOREACH_END();
}
- ZVAL_UNDEF(&retval);
- if (zend_call_function(&fci, &callback_data->fcc) != SUCCESS) {
- zend_throw_error(zend_ffi_exception_ce, "Cannot call callback");
- }
+ zend_call_known_fcc(&callback_data->fcc, &retval, callback_data->arg_count, params, NULL);
if (callback_data->arg_count) {
int n = 0;
for (n = 0; n < callback_data->arg_count; n++) {
- zval_ptr_dtor(&fci.params[n]);
+ zval_ptr_dtor(¶ms[n]);
}
}
- free_alloca(fci.params, use_heap);
+ free_alloca(params, use_heap);
if (EG(exception)) {
zend_error_noreturn(E_ERROR, "Throwing from FFI callbacks is not allowed");
@@ -1035,12 +1024,14 @@
arg_count = type->func.args ? zend_hash_num_elements(type->func.args) : 0;
if (arg_count < fcc.function_handler->common.required_num_args) {
zend_throw_error(zend_ffi_exception_ce, "Attempt to assign an invalid callback, insufficient number of arguments");
+ zend_release_fcall_info_cache(&fcc);
return NULL;
}
callback = ffi_closure_alloc(sizeof(ffi_closure), &code);
if (!callback) {
zend_throw_error(zend_ffi_exception_ce, "Cannot allocate callback");
+ zend_release_fcall_info_cache(&fcc);
return NULL;
}
@@ -1067,6 +1058,7 @@
}
efree(callback_data);
ffi_closure_free(callback);
+ zend_release_fcall_info_cache(&fcc);
return NULL;
}
n++;
@@ -1082,6 +1074,7 @@
}
efree(callback_data);
ffi_closure_free(callback);
+ zend_release_fcall_info_cache(&fcc);
return NULL;
}
@@ -1103,6 +1096,7 @@
}
efree(callback_data);
ffi_closure_free(callback);
+ zend_release_fcall_info_cache(&fcc);
return NULL;
}
@@ -1112,9 +1106,7 @@
}
zend_hash_next_index_insert_ptr(FFI_G(callbacks), callback_data);
- if (fcc.function_handler->common.fn_flags & ZEND_ACC_CLOSURE) {
- GC_ADDREF(ZEND_CLOSURE_OBJECT(fcc.function_handler));
- }
+ zend_fcc_addref(&callback_data->fcc);
return code;
}
diff -Nru php8.4-8.4.26/ext/ffi/tests/callback_create_failure.phpt php8.4-8.4.27/ext/ffi/tests/callback_create_failure.phpt
--- php8.4-8.4.26/ext/ffi/tests/callback_create_failure.phpt 1970-01-01 00:00:00.000000000 +0000
+++ php8.4-8.4.27/ext/ffi/tests/callback_create_failure.phpt 2026-10-19 14:38:59.000000000 +0000
@@ -0,0 +1,27 @@
+--TEST--
+FFI callback creation failure releases a __call trampoline
+--EXTENSIONS--
+ffi
+--INI--
+ffi.enable=1
+--FILE--
+new("struct S");
+try {
+ $s->f = [new Callback(), 'compare'];
+} catch (FFI\Exception $e) {
+ echo $e::class, ": ", $e->getMessage(), PHP_EOL;
+}
+echo "Done\n";
+?>
+--EXPECT--
+FFI\Exception: Cannot prepare callback CIF
+Done
diff -Nru php8.4-8.4.26/ext/ffi/tests/callback_dtor_call.phpt php8.4-8.4.27/ext/ffi/tests/callback_dtor_call.phpt
--- php8.4-8.4.26/ext/ffi/tests/callback_dtor_call.phpt 1970-01-01 00:00:00.000000000 +0000
+++ php8.4-8.4.27/ext/ffi/tests/callback_dtor_call.phpt 2026-10-19 14:38:59.000000000 +0000
@@ -0,0 +1,33 @@
+--TEST--
+FFI callback bound to a __call() trampoline
+--EXTENSIONS--
+ffi
+--INI--
+ffi.enable=1
+--FILE--
+new("struct S");
+$s->g = [$callback, 'unused'];
+$s->f = [$callback, 'double'];
+var_dump(($s->f)(1));
+var_dump(($s->f)(2));
+var_dump(($s->f)(3));
+?>
+--EXPECT--
+double(1)
+int(2)
+double(2)
+int(4)
+double(3)
+int(6)
diff -Nru php8.4-8.4.26/ext/ffi/tests/callback_object_lifetime.phpt php8.4-8.4.27/ext/ffi/tests/callback_object_lifetime.phpt
--- php8.4-8.4.26/ext/ffi/tests/callback_object_lifetime.phpt 1970-01-01 00:00:00.000000000 +0000
+++ php8.4-8.4.27/ext/ffi/tests/callback_object_lifetime.phpt 2026-10-19 14:38:59.000000000 +0000
@@ -0,0 +1,31 @@
+--TEST--
+FFI callback keeps the object of an array callable alive
+--EXTENSIONS--
+ffi
+--INI--
+ffi.enable=1
+--FILE--
+factor * $x;
+ }
+
+ public function __destruct() {
+ echo "Callback::__destruct\n";
+ }
+}
+
+$s = $ffi->new("struct S");
+$s->f = [new Callback(), 'multiply'];
+var_dump(($s->f)(2));
+echo "Done\n";
+?>
+--EXPECT--
+int(42)
+Done
+Callback::__destruct
diff -Nru php8.4-8.4.26/ext/fileinfo/libmagic/apprentice.c php8.4-8.4.27/ext/fileinfo/libmagic/apprentice.c
--- php8.4-8.4.26/ext/fileinfo/libmagic/apprentice.c 2026-09-22 15:00:02.000000000 +0000
+++ php8.4-8.4.27/ext/fileinfo/libmagic/apprentice.c 2026-10-19 14:38:59.000000000 +0000
@@ -184,7 +184,7 @@
{ NULL, 0, NULL }
};
-#if __has_attribute(nonstring) && defined(__GNUC__) && !defined(__clang__) && __GNUC__ >= 15
+#if __has_attribute(nonstring) && defined(__GNUC__) && ((!defined(__clang__) && __GNUC__ >= 15) || (defined(__clang_major__) && __clang_major__ >= 20))
# define ZEND_NONSTRING __attribute__((nonstring))
#else
# define ZEND_NONSTRING
diff -Nru php8.4-8.4.26/ext/fileinfo/libmagic/cdf.c php8.4-8.4.27/ext/fileinfo/libmagic/cdf.c
--- php8.4-8.4.26/ext/fileinfo/libmagic/cdf.c 2026-09-22 15:00:02.000000000 +0000
+++ php8.4-8.4.27/ext/fileinfo/libmagic/cdf.c 2026-10-19 14:38:59.000000000 +0000
@@ -93,9 +93,44 @@
CDF_TOLE8(CAST(uint64_t, x))))
#define CDF_GETUINT32(x, y) cdf_getuint32(x, y)
-#define CDF_MALLOC(n) emalloc(n)
-#define CDF_REALLOC(p, n) erealloc(p, n)
-#define CDF_CALLOC(n, u) ecalloc(n, u)
+#define CDF_MALLOC(n) cdf_malloc(__FILE__, __LINE__, (n))
+#define CDF_REALLOC(p, n) cdf_realloc(__FILE__, __LINE__, (p), (n))
+#define CDF_CALLOC(n, u) cdf_calloc(__FILE__, __LINE__, (n), (u))
+
+/*ARGSUSED*/
+static void *
+cdf_malloc(const char *file,
+ size_t line, size_t n)
+{
+ DPRINTF(("%s,%" SIZE_T_FORMAT "u: %s %" SIZE_T_FORMAT "u\n",
+ file, line, __func__, n));
+ return femalloc(n, /* fallible */ true);
+}
+
+/*ARGSUSED*/
+static void *
+cdf_realloc(const char *file,
+ size_t line, void *p, size_t n)
+{
+ DPRINTF(("%s,%" SIZE_T_FORMAT "u: %s %" SIZE_T_FORMAT "u\n",
+ file, line, __func__, n));
+ return safe_ferealloc(p, 1, n, 0, /* fallible */ true);
+}
+
+/*ARGSUSED*/
+static void *
+cdf_calloc(const char *file,
+ size_t line, size_t n, size_t u)
+{
+ DPRINTF(("%s,%" SIZE_T_FORMAT "u: %s %" SIZE_T_FORMAT "u %"
+ SIZE_T_FORMAT "u\n", file, line, __func__, n, u));
+ void *data = safe_femalloc(n, u, 0, /* fallible */ true);
+ if (!data) {
+ return NULL;
+ }
+ memset(data, 0, n * u);
+ return data;
+}
#if defined(HAVE_BYTESWAP_H)
# define _cdf_tole2(x) bswap_16(x)
diff -Nru php8.4-8.4.26/ext/fileinfo/libmagic.patch php8.4-8.4.27/ext/fileinfo/libmagic.patch
--- php8.4-8.4.26/ext/fileinfo/libmagic.patch 2026-09-22 15:00:02.000000000 +0000
+++ php8.4-8.4.27/ext/fileinfo/libmagic.patch 2026-10-19 14:38:59.000000000 +0000
@@ -1,6 +1,6 @@
diff -u libmagic.orig/apprentice.c libmagic/apprentice.c
--- libmagic.orig/apprentice.c 2023-07-17 16:38:35.000000000 +0200
-+++ libmagic/apprentice.c 2024-06-09 00:31:40.345830732 +0200
++++ libmagic/apprentice.c 2026-09-30 22:55:28.668770846 +0200
@@ -48,7 +48,9 @@
#ifdef QUICK
#include
@@ -22,16 +22,22 @@
file_private void apprentice_unmap(struct magic_map *);
file_private int apprentice_compile(struct magic_set *, struct magic_map *,
const char *);
-@@ -185,6 +184,8 @@
+@@ -185,6 +184,14 @@
{ NULL, 0, NULL }
};
++#if __has_attribute(nonstring) && defined(__GNUC__) && !defined(__clang__) && __GNUC__ >= 15
++# define ZEND_NONSTRING __attribute__((nonstring))
++#else
++# define ZEND_NONSTRING
++#endif
++
+#include "../data_file.c"
+
#ifdef COMPILE_ONLY
int main(int, char *[]);
-@@ -445,21 +446,13 @@
+@@ -445,21 +452,13 @@
struct mlist *ml;
mlp->map = NULL;
@@ -55,7 +61,7 @@
mlp->prev->next = ml;
ml->prev = mlp->prev;
ml->next = mlp;
-@@ -537,13 +530,19 @@
+@@ -537,13 +536,19 @@
return;
for (i = 0; i < MAGIC_SETS; i++)
mlist_free(ms->mlist[i]);
@@ -79,7 +85,7 @@
}
file_protected struct magic_set *
-@@ -552,7 +551,7 @@
+@@ -552,7 +557,7 @@
struct magic_set *ms;
size_t i, len;
@@ -88,7 +94,7 @@
sizeof(*ms)))) == NULL)
return NULL;
-@@ -565,7 +564,7 @@
+@@ -565,7 +570,7 @@
ms->o.blen = 0;
len = (ms->c.len = 10) * sizeof(*ms->c.li);
@@ -97,7 +103,7 @@
goto free;
ms->event_flags = 0;
-@@ -589,49 +588,35 @@
+@@ -589,49 +594,35 @@
#endif
return ms;
free:
@@ -160,7 +166,7 @@
return NULL;
}
mlist->next = mlist->prev = mlist;
-@@ -652,21 +637,9 @@
+@@ -652,21 +643,9 @@
file_private void
mlist_free_one(struct mlist *ml)
{
@@ -183,7 +189,7 @@
}
file_private void
-@@ -685,50 +658,6 @@
+@@ -685,50 +664,6 @@
mlist_free_one(mlist);
}
@@ -234,7 +240,7 @@
/* const char *fn: list of magic files and directories */
file_protected int
file_apprentice(struct magic_set *ms, const char *fn, int action)
-@@ -739,12 +668,28 @@
+@@ -739,12 +674,28 @@
(void)file_reset(ms, 0);
@@ -264,7 +270,7 @@
file_oomem(ms, strlen(fn));
return -1;
}
-@@ -757,7 +702,7 @@
+@@ -757,7 +708,7 @@
mlist_free(ms->mlist[j]);
ms->mlist[j] = NULL;
}
@@ -273,7 +279,7 @@
return -1;
}
}
-@@ -774,7 +719,7 @@
+@@ -774,7 +725,7 @@
fn = p;
}
@@ -282,7 +288,7 @@
if (errs == -1) {
for (i = 0; i < MAGIC_SETS; i++) {
-@@ -1289,7 +1234,7 @@
+@@ -1289,7 +1240,7 @@
size_t incr = mset[i].max + ALLOC_INCR;
if ((mp = CAST(struct magic_entry *,
@@ -291,7 +297,7 @@
NULL) {
file_oomem(ms, sizeof(*mp) * incr);
return -1;
-@@ -1312,13 +1257,19 @@
+@@ -1312,13 +1263,19 @@
load_1(struct magic_set *ms, int action, const char *fn, int *errs,
struct magic_entry_set *mset)
{
@@ -315,7 +321,7 @@
if (errno != ENOENT)
file_error(ms, errno, "cannot read magic file `%s'",
fn);
-@@ -1328,8 +1279,7 @@
+@@ -1328,8 +1285,7 @@
memset(&me, 0, sizeof(me));
/* read and parse this file */
@@ -325,7 +331,7 @@
if (len == 0) /* null line, garbage, etc */
continue;
if (line[len - 1] == '\n') {
-@@ -1388,8 +1338,8 @@
+@@ -1388,8 +1344,8 @@
}
if (me.mp)
(void)addentry(ms, &me, mset);
@@ -336,7 +342,7 @@
}
/*
-@@ -1474,7 +1424,7 @@
+@@ -1474,7 +1430,7 @@
}
slen = sizeof(**ma) * mentrycount;
@@ -345,7 +351,7 @@
file_oomem(ms, slen);
return -1;
}
-@@ -1496,8 +1446,8 @@
+@@ -1496,8 +1452,8 @@
if (me == NULL)
return;
for (i = 0; i < nme; i++)
@@ -356,7 +362,7 @@
}
file_private struct magic_map *
-@@ -1506,18 +1456,19 @@
+@@ -1506,18 +1462,19 @@
int errs = 0;
uint32_t i, j;
size_t files = 0, maxfiles = 0;
@@ -381,7 +387,7 @@
{
file_oomem(ms, sizeof(*map));
return NULL;
-@@ -1529,52 +1480,50 @@
+@@ -1529,52 +1486,50 @@
(void)fprintf(stderr, "%s\n", usg_hdr);
/* load directory or file */
@@ -453,7 +459,7 @@
}
} else
load_1(ms, action, fn, &errs, mset);
-@@ -1612,7 +1561,6 @@
+@@ -1612,7 +1567,6 @@
}
out:
@@ -461,7 +467,7 @@
for (j = 0; j < MAGIC_SETS; j++)
magic_entry_free(mset[j].me, mset[j].count);
-@@ -2060,7 +2008,7 @@
+@@ -2060,7 +2014,7 @@
if (me->cont_count == me->max_count) {
struct magic *nm;
size_t cnt = me->max_count + ALLOC_CHUNK;
@@ -470,7 +476,7 @@
sizeof(*nm) * cnt))) == NULL) {
file_oomem(ms, sizeof(*nm) * cnt);
return -1;
-@@ -2075,7 +2023,7 @@
+@@ -2075,7 +2029,7 @@
static const size_t len = sizeof(*m) * ALLOC_CHUNK;
if (me->mp != NULL)
return 1;
@@ -479,7 +485,7 @@
file_oomem(ms, len);
return -1;
}
-@@ -2301,7 +2249,7 @@
+@@ -2301,7 +2255,7 @@
m->mask_op = 0;
if (*l == '~') {
@@ -488,7 +494,7 @@
m->mask_op |= FILE_OPINVERSE;
else if (ms->flags & MAGIC_CHECK)
file_magwarn(ms, "'~' invalid for string types");
-@@ -2310,7 +2258,7 @@
+@@ -2310,7 +2264,7 @@
m->str_range = 0;
m->str_flags = m->type == FILE_PSTRING ? PSTRING_1_LE : 0;
if ((op = get_op(*l)) != -1) {
@@ -497,7 +503,7 @@
int r;
if (op != FILE_OPDIVIDE) {
-@@ -2497,7 +2445,7 @@
+@@ -2497,7 +2451,7 @@
file_private int
parse_extra(struct magic_set *ms, struct magic_entry *me, const char *line,
@@ -506,7 +512,7 @@
int nt)
{
size_t i;
-@@ -2860,13 +2808,19 @@
+@@ -2860,13 +2814,19 @@
return -1;
}
if (m->type == FILE_REGEX) {
@@ -532,7 +538,7 @@
}
return 0;
default:
-@@ -3245,120 +3199,83 @@
+@@ -3245,120 +3205,83 @@
}
/*
@@ -576,21 +582,21 @@
+ php_stream *stream = NULL;
+ php_stream_statbuf st;
+
-+
- fd = -1;
- if ((map = CAST(struct magic_map *, calloc(1, sizeof(*map)))) == NULL) {
++
+ if ((map = CAST(struct magic_map *, ecalloc(1, sizeof(*map)))) == NULL) {
file_oomem(ms, sizeof(*map));
- goto error;
+ return NULL;
- }
-- map->type = MAP_TYPE_USER; /* unspecified */
++ }
+
+ if (fn == NULL) {
+ map->p = (void *)&php_magic_database;
+ goto internal_loaded;
-+ }
+ }
+- map->type = MAP_TYPE_USER; /* unspecified */
+
+#ifdef PHP_WIN32
+ /* Don't bother on windows with php_stream_open_wrapper,
@@ -663,10 +669,12 @@
goto error;
}
-#endif
--
+
- free(dbname);
- return map;
--
++ php_stream_close(stream);
++ stream = NULL;
+
-error:
- if (fd != -1)
- (void)close(fd);
@@ -674,7 +682,7 @@
- free(dbname);
- return rv;
-}
-
+-
-file_private int
-check_buffer(struct magic_set *ms, struct magic_map *map, const char *dbname)
-{
@@ -682,9 +690,7 @@
- uint32_t entries, nentries;
- uint32_t version;
- int i, needsbyteswap;
-+ php_stream_close(stream);
-+ stream = NULL;
-
+-
- ptr = CAST(uint32_t *, map->p);
+internal_loaded:
+ ptr = (uint32_t *)(void *)map->p;
@@ -696,7 +702,7 @@
}
needsbyteswap = 1;
} else
-@@ -3368,17 +3285,29 @@
+@@ -3368,17 +3291,29 @@
else
version = ptr[1];
if (version != VERSIONNO) {
@@ -735,7 +741,7 @@
}
map->magic[0] = CAST(struct magic *, map->p) + 1;
nentries = 0;
-@@ -3391,15 +3320,29 @@
+@@ -3391,15 +3326,29 @@
map->magic[i + 1] = map->magic[i] + map->nmagic[i];
nentries += map->nmagic[i];
}
@@ -768,7 +774,7 @@
}
/*
-@@ -3410,7 +3353,7 @@
+@@ -3410,7 +3359,7 @@
{
static const size_t nm = sizeof(*map->nmagic) * MAGIC_SETS;
static const size_t m = sizeof(**map->magic);
@@ -777,7 +783,7 @@
size_t len;
char *dbname;
int rv = -1;
-@@ -3425,8 +3368,10 @@
+@@ -3425,8 +3374,10 @@
if (dbname == NULL)
goto out;
@@ -790,7 +796,7 @@
file_error(ms, errno, "cannot open `%s'", dbname);
goto out;
}
-@@ -3435,26 +3380,25 @@
+@@ -3435,26 +3386,25 @@
hdr.h[1] = VERSIONNO;
memcpy(hdr.h + 2, map->nmagic, nm);
@@ -825,7 +831,7 @@
return rv;
}
-@@ -3488,17 +3432,18 @@
+@@ -3488,17 +3438,18 @@
q++;
/* Compatibility with old code that looked in .mime */
if (ms->flags & MAGIC_MIME) {
@@ -851,7 +857,7 @@
/* Compatibility with old code that looked in .mime */
if (strstr(fn, ".mime") != NULL)
-@@ -3620,7 +3565,7 @@
+@@ -3620,7 +3571,7 @@
m->offset = swap4(CAST(uint32_t, m->offset));
m->in_offset = swap4(CAST(uint32_t, m->in_offset));
m->lineno = swap4(CAST(uint32_t, m->lineno));
@@ -860,7 +866,7 @@
m->str_range = swap4(m->str_range);
m->str_flags = swap4(m->str_flags);
}
-@@ -3717,7 +3662,6 @@
+@@ -3717,7 +3668,6 @@
continue;
if (strcmp(ma[i].value.s, name) == 0) {
v->magic = &ma[i];
@@ -971,7 +977,7 @@
}
diff -u libmagic.orig/cdf.c libmagic/cdf.c
--- libmagic.orig/cdf.c 2022-09-24 22:56:49.000000000 +0200
-+++ libmagic/cdf.c 2024-06-09 00:31:40.345830732 +0200
++++ libmagic/cdf.c 2026-10-02 19:35:01.765068091 +0200
@@ -43,7 +43,9 @@
#include
#endif
@@ -982,55 +988,61 @@
#include
#include
#include
-@@ -91,44 +93,9 @@
- CDF_TOLE8(CAST(uint64_t, x))))
- #define CDF_GETUINT32(x, y) cdf_getuint32(x, y)
-
--#define CDF_MALLOC(n) cdf_malloc(__FILE__, __LINE__, (n))
--#define CDF_REALLOC(p, n) cdf_realloc(__FILE__, __LINE__, (p), (n))
--#define CDF_CALLOC(n, u) cdf_calloc(__FILE__, __LINE__, (n), (u))
--
+@@ -95,39 +97,39 @@
+ #define CDF_REALLOC(p, n) cdf_realloc(__FILE__, __LINE__, (p), (n))
+ #define CDF_CALLOC(n, u) cdf_calloc(__FILE__, __LINE__, (n), (u))
+
-
--/*ARGSUSED*/
--static void *
+ /*ARGSUSED*/
+ static void *
-cdf_malloc(const char *file __attribute__((__unused__)),
- size_t line __attribute__((__unused__)), size_t n)
--{
-- DPRINTF(("%s,%" SIZE_T_FORMAT "u: %s %" SIZE_T_FORMAT "u\n",
-- file, line, __func__, n));
++cdf_malloc(const char *file,
++ size_t line, size_t n)
+ {
+ DPRINTF(("%s,%" SIZE_T_FORMAT "u: %s %" SIZE_T_FORMAT "u\n",
+ file, line, __func__, n));
- if (n == 0)
- n++;
- return malloc(n);
--}
--
--/*ARGSUSED*/
--static void *
++ return femalloc(n, /* fallible */ true);
+ }
+
+ /*ARGSUSED*/
+ static void *
-cdf_realloc(const char *file __attribute__((__unused__)),
- size_t line __attribute__((__unused__)), void *p, size_t n)
--{
-- DPRINTF(("%s,%" SIZE_T_FORMAT "u: %s %" SIZE_T_FORMAT "u\n",
-- file, line, __func__, n));
++cdf_realloc(const char *file,
++ size_t line, void *p, size_t n)
+ {
+ DPRINTF(("%s,%" SIZE_T_FORMAT "u: %s %" SIZE_T_FORMAT "u\n",
+ file, line, __func__, n));
- return realloc(p, n);
--}
--
--/*ARGSUSED*/
--static void *
++ return safe_ferealloc(p, 1, n, 0, /* fallible */ true);
+ }
+
+ /*ARGSUSED*/
+ static void *
-cdf_calloc(const char *file __attribute__((__unused__)),
- size_t line __attribute__((__unused__)), size_t n, size_t u)
--{
-- DPRINTF(("%s,%" SIZE_T_FORMAT "u: %s %" SIZE_T_FORMAT "u %"
-- SIZE_T_FORMAT "u\n", file, line, __func__, n, u));
++cdf_calloc(const char *file,
++ size_t line, size_t n, size_t u)
+ {
+ DPRINTF(("%s,%" SIZE_T_FORMAT "u: %s %" SIZE_T_FORMAT "u %"
+ SIZE_T_FORMAT "u\n", file, line, __func__, n, u));
- if (n == 0)
- n++;
- return calloc(n, u);
--}
-+#define CDF_MALLOC(n) emalloc(n)
-+#define CDF_REALLOC(p, n) erealloc(p, n)
-+#define CDF_CALLOC(n, u) ecalloc(n, u)
++ void *data = safe_femalloc(n, u, 0, /* fallible */ true);
++ if (!data) {
++ return NULL;
++ }
++ memset(data, 0, n * u);
++ return data;
+ }
#if defined(HAVE_BYTESWAP_H)
- # define _cdf_tole2(x) bswap_16(x)
-@@ -334,7 +301,7 @@
+@@ -334,7 +336,7 @@
scn->sst_len = 0;
scn->sst_dirlen = 0;
scn->sst_ss = 0;
@@ -1039,7 +1051,7 @@
scn->sst_tab = NULL;
return -1;
}
-@@ -342,9 +309,11 @@
+@@ -342,9 +344,11 @@
static size_t
cdf_check_stream(const cdf_stream_t *sst, const cdf_header_t *h)
{
@@ -1051,7 +1063,7 @@
return sst->sst_ss;
}
-@@ -367,11 +336,11 @@
+@@ -367,11 +371,11 @@
}
static ssize_t
@@ -1065,7 +1077,7 @@
goto out;
if (info->i_buf != NULL && info->i_len >= siz) {
-@@ -382,7 +351,10 @@
+@@ -382,7 +386,10 @@
if (info->i_fd == -1)
goto out;
@@ -1077,7 +1089,7 @@
return -1;
return CAST(ssize_t, len);
-@@ -397,7 +369,7 @@
+@@ -397,7 +404,7 @@
char buf[512];
(void)memcpy(cdf_bo.s, "\01\02\03\04", 4);
@@ -1086,7 +1098,7 @@
return -1;
cdf_unpack_header(h, buf);
cdf_swap_header(h);
-@@ -544,14 +516,14 @@
+@@ -544,14 +551,14 @@
}
out:
sat->sat_len = i;
@@ -1104,7 +1116,7 @@
return -1;
}
-@@ -719,7 +691,7 @@
+@@ -719,7 +726,7 @@
return -1;
if ((buf = CAST(char *, CDF_MALLOC(ss))) == NULL) {
@@ -1113,7 +1125,7 @@
return -1;
}
-@@ -742,11 +714,11 @@
+@@ -742,11 +749,11 @@
if (NEED_SWAP)
for (i = 0; i < dir->dir_len; i++)
cdf_swap_dir(&dir->dir_tab[i]);
@@ -1128,7 +1140,7 @@
errno = EFTYPE;
return -1;
}
-@@ -791,7 +763,7 @@
+@@ -791,7 +798,7 @@
out:
errno = EFTYPE;
out1:
@@ -1137,7 +1149,7 @@
return -1;
}
-@@ -953,7 +925,7 @@
+@@ -953,7 +960,7 @@
*maxcount = newcount;
return inp;
out:
@@ -1146,7 +1158,7 @@
*maxcount = 0;
*info = NULL;
return NULL;
-@@ -1136,7 +1108,7 @@
+@@ -1136,7 +1143,7 @@
}
return 0;
out:
@@ -1155,7 +1167,7 @@
*info = NULL;
*count = 0;
*maxcount = 0;
-@@ -1428,7 +1400,7 @@
+@@ -1428,7 +1435,7 @@
cdf_directory_t *d;
char name[__arraycount(d->d_name)];
cdf_stream_t scn;
@@ -1164,7 +1176,7 @@
static const char *types[] = { "empty", "user storage",
"user stream", "lockbytes", "property", "root storage" };
-@@ -1470,7 +1442,7 @@
+@@ -1470,7 +1477,7 @@
break;
}
cdf_dump_stream(&scn);
@@ -1173,7 +1185,7 @@
break;
default:
break;
-@@ -1483,7 +1455,7 @@
+@@ -1483,7 +1490,7 @@
cdf_dump_property_info(const cdf_property_info_t *info, size_t count)
{
cdf_timestamp_t tp;
@@ -1182,7 +1194,7 @@
char buf[64];
size_t i, j;
-@@ -1568,7 +1540,7 @@
+@@ -1568,7 +1575,7 @@
(void)fprintf(stderr, "Class %s\n", buf);
(void)fprintf(stderr, "Count %d\n", ssi.si_count);
cdf_dump_property_info(info, count);
@@ -1191,7 +1203,7 @@
}
-@@ -1589,7 +1561,7 @@
+@@ -1589,7 +1596,7 @@
cdf_u16tos8(sbuf, ce[i].ce_namlen, ce[i].ce_name),
cdf_ctime(&ts.tv_sec, tbuf));
}
diff -Nru php8.4-8.4.26/ext/fileinfo/tests/cdf_unknown_property_id.phpt php8.4-8.4.27/ext/fileinfo/tests/cdf_unknown_property_id.phpt
--- php8.4-8.4.26/ext/fileinfo/tests/cdf_unknown_property_id.phpt 1970-01-01 00:00:00.000000000 +0000
+++ php8.4-8.4.27/ext/fileinfo/tests/cdf_unknown_property_id.phpt 2026-10-19 14:38:59.000000000 +0000
@@ -0,0 +1,13 @@
+--TEST--
+Unknown CDF property IDs are printed with the 0x prefix
+--EXTENSIONS--
+fileinfo
+--FILE--
+buffer($data);
+echo substr($desc, strrpos($desc, ', ') + 2), "\n";
+?>
+--EXPECT--
+0x1f: 0
diff -Nru php8.4-8.4.26/ext/fileinfo/tests/oom_cdf_sector_chain.phpt php8.4-8.4.27/ext/fileinfo/tests/oom_cdf_sector_chain.phpt
--- php8.4-8.4.26/ext/fileinfo/tests/oom_cdf_sector_chain.phpt 1970-01-01 00:00:00.000000000 +0000
+++ php8.4-8.4.27/ext/fileinfo/tests/oom_cdf_sector_chain.phpt 2026-10-19 14:38:59.000000000 +0000
@@ -0,0 +1,76 @@
+--TEST--
+fileinfo on cdf file doesn't reach hard limit
+--EXTENSIONS--
+fileinfo
+--FILE--
+
+--CLEAN--
+
+--EXPECTF--
+Fatal error: Allowed memory size of 134217728 bytes exhausted %S(tried to allocate %d bytes) in %s on line %d
+exit_status=255
+
+Fatal error: Allowed memory size of 134217728 bytes exhausted %S(tried to allocate %d bytes) in %s on line %d
+exit_status=255
+
+Fatal error: Allowed memory size of 134217728 bytes exhausted %S(tried to allocate %d bytes) in %s on line %d
+exit_status=255
diff -Nru php8.4-8.4.26/ext/filter/filter.c php8.4-8.4.27/ext/filter/filter.c
--- php8.4-8.4.26/ext/filter/filter.c 2026-09-22 15:00:02.000000000 +0000
+++ php8.4-8.4.27/ext/filter/filter.c 2026-10-19 14:38:59.000000000 +0000
@@ -328,17 +328,25 @@
if (array_ptr) {
/* Store the RAW variable internally */
- ZVAL_STRINGL(&raw_var, *val, val_len);
+ if (UNEXPECTED(!ZVAL_FSTRINGL(&raw_var, *val, val_len))) {
+ return 0;
+ }
php_register_variable_ex(var, &raw_var, array_ptr);
+ if (ZEND_HAS_OOM()) {
+ return 0;
+ }
}
if (val_len) {
/* Register mangled variable */
+ if (UNEXPECTED(!ZVAL_FSTRINGL(&new_var, *val, val_len))) {
+ return 0;
+ }
if (IF_G(default_filter) != FILTER_UNSAFE_RAW) {
- ZVAL_STRINGL(&new_var, *val, val_len);
php_zval_filter(&new_var, IF_G(default_filter), IF_G(default_filter_flags), NULL, NULL, 0);
- } else {
- ZVAL_STRINGL(&new_var, *val, val_len);
+ if (ZEND_HAS_OOM()) {
+ return 0;
+ }
}
} else { /* empty string */
ZVAL_EMPTY_STRING(&new_var);
@@ -356,7 +364,19 @@
}
efree(*val);
if (ZSTR_LEN(str)) {
- *val = estrndup(ZSTR_VAL(str), ZSTR_LEN(str));
+ *val = femalloc(ZSTR_LEN(str) + 1, /* fallible */ true);
+ if (UNEXPECTED(!*val)) {
+ /* The caller frees *val either way, so leave it pointing at
+ * something. */
+ *val = estrdup("");
+ if (new_val_len) {
+ *new_val_len = 0;
+ }
+ zend_tmp_string_release(tmp_str);
+ zval_ptr_dtor(&new_var);
+ return 0;
+ }
+ memcpy(*val, ZSTR_VAL(str), ZSTR_LEN(str) + 1);
} else {
*val = estrdup("");
}
diff -Nru php8.4-8.4.26/ext/filter/sanitizing_filters.c php8.4-8.4.27/ext/filter/sanitizing_filters.c
--- php8.4-8.4.26/ext/filter/sanitizing_filters.c 2026-09-22 15:00:02.000000000 +0000
+++ php8.4-8.4.27/ext/filter/sanitizing_filters.c 2026-10-19 14:38:59.000000000 +0000
@@ -25,7 +25,7 @@
/* }}} */
/* {{{ HELPER FUNCTIONS */
-static void php_filter_encode_html(zval *value, const unsigned char *chars)
+static bool php_filter_encode_html(zval *value, const unsigned char *chars)
{
smart_str str = {0};
size_t len = Z_STRLEN_P(value);
@@ -33,7 +33,7 @@
unsigned char *e = s + len;
if (Z_STRLEN_P(value) == 0) {
- return;
+ return true;
}
while (s < e) {
@@ -46,10 +46,18 @@
smart_str_appendc(&str, *s);
}
s++;
+
+ if (ZEND_HAS_OOM()) {
+ smart_str_free(&str);
+ zval_ptr_dtor(value);
+ ZVAL_EMPTY_STRING(value);
+ return false;
+ }
}
zval_ptr_dtor(value);
ZVAL_STR(value, smart_str_extract(&str));
+ return true;
}
static const unsigned char hexchars[] = "0123456789ABCDEF";
@@ -74,7 +82,12 @@
tmp[*s++] = '\0';
}
- str = zend_string_safe_alloc(Z_STRLEN_P(value), 3, 0, 0);
+ str = zend_string_safe_falloc(Z_STRLEN_P(value), 3, 0, /* persistent */ false, /* fallible */ true);
+ if (!str) {
+ zval_ptr_dtor(value);
+ ZVAL_EMPTY_STRING(value);
+ return;
+ }
p = (unsigned char *) ZSTR_VAL(str);
s = (unsigned char *) Z_STRVAL_P(value);
e = s + Z_STRLEN_P(value);
@@ -192,7 +205,9 @@
memset(enc + 127, 1, sizeof(enc) - 127);
}
- php_filter_encode_html(value, enc);
+ if (!php_filter_encode_html(value, enc)) {
+ return;
+ }
/* strip tags, implicitly also removes \0 chars */
new_len = php_strip_tags_ex(Z_STRVAL_P(value), Z_STRLEN_P(value), NULL, 0, 1);
diff -Nru php8.4-8.4.26/ext/filter/tests/oom_filter_default_encoded.phpt php8.4-8.4.27/ext/filter/tests/oom_filter_default_encoded.phpt
--- php8.4-8.4.26/ext/filter/tests/oom_filter_default_encoded.phpt 1970-01-01 00:00:00.000000000 +0000
+++ php8.4-8.4.27/ext/filter/tests/oom_filter_default_encoded.phpt 2026-10-19 14:38:59.000000000 +0000
@@ -0,0 +1,126 @@
+--TEST--
+filter.default=encoded doesn't reach hard limit while parsing POST data
+--EXTENSIONS--
+filter
+--SKIPIF--
+
+--FILE--
+ ['pipe', 'r'], 1 => ['pipe', 'w'], 2 => ['pipe', 'w']],
+ $pipes,
+ null,
+ [
+ 'REQUEST_METHOD' => 'POST',
+ 'CONTENT_TYPE' => 'application/x-www-form-urlencoded',
+ 'CONTENT_LENGTH' => (string) strlen($body),
+ 'SCRIPT_FILENAME' => $script,
+ 'REDIRECT_STATUS' => '1',
+ ]
+ );
+ fwrite($pipes[0], $body);
+ fclose($pipes[0]);
+ $out = stream_get_contents($pipes[1]) . stream_get_contents($pipes[2]);
+ fclose($pipes[1]);
+ fclose($pipes[2]);
+ proc_close($p);
+
+ echo $out;
+}
+
+for ($kb = 2016; $kb <= 2064; $kb += 4) {
+ oom_post_encoded('a=' . str_repeat('x', $kb * 1024), $script);
+}
+?>
+--CLEAN--
+
+--EXPECTF--
+X-Powered-By: PHP/%s
+Content-type: text/html; charset=UTF-8
+
+
+Fatal error: Allowed memory size of 8388608 bytes exhausted %S(tried to allocate %d bytes) in %s on line %d
+X-Powered-By: PHP/%s
+Content-type: text/html; charset=UTF-8
+
+
+Fatal error: Allowed memory size of 8388608 bytes exhausted %S(tried to allocate %d bytes) in %s on line %d
+X-Powered-By: PHP/%s
+Content-type: text/html; charset=UTF-8
+
+
+Fatal error: Allowed memory size of 8388608 bytes exhausted %S(tried to allocate %d bytes) in %s on line %d
+X-Powered-By: PHP/%s
+Content-type: text/html; charset=UTF-8
+
+
+Fatal error: Allowed memory size of 8388608 bytes exhausted %S(tried to allocate %d bytes) in %s on line %d
+X-Powered-By: PHP/%s
+Content-type: text/html; charset=UTF-8
+
+
+Fatal error: Allowed memory size of 8388608 bytes exhausted %S(tried to allocate %d bytes) in %s on line %d
+X-Powered-By: PHP/%s
+Content-type: text/html; charset=UTF-8
+
+
+Fatal error: Allowed memory size of 8388608 bytes exhausted %S(tried to allocate %d bytes) in %s on line %d
+X-Powered-By: PHP/%s
+Content-type: text/html; charset=UTF-8
+
+
+Fatal error: Allowed memory size of 8388608 bytes exhausted %S(tried to allocate %d bytes) in %s on line %d
+X-Powered-By: PHP/%s
+Content-type: text/html; charset=UTF-8
+
+
+Fatal error: Allowed memory size of 8388608 bytes exhausted %S(tried to allocate %d bytes) in %s on line %d
+X-Powered-By: PHP/%s
+Content-type: text/html; charset=UTF-8
+
+
+Fatal error: Allowed memory size of 8388608 bytes exhausted %S(tried to allocate %d bytes) in %s on line %d
+X-Powered-By: PHP/%s
+Content-type: text/html; charset=UTF-8
+
+
+Fatal error: Allowed memory size of 8388608 bytes exhausted %S(tried to allocate %d bytes) in %s on line %d
+X-Powered-By: PHP/%s
+Content-type: text/html; charset=UTF-8
+
+
+Fatal error: Allowed memory size of 8388608 bytes exhausted %S(tried to allocate %d bytes) in %s on line %d
+X-Powered-By: PHP/%s
+Content-type: text/html; charset=UTF-8
+
+
+Fatal error: Allowed memory size of 8388608 bytes exhausted %S(tried to allocate %d bytes) in %s on line %d
+X-Powered-By: PHP/%s
+Content-type: text/html; charset=UTF-8
+
+
+Fatal error: Allowed memory size of 8388608 bytes exhausted %S(tried to allocate %d bytes) in %s on line %d
diff -Nru php8.4-8.4.26/ext/filter/tests/oom_filter_input.phpt php8.4-8.4.27/ext/filter/tests/oom_filter_input.phpt
--- php8.4-8.4.26/ext/filter/tests/oom_filter_input.phpt 1970-01-01 00:00:00.000000000 +0000
+++ php8.4-8.4.27/ext/filter/tests/oom_filter_input.phpt 2026-10-19 14:38:59.000000000 +0000
@@ -0,0 +1,56 @@
+--TEST--
+filter_input() doesn't reach hard limit
+--EXTENSIONS--
+filter
+--SKIPIF--
+
+--FILE--
+ ['pipe', 'r'], 1 => ['pipe', 'w'], 2 => ['pipe', 'w']],
+ $pipes,
+ null,
+ [
+ 'REQUEST_METHOD' => 'POST',
+ 'CONTENT_TYPE' => "multipart/form-data; boundary=$boundary",
+ 'CONTENT_LENGTH' => (string) strlen($body),
+ 'SCRIPT_FILENAME' => $script,
+ 'REDIRECT_STATUS' => '1',
+ ]
+);
+fwrite($pipes[0], $body);
+fclose($pipes[0]);
+$out = stream_get_contents($pipes[1]) . stream_get_contents($pipes[2]);
+fclose($pipes[1]);
+fclose($pipes[2]);
+proc_close($p);
+
+echo $out;
+?>
+--CLEAN--
+
+--EXPECTF--
+X-Powered-By: PHP/%s
+Content-type: text/html; charset=UTF-8
+
+
+Fatal error: Allowed memory size of 12582912 bytes exhausted %S(tried to allocate %d bytes) in %s on line %d
diff -Nru php8.4-8.4.26/ext/filter/tests/oom_filter_input_array.phpt php8.4-8.4.27/ext/filter/tests/oom_filter_input_array.phpt
--- php8.4-8.4.26/ext/filter/tests/oom_filter_input_array.phpt 1970-01-01 00:00:00.000000000 +0000
+++ php8.4-8.4.27/ext/filter/tests/oom_filter_input_array.phpt 2026-10-19 14:38:59.000000000 +0000
@@ -0,0 +1,56 @@
+--TEST--
+filter_input_array() doesn't reach hard limit
+--EXTENSIONS--
+filter
+--SKIPIF--
+
+--FILE--
+ ['filter' => FILTER_SANITIZE_SPECIAL_CHARS, 'flags' => FILTER_FLAG_ENCODE_HIGH]]);
+echo "no OOM\n";
+TARGET);
+
+$boundary = '----X';
+$body = "--$boundary\r\nContent-Disposition: form-data; name=\"k\"\r\n\r\n"
+ . str_repeat("\xFF", 2 * 1024 * 1024)
+ . "\r\n--$boundary--\r\n";
+
+$p = proc_open(
+ [getenv('TEST_PHP_CGI_EXECUTABLE'), '-n', '-d', 'memory_limit=12M', '-d', 'html_errors=0'],
+ [0 => ['pipe', 'r'], 1 => ['pipe', 'w'], 2 => ['pipe', 'w']],
+ $pipes,
+ null,
+ [
+ 'REQUEST_METHOD' => 'POST',
+ 'CONTENT_TYPE' => "multipart/form-data; boundary=$boundary",
+ 'CONTENT_LENGTH' => (string) strlen($body),
+ 'SCRIPT_FILENAME' => $script,
+ 'REDIRECT_STATUS' => '1',
+ ]
+);
+fwrite($pipes[0], $body);
+fclose($pipes[0]);
+$out = stream_get_contents($pipes[1]) . stream_get_contents($pipes[2]);
+fclose($pipes[1]);
+fclose($pipes[2]);
+proc_close($p);
+
+echo $out;
+?>
+--CLEAN--
+
+--EXPECTF--
+X-Powered-By: PHP/%s
+Content-type: text/html; charset=UTF-8
+
+
+Fatal error: Allowed memory size of 12582912 bytes exhausted %S(tried to allocate %d bytes) in %s on line %d
diff -Nru php8.4-8.4.26/ext/filter/tests/oom_filter_var.phpt php8.4-8.4.27/ext/filter/tests/oom_filter_var.phpt
--- php8.4-8.4.26/ext/filter/tests/oom_filter_var.phpt 1970-01-01 00:00:00.000000000 +0000
+++ php8.4-8.4.27/ext/filter/tests/oom_filter_var.phpt 2026-10-19 14:38:59.000000000 +0000
@@ -0,0 +1,17 @@
+--TEST--
+filter_var(filter: FILTER_SANITIZE_SPECIAL_CHARS) doesn't reach hard limit
+--EXTENSIONS--
+filter
+--INI--
+memory_limit=8M
+--SKIPIF--
+
+--FILE--
+
+--EXPECTF--
+Fatal error: Allowed memory size of 8388608 bytes exhausted %S(tried to allocate %d bytes) in %s on line %d
diff -Nru php8.4-8.4.26/ext/filter/tests/oom_filter_var_array.phpt php8.4-8.4.27/ext/filter/tests/oom_filter_var_array.phpt
--- php8.4-8.4.26/ext/filter/tests/oom_filter_var_array.phpt 1970-01-01 00:00:00.000000000 +0000
+++ php8.4-8.4.27/ext/filter/tests/oom_filter_var_array.phpt 2026-10-19 14:38:59.000000000 +0000
@@ -0,0 +1,20 @@
+--TEST--
+filter_var_array() doesn't reach hard limit
+--EXTENSIONS--
+filter
+--INI--
+memory_limit=8M
+--SKIPIF--
+
+--FILE--
+ $value],
+ ["k" => ["filter" => FILTER_SANITIZE_SPECIAL_CHARS, "flags" => FILTER_FLAG_ENCODE_HIGH]]
+);
+?>
+--EXPECTF--
+Fatal error: Allowed memory size of 8388608 bytes exhausted %S(tried to allocate %d bytes) in %s on line %d
diff -Nru php8.4-8.4.26/ext/filter/tests/oom_filter_var_full_special_chars.phpt php8.4-8.4.27/ext/filter/tests/oom_filter_var_full_special_chars.phpt
--- php8.4-8.4.26/ext/filter/tests/oom_filter_var_full_special_chars.phpt 1970-01-01 00:00:00.000000000 +0000
+++ php8.4-8.4.27/ext/filter/tests/oom_filter_var_full_special_chars.phpt 2026-10-19 14:38:59.000000000 +0000
@@ -0,0 +1,17 @@
+--TEST--
+filter_var(filter: FILTER_SANITIZE_FULL_SPECIAL_CHARS) doesn't reach hard limit
+--EXTENSIONS--
+filter
+--INI--
+memory_limit=8M
+--SKIPIF--
+
+--FILE--
+
+--EXPECTF--
+Fatal error: Allowed memory size of 8388608 bytes exhausted %S(tried to allocate %d bytes) in %s on line %d
diff -Nru php8.4-8.4.26/ext/ftp/ftp.c php8.4-8.4.27/ext/ftp/ftp.c
--- php8.4-8.4.26/ext/ftp/ftp.c 2026-09-22 15:00:02.000000000 +0000
+++ php8.4-8.4.27/ext/ftp/ftp.c 2026-10-19 14:38:59.000000000 +0000
@@ -1904,7 +1904,10 @@
/* get the session from the control connection so we can re-use it */
session = ftp->last_ssl_session;
if (session == NULL) {
- php_error_docref(NULL, E_WARNING, "data_accept: failed to retrieve the existing SSL session");
+ php_error_docref(NULL, E_WARNING, "data_accept: failed to retrieve the existing SSL session from the control connection. "
+ "The server does not support TLS session resumption on the data connection, "
+ "which is necessary to protect against session data stealing. "
+ "PHP does not support such configuration.");
SSL_free(data->ssl_handle);
return 0;
}
diff -Nru php8.4-8.4.26/ext/gd/libgd/gd.c php8.4-8.4.27/ext/gd/libgd/gd.c
--- php8.4-8.4.26/ext/gd/libgd/gd.c 2026-09-22 15:00:02.000000000 +0000
+++ php8.4-8.4.27/ext/gd/libgd/gd.c 2026-10-19 14:38:59.000000000 +0000
@@ -156,7 +156,11 @@
im = (gdImage *) gdCalloc(1, sizeof(gdImage));
/* Row-major ever since gd 1.3 */
- im->pixels = (unsigned char **) gdMalloc(sizeof(unsigned char *) * sy);
+ im->pixels = (unsigned char **) gdFMalloc(sizeof(unsigned char *) * sy);
+ if (im->pixels == NULL) {
+ gdFree(im);
+ return NULL;
+ }
im->polyInts = 0;
im->polyAllocated = 0;
im->brush = 0;
@@ -164,7 +168,15 @@
im->style = 0;
for (i = 0; i < sy; i++) {
/* Row-major ever since gd 1.3 */
- im->pixels[i] = (unsigned char *) gdCalloc(sx, sizeof(unsigned char));
+ im->pixels[i] = (unsigned char *) gdFCalloc(sx, sizeof(unsigned char));
+ if (im->pixels[i] == NULL) {
+ while (i > 0) {
+ gdFree(im->pixels[--i]);
+ }
+ gdFree(im->pixels);
+ gdFree(im);
+ return NULL;
+ }
}
im->sx = sx;
im->sy = sy;
@@ -209,14 +221,26 @@
im = (gdImage *) gdMalloc(sizeof(gdImage));
memset(im, 0, sizeof(gdImage));
- im->tpixels = (int **) gdMalloc(sizeof(int *) * sy);
+ im->tpixels = (int **) gdFMalloc(sizeof(int *) * sy);
+ if (im->tpixels == NULL) {
+ gdFree(im);
+ return NULL;
+ }
im->polyInts = 0;
im->polyAllocated = 0;
im->brush = 0;
im->tile = 0;
im->style = 0;
for (i = 0; i < sy; i++) {
- im->tpixels[i] = (int *) gdCalloc(sx, sizeof(int));
+ im->tpixels[i] = (int *) gdFCalloc(sx, sizeof(int));
+ if (im->tpixels[i] == NULL) {
+ while (i > 0) {
+ gdFree(im->tpixels[--i]);
+ }
+ gdFree(im->tpixels);
+ gdFree(im);
+ return NULL;
+ }
}
im->sx = sx;
im->sy = sy;
@@ -3171,7 +3195,7 @@
// due to a bug with a certain memory_limit INI value treshold,
// imagepalettetotruecolor crashes with even unrelated ZendMM allocations.
// See GH-17772 for an use case.
- src->tpixels = (int **) gdCalloc(sizeof(int *), sy);
+ src->tpixels = (int **) gdFCalloc(sizeof(int *), sy);
if (src->tpixels == NULL) {
return 0;
}
@@ -3181,7 +3205,7 @@
int * dst_row;
/* no need to calloc it, we overwrite all pxl anyway */
- src->tpixels[y] = (int *) gdMalloc(sx * sizeof(int));
+ src->tpixels[y] = (int *) gdFMalloc(sx * sizeof(int));
if (src->tpixels[y] == NULL) {
goto clean_on_error;
}
@@ -3221,5 +3245,6 @@
gdFree(src->tpixels[yy]);
}
gdFree(src->tpixels);
+ src->tpixels = NULL;
return 0;
}
diff -Nru php8.4-8.4.26/ext/gd/libgd/gd_gd2.c php8.4-8.4.27/ext/gd/libgd/gd_gd2.c
--- php8.4-8.4.26/ext/gd/libgd/gd_gd2.c 2026-09-22 15:00:02.000000000 +0000
+++ php8.4-8.4.27/ext/gd/libgd/gd_gd2.c 2026-10-19 14:38:59.000000000 +0000
@@ -150,7 +150,7 @@
if (sidx <= 0) {
goto fail1;
}
- cidx = gdCalloc(sidx, 1);
+ cidx = gdFCalloc(sidx, 1);
if (cidx == NULL) {
goto fail1;
}
@@ -164,7 +164,7 @@
gdFree(cidx);
goto fail1;
}
- if (cidx[i].offset < 0 || cidx[i].size < 0) {
+ if (cidx[i].offset < 0 || cidx[i].size < 0 || cidx[i].size == INT_MAX) {
gdFree(cidx);
goto fail1;
}
@@ -306,8 +306,14 @@
if (chunkMax <= 0) {
return 0;
}
- chunkBuf = gdCalloc(chunkMax, 1);
- compBuf = gdCalloc(compMax, 1);
+ chunkBuf = gdFCalloc(chunkMax, 1);
+ if (chunkBuf == NULL) {
+ goto fail2;
+ }
+ compBuf = gdFCalloc(compMax, 1);
+ if (compBuf == NULL) {
+ goto fail2;
+ }
GD2_DBG(gd_error("Largest compressed chunk is %d bytes", compMax));
}
@@ -503,8 +509,14 @@
goto fail2;
}
- chunkBuf = gdCalloc(chunkMax, 1);
- compBuf = gdCalloc(compMax, 1);
+ chunkBuf = gdFCalloc(chunkMax, 1);
+ if (chunkBuf == NULL) {
+ goto fail2;
+ }
+ compBuf = gdFCalloc(compMax, 1);
+ if (compBuf == NULL) {
+ goto fail2;
+ }
}
/* Work out start/end chunks */
diff -Nru php8.4-8.4.26/ext/gd/libgd/gd_gif_in.c php8.4-8.4.27/ext/gd/libgd/gd_gif_in.c
--- php8.4-8.4.26/ext/gd/libgd/gd_gif_in.c 2026-09-22 15:00:02.000000000 +0000
+++ php8.4-8.4.27/ext/gd/libgd/gd_gif_in.c 2026-10-19 14:38:59.000000000 +0000
@@ -517,12 +517,20 @@
/* Bad compressed data stream */
return -1;
}
+ if(code >= (1 << MAX_LWZ_BITS)) {
+ /* Corrupted code */
+ return -1;
+ }
*sd->sp++ = sd->table[1][code];
if (code == sd->table[0][code]) {
/* Oh well */
}
code = sd->table[0][code];
}
+ if(code >= (1 << MAX_LWZ_BITS)) {
+ /* Corrupted code */
+ return -1;
+ }
*sd->sp++ = sd->firstcode = sd->table[1][code];
diff -Nru php8.4-8.4.26/ext/gd/libgd/gd_tga.c php8.4-8.4.27/ext/gd/libgd/gd_tga.c
--- php8.4-8.4.26/ext/gd/libgd/gd_tga.c 2026-09-22 15:00:02.000000000 +0000
+++ php8.4-8.4.27/ext/gd/libgd/gd_tga.c 2026-10-19 14:38:59.000000000 +0000
@@ -239,7 +239,7 @@
/*! \brief Allocate memmory for image block
* Allocate a chunk of memory for the image block to be passed into.
*/
- tga->bitmap = (int *) gdMalloc(image_block_size * sizeof(int));
+ tga->bitmap = (int *) gdFMalloc(image_block_size * sizeof(int));
if (tga->bitmap == NULL)
return -1;
@@ -248,7 +248,7 @@
/*! \brief Read in uncompressed RGB TGA
* Chunk load the pixel data from an uncompressed RGB type TGA.
*/
- conversion_buffer = (unsigned char *) gdMalloc(image_block_size * sizeof(unsigned char));
+ conversion_buffer = (unsigned char *) gdFMalloc(image_block_size * sizeof(unsigned char));
if (conversion_buffer == NULL) {
return -1;
}
@@ -271,11 +271,11 @@
/*! \brief Read in RLE compressed RGB TGA
* Chunk load the pixel data from an RLE compressed RGB type TGA.
*/
- decompression_buffer = (int*) gdMalloc(image_block_size * sizeof(int));
+ decompression_buffer = (int*) gdFMalloc(image_block_size * sizeof(int));
if (decompression_buffer == NULL) {
return -1;
}
- conversion_buffer = (unsigned char *) gdMalloc(image_block_size * sizeof(unsigned char));
+ conversion_buffer = (unsigned char *) gdFMalloc(image_block_size * sizeof(unsigned char));
if (conversion_buffer == NULL) {
gd_error("gd-tga: premature end of image data\n");
gdFree( decompression_buffer );
diff -Nru php8.4-8.4.26/ext/gd/libgd/gdhelpers.h php8.4-8.4.27/ext/gd/libgd/gdhelpers.h
--- php8.4-8.4.26/ext/gd/libgd/gdhelpers.h 2026-09-22 15:00:02.000000000 +0000
+++ php8.4-8.4.27/ext/gd/libgd/gdhelpers.h 2026-10-19 14:38:59.000000000 +0000
@@ -13,8 +13,10 @@
free memory allocated by these functions with the
right version of free(). */
#define gdCalloc(nmemb, size) ecalloc(nmemb, size)
+#define gdFCalloc(nmemb, size) fecalloc(nmemb, size, true)
#define gdMalloc(size) emalloc(size)
#define gdRealloc(ptr, size) erealloc(ptr, size)
+#define gdFMalloc(size) femalloc(size, true)
#define gdEstrdup(ptr) estrdup(ptr)
#define gdFree(ptr) efree(ptr)
#define gdPMalloc(ptr) pemalloc(ptr, 1)
@@ -49,4 +51,3 @@
#define DPI2DPM(dpi) (unsigned int)((dpi)/0.0254 + 0.5)
#endif /* GDHELPERS_H */
-
diff -Nru php8.4-8.4.26/ext/gd/libgd/wbmp.c php8.4-8.4.27/ext/gd/libgd/wbmp.c
--- php8.4-8.4.26/ext/gd/libgd/wbmp.c 2026-09-22 15:00:02.000000000 +0000
+++ php8.4-8.4.27/ext/gd/libgd/wbmp.c 2026-10-19 14:38:59.000000000 +0000
@@ -196,7 +196,7 @@
return (-1);
}
- if ((wbmp->bitmap = (int *) safe_emalloc((size_t)wbmp->width * wbmp->height, sizeof(int), 0)) == NULL)
+ if ((wbmp->bitmap = (int *) safe_femalloc((size_t)wbmp->width * wbmp->height, sizeof(int), 0, /* fallible */ 1)) == NULL)
{
gdFree (wbmp);
return (-1);
diff -Nru php8.4-8.4.26/ext/gd/tests/createfromstring-overflow.phpt php8.4-8.4.27/ext/gd/tests/createfromstring-overflow.phpt
--- php8.4-8.4.26/ext/gd/tests/createfromstring-overflow.phpt 1970-01-01 00:00:00.000000000 +0000
+++ php8.4-8.4.27/ext/gd/tests/createfromstring-overflow.phpt 2026-10-19 14:38:59.000000000 +0000
@@ -0,0 +1,42 @@
+--TEST--
+imagecreatefromstring overflow with compressed chunk of size INT_MAX
+--EXTENSIONS--
+gd
+--FILE--
+ "gd2\x00",
+ "version" => "\x00\x02",
+ "width" => "\x00\x01",
+ "height" => "\x00\x01",
+ "chunk_size" => "\x00\x40",
+ "format" => "\x00\x04", // compressed truecolor image data
+ "x_chunk_count" => "\x00\x01",
+ "y_chunk_count" => "\x00\x01",
+];
+$fileHeader = implode("", $fileHeaderParts);
+
+$chunkHeaderParts = [
+ "offset" => "\x00\x00\x00\x20",
+ "size" =>"\x7F\xFF\xFF\xFF", // INT_MAX
+];
+$chunkHeader = implode("", $chunkHeaderParts);
+
+$trueColorHeaderParts = [
+ "truecolor" => "\x01",
+ "transparent" => "\x00\x00\x00\x00",
+];
+$trueColorHeader = implode("", $trueColorHeaderParts);
+
+$source = $fileHeader . $chunkHeader . $trueColorHeader;
+$img = imagecreatefromstring($source);
+var_dump($img);
+
+?>
+--EXPECTF--
+Warning: imagecreatefromstring(): Passed data is not in "GD2" format in %s on line %d
+
+Warning: imagecreatefromstring(): Couldn't create GD Image Stream out of Data in %s on line %d
+bool(false)
diff -Nru php8.4-8.4.26/ext/gd/tests/gif-oob.phpt php8.4-8.4.27/ext/gd/tests/gif-oob.phpt
--- php8.4-8.4.26/ext/gd/tests/gif-oob.phpt 1970-01-01 00:00:00.000000000 +0000
+++ php8.4-8.4.27/ext/gd/tests/gif-oob.phpt 2026-10-19 14:38:59.000000000 +0000
@@ -0,0 +1,63 @@
+--TEST--
+GIF OOB array access when using code size of 12
+--EXTENSIONS--
+gd
+--FILE--
+ "GIF",
+ "version" => "89a",
+];
+$fileHeader = implode("", $fileHeaderParts);
+
+$logicalScreenDescriptorParts = [
+ // little-endian format
+ "width" => "\x04\x00",
+ "height" => "\x04\x00",
+ // packed data: global color table flag (most significant bit),
+ // color resolution (3 bits, only meaningful if global color table is enabled
+ // and we don't enable it here)
+ // sort flag (one bit, again only meaningful if global color table is enabled)
+ // size of global color table (3 bits)
+ "packed_info" => "\x00",
+ "background_color_index" => "\x00",
+ "pixel_aspect_ratio" => "\x00",
+];
+$logicalScreenDescriptor = implode("", $logicalScreenDescriptorParts);
+
+$startImage = ",";
+
+$imgDescParts = [
+ // little-ending format
+ "left" => "\x00\x00",
+ "top" => "\x00\x00",
+ "width" => "\x04\x00",
+ "height" => "\x04\x00",
+ // more packed data: local color table flag, interlace flag, sort flag,
+ // 2 bits reserved for future use, then 3 bits for size of local color
+ // table, which we don't have
+ "packed_info" => "\x00",
+];
+$imgDesc = implode("", $imgDescParts);
+
+$imgDataParts = [
+ "lzw_min_code_size" => "\x0c", // 12
+ "sub_block_num_bytes" => "\x05",
+ // Data in the block: 3 12-bit codes, and then 4 trailing 0 bits
+ "sub_block_bytes" => "\xff\x5f\x00\x06\x40",
+ // end of data
+ "end" => "\x00"
+];
+$imgData = implode("", $imgDataParts);
+
+$trailer = ";";
+
+$source = $fileHeader . $logicalScreenDescriptor . $startImage . $imgDesc . $imgData . $trailer;
+$img = imagecreatefromstring($source);
+var_dump($img);
+
+?>
+--EXPECTF--
+object(GdImage)#%d (0) {
+}
diff -Nru php8.4-8.4.26/ext/gd/tests/oom_imagecreatefrombmp.phpt php8.4-8.4.27/ext/gd/tests/oom_imagecreatefrombmp.phpt
--- php8.4-8.4.26/ext/gd/tests/oom_imagecreatefrombmp.phpt 1970-01-01 00:00:00.000000000 +0000
+++ php8.4-8.4.27/ext/gd/tests/oom_imagecreatefrombmp.phpt 2026-10-19 14:38:59.000000000 +0000
@@ -0,0 +1,28 @@
+--TEST--
+imagecreatefrombmp() doesn't reach hard limit
+--EXTENSIONS--
+gd
+--SKIPIF--
+
+--INI--
+memory_limit=64M
+--FILE--
+
+--CLEAN--
+
+--EXPECTF--
+Fatal error: Allowed memory size of %d bytes exhausted %S(tried to allocate %d bytes) in %s on line %d
diff -Nru php8.4-8.4.26/ext/gd/tests/oom_imagecreatefromgd2.phpt php8.4-8.4.27/ext/gd/tests/oom_imagecreatefromgd2.phpt
--- php8.4-8.4.26/ext/gd/tests/oom_imagecreatefromgd2.phpt 1970-01-01 00:00:00.000000000 +0000
+++ php8.4-8.4.27/ext/gd/tests/oom_imagecreatefromgd2.phpt 2026-10-19 14:38:59.000000000 +0000
@@ -0,0 +1,31 @@
+--TEST--
+imagecreatefromgd2() doesn't reach hard limit
+--EXTENSIONS--
+gd
+--SKIPIF--
+
+--INI--
+memory_limit=64M
+--FILE--
+ pack('n', $v); // big-endian 16-bit
+$gd2 = "gd2\x00" // magic
+ . $w(2) // version
+ . $w(1) . $w(1) // image dimensions (small)
+ . $w(64) // chunk size
+ . $w(2) // GD2_FMT_COMPRESSED
+ . $w(65535) . $w(512); // ncx, ncy -> 33.5M chunk-index entries
+
+$path = __DIR__ . '/' . basename(__FILE__, '.php') . '.tmp.gd2';
+file_put_contents($path, $gd2);
+imagecreatefromgd2($path);
+?>
+--CLEAN--
+
+--EXPECTF--
+Fatal error: Allowed memory size of %d bytes exhausted %S(tried to allocate %d bytes) in %s on line %d
diff -Nru php8.4-8.4.26/ext/gd/tests/oom_imagecreatefromgd2_chunkbuf.phpt php8.4-8.4.27/ext/gd/tests/oom_imagecreatefromgd2_chunkbuf.phpt
--- php8.4-8.4.26/ext/gd/tests/oom_imagecreatefromgd2_chunkbuf.phpt 1970-01-01 00:00:00.000000000 +0000
+++ php8.4-8.4.27/ext/gd/tests/oom_imagecreatefromgd2_chunkbuf.phpt 2026-10-19 14:38:59.000000000 +0000
@@ -0,0 +1,39 @@
+--TEST--
+imagecreatefromgd2() chunk buffer doesn't reach hard limit
+--EXTENSIONS--
+gd
+--SKIPIF--
+
+--INI--
+memory_limit=8M
+--FILE--
+ pack('n', $v); // big-endian 16-bit
+$N = fn($v) => pack('N', $v); // big-endian 32-bit
+
+// chunkBuf is sized cs * bytesPerPixel * cs, all of it from the header, so a
+// 1x1 image still asks for 4096 * 4 * 4096 = 64 MB. GD2_CHUNKSIZE_MAX caps the
+// chunk size at 4096, hence the small memory_limit.
+$gd2 = "gd2\0" // magic
+ . $n(2) // version
+ . $n(1) . $n(1) // image dimensions
+ . $n(4096) // chunk size
+ . $n(4) // GD2_FMT_TRUECOLOR_COMPRESSED
+ . $n(1) . $n(1) // ncx, ncy -> one chunk
+ . $N(31) . $N(16) // chunk index: offset, compressed size
+ . "\x01" . $N(-1);
+// The chunk data itself is never reached: the buffers are allocated first.
+
+$path = __DIR__ . '/oom_imagecreatefromgd2_chunkbuf.tmp.gd2';
+file_put_contents($path, $gd2);
+imagecreatefromgd2($path);
+?>
+--CLEAN--
+
+--EXPECTF--
+Fatal error: Allowed memory size of %d bytes exhausted %S(tried to allocate %d bytes) in %s on line %d
diff -Nru php8.4-8.4.26/ext/gd/tests/oom_imagecreatefromgd2_compbuf.phpt php8.4-8.4.27/ext/gd/tests/oom_imagecreatefromgd2_compbuf.phpt
--- php8.4-8.4.26/ext/gd/tests/oom_imagecreatefromgd2_compbuf.phpt 1970-01-01 00:00:00.000000000 +0000
+++ php8.4-8.4.27/ext/gd/tests/oom_imagecreatefromgd2_compbuf.phpt 2026-10-19 14:38:59.000000000 +0000
@@ -0,0 +1,38 @@
+--TEST--
+imagecreatefromgd2() compressed chunk buffer doesn't reach hard limit
+--EXTENSIONS--
+gd
+--SKIPIF--
+
+--INI--
+memory_limit=64M
+--FILE--
+ pack('n', $v); // big-endian 16-bit
+$N = fn($v) => pack('N', $v); // big-endian 32-bit
+
+// compBuf is sized from the largest "size" in the chunk index, which is only
+// checked for being non-negative, so a 1x1 image can ask for 2 GB.
+$gd2 = "gd2\0" // magic
+ . $n(2) // version
+ . $n(1) . $n(1) // image dimensions
+ . $n(64) // chunk size
+ . $n(4) // GD2_FMT_TRUECOLOR_COMPRESSED
+ . $n(1) . $n(1) // ncx, ncy -> one chunk
+ . $N(31) . $N(0x7ffffff0) // chunk index: offset, compressed size
+ . "\x01" . $N(-1);
+// The chunk data itself is never reached: the buffers are allocated first.
+
+$path = __DIR__ . '/oom_imagecreatefromgd2_compbuf.tmp.gd2';
+file_put_contents($path, $gd2);
+imagecreatefromgd2($path);
+?>
+--CLEAN--
+
+--EXPECTF--
+Fatal error: Allowed memory size of %d bytes exhausted %S(tried to allocate %d bytes) in %s on line %d
diff -Nru php8.4-8.4.26/ext/gd/tests/oom_imagecreatefromgd2part.phpt php8.4-8.4.27/ext/gd/tests/oom_imagecreatefromgd2part.phpt
--- php8.4-8.4.26/ext/gd/tests/oom_imagecreatefromgd2part.phpt 1970-01-01 00:00:00.000000000 +0000
+++ php8.4-8.4.27/ext/gd/tests/oom_imagecreatefromgd2part.phpt 2026-10-19 14:38:59.000000000 +0000
@@ -0,0 +1,31 @@
+--TEST--
+imagecreatefromgd2part() doesn't reach hard limit
+--EXTENSIONS--
+gd
+--SKIPIF--
+
+--INI--
+memory_limit=64M
+--FILE--
+ pack('n', $v); // big-endian 16-bit
+$gd2 = "gd2\x00" // magic
+ . $w(2) // version
+ . $w(1) . $w(1) // image dimensions (small)
+ . $w(64) // chunk size
+ . $w(2) // GD2_FMT_COMPRESSED
+ . $w(65535) . $w(512); // ncx, ncy -> 33.5M chunk-index entries
+
+$path = __DIR__ . '/' . basename(__FILE__, '.php') . '.tmp.gd2';
+file_put_contents($path, $gd2);
+imagecreatefromgd2part($path, 0, 0, 10, 10);
+?>
+--CLEAN--
+
+--EXPECTF--
+Fatal error: Allowed memory size of %d bytes exhausted %S(tried to allocate %d bytes) in %s on line %d
diff -Nru php8.4-8.4.26/ext/gd/tests/oom_imagecreatefromgd2part_chunkbuf.phpt php8.4-8.4.27/ext/gd/tests/oom_imagecreatefromgd2part_chunkbuf.phpt
--- php8.4-8.4.26/ext/gd/tests/oom_imagecreatefromgd2part_chunkbuf.phpt 1970-01-01 00:00:00.000000000 +0000
+++ php8.4-8.4.27/ext/gd/tests/oom_imagecreatefromgd2part_chunkbuf.phpt 2026-10-19 14:38:59.000000000 +0000
@@ -0,0 +1,39 @@
+--TEST--
+imagecreatefromgd2part() chunk buffer doesn't reach hard limit
+--EXTENSIONS--
+gd
+--SKIPIF--
+
+--INI--
+memory_limit=8M
+--FILE--
+ pack('n', $v); // big-endian 16-bit
+$N = fn($v) => pack('N', $v); // big-endian 32-bit
+
+// chunkBuf is sized cs * bytesPerPixel * cs, all of it from the header, so a
+// 1x1 image still asks for 4096 * 4 * 4096 = 64 MB. GD2_CHUNKSIZE_MAX caps the
+// chunk size at 4096, hence the small memory_limit.
+$gd2 = "gd2\0" // magic
+ . $n(2) // version
+ . $n(1) . $n(1) // image dimensions
+ . $n(4096) // chunk size
+ . $n(4) // GD2_FMT_TRUECOLOR_COMPRESSED
+ . $n(1) . $n(1) // ncx, ncy -> one chunk
+ . $N(31) . $N(16) // chunk index: offset, compressed size
+ . "\x01" . $N(-1);
+// The chunk data itself is never reached: the buffers are allocated first.
+
+$path = __DIR__ . '/oom_imagecreatefromgd2part_chunkbuf.tmp.gd2';
+file_put_contents($path, $gd2);
+imagecreatefromgd2part($path, 0, 0, 1, 1);
+?>
+--CLEAN--
+
+--EXPECTF--
+Fatal error: Allowed memory size of %d bytes exhausted %S(tried to allocate %d bytes) in %s on line %d
diff -Nru php8.4-8.4.26/ext/gd/tests/oom_imagecreatefromgd2part_compbuf.phpt php8.4-8.4.27/ext/gd/tests/oom_imagecreatefromgd2part_compbuf.phpt
--- php8.4-8.4.26/ext/gd/tests/oom_imagecreatefromgd2part_compbuf.phpt 1970-01-01 00:00:00.000000000 +0000
+++ php8.4-8.4.27/ext/gd/tests/oom_imagecreatefromgd2part_compbuf.phpt 2026-10-19 14:38:59.000000000 +0000
@@ -0,0 +1,38 @@
+--TEST--
+imagecreatefromgd2part() compressed chunk buffer doesn't reach hard limit
+--EXTENSIONS--
+gd
+--SKIPIF--
+
+--INI--
+memory_limit=64M
+--FILE--
+ pack('n', $v); // big-endian 16-bit
+$N = fn($v) => pack('N', $v); // big-endian 32-bit
+
+// compBuf is sized from the largest "size" in the chunk index, which is only
+// checked for being non-negative, so a 1x1 image can ask for 2 GB.
+$gd2 = "gd2\0" // magic
+ . $n(2) // version
+ . $n(1) . $n(1) // image dimensions
+ . $n(64) // chunk size
+ . $n(4) // GD2_FMT_TRUECOLOR_COMPRESSED
+ . $n(1) . $n(1) // ncx, ncy -> one chunk
+ . $N(31) . $N(0x7ffffff0) // chunk index: offset, compressed size
+ . "\x01" . $N(-1);
+// The chunk data itself is never reached: the buffers are allocated first.
+
+$path = __DIR__ . '/oom_imagecreatefromgd2part_compbuf.tmp.gd2';
+file_put_contents($path, $gd2);
+imagecreatefromgd2part($path, 0, 0, 1, 1);
+?>
+--CLEAN--
+
+--EXPECTF--
+Fatal error: Allowed memory size of %d bytes exhausted %S(tried to allocate %d bytes) in %s on line %d
diff -Nru php8.4-8.4.26/ext/gd/tests/oom_imagecreatefromgif.phpt php8.4-8.4.27/ext/gd/tests/oom_imagecreatefromgif.phpt
--- php8.4-8.4.26/ext/gd/tests/oom_imagecreatefromgif.phpt 1970-01-01 00:00:00.000000000 +0000
+++ php8.4-8.4.27/ext/gd/tests/oom_imagecreatefromgif.phpt 2026-10-19 14:38:59.000000000 +0000
@@ -0,0 +1,28 @@
+--TEST--
+imagecreatefromgif() doesn't reach hard limit
+--EXTENSIONS--
+gd
+--SKIPIF--
+
+--INI--
+memory_limit=64M
+--FILE--
+
+--CLEAN--
+
+--EXPECTF--
+Fatal error: Allowed memory size of %d bytes exhausted %S(tried to allocate %d bytes) in %s on line %d
diff -Nru php8.4-8.4.26/ext/gd/tests/oom_imagecreatefrompng.phpt php8.4-8.4.27/ext/gd/tests/oom_imagecreatefrompng.phpt
--- php8.4-8.4.26/ext/gd/tests/oom_imagecreatefrompng.phpt 1970-01-01 00:00:00.000000000 +0000
+++ php8.4-8.4.27/ext/gd/tests/oom_imagecreatefrompng.phpt 2026-10-19 14:38:59.000000000 +0000
@@ -0,0 +1,32 @@
+--TEST--
+imagecreatefrompng() doesn't reach hard limit
+--EXTENSIONS--
+gd
+--SKIPIF--
+
+--INI--
+memory_limit=64M
+--FILE--
+
+--CLEAN--
+
+--EXPECTF--
+Fatal error: Allowed memory size of %d bytes exhausted %S(tried to allocate %d bytes) in %s on line %d
diff -Nru php8.4-8.4.26/ext/gd/tests/oom_imagecreatefromstring.phpt php8.4-8.4.27/ext/gd/tests/oom_imagecreatefromstring.phpt
--- php8.4-8.4.26/ext/gd/tests/oom_imagecreatefromstring.phpt 1970-01-01 00:00:00.000000000 +0000
+++ php8.4-8.4.27/ext/gd/tests/oom_imagecreatefromstring.phpt 2026-10-19 14:38:59.000000000 +0000
@@ -0,0 +1,26 @@
+--TEST--
+imagecreatefromstring() doesn't reach hard limit
+--EXTENSIONS--
+gd
+--SKIPIF--
+
+--INI--
+memory_limit=64M
+--FILE--
+
+--EXPECTF--
+Fatal error: Allowed memory size of %d bytes exhausted %S(tried to allocate %d bytes) in %s on line %d
diff -Nru php8.4-8.4.26/ext/gd/tests/oom_imagecreatefromtga.phpt php8.4-8.4.27/ext/gd/tests/oom_imagecreatefromtga.phpt
--- php8.4-8.4.26/ext/gd/tests/oom_imagecreatefromtga.phpt 1970-01-01 00:00:00.000000000 +0000
+++ php8.4-8.4.27/ext/gd/tests/oom_imagecreatefromtga.phpt 2026-10-19 14:38:59.000000000 +0000
@@ -0,0 +1,36 @@
+--TEST--
+imagecreatefromtga() doesn't reach hard limit
+--EXTENSIONS--
+gd
+--SKIPIF--
+
+--INI--
+memory_limit=64M
+--FILE--
+
+--CLEAN--
+
+--EXPECTF--
+Fatal error: Allowed memory size of %d bytes exhausted %S(tried to allocate %d bytes) in %s on line %d
diff -Nru php8.4-8.4.26/ext/gd/tests/oom_imagecreatefromwbmp.phpt php8.4-8.4.27/ext/gd/tests/oom_imagecreatefromwbmp.phpt
--- php8.4-8.4.26/ext/gd/tests/oom_imagecreatefromwbmp.phpt 1970-01-01 00:00:00.000000000 +0000
+++ php8.4-8.4.27/ext/gd/tests/oom_imagecreatefromwbmp.phpt 2026-10-19 14:38:59.000000000 +0000
@@ -0,0 +1,33 @@
+--TEST--
+imagecreatefromwbmp() doesn't reach hard limit
+--EXTENSIONS--
+gd
+--SKIPIF--
+
+--INI--
+memory_limit=64M
+--FILE--
+>= 7; $v > 0; $v >>= 7) {
+ $out = chr(0x80 | ($v & 0x7f)) . $out;
+ }
+ return $out;
+};
+// 16384 x 16384 x sizeof(int) = 1 GB
+$wbmp = "\x00\x00" . $mbi(16384) . $mbi(16384) . str_repeat("\x00", 64);
+
+$path = __DIR__ . '/oom_imagecreatefromwbmp.tmp.wbmp';
+file_put_contents($path, $wbmp);
+imagecreatefromwbmp($path);
+?>
+--CLEAN--
+
+--EXPECTF--
+Fatal error: Allowed memory size of %d bytes exhausted %S(tried to allocate %d bytes) in %s on line %d
diff -Nru php8.4-8.4.26/ext/gd/tests/oom_imagecreatefromxbm.phpt php8.4-8.4.27/ext/gd/tests/oom_imagecreatefromxbm.phpt
--- php8.4-8.4.26/ext/gd/tests/oom_imagecreatefromxbm.phpt 1970-01-01 00:00:00.000000000 +0000
+++ php8.4-8.4.27/ext/gd/tests/oom_imagecreatefromxbm.phpt 2026-10-19 14:38:59.000000000 +0000
@@ -0,0 +1,27 @@
+--TEST--
+imagecreatefromxbm() doesn't reach hard limit
+--EXTENSIONS--
+gd
+--SKIPIF--
+
+--INI--
+memory_limit=64M
+--FILE--
+
+--CLEAN--
+
+--EXPECTF--
+Fatal error: Allowed memory size of %d bytes exhausted %S(tried to allocate %d bytes) in %s on line %d
diff -Nru php8.4-8.4.26/ext/gd/tests/oom_imagepalettetotruecolor.phpt php8.4-8.4.27/ext/gd/tests/oom_imagepalettetotruecolor.phpt
--- php8.4-8.4.26/ext/gd/tests/oom_imagepalettetotruecolor.phpt 1970-01-01 00:00:00.000000000 +0000
+++ php8.4-8.4.27/ext/gd/tests/oom_imagepalettetotruecolor.phpt 2026-10-19 14:38:59.000000000 +0000
@@ -0,0 +1,17 @@
+--TEST--
+imagepalettetotruecolor() doesn't reach hard limit
+--EXTENSIONS--
+gd
+--SKIPIF--
+
+--INI--
+memory_limit=64M
+--FILE--
+
+--EXPECTF--
+Fatal error: Allowed memory size of %d bytes exhausted %S(tried to allocate %d bytes) in %s on line %d
diff -Nru php8.4-8.4.26/ext/hash/hash.c php8.4-8.4.27/ext/hash/hash.c
--- php8.4-8.4.26/ext/hash/hash.c 2026-09-22 15:00:02.000000000 +0000
+++ php8.4-8.4.27/ext/hash/hash.c 2026-10-19 14:38:59.000000000 +0000
@@ -1328,7 +1328,7 @@
context = php_hash_alloc_context(ops);
ops->hash_init(context, NULL);
- key = ecalloc(1, times * block_size);
+ key = ecalloc(times, block_size);
digest = emalloc(ops->digest_size + 1);
for (i = 0; i < times; i++) {
diff -Nru php8.4-8.4.26/ext/hash/tests/hash_pbkdf2_max_length.phpt php8.4-8.4.27/ext/hash/tests/hash_pbkdf2_max_length.phpt
--- php8.4-8.4.26/ext/hash/tests/hash_pbkdf2_max_length.phpt 2026-09-22 15:00:02.000000000 +0000
+++ php8.4-8.4.27/ext/hash/tests/hash_pbkdf2_max_length.phpt 2026-10-19 14:38:59.000000000 +0000
@@ -14,4 +14,6 @@
?>
--EXPECTF--
-Fatal error: Allowed memory size of 134217728 bytes exhausted%s(tried to allocate 4611686018427387904 bytes) in %s on line %d
+Hard memory limit of 268435456 bytes exhausted %S(tried to allocate %d bytes) in %s on line %d
+
+Termsig=9
diff -Nru php8.4-8.4.26/ext/hash/tests/hash_pbkdf2_max_length_raw.phpt php8.4-8.4.27/ext/hash/tests/hash_pbkdf2_max_length_raw.phpt
--- php8.4-8.4.26/ext/hash/tests/hash_pbkdf2_max_length_raw.phpt 2026-09-22 15:00:02.000000000 +0000
+++ php8.4-8.4.27/ext/hash/tests/hash_pbkdf2_max_length_raw.phpt 2026-10-19 14:38:59.000000000 +0000
@@ -14,4 +14,6 @@
?>
--EXPECTF--
-Fatal error: Allowed memory size of 134217728 bytes exhausted%s(tried to allocate 9223372036854775808 bytes) in %s on line %d
+Hard memory limit of 268435456 bytes exhausted %S(tried to allocate %d bytes) in %s on line %d
+
+Termsig=9
diff -Nru php8.4-8.4.26/ext/iconv/iconv.c php8.4-8.4.27/ext/iconv/iconv.c
--- php8.4-8.4.26/ext/iconv/iconv.c 2026-09-22 15:00:02.000000000 +0000
+++ php8.4-8.4.27/ext/iconv/iconv.c 2026-10-19 14:38:59.000000000 +0000
@@ -363,7 +363,9 @@
if (in_p != NULL) {
while (in_left > 0) {
out_left = buf_growth;
- smart_str_alloc(d, out_left, 0);
+ if (UNEXPECTED(smart_str_falloc(d, out_left, 0, /* fallible */ true) == (size_t)-1)) {
+ return PHP_ICONV_ERR_ALLOC;
+ }
out_p = ZSTR_VAL((d)->s) + ZSTR_LEN((d)->s);
@@ -388,7 +390,9 @@
} else {
for (;;) {
out_left = buf_growth;
- smart_str_alloc(d, out_left, 0);
+ if (UNEXPECTED(smart_str_falloc(d, out_left, 0, /* fallible */ true) == (size_t)-1)) {
+ return PHP_ICONV_ERR_ALLOC;
+ }
out_p = ZSTR_VAL((d)->s) + ZSTR_LEN((d)->s);
@@ -441,7 +445,7 @@
char *out_p;
size_t bsz, result = 0;
php_iconv_err_t retval = PHP_ICONV_ERR_SUCCESS;
- zend_string *out_buf;
+ zend_string *out_buf = NULL;
int ignore_ilseq = _php_check_ignore(out_charset);
*out = NULL;
@@ -461,7 +465,12 @@
bsz = out_left;
zend_try {
- out_buf = zend_string_alloc(bsz, 0);
+ out_buf = zend_string_falloc(bsz, 0, /* fallible */ true);
+ if (UNEXPECTED(out_buf == NULL)) {
+ result = -1;
+ errno = 0;
+ goto fail;
+ }
out_p = ZSTR_VAL(out_buf);
while (in_left > 0) {
@@ -483,7 +492,13 @@
/* converted string is longer than out buffer */
bsz += in_len;
- out_buf = zend_string_extend(out_buf, bsz, 0);
+ zend_string *grown = zend_string_fextend(out_buf, bsz, 0, /* fallible */ true);
+ if (UNEXPECTED(grown == NULL)) {
+ result = -1;
+ errno = 0;
+ goto fail;
+ }
+ out_buf = grown;
out_p = ZSTR_VAL(out_buf);
out_p += out_size;
out_left = bsz - out_size;
@@ -505,7 +520,13 @@
if (errno == E2BIG) {
bsz += 16;
- out_buf = zend_string_extend(out_buf, bsz, 0);
+ zend_string *grown = zend_string_fextend(out_buf, bsz, 0, /* fallible */ true);
+ if (UNEXPECTED(grown == NULL)) {
+ result = -1;
+ errno = 0;
+ goto fail;
+ }
+ out_buf = grown;
out_p = ZSTR_VAL(out_buf);
out_p += out_size;
out_left = bsz - out_size;
@@ -514,6 +535,7 @@
}
}
}
+fail:;
} zend_catch {
iconv_close(cd);
zend_bailout();
@@ -538,7 +560,9 @@
default:
/* other error */
- zend_string_efree(out_buf);
+ if (out_buf) {
+ zend_string_efree(out_buf);
+ }
return PHP_ICONV_ERR_UNKNOWN;
}
}
@@ -978,7 +1002,11 @@
}
zend_try {
- buf = safe_emalloc(1, max_line_len, 5);
+ buf = safe_femalloc(1, max_line_len, 5, /* fallible */ true);
+ if (UNEXPECTED(buf == NULL)) {
+ err = PHP_ICONV_ERR_ALLOC;
+ goto out_try;
+ }
char_cnt = max_line_len;
@@ -1184,7 +1212,7 @@
} break; /* case PHP_ICONV_ENC_SCHEME_QPRINT: */
}
- } while (in_left > 0);
+ } while (in_left > 0 && !ZEND_HAS_OOM());
smart_str_0(pretval);
@@ -2158,7 +2186,7 @@
enc_str_tmp = ZSTR_VAL(encoded_str);
enc_str_len_tmp = ZSTR_LEN(encoded_str);
- while (enc_str_len_tmp > 0) {
+ while (enc_str_len_tmp > 0 && !ZEND_HAS_OOM()) {
smart_str decoded_header = {0};
char *header_name = NULL;
size_t header_name_len = 0;
@@ -2567,9 +2595,11 @@
php_stream_bucket_unlink(bucket);
- if (php_iconv_stream_filter_append_bucket(self, stream, filter,
- buckets_out, bucket->buf, bucket->buflen, &consumed,
- php_stream_is_persistent(stream)) != SUCCESS) {
+ /* The conversion may grow the input several times over. */
+ if (!ZEND_HAS_OOM()
+ && php_iconv_stream_filter_append_bucket(self, stream, filter,
+ buckets_out, bucket->buf, bucket->buflen, &consumed,
+ php_stream_is_persistent(stream)) != SUCCESS) {
php_stream_bucket_delref(bucket);
return PSFS_ERR_FATAL;
}
diff -Nru php8.4-8.4.26/ext/iconv/tests/oom_iconv.phpt php8.4-8.4.27/ext/iconv/tests/oom_iconv.phpt
--- php8.4-8.4.26/ext/iconv/tests/oom_iconv.phpt 1970-01-01 00:00:00.000000000 +0000
+++ php8.4-8.4.27/ext/iconv/tests/oom_iconv.phpt 2026-10-19 14:38:59.000000000 +0000
@@ -0,0 +1,17 @@
+--TEST--
+iconv() doesn't reach hard limit
+--EXTENSIONS--
+iconv
+--SKIPIF--
+
+--INI--
+memory_limit=16M
+--FILE--
+
+--EXPECTF--
+Fatal error: Allowed memory size of %d bytes exhausted %S(tried to allocate %d bytes) in %s on line %d
diff -Nru php8.4-8.4.26/ext/iconv/tests/oom_iconv_mime_decode.phpt php8.4-8.4.27/ext/iconv/tests/oom_iconv_mime_decode.phpt
--- php8.4-8.4.26/ext/iconv/tests/oom_iconv_mime_decode.phpt 1970-01-01 00:00:00.000000000 +0000
+++ php8.4-8.4.27/ext/iconv/tests/oom_iconv_mime_decode.phpt 2026-10-19 14:38:59.000000000 +0000
@@ -0,0 +1,17 @@
+--TEST--
+iconv_mime_decode() doesn't reach hard limit
+--EXTENSIONS--
+iconv
+--SKIPIF--
+
+--INI--
+memory_limit=8M
+--FILE--
+
+--EXPECTF--
+Fatal error: Allowed memory size of %d bytes exhausted %S(tried to allocate %d bytes) in %s on line %d
diff -Nru php8.4-8.4.26/ext/iconv/tests/oom_iconv_mime_decode_headers.phpt php8.4-8.4.27/ext/iconv/tests/oom_iconv_mime_decode_headers.phpt
--- php8.4-8.4.26/ext/iconv/tests/oom_iconv_mime_decode_headers.phpt 1970-01-01 00:00:00.000000000 +0000
+++ php8.4-8.4.27/ext/iconv/tests/oom_iconv_mime_decode_headers.phpt 2026-10-19 14:38:59.000000000 +0000
@@ -0,0 +1,13 @@
+--TEST--
+iconv_mime_decode_headers() doesn't reach hard limit
+--EXTENSIONS--
+iconv
+--INI--
+memory_limit=8M
+--FILE--
+
+--EXPECTF--
+Fatal error: Allowed memory size of %d bytes exhausted %S(tried to allocate %d bytes) in %s on line %d
diff -Nru php8.4-8.4.26/ext/iconv/tests/oom_iconv_mime_encode.phpt php8.4-8.4.27/ext/iconv/tests/oom_iconv_mime_encode.phpt
--- php8.4-8.4.26/ext/iconv/tests/oom_iconv_mime_encode.phpt 1970-01-01 00:00:00.000000000 +0000
+++ php8.4-8.4.27/ext/iconv/tests/oom_iconv_mime_encode.phpt 2026-10-19 14:38:59.000000000 +0000
@@ -0,0 +1,21 @@
+--TEST--
+iconv_mime_encode() doesn't reach hard limit
+--EXTENSIONS--
+iconv
+--SKIPIF--
+
+--INI--
+memory_limit=8M
+--FILE--
+ "Q",
+ "input-charset" => "ISO-8859-1",
+ "output-charset" => "ISO-8859-1",
+]);
+?>
+--EXPECTF--
+Fatal error: Allowed memory size of %d bytes exhausted %S(tried to allocate %d bytes) in %s on line %d
diff -Nru php8.4-8.4.26/ext/iconv/tests/oom_iconv_mime_encode_line_length.phpt php8.4-8.4.27/ext/iconv/tests/oom_iconv_mime_encode_line_length.phpt
--- php8.4-8.4.26/ext/iconv/tests/oom_iconv_mime_encode_line_length.phpt 1970-01-01 00:00:00.000000000 +0000
+++ php8.4-8.4.27/ext/iconv/tests/oom_iconv_mime_encode_line_length.phpt 2026-10-19 14:38:59.000000000 +0000
@@ -0,0 +1,13 @@
+--TEST--
+iconv_mime_encode() line-length doesn't reach hard limit
+--EXTENSIONS--
+iconv
+--INI--
+memory_limit=8M
+--FILE--
+ PHP_INT_MAX]);
+echo "not reached\n";
+?>
+--EXPECTF--
+Fatal error: Allowed memory size of %d bytes exhausted %S(tried to allocate %d bytes) in %s on line %d
diff -Nru php8.4-8.4.26/ext/iconv/tests/oom_iconv_stream_filter.phpt php8.4-8.4.27/ext/iconv/tests/oom_iconv_stream_filter.phpt
--- php8.4-8.4.26/ext/iconv/tests/oom_iconv_stream_filter.phpt 1970-01-01 00:00:00.000000000 +0000
+++ php8.4-8.4.27/ext/iconv/tests/oom_iconv_stream_filter.phpt 2026-10-19 14:38:59.000000000 +0000
@@ -0,0 +1,28 @@
+--TEST--
+convert.iconv stream filter doesn't reach hard limit
+--EXTENSIONS--
+iconv
+--INI--
+memory_limit=64M
+--SKIPIF--
+
+--FILE--
+
+--CLEAN--
+
+--EXPECTF--
+Fatal error: Allowed memory size of %d bytes exhausted %S(tried to allocate %d bytes) in %s on line %d
diff -Nru php8.4-8.4.26/ext/imap/tests/oom_imap_mime_header_decode.phpt php8.4-8.4.27/ext/imap/tests/oom_imap_mime_header_decode.phpt
--- php8.4-8.4.26/ext/imap/tests/oom_imap_mime_header_decode.phpt 1970-01-01 00:00:00.000000000 +0000
+++ php8.4-8.4.27/ext/imap/tests/oom_imap_mime_header_decode.phpt 2026-10-19 14:38:59.000000000 +0000
@@ -0,0 +1,13 @@
+--TEST--
+imap_mime_header_decode() doesn't reach hard limit
+--EXTENSIONS--
+imap
+--INI--
+memory_limit=8M
+--FILE--
+
+--EXPECTF--
+Fatal error: Allowed memory size of 8388608 bytes exhausted %S(tried to allocate %d bytes) in %s on line %d
diff -Nru php8.4-8.4.26/ext/intl/collator/collator_attr.c php8.4-8.4.27/ext/intl/collator/collator_attr.c
--- php8.4-8.4.26/ext/intl/collator/collator_attr.c 2026-09-22 15:00:02.000000000 +0000
+++ php8.4-8.4.27/ext/intl/collator/collator_attr.c 2026-10-19 14:38:59.000000000 +0000
@@ -40,6 +40,10 @@
/* Fetch the object. */
COLLATOR_METHOD_FETCH_OBJECT;
+ if (collator_check_initialized(co) == FAILURE) {
+ RETURN_THROWS();
+ }
+
value = ucol_getAttribute( co->ucoll, attribute, COLLATOR_ERROR_CODE_P( co ) );
COLLATOR_CHECK_STATUS( co, "Error getting attribute value" );
@@ -64,6 +68,10 @@
/* Fetch the object. */
COLLATOR_METHOD_FETCH_OBJECT;
+ if (collator_check_initialized(co) == FAILURE) {
+ RETURN_THROWS();
+ }
+
/* Set new value for the given attribute. */
ucol_setAttribute( co->ucoll, attribute, value, COLLATOR_ERROR_CODE_P( co ) );
COLLATOR_CHECK_STATUS( co, "Error setting attribute value" );
@@ -87,6 +95,10 @@
/* Fetch the object. */
COLLATOR_METHOD_FETCH_OBJECT;
+ if (collator_check_initialized(co) == FAILURE) {
+ RETURN_THROWS();
+ }
+
/* Get current strength and return it. */
RETURN_LONG( ucol_getStrength( co->ucoll ) );
}
@@ -109,6 +121,10 @@
/* Fetch the object. */
COLLATOR_METHOD_FETCH_OBJECT;
+ if (collator_check_initialized(co) == FAILURE) {
+ RETURN_THROWS();
+ }
+
/* Set given strength. */
ucol_setStrength( co->ucoll, strength );
diff -Nru php8.4-8.4.26/ext/intl/collator/collator_class.h php8.4-8.4.27/ext/intl/collator/collator_class.h
--- php8.4-8.4.26/ext/intl/collator/collator_class.h 2026-09-22 15:00:02.000000000 +0000
+++ php8.4-8.4.27/ext/intl/collator/collator_class.h 2026-10-19 14:38:59.000000000 +0000
@@ -46,6 +46,22 @@
}
#define Z_INTL_COLLATOR_P(zv) php_intl_collator_fetch_object(Z_OBJ_P(zv))
+static zend_always_inline zend_result collator_check_initialized(Collator_object *co)
+{
+ ZEND_ASSERT(co != NULL);
+
+ if (UNEXPECTED(co->ucoll == NULL)) {
+ intl_error_set_code( NULL, COLLATOR_ERROR_CODE( co ) );
+ intl_errors_set_custom_msg( COLLATOR_ERROR_P( co ),
+ "Object not initialized", 0 );
+ zend_throw_error(NULL, "Object not initialized");
+
+ return FAILURE;
+ }
+
+ return SUCCESS;
+}
+
void collator_register_Collator_symbols(int module_number);
void collator_object_init( Collator_object* co );
void collator_object_destroy( Collator_object* co );
diff -Nru php8.4-8.4.26/ext/intl/collator/collator_compare.c php8.4-8.4.27/ext/intl/collator/collator_compare.c
--- php8.4-8.4.26/ext/intl/collator/collator_compare.c 2026-09-22 15:00:02.000000000 +0000
+++ php8.4-8.4.27/ext/intl/collator/collator_compare.c 2026-10-19 14:38:59.000000000 +0000
@@ -48,12 +48,7 @@
/* Fetch the object. */
COLLATOR_METHOD_FETCH_OBJECT;
- if (!co || !co->ucoll) {
- intl_error_set_code( NULL, COLLATOR_ERROR_CODE( co ) );
- intl_errors_set_custom_msg( COLLATOR_ERROR_P( co ),
- "Object not initialized", 0 );
- zend_throw_error(NULL, "Object not initialized");
-
+ if (collator_check_initialized(co) == FAILURE) {
RETURN_THROWS();
}
diff -Nru php8.4-8.4.26/ext/intl/collator/collator_locale.c php8.4-8.4.27/ext/intl/collator/collator_locale.c
--- php8.4-8.4.26/ext/intl/collator/collator_locale.c 2026-09-22 15:00:02.000000000 +0000
+++ php8.4-8.4.27/ext/intl/collator/collator_locale.c 2026-10-19 14:38:59.000000000 +0000
@@ -41,12 +41,7 @@
/* Fetch the object. */
COLLATOR_METHOD_FETCH_OBJECT;
- if (!co || !co->ucoll) {
- intl_error_set_code( NULL, COLLATOR_ERROR_CODE( co ) );
- intl_errors_set_custom_msg( COLLATOR_ERROR_P( co ),
- "Object not initialized", 0 );
- zend_throw_error(NULL, "Object not initialized");
-
+ if (collator_check_initialized(co) == FAILURE) {
RETURN_THROWS();
}
diff -Nru php8.4-8.4.26/ext/intl/collator/collator_sort.c php8.4-8.4.27/ext/intl/collator/collator_sort.c
--- php8.4-8.4.26/ext/intl/collator/collator_sort.c 2026-09-22 15:00:02.000000000 +0000
+++ php8.4-8.4.27/ext/intl/collator/collator_sort.c 2026-10-19 14:38:59.000000000 +0000
@@ -376,12 +376,7 @@
/* Fetch the object. */
COLLATOR_METHOD_FETCH_OBJECT;
- if (!co || !co->ucoll) {
- intl_error_set_code( NULL, COLLATOR_ERROR_CODE( co ) );
- intl_errors_set_custom_msg( COLLATOR_ERROR_P( co ),
- "Object not initialized", 0 );
- zend_throw_error(NULL, "Object not initialized");
-
+ if (collator_check_initialized(co) == FAILURE) {
RETURN_THROWS();
}
@@ -532,12 +527,7 @@
/* Fetch the object. */
COLLATOR_METHOD_FETCH_OBJECT;
- if (!co || !co->ucoll) {
- intl_error_set_code( NULL, COLLATOR_ERROR_CODE( co ) );
- intl_errors_set_custom_msg( COLLATOR_ERROR_P( co ),
- "Object not initialized", 0 );
- zend_throw_error(NULL, "Object not initialized");
-
+ if (collator_check_initialized(co) == FAILURE) {
RETURN_THROWS();
}
diff -Nru php8.4-8.4.26/ext/intl/converter/converter.c php8.4-8.4.27/ext/intl/converter/converter.c
--- php8.4-8.4.26/ext/intl/converter/converter.c 2026-09-22 15:00:02.000000000 +0000
+++ php8.4-8.4.27/ext/intl/converter/converter.c 2026-10-19 14:38:59.000000000 +0000
@@ -642,7 +642,10 @@
THROW_UFAILURE(objval, "ucnv_toUChars", error);
return NULL;
}
- temp = safe_emalloc(sizeof(UChar), temp_len, sizeof(UChar));
+ temp = safe_femalloc(sizeof(UChar), temp_len, sizeof(UChar), /* fallible */ true);
+ if (!temp) {
+ return NULL;
+ }
/* Convert to intermediate UChar* array */
error = U_ZERO_ERROR;
@@ -662,7 +665,11 @@
return NULL;
}
- ret = zend_string_alloc(ret_len, 0);
+ ret = zend_string_falloc(ret_len, /* persistent */ false, /* fallible */ true);
+ if (!ret) {
+ efree(temp);
+ return NULL;
+ }
/* Convert to final encoding */
error = U_ZERO_ERROR;
diff -Nru php8.4-8.4.26/ext/intl/dateformat/dateformat_class.c php8.4-8.4.27/ext/intl/dateformat/dateformat_class.c
--- php8.4-8.4.26/ext/intl/dateformat/dateformat_class.c 2026-09-22 15:00:02.000000000 +0000
+++ php8.4-8.4.27/ext/intl/dateformat/dateformat_class.c 2026-10-19 14:38:59.000000000 +0000
@@ -71,6 +71,13 @@
/* clone standard parts */
zend_objects_clone_members(&new_dfo->zo, &dfo->zo);
+ new_dfo->date_type = dfo->date_type;
+ new_dfo->time_type = dfo->time_type;
+ new_dfo->calendar = dfo->calendar;
+ if (dfo->requested_locale != NULL) {
+ new_dfo->requested_locale = estrdup(dfo->requested_locale);
+ }
+
/* clone formatter object */
if (DATE_FORMAT_OBJECT(dfo) != NULL) {
UErrorCode error = U_ZERO_ERROR;
diff -Nru php8.4-8.4.26/ext/intl/dateformat/dateformat_parse.c php8.4-8.4.27/ext/intl/dateformat/dateformat_parse.c
--- php8.4-8.4.26/ext/intl/dateformat/dateformat_parse.c 2026-09-22 15:00:02.000000000 +0000
+++ php8.4-8.4.27/ext/intl/dateformat/dateformat_parse.c 2026-10-19 14:38:59.000000000 +0000
@@ -41,10 +41,19 @@
/* Convert timezone to UTF-16. */
intl_convert_utf8_to_utf16(&text_utf16, &text_utf16_len, text_to_parse, text_len, &INTL_DATA_ERROR_CODE(dfo));
INTL_METHOD_CHECK_STATUS(dfo, "Error converting timezone to UTF-16" );
+ if (parse_pos && !intl_convert_utf8_offset_to_utf16(text_to_parse, text_len, parse_pos, &INTL_DATA_ERROR_CODE(dfo))) {
+ if (text_utf16) {
+ efree(text_utf16);
+ }
+ INTL_METHOD_CHECK_STATUS(dfo, "Invalid UTF-8 offset" );
+ }
if (UNEXPECTED(update_calendar)) {
UCalendar *parsed_calendar = (UCalendar *)udat_getCalendar(DATE_FORMAT_OBJECT(dfo));
udat_parseCalendar(DATE_FORMAT_OBJECT(dfo), parsed_calendar, text_utf16, text_utf16_len, parse_pos, &INTL_DATA_ERROR_CODE(dfo));
+ if (parse_pos) {
+ *parse_pos = intl_convert_utf16_offset_to_utf8(text_utf16, text_utf16_len, *parse_pos);
+ }
if (text_utf16) {
efree(text_utf16);
}
@@ -52,6 +61,9 @@
timestamp = ucal_getMillis( parsed_calendar, &INTL_DATA_ERROR_CODE(dfo));
} else {
timestamp = udat_parse(DATE_FORMAT_OBJECT(dfo), text_utf16, text_utf16_len, parse_pos, &INTL_DATA_ERROR_CODE(dfo));
+ if (parse_pos) {
+ *parse_pos = intl_convert_utf16_offset_to_utf8(text_utf16, text_utf16_len, *parse_pos);
+ }
if (text_utf16) {
efree(text_utf16);
}
@@ -95,9 +107,18 @@
/* Convert timezone to UTF-16. */
intl_convert_utf8_to_utf16(&text_utf16, &text_utf16_len, text_to_parse, text_len, &INTL_DATA_ERROR_CODE(dfo));
INTL_METHOD_CHECK_STATUS(dfo, "Error converting timezone to UTF-16" );
+ if (parse_pos && !intl_convert_utf8_offset_to_utf16(text_to_parse, text_len, parse_pos, &INTL_DATA_ERROR_CODE(dfo))) {
+ if (text_utf16) {
+ efree(text_utf16);
+ }
+ INTL_METHOD_CHECK_STATUS(dfo, "Invalid UTF-8 offset" );
+ }
parsed_calendar = (UCalendar *)udat_getCalendar(DATE_FORMAT_OBJECT(dfo));
udat_parseCalendar( DATE_FORMAT_OBJECT(dfo), parsed_calendar, text_utf16, text_utf16_len, parse_pos, &INTL_DATA_ERROR_CODE(dfo));
+ if (parse_pos) {
+ *parse_pos = intl_convert_utf16_offset_to_utf8(text_utf16, text_utf16_len, *parse_pos);
+ }
if (text_utf16) {
efree(text_utf16);
diff -Nru php8.4-8.4.26/ext/intl/formatter/formatter_parse.c php8.4-8.4.27/ext/intl/formatter/formatter_parse.c
--- php8.4-8.4.26/ext/intl/formatter/formatter_parse.c 2026-09-22 15:00:02.000000000 +0000
+++ php8.4-8.4.27/ext/intl/formatter/formatter_parse.c 2026-10-19 14:38:59.000000000 +0000
@@ -27,42 +27,6 @@
#define ICU_LOCALE_BUG 1
-static bool numfmt_utf8_offset_to_utf16(const char *str, size_t str_len, int32_t *position, UErrorCode *status)
-{
- int32_t utf16_position;
-
- if (*position < 0 || (size_t) *position > str_len) {
- return true;
- }
-
- *status = U_ZERO_ERROR;
- u_strFromUTF8(NULL, 0, &utf16_position, str, *position, status);
- if (*status != U_BUFFER_OVERFLOW_ERROR && U_FAILURE(*status)) {
- return false;
- }
- *status = U_ZERO_ERROR;
-
- *position = utf16_position;
- return true;
-}
-
-static int32_t numfmt_utf16_offset_to_utf8(const UChar *str, int32_t str_len, int32_t position)
-{
- int32_t utf8_position;
- UErrorCode status = U_ZERO_ERROR;
-
- if (position < 0 || position > str_len) {
- return position;
- }
-
- u_strToUTF8(NULL, 0, &utf8_position, str, position, &status);
- if (status != U_BUFFER_OVERFLOW_ERROR && U_FAILURE(status)) {
- return position;
- }
-
- return utf8_position;
-}
-
/* {{{ Parse a number. */
PHP_FUNCTION( numfmt_parse )
{
@@ -97,7 +61,7 @@
/* Convert given string to UTF-16. */
intl_convert_utf8_to_utf16(&sstr, &sstr_len, str, str_len, &INTL_DATA_ERROR_CODE(nfo));
INTL_METHOD_CHECK_STATUS( nfo, "String conversion to UTF-16 failed" );
- if (zposition && !numfmt_utf8_offset_to_utf16(str, str_len, &position, &INTL_DATA_ERROR_CODE(nfo))) {
+ if (zposition && !intl_convert_utf8_offset_to_utf16(str, str_len, &position, &INTL_DATA_ERROR_CODE(nfo))) {
efree(sstr);
INTL_METHOD_CHECK_STATUS(nfo, "Invalid UTF-8 offset");
}
@@ -141,7 +105,7 @@
}
if (zposition) {
- position = numfmt_utf16_offset_to_utf8(sstr, sstr_len, position);
+ position = intl_convert_utf16_offset_to_utf8(sstr, sstr_len, position);
ZEND_TRY_ASSIGN_REF_LONG(zposition, position);
}
@@ -191,7 +155,7 @@
if(zposition) {
position = (int32_t) zval_get_long(zposition);
- if (!numfmt_utf8_offset_to_utf16(str, str_len, &position, &INTL_DATA_ERROR_CODE(nfo))) {
+ if (!intl_convert_utf8_offset_to_utf16(str, str_len, &position, &INTL_DATA_ERROR_CODE(nfo))) {
efree(sstr);
INTL_METHOD_CHECK_STATUS(nfo, "Invalid UTF-8 offset");
}
@@ -200,7 +164,7 @@
number = unum_parseDoubleCurrency(FORMATTER_OBJECT(nfo), sstr, sstr_len, position_p, currency, &INTL_DATA_ERROR_CODE(nfo));
if(zposition) {
- position = numfmt_utf16_offset_to_utf8(sstr, sstr_len, position);
+ position = intl_convert_utf16_offset_to_utf8(sstr, sstr_len, position);
ZEND_TRY_ASSIGN_REF_LONG(zposition, position);
}
if (sstr) {
diff -Nru php8.4-8.4.26/ext/intl/grapheme/grapheme_string.c php8.4-8.4.27/ext/intl/grapheme/grapheme_string.c
--- php8.4-8.4.26/ext/intl/grapheme/grapheme_string.c 2026-09-22 15:00:02.000000000 +0000
+++ php8.4-8.4.27/ext/intl/grapheme/grapheme_string.c 2026-10-19 14:38:59.000000000 +0000
@@ -117,7 +117,9 @@
if (found) {
RETURN_LONG(found - haystack);
}
- RETURN_FALSE;
+ if (grapheme_ascii_check((unsigned char *)needle, needle_len) >= 0) {
+ RETURN_FALSE;
+ }
}
/* do utf16 part of the strpos */
@@ -550,7 +552,9 @@
Z_PARAM_BOOL(part)
ZEND_PARSE_PARAMETERS_END();
- if ( !f_ignore_case ) {
+ if ( !f_ignore_case
+ && grapheme_ascii_check((unsigned char *)haystack, haystack_len) >= 0
+ && grapheme_ascii_check((unsigned char *)needle, needle_len) >= 0 ) {
/* ASCII optimization: quick check to see if the string might be there */
found = php_memnstr(haystack, needle, needle_len, haystack + haystack_len);
@@ -560,15 +564,12 @@
RETURN_FALSE;
}
- /* if it is there, and if the haystack is ascii, we are all done */
- if ( grapheme_ascii_check((unsigned char *)haystack, haystack_len) >= 0 ) {
- size_t found_offset = found - haystack;
-
- if (part) {
- RETURN_STRINGL(haystack, found_offset);
- } else {
- RETURN_STRINGL(found, haystack_len - found_offset);
- }
+ size_t found_offset = found - haystack;
+
+ if (part) {
+ RETURN_STRINGL(haystack, found_offset);
+ } else {
+ RETURN_STRINGL(found, haystack_len - found_offset);
}
}
@@ -894,6 +895,9 @@
if (i == split_len - 1) {
if ( pos != UBRK_DONE ) {
add_next_index_stringl(return_value, pstr, pos - current);
+ if (ZEND_HAS_OOM()) {
+ goto oom;
+ }
end = pstr + pos - current;
i = 0;
pstr += pos - current;
@@ -910,6 +914,12 @@
utext_close(ut);
ubrk_close(bi);
+ return;
+
+oom:
+ utext_close(ut);
+ ubrk_close(bi);
+ RETURN_OOM();
}
/* }}} */
diff -Nru php8.4-8.4.26/ext/intl/grapheme/grapheme_util.c php8.4-8.4.27/ext/intl/grapheme/grapheme_util.c
--- php8.4-8.4.26/ext/intl/grapheme/grapheme_util.c 2026-09-22 15:00:02.000000000 +0000
+++ php8.4-8.4.27/ext/intl/grapheme/grapheme_util.c 2026-10-19 14:38:59.000000000 +0000
@@ -106,6 +106,9 @@
if(puchar_pos) {
*puchar_pos = -1;
}
+ if (haystack_len == 0 && needle_len > 0) {
+ return -1;
+ }
/* convert the strings to UTF-16. */
status = U_ZERO_ERROR;
@@ -181,6 +184,12 @@
break;
}
prev_pos = char_pos;
+ int32_t next_pos = ubrk_following(bi, char_pos);
+ if (next_pos == UBRK_DONE) {
+ break;
+ }
+ usearch_setOffset(src, next_pos, &status);
+ STRPOS_CHECK_STATUS(status, "Invalid search offset");
} while(1);
}
} else {
@@ -190,7 +199,7 @@
if(char_pos != USEARCH_DONE && ubrk_isBoundary(bi, char_pos)) {
ret_pos = grapheme_count_graphemes(bi, uhaystack,char_pos);
if(puchar_pos) {
- *puchar_pos = char_pos;
+ *puchar_pos = u_countChar32(uhaystack, char_pos);
}
} else {
ret_pos = -1;
diff -Nru php8.4-8.4.26/ext/intl/intl_convert.c php8.4-8.4.27/ext/intl/intl_convert.c
--- php8.4-8.4.26/ext/intl/intl_convert.c 2026-09-22 15:00:02.000000000 +0000
+++ php8.4-8.4.27/ext/intl/intl_convert.c 2026-10-19 14:38:59.000000000 +0000
@@ -22,6 +22,8 @@
#include "intl_common.h"
#include "intl_convert.h"
+#include
+
/* {{{ intl_convert_utf8_to_utf16
* Convert given string from UTF-8 to UTF-16 to *target buffer.
*
@@ -150,3 +152,43 @@
return dst;
}
/* }}} */
+
+bool intl_convert_utf8_offset_to_utf16(const char *str, size_t str_len, int32_t *position, UErrorCode *status)
+{
+ int32_t utf16_position;
+
+ if (*position < 0 || (size_t) *position > str_len) {
+ return true;
+ }
+
+ *status = U_ZERO_ERROR;
+ u_strFromUTF8(NULL, 0, &utf16_position, str, *position, status);
+ if (*status != U_BUFFER_OVERFLOW_ERROR && U_FAILURE(*status)) {
+ return false;
+ }
+ *status = U_ZERO_ERROR;
+
+ *position = utf16_position;
+ return true;
+}
+
+int32_t intl_convert_utf16_offset_to_utf8(const UChar *str, int32_t str_len, int32_t position)
+{
+ int32_t utf8_position;
+ UErrorCode status = U_ZERO_ERROR;
+
+ if (position < 0 || position > str_len) {
+ return position;
+ }
+
+ if (position > 0 && position < str_len && U16_IS_LEAD(str[position - 1]) && U16_IS_TRAIL(str[position])) {
+ position--;
+ }
+
+ u_strToUTF8(NULL, 0, &utf8_position, str, position, &status);
+ if (status != U_BUFFER_OVERFLOW_ERROR && U_FAILURE(status)) {
+ return position;
+ }
+
+ return utf8_position;
+}
diff -Nru php8.4-8.4.26/ext/intl/intl_convert.h php8.4-8.4.27/ext/intl/intl_convert.h
--- php8.4-8.4.26/ext/intl/intl_convert.h 2026-09-22 15:00:02.000000000 +0000
+++ php8.4-8.4.27/ext/intl/intl_convert.h 2026-10-19 14:38:59.000000000 +0000
@@ -27,4 +27,12 @@
const UChar* src, int32_t src_len,
UErrorCode* status );
+bool intl_convert_utf8_offset_to_utf16(
+ const char* str, size_t str_len,
+ int32_t* position, UErrorCode* status );
+
+int32_t intl_convert_utf16_offset_to_utf8(
+ const UChar* str, int32_t str_len,
+ int32_t position );
+
#endif // INTL_CONVERT_H
diff -Nru php8.4-8.4.26/ext/intl/msgformat/msgformat_class.c php8.4-8.4.27/ext/intl/msgformat/msgformat_class.c
--- php8.4-8.4.26/ext/intl/msgformat/msgformat_class.c 2026-09-22 15:00:02.000000000 +0000
+++ php8.4-8.4.27/ext/intl/msgformat/msgformat_class.c 2026-10-19 14:38:59.000000000 +0000
@@ -63,6 +63,12 @@
/* clone standard parts */
zend_objects_clone_members(&new_mfo->zo, &mfo->zo);
+ if (mfo->mf_data.orig_format != NULL) {
+ new_mfo->mf_data.orig_format = estrndup(mfo->mf_data.orig_format, mfo->mf_data.orig_format_len);
+ new_mfo->mf_data.orig_format_len = mfo->mf_data.orig_format_len;
+ }
+ new_mfo->mf_data.tz_set = mfo->mf_data.tz_set;
+
/* clone formatter object */
if (MSG_FORMAT_OBJECT(mfo) != NULL) {
UErrorCode error = U_ZERO_ERROR;
diff -Nru php8.4-8.4.26/ext/intl/normalizer/normalizer_normalize.c php8.4-8.4.27/ext/intl/normalizer/normalizer_normalize.c
--- php8.4-8.4.26/ext/intl/normalizer/normalizer_normalize.c 2026-09-22 15:00:02.000000000 +0000
+++ php8.4-8.4.27/ext/intl/normalizer/normalizer_normalize.c 2026-10-19 14:38:59.000000000 +0000
@@ -148,7 +148,10 @@
/* Allocate memory for the destination buffer for normalization */
uret_len = uinput_len * expansion_factor;
- uret_buf = eumalloc( uret_len + 1 );
+ uret_buf = safe_femalloc(uret_len + 1, sizeof(UChar), 0, /* fallible */ true);
+ if (!uret_buf) {
+ RETURN_OOM();
+ }
/* normalize */
#if U_ICU_VERSION_MAJOR_NUM < 56
@@ -173,7 +176,11 @@
* uret_buf = eurealloc(uret_buf, size_needed + 1);
*/
efree( uret_buf );
- uret_buf = eumalloc( size_needed + 1 );
+ uret_buf = safe_femalloc(size_needed + 1, sizeof(UChar), 0, /* fallible */ true);
+ if (!uret_buf) {
+ efree(uinput);
+ RETURN_OOM();
+ }
uret_len = size_needed;
status = U_ZERO_ERROR;
diff -Nru php8.4-8.4.26/ext/intl/tests/clone_preserves_php_fields.phpt php8.4-8.4.27/ext/intl/tests/clone_preserves_php_fields.phpt
--- php8.4-8.4.26/ext/intl/tests/clone_preserves_php_fields.phpt 1970-01-01 00:00:00.000000000 +0000
+++ php8.4-8.4.27/ext/intl/tests/clone_preserves_php_fields.phpt 2026-10-19 14:38:59.000000000 +0000
@@ -0,0 +1,37 @@
+--TEST--
+Cloning IntlDateFormatter and MessageFormatter preserves PHP-side fields
+--EXTENSIONS--
+intl
+--FILE--
+getDateType());
+var_dump($c->getTimeType());
+var_dump($c->getCalendar());
+var_dump($c->format(strtotime('2024-01-02 03:04:05 UTC')));
+$c->setCalendar(IntlDateFormatter::GREGORIAN);
+var_dump($c->getPattern());
+
+$m = new MessageFormatter('en_US', '{0, number}');
+$mc = clone $m;
+var_dump($mc->getPattern());
+var_dump($mc->format([1.5]));
+
+date_default_timezone_set('UTC');
+$t = new MessageFormatter('en_US', '{0,time,short}');
+$dt = new DateTimeImmutable('2024-01-02 03:04:05', new DateTimeZone('UTC'));
+$t->format([$dt]);
+$tc = clone $t;
+date_default_timezone_set('America/New_York');
+var_dump($t->format([$dt]) === $tc->format([$dt]));
+?>
+--EXPECT--
+int(1)
+int(2)
+int(1)
+string(26) "2. Januar 2024 um 03:04:05"
+string(23) "d. MMMM y 'um' HH:mm:ss"
+string(11) "{0, number}"
+string(3) "1.5"
+bool(true)
diff -Nru php8.4-8.4.26/ext/intl/tests/collator_attribute_unconstructed.phpt php8.4-8.4.27/ext/intl/tests/collator_attribute_unconstructed.phpt
--- php8.4-8.4.26/ext/intl/tests/collator_attribute_unconstructed.phpt 1970-01-01 00:00:00.000000000 +0000
+++ php8.4-8.4.27/ext/intl/tests/collator_attribute_unconstructed.phpt 2026-10-19 14:38:59.000000000 +0000
@@ -0,0 +1,55 @@
+--TEST--
+Collator attribute and strength methods on unconstructed object
+--EXTENSIONS--
+intl
+--FILE--
+ fn() => $c->getAttribute(Collator::NUMERIC_COLLATION),
+ 'setAttribute' => fn() => $c->setAttribute(Collator::NUMERIC_COLLATION, Collator::ON),
+ 'getStrength' => fn() => $c->getStrength(),
+ 'setStrength' => fn() => $c->setStrength(Collator::SECONDARY),
+];
+
+foreach ($methods as $method => $call) {
+ try {
+ $call();
+ } catch (Error $e) {
+ echo $method, ': ', $e::class, ': ', $e->getMessage(), PHP_EOL;
+ }
+}
+
+$functions = [
+ 'collator_get_attribute' => fn() => collator_get_attribute($c, Collator::NUMERIC_COLLATION),
+ 'collator_set_attribute' => fn() => collator_set_attribute($c, Collator::NUMERIC_COLLATION, Collator::ON),
+ 'collator_get_strength' => fn() => collator_get_strength($c),
+ 'collator_set_strength' => fn() => collator_set_strength($c, Collator::SECONDARY),
+];
+
+foreach ($functions as $function => $call) {
+ try {
+ $call();
+ } catch (Error $e) {
+ echo $function, ': ', $e::class, ': ', $e->getMessage(), PHP_EOL;
+ }
+}
+
+?>
+--EXPECT--
+getAttribute: Error: Object not initialized
+setAttribute: Error: Object not initialized
+getStrength: Error: Object not initialized
+setStrength: Error: Object not initialized
+collator_get_attribute: Error: Object not initialized
+collator_set_attribute: Error: Object not initialized
+collator_get_strength: Error: Object not initialized
+collator_set_strength: Error: Object not initialized
diff -Nru php8.4-8.4.26/ext/intl/tests/dateformat_parse_utf8_offset.phpt php8.4-8.4.27/ext/intl/tests/dateformat_parse_utf8_offset.phpt
--- php8.4-8.4.26/ext/intl/tests/dateformat_parse_utf8_offset.phpt 1970-01-01 00:00:00.000000000 +0000
+++ php8.4-8.4.27/ext/intl/tests/dateformat_parse_utf8_offset.phpt 2026-10-19 14:38:59.000000000 +0000
@@ -0,0 +1,68 @@
+--TEST--
+IntlDateFormatter parsing uses UTF-8 byte offsets
+--EXTENSIONS--
+intl
+--FILE--
+parse($text, $offset)), $offset);
+
+echo "localtime():\n";
+$offset = strlen($prefix);
+$tm = $formatter->localtime($text, $offset);
+var_dump($tm['tm_year'] + 1900, $tm['tm_mon'] + 1, $tm['tm_mday'], $offset);
+
+echo "parseToCalendar():\n";
+$offset = strlen($prefix);
+var_dump(gmdate('Y-m-d', $formatter->parseToCalendar($text, $offset)), $offset);
+
+echo "failed parse:\n";
+$offset = strlen($prefix);
+var_dump($formatter->parse($prefix . '2017-xx-12', $offset), $offset);
+
+echo "offset inside a character:\n";
+$offset = 1;
+var_dump($formatter->parse($text, $offset), $offset, intl_get_error_message());
+
+echo "partial match inside a surrogate pair:\n";
+$formatter = new IntlDateFormatter('en_US', IntlDateFormatter::NONE, IntlDateFormatter::NONE, 'UTC', IntlDateFormatter::GREGORIAN, "\u{20AC}\u{1F600}yyyy-MM-dd");
+$offset = 0;
+var_dump($formatter->parse("\u{20AC}\u{1F601}2017-10-12", $offset), $offset);
+$formatter = new IntlDateFormatter('en_US', IntlDateFormatter::NONE, IntlDateFormatter::NONE, 'UTC', IntlDateFormatter::GREGORIAN, "yyyy-MM-dd\u{1F600}");
+foreach (['parse', 'localtime', 'parseToCalendar'] as $method) {
+ $offset = 0;
+ $formatter->$method("2017-10-12\u{1F601}", $offset);
+ echo "$method(): ";
+ var_dump($offset);
+}
+?>
+--EXPECT--
+parse():
+string(10) "2017-10-12"
+int(14)
+localtime():
+int(2017)
+int(10)
+int(12)
+int(14)
+parseToCalendar():
+string(10) "2017-10-12"
+int(14)
+failed parse:
+bool(false)
+int(9)
+offset inside a character:
+bool(false)
+int(1)
+string(42) "Invalid UTF-8 offset: U_INVALID_CHAR_FOUND"
+partial match inside a surrogate pair:
+bool(false)
+int(3)
+parse(): int(10)
+localtime(): int(10)
+parseToCalendar(): int(10)
diff -Nru php8.4-8.4.26/ext/intl/tests/grapheme_search_empty_haystack.phpt php8.4-8.4.27/ext/intl/tests/grapheme_search_empty_haystack.phpt
--- php8.4-8.4.26/ext/intl/tests/grapheme_search_empty_haystack.phpt 1970-01-01 00:00:00.000000000 +0000
+++ php8.4-8.4.27/ext/intl/tests/grapheme_search_empty_haystack.phpt 2026-10-19 14:38:59.000000000 +0000
@@ -0,0 +1,55 @@
+--TEST--
+Grapheme searches handle an empty haystack without ICU errors
+--EXTENSIONS--
+intl
+--INI--
+intl.error_level=2
+--FILE--
+
+--EXPECT--
+grapheme_strpos: [false,false,false,false,0], error: 0
+grapheme_stripos: [false,false,false,false,0], error: 0
+grapheme_strrpos: [false,false,false,false,0], error: 0
+grapheme_strripos: [false,false,false,false,0], error: 0
+grapheme_strstr: [[false,false],[false,false],[false,false],[false,false],["",""]], error: 0
+grapheme_stristr: [[false,false],[false,false],[false,false],[false,false],["",""]], error: 0
+grapheme_strpos: [false,false,false,false,0], error: 0
+grapheme_stripos: [false,false,false,false,0], error: 0
+grapheme_strrpos: [false,false,false,false,0], error: 0
+grapheme_strripos: [false,false,false,false,0], error: 0
+grapheme_strstr: [[false,false],[false,false],[false,false],[false,false],["",""]], error: 0
+grapheme_stristr: [[false,false],[false,false],[false,false],[false,false],["",""]], error: 0
+grapheme_strpos(-1): ValueError
+grapheme_strpos(1): ValueError
+grapheme_stripos(-1): ValueError
+grapheme_stripos(1): ValueError
+grapheme_strrpos(-1): ValueError
+grapheme_strrpos(1): ValueError
+grapheme_strripos(-1): ValueError
+grapheme_strripos(1): ValueError
diff -Nru php8.4-8.4.26/ext/intl/tests/grapheme_strpos_ascii_haystack.phpt php8.4-8.4.27/ext/intl/tests/grapheme_strpos_ascii_haystack.phpt
--- php8.4-8.4.26/ext/intl/tests/grapheme_strpos_ascii_haystack.phpt 1970-01-01 00:00:00.000000000 +0000
+++ php8.4-8.4.27/ext/intl/tests/grapheme_strpos_ascii_haystack.phpt 2026-10-19 14:38:59.000000000 +0000
@@ -0,0 +1,56 @@
+--TEST--
+grapheme_strpos() uses Unicode matching for non-ASCII needles in ASCII haystacks
+--EXTENSIONS--
+intl
+--INI--
+intl.use_exceptions=1
+intl.error_level=2
+--FILE--
+getMessage(), "\n";
+}
+?>
+--EXPECT--
+int(0)
+int(1)
+int(1)
+int(3)
+int(3)
+bool(false)
+int(1)
+int(3)
+int(1)
+bool(false)
+int(1)
+bool(false)
+bool(false)
+bool(false)
+bool(false)
+int(0)
+int(3)
+grapheme_strpos(): Argument #3 ($offset) must be contained in argument #1 ($haystack)
diff -Nru php8.4-8.4.26/ext/intl/tests/grapheme_strrpos_negative_offset_overlap.phpt php8.4-8.4.27/ext/intl/tests/grapheme_strrpos_negative_offset_overlap.phpt
--- php8.4-8.4.26/ext/intl/tests/grapheme_strrpos_negative_offset_overlap.phpt 1970-01-01 00:00:00.000000000 +0000
+++ php8.4-8.4.27/ext/intl/tests/grapheme_strrpos_negative_offset_overlap.phpt 2026-10-19 14:38:59.000000000 +0000
@@ -0,0 +1,32 @@
+--TEST--
+grapheme_strrpos() and grapheme_strripos() find overlapping matches with negative offsets
+--EXTENSIONS--
+intl
+--FILE--
+
+--EXPECT--
+grapheme_strrpos: 1, 1, 1, 1, 0
+grapheme_strripos: 1, 1, 1, 1, 0
+grapheme_strrpos: 1, 1, 1, 1, 0
+grapheme_strripos: 1, 1, 1, 1, 0
+grapheme_strrpos: 1, 1, 1, 1, 0
+grapheme_strripos: 1, 1, 1, 1, 0
+grapheme_strrpos: 1, 1, 1, 1, 0
+grapheme_strripos: 1, 1, 1, 1, 0
+int(1)
+int(3)
+int(0)
diff -Nru php8.4-8.4.26/ext/intl/tests/grapheme_strstr_canonical_match.phpt php8.4-8.4.27/ext/intl/tests/grapheme_strstr_canonical_match.phpt
--- php8.4-8.4.26/ext/intl/tests/grapheme_strstr_canonical_match.phpt 1970-01-01 00:00:00.000000000 +0000
+++ php8.4-8.4.27/ext/intl/tests/grapheme_strstr_canonical_match.phpt 2026-10-19 14:38:59.000000000 +0000
@@ -0,0 +1,27 @@
+--TEST--
+grapheme_strstr() finds canonically equivalent strings with different byte representations
+--EXTENSIONS--
+intl
+--FILE--
+
+--EXPECT--
+["e\u0301x",""]
+["\u00e9x",""]
+["e\u0301x","p"]
+["e\u0301x\u00e9","p"]
+["bc","a"]
+[false,false]
diff -Nru php8.4-8.4.26/ext/intl/tests/grapheme_strstr_supplementary_prefix.phpt php8.4-8.4.27/ext/intl/tests/grapheme_strstr_supplementary_prefix.phpt
--- php8.4-8.4.26/ext/intl/tests/grapheme_strstr_supplementary_prefix.phpt 1970-01-01 00:00:00.000000000 +0000
+++ php8.4-8.4.27/ext/intl/tests/grapheme_strstr_supplementary_prefix.phpt 2026-10-19 14:38:59.000000000 +0000
@@ -0,0 +1,27 @@
+--TEST--
+grapheme_strstr() and grapheme_stristr() preserve match boundaries after supplementary characters
+--EXTENSIONS--
+intl
+--FILE--
+
+--EXPECT--
+string(3) "abc"
+string(4) "😀"
+string(3) "abc"
+string(4) "😀"
+string(3) "abc"
+string(8) "😀😀"
+string(3) "abc"
+string(8) "😀😀"
+string(3) "abc"
+string(7) "😀é"
+string(3) "abc"
+string(7) "😀é"
diff -Nru php8.4-8.4.26/ext/intl/tests/oom_grapheme_str_split.phpt php8.4-8.4.27/ext/intl/tests/oom_grapheme_str_split.phpt
--- php8.4-8.4.26/ext/intl/tests/oom_grapheme_str_split.phpt 1970-01-01 00:00:00.000000000 +0000
+++ php8.4-8.4.27/ext/intl/tests/oom_grapheme_str_split.phpt 2026-10-19 14:38:59.000000000 +0000
@@ -0,0 +1,15 @@
+--TEST--
+grapheme_str_split() doesn't reach hard limit
+--EXTENSIONS--
+intl
+--INI--
+memory_limit=8M
+--FILE--
+
+--EXPECTF--
+Fatal error: Allowed memory size of 8388608 bytes exhausted %S(tried to allocate %d bytes) in %s on line %d
diff -Nru php8.4-8.4.26/ext/intl/tests/oom_normalizer_normalize.phpt php8.4-8.4.27/ext/intl/tests/oom_normalizer_normalize.phpt
--- php8.4-8.4.26/ext/intl/tests/oom_normalizer_normalize.phpt 1970-01-01 00:00:00.000000000 +0000
+++ php8.4-8.4.27/ext/intl/tests/oom_normalizer_normalize.phpt 2026-10-19 14:38:59.000000000 +0000
@@ -0,0 +1,14 @@
+--TEST--
+Normalizer::normalize() doesn't reach hard limit
+--EXTENSIONS--
+intl
+--INI--
+memory_limit=8M
+--FILE--
+
+--EXPECTF--
+Fatal error: Allowed memory size of 8388608 bytes exhausted %S(tried to allocate %d bytes) in %s on line %d
diff -Nru php8.4-8.4.26/ext/intl/tests/oom_normalizer_normalize_func.phpt php8.4-8.4.27/ext/intl/tests/oom_normalizer_normalize_func.phpt
--- php8.4-8.4.26/ext/intl/tests/oom_normalizer_normalize_func.phpt 1970-01-01 00:00:00.000000000 +0000
+++ php8.4-8.4.27/ext/intl/tests/oom_normalizer_normalize_func.phpt 2026-10-19 14:38:59.000000000 +0000
@@ -0,0 +1,14 @@
+--TEST--
+normalizer_normalize() doesn't reach hard limit
+--EXTENSIONS--
+intl
+--INI--
+memory_limit=8M
+--FILE--
+
+--EXPECTF--
+Fatal error: Allowed memory size of 8388608 bytes exhausted %S(tried to allocate %d bytes) in %s on line %d
diff -Nru php8.4-8.4.26/ext/intl/tests/oom_uconverter_convert.phpt php8.4-8.4.27/ext/intl/tests/oom_uconverter_convert.phpt
--- php8.4-8.4.26/ext/intl/tests/oom_uconverter_convert.phpt 1970-01-01 00:00:00.000000000 +0000
+++ php8.4-8.4.27/ext/intl/tests/oom_uconverter_convert.phpt 2026-10-19 14:38:59.000000000 +0000
@@ -0,0 +1,15 @@
+--TEST--
+UConverter::convert() doesn't reach hard limit
+--EXTENSIONS--
+intl
+--INI--
+memory_limit=8M
+--FILE--
+convert($source);
+echo "not reached\n";
+?>
+--EXPECTF--
+Fatal error: Allowed memory size of 8388608 bytes exhausted %S(tried to allocate %d bytes) in %s on line %d
diff -Nru php8.4-8.4.26/ext/intl/tests/oom_uconverter_transcode.phpt php8.4-8.4.27/ext/intl/tests/oom_uconverter_transcode.phpt
--- php8.4-8.4.26/ext/intl/tests/oom_uconverter_transcode.phpt 1970-01-01 00:00:00.000000000 +0000
+++ php8.4-8.4.27/ext/intl/tests/oom_uconverter_transcode.phpt 2026-10-19 14:38:59.000000000 +0000
@@ -0,0 +1,14 @@
+--TEST--
+UConverter::transcode() doesn't reach hard limit
+--EXTENSIONS--
+intl
+--INI--
+memory_limit=8M
+--FILE--
+
+--EXPECTF--
+Fatal error: Allowed memory size of 8388608 bytes exhausted %S(tried to allocate %d bytes) in %s on line %d
diff -Nru php8.4-8.4.26/ext/json/json_encoder.c php8.4-8.4.27/ext/json/json_encoder.c
--- php8.4-8.4.26/ext/json/json_encoder.c 2026-09-22 15:00:02.000000000 +0000
+++ php8.4-8.4.27/ext/json/json_encoder.c 2026-10-19 14:38:59.000000000 +0000
@@ -186,11 +186,16 @@
php_json_pretty_print_indent(buf, options, encoder);
if (php_json_escape_string(buf, ZSTR_VAL(prop_info->name), ZSTR_LEN(prop_info->name),
- options & ~PHP_JSON_NUMERIC_CHECK, encoder) == FAILURE &&
- (options & PHP_JSON_PARTIAL_OUTPUT_ON_ERROR) &&
- buf->s) {
- ZSTR_LEN(buf->s) -= 4;
- smart_str_appendl(buf, "\"\"", 2);
+ options & ~PHP_JSON_NUMERIC_CHECK, encoder) == FAILURE) {
+ if (ZEND_HAS_OOM()) {
+ PHP_JSON_HASH_UNPROTECT_RECURSION(obj);
+ return FAILURE;
+ }
+ if ((options & PHP_JSON_PARTIAL_OUTPUT_ON_ERROR) && buf->s) {
+ ZEND_ASSERT(ZSTR_LEN(buf->s) >= 4);
+ ZSTR_LEN(buf->s) -= 4;
+ smart_str_appendl(buf, "\"\"", 2);
+ }
}
smart_str_appendc(buf, ':');
@@ -302,11 +307,17 @@
php_json_pretty_print_indent(buf, options, encoder);
if (php_json_escape_string(buf, ZSTR_VAL(key), ZSTR_LEN(key),
- options & ~PHP_JSON_NUMERIC_CHECK, encoder) == FAILURE &&
- (options & PHP_JSON_PARTIAL_OUTPUT_ON_ERROR) &&
- buf->s) {
- ZSTR_LEN(buf->s) -= 4;
- smart_str_appendl(buf, "\"\"", 2);
+ options & ~PHP_JSON_NUMERIC_CHECK, encoder) == FAILURE) {
+ if (ZEND_HAS_OOM()) {
+ PHP_JSON_HASH_UNPROTECT_RECURSION(myht);
+ zend_release_properties(prop_ht);
+ return FAILURE;
+ }
+ if ((options & PHP_JSON_PARTIAL_OUTPUT_ON_ERROR) && buf->s) {
+ ZEND_ASSERT(ZSTR_LEN(buf->s) >= 4);
+ ZSTR_LEN(buf->s) -= 4;
+ smart_str_appendl(buf, "\"\"", 2);
+ }
}
} else {
if (need_comma) {
@@ -398,7 +409,9 @@
checkpoint = buf->s ? ZSTR_LEN(buf->s) : 0;
/* pre-allocate for string length plus 2 quotes */
- smart_str_alloc(buf, len+2, 0);
+ if (UNEXPECTED(smart_str_falloc(buf, len+2, 0, /* fallible */ true) == (size_t)-1)) {
+ return FAILURE;
+ }
smart_str_appendc(buf, '"');
pos = 0;
@@ -417,6 +430,11 @@
break;
}
} else {
+ /* An escaped byte can append six. */
+ if (ZEND_HAS_OOM()) {
+ ZSTR_LEN(buf->s) = checkpoint;
+ return FAILURE;
+ }
if (pos) {
smart_str_appendl(buf, s, pos);
s += pos;
@@ -659,6 +677,9 @@
zend_result php_json_encode_zval(smart_str *buf, zval *val, int options, php_json_encoder *encoder) /* {{{ */
{
+ if (ZEND_HAS_OOM()) {
+ return FAILURE;
+ }
again:
switch (Z_TYPE_P(val))
{
diff -Nru php8.4-8.4.26/ext/json/json_parser.tab.c php8.4-8.4.27/ext/json/json_parser.tab.c
--- php8.4-8.4.26/ext/json/json_parser.tab.c 2026-09-22 15:00:02.000000000 +0000
+++ php8.4-8.4.27/ext/json/json_parser.tab.c 2026-10-19 14:38:59.000000000 +0000
@@ -567,9 +567,9 @@
/* YYRLINE[YYN] -- Source line where rule number YYN was defined. */
static const yytype_uint8 yyrline[] =
{
- 0, 79, 79, 90, 89, 107, 108, 116, 124, 128,
- 135, 146, 145, 163, 164, 172, 180, 184, 189, 197,
- 198, 202, 203, 204, 205, 206, 207, 208, 209, 210
+ 0, 79, 79, 90, 89, 107, 108, 116, 126, 130,
+ 139, 150, 149, 167, 168, 176, 186, 190, 199, 209,
+ 210, 214, 215, 216, 217, 218, 219, 220, 221, 222
};
#endif
@@ -1265,14 +1265,18 @@
if ((parser->scanner.options & PHP_JSON_OBJECT_AS_ARRAY) && parser->methods.object_create == php_json_parser_object_create) {
ZVAL_EMPTY_ARRAY(&(yyval.value));
} else {
- parser->methods.object_create(parser, &(yyval.value));
+ if (UNEXPECTED(parser->methods.object_create(parser, &(yyval.value)) == FAILURE)) {
+ YYERROR;
+ }
}
}
break;
case 9: /* member: key ':' value */
{
- parser->methods.object_create(parser, &(yyval.value));
+ if (UNEXPECTED(parser->methods.object_create(parser, &(yyval.value)) == FAILURE)) {
+ YYERROR;
+ }
if (parser->methods.object_update(parser, &(yyval.value), Z_STR((yyvsp[-2].value)), &(yyvsp[0].value)) == FAILURE) {
YYERROR;
}
@@ -1319,21 +1323,29 @@
if (parser->methods.array_create == php_json_parser_array_create) {
ZVAL_EMPTY_ARRAY(&(yyval.value));
} else {
- parser->methods.array_create(parser, &(yyval.value));
+ if (UNEXPECTED(parser->methods.array_create(parser, &(yyval.value)) == FAILURE)) {
+ YYERROR;
+ }
}
}
break;
case 17: /* element: value */
{
- parser->methods.array_create(parser, &(yyval.value));
- parser->methods.array_append(parser, &(yyval.value), &(yyvsp[0].value));
+ if (UNEXPECTED(parser->methods.array_create(parser, &(yyval.value)) == FAILURE)) {
+ YYERROR;
+ }
+ if (UNEXPECTED(parser->methods.array_append(parser, &(yyval.value), &(yyvsp[0].value)) == FAILURE)) {
+ YYERROR;
+ }
}
break;
case 18: /* element: element ',' value */
{
- parser->methods.array_append(parser, &(yyvsp[-2].value), &(yyvsp[0].value));
+ if (UNEXPECTED(parser->methods.array_append(parser, &(yyvsp[-2].value), &(yyvsp[0].value)) == FAILURE)) {
+ YYERROR;
+ }
ZVAL_COPY_VALUE(&(yyval.value), &(yyvsp[-2].value));
}
break;
@@ -1535,22 +1547,34 @@
static int php_json_parser_array_create(php_json_parser *parser, zval *array)
{
- array_init(array);
+ if (UNEXPECTED(!array_finit(array))) {
+ ZEND_ASSERT(ZEND_HAS_OOM());
+ return FAILURE;
+ }
return SUCCESS;
}
static int php_json_parser_array_append(php_json_parser *parser, zval *array, zval *zvalue)
{
- zend_hash_next_index_insert(Z_ARRVAL_P(array), zvalue);
+ if (UNEXPECTED(zend_hash_next_index_finsert(Z_ARRVAL_P(array), zvalue) == HASH_NOMEM)) {
+ ZEND_ASSERT(ZEND_HAS_OOM());
+ return FAILURE;
+ }
return SUCCESS;
}
static int php_json_parser_object_create(php_json_parser *parser, zval *object)
{
+ bool created;
+
if (parser->scanner.options & PHP_JSON_OBJECT_AS_ARRAY) {
- array_init(object);
+ created = array_finit(object);
} else {
- object_init(object);
+ created = object_finit(object);
+ }
+ if (UNEXPECTED(!created)) {
+ ZEND_ASSERT(ZEND_HAS_OOM());
+ return FAILURE;
}
return SUCCESS;
}
@@ -1559,7 +1583,9 @@
{
/* if JSON_OBJECT_AS_ARRAY is set */
if (Z_TYPE_P(object) == IS_ARRAY) {
- zend_symtable_update(Z_ARRVAL_P(object), key, zvalue);
+ if (UNEXPECTED(zend_symtable_fupdate(Z_ARRVAL_P(object), key, zvalue) == HASH_NOMEM)) {
+ return FAILURE;
+ }
} else {
if (ZSTR_LEN(key) > 0 && ZSTR_VAL(key)[0] == '\0') {
parser->scanner.errcode = PHP_JSON_ERROR_INVALID_PROPERTY_NAME;
@@ -1570,6 +1596,9 @@
}
zend_std_write_property(Z_OBJ_P(object), key, zvalue, NULL);
Z_TRY_DELREF_P(zvalue);
+ if (ZEND_HAS_OOM()) {
+ return FAILURE;
+ }
}
zend_string_release_ex(key, 0);
diff -Nru php8.4-8.4.26/ext/json/json_parser.y php8.4-8.4.27/ext/json/json_parser.y
--- php8.4-8.4.26/ext/json/json_parser.y 2026-09-22 15:00:02.000000000 +0000
+++ php8.4-8.4.27/ext/json/json_parser.y 2026-10-19 14:38:59.000000000 +0000
@@ -118,7 +118,9 @@
if ((parser->scanner.options & PHP_JSON_OBJECT_AS_ARRAY) && parser->methods.object_create == php_json_parser_object_create) {
ZVAL_EMPTY_ARRAY(&$$);
} else {
- parser->methods.object_create(parser, &$$);
+ if (UNEXPECTED(parser->methods.object_create(parser, &$$) == FAILURE)) {
+ YYERROR;
+ }
}
}
| member
@@ -127,7 +129,9 @@
member:
key ':' value
{
- parser->methods.object_create(parser, &$$);
+ if (UNEXPECTED(parser->methods.object_create(parser, &$$) == FAILURE)) {
+ YYERROR;
+ }
if (parser->methods.object_update(parser, &$$, Z_STR($1), &$3) == FAILURE) {
YYERROR;
}
@@ -174,7 +178,9 @@
if (parser->methods.array_create == php_json_parser_array_create) {
ZVAL_EMPTY_ARRAY(&$$);
} else {
- parser->methods.array_create(parser, &$$);
+ if (UNEXPECTED(parser->methods.array_create(parser, &$$) == FAILURE)) {
+ YYERROR;
+ }
}
}
| element
@@ -183,12 +189,18 @@
element:
value
{
- parser->methods.array_create(parser, &$$);
- parser->methods.array_append(parser, &$$, &$1);
+ if (UNEXPECTED(parser->methods.array_create(parser, &$$) == FAILURE)) {
+ YYERROR;
+ }
+ if (UNEXPECTED(parser->methods.array_append(parser, &$$, &$1) == FAILURE)) {
+ YYERROR;
+ }
}
| element ',' value
{
- parser->methods.array_append(parser, &$1, &$3);
+ if (UNEXPECTED(parser->methods.array_append(parser, &$1, &$3) == FAILURE)) {
+ YYERROR;
+ }
ZVAL_COPY_VALUE(&$$, &$1);
}
;
@@ -214,22 +226,34 @@
static int php_json_parser_array_create(php_json_parser *parser, zval *array)
{
- array_init(array);
+ if (UNEXPECTED(!array_finit(array))) {
+ ZEND_ASSERT(ZEND_HAS_OOM());
+ return FAILURE;
+ }
return SUCCESS;
}
static int php_json_parser_array_append(php_json_parser *parser, zval *array, zval *zvalue)
{
- zend_hash_next_index_insert(Z_ARRVAL_P(array), zvalue);
+ if (UNEXPECTED(zend_hash_next_index_finsert(Z_ARRVAL_P(array), zvalue) == HASH_NOMEM)) {
+ ZEND_ASSERT(ZEND_HAS_OOM());
+ return FAILURE;
+ }
return SUCCESS;
}
static int php_json_parser_object_create(php_json_parser *parser, zval *object)
{
+ bool created;
+
if (parser->scanner.options & PHP_JSON_OBJECT_AS_ARRAY) {
- array_init(object);
+ created = array_finit(object);
} else {
- object_init(object);
+ created = object_finit(object);
+ }
+ if (UNEXPECTED(!created)) {
+ ZEND_ASSERT(ZEND_HAS_OOM());
+ return FAILURE;
}
return SUCCESS;
}
@@ -238,7 +262,9 @@
{
/* if JSON_OBJECT_AS_ARRAY is set */
if (Z_TYPE_P(object) == IS_ARRAY) {
- zend_symtable_update(Z_ARRVAL_P(object), key, zvalue);
+ if (UNEXPECTED(zend_symtable_fupdate(Z_ARRVAL_P(object), key, zvalue) == HASH_NOMEM)) {
+ return FAILURE;
+ }
} else {
if (ZSTR_LEN(key) > 0 && ZSTR_VAL(key)[0] == '\0') {
parser->scanner.errcode = PHP_JSON_ERROR_INVALID_PROPERTY_NAME;
@@ -249,6 +275,9 @@
}
zend_std_write_property(Z_OBJ_P(object), key, zvalue, NULL);
Z_TRY_DELREF_P(zvalue);
+ if (ZEND_HAS_OOM()) {
+ return FAILURE;
+ }
}
zend_string_release_ex(key, 0);
diff -Nru php8.4-8.4.26/ext/json/json_scanner.c php8.4-8.4.27/ext/json/json_scanner.c
--- php8.4-8.4.26/ext/json/json_scanner.c 2026-09-22 15:00:02.000000000 +0000
+++ php8.4-8.4.27/ext/json/json_scanner.c 2026-10-19 14:38:59.000000000 +0000
@@ -566,7 +566,11 @@
ZVAL_EMPTY_STRING(&s->value);
return PHP_JSON_T_ESTRING;
}
- str = zend_string_alloc(len, 0);
+ str = zend_string_falloc(len, /* persistent */ false, /* fallible */ true);
+ if (UNEXPECTED(!str)) {
+ ZEND_ASSERT(ZEND_HAS_OOM());
+ return PHP_JSON_T_ERROR;
+ }
ZSTR_VAL(str)[len] = '\0';
ZVAL_STR(&s->value, str);
if (s->str_esc || s->utf8_invalid) {
diff -Nru php8.4-8.4.26/ext/json/json_scanner.re php8.4-8.4.27/ext/json/json_scanner.re
--- php8.4-8.4.26/ext/json/json_scanner.re 2026-09-22 15:00:02.000000000 +0000
+++ php8.4-8.4.27/ext/json/json_scanner.re 2026-10-19 14:38:59.000000000 +0000
@@ -264,7 +264,11 @@
ZVAL_EMPTY_STRING(&s->value);
return PHP_JSON_T_ESTRING;
}
- str = zend_string_alloc(len, 0);
+ str = zend_string_falloc(len, /* persistent */ false, /* fallible */ true);
+ if (UNEXPECTED(!str)) {
+ ZEND_ASSERT(ZEND_HAS_OOM());
+ return PHP_JSON_T_ERROR;
+ }
ZSTR_VAL(str)[len] = '\0';
ZVAL_STR(&s->value, str);
if (s->str_esc || s->utf8_invalid) {
diff -Nru php8.4-8.4.26/ext/json/tests/json_decode_oom_utf8_substitute.phpt php8.4-8.4.27/ext/json/tests/json_decode_oom_utf8_substitute.phpt
--- php8.4-8.4.26/ext/json/tests/json_decode_oom_utf8_substitute.phpt 1970-01-01 00:00:00.000000000 +0000
+++ php8.4-8.4.27/ext/json/tests/json_decode_oom_utf8_substitute.phpt 2026-10-19 14:38:59.000000000 +0000
@@ -0,0 +1,14 @@
+--TEST--
+json_decode() with JSON_INVALID_UTF8_SUBSTITUTE doesn't reach hard limit
+--INI--
+memory_limit=16M
+--FILE--
+
+--EXPECTF--
+Fatal error: Allowed memory size of 16777216 bytes exhausted %S(tried to allocate %d bytes) in %s on line %d
diff -Nru php8.4-8.4.26/ext/json/tests/json_encode_oom_escape.phpt php8.4-8.4.27/ext/json/tests/json_encode_oom_escape.phpt
--- php8.4-8.4.26/ext/json/tests/json_encode_oom_escape.phpt 1970-01-01 00:00:00.000000000 +0000
+++ php8.4-8.4.27/ext/json/tests/json_encode_oom_escape.phpt 2026-10-19 14:38:59.000000000 +0000
@@ -0,0 +1,11 @@
+--TEST--
+json_encode() escaping doesn't reach hard limit
+--INI--
+memory_limit=8M
+--FILE--
+
+--EXPECTF--
+Fatal error: Allowed memory size of 8388608 bytes exhausted %S(tried to allocate %d bytes) in %s on line %d
diff -Nru php8.4-8.4.26/ext/json/tests/json_encode_oom_partial_output.phpt php8.4-8.4.27/ext/json/tests/json_encode_oom_partial_output.phpt
--- php8.4-8.4.26/ext/json/tests/json_encode_oom_partial_output.phpt 1970-01-01 00:00:00.000000000 +0000
+++ php8.4-8.4.27/ext/json/tests/json_encode_oom_partial_output.phpt 2026-10-19 14:38:59.000000000 +0000
@@ -0,0 +1,11 @@
+--TEST--
+json_encode() with JSON_PARTIAL_OUTPUT_ON_ERROR doesn't reach hard limit
+--INI--
+memory_limit=8M
+--FILE--
+
+--EXPECTF--
+Fatal error: Allowed memory size of 8388608 bytes exhausted %S(tried to allocate %d bytes) in %s on line %d
diff -Nru php8.4-8.4.26/ext/json/tests/json_encode_oom_pretty_print.phpt php8.4-8.4.27/ext/json/tests/json_encode_oom_pretty_print.phpt
--- php8.4-8.4.26/ext/json/tests/json_encode_oom_pretty_print.phpt 1970-01-01 00:00:00.000000000 +0000
+++ php8.4-8.4.27/ext/json/tests/json_encode_oom_pretty_print.phpt 2026-10-19 14:38:59.000000000 +0000
@@ -0,0 +1,11 @@
+--TEST--
+json_encode() with JSON_PRETTY_PRINT doesn't reach hard limit
+--INI--
+memory_limit=8M
+--FILE--
+
+--EXPECTF--
+Fatal error: Allowed memory size of 8388608 bytes exhausted %S(tried to allocate %d bytes) in %s on line %d
diff -Nru php8.4-8.4.26/ext/json/tests/json_encode_oom_string_prealloc.phpt php8.4-8.4.27/ext/json/tests/json_encode_oom_string_prealloc.phpt
--- php8.4-8.4.26/ext/json/tests/json_encode_oom_string_prealloc.phpt 1970-01-01 00:00:00.000000000 +0000
+++ php8.4-8.4.27/ext/json/tests/json_encode_oom_string_prealloc.phpt 2026-10-19 14:38:59.000000000 +0000
@@ -0,0 +1,13 @@
+--TEST--
+json_encode() string pre-allocation doesn't reach hard limit
+--INI--
+memory_limit=32M
+memory_hard_limit_percent=110
+--FILE--
+
+--EXPECTF--
+Fatal error: Allowed memory size of 33554432 bytes exhausted %S(tried to allocate %d bytes) in %s on line %d
diff -Nru php8.4-8.4.26/ext/libxml/libxml.c php8.4-8.4.27/ext/libxml/libxml.c
--- php8.4-8.4.26/ext/libxml/libxml.c 2026-09-22 15:00:02.000000000 +0000
+++ php8.4-8.4.27/ext/libxml/libxml.c 2026-10-19 14:38:59.000000000 +0000
@@ -618,8 +618,10 @@
return(ret);
err:
- /* Similarly to __xmlOutputBufferCreateFilename we should also close the encoder on failure. */
+#if LIBXML_VERSION < 21404
+ /* As of libxml 2.14.4, libxml closes the encoder after this callback fails. */
xmlCharEncCloseFunc(encoder);
+#endif
return NULL;
}
@@ -687,6 +689,10 @@
{
char *buf;
bool output = false;
+
+ if (ZEND_HAS_OOM()) {
+ return;
+ }
size_t len = vspprintf(&buf, 0, msg, ap);
size_t len_iter = len;
@@ -1198,10 +1204,10 @@
ZEND_PARSE_PARAMETERS_NONE();
if (LIBXML(error_list)) {
- array_init(return_value);
+ array_init_size(return_value, zend_llist_count(LIBXML(error_list)));
error = zend_llist_get_first(LIBXML(error_list));
- while (error != NULL) {
+ while (error != NULL && !ZEND_HAS_OOM()) {
zval z_error;
php_libxml_create_error_object(&z_error, error);
add_next_index_zval(return_value, &z_error);
@@ -1499,6 +1505,7 @@
obj_node->_private = NULL;
}
}
+ object->node = NULL;
}
if (object != NULL && object->document != NULL) {
/* Safe to call as if the resource were freed then doc pointer is NULL */
diff -Nru php8.4-8.4.26/ext/mbstring/libmbfl/filters/mbfilter_qprint.c php8.4-8.4.27/ext/mbstring/libmbfl/filters/mbfilter_qprint.c
--- php8.4-8.4.26/ext/mbstring/libmbfl/filters/mbfilter_qprint.c 2026-09-22 15:00:02.000000000 +0000
+++ php8.4-8.4.27/ext/mbstring/libmbfl/filters/mbfilter_qprint.c 2026-10-19 14:38:59.000000000 +0000
@@ -144,7 +144,7 @@
int mbfl_filt_conv_qprintenc_flush(mbfl_convert_filter *filter)
{
/* flush filter cache */
- (*filter->filter_function)('\0', filter);
+ CK((*filter->filter_function)('\0', filter));
filter->status &= ~0xffff;
filter->cache = 0;
diff -Nru php8.4-8.4.26/ext/mbstring/libmbfl/filters/mbfilter_utf8.c php8.4-8.4.27/ext/mbstring/libmbfl/filters/mbfilter_utf8.c
--- php8.4-8.4.26/ext/mbstring/libmbfl/filters/mbfilter_utf8.c 2026-09-22 15:00:02.000000000 +0000
+++ php8.4-8.4.27/ext/mbstring/libmbfl/filters/mbfilter_utf8.c 2026-10-19 14:38:59.000000000 +0000
@@ -548,6 +548,12 @@
} else if (w < 0x800) {
MB_CONVERT_BUF_ENSURE(buf, out, limit, len + 2);
out = mb_convert_buf_add2(out, ((w >> 6) & 0x1F) | 0xC0, (w & 0x3F) | 0x80);
+ } else if (w >= 0xD800 && w <= 0xDFFF && buf->error_mode != MBFL_OUTPUTFILTER_ILLEGAL_MODE_BADUTF8) {
+ /* Surrogate codepoints (which may come from UCS-2, UCS-4 or numeric entities) are not valid in UTF-8.
+ * BADUTF8 mode is only used internally to search strings; there, encoding them keeps them distinct
+ * instead of turning them all into the same error marker. */
+ MB_CONVERT_ERROR(buf, out, limit, w, mb_wchar_to_utf8);
+ MB_CONVERT_BUF_ENSURE(buf, out, limit, len);
} else if (w < 0x10000) {
MB_CONVERT_BUF_ENSURE(buf, out, limit, len + 3);
out = mb_convert_buf_add3(out, ((w >> 12) & 0xF) | 0xE0, ((w >> 6) & 0x3F) | 0x80, (w & 0x3F) | 0x80);
diff -Nru php8.4-8.4.26/ext/mbstring/libmbfl/mbfl/mbfilter.c php8.4-8.4.27/ext/mbstring/libmbfl/mbfl/mbfilter.c
--- php8.4-8.4.26/ext/mbstring/libmbfl/mbfl/mbfilter.c 2026-09-22 15:00:02.000000000 +0000
+++ php8.4-8.4.27/ext/mbstring/libmbfl/mbfl/mbfilter.c 2026-10-19 14:38:59.000000000 +0000
@@ -216,13 +216,17 @@
return NULL;
}
- mbfl_memory_device_init(&device, length + 8, 0);
+ /* clamp init size to avoid over allocation */
+ size_t init_size = MIN(string->len, length) + 8;
+ mbfl_memory_device_init(&device, init_size, 0);
p = string->val;
/* search start position */
for (q = string->val + from; p < q; p++) {
- (*encoder->filter_function)(*p, encoder);
+ if ((*encoder->filter_function)(*p, encoder) < 0) {
+ goto err;
+ }
}
/* switch the drain direction */
@@ -246,7 +250,9 @@
/* output a little shorter than "length" */
/* XXX: the constant "20" was determined purely on the heuristics. */
for (r = p + length - 20; p < r; p++) {
- (*encoder->filter_function)(*p, encoder);
+ if ((*encoder->filter_function)(*p, encoder) < 0) {
+ goto err_prev_bk;
+ }
}
/* if the offset of the resulting string exceeds the length,
@@ -310,7 +316,9 @@
/* detect end position */
while (p < q) {
- (*encoder->filter_function)(*p, encoder);
+ if ((*encoder->filter_function)(*p, encoder) < 0) {
+ goto err_bk;
+ }
if (device.pos > length) {
/* restore filter */
@@ -382,6 +390,31 @@
mbfl_convert_filter_delete(encoder);
mbfl_convert_filter_delete(decoder);
+
+ return result;
+
+ /* Conversion failed, which for these filters means the output device
+ * could not be grown. Release the saved filter state which the normal
+ * exit path would have released, then everything else. */
+err_bk:
+ if (bk.decoder.filter_dtor)
+ bk.decoder.filter_dtor(&bk.decoder);
+ if (bk.encoder.filter_dtor)
+ bk.encoder.filter_dtor(&bk.encoder);
+ goto err;
+
+err_prev_bk:
+ if (_bk.decoder.filter_dtor)
+ _bk.decoder.filter_dtor(&_bk.decoder);
+ if (_bk.encoder.filter_dtor)
+ _bk.encoder.filter_dtor(&_bk.encoder);
+
+err:
+ mbfl_convert_filter_delete(encoder);
+ mbfl_convert_filter_delete(decoder);
+ mbfl_memory_device_clear(&device);
+
+ return NULL;
}
return result;
diff -Nru php8.4-8.4.26/ext/mbstring/libmbfl/mbfl/mbfl_encoding.h php8.4-8.4.27/ext/mbstring/libmbfl/mbfl/mbfl_encoding.h
--- php8.4-8.4.26/ext/mbstring/libmbfl/mbfl/mbfl_encoding.h 2026-09-22 15:00:02.000000000 +0000
+++ php8.4-8.4.27/ext/mbstring/libmbfl/mbfl/mbfl_encoding.h 2026-10-19 14:38:59.000000000 +0000
@@ -162,17 +162,34 @@
buf->error_mode = err_mode;
}
+static inline zend_result mb_convert_buf_ensure(mb_convert_buf *buf, unsigned char **out, unsigned char **limit, size_t needed)
+{
+ ZEND_ASSERT(*out <= *limit);
+ if ((size_t)(*limit - *out) < needed) {
+ size_t oldsize = *limit - (unsigned char*)ZSTR_VAL((buf)->str);
+ size_t newsize = oldsize + MAX(oldsize >> 1, needed);
+ zend_string *newstr = safe_ferealloc((buf)->str, 1, newsize, _ZSTR_STRUCT_SIZE(0), /* fallible */ true);
+ if (!newstr) {
+ /* An earlier growth may have moved the buffer. */
+ buf->out = *out;
+ buf->limit = *limit;
+ return FAILURE;
+ }
+ *out = (unsigned char*)ZSTR_VAL(newstr) + (*out - (unsigned char*)ZSTR_VAL((buf)->str));
+ *limit = (unsigned char*)ZSTR_VAL(newstr) + newsize;
+ (buf)->str = newstr;
+ }
+ return SUCCESS;
+}
+
#define MB_CONVERT_BUF_ENSURE(buf, out, limit, needed) \
- ZEND_ASSERT(out <= limit); \
- if ((size_t)(limit - out) < (needed)) { \
- size_t oldsize = limit - (unsigned char*)ZSTR_VAL((buf)->str); \
- size_t newsize = oldsize + MAX(oldsize >> 1, needed); \
- zend_string *newstr = erealloc((buf)->str, _ZSTR_STRUCT_SIZE(newsize)); \
- out = (unsigned char*)ZSTR_VAL(newstr) + (out - (unsigned char*)ZSTR_VAL((buf)->str)); \
- limit = (unsigned char*)ZSTR_VAL(newstr) + newsize; \
- (buf)->str = newstr; \
+ if (!MB_CONVERT_BUF_ENSURE_EX(buf, out, limit, needed)) { \
+ return; \
}
+#define MB_CONVERT_BUF_ENSURE_EX(buf, out, limit, needed) \
+ EXPECTED(mb_convert_buf_ensure(buf, &(out), &(limit), (needed)) == SUCCESS)
+
#define MB_CONVERT_BUF_STORE(buf, _out, _limit) (buf)->out = _out; (buf)->limit = _limit
#define MB_CONVERT_BUF_LOAD(buf, _out, _limit) _out = (buf)->out; _limit = (buf)->limit
diff -Nru php8.4-8.4.26/ext/mbstring/libmbfl/mbfl/mbfl_memory_device.c php8.4-8.4.27/ext/mbstring/libmbfl/mbfl/mbfl_memory_device.c
--- php8.4-8.4.26/ext/mbstring/libmbfl/mbfl/mbfl_memory_device.c 2026-09-22 15:00:02.000000000 +0000
+++ php8.4-8.4.27/ext/mbstring/libmbfl/mbfl/mbfl_memory_device.c 2026-10-19 14:38:59.000000000 +0000
@@ -98,7 +98,11 @@
}
size_t newlen = device->length + device->allocsz;
- device->buffer = erealloc(device->buffer, newlen);
+ unsigned char *newbuffer = safe_ferealloc(device->buffer, 1, newlen, 0, /* fallible */ true);
+ if (!newbuffer) {
+ return -1;
+ }
+ device->buffer = newbuffer;
device->length = newlen;
}
@@ -123,7 +127,11 @@
}
size_t newlen = device->length + len + MBFL_MEMORY_DEVICE_ALLOC_SIZE;
- device->buffer = erealloc(device->buffer, newlen);
+ unsigned char *newbuffer = safe_ferealloc(device->buffer, 1, newlen, 0, /* fallible */ true);
+ if (!newbuffer) {
+ return -1;
+ }
+ device->buffer = newbuffer;
device->length = newlen;
}
@@ -175,7 +183,12 @@
return -1;
}
- device->buffer = erealloc(device->buffer, newlen * sizeof(int));
+ unsigned int * newbuffer = safe_ferealloc(device->buffer, newlen, sizeof(int), 0, /* fallible */ true);
+ if (!newbuffer) {
+ return -1;
+ }
+
+ device->buffer = newbuffer;
device->length = newlen;
}
diff -Nru php8.4-8.4.26/ext/mbstring/mb_gpc.c php8.4-8.4.27/ext/mbstring/mb_gpc.c
--- php8.4-8.4.26/ext/mbstring/mb_gpc.c 2026-09-22 15:00:02.000000000 +0000
+++ php8.4-8.4.27/ext/mbstring/mb_gpc.c 2026-10-19 14:38:59.000000000 +0000
@@ -185,8 +185,15 @@
}
num *= 2; /* need space for variable name and value */
- val_list = (char **)ecalloc(num, sizeof(char *));
- len_list = (size_t *)ecalloc(num, sizeof(size_t));
+ val_list = (char **)fecalloc(num, sizeof(char *), /* fallible */ true);
+ if (!val_list) {
+ goto out;
+ }
+
+ len_list = (size_t *)fecalloc(num, sizeof(size_t), /* fallible */ true);
+ if (!len_list) {
+ goto out;
+ }
/* split and decode the query */
n = 0;
@@ -267,6 +274,11 @@
n++;
}
efree(val);
+
+ if (ZEND_HAS_OOM()) {
+ from_encoding = NULL;
+ goto out;
+ }
}
out:
diff -Nru php8.4-8.4.26/ext/mbstring/mbstring.c php8.4-8.4.27/ext/mbstring/mbstring.c
--- php8.4-8.4.26/ext/mbstring/mbstring.c 2026-09-22 15:00:02.000000000 +0000
+++ php8.4-8.4.27/ext/mbstring/mbstring.c 2026-10-19 14:38:59.000000000 +0000
@@ -1652,6 +1652,10 @@
RETURN_THROWS();
}
+ if (split_len > ZSTR_LEN(str)) {
+ split_len = ZSTR_LEN(str);
+ }
+
const mbfl_encoding *enc = php_mb_get_encoding(encoding, 3);
if (!enc) {
RETURN_THROWS();
@@ -1667,16 +1671,23 @@
if (char_len) {
unsigned int chunk_len = char_len * split_len;
unsigned int chunks = ((ZSTR_LEN(str) / chunk_len) + split_len - 1) / split_len; /* round up */
- array_init_size(return_value, chunks);
+ if (UNEXPECTED(!array_finit_size_packed(return_value, chunks))) {
+ RETURN_OOM();
+ }
while (p < e) {
add_next_index_stringl(return_value, (const char*)p, MIN(chunk_len, e - p));
p += chunk_len;
+ if (ZEND_HAS_OOM()) {
+ RETURN_OOM();
+ }
}
} else if (enc->mblen_table) {
unsigned char const *mbtab = enc->mblen_table;
/* Assume that we have 1-byte characters */
- array_init_size(return_value, (ZSTR_LEN(str) + split_len - 1) / split_len);
+ if (UNEXPECTED(!array_finit_size_packed(return_value, (ZSTR_LEN(str) + split_len - 1) / split_len))) {
+ RETURN_OOM();
+ }
while (p < e) {
unsigned char *chunk = p; /* start of chunk */
@@ -1688,10 +1699,15 @@
p = e; /* ensure chunk is in bounds */
}
add_next_index_stringl(return_value, (const char*)chunk, p - chunk);
+ if (ZEND_HAS_OOM()) {
+ RETURN_OOM();
+ }
}
} else {
/* Assume that we have 1-byte characters */
- array_init_size(return_value, (ZSTR_LEN(str) + split_len - 1) / split_len);
+ if (UNEXPECTED(!array_finit_size_packed(return_value, (ZSTR_LEN(str) + split_len - 1) / split_len))) {
+ RETURN_OOM();
+ }
uint32_t wchar_buf[128];
size_t in_len = ZSTR_LEN(str);
@@ -1700,6 +1716,10 @@
mb_convert_buf buf;
while (in_len) {
+ if (ZEND_HAS_OOM()) {
+ RETURN_OOM();
+ }
+
size_t out_len = enc->to_wchar(&p, &in_len, wchar_buf, 128, &state);
ZEND_ASSERT(out_len <= 128);
size_t i = 0;
@@ -1723,6 +1743,10 @@
}
while (i < out_len) {
+ if (ZEND_HAS_OOM()) {
+ RETURN_OOM();
+ }
+
/* Prepare for the next chunk */
mb_convert_buf_init(&buf, split_len, MBSTRG(current_filter_illegal_substchar), MBSTRG(current_filter_illegal_mode));
@@ -1891,6 +1915,9 @@
}
pos += u8_tbl[*pos];
}
+ if (pos > end) {
+ pos = end;
+ }
return pos;
}
}
@@ -2463,8 +2490,10 @@
}
ret = mbfl_strcut(&string, &result, from, len);
- ZEND_ASSERT(ret != NULL);
- RETVAL_STRINGL((char *)ret->val, ret->len); /* the string is already strdup()'ed */
+ if (UNEXPECTED(ret == NULL)) {
+ RETURN_OOM();
+ }
+ RETVAL_FSTRINGL((char *)ret->val, ret->len); /* the string is already strdup()'ed */
efree(ret->val);
}
/* }}} */
@@ -2637,7 +2666,9 @@
append_trim_marker:
if (ZSTR_LEN(marker) > 0) {
- MB_CONVERT_BUF_ENSURE((&buf), buf.out, buf.limit, ZSTR_LEN(marker));
+ if (!MB_CONVERT_BUF_ENSURE_EX((&buf), buf.out, buf.limit, ZSTR_LEN(marker))) {
+ return mb_convert_buf_result(&buf, enc);
+ }
buf.out = zend_mempcpy(buf.out, ZSTR_VAL(marker), ZSTR_LEN(marker));
}
@@ -2694,7 +2725,12 @@
}
}
- RETVAL_STR(mb_trim_string(str, trimmarker, enc, from, width));
+ zend_string *ret = mb_trim_string(str, trimmarker, enc, from, width);
+ if (UNEXPECTED(ret == NULL)) {
+ RETURN_OOM();
+ }
+
+ RETVAL_STR(ret);
}
@@ -3798,6 +3834,9 @@
zend_string *ret = php_mb_convert_encoding_ex(Z_STRVAL_P(var), Z_STRLEN_P(var), to_encoding, from_encoding);
zval_ptr_dtor(orig_var);
ZVAL_STR(orig_var, ret);
+ if (ZEND_HAS_OOM()) {
+ return true;
+ }
} else if (Z_TYPE_P(var) == IS_ARRAY || Z_TYPE_P(var) == IS_OBJECT) {
HashTable *ht = HASH_OF(var);
HashTable *orig_ht = ht;
@@ -4663,6 +4702,9 @@
size_t line_sep_len = strlen(line_sep);
subject = mb_mime_header_encode(subject, enc, tran_cs, head_enc == &mbfl_encoding_base64, (char*)line_sep, line_sep_len, strlen("Subject: [PHP-jp nnnnnnnn]") + line_sep_len);
+ if (UNEXPECTED(!subject)) {
+ RETURN_OOM();
+ }
/* message body */
const mbfl_encoding *msg_enc = MBSTRG(current_internal_encoding);
@@ -5955,7 +5997,12 @@
goto overflow;
}
- zend_string *result = zend_string_alloc(ZSTR_LEN(input) + left_pad_bytes + right_pad_bytes, false);
+ zend_string *result = zend_string_safe_falloc(1, ZSTR_LEN(input), left_pad_bytes + right_pad_bytes, false, /* fallible */ true);
+ if (UNEXPECTED(!result)) {
+ zend_string_release_ex(remaining_left_pad_str, false);
+ zend_string_release_ex(remaining_right_pad_str, false);
+ RETURN_OOM();
+ }
char *buffer = ZSTR_VAL(result);
/* First we pad the left. */
@@ -6305,13 +6352,17 @@
* right now */
feed_and_mime_encode:
if (mb_convert_buf_len(&buf) - line_start + indent + strlen(outcode->mime_name) > 55) {
- MB_CONVERT_BUF_ENSURE(&buf, buf.out, buf.limit, (e - word_start) + linefeed_len + 1);
+ if (!MB_CONVERT_BUF_ENSURE_EX(&buf, buf.out, buf.limit, (e - word_start) + linefeed_len + 1)) {
+ return NULL;
+ }
buf.out = mb_convert_buf_appendn(buf.out, linefeed, linefeed_len);
buf.out = mb_convert_buf_add(buf.out, ' ');
indent = 0;
line_start = mb_convert_buf_len(&buf);
} else if (mb_convert_buf_len(&buf) > 0) {
- MB_CONVERT_BUF_ENSURE(&buf, buf.out, buf.limit, 1);
+ if (!MB_CONVERT_BUF_ENSURE_EX(&buf, buf.out, buf.limit, 1)) {
+ return NULL;
+ }
buf.out = mb_convert_buf_add(buf.out, ' ');
}
p = word_start; /* Back up to where MIME encoding of input chars should start */
@@ -6319,13 +6370,17 @@
} else if (w == ' ') {
/* When we see a space, check whether we should insert a line break */
if (mb_convert_buf_len(&buf) - line_start + (p - word_start) + indent > 75) {
- MB_CONVERT_BUF_ENSURE(&buf, buf.out, buf.limit, (e - word_start) + linefeed_len + 1);
+ if (!MB_CONVERT_BUF_ENSURE_EX(&buf, buf.out, buf.limit, (e - word_start) + linefeed_len + 1)) {
+ return NULL;
+ }
buf.out = mb_convert_buf_appendn(buf.out, linefeed, linefeed_len);
buf.out = mb_convert_buf_add(buf.out, ' ');
indent = 0;
line_start = mb_convert_buf_len(&buf);
} else if (mb_convert_buf_len(&buf) > 0) {
- MB_CONVERT_BUF_ENSURE(&buf, buf.out, buf.limit, (e - word_start) + 1);
+ if (!MB_CONVERT_BUF_ENSURE_EX(&buf, buf.out, buf.limit, (e - word_start) + 1)) {
+ return NULL;
+ }
buf.out = mb_convert_buf_add(buf.out, ' ');
}
/* Output one (space-delimited) word as plain ASCII */
@@ -6360,11 +6415,15 @@
* consider adding a line feed if necessary to prevent output lines from
* being too long */
if (mb_convert_buf_len(&buf) - line_start + (p - word_start) + indent > 74) {
- MB_CONVERT_BUF_ENSURE(&buf, buf.out, buf.limit, (e - word_start) + linefeed_len + 1);
+ if (!MB_CONVERT_BUF_ENSURE_EX(&buf, buf.out, buf.limit, (e - word_start) + linefeed_len + 1)) {
+ return NULL;
+ }
buf.out = mb_convert_buf_appendn(buf.out, linefeed, linefeed_len);
buf.out = mb_convert_buf_add(buf.out, ' ');
} else {
- MB_CONVERT_BUF_ENSURE(&buf, buf.out, buf.limit, (e - word_start) + 1);
+ if (!MB_CONVERT_BUF_ENSURE_EX(&buf, buf.out, buf.limit, (e - word_start) + 1)) {
+ return NULL;
+ }
buf.out = mb_convert_buf_add(buf.out, ' ');
}
}
@@ -6404,7 +6463,9 @@
e = wchar_buf + offset + out_len;
start_new_line: ;
- MB_CONVERT_BUF_ENSURE(&buf, buf.out, buf.limit, strlen(outcode->mime_name) + 5);
+ if (!MB_CONVERT_BUF_ENSURE_EX(&buf, buf.out, buf.limit, strlen(outcode->mime_name) + 5)) {
+ return NULL;
+ }
buf.out = mb_convert_buf_add2(buf.out, '=', '?');
buf.out = mb_convert_buf_appends(buf.out, outcode->mime_name);
buf.out = mb_convert_buf_add3(buf.out, '?', base64 ? 'B' : 'Q', '?');
@@ -6446,7 +6507,9 @@
* of the input string which needs to be processed */
ZEND_ASSERT(!in_len);
transfer_encode_mime_bytes(&tmpbuf, &buf, base64);
- MB_CONVERT_BUF_ENSURE(&buf, buf.out, buf.limit, 2);
+ if (!MB_CONVERT_BUF_ENSURE_EX(&buf, buf.out, buf.limit, 2)) {
+ return NULL;
+ }
buf.out = mb_convert_buf_add2(buf.out, '?', '=');
mb_convert_buf_free(&tmpbuf);
return mb_convert_buf_result(&buf, &mbfl_encoding_utf8);
@@ -6469,7 +6532,9 @@
transfer_encode_mime_bytes(&tmpbuf, &buf, base64);
tmpbuf.state = 0;
- MB_CONVERT_BUF_ENSURE(&buf, buf.out, buf.limit, 3 + linefeed_len);
+ if (!MB_CONVERT_BUF_ENSURE_EX(&buf, buf.out, buf.limit, 3 + linefeed_len)) {
+ return NULL;
+ }
buf.out = mb_convert_buf_add2(buf.out, '?', '=');
indent = 0; /* Indent argument must only affect the first line */
@@ -6546,7 +6611,12 @@
}
}
- RETURN_STR(mb_mime_header_encode(str, MBSTRG(current_internal_encoding), charset, base64, linefeed, linefeed_len, indent));
+ zend_string *ret = mb_mime_header_encode(str, MBSTRG(current_internal_encoding), charset, base64, linefeed, linefeed_len, indent);
+ if (UNEXPECTED(ret == NULL)) {
+ RETURN_OOM();
+ }
+
+ RETURN_STR(ret);
}
static int8_t decode_base64(unsigned char c)
diff -Nru php8.4-8.4.26/ext/mbstring/php_mbregex.c php8.4-8.4.27/ext/mbstring/php_mbregex.c
--- php8.4-8.4.26/ext/mbstring/php_mbregex.c 2026-09-22 15:00:02.000000000 +0000
+++ php8.4-8.4.27/ext/mbstring/php_mbregex.c 2026-10-19 14:38:59.000000000 +0000
@@ -730,6 +730,10 @@
eos = replace + replace_len;
while (p < eos) {
+ if (ZEND_HAS_OOM()) {
+ return;
+ }
+
clen = (int) php_mb_mbchar_bytes(p, enc);
if (clen != 1 || p == eos || p[0] != '\\') {
/* skip anything that's not an ascii backslash */
@@ -1241,6 +1245,10 @@
pos++;
}
onig_region_free(regs, 0);
+ if (ZEND_HAS_OOM()) {
+ err = -2;
+ break;
+ }
}
onig_region_free(regs, 1);
diff -Nru php8.4-8.4.26/ext/mbstring/tests/gh23106.phpt php8.4-8.4.27/ext/mbstring/tests/gh23106.phpt
--- php8.4-8.4.26/ext/mbstring/tests/gh23106.phpt 1970-01-01 00:00:00.000000000 +0000
+++ php8.4-8.4.27/ext/mbstring/tests/gh23106.phpt 2026-10-19 14:38:59.000000000 +0000
@@ -0,0 +1,22 @@
+--TEST--
+GH-23106 (mb_strpos() reads past the end of a haystack ending in a truncated UTF-8 sequence)
+--EXTENSIONS--
+mbstring
+--FILE--
+getMessage(), "\n";
+}
+?>
+--EXPECT--
+bool(false)
+bool(false)
+bool(false)
+int(1)
+mb_strpos(): Argument #3 ($offset) must be contained in argument #1 ($haystack)
diff -Nru php8.4-8.4.26/ext/mbstring/tests/mb_ereg_replace_kname_unterminated_nul.phpt php8.4-8.4.27/ext/mbstring/tests/mb_ereg_replace_kname_unterminated_nul.phpt
--- php8.4-8.4.26/ext/mbstring/tests/mb_ereg_replace_kname_unterminated_nul.phpt 2026-09-22 15:00:02.000000000 +0000
+++ php8.4-8.4.27/ext/mbstring/tests/mb_ereg_replace_kname_unterminated_nul.phpt 2026-10-19 14:38:59.000000000 +0000
@@ -2,6 +2,10 @@
mb_ereg_replace() with unterminated \k backref must not embed a NUL byte
--EXTENSIONS--
mbstring
+--SKIPIF--
+
--FILE--
+--EXPECTF--
+Fatal error: Allowed memory size of 8388608 bytes exhausted %S(tried to allocate %d bytes) in %s on line %d
diff -Nru php8.4-8.4.26/ext/mbstring/tests/oom_mb_convert_case.phpt php8.4-8.4.27/ext/mbstring/tests/oom_mb_convert_case.phpt
--- php8.4-8.4.26/ext/mbstring/tests/oom_mb_convert_case.phpt 1970-01-01 00:00:00.000000000 +0000
+++ php8.4-8.4.27/ext/mbstring/tests/oom_mb_convert_case.phpt 2026-10-19 14:38:59.000000000 +0000
@@ -0,0 +1,14 @@
+--TEST--
+mb_convert_case() doesn't reach hard limit
+--EXTENSIONS--
+mbstring
+--INI--
+memory_limit=8M
+--FILE--
+
+--EXPECTF--
+Fatal error: Allowed memory size of 8388608 bytes exhausted %S(tried to allocate %d bytes) in %s on line %d
diff -Nru php8.4-8.4.26/ext/mbstring/tests/oom_mb_convert_encoding.phpt php8.4-8.4.27/ext/mbstring/tests/oom_mb_convert_encoding.phpt
--- php8.4-8.4.26/ext/mbstring/tests/oom_mb_convert_encoding.phpt 1970-01-01 00:00:00.000000000 +0000
+++ php8.4-8.4.27/ext/mbstring/tests/oom_mb_convert_encoding.phpt 2026-10-19 14:38:59.000000000 +0000
@@ -0,0 +1,14 @@
+--TEST--
+mb_convert_encoding() doesn't reach hard limit
+--EXTENSIONS--
+mbstring
+--INI--
+memory_limit=8M
+--FILE--
+
+--EXPECTF--
+Fatal error: Allowed memory size of 8388608 bytes exhausted %S(tried to allocate %d bytes) in %s on line %d
diff -Nru php8.4-8.4.26/ext/mbstring/tests/oom_mb_convert_variables.phpt php8.4-8.4.27/ext/mbstring/tests/oom_mb_convert_variables.phpt
--- php8.4-8.4.26/ext/mbstring/tests/oom_mb_convert_variables.phpt 1970-01-01 00:00:00.000000000 +0000
+++ php8.4-8.4.27/ext/mbstring/tests/oom_mb_convert_variables.phpt 2026-10-19 14:38:59.000000000 +0000
@@ -0,0 +1,14 @@
+--TEST--
+mb_convert_variables() doesn't reach hard limit
+--EXTENSIONS--
+mbstring
+--INI--
+memory_limit=8M
+--FILE--
+
+--EXPECTF--
+Fatal error: Allowed memory size of 8388608 bytes exhausted %S(tried to allocate %d bytes) in %s on line %d
diff -Nru php8.4-8.4.26/ext/mbstring/tests/oom_mb_convert_variables_many.phpt php8.4-8.4.27/ext/mbstring/tests/oom_mb_convert_variables_many.phpt
--- php8.4-8.4.26/ext/mbstring/tests/oom_mb_convert_variables_many.phpt 1970-01-01 00:00:00.000000000 +0000
+++ php8.4-8.4.27/ext/mbstring/tests/oom_mb_convert_variables_many.phpt 2026-10-19 14:38:59.000000000 +0000
@@ -0,0 +1,15 @@
+--TEST--
+mb_convert_variables() doesn't reach hard limit - many strings
+--EXTENSIONS--
+mbstring
+--INI--
+memory_limit=8M
+--FILE--
+
+--EXPECTF--
+Fatal error: Allowed memory size of 8388608 bytes exhausted %S(tried to allocate %d bytes) in %s on line %d
diff -Nru php8.4-8.4.26/ext/mbstring/tests/oom_mb_decode_mimeheader.phpt php8.4-8.4.27/ext/mbstring/tests/oom_mb_decode_mimeheader.phpt
--- php8.4-8.4.26/ext/mbstring/tests/oom_mb_decode_mimeheader.phpt 1970-01-01 00:00:00.000000000 +0000
+++ php8.4-8.4.27/ext/mbstring/tests/oom_mb_decode_mimeheader.phpt 2026-10-19 14:38:59.000000000 +0000
@@ -0,0 +1,14 @@
+--TEST--
+mb_decode_mimeheader() doesn't reach hard limit
+--EXTENSIONS--
+mbstring
+--INI--
+memory_limit=8M
+--FILE--
+
+--EXPECTF--
+Fatal error: Allowed memory size of 8388608 bytes exhausted %S(tried to allocate %d bytes) in %s on line 3
diff -Nru php8.4-8.4.26/ext/mbstring/tests/oom_mb_encode_mimeheader.phpt php8.4-8.4.27/ext/mbstring/tests/oom_mb_encode_mimeheader.phpt
--- php8.4-8.4.26/ext/mbstring/tests/oom_mb_encode_mimeheader.phpt 1970-01-01 00:00:00.000000000 +0000
+++ php8.4-8.4.27/ext/mbstring/tests/oom_mb_encode_mimeheader.phpt 2026-10-19 14:38:59.000000000 +0000
@@ -0,0 +1,14 @@
+--TEST--
+mb_encode_mimeheader() doesn't reach hard limit
+--EXTENSIONS--
+mbstring
+--INI--
+memory_limit=8M
+--FILE--
+
+--EXPECTF--
+Fatal error: Allowed memory size of 8388608 bytes exhausted %S(tried to allocate %d bytes) in %s on line %d
diff -Nru php8.4-8.4.26/ext/mbstring/tests/oom_mb_encode_numericentity.phpt php8.4-8.4.27/ext/mbstring/tests/oom_mb_encode_numericentity.phpt
--- php8.4-8.4.26/ext/mbstring/tests/oom_mb_encode_numericentity.phpt 1970-01-01 00:00:00.000000000 +0000
+++ php8.4-8.4.27/ext/mbstring/tests/oom_mb_encode_numericentity.phpt 2026-10-19 14:38:59.000000000 +0000
@@ -0,0 +1,16 @@
+--TEST--
+mb_encode_numericentity() doesn't reach hard limit
+--EXTENSIONS--
+mbstring
+--INI--
+memory_limit=8M
+--FILE--
+
+--EXPECTF--
+Fatal error: Allowed memory size of 8388608 bytes exhausted %S(tried to allocate %d bytes) in %s on line %d
diff -Nru php8.4-8.4.26/ext/mbstring/tests/oom_mb_ereg_replace.phpt php8.4-8.4.27/ext/mbstring/tests/oom_mb_ereg_replace.phpt
--- php8.4-8.4.26/ext/mbstring/tests/oom_mb_ereg_replace.phpt 1970-01-01 00:00:00.000000000 +0000
+++ php8.4-8.4.27/ext/mbstring/tests/oom_mb_ereg_replace.phpt 2026-10-19 14:38:59.000000000 +0000
@@ -0,0 +1,18 @@
+--TEST--
+mb_ereg_replace() doesn't reach hard limit
+--EXTENSIONS--
+mbstring
+--SKIPIF--
+
+--INI--
+memory_limit=8M
+--FILE--
+
+--EXPECTF--
+Fatal error: Allowed memory size of 8388608 bytes exhausted %S(tried to allocate %d bytes) in %s on line %d
diff -Nru php8.4-8.4.26/ext/mbstring/tests/oom_mb_eregi_replace.phpt php8.4-8.4.27/ext/mbstring/tests/oom_mb_eregi_replace.phpt
--- php8.4-8.4.26/ext/mbstring/tests/oom_mb_eregi_replace.phpt 1970-01-01 00:00:00.000000000 +0000
+++ php8.4-8.4.27/ext/mbstring/tests/oom_mb_eregi_replace.phpt 2026-10-19 14:38:59.000000000 +0000
@@ -0,0 +1,18 @@
+--TEST--
+mb_eregi_replace() doesn't reach hard limit
+--EXTENSIONS--
+mbstring
+--SKIPIF--
+
+--INI--
+memory_limit=8M
+--FILE--
+
+--EXPECTF--
+Fatal error: Allowed memory size of 8388608 bytes exhausted %S(tried to allocate %d bytes) in %s on line %d
diff -Nru php8.4-8.4.26/ext/mbstring/tests/oom_mb_parse_str.phpt php8.4-8.4.27/ext/mbstring/tests/oom_mb_parse_str.phpt
--- php8.4-8.4.26/ext/mbstring/tests/oom_mb_parse_str.phpt 1970-01-01 00:00:00.000000000 +0000
+++ php8.4-8.4.27/ext/mbstring/tests/oom_mb_parse_str.phpt 2026-10-19 14:38:59.000000000 +0000
@@ -0,0 +1,14 @@
+--TEST--
+mb_parse_str() doesn't reach hard limit
+--EXTENSIONS--
+mbstring
+--INI--
+memory_limit=8M
+--FILE--
+
+--EXPECTF--
+Fatal error: Allowed memory size of 8388608 bytes exhausted %S(tried to allocate %d bytes) in %s on line %d
diff -Nru php8.4-8.4.26/ext/mbstring/tests/oom_mb_parse_str_vars.phpt php8.4-8.4.27/ext/mbstring/tests/oom_mb_parse_str_vars.phpt
--- php8.4-8.4.26/ext/mbstring/tests/oom_mb_parse_str_vars.phpt 1970-01-01 00:00:00.000000000 +0000
+++ php8.4-8.4.27/ext/mbstring/tests/oom_mb_parse_str_vars.phpt 2026-10-19 14:38:59.000000000 +0000
@@ -0,0 +1,22 @@
+--TEST--
+mb_parse_str() doesn't reach hard limit - variable registration
+--EXTENSIONS--
+mbstring
+--INI--
+memory_limit=8M
+max_input_vars=10000000
+--FILE--
+
+--EXPECTF--
+Fatal error: Allowed memory size of 8388608 bytes exhausted %S(tried to allocate %d bytes) in %s on line %d
diff -Nru php8.4-8.4.26/ext/mbstring/tests/oom_mb_split.phpt php8.4-8.4.27/ext/mbstring/tests/oom_mb_split.phpt
--- php8.4-8.4.26/ext/mbstring/tests/oom_mb_split.phpt 1970-01-01 00:00:00.000000000 +0000
+++ php8.4-8.4.27/ext/mbstring/tests/oom_mb_split.phpt 2026-10-19 14:38:59.000000000 +0000
@@ -0,0 +1,17 @@
+--TEST--
+mb_split() doesn't reach hard limit
+--EXTENSIONS--
+mbstring
+--SKIPIF--
+
+--INI--
+memory_limit=8M
+--FILE--
+
+--EXPECTF--
+Fatal error: Allowed memory size of 8388608 bytes exhausted %S(tried to allocate %d bytes) in %s on line %d
diff -Nru php8.4-8.4.26/ext/mbstring/tests/oom_mb_str_pad.phpt php8.4-8.4.27/ext/mbstring/tests/oom_mb_str_pad.phpt
--- php8.4-8.4.26/ext/mbstring/tests/oom_mb_str_pad.phpt 1970-01-01 00:00:00.000000000 +0000
+++ php8.4-8.4.27/ext/mbstring/tests/oom_mb_str_pad.phpt 2026-10-19 14:38:59.000000000 +0000
@@ -0,0 +1,14 @@
+--TEST--
+mb_str_pad() doesn't reach hard limit
+--EXTENSIONS--
+mbstring
+--INI--
+memory_limit=8M
+--FILE--
+
+--EXPECTF--
+Fatal error: Allowed memory size of 8388608 bytes exhausted %S(tried to allocate %d bytes) in %s on line %d
diff -Nru php8.4-8.4.26/ext/mbstring/tests/oom_mb_str_split.phpt php8.4-8.4.27/ext/mbstring/tests/oom_mb_str_split.phpt
--- php8.4-8.4.26/ext/mbstring/tests/oom_mb_str_split.phpt 1970-01-01 00:00:00.000000000 +0000
+++ php8.4-8.4.27/ext/mbstring/tests/oom_mb_str_split.phpt 2026-10-19 14:38:59.000000000 +0000
@@ -0,0 +1,13 @@
+--TEST--
+mb_str_split() doesn't reach hard limit
+--EXTENSIONS--
+mbstring
+--INI--
+memory_limit=8M
+--FILE--
+
+--EXPECTF--
+Fatal error: Allowed memory size of 8388608 bytes exhausted %S(tried to allocate %d bytes) in %s on line %d
diff -Nru php8.4-8.4.26/ext/mbstring/tests/oom_mb_str_split_filter.phpt php8.4-8.4.27/ext/mbstring/tests/oom_mb_str_split_filter.phpt
--- php8.4-8.4.26/ext/mbstring/tests/oom_mb_str_split_filter.phpt 1970-01-01 00:00:00.000000000 +0000
+++ php8.4-8.4.27/ext/mbstring/tests/oom_mb_str_split_filter.phpt 2026-10-19 14:38:59.000000000 +0000
@@ -0,0 +1,14 @@
+--TEST--
+mb_str_split() doesn't reach hard limit - encodings without a length table
+--EXTENSIONS--
+mbstring
+--INI--
+memory_limit=8M
+--FILE--
+
+--EXPECTF--
+Fatal error: Allowed memory size of 8388608 bytes exhausted %S(tried to allocate %d bytes) in %s on line %d
diff -Nru php8.4-8.4.26/ext/mbstring/tests/oom_mb_str_split_fixed_width.phpt php8.4-8.4.27/ext/mbstring/tests/oom_mb_str_split_fixed_width.phpt
--- php8.4-8.4.26/ext/mbstring/tests/oom_mb_str_split_fixed_width.phpt 1970-01-01 00:00:00.000000000 +0000
+++ php8.4-8.4.27/ext/mbstring/tests/oom_mb_str_split_fixed_width.phpt 2026-10-19 14:38:59.000000000 +0000
@@ -0,0 +1,14 @@
+--TEST--
+mb_str_split() doesn't reach hard limit - fixed width encodings
+--EXTENSIONS--
+mbstring
+--INI--
+memory_limit=8M
+--FILE--
+
+--EXPECTF--
+Fatal error: Allowed memory size of 8388608 bytes exhausted %S(tried to allocate %d bytes) in %s on line %d
diff -Nru php8.4-8.4.26/ext/mbstring/tests/oom_mb_str_split_length.phpt php8.4-8.4.27/ext/mbstring/tests/oom_mb_str_split_length.phpt
--- php8.4-8.4.26/ext/mbstring/tests/oom_mb_str_split_length.phpt 1970-01-01 00:00:00.000000000 +0000
+++ php8.4-8.4.27/ext/mbstring/tests/oom_mb_str_split_length.phpt 2026-10-19 14:38:59.000000000 +0000
@@ -0,0 +1,15 @@
+--TEST--
+mb_str_split() doesn't over allocate - split length argument
+--EXTENSIONS--
+mbstring
+--INI--
+memory_limit=8M
+--FILE--
+
+--EXPECT--
+array(1) {
+ [0]=>
+ string(3) "abc"
+}
diff -Nru php8.4-8.4.26/ext/mbstring/tests/oom_mb_strcut_filter.phpt php8.4-8.4.27/ext/mbstring/tests/oom_mb_strcut_filter.phpt
--- php8.4-8.4.26/ext/mbstring/tests/oom_mb_strcut_filter.phpt 1970-01-01 00:00:00.000000000 +0000
+++ php8.4-8.4.27/ext/mbstring/tests/oom_mb_strcut_filter.phpt 2026-10-19 14:38:59.000000000 +0000
@@ -0,0 +1,19 @@
+--TEST--
+mb_strcut() doesn't reach hard limit - encodings without a length table
+--EXTENSIONS--
+mbstring
+--INI--
+memory_limit=8M
+memory_hard_limit_percent=125
+--FILE--
+
+--EXPECTF--
+Fatal error: Allowed memory size of 8388608 bytes exhausted %S(tried to allocate %d bytes) in %s on line %d
diff -Nru php8.4-8.4.26/ext/mbstring/tests/oom_mb_strcut_length.phpt php8.4-8.4.27/ext/mbstring/tests/oom_mb_strcut_length.phpt
--- php8.4-8.4.26/ext/mbstring/tests/oom_mb_strcut_length.phpt 1970-01-01 00:00:00.000000000 +0000
+++ php8.4-8.4.27/ext/mbstring/tests/oom_mb_strcut_length.phpt 2026-10-19 14:38:59.000000000 +0000
@@ -0,0 +1,12 @@
+--TEST--
+mb_strcut() doesn't over allocate - length argument
+--EXTENSIONS--
+mbstring
+--INI--
+memory_limit=8M
+--FILE--
+
+--EXPECT--
+string(3) "abc"
diff -Nru php8.4-8.4.26/ext/mbstring/tests/oom_mb_strimwidth.phpt php8.4-8.4.27/ext/mbstring/tests/oom_mb_strimwidth.phpt
--- php8.4-8.4.26/ext/mbstring/tests/oom_mb_strimwidth.phpt 1970-01-01 00:00:00.000000000 +0000
+++ php8.4-8.4.27/ext/mbstring/tests/oom_mb_strimwidth.phpt 2026-10-19 14:38:59.000000000 +0000
@@ -0,0 +1,17 @@
+--TEST--
+mb_strimwidth() doesn't reach hard limit - trim marker
+--EXTENSIONS--
+mbstring
+--INI--
+memory_limit=16M
+--FILE--
+
+--EXPECTF--
+Fatal error: Allowed memory size of 16777216 bytes exhausted %S(tried to allocate %d bytes) in %s on line %d
diff -Nru php8.4-8.4.26/ext/mbstring/tests/oom_mb_strtoupper.phpt php8.4-8.4.27/ext/mbstring/tests/oom_mb_strtoupper.phpt
--- php8.4-8.4.26/ext/mbstring/tests/oom_mb_strtoupper.phpt 1970-01-01 00:00:00.000000000 +0000
+++ php8.4-8.4.27/ext/mbstring/tests/oom_mb_strtoupper.phpt 2026-10-19 14:38:59.000000000 +0000
@@ -0,0 +1,18 @@
+--TEST--
+mb_strtoupper() doesn't reach hard limit
+--EXTENSIONS--
+mbstring
+--SKIPIF--
+
+--INI--
+memory_limit=8M
+--FILE--
+
+--EXPECTF--
+Fatal error: Allowed memory size of 8388608 bytes exhausted %S(tried to allocate %d bytes) in %s on line %d
diff -Nru php8.4-8.4.26/ext/mbstring/tests/oom_mb_substr_count.phpt php8.4-8.4.27/ext/mbstring/tests/oom_mb_substr_count.phpt
--- php8.4-8.4.26/ext/mbstring/tests/oom_mb_substr_count.phpt 1970-01-01 00:00:00.000000000 +0000
+++ php8.4-8.4.27/ext/mbstring/tests/oom_mb_substr_count.phpt 2026-10-19 14:38:59.000000000 +0000
@@ -0,0 +1,17 @@
+--TEST--
+mb_substr_count() doesn't reach hard limit
+--EXTENSIONS--
+mbstring
+--INI--
+memory_limit=8M
+--FILE--
+
+--EXPECTF--
+Fatal error: Allowed memory size of 8388608 bytes exhausted %S(tried to allocate %d bytes) in %s on line %d
diff -Nru php8.4-8.4.26/ext/mbstring/tests/oom_mb_substr_length.phpt php8.4-8.4.27/ext/mbstring/tests/oom_mb_substr_length.phpt
--- php8.4-8.4.26/ext/mbstring/tests/oom_mb_substr_length.phpt 1970-01-01 00:00:00.000000000 +0000
+++ php8.4-8.4.27/ext/mbstring/tests/oom_mb_substr_length.phpt 2026-10-19 14:38:59.000000000 +0000
@@ -0,0 +1,12 @@
+--TEST--
+mb_substr() doesn't over allocate - length argument
+--EXTENSIONS--
+mbstring
+--INI--
+memory_limit=8M
+--FILE--
+
+--EXPECT--
+string(3) "abc"
diff -Nru php8.4-8.4.26/ext/mbstring/tests/surrogates_to_utf8.phpt php8.4-8.4.27/ext/mbstring/tests/surrogates_to_utf8.phpt
--- php8.4-8.4.26/ext/mbstring/tests/surrogates_to_utf8.phpt 1970-01-01 00:00:00.000000000 +0000
+++ php8.4-8.4.27/ext/mbstring/tests/surrogates_to_utf8.phpt 2026-10-19 14:38:59.000000000 +0000
@@ -0,0 +1,47 @@
+--TEST--
+Surrogate codepoints are not encoded as UTF-8
+--EXTENSIONS--
+mbstring
+--FILE--
+
+--EXPECT--
+UCS-4: 413f42 true
+UCS-4LE: 3f true
+UCS-2: 3f3f true
+UCS-2LE: 3f true
+HTML-ENTITIES: 3f3f true
+mb_convert_variables: 3f true
+mb_decode_numericentity: 3f3f true
+mb_decode_mimeheader: 3f true
+long: 552b44383030 true
+int(3)
+int(3)
+int(1)
diff -Nru php8.4-8.4.26/ext/mysqli/mysqli.c php8.4-8.4.27/ext/mysqli/mysqli.c
--- php8.4-8.4.26/ext/mysqli/mysqli.c 2026-09-22 15:00:02.000000000 +0000
+++ php8.4-8.4.27/ext/mysqli/mysqli.c 2026-10-19 14:38:59.000000000 +0000
@@ -116,7 +116,6 @@
if (stmt->stmt) {
if (mysqli_stmt_close(stmt->stmt, true)) {
php_error_docref(NULL, E_WARNING, "Error occurred while closing statement");
- return;
}
}
diff -Nru php8.4-8.4.26/ext/mysqli/mysqli_nonapi.c php8.4-8.4.27/ext/mysqli/mysqli_nonapi.c
--- php8.4-8.4.26/ext/mysqli/mysqli_nonapi.c 2026-09-22 15:00:02.000000000 +0000
+++ php8.4-8.4.27/ext/mysqli/mysqli_nonapi.c 2026-10-19 14:38:59.000000000 +0000
@@ -134,6 +134,8 @@
{
/* already connected, we should close the connection */
php_mysqli_close(mysql, MYSQLI_CLOSE_IMPLICIT, mysqli_resource->status);
+ /* the link is not connected anymore, even if the new connection fails */
+ mysqli_resource->status = MYSQLI_STATUS_INITIALIZED;
}
if (strlen(SAFE_STR(hostname)) > 2 && !strncasecmp(hostname, "p:", 2)) {
diff -Nru php8.4-8.4.26/ext/mysqli/mysqli_prop.c php8.4-8.4.27/ext/mysqli/mysqli_prop.c
--- php8.4-8.4.26/ext/mysqli/mysqli_prop.c 2026-09-22 15:00:02.000000000 +0000
+++ php8.4-8.4.27/ext/mysqli/mysqli_prop.c 2026-10-19 14:38:59.000000000 +0000
@@ -43,6 +43,12 @@
} else { \
CHECK_STATUS(statusval, quiet);\
p = (MYSQL *)((MY_MYSQL *)((MYSQLI_RESOURCE *)(obj->ptr))->ptr)->mysql;\
+ if (!p) { \
+ if (!quiet) { \
+ zend_throw_error(NULL, "%s object is not fully initialized", ZSTR_VAL(obj->zo.ce->name)); \
+ } \
+ return FAILURE; \
+ } \
}
#define MYSQLI_GET_RESULT(statusval) \
diff -Nru php8.4-8.4.26/ext/mysqli/tests/gh22854.phpt php8.4-8.4.27/ext/mysqli/tests/gh22854.phpt
--- php8.4-8.4.26/ext/mysqli/tests/gh22854.phpt 1970-01-01 00:00:00.000000000 +0000
+++ php8.4-8.4.27/ext/mysqli/tests/gh22854.phpt 2026-10-19 14:38:59.000000000 +0000
@@ -0,0 +1,83 @@
+--TEST--
+GH-22854 (Assertion failure at link_errno_read in ext/mysqli/mysqli_prop.c)
+--EXTENSIONS--
+mysqli
+--SKIPIF--
+
+--FILE--
+$property;
+ echo "$property: no error\n";
+ } catch (Error $e) {
+ echo "$property: " . $e->getMessage() . "\n";
+ }
+ }
+
+ // var_dump() reads every property in quiet mode
+ ob_start();
+ var_dump($mysqli);
+ ob_end_clean();
+ echo "var_dump() done\n";
+}
+
+$links = mysqli_get_links_stats()['total'];
+
+echo "connect()\n";
+$mysqli = new mysqli();
+$mysqli->connect($host, $user, $passwd, $db, $port, $socket);
+echo 'Success... ' . $mysqli->host_info . "\n";
+try {
+ $mysqli->connect($host, $user, $passwd, $db.'wrong', $port, $socket);
+} catch (mysqli_sql_exception $e) {
+ echo "Error: " . $e->getMessage() . "\n";
+}
+read_properties($mysqli, ['host_info', 'affected_rows', 'error_list', 'errno', 'error']);
+unset($mysqli);
+
+echo "\nreal_connect()\n";
+$mysqli = new mysqli();
+$mysqli->connect($host, $user, $passwd, $db, $port, $socket);
+echo 'Success... ' . $mysqli->host_info . "\n";
+try {
+ $mysqli->real_connect($host, $user, $passwd, $db.'wrong', $port, $socket);
+} catch (mysqli_sql_exception $e) {
+ echo "Error: " . $e->getMessage() . "\n";
+}
+read_properties($mysqli, ['host_info', 'server_info', 'affected_rows', 'error_list']);
+unset($mysqli);
+
+// A failed reconnect must leave the link count balanced (it used to be decremented twice)
+var_dump(mysqli_get_links_stats()['total'] === $links);
+
+print "done!";
+?>
+--EXPECTF--
+connect()
+Success... %s via %s
+Error: Unknown database '%s'
+host_info: Property access is not allowed yet
+affected_rows: Property access is not allowed yet
+error_list: Property access is not allowed yet
+errno: mysqli object is not fully initialized
+error: mysqli object is not fully initialized
+var_dump() done
+
+real_connect()
+Success... %s via %s
+Error: Unknown database '%s'
+host_info: Property access is not allowed yet
+server_info: Property access is not allowed yet
+affected_rows: Property access is not allowed yet
+error_list: Property access is not allowed yet
+var_dump() done
+bool(true)
+done!
diff -Nru php8.4-8.4.26/ext/mysqli/tests/mysqli_stmt_close_killed_connection.phpt php8.4-8.4.27/ext/mysqli/tests/mysqli_stmt_close_killed_connection.phpt
--- php8.4-8.4.26/ext/mysqli/tests/mysqli_stmt_close_killed_connection.phpt 1970-01-01 00:00:00.000000000 +0000
+++ php8.4-8.4.27/ext/mysqli/tests/mysqli_stmt_close_killed_connection.phpt 2026-10-19 14:38:59.000000000 +0000
@@ -0,0 +1,32 @@
+--TEST--
+Closing a prepared statement after its connection was killed must not leak
+--EXTENSIONS--
+mysqli
+--SKIPIF--
+
+--FILE--
+prepare('DO 1');
+}
+$link->query('KILL ' . $link->thread_id);
+
+// Over TCP, a few COM_STMT_CLOSE writes may be accepted before one fails
+do {
+ array_pop($stmts);
+ usleep(1000);
+} while ($stmts && !$link->errno);
+
+echo "done!\n";
+?>
+--EXPECTF--
+Warning: main(): Error occurred while closing statement in %s on line %d
+done!
diff -Nru php8.4-8.4.26/ext/mysqli/tests/mysqli_stmt_next_result_field_count.phpt php8.4-8.4.27/ext/mysqli/tests/mysqli_stmt_next_result_field_count.phpt
--- php8.4-8.4.26/ext/mysqli/tests/mysqli_stmt_next_result_field_count.phpt 1970-01-01 00:00:00.000000000 +0000
+++ php8.4-8.4.27/ext/mysqli/tests/mysqli_stmt_next_result_field_count.phpt 2026-10-19 14:38:59.000000000 +0000
@@ -0,0 +1,34 @@
+--TEST--
+mysqli_stmt::$field_count is 0 for the trailing OK packet of a stored procedure
+--EXTENSIONS--
+mysqli
+--SKIPIF--
+
+--FILE--
+query('DROP PROCEDURE IF EXISTS test_field_count_p');
+$link->query('CREATE PROCEDURE test_field_count_p() BEGIN SELECT 1 AS a; SELECT 2 AS b, 3 AS c; END');
+
+$stmt = $link->prepare('CALL test_field_count_p()');
+$stmt->execute();
+do {
+ var_dump($stmt->field_count);
+ $stmt->get_result();
+} while ($stmt->next_result());
+?>
+--CLEAN--
+query('DROP PROCEDURE IF EXISTS test_field_count_p');
+?>
+--EXPECT--
+int(1)
+int(2)
+int(0)
diff -Nru php8.4-8.4.26/ext/mysqlnd/mysqlnd_ext_plugin.h php8.4-8.4.27/ext/mysqlnd/mysqlnd_ext_plugin.h
--- php8.4-8.4.26/ext/mysqlnd/mysqlnd_ext_plugin.h 2026-09-22 15:00:02.000000000 +0000
+++ php8.4-8.4.27/ext/mysqlnd/mysqlnd_ext_plugin.h 2026-10-19 14:38:59.000000000 +0000
@@ -42,7 +42,7 @@
#define mysqlnd_plugin_get_plugin_stmt_data(stmt, p_id) mysqlnd_plugin_area_getters.get_stmt_area((stmt), (p_id))
#define mysqlnd_plugin_get_plugin_protocol_data(proto, p_id) mysqlnd_plugin_area_getters.get_protocol_decoder_area((proto), (p_id))
#define mysqlnd_plugin_get_plugin_pfc_data(pfc, p_id) mysqlnd_plugin_area_getters.get_pfc_area((pfc), (p_id))
-#define mysqlnd_plugin_get_plugin_vio_data(vio, p_id) mysqlnd_plugin_area_getters.get_pfc_area((vio), (p_id))
+#define mysqlnd_plugin_get_plugin_vio_data(vio, p_id) mysqlnd_plugin_area_getters.get_vio_area((vio), (p_id))
struct st_mysqlnd_plugin_methods_xetters
diff -Nru php8.4-8.4.26/ext/mysqlnd/mysqlnd_ps.c php8.4-8.4.27/ext/mysqlnd/mysqlnd_ps.c
--- php8.4-8.4.26/ext/mysqlnd/mysqlnd_ps.c 2026-09-22 15:00:02.000000000 +0000
+++ php8.4-8.4.27/ext/mysqlnd/mysqlnd_ps.c 2026-10-19 14:38:59.000000000 +0000
@@ -515,6 +515,7 @@
stmt->state = MYSQLND_STMT_EXECUTED;
if (conn->last_query_type == QUERY_UPSERT || conn->last_query_type == QUERY_LOAD_LOCAL) {
+ stmt->field_count = conn->field_count;
DBG_INF("PASS");
DBG_RETURN(PASS);
}
@@ -1757,6 +1758,7 @@
MYSQLND_STMT_DATA * stmt = s? s->data : NULL;
MYSQLND_CONN_DATA * conn = stmt? stmt->conn : NULL;
enum_mysqlnd_collected_stats statistic = STAT_LAST;
+ enum_func_status ret = PASS;
DBG_ENTER("mysqlnd_stmt::close_on_server");
if (!stmt || !conn) {
@@ -1794,14 +1796,7 @@
STAT_FREE_RESULT_EXPLICIT);
if (GET_CONNECTION_STATE(&conn->state) == CONN_READY) {
- enum_func_status ret = FAIL;
- const size_t stmt_id = stmt->stmt_id;
-
- ret = conn->command->stmt_close(conn, stmt_id);
- if (ret == FAIL) {
- COPY_CLIENT_ERROR(stmt->error_info, *conn->error_info);
- DBG_RETURN(FAIL);
- }
+ ret = conn->command->stmt_close(conn, stmt->stmt_id);
}
}
switch (stmt->execute_count) {
@@ -1830,7 +1825,7 @@
stmt->conn = NULL;
}
- DBG_RETURN(PASS);
+ DBG_RETURN(ret);
}
/* }}} */
diff -Nru php8.4-8.4.26/ext/opcache/ZendAccelerator.c php8.4-8.4.27/ext/opcache/ZendAccelerator.c
--- php8.4-8.4.26/ext/opcache/ZendAccelerator.c 2026-09-22 15:00:02.000000000 +0000
+++ php8.4-8.4.27/ext/opcache/ZendAccelerator.c 2026-10-19 14:38:59.000000000 +0000
@@ -195,10 +195,10 @@
# define zend_accel_get_time() time(NULL)
#endif
-static inline bool is_cacheable_stream_path(const char *filename)
+static inline bool is_cacheable_stream_path(const zend_string *filename)
{
- return memcmp(filename, "file://", sizeof("file://") - 1) == 0 ||
- memcmp(filename, "phar://", sizeof("phar://") - 1) == 0;
+ return zend_string_starts_with_literal(filename, "file://") ||
+ zend_string_starts_with_literal(filename, "phar://");
}
/* O+ overrides PHP chdir() function and remembers the current working directory
@@ -607,14 +607,17 @@
zend_string *ret = accel_find_interned_string_ex(h, str, size);
if (!ret) {
- ret = zend_string_init(str, size, permanent);
+ ret = zend_string_finit(str, size, permanent, CG(interned_strings_fallible));
+ if (UNEXPECTED(!ret)) {
+ return NULL;
+ }
ZSTR_H(ret) = h;
}
return ret;
}
- return zend_string_init(str, size, permanent);
+ return zend_string_finit(str, size, permanent, CG(interned_strings_fallible));
}
static inline void accel_copy_permanent_list_types(
@@ -1205,7 +1208,7 @@
if (IS_ABSOLUTE_PATH(path, path_length)) {
/* pass */
} else if (UNEXPECTED(php_is_stream_path(path))) {
- if (!is_cacheable_stream_path(path)) {
+ if (!is_cacheable_stream_path(str)) {
return NULL;
}
/* pass */
@@ -1903,7 +1906,7 @@
bool from_memory; /* if the script we've got is stored in SHM */
if (php_is_stream_path(ZSTR_VAL(file_handle->filename)) &&
- !is_cacheable_stream_path(ZSTR_VAL(file_handle->filename))) {
+ !is_cacheable_stream_path(file_handle->filename)) {
return accelerator_orig_compile_file(file_handle, type);
}
@@ -2047,7 +2050,7 @@
return accelerator_orig_compile_file(file_handle, type);
}
persistent_script = zend_accel_hash_find(&ZCSG(hash), key);
- } else if (UNEXPECTED(php_is_stream_path(ZSTR_VAL(file_handle->filename)) && !is_cacheable_stream_path(ZSTR_VAL(file_handle->filename)))) {
+ } else if (UNEXPECTED(php_is_stream_path(ZSTR_VAL(file_handle->filename)) && !is_cacheable_stream_path(file_handle->filename))) {
ZCG(cache_opline) = NULL;
ZCG(cache_persistent_script) = NULL;
return accelerator_orig_compile_file(file_handle, type);
@@ -2302,6 +2305,10 @@
bool needs_autoload;
zend_inheritance_cache_entry *entry = ce->inheritance_cache;
+ if (entry) {
+ ZEND_ATOMIC_FENCE_ACQUIRE();
+ }
+
while (entry) {
entry = zend_accel_inheritance_cache_find(entry, ce, parent, traits_and_interfaces, &needs_autoload);
if (entry) {
@@ -2405,6 +2412,7 @@
}
zend_map_ptr_extend(ZCSG(map_ptr_last));
+ zend_accel_pending_ce_cache_begin();
#if ZEND_MM_NEED_EIGHT_BYTE_REALIGNMENT
/* Align to 8-byte boundary */
@@ -2458,12 +2466,15 @@
entry->num_warnings = EG(num_errors);
entry->warnings = zend_persist_warnings(EG(num_errors), EG(errors));
entry->next = proto->inheritance_cache;
- proto->inheritance_cache = entry;
EG(num_errors) = 0;
EG(errors) = NULL;
ZCSG(map_ptr_last) = CG(map_ptr_last);
+ ZEND_ATOMIC_FENCE_RELEASE();
+ proto->inheritance_cache = entry;
+
+ zend_accel_pending_ce_cache_commit();
zend_shared_alloc_destroy_xlat_table();
@@ -2785,6 +2796,9 @@
ZCG(cwd) = NULL;
}
+ /* A persist window left through a bailout never published its slots */
+ zend_accel_pending_ce_cache_discard();
+
if (!ZCG(enabled) || !accel_startup_ok) {
return SUCCESS;
}
@@ -4831,6 +4845,7 @@
EG(error_reporting) = 0;
const zend_result rc = php_request_startup();
+ zend_mm_set_max_allocs(0);
EG(error_reporting) = orig_error_reporting;
diff -Nru php8.4-8.4.26/ext/opcache/ZendAccelerator.h php8.4-8.4.27/ext/opcache/ZendAccelerator.h
--- php8.4-8.4.26/ext/opcache/ZendAccelerator.h 2026-09-22 15:00:02.000000000 +0000
+++ php8.4-8.4.27/ext/opcache/ZendAccelerator.h 2026-10-19 14:38:59.000000000 +0000
@@ -230,6 +230,12 @@
zend_persistent_script *cache_persistent_script;
/* preallocated buffer for keys */
zend_string *key;
+
+ /* CE cache slots allocated during the current persist window, keyed by the
+ * address of the shared class name string. They are written into the
+ * strings by zend_accel_pending_ce_cache_commit() once ZCSG(map_ptr_last)
+ * covers them. NULL outside a persist window. */
+ HashTable *pending_ce_cache;
} zend_accel_globals;
typedef struct _zend_string_table {
@@ -336,7 +342,10 @@
zend_string* ZEND_FASTCALL accel_new_interned_string(zend_string *str);
-uint32_t zend_accel_get_class_name_map_ptr(zend_string *type_name);
+void zend_accel_get_class_name_map_ptr(zend_string *type_name);
+void zend_accel_pending_ce_cache_begin(void);
+void zend_accel_pending_ce_cache_commit(void);
+void zend_accel_pending_ce_cache_discard(void);
END_EXTERN_C()
diff -Nru php8.4-8.4.26/ext/opcache/jit/ir/ir_private.h php8.4-8.4.27/ext/opcache/jit/ir/ir_private.h
--- php8.4-8.4.26/ext/opcache/jit/ir/ir_private.h 2026-09-22 15:00:02.000000000 +0000
+++ php8.4-8.4.27/ext/opcache/jit/ir/ir_private.h 2026-10-19 14:38:59.000000000 +0000
@@ -495,9 +495,12 @@
IR_ALWAYS_INLINE void ir_sparse_set_init(ir_sparse_set *set, uint32_t size)
{
+ size_t alloc_size = (size_t)size * 2 * sizeof(*set->data);
+
set->size = size;
set->len = 0;
- set->data = (uint32_t*)ir_mem_malloc(sizeof(uint32_t) * 2 * size) + size;
+ IR_ASSERT(!size || alloc_size / size == 2 * sizeof(*set->data));
+ set->data = (uint32_t*)ir_mem_malloc(alloc_size) + size;
#ifdef IR_DEBUG
/* initialize sparse part to avoid valgrind warnings */
memset(&IR_SPARSE_SET_SPARSE(set, size - 1), 0, size * sizeof(uint32_t));
diff -Nru php8.4-8.4.26/ext/opcache/jit/ir/ir_x86.dasc php8.4-8.4.27/ext/opcache/jit/ir/ir_x86.dasc
--- php8.4-8.4.26/ext/opcache/jit/ir/ir_x86.dasc 2026-09-22 15:00:02.000000000 +0000
+++ php8.4-8.4.27/ext/opcache/jit/ir/ir_x86.dasc 2026-10-19 14:38:59.000000000 +0000
@@ -1923,6 +1923,21 @@
return 0;
}
+/* A naive check if anything that emits code, and so clobbers the flags, is
+ * scheduled between the flags setting instruction and the fusion root */
+static bool ir_match_has_flags_deps(ir_ctx *ctx, ir_ref ref, ir_ref root)
+{
+ ir_ref pos = ctx->prev_ref[root];
+
+ while (pos > ref) {
+ if (ctx->ir_base[pos].op != IR_SNAPSHOT) {
+ return 1;
+ }
+ pos = ctx->prev_ref[pos];
+ }
+ return pos != ref;
+}
+
static void ir_match_fuse_load(ir_ctx *ctx, ir_ref ref, ir_ref root)
{
if (ir_in_same_block(ctx, ref) &&
@@ -3089,7 +3104,9 @@
if (IR_IS_CONST_REF(op2_insn->op2)
&& !IR_IS_SYM_CONST(ctx->ir_base[op2_insn->op2].op)
&& ctx->ir_base[op2_insn->op2].val.i64 == 0) {
- if (op2_insn->op1 == insn->op2 - 1) { /* previous instruction */
+ if (op2_insn->op1 == insn->op2 - 1 /* previous instruction */
+ && ir_in_same_block(ctx, op2_insn->op1)
+ && !ir_match_has_flags_deps(ctx, insn->op2, ref)) {
ir_insn *op1_insn = &ctx->ir_base[op2_insn->op1];
if ((op1_insn->op == IR_OR || op1_insn->op == IR_AND || op1_insn->op == IR_XOR) ||
diff -Nru php8.4-8.4.26/ext/opcache/jit/zend_jit.c php8.4-8.4.27/ext/opcache/jit/zend_jit.c
--- php8.4-8.4.26/ext/opcache/jit/zend_jit.c 2026-09-22 15:00:02.000000000 +0000
+++ php8.4-8.4.27/ext/opcache/jit/zend_jit.c 2026-10-19 14:38:59.000000000 +0000
@@ -2569,21 +2569,29 @@
}
goto done;
case ZEND_FRAMELESS_ICALL_0:
- jit_frameless_icall0(jit, opline);
+ if (!jit_frameless_icall0(jit, opline)) {
+ goto jit_failure;
+ }
goto done;
case ZEND_FRAMELESS_ICALL_1:
op1_info = OP1_INFO();
- jit_frameless_icall1(jit, opline, op1_info);
+ if (!jit_frameless_icall1(jit, opline, op1_info)) {
+ goto jit_failure;
+ }
goto done;
case ZEND_FRAMELESS_ICALL_2:
op1_info = OP1_INFO();
op2_info = OP2_INFO();
- jit_frameless_icall2(jit, opline, op1_info, op2_info);
+ if (!jit_frameless_icall2(jit, opline, op1_info, op2_info)) {
+ goto jit_failure;
+ }
goto done;
case ZEND_FRAMELESS_ICALL_3:
op1_info = OP1_INFO();
op2_info = OP2_INFO();
- jit_frameless_icall3(jit, opline, op1_info, op2_info, OP1_DATA_INFO());
+ if (!jit_frameless_icall3(jit, opline, op1_info, op2_info, OP1_DATA_INFO())) {
+ goto jit_failure;
+ }
goto done;
default:
break;
diff -Nru php8.4-8.4.26/ext/opcache/jit/zend_jit_ir.c php8.4-8.4.27/ext/opcache/jit/zend_jit_ir.c
--- php8.4-8.4.26/ext/opcache/jit/zend_jit_ir.c 2026-09-22 15:00:02.000000000 +0000
+++ php8.4-8.4.27/ext/opcache/jit/zend_jit_ir.c 2026-10-19 14:38:59.000000000 +0000
@@ -2060,9 +2060,18 @@
ir_STORE(jit_EG(vm_interrupt), ir_CONST_U8(0));
if_timeout = ir_IF(ir_EQ(ir_LOAD_U8(jit_EG(timed_out)), ir_CONST_U8(0)));
ir_IF_FALSE(if_timeout);
- ir_CALL(IR_VOID, ir_CONST_FUNC(zend_timeout));
+ ir_CALL(IR_VOID, ir_CONST_FUNC(zend_timeout)); // noreturn
ir_MERGE_WITH_EMPTY_TRUE(if_timeout);
+ // if (ZEND_HAS_OOM()) {
+ ir_ref if_delayed_oom = ir_IF(ir_LOAD_U8(ir_ADD_OFFSET(jit_EG(delayed_oom), offsetof(zend_oom_info, state))));
+ ir_IF_TRUE(if_delayed_oom);
+ ir_CALL(IR_VOID, ir_CONST_FC_FUNC(zend_handle_delayed_oom));
+ // LOAD_OPLINE()
+ jit_STORE_IP(jit, ir_LOAD_A(jit_EX(opline)));
+ ir_ref if_delayed_oom_end = ir_END();
+ ir_IF_FALSE(if_delayed_oom);
+
if (zend_interrupt_function) {
ir_CALL_1(IR_VOID, ir_CONST_FUNC(zend_interrupt_function), jit_FP(jit));
if_exception = ir_IF(ir_LOAD_A(jit_EG(exception)));
@@ -2074,6 +2083,8 @@
jit_STORE_IP(jit, ir_LOAD_A(jit_EX(opline)));
}
+ ir_MERGE_WITH(if_delayed_oom_end);
+
if (GCC_GLOBAL_REGS) {
ir_TAILCALL(IR_VOID, ir_LOAD_A(jit_IP(jit)));
} else {
@@ -3166,6 +3177,7 @@
REGISTER_DATA(EG(opline_before_exception));
REGISTER_DATA(EG(vm_interrupt));
REGISTER_DATA(EG(timed_out));
+ REGISTER_DATA(EG(delayed_oom));
REGISTER_DATA(EG(uninitialized_zval));
REGISTER_DATA(EG(zend_constants));
REGISTER_DATA(EG(jit_trace_num));
@@ -10388,14 +10400,6 @@
insn->inputs_count = 3;
insn->op3 = end;
break;
- } else if (insn->op == IR_LOOP_BEGIN && insn->inputs_count == 3) {
- ZEND_ASSERT(jit->ctx.ir_base[insn->op3].op == IR_LOOP_END);
- jit->ctx.ir_base[insn->op3].op = IR_END;
- ir_MERGE_2(insn->op3, ir_END());
- end = ir_LOOP_END();
- insn = &jit->ctx.ir_base[begin];
- insn->op3 = end;
- break;
}
}
/* fallback to indirect JMP or RETURN */
@@ -17573,7 +17577,33 @@
return skip;
}
-static void jit_frameless_icall0(zend_jit_ctx *jit, const zend_op *opline)
+static bool jit_frameless_interrupt_check(zend_jit_ctx *jit, const zend_op *next_opline)
+{
+ if (zend_interrupt_function) {
+ /* Mirrors ZEND_VM_FCALL_INTERRUPT_CHECK(), call before advancing opline. */
+ // JIT: if (EG(vm_interrupt)) zend_fcall_interrupt(execute_data);
+ ir_ref if_interrupt = ir_IF(ir_LOAD_U8(jit_EG(vm_interrupt)));
+ ir_IF_TRUE_cold(if_interrupt);
+ ir_CALL_1(IR_VOID, ir_CONST_FC_FUNC(zend_fcall_interrupt), jit_FP(jit));
+ ir_MERGE_WITH_EMPTY_FALSE(if_interrupt);
+ } else {
+ const void *exit_addr = NULL;
+
+ if (JIT_G(trigger) == ZEND_JIT_ON_HOT_TRACE) {
+ uint32_t exit_point = zend_jit_trace_get_exit_point(next_opline, ZEND_JIT_EXIT_TO_VM);
+ exit_addr = zend_jit_trace_get_exit_addr(exit_point);
+ if (!exit_addr) {
+ return false;
+ }
+ }
+
+ zend_jit_check_timeout(jit, next_opline, exit_addr);
+ }
+
+ return true;
+}
+
+static bool jit_frameless_icall0(zend_jit_ctx *jit, const zend_op *opline)
{
jit_SET_EX_OPLINE(jit, opline);
@@ -17593,10 +17623,14 @@
ir_MERGE_WITH(skip_observer);
}
+ if (!jit_frameless_interrupt_check(jit, opline+1)) {
+ return false;
+ }
zend_jit_check_exception(jit);
+ return true;
}
-static void jit_frameless_icall1(zend_jit_ctx *jit, const zend_op *opline, uint32_t op1_info)
+static bool jit_frameless_icall1(zend_jit_ctx *jit, const zend_op *opline, uint32_t op1_info)
{
jit_SET_EX_OPLINE(jit, opline);
@@ -17633,10 +17667,14 @@
}
jit_FREE_OP(jit, opline->op1_type, opline->op1, op1_info, NULL);
+ if (!jit_frameless_interrupt_check(jit, opline+1)) {
+ return false;
+ }
zend_jit_check_exception(jit);
+ return true;
}
-static void jit_frameless_icall2(zend_jit_ctx *jit, const zend_op *opline, uint32_t op1_info, uint32_t op2_info)
+static bool jit_frameless_icall2(zend_jit_ctx *jit, const zend_op *opline, uint32_t op1_info, uint32_t op2_info)
{
jit_SET_EX_OPLINE(jit, opline);
@@ -17699,10 +17737,14 @@
}
}
jit_FREE_OP(jit, opline->op2_type, opline->op2, op2_info, NULL);
+ if (!jit_frameless_interrupt_check(jit, opline+1)) {
+ return false;
+ }
zend_jit_check_exception(jit);
+ return true;
}
-static void jit_frameless_icall3(zend_jit_ctx *jit, const zend_op *opline, uint32_t op1_info, uint32_t op2_info, uint32_t op1_data_info)
+static bool jit_frameless_icall3(zend_jit_ctx *jit, const zend_op *opline, uint32_t op1_info, uint32_t op2_info, uint32_t op1_data_info)
{
jit_SET_EX_OPLINE(jit, opline);
@@ -17799,7 +17841,11 @@
}
}
jit_FREE_OP(jit, (opline+1)->op1_type, (opline+1)->op1, op1_data_info, NULL);
+ if (!jit_frameless_interrupt_check(jit, opline+2)) {
+ return false;
+ }
zend_jit_check_exception(jit);
+ return true;
}
/*
diff -Nru php8.4-8.4.26/ext/opcache/jit/zend_jit_trace.c php8.4-8.4.27/ext/opcache/jit/zend_jit_trace.c
--- php8.4-8.4.26/ext/opcache/jit/zend_jit_trace.c 2026-09-22 15:00:02.000000000 +0000
+++ php8.4-8.4.27/ext/opcache/jit/zend_jit_trace.c 2026-10-19 14:38:59.000000000 +0000
@@ -6387,21 +6387,29 @@
}
goto done;
case ZEND_FRAMELESS_ICALL_0:
- jit_frameless_icall0(jit, opline);
+ if (!jit_frameless_icall0(jit, opline)) {
+ goto jit_failure;
+ }
goto done;
case ZEND_FRAMELESS_ICALL_1:
op1_info = OP1_INFO();
- jit_frameless_icall1(jit, opline, op1_info);
+ if (!jit_frameless_icall1(jit, opline, op1_info)) {
+ goto jit_failure;
+ }
goto done;
case ZEND_FRAMELESS_ICALL_2:
op1_info = OP1_INFO();
op2_info = OP2_INFO();
- jit_frameless_icall2(jit, opline, op1_info, op2_info);
+ if (!jit_frameless_icall2(jit, opline, op1_info, op2_info)) {
+ goto jit_failure;
+ }
goto done;
case ZEND_FRAMELESS_ICALL_3:
op1_info = OP1_INFO();
op2_info = OP2_INFO();
- jit_frameless_icall3(jit, opline, op1_info, op2_info, OP1_DATA_INFO());
+ if (!jit_frameless_icall3(jit, opline, op1_info, op2_info, OP1_DATA_INFO())) {
+ goto jit_failure;
+ }
goto done;
default:
break;
diff -Nru php8.4-8.4.26/ext/opcache/tests/file_cache_frameless_handler.phpt php8.4-8.4.27/ext/opcache/tests/file_cache_frameless_handler.phpt
--- php8.4-8.4.26/ext/opcache/tests/file_cache_frameless_handler.phpt 1970-01-01 00:00:00.000000000 +0000
+++ php8.4-8.4.27/ext/opcache/tests/file_cache_frameless_handler.phpt 2026-10-19 14:38:59.000000000 +0000
@@ -0,0 +1,81 @@
+--TEST--
+opcache file cache must not reuse frameless function indices across extension sets
+--EXTENSIONS--
+opcache
+--SKIPIF--
+
+--FILE--
+getMessage(), "\n";
+}
+PHP);
+
+function run(string $cache, array $args): void {
+ $ext = ini_get('extension_dir');
+ $opcache = PHP_OS_FAMILY === 'Windows' ? 'php_opcache.dll' : 'opcache.so';
+ $cmd = [PHP_BINARY, '-n', '-d', 'extension_dir="' . $ext . '"'];
+ if (file_exists($ext . DIRECTORY_SEPARATOR . $opcache)) {
+ array_push($cmd, '-d', 'zend_extension=opcache');
+ }
+ array_push($cmd,
+ '-d', 'opcache.enable_cli=1',
+ '-d', 'opcache.file_cache="' . $cache . '"',
+ '-d', 'opcache.file_cache_only=1',
+ '-d', 'opcache.file_update_protection=0',
+ ...$args,
+ );
+ $proc = proc_open($cmd, [1 => ['pipe', 'w'], 2 => ['pipe', 'w']], $pipes);
+ echo stream_get_contents($pipes[1]);
+ stream_get_contents($pipes[2]);
+ proc_close($proc);
+}
+
+function system_ids(string $cache): int {
+ $pattern = PHP_OS_FAMILY === 'Windows' ? '/*/*' : '/*';
+ return count(glob($cache . $pattern, GLOB_ONLYDIR));
+}
+
+run($cache, ['-d', 'extension=dl_test', $script]);
+var_dump(system_ids($cache));
+run($cache, [$script, 'dl']);
+var_dump(system_ids($cache));
+run($cache, [$script]);
+var_dump(system_ids($cache));
+?>
+--CLEAN--
+isDir() ? rmdir($file->getPathname()) : unlink($file->getPathname());
+ }
+ rmdir($cache);
+}
+?>
+--EXPECT--
+int(7)
+int(1)
+int(7)
+int(2)
+Error: Call to undefined function dl_test_frameless()
+int(2)
diff -Nru php8.4-8.4.26/ext/opcache/tests/jit/frameless_interrupt_001.phpt php8.4-8.4.27/ext/opcache/tests/jit/frameless_interrupt_001.phpt
--- php8.4-8.4.26/ext/opcache/tests/jit/frameless_interrupt_001.phpt 1970-01-01 00:00:00.000000000 +0000
+++ php8.4-8.4.27/ext/opcache/tests/jit/frameless_interrupt_001.phpt 2026-10-19 14:38:59.000000000 +0000
@@ -0,0 +1,31 @@
+--TEST--
+JIT: an interrupt after a frameless call does not run the call again (function JIT)
+--EXTENSIONS--
+opcache
+zend_test
+--INI--
+opcache.enable=1
+opcache.enable_cli=1
+opcache.jit=function
+opcache.jit_buffer_size=32M
+zend_test.observer.enabled=1
+zend_test.observer.show_output=0
+zend_test.observer.observe_function_names=str_contains
+zend_test.observer.set_vm_interrupt_on_begin=1
+--FILE--
+
+--EXPECT--
+int(813)
+int(813)
diff -Nru php8.4-8.4.26/ext/opcache/tests/jit/frameless_interrupt_002.phpt php8.4-8.4.27/ext/opcache/tests/jit/frameless_interrupt_002.phpt
--- php8.4-8.4.26/ext/opcache/tests/jit/frameless_interrupt_002.phpt 1970-01-01 00:00:00.000000000 +0000
+++ php8.4-8.4.27/ext/opcache/tests/jit/frameless_interrupt_002.phpt 2026-10-19 14:38:59.000000000 +0000
@@ -0,0 +1,31 @@
+--TEST--
+JIT: an interrupt after a frameless call does not run the call again (tracing JIT)
+--EXTENSIONS--
+opcache
+zend_test
+--INI--
+opcache.enable=1
+opcache.enable_cli=1
+opcache.jit=tracing
+opcache.jit_buffer_size=32M
+zend_test.observer.enabled=1
+zend_test.observer.show_output=0
+zend_test.observer.observe_function_names=str_contains
+zend_test.observer.set_vm_interrupt_on_begin=1
+--FILE--
+
+--EXPECT--
+int(813)
+int(813)
diff -Nru php8.4-8.4.26/ext/opcache/tests/jit/frameless_interrupt_003.phpt php8.4-8.4.27/ext/opcache/tests/jit/frameless_interrupt_003.phpt
--- php8.4-8.4.26/ext/opcache/tests/jit/frameless_interrupt_003.phpt 1970-01-01 00:00:00.000000000 +0000
+++ php8.4-8.4.27/ext/opcache/tests/jit/frameless_interrupt_003.phpt 2026-10-19 14:38:59.000000000 +0000
@@ -0,0 +1,31 @@
+--TEST--
+Properly deoptimize trace before frameless call interrupt
+--EXTENSIONS--
+opcache
+zend_test
+--INI--
+opcache.enable=1
+opcache.enable_cli=1
+opcache.jit=tracing
+opcache.jit_buffer_size=32M
+zend_test.observer.enabled=1
+zend_test.observer.show_output=0
+zend_test.observer.observe_function_names=str_contains
+zend_test.observer.set_vm_interrupt_on_begin_without_callback=1
+--FILE--
+
+--EXPECT--
+int(4498500)
+int(4498500)
diff -Nru php8.4-8.4.26/ext/opcache/tests/jit/gh23693.phpt php8.4-8.4.27/ext/opcache/tests/jit/gh23693.phpt
--- php8.4-8.4.26/ext/opcache/tests/jit/gh23693.phpt 1970-01-01 00:00:00.000000000 +0000
+++ php8.4-8.4.27/ext/opcache/tests/jit/gh23693.phpt 2026-10-19 14:38:59.000000000 +0000
@@ -0,0 +1,41 @@
+--TEST--
+GH-23693: Tracing JIT reads stale flags for a guard on a hoisted addition
+--INI--
+opcache.enable=1
+opcache.enable_cli=1
+opcache.jit_buffer_size=64M
+opcache.jit=tracing
+opcache.jit_hot_func=1
+--EXTENSIONS--
+opcache
+--FILE--
+> 2;
+ $s = 0;
+ for ($dy = -1; $dy <= 1; ++$dy) {
+ for ($i = 0; $i < $n; ++$i) {
+ $ny = $y + $dy;
+ if ($ny < 0) {
+ continue;
+ }
+ if ($ny >= 4) {
+ continue;
+ }
+ $s += ($ny << 2) | ($i & 3);
+ }
+ }
+ return $s;
+}
+for ($k = 0; $k < 30; ++$k) {
+ f(16, 200);
+}
+var_dump(f(16, 200));
+var_dump(f(0, 200));
+?>
+--EXPECT--
+int(2700)
+int(1400)
diff -Nru php8.4-8.4.26/ext/opcache/tests/jit/gh23991.phpt php8.4-8.4.27/ext/opcache/tests/jit/gh23991.phpt
--- php8.4-8.4.26/ext/opcache/tests/jit/gh23991.phpt 1970-01-01 00:00:00.000000000 +0000
+++ php8.4-8.4.27/ext/opcache/tests/jit/gh23991.phpt 2026-10-19 14:38:59.000000000 +0000
@@ -0,0 +1,36 @@
+--TEST--
+GH-23991 (JIT generates invalid IR for multiple recursive calls converted into loop)
+--INI--
+opcache.enable=1
+opcache.enable_cli=1
+opcache.jit_buffer_size=64M
+opcache.jit=1235
+opcache.jit_hot_func=1
+--EXTENSIONS--
+opcache
+--FILE--
+ $v) {
+ $value[$k] = f($v, $recurse, $param);
+ }
+ }
+ foreach ($value as $k => $v) {
+ if ($undef) {
+ $value[$k] = f($v, $recurse, $param);
+ }
+ }
+ }
+ return $value;
+}
+var_dump(f([[]], true));
+?>
+--EXPECTF--
+Warning: Undefined variable $undef in %s on line %d
+array(1) {
+ [0]=>
+ array(0) {
+ }
+}
diff -Nru php8.4-8.4.26/ext/opcache/tests/opt/call_graph_stack_overflow.phpt php8.4-8.4.27/ext/opcache/tests/opt/call_graph_stack_overflow.phpt
--- php8.4-8.4.26/ext/opcache/tests/opt/call_graph_stack_overflow.phpt 1970-01-01 00:00:00.000000000 +0000
+++ php8.4-8.4.27/ext/opcache/tests/opt/call_graph_stack_overflow.phpt 2026-10-19 14:38:59.000000000 +0000
@@ -0,0 +1,17 @@
+--TEST--
+zend_analyze_calls(): call_stack overflow when dead code elimination removed the DO_FCALLs
+--EXTENSIONS--
+opcache
+--INI--
+opcache.enable=1
+opcache.enable_cli=1
+opcache.optimization_level=0x7FFEBFFF
+--FILE--
+ 2 }))));
+}
+echo "OK\n";
+?>
+--EXPECT--
+OK
diff -Nru php8.4-8.4.26/ext/opcache/tests/opt/dce_015.phpt php8.4-8.4.27/ext/opcache/tests/opt/dce_015.phpt
--- php8.4-8.4.26/ext/opcache/tests/opt/dce_015.phpt 1970-01-01 00:00:00.000000000 +0000
+++ php8.4-8.4.27/ext/opcache/tests/opt/dce_015.phpt 2026-10-19 14:38:59.000000000 +0000
@@ -0,0 +1,45 @@
+--TEST--
+DCE must not remove assignments to properties of an object holding a reference
+--INI--
+opcache.enable=1
+opcache.enable_cli=1
+opcache.optimization_level=-1
+opcache.file_update_protection=0
+--EXTENSIONS--
+opcache
+--FILE--
+untyped = &$t->untyped;
+ $h->untyped = 5;
+ var_dump($t->untyped);
+}
+
+function typed() {
+ $h = new Holder;
+ $t = new Target;
+ $h->typed = &$t->typed;
+ $h->typed = 5;
+ var_dump($t->typed);
+}
+
+untyped();
+typed();
+
+?>
+--EXPECT--
+int(5)
+int(5)
diff -Nru php8.4-8.4.26/ext/opcache/tests/opt/dce_016.phpt php8.4-8.4.27/ext/opcache/tests/opt/dce_016.phpt
--- php8.4-8.4.26/ext/opcache/tests/opt/dce_016.phpt 1970-01-01 00:00:00.000000000 +0000
+++ php8.4-8.4.27/ext/opcache/tests/opt/dce_016.phpt 2026-10-19 14:38:59.000000000 +0000
@@ -0,0 +1,50 @@
+--TEST--
+DCE must not remove assignments to properties of an object escaping through __isset
+--INI--
+opcache.enable=1
+opcache.enable_cli=1
+opcache.optimization_level=-1
+opcache.file_update_protection=0
+--EXTENSIONS--
+opcache
+--FILE--
+foo);
+ $o->x = 42;
+}
+
+f();
+var_dump($g->x);
+
+#[AllowDynamicProperties]
+class F {
+ function __isset($n) {
+ $this->x = 2;
+ return true;
+ }
+}
+
+function i() {
+ $o = new F;
+ $o->x = 1;
+ isset($o->foo);
+ var_dump($o->x);
+}
+i();
+
+?>
+--EXPECT--
+int(42)
+int(2)
diff -Nru php8.4-8.4.26/ext/opcache/tests/opt/dce_017.phpt php8.4-8.4.27/ext/opcache/tests/opt/dce_017.phpt
--- php8.4-8.4.26/ext/opcache/tests/opt/dce_017.phpt 1970-01-01 00:00:00.000000000 +0000
+++ php8.4-8.4.27/ext/opcache/tests/opt/dce_017.phpt 2026-10-19 14:38:59.000000000 +0000
@@ -0,0 +1,55 @@
+--TEST--
+DCE must not remove assignments to properties of an object escaping through a property hook
+--INI--
+opcache.enable=1
+opcache.enable_cli=1
+opcache.optimization_level=-1
+opcache.file_update_protection=0
+--EXTENSIONS--
+opcache
+--FILE--
+h;
+ $o->x = 42;
+}
+
+g();
+var_dump($g->x);
+
+class E {
+ public $x = 0;
+ public $h {
+ set {
+ global $g;
+ $g = $this;
+ }
+ }
+}
+
+function h() {
+ $o = new E;
+ $o->h = 1;
+ $o->x = 42;
+}
+
+h();
+var_dump($g->x);
+
+?>
+--EXPECT--
+int(42)
+int(42)
diff -Nru php8.4-8.4.26/ext/opcache/tests/opt/gh24063.phpt php8.4-8.4.27/ext/opcache/tests/opt/gh24063.phpt
--- php8.4-8.4.26/ext/opcache/tests/opt/gh24063.phpt 1970-01-01 00:00:00.000000000 +0000
+++ php8.4-8.4.27/ext/opcache/tests/opt/gh24063.phpt 2026-10-19 14:38:59.000000000 +0000
@@ -0,0 +1,46 @@
+--TEST--
+GH-24063 (SCCP merges 0.0 and -0.0 into a single constant)
+--EXTENSIONS--
+opcache
+--INI--
+opcache.enable=1
+opcache.enable_cli=1
+opcache.optimization_level=-1
+--FILE--
+ $x];
+ if ($n < 0) {
+ $a['k'] = -0.0;
+ } else {
+ $a['k'] = 0.0;
+ }
+ return $a['k'];
+}
+
+var_dump(scalar(1.0), scalar(-1.0));
+var_dump(arr(1.0)[0], arr(-1.0)[0]);
+var_dump(partial(1.0, 1), partial(-1.0, 1));
+
+?>
+--EXPECT--
+float(0)
+float(-0)
+float(0)
+float(-0)
+float(0)
+float(-0)
diff -Nru php8.4-8.4.26/ext/opcache/tests/opt/oss_fuzz_546798343.phpt php8.4-8.4.27/ext/opcache/tests/opt/oss_fuzz_546798343.phpt
--- php8.4-8.4.26/ext/opcache/tests/opt/oss_fuzz_546798343.phpt 1970-01-01 00:00:00.000000000 +0000
+++ php8.4-8.4.27/ext/opcache/tests/opt/oss_fuzz_546798343.phpt 2026-10-19 14:38:59.000000000 +0000
@@ -0,0 +1,19 @@
+--TEST--
+OSS-Fuzz #546798343 (Heap-buffer-overflow in zend_delete_call_instructions with callable conversion)
+--EXTENSIONS--
+opcache
+--INI--
+opcache.enable=1
+opcache.enable_cli=1
+--FILE--
+
+--EXPECT--
+Done
diff -Nru php8.4-8.4.26/ext/opcache/tests/opt/sccp_isset_dim_partial_object.phpt php8.4-8.4.27/ext/opcache/tests/opt/sccp_isset_dim_partial_object.phpt
--- php8.4-8.4.26/ext/opcache/tests/opt/sccp_isset_dim_partial_object.phpt 1970-01-01 00:00:00.000000000 +0000
+++ php8.4-8.4.27/ext/opcache/tests/opt/sccp_isset_dim_partial_object.phpt 2026-10-19 14:38:59.000000000 +0000
@@ -0,0 +1,36 @@
+--TEST--
+SCCP: isset()/empty() on dimension of non-escaping object must not be evaluated
+--INI--
+opcache.enable=1
+opcache.enable_cli=1
+opcache.optimization_level=-1
+--EXTENSIONS--
+opcache
+--FILE--
+getMessage(), "\n";
+}
+try {
+ var_dump(g());
+} catch (Error $e) {
+ echo $e->getMessage(), "\n";
+}
+?>
+--EXPECT--
+Cannot use object of type P as array
+Cannot use object of type P as array
diff -Nru php8.4-8.4.26/ext/opcache/zend_file_cache.c php8.4-8.4.27/ext/opcache/zend_file_cache.c
--- php8.4-8.4.26/ext/opcache/zend_file_cache.c 2026-09-22 15:00:02.000000000 +0000
+++ php8.4-8.4.27/ext/opcache/zend_file_cache.c 2026-10-19 14:38:59.000000000 +0000
@@ -1837,6 +1837,7 @@
bool cache_it = true;
unsigned int actual_checksum;
bool ok;
+ size_t orig_map_ptr_last = 0;
if (!full_path) {
return NULL;
@@ -1966,6 +1967,8 @@
}
memcpy(buf, mem, info.mem_size);
zend_map_ptr_extend(ZCSG(map_ptr_last));
+ orig_map_ptr_last = CG(map_ptr_last);
+ zend_accel_pending_ce_cache_begin();
} else {
use_process_mem:
buf = mem;
@@ -1984,6 +1987,10 @@
} zend_end_try();
if (!ok) {
if (cache_it) {
+ /* The slots allocated by the failed unserialization are referenced
+ * only by the abandoned buffer, so they can be reclaimed. */
+ zend_accel_pending_ce_cache_discard();
+ CG(map_ptr_last) = orig_map_ptr_last;
zend_shared_alloc_unlock();
goto use_process_mem;
} else {
@@ -1997,6 +2004,7 @@
if (cache_it) {
ZCSG(map_ptr_last) = CG(map_ptr_last);
+ zend_accel_pending_ce_cache_commit();
script->dynamic_members.last_used = ZCG(request_time);
zend_accel_hash_update(&ZCSG(hash), script->script.filename, 0, script);
diff -Nru php8.4-8.4.26/ext/opcache/zend_persist.c php8.4-8.4.27/ext/opcache/zend_persist.c
--- php8.4-8.4.26/ext/opcache/zend_persist.c 2026-09-22 15:00:02.000000000 +0000
+++ php8.4-8.4.27/ext/opcache/zend_persist.c 2026-10-19 14:38:59.000000000 +0000
@@ -314,31 +314,78 @@
return ptr;
}
-uint32_t zend_accel_get_class_name_map_ptr(zend_string *type_name)
+/* We delay the publishing of CE cache slots until after ZCSG(map_ptr_last) is
+ * published.
+ * CE cache slots stored in interned strings are immediately visible to other
+ * processes, so if we fail to update ZCSG(map_ptr_last) after publishing a
+ * slot (due to a bailout/exit), that slot may be re-allocated for something
+ * else by other processes. */
+void zend_accel_pending_ce_cache_begin(void)
+{
+ ZEND_ASSERT(ZCG(locked));
+
+ /* A persist window left through a bailout caught by the caller (e.g.
+ * opcache_compile_file()) never published its slots. Drop them. */
+ zend_accel_pending_ce_cache_discard();
+
+ ZCG(pending_ce_cache) = emalloc(sizeof(HashTable));
+ zend_hash_init(ZCG(pending_ce_cache), 8, NULL, NULL, 0);
+}
+
+void zend_accel_pending_ce_cache_commit(void)
+{
+ ZEND_ASSERT(ZCG(pending_ce_cache));
+ /* Every pending slot must be covered by ZCSG(map_ptr_last) */
+ ZEND_ASSERT(ZCSG(map_ptr_last) == CG(map_ptr_last));
+
+ ZEND_HASH_FOREACH_NUM_KEY_VAL(ZCG(pending_ce_cache), zend_ulong h, zval *zv) {
+ zend_string *type_name = (zend_string*)(uintptr_t)h;
+
+ ZEND_ASSERT(!ZSTR_HAS_CE_CACHE(type_name));
+ GC_SET_REFCOUNT(type_name, (uint32_t)Z_LVAL_P(zv));
+ GC_ADD_FLAGS(type_name, IS_STR_CLASS_NAME_MAP_PTR);
+ } ZEND_HASH_FOREACH_END();
+
+ zend_accel_pending_ce_cache_discard();
+}
+
+void zend_accel_pending_ce_cache_discard(void)
+{
+ if (ZCG(pending_ce_cache)) {
+ zend_hash_destroy(ZCG(pending_ce_cache));
+ efree(ZCG(pending_ce_cache));
+ ZCG(pending_ce_cache) = NULL;
+ }
+}
+
+void zend_accel_get_class_name_map_ptr(zend_string *type_name)
{
uint32_t ret;
+ zval *slot;
if (zend_string_equals_literal_ci(type_name, "self") ||
zend_string_equals_literal_ci(type_name, "parent")) {
- return 0;
+ return;
}
/* We use type.name.gc.refcount to keep map_ptr of corresponding type */
if (ZSTR_HAS_CE_CACHE(type_name)) {
- return GC_REFCOUNT(type_name);
+ return;
}
if ((GC_FLAGS(type_name) & GC_IMMUTABLE)
&& (GC_FLAGS(type_name) & IS_STR_PERMANENT)) {
+ ZEND_ASSERT(ZCG(pending_ce_cache) && "Must be called inside a persist window");
+ slot = zend_hash_index_lookup(ZCG(pending_ce_cache), (zend_ulong)(uintptr_t)type_name);
+ if (Z_TYPE_P(slot) != IS_NULL) {
+ /* Already allocated earlier in this window */
+ return;
+ }
do {
ret = ZEND_MAP_PTR_NEW_OFFSET();
} while (ret <= 2);
- GC_SET_REFCOUNT(type_name, ret);
- GC_ADD_FLAGS(type_name, IS_STR_CLASS_NAME_MAP_PTR);
- return ret;
+ ZVAL_LONG(slot, ret);
}
-
- return 0;
}
static void zend_persist_type(zend_type *type) {
@@ -1429,6 +1476,9 @@
#endif
zend_map_ptr_extend(ZCSG(map_ptr_last));
+ if (for_shm) {
+ zend_accel_pending_ce_cache_begin();
+ }
zend_accel_persist_class_table(&script->script.class_table);
zend_hash_persist(&script->script.function_table);
@@ -1456,6 +1506,7 @@
if (for_shm) {
ZCSG(map_ptr_last) = CG(map_ptr_last);
ZCSG(map_ptr_static_last) = zend_map_ptr_static_last;
+ zend_accel_pending_ce_cache_commit();
}
#ifdef HAVE_JIT
diff -Nru php8.4-8.4.26/ext/openssl/tests/stream_crypto_enable_timeout_blocking.phpt php8.4-8.4.27/ext/openssl/tests/stream_crypto_enable_timeout_blocking.phpt
--- php8.4-8.4.26/ext/openssl/tests/stream_crypto_enable_timeout_blocking.phpt 1970-01-01 00:00:00.000000000 +0000
+++ php8.4-8.4.27/ext/openssl/tests/stream_crypto_enable_timeout_blocking.phpt 2026-10-19 14:38:59.000000000 +0000
@@ -0,0 +1,53 @@
+--TEST--
+OpenSSL handshake timeout restores the stream blocking mode
+--EXTENSIONS--
+openssl
+--SKIPIF--
+
+--FILE--
+ [
+ 'verify_peer' => false,
+ 'verify_peer_name' => false,
+ ]]);
+ $client = stream_socket_client('tcp://{{ ADDR }}', $errno, $errstr, 1, STREAM_CLIENT_CONNECT, $context);
+
+ $metadata = stream_get_meta_data($client);
+ var_dump($metadata['blocked']);
+
+ set_error_handler(function (int $errno, string $errstr) use ($client): bool {
+ $metadata = stream_get_meta_data($client);
+ var_dump($metadata['blocked']);
+ echo $errstr, "\n";
+ fclose($client);
+ return true;
+ });
+
+ var_dump(stream_socket_enable_crypto($client, true, STREAM_CRYPTO_METHOD_TLS_CLIENT));
+ restore_error_handler();
+ var_dump(is_resource($client));
+
+ phpt_notify();
+CODE;
+
+include 'ServerClientTestCase.inc';
+ServerClientTestCase::getInstance()->run($clientCode, $serverCode);
+?>
+--EXPECT--
+bool(true)
+bool(true)
+stream_socket_enable_crypto(): SSL: Handshake timed out
+bool(false)
+bool(false)
diff -Nru php8.4-8.4.26/ext/openssl/tests/stream_eof_after_close_notify.phpt php8.4-8.4.27/ext/openssl/tests/stream_eof_after_close_notify.phpt
--- php8.4-8.4.26/ext/openssl/tests/stream_eof_after_close_notify.phpt 1970-01-01 00:00:00.000000000 +0000
+++ php8.4-8.4.27/ext/openssl/tests/stream_eof_after_close_notify.phpt 2026-10-19 14:38:59.000000000 +0000
@@ -0,0 +1,58 @@
+--TEST--
+feof() is true after a TLS close_notify even if an earlier read left errno set to EAGAIN
+--EXTENSIONS--
+openssl
+--SKIPIF--
+
+--FILE--
+ ['local_cert' => '%s']]);
+ $sock = stream_socket_server("tls://127.0.0.1:0", $errno, $errstr,
+ STREAM_SERVER_BIND | STREAM_SERVER_LISTEN, $serverCtx);
+ phpt_notify_server_start($sock);
+
+ $link = stream_socket_accept($sock);
+ /* Let the client block in fread() first, so its SSL_read() sees WANT_READ */
+ phpt_wait();
+ usleep(100000);
+ fwrite($link, "data");
+ /* close_notify only, the TCP connection stays open */
+ stream_socket_enable_crypto($link, false);
+ phpt_wait();
+ fclose($link);
+CODE;
+$serverCode = sprintf($serverCode, $certFile);
+
+$clientCode = <<<'CODE'
+ $clientCtx = stream_context_create(['ssl' => [
+ 'verify_peer' => false,
+ 'verify_peer_name' => false,
+ ]]);
+ $sock = stream_socket_client("tls://{{ ADDR }}", $errno, $errstr, 2, STREAM_CLIENT_CONNECT, $clientCtx);
+
+ phpt_notify();
+ var_dump(fread($sock, 4));
+ var_dump(fread($sock, 4));
+ var_dump(feof($sock));
+ phpt_notify();
+CODE;
+
+include 'CertificateGenerator.inc';
+(new CertificateGenerator())->saveNewCertAsFileWithKey('stream_eof_after_close_notify', $certFile);
+
+include 'ServerClientTestCase.inc';
+ServerClientTestCase::getInstance()->run($clientCode, $serverCode);
+?>
+--CLEAN--
+
+--EXPECT--
+string(4) "data"
+string(0) ""
+bool(true)
diff -Nru php8.4-8.4.26/ext/openssl/xp_ssl.c php8.4-8.4.27/ext/openssl/xp_ssl.c
--- php8.4-8.4.26/ext/openssl/xp_ssl.c 2026-09-22 15:00:02.000000000 +0000
+++ php8.4-8.4.27/ext/openssl/xp_ssl.c 2026-10-19 14:38:59.000000000 +0000
@@ -2004,6 +2004,7 @@
elapsed_time = php_openssl_subtract_timeval(cur_time, start_time);
if (php_openssl_compare_timeval( elapsed_time, *timeout) > 0) {
+ php_openssl_set_blocking(sslsock, blocked);
php_error_docref(NULL, E_WARNING, "SSL: Handshake timed out");
return -1;
}
@@ -2185,9 +2186,11 @@
retry = 1;
}
- /* Also, on reads, we may get this condition on an EOF. We should check properly. */
if (read) {
- stream->eof = (retry == 0 && errno != EAGAIN && !SSL_pending(sslsock->ssl_handle));
+ /* EOF unless the SSL layer just needs to wait. */
+ stream->eof = (retry == 0
+ && err != SSL_ERROR_WANT_READ && err != SSL_ERROR_WANT_WRITE
+ && !SSL_pending(sslsock->ssl_handle));
}
/* Don't loop indefinitely in non-blocking mode if no data is available */
diff -Nru php8.4-8.4.26/ext/pcntl/pcntl.c php8.4-8.4.27/ext/pcntl/pcntl.c
--- php8.4-8.4.26/ext/pcntl/pcntl.c 2026-09-22 15:00:02.000000000 +0000
+++ php8.4-8.4.27/ext/pcntl/pcntl.c 2026-10-19 14:38:59.000000000 +0000
@@ -29,8 +29,10 @@
#include "php.h"
#include "ext/standard/info.h"
+#include "ext/standard/php_filestat.h"
#include "php_signal.h"
#include "php_ticks.h"
+#include "zend_exceptions.h"
#include "zend_fibers.h"
#if defined(HAVE_GETPRIORITY) || defined(HAVE_SETPRIORITY) || defined(HAVE_WAIT3)
@@ -293,6 +295,7 @@
}
} else if (id == 0) {
zend_max_execution_timer_init();
+ php_clear_stat_cache(true, NULL, 0);
}
RETURN_LONG((zend_long) id);
@@ -1318,6 +1321,9 @@
{
zval params[2], *handle, retval;
struct php_pcntl_pending_signal *queue, *next;
+ zend_object *old_exception;
+ const zend_op *old_opline_before_exception = NULL;
+ const zend_op *old_opline = NULL;
sigset_t mask;
sigset_t old_mask;
@@ -1345,8 +1351,24 @@
PCNTL_G(head) = NULL; /* simple stores are atomic */
PCNTL_G(tail) = NULL;
+ /* Dispatching can happen with an exception pending, e.g. from the interrupt check that runs
+ * right after an internal function threw. call_user_function() does nothing in that state,
+ * so set the exception aside while the handlers run. The frame is left as found: depending
+ * on the caller, the exception may not be registered on it yet, or may already be on its
+ * way to a catch block, and the caller takes it from there once we return. */
+ old_exception = EG(exception);
+ if (old_exception) {
+ if (EG(current_execute_data)) {
+ old_opline = EG(current_execute_data)->opline;
+ }
+ old_opline_before_exception = EG(opline_before_exception);
+ EG(exception) = NULL;
+ }
+
/* Allocate */
while (queue) {
+ bool handler_threw = false;
+
if ((handle = zend_hash_index_find(&PCNTL_G(php_signal_table), queue->signo)) != NULL) {
if (Z_TYPE_P(handle) != IS_LONG) {
ZVAL_NULL(&retval);
@@ -1365,9 +1387,7 @@
#ifdef HAVE_STRUCT_SIGINFO_T
zval_ptr_dtor(¶ms[1]);
#endif
- if (EG(exception)) {
- break;
- }
+ handler_threw = NULL != EG(exception);
}
}
@@ -1375,17 +1395,44 @@
queue->next = PCNTL_G(spares);
PCNTL_G(spares) = queue;
queue = next;
+
+ /* No other handler can be called while the exception propagates */
+ if (handler_threw) {
+ break;
+ }
}
- /* drain the remaining in case of exception thrown */
- while (queue) {
- next = queue->next;
- queue->next = PCNTL_G(spares);
- PCNTL_G(spares) = queue;
- queue = next;
+ if (old_exception) {
+ if (EG(current_execute_data)) {
+ EG(current_execute_data)->opline = old_opline;
+ }
+ EG(opline_before_exception) = old_opline_before_exception;
+ if (EG(exception)) {
+ zend_exception_set_previous(EG(exception), old_exception);
+ } else {
+ EG(exception) = old_exception;
+ }
}
- PCNTL_G(pending_signals) = 0;
+ if (UNEXPECTED(queue)) {
+ /* Put back what the throwing handler did not get to, instead of dropping it, and ask
+ * the engine to come back once the exception has been handled. Signals are still
+ * blocked here, so PCNTL_G(head) cannot have been repopulated in the meantime. */
+ next = queue;
+
+ while (next->next) {
+ next = next->next;
+ }
+
+ PCNTL_G(head) = queue;
+ PCNTL_G(tail) = next;
+
+ if (PCNTL_G(async_signals)) {
+ zend_atomic_bool_store_ex(&EG(vm_interrupt), true);
+ }
+ } else {
+ PCNTL_G(pending_signals) = 0;
+ }
/* Re-enable queue */
PCNTL_G(processing_signal_queue) = 0;
@@ -1528,6 +1575,7 @@
}
} else if (pid == 0) {
zend_max_execution_timer_init();
+ php_clear_stat_cache(true, NULL, 0);
}
RETURN_LONG((zend_long) pid);
@@ -1573,6 +1621,7 @@
}
} else if (pid == 0) {
zend_max_execution_timer_init();
+ php_clear_stat_cache(true, NULL, 0);
}
RETURN_LONG((zend_long) pid);
@@ -1746,7 +1795,7 @@
}
if (cpu < 0 || cpu >= maxcpus) {
- zend_argument_value_error(2, "cpu id must be between 0 and " ZEND_ULONG_FMT " (" ZEND_LONG_FMT ")", maxcpus, cpu);
+ zend_argument_value_error(2, "cpu id must be between 0 and " ZEND_LONG_FMT " (" ZEND_LONG_FMT ")", maxcpus - 1, cpu);
PCNTL_CPU_DESTROY(mask);
RETURN_THROWS();
}
@@ -1853,13 +1902,14 @@
PHP_FUNCTION(pcntl_setqos_class)
{
- zval *qos_obj;
+ zval *qos_obj = NULL;
- ZEND_PARSE_PARAMETERS_START(1, 1)
+ ZEND_PARSE_PARAMETERS_START(0, 1)
+ Z_PARAM_OPTIONAL
Z_PARAM_OBJECT_OF_CLASS(qos_obj, QosClass_ce)
ZEND_PARSE_PARAMETERS_END();
- qos_class_t qos_class = qos_zval_to_lval(qos_obj);
+ qos_class_t qos_class = qos_obj ? qos_zval_to_lval(qos_obj) : QOS_CLASS_DEFAULT;
if (UNEXPECTED(pthread_set_qos_class_self_np((qos_class_t)qos_class, 0) != 0))
{
diff -Nru php8.4-8.4.26/ext/pcntl/tests/gh23986.phpt php8.4-8.4.27/ext/pcntl/tests/gh23986.phpt
--- php8.4-8.4.26/ext/pcntl/tests/gh23986.phpt 1970-01-01 00:00:00.000000000 +0000
+++ php8.4-8.4.27/ext/pcntl/tests/gh23986.phpt 2026-10-19 14:38:59.000000000 +0000
@@ -0,0 +1,29 @@
+--TEST--
+GH-23986 (/proc/self paths resolve to the parent process after pcntl_fork())
+--EXTENSIONS--
+pcntl
+--SKIPIF--
+
+--FILE--
+
+--EXPECT--
+bool(true)
+bool(true)
+bool(true)
diff -Nru php8.4-8.4.26/ext/pcntl/tests/pcntl_cpuaffinity_bound.phpt php8.4-8.4.27/ext/pcntl/tests/pcntl_cpuaffinity_bound.phpt
--- php8.4-8.4.26/ext/pcntl/tests/pcntl_cpuaffinity_bound.phpt 1970-01-01 00:00:00.000000000 +0000
+++ php8.4-8.4.27/ext/pcntl/tests/pcntl_cpuaffinity_bound.phpt 2026-10-19 14:38:59.000000000 +0000
@@ -0,0 +1,52 @@
+--TEST--
+pcntl_setcpuaffinity(): the upper bound the error advertises is itself a valid cpu id
+--EXTENSIONS--
+pcntl
+--SKIPIF--
+
+--FILE--
+getMessage(), $m)) {
+ exit("unexpected message: " . $e->getMessage() . PHP_EOL);
+ }
+}
+$bound = (int) $m[1];
+
+/* Every id is range checked before any syscall runs, so pairing the advertised
+ bound with an out of range id shows which of the two the check rejects,
+ without ever changing the process affinity. */
+try {
+ pcntl_setcpuaffinity($pid, [$bound, PHP_INT_MAX]);
+} catch (Throwable $e) {
+ echo $e::class, "\n";
+ var_dump($e->getMessage() === $prefix . $bound . ' (' . PHP_INT_MAX . ')');
+}
+
+/* and the first id past the bound is rejected, naming itself */
+try {
+ pcntl_setcpuaffinity($pid, [$bound + 1]);
+} catch (Throwable $e) {
+ echo $e::class, "\n";
+ var_dump($e->getMessage() === $prefix . $bound . ' (' . ($bound + 1) . ')');
+}
+?>
+--EXPECT--
+ValueError
+ValueError
+bool(true)
+ValueError
+bool(true)
diff -Nru php8.4-8.4.26/ext/pcntl/tests/pcntl_qosclass.phpt php8.4-8.4.27/ext/pcntl/tests/pcntl_qosclass.phpt
--- php8.4-8.4.26/ext/pcntl/tests/pcntl_qosclass.phpt 2026-09-22 15:00:02.000000000 +0000
+++ php8.4-8.4.27/ext/pcntl/tests/pcntl_qosclass.phpt 2026-10-19 14:38:59.000000000 +0000
@@ -13,7 +13,12 @@
var_dump(Pcntl\QosClass::Default === pcntl_getqos_class());
pcntl_setqos_class(Pcntl\QosClass::Background);
var_dump(Pcntl\QosClass::Background == pcntl_getqos_class());
+
+/* the parameter is optional, and omitting it applies the declared default */
+pcntl_setqos_class();
+var_dump(Pcntl\QosClass::Default === pcntl_getqos_class());
?>
--EXPECT--
bool(true)
bool(true)
+bool(true)
diff -Nru php8.4-8.4.26/ext/pcntl/tests/pcntl_signal_dispatch_exception_2.phpt php8.4-8.4.27/ext/pcntl/tests/pcntl_signal_dispatch_exception_2.phpt
--- php8.4-8.4.26/ext/pcntl/tests/pcntl_signal_dispatch_exception_2.phpt 1970-01-01 00:00:00.000000000 +0000
+++ php8.4-8.4.27/ext/pcntl/tests/pcntl_signal_dispatch_exception_2.phpt 2026-10-19 14:38:59.000000000 +0000
@@ -0,0 +1,44 @@
+--TEST--
+pcntl_signal_dispatch() keeps the signals left in the queue by a throwing handler
+--EXTENSIONS--
+pcntl
+posix
+--FILE--
+getMessage() . "\n";
+}
+
+echo "Handlers called: " . implode(', ', $called) . "\n";
+
+pcntl_signal_dispatch();
+
+echo "Handlers called: " . implode(', ', $called) . "\n";
+
+?>
+--EXPECT--
+Exception in signal handler
+Handlers called: SIGUSR1
+Handlers called: SIGUSR1, SIGUSR2, SIGHUP
diff -Nru php8.4-8.4.26/ext/pcntl/tests/pcntl_signal_dispatch_exception_3.phpt php8.4-8.4.27/ext/pcntl/tests/pcntl_signal_dispatch_exception_3.phpt
--- php8.4-8.4.26/ext/pcntl/tests/pcntl_signal_dispatch_exception_3.phpt 1970-01-01 00:00:00.000000000 +0000
+++ php8.4-8.4.27/ext/pcntl/tests/pcntl_signal_dispatch_exception_3.phpt 2026-10-19 14:38:59.000000000 +0000
@@ -0,0 +1,47 @@
+--TEST--
+pcntl_signal_dispatch() delivers the signals a throwing handler left behind once its exception is handled
+--EXTENSIONS--
+pcntl
+posix
+--FILE--
+getMessage() . "\n";
+}
+
+// No explicit dispatch: the engine delivers what the throwing handler left behind
+// on its own, as soon as the exception has been handled
+usleep(1000);
+
+echo "Handlers called: " . implode(', ', $called) . "\n";
+
+?>
+--EXPECT--
+Exception in signal handler
+Handlers called: SIGUSR1, SIGUSR2, SIGHUP
diff -Nru php8.4-8.4.26/ext/pcntl/tests/pcntl_signal_dispatch_exception_pending.phpt php8.4-8.4.27/ext/pcntl/tests/pcntl_signal_dispatch_exception_pending.phpt
--- php8.4-8.4.26/ext/pcntl/tests/pcntl_signal_dispatch_exception_pending.phpt 1970-01-01 00:00:00.000000000 +0000
+++ php8.4-8.4.27/ext/pcntl/tests/pcntl_signal_dispatch_exception_pending.phpt 2026-10-19 14:38:59.000000000 +0000
@@ -0,0 +1,24 @@
+--TEST--
+pcntl_signal_dispatch() runs the handlers of the signals raised while an internal function ran and then threw
+--EXTENSIONS--
+pcntl
+zend_test
+--FILE--
+getMessage(), "\n";
+}
+
+?>
+--EXPECT--
+Handler called
+Exception after raise()
diff -Nru php8.4-8.4.26/ext/pcntl/tests/pcntl_signal_dispatch_exception_pending_user_frame.phpt php8.4-8.4.27/ext/pcntl/tests/pcntl_signal_dispatch_exception_pending_user_frame.phpt
--- php8.4-8.4.26/ext/pcntl/tests/pcntl_signal_dispatch_exception_pending_user_frame.phpt 1970-01-01 00:00:00.000000000 +0000
+++ php8.4-8.4.27/ext/pcntl/tests/pcntl_signal_dispatch_exception_pending_user_frame.phpt 2026-10-19 14:38:59.000000000 +0000
@@ -0,0 +1,33 @@
+--TEST--
+pcntl_signal_dispatch() with an exception pending after an internal function called from a user frame
+--EXTENSIONS--
+pcntl
+zend_test
+--FILE--
+
+--EXPECTF--
+Handler called from test()
+
+Fatal error: Uncaught Exception: Exception after raise() in %s:%d
+Stack trace:
+#0 %s(%d): zend_test_raise_and_throw(%d)
+#1 %s(%d): test()
+#2 {main}
+ thrown in %s on line %d
diff -Nru php8.4-8.4.26/ext/pcre/php_pcre.c php8.4-8.4.27/ext/pcre/php_pcre.c
--- php8.4-8.4.26/ext/pcre/php_pcre.c 2026-09-22 15:00:02.000000000 +0000
+++ php8.4-8.4.27/ext/pcre/php_pcre.c 2026-10-19 14:38:59.000000000 +0000
@@ -191,7 +191,7 @@
static void *php_pcre_emalloc(PCRE2_SIZE size, void *data)
{
- return emalloc(size);
+ return femalloc(size, /* fallible */ true);
}
static void php_pcre_efree(void *block, void *data)
@@ -1040,7 +1040,7 @@
}
/* }}} */
-static void populate_subpat_array(
+static zend_result populate_subpat_array(
zval *subpats, const char *subject, PCRE2_SIZE *offsets, zend_string **subpat_names,
uint32_t num_subpats, int count, const PCRE2_SPTR mark, zend_long flags) {
zend_long offset_capture = flags & PREG_OFFSET_CAPTURE;
@@ -1054,10 +1054,16 @@
add_offset_pair(
subpats_ht, subject, offsets[2*i], offsets[2*i+1],
subpat_names[i], unmatched_as_null);
+ if (ZEND_HAS_OOM()) {
+ return FAILURE;
+ }
}
if (unmatched_as_null) {
for (i = count; i < num_subpats; i++) {
add_offset_pair(subpats_ht, NULL, PCRE2_UNSET, PCRE2_UNSET, subpat_names[i], 1);
+ if (ZEND_HAS_OOM()) {
+ return FAILURE;
+ }
}
}
} else {
@@ -1068,6 +1074,9 @@
add_named(subpats_ht, subpat_names[i], &val, offsets[2*i] == PCRE2_UNSET);
}
zend_hash_next_index_insert_new(subpats_ht, &val);
+ if (ZEND_HAS_OOM()) {
+ return FAILURE;
+ }
}
if (unmatched_as_null) {
for (i = count; i < num_subpats; i++) {
@@ -1076,6 +1085,9 @@
zend_hash_add(subpats_ht, subpat_names[i], &val);
}
zend_hash_next_index_insert_new(subpats_ht, &val);
+ if (ZEND_HAS_OOM()) {
+ return FAILURE;
+ }
}
}
}
@@ -1084,10 +1096,16 @@
for (i = 0; i < count; i++) {
add_offset_pair(
subpats_ht, subject, offsets[2*i], offsets[2*i+1], NULL, unmatched_as_null);
+ if (ZEND_HAS_OOM()) {
+ return FAILURE;
+ }
}
if (unmatched_as_null) {
for (i = count; i < num_subpats; i++) {
add_offset_pair(subpats_ht, NULL, PCRE2_UNSET, PCRE2_UNSET, NULL, 1);
+ if (ZEND_HAS_OOM()) {
+ return FAILURE;
+ }
}
}
} else {
@@ -1095,10 +1113,16 @@
populate_match_value(
&val, subject, offsets[2*i], offsets[2*i+1], unmatched_as_null);
zend_hash_next_index_insert_new(subpats_ht, &val);
+ if (ZEND_HAS_OOM()) {
+ return FAILURE;
+ }
}
if (unmatched_as_null) {
for (i = count; i < num_subpats; i++) {
add_next_index_null(subpats);
+ if (ZEND_HAS_OOM()) {
+ return FAILURE;
+ }
}
}
}
@@ -1107,6 +1131,7 @@
if (mark) {
add_assoc_string_ex(subpats, "MARK", sizeof("MARK") - 1, (char *)mark);
}
+ return ZEND_HAS_OOM() ? FAILURE : SUCCESS;
}
static void php_do_pcre_match(INTERNAL_FUNCTION_PARAMETERS, bool global) /* {{{ */
@@ -1291,6 +1316,10 @@
options, match_data, mctx);
while (1) {
+ if (ZEND_HAS_OOM()) {
+ goto oom;
+ }
+
/* If something has matched */
if (count >= 0) {
/* Check for too many substrings condition. */
@@ -1330,6 +1359,9 @@
add_offset_pair(
match_sets[i], subject, offsets[2*i], offsets[2*i+1],
NULL, unmatched_as_null);
+ if (ZEND_HAS_OOM()) {
+ goto oom;
+ }
}
} else {
for (i = 0; i < count; i++) {
@@ -1337,6 +1369,9 @@
populate_match_value(
&val, subject, offsets[2*i], offsets[2*i+1], unmatched_as_null);
zend_hash_next_index_insert_new(match_sets[i], &val);
+ if (ZEND_HAS_OOM()) {
+ goto oom;
+ }
}
}
mark = pcre2_get_mark(match_data);
@@ -1369,23 +1404,33 @@
ZVAL_EMPTY_STRING(&tmp);
zend_hash_next_index_insert_new(match_sets[i], &tmp);
}
+ if (ZEND_HAS_OOM()) {
+ goto oom;
+ }
}
}
} else {
/* Allocate and populate the result set array */
mark = pcre2_get_mark(match_data);
array_init_size(&result_set, count + (mark ? 1 : 0));
- populate_subpat_array(
+ zend_result result = populate_subpat_array(
&result_set, subject, offsets, subpat_names,
num_subpats, count, mark, flags);
+ if (UNEXPECTED(result == FAILURE)) {
+ zval_ptr_dtor(&result_set);
+ goto oom;
+ }
/* And add it to the output array */
zend_hash_next_index_insert_new(Z_ARRVAL_P(subpats), &result_set);
}
} else { /* single pattern matching */
/* For each subpattern, insert it into the subpatterns array. */
mark = pcre2_get_mark(match_data);
- populate_subpat_array(
+ zend_result result = populate_subpat_array(
subpats, subject, offsets, subpat_names, num_subpats, count, mark, flags);
+ if (UNEXPECTED(result == FAILURE)) {
+ goto oom;
+ }
break;
}
}
@@ -1492,6 +1537,25 @@
} else {
RETVAL_FALSE;
}
+ return;
+
+oom:
+ if (match_data != mdata) {
+ pcre2_match_data_free(match_data);
+ }
+ if (match_sets) {
+ for (i = 0; i < num_subpats; i++) {
+ zend_array_destroy(match_sets[i]);
+ }
+ efree(match_sets);
+ }
+ if (marks) {
+ zend_array_destroy(marks);
+ }
+ if (subpats) {
+ zend_hash_clean(Z_ARRVAL_P(subpats));
+ }
+ RETURN_OOM();
}
/* }}} */
@@ -1580,7 +1644,11 @@
zval arg; /* Argument to pass to function */
array_init_size(&arg, count + (mark ? 1 : 0));
- populate_subpat_array(&arg, subject, offsets, subpat_names, num_subpats, count, mark, flags);
+ zend_result result = populate_subpat_array(&arg, subject, offsets, subpat_names, num_subpats, count, mark, flags);
+ if (UNEXPECTED(result == FAILURE)) {
+ zval_ptr_dtor(&arg);
+ return NULL;
+ }
fci->retval = &retval;
fci->param_count = 1;
@@ -1754,9 +1822,18 @@
if (new_len >= alloc_len) {
alloc_len = zend_safe_address_guarded(2, new_len, ZSTR_MAX_OVERHEAD) - ZSTR_MAX_OVERHEAD;
if (result == NULL) {
- result = zend_string_alloc(alloc_len, 0);
+ result = zend_string_falloc(alloc_len, /* persistent */ false, /* fallible */ true);
+ if (!result) {
+ goto error;
+ }
} else {
- result = zend_string_extend(result, alloc_len, 0);
+ zend_string *extended_result = zend_string_fextend(result, alloc_len, /* persistent */ false, /* fallible */ true);
+ if (!extended_result) {
+ zend_string_release(result);
+ result = NULL;
+ goto error;
+ }
+ result = extended_result;
}
}
@@ -1982,14 +2059,27 @@
fci, fcc, subject, offsets, subpat_names, num_subpats, count,
pcre2_get_mark(match_data), flags);
- ZEND_ASSERT(eval_result);
+ if (UNEXPECTED(!eval_result)) {
+ goto error;
+ }
new_len = zend_safe_address_guarded(1, ZSTR_LEN(eval_result) + ZSTR_MAX_OVERHEAD, new_len) -ZSTR_MAX_OVERHEAD;
if (new_len >= alloc_len) {
alloc_len = zend_safe_address_guarded(2, new_len, ZSTR_MAX_OVERHEAD) - ZSTR_MAX_OVERHEAD;
if (result == NULL) {
- result = zend_string_alloc(alloc_len, 0);
+ result = zend_string_falloc(alloc_len, /* persistent */ false, /* fallible */ true);
+ if (!result) {
+ zend_string_release_ex(eval_result, 0);
+ goto error;
+ }
} else {
- result = zend_string_extend(result, alloc_len, 0);
+ zend_string *extended_result = zend_string_fextend(result, alloc_len, /* persistent */ false, /* fallible */ true);
+ if (!extended_result) {
+ zend_string_release_ex(eval_result, 0);
+ zend_string_release(result);
+ result = NULL;
+ goto error;
+ }
+ result = extended_result;
}
}
@@ -2658,6 +2748,11 @@
options, match_data, mctx);
while (1) {
+ if (ZEND_HAS_OOM()) {
+ PCRE_G(error_code) = PHP_PCRE_INTERNAL_ERROR;
+ break;
+ }
+
/* If something matched */
if (count >= 0) {
/* Check for too many substrings condition. */
diff -Nru php8.4-8.4.26/ext/pcre/tests/oom_preg_filter.phpt php8.4-8.4.27/ext/pcre/tests/oom_preg_filter.phpt
--- php8.4-8.4.26/ext/pcre/tests/oom_preg_filter.phpt 1970-01-01 00:00:00.000000000 +0000
+++ php8.4-8.4.27/ext/pcre/tests/oom_preg_filter.phpt 2026-10-19 14:38:59.000000000 +0000
@@ -0,0 +1,11 @@
+--TEST--
+preg_filter() doesn't reach hard limit
+--INI--
+memory_limit=8M
+--FILE--
+
+--EXPECTF--
+Fatal error: Allowed memory size of 8388608 bytes exhausted %S(tried to allocate %d bytes) in %s on line %d
diff -Nru php8.4-8.4.26/ext/pcre/tests/oom_preg_match_all.phpt php8.4-8.4.27/ext/pcre/tests/oom_preg_match_all.phpt
--- php8.4-8.4.26/ext/pcre/tests/oom_preg_match_all.phpt 1970-01-01 00:00:00.000000000 +0000
+++ php8.4-8.4.27/ext/pcre/tests/oom_preg_match_all.phpt 2026-10-19 14:38:59.000000000 +0000
@@ -0,0 +1,11 @@
+--TEST--
+preg_match_all() doesn't reach hard limit
+--INI--
+memory_limit=8M
+--FILE--
+
+--EXPECTF--
+Fatal error: Allowed memory size of 8388608 bytes exhausted %S(tried to allocate %d bytes) in %s on line %d
diff -Nru php8.4-8.4.26/ext/pcre/tests/oom_preg_match_all_named_groups.phpt php8.4-8.4.27/ext/pcre/tests/oom_preg_match_all_named_groups.phpt
--- php8.4-8.4.26/ext/pcre/tests/oom_preg_match_all_named_groups.phpt 1970-01-01 00:00:00.000000000 +0000
+++ php8.4-8.4.27/ext/pcre/tests/oom_preg_match_all_named_groups.phpt 2026-10-19 14:38:59.000000000 +0000
@@ -0,0 +1,17 @@
+--TEST--
+preg_match_all() with named groups keeps the cached subpattern names on OOM
+--INI--
+memory_limit=16M
+--FILE--
+[a-z])(?\d)/', 'a1b2', $matches);
+ echo json_encode($matches), "\n";
+});
+
+$subject = str_repeat("ab12 ", 400000);
+preg_match_all('/(?[a-z])(?\d)/', $subject, $matches);
+?>
+--EXPECTF--
+Fatal error: Allowed memory size of 16777216 bytes exhausted %S(tried to allocate %d bytes) in %s on line %d
+{"0":["a1","b2"],"l":["a","b"],"1":["a","b"],"d":["1","2"],"2":["1","2"]}
diff -Nru php8.4-8.4.26/ext/pcre/tests/oom_preg_match_captures.phpt php8.4-8.4.27/ext/pcre/tests/oom_preg_match_captures.phpt
--- php8.4-8.4.26/ext/pcre/tests/oom_preg_match_captures.phpt 1970-01-01 00:00:00.000000000 +0000
+++ php8.4-8.4.27/ext/pcre/tests/oom_preg_match_captures.phpt 2026-10-19 14:38:59.000000000 +0000
@@ -0,0 +1,12 @@
+--TEST--
+preg_match() with overlapping captures doesn't reach hard limit
+--INI--
+memory_limit=128M
+--FILE--
+
+--EXPECTF--
+Fatal error: Allowed memory size of 134217728 bytes exhausted %S(tried to allocate %d bytes) in %s on line %d
diff -Nru php8.4-8.4.26/ext/pcre/tests/oom_preg_replace.phpt php8.4-8.4.27/ext/pcre/tests/oom_preg_replace.phpt
--- php8.4-8.4.26/ext/pcre/tests/oom_preg_replace.phpt 1970-01-01 00:00:00.000000000 +0000
+++ php8.4-8.4.27/ext/pcre/tests/oom_preg_replace.phpt 2026-10-19 14:38:59.000000000 +0000
@@ -0,0 +1,11 @@
+--TEST--
+preg_replace() doesn't reach hard limit
+--INI--
+memory_limit=8M
+--FILE--
+
+--EXPECTF--
+Fatal error: Allowed memory size of 8388608 bytes exhausted %S(tried to allocate %d bytes) in %s on line %d
diff -Nru php8.4-8.4.26/ext/pcre/tests/oom_preg_replace_callback.phpt php8.4-8.4.27/ext/pcre/tests/oom_preg_replace_callback.phpt
--- php8.4-8.4.26/ext/pcre/tests/oom_preg_replace_callback.phpt 1970-01-01 00:00:00.000000000 +0000
+++ php8.4-8.4.27/ext/pcre/tests/oom_preg_replace_callback.phpt 2026-10-19 14:38:59.000000000 +0000
@@ -0,0 +1,11 @@
+--TEST--
+preg_replace_callback() doesn't reach hard limit
+--INI--
+memory_limit=8M
+--FILE--
+
+--EXPECTF--
+Fatal error: Allowed memory size of 8388608 bytes exhausted %S(tried to allocate %d bytes) in %s on line %d
diff -Nru php8.4-8.4.26/ext/pcre/tests/oom_preg_replace_callback_array.phpt php8.4-8.4.27/ext/pcre/tests/oom_preg_replace_callback_array.phpt
--- php8.4-8.4.26/ext/pcre/tests/oom_preg_replace_callback_array.phpt 1970-01-01 00:00:00.000000000 +0000
+++ php8.4-8.4.27/ext/pcre/tests/oom_preg_replace_callback_array.phpt 2026-10-19 14:38:59.000000000 +0000
@@ -0,0 +1,11 @@
+--TEST--
+preg_replace_callback_array() doesn't reach hard limit
+--INI--
+memory_limit=8M
+--FILE--
+ function () use ($subject) { return $subject; }], $subject);
+?>
+--EXPECTF--
+Fatal error: Allowed memory size of 8388608 bytes exhausted %S(tried to allocate %d bytes) in %s on line %d
diff -Nru php8.4-8.4.26/ext/pcre/tests/oom_preg_split.phpt php8.4-8.4.27/ext/pcre/tests/oom_preg_split.phpt
--- php8.4-8.4.26/ext/pcre/tests/oom_preg_split.phpt 1970-01-01 00:00:00.000000000 +0000
+++ php8.4-8.4.27/ext/pcre/tests/oom_preg_split.phpt 2026-10-19 14:38:59.000000000 +0000
@@ -0,0 +1,11 @@
+--TEST--
+preg_split() doesn't reach hard limit
+--INI--
+memory_limit=8M
+--FILE--
+
+--EXPECTF--
+Fatal error: Allowed memory size of 8388608 bytes exhausted %S(tried to allocate %d bytes) in %s on line %d
diff -Nru php8.4-8.4.26/ext/pdo/pdo_dbh.c php8.4-8.4.27/ext/pdo/pdo_dbh.c
--- php8.4-8.4.26/ext/pdo/pdo_dbh.c 2026-09-22 15:00:02.000000000 +0000
+++ php8.4-8.4.27/ext/pdo/pdo_dbh.c 2026-10-19 14:38:59.000000000 +0000
@@ -631,7 +631,7 @@
if ((item = zend_hash_index_find(Z_ARRVAL_P(value), 1)) != NULL) {
if (Z_TYPE_P(item) != IS_ARRAY) {
zend_type_error("PDO::ATTR_STATEMENT_CLASS constructor_args must be of type ?array, %s given",
- zend_zval_value_name(value));
+ zend_zval_value_name(item));
RETURN_THROWS();
}
ZVAL_COPY_VALUE(&ctor_args, item);
@@ -925,17 +925,18 @@
zend_type_error("User-supplied statement class cannot have a public constructor");
return false;
}
+ item = zend_hash_index_find(Z_ARRVAL_P(value), 1);
+ if (item != NULL && Z_TYPE_P(item) != IS_ARRAY) {
+ zend_type_error("PDO::ATTR_STATEMENT_CLASS constructor_args must be of type ?array, %s given",
+ zend_zval_value_name(item));
+ return false;
+ }
dbh->def_stmt_ce = pce;
if (!Z_ISUNDEF(dbh->def_stmt_ctor_args)) {
zval_ptr_dtor(&dbh->def_stmt_ctor_args);
ZVAL_UNDEF(&dbh->def_stmt_ctor_args);
}
- if ((item = zend_hash_index_find(Z_ARRVAL_P(value), 1)) != NULL) {
- if (Z_TYPE_P(item) != IS_ARRAY) {
- zend_type_error("PDO::ATTR_STATEMENT_CLASS constructor_args must be of type ?array, %s given",
- zend_zval_value_name(value));
- return false;
- }
+ if (item != NULL) {
ZVAL_COPY(&dbh->def_stmt_ctor_args, item);
}
return true;
@@ -1521,7 +1522,9 @@
return;
}
- if (dbh->driver_data && dbh->methods && dbh->methods->rollback && pdo_is_in_transaction(dbh)) {
+ /* The persistent list holds one reference, other objects may hold the rest */
+ if (dbh->driver_data && dbh->methods && dbh->methods->rollback
+ && (!dbh->is_persistent || dbh->refcount <= 2) && pdo_is_in_transaction(dbh)) {
dbh->methods->rollback(dbh);
dbh->in_txn = false;
}
diff -Nru php8.4-8.4.26/ext/pdo/pdo_stmt.c php8.4-8.4.27/ext/pdo/pdo_stmt.c
--- php8.4-8.4.26/ext/pdo/pdo_stmt.c 2026-09-22 15:00:02.000000000 +0000
+++ php8.4-8.4.27/ext/pdo/pdo_stmt.c 2026-10-19 14:38:59.000000000 +0000
@@ -76,7 +76,7 @@
if (param->paramno >= 0) {
/* TODO Error? */
pdo_raise_impl_error(stmt->dbh, stmt, "IM001", "PDO refuses to handle repeating the same :named parameter for multiple positions with this driver, as it might be unsafe to do so. Consider using a separate name for each parameter instead");
- return -1;
+ return false;
}
param->paramno = position;
return 1;
@@ -89,6 +89,15 @@
}
/* }}} */
+static bool pdo_stmt_disallow_reentrant_param_event(pdo_stmt_t *stmt)
+{
+ if (UNEXPECTED(stmt->in_param_event)) {
+ zend_throw_error(NULL, "Cannot modify a PDOStatement while parameter hooks are running");
+ return false;
+ }
+ return true;
+}
+
/* trigger callback hook for parameters */
static bool dispatch_param_event(pdo_stmt_t *stmt, enum pdo_param_event event_type) /* {{{ */
{
@@ -104,6 +113,7 @@
return 1;
}
+ stmt->in_param_event = 1;
ht = stmt->bound_params;
iterate:
@@ -121,6 +131,7 @@
goto iterate;
}
+ stmt->in_param_event = 0;
return ret;
}
/* }}} */
@@ -287,10 +298,6 @@
param->stmt = stmt;
param->is_param = is_param;
- if (Z_REFCOUNTED(param->driver_params)) {
- Z_ADDREF(param->driver_params);
- }
-
if (!is_param && param->name && stmt->columns) {
/* try to map the name to the column */
int i;
@@ -311,6 +318,7 @@
spprintf(&tmp, 0, "Did not find column name '%s' in the defined columns; it will not be bound", ZSTR_VAL(param->name));
pdo_raise_impl_error(stmt->dbh, stmt, "HY000", tmp);
efree(tmp);
+ return 0;
}
}
@@ -373,6 +381,7 @@
} else {
zend_hash_index_del(hash, pparam->paramno);
}
+ ZVAL_UNDEF(¶m->driver_params);
/* param->parameter is freed by hash dtor */
ZVAL_UNDEF(¶m->parameter);
return 0;
@@ -382,6 +391,29 @@
}
/* }}} */
+static bool pdo_stmt_do_next_rowset(pdo_stmt_t *stmt);
+
+static void pdo_stmt_invalidate_result(pdo_stmt_t *stmt)
+{
+ if (stmt->methods->cursor_closer) {
+ stmt->methods->cursor_closer(stmt);
+ } else {
+ do {
+ while (stmt->methods->fetcher(stmt, PDO_FETCH_ORI_NEXT, 0))
+ ;
+ if (!stmt->methods->next_rowset) {
+ break;
+ }
+
+ if (!pdo_stmt_do_next_rowset(stmt)) {
+ break;
+ }
+ } while (1);
+ }
+
+ stmt->executed = 0;
+}
+
/* {{{ Execute a prepared statement, optionally binding parameters */
PHP_METHOD(PDOStatement, execute)
{
@@ -394,6 +426,13 @@
ZEND_PARSE_PARAMETERS_END();
PHP_STMT_GET_OBJ;
+ if (!pdo_stmt_disallow_reentrant_param_event(stmt)) {
+ RETURN_THROWS();
+ }
+
+ if (stmt->executed) {
+ pdo_stmt_invalidate_result(stmt);
+ }
PDO_STMT_CLEAR_ERR();
if (input_params) {
@@ -1436,6 +1475,9 @@
ZEND_PARSE_PARAMETERS_END();
PHP_STMT_GET_OBJ;
+ if (!pdo_stmt_disallow_reentrant_param_event(stmt)) {
+ RETURN_THROWS();
+ }
param.param_type = (int) param_type;
@@ -1461,6 +1503,9 @@
if (!Z_ISUNDEF(param.parameter)) {
zval_ptr_dtor(&(param.parameter));
}
+ if (!Z_ISUNDEF(param.driver_params)) {
+ zval_ptr_dtor(¶m.driver_params);
+ }
RETURN_FALSE;
}
@@ -1485,6 +1530,9 @@
ZEND_PARSE_PARAMETERS_END();
PHP_STMT_GET_OBJ;
+ if (!pdo_stmt_disallow_reentrant_param_event(stmt)) {
+ RETURN_THROWS();
+ }
param.param_type = (int) param_type;
if (param.name) {
@@ -1700,6 +1748,13 @@
RETURN_FALSE;
}
+ if (stmt->columns == NULL || colno >= stmt->column_count) {
+ zval_ptr_dtor(return_value);
+ ZVAL_UNDEF(return_value);
+ pdo_raise_impl_error(stmt->dbh, stmt, "07009", "invalid column index");
+ RETURN_FALSE;
+ }
+
/* add stock items */
col = &stmt->columns[colno];
add_assoc_str(return_value, "name", zend_string_copy(col->name));
@@ -1717,19 +1772,16 @@
uint32_t arg1_arg_num = mode_arg_num + 1;
uint32_t constructor_arg_num = mode_arg_num + 2;
uint32_t total_num_args = mode_arg_num + variadic_num_args;
+ zend_long fetch_type = mode & ~PDO_FETCH_FLAGS;
+ zend_long fetch_column = 0;
+ zend_class_entry *fetch_class = NULL;
+ zend_array *fetch_ctor_args = NULL;
+ zend_object *fetch_into = NULL;
+ zval old_ctor_args;
+ zval old_into;
- switch (stmt->default_fetch_type) {
- case PDO_FETCH_INTO:
- if (!Z_ISUNDEF(stmt->fetch.into)) {
- zval_ptr_dtor(&stmt->fetch.into);
- ZVAL_UNDEF(&stmt->fetch.into);
- }
- break;
- default:
- ;
- }
-
- stmt->default_fetch_type = stmt->dbh->default_fetch_type;
+ ZVAL_UNDEF(&old_ctor_args);
+ ZVAL_UNDEF(&old_into);
flags = mode & PDO_FETCH_FLAGS;
@@ -1737,9 +1789,7 @@
return false;
}
- bool use_default = (mode & ~PDO_FETCH_FLAGS) == PDO_FETCH_USE_DEFAULT;
-
- switch (mode & ~PDO_FETCH_FLAGS) {
+ switch (fetch_type) {
case PDO_FETCH_USE_DEFAULT:
case PDO_FETCH_LAZY:
case PDO_FETCH_ASSOC:
@@ -1774,13 +1824,11 @@
zend_argument_value_error(arg1_arg_num, "must be greater than or equal to 0");
return false;
}
- stmt->fetch.column = Z_LVAL(args[0]);
+ fetch_column = Z_LVAL(args[0]);
break;
case PDO_FETCH_CLASS: {
HashTable *constructor_args = NULL;
- /* Undef constructor arguments */
- ZVAL_UNDEF(&stmt->fetch.cls.ctor_args);
/* Gets its class name from 1st column */
if ((flags & PDO_FETCH_CLASSTYPE) == PDO_FETCH_CLASSTYPE) {
if (variadic_num_args != 0) {
@@ -1790,7 +1838,6 @@
zend_string_release(func);
return false;
}
- stmt->fetch.cls.ce = NULL;
} else {
zend_class_entry *cep;
if (variadic_num_args == 0) {
@@ -1829,15 +1876,17 @@
constructor_args = Z_ARRVAL(args[1]);
}
}
- stmt->fetch.cls.ce = cep;
+ fetch_class = cep;
/* If constructor arguments are present and not empty */
if (constructor_args) {
- ZVAL_ARR(&stmt->fetch.cls.ctor_args, zend_array_dup(constructor_args));
+ if (!cep->constructor) {
+ zend_throw_error(NULL, "User-supplied statement does not accept constructor arguments");
+ return false;
+ }
+ fetch_ctor_args = zend_array_dup(constructor_args);
}
}
-
- do_fetch_class_prepare(stmt);
break;
}
case PDO_FETCH_INTO:
@@ -1853,17 +1902,57 @@
return false;
}
- ZVAL_COPY(&stmt->fetch.into, &args[0]);
+ fetch_into = Z_OBJ(args[0]);
break;
default:
zend_argument_value_error(mode_arg_num, "must be one of the PDO::FETCH_* constants");
return false;
}
- if (!use_default) {
+ if ((stmt->default_fetch_type & ~PDO_FETCH_FLAGS) == PDO_FETCH_INTO) {
+ ZVAL_COPY_VALUE(&old_into, &stmt->fetch.into);
+ ZVAL_UNDEF(&stmt->fetch.into);
+ } else if ((stmt->default_fetch_type & ~PDO_FETCH_FLAGS) == PDO_FETCH_CLASS) {
+ do_fetch_opt_finish(stmt, 0);
+ ZVAL_COPY_VALUE(&old_ctor_args, &stmt->fetch.cls.ctor_args);
+ ZVAL_UNDEF(&stmt->fetch.cls.ctor_args);
+ } else {
+ do_fetch_opt_finish(stmt, 1);
+ }
+
+ switch (fetch_type) {
+ case PDO_FETCH_COLUMN:
+ stmt->fetch.column = fetch_column;
+ break;
+ case PDO_FETCH_CLASS:
+ stmt->fetch.cls.ce = fetch_class;
+ if (fetch_ctor_args) {
+ ZVAL_ARR(&stmt->fetch.cls.ctor_args, fetch_ctor_args);
+ } else {
+ ZVAL_UNDEF(&stmt->fetch.cls.ctor_args);
+ }
+ do_fetch_class_prepare(stmt);
+ break;
+ case PDO_FETCH_INTO:
+ ZVAL_OBJ_COPY(&stmt->fetch.into, fetch_into);
+ break;
+ default:
+ break;
+ }
+
+ if (fetch_type == PDO_FETCH_USE_DEFAULT) {
+ stmt->default_fetch_type = stmt->dbh->default_fetch_type;
+ } else {
stmt->default_fetch_type = mode;
}
+ if (!Z_ISUNDEF(old_into)) {
+ zval_ptr_dtor(&old_into);
+ }
+ if (!Z_ISUNDEF(old_ctor_args)) {
+ zval_ptr_dtor(&old_ctor_args);
+ }
+
return true;
}
@@ -1879,8 +1968,6 @@
PHP_STMT_GET_OBJ;
- do_fetch_opt_finish(stmt, 1);
-
if (!pdo_stmt_setup_fetch_mode(stmt, fetch_mode, 1, args, num_args)) {
RETURN_THROWS();
}
@@ -1934,6 +2021,9 @@
ZEND_PARSE_PARAMETERS_NONE();
PHP_STMT_GET_OBJ;
+ if (!pdo_stmt_disallow_reentrant_param_event(stmt)) {
+ RETURN_THROWS();
+ }
if (!stmt->methods->cursor_closer) {
/* emulate it by fetching and discarding rows */
do {
@@ -2100,6 +2190,22 @@
zend_get_gc_buffer *gc_buffer = zend_get_gc_buffer_create();
zend_get_gc_buffer_add_zval(gc_buffer, &stmt->database_object_handle);
zend_get_gc_buffer_add_zval(gc_buffer, &stmt->fetch.into);
+ if (stmt->bound_params) {
+ zval *val;
+ ZEND_HASH_FOREACH_VAL(stmt->bound_params, val) {
+ struct pdo_bound_param_data *param = Z_PTR_P(val);
+ zend_get_gc_buffer_add_zval(gc_buffer, ¶m->parameter);
+ zend_get_gc_buffer_add_zval(gc_buffer, ¶m->driver_params);
+ } ZEND_HASH_FOREACH_END();
+ }
+ if (stmt->bound_columns) {
+ zval *val;
+ ZEND_HASH_FOREACH_VAL(stmt->bound_columns, val) {
+ struct pdo_bound_param_data *param = Z_PTR_P(val);
+ zend_get_gc_buffer_add_zval(gc_buffer, ¶m->parameter);
+ zend_get_gc_buffer_add_zval(gc_buffer, ¶m->driver_params);
+ } ZEND_HASH_FOREACH_END();
+ }
zend_get_gc_buffer_use(gc_buffer, gc_data, gc_count);
/**
diff -Nru php8.4-8.4.26/ext/pdo/php_pdo_driver.h php8.4-8.4.27/ext/pdo/php_pdo_driver.h
--- php8.4-8.4.26/ext/pdo/php_pdo_driver.h 2026-09-22 15:00:02.000000000 +0000
+++ php8.4-8.4.27/ext/pdo/php_pdo_driver.h 2026-10-19 14:38:59.000000000 +0000
@@ -567,8 +567,9 @@
* bindParam() for its prepared statements, if false, PDO should
* emulate prepare and bind on its behalf */
unsigned supports_placeholders:2;
+ unsigned in_param_event:1;
- unsigned _reserved:29;
+ unsigned _reserved:28;
/* the number of columns in the result set; not valid until after
* the statement has been executed at least once. In some cases, might
diff -Nru php8.4-8.4.26/ext/pdo/tests/get_gc_bound_params.phpt php8.4-8.4.27/ext/pdo/tests/get_gc_bound_params.phpt
--- php8.4-8.4.26/ext/pdo/tests/get_gc_bound_params.phpt 1970-01-01 00:00:00.000000000 +0000
+++ php8.4-8.4.27/ext/pdo/tests/get_gc_bound_params.phpt 2026-10-19 14:38:59.000000000 +0000
@@ -0,0 +1,66 @@
+--TEST--
+PDO Common: PDOStatement::get_gc() must report bound params and columns for cycle collection
+--EXTENSIONS--
+pdo
+--SKIPIF--
+
+--FILE--
+name;
+ }
+}
+
+$db = PDOTest::factory();
+$db->exec('CREATE TABLE get_gc_bound_params (a INT, b INT)');
+
+$insert = $db->prepare('INSERT INTO get_gc_bound_params VALUES (?, ?)');
+$param = new Tracked('param', $insert);
+$insert->bindParam(1, $param, PDO::PARAM_INT);
+$paramOption = null;
+$insert->bindParam(2, $paramOption, PDO::PARAM_INT, 0, new Tracked('param driver option', $insert));
+
+$select = $db->query('SELECT a, b FROM get_gc_bound_params');
+$column = new Tracked('column', $select);
+$select->bindColumn(1, $column, PDO::PARAM_INT);
+$columnOption = null;
+$select->bindColumn(2, $columnOption, PDO::PARAM_INT, 0, new Tracked('column driver option', $select));
+
+unset($param, $paramOption, $column, $columnOption, $insert, $select, $db);
+var_dump(Tracked::$collected);
+gc_collect_cycles();
+sort(Tracked::$collected);
+var_dump(Tracked::$collected);
+?>
+--CLEAN--
+
+--EXPECT--
+array(0) {
+}
+array(4) {
+ [0]=>
+ string(6) "column"
+ [1]=>
+ string(20) "column driver option"
+ [2]=>
+ string(5) "param"
+ [3]=>
+ string(19) "param driver option"
+}
diff -Nru php8.4-8.4.26/ext/pdo/tests/pdo_030.phpt php8.4-8.4.27/ext/pdo/tests/pdo_030.phpt
--- php8.4-8.4.26/ext/pdo/tests/pdo_030.phpt 2026-09-22 15:00:02.000000000 +0000
+++ php8.4-8.4.27/ext/pdo/tests/pdo_030.phpt 2026-10-19 14:38:59.000000000 +0000
@@ -75,6 +75,17 @@
var_dump($db->getAttribute(PDO::ATTR_STATEMENT_CLASS));
$db->setAttribute(PDO::ATTR_STATEMENT_CLASS, array('PDOStatementx', array($db)));
var_dump($db->getAttribute(PDO::ATTR_STATEMENT_CLASS));
+try {
+ $db->setAttribute(PDO::ATTR_STATEMENT_CLASS, [PDOStatement::class, 'invalid-args']);
+} catch (TypeError $e) {
+ echo $e::class, ': ', $e->getMessage(), PHP_EOL;
+}
+var_dump($db->getAttribute(PDO::ATTR_STATEMENT_CLASS));
+try {
+ $db->prepare('SELECT * FROM test030', [PDO::ATTR_STATEMENT_CLASS => [PDOStatement::class, 'invalid-args']]);
+} catch (TypeError $e) {
+ echo $e::class, ': ', $e->getMessage(), PHP_EOL;
+}
$stmt = $db->query('SELECT * FROM test030');
var_dump(get_class($stmt));
var_dump(get_class($stmt->dbh));
@@ -112,6 +123,18 @@
}
}
}
+TypeError: PDO::ATTR_STATEMENT_CLASS constructor_args must be of type ?array, string given
+array(2) {
+ [0]=>
+ string(13) "PDOStatementX"
+ [1]=>
+ array(1) {
+ [0]=>
+ object(PDODatabase)#%d (0) {
+ }
+ }
+}
+TypeError: PDO::ATTR_STATEMENT_CLASS constructor_args must be of type ?array, string given
PDODatabase::query()
PDOStatementX::__construct()
string(13) "PDOStatementX"
diff -Nru php8.4-8.4.26/ext/pdo/tests/pdo_bindcolumn_unknown_column.phpt php8.4-8.4.27/ext/pdo/tests/pdo_bindcolumn_unknown_column.phpt
--- php8.4-8.4.26/ext/pdo/tests/pdo_bindcolumn_unknown_column.phpt 1970-01-01 00:00:00.000000000 +0000
+++ php8.4-8.4.27/ext/pdo/tests/pdo_bindcolumn_unknown_column.phpt 2026-10-19 14:38:59.000000000 +0000
@@ -0,0 +1,41 @@
+--TEST--
+PDO: bindColumn() must fail for a column name that is not in the result set
+--EXTENSIONS--
+pdo
+--SKIPIF--
+
+--FILE--
+exec('CREATE TABLE pdo_bindcolumn_unknown_column (name varchar(255))');
+
+$db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_SILENT);
+$stmt = $db->query('SELECT name FROM pdo_bindcolumn_unknown_column');
+var_dump(@$stmt->bindColumn('nosuchcolumn', $var));
+
+$db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
+try {
+ $stmt->bindColumn('nosuchcolumn', $var);
+} catch (PDOException $e) {
+ echo $e::class, ": ", $e->getMessage(), PHP_EOL;
+}
+?>
+--CLEAN--
+exec('DROP TABLE pdo_bindcolumn_unknown_column');
+?>
+--EXPECT--
+bool(false)
+PDOException: SQLSTATE[HY000]: General error: Did not find column name 'nosuchcolumn' in the defined columns; it will not be bound
diff -Nru php8.4-8.4.26/ext/pdo/tests/pdo_setfetchmode_atomic.phpt php8.4-8.4.27/ext/pdo/tests/pdo_setfetchmode_atomic.phpt
--- php8.4-8.4.26/ext/pdo/tests/pdo_setfetchmode_atomic.phpt 1970-01-01 00:00:00.000000000 +0000
+++ php8.4-8.4.27/ext/pdo/tests/pdo_setfetchmode_atomic.phpt 2026-10-19 14:38:59.000000000 +0000
@@ -0,0 +1,73 @@
+--TEST--
+PDO Common: Failed setFetchMode must preserve the prior fetch mode and payload
+--EXTENSIONS--
+pdo
+--SKIPIF--
+
+--FILE--
+exec('CREATE TABLE pdo_setfetchmode_atomic (i INT)');
+$pdo->exec('INSERT INTO pdo_setfetchmode_atomic (i) VALUES (1)');
+$stmt = $pdo->query('SELECT i FROM pdo_setfetchmode_atomic');
+$row = new stdClass;
+$stmt->setFetchMode(PDO::FETCH_INTO, $row);
+try {
+ $stmt->setFetchMode(PDO::FETCH_CLASS);
+} catch (Throwable $e) {
+ echo "into error: ", $e::class, "\n";
+}
+$r = $stmt->fetch();
+
+echo "into object preserved: ";
+var_dump($r === $row);
+echo "into value: ", $row->i, "\n";
+
+$stmt = $pdo->query('SELECT i FROM pdo_setfetchmode_atomic');
+$stmt->setFetchMode(PDO::FETCH_CLASS, FetchClass::class, ['kept']);
+try {
+ $stmt->setFetchMode(PDO::FETCH_CLASS);
+} catch (Throwable $e) {
+ echo "class error: ", $e::class, "\n";
+}
+$r = $stmt->fetch();
+
+echo "class preserved: ", $r::class, "\n";
+echo "constructor argument: ", $r->marker, "\n";
+echo "class value: ", $r->i, "\n";
+?>
+--CLEAN--
+
+--EXPECT--
+into error: ArgumentCountError
+into object preserved: bool(true)
+into value: 1
+class error: ArgumentCountError
+class preserved: FetchClass
+constructor argument: kept
+class value: 1
diff -Nru php8.4-8.4.26/ext/pdo/tests/pdo_setfetchmode_reentrant_fetch.phpt php8.4-8.4.27/ext/pdo/tests/pdo_setfetchmode_reentrant_fetch.phpt
--- php8.4-8.4.26/ext/pdo/tests/pdo_setfetchmode_reentrant_fetch.phpt 1970-01-01 00:00:00.000000000 +0000
+++ php8.4-8.4.27/ext/pdo/tests/pdo_setfetchmode_reentrant_fetch.phpt 2026-10-19 14:38:59.000000000 +0000
@@ -0,0 +1,75 @@
+--TEST--
+PDO Common: setFetchMode autoload re-entry observes the prior complete mode
+--EXTENSIONS--
+pdo
+--SKIPIF--
+
+--FILE--
+exec('CREATE TABLE pdo_setfetchmode_reentrant_fetch (i INT)');
+$pdo->exec('INSERT INTO pdo_setfetchmode_reentrant_fetch (i) VALUES (1)');
+$pdo->exec('INSERT INTO pdo_setfetchmode_reentrant_fetch (i) VALUES (2)');
+
+$stmt = $pdo->query('SELECT i FROM pdo_setfetchmode_reentrant_fetch ORDER BY i');
+$into = new stdClass;
+$stmt->setFetchMode(PDO::FETCH_INTO, $into);
+$autoload = function (string $class) use ($stmt, $into): void {
+ $row = $stmt->fetch();
+ echo "into re-entry preserved: ";
+ var_dump($row === $into);
+ eval("class $class { public int \$i; }");
+};
+spl_autoload_register($autoload);
+$stmt->setFetchMode(PDO::FETCH_CLASS, 'ReenteredIntoClass');
+spl_autoload_unregister($autoload);
+$row = $stmt->fetch();
+echo "into re-entry value: ", $into->i, "\n";
+echo "outer into class: ", $row::class, " ", $row->i, "\n";
+
+$stmt = $pdo->query('SELECT i FROM pdo_setfetchmode_reentrant_fetch ORDER BY i');
+$stmt->setFetchMode(PDO::FETCH_CLASS, PriorFetchClass::class, ['kept']);
+$autoload = function (string $class) use ($stmt): void {
+ $row = $stmt->fetch();
+ echo "class re-entry: ", $row::class, " ", $row->marker, " ", $row->i, "\n";
+ eval("class $class { public int \$i; }");
+};
+spl_autoload_register($autoload);
+$stmt->setFetchMode(PDO::FETCH_CLASS, 'ReenteredFetchClass');
+spl_autoload_unregister($autoload);
+$row = $stmt->fetch();
+echo "outer class: ", $row::class, " ", $row->i, "\n";
+?>
+--CLEAN--
+
+--EXPECT--
+into re-entry preserved: bool(true)
+into re-entry value: 1
+outer into class: ReenteredIntoClass 2
+class re-entry: PriorFetchClass kept 1
+outer class: ReenteredFetchClass 2
diff -Nru php8.4-8.4.26/ext/pdo/tests/pdo_setfetchmode_reentrant_setmode.phpt php8.4-8.4.27/ext/pdo/tests/pdo_setfetchmode_reentrant_setmode.phpt
--- php8.4-8.4.26/ext/pdo/tests/pdo_setfetchmode_reentrant_setmode.phpt 1970-01-01 00:00:00.000000000 +0000
+++ php8.4-8.4.27/ext/pdo/tests/pdo_setfetchmode_reentrant_setmode.phpt 2026-10-19 14:38:59.000000000 +0000
@@ -0,0 +1,53 @@
+--TEST--
+PDO Common: setFetchMode autoload re-entry may change the statement safely
+--EXTENSIONS--
+pdo
+--SKIPIF--
+
+--FILE--
+exec('CREATE TABLE pdo_setfetchmode_reentrant_setmode (i INT)');
+$pdo->exec('INSERT INTO pdo_setfetchmode_reentrant_setmode (i) VALUES (1)');
+$stmt = $pdo->query('SELECT i FROM pdo_setfetchmode_reentrant_setmode');
+$first = new stdClass;
+$second = new stdClass;
+$stmt->setFetchMode(PDO::FETCH_INTO, $first);
+
+$autoload = function (string $class) use ($stmt, $second): void {
+ $stmt->setFetchMode(PDO::FETCH_INTO, $second);
+ eval("class $class { public int \$i; }");
+};
+spl_autoload_register($autoload);
+$stmt->setFetchMode(PDO::FETCH_CLASS, 'ReenteredSetModeClass');
+spl_autoload_unregister($autoload);
+
+$row = $stmt->fetch();
+echo $row::class, " ", $row->i, "\n";
+echo "first changed: ";
+var_dump(isset($first->i));
+echo "second changed: ";
+var_dump(isset($second->i));
+?>
+--CLEAN--
+
+--EXPECT--
+ReenteredSetModeClass 1
+first changed: bool(false)
+second changed: bool(false)
diff -Nru php8.4-8.4.26/ext/pdo_dblib/dblib_driver.c php8.4-8.4.27/ext/pdo_dblib/dblib_driver.c
--- php8.4-8.4.26/ext/pdo_dblib/dblib_driver.c 2026-09-22 15:00:02.000000000 +0000
+++ php8.4-8.4.27/ext/pdo_dblib/dblib_driver.c 2026-10-19 14:38:59.000000000 +0000
@@ -77,11 +77,12 @@
pdo_dblib_db_handle *H = (pdo_dblib_db_handle *)dbh->driver_data;
if (H) {
- pdo_dblib_err_dtor(&H->err);
if (H->link) {
+ dbsetuserdata(H->link, (BYTE*) &H->err);
dbclose(H->link);
H->link = NULL;
}
+ pdo_dblib_err_dtor(&H->err);
if (H->login) {
dbfreelogin(H->login);
H->login = NULL;
@@ -202,6 +203,8 @@
{
pdo_dblib_db_handle *H = (pdo_dblib_db_handle *)dbh->driver_data;
+ dbsetuserdata(H->link, (BYTE*) &H->err);
+
if (FAIL == dbcmd(H->link, cmd)) {
return false;
}
@@ -241,6 +244,8 @@
* Would use scope_identity() but it's not implemented on Sybase
*/
+ dbsetuserdata(H->link, (BYTE*) &H->err);
+
if (FAIL == dbcmd(H->link, "SELECT @@IDENTITY")) {
return NULL;
}
diff -Nru php8.4-8.4.26/ext/pdo_dblib/dblib_stmt.c php8.4-8.4.27/ext/pdo_dblib/dblib_stmt.c
--- php8.4-8.4.26/ext/pdo_dblib/dblib_stmt.c 2026-09-22 15:00:02.000000000 +0000
+++ php8.4-8.4.27/ext/pdo_dblib/dblib_stmt.c 2026-10-19 14:38:59.000000000 +0000
@@ -95,6 +95,8 @@
pdo_dblib_stmt *S = (pdo_dblib_stmt*)stmt->driver_data;
pdo_dblib_db_handle *H = S->H;
+ dbsetuserdata(H->link, (BYTE*) &S->err);
+
/* Cancel any pending results */
dbcancel(H->link);
@@ -152,6 +154,8 @@
pdo_dblib_db_handle *H = S->H;
RETCODE ret = SUCCESS;
+ dbsetuserdata(H->link, (BYTE*) &S->err);
+
/* Ideally use dbcanquery here, but there is a bug in FreeTDS's implementation of dbcanquery
* It has been resolved but is currently only available in nightly builds
*/
@@ -201,6 +205,8 @@
pdo_dblib_stmt *S = (pdo_dblib_stmt*)stmt->driver_data;
pdo_dblib_db_handle *H = S->H;
+ dbsetuserdata(H->link, (BYTE*) &S->err);
+
ret = dbnextrow(H->link);
if (FAIL == ret) {
@@ -226,6 +232,8 @@
return FAILURE;
}
+ dbsetuserdata(H->link, (BYTE*) &S->err);
+
if (colno == 0) {
S->computed_column_name_count = 0;
}
@@ -350,6 +358,8 @@
DBCHAR *tmp_data;
DBINT data_len, tmp_data_len;
+ dbsetuserdata(H->link, (BYTE*) &S->err);
+
coltype = dbcoltype(H->link, colno+1);
data = dbdata(H->link, colno+1);
data_len = dbdatlen(H->link, colno+1);
@@ -472,7 +482,7 @@
return FAILURE;
}
- array_init(return_value);
+ dbsetuserdata(H->link, (BYTE*) &S->err);
dbtypeinfo = dbcoltypeinfo(H->link, colno+1);
@@ -480,6 +490,8 @@
coltype = dbcoltype(H->link, colno+1);
+ array_init(return_value);
+
add_assoc_long(return_value, "max_length", dbcollen(H->link, colno+1) );
add_assoc_long(return_value, "precision", (int) dbtypeinfo->precision );
add_assoc_long(return_value, "scale", (int) dbtypeinfo->scale );
diff -Nru php8.4-8.4.26/ext/pdo_dblib/tests/gh23741.phpt php8.4-8.4.27/ext/pdo_dblib/tests/gh23741.phpt
--- php8.4-8.4.26/ext/pdo_dblib/tests/gh23741.phpt 1970-01-01 00:00:00.000000000 +0000
+++ php8.4-8.4.27/ext/pdo_dblib/tests/gh23741.phpt 2026-10-19 14:38:59.000000000 +0000
@@ -0,0 +1,38 @@
+--TEST--
+GH-23741 (pdo_dblib: segfault after a failed query inside a PDO transaction)
+--EXTENSIONS--
+pdo_dblib
+--SKIPIF--
+
+--FILE--
+ PDO::ERRMODE_SILENT]);
+
+$db->query('CREATE TABLE gh23741 (id int)');
+
+$db->beginTransaction();
+echo 'failing query inside the transaction: ';
+var_dump($db->query('CREATE VIEW gh23741 AS SELECT 1 AS x'));
+$db->rollBack();
+
+echo 'query after the failure: ';
+var_dump($db->query('DROP TABLE IF EXISTS gh23741') instanceof PDOStatement);
+
+echo "survived connection teardown\n";
+?>
+--CLEAN--
+exec('DROP VIEW IF EXISTS gh23741');
+$db->exec('DROP TABLE IF EXISTS gh23741');
+?>
+--EXPECT--
+failing query inside the transaction: bool(false)
+query after the failure: bool(true)
+survived connection teardown
diff -Nru php8.4-8.4.26/ext/pdo_dblib/tests/gh23741_2.phpt php8.4-8.4.27/ext/pdo_dblib/tests/gh23741_2.phpt
--- php8.4-8.4.26/ext/pdo_dblib/tests/gh23741_2.phpt 1970-01-01 00:00:00.000000000 +0000
+++ php8.4-8.4.27/ext/pdo_dblib/tests/gh23741_2.phpt 2026-10-19 14:38:59.000000000 +0000
@@ -0,0 +1,27 @@
+--TEST--
+GH-23741 (pdo_dblib: crash reading metadata after a sibling statement is freed)
+--EXTENSIONS--
+pdo_dblib
+--SKIPIF--
+
+--FILE--
+ PDO::ERRMODE_SILENT]);
+
+$wide = $db->query('SELECT 1 AS a, 2 AS b, 3 AS c');
+$narrow = $db->query('SELECT 9 AS z');
+unset($narrow);
+
+echo 'metadata for a column the connection no longer has: ';
+var_dump($wide->getColumnMeta(2));
+
+echo "survived the out-of-range column\n";
+?>
+--EXPECT--
+metadata for a column the connection no longer has: bool(false)
+survived the out-of-range column
diff -Nru php8.4-8.4.26/ext/pdo_firebird/firebird_statement.c php8.4-8.4.27/ext/pdo_firebird/firebird_statement.c
--- php8.4-8.4.26/ext/pdo_firebird/firebird_statement.c 2026-09-22 15:00:02.000000000 +0000
+++ php8.4-8.4.27/ext/pdo_firebird/firebird_statement.c 2026-10-19 14:38:59.000000000 +0000
@@ -446,6 +446,8 @@
php_firebird_error_stmt_with_info(stmt, "HY000", strlen("HY000"), msg, strlen(msg));
goto fetch_blob_end;
}
+ } else {
+ ZVAL_EMPTY_STRING(result);
}
retval = 1;
diff -Nru php8.4-8.4.26/ext/pdo_firebird/tests/gh23758.phpt php8.4-8.4.27/ext/pdo_firebird/tests/gh23758.phpt
--- php8.4-8.4.26/ext/pdo_firebird/tests/gh23758.phpt 1970-01-01 00:00:00.000000000 +0000
+++ php8.4-8.4.27/ext/pdo_firebird/tests/gh23758.phpt 2026-10-19 14:38:59.000000000 +0000
@@ -0,0 +1,52 @@
+--TEST--
+GH-23758 (PDO_Firebird returns null for non-null empty BLOBs)
+--EXTENSIONS--
+pdo_firebird
+--SKIPIF--
+
+--XLEAK--
+A bug in firebird causes a memory leak when calling `isc_attach_database()`.
+See https://github.com/FirebirdSQL/firebird/issues/7849
+--FILE--
+exec('CREATE TABLE gh23758 (ID INTEGER, BIN_VAL BLOB SUB_TYPE BINARY, TEXT_VAL BLOB SUB_TYPE TEXT)');
+
+$stmt = $dbh->prepare('INSERT INTO gh23758 VALUES (?, ?, ?)');
+$stmt->execute([1, null, null]);
+$stmt->execute([2, '', '']);
+
+$stmt = $dbh->query('SELECT BIN_VAL, TEXT_VAL FROM gh23758 ORDER BY ID');
+var_dump($stmt->fetchAll(PDO::FETCH_NUM));
+
+unset($stmt);
+unset($dbh);
+
+?>
+--CLEAN--
+exec('DROP TABLE gh23758');
+unset($dbh);
+?>
+--EXPECT--
+array(2) {
+ [0]=>
+ array(2) {
+ [0]=>
+ NULL
+ [1]=>
+ NULL
+ }
+ [1]=>
+ array(2) {
+ [0]=>
+ string(0) ""
+ [1]=>
+ string(0) ""
+ }
+}
diff -Nru php8.4-8.4.26/ext/pdo_mysql/tests/pdo_mysql_stmt_nextrowset_columncount.phpt php8.4-8.4.27/ext/pdo_mysql/tests/pdo_mysql_stmt_nextrowset_columncount.phpt
--- php8.4-8.4.26/ext/pdo_mysql/tests/pdo_mysql_stmt_nextrowset_columncount.phpt 1970-01-01 00:00:00.000000000 +0000
+++ php8.4-8.4.27/ext/pdo_mysql/tests/pdo_mysql_stmt_nextrowset_columncount.phpt 2026-10-19 14:38:59.000000000 +0000
@@ -0,0 +1,39 @@
+--TEST--
+MySQL PDOStatement->columnCount() is 0 for the trailing OK packet of a stored procedure
+--EXTENSIONS--
+pdo_mysql
+--SKIPIF--
+
+--FILE--
+exec('DROP PROCEDURE IF EXISTS pdo_mysql_stmt_nextrowset_columncount_p');
+$db->exec('CREATE PROCEDURE pdo_mysql_stmt_nextrowset_columncount_p() BEGIN SELECT 1 AS a; SELECT 2 AS b, 3 AS c; END');
+
+foreach ([true, false] as $emulate) {
+ $db->setAttribute(PDO::ATTR_EMULATE_PREPARES, $emulate);
+ $stmt = $db->prepare('CALL pdo_mysql_stmt_nextrowset_columncount_p()');
+ $stmt->execute();
+ do {
+ var_dump($stmt->columnCount());
+ $stmt->fetchAll();
+ } while ($stmt->nextRowset());
+}
+?>
+--CLEAN--
+exec('DROP PROCEDURE IF EXISTS pdo_mysql_stmt_nextrowset_columncount_p');
+?>
+--EXPECT--
+int(1)
+int(2)
+int(0)
+int(1)
+int(2)
+int(0)
diff -Nru php8.4-8.4.26/ext/pdo_odbc/tests/getcolumnmeta_bounds.phpt php8.4-8.4.27/ext/pdo_odbc/tests/getcolumnmeta_bounds.phpt
--- php8.4-8.4.26/ext/pdo_odbc/tests/getcolumnmeta_bounds.phpt 1970-01-01 00:00:00.000000000 +0000
+++ php8.4-8.4.27/ext/pdo_odbc/tests/getcolumnmeta_bounds.phpt 2026-10-19 14:38:59.000000000 +0000
@@ -0,0 +1,49 @@
+--TEST--
+PDO_odbc getColumnMeta() bounds checking on unexecuted statements and invalid indexes
+--EXTENSIONS--
+pdo_odbc
+--SKIPIF--
+
+--FILE--
+ PDO::ERRMODE_EXCEPTION]);
+$stmt = $pdo->prepare('SELECT 1 AS one');
+
+try {
+ var_dump($stmt->getColumnMeta(0));
+} catch (Throwable $e) {
+ echo $e::class, ': ', $e->getMessage(), "\n";
+}
+
+$stmt->execute();
+var_dump($stmt->getColumnMeta(0));
+
+try {
+ var_dump($stmt->getColumnMeta(5));
+} catch (Throwable $e) {
+ echo $e::class, ': ', $e->getMessage(), "\n";
+}
+
+echo "done\n";
+?>
+--EXPECTF--
+PDOException: SQLSTATE[07009]: Invalid descriptor index: invalid column index
+array(4) {
+ ["pdo_type"]=>
+ int(2)
+ ["name"]=>
+ string(3) "one"
+ ["len"]=>
+ int(%d)
+ ["precision"]=>
+ int(%d)
+}
+PDOException: SQLSTATE[07009]: Invalid descriptor index: invalid column index
+done
diff -Nru php8.4-8.4.26/ext/pdo_sqlite/tests/gh23962.phpt php8.4-8.4.27/ext/pdo_sqlite/tests/gh23962.phpt
--- php8.4-8.4.26/ext/pdo_sqlite/tests/gh23962.phpt 1970-01-01 00:00:00.000000000 +0000
+++ php8.4-8.4.27/ext/pdo_sqlite/tests/gh23962.phpt 2026-10-19 14:38:59.000000000 +0000
@@ -0,0 +1,31 @@
+--TEST--
+GH-23962 (Destroying a persistent PDO instance rolls back a transaction still in use by another instance)
+--CREDITS--
+BoyeMagnus
+--EXTENSIONS--
+pdo_sqlite
+--FILE--
+ true]);
+$b = new PDO($dsn, null, null, [PDO::ATTR_PERSISTENT => true]);
+
+$b->beginTransaction();
+unset($a);
+var_dump($b->inTransaction());
+var_dump($b->commit());
+
+$b->beginTransaction();
+$b->exec('CREATE TABLE test (a int)');
+unset($b);
+
+$c = new PDO($dsn, null, null, [PDO::ATTR_PERSISTENT => true]);
+var_dump($c->inTransaction());
+var_dump($c->query("SELECT count(*) FROM sqlite_master WHERE name = 'test'")->fetchColumn());
+?>
+--EXPECT--
+bool(true)
+bool(true)
+bool(false)
+int(0)
diff -Nru php8.4-8.4.26/ext/pdo_sqlite/tests/pdo_driver_options_weakref.phpt php8.4-8.4.27/ext/pdo_sqlite/tests/pdo_driver_options_weakref.phpt
--- php8.4-8.4.26/ext/pdo_sqlite/tests/pdo_driver_options_weakref.phpt 1970-01-01 00:00:00.000000000 +0000
+++ php8.4-8.4.27/ext/pdo_sqlite/tests/pdo_driver_options_weakref.phpt 2026-10-19 14:38:59.000000000 +0000
@@ -0,0 +1,35 @@
+--TEST--
+PDO SQLite releases driverOptions objects after binding or failed registration
+--EXTENSIONS--
+pdo_sqlite
+--FILE--
+prepare('SELECT ? AS value');
+$value = 1;
+$driverOptions = [new Tracked()];
+$weakReference = WeakReference::create($driverOptions[0]);
+var_dump($stmt->bindParam(1, $value, PDO::PARAM_STR, 0, $driverOptions));
+unset($driverOptions, $value, $stmt);
+gc_collect_cycles();
+var_dump($weakReference->get());
+
+$stmt = $db->prepare('SELECT ? AS value');
+$stmt->execute();
+$db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_SILENT);
+$value = null;
+$driverOptions = [new Tracked()];
+$weakReference = WeakReference::create($driverOptions[0]);
+var_dump(@$stmt->bindColumn('missing', $value, PDO::PARAM_STR, 0, $driverOptions));
+unset($driverOptions);
+var_dump($weakReference->get());
+unset($value, $stmt);
+?>
+--EXPECT--
+bool(true)
+NULL
+bool(false)
+NULL
diff -Nru php8.4-8.4.26/ext/pdo_sqlite/tests/pdo_sqlite_failed_execute.phpt php8.4-8.4.27/ext/pdo_sqlite/tests/pdo_sqlite_failed_execute.phpt
--- php8.4-8.4.26/ext/pdo_sqlite/tests/pdo_sqlite_failed_execute.phpt 1970-01-01 00:00:00.000000000 +0000
+++ php8.4-8.4.27/ext/pdo_sqlite/tests/pdo_sqlite_failed_execute.phpt 2026-10-19 14:38:59.000000000 +0000
@@ -0,0 +1,83 @@
+--TEST--
+PDO SQLite: failed execute invalidates the previous result
+--EXTENSIONS--
+pdo_sqlite
+--FILE--
+prepare('SELECT ? AS value UNION ALL SELECT 2');
+$stmt->execute(['first']);
+var_dump($stmt->fetchColumn());
+
+try {
+ $stmt->execute([new stdClass()]);
+} catch (Error $e) {
+ echo $e::class, ': ', $e->getMessage(), PHP_EOL;
+}
+var_dump($stmt->fetchColumn());
+
+$stmt->execute(['third']);
+var_dump($stmt->fetchAll(PDO::FETCH_COLUMN));
+
+$db->sqliteCreateFunction('fail_execute', function (bool $fail): string {
+ if ($fail) {
+ throw new RuntimeException('execution failed');
+ }
+ return 'first';
+});
+$stmt = $db->prepare('SELECT fail_execute(?) AS value UNION ALL SELECT 2');
+$stmt->execute([false]);
+var_dump($stmt->fetchColumn());
+
+try {
+ $stmt->execute([true]);
+} catch (RuntimeException $e) {
+ echo $e::class, ': ', $e->getMessage(), PHP_EOL;
+}
+var_dump($stmt->fetchColumn());
+
+$stmt->execute([false]);
+var_dump($stmt->fetchAll(PDO::FETCH_COLUMN));
+
+$db->exec('CREATE TABLE failed_execute (value INTEGER UNIQUE)');
+$db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_WARNING);
+$stmt = $db->prepare('INSERT INTO failed_execute VALUES (?)');
+$stmt->execute([1]);
+$warnings = 0;
+set_error_handler(function () use (&$warnings): bool {
+ $warnings++;
+ return true;
+});
+try {
+ var_dump($stmt->execute([1]));
+} finally {
+ restore_error_handler();
+}
+echo "driver warnings: $warnings\n";
+var_dump($stmt->fetchColumn());
+
+?>
+--EXPECT--
+string(5) "first"
+Error: Object of class stdClass could not be converted to string
+bool(false)
+array(2) {
+ [0]=>
+ string(5) "third"
+ [1]=>
+ int(2)
+}
+string(5) "first"
+RuntimeException: execution failed
+bool(false)
+array(2) {
+ [0]=>
+ string(5) "first"
+ [1]=>
+ int(2)
+}
+bool(false)
+driver warnings: 1
+bool(false)
diff -Nru php8.4-8.4.26/ext/pdo_sqlite/tests/pdo_sqlite_reentrant_bind.phpt php8.4-8.4.27/ext/pdo_sqlite/tests/pdo_sqlite_reentrant_bind.phpt
--- php8.4-8.4.26/ext/pdo_sqlite/tests/pdo_sqlite_reentrant_bind.phpt 1970-01-01 00:00:00.000000000 +0000
+++ php8.4-8.4.27/ext/pdo_sqlite/tests/pdo_sqlite_reentrant_bind.phpt 2026-10-19 14:38:59.000000000 +0000
@@ -0,0 +1,102 @@
+--TEST--
+Rebinding or re-executing from a parameter __toString() must not mutate bound_params mid-FOREACH
+--EXTENSIONS--
+pdo_sqlite
+--FILE--
+stmt->bindValue(1, 'x');
+ echo "bindValue: no error\n";
+ } catch (Error $e) {
+ echo $e::class, ": ", $e->getMessage(), "\n";
+ }
+ return 'rebind';
+ }
+}
+
+class Reexec {
+ public function __construct(private PDOStatement $stmt) {}
+ public function __toString() {
+ try {
+ $this->stmt->execute(['x', 'y']);
+ echo "execute: no error\n";
+ } catch (Error $e) {
+ echo $e::class, ": ", $e->getMessage(), "\n";
+ }
+ return 'reexec';
+ }
+}
+
+class Reclose {
+ public function __construct(private PDOStatement $stmt) {}
+ public function __toString() {
+ try {
+ $this->stmt->closeCursor();
+ echo "closeCursor: no error\n";
+ } catch (Error $e) {
+ echo $e::class, ": ", $e->getMessage(), "\n";
+ }
+ return 'reclose';
+ }
+}
+
+$db = new PDO('sqlite::memory:');
+
+echo "bindValue:\n";
+$stmt = $db->prepare('SELECT ?, ?');
+$p1 = 'placeholder';
+$p2 = 'second';
+$stmt->bindParam(1, $p1);
+$stmt->bindParam(2, $p2);
+$p1 = new Rebind($stmt);
+try {
+ $stmt->execute();
+ echo "execute after bindValue: no error\n";
+} catch (Throwable $e) {
+ echo $e::class, ": ", $e->getMessage(), "\n";
+}
+
+echo "execute:\n";
+$stmt = $db->prepare('SELECT ?, ?');
+$p1 = 'placeholder';
+$p2 = 'second';
+$stmt->bindParam(1, $p1);
+$stmt->bindParam(2, $p2);
+$p1 = new Reexec($stmt);
+try {
+ $stmt->execute();
+ echo "execute after execute: no error\n";
+} catch (Throwable $e) {
+ echo $e::class, ": ", $e->getMessage(), "\n";
+}
+
+echo "closeCursor:\n";
+$stmt = $db->prepare('SELECT ?, ?');
+$p1 = 'placeholder';
+$p2 = 'second';
+$stmt->bindParam(1, $p1);
+$stmt->bindParam(2, $p2);
+$p1 = new Reclose($stmt);
+try {
+ $stmt->execute();
+ echo "execute after closeCursor: no error\n";
+} catch (Throwable $e) {
+ echo $e::class, ": ", $e->getMessage(), "\n";
+}
+
+echo "done\n";
+?>
+--EXPECT--
+bindValue:
+Error: Cannot modify a PDOStatement while parameter hooks are running
+execute after bindValue: no error
+execute:
+Error: Cannot modify a PDOStatement while parameter hooks are running
+execute after execute: no error
+closeCursor:
+Error: Cannot modify a PDOStatement while parameter hooks are running
+execute after closeCursor: no error
+done
diff -Nru php8.4-8.4.26/ext/readline/readline_cli.c php8.4-8.4.27/ext/readline/readline_cli.c
--- php8.4-8.4.26/ext/readline/readline_cli.c 2026-09-22 15:00:02.000000000 +0000
+++ php8.4-8.4.27/ext/readline/readline_cli.c 2026-10-19 14:38:59.000000000 +0000
@@ -130,7 +130,7 @@
char *prompt_spec = CLIR_G(prompt) ? CLIR_G(prompt) : DEFAULT_PROMPT;
bool unicode_warned = false;
- do {
+ while (*prompt_spec) {
if (*prompt_spec == '\\') {
switch (prompt_spec[1]) {
case '\\':
@@ -198,9 +198,9 @@
smart_str_appendc(&retval, '?');
}
}
- } while (++prompt_spec && *prompt_spec);
- smart_str_0(&retval);
- return retval.s;
+ ++prompt_spec;
+ }
+ return smart_str_extract(&retval);
}
/* }}} */
diff -Nru php8.4-8.4.26/ext/reflection/php_reflection.c php8.4-8.4.27/ext/reflection/php_reflection.c
--- php8.4-8.4.26/ext/reflection/php_reflection.c 2026-09-22 15:00:02.000000000 +0000
+++ php8.4-8.4.27/ext/reflection/php_reflection.c 2026-10-19 14:38:59.000000000 +0000
@@ -6461,7 +6461,7 @@
RETURN_THROWS();
}
- zval *src = &object->ce->default_properties_table[OBJ_PROP_TO_NUM(prop->offset)];
+ zval *src = &CE_DEFAULT_PROPERTIES_TABLE(object->ce)[OBJ_PROP_TO_NUM(prop->offset)];
zval *dst = OBJ_PROP(object, prop->offset);
if (!(Z_PROP_FLAG_P(dst) & IS_PROP_LAZY)) {
diff -Nru php8.4-8.4.26/ext/session/mod_user.c php8.4-8.4.27/ext/session/mod_user.c
--- php8.4-8.4.26/ext/session/mod_user.c 2026-09-22 15:00:02.000000000 +0000
+++ php8.4-8.4.27/ext/session/mod_user.c 2026-10-19 14:38:59.000000000 +0000
@@ -237,12 +237,16 @@
}
zval_ptr_dtor(&retval);
} else {
- zend_throw_error(NULL, "No session id returned by function");
+ if (!EG(exception)) {
+ zend_throw_error(NULL, "No session id returned by function");
+ }
return NULL;
}
if (!id) {
- zend_throw_error(NULL, "Session id must be a string");
+ if (!EG(exception)) {
+ zend_throw_error(NULL, "Session id must be a string");
+ }
return NULL;
}
diff -Nru php8.4-8.4.26/ext/session/php_session.h php8.4-8.4.27/ext/session/php_session.h
--- php8.4-8.4.26/ext/session/php_session.h 2026-09-22 15:00:02.000000000 +0000
+++ php8.4-8.4.27/ext/session/php_session.h 2026-10-19 14:38:59.000000000 +0000
@@ -204,6 +204,8 @@
bool set_handler; /* state if session module i setting handler or not */
bool random_seeded;
zend_string *session_vars; /* serialized original session data */
+
+ bool in_rfc1867_update; /* php_session_rfc1867_update() is running */
} php_ps_globals;
typedef php_ps_globals zend_ps_globals;
diff -Nru php8.4-8.4.26/ext/session/session.c php8.4-8.4.27/ext/session/session.c
--- php8.4-8.4.26/ext/session/session.c 2026-09-22 15:00:02.000000000 +0000
+++ php8.4-8.4.27/ext/session/session.c 2026-10-19 14:38:59.000000000 +0000
@@ -108,7 +108,6 @@
static inline void php_rinit_session_globals(void) /* {{{ */
{
/* Do NOT init PS(mod_user_names) here! */
- /* TODO: These could be moved to MINIT and removed. These should be initialized by php_rshutdown_session_globals() always when execution is finished. */
PS(id) = NULL;
PS(session_status) = php_session_none;
PS(in_save_handler) = 0;
@@ -118,6 +117,7 @@
PS(define_sid) = 1;
PS(session_vars) = NULL;
PS(module_number) = my_module_number;
+ PS(in_rfc1867_update) = false;
ZVAL_UNDEF(&PS(http_session_vars));
}
/* }}} */
@@ -465,7 +465,11 @@
}
PS(id) = PS(mod)->s_create_sid(&PS(mod_data));
if (!PS(id)) {
- PS(id) = php_session_create_id(NULL);
+ php_session_abort();
+ if (!EG(exception)) {
+ zend_throw_error(NULL, "Failed to create session ID: %s (path: %s)", PS(mod)->s_name, PS(save_path));
+ }
+ return FAILURE;
}
if (PS(use_cookies)) {
PS(send_cookie) = 1;
@@ -957,13 +961,35 @@
/* ***************
* Serializers *
*************** */
+
+/* The upload progress handler (php_session_rfc1867_update()) decodes and
+ * re-encodes the session during request startup, before RINIT, when no user
+ * code may run. Objects are then kept as __PHP_Incomplete_Class: no
+ * autoloading, no unserialize_callback_func, no __wakeup() or __unserialize(),
+ * and they are written back unchanged. */
+static void php_session_unserialize_init(php_unserialize_data_t *var_hash)
+{
+ PHP_VAR_UNSERIALIZE_INIT(*var_hash);
+ if (PS(in_rfc1867_update)) {
+ php_var_unserialize_set_incomplete_classes_only(*var_hash, true);
+ }
+}
+
+static void php_session_serialize_init(php_serialize_data_t *var_hash)
+{
+ PHP_VAR_SERIALIZE_INIT(*var_hash);
+ if (PS(in_rfc1867_update)) {
+ php_var_serialize_set_incomplete_classes_only(*var_hash, true);
+ }
+}
+
PS_SERIALIZER_ENCODE_FUNC(php_serialize) /* {{{ */
{
smart_str buf = {0};
php_serialize_data_t var_hash;
IF_SESSION_VARS() {
- PHP_VAR_SERIALIZE_INIT(var_hash);
+ php_session_serialize_init(&var_hash);
php_var_serialize(&buf, Z_REFVAL(PS(http_session_vars)), &var_hash);
PHP_VAR_SERIALIZE_DESTROY(var_hash);
}
@@ -980,7 +1006,7 @@
zend_string *var_name = ZSTR_INIT_LITERAL("_SESSION", 0);
ZVAL_NULL(&session_vars);
- PHP_VAR_UNSERIALIZE_INIT(var_hash);
+ php_session_unserialize_init(&var_hash);
result = php_var_unserialize(
&session_vars, (const unsigned char **)&val, (const unsigned char *)endptr, &var_hash);
PHP_VAR_UNSERIALIZE_DESTROY(var_hash);
@@ -1013,7 +1039,7 @@
php_serialize_data_t var_hash;
PS_ENCODE_VARS;
- PHP_VAR_SERIALIZE_INIT(var_hash);
+ php_session_serialize_init(&var_hash);
PS_ENCODE_LOOP(
if (ZSTR_LEN(key) > PS_BIN_MAX) continue;
@@ -1037,7 +1063,7 @@
php_unserialize_data_t var_hash;
zval *current, rv;
- PHP_VAR_UNSERIALIZE_INIT(var_hash);
+ php_session_unserialize_init(&var_hash);
for (p = val; p < endptr; ) {
size_t namelen = ((unsigned char)(*p)) & (~PS_BIN_UNDEF);
@@ -1079,7 +1105,7 @@
bool fail = false;
PS_ENCODE_VARS;
- PHP_VAR_SERIALIZE_INIT(var_hash);
+ php_session_serialize_init(&var_hash);
PS_ENCODE_LOOP(
smart_str_appendl(&buf, ZSTR_VAL(key), ZSTR_LEN(key));
@@ -1114,7 +1140,7 @@
php_unserialize_data_t var_hash;
zval *current, rv;
- PHP_VAR_UNSERIALIZE_INIT(var_hash);
+ php_session_unserialize_init(&var_hash);
p = val;
@@ -2980,6 +3006,7 @@
ps_globals->mod = NULL;
ps_globals->serializer = NULL;
ps_globals->mod_data = NULL;
+ ps_globals->in_rfc1867_update = false;
ps_globals->session_status = php_session_none;
ps_globals->default_mod = NULL;
ps_globals->mod_user_implemented = 0;
@@ -3193,8 +3220,12 @@
progress->next_update = Z_LVAL_P(progress->post_bytes_processed) + progress->update_step;
}
- php_session_initialize();
- PS(session_status) = php_session_active;
+ /* Runs before RINIT: no user code may be invoked, see php_session_unserialize_init() */
+ PS(in_rfc1867_update) = true;
+ if (php_session_initialize() == FAILURE || PS(session_status) != php_session_active) {
+ PS(in_rfc1867_update) = false;
+ return;
+ }
IF_SESSION_VARS() {
zval *sess_var = Z_REFVAL(PS(http_session_vars));
SEPARATE_ARRAY(sess_var);
@@ -3204,18 +3235,23 @@
zend_hash_update(Z_ARRVAL_P(sess_var), progress->key.s, &progress->data);
}
php_session_flush(1);
+ PS(in_rfc1867_update) = false;
} /* }}} */
static void php_session_rfc1867_cleanup(php_session_rfc1867_progress *progress) /* {{{ */
{
- php_session_initialize();
- PS(session_status) = php_session_active;
+ PS(in_rfc1867_update) = true;
+ if (php_session_initialize() == FAILURE || PS(session_status) != php_session_active) {
+ PS(in_rfc1867_update) = false;
+ return;
+ }
IF_SESSION_VARS() {
zval *sess_var = Z_REFVAL(PS(http_session_vars));
SEPARATE_ARRAY(sess_var);
zend_hash_del(Z_ARRVAL_P(sess_var), progress->key.s);
}
php_session_flush(1);
+ PS(in_rfc1867_update) = false;
} /* }}} */
static zend_result php_session_rfc1867_callback(unsigned int event, void *event_data, void **extra) /* {{{ */
@@ -3229,12 +3265,20 @@
if (!PS(rfc1867_enabled)) {
return retval;
}
+ if (PG(modules_activated)) {
+ /* request_parse_body(). Do not run here as it corrupts the session. */
+ return retval;
+ }
progress = PS(rfc1867_progress);
switch(event) {
case MULTIPART_EVENT_START: {
multipart_event_start *data = (multipart_event_start *) event_data;
+
+ /* This runs before RINIT, so we need to clear these early */
+ php_rinit_session_globals();
+
progress = ecalloc(1, sizeof(php_session_rfc1867_progress));
progress->content_length = data->content_length;
progress->sname_len = strlen(PS(session_name));
@@ -3392,6 +3436,11 @@
efree(progress);
progress = NULL;
PS(rfc1867_progress) = NULL;
+
+ /* $_SESSION was populated in incomplete_classes_only mode */
+ zend_string *session_var_name = ZSTR_INIT_LITERAL("_SESSION", 0);
+ zend_delete_global_variable(session_var_name);
+ zend_string_release_ex(session_var_name, 0);
}
break;
}
diff -Nru php8.4-8.4.26/ext/session/tests/rfc1867_incomplete_class_reserved_props.phpt php8.4-8.4.27/ext/session/tests/rfc1867_incomplete_class_reserved_props.phpt
--- php8.4-8.4.26/ext/session/tests/rfc1867_incomplete_class_reserved_props.phpt 1970-01-01 00:00:00.000000000 +0000
+++ php8.4-8.4.27/ext/session/tests/rfc1867_incomplete_class_reserved_props.phpt 2026-10-19 14:38:59.000000000 +0000
@@ -0,0 +1,139 @@
+--TEST--
+session rfc1867: the upload progress update rejects session data whose objects carry the incomplete class bookkeeping property names
+--EXTENSIONS--
+session
+--SKIPIF--
+
+--FILE--
+ 'x|O:8:"stdClass":1:{s:1:"a";i:1;}',
+ 'Class_Name' => 'x|O:8:"stdClass":1:{s:27:"__PHP_Incomplete_Class_Name";s:3:"foo";}',
+ 'Class_Serialized' => 'x|O:8:"stdClass":1:{s:33:"__PHP_Incomplete_Class_Serialized";s:3:"foo";}',
+ 'Enum_Case' => 'x|O:8:"stdClass":1:{s:26:"__PHP_Incomplete_Enum_Case";s:3:"foo";}',
+ 'nested' => 'x|a:1:{i:0;O:8:"stdClass":1:{s:27:"__PHP_Incomplete_Class_Name";s:3:"foo";}}',
+ 'mangled' => 'x|O:8:"stdClass":1:{s:30:"' . "\0" . 'A' . "\0" . '__PHP_Incomplete_Class_Name";s:3:"foo";}',
+ 'corrupt' => 'x|not-serialized-at-all',
+];
+
+$boundary = '---------------------------20896060251896012921717172737';
+$body = "--$boundary\r\n"
+ . "Content-Disposition: form-data; name=\"PHPSESSID\"\r\n\r\n$sid\r\n"
+ . "--$boundary\r\n"
+ . "Content-Disposition: form-data; name=\"PHP_SESSION_UPLOAD_PROGRESS\"\r\n\r\nkey\r\n"
+ . "--$boundary\r\n"
+ . "Content-Disposition: form-data; name=\"file1\"; filename=\"file1.txt\"\r\n\r\n1\r\n"
+ . "--$boundary--\r\n";
+
+$ini = [
+ 'error_reporting' => 'E_ALL',
+ 'html_errors' => '0',
+ 'file_uploads' => '1',
+ 'upload_max_filesize' => '1024',
+ 'session.save_path' => $dir,
+ 'session.name' => 'PHPSESSID',
+ 'session.use_strict_mode' => '0',
+ 'session.use_cookies' => '0',
+ 'session.use_only_cookies' => '0',
+ 'session.cache_limiter' => '',
+ 'session.save_handler' => 'files',
+ 'session.serialize_handler' => 'php',
+ 'session.upload_progress.enabled' => '1',
+ 'session.upload_progress.cleanup' => '0',
+ 'session.upload_progress.prefix' => 'upload_progress_',
+ 'session.upload_progress.name' => 'PHP_SESSION_UPLOAD_PROGRESS',
+ 'session.upload_progress.freq' => '1%',
+ 'session.upload_progress.min_freq' => '0.000000001',
+];
+
+/* php-cgi is started with -n, so a shared session module has to be named again. */
+$extension_dir = ini_get('extension_dir');
+foreach (['session.' . PHP_SHLIB_SUFFIX, 'php_session.' . PHP_SHLIB_SUFFIX] as $module) {
+ if ($extension_dir !== false && file_exists("$extension_dir/$module")) {
+ $ini['extension_dir'] = $extension_dir;
+ $ini['extension'] = $module;
+ break;
+ }
+}
+
+$cmd = [getenv('TEST_PHP_CGI_EXECUTABLE'), '-n', '-q'];
+foreach ($ini as $name => $value) {
+ $cmd[] = '-d';
+ $cmd[] = "$name=$value";
+}
+$cmd[] = '-f';
+$cmd[] = $worker;
+
+$env = getenv();
+$env['REDIRECT_STATUS'] = '1';
+$env['REQUEST_METHOD'] = 'POST';
+$env['CONTENT_TYPE'] = "multipart/form-data; boundary=$boundary";
+$env['CONTENT_LENGTH'] = (string) strlen($body);
+$env['SCRIPT_FILENAME'] = $worker;
+$env['PATH_TRANSLATED'] = $worker;
+$env['QUERY_STRING'] = '';
+
+foreach ($cases as $label => $record) {
+ file_put_contents($file, $record);
+
+ $pipes = [];
+ $proc = proc_open(
+ $cmd,
+ [0 => ['pipe', 'r'], 1 => ['pipe', 'w'], 2 => ['pipe', 'w']],
+ $pipes,
+ $dir,
+ $env
+ );
+ fwrite($pipes[0], $body);
+ fclose($pipes[0]);
+ $out = stream_get_contents($pipes[1]) . stream_get_contents($pipes[2]);
+ fclose($pipes[1]);
+ fclose($pipes[2]);
+ proc_close($proc);
+
+ /* A refused decode must leave exactly one warning: the handler stops there
+ * instead of writing the progress into the empty session it was left with,
+ * which would add a second warning about the save path. */
+ $kept = file_exists($file) && str_starts_with(file_get_contents($file), $record);
+ printf("%-16s warnings: %d, decode refused: %-5s record kept: %s\n", $label,
+ substr_count($out, 'Warning:'),
+ var_export(str_contains($out, 'Session has been destroyed'), true),
+ var_export($kept, true));
+}
+
+?>
+--CLEAN--
+
+--EXPECT--
+control warnings: 0, decode refused: false record kept: true
+Class_Name warnings: 1, decode refused: true record kept: false
+Class_Serialized warnings: 1, decode refused: true record kept: false
+Enum_Case warnings: 1, decode refused: true record kept: false
+nested warnings: 1, decode refused: true record kept: false
+mangled warnings: 0, decode refused: false record kept: true
+corrupt warnings: 1, decode refused: true record kept: false
diff -Nru php8.4-8.4.26/ext/session/tests/rfc1867_no_user_code.phpt php8.4-8.4.27/ext/session/tests/rfc1867_no_user_code.phpt
--- php8.4-8.4.26/ext/session/tests/rfc1867_no_user_code.phpt 1970-01-01 00:00:00.000000000 +0000
+++ php8.4-8.4.27/ext/session/tests/rfc1867_no_user_code.phpt 2026-10-19 14:38:59.000000000 +0000
@@ -0,0 +1,217 @@
+--TEST--
+session rfc1867: the upload progress update resolves no classes, keeps the session data intact and leaves no $_SESSION behind
+--EXTENSIONS--
+session
+--SKIPIF--
+
+--FILE--
+a = $d['a'];
+ }
+ function __serialize(): array {
+ echo "U::__serialize\n";
+ return ['a' => $this->a];
+ }
+}
+
+class Cust implements Serializable {
+ public $x = 'payload';
+ function serialize() {
+ return $this->x;
+ }
+ function unserialize($d) {
+ $this->x = $d;
+ }
+}
+
+/* The handler needs a $_SESSION to decode the record into, and registers it in
+ * the global symbol table. This script has not called session_start(), so it
+ * must not be left behind: it would otherwise expose the session data of
+ * whatever id the request body carried. */
+var_dump(array_key_exists('_SESSION', $GLOBALS));
+var_dump(session_status() === PHP_SESSION_NONE);
+
+echo "--- record after the update:\n";
+$after = file_get_contents($file);
+var_dump(substr($after, 0, strlen($record)) === $record);
+var_dump(substr($after, strlen($record), strlen('upload_progress_key|')));
+
+echo "--- session_start():\n";
+session_start();
+var_dump(session_id());
+var_dump($_SESSION['w']->a, $_SESSION['u']->a, $_SESSION['c']->x);
+var_dump($_SESSION['e'][0] === Suit::Hearts, $_SESSION['e'][1] === Suit::Hearts);
+var_dump($_SESSION['m']);
+var_dump(isset($_SESSION['upload_progress_key']['bytes_processed']));
+session_destroy();
+PHP);
+
+$boundary = '---------------------------20896060251896012921717172737';
+$body = "--$boundary\r\n"
+ . "Content-Disposition: form-data; name=\"PHPSESSID\"\r\n\r\n$sid\r\n"
+ . "--$boundary\r\n"
+ . "Content-Disposition: form-data; name=\"PHP_SESSION_UPLOAD_PROGRESS\"\r\n\r\nkey\r\n"
+ . "--$boundary\r\n"
+ . "Content-Disposition: form-data; name=\"file1\"; filename=\"file1.txt\"\r\n\r\n1\r\n"
+ . "--$boundary--\r\n";
+
+$ini = [
+ 'error_reporting' => 'E_ALL&~E_DEPRECATED',
+ 'file_uploads' => '1',
+ 'upload_max_filesize' => '1024',
+ 'session.save_path' => $dir,
+ 'session.name' => 'PHPSESSID',
+ 'session.use_strict_mode' => '0',
+ 'session.use_cookies' => '0',
+ 'session.use_only_cookies' => '0',
+ 'session.cache_limiter' => '',
+ 'session.save_handler' => 'files',
+ 'session.serialize_handler' => 'php',
+ 'session.upload_progress.enabled' => '1',
+ 'session.upload_progress.cleanup' => '0',
+ 'session.upload_progress.prefix' => 'upload_progress_',
+ 'session.upload_progress.name' => 'PHP_SESSION_UPLOAD_PROGRESS',
+ 'session.upload_progress.freq' => '1%',
+ 'session.upload_progress.min_freq' => '0.000000001',
+];
+
+/* php-cgi is started with -n, so a shared session module has to be named again. */
+$extension_dir = ini_get('extension_dir');
+foreach (['session.' . PHP_SHLIB_SUFFIX, 'php_session.' . PHP_SHLIB_SUFFIX] as $module) {
+ if ($extension_dir !== false && file_exists("$extension_dir/$module")) {
+ $ini['extension_dir'] = $extension_dir;
+ $ini['extension'] = $module;
+ break;
+ }
+}
+
+$cmd = [getenv('TEST_PHP_CGI_EXECUTABLE'), '-n', '-q'];
+foreach ($ini as $name => $value) {
+ $cmd[] = '-d';
+ $cmd[] = "$name=$value";
+}
+$cmd[] = '-f';
+$cmd[] = $worker;
+
+$env = getenv();
+$env['REDIRECT_STATUS'] = '1';
+$env['REQUEST_METHOD'] = 'POST';
+$env['CONTENT_TYPE'] = "multipart/form-data; boundary=$boundary";
+$env['CONTENT_LENGTH'] = (string) strlen($body);
+$env['SCRIPT_FILENAME'] = $worker;
+$env['PATH_TRANSLATED'] = $worker;
+$env['QUERY_STRING'] = '';
+$env['TEST_SESSION_RECORD'] = $record;
+$env['TEST_SESSION_FILE'] = $file;
+
+$pipes = [];
+$proc = proc_open(
+ $cmd,
+ [0 => ['pipe', 'r'], 1 => ['pipe', 'w'], 2 => ['pipe', 'w']],
+ $pipes,
+ $dir,
+ $env
+);
+fwrite($pipes[0], $body);
+fclose($pipes[0]);
+$out = stream_get_contents($pipes[1]);
+$err = stream_get_contents($pipes[2]);
+fclose($pipes[1]);
+fclose($pipes[2]);
+proc_close($proc);
+
+echo $out;
+if ($err !== '') {
+ echo "--- stderr:\n$err";
+}
+
+?>
+--CLEAN--
+
+--EXPECTF--
+X-Powered-By: PHP/%s
+Content-type: text/html; charset=UTF-8
+
+bool(false)
+bool(true)
+--- record after the update:
+bool(true)
+string(20) "upload_progress_key|"
+--- session_start():
+autoload(Missing)
+W::__wakeup
+U::__unserialize
+string(17) "rfc1867nousercode"
+int(1)
+int(2)
+string(7) "payload"
+bool(true)
+bool(true)
+object(__PHP_Incomplete_Class)#%d (2) {
+ ["__PHP_Incomplete_Class_Name"]=>
+ string(7) "Missing"
+ ["x"]=>
+ int(3)
+}
+bool(true)
diff -Nru php8.4-8.4.26/ext/session/tests/rfc1867_sid_invalid.phpt php8.4-8.4.27/ext/session/tests/rfc1867_sid_invalid.phpt
--- php8.4-8.4.26/ext/session/tests/rfc1867_sid_invalid.phpt 2026-09-22 15:00:02.000000000 +0000
+++ php8.4-8.4.27/ext/session/tests/rfc1867_sid_invalid.phpt 2026-10-19 14:38:59.000000000 +0000
@@ -43,7 +43,7 @@
var_dump(session_id());
var_dump(basename(__FILE__) == $_POST[ini_get("session.upload_progress.name")]);
var_dump($_FILES);
-var_dump($_SESSION["upload_progress_" . basename(__FILE__)]);
+var_dump($_SESSION);
session_destroy();
?>
--CLEAN--
@@ -55,13 +55,9 @@
Warning: PHP Request Startup: Failed to read session data: files (path: ) in Unknown on line 0
-Warning: PHP Request Startup: Failed to write session data (files). Please verify that the current setting of session.save_path is correct () in Unknown on line 0
-
Warning: PHP Request Startup: Session ID is too long or contains illegal characters. Only the A-Z, a-z, 0-9, "-", and "," characters are allowed in Unknown on line 0
Warning: PHP Request Startup: Failed to read session data: files (path: ) in Unknown on line 0
-
-Warning: PHP Request Startup: Failed to write session data (files). Please verify that the current setting of session.save_path is correct () in Unknown on line 0
string(%d) ""
bool(true)
array(2) {
@@ -96,50 +92,4 @@
int(1)
}
}
-array(5) {
- ["start_time"]=>
- int(%d)
- ["content_length"]=>
- int(469)
- ["bytes_processed"]=>
- int(469)
- ["done"]=>
- bool(true)
- ["files"]=>
- array(2) {
- [0]=>
- array(7) {
- ["field_name"]=>
- string(5) "file1"
- ["name"]=>
- string(9) "file1.txt"
- ["tmp_name"]=>
- string(%d) "%s"
- ["error"]=>
- int(0)
- ["done"]=>
- bool(true)
- ["start_time"]=>
- int(%d)
- ["bytes_processed"]=>
- int(1)
- }
- [1]=>
- array(7) {
- ["field_name"]=>
- string(5) "file2"
- ["name"]=>
- string(9) "file2.txt"
- ["tmp_name"]=>
- string(%d) "%s"
- ["error"]=>
- int(0)
- ["done"]=>
- bool(true)
- ["start_time"]=>
- int(%d)
- ["bytes_processed"]=>
- int(1)
- }
- }
-}
+NULL
diff -Nru php8.4-8.4.26/ext/session/tests/user_session_module/session_create_id_create_sid_throws.phpt php8.4-8.4.27/ext/session/tests/user_session_module/session_create_id_create_sid_throws.phpt
--- php8.4-8.4.26/ext/session/tests/user_session_module/session_create_id_create_sid_throws.phpt 2026-09-22 15:00:02.000000000 +0000
+++ php8.4-8.4.27/ext/session/tests/user_session_module/session_create_id_create_sid_throws.phpt 2026-10-19 14:38:59.000000000 +0000
@@ -36,14 +36,13 @@
session_create_id();
} catch (Throwable $e) {
echo $e::class, ": ", $e->getMessage(), PHP_EOL;
- $previous = $e->getPrevious();
- echo $previous::class, ": ", $previous->getMessage(), PHP_EOL;
+ var_dump($e->getPrevious());
}
var_dump(session_status() === PHP_SESSION_ACTIVE);
?>
--EXPECT--
-Error: Session id must be a string
Exception: create_sid failed
+NULL
bool(true)
diff -Nru php8.4-8.4.26/ext/session/tests/user_session_module/session_create_sid_return_destructor_throws.phpt php8.4-8.4.27/ext/session/tests/user_session_module/session_create_sid_return_destructor_throws.phpt
--- php8.4-8.4.26/ext/session/tests/user_session_module/session_create_sid_return_destructor_throws.phpt 1970-01-01 00:00:00.000000000 +0000
+++ php8.4-8.4.27/ext/session/tests/user_session_module/session_create_sid_return_destructor_throws.phpt 2026-10-19 14:38:59.000000000 +0000
@@ -0,0 +1,37 @@
+--TEST--
+Exceptions from destruction of an invalid create_sid() return value are preserved
+--EXTENSIONS--
+session
+--FILE--
+getMessage(), PHP_EOL;
+}
+?>
+--EXPECT--
+RuntimeException: destructor failed
diff -Nru php8.4-8.4.26/ext/session/tests/user_session_module/session_regenerate_id_create_sid_throws.phpt php8.4-8.4.27/ext/session/tests/user_session_module/session_regenerate_id_create_sid_throws.phpt
--- php8.4-8.4.26/ext/session/tests/user_session_module/session_regenerate_id_create_sid_throws.phpt 1970-01-01 00:00:00.000000000 +0000
+++ php8.4-8.4.27/ext/session/tests/user_session_module/session_regenerate_id_create_sid_throws.phpt 2026-10-19 14:38:59.000000000 +0000
@@ -0,0 +1,57 @@
+--TEST--
+session_regenerate_id() preserves exceptions from create_sid(), including collision retries
+--EXTENSIONS--
+session
+--INI--
+session.use_cookies=0
+session.cache_limiter=
+session.use_strict_mode=1
+session.gc_probability=0
+--FILE--
+calls === $this->throwAt) {
+ throw new RuntimeException('create_sid failed');
+ }
+ return 'session' . $this->calls;
+ }
+}
+
+foreach ([2, 3] as $throwAt) {
+ $handler = new FailingHandler();
+ $handler->throwAt = $throwAt;
+ session_set_save_handler($handler);
+ session_id('');
+ session_start();
+
+ try {
+ session_regenerate_id();
+ } catch (Throwable $e) {
+ echo $e::class, ': ', $e->getMessage(), PHP_EOL;
+ }
+ echo 'create_sid calls: ', $handler->calls, PHP_EOL;
+}
+?>
+--EXPECT--
+RuntimeException: create_sid failed
+create_sid calls: 2
+RuntimeException: create_sid failed
+create_sid calls: 3
diff -Nru php8.4-8.4.26/ext/session/tests/user_session_module/session_start_create_sid_throws.phpt php8.4-8.4.27/ext/session/tests/user_session_module/session_start_create_sid_throws.phpt
--- php8.4-8.4.26/ext/session/tests/user_session_module/session_start_create_sid_throws.phpt 1970-01-01 00:00:00.000000000 +0000
+++ php8.4-8.4.27/ext/session/tests/user_session_module/session_start_create_sid_throws.phpt 2026-10-19 14:38:59.000000000 +0000
@@ -0,0 +1,64 @@
+--TEST--
+session_start() preserves exceptions from create_sid()
+--EXTENSIONS--
+session
+--INI--
+session.use_cookies=0
+session.cache_limiter=
+session.gc_probability=0
+--FILE--
+invalidReturn) {
+ return [];
+ }
+ throw new RuntimeException('create_sid failed');
+ }
+
+ public function validateId(string $id): bool
+ {
+ return false;
+ }
+}
+
+$handler = new FailingHandler();
+session_set_save_handler($handler);
+
+foreach ([false, true] as $strict) {
+ foreach ([false, true] as $invalidReturn) {
+ echo 'strict mode: ', (int) $strict, ', invalid return: ', (int) $invalidReturn, PHP_EOL;
+ $handler->invalidReturn = $invalidReturn;
+ session_id($strict ? 'rejected' : '');
+ try {
+ session_start(['use_strict_mode' => $strict]);
+ } catch (Throwable $e) {
+ echo $e::class, ': ', $e->getMessage(), PHP_EOL;
+ }
+ }
+}
+?>
+--EXPECT--
+strict mode: 0, invalid return: 0
+RuntimeException: create_sid failed
+strict mode: 0, invalid return: 1
+TypeError: FailingHandler::create_sid(): Return value must be of type string, array returned
+strict mode: 1, invalid return: 0
+RuntimeException: create_sid failed
+strict mode: 1, invalid return: 1
+TypeError: FailingHandler::create_sid(): Return value must be of type string, array returned
diff -Nru php8.4-8.4.26/ext/session/tests/user_session_module/session_start_strict_recreate_create_sid_fails.phpt php8.4-8.4.27/ext/session/tests/user_session_module/session_start_strict_recreate_create_sid_fails.phpt
--- php8.4-8.4.26/ext/session/tests/user_session_module/session_start_strict_recreate_create_sid_fails.phpt 1970-01-01 00:00:00.000000000 +0000
+++ php8.4-8.4.27/ext/session/tests/user_session_module/session_start_strict_recreate_create_sid_fails.phpt 2026-10-19 14:38:59.000000000 +0000
@@ -0,0 +1,49 @@
+--TEST--
+session_start() strict mode re-creation must abort when create_sid fails
+--INI--
+session.use_trans_sid=1
+session.use_only_cookies=0
+error_reporting=E_ALL & ~E_DEPRECATED
+--EXTENSIONS--
+session
+--FILE--
+ true]));
+} catch (Throwable $e) {
+ echo $e::class, ': ', $e->getMessage(), PHP_EOL;
+}
+
+var_dump(session_status() === PHP_SESSION_ACTIVE);
+var_dump(defined('SID'));
+
+?>
+--EXPECT--
+RuntimeException: create_sid failed
+bool(false)
+bool(false)
diff -Nru php8.4-8.4.26/ext/shmop/shmop.c php8.4-8.4.27/ext/shmop/shmop.c
--- php8.4-8.4.26/ext/shmop/shmop.c 2026-09-22 15:00:02.000000000 +0000
+++ php8.4-8.4.27/ext/shmop/shmop.c 2026-10-19 14:38:59.000000000 +0000
@@ -245,7 +245,10 @@
startaddr = shmop->addr + start;
zend_long bytes = count ? count : shmop->size - start;
- return_string = zend_string_init(startaddr, bytes, 0);
+ return_string = zend_string_finit(startaddr, bytes, /* persistent */ false, /* fallible */ true);
+ if (UNEXPECTED(!return_string)) {
+ RETURN_OOM();
+ }
RETURN_NEW_STR(return_string);
}
diff -Nru php8.4-8.4.26/ext/shmop/tests/tsrm_shmat.phpt php8.4-8.4.27/ext/shmop/tests/tsrm_shmat.phpt
--- php8.4-8.4.26/ext/shmop/tests/tsrm_shmat.phpt 1970-01-01 00:00:00.000000000 +0000
+++ php8.4-8.4.27/ext/shmop/tests/tsrm_shmat.phpt 2026-10-19 14:38:59.000000000 +0000
@@ -0,0 +1,24 @@
+--TEST--
+TSRM Windows shmop keeps the payload within its mapping
+--EXTENSIONS--
+shmop
+--SKIPIF--
+
+--FILE--
+
+--EXPECT--
+bool(true)
+int(65472)
+int(65472)
+string(1) "z"
+bool(true)
diff -Nru php8.4-8.4.26/ext/simplexml/simplexml.c php8.4-8.4.27/ext/simplexml/simplexml.c
--- php8.4-8.4.26/ext/simplexml/simplexml.c 2026-09-22 15:00:02.000000000 +0000
+++ php8.4-8.4.27/ext/simplexml/simplexml.c 2026-10-19 14:38:59.000000000 +0000
@@ -929,7 +929,7 @@
zend_string *res;
if (tmp) {
- res = zend_string_init((char*)tmp, strlen((char *)tmp), 0);
+ res = zend_string_finit((char*)tmp, strlen((char *)tmp), /* persistent */ false, /* fallible */ true);
xmlFree(tmp);
} else {
res = ZSTR_EMPTY_ALLOC();
@@ -940,17 +940,16 @@
/* }}} */
/* {{{ get_base_node_value() */
-static void get_base_node_value(php_sxe_object *sxe_ref, xmlNodePtr node, zval *value, zend_string *nsprefix, int isprefix)
+static bool get_base_node_value(php_sxe_object *sxe_ref, xmlNodePtr node, zval *value, zend_string *nsprefix, int isprefix)
{
php_sxe_object *subnode;
- xmlChar *contents;
if (node->children && node->children->type == XML_TEXT_NODE && !xmlIsBlankNode(node->children)) {
- contents = xmlNodeListGetString(node->doc, node->children, 1);
- if (contents) {
- ZVAL_STRING(value, (char *)contents);
- xmlFree(contents);
+ zend_string *str = sxe_xmlNodeListGetString(node->doc, node->children, 1);
+ if (UNEXPECTED(!str)) {
+ return false;
}
+ ZVAL_STR(value, str);
} else {
subnode = php_sxe_object_new(sxe_ref->zo.ce, sxe_ref->fptr_count);
subnode->document = sxe_ref->document;
@@ -964,6 +963,7 @@
ZVAL_OBJ(value, &subnode->zo);
/*zval_add_ref(value);*/
}
+ return true;
}
/* }}} */
@@ -1111,13 +1111,20 @@
test = sxe->iter.name && sxe->iter.type == SXE_ITER_ATTRLIST;
while (attr) {
if ((!test || xmlStrEqual(attr->name, BAD_CAST ZSTR_VAL(sxe->iter.name))) && match_ns((xmlNodePtr)attr, sxe->iter.nsprefix, sxe->iter.isprefix)) {
- ZVAL_STR(&value, sxe_xmlNodeListGetString((xmlDocPtr) sxe->document->ptr, attr->children, 1));
+ zend_string *str = sxe_xmlNodeListGetString((xmlDocPtr) sxe->document->ptr, attr->children, 1);
+ if (UNEXPECTED(!str)) {
+ goto oom;
+ }
+ ZVAL_STR(&value, str);
namelen = xmlStrlen(attr->name);
if (Z_ISUNDEF(zattr)) {
array_init(&zattr);
sxe_properties_add(rv, "@attributes", sizeof("@attributes") - 1, &zattr);
}
add_assoc_zval_ex(&zattr, (char*)attr->name, namelen, &value);
+ if (ZEND_HAS_OOM()) {
+ goto oom;
+ }
}
attr = attr->next;
}
@@ -1129,7 +1136,11 @@
if (node && sxe->iter.type != SXE_ITER_ATTRLIST) {
if (node->type == XML_ATTRIBUTE_NODE) {
- ZVAL_STR(&value, sxe_xmlNodeListGetString(node->doc, node->children, 1));
+ zend_string *str = sxe_xmlNodeListGetString(node->doc, node->children, 1);
+ if (UNEXPECTED(!str)) {
+ goto oom;
+ }
+ ZVAL_STR(&value, str);
zend_hash_next_index_insert(rv, &value);
node = NULL;
} else if (sxe->iter.type != SXE_ITER_CHILD) {
@@ -1149,8 +1160,15 @@
const xmlChar *cur = node->content;
if (*cur != 0) {
- ZVAL_STR(&value, sxe_xmlNodeListGetString(node->doc, node, 1));
+ zend_string *str = sxe_xmlNodeListGetString(node->doc, node, 1);
+ if (UNEXPECTED(!str)) {
+ goto oom;
+ }
+ ZVAL_STR(&value, str);
zend_hash_next_index_insert(rv, &value);
+ if (ZEND_HAS_OOM()) {
+ goto oom;
+ }
}
goto next_iter;
}
@@ -1167,13 +1185,18 @@
namelen = xmlStrlen(node->name);
}
- get_base_node_value(sxe, node, &value, sxe->iter.nsprefix, sxe->iter.isprefix);
+ if (UNEXPECTED(!get_base_node_value(sxe, node, &value, sxe->iter.nsprefix, sxe->iter.isprefix))) {
+ goto oom;
+ }
if ( use_iter ) {
zend_hash_next_index_insert(rv, &value);
} else {
sxe_properties_add(rv, name, namelen, &value);
}
+ if (ZEND_HAS_OOM()) {
+ goto oom;
+ }
next_iter:
if (UNEXPECTED(node->type == XML_ENTITY_DECL)) {
/* Entity decls are linked together via the next pointer.
@@ -1190,6 +1213,10 @@
}
return rv;
+
+oom:
+ zend_hash_clean(rv);
+ return rv;
}
/* }}} */
@@ -1307,7 +1334,9 @@
if (result != NULL) {
array_init_size(return_value, result->nodeNr);
- zend_hash_real_init_packed(Z_ARRVAL_P(return_value));
+ if (zend_hash_real_finit_packed(Z_ARRVAL_P(return_value), true) != SUCCESS) {
+ goto oom;
+ }
for (i = 0; i < result->nodeNr; ++i) {
nodeptr = result->nodeTab[i];
@@ -1326,6 +1355,9 @@
}
add_next_index_zval(return_value, &value);
+ if (ZEND_HAS_OOM()) {
+ goto oom;
+ }
}
}
} else {
@@ -1333,6 +1365,13 @@
}
xmlXPathFreeObject(retval);
+ return;
+
+oom:
+ xmlXPathFreeObject(retval);
+ zval_ptr_dtor(return_value);
+ ZVAL_NULL(return_value);
+ RETURN_OOM();
}
/* }}} */
@@ -1636,7 +1675,11 @@
node = php_sxe_get_first_node_non_destructive(sxe, node);
if (node) {
namelen = xmlStrlen(node->name);
- RETURN_STRINGL_FAST((const char *) node->name, namelen);
+ zend_string *str = zend_string_finit_fast((const char *)node->name, namelen, /* fallible */ true);
+ if (!str) {
+ RETURN_OOM();
+ }
+ RETURN_STR(str);
} else {
RETURN_EMPTY_STRING();
}
@@ -1818,7 +1861,9 @@
static zend_result cast_object(zval *object, int type, char *contents)
{
if (contents) {
- ZVAL_STRINGL(object, contents, strlen(contents));
+ if (UNEXPECTED(!ZVAL_FSTRINGL(object, contents, strlen(contents)))) {
+ return FAILURE;
+ }
} else {
ZVAL_NULL(object);
}
@@ -1916,9 +1961,10 @@
RETURN_THROWS();
}
- zend_result rv = sxe_object_cast_ex(Z_OBJ_P(ZEND_THIS), return_value, IS_STRING);
- ZEND_IGNORE_VALUE(rv);
- ZEND_ASSERT(rv == SUCCESS);
+ if (sxe_object_cast_ex(Z_OBJ_P(ZEND_THIS), return_value, IS_STRING) != SUCCESS) {
+ zval_ptr_dtor(return_value);
+ RETURN_EMPTY_STRING();
+ }
}
/* }}} */
@@ -2036,7 +2082,7 @@
}
curnode = (xmlNodePtr)((php_libxml_node_ptr *)intern->node)->node;
- RETURN_STRINGL((char*)curnode->name, xmlStrlen(curnode->name));
+ RETURN_FSTRINGL((const char *)curnode->name, xmlStrlen(curnode->name));
}
/* }}} */
diff -Nru php8.4-8.4.26/ext/simplexml/tests/oom_array_cast.phpt php8.4-8.4.27/ext/simplexml/tests/oom_array_cast.phpt
--- php8.4-8.4.26/ext/simplexml/tests/oom_array_cast.phpt 1970-01-01 00:00:00.000000000 +0000
+++ php8.4-8.4.27/ext/simplexml/tests/oom_array_cast.phpt 2026-10-19 14:38:59.000000000 +0000
@@ -0,0 +1,20 @@
+--TEST--
+Array cast of large tree doesn't reach hard memory limit
+--EXTENSIONS--
+simplexml
+--INI--
+memory_limit=64M
+--FILE--
+' . str_repeat('', 750000) . '');
+
+$xml = simplexml_load_file($path);
+$result = (array) $xml;
+?>
+--CLEAN--
+
+--EXPECTF--
+Fatal error: Allowed memory size of 67108864 bytes exhausted %S(tried to allocate %d bytes) in %s on line %d
diff -Nru php8.4-8.4.26/ext/simplexml/tests/oom_json_encode.phpt php8.4-8.4.27/ext/simplexml/tests/oom_json_encode.phpt
--- php8.4-8.4.26/ext/simplexml/tests/oom_json_encode.phpt 1970-01-01 00:00:00.000000000 +0000
+++ php8.4-8.4.27/ext/simplexml/tests/oom_json_encode.phpt 2026-10-19 14:38:59.000000000 +0000
@@ -0,0 +1,20 @@
+--TEST--
+json_encode() of large tree doesn't reach hard memory limit
+--EXTENSIONS--
+simplexml
+--INI--
+memory_limit=64M
+--FILE--
+' . str_repeat('', 750000) . '');
+
+$xml = simplexml_load_file($path);
+$result = json_encode($xml);
+?>
+--CLEAN--
+
+--EXPECTF--
+Fatal error: Allowed memory size of 67108864 bytes exhausted %S(tried to allocate %d bytes) in %s on line %d
diff -Nru php8.4-8.4.26/ext/simplexml/tests/oom_tostring.phpt php8.4-8.4.27/ext/simplexml/tests/oom_tostring.phpt
--- php8.4-8.4.26/ext/simplexml/tests/oom_tostring.phpt 1970-01-01 00:00:00.000000000 +0000
+++ php8.4-8.4.27/ext/simplexml/tests/oom_tostring.phpt 2026-10-19 14:38:59.000000000 +0000
@@ -0,0 +1,15 @@
+--TEST--
+SimpleXMLElement::__toString() OOM
+--EXTENSIONS--
+simplexml
+--INI--
+memory_limit=16M
+--FILE--
+' . str_repeat('x', 5500000) . '', 'SimpleXMLElement', LIBXML_PARSEHUGE);
+$pad = str_repeat('p', 11500000);
+$value = $xml->__toString();
+echo strlen($value), "\n";
+?>
+--EXPECTF--
+Fatal error: Allowed memory size of 16777216 bytes exhausted %S(tried to allocate %d bytes) in %s on line 4
diff -Nru php8.4-8.4.26/ext/simplexml/tests/oom_xpath.phpt php8.4-8.4.27/ext/simplexml/tests/oom_xpath.phpt
--- php8.4-8.4.26/ext/simplexml/tests/oom_xpath.phpt 1970-01-01 00:00:00.000000000 +0000
+++ php8.4-8.4.27/ext/simplexml/tests/oom_xpath.phpt 2026-10-19 14:38:59.000000000 +0000
@@ -0,0 +1,20 @@
+--TEST--
+SimpleXMLElement::xpath() with large result set doesn't reach hard memory limit
+--EXTENSIONS--
+simplexml
+--INI--
+memory_limit=64M
+--FILE--
+' . str_repeat('', 750000) . '');
+
+$xml = simplexml_load_file($path);
+$result = $xml->xpath("//a");
+?>
+--CLEAN--
+
+--EXPECTF--
+Fatal error: Allowed memory size of 67108864 bytes exhausted %S(tried to allocate %d bytes) in %s on line %d
diff -Nru php8.4-8.4.26/ext/simplexml/tests/reconstruct_with_retained_child.phpt php8.4-8.4.27/ext/simplexml/tests/reconstruct_with_retained_child.phpt
--- php8.4-8.4.26/ext/simplexml/tests/reconstruct_with_retained_child.phpt 1970-01-01 00:00:00.000000000 +0000
+++ php8.4-8.4.27/ext/simplexml/tests/reconstruct_with_retained_child.phpt 2026-10-19 14:38:59.000000000 +0000
@@ -0,0 +1,19 @@
+--TEST--
+SimpleXMLElement reconstruction with a retained child
+--EXTENSIONS--
+simplexml
+--FILE--
+old');
+$child = $xml->child;
+
+$xml->__construct('new');
+
+var_dump((string) $xml->new);
+var_dump((string) $child);
+var_dump($child->asXML());
+?>
+--EXPECT--
+string(3) "new"
+string(3) "old"
+string(18) "old"
diff -Nru php8.4-8.4.26/ext/snmp/tests/gh23453.phpt php8.4-8.4.27/ext/snmp/tests/gh23453.phpt
--- php8.4-8.4.26/ext/snmp/tests/gh23453.phpt 2026-09-22 15:00:02.000000000 +0000
+++ php8.4-8.4.27/ext/snmp/tests/gh23453.phpt 2026-10-19 14:38:59.000000000 +0000
@@ -1,5 +1,7 @@
--TEST--
GH-23453 (SNMP::setSecurity() frees a non-malloced address with a context engine ID longer than 32 bytes)
+--CREDITS--
+TristanInSec
--EXTENSIONS--
snmp
--FILE--
diff -Nru php8.4-8.4.26/ext/soap/php_encoding.c php8.4-8.4.27/ext/soap/php_encoding.c
--- php8.4-8.4.26/ext/soap/php_encoding.c 2026-09-22 15:00:02.000000000 +0000
+++ php8.4-8.4.27/ext/soap/php_encoding.c 2026-10-19 14:38:59.000000000 +0000
@@ -1001,7 +1001,7 @@
ZVAL_STR(&tmp, get_serialization_string_from_zval(data));
data = &tmp;
}
- str = (unsigned char *) safe_emalloc(Z_STRLEN_P(data) * 2, sizeof(char), 1);
+ str = (unsigned char *) safe_emalloc(Z_STRLEN_P(data), 2, 1);
for (i = j = 0; i < Z_STRLEN_P(data); i++) {
str[j++] = hexconvtab[((unsigned char)Z_STRVAL_P(data)[i]) >> 4];
@@ -2317,13 +2317,15 @@
if (EG(exception)) {
goto iterator_done;
}
- array_set_zval_key(Z_ARRVAL(array_copy), &key, val);
- zval_ptr_dtor(val);
+ zend_result status = array_set_zval_key(Z_ARRVAL(array_copy), &key, val);
zval_ptr_dtor(&key);
+ if (status == FAILURE) {
+ goto iterator_done;
+ }
} else {
+ Z_TRY_ADDREF_P(val);
add_next_index_zval(&array_copy, val);
}
- Z_TRY_ADDREF_P(val);
iter->funcs->move_forward(iter);
if (EG(exception)) {
@@ -2707,6 +2709,11 @@
ar = zend_hash_index_update(Z_ARRVAL_P(ar), pos[i], &tmpAr);
}
i++;
+ if (ZEND_HAS_OOM()) {
+ zval_ptr_dtor(ret);
+ ZVAL_NULL(ret);
+ goto ret;
+ }
}
zend_hash_index_update(Z_ARRVAL_P(ar), pos[i], &tmpVal);
@@ -2732,6 +2739,8 @@
}
trav = trav->next;
}
+
+ret:;
efree(dims);
efree(pos);
return ret;
diff -Nru php8.4-8.4.26/ext/soap/php_http.c php8.4-8.4.27/ext/soap/php_http.c
--- php8.4-8.4.26/ext/soap/php_http.c 2026-09-22 15:00:02.000000000 +0000
+++ php8.4-8.4.27/ext/soap/php_http.c 2026-10-19 14:38:59.000000000 +0000
@@ -1498,9 +1498,17 @@
}
if (http_buf) {
- http_buf = zend_string_safe_realloc(http_buf, 1, http_buf_size, buf_size, false);
+ zend_string *new_http_buf = zend_string_safe_frealloc(http_buf, 1, http_buf_size, buf_size, /* persistent */ false, /* fallible */ true);
+ if (UNEXPECTED(!new_http_buf)) {
+ zend_string_release_ex(http_buf, false);
+ return NULL;
+ }
+ http_buf = new_http_buf;
} else {
- http_buf = zend_string_alloc(buf_size, 0);
+ http_buf = zend_string_falloc(buf_size, /* persistent */ false, /* fallible */ true);
+ if (UNEXPECTED(!http_buf)) {
+ return NULL;
+ }
}
while (len_size < buf_size) {
@@ -1560,7 +1568,10 @@
if (header_length < 0 || header_length >= ZSTR_MAX_LEN) {
return NULL;
}
- http_buf = zend_string_alloc(header_length, 0);
+ http_buf = zend_string_falloc(header_length, /* persistent */ false, /* fallible */ true);
+ if (UNEXPECTED(!http_buf)) {
+ return NULL;
+ }
while (http_buf_size < header_length) {
ssize_t len_read = php_stream_read(stream, http_buf->val + http_buf_size, header_length - http_buf_size);
if (len_read <= 0) {
@@ -1576,7 +1587,12 @@
zend_string_efree(http_buf);
return NULL;
}
- http_buf = zend_string_realloc(http_buf, http_buf_size + 4096, false);
+ zend_string *new_http_buf = zend_string_safe_frealloc(http_buf, 1, http_buf_size, 4096, /* persistent */ false, /* fallible */ true);
+ if (UNEXPECTED(!new_http_buf)) {
+ zend_string_release_ex(http_buf, false);
+ return NULL;
+ }
+ http_buf = new_http_buf;
} else {
http_buf = zend_string_alloc(4096, 0);
}
@@ -1609,6 +1625,10 @@
/* add header to collection */
smart_str_appends(&tmp_response, headerbuf);
+
+ if (ZEND_HAS_OOM()) {
+ break;
+ }
}
smart_str_free(&tmp_response);
diff -Nru php8.4-8.4.26/ext/soap/php_sdl.c php8.4-8.4.27/ext/soap/php_sdl.c
--- php8.4-8.4.26/ext/soap/php_sdl.c 2026-09-22 15:00:02.000000000 +0000
+++ php8.4-8.4.27/ext/soap/php_sdl.c 2026-10-19 14:38:59.000000000 +0000
@@ -364,7 +364,12 @@
xmlAttrPtr tmp = get_attribute(trav->properties, "location");
if (tmp) {
xmlChar *uri = schema_location_construct_uri(tmp);
- load_wsdl_ex(this_ptr, (char*)uri, ctx, 1);
+ zend_try {
+ load_wsdl_ex(this_ptr, (char*)uri, ctx, 1);
+ } zend_catch {
+ xmlFree(uri);
+ zend_bailout();
+ } zend_end_try();
xmlFree(uri);
}
diff -Nru php8.4-8.4.26/ext/soap/soap.c php8.4-8.4.27/ext/soap/soap.c
--- php8.4-8.4.26/ext/soap/soap.c 2026-09-22 15:00:02.000000000 +0000
+++ php8.4-8.4.27/ext/soap/soap.c 2026-10-19 14:38:59.000000000 +0000
@@ -1842,7 +1842,10 @@
xmlFreeDoc(doc_return);
xmlFree(buf);
- zend_clear_exception();
+
+ if (!ZEND_HAS_OOM()) {
+ zend_clear_exception();
+ }
}
/* }}} */
@@ -1874,7 +1877,9 @@
instanceof_function(Z_OBJCE(SOAP_GLOBAL(error_object)), soap_class_entry)) {
bool use_exceptions =
Z_TYPE_P(Z_CLIENT_EXCEPTIONS_P(&SOAP_GLOBAL(error_object))) != IS_FALSE;
- if ((error_num & E_FATAL_ERRORS) && use_exceptions) {
+ if (ZEND_HAS_OOM()) {
+ old_error_handler(error_num, error_filename, error_lineno, message);
+ } else if ((error_num & E_FATAL_ERRORS) && use_exceptions) {
zval fault;
char *code = SOAP_GLOBAL(error_code);
if (code == NULL) {
@@ -3079,7 +3084,12 @@
strcmp((char *)params->name, function->functionName) == 0) {
num_of_params = 0;
} else if (num_of_params > 0) {
- tmp_parameters = safe_emalloc(num_of_params, sizeof(zval), 0);
+ tmp_parameters = safe_femalloc(num_of_params, sizeof(zval), 0, /* fallible */ true);
+ if (!tmp_parameters) {
+ *parameters = NULL;
+ *num_params = 0;
+ return;
+ }
trav = params;
while (trav != 0 && cur_param < num_of_params) {
@@ -3097,6 +3107,15 @@
}
master_to_zval(&tmp_parameters[cur_param], enc, trav);
cur_param++;
+ if (ZEND_HAS_OOM()) {
+ for (int i = 0; i < cur_param; i++) {
+ zval_ptr_dtor(&tmp_parameters[i]);
+ }
+ efree(tmp_parameters);
+ *parameters = NULL;
+ *num_params = 0;
+ return;
+ }
}
trav = trav->next;
}
@@ -3387,6 +3406,10 @@
}
last = h;
}
+ if (ZEND_HAS_OOM()) {
+ encode_finish();
+ return NULL;
+ }
ignore_header:
trav = trav->next;
}
@@ -4177,7 +4200,7 @@
}
xmlParam = master_to_xml(enc, val, style, parent);
zval_ptr_dtor(&defval);
- if (xmlParam != NULL) {
+ if (xmlParam != NULL) {
if (xmlParam->name == NULL || strcmp((char*)xmlParam->name, "BOGUS") == 0) {
xmlNodeSetName(xmlParam, BAD_CAST(paramName));
}
diff -Nru php8.4-8.4.26/ext/soap/tests/GHSA-rgrp-mwpx-f6rm-href-chain.phpt php8.4-8.4.27/ext/soap/tests/GHSA-rgrp-mwpx-f6rm-href-chain.phpt
--- php8.4-8.4.26/ext/soap/tests/GHSA-rgrp-mwpx-f6rm-href-chain.phpt 2026-09-22 15:00:02.000000000 +0000
+++ php8.4-8.4.27/ext/soap/tests/GHSA-rgrp-mwpx-f6rm-href-chain.phpt 2026-10-19 14:38:59.000000000 +0000
@@ -2,6 +2,12 @@
GHSA-rgrp-mwpx-f6rm: Stack overflow on a chain of href references
--EXTENSIONS--
soap
+--SKIPIF--
+
--FILE--
--FILE--
["pipe", "w"], 2 => ["pipe", "w"]], $pipes);
+ $proc = proc_open($cmd, [1 => ["pipe", "w"], 2 => ["pipe", "w"]], $pipes);
echo stream_get_contents($pipes[1]);
fclose($pipes[1]);
proc_close($proc);
diff -Nru php8.4-8.4.26/ext/soap/tests/bugs/gh22895.phpt php8.4-8.4.27/ext/soap/tests/bugs/gh22895.phpt
--- php8.4-8.4.26/ext/soap/tests/bugs/gh22895.phpt 1970-01-01 00:00:00.000000000 +0000
+++ php8.4-8.4.27/ext/soap/tests/bugs/gh22895.phpt 2026-10-19 14:38:59.000000000 +0000
@@ -0,0 +1,96 @@
+--TEST--
+GH-22895 (Heap use-after-free while encoding a Traversable with an illegal key)
+--CREDITS--
+Amorsec
+--EXTENSIONS--
+soap
+--FILE--
+i++;
+ }
+
+ public function rewind(): void
+ {
+ $this->i = 0;
+ }
+
+ public function valid(): bool
+ {
+ return $this->i < 2;
+ }
+}
+
+$client = new LocalSoapClient(null, [
+ 'location' => 'http://127.0.0.1/',
+ 'uri' => 'urn:audit',
+ 'trace' => 1,
+]);
+
+$multiple = new MultipleIterator();
+$multiple->attachIterator(new ArrayIterator([0]));
+
+foreach ([$multiple, new ArrayKeyIterator()] as $iterator) {
+ try {
+ $client->__soapCall('audit', [new SoapVar($iterator, SOAP_ENC_ARRAY)]);
+ } catch (TypeError $e) {
+ echo $e::class, ': ', $e->getMessage(), PHP_EOL;
+ }
+}
+
+function gen($key) {
+ yield $key => new stdClass();
+ yield 2 => new stdClass();
+}
+
+set_error_handler(function ($errno, $errstr) {
+ throw new Exception($errstr);
+});
+foreach ([1.5, STDIN] as $key) {
+ try {
+ $client->__soapCall('audit', [new SoapVar(gen($key), SOAP_ENC_ARRAY)]);
+ } catch (Exception $e) {
+ echo $e::class, ': ', $e->getMessage(), PHP_EOL;
+ }
+}
+restore_error_handler();
+
+/* A key the encoder can use must still be serialized, without leaking. */
+$client->__soapCall('audit', [new SoapVar(new ArrayIterator(['a' => 1]), SOAP_ENC_ARRAY)]);
+echo $client->__getLastRequest();
+?>
+--EXPECTF--
+TypeError: Cannot access offset of type array on array
+TypeError: Cannot access offset of type array on array
+Exception: Implicit conversion from float 1.5 to int loses precision
+Exception: Resource ID#%d used as offset, casting to integer (%d)
+
+- 1
diff -Nru php8.4-8.4.26/ext/soap/tests/load_wsdl_ex-failure-leak.phpt php8.4-8.4.27/ext/soap/tests/load_wsdl_ex-failure-leak.phpt
--- php8.4-8.4.26/ext/soap/tests/load_wsdl_ex-failure-leak.phpt 1970-01-01 00:00:00.000000000 +0000
+++ php8.4-8.4.27/ext/soap/tests/load_wsdl_ex-failure-leak.phpt 2026-10-19 14:38:59.000000000 +0000
@@ -0,0 +1,18 @@
+--TEST--
+load_wsdl_ex() leaks the import location if imported WSDL fails to load
+--EXTENSIONS--
+soap
+--INI--
+soap.wsdl_cache_enabled=0
+--FILE--
+getMessage() . "\n";
+}
+
+?>
+--EXPECTF--
+SoapFault: SOAP-ERROR: Parsing WSDL: Couldn't load from '%sload_wsdl_ex-failure-leak-missing.wsdl' : %s
diff -Nru php8.4-8.4.26/ext/soap/tests/load_wsdl_ex-failure-leak.wsdl php8.4-8.4.27/ext/soap/tests/load_wsdl_ex-failure-leak.wsdl
--- php8.4-8.4.26/ext/soap/tests/load_wsdl_ex-failure-leak.wsdl 1970-01-01 00:00:00.000000000 +0000
+++ php8.4-8.4.27/ext/soap/tests/load_wsdl_ex-failure-leak.wsdl 2026-10-19 14:38:59.000000000 +0000
@@ -0,0 +1,7 @@
+
+
+
+
diff -Nru php8.4-8.4.26/ext/soap/tests/oom_http_server.inc php8.4-8.4.27/ext/soap/tests/oom_http_server.inc
--- php8.4-8.4.26/ext/soap/tests/oom_http_server.inc 1970-01-01 00:00:00.000000000 +0000
+++ php8.4-8.4.27/ext/soap/tests/oom_http_server.inc 2026-10-19 14:38:59.000000000 +0000
@@ -0,0 +1,69 @@
+ 0 && !feof($conn)) {
+ $chunk = fread($conn, $length);
+ if ($chunk === false || $chunk === '') {
+ break;
+ }
+ $length -= strlen($chunk);
+ }
+ fwrite($conn, $argv[1]);
+ /* Optionally keep appending $argv[2] so a test can make the server
+ * produce far more than the client's memory limit without the parent
+ * having to hold it, or pass it on the command line. */
+ for ($i = 0; $i < (int) $argv[3]; $i++) {
+ if (@fwrite($conn, $argv[2]) === false) {
+ break;
+ }
+ }
+ fflush($conn);
+ fclose($conn);
+ PHP;
+
+ $proc = proc_open(
+ [PHP_BINARY, '-n', '-d', 'memory_limit=-1', '-r', $code, $response, $repeat, (string) $times],
+ [1 => ['pipe', 'w'], 2 => ['pipe', 'w']],
+ $pipes,
+ );
+ if (!is_resource($proc)) {
+ die('could not start the helper server');
+ }
+ $address = trim((string) fgets($pipes[1]));
+ if ($address === '') {
+ die('helper server did not report an address: ' . stream_get_contents($pipes[2]));
+ }
+
+ return ['proc' => $proc, 'uri' => 'http://' . $address];
+}
+
+function oom_soap_http_server_skipif(): void
+{
+ if (!function_exists('proc_open')) {
+ die('skip proc_open() not available');
+ }
+ $server = @stream_socket_server('tcp://127.0.0.1:0');
+ if (!$server) {
+ die('skip stream_socket_server() failed');
+ }
+ fclose($server);
+}
diff -Nru php8.4-8.4.26/ext/soap/tests/oom_soap_response.inc php8.4-8.4.27/ext/soap/tests/oom_soap_response.inc
--- php8.4-8.4.26/ext/soap/tests/oom_soap_response.inc 1970-01-01 00:00:00.000000000 +0000
+++ php8.4-8.4.27/ext/soap/tests/oom_soap_response.inc 2026-10-19 14:38:59.000000000 +0000
@@ -0,0 +1,33 @@
+', $items);
+
+ return <<
+
+
+ $items
+
+
+ XML;
+}
+
+/* A SoapClient whose transport is replaced by a canned response, so that the
+ * reproducer exercises only the response decoder. */
+class OomSoapClient extends SoapClient
+{
+ public string $response = '';
+
+ public function __doRequest($request, $location, $action, $version, $oneWay = false): ?string
+ {
+ return $this->response;
+ }
+}
diff -Nru php8.4-8.4.26/ext/soap/tests/oom_soapclient_call.phpt php8.4-8.4.27/ext/soap/tests/oom_soapclient_call.phpt
--- php8.4-8.4.26/ext/soap/tests/oom_soapclient_call.phpt 1970-01-01 00:00:00.000000000 +0000
+++ php8.4-8.4.27/ext/soap/tests/oom_soapclient_call.phpt 2026-10-19 14:38:59.000000000 +0000
@@ -0,0 +1,16 @@
+--TEST--
+SoapClient::__call() doesn't reach hard limit
+--EXTENSIONS--
+soap
+--INI--
+memory_limit=64M
+--FILE--
+ 'http://test-uri/', 'uri' => 'http://test-uri/']);
+$client->response = oom_soap_response(1000, 1000);
+$client->f();
+?>
+--EXPECTF--
+Fatal error: Allowed memory size of 67108864 bytes exhausted %S(tried to allocate %d bytes) in %s on line %d
diff -Nru php8.4-8.4.26/ext/soap/tests/oom_soapclient_dorequest_chunked.phpt php8.4-8.4.27/ext/soap/tests/oom_soapclient_dorequest_chunked.phpt
--- php8.4-8.4.26/ext/soap/tests/oom_soapclient_dorequest_chunked.phpt 1970-01-01 00:00:00.000000000 +0000
+++ php8.4-8.4.27/ext/soap/tests/oom_soapclient_dorequest_chunked.phpt 2026-10-19 14:38:59.000000000 +0000
@@ -0,0 +1,24 @@
+--TEST--
+SoapClient::__doRequest() doesn't reach hard limit through a chunk size
+--EXTENSIONS--
+soap
+--SKIPIF--
+
+--INI--
+memory_limit=64M
+--FILE--
+ $server['uri'], 'uri' => 'http://test-uri/']);
+$client->__doRequest('', $server['uri'], 'f', SOAP_1_1);
+?>
+--EXPECTF--
+Fatal error: Allowed memory size of 67108864 bytes exhausted %S(tried to allocate %d bytes) in %s on line %d
diff -Nru php8.4-8.4.26/ext/soap/tests/oom_soapclient_dorequest_close.phpt php8.4-8.4.27/ext/soap/tests/oom_soapclient_dorequest_close.phpt
--- php8.4-8.4.26/ext/soap/tests/oom_soapclient_dorequest_close.phpt 1970-01-01 00:00:00.000000000 +0000
+++ php8.4-8.4.27/ext/soap/tests/oom_soapclient_dorequest_close.phpt 2026-10-19 14:38:59.000000000 +0000
@@ -0,0 +1,28 @@
+--TEST--
+SoapClient::__doRequest() doesn't reach hard limit through a connection-close body
+--EXTENSIONS--
+soap
+--SKIPIF--
+
+--INI--
+memory_limit=8M
+--FILE--
+ $server['uri'], 'uri' => 'http://test-uri/']);
+$client->__doRequest('', $server['uri'], 'f', SOAP_1_1);
+?>
+--EXPECTF--
+Fatal error: Allowed memory size of 8388608 bytes exhausted %S(tried to allocate %d bytes) in %s on line %d
diff -Nru php8.4-8.4.26/ext/soap/tests/oom_soapclient_dorequest_content_length.phpt php8.4-8.4.27/ext/soap/tests/oom_soapclient_dorequest_content_length.phpt
--- php8.4-8.4.26/ext/soap/tests/oom_soapclient_dorequest_content_length.phpt 1970-01-01 00:00:00.000000000 +0000
+++ php8.4-8.4.27/ext/soap/tests/oom_soapclient_dorequest_content_length.phpt 2026-10-19 14:38:59.000000000 +0000
@@ -0,0 +1,24 @@
+--TEST--
+SoapClient::__doRequest() doesn't reach hard limit through Content-Length
+--EXTENSIONS--
+soap
+--SKIPIF--
+
+--INI--
+memory_limit=64M
+--FILE--
+ $server['uri'], 'uri' => 'http://test-uri/']);
+$client->__doRequest('', $server['uri'], 'f', SOAP_1_1);
+?>
+--EXPECTF--
+Fatal error: Allowed memory size of 67108864 bytes exhausted %S(tried to allocate %d bytes) in %s on line %d
diff -Nru php8.4-8.4.26/ext/soap/tests/oom_soapclient_response_headers.phpt php8.4-8.4.27/ext/soap/tests/oom_soapclient_response_headers.phpt
--- php8.4-8.4.26/ext/soap/tests/oom_soapclient_response_headers.phpt 1970-01-01 00:00:00.000000000 +0000
+++ php8.4-8.4.27/ext/soap/tests/oom_soapclient_response_headers.phpt 2026-10-19 14:38:59.000000000 +0000
@@ -0,0 +1,26 @@
+--TEST--
+SoapClient::__doRequest() doesn't reach hard limit through response headers
+--EXTENSIONS--
+soap
+--SKIPIF--
+
+--INI--
+memory_limit=8M
+--FILE--
+ $server['uri'], 'uri' => 'http://test-uri/']);
+$client->__doRequest('', $server['uri'], 'f', SOAP_1_1);
+?>
+--EXPECTF--
+Fatal error: Allowed memory size of 8388608 bytes exhausted %S(tried to allocate %d bytes) in %s on line %d
diff -Nru php8.4-8.4.26/ext/soap/tests/oom_soapclient_soapcall.phpt php8.4-8.4.27/ext/soap/tests/oom_soapclient_soapcall.phpt
--- php8.4-8.4.26/ext/soap/tests/oom_soapclient_soapcall.phpt 1970-01-01 00:00:00.000000000 +0000
+++ php8.4-8.4.27/ext/soap/tests/oom_soapclient_soapcall.phpt 2026-10-19 14:38:59.000000000 +0000
@@ -0,0 +1,16 @@
+--TEST--
+SoapClient::__soapCall() doesn't reach hard limit
+--EXTENSIONS--
+soap
+--INI--
+memory_limit=64M
+--FILE--
+ 'http://test-uri/', 'uri' => 'http://test-uri/']);
+$client->response = oom_soap_response(1000, 1000);
+$client->__soapCall('f', []);
+?>
+--EXPECTF--
+Fatal error: Allowed memory size of 67108864 bytes exhausted %S(tried to allocate %d bytes) in %s on line %d
diff -Nru php8.4-8.4.26/ext/soap/tests/oom_soapserver_handle_array.phpt php8.4-8.4.27/ext/soap/tests/oom_soapserver_handle_array.phpt
--- php8.4-8.4.26/ext/soap/tests/oom_soapserver_handle_array.phpt 1970-01-01 00:00:00.000000000 +0000
+++ php8.4-8.4.27/ext/soap/tests/oom_soapserver_handle_array.phpt 2026-10-19 14:38:59.000000000 +0000
@@ -0,0 +1,30 @@
+--TEST--
+SoapServer::handle() doesn't reach hard limit through a SOAP-ENC array
+--EXTENSIONS--
+soap
+--INI--
+memory_limit=64M
+--FILE--
+', 1000);
+$request = <<
+
+ $items
+
+ XML;
+
+$server = new SoapServer(null, ['uri' => 'http://test-uri/']);
+$server->addFunction('f');
+$server->handle($request);
+?>
+--EXPECTF--
+
+SOAP-ENV:ServerAllowed memory size of 67108864 bytes exhausted %S(tried to allocate %d bytes)
diff -Nru php8.4-8.4.26/ext/soap/tests/oom_soapserver_handle_headers.phpt php8.4-8.4.27/ext/soap/tests/oom_soapserver_handle_headers.phpt
--- php8.4-8.4.26/ext/soap/tests/oom_soapserver_handle_headers.phpt 1970-01-01 00:00:00.000000000 +0000
+++ php8.4-8.4.27/ext/soap/tests/oom_soapserver_handle_headers.phpt 2026-10-19 14:38:59.000000000 +0000
@@ -0,0 +1,26 @@
+--TEST--
+SoapServer::handle() doesn't reach hard limit through SOAP headers
+--EXTENSIONS--
+soap
+--INI--
+memory_limit=64M
+--FILE--
+', 20000);
+$request = <<
+
+ $headers
+
+
+ XML;
+
+$server = new SoapServer(null, ['uri' => 'http://test-uri/']);
+$server->addFunction('f');
+$server->handle($request);
+?>
+--EXPECTF--
+
+SOAP-ENV:ServerAllowed memory size of 67108864 bytes exhausted %S(tried to allocate %d bytes)
diff -Nru php8.4-8.4.26/ext/soap/tests/oom_soapserver_handle_parameters.phpt php8.4-8.4.27/ext/soap/tests/oom_soapserver_handle_parameters.phpt
--- php8.4-8.4.26/ext/soap/tests/oom_soapserver_handle_parameters.phpt 1970-01-01 00:00:00.000000000 +0000
+++ php8.4-8.4.27/ext/soap/tests/oom_soapserver_handle_parameters.phpt 2026-10-19 14:38:59.000000000 +0000
@@ -0,0 +1,25 @@
+--TEST--
+SoapServer::handle() doesn't reach hard limit through request parameters
+--EXTENSIONS--
+soap
+--INI--
+memory_limit=64M
+--FILE--
+', 400000);
+$request = <<
+
+ $params
+
+ XML;
+
+$server = new SoapServer(null, ['uri' => 'http://test-uri/']);
+$server->addFunction('f');
+$server->handle($request);
+?>
+--EXPECTF--
+
+SOAP-ENV:ServerAllowed memory size of 67108864 bytes exhausted %S(tried to allocate %d bytes)
diff -Nru php8.4-8.4.26/ext/sockets/sockets.c php8.4-8.4.27/ext/sockets/sockets.c
--- php8.4-8.4.26/ext/sockets/sockets.c 2026-09-22 15:00:02.000000000 +0000
+++ php8.4-8.4.27/ext/sockets/sockets.c 2026-10-19 14:38:59.000000000 +0000
@@ -542,7 +542,7 @@
num++;
} ZEND_HASH_FOREACH_END();
- return num ? 1 : 0;
+ return num;
}
/* }}} */
@@ -593,7 +593,7 @@
struct timeval *tv_p = NULL;
fd_set rfds, wfds, efds;
PHP_SOCKET max_fd = 0;
- int retval, sets = 0;
+ int retval, max_set_count = 0;
zend_long sec, usec = 0;
bool sec_is_null = 0;
@@ -611,30 +611,39 @@
FD_ZERO(&efds);
if (r_array != NULL) {
- sets += retval = php_sock_array_to_fd_set(1, r_array, &rfds, &max_fd);
+ retval = php_sock_array_to_fd_set(1, r_array, &rfds, &max_fd);
if (retval == -1) {
RETURN_THROWS();
}
+ if (retval > max_set_count) {
+ max_set_count = retval;
+ }
}
if (w_array != NULL) {
- sets += retval = php_sock_array_to_fd_set(2, w_array, &wfds, &max_fd);
+ retval = php_sock_array_to_fd_set(2, w_array, &wfds, &max_fd);
if (retval == -1) {
RETURN_THROWS();
}
+ if (retval > max_set_count) {
+ max_set_count = retval;
+ }
}
if (e_array != NULL) {
- sets += retval = php_sock_array_to_fd_set(3, e_array, &efds, &max_fd);
+ retval = php_sock_array_to_fd_set(3, e_array, &efds, &max_fd);
if (retval == -1) {
RETURN_THROWS();
}
+ if (retval > max_set_count) {
+ max_set_count = retval;
+ }
}
- if (!sets) {
+ if (!max_set_count) {
zend_value_error("socket_select(): At least one array argument must be passed");
RETURN_THROWS();
}
- if (!PHP_SAFE_MAX_FD(max_fd, 0)) {
+ if (!PHP_SAFE_MAX_FD(max_fd, max_set_count)) {
RETURN_FALSE;
}
diff -Nru php8.4-8.4.26/ext/sockets/tests/bug63000.phpt php8.4-8.4.27/ext/sockets/tests/bug63000.phpt
--- php8.4-8.4.26/ext/sockets/tests/bug63000.phpt 2026-09-22 15:00:02.000000000 +0000
+++ php8.4-8.4.27/ext/sockets/tests/bug63000.phpt 2026-10-19 14:38:59.000000000 +0000
@@ -2,6 +2,23 @@
Bug #63000: Multicast on OSX
--EXTENSIONS--
sockets
+--SKIPIF--
+ '224.0.0.251',
+ 'interface' => 0,
+]);
+if ($so === false) {
+ $errno = socket_last_error($socket);
+ if (in_array($errno, [SOCKET_ENODEV, SOCKET_ENXIO, SOCKET_EADDRNOTAVAIL], true)) {
+ die('skip no multicast-capable interface: ' . socket_strerror($errno));
+ }
+}
+?>
--FILE--
+--FILE--
+ 256);
+
+$read = $sockets;
+$write = $except = null;
+var_dump(socket_select($read, $write, $except, 0));
+
+$write = $sockets;
+$read = $except = null;
+var_dump(socket_select($read, $write, $except, 0));
+
+$except = $sockets;
+$read = $write = null;
+var_dump(socket_select($read, $write, $except, 0));
+
+foreach ($sockets as $socket) {
+ socket_close($socket);
+}
+?>
+--EXPECTF--
+bool(true)
+
+Warning: socket_select(): PHP needs to be recompiled with a larger value of FD_SETSIZE.%A
+bool(false)
+
+Warning: socket_select(): PHP needs to be recompiled with a larger value of FD_SETSIZE.%A
+bool(false)
+
+Warning: socket_select(): PHP needs to be recompiled with a larger value of FD_SETSIZE.%A
+bool(false)
diff -Nru php8.4-8.4.26/ext/spl/spl_fixedarray.c php8.4-8.4.27/ext/spl/spl_fixedarray.c
--- php8.4-8.4.26/ext/spl/spl_fixedarray.c 2026-09-22 15:00:02.000000000 +0000
+++ php8.4-8.4.27/ext/spl/spl_fixedarray.c 2026-10-19 14:38:59.000000000 +0000
@@ -77,6 +77,14 @@
return true;
}
+/* True while spl_fixedarray_resize() runs. A clear empties the array before
+ * destroying its elements, so emptiness alone cannot tell "never constructed"
+ * from "clear in progress"; re-initialising in that window leaks. */
+static bool spl_fixedarray_resize_in_progress(const spl_fixedarray *array)
+{
+ return array->cached_resize >= 0;
+}
+
static void spl_fixedarray_default_ctor(spl_fixedarray *array)
{
array->size = 0;
@@ -95,22 +103,33 @@
}
}
-static void spl_fixedarray_init_non_empty_struct(spl_fixedarray *array, zend_long size)
+static zend_result spl_fixedarray_init_non_empty_struct(spl_fixedarray *array, zend_long size)
{
array->size = 0; /* reset size in case ecalloc() fails */
- array->elements = size ? safe_emalloc(size, sizeof(zval), 0) : NULL;
- array->size = size;
array->cached_resize = -1;
+ if (size) {
+ array->elements = safe_femalloc(size, sizeof(zval), 0, /* fallible */ true);
+ if (UNEXPECTED(!array->elements)) {
+ return FAILURE;
+ }
+ array->size = size;
+ } else {
+ array->elements = NULL;
+ }
+ return SUCCESS;
}
-static void spl_fixedarray_init(spl_fixedarray *array, zend_long size)
+static zend_result spl_fixedarray_init(spl_fixedarray *array, zend_long size)
{
if (size > 0) {
- spl_fixedarray_init_non_empty_struct(array, size);
+ if (UNEXPECTED(spl_fixedarray_init_non_empty_struct(array, size) == FAILURE)) {
+ return FAILURE;
+ }
spl_fixedarray_init_elems(array, 0, size);
} else {
spl_fixedarray_default_ctor(array);
}
+ return SUCCESS;
}
/* Copies the range [begin, end) into the fixedarray, beginning at `offset`.
@@ -127,14 +146,17 @@
}
}
-static void spl_fixedarray_copy_ctor(spl_fixedarray *to, spl_fixedarray *from)
+static zend_result spl_fixedarray_copy_ctor(spl_fixedarray *to, spl_fixedarray *from)
{
zend_long size = from->size;
- spl_fixedarray_init(to, size);
+ if (UNEXPECTED(spl_fixedarray_init(to, size) == FAILURE)) {
+ return FAILURE;
+ }
if (size != 0) {
zval *begin = from->elements, *end = from->elements + size;
spl_fixedarray_copy_range(to, 0, begin, end);
}
+ return SUCCESS;
}
/* Destructs the elements in the range [from, to).
@@ -165,34 +187,38 @@
}
}
-static void spl_fixedarray_resize(spl_fixedarray *array, zend_long size)
+static zend_result spl_fixedarray_resize(spl_fixedarray *array, zend_long size)
{
if (size == array->size) {
/* nothing to do */
- return;
+ return SUCCESS;
}
if (UNEXPECTED(array->cached_resize >= 0)) {
/* We're already resizing, so just remember the desired size.
* The resize will happen later. */
array->cached_resize = size;
- return;
+ return SUCCESS;
}
/* first initialization */
if (array->size == 0) {
- spl_fixedarray_init(array, size);
- return;
+ return spl_fixedarray_init(array, size);
}
array->cached_resize = size;
/* clearing the array */
if (size == 0) {
+ /* Clears elements and size; resetting them afterwards would leak
+ * anything a destructor re-installed. */
spl_fixedarray_dtor(array);
- array->elements = NULL;
- array->size = 0;
} else if (size > array->size) {
- array->elements = safe_erealloc(array->elements, size, sizeof(zval), 0);
+ zval *elements = safe_ferealloc(array->elements, size, sizeof(zval), 0, /* fallible */ true);
+ if (UNEXPECTED(!elements)) {
+ array->cached_resize = -1;
+ return FAILURE;
+ }
+ array->elements = elements;
spl_fixedarray_init_elems(array, array->size, size);
array->size = size;
} else { /* size < array->size */
@@ -201,12 +227,18 @@
array->elements = erealloc(array->elements, sizeof(zval) * size);
}
- /* If resized within the destructor, take the last resize command and perform it */
+ /* If resized within the destructor, take the last resize command and
+ * perform it. The sentinel is still set: re-initialising during a
+ * resize is refused. */
zend_long cached_resize = array->cached_resize;
+ ZEND_ASSERT(cached_resize >= 0);
+
array->cached_resize = -1;
if (cached_resize != size) {
- spl_fixedarray_resize(array, cached_resize);
+ return spl_fixedarray_resize(array, cached_resize);
}
+
+ return SUCCESS;
}
static HashTable* spl_fixedarray_object_get_gc(zend_object *obj, zval **table, int *n)
@@ -282,11 +314,6 @@
zend_object_std_init(&intern->std, class_type);
object_properties_init(&intern->std, class_type);
- if (orig && clone_orig) {
- spl_fixedarray_object *other = spl_fixed_array_from_obj(orig);
- spl_fixedarray_copy_ctor(&intern->array, &other->array);
- }
-
while (parent) {
if (parent == spl_ce_SplFixedArray) {
break;
@@ -296,6 +323,17 @@
inherited = true;
}
+ if (orig && clone_orig) {
+ spl_fixedarray_object *other = spl_fixed_array_from_obj(orig);
+ if (UNEXPECTED(spl_fixedarray_copy_ctor(&intern->array, &other->array) == FAILURE)) {
+ ZEND_ASSERT(intern->std.handlers);
+ return &intern->std;
+ }
+ } else {
+ /* The zeroed struct would mean "resizing"; set the sentinel. */
+ spl_fixedarray_default_ctor(&intern->array);
+ }
+
ZEND_ASSERT(parent);
if (UNEXPECTED(inherited)) {
@@ -554,12 +592,14 @@
intern = Z_SPLFIXEDARRAY_P(object);
- if (!spl_fixedarray_empty(&intern->array)) {
+ if (UNEXPECTED(!spl_fixedarray_empty(&intern->array) || spl_fixedarray_resize_in_progress(&intern->array))) {
/* called __construct() twice, bail out */
return;
}
- spl_fixedarray_init(&intern->array, size);
+ if (UNEXPECTED(spl_fixedarray_init(&intern->array, size) == FAILURE)) {
+ RETURN_OOM();
+ }
}
PHP_METHOD(SplFixedArray, __wakeup)
@@ -572,11 +612,13 @@
RETURN_THROWS();
}
- if (intern->array.size == 0) {
+ if (EXPECTED(intern->array.size == 0 && !spl_fixedarray_resize_in_progress(&intern->array))) {
int index = 0;
int size = zend_hash_num_elements(intern_ht);
- spl_fixedarray_init(&intern->array, size);
+ if (UNEXPECTED(spl_fixedarray_init(&intern->array, size) == FAILURE)) {
+ RETURN_OOM();
+ }
ZEND_HASH_FOREACH_VAL(intern_ht, data) {
ZVAL_COPY(&intern->array.elements[index], data);
@@ -634,9 +676,11 @@
RETURN_THROWS();
}
- if (intern->array.size == 0) {
+ if (EXPECTED(intern->array.size == 0 && !spl_fixedarray_resize_in_progress(&intern->array))) {
size = zend_hash_num_elements(data);
- spl_fixedarray_init_non_empty_struct(&intern->array, size);
+ if (UNEXPECTED(spl_fixedarray_init_non_empty_struct(&intern->array, size) == FAILURE)) {
+ RETURN_OOM();
+ }
if (!size) {
return;
}
@@ -737,7 +781,9 @@
zend_throw_exception_ex(spl_ce_InvalidArgumentException, 0, "integer overflow detected");
RETURN_THROWS();
}
- spl_fixedarray_init(&array, tmp);
+ if (UNEXPECTED(spl_fixedarray_init(&array, tmp) == FAILURE)) {
+ RETURN_OOM();
+ }
ZEND_HASH_FOREACH_NUM_KEY_VAL(Z_ARRVAL_P(data), num_index, element) {
ZVAL_COPY_DEREF(&array.elements[num_index], element);
@@ -747,14 +793,18 @@
zval *element;
zend_long i = 0;
- spl_fixedarray_init(&array, num);
+ if (UNEXPECTED(spl_fixedarray_init(&array, num) == FAILURE)) {
+ RETURN_OOM();
+ }
ZEND_HASH_FOREACH_VAL(Z_ARRVAL_P(data), element) {
ZVAL_COPY_DEREF(&array.elements[i], element);
i++;
} ZEND_HASH_FOREACH_END();
} else {
- spl_fixedarray_init(&array, 0);
+ if (UNEXPECTED(spl_fixedarray_init(&array, 0) == FAILURE)) {
+ RETURN_OOM();
+ }
}
object_init_ex(return_value, spl_ce_SplFixedArray);
@@ -793,7 +843,10 @@
intern = Z_SPLFIXEDARRAY_P(object);
- spl_fixedarray_resize(&intern->array, size);
+ if (UNEXPECTED(spl_fixedarray_resize(&intern->array, size) == FAILURE)) {
+ RETURN_OOM();
+ }
+
RETURN_TRUE;
}
diff -Nru php8.4-8.4.26/ext/spl/tests/SplFixedArray_setSize_destruct_reinit_during_clear.phpt php8.4-8.4.27/ext/spl/tests/SplFixedArray_setSize_destruct_reinit_during_clear.phpt
--- php8.4-8.4.26/ext/spl/tests/SplFixedArray_setSize_destruct_reinit_during_clear.phpt 1970-01-01 00:00:00.000000000 +0000
+++ php8.4-8.4.27/ext/spl/tests/SplFixedArray_setSize_destruct_reinit_during_clear.phpt 2026-10-19 14:38:59.000000000 +0000
@@ -0,0 +1,68 @@
+--TEST--
+SplFixedArray::setSize: re-initialising from a destructor during clear (GH-23811)
+--DESCRIPTION--
+setSize(0) clears elements and size before running the element destructors, so
+the array momentarily looks like it was never constructed. __construct(),
+__wakeup() and __unserialize() must not re-initialise it in that window: the
+in-progress clear would discard whatever they installed, leaking it.
+--FILE--
+setSize(0);
+ echo "size: ", $arr->getSize(), "\n";
+
+ /* The array must still be usable. */
+ $arr->setSize(1);
+ $arr[0] = "ok";
+ var_dump($arr[0]);
+
+ Reentrant::$arr = null;
+ Reentrant::$action = null;
+}
+
+echo "-- __construct() --\n";
+clear_with(function ($arr) { $arr->__construct(5); });
+
+/* __construct() is ignored, but the following setSize() is still recorded as
+ * the pending resize and applied once the clear finishes. */
+echo "-- __construct() then setSize() --\n";
+clear_with(function ($arr) { $arr->__construct(7); $arr->setSize(3); });
+
+echo "-- __unserialize() --\n";
+clear_with(function ($arr) { $arr->__unserialize(["a", "b", "c"]); });
+
+echo "-- __wakeup() --\n";
+clear_with(function ($arr) { @$arr->__wakeup(); });
+?>
+--EXPECT--
+-- __construct() --
+size: 0
+string(2) "ok"
+-- __construct() then setSize() --
+size: 3
+string(2) "ok"
+-- __unserialize() --
+size: 0
+string(2) "ok"
+-- __wakeup() --
+size: 0
+string(2) "ok"
diff -Nru php8.4-8.4.26/ext/spl/tests/SplFixedArray_subclass_without_parent_construct.phpt php8.4-8.4.27/ext/spl/tests/SplFixedArray_subclass_without_parent_construct.phpt
--- php8.4-8.4.26/ext/spl/tests/SplFixedArray_subclass_without_parent_construct.phpt 1970-01-01 00:00:00.000000000 +0000
+++ php8.4-8.4.27/ext/spl/tests/SplFixedArray_subclass_without_parent_construct.phpt 2026-10-19 14:38:59.000000000 +0000
@@ -0,0 +1,63 @@
+--TEST--
+SplFixedArray: subclass not calling parent::__construct() (GH-23811)
+--DESCRIPTION--
+The internal struct is zeroed on object creation, which used to leave the
+"resize in progress" sentinel at 0 instead of -1. setSize() then took the
+re-entrancy early return and silently did nothing, leaving the array stuck
+at size 0 for the lifetime of the object.
+--FILE--
+getSize(), "\n";
+
+$a->setSize(3);
+echo "after setSize(3): ", $a->getSize(), "\n";
+
+$a[0] = "x";
+$a[2] = "z";
+var_dump($a->toArray());
+
+$a->setSize(1);
+echo "after setSize(1): ", $a->getSize(), "\n";
+
+$a->setSize(0);
+echo "after setSize(0): ", $a->getSize(), "\n";
+
+/* Deferred initialisation: calling the parent constructor later still works. */
+class LateInit extends SplFixedArray {
+ public function __construct() {
+ }
+ public function init(int $size): void {
+ parent::__construct($size);
+ }
+}
+$b = new LateInit();
+$b->init(2);
+echo "deferred parent::__construct(2): ", $b->getSize(), "\n";
+
+/* Cloning one of these must also yield a resizable array. */
+$c = clone new Unconstructed();
+$c->setSize(2);
+echo "clone then setSize(2): ", $c->getSize(), "\n";
+?>
+--EXPECT--
+initial: 0
+after setSize(3): 3
+array(3) {
+ [0]=>
+ string(1) "x"
+ [1]=>
+ NULL
+ [2]=>
+ string(1) "z"
+}
+after setSize(1): 1
+after setSize(0): 0
+deferred parent::__construct(2): 2
+clone then setSize(2): 2
diff -Nru php8.4-8.4.26/ext/sqlite3/php_sqlite3_structs.h php8.4-8.4.27/ext/sqlite3/php_sqlite3_structs.h
--- php8.4-8.4.26/ext/sqlite3/php_sqlite3_structs.h 2026-09-22 15:00:02.000000000 +0000
+++ php8.4-8.4.27/ext/sqlite3/php_sqlite3_structs.h 2026-10-19 14:38:59.000000000 +0000
@@ -50,6 +50,7 @@
zend_fcall_info_cache func;
zend_fcall_info_cache step;
zend_fcall_info_cache fini;
+ unsigned int *in_callback_ptr;
} php_sqlite3_func;
/* Structure for SQLite collation function */
@@ -58,6 +59,7 @@
const char *collation_name;
zend_fcall_info_cache cmp_func;
+ unsigned int *in_callback_ptr;
} php_sqlite3_collation;
/* Structure for SQLite Database object. */
@@ -69,6 +71,7 @@
zend_fcall_info_cache authorizer_fcc;
bool exception;
+ unsigned int in_callback;
zend_llist free_list;
zend_object zo;
diff -Nru php8.4-8.4.26/ext/sqlite3/sqlite3.c php8.4-8.4.27/ext/sqlite3/sqlite3.c
--- php8.4-8.4.26/ext/sqlite3/sqlite3.c 2026-09-22 15:00:02.000000000 +0000
+++ php8.4-8.4.27/ext/sqlite3/sqlite3.c 2026-10-19 14:38:59.000000000 +0000
@@ -191,6 +191,10 @@
}
if (db_obj->initialised) {
+ if (db_obj->in_callback) {
+ zend_throw_error(NULL, "Cannot close SQLite3 database while inside a callback");
+ RETURN_THROWS();
+ }
zend_llist_clean(&(db_obj->free_list));
if(db_obj->db) {
errcode = sqlite3_close(db_obj->db);
@@ -774,6 +778,9 @@
uint32_t fake_argc;
zend_result ret = SUCCESS;
php_sqlite3_agg_context *agg_context = NULL;
+ bool bailout = false;
+ php_sqlite3_func *cb_func = (php_sqlite3_func *)sqlite3_user_data(context);
+ unsigned int *in_callback = cb_func ? cb_func->in_callback_ptr : NULL;
if (is_agg) {
is_agg = 2;
@@ -781,6 +788,10 @@
fake_argc = argc + is_agg;
+ if (in_callback) {
+ (*in_callback)++;
+ }
+
/* build up the params */
if (fake_argc) {
zargs = (zval *)safe_emalloc(fake_argc, sizeof(zval), 0);
@@ -823,7 +834,15 @@
}
}
+ zend_try {
zend_call_known_fcc(fcc, &retval, fake_argc, zargs, /* named_params */ NULL);
+ } zend_catch {
+ bailout = true;
+ } zend_end_try();
+
+ if (in_callback) {
+ (*in_callback)--;
+ }
/* clean up the params */
if (is_agg) {
@@ -889,6 +908,9 @@
if (!Z_ISUNDEF(retval)) {
zval_ptr_dtor(&retval);
}
+ if (bailout) {
+ zend_bailout();
+ }
return ret;
}
/* }}}*/
@@ -929,6 +951,7 @@
zval zargs[2];
zval retval;
int ret = 0;
+ bool bailout = false;
// Exception occurred on previous callback. Don't attempt to call function.
if (EG(exception)) {
@@ -938,10 +961,26 @@
ZVAL_STRINGL(&zargs[0], a, a_len);
ZVAL_STRINGL(&zargs[1], b, b_len);
+ if (collation->in_callback_ptr) {
+ (*collation->in_callback_ptr)++;
+ }
+
+ zend_try {
zend_call_known_fcc(&collation->cmp_func, &retval, /* argc */ 2, zargs, /* named_params */ NULL);
+ } zend_catch {
+ bailout = true;
+ } zend_end_try();
+
+ if (collation->in_callback_ptr) {
+ (*collation->in_callback_ptr)--;
+ }
zval_ptr_dtor(&zargs[0]);
zval_ptr_dtor(&zargs[1]);
+ if (bailout) {
+ zval_ptr_dtor(&retval);
+ zend_bailout();
+ }
if (EG(exception)) {
ret = 0;
@@ -988,6 +1027,7 @@
}
func = (php_sqlite3_func *)ecalloc(1, sizeof(*func));
+ func->in_callback_ptr = &db_obj->in_callback;
if (sqlite3_create_function(db_obj->db, sql_func, sql_func_num_args, flags | SQLITE_UTF8, func, php_sqlite3_callback_func, NULL, NULL) == SQLITE_OK) {
func->func_name = estrdup(sql_func);
@@ -1037,6 +1077,7 @@
}
func = (php_sqlite3_func *)ecalloc(1, sizeof(*func));
+ func->in_callback_ptr = &db_obj->in_callback;
if (sqlite3_create_function(db_obj->db, sql_func, sql_func_num_args, SQLITE_UTF8, func, NULL, php_sqlite3_callback_step, php_sqlite3_callback_final) == SQLITE_OK) {
func->func_name = estrdup(sql_func);
@@ -1085,6 +1126,7 @@
}
collation = (php_sqlite3_collation *)ecalloc(1, sizeof(*collation));
+ collation->in_callback_ptr = &db_obj->in_callback;
if (sqlite3_create_collation(db_obj->db, collation_name, SQLITE_UTF8, collation, php_sqlite3_callback_compare) == SQLITE_OK) {
collation->collation_name = estrdup(collation_name);
@@ -2151,8 +2193,15 @@
}
int authreturn = SQLITE_DENY;
+ bool bailout = false;
+ db_obj->in_callback++;
+ zend_try {
zend_call_known_fcc(&db_obj->authorizer_fcc, &retval, /* argc */ 5, argv, /* named_params */ NULL);
+ } zend_catch {
+ bailout = true;
+ } zend_end_try();
+ db_obj->in_callback--;
if (Z_ISUNDEF(retval)) {
php_sqlite3_error(db_obj, 0, "An error occurred while invoking the authorizer callback");
} else {
@@ -2176,6 +2225,9 @@
zval_ptr_dtor(&argv[3]);
zval_ptr_dtor(&argv[4]);
+ if (bailout) {
+ zend_bailout();
+ }
return authreturn;
}
/* }}} */
diff -Nru php8.4-8.4.26/ext/sqlite3/tests/sqlite3_close_from_callback.phpt php8.4-8.4.27/ext/sqlite3/tests/sqlite3_close_from_callback.phpt
--- php8.4-8.4.26/ext/sqlite3/tests/sqlite3_close_from_callback.phpt 1970-01-01 00:00:00.000000000 +0000
+++ php8.4-8.4.27/ext/sqlite3/tests/sqlite3_close_from_callback.phpt 2026-10-19 14:38:59.000000000 +0000
@@ -0,0 +1,35 @@
+--TEST--
+SQLite3::close() from within a UDF callback must not corrupt active statement
+--EXTENSIONS--
+sqlite3
+--FILE--
+createFunction('boom', function () use ($db) {
+ try {
+ var_dump($db->close());
+ } catch (Throwable $e) {
+ echo $e::class, ": ", $e->getMessage(), "\n";
+ }
+ return 1;
+});
+$stmt = $db->prepare('SELECT boom()');
+var_dump($stmt !== false);
+$res = $stmt->execute();
+var_dump($res !== false);
+var_dump($res->fetchArray(SQLITE3_NUM));
+$res->finalize();
+var_dump($db->close());
+echo "done\n";
+?>
+--EXPECT--
+bool(true)
+Error: Cannot close SQLite3 database while inside a callback
+bool(true)
+Error: Cannot close SQLite3 database while inside a callback
+array(1) {
+ [0]=>
+ int(1)
+}
+bool(true)
+done
diff -Nru php8.4-8.4.26/ext/sqlite3/tests/sqlite3_close_from_callback_aggregate.phpt php8.4-8.4.27/ext/sqlite3/tests/sqlite3_close_from_callback_aggregate.phpt
--- php8.4-8.4.26/ext/sqlite3/tests/sqlite3_close_from_callback_aggregate.phpt 1970-01-01 00:00:00.000000000 +0000
+++ php8.4-8.4.27/ext/sqlite3/tests/sqlite3_close_from_callback_aggregate.phpt 2026-10-19 14:38:59.000000000 +0000
@@ -0,0 +1,41 @@
+--TEST--
+SQLite3::close() from within a createAggregate() callback must not corrupt active statement
+--EXTENSIONS--
+sqlite3
+--FILE--
+exec('CREATE TABLE t (a INTEGER)');
+$db->exec('INSERT INTO t VALUES (1)');
+$db->exec('INSERT INTO t VALUES (2)');
+
+$reported = false;
+$db->createAggregate('agg', function ($context, $rows, $a) use (&$db, &$reported) {
+ if (!$reported) {
+ $reported = true;
+ try {
+ var_dump($db->close());
+ } catch (Throwable $e) {
+ echo $e::class, ": ", $e->getMessage(), "\n";
+ }
+ }
+ return (int) $context + $a;
+}, function ($context, $rows) {
+ return $context;
+}, 1);
+
+$stmt = $db->prepare('SELECT agg(a) FROM t');
+$res = $stmt->execute();
+var_dump($res->fetchArray(SQLITE3_NUM));
+$res->finalize();
+var_dump($db->close());
+echo "done\n";
+?>
+--EXPECT--
+Error: Cannot close SQLite3 database while inside a callback
+array(1) {
+ [0]=>
+ int(3)
+}
+bool(true)
+done
diff -Nru php8.4-8.4.26/ext/sqlite3/tests/sqlite3_close_from_callback_authorizer.phpt php8.4-8.4.27/ext/sqlite3/tests/sqlite3_close_from_callback_authorizer.phpt
--- php8.4-8.4.26/ext/sqlite3/tests/sqlite3_close_from_callback_authorizer.phpt 1970-01-01 00:00:00.000000000 +0000
+++ php8.4-8.4.27/ext/sqlite3/tests/sqlite3_close_from_callback_authorizer.phpt 2026-10-19 14:38:59.000000000 +0000
@@ -0,0 +1,38 @@
+--TEST--
+SQLite3::close() from within a setAuthorizer() callback must not finalize live statements
+--EXTENSIONS--
+sqlite3
+--FILE--
+exec('CREATE TABLE t (a INTEGER)');
+$db->exec('INSERT INTO t VALUES (7)');
+$live = $db->prepare('SELECT a FROM t');
+
+$reported = false;
+$db->setAuthorizer(function ($action, $arg1, $arg2, $arg3, $arg4) use (&$db, &$reported) {
+ if (!$reported) {
+ $reported = true;
+ try {
+ var_dump($db->close());
+ } catch (Throwable $e) {
+ echo $e::class, ": ", $e->getMessage(), "\n";
+ }
+ }
+ return SQLite3::OK;
+});
+
+$db->prepare('SELECT 1');
+
+$res = $live->execute();
+var_dump($res->fetchArray(SQLITE3_NUM));
+$res->finalize();
+echo "done\n";
+?>
+--EXPECT--
+Error: Cannot close SQLite3 database while inside a callback
+array(1) {
+ [0]=>
+ int(7)
+}
+done
diff -Nru php8.4-8.4.26/ext/sqlite3/tests/sqlite3_close_from_callback_collation.phpt php8.4-8.4.27/ext/sqlite3/tests/sqlite3_close_from_callback_collation.phpt
--- php8.4-8.4.26/ext/sqlite3/tests/sqlite3_close_from_callback_collation.phpt 1970-01-01 00:00:00.000000000 +0000
+++ php8.4-8.4.27/ext/sqlite3/tests/sqlite3_close_from_callback_collation.phpt 2026-10-19 14:38:59.000000000 +0000
@@ -0,0 +1,39 @@
+--TEST--
+SQLite3::close() from within a createCollation() callback must not corrupt active statement
+--EXTENSIONS--
+sqlite3
+--FILE--
+exec('CREATE TABLE t (s TEXT)');
+$db->exec("INSERT INTO t VALUES ('b')");
+$db->exec("INSERT INTO t VALUES ('a')");
+
+$reported = false;
+$db->createCollation('CB', function ($x, $y) use (&$db, &$reported) {
+ if (!$reported) {
+ $reported = true;
+ try {
+ var_dump($db->close());
+ } catch (Throwable $e) {
+ echo $e::class, ": ", $e->getMessage(), "\n";
+ }
+ }
+ return strcmp($x, $y);
+});
+
+$stmt = $db->prepare('SELECT s FROM t ORDER BY s COLLATE CB');
+$res = $stmt->execute();
+while ($row = $res->fetchArray(SQLITE3_NUM)) {
+ echo $row[0], "\n";
+}
+$res->finalize();
+var_dump($db->close());
+echo "done\n";
+?>
+--EXPECT--
+Error: Cannot close SQLite3 database while inside a callback
+a
+b
+bool(true)
+done
diff -Nru php8.4-8.4.26/ext/standard/array.c php8.4-8.4.27/ext/standard/array.c
--- php8.4-8.4.26/ext/standard/array.c 2026-09-22 15:00:02.000000000 +0000
+++ php8.4-8.4.27/ext/standard/array.c 2026-10-19 14:38:59.000000000 +0000
@@ -2831,8 +2831,9 @@
/* create packed array */
zval *zv;
- array_init_size(return_value, (uint32_t)(start_key + num));
- zend_hash_real_init_packed(Z_ARRVAL_P(return_value));
+ if (UNEXPECTED(!array_finit_size_packed(return_value, (uint32_t)(start_key + num)))) {
+ RETURN_OOM();
+ }
Z_ARRVAL_P(return_value)->nNumUsed = (uint32_t)(start_key + num);
Z_ARRVAL_P(return_value)->nNumOfElements = (uint32_t)num;
Z_ARRVAL_P(return_value)->nNextFreeElement = (zend_long)(start_key + num);
@@ -2853,8 +2854,9 @@
}
} else {
/* create hash */
- array_init_size(return_value, (uint32_t)num);
- zend_hash_real_init_mixed(Z_ARRVAL_P(return_value));
+ if (UNEXPECTED(!array_finit_size_mixed(return_value, (uint32_t)num))) {
+ RETURN_OOM();
+ }
if (Z_REFCOUNTED_P(val)) {
GC_ADDREF_EX(Z_COUNTED_P(val), (uint32_t)num);
}
@@ -2910,7 +2912,9 @@
} \
size = (uint32_t)_php_math_round(__calc_size, 0, PHP_ROUND_HALF_UP); \
array_init_size(return_value, size); \
- zend_hash_real_init_packed(Z_ARRVAL_P(return_value)); \
+ if (UNEXPECTED(zend_hash_real_finit_packed(Z_ARRVAL_P(return_value), /* fallible */ true) == FAILURE)) { \
+ RETURN_OOM(); \
+ } \
} while (0)
#define RANGE_CHECK_LONG_INIT_ARRAY(start, end, _step) do { \
@@ -2922,7 +2926,9 @@
} \
size = (uint32_t)(__calc_size + 1); \
array_init_size(return_value, size); \
- zend_hash_real_init_packed(Z_ARRVAL_P(return_value)); \
+ if (UNEXPECTED(zend_hash_real_finit_packed(Z_ARRVAL_P(return_value), /* fallible */ true) == FAILURE)) { \
+ RETURN_OOM(); \
+ } \
} while (0)
/* Process input for the range() function
@@ -4818,6 +4824,14 @@
}
/* }}} */
+/* Releases references taken up-front for pad values that were not inserted. */
+static zend_always_inline void php_array_pad_release(zval *pad_value, zend_long num_pads)
+{
+ if (Z_REFCOUNTED_P(pad_value)) {
+ GC_DELREF_EX(Z_COUNTED_P(pad_value), num_pads);
+ }
+}
+
/* {{{ Returns a copy of input array padded with pad_value to size pad_size */
PHP_FUNCTION(array_pad)
{
@@ -4859,7 +4873,10 @@
array_init_size(return_value, pad_size_abs);
if (HT_IS_PACKED(Z_ARRVAL_P(input))) {
- zend_hash_real_init_packed(Z_ARRVAL_P(return_value));
+ if (UNEXPECTED(zend_hash_real_finit_packed(Z_ARRVAL_P(return_value), /* fallible */ true) == FAILURE)) {
+ php_array_pad_release(pad_value, num_pads);
+ RETURN_OOM();
+ }
if (pad_size < 0) {
ZEND_HASH_FILL_PACKED(Z_ARRVAL_P(return_value)) {
@@ -4886,22 +4903,36 @@
} else {
if (pad_size < 0) {
for (i = 0; i < num_pads; i++) {
- zend_hash_next_index_insert_new(Z_ARRVAL_P(return_value), pad_value);
+ if (UNEXPECTED(zend_hash_next_index_finsert_new(Z_ARRVAL_P(return_value), pad_value) == HASH_NOMEM)) {
+ php_array_pad_release(pad_value, num_pads - i);
+ RETURN_OOM();
+ }
}
}
ZEND_HASH_MAP_FOREACH_STR_KEY_VAL(Z_ARRVAL_P(input), key, value) {
Z_TRY_ADDREF_P(value);
+ zval *result;
if (key) {
- zend_hash_add_new(Z_ARRVAL_P(return_value), key, value);
+ result = zend_hash_fadd_new(Z_ARRVAL_P(return_value), key, value);
} else {
- zend_hash_next_index_insert_new(Z_ARRVAL_P(return_value), value);
+ result = zend_hash_next_index_finsert_new(Z_ARRVAL_P(return_value), value);
+ }
+ if (UNEXPECTED(result == HASH_NOMEM)) {
+ Z_TRY_DELREF_P(value);
+ if (pad_size > 0) {
+ php_array_pad_release(pad_value, num_pads);
+ }
+ RETURN_OOM();
}
} ZEND_HASH_FOREACH_END();
if (pad_size > 0) {
for (i = 0; i < num_pads; i++) {
- zend_hash_next_index_insert_new(Z_ARRVAL_P(return_value), pad_value);
+ if (UNEXPECTED(zend_hash_next_index_finsert_new(Z_ARRVAL_P(return_value), pad_value) == HASH_NOMEM)) {
+ php_array_pad_release(pad_value, num_pads - i);
+ RETURN_OOM();
+ }
}
}
}
@@ -6928,7 +6959,10 @@
}
}
- array_init_size(return_value, maxlen);
+ if (UNEXPECTED(!array_finit_size_packed(return_value, maxlen))) {
+ efree(array_pos);
+ RETURN_OOM();
+ }
if (!ZEND_FCI_INITIALIZED(fci)) {
zval zv;
@@ -6938,6 +6972,10 @@
/* If no callback, the result will be an array, consisting of current
* entries from all arrays. */
+ if (ZEND_HAS_OOM()) {
+ efree(array_pos);
+ RETURN_OOM();
+ }
array_init_size(&result, n_arrays);
for (i = 0; i < n_arrays; i++) {
@@ -7114,13 +7152,18 @@
size = num_in;
}
- array_init_size(return_value, (uint32_t)(((num_in - 1) / size) + 1));
+ if (UNEXPECTED(!array_finit_size_packed(return_value, (uint32_t)(((num_in - 1) / size) + 1)))) {
+ RETURN_OOM();
+ }
ZVAL_UNDEF(&chunk);
ZEND_HASH_FOREACH_KEY_VAL(Z_ARRVAL_P(input), num_key, str_key, entry) {
/* If new chunk, create and initialize it. */
if (Z_TYPE(chunk) == IS_UNDEF) {
+ if (ZEND_HAS_OOM()) {
+ RETURN_OOM();
+ }
array_init_size(&chunk, (uint32_t)size);
}
diff -Nru php8.4-8.4.26/ext/standard/assert.c php8.4-8.4.27/ext/standard/assert.c
--- php8.4-8.4.26/ext/standard/assert.c 2026-09-22 15:00:02.000000000 +0000
+++ php8.4-8.4.27/ext/standard/assert.c 2026-10-19 14:38:59.000000000 +0000
@@ -247,7 +247,9 @@
* exception so we can avoid bailout and use unwind_exit. */
zend_exception_error(EG(exception), E_WARNING);
}
- zend_throw_unwind_exit();
+ if (!EG(exception)) {
+ zend_throw_unwind_exit();
+ }
RETURN_THROWS();
} else {
RETURN_FALSE;
diff -Nru php8.4-8.4.26/ext/standard/basic_functions.c php8.4-8.4.27/ext/standard/basic_functions.c
--- php8.4-8.4.26/ext/standard/basic_functions.c 2026-09-22 15:00:02.000000000 +0000
+++ php8.4-8.4.27/ext/standard/basic_functions.c 2026-10-19 14:38:59.000000000 +0000
@@ -157,7 +157,9 @@
PHP_RSHUTDOWN(basic), /* request shutdown */
PHP_MINFO(basic), /* extension info */
PHP_STANDARD_VERSION, /* extension version */
- STANDARD_MODULE_PROPERTIES
+ NO_MODULE_GLOBALS,
+ ZEND_MODULE_POST_ZEND_DEACTIVATE_N(streams),
+ STANDARD_MODULE_PROPERTIES_EX
};
/* }}} */
@@ -463,7 +465,6 @@
#endif
BASIC_RSHUTDOWN_SUBMODULE(assert)
BASIC_RSHUTDOWN_SUBMODULE(url_scanner_ex)
- BASIC_RSHUTDOWN_SUBMODULE(streams)
#ifdef PHP_WIN32
BASIC_RSHUTDOWN_SUBMODULE(win32_core_globals)
#endif
@@ -486,6 +487,18 @@
}
/* }}} */
+/* Called from php_request_startup(), before any request data is processed. */
+PHPAPI void php_basic_early_rinit(void)
+{
+ /* The session upload progress handler (un)serializes the session and
+ * registers the session id with the URL rewriter from
+ * php_hash_environment(), before RINIT. */
+ BG(serialize_lock) = 0;
+ memset(&BG(serialize), 0, sizeof(BG(serialize)));
+ memset(&BG(unserialize), 0, sizeof(BG(unserialize)));
+ php_url_scanner_early_rinit();
+}
+
PHP_MINFO_FUNCTION(basic) /* {{{ */
{
php_info_print_table_start();
diff -Nru php8.4-8.4.26/ext/standard/basic_functions.h php8.4-8.4.27/ext/standard/basic_functions.h
--- php8.4-8.4.26/ext/standard/basic_functions.h 2026-09-22 15:00:02.000000000 +0000
+++ php8.4-8.4.27/ext/standard/basic_functions.h 2026-10-19 14:38:59.000000000 +0000
@@ -131,6 +131,7 @@
PHPAPI extern bool remove_user_shutdown_function(const char *function_name, size_t function_len);
PHPAPI extern bool append_user_shutdown_function(php_shutdown_function_entry *shutdown_function_entry);
+PHPAPI void php_basic_early_rinit(void);
PHPAPI void php_call_shutdown_functions(void);
PHPAPI void php_free_shutdown_functions(void);
diff -Nru php8.4-8.4.26/ext/standard/config.m4 php8.4-8.4.27/ext/standard/config.m4
--- php8.4-8.4.26/ext/standard/config.m4 2026-09-22 15:00:02.000000000 +0000
+++ php8.4-8.4.27/ext/standard/config.m4 2026-10-19 14:38:59.000000000 +0000
@@ -328,7 +328,7 @@
PHP_CHECK_FUNC(res_search, resolv, socket)
-AC_CHECK_FUNCS([posix_spawn_file_actions_addchdir_np elf_aux_info])
+AC_CHECK_FUNCS([posix_spawn_file_actions_addchdir posix_spawn_file_actions_addchdir_np elf_aux_info])
dnl
dnl Obsolete check for strptime() declaration. The strptime, where available,
diff -Nru php8.4-8.4.26/ext/standard/file.c php8.4-8.4.27/ext/standard/file.c
--- php8.4-8.4.26/ext/standard/file.c 2026-09-22 15:00:02.000000000 +0000
+++ php8.4-8.4.27/ext/standard/file.c 2026-10-19 14:38:59.000000000 +0000
@@ -645,12 +645,18 @@
do {
p++;
parse_eol:
+ if (ZEND_HAS_OOM()) {
+ break;
+ }
add_index_stringl(return_value, i++, s, p-s);
s = p;
} while ((p = memchr(p, eol_marker, (e-p))));
} else {
do {
int windows_eol = 0;
+ if (ZEND_HAS_OOM()) {
+ break;
+ }
if (p != ZSTR_VAL(target_buf) && eol_marker == '\n' && *(p - 1) == '\r') {
windows_eol++;
}
@@ -664,7 +670,7 @@
}
/* handle any leftovers of files without new lines */
- if (s != e) {
+ if (s != e && !ZEND_HAS_OOM()) {
p = e;
goto parse_eol;
}
@@ -898,8 +904,13 @@
RETURN_FALSE;
}
// TODO: avoid reallocation ???
- RETVAL_STRINGL(buf, line_len);
+ /* This copy can double an already large buffer. */
+ str = zend_string_finit(buf, line_len, /* persistent */ false, /* fallible */ true);
efree(buf);
+ if (UNEXPECTED(!str)) {
+ RETURN_OOM();
+ }
+ RETVAL_STR(str);
} else {
if (len <= 0) {
zend_argument_value_error(2, "must be greater than 0");
@@ -1925,6 +1936,11 @@
char *comp_end, *hunk_begin;
char *tptr = temp;
+ /* Each field costs a zval plus a zend_string, so stop once over the limit. */
+ if (ZEND_HAS_OOM()) {
+ break;
+ }
+
inc_len = (bptr < limit ? (*bptr == '\0' ? 1 : php_mblen(bptr, limit - bptr)): 0);
if (inc_len == 1) {
char *tmp = bptr;
diff -Nru php8.4-8.4.26/ext/standard/filters.c php8.4-8.4.27/ext/standard/filters.c
--- php8.4-8.4.26/ext/standard/filters.c 2026-09-22 15:00:02.000000000 +0000
+++ php8.4-8.4.27/ext/standard/filters.c 2026-10-19 14:38:59.000000000 +0000
@@ -953,7 +953,7 @@
err = PHP_CONV_ERR_INVALID_SEQ;
goto out;
}
- next_char = (next_char << 4) | (*ps >= 'A' ? *ps - 0x37 : *ps - 0x30);
+ next_char = (next_char << 4) | (*ps >= 'a' ? *ps - 0x57 : (*ps >= 'A' ? *ps - 0x37 : *ps - 0x30));
scan_stat++;
ps++, icnt--;
if (scan_stat != 3) {
diff -Nru php8.4-8.4.26/ext/standard/head.c php8.4-8.4.27/ext/standard/head.c
--- php8.4-8.4.26/ext/standard/head.c 2026-09-22 15:00:02.000000000 +0000
+++ php8.4-8.4.27/ext/standard/head.c 2026-10-19 14:38:59.000000000 +0000
@@ -137,12 +137,20 @@
smart_str_appends(&buf, "Set-Cookie: ");
smart_str_append(&buf, name);
smart_str_appendc(&buf, '=');
+ /* The encoded value is up to three copies of the input. */
if (url_encode) {
zend_string *encoded_value = php_raw_url_encode(ZSTR_VAL(value), ZSTR_LEN(value));
- smart_str_append(&buf, encoded_value);
+ bool appended = smart_str_fappendl_ex(&buf, ZSTR_VAL(encoded_value),
+ ZSTR_LEN(encoded_value), /* persistent */ false, /* fallible */ true);
zend_string_release_ex(encoded_value, 0);
- } else {
- smart_str_append(&buf, value);
+ if (UNEXPECTED(!appended)) {
+ smart_str_free(&buf);
+ return FAILURE;
+ }
+ } else if (UNEXPECTED(!smart_str_fappendl_ex(&buf, ZSTR_VAL(value), ZSTR_LEN(value),
+ /* persistent */ false, /* fallible */ true))) {
+ smart_str_free(&buf);
+ return FAILURE;
}
if (expires > 0) {
diff -Nru php8.4-8.4.26/ext/standard/html.c php8.4-8.4.27/ext/standard/html.c
--- php8.4-8.4.26/ext/standard/html.c 2026-09-22 15:00:02.000000000 +0000
+++ php8.4-8.4.27/ext/standard/html.c 2026-10-19 14:38:59.000000000 +0000
@@ -1145,7 +1145,10 @@
maxlen = zend_safe_addmult(oldlen, 2, 0, "html_entities");
}
- replaced = zend_string_alloc(maxlen, 0);
+ replaced = zend_string_falloc(maxlen, /* persistent */ false, /* fallible */ true);
+ if (!replaced) {
+ return ZSTR_EMPTY_ALLOC();
+ }
len = 0;
cursor = 0;
while (cursor < oldlen) {
@@ -1158,7 +1161,12 @@
/* guarantee we have at least 40 bytes to write.
* In HTML5, entities may take up to 33 bytes */
if (len > maxlen - 40) { /* maxlen can never be smaller than 128 */
- replaced = zend_string_safe_realloc(replaced, maxlen, 1, 128, 0);
+ zend_string *new_replaced = zend_string_safe_frealloc(replaced, maxlen, 1, 128, /* persistent */ false, /* fallible */ true);
+ if (!new_replaced) {
+ zend_string_release(replaced);
+ return ZSTR_EMPTY_ALLOC();
+ }
+ replaced = new_replaced;
maxlen += 128;
}
diff -Nru php8.4-8.4.26/ext/standard/image.c php8.4-8.4.27/ext/standard/image.c
--- php8.4-8.4.26/ext/standard/image.c 2026-09-22 15:00:02.000000000 +0000
+++ php8.4-8.4.27/ext/standard/image.c 2026-10-19 14:38:59.000000000 +0000
@@ -204,7 +204,14 @@
do {
szlength = ZSTR_LEN(bufz) * (1<
#endif
-#ifdef HAVE_POSIX_SPAWN_FILE_ACTIONS_ADDCHDIR_NP
+#if defined(HAVE_POSIX_SPAWN_FILE_ACTIONS_ADDCHDIR_NP) || defined(HAVE_POSIX_SPAWN_FILE_ACTIONS_ADDCHDIR)
/* Only defined on glibc >= 2.29, FreeBSD CURRENT, musl >= 1.1.24,
* MacOS Catalina or later..
* It should be posible to modify this so it is also
@@ -44,7 +44,24 @@
* to be really buggy.
*/
#include
+#ifdef __APPLE__
+#include
+#endif
#define USE_POSIX_SPAWN
+
+/* The non-_np variant is in macOS 26 (and _np deprecated). On Apple, it has to be selected by the
+ * deployment target rather than the configure check: the link check passes whenever the SDK
+ * exports the symbol even if the running system is older, in which case the weakly linked
+ * reference resolves to NULL at runtime. */
+#if defined(__APPLE__) && MAC_OS_X_VERSION_MIN_REQUIRED >= 260000
+#define POSIX_SPAWN_FILE_ACTIONS_ADDCHDIR posix_spawn_file_actions_addchdir
+#elif defined(__APPLE__)
+#define POSIX_SPAWN_FILE_ACTIONS_ADDCHDIR posix_spawn_file_actions_addchdir_np
+#elif defined(HAVE_POSIX_SPAWN_FILE_ACTIONS_ADDCHDIR)
+#define POSIX_SPAWN_FILE_ACTIONS_ADDCHDIR posix_spawn_file_actions_addchdir
+#else
+#define POSIX_SPAWN_FILE_ACTIONS_ADDCHDIR posix_spawn_file_actions_addchdir_np
+#endif
#endif
/* This symbol is defined in ext/standard/config.m4.
@@ -695,7 +712,7 @@
static void init_process_info(PROCESS_INFORMATION *pi)
{
- memset(&pi, 0, sizeof(pi));
+ memset(pi, 0, sizeof(*pi));
}
/* on success, returns length of *comspec, which then needs to be efree'd by caller */
@@ -746,7 +763,7 @@
static zend_result convert_command_to_use_shell(wchar_t **cmdw, size_t cmdw_len)
{
- wchar_t *comspec;
+ wchar_t *comspec = NULL;
size_t len = find_comspec_nt(&comspec);
if (len == 0) {
php_error_docref(NULL, E_WARNING, "Command conversion failed");
@@ -829,7 +846,7 @@
#ifdef PHP_WIN32
desc->childend = CreateFileA("nul", GENERIC_READ | GENERIC_WRITE,
FILE_SHARE_READ | FILE_SHARE_WRITE, NULL, OPEN_EXISTING, 0, NULL);
- if (desc->childend == NULL) {
+ if (desc->childend == INVALID_HANDLE_VALUE) {
php_error_docref(NULL, E_WARNING, "Failed to open nul");
return FAILURE;
}
@@ -1172,8 +1189,9 @@
{
for (int i = 0; i < ndesc; i++) {
close_descriptor(descriptors[i].childend);
- if (descriptors[i].parentend)
+ if (descriptors[i].type != DESCRIPTOR_TYPE_STD) {
close_descriptor(descriptors[i].parentend);
+ }
}
}
@@ -1391,9 +1409,9 @@
}
if (cwd) {
- r = posix_spawn_file_actions_addchdir_np(&factions, cwd);
+ r = POSIX_SPAWN_FILE_ACTIONS_ADDCHDIR(&factions, cwd);
if (r != 0) {
- php_error_docref(NULL, E_WARNING, "posix_spawn_file_actions_addchdir_np() failed: %s", strerror(r));
+ php_error_docref(NULL, E_WARNING, ZEND_TOSTR(POSIX_SPAWN_FILE_ACTIONS_ADDCHDIR) "() failed: %s", strerror(r));
}
}
diff -Nru php8.4-8.4.26/ext/standard/sha1.c php8.4-8.4.27/ext/standard/sha1.c
--- php8.4-8.4.26/ext/standard/sha1.c 2026-09-22 15:00:02.000000000 +0000
+++ php8.4-8.4.27/ext/standard/sha1.c 2026-10-19 14:38:59.000000000 +0000
@@ -84,10 +84,16 @@
PHP_SHA1Update(&context, buf, n);
}
+ bool failed = n < 0 || !php_stream_eof(stream);
+
PHP_SHA1Final(digest, &context);
php_stream_close(stream);
+ if (failed) {
+ RETURN_FALSE;
+ }
+
if (raw_output) {
RETURN_STRINGL((char *) digest, 20);
} else {
diff -Nru php8.4-8.4.26/ext/standard/string.c php8.4-8.4.27/ext/standard/string.c
--- php8.4-8.4.26/ext/standard/string.c 2026-09-22 15:00:02.000000000 +0000
+++ php8.4-8.4.27/ext/standard/string.c 2026-10-19 14:38:59.000000000 +0000
@@ -735,7 +735,10 @@
/* Special case for a single-character break as it needs no
additional storage space */
if (breakchar_len == 1 && !docut) {
- newtext = zend_string_init(ZSTR_VAL(text), ZSTR_LEN(text), 0);
+ newtext = zend_string_finit(ZSTR_VAL(text), ZSTR_LEN(text), 0, /* fallible */ true);
+ if (UNEXPECTED(!newtext)) {
+ RETURN_OOM();
+ }
laststart = lastspace = 0;
for (current = 0; current < (zend_long)ZSTR_LEN(text); current++) {
@@ -758,12 +761,18 @@
/* Multiple character line break or forced cut */
if (linelength > 0) {
chk = (size_t)(ZSTR_LEN(text)/linelength + 1);
- newtext = zend_string_safe_alloc(chk, breakchar_len, ZSTR_LEN(text), 0);
+ newtext = zend_string_safe_falloc(chk, breakchar_len, ZSTR_LEN(text), 0, /* fallible */ true);
+ if (UNEXPECTED(!newtext)) {
+ RETURN_OOM();
+ }
alloced = ZSTR_LEN(text) + chk * breakchar_len + 1;
} else {
chk = ZSTR_LEN(text);
alloced = ZSTR_LEN(text) * (breakchar_len + 1) + 1;
- newtext = zend_string_safe_alloc(ZSTR_LEN(text), breakchar_len + 1, 0, 0);
+ newtext = zend_string_safe_falloc(ZSTR_LEN(text), breakchar_len + 1, 0, 0, /* fallible */ true);
+ if (UNEXPECTED(!newtext)) {
+ RETURN_OOM();
+ }
}
/* now keep track of the actual new text length */
@@ -773,13 +782,16 @@
for (current = 0; current < (zend_long)ZSTR_LEN(text); current++) {
if (chk == 0) {
alloced += (size_t) (((ZSTR_LEN(text) - current + 1)/linelength + 1) * breakchar_len) + 1;
- newtext = zend_string_extend(newtext, alloced, 0);
+ newtext = zend_string_fextend(newtext, alloced, 0, /* fallible */ true);
+ if (UNEXPECTED(!newtext)) {
+ RETURN_OOM();
+ }
chk = (size_t) ((ZSTR_LEN(text) - current)/linelength) + 1;
}
/* when we hit an existing break, copy to new buffer, and
* fix up laststart and lastspace */
if (ZSTR_VAL(text)[current] == breakchar[0]
- && current + breakchar_len < ZSTR_LEN(text)
+ && current + breakchar_len <= ZSTR_LEN(text)
&& !strncmp(ZSTR_VAL(text) + current, breakchar, breakchar_len)) {
memcpy(ZSTR_VAL(newtext) + newtextlen, ZSTR_VAL(text) + laststart, current - laststart + breakchar_len);
newtextlen += current - laststart + breakchar_len;
@@ -834,7 +846,10 @@
ZSTR_VAL(newtext)[newtextlen] = '\0';
/* free unused memory */
- newtext = zend_string_truncate(newtext, newtextlen, 0);
+ newtext = zend_string_ftruncate(newtext, newtextlen, 0, /* fallible */ true);
+ if (UNEXPECTED(!newtext)) {
+ RETURN_OOM();
+ }
RETURN_NEW_STR(newtext);
}
@@ -856,6 +871,11 @@
zend_hash_real_init_packed(Z_ARRVAL_P(return_value));
ZEND_HASH_FILL_PACKED(Z_ARRVAL_P(return_value)) {
do {
+ /* Each piece costs a zval plus a zend_string, so stop once over the limit. */
+ if (ZEND_HAS_OOM()) {
+ ZEND_HASH_FILL_FINISH();
+ return;
+ }
ZEND_HASH_FILL_GROW();
ZEND_HASH_FILL_SET_STR(zend_string_init_fast(p1, p2 - p1));
ZEND_HASH_FILL_NEXT();
@@ -894,6 +914,11 @@
positions[found++] = p1;
do {
+ /* One pointer per delimiter, then a zval and a zend_string per piece. */
+ if (ZEND_HAS_OOM()) {
+ efree((void *)positions);
+ return;
+ }
if (found >= allocated) {
allocated = found + EXPLODE_ALLOC_STEP;/* make sure we have enough memory */
positions = erealloc(ZEND_VOIDP(positions), allocated*sizeof(char *));
@@ -905,6 +930,9 @@
to_return = limit + found;
/* limit is at least -1 therefore no need of bounds checking : i will be always less than found */
for (i = 0; i < to_return; i++) { /* this checks also for to_return > 0 */
+ if (ZEND_HAS_OOM()) {
+ break;
+ }
ZVAL_STRINGL(&tmp, positions[i], (positions[i+1] - ZSTR_LEN(delim)) - positions[i]);
zend_hash_next_index_insert_new(Z_ARRVAL_P(return_value), &tmp);
}
@@ -1016,7 +1044,18 @@
} ZEND_HASH_FOREACH_END();
/* numelems cannot be 0, we checked above */
- str = zend_string_safe_alloc(numelems - 1, ZSTR_LEN(glue), len, 0);
+ /* The glue is repeated once per element, so the result can dwarf the input. */
+ str = zend_string_safe_falloc(numelems - 1, ZSTR_LEN(glue), len, 0, /* fallible */ true);
+ if (UNEXPECTED(!str)) {
+ while (ptr > strings) {
+ ptr--;
+ if (ptr->str && ptr->lval) {
+ zend_string_release_ex(ptr->str, 0);
+ }
+ }
+ free_alloca(strings, use_heap);
+ RETURN_OOM();
+ }
GC_ADD_FLAGS(str, flags);
cptr = ZSTR_VAL(str) + ZSTR_LEN(str);
*cptr = 0;
@@ -2175,7 +2214,10 @@
chunks++;
}
- dest = zend_string_safe_alloc(chunks, endlen, srclen, 0);
+ dest = zend_string_safe_falloc(chunks, endlen, srclen, 0, /* fallible */ true);
+ if (UNEXPECTED(!dest)) {
+ return NULL;
+ }
for (p = src, q = ZSTR_VAL(dest); p < (src + srclen - chunklen + 1); ) {
q = zend_mempcpy(q, p, chunklen);
@@ -2218,7 +2260,10 @@
if ((size_t)chunklen > ZSTR_LEN(str)) {
/* to maintain BC, we must return original string + ending */
- result = zend_string_safe_alloc(ZSTR_LEN(str), 1, endlen, 0);
+ result = zend_string_safe_falloc(ZSTR_LEN(str), 1, endlen, 0, /* fallible */ true);
+ if (UNEXPECTED(!result)) {
+ RETURN_OOM();
+ }
memcpy(ZSTR_VAL(result), ZSTR_VAL(str), ZSTR_LEN(str));
memcpy(ZSTR_VAL(result) + ZSTR_LEN(str), end, endlen);
ZSTR_VAL(result)[ZSTR_LEN(result)] = '\0';
@@ -2230,6 +2275,9 @@
}
result = php_chunk_split(ZSTR_VAL(str), ZSTR_LEN(str), end, endlen, (size_t)chunklen);
+ if (UNEXPECTED(!result)) {
+ RETURN_OOM();
+ }
RETURN_STR(result);
}
@@ -2454,7 +2502,13 @@
ZEND_HASH_FOREACH_KEY_VAL(str_ht, num_index, str_index, tmp_str) {
zend_string *tmp_orig_str;
- zend_string *orig_str = zval_get_tmp_string(tmp_str, &tmp_orig_str);
+ zend_string *orig_str;
+
+ /* The replacement is repeated once per element, so stop once over the limit. */
+ if (ZEND_HAS_OOM()) {
+ RETURN_OOM();
+ }
+ orig_str = zval_get_tmp_string(tmp_str, &tmp_orig_str);
if (from_ht) {
if (HT_IS_PACKED(from_ht)) {
@@ -3008,6 +3062,15 @@
old_pos = pos = 0;
while (pos <= slen - minlen) {
+ /* One replacement is appended per match, so stop once over the limit. */
+ if (ZEND_HAS_OOM()) {
+ smart_str_free(&result);
+ if (pats == &str_hash) {
+ zend_hash_destroy(&str_hash);
+ }
+ efree(num_bitset);
+ RETURN_OOM();
+ }
key = str + pos;
if (bitset[((unsigned char)key[0]) / sizeof(zend_ulong)] & (Z_UL(1) << (((unsigned char)key[0]) % sizeof(zend_ulong)))) {
len = maxlen;
@@ -3127,7 +3190,11 @@
}
if (to_len > 0) {
- result = zend_string_safe_alloc(char_count, to_len - 1, ZSTR_LEN(str), 0);
+ /* The replacement is repeated once per match, so the result can dwarf the input. */
+ result = zend_string_safe_falloc(char_count, to_len - 1, ZSTR_LEN(str), 0, /* fallible */ true);
+ if (UNEXPECTED(!result)) {
+ return NULL;
+ }
} else {
result = zend_string_alloc(ZSTR_LEN(str) - char_count, 0);
}
@@ -3202,7 +3269,10 @@
goto nothing_todo;
}
if (str_len > needle_len) {
- new_str = zend_string_safe_alloc(count, str_len - needle_len, ZSTR_LEN(haystack), 0);
+ new_str = zend_string_safe_falloc(count, str_len - needle_len, ZSTR_LEN(haystack), 0, /* fallible */ true);
+ if (UNEXPECTED(!new_str)) {
+ return NULL;
+ }
} else {
new_str = zend_string_alloc(count * (str_len - needle_len) + ZSTR_LEN(haystack), 0);
}
@@ -3280,7 +3350,10 @@
}
if (str_len > ZSTR_LEN(lc_needle)) {
- new_str = zend_string_safe_alloc(count, str_len - ZSTR_LEN(lc_needle), ZSTR_LEN(haystack), 0);
+ new_str = zend_string_safe_falloc(count, str_len - ZSTR_LEN(lc_needle), ZSTR_LEN(haystack), 0, /* fallible */ true);
+ if (UNEXPECTED(!new_str)) {
+ return NULL;
+ }
} else {
new_str = zend_string_alloc(count * (str_len - ZSTR_LEN(lc_needle)) + ZSTR_LEN(haystack), 0);
}
@@ -3416,21 +3489,34 @@
php_error_docref(NULL, E_WARNING, "Ignoring replacement of empty string");
RETVAL_STR_COPY(str);
} else if (ZSTR_LEN(str_key) == 1) {
- RETVAL_STR(php_char_to_str_ex(str,
+ zend_string *res = php_char_to_str_ex(str,
ZSTR_VAL(str_key)[0],
ZSTR_VAL(replace),
ZSTR_LEN(replace),
/* case_sensitive */ true,
- NULL));
+ NULL);
+ if (UNEXPECTED(!res)) {
+ goto strtr_oom;
+ }
+ RETVAL_STR(res);
} else {
zend_long dummy = 0;
- RETVAL_STR(php_str_to_str_ex(str,
+ zend_string *res = php_str_to_str_ex(str,
ZSTR_VAL(str_key), ZSTR_LEN(str_key),
- ZSTR_VAL(replace), ZSTR_LEN(replace), &dummy));
+ ZSTR_VAL(replace), ZSTR_LEN(replace), &dummy);
+ if (UNEXPECTED(!res)) {
+ goto strtr_oom;
+ }
+ RETVAL_STR(res);
}
zend_tmp_string_release(tmp_str);
zend_tmp_string_release(tmp_replace);
break;
+
+strtr_oom:
+ zend_tmp_string_release(tmp_str);
+ zend_tmp_string_release(tmp_replace);
+ RETURN_OOM();
} ZEND_HASH_FOREACH_END();
} else {
php_strtr_array_ex(return_value, str, from_ht);
@@ -4428,6 +4514,15 @@
zend_tmp_string_release(tmp_search_str);
zend_tmp_string_release(tmp_replace_entry_str);
+ if (UNEXPECTED(!tmp_result)) {
+ zend_string_release_ex(subject_str, 0);
+ ZVAL_EMPTY_STRING(result);
+ if (lc_subject_str) {
+ zend_string_release_ex(lc_subject_str, 0);
+ }
+ return replace_count;
+ }
+
if (subject_str == tmp_result) {
zend_string_delref(subject_str);
} else {
@@ -4450,24 +4545,33 @@
} else {
ZEND_ASSERT(search_str);
if (ZSTR_LEN(search_str) == 1) {
- ZVAL_STR(result,
- php_char_to_str_ex(subject_str,
+ tmp_result = php_char_to_str_ex(subject_str,
ZSTR_VAL(search_str)[0],
ZSTR_VAL(replace_str),
ZSTR_LEN(replace_str),
case_sensitivity,
- &replace_count));
+ &replace_count);
+ if (UNEXPECTED(!tmp_result)) {
+ ZVAL_EMPTY_STRING(result);
+ return replace_count;
+ }
+ ZVAL_STR(result, tmp_result);
} else if (ZSTR_LEN(search_str) > 1) {
if (case_sensitivity) {
- ZVAL_STR(result, php_str_to_str_ex(subject_str,
+ tmp_result = php_str_to_str_ex(subject_str,
ZSTR_VAL(search_str), ZSTR_LEN(search_str),
- ZSTR_VAL(replace_str), ZSTR_LEN(replace_str), &replace_count));
+ ZSTR_VAL(replace_str), ZSTR_LEN(replace_str), &replace_count);
} else {
lc_subject_str = zend_string_tolower(subject_str);
- ZVAL_STR(result, php_str_to_str_i_ex(subject_str, ZSTR_VAL(lc_subject_str),
- search_str, ZSTR_VAL(replace_str), ZSTR_LEN(replace_str), &replace_count));
+ tmp_result = php_str_to_str_i_ex(subject_str, ZSTR_VAL(lc_subject_str),
+ search_str, ZSTR_VAL(replace_str), ZSTR_LEN(replace_str), &replace_count);
zend_string_release_ex(lc_subject_str, 0);
}
+ if (UNEXPECTED(!tmp_result)) {
+ ZVAL_EMPTY_STRING(result);
+ return replace_count;
+ }
+ ZVAL_STR(result, tmp_result);
} else {
ZVAL_STR_COPY(result, subject_str);
}
@@ -4806,7 +4910,10 @@
{
size_t repl_len = is_xhtml ? (sizeof("
") - 1) : (sizeof("
") - 1);
- result = zend_string_safe_alloc(repl_cnt, repl_len, ZSTR_LEN(str), 0);
+ result = zend_string_safe_falloc(repl_cnt, repl_len, ZSTR_LEN(str), 0, /* fallible */ true);
+ if (UNEXPECTED(!result)) {
+ RETURN_OOM();
+ }
target = ZSTR_VAL(result);
}
@@ -5515,7 +5622,11 @@
RETURN_EMPTY_STRING();
/* Initialize the result string */
- result = zend_string_safe_alloc(ZSTR_LEN(input_str), mult, 0, 0);
+ result = zend_string_safe_falloc(ZSTR_LEN(input_str), mult, 0, /*persistent */ false, /* fallible */ true);
+ if (UNEXPECTED(!result)) {
+ RETURN_OOM();
+ }
+
result_len = ZSTR_LEN(input_str) * mult;
ZSTR_COPY_CONCAT_PROPERTIES(result, input_str);
@@ -5802,7 +5913,10 @@
}
num_pad_chars = pad_length - ZSTR_LEN(input);
- result = zend_string_safe_alloc(1, ZSTR_LEN(input), num_pad_chars, 0);
+ result = zend_string_safe_falloc(1, ZSTR_LEN(input), num_pad_chars, 0, /* falllible */ true);
+ if (UNEXPECTED(!result)) {
+ RETURN_OOM();
+ }
ZSTR_LEN(result) = 0;
/* We need to figure out the left/right padding lengths. */
@@ -6084,6 +6198,10 @@
}
while (p < e) {
+ /* Each word costs a zval plus a zend_string, so stop once over the limit. */
+ if (type && ZEND_HAS_OOM()) {
+ RETURN_OOM();
+ }
s = p;
while (p < e && (isalpha((unsigned char)*p) || (char_list && ch[(unsigned char)*p]) || *p == '\'' || *p == '-')) {
p++;
@@ -6141,12 +6259,18 @@
return;
}
- array_init_size(return_value, (uint32_t)(((ZSTR_LEN(str) - 1) / split_length) + 1));
+ if (UNEXPECTED(!array_finit_size_packed(return_value, (uint32_t)(((ZSTR_LEN(str) - 1) / split_length) + 1)))) {
+ RETURN_OOM();
+ }
n_reg_segments = ZSTR_LEN(str) / split_length;
p = ZSTR_VAL(str);
while (n_reg_segments-- > 0) {
+ /* Each segment costs a zval plus a zend_string, so stop once over the limit. */
+ if (ZEND_HAS_OOM()) {
+ RETURN_OOM();
+ }
add_next_index_stringl(return_value, p, split_length);
p += split_length;
}
diff -Nru php8.4-8.4.26/ext/standard/tests/GHSA-96wq-48vp-hh57.phpt php8.4-8.4.27/ext/standard/tests/GHSA-96wq-48vp-hh57.phpt
--- php8.4-8.4.26/ext/standard/tests/GHSA-96wq-48vp-hh57.phpt 2026-09-22 15:00:02.000000000 +0000
+++ php8.4-8.4.27/ext/standard/tests/GHSA-96wq-48vp-hh57.phpt 2026-10-19 14:38:59.000000000 +0000
@@ -8,7 +8,8 @@
--FILE--
+--EXPECTF--
+Fatal error: Allowed memory size of %d bytes exhausted %S(tried to allocate %d bytes) in %s on line %d
diff -Nru php8.4-8.4.26/ext/standard/tests/array/oom_array_map_zip.phpt php8.4-8.4.27/ext/standard/tests/array/oom_array_map_zip.phpt
--- php8.4-8.4.26/ext/standard/tests/array/oom_array_map_zip.phpt 1970-01-01 00:00:00.000000000 +0000
+++ php8.4-8.4.27/ext/standard/tests/array/oom_array_map_zip.phpt 2026-10-19 14:38:59.000000000 +0000
@@ -0,0 +1,12 @@
+--TEST--
+array_map() without a callback doesn't reach hard limit
+--INI--
+memory_limit=8M
+--FILE--
+
+--EXPECTF--
+Fatal error: Allowed memory size of %d bytes exhausted %S(tried to allocate %d bytes) in %s on line %d
diff -Nru php8.4-8.4.26/ext/standard/tests/file/fread_oom_chunk_size.phpt php8.4-8.4.27/ext/standard/tests/file/fread_oom_chunk_size.phpt
--- php8.4-8.4.26/ext/standard/tests/file/fread_oom_chunk_size.phpt 1970-01-01 00:00:00.000000000 +0000
+++ php8.4-8.4.27/ext/standard/tests/file/fread_oom_chunk_size.phpt 2026-10-19 14:38:59.000000000 +0000
@@ -0,0 +1,16 @@
+--TEST--
+fread() with a large chunk size doesn't reach hard limit
+--INI--
+memory_limit=8M
+--SKIPIF--
+
+--FILE--
+
+--EXPECTF--
+Fatal error: Allowed memory size of %d bytes exhausted %S(tried to allocate %d bytes) in %s on line %d
diff -Nru php8.4-8.4.26/ext/standard/tests/file/fread_oom_filter_chunk_size.phpt php8.4-8.4.27/ext/standard/tests/file/fread_oom_filter_chunk_size.phpt
--- php8.4-8.4.26/ext/standard/tests/file/fread_oom_filter_chunk_size.phpt 1970-01-01 00:00:00.000000000 +0000
+++ php8.4-8.4.27/ext/standard/tests/file/fread_oom_filter_chunk_size.phpt 2026-10-19 14:38:59.000000000 +0000
@@ -0,0 +1,17 @@
+--TEST--
+fread() with a filter and a large chunk size doesn't reach hard limit
+--INI--
+memory_limit=8M
+--SKIPIF--
+
+--FILE--
+
+--EXPECTF--
+Fatal error: Allowed memory size of %d bytes exhausted %S(tried to allocate %d bytes) in %s on line %d
diff -Nru php8.4-8.4.26/ext/standard/tests/file/fread_oom_length.phpt php8.4-8.4.27/ext/standard/tests/file/fread_oom_length.phpt
--- php8.4-8.4.26/ext/standard/tests/file/fread_oom_length.phpt 1970-01-01 00:00:00.000000000 +0000
+++ php8.4-8.4.27/ext/standard/tests/file/fread_oom_length.phpt 2026-10-19 14:38:59.000000000 +0000
@@ -0,0 +1,15 @@
+--TEST--
+fread() with a large length doesn't reach hard limit
+--INI--
+memory_limit=8M
+--SKIPIF--
+
+--FILE--
+
+--EXPECTF--
+Fatal error: Allowed memory size of %d bytes exhausted %S(tried to allocate %d bytes) in %s on line %d
diff -Nru php8.4-8.4.26/ext/standard/tests/file/ghsa-9f67-6fw4-hpfp-win32.phpt php8.4-8.4.27/ext/standard/tests/file/ghsa-9f67-6fw4-hpfp-win32.phpt
--- php8.4-8.4.26/ext/standard/tests/file/ghsa-9f67-6fw4-hpfp-win32.phpt 2026-09-22 15:00:02.000000000 +0000
+++ php8.4-8.4.27/ext/standard/tests/file/ghsa-9f67-6fw4-hpfp-win32.phpt 2026-10-19 14:38:59.000000000 +0000
@@ -22,12 +22,28 @@
}
echo "Reserved names in paths are rejected:\n";
-foreach (['NUL', 'con', 'COM1', 'LPT9', 'CONIN$', 'NUL.txt', 'con.php', 'aux:stream', 'NUL .txt', 'NUL :txt', '.\\NUL'] as $name) {
+foreach (['NUL', 'con', 'COM1', 'LPT9', 'CONIN$', '.\\NUL'] as $name) {
$blocked = $dir . DIRECTORY_SEPARATOR . $name;
var_dump(@fopen($blocked, 'wb') === false);
var_dump(file_exists($blocked));
}
-var_dump(@fopen('NUL.txt', 'wb') === false);
+
+echo "Suffixed device names:\n";
+foreach (['NUL.txt', 'con.php', 'aux:stream', 'NUL .txt', 'NUL :txt'] as $name) {
+ $file = $dir . DIRECTORY_SEPARATOR . $name;
+ $h = @fopen($file, 'wb');
+ if (PHP_WINDOWS_VERSION_BUILD < 22000) {
+ var_dump($h === false);
+ } else {
+ // Windows 11 treats these as regular files
+ var_dump(is_resource($h) && (fstat($h)['mode'] & 0170000) === 0100000);
+ fclose($h);
+ // Delete the base file and its streams
+ $base = $dir . DIRECTORY_SEPARATOR . explode(':', $name)[0];
+ unlink('\\\\.\\' . $base . '::$DATA');
+ }
+ var_dump(file_exists($file));
+}
var_dump(@stat($dir . DIRECTORY_SEPARATOR . 'NUL') === false);
var_dump(@mkdir($dir . DIRECTORY_SEPARATOR . 'NUL') === false);
var_dump(@rename(__FILE__, $dir . DIRECTORY_SEPARATOR . 'PRN') === false);
@@ -61,6 +77,7 @@
bool(false)
bool(true)
bool(false)
+Suffixed device names:
bool(true)
bool(false)
bool(true)
@@ -74,7 +91,6 @@
bool(true)
bool(true)
bool(true)
-bool(true)
bool(true)
Similar names are fine:
bool(true)
diff -Nru php8.4-8.4.26/ext/standard/tests/file/oom_file.phpt php8.4-8.4.27/ext/standard/tests/file/oom_file.phpt
--- php8.4-8.4.26/ext/standard/tests/file/oom_file.phpt 1970-01-01 00:00:00.000000000 +0000
+++ php8.4-8.4.27/ext/standard/tests/file/oom_file.phpt 2026-10-19 14:38:59.000000000 +0000
@@ -0,0 +1,22 @@
+--TEST--
+file() doesn't reach hard limit
+--INI--
+memory_limit=64M
+--SKIPIF--
+
+--FILE--
+
+--CLEAN--
+
+--EXPECTF--
+Fatal error: Allowed memory size of %d bytes exhausted %S(tried to allocate %d bytes) in %s on line %d
diff -Nru php8.4-8.4.26/ext/standard/tests/file/oom_file_get_contents.phpt php8.4-8.4.27/ext/standard/tests/file/oom_file_get_contents.phpt
--- php8.4-8.4.26/ext/standard/tests/file/oom_file_get_contents.phpt 1970-01-01 00:00:00.000000000 +0000
+++ php8.4-8.4.27/ext/standard/tests/file/oom_file_get_contents.phpt 2026-10-19 14:38:59.000000000 +0000
@@ -0,0 +1,21 @@
+--TEST--
+file_get_contents() doesn't reach hard limit
+--INI--
+memory_limit=64M
+--SKIPIF--
+
+--FILE--
+
+--CLEAN--
+
+--EXPECTF--
+Fatal error: Allowed memory size of %d bytes exhausted %S(tried to allocate %d bytes) in %s on line %d
diff -Nru php8.4-8.4.26/ext/standard/tests/filters/qp_decode_lowercase.phpt php8.4-8.4.27/ext/standard/tests/filters/qp_decode_lowercase.phpt
--- php8.4-8.4.26/ext/standard/tests/filters/qp_decode_lowercase.phpt 1970-01-01 00:00:00.000000000 +0000
+++ php8.4-8.4.27/ext/standard/tests/filters/qp_decode_lowercase.phpt 2026-10-19 14:38:59.000000000 +0000
@@ -0,0 +1,20 @@
+--TEST--
+convert.quoted-printable-decode: lowercase hex digits decode correctly
+--FILE--
+ ', bin2hex(stream_get_contents($fp)), "\n";
+ fclose($fp);
+}
+?>
+--EXPECT--
+=cd => cd
+=0a => 0a
+=da => da
+=CD => cd
+=AB => ab
+=ab => ab
diff -Nru php8.4-8.4.26/ext/standard/tests/general_functions/proc_open_descriptor_0_setup_failure.phpt php8.4-8.4.27/ext/standard/tests/general_functions/proc_open_descriptor_0_setup_failure.phpt
--- php8.4-8.4.26/ext/standard/tests/general_functions/proc_open_descriptor_0_setup_failure.phpt 1970-01-01 00:00:00.000000000 +0000
+++ php8.4-8.4.27/ext/standard/tests/general_functions/proc_open_descriptor_0_setup_failure.phpt 2026-10-19 14:38:59.000000000 +0000
@@ -0,0 +1,29 @@
+--TEST--
+proc_open() closes descriptor 0 when setup fails after pipe allocation
+--SKIPIF--
+
+--FILE--
+ ["pipe", "w"], 1 => ["bogus_type"]], $pipes));
+$fd = fopen("/dev/null", "r");
+var_dump(readlink("/proc/self/fd/0"));
+fclose($fd);
+PHP;
+$process = proc_open([PHP_BINARY, "-n", "-r", $code], [1 => ["pipe", "w"]], $pipes);
+echo stream_get_contents($pipes[1]);
+fclose($pipes[1]);
+var_dump(proc_close($process));
+?>
+--EXPECT--
+bool(false)
+string(9) "/dev/null"
+int(0)
diff -Nru php8.4-8.4.26/ext/standard/tests/general_functions/proc_open_socket_descriptor_0_setup_failure.phpt php8.4-8.4.27/ext/standard/tests/general_functions/proc_open_socket_descriptor_0_setup_failure.phpt
--- php8.4-8.4.26/ext/standard/tests/general_functions/proc_open_socket_descriptor_0_setup_failure.phpt 1970-01-01 00:00:00.000000000 +0000
+++ php8.4-8.4.27/ext/standard/tests/general_functions/proc_open_socket_descriptor_0_setup_failure.phpt 2026-10-19 14:38:59.000000000 +0000
@@ -0,0 +1,29 @@
+--TEST--
+proc_open() closes descriptor 0 when setup fails after socket allocation
+--SKIPIF--
+
+--FILE--
+ ["socket"], 1 => ["bogus_type"]], $pipes));
+$fd = fopen("/dev/null", "r");
+var_dump(readlink("/proc/self/fd/0"));
+fclose($fd);
+PHP;
+$process = proc_open([PHP_BINARY, "-n", "-r", $code], [1 => ["pipe", "w"]], $pipes);
+echo stream_get_contents($pipes[1]);
+fclose($pipes[1]);
+var_dump(proc_close($process));
+?>
+--EXPECT--
+bool(false)
+string(9) "/dev/null"
+int(0)
diff -Nru php8.4-8.4.26/ext/standard/tests/image/iptcembed_reentrant.phpt php8.4-8.4.27/ext/standard/tests/image/iptcembed_reentrant.phpt
--- php8.4-8.4.26/ext/standard/tests/image/iptcembed_reentrant.phpt 1970-01-01 00:00:00.000000000 +0000
+++ php8.4-8.4.27/ext/standard/tests/image/iptcembed_reentrant.phpt 2026-10-19 14:38:59.000000000 +0000
@@ -0,0 +1,34 @@
+--TEST--
+iptcembed() keeps APP13 headers local during reentrant output handling
+--FILE--
+
+--CLEAN--
+
+--EXPECT--
+Nested call: bool(true)
+APP13 length: int(30)
+Outer payload: string(2) "AA"
diff -Nru php8.4-8.4.26/ext/standard/tests/image/oom_getimagesize_cws.inc php8.4-8.4.27/ext/standard/tests/image/oom_getimagesize_cws.inc
--- php8.4-8.4.26/ext/standard/tests/image/oom_getimagesize_cws.inc 1970-01-01 00:00:00.000000000 +0000
+++ php8.4-8.4.27/ext/standard/tests/image/oom_getimagesize_cws.inc 2026-10-19 14:38:59.000000000 +0000
@@ -0,0 +1,17 @@
+ 9]);
+ $chunk = str_repeat('A', 1024 * 1024);
+ for ($i = 0; $i < 320; $i++) {
+ fwrite($file, deflate_add(
+ $deflate,
+ $chunk,
+ $i === 319 ? ZLIB_FINISH : ZLIB_NO_FLUSH,
+ ));
+ }
+ fclose($file);
+}
diff -Nru php8.4-8.4.26/ext/standard/tests/image/oom_getimagesize_cws.phpt php8.4-8.4.27/ext/standard/tests/image/oom_getimagesize_cws.phpt
--- php8.4-8.4.26/ext/standard/tests/image/oom_getimagesize_cws.phpt 1970-01-01 00:00:00.000000000 +0000
+++ php8.4-8.4.27/ext/standard/tests/image/oom_getimagesize_cws.phpt 2026-10-19 14:38:59.000000000 +0000
@@ -0,0 +1,27 @@
+--TEST--
+getimagesize() decompression doesn't reach hard limit
+--INI--
+memory_limit=128M
+--SKIPIF--
+
+--FILE--
+
+--CLEAN--
+
+--EXPECTF--
+Fatal error: Allowed memory size of 134217728 bytes exhausted %S(tried to allocate %d bytes) in %s on line %d
diff -Nru php8.4-8.4.26/ext/standard/tests/image/oom_getimagesize_xbm.phpt php8.4-8.4.27/ext/standard/tests/image/oom_getimagesize_xbm.phpt
--- php8.4-8.4.26/ext/standard/tests/image/oom_getimagesize_xbm.phpt 1970-01-01 00:00:00.000000000 +0000
+++ php8.4-8.4.27/ext/standard/tests/image/oom_getimagesize_xbm.phpt 2026-10-19 14:38:59.000000000 +0000
@@ -0,0 +1,23 @@
+--TEST--
+getimagesize() doesn't reach hard limit on a file without newlines
+--INI--
+memory_limit=64M
+--SKIPIF--
+
+--FILE--
+
+--CLEAN--
+
+--EXPECTF--
+Fatal error: Allowed memory size of %d bytes exhausted %S(tried to allocate %d bytes) in %s on line %d
diff -Nru php8.4-8.4.26/ext/standard/tests/image/oom_getimagesizefromstring_cws.phpt php8.4-8.4.27/ext/standard/tests/image/oom_getimagesizefromstring_cws.phpt
--- php8.4-8.4.26/ext/standard/tests/image/oom_getimagesizefromstring_cws.phpt 1970-01-01 00:00:00.000000000 +0000
+++ php8.4-8.4.27/ext/standard/tests/image/oom_getimagesizefromstring_cws.phpt 2026-10-19 14:38:59.000000000 +0000
@@ -0,0 +1,27 @@
+--TEST--
+getimagesizefromstring() decompression doesn't reach hard limit
+--INI--
+memory_limit=128M
+--SKIPIF--
+
+--FILE--
+
+--CLEAN--
+
+--EXPECTF--
+Fatal error: Allowed memory size of 134217728 bytes exhausted %S(tried to allocate %d bytes) in %s on line %d
diff -Nru php8.4-8.4.26/ext/standard/tests/serialize/incomplete_class_raw_payload_markers.phpt php8.4-8.4.27/ext/standard/tests/serialize/incomplete_class_raw_payload_markers.phpt
--- php8.4-8.4.26/ext/standard/tests/serialize/incomplete_class_raw_payload_markers.phpt 1970-01-01 00:00:00.000000000 +0000
+++ php8.4-8.4.27/ext/standard/tests/serialize/incomplete_class_raw_payload_markers.phpt 2026-10-19 14:38:59.000000000 +0000
@@ -0,0 +1,15 @@
+--TEST--
+serialize() keeps O: for incomplete classes whose properties look like raw C:/E: payloads
+--FILE--
+ false]));
+var_dump($stored === $untrusted);
+?>
+--EXPECT--
+bool(true)
diff -Nru php8.4-8.4.26/ext/standard/tests/streams/bug61115-1.phpt php8.4-8.4.27/ext/standard/tests/streams/bug61115-1.phpt
--- php8.4-8.4.26/ext/standard/tests/streams/bug61115-1.phpt 2026-09-22 15:00:02.000000000 +0000
+++ php8.4-8.4.27/ext/standard/tests/streams/bug61115-1.phpt 2026-10-19 14:38:59.000000000 +0000
@@ -5,6 +5,9 @@
if (getenv("USE_ZEND_ALLOC") === "0") {
die("skip Zend MM disabled");
}
+if (PHP_ZTS) {
+ die("skip No hard limit in ZTS");
+}
?>
--FILE--
+--FILE--
+
+--CLEAN--
+
+--EXPECTF--
+Fatal error: Allowed memory size of %d bytes exhausted %S(tried to allocate %d bytes) in %s on line %d
diff -Nru php8.4-8.4.26/ext/standard/tests/streams/oom_stream_get_contents.phpt php8.4-8.4.27/ext/standard/tests/streams/oom_stream_get_contents.phpt
--- php8.4-8.4.26/ext/standard/tests/streams/oom_stream_get_contents.phpt 1970-01-01 00:00:00.000000000 +0000
+++ php8.4-8.4.27/ext/standard/tests/streams/oom_stream_get_contents.phpt 2026-10-19 14:38:59.000000000 +0000
@@ -0,0 +1,21 @@
+--TEST--
+stream_get_contents() doesn't reach hard limit
+--INI--
+memory_limit=64M
+--SKIPIF--
+
+--FILE--
+
+--CLEAN--
+
+--EXPECTF--
+Fatal error: Allowed memory size of %d bytes exhausted %S(tried to allocate %d bytes) in %s on line %d
diff -Nru php8.4-8.4.26/ext/standard/tests/streams/persistent_stream_context_shutdown.phpt php8.4-8.4.27/ext/standard/tests/streams/persistent_stream_context_shutdown.phpt
--- php8.4-8.4.26/ext/standard/tests/streams/persistent_stream_context_shutdown.phpt 1970-01-01 00:00:00.000000000 +0000
+++ php8.4-8.4.27/ext/standard/tests/streams/persistent_stream_context_shutdown.phpt 2026-10-19 14:38:59.000000000 +0000
@@ -0,0 +1,63 @@
+--TEST--
+Persistent stream contexts created during resource shutdown are detached
+--FILE--
+ ['pipe', 'r'],
+ 1 => ['pipe', 'w'],
+ 2 => ['pipe', 'w'],
+ ],
+ $pipes,
+ );
+ fclose($pipes[0]);
+ stream_get_contents($pipes[1]);
+ fclose($pipes[1]);
+ stream_get_contents($pipes[2]);
+ fclose($pipes[2]);
+ var_dump(proc_close($process));
+ return;
+}
+
+final class LateContextWrapper
+{
+ public $context;
+ private string $address;
+
+ public function stream_open($path, $mode, $options, &$opened_path): bool
+ {
+ $this->address = substr($path, strlen('late-context://'));
+ return true;
+ }
+
+ public function stream_close(): void
+ {
+ $context = stream_context_create([
+ 'socket' => ['tcp_nodelay' => true],
+ ]);
+ stream_socket_client(
+ $this->address,
+ $errno,
+ $error,
+ 1,
+ STREAM_CLIENT_CONNECT | STREAM_CLIENT_PERSISTENT,
+ $context,
+ );
+ }
+}
+
+$server = stream_socket_server('tcp://127.0.0.1:0', $errno, $error);
+if (!$server) {
+ die("server failed: $error ($errno)\n");
+}
+
+stream_wrapper_register('late-context', LateContextWrapper::class);
+$trigger = fopen('late-context://tcp://' . stream_socket_get_name($server, false), 'r');
+
+?>
+--EXPECT--
+int(0)
diff -Nru php8.4-8.4.26/ext/standard/tests/streams/stream_get_line_oom_chunk_size.phpt php8.4-8.4.27/ext/standard/tests/streams/stream_get_line_oom_chunk_size.phpt
--- php8.4-8.4.26/ext/standard/tests/streams/stream_get_line_oom_chunk_size.phpt 1970-01-01 00:00:00.000000000 +0000
+++ php8.4-8.4.27/ext/standard/tests/streams/stream_get_line_oom_chunk_size.phpt 2026-10-19 14:38:59.000000000 +0000
@@ -0,0 +1,16 @@
+--TEST--
+stream_get_line() with a large chunk size doesn't reach hard limit
+--INI--
+memory_limit=8M
+--SKIPIF--
+
+--FILE--
+
+--EXPECTF--
+Fatal error: Allowed memory size of %d bytes exhausted %S(tried to allocate %d bytes) in %s on line %d
diff -Nru php8.4-8.4.26/ext/standard/tests/strings/chunk_split_variation3.phpt php8.4-8.4.27/ext/standard/tests/strings/chunk_split_variation3.phpt
--- php8.4-8.4.26/ext/standard/tests/strings/chunk_split_variation3.phpt 2026-09-22 15:00:02.000000000 +0000
+++ php8.4-8.4.27/ext/standard/tests/strings/chunk_split_variation3.phpt 2026-10-19 14:38:59.000000000 +0000
@@ -1,24 +1,18 @@
--TEST--
-Test chunk_split() function : usage variations - unexpected large number of chunks
+Test chunk_split() function : usage variations - OOM with chunk length larger than str
--SKIPIF--
+--INI--
+memory_limit=128M
--FILE--
--EXPECTF--
-*** Testing chunk_split() : unexpected large 'end' string argument variation 2 ***
-Body generation
-Using chunk_split()
-
-Fatal error: Allowed memory size of %d bytes exhausted%s(tried to allocate %d bytes) in %s on line %d
+Fatal error: Allowed memory size of %d bytes exhausted%s(tried to allocate %d bytes) in %s on line 5
diff -Nru php8.4-8.4.26/ext/standard/tests/strings/oom_explode.phpt php8.4-8.4.27/ext/standard/tests/strings/oom_explode.phpt
--- php8.4-8.4.26/ext/standard/tests/strings/oom_explode.phpt 1970-01-01 00:00:00.000000000 +0000
+++ php8.4-8.4.27/ext/standard/tests/strings/oom_explode.phpt 2026-10-19 14:38:59.000000000 +0000
@@ -0,0 +1,17 @@
+--TEST--
+explode() doesn't reach hard limit
+--INI--
+memory_limit=8M
+--SKIPIF--
+
+--FILE--
+
+--EXPECTF--
+Fatal error: Allowed memory size of %d bytes exhausted %S(tried to allocate %d bytes) in %s on line %d
diff -Nru php8.4-8.4.26/ext/standard/tests/strings/oom_implode.phpt php8.4-8.4.27/ext/standard/tests/strings/oom_implode.phpt
--- php8.4-8.4.26/ext/standard/tests/strings/oom_implode.phpt 1970-01-01 00:00:00.000000000 +0000
+++ php8.4-8.4.27/ext/standard/tests/strings/oom_implode.phpt 2026-10-19 14:38:59.000000000 +0000
@@ -0,0 +1,15 @@
+--TEST--
+implode() doesn't reach hard limit
+--INI--
+memory_limit=8M
+--SKIPIF--
+
+--FILE--
+
+--EXPECTF--
+Fatal error: Allowed memory size of %d bytes exhausted %S(tried to allocate %d bytes) in %s on line %d
diff -Nru php8.4-8.4.26/ext/standard/tests/strings/oom_levenshtein.phpt php8.4-8.4.27/ext/standard/tests/strings/oom_levenshtein.phpt
--- php8.4-8.4.26/ext/standard/tests/strings/oom_levenshtein.phpt 1970-01-01 00:00:00.000000000 +0000
+++ php8.4-8.4.27/ext/standard/tests/strings/oom_levenshtein.phpt 2026-10-19 14:38:59.000000000 +0000
@@ -0,0 +1,15 @@
+--TEST--
+levenshtein() doesn't reach hard limit
+--INI--
+memory_limit=8M
+--SKIPIF--
+
+--FILE--
+
+--EXPECTF--
+Fatal error: Allowed memory size of %d bytes exhausted %S(tried to allocate %d bytes) in %s on line %d
diff -Nru php8.4-8.4.26/ext/standard/tests/strings/oom_nl2br.phpt php8.4-8.4.27/ext/standard/tests/strings/oom_nl2br.phpt
--- php8.4-8.4.26/ext/standard/tests/strings/oom_nl2br.phpt 1970-01-01 00:00:00.000000000 +0000
+++ php8.4-8.4.27/ext/standard/tests/strings/oom_nl2br.phpt 2026-10-19 14:38:59.000000000 +0000
@@ -0,0 +1,15 @@
+--TEST--
+nl2br() doesn't reach hard limit
+--INI--
+memory_limit=8M
+--SKIPIF--
+
+--FILE--
+
+--EXPECTF--
+Fatal error: Allowed memory size of %d bytes exhausted %S(tried to allocate %d bytes) in %s on line %d
diff -Nru php8.4-8.4.26/ext/standard/tests/strings/oom_setcookie_value.phpt php8.4-8.4.27/ext/standard/tests/strings/oom_setcookie_value.phpt
--- php8.4-8.4.26/ext/standard/tests/strings/oom_setcookie_value.phpt 1970-01-01 00:00:00.000000000 +0000
+++ php8.4-8.4.27/ext/standard/tests/strings/oom_setcookie_value.phpt 2026-10-19 14:38:59.000000000 +0000
@@ -0,0 +1,15 @@
+--TEST--
+setcookie() doesn't reach hard limit
+--INI--
+memory_limit=8M
+--SKIPIF--
+
+--FILE--
+
+--EXPECTF--
+Fatal error: Allowed memory size of %d bytes exhausted %S(tried to allocate %d bytes) in %s on line %d
diff -Nru php8.4-8.4.26/ext/standard/tests/strings/oom_str_getcsv.phpt php8.4-8.4.27/ext/standard/tests/strings/oom_str_getcsv.phpt
--- php8.4-8.4.26/ext/standard/tests/strings/oom_str_getcsv.phpt 1970-01-01 00:00:00.000000000 +0000
+++ php8.4-8.4.27/ext/standard/tests/strings/oom_str_getcsv.phpt 2026-10-19 14:38:59.000000000 +0000
@@ -0,0 +1,17 @@
+--TEST--
+str_getcsv() doesn't reach hard limit
+--INI--
+memory_limit=8M
+--SKIPIF--
+
+--FILE--
+
+--EXPECTF--
+Deprecated: str_getcsv(): the $escape parameter must be provided as its default value will change in %s on line %d
+
+Fatal error: Allowed memory size of %d bytes exhausted %S(tried to allocate %d bytes) in %s on line %d
diff -Nru php8.4-8.4.26/ext/standard/tests/strings/oom_str_ireplace.phpt php8.4-8.4.27/ext/standard/tests/strings/oom_str_ireplace.phpt
--- php8.4-8.4.26/ext/standard/tests/strings/oom_str_ireplace.phpt 1970-01-01 00:00:00.000000000 +0000
+++ php8.4-8.4.27/ext/standard/tests/strings/oom_str_ireplace.phpt 2026-10-19 14:38:59.000000000 +0000
@@ -0,0 +1,15 @@
+--TEST--
+str_ireplace() doesn't reach hard limit
+--INI--
+memory_limit=8M
+--SKIPIF--
+
+--FILE--
+
+--EXPECTF--
+Fatal error: Allowed memory size of %d bytes exhausted %S(tried to allocate %d bytes) in %s on line %d
diff -Nru php8.4-8.4.26/ext/standard/tests/strings/oom_str_replace.phpt php8.4-8.4.27/ext/standard/tests/strings/oom_str_replace.phpt
--- php8.4-8.4.26/ext/standard/tests/strings/oom_str_replace.phpt 1970-01-01 00:00:00.000000000 +0000
+++ php8.4-8.4.27/ext/standard/tests/strings/oom_str_replace.phpt 2026-10-19 14:38:59.000000000 +0000
@@ -0,0 +1,15 @@
+--TEST--
+str_replace() doesn't reach hard limit
+--INI--
+memory_limit=8M
+--SKIPIF--
+
+--FILE--
+
+--EXPECTF--
+Fatal error: Allowed memory size of %d bytes exhausted %S(tried to allocate %d bytes) in %s on line %d
diff -Nru php8.4-8.4.26/ext/standard/tests/strings/oom_str_split.phpt php8.4-8.4.27/ext/standard/tests/strings/oom_str_split.phpt
--- php8.4-8.4.26/ext/standard/tests/strings/oom_str_split.phpt 1970-01-01 00:00:00.000000000 +0000
+++ php8.4-8.4.27/ext/standard/tests/strings/oom_str_split.phpt 2026-10-19 14:38:59.000000000 +0000
@@ -0,0 +1,17 @@
+--TEST--
+str_split() doesn't reach hard limit
+--INI--
+memory_limit=8M
+--SKIPIF--
+
+--FILE--
+
+--EXPECTF--
+Fatal error: Allowed memory size of %d bytes exhausted %S(tried to allocate %d bytes) in %s on line %d
diff -Nru php8.4-8.4.26/ext/standard/tests/strings/oom_str_word_count.phpt php8.4-8.4.27/ext/standard/tests/strings/oom_str_word_count.phpt
--- php8.4-8.4.26/ext/standard/tests/strings/oom_str_word_count.phpt 1970-01-01 00:00:00.000000000 +0000
+++ php8.4-8.4.27/ext/standard/tests/strings/oom_str_word_count.phpt 2026-10-19 14:38:59.000000000 +0000
@@ -0,0 +1,17 @@
+--TEST--
+str_word_count() doesn't reach hard limit
+--INI--
+memory_limit=8M
+--SKIPIF--
+
+--FILE--
+
+--EXPECTF--
+Fatal error: Allowed memory size of %d bytes exhausted %S(tried to allocate %d bytes) in %s on line %d
diff -Nru php8.4-8.4.26/ext/standard/tests/strings/oom_strtr.phpt php8.4-8.4.27/ext/standard/tests/strings/oom_strtr.phpt
--- php8.4-8.4.26/ext/standard/tests/strings/oom_strtr.phpt 1970-01-01 00:00:00.000000000 +0000
+++ php8.4-8.4.27/ext/standard/tests/strings/oom_strtr.phpt 2026-10-19 14:38:59.000000000 +0000
@@ -0,0 +1,15 @@
+--TEST--
+strtr() doesn't reach hard limit
+--INI--
+memory_limit=8M
+--SKIPIF--
+
+--FILE--
+ str_repeat('b', 16)]));
+?>
+--EXPECTF--
+Fatal error: Allowed memory size of %d bytes exhausted %S(tried to allocate %d bytes) in %s on line %d
diff -Nru php8.4-8.4.26/ext/standard/tests/strings/oom_substr_replace.phpt php8.4-8.4.27/ext/standard/tests/strings/oom_substr_replace.phpt
--- php8.4-8.4.26/ext/standard/tests/strings/oom_substr_replace.phpt 1970-01-01 00:00:00.000000000 +0000
+++ php8.4-8.4.27/ext/standard/tests/strings/oom_substr_replace.phpt 2026-10-19 14:38:59.000000000 +0000
@@ -0,0 +1,15 @@
+--TEST--
+substr_replace() doesn't reach hard limit
+--INI--
+memory_limit=8M
+--SKIPIF--
+
+--FILE--
+
+--EXPECTF--
+Fatal error: Allowed memory size of %d bytes exhausted %S(tried to allocate %d bytes) in %s on line %d
diff -Nru php8.4-8.4.26/ext/standard/tests/strings/oom_unpack.phpt php8.4-8.4.27/ext/standard/tests/strings/oom_unpack.phpt
--- php8.4-8.4.26/ext/standard/tests/strings/oom_unpack.phpt 1970-01-01 00:00:00.000000000 +0000
+++ php8.4-8.4.27/ext/standard/tests/strings/oom_unpack.phpt 2026-10-19 14:38:59.000000000 +0000
@@ -0,0 +1,17 @@
+--TEST--
+unpack() doesn't reach hard limit
+--INI--
+memory_limit=8M
+--SKIPIF--
+
+--FILE--
+
+--EXPECTF--
+Fatal error: Allowed memory size of %d bytes exhausted %S(tried to allocate %d bytes) in %s on line %d
diff -Nru php8.4-8.4.26/ext/standard/tests/strings/sha1_file_stream_error.phpt php8.4-8.4.27/ext/standard/tests/strings/sha1_file_stream_error.phpt
--- php8.4-8.4.26/ext/standard/tests/strings/sha1_file_stream_error.phpt 1970-01-01 00:00:00.000000000 +0000
+++ php8.4-8.4.27/ext/standard/tests/strings/sha1_file_stream_error.phpt 2026-10-19 14:38:59.000000000 +0000
@@ -0,0 +1,77 @@
+--TEST--
+sha1_file() returns false when a stream read fails
+--FILE--
+mode = substr($path, strlen('test://'));
+
+ return true;
+ }
+
+ public function stream_read(int $count): string|false
+ {
+ $position = $this->position++;
+ if ($this->mode === 'error') {
+ return false;
+ }
+ if ($this->mode === 'empty' || $this->mode === 'stalled') {
+ return '';
+ }
+ if ($this->mode === 'short') {
+ return substr('prefix', $position * 2, 2);
+ }
+ if ($position === 0) {
+ return 'prefix';
+ }
+
+ return $this->mode === 'prefix-error' ? false : '';
+ }
+
+ public function stream_eof(): bool
+ {
+ return $this->mode === 'empty'
+ || ($this->mode === 'eof' && $this->position > 1)
+ || ($this->mode === 'short' && $this->position >= 3);
+ }
+}
+
+stream_wrapper_register('test', TestStream::class);
+
+foreach (['error', 'prefix-error', 'stalled', 'prefix-stalled', 'empty', 'eof', 'short'] as $mode) {
+ echo "$mode: ";
+ var_dump(sha1_file("test://$mode"));
+ echo "$mode (raw): ";
+ $result = sha1_file("test://$mode", true);
+ var_dump(is_string($result) ? bin2hex($result) : $result);
+}
+
+echo "directory: ";
+var_dump(@sha1_file(__DIR__));
+echo "directory (raw): ";
+$result = @sha1_file(__DIR__, true);
+var_dump(is_string($result) ? bin2hex($result) : $result);
+?>
+--EXPECT--
+error: bool(false)
+error (raw): bool(false)
+prefix-error: bool(false)
+prefix-error (raw): bool(false)
+stalled: bool(false)
+stalled (raw): bool(false)
+prefix-stalled: bool(false)
+prefix-stalled (raw): bool(false)
+empty: string(40) "da39a3ee5e6b4b0d3255bfef95601890afd80709"
+empty (raw): string(40) "da39a3ee5e6b4b0d3255bfef95601890afd80709"
+eof: string(40) "b4ebfe34d0fa97f0dd2bb1234fad8f59805f4e8d"
+eof (raw): string(40) "b4ebfe34d0fa97f0dd2bb1234fad8f59805f4e8d"
+short: string(40) "b4ebfe34d0fa97f0dd2bb1234fad8f59805f4e8d"
+short (raw): string(40) "b4ebfe34d0fa97f0dd2bb1234fad8f59805f4e8d"
+directory: bool(false)
+directory (raw): bool(false)
diff -Nru php8.4-8.4.26/ext/standard/tests/strings/str_pad_variation1.phpt php8.4-8.4.27/ext/standard/tests/strings/str_pad_variation1.phpt
--- php8.4-8.4.26/ext/standard/tests/strings/str_pad_variation1.phpt 2026-09-22 15:00:02.000000000 +0000
+++ php8.4-8.4.27/ext/standard/tests/strings/str_pad_variation1.phpt 2026-10-19 14:38:59.000000000 +0000
@@ -33,4 +33,4 @@
*** Testing str_pad() function: with large value for for 'pad_length' argument ***
str_pad(): Argument #2 ($length) must be of type int, float given
-Fatal error: Allowed memory size of %d bytes exhausted%s(tried to allocate %d bytes) in %s on line %d
+Fatal error: Allowed memory size of 134217728 bytes exhausted%s(tried to allocate %d bytes) in %s on line %d
diff -Nru php8.4-8.4.26/ext/standard/tests/strings/wordwrap_memory_limit_002.phpt php8.4-8.4.27/ext/standard/tests/strings/wordwrap_memory_limit_002.phpt
--- php8.4-8.4.26/ext/standard/tests/strings/wordwrap_memory_limit_002.phpt 1970-01-01 00:00:00.000000000 +0000
+++ php8.4-8.4.27/ext/standard/tests/strings/wordwrap_memory_limit_002.phpt 2026-10-19 14:38:59.000000000 +0000
@@ -0,0 +1,19 @@
+--TEST--
+wordwrap() OOM - single character break
+--SKIPIF--
+
+--INI--
+memory_limit=10M
+--FILE--
+
+--EXPECTF--
+Fatal error: Allowed memory size of 10485760 bytes exhausted%s(tried to allocate %d bytes) in %s on line 4
diff -Nru php8.4-8.4.26/ext/standard/tests/strings/wordwrap_memory_limit_003.phpt php8.4-8.4.27/ext/standard/tests/strings/wordwrap_memory_limit_003.phpt
--- php8.4-8.4.26/ext/standard/tests/strings/wordwrap_memory_limit_003.phpt 1970-01-01 00:00:00.000000000 +0000
+++ php8.4-8.4.27/ext/standard/tests/strings/wordwrap_memory_limit_003.phpt 2026-10-19 14:38:59.000000000 +0000
@@ -0,0 +1,19 @@
+--TEST--
+wordwrap() OOM - multi character break
+--SKIPIF--
+
+--INI--
+memory_limit=10M
+--FILE--
+
+--EXPECTF--
+Fatal error: Allowed memory size of 10485760 bytes exhausted%s(tried to allocate %d bytes) in %s on line 4
diff -Nru php8.4-8.4.26/ext/standard/tests/strings/wordwrap_memory_limit_004.phpt php8.4-8.4.27/ext/standard/tests/strings/wordwrap_memory_limit_004.phpt
--- php8.4-8.4.26/ext/standard/tests/strings/wordwrap_memory_limit_004.phpt 1970-01-01 00:00:00.000000000 +0000
+++ php8.4-8.4.27/ext/standard/tests/strings/wordwrap_memory_limit_004.phpt 2026-10-19 14:38:59.000000000 +0000
@@ -0,0 +1,21 @@
+--TEST--
+wordwrap() OOM - extend
+--SKIPIF--
+
+--INI--
+memory_limit=8M
+--FILE--
+
+--EXPECTF--
+Fatal error: Allowed memory size of 8388608 bytes exhausted%s(tried to allocate %d bytes) in %s on line 6
diff -Nru php8.4-8.4.26/ext/standard/tests/strings/wordwrap_trailing_break.phpt php8.4-8.4.27/ext/standard/tests/strings/wordwrap_trailing_break.phpt
--- php8.4-8.4.26/ext/standard/tests/strings/wordwrap_trailing_break.phpt 1970-01-01 00:00:00.000000000 +0000
+++ php8.4-8.4.27/ext/standard/tests/strings/wordwrap_trailing_break.phpt 2026-10-19 14:38:59.000000000 +0000
@@ -0,0 +1,28 @@
+--TEST--
+wordwrap() recognizes an existing break at the end of the string
+--FILE--
+
+--EXPECT--
+"abc\n"
+"ab cd\n"
+"abc\nd\n"
+"abc\nabc\n"
+"abc-"
+"abc\r\n"
+"\r\n"
+"ab cd\r\n"
diff -Nru php8.4-8.4.26/ext/standard/url_scanner_ex.c php8.4-8.4.27/ext/standard/url_scanner_ex.c
--- php8.4-8.4.26/ext/standard/url_scanner_ex.c 2026-09-22 15:00:02.000000000 +0000
+++ php8.4-8.4.27/ext/standard/url_scanner_ex.c 2026-10-19 14:38:59.000000000 +0000
@@ -1028,6 +1028,13 @@
smart_str_free(&ctx->attr_val);
}
+void php_url_scanner_early_rinit(void)
+{
+ /* See php_basic_early_rinit() */
+ php_url_scanner_ex_activate(1);
+ php_url_scanner_ex_activate(0);
+}
+
static inline void php_url_scanner_session_handler_impl(char *output, size_t output_len, char **handled_output, size_t *handled_output_len, int mode, bool is_session)
{
size_t len;
diff -Nru php8.4-8.4.26/ext/standard/url_scanner_ex.h php8.4-8.4.27/ext/standard/url_scanner_ex.h
--- php8.4-8.4.26/ext/standard/url_scanner_ex.h 2026-09-22 15:00:02.000000000 +0000
+++ php8.4-8.4.27/ext/standard/url_scanner_ex.h 2026-10-19 14:38:59.000000000 +0000
@@ -22,6 +22,7 @@
PHP_RINIT_FUNCTION(url_scanner_ex);
PHP_RSHUTDOWN_FUNCTION(url_scanner_ex);
+void php_url_scanner_early_rinit(void);
PHPAPI char *php_url_scanner_adapt_single_url(const char *url, size_t urllen, const char *name, const char *value, size_t *newlen, bool encode);
PHPAPI zend_result php_url_scanner_add_session_var(const char *name, size_t name_len, const char *value, size_t value_len, bool encode);
diff -Nru php8.4-8.4.26/ext/standard/url_scanner_ex.re php8.4-8.4.27/ext/standard/url_scanner_ex.re
--- php8.4-8.4.26/ext/standard/url_scanner_ex.re 2026-09-22 15:00:02.000000000 +0000
+++ php8.4-8.4.27/ext/standard/url_scanner_ex.re 2026-10-19 14:38:59.000000000 +0000
@@ -683,6 +683,13 @@
smart_str_free(&ctx->attr_val);
}
+void php_url_scanner_early_rinit(void)
+{
+ /* See php_basic_early_rinit() */
+ php_url_scanner_ex_activate(1);
+ php_url_scanner_ex_activate(0);
+}
+
static inline void php_url_scanner_session_handler_impl(char *output, size_t output_len, char **handled_output, size_t *handled_output_len, int mode, bool is_session)
{
size_t len;
diff -Nru php8.4-8.4.26/ext/standard/var.c php8.4-8.4.27/ext/standard/var.c
--- php8.4-8.4.26/ext/standard/var.c 2026-09-22 15:00:02.000000000 +0000
+++ php8.4-8.4.27/ext/standard/var.c 2026-10-19 14:38:59.000000000 +0000
@@ -35,6 +35,9 @@
struct php_serialize_data {
HashTable ht;
uint32_t n;
+ /* Write back the C: and E: payloads kept by php_var_unserialize() in
+ * incomplete_classes_only mode, see php_var_serialize_incomplete_raw() */
+ bool incomplete_classes_only;
};
#define COMMON (is_ref ? "&" : "")
@@ -848,6 +851,56 @@
}
/* }}} */
+static bool php_var_serialize_incomplete_raw(smart_str *buf, zval *struc)
+{
+ HashTable *props = Z_OBJ_P(struc)->properties;
+ zend_string *class_name;
+ zval *member;
+
+ if (!props) {
+ return false;
+ }
+
+ member = zend_hash_str_find(props, MAGIC_MEMBER_SERIALIZED, sizeof(MAGIC_MEMBER_SERIALIZED) - 1);
+ if (member && Z_TYPE_P(member) == IS_STRING) {
+ class_name = php_lookup_class_name(Z_OBJ_P(struc));
+ if (!class_name) {
+ return false;
+ }
+ smart_str_appendl(buf, "C:", 2);
+ smart_str_append_unsigned(buf, ZSTR_LEN(class_name));
+ smart_str_appendl(buf, ":\"", 2);
+ smart_str_append(buf, class_name);
+ smart_str_appendl(buf, "\":", 2);
+ smart_str_append_unsigned(buf, Z_STRLEN_P(member));
+ smart_str_appendl(buf, ":{", 2);
+ smart_str_append(buf, Z_STR_P(member));
+ smart_str_appendc(buf, '}');
+ zend_string_release_ex(class_name, 0);
+ return true;
+ }
+
+ member = zend_hash_str_find(props, MAGIC_MEMBER_ENUM_CASE, sizeof(MAGIC_MEMBER_ENUM_CASE) - 1);
+ if (member && Z_TYPE_P(member) == IS_STRING) {
+ class_name = php_lookup_class_name(Z_OBJ_P(struc));
+ if (!class_name) {
+ return false;
+ }
+ smart_str_appendl(buf, "E:", 2);
+ smart_str_append_unsigned(buf, ZSTR_LEN(class_name) + strlen(":") + Z_STRLEN_P(member));
+ smart_str_appendl(buf, ":\"", 2);
+ smart_str_append(buf, class_name);
+ smart_str_appendc(buf, ':');
+ smart_str_append(buf, Z_STR_P(member));
+ smart_str_appendl(buf, "\";", 2);
+ zend_string_release_ex(class_name, 0);
+ return true;
+ }
+
+ /* Other incomplete classes are handled using the normal path */
+ return false;
+}
+
static HashTable* php_var_serialize_call_sleep(zend_object *obj, zend_function *fn) /* {{{ */
{
zval retval;
@@ -1134,6 +1187,10 @@
bool incomplete_class;
uint32_t count;
+ if (ce == PHP_IC_ENTRY && var_hash->incomplete_classes_only && php_var_serialize_incomplete_raw(buf, struc)) {
+ return;
+ }
+
if (ce->ce_flags & ZEND_ACC_NOT_SERIALIZABLE) {
zend_throw_exception_ex(NULL, 0, "Serialization of '%s' is not allowed",
ZSTR_VAL(ce->name));
@@ -1350,6 +1407,7 @@
d = emalloc(sizeof(struct php_serialize_data));
zend_hash_init(&d->ht, 16, NULL, ZVAL_PTR_DTOR, 0);
d->n = 0;
+ d->incomplete_classes_only = false;
if (!BG(serialize_lock)) {
BG(serialize).data = d;
BG(serialize).level = 1;
@@ -1361,6 +1419,10 @@
return d;
}
+PHPAPI void php_var_serialize_set_incomplete_classes_only(php_serialize_data_t d, bool incomplete_classes_only) {
+ d->incomplete_classes_only = incomplete_classes_only;
+}
+
PHPAPI void php_var_serialize_destroy(php_serialize_data_t d) {
/* fprintf(stderr, "SERIALIZE_DESTROY == lock: %u, level: %u\n", BG(serialize_lock), BG(serialize).level); */
if (BG(serialize_lock) || BG(serialize).level == 1) {
diff -Nru php8.4-8.4.26/ext/standard/var_unserializer.c php8.4-8.4.27/ext/standard/var_unserializer.c
--- php8.4-8.4.26/ext/standard/var_unserializer.c 2026-09-22 15:00:02.000000000 +0000
+++ php8.4-8.4.27/ext/standard/var_unserializer.c 2026-10-19 14:38:59.000000000 +0000
@@ -55,6 +55,11 @@
HashTable *ref_props;
zend_long cur_depth;
zend_long max_depth;
+ /* Represent every object as __PHP_Incomplete_Class, without resolving its
+ * class: no autoloading, no unserialize_callback_func, no __wakeup() or
+ * __unserialize(). O:, C: and E: values all serialize back to the same
+ * bytes. */
+ bool incomplete_classes_only;
var_entries entries;
};
@@ -69,6 +74,7 @@
d->ref_props = NULL;
d->cur_depth = 0;
d->max_depth = BG(unserialize_max_depth);
+ d->incomplete_classes_only = false;
d->entries.used_slots = 0;
d->entries.next = NULL;
if (!BG(serialize_lock)) {
@@ -100,6 +106,10 @@
d->allowed_classes = classes;
}
+PHPAPI void php_var_unserialize_set_incomplete_classes_only(php_unserialize_data_t d, bool incomplete_classes_only) {
+ d->incomplete_classes_only = incomplete_classes_only;
+}
+
PHPAPI void php_var_unserialize_set_max_depth(php_unserialize_data_t d, zend_long max_depth) {
d->max_depth = max_depth;
}
@@ -276,7 +286,7 @@
fci_cache.called_scope = fci.object->ce;
BG(serialize_lock)++;
- if (zend_call_function(&fci, &fci_cache) == FAILURE || Z_ISUNDEF(retval)) {
+ if (zend_call_function(&fci, &fci_cache) == FAILURE || Z_ISUNDEF(retval) || ZEND_HAS_OOM()) {
delayed_call_failed = 1;
GC_ADD_FLAGS(Z_OBJ_P(zv), IS_OBJ_DESTRUCTOR_CALLED);
}
@@ -295,7 +305,7 @@
BG(serialize_lock)++;
zend_call_known_instance_method_with_1_params(
Z_OBJCE_P(zv)->__unserialize, Z_OBJ_P(zv), NULL, ¶m);
- if (EG(exception)) {
+ if (EG(exception) || ZEND_HAS_OOM()) {
delayed_call_failed = 1;
GC_ADD_FLAGS(Z_OBJ_P(zv), IS_OBJ_DESTRUCTOR_CALLED);
}
@@ -324,7 +334,10 @@
static zend_string *unserialize_str(const unsigned char **p, size_t len, size_t maxlen)
{
size_t i, j;
- zend_string *str = zend_string_safe_alloc(1, len, 0, 0);
+ zend_string *str = zend_string_falloc(len, 0, /* fallible */ true);
+ if (UNEXPECTED(!str)) {
+ return NULL;
+ }
unsigned char *end = *(unsigned char **)p+maxlen;
for (i = 0; i < len; i++) {
@@ -511,6 +524,10 @@
(*p)--;
goto failure;
}
+
+ if (ZEND_HAS_OOM()) {
+ goto failure;
+ }
}
if (var_hash) {
@@ -566,6 +583,17 @@
}
+/* The members that incomplete_classes_only mode writes itself: the class name of
+ * every object, and the payload kept for C: and E: entries. Data that already
+ * carries one of them cannot be told apart from that bookkeeping, so it is
+ * rejected rather than silently overwritten. */
+static zend_always_inline bool is_incomplete_class_reserved_member(const zend_string *name)
+{
+ return zend_string_equals_literal(name, MAGIC_MEMBER)
+ || zend_string_equals_literal(name, MAGIC_MEMBER_SERIALIZED)
+ || zend_string_equals_literal(name, MAGIC_MEMBER_ENUM_CASE);
+}
+
static zend_always_inline int process_nested_object_data(UNSERIALIZE_PARAMETER, HashTable *ht, zend_long elements, zend_object *obj)
{
if (var_hash) {
@@ -591,6 +619,13 @@
goto failure;
}
+ if (UNEXPECTED(var_hash && (*var_hash)->incomplete_classes_only)
+ && Z_TYPE(key) == IS_STRING
+ && UNEXPECTED(is_incomplete_class_reserved_member(Z_STR(key)))) {
+ zval_ptr_dtor(&key);
+ goto failure;
+ }
+
if (EXPECTED(Z_TYPE(key) == IS_STRING)) {
string_key:
data = zend_hash_find(ht, Z_STR(key));
@@ -706,6 +741,10 @@
(*p)--;
goto failure;
}
+
+ if (ZEND_HAS_OOM()) {
+ goto failure;
+ }
}
if (var_hash) {
@@ -730,7 +769,7 @@
return 1;
}
-static inline int object_custom(UNSERIALIZE_PARAMETER, zend_class_entry *ce)
+static inline int object_custom(UNSERIALIZE_PARAMETER, zend_class_entry *ce, bool keep_payload)
{
zend_long datalen;
@@ -764,13 +803,28 @@
return 0;
}
- if (ce->unserialize == NULL) {
+ if (keep_payload) {
+ /* The class was not resolved (see php_var_unserialize_set_incomplete_classes_only()):
+ * keep the payload verbatim, so that the object serializes back to the same bytes. */
+ zval payload;
+
+ ZEND_ASSERT(ce == PHP_IC_ENTRY);
+ if (UNEXPECTED(!ZVAL_FSTRINGL(&payload, (const char *) *p, datalen))) {
+ return 0;
+ }
+ object_init_ex(rval, ce);
+ zend_hash_str_update(Z_OBJPROP_P(rval), MAGIC_MEMBER_SERIALIZED, sizeof(MAGIC_MEMBER_SERIALIZED) - 1, &payload);
+ } else if (ce->unserialize == NULL) {
zend_error(E_WARNING, "Class %s has no unserializer", ZSTR_VAL(ce->name));
object_init_ex(rval, ce);
} else if (ce->unserialize(rval, ce, (const unsigned char*)*p, datalen, (zend_unserialize_data *)var_hash) != SUCCESS) {
return 0;
}
+ if (ZEND_HAS_OOM()) {
+ return 0;
+ }
+
(*p) += datalen + 1; /* +1 for '}' */
return 1;
}
@@ -790,9 +844,10 @@
return 0;
}
- array_init_size(&ary, elements);
/* Avoid reallocation due to packed -> mixed conversion. */
- zend_hash_real_init_mixed(Z_ARRVAL(ary));
+ if (UNEXPECTED(!array_finit_size_mixed(&ary, elements))) {
+ return 0;
+ }
if (!process_nested_array_data(UNSERIALIZE_PASSTHRU, Z_ARRVAL(ary), elements)) {
ZVAL_DEREF(rval);
GC_ADD_FLAGS(Z_OBJ_P(rval), IS_OBJ_DESTRUCTOR_CALLED);
@@ -820,7 +875,9 @@
return 0;
}
- zend_hash_extend(ht, zend_hash_num_elements(ht) + elements, HT_IS_PACKED(ht));
+ if (UNEXPECTED(zend_hash_fextend(ht, zend_hash_num_elements(ht) + elements, HT_IS_PACKED(ht)) == FAILURE)) {
+ return 0;
+ }
if (!process_nested_object_data(UNSERIALIZE_PASSTHRU, ht, elements, Z_OBJ_P(rval))) {
if (has_wakeup) {
ZVAL_DEREF(rval);
@@ -1427,11 +1484,25 @@
return 0;
}
- class_name = zend_string_init_interned(str, len, 0);
+ class_name = zend_string_finit_existing_interned(str, len, /* permanent */ false, /* fallible */ true);
+ if (UNEXPECTED(!class_name)) {
+ return 0;
+ }
do {
zend_string *lc_name;
+ if ((*var_hash)->incomplete_classes_only) {
+ /* Do not look the class up at all, so that no user code can run. */
+ if (!zend_is_valid_class_name(class_name)) {
+ zend_string_release_ex(class_name, 0);
+ return 0;
+ }
+ incomplete_class = 1;
+ ce = PHP_IC_ENTRY;
+ break;
+ }
+
if (!(*var_hash)->allowed_classes && ZSTR_HAS_CE_CACHE(class_name)) {
ce = ZSTR_GET_CE_CACHE(class_name);
if (ce) {
@@ -1439,7 +1510,11 @@
}
}
- lc_name = zend_string_tolower(class_name);
+ lc_name = zend_string_ftolower(class_name);
+ if (UNEXPECTED(!lc_name)) {
+ zend_string_release_ex(class_name, 0);
+ return 0;
+ }
if(!unserialize_allowed_class(lc_name, var_hash)) {
zend_string_release_ex(lc_name, 0);
if (!zend_is_valid_class_name(class_name)) {
@@ -1533,7 +1608,7 @@
if (custom_object) {
int ret;
- ret = object_custom(UNSERIALIZE_PASSTHRU, ce);
+ ret = object_custom(UNSERIALIZE_PASSTHRU, ce, (*var_hash)->incomplete_classes_only);
if (ret && incomplete_class) {
php_store_class_name(rval, class_name);
@@ -1585,6 +1660,11 @@
return 0;
}
+ if (ZEND_HAS_OOM()) {
+ zend_string_release_ex(class_name, 0);
+ return 0;
+ }
+
if (incomplete_class) {
php_store_class_name(rval, class_name);
}
@@ -1630,6 +1710,25 @@
goto fail;
}
+ if ((*var_hash)->incomplete_classes_only) {
+ /* Do not load the enum: keep the case name, so that the value serializes
+ * back to the same bytes. */
+ zval case_zv;
+
+ YYCURSOR += 2;
+ *p = YYCURSOR;
+
+ object_init_ex(rval, PHP_IC_ENTRY);
+ if (ZEND_HAS_OOM()) {
+ goto fail;
+ }
+ php_store_class_name(rval, enum_name);
+ ZVAL_STR(&case_zv, case_name);
+ zend_hash_str_update(Z_OBJPROP_P(rval), MAGIC_MEMBER_ENUM_CASE, sizeof(MAGIC_MEMBER_ENUM_CASE) - 1, &case_zv);
+ zend_string_release_ex(enum_name, 0);
+ return 1;
+ }
+
zend_class_entry *ce = zend_lookup_class(enum_name);
if (!ce) {
php_error_docref(NULL, E_WARNING, "Class '%s' not found", ZSTR_VAL(enum_name));
@@ -1724,10 +1823,11 @@
}
if (elements) {
- array_init_size(rval, elements);
/* we can't convert from packed to hash during unserialization, because
reference to some zvals might be kept in var_hash (to support references) */
- zend_hash_real_init_mixed(Z_ARRVAL_P(rval));
+ if (UNEXPECTED(!array_finit_size_mixed(rval, elements))) {
+ return 0;
+ }
} else {
ZVAL_EMPTY_ARRAY(rval);
return finish_nested_data(UNSERIALIZE_PASSTHRU);
@@ -1791,12 +1891,21 @@
YYCURSOR += 2;
*p = YYCURSOR;
+ zend_string *zstr;
+
if (!var_hash) {
/* Array or object key unserialization */
- ZVAL_STR(rval, zend_string_init_existing_interned(str, len, 0));
+ zstr = zend_string_finit_existing_interned(str, len, /* permanent */ false, /* fallible */ true);
} else {
- ZVAL_STRINGL_FAST(rval, str, len);
+ zstr = zend_string_finit_fast(str, len, /* fallible */ true);
}
+
+ if (UNEXPECTED(!zstr)) {
+ return 0;
+ }
+
+ ZVAL_STR(rval, zstr);
+
return 1;
}
yy67:
diff -Nru php8.4-8.4.26/ext/standard/var_unserializer.re php8.4-8.4.27/ext/standard/var_unserializer.re
--- php8.4-8.4.26/ext/standard/var_unserializer.re 2026-09-22 15:00:02.000000000 +0000
+++ php8.4-8.4.27/ext/standard/var_unserializer.re 2026-10-19 14:38:59.000000000 +0000
@@ -54,6 +54,11 @@
HashTable *ref_props;
zend_long cur_depth;
zend_long max_depth;
+ /* Represent every object as __PHP_Incomplete_Class, without resolving its
+ * class: no autoloading, no unserialize_callback_func, no __wakeup() or
+ * __unserialize(). O:, C: and E: values all serialize back to the same
+ * bytes. */
+ bool incomplete_classes_only;
var_entries entries;
};
@@ -68,6 +73,7 @@
d->ref_props = NULL;
d->cur_depth = 0;
d->max_depth = BG(unserialize_max_depth);
+ d->incomplete_classes_only = false;
d->entries.used_slots = 0;
d->entries.next = NULL;
if (!BG(serialize_lock)) {
@@ -99,6 +105,10 @@
d->allowed_classes = classes;
}
+PHPAPI void php_var_unserialize_set_incomplete_classes_only(php_unserialize_data_t d, bool incomplete_classes_only) {
+ d->incomplete_classes_only = incomplete_classes_only;
+}
+
PHPAPI void php_var_unserialize_set_max_depth(php_unserialize_data_t d, zend_long max_depth) {
d->max_depth = max_depth;
}
@@ -275,7 +285,7 @@
fci_cache.called_scope = fci.object->ce;
BG(serialize_lock)++;
- if (zend_call_function(&fci, &fci_cache) == FAILURE || Z_ISUNDEF(retval)) {
+ if (zend_call_function(&fci, &fci_cache) == FAILURE || Z_ISUNDEF(retval) || ZEND_HAS_OOM()) {
delayed_call_failed = 1;
GC_ADD_FLAGS(Z_OBJ_P(zv), IS_OBJ_DESTRUCTOR_CALLED);
}
@@ -294,7 +304,7 @@
BG(serialize_lock)++;
zend_call_known_instance_method_with_1_params(
Z_OBJCE_P(zv)->__unserialize, Z_OBJ_P(zv), NULL, ¶m);
- if (EG(exception)) {
+ if (EG(exception) || ZEND_HAS_OOM()) {
delayed_call_failed = 1;
GC_ADD_FLAGS(Z_OBJ_P(zv), IS_OBJ_DESTRUCTOR_CALLED);
}
@@ -323,7 +333,10 @@
static zend_string *unserialize_str(const unsigned char **p, size_t len, size_t maxlen)
{
size_t i, j;
- zend_string *str = zend_string_safe_alloc(1, len, 0, 0);
+ zend_string *str = zend_string_falloc(len, 0, /* fallible */ true);
+ if (UNEXPECTED(!str)) {
+ return NULL;
+ }
unsigned char *end = *(unsigned char **)p+maxlen;
for (i = 0; i < len; i++) {
@@ -517,6 +530,10 @@
(*p)--;
goto failure;
}
+
+ if (ZEND_HAS_OOM()) {
+ goto failure;
+ }
}
if (var_hash) {
@@ -572,6 +589,17 @@
}
+/* The members that incomplete_classes_only mode writes itself: the class name of
+ * every object, and the payload kept for C: and E: entries. Data that already
+ * carries one of them cannot be told apart from that bookkeeping, so it is
+ * rejected rather than silently overwritten. */
+static zend_always_inline bool is_incomplete_class_reserved_member(const zend_string *name)
+{
+ return zend_string_equals_literal(name, MAGIC_MEMBER)
+ || zend_string_equals_literal(name, MAGIC_MEMBER_SERIALIZED)
+ || zend_string_equals_literal(name, MAGIC_MEMBER_ENUM_CASE);
+}
+
static zend_always_inline int process_nested_object_data(UNSERIALIZE_PARAMETER, HashTable *ht, zend_long elements, zend_object *obj)
{
if (var_hash) {
@@ -597,6 +625,13 @@
goto failure;
}
+ if (UNEXPECTED(var_hash && (*var_hash)->incomplete_classes_only)
+ && Z_TYPE(key) == IS_STRING
+ && UNEXPECTED(is_incomplete_class_reserved_member(Z_STR(key)))) {
+ zval_ptr_dtor(&key);
+ goto failure;
+ }
+
if (EXPECTED(Z_TYPE(key) == IS_STRING)) {
string_key:
data = zend_hash_find(ht, Z_STR(key));
@@ -712,6 +747,10 @@
(*p)--;
goto failure;
}
+
+ if (ZEND_HAS_OOM()) {
+ goto failure;
+ }
}
if (var_hash) {
@@ -736,7 +775,7 @@
return 1;
}
-static inline int object_custom(UNSERIALIZE_PARAMETER, zend_class_entry *ce)
+static inline int object_custom(UNSERIALIZE_PARAMETER, zend_class_entry *ce, bool keep_payload)
{
zend_long datalen;
@@ -770,13 +809,28 @@
return 0;
}
- if (ce->unserialize == NULL) {
+ if (keep_payload) {
+ /* The class was not resolved (see php_var_unserialize_set_incomplete_classes_only()):
+ * keep the payload verbatim, so that the object serializes back to the same bytes. */
+ zval payload;
+
+ ZEND_ASSERT(ce == PHP_IC_ENTRY);
+ if (UNEXPECTED(!ZVAL_FSTRINGL(&payload, (const char *) *p, datalen))) {
+ return 0;
+ }
+ object_init_ex(rval, ce);
+ zend_hash_str_update(Z_OBJPROP_P(rval), MAGIC_MEMBER_SERIALIZED, sizeof(MAGIC_MEMBER_SERIALIZED) - 1, &payload);
+ } else if (ce->unserialize == NULL) {
zend_error(E_WARNING, "Class %s has no unserializer", ZSTR_VAL(ce->name));
object_init_ex(rval, ce);
} else if (ce->unserialize(rval, ce, (const unsigned char*)*p, datalen, (zend_unserialize_data *)var_hash) != SUCCESS) {
return 0;
}
+ if (ZEND_HAS_OOM()) {
+ return 0;
+ }
+
(*p) += datalen + 1; /* +1 for '}' */
return 1;
}
@@ -796,9 +850,10 @@
return 0;
}
- array_init_size(&ary, elements);
/* Avoid reallocation due to packed -> mixed conversion. */
- zend_hash_real_init_mixed(Z_ARRVAL(ary));
+ if (UNEXPECTED(!array_finit_size_mixed(&ary, elements))) {
+ return 0;
+ }
if (!process_nested_array_data(UNSERIALIZE_PASSTHRU, Z_ARRVAL(ary), elements)) {
ZVAL_DEREF(rval);
GC_ADD_FLAGS(Z_OBJ_P(rval), IS_OBJ_DESTRUCTOR_CALLED);
@@ -826,7 +881,9 @@
return 0;
}
- zend_hash_extend(ht, zend_hash_num_elements(ht) + elements, HT_IS_PACKED(ht));
+ if (UNEXPECTED(zend_hash_fextend(ht, zend_hash_num_elements(ht) + elements, HT_IS_PACKED(ht)) == FAILURE)) {
+ return 0;
+ }
if (!process_nested_object_data(UNSERIALIZE_PASSTHRU, ht, elements, Z_OBJ_P(rval))) {
if (has_wakeup) {
ZVAL_DEREF(rval);
@@ -1049,12 +1106,21 @@
YYCURSOR += 2;
*p = YYCURSOR;
+ zend_string *zstr;
+
if (!var_hash) {
/* Array or object key unserialization */
- ZVAL_STR(rval, zend_string_init_existing_interned(str, len, 0));
+ zstr = zend_string_finit_existing_interned(str, len, /* permanent */ false, /* fallible */ true);
} else {
- ZVAL_STRINGL_FAST(rval, str, len);
+ zstr = zend_string_finit_fast(str, len, /* fallible */ true);
+ }
+
+ if (UNEXPECTED(!zstr)) {
+ return 0;
}
+
+ ZVAL_STR(rval, zstr);
+
return 1;
}
@@ -1106,10 +1172,11 @@
}
if (elements) {
- array_init_size(rval, elements);
/* we can't convert from packed to hash during unserialization, because
reference to some zvals might be kept in var_hash (to support references) */
- zend_hash_real_init_mixed(Z_ARRVAL_P(rval));
+ if (UNEXPECTED(!array_finit_size_mixed(rval, elements))) {
+ return 0;
+ }
} else {
ZVAL_EMPTY_ARRAY(rval);
return finish_nested_data(UNSERIALIZE_PASSTHRU);
@@ -1182,11 +1249,25 @@
return 0;
}
- class_name = zend_string_init_interned(str, len, 0);
+ class_name = zend_string_finit_existing_interned(str, len, /* permanent */ false, /* fallible */ true);
+ if (UNEXPECTED(!class_name)) {
+ return 0;
+ }
do {
zend_string *lc_name;
+ if ((*var_hash)->incomplete_classes_only) {
+ /* Do not look the class up at all, so that no user code can run. */
+ if (!zend_is_valid_class_name(class_name)) {
+ zend_string_release_ex(class_name, 0);
+ return 0;
+ }
+ incomplete_class = 1;
+ ce = PHP_IC_ENTRY;
+ break;
+ }
+
if (!(*var_hash)->allowed_classes && ZSTR_HAS_CE_CACHE(class_name)) {
ce = ZSTR_GET_CE_CACHE(class_name);
if (ce) {
@@ -1194,7 +1275,11 @@
}
}
- lc_name = zend_string_tolower(class_name);
+ lc_name = zend_string_ftolower(class_name);
+ if (UNEXPECTED(!lc_name)) {
+ zend_string_release_ex(class_name, 0);
+ return 0;
+ }
if(!unserialize_allowed_class(lc_name, var_hash)) {
zend_string_release_ex(lc_name, 0);
if (!zend_is_valid_class_name(class_name)) {
@@ -1288,7 +1373,7 @@
if (custom_object) {
int ret;
- ret = object_custom(UNSERIALIZE_PASSTHRU, ce);
+ ret = object_custom(UNSERIALIZE_PASSTHRU, ce, (*var_hash)->incomplete_classes_only);
if (ret && incomplete_class) {
php_store_class_name(rval, class_name);
@@ -1340,6 +1425,11 @@
return 0;
}
+ if (ZEND_HAS_OOM()) {
+ zend_string_release_ex(class_name, 0);
+ return 0;
+ }
+
if (incomplete_class) {
php_store_class_name(rval, class_name);
}
@@ -1384,6 +1474,25 @@
goto fail;
}
+ if ((*var_hash)->incomplete_classes_only) {
+ /* Do not load the enum: keep the case name, so that the value serializes
+ * back to the same bytes. */
+ zval case_zv;
+
+ YYCURSOR += 2;
+ *p = YYCURSOR;
+
+ object_init_ex(rval, PHP_IC_ENTRY);
+ if (ZEND_HAS_OOM()) {
+ goto fail;
+ }
+ php_store_class_name(rval, enum_name);
+ ZVAL_STR(&case_zv, case_name);
+ zend_hash_str_update(Z_OBJPROP_P(rval), MAGIC_MEMBER_ENUM_CASE, sizeof(MAGIC_MEMBER_ENUM_CASE) - 1, &case_zv);
+ zend_string_release_ex(enum_name, 0);
+ return 1;
+ }
+
zend_class_entry *ce = zend_lookup_class(enum_name);
if (!ce) {
php_error_docref(NULL, E_WARNING, "Class '%s' not found", ZSTR_VAL(enum_name));
diff -Nru php8.4-8.4.26/ext/tidy/tests/reparse_node.phpt php8.4-8.4.27/ext/tidy/tests/reparse_node.phpt
--- php8.4-8.4.26/ext/tidy/tests/reparse_node.phpt 1970-01-01 00:00:00.000000000 +0000
+++ php8.4-8.4.27/ext/tidy/tests/reparse_node.phpt 2026-10-19 14:38:59.000000000 +0000
@@ -0,0 +1,66 @@
+--TEST--
+tidyNode objects are invalid after reparsing their document
+--EXTENSIONS--
+tidy
+--FILE--
+hasChildren();
+ echo "unowned node: no error\n";
+} catch (Error $e) {
+ echo 'unowned node: ', $e::class, ': ', $e->getMessage(), "\n";
+}
+
+$tidy = tidy_parse_string('one
two
');
+$node = $tidy->body()->child[0];
+var_dump($node->isHtml());
+var_dump($node->hasSiblings());
+
+$tidy->parseString('three
');
+
+$operations = [
+ 'string cast' => static fn() => (string) $node,
+ 'hasChildren' => static fn() => $node->hasChildren(),
+ 'hasSiblings' => static fn() => $node->hasSiblings(),
+ 'isComment' => static fn() => $node->isComment(),
+ 'isHtml' => static fn() => $node->isHtml(),
+ 'isText' => static fn() => $node->isText(),
+ 'isJste' => static fn() => $node->isJste(),
+ 'isAsp' => static fn() => $node->isAsp(),
+ 'isPhp' => static fn() => $node->isPhp(),
+ 'getParent' => static fn() => $node->getParent(),
+ 'getPreviousSibling' => static fn() => $node->getPreviousSibling(),
+ 'getNextSibling' => static fn() => $node->getNextSibling(),
+];
+
+foreach ($operations as $operation => $callback) {
+ try {
+ $callback();
+ echo $operation, ": no error\n";
+ } catch (Error $e) {
+ echo $operation, ': ', $e::class, ': ', $e->getMessage(), "\n";
+ }
+}
+
+var_dump($tidy->body()->child[0]->isHtml());
+
+?>
+--EXPECT--
+unowned node: Error: tidyNode object is not initialized
+bool(true)
+bool(true)
+string cast: Error: tidyNode object is no longer valid after its document was reparsed
+hasChildren: Error: tidyNode object is no longer valid after its document was reparsed
+hasSiblings: Error: tidyNode object is no longer valid after its document was reparsed
+isComment: Error: tidyNode object is no longer valid after its document was reparsed
+isHtml: Error: tidyNode object is no longer valid after its document was reparsed
+isText: Error: tidyNode object is no longer valid after its document was reparsed
+isJste: Error: tidyNode object is no longer valid after its document was reparsed
+isAsp: Error: tidyNode object is no longer valid after its document was reparsed
+isPhp: Error: tidyNode object is no longer valid after its document was reparsed
+getParent: Error: tidyNode object is no longer valid after its document was reparsed
+getPreviousSibling: Error: tidyNode object is no longer valid after its document was reparsed
+getNextSibling: Error: tidyNode object is no longer valid after its document was reparsed
+bool(true)
diff -Nru php8.4-8.4.26/ext/tidy/tidy.c php8.4-8.4.27/ext/tidy/tidy.c
--- php8.4-8.4.26/ext/tidy/tidy.c 2026-09-22 15:00:02.000000000 +0000
+++ php8.4-8.4.27/ext/tidy/tidy.c 2026-10-19 14:38:59.000000000 +0000
@@ -76,6 +76,11 @@
} \
obj = Z_TIDY_P(object); \
+#define TIDY_FETCH_VALID_NODE \
+ TIDY_FETCH_ONLY_OBJECT; \
+ if (tidy_node_validate(obj) != SUCCESS) { \
+ RETURN_THROWS(); \
+ }
#define TIDY_SET_DEFAULT_CONFIG(_doc) \
if (TG(default_config) && TG(default_config)[0]) { \
php_tidy_load_config(_doc, TG(default_config)); \
@@ -102,12 +107,14 @@
TidyDoc doc;
TidyBuffer *errbuf;
unsigned int ref_count;
+ size_t parse_generation;
unsigned int initialized:1;
};
struct _PHPTidyObj {
TidyNode node;
tidy_obj_type type;
+ size_t node_generation;
PHPTidyDoc *ptdoc;
zend_object std;
};
@@ -302,12 +309,28 @@
return FAILURE;
}
+static zend_result tidy_node_validate(const PHPTidyObj *obj)
+{
+ if (!obj->ptdoc) {
+ zend_throw_error(NULL, "tidyNode object is not initialized");
+ return FAILURE;
+ }
+
+ if (obj->node_generation != obj->ptdoc->parse_generation) {
+ zend_throw_error(NULL, "tidyNode object is no longer valid after its document was reparsed");
+ return FAILURE;
+ }
+
+ return SUCCESS;
+}
+
static void tidy_create_node_object(zval *zv, PHPTidyDoc *ptdoc, TidyNode node)
{
tidy_instantiate(tidy_ce_node, zv);
PHPTidyObj *newobj = Z_TIDY_P(zv);
newobj->node = node;
newobj->type = is_node;
+ newobj->node_generation = ptdoc->parse_generation;
newobj->ptdoc = ptdoc;
newobj->ptdoc->ref_count++;
tidy_add_node_default_properties(newobj);
@@ -465,6 +488,7 @@
intern->ptdoc = emalloc(sizeof(PHPTidyDoc));
intern->ptdoc->doc = tidyCreate();
intern->ptdoc->ref_count = 1;
+ intern->ptdoc->parse_generation = 0;
intern->ptdoc->initialized = 0;
intern->ptdoc->errbuf = emalloc(sizeof(TidyBuffer));
tidyBufInit(intern->ptdoc->errbuf);
@@ -565,6 +589,9 @@
case IS_STRING:
obj = php_tidy_fetch_object(in);
+ if (tidy_node_validate(obj) != SUCCESS) {
+ return FAILURE;
+ }
tidyBufInit(&buf);
if (obj->ptdoc && tidyNodeGetText(obj->ptdoc->doc, obj->node, &buf)) {
ZVAL_STRINGL(out, (const char *) buf.bp, buf.size-1);
@@ -621,6 +648,10 @@
zval attribute, children, temp;
const char *name;
+ if (tidy_node_validate(obj) != SUCCESS) {
+ return;
+ }
+
tidyBufInit(&buf);
(void) tidyNodeGetText(obj->ptdoc->doc, obj->node, &buf);
@@ -845,6 +876,7 @@
obj->ptdoc->initialized = 1;
tidyBufInit(&buf);
+ obj->ptdoc->parse_generation++;
tidyBufAttach(&buf, (byte *) string, len);
if (tidyParseBuffer(obj->ptdoc->doc, &buf) < 0) {
php_error_docref(NULL, E_WARNING, "%s", obj->ptdoc->errbuf->bp);
@@ -1522,7 +1554,7 @@
/* {{{ Returns true if this node has children */
PHP_METHOD(tidyNode, hasChildren)
{
- TIDY_FETCH_ONLY_OBJECT;
+ TIDY_FETCH_VALID_NODE;
if (tidyGetChild(obj->node)) {
RETURN_TRUE;
@@ -1535,7 +1567,7 @@
/* {{{ Returns true if this node has siblings */
PHP_METHOD(tidyNode, hasSiblings)
{
- TIDY_FETCH_ONLY_OBJECT;
+ TIDY_FETCH_VALID_NODE;
if (obj->node && tidyGetNext(obj->node)) {
RETURN_TRUE;
@@ -1548,7 +1580,7 @@
/* {{{ Returns true if this node represents a comment */
PHP_METHOD(tidyNode, isComment)
{
- TIDY_FETCH_ONLY_OBJECT;
+ TIDY_FETCH_VALID_NODE;
if (tidyNodeGetType(obj->node) == TidyNode_Comment) {
RETURN_TRUE;
@@ -1561,7 +1593,7 @@
/* {{{ Returns true if this node is part of a HTML document */
PHP_METHOD(tidyNode, isHtml)
{
- TIDY_FETCH_ONLY_OBJECT;
+ TIDY_FETCH_VALID_NODE;
switch (tidyNodeGetType(obj->node)) {
case TidyNode_Start:
@@ -1577,7 +1609,7 @@
/* {{{ Returns true if this node represents text (no markup) */
PHP_METHOD(tidyNode, isText)
{
- TIDY_FETCH_ONLY_OBJECT;
+ TIDY_FETCH_VALID_NODE;
if (tidyNodeGetType(obj->node) == TidyNode_Text) {
RETURN_TRUE;
@@ -1590,7 +1622,7 @@
/* {{{ Returns true if this node is JSTE */
PHP_METHOD(tidyNode, isJste)
{
- TIDY_FETCH_ONLY_OBJECT;
+ TIDY_FETCH_VALID_NODE;
if (tidyNodeGetType(obj->node) == TidyNode_Jste) {
RETURN_TRUE;
@@ -1603,7 +1635,7 @@
/* {{{ Returns true if this node is ASP */
PHP_METHOD(tidyNode, isAsp)
{
- TIDY_FETCH_ONLY_OBJECT;
+ TIDY_FETCH_VALID_NODE;
if (tidyNodeGetType(obj->node) == TidyNode_Asp) {
RETURN_TRUE;
@@ -1616,7 +1648,7 @@
/* {{{ Returns true if this node is PHP */
PHP_METHOD(tidyNode, isPhp)
{
- TIDY_FETCH_ONLY_OBJECT;
+ TIDY_FETCH_VALID_NODE;
if (tidyNodeGetType(obj->node) == TidyNode_Php) {
RETURN_TRUE;
@@ -1629,7 +1661,7 @@
/* {{{ Returns the parent node if available or NULL */
PHP_METHOD(tidyNode, getParent)
{
- TIDY_FETCH_ONLY_OBJECT;
+ TIDY_FETCH_VALID_NODE;
TidyNode parent_node = tidyGetParent(obj->node);
if (parent_node) {
@@ -1640,7 +1672,7 @@
PHP_METHOD(tidyNode, getPreviousSibling)
{
- TIDY_FETCH_ONLY_OBJECT;
+ TIDY_FETCH_VALID_NODE;
TidyNode previous_node = tidyGetPrev(obj->node);
if (previous_node) {
@@ -1650,7 +1682,7 @@
PHP_METHOD(tidyNode, getNextSibling)
{
- TIDY_FETCH_ONLY_OBJECT;
+ TIDY_FETCH_VALID_NODE;
TidyNode next_node = tidyGetNext(obj->node);
if (next_node) {
diff -Nru php8.4-8.4.26/ext/tokenizer/tests/token_get_all_TOKEN_PARSE_oom_feedback.phpt php8.4-8.4.27/ext/tokenizer/tests/token_get_all_TOKEN_PARSE_oom_feedback.phpt
--- php8.4-8.4.26/ext/tokenizer/tests/token_get_all_TOKEN_PARSE_oom_feedback.phpt 1970-01-01 00:00:00.000000000 +0000
+++ php8.4-8.4.27/ext/tokenizer/tests/token_get_all_TOKEN_PARSE_oom_feedback.phpt 2026-10-19 14:38:59.000000000 +0000
@@ -0,0 +1,15 @@
+--TEST--
+TOKEN_PARSE feedback after a token is dropped on OOM
+--EXTENSIONS--
+tokenizer
+--ENV--
+USE_ZEND_ALLOC=0
+USE_TRACKED_ALLOC=1
+--FILE--
+
+--EXPECTF--
+Fatal error: Allowed memory size of %d bytes exhausted %S(tried to allocate %d bytes) in %s on line %d
diff -Nru php8.4-8.4.26/ext/tokenizer/tokenizer.c php8.4-8.4.27/ext/tokenizer/tokenizer.c
--- php8.4-8.4.26/ext/tokenizer/tokenizer.c 2026-09-22 15:00:02.000000000 +0000
+++ php8.4-8.4.27/ext/tokenizer/tokenizer.c 2026-10-19 14:38:59.000000000 +0000
@@ -111,7 +111,7 @@
}
if (!tokenize_common(return_value, source, flags, token_class)) {
- RETURN_THROWS();
+ return;
}
}
@@ -271,23 +271,30 @@
if (interned_str) {
return zend_string_copy(interned_str);
}
- interned_str = zend_string_init((char *) text, leng, 0);
+ interned_str = zend_string_finit((char *) text, leng, /* persistent */ false, /* fallible */ true);
+ if (UNEXPECTED(!interned_str)) {
+ return NULL;
+ }
zend_hash_add_new_ptr(interned_strings, interned_str, interned_str);
return interned_str;
} else {
- return zend_string_init((char *) text, leng, 0);
+ return zend_string_finit((char *) text, leng, /* persistent */ false, /* fallible */ true);
}
}
-static void add_token(
+static bool add_token(
zval *return_value, int token_type, unsigned char *text, size_t leng, int lineno,
zend_class_entry *token_class, HashTable *interned_strings) {
zval token;
if (token_class) {
+ zend_string *value = make_str(text, leng, interned_strings);
+ if (UNEXPECTED(!value)) {
+ return false;
+ }
zend_object *obj = zend_objects_new(token_class);
ZVAL_OBJ(&token, obj);
ZVAL_LONG(OBJ_PROP_NUM(obj, 0), token_type);
- ZVAL_STR(OBJ_PROP_NUM(obj, 1), make_str(text, leng, interned_strings));
+ ZVAL_STR(OBJ_PROP_NUM(obj, 1), value);
ZVAL_LONG(OBJ_PROP_NUM(obj, 2), lineno);
ZVAL_LONG(OBJ_PROP_NUM(obj, 3), text - LANG_SCNG(yy_start));
@@ -305,17 +312,28 @@
array_init_size(&token, 3);
zend_hash_real_init_packed(Z_ARRVAL(token));
ZEND_HASH_FILL_PACKED(Z_ARRVAL(token)) {
+ zend_string *value = make_str(text, leng, interned_strings);
+ if (UNEXPECTED(!value)) {
+ ZEND_HASH_FILL_FINISH();
+ zval_ptr_dtor(&token);
+ return false;
+ }
ZEND_HASH_FILL_SET_LONG(token_type);
ZEND_HASH_FILL_NEXT();
- ZEND_HASH_FILL_SET_STR(make_str(text, leng, interned_strings));
+ ZEND_HASH_FILL_SET_STR(value);
ZEND_HASH_FILL_NEXT();
ZEND_HASH_FILL_SET_LONG(lineno);
ZEND_HASH_FILL_NEXT();
} ZEND_HASH_FILL_END();
} else {
- ZVAL_STR(&token, make_str(text, leng, interned_strings));
+ zend_string *value = make_str(text, leng, interned_strings);
+ if (UNEXPECTED(!value)) {
+ return false;
+ }
+ ZVAL_STR(&token, value);
}
zend_hash_next_index_insert_new(Z_ARRVAL_P(return_value), &token);
+ return true;
}
static bool tokenize(zval *return_value, zend_string *source, zend_class_entry *token_class)
@@ -327,6 +345,7 @@
int token_line = 1;
int need_tokens = -1; /* for __halt_compiler lexing. -1 = disabled */
HashTable interned_strings;
+ bool success = true;
ZVAL_STR_COPY(&source_zval, source);
zend_save_lexical_state(&original_lex_state);
@@ -340,9 +359,12 @@
while ((token_type = lex_scan(&token, NULL))) {
ZEND_ASSERT(token_type != T_ERROR);
- add_token(
+ if (!add_token(
return_value, token_type, zendtext, zendleng, token_line,
- token_class, &interned_strings);
+ token_class, &interned_strings)) {
+ success = false;
+ break;
+ }
if (Z_TYPE(token) != IS_UNDEF) {
zval_ptr_dtor_nogc(&token);
@@ -357,9 +379,12 @@
) {
/* fetch the rest into a T_INLINE_HTML */
if (zendcursor < zendlimit) {
- add_token(
+ if (!add_token(
return_value, T_INLINE_HTML, zendcursor, zendlimit - zendcursor,
- token_line, token_class, &interned_strings);
+ token_line, token_class, &interned_strings)) {
+ success = false;
+ break;
+ }
}
break;
}
@@ -379,12 +404,13 @@
zend_restore_lexical_state(&original_lex_state);
zend_hash_destroy(&interned_strings);
- return 1;
+ return success;
}
struct event_context {
zval *tokens;
zend_class_entry *token_class;
+ bool oom;
};
static zval *extract_token_id_to_replace(zval *token_zv, const char *text, size_t length) {
@@ -415,6 +441,10 @@
{
struct event_context *ctx = context;
+ if (UNEXPECTED(ctx->oom)) {
+ return;
+ }
+
switch (event) {
case ON_TOKEN:
if (token == END) break;
@@ -424,8 +454,11 @@
} else if (token == T_ECHO && LANG_SCNG(yy_leng) == sizeof("=") - 1) {
token = T_OPEN_TAG_WITH_ECHO;
}
- add_token(
- ctx->tokens, token, (unsigned char *) text, length, line, ctx->token_class, NULL);
+ if (UNEXPECTED(!add_token(
+ ctx->tokens, token, (unsigned char *) text, length, line, ctx->token_class, NULL))) {
+ ZEND_ASSERT(ZEND_HAS_OOM());
+ ctx->oom = true;
+ }
break;
case ON_FEEDBACK: {
HashTable *tokens_ht = Z_ARRVAL_P(ctx->tokens);
@@ -471,6 +504,7 @@
ctx.tokens = &token_stream;
ctx.token_class = token_class;
+ ctx.oom = false;
CG(ast) = NULL;
CG(ast_arena) = zend_arena_create(1024 * 32);
@@ -524,7 +558,7 @@
ZEND_PARSE_PARAMETERS_END();
if (!tokenize_common(return_value, source, flags, /* token_class */ NULL)) {
- RETURN_THROWS();
+ return;
}
}
/* }}} */
diff -Nru php8.4-8.4.26/ext/xml/tests/oom_xml_parse_attributes.phpt php8.4-8.4.27/ext/xml/tests/oom_xml_parse_attributes.phpt
--- php8.4-8.4.26/ext/xml/tests/oom_xml_parse_attributes.phpt 1970-01-01 00:00:00.000000000 +0000
+++ php8.4-8.4.27/ext/xml/tests/oom_xml_parse_attributes.phpt 2026-10-19 14:38:59.000000000 +0000
@@ -0,0 +1,22 @@
+--TEST--
+xml_parse() doesn't reach hard limit on attributes
+--EXTENSIONS--
+xml
+--INI--
+memory_limit=8M
+--FILE--
+";
+
+$parser = xml_parser_create();
+xml_set_element_handler($parser, function () {}, function () {});
+xml_parse($parser, $data, true);
+echo "not reached\n";
+?>
+--EXPECTF--
+Fatal error: Allowed memory size of 8388608 bytes exhausted %S(tried to allocate %d bytes) in %s on line %d
diff -Nru php8.4-8.4.26/ext/xml/tests/oom_xml_parse_into_struct.phpt php8.4-8.4.27/ext/xml/tests/oom_xml_parse_into_struct.phpt
--- php8.4-8.4.26/ext/xml/tests/oom_xml_parse_into_struct.phpt 1970-01-01 00:00:00.000000000 +0000
+++ php8.4-8.4.27/ext/xml/tests/oom_xml_parse_into_struct.phpt 2026-10-19 14:38:59.000000000 +0000
@@ -0,0 +1,16 @@
+--TEST--
+xml_parse_into_struct() doesn't reach hard limit
+--EXTENSIONS--
+xml
+--INI--
+memory_limit=8M
+--FILE--
+" . str_repeat("", 512 * 1024) . "";
+$parser = xml_parser_create();
+xml_parse_into_struct($parser, $data, $values, $index);
+echo "not reached\n";
+?>
+--EXPECTF--
+Fatal error: Allowed memory size of 8388608 bytes exhausted %S(tried to allocate %d bytes) in %s on line %d
diff -Nru php8.4-8.4.26/ext/xml/tests/oom_xml_parse_ns.phpt php8.4-8.4.27/ext/xml/tests/oom_xml_parse_ns.phpt
--- php8.4-8.4.26/ext/xml/tests/oom_xml_parse_ns.phpt 1970-01-01 00:00:00.000000000 +0000
+++ php8.4-8.4.27/ext/xml/tests/oom_xml_parse_ns.phpt 2026-10-19 14:38:59.000000000 +0000
@@ -0,0 +1,27 @@
+--TEST--
+xml_parse() doesn't reach hard limit on namespaced attributes
+--EXTENSIONS--
+xml
+--SKIPIF--
+
+--INI--
+memory_limit=8M
+--FILE--
+";
+
+$parser = xml_parser_create_ns();
+xml_set_element_handler($parser, function () {}, function () {});
+xml_parse($parser, $data, true);
+echo "not reached\n";
+?>
+--EXPECTF--
+Fatal error: Allowed memory size of 8388608 bytes exhausted %S(tried to allocate %d bytes) in %s on line %d
diff -Nru php8.4-8.4.26/ext/xml/tests/xml_set_handler_reentrancy.phpt php8.4-8.4.27/ext/xml/tests/xml_set_handler_reentrancy.phpt
--- php8.4-8.4.26/ext/xml/tests/xml_set_handler_reentrancy.phpt 1970-01-01 00:00:00.000000000 +0000
+++ php8.4-8.4.27/ext/xml/tests/xml_set_handler_reentrancy.phpt 2026-10-19 14:38:59.000000000 +0000
@@ -0,0 +1,43 @@
+--TEST--
+GH-23818 (Changing XML handlers while parsing is rejected)
+--EXTENSIONS--
+xml
+--FILE--
+getMessage(), "\n";
+ }
+
+ try {
+ xml_set_character_data_handler($parser, $replacement);
+ } catch (Error $error) {
+ echo 'xml_set_character_data_handler: ', $error->getMessage(), "\n";
+ }
+};
+
+$parser = xml_parser_create();
+xml_set_element_handler($parser, $startHandler, static function () {
+ echo "end\n";
+});
+xml_set_character_data_handler($parser, static function (XMLParser $parser, string $data) {
+ echo $data, "\n";
+});
+
+var_dump(xml_parse($parser, 'text', true));
+var_dump(xml_set_element_handler($parser, null, null));
+var_dump(xml_set_character_data_handler($parser, null));
+?>
+--EXPECT--
+xml_set_element_handler: Cannot change handlers while parsing
+xml_set_character_data_handler: Cannot change handlers while parsing
+text
+end
+int(1)
+bool(true)
+bool(true)
diff -Nru php8.4-8.4.26/ext/xml/xml.c php8.4-8.4.27/ext/xml/xml.c
--- php8.4-8.4.26/ext/xml/xml.c 2026-09-22 15:00:02.000000000 +0000
+++ php8.4-8.4.27/ext/xml/xml.c 2026-10-19 14:38:59.000000000 +0000
@@ -323,8 +323,11 @@
{
if (parser->ltags) {
int inx;
- for (inx = 0; ((inx < parser->level) && (inx < XML_MAXLEVEL)); inx++)
- efree(parser->ltags[ inx ]);
+ for (inx = 0; ((inx < parser->level) && (inx < XML_MAXLEVEL)); inx++) {
+ if (parser->ltags[ inx ]) {
+ efree(parser->ltags[ inx ]);
+ }
+ }
efree(parser->ltags);
}
}
@@ -614,6 +617,11 @@
return NULL;
}
+static zend_always_inline bool xml_handler_aborted(void)
+{
+ return EG(exception) != NULL || ZEND_HAS_OOM();
+}
+
/* {{{ xml_startElementHandler() */
void xml_startElementHandler(void *userData, const XML_Char *name, const XML_Char **attributes)
{
@@ -625,6 +633,10 @@
return;
}
+ if (UNEXPECTED(xml_handler_aborted())) {
+ return;
+ }
+
parser->level++;
tag_name = xml_decode_tag(parser, name);
@@ -647,6 +659,14 @@
attributes += 2;
zend_string_release_ex(att, 0);
+
+ if (ZEND_HAS_OOM()) {
+ zend_string_release_ex(tag_name, false);
+ zval_ptr_dtor(&args[0]);
+ zval_ptr_dtor(&args[1]);
+ zval_ptr_dtor(&args[2]);
+ return;
+ }
}
zend_call_known_fcc(&parser->startElementHandler, /* retval */ NULL, /* param_count */ 3, args, /* named_params */ NULL);
@@ -689,6 +709,13 @@
attributes += 2;
zend_string_release_ex(att, 0);
+
+ if (ZEND_HAS_OOM()) {
+ zend_string_release_ex(tag_name, false);
+ zval_ptr_dtor(&tag);
+ zval_ptr_dtor(&atr);
+ return;
+ }
}
if (atcnt) {
@@ -727,6 +754,10 @@
if (!parser) {
return;
}
+
+ if (UNEXPECTED(xml_handler_aborted())) {
+ return;
+ }
zend_string *tag_name = xml_decode_tag(parser, name);
@@ -770,6 +801,7 @@
if ((parser->ltags) && (parser->level <= XML_MAXLEVEL)) {
efree(parser->ltags[parser->level-1]);
+ parser->ltags[parser->level-1] = NULL;
}
parser->level--;
@@ -785,6 +817,10 @@
return;
}
+ if (UNEXPECTED(xml_handler_aborted())) {
+ return;
+ }
+
if (ZEND_FCC_INITIALIZED(parser->characterDataHandler)) {
zval args[2];
ZVAL_COPY(&args[0], &parser->index);
@@ -1317,6 +1353,12 @@
}
set_handlers:
+ if (parser->isparsing) {
+ zend_release_fcall_info_cache(&start_fcc);
+ zend_release_fcall_info_cache(&end_fcc);
+ zend_throw_error(NULL, "Cannot change handlers while parsing");
+ RETURN_THROWS();
+ }
xml_set_handler(&parser->startElementHandler, &start_fcc);
xml_set_handler(&parser->endElementHandler, &end_fcc);
XML_SetElementHandler(parser->parser, xml_startElementHandler, xml_endElementHandler);
@@ -1370,6 +1412,11 @@
php_xml_set_handler_parse_callable(INTERNAL_FUNCTION_PARAM_PASSTHRU, &parser, &handler_fcc); \
if (EG(exception)) { return; } \
ZEND_ASSERT(parser); \
+ if (parser->isparsing) { \
+ zend_release_fcall_info_cache(&handler_fcc); \
+ zend_throw_error(NULL, "Cannot change handlers while parsing"); \
+ RETURN_THROWS(); \
+ } \
xml_set_handler(&parser->parser_handler_name, &handler_fcc); \
parse_function(parser->parser, c_function); \
RETURN_TRUE; \
diff -Nru php8.4-8.4.26/ext/xmlreader/php_xmlreader.c php8.4-8.4.27/ext/xmlreader/php_xmlreader.c
--- php8.4-8.4.26/ext/xmlreader/php_xmlreader.c 2026-09-22 15:00:02.000000000 +0000
+++ php8.4-8.4.27/ext/xmlreader/php_xmlreader.c 2026-10-19 14:38:59.000000000 +0000
@@ -91,7 +91,7 @@
switch (hnd->type) {
case IS_STRING:
if (retchar) {
- ZVAL_STRING(rv, (char *) retchar);
+ ZVAL_FSTRING(rv, (char *) retchar);
} else {
ZVAL_EMPTY_STRING(rv);
}
@@ -441,7 +441,7 @@
retchar = (char *)internal_function(intern->ptr, (const unsigned char *)name);
}
if (retchar) {
- RETVAL_STRING(retchar);
+ RETVAL_FSTRING(retchar);
xmlFree(retchar);
return;
} else {
@@ -491,7 +491,7 @@
retchar = (char *)internal_function(intern->ptr);
}
if (retchar) {
- RETVAL_STRING(retchar);
+ RETVAL_FSTRING(retchar);
xmlFree(retchar);
return;
} else {
@@ -601,7 +601,7 @@
retchar = (char *)xmlTextReaderGetAttributeNo(intern->ptr, attr_pos);
}
if (retchar) {
- RETVAL_STRING(retchar);
+ RETVAL_FSTRING(retchar);
xmlFree(retchar);
}
}
@@ -636,7 +636,7 @@
retchar = (char *)xmlTextReaderGetAttributeNs(intern->ptr, (xmlChar *)name, (xmlChar *)ns_uri);
}
if (retchar) {
- RETVAL_STRING(retchar);
+ RETVAL_FSTRING(retchar);
xmlFree(retchar);
}
}
diff -Nru php8.4-8.4.26/ext/xmlreader/tests/oom_xmlreader_getattribute.phpt php8.4-8.4.27/ext/xmlreader/tests/oom_xmlreader_getattribute.phpt
--- php8.4-8.4.26/ext/xmlreader/tests/oom_xmlreader_getattribute.phpt 1970-01-01 00:00:00.000000000 +0000
+++ php8.4-8.4.27/ext/xmlreader/tests/oom_xmlreader_getattribute.phpt 2026-10-19 14:38:59.000000000 +0000
@@ -0,0 +1,32 @@
+--TEST--
+XMLReader::getAttribute() doesn't reach hard limit
+--EXTENSIONS--
+xmlreader
+--INI--
+memory_limit=2M
+--FILE--
+");
+unset($chunk);
+fclose($fp);
+
+$reader = XMLReader::open($path);
+$reader->read();
+$reader->getAttribute("a");
+echo "not reached\n";
+?>
+--CLEAN--
+
+--EXPECTF--
+Fatal error: Allowed memory size of 2097152 bytes exhausted %S(tried to allocate %d bytes) in %s on line %d
diff -Nru php8.4-8.4.26/ext/xmlreader/tests/oom_xmlreader_getattributeno.phpt php8.4-8.4.27/ext/xmlreader/tests/oom_xmlreader_getattributeno.phpt
--- php8.4-8.4.26/ext/xmlreader/tests/oom_xmlreader_getattributeno.phpt 1970-01-01 00:00:00.000000000 +0000
+++ php8.4-8.4.27/ext/xmlreader/tests/oom_xmlreader_getattributeno.phpt 2026-10-19 14:38:59.000000000 +0000
@@ -0,0 +1,32 @@
+--TEST--
+XMLReader::getAttributeNo() doesn't reach hard limit
+--EXTENSIONS--
+xmlreader
+--INI--
+memory_limit=2M
+--FILE--
+");
+unset($chunk);
+fclose($fp);
+
+$reader = XMLReader::open($path);
+$reader->read();
+$reader->getAttributeNo(0);
+echo "not reached\n";
+?>
+--CLEAN--
+
+--EXPECTF--
+Fatal error: Allowed memory size of 2097152 bytes exhausted %S(tried to allocate %d bytes) in %s on line %d
diff -Nru php8.4-8.4.26/ext/xmlreader/tests/oom_xmlreader_getattributens.phpt php8.4-8.4.27/ext/xmlreader/tests/oom_xmlreader_getattributens.phpt
--- php8.4-8.4.26/ext/xmlreader/tests/oom_xmlreader_getattributens.phpt 1970-01-01 00:00:00.000000000 +0000
+++ php8.4-8.4.27/ext/xmlreader/tests/oom_xmlreader_getattributens.phpt 2026-10-19 14:38:59.000000000 +0000
@@ -0,0 +1,31 @@
+--TEST--
+XMLReader::getAttributeNs() doesn't reach hard limit
+--EXTENSIONS--
+xmlreader
+--INI--
+memory_limit=2M
+--FILE--
+");
+unset($chunk);
+fclose($fp);
+
+$reader = XMLReader::open($path);
+$reader->read();
+$reader->getAttributeNs("a", "urn:t");
+echo "not reached\n";
+?>
+--CLEAN--
+
+--EXPECTF--
+Fatal error: Allowed memory size of 2097152 bytes exhausted %S(tried to allocate %d bytes) in %s on line %d
diff -Nru php8.4-8.4.26/ext/xmlreader/tests/oom_xmlreader_lookupnamespace.phpt php8.4-8.4.27/ext/xmlreader/tests/oom_xmlreader_lookupnamespace.phpt
--- php8.4-8.4.26/ext/xmlreader/tests/oom_xmlreader_lookupnamespace.phpt 1970-01-01 00:00:00.000000000 +0000
+++ php8.4-8.4.27/ext/xmlreader/tests/oom_xmlreader_lookupnamespace.phpt 2026-10-19 14:38:59.000000000 +0000
@@ -0,0 +1,32 @@
+--TEST--
+XMLReader::lookupNamespace() doesn't reach hard limit
+--EXTENSIONS--
+xmlreader
+--INI--
+memory_limit=2M
+--FILE--
+");
+unset($chunk);
+fclose($fp);
+
+$reader = XMLReader::open($path);
+$reader->read();
+$reader->read();
+$reader->lookupNamespace("p");
+echo "not reached\n";
+?>
+--CLEAN--
+
+--EXPECTF--
+Fatal error: Allowed memory size of 2097152 bytes exhausted %S(tried to allocate %d bytes) in %s on line %d
diff -Nru php8.4-8.4.26/ext/xmlreader/tests/oom_xmlreader_readinnerxml.phpt php8.4-8.4.27/ext/xmlreader/tests/oom_xmlreader_readinnerxml.phpt
--- php8.4-8.4.26/ext/xmlreader/tests/oom_xmlreader_readinnerxml.phpt 1970-01-01 00:00:00.000000000 +0000
+++ php8.4-8.4.27/ext/xmlreader/tests/oom_xmlreader_readinnerxml.phpt 2026-10-19 14:38:59.000000000 +0000
@@ -0,0 +1,36 @@
+--TEST--
+XMLReader::readInnerXml() doesn't reach hard limit
+--EXTENSIONS--
+xmlreader
+--INI--
+memory_limit=2M
+--SKIPIF--
+
+--FILE--
+xxxxxxxx", 32768);
+fwrite($fp, "");
+for ($i = 0; $i < 12; $i++) {
+ fwrite($fp, $piece);
+}
+fwrite($fp, "");
+unset($piece);
+fclose($fp);
+
+$reader = XMLReader::open($path);
+$reader->read();
+$reader->readInnerXml();
+echo "not reached\n";
+?>
+--CLEAN--
+
+--EXPECTF--
+Fatal error: Allowed memory size of 2097152 bytes exhausted %S(tried to allocate %d bytes) in %s on line %d
diff -Nru php8.4-8.4.26/ext/xmlreader/tests/oom_xmlreader_readouterxml.phpt php8.4-8.4.27/ext/xmlreader/tests/oom_xmlreader_readouterxml.phpt
--- php8.4-8.4.26/ext/xmlreader/tests/oom_xmlreader_readouterxml.phpt 1970-01-01 00:00:00.000000000 +0000
+++ php8.4-8.4.27/ext/xmlreader/tests/oom_xmlreader_readouterxml.phpt 2026-10-19 14:38:59.000000000 +0000
@@ -0,0 +1,32 @@
+--TEST--
+XMLReader::readOuterXml() doesn't reach hard limit
+--EXTENSIONS--
+xmlreader
+--INI--
+memory_limit=4M
+--FILE--
+xxxxxxxx", 32768);
+fwrite($fp, "");
+for ($i = 0; $i < 24; $i++) {
+ fwrite($fp, $piece);
+}
+fwrite($fp, "");
+unset($piece);
+fclose($fp);
+
+$reader = XMLReader::open($path);
+$reader->read();
+$reader->readOuterXml();
+echo "not reached\n";
+?>
+--CLEAN--
+
+--EXPECTF--
+Fatal error: Allowed memory size of 4194304 bytes exhausted %S(tried to allocate %d bytes) in %s on line %d
diff -Nru php8.4-8.4.26/ext/xmlreader/tests/oom_xmlreader_readstring.phpt php8.4-8.4.27/ext/xmlreader/tests/oom_xmlreader_readstring.phpt
--- php8.4-8.4.26/ext/xmlreader/tests/oom_xmlreader_readstring.phpt 1970-01-01 00:00:00.000000000 +0000
+++ php8.4-8.4.27/ext/xmlreader/tests/oom_xmlreader_readstring.phpt 2026-10-19 14:38:59.000000000 +0000
@@ -0,0 +1,36 @@
+--TEST--
+XMLReader::readString() doesn't reach hard limit
+--EXTENSIONS--
+xmlreader
+--INI--
+memory_limit=2M
+--SKIPIF--
+
+--FILE--
+xxxxxxxx", 32768);
+fwrite($fp, "");
+for ($i = 0; $i < 12; $i++) {
+ fwrite($fp, $piece);
+}
+fwrite($fp, "");
+unset($piece);
+fclose($fp);
+
+$reader = XMLReader::open($path);
+$reader->read();
+$reader->readString();
+echo "not reached\n";
+?>
+--CLEAN--
+
+--EXPECTF--
+Fatal error: Allowed memory size of 2097152 bytes exhausted %S(tried to allocate %d bytes) in %s on line %d
diff -Nru php8.4-8.4.26/ext/xmlwriter/php_xmlwriter.c php8.4-8.4.27/ext/xmlwriter/php_xmlwriter.c
--- php8.4-8.4.26/ext/xmlwriter/php_xmlwriter.c 2026-09-22 15:00:02.000000000 +0000
+++ php8.4-8.4.27/ext/xmlwriter/php_xmlwriter.c 2026-10-19 14:38:59.000000000 +0000
@@ -1009,7 +1009,11 @@
output_bytes = xmlTextWriterFlush(ptr);
if (buffer) {
const xmlChar *content = xmlBufferContent(buffer);
- RETVAL_STRING((const char *) content);
+ zend_string *ret = zend_string_finit((const char *) content, strlen((const char *) content), /* persistent */ false, /* fallible */ true);
+ if (UNEXPECTED(!ret)) {
+ RETURN_OOM();
+ }
+ RETVAL_NEW_STR(ret);
if (empty) {
xmlBufferEmpty(buffer);
}
diff -Nru php8.4-8.4.26/ext/xsl/php_xsl.h php8.4-8.4.27/ext/xsl/php_xsl.h
--- php8.4-8.4.26/ext/xsl/php_xsl.h 2026-09-22 15:00:02.000000000 +0000
+++ php8.4-8.4.27/ext/xsl/php_xsl.h 2026-10-19 14:38:59.000000000 +0000
@@ -55,6 +55,7 @@
typedef struct xsl_object {
void *ptr;
HashTable *parameter;
+ uint32_t transform_depth;
bool hasKeys;
php_libxml_ref_obj *sheet_ref_obj;
zend_long securityPrefs;
diff -Nru php8.4-8.4.26/ext/xsl/tests/gh23730.phpt php8.4-8.4.27/ext/xsl/tests/gh23730.phpt
--- php8.4-8.4.26/ext/xsl/tests/gh23730.phpt 1970-01-01 00:00:00.000000000 +0000
+++ php8.4-8.4.27/ext/xsl/tests/gh23730.phpt 2026-10-19 14:38:59.000000000 +0000
@@ -0,0 +1,81 @@
+--TEST--
+GH-23730 (Use-after-free when a stylesheet is imported during a transformation)
+--EXTENSIONS--
+dom
+xsl
+--CREDITS--
+djarfluka
+--FILE--
+importStylesheet($GLOBALS['other']);
+ echo $from, ': no error', PHP_EOL;
+ } catch (Error $e) {
+ echo $from, ': ', $e::class, ': ', $e->getMessage(), PHP_EOL;
+ }
+}
+
+function callback($nodes) {
+ import_other('callback');
+ return $nodes[0];
+}
+
+$xml = new DOMDocument();
+$xml->registerNodeClass(DOMElement::class, MyElement::class);
+$xml->loadXML('- a
');
+
+$xsl = new DOMDocument();
+$xsl->loadXML(<<
+
+
+
+XML);
+
+$other = new DOMDocument();
+$other->loadXML('REPLACED');
+
+$proc = new XSLTProcessor();
+$proc->registerPHPFunctions();
+$proc->importStylesheet($xsl);
+
+$GLOBALS['proc'] = $proc;
+$GLOBALS['other'] = $other;
+
+var_dump($proc->transformToXml($xml));
+var_dump($proc->transformToDoc($xml)->textContent);
+
+$uri = tempnam(sys_get_temp_dir(), 'gh23730');
+var_dump($proc->transformToUri($xml, $uri) > 0);
+@unlink($uri);
+
+/* Importing outside of a transformation is still allowed. */
+var_dump($proc->importStylesheet($other));
+var_dump($proc->transformToXml($xml));
+
+?>
+--EXPECT--
+callback: Error: Cannot call XSLTProcessor::importStylesheet() while a transformation is in progress
+destructor: Error: Cannot call XSLTProcessor::importStylesheet() while a transformation is in progress
+string(24) "
+a
+"
+callback: Error: Cannot call XSLTProcessor::importStylesheet() while a transformation is in progress
+destructor: Error: Cannot call XSLTProcessor::importStylesheet() while a transformation is in progress
+string(1) "a"
+callback: Error: Cannot call XSLTProcessor::importStylesheet() while a transformation is in progress
+destructor: Error: Cannot call XSLTProcessor::importStylesheet() while a transformation is in progress
+bool(true)
+bool(true)
+string(31) "
+REPLACED
+"
diff -Nru php8.4-8.4.26/ext/xsl/tests/gh23897.phpt php8.4-8.4.27/ext/xsl/tests/gh23897.phpt
--- php8.4-8.4.26/ext/xsl/tests/gh23897.phpt 1970-01-01 00:00:00.000000000 +0000
+++ php8.4-8.4.27/ext/xsl/tests/gh23897.phpt 2026-10-19 14:38:59.000000000 +0000
@@ -0,0 +1,36 @@
+--TEST--
+GH-23897 (Assertion failure in php_dom_xpath_callback_dispatch() after failed registerPHPFunctions())
+--EXTENSIONS--
+xsl
+--CREDITS--
+YuanchengJiang
+--FILE--
+loadXML('');
+
+$xsl = new DOMDocument();
+$xsl->loadXML(<<
+
+
+
+
+XML);
+
+$xslt = new XSLTProcessor();
+try {
+ $xslt->registerPHPFunctions('testPhpFunction');
+} catch (Throwable $e) {
+ echo $e::class, ': ', $e->getMessage(), PHP_EOL;
+}
+$xslt->importStylesheet($xsl);
+try {
+ var_dump($xslt->transformToXml($dom));
+} catch (Throwable $e) {
+ echo $e::class, ': ', $e->getMessage(), PHP_EOL;
+}
+?>
+--EXPECT--
+TypeError: XSLTProcessor::registerPHPFunctions(): Argument #1 ($functions) must be a callable, function "testPhpFunction" not found or invalid function name
+Error: No callbacks were registered
diff -Nru php8.4-8.4.26/ext/xsl/tests/throw_in_autoload.phpt php8.4-8.4.27/ext/xsl/tests/throw_in_autoload.phpt
--- php8.4-8.4.26/ext/xsl/tests/throw_in_autoload.phpt 2026-09-22 15:00:02.000000000 +0000
+++ php8.4-8.4.27/ext/xsl/tests/throw_in_autoload.phpt 2026-10-19 14:38:59.000000000 +0000
@@ -28,14 +28,12 @@
$xsl = $proc->importStylesheet($xsl);
try {
$newdom = $proc->transformToDoc($inputdom);
-} catch (Error $e) {
+} catch (Exception $e) {
echo $e->getMessage(), "\n";
- echo $e->getPrevious()->getMessage(), "\n";
}
?>
===DONE===
--EXPECT--
string(4) "TeSt"
-Invalid callback TeSt::dateLang, class "TeSt" not found
Autoload exception
===DONE===
diff -Nru php8.4-8.4.26/ext/xsl/xsltprocessor.c php8.4-8.4.27/ext/xsl/xsltprocessor.c
--- php8.4-8.4.26/ext/xsl/xsltprocessor.c 2026-09-22 15:00:02.000000000 +0000
+++ php8.4-8.4.27/ext/xsl/xsltprocessor.c 2026-10-19 14:38:59.000000000 +0000
@@ -175,6 +175,12 @@
RETURN_THROWS();
}
+ xsl_object *intern = Z_XSL_P(id);
+ if (UNEXPECTED(intern->transform_depth > 0)) {
+ zend_throw_error(NULL, "Cannot call XSLTProcessor::importStylesheet() while a transformation is in progress");
+ RETURN_THROWS();
+ }
+
nodep = php_libxml_import_node(docp);
if (nodep == NULL) {
zend_argument_type_error(1, "must be a valid XML node");
@@ -251,8 +257,6 @@
RETURN_FALSE;
}
- xsl_object *intern = Z_XSL_P(id);
-
/* Detach object */
clone_lxml_obj->document->ptr = NULL;
/* The namespace mappings need to be kept alive.
@@ -333,6 +337,8 @@
return NULL;
}
+ intern->transform_depth++;
+
if (intern->profiling) {
if (php_check_open_basedir(ZSTR_VAL(intern->profiling))) {
f = NULL;
@@ -438,6 +444,8 @@
efree(intern->doc);
intern->doc = NULL;
+ intern->transform_depth--;
+
return newdocp;
}
diff -Nru php8.4-8.4.26/ext/zend_test/observer.c php8.4-8.4.27/ext/zend_test/observer.c
--- php8.4-8.4.26/ext/zend_test/observer.c 2026-09-22 15:00:02.000000000 +0000
+++ php8.4-8.4.27/ext/zend_test/observer.c 2026-10-19 14:38:59.000000000 +0000
@@ -79,7 +79,8 @@
{
assert_observer_opline(execute_data);
- if (ZT_G(observer_set_vm_interrupt_on_begin)) {
+ if (ZT_G(observer_set_vm_interrupt_on_begin)
+ || ZT_G(observer_set_vm_interrupt_on_begin_without_callback)) {
zend_atomic_bool_store_ex(&EG(vm_interrupt), true);
}
@@ -375,6 +376,7 @@
STD_PHP_INI_BOOLEAN("zend_test.observer.show_opcode", "0", PHP_INI_SYSTEM, OnUpdateBool, observer_show_opcode, zend_zend_test_globals, zend_test_globals)
STD_PHP_INI_ENTRY("zend_test.observer.show_opcode_in_user_handler", "", PHP_INI_SYSTEM, OnUpdateString, observer_show_opcode_in_user_handler, zend_zend_test_globals, zend_test_globals)
STD_PHP_INI_BOOLEAN("zend_test.observer.set_vm_interrupt_on_begin", "0", PHP_INI_SYSTEM, OnUpdateBool, observer_set_vm_interrupt_on_begin, zend_zend_test_globals, zend_test_globals)
+ STD_PHP_INI_BOOLEAN("zend_test.observer.set_vm_interrupt_on_begin_without_callback", "0", PHP_INI_SYSTEM, OnUpdateBool, observer_set_vm_interrupt_on_begin_without_callback, zend_zend_test_globals, zend_test_globals)
STD_PHP_INI_BOOLEAN("zend_test.observer.fiber_init", "0", PHP_INI_SYSTEM, OnUpdateBool, observer_fiber_init, zend_zend_test_globals, zend_test_globals)
STD_PHP_INI_BOOLEAN("zend_test.observer.fiber_switch", "0", PHP_INI_SYSTEM, OnUpdateBool, observer_fiber_switch, zend_zend_test_globals, zend_test_globals)
STD_PHP_INI_BOOLEAN("zend_test.observer.fiber_destroy", "0", PHP_INI_SYSTEM, OnUpdateBool, observer_fiber_destroy, zend_zend_test_globals, zend_test_globals)
diff -Nru php8.4-8.4.26/ext/zend_test/php_test.h php8.4-8.4.27/ext/zend_test/php_test.h
--- php8.4-8.4.26/ext/zend_test/php_test.h 2026-09-22 15:00:02.000000000 +0000
+++ php8.4-8.4.27/ext/zend_test/php_test.h 2026-10-19 14:38:59.000000000 +0000
@@ -46,6 +46,7 @@
int observer_show_opcode;
char *observer_show_opcode_in_user_handler;
int observer_set_vm_interrupt_on_begin;
+ int observer_set_vm_interrupt_on_begin_without_callback;
int observer_nesting_depth;
int observer_fiber_init;
int observer_fiber_switch;
diff -Nru php8.4-8.4.26/ext/zend_test/test.c php8.4-8.4.27/ext/zend_test/test.c
--- php8.4-8.4.26/ext/zend_test/test.c 2026-09-22 15:00:02.000000000 +0000
+++ php8.4-8.4.27/ext/zend_test/test.c 2026-10-19 14:38:59.000000000 +0000
@@ -33,10 +33,13 @@
#include "zend_weakrefs.h"
#include "Zend/Optimizer/zend_optimizer.h"
#include "Zend/zend_alloc.h"
+#include "SAPI.h"
+#include "rfc1867.h"
#include "test_arginfo.h"
#include "zend_call_stack.h"
#include "zend_exceptions.h"
#include "zend_mm_custom_handlers.h"
+#include
// `php.h` sets `NDEBUG` when not `PHP_DEBUG` which will make `assert()` from
// assert.h a no-op. In order to have `assert()` working on NDEBUG builds, we
@@ -173,6 +176,44 @@
emalloc(leakbytes);
}
+static ZEND_FUNCTION(zend_test_emalloc)
+{
+ zend_long size;
+
+ ZEND_PARSE_PARAMETERS_START(1, 1)
+ Z_PARAM_LONG(size)
+ ZEND_PARSE_PARAMETERS_END();
+
+ void *ptr = emalloc((size_t)size);
+
+ ZEND_ASSERT(ptr);
+ memset(ptr, 0, (size_t)size);
+
+ efree(ptr);
+}
+
+static ZEND_FUNCTION(zend_test_callback)
+{
+ zend_fcall_info fci = empty_fcall_info;
+ zend_fcall_info_cache fci_cache = empty_fcall_info_cache;
+
+ ZEND_PARSE_PARAMETERS_START(1, 1)
+ Z_PARAM_FUNC(fci, fci_cache)
+ ZEND_PARSE_PARAMETERS_END();
+
+ void *p = malloc(1024);
+
+ zval result;
+ fci.retval = &result;
+ fci.param_count = 0;
+ fci.params = NULL;
+ zend_call_function(&fci, &fci_cache);
+ zval_ptr_dtor(&result);
+
+ /* Reachable via unwind exit. */
+ free(p);
+}
+
/* Leak a refcounted variable */
static ZEND_FUNCTION(zend_leak_variable)
{
@@ -672,6 +713,22 @@
php_printf("%s", invalid);
}
+static ZEND_FUNCTION(zend_test_raise_and_throw)
+{
+ zend_long signo;
+
+ ZEND_PARSE_PARAMETERS_START(1, 1)
+ Z_PARAM_LONG(signo)
+ ZEND_PARSE_PARAMETERS_END();
+
+ if (raise((int) signo) != 0) {
+ zend_throw_error(NULL, "raise() failed");
+ RETURN_THROWS();
+ }
+
+ zend_throw_exception(NULL, "Exception after raise()", 0);
+}
+
static bool has_opline(zend_execute_data *execute_data)
{
return execute_data
@@ -850,6 +907,123 @@
php_log_err_with_severity(ZSTR_VAL(str), LOG_DEBUG);
}
+static php_stream *zend_test_post_stream = NULL;
+
+/* Give the POST handler a fresh $_POST or $_FILES to fill in. A request parses
+ * its body before creating the auto globals, so the handler expects an array
+ * that nothing else holds a reference to yet. */
+static void zend_test_reset_track_vars(int track_vars, const char *name, size_t name_len)
+{
+ /* Create the auto global first, so that it is not created, and reset, on
+ * first access after this. */
+ zend_is_auto_global_str(name, name_len);
+
+ zval *zv = &PG(http_globals)[track_vars];
+
+ zval_ptr_dtor_nogc(zv);
+ array_init(zv);
+}
+
+/* Point $_POST or $_FILES at the array the POST handler filled in. */
+static void zend_test_publish_track_vars(int track_vars, const char *name, size_t name_len)
+{
+ zval *zv = &PG(http_globals)[track_vars];
+
+ zend_hash_str_update(&EG(symbol_table), name, name_len, zv);
+ Z_ADDREF_P(zv);
+}
+
+static size_t zend_test_read_post(char *buffer, size_t count_bytes)
+{
+ ssize_t read_bytes = php_stream_read(zend_test_post_stream, buffer, count_bytes);
+
+ return read_bytes > 0 ? (size_t) read_bytes : 0;
+}
+
+/* Run the POST handler registered for the content type over the contents of a
+ * stream, as if that stream were the body of the current request. */
+static ZEND_FUNCTION(zend_test_handle_post_data)
+{
+ zval *stream_zv;
+ char *content_type;
+ size_t content_type_len;
+ zend_long content_length;
+ php_stream *stream;
+
+ ZEND_PARSE_PARAMETERS_START(3, 3)
+ Z_PARAM_RESOURCE(stream_zv);
+ Z_PARAM_STRING(content_type, content_type_len);
+ Z_PARAM_LONG(content_length);
+ ZEND_PARSE_PARAMETERS_END();
+
+ php_stream_from_zval(stream, stream_zv);
+
+ zend_test_reset_track_vars(TRACK_VARS_POST, ZEND_STRL("_POST"));
+ zend_test_reset_track_vars(TRACK_VARS_FILES, ZEND_STRL("_FILES"));
+
+ /* Tear down what a previous call set up, as the request shutdown would. */
+ if (SG(rfc1867_uploaded_files)) {
+ destroy_uploaded_files_hash();
+ }
+
+ php_stream *old_stream = zend_test_post_stream;
+ size_t (*old_read_post)(char *buffer, size_t count_bytes) = sapi_module.read_post;
+ sapi_request_info old_request_info = SG(request_info);
+ int64_t old_read_post_bytes = SG(read_post_bytes);
+ unsigned char old_post_read = SG(post_read);
+
+ zend_test_post_stream = stream;
+ sapi_module.read_post = zend_test_read_post;
+ /* php_default_post_reader() insists on a request method. */
+ SG(request_info).request_method = "POST";
+ SG(request_info).content_type = content_type;
+ SG(request_info).content_length = content_length;
+ SG(request_info).content_type_dup = NULL;
+ SG(request_info).post_entry = NULL;
+ SG(request_info).request_body = NULL;
+ SG(read_post_bytes) = 0;
+ SG(post_read) = 0;
+
+ bool bailed_out = false;
+
+ zend_try {
+ /* Pick the post handler for the content type, read the body, then run
+ * the handler over it. Anything else is swallowed by the default post
+ * reader, as it would be during a request. */
+ sapi_read_post_data();
+ sapi_handle_post(&PG(http_globals)[TRACK_VARS_POST]);
+ } zend_catch {
+ bailed_out = true;
+ } zend_end_try();
+
+ zend_test_publish_track_vars(TRACK_VARS_POST, ZEND_STRL("_POST"));
+ zend_test_publish_track_vars(TRACK_VARS_FILES, ZEND_STRL("_FILES"));
+
+ if (SG(request_info).request_body) {
+ php_stream_close(SG(request_info).request_body);
+ }
+ if (SG(request_info).content_type_dup) {
+ efree(SG(request_info).content_type_dup);
+ }
+
+ zend_test_post_stream = old_stream;
+ sapi_module.read_post = old_read_post;
+ SG(request_info) = old_request_info;
+ SG(read_post_bytes) = old_read_post_bytes;
+ SG(post_read) = old_post_read;
+
+ if (bailed_out) {
+ zend_bailout();
+ }
+}
+
+static ZEND_FUNCTION(zend_new_singleton_array)
+{
+ ZEND_PARSE_PARAMETERS_NONE();
+
+ array_init_singleton(return_value);
+}
+
static zend_object *zend_test_class_new(zend_class_entry *class_type)
{
zend_object *obj = zend_objects_new(class_type);
diff -Nru php8.4-8.4.26/ext/zend_test/test.stub.php php8.4-8.4.27/ext/zend_test/test.stub.php
--- php8.4-8.4.26/ext/zend_test/test.stub.php 2026-09-22 15:00:02.000000000 +0000
+++ php8.4-8.4.27/ext/zend_test/test.stub.php 2026-10-19 14:38:59.000000000 +0000
@@ -246,6 +246,10 @@
function zend_leak_bytes(int $bytes = 3): void {}
+ function zend_test_emalloc(int $size): void {}
+
+ function zend_test_callback(callable $callback): void {}
+
function zend_string_or_object(object|string $param): object|string {}
function zend_string_or_object_or_null(object|string|null $param): object|string|null {}
@@ -298,6 +302,8 @@
function zend_test_crash(?string $message = null): void {}
+ function zend_test_raise_and_throw(int $signal): void {}
+
function zend_test_fill_packed_array(array &$array): void {}
/** @return resource */
@@ -326,6 +332,11 @@
/** @compile-time-eval */
function zend_test_gh19792(): void {}
+
+ /* @param resource $stream */
+ function zend_test_handle_post_data(mixed $stream, string $content_type, int $content_length): void {}
+
+ function zend_new_singleton_array(): array {}
}
namespace ZendTestNS {
diff -Nru php8.4-8.4.26/ext/zend_test/test_arginfo.h php8.4-8.4.27/ext/zend_test/test_arginfo.h
--- php8.4-8.4.26/ext/zend_test/test_arginfo.h 2026-09-22 15:00:02.000000000 +0000
+++ php8.4-8.4.27/ext/zend_test/test_arginfo.h 2026-10-19 14:38:59.000000000 +0000
@@ -1,5 +1,5 @@
/* This is a generated file, edit the .stub.php file instead.
- * Stub hash: bf65e1dd1eeeeec46687a76a7ea6554cd1971dfc */
+ * Stub hash: f723630a2dc2078ae81e406e75a728dcf8939779 */
ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_zend_test_array_return, 0, 0, IS_ARRAY, 0)
ZEND_END_ARG_INFO()
@@ -42,6 +42,14 @@
ZEND_ARG_TYPE_INFO_WITH_DEFAULT_VALUE(0, bytes, IS_LONG, 0, "3")
ZEND_END_ARG_INFO()
+ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_zend_test_emalloc, 0, 1, IS_VOID, 0)
+ ZEND_ARG_TYPE_INFO(0, size, IS_LONG, 0)
+ZEND_END_ARG_INFO()
+
+ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_zend_test_callback, 0, 1, IS_VOID, 0)
+ ZEND_ARG_TYPE_INFO(0, callback, IS_CALLABLE, 0)
+ZEND_END_ARG_INFO()
+
ZEND_BEGIN_ARG_WITH_RETURN_TYPE_MASK_EX(arginfo_zend_string_or_object, 0, 1, MAY_BE_OBJECT|MAY_BE_STRING)
ZEND_ARG_TYPE_MASK(0, param, MAY_BE_OBJECT|MAY_BE_STRING, NULL)
ZEND_END_ARG_INFO()
@@ -133,6 +141,10 @@
ZEND_ARG_TYPE_INFO_WITH_DEFAULT_VALUE(0, message, IS_STRING, 1, "null")
ZEND_END_ARG_INFO()
+ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_zend_test_raise_and_throw, 0, 1, IS_VOID, 0)
+ ZEND_ARG_TYPE_INFO(0, signal, IS_LONG, 0)
+ZEND_END_ARG_INFO()
+
ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_zend_test_fill_packed_array, 0, 1, IS_VOID, 0)
ZEND_ARG_TYPE_INFO(1, array, IS_ARRAY, 0)
ZEND_END_ARG_INFO()
@@ -173,6 +185,14 @@
#define arginfo_zend_test_gh19792 arginfo_zend_test_void_return
+ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_zend_test_handle_post_data, 0, 3, IS_VOID, 0)
+ ZEND_ARG_TYPE_INFO(0, stream, IS_MIXED, 0)
+ ZEND_ARG_TYPE_INFO(0, content_type, IS_STRING, 0)
+ ZEND_ARG_TYPE_INFO(0, content_length, IS_LONG, 0)
+ZEND_END_ARG_INFO()
+
+#define arginfo_zend_new_singleton_array arginfo_zend_test_array_return
+
#define arginfo_ZendTestNS2_namespaced_func arginfo_zend_test_is_pcre_bundled
#define arginfo_ZendTestNS2_namespaced_deprecated_func arginfo_zend_test_void_return
@@ -268,6 +288,8 @@
static ZEND_FUNCTION(zend_terminate_string);
static ZEND_FUNCTION(zend_leak_variable);
static ZEND_FUNCTION(zend_leak_bytes);
+static ZEND_FUNCTION(zend_test_emalloc);
+static ZEND_FUNCTION(zend_test_callback);
static ZEND_FUNCTION(zend_string_or_object);
static ZEND_FUNCTION(zend_string_or_object_or_null);
static ZEND_FUNCTION(zend_string_or_stdclass);
@@ -294,6 +316,7 @@
static ZEND_FUNCTION(zend_test_is_string_marked_as_valid_utf8);
static ZEND_FUNCTION(zend_get_map_ptr_last);
static ZEND_FUNCTION(zend_test_crash);
+static ZEND_FUNCTION(zend_test_raise_and_throw);
static ZEND_FUNCTION(zend_test_fill_packed_array);
static ZEND_FUNCTION(zend_test_create_throwing_resource);
static ZEND_FUNCTION(get_open_basedir);
@@ -309,6 +332,8 @@
static ZEND_FUNCTION(zend_test_log_err_debug);
static ZEND_FUNCTION(zend_test_gh18756);
static ZEND_FUNCTION(zend_test_gh19792);
+static ZEND_FUNCTION(zend_test_handle_post_data);
+static ZEND_FUNCTION(zend_new_singleton_array);
static ZEND_FUNCTION(ZendTestNS2_namespaced_func);
static ZEND_FUNCTION(ZendTestNS2_namespaced_deprecated_func);
static ZEND_FUNCTION(ZendTestNS2_ZendSubNS_namespaced_func);
@@ -375,6 +400,8 @@
ZEND_FE(zend_terminate_string, arginfo_zend_terminate_string)
ZEND_FE(zend_leak_variable, arginfo_zend_leak_variable)
ZEND_FE(zend_leak_bytes, arginfo_zend_leak_bytes)
+ ZEND_FE(zend_test_emalloc, arginfo_zend_test_emalloc)
+ ZEND_FE(zend_test_callback, arginfo_zend_test_callback)
ZEND_FE(zend_string_or_object, arginfo_zend_string_or_object)
ZEND_FE(zend_string_or_object_or_null, arginfo_zend_string_or_object_or_null)
ZEND_FE(zend_string_or_stdclass, arginfo_zend_string_or_stdclass)
@@ -401,6 +428,7 @@
ZEND_FE(zend_test_is_string_marked_as_valid_utf8, arginfo_zend_test_is_string_marked_as_valid_utf8)
ZEND_FE(zend_get_map_ptr_last, arginfo_zend_get_map_ptr_last)
ZEND_FE(zend_test_crash, arginfo_zend_test_crash)
+ ZEND_FE(zend_test_raise_and_throw, arginfo_zend_test_raise_and_throw)
ZEND_FE(zend_test_fill_packed_array, arginfo_zend_test_fill_packed_array)
ZEND_FE(zend_test_create_throwing_resource, arginfo_zend_test_create_throwing_resource)
ZEND_FE(get_open_basedir, arginfo_get_open_basedir)
@@ -424,6 +452,8 @@
ZEND_RAW_FENTRY("zend_test_gh19792", zif_zend_test_gh19792, arginfo_zend_test_gh19792, 0)
#endif
#endif
+ ZEND_FE(zend_test_handle_post_data, arginfo_zend_test_handle_post_data)
+ ZEND_FE(zend_new_singleton_array, arginfo_zend_new_singleton_array)
#if (PHP_VERSION_ID >= 80400)
ZEND_RAW_FENTRY(ZEND_NS_NAME("ZendTestNS2", "namespaced_func"), zif_ZendTestNS2_namespaced_func, arginfo_ZendTestNS2_namespaced_func, 0, NULL, NULL)
#else
diff -Nru php8.4-8.4.26/ext/zend_test/tests/observer_bug81430_2.phpt php8.4-8.4.27/ext/zend_test/tests/observer_bug81430_2.phpt
--- php8.4-8.4.26/ext/zend_test/tests/observer_bug81430_2.phpt 2026-09-22 15:00:02.000000000 +0000
+++ php8.4-8.4.27/ext/zend_test/tests/observer_bug81430_2.phpt 2026-10-19 14:38:59.000000000 +0000
@@ -3,21 +3,16 @@
--EXTENSIONS--
zend_test
--INI--
-memory_limit=20M
zend_test.observer.enabled=1
zend_test.observer.show_output=1
zend_test.observer.observe_all=1
---SKIPIF--
-
--FILE--
-
-
-
-
+
+
+
+
+
-Fatal error: Allowed memory size of %d bytes exhausted %s in %s on line %d
-
-
+Fatal error: __debuginfo() must return an array in %s on line %d
+
diff -Nru php8.4-8.4.26/ext/zend_test/tests/observer_bug81435.phpt php8.4-8.4.27/ext/zend_test/tests/observer_bug81435.phpt
--- php8.4-8.4.26/ext/zend_test/tests/observer_bug81435.phpt 2026-09-22 15:00:02.000000000 +0000
+++ php8.4-8.4.27/ext/zend_test/tests/observer_bug81435.phpt 2026-10-19 14:38:59.000000000 +0000
@@ -3,15 +3,10 @@
--EXTENSIONS--
zend_test
--INI--
-memory_limit=20M
zend_test.observer.enabled=1
zend_test.observer.show_output=1
zend_test.observer.observe_function_names=a,d
opcache.optimization_level=0
---SKIPIF--
-
--FILE--
-
-
+
+
-Fatal error: Allowed memory size of 20971520 bytes exhausted %s in %s on line %d
+Fatal error: __debuginfo() must return an array in %s on line %d
diff -Nru php8.4-8.4.26/ext/zend_test/tests/observer_error_01.phpt php8.4-8.4.27/ext/zend_test/tests/observer_error_01.phpt
--- php8.4-8.4.26/ext/zend_test/tests/observer_error_01.phpt 2026-09-22 15:00:02.000000000 +0000
+++ php8.4-8.4.27/ext/zend_test/tests/observer_error_01.phpt 2026-10-19 14:38:59.000000000 +0000
@@ -7,16 +7,11 @@
zend_test.observer.show_output=1
zend_test.observer.observe_all=1
zend_test.observer.show_return_value=1
-memory_limit=2M
---SKIPIF--
-
--FILE--
-
-
+
+
+
+
+
-Fatal error: Allowed memory size of 2097152 bytes exhausted%s(tried to allocate %d bytes) in %s on line %d
-
+Fatal error: __debuginfo() must return an array in %s on line %d
+
diff -Nru php8.4-8.4.26/ext/zend_test/tests/observer_fiber_functions_03.phpt php8.4-8.4.27/ext/zend_test/tests/observer_fiber_functions_03.phpt
--- php8.4-8.4.26/ext/zend_test/tests/observer_fiber_functions_03.phpt 2026-09-22 15:00:02.000000000 +0000
+++ php8.4-8.4.27/ext/zend_test/tests/observer_fiber_functions_03.phpt 2026-10-19 14:38:59.000000000 +0000
@@ -9,11 +9,6 @@
zend_test.observer.fiber_init=1
zend_test.observer.fiber_switch=1
zend_test.observer.fiber_destroy=1
-memory_limit=100M
---SKIPIF--
-
--FILE--
start();
@@ -76,11 +71,13 @@
-
-
+
+
+
+
-Fatal error: Allowed memory size of 104857600 bytes exhausted %s on line %d
-
+Fatal error: __debuginfo() must return an array in %s on line %d
+
{closure:%s:%d}>
diff -Nru php8.4-8.4.26/ext/zend_test/tests/zend_test_handle_post_data.phpt php8.4-8.4.27/ext/zend_test/tests/zend_test_handle_post_data.phpt
--- php8.4-8.4.26/ext/zend_test/tests/zend_test_handle_post_data.phpt 1970-01-01 00:00:00.000000000 +0000
+++ php8.4-8.4.27/ext/zend_test/tests/zend_test_handle_post_data.phpt 2026-10-19 14:38:59.000000000 +0000
@@ -0,0 +1,85 @@
+--TEST--
+zend_test_handle_post_data() parses POST data from a stream
+--EXTENSIONS--
+zend_test
+--FILE--
+
+--EXPECTF--
+array(1) {
+ ["foo"]=>
+ string(3) "bar"
+}
+array(1) {
+ ["file"]=>
+ array(6) {
+ ["name"]=>
+ string(5) "f.txt"
+ ["full_path"]=>
+ string(5) "f.txt"
+ ["type"]=>
+ string(10) "text/plain"
+ ["tmp_name"]=>
+ string(%d) "%s"
+ ["error"]=>
+ int(0)
+ ["size"]=>
+ int(13)
+ }
+}
+bool(true)
+string(13) "file contents"
+array(2) {
+ ["a"]=>
+ string(1) "1"
+ ["b"]=>
+ array(2) {
+ [0]=>
+ string(1) "2"
+ [1]=>
+ string(1) "3"
+ }
+}
+array(0) {
+}
+array(0) {
+}
diff -Nru php8.4-8.4.26/ext/zip/php_zip.c php8.4-8.4.27/ext/zip/php_zip.c
--- php8.4-8.4.26/ext/zip/php_zip.c 2026-09-22 15:00:02.000000000 +0000
+++ php8.4-8.4.27/ext/zip/php_zip.c 2026-10-19 14:38:59.000000000 +0000
@@ -1582,8 +1582,16 @@
if (ze_obj->archive) {
/* we already have an opened zip, free it */
+ if (ze_obj->archive->close) {
+ efree(resolved_path);
+ zend_throw_error(NULL, "Already being closed");
+ RETURN_THROWS();
+ }
intern = ze_obj->archive->za;
- if (zip_close(intern) != 0) {
+ ze_obj->archive->close = true;
+ err = zip_close(intern);
+ ze_obj->archive->close = false;
+ if (err != 0) {
php_error_docref(NULL, E_WARNING, "Empty string as source");
efree(resolved_path);
RETURN_FALSE;
@@ -1668,7 +1676,14 @@
ze_obj = Z_ZIP_P(self);
+ if (ze_obj->archive->close) {
+ zend_throw_error(NULL, "Already being closed");
+ RETURN_THROWS();
+ }
+
+ ze_obj->archive->close = true;
err = zip_close(intern);
+ ze_obj->archive->close = false;
if (err) {
php_error_docref(NULL, E_WARNING, "%s", zip_strerror(intern));
/* Save error for property reader */
@@ -2963,7 +2978,7 @@
}
}
- uint32_t nelems, i;
+ uint32_t nelems;
if (files_str) {
if (!php_zip_extract_file(intern, pathto, ZSTR_VAL(files_str), ZSTR_LEN(files_str), -1)) {
@@ -2974,20 +2989,19 @@
if (nelems == 0 ) {
RETURN_FALSE;
}
- for (i = 0; i < nelems; i++) {
- zval *zval_file;
- if ((zval_file = zend_hash_index_find_deref(files_ht, i)) != NULL) {
- switch (Z_TYPE_P(zval_file)) {
- case IS_LONG:
- break;
- case IS_STRING:
- if (!php_zip_extract_file(intern, pathto, Z_STRVAL_P(zval_file), Z_STRLEN_P(zval_file), -1)) {
- RETURN_FALSE;
- }
- break;
- }
+ zval *zval_file;
+ ZEND_HASH_FOREACH_VAL(files_ht, zval_file) {
+ ZVAL_DEREF(zval_file);
+ switch (Z_TYPE_P(zval_file)) {
+ case IS_LONG:
+ break;
+ case IS_STRING:
+ if (!php_zip_extract_file(intern, pathto, Z_STRVAL_P(zval_file), Z_STRLEN_P(zval_file), -1)) {
+ RETURN_FALSE;
+ }
+ break;
}
- }
+ } ZEND_HASH_FOREACH_END();
} else {
/* Extract all files */
zip_int64_t i, filecount = zip_get_num_entries(intern, 0);
diff -Nru php8.4-8.4.26/ext/zip/php_zip.h php8.4-8.4.27/ext/zip/php_zip.h
--- php8.4-8.4.26/ext/zip/php_zip.h 2026-09-22 15:00:02.000000000 +0000
+++ php8.4-8.4.27/ext/zip/php_zip.h 2026-10-19 14:38:59.000000000 +0000
@@ -73,6 +73,7 @@
/* libzip reads buffers until the archive is closed, can outlive the object. */
char **buffers;
int buffers_cnt;
+ bool close;
#ifdef HAVE_PROGRESS_CALLBACK
zval progress_callback;
#endif
diff -Nru php8.4-8.4.26/ext/zip/tests/gh18431.phpt php8.4-8.4.27/ext/zip/tests/gh18431.phpt
--- php8.4-8.4.26/ext/zip/tests/gh18431.phpt 2026-09-22 15:00:02.000000000 +0000
+++ php8.4-8.4.27/ext/zip/tests/gh18431.phpt 2026-10-19 14:38:59.000000000 +0000
@@ -2,6 +2,12 @@
GH-18431 (Registering ZIP progress callback twice doesn't work)
--EXTENSIONS--
zip
+--SKIPIF--
+
--FILE--
+--FILE--
+open($filename, ZipArchive::CREATE | ZipArchive::OVERWRITE);
+ for ($i = 0; $i < 64; $i++) {
+ $zip->addFromString("f$i.txt", str_repeat('x', 2000));
+ }
+}
+
+$filename = __DIR__ . '/gh23747.zip';
+
+$zip = new ZipArchive();
+populate($zip, $filename);
+$zip->registerProgressCallback(0.0, function ($rate) use ($zip) {
+ static $done = false;
+ if (!$done) {
+ $done = true;
+ try {
+ $zip->close();
+ } catch (Error $e) {
+ echo $e::class, ': ', $e->getMessage(), PHP_EOL;
+ }
+ }
+});
+var_dump($zip->close());
+
+$zip = new ZipArchive();
+populate($zip, $filename);
+$zip->registerCancelCallback(function () use ($zip) {
+ static $done = false;
+ if (!$done) {
+ $done = true;
+ try {
+ $zip->close();
+ } catch (Error $e) {
+ echo $e::class, ': ', $e->getMessage(), PHP_EOL;
+ }
+ }
+ return 0;
+});
+var_dump($zip->close());
+
+$zip = new ZipArchive();
+populate($zip, $filename);
+$zip->registerProgressCallback(0.0, function ($rate) use ($zip) {
+ static $done = false;
+ if (!$done) {
+ $done = true;
+ try {
+ $zip->close();
+ } catch (Error $e) {
+ echo $e::class, ': ', $e->getMessage(), PHP_EOL;
+ }
+ }
+});
+var_dump($zip->open($filename));
+var_dump($zip->count());
+
+$zip = new ZipArchive();
+populate($zip, $filename);
+$zip->registerProgressCallback(0.0, function ($rate) use ($zip, $filename) {
+ static $done = false;
+ if (!$done) {
+ $done = true;
+ try {
+ $zip->open($filename);
+ } catch (Error $e) {
+ echo $e::class, ': ', $e->getMessage(), PHP_EOL;
+ }
+ }
+});
+var_dump($zip->close());
+?>
+--CLEAN--
+
+--EXPECT--
+Error: Already being closed
+bool(true)
+Error: Already being closed
+bool(true)
+Error: Already being closed
+bool(true)
+int(64)
+Error: Already being closed
+bool(true)
diff -Nru php8.4-8.4.26/ext/zip/tests/oo_extract_array_keys.phpt php8.4-8.4.27/ext/zip/tests/oo_extract_array_keys.phpt
--- php8.4-8.4.26/ext/zip/tests/oo_extract_array_keys.phpt 1970-01-01 00:00:00.000000000 +0000
+++ php8.4-8.4.27/ext/zip/tests/oo_extract_array_keys.phpt 2026-10-19 14:38:59.000000000 +0000
@@ -0,0 +1,38 @@
+--TEST--
+ZipArchive::extractTo() with a non-list files array (non-sequential keys)
+--EXTENSIONS--
+zip
+--FILE--
+open($archive, ZipArchive::CREATE | ZipArchive::OVERWRITE);
+$zip->addFromString("file0.txt", "zero");
+$zip->addFromString("file1.txt", "one");
+$zip->close();
+
+$target = __DIR__ . "/oo_extract_array_keys";
+mkdir($target);
+
+// array_filter() (and array_unique/array_diff) preserve keys, so this is [1 => "file1.txt"],
+// a perfectly valid list of entry names that is not a packed 0-based array.
+$files = array_filter(["file0.txt", "file1.txt"], fn($f) => $f === "file1.txt");
+
+$zip = new ZipArchive();
+$zip->open($archive);
+var_dump($zip->extractTo($target, $files));
+$zip->close();
+
+var_dump(is_file("$target/file1.txt"));
+?>
+--EXPECT--
+bool(true)
+bool(true)
+--CLEAN--
+
diff -Nru php8.4-8.4.26/ext/zlib/tests/oom_deflate_add.phpt php8.4-8.4.27/ext/zlib/tests/oom_deflate_add.phpt
--- php8.4-8.4.26/ext/zlib/tests/oom_deflate_add.phpt 1970-01-01 00:00:00.000000000 +0000
+++ php8.4-8.4.27/ext/zlib/tests/oom_deflate_add.phpt 2026-10-19 14:38:59.000000000 +0000
@@ -0,0 +1,34 @@
+--TEST--
+deflate_add() output buffer pre-allocation doesn't reach hard limit
+--EXTENSIONS--
+zlib
+--INI--
+memory_limit=512M
+--SKIPIF--
+
+--FILE--
+ $hard - memory_get_usage(true));
+
+deflate_add($ctx, $subject, ZLIB_FINISH);
+echo "not reached\n";
+?>
+--EXPECTF--
+bool(true)
+
+Fatal error: Allowed memory size of 536870912 bytes exhausted %S(tried to allocate %d bytes) in %s on line %d
diff -Nru php8.4-8.4.26/ext/zlib/tests/oom_gzcompress.phpt php8.4-8.4.27/ext/zlib/tests/oom_gzcompress.phpt
--- php8.4-8.4.26/ext/zlib/tests/oom_gzcompress.phpt 1970-01-01 00:00:00.000000000 +0000
+++ php8.4-8.4.27/ext/zlib/tests/oom_gzcompress.phpt 2026-10-19 14:38:59.000000000 +0000
@@ -0,0 +1,32 @@
+--TEST--
+gzcompress() output buffer pre-allocation doesn't reach hard limit
+--EXTENSIONS--
+zlib
+--INI--
+memory_limit=512M
+--SKIPIF--
+
+--FILE--
+ $hard - memory_get_usage(true));
+
+// gzdeflate(), gzencode() and zlib_encode() go through the same helper.
+gzcompress($subject);
+echo "not reached\n";
+?>
+--EXPECTF--
+bool(true)
+
+Fatal error: Allowed memory size of 536870912 bytes exhausted %S(tried to allocate %d bytes) in %s on line %d
diff -Nru php8.4-8.4.26/ext/zlib/tests/oom_gzdecode.phpt php8.4-8.4.27/ext/zlib/tests/oom_gzdecode.phpt
--- php8.4-8.4.26/ext/zlib/tests/oom_gzdecode.phpt 1970-01-01 00:00:00.000000000 +0000
+++ php8.4-8.4.27/ext/zlib/tests/oom_gzdecode.phpt 2026-10-19 14:38:59.000000000 +0000
@@ -0,0 +1,26 @@
+--TEST--
+gzdecode() doesn't reach hard limit
+--EXTENSIONS--
+zlib
+--INI--
+memory_limit=8M
+--SKIPIF--
+
+--FILE--
+ 9]);
+$chunk = str_repeat("\0", 65536);
+$gz = "";
+for ($i = 0; $i < 512; $i++) {
+ $gz .= deflate_add($ctx, $chunk, ZLIB_NO_FLUSH);
+}
+$gz .= deflate_add($ctx, "", ZLIB_FINISH);
+unset($chunk);
+
+var_dump(gzdecode($gz));
+?>
+--EXPECTF--
+Fatal error: Allowed memory size of %d bytes exhausted %S(tried to allocate %d bytes) in %s on line %d
diff -Nru php8.4-8.4.26/ext/zlib/tests/oom_gzfile.phpt php8.4-8.4.27/ext/zlib/tests/oom_gzfile.phpt
--- php8.4-8.4.26/ext/zlib/tests/oom_gzfile.phpt 1970-01-01 00:00:00.000000000 +0000
+++ php8.4-8.4.27/ext/zlib/tests/oom_gzfile.phpt 2026-10-19 14:38:59.000000000 +0000
@@ -0,0 +1,35 @@
+--TEST--
+gzfile() doesn't reach hard limit
+--EXTENSIONS--
+zlib
+--INI--
+memory_limit=64M
+--SKIPIF--
+
+--FILE--
+ 9]);
+$chunk = str_repeat("a\n", 32768);
+$gz = "";
+for ($i = 0; $i < 192; $i++) {
+ $gz .= deflate_add($ctx, $chunk, ZLIB_NO_FLUSH);
+}
+$gz .= deflate_add($ctx, "", ZLIB_FINISH);
+file_put_contents($file, $gz);
+unset($gz, $chunk, $ctx);
+
+ini_set("memory_limit", "8M");
+
+var_dump(gzfile($file));
+?>
+--CLEAN--
+
+--EXPECTF--
+Fatal error: Allowed memory size of %d bytes exhausted %S(tried to allocate %d bytes) in %s on line %d
diff -Nru php8.4-8.4.26/ext/zlib/tests/oom_gzgets.phpt php8.4-8.4.27/ext/zlib/tests/oom_gzgets.phpt
--- php8.4-8.4.26/ext/zlib/tests/oom_gzgets.phpt 1970-01-01 00:00:00.000000000 +0000
+++ php8.4-8.4.27/ext/zlib/tests/oom_gzgets.phpt 2026-10-19 14:38:59.000000000 +0000
@@ -0,0 +1,36 @@
+--TEST--
+gzgets() doesn't reach hard limit
+--EXTENSIONS--
+zlib
+--INI--
+memory_limit=64M
+--SKIPIF--
+
+--FILE--
+ 9]);
+$chunk = str_repeat("\0", 65536);
+$gz = "";
+for ($i = 0; $i < 192; $i++) {
+ $gz .= deflate_add($ctx, $chunk, ZLIB_NO_FLUSH);
+}
+$gz .= deflate_add($ctx, "", ZLIB_FINISH);
+file_put_contents($file, $gz);
+unset($gz, $chunk, $ctx);
+
+ini_set("memory_limit", "4M");
+
+$fp = gzopen($file, "rb");
+var_dump(gzgets($fp));
+?>
+--CLEAN--
+
+--EXPECTF--
+Fatal error: Allowed memory size of %d bytes exhausted %S(tried to allocate %d bytes) in %s on line %d
diff -Nru php8.4-8.4.26/ext/zlib/tests/oom_gzpassthru.phpt php8.4-8.4.27/ext/zlib/tests/oom_gzpassthru.phpt
--- php8.4-8.4.26/ext/zlib/tests/oom_gzpassthru.phpt 1970-01-01 00:00:00.000000000 +0000
+++ php8.4-8.4.27/ext/zlib/tests/oom_gzpassthru.phpt 2026-10-19 14:38:59.000000000 +0000
@@ -0,0 +1,37 @@
+--TEST--
+gzpassthru() doesn't reach hard limit
+--EXTENSIONS--
+zlib
+--INI--
+memory_limit=64M
+--SKIPIF--
+
+--FILE--
+ 9]);
+$chunk = str_repeat("\0", 65536);
+$gz = "";
+for ($i = 0; $i < 192; $i++) {
+ $gz .= deflate_add($ctx, $chunk, ZLIB_NO_FLUSH);
+}
+$gz .= deflate_add($ctx, "", ZLIB_FINISH);
+file_put_contents($file, $gz);
+unset($gz, $chunk, $ctx);
+
+ini_set("memory_limit", "4M");
+
+ob_start();
+$fp = gzopen($file, "rb");
+gzpassthru($fp);
+?>
+--CLEAN--
+
+--EXPECTF--
+Fatal error: Allowed memory size of %d bytes exhausted %S(tried to allocate %d bytes) in %s on line %d
diff -Nru php8.4-8.4.26/ext/zlib/tests/oom_inflate_add.phpt php8.4-8.4.27/ext/zlib/tests/oom_inflate_add.phpt
--- php8.4-8.4.26/ext/zlib/tests/oom_inflate_add.phpt 1970-01-01 00:00:00.000000000 +0000
+++ php8.4-8.4.27/ext/zlib/tests/oom_inflate_add.phpt 2026-10-19 14:38:59.000000000 +0000
@@ -0,0 +1,27 @@
+--TEST--
+inflate_add() doesn't reach hard limit
+--EXTENSIONS--
+zlib
+--INI--
+memory_limit=8M
+--SKIPIF--
+
+--FILE--
+ 9]);
+$chunk = str_repeat("\0", 65536);
+$gz = "";
+for ($i = 0; $i < 512; $i++) {
+ $gz .= deflate_add($ctx, $chunk, ZLIB_NO_FLUSH);
+}
+$gz .= deflate_add($ctx, "", ZLIB_FINISH);
+unset($chunk);
+
+$r = inflate_init(ZLIB_ENCODING_GZIP);
+var_dump(inflate_add($r, $gz, ZLIB_FINISH));
+?>
+--EXPECTF--
+Fatal error: Allowed memory size of %d bytes exhausted %S(tried to allocate %d bytes) in %s on line %d
diff -Nru php8.4-8.4.26/ext/zlib/tests/oom_readgzfile.phpt php8.4-8.4.27/ext/zlib/tests/oom_readgzfile.phpt
--- php8.4-8.4.26/ext/zlib/tests/oom_readgzfile.phpt 1970-01-01 00:00:00.000000000 +0000
+++ php8.4-8.4.27/ext/zlib/tests/oom_readgzfile.phpt 2026-10-19 14:38:59.000000000 +0000
@@ -0,0 +1,36 @@
+--TEST--
+readgzfile() doesn't reach hard limit
+--EXTENSIONS--
+zlib
+--INI--
+memory_limit=64M
+--SKIPIF--
+
+--FILE--
+ 9]);
+$chunk = str_repeat("\0", 65536);
+$gz = "";
+for ($i = 0; $i < 192; $i++) {
+ $gz .= deflate_add($ctx, $chunk, ZLIB_NO_FLUSH);
+}
+$gz .= deflate_add($ctx, "", ZLIB_FINISH);
+file_put_contents($file, $gz);
+unset($gz, $chunk, $ctx);
+
+ini_set("memory_limit", "4M");
+
+ob_start();
+readgzfile($file);
+?>
+--CLEAN--
+
+--EXPECTF--
+Fatal error: Allowed memory size of %d bytes exhausted %S(tried to allocate %d bytes) in %s on line %d
diff -Nru php8.4-8.4.26/ext/zlib/tests/oom_zlib_inflate_filter.phpt php8.4-8.4.27/ext/zlib/tests/oom_zlib_inflate_filter.phpt
--- php8.4-8.4.26/ext/zlib/tests/oom_zlib_inflate_filter.phpt 1970-01-01 00:00:00.000000000 +0000
+++ php8.4-8.4.27/ext/zlib/tests/oom_zlib_inflate_filter.phpt 2026-10-19 14:38:59.000000000 +0000
@@ -0,0 +1,37 @@
+--TEST--
+zlib.inflate stream filter doesn't reach hard limit
+--EXTENSIONS--
+zlib
+--INI--
+memory_limit=64M
+--SKIPIF--
+
+--FILE--
+ 9]);
+$chunk = str_repeat("\0", 65536);
+$gz = "";
+for ($i = 0; $i < 192; $i++) {
+ $gz .= deflate_add($ctx, $chunk, ZLIB_NO_FLUSH);
+}
+$gz .= deflate_add($ctx, "", ZLIB_FINISH);
+file_put_contents($file, $gz);
+unset($gz, $chunk, $ctx);
+
+ini_set("memory_limit", "4M");
+
+$fp = fopen($file, "rb");
+stream_filter_append($fp, "zlib.inflate", STREAM_FILTER_READ, ["window" => 0x2f]);
+var_dump(fgets($fp));
+?>
+--CLEAN--
+
+--EXPECTF--
+Fatal error: Allowed memory size of %d bytes exhausted %S(tried to allocate %d bytes) in %s on line %d
diff -Nru php8.4-8.4.26/ext/zlib/zlib.c php8.4-8.4.27/ext/zlib/zlib.c
--- php8.4-8.4.26/ext/zlib/zlib.c 2026-09-22 15:00:02.000000000 +0000
+++ php8.4-8.4.27/ext/zlib/zlib.c 2026-10-19 14:38:59.000000000 +0000
@@ -150,6 +150,9 @@
zval *enc;
if (!ZLIBG(compression_coding)) {
+ if (!EG(active)) {
+ return 0;
+ }
if ((Z_TYPE(PG(http_globals)[TRACK_VARS_SERVER]) == IS_ARRAY || zend_is_auto_global(ZSTR_KNOWN(ZEND_STR_AUTOGLOBAL_SERVER))) &&
(enc = zend_hash_str_find(Z_ARRVAL(PG(http_globals)[TRACK_VARS_SERVER]), "HTTP_ACCEPT_ENCODING", sizeof("HTTP_ACCEPT_ENCODING") - 1))) {
convert_to_string(enc);
@@ -391,7 +394,11 @@
Z.zfree = php_zlib_free;
if (Z_OK == (status = deflateInit2(&Z, level, Z_DEFLATED, encoding, MAX_MEM_LEVEL, Z_DEFAULT_STRATEGY))) {
- out = zend_string_alloc(PHP_ZLIB_BUFFER_SIZE_GUESS(in_len), 0);
+ out = zend_string_falloc(PHP_ZLIB_BUFFER_SIZE_GUESS(in_len), 0, /* fallible */ true);
+ if (UNEXPECTED(!out)) {
+ deflateEnd(&Z);
+ return NULL;
+ }
Z.next_in = (Bytef *) in_buf;
Z.next_out = (Bytef *) ZSTR_VAL(out);
@@ -428,7 +435,7 @@
buffer.size = (max && (max < Z->avail_in)) ? max : Z->avail_in;
do {
- if ((max && (max <= buffer.used)) || !(buffer.aptr = erealloc_recoverable(buffer.data, buffer.size))) {
+ if ((max && (max <= buffer.used)) || !(buffer.aptr = safe_ferealloc(buffer.data, 1, buffer.size, 0, /* fallible */ true))) {
status = Z_MEM_ERROR;
} else {
buffer.data = buffer.aptr;
@@ -635,6 +642,10 @@
memset(buf, 0, sizeof(buf));
while (php_stream_gets(stream, buf, sizeof(buf) - 1) != NULL) {
+ if (ZEND_HAS_OOM()) {
+ php_stream_close(stream);
+ RETURN_OOM();
+ }
add_index_string(return_value, i++, buf);
}
php_stream_close(stream);
@@ -931,6 +942,22 @@
}
/* }}} */
+/* Releases *out and returns false on failure. */
+static bool php_zlib_inflate_grow(zend_string **out, size_t buffer_used, size_t chunk_size, z_stream *Z)
+{
+ zend_string *grown = zend_string_frealloc(*out, ZSTR_LEN(*out) + chunk_size, 0, /* fallible */ true);
+
+ if (UNEXPECTED(grown == NULL)) {
+ zend_string_release_ex(*out, 0);
+ return false;
+ }
+
+ *out = grown;
+ Z->avail_out = chunk_size;
+ Z->next_out = (Bytef *) ZSTR_VAL(grown) + buffer_used;
+ return true;
+}
+
/* {{{ Incrementally inflate encoded data in the specified context */
PHP_FUNCTION(inflate_add)
{
@@ -989,9 +1016,9 @@
case Z_OK:
if (ctx->Z.avail_out == 0) {
/* more output buffer space needed; realloc and try again */
- out = zend_string_realloc(out, ZSTR_LEN(out) + CHUNK_SIZE, 0);
- ctx->Z.avail_out = CHUNK_SIZE;
- ctx->Z.next_out = (Bytef *) ZSTR_VAL(out) + buffer_used;
+ if (UNEXPECTED(!php_zlib_inflate_grow(&out, buffer_used, CHUNK_SIZE, &ctx->Z))) {
+ RETURN_OOM();
+ }
break;
} else {
goto complete;
@@ -1001,9 +1028,9 @@
case Z_BUF_ERROR:
if (flush_type == Z_FINISH && ctx->Z.avail_out == 0) {
/* more output buffer space needed; realloc and try again */
- out = zend_string_realloc(out, ZSTR_LEN(out) + CHUNK_SIZE, 0);
- ctx->Z.avail_out = CHUNK_SIZE;
- ctx->Z.next_out = (Bytef *) ZSTR_VAL(out) + buffer_used;
+ if (UNEXPECTED(!php_zlib_inflate_grow(&out, buffer_used, CHUNK_SIZE, &ctx->Z))) {
+ RETURN_OOM();
+ }
break;
} else {
/* No more input data; we're finished */
@@ -1215,7 +1242,10 @@
out_size = PHP_ZLIB_BUFFER_SIZE_GUESS(in_len);
out_size = (out_size < 64) ? 64 : out_size;
- out = zend_string_alloc(out_size, 0);
+ out = zend_string_falloc(out_size, 0, /* fallible */ true);
+ if (UNEXPECTED(!out)) {
+ RETURN_OOM();
+ }
ctx->Z.next_in = (Bytef *) in_buf;
ctx->Z.next_out = (Bytef *) ZSTR_VAL(out);
diff -Nru php8.4-8.4.26/ext/zlib/zlib_filter.c php8.4-8.4.27/ext/zlib/zlib_filter.c
--- php8.4-8.4.26/ext/zlib/zlib_filter.c 2026-09-22 15:00:02.000000000 +0000
+++ php8.4-8.4.27/ext/zlib/zlib_filter.c 2026-10-19 14:38:59.000000000 +0000
@@ -75,6 +75,10 @@
bucket = php_stream_bucket_make_writeable(buckets_in->head);
while (bin < (unsigned int) bucket->buflen && !data->finished) {
+ /* Output is unbounded relative to the input. */
+ if (ZEND_HAS_OOM()) {
+ break;
+ }
desired = bucket->buflen - bin;
if (desired > data->inbuf_len) {
@@ -121,7 +125,7 @@
if (!data->finished && flags & PSFS_FLAG_FLUSH_CLOSE) {
/* Spit it out! */
status = Z_OK;
- while (status == Z_OK) {
+ while (status == Z_OK && !ZEND_HAS_OOM()) {
status = inflate(&(data->strm), Z_FINISH);
if (data->strm.avail_out < data->outbuf_len) {
size_t bucketlen = data->outbuf_len - data->strm.avail_out;
diff -Nru php8.4-8.4.26/main/SAPI.c php8.4-8.4.27/main/SAPI.c
--- php8.4-8.4.26/main/SAPI.c 2026-09-22 15:00:02.000000000 +0000
+++ php8.4-8.4.27/main/SAPI.c 2026-10-19 14:38:59.000000000 +0000
@@ -164,6 +164,10 @@
SG(request_info).post_entry->post_handler(SG(request_info).content_type_dup, arg);
efree(SG(request_info).content_type_dup);
SG(request_info).content_type_dup = NULL;
+
+ if (ZEND_HAS_OOM()) {
+ zend_handle_delayed_oom();
+ }
}
}
diff -Nru php8.4-8.4.26/main/fopen_wrappers.c php8.4-8.4.27/main/fopen_wrappers.c
--- php8.4-8.4.26/main/fopen_wrappers.c 2026-09-22 15:00:02.000000000 +0000
+++ php8.4-8.4.27/main/fopen_wrappers.c 2026-10-19 14:38:59.000000000 +0000
@@ -151,6 +151,14 @@
size_t path_len;
int nesting_level = 0;
+#ifdef PHP_WIN32
+ /* Preserve the working-directory permission check for bare NUL. */
+ if ((strcasecmp(path, "NUL") == 0 || strcasecmp(path, "NUL:") == 0)
+ && php_check_specific_open_basedir(basedir, ".") == 0) {
+ return 0;
+ }
+#endif
+
/* Special case basedir==".": Use script-directory */
if (strcmp(basedir, ".") || !VCWD_GETCWD(local_open_basedir, MAXPATHLEN)) {
/* Else use the unmodified path */
diff -Nru php8.4-8.4.26/main/main.c php8.4-8.4.27/main/main.c
--- php8.4-8.4.26/main/main.c 2026-09-22 15:00:02.000000000 +0000
+++ php8.4-8.4.27/main/main.c 2026-10-19 14:38:59.000000000 +0000
@@ -335,6 +335,30 @@
}
/* }}} */
+static PHP_INI_MH(OnChangeMemoryHardLimitPercent)
+{
+ zend_long value;
+ if (new_value) {
+ value = zend_ini_parse_quantity_warn(new_value, entry->name);
+ } else {
+ value = -1; /* default: 200% if memory limit < 1G, fixed 1G buffer otherwise */
+ }
+
+ if (value < 100 && value != -1) {
+ zend_error(E_WARNING, "memory_hard_limit_percent must be >= 100, or -1");
+ return FAILURE;
+ }
+
+ if (zend_set_memory_hard_limit_percent(value) == FAILURE) {
+ if (stage != ZEND_INI_STAGE_DEACTIVATE) {
+ zend_error(E_WARNING, "Failed to set memory_hard_limit_percent to " ZEND_LONG_FMT, value);
+ return FAILURE;
+ }
+ }
+
+ return SUCCESS;
+}
+
/* {{{ PHP_INI_MH */
static PHP_INI_MH(OnSetLogFilter)
{
@@ -801,6 +825,7 @@
STD_PHP_INI_ENTRY("mail.log", NULL, PHP_INI_SYSTEM|PHP_INI_PERDIR, OnUpdateMailLog, mail_log, php_core_globals, core_globals)
PHP_INI_ENTRY("browscap", NULL, PHP_INI_SYSTEM, OnChangeBrowscap)
PHP_INI_ENTRY("memory_limit", "128M", PHP_INI_ALL, OnChangeMemoryLimit)
+ PHP_INI_ENTRY("memory_hard_limit_percent", NULL, PHP_INI_ALL, OnChangeMemoryHardLimitPercent)
PHP_INI_ENTRY("precision", "14", PHP_INI_ALL, OnSetPrecision)
PHP_INI_ENTRY("sendmail_from", NULL, PHP_INI_ALL, NULL)
PHP_INI_ENTRY("sendmail_path", DEFAULT_SENDMAIL_PATH, PHP_INI_SYSTEM, NULL)
@@ -1005,6 +1030,10 @@
zend_string *message;
int is_function = 0;
+ if (ZEND_HAS_OOM()) {
+ return;
+ }
+
/* get error text into buffer and escape for html if necessary */
zend_string *buffer = vstrpprintf(0, format, args);
@@ -1333,7 +1362,10 @@
PG(last_error_lineno) = error_lineno;
}
- if (zend_alloc_in_memory_limit_error_reporting()) {
+ /* Discarding the output buffers frees every handler on the stack, which is
+ * not safe while one of them is running */
+ if (zend_alloc_in_memory_limit_error_reporting()
+ && !(php_output_get_status() & PHP_OUTPUT_LOCKED)) {
php_output_discard_all();
}
@@ -1441,7 +1473,7 @@
case E_PARSE:
case E_COMPILE_ERROR:
case E_USER_ERROR:
- EG(exit_status) = 255;
+ EG(exit_status) = zend_mm_max_allocs_hit() ? ZEND_MM_MAX_ALLOCS_EXIT_STATUS : 255;
if (module_initialized) {
if (!PG(display_errors) &&
!SG(headers_sent) &&
@@ -1834,6 +1866,7 @@
PG(in_user_include) = 0;
zend_activate();
+ php_basic_early_rinit();
sapi_activate();
#ifdef ZEND_SIGNALS
@@ -1879,6 +1912,11 @@
SG(sapi_started) = 1;
+ char *max = getenv("ZEND_MM_MAX_ALLOCS");
+ if (max) {
+ zend_mm_set_max_allocs(ZEND_ATOL(max));
+ }
+
return retval;
}
/* }}} */
@@ -1889,6 +1927,7 @@
bool report_memleaks;
EG(flags) |= EG_FLAGS_IN_SHUTDOWN;
+ EG(delayed_oom).state = ZEND_OOM_STATE_NONE;
report_memleaks = PG(report_memleaks);
@@ -1945,6 +1984,8 @@
for (i=0; iptr, klen);
val = estrndup(ksep, vlen);
+ if (ZEND_HAS_OOM()) {
+ efree(val);
+ return 0;
+ }
if (vlen) {
vlen = php_url_decode(val, vlen);
}
@@ -383,6 +394,10 @@
if (sapi_module.input_filter(PARSE_POST, var->ptr, &val, vlen, &new_vlen)) {
php_register_variable_safe(var->ptr, val, new_vlen, arr);
}
+ if (ZEND_HAS_OOM()) {
+ efree(val);
+ return 0;
+ }
efree(val);
var->ptr = vsep + (vsep != var->end);
@@ -404,6 +419,12 @@
max_vars);
return FAILURE;
}
+ if (ZEND_HAS_OOM()) {
+ return FAILURE;
+ }
+ }
+ if (ZEND_HAS_OOM()) {
+ return FAILURE;
}
if (!eof && ZSTR_VAL(vars->str.s) != vars->ptr) {
@@ -433,6 +454,11 @@
if (len > 0) {
smart_str_appendl(&post_data.str, buf, len);
+ if (ZEND_HAS_OOM()) {
+ smart_str_free(&post_data.str);
+ return;
+ }
+
if (SUCCESS != add_post_vars(arr, &post_data, 0)) {
smart_str_free(&post_data.str);
return;
@@ -473,7 +499,7 @@
case PARSE_POST:
case PARSE_GET:
case PARSE_COOKIE:
- array_init(&array);
+ array_init_singleton(&array);
switch (arg) {
case PARSE_POST:
zval_ptr_dtor_nogc(&PG(http_globals)[TRACK_VARS_POST]);
diff -Nru php8.4-8.4.26/main/php_version.h php8.4-8.4.27/main/php_version.h
--- php8.4-8.4.26/main/php_version.h 2026-09-22 15:00:02.000000000 +0000
+++ php8.4-8.4.27/main/php_version.h 2026-10-19 14:38:59.000000000 +0000
@@ -2,7 +2,7 @@
/* edit configure.ac to change version number */
#define PHP_MAJOR_VERSION 8
#define PHP_MINOR_VERSION 4
-#define PHP_RELEASE_VERSION 26
+#define PHP_RELEASE_VERSION 27
#define PHP_EXTRA_VERSION ""
-#define PHP_VERSION "8.4.26"
-#define PHP_VERSION_ID 80426
+#define PHP_VERSION "8.4.27"
+#define PHP_VERSION_ID 80427
diff -Nru php8.4-8.4.26/main/rfc1867.c php8.4-8.4.27/main/rfc1867.c
--- php8.4-8.4.26/main/rfc1867.c 2026-09-22 15:00:02.000000000 +0000
+++ php8.4-8.4.27/main/rfc1867.c 2026-10-19 14:38:59.000000000 +0000
@@ -52,7 +52,7 @@
PHPAPI zend_result (*php_rfc1867_callback)(unsigned int event, void *event_data, void **extra) = NULL;
-static void safe_php_register_variable(char *var, char *strval, size_t val_len, zval *track_vars_array, bool override_protection);
+static bool safe_php_register_variable(char *var, char *strval, size_t val_len, zval *track_vars_array, bool override_protection);
/* The longest property name we use in an uploaded file array */
#define MAX_SIZE_OF_INDEX sizeof("[full_path]")
@@ -118,10 +118,11 @@
}
/* }}} */
-static void add_protected_variable(char *varname) /* {{{ */
+static bool add_protected_variable(char *varname) /* {{{ */
{
normalize_protected_variable(varname);
zend_hash_str_add_empty_element(&PG(rfc1867_protected_variables), varname, strlen(varname));
+ return !ZEND_HAS_OOM();
}
/* }}} */
@@ -132,31 +133,33 @@
}
/* }}} */
-static void safe_php_register_variable(char *var, char *strval, size_t val_len, zval *track_vars_array, bool override_protection) /* {{{ */
+static bool safe_php_register_variable(char *var, char *strval, size_t val_len, zval *track_vars_array, bool override_protection) /* {{{ */
{
if (override_protection || !is_protected_variable(var)) {
php_register_variable_safe(var, strval, val_len, track_vars_array);
}
+ return !ZEND_HAS_OOM();
}
/* }}} */
-static void safe_php_register_variable_ex(char *var, zval *val, zval *track_vars_array, bool override_protection) /* {{{ */
+static bool safe_php_register_variable_ex(char *var, zval *val, zval *track_vars_array, bool override_protection) /* {{{ */
{
if (override_protection || !is_protected_variable(var)) {
php_register_variable_ex(var, val, track_vars_array);
}
+ return !ZEND_HAS_OOM();
}
/* }}} */
-static void register_http_post_files_variable(char *strvar, char *val, zval *http_post_files, bool override_protection) /* {{{ */
+static bool register_http_post_files_variable(char *strvar, char *val, zval *http_post_files, bool override_protection) /* {{{ */
{
- safe_php_register_variable(strvar, val, strlen(val), http_post_files, override_protection);
+ return safe_php_register_variable(strvar, val, strlen(val), http_post_files, override_protection);
}
/* }}} */
-static void register_http_post_files_variable_ex(char *var, zval *val, zval *http_post_files, bool override_protection) /* {{{ */
+static bool register_http_post_files_variable_ex(char *var, zval *val, zval *http_post_files, bool override_protection) /* {{{ */
{
- safe_php_register_variable_ex(var, val, http_post_files, override_protection);
+ return safe_php_register_variable_ex(var, val, http_post_files, override_protection);
}
/* }}} */
@@ -221,6 +224,11 @@
self->buf_begin = self->buffer;
+ zend_long post_max_size = REQUEST_PARSE_BODY_OPTION_GET(post_max_size, SG(post_max_size));
+ if (post_max_size > 0 && SG(read_post_bytes) > post_max_size) {
+ return 0;
+ }
+
/* calculate the free space in the buffer */
bytes_to_read = self->bufsize - self->bytes_in_buffer;
@@ -368,6 +376,14 @@
return 0;
}
+static bool php_mime_should_save_hdr(const char *name)
+{
+ return !strcasecmp(name, "Content-Disposition")
+ || !strcasecmp(name, "Content-Type");
+}
+
+static char *php_mime_get_hdr_value(zend_llist header, char *key);
+
/* parse headers */
static int multipart_buffer_headers(multipart_buffer *self, zend_llist *header)
{
@@ -408,15 +424,25 @@
}
*value = '\0';
- do { value++; } while (isspace((unsigned char)*value));
- key = estrdup(line);
- smart_string_appends(&buf_value, value);
+ /* Keep only headers we use, and ignore duplicates */
+ if (!php_mime_should_save_hdr(line)
+ || php_mime_get_hdr_value(*header, line)) {
+ key = NULL;
+ } else {
+ key = estrdup(line);
+ do { value++; } while (isspace((unsigned char)*value));
+ smart_string_appends(&buf_value, value);
+ }
} else if (buf_value.c) { /* If no ':' on the line, add to previous line */
smart_string_appends(&buf_value, line);
} else {
continue;
}
+
+ if (ZEND_HAS_OOM()) {
+ goto oom;
+ }
}
if (buf_value.c && key) {
@@ -428,6 +454,13 @@
}
return 1;
+
+oom:
+ if (key) {
+ efree(key);
+ }
+ smart_string_free(&buf_value);
+ return 0;
}
static char *php_mime_get_hdr_value(zend_llist header, char *key)
@@ -485,11 +518,11 @@
return res;
}
-static char *substring_conf(char *start, int len, char quote)
+static char *substring_conf(char *start, size_t len, char quote)
{
char *result = emalloc(len + 1);
char *resp = result;
- int i;
+ size_t i;
for (i = 0; i < len && start[i] != quote; ++i) {
if (start[i] == '\\' && (start[i + 1] == '\\' || (quote && start[i + 1] == quote))) {
@@ -517,14 +550,14 @@
char quote = *str;
str++;
- return substring_conf(str, (int)strlen(str), quote);
+ return substring_conf(str, strlen(str), quote);
} else {
char *strend = str;
while (*strend && !isspace((unsigned char)*strend)) {
++strend;
}
- return substring_conf(str, strend - str, 0);
+ return substring_conf(str, (size_t)(strend - str), 0);
}
}
@@ -629,7 +662,11 @@
size_t total_bytes=0, read_bytes=0;
while((read_bytes = multipart_buffer_read(self, buf, sizeof(buf), NULL))) {
- out = erealloc(out, total_bytes + read_bytes + 1);
+ char *new_out = safe_ferealloc(out, 1, total_bytes, read_bytes + 1, /* fallible */ true);
+ if (!new_out) {
+ break;
+ }
+ out = new_out;
memcpy(out + total_bytes, buf, read_bytes);
total_bytes += read_bytes;
}
@@ -773,6 +810,9 @@
if (php_rfc1867_callback(MULTIPART_EVENT_START, &event_start, &event_extra_data) == FAILURE) {
goto fileupload_done;
}
+ if (ZEND_HAS_OOM()) {
+ goto fileupload_done;
+ }
}
while (!multipart_buffer_eof(mbuff))
@@ -784,6 +824,11 @@
zend_llist_clean(&header);
+ if (ZEND_HAS_OOM()) {
+ /* A previous body part has reached the soft memory limit: Stop here */
+ goto fileupload_done;
+ }
+
if (!multipart_buffer_headers(mbuff, &header)) {
goto fileupload_done;
}
@@ -805,6 +850,11 @@
{
char *key = NULL, *word = pair;
+ if (ZEND_HAS_OOM()) {
+ efree(word);
+ break;
+ }
+
while (isspace((unsigned char)*cd)) {
++cd;
}
@@ -812,6 +862,12 @@
if (strchr(pair, '=')) {
key = getword(mbuff->input_encoding, &pair, '=');
+ if (ZEND_HAS_OOM()) {
+ efree(word);
+ efree(key);
+ break;
+ }
+
if (!strcasecmp(key, "name")) {
if (param) {
efree(param);
@@ -839,6 +895,12 @@
}
}
}
+
+ if (ZEND_HAS_OOM()) {
+ efree(word);
+ efree(key);
+ break;
+ }
}
if (key) {
efree(key);
@@ -846,12 +908,30 @@
efree(word);
}
+ if (ZEND_HAS_OOM()) {
+ if (filename) {
+ efree(filename);
+ }
+ if (param) {
+ efree(param);
+ }
+ goto fileupload_done;
+ }
+
/* Normal form variable, safe to read all data into memory */
if (!filename && param) {
size_t value_len;
char *value = multipart_buffer_read_body(mbuff, &value_len);
size_t new_val_len; /* Dummy variable */
+ if (ZEND_HAS_OOM()) {
+ if (value) {
+ efree(value);
+ }
+ efree(param);
+ goto fileupload_done;
+ }
+
if (!value) {
value = estrdup("");
value_len = 0;
@@ -868,6 +948,12 @@
}
if (++count <= max_input_vars && sapi_module.input_filter(PARSE_POST, param, &value, value_len, &new_val_len)) {
+ if (ZEND_HAS_OOM()) {
+ efree(param);
+ efree(value);
+ goto fileupload_done;
+ }
+
if (php_rfc1867_callback != NULL) {
multipart_event_formdata event_formdata;
size_t newlength = new_val_len;
@@ -882,9 +968,18 @@
efree(value);
continue;
}
+ if (ZEND_HAS_OOM()) {
+ efree(param);
+ efree(value);
+ goto fileupload_done;
+ }
new_val_len = newlength;
}
- safe_php_register_variable(param, value, new_val_len, array_ptr, 0);
+ if (!safe_php_register_variable(param, value, new_val_len, array_ptr, 0)) {
+ efree(param);
+ efree(value);
+ goto fileupload_done;
+ }
} else {
if (count == max_input_vars + 1) {
EMIT_WARNING_OR_ERROR("Input variables exceeded " ZEND_LONG_FMT ". To increase the limit change max_input_vars in php.ini.", max_input_vars);
@@ -899,6 +994,11 @@
event_formdata.length = value_len;
event_formdata.newlength = NULL;
php_rfc1867_callback(MULTIPART_EVENT_FORMDATA, &event_formdata, &event_extra_data);
+ if (ZEND_HAS_OOM()) {
+ efree(param);
+ efree(value);
+ goto fileupload_done;
+ }
}
}
@@ -976,6 +1076,11 @@
efree(filename);
continue;
}
+ if (ZEND_HAS_OOM()) {
+ efree(param);
+ efree(filename);
+ goto fileupload_done;
+ }
}
if (skip_upload) {
@@ -1026,6 +1131,10 @@
cancel_upload = PHP_UPLOAD_ERROR_X;
continue;
}
+ if (ZEND_HAS_OOM()) {
+ cancel_upload = PHP_UPLOAD_ERROR_X;
+ continue;
+ }
}
if (upload_max_filesize > 0 && (zend_long)(total_bytes+blen) > upload_max_filesize) {
@@ -1092,6 +1201,9 @@
if (php_rfc1867_callback(MULTIPART_EVENT_FILE_END, &event_file_end, &event_extra_data) == FAILURE) {
cancel_upload = PHP_UPLOAD_ERROR_X;
}
+ if (ZEND_HAS_OOM()) {
+ cancel_upload = PHP_UPLOAD_ERROR_X;
+ }
}
if (cancel_upload) {
@@ -1106,6 +1218,12 @@
zend_hash_add_ptr(SG(rfc1867_uploaded_files), temp_filename, temp_filename);
}
+ if (ZEND_HAS_OOM()) {
+ efree(filename);
+ efree(param);
+ goto fileupload_done;
+ }
+
/* is_arr_upload is true when name of file upload field
* ends in [.*]
* start_arr is set to point to 1st [ */
@@ -1117,18 +1235,36 @@
efree(array_index);
}
array_index = estrndup(start_arr + 1, array_len - 2);
+
+ if (ZEND_HAS_OOM()) {
+ efree(filename);
+ efree(param);
+ goto fileupload_done;
+ }
}
/* Add $foo_name */
if (llen < strlen(param) + MAX_SIZE_OF_INDEX + 1) {
- llen = (int)strlen(param);
- lbuf = (char *) safe_erealloc(lbuf, llen, 1, MAX_SIZE_OF_INDEX + 1);
+ unsigned int new_llen = (int)strlen(param);
+ char *new_lbuf = (char *) safe_ferealloc(lbuf, new_llen, 1, MAX_SIZE_OF_INDEX + 1, /* fallible */ true);
+ if (!new_lbuf) {
+ efree(filename);
+ efree(param);
+ goto fileupload_done;
+ }
+ llen = new_llen;
+ lbuf = new_lbuf;
llen += MAX_SIZE_OF_INDEX + 1;
}
if (is_arr_upload) {
if (abuf) efree(abuf);
abuf = estrndup(param, strlen(param)-array_len);
+ if (ZEND_HAS_OOM()) {
+ efree(filename);
+ efree(param);
+ goto fileupload_done;
+ }
snprintf(lbuf, llen, "%s_name[%s]", abuf, array_index);
} else {
snprintf(lbuf, llen, "%s_name", param);
@@ -1150,7 +1286,9 @@
} else {
snprintf(lbuf, llen, "%s[name]", param);
}
- register_http_post_files_variable(lbuf, s, &PG(http_globals)[TRACK_VARS_FILES], 0);
+ if (!register_http_post_files_variable(lbuf, s, &PG(http_globals)[TRACK_VARS_FILES], 0)) {
+ goto oom_with_filename;
+ }
s = NULL;
/* Add full path of supplied file for folder uploads via
@@ -1162,7 +1300,9 @@
} else {
snprintf(lbuf, llen, "%s[full_path]", param);
}
- register_http_post_files_variable(lbuf, filename, &PG(http_globals)[TRACK_VARS_FILES], 0);
+ if (!register_http_post_files_variable(lbuf, filename, &PG(http_globals)[TRACK_VARS_FILES], 0)) {
+ goto oom_with_filename;
+ }
efree(filename);
/* Possible Content-Type: */
@@ -1182,7 +1322,9 @@
} else {
snprintf(lbuf, llen, "%s[type]", param);
}
- register_http_post_files_variable(lbuf, cd, &PG(http_globals)[TRACK_VARS_FILES], 0);
+ if (!register_http_post_files_variable(lbuf, cd, &PG(http_globals)[TRACK_VARS_FILES], 0)) {
+ goto oom_with_param;
+ }
/* Restore Content-Type Header */
if (s != NULL) {
@@ -1196,7 +1338,9 @@
zval zfilename;
/* Initialize variables */
- add_protected_variable(param);
+ if (!add_protected_variable(param)) {
+ goto oom_with_param;
+ }
/* Add $foo[tmp_name] */
if (is_arr_upload) {
@@ -1204,13 +1348,17 @@
} else {
snprintf(lbuf, llen, "%s[tmp_name]", param);
}
- add_protected_variable(lbuf);
+ if (!add_protected_variable(lbuf)) {
+ goto oom_with_param;
+ }
if (temp_filename) {
ZVAL_STR_COPY(&zfilename, temp_filename);
} else {
ZVAL_EMPTY_STRING(&zfilename);
}
- register_http_post_files_variable_ex(lbuf, &zfilename, &PG(http_globals)[TRACK_VARS_FILES], 1);
+ if (!register_http_post_files_variable_ex(lbuf, &zfilename, &PG(http_globals)[TRACK_VARS_FILES], 1)) {
+ goto oom_with_param;
+ }
}
{
@@ -1248,7 +1396,9 @@
} else {
snprintf(lbuf, llen, "%s[error]", param);
}
- register_http_post_files_variable_ex(lbuf, &error_type, &PG(http_globals)[TRACK_VARS_FILES], 0);
+ if (!register_http_post_files_variable_ex(lbuf, &error_type, &PG(http_globals)[TRACK_VARS_FILES], 0)) {
+ goto oom_with_param;
+ }
/* Add $foo[size] */
if (is_arr_upload) {
@@ -1259,13 +1409,25 @@
if (size_overflow) {
ZVAL_STRING(&file_size, file_size_buf);
}
- register_http_post_files_variable_ex(lbuf, &file_size, &PG(http_globals)[TRACK_VARS_FILES], size_overflow);
+ if (!register_http_post_files_variable_ex(lbuf, &file_size, &PG(http_globals)[TRACK_VARS_FILES], size_overflow)) {
+ goto oom_with_param;
+ }
}
efree(param);
+ continue;
+
+oom_with_filename:
+ efree(filename);
+oom_with_param:
+ efree(param);
+ goto fileupload_done;
}
}
fileupload_done:
+ if (post_max_size > 0 && SG(read_post_bytes) > post_max_size) {
+ sapi_module.sapi_error(E_WARNING, "Actual POST length does not match Content-Length, and exceeds " ZEND_LONG_FMT " bytes", post_max_size);
+ }
if (php_rfc1867_callback != NULL) {
multipart_event_end event_end;
diff -Nru php8.4-8.4.26/main/snprintf.c php8.4-8.4.27/main/snprintf.c
--- php8.4-8.4.26/main/snprintf.c 2026-09-22 15:00:02.000000000 +0000
+++ php8.4-8.4.27/main/snprintf.c 2026-10-19 14:38:59.000000000 +0000
@@ -830,7 +830,7 @@
}
s = ap_php_conv_p2(ui_num, 4, *fmt, &num_buf[NUM_BUF_SIZE], &s_len);
FIX_PRECISION(adjust_precision, precision, s, s_len);
- if (alternate_form && i_num != 0) {
+ if (alternate_form && ui_num != 0) {
*--s = *fmt; /* 'x' or 'X' */
*--s = '0';
s_len += 2;
diff -Nru php8.4-8.4.26/main/streams/memory.c php8.4-8.4.27/main/streams/memory.c
--- php8.4-8.4.26/main/streams/memory.c 2026-09-22 15:00:02.000000000 +0000
+++ php8.4-8.4.27/main/streams/memory.c 2026-10-19 14:38:59.000000000 +0000
@@ -55,7 +55,11 @@
ms->fpos = data_len;
}
if (ms->fpos + count > data_len) {
- ms->data = zend_string_realloc(ms->data, ms->fpos + count, 0);
+ zend_string *grown = zend_string_frealloc(ms->data, ms->fpos + count, 0, /* fallible */ true);
+ if (UNEXPECTED(!grown)) {
+ return (ssize_t) -1;
+ }
+ ms->data = grown;
if (ms->fpos > data_len) {
/* zero the bytes added due to seek past end position */
memset(ZSTR_VAL(ms->data) + data_len, 0, ms->fpos - data_len);
@@ -239,13 +243,21 @@
}
newsize = *(size_t*)ptrparam;
if (newsize <= ZSTR_LEN(ms->data)) {
- ms->data = zend_string_truncate(ms->data, newsize, 0);
+ zend_string *new_data = zend_string_ftruncate(ms->data, newsize, 0, /* fallible */ true);
+ if (UNEXPECTED(!new_data)) {
+ return PHP_STREAM_OPTION_RETURN_ERR;
+ }
+ ms->data = new_data;
if (newsize < ms->fpos) {
ms->fpos = newsize;
}
} else {
size_t old_size = ZSTR_LEN(ms->data);
- ms->data = zend_string_realloc(ms->data, newsize, 0);
+ zend_string *new_data = zend_string_frealloc(ms->data, newsize, 0, /* fallible */ true);
+ if (UNEXPECTED(!new_data)) {
+ return PHP_STREAM_OPTION_RETURN_ERR;
+ }
+ ms->data = new_data;
memset(ZSTR_VAL(ms->data) + old_size, 0, newsize - old_size);
}
ZSTR_VAL(ms->data)[ZSTR_LEN(ms->data)] = '\0';
diff -Nru php8.4-8.4.26/main/streams/streams.c php8.4-8.4.27/main/streams/streams.c
--- php8.4-8.4.26/main/streams/streams.c 2026-09-22 15:00:02.000000000 +0000
+++ php8.4-8.4.27/main/streams/streams.c 2026-10-19 14:38:59.000000000 +0000
@@ -79,17 +79,14 @@
fprintf(stderr, "forget_persistent: %s:%p\n", stream->ops->label, stream);
#endif
+ /* Request resources have been destroyed; clear their stale pointers. */
stream->res = NULL;
-
- if (stream->ctx) {
- zend_list_delete(stream->ctx);
- stream->ctx = NULL;
- }
+ stream->ctx = NULL;
return 0;
}
-PHP_RSHUTDOWN_FUNCTION(streams)
+ZEND_MODULE_POST_ZEND_DEACTIVATE_D(streams)
{
zval *el;
@@ -574,7 +571,10 @@
php_stream_bucket_brigade *brig_inp = &brig_in, *brig_outp = &brig_out, *brig_swap;
/* allocate a buffer for reading chunks */
- chunk_buf = emalloc(stream->chunk_size);
+ chunk_buf = femalloc(stream->chunk_size, /* fallible */ true);
+ if (UNEXPECTED(!chunk_buf)) {
+ return FAILURE;
+ }
while (!stream->eof && (stream->writepos - stream->readpos < (zend_off_t)to_read_now)) {
ssize_t justread = 0;
@@ -634,9 +634,20 @@
}
/* grow buffer to hold this bucket */
if (stream->readbuflen - stream->writepos < bucket->buflen) {
- stream->readbuflen += bucket->buflen;
- stream->readbuf = perealloc(stream->readbuf, stream->readbuflen,
- stream->is_persistent);
+ /* A filter's output is unbounded relative to its input. */
+ size_t newlen = stream->readbuflen + bucket->buflen;
+ unsigned char *newbuf = fperealloc(stream->readbuf, newlen,
+ stream->is_persistent, /* fallible */ true);
+ if (UNEXPECTED(!newbuf)) {
+ while (brig_inp->head) {
+ bucket = brig_inp->head;
+ php_stream_bucket_unlink(bucket);
+ php_stream_bucket_delref(bucket);
+ }
+ break;
+ }
+ stream->readbuf = newbuf;
+ stream->readbuflen = newlen;
}
if (bucket->buflen) {
memcpy(stream->readbuf + stream->writepos, bucket->buf, bucket->buflen);
@@ -705,9 +716,14 @@
/* grow the buffer if required
* TODO: this can fail for persistent streams */
if (stream->readbuflen - stream->writepos < stream->chunk_size) {
- stream->readbuflen += stream->chunk_size;
- stream->readbuf = perealloc(stream->readbuf, stream->readbuflen,
- stream->is_persistent);
+ size_t newlen = stream->readbuflen + stream->chunk_size;
+ unsigned char *newbuf = fperealloc(stream->readbuf, newlen,
+ stream->is_persistent, /* fallible */ true);
+ if (UNEXPECTED(!newbuf)) {
+ return FAILURE;
+ }
+ stream->readbuf = newbuf;
+ stream->readbuflen = newlen;
}
justread = stream->ops->read(stream, (char*)stream->readbuf + stream->writepos,
@@ -820,7 +836,10 @@
* to the copy_to_mem() operation, but only performs a single direct read. */
PHPAPI zend_string *php_stream_read_to_str(php_stream *stream, size_t len)
{
- zend_string *str = zend_string_alloc(len, 0);
+ zend_string *str = zend_string_falloc(len, 0, /* fallible */ true);
+ if (UNEXPECTED(!str)) {
+ return NULL;
+ }
ssize_t read = php_stream_read(stream, ZSTR_VAL(str), len);
if (read < 0) {
zend_string_efree(str);
@@ -995,6 +1014,9 @@
}
if (grow_mode) {
+ if (ZEND_HAS_OOM()) {
+ break;
+ }
/* allow room for a NUL. If this realloc is really a realloc
* (ie: second time around), we get an extra byte. In most
* cases, with the default chunk size of 8K, we will only
@@ -1170,7 +1192,10 @@
}
}
- ret_buf = zend_string_alloc(tent_ret_len, 0);
+ ret_buf = zend_string_falloc(tent_ret_len, 0, /* fallible */ true);
+ if (UNEXPECTED(!ret_buf)) {
+ return NULL;
+ }
/* php_stream_read will not call ops->read here because the necessary
* data is guaranteed to be buffered */
ZSTR_LEN(ret_buf) = php_stream_read(stream, ZSTR_VAL(ret_buf), tent_ret_len);
@@ -1540,6 +1565,9 @@
if (p) {
do {
+ if (ZEND_HAS_OOM()) {
+ break;
+ }
/* output functions return int, so pass in int max */
if (0 < (b = PHPWRITE(p + bcount, MIN(mapped - bcount, INT_MAX)))) {
bcount += b;
@@ -1553,6 +1581,9 @@
}
while ((b = php_stream_read(stream, buf, sizeof(buf))) > 0) {
+ if (ZEND_HAS_OOM()) {
+ break;
+ }
PHPWRITE(buf, b);
bcount += b;
}
@@ -1584,7 +1615,10 @@
}
if (maxlen > 0 && maxlen < 4 * CHUNK_SIZE) {
- result = zend_string_alloc(maxlen, persistent);
+ result = zend_string_falloc(maxlen, persistent, /* fallible */ true);
+ if (UNEXPECTED(!result)) {
+ return NULL;
+ }
ptr = ZSTR_VAL(result);
while ((len < maxlen) && !php_stream_eof(src)) {
ret = php_stream_read(src, ptr, maxlen - len);
@@ -1625,7 +1659,10 @@
buflen = step;
}
- result = zend_string_alloc(buflen, persistent);
+ result = zend_string_falloc(buflen, persistent, /* fallible */ true);
+ if (UNEXPECTED(!result)) {
+ return NULL;
+ }
ptr = ZSTR_VAL(result);
// TODO: Propagate error?
@@ -1640,7 +1677,12 @@
} else {
buflen += step;
}
- result = zend_string_extend(result, buflen, persistent);
+ zend_string *grown = zend_string_fextend(result, buflen, persistent, /* fallible */ true);
+ if (UNEXPECTED(!grown)) {
+ zend_string_free(result);
+ return NULL;
+ }
+ result = grown;
ptr = ZSTR_VAL(result) + len;
} else {
ptr += ret;
diff -Nru php8.4-8.4.26/run-tests.php php8.4-8.4.27/run-tests.php
--- php8.4-8.4.26/run-tests.php 2026-09-22 15:00:02.000000000 +0000
+++ php8.4-8.4.27/run-tests.php 2026-10-19 14:38:59.000000000 +0000
@@ -602,7 +602,7 @@
$show_progress = false;
break;
case '--version':
- echo '$Id: dfb07a465bd59fa6ae2c4ecade7612ae76d6d4af $' . "\n";
+ echo '$Id: f684caf932ce8e4bd0c9b9db20c88464eacee17c $' . "\n";
exit(1);
default:
@@ -1239,12 +1239,16 @@
}
}
- $stat = proc_get_status($proc);
+ do {
+ $stat = proc_get_status($proc);
+ if ($stat['running']) {
+ usleep(1000);
+ }
+ } while ($stat['running']);
if ($stat['signaled']) {
- $data .= "\nTermsig=" . $stat['stopsig'] . "\n";
- }
- if ($stat["exitcode"] > 128 && $stat["exitcode"] < 160) {
+ $data .= "\nTermsig=" . $stat['termsig'] . "\n";
+ } else if ($stat["exitcode"] > 128 && $stat["exitcode"] < 160) {
$data .= "\nTermsig=" . ($stat["exitcode"] - 128) . "\n";
} else if (defined('PHP_WINDOWS_VERSION_MAJOR') && (($stat["exitcode"] >> 28) & 0b1111) === 0b1100) {
// https://docs.microsoft.com/en-us/openspecs/windows_protocols/ms-erref/87fba13e-bf06-450e-83b1-9241dc81e781
diff -Nru php8.4-8.4.26/sapi/cli/php_cli.c php8.4-8.4.27/sapi/cli/php_cli.c
--- php8.4-8.4.26/sapi/cli/php_cli.c 2026-09-22 15:00:02.000000000 +0000
+++ php8.4-8.4.27/sapi/cli/php_cli.c 2026-10-19 14:38:59.000000000 +0000
@@ -356,6 +356,15 @@
}
/* }}} */
+static int sapi_cli_activate(void) /* {{{ */
+{
+#if defined(PHP_WIN32) && defined(ZTS)
+ ZEND_TSRMLS_CACHE_UPDATE();
+#endif
+ return SUCCESS;
+}
+/* }}} */
+
static int sapi_cli_deactivate(void) /* {{{ */
{
fflush(stdout);
@@ -420,7 +429,7 @@
php_cli_startup, /* startup */
php_module_shutdown_wrapper, /* shutdown */
- NULL, /* activate */
+ sapi_cli_activate, /* activate */
sapi_cli_deactivate, /* deactivate */
sapi_cli_ub_write, /* unbuffered write */
diff -Nru php8.4-8.4.26/sapi/cli/php_cli_server.c php8.4-8.4.27/sapi/cli/php_cli_server.c
--- php8.4-8.4.26/sapi/cli/php_cli_server.c 2026-09-22 15:00:02.000000000 +0000
+++ php8.4-8.4.27/sapi/cli/php_cli_server.c 2026-10-19 14:38:59.000000000 +0000
@@ -1067,7 +1067,8 @@
static int php_cli_server_content_sender_send(php_cli_server_content_sender *sender, php_socket_t fd, size_t *nbytes_sent_total) /* {{{ */
{
php_cli_server_chunk *chunk, *next;
- size_t _nbytes_sent_total = 0;
+
+ *nbytes_sent_total = 0;
for (chunk = sender->buffer.first; chunk; chunk = next) {
#ifdef PHP_WIN32
@@ -1085,7 +1086,6 @@
nbytes_sent = send(fd, chunk->data.heap.p, chunk->data.heap.len, 0);
#endif
if (nbytes_sent < 0) {
- *nbytes_sent_total = _nbytes_sent_total;
return php_socket_errno();
#ifdef PHP_WIN32
} else if (nbytes_sent == chunk->data.heap.len) {
@@ -1101,8 +1101,10 @@
} else {
chunk->data.heap.p += nbytes_sent;
chunk->data.heap.len -= nbytes_sent;
+ *nbytes_sent_total += nbytes_sent;
+ return 0;
}
- _nbytes_sent_total += nbytes_sent;
+ *nbytes_sent_total += nbytes_sent;
break;
case PHP_CLI_SERVER_CHUNK_IMMORTAL:
@@ -1112,7 +1114,6 @@
nbytes_sent = send(fd, chunk->data.immortal.p, chunk->data.immortal.len, 0);
#endif
if (nbytes_sent < 0) {
- *nbytes_sent_total = _nbytes_sent_total;
return php_socket_errno();
#ifdef PHP_WIN32
} else if (nbytes_sent == chunk->data.immortal.len) {
@@ -1128,12 +1129,13 @@
} else {
chunk->data.immortal.p += nbytes_sent;
chunk->data.immortal.len -= nbytes_sent;
+ *nbytes_sent_total += nbytes_sent;
+ return 0;
}
- _nbytes_sent_total += nbytes_sent;
+ *nbytes_sent_total += nbytes_sent;
break;
}
}
- *nbytes_sent_total = _nbytes_sent_total;
return 0;
} /* }}} */
@@ -1970,9 +1972,13 @@
// Create a new php_network_populate_name_from_sockaddr_ex() API with a persistent flag?
zend_string *tmp_addr = NULL;
php_network_populate_name_from_sockaddr(addr, addr_len, &tmp_addr, NULL, 0);
- client->addr_str = zend_string_dup(tmp_addr, /* persistent */ true);
+ if (EXPECTED(tmp_addr != NULL)) {
+ client->addr_str = zend_string_dup(tmp_addr, /* persistent */ true);
+ zend_string_release_ex(tmp_addr, /* persistent */ false);
+ } else {
+ client->addr_str = zend_string_init(ZEND_STRL("-"), /* persistent */ true);
+ }
GC_MAKE_PERSISTENT_LOCAL(client->addr_str);
- zend_string_release_ex(tmp_addr, /* persistent */ false);
php_http_parser_init(&client->parser, PHP_HTTP_REQUEST);
client->request_read = false;
@@ -2185,6 +2191,11 @@
client->content_sender_initialized = true;
if (client->request.request_method != PHP_HTTP_HEAD) {
client->file_fd = fd;
+ } else {
+ /* Content-Length comes from the stat and no body is sent, so the fd is
+ not needed; it is still opened so HEAD gets the same 404 as GET on
+ an unreadable file. */
+ close(fd);
}
{
@@ -2712,7 +2723,7 @@
php_cli_server_client *client = NULL;
php_socket_t client_sock;
socklen_t socklen = server->socklen;
- struct sockaddr *sa = pemalloc(server->socklen, 1);
+ struct sockaddr *sa = pecalloc(1, server->socklen, 1);
client_sock = accept(server->server_sock, sa, &socklen);
if (!ZEND_VALID_SOCKET(client_sock)) {
pefree(sa, 1);
diff -Nru php8.4-8.4.26/sapi/cli/tests/oom_request_parsing_next_request.phpt php8.4-8.4.27/sapi/cli/tests/oom_request_parsing_next_request.phpt
--- php8.4-8.4.26/sapi/cli/tests/oom_request_parsing_next_request.phpt 1970-01-01 00:00:00.000000000 +0000
+++ php8.4-8.4.27/sapi/cli/tests/oom_request_parsing_next_request.phpt 2026-10-19 14:38:59.000000000 +0000
@@ -0,0 +1,36 @@
+--TEST--
+OOM during request parsing does not leak into the next request
+--FILE--
+
+--EXPECTF--
+bool(true)
+Foo
+
+Warning: Bar in %s on line %d
diff -Nru php8.4-8.4.26/sapi/cli/tests/oom_shutdown_function_next_request.phpt php8.4-8.4.27/sapi/cli/tests/oom_shutdown_function_next_request.phpt
--- php8.4-8.4.26/sapi/cli/tests/oom_shutdown_function_next_request.phpt 1970-01-01 00:00:00.000000000 +0000
+++ php8.4-8.4.27/sapi/cli/tests/oom_shutdown_function_next_request.phpt 2026-10-19 14:38:59.000000000 +0000
@@ -0,0 +1,37 @@
+--TEST--
+OOM raised after a shutdown function does not leak into the next request
+--FILE--
+
+--EXPECT--
+bool(true)
+Foo
diff -Nru php8.4-8.4.26/sapi/cli/tests/php_cli_server_ipv6_error_message.phpt php8.4-8.4.27/sapi/cli/tests/php_cli_server_ipv6_error_message.phpt
--- php8.4-8.4.26/sapi/cli/tests/php_cli_server_ipv6_error_message.phpt 2026-09-22 15:00:02.000000000 +0000
+++ php8.4-8.4.27/sapi/cli/tests/php_cli_server_ipv6_error_message.phpt 2026-10-19 14:38:59.000000000 +0000
@@ -14,8 +14,12 @@
2 => array("pipe", "w")
);
+$php = getenv('TEST_PHP_EXECUTABLE_ESCAPED');
+$args = getenv('TEST_PHP_EXTRA_ARGS');
+$cmd = "$php $args" . ' -S "[2001:db8::]:8080"';
+
$process = proc_open(
- PHP_BINARY . ' -S "[2001:db8::]:8080"',
+ $cmd,
$descriptorspec,
$pipes
);
diff -Nru php8.4-8.4.26/sapi/cli/tests/php_cli_server_reset_before_accept.phpt php8.4-8.4.27/sapi/cli/tests/php_cli_server_reset_before_accept.phpt
--- php8.4-8.4.26/sapi/cli/tests/php_cli_server_reset_before_accept.phpt 1970-01-01 00:00:00.000000000 +0000
+++ php8.4-8.4.27/sapi/cli/tests/php_cli_server_reset_before_accept.phpt 2026-10-19 14:38:59.000000000 +0000
@@ -0,0 +1,26 @@
+--TEST--
+Connection reset before it is accepted does not take the server down
+--EXTENSIONS--
+sockets
+--SKIPIF--
+
+--FILE--
+ 1, 'l_linger' => 0]);
+stream_socket_shutdown($fp, STREAM_SHUT_RD);
+fclose($fp);
+
+$fp = php_cli_server_connect();
+fwrite($fp, "GET / HTTP/1.1\r\nConnection: close\r\n\r\n");
+echo fgets($fp);
+fclose($fp);
+?>
+--EXPECT--
+HTTP/1.1 200 OK
diff -Nru php8.4-8.4.26/sapi/fpm/tests/bug77023-pm-dynamic-blocking-sigquit.phpt php8.4-8.4.27/sapi/fpm/tests/bug77023-pm-dynamic-blocking-sigquit.phpt
--- php8.4-8.4.26/sapi/fpm/tests/bug77023-pm-dynamic-blocking-sigquit.phpt 2026-09-22 15:00:02.000000000 +0000
+++ php8.4-8.4.27/sapi/fpm/tests/bug77023-pm-dynamic-blocking-sigquit.phpt 2026-10-19 14:38:59.000000000 +0000
@@ -2,6 +2,7 @@
FPM: Blocked SIGQUIT prevents idle process to be killed
--EXTENSIONS--
pcntl
+--FLAKY--
--SKIPIF--
+--FILE--
+ '100K']);
+var_dump(strlen($post['field']));
+EOT;
+
+$tester = new FPM\Tester($cfg, $code);
+$tester->start();
+$tester->expectLogStartNotices();
+echo $tester
+ ->request(method: 'PUT', stdin: [
+ 'parts' => [[
+ 'name' => 'field',
+ 'value' => str_repeat('x', 50 * 1024),
+ ]],
+ ])
+ ->getBody();
+$tester->terminate();
+$tester->expectLogTerminatingNotices();
+$tester->close();
+
+?>
+--EXPECT--
+int(51200)
+--CLEAN--
+
diff -Nru php8.4-8.4.26/sapi/fuzzer/fuzzer-sapi.c php8.4-8.4.27/sapi/fuzzer/fuzzer-sapi.c
--- php8.4-8.4.26/sapi/fuzzer/fuzzer-sapi.c 2026-09-22 15:00:02.000000000 +0000
+++ php8.4-8.4.27/sapi/fuzzer/fuzzer-sapi.c 2026-10-19 14:38:59.000000000 +0000
@@ -195,6 +195,8 @@
EG(exception) = NULL;
}
+ zend_mm_oom_info_dtor(&EG(delayed_oom));
+
/* Some fuzzers (like unserialize) may create circular structures. Make sure we free them.
* Two calls are performed to handle objects with destructors. */
zend_gc_collect_cycles();
@@ -273,6 +275,12 @@
if (execute) {
zend_execute(op_array, NULL);
}
+ if (ZEND_HAS_OOM()) {
+ zend_handle_delayed_oom();
+ }
+ if (EG(exception)) {
+ zend_exception_error(EG(exception), E_WARNING);
+ }
zend_destroy_static_vars(op_array);
destroy_op_array(op_array);
efree(op_array);
diff -Nru php8.4-8.4.26/sapi/phpdbg/phpdbg.c php8.4-8.4.27/sapi/phpdbg/phpdbg.c
--- php8.4-8.4.26/sapi/phpdbg/phpdbg.c 2026-09-22 15:00:02.000000000 +0000
+++ php8.4-8.4.27/sapi/phpdbg/phpdbg.c 2026-10-19 14:38:59.000000000 +0000
@@ -1446,7 +1446,7 @@
if (php_request_startup() == FAILURE) {
PUTS("Could not startup");
- return 1;
+ goto phpdbg_out;
}
#ifndef _WIN32
diff -Nru php8.4-8.4.26/tests/basic/GHSA-2cv3-554h-jpmh_multipart.phpt php8.4-8.4.27/tests/basic/GHSA-2cv3-554h-jpmh_multipart.phpt
--- php8.4-8.4.26/tests/basic/GHSA-2cv3-554h-jpmh_multipart.phpt 1970-01-01 00:00:00.000000000 +0000
+++ php8.4-8.4.27/tests/basic/GHSA-2cv3-554h-jpmh_multipart.phpt 2026-10-19 14:38:59.000000000 +0000
@@ -0,0 +1,37 @@
+--TEST--
+GHSA-2cv3-554h-jpmh post_max_size bypass - multipart
+--EXTENSIONS--
+zend_test
+--INI--
+post_max_size=100K
+--FILE--
+
+--EXPECTF--
+int(7)
+
+Warning: Actual POST length does not match Content-Length, and exceeds 102400 bytes in %s on line %d
+bool(true)
diff -Nru php8.4-8.4.26/tests/basic/GHSA-2cv3-554h-jpmh_urlencoded.phpt php8.4-8.4.27/tests/basic/GHSA-2cv3-554h-jpmh_urlencoded.phpt
--- php8.4-8.4.26/tests/basic/GHSA-2cv3-554h-jpmh_urlencoded.phpt 1970-01-01 00:00:00.000000000 +0000
+++ php8.4-8.4.27/tests/basic/GHSA-2cv3-554h-jpmh_urlencoded.phpt 2026-10-19 14:38:59.000000000 +0000
@@ -0,0 +1,29 @@
+--TEST--
+GHSA-2cv3-554h-jpmh post_max_size bypass - application/x-www-form-urlencoded
+--EXTENSIONS--
+zend_test
+--INI--
+post_max_size=100K
+--FILE--
+
+--EXPECTF--
+int(5)
+
+Warning: zend_test_handle_post_data(): Actual POST length does not match Content-Length, and exceeds 102400 bytes in %s on line %d
+bool(true)
diff -Nru php8.4-8.4.26/tests/basic/GHSA-f883-x959-3vr9_001.phpt php8.4-8.4.27/tests/basic/GHSA-f883-x959-3vr9_001.phpt
--- php8.4-8.4.26/tests/basic/GHSA-f883-x959-3vr9_001.phpt 1970-01-01 00:00:00.000000000 +0000
+++ php8.4-8.4.27/tests/basic/GHSA-f883-x959-3vr9_001.phpt 2026-10-19 14:38:59.000000000 +0000
@@ -0,0 +1,20 @@
+--TEST--
+GHSA-f883-x959-3vr9 001
+--POST_RAW--
+Content-Type: multipart/form-data; boundary=b
+--b
+Content-Disposition: form-data; name="d1"
+
+test
+--b--
+--FILE--
+
+--EXPECT--
+array(1) {
+ ["d1"]=>
+ string(4) "test"
+}
diff -Nru php8.4-8.4.26/tests/basic/GHSA-f883-x959-3vr9_002.phpt php8.4-8.4.27/tests/basic/GHSA-f883-x959-3vr9_002.phpt
--- php8.4-8.4.26/tests/basic/GHSA-f883-x959-3vr9_002.phpt 1970-01-01 00:00:00.000000000 +0000
+++ php8.4-8.4.27/tests/basic/GHSA-f883-x959-3vr9_002.phpt 2026-10-19 14:38:59.000000000 +0000
@@ -0,0 +1,21 @@
+--TEST--
+GHSA-f883-x959-3vr9 002
+--POST_RAW--
+Content-Type: multipart/form-data; boundary=b
+--b
+Ignored: value
+Content-Disposition: form-data; name="d1"
+
+test
+--b--
+--FILE--
+
+--EXPECT--
+array(1) {
+ ["d1"]=>
+ string(4) "test"
+}
diff -Nru php8.4-8.4.26/tests/basic/GHSA-f883-x959-3vr9_003.phpt php8.4-8.4.27/tests/basic/GHSA-f883-x959-3vr9_003.phpt
--- php8.4-8.4.26/tests/basic/GHSA-f883-x959-3vr9_003.phpt 1970-01-01 00:00:00.000000000 +0000
+++ php8.4-8.4.27/tests/basic/GHSA-f883-x959-3vr9_003.phpt 2026-10-19 14:38:59.000000000 +0000
@@ -0,0 +1,21 @@
+--TEST--
+GHSA-f883-x959-3vr9 003
+--POST_RAW--
+Content-Type: multipart/form-data; boundary=b
+--b
+Content-Disposition: form-data; name="d1"
+Ignored: value
+
+test
+--b--
+--FILE--
+
+--EXPECT--
+array(1) {
+ ["d1"]=>
+ string(4) "test"
+}
diff -Nru php8.4-8.4.26/tests/basic/GHSA-f883-x959-3vr9_004.phpt php8.4-8.4.27/tests/basic/GHSA-f883-x959-3vr9_004.phpt
--- php8.4-8.4.26/tests/basic/GHSA-f883-x959-3vr9_004.phpt 1970-01-01 00:00:00.000000000 +0000
+++ php8.4-8.4.27/tests/basic/GHSA-f883-x959-3vr9_004.phpt 2026-10-19 14:38:59.000000000 +0000
@@ -0,0 +1,23 @@
+--TEST--
+GHSA-f883-x959-3vr9 004
+--POST_RAW--
+Content-Type: multipart/form-data; boundary=b
+--b
+Content-Disposition: form-data;
+ name="d1"
+Ignored: value
+ value
+
+test
+--b--
+--FILE--
+
+--EXPECT--
+array(1) {
+ ["d1"]=>
+ string(4) "test"
+}
diff -Nru php8.4-8.4.26/tests/basic/GHSA-f883-x959-3vr9_005.phpt php8.4-8.4.27/tests/basic/GHSA-f883-x959-3vr9_005.phpt
--- php8.4-8.4.26/tests/basic/GHSA-f883-x959-3vr9_005.phpt 1970-01-01 00:00:00.000000000 +0000
+++ php8.4-8.4.27/tests/basic/GHSA-f883-x959-3vr9_005.phpt 2026-10-19 14:38:59.000000000 +0000
@@ -0,0 +1,23 @@
+--TEST--
+GHSA-f883-x959-3vr9 005
+--POST_RAW--
+Content-Type: multipart/form-data; boundary=b
+--b
+Ignored: value
+ value
+Content-Disposition: form-data;
+ name="d1"
+
+test
+--b--
+--FILE--
+
+--EXPECT--
+array(1) {
+ ["d1"]=>
+ string(4) "test"
+}
diff -Nru php8.4-8.4.26/tests/basic/GHSA-f883-x959-3vr9_006.phpt php8.4-8.4.27/tests/basic/GHSA-f883-x959-3vr9_006.phpt
--- php8.4-8.4.26/tests/basic/GHSA-f883-x959-3vr9_006.phpt 1970-01-01 00:00:00.000000000 +0000
+++ php8.4-8.4.27/tests/basic/GHSA-f883-x959-3vr9_006.phpt 2026-10-19 14:38:59.000000000 +0000
@@ -0,0 +1,43 @@
+--TEST--
+GHSA-f883-x959-3vr9 006
+--POST_RAW--
+Content-Type: multipart/form-data; boundary=b
+--b
+Content-Disposition: form-data; name="f1"; filename="f1"
+Content-Type: text/plain
+
+test
+--b
+Content-Disposition: form-data; name="d1"
+
+test
+--b--
+--FILE--
+
+--EXPECTF--
+array(1) {
+ ["d1"]=>
+ string(4) "test"
+}
+array(1) {
+ ["f1"]=>
+ array(6) {
+ ["name"]=>
+ string(2) "f1"
+ ["full_path"]=>
+ string(2) "f1"
+ ["type"]=>
+ string(10) "text/plain"
+ ["tmp_name"]=>
+ string(%d) "%s"
+ ["error"]=>
+ int(0)
+ ["size"]=>
+ int(4)
+ }
+}
diff -Nru php8.4-8.4.26/tests/basic/GHSA-f883-x959-3vr9_007.inc php8.4-8.4.27/tests/basic/GHSA-f883-x959-3vr9_007.inc
--- php8.4-8.4.26/tests/basic/GHSA-f883-x959-3vr9_007.inc 1970-01-01 00:00:00.000000000 +0000
+++ php8.4-8.4.27/tests/basic/GHSA-f883-x959-3vr9_007.inc 2026-10-19 14:38:59.000000000 +0000
@@ -0,0 +1,3 @@
+
diff -Nru php8.4-8.4.26/tests/basic/GHSA-f883-x959-3vr9_007.phpt php8.4-8.4.27/tests/basic/GHSA-f883-x959-3vr9_007.phpt
--- php8.4-8.4.26/tests/basic/GHSA-f883-x959-3vr9_007.phpt 1970-01-01 00:00:00.000000000 +0000
+++ php8.4-8.4.27/tests/basic/GHSA-f883-x959-3vr9_007.phpt 2026-10-19 14:38:59.000000000 +0000
@@ -0,0 +1,63 @@
+--TEST--
+GHSA-f883-x959-3vr9 007
+--SKIPIF--
+
+--FILE--
+ '1',
+ 'CONTENT_TYPE' => "multipart/form-data; boundary=b",
+ 'CONTENT_LENGTH' => strlen($body),
+ 'REQUEST_METHOD' => 'POST',
+ 'SCRIPT_FILENAME' => __DIR__ . '/GHSA-f883-x959-3vr9_007.inc',
+]);
+
+$spec = [
+ 0 => ['pipe', 'r'],
+ 1 => STDOUT,
+ 2 => STDOUT,
+];
+
+$pipes = [];
+
+print "Starting...\n";
+
+$handle = proc_open($cmd, $spec, $pipes, getcwd(), $env);
+
+fwrite($pipes[0], $body);
+
+$status = proc_close($handle);
+
+print "\n";
+
+?>
+--EXPECTF--
+Starting...
+X-Powered-By: %s
+Content-type: text/html; charset=UTF-8
+
+array(1) {
+ ["d1"]=>
+ string(4) "test"
+}
diff -Nru php8.4-8.4.26/tests/basic/GHSA-f883-x959-3vr9_008.phpt php8.4-8.4.27/tests/basic/GHSA-f883-x959-3vr9_008.phpt
--- php8.4-8.4.26/tests/basic/GHSA-f883-x959-3vr9_008.phpt 1970-01-01 00:00:00.000000000 +0000
+++ php8.4-8.4.27/tests/basic/GHSA-f883-x959-3vr9_008.phpt 2026-10-19 14:38:59.000000000 +0000
@@ -0,0 +1,44 @@
+--TEST--
+GHSA-f883-x959-3vr9 008
+--POST_RAW--
+Content-Type: multipart/form-data; boundary=b
+--b
+Content-Disposition: form-data;
+ name="f1"; filename="f1"
+Content-Type: text/plain
+
+test
+--b
+Content-Disposition: form-data; name="d1"
+
+test
+--b--
+--FILE--
+
+--EXPECTF--
+array(1) {
+ ["d1"]=>
+ string(4) "test"
+}
+array(1) {
+ ["f1"]=>
+ array(6) {
+ ["name"]=>
+ string(2) "f1"
+ ["full_path"]=>
+ string(2) "f1"
+ ["type"]=>
+ string(10) "text/plain"
+ ["tmp_name"]=>
+ string(%d) "%s"
+ ["error"]=>
+ int(0)
+ ["size"]=>
+ int(4)
+ }
+}
diff -Nru php8.4-8.4.26/tests/basic/GHSA-f883-x959-3vr9_009.phpt php8.4-8.4.27/tests/basic/GHSA-f883-x959-3vr9_009.phpt
--- php8.4-8.4.26/tests/basic/GHSA-f883-x959-3vr9_009.phpt 1970-01-01 00:00:00.000000000 +0000
+++ php8.4-8.4.27/tests/basic/GHSA-f883-x959-3vr9_009.phpt 2026-10-19 14:38:59.000000000 +0000
@@ -0,0 +1,44 @@
+--TEST--
+GHSA-f883-x959-3vr9 009
+--POST_RAW--
+Content-Type: multipart/form-data; boundary=b
+--b
+Content-Type: text/plain
+Content-Disposition: form-data;
+ name="f1"; filename="f1"
+
+test
+--b
+Content-Disposition: form-data; name="d1"
+
+test
+--b--
+--FILE--
+
+--EXPECTF--
+array(1) {
+ ["d1"]=>
+ string(4) "test"
+}
+array(1) {
+ ["f1"]=>
+ array(6) {
+ ["name"]=>
+ string(2) "f1"
+ ["full_path"]=>
+ string(2) "f1"
+ ["type"]=>
+ string(10) "text/plain"
+ ["tmp_name"]=>
+ string(%d) "%s"
+ ["error"]=>
+ int(0)
+ ["size"]=>
+ int(4)
+ }
+}
diff -Nru php8.4-8.4.26/tests/basic/GHSA-f883-x959-3vr9_010.phpt php8.4-8.4.27/tests/basic/GHSA-f883-x959-3vr9_010.phpt
--- php8.4-8.4.26/tests/basic/GHSA-f883-x959-3vr9_010.phpt 1970-01-01 00:00:00.000000000 +0000
+++ php8.4-8.4.27/tests/basic/GHSA-f883-x959-3vr9_010.phpt 2026-10-19 14:38:59.000000000 +0000
@@ -0,0 +1,45 @@
+--TEST--
+GHSA-f883-x959-3vr9 010
+--POST_RAW--
+Content-Type: multipart/form-data; boundary=b
+--b
+Content-Disposition: form-data; name="f1"; filename="f1"
+Content-Disposition: form-data; name="f2"; filename="f2"
+Content-Type: text/plain
+
+test
+--b
+Content-Disposition: form-data; name="d1"
+Content-Disposition: form-data; name="d2"
+
+test
+--b--
+--FILE--
+
+--EXPECTF--
+array(1) {
+ ["d1"]=>
+ string(4) "test"
+}
+array(1) {
+ ["f1"]=>
+ array(6) {
+ ["name"]=>
+ string(2) "f1"
+ ["full_path"]=>
+ string(2) "f1"
+ ["type"]=>
+ string(10) "text/plain"
+ ["tmp_name"]=>
+ string(%d) "%s"
+ ["error"]=>
+ int(0)
+ ["size"]=>
+ int(4)
+ }
+}
diff -Nru php8.4-8.4.26/tests/basic/GHSA-f883-x959-3vr9_011.phpt php8.4-8.4.27/tests/basic/GHSA-f883-x959-3vr9_011.phpt
--- php8.4-8.4.26/tests/basic/GHSA-f883-x959-3vr9_011.phpt 1970-01-01 00:00:00.000000000 +0000
+++ php8.4-8.4.27/tests/basic/GHSA-f883-x959-3vr9_011.phpt 2026-10-19 14:38:59.000000000 +0000
@@ -0,0 +1,20 @@
+--TEST--
+GHSA-f883-x959-3vr9 011
+--POST_RAW--
+Content-Type: multipart/form-data; boundary=b
+--b
+content-disposition: form-data; name="d1"
+
+test
+--b--
+--FILE--
+
+--EXPECT--
+array(1) {
+ ["d1"]=>
+ string(4) "test"
+}
diff -Nru php8.4-8.4.26/tests/basic/oom_rfc1867.inc php8.4-8.4.27/tests/basic/oom_rfc1867.inc
--- php8.4-8.4.26/tests/basic/oom_rfc1867.inc 1970-01-01 00:00:00.000000000 +0000
+++ php8.4-8.4.27/tests/basic/oom_rfc1867.inc 2026-10-19 14:38:59.000000000 +0000
@@ -0,0 +1,88 @@
+ 0) {
+ $chunk = min($bytes, 1024 * 1024);
+ fwrite($fh, str_repeat($char, $chunk));
+ $bytes -= $chunk;
+ }
+}
+
+/* Calls $writeBody() to write the body parts, appends the closing boundary,
+ * posts the result and prints what php-cgi reported.
+ *
+ * $extraIni is passed as additional -d options, for the paths that only run
+ * with a given extension configured (mbstring translation, upload progress). */
+function oom_rfc1867_request(callable $writeBody, string $memoryLimit = '8M', array $extraIni = [], ?string $target = null): void
+{
+ $bodyFile = tempnam(sys_get_temp_dir(), 'oom_rfc1867');
+ $fh = fopen($bodyFile, 'wb');
+ $writeBody($fh);
+ fwrite($fh, '--' . OOM_RFC1867_BOUNDARY . "--\r\n");
+ fclose($fh);
+
+ $cmd = [
+ getenv('TEST_PHP_CGI_EXECUTABLE'),
+ '-C',
+ '-n',
+ '-d', 'memory_limit=' . $memoryLimit,
+ '-d', 'post_max_size=1G',
+ '-d', 'upload_max_filesize=1G',
+ '-d', 'max_input_vars=10000000',
+ '-d', 'max_file_uploads=1000000',
+ '-d', 'max_multipart_body_parts=10000000',
+ '-d', 'max_input_time=-1',
+ '-d', 'html_errors=0',
+ ];
+
+ foreach ($extraIni as $ini) {
+ $cmd[] = '-d';
+ $cmd[] = $ini;
+ }
+
+ $env = array_merge($_ENV, [
+ 'REDIRECT_STATUS' => '1',
+ 'CONTENT_TYPE' => 'multipart/form-data; boundary=' . OOM_RFC1867_BOUNDARY,
+ 'CONTENT_LENGTH' => filesize($bodyFile),
+ 'REQUEST_METHOD' => 'POST',
+ 'SCRIPT_FILENAME' => $target ?? __DIR__ . '/oom_rfc1867_target.inc',
+ ]);
+
+ $spec = [
+ 0 => ['file', $bodyFile, 'r'],
+ 1 => ['pipe', 'w'],
+ 2 => ['pipe', 'w'],
+ ];
+
+ $pipes = [];
+ $handle = proc_open($cmd, $spec, $pipes, getcwd(), $env);
+ $out = stream_get_contents($pipes[1]);
+ $err = stream_get_contents($pipes[2]);
+ fclose($pipes[1]);
+ fclose($pipes[2]);
+ proc_close($handle);
+ unlink($bodyFile);
+
+ /* Drop the CGI headers, keep the body. */
+ $out = preg_replace("/^.*?\r\n\r\n/s", '', $out);
+ echo trim(str_replace("\r\n", "\n", $out)), "\n";
+ if ($err !== '') {
+ echo 'stderr: ', trim($err), "\n";
+ }
+}
diff -Nru php8.4-8.4.26/tests/basic/oom_rfc1867_array_upload_name.phpt php8.4-8.4.27/tests/basic/oom_rfc1867_array_upload_name.phpt
--- php8.4-8.4.26/tests/basic/oom_rfc1867_array_upload_name.phpt 1970-01-01 00:00:00.000000000 +0000
+++ php8.4-8.4.27/tests/basic/oom_rfc1867_array_upload_name.phpt 2026-10-19 14:38:59.000000000 +0000
@@ -0,0 +1,45 @@
+--TEST--
+rfc1867: a huge array upload field name doesn't reach the hard limit
+--SKIPIF--
+
+--FILE--
+
+--EXPECTF--
+Fatal error: Allowed memory size of 16777216 bytes exhausted %S(tried to allocate %d bytes) in Unknown on line 0
+Fatal error: Allowed memory size of 16777216 bytes exhausted %S(tried to allocate %d bytes) in Unknown on line 0
+Fatal error: Allowed memory size of 8388608 bytes exhausted %S(tried to allocate %d bytes) in Unknown on line 0
+Fatal error: Allowed memory size of 8388608 bytes exhausted %S(tried to allocate %d bytes) in Unknown on line 0
diff -Nru php8.4-8.4.26/tests/basic/oom_rfc1867_early_report.phpt php8.4-8.4.27/tests/basic/oom_rfc1867_early_report.phpt
--- php8.4-8.4.26/tests/basic/oom_rfc1867_early_report.phpt 1970-01-01 00:00:00.000000000 +0000
+++ php8.4-8.4.27/tests/basic/oom_rfc1867_early_report.phpt 2026-10-19 14:38:59.000000000 +0000
@@ -0,0 +1,34 @@
+--TEST--
+rfc1867: the soft limit is reported immediately after input parsing
+--SKIPIF--
+
+--FILE--
+
+--EXPECTF--
+Fatal error: Allowed memory size of 8388608 bytes exhausted %S(tried to allocate %d bytes) in Unknown on line 0
+Fatal error: Allowed memory size of 8388608 bytes exhausted %S(tried to allocate %d bytes) in Unknown on line 0
diff -Nru php8.4-8.4.26/tests/basic/oom_rfc1867_field_name.phpt php8.4-8.4.27/tests/basic/oom_rfc1867_field_name.phpt
--- php8.4-8.4.26/tests/basic/oom_rfc1867_field_name.phpt 1970-01-01 00:00:00.000000000 +0000
+++ php8.4-8.4.27/tests/basic/oom_rfc1867_field_name.phpt 2026-10-19 14:38:59.000000000 +0000
@@ -0,0 +1,25 @@
+--TEST--
+rfc1867: a huge form field name doesn't reach the hard limit
+--SKIPIF--
+
+--FILE--
+
+--EXPECTF--
+Fatal error: Allowed memory size of 10485760 bytes exhausted %S(tried to allocate %d bytes) in Unknown on line 0
+Fatal error: Allowed memory size of 10485760 bytes exhausted %S(tried to allocate %d bytes) in Unknown on line 0
+Fatal error: Allowed memory size of 10485760 bytes exhausted %S(tried to allocate %d bytes) in Unknown on line 0
+Fatal error: Allowed memory size of 10485760 bytes exhausted %S(tried to allocate %d bytes) in Unknown on line 0
+Fatal error: Allowed memory size of 10485760 bytes exhausted %S(tried to allocate %d bytes) in Unknown on line 0
+Fatal error: Allowed memory size of 10485760 bytes exhausted %S(tried to allocate %d bytes) in Unknown on line 0
+Fatal error: Allowed memory size of 10485760 bytes exhausted %S(tried to allocate %d bytes) in Unknown on line 0
diff -Nru php8.4-8.4.26/tests/basic/oom_rfc1867_files.phpt php8.4-8.4.27/tests/basic/oom_rfc1867_files.phpt
--- php8.4-8.4.26/tests/basic/oom_rfc1867_files.phpt 1970-01-01 00:00:00.000000000 +0000
+++ php8.4-8.4.27/tests/basic/oom_rfc1867_files.phpt 2026-10-19 14:38:59.000000000 +0000
@@ -0,0 +1,29 @@
+--TEST--
+rfc1867: a huge number of file parts doesn't reach the hard limit
+--SKIPIF--
+
+--FILE--
+
+--EXPECTF--
+Fatal error: Allowed memory size of 8388608 bytes exhausted %S(tried to allocate %d bytes) in Unknown on line 0
+Fatal error: Allowed memory size of 8388608 bytes exhausted %S(tried to allocate %d bytes) in Unknown on line 0
diff -Nru php8.4-8.4.26/tests/basic/oom_rfc1867_files_registration.phpt php8.4-8.4.27/tests/basic/oom_rfc1867_files_registration.phpt
--- php8.4-8.4.26/tests/basic/oom_rfc1867_files_registration.phpt 1970-01-01 00:00:00.000000000 +0000
+++ php8.4-8.4.27/tests/basic/oom_rfc1867_files_registration.phpt 2026-10-19 14:38:59.000000000 +0000
@@ -0,0 +1,58 @@
+--TEST--
+rfc1867: reaching the soft limit at each step of the $_FILES registration
+--SKIPIF--
+
+--FILE--
+[k]" - the field name carries the weight. */
+foreach ($padsKb as $padKb) {
+ oom_rfc1867_request(function ($fh) use ($padKb) {
+ oom_rfc1867_pad($fh, $padKb * 1024);
+ fwrite($fh, '--' . OOM_RFC1867_BOUNDARY . "\r\n"
+ . 'Content-Disposition: form-data; name="');
+ oom_rfc1867_fill($fh, 700 * 1024);
+ fwrite($fh, "[k]\"; filename=\"f.txt\"\r\nContent-Type: text/plain\r\n\r\nx\r\n");
+ });
+}
+
+/* name="u[<700K>]" - the weight is in the array index instead. */
+oom_rfc1867_request(function ($fh) {
+ oom_rfc1867_pad($fh, 1344 * 1024);
+ fwrite($fh, '--' . OOM_RFC1867_BOUNDARY . "\r\n"
+ . 'Content-Disposition: form-data; name="u[');
+ oom_rfc1867_fill($fh, 700 * 1024);
+ fwrite($fh, "]\"; filename=\"f.txt\"\r\nContent-Type: text/plain\r\n\r\nx\r\n");
+});
+
+/* The [full_path] entry is in oom_rfc1867_files_registration_full_path.phpt:
+ * it needs a padding that only Zend MM's accounting can produce. */
+?>
+--EXPECTF--
+Fatal error: Allowed memory size of 8388608 bytes exhausted %S(tried to allocate %d bytes) in Unknown on line 0
+Fatal error: Allowed memory size of 8388608 bytes exhausted %S(tried to allocate %d bytes) in Unknown on line 0
+Fatal error: Allowed memory size of 8388608 bytes exhausted %S(tried to allocate %d bytes) in Unknown on line 0
+Fatal error: Allowed memory size of 8388608 bytes exhausted %S(tried to allocate %d bytes) in Unknown on line 0
+Fatal error: Allowed memory size of 8388608 bytes exhausted %S(tried to allocate %d bytes) in Unknown on line 0
diff -Nru php8.4-8.4.26/tests/basic/oom_rfc1867_files_registration_full_path.phpt php8.4-8.4.27/tests/basic/oom_rfc1867_files_registration_full_path.phpt
--- php8.4-8.4.26/tests/basic/oom_rfc1867_files_registration_full_path.phpt 1970-01-01 00:00:00.000000000 +0000
+++ php8.4-8.4.27/tests/basic/oom_rfc1867_files_registration_full_path.phpt 2026-10-19 14:38:59.000000000 +0000
@@ -0,0 +1,26 @@
+--TEST--
+rfc1867: reaching the soft limit on the $_FILES [full_path] entry
+--SKIPIF--
+
+--FILE--
+
+--EXPECTF--
+Fatal error: Allowed memory size of 8388608 bytes exhausted %S(tried to allocate %d bytes) in Unknown on line 0
diff -Nru php8.4-8.4.26/tests/basic/oom_rfc1867_form_value.phpt php8.4-8.4.27/tests/basic/oom_rfc1867_form_value.phpt
--- php8.4-8.4.26/tests/basic/oom_rfc1867_form_value.phpt 1970-01-01 00:00:00.000000000 +0000
+++ php8.4-8.4.27/tests/basic/oom_rfc1867_form_value.phpt 2026-10-19 14:38:59.000000000 +0000
@@ -0,0 +1,19 @@
+--TEST--
+rfc1867: a huge form variable value doesn't reach the hard limit
+--SKIPIF--
+
+--FILE--
+
+--EXPECTF--
+Fatal error: Allowed memory size of 8388608 bytes exhausted %S(tried to allocate %d bytes) in Unknown on line 0
diff -Nru php8.4-8.4.26/tests/basic/oom_rfc1867_header_continuation.phpt php8.4-8.4.27/tests/basic/oom_rfc1867_header_continuation.phpt
--- php8.4-8.4.26/tests/basic/oom_rfc1867_header_continuation.phpt 1970-01-01 00:00:00.000000000 +0000
+++ php8.4-8.4.27/tests/basic/oom_rfc1867_header_continuation.phpt 2026-10-19 14:38:59.000000000 +0000
@@ -0,0 +1,18 @@
+--TEST--
+rfc1867: a huge header value built from continuation lines doesn't reach the hard limit
+--SKIPIF--
+
+--FILE--
+
+--EXPECTF--
+Fatal error: Allowed memory size of 8388608 bytes exhausted %S(tried to allocate %d bytes) in Unknown on line 0
diff -Nru php8.4-8.4.26/tests/basic/oom_rfc1867_header_count.phpt php8.4-8.4.27/tests/basic/oom_rfc1867_header_count.phpt
--- php8.4-8.4.26/tests/basic/oom_rfc1867_header_count.phpt 1970-01-01 00:00:00.000000000 +0000
+++ php8.4-8.4.27/tests/basic/oom_rfc1867_header_count.phpt 2026-10-19 14:38:59.000000000 +0000
@@ -0,0 +1,18 @@
+--TEST--
+rfc1867: a part with a huge number of headers doesn't reach the hard limit
+--SKIPIF--
+
+--FILE--
+
+--EXPECT--
+post=1 files=0
diff -Nru php8.4-8.4.26/tests/basic/oom_rfc1867_long_header_line.phpt php8.4-8.4.27/tests/basic/oom_rfc1867_long_header_line.phpt
--- php8.4-8.4.26/tests/basic/oom_rfc1867_long_header_line.phpt 1970-01-01 00:00:00.000000000 +0000
+++ php8.4-8.4.27/tests/basic/oom_rfc1867_long_header_line.phpt 2026-10-19 14:38:59.000000000 +0000
@@ -0,0 +1,45 @@
+--TEST--
+rfc1867: a huge Content-Disposition line doesn't reach the hard limit
+--SKIPIF--
+
+--FILE--
+
+--EXPECTF--
+Fatal error: Allowed memory size of 8388608 bytes exhausted %S(tried to allocate %d bytes) in Unknown on line 0
+Fatal error: Allowed memory size of 8388608 bytes exhausted %S(tried to allocate %d bytes) in Unknown on line 0
+Fatal error: Allowed memory size of 8388608 bytes exhausted %S(tried to allocate %d bytes) in Unknown on line 0
+Fatal error: Allowed memory size of 8388608 bytes exhausted %S(tried to allocate %d bytes) in Unknown on line 0
diff -Nru php8.4-8.4.26/tests/basic/oom_rfc1867_mb_encoding.phpt php8.4-8.4.27/tests/basic/oom_rfc1867_mb_encoding.phpt
--- php8.4-8.4.26/tests/basic/oom_rfc1867_mb_encoding.phpt 1970-01-01 00:00:00.000000000 +0000
+++ php8.4-8.4.27/tests/basic/oom_rfc1867_mb_encoding.phpt 2026-10-19 14:38:59.000000000 +0000
@@ -0,0 +1,114 @@
+--TEST--
+rfc1867: mbstring input conversion of a body part doesn't reach the hard limit
+--SKIPIF--
+
+--FILE--
+ "א": one byte in, seven bytes out. */
+ oom_rfc1867_fill($fh, $kb * 1024, "\xE0");
+ fwrite($fh, "\r\n");
+ }, '8M', [
+ 'mbstring.encoding_translation=1',
+ 'internal_encoding=HTML-ENTITIES',
+ 'mbstring.http_input=ISO-8859-8',
+ 'error_reporting=' . (E_ALL & ~E_DEPRECATED),
+ ]);
+}
+
+/* UTF-32: a flat 4x on every input byte. The window where the conversion is
+ * what reaches the limit - rather than the body read before it - depends on how
+ * the allocator accounts memory, and Zend MM's chunks and the tracked
+ * allocator's exact sizes only overlap in a single point. */
+$utf32Kb = getenv('USE_ZEND_ALLOC') === '0'
+ ? [1152, 1280]
+ : [896, 1280];
+
+foreach ($utf32Kb as $kb) {
+ oom_rfc1867_request(function ($fh) use ($kb) {
+ fwrite($fh, '--' . OOM_RFC1867_BOUNDARY . "\r\n"
+ . "Content-Disposition: form-data; name=\"f\"\r\n\r\n");
+ oom_rfc1867_fill($fh, $kb * 1024, "\x80");
+ fwrite($fh, "\r\n");
+ }, '8M', [
+ 'mbstring.encoding_translation=1',
+ 'internal_encoding=UTF-32',
+ 'mbstring.http_input=CP1252',
+ 'error_reporting=' . (E_ALL & ~E_DEPRECATED),
+ ]);
+}
+?>
+--EXPECTF--
+Fatal error: Allowed memory size of 8388608 bytes exhausted %S(tried to allocate %d bytes) in Unknown on line 0
+Fatal error: Allowed memory size of 8388608 bytes exhausted %S(tried to allocate %d bytes) in Unknown on line 0
+Fatal error: Allowed memory size of 8388608 bytes exhausted %S(tried to allocate %d bytes) in Unknown on line 0
+Fatal error: Allowed memory size of 8388608 bytes exhausted %S(tried to allocate %d bytes) in Unknown on line 0
+Fatal error: Allowed memory size of 8388608 bytes exhausted %S(tried to allocate %d bytes) in Unknown on line 0
+Fatal error: Allowed memory size of 8388608 bytes exhausted %S(tried to allocate %d bytes) in Unknown on line 0
+Fatal error: Allowed memory size of 8388608 bytes exhausted %S(tried to allocate %d bytes) in Unknown on line 0
+Fatal error: Allowed memory size of 8388608 bytes exhausted %S(tried to allocate %d bytes) in Unknown on line 0
+Fatal error: Allowed memory size of 8388608 bytes exhausted %S(tried to allocate %d bytes) in Unknown on line 0
+Fatal error: Allowed memory size of 8388608 bytes exhausted %S(tried to allocate %d bytes) in Unknown on line 0
+Fatal error: Allowed memory size of 8388608 bytes exhausted %S(tried to allocate %d bytes) in Unknown on line 0
+Fatal error: Allowed memory size of 8388608 bytes exhausted %S(tried to allocate %d bytes) in Unknown on line 0
+Fatal error: Allowed memory size of 8388608 bytes exhausted %S(tried to allocate %d bytes) in Unknown on line 0
+Fatal error: Allowed memory size of 8388608 bytes exhausted %S(tried to allocate %d bytes) in Unknown on line 0
+Fatal error: Allowed memory size of 8388608 bytes exhausted %S(tried to allocate %d bytes) in Unknown on line 0
+Fatal error: Allowed memory size of 8388608 bytes exhausted %S(tried to allocate %d bytes) in Unknown on line 0
+Fatal error: Allowed memory size of 8388608 bytes exhausted %S(tried to allocate %d bytes) in Unknown on line 0
+Fatal error: Allowed memory size of 8388608 bytes exhausted %S(tried to allocate %d bytes) in Unknown on line 0
+Fatal error: Allowed memory size of 8388608 bytes exhausted %S(tried to allocate %d bytes) in Unknown on line 0
+Fatal error: Allowed memory size of 8388608 bytes exhausted %S(tried to allocate %d bytes) in Unknown on line 0
+Fatal error: Allowed memory size of 8388608 bytes exhausted %S(tried to allocate %d bytes) in Unknown on line 0
+Fatal error: Allowed memory size of 8388608 bytes exhausted %S(tried to allocate %d bytes) in Unknown on line 0
+Fatal error: Allowed memory size of 8388608 bytes exhausted %S(tried to allocate %d bytes) in Unknown on line 0
+Fatal error: Allowed memory size of 8388608 bytes exhausted %S(tried to allocate %d bytes) in Unknown on line 0
+Fatal error: Allowed memory size of 8388608 bytes exhausted %S(tried to allocate %d bytes) in Unknown on line 0
+Fatal error: Allowed memory size of 8388608 bytes exhausted %S(tried to allocate %d bytes) in Unknown on line 0
+Fatal error: Allowed memory size of 8388608 bytes exhausted %S(tried to allocate %d bytes) in Unknown on line 0
diff -Nru php8.4-8.4.26/tests/basic/oom_rfc1867_mb_skipif.inc php8.4-8.4.27/tests/basic/oom_rfc1867_mb_skipif.inc
--- php8.4-8.4.26/tests/basic/oom_rfc1867_mb_skipif.inc 1970-01-01 00:00:00.000000000 +0000
+++ php8.4-8.4.27/tests/basic/oom_rfc1867_mb_skipif.inc 2026-10-19 14:38:59.000000000 +0000
@@ -0,0 +1,5 @@
+
+--FILE--
+
+--EXPECTF--
+Fatal error: Allowed memory size of 8388608 bytes exhausted %S(tried to allocate %d bytes) in Unknown on line 0
diff -Nru php8.4-8.4.26/tests/basic/oom_rfc1867_session_skipif.inc php8.4-8.4.27/tests/basic/oom_rfc1867_session_skipif.inc
--- php8.4-8.4.26/tests/basic/oom_rfc1867_session_skipif.inc 1970-01-01 00:00:00.000000000 +0000
+++ php8.4-8.4.27/tests/basic/oom_rfc1867_session_skipif.inc 2026-10-19 14:38:59.000000000 +0000
@@ -0,0 +1,5 @@
+
+--FILE--
+
+--EXPECTF--
+Fatal error: Allowed memory size of 4194304 bytes exhausted %S(tried to allocate %d bytes) in Unknown on line 0
+Fatal error: Allowed memory size of 4194304 bytes exhausted %S(tried to allocate %d bytes) in Unknown on line 0
+Fatal error: Allowed memory size of 8388608 bytes exhausted %S(tried to allocate %d bytes) in Unknown on line 0
+Fatal error: Allowed memory size of 8388608 bytes exhausted %S(tried to allocate %d bytes) in Unknown on line 0
+Fatal error: Allowed memory size of 8388608 bytes exhausted %S(tried to allocate %d bytes) in Unknown on line 0
+Fatal error: Allowed memory size of 4194304 bytes exhausted %S(tried to allocate %d bytes) in Unknown on line 0
diff -Nru php8.4-8.4.26/tests/output/gh15179.phpt php8.4-8.4.27/tests/output/gh15179.phpt
--- php8.4-8.4.26/tests/output/gh15179.phpt 2026-09-22 15:00:02.000000000 +0000
+++ php8.4-8.4.27/tests/output/gh15179.phpt 2026-10-19 14:38:59.000000000 +0000
@@ -15,4 +15,4 @@
output_add_rewrite_var($var, $var);
?>
--EXPECTF--
-Fatal error: Allowed memory size of %d bytes exhausted %s
+%rHard memory limit|Fatal error: Allowed memory size%r of %d bytes exhausted%s(tried to allocate %d bytes) in %s on line %d%r(\n\nTermsig=9)?%r
diff -Nru php8.4-8.4.26/tests/output/oom_in_internal_output_handler.phpt php8.4-8.4.27/tests/output/oom_in_internal_output_handler.phpt
--- php8.4-8.4.26/tests/output/oom_in_internal_output_handler.phpt 1970-01-01 00:00:00.000000000 +0000
+++ php8.4-8.4.27/tests/output/oom_in_internal_output_handler.phpt 2026-10-19 14:38:59.000000000 +0000
@@ -0,0 +1,20 @@
+--TEST--
+OOM inside an internal output handler must not free the running handler
+--EXTENSIONS--
+mbstring
+--INI--
+memory_limit=64M
+output_encoding=HTML-ENTITIES
+mbstring.encoding_translation=1
+--FILE--
+
+--EXPECT--
diff -Nru php8.4-8.4.26/tests/security/open_basedir_nul_win32.phpt php8.4-8.4.27/tests/security/open_basedir_nul_win32.phpt
--- php8.4-8.4.26/tests/security/open_basedir_nul_win32.phpt 1970-01-01 00:00:00.000000000 +0000
+++ php8.4-8.4.27/tests/security/open_basedir_nul_win32.phpt 2026-10-19 14:38:59.000000000 +0000
@@ -0,0 +1,57 @@
+--TEST--
+GH-24148: Bare NUL remains usable with open_basedir on Windows
+--SKIPIF--
+
+--INI--
+open_basedir=
+--FILE--
+ __DIR__,
+ 'Devices explicitly allowed' => __FILE__ . ';NUL;NUL:',
+ 'Only file allowed' => __FILE__,
+] as $label => $basedir) {
+ echo "$label:\n";
+ var_dump(ini_set('open_basedir', $basedir) !== false);
+ foreach (['NUL', 'nul:'] as $name) {
+ $stream = @fopen($name, 'c');
+ var_dump(is_resource($stream));
+ if (is_resource($stream)) {
+ fclose($stream);
+ }
+ }
+ $process = @proc_open('cmd /c exit 0', [
+ ['pipe', 'r'], ['file', 'NUL', 'w'], ['file', 'nul:', 'w'],
+ ], $pipes);
+ if (is_resource($process)) {
+ fclose($pipes[0]);
+ var_dump(proc_close($process) === 0);
+ } else {
+ var_dump(false);
+ }
+ var_dump(file_get_contents(__FILE__) !== false);
+}
+?>
+--EXPECT--
+Directory allowed:
+bool(true)
+bool(true)
+bool(true)
+bool(true)
+bool(true)
+Devices explicitly allowed:
+bool(true)
+bool(true)
+bool(true)
+bool(true)
+bool(true)
+Only file allowed:
+bool(true)
+bool(false)
+bool(false)
+bool(false)
+bool(true)