ID: 16351
Updated by: [EMAIL PROTECTED]
Reported By: [EMAIL PROTECTED]
Status: Feedback
Bug Type: *Configuration Issues
Operating System: Solaris 8
PHP Version: 4.1.2
New Comment:
In file included from
/usr/local/lib/gcc-lib/sparc-sun-solaris2.8/2.95.2/include/limits.h:117,
from
/usr/local/lib/gcc-lib/sparc-sun-solaris2.8/2.95.2/include/syslimits.h:7
,
from
/usr/local/lib/gcc-lib/sparc-sun-solaris2.8/2.95.2/include/limits.h:11,
from zend_qsort.c:21:
/usr/include/limits.h:112: No include path in which to find limits.h
Hmm, seems like recursive recursion.
My guess is, that
/usr/local/lib/gcc-lib/sparc-sun-solaris2.8/2.95.2/include/limits.h:117,
has the exact same line?
Since this all depends on gcc symbols I think you need to report the
issue to the gcc list - nothing PHP can do about it. As a work-around
you might comment out the lines around line 117 in the file mentioned
above.
About resolv.h:
If you could omit the -lnsl/-lresolv/-lsocket statements during
compilation one by one, then we can safely assume that the resolver
functions will be available to you (affecting getmxrr and checkdnsrr).
The headers are correct - just -lnsl isn't used in testing, so that
could be a problem.
Previous Comments:
------------------------------------------------------------------------
[2002-04-02 05:10:09] [EMAIL PROTECTED]
With your data I created totofoo.c and the compile fails
when I remove
#include <netinet/in.h>
and only with this remove
// Inside limits.h line 112, here is the section
#ifdef _GCC_NEXT_LIMITS_H
#include_next <limits.h> /* recurse down to
the real one */
#endif
Nothing about POSIX_SOURCE ANSI_SOURCE in this file
About limits I've also a limits.h file in :
/usr/lib/gcc-lib/sparc-sun-solaris2.8/2.95.3/include/limits.h
Thanks for your help.
Marcel
------------------------------------------------------------------------
[2002-04-02 04:32:32] [EMAIL PROTECTED]
Ok. You don't have the resolv.h problem anymore, so ignore the warning,
on the pre-compile issue.
Just to see, whether this will at all work at solaris, could you try to
save this to a file:
#include <sys/types.h>
#include <netinet/in.h>
#include <arpa/nameser.h>
#include <resolv.h>
#include <netdb.h>
int
main ()
{
const char host[7]="php.net";
u_char ans[1024];
int r;
res_init();
/* Capture result in r but return 0, since a working nameserver is
* not a requirement for compilation.
*/
r = res_search( host, C_IN, T_MX, (u_char *)&ans, sizeof(ans));
return 0;
res_close();
;
return 0;
}
And compile it as:
gcc -o name name.c -lsocket -lresolv -lnsl
then strip of a lib and try again till it fails.
On the limits.h issue:
usually it includes a system specific limits file, like
machine/limits.h or sys/limits.h.
The gcc installation didn't really pick this up very well, looking at
that include chain.
Could you post the section around line 112 in limits.h?
Can you tell if POSIX_SOURCE/ANSI_SOURCE should be defined/not defined
somewhere to skip that include?
By the way: I had the same problem with the wchar.h file on a BSDi
system and my own gcc installation. I simply renamed the original
wchar.h to get rid of it - not a nice thing to do, but it works :-) -
with limits.h I'd be more careful though.
------------------------------------------------------------------------
[2002-04-02 03:42:11] [EMAIL PROTECTED]
I've done ./cvsclean, I've re-run ./buildconf, and I do make clean when
necessary
So after your message I flollow the complete process
I give you here again The different warning messages :
For ./buildconf =>
./buildconf
buildconf: checking installation...
buildconf: autoconf version 2.53 (ok)
buildconf: automake version 1.4 (ok)
buildconf: libtool version 1.4 (ok)
rebuilding Makefile templates
automake: configure.in: installing `Zend/ylwrap'
rebuilding configure
rebuilding acconfig.h
rebuilding main/php_config.h.in
WARNING: Using auxiliary files such as `acconfig.h', `config.h.bot'
WARNING: and `config.h.top', to define templates for `config.h.in'
WARNING: is deprecated and discouraged.
WARNING: Using the third argument of `AC_DEFINE' and
WARNING: `AC_DEFINE_UNQUOTED' allows to define a template without
WARNING: `acconfig.h':
WARNING: AC_DEFINE([NEED_MAIN], 1,
WARNING: [Define if a function `main' is needed.])
WARNING: More sophisticated templates can also be produced, see the
WARNING: documentation.
autoheader: `main/php_config.h.in' is created
For the make I've =>
/bin/bash ../libtool --silent --mode=compile gcc -DHAVE_CONFIG_H -I.
-I. -I../main -D_POSIX_PTHREAD_SEMANTICS -DSOLARIS2=280 -I../TSRM -g
-O2 -prefer-pic -c zend_qsort.c
In file included from
/usr/local/lib/gcc-lib/sparc-sun-solaris2.8/2.95.2/include/limits.h:117,
from
/usr/local/lib/gcc-lib/sparc-sun-solaris2.8/2.95.2/include/syslimits.h:7,
from
/usr/local/lib/gcc-lib/sparc-sun-solaris2.8/2.95.2/include/limits.h:11,
from zend_qsort.c:21:
/usr/include/limits.h:112: No include path in which to find limits.h
make[1]: *** [zend_qsort.lo] Error 1
make[1]: Leaving directory `/opt/xtra_targz/php420/Zend'
make: *** [all-recursive] Error 1
About the last suggestion :=> Could you list which headers and in which
order are specified in `man
res_search'? here is the answer :
Resolver Library Functions resolver(3RESOLV)
NAME
resolver, res_ninit, fp_resstat, res_npquery, res_hostalias,
res_nquery, res_nsearch, res_nquerydomain, res_nmkquery,
res_nsend, res_nclose, res_nsendsigned, dn_comp, dn_expand,
hstrerror, res_init, res_query, res_search, res_mkquery,
res_send, herror, - resolver routines
SYNOPSIS
BIND 8.2.2 Interfaces
cc [ flag ... ] file ... -lresolv -lsocket -lnsl [ library ...
]
#include <sys/types.h>
#include <netinet/in.h>
#include <arpa/nameser.h>
#include <resolv.h>
#include <netdb.h>
Is that enough ?
Hreat thank for you help
------------------------------------------------------------------------
[2002-04-02 03:08:05] [EMAIL PROTECTED]
Could you list which headers and in which order are specified in `man
res_search'?
------------------------------------------------------------------------
[2002-04-01 16:21:49] [EMAIL PROTECTED]
Did you do 'make clean' and reconfigure after you upgraded
gcc ? Or try './cvsclean ; ./buildconf' as this seems more like a
problem in your system than in PHP.
------------------------------------------------------------------------
The remainder of the comments for this report are too long. To view
the rest of the comments, please view the bug report online at
http://bugs.php.net/16351
--
Edit this bug report at http://bugs.php.net/?id=16351&edit=1