diff --git a/CHANGES b/CHANGES index 4a665fdca754b44c78cc097d8cdd5ecc3bd31a6b..234a1af7395312d79c3fa8ed785a317361057131 100644 --- a/CHANGES +++ b/CHANGES @@ -1,3 +1,6 @@ + 191. [func] Patched to compile on UnixWare 7.x. This platform + is not directly supported by the ISC. + 190. [cleanup] The DNSSEC tools have been moved to a separate directory dnssec/ and given the following new, more descriptive names: diff --git a/acconfig.h b/acconfig.h index b449dc5309924bf5d3b3691e5d700b93365ca4f5..5ce99df08920985af4f3fec643a5cbdb5dc84a1b 100644 --- a/acconfig.h +++ b/acconfig.h @@ -30,6 +30,9 @@ /* define if your system has sigwait() */ #undef HAVE_SIGWAIT +/* define if sigwait() is the UnixWare flavor */ +#undef HAVE_UNIXWARE_SIGWAIT + /* define on Solaris to get sigwait() to work using pthreads semantics */ #undef _POSIX_PTHREAD_SEMANTICS diff --git a/config.h.in b/config.h.in index cdd056974eec58a9c44c0432191dbf650e6bfeab..71ec61f1074d4e8d1cd0bf9d667573ef194dc700 100644 --- a/config.h.in +++ b/config.h.in @@ -45,6 +45,9 @@ /* define if your system has sigwait() */ #undef HAVE_SIGWAIT +/* define if sigwait() is the UnixWare flavor */ +#undef HAVE_UNIXWARE_SIGWAIT + /* define on Solaris to get sigwait() to work using pthreads semantics */ #undef _POSIX_PTHREAD_SEMANTICS @@ -76,9 +79,6 @@ extern __inline int __sputaux(int _c, struct __sFILE *_p); /* Define if you have the header file. */ #undef HAVE_LINUX_PRCTL_H -/* Define if you have the header file. */ -#undef HAVE_NETINET6_IN6_H - /* Define if you have the header file. */ #undef HAVE_SYS_SOCKIO_H diff --git a/configure.in b/configure.in index cea124dd102e5664ab7cbbd7e2f082d075f84fe1..2598a33d10fad2885d54aa87e93bd0a87c940677 100644 --- a/configure.in +++ b/configure.in @@ -13,7 +13,7 @@ dnl PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS dnl ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS dnl SOFTWARE. -AC_REVISION($Revision: 1.136 $) +AC_REVISION($Revision: 1.137 $) AC_PREREQ(2.13) @@ -245,10 +245,7 @@ AC_PROG_YACC AC_HEADER_STDC -# -# See the IPv6 section for additional special handling of netinet6/in6.h. -# -AC_CHECK_HEADERS(fcntl.h sys/time.h unistd.h sys/sockio.h netinet6/in6.h) +AC_CHECK_HEADERS(fcntl.h sys/time.h unistd.h sys/sockio.h) AC_C_CONST AC_C_INLINE @@ -272,7 +269,7 @@ AC_CHECK_LIB(c, sigwait, ) # -# Additional OS-specific issues related to pthreads. +# Additional OS-specific issues related to pthreads and sigwait. # case "$host" in # @@ -300,6 +297,12 @@ case "$host" in *-solaris*) AC_DEFINE(_POSIX_PTHREAD_SEMANTICS) ;; + # + # UnixWare does things its own way. + # + *-UnixWare*) + AC_DEFINE(HAVE_UNIXWARE_SIGWAIT) + ;; esac # @@ -366,6 +369,11 @@ else *-ibm-aix*) STD_CDEFINES="$STD_CDEFINES -D_THREAD_SAFE" ;; + *-UnixWare*) + CC="$CC -Kthread -w" + MKDEPCC="$CC" + YACC="yacc" # bison calls alloca, avoid on UnixWare + ;; esac fi AC_SUBST(MKDEPCC) @@ -645,21 +653,37 @@ esac # This is done before the in6_pktinfo check because that's what # netinet6/in6.h is needed for. # -isc_netinet6_hack="" changequote({, }) -case "$ac_cv_header_netinet6_in6_h+$host" in -yes+*-bsdi4.[01]*) +case "$host" in +*-bsdi4.[01]*) ISC_PLATFORM_NEEDNETINET6IN6H="#define ISC_PLATFORM_NEEDNETINET6IN6H 1" LWRES_PLATFORM_NEEDNETINET6IN6H="#define LWRES_PLATFORM_NEEDNETINET6IN6H 1" - isc_netinet6_hack="#include " + isc_netinet6in6_hack="#include " ;; *) ISC_PLATFORM_NEEDNETINET6IN6H="#undef ISC_PLATFORM_NEEDNETINET6IN6H" LWRES_PLATFORM_NEEDNETINET6IN6H="#undef LWRES_PLATFORM_NEEDNETINET6IN6H" + isc_netinet6in6_hack="" ;; esac changequote([, ]) +# +# This is similar to the netinet6/in6.h issue. +# +case "$host" in +*-UnixWare*) + ISC_PLATFORM_NEEDNETINETIN6H="#define ISC_PLATFORM_NEEDNETINETIN6H 1" + LWRES_PLATFORM_NEEDNETINETIN6H="#define LWRES_PLATFORM_NEEDNETINETIN6H 1" + isc_netinetin6_hack="#include " + ;; +*) + ISC_PLATFORM_NEEDNETINETIN6H="#undef ISC_PLATFORM_NEEDNETINETIN6H" + LWRES_PLATFORM_NEEDNETINETIN6H="#undef LWRES_PLATFORM_NEEDNETINETIN6H" + isc_netinetin6_hack="" + ;; +esac + # # Now delve deeper into the suitability of the IPv6 support. # @@ -671,7 +695,8 @@ case "$found_ipv6" in AC_TRY_LINK([ #include #include -#include ], +#include +$isc_netinetin6_hack], [struct in6_addr in6; in6 = in6addr_any; return (0);], [AC_MSG_RESULT(yes) ISC_PLATFORM_NEEDIN6ADDRANY="#undef ISC_PLATFORM_NEEDIN6ADDRANY"], @@ -682,7 +707,8 @@ case "$found_ipv6" in #include #include #include -$isc_netinet6_hack +$isc_netinetin6_hack +$isc_netinet6in6_hack ], [struct in6_pktinfo xyzzy; return (0);], [AC_MSG_RESULT(yes) @@ -704,6 +730,8 @@ esac AC_SUBST(ISC_PLATFORM_HAVEIPV6) AC_SUBST(LWRES_PLATFORM_HAVEIPV6) +AC_SUBST(ISC_PLATFORM_NEEDNETINETIN6H) +AC_SUBST(LWRES_PLATFORM_NEEDNETINETIN6H) AC_SUBST(ISC_PLATFORM_NEEDNETINET6IN6H) AC_SUBST(LWRES_PLATFORM_NEEDNETINET6IN6H) AC_SUBST(ISC_PLATFORM_NEEDIN6ADDRANY)