Commit c915f63f by Ian Lance Taylor

mksysinfo.sh: Ensure that IPV6 constants and types are defined.

From-SVN: r182314
parent de05aad6
...@@ -183,10 +183,12 @@ grep '^const _SOMAXCONN' gen-sysinfo.go | ...@@ -183,10 +183,12 @@ grep '^const _SOMAXCONN' gen-sysinfo.go |
grep '^const _SHUT_' gen-sysinfo.go | grep '^const _SHUT_' gen-sysinfo.go |
sed -e 's/^\(const \)_\(SHUT[^= ]*\)\(.*\)$/\1\2 = _\2/' >> ${OUT} sed -e 's/^\(const \)_\(SHUT[^= ]*\)\(.*\)$/\1\2 = _\2/' >> ${OUT}
# The net package requires a definition for IPV6ONLY. # The net package requires some const definitions.
if ! grep '^const IPV6_V6ONLY ' ${OUT} >/dev/null 2>&1; then for m in IPV6_V6ONLY IPPROTO_IPV6 IPV6_JOIN_GROUP IPV6_LEAVE_GROUP; do
echo "const IPV6_V6ONLY = 0" >> ${OUT} if ! grep "^const $m " ${OUT} >/dev/null 2>&1; then
fi echo "const $m = 0" >> ${OUT}
fi
done
# pathconf constants. # pathconf constants.
grep '^const __PC' gen-sysinfo.go | grep '^const __PC' gen-sysinfo.go |
...@@ -474,11 +476,14 @@ grep '^type _ip_mreq ' gen-sysinfo.go | \ ...@@ -474,11 +476,14 @@ grep '^type _ip_mreq ' gen-sysinfo.go | \
-e 's/_in_addr/[4]byte/g' \ -e 's/_in_addr/[4]byte/g' \
>> ${OUT} >> ${OUT}
# The size of the ip_mreq struct. # We need IPMreq to compile the net package.
if grep 'type IPMreq ' ${OUT} > /dev/null 2>&1; then if ! grep 'type IPMreq ' ${OUT} >/dev/null 2>&1; then
echo 'var SizeofIPMreq = int(unsafe.Sizeof(IPMreq{}))' >> ${OUT} echo 'type IPMreq struct { Multiaddr [4]byte; Interface [4]byte; }' >> ${OUT}
fi fi
# The size of the ip_mreq struct.
echo 'var SizeofIPMreq = int(unsafe.Sizeof(IPMreq{}))' >> ${OUT}
# The ipv6_mreq struct. # The ipv6_mreq struct.
grep '^type _ipv6_mreq ' gen-sysinfo.go | \ grep '^type _ipv6_mreq ' gen-sysinfo.go | \
sed -e 's/_ipv6_mreq/IPv6Mreq/' \ sed -e 's/_ipv6_mreq/IPv6Mreq/' \
...@@ -487,6 +492,11 @@ grep '^type _ipv6_mreq ' gen-sysinfo.go | \ ...@@ -487,6 +492,11 @@ grep '^type _ipv6_mreq ' gen-sysinfo.go | \
-e 's/_in6_addr/[16]byte/' \ -e 's/_in6_addr/[16]byte/' \
>> ${OUT} >> ${OUT}
# We need IPv6Mreq to compile the net package.
if ! grep 'type IPv6Mreq ' ${OUT} >/dev/null 2>&1; then
echo 'type IPv6Mreq struct { Multiaddr [16]byte; Interface uint32; }' >> ${OUT}
fi
# Try to guess the type to use for fd_set. # Try to guess the type to use for fd_set.
fd_set=`grep '^type _fd_set ' gen-sysinfo.go || true` fd_set=`grep '^type _fd_set ' gen-sysinfo.go || true`
fds_bits_type="_C_long" fds_bits_type="_C_long"
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment