diff options
-rw-r--r-- | libjava/ChangeLog | 10 | ||||
-rw-r--r-- | libjava/acconfig.h | 8 | ||||
-rwxr-xr-x | libjava/configure | 108 | ||||
-rw-r--r-- | libjava/configure.in | 20 | ||||
-rw-r--r-- | libjava/include/config.h.in | 8 | ||||
-rw-r--r-- | libjava/java/net/natInetAddress.cc | 3 | ||||
-rw-r--r-- | libjava/java/net/natPlainDatagramSocketImpl.cc | 8 |
7 files changed, 117 insertions, 48 deletions
diff --git a/libjava/ChangeLog b/libjava/ChangeLog index 703fbcc7cc1..c41ff38fa94 100644 --- a/libjava/ChangeLog +++ b/libjava/ChangeLog @@ -1,5 +1,15 @@ 1999-08-21 Alexandre Oliva <oliva@dcc.unicamp.br> + * configure.in: Check for in_addr_t in netinet/in.h too. Check + for ip_mreq too. + * acconfig.h: Define HAVE_IN_ADDR_T instead of in_addr_t. + (HAVE_STRUCT_IP_MREQ): Added. + * configure, include/config.h.in: Rebuilt. + * java/net/natInetAddress.cc (aton): Typedef in_addr_t to jint + if needed. + * java/net/natPlainDatagramSocketImpl.cc (McastReq, mcastGrp): + Disable if ip_mreq is not available. + * configure.in: Check types ssize_t and in_addr_t. * acconfig.h: Undefine them. * configure, include/config.h.in: Rebuilt. diff --git a/libjava/acconfig.h b/libjava/acconfig.h index 63119e2716a..62ae0135add 100644 --- a/libjava/acconfig.h +++ b/libjava/acconfig.h @@ -58,12 +58,16 @@ /* Define to `int' if `ssize_t' is not defined. */ #undef ssize_t -/* Define to `jint' if `in_addr_t' is not defined. */ -#undef in_addr_t +/* Define to 1 if `in_addr_t' is defined in sys/types.h or + netinet/in.h. */ +#undef HAVE_IN_ADDR_T /* Define if inet6 structures are defined in netinet/in.h. */ #undef HAVE_INET6 +/* Define if struct ip_mreq is defined in netinet/in.h. */ +#undef HAVE_STRUCT_IP_MREQ + /* Define it socklen_t typedef is in sys/socket.h. */ #undef HAVE_SOCKLEN_T diff --git a/libjava/configure b/libjava/configure index 4c0363db3ac..20d08853e6e 100755 --- a/libjava/configure +++ b/libjava/configure @@ -4469,51 +4469,75 @@ EOF fi + echo $ac_n "checking for in_addr_t""... $ac_c" 1>&6 -echo "configure:4474: checking for in_addr_t" >&5 -if eval "test \"`echo '$''{'ac_cv_type_in_addr_t'+set}'`\" = set"; then - echo $ac_n "(cached) $ac_c" 1>&6 -else - cat > conftest.$ac_ext <<EOF -#line 4479 "configure" +echo "configure:4475: checking for in_addr_t" >&5 +cat > conftest.$ac_ext <<EOF +#line 4477 "configure" #include "confdefs.h" #include <sys/types.h> #if STDC_HEADERS #include <stdlib.h> #include <stddef.h> #endif +#if HAVE_NETINET_IN_H +#include <netinet/in.h> +#endif +int main() { +in_addr_t foo; +; return 0; } EOF -if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | - egrep "(^|[^a-zA-Z_0-9])in_addr_t[^a-zA-Z_0-9]" >/dev/null 2>&1; then +if { (eval echo configure:4491: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* - ac_cv_type_in_addr_t=yes + cat >> confdefs.h <<\EOF +#define HAVE_IN_ADDR_T 1 +EOF + + echo "$ac_t""yes" 1>&6 else + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 rm -rf conftest* - ac_cv_type_in_addr_t=no + echo "$ac_t""no" 1>&6 fi rm -f conftest* -fi -echo "$ac_t""$ac_cv_type_in_addr_t" 1>&6 -if test $ac_cv_type_in_addr_t = no; then +echo $ac_n "checking whether struct ip_mreq is in netinet/in.h""... $ac_c" 1>&6 +echo "configure:4507: checking whether struct ip_mreq is in netinet/in.h" >&5 +cat > conftest.$ac_ext <<EOF +#line 4509 "configure" +#include "confdefs.h" +#include <netinet/in.h> +int main() { +struct ip_mreq mreq; +; return 0; } +EOF +if { (eval echo configure:4516: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then + rm -rf conftest* cat >> confdefs.h <<\EOF -#define in_addr_t jint +#define HAVE_STRUCT_IP_MREQ 1 EOF + echo "$ac_t""yes" 1>&6 +else + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 + rm -rf conftest* + echo "$ac_t""no" 1>&6 fi - +rm -f conftest* echo $ac_n "checking whether struct sockaddr_in6 is in netinet/in.h""... $ac_c" 1>&6 -echo "configure:4508: checking whether struct sockaddr_in6 is in netinet/in.h" >&5 +echo "configure:4532: checking whether struct sockaddr_in6 is in netinet/in.h" >&5 cat > conftest.$ac_ext <<EOF -#line 4510 "configure" +#line 4534 "configure" #include "confdefs.h" #include <netinet/in.h> int main() { struct sockaddr_in6 addr6; ; return 0; } EOF -if { (eval echo configure:4517: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:4541: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* cat >> confdefs.h <<\EOF #define HAVE_INET6 1 @@ -4529,16 +4553,16 @@ fi rm -f conftest* echo $ac_n "checking for socklen_t in sys/socket.h""... $ac_c" 1>&6 -echo "configure:4533: checking for socklen_t in sys/socket.h" >&5 +echo "configure:4557: checking for socklen_t in sys/socket.h" >&5 cat > conftest.$ac_ext <<EOF -#line 4535 "configure" +#line 4559 "configure" #include "confdefs.h" #include <sys/socket.h> int main() { socklen_t x = 5; ; return 0; } EOF -if { (eval echo configure:4542: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:4566: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* cat >> confdefs.h <<\EOF #define HAVE_SOCKLEN_T 1 @@ -4554,16 +4578,16 @@ fi rm -f conftest* echo $ac_n "checking for tm_gmtoff in struct tm""... $ac_c" 1>&6 -echo "configure:4558: checking for tm_gmtoff in struct tm" >&5 +echo "configure:4582: checking for tm_gmtoff in struct tm" >&5 cat > conftest.$ac_ext <<EOF -#line 4560 "configure" +#line 4584 "configure" #include "confdefs.h" #include <time.h> int main() { struct tm tim; tim.tm_gmtoff = 0; ; return 0; } EOF -if { (eval echo configure:4567: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:4591: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* cat >> confdefs.h <<\EOF #define STRUCT_TM_HAS_GMTOFF 1 @@ -4576,16 +4600,16 @@ else rm -rf conftest* echo "$ac_t""no" 1>&6 echo $ac_n "checking for global timezone variable""... $ac_c" 1>&6 -echo "configure:4580: checking for global timezone variable" >&5 +echo "configure:4604: checking for global timezone variable" >&5 cat > conftest.$ac_ext <<EOF -#line 4582 "configure" +#line 4606 "configure" #include "confdefs.h" #include <time.h> int main() { long z2 = timezone; ; return 0; } EOF -if { (eval echo configure:4589: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:4613: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* cat >> confdefs.h <<\EOF #define HAVE_TIMEZONE 1 @@ -4605,19 +4629,19 @@ rm -f conftest* # The Ultrix 4.2 mips builtin alloca declared by alloca.h only works # for constant arguments. Useless! echo $ac_n "checking for working alloca.h""... $ac_c" 1>&6 -echo "configure:4609: checking for working alloca.h" >&5 +echo "configure:4633: checking for working alloca.h" >&5 if eval "test \"`echo '$''{'ac_cv_header_alloca_h'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <<EOF -#line 4614 "configure" +#line 4638 "configure" #include "confdefs.h" #include <alloca.h> int main() { char *p = alloca(2 * sizeof(int)); ; return 0; } EOF -if { (eval echo configure:4621: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:4645: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* ac_cv_header_alloca_h=yes else @@ -4638,12 +4662,12 @@ EOF fi echo $ac_n "checking for alloca""... $ac_c" 1>&6 -echo "configure:4642: checking for alloca" >&5 +echo "configure:4666: checking for alloca" >&5 if eval "test \"`echo '$''{'ac_cv_func_alloca_works'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <<EOF -#line 4647 "configure" +#line 4671 "configure" #include "confdefs.h" #ifdef __GNUC__ @@ -4671,7 +4695,7 @@ int main() { char *p = (char *) alloca(1); ; return 0; } EOF -if { (eval echo configure:4675: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:4699: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* ac_cv_func_alloca_works=yes else @@ -4703,12 +4727,12 @@ EOF echo $ac_n "checking whether alloca needs Cray hooks""... $ac_c" 1>&6 -echo "configure:4707: checking whether alloca needs Cray hooks" >&5 +echo "configure:4731: checking whether alloca needs Cray hooks" >&5 if eval "test \"`echo '$''{'ac_cv_os_cray'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <<EOF -#line 4712 "configure" +#line 4736 "configure" #include "confdefs.h" #if defined(CRAY) && ! defined(CRAY2) webecray @@ -4733,12 +4757,12 @@ echo "$ac_t""$ac_cv_os_cray" 1>&6 if test $ac_cv_os_cray = yes; then for ac_func in _getb67 GETB67 getb67; do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 -echo "configure:4737: checking for $ac_func" >&5 +echo "configure:4761: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <<EOF -#line 4742 "configure" +#line 4766 "configure" #include "confdefs.h" /* System header to define __stub macros and hopefully few prototypes, which can conflict with char $ac_func(); below. */ @@ -4761,7 +4785,7 @@ $ac_func(); ; return 0; } EOF -if { (eval echo configure:4765: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:4789: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else @@ -4788,7 +4812,7 @@ done fi echo $ac_n "checking stack direction for C alloca""... $ac_c" 1>&6 -echo "configure:4792: checking stack direction for C alloca" >&5 +echo "configure:4816: checking stack direction for C alloca" >&5 if eval "test \"`echo '$''{'ac_cv_c_stack_direction'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -4796,7 +4820,7 @@ else ac_cv_c_stack_direction=0 else cat > conftest.$ac_ext <<EOF -#line 4800 "configure" +#line 4824 "configure" #include "confdefs.h" find_stack_direction () { @@ -4815,7 +4839,7 @@ main () exit (find_stack_direction() < 0); } EOF -if { (eval echo configure:4819: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null +if { (eval echo configure:4843: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null then ac_cv_c_stack_direction=1 else @@ -4842,7 +4866,7 @@ do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:4846: checking for $ac_word" >&5 +echo "configure:4870: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_PERL'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else diff --git a/libjava/configure.in b/libjava/configure.in index 51839d3bb63..99c2b9e5c47 100644 --- a/libjava/configure.in +++ b/libjava/configure.in @@ -547,7 +547,25 @@ dnl for now. If you change this, you also must update natFile.cc. AC_CHECK_HEADERS(dirent.h) AC_CHECK_TYPE([ssize_t], [int]) -AC_CHECK_TYPE([in_addr_t], [jint]) + +AC_MSG_CHECKING([for in_addr_t]) +AC_TRY_COMPILE([#include <sys/types.h> +#if STDC_HEADERS +#include <stdlib.h> +#include <stddef.h> +#endif +#if HAVE_NETINET_IN_H +#include <netinet/in.h> +#endif], [in_addr_t foo;], + [AC_DEFINE([HAVE_IN_ADDR_T]) + AC_MSG_RESULT(yes)], + [AC_MSG_RESULT(no)]) + +AC_MSG_CHECKING([whether struct ip_mreq is in netinet/in.h]) +AC_TRY_COMPILE([#include <netinet/in.h>], [struct ip_mreq mreq;], + [AC_DEFINE(HAVE_STRUCT_IP_MREQ) + AC_MSG_RESULT(yes)], + [AC_MSG_RESULT(no)]) AC_MSG_CHECKING([whether struct sockaddr_in6 is in netinet/in.h]) AC_TRY_COMPILE([#include <netinet/in.h>], [struct sockaddr_in6 addr6;], diff --git a/libjava/include/config.h.in b/libjava/include/config.h.in index 11599c43334..d131232ebbf 100644 --- a/libjava/include/config.h.in +++ b/libjava/include/config.h.in @@ -73,12 +73,16 @@ /* Define to `int' if `ssize_t' is not defined. */ #undef ssize_t -/* Define to `jint' if `in_addr_t' is not defined. */ -#undef in_addr_t +/* Define to 1 if `in_addr_t' is defined in sys/types.h or + netinet/in.h. */ +#undef HAVE_IN_ADDR_T /* Define if inet6 structures are defined in netinet/in.h. */ #undef HAVE_INET6 +/* Define if struct ip_mreq is defined in netinet/in.h. */ +#undef HAVE_STRUCT_IP_MREQ + /* Define it socklen_t typedef is in sys/socket.h. */ #undef HAVE_SOCKLEN_T diff --git a/libjava/java/net/natInetAddress.cc b/libjava/java/net/natInetAddress.cc index b15590a0ebc..6e014ab6f86 100644 --- a/libjava/java/net/natInetAddress.cc +++ b/libjava/java/net/natInetAddress.cc @@ -71,6 +71,9 @@ java::net::InetAddress::aton (jstring host) blen = 4; } #elif defined(HAVE_INET_ADDR) +#if ! HAVE_IN_ADDR_T + typedef jint in_addr_t; +#endif in_addr_t laddr = inet_addr (hostname); if (laddr != (in_addr_t)(-1)) { diff --git a/libjava/java/net/natPlainDatagramSocketImpl.cc b/libjava/java/net/natPlainDatagramSocketImpl.cc index 8ef7fd2bd31..66e5dc221bf 100644 --- a/libjava/java/net/natPlainDatagramSocketImpl.cc +++ b/libjava/java/net/natPlainDatagramSocketImpl.cc @@ -61,7 +61,9 @@ union SockAddr union McastReq { +#if HAVE_STRUCT_IP_MREQ struct ip_mreq mreq; +#endif #ifdef HAVE_INET6 struct ipv6_mreq mreq6; #endif @@ -323,7 +325,10 @@ java::net::PlainDatagramSocketImpl::mcastGrp (java::net::InetAddress *inetaddr, int len = haddress->length; int level, opname; const char *ptr; - if (len == 4) + if (0) + ; +#if HAVE_STRUCT_IP_MREQ + else if (len == 4) { level = IPPROTO_IP; opname = join ? IP_ADD_MEMBERSHIP : IP_DROP_MEMBERSHIP; @@ -334,6 +339,7 @@ java::net::PlainDatagramSocketImpl::mcastGrp (java::net::InetAddress *inetaddr, len = sizeof (struct ip_mreq); ptr = (const char *) &u.mreq; } +#endif #ifdef HAVE_INET6 else if (len == 16) { |