--- nono/configure 2026/04/29 17:04:51 1.1.1.7 +++ nono/configure 2026/04/29 17:05:04 1.1.1.9 @@ -624,8 +624,9 @@ LIBOBJS MSGFMT WXWIDGETS_LIBS WXWIDGETS_CPPFLAGS -NETDRIVER -KEVENT_UDATA_T +HOSTNET_BPF +HOSTNET_TAP +HOSTNET_AFPACKET CXXCPP WARNFLAGS_CXX WARNFLAGS_C @@ -4844,99 +4845,6 @@ fi #AC_TYPE_UINT64_T #AC_TYPE_UINT8_T -# struct kevent のメンバ udata の型が互換性なく違う。 -# NetBSD では intptr_t(整数) だが、OSX では void* (ポインタ) なので、 -# 同一ソースコードでは回避できない。 -# Linux(Ubuntu) はどっちもパスするので後ろの void * のほうが使われる。 -# まあパスするんならどっちでもいいか。 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether kevent.udata is intptr_t" >&5 -$as_echo_n "checking whether kevent.udata is intptr_t... " >&6; } -old_CXXFLAGS="${CXXFLAGS}" -CXXFLAGS="${CXXFLAGS} -Wall -Werror" -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - #include "confdefs.h" - #if defined(HAVE_SYS_TYPES_H) - #include - #endif - #if defined(HAVE_SYS_EVENT_H) - #include - #endif - #if defined(HAVE_KQUEUE_SYS_EVENT_H) - #include - #endif - -int -main () -{ - - struct kevent kev; - kev.udata = (intptr_t)0; - (void)kev; - - ; - return 0; -} -_ACEOF -if ac_fn_cxx_try_compile "$LINENO"; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - KEVENT_UDATA_T=intptr_t - -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -CXXFLAGS="${old_CXXFLAGS}" - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether kevent.udata is void *" >&5 -$as_echo_n "checking whether kevent.udata is void *... " >&6; } -old_CXXFLAGS="${CXXFLAGS}" -CXXFLAGS="${CXXFLAGS} -Wall -Werror" -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - #include "confdefs.h" - #if defined(HAVE_SYS_TYPES_H) - #include - #endif - #if defined(HAVE_SYS_EVENT_H) - #include - #endif - #if defined(HAVE_KQUEUE_SYS_EVENT_H) - #include - #endif - -int -main () -{ - - struct kevent kev; - kev.udata = (void *)0; - (void)kev; - - ; - return 0; -} -_ACEOF -if ac_fn_cxx_try_compile "$LINENO"; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } - KEVENT_UDATA_T='void *' - -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -CXXFLAGS="${old_CXXFLAGS}" - -if test -z "$KEVENT_UDATA_T" ; then - as_fn_error $? "kevent.udata is unknown type" "$LINENO" 5 -fi - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for __builtin_assume" >&5 $as_echo_n "checking for __builtin_assume... " >&6; } cat confdefs.h - <<_ACEOF >conftest.$ac_ext @@ -5406,33 +5314,82 @@ $as_echo "no" >&6; } fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -# Select host network driver. -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for suitable host network driver" >&5 -$as_echo_n "checking for suitable host network driver... " >&6; } +# +# Network +# +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for AF_PACKET" >&5 +$as_echo_n "checking for AF_PACKET... " >&6; } +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + + #include + +int +main () +{ + + AF_PACKET; + + ; + return 0; +} +_ACEOF +if ac_fn_cxx_try_compile "$LINENO"; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + $as_echo "#define HAVE_HOSTNET_AFPACKET 1" >>confdefs.h + + HOSTNET_AFPACKET=yes + +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for tap(4)" >&5 +$as_echo_n "checking for tap(4)... " >&6; } case "${host_os}" in linux*) if test x"$ac_cv_header_linux_if_tun_h" = xyes; then - netdriver=tap + netdriver_tap=yes fi ;; openbsd*) # OpenBSD has no but supports tap(4). - netdriver=tap + netdriver_tap=yes ;; -esac -if test -z "$netdriver"; then + *) if test x"$ac_cv_header_net_if_tap_h" = xyes; then - netdriver=tap - elif test x"$ac_cv_header_net_bpf_h" = xyes; then - netdriver=bpf - else - netdriver=none + netdriver_tap=yes fi + ;; +esac +if test x"$netdriver_tap" = xyes; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + $as_echo "#define HAVE_HOSTNET_TAP 1" >>confdefs.h + + HOSTNET_TAP=yes + +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $netdriver" >&5 -$as_echo "$netdriver" >&6; } -NETDRIVER=$netdriver +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for bpf(4)" >&5 +$as_echo_n "checking for bpf(4)... " >&6; } +if test x"$ac_cv_header_net_bpf_h" = xyes; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + $as_echo "#define HAVE_HOSTNET_BPF 1" >>confdefs.h + + HOSTNET_BPF=yes + +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi # libbsd on Linux { $as_echo "$as_me:${as_lineno-$LINENO}: checking for getprogname in -lc" >&5