vendor/golang.org/x/sys/unix/mkall.sh
changeset 251 1c52a0eeb952
parent 242 2a9ec03fe5a1
child 256 6d9efbef00a9
equal deleted inserted replaced
250:c040f992052f 251:1c52a0eeb952
     8 # See README.md for more information about how the build system works.
     8 # See README.md for more information about how the build system works.
     9 
     9 
    10 GOOSARCH="${GOOS}_${GOARCH}"
    10 GOOSARCH="${GOOS}_${GOARCH}"
    11 
    11 
    12 # defaults
    12 # defaults
    13 mksyscall="./mksyscall.pl"
    13 mksyscall="go run mksyscall.go"
    14 mkerrors="./mkerrors.sh"
    14 mkerrors="./mkerrors.sh"
    15 zerrors="zerrors_$GOOSARCH.go"
    15 zerrors="zerrors_$GOOSARCH.go"
    16 mksysctl=""
    16 mksysctl=""
    17 zsysctl="zsysctl_$GOOSARCH.go"
    17 zsysctl="zsysctl_$GOOSARCH.go"
    18 mksysnum=
    18 mksysnum=
    19 mktypes=
    19 mktypes=
       
    20 mkasm=
    20 run="sh"
    21 run="sh"
    21 cmd=""
    22 cmd=""
    22 
    23 
    23 case "$1" in
    24 case "$1" in
    24 -syscalls)
    25 -syscalls)
    43 *)
    44 *)
    44 	echo 'usage: mkall.sh [-n]' 1>&2
    45 	echo 'usage: mkall.sh [-n]' 1>&2
    45 	exit 2
    46 	exit 2
    46 esac
    47 esac
    47 
    48 
    48 if [[ "$GOOS" = "linux" ]] && [[ "$GOARCH" != "sparc64" ]]; then
    49 if [[ "$GOOS" = "linux" ]]; then
    49 	# Use then new build system
    50 	# Use the Docker-based build system
    50 	# Files generated through docker (use $cmd so you can Ctl-C the build or run)
    51 	# Files generated through docker (use $cmd so you can Ctl-C the build or run)
    51 	$cmd docker build --tag generate:$GOOS $GOOS
    52 	$cmd docker build --tag generate:$GOOS $GOOS
    52 	$cmd docker run --interactive --tty --volume $(dirname "$(readlink -f "$0")"):/build generate:$GOOS
    53 	$cmd docker run --interactive --tty --volume $(cd -- "$(dirname -- "$0")" && /bin/pwd):/build generate:$GOOS
    53 	exit
    54 	exit
    54 fi
    55 fi
    55 
    56 
    56 GOOSARCH_in=syscall_$GOOSARCH.go
    57 GOOSARCH_in=syscall_$GOOSARCH.go
    57 case "$GOOSARCH" in
    58 case "$GOOSARCH" in
    59 	echo 'undefined $GOOS_$GOARCH:' "$GOOSARCH" 1>&2
    60 	echo 'undefined $GOOS_$GOARCH:' "$GOOSARCH" 1>&2
    60 	exit 1
    61 	exit 1
    61 	;;
    62 	;;
    62 aix_ppc)
    63 aix_ppc)
    63 	mkerrors="$mkerrors -maix32"
    64 	mkerrors="$mkerrors -maix32"
    64 	mksyscall="perl mksyscall_aix.pl -aix"
    65 	mksyscall="go run mksyscall_aix_ppc.go -aix"
    65 	mktypes="GOARCH=$GOARCH go tool cgo -godefs"
    66 	mktypes="GOARCH=$GOARCH go tool cgo -godefs"
    66 	;;
    67 	;;
    67 aix_ppc64)
    68 aix_ppc64)
    68 	mkerrors="$mkerrors -maix64"
    69 	mkerrors="$mkerrors -maix64"
    69 	mksyscall="perl mksyscall_aix.pl -aix"
    70 	mksyscall="go run mksyscall_aix_ppc64.go -aix"
    70 	mktypes="GOARCH=$GOARCH go tool cgo -godefs"
    71 	mktypes="GOARCH=$GOARCH go tool cgo -godefs"
    71 	;;
    72 	;;
    72 darwin_386)
    73 darwin_386)
    73 	mkerrors="$mkerrors -m32"
    74 	mkerrors="$mkerrors -m32"
    74 	mksyscall="./mksyscall.pl -l32"
    75 	mksyscall="go run mksyscall.go -l32"
    75 	mksysnum="./mksysnum_darwin.pl $(xcrun --show-sdk-path --sdk macosx)/usr/include/sys/syscall.h"
    76 	mksysnum="go run mksysnum.go $(xcrun --show-sdk-path --sdk macosx)/usr/include/sys/syscall.h"
    76 	mktypes="GOARCH=$GOARCH go tool cgo -godefs"
    77 	mktypes="GOARCH=$GOARCH go tool cgo -godefs"
       
    78 	mkasm="go run mkasm_darwin.go"
    77 	;;
    79 	;;
    78 darwin_amd64)
    80 darwin_amd64)
    79 	mkerrors="$mkerrors -m64"
    81 	mkerrors="$mkerrors -m64"
    80 	mksysnum="./mksysnum_darwin.pl $(xcrun --show-sdk-path --sdk macosx)/usr/include/sys/syscall.h"
    82 	mksysnum="go run mksysnum.go $(xcrun --show-sdk-path --sdk macosx)/usr/include/sys/syscall.h"
    81 	mktypes="GOARCH=$GOARCH go tool cgo -godefs"
    83 	mktypes="GOARCH=$GOARCH go tool cgo -godefs"
       
    84 	mkasm="go run mkasm_darwin.go"
    82 	;;
    85 	;;
    83 darwin_arm)
    86 darwin_arm)
    84 	mkerrors="$mkerrors"
    87 	mkerrors="$mkerrors"
    85 	mksysnum="./mksysnum_darwin.pl $(xcrun --show-sdk-path --sdk iphoneos)/usr/include/sys/syscall.h"
    88 	mksyscall="go run mksyscall.go -l32"
    86 	mktypes="GOARCH=$GOARCH go tool cgo -godefs"
    89 	mksysnum="go run mksysnum.go $(xcrun --show-sdk-path --sdk iphoneos)/usr/include/sys/syscall.h"
       
    90 	mktypes="GOARCH=$GOARCH go tool cgo -godefs"
       
    91 	mkasm="go run mkasm_darwin.go"
    87 	;;
    92 	;;
    88 darwin_arm64)
    93 darwin_arm64)
    89 	mkerrors="$mkerrors -m64"
    94 	mkerrors="$mkerrors -m64"
    90 	mksysnum="./mksysnum_darwin.pl $(xcrun --show-sdk-path --sdk iphoneos)/usr/include/sys/syscall.h"
    95 	mksysnum="go run mksysnum.go $(xcrun --show-sdk-path --sdk iphoneos)/usr/include/sys/syscall.h"
    91 	mktypes="GOARCH=$GOARCH go tool cgo -godefs"
    96 	mktypes="GOARCH=$GOARCH go tool cgo -godefs"
       
    97 	mkasm="go run mkasm_darwin.go"
    92 	;;
    98 	;;
    93 dragonfly_amd64)
    99 dragonfly_amd64)
    94 	mkerrors="$mkerrors -m64"
   100 	mkerrors="$mkerrors -m64"
    95 	mksyscall="./mksyscall.pl -dragonfly"
   101 	mksyscall="go run mksyscall.go -dragonfly"
    96 	mksysnum="curl -s 'http://gitweb.dragonflybsd.org/dragonfly.git/blob_plain/HEAD:/sys/kern/syscalls.master' | ./mksysnum_dragonfly.pl"
   102 	mksysnum="go run mksysnum.go 'https://gitweb.dragonflybsd.org/dragonfly.git/blob_plain/HEAD:/sys/kern/syscalls.master'"
    97 	mktypes="GOARCH=$GOARCH go tool cgo -godefs"
   103 	mktypes="GOARCH=$GOARCH go tool cgo -godefs"
    98 	;;
   104 	;;
    99 freebsd_386)
   105 freebsd_386)
   100 	mkerrors="$mkerrors -m32"
   106 	mkerrors="$mkerrors -m32"
   101 	mksyscall="./mksyscall.pl -l32"
   107 	mksyscall="go run mksyscall.go -l32"
   102 	mksysnum="curl -s 'http://svn.freebsd.org/base/stable/10/sys/kern/syscalls.master' | ./mksysnum_freebsd.pl"
   108 	mksysnum="go run mksysnum.go 'https://svn.freebsd.org/base/stable/11/sys/kern/syscalls.master'"
   103 	mktypes="GOARCH=$GOARCH go tool cgo -godefs"
   109 	mktypes="GOARCH=$GOARCH go tool cgo -godefs"
   104 	;;
   110 	;;
   105 freebsd_amd64)
   111 freebsd_amd64)
   106 	mkerrors="$mkerrors -m64"
   112 	mkerrors="$mkerrors -m64"
   107 	mksysnum="curl -s 'http://svn.freebsd.org/base/stable/10/sys/kern/syscalls.master' | ./mksysnum_freebsd.pl"
   113 	mksysnum="go run mksysnum.go 'https://svn.freebsd.org/base/stable/11/sys/kern/syscalls.master'"
   108 	mktypes="GOARCH=$GOARCH go tool cgo -godefs"
   114 	mktypes="GOARCH=$GOARCH go tool cgo -godefs"
   109 	;;
   115 	;;
   110 freebsd_arm)
   116 freebsd_arm)
   111 	mkerrors="$mkerrors"
   117 	mkerrors="$mkerrors"
   112 	mksyscall="./mksyscall.pl -l32 -arm"
   118 	mksyscall="go run mksyscall.go -l32 -arm"
   113 	mksysnum="curl -s 'http://svn.freebsd.org/base/stable/10/sys/kern/syscalls.master' | ./mksysnum_freebsd.pl"
   119 	mksysnum="go run mksysnum.go 'https://svn.freebsd.org/base/stable/11/sys/kern/syscalls.master'"
   114 	# Let the type of C char be signed for making the bare syscall
   120 	# Let the type of C char be signed for making the bare syscall
   115 	# API consistent across platforms.
   121 	# API consistent across platforms.
   116 	mktypes="GOARCH=$GOARCH go tool cgo -godefs -- -fsigned-char"
   122 	mktypes="GOARCH=$GOARCH go tool cgo -godefs -- -fsigned-char"
   117 	;;
   123 	;;
   118 linux_sparc64)
   124 freebsd_arm64)
   119 	GOOSARCH_in=syscall_linux_sparc64.go
   125 	mkerrors="$mkerrors -m64"
   120 	unistd_h=/usr/include/sparc64-linux-gnu/asm/unistd.h
   126 	mksysnum="go run mksysnum.go 'https://svn.freebsd.org/base/stable/11/sys/kern/syscalls.master'"
   121 	mkerrors="$mkerrors -m64"
       
   122 	mksysnum="./mksysnum_linux.pl $unistd_h"
       
   123 	mktypes="GOARCH=$GOARCH go tool cgo -godefs"
   127 	mktypes="GOARCH=$GOARCH go tool cgo -godefs"
   124 	;;
   128 	;;
   125 netbsd_386)
   129 netbsd_386)
   126 	mkerrors="$mkerrors -m32"
   130 	mkerrors="$mkerrors -m32"
   127 	mksyscall="./mksyscall.pl -l32 -netbsd"
   131 	mksyscall="go run mksyscall.go -l32 -netbsd"
   128 	mksysnum="curl -s 'http://cvsweb.netbsd.org/bsdweb.cgi/~checkout~/src/sys/kern/syscalls.master' | ./mksysnum_netbsd.pl"
   132 	mksysnum="go run mksysnum.go 'http://cvsweb.netbsd.org/bsdweb.cgi/~checkout~/src/sys/kern/syscalls.master'"
   129 	mktypes="GOARCH=$GOARCH go tool cgo -godefs"
   133 	mktypes="GOARCH=$GOARCH go tool cgo -godefs"
   130 	;;
   134 	;;
   131 netbsd_amd64)
   135 netbsd_amd64)
   132 	mkerrors="$mkerrors -m64"
   136 	mkerrors="$mkerrors -m64"
   133 	mksyscall="./mksyscall.pl -netbsd"
   137 	mksyscall="go run mksyscall.go -netbsd"
   134 	mksysnum="curl -s 'http://cvsweb.netbsd.org/bsdweb.cgi/~checkout~/src/sys/kern/syscalls.master' | ./mksysnum_netbsd.pl"
   138 	mksysnum="go run mksysnum.go 'http://cvsweb.netbsd.org/bsdweb.cgi/~checkout~/src/sys/kern/syscalls.master'"
   135 	mktypes="GOARCH=$GOARCH go tool cgo -godefs"
   139 	mktypes="GOARCH=$GOARCH go tool cgo -godefs"
   136 	;;
   140 	;;
   137 netbsd_arm)
   141 netbsd_arm)
   138 	mkerrors="$mkerrors"
   142 	mkerrors="$mkerrors"
   139 	mksyscall="./mksyscall.pl -l32 -netbsd -arm"
   143 	mksyscall="go run mksyscall.go -l32 -netbsd -arm"
   140 	mksysnum="curl -s 'http://cvsweb.netbsd.org/bsdweb.cgi/~checkout~/src/sys/kern/syscalls.master' | ./mksysnum_netbsd.pl"
   144 	mksysnum="go run mksysnum.go 'http://cvsweb.netbsd.org/bsdweb.cgi/~checkout~/src/sys/kern/syscalls.master'"
   141 	# Let the type of C char be signed for making the bare syscall
   145 	# Let the type of C char be signed for making the bare syscall
   142 	# API consistent across platforms.
   146 	# API consistent across platforms.
   143 	mktypes="GOARCH=$GOARCH go tool cgo -godefs -- -fsigned-char"
   147 	mktypes="GOARCH=$GOARCH go tool cgo -godefs -- -fsigned-char"
       
   148 	;;
       
   149 netbsd_arm64)
       
   150 	mkerrors="$mkerrors -m64"
       
   151 	mksyscall="go run mksyscall.go -netbsd"
       
   152 	mksysnum="go run mksysnum.go 'http://cvsweb.netbsd.org/bsdweb.cgi/~checkout~/src/sys/kern/syscalls.master'"
       
   153 	mktypes="GOARCH=$GOARCH go tool cgo -godefs"
   144 	;;
   154 	;;
   145 openbsd_386)
   155 openbsd_386)
   146 	mkerrors="$mkerrors -m32"
   156 	mkerrors="$mkerrors -m32"
   147 	mksyscall="./mksyscall.pl -l32 -openbsd"
   157 	mksyscall="go run mksyscall.go -l32 -openbsd"
   148 	mksysctl="./mksysctl_openbsd.pl"
   158 	mksysctl="go run mksysctl_openbsd.go"
   149 	mksysnum="curl -s 'http://cvsweb.openbsd.org/cgi-bin/cvsweb/~checkout~/src/sys/kern/syscalls.master' | ./mksysnum_openbsd.pl"
   159 	mksysnum="go run mksysnum.go 'https://cvsweb.openbsd.org/cgi-bin/cvsweb/~checkout~/src/sys/kern/syscalls.master'"
   150 	mktypes="GOARCH=$GOARCH go tool cgo -godefs"
   160 	mktypes="GOARCH=$GOARCH go tool cgo -godefs"
   151 	;;
   161 	;;
   152 openbsd_amd64)
   162 openbsd_amd64)
   153 	mkerrors="$mkerrors -m64"
   163 	mkerrors="$mkerrors -m64"
   154 	mksyscall="./mksyscall.pl -openbsd"
   164 	mksyscall="go run mksyscall.go -openbsd"
   155 	mksysctl="./mksysctl_openbsd.pl"
   165 	mksysctl="go run mksysctl_openbsd.go"
   156 	mksysnum="curl -s 'http://cvsweb.openbsd.org/cgi-bin/cvsweb/~checkout~/src/sys/kern/syscalls.master' | ./mksysnum_openbsd.pl"
   166 	mksysnum="go run mksysnum.go 'https://cvsweb.openbsd.org/cgi-bin/cvsweb/~checkout~/src/sys/kern/syscalls.master'"
   157 	mktypes="GOARCH=$GOARCH go tool cgo -godefs"
   167 	mktypes="GOARCH=$GOARCH go tool cgo -godefs"
   158 	;;
   168 	;;
   159 openbsd_arm)
   169 openbsd_arm)
   160 	mkerrors="$mkerrors"
   170 	mkerrors="$mkerrors"
   161 	mksyscall="./mksyscall.pl -l32 -openbsd -arm"
   171 	mksyscall="go run mksyscall.go -l32 -openbsd -arm"
   162 	mksysctl="./mksysctl_openbsd.pl"
   172 	mksysctl="go run mksysctl_openbsd.go"
   163 	mksysnum="curl -s 'http://cvsweb.openbsd.org/cgi-bin/cvsweb/~checkout~/src/sys/kern/syscalls.master' | ./mksysnum_openbsd.pl"
   173 	mksysnum="go run mksysnum.go 'https://cvsweb.openbsd.org/cgi-bin/cvsweb/~checkout~/src/sys/kern/syscalls.master'"
       
   174 	# Let the type of C char be signed for making the bare syscall
       
   175 	# API consistent across platforms.
       
   176 	mktypes="GOARCH=$GOARCH go tool cgo -godefs -- -fsigned-char"
       
   177 	;;
       
   178 openbsd_arm64)
       
   179 	mkerrors="$mkerrors -m64"
       
   180 	mksyscall="go run mksyscall.go -openbsd"
       
   181 	mksysctl="go run mksysctl_openbsd.go"
       
   182 	mksysnum="go run mksysnum.go 'https://cvsweb.openbsd.org/cgi-bin/cvsweb/~checkout~/src/sys/kern/syscalls.master'"
   164 	# Let the type of C char be signed for making the bare syscall
   183 	# Let the type of C char be signed for making the bare syscall
   165 	# API consistent across platforms.
   184 	# API consistent across platforms.
   166 	mktypes="GOARCH=$GOARCH go tool cgo -godefs -- -fsigned-char"
   185 	mktypes="GOARCH=$GOARCH go tool cgo -godefs -- -fsigned-char"
   167 	;;
   186 	;;
   168 solaris_amd64)
   187 solaris_amd64)
   169 	mksyscall="./mksyscall_solaris.pl"
   188 	mksyscall="go run mksyscall_solaris.go"
   170 	mkerrors="$mkerrors -m64"
   189 	mkerrors="$mkerrors -m64"
   171 	mksysnum=
   190 	mksysnum=
   172 	mktypes="GOARCH=$GOARCH go tool cgo -godefs"
   191 	mktypes="GOARCH=$GOARCH go tool cgo -godefs"
   173 	;;
   192 	;;
   174 *)
   193 *)
   185 		case "$GOOS" in
   204 		case "$GOOS" in
   186 		darwin | dragonfly | freebsd | netbsd | openbsd)
   205 		darwin | dragonfly | freebsd | netbsd | openbsd)
   187 			syscall_goos="syscall_bsd.go $syscall_goos"
   206 			syscall_goos="syscall_bsd.go $syscall_goos"
   188 			;;
   207 			;;
   189 		esac
   208 		esac
   190 		if [ -n "$mksyscall" ]; then echo "$mksyscall -tags $GOOS,$GOARCH $syscall_goos $GOOSARCH_in |gofmt >zsyscall_$GOOSARCH.go"; fi
   209 		if [ -n "$mksyscall" ]; then
   191 		;;
   210 			if [ "$GOOSARCH" == "aix_ppc64" ]; then
       
   211 				# aix/ppc64 script generates files instead of writing to stdin.
       
   212 				echo "$mksyscall -tags $GOOS,$GOARCH $syscall_goos $GOOSARCH_in && gofmt -w zsyscall_$GOOSARCH.go && gofmt -w zsyscall_"$GOOSARCH"_gccgo.go && gofmt -w zsyscall_"$GOOSARCH"_gc.go " ;
       
   213 			elif [ "$GOOS" == "darwin" ]; then
       
   214 			        # pre-1.12, direct syscalls
       
   215 			        echo "$mksyscall -tags $GOOS,$GOARCH,!go1.12 $syscall_goos syscall_darwin_${GOARCH}.1_11.go $GOOSARCH_in |gofmt >zsyscall_$GOOSARCH.1_11.go";
       
   216 			        # 1.12 and later, syscalls via libSystem
       
   217 				echo "$mksyscall -tags $GOOS,$GOARCH,go1.12 $syscall_goos $GOOSARCH_in |gofmt >zsyscall_$GOOSARCH.go";
       
   218 				# 1.13 and later, syscalls via libSystem (including syscallPtr)
       
   219 				echo "$mksyscall -tags $GOOS,$GOARCH,go1.13 syscall_darwin.1_13.go |gofmt >zsyscall_$GOOSARCH.1_13.go";
       
   220 			else
       
   221 				echo "$mksyscall -tags $GOOS,$GOARCH $syscall_goos $GOOSARCH_in |gofmt >zsyscall_$GOOSARCH.go";
       
   222 			fi
       
   223 		fi
   192 	esac
   224 	esac
   193 	if [ -n "$mksysctl" ]; then echo "$mksysctl |gofmt >$zsysctl"; fi
   225 	if [ -n "$mksysctl" ]; then echo "$mksysctl |gofmt >$zsysctl"; fi
   194 	if [ -n "$mksysnum" ]; then echo "$mksysnum |gofmt >zsysnum_$GOOSARCH.go"; fi
   226 	if [ -n "$mksysnum" ]; then echo "$mksysnum |gofmt >zsysnum_$GOOSARCH.go"; fi
   195 	if [ -n "$mktypes" ]; then
   227 	if [ -n "$mktypes" ]; then echo "$mktypes types_$GOOS.go | go run mkpost.go > ztypes_$GOOSARCH.go"; fi
   196 		echo "$mktypes types_$GOOS.go | go run mkpost.go > ztypes_$GOOSARCH.go";
   228 	if [ -n "$mkasm" ]; then echo "$mkasm $GOARCH"; fi
   197 	fi
       
   198 ) | $run
   229 ) | $run