libgo: use Solaris sendfile lib, fix Solaris _in6_addr_t fields
authorIan Lance Taylor <ian@gcc.gnu.org>
Tue, 10 Nov 2015 21:38:30 +0000 (21:38 +0000)
committerIan Lance Taylor <ian@gcc.gnu.org>
Tue, 10 Nov 2015 21:38:30 +0000 (21:38 +0000)
    Before Solaris 12 the sendfile function is found in -lsendfile, so look
    for it there.

    Solaris 12 adds some more types that use _in6_addr_t, that need to be
    edited in mksysinfo.

    Patch by Rainer Orth.

    Reviewed-on: https://go-review.googlesource.com/16779

From-SVN: r230132

gcc/go/gofrontend/MERGE
libgo/configure
libgo/configure.ac
libgo/mksysinfo.sh

index dd23a8fdd8d0245a805f9c8321752e5dbab9f85c..d23a6cb5f58bf32f44394230c8f344e89dbe0b68 100644 (file)
@@ -1,4 +1,4 @@
-0c07751d139ef90a43ef7f299f925622a8792a9f
+e3aef41ce0c5be81e2589e60d9cb0db1516e9e2d
 
 The first line of this file holds the git revision number of the last
 merge done from the gofrontend repository.
index 08a197d5a610fcdc441aa79b62af455bf7eef000..eb37e29d2f8e29c6f6e0988f4a43abee9bb8296a 100755 (executable)
 fi
 
    unset ac_cv_func_gethostbyname
+   ac_fn_c_check_func "$LINENO" "sendfile" "ac_cv_func_sendfile"
+if test "x$ac_cv_func_sendfile" = x""yes; then :
+
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for main in -lsendfile" >&5
+$as_echo_n "checking for main in -lsendfile... " >&6; }
+if test "${ac_cv_lib_sendfile_main+set}" = set; then :
+  $as_echo_n "(cached) " >&6
+else
+  ac_check_lib_save_LIBS=$LIBS
+LIBS="-lsendfile  $LIBS"
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+
+
+int
+main ()
+{
+return main ();
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+  ac_cv_lib_sendfile_main=yes
+else
+  ac_cv_lib_sendfile_main=no
+fi
+rm -f core conftest.err conftest.$ac_objext \
+    conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_sendfile_main" >&5
+$as_echo "$ac_cv_lib_sendfile_main" >&6; }
+if test "x$ac_cv_lib_sendfile_main" = x""yes; then :
+  libgo_cv_lib_sockets="$libgo_cv_lib_sockets -lsendfile"
+fi
+
+fi
+
    LIBS=$libgo_old_libs
 
 fi
index 332e540a3020e0c9f451bcb9921117212483817b..6e23a85fa6d698fbeadf3edb1baf90626c52b038 100644 (file)
@@ -473,6 +473,9 @@ AC_CACHE_CHECK([for socket libraries], libgo_cv_lib_sockets,
                 [AC_CHECK_LIB(nsl, main,
                        [libgo_cv_lib_sockets="$libgo_cv_lib_sockets -lnsl"])])
    unset ac_cv_func_gethostbyname
+   AC_CHECK_FUNC(sendfile, ,
+                [AC_CHECK_LIB(sendfile, main,
+                       [libgo_cv_lib_sockets="$libgo_cv_lib_sockets -lsendfile"])])
    LIBS=$libgo_old_libs
 ])
 NET_LIBS="$libgo_cv_lib_sockets"
index 6d39df96e95fdfb06fc2a84bf6dca8b528a625bf..662619f2076290f1416bf2ae7a560064f48300b7 100755 (executable)
@@ -1488,4 +1488,24 @@ grep '^type _zone_net_addr_t ' gen-sysinfo.go | \
     sed -e 's/_in6_addr/[16]byte/' \
     >> ${OUT}
 
+# The Solaris 12 _flow_arp_desc_t struct.
+grep '^type _flow_arp_desc_t ' gen-sysinfo.go | \
+    sed -e 's/_in6_addr_t/[16]byte/g' \
+    >> ${OUT}
+
+# The Solaris 12 _flow_l3_desc_t struct.
+grep '^type _flow_l3_desc_t ' gen-sysinfo.go | \
+    sed -e 's/_in6_addr_t/[16]byte/g' \
+    >> ${OUT}
+
+# The Solaris 12 _mac_ipaddr_t struct.
+grep '^type _mac_ipaddr_t ' gen-sysinfo.go | \
+    sed -e 's/_in6_addr_t/[16]byte/g' \
+    >> ${OUT}
+
+# The Solaris 12 _mactun_info_t struct.
+grep '^type _mactun_info_t ' gen-sysinfo.go | \
+    sed -e 's/_in6_addr_t/[16]byte/g' \
+    >> ${OUT}
+
 exit $?