ID: 46020 Comment by: rkl at connect dot org dot uk Reported By: river at wikimedia dot org Status: Assigned Bug Type: Compile Failure Operating System: HP-UX 11.11 PHP Version: 5.2.6 Assigned To: thetaphi New Comment:
Just a note that "#ifndef HPUX" is technically the wrong check for HP-UX when compiling C/C++, it should be: #ifndef __hpux ..Do non-HP-UX code #endif __hpux is defined in all C/C++ compilers (both gcc/g++ and HP's C/C++) in all releases of HP-UX. So the blame here is with Sun's nsapi.h and not PHP, but until Sun fix it, -DHPUX is the obvious workaround. Previous Comments: ------------------------------------------------------------------------ [2008-10-02 17:33:43] theta...@php.net In my opinion, this is not a bug in PHP, as the compile failure happens in nsapi.h. I think you should also ask this question on the SJSWS discussion on Sun's homepage. Or maybe this is a GCC bug. In principle, it would be possible to add a compile option to PHP that is only set on HPUX, but this would not help others to compile other NSAPI components with GCC. Did you try the HP-UX compiler, does it set "-DHPUX"? I have no HP-UX machine, so I cannot test any of your configurations. Maybe you send me a fragment to detect HP-UX in configure scripts or what the auto-defines of GCC are for HP-UX. With this a simple workaround would be to do: #ifdef GCC_SPECIAL_HPUX_DEFINE #define HPUX #endif include "nsapi.h" in the nsapi module (I think nsapi.h is used nowhere else in PHP). ------------------------------------------------------------------------ [2008-10-01 00:49:51] krish dot v at gmail dot com This happened for my Sun one webserver 6.1 running in HP UX 11.11. I tried your work around and it worked fine. Thanks for the help. This is really a useful one. Krish. ------------------------------------------------------------------------ [2008-09-08 08:41:04] river at wikimedia dot org Description: ------------ When compiling --with-nsapi on HP-UX 11.11 using Sun Java System Web Server 7.0 Update 3, compilation fails inside <nsapi.h> because HPUX is not #defined. A workaround is to build with 'CPPFLAGS=-DHPUX'. I suggest detecting HP-UX at compile time and defining HPUX if the NSAPI module is being built. Reproduce code: --------------- I compiled PHP like this: CPPFLAGS='-I/usr/local/include' LDFLAGS='-L/usr/local/lib -Wl,+b,/usr/local/mysql/lib:/usr/local/lib' CC=gcc CXX=g++ ./configure --prefix=/opt/php --with-mysql=/usr/local/mysql --enable-mbstring --enable-fastcgi --with-nsapi=/opt/webserver7 Expected result: ---------------- I expected PHP to compile. Actual result: -------------- PHP didn't compile, with the following error: In file included from /home/river/php/php-5.2.6/sapi/nsapi/nsapi.c:62: /opt/webserver7/include/nsapi.h:315:24: error: sys/select.h: No such file or directory (This include is wrapped in "#ifndef HPUX", which HP's GCC doesn't define by default.) ------------------------------------------------------------------------ -- Edit this bug report at http://bugs.php.net/?id=46020&edit=1