Bug #60740 [Fbk->Opn]: compilation of main/main.c stops: 'zend_stream' has no member named 'mmap64'
Edit report at https://bugs.php.net/bug.php?id=60740&edit=1
ID: 60740
Updated by: cmb@php.net
Reported by: lzsiga at freemail dot c3 dot hu
Summary: compilation of main/main.c stops: 'zend_stream' has
no member named 'mmap64'
-Status: Feedback
+Status: Open
Type: Bug
Package: Compile Failure
Operating System: AIX 6.1
-PHP Version: 5.3.9
+PHP Version: 7.1.9
-Assigned To: cmb
+Assigned To:
Block user comment: N
Private report: N
New Comment:
Thanks, I see. I've updated the PHP version field accordingly.
Previous Comments:
------------------------------------------------------------------------
[2017-09-28 04:22:46] lzsiga at freemail dot c3 dot hu
Sorry, I couldn't tell: I have moved onto 64-bit years ago, that eliminated the
Large-File-Problem.
But I've just checked the source of zend_stream.h in 7.1.9 -- the field's name is still
'mmap', so it still might cause problem on systems where large-file-support is solved via
'#define mmap mmap64'
Note: gcc-based systems use __asm__("mmap64"), so thex don't face this problem.
------------------------------------------------------------------------
[2017-09-27 15:54:23] cmb@php.net
Is this still an issue with current PHP versions?
------------------------------------------------------------------------
[2012-01-17 13:44:24] lzsiga at freemail dot c3 dot hu
"Good" news: on AIX, compiling with large-file-support raises other
problems, too; for example there won't be function 'fopen' only function
'fopen64'
------------------------------------------------------------------------
[2012-01-15 16:57:45] lzsiga at freemail dot c3 dot hu
Or simply the inclusion of <sys/mman.h> could come before the inclusion of
"config.h"
------------------------------------------------------------------------
[2012-01-13 10:26:17] lzsiga at freemail dot c3 dot hu
Description:
------------
Compilation of main/main.c fails, the error message is:
/usr/local/src/php-5.3.9/main/main.c:1230: error: 'zend_stream' has no member named
'mmap64'
/usr/local/src/php-5.3.9/main/main.c:1230: error: 'zend_stream' has no member named
'mmap64'
/usr/local/src/php-5.3.9/main/main.c:1239: error: 'zend_stream' has no member named
'mmap64'
/usr/local/src/php-5.3.9/main/main.c:1240: error: 'zend_stream' has no member named
'mmap64'
The compilation went with largefile support (-D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64
-D_LARGE_FILES), which caused sys/mman.h to define mmap as mmap64; I suppose it would work, if
1. I compiled without largefile support (I don't like this idea)
2. The member 'mmap' of 'struct _zend_stream' had a less problematic name
('zmmap' for example)
3. Header 'zend_stream.h' included 'sys/mman.h'
4. I predefined 'mmap' as 'mmap64': -Dmmap=mmap64
5. I compiled in 64 bits (I'm afraid to do so, to be frank)
Platform: AIX 6.1 (oslevel -r = 6100-05); gcc (gcc --version = 4.4.5)
------------------------------------------------------------------------
--
Edit this bug report at https://bugs.php.net/bug.php?id=60740&edit=1
Thread (6 messages)