Skip to content

Declare main constants in stubs - part 1 #9616

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 1 commit into from
Sep 30, 2022
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
63 changes: 3 additions & 60 deletions main/main.c
Original file line number Diff line number Diff line change
Expand Up @@ -82,6 +82,7 @@
#include "rfc1867.h"

#include "ext/standard/html_tables.h"
#include "main_arginfo.h"
/* }}} */

PHPAPI int (*php_register_internal_extensions_func)(void) = php_register_internal_extensions;
Expand Down Expand Up @@ -2014,15 +2015,12 @@ zend_result php_module_startup(sapi_module_struct *sf, zend_module_entry *additi
zend_utility_values zuv;
zend_result retval = SUCCESS;
int module_number = 0;
char *php_os;
zend_module_entry *module;

#ifdef PHP_WIN32
WORD wVersionRequested = MAKEWORD(2, 0);
WSADATA wsaData;

php_os = "WINNT";

old_invalid_parameter_handler =
_set_invalid_parameter_handler(dummy_invalid_parameter_handler);
if (old_invalid_parameter_handler != NULL) {
Expand All @@ -2031,8 +2029,6 @@ zend_result php_module_startup(sapi_module_struct *sf, zend_module_entry *additi

/* Disable the message box for assertions.*/
_CrtSetReportMode(_CRT_ASSERT, 0);
#else
php_os = PHP_OS;
#endif

#ifdef ZTS
Expand Down Expand Up @@ -2114,62 +2110,9 @@ zend_result php_module_startup(sapi_module_struct *sf, zend_module_entry *additi

le_index_ptr = zend_register_list_destructors_ex(NULL, NULL, "index pointer", 0);

/* Register constants */
REGISTER_MAIN_STRINGL_CONSTANT("PHP_VERSION", PHP_VERSION, sizeof(PHP_VERSION)-1, CONST_PERSISTENT | CONST_CS);
REGISTER_MAIN_LONG_CONSTANT("PHP_MAJOR_VERSION", PHP_MAJOR_VERSION, CONST_PERSISTENT | CONST_CS);
REGISTER_MAIN_LONG_CONSTANT("PHP_MINOR_VERSION", PHP_MINOR_VERSION, CONST_PERSISTENT | CONST_CS);
REGISTER_MAIN_LONG_CONSTANT("PHP_RELEASE_VERSION", PHP_RELEASE_VERSION, CONST_PERSISTENT | CONST_CS);
REGISTER_MAIN_STRINGL_CONSTANT("PHP_EXTRA_VERSION", PHP_EXTRA_VERSION, sizeof(PHP_EXTRA_VERSION) - 1, CONST_PERSISTENT | CONST_CS);
REGISTER_MAIN_LONG_CONSTANT("PHP_VERSION_ID", PHP_VERSION_ID, CONST_PERSISTENT | CONST_CS);
#ifdef ZTS
REGISTER_MAIN_LONG_CONSTANT("PHP_ZTS", 1, CONST_PERSISTENT | CONST_CS);
#else
REGISTER_MAIN_LONG_CONSTANT("PHP_ZTS", 0, CONST_PERSISTENT | CONST_CS);
#endif
REGISTER_MAIN_LONG_CONSTANT("PHP_DEBUG", PHP_DEBUG, CONST_PERSISTENT | CONST_CS);
REGISTER_MAIN_STRINGL_CONSTANT("PHP_OS", php_os, strlen(php_os), CONST_PERSISTENT | CONST_CS);
REGISTER_MAIN_STRINGL_CONSTANT("PHP_OS_FAMILY", PHP_OS_FAMILY, sizeof(PHP_OS_FAMILY)-1, CONST_PERSISTENT | CONST_CS);
REGISTER_MAIN_STRINGL_CONSTANT("PHP_SAPI", sapi_module.name, strlen(sapi_module.name), CONST_PERSISTENT | CONST_CS | CONST_NO_FILE_CACHE);
REGISTER_MAIN_STRINGL_CONSTANT("DEFAULT_INCLUDE_PATH", PHP_INCLUDE_PATH, sizeof(PHP_INCLUDE_PATH)-1, CONST_PERSISTENT | CONST_CS);
REGISTER_MAIN_STRINGL_CONSTANT("PEAR_INSTALL_DIR", PEAR_INSTALLDIR, sizeof(PEAR_INSTALLDIR)-1, CONST_PERSISTENT | CONST_CS);
REGISTER_MAIN_STRINGL_CONSTANT("PEAR_EXTENSION_DIR", PHP_EXTENSION_DIR, sizeof(PHP_EXTENSION_DIR)-1, CONST_PERSISTENT | CONST_CS);
REGISTER_MAIN_STRINGL_CONSTANT("PHP_EXTENSION_DIR", PHP_EXTENSION_DIR, sizeof(PHP_EXTENSION_DIR)-1, CONST_PERSISTENT | CONST_CS);
REGISTER_MAIN_STRINGL_CONSTANT("PHP_PREFIX", PHP_PREFIX, sizeof(PHP_PREFIX)-1, CONST_PERSISTENT | CONST_CS);
REGISTER_MAIN_STRINGL_CONSTANT("PHP_BINDIR", PHP_BINDIR, sizeof(PHP_BINDIR)-1, CONST_PERSISTENT | CONST_CS);
#ifndef PHP_WIN32
REGISTER_MAIN_STRINGL_CONSTANT("PHP_MANDIR", PHP_MANDIR, sizeof(PHP_MANDIR)-1, CONST_PERSISTENT | CONST_CS);
#endif
REGISTER_MAIN_STRINGL_CONSTANT("PHP_LIBDIR", PHP_LIBDIR, sizeof(PHP_LIBDIR)-1, CONST_PERSISTENT | CONST_CS);
REGISTER_MAIN_STRINGL_CONSTANT("PHP_DATADIR", PHP_DATADIR, sizeof(PHP_DATADIR)-1, CONST_PERSISTENT | CONST_CS);
REGISTER_MAIN_STRINGL_CONSTANT("PHP_SYSCONFDIR", PHP_SYSCONFDIR, sizeof(PHP_SYSCONFDIR)-1, CONST_PERSISTENT | CONST_CS);
REGISTER_MAIN_STRINGL_CONSTANT("PHP_LOCALSTATEDIR", PHP_LOCALSTATEDIR, sizeof(PHP_LOCALSTATEDIR)-1, CONST_PERSISTENT | CONST_CS);
REGISTER_MAIN_STRINGL_CONSTANT("PHP_CONFIG_FILE_PATH", PHP_CONFIG_FILE_PATH, strlen(PHP_CONFIG_FILE_PATH), CONST_PERSISTENT | CONST_CS);
REGISTER_MAIN_STRINGL_CONSTANT("PHP_CONFIG_FILE_SCAN_DIR", PHP_CONFIG_FILE_SCAN_DIR, sizeof(PHP_CONFIG_FILE_SCAN_DIR)-1, CONST_PERSISTENT | CONST_CS);
REGISTER_MAIN_STRINGL_CONSTANT("PHP_SHLIB_SUFFIX", PHP_SHLIB_SUFFIX, sizeof(PHP_SHLIB_SUFFIX)-1, CONST_PERSISTENT | CONST_CS);
REGISTER_MAIN_STRINGL_CONSTANT("PHP_EOL", PHP_EOL, sizeof(PHP_EOL)-1, CONST_PERSISTENT | CONST_CS);
REGISTER_MAIN_LONG_CONSTANT("PHP_MAXPATHLEN", MAXPATHLEN, CONST_PERSISTENT | CONST_CS);
REGISTER_MAIN_LONG_CONSTANT("PHP_INT_MAX", ZEND_LONG_MAX, CONST_PERSISTENT | CONST_CS);
REGISTER_MAIN_LONG_CONSTANT("PHP_INT_MIN", ZEND_LONG_MIN, CONST_PERSISTENT | CONST_CS);
REGISTER_MAIN_LONG_CONSTANT("PHP_INT_SIZE", SIZEOF_ZEND_LONG, CONST_PERSISTENT | CONST_CS);
REGISTER_MAIN_LONG_CONSTANT("PHP_FD_SETSIZE", FD_SETSIZE, CONST_PERSISTENT | CONST_CS);
REGISTER_MAIN_LONG_CONSTANT("PHP_FLOAT_DIG", DBL_DIG, CONST_PERSISTENT | CONST_CS);
REGISTER_MAIN_DOUBLE_CONSTANT("PHP_FLOAT_EPSILON", DBL_EPSILON, CONST_PERSISTENT | CONST_CS);
REGISTER_MAIN_DOUBLE_CONSTANT("PHP_FLOAT_MAX", DBL_MAX, CONST_PERSISTENT | CONST_CS);
REGISTER_MAIN_DOUBLE_CONSTANT("PHP_FLOAT_MIN", DBL_MIN, CONST_PERSISTENT | CONST_CS);
register_main_symbols(module_number);

#ifdef PHP_WIN32
REGISTER_MAIN_LONG_CONSTANT("PHP_WINDOWS_VERSION_MAJOR", EG(windows_version_info).dwMajorVersion, CONST_PERSISTENT | CONST_CS);
REGISTER_MAIN_LONG_CONSTANT("PHP_WINDOWS_VERSION_MINOR", EG(windows_version_info).dwMinorVersion, CONST_PERSISTENT | CONST_CS);
REGISTER_MAIN_LONG_CONSTANT("PHP_WINDOWS_VERSION_BUILD", EG(windows_version_info).dwBuildNumber, CONST_PERSISTENT | CONST_CS);
REGISTER_MAIN_LONG_CONSTANT("PHP_WINDOWS_VERSION_PLATFORM", EG(windows_version_info).dwPlatformId, CONST_PERSISTENT | CONST_CS);
REGISTER_MAIN_LONG_CONSTANT("PHP_WINDOWS_VERSION_SP_MAJOR", EG(windows_version_info).wServicePackMajor, CONST_PERSISTENT | CONST_CS);
REGISTER_MAIN_LONG_CONSTANT("PHP_WINDOWS_VERSION_SP_MINOR", EG(windows_version_info).wServicePackMinor, CONST_PERSISTENT | CONST_CS);
REGISTER_MAIN_LONG_CONSTANT("PHP_WINDOWS_VERSION_SUITEMASK", EG(windows_version_info).wSuiteMask, CONST_PERSISTENT | CONST_CS);
REGISTER_MAIN_LONG_CONSTANT("PHP_WINDOWS_VERSION_PRODUCTTYPE", EG(windows_version_info).wProductType, CONST_PERSISTENT | CONST_CS);
REGISTER_MAIN_LONG_CONSTANT("PHP_WINDOWS_NT_DOMAIN_CONTROLLER", VER_NT_DOMAIN_CONTROLLER, CONST_PERSISTENT | CONST_CS);
REGISTER_MAIN_LONG_CONSTANT("PHP_WINDOWS_NT_SERVER", VER_NT_SERVER, CONST_PERSISTENT | CONST_CS);
REGISTER_MAIN_LONG_CONSTANT("PHP_WINDOWS_NT_WORKSTATION", VER_NT_WORKSTATION, CONST_PERSISTENT | CONST_CS);
#endif
REGISTER_MAIN_STRINGL_CONSTANT("PHP_SAPI", sapi_module.name, strlen(sapi_module.name), CONST_PERSISTENT | CONST_CS | CONST_NO_FILE_CACHE);

php_binary_init();
if (PG(php_binary)) {
Expand Down
236 changes: 236 additions & 0 deletions main/main.stub.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,236 @@
<?php

/** @generate-class-entries */

/* Register constants */
/**
* @var string
* @cvalue PHP_VERSION
*/
const PHP_VERSION = UNKNOWN;
/**
* @var int
* @cvalue PHP_MAJOR_VERSION
*/
const PHP_MAJOR_VERSION = UNKNOWN;
/**
* @var int
* @cvalue PHP_MINOR_VERSION
*/
const PHP_MINOR_VERSION = UNKNOWN;
/**
* @var int
* @cvalue PHP_RELEASE_VERSION
*/
const PHP_RELEASE_VERSION = UNKNOWN;

/**
* @var string
* @cvalue PHP_EXTRA_VERSION
*/
const PHP_EXTRA_VERSION = UNKNOWN;
/**
* @var int
* @cvalue PHP_VERSION_ID
*/
const PHP_VERSION_ID = UNKNOWN;
/**
* @var int
* @cvalue PHP_ZTS
*/
const PHP_ZTS = UNKNOWN;
/**
* @var int
* @cvalue PHP_DEBUG
*/
const PHP_DEBUG = UNKNOWN;
/**
* @var string
* @cvalue PHP_OS_STR
*/
const PHP_OS = UNKNOWN;
/**
* @var string
* @cvalue PHP_OS_FAMILY
*/
const PHP_OS_FAMILY = UNKNOWN;
/**
* @var string
* @cvalue PHP_INCLUDE_PATH
*/
const DEFAULT_INCLUDE_PATH = UNKNOWN;
/**
* @var string
* @cvalue PEAR_INSTALLDIR
*/
const PEAR_INSTALL_DIR = UNKNOWN;
/**
* @var string
* @cvalue PHP_EXTENSION_DIR
*/
const PEAR_EXTENSION_DIR = UNKNOWN;
/**
* @var string
* @cvalue PHP_EXTENSION_DIR
*/
const PHP_EXTENSION_DIR = UNKNOWN;
/**
* @var string
* @cvalue PHP_PREFIX
*/
const PHP_PREFIX = UNKNOWN;
/**
* @var string
* @cvalue PHP_BINDIR
*/
const PHP_BINDIR = UNKNOWN;
#ifndef PHP_WIN32
/**
* @var string
* @cvalue PHP_MANDIR
*/
const PHP_MANDIR = UNKNOWN;
#endif
/**
* @var string
* @cvalue PHP_LIBDIR
*/
const PHP_LIBDIR = UNKNOWN;
/**
* @var string
* @cvalue PHP_DATADIR
*/
const PHP_DATADIR = UNKNOWN;
/**
* @var string
* @cvalue PHP_SYSCONFDIR
*/
const PHP_SYSCONFDIR = UNKNOWN;
/**
* @var string
* @cvalue PHP_LOCALSTATEDIR
*/
const PHP_LOCALSTATEDIR = UNKNOWN;
/**
* @var string
* @cvalue PHP_CONFIG_FILE_PATH
*/
const PHP_CONFIG_FILE_PATH = UNKNOWN;
/**
* @var string
* @cvalue PHP_CONFIG_FILE_SCAN_DIR
*/
const PHP_CONFIG_FILE_SCAN_DIR = UNKNOWN;
/**
* @var string
* @cvalue PHP_SHLIB_SUFFIX
*/
const PHP_SHLIB_SUFFIX = UNKNOWN;
/**
* @var string
* @cvalue PHP_EOL
*/
const PHP_EOL = UNKNOWN;
/**
* @var int
* @cvalue MAXPATHLEN
*/
const PHP_MAXPATHLEN = UNKNOWN;
/**
* @var int
* @cvalue ZEND_LONG_MAX
*/
const PHP_INT_MAX = UNKNOWN;
/**
* @var int
* @cvalue ZEND_LONG_MIN
*/
const PHP_INT_MIN = UNKNOWN;
/**
* @var int
* @cvalue SIZEOF_ZEND_LONG
*/
const PHP_INT_SIZE = UNKNOWN;
/**
* @var int
* @cvalue FD_SETSIZE
*/
const PHP_FD_SETSIZE = UNKNOWN;
/**
* @var float
* @cvalue DBL_DIG
*/
const PHP_FLOAT_DIG = UNKNOWN;
/**
* @var float
* @cvalue DBL_EPSILON
*/
const PHP_FLOAT_EPSILON = UNKNOWN;
/**
* @var float
* @cvalue DBL_MAX
*/
const PHP_FLOAT_MAX = UNKNOWN;
/**
* @var float
* @cvalue DBL_MIN
*/
const PHP_FLOAT_MIN = UNKNOWN;

#ifdef PHP_WIN32
/**
* @var int
* @cvalue EG(windows_version_info).dwMajorVersion
*/
const PHP_WINDOWS_VERSION_MAJOR = UNKNOWN;
/**
* @var int
* @cvalue EG(windows_version_info).dwMinorVersion
*/
const PHP_WINDOWS_VERSION_MINOR = UNKNOWN;
/**
* @var int
* @cvalue EG(windows_version_info).dwBuildNumber
*/
const PHP_WINDOWS_VERSION_BUILD = UNKNOWN;
/**
* @var int
* @cvalue EG(windows_version_info).dwPlatformId
*/
const PHP_WINDOWS_VERSION_PLATFORM = UNKNOWN;
/**
* @var int
* @cvalue EG(windows_version_info).wServicePackMajor
*/
const PHP_WINDOWS_VERSION_SP_MAJOR = UNKNOWN;
/**
* @var int
* @cvalue EG(windows_version_info).wServicePackMinor
*/
const PHP_WINDOWS_VERSION_SP_MINOR = UNKNOWN;
/**
* @var int
* @cvalue EG(windows_version_info).wSuiteMask
*/
const PHP_WINDOWS_VERSION_SUITEMASK = UNKNOWN;
/**
* @var int
* @cvalue EG(windows_version_info).wProductType
*/
const PHP_WINDOWS_VERSION_PRODUCTTYPE = UNKNOWN;
/**
* @var int
* @cvalue VER_NT_DOMAIN_CONTROLLER
*/
const PHP_WINDOWS_NT_DOMAIN_CONTROLLER = UNKNOWN;
/**
* @var int
* @cvalue VER_NT_SERVER
*/
const PHP_WINDOWS_NT_SERVER = UNKNOWN;
/**
* @var int
* @cvalue VER_NT_WORKSTATION
*/
const PHP_WINDOWS_NT_WORKSTATION = UNKNOWN;
#endif
Loading