mirror of
https://github.com/php/php-src.git
synced 2025-08-18 15:08:55 +02:00
add 'extern "C"' where needed for C++
(TODO: shouldn't this be done in the appropriate php headers and Zend macros themselves?)
This commit is contained in:
parent
f4e89c56ab
commit
30ff14a2fc
1 changed files with 31 additions and 15 deletions
|
@ -405,27 +405,35 @@
|
||||||
// {{{ extension entry
|
// {{{ extension entry
|
||||||
|
|
||||||
function generate_extension_entry() {
|
function generate_extension_entry() {
|
||||||
return '
|
$name = $this->name;
|
||||||
/* {{{ '.$this->name.'_module_entry
|
$upname = strtoupper($this->name);
|
||||||
|
|
||||||
|
$code = "
|
||||||
|
/* {{{ {$name}_module_entry
|
||||||
*/
|
*/
|
||||||
zend_module_entry '.$this->name.'_module_entry = {
|
zend_module_entry {$name}_module_entry = {
|
||||||
STANDARD_MODULE_HEADER,
|
STANDARD_MODULE_HEADER,
|
||||||
"'.$this->name.'",
|
\"$name\",
|
||||||
'.$this->name.'_functions,
|
{$name}_functions,
|
||||||
PHP_MINIT('.$this->name.'), /* Replace with NULL if there is nothing to do at php startup */
|
PHP_MINIT($name), /* Replace with NULL if there is nothing to do at php startup */
|
||||||
PHP_MSHUTDOWN('.$this->name.'), /* Replace with NULL if there is nothing to do at php shutdown */
|
PHP_MSHUTDOWN($name), /* Replace with NULL if there is nothing to do at php shutdown */
|
||||||
PHP_RINIT('.$this->name.'), /* Replace with NULL if there is nothing to do at request start */
|
PHP_RINIT($name), /* Replace with NULL if there is nothing to do at request start */
|
||||||
PHP_RSHUTDOWN('.$this->name.'), /* Replace with NULL if there is nothing to do at request end */
|
PHP_RSHUTDOWN($name), /* Replace with NULL if there is nothing to do at request end */
|
||||||
PHP_MINFO('.$this->name.'),
|
PHP_MINFO($name),
|
||||||
"'.$this->release['version'].'",
|
\"".$this->release['version']."\",
|
||||||
STANDARD_MODULE_PROPERTIES
|
STANDARD_MODULE_PROPERTIES
|
||||||
};
|
};
|
||||||
/* }}} */
|
/* }}} */
|
||||||
|
|
||||||
#ifdef COMPILE_DL_'.strtoupper($this->name).'
|
";
|
||||||
ZEND_GET_MODULE('.$this->name.')
|
|
||||||
#endif
|
$code .= "#ifdef COMPILE_DL_$upname\n";
|
||||||
';
|
if ($this->language == "cpp") $code .= "extern \"C\" {\n";
|
||||||
|
$code .= "ZEND_GET_MODULE($name)\n";
|
||||||
|
if ($this->language == "cpp") $code .= "}\n";
|
||||||
|
$code .= "#endif\n\n";
|
||||||
|
|
||||||
|
return $code;
|
||||||
}
|
}
|
||||||
|
|
||||||
// }}}
|
// }}}
|
||||||
|
@ -540,6 +548,10 @@ ZEND_GET_MODULE('.$this->name.')
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if ($this->language == "cpp") {
|
||||||
|
fputs($fp, "extern \"C\" {\n");
|
||||||
|
}
|
||||||
|
|
||||||
fputs($fp, '
|
fputs($fp, '
|
||||||
#ifdef HAVE_CONFIG_H
|
#ifdef HAVE_CONFIG_H
|
||||||
#include "config.h"
|
#include "config.h"
|
||||||
|
@ -552,6 +564,10 @@ ZEND_GET_MODULE('.$this->name.')
|
||||||
|
|
||||||
');
|
');
|
||||||
|
|
||||||
|
if ($this->language == "cpp") {
|
||||||
|
fputs($fp, "}\n");
|
||||||
|
}
|
||||||
|
|
||||||
if (isset($this->headers)) {
|
if (isset($this->headers)) {
|
||||||
foreach ($this->headers as $header) {
|
foreach ($this->headers as $header) {
|
||||||
if (@$header["prepend"] !== "yes") {
|
if (@$header["prepend"] !== "yes") {
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue